{"version":3,"sources":["./src/app/pages/register/register.component.html","./src/app/pages/examples/profilepage/profilepage.component.html","./src/assets/js/webrtc_adaptor.js","./src/app/pages/home/home.component.ts","./src/assets/js/websocket_adaptor.js","./src/assets/js/soundmeter.js","./src/app/utils/helper.ts","./src/app/pages/account-details/account-details.component.ts","./src/app/pages/stream/stream.component.html","./src/app/pages/examples/landingpage/landingpage.component.html","./src/app/pages/play-stream/play-stream.component.ts","./src/environments/environment.ts","./src/app/pages/login/login.component.ts","./src/app/pages/examples/profilepage/profilepage.component.ts","./src/app/guards/authenticated-guard.service.ts","./src/app/services/api.service.ts","./src/app/guards/auth-guard.service.ts","./src/app/pages/examples/landingpage/landingpage.component.ts","./src/app/pages/stream/stream.component.ts","./src/app/pages/play-stream/play-stream.component.html","./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/app.component.ts","./src/app/utils/config.js","./src/app/pages/index/index.component.html","./src/app/pages/examples/registerpage/registerpage.component.html","./src/app/app.component.html","./src/app/app.module.ts","./src/app/pages/home/home.component.html","./src/$_lazy_route_resource lazy namespace object","./src/app/pages/pages.module.ts","./src/app/pages/register/register.component.ts","./src/app/utils/helper.js","./src/assets/js/peer_stats.js","./src/app/services/api.service.js","./src/app/pages/account-details/account-details.component.html","./src/app/pages/forgot-password/forgot-password.component.ts","./src/app/pages/privacy-policy/privacy-policy.component.html","./src/app/pages/terms-conditions/terms-conditions.component.ts","./src/app/shared/partials/navbar/navbar.component.ts","./src/app/utils/config.ts","./src/app/pages/terms-conditions/terms-conditions.component.html","./src/app/shared/partials/navbar/navbar.component.html","./src/app/pages/examples/registerpage/registerpage.component.ts","./src/app/pages/index/index.component.ts","./src/app/pages/privacy-policy/privacy-policy.component.ts","./src/app/pages/forgot-password/forgot-password.component.html","./src/app/app-routing.module.ts","./src/app/app.component.scss","./src/app/pages/login/login.component.html","./src/main.ts"],"names":["ReceivingMessage","_createClass","size","_classCallCheck","received","data","ArrayBuffer","WebRTCAdaptor","initialValues","_this","peerconnection_config","sdp_constraints","remotePeerConnection","Array","remotePeerConnectionStats","remoteDescriptionSet","iceCandidateList","roomName","videoTrackSender","audioTrackSender","playStreamId","currentVolume","originalAudioTrackGainNode","videoTrack","audioTrack","smallVideoTrack","audioContext","soundOriginGainNode","secondStreamGainNode","localStream","bandwidth","isMultiPeer","multiPeerStreamId","webSocketAdaptor","isPlayMode","debug","viewerInfo","publishStreamId","blackFrameTimer","onlyDataChannel","dataChannelEnabled","receivingMessages","Map","publishMode","candidateTypes","desktopStream","camera_location","camera_margin","camera_percent","key","hasOwnProperty","localVideo","document","getElementById","localVideoId","remoteVideo","remoteVideoId","dummyCanvas","createElement","mediaConstraints","video","checkBrowserScreenShareSupported","checkWebRTCPermissions","getDevices","trackDeviceChange","openStream","mode","media_audio_constraint","audio","navigatorUserMedia","stream","gotStream","checkWebSocketConnection","value","setDesktopwithCameraSource","streamId","audioStream","onEndedCallback","_this2","cameraStream","getVideoTracks","canvas","canvasContext","getContext","screenVideo","srcObject","play","cameraVideo","canvasStream","captureStream","updateVideoTrack","onended","event","setInterval","width","videoWidth","height","videoHeight","drawImage","cameraWidth","cameraHeight","positionX","positionY","_this3","navigator","mediaDevices","ondevicechange","_this4","enumerateDevices","then","devices","deviceArray","checkAudio","forEach","device","kind","push","callback","console","log","catch","err","error","name","message","prepareStreamTracks","audioConstraint","_this5","getAudioTracks","length","stop","removeTrack","setVideoCameraSource","setGainNodeStream","mixedStream","mixAudioStreams","updateAudioTrack","addTrack","func","catch_error","_this6","getUserMedia","callbackError","_this7","resetTrack","videoTracks","audioTracks","getDisplayMedia","switchVideoCameraCapture","closeStream","track","window","undefined","enableSecondStreamInMixedAudio","enable","gain","publish","token","subscriberId","subscriberCode","streamName","_this8","_this$webSocketAdapto","jsCmd","command","_this8$webSocketAdapt","send","JSON","stringify","joinRoom","_this$webSocketAdapto2","room","roomId","enableTracks","_this$webSocketAdapto3","trackList","_this$webSocketAdapto4","closePeerConnection","join","_this$webSocketAdapto5","multiPeer","leaveFromRoom","_this$webSocketAdapto6","leave","_this$webSocketAdapto7","getStreamInfo","_this$webSocketAdapto8","getRoomInfo","_this$webSocketAdapto9","enableTrack","mainTrackId","trackId","enabled","_this$webSocketAdapto10","getTracks","_this$webSocketAdapto11","toggleVideo","_this$webSocketAdapto12","toggleAudio","_this$webSocketAdapto13","switchDesktopCapture","secondStream","composedStream","MediaStream","AudioContext","audioDestionation","createMediaStreamDestination","createGain","audioSource","createMediaStreamSource","connect","audioSource2","mediaStreamSource","mediaStreamDestination","controlledStream","_iterator","_createForOfIteratorHelper","_step","s","n","done","e","f","switchAudioInputSource","deviceId","warn","setAudioInputSource","exact","switchDesktopCaptureWithCamera","updateLocalAudioStream","_this9","newAudioTrack","updateLocalVideoStream","stopDesktop","newVideoTrack","_this10","_this11","_this12","getSenders","find","replaceTrack","result","_this13","onTrack","streams","dataObj","iceCandidateReceived","candidate","protocolSupported","protocol","element","toLowerCase","includes","_this$webSocketAdapto14","label","sdpMLineIndex","id","sdpMid","toString","initDataChannel","dataChannel","_this14","onerror","obj","readyState","onmessage","String","byteLength","view","Int32Array","msg","rawData","slice","dataView","Uint8Array","set","onopen","onclose","initPeerConnection","dataChannelMode","_this15","closedStreamId","RTCPeerConnection","addStream","onicecandidate","ontrack","dataChannelOptions","ordered","createDataChannel","ondatachannel","ev","channel","dataChannelPeer","oniceconnectionstatechange","state","iceConnectionState","changeBandwidth","close","signalingState","playStreamIndex","indexOf","splice","clearInterval","timerId","signallingState","gotDescription","configuration","_this16","setLocalDescription","responose","_this16$webSocketAdap","type","sdp","initializeDummyFrame","fillRect","replacementStream","turnOffLocalCamera","_this17","choosenId","turnOnLocalCamera","_this18","muteLocalMic","unmuteLocalMic","takeConfiguration","idOfStream","typeOfConfiguration","_this19","conf","isTypeOffer","setRemoteDescription","RTCSessionDescription","response","i","addIceCandidate","createAnswer","replace","takeCandidate","idOfTheStream","tmpLabel","tmpCandidate","candidateSdp","RTCIceCandidate","_this20","startPublishing","_this21","createOffer","getVideoSender","videoSender","adapter","browserDetails","browser","version","RTCRtpSender","prototype","senders","errorDefinition","parameters","getParameters","encodings","maxBitrate","setParameters","Promise","reject","getStats","_this22","stats","bytesReceived","videoPacketsLost","audioPacketsLost","fractionLost","currentTime","bytesSent","audioLevel","qlr","framesEncoded","fps","frameWidth","frameHeight","videoRoundTripTime","videoJitter","audioRoundTripTime","audioJitter","framesDecoded","framesDropped","framesReceived","audioJitterAverageDelay","videoJitterAverageDelay","packetsLost","timestamp","qualityLimitationReason","jitterBufferDelay","jitterBufferEmittedCount","roundTripTime","jitter","framesPerSecond","totalBytesReceived","totalBytesSent","totalFramesEncoded","resWidth","resHeight","srcFps","disableStats","enableStats","_this23","PeerStats","closeWebSocket","_this$webSocketAdapto15","_this$webSocketAdapto16","_this$webSocketAdapto17","isConnected","isConnecting","WebSocketAdaptor","websocket_url","webrtcadaptor","peerMessage","definition","_this$webSocketAdapto18","forceStreamQuality","resolution","_this$webSocketAdapto19","streamHeight","sendData","CHUNK_SIZE","sent","Math","floor","random","header","min","buffer","tokenArray","chunk","initWebSocketConnection","callbackConnected","connecting","connected","pingTimerId","wsConn","WebSocket","sendPing","parse","info","clearPingTimer","text","SoundMeter","context","_context","_instant","_slow","_analyser","createAnalyser","fftSize","bufferLength","_dataArray","minVolume","maxVolume","get","connectToSource","_source","disconnectCurentSource","disconnect","update","getByteTimeDomainData","sum","clipcount","abs","amp","sqrt","volume","log10","max","AppConfig","isLoggedIn","loginToken","webRTCAdaptor","broadcastStatus","hasAutoTopUp","broadcastStats","minutesElapsed","totalMinutes","totalListeners","formattedHours","formattedMinutes","RegexPatterns","AppHelpers","ngxNotificationService","AppHelpers_1","formatDate","date","format","moment","Date","getTime","isValid","regExpression","password","RegExp","test","showNotification","title","icon","extraClass","getToken","getCookie","getUserInfo","saveToken","setCookie","hoursRemaining","elapsed","minutesTotal","minutesRemaining","hours","toFixed","streamAnalytics","hour","minute","saveUserInfo","userInfo","destroyToken","deleteCookie","destroyUserInfo","showLoader","elementId","classList","add","hideLoader","remove","querySelectorAll","cname","cvalue","exdays","localStorage","setItem","storage","getItem","removeItem","handleHttpError","errorObj","ErrorObj","ErrorList","Message","Status","Icon","ExtraClass","status","EMPTY","ctorParameters","NgxNotificationService","__decorate","Injectable","__metadata","totalBytesReceivedCount","startTime","lastFramesEncoded","totalFramesEncodedCount","lastBytesReceived","lastBytesSent","currentTimestamp","lastTime","firstByteSentCount","firstBytesReceivedCount","totalBytesSentCount","self","ApiService","http","router","_helper","helperClass","formatErrors","sendMessage","path","params","headers","checkLogin","handleInternalError","apiURL","HttpParams","sendRequest","fullURL","environment","api_url","pipe","catchError","navigate","put","body","post","delete","HttpClient","Router","providedIn"],"mappings":"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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2B;;;;;;;;;;;;;;;;;;;;;;;;ACjSuB;AACoB;AACA;AACwE;AAC3E;;IAStC,sBACU,QAAmB,EACpB,QAAkB,EACP,QAAQ,EAClB,MAAc;QAHd,aAAQ,GAAR,QAAQ,CAAW;QACpB,aAAQ,GAAR,QAAQ,CAAU;QAEjB,WAAM,GAAN,MAAM,CAAQ;QAEtB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CACrB,6DAAM,CAAC,UAAC,KAAK,IAAK,YAAK,YAAY,6DAAa,EAA9B,CAA8B,CAAC,CAClD,CAAC,SAAS,CAAC,UAAC,KAAoB;YAE/B,IAAG,KAAK,YAAY,6DAAa,EAAE;gBACjC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;aAC3E;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qCAAc,GADd,UACe,CAAC;QACd,IAAI,MAAM,CAAC,WAAW,GAAG,GAAG,EAAE;YAC5B,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YACpD,IAAI,OAAO,EAAE;gBACX,kDAAkD;gBAClD,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;aACpC;SACF;aAAM;YACL,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YACpD,IAAI,OAAO,EAAE;gBACX,+CAA+C;gBAC/C,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;aACvC;SACF;IACH,CAAC;IACD,+BAAQ,GAAR;QACE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;;gBAjDD,uDAAS;gBAIF,wDAAQ;gDAeZ,oDAAM,SAAC,wDAAQ;gBAbX,sDAAM;;;iCAyBZ,0DAAY,SAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;;IAhB9B,YAAY;QALxB,+DAAS,CAAC;YACT,QAAQ,EAAE,UAAU;YACpB,gFAAmC;;SAEpC,CAAC;uFAGoB,uDAAS;YACV,wDAAQ,UAET,sDAAM;OALb,YAAY,CAmCxB;IAAD,mBAAC;CAAA;AAnCwB;;;;;;;;;;;;;AClBzB;AAAA;AAAA,IAAIwB,SAAS,GAAG,aAAe,YAAY;EACvC,SAASA,SAASA,CAAA,EAAG,CACrB;EACAA,SAAS,CAACC,UAAU,GAAG,KAAK;EAC5BD,SAAS,CAACE,UAAU,GAAG,IAAI;EAC3BF,SAAS,CAACG,aAAa,GAAG,IAAI;EAC9BH,SAAS,CAACI,eAAe,GAAG,cAAc;EAC1CJ,SAAS,CAACK,YAAY,GAAG,KAAK;EAC9BL,SAAS,CAACM,cAAc,GAAG;IACvBC,cAAc,EAAE,CAAC;IACjBC,YAAY,EAAE,CAAC;IACfC,cAAc,EAAE,CAAC;IACjBC,cAAc,EAAE,GAAG;IACnBC,gBAAgB,EAAE;EACtB,CAAC;EACDX,SAAS,CAACY,aAAa,GAAG;IACtB,KAAK,EAAE,oFAAoF;IAC3F,UAAU,EAAE,gEAAgE;IAC5E,OAAO,EAAE,2DAA2D;IACpE,MAAM,EAAE,0CAA0C;IAClD,MAAM,EAAE,mFAAmF;IAC3F,SAAS,EAAE;EACf,CAAC;EACD,OAAOZ,SAAS;AACpB,CAAC,CAAC,CAAE;;;;;;;;;;;;;ACxBJ;AAAe,8jSAA+/R,sCAAsC,wl+BAAwl+B,qCAAqC,qCAAqC,oCAAoC,y3PAAy3P,kaAAka,oaAAoa,ybAAyb,+rDAA+rD,gDAAgD,qxnBAAqxnB,uCAAuC,qtBAAqtB,uCAAuC,g2HAAg2H,E;;;;;;;;;;;;ACAz/2E;AAAe,2yIAA4uI,sCAAsC,+pBAA+pB,uCAAuC,4pBAA4pB,uCAAuC,u4IAAu4I,E;;;;;;;;;;;;ACAjjU;AAAe,kGAAmC,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAM;AACf;AACI;AACkC;AAChC;AACS;AACT;AAGI;AAI1B;AACiC;AAKhC;AAC8B;AACkB;AACtB;AACR;;;IA0CpB,CAAC;IAAZ,SAAS;QAxCrB,8DAAQ,CAAC;YACR,YAAY,EAAE;gBACZ,2DAAY;aAKb;YACD,OAAO,EAAE;gBACP,4FAAuB;gBACvB,0DAAW;gBACX,qEAAgB;gBAChB,4DAAY;gBACZ,wEAAa;gBACb,4DAAY;gBACZ,oEAAgB;gBAChB,8BAA8B;gBAC9B,+BAA+B;gBAC/B,2BAA2B;gBAC3B,4BAA4B;gBAC5B,wBAAwB;gBACxB,+DAAW;gBACX,uEAAqB;aAMtB;YACD,OAAO,EAAE,CAAC,uEAAqB,CAAC;YAChC,SAAS,EAAE;gBACT,iEAAU;gBACV,yDAAU;gBACV,wEAAsB;gBACtB,qEAAS;gBACT,uFAAkB;gBAClB,0EAAwB;aACzB;YACD,SAAS,EAAE,CAAC,2DAAY,CAAC;SAC1B,CAAC;OACW,SAAS,CAAG;IAAD,gBAAC;CAAA;AAAH;;;;;;;;;;;;;ACjEtB;AAAe,+cAAgZ,UAAU,iBAAiB,iBAAiB,WAAW,+UAA+U,E;;;;;;;;;;;ACAryB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,qC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZ0D;AACjB;AACM;AACF;AACE;AAEW;AACI;AACR;AACE;AACR;AACY;AACV;AACY;AACN;AACN;AACmB;AACf;AACT;AAC8D;AAElD;AAC2B;AACG;AACH;AAEpF,eAAe;AACyC;AACC;AACS;AACoB;AAC1B;AAC0B;AACG;AACN;AACT;AACS;AACxB;;;IA4DjC,CAAC;IAAd,WAAW;QA1DvB,8DAAQ,CAAC;YACR,OAAO,EAAE;gBACP,4DAAY;gBACZ,uEAAa;gBACb,0DAAW;gBACX,4DAAY;gBACZ,uEAAgB,CAAC,OAAO,EAAE;gBAC1B,2EAAiB,CAAC,OAAO,EAAE;gBAC3B,mEAAa,CAAC,OAAO,EAAE;gBACvB,oEAAa,CAAC,OAAO,EAAE;gBACvB,qEAAc,CAAC,OAAO,EAAE;gBACxB,mFAA0B;gBAC1B,8DAAU,CAAC,OAAO,EAAE;gBACpB,0EAAgB,CAAC,OAAO,EAAE;gBAC1B,gEAAW,CAAC,OAAO,EAAE;gBACrB,4EAAkB,CAAC,OAAO,EAAE;gBAC5B,sEAAc,CAAC,OAAO,EAAE;gBACxB,gEAAW,CAAC,OAAO,EAAE;gBACrB,2DAAe,CAAC,OAAO,CAAC,yEAAW,CAAC,UAAU,CAAC;gBAC/C,uEAAqB;aACtB;YACD,YAAY,EAAE;gBACZ,qEAAe;gBACf,sEAAc;gBACd,iGAAoB;gBACpB,oGAAqB;gBACrB,iGAAoB;gBACpB,sEAAc;gBACd,+EAAiB;gBACjB,mGAAuB;gBACvB,yEAAe;gBACf,mGAAuB;gBACvB,+FAAqB;gBACrB,sGAAwB;gBACxB,gGAAsB;gBACtB,uFAAmB;aACpB;YACD,OAAO,EAAE;gBACP,qEAAe;gBACf,sEAAc;gBACd,iGAAoB;gBACpB,oGAAqB;gBACrB,iGAAoB;gBACpB,sEAAc;gBACd,+EAAiB;gBACjB,mGAAuB;gBACvB,yEAAe;gBACf,mGAAuB;gBACvB,+FAAqB;gBACrB,sGAAwB;gBACxB,gGAAsB;gBACtB,uFAAmB;gBACnB,0EAAwB;aACzB;YACD,SAAS,EAAE;gBACT,wEAAsB;aACvB;SACF,CAAC;OACW,WAAW,CAAG;IAAD,kBAAC;CAAA;AAAH;;;;;;;;;;;;;;;;;;;;;;;;ACjGmD;AAClC;AACiB;AACA;AACR;;IAmBhD,2BAAoB,OAAe,EAAU,GAAe,EAAU,sBAA8C;QAAhG,YAAO,GAAP,OAAO,CAAQ;QAAU,QAAG,GAAH,GAAG,CAAY;QAAU,2BAAsB,GAAtB,sBAAsB,CAAwB;QAZpH,gBAAW,GAAG,IAAI,CAAC;QACnB,gBAAW,GAAG,KAAK,CAAC;QAIpB,mBAAc,GAAG,gBAAgB,CAAC;QAClC,kBAAa,GAAG,KAAK,CAAC;QACtB,eAAU,GAAQ,EAAE,CAAC;QACrB,gBAAW,GAAQ;YACjB,QAAQ,EAAE,CAAC;SACZ,CAAC;QACF,kBAAa,GAAG,EAAE,CAAC;QAEjB,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,IAAI,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAAC,KAAK,aAAa,EAAE;YAChE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB;IACH,CAAC;IAED,2CAAe,GAAf;QAAA,iBAIC;QAHC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,gFAAgF,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,aAAG;YAC3H,KAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QAC3B,CAAC,CAAC;IACJ,CAAC;IAED,oCAAQ,GAAR;QACE,IAAI,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACtC,CAAC;IAED,0CAAc,GAAd;QAAA,iBAcC;QAbC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE;YACjK,+DAAU,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC3C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,UAAC,GAAG;gBAC7E,IAAI,GAAG,CAAC,IAAI,EAAE;oBACZ,KAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,0EAA0E,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;oBAE9I,+DAAU,CAAC,UAAU,CAAC,KAAI,CAAC,cAAc,CAAC,CAAC;oBAC3C,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;iBACnC;YACH,CAAC,CAAC;SACH;aAAM;YACL,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,kDAAkD,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;SACvH;IACH,CAAC;IAED,uCAAW,GAAX;QACE,IAAI,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACzC,CAAC;;gBA5DM,sDAAM;gBAEN,uEAAU;gBADV,uEAAsB;;IAQlB,iBAAiB;QAJ7B,+DAAS,CAAC;YACT,QAAQ,EAAE,cAAc;YACxB,qFAAsC;SACvC,CAAC;uFAc6B,sDAAM,EAAe,uEAAU,EAAkC,uEAAsB;OAbzG,iBAAiB,CAoD7B;IAAD,wBAAC;CAAA;AApD6B;;;;;;;;;;;;;ACV9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+C;AAC/C;AACqC;AACrC;AACiC;AACU;AACd;AAC6B;AAC1D,IAAIa,UAAU,GAAG,aAAe,YAAY;EACxC,SAASA,UAAUA,CAACC,sBAAsB,EAAE;IACxC,IAAI,CAACA,sBAAsB,GAAGA,sBAAsB;EACxD;EACAC,YAAY,GAAGF,UAAU;EACzB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACIA,UAAU,CAACG,UAAU,GAAG,UAAUC,IAAI,EAAEC,MAAM,EAAE;IAC5C,OAAOC,mCAAM,CAAC,IAAIC,IAAI,CAACH,IAAI,CAAC,CAACI,OAAO,CAAC,CAAC,CAAC,CAACH,MAAM,CAACA,MAAM,CAAC;EAC1D,CAAC;EACDL,UAAU,CAACS,OAAO,GAAG,UAAUpa,KAAK,EAAEqa,aAAa,EAAE;IACjD,IAAIA,aAAa,KAAK,KAAK,CAAC,EAAE;MAAEA,aAAa,GAAGvB,iDAAS,CAACY,aAAa,CAACY,QAAQ;IAAE;IAClF,OAAO,IAAIC,MAAM,CAACF,aAAa,CAAC,CAACG,IAAI,CAACxa,KAAK,CAAC;EAChD,CAAC;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;EACI2Z,UAAU,CAACc,gBAAgB,GAAG,UAAU3L,IAAI,EAAE4L,KAAK,EAAEvX,OAAO,EAAEwX,IAAI,EAAEC,UAAU,EAAE;IAC5E,IAAI9L,IAAI,KAAK,KAAK,CAAC,EAAE;MAAEA,IAAI,GAAG,SAAS;IAAE;IACzC,IAAI4L,KAAK,KAAK,KAAK,CAAC,EAAE;MAAEA,KAAK,GAAG,EAAE;IAAE;IACpC,IAAIC,IAAI,KAAK,KAAK,CAAC,EAAE;MAAEA,IAAI,GAAG,EAAE;IAAE;IAClC,IAAIC,UAAU,KAAK,KAAK,CAAC,EAAE;MAAEA,UAAU,GAAG,EAAE;IAAE;EAClD,CAAC;EACDjB,UAAU,CAACkB,QAAQ,GAAG,YAAY;IAC9B,IAAI/B,iDAAS,CAACE,UAAU,EAAE;MACtB,OAAOF,iDAAS,CAACE,UAAU;IAC/B;IACA,OAAO,IAAI,CAAC8B,SAAS,CAAC,WAAW,CAAC;EACtC,CAAC;EACDnB,UAAU,CAACoB,WAAW,GAAG,YAAY;IACjC,OAAO,IAAI,CAACD,SAAS,CAAC,cAAc,CAAC,GAAGhV,IAAI,CAACiR,KAAK,CAAC,IAAI,CAAC+D,SAAS,CAAC,cAAc,CAAC,CAAC,GAAG,IAAI;EAC7F,CAAC;EACDnB,UAAU,CAACqB,SAAS,GAAG,UAAU5V,KAAK,EAAE;IACpC0T,iDAAS,CAACE,UAAU,GAAG5T,KAAK;IAC5B0T,iDAAS,CAACC,UAAU,GAAG,IAAI;IAC3B,IAAI,CAACkC,SAAS,CAAC,WAAW,EAAE7V,KAAK,CAAC;EACtC,CAAC;EACDuU,UAAU,CAACuB,cAAc,GAAG,UAAUC,OAAO,EAAEC,YAAY,EAAE;IACzD,IAAID,OAAO,KAAK,KAAK,CAAC,EAAE;MAAEA,OAAO,GAAG,CAAC;IAAE;IACvC,IAAIC,YAAY,KAAK,KAAK,CAAC,EAAE;MAAEA,YAAY,GAAG,CAAC;IAAE;IACjD,IAAIC,gBAAgB,GAAGD,YAAY,GAAGD,OAAO;IAC7C,IAAIG,KAAK,GAAG,CAACD,gBAAgB,GAAG,EAAE,EAAEE,OAAO,CAAC,CAAC,CAAC;IAC9C,OAAOD,KAAK;EAChB,CAAC;EACD3B,UAAU,CAAC6B,eAAe,GAAG,UAAUL,OAAO,EAAEC,YAAY,EAAE7B,cAAc,EAAE;IAC1E,IAAI4B,OAAO,KAAK,KAAK,CAAC,EAAE;MAAEA,OAAO,GAAG,CAAC;IAAE;IACvC,IAAIC,YAAY,KAAK,KAAK,CAAC,EAAE;MAAEA,YAAY,GAAG,CAAC;IAAE;IACjD,IAAI7B,cAAc,KAAK,KAAK,CAAC,EAAE;MAAEA,cAAc,GAAG,CAAC;IAAE;IACrD,IAAI8B,gBAAgB,GAAID,YAAY,GAAGD,OAAO,IAAK,CAAC,GAAIC,YAAY,GAAGD,OAAO,GAAI,CAAC;IACnF,IAAIM,IAAI,GAAG,CAACJ,gBAAgB,GAAG,EAAE,EAAEE,OAAO,CAAC,CAAC,CAAC;IAC7C,IAAIG,MAAM,GAAGnC,cAAc,GAAG,CAAC8B,gBAAgB,GAAG9B,cAAc,EAAEgC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IACpF;IACA,OAAO;MAAEE,IAAI,EAAEA,IAAI;MAAEC,MAAM,EAAEA;IAAO,CAAC;EACzC,CAAC;EACD/B,UAAU,CAACgC,YAAY,GAAG,UAAUC,QAAQ,EAAE;IAC1C,IAAI,CAACX,SAAS,CAAC,cAAc,EAAEnV,IAAI,CAACC,SAAS,CAAC6V,QAAQ,CAAC,CAAC;EAC5D,CAAC;EACDjC,UAAU,CAACkC,YAAY,GAAG,YAAY;IAClC/C,iDAAS,CAACE,UAAU,GAAG,IAAI;IAC3BF,iDAAS,CAACC,UAAU,GAAG,KAAK;IAC5B,IAAI,CAAC+C,YAAY,CAAC,WAAW,CAAC;EAClC,CAAC;EACDnC,UAAU,CAACoC,eAAe,GAAG,YAAY;IACrC,IAAI,CAACD,YAAY,CAAC,cAAc,CAAC;IACjC,IAAI,CAACA,YAAY,CAAC,mBAAmB,CAAC;EAC1C,CAAC;EACDnC,UAAU,CAACZ,UAAU,GAAG,YAAY;IAChC,OAAO,IAAI,CAAC8B,QAAQ,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK;EACzC,CAAC;EACDlB,UAAU,CAACqC,UAAU,GAAG,UAAUC,SAAS,EAAE;IACzCtd,QAAQ,CAACC,cAAc,CAACqd,SAAS,CAAC,CAACC,SAAS,CAACC,GAAG,CAAC,aAAa,CAAC;EACnE,CAAC;EACDxC,UAAU,CAACyC,UAAU,GAAG,UAAUH,SAAS,EAAE;IACzC,IAAIA,SAAS,KAAK,KAAK,CAAC,EAAE;MAAEA,SAAS,GAAG,IAAI;IAAE;IAC9C,IAAIA,SAAS,EAAE;MACXtd,QAAQ,CAACC,cAAc,CAACqd,SAAS,CAAC,GAAGtd,QAAQ,CAACC,cAAc,CAACqd,SAAS,CAAC,CAACC,SAAS,CAACG,MAAM,CAAC,aAAa,CAAC,GAAG,IAAI;IAClH,CAAC,MACI;MACD1d,QAAQ,CAAC2d,gBAAgB,CAAC,cAAc,CAAC,CAAC9Z,OAAO,CAAC,UAAUyI,OAAO,EAAE;QACjEA,OAAO,CAACiR,SAAS,CAACG,MAAM,CAAC,aAAa,CAAC;MAC3C,CAAC,CAAC;IACN;EACJ,CAAC;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;EACI1C,UAAU,CAACsB,SAAS,GAAG,UAAUsB,KAAK,EAAEC,MAAM,EAAEC,MAAM,EAAE;IACpD,IAAIA,MAAM,KAAK,KAAK,CAAC,EAAE;MAAEA,MAAM,GAAG,EAAE;IAAE;IACtCC,YAAY,CAACC,OAAO,CAACJ,KAAK,EAAEC,MAAM,CAAC;EACvC,CAAC;EACD;AACJ;AACA;AACA;AACA;AACA;EACI7C,UAAU,CAACmB,SAAS,GAAG,UAAUyB,KAAK,EAAE;IACpC,IAAIK,OAAO,GAAGF,YAAY,CAACG,OAAO,CAACN,KAAK,CAAC,GAAGG,YAAY,CAACG,OAAO,CAACN,KAAK,CAAC,GAAG,IAAI;IAC9E,OAAOK,OAAO;EAClB,CAAC;EACD;AACJ;AACA;AACA;AACA;EACIjD,UAAU,CAACmC,YAAY,GAAG,UAAUS,KAAK,EAAE;IACvCG,YAAY,CAACI,UAAU,CAACP,KAAK,CAAC;EAClC,CAAC;EACD;AACJ;AACA;AACA;AACA;EACI5C,UAAU,CAACoD,eAAe,GAAG,UAAUC,QAAQ,EAAE;IAC7C,IAAIC,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAIC,SAAS,GAAG,EAAE;IAClB,IAAIC,OAAO;IACX,IAAIC,MAAM;IACV,IAAIC,IAAI;IACR,IAAIC,UAAU,GAAG,EAAE;IACnB,IAAIN,QAAQ,CAACO,MAAM,KAAK,GAAG,EAAE;MAAE;MAC3BJ,OAAO,GAAGH,QAAQ,CAAC/Z,KAAK,IAAI+Z,QAAQ,CAAC/Z,KAAK,CAACiU,IAAI,GAAG8F,QAAQ,CAAC/Z,KAAK,CAACiU,IAAI,GAAG,yCAAyC;MACjHkG,MAAM,GAAG,SAAS;MAClBC,IAAI,GAAG,oBAAoB;IAC/B,CAAC,MACI;MAAE;MACHF,OAAO,GAAGH,QAAQ,CAAC/Z,KAAK,IAAI+Z,QAAQ,CAAC/Z,KAAK,CAACE,OAAO,GAAG6Z,QAAQ,CAAC/Z,KAAK,CAACE,OAAO,GAAG,uBAAuB;MACrGia,MAAM,GAAG,QAAQ;MACjBC,IAAI,GAAG,eAAe;IAC1B;IACAxD,YAAY,CAACuC,UAAU,CAAC,CAAC;IACzB,OAAOoB,0CAAK;EAChB,CAAC;EACD;EACA,IAAI3D,YAAY;EAChBF,UAAU,CAAC8D,cAAc,GAAG,YAAY;IAAE,OAAO,CAC7C;MAAE3O,IAAI,EAAE4O,uEAAsBA;IAAC,CAAC,CACnC;EAAE,CAAC;EACJ/D,UAAU,GAAGE,YAAY,GAAG8D,wDAAU,CAAC,CACnCC,gEAAU,CAAC,CAAC,EACZC,wDAAU,CAAC,mBAAmB,EAAE,CAACH,uEAAsB,CAAC,CAAC,CAC5D,EAAE/D,UAAU,CAAC;EACd,OAAOA,UAAU;AACrB,CAAC,CAAC,CAAE;;;;;;;;;;;;;;;;;;;ACrKG,IAAMhF,SAAS;EAElB,SAAAA,UAAYzU,QAAQ,EAAE;IAAAxE,0IAAA,OAAAiZ,SAAA;IAClB,IAAI,CAACzU,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAAC4d,uBAAuB,GAAG,CAAC;IAChC,IAAI,CAAC3J,cAAc,GAAG,CAAC;IACvB,IAAI,CAAC7B,gBAAgB,GAAG,CAAC;IACzB,IAAI,CAACE,YAAY,GAAG,CAAC;IACrB,IAAI,CAACuL,SAAS,GAAG,CAAC;IAClB,IAAI,CAACC,iBAAiB,GAAG,CAAC;IAChC,IAAI,CAACC,uBAAuB,GAAG,CAAC;IAC1B,IAAI,CAACC,iBAAiB,GAAG,CAAC;IAC1B,IAAI,CAACC,aAAa,GAAG,CAAC;IACtB,IAAI,CAACC,gBAAgB,GAAG,CAAC;IACzB,IAAI,CAACC,QAAQ,GAAG,CAAC;IACjB,IAAI,CAAC/P,OAAO,GAAG,CAAC;IAChB,IAAI,CAACgQ,kBAAkB,GAAG,CAAC;IAC3B,IAAI,CAACC,uBAAuB,GAAG,CAAC;IAChC,IAAI,CAAC5L,UAAU,GAAG,CAAC,CAAC;IACpB,IAAI,CAACiB,uBAAuB,GAAG,EAAE;IACjC;IACA,IAAI,CAACS,QAAQ,GAAG,CAAC;IACjB,IAAI,CAACC,SAAS,GAAG,CAAC;IAClB,IAAI,CAACC,MAAM,GAAG,CAAC;IACf;IACA,IAAI,CAACxB,UAAU,GAAG,CAAC;IACnB,IAAI,CAACC,WAAW,GAAG,CAAC;IAEpB,IAAI,CAACC,kBAAkB,GAAG,CAAC;IAC3B,IAAI,CAACC,WAAW,GAAG,CAAC;IAEpB,IAAI,CAACC,kBAAkB,GAAG,CAAC;IAC3B,IAAI,CAACC,WAAW,GAAG,CAAC;IAEpB,IAAI,CAACb,gBAAgB,GAAG,CAAC;IAEzB,IAAI,CAACgB,cAAc,GAAG,CAAC;IACvB,IAAI,CAACD,aAAa,GAAG,CAAC;IACtB,IAAI,CAACD,aAAa,GAAG,CAAC;IAEtB,IAAI,CAACG,uBAAuB,GAAG,CAAC;IAChC,IAAI,CAACC,uBAAuB,GAAG,CAAC;EACpC;;EAEA;EAAA,OAAAjY,uIAAA,CAAAmZ,SAAA;IAAAnW,GAAA;IAAAuZ,GAAA,EACA,SAAAA,IAAA,EAA6B;MACzB,OAAOhC,IAAI,CAACC,KAAK,CAAC,CAAC,IAAI,IAAI,CAACwI,mBAAmB,GAAG,IAAI,CAACF,kBAAkB,CAAC,IAAI,IAAI,CAACF,gBAAgB,GAAG,IAAI,CAACL,SAAS,CAAC,CAAC;IAC1H;;IAEA;EAAA;IAAAvf,GAAA;IAAAuZ,GAAA,EACA,SAAAA,IAAA,EAAiB;MACb,OAAO,CAAE,CAAC,IAAI,CAACkG,uBAAuB,GAAG,IAAI,CAACD,iBAAiB,KAAK,IAAI,CAACI,gBAAgB,GAAG,IAAI,CAACC,QAAQ,CAAC,GAAE,IAAI,EAAE9C,OAAO,CAAC,CAAC,CAAC;IAChI;IACA;EAAA;IAAA/c,GAAA;IAAAuZ,GAAA,EACA,SAAAA,IAAA,EAA6B;MACzB,OAAOhC,IAAI,CAACC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC8H,uBAAuB,GAAG,IAAI,CAACS,uBAAuB,CAAC,IAAI,IAAI,CAACH,gBAAgB,GAAG,IAAI,CAACL,SAAS,CAAC,CAAC;IACnI;;IAEA;EAAA;IAAAvf,GAAA;IAAAuZ,GAAA,EACA,SAAAA,IAAA,EAA6B;MACzB,OAAOhC,IAAI,CAACC,KAAK,CAAC,CAAC,IAAI,IAAI,CAACwI,mBAAmB,GAAG,IAAI,CAACL,aAAa,CAAC,IAAI,IAAI,CAACC,gBAAgB,GAAG,IAAI,CAACC,QAAQ,CAAC,CAAC;IACpH;;IAEA;EAAA;IAAA7f,GAAA;IAAAuZ,GAAA,EACA,SAAAA,IAAA,EAA6B;MACzB,OAAOhC,IAAI,CAACC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC8H,uBAAuB,GAAG,IAAI,CAACI,iBAAiB,CAAC,IAAI,IAAI,CAACE,gBAAgB,GAAG,IAAI,CAACC,QAAQ,CAAC,CAAC;IAC5H;EAAC;IAAA7f,GAAA;IAAAkO,GAAA,EAED,SAAAA,IAAgBiH,SAAS,EAAE;MACvB,IAAI,CAAC0K,QAAQ,GAAG,IAAI,CAACD,gBAAgB;MACrC,IAAI,CAACA,gBAAgB,GAAGzK,SAAS;MACjC,IAAI,IAAI,CAACoK,SAAS,IAAI,CAAC,EAAE;QACrB,IAAI,CAACA,SAAS,GAAGpK,SAAS,GAAC,CAAC,CAAC,CAAC;MAClC;IACJ;EAAC;IAAAnV,GAAA;IAAAkO,GAAA,EAED,SAAAA,IAAuB2F,aAAa,EAAE;MAClC,IAAI,CAAC6L,iBAAiB,GAAG,IAAI,CAACJ,uBAAuB;MACrD,IAAI,CAACA,uBAAuB,GAAGzL,aAAa;MAC5C,IAAI,IAAI,CAACkM,uBAAuB,IAAI,CAAC,EAAE;QACnC,IAAI,CAACA,uBAAuB,GAAGlM,aAAa;MAChD;IACJ;EAAC;IAAA7T,GAAA;IAAAkO,GAAA,EAED,SAAAA,IAAmBgG,SAAS,EAAE;MAC1B,IAAI,CAACyL,aAAa,GAAG,IAAI,CAACK,mBAAmB;MAC7C,IAAI,CAACA,mBAAmB,GAAG9L,SAAS;MACpC,IAAI,IAAI,CAAC4L,kBAAkB,IAAI,CAAC,EAAE;QAC9B,IAAI,CAACA,kBAAkB,GAAG5L,SAAS;MACvC;IACJ;EAAC;IAAAlU,GAAA;IAAAkO,GAAA,EACD,SAAAA,IAAuBmG,aAAa,EAAE;MAClC,IAAI,CAACmL,iBAAiB,GAAG,IAAI,CAACC,uBAAuB;MACrD,IAAI,CAACA,uBAAuB,GAAGpL,aAAa;MAC5C,IAAI,IAAI,CAACmL,iBAAiB,IAAI,CAAC,EAAE;QAC7B,IAAI,CAACA,iBAAiB,GAAGnL,aAAa;MAC1C;IACJ;EAAC;AAAA,I;;;;;;;;;;;;ACjGL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+C;AACc;AACC;AACjC;AACc;AACC;AACC;AACJ;AACiB;AAC1D,IAAI4L,IAAI;AACR,IAAIC,UAAU,GAAG,aAAe,YAAY;EACxC,SAASA,UAAUA,CAACC,IAAI,EAAEC,MAAM,EAAEC,OAAO,EAAEjF,sBAAsB,EAAE;IAC/D,IAAI,CAAC+E,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACjF,sBAAsB,GAAGA,sBAAsB;IACpD,IAAI,CAACkF,WAAW,GAAG,IAAI,CAACD,OAAO;IAC/BJ,IAAI,GAAG,IAAI;EACf;EACAC,UAAU,CAAClN,SAAS,CAACuN,YAAY,GAAG,UAAU/B,QAAQ,EAAE;IACpDna,OAAO,CAACC,GAAG,CAAC,YAAY,EAAEka,QAAQ,CAAC;IACnC,IAAI7Z,OAAO,GAAG,8BAA8B;IAC5C,IAAI6Z,QAAQ,IAAIA,QAAQ,CAAC/Z,KAAK,EAAE;MAC5BE,OAAO,GAAG6Z,QAAQ,CAAC/Z,KAAK,CAACE,OAAO;IACpC;IACAsb,IAAI,CAAC7E,sBAAsB,CAACoF,WAAW,CAAC7b,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC;IACzEwW,wDAAU,CAACyC,UAAU,CAAC,CAAC;IACvB,OAAOoB,0CAAK;EAChB,CAAC;EACDkB,UAAU,CAAClN,SAAS,CAACuG,GAAG,GAAG,UAAUkH,IAAI,EAAEC,MAAM,EAAEC,OAAO,EAAEC,UAAU,EAAEC,mBAAmB,EAAEC,MAAM,EAAE;IACjG,IAAIJ,MAAM,KAAK,KAAK,CAAC,EAAE;MAAEA,MAAM,GAAG,IAAIK,+DAAU,CAAC,CAAC;IAAE;IACpD,IAAIJ,OAAO,KAAK,KAAK,CAAC,EAAE;MAAEA,OAAO,GAAG,CAAC,CAAC;IAAE;IACxC,IAAIC,UAAU,KAAK,KAAK,CAAC,EAAE;MAAEA,UAAU,GAAG,IAAI;IAAE;IAChD,IAAIC,mBAAmB,KAAK,KAAK,CAAC,EAAE;MAAEA,mBAAmB,GAAG,IAAI;IAAE;IAClE,IAAIC,MAAM,KAAK,KAAK,CAAC,EAAE;MAAEA,MAAM,GAAG,IAAI;IAAE;IACxC,IAAIE,WAAW,GAAG,KAAK;IACvB;IACA,IAAIJ,UAAU,EAAE;MACZI,WAAW,GAAG7F,wDAAU,CAACZ,UAAU,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK;IACxD,CAAC,MACI;MACDyG,WAAW,GAAG,IAAI;IACtB;IACA,IAAIC,OAAO,GAAG,EAAE,GAAGC,qEAAW,CAACC,OAAO,GAAGV,IAAI;IAC7C,IAAIA,IAAI,CAAC9T,QAAQ,CAAC,MAAM,CAAC,EAAE;MACvBsU,OAAO,GAAGR,IAAI;IAClB;IACA;IACA,IAAIO,WAAW,EAAE;MACb,IAAIH,mBAAmB,EAAE;QACrB,OAAO,IAAI,CAACV,IAAI,CAAC5G,GAAG,CAAC,EAAE,IAAIuH,MAAM,IAAIG,OAAO,CAAC,EAAE;UAAEP,MAAM,EAAEA,MAAM;UAAEC,OAAO,EAAEA;QAAQ,CAAC,CAAC,CAACS,IAAI,CAACC,iEAAU,CAAC,IAAI,CAACd,YAAY,CAAC,CAAC;MAC5H,CAAC,MACI;QACD,OAAO,IAAI,CAACJ,IAAI,CAAC5G,GAAG,CAAC,EAAE,IAAIuH,MAAM,IAAIG,OAAO,CAAC,EAAE;UAAEP,MAAM,EAAEA,MAAM;UAAEC,OAAO,EAAEA;QAAQ,CAAC,CAAC;MACxF;IACJ,CAAC,MACI;MACD,IAAI,CAACP,MAAM,CAACkB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;IACpC;EACJ,CAAC;EACDpB,UAAU,CAAClN,SAAS,CAACuO,GAAG,GAAG,UAAUd,IAAI,EAAEe,IAAI,EAAEb,OAAO,EAAEC,UAAU,EAAE;IAClE,IAAIY,IAAI,KAAK,KAAK,CAAC,EAAE;MAAEA,IAAI,GAAG,CAAC,CAAC;IAAE;IAClC,IAAIb,OAAO,KAAK,KAAK,CAAC,EAAE;MAAEA,OAAO,GAAG,CAAC,CAAC;IAAE;IACxC,IAAIC,UAAU,KAAK,KAAK,CAAC,EAAE;MAAEA,UAAU,GAAG,IAAI;IAAE;IAChD,IAAII,WAAW,GAAG,KAAK;IACvB;IACA,IAAIJ,UAAU,EAAE;MACZI,WAAW,GAAG7F,wDAAU,CAACZ,UAAU,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK;IACxD,CAAC,MACI;MACDyG,WAAW,GAAG,IAAI;IACtB;IACA;IACA,IAAIA,WAAW,EAAE;MACb,OAAO,IAAI,CAACb,IAAI,CAACoB,GAAG,CAAC,EAAE,GAAGL,qEAAW,CAACC,OAAO,GAAGV,IAAI,EAAEe,IAAI,EAAE;QAAEb,OAAO,EAAEA;MAAQ,CAAC,CAAC,CAACS,IAAI,CAACC,iEAAU,CAAC,IAAI,CAACd,YAAY,CAAC,CAAC;IACzH,CAAC,MACI;MACD,IAAI,CAACH,MAAM,CAACkB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;IACpC;EACJ,CAAC;EACDpB,UAAU,CAAClN,SAAS,CAACyO,IAAI,GAAG,UAAUhB,IAAI,EAAEe,IAAI,EAAEb,OAAO,EAAEC,UAAU,EAAEC,mBAAmB,EAAE;IACxF,IAAIW,IAAI,KAAK,KAAK,CAAC,EAAE;MAAEA,IAAI,GAAG,CAAC,CAAC;IAAE;IAClC,IAAIb,OAAO,KAAK,KAAK,CAAC,EAAE;MAAEA,OAAO,GAAG,CAAC,CAAC;IAAE;IACxC,IAAIC,UAAU,KAAK,KAAK,CAAC,EAAE;MAAEA,UAAU,GAAG,IAAI;IAAE;IAChD,IAAIC,mBAAmB,KAAK,KAAK,CAAC,EAAE;MAAEA,mBAAmB,GAAG,IAAI;IAAE;IAClE,IAAIG,WAAW,GAAG,KAAK;IACvB;IACA,IAAIJ,UAAU,EAAE;MACZI,WAAW,GAAG7F,wDAAU,CAACZ,UAAU,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK;IACxD,CAAC,MACI;MACDyG,WAAW,GAAG,IAAI;IACtB;IACA;IACA,IAAIA,WAAW,EAAE;MACb,IAAIH,mBAAmB,EAAE;QACrB,OAAO,IAAI,CAACV,IAAI,CAACsB,IAAI,CAAC,EAAE,GAAGP,qEAAW,CAACC,OAAO,GAAGV,IAAI,EAAEe,IAAI,EAAE;UAAEb,OAAO,EAAEA;QAAQ,CAAC,CAAC,CAACS,IAAI,CAACC,iEAAU,CAAC,IAAI,CAACd,YAAY,CAAC,CAAC;MAC1H,CAAC,MACI;QACD,OAAO,IAAI,CAACJ,IAAI,CAACsB,IAAI,CAAC,EAAE,GAAGP,qEAAW,CAACC,OAAO,GAAGV,IAAI,EAAEe,IAAI,EAAE;UAAEb,OAAO,EAAEA;QAAQ,CAAC,CAAC;MACtF;IACJ,CAAC,MACI;MACD,IAAI,CAACP,MAAM,CAACkB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;IACpC;EACJ,CAAC;EACDpB,UAAU,CAAClN,SAAS,CAAC0O,MAAM,GAAG,UAAUjB,IAAI,EAAEE,OAAO,EAAEC,UAAU,EAAE;IAC/D,IAAID,OAAO,KAAK,KAAK,CAAC,EAAE;MAAEA,OAAO,GAAG,CAAC,CAAC;IAAE;IACxC,IAAIC,UAAU,KAAK,KAAK,CAAC,EAAE;MAAEA,UAAU,GAAG,IAAI;IAAE;IAChD,IAAII,WAAW,GAAG,KAAK;IACvB;IACA,IAAIJ,UAAU,EAAE;MACZI,WAAW,GAAG7F,wDAAU,CAACZ,UAAU,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK;IACxD,CAAC,MACI;MACDyG,WAAW,GAAG,IAAI;IACtB;IACA;IACA,IAAIA,WAAW,EAAE;MACb,OAAO,IAAI,CAACb,IAAI,CAACuB,MAAM,CAAC,EAAE,GAAGR,qEAAW,CAACC,OAAO,GAAGV,IAAI,EAAE;QAAEE,OAAO,EAAEA;MAAQ,CAAC,CAAC,CAACS,IAAI,CAACC,iEAAU,CAAC,IAAI,CAACd,YAAY,CAAC,CAAC;IACtH,CAAC,MACI;MACD,IAAI,CAACH,MAAM,CAACkB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;IACpC;EACJ,CAAC;EACDpB,UAAU,CAACjB,cAAc,GAAG,YAAY;IAAE,OAAO,CAC7C;MAAE3O,IAAI,EAAEqR,+DAAUA;IAAC,CAAC,EACpB;MAAErR,IAAI,EAAEsR,sDAAMA;IAAC,CAAC,EAChB;MAAEtR,IAAI,EAAE6K,wDAAUA;IAAC,CAAC,EACpB;MAAE7K,IAAI,EAAE4O,uEAAsBA;IAAC,CAAC,CACnC;EAAE,CAAC;EACJgB,UAAU,GAAGf,wDAAU,CAAC,CACpBC,gEAAU,CAAC;IACPyC,UAAU,EAAE;EAChB,CAAC,CAAC,EACFxC,wDAAU,CAAC,mBAAmB,EAAE,CAACsC,+DAAU,EACvCC,sDAAM,EACNzG,wDAAU,EACV+D,uEAAsB,CAAC,CAAC,CAC/B,EAAEgB,UAAU,CAAC;EACd,OAAOA,UAAU;AACrB,CAAC,CAAC,CAAE;;;;;;;;;;;;;AC7IJ;AAAe,2MAA4I,4uBAA4uB,gWAAgW,uCAAuC,opBAAopB,iBAAiB,yMAAyM,uCAAuC,wnBAAwnB,iBAAiB,yMAAyM,0DAA0D,8cAA8c,iBAAiB,sZAAsZ,0DAA0D,seAAse,iBAAiB,kbAAkb,0DAA0D,6dAA6d,iBAAiB,mZAAmZ,0DAA0D,mdAAmd,iBAAiB,q8BAAq8B,uCAAuC,iFAAiF,QAAQ,gBAAgB,iBAAiB,oJAAoJ,iBAAiB,ySAAyS,uCAAuC,iFAAiF,QAAQ,gBAAgB,iBAAiB,+JAA+J,iBAAiB,iYAAiY,0DAA0D,0cAA0c,iBAAiB,2RAA2R,0DAA0D,2cAA2c,iBAAiB,g0BAAg0B,0DAA0D,0WAA0W,iBAAiB,qRAAqR,4CAA4C,KAAK,YAAY,IAAI,sDAAsD,iTAAiT,8FAA8F,gpBAAgpB,iBAAiB,yMAAyM,8FAA8F,0oBAA0oB,iBAAiB,yMAAyM,8FAA8F,spBAAspB,iBAAiB,wxBAAwxB,iBAAiB,sOAAsO,iGAAiG,2oBAA2oB,iBAAiB,yMAAyM,gGAAgG,soBAAsoB,iBAAiB,ozCAAozC,wDAAwD,mYAAmY,WAAW,oCAAoC,iCAAiC,4JAA4J,E;;;;;;;;;;;;;;;;;;;ACAzkmB;;IAazE;QANA,gBAAW,GAAG,IAAI,CAAC;QAInB,eAAU,GAAG,YAAY,CAAC;QAC1B,cAAS,GAAG,KAAK,CAAC;IACH,CAAC;IAEhB,0CAAQ,GAAR;QACE,IAAI,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACtC,CAAC;IAED,4CAAU,GAAV;QAAA,iBAMC;QALC,QAAQ,CAAC,aAAa,CAAC,MAAI,IAAI,CAAC,UAAY,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3E,UAAU,CAAC;YACT,KAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,QAAQ,CAAC,aAAa,CAAC,MAAI,KAAI,CAAC,UAAY,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAChF,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,6CAAW,GAAX;QACE,IAAI,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACzC,CAAC;;IAzBU,uBAAuB;QAJnC,+DAAS,CAAC;YACT,QAAQ,EAAE,qBAAqB;YAC/B,4FAA6C;SAC9C,CAAC;;OACW,uBAAuB,CA0BnC;IAAD,8BAAC;CAAA;AA1BmC;;;;;;;;;;;;;ACNpC;AAAe,iNAAkJ,42BAA42B,E;;;;;;;;;;;;;;;;;;;ACAr8B;;IAStE;IAAe,CAAC;IAChB,2CAAQ,GAAR;IAEA,CAAC;IACD,8CAAW,GAAX;IACA,CAAC;;IANU,wBAAwB;QAJpC,+DAAS,CAAC;YACT,QAAQ,EAAE,sBAAsB;YAChC,6FAA8C;SAC/C,CAAC;;OACW,wBAAwB,CAOpC;IAAD,+BAAC;CAAA;AAPoC;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRmC;AAC/B;AAES;AACW;AAEW;AACd;AACP;AACC;;IAelD,+BAAoB,OAAe,EAAU,GAAe,EAAU,sBAA8C;QAAhG,YAAO,GAAP,OAAO,CAAQ;QAAU,QAAG,GAAH,GAAG,CAAY;QAAU,2BAAsB,GAAtB,sBAAsB,CAAwB;QARpH,gBAAW,GAAG,IAAI,CAAC;QACnB,cAAS,GAAG,CAAC,cAAc,CAAC,CAAC;QAC7B,oBAAe,GAAG,SAAS,CAAC;QAC5B,kBAAa,GAAG,IAAI,CAAC;QACrB,gBAAW,GAAG,EAAE,CAAC;QACjB,oBAAe,GAAG,IAAI,CAAC;QACvB,WAAM,GAAG,IAAI,CAAC;QACd,eAAU,GAAG,IAAI,CAAC;QAEhB,IAAI,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,EAAE;YACtG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC3E,IAAI,CAAC,SAAS,GAAG,CAAC,cAAc,CAAC,CAAC;SACnC;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,CAAC,SAAS,CAAC,CAAC;SAC9B;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,gEAAW,CAAC;YAC5B,gBAAgB,EAAE,+DAAU,CAAC,QAAQ,EAAE;SACvC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,IAAI,gEAAW,CAAC;YACjC,eAAe,EAAE,+DAAU,CAAC,QAAQ,EAAE;SACtC,CAAC,CAAC;QAEJ,IAAI,+DAAU,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,iEAAS,CAAC,aAAa,EAAE;YAC7E,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;SAC1B;IACH,CAAC;IACD,wCAAQ,GAAR;QACE,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IACD,2CAAW,GAAX;IACA,CAAC;IAED,sCAAM,GAAN;QAAA,iBAWC;QAVC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC;YACjE,+DAAU,CAAC,YAAY,EAAE,CAAC;YAC1B,+DAAU,CAAC,eAAe,EAAE,CAAC;YAC7B,YAAY,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;YAC7C,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACzB,iEAAS,CAAC,aAAa,CAAC,WAAW,CAAC,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACjE,iEAAS,CAAC,aAAa,CAAC,cAAc,CAAC,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACpE,aAAa,CAAC,KAAI,CAAC,eAAe,CAAC,CAAC;QACtC,CAAC,CAAC;IACJ,CAAC;IAED,8CAAc,GAAd,UAAe,UAAkB;QAAlB,+CAAkB;QAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,+DAA6D,IAAI,CAAC,aAAa,CAAC,QAAU,CAAC,CAAC,SAAS,CAAC,UAAC,GAAG;YAC9J,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC1B,iEAAS,CAAC,cAAc,CAAC,cAAc,GAAG,GAAG,CAAC,iBAAiB,CAAC;QAClE,CAAC,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,0BAAwB,IAAI,CAAC,aAAa,CAAC,EAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,kBAAQ;;YACvG,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE;gBAC7C,iEAAS,CAAC,cAAc,CAAC,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;gBAC5E,0EAA0E;gBAC1E,iEAAS,CAAC,cAAc,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;gBACxE,iEAAS,CAAC,YAAY,GAAG,eAAQ,CAAC,IAAI,0CAAE,kBAAkB,KAAI,KAAK,CAAC;gBAEpE,IAAM,SAAS,GAAG,+DAAU,CAAC,eAAe,CAAC,iEAAS,CAAC,cAAc,CAAC,cAAc,EAAE,iEAAS,CAAC,cAAc,CAAC,YAAY,EAAE,iEAAS,CAAC,cAAc,CAAC,cAAc,CAAC;gBAErK,iEAAS,CAAC,cAAc,CAAC,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC;gBACzD,iEAAS,CAAC,cAAc,CAAC,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC;gBAE7D,IAAI,CAAC,iEAAS,CAAC,cAAc,CAAC,YAAY,GAAG,iEAAS,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,iEAAS,CAAC,YAAY,EAAE;oBACrH,iEAAS,CAAC,eAAe,GAAG,eAAe,CAAC;oBAC5C,IAAI,CAAC,UAAU,EAAE;wBACf,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;qBAC1B;iBACF;qBAAM;oBACL,iEAAS,CAAC,eAAe,GAAG,iEAAS,CAAC,eAAe,IAAI,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,iEAAS,CAAC,eAAe,CAAC;iBACpH;aACF;QACH,CAAC,CAAC;IACJ,CAAC;IAED,kDAAkB,GAAlB;QACE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/G,CAAC;IAED,qDAAqB,GAArB;QACE,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,SAAS,GAAG;YACd,UAAU,EAAE,CAAC;oBACX,IAAI,EAAE,kCAAkC;oBACxC,QAAQ,EAAE,eAAe;oBACzB,UAAU,EAAE,YAAY;iBACzB,CAAC;SACH,CAAC;QAEF,IAAI,cAAc,GAAG;YACnB,mBAAmB,EAAE,KAAK;YAC1B,mBAAmB,EAAE,KAAK;SAE3B,CAAC;QACF,IAAI,gBAAgB,GAAG;YACrB,KAAK,EAAE,IAAI;SACZ,CAAC;QAEF,iEAAS,CAAC,aAAa,GAAG,IAAI,0EAAa,CAAC;YAC1C,SAAS,EAAE,EAAE;YACb,qFAAqF;YACrF,aAAa,EAAE,gDAAgD;YAC/D,gBAAgB,EAAE,gBAAgB;YAClC,qBAAqB,EAAE,SAAS;YAChC,eAAe,EAAE,cAAc;YAC/B,QAAQ,EAAE,UAAU,IAAI,EAAE,IAAI;gBAC5B,IAAI,IAAI,IAAI,aAAa,EAAE;oBACzB,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,iEAAS,CAAC,aAAa,CAAC,CAAC;oBAC1D,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC,kBAAQ;wBAC1C,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE;4BAC7C,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;4BACxD,kEAAkE;4BAClE,IAAK,CAAC,iEAAS,CAAC,cAAc,CAAC,YAAY,GAAG,iEAAS,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,EAAG;gCAC3F,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;gCACjC,iEAAS,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gCAC3H,iFAAiF;gCACjF,0CAA0C;gCAC1C,iEAAS,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;6BAClE;yBACF;oBACH,CAAC,CAAC,CAAC;iBACJ;qBACI,IAAI,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,IAAI,CAAC,aAAG,IAAI,UAAG,IAAI,IAAI,EAAX,CAAW,CAAC,EAAE;oBACzE,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;oBAC/B,IAAI,iEAAS,CAAC,eAAe,IAAI,eAAe,EAAE;wBAChD,2CAA2C;wBAC3C,iEAAS,CAAC,eAAe,GAAG,sBAAsB,CAAC;qBACpD;oBACD,iEAAS,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBAC7E,iEAAS,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;oBACzC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;iBACrC;qBACI,IAAI,IAAI,IAAI,kBAAkB,EAAE;oBACnC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;oBAChC,iEAAS,CAAC,eAAe,GAAG,cAAc,CAAC;oBAE3C,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAEpC,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC;wBACjC,iEAAS,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBAChI,CAAC,EAAE,KAAK,CAAC;iBACV;qBACI,IAAI,IAAI,IAAI,eAAe,EAAE;oBAChC,yDAAyD;oBACzD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBACzC,IAAI,CAAC,cAAc,EAAE,CAAC;iBACvB;YAEH,CAAC;YACD,aAAa,EAAE,UAAU,KAAK;gBAC5B,iFAAiF;gBACjF,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBACpC,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC;oBACjC,iEAAS,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBAChI,CAAC,EAAE,KAAK,CAAC;gBAET,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,KAAK,CAAC,CAAC;gBACxC,gBAAgB;gBAChB,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;YAC1E,CAAC;SACF,CAAC,CAAC;IACL,CAAC;;gBAlLM,sDAAM;gBAGN,0EAAU;gBAGV,uEAAsB;;IAQlB,qBAAqB;QAJjC,+DAAS,CAAC;YACT,QAAQ,EAAE,gBAAgB;YAC1B,mFAAoC;SACrC,CAAC;uFAU6B,sDAAM,EAAe,0EAAU,EAAkC,uEAAsB;OATzG,qBAAqB,CAqKjC;IAAD,4BAAC;CAAA;AArKiC;;;;;;;;;;;;;ACflC;AAAA;AAAA;IAAA;IAyBA,CAAC;IAvBe,oBAAU,GAAG,KAAK,CAAC;IACnB,oBAAU,GAAG,IAAI,CAAC;IAElB,uBAAa,GAAG,IAAI,CAAC;IACrB,yBAAe,GAAG,cAAc,CAAC;IACjC,sBAAY,GAAG,KAAK,CAAC;IACrB,wBAAc,GAAG;QAC7B,cAAc,EAAE,CAAC;QACjB,YAAY,EAAE,CAAC;QACf,cAAc,EAAE,CAAC;QACjB,cAAc,EAAE,GAAG;QACnB,gBAAgB,EAAE,GAAG;KACtB,CAAC;IAEY,uBAAa,GAAG;QAC5B,KAAK,EAAE,oFAAoF;QAC3F,UAAU,EAAE,gEAAgE;QAC5E,OAAO,EAAE,2DAA2D;QACpE,MAAM,EAAE,0CAA0C;QAClD,MAAM,EAAE,mFAAmF;QAC3F,SAAS,EAAG,2IAA2I;KACxJ;IAEH,gBAAC;CAAA;AAzBqB;;;;;;;;;;;;;ACAtB;AAAe,iNAAkJ,6iFAA6iF,E;;;;;;;;;;;;ACA9sF;AAAe,itFAAkpF,E;;;;;;;;;;;;;;;;;;;ACAtlF;;IAWzE;QAJA,gBAAW,GAAG,IAAI,CAAC;IAIJ,CAAC;IAEhB,2CAAW,GADX,UACY,CAAC;QACX,IAAI,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAElD,IAAI,IAAI,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;QAC7C,IAAI,IAAI,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;QAE7C,QAAQ,CAAC,KAAK,CAAC,SAAS;YACtB,6BAA6B;gBAC7B,IAAI,GAAG,IAAI;gBACX,eAAe;gBACf,IAAI,GAAG,CAAC,IAAI;gBACZ,MAAM,CAAC;QACT,QAAQ,CAAC,KAAK,CAAC,SAAS;YACtB,6BAA6B;gBAC7B,IAAI,GAAG,IAAI;gBACX,eAAe;gBACf,IAAI,GAAG,CAAC,IAAI;gBACZ,MAAM,CAAC;QACT,QAAQ,CAAC,KAAK,CAAC,SAAS;YACtB,6BAA6B;gBAC7B,IAAI,GAAG,IAAI;gBACX,eAAe;gBACf,IAAI,GAAG,CAAC,IAAI;gBACZ,MAAM,CAAC;QACT,QAAQ,CAAC,KAAK,CAAC,SAAS;YACtB,6BAA6B;gBAC7B,IAAI,GAAG,IAAI;gBACX,eAAe;gBACf,IAAI,GAAG,CAAC,IAAI;gBACZ,MAAM,CAAC;QACT,QAAQ,CAAC,KAAK,CAAC,SAAS;YACtB,6BAA6B;gBAC7B,IAAI,GAAG,IAAI;gBACX,eAAe;gBACf,IAAI,GAAG,CAAC,IAAI;gBACZ,MAAM,CAAC;QACT,QAAQ,CAAC,KAAK,CAAC,SAAS;YACtB,6BAA6B;gBAC7B,IAAI,GAAG,IAAI;gBACX,eAAe;gBACf,IAAI,GAAG,CAAC,IAAI;gBACZ,MAAM,CAAC;QACT,QAAQ,CAAC,KAAK,CAAC,SAAS;YACtB,6BAA6B;gBAC7B,IAAI,GAAG,IAAI;gBACX,eAAe;gBACf,IAAI,GAAG,CAAC,IAAI;gBACZ,MAAM,CAAC;QACT,QAAQ,CAAC,KAAK,CAAC,SAAS;YACtB,6BAA6B;gBAC7B,IAAI,GAAG,IAAI;gBACX,eAAe;gBACf,IAAI,GAAG,CAAC,IAAI;gBACZ,MAAM,CAAC;IACX,CAAC;IAED,wCAAQ,GAAR;QACE,IAAI,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAEpC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IACD,2CAAW,GAAX;QACE,IAAI,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACzC,CAAC;;;8BAzEA,0DAAY,SAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC;;IANnC,qBAAqB;QAJjC,+DAAS,CAAC;YACT,QAAQ,EAAE,kBAAkB;YAC5B,yFAA0C;SAC3C,CAAC;;OACW,qBAAqB,CAgFjC;IAAD,4BAAC;CAAA;AAhFiC;;;;;;;;;;;;;;;;;;;;;;ACN2B;AACzB;;IAclC;QAPA,gBAAW,GAAG,IAAI,CAAC;QAInB,SAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,eAAU,GAAG,CAAC,CAAC;QACf,gBAAW,GAAG,CAAC,CAAC;IACD,CAAC;IAChB,yCAAgB,GAAhB,UAAiB,OAAY;QAC3B,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,iCAAQ,GAAR;QACE,IAAI,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEjC,IAAI,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAEtD,iDAAU,CAAC,MAAM,CAAC,MAAM,EAAE;YACxB,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,GAAG;aACT;SACF,CAAC,CAAC;QAEH,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QAEtD,iDAAU,CAAC,MAAM,CAAC,OAAO,EAAE;YACzB,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;YACf,OAAO,EAAE,IAAI;YACb,KAAK,EAAE;gBACL,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,GAAG;aACT;SACF,CAAC,CAAC;IACL,CAAC;IACD,oCAAW,GAAX;QACE,IAAI,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;;IAzCU,cAAc;QAJ1B,+DAAS,CAAC;YACT,QAAQ,EAAE,WAAW;YACrB,kFAAmC;SACpC,CAAC;;OACW,cAAc,CA0C1B;IAAD,qBAAC;CAAA;AA1C0B;;;;;;;;;;;;;;;;;;;;ACP6C;;IAStE;IAAe,CAAC;IAChB,yCAAQ,GAAR;IAEA,CAAC;IACD,4CAAW,GAAX;IACA,CAAC;;IANU,sBAAsB;QAJlC,+DAAS,CAAC;YACT,QAAQ,EAAE,oBAAoB;YAC9B,2FAA4C;SAC7C,CAAC;;OACW,sBAAsB,CAOlC;IAAD,6BAAC;CAAA;AAPkC;;;;;;;;;;;;;ACRnC;AAAe,w4BAAy0B,uCAAuC,+uCAA+uC,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACArkE;AACM;AACW;AACH;AASQ;AACS;AACoB;AAC1B;AAC0B;AACG;AACN;AACT;AACxB;AAIxD,IAAM,MAAM,GAAW;IACrB,2EAA2E;IAC3E,wDAAwD;IACxD,wDAAwD;IAExD,gDAAgD;IAChD,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,2EAAc,EAAE;IAC5C,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,oFAAiB,EAAE;IAClD,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,wGAAuB,EAAE;IAC/D,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,8EAAe,EAAE,WAAW,EAAE,CAAC,qEAAS,CAAC,EAAE;IACxE;QACE,IAAI,EAAE,iBAAiB;QACvB,SAAS,EAAE,wGAAuB;QAClC,WAAW,EAAE,CAAC,qEAAS,CAAC;KACzB;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,SAAS,EAAE,4GAAwB;QACnC,WAAW,EAAE,CAAC,qEAAS,CAAC;KACzB;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,SAAS,EAAE,sGAAsB;QACjC,WAAW,EAAE,CAAC,qEAAS,CAAC;KACzB;IACD;QACE,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,6FAAmB;QAC9B,WAAW,EAAE,CAAC,qEAAS,CAAC;KACzB;IACD,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE;IACrD,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE;CAErC,CAAC;;;IAa6B,CAAC;IAAnB,gBAAgB;QAX5B,8DAAQ,CAAC;YACR,YAAY,EAAE,EAAE;YAChB,OAAO,EAAE;gBACP,4DAAY;gBACZ,uEAAa;gBACb,4DAAY,CAAC,OAAO,CAAC,MAAM,EAAE;oBAC3B,OAAO,EAAE,IAAI;iBACd,CAAC;aACH;YACD,OAAO,EAAE,EAAE;SACZ,CAAC;OACW,gBAAgB,CAAG;IAAD,uBAAC;CAAA;AAAH;;;;;;;;;;;;;ACtE7B;AAAe,6GAA8C,uHAAuH,E;;;;;;;;;;;;ACApL;AAAe,u0BAAwwB,uCAAuC,wnBAAwnB,iBAAiB,0JAA0J,0EAA0E,snBAAsnB,iBAAiB,s4IAAs4I,iBAAiB,ioCAAioC,mBAAmB,2CAA2C,4CAA4C,kBAAkB,eAAe,kBAAkB,wDAAwD,8CAA8C,yCAAyC,eAAe,yCAAyC,yEAAyE,sIAAsI,yPAAyP,E;;;;;;;;;;;;ACAtnR;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;GAcG;AAE4C;AAC4B;AAE9B;AACY;AAEzD,IAAI,qEAAW,CAAC,UAAU,EAAE;IAC1B,oEAAc,EAAE,CAAC;CAClB;AAED,gGAAsB,EAAE;KACrB,eAAe,CAAC,yDAAS,CAAC;KAC1B,KAAK,CAAC,aAAG,IAAI,cAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAlB,CAAkB,CAAC,CAAC","file":"main.js","sourcesContent":["export default \"\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\\"Logo\\\"\\n
\\n
\\n
\\n

Broadcast App

\\n

Register with us to create your own broadcast

\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n\\n \\n
\\n \\n \\n\\n

Already have an account? Sign In

\\n \\n \\n
\\n \\n \\n \\n\\n\\n\\n\";","export default \"\\n
\\n
\\n \\n BLK• Design System Angular\\n \\n \\n \\n \\n \\n \\n
\\n \\n
\\n
\\n \\n
\\n \\n \\n \\n
\\n
\\n
\\n
    \\n
  • \\n \\n \\n

    Twitter

    \\n \\n
  • \\n
  • \\n \\n \\n

    Facebook

    \\n \\n
  • \\n
  • \\n \\n \\n

    Instagram

    \\n \\n
  • \\n
  • \\n Back to Kit \\n
  • \\n
  • \\n \\n Have an issue?\\n \\n
  • \\n
\\n
\\n \\n\\n
\\n
\\n \\n\\n \\n\\n
\\n
\\n
\\n

Mike Scheinder

\\n
01
\\n

\\n Offices parties lasting outward nothing age few resolve. Impression\\n to discretion understood to we interested he excellence. Him\\n remarkably use projection collecting. Going about eat forty world\\n has round miles.\\n

\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n\\n

Transactions

\\n
\\n
\\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
COINAMOUNTVALUE
BTC7.34248,870.75 USD
ETH30.73764,53.30 USD
XRP19.24218,354.96 USD
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n\\n \\n Please enter a valid address.\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n
\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Latest Crypto News
The Daily: Nexo to Pay on Stable...
Venezuela Begins Public of Nation...
PR: BitCanna – Dutch Blockchain...
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n\\n
\\n
Big City Life, United States
\\n
\\n
\\n \\n \\n\\n
\\n
Somewhere Beyond, United States
\\n
\\n
\\n \\n \\n\\n
\\n
Stocks, United States
\\n
\\n
\\n
\\n
\\n
\\n
\\n

Projects

\\n
02
\\n

\\n An artist of considerable range, Ryan — the name taken by\\n Melbourne-raised, Brooklyn-based Nick Murphy — writes, performs and\\n records all of his own music, giving it a warm, intimate feel with a\\n solid groove structure. An artist of considerable range.\\n

\\n
\\n \\n Bookmark\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n

Contact

\\n
03
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n Send text\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n

Find us at the office

\\n

\\n Bld Mihail Kogalniceanu, nr. 8,
\\n\\n 7652 Bucharest,
\\n\\n Romania\\n

\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n

Give us a ring

\\n

\\n Michael Jordan
\\n\\n +40 762 321 762
\\n\\n Mon - Fri, 8:00-22:00\\n

\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n\";","/**\n *\n * @returns\n */\n\nimport {PeerStats} from \"./peer_stats.js\"\nimport {WebSocketAdaptor} from \"./websocket_adaptor.js\"\n\nclass ReceivingMessage{\n\t\tconstructor(size) {\n\t\tthis.size = size;\n\t\tthis.received = 0;\n\t\tthis.data = new ArrayBuffer(size);\n\t}\n}\n\nexport class WebRTCAdaptor\n{\n\tconstructor(initialValues){\n\t\tthis.peerconnection_config = null;\n\t\tthis.sdp_constraints = null;\n\t\tthis.remotePeerConnection = new Array();\n\t\tthis.remotePeerConnectionStats = new Array();\n\t\tthis.remoteDescriptionSet = new Array();\n\t\tthis.iceCandidateList = new Array();\n\t\tthis.roomName = null;\n\t\tthis.videoTrackSender = null;\n\t\tthis.audioTrackSender = null;\n\t\tthis.playStreamId = new Array();\n\t\tthis.currentVolume = null;\n\t\tthis.originalAudioTrackGainNode = null;\n\t\tthis.videoTrack = null;\n\t\tthis.audioTrack = null;\n\t\tthis.smallVideoTrack = null;\t\t\n\t\tthis.audioContext = null;\n\t this.soundOriginGainNode = null;\n\t\tthis.secondStreamGainNode = null;\n\t\tthis.localStream = null;\n\t\t// this.bandwidth = 900; //default bandwidth kbps\n\t\tthis.bandwidth = 16; //default bandwidth kbps\n\t\tthis.isMultiPeer = false; //used for multiple peer client\n\t\tthis.multiPeerStreamId = null; //used for multiple peer client\n\t\tthis.webSocketAdaptor = null;\n\t\tthis.isPlayMode = false;\n\t\tthis.debug = false;\n\t\tthis.viewerInfo = \"\";\n\t\tthis.publishStreamId = null;\n\t\tthis.blackFrameTimer = null;\n\n\t\t/**\n\t\t * This is used when only data is brodcasted with the same way video and/or audio.\n\t * The difference is that no video or audio is sent when this field is true \n\t\t */\n\t\tthis.onlyDataChannel = false;\n\t\t\n\t\t/**\n\t\t * While publishing and playing streams data channel is enabled by default\n\t\t */\n\t\tthis.dataChannelEnabled = true;\n\n\t\tthis.receivingMessages = new Map();\n\n\t\tthis.publishMode=\"camera\"; //screen, screen+camera\n\n\t\t/**\n\t\t * Supported candidate types. Below types are for both sending and receiving candidates.\n\t\t * It means if when client receives candidate from STUN server, it sends to the server if candidate's protocol\n\t\t * is in the list. Likely, when client receives remote candidate from server, it adds as ice candidate\n\t\t * if candidate protocol is in the list below.\n\t\t */\n\t\tthis.candidateTypes = [\"udp\", \"tcp\"];\n\n\n\t\tthis.desktopStream = null;\n\n\t\t/**\n\t\t * The cam_location below is effective when camera and screen is send at the same time.\n\t\t * possible values are top and bottom. It's on right all the time\n\t\t */\n\t\tthis.camera_location = \"top\"\n\n\t\t/**\n\t\t * The cam_margin below is effective when camera and screen is send at the same time.\n\t\t * This is the margin value in px from the edges\n\t\t */\n\t\tthis.camera_margin = 15;\n\n\t\t/**\n\t\t * this camera_percent is how large the camera view appear on the screen. It's %15 by default.\n\t\t */\n\t\tthis.camera_percent = 15;\n\n\t\tfor(var key in initialValues) {\n\t\t\tif(initialValues.hasOwnProperty(key)) {\n\t\t\t\tthis[key] = initialValues[key];\n\t\t\t}\n\t\t}\n\n\t\tthis.localVideo = document.getElementById(this.localVideoId);\n\t\tthis.remoteVideo = document.getElementById(this.remoteVideoId);\n\n\t\t//A dummy stream created to replace the tracks when camera is turned off.\n\t\tthis.dummyCanvas =document.createElement(\"canvas\");\n\n\t\t// It should be compatible with previous version\n\t\tif(this.mediaConstraints.video == \"camera\") {\n\t\t\tthis.publishMode=\"camera\";\n\t\t}\n\t\telse if(this.mediaConstraints.video == \"screen\") {\n\t\t\tthis.publishMode=\"screen\";\n\t\t}\n\t\telse if(this.mediaConstraints.video == \"screen+camera\") {\n\t\t\tthis.publishMode=\"screen+camera\";\n\t\t}\n\t\t\t\t\n\t\t//Check browser support for screen share function\n\t\tthis.checkBrowserScreenShareSupported();\n\t\t\n\t\tif (!this.isPlayMode && !this.onlyDataChannel && typeof this.mediaConstraints != \"undefined\" && this.localStream == null)\n\t\t{\n\t\t\tthis.checkWebRTCPermissions();\n\n\t\t\t// Get devices only in publish mode.\n\t\t\tthis.getDevices();\n\t\t\tthis.trackDeviceChange();\n\n\t\t\tif (typeof this.mediaConstraints.video != \"undefined\" && this.mediaConstraints.video != false)\n\t\t\t{\n\t\t\t\tthis.openStream(this.mediaConstraints, this.mode);\t\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// get only audio\n\t\t\t\tvar media_audio_constraint = { audio: this.mediaConstraints.audio };\n\t\t\t\tthis.navigatorUserMedia(media_audio_constraint , stream => {\n\t\t\t\t\tthis.gotStream(stream);\n\t\t\t\t}, true)\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t//just playing, it does not open any stream\n\t\t\tthis.checkWebSocketConnection();\n\t\t}\n\t}\n\tsetDesktopwithCameraSource(stream, streamId, audioStream, onEndedCallback) \n\t{\n\t\tthis.desktopStream = stream;\n\t\tthis.navigatorUserMedia({video: true, audio: false},cameraStream => {\n\t\t\tthis.smallVideoTrack = cameraStream.getVideoTracks()[0];\n\t\t\t\n\t\t\t//create a canvas element\n\t\t\tvar canvas = document.createElement(\"canvas\");\n\t\t\tvar canvasContext = canvas.getContext(\"2d\");\n\n\t\t\t//create video element for screen\n\t\t\t//var screenVideo = document.getElementById('sourceVideo');\n\t\t\tvar screenVideo = document.createElement('video');\n\n\t\t\tscreenVideo.srcObject = stream;\n\t\t\tscreenVideo.play();\n\t\t\t//create video element for camera\n\t\t\tvar cameraVideo = document.createElement('video');\n\n\t\t\tcameraVideo.srcObject = cameraStream;\n\t\t\tcameraVideo.play();\n\t\t\tvar canvasStream = canvas.captureStream(15);\n\n\t\t\tif(this.localStream == null){\n\t\t\t\tthis.gotStream(canvasStream);\n\t\t\t}\n\t\t\telse{\n\t\t\t\tthis.updateVideoTrack(canvasStream,streamId,this.mediaConstraints,onended,null);\n\t\t\t}\n\t\t\tif (onEndedCallback != null) {\n\t\t\t\tstream.getVideoTracks()[0].onended = function(event) {\n\t\t\t\t\tonEndedCallback(event);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t//update the canvas\n\t\t\tsetInterval(() => {\n\t\t\t\t//draw screen to canvas\n\t\t\t\tcanvas.width = screenVideo.videoWidth;\n\t\t\t\tcanvas.height = screenVideo.videoHeight;\n\t\t\t\tcanvasContext.drawImage(screenVideo, 0, 0, canvas.width, canvas.height);\n\n\t\t\t\tvar cameraWidth = screenVideo.videoWidth * (this.camera_percent/100);\n\t\t\t\tvar cameraHeight = (cameraVideo.videoHeight/cameraVideo.videoWidth)*cameraWidth\n\n\t\t\t\tvar positionX = (canvas.width - cameraWidth) - this.camera_margin;\n\t\t\t\tvar positionY;\n\n\t\t\t\tif (this.camera_location == \"top\") {\n\t\t\t\t\tpositionY = this.camera_margin;\n\t\t\t\t}\n\t\t\t\telse { //if not top, make it bottom\n\t\t\t\t\t//draw camera on right bottom corner\n\t\t\t\t\tpositionY = (canvas.height - cameraHeight) - this.camera_margin;\n\t\t\t\t}\n\t\t\t\tcanvasContext.drawImage(cameraVideo, positionX, positionY, cameraWidth, cameraHeight);\n\t\t\t}, 66);\n\t\t}, true)\n\t}\n\ttrackDeviceChange(){\n\t\tnavigator.mediaDevices.ondevicechange = () => {\n\t\t\tthis.getDevices();\n\t\t}\n\t}\n\tgetDevices(){\n\t\tnavigator.mediaDevices.enumerateDevices().then(devices => {\n\t\t\tlet deviceArray = new Array();\n\t\t\tlet checkAudio = false\n\t\t\tdevices.forEach(device => {\t\n\t\t\t\tif (device.kind == \"audioinput\" || device.kind == \"videoinput\") {\n\t\t\t\t\tdeviceArray.push(device);\n\t\t\t\t\tif(device.kind==\"audioinput\"){\n\t\t\t\t\t\tcheckAudio = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.callback(\"available_devices\", deviceArray);\n\t\t\tif(checkAudio == false && this.localStream == null){\n\t\t\t\tconsole.log(\"Audio input not found\")\n\t\t\t\tconsole.log(\"Retrying to get user media without audio\")\n\t\t\t\tthis.openStream({video : true, audio : false}, this.mode)\n\t\t\t}\n\t\t}).catch(err => {\n\t\t\tconsole.error(\"Cannot get devices -> error name: \" + err.name + \": \" + err.message);\n\t\t});\n\t}\n\n\tprepareStreamTracks(mediaConstraints,audioConstraint,stream,streamId) \n\t{\n\t\t//this trick, getting audio and video separately, make us add or remove tracks on the fly\n\t\tvar audioTrack = stream.getAudioTracks()\n\t\tif (audioTrack.length > 0 && this.publishMode == \"camera\") {\n\t\t\taudioTrack[0].stop();\n\t\t\tstream.removeTrack(audioTrack[0]);\n\t\t}\n\t\t//now get only audio to add this stream\n\t\tif (audioConstraint != \"undefined\" && audioConstraint != false) {\n\t\t\tvar media_audio_constraint = { audio: audioConstraint};\n\t\t\tthis.navigatorUserMedia(media_audio_constraint, audioStream => {\n\n\t\t\t\t//add callback if desktop is sharing\n\t\t\t\tvar onended = event => {\n\t\t\t\t\tthis.callback(\"screen_share_stopped\");\n\t\t\t\t\tthis.setVideoCameraSource(streamId, mediaConstraints, null, true);\n\t\t\t\t}\n\n\t\t\t\tif(this.publishMode == \"screen\"){\n\t\t\t\t\taudioStream = this.setGainNodeStream(audioStream);\n\t\t\t\t\tthis.updateVideoTrack(stream,streamId,mediaConstraints,onended,true);\n\t\t\t\t\tif(audioTrack.length > 0 ){\n\t\t\t\t\t\tvar mixedStream = this.mixAudioStreams(stream, audioStream, streamId);\n\t\t\t\t\t\tthis.updateAudioTrack(mixedStream,streamId,null);\n\t\t\t\t\t}\n\t\t\t\t\telse{\n\t\t\t\t\t\tthis.updateAudioTrack(audioStream,streamId,null);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if(this.publishMode == \"screen+camera\" ){\n\t\t\t\t\taudioStream = this.setGainNodeStream(audioStream);\n\t\t\t\t\tif(audioTrack.length > 0 ){\n\t\t\t\t\t\tvar mixedStream = this.mixAudioStreams(stream, audioStream, streamId);\n\t\t\t\t\t\tthis.updateAudioTrack(mixedStream,streamId,null);\n\t\t\t\t\t\tthis.setDesktopwithCameraSource(stream,streamId, mixedStream,onended);\n\t\t\t\t\t}\n\t\t\t\t\telse{\n\t\t\t\t\t\tthis.updateAudioTrack(audioStream,streamId,null);\n\t\t\t\t\t\tthis.setDesktopwithCameraSource(stream,streamId,audioStream,onended);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\tstream.addTrack(audioStream.getAudioTracks()[0]);\n\t\t\t\t\tthis.gotStream(stream);\n\t\t\t\t}\n\t\t\t\tthis.checkWebSocketConnection();\n\t\t\t}, true)\n\t\t}\n\t\telse {\n\t\t\tif(typeof audioStream != \"undefined\" && audioStream.getAudioTracks()[0] != null){\n\t\t\t\tstream.addTrack(audioStream.getAudioTracks()[0]);\n\t\t\t}\n\t\t\tthis.gotStream(stream);\n\t\t}\n\t}\n\n\tnavigatorUserMedia(mediaConstraints, func ,catch_error)\n\t{\n\t\tif( catch_error == true){\n\t\tnavigator.mediaDevices.getUserMedia(mediaConstraints).then(func).catch(error => {\n\t\t\tif (error.name == \"NotFoundError\"){\n\t\t\t\tthis.getDevices()\n\t\t\t}else{\n\t\t\t\tthis.callbackError(error.name, error.message);\n\t\t\t}\n\t\t\t});\n\t\t}else {\n\t\t\tnavigator.mediaDevices.getUserMedia(mediaConstraints).then(func)\n\t\t}\n\t}\n\n\t/**\n\t * Get user media\n\t */\n\tgetUserMedia(mediaConstraints, audioConstraint, streamId) \n\t{\n\t\tconst resetTrack = (stream) => {\n\t\t\tlet videoTracks = stream.getVideoTracks();\n\t\t\tlet audioTracks = stream.getAudioTracks();\n\t\t\t\n\t\t\tif (videoTracks.length > 0) {\n\t\t\t\tif (this.videoTrack !== null)\n\t\t\t\t\tthis.videoTrack.stop();\n\t\t\t\tthis.videoTrack = videoTracks[0];\n\t\t\t}\n\t\t\t\n\t\t\tif (audioTracks.length > 0) {\n\t\t\t\tif (this.audioTrack !== null)\n\t\t\t\t\tthis.audioTrack.stop();\t\t\t\t\n\t\t\t\tthis.audioTrack = audioTracks[0];\t\n\t\t\t}\t\t\n\n\t\t\tif (this.smallVideoTrack)\n\t\t\t\tthis.smallVideoTrack.stop();\n\t\t\treturn stream;\n\t\t}\n\t\t\n\t\t// Check Media Constraint video value screen or screen + camera\n\t\tif(this.publishMode == \"screen+camera\" || this.publishMode == \"screen\"){\n\t\t\tnavigator.mediaDevices.getDisplayMedia(mediaConstraints)\n\t\t\t.then(stream =>{\n\t\t\t\tresetTrack(stream);\n\t\t\t\tthis.prepareStreamTracks(mediaConstraints,audioConstraint,stream, streamId);\n\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (error.name === \"NotAllowedError\") {\n\t\t\t\t\tconsole.debug(\"Permission denied error\");\n\t\t\t\t\tthis.callbackError(\"ScreenSharePermissionDenied\");\n\n\t\t\t\t\t// Redirect Default Stream Camera\n\t\t\t\t\tif(this.localStream == null){\n\n\t\t\t\t\t\tvar mediaConstraints = {\n\t\t\t\t\t\t\tvideo : true,\n\t\t\t\t\t\t\taudio : true\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tthis.openStream(mediaConstraints);\n\t\t\t\t\t}\n\t\t\t\t\telse{\n\t\t\t\t\t\tthis.switchVideoCameraCapture(streamId);\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t// If mediaConstraints only user camera\n\t\telse {\n\t\t\tthis.navigatorUserMedia(mediaConstraints, (stream =>{\n\t\t\t\tresetTrack(stream);\n\t\t\t\tthis.prepareStreamTracks(mediaConstraints,audioConstraint,stream, streamId);\n\t\t\t}),true);\n\t\t}\n\t}\n\n\t/**\n\t * Open media stream, it may be screen, camera or audio\n\t */\n\topenStream(mediaConstraints)\n\t{\n\t\tthis.mediaConstraints = mediaConstraints;\n\t\tvar audioConstraint = false;\n\t\tif (typeof mediaConstraints.audio != \"undefined\" && mediaConstraints.audio != false) {\n\t\t\taudioConstraint = mediaConstraints.audio;\n\t\t}\n\n\t\tif (typeof mediaConstraints.video != \"undefined\") {\n\t\t\tthis.getUserMedia(mediaConstraints, audioConstraint);\n\t\t}\n\t\telse {\n\t\t\tconsole.error(\"MediaConstraint video is not defined\");\n\t\t\tthis.callbackError(\"media_constraint_video_not_defined\");\n\t\t}\n\t}\n\n\t/**\n\t * Closes stream, if you want to stop peer connection, call stop(streamId)\n\t */\n\tcloseStream() \n\t{\n\n\t\tif (this.localStream) {\n\t\t\tthis.localStream.getVideoTracks().forEach(function(track) {\n\t\t\t\ttrack.onended = null;\n\t\t\t\ttrack.stop();\n\t\t\t});\n\n\t\t\tthis.localStream.getAudioTracks().forEach(function(track) {\n\t\t\t\ttrack.onended = null;\n\t\t\t\ttrack.stop();\n\t\t\t});\n\t\t}\n\t\t\n\t\t\n\t\tif (this.videoTrack !== null) {\n\t\t\tthis.videoTrack.stop();\n\t\t}\n\n\t\tif (this.audioTrack !== null) {\n\t\t\tthis.audioTrack.stop();\n\t\t}\n\n\t\tif (this.smallVideoTrack !== null) {\n\t\t\tthis.smallVideoTrack.stop();\n\t\t}\t\t\n\t\tif (this.originalAudioTrackGainNode) {\n\t\t\tthis.originalAudioTrackGainNode.stop();\n\t\t}\t\t\n\t\t\n\t}\n\t/*\n\t* Checks if we is permitted from browser\n\t*/\n\tcheckWebRTCPermissions(){\n\t\tif (!(\"WebSocket\" in window)) {\n\t\t\tconsole.log(\"WebSocket not supported.\");\n\t\t\tthis.callbackError(\"WebSocketNotSupported\");\n\t\t\treturn;\n\t\t}\n\n\t\tif (typeof navigator.mediaDevices == \"undefined\" && this.isPlayMode == false) {\n\t\t\tconsole.log(\"Cannot open camera and mic because of unsecure context. Please Install SSL(https)\");\n\t\t\tthis.callbackError(\"UnsecureContext\");\n\t\t\treturn;\n\t\t}\n\t\tif (typeof navigator.mediaDevices == \"undefined\" || navigator.mediaDevices == undefined || navigator.mediaDevices == null ) {\n\t\t\tthis.callbackError(\"getUserMediaIsNotAllowed\");\n\t\t}\n\t}\n\n\t/**\n\t * Checks browser supports screen share feature\n\t * if exist it calls callback with \"browser_screen_share_supported\"\n\t */\n\n\tcheckBrowserScreenShareSupported() \n\t{\n\t\tif ((typeof navigator.mediaDevices != \"undefined\" && navigator.mediaDevices.getDisplayMedia) || navigator.getDisplayMedia ) {\n\t\t\tthis.callback(\"browser_screen_share_supported\");\n\t\t}\n\t};\n\n\tenableSecondStreamInMixedAudio(enable) \n\t{\n\t\t\n\t\tif (this.secondStreamGainNode != null) {\n\t\t\tif (enable) {\n\t\t\t\tthis.secondStreamGainNode.gain.value = 1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.secondStreamGainNode.gain.value = 0;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublish(streamId, token, subscriberId, subscriberCode, streamName) \n\t{\n\t\tthis.publishStreamId =streamId;\n\t\tif (this.onlyDataChannel) {\n\t\t\tvar jsCmd = {\n\t\t\t\tcommand : \"publish\",\n\t\t\t\tstreamId : streamId,\n\t\t\t\ttoken : token,\n\t\t\t\tsubscriberId: typeof subscriberId !== undefined ? subscriberId : \"\" ,\n\t\t\t\tsubscriberCode: typeof subscriberCode !== undefined ? subscriberCode : \"\",\n\t\t\t\tstreamName : typeof streamName !== undefined ? streamName : \"\" ,\n\t\t\t\tvideo: false,\n\t\t\t\taudio: false,\n\t\t\t};\n\t\t}\n\t\t//If it started with playOnly mode and wants to publish now\n\t\telse if(this.localStream == null){\n\t\t\tthis.navigatorUserMedia(this.mediaConstraints, (stream => {\n\t\t\t\tthis.gotStream(stream);\n\t\t\t\tvar jsCmd = {\n\t\t\t\t\tcommand : \"publish\",\n\t\t\t\t\tstreamId : streamId,\n\t\t\t\t\ttoken : token,\n\t\t\t\t\tsubscriberId: typeof subscriberId !== undefined ? subscriberId : \"\" ,\n\t\t\t\t\tsubscriberCode: typeof subscriberCode !== undefined ? subscriberCode : \"\",\n\t\t\t\t\tstreamName : typeof streamName !== undefined ? streamName : \"\" ,\n\t\t\t\t\tvideo: this.localStream.getVideoTracks().length > 0 ? true : false,\n\t\t\t\t\taudio: this.localStream.getAudioTracks().length > 0 ? true : false,\n\t\t\t\t};\n\t\t\t\tthis.webSocketAdaptor?.send(JSON.stringify(jsCmd));\n\t\t\t}), false);\n\t\t} \n\t\telse{\n\t\t\tvar jsCmd = {\n\t\t\t\t\tcommand : \"publish\",\n\t\t\t\t\tstreamId : streamId,\n\t\t\t\t\ttoken : token,\n\t\t\t\t\tsubscriberId: typeof subscriberId !== undefined ? subscriberId : \"\" ,\n\t\t\t\t\tsubscriberCode: typeof subscriberCode !== undefined ? subscriberCode : \"\",\n\t\t\t\t\tstreamName : typeof streamName !== undefined ? streamName : \"\" ,\n\t\t\t\t\tvideo: this.localStream.getVideoTracks().length > 0 ? true : false,\n\t\t\t\t\taudio: this.localStream.getAudioTracks().length > 0 ? true : false,\n\t\t\t};\n\t\t}\n\t\tthis.webSocketAdaptor?.send(JSON.stringify(jsCmd));\n\t}\n\n\tjoinRoom(roomName, streamId, mode) \n\t{\n\t\tthis.roomName = roomName;\n\n\t\tvar jsCmd = {\n\t\t\t\tcommand : \"joinRoom\",\n\t\t\t\troom: roomName,\n\t\t\t\tstreamId: streamId,\n\t\t\t\tmode: mode,\n\t\t}\n\t\tthis.webSocketAdaptor?.send(JSON.stringify(jsCmd));\n\t}\n\t\n\tplay(streamId, token, roomId, enableTracks, subscriberId, subscriberCode) \n\t{\n\t\tthis.playStreamId.push(streamId);\n\t\tvar jsCmd =\n\t\t{\n\t\t\t\tcommand : \"play\",\n\t\t\t\tstreamId : streamId,\n\t\t\t\ttoken : token,\n\t\t\t\troom : roomId,\n\t\t\t\ttrackList : enableTracks,\n\t\t\t\tsubscriberId: typeof subscriberId !== undefined ? subscriberId : \"\" ,\n\t\t\t\tsubscriberCode: typeof subscriberCode !== undefined ? subscriberCode : \"\",\n\t\t\t\tviewerInfo : this.viewerInfo,\n\t\t}\n\n\t\tthis.webSocketAdaptor?.send(JSON.stringify(jsCmd));\n\t}\n\n\tstop(streamId) \n\t{\n\t\tthis.closePeerConnection(streamId);\n\n\t\tvar jsCmd = {\n\t\t\t\tcommand : \"stop\",\n\t\t\t\tstreamId: streamId,\n\t\t};\n\n\t\tthis.webSocketAdaptor?.send(JSON.stringify(jsCmd));\n\t}\n\n\tjoin(streamId) \n\t{\n\t\tvar jsCmd = {\n\t\t\t\tcommand : \"join\",\n\t\t\t\tstreamId : streamId,\n\t\t\t\tmultiPeer : this.isMultiPeer && this.multiPeerStreamId == null,\n\t\t\t\tmode : this.isPlayMode ? \"play\" : \"both\",\n\t\t};\n\n\t\tthis.webSocketAdaptor?.send(JSON.stringify(jsCmd));\n\t}\n\n\tleaveFromRoom(roomName) \n\t{\n\t\tthis.roomName = roomName;\n\t\tvar jsCmd = {\n\t\t\t\tcommand : \"leaveFromRoom\",\n\t\t\t\troom: roomName,\n\t\t};\n\t\tconsole.log (\"leave request is sent for \"+ roomName);\n\n\t\tthis.webSocketAdaptor?.send(JSON.stringify(jsCmd));\n\t}\n\n\tleave(streamId) \n\t{\n\t\tvar jsCmd = {\n\t\t\t\tcommand : \"leave\",\n\t\t\t\tstreamId: this.isMultiPeer && this.multiPeerStreamId != null ? this.multiPeerStreamId : streamId,\n\t\t};\n\n\t\tthis.webSocketAdaptor?.send(JSON.stringify(jsCmd));\n\t\tthis.closePeerConnection(streamId);\n\t\tthis.multiPeerStreamId = null;\n\t}\n\n\tgetStreamInfo(streamId) \n\t{\n\t\tvar jsCmd = {\n\t\t\t\tcommand : \"getStreamInfo\",\n\t\t\t\tstreamId: streamId,\n\t\t};\n\t\tthis.webSocketAdaptor?.send(JSON.stringify(jsCmd));\n\t}\n\t\n\tgetRoomInfo(roomName,streamId) \n\t{\n\t\tvar jsCmd = {\n\t\t\t\tcommand : \"getRoomInfo\",\n\t\t\t\tstreamId : streamId,\n\t\t\t\troom: roomName,\n\t\t};\n\t\tthis.webSocketAdaptor?.send(JSON.stringify(jsCmd));\n\t}\n\n\tenableTrack(mainTrackId, trackId, enabled) \n\t{\n\t\tvar jsCmd = {\n\t\t\t\tcommand : \"enableTrack\",\n\t\t\t\tstreamId : mainTrackId,\n\t\t\t\ttrackId : trackId,\n\t\t\t\tenabled : enabled,\n\t\t};\n\t\tthis.webSocketAdaptor?.send(JSON.stringify(jsCmd));\n\t}\n\n\tgetTracks(streamId, token) \n\t{\n\t\tthis.playStreamId.push(streamId);\n\t\tvar jsCmd =\n\t\t{\n\t\t\t\tcommand : \"getTrackList\",\n\t\t\t\tstreamId : streamId,\n\t\t\t\ttoken : token,\n\t\t}\n\n\t\tthis.webSocketAdaptor?.send(JSON.stringify(jsCmd));\n\t}\n\n\tgotStream(stream)\n\t{\n\t\tstream = this.setGainNodeStream(stream);\n\n\t\tthis.localStream = stream;\n\t\t\n\t\t/** If you want to stream without override your stream */\n\t\tif(this.localVideo){\n\t\t\tthis.localVideo.srcObject = stream;\n\t\t}\n\t\t\n\t\tthis.checkWebSocketConnection();\n\t\tthis.getDevices();\n\t}\n\t\n\t/**\n\t* Toggle video track on the server side.\n\t*\n\t* streamId is the id of the stream\n\t* trackId is the id of the track. streamId is also one of the trackId of the stream. If you are having just a single track on your \n\t* stream, you need to give streamId as trackId parameter as well. \n\t* enabled is the enable/disable video track. If it's true, server sends video track. If it's false, server does not send video\n\t\n\t*/\n\ttoggleVideo(streamId, trackId, enabled) \n\t{\n\t\tvar jsCmd = {\n\t\t\t\tcommand : \"toggleVideo\",\n\t\t\t\tstreamId: streamId,\n\t\t\t\ttrackId: trackId,\n\t\t\t\tenabled: enabled,\n\t\t};\n\t\tthis.webSocketAdaptor?.send(JSON.stringify(jsCmd));\n\t}\n\t\n\t/**\n\t* Toggle audio track on the server side.\n\t*\n\t* streamId is the id of the stream\n\t* trackId is the id of the track. streamId is also one of the trackId of the stream. If you are having just a single track on your \n\t* stream, you need to give streamId as trackId parameter as well. \n\t* enabled is the enable/disable video track. If it's true, server sends audio track. If it's false, server does not send audio\n\t*\n\t*/\n\ttoggleAudio(streamId, trackId, enabled)\n\t{\n\t\tvar jsCmd = {\n\t\t\t\tcommand : \"toggleAudio\",\n\t\t\t\tstreamId: streamId,\n\t\t\t\ttrackId: trackId,\n\t\t\t\tenabled: enabled,\n\t\t};\n\t\tthis.webSocketAdaptor?.send(JSON.stringify(jsCmd));\n\t}\n\t\n\tswitchDesktopCapture(streamId){\n\t\tthis.publishMode = \"screen\";\n\n\t\tvar audioConstraint = false;\n\t\tif (typeof this.mediaConstraints.audio != \"undefined\" && this.mediaConstraints.audio != false) {\n\t\t\taudioConstraint = this.mediaConstraints.audio;\n\t\t}\n\n\t\tthis.getUserMedia(this.mediaConstraints, audioConstraint, streamId);\n\t}\n\t/*\n\t* This method mixed the first stream audio to the second stream audio and \n\t* returns mixed stream. \n\t* stream: Initiali stream that contain video and audio\n\t* \n\t*/\n\tmixAudioStreams(stream, secondStream,streamId)\n\t{\n\t\t//console.debug(\"audio stream track count: \" + audioStream.getAudioTracks().length);\n\t\tvar composedStream = new MediaStream();\n\t\t//added the video stream from the screen\n\t\tstream.getVideoTracks().forEach(function(videoTrack) {\n\t\t\tcomposedStream.addTrack(videoTrack);\n\t\t});\n\n\t\tthis.audioContext = new AudioContext();\n\t\tvar audioDestionation = this.audioContext.createMediaStreamDestination();\n\n\t\tif (stream.getAudioTracks().length > 0) {\n\t\t\tthis.soundOriginGainNode = this.audioContext.createGain();\n\n\t\t\t//Adjust the gain for screen sound\n\t\t\tthis.soundOriginGainNode.gain.value = 1;\n\t\t\tvar audioSource = this.audioContext.createMediaStreamSource(stream);\n\n\t\t\taudioSource.connect(this.soundOriginGainNode).connect(audioDestionation);\n\t\t}\n\t\telse {\n\t\t\tconsole.debug(\"Origin stream does not have audio track\")\n\t\t}\n\n\t\tif (secondStream.getAudioTracks().length > 0) {\n\t\t\tthis.secondStreamGainNode = this.audioContext.createGain();\n\t\t\t\n\t\t\t//Adjust the gain for second sound\n\t\t\tthis.secondStreamGainNode.gain.value = 1;\n\n\t\t\tvar audioSource2 = this.audioContext.createMediaStreamSource(secondStream);\n\t\t\taudioSource2.connect(this.secondStreamGainNode).connect(audioDestionation);\n\t\t}\n\t\telse {\n\t\t\tconsole.debug(\"Second stream does not have audio track\")\n\t\t}\n\n\t\taudioDestionation.stream.getAudioTracks().forEach(function(track) {\n\t\t\tcomposedStream.addTrack(track);\n\t\t\tconsole.log(\"audio destination add track\");\n\t\t});\n\n\t\treturn composedStream;\n\t}\n\n\tsetGainNodeStream(stream){\n\n\t\t// Get the videoTracks from the stream.\n \t\tconst videoTracks = stream.getVideoTracks();\n\n \t\t// Get the audioTracks from the stream.\n \t\tconst audioTracks = stream.getAudioTracks();\n\t\tif (this.originalAudioTrackGainNode !== null) {\n\t\t\tthis.originalAudioTrackGainNode.stop();\n\t\t}\n\t\tthis.originalAudioTrackGainNode = audioTracks[0];\n\n\n \t\t/**\n \t\t* Create a new audio context and build a stream source,\n \t\t* stream destination and a gain node. Pass the stream into \n \t\t* the mediaStreamSource so we can use it in the Web Audio API.\n \t\t*/\n \t\tthis.audioContext = new AudioContext();\n \t\tlet mediaStreamSource = this.audioContext.createMediaStreamSource(stream);\n \t\tlet mediaStreamDestination = this.audioContext.createMediaStreamDestination();\n \t\tthis.soundOriginGainNode = this.audioContext.createGain();\n\n \t\t/**\n \t\t* Connect the stream to the gainNode so that all audio\n \t\t* passes through the gain and can be controlled by it.\n \t\t* Then pass the stream from the gain to the mediaStreamDestination\n \t\t* which can pass it back to the RTC client.\n \t\t*/\n \t\tmediaStreamSource.connect(this.soundOriginGainNode);\n \t\tthis.soundOriginGainNode.connect(mediaStreamDestination);\n\n \t\tif(this.currentVolume == null){\n \t\t\tthis.soundOriginGainNode.gain.value = 1;\n \t\t}\n \t\telse{\n \t\t\tthis.soundOriginGainNode.gain.value = this.currentVolume;\n \t\t}\n\n \t\t/**\n \t\t* The mediaStreamDestination.stream outputs a MediaStream object\n \t\t* containing a single AudioMediaStreamTrack. Add the video track\n \t\t* to the new stream to rejoin the video with the controlled audio.\n \t\t*/\n \t\tconst controlledStream = mediaStreamDestination.stream;\n\n \t\tfor (const videoTrack of videoTracks) {\n \t\tcontrolledStream.addTrack(videoTrack);\n \t\t}\n\n \t\t/**\n \t\t* Use the stream that went through the gainNode. This\n \t\t* is the same stream but with altered input volume levels.\n \t\t*/\n \t\treturn controlledStream;\n\t}\n\n\tswitchAudioInputSource(streamId, deviceId) \n\t{\n\t\t//stop the track because in some android devices need to close the current camera stream\n\t\tvar audioTrack = this.localStream.getAudioTracks()[0];\n\t\tif (audioTrack) {\n\t\t\taudioTrack.stop();\n\t\t}\n\t\telse {\n\t\t console.warn(\"There is no audio track in local stream\");\n\t\t}\n\n\t\tif (typeof deviceId != \"undefined\" ) {\n\t\t\tif(this.mediaConstraints.audio !== true)\n\t\t\t\tthis.mediaConstraints.audio.deviceId = deviceId;\n\t\t\telse \n\t\t\t\tthis.mediaConstraints.audio = { \"deviceId\": deviceId };\n\t\t}\n\t\tthis.setAudioInputSource(streamId, this.mediaConstraints, null, true, deviceId);\n\t}\n\n\tswitchVideoCameraCapture(streamId, deviceId) \n\t{\n\t\t//stop the track because in some android devices need to close the current camera stream\n\t\tvar videoTrack = this.localStream.getVideoTracks()[0];\n\t\tif (videoTrack) {\n\t\t\tvideoTrack.stop();\n\t\t}\n\t\telse {\n\t\t console.warn(\"There is no video track in local stream\");\n\t\t}\n\t\t\n\t\tthis.publishMode = \"camera\";\n\n\t\t\t\t\n\t\tif (typeof deviceId != \"undefined\" ) {\n\t\t\tif(this.mediaConstraints.video !== true)\n\t\t\t\tthis.mediaConstraints.video.deviceId = { exact: deviceId };\n\t\t\telse \n\t\t\t\tthis.mediaConstraints.video = { deviceId: { exact: deviceId } };\n\t\t}\n\t\tthis.setVideoCameraSource(streamId, this.mediaConstraints, null, true, deviceId);\n\t}\n\n\tswitchDesktopCaptureWithCamera(streamId) \n\t{\n\t\tthis.publishMode = \"screen+camera\";\n\n\t\tvar audioConstraint = false;\n\t\tif (typeof this.mediaConstraints.audio != \"undefined\" && this.mediaConstraints.audio != false) {\n\t\t\taudioConstraint = this.mediaConstraints.audio;\n\t\t}\n\t\tthis.getUserMedia(this.mediaConstraints, audioConstraint, streamId);\n\t}\n\t\n\t/**\n\t * This method updates the local stream. It removes existant audio track from the local stream\n\t * and add the audio track in `stream` parameter to the local stream\n\t */\n\tupdateLocalAudioStream(stream, onEndedCallback) \n\t{\n\t\tvar newAudioTrack = stream.getAudioTracks()[0];\n\t\t\n\t\tif (this.localStream != null && this.localStream.getAudioTracks()[0] != null) \n\t\t{\n\t\t\tconst enabled = (this.localStream.getAudioTracks()[0]).enabled;\n\t\t\tthis.localStream.getAudioTracks().forEach(audio => {\n\t\t\t\tthis.localStream.removeTrack(audio);\n\t\t\t\taudio.stop();\n\t\t\t});\n\t\t\tnewAudioTrack.enabled = enabled;\n\t\t\tthis.localStream.addTrack(newAudioTrack);\n\t\t}\n\t\telse if(this.localStream != null){\n\t\t\tthis.localStream.addTrack(newAudioTrack);\n\t\t}\n\t\telse{\n\t\t\tthis.localStream = stream;\n\t\t}\n\t\t\n\n\t\tif (this.localVideo != null) \n\t\t{ //it can be null\n\t\t\tthis.localVideo.srcObject = this.localStream;\n\t\t}\n\n\t\tif (onEndedCallback != null) {\n\t\t\tstream.getAudioTracks()[0].onended = function(event) {\n\t\t\t\tonEndedCallback(event);\n\t\t\t}\n\t\t}\n\t}\n\t\n\t/**\n\t * This method updates the local stream. It removes existant video track from the local stream\n\t * and add the video track in `stream` parameter to the local stream\n\t */\n\tupdateLocalVideoStream(stream, onEndedCallback, stopDesktop) \n\t{\n\t\tif (stopDesktop && this.desktopStream != null) {\n\t\t\tthis.desktopStream.getVideoTracks()[0].stop();\n\t\t}\n\n\t\tvar newVideoTrack = stream.getVideoTracks()[0];\n\n\t\tif(this.localStream != null && this.localStream.getVideoTracks()[0] != null){\n\t\t\tvar videoTrack = this.localStream.getVideoTracks()[0];\n\t\t\tthis.localStream.removeTrack(videoTrack);\n\t\t\tvideoTrack.stop();\n\t\t\tthis.localStream.addTrack(newVideoTrack);\n\t\t}\n\t\telse if(this.localStream != null){\n\t\t\tthis.localStream.addTrack(newVideoTrack);\n\t\t}\n\t\telse{\n\t\t\tthis.localStream = stream;\n\t\t}\n\n\t\tif (this.localVideo) {\n\t\t\tthis.localVideo.srcObject = this.localStream;\n\t\t}\n\n\t\tif (onEndedCallback != null) {\n\t\t\tstream.getVideoTracks()[0].onended = function(event) {\n\t\t\t\tonEndedCallback(event);\n\t\t\t}\n\t\t}\n\t}\n\t\n\t/**\n\t * This method sets Audio Input Source. \n\t * It calls updateAudioTrack function for the update local audio stream.\n\t */\n\tsetAudioInputSource(streamId, mediaConstraints, onEndedCallback) \n\t{\n\t\tthis.navigatorUserMedia(mediaConstraints,stream => {\n\t\t\tthis.updateAudioTrack(stream, streamId, mediaConstraints, onEndedCallback);\n\t\t}, true);\n\t}\n\t\n\t/**\n\t * This method sets Video Input Source. \n\t * It calls updateVideoTrack function for the update local video stream.\n\t */\n\tsetVideoCameraSource(streamId, mediaConstraints, onEndedCallback, stopDesktop) \n\t{\n\t\tthis.navigatorUserMedia(mediaConstraints, stream => {\n\t\t\tstream = this.setGainNodeStream(stream);\n\t\t\tthis.updateVideoTrack(stream, streamId, mediaConstraints, onEndedCallback, stopDesktop);\n\t\t\tthis.updateAudioTrack(stream, streamId, mediaConstraints, onEndedCallback);\n\t\t}, true);\n\t}\n\t\n\tupdateAudioTrack (stream, streamId, onEndedCallback) \n\t{\n\t\tif (this.remotePeerConnection[streamId] != null) {\n\t\t\tvar audioTrackSender = this.remotePeerConnection[streamId].getSenders().find(function(s) {\n\t\t\t\treturn s.track.kind == \"audio\";\n\t\t\t});\n\n\t\t\tif (audioTrackSender) {\n\t\t\t\taudioTrackSender.replaceTrack(stream.getAudioTracks()[0]).then(result => {\n\t\t\t\t\tthis.updateLocalAudioStream(stream, onEndedCallback);\n\t\n\t\t\t\t}).catch(function(error) {\n\t\t\t\t\tconsole.log(error.name);\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconsole.error(\"AudioTrackSender is undefined or null\");\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tthis.updateLocalAudioStream(stream, onEndedCallback);\n\t\t}\n\t}\n\n\tupdateVideoTrack(stream, streamId, mediaConstraints, onEndedCallback, stopDesktop) \n\t{\n\t\tif (this.remotePeerConnection[streamId] != null) {\n\t\t\tvar videoTrackSender = this.remotePeerConnection[streamId].getSenders().find(function(s) {\n\t\t\t\treturn s.track.kind == \"video\";\n\t\t\t});\n\n\t\t\tif (videoTrackSender) {\n\t\t\t\tvideoTrackSender.replaceTrack(stream.getVideoTracks()[0]).then(result => {\n\t\t\t\t\tthis.updateLocalVideoStream(stream, onEndedCallback, stopDesktop);\n\t\n\t\t\t\t}).catch(error => {\n\t\t\t\t\tconsole.log(error.name);\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconsole.error(\"VideoTrackSender is undefined or null\");\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tthis.updateLocalVideoStream(stream, onEndedCallback, stopDesktop);\n\t\t}\n\t}\n\n\tonTrack(event, streamId)\n\t{\n\t\tconsole.log(\"onTrack\");\n\t\tif (this.remoteVideo != null) {\n\t\t\t//this.remoteVideo.srcObject = event.streams[0];\n\t\t\tif (this.remoteVideo.srcObject !== event.streams[0]) {\n\t\t\t\tthis.remoteVideo.srcObject = event.streams[0];\n\t\t\t\tconsole.log('Received remote stream');\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tvar dataObj = {\n\t\t\t\t\tstream: event.streams[0],\n\t\t\t\t\ttrack: event.track,\n\t\t\t\t\tstreamId: streamId\n\t\t\t}\n\t\t\tthis.callback(\"newStreamAvailable\", dataObj);\n\t\t}\n\n\t}\n\n\ticeCandidateReceived(event, streamId)\n\t{\n\t\tif (event.candidate) {\n\n\t\t\tvar protocolSupported = false;\n\t\t\t\n\t\t\tif (event.candidate.candidate == \"\") {\n\t\t\t\t//event candidate can be received and its value can be \"\".\n\t\t\t\t//don't compare the protocols\n\t\t\t\tprotocolSupported = true;\n\t\t\t}\n\t\t\telse if (typeof event.candidate.protocol == \"undefined\") {\n\t\t\t\tthis.candidateTypes.forEach(element => {\n\t\t\t\t\tif (event.candidate.candidate.toLowerCase().includes(element)) {\n\t\t\t\t\t\tprotocolSupported = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tprotocolSupported = this.candidateTypes.includes(event.candidate.protocol.toLowerCase());\n\t\t\t}\n\t\t\t\n\n\t\t\tif (protocolSupported) {\n\n\t\t\t\tvar jsCmd = {\n\t\t\t\t\t\tcommand : \"takeCandidate\",\n\t\t\t\t\t\tstreamId : streamId,\n\t\t\t\t\t\tlabel : event.candidate.sdpMLineIndex,\n\t\t\t\t\t\tid : event.candidate.sdpMid,\n\t\t\t\t\t\tcandidate : event.candidate.candidate\n\t\t\t\t};\n\n\t\t\t\tif (this.debug) {\n\t\t\t\t\tconsole.log(\"sending ice candiate for stream Id \" + streamId );\n\t\t\t\t\tconsole.log(JSON.stringify(event.candidate));\n\t\t\t\t}\n\t\t\t\tthis.webSocketAdaptor?.send(JSON.stringify(jsCmd));\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconsole.log(\"Candidate's protocol(full sdp: \"+ event.candidate.candidate +\") is not supported. Supported protocols: \" + this.candidateTypes);\n\t\t\t\tif (event.candidate.candidate != \"\") { //\n\t\t\t\t\tthis.callbackError(\"protocol_not_supported\", \"Support protocols: \" + this.candidateTypes.toString() + \" candidate: \" + event.candidate.candidate);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"No event.candidate in the iceCandidate event\");\n\t\t}\n\t}\n\n\n\tinitDataChannel(streamId, dataChannel) \n\t{\n\t\tdataChannel.onerror = (error) => {\n\t\t\tconsole.log(\"Data Channel Error:\", error );\n\t\t\tvar obj = {\n\t\t\t\tstreamId: streamId,\n\t\t\t\terror: error\n\t\t\t};\n\t\t\tconsole.log(\"channel status: \", dataChannel.readyState);\n\t\t\tif (dataChannel.readyState != \"closed\") {\n\t\t\t\tthis.callbackError(\"data_channel_error\", obj);\n\t\t\t}\n\t\t};\n\n\t\tdataChannel.onmessage = (event) => {\n\t\t\tvar obj = {\n\t\t\t\tstreamId: streamId,\n\t\t\t\tdata: event.data,\n\t\t\t};\n\n\t\t\tvar data = obj.data;\n\n\t\t\tif(typeof data === 'string' || data instanceof String){\n\t\t\t\tthis.callback(\"data_received\", obj);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar length = data.length || data.size || data.byteLength;\n\n\t\t\t\tvar view = new Int32Array(data, 0, 1);\n\t\t\t\tvar token = view[0];\n\n\t\t\t\tvar msg = this.receivingMessages[token];\n\t\t\t\tif(msg == undefined) {\n\t\t\t\t\tvar view = new Int32Array(data, 0, 2);\n\t\t\t\t\tvar size = view[1];\n\t\t\t\t\tmsg = new ReceivingMessage(size);\n\t\t\t\t\tthis.receivingMessages[token] = msg;\n\t\t\t\t\tif(length > 8) {\n\t\t\t\t\t\tconsole.error(\"something went wrong in msg receiving\");\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar rawData = data.slice(4, length);\n\n\t\t\t\tvar dataView = new Uint8Array(msg.data);\n\t\t\t\tdataView.set(new Uint8Array(rawData), msg.received, length-4);\n\t\t\t\tmsg.received += length-4;\n\n\t\t\t\tif(msg.size == msg.received) {\n\t\t\t\t\tobj.data = msg.data;\n\t\t\t\t\tthis.callback(\"data_received\", obj);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tdataChannel.onopen = () => {\n\t\t\tthis.remotePeerConnection[streamId].dataChannel = dataChannel;\n\t\t\tconsole.log(\"Data channel is opened\");\n\t\t\tthis.callback(\"data_channel_opened\", streamId)\n\t\t};\n\n\t\tdataChannel.onclose = () => {\n\t\t\tconsole.log(\"Data channel is closed\");\n\t\t\tthis.callback(\"data_channel_closed\", streamId);\n\t\t};\n\t}\n\n\t// data channel mode can be \"publish\" , \"play\" or \"peer\" based on this it is decided which way data channel is created\n\tinitPeerConnection(streamId, dataChannelMode) \n\t{\n\t\tif (this.remotePeerConnection[streamId] == null)\n\t\t{\n\t\t\tvar closedStreamId = streamId;\n\t\t\tconsole.log(\"stream id in init peer connection: \" + streamId + \" close stream id: \" + closedStreamId);\n\t\t\tthis.remotePeerConnection[streamId] = new RTCPeerConnection(this.peerconnection_config);\n\t\t\tthis.remoteDescriptionSet[streamId] = false;\n\t\t\tthis.iceCandidateList[streamId] = new Array();\n\t\t\tif (!this.playStreamId.includes(streamId))\n\t\t\t{\n\t\t\t\tif(this.localStream != null) {\n\t\t\t\t\tthis.remotePeerConnection[streamId].addStream(this.localStream);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.remotePeerConnection[streamId].onicecandidate = event => {\n\t\t\t\tthis.iceCandidateReceived(event, closedStreamId);\n\t\t\t}\n\t\t\tthis.remotePeerConnection[streamId].ontrack = event => {\n\t\t\t\tthis.onTrack(event, closedStreamId);\n\t\t\t}\n\n\t\t\tif (this.dataChannelEnabled){\n\t\t\t\t// skip initializing data channel if it is disabled\n\t\t\t\tif (dataChannelMode == \"publish\") {\n\t\t\t\t\t//open data channel if it's publish mode peer connection \n\t\t\t\t\tconst dataChannelOptions = {\n\t\t\t\t\t\t\tordered: true,\n\t\t\t\t\t};\n\t\t\t\t\tif (this.remotePeerConnection[streamId].createDataChannel) {\n\t\t\t\t\t\tvar dataChannel = this.remotePeerConnection[streamId].createDataChannel(streamId, dataChannelOptions);\n\t\t\t\t\t\tthis.initDataChannel(streamId, dataChannel);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tconsole.warn(\"CreateDataChannel is not supported\");\n\t\t\t\t\t}\n\n\t\t\t\t} else if(dataChannelMode == \"play\") {\n\t\t\t\t\t//in play mode, server opens the data channel \n\t\t\t\t\tthis.remotePeerConnection[streamId].ondatachannel = ev => {\n\t\t\t\t\t\tthis.initDataChannel(streamId, ev.channel);\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t//for peer mode do both for now\n\t\t\t\t\tconst dataChannelOptions = {\n\t\t\t\t\t\t\tordered: true,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (this.remotePeerConnection[streamId].createDataChannel) \n\t\t\t\t\t{\n\t\t\t\t\t\tvar dataChannelPeer = this.remotePeerConnection[streamId].createDataChannel(streamId, dataChannelOptions);\n\t\t\t\t\t\tthis.initDataChannel(streamId, dataChannelPeer);\n\t\t\n\t\t\t\t\t\tthis.remotePeerConnection[streamId].ondatachannel = ev => {\n\t\t\t\t\t\t\tthis.initDataChannel(streamId, ev.channel);\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tconsole.warn(\"CreateDataChannel is not supported\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.remotePeerConnection[streamId].oniceconnectionstatechange = event => {\n\t\t\t\tvar obj = {state:this.remotePeerConnection[streamId].iceConnectionState, streamId:streamId};\n\t\t\t\tthis.callback(\"ice_connection_state_changed\",obj);\n\n\t\t\t\tif (!this.isPlayMode) {\n\t\t\t\t\tif (this.remotePeerConnection[streamId].iceConnectionState == \"connected\") {\n\n\t\t\t\t\t\tthis.changeBandwidth(this.bandwidth, streamId).then(() => {\n\t\t\t\t\t\t\tconsole.log(\"Bandwidth is changed to \" + this.bandwidth);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(e => console.warn(e));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\n\tclosePeerConnection(streamId) \n\t{\t\n\t\tif (this.remotePeerConnection[streamId] != null)\n\t\t{\n\t\t\tif (this.remotePeerConnection[streamId].dataChannel != null) {\n\t\t\t\tthis.remotePeerConnection[streamId].dataChannel.close();\n\t\t\t}\n\t\t\tif (this.remotePeerConnection[streamId].signalingState != \"closed\") {\n\t\t\t\tthis.remotePeerConnection[streamId].close();\n\t\t\t\tthis.remotePeerConnection[streamId] = null;\n\t\t\t\tdelete this.remotePeerConnection[streamId];\n\t\t\t\tvar playStreamIndex = this.playStreamId.indexOf(streamId);\n\t\t\t\tif (playStreamIndex != -1)\n\t\t\t\t{\n\t\t\t\t\tthis.playStreamId.splice(playStreamIndex, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.remotePeerConnectionStats[streamId] != null)\n\t\t{\n\t\t\tclearInterval(this.remotePeerConnectionStats[streamId].timerId);\n\t\t\tdelete this.remotePeerConnectionStats[streamId];\n\t\t}\t\t\t\n\t}\n\n\tsignallingState(streamId) \n\t{\n\t\tif (this.remotePeerConnection[streamId] != null) {\n\t\t\treturn this.remotePeerConnection[streamId].signalingState;\n\t\t}\n\t\treturn null;\n\t}\n\n\ticeConnectionState(streamId) \n\t{\n\t\tif (this.remotePeerConnection[streamId] != null) {\n\t\t\treturn this.remotePeerConnection[streamId].iceConnectionState;\n\t\t}\n\t\treturn null;\n\t}\n\n\tgotDescription(configuration, streamId)\n\t{\n\t\tthis.remotePeerConnection[streamId]\n\t\t.setLocalDescription(configuration)\n\t\t.then(responose => {\n\t\t\tconsole.debug(\"Set local description successfully for stream Id \" + streamId);\n\n\t\t\tvar jsCmd = {\n\t\t\t\t\tcommand : \"takeConfiguration\",\n\t\t\t\t\tstreamId : streamId,\n\t\t\t\t\ttype : configuration.type,\n\t\t\t\t\tsdp : configuration.sdp\n\n\t\t\t};\n\n\t\t\tif (this.debug) {\n\t\t\t\tconsole.debug(\"local sdp: \");\n\t\t\t\tconsole.debug(configuration.sdp);\n\t\t\t}\n\n\t\t\tthis.webSocketAdaptor?.send(JSON.stringify(jsCmd));\n\n\t\t}).catch((error) =>{\n\t\t\tconsole.error(\"Cannot set local description. Error is: \" + error);\n\t\t});\n\t}\n\tinitializeDummyFrame(){\n\t\tthis.dummyCanvas.getContext('2d').fillRect(0, 0, 320, 240);\n\t\tthis.replacementStream = this.dummyCanvas.captureStream();\n\t}\n\n\tturnOffLocalCamera(streamId) \n\t {\n\t\t //Initialize the first dummy frame for switching.\n\t\tthis.initializeDummyFrame();\n\t\t\n\t\t if (this.remotePeerConnection != null) {\n\t\t\t let choosenId;\n\t\t\t if(streamId != null || typeof streamId != \"undefined\"){\n\t\t\t\tchoosenId = streamId;\n\t\t\t }\n\t\t\t else{\n\t\t\t\tchoosenId = this.publishStreamId;\n\t\t\t }\n\t\t\t this.updateVideoTrack(this.replacementStream, choosenId, this.mediaConstraints, null, true);\n\t\t }\n\t\t else {\n\t\t\t this.callbackError(\"NoActiveConnection\");\n\t\t }\n\n\t\t //We need to send black frames within a time interval, because when the user turn off the camera,\n\t\t//player can't connect to the sender since there is no data flowing. Sending a black frame in each 3 seconds resolves it.\n\t\tif(this.blackFrameTimer == null){\n\t\t\tthis.blackFrameTimer = setInterval(() => {\t\t\t\n\t\t\t\tthis.initializeDummyFrame();\n\t\t\t}, 3000);\n\t\t}\n\t }\n\n\t turnOnLocalCamera(streamId) \n\t {\n\t\tif(this.blackFrameTimer != null){\n\t\t\tclearInterval(this.blackFrameTimer);\n\t\t\tthis.blackFrameTimer = null;\n\t\t}\n\t\t if(this.localStream == null){\n\t\t\t this.navigatorUserMedia(this.mediaConstraints, stream =>{\n\t\t\t\t this.gotStream(stream);\n\t\t\t }, false);\n\t\t }\n\t\t //This method will get the camera track and replace it with dummy track\n\t\t else if (this.remotePeerConnection != null) {\n\t\t\t this.navigatorUserMedia(this.mediaConstraints, stream =>{\n\t\t\t\tlet choosenId;\n\t\t\t \tif(streamId != null || typeof streamId != \"undefined\"){\n\t\t\t\t\tchoosenId = streamId;\n\t\t\t\t }\n\t\t\t\t else{\n\t\t\t\t\tchoosenId = this.publishStreamId;\n\t\t\t\t }\n\t\t\t\t this.updateVideoTrack(stream, choosenId, this.mediaConstraints, null, true);\n\t\t\t }, false);\n\t\t }\n\t\t else {\n\t\t\t this.callbackError(\"NoActiveConnection\");\n\t\t }\n\t }\n\n\tmuteLocalMic() \n\t{\n\t\tif (this.remotePeerConnection != null) {\n\t\t\tvar track = this.localStream.getAudioTracks()[0];\n\t\t\ttrack.enabled = false;\n\t\t}\n\t\telse {\n\t\t\tthis.callbackError(\"NoActiveConnection\");\n\t\t}\n\t}\n\n\t/**\n\t * if there is audio it calls callbackError with \"AudioAlreadyActive\" parameter\n\t */\n\tunmuteLocalMic() \n\t{\n\t\tif (this.remotePeerConnection != null) {\n\t\t\tvar track = this.localStream.getAudioTracks()[0];\n\t\t\ttrack.enabled = true;\n\t\t}\n\t\telse {\n\t\t\tthis.callbackError(\"NoActiveConnection\");\n\t\t}\n\t}\n\n\ttakeConfiguration(idOfStream, configuration, typeOfConfiguration)\n\t{\n\t\tvar streamId = idOfStream\n\t\tvar type = typeOfConfiguration;\n\t\tvar conf = configuration;\n\t\tvar isTypeOffer = (type == \"offer\");\n\n\t\tvar dataChannelMode = \"publish\";\n\t\tif(isTypeOffer) {\n\t\t\tdataChannelMode = \"play\";\n\t\t}\n\n\t\tthis.initPeerConnection(streamId, dataChannelMode);\n\n\t\tthis.remotePeerConnection[streamId].setRemoteDescription(new RTCSessionDescription({\n\t\t\tsdp : conf,\n\t\t\ttype : type\n\t\t})).then(response => {\n\n\t\t\tif (this.debug) {\n\t\t\t\tconsole.debug(\"set remote description is succesfull with response: \" + response + \" for stream : \"\n\t\t\t\t\t\t+ streamId + \" and type: \" + type);\n\t\t\t\tconsole.debug(conf);\n\t\t\t}\n\n\t\t\tthis.remoteDescriptionSet[streamId] = true;\n\t\t\tvar length = this.iceCandidateList[streamId].length;\n\t\t\tconsole.debug(\"Ice candidate list size to be added: \" + length);\n\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\tthis.addIceCandidate(streamId, this.iceCandidateList[streamId][i]);\n\t\t\t}\n\t\t\tthis.iceCandidateList[streamId] = [];\n\n\t\t\tif (isTypeOffer) {\n\t\t\t\t//SDP constraints may be different in play mode\n\t\t\t\tconsole.log(\"try to create answer for stream id: \" + streamId);\n\n\t\t\t\tthis.remotePeerConnection[streamId].createAnswer(this.sdp_constraints)\n\t\t\t\t.then(configuration =>\n\t\t\t\t\t\t{\n\t\t\t\t\tconsole.log(\"created answer for stream id: \" + streamId);\n\t\t\t\t\t//support for stereo\n \t\t\tconfiguration.sdp = configuration.sdp.replace(\"useinbandfec=1\", \"useinbandfec=1; stereo=1\");\n\t\t\t\t\tthis.gotDescription(configuration, streamId);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch((error) =>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconsole.error(\"create answer error :\" + error);\n\t\t\t\t\t\t\t\t});\n\t\t\t}\n\n\t\t}).catch((error) => {\n\t\t\tif (this.debug) {\n\t\t\t\tconsole.error(\"set remote description is failed with error: \" + error);\n\t\t\t}\n\t\t\tif(error.toString().indexOf(\"InvalidAccessError\") > -1 || error.toString().indexOf(\"setRemoteDescription\") > -1){\n\t\t\t\t/**\n\t\t\t\t * This error generally occurs in codec incompatibility.\n\t\t\t\t * AMS for a now supports H.264 codec. This error happens when some browsers try to open it from VP8.\n\t\t\t\t */\n\t\t\t\tthis.callbackError(\"notSetRemoteDescription\");\n\t\t\t}\n\t\t});\n\n\t}\n\n\ttakeCandidate(idOfTheStream, tmpLabel, tmpCandidate) \n\t{\n\t\tvar streamId = idOfTheStream;\n\t\tvar label = tmpLabel;\n\t\tvar candidateSdp = tmpCandidate;\n\n\t\tvar candidate = new RTCIceCandidate({\n\t\t\tsdpMLineIndex : label,\n\t\t\tcandidate : candidateSdp\n\t\t});\n\n\t\tvar dataChannelMode = \"peer\";\n\t\tthis.initPeerConnection(streamId, dataChannelMode);\n\n\t\tif (this.remoteDescriptionSet[streamId] == true) {\n\t\t\tthis.addIceCandidate(streamId, candidate);\n\t\t}\n\t\telse {\n\t\t\tconsole.debug(\"Ice candidate is added to list because remote description is not set yet\");\n\t\t\tthis.iceCandidateList[streamId].push(candidate);\n\t\t}\n\t};\n\n\taddIceCandidate(streamId, candidate) \n\t{\t\n\t\tvar protocolSupported = false;\n\t\tif (candidate.candidate == \"\") {\n\t\t\t//candidate can be received and its value can be \"\".\n\t\t\t//don't compare the protocols\n\t\t\tprotocolSupported = true;\n\t\t}\n\t\telse if (typeof candidate.protocol == \"undefined\") {\n\t\t\tthis.candidateTypes.forEach(element => {\n\t\t\t\tif (candidate.candidate.toLowerCase().includes(element)) {\n\t\t\t\t\tprotocolSupported = true;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tprotocolSupported = this.candidateTypes.includes(candidate.protocol.toLowerCase());\n\t\t}\t\n\t\t\n\t\tif (protocolSupported)\n\t\t{\n\n\t\t\tthis.remotePeerConnection[streamId].addIceCandidate(candidate)\n\t\t\t.then(response => {\n\t\t\t\tif (this.debug) {\n\t\t\t\t\tconsole.log(\"Candidate is added for stream \" + streamId);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tconsole.error(\"ice candiate cannot be added for stream id: \" + streamId + \" error is: \" + error );\n\t\t\t\tconsole.error(candidate);\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tif (this.debug) {\n\t\t\t\tconsole.log(\"Candidate's protocol(\"+candidate.protocol+\") is not supported.\" +\n\t\t\t\t\t\t\"Candidate: \" + candidate.candidate +\" Supported protocols:\" + this.candidateTypes);\n\t\t\t}\n\t\t}\n\t};\n\n\tstartPublishing(idOfStream) \n\t{\n\t\tvar streamId = idOfStream;\n\n\t\tthis.initPeerConnection(streamId, \"publish\");\n\n\t\tthis.remotePeerConnection[streamId].createOffer(this.sdp_constraints)\n\t\t.then(configuration => {\n\t\t\tthis.gotDescription(configuration, streamId);\n\t\t})\n\t\t.catch((error) => {\n\t\t\tconsole.error(\"create offer error for stream id: \" + streamId + \" error: \" + error);\n\t\t});\n\t};\n\n\t/**\n\t * If we have multiple video tracks in coming versions, this method may cause some issues\n\t */\n\tgetVideoSender(streamId) \n\t{\n\t\tvar videoSender = null;\n\t\tif ((adapter.browserDetails.browser === 'chrome' ||\n\t\t\t\t(adapter.browserDetails.browser === 'firefox' ||\n\t\t\t\t\tadapter.browserDetails.browser === 'safari' &&\n\t\t\t\t\t\tadapter.browserDetails.version >= 64)) &&\n\t\t\t\t\t\t'RTCRtpSender' in window &&\n\t\t\t\t\t\t'setParameters' in window.RTCRtpSender.prototype)\n\t\t{\n\t\t\tif (this.remotePeerConnection[streamId] != null) {\n\t\t\t\tconst senders = this.remotePeerConnection[streamId].getSenders();\n\n\t\t\t\tfor (let i = 0; i < senders.length; i++) {\n\t\t\t\t\tif (senders[i].track != null && senders[i].track.kind == \"video\") {\n\t\t\t\t\t\tvideoSender = senders[i];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\treturn videoSender;\n\t}\n\n\t/**\n\t * bandwidth is in kbps\n\t */\n\tchangeBandwidth(bandwidth, streamId) \n\t{\n\t\tvar errorDefinition = \"\";\n\n\t\tvar videoSender = this.getVideoSender(streamId);\n\n\t\tif (videoSender != null) {\n\t\t\tconst parameters = videoSender.getParameters();\n\n\t\t\tif (!parameters.encodings) {\n\t\t\t\tparameters.encodings = [{}];\n\t\t\t}\n\n\t\t\tif (bandwidth === 'unlimited') {\n\t\t\t\tdelete parameters.encodings[0].maxBitrate;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tparameters.encodings[0].maxBitrate = bandwidth * 1000;\n\t\t\t}\n\n\t\t\treturn videoSender.setParameters(parameters)\n\t\t}\n\t\telse {\n\t\t\terrorDefinition = \"Video sender not found to change bandwidth. Streaming may not be active\";\n\t\t}\n\n\t\treturn Promise.reject(errorDefinition);\n\t};\n\n\tgetStats(streamId)\n\t{\n\t\tconsole.log(\"peerstatsgetstats = \" + this.remotePeerConnectionStats[streamId]);\n\n\t\tthis.remotePeerConnection[streamId].getStats(null).then(stats =>\n\t\t{\n\t\t\tvar bytesReceived = -1;\n\t\t\tvar videoPacketsLost = -1;\n\t\t\tvar audioPacketsLost = -1;\n\t\t\tvar fractionLost = -1;\n\t\t\tvar currentTime = -1;\n\t\t\tvar bytesSent = -1;\n\t\t\tvar audioLevel = -1;\n\t\t\tvar qlr = \"\";\n\t\t\tvar framesEncoded = -1;\n\t\t\tvar width = -1;\n\t\t\tvar height = -1;\n\t\t\tvar fps = -1;\n\t\t\tvar frameWidth = -1;\n\t\t\tvar frameHeight = -1;\n\t\t\tvar videoRoundTripTime = -1;\n\t\t\tvar videoJitter = -1;\n\n\t\t\tvar audioRoundTripTime = -1;\n\t\t\tvar audioJitter = -1;\n\t\t\t\n\t\t\tvar framesDecoded = -1;\n\t\t\tvar framesDropped = -1;\n\t\t\tvar framesReceived = -1;\n\t\t\t\n\t\t\tvar audioJitterAverageDelay = -1;\n\t var videoJitterAverageDelay = -1;\n\n\n\t\t\tstats.forEach(value => {\n\n\t\t\t\t//console.log(value);\n\n\t\t\t\tif (value.type == \"inbound-rtp\" && typeof value.kind != \"undefined\")\n\t\t\t\t{\n\t\t\t\t\tbytesReceived += value.bytesReceived;\n\t\t\t\t\tif (value.kind == \"audio\") {\n\t\t\t\t\t\taudioPacketsLost = value.packetsLost;\n\t\t\t\t\t}\n\t\t\t\t\telse if (value.kind == \"video\") {\n\t\t\t\t\t\tvideoPacketsLost = value.packetsLost;\n\t\t\t\t\t}\n\n\t\t\t\t\tfractionLost += value.fractionLost;\n\t\t\t\t\tcurrentTime = value.timestamp;\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\telse if (value.type == \"outbound-rtp\")\n\t\t\t\t{//TODO: SPLIT AUDIO AND VIDEO BITRATES\n\t\t\t\t\tbytesSent += value.bytesSent\n\t\t\t\t\tcurrentTime = value.timestamp\n\t\t\t\t\tqlr = value.qualityLimitationReason;\n\t\t\t\t\tif(value.framesEncoded != null) { //audio tracks are undefined here\n\t\t\t\t\t\tframesEncoded += value.framesEncoded;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (value.type == \"track\" && typeof value.kind != \"undefined\" && value.kind == \"audio\") {\n\t\t\t\t\tif (typeof value.audioLevel != \"undefined\") {\n\t\t\t\t\t\taudioLevel = value.audioLevel;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (typeof value.jitterBufferDelay != \"undefined\" && typeof value.jitterBufferEmittedCount != \"undefined\") {\n\t\t\t\t\t\taudioJitterAverageDelay = value.jitterBufferDelay/value.jitterBufferEmittedCount;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (value.type == \"track\" && typeof value.kind != \"undefined\" && value.kind == \"video\") \n\t\t\t\t{\n\t\t\t\t\tif (typeof value.frameWidth != \"undefined\") {\n\t\t\t\t\t\tframeWidth = value.frameWidth;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof value.frameHeight != \"undefined\") {\n\t\t\t\t\t\tframeHeight = value.frameHeight;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (typeof value.framesDecoded != \"undefined\") {\n\t\t\t\t\t\tframesDecoded = value.framesDecoded ;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (typeof value.framesDropped != \"undefined\") {\n\t\t\t\t\t\tframesDropped = value.framesDropped;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (typeof value.framesReceived != \"undefined\") {\n\t\t\t\t\t\tframesReceived = value.framesReceived;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (typeof value.jitterBufferDelay != \"undefined\" && typeof value.jitterBufferEmittedCount != \"undefined\") {\n\t\t\t\t\t\tvideoJitterAverageDelay = value.jitterBufferDelay/value.jitterBufferEmittedCount;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (value.type == \"remote-inbound-rtp\" && typeof value.kind != \"undefined\") {\n\n\t\t\t\t\tif (typeof value.packetsLost != \"undefined\") {\n\t\t\t\t\t\tif (value.kind == \"video\") {\n\t\t\t\t\t\t\t//this is the packetsLost for publishing\n\t\t\t\t\t\t\tvideoPacketsLost = value.packetsLost;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (value.kind == \"audio\") {\n\t\t\t\t\t\t\t//this is the packetsLost for publishing\n\t\t\t\t\t\t\taudioPacketsLost = value.packetsLost;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (typeof value.roundTripTime != \"undefined\") {\n\t\t\t\t\t\tif (value.kind == \"video\") {\n\t\t\t\t\t\t\tvideoRoundTripTime = value.roundTripTime;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (value.kind == \"audio\") {\n\t\t\t\t\t\t\taudioRoundTripTime = value.roundTripTime;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (typeof value.jitter != \"undefined\") {\n\t\t\t\t\t\tif (value.kind == \"video\") {\n\t\t\t\t\t\t\tvideoJitter = value.jitter;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (value.kind == \"audio\") {\n\t\t\t\t\t\t\taudioJitter = value.jitter;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (value.type == \"media-source\")\n\t\t\t\t{\n\t\t\t\t\tif(value.kind == \"video\") { //returns video source dimensions, not necessarily dimensions being encoded by browser\n\t\t\t\t\t\twidth = value.width;\n\t\t\t\t\t\theight = value.height;\n\t\t\t\t\t\tfps = value.framesPerSecond;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.remotePeerConnectionStats[streamId].totalBytesReceived = bytesReceived;\n\t\t\tthis.remotePeerConnectionStats[streamId].videoPacketsLost = videoPacketsLost;\n\t\t\tthis.remotePeerConnectionStats[streamId].audioPacketsLost = audioPacketsLost;\n\t\t\tthis.remotePeerConnectionStats[streamId].fractionLost = fractionLost;\n\t\t\tthis.remotePeerConnectionStats[streamId].currentTime = currentTime;\n\t\t\tthis.remotePeerConnectionStats[streamId].totalBytesSent = bytesSent;\n\t\t\tthis.remotePeerConnectionStats[streamId].audioLevel = audioLevel;\n\t\t\tthis.remotePeerConnectionStats[streamId].qualityLimitationReason = qlr;\n\t\t\tthis.remotePeerConnectionStats[streamId].totalFramesEncoded = framesEncoded;\n\t\t\tthis.remotePeerConnectionStats[streamId].resWidth = width;\n\t\t\tthis.remotePeerConnectionStats[streamId].resHeight = height;\n\t\t\tthis.remotePeerConnectionStats[streamId].srcFps = fps;\n\t\t\tthis.remotePeerConnectionStats[streamId].frameWidth = frameWidth;\n\t\t\tthis.remotePeerConnectionStats[streamId].frameHeight = frameHeight;\n\t\t\tthis.remotePeerConnectionStats[streamId].videoRoundTripTime = videoRoundTripTime;\n\t\t\tthis.remotePeerConnectionStats[streamId].videoJitter = videoJitter;\n\t\t\tthis.remotePeerConnectionStats[streamId].audioRoundTripTime = audioRoundTripTime;\n\t\t\tthis.remotePeerConnectionStats[streamId].audioJitter = audioJitter;\n\t\t\tthis.remotePeerConnectionStats[streamId].framesDecoded = framesDecoded;\n\t\t\tthis.remotePeerConnectionStats[streamId].framesDropped = framesDropped;\n\t\t\tthis.remotePeerConnectionStats[streamId].framesReceived = framesReceived;\n\t\t\t\n\t\t\tthis.remotePeerConnectionStats[streamId].videoJitterAverageDelay = videoJitterAverageDelay;\n\t\t\tthis.remotePeerConnectionStats[streamId].audioJitterAverageDelay = audioJitterAverageDelay;\n\n\n\t\t\tthis.callback(\"updated_stats\", this.remotePeerConnectionStats[streamId]);\n\n\t\t});\n\t}\n\tdisableStats(streamId) \n\t{\n\t\tif(this.remotePeerConnectionStats[streamId] != null || typeof this.remotePeerConnectionStats[streamId] != 'undefined'){\n\t\t\tclearInterval(this.remotePeerConnectionStats[streamId].timerId);\n\t\t}\n\t}\n\n\tenableStats(streamId) \n\t{\n\t\tif (this.remotePeerConnectionStats[streamId] == null) {\n\t\t\tthis.remotePeerConnectionStats[streamId] = new PeerStats(streamId);\n\t\t\tthis.remotePeerConnectionStats[streamId].timerId = setInterval(() =>\n\t\t\t{\n\t\t\t\tthis.getStats(streamId);\n\n\t\t\t}, 5000);\n\t\t}\n\t}\n\n\t/**\n\t * After calling this function, create new WebRTCAdaptor instance, don't use the the same objectone\n\t * Because all streams are closed on server side as well when websocket connection is closed.\n\t */\n\tcloseWebSocket() \n\t{\n\t\tfor (var key in this.remotePeerConnection) {\n\t\t\tthis.remotePeerConnection[key].close();\n\t\t}\n\t\t//free the remote peer connection by initializing again\n\t\tthis.remotePeerConnection = new Array();\n\t\tthis.webSocketAdaptor?.close();\n\t}\n\n\tcheckWebSocketConnection()\n\t{\n\t\tif (this.webSocketAdaptor == null || (this.webSocketAdaptor?.isConnected() == false && this.webSocketAdaptor?.isConnecting() == false)) {\n\n\t\t\tthis.webSocketAdaptor = new WebSocketAdaptor({websocket_url : this.websocket_url, webrtcadaptor : this, callback : this.callback, callbackError : this.callbackError, debug : this.debug});\n\t\t}\t\t\n\t}\n\n\tpeerMessage(streamId, definition, data) \n\t{\n\t\tvar jsCmd = {\n\t\t\t\tcommand : \"peerMessageCommand\",\n\t\t\t\tstreamId : streamId,\n\t\t\t\tdefinition : definition,\n\t\t\t\tdata: data,\n\t\t};\n\n\t\tthis.webSocketAdaptor?.send(JSON.stringify(jsCmd));\n\t}\n\t\n\tforceStreamQuality(streamId, resolution) \n\t{\n\t\tvar jsCmd = {\n\t\t\t\tcommand : \"forceStreamQuality\",\n\t\t\t\tstreamId : streamId,\n\t\t\t\tstreamHeight : resolution\n\t\t};\n\t\tthis.webSocketAdaptor?.send(JSON.stringify(jsCmd));\n\t}\n\n\tsendData(streamId, data) \n\t{\n\t\tvar CHUNK_SIZE = 16000;\n\t\tvar dataChannel = this.remotePeerConnection[streamId].dataChannel;\n var length = data.length || data.size || data.byteLength;\n\t\tvar sent = 0;\n\n\t\tif(typeof data === 'string' || data instanceof String){\n\t\t\tdataChannel.send(data);\n\t\t}\n\t\telse {\n\t\t\tvar token = Math.floor(Math.random() * 999999);\n\t\t\tlet header = new Int32Array(2);\n\t\t\theader[0] = token;\n\t\t\theader[1] = length;\n\n\t\t\tdataChannel.send(header);\n\n\t\t\tvar sent = 0;\n\t\t\twhile(sent < length) {\n\t\t\t\tvar size = Math.min(length-sent, CHUNK_SIZE);\n\t\t\t\tvar buffer = new Uint8Array(size+4);\n\t\t\t\tvar tokenArray = new Int32Array(1);\n\t\t\t\ttokenArray[0] = token;\n\t\t\t\tbuffer.set(new Uint8Array(tokenArray.buffer, 0, 4), 0);\n\n\t\t\t\tvar chunk = data.slice(sent, sent+size);\n\t\t\t\tbuffer.set(new Uint8Array(chunk), 4);\n\t\t\t\tsent += size;\n\n\t\t\t\tdataChannel.send(buffer);\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, OnInit, OnDestroy, HostListener } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { AppHelpers } from \"src/app/utils/helper\";\n\n@Component({\n selector: \"app-splash\",\n templateUrl: \"home.component.html\"\n})\nexport class SplashComponent implements OnInit, OnDestroy {\n consoleLog = console.log;\n // iframeUrl = `https://www.youtube.com/embed/_dnZpc-Ghr8?autoplay=1&controls=0&loop=1&origin=${encodeURIComponent(location.origin)}&playsinline=1&widgetid=1`;\n iframeUrl = `https://www.youtube.com/embed/_dnZpc-Ghr8?autoplay=1&controls=0&loop=1&playsinline=1&widgetid=1`;\n constructor(private _router: Router) {}\n \n ngOnInit() {\n var body = document.getElementsByTagName(\"body\")[0];\n body.classList.add(\"splash-page\");\n }\n\n ngOnDestroy() {\n var body = document.getElementsByTagName(\"body\")[0];\n body.classList.remove(\"splash-page\");\n }\n\n clearSessionAndRedirect() {\n AppHelpers.destroyUserInfo();\n AppHelpers.destroyToken();\n this._router.navigate(['login']);\n }\n}\n","\nexport class WebSocketAdaptor \n{\n constructor(initialValues){\n \n this.debug = false;\n for(var key in initialValues) {\n\t\t\tif(initialValues.hasOwnProperty(key)) {\n\t\t\t\tthis[key] = initialValues[key];\n\t\t\t}\n }\n \n\t\tthis.initWebSocketConnection();\n\n }\n\n initWebSocketConnection(callbackConnected) {\n\t\tthis.connecting = true;\n this.connected = false;\n this.pingTimerId = -1;\n\n\t\tthis.wsConn = new WebSocket(this.websocket_url);\n this.wsConn.onopen = () => {\n if (this.debug) \n {\n console.debug(\"websocket connected\");\n }\n \n this.pingTimerId = setInterval(() => {\n this.sendPing();\n }, 3000);\n \n this.connected = true;\n this.connecting = false;\n this.callback(\"initialized\");\n\n\t\t\tif (typeof callbackConnected != \"undefined\") {\n\t\t\t\tcallbackConnected();\n\t\t\t}\n }\n\n this.wsConn.onmessage = (event) => {\n var obj = JSON.parse(event.data);\n\n if (obj.command == \"start\")\n {\n //this command is received first, when publishing so playmode is false\n\n if (this.debug) {\n console.debug(\"received start command\");\n }\n\n this.webrtcadaptor.startPublishing(obj.streamId);\n }\n else if (obj.command == \"takeCandidate\") {\n\n if (this.debug) {\n console.debug(\"received ice candidate for stream id \" + obj.streamId);\n console.debug(obj.candidate);\n }\n\n this.webrtcadaptor.takeCandidate(obj.streamId, obj.label, obj.candidate);\n\n } else if (obj.command == \"takeConfiguration\") {\n\n if (this.debug) {\n console.debug(\"received remote description type for stream id: \" + obj.streamId + \" type: \" + obj.type );\n }\n this.webrtcadaptor.takeConfiguration(obj.streamId, obj.sdp, obj.type);\n\n }\n else if (obj.command == \"stop\") {\n \tif (this.debug){\n \tconsole.debug(\"Stop command received\");\n }\n this.webrtcadaptor.closePeerConnection(obj.streamId);\n }\n else if (obj.command == \"error\") {\n this.callbackError(obj.definition);\n }\n else if (obj.command == \"notification\") {\n this.callback(obj.definition, obj);\n if (obj.definition == \"play_finished\" || obj.definition == \"publish_finished\") {\n this.webrtcadaptor.closePeerConnection(obj.streamId);\n }\n }\n else if (obj.command == \"streamInformation\") {\n this.callback(obj.command, obj);\n }\n else if (obj.command == \"roomInformation\") {\n this.callback(obj.command, obj);\n }\n else if (obj.command == \"pong\") {\n this.callback(obj.command);\n }\n else if (obj.command == \"trackList\") {\n this.callback(obj.command, obj);\n }\n else if (obj.command == \"connectWithNewId\") {\n this.multiPeerStreamId = obj.streamId;\n this.join(obj.streamId);\n }\n else if (obj.command == \"peerMessageCommand\") {\n this.callback(obj.command, obj);\n }\n }\n\n this.wsConn.onerror = (error) => {\n \tthis.connecting = false;\n \tthis.connected = false;\n console.info(\" error occured: \" + JSON.stringify(error));\n \n this.clearPingTimer();\n this.callbackError(\"WebSocketNotConnected\", error)\n }\n\n this.wsConn.onclose = (event) => {\n \tthis.connecting = false;\n this.connected = false;\n if (this.debug) {\n \tconsole.debug(\"connection closed.\");\n }\n this.clearPingTimer();\n this.callback(\"closed\", event);\n }\n\n\t}\n\n clearPingTimer(){\n if (this.pingTimerId != -1) {\n if (this.debug) {\n console.debug(\"Clearing ping message timer\");\n }\n clearInterval(this.pingTimerId);\n this.pingTimerId = -1;\n }\n }\n\n sendPing() {\n var jsCmd = {\n command : \"ping\"\n };\n this.wsConn.send(JSON.stringify(jsCmd));\n }\n\n close() {\n this.wsConn.close();\n }\n\t\n send(text) {\n\n if (this.connecting == false && this.connected == false) {\n\t\t\t//try to reconnect\n\t\t\tthis.initWebSocketConnection(() => {\n\t\t\t\tthis.send(text);\n\t\t\t});\n return;\n }\n this.wsConn.send(text);\n if (this.debug) {\n \tconsole.debug(\"sent message:\" +text);\n }\n }\n\n isConnected(){\n return this.connected;\n }\n \n isConnecting() {\n \treturn this.connecting;\n }\n}","export class SoundMeter {\n constructor (context) {\n this._context = context\n this._instant = 0\n this._slow = 0\n this._analyser = context.createAnalyser()\n this._analyser.fftSize = 2048\n const bufferLength = this._analyser.fftSize\n this._dataArray = new Uint8Array(bufferLength)\n \n this.minVolume = -36\n this.maxVolume = 0\n }\n\n get instant () { return this._instant }\n get slow () { return this._slow }\n\n connectToSource (stream) {\n this._source = this._context.createMediaStreamSource(stream)\n this._source.connect(this._analyser)\n }\n\n disconnectCurentSource () {\n if (this._source){\n this._instant = 0;\n this._slow = 0;\n this._source.disconnect();\n }\n }\n\n update () {\n this._analyser.getByteTimeDomainData(this._dataArray)\n let sum = 0\n let clipcount = 0\n for (let i = 0; i < this._dataArray.length; i++) {\n const data = this._dataArray[i] / 128 - 1\n sum += data * data\n if (Math.abs(data) > 0.99) {\n clipcount++\n }\n }\n const amp = Math.sqrt(sum / this._dataArray.length)\n let volume = 20 * Math.log10(amp)\n volume = (volume - this.minVolume) / (this.maxVolume - this.minVolume)\n volume = Math.min(Math.max(0, volume), 1)\n this._instant = volume\n this._slow = 0.9 * this._slow + 0.1 * this._instant\n\n }\n}","// Class Import\nimport { AppConfig } from './config';\n\n// Plugins\nimport * as moment from 'moment';\nimport { Injectable } from '@angular/core';\nimport { EMPTY } from 'rxjs';\nimport { NgxNotificationService } from 'ngx-notification';\n\n@Injectable()\nexport class AppHelpers {\n constructor(private ngxNotificationService: NgxNotificationService) {\n }\n\n /**\n * @description\n * Formats the given date in the given format\n *\n * @params\n * date: Date\n * format: Desired format for date\n */ \n public static formatDate(date, format: string): any{\n return moment(new Date(date).getTime()).format(format);\n }\n\n public static isValid(value: string, regExpression = AppConfig.RegexPatterns.password) {\n return new RegExp(regExpression).test(value);\n\n }\n\n /**\n * @description\n * Show Notification Bar\n *\n * @params\n * type: string, title: string, message: string, icon: string\n */\n public static showNotification(type = 'success', title = '', message: string, icon = '', extraClass = '') {\n \n }\n\n public static getToken(): string {\n if (AppConfig.loginToken) {\n return AppConfig.loginToken;\n }\n return this.getCookie('riotToken');\n }\n\n public static getUserInfo() {\n return this.getCookie('riotUserInfo') ? JSON.parse(this.getCookie('riotUserInfo')) : null;\n }\n\n public static saveToken(token: string) {\n AppConfig.loginToken = token;\n AppConfig.isLoggedIn = true;\n this.setCookie('riotToken', token);\n }\n\n public static hoursRemaining(elapsed: any = 0, minutesTotal: any = 0) {\n let minutesRemaining = minutesTotal - elapsed;\n let hours = (minutesRemaining/60).toFixed(2);\n return hours;\n }\n\n public static streamAnalytics(elapsed= 0, minutesTotal= 0, totalListeners = 0) {\n let minutesRemaining = (minutesTotal - elapsed) >= 0 ? (minutesTotal - elapsed) : 0 ;\n let hour = (minutesRemaining / 60).toFixed(0);\n let minute = totalListeners ? (minutesRemaining / totalListeners).toFixed(0) : \"∞\"; //minutesRemaining.toString(); //(minutesRemaining / 60 % 60).toFixed(0);\n // return formated string\n return {hour, minute};\n }\n\n public static saveUserInfo(userInfo) {\n this.setCookie('riotUserInfo', JSON.stringify(userInfo));\n }\n\n public static destroyToken() {\n AppConfig.loginToken = null;\n AppConfig.isLoggedIn = false;\n this.deleteCookie('riotToken');\n }\n\n public static destroyUserInfo() {\n this.deleteCookie('riotUserInfo');\n this.deleteCookie('broadcasterStream');\n }\n\n public static isLoggedIn() {\n return this.getToken() ? true : false;\n }\n\n public static showLoader(elementId) {\n document.getElementById(elementId).classList.add('is--loading');\n }\n\n public static hideLoader(elementId = null) {\n if (elementId) {\n document.getElementById(elementId) ? document.getElementById(elementId).classList.remove('is--loading') : null;\n } else {\n document.querySelectorAll('.is--loading').forEach(element => {\n element.classList.remove('is--loading');\n });\n }\n }\n\n /**\n * set cookie details\n *\n * @param {String} cname Cooke name\n * @param {String} cvalue Cooke value\n * @param {Number} exdays Expiry Days Count\n */\n public static setCookie(cname, cvalue, exdays = 10) {\n localStorage.setItem(cname, cvalue);\n }\n\n /**\n * get cookie details by name\n *\n * @param {String} cname Cooke name\n * @returns {String} as cookie details\n */\n public static getCookie(cname) {\n const storage = localStorage.getItem(cname) ? localStorage.getItem(cname) : null;\n return storage\n }\n /**\n * delete cookie by name\n *\n * @param {String} cname Cooke name\n */\n public static deleteCookie(cname) {\n localStorage.removeItem(cname);\n }\n\n /**\n * handle http errors\n *\n * @param {Object} errorObj HTTP Error Object\n */\n public static handleHttpError(errorObj) {\n let ErrorObj = {};\n let ErrorList = [];\n let Message;\n let Status;\n let Icon;\n let ExtraClass = \"\";\n \n if (errorObj.status === 200) { // Success With Message\n Message = errorObj.error && errorObj.error.text ? errorObj.error.text : \"Action has been successfully performed!\";\n Status = \"success\";\n Icon = \"fa fa-check-circle\"; \n } else { // Error\n Message = errorObj.error && errorObj.error.message ? errorObj.error.message : \"Something went wrong!\";\n Status = \"danger\";\n Icon = \"fa fa-warning\"; \n }\n \n AppHelpers.hideLoader();\n return EMPTY;\n };\n}\n","import { HttpHeaders } from \"@angular/common/http\";\nimport { Component, OnInit, OnDestroy, ViewChild } from \"@angular/core\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\nimport { Router } from \"@angular/router\";\nimport { NgxNotificationService } from \"ngx-notification\";\nimport noUiSlider from \"nouislider\";\nimport { ApiService } from \"src/app/services/api.service\";\nimport { AppHelpers } from \"src/app/utils/helper\";\nimport LocationPicker from \"location-picker\";\n\n@Component({\n selector: \"app-account-details\",\n templateUrl: \"account-details.component.html\"\n})\nexport class AccountDetailsComponent implements OnInit, OnDestroy {\n @ViewChild('myModal2') myModal2;\n lp: LocationPicker;\n isCollapsed = true;\n focus;\n focus1;\n focus2;\n submitError = false;\n date = new Date();\n pagination = 3;\n pagination1 = 1;\n accountSubmitButton = 'accountSubmitButton';\n locationSubmitButton = 'locationSubmitButton';\n accountSubmitPasswordButton = 'accountSubmitPasswordButton';\n accountSubmitHyperlinkButton = 'accountSubmitHyperlinkButton';\n currentContentView = 'streams';\n focusCollection = {};\n streams = [];\n payments = [];\n userImage = null;\n requestBody: any = {};\n changePasswordBody: any = {};\n hyperlinkBody: any = {\n isHyperLinkVisible: false,\n };\n header = null;\n broadcastStreamData: any = {};\n packagesList = [];\n packagesBroadcasterList = [];\n AppHelpers = AppHelpers;\n constructor(private _router: Router, private sanitizer: DomSanitizer, private ngxNotificationService: NgxNotificationService, private api: ApiService) {\n this.header = new HttpHeaders({\n \"x-access-token\": AppHelpers.getToken()\n });\n\n this.getProfileData();\n this.getPaymentData();\n this.getPackagesData();\n this.getStreamData();\n this.getBroadcasePackages();\n }\n \n ngOnInit() {}\n ngOnDestroy() {}\n\n initializeMap() {\n let setCurrentPosition = true, lat = undefined, lng = undefined;\n const { location } = this.broadcastStreamData;\n if (location.coordinates[1] && location.coordinates[0]) {\n setCurrentPosition = false;\n lat = location.coordinates[1];\n lng = location.coordinates[0];\n }\n this.lp = new LocationPicker('map', { setCurrentPosition, lat, lng }, { disableDefaultUI: true, zoomControl: true, zoom: 20 });\n }\n\n \n\n getProfileData () {\n this.api.get('/api/user/profile', null, this.header, true).subscribe((res) => {\n if (res.data) {\n this.requestBody = {...res.data};\n }\n })\n }\n \n getStreamData () {\n this.api.get('/api/stream/broadcasterStream', null, this.header, true).subscribe((res) => {\n if (res.data) {\n localStorage.setItem('broadcasterStream', JSON.stringify(res.data));\n\n this.broadcastStreamData = res.data;\n this.hyperlinkBody = {\n hyperLinkText: this.broadcastStreamData.hyperLinkText, \n hyperLinkUrl: this.broadcastStreamData.hyperLinkUrl,\n isHyperLinkVisible: this.broadcastStreamData.isHyperLinkVisible ? true : false,\n }\n\n this.initializeMap();\n }\n })\n }\n\n getPackagesData () {\n this.api.get('/api/package/listener', null, this.header, true).subscribe((res) => {\n if (res.data) {\n this.packagesList = res.data.map(x => { return {...x, tier: x.name.split('Tier')[1]} });\n }\n })\n }\n\n updateStreamData() {\n const { name, packageId, _id, locationRestriction, isPremium } = this.broadcastStreamData;\n const requestBody = { _id, name, packageId, locationRestriction, isPremium }\n this.api.put('/api/stream/update', requestBody, this.header, true).subscribe(() => {\n localStorage.setItem('broadcasterStream', JSON.stringify({...this.broadcastStreamData}));\n })\n }\n\n updateStreamLocation() {\n const { _id, location } = this.broadcastStreamData;\n const requestBody = { streamId: _id, latitude: location.coordinates[1], longitude: location.coordinates[0] };\n this.api.put('/api/stream/update/location', requestBody, this.header, true).subscribe(() => {\n AppHelpers.hideLoader(this.locationSubmitButton);\n console.log(\"Location Updated\");\n });\n }\n\n getPaymentData () {\n this.api.get('/api/user/paymentHistory', null, this.header, true).subscribe((res) => {\n if (res.data) {\n console.log(res.data);\n this.payments = res.data;\n // this.requestBody = {...res.data};\n }\n })\n }\n\n getBroadcasePackages() {\n this.api.get(`/api/package/broadcaster`, null, this.header, true).subscribe(response => {\n this.packagesBroadcasterList = response.data;\n });\n }\n\n submit() {\n if (this.requestBody['name']) {\n AppHelpers.showLoader(this.accountSubmitButton);\n this.api.put('/api/user/profile', this.requestBody, this.header, true).subscribe((res) => {\n if (res.data) {\n this.ngxNotificationService.sendMessage('Profile succesfully updated', 'success', 'bottom-left');\n AppHelpers.hideLoader(this.accountSubmitButton);\n }\n })\n } else {\n this.ngxNotificationService.sendMessage('Name field is required', 'warning', 'bottom-left');\n }\n }\n submitPassword() {\n if (this.changePasswordBody['oldPassword'] && this.changePasswordBody['newPassword'] == this.changePasswordBody['confirmPassword']) {\n AppHelpers.showLoader(this.accountSubmitPasswordButton);\n this.api.put('/api/user/resetPassword', this.changePasswordBody, this.header, true).subscribe((res) => {\n if (res.data) {\n }\n this.ngxNotificationService.sendMessage(res.message, 'success', 'bottom-left');\n AppHelpers.hideLoader(this.accountSubmitPasswordButton);\n })\n } else {\n this.ngxNotificationService.sendMessage('Please provide valid passwords', 'warning', 'bottom-left');\n }\n }\n submitHyperlink() {\n if (this.hyperlinkBody['hyperLinkText'] && this.hyperlinkBody['hyperLinkUrl']) {\n AppHelpers.showLoader(this.accountSubmitHyperlinkButton);\n this.hyperlinkBody.streamId = this.broadcastStreamData._id;\n this.api.put('/api/stream/update/hyperlink', this.hyperlinkBody, this.header, true).subscribe((res) => {\n this.ngxNotificationService.sendMessage(\"Hyperlink settings have been saved\", 'success', 'bottom-left');\n AppHelpers.hideLoader(this.accountSubmitHyperlinkButton);\n })\n } else {\n this.ngxNotificationService.sendMessage('Request couldn\\'t be sent', 'warning', 'bottom-left');\n }\n }\n\n getPaymentPrice(message) {\n return this.packagesBroadcasterList.find(x => x.name == message.split(' package')[0])?.price;\n }\n\n uploadImage(event) {\n const file = event.target.files[0];\n const fileURL = URL.createObjectURL(file);\n const sanitizeURL = this.sanitizer.bypassSecurityTrustResourceUrl(fileURL);\n this.userImage = sanitizeURL;\n\n const formData = new FormData();\n formData.append('file', file);\n\n this.api.post('/api/stream/upload', formData, this.header, true).subscribe((res) => {\n \n const { name, packageId, _id } = this.broadcastStreamData;\n const requestBody = { _id, name, packageId, pictureUrl: res.data }\n\n this.api.put('/api/stream/update', requestBody, this.header, true).subscribe(() => {\n localStorage.setItem('broadcasterStream', JSON.stringify({...this.broadcastStreamData, pictureUrl: res.data}));\n\n this.ngxNotificationService.sendMessage(res.message, 'success', 'bottom-left');\n })\n\n }, (err) => {\n this.ngxNotificationService.sendMessage(err.message, 'warning', 'bottom-left');\n })\n }\n\n onhyperLinkChange(ev) {\n this.hyperlinkBody['isHyperLinkVisible'] = ev.currentValue;\n }\n \n onPremiumChange(ev) {\n this.broadcastStreamData['isPremium'] = ev.currentValue;\n }\n \n onLocationRestrictionChange(ev) {\n this.broadcastStreamData['locationRestriction'] = ev.currentValue;\n }\n\n submitLocation() {\n let submitRequest = false;\n const location = this.lp.getMarkerPosition();\n this.broadcastStreamData['location']['coordinates'][0] = location.lng;\n this.broadcastStreamData['location']['coordinates'][1] = location.lat;\n if (this.broadcastStreamData['location']?.['coordinates']?.[0] && this.broadcastStreamData['location']?.['coordinates']?.[1] && this.broadcastStreamData['locationRestriction']) {\n submitRequest = true;\n } else if (!this.broadcastStreamData['locationRestriction']) {\n submitRequest = true;\n }\n\n if (submitRequest) {\n AppHelpers.showLoader(this.locationSubmitButton);\n this.updateStreamData();\n this.updateStreamLocation();\n } else {\n this.ngxNotificationService.sendMessage(\"Latitude and Longitude are required!\", 'warning', 'bottom-left');\n }\n \n }\n}","export default \"\\n
\\n
\\n \\n
\\n \\n\\n
\\n \\n
\\n
\\n

No available streams. Create new Stream by click below

\\n \\n Create Stream\\n \\n
\\n
\\n\\n
\\n \\n
\\n\\n \\n
\\n
\\n
\\n \\n \\n \\n
\\n

Create Stream

\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n
\\n \\n
\\n
\\n \\n
\\n \\n\\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n\\n \\n\\n\";","export default \"\\n
\\n
\\n \\n BLK• Design System Angular\\n \\n \\n \\n \\n \\n \\n
\\n \\n
\\n
\\n \\n
\\n \\n \\n \\n
\\n
\\n
\\n
    \\n
  • \\n \\n \\n

    Twitter

    \\n \\n
  • \\n
  • \\n \\n \\n

    Facebook

    \\n \\n
  • \\n
  • \\n \\n \\n

    Instagram

    \\n \\n
  • \\n
  • \\n Back to Kit \\n
  • \\n
  • \\n \\n Have an issue?\\n \\n
  • \\n
\\n
\\n \\n\\n
\\n
\\n \\n\\n \\n\\n \\n\\n \\n\\n \\n\\n \\n\\n
\\n \\n
\\n

\\n We keep your coin
\\n\\n secured \\n

\\n

\\n A wonderful serenity has taken possession of my entire soul, like\\n these sweet mornings of spring which I enjoy with my whole heart. I\\n am alone, and feel...\\n

\\n
\\n

From 9.99%/mo

\\n \\n \\n \\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n

3,237

\\n

\\n

Awards

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n

3,653

\\n

\\n

Commits

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n

593

\\n

\\n

Presents

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n

10,783

\\n

\\n

Forks

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n

\\n Large
\\n\\n Achivements\\n

\\n

\\n I should be capable of drawing a single stroke at the present\\n moment; and yet I feel that I never was a greater artist than\\n now.\\n

\\n
\\n\\n

\\n When, while the lovely valley teems with vapour around me, and\\n the meridian sun strikes the upper surface of the impenetrable\\n foliage of my trees, and but a few stray.\\n

\\n
\\n\\n \\n Show all \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n\\n \\n\\n \\n\\n
\\n
\\n
\\n

Your best benefit

\\n
\\n
\\n
\\n
\\n \\n
\\n

Low Commission

\\n
\\n\\n

\\n Divide details about your work into parts. Write a few lines\\n about each one. A paragraph describing a feature will.\\n

\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n

High Incomes

\\n
\\n\\n

\\n Divide details about your product or agency work into parts.\\n Write a few lines about each one. A paragraph describing\\n feature will be a feature.\\n

\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n

Verified People

\\n
\\n\\n

\\n Divide details about your product or agency work into parts.\\n Write a few lines about each one. A paragraph describing be\\n enough.\\n

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n\\n
\\n
\\n
\\n \\n\\n
\\n
\\n
\\n
\\n

100%

\\n

Safe

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n

573 K

\\n

Satisfied customers

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n

10 425

\\n

Business

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n

Awesome features

\\n

\\n The design system comes with three pre-built pages to help you get\\n started faster. You can change the text and images and you're good\\n to go.\\n

\\n
    \\n
  • \\n
    \\n
    \\n \\n
    \\n
    Carefully crafted components
    \\n
    \\n
  • \\n
  • \\n
    \\n
    \\n \\n
    \\n
    Amazing page examples
    \\n
    \\n
  • \\n
  • \\n
    \\n
    \\n \\n
    \\n
    Super friendly support team
    \\n
    \\n
  • \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n\\n \\n\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
Total Investments
\\n

Performance

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n\\n
\\n
\\n
\\n
\\n\\n

\\n Choose the coin\\n that fits your needs \\n

\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n

Light Coin

\\n Plan \\n
\\n
\\n
\\n
\\n
    \\n
  • 50 messages
  • \\n
  • 100 emails
  • \\n
  • 24/7 Support
  • \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n

Dark Coin

\\n Plan \\n
\\n
\\n
\\n
\\n
    \\n
  • 150 messages
  • \\n
  • 1000 emails
  • \\n
  • 24/7 Support
  • \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n

Bright Coin

\\n Plan \\n
\\n
\\n
\\n
\\n
    \\n
  • 350 messages
  • \\n
  • 10K emails
  • \\n
  • 24/7 Support
  • \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n\\n\";","import { HttpHeaders } from \"@angular/common/http\";\nimport { Component, OnInit, OnDestroy, ViewChild } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { NgxNotificationService } from \"ngx-notification\";\nimport { ApiService } from \"src/app/services/api.service.js\";\nimport { AppHelpers } from \"src/app/utils/helper.js\";\nimport { SoundMeter } from '../../../assets/js/soundmeter.js';\nimport { WebRTCAdaptor } from '../../../assets/js/webrtc_adaptor.js';\n\nimport { StripeService, StripeCardComponent } from 'ngx-stripe';\nimport { StripeCardElementOptions, StripeElementsOptions } from '@stripe/stripe-js';\nimport { AppConfig } from \"src/app/utils/config.js\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\n\n@Component({\n selector: \"app-play-stream\",\n templateUrl: \"play-stream.component.html\",\n})\nexport class PlayStreamComponent implements OnInit, OnDestroy {\n @ViewChild(StripeCardComponent) card: StripeCardComponent;\n cardOptions: StripeCardElementOptions = {\n style: {\n base: {\n iconColor: '#666EE8',\n color: '#31325F',\n fontWeight: '300',\n fontFamily: '\"Poppins\", sans-serif',\n fontSize: '18px',\n '::placeholder': {\n color: '#CFD7E0'\n }\n }\n }\n };\n elementsOptions: StripeElementsOptions = {\n locale: 'en'\n };\n\n @ViewChild('broadcastPackage') broadcastPackage;\n @ViewChild('streamName') streamName;\n @ViewChild('recordingAudio') recordingAudio;\n AppHelpers = AppHelpers;\n AppConfig = AppConfig;\n consoleLog = console.log;\n isCollapsed = true;\n selectedAudioInput = null;\n audioInputs = [];\n focus;\n focus1;\n focus2;\n streamButton = 'streamButton';\n streams = [];\n hasAutoTop = false;\n streamType = 'continuous';\n broadcastStatus = 'stopped';\n broadcastingInterval = null;\n broadcastData = null;\n webRTCAdaptor = null;\n header = null;\n stats = {\n minutesElapsed: 0,\n totalMinutes: 0,\n totalListeners: 0,\n formattedHours: 0,\n formattedMinutes: 0,\n }\n purchaseStreamRequest = {\n packageId: null,\n stripeToken: null,\n }\n streamNameRequest = {\n name: null,\n }\n packagesList = [];\n audioChunks = [];\n recordState = null;\n recordingState = \"stopped\";\n audioFileUrl:any = \"\";\n soundMeter: any = {slow:0};\n channels = 16; //default number of channels\n selectedChannel = \"mix\";\n constructor(private sanitizer: DomSanitizer,private _router: Router, private ngxNotificationService: NgxNotificationService, private api: ApiService, private stripeService: StripeService) {\n (async () => {\n await this.getAudioDevices();\n this.initInputStreams();\n })();\n\n this.header = new HttpHeaders({\n \"x-access-token\": AppHelpers.getToken()\n });\n \n this.getStreamData();\n \n if (localStorage.getItem('broadcasterStream') && JSON.parse(localStorage.getItem('broadcasterStream'))) {\n this.broadcastData = JSON.parse(localStorage.getItem('broadcasterStream'));\n this.hasAutoTop = this.broadcastData?.createdById?.isAutoTopupEnabled || false;\n if (!this.broadcastData.isActive) {\n this.subscribeToBroadCastPackage();\n }\n } else {\n this._router.navigate(['/stream']);\n }\n this.getBroadcasePackages();\n \n \n this.endBroadcastingAndLogOff();\n }\n\n async getAudioDevices() {\n let self = this;\n //required on Firefox for displaying the labels\n await navigator.mediaDevices.getUserMedia({audio: true}); \n const devices = await navigator.mediaDevices.enumerateDevices();\n self.audioInputs = devices.filter(x => x.kind === 'audioinput');\n self.selectedAudioInput = self.audioInputs[0].deviceId;\n\n }\n\n updateStreamData() {\n const { name, _id, packageId } = this.broadcastData;\n const requestBody = { _id, name, packageId }\n this.api.put('/api/stream/update', requestBody, this.header, true).subscribe(() => {\n localStorage.setItem('broadcasterStream', JSON.stringify({...this.broadcastData}));\n this.streamName.hide();\n })\n }\n\n getBroadcasePackages() {\n this.api.get(`/api/package/broadcaster`, null, this.header, true).subscribe(response => {\n this.packagesList = response.data;\n });\n }\n\n subscribeToBroadCastPackage(): void {\n if (this.purchaseStreamRequest.packageId) {\n AppHelpers.showLoader(this.streamButton);\n this.stripeService.createToken(this.card.element).subscribe((result) => {\n if (result.token) { // Use the token \n this.purchaseStreamRequest.stripeToken = result.token.id;\n this.api.post(`/api/stream/purchaseBroadcast`, this.purchaseStreamRequest, this.header, true, false).subscribe(response => {\n this.ngxNotificationService.sendMessage('Broadcast package successfully subscribed', 'success', 'bottom-left');\n AppHelpers.hideLoader(this.streamButton);\n this.broadcastPackage.hide();\n this.card.element.clear();\n window.location.reload();\n }, () => {\n this.ngxNotificationService.sendMessage(\"Payment couldn't be processed, please try again later or contact administrator.\", 'danger', 'bottom-left');\n AppHelpers.hideLoader(this.streamButton);\n });\n } else if (result.error) {\n this.ngxNotificationService.sendMessage(result.error.message, 'danger', 'bottom-left');\n AppHelpers.hideLoader(this.streamButton);\n }\n }, () => {\n this.ngxNotificationService.sendMessage(\"Payment couldn't be processed, please try again later or contact administrator.\", 'danger', 'bottom-left');\n AppHelpers.hideLoader(this.streamButton);\n });\n }\n }\n\n scrollToDownload(element: any) {\n element.scrollIntoView({ behavior: \"smooth\" });\n }\n\n updateLocation() {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition((position) => {\n const requestBody = { streamId: this.broadcastData._id, latitude: position.coords.latitude, longitude: position.coords.longitude };\n this.api.put('/api/stream/update/location', requestBody, this.header, true).subscribe(() => {\n console.log(\"Location Updated\");\n })\n }, (error) => console.warn(error), { enableHighAccuracy: true, timeout: 5000, maximumAge: 0 });\n } else {\n alert(\"Geolocation is not supported by this browser.\");\n } \n }\n\n ngOnInit() {\n var body = document.getElementsByTagName(\"body\")[0];\n body.classList.add(\"index-page\");\n\n // this.updateLocation();\n }\n\n ngOnDestroy() {\n var body = document.getElementsByTagName(\"body\")[0];\n body.classList.remove(\"index-page\");\n\n this.stopBroadcasting();\n }\n\n streamChanged(newStreamType) {\n this.streamType = newStreamType;\n if (newStreamType === 'push-to-talk') {\n this.updateBroadcasting('stopped');\n }\n\n clearTimeout(this.broadcastingInterval);\n this.endBroadcastingAndLogOff();\n }\n\n showLoader() {\n if (this.streamType != 'push-to-talk') {\n document.querySelector('.page-loader').classList.add('loader--active');\n }\n }\n\n hideLoading() {\n document.querySelector('.page-loader').classList.remove('loader--active');\n }\n\n muteBroadcasting() {\n // AppConfig.webRTCAdaptor.publish(this.broadcastData.streamId, undefined, undefined, undefined, this.broadcastData.name);\n // AppConfig.webRTCAdaptor.enableStats(this.broadcastData.streamId);\n AppConfig.webRTCAdaptor.toggleAudio(this.broadcastData.streamId, null, false);\n AppConfig.webRTCAdaptor.muteLocalMic();\n if (AppConfig.broadcastStatus !== \"disconnected\") {\n AppConfig.broadcastStatus = 'broadcasting_stopped';\n }\n\n clearTimeout(this.broadcastingInterval);\n this.endBroadcastingAndLogOff();\n }\n\n unmuteBroadcasting() {\n // AppConfig.webRTCAdaptor.stop(this.broadcastData.streamId);\n AppConfig.webRTCAdaptor.toggleAudio(this.broadcastData.streamId, null, true);\n AppConfig.webRTCAdaptor.unmuteLocalMic();\n AppConfig.broadcastStatus = 'broadcasting_started';\n // AppConfig.broadcastStatus = 'connected';\n }\n\n publishBroadcasting() {\n // AppConfig.webRTCAdaptor.play(this.broadcastData.streamId);\n // AppConfig.broadcastStatus = 'published';\n // AppConfig.webRTCAdaptor.enableStats(this.broadcastData.streamId);\n AppConfig.webRTCAdaptor.toggleAudio(this.broadcastData.streamId, null, true)\n }\n\n unpublishBroadcasting() {\n AppConfig.webRTCAdaptor.stop(this.broadcastData.streamId);\n AppConfig.broadcastStatus = 'disconnected';\n // AppConfig.webRTCAdaptor.enableStats(this.broadcastData.streamId);\n // AppConfig.webRTCAdaptor.toggleAudio(this.broadcastData.streamId, null, false)\n }\n \n stopBroadcasting(status = 'disconnected') {\n AppConfig.webRTCAdaptor.stop(this.broadcastData.streamId);\n // AppConfig.webRTCAdaptor.enableStats(this.broadcastData.streamId);\n // AppConfig.webRTCAdaptor.toggleAudio(this.broadcastData.streamId, null, false)\n }\n\n updateBroadcasting(status: string) {\n if ((AppConfig.broadcastStats.totalMinutes - AppConfig.broadcastStats.minutesElapsed) <= 0 && !this.hasAutoTop) {\n this.stopBroadcasting('limit_reached');\n AppConfig.webRTCAdaptor.closeStream(this.broadcastData.streamId);\n AppConfig.webRTCAdaptor.closeWebSocket(this.broadcastData.streamId);\n }\n switch (status) {\n case 'started':\n this.unmuteBroadcasting();\n break;\n case 'stopped':\n this.muteBroadcasting();\n break;\n case 'publish':\n this.muteBroadcasting();\n break;\n case 'unpublish':\n this.unmuteBroadcasting();\n break;\n }\n }\n\n initRecorder(stream : any = null) {\n if(!stream){\n navigator.mediaDevices.getUserMedia({ audio: {deviceId: this.selectedAudioInput ? {exact: this.selectedAudioInput} : undefined} }).then(stream => {\n this.handlerFunction(stream);\n });\n }\n else{\n this.handlerFunction(stream);\n }\n }\n\n handlerFunction(stream) {\n if(this.recordingState == \"recording\"){\n this.stopRecord(null);\n }\n this.recordState = new window[\"MediaRecorder\"](stream);\n this.recordState.ondataavailable = e => {\n this.audioChunks.push(e.data);\n if (this.recordState.state == \"inactive\") {\n let blob = new Blob(this.audioChunks, { type: 'audio/aac' });\n const sanitizeURL = this.sanitizer.bypassSecurityTrustResourceUrl(URL.createObjectURL(blob));\n this.audioFileUrl = sanitizeURL;\n // this.recordingAudio.nativeElement.src = URL.createObjectURL(blob);\n // this.recordingAudio.nativeElement.controls = true;\n // this.recordingAudio.nativeElement.autoplay = true;\n this.sendData(blob)\n let file = new File([blob as BlobPart], \"welcome.aac\");\n console.log(file, blob);\n const formData = new FormData();\n formData.append('file', file);\n this.uploadAudioWelcome(formData);\n }\n \n }\n }\n\n uploadFile(event) {\n console.log(event, \"Event\");\n const file = event.target.files[0];\n const formData = new FormData();\n formData.append('file', file);\n this.uploadAudioWelcome(formData);\n }\n\n getStreamData () {\n this.api.get('/api/stream/broadcasterStream', null, this.header, true).subscribe((res) => {\n if (res.data) {\n localStorage.setItem('broadcasterStream', JSON.stringify(res.data));\n\n this.broadcastData = res.data;\n var broadcastData = this.broadcastData;\n this.hasAutoTop = this.broadcastData?.createdById?.isAutoTopupEnabled || false;\n AppConfig.hasAutoTopUp = this.hasAutoTop;\n }\n })\n }\n\n uploadAudioWelcome(formData) {\n this.ngxNotificationService.sendMessage('Welcome message is uploading...', 'info', 'bottom-left');\n this.api.post('/api/stream/upload', formData, this.header, true).subscribe((res) => {\n \n const { name, packageId, _id } = this.broadcastData;\n const requestBody = { _id, name, packageId, welcomeAudioUrl: res.data }\n\n this.api.put('/api/stream/update', requestBody, this.header, true).subscribe(() => {\n localStorage.setItem('broadcasterStream', JSON.stringify({...this.broadcastData, welcomeAudioUrl: res.data}));\n\n this.broadcastData.welcomeAudioUrl = res.data;\n\n this.ngxNotificationService.sendMessage(res.message, 'success', 'bottom-left');\n })\n\n }, (err) => {\n this.ngxNotificationService.sendMessage(err.message, 'warning', 'bottom-left');\n })\n }\n\n sendData(data) { }\n\n initRecord(e) {\n this.recordingState = \"recording\";\n this.audioChunks = [];\n this.recordState.start();\n }\n\n stopRecord(e) {\n this.recordingState = \"stopped\";\n this.audioChunks = [];\n this.recordState.stop();\n }\n\n changeAutoTopUp() {\n let message = this.hasAutoTop ? \"disabled\" : \"enable\";\n if (confirm(`Are you sure you want to ${message} Auto-Top up`)) {\n let requestBody = {\n ...this.broadcastData,\n isAutoTopupEnabled: !this.hasAutoTop,\n };\n this.api.put('/api/user/profile', requestBody, this.header, true).subscribe((res) => {\n if (res.data) {\n this.ngxNotificationService.sendMessage(`Auto top up ${message}`, 'success', 'bottom-left');\n this.hasAutoTop = !this.hasAutoTop;\n this.broadcastData.isAutoTopupEnabled = res.data.isAutoTopupEnabled;\n localStorage.setItem('riotUserInfo', JSON.stringify({...res.data, isAutoTopupEnabled: !this.hasAutoTop}));\n }\n })\n }\n }\n\n endBroadcastingAndLogOff() {\n let timeout = this.streamType == 'continuous' ? (43200 * 1000) : (3600 * 1000) ;\n this.broadcastingInterval = setTimeout(() => {\n this.stopBroadcasting();\n AppHelpers.destroyToken();\n AppHelpers.destroyUserInfo();\n window.location.reload();\n }, timeout);\n }\n\n formatNumber(number) {\n return new Intl.NumberFormat('en').format(number);\n }\n\n initInputStreams(channel = \"\") {\n const options = {\n audio: {\n deviceId: this.selectedAudioInput\n ? { exact: this.selectedAudioInput }\n : undefined,\n echoCancellation: channel ? false:true,\n },\n };\n \n navigator.mediaDevices.getUserMedia(options).then((stream) => {\n if(channel){\n stream = this.splitChannels(stream, channel);\n }\n this.initSoundMeter(stream);\n this.initRecorder(stream);\n\n this.AppConfig.webRTCAdaptor.updateAudioTrack(\n stream.clone(),\n this.broadcastData.streamId,\n null\n );\n });\n }\n\n initSoundMeter(stream) {\n const audioCtx = new window.AudioContext();\n this.soundMeter = new SoundMeter(audioCtx);\n this.reloadSoundMeter(stream);\n setInterval(() => {\n this.soundMeter.update();\n }, 20);\n }\n\n reloadSoundMeter(stream) {\n this.soundMeter.disconnectCurentSource();\n this.soundMeter.connectToSource(stream);\n }\n\n splitChannels(stream, channel) {\n const audioCtx = new AudioContext();\n const input = audioCtx.createMediaStreamSource(stream)\n const splitter = audioCtx.createChannelSplitter(parseInt(channel));\n const monoSource = audioCtx.createMediaStreamDestination();\n input.connect(splitter);\n splitter.connect(monoSource, parseInt(channel)-1, 0);\n return monoSource.stream;\n }\n\n selectionChanged() {\n if (this.selectedChannel != \"mix\") {\n this.initInputStreams(this.selectedChannel);\n } else {\n this.initInputStreams();\n }\n }\n}","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n api_url: `https://api.riotbroadcast.com`,\n STRIPE_KEY:\n \"pk_test_51JTQjZIZrQ1ZHdcIJkFrdWXZ0PMaYBw8z4XfZZHW3PAaWbxpTmGCMJbiCEU6EXFYoBU4RyPXpPcf6g7F0UFQrAN200J7ISsSCF\",\n // STRIPE_KEY: 'pk_live_51JTQjZIZrQ1ZHdcI2GiDQvi42KZ51K4stsNUdZmTWOzjNFxQEFu0bMrW1QVEcFaT63VEGDnjG2w41Mz1Uhz14MND00FmbX70Jt'\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { Component, OnInit, OnDestroy, HostListener, ViewChild } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { ApiService } from \"src/app/services/api.service\";\nimport { AppHelpers } from \"src/app/utils/helper\";\nimport { NgxNotificationService } from 'ngx-notification';\nimport { HttpHeaders } from \"@angular/common/http\";\nimport LocationPicker from \"location-picker\";\n\n@Component({\n selector: \"app-login\",\n templateUrl: \"login.component.html\"\n})\nexport class LoginComponent implements OnInit, OnDestroy {\n @ViewChild('termsModal') termsModal;\n @ViewChild('locationModal') locationModal;\n isCollapsed = true;\n lp: LocationPicker;\n focus;\n focus1;\n focus2;\n loginButton = 'loginButton';\n loginError = false;\n requestBody: any = {\n username: null,\n password: null,\n }\n redirectTo = ['/play-stream'];\n broadcastData = null;\n newLocation = null;\n header = null;\n constructor(private _router: Router, private api: ApiService, private ngxNotificationService: NgxNotificationService) {}\n \n ngOnInit() {\n var body = document.getElementsByTagName(\"body\")[0];\n body.classList.add(\"register-page\");\n }\n\n updateStreamLocation() {\n const { _id, location } = this.broadcastData;\n const requestBody = { streamId: _id, latitude: location.coordinates[1], longitude: location.coordinates[0] };\n this.api.put('/api/stream/update/location', requestBody, this.header, true).subscribe(() => {\n this.locationModal.hide();\n this._router.navigate(this.redirectTo);\n });\n }\n\n initializeMap() {\n let setCurrentPosition = true;\n this.lp = new LocationPicker('map', { setCurrentPosition }, { disableDefaultUI: true, zoomControl: true, zoom: 20 });\n this.newLocation = this.lp.getMarkerPosition();\n this.lp.map.addListener('dragend', () => {\n this.newLocation = this.lp.getMarkerPosition();\n });\n }\n\n saveLocation() {\n const newLocation = this.lp.getMarkerPosition();\n console.log(newLocation);\n this.broadcastData['location']['coordinates'][0] = newLocation.lng;\n this.broadcastData['location']['coordinates'][1] = newLocation.lat;\n\n this.updateStreamLocation();\n }\n\n closeLocationPopup() {\n this.locationModal.hide(); \n this._router.navigate(this.redirectTo);\n }\n\n acceptTerms() {\n this.api.put('/api/user/verifyTerms', {hasAcceptedTerms: true}, this.header, false).subscribe((res) => {\n this.termsModal.hide();\n this.initializeMap(); \n this.locationModal.show();\n })\n }\n\n submitLogin() {\n this.requestBody.userType = 1;\n\n if (this.requestBody.username && this.requestBody.password) {\n AppHelpers.showLoader(this.loginButton);\n this.api.post('/api/user/login', this.requestBody, {}, false).subscribe((res) => {\n if (res.data) {\n // If a session was active, remove the credentials\n if(AppHelpers.isLoggedIn()){\n AppHelpers.destroyToken();\n AppHelpers.destroyUserInfo();\n localStorage.removeItem('broadcasterStream');\n }\n this.ngxNotificationService.sendMessage('User successfully Logged in!', 'success', 'bottom-left');\n // Configure User Information\n AppHelpers.saveToken(res.data.token);\n AppHelpers.saveUserInfo(res.data);\n\n // let header = {'x-access-token': res.data.token};\n this.header = new HttpHeaders({\n \"x-access-token\": res.data.token \n });\n this.api.get('/api/stream/broadcasterStream', null, this.header, false).subscribe(response => {\n if (response.success && response.data == null) {\n this.redirectTo = ['/stream'];\n } else {\n localStorage.setItem('broadcasterStream', JSON.stringify(response.data));\n }\n\n this.broadcastData = response.data;\n \n AppHelpers.hideLoader(this.loginButton);\n if (!res.data.hasAcceptedTerms) {\n this.termsModal.show();\n } else {\n this.initializeMap(); \n this.locationModal.show();\n }\n })\n\n delete res.data.token;\n }\n })\n } else{\n this.ngxNotificationService.sendMessage('Form must be validated in order to send request.', 'warning', 'bottom-left');\n }\n }\n\n ngOnDestroy() {\n var body = document.getElementsByTagName(\"body\")[0];\n body.classList.remove(\"register-page\");\n }\n}\n","import { Component, OnInit, OnDestroy } from \"@angular/core\";\n\n@Component({\n selector: \"app-profilepage\",\n templateUrl: \"profilepage.component.html\"\n})\nexport class ProfilepageComponent implements OnInit, OnDestroy {\n isCollapsed = true;\n constructor() {}\n\n ngOnInit() {\n var body = document.getElementsByTagName(\"body\")[0];\n body.classList.add(\"profile-page\");\n }\n ngOnDestroy() {\n var body = document.getElementsByTagName(\"body\")[0];\n body.classList.remove(\"profile-page\");\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { AppHelpers } from '../utils/helper';\nimport { AppConfig } from '../utils/config';\n\n@Injectable()\nexport class AuthenticatedGuard implements CanActivate {\n private canAccess = false;\n constructor(\n private router: Router,\n ) {}\n\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n // ): Observable {\n ): boolean {\n if (!AppHelpers.isLoggedIn() || !AppHelpers.getUserInfo()) {\n AppHelpers.destroyUserInfo();\n AppHelpers.destroyToken();\n this.router.navigate(['login']);\n this.canAccess = true\n } else {\n this.canAccess = false;\n this.router.navigate(['play-stream']);\n }\n return this.canAccess;\n }\n}\n","import { environment } from '../../environments/environment';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable , throwError, EMPTY, of } from 'rxjs';\nimport { Injectable } from '@angular/core';\n\nimport { catchError } from 'rxjs/operators';\nimport { AppHelpers } from '../utils/helper';\nimport { element } from 'protractor';\nimport { Router } from '@angular/router';\nimport { NgxNotificationService } from 'ngx-notification';\n\nlet self;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiService {\n helperClass;\n constructor(\n private http: HttpClient,\n private router: Router,\n private _helper: AppHelpers,\n private ngxNotificationService: NgxNotificationService\n ) {\n this.helperClass = this._helper;\n self = this;\n }\n\n formatErrors(errorObj: any) {\n console.log(\"ERROOORRRR\", errorObj);\n let message = \"There was some unknown error\";\n if (errorObj && errorObj.error) {\n message = errorObj.error.message;\n }\n self.ngxNotificationService.sendMessage(message, 'danger', 'bottom-left');\n AppHelpers.hideLoader();\n return EMPTY;\n }\n\n get(path: string, params: HttpParams = new HttpParams(), headers = {}, checkLogin = true, handleInternalError = true, apiURL = null): Observable {\n let sendRequest = false;\n // Decides to sendRequest or not\n if (checkLogin) {\n sendRequest = AppHelpers.isLoggedIn() ? true : false;\n } else {\n sendRequest = true;\n }\n\n let fullURL = `${environment.api_url}${path}`;\n if (path.includes('http')) {\n fullURL = path;\n }\n\n // then sends it..\n if (sendRequest) {\n if (handleInternalError) {\n return this.http.get(`${apiURL || fullURL}`, { params, headers }).pipe(catchError(this.formatErrors));\n } else {\n return this.http.get(`${apiURL || fullURL}`, { params, headers });\n }\n \n } else {\n this.router.navigate(['/login']);\n }\n \n }\n\n put(path: string, body: Object = {}, headers = {}, checkLogin = true): Observable {\n let sendRequest = false;\n // Decides to sendRequest or not\n if (checkLogin) {\n sendRequest = AppHelpers.isLoggedIn() ? true : false;\n } else {\n sendRequest = true;\n }\n\n // then sends it..\n if (sendRequest) {\n return this.http.put(`${environment.api_url}${path}`, body, { headers }).pipe(catchError(this.formatErrors));\n } else {\n this.router.navigate(['/login']);\n }\n }\n\n post(path: string, body: Object = {}, headers = {}, checkLogin = true, handleInternalError = true): Observable {\n let sendRequest = false;\n // Decides to sendRequest or not\n if (checkLogin) {\n sendRequest = AppHelpers.isLoggedIn() ? true : false;\n } else {\n sendRequest = true;\n }\n\n // then sends it..\n if (sendRequest) {\n if (handleInternalError) {\n return this.http.post(`${environment.api_url}${path}`, body, { headers }).pipe(catchError(this.formatErrors));\n } else {\n return this.http.post(`${environment.api_url}${path}`, body, { headers });\n }\n \n } else {\n this.router.navigate(['/login']);\n }\n }\n\n delete(path, headers = {}, checkLogin = true): Observable {\n let sendRequest = false;\n // Decides to sendRequest or not\n if (checkLogin) {\n sendRequest = AppHelpers.isLoggedIn() ? true : false;\n } else {\n sendRequest = true;\n }\n\n // then sends it..\n if (sendRequest) {\n return this.http.delete(`${environment.api_url}${path}`, { headers }).pipe(catchError(this.formatErrors));\n } else {\n this.router.navigate(['/login']);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { AppHelpers } from '../utils/helper';\nimport { AppConfig } from '../utils/config';\n\n@Injectable()\nexport class AuthGuard implements CanActivate {\n private canAccess = false;\n constructor(\n private router: Router,\n ) {}\n\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n // ): Observable {\n ): boolean {\n if (!AppHelpers.isLoggedIn() || !AppHelpers.getUserInfo()) {\n AppHelpers.destroyUserInfo();\n AppHelpers.destroyToken();\n this.router.navigate(['login']);\n this.canAccess = false\n } else {\n this.canAccess = true;\n }\n return this.canAccess;\n }\n}\n","import { Component, OnInit, OnDestroy } from \"@angular/core\";\nimport Chart from \"chart.js\";\n\n@Component({\n selector: \"app-landingpage\",\n templateUrl: \"landingpage.component.html\"\n})\nexport class LandingpageComponent implements OnInit, OnDestroy {\n isCollapsed = true;\n constructor() {}\n\n ngOnInit() {\n var body = document.getElementsByTagName(\"body\")[0];\n body.classList.add(\"landing-page\");\n\n var canvas: any = document.getElementById(\"chartBig\");\n var ctx = canvas.getContext(\"2d\");\n var gradientFill = ctx.createLinearGradient(0, 350, 0, 50);\n gradientFill.addColorStop(0, \"rgba(228, 76, 196, 0.0)\");\n gradientFill.addColorStop(1, \"rgba(228, 76, 196, 0.14)\");\n var chartBig = new Chart(ctx, {\n type: \"line\",\n responsive: true,\n data: {\n labels: [\n \"JUN\",\n \"FEB\",\n \"MAR\",\n \"APR\",\n \"MAY\",\n \"JUN\",\n \"JUL\",\n \"AUG\",\n \"SEP\",\n \"OCT\",\n \"NOV\",\n \"DEC\"\n ],\n datasets: [\n {\n label: \"Data\",\n fill: true,\n backgroundColor: gradientFill,\n borderColor: \"#e44cc4\",\n borderWidth: 2,\n borderDash: [],\n borderDashOffset: 0.0,\n pointBackgroundColor: \"#e44cc4\",\n pointBorderColor: \"rgba(255,255,255,0)\",\n pointHoverBackgroundColor: \"#be55ed\",\n //pointHoverBorderColor:'rgba(35,46,55,1)',\n pointBorderWidth: 20,\n pointHoverRadius: 4,\n pointHoverBorderWidth: 15,\n pointRadius: 4,\n data: [80, 160, 200, 160, 250, 280, 220, 190, 200, 250, 290, 320]\n }\n ]\n },\n options: {\n maintainAspectRatio: false,\n legend: {\n display: false\n },\n\n tooltips: {\n backgroundColor: \"#fff\",\n titleFontColor: \"#ccc\",\n bodyFontColor: \"#666\",\n bodySpacing: 4,\n xPadding: 12,\n mode: \"nearest\",\n intersect: 0,\n position: \"nearest\"\n },\n responsive: true,\n scales: {\n yAxes: [\n {\n barPercentage: 1.6,\n gridLines: {\n drawBorder: false,\n color: \"rgba(0,0,0,0.0)\",\n zeroLineColor: \"transparent\"\n },\n ticks: {\n display: false,\n suggestedMin: 0,\n suggestedMax: 350,\n padding: 20,\n fontColor: \"#9a9a9a\"\n }\n }\n ],\n\n xAxes: [\n {\n barPercentage: 1.6,\n gridLines: {\n drawBorder: false,\n color: \"rgba(0,0,0,0)\",\n zeroLineColor: \"transparent\"\n },\n ticks: {\n padding: 20,\n fontColor: \"#9a9a9a\"\n }\n }\n ]\n }\n }\n });\n }\n ngOnDestroy() {\n var body = document.getElementsByTagName(\"body\")[0];\n body.classList.remove(\"landing-page\");\n }\n}\n","import { HttpHeaders } from \"@angular/common/http\";\nimport { Component, OnInit, OnDestroy, ViewChild } from \"@angular/core\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\nimport { Router } from \"@angular/router\";\nimport { NgxNotificationService } from \"ngx-notification\";\nimport noUiSlider from \"nouislider\";\nimport { ApiService } from \"src/app/services/api.service\";\nimport { AppHelpers } from \"src/app/utils/helper\";\n\n@Component({\n selector: \"app-stream\",\n templateUrl: \"stream.component.html\"\n})\nexport class StreamComponent implements OnInit, OnDestroy {\n @ViewChild('myModal2') myModal2;\n @ViewChild('termsModal') termsModal;\n isCollapsed = true;\n focus;\n focus1;\n focus2;\n streamButton = 'streamButton';\n streams = [];\n header;\n packagesList = [];\n userImage: any = \"https://www.bastiaanmulder.nl/wp-content/uploads/2013/11/dummy-image-square.jpg\";\n requestBody: any = {\n packageId: '613dc7778c20abe22b91d334',\n pictureUrl: \"https://www.bastiaanmulder.nl/wp-content/uploads/2013/11/dummy-image-square.jpg\",\n imageFile: null,\n }\n constructor(private _router: Router, private sanitizer: DomSanitizer, private ngxNotificationService: NgxNotificationService, private api: ApiService) {\n this.header = new HttpHeaders({\n \"x-access-token\": AppHelpers.getToken()\n });\n\n this.getPackagesData();\n\n if (localStorage.getItem('broadcasterStream') && JSON.parse(localStorage.getItem('broadcasterStream'))) {\n this._router.navigate(['/play-stream']);\n }\n }\n\n scrollToDownload(element: any) {\n element.scrollIntoView({ behavior: \"smooth\" });\n }\n ngOnInit() {\n var body = document.getElementsByTagName(\"body\")[0];\n body.classList.add(\"index-page\");\n }\n ngOnDestroy() {\n var body = document.getElementsByTagName(\"body\")[0];\n body.classList.remove(\"index-page\");\n }\n\n getPackagesData () {\n this.api.get('/api/package/listener', null, this.header, true).subscribe((res) => {\n if (res.data) {\n this.packagesList = res.data;\n }\n })\n }\n\n createStream() {\n if (this.requestBody['name'] && this.requestBody['packageId']) {\n AppHelpers.showLoader(this.streamButton);\n console.log(this.requestBody);\n if (this.requestBody.imageFile) {\n this.uploadImage().then(() => {\n this.sendStreamAddRequest()\n }).catch(() => {\n this.ngxNotificationService.sendMessage(\"Image couldn't be uploaded\", 'warning', 'bottom-left');\n })\n } else {\n this.sendStreamAddRequest()\n }\n } else {\n this.ngxNotificationService.sendMessage('Make sure to select package and name your stream', 'warning', 'bottom-left');\n }\n }\n\n setFile(event) {\n this.requestBody.imageFile = event.target.files[0];\n \n const file = this.requestBody.imageFile;\n const fileURL = URL.createObjectURL(file);\n const sanitizeURL = this.sanitizer.bypassSecurityTrustResourceUrl(fileURL);\n this.userImage = sanitizeURL;\n }\n\n sendStreamAddRequest() {\n this.api.post('/api/stream/add', this.requestBody, this.header, true).subscribe((res) => {\n if (res.data) {\n this.ngxNotificationService.sendMessage('Stream succefully added!', 'success', 'bottom-left');\n AppHelpers.hideLoader(this.streamButton);\n \n this.api.get('/api/stream/broadcasterStream', null, this.header, false).subscribe(response => {\n if (response.success && response.data != null) {\n this.myModal2.hide();\n localStorage.setItem('broadcasterStream', JSON.stringify(response.data));\n this._router.navigate(['/play-stream']);\n this.ngxNotificationService.sendMessage('Broadcast successfully added!', 'success', 'bottom-left');\n } \n })\n }\n })\n }\n\n uploadImage() {\n return new Promise((resolve, reject) => {\n const file = this.requestBody.imageFile;\n\n const formData = new FormData();\n formData.append('file', file);\n\n this.api.post('/api/stream/upload', formData, this.header, true).subscribe((res) => {\n \n this.requestBody.pictureUrl = res.data;\n this.userImage = res.data;\n \n this.ngxNotificationService.sendMessage(res.message, 'success', 'bottom-left');\n \n resolve(res.data);\n }, (err) => {\n this.ngxNotificationService.sendMessage(err.message, 'warning', 'bottom-left');\n reject(err);\n })\n })\n }\n\n openCreate() {\n this.termsModal.hide();\n this.myModal2.show();\n }\n}\n","export default \"\\n
\\n
\\n \\n
\\n \\n\\n
\\n
\\n\\n
\\n
\\n

\\n {{ broadcastData.name }}\\n Edit Stream name\\n

\\n
\\n \\n
\\n

Current Listeners: {{ AppConfig.broadcastStats.totalListeners }}

\\n

Auto Top-up: \\n \\n Enabled \\n Disabled \\n \\n 0\\\" (click)=\\\"changeAutoTopUp()\\\" style=\\\"cursor: pointer;\\\" class=\\\"text-danger\\\">  (change)\\n \\n

\\n

Listener Hours until top-up: {{ AppConfig.broadcastStats.formattedHours }}

\\n

Minutes until top-up: {{ AppConfig.broadcastStats.formattedMinutes }}

\\n

Listener Hours Remaining: {{ AppConfig.broadcastStats.formattedHours }}

\\n

Minutes Remaining: {{ AppConfig.broadcastStats.formattedMinutes }}

\\n \\n Setup Broadcast Credit\\n \\n \\n
\\n
\\n
\\n\\n\\n
\\n

Record/Play Today's Welcome

\\n
\\n\\n
\\n \\n

Record Today's Welcome Message

\\n
\\n\\n
\\n
\\n \\n
\\n

Upload Today's Welcome Message

\\n
\\n\\n
\\n \\n

Playback current Welcome Message

\\n
\\n
\\n\\n \\n\\n \\n\\n\\n
\\n\\n

Enquiries: contact@riotbroadcast.com

\\n\\n
\\n\\n
\\n
\\n\\n

Broadcast

\\n\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n

\\n Connected...\\n Disconnected...\\n No Credit Remaining...\\n Broadcasting...\\n Connected...\\n

\\n
\\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n \\n
\\n\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n\\n
\\n \\n Min\\n Clip\\n
\\n
\\n
\\n
\\n
\\n\\n \\n\\n
\\n \\n
\\n\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n
\\n \\n \\n \\n
\\n

Broadcast Credit

\\n
\\n
\\n
\\n
\\n

Broadcast credit is measured in 'Listener Hours' where one 'Listener\\n Hour' is one listener for 1 hour. Here are some examples:

\\n\\n
    \\n
  • 1 listener hour = 0 listeners for infinite time
  • \\n
  • 1 listener hour = 1 listener for 1 hour
  • \\n
  • 1 listener hour = 2 listeners for 30 mins
  • \\n
  • 500 listener hours = 500 listeners for 1 hour
  • \\n
  • 500 listener hours = 100 listeners for 5 hours
  • \\n
  • 10,000 listener hours = 10,000 listeners for 1 hour
  • \\n
  • 10,000 listener hours = 1,000 listeners for 10 hours
  • \\n
  • 100,000 listener hours = 100,000 listeners for 1 hour
  • \\n
  • 100,000 listener hours = 10,000 listeners for 10 hours
  • \\n
\\n\\n Below are our current Auto top-up broadcast rates:\\n
\\n
\\n \\n
\\n
\\n\\n

\\n Auto top-up of broadcast credit means you'll never run out of credit\\n during a broadcast. Auto top-up of broadcast can be cancelled at any time\\n from the main broadcast page. Please select a package to setup Auto\\n top-up broadcast credit. Please log-out to stop your stream. Broadcast will also stop after 1hr of inactivity.\\n

\\n\\n
\\n \\n
\\n
\\n Powered by \\\"Stripe\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n
\\n \\n \\n \\n
\\n

Change Stream Name

\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n\\n
\\n \\n \\n
\\n \\n
\\n
\\n\\n\\n\";","var map = {\n\t\"./af\": \"K/tc\",\n\t\"./af.js\": \"K/tc\",\n\t\"./ar\": \"jnO4\",\n\t\"./ar-dz\": \"o1bE\",\n\t\"./ar-dz.js\": \"o1bE\",\n\t\"./ar-kw\": \"Qj4J\",\n\t\"./ar-kw.js\": \"Qj4J\",\n\t\"./ar-ly\": \"HP3h\",\n\t\"./ar-ly.js\": \"HP3h\",\n\t\"./ar-ma\": \"CoRJ\",\n\t\"./ar-ma.js\": \"CoRJ\",\n\t\"./ar-ps\": \"TJgH\",\n\t\"./ar-ps.js\": \"TJgH\",\n\t\"./ar-sa\": \"gjCT\",\n\t\"./ar-sa.js\": \"gjCT\",\n\t\"./ar-tn\": \"bYM6\",\n\t\"./ar-tn.js\": \"bYM6\",\n\t\"./ar.js\": \"jnO4\",\n\t\"./az\": \"SFxW\",\n\t\"./az.js\": \"SFxW\",\n\t\"./be\": \"H8ED\",\n\t\"./be.js\": \"H8ED\",\n\t\"./bg\": \"hKrs\",\n\t\"./bg.js\": \"hKrs\",\n\t\"./bm\": \"p/rL\",\n\t\"./bm.js\": \"p/rL\",\n\t\"./bn\": \"kEOa\",\n\t\"./bn-bd\": \"loYQ\",\n\t\"./bn-bd.js\": \"loYQ\",\n\t\"./bn.js\": \"kEOa\",\n\t\"./bo\": \"0mo+\",\n\t\"./bo.js\": \"0mo+\",\n\t\"./br\": \"aIdf\",\n\t\"./br.js\": \"aIdf\",\n\t\"./bs\": \"JVSJ\",\n\t\"./bs.js\": \"JVSJ\",\n\t\"./ca\": \"1xZ4\",\n\t\"./ca.js\": \"1xZ4\",\n\t\"./cs\": \"PA2r\",\n\t\"./cs.js\": \"PA2r\",\n\t\"./cv\": \"A+xa\",\n\t\"./cv.js\": \"A+xa\",\n\t\"./cy\": \"l5ep\",\n\t\"./cy.js\": \"l5ep\",\n\t\"./da\": \"DxQv\",\n\t\"./da.js\": \"DxQv\",\n\t\"./de\": \"tGlX\",\n\t\"./de-at\": \"s+uk\",\n\t\"./de-at.js\": \"s+uk\",\n\t\"./de-ch\": \"u3GI\",\n\t\"./de-ch.js\": \"u3GI\",\n\t\"./de.js\": \"tGlX\",\n\t\"./dv\": \"WYrj\",\n\t\"./dv.js\": \"WYrj\",\n\t\"./el\": \"jUeY\",\n\t\"./el.js\": \"jUeY\",\n\t\"./en-au\": \"Dmvi\",\n\t\"./en-au.js\": \"Dmvi\",\n\t\"./en-ca\": \"OIYi\",\n\t\"./en-ca.js\": \"OIYi\",\n\t\"./en-gb\": \"Oaa7\",\n\t\"./en-gb.js\": \"Oaa7\",\n\t\"./en-ie\": \"4dOw\",\n\t\"./en-ie.js\": \"4dOw\",\n\t\"./en-il\": \"czMo\",\n\t\"./en-il.js\": \"czMo\",\n\t\"./en-in\": \"7C5Q\",\n\t\"./en-in.js\": \"7C5Q\",\n\t\"./en-nz\": \"b1Dy\",\n\t\"./en-nz.js\": \"b1Dy\",\n\t\"./en-sg\": \"t+mt\",\n\t\"./en-sg.js\": \"t+mt\",\n\t\"./eo\": \"Zduo\",\n\t\"./eo.js\": \"Zduo\",\n\t\"./es\": \"iYuL\",\n\t\"./es-do\": \"CjzT\",\n\t\"./es-do.js\": \"CjzT\",\n\t\"./es-mx\": \"tbfe\",\n\t\"./es-mx.js\": \"tbfe\",\n\t\"./es-us\": \"Vclq\",\n\t\"./es-us.js\": \"Vclq\",\n\t\"./es.js\": \"iYuL\",\n\t\"./et\": \"7BjC\",\n\t\"./et.js\": \"7BjC\",\n\t\"./eu\": \"D/JM\",\n\t\"./eu.js\": \"D/JM\",\n\t\"./fa\": \"jfSC\",\n\t\"./fa.js\": \"jfSC\",\n\t\"./fi\": \"gekB\",\n\t\"./fi.js\": \"gekB\",\n\t\"./fil\": \"1ppg\",\n\t\"./fil.js\": \"1ppg\",\n\t\"./fo\": \"ByF4\",\n\t\"./fo.js\": \"ByF4\",\n\t\"./fr\": \"nyYc\",\n\t\"./fr-ca\": \"2fjn\",\n\t\"./fr-ca.js\": \"2fjn\",\n\t\"./fr-ch\": \"Dkky\",\n\t\"./fr-ch.js\": \"Dkky\",\n\t\"./fr.js\": \"nyYc\",\n\t\"./fy\": \"cRix\",\n\t\"./fy.js\": \"cRix\",\n\t\"./ga\": \"USCx\",\n\t\"./ga.js\": \"USCx\",\n\t\"./gd\": \"9rRi\",\n\t\"./gd.js\": \"9rRi\",\n\t\"./gl\": \"iEDd\",\n\t\"./gl.js\": \"iEDd\",\n\t\"./gom-deva\": \"qvJo\",\n\t\"./gom-deva.js\": \"qvJo\",\n\t\"./gom-latn\": \"DKr+\",\n\t\"./gom-latn.js\": \"DKr+\",\n\t\"./gu\": \"4MV3\",\n\t\"./gu.js\": \"4MV3\",\n\t\"./he\": \"x6pH\",\n\t\"./he.js\": \"x6pH\",\n\t\"./hi\": \"3E1r\",\n\t\"./hi.js\": \"3E1r\",\n\t\"./hr\": \"S6ln\",\n\t\"./hr.js\": \"S6ln\",\n\t\"./hu\": \"WxRl\",\n\t\"./hu.js\": \"WxRl\",\n\t\"./hy-am\": \"1rYy\",\n\t\"./hy-am.js\": \"1rYy\",\n\t\"./id\": \"UDhR\",\n\t\"./id.js\": \"UDhR\",\n\t\"./is\": \"BVg3\",\n\t\"./is.js\": \"BVg3\",\n\t\"./it\": \"bpih\",\n\t\"./it-ch\": \"bxKX\",\n\t\"./it-ch.js\": \"bxKX\",\n\t\"./it.js\": \"bpih\",\n\t\"./ja\": \"B55N\",\n\t\"./ja.js\": \"B55N\",\n\t\"./jv\": \"tUCv\",\n\t\"./jv.js\": \"tUCv\",\n\t\"./ka\": \"IBtZ\",\n\t\"./ka.js\": \"IBtZ\",\n\t\"./kk\": \"bXm7\",\n\t\"./kk.js\": \"bXm7\",\n\t\"./km\": \"6B0Y\",\n\t\"./km.js\": \"6B0Y\",\n\t\"./kn\": \"PpIw\",\n\t\"./kn.js\": \"PpIw\",\n\t\"./ko\": \"Ivi+\",\n\t\"./ko.js\": \"Ivi+\",\n\t\"./ku\": \"JCF/\",\n\t\"./ku-kmr\": \"dVgr\",\n\t\"./ku-kmr.js\": \"dVgr\",\n\t\"./ku.js\": \"JCF/\",\n\t\"./ky\": \"lgnt\",\n\t\"./ky.js\": \"lgnt\",\n\t\"./lb\": \"RAwQ\",\n\t\"./lb.js\": \"RAwQ\",\n\t\"./lo\": \"sp3z\",\n\t\"./lo.js\": \"sp3z\",\n\t\"./lt\": \"JvlW\",\n\t\"./lt.js\": \"JvlW\",\n\t\"./lv\": \"uXwI\",\n\t\"./lv.js\": \"uXwI\",\n\t\"./me\": \"KTz0\",\n\t\"./me.js\": \"KTz0\",\n\t\"./mi\": \"aIsn\",\n\t\"./mi.js\": \"aIsn\",\n\t\"./mk\": \"aQkU\",\n\t\"./mk.js\": \"aQkU\",\n\t\"./ml\": \"AvvY\",\n\t\"./ml.js\": \"AvvY\",\n\t\"./mn\": \"lYtQ\",\n\t\"./mn.js\": \"lYtQ\",\n\t\"./mr\": \"Ob0Z\",\n\t\"./mr.js\": \"Ob0Z\",\n\t\"./ms\": \"6+QB\",\n\t\"./ms-my\": \"ZAMP\",\n\t\"./ms-my.js\": \"ZAMP\",\n\t\"./ms.js\": \"6+QB\",\n\t\"./mt\": \"G0Uy\",\n\t\"./mt.js\": \"G0Uy\",\n\t\"./my\": \"honF\",\n\t\"./my.js\": \"honF\",\n\t\"./nb\": \"bOMt\",\n\t\"./nb.js\": \"bOMt\",\n\t\"./ne\": \"OjkT\",\n\t\"./ne.js\": \"OjkT\",\n\t\"./nl\": \"+s0g\",\n\t\"./nl-be\": \"2ykv\",\n\t\"./nl-be.js\": \"2ykv\",\n\t\"./nl.js\": \"+s0g\",\n\t\"./nn\": \"uEye\",\n\t\"./nn.js\": \"uEye\",\n\t\"./oc-lnc\": \"Fnuy\",\n\t\"./oc-lnc.js\": \"Fnuy\",\n\t\"./pa-in\": \"8/+R\",\n\t\"./pa-in.js\": \"8/+R\",\n\t\"./pl\": \"jVdC\",\n\t\"./pl.js\": \"jVdC\",\n\t\"./pt\": \"8mBD\",\n\t\"./pt-br\": \"0tRk\",\n\t\"./pt-br.js\": \"0tRk\",\n\t\"./pt.js\": \"8mBD\",\n\t\"./ro\": \"lyxo\",\n\t\"./ro.js\": \"lyxo\",\n\t\"./ru\": \"lXzo\",\n\t\"./ru.js\": \"lXzo\",\n\t\"./sd\": \"Z4QM\",\n\t\"./sd.js\": \"Z4QM\",\n\t\"./se\": \"//9w\",\n\t\"./se.js\": \"//9w\",\n\t\"./si\": \"7aV9\",\n\t\"./si.js\": \"7aV9\",\n\t\"./sk\": \"e+ae\",\n\t\"./sk.js\": \"e+ae\",\n\t\"./sl\": \"gVVK\",\n\t\"./sl.js\": \"gVVK\",\n\t\"./sq\": \"yPMs\",\n\t\"./sq.js\": \"yPMs\",\n\t\"./sr\": \"zx6S\",\n\t\"./sr-cyrl\": \"E+lV\",\n\t\"./sr-cyrl.js\": \"E+lV\",\n\t\"./sr.js\": \"zx6S\",\n\t\"./ss\": \"Ur1D\",\n\t\"./ss.js\": \"Ur1D\",\n\t\"./sv\": \"X709\",\n\t\"./sv.js\": \"X709\",\n\t\"./sw\": \"dNwA\",\n\t\"./sw.js\": \"dNwA\",\n\t\"./ta\": \"PeUW\",\n\t\"./ta.js\": \"PeUW\",\n\t\"./te\": \"XLvN\",\n\t\"./te.js\": \"XLvN\",\n\t\"./tet\": \"V2x9\",\n\t\"./tet.js\": \"V2x9\",\n\t\"./tg\": \"Oxv6\",\n\t\"./tg.js\": \"Oxv6\",\n\t\"./th\": \"EOgW\",\n\t\"./th.js\": \"EOgW\",\n\t\"./tk\": \"Wv91\",\n\t\"./tk.js\": \"Wv91\",\n\t\"./tl-ph\": \"Dzi0\",\n\t\"./tl-ph.js\": \"Dzi0\",\n\t\"./tlh\": \"z3Vd\",\n\t\"./tlh.js\": \"z3Vd\",\n\t\"./tr\": \"DoHr\",\n\t\"./tr.js\": \"DoHr\",\n\t\"./tzl\": \"z1FC\",\n\t\"./tzl.js\": \"z1FC\",\n\t\"./tzm\": \"wQk9\",\n\t\"./tzm-latn\": \"tT3J\",\n\t\"./tzm-latn.js\": \"tT3J\",\n\t\"./tzm.js\": \"wQk9\",\n\t\"./ug-cn\": \"YRex\",\n\t\"./ug-cn.js\": \"YRex\",\n\t\"./uk\": \"raLr\",\n\t\"./uk.js\": \"raLr\",\n\t\"./ur\": \"UpQW\",\n\t\"./ur.js\": \"UpQW\",\n\t\"./uz\": \"Loxo\",\n\t\"./uz-latn\": \"AQ68\",\n\t\"./uz-latn.js\": \"AQ68\",\n\t\"./uz.js\": \"Loxo\",\n\t\"./vi\": \"KSF8\",\n\t\"./vi.js\": \"KSF8\",\n\t\"./x-pseudo\": \"/X5v\",\n\t\"./x-pseudo.js\": \"/X5v\",\n\t\"./yo\": \"fzPg\",\n\t\"./yo.js\": \"fzPg\",\n\t\"./zh-cn\": \"XDpg\",\n\t\"./zh-cn.js\": \"XDpg\",\n\t\"./zh-hk\": \"SatO\",\n\t\"./zh-hk.js\": \"SatO\",\n\t\"./zh-mo\": \"OmwH\",\n\t\"./zh-mo.js\": \"OmwH\",\n\t\"./zh-tw\": \"kOpN\",\n\t\"./zh-tw.js\": \"kOpN\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"RnhZ\";","import {\n Component,\n OnInit,\n Renderer2,\n HostListener,\n Inject\n} from \"@angular/core\";\nimport { Location } from \"@angular/common\";\nimport { DOCUMENT } from \"@angular/common\";\nimport { Router, NavigationEnd, NavigationStart, RouteConfigLoadStart, RouteConfigLoadEnd } from \"@angular/router\";\nimport { filter } from \"rxjs/operators\";\nimport { AppHelpers } from \"./utils/helper\";\n\n@Component({\n selector: \"app-root\",\n templateUrl: \"./app.component.html\",\n styleUrls: [\"./app.component.scss\"]\n})\nexport class AppComponent implements OnInit {\n constructor(\n private renderer: Renderer2,\n public location: Location,\n @Inject(DOCUMENT) document,\n private router: Router\n ) {\n this.router.events.pipe(\n filter((event) => event instanceof NavigationEnd)\n ).subscribe((event: NavigationEnd) => {\n \n if(event instanceof NavigationEnd) {\n document.querySelector('.page-loader').classList.remove('loader--active');\n }\n });\n }\n @HostListener(\"window:scroll\", [\"$event\"])\n onWindowScroll(e) {\n if (window.pageYOffset > 100) {\n var element = document.getElementById(\"navbar-top\");\n if (element) {\n // element.classList.remove(\"navbar-transparent\");\n element.classList.add(\"bg-danger\");\n }\n } else {\n var element = document.getElementById(\"navbar-top\");\n if (element) {\n // element.classList.add(\"navbar-transparent\");\n element.classList.remove(\"bg-danger\");\n }\n }\n }\n ngOnInit() {\n this.onWindowScroll(event);\n }\n}\n","var AppConfig = /** @class */ (function () {\n function AppConfig() {\n }\n AppConfig.isLoggedIn = false;\n AppConfig.loginToken = null;\n AppConfig.webRTCAdaptor = null;\n AppConfig.broadcastStatus = 'disconnected';\n AppConfig.hasAutoTopUp = false;\n AppConfig.broadcastStats = {\n minutesElapsed: 0,\n totalMinutes: 0,\n totalListeners: 0,\n formattedHours: \"∞\",\n formattedMinutes: \"∞\",\n };\n AppConfig.RegexPatterns = {\n \"url\": /[-a-zA-Z0-9@:%._\\+~#=]{3,256}\\.[a-zA-Z0-9()]{2,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)/,\n \"password\": /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\\$%\\^&\\*])(?=.{8,})/,\n \"email\": /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i,\n \"name\": /^[a-zA-Z]+(([-. ][a-zA-Z ])?[a-zA-Z]*)*$/,\n \"date\": /(\\b(0?[1-9]|[12]\\d|30|31)[^\\w\\d\\r\\n:](0?[1-9]|1[0-2])[^\\w\\d\\r\\n:](\\d{4}|\\d{2})\\b)/,\n \"dateUTC\": /^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9]).([0-9][0-9][0-9])(Z)$/\n };\n return AppConfig;\n}());\nexport { AppConfig };\n//# sourceMappingURL=config.js.map","export default \"\\n
\\n
\\n \\n BLK• Design System Angular\\n \\n \\n \\n \\n \\n \\n
\\n \\n
\\n
\\n \\n
\\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n

BLK•

\\n

\\n A beautiful Design System for Bootstrap 4 and Angular. It's Free and\\n Open Source.\\n

\\n
\\n
\\n
\\n
\\n
\\n \\n\\n
\\n

Basic Elements

\\n

Buttons

\\n

Pick your style

\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n

Pick your size

\\n
\\n
\\n \\n \\n \\n
\\n
\\n

Pick your color

\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n\\n

Links

\\n
\\n
\\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n

Inputs

\\n

Form Controls

\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n
\\n \\n
\\n
\\n
\\n
\\n \\n\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n

Checkboxes

\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n

Radios

\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n

Toggle Buttons

\\n \\n \\n
\\n \\n \\n
\\n
\\n

Sliders

\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n\\n
\\n
\\n
\\n

Menu

\\n
\\n
\\n \\n
\\n
\\n

Menu with Icons

\\n
\\n
\\n \\n
\\n \\n

Navigation

\\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n

Navigation Tabs

\\n
\\n
\\n
\\n \\n With icons\\n \\n
\\n
\\n
\\n \\n \\n \\n Profile\\n \\n

\\n Collaboratively administrate empowered markets via\\n plug-and-play networks. Dynamically procrastinate B2C\\n users after installed base benefits.
\\n\\n
\\n\\n Dramatically visualize customer directed convergence\\n without revolutionary ROI.\\n

\\n
\\n \\n \\n Settings\\n \\n

\\n Completely synergize resource taxing relationships via\\n premier niche markets. Professionally cultivate one-to-one\\n customer service with robust ideas.
\\n\\n
\\n\\n Dynamically innovate resource-leveling customer service\\n for state of the art customer service.\\n

\\n
\\n \\n \\n Options\\n \\n

\\n Efficiently unleash cross-media information without\\n cross-media value. Quickly maximize timely deliverables\\n for real-time schemas.
\\n\\n
\\n\\n Dramatically maintain clicks-and-mortar solutions without\\n functional solutions.\\n

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n With text \\n
\\n
\\n
\\n \\n \\n

\\n These cases are perfectly simple and easy to distinguish.\\n In a free hour, when our power of choice is untrammelled\\n and when nothing prevents our being able to do what we\\n like best, every pleasure is to be welcomed and every pain\\n avoided.
\\n\\n But in certain circumstances and owing to the claims of\\n duty or the obligations of business it will frequently\\n occur that pleasures\\n

\\n
\\n \\n

\\n I will be the leader of a company that ends up being worth\\n billions of dollars, because I got the answers. I\\n understand culture. I am the nucleus. I think that’s a\\n responsibility that I have, to push possibilities, to show\\n people, this is the level that things could be at. I think\\n that’s a responsibility that I have, to push\\n possibilities, to show people, this is the level that\\n things could be at.\\n

\\n
\\n \\n

\\n I think that’s a responsibility that I have, to push\\n possibilities, to show people, this is the level that\\n things could be at. So when you get something that has the\\n name Kanye West on it, it’s supposed to be pushing the\\n furthest possibilities. I will be the leader of a company\\n that ends up being worth billions of dollars, because I\\n got the answers. I understand culture. I am the nucleus.\\n

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n\\n \\n\\n
\\n
\\n
\\n

Progress Bars

\\n
\\n Default \\n \\n 25% \\n \\n
\\n
\\n Danger \\n \\n 60% \\n \\n
\\n
\\n\\n

Navigation Pills

\\n \\n \\n \\n Home\\n \\n \\n \\n \\n Messages\\n \\n \\n \\n \\n Settings\\n \\n \\n \\n
\\n
\\n

Pagination

\\n \\n \\n \\n \\n
\\n\\n

Labels

\\n Default \\n Primary \\n Success \\n Info \\n Warning \\n Danger \\n Neutral \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n

Notifications

\\n \\n \\n \\n Congrats! - This is a regular notification made with\\n \\\".alert-primary\\\"\\n \\n \\n \\n \\n \\n Heads up! - This is a regular notification made with\\n \\\".alert-info\\\"\\n \\n \\n \\n \\n \\n Well done! - This is a regular notification made with\\n \\\".alert-success\\\"\\n \\n \\n \\n \\n \\n Warning! - This is a regular notification made with\\n \\\".alert-warning\\\"\\n \\n \\n \\n \\n \\n Oh snap! - This is a regular notification made with\\n \\\".alert-danger\\\"\\n \\n \\n
\\n
\\n
\\n \\n\\n \\n\\n
\\n

Typography

\\n
\\n
\\n
\\n
\\n

Header 1 The Life of BLK• Design System

\\n
\\n
\\n

Header 2 The Life of BLK• Design System

\\n
\\n
\\n

Header 3 The Life of BLK• Design System

\\n
\\n
\\n

Header 4 The Life of BLK• Design System

\\n
\\n
\\n
Header 5 The Life of BLK• Design System
\\n
\\n
\\n
Header 6 The Life of BLK• Design System
\\n
\\n
\\n

\\n Paragraph I will be the leader of a company\\n that ends up being worth billions of dollars, because I got\\n the answers. I understand culture. I am the nucleus. I think\\n that’s a responsibility that I have, to push possibilities, to\\n show people, this is the level that things could be at.\\n

\\n
\\n
\\n Quote \\n
\\n

\\n \\\"I will be the leader of a company that ends up being worth\\n billions of dollars, because I got the answers. I understand\\n culture. I am the nucleus. I think that’s a responsibility\\n that I have, to push possibilities, to show people, this is\\n the level that things could be at.\\\"
\\n\\n
\\n\\n - Noaa \\n

\\n
\\n
\\n
\\n Muted Text \\n

\\n I will be the leader of a company that ends up being worth\\n billions of dollars, because I got the answers...\\n

\\n
\\n
\\n Primary Text \\n

\\n I will be the leader of a company that ends up being worth\\n billions of dollars, because I got the answers...\\n

\\n
\\n
\\n Info Text \\n

\\n I will be the leader of a company that ends up being worth\\n billions of dollars, because I got the answers...\\n

\\n
\\n
\\n Success Text \\n

\\n I will be the leader of a company that ends up being worth\\n billions of dollars, because I got the answers...\\n

\\n
\\n
\\n Warning Text \\n

\\n I will be the leader of a company that ends up being worth\\n billions of dollars, because I got the answers...\\n

\\n
\\n
\\n Danger Text \\n

\\n I will be the leader of a company that ends up being worth\\n billions of dollars, because I got the answers...\\n

\\n
\\n
\\n

\\n Small Tag Header with small subtitle
\\n\\n Use \\\"small\\\" tag for the headers \\n

\\n
\\n
\\n
\\n
\\n
\\n
\\n

Images

\\n
\\n
\\n \\n Image\\n \\n \\n
\\n
\\n \\n Circle Image\\n \\n \\n
\\n
\\n \\n Raised\\n \\n \\n
\\n
\\n \\n Circle Raised\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n\\n \\n\\n
\\n

Javascript components

\\n

Modal

\\n
\\n
\\n \\n Launch Modal\\n \\n
\\n
\\n \\n Launch Modal Mini\\n \\n
\\n
\\n \\n Launch Modal Form\\n \\n
\\n
\\n
\\n\\n
\\n\\n

Datepicker

\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n

Popovers

\\n \\n On top\\n \\n \\n Here will be some very useful information about his popover.\\\"\\n type=\\\"button\\\"\\n >\\n On right\\n \\n \\n On bottom\\n \\n \\n On left\\n \\n
\\n
\\n

Tooltips

\\n \\n On left\\n \\n \\n On top\\n \\n \\n On bottom\\n \\n \\n On right\\n \\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n

Carousel

\\n
\\n
\\n

Bootstrap carousel

\\n

\\n Black Design comes with three pre-built pages to help you get\\n started faster. You can change the text and images and you're\\n good to go.\\n

\\n \\n See all components\\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n\\n
\\n
\\n
\\n

Nucleo Icons

\\n

\\n BLK• Design System PRO comes with 100 custom icons made by our\\n friends from NucleoApp. The official package contains over 2.100\\n thin icons which are looking great in combination with BLK• Design\\n System PRO Make sure you check all of them and use those that you\\n like the most.\\n

\\n
\\n \\n View Demo Icons\\n \\n \\n View All Icons\\n \\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n Eplore all the 21.000+ Nucleo Icons\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n

\\n A beautiful Black Design\\n completed with examples \\n

\\n

\\n The Design System comes with four pre-built pages to help you get\\n started faster. You can change the text and images and you're good\\n to go. More importantly, looking at them will give you a picture\\n of what you can built with this powerful Bootstrap 4 Design\\n System.\\n

\\n \\n
\\n
\\n
\\n
\\n \\n\\n

Register

\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n Get Started\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n View Landing Page\\n \\n
\\n
\\n \\n \\n \\n \\n View Profile Page\\n \\n
\\n
\\n
\\n
\\n
\\n \\n\\n
\\n
\\n
\\n

\\n Do you love this Bootstrap 4 Angular Design System?\\n

\\n

\\n Cause if you do, it can be yours for FREE. Hit the button below to\\n navigate to Creative Tim where you can find the design system in\\n HTML format. Start a new project or give an old Bootstrap project\\n a new look!\\n

\\n
\\n
\\n \\n Download Angular\\n \\n
\\n
\\n
\\n\\n
\\n\\n
\\n\\n
\\n\\n
\\n\\n
\\n
\\n

\\n Thank you for supporting us!\\n

\\n

\\n Let's get in touch on any of these platforms.\\n

\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n

Modal title

\\n
\\n
\\n

\\n Far far away, behind the word mountains, far from the countries\\n Vokalia and Consonantia, there live the blind texts. Separated\\n they live in Bookmarksgrove right at the coast of the Semantics, a\\n large language ocean. A small river named Duden flows by their\\n place and supplies it with the necessary regelialia. It is a\\n paradisematic country, in which roasted parts of sentences fly\\n into your mouth.\\n

\\n
\\n
\\n \\n \\n Close\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n \\n \\n
\\n \\n
\\n
\\n
\\n

Always have an access to your profile

\\n
\\n
\\n \\n \\n Close\\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n \\n \\n
\\n

Sign in with

\\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n
\\n
\\n Or sign in with credentials \\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n \\n \\n \\n\\n\";","export default \"\\n
\\n
\\n \\n BLK• Design System Angular\\n \\n \\n \\n \\n \\n \\n
\\n \\n
\\n
\\n \\n
\\n \\n \\n \\n
\\n
\\n
\\n
    \\n
  • \\n \\n \\n

    Twitter

    \\n \\n
  • \\n
  • \\n \\n \\n

    Facebook

    \\n \\n
  • \\n
  • \\n \\n \\n

    Instagram

    \\n \\n
  • \\n
  • \\n Back to Kit \\n
  • \\n
  • \\n \\n Have an issue?\\n \\n
  • \\n
\\n
\\n \\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n\\n

Register

\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n Get Started\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n\\n\";","export default \"\\n\";","import { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\nimport { RouterModule } from \"@angular/router\";\nimport { AppRoutingModule } from \"./app-routing.module\";\nimport { AppComponent } from \"./app.component\";\n\n\nimport { PagesModule } from \"./pages/pages.module\";\n\nimport {\n CommonModule\n} from \"@angular/common\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport {\n NgxNotificationComponent,\n NgxNotificationModule,\n NgxNotificationService,\n} from \"ngx-notification\";\nimport { AuthGuard } from \"./guards/auth-guard.service\";\nimport { AuthenticatedGuard } from \"./guards/authenticated-guard.service\";\nimport { ApiService } from \"./services/api.service\";\nimport { AppHelpers } from \"./utils/helper\";\n\n@NgModule({\n declarations: [\n AppComponent,\n // IndexComponent,\n // ProfilepageComponent,\n // RegisterpageComponent,\n // LandingpageComponent\n ],\n imports: [\n BrowserAnimationsModule,\n FormsModule,\n HttpClientModule,\n CommonModule,\n BrowserModule,\n RouterModule,\n AppRoutingModule,\n // BsDropdownModule.forRoot(),\n // ProgressbarModule.forRoot(),\n // TooltipModule.forRoot(),\n // CollapseModule.forRoot(),\n // TabsModule.forRoot(),\n PagesModule,\n NgxNotificationModule,\n // PaginationModule.forRoot(),\n // AlertModule.forRoot(),\n // BsDatepickerModule.forRoot(),\n // CarouselModule.forRoot(),\n // ModalModule.forRoot()\n ],\n exports: [NgxNotificationModule],\n providers: [\n ApiService,\n AppHelpers,\n NgxNotificationService,\n AuthGuard,\n AuthenticatedGuard,\n NgxNotificationComponent,\n ],\n bootstrap: [AppComponent],\n})\nexport class AppModule {}\n","export default \"
\\n
\\n \\n \\n
\\n \\n Sign In\\n \\n \\n
\\n
\\n
\\n\";","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"crnd\";","import { BrowserModule } from \"@angular/platform-browser\";\nimport { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { RouterModule } from \"@angular/router\";\n\nimport { BsDropdownModule } from \"ngx-bootstrap/dropdown\";\nimport { ProgressbarModule } from \"ngx-bootstrap/progressbar\";\nimport { TooltipModule } from \"ngx-bootstrap/tooltip\";\nimport { CollapseModule } from \"ngx-bootstrap/collapse\";\nimport { TabsModule } from \"ngx-bootstrap/tabs\";\nimport { PaginationModule } from \"ngx-bootstrap/pagination\";\nimport { AlertModule } from \"ngx-bootstrap/alert\";\nimport { BsDatepickerModule } from \"ngx-bootstrap/datepicker\";\nimport { CarouselModule } from \"ngx-bootstrap/carousel\";\nimport { ModalModule } from \"ngx-bootstrap/modal\";\nimport { JwBootstrapSwitchNg2Module } from \"jw-bootstrap-switch-ng2\";\nimport { PopoverModule } from \"ngx-bootstrap/popover\";\nimport { NgxStripeModule } from 'ngx-stripe';\nimport { NgxNotificationComponent, NgxNotificationService, NgxNotificationModule } from 'ngx-notification';\n\nimport { IndexComponent } from \"./index/index.component\";\nimport { ProfilepageComponent } from \"./examples/profilepage/profilepage.component\";\nimport { RegisterpageComponent } from \"./examples/registerpage/registerpage.component\";\nimport { LandingpageComponent } from \"./examples/landingpage/landingpage.component\";\n\n// AppComponent\nimport { SplashComponent } from \"./home/home.component\";\nimport { LoginComponent } from \"./login/login.component\";\nimport { RegisterComponent } from \"./register/register.component\";\nimport { ForgotPasswordComponent } from \"./forgot-password/forgot-password.component\";\nimport { StreamComponent } from \"./stream/stream.component\";\nimport { AccountDetailsComponent } from \"./account-details/account-details.component\";\nimport { TermsConditionsComponent } from \"./terms-conditions/terms-conditions.component\";\nimport { PrivacyPolicyComponent } from \"./privacy-policy/privacy-policy.component\";\nimport { PlayStreamComponent } from \"./play-stream/play-stream.component\";\nimport { HeaderNavbarComponent } from \"../shared/partials/navbar/navbar.component\";\nimport { environment } from \"src/environments/environment\";\n\n@NgModule({\n imports: [\n CommonModule,\n BrowserModule,\n FormsModule,\n RouterModule,\n BsDropdownModule.forRoot(),\n ProgressbarModule.forRoot(),\n TooltipModule.forRoot(),\n PopoverModule.forRoot(),\n CollapseModule.forRoot(),\n JwBootstrapSwitchNg2Module,\n TabsModule.forRoot(),\n PaginationModule.forRoot(),\n AlertModule.forRoot(),\n BsDatepickerModule.forRoot(),\n CarouselModule.forRoot(),\n ModalModule.forRoot(),\n NgxStripeModule.forRoot(environment.STRIPE_KEY),\n NgxNotificationModule,\n ],\n declarations: [\n SplashComponent,\n IndexComponent,\n ProfilepageComponent,\n RegisterpageComponent,\n LandingpageComponent,\n LoginComponent,\n RegisterComponent,\n ForgotPasswordComponent,\n StreamComponent,\n AccountDetailsComponent,\n HeaderNavbarComponent,\n TermsConditionsComponent,\n PrivacyPolicyComponent,\n PlayStreamComponent,\n ],\n exports: [\n SplashComponent,\n IndexComponent,\n ProfilepageComponent,\n RegisterpageComponent,\n LandingpageComponent,\n LoginComponent,\n RegisterComponent,\n ForgotPasswordComponent,\n StreamComponent,\n AccountDetailsComponent,\n HeaderNavbarComponent,\n TermsConditionsComponent,\n PrivacyPolicyComponent,\n PlayStreamComponent,\n NgxNotificationComponent,\n ],\n providers: [\n NgxNotificationService,\n ]\n})\nexport class PagesModule {}\n","import { Component, OnInit, OnDestroy, HostListener } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { NgxNotificationService } from \"ngx-notification\";\nimport { ApiService } from \"src/app/services/api.service\";\nimport { AppHelpers } from \"src/app/utils/helper\";\n\n@Component({\n selector: \"app-register\",\n templateUrl: \"register.component.html\"\n})\nexport class RegisterComponent implements OnInit, OnDestroy {\n isCollapsed = true;\n displayPage = false;\n focus;\n focus1;\n focus2;\n registerButton = 'registerButton';\n registerError = false;\n inputFocus: any = {};\n requestBody: any = {\n userType: 1,\n };\n countriesList = [];\n constructor(private _router: Router, private api: ApiService, private ngxNotificationService: NgxNotificationService) {\n this.getAllCountries();\n\n if (window.prompt(\"Please enter the password\") === \"Wormy12345!\") {\n this.displayPage = true;\n }\n }\n\n getAllCountries () {\n this.api.get('http://api.countrylayer.com/v2/all?access_key=6204786a7f80421612faec5814d3154f', null, {}, false).subscribe(res => {\n this.countriesList = res;\n })\n }\n \n ngOnInit() {\n var body = document.getElementsByTagName(\"body\")[0];\n body.classList.add(\"register-page\");\n }\n\n submitRegister() {\n if (this.requestBody['name'] && this.requestBody['email'] && this.requestBody['username'] && this.requestBody['password'] === this.requestBody['confirmPassword']) {\n AppHelpers.showLoader(this.registerButton);\n this.api.post('/api/user/register', this.requestBody, {}, false).subscribe((res) => {\n if (res.data) {\n this.ngxNotificationService.sendMessage('User successfully Registered. A verification email has been sent to you.', 'success', 'bottom-left');\n \n AppHelpers.hideLoader(this.registerButton);\n this._router.navigate(['/login']);\n }\n })\n } else {\n this.ngxNotificationService.sendMessage('Form must be validated in order to send request.', 'warning', 'bottom-left');\n }\n }\n\n ngOnDestroy() {\n var body = document.getElementsByTagName(\"body\")[0];\n body.classList.remove(\"register-page\");\n }\n}\n","import { __decorate, __metadata } from \"tslib\";\n// Class Import\nimport { AppConfig } from './config';\n// Plugins\nimport * as moment from 'moment';\nimport { Injectable } from '@angular/core';\nimport { EMPTY } from 'rxjs';\nimport { NgxNotificationService } from 'ngx-notification';\nvar AppHelpers = /** @class */ (function () {\n function AppHelpers(ngxNotificationService) {\n this.ngxNotificationService = ngxNotificationService;\n }\n AppHelpers_1 = AppHelpers;\n /**\n * @description\n * Formats the given date in the given format\n *\n * @params\n * date: Date\n * format: Desired format for date\n */\n AppHelpers.formatDate = function (date, format) {\n return moment(new Date(date).getTime()).format(format);\n };\n AppHelpers.isValid = function (value, regExpression) {\n if (regExpression === void 0) { regExpression = AppConfig.RegexPatterns.password; }\n return new RegExp(regExpression).test(value);\n };\n /**\n * @description\n * Show Notification Bar\n *\n * @params\n * type: string, title: string, message: string, icon: string\n */\n AppHelpers.showNotification = function (type, title, message, icon, extraClass) {\n if (type === void 0) { type = 'success'; }\n if (title === void 0) { title = ''; }\n if (icon === void 0) { icon = ''; }\n if (extraClass === void 0) { extraClass = ''; }\n };\n AppHelpers.getToken = function () {\n if (AppConfig.loginToken) {\n return AppConfig.loginToken;\n }\n return this.getCookie('riotToken');\n };\n AppHelpers.getUserInfo = function () {\n return this.getCookie('riotUserInfo') ? JSON.parse(this.getCookie('riotUserInfo')) : null;\n };\n AppHelpers.saveToken = function (token) {\n AppConfig.loginToken = token;\n AppConfig.isLoggedIn = true;\n this.setCookie('riotToken', token);\n };\n AppHelpers.hoursRemaining = function (elapsed, minutesTotal) {\n if (elapsed === void 0) { elapsed = 0; }\n if (minutesTotal === void 0) { minutesTotal = 0; }\n var minutesRemaining = minutesTotal - elapsed;\n var hours = (minutesRemaining / 60).toFixed(2);\n return hours;\n };\n AppHelpers.streamAnalytics = function (elapsed, minutesTotal, totalListeners) {\n if (elapsed === void 0) { elapsed = 0; }\n if (minutesTotal === void 0) { minutesTotal = 0; }\n if (totalListeners === void 0) { totalListeners = 0; }\n var minutesRemaining = (minutesTotal - elapsed) >= 0 ? (minutesTotal - elapsed) : 0;\n var hour = (minutesRemaining / 60).toFixed(0);\n var minute = totalListeners ? (minutesRemaining / totalListeners).toFixed(0) : \"∞\"; //minutesRemaining.toString(); //(minutesRemaining / 60 % 60).toFixed(0);\n // return formated string\n return { hour: hour, minute: minute };\n };\n AppHelpers.saveUserInfo = function (userInfo) {\n this.setCookie('riotUserInfo', JSON.stringify(userInfo));\n };\n AppHelpers.destroyToken = function () {\n AppConfig.loginToken = null;\n AppConfig.isLoggedIn = false;\n this.deleteCookie('riotToken');\n };\n AppHelpers.destroyUserInfo = function () {\n this.deleteCookie('riotUserInfo');\n this.deleteCookie('broadcasterStream');\n };\n AppHelpers.isLoggedIn = function () {\n return this.getToken() ? true : false;\n };\n AppHelpers.showLoader = function (elementId) {\n document.getElementById(elementId).classList.add('is--loading');\n };\n AppHelpers.hideLoader = function (elementId) {\n if (elementId === void 0) { elementId = null; }\n if (elementId) {\n document.getElementById(elementId) ? document.getElementById(elementId).classList.remove('is--loading') : null;\n }\n else {\n document.querySelectorAll('.is--loading').forEach(function (element) {\n element.classList.remove('is--loading');\n });\n }\n };\n /**\n * set cookie details\n *\n * @param {String} cname Cooke name\n * @param {String} cvalue Cooke value\n * @param {Number} exdays Expiry Days Count\n */\n AppHelpers.setCookie = function (cname, cvalue, exdays) {\n if (exdays === void 0) { exdays = 10; }\n localStorage.setItem(cname, cvalue);\n };\n /**\n * get cookie details by name\n *\n * @param {String} cname Cooke name\n * @returns {String} as cookie details\n */\n AppHelpers.getCookie = function (cname) {\n var storage = localStorage.getItem(cname) ? localStorage.getItem(cname) : null;\n return storage;\n };\n /**\n * delete cookie by name\n *\n * @param {String} cname Cooke name\n */\n AppHelpers.deleteCookie = function (cname) {\n localStorage.removeItem(cname);\n };\n /**\n * handle http errors\n *\n * @param {Object} errorObj HTTP Error Object\n */\n AppHelpers.handleHttpError = function (errorObj) {\n var ErrorObj = {};\n var ErrorList = [];\n var Message;\n var Status;\n var Icon;\n var ExtraClass = \"\";\n if (errorObj.status === 200) { // Success With Message\n Message = errorObj.error && errorObj.error.text ? errorObj.error.text : \"Action has been successfully performed!\";\n Status = \"success\";\n Icon = \"fa fa-check-circle\";\n }\n else { // Error\n Message = errorObj.error && errorObj.error.message ? errorObj.error.message : \"Something went wrong!\";\n Status = \"danger\";\n Icon = \"fa fa-warning\";\n }\n AppHelpers_1.hideLoader();\n return EMPTY;\n };\n ;\n var AppHelpers_1;\n AppHelpers.ctorParameters = function () { return [\n { type: NgxNotificationService }\n ]; };\n AppHelpers = AppHelpers_1 = __decorate([\n Injectable(),\n __metadata(\"design:paramtypes\", [NgxNotificationService])\n ], AppHelpers);\n return AppHelpers;\n}());\nexport { AppHelpers };\n//# sourceMappingURL=helper.js.map","export class PeerStats {\n\n constructor(streamId) {\n this.streamId = streamId;\n this.totalBytesReceivedCount = 0;\n this.totalBytesSent = 0;\n this.videoPacketsLost = 0;\n this.fractionLost = 0;\n this.startTime = 0;\n this.lastFramesEncoded = 0;\n\t\tthis.totalFramesEncodedCount = 0;\n this.lastBytesReceived = 0;\n this.lastBytesSent = 0;\n this.currentTimestamp = 0;\n this.lastTime = 0;\n this.timerId = 0;\n this.firstByteSentCount = 0;\n this.firstBytesReceivedCount = 0;\n this.audioLevel = -1;\n this.qualityLimitationReason = \"\";\n //res width and res height are video source resolutions\n this.resWidth = 0;\n this.resHeight = 0;\n this.srcFps = 0;\n //frameWidth and frameHeight are the resolutions of the sent video\n this.frameWidth = 0;\n this.frameHeight = 0;\n\n this.videoRoundTripTime = 0;\n this.videoJitter = 0;\n\n this.audioRoundTripTime = 0;\n this.audioJitter = 0;\n\n this.audioPacketsLost = 0;\n\n this.framesReceived = 0;\n this.framesDropped = 0;\n this.framesDecoded = 0;\n\n this.audioJitterAverageDelay = 0;\n this.videoJitterAverageDelay = 0;\n }\n\n //kbits/sec\n get averageOutgoingBitrate() {\n return Math.floor(8 * (this.totalBytesSentCount - this.firstByteSentCount) / (this.currentTimestamp - this.startTime));\n }\n\n //frames per second\n get currentFPS() {\n return (((this.totalFramesEncodedCount - this.lastFramesEncoded) / (this.currentTimestamp - this.lastTime))*1000).toFixed(1);\n }\n //kbits/sec\n get averageIncomingBitrate() {\n return Math.floor(8 * (this.totalBytesReceivedCount - this.firstBytesReceivedCount) / (this.currentTimestamp - this.startTime));\n }\n\n //kbits/sec\n get currentOutgoingBitrate() {\n return Math.floor(8 * (this.totalBytesSentCount - this.lastBytesSent) / (this.currentTimestamp - this.lastTime));\n }\n\n //kbits/sec\n get currentIncomingBitrate() {\n return Math.floor(8 * (this.totalBytesReceivedCount - this.lastBytesReceived) / (this.currentTimestamp - this.lastTime));\n }\n\n set currentTime(timestamp) {\n this.lastTime = this.currentTimestamp;\n this.currentTimestamp = timestamp;\n if (this.startTime == 0) {\n this.startTime = timestamp-1; // do not have zero division error\n }\n }\n\n set totalBytesReceived(bytesReceived) {\n this.lastBytesReceived = this.totalBytesReceivedCount;\n this.totalBytesReceivedCount = bytesReceived;\n if (this.firstBytesReceivedCount == 0) {\n this.firstBytesReceivedCount = bytesReceived;\n }\n }\n\n set totalBytesSent(bytesSent) {\n this.lastBytesSent = this.totalBytesSentCount;\n this.totalBytesSentCount = bytesSent;\n if (this.firstByteSentCount == 0) {\n this.firstByteSentCount = bytesSent;\n }\n }\n set totalFramesEncoded(framesEncoded) {\n this.lastFramesEncoded = this.totalFramesEncodedCount;\n this.totalFramesEncodedCount = framesEncoded;\n if (this.lastFramesEncoded == 0) {\n this.lastFramesEncoded = framesEncoded;\n }\n }\n\n}","import { __decorate, __metadata } from \"tslib\";\nimport { environment } from '../../environments/environment';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { EMPTY } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { catchError } from 'rxjs/operators';\nimport { AppHelpers } from '../utils/helper';\nimport { Router } from '@angular/router';\nimport { NgxNotificationService } from 'ngx-notification';\nvar self;\nvar ApiService = /** @class */ (function () {\n function ApiService(http, router, _helper, ngxNotificationService) {\n this.http = http;\n this.router = router;\n this._helper = _helper;\n this.ngxNotificationService = ngxNotificationService;\n this.helperClass = this._helper;\n self = this;\n }\n ApiService.prototype.formatErrors = function (errorObj) {\n console.log(\"ERROOORRRR\", errorObj);\n var message = \"There was some unknown error\";\n if (errorObj && errorObj.error) {\n message = errorObj.error.message;\n }\n self.ngxNotificationService.sendMessage(message, 'danger', 'bottom-left');\n AppHelpers.hideLoader();\n return EMPTY;\n };\n ApiService.prototype.get = function (path, params, headers, checkLogin, handleInternalError, apiURL) {\n if (params === void 0) { params = new HttpParams(); }\n if (headers === void 0) { headers = {}; }\n if (checkLogin === void 0) { checkLogin = true; }\n if (handleInternalError === void 0) { handleInternalError = true; }\n if (apiURL === void 0) { apiURL = null; }\n var sendRequest = false;\n // Decides to sendRequest or not\n if (checkLogin) {\n sendRequest = AppHelpers.isLoggedIn() ? true : false;\n }\n else {\n sendRequest = true;\n }\n var fullURL = \"\" + environment.api_url + path;\n if (path.includes('http')) {\n fullURL = path;\n }\n // then sends it..\n if (sendRequest) {\n if (handleInternalError) {\n return this.http.get(\"\" + (apiURL || fullURL), { params: params, headers: headers }).pipe(catchError(this.formatErrors));\n }\n else {\n return this.http.get(\"\" + (apiURL || fullURL), { params: params, headers: headers });\n }\n }\n else {\n this.router.navigate(['/login']);\n }\n };\n ApiService.prototype.put = function (path, body, headers, checkLogin) {\n if (body === void 0) { body = {}; }\n if (headers === void 0) { headers = {}; }\n if (checkLogin === void 0) { checkLogin = true; }\n var sendRequest = false;\n // Decides to sendRequest or not\n if (checkLogin) {\n sendRequest = AppHelpers.isLoggedIn() ? true : false;\n }\n else {\n sendRequest = true;\n }\n // then sends it..\n if (sendRequest) {\n return this.http.put(\"\" + environment.api_url + path, body, { headers: headers }).pipe(catchError(this.formatErrors));\n }\n else {\n this.router.navigate(['/login']);\n }\n };\n ApiService.prototype.post = function (path, body, headers, checkLogin, handleInternalError) {\n if (body === void 0) { body = {}; }\n if (headers === void 0) { headers = {}; }\n if (checkLogin === void 0) { checkLogin = true; }\n if (handleInternalError === void 0) { handleInternalError = true; }\n var sendRequest = false;\n // Decides to sendRequest or not\n if (checkLogin) {\n sendRequest = AppHelpers.isLoggedIn() ? true : false;\n }\n else {\n sendRequest = true;\n }\n // then sends it..\n if (sendRequest) {\n if (handleInternalError) {\n return this.http.post(\"\" + environment.api_url + path, body, { headers: headers }).pipe(catchError(this.formatErrors));\n }\n else {\n return this.http.post(\"\" + environment.api_url + path, body, { headers: headers });\n }\n }\n else {\n this.router.navigate(['/login']);\n }\n };\n ApiService.prototype.delete = function (path, headers, checkLogin) {\n if (headers === void 0) { headers = {}; }\n if (checkLogin === void 0) { checkLogin = true; }\n var sendRequest = false;\n // Decides to sendRequest or not\n if (checkLogin) {\n sendRequest = AppHelpers.isLoggedIn() ? true : false;\n }\n else {\n sendRequest = true;\n }\n // then sends it..\n if (sendRequest) {\n return this.http.delete(\"\" + environment.api_url + path, { headers: headers }).pipe(catchError(this.formatErrors));\n }\n else {\n this.router.navigate(['/login']);\n }\n };\n ApiService.ctorParameters = function () { return [\n { type: HttpClient },\n { type: Router },\n { type: AppHelpers },\n { type: NgxNotificationService }\n ]; };\n ApiService = __decorate([\n Injectable({\n providedIn: 'root'\n }),\n __metadata(\"design:paramtypes\", [HttpClient,\n Router,\n AppHelpers,\n NgxNotificationService])\n ], ApiService);\n return ApiService;\n}());\nexport { ApiService };\n//# sourceMappingURL=api.service.js.map","export default \"\\n
\\n
\\n
\\n\\n\\n \\n \\n \\n \\n Account Details\\n \\n\\n
\\n
\\n

Account Settings

\\n
\\n
\\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n \\n
\\n \\n
\\n \\n Update Profile\\n \\n \\n
\\n\\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n \\n
\\n
\\n
\\n \\n \\n
\\n\\n
\\n \\n Update Location\\n \\n \\n
\\n \\n\\n \\n\\n

Change Password

\\n\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n \\n
\\n \\n\\n\\n

Hyperlink Settings

\\n\\n
\\n \\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n \\n
\\n \\n \\n \\n \\n \\n\\n\\n \\n \\n Payments\\n \\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
Payment DatePayment StatusPayment TypeAmount
{{ AppHelpers.formatDate(item.createdAt, 'DD MMM YYYY') }}\\n Completed \\n \\n Failed \\n \\n {{item.type}}USD ${{ getPaymentPrice(item.message) }}
\\n
\\n
\\n \\n \\n \\n\";","import { Component, OnInit, OnDestroy, HostListener } from \"@angular/core\";\n\n@Component({\n selector: \"app-forgot-password\",\n templateUrl: \"forgot-password.component.html\"\n})\nexport class ForgotPasswordComponent implements OnInit, OnDestroy {\n isCollapsed = true;\n focus;\n focus1;\n focus2;\n formButton = 'formButton';\n formError = false;\n constructor() {}\n \n ngOnInit() {\n var body = document.getElementsByTagName(\"body\")[0];\n body.classList.add(\"register-page\");\n }\n\n submitForm() {\n document.querySelector(`#${this.formButton}`).classList.add('is--loading');\n setTimeout(() => {\n this.formError = true;\n document.querySelector(`#${this.formButton}`).classList.remove('is--loading');\n }, 5000);\n }\n\n ngOnDestroy() {\n var body = document.getElementsByTagName(\"body\")[0];\n body.classList.remove(\"register-page\");\n }\n}\n","export default \"\\n
\\n
\\n \\n
\\n \\n

Privacy Policy

\\n\\n \\n\\n \\n\\n \\n\\n \\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\";","import { Component, OnInit, OnDestroy, ViewChild } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport noUiSlider from \"nouislider\";\n\n@Component({\n selector: \"app-terms-conditions\",\n templateUrl: \"terms-conditions.component.html\"\n})\nexport class TermsConditionsComponent implements OnInit, OnDestroy {\n constructor() {}\n ngOnInit() {\n \n }\n ngOnDestroy() {\n }\n}","import { Component, OnInit, OnDestroy, ViewChild } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport noUiSlider from \"nouislider\";\nimport { AppHelpers } from \"src/app/utils/helper\";\nimport { ApiService } from \"src/app/services/api.service.js\";\n\nimport { WebRTCAdaptor } from '../../../../assets/js/webrtc_adaptor.js';\nimport { NgxNotificationService } from \"ngx-notification\";\nimport { HttpHeaders } from \"@angular/common/http\";\nimport { AppConfig } from \"src/app/utils/config.js\";\n\n@Component({\n selector: \"app-header-nav\",\n templateUrl: \"navbar.component.html\"\n})\nexport class HeaderNavbarComponent implements OnInit, OnDestroy {\n isCollapsed = true;\n streamURL = ['/play-stream'];\n broadcastStatus = 'stopped';\n broadcastData = null;\n streamToken = \"\";\n publishInterval = null;\n header = null;\n antHeaders = null;\n constructor(private _router: Router, private api: ApiService, private ngxNotificationService: NgxNotificationService,) {\n if (localStorage.getItem('broadcasterStream') && JSON.parse(localStorage.getItem('broadcasterStream'))) {\n this.broadcastData = JSON.parse(localStorage.getItem('broadcasterStream'));\n this.streamURL = ['/play-stream'];\n } else {\n this.streamURL = ['/stream'];\n }\n\n this.header = new HttpHeaders({\n \"x-access-token\": AppHelpers.getToken(),\n });\n\n this.antHeaders = new HttpHeaders({\n \"Authorization\": AppHelpers.getToken(),\n });\n\n if (AppHelpers.isLoggedIn() && this.broadcastData && !AppConfig.webRTCAdaptor) {\n this.configureBroadCasting();\n this.getStreamStats(true)\n }\n }\n ngOnInit() {\n this.publishStreamToken();\n }\n ngOnDestroy() {\n }\n\n logout() {\n this.api.post('/api/user/logout', {}, this.header, true).subscribe(() => {\n AppHelpers.destroyToken();\n AppHelpers.destroyUserInfo();\n localStorage.removeItem('broadcasterStream');\n this._router.navigate(['/login']);\n window.location.reload();\n AppConfig.webRTCAdaptor.closeStream(this.broadcastData.streamId);\n AppConfig.webRTCAdaptor.closeWebSocket(this.broadcastData.streamId);\n clearInterval(this.publishInterval);\n })\n }\n\n getStreamStats(isReloaded = false) {\n this.api.get('a', null, this.antHeaders, true, false, `https://dev-alb.riotbroadcast.com/RIOT/rest/v2/broadcasts/${this.broadcastData.streamId}`).subscribe((res) => {\n console.log(\"Count\", res);\n AppConfig.broadcastStats.totalListeners = res.webRTCViewerCount;\n })\n this.api.get(`/api/stream/stats/id/${this.broadcastData.id}`, null, this.header, true).subscribe(response => {\n if (response.success && response.data != null) {\n AppConfig.broadcastStats.minutesElapsed = response.data.minutesElapsed || 0;\n // AppConfig.broadcastStats.totalListeners = response.data.totalListeners;\n AppConfig.broadcastStats.totalMinutes = response.data.totalMinutes || 0;\n AppConfig.hasAutoTopUp = response.data?.isAutoTopupEnabled || false;\n\n const analytics = AppHelpers.streamAnalytics(AppConfig.broadcastStats.minutesElapsed, AppConfig.broadcastStats.totalMinutes, AppConfig.broadcastStats.totalListeners)\n\n AppConfig.broadcastStats.formattedHours = analytics.hour;\n AppConfig.broadcastStats.formattedMinutes = analytics.minute;\n\n if ((AppConfig.broadcastStats.totalMinutes - AppConfig.broadcastStats.minutesElapsed) <= 0 && !AppConfig.hasAutoTopUp) {\n AppConfig.broadcastStatus = 'limit_reached';\n if (!isReloaded) {\n window.location.reload();\n }\n } else {\n AppConfig.broadcastStatus = AppConfig.broadcastStatus == \"limit_reached\" ? \"connected\" : AppConfig.broadcastStatus;\n }\n }\n })\n }\n\n publishStreamToken() {\n return this.api.post(`/api/stream/publishToken`, {streamId: this.broadcastData.streamId}, this.header, true);\n }\n\n configureBroadCasting() {\n let self = this;\n let pc_config = {\n iceServers: [{\n urls: \"turn:turn.riotbroadcast.com:3478\",\n username: \"riotbroadcast\",\n credential: \"wormy12345\"\n }]\n };\n\n let sdpConstraints = {\n OfferToReceiveAudio: false,\n OfferToReceiveVideo: false\n\n };\n let mediaConstraints = {\n audio: true\n };\n\n AppConfig.webRTCAdaptor = new WebRTCAdaptor({\n bandwidth: 16,\n // websocket_url: \"ws://\" + location.hostname + \":\" + location.port + \"/WebRTCAppEE\",\n websocket_url: \"wss://dev-alb.riotbroadcast.com/RIOT/websocket\",\n mediaConstraints: mediaConstraints,\n peerconnection_config: pc_config,\n sdp_constraints: sdpConstraints,\n callback: function (info, data) {\n if (info == \"initialized\") {\n console.log(\"initialized\", data, AppConfig.webRTCAdaptor);\n self.publishStreamToken().subscribe(response => {\n if (response.success && response.data != null) {\n localStorage.setItem('broadcasterToken', response.data);\n // Check if user has minutes or hours, then only start the stream.\n if ( (AppConfig.broadcastStats.totalMinutes - AppConfig.broadcastStats.minutesElapsed) > 0 ) {\n self.streamToken = response.data;\n AppConfig.webRTCAdaptor.publish(self.broadcastData.streamId, response.data, undefined, undefined, self.broadcastData.name);\n // AppConfig.webRTCAdaptor.toggleAudio(self.broadcastData.streamId, null, false);\n // AppConfig.webRTCAdaptor.muteLocalMic();\n AppConfig.webRTCAdaptor.enableStats(self.broadcastData.streamId);\n }\n }\n });\n }\n else if ([\"publish_started\", \"session_restored\"].some(val => val == info)) {\n console.log(\"publish started\");\n if (AppConfig.broadcastStatus != 'limit_reached') {\n // AppConfig.broadcastStatus = \"connected\";\n AppConfig.broadcastStatus = \"broadcasting_started\";\n }\n AppConfig.webRTCAdaptor.toggleAudio(self.broadcastData.streamId, null, true);\n AppConfig.webRTCAdaptor.unmuteLocalMic();\n clearInterval(self.publishInterval);\n }\n else if (info == \"publish_finished\") {\n console.log(\"publish finished\");\n AppConfig.broadcastStatus = \"disconnected\";\n\n clearInterval(self.publishInterval);\n\n self.publishInterval = setInterval(() => {\n AppConfig.webRTCAdaptor.publish(self.broadcastData.streamId, self.streamToken, undefined, undefined, self.broadcastData.name);\n }, 10000)\n }\n else if (info == \"updated_stats\") {\n //\"Stop Sharing\" is clicked in chrome screen share dialog\n console.log(\"updated_stats\", info, data);\n self.getStreamStats();\n }\n\n },\n callbackError: function (error) {\n //some of the possible errors, NotFoundError, SecurityError,PermissionDeniedError\n clearInterval(self.publishInterval);\n self.publishInterval = setInterval(() => {\n AppConfig.webRTCAdaptor.publish(self.broadcastData.streamId, self.streamToken, undefined, undefined, self.broadcastData.name);\n }, 10000)\n\n console.log(\"error callback: \" + error);\n // alert(error);\n self.ngxNotificationService.sendMessage(error, 'danger', 'bottom-left');\n }\n });\n }\n}","export class AppConfig {\n \n public static isLoggedIn = false;\n public static loginToken = null;\n \n public static webRTCAdaptor = null;\n public static broadcastStatus = 'disconnected';\n public static hasAutoTopUp = false;\n public static broadcastStats = {\n minutesElapsed: 0,\n totalMinutes: 0,\n totalListeners: 0,\n formattedHours: \"∞\",\n formattedMinutes: \"∞\",\n };\n\n public static RegexPatterns = {\n \"url\": /[-a-zA-Z0-9@:%._\\+~#=]{3,256}\\.[a-zA-Z0-9()]{2,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)/,\n \"password\": /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\\$%\\^&\\*])(?=.{8,})/,\n \"email\": /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[A-Z0-9.-]+\\.[A-Z]{2,}$/i,\n \"name\": /^[a-zA-Z]+(([-. ][a-zA-Z ])?[a-zA-Z]*)*$/,\n \"date\": /(\\b(0?[1-9]|[12]\\d|30|31)[^\\w\\d\\r\\n:](0?[1-9]|1[0-2])[^\\w\\d\\r\\n:](\\d{4}|\\d{2})\\b)/,\n \"dateUTC\": /^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9]).([0-9][0-9][0-9])(Z)$/\n }\n\n}\n","export default \"\\n
\\n
\\n \\n
\\n\\n \\n \\n \\n \\n Terms & Conditions\\n \\n\\n
\\n

Terms & Conditions

\\n\\n \\n\\n \\n\\n \\n\\n \\n\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n Privacy Policy\\n \\n\\n
\\n

Privacy Policy

\\n\\n \\n\\n \\n\\n \\n\\n \\n\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n\\n\\n
\\n \\n \\n \\n
\\n
\\n
\";","export default \"\\n
\\n
\\n \\n \\\"Riot\\n \\n \\n \\n \\n \\n \\n
\\n \\n
\\n
\\n \\n
\\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n\\n\\n\";","import { Component, OnInit, OnDestroy, HostListener } from \"@angular/core\";\n\n@Component({\n selector: \"app-registerpage\",\n templateUrl: \"registerpage.component.html\"\n})\nexport class RegisterpageComponent implements OnInit, OnDestroy {\n isCollapsed = true;\n focus;\n focus1;\n focus2;\n constructor() {}\n @HostListener(\"document:mousemove\", [\"$event\"])\n onMouseMove(e) {\n var squares1 = document.getElementById(\"square1\");\n var squares2 = document.getElementById(\"square2\");\n var squares3 = document.getElementById(\"square3\");\n var squares4 = document.getElementById(\"square4\");\n var squares5 = document.getElementById(\"square5\");\n var squares6 = document.getElementById(\"square6\");\n var squares7 = document.getElementById(\"square7\");\n var squares8 = document.getElementById(\"square8\");\n\n var posX = e.clientX - window.innerWidth / 2;\n var posY = e.clientY - window.innerWidth / 6;\n\n squares1.style.transform =\n \"perspective(500px) rotateY(\" +\n posX * 0.05 +\n \"deg) rotateX(\" +\n posY * -0.05 +\n \"deg)\";\n squares2.style.transform =\n \"perspective(500px) rotateY(\" +\n posX * 0.05 +\n \"deg) rotateX(\" +\n posY * -0.05 +\n \"deg)\";\n squares3.style.transform =\n \"perspective(500px) rotateY(\" +\n posX * 0.05 +\n \"deg) rotateX(\" +\n posY * -0.05 +\n \"deg)\";\n squares4.style.transform =\n \"perspective(500px) rotateY(\" +\n posX * 0.05 +\n \"deg) rotateX(\" +\n posY * -0.05 +\n \"deg)\";\n squares5.style.transform =\n \"perspective(500px) rotateY(\" +\n posX * 0.05 +\n \"deg) rotateX(\" +\n posY * -0.05 +\n \"deg)\";\n squares6.style.transform =\n \"perspective(500px) rotateY(\" +\n posX * 0.05 +\n \"deg) rotateX(\" +\n posY * -0.05 +\n \"deg)\";\n squares7.style.transform =\n \"perspective(500px) rotateY(\" +\n posX * 0.02 +\n \"deg) rotateX(\" +\n posY * -0.02 +\n \"deg)\";\n squares8.style.transform =\n \"perspective(500px) rotateY(\" +\n posX * 0.02 +\n \"deg) rotateX(\" +\n posY * -0.02 +\n \"deg)\";\n }\n\n ngOnInit() {\n var body = document.getElementsByTagName(\"body\")[0];\n body.classList.add(\"register-page\");\n\n this.onMouseMove(event);\n }\n ngOnDestroy() {\n var body = document.getElementsByTagName(\"body\")[0];\n body.classList.remove(\"register-page\");\n }\n}\n","import { Component, OnInit, OnDestroy } from \"@angular/core\";\nimport noUiSlider from \"nouislider\";\n\n@Component({\n selector: \"app-index\",\n templateUrl: \"index.component.html\"\n})\nexport class IndexComponent implements OnInit, OnDestroy {\n isCollapsed = true;\n focus;\n focus1;\n focus2;\n date = new Date();\n pagination = 3;\n pagination1 = 1;\n constructor() {}\n scrollToDownload(element: any) {\n element.scrollIntoView({ behavior: \"smooth\" });\n }\n ngOnInit() {\n var body = document.getElementsByTagName(\"body\")[0];\n body.classList.add(\"index-page\");\n\n var slider = document.getElementById(\"sliderRegular\");\n\n noUiSlider.create(slider, {\n start: 40,\n connect: false,\n range: {\n min: 0,\n max: 100\n }\n });\n\n var slider2 = document.getElementById(\"sliderDouble\");\n\n noUiSlider.create(slider2, {\n start: [20, 60],\n connect: true,\n range: {\n min: 0,\n max: 100\n }\n });\n }\n ngOnDestroy() {\n var body = document.getElementsByTagName(\"body\")[0];\n body.classList.remove(\"index-page\");\n }\n}\n","import { Component, OnInit, OnDestroy, ViewChild } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport noUiSlider from \"nouislider\";\n\n@Component({\n selector: \"app-privacy-policy\",\n templateUrl: \"privacy-policy.component.html\"\n})\nexport class PrivacyPolicyComponent implements OnInit, OnDestroy {\n constructor() {}\n ngOnInit() {\n \n }\n ngOnDestroy() {\n }\n}","export default \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\\"Logo\\\"\\n
\\n
\\n
\\n

Forgot Password

\\n

Fill in your email and we will send you an email with the instructions to reset your password.

\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n\\n\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n\";","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { Routes, RouterModule } from \"@angular/router\";\n\nimport { IndexComponent } from \"./pages/index/index.component\";\nimport { ProfilepageComponent } from \"./pages/examples/profilepage/profilepage.component\";\nimport { RegisterpageComponent } from \"./pages/examples/registerpage/registerpage.component\";\nimport { LandingpageComponent } from \"./pages/examples/landingpage/landingpage.component\";\n\n// App Components\nimport { SplashComponent } from \"./pages/home/home.component\";\nimport { LoginComponent } from \"./pages/login/login.component\";\nimport { RegisterComponent } from \"./pages/register/register.component\";\nimport { ForgotPasswordComponent } from \"./pages/forgot-password/forgot-password.component\";\nimport { StreamComponent } from \"./pages/stream/stream.component\";\nimport { AccountDetailsComponent } from \"./pages/account-details/account-details.component\";\nimport { TermsConditionsComponent } from \"./pages/terms-conditions/terms-conditions.component\";\nimport { PrivacyPolicyComponent } from \"./pages/privacy-policy/privacy-policy.component\";\nimport { PlayStreamComponent } from \"./pages/play-stream/play-stream.component\";\nimport { AuthGuard } from \"./guards/auth-guard.service\";\nimport { AuthenticatedGuard } from \"./guards/authenticated-guard.service\";\nimport { NgxNotificationComponent } from \"ngx-notification\";\n\nconst routes: Routes = [\n // { path: \"home-2\", component: IndexComponent, canActivate: [AuthGuard] },\n // { path: \"profile\", component: ProfilepageComponent },\n // { path: \"landing\", component: LandingpageComponent },\n\n // { path: \"home\", component: SplashComponent },\n { path: \"login\", component: LoginComponent },\n { path: \"register\", component: RegisterComponent },\n { path: \"forgot-password\", component: ForgotPasswordComponent },\n { path: \"stream\", component: StreamComponent, canActivate: [AuthGuard] },\n {\n path: \"account-details\",\n component: AccountDetailsComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"terms-and-conditions\",\n component: TermsConditionsComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"privacy-policy\",\n component: PrivacyPolicyComponent,\n canActivate: [AuthGuard],\n },\n {\n path: \"play-stream\",\n component: PlayStreamComponent,\n canActivate: [AuthGuard],\n },\n { path: \"\", redirectTo: \"/login\", pathMatch: \"full\" },\n { path: \"**\", redirectTo: \"/login\" },\n // { path: \"\", redirectTo: \"/play-stream\", pathMatch: \"full\" },\n];\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule,\n BrowserModule,\n RouterModule.forRoot(routes, {\n useHash: true,\n }),\n ],\n exports: [],\n})\nexport class AppRoutingModule {}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAuY29tcG9uZW50LnNjc3MifQ== */\";","export default \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\\"Logo\\\"\\n
\\n
\\n
\\n

Broadcast App

\\n

Login to continue using our app

\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n\\n\\n \\n
\\n \\n
\\n\\n \\n \\n\\n \\n
\\n
\\n
\\n
\\n
\\n \\n\\n\\n\\n\\n
\\n
\\n
\\n \\n \\n \\n
\\n

Terms & Conditions

\\n
\\n
\\n
\\n \\n\\n \\n\\n \\n\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n\\n\\n\\n
\\n
\\n
\\n \\n \\n \\n
\\n

Update Broadcast Location?

\\n
\\n
\\n
\\n\\n

Update broadcast location to Latitude: {{newLocation?.lat}}, Longitude: {{newLocation?.lng}}

\\n \\n

Previous broadcast location is Latitude: {{broadcastData?.location?.coordinates[1]}}, Longitude: {{broadcastData?.location?.coordinates[0]}}

\\n \\n
\\n\\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n\\n\\n \";","/*\n=========================================================\n* BLK Design System Angular - v1.2.0\n=========================================================\n\n* Product Page: https://www.creative-tim.com/product/blk-design-system-angular\n* Copyright 2021 Creative Tim (https://www.creative-tim.com)\n* Licensed under MIT\n\n* Coded by Creative Tim\n\n=========================================================\n\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n */\n\nimport { enableProdMode } from \"@angular/core\";\nimport { platformBrowserDynamic } from \"@angular/platform-browser-dynamic\";\n\nimport { AppModule } from \"./app/app.module\";\nimport { environment } from \"./environments/environment\";\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"sourceRoot":"webpack:///"}