@vonage/ml-transformers 2.0.4 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/docs/assets/search.js +1 -1
- package/dist/docs/index.html +1 -1
- package/dist/docs/interfaces/PoseOptions.html +3 -0
- package/dist/docs/interfaces/PoseResults.html +3 -0
- package/dist/docs/modules.html +6 -6
- package/dist/ml-transformers.es.js +10033 -8075
- package/dist/ml-transformers.umd.js +45 -28
- package/dist/types/main.d.ts +71 -3
- package/dist/types/src/transformers/MediapipeHelper.d.ts +0 -6
- package/dist/types/src/types.d.ts +5 -4
- package/package.json +16 -15
- package/dist/types/src/transformers/FaceDetectionHelper.d.ts +0 -5
- package/dist/types/src/transformers/FaceMashHelper.d.ts +0 -5
- package/dist/types/src/transformers/HandsHelper.d.ts +0 -5
- package/dist/types/src/transformers/HolisticHelper.d.ts +0 -5
- package/dist/types/src/transformers/ObjectronHelper.d.ts +0 -5
- package/dist/types/src/transformers/SelfieSegmentationHelper.d.ts +0 -5
|
@@ -1,106 +1,123 @@
|
|
|
1
|
-
(function(
|
|
2
|
-
`),function(U){if(J=U.indexOf(":"),S=Nr.trim(U.substr(0,J)).toLowerCase(),T=Nr.trim(U.substr(J+1)),S){if(G[S]&&oo.indexOf(S)>=0)return;S==="set-cookie"?G[S]=(G[S]?G[S]:[]).concat([T]):G[S]=G[S]?G[S]+", "+T:T}}),G},ni=xn,so=ni.isStandardBrowserEnv()?function(){var g=/(msie|trident)/i.test(navigator.userAgent),G=document.createElement("a"),S;function T(J){var K=J;return g&&(G.setAttribute("href",K),K=G.href),G.setAttribute("href",K),{href:G.href,protocol:G.protocol?G.protocol.replace(/:$/,""):"",host:G.host,search:G.search?G.search.replace(/^\?/,""):"",hash:G.hash?G.hash.replace(/^#/,""):"",hostname:G.hostname,port:G.port,pathname:G.pathname.charAt(0)==="/"?G.pathname:"/"+G.pathname}}return S=T(window.location.href),function(K){var U=ni.isString(K)?T(K):K;return U.protocol===S.protocol&&U.host===S.host}}():function(){return function(){return!0}}();function Yr(X){this.message=X}Yr.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},Yr.prototype.__CANCEL__=!0;var pr=Yr,mr=xn,lo=$i,co=qi,ao=qr,ho=io,fo=uo,po=so,Jr=ei,mo=yr,go=pr,ri=function(g){return new Promise(function(S,T){var J=g.data,K=g.headers,U=g.responseType,et;function Ye(){g.cancelToken&&g.cancelToken.unsubscribe(et),g.signal&&g.signal.removeEventListener("abort",et)}mr.isFormData(J)&&delete K["Content-Type"];var tt=new XMLHttpRequest;if(g.auth){var Ft=g.auth.username||"",Pe=g.auth.password?unescape(encodeURIComponent(g.auth.password)):"";K.Authorization="Basic "+btoa(Ft+":"+Pe)}var se=ho(g.baseURL,g.url);tt.open(g.method.toUpperCase(),ao(se,g.params,g.paramsSerializer),!0),tt.timeout=g.timeout;function Je(){if(!!tt){var $t="getAllResponseHeaders"in tt?fo(tt.getAllResponseHeaders()):null,fe=!U||U==="text"||U==="json"?tt.responseText:tt.response,ae={data:fe,status:tt.status,statusText:tt.statusText,headers:$t,config:g,request:tt};lo(function(Sn){S(Sn),Ye()},function(Sn){T(Sn),Ye()},ae),tt=null}}if("onloadend"in tt?tt.onloadend=Je:tt.onreadystatechange=function(){!tt||tt.readyState!==4||tt.status===0&&!(tt.responseURL&&tt.responseURL.indexOf("file:")===0)||setTimeout(Je)},tt.onabort=function(){!tt||(T(Jr("Request aborted",g,"ECONNABORTED",tt)),tt=null)},tt.onerror=function(){T(Jr("Network Error",g,null,tt)),tt=null},tt.ontimeout=function(){var fe=g.timeout?"timeout of "+g.timeout+"ms exceeded":"timeout exceeded",ae=g.transitional||mo.transitional;g.timeoutErrorMessage&&(fe=g.timeoutErrorMessage),T(Jr(fe,g,ae.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",tt)),tt=null},mr.isStandardBrowserEnv()){var yt=(g.withCredentials||po(se))&&g.xsrfCookieName?co.read(g.xsrfCookieName):void 0;yt&&(K[g.xsrfHeaderName]=yt)}"setRequestHeader"in tt&&mr.forEach(K,function(fe,ae){typeof J=="undefined"&&ae.toLowerCase()==="content-type"?delete K[ae]:tt.setRequestHeader(ae,fe)}),mr.isUndefined(g.withCredentials)||(tt.withCredentials=!!g.withCredentials),U&&U!=="json"&&(tt.responseType=g.responseType),typeof g.onDownloadProgress=="function"&&tt.addEventListener("progress",g.onDownloadProgress),typeof g.onUploadProgress=="function"&&tt.upload&&tt.upload.addEventListener("progress",g.onUploadProgress),(g.cancelToken||g.signal)&&(et=function($t){!tt||(T(!$t||$t&&$t.type?new go("canceled"):$t),tt.abort(),tt=null)},g.cancelToken&&g.cancelToken.subscribe(et),g.signal&&(g.signal.aborted?et():g.signal.addEventListener("abort",et))),J||(J=null),tt.send(J)})},yn=xn,ii=Mi,yo=ti,vo={"Content-Type":"application/x-www-form-urlencoded"};function oi(X,g){!yn.isUndefined(X)&&yn.isUndefined(X["Content-Type"])&&(X["Content-Type"]=g)}function bo(){var X;return(typeof XMLHttpRequest!="undefined"||typeof process!="undefined"&&Object.prototype.toString.call(process)==="[object process]")&&(X=ri),X}function Zo(X,g,G){if(yn.isString(X))try{return(g||JSON.parse)(X),yn.trim(X)}catch(S){if(S.name!=="SyntaxError")throw S}return(G||JSON.stringify)(X)}var gr={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:bo(),transformRequest:[function(g,G){return ii(G,"Accept"),ii(G,"Content-Type"),yn.isFormData(g)||yn.isArrayBuffer(g)||yn.isBuffer(g)||yn.isStream(g)||yn.isFile(g)||yn.isBlob(g)?g:yn.isArrayBufferView(g)?g.buffer:yn.isURLSearchParams(g)?(oi(G,"application/x-www-form-urlencoded;charset=utf-8"),g.toString()):yn.isObject(g)||G&&G["Content-Type"]==="application/json"?(oi(G,"application/json"),Zo(g)):g}],transformResponse:[function(g){var G=this.transitional||gr.transitional,S=G&&G.silentJSONParsing,T=G&&G.forcedJSONParsing,J=!S&&this.responseType==="json";if(J||T&&yn.isString(g)&&g.length)try{return JSON.parse(g)}catch(K){if(J)throw K.name==="SyntaxError"?yo(K,this,"E_JSON_PARSE"):K}return g}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(g){return g>=200&&g<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};yn.forEach(["delete","get","head"],function(g){gr.headers[g]={}}),yn.forEach(["post","put","patch"],function(g){gr.headers[g]=yn.merge(vo)});var yr=gr,Go=xn,Xo=yr,Wo=function(g,G,S){var T=this||Xo;return Go.forEach(S,function(K){g=K.call(T,g,G)}),g},ui=function(g){return!!(g&&g.__CANCEL__)},si=xn,Ur=Wo,Ro=ui,Vo=yr,wo=pr;function kr(X){if(X.cancelToken&&X.cancelToken.throwIfRequested(),X.signal&&X.signal.aborted)throw new wo("canceled")}var So=function(g){kr(g),g.headers=g.headers||{},g.data=Ur.call(g,g.data,g.headers,g.transformRequest),g.headers=si.merge(g.headers.common||{},g.headers[g.method]||{},g.headers),si.forEach(["delete","get","head","post","put","patch","common"],function(T){delete g.headers[T]});var G=g.adapter||Vo.adapter;return G(g).then(function(T){return kr(g),T.data=Ur.call(g,T.data,T.headers,g.transformResponse),T},function(T){return Ro(T)||(kr(g),T&&T.response&&(T.response.data=Ur.call(g,T.response.data,T.response.headers,g.transformResponse))),Promise.reject(T)})},Jn=xn,li=function(g,G){G=G||{};var S={};function T(tt,Ft){return Jn.isPlainObject(tt)&&Jn.isPlainObject(Ft)?Jn.merge(tt,Ft):Jn.isPlainObject(Ft)?Jn.merge({},Ft):Jn.isArray(Ft)?Ft.slice():Ft}function J(tt){if(Jn.isUndefined(G[tt])){if(!Jn.isUndefined(g[tt]))return T(void 0,g[tt])}else return T(g[tt],G[tt])}function K(tt){if(!Jn.isUndefined(G[tt]))return T(void 0,G[tt])}function U(tt){if(Jn.isUndefined(G[tt])){if(!Jn.isUndefined(g[tt]))return T(void 0,g[tt])}else return T(void 0,G[tt])}function et(tt){if(tt in G)return T(g[tt],G[tt]);if(tt in g)return T(void 0,g[tt])}var Ye={url:K,method:K,data:K,baseURL:U,transformRequest:U,transformResponse:U,paramsSerializer:U,timeout:U,timeoutMessage:U,withCredentials:U,adapter:U,responseType:U,xsrfCookieName:U,xsrfHeaderName:U,onUploadProgress:U,onDownloadProgress:U,decompress:U,maxContentLength:U,maxBodyLength:U,transport:U,httpAgent:U,httpsAgent:U,cancelToken:U,socketPath:U,responseEncoding:U,validateStatus:et};return Jn.forEach(Object.keys(g).concat(Object.keys(G)),function(Ft){var Pe=Ye[Ft]||J,se=Pe(Ft);Jn.isUndefined(se)&&Pe!==et||(S[Ft]=se)}),S},ci={version:"0.25.0"},To=ci.version,Er={};["object","boolean","number","function","string","symbol"].forEach(function(X,g){Er[X]=function(S){return typeof S===X||"a"+(g<1?"n ":" ")+X}});var ai={};Er.transitional=function(g,G,S){function T(J,K){return"[Axios v"+To+"] Transitional option '"+J+"'"+K+(S?". "+S:"")}return function(J,K,U){if(g===!1)throw new Error(T(K," has been removed"+(G?" in "+G:"")));return G&&!ai[K]&&(ai[K]=!0,console.warn(T(K," has been deprecated since v"+G+" and will be removed in the near future"))),g?g(J,K,U):!0}};function Fo(X,g,G){if(typeof X!="object")throw new TypeError("options must be an object");for(var S=Object.keys(X),T=S.length;T-- >0;){var J=S[T],K=g[J];if(K){var U=X[J],et=U===void 0||K(U,J,X);if(et!==!0)throw new TypeError("option "+J+" must be "+et);continue}if(G!==!0)throw Error("Unknown option "+J)}}var xo={assertOptions:Fo,validators:Er},hi=xn,Io=qr,fi=zi,di=So,vr=li,pi=xo,$n=pi.validators;function ur(X){this.defaults=X,this.interceptors={request:new fi,response:new fi}}ur.prototype.request=function(g,G){if(typeof g=="string"?(G=G||{},G.url=g):G=g||{},!G.url)throw new Error("Provided config url is not valid");G=vr(this.defaults,G),G.method?G.method=G.method.toLowerCase():this.defaults.method?G.method=this.defaults.method.toLowerCase():G.method="get";var S=G.transitional;S!==void 0&&pi.assertOptions(S,{silentJSONParsing:$n.transitional($n.boolean),forcedJSONParsing:$n.transitional($n.boolean),clarifyTimeoutError:$n.transitional($n.boolean)},!1);var T=[],J=!0;this.interceptors.request.forEach(function(se){typeof se.runWhen=="function"&&se.runWhen(G)===!1||(J=J&&se.synchronous,T.unshift(se.fulfilled,se.rejected))});var K=[];this.interceptors.response.forEach(function(se){K.push(se.fulfilled,se.rejected)});var U;if(!J){var et=[di,void 0];for(Array.prototype.unshift.apply(et,T),et=et.concat(K),U=Promise.resolve(G);et.length;)U=U.then(et.shift(),et.shift());return U}for(var Ye=G;T.length;){var tt=T.shift(),Ft=T.shift();try{Ye=tt(Ye)}catch(Pe){Ft(Pe);break}}try{U=di(Ye)}catch(Pe){return Promise.reject(Pe)}for(;K.length;)U=U.then(K.shift(),K.shift());return U},ur.prototype.getUri=function(g){if(!g.url)throw new Error("Provided config url is not valid");return g=vr(this.defaults,g),Io(g.url,g.params,g.paramsSerializer).replace(/^\?/,"")},hi.forEach(["delete","get","head","options"],function(g){ur.prototype[g]=function(G,S){return this.request(vr(S||{},{method:g,url:G,data:(S||{}).data}))}}),hi.forEach(["post","put","patch"],function(g){ur.prototype[g]=function(G,S,T){return this.request(vr(T||{},{method:g,url:G,data:S}))}});var Lo=ur,No=pr;function qn(X){if(typeof X!="function")throw new TypeError("executor must be a function.");var g;this.promise=new Promise(function(T){g=T});var G=this;this.promise.then(function(S){if(!!G._listeners){var T,J=G._listeners.length;for(T=0;T<J;T++)G._listeners[T](S);G._listeners=null}}),this.promise.then=function(S){var T,J=new Promise(function(K){G.subscribe(K),T=K}).then(S);return J.cancel=function(){G.unsubscribe(T)},J},X(function(T){G.reason||(G.reason=new No(T),g(G.reason))})}qn.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},qn.prototype.subscribe=function(g){if(this.reason){g(this.reason);return}this._listeners?this._listeners.push(g):this._listeners=[g]},qn.prototype.unsubscribe=function(g){if(!!this._listeners){var G=this._listeners.indexOf(g);G!==-1&&this._listeners.splice(G,1)}},qn.source=function(){var g,G=new qn(function(T){g=T});return{token:G,cancel:g}};var Yo=qn,Jo=function(g){return function(S){return g.apply(null,S)}},Uo=xn,ko=function(g){return Uo.isObject(g)&&g.isAxiosError===!0},mi=xn,Eo=_r,br=Lo,Ho=li,Co=yr;function gi(X){var g=new br(X),G=Eo(br.prototype.request,g);return mi.extend(G,br.prototype,g),mi.extend(G,g),G.create=function(T){return gi(Ho(X,T))},G}var An=gi(Co);An.Axios=br,An.Cancel=pr,An.CancelToken=Yo,An.isCancel=ui,An.VERSION=ci.version,An.all=function(g){return Promise.all(g)},An.spread=Jo,An.isAxiosError=ko,zr.exports=An,zr.exports.default=An;function jo(){return globalThis._vonageMediaProcessorMetadata}for(var Ko=[],Hr=0;Hr<256;++Hr)Ko.push((Hr+256).toString(16).substr(1));const Bn=new WeakMap,Zr=new WeakMap,sr=new WeakMap,Cr=Symbol("anyProducer"),yi=Promise.resolve(),Gr=Symbol("listenerAdded"),Xr=Symbol("listenerRemoved");let jr=!1;function tr(X){if(typeof X!="string"&&typeof X!="symbol")throw new TypeError("eventName must be a string or a symbol")}function Wr(X){if(typeof X!="function")throw new TypeError("listener must be a function")}function er(X,g){const G=Zr.get(X);return G.has(g)||G.set(g,new Set),G.get(g)}function lr(X,g){const G=typeof g=="string"||typeof g=="symbol"?g:Cr,S=sr.get(X);return S.has(G)||S.set(G,new Set),S.get(G)}function Ao(X,g,G){const S=sr.get(X);if(S.has(g))for(const T of S.get(g))T.enqueue(G);if(S.has(Cr)){const T=Promise.all([g,G]);for(const J of S.get(Cr))J.enqueue(T)}}function vi(X,g){g=Array.isArray(g)?g:[g];let G=!1,S=()=>{},T=[];const J={enqueue(K){T.push(K),S()},finish(){G=!0,S()}};for(const K of g)lr(X,K).add(J);return{async next(){return T?T.length===0?G?(T=void 0,this.next()):(await new Promise(K=>{S=K}),this.next()):{done:!1,value:await T.shift()}:{done:!0}},async return(K){T=void 0;for(const U of g)lr(X,U).delete(J);return S(),arguments.length>0?{done:!0,value:await K}:{done:!0}},[Symbol.asyncIterator](){return this}}}function bi(X){if(X===void 0)return Zi;if(!Array.isArray(X))throw new TypeError("`methodNames` must be an array of strings");for(const g of X)if(!Zi.includes(g))throw typeof g!="string"?new TypeError("`methodNames` element must be a string"):new Error(`${g} is not Emittery method`);return X}const Kr=X=>X===Gr||X===Xr;class nr{static mixin(g,G){return G=bi(G),S=>{if(typeof S!="function")throw new TypeError("`target` must be function");for(const K of G)if(S.prototype[K]!==void 0)throw new Error(`The property \`${K}\` already exists on \`target\``);function T(){return Object.defineProperty(this,g,{enumerable:!1,value:new nr}),this[g]}Object.defineProperty(S.prototype,g,{enumerable:!1,get:T});const J=K=>function(...U){return this[g][K](...U)};for(const K of G)Object.defineProperty(S.prototype,K,{enumerable:!1,value:J(K)});return S}}static get isDebugEnabled(){if(typeof process!="object")return jr;const{env:g}=process||{env:{}};return g.DEBUG==="emittery"||g.DEBUG==="*"||jr}static set isDebugEnabled(g){jr=g}constructor(g={}){Bn.set(this,new Set),Zr.set(this,new Map),sr.set(this,new Map),this.debug=g.debug||{},this.debug.enabled===void 0&&(this.debug.enabled=!1),this.debug.logger||(this.debug.logger=(G,S,T,J)=>{J=JSON.stringify(J),typeof T=="symbol"&&(T=T.toString());const K=new Date,U=`${K.getHours()}:${K.getMinutes()}:${K.getSeconds()}.${K.getMilliseconds()}`;console.log(`[${U}][emittery:${G}][${S}] Event Name: ${T}
|
|
3
|
-
data: ${J}`)})}logIfDebugEnabled(g,G,S){(nr.isDebugEnabled||this.debug.enabled)&&this.debug.logger(g,this.debug.name,G,S)}on(g,G){Wr(G),g=Array.isArray(g)?g:[g];for(const S of g)tr(S),er(this,S).add(G),this.logIfDebugEnabled("subscribe",S,void 0),Kr(S)||this.emit(Gr,{eventName:S,listener:G});return this.off.bind(this,g,G)}off(g,G){Wr(G),g=Array.isArray(g)?g:[g];for(const S of g)tr(S),er(this,S).delete(G),this.logIfDebugEnabled("unsubscribe",S,void 0),Kr(S)||this.emit(Xr,{eventName:S,listener:G})}once(g){return new Promise(G=>{const S=this.on(g,T=>{S(),G(T)})})}events(g){g=Array.isArray(g)?g:[g];for(const G of g)tr(G);return vi(this,g)}async emit(g,G){tr(g),this.logIfDebugEnabled("emit",g,G),Ao(this,g,G);const S=er(this,g),T=Bn.get(this),J=[...S],K=Kr(g)?[]:[...T];await yi,await Promise.all([...J.map(async U=>{if(S.has(U))return U(G)}),...K.map(async U=>{if(T.has(U))return U(g,G)})])}async emitSerial(g,G){tr(g),this.logIfDebugEnabled("emitSerial",g,G);const S=er(this,g),T=Bn.get(this),J=[...S],K=[...T];await yi;for(const U of J)S.has(U)&&await U(G);for(const U of K)T.has(U)&&await U(g,G)}onAny(g){return Wr(g),this.logIfDebugEnabled("subscribeAny",void 0,void 0),Bn.get(this).add(g),this.emit(Gr,{listener:g}),this.offAny.bind(this,g)}anyEvent(){return vi(this)}offAny(g){Wr(g),this.logIfDebugEnabled("unsubscribeAny",void 0,void 0),this.emit(Xr,{listener:g}),Bn.get(this).delete(g)}clearListeners(g){g=Array.isArray(g)?g:[g];for(const G of g)if(this.logIfDebugEnabled("clear",G,void 0),typeof G=="string"||typeof G=="symbol"){er(this,G).clear();const S=lr(this,G);for(const T of S)T.finish();S.clear()}else{Bn.get(this).clear();for(const S of Zr.get(this).values())S.clear();for(const S of sr.get(this).values()){for(const T of S)T.finish();S.clear()}}}listenerCount(g){g=Array.isArray(g)?g:[g];let G=0;for(const S of g){if(typeof S=="string"){G+=Bn.get(this).size+er(this,S).size+lr(this,S).size+lr(this).size;continue}typeof S!="undefined"&&tr(S),G+=Bn.get(this).size;for(const T of Zr.get(this).values())G+=T.size;for(const T of sr.get(this).values())G+=T.size}return G}bindMethods(g,G){if(typeof g!="object"||g===null)throw new TypeError("`target` must be an object");G=bi(G);for(const S of G){if(g[S]!==void 0)throw new Error(`The property \`${S}\` already exists on \`target\``);Object.defineProperty(g,S,{enumerable:!1,value:this[S].bind(this)})}}}const Zi=Object.getOwnPropertyNames(nr.prototype).filter(X=>X!=="constructor");Object.defineProperty(nr,"listenerAdded",{value:Gr,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(nr,"listenerRemoved",{value:Xr,writable:!1,enumerable:!0,configurable:!1});var Gi;(function(X){X.FPS_DROP="fps_drop"})(Gi||(Gi={}));class Oo{constructor(){this.processor_=null,this.generator_=null}init(g){return new Promise((G,S)=>{try{this.processor_=new MediaStreamTrackProcessor(g)}catch(T){console.log(`[InsertableStreamHelper] MediaStreamTrackProcessor failed: ${T}`),S(T)}try{g.kind==="audio"?this.generator_=new MediaStreamTrackGenerator({kind:"audio"}):g.kind==="video"?this.generator_=new MediaStreamTrackGenerator({kind:"video"}):S("kind not supported")}catch(T){console.log(`[InsertableStreamHelper] MediaStreamTrackGenerator failed: ${T}`),S(T)}G()})}getReadable(){return this.processor_.readable}getWriteable(){return this.generator_.writable}getProccesorTrack(){return this.generator_}}class Po{constructor(g){this.insertableStreamHelper_=new Oo,this.mediaProcessor_=g}setTrack(g){return new Promise((G,S)=>{this.insertableStreamHelper_.init(g).then(()=>{this.mediaProcessor_.transform(this.insertableStreamHelper_.getReadable(),this.insertableStreamHelper_.getWriteable()).then(()=>{G(this.insertableStreamHelper_.getProccesorTrack())}).catch(T=>{S(T)})}).catch(T=>{S(T)})})}destroy(){return new Promise((g,G)=>{this.mediaProcessor_?this.mediaProcessor_.destroy().then(()=>{g()}).catch(S=>{G(S)}):G("no processor")})}}const Xi="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NsYXNzIFB7fVAudXBkYXRlcz17dHJhbnNmb3JtZXJfbmV3OiJOZXcgdHJhbnNmb3JtZXIiLHRyYW5zZm9ybWVyX251bGw6Ik51bGwgdHJhbnNmb3JtZXIifSxQLmVycm9ycz17dHJhbnNmb3JtZXJfbm9uZToiTm8gdHJhbnNmb3JtZXJzIHByb3ZpZGVkIix0cmFuc2Zvcm1lcl9zdGFydDoiQ2Fubm90IHN0YXJ0IHRyYW5zZm9ybWVyIix0cmFuc2Zvcm1lcl90cmFuc2Zvcm06IkNhbm5vdCB0cmFuc2Zvcm0gZnJhbWUiLHRyYW5zZm9ybWVyX2ZsdXNoOiJDYW5ub3QgZmx1c2ggdHJhbnNmb3JtZXIiLHJlYWRhYmxlX251bGw6IlJlYWRhYmxlIGlzIG51bGwiLHdyaXRhYmxlX251bGw6IldyaXRhYmxlIGlzIG51bGwifTt2YXIgZWU9e2V4cG9ydHM6e319LEVlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBuPW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoKSxvPTA7bzxuLmxlbmd0aDtvKyspbltvXT1hcmd1bWVudHNbb107cmV0dXJuIGUuYXBwbHkodCxuKX19LHJ0PUVlLFI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiB0ZShyKXtyZXR1cm4gQXJyYXkuaXNBcnJheShyKX1mdW5jdGlvbiByZShyKXtyZXR1cm4gdHlwZW9mIHI9PSJ1bmRlZmluZWQifWZ1bmN0aW9uIHN0KHIpe3JldHVybiByIT09bnVsbCYmIXJlKHIpJiZyLmNvbnN0cnVjdG9yIT09bnVsbCYmIXJlKHIuY29uc3RydWN0b3IpJiZ0eXBlb2Ygci5jb25zdHJ1Y3Rvci5pc0J1ZmZlcj09ImZ1bmN0aW9uIiYmci5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihyKX1mdW5jdGlvbiBUZShyKXtyZXR1cm4gUi5jYWxsKHIpPT09IltvYmplY3QgQXJyYXlCdWZmZXJdIn1mdW5jdGlvbiBudChyKXtyZXR1cm4gUi5jYWxsKHIpPT09IltvYmplY3QgRm9ybURhdGFdIn1mdW5jdGlvbiBpdChyKXt2YXIgZTtyZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyIT0idW5kZWZpbmVkIiYmQXJyYXlCdWZmZXIuaXNWaWV3P2U9QXJyYXlCdWZmZXIuaXNWaWV3KHIpOmU9ciYmci5idWZmZXImJlRlKHIuYnVmZmVyKSxlfWZ1bmN0aW9uIG90KHIpe3JldHVybiB0eXBlb2Ygcj09InN0cmluZyJ9ZnVuY3Rpb24gYXQocil7cmV0dXJuIHR5cGVvZiByPT0ibnVtYmVyIn1mdW5jdGlvbiBQZShyKXtyZXR1cm4gciE9PW51bGwmJnR5cGVvZiByPT0ib2JqZWN0In1mdW5jdGlvbiBEKHIpe2lmKFIuY2FsbChyKSE9PSJbb2JqZWN0IE9iamVjdF0iKXJldHVybiExO3ZhciBlPU9iamVjdC5nZXRQcm90b3R5cGVPZihyKTtyZXR1cm4gZT09PW51bGx8fGU9PT1PYmplY3QucHJvdG90eXBlfWZ1bmN0aW9uIHV0KHIpe3JldHVybiBSLmNhbGwocik9PT0iW29iamVjdCBEYXRlXSJ9ZnVuY3Rpb24gbHQocil7cmV0dXJuIFIuY2FsbChyKT09PSJbb2JqZWN0IEZpbGVdIn1mdW5jdGlvbiBjdChyKXtyZXR1cm4gUi5jYWxsKHIpPT09IltvYmplY3QgQmxvYl0ifWZ1bmN0aW9uIFJlKHIpe3JldHVybiBSLmNhbGwocik9PT0iW29iamVjdCBGdW5jdGlvbl0ifWZ1bmN0aW9uIGZ0KHIpe3JldHVybiBQZShyKSYmUmUoci5waXBlKX1mdW5jdGlvbiBodChyKXtyZXR1cm4gUi5jYWxsKHIpPT09IltvYmplY3QgVVJMU2VhcmNoUGFyYW1zXSJ9ZnVuY3Rpb24gZHQocil7cmV0dXJuIHIudHJpbT9yLnRyaW0oKTpyLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX1mdW5jdGlvbiBwdCgpe3JldHVybiB0eXBlb2YgbmF2aWdhdG9yIT0idW5kZWZpbmVkIiYmKG5hdmlnYXRvci5wcm9kdWN0PT09IlJlYWN0TmF0aXZlInx8bmF2aWdhdG9yLnByb2R1Y3Q9PT0iTmF0aXZlU2NyaXB0Inx8bmF2aWdhdG9yLnByb2R1Y3Q9PT0iTlMiKT8hMTp0eXBlb2Ygd2luZG93IT0idW5kZWZpbmVkIiYmdHlwZW9mIGRvY3VtZW50IT0idW5kZWZpbmVkIn1mdW5jdGlvbiBzZShyLGUpe2lmKCEocj09PW51bGx8fHR5cGVvZiByPT0idW5kZWZpbmVkIikpaWYodHlwZW9mIHIhPSJvYmplY3QiJiYocj1bcl0pLHRlKHIpKWZvcih2YXIgdD0wLHM9ci5sZW5ndGg7dDxzO3QrKyllLmNhbGwobnVsbCxyW3RdLHQscik7ZWxzZSBmb3IodmFyIG4gaW4gcilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixuKSYmZS5jYWxsKG51bGwscltuXSxuLHIpfWZ1bmN0aW9uIG5lKCl7dmFyIHI9e307ZnVuY3Rpb24gZShuLG8pe0QocltvXSkmJkQobik/cltvXT1uZShyW29dLG4pOkQobik/cltvXT1uZSh7fSxuKTp0ZShuKT9yW29dPW4uc2xpY2UoKTpyW29dPW59Zm9yKHZhciB0PTAscz1hcmd1bWVudHMubGVuZ3RoO3Q8czt0Kyspc2UoYXJndW1lbnRzW3RdLGUpO3JldHVybiByfWZ1bmN0aW9uIG10KHIsZSx0KXtyZXR1cm4gc2UoZSxmdW5jdGlvbihuLG8pe3QmJnR5cGVvZiBuPT0iZnVuY3Rpb24iP3Jbb109cnQobix0KTpyW29dPW59KSxyfWZ1bmN0aW9uIGd0KHIpe3JldHVybiByLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKHI9ci5zbGljZSgxKSkscn12YXIgcD17aXNBcnJheTp0ZSxpc0FycmF5QnVmZmVyOlRlLGlzQnVmZmVyOnN0LGlzRm9ybURhdGE6bnQsaXNBcnJheUJ1ZmZlclZpZXc6aXQsaXNTdHJpbmc6b3QsaXNOdW1iZXI6YXQsaXNPYmplY3Q6UGUsaXNQbGFpbk9iamVjdDpELGlzVW5kZWZpbmVkOnJlLGlzRGF0ZTp1dCxpc0ZpbGU6bHQsaXNCbG9iOmN0LGlzRnVuY3Rpb246UmUsaXNTdHJlYW06ZnQsaXNVUkxTZWFyY2hQYXJhbXM6aHQsaXNTdGFuZGFyZEJyb3dzZXJFbnY6cHQsZm9yRWFjaDpzZSxtZXJnZTpuZSxleHRlbmQ6bXQsdHJpbTpkdCxzdHJpcEJPTTpndH0sST1wO2Z1bmN0aW9uIFNlKHIpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQocikucmVwbGFjZSgvJTNBL2dpLCI6IikucmVwbGFjZSgvJTI0L2csIiQiKS5yZXBsYWNlKC8lMkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjAvZywiKyIpLnJlcGxhY2UoLyU1Qi9naSwiWyIpLnJlcGxhY2UoLyU1RC9naSwiXSIpfXZhciBDZT1mdW5jdGlvbihlLHQscyl7aWYoIXQpcmV0dXJuIGU7dmFyIG47aWYocyluPXModCk7ZWxzZSBpZihJLmlzVVJMU2VhcmNoUGFyYW1zKHQpKW49dC50b1N0cmluZygpO2Vsc2V7dmFyIG89W107SS5mb3JFYWNoKHQsZnVuY3Rpb24obCxtKXtsPT09bnVsbHx8dHlwZW9mIGw9PSJ1bmRlZmluZWQifHwoSS5pc0FycmF5KGwpP209bSsiW10iOmw9W2xdLEkuZm9yRWFjaChsLGZ1bmN0aW9uKGYpe0kuaXNEYXRlKGYpP2Y9Zi50b0lTT1N0cmluZygpOkkuaXNPYmplY3QoZikmJihmPUpTT04uc3RyaW5naWZ5KGYpKSxvLnB1c2goU2UobSkrIj0iK1NlKGYpKX0pKX0pLG49by5qb2luKCImIil9aWYobil7dmFyIGk9ZS5pbmRleE9mKCIjIik7aSE9PS0xJiYoZT1lLnNsaWNlKDAsaSkpLGUrPShlLmluZGV4T2YoIj8iKT09PS0xPyI/IjoiJiIpK259cmV0dXJuIGV9LHl0PXA7ZnVuY3Rpb24gcSgpe3RoaXMuaGFuZGxlcnM9W119cS5wcm90b3R5cGUudXNlPWZ1bmN0aW9uKGUsdCxzKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6ZSxyZWplY3RlZDp0LHN5bmNocm9ub3VzOnM/cy5zeW5jaHJvbm91czohMSxydW5XaGVuOnM/cy5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfSxxLnByb3RvdHlwZS5lamVjdD1mdW5jdGlvbihlKXt0aGlzLmhhbmRsZXJzW2VdJiYodGhpcy5oYW5kbGVyc1tlXT1udWxsKX0scS5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihlKXt5dC5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24ocyl7cyE9PW51bGwmJmUocyl9KX07dmFyIF90PXEsYnQ9cCx3dD1mdW5jdGlvbihlLHQpe2J0LmZvckVhY2goZSxmdW5jdGlvbihuLG8pe28hPT10JiZvLnRvVXBwZXJDYXNlKCk9PT10LnRvVXBwZXJDYXNlKCkmJihlW3RdPW4sZGVsZXRlIGVbb10pfSl9LE9lPWZ1bmN0aW9uKGUsdCxzLG4sbyl7cmV0dXJuIGUuY29uZmlnPXQscyYmKGUuY29kZT1zKSxlLnJlcXVlc3Q9bixlLnJlc3BvbnNlPW8sZS5pc0F4aW9zRXJyb3I9ITAsZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6dGhpcy5jb25maWcsY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMucmVzcG9uc2UmJnRoaXMucmVzcG9uc2Uuc3RhdHVzP3RoaXMucmVzcG9uc2Uuc3RhdHVzOm51bGx9fSxlfSx2dD1PZSxJZT1mdW5jdGlvbihlLHQscyxuLG8pe3ZhciBpPW5ldyBFcnJvcihlKTtyZXR1cm4gdnQoaSx0LHMsbixvKX0sRXQ9SWUsVHQ9ZnVuY3Rpb24oZSx0LHMpe3ZhciBuPXMuY29uZmlnLnZhbGlkYXRlU3RhdHVzOyFzLnN0YXR1c3x8IW58fG4ocy5zdGF0dXMpP2Uocyk6dChFdCgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK3Muc3RhdHVzLHMuY29uZmlnLG51bGwscy5yZXF1ZXN0LHMpKX0sSD1wLFB0PUguaXNTdGFuZGFyZEJyb3dzZXJFbnYoKT9mdW5jdGlvbigpe3JldHVybnt3cml0ZTpmdW5jdGlvbih0LHMsbixvLGksYSl7dmFyIGw9W107bC5wdXNoKHQrIj0iK2VuY29kZVVSSUNvbXBvbmVudChzKSksSC5pc051bWJlcihuKSYmbC5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUobikudG9HTVRTdHJpbmcoKSksSC5pc1N0cmluZyhvKSYmbC5wdXNoKCJwYXRoPSIrbyksSC5pc1N0cmluZyhpKSYmbC5wdXNoKCJkb21haW49IitpKSxhPT09ITAmJmwucHVzaCgic2VjdXJlIiksZG9jdW1lbnQuY29va2llPWwuam9pbigiOyAiKX0scmVhZDpmdW5jdGlvbih0KXt2YXIgcz1kb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgiKF58O1xccyopKCIrdCsiKT0oW147XSopIikpO3JldHVybiBzP2RlY29kZVVSSUNvbXBvbmVudChzWzNdKTpudWxsfSxyZW1vdmU6ZnVuY3Rpb24odCl7dGhpcy53cml0ZSh0LCIiLERhdGUubm93KCktODY0ZTUpfX19KCk6ZnVuY3Rpb24oKXtyZXR1cm57d3JpdGU6ZnVuY3Rpb24oKXt9LHJlYWQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0scmVtb3ZlOmZ1bmN0aW9uKCl7fX19KCksUnQ9ZnVuY3Rpb24oZSl7cmV0dXJuL14oW2Etel1bYS16XGQrXC0uXSo6KT9cL1wvL2kudGVzdChlKX0sU3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD9lLnJlcGxhY2UoL1wvKyQvLCIiKSsiLyIrdC5yZXBsYWNlKC9eXC8rLywiIik6ZX0sQ3Q9UnQsT3Q9U3QsSXQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmIUN0KHQpP090KGUsdCk6dH0saWU9cCx4dD1bImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdLE10PWZ1bmN0aW9uKGUpe3ZhciB0PXt9LHMsbixvO3JldHVybiBlJiZpZS5mb3JFYWNoKGUuc3BsaXQoYApgKSxmdW5jdGlvbihhKXtpZihvPWEuaW5kZXhPZigiOiIpLHM9aWUudHJpbShhLnN1YnN0cigwLG8pKS50b0xvd2VyQ2FzZSgpLG49aWUudHJpbShhLnN1YnN0cihvKzEpKSxzKXtpZih0W3NdJiZ4dC5pbmRleE9mKHMpPj0wKXJldHVybjtzPT09InNldC1jb29raWUiP3Rbc109KHRbc10/dFtzXTpbXSkuY29uY2F0KFtuXSk6dFtzXT10W3NdP3Rbc10rIiwgIituOm59fSksdH0seGU9cCxBdD14ZS5pc1N0YW5kYXJkQnJvd3NlckVudigpP2Z1bmN0aW9uKCl7dmFyIGU9Lyhtc2llfHRyaWRlbnQpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSx0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxzO2Z1bmN0aW9uIG4obyl7dmFyIGk9bztyZXR1cm4gZSYmKHQuc2V0QXR0cmlidXRlKCJocmVmIixpKSxpPXQuaHJlZiksdC5zZXRBdHRyaWJ1dGUoImhyZWYiLGkpLHtocmVmOnQuaHJlZixwcm90b2NvbDp0LnByb3RvY29sP3QucHJvdG9jb2wucmVwbGFjZSgvOiQvLCIiKToiIixob3N0OnQuaG9zdCxzZWFyY2g6dC5zZWFyY2g/dC5zZWFyY2gucmVwbGFjZSgvXlw/LywiIik6IiIsaGFzaDp0Lmhhc2g/dC5oYXNoLnJlcGxhY2UoL14jLywiIik6IiIsaG9zdG5hbWU6dC5ob3N0bmFtZSxwb3J0OnQucG9ydCxwYXRobmFtZTp0LnBhdGhuYW1lLmNoYXJBdCgwKT09PSIvIj90LnBhdGhuYW1lOiIvIit0LnBhdGhuYW1lfX1yZXR1cm4gcz1uKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxmdW5jdGlvbihpKXt2YXIgYT14ZS5pc1N0cmluZyhpKT9uKGkpOmk7cmV0dXJuIGEucHJvdG9jb2w9PT1zLnByb3RvY29sJiZhLmhvc3Q9PT1zLmhvc3R9fSgpOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuITB9fSgpO2Z1bmN0aW9uIG9lKHIpe3RoaXMubWVzc2FnZT1yfW9lLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJDYW5jZWwiKyh0aGlzLm1lc3NhZ2U/IjogIit0aGlzLm1lc3NhZ2U6IiIpfSxvZS5wcm90b3R5cGUuX19DQU5DRUxfXz0hMDt2YXIgaj1vZSxKPXAsa3Q9VHQsTnQ9UHQsVXQ9Q2UsQnQ9SXQsJHQ9TXQsTHQ9QXQsYWU9SWUsRnQ9VyxEdD1qLE1lPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihzLG4pe3ZhciBvPWUuZGF0YSxpPWUuaGVhZGVycyxhPWUucmVzcG9uc2VUeXBlLGw7ZnVuY3Rpb24gbSgpe2UuY2FuY2VsVG9rZW4mJmUuY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUobCksZS5zaWduYWwmJmUuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixsKX1KLmlzRm9ybURhdGEobykmJmRlbGV0ZSBpWyJDb250ZW50LVR5cGUiXTt2YXIgdT1uZXcgWE1MSHR0cFJlcXVlc3Q7aWYoZS5hdXRoKXt2YXIgZj1lLmF1dGgudXNlcm5hbWV8fCIiLFQ9ZS5hdXRoLnBhc3N3b3JkP3VuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChlLmF1dGgucGFzc3dvcmQpKToiIjtpLkF1dGhvcml6YXRpb249IkJhc2ljICIrYnRvYShmKyI6IitUKX12YXIgZz1CdChlLmJhc2VVUkwsZS51cmwpO3Uub3BlbihlLm1ldGhvZC50b1VwcGVyQ2FzZSgpLFV0KGcsZS5wYXJhbXMsZS5wYXJhbXNTZXJpYWxpemVyKSwhMCksdS50aW1lb3V0PWUudGltZW91dDtmdW5jdGlvbiBldCgpe2lmKCEhdSl7dmFyIHY9ImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiB1PyR0KHUuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpOm51bGwsQj0hYXx8YT09PSJ0ZXh0Inx8YT09PSJqc29uIj91LnJlc3BvbnNlVGV4dDp1LnJlc3BvbnNlLE89e2RhdGE6QixzdGF0dXM6dS5zdGF0dXMsc3RhdHVzVGV4dDp1LnN0YXR1c1RleHQsaGVhZGVyczp2LGNvbmZpZzplLHJlcXVlc3Q6dX07a3QoZnVuY3Rpb24odmUpe3ModmUpLG0oKX0sZnVuY3Rpb24odmUpe24odmUpLG0oKX0sTyksdT1udWxsfX1pZigib25sb2FkZW5kImluIHU/dS5vbmxvYWRlbmQ9ZXQ6dS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshdXx8dS5yZWFkeVN0YXRlIT09NHx8dS5zdGF0dXM9PT0wJiYhKHUucmVzcG9uc2VVUkwmJnUucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKT09PTApfHxzZXRUaW1lb3V0KGV0KX0sdS5vbmFib3J0PWZ1bmN0aW9uKCl7IXV8fChuKGFlKCJSZXF1ZXN0IGFib3J0ZWQiLGUsIkVDT05OQUJPUlRFRCIsdSkpLHU9bnVsbCl9LHUub25lcnJvcj1mdW5jdGlvbigpe24oYWUoIk5ldHdvcmsgRXJyb3IiLGUsbnVsbCx1KSksdT1udWxsfSx1Lm9udGltZW91dD1mdW5jdGlvbigpe3ZhciBCPWUudGltZW91dD8idGltZW91dCBvZiAiK2UudGltZW91dCsibXMgZXhjZWVkZWQiOiJ0aW1lb3V0IGV4Y2VlZGVkIixPPWUudHJhbnNpdGlvbmFsfHxGdC50cmFuc2l0aW9uYWw7ZS50aW1lb3V0RXJyb3JNZXNzYWdlJiYoQj1lLnRpbWVvdXRFcnJvck1lc3NhZ2UpLG4oYWUoQixlLE8uY2xhcmlmeVRpbWVvdXRFcnJvcj8iRVRJTUVET1VUIjoiRUNPTk5BQk9SVEVEIix1KSksdT1udWxsfSxKLmlzU3RhbmRhcmRCcm93c2VyRW52KCkpe3ZhciB0dD0oZS53aXRoQ3JlZGVudGlhbHN8fEx0KGcpKSYmZS54c3JmQ29va2llTmFtZT9OdC5yZWFkKGUueHNyZkNvb2tpZU5hbWUpOnZvaWQgMDt0dCYmKGlbZS54c3JmSGVhZGVyTmFtZV09dHQpfSJzZXRSZXF1ZXN0SGVhZGVyImluIHUmJkouZm9yRWFjaChpLGZ1bmN0aW9uKEIsTyl7dHlwZW9mIG89PSJ1bmRlZmluZWQiJiZPLnRvTG93ZXJDYXNlKCk9PT0iY29udGVudC10eXBlIj9kZWxldGUgaVtPXTp1LnNldFJlcXVlc3RIZWFkZXIoTyxCKX0pLEouaXNVbmRlZmluZWQoZS53aXRoQ3JlZGVudGlhbHMpfHwodS53aXRoQ3JlZGVudGlhbHM9ISFlLndpdGhDcmVkZW50aWFscyksYSYmYSE9PSJqc29uIiYmKHUucmVzcG9uc2VUeXBlPWUucmVzcG9uc2VUeXBlKSx0eXBlb2YgZS5vbkRvd25sb2FkUHJvZ3Jlc3M9PSJmdW5jdGlvbiImJnUuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGUub25Eb3dubG9hZFByb2dyZXNzKSx0eXBlb2YgZS5vblVwbG9hZFByb2dyZXNzPT0iZnVuY3Rpb24iJiZ1LnVwbG9hZCYmdS51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGUub25VcGxvYWRQcm9ncmVzcyksKGUuY2FuY2VsVG9rZW58fGUuc2lnbmFsKSYmKGw9ZnVuY3Rpb24odil7IXV8fChuKCF2fHx2JiZ2LnR5cGU/bmV3IER0KCJjYW5jZWxlZCIpOnYpLHUuYWJvcnQoKSx1PW51bGwpfSxlLmNhbmNlbFRva2VuJiZlLmNhbmNlbFRva2VuLnN1YnNjcmliZShsKSxlLnNpZ25hbCYmKGUuc2lnbmFsLmFib3J0ZWQ/bCgpOmUuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixsKSkpLG98fChvPW51bGwpLHUuc2VuZChvKX0pfSxoPXAsQWU9d3QscXQ9T2UsSHQ9eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifTtmdW5jdGlvbiBrZShyLGUpeyFoLmlzVW5kZWZpbmVkKHIpJiZoLmlzVW5kZWZpbmVkKHJbIkNvbnRlbnQtVHlwZSJdKSYmKHJbIkNvbnRlbnQtVHlwZSJdPWUpfWZ1bmN0aW9uIGp0KCl7dmFyIHI7cmV0dXJuKHR5cGVvZiBYTUxIdHRwUmVxdWVzdCE9InVuZGVmaW5lZCJ8fHR5cGVvZiBwcm9jZXNzIT0idW5kZWZpbmVkIiYmT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHByb2Nlc3MpPT09IltvYmplY3QgcHJvY2Vzc10iKSYmKHI9TWUpLHJ9ZnVuY3Rpb24gSnQocixlLHQpe2lmKGguaXNTdHJpbmcocikpdHJ5e3JldHVybihlfHxKU09OLnBhcnNlKShyKSxoLnRyaW0ocil9Y2F0Y2gocyl7aWYocy5uYW1lIT09IlN5bnRheEVycm9yIil0aHJvdyBzfXJldHVybih0fHxKU09OLnN0cmluZ2lmeSkocil9dmFyIFY9e3RyYW5zaXRpb25hbDp7c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX0sYWRhcHRlcjpqdCgpLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKGUsdCl7cmV0dXJuIEFlKHQsIkFjY2VwdCIpLEFlKHQsIkNvbnRlbnQtVHlwZSIpLGguaXNGb3JtRGF0YShlKXx8aC5pc0FycmF5QnVmZmVyKGUpfHxoLmlzQnVmZmVyKGUpfHxoLmlzU3RyZWFtKGUpfHxoLmlzRmlsZShlKXx8aC5pc0Jsb2IoZSk/ZTpoLmlzQXJyYXlCdWZmZXJWaWV3KGUpP2UuYnVmZmVyOmguaXNVUkxTZWFyY2hQYXJhbXMoZSk/KGtlKHQsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiksZS50b1N0cmluZygpKTpoLmlzT2JqZWN0KGUpfHx0JiZ0WyJDb250ZW50LVR5cGUiXT09PSJhcHBsaWNhdGlvbi9qc29uIj8oa2UodCwiYXBwbGljYXRpb24vanNvbiIpLEp0KGUpKTplfV0sdHJhbnNmb3JtUmVzcG9uc2U6W2Z1bmN0aW9uKGUpe3ZhciB0PXRoaXMudHJhbnNpdGlvbmFsfHxWLnRyYW5zaXRpb25hbCxzPXQmJnQuc2lsZW50SlNPTlBhcnNpbmcsbj10JiZ0LmZvcmNlZEpTT05QYXJzaW5nLG89IXMmJnRoaXMucmVzcG9uc2VUeXBlPT09Impzb24iO2lmKG98fG4mJmguaXNTdHJpbmcoZSkmJmUubGVuZ3RoKXRyeXtyZXR1cm4gSlNPTi5wYXJzZShlKX1jYXRjaChpKXtpZihvKXRocm93IGkubmFtZT09PSJTeW50YXhFcnJvciI/cXQoaSx0aGlzLCJFX0pTT05fUEFSU0UiKTppfXJldHVybiBlfV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PTIwMCYmZTwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoifX19O2guZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiXSxmdW5jdGlvbihlKXtWLmhlYWRlcnNbZV09e319KSxoLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSxmdW5jdGlvbihlKXtWLmhlYWRlcnNbZV09aC5tZXJnZShIdCl9KTt2YXIgVz1WLFZ0PXAsV3Q9VyxHdD1mdW5jdGlvbihlLHQscyl7dmFyIG49dGhpc3x8V3Q7cmV0dXJuIFZ0LmZvckVhY2gocyxmdW5jdGlvbihpKXtlPWkuY2FsbChuLGUsdCl9KSxlfSxOZT1mdW5jdGlvbihlKXtyZXR1cm4hIShlJiZlLl9fQ0FOQ0VMX18pfSxVZT1wLHVlPUd0LHp0PU5lLFF0PVcsWHQ9ajtmdW5jdGlvbiBsZShyKXtpZihyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnRocm93SWZSZXF1ZXN0ZWQoKSxyLnNpZ25hbCYmci5zaWduYWwuYWJvcnRlZCl0aHJvdyBuZXcgWHQoImNhbmNlbGVkIil9dmFyIEt0PWZ1bmN0aW9uKGUpe2xlKGUpLGUuaGVhZGVycz1lLmhlYWRlcnN8fHt9LGUuZGF0YT11ZS5jYWxsKGUsZS5kYXRhLGUuaGVhZGVycyxlLnRyYW5zZm9ybVJlcXVlc3QpLGUuaGVhZGVycz1VZS5tZXJnZShlLmhlYWRlcnMuY29tbW9ufHx7fSxlLmhlYWRlcnNbZS5tZXRob2RdfHx7fSxlLmhlYWRlcnMpLFVlLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sZnVuY3Rpb24obil7ZGVsZXRlIGUuaGVhZGVyc1tuXX0pO3ZhciB0PWUuYWRhcHRlcnx8UXQuYWRhcHRlcjtyZXR1cm4gdChlKS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBsZShlKSxuLmRhdGE9dWUuY2FsbChlLG4uZGF0YSxuLmhlYWRlcnMsZS50cmFuc2Zvcm1SZXNwb25zZSksbn0sZnVuY3Rpb24obil7cmV0dXJuIHp0KG4pfHwobGUoZSksbiYmbi5yZXNwb25zZSYmKG4ucmVzcG9uc2UuZGF0YT11ZS5jYWxsKGUsbi5yZXNwb25zZS5kYXRhLG4ucmVzcG9uc2UuaGVhZGVycyxlLnRyYW5zZm9ybVJlc3BvbnNlKSkpLFByb21pc2UucmVqZWN0KG4pfSl9LHk9cCxCZT1mdW5jdGlvbihlLHQpe3Q9dHx8e307dmFyIHM9e307ZnVuY3Rpb24gbih1LGYpe3JldHVybiB5LmlzUGxhaW5PYmplY3QodSkmJnkuaXNQbGFpbk9iamVjdChmKT95Lm1lcmdlKHUsZik6eS5pc1BsYWluT2JqZWN0KGYpP3kubWVyZ2Uoe30sZik6eS5pc0FycmF5KGYpP2Yuc2xpY2UoKTpmfWZ1bmN0aW9uIG8odSl7aWYoeS5pc1VuZGVmaW5lZCh0W3VdKSl7aWYoIXkuaXNVbmRlZmluZWQoZVt1XSkpcmV0dXJuIG4odm9pZCAwLGVbdV0pfWVsc2UgcmV0dXJuIG4oZVt1XSx0W3VdKX1mdW5jdGlvbiBpKHUpe2lmKCF5LmlzVW5kZWZpbmVkKHRbdV0pKXJldHVybiBuKHZvaWQgMCx0W3VdKX1mdW5jdGlvbiBhKHUpe2lmKHkuaXNVbmRlZmluZWQodFt1XSkpe2lmKCF5LmlzVW5kZWZpbmVkKGVbdV0pKXJldHVybiBuKHZvaWQgMCxlW3VdKX1lbHNlIHJldHVybiBuKHZvaWQgMCx0W3VdKX1mdW5jdGlvbiBsKHUpe2lmKHUgaW4gdClyZXR1cm4gbihlW3VdLHRbdV0pO2lmKHUgaW4gZSlyZXR1cm4gbih2b2lkIDAsZVt1XSl9dmFyIG09e3VybDppLG1ldGhvZDppLGRhdGE6aSxiYXNlVVJMOmEsdHJhbnNmb3JtUmVxdWVzdDphLHRyYW5zZm9ybVJlc3BvbnNlOmEscGFyYW1zU2VyaWFsaXplcjphLHRpbWVvdXQ6YSx0aW1lb3V0TWVzc2FnZTphLHdpdGhDcmVkZW50aWFsczphLGFkYXB0ZXI6YSxyZXNwb25zZVR5cGU6YSx4c3JmQ29va2llTmFtZTphLHhzcmZIZWFkZXJOYW1lOmEsb25VcGxvYWRQcm9ncmVzczphLG9uRG93bmxvYWRQcm9ncmVzczphLGRlY29tcHJlc3M6YSxtYXhDb250ZW50TGVuZ3RoOmEsbWF4Qm9keUxlbmd0aDphLHRyYW5zcG9ydDphLGh0dHBBZ2VudDphLGh0dHBzQWdlbnQ6YSxjYW5jZWxUb2tlbjphLHNvY2tldFBhdGg6YSxyZXNwb25zZUVuY29kaW5nOmEsdmFsaWRhdGVTdGF0dXM6bH07cmV0dXJuIHkuZm9yRWFjaChPYmplY3Qua2V5cyhlKS5jb25jYXQoT2JqZWN0LmtleXModCkpLGZ1bmN0aW9uKGYpe3ZhciBUPW1bZl18fG8sZz1UKGYpO3kuaXNVbmRlZmluZWQoZykmJlQhPT1sfHwoc1tmXT1nKX0pLHN9LCRlPXt2ZXJzaW9uOiIwLjI1LjAifSxZdD0kZS52ZXJzaW9uLGNlPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaChmdW5jdGlvbihyLGUpe2NlW3JdPWZ1bmN0aW9uKHMpe3JldHVybiB0eXBlb2Ygcz09PXJ8fCJhIisoZTwxPyJuICI6IiAiKStyfX0pO3ZhciBMZT17fTtjZS50cmFuc2l0aW9uYWw9ZnVuY3Rpb24oZSx0LHMpe2Z1bmN0aW9uIG4obyxpKXtyZXR1cm4iW0F4aW9zIHYiK1l0KyJdIFRyYW5zaXRpb25hbCBvcHRpb24gJyIrbysiJyIraSsocz8iLiAiK3M6IiIpfXJldHVybiBmdW5jdGlvbihvLGksYSl7aWYoZT09PSExKXRocm93IG5ldyBFcnJvcihuKGksIiBoYXMgYmVlbiByZW1vdmVkIisodD8iIGluICIrdDoiIikpKTtyZXR1cm4gdCYmIUxlW2ldJiYoTGVbaV09ITAsY29uc29sZS53YXJuKG4oaSwiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrdCsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSxlP2UobyxpLGEpOiEwfX07ZnVuY3Rpb24gWnQocixlLHQpe2lmKHR5cGVvZiByIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Iik7Zm9yKHZhciBzPU9iamVjdC5rZXlzKHIpLG49cy5sZW5ndGg7bi0tID4wOyl7dmFyIG89c1tuXSxpPWVbb107aWYoaSl7dmFyIGE9cltvXSxsPWE9PT12b2lkIDB8fGkoYSxvLHIpO2lmKGwhPT0hMCl0aHJvdyBuZXcgVHlwZUVycm9yKCJvcHRpb24gIitvKyIgbXVzdCBiZSAiK2wpO2NvbnRpbnVlfWlmKHQhPT0hMCl0aHJvdyBFcnJvcigiVW5rbm93biBvcHRpb24gIitvKX19dmFyIGVyPXthc3NlcnRPcHRpb25zOlp0LHZhbGlkYXRvcnM6Y2V9LEZlPXAsdHI9Q2UsRGU9X3QscWU9S3QsRz1CZSxIZT1lcix4PUhlLnZhbGlkYXRvcnM7ZnVuY3Rpb24gJChyKXt0aGlzLmRlZmF1bHRzPXIsdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IERlLHJlc3BvbnNlOm5ldyBEZX19JC5wcm90b3R5cGUucmVxdWVzdD1mdW5jdGlvbihlLHQpe2lmKHR5cGVvZiBlPT0ic3RyaW5nIj8odD10fHx7fSx0LnVybD1lKTp0PWV8fHt9LCF0LnVybCl0aHJvdyBuZXcgRXJyb3IoIlByb3ZpZGVkIGNvbmZpZyB1cmwgaXMgbm90IHZhbGlkIik7dD1HKHRoaXMuZGVmYXVsdHMsdCksdC5tZXRob2Q/dC5tZXRob2Q9dC5tZXRob2QudG9Mb3dlckNhc2UoKTp0aGlzLmRlZmF1bHRzLm1ldGhvZD90Lm1ldGhvZD10aGlzLmRlZmF1bHRzLm1ldGhvZC50b0xvd2VyQ2FzZSgpOnQubWV0aG9kPSJnZXQiO3ZhciBzPXQudHJhbnNpdGlvbmFsO3MhPT12b2lkIDAmJkhlLmFzc2VydE9wdGlvbnMocyx7c2lsZW50SlNPTlBhcnNpbmc6eC50cmFuc2l0aW9uYWwoeC5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzp4LnRyYW5zaXRpb25hbCh4LmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6eC50cmFuc2l0aW9uYWwoeC5ib29sZWFuKX0sITEpO3ZhciBuPVtdLG89ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uKGcpe3R5cGVvZiBnLnJ1bldoZW49PSJmdW5jdGlvbiImJmcucnVuV2hlbih0KT09PSExfHwobz1vJiZnLnN5bmNocm9ub3VzLG4udW5zaGlmdChnLmZ1bGZpbGxlZCxnLnJlamVjdGVkKSl9KTt2YXIgaT1bXTt0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKGZ1bmN0aW9uKGcpe2kucHVzaChnLmZ1bGZpbGxlZCxnLnJlamVjdGVkKX0pO3ZhciBhO2lmKCFvKXt2YXIgbD1bcWUsdm9pZCAwXTtmb3IoQXJyYXkucHJvdG90eXBlLnVuc2hpZnQuYXBwbHkobCxuKSxsPWwuY29uY2F0KGkpLGE9UHJvbWlzZS5yZXNvbHZlKHQpO2wubGVuZ3RoOylhPWEudGhlbihsLnNoaWZ0KCksbC5zaGlmdCgpKTtyZXR1cm4gYX1mb3IodmFyIG09dDtuLmxlbmd0aDspe3ZhciB1PW4uc2hpZnQoKSxmPW4uc2hpZnQoKTt0cnl7bT11KG0pfWNhdGNoKFQpe2YoVCk7YnJlYWt9fXRyeXthPXFlKG0pfWNhdGNoKFQpe3JldHVybiBQcm9taXNlLnJlamVjdChUKX1mb3IoO2kubGVuZ3RoOylhPWEudGhlbihpLnNoaWZ0KCksaS5zaGlmdCgpKTtyZXR1cm4gYX0sJC5wcm90b3R5cGUuZ2V0VXJpPWZ1bmN0aW9uKGUpe2lmKCFlLnVybCl0aHJvdyBuZXcgRXJyb3IoIlByb3ZpZGVkIGNvbmZpZyB1cmwgaXMgbm90IHZhbGlkIik7cmV0dXJuIGU9Ryh0aGlzLmRlZmF1bHRzLGUpLHRyKGUudXJsLGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplcikucmVwbGFjZSgvXlw/LywiIil9LEZlLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLGZ1bmN0aW9uKGUpeyQucHJvdG90eXBlW2VdPWZ1bmN0aW9uKHQscyl7cmV0dXJuIHRoaXMucmVxdWVzdChHKHN8fHt9LHttZXRob2Q6ZSx1cmw6dCxkYXRhOihzfHx7fSkuZGF0YX0pKX19KSxGZS5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sZnVuY3Rpb24oZSl7JC5wcm90b3R5cGVbZV09ZnVuY3Rpb24odCxzLG4pe3JldHVybiB0aGlzLnJlcXVlc3QoRyhufHx7fSx7bWV0aG9kOmUsdXJsOnQsZGF0YTpzfSkpfX0pO3ZhciBycj0kLHNyPWo7ZnVuY3Rpb24gTShyKXtpZih0eXBlb2YgciE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7dmFyIGU7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKG4pe2U9bn0pO3ZhciB0PXRoaXM7dGhpcy5wcm9taXNlLnRoZW4oZnVuY3Rpb24ocyl7aWYoISF0Ll9saXN0ZW5lcnMpe3ZhciBuLG89dC5fbGlzdGVuZXJzLmxlbmd0aDtmb3Iobj0wO248bztuKyspdC5fbGlzdGVuZXJzW25dKHMpO3QuX2xpc3RlbmVycz1udWxsfX0pLHRoaXMucHJvbWlzZS50aGVuPWZ1bmN0aW9uKHMpe3ZhciBuLG89bmV3IFByb21pc2UoZnVuY3Rpb24oaSl7dC5zdWJzY3JpYmUoaSksbj1pfSkudGhlbihzKTtyZXR1cm4gby5jYW5jZWw9ZnVuY3Rpb24oKXt0LnVuc3Vic2NyaWJlKG4pfSxvfSxyKGZ1bmN0aW9uKG4pe3QucmVhc29ufHwodC5yZWFzb249bmV3IHNyKG4pLGUodC5yZWFzb24pKX0pfU0ucHJvdG90eXBlLnRocm93SWZSZXF1ZXN0ZWQ9ZnVuY3Rpb24oKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn0sTS5wcm90b3R5cGUuc3Vic2NyaWJlPWZ1bmN0aW9uKGUpe2lmKHRoaXMucmVhc29uKXtlKHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKGUpOnRoaXMuX2xpc3RlbmVycz1bZV19LE0ucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKGUpe2lmKCEhdGhpcy5fbGlzdGVuZXJzKXt2YXIgdD10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZihlKTt0IT09LTEmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UodCwxKX19LE0uc291cmNlPWZ1bmN0aW9uKCl7dmFyIGUsdD1uZXcgTShmdW5jdGlvbihuKXtlPW59KTtyZXR1cm57dG9rZW46dCxjYW5jZWw6ZX19O3ZhciBucj1NLGlyPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihzKXtyZXR1cm4gZS5hcHBseShudWxsLHMpfX0sb3I9cCxhcj1mdW5jdGlvbihlKXtyZXR1cm4gb3IuaXNPYmplY3QoZSkmJmUuaXNBeGlvc0Vycm9yPT09ITB9LGplPXAsdXI9RWUsej1ycixscj1CZSxjcj1XO2Z1bmN0aW9uIEplKHIpe3ZhciBlPW5ldyB6KHIpLHQ9dXIoei5wcm90b3R5cGUucmVxdWVzdCxlKTtyZXR1cm4gamUuZXh0ZW5kKHQsei5wcm90b3R5cGUsZSksamUuZXh0ZW5kKHQsZSksdC5jcmVhdGU9ZnVuY3Rpb24obil7cmV0dXJuIEplKGxyKHIsbikpfSx0fXZhciBFPUplKGNyKTtFLkF4aW9zPXosRS5DYW5jZWw9aixFLkNhbmNlbFRva2VuPW5yLEUuaXNDYW5jZWw9TmUsRS5WRVJTSU9OPSRlLnZlcnNpb24sRS5hbGw9ZnVuY3Rpb24oZSl7cmV0dXJuIFByb21pc2UuYWxsKGUpfSxFLnNwcmVhZD1pcixFLmlzQXhpb3NFcnJvcj1hcixlZS5leHBvcnRzPUUsZWUuZXhwb3J0cy5kZWZhdWx0PUU7dmFyIGZyPWVlLmV4cG9ydHM7Y2xhc3MgY3tpc0VtcHR5KCl7cmV0dXJuIXRoaXMuaXNQcmVzZW50KCl9c3RhdGljIG9mKGUpe2lmKGUhPW51bGwpcmV0dXJuIG5ldyBWZShlKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgcGFzc2VkIHZhbHVlIHdhcyBudWxsIG9yIHVuZGVmaW5lZC4iKX1zdGF0aWMgb2ZOb25OdWxsKGUpe3JldHVybiBjLm9mKGUpfXN0YXRpYyBvZk51bGxhYmxlKGUpe3JldHVybiBlIT1udWxsP25ldyBWZShlKTpuZXcgV2V9c3RhdGljIGVtcHR5KCl7cmV0dXJuIG5ldyBXZX1zdGF0aWMgZnJvbShlKXtzd2l0Y2goZS5raW5kKXtjYXNlInByZXNlbnQiOnJldHVybiBjLm9mKGUudmFsdWUpO2Nhc2UiZW1wdHkiOnJldHVybiBjLmVtcHR5KCk7ZGVmYXVsdDp0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgcGFzc2VkIHZhbHVlIHdhcyBub3QgYW4gT3B0aW9uIHR5cGUuIil9fX1jbGFzcyBWZSBleHRlbmRzIGN7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLnBheWxvYWQ9ZX1pc1ByZXNlbnQoKXtyZXR1cm4hMH1nZXQoKXtyZXR1cm4gdGhpcy5wYXlsb2FkfWlmUHJlc2VudChlKXtlKHRoaXMucGF5bG9hZCl9aWZQcmVzZW50T3JFbHNlKGUsdCl7ZSh0aGlzLnBheWxvYWQpfWZpbHRlcihlKXtyZXR1cm4gZSh0aGlzLnBheWxvYWQpP3RoaXM6Yy5lbXB0eSgpfW1hcChlKXtjb25zdCB0PWUodGhpcy5wYXlsb2FkKTtyZXR1cm4gYy5vZk51bGxhYmxlKHQpfWZsYXRNYXAoZSl7cmV0dXJuIGUodGhpcy5wYXlsb2FkKX1vcihlKXtyZXR1cm4gdGhpc31vckVsc2UoZSl7cmV0dXJuIHRoaXMucGF5bG9hZH1vckVsc2VHZXQoZSl7cmV0dXJuIHRoaXMucGF5bG9hZH1vckVsc2VUaHJvdyhlKXtyZXR1cm4gdGhpcy5wYXlsb2FkfW9yTnVsbCgpe3JldHVybiB0aGlzLnBheWxvYWR9b3JVbmRlZmluZWQoKXtyZXR1cm4gdGhpcy5wYXlsb2FkfXRvT3B0aW9uKCl7cmV0dXJue2tpbmQ6InByZXNlbnQiLHZhbHVlOnRoaXMucGF5bG9hZH19bWF0Y2hlcyhlKXtyZXR1cm4gZS5wcmVzZW50KHRoaXMucGF5bG9hZCl9dG9KU09OKGUpe3JldHVybiB0aGlzLnBheWxvYWR9fWNsYXNzIFdlIGV4dGVuZHMgY3tpc1ByZXNlbnQoKXtyZXR1cm4hMX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCl9Z2V0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIG9wdGlvbmFsIGlzIG5vdCBwcmVzZW50LiIpfWlmUHJlc2VudChlKXt9aWZQcmVzZW50T3JFbHNlKGUsdCl7dCgpfWZpbHRlcihlKXtyZXR1cm4gdGhpc31tYXAoZSl7cmV0dXJuIGMuZW1wdHkoKX1mbGF0TWFwKGUpe3JldHVybiBjLmVtcHR5KCl9b3IoZSl7cmV0dXJuIGUoKX1vckVsc2UoZSl7cmV0dXJuIGV9b3JFbHNlR2V0KGUpe3JldHVybiB0aGlzLm9yRWxzZShlKCkpfW9yRWxzZVRocm93KGUpe3Rocm93IGUoKX1vck51bGwoKXtyZXR1cm4gbnVsbH1vclVuZGVmaW5lZCgpe310b09wdGlvbigpe3JldHVybntraW5kOiJlbXB0eSJ9fW1hdGNoZXMoZSl7cmV0dXJuIGUuZW1wdHkoKX10b0pTT04oZSl7cmV0dXJuIG51bGx9fWNvbnN0IGhyPSIxLjIuNyI7ZnVuY3Rpb24gZHIocil7Z2xvYmFsVGhpcy5fdm9uYWdlTWVkaWFQcm9jZXNzb3JNZXRhZGF0YT1yfWZ1bmN0aW9uIHByKCl7cmV0dXJuIGdsb2JhbFRoaXMuX3ZvbmFnZU1lZGlhUHJvY2Vzc29yTWV0YWRhdGF9Y2xhc3MgX3tjb25zdHJ1Y3Rvcigpe2NvbnN0IGU9cHIoKTt0aGlzLl9yZXBvcnQ9e2FjdGlvbjpjLmVtcHR5KCksYXBwbGljYXRpb25JZDpjLm9mTnVsbGFibGUoZSE9PXZvaWQgMCYmZSE9bnVsbD9lLmFwcElkOm51bGwpLHRpbWVzdGFtcDpEYXRlLm5vdygpLGZwczpjLmVtcHR5KCksZnJhbWVzVHJhbnNmb3JtZWQ6Yy5lbXB0eSgpLGd1aWQ6Yy5lbXB0eSgpLGhpZ2hlc3RGcmFtZVRyYW5zZm9ybUNwdTpjLmVtcHR5KCksbWVzc2FnZTpjLmVtcHR5KCksc291cmNlOmMub2ZOdWxsYWJsZShlIT09dm9pZCAwJiZlIT1udWxsP2Uuc291cmNlVHlwZTpudWxsKSx0cmFuc2Zvcm1lZEZwczpjLmVtcHR5KCksdHJhbnNmb3JtZXJUeXBlOmMuZW1wdHkoKSx2YXJpYXRpb246Yy5lbXB0eSgpLHZpZGVvSGVpZ2h0OmMuZW1wdHkoKSx2aWRlb1dpZHRoOmMuZW1wdHkoKSx2ZXJzaW9uOmhyLGVycm9yOmMuZW1wdHkoKSxwcm94eVVybDpjLm9mTnVsbGFibGUoZSE9PXZvaWQgMCYmZSE9bnVsbD9lLnByb3h5VXJsOm51bGwpfX1hY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3JlcG9ydC5hY3Rpb249Yy5vZk51bGxhYmxlKGUpLHRoaXN9ZnJhbWVzVHJhbnNmb3JtZWQoZSl7cmV0dXJuIHRoaXMuX3JlcG9ydC5mcmFtZXNUcmFuc2Zvcm1lZD1jLm9mTnVsbGFibGUoZSksdGhpc31mcHMoZSl7cmV0dXJuIHRoaXMuX3JlcG9ydC5mcHM9Yy5vZk51bGxhYmxlKGUpLHRoaXN9Z3VpZChlKXtyZXR1cm4gdGhpcy5fcmVwb3J0Lmd1aWQ9Yy5vZk51bGxhYmxlKGUpLHRoaXN9bWVzc2FnZShlKXtyZXR1cm4gdGhpcy5fcmVwb3J0Lm1lc3NhZ2U9Yy5vZk51bGxhYmxlKGUpLHRoaXN9dHJhbnNmb3JtZWRGcHMoZSl7cmV0dXJuIHRoaXMuX3JlcG9ydC50cmFuc2Zvcm1lZEZwcz1jLm9mTnVsbGFibGUoZSksdGhpc310cmFuc2Zvcm1lclR5cGUoZSl7cmV0dXJuIHRoaXMuX3JlcG9ydC50cmFuc2Zvcm1lclR5cGU9Yy5vZk51bGxhYmxlKGUpLHRoaXN9dmFyaWF0aW9uKGUpe3JldHVybiB0aGlzLl9yZXBvcnQudmFyaWF0aW9uPWMub2ZOdWxsYWJsZShlKSx0aGlzfXZpZGVvSGVpZ2h0KGUpe3JldHVybiB0aGlzLl9yZXBvcnQudmlkZW9IZWlnaHQ9Yy5vZk51bGxhYmxlKGUpLHRoaXN9dmlkZW9XaWR0aChlKXtyZXR1cm4gdGhpcy5fcmVwb3J0LnZpZGVvV2lkdGg9Yy5vZk51bGxhYmxlKGUpLHRoaXN9ZXJyb3IoZSl7cmV0dXJuIHRoaXMuX3JlcG9ydC5lcnJvcj1jLm9mTnVsbGFibGUoZSksdGhpc31idWlsZCgpe3JldHVybiB0aGlzLl9yZXBvcnR9fWNvbnN0IG1yPXI9PkpTT04uc3RyaW5naWZ5KHIsKGUsdCk9PntpZih0IT09bnVsbClyZXR1cm4gdH0pO2NsYXNzIGJ7c3RhdGljIHJlcG9ydChlKXtyZXR1cm4gbmV3IFByb21pc2UoKHQscyk9PntpZihlLmFwcGxpY2F0aW9uSWQuaXNFbXB0eSgpfHxlLnNvdXJjZS5pc0VtcHR5KCkpe3QoInN1Y2Nlc3MiKTtyZXR1cm59bGV0IG49ZnIuY3JlYXRlKCksbz17dGltZW91dDoxZTQsdGltZW91dEVycm9yTWVzc2FnZToiUmVxdWVzdCB0aW1lb3V0IixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9fSxpPSJobGcudG9rYm94LmNvbS9wcm9kL2xvZ2dpbmcvdmNwX3dlYnJ0YyI7aWYoZS5wcm94eVVybC5pc0VtcHR5KCkpaT0iaHR0cHM6Ly8iK2k7ZWxzZXtsZXQgYTtlLnByb3h5VXJsLmdldCgpLnNsaWNlKGUucHJveHlVcmwuZ2V0KCkubGVuZ3RoLTEpIT09Ii8iP2E9ZS5wcm94eVVybC5nZXQoKSsiLyI6YT1lLnByb3h5VXJsLmdldCgpLGk9YStpfW4ucG9zdChpLG1yKGUpLG8pLnRoZW4oYT0+e2NvbnNvbGUubG9nKGEpLHQoInN1Y2Nlc3MiKX0pLmNhdGNoKGE9Pntjb25zb2xlLmxvZyhhKSxzKGEpfSl9KX19dmFyIFEsZ3I9bmV3IFVpbnQ4QXJyYXkoMTYpO2Z1bmN0aW9uIHlyKCl7aWYoIVEmJihRPXR5cGVvZiBjcnlwdG8hPSJ1bmRlZmluZWQiJiZjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzJiZjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzLmJpbmQoY3J5cHRvKXx8dHlwZW9mIG1zQ3J5cHRvIT0idW5kZWZpbmVkIiYmdHlwZW9mIG1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcz09ImZ1bmN0aW9uIiYmbXNDcnlwdG8uZ2V0UmFuZG9tVmFsdWVzLmJpbmQobXNDcnlwdG8pLCFRKSl0aHJvdyBuZXcgRXJyb3IoImNyeXB0by5nZXRSYW5kb21WYWx1ZXMoKSBub3Qgc3VwcG9ydGVkLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3V1aWRqcy91dWlkI2dldHJhbmRvbXZhbHVlcy1ub3Qtc3VwcG9ydGVkIik7cmV0dXJuIFEoZ3IpfXZhciBfcj0vXig/OlswLTlhLWZdezh9LVswLTlhLWZdezR9LVsxLTVdWzAtOWEtZl17M30tWzg5YWJdWzAtOWEtZl17M30tWzAtOWEtZl17MTJ9fDAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMCkkL2k7ZnVuY3Rpb24gYnIocil7cmV0dXJuIHR5cGVvZiByPT0ic3RyaW5nIiYmX3IudGVzdChyKX1mb3IodmFyIGQ9W10sZmU9MDtmZTwyNTY7KytmZSlkLnB1c2goKGZlKzI1NikudG9TdHJpbmcoMTYpLnN1YnN0cigxKSk7ZnVuY3Rpb24gd3Iocil7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOjAsdD0oZFtyW2UrMF1dK2RbcltlKzFdXStkW3JbZSsyXV0rZFtyW2UrM11dKyItIitkW3JbZSs0XV0rZFtyW2UrNV1dKyItIitkW3JbZSs2XV0rZFtyW2UrN11dKyItIitkW3JbZSs4XV0rZFtyW2UrOV1dKyItIitkW3JbZSsxMF1dK2RbcltlKzExXV0rZFtyW2UrMTJdXStkW3JbZSsxM11dK2RbcltlKzE0XV0rZFtyW2UrMTVdXSkudG9Mb3dlckNhc2UoKTtpZighYnIodCkpdGhyb3cgVHlwZUVycm9yKCJTdHJpbmdpZmllZCBVVUlEIGlzIGludmFsaWQiKTtyZXR1cm4gdH1mdW5jdGlvbiBHZShyLGUsdCl7cj1yfHx7fTt2YXIgcz1yLnJhbmRvbXx8KHIucm5nfHx5cikoKTtpZihzWzZdPXNbNl0mMTV8NjQsc1s4XT1zWzhdJjYzfDEyOCxlKXt0PXR8fDA7Zm9yKHZhciBuPTA7bjwxNjsrK24pZVt0K25dPXNbbl07cmV0dXJuIGV9cmV0dXJuIHdyKHMpfWNvbnN0IFM9bmV3IFdlYWtNYXAsWD1uZXcgV2Vha01hcCxMPW5ldyBXZWFrTWFwLGhlPVN5bWJvbCgiYW55UHJvZHVjZXIiKSx6ZT1Qcm9taXNlLnJlc29sdmUoKSxLPVN5bWJvbCgibGlzdGVuZXJBZGRlZCIpLFk9U3ltYm9sKCJsaXN0ZW5lclJlbW92ZWQiKTtsZXQgZGU9ITE7ZnVuY3Rpb24gQShyKXtpZih0eXBlb2YgciE9InN0cmluZyImJnR5cGVvZiByIT0ic3ltYm9sIil0aHJvdyBuZXcgVHlwZUVycm9yKCJldmVudE5hbWUgbXVzdCBiZSBhIHN0cmluZyBvciBhIHN5bWJvbCIpfWZ1bmN0aW9uIFoocil7aWYodHlwZW9mIHIhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigibGlzdGVuZXIgbXVzdCBiZSBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gayhyLGUpe2NvbnN0IHQ9WC5nZXQocik7cmV0dXJuIHQuaGFzKGUpfHx0LnNldChlLG5ldyBTZXQpLHQuZ2V0KGUpfWZ1bmN0aW9uIEYocixlKXtjb25zdCB0PXR5cGVvZiBlPT0ic3RyaW5nInx8dHlwZW9mIGU9PSJzeW1ib2wiP2U6aGUscz1MLmdldChyKTtyZXR1cm4gcy5oYXModCl8fHMuc2V0KHQsbmV3IFNldCkscy5nZXQodCl9ZnVuY3Rpb24gdnIocixlLHQpe2NvbnN0IHM9TC5nZXQocik7aWYocy5oYXMoZSkpZm9yKGNvbnN0IG4gb2Ygcy5nZXQoZSkpbi5lbnF1ZXVlKHQpO2lmKHMuaGFzKGhlKSl7Y29uc3Qgbj1Qcm9taXNlLmFsbChbZSx0XSk7Zm9yKGNvbnN0IG8gb2Ygcy5nZXQoaGUpKW8uZW5xdWV1ZShuKX19ZnVuY3Rpb24gUWUocixlKXtlPUFycmF5LmlzQXJyYXkoZSk/ZTpbZV07bGV0IHQ9ITEscz0oKT0+e30sbj1bXTtjb25zdCBvPXtlbnF1ZXVlKGkpe24ucHVzaChpKSxzKCl9LGZpbmlzaCgpe3Q9ITAscygpfX07Zm9yKGNvbnN0IGkgb2YgZSlGKHIsaSkuYWRkKG8pO3JldHVybnthc3luYyBuZXh0KCl7cmV0dXJuIG4/bi5sZW5ndGg9PT0wP3Q/KG49dm9pZCAwLHRoaXMubmV4dCgpKTooYXdhaXQgbmV3IFByb21pc2UoaT0+e3M9aX0pLHRoaXMubmV4dCgpKTp7ZG9uZTohMSx2YWx1ZTphd2FpdCBuLnNoaWZ0KCl9Ontkb25lOiEwfX0sYXN5bmMgcmV0dXJuKGkpe249dm9pZCAwO2Zvcihjb25zdCBhIG9mIGUpRihyLGEpLmRlbGV0ZShvKTtyZXR1cm4gcygpLGFyZ3VtZW50cy5sZW5ndGg+MD97ZG9uZTohMCx2YWx1ZTphd2FpdCBpfTp7ZG9uZTohMH19LFtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKXtyZXR1cm4gdGhpc319fWZ1bmN0aW9uIFhlKHIpe2lmKHI9PT12b2lkIDApcmV0dXJuIEtlO2lmKCFBcnJheS5pc0FycmF5KHIpKXRocm93IG5ldyBUeXBlRXJyb3IoImBtZXRob2ROYW1lc2AgbXVzdCBiZSBhbiBhcnJheSBvZiBzdHJpbmdzIik7Zm9yKGNvbnN0IGUgb2YgcilpZighS2UuaW5jbHVkZXMoZSkpdGhyb3cgdHlwZW9mIGUhPSJzdHJpbmciP25ldyBUeXBlRXJyb3IoImBtZXRob2ROYW1lc2AgZWxlbWVudCBtdXN0IGJlIGEgc3RyaW5nIik6bmV3IEVycm9yKGAke2V9IGlzIG5vdCBFbWl0dGVyeSBtZXRob2RgKTtyZXR1cm4gcn1jb25zdCBwZT1yPT5yPT09S3x8cj09PVk7Y2xhc3MgQ3tzdGF0aWMgbWl4aW4oZSx0KXtyZXR1cm4gdD1YZSh0KSxzPT57aWYodHlwZW9mIHMhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiYHRhcmdldGAgbXVzdCBiZSBmdW5jdGlvbiIpO2Zvcihjb25zdCBpIG9mIHQpaWYocy5wcm90b3R5cGVbaV0hPT12b2lkIDApdGhyb3cgbmV3IEVycm9yKGBUaGUgcHJvcGVydHkgXGAke2l9XGAgYWxyZWFkeSBleGlzdHMgb24gXGB0YXJnZXRcYGApO2Z1bmN0aW9uIG4oKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsZSx7ZW51bWVyYWJsZTohMSx2YWx1ZTpuZXcgQ30pLHRoaXNbZV19T2JqZWN0LmRlZmluZVByb3BlcnR5KHMucHJvdG90eXBlLGUse2VudW1lcmFibGU6ITEsZ2V0Om59KTtjb25zdCBvPWk9PmZ1bmN0aW9uKC4uLmEpe3JldHVybiB0aGlzW2VdW2ldKC4uLmEpfTtmb3IoY29uc3QgaSBvZiB0KU9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLnByb3RvdHlwZSxpLHtlbnVtZXJhYmxlOiExLHZhbHVlOm8oaSl9KTtyZXR1cm4gc319c3RhdGljIGdldCBpc0RlYnVnRW5hYmxlZCgpe2lmKHR5cGVvZiBwcm9jZXNzIT0ib2JqZWN0IilyZXR1cm4gZGU7Y29uc3R7ZW52OmV9PXByb2Nlc3N8fHtlbnY6e319O3JldHVybiBlLkRFQlVHPT09ImVtaXR0ZXJ5Inx8ZS5ERUJVRz09PSIqInx8ZGV9c3RhdGljIHNldCBpc0RlYnVnRW5hYmxlZChlKXtkZT1lfWNvbnN0cnVjdG9yKGU9e30pe1Muc2V0KHRoaXMsbmV3IFNldCksWC5zZXQodGhpcyxuZXcgTWFwKSxMLnNldCh0aGlzLG5ldyBNYXApLHRoaXMuZGVidWc9ZS5kZWJ1Z3x8e30sdGhpcy5kZWJ1Zy5lbmFibGVkPT09dm9pZCAwJiYodGhpcy5kZWJ1Zy5lbmFibGVkPSExKSx0aGlzLmRlYnVnLmxvZ2dlcnx8KHRoaXMuZGVidWcubG9nZ2VyPSh0LHMsbixvKT0+e289SlNPTi5zdHJpbmdpZnkobyksdHlwZW9mIG49PSJzeW1ib2wiJiYobj1uLnRvU3RyaW5nKCkpO2NvbnN0IGk9bmV3IERhdGUsYT1gJHtpLmdldEhvdXJzKCl9OiR7aS5nZXRNaW51dGVzKCl9OiR7aS5nZXRTZWNvbmRzKCl9LiR7aS5nZXRNaWxsaXNlY29uZHMoKX1gO2NvbnNvbGUubG9nKGBbJHthfV1bZW1pdHRlcnk6JHt0fV1bJHtzfV0gRXZlbnQgTmFtZTogJHtufQoJZGF0YTogJHtvfWApfSl9bG9nSWZEZWJ1Z0VuYWJsZWQoZSx0LHMpeyhDLmlzRGVidWdFbmFibGVkfHx0aGlzLmRlYnVnLmVuYWJsZWQpJiZ0aGlzLmRlYnVnLmxvZ2dlcihlLHRoaXMuZGVidWcubmFtZSx0LHMpfW9uKGUsdCl7Wih0KSxlPUFycmF5LmlzQXJyYXkoZSk/ZTpbZV07Zm9yKGNvbnN0IHMgb2YgZSlBKHMpLGsodGhpcyxzKS5hZGQodCksdGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgic3Vic2NyaWJlIixzLHZvaWQgMCkscGUocyl8fHRoaXMuZW1pdChLLHtldmVudE5hbWU6cyxsaXN0ZW5lcjp0fSk7cmV0dXJuIHRoaXMub2ZmLmJpbmQodGhpcyxlLHQpfW9mZihlLHQpe1oodCksZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdO2Zvcihjb25zdCBzIG9mIGUpQShzKSxrKHRoaXMscykuZGVsZXRlKHQpLHRoaXMubG9nSWZEZWJ1Z0VuYWJsZWQoInVuc3Vic2NyaWJlIixzLHZvaWQgMCkscGUocyl8fHRoaXMuZW1pdChZLHtldmVudE5hbWU6cyxsaXN0ZW5lcjp0fSl9b25jZShlKXtyZXR1cm4gbmV3IFByb21pc2UodD0+e2NvbnN0IHM9dGhpcy5vbihlLG49PntzKCksdChuKX0pfSl9ZXZlbnRzKGUpe2U9QXJyYXkuaXNBcnJheShlKT9lOltlXTtmb3IoY29uc3QgdCBvZiBlKUEodCk7cmV0dXJuIFFlKHRoaXMsZSl9YXN5bmMgZW1pdChlLHQpe0EoZSksdGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgiZW1pdCIsZSx0KSx2cih0aGlzLGUsdCk7Y29uc3Qgcz1rKHRoaXMsZSksbj1TLmdldCh0aGlzKSxvPVsuLi5zXSxpPXBlKGUpP1tdOlsuLi5uXTthd2FpdCB6ZSxhd2FpdCBQcm9taXNlLmFsbChbLi4uby5tYXAoYXN5bmMgYT0+e2lmKHMuaGFzKGEpKXJldHVybiBhKHQpfSksLi4uaS5tYXAoYXN5bmMgYT0+e2lmKG4uaGFzKGEpKXJldHVybiBhKGUsdCl9KV0pfWFzeW5jIGVtaXRTZXJpYWwoZSx0KXtBKGUpLHRoaXMubG9nSWZEZWJ1Z0VuYWJsZWQoImVtaXRTZXJpYWwiLGUsdCk7Y29uc3Qgcz1rKHRoaXMsZSksbj1TLmdldCh0aGlzKSxvPVsuLi5zXSxpPVsuLi5uXTthd2FpdCB6ZTtmb3IoY29uc3QgYSBvZiBvKXMuaGFzKGEpJiZhd2FpdCBhKHQpO2Zvcihjb25zdCBhIG9mIGkpbi5oYXMoYSkmJmF3YWl0IGEoZSx0KX1vbkFueShlKXtyZXR1cm4gWihlKSx0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJzdWJzY3JpYmVBbnkiLHZvaWQgMCx2b2lkIDApLFMuZ2V0KHRoaXMpLmFkZChlKSx0aGlzLmVtaXQoSyx7bGlzdGVuZXI6ZX0pLHRoaXMub2ZmQW55LmJpbmQodGhpcyxlKX1hbnlFdmVudCgpe3JldHVybiBRZSh0aGlzKX1vZmZBbnkoZSl7WihlKSx0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJ1bnN1YnNjcmliZUFueSIsdm9pZCAwLHZvaWQgMCksdGhpcy5lbWl0KFkse2xpc3RlbmVyOmV9KSxTLmdldCh0aGlzKS5kZWxldGUoZSl9Y2xlYXJMaXN0ZW5lcnMoZSl7ZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdO2Zvcihjb25zdCB0IG9mIGUpaWYodGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgiY2xlYXIiLHQsdm9pZCAwKSx0eXBlb2YgdD09InN0cmluZyJ8fHR5cGVvZiB0PT0ic3ltYm9sIil7ayh0aGlzLHQpLmNsZWFyKCk7Y29uc3Qgcz1GKHRoaXMsdCk7Zm9yKGNvbnN0IG4gb2YgcyluLmZpbmlzaCgpO3MuY2xlYXIoKX1lbHNle1MuZ2V0KHRoaXMpLmNsZWFyKCk7Zm9yKGNvbnN0IHMgb2YgWC5nZXQodGhpcykudmFsdWVzKCkpcy5jbGVhcigpO2Zvcihjb25zdCBzIG9mIEwuZ2V0KHRoaXMpLnZhbHVlcygpKXtmb3IoY29uc3QgbiBvZiBzKW4uZmluaXNoKCk7cy5jbGVhcigpfX19bGlzdGVuZXJDb3VudChlKXtlPUFycmF5LmlzQXJyYXkoZSk/ZTpbZV07bGV0IHQ9MDtmb3IoY29uc3QgcyBvZiBlKXtpZih0eXBlb2Ygcz09InN0cmluZyIpe3QrPVMuZ2V0KHRoaXMpLnNpemUrayh0aGlzLHMpLnNpemUrRih0aGlzLHMpLnNpemUrRih0aGlzKS5zaXplO2NvbnRpbnVlfXR5cGVvZiBzIT0idW5kZWZpbmVkIiYmQShzKSx0Kz1TLmdldCh0aGlzKS5zaXplO2Zvcihjb25zdCBuIG9mIFguZ2V0KHRoaXMpLnZhbHVlcygpKXQrPW4uc2l6ZTtmb3IoY29uc3QgbiBvZiBMLmdldCh0aGlzKS52YWx1ZXMoKSl0Kz1uLnNpemV9cmV0dXJuIHR9YmluZE1ldGhvZHMoZSx0KXtpZih0eXBlb2YgZSE9Im9iamVjdCJ8fGU9PT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoImB0YXJnZXRgIG11c3QgYmUgYW4gb2JqZWN0Iik7dD1YZSh0KTtmb3IoY29uc3QgcyBvZiB0KXtpZihlW3NdIT09dm9pZCAwKXRocm93IG5ldyBFcnJvcihgVGhlIHByb3BlcnR5IFxgJHtzfVxgIGFscmVhZHkgZXhpc3RzIG9uIFxgdGFyZ2V0XGBgKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxzLHtlbnVtZXJhYmxlOiExLHZhbHVlOnRoaXNbc10uYmluZCh0aGlzKX0pfX19Y29uc3QgS2U9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQy5wcm90b3R5cGUpLmZpbHRlcihyPT5yIT09ImNvbnN0cnVjdG9yIik7T2JqZWN0LmRlZmluZVByb3BlcnR5KEMsImxpc3RlbmVyQWRkZWQiLHt2YWx1ZTpLLHdyaXRhYmxlOiExLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiExfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEMsImxpc3RlbmVyUmVtb3ZlZCIse3ZhbHVlOlksd3JpdGFibGU6ITEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITF9KTt2YXIgbWU9QztmdW5jdGlvbiBFcihyKXtyZXR1cm4gdHlwZW9mIHI9PSJvYmplY3QiJiZyIT09bnVsbCYmIm1lc3NhZ2UiaW4gciYmdHlwZW9mIHIubWVzc2FnZT09InN0cmluZyJ9ZnVuY3Rpb24gVHIocil7aWYoRXIocikpcmV0dXJuIHI7dHJ5e3JldHVybiBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkocikpfWNhdGNoe3JldHVybiBuZXcgRXJyb3IoU3RyaW5nKHIpKX19ZnVuY3Rpb24gZ2Uocil7cmV0dXJuIFRyKHIpLm1lc3NhZ2V9dmFyIHllOyhmdW5jdGlvbihyKXtyLkZQU19EUk9QPSJmcHNfZHJvcCJ9KSh5ZXx8KHllPXt9KSk7Y29uc3QgUHI9NTAwLFJyPS44O2NsYXNzIFNyIGV4dGVuZHMgbWV7Y29uc3RydWN0b3IoZSx0KXtzdXBlcigpLHRoaXMuaW5kZXhfPXQsdGhpcy51dWlkXz1HZSgpLHRoaXMuZnJhbWVzVHJhbnNmb3JtZWRfPTAsdGhpcy50cmFuc2Zvcm1lcl89ZSx0aGlzLnNob3VsZFN0b3BfPSExLHRoaXMuaXNGbGFzaGVkXz0hMSx0aGlzLmZyYW1lc0Zyb21Tb3VyY2VfPTAsdGhpcy5mcHNfPTAsdGhpcy5tZWRpYVRyYW5zZm9ybWVyUW9zUmVwb3J0U3RhcnRUaW1lc3RhbXBfPTAsdGhpcy52aWRlb0hlaWdodF89MCx0aGlzLnZpZGVvV2lkdGhfPTAsdGhpcy50cmFja0V4cGVjdGVkUmF0ZV89LTEsdGhpcy50cmFuc2Zvcm1lclR5cGVfPSJDdXN0b20iLCJnZXRUcmFuc2Zvcm1lclR5cGUiaW4gZSYmKHRoaXMudHJhbnNmb3JtZXJUeXBlXz1lLmdldFRyYW5zZm9ybWVyVHlwZSgpKTtjb25zdCBzPW5ldyBfKCkuYWN0aW9uKCJNZWRpYVRyYW5zZm9ybWVyIikuZ3VpZCh0aGlzLnV1aWRfKS50cmFuc2Zvcm1lclR5cGUodGhpcy50cmFuc2Zvcm1lclR5cGVfKS52YXJpYXRpb24oIkNyZWF0ZSIpLmJ1aWxkKCk7Yi5yZXBvcnQocyl9c2V0VHJhY2tFeHBlY3RlZFJhdGUoZSl7dGhpcy50cmFja0V4cGVjdGVkUmF0ZV89ZX1hc3luYyBzdGFydChlKXtpZih0aGlzLmNvbnRyb2xsZXJfPWUsdGhpcy50cmFuc2Zvcm1lcl8mJnR5cGVvZiB0aGlzLnRyYW5zZm9ybWVyXy5zdGFydD09ImZ1bmN0aW9uIil0cnl7YXdhaXQgdGhpcy50cmFuc2Zvcm1lcl8uc3RhcnQoZSl9Y2F0Y2godCl7Y29uc3Qgcz1uZXcgXygpLmFjdGlvbigiTWVkaWFUcmFuc2Zvcm1lciIpLmd1aWQodGhpcy51dWlkXykubWVzc2FnZShQLmVycm9ycy50cmFuc2Zvcm1lcl9zdGFydCkudHJhbnNmb3JtZXJUeXBlKHRoaXMudHJhbnNmb3JtZXJUeXBlXykudmFyaWF0aW9uKCJFcnJvciIpLmVycm9yKGdlKHQpKS5idWlsZCgpO2IucmVwb3J0KHMpO2NvbnN0IG49e2V2ZW50TWV0YURhdGE6e3RyYW5zZm9ybWVySW5kZXg6dGhpcy5pbmRleF99LGVycm9yOnQsZnVuY3Rpb246InN0YXJ0In07dGhpcy5lbWl0KCJlcnJvciIsbil9fWFzeW5jIHRyYW5zZm9ybShlLHQpe3ZhciBzLG4sbyxpO2lmKHRoaXMubWVkaWFUcmFuc2Zvcm1lclFvc1JlcG9ydFN0YXJ0VGltZXN0YW1wXz09PTAmJih0aGlzLm1lZGlhVHJhbnNmb3JtZXJRb3NSZXBvcnRTdGFydFRpbWVzdGFtcF89RGF0ZS5ub3coKSksZSBpbnN0YW5jZW9mIFZpZGVvRnJhbWUmJih0aGlzLnZpZGVvSGVpZ2h0Xz0ocz1lPT1udWxsP3ZvaWQgMDplLmRpc3BsYXlIZWlnaHQpIT1udWxsP3M6MCx0aGlzLnZpZGVvV2lkdGhfPShuPWU9PW51bGw/dm9pZCAwOmUuZGlzcGxheVdpZHRoKSE9bnVsbD9uOjApLCsrdGhpcy5mcmFtZXNGcm9tU291cmNlXyx0aGlzLnRyYW5zZm9ybWVyXylpZih0aGlzLnNob3VsZFN0b3BfKWNvbnNvbGUud2FybigiW1BpcGVsaW5lXSBmbHVzaCBmcm9tIHRyYW5zZm9ybSIpLGUuY2xvc2UoKSx0aGlzLmZsdXNoKHQpLHQudGVybWluYXRlKCk7ZWxzZSB0cnl7YXdhaXQoKGk9KG89dGhpcy50cmFuc2Zvcm1lcl8pLnRyYW5zZm9ybSk9PW51bGw/dm9pZCAwOmkuY2FsbChvLGUsdCkpLCsrdGhpcy5mcmFtZXNUcmFuc2Zvcm1lZF8sdGhpcy5mcmFtZXNUcmFuc2Zvcm1lZF89PT1QciYmdGhpcy5tZWRpYVRyYW5zZm9ybWVyUW9zUmVwb3J0KCl9Y2F0Y2goYSl7Y29uc3QgbD1uZXcgXygpLmFjdGlvbigiTWVkaWFUcmFuc2Zvcm1lciIpLmd1aWQodGhpcy51dWlkXykubWVzc2FnZShQLmVycm9ycy50cmFuc2Zvcm1lcl90cmFuc2Zvcm0pLnRyYW5zZm9ybWVyVHlwZSh0aGlzLnRyYW5zZm9ybWVyVHlwZV8pLnZhcmlhdGlvbigiRXJyb3IiKS5lcnJvcihnZShhKSkuYnVpbGQoKTtiLnJlcG9ydChsKTtjb25zdCBtPXtldmVudE1ldGFEYXRhOnt0cmFuc2Zvcm1lckluZGV4OnRoaXMuaW5kZXhffSxlcnJvcjphLGZ1bmN0aW9uOiJ0cmFuc2Zvcm0ifTt0aGlzLmVtaXQoImVycm9yIixtKX19YXN5bmMgZmx1c2goZSl7aWYodGhpcy50cmFuc2Zvcm1lcl8mJnR5cGVvZiB0aGlzLnRyYW5zZm9ybWVyXy5mbHVzaD09ImZ1bmN0aW9uIiYmIXRoaXMuaXNGbGFzaGVkXyl7dGhpcy5pc0ZsYXNoZWRfPSEwO3RyeXthd2FpdCB0aGlzLnRyYW5zZm9ybWVyXy5mbHVzaChlKX1jYXRjaChzKXtjb25zdCBuPW5ldyBfKCkuYWN0aW9uKCJNZWRpYVRyYW5zZm9ybWVyIikuZ3VpZCh0aGlzLnV1aWRfKS5tZXNzYWdlKFAuZXJyb3JzLnRyYW5zZm9ybWVyX2ZsdXNoKS50cmFuc2Zvcm1lclR5cGUodGhpcy50cmFuc2Zvcm1lclR5cGVfKS52YXJpYXRpb24oIkVycm9yIikuZXJyb3IoZ2UocykpLmJ1aWxkKCk7Yi5yZXBvcnQobik7Y29uc3Qgbz17ZXZlbnRNZXRhRGF0YTp7dHJhbnNmb3JtZXJJbmRleDp0aGlzLmluZGV4X30sZXJyb3I6cyxmdW5jdGlvbjoiZmx1c2gifTt0aGlzLmVtaXQoImVycm9yIixvKX19dGhpcy5tZWRpYVRyYW5zZm9ybWVyUW9zUmVwb3J0KCk7Y29uc3QgdD1uZXcgXygpLmFjdGlvbigiTWVkaWFUcmFuc2Zvcm1lciIpLmd1aWQodGhpcy51dWlkXykudHJhbnNmb3JtZXJUeXBlKHRoaXMudHJhbnNmb3JtZXJUeXBlXykudmFyaWF0aW9uKCJEZWxldGUiKS5idWlsZCgpO2IucmVwb3J0KHQpfXN0b3AoKXtjb25zb2xlLmxvZygiW1BpcGVsaW5lXSBTdG9wIHN0cmVhbS4iKSx0aGlzLmNvbnRyb2xsZXJfJiYodGhpcy5mbHVzaCh0aGlzLmNvbnRyb2xsZXJfKSx0aGlzLmNvbnRyb2xsZXJfLnRlcm1pbmF0ZSgpKSx0aGlzLnNob3VsZFN0b3BfPSEwfW1lZGlhVHJhbnNmb3JtZXJRb3NSZXBvcnQoKXtsZXQgZT0oRGF0ZS5ub3coKS10aGlzLm1lZGlhVHJhbnNmb3JtZXJRb3NSZXBvcnRTdGFydFRpbWVzdGFtcF8pLzFlMyx0PXRoaXMuZnJhbWVzRnJvbVNvdXJjZV8vZSxzPXRoaXMuZnJhbWVzVHJhbnNmb3JtZWRfL2U7aWYodGhpcy50cmFja0V4cGVjdGVkUmF0ZV8hPS0xJiZ0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXypScj50KXtjb25zdCBvPXtldmVudE1ldGFEYXRhOnt0cmFuc2Zvcm1lckluZGV4OnRoaXMuaW5kZXhffSx3YXJuaW5nVHlwZTp5ZS5GUFNfRFJPUCxkcm9wSW5mbzp7cmVxdWVzdGVkOnRoaXMudHJhY2tFeHBlY3RlZFJhdGVfLGN1cnJlbnQ6dH19O3RoaXMuZW1pdCgid2FybiIsbyl9Y29uc3Qgbj1uZXcgXygpLmFjdGlvbigiTWVkaWFUcmFuc2Zvcm1lciIpLmZwcyh0KS50cmFuc2Zvcm1lZEZwcyhzKS5mcmFtZXNUcmFuc2Zvcm1lZCh0aGlzLmZyYW1lc1RyYW5zZm9ybWVkXykuZ3VpZCh0aGlzLnV1aWRfKS50cmFuc2Zvcm1lclR5cGUodGhpcy50cmFuc2Zvcm1lclR5cGVfKS52aWRlb0hlaWdodCh0aGlzLnZpZGVvSGVpZ2h0XykudmlkZW9XaWR0aCh0aGlzLnZpZGVvV2lkdGhfKS52YXJpYXRpb24oIlFvUyIpLmJ1aWxkKCk7Yi5yZXBvcnQobiksdGhpcy5tZWRpYVRyYW5zZm9ybWVyUW9zUmVwb3J0U3RhcnRUaW1lc3RhbXBfPTAsdGhpcy5mcmFtZXNGcm9tU291cmNlXz0wLHRoaXMuZnJhbWVzVHJhbnNmb3JtZWRfPTB9fWNsYXNzIENyIGV4dGVuZHMgbWV7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLnRyYW5zZm9ybWVyc189W10sdGhpcy50cmFja0V4cGVjdGVkUmF0ZV89LTE7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2xldCBzPW5ldyBTcihlW3RdLHQpO3Mub24oImVycm9yIixuPT57dGhpcy5lbWl0KCJlcnJvciIsbil9KSxzLm9uKCJ3YXJuIixuPT57dGhpcy5lbWl0KCJ3YXJuIixuKX0pLHRoaXMudHJhbnNmb3JtZXJzXy5wdXNoKHMpfX1zZXRUcmFja0V4cGVjdGVkUmF0ZShlKXt0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXz1lO2ZvcihsZXQgdCBvZiB0aGlzLnRyYW5zZm9ybWVyc18pdC5zZXRUcmFja0V4cGVjdGVkUmF0ZSh0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXyl9YXN5bmMgc3RhcnQoZSx0KXtpZighdGhpcy50cmFuc2Zvcm1lcnNffHx0aGlzLnRyYW5zZm9ybWVyc18ubGVuZ3RoPT09MCl7Y29uc29sZS5sb2coIltQaXBlbGluZV0gTm8gdHJhbnNmb3JtZXJzLiIpO3JldHVybn10cnl7bGV0IHM9ZTtmb3IobGV0IG4gb2YgdGhpcy50cmFuc2Zvcm1lcnNfKWU9ZS5waXBlVGhyb3VnaChuZXcgVHJhbnNmb3JtU3RyZWFtKG4pKTtlLnBpcGVUbyh0KS50aGVuKGFzeW5jKCk9Pntjb25zb2xlLmxvZygiW1BpcGVsaW5lXSBTZXR1cC4iKSxhd2FpdCB0LmFib3J0KCksYXdhaXQgcy5jYW5jZWwoKSx0aGlzLmVtaXQoInBpcGVsaW5lSW5mbyIse21lc3NhZ2U6InBpcGVsaW5lX2VuZGVkIn0pfSkuY2F0Y2goYXN5bmMgbj0+e2UuY2FuY2VsKCkudGhlbigoKT0+e2NvbnNvbGUubG9nKCJbUGlwZWxpbmVdIFNodXR0aW5nIGRvd24gc3RyZWFtcyBhZnRlciBhYm9ydC4iKX0pLmNhdGNoKG89Pntjb25zb2xlLmVycm9yKCJbUGlwZWxpbmVdIEVycm9yIGZyb20gc3RyZWFtIHRyYW5zZm9ybToiLG8pfSksYXdhaXQgdC5hYm9ydChuKSxhd2FpdCBzLmNhbmNlbChuKSx0aGlzLmVtaXQoInBpcGVsaW5lSW5mbyIse21lc3NhZ2U6InBpcGVsaW5lX2VuZGVkX3dpdGhfZXJyb3IifSl9KX1jYXRjaHt0aGlzLmVtaXQoInBpcGVsaW5lSW5mbyIse21lc3NhZ2U6InBpcGVsaW5lX3N0YXJ0ZWRfd2l0aF9lcnJvciJ9KSx0aGlzLmRlc3Ryb3koKTtyZXR1cm59dGhpcy5lbWl0KCJwaXBlbGluZUluZm8iLHttZXNzYWdlOiJwaXBlbGluZV9zdGFydGVkIn0pLGNvbnNvbGUubG9nKCJbUGlwZWxpbmVdIFBpcGVsaW5lIHN0YXJ0ZWQuIil9YXN5bmMgZGVzdHJveSgpe2NvbnNvbGUubG9nKCJbUGlwZWxpbmVdIERlc3Ryb3lpbmcgUGlwZWxpbmUuIik7Zm9yKGxldCBlIG9mIHRoaXMudHJhbnNmb3JtZXJzXyllLnN0b3AoKX19Y2xhc3MgT3IgZXh0ZW5kcyBtZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy51dWlkXz1HZSgpLHRoaXMudHJhY2tFeHBlY3RlZFJhdGVfPS0xO2NvbnN0IGU9bmV3IF8oKS5hY3Rpb24oIk1lZGlhUHJvY2Vzc29yIikuZ3VpZCh0aGlzLnV1aWRfKS52YXJpYXRpb24oIkNyZWF0ZSIpLmJ1aWxkKCk7Yi5yZXBvcnQoZSl9c2V0VHJhY2tFeHBlY3RlZFJhdGUoZSl7dGhpcy50cmFja0V4cGVjdGVkUmF0ZV89ZSx0aGlzLnBpcGVsaW5lXyYmdGhpcy5waXBlbGluZV8uc2V0VHJhY2tFeHBlY3RlZFJhdGUodGhpcy50cmFja0V4cGVjdGVkUmF0ZV8pfXRyYW5zZm9ybShlLHQpe3JldHVybiB0aGlzLnJlYWRhYmxlXz1lLHRoaXMud3JpdGFibGVfPXQsdGhpcy50cmFuc2Zvcm1JbnRlcm5hbCgpfXRyYW5zZm9ybUludGVybmFsKCl7cmV0dXJuIG5ldyBQcm9taXNlKChlLHQpPT57aWYoIXRoaXMudHJhbnNmb3JtZXJzX3x8dGhpcy50cmFuc2Zvcm1lcnNfLmxlbmd0aD09PTApe2NvbnN0IG49bmV3IF8oKS5hY3Rpb24oIk1lZGlhUHJvY2Vzc29yIikuZ3VpZCh0aGlzLnV1aWRfKS5tZXNzYWdlKFAuZXJyb3JzLnRyYW5zZm9ybWVyX25vbmUpLnZhcmlhdGlvbigiRXJyb3IiKS5idWlsZCgpO2IucmVwb3J0KG4pLHQoIltNZWRpYVByb2Nlc3Nvcl0gTmVlZCB0byBzZXQgdHJhbnNmb3JtZXJzLiIpO3JldHVybn1pZighdGhpcy5yZWFkYWJsZV8pe2NvbnN0IG49bmV3IF8oKS5hY3Rpb24oIk1lZGlhUHJvY2Vzc29yIikuZ3VpZCh0aGlzLnV1aWRfKS5tZXNzYWdlKFAuZXJyb3JzLnJlYWRhYmxlX251bGwpLnZhcmlhdGlvbigiRXJyb3IiKS5idWlsZCgpO2IucmVwb3J0KG4pLHQoIltNZWRpYVByb2Nlc3Nvcl0gUmVhZGFibGUgaXMgbnVsbC4iKTtyZXR1cm59aWYoIXRoaXMud3JpdGFibGVfKXtjb25zdCBuPW5ldyBfKCkuYWN0aW9uKCJNZWRpYVByb2Nlc3NvciIpLmd1aWQodGhpcy51dWlkXykubWVzc2FnZShQLmVycm9ycy53cml0YWJsZV9udWxsKS52YXJpYXRpb24oIkVycm9yIikuYnVpbGQoKTtiLnJlcG9ydChuKSx0KCJbTWVkaWFQcm9jZXNzb3JdIFdyaXRhYmxlIGlzIG51bGwuIik7cmV0dXJufWxldCBzPSExO3RoaXMucGlwZWxpbmVfJiYocz0hMCx0aGlzLnBpcGVsaW5lXy5jbGVhckxpc3RlbmVycygpLHRoaXMucGlwZWxpbmVfLmRlc3Ryb3koKSksdGhpcy5waXBlbGluZV89bmV3IENyKHRoaXMudHJhbnNmb3JtZXJzXyksdGhpcy5waXBlbGluZV8ub24oIndhcm4iLG49Pnt0aGlzLmVtaXQoIndhcm4iLG4pfSksdGhpcy5waXBlbGluZV8ub24oImVycm9yIixuPT57dGhpcy5lbWl0KCJlcnJvciIsbil9KSx0aGlzLnBpcGVsaW5lXy5vbigicGlwZWxpbmVJbmZvIixuPT57cyYmKG4ubWVzc2FnZT09PSJwaXBlbGluZV9zdGFydGVkIj9uLm1lc3NhZ2U9InBpcGVsaW5lX3Jlc3RhcnRlZCI6bi5tZXNzYWdlPT09InBpcGVsaW5lX3N0YXJ0ZWRfd2l0aF9lcnJvciImJihuLm1lc3NhZ2U9InBpcGVsaW5lX3Jlc3RhcnRlZF93aXRoX2Vycm9yIikpLHRoaXMuZW1pdCgicGlwZWxpbmVJbmZvIixuKX0pLHRoaXMudHJhY2tFeHBlY3RlZFJhdGVfIT0tMSYmdGhpcy5waXBlbGluZV8uc2V0VHJhY2tFeHBlY3RlZFJhdGUodGhpcy50cmFja0V4cGVjdGVkUmF0ZV8pLHRoaXMucGlwZWxpbmVfLnN0YXJ0KHRoaXMucmVhZGFibGVfLHRoaXMud3JpdGFibGVfKS50aGVuKCgpPT57ZSgpfSkuY2F0Y2gobj0+e3Qobil9KX0pfXNldFRyYW5zZm9ybWVycyhlKXtjb25zdCB0PW5ldyBfKCkuYWN0aW9uKCJNZWRpYVByb2Nlc3NvciIpLmd1aWQodGhpcy51dWlkXykubWVzc2FnZShQLnVwZGF0ZXMudHJhbnNmb3JtZXJfbmV3KS52YXJpYXRpb24oIlVwZGF0ZSIpLmJ1aWxkKCk7cmV0dXJuIGIucmVwb3J0KHQpLHRoaXMudHJhbnNmb3JtZXJzXz1lLHRoaXMucmVhZGFibGVfJiZ0aGlzLndyaXRhYmxlXz90aGlzLnRyYW5zZm9ybUludGVybmFsKCk6UHJvbWlzZS5yZXNvbHZlKCl9ZGVzdHJveSgpe3JldHVybiBuZXcgUHJvbWlzZShlPT57dGhpcy5waXBlbGluZV8mJnRoaXMucGlwZWxpbmVfLmRlc3Ryb3koKTtjb25zdCB0PW5ldyBfKCkuYWN0aW9uKCJNZWRpYVByb2Nlc3NvciIpLmd1aWQodGhpcy51dWlkXykudmFyaWF0aW9uKCJEZWxldGUiKS5idWlsZCgpO2IucmVwb3J0KHQpLGUoKX0pfX12YXIgX2U9KHI9PihyLkxvdz0iTG93IixyLkhpZ2g9IkhpZ2giLHIpKShfZXx8e30pO2NsYXNzIFlle2NvbnN0cnVjdG9yKGUpe3RoaXMuYmx1ckZpbHRlcl89ZT09PV9lLkhpZ2g/ImJsdXIoMTVweCkiOiJibHVyKDVweCkifWRlc3Ryb3koKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+e2UoKX0pfXJ1blBvc3RQcm9jZXNzaW5nKGUsdCl7dHJ5e2UuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJkZXN0aW5hdGlvbi1vdmVyIixlLmZpbHRlcj10aGlzLmJsdXJGaWx0ZXJfLGUuZHJhd0ltYWdlKHQsMCwwLHQud2lkdGgsdC5oZWlnaHQpfWNhdGNoKHMpe2NvbnNvbGUubG9nKCJbQmx1clBvc3RQcm9jZXNzXSBGYWlsZWQgdG8gZHJhdyBjYW52YXMiLHMpfX19Y2xhc3MgWmV7Y29uc3RydWN0b3IoKXt9ZGVzdHJveSgpe3JldHVybiBuZXcgUHJvbWlzZShlPT57dGhpcy5iZ0ltYWdlXyYmdGhpcy5iZ0ltYWdlXy5jbG9zZSgpLGUoKX0pfXNldFZpcnR1YWxCR0ltYWdlKGUpe3RoaXMuYmdJbWFnZV8mJnRoaXMuYmdJbWFnZV8uY2xvc2UoKSx0aGlzLmJnSW1hZ2VfPWV9YXN5bmMgcnVuUG9zdFByb2Nlc3NpbmcoZSx0KXtpZih0aGlzLmJnSW1hZ2VfKXtpZih0aGlzLmJnSW1hZ2VfLndpZHRoIT10LndpZHRofHx0aGlzLmJnSW1hZ2VfLmhlaWdodCE9dC5oZWlnaHQpe2NvbnN0IHM9ImhpZ2giLG49e3Jlc2l6ZVdpZHRoOnQud2lkdGgscmVzaXplSGVpZ2h0OnQuaGVpZ2h0LHJlc2l6ZVF1YWxpdHk6c307dHJ5e3RoaXMuYmdJbWFnZV89YXdhaXQgY3JlYXRlSW1hZ2VCaXRtYXAodGhpcy5iZ0ltYWdlXyxuKX1jYXRjaChvKXt0aHJvdyBvfX1lLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0iZGVzdGluYXRpb24tb3ZlciIsZS5kcmF3SW1hZ2UodGhpcy5iZ0ltYWdlXywwLDAsdGhpcy5iZ0ltYWdlXy53aWR0aCx0aGlzLmJnSW1hZ2VfLmhlaWdodCl9fX1jbGFzcyBJcntjb25zdHJ1Y3RvcihlPTEvMCl7dGhpcy5jYXBhY2l0eT1lLHRoaXMuc3RvcmFnZT1bXX1lbnF1ZXVlKGUpe2lmKHRoaXMuc2l6ZSgpPT09dGhpcy5jYXBhY2l0eSl0aHJvdyBFcnJvcigiUXVldWUgaGFzIHJlYWNoZWQgbWF4IGNhcGFjaXR5LCB5b3UgY2Fubm90IGFkZCBtb3JlIGl0ZW1zIik7dGhpcy5zdG9yYWdlLnB1c2goZSl9ZGVxdWV1ZSgpe3JldHVybiB0aGlzLnN0b3JhZ2Uuc2hpZnQoKX1zaXplKCl7cmV0dXJuIHRoaXMuc3RvcmFnZS5sZW5ndGh9fWNvbnN0IGJlPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5xdWV1ZV89bmV3IElyfWNsZWFyUXVldWUocil7Zm9yKDt0aGlzLnF1ZXVlXy5zaXplKCk+MDspdGhpcy5xdWV1ZV8uZGVxdWV1ZSgpLmNsb3NlKCl9c2V0VmlkZW9SZWFkYWJsZShyKXtyZXR1cm4gbmV3IFByb21pc2UoKGUsdCk9Pnt0aGlzLmZyYW1lUmVhZGVyXz1yLmdldFJlYWRlcigpLHRoaXMuZnJhbWVSZWFkZXJfLnJlYWQoKS50aGVuKHM9Pnt0aGlzLnByb2Nlc3NGcmFtZShzKX0pLmNhdGNoKHM9Pnt0KHMpfSksZSgpfSl9ZGVzdHJveSgpe3JldHVybiBuZXcgUHJvbWlzZShhc3luYyhyLGUpPT57dmFyIHQ7dGhpcy5jbGVhclF1ZXVlKCEwKSx0aGlzLmZyYW1lUmVhZGVyXz8odD10aGlzLmZyYW1lUmVhZGVyXyk9PW51bGx8fHQuY2FuY2VsKCkudGhlbigoKT0+e3IoKX0pLmNhdGNoKHM9PntlKHMpfSk6cigpfSl9cHJvY2Vzc0ZyYW1lKHIpe2lmKCFyLmRvbmUpe2lmKCF0aGlzLmZyYW1lUmVhZGVyXyl7ci52YWx1ZS5jbG9zZSgpO3JldHVybn1mb3IoO3RoaXMucXVldWVfLnNpemUoKT49YmUuTlVNQkVSX09GX0ZSQU1FU19UT19DTEVBUjspe2xldCBlPXRoaXMucXVldWVfLmRlcXVldWUoKTtlJiZlLmNsb3NlKCl9dGhpcy5xdWV1ZV8uZW5xdWV1ZShyLnZhbHVlKSx0aGlzLmZyYW1lUmVhZGVyXy5yZWFkKCkudGhlbihlPT57dGhpcy5wcm9jZXNzRnJhbWUoZSl9KS5jYXRjaChlPT57Y29uc29sZS5lcnJvcihlKX0pfX1ydW5Qb3N0UHJvY2Vzc2luZyhyLGUpe3RyeXtpZihyLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0iZGVzdGluYXRpb24tb3ZlciIsdGhpcy5xdWV1ZV8uc2l6ZSgpPmJlLk5VTUJFUl9PRl9GUkFNRVNfVE9fQ0xFQVImJnRoaXMuY2xlYXJRdWV1ZSghMSksdGhpcy5xdWV1ZV8uc2l6ZSgpPjApe2NvbnN0IHQ9dGhpcy5xdWV1ZV8uZGVxdWV1ZSgpO3IuZHJhd0ltYWdlKHQsMCwwLGUud2lkdGgsZS5oZWlnaHQpLHQuY2xvc2UoKX19Y2F0Y2godCl7Y29uc29sZS5lcnJvcigiW1ZpZGVvUG9zdFByb2Nlc3NdIEZhaWxlZCB0byBkcmF3IGNhbnZhcyIsdCl9fX07bGV0IHdlPWJlO3dlLk5VTUJFUl9PRl9GUkFNRVNfVE9fQ0xFQVI9NTtjbGFzcyB4cntjb25zdHJ1Y3RvcihlKXt0aGlzLmJsdXJGaWx0ZXJfPWU9PT1fZS5IaWdoPyJibHVyKDE1cHgpIjoiYmx1cig1cHgpIn1kZXN0cm95KCl7cmV0dXJuIG5ldyBQcm9taXNlKGU9PntlKCl9KX1ydW5Qb3N0UHJvY2Vzc2luZyhlLHQpe3RyeXtlLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0ic291cmNlLWluIixlLmZpbHRlcj10aGlzLmJsdXJGaWx0ZXJfLGUuZHJhd0ltYWdlKHQsMCwwLHQud2lkdGgsdC5oZWlnaHQpLGUuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJkZXN0aW5hdGlvbi1vdmVyIixlLmZpbHRlcj0iYmx1cigwcHgpIixlLmRyYXdJbWFnZSh0LDAsMCx0LndpZHRoLHQuaGVpZ2h0KX1jYXRjaChzKXtjb25zb2xlLmxvZygiW0JsdXJQb3N0UHJvY2Vzc10gRmFpbGVkIHRvIGRyYXcgY2FudmFzIixzKX19fWNvbnN0IHc9Y2xhc3N7Y29uc3RydWN0b3IoKXtpZih0aGlzLmxhc3RQcm9jZXNzZWRUaW1lc3RhbXBfPTAsdGhpcy5uZXdJbnB1dENvdW50ZXI9MCx0aGlzLnRpbWVyR2FwXz13LkJMVVJfUFJPQ0VTU19HQVBfTUlDUk9fU0VDT05ELHRoaXMucmVzdWx0Q2FudmFzXz1uZXcgT2Zmc2NyZWVuQ2FudmFzKDEsMSksdGhpcy5yZXN1bHRDdHhfPXRoaXMucmVzdWx0Q2FudmFzXy5nZXRDb250ZXh0KCIyZCIse2FscGhhOiExLGRlc3luY2hyb25pemVkOiEwfSksIXRoaXMucmVzdWx0Q3R4Xyl0aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBjcmVhdGUgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIik7aWYodGhpcy5zZWdtZW50YXRpb25NYXNrQ2FudmFzXz1uZXcgT2Zmc2NyZWVuQ2FudmFzKHcuU0VMRklFX1dJRFRILHcuU0VMRklFX0hJR0hUKSx0aGlzLnNlZ21lbnRhdGlvbk1hc2tDdHhfPXRoaXMuc2VnbWVudGF0aW9uTWFza0NhbnZhc18uZ2V0Q29udGV4dCgiMmQiLHthbHBoYTohMSxkZXN5bmNocm9uaXplZDohMH0pLCF0aGlzLnNlZ21lbnRhdGlvbk1hc2tDdHhfKXRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIGNyZWF0ZSBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQiKX1pbml0KHIpe3RoaXMucHJvY2Vzc0ZyYW1lQ2I9cn1hc3luYyBzZXRCYWNrZ3JvdW5kT3B0aW9ucyhyKXtpZih0eXBlb2YgdGhpcy5wb3N0UHJvY2Vzc0ludGVyZmFjZV8hPSJ1bmRlZmluZWQiKXRyeXthd2FpdCB0aGlzLnBvc3RQcm9jZXNzSW50ZXJmYWNlXy5kZXN0cm95KCl9Y2F0Y2goZSl7dGhyb3cgZX1pZihyLnRyYW5zZm9ybWVyVHlwZT09PSJWaXJ0dWFsQmFja2dyb3VuZCIpdGhpcy50aW1lckdhcF89dy5WSVJUVUFMX1BST0NFU1NfR0FQX01JQ1JPX1NFQ09ORCx0aGlzLnBvc3RQcm9jZXNzSW50ZXJmYWNlXz1uZXcgWmU7ZWxzZSBpZihyLnRyYW5zZm9ybWVyVHlwZT09PSJCYWNrZ3JvdW5kQmx1ciIpe2xldCBlPXI7dGhpcy50aW1lckdhcF89dy5CTFVSX1BST0NFU1NfR0FQX01JQ1JPX1NFQ09ORCx0aGlzLnBvc3RQcm9jZXNzSW50ZXJmYWNlXz1uZXcgWWUoZS5yYWRpdXMpfWVsc2UgaWYoci50cmFuc2Zvcm1lclR5cGU9PT0iVmlkZW9CYWNrZ3JvdW5kIil0aGlzLnRpbWVyR2FwXz13LkJMVVJfUFJPQ0VTU19HQVBfTUlDUk9fU0VDT05ELHRoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfPW5ldyB3ZTtlbHNlIGlmKHIudHJhbnNmb3JtZXJUeXBlPT09IlNpbHVldGVCbHVyIil7bGV0IGU9cjt0aGlzLnRpbWVyR2FwXz13LkJMVVJfUFJPQ0VTU19HQVBfTUlDUk9fU0VDT05ELHRoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfPW5ldyB4cihlLnJhZGl1cyl9ZWxzZSB0aGlzLnRpbWVyR2FwXz13LkJMVVJfUFJPQ0VTU19HQVBfTUlDUk9fU0VDT05ELHRoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfPW5ldyBZZX1jbG9zZSgpe3JldHVybiBuZXcgUHJvbWlzZSgocixlKT0+e3RoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfP3RoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfLmRlc3Ryb3koKS50aGVuKCgpPT57cigpfSkuY2F0Y2godD0+e2UodCl9KTpyKCl9KX1zdGFydCgpe31hc3luYyB0cmFuc2Zvcm0ocixlKXsodGhpcy5yZXN1bHRDYW52YXNfLndpZHRoIT1yLmRpc3BsYXlXaWR0aHx8dGhpcy5yZXN1bHRDYW52YXNfLmhlaWdodCE9ci5kaXNwbGF5SGVpZ2h0KSYmKHRoaXMucmVzdWx0Q2FudmFzXy53aWR0aD1yLmRpc3BsYXlXaWR0aCx0aGlzLnJlc3VsdENhbnZhc18uaGVpZ2h0PXIuZGlzcGxheUhlaWdodCk7Y29uc3QgdD1yLnRpbWVzdGFtcDtjcmVhdGVJbWFnZUJpdG1hcChyKS50aGVuKHM9PntyLmNsb3NlKCksdGhpcy5wcm9jZXNzRnJhbWUoZSxzLHQpfSkuY2F0Y2gocz0+e2UuZW5xdWV1ZShyKX0pfXByb2Nlc3NGcmFtZShyLGUsdCl7KHRoaXMubmV3SW5wdXRDb3VudGVyPHcuTkVXX0lOUFVUX05VTUJFUl9PRl9SVU5TfHx0LXRoaXMubGFzdFByb2Nlc3NlZFRpbWVzdGFtcF8+PXRoaXMudGltZXJHYXBfKSYmKHRoaXMubGFzdFByb2Nlc3NlZFRpbWVzdGFtcF89dCx0aGlzLnByb2Nlc3NTb3VyY2UoZSksdGhpcy5uZXdJbnB1dENvdW50ZXI8dy5ORVdfSU5QVVRfTlVNQkVSX09GX1JVTlMmJnRoaXMubmV3SW5wdXRDb3VudGVyKyspLHRoaXMucmVzdWx0Q3R4Xy5zYXZlKCksdGhpcy5yZXN1bHRDdHhfLmNsZWFyUmVjdCgwLDAsdGhpcy5yZXN1bHRDYW52YXNfLndpZHRoLHRoaXMucmVzdWx0Q2FudmFzXy5oZWlnaHQpLHRoaXMuc2VnbWVudGF0aW9uTWFza0ltYWdlXyYmKHRoaXMucmVzdWx0Q3R4Xy5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249ImNvcHkiLHRoaXMucmVzdWx0Q3R4Xy5kcmF3SW1hZ2UodGhpcy5zZWdtZW50YXRpb25NYXNrSW1hZ2VfLDAsMCx0aGlzLnNlZ21lbnRhdGlvbk1hc2tJbWFnZV8ud2lkdGgsdGhpcy5zZWdtZW50YXRpb25NYXNrSW1hZ2VfLmhlaWdodCwwLDAsdGhpcy5yZXN1bHRDYW52YXNfLndpZHRoLHRoaXMucmVzdWx0Q2FudmFzXy5oZWlnaHQpKSx0aGlzLnJlc3VsdEN0eF8uZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJzb3VyY2UtYXRvcCIsdGhpcy5yZXN1bHRDdHhfLmZpbHRlcj0ibm9uZSIsdGhpcy5yZXN1bHRDdHhfLmRyYXdJbWFnZShlLDAsMCxlLndpZHRoLGUuaGVpZ2h0KSx0aGlzLnBvc3RQcm9jZXNzSW50ZXJmYWNlXyYmdGhpcy5wb3N0UHJvY2Vzc0ludGVyZmFjZV8ucnVuUG9zdFByb2Nlc3NpbmcodGhpcy5yZXN1bHRDdHhfLGUpLHRoaXMucmVzdWx0Q3R4Xy5yZXN0b3JlKCksci5lbnF1ZXVlKG5ldyBWaWRlb0ZyYW1lKHRoaXMucmVzdWx0Q2FudmFzXyx7dGltZXN0YW1wOnQsYWxwaGE6ImRpc2NhcmQifSkpLGUuY2xvc2UoKX1wcm9jZXNzU291cmNlKHIpe2lmKHRoaXMuc2VnbWVudGF0aW9uTWFza0N0eF8uY2xlYXJSZWN0KDAsMCx0aGlzLnNlZ21lbnRhdGlvbk1hc2tDYW52YXNfLndpZHRoLHRoaXMuc2VnbWVudGF0aW9uTWFza0NhbnZhc18uaGVpZ2h0KSx0aGlzLnNlZ21lbnRhdGlvbk1hc2tDdHhfLmRyYXdJbWFnZShyLDAsMCxyLndpZHRoLHIuaGVpZ2h0LDAsMCx0aGlzLnNlZ21lbnRhdGlvbk1hc2tDYW52YXNfLndpZHRoLHRoaXMuc2VnbWVudGF0aW9uTWFza0NhbnZhc18uaGVpZ2h0KSx0aGlzLnByb2Nlc3NGcmFtZUNiKXtsZXQgZT10aGlzLnNlZ21lbnRhdGlvbk1hc2tDYW52YXNfLnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpO3RoaXMucHJvY2Vzc0ZyYW1lQ2IoZSl9fWZsdXNoKCl7fWdldFRyYW5zZm9ybWVyVHlwZSgpe3JldHVybiJCYWNrZ3JvdW5kVHJhbnNmb3JtZXIifXJlc2V0TmV3SW5wdXRDb3VuZXIoKXt0aGlzLm5ld0lucHV0Q291bnRlcj0wfXNldFZpZGVvQkdSZWFkYWJsZShyKXtyZXR1cm4gbmV3IFByb21pc2UoKGUsdCk9Pnt0aGlzLnBvc3RQcm9jZXNzSW50ZXJmYWNlXyBpbnN0YW5jZW9mIHdlP3RoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfLnNldFZpZGVvUmVhZGFibGUocikudGhlbigoKT0+e2UoKX0pLmNhdGNoKHM9Pnt0KHMpfSk6dCgicG9zdCBwcm9jZXNzIGlzIG5vdCB2aWRlbyIpfSl9c2V0VmlydHVhbEJHSW1hZ2Uocil7cmV0dXJuIG5ldyBQcm9taXNlKChlLHQpPT57dGhpcy5wb3N0UHJvY2Vzc0ludGVyZmFjZV8gaW5zdGFuY2VvZiBaZT8odGhpcy5wb3N0UHJvY2Vzc0ludGVyZmFjZV8uc2V0VmlydHVhbEJHSW1hZ2UociksZSgpKTp0KCJwb3N0IHByb2Nlc3MgaXMgbm90IHZpZGVvIil9KX1zZXRTZWdtZW50YXRpb25NYXNrSW1hZ2Uocil7dGhpcy5zZWdtZW50YXRpb25NYXNrSW1hZ2VfJiZ0aGlzLnNlZ21lbnRhdGlvbk1hc2tJbWFnZV8uY2xvc2UoKSx0aGlzLnNlZ21lbnRhdGlvbk1hc2tJbWFnZV89cn19O2xldCBOPXc7Ti5CTFVSX1BST0NFU1NfR0FQX01JQ1JPX1NFQ09ORD0yZTUsTi5WSVJUVUFMX1BST0NFU1NfR0FQX01JQ1JPX1NFQ09ORD0xNWU0LE4uTkVXX0lOUFVUX05VTUJFUl9PRl9SVU5TPTMwLE4uU0VMRklFX1dJRFRIPTI1NixOLlNFTEZJRV9ISUdIVD0xNDQ7ZnVuY3Rpb24gTXIocil7cmV0dXJuIHR5cGVvZiByPT0ib2JqZWN0IiYmciE9PW51bGwmJiJtZXNzYWdlImluIHImJnR5cGVvZiByLm1lc3NhZ2U9PSJzdHJpbmcifWZ1bmN0aW9uIEFyKHIpe2lmKE1yKHIpKXJldHVybiByO3RyeXtyZXR1cm4gbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHIpKX1jYXRjaHtyZXR1cm4gbmV3IEVycm9yKFN0cmluZyhyKSl9fWZ1bmN0aW9uIFUocil7cmV0dXJuIHR5cGVvZiByPT0idW5kZWZpbmVkIj8iIjpBcihyKS5tZXNzYWdlfWlmKHR5cGVvZiBpbXBvcnRTY3JpcHRzPT0iZnVuY3Rpb24iKXtsZXQgcj1mdW5jdGlvbigpe3JldHVybiBuZXcgUHJvbWlzZSgocyxuKT0+e2U9bmV3IE9yLGUub24oImVycm9yIixpPT57Y29uc3QgYT17Y2FsbGJhY2tUeXBlOiJtZWRpYV9wcm9jZXNzb3JfZXJyb3JfZXZlbnQiLG1lc3NhZ2U6aX07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoYSkpfSksZS5vbigid2FybiIsaT0+e2NvbnN0IGE9e2NhbGxiYWNrVHlwZToibWVkaWFfcHJvY2Vzc29yX3dhcm5fZXZlbnQiLG1lc3NhZ2U6aX07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoYSkpfSksZS5vbigicGlwZWxpbmVJbmZvIixpPT57Y29uc3QgYT17Y2FsbGJhY2tUeXBlOiJtZWRpYV9wcm9jZXNzb3JfcGlwZWxpbmVfZXZlbnQiLG1lc3NhZ2U6aX07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoYSkpfSksdD1uZXcgTix0LmluaXQoaT0+e3Bvc3RNZXNzYWdlKGksW2ldKX0pO2xldCBvPVtdO28ucHVzaCh0KSxlLnNldFRyYW5zZm9ybWVycyhvKS50aGVuKCgpPT57cygpfSkuY2F0Y2goaT0+e24oaSl9KX0pfSxlLHQ7b25tZXNzYWdlPWFzeW5jIHM9PntpZihzLmRhdGEgaW5zdGFuY2VvZiBJbWFnZUJpdG1hcCl7dCYmdC5zZXRTZWdtZW50YXRpb25NYXNrSW1hZ2Uocy5kYXRhKTtyZXR1cm59Y29uc3R7b3BlcmF0aW9uOm59PXMuZGF0YTtpZihuPT09ImluaXQiKXtjb25zdHttZXRhRGF0YTpvfT1zLmRhdGE7dHlwZW9mIG89PSJzdHJpbmciJiZkcihKU09OLnBhcnNlKG8pKSxyKCkudGhlbigoKT0+e2NvbnN0IGk9e2NhbGxiYWNrVHlwZToic3VjY2VzcyIsbWVzc2FnZTpufTtwb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShpKSl9KS5jYXRjaChpPT57Y29uc3QgYT17Y2FsbGJhY2tUeXBlOiJlcnJvciIsbWVzc2FnZTpuLGVycm9yOlUoaSl9O3Bvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KGEpKX0pfWVsc2UgaWYobj09PSJ0cmFuc2Zvcm0iKXtjb25zdHtyZWFkYWJsZTpvLHdyaXRhYmxlOml9PXMuZGF0YTt0LnJlc2V0TmV3SW5wdXRDb3VuZXIoKSxlLnRyYW5zZm9ybShvLGkpLnRoZW4oKCk9Pntjb25zdCBhPXtjYWxsYmFja1R5cGU6InN1Y2Nlc3MiLG1lc3NhZ2U6bn07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoYSkpfSkuY2F0Y2goYT0+e2NvbnN0IGw9e2NhbGxiYWNrVHlwZToiZXJyb3IiLG1lc3NhZ2U6bixlcnJvcjpVKGEpfTtwb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShsKSl9KX1lbHNlIGlmKG49PT0iZGVzdHJveSIpdC5jbG9zZSgpLmZpbmFsbHkoKCk9PntlLmRlc3Ryb3koKS50aGVuKCgpPT57Y29uc3Qgbz17Y2FsbGJhY2tUeXBlOiJzdWNjZXNzIixtZXNzYWdlOm59O3Bvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KG8pKX0pLmNhdGNoKG89Pntjb25zdCBpPXtjYWxsYmFja1R5cGU6ImVycm9yIixtZXNzYWdlOm4sZXJyb3I6VShvKX07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoaSkpfSl9KTtlbHNlIGlmKG49PT0ic2V0VHJhY2tFeHBlY3RlZFJhdGUiKXtlLnNldFRyYWNrRXhwZWN0ZWRSYXRlKHMuZGF0YS5yYXRlKTtjb25zdCBvPXtjYWxsYmFja1R5cGU6InN1Y2Nlc3MiLG1lc3NhZ2U6bn07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkobykpfWVsc2UgaWYobj09PSJzZXRCYWNrZ3JvdW5kT3B0aW9ucyIpe2NvbnN0e2JhY2tncm91bmRPcHRpb25zOm99PXMuZGF0YTt0LnNldEJhY2tncm91bmRPcHRpb25zKEpTT04ucGFyc2UobykpLnRoZW4oKCk9Pntjb25zdCBpPXtjYWxsYmFja1R5cGU6InN1Y2Nlc3MiLG1lc3NhZ2U6bn07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoaSkpfSkuY2F0Y2goaT0+e2NvbnN0IGE9e2NhbGxiYWNrVHlwZToiZXJyb3IiLG1lc3NhZ2U6bixlcnJvcjpVKGkpfTtwb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShhKSl9KX1lbHNlIGlmKG49PT0ic2V0VmlkZW9CR1JlYWRhYmxlIil7Y29uc3R7cmVhZGFibGU6b309cy5kYXRhO3Quc2V0VmlkZW9CR1JlYWRhYmxlKG8pLnRoZW4oKCk9Pntjb25zdCBpPXtjYWxsYmFja1R5cGU6InN1Y2Nlc3MiLG1lc3NhZ2U6bn07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoaSkpfSkuY2F0Y2goaT0+e2NvbnN0IGE9e2NhbGxiYWNrVHlwZToiZXJyb3IiLG1lc3NhZ2U6bixlcnJvcjpVKGkpfTtwb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShhKSl9KX1lbHNlIGlmKG49PT0ic2V0VmlydHVhbEJHSW1hZ2UiKXtjb25zdHtpbWFnZTpvfT1zLmRhdGE7dC5zZXRWaXJ0dWFsQkdJbWFnZShvKS50aGVuKCgpPT57Y29uc3QgaT17Y2FsbGJhY2tUeXBlOiJzdWNjZXNzIixtZXNzYWdlOm59O3Bvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KGkpKX0pLmNhdGNoKGk9Pntjb25zdCBhPXtjYWxsYmFja1R5cGU6ImVycm9yIixtZXNzYWdlOm4sZXJyb3I6VShpKX07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoYSkpfSl9fX19KSgpOwo=",Wi=typeof window!="undefined"&&window.Blob&&new Blob([atob(Xi)],{type:"text/javascript;charset=utf-8"});function Bo(){const X=Wi&&(window.URL||window.webkitURL).createObjectURL(Wi);try{return X?new Worker(X,{}):new Worker("data:application/javascript;base64,"+Xi,{type:"module"})}finally{X&&(window.URL||window.webkitURL).revokeObjectURL(X)}}var cn=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};const zn=new WeakMap,Rr=new WeakMap,cr=new WeakMap,Ar=Symbol("anyProducer"),Ri=Promise.resolve(),Vr=Symbol("listenerAdded"),wr=Symbol("listenerRemoved");let Or=!1;function rr(X){if(typeof X!="string"&&typeof X!="symbol")throw new TypeError("eventName must be a string or a symbol")}function Sr(X){if(typeof X!="function")throw new TypeError("listener must be a function")}function ir(X,g){const G=Rr.get(X);return G.has(g)||G.set(g,new Set),G.get(g)}function ar(X,g){const G=typeof g=="string"||typeof g=="symbol"?g:Ar,S=cr.get(X);return S.has(G)||S.set(G,new Set),S.get(G)}function zo(X,g,G){const S=cr.get(X);if(S.has(g))for(const T of S.get(g))T.enqueue(G);if(S.has(Ar)){const T=Promise.all([g,G]);for(const J of S.get(Ar))J.enqueue(T)}}function Vi(X,g){g=Array.isArray(g)?g:[g];let G=!1,S=()=>{},T=[];const J={enqueue(K){T.push(K),S()},finish(){G=!0,S()}};for(const K of g)ar(X,K).add(J);return{async next(){return T?T.length===0?G?(T=void 0,this.next()):(await new Promise(K=>{S=K}),this.next()):{done:!1,value:await T.shift()}:{done:!0}},async return(K){T=void 0;for(const U of g)ar(X,U).delete(J);return S(),arguments.length>0?{done:!0,value:await K}:{done:!0}},[Symbol.asyncIterator](){return this}}}function wi(X){if(X===void 0)return Si;if(!Array.isArray(X))throw new TypeError("`methodNames` must be an array of strings");for(const g of X)if(!Si.includes(g))throw typeof g!="string"?new TypeError("`methodNames` element must be a string"):new Error(`${g} is not Emittery method`);return X}const Pr=X=>X===Vr||X===wr;class Mn{static mixin(g,G){return G=wi(G),S=>{if(typeof S!="function")throw new TypeError("`target` must be function");for(const K of G)if(S.prototype[K]!==void 0)throw new Error(`The property \`${K}\` already exists on \`target\``);function T(){return Object.defineProperty(this,g,{enumerable:!1,value:new Mn}),this[g]}Object.defineProperty(S.prototype,g,{enumerable:!1,get:T});const J=K=>function(...U){return this[g][K](...U)};for(const K of G)Object.defineProperty(S.prototype,K,{enumerable:!1,value:J(K)});return S}}static get isDebugEnabled(){if(typeof process!="object")return Or;const{env:g}=process||{env:{}};return g.DEBUG==="emittery"||g.DEBUG==="*"||Or}static set isDebugEnabled(g){Or=g}constructor(g={}){zn.set(this,new Set),Rr.set(this,new Map),cr.set(this,new Map),this.debug=g.debug||{},this.debug.enabled===void 0&&(this.debug.enabled=!1),this.debug.logger||(this.debug.logger=(G,S,T,J)=>{try{J=JSON.stringify(J)}catch{J=`Object with the following keys failed to stringify: ${Object.keys(J).join(",")}`}typeof T=="symbol"&&(T=T.toString());const K=new Date,U=`${K.getHours()}:${K.getMinutes()}:${K.getSeconds()}.${K.getMilliseconds()}`;console.log(`[${U}][emittery:${G}][${S}] Event Name: ${T}
|
|
4
|
-
data: ${J}`)})}logIfDebugEnabled(g,G,S){(Mn.isDebugEnabled||this.debug.enabled)&&this.debug.logger(g,this.debug.name,G,S)}on(g,G){Sr(G),g=Array.isArray(g)?g:[g];for(const S of g)rr(S),ir(this,S).add(G),this.logIfDebugEnabled("subscribe",S,void 0),Pr(S)||this.emit(Vr,{eventName:S,listener:G});return this.off.bind(this,g,G)}off(g,G){Sr(G),g=Array.isArray(g)?g:[g];for(const S of g)rr(S),ir(this,S).delete(G),this.logIfDebugEnabled("unsubscribe",S,void 0),Pr(S)||this.emit(wr,{eventName:S,listener:G})}once(g){return new Promise(G=>{const S=this.on(g,T=>{S(),G(T)})})}events(g){g=Array.isArray(g)?g:[g];for(const G of g)rr(G);return Vi(this,g)}async emit(g,G){rr(g),this.logIfDebugEnabled("emit",g,G),zo(this,g,G);const S=ir(this,g),T=zn.get(this),J=[...S],K=Pr(g)?[]:[...T];await Ri,await Promise.all([...J.map(async U=>{if(S.has(U))return U(G)}),...K.map(async U=>{if(T.has(U))return U(g,G)})])}async emitSerial(g,G){rr(g),this.logIfDebugEnabled("emitSerial",g,G);const S=ir(this,g),T=zn.get(this),J=[...S],K=[...T];await Ri;for(const U of J)S.has(U)&&await U(G);for(const U of K)T.has(U)&&await U(g,G)}onAny(g){return Sr(g),this.logIfDebugEnabled("subscribeAny",void 0,void 0),zn.get(this).add(g),this.emit(Vr,{listener:g}),this.offAny.bind(this,g)}anyEvent(){return Vi(this)}offAny(g){Sr(g),this.logIfDebugEnabled("unsubscribeAny",void 0,void 0),this.emit(wr,{listener:g}),zn.get(this).delete(g)}clearListeners(g){g=Array.isArray(g)?g:[g];for(const G of g)if(this.logIfDebugEnabled("clear",G,void 0),typeof G=="string"||typeof G=="symbol"){ir(this,G).clear();const S=ar(this,G);for(const T of S)T.finish();S.clear()}else{zn.get(this).clear();for(const S of Rr.get(this).values())S.clear();for(const S of cr.get(this).values()){for(const T of S)T.finish();S.clear()}}}listenerCount(g){g=Array.isArray(g)?g:[g];let G=0;for(const S of g){if(typeof S=="string"){G+=zn.get(this).size+ir(this,S).size+ar(this,S).size+ar(this).size;continue}typeof S!="undefined"&&rr(S),G+=zn.get(this).size;for(const T of Rr.get(this).values())G+=T.size;for(const T of cr.get(this).values())G+=T.size}return G}bindMethods(g,G){if(typeof g!="object"||g===null)throw new TypeError("`target` must be an object");G=wi(G);for(const S of G){if(g[S]!==void 0)throw new Error(`The property \`${S}\` already exists on \`target\``);Object.defineProperty(g,S,{enumerable:!1,value:this[S].bind(this)})}}}const Si=Object.getOwnPropertyNames(Mn.prototype).filter(X=>X!=="constructor");Object.defineProperty(Mn,"listenerAdded",{value:Vr,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(Mn,"listenerRemoved",{value:wr,writable:!1,enumerable:!0,configurable:!1});var Ti=Mn;(function(){var X;function g(a){var y=0;return function(){return y<a.length?{done:!1,value:a[y++]}:{done:!0}}}var G=typeof Object.defineProperties=="function"?Object.defineProperty:function(a,y,v){return a==Array.prototype||a==Object.prototype||(a[y]=v.value),a};function S(a){a=[typeof globalThis=="object"&&globalThis,a,typeof window=="object"&&window,typeof self=="object"&&self,typeof cn=="object"&&cn];for(var y=0;y<a.length;++y){var v=a[y];if(v&&v.Math==Math)return v}throw Error("Cannot find global object")}var T=S(this);function J(a,y){if(y)t:{var v=T;a=a.split(".");for(var F=0;F<a.length-1;F++){var E=a[F];if(!(E in v))break t;v=v[E]}a=a[a.length-1],F=v[a],y=y(F),y!=F&&y!=null&&G(v,a,{configurable:!0,writable:!0,value:y})}}J("Symbol",function(a){function y(B){if(this instanceof y)throw new TypeError("Symbol is not a constructor");return new v(F+(B||"")+"_"+E++,B)}function v(B,k){this.g=B,G(this,"description",{configurable:!0,writable:!0,value:k})}if(a)return a;v.prototype.toString=function(){return this.g};var F="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",E=0;return y}),J("Symbol.iterator",function(a){if(a)return a;a=Symbol("Symbol.iterator");for(var y="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),v=0;v<y.length;v++){var F=T[y[v]];typeof F=="function"&&typeof F.prototype[a]!="function"&&G(F.prototype,a,{configurable:!0,writable:!0,value:function(){return K(g(this))}})}return a});function K(a){return a={next:a},a[Symbol.iterator]=function(){return this},a}function U(a){var y=typeof Symbol!="undefined"&&Symbol.iterator&&a[Symbol.iterator];return y?y.call(a):{next:g(a)}}function et(a){if(!(a instanceof Array)){a=U(a);for(var y,v=[];!(y=a.next()).done;)v.push(y.value);a=v}return a}var Ye=typeof Object.create=="function"?Object.create:function(a){function y(){}return y.prototype=a,new y},tt;if(typeof Object.setPrototypeOf=="function")tt=Object.setPrototypeOf;else{var Ft;t:{var Pe={a:!0},se={};try{se.__proto__=Pe,Ft=se.a;break t}catch{}Ft=!1}tt=Ft?function(a,y){if(a.__proto__=y,a.__proto__!==y)throw new TypeError(a+" is not extensible");return a}:null}var Je=tt;function yt(a,y){if(a.prototype=Ye(y.prototype),a.prototype.constructor=a,Je)Je(a,y);else for(var v in y)if(v!="prototype")if(Object.defineProperties){var F=Object.getOwnPropertyDescriptor(y,v);F&&Object.defineProperty(a,v,F)}else a[v]=y[v];a.ea=y.prototype}function $t(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function fe(a){if(a.l)throw new TypeError("Generator is already running");a.l=!0}$t.prototype.o=function(a){this.h=a};function ae(a,y){a.j={U:y,V:!0},a.g=a.m||a.s}$t.prototype.return=function(a){this.j={return:a},this.g=this.s};function P(a,y,v){return a.g=v,{value:y}}function Sn(a){this.g=new $t,this.h=a}function En(a,y){fe(a.g);var v=a.g.i;return v?Ce(a,"return"in v?v.return:function(F){return{value:F,done:!0}},y,a.g.return):(a.g.return(y),qt(a))}function Ce(a,y,v,F){try{var E=y.call(a.g.i,v);if(!(E instanceof Object))throw new TypeError("Iterator result "+E+" is not an object");if(!E.done)return a.g.l=!1,E;var B=E.value}catch(k){return a.g.i=null,ae(a.g,k),qt(a)}return a.g.i=null,F.call(a.g,B),qt(a)}function qt(a){for(;a.g.g;)try{var y=a.h(a.g);if(y)return a.g.l=!1,{value:y.value,done:!1}}catch(v){a.g.h=void 0,ae(a.g,v)}if(a.g.l=!1,a.g.j){if(y=a.g.j,a.g.j=null,y.V)throw y.U;return{value:y.return,done:!0}}return{value:void 0,done:!0}}function Hn(a){this.next=function(y){return fe(a.g),a.g.i?y=Ce(a,a.g.i.next,y,a.g.o):(a.g.o(y),y=qt(a)),y},this.throw=function(y){return fe(a.g),a.g.i?y=Ce(a,a.g.i.throw,y,a.g.o):(ae(a.g,y),y=qt(a)),y},this.return=function(y){return En(a,y)},this[Symbol.iterator]=function(){return this}}function Ot(a,y){return y=new Hn(new Sn(y)),Je&&a.prototype&&Je(y,a.prototype),y}function ut(a,y){a instanceof String&&(a+="");var v=0,F=!1,E={next:function(){if(!F&&v<a.length){var B=v++;return{value:y(B,a[B]),done:!1}}return F=!0,{done:!0,value:void 0}}};return E[Symbol.iterator]=function(){return E},E}var Cn=typeof Object.assign=="function"?Object.assign:function(a,y){for(var v=1;v<arguments.length;v++){var F=arguments[v];if(F)for(var E in F)Object.prototype.hasOwnProperty.call(F,E)&&(a[E]=F[E])}return a};J("Object.assign",function(a){return a||Cn}),J("Promise",function(a){function y(k){this.h=0,this.i=void 0,this.g=[],this.o=!1;var O=this.j();try{k(O.resolve,O.reject)}catch(D){O.reject(D)}}function v(){this.g=null}function F(k){return k instanceof y?k:new y(function(O){O(k)})}if(a)return a;v.prototype.h=function(k){if(this.g==null){this.g=[];var O=this;this.i(function(){O.l()})}this.g.push(k)};var E=T.setTimeout;v.prototype.i=function(k){E(k,0)},v.prototype.l=function(){for(;this.g&&this.g.length;){var k=this.g;this.g=[];for(var O=0;O<k.length;++O){var D=k[O];k[O]=null;try{D()}catch(rt){this.j(rt)}}}this.g=null},v.prototype.j=function(k){this.i(function(){throw k})},y.prototype.j=function(){function k(rt){return function(dt){D||(D=!0,rt.call(O,dt))}}var O=this,D=!1;return{resolve:k(this.C),reject:k(this.l)}},y.prototype.C=function(k){if(k===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(k instanceof y)this.F(k);else{t:switch(typeof k){case"object":var O=k!=null;break t;case"function":O=!0;break t;default:O=!1}O?this.u(k):this.m(k)}},y.prototype.u=function(k){var O=void 0;try{O=k.then}catch(D){this.l(D);return}typeof O=="function"?this.G(O,k):this.m(k)},y.prototype.l=function(k){this.s(2,k)},y.prototype.m=function(k){this.s(1,k)},y.prototype.s=function(k,O){if(this.h!=0)throw Error("Cannot settle("+k+", "+O+"): Promise already settled in state"+this.h);this.h=k,this.i=O,this.h===2&&this.D(),this.A()},y.prototype.D=function(){var k=this;E(function(){if(k.B()){var O=T.console;typeof O!="undefined"&&O.error(k.i)}},1)},y.prototype.B=function(){if(this.o)return!1;var k=T.CustomEvent,O=T.Event,D=T.dispatchEvent;return typeof D=="undefined"?!0:(typeof k=="function"?k=new k("unhandledrejection",{cancelable:!0}):typeof O=="function"?k=new O("unhandledrejection",{cancelable:!0}):(k=T.document.createEvent("CustomEvent"),k.initCustomEvent("unhandledrejection",!1,!0,k)),k.promise=this,k.reason=this.i,D(k))},y.prototype.A=function(){if(this.g!=null){for(var k=0;k<this.g.length;++k)B.h(this.g[k]);this.g=null}};var B=new v;return y.prototype.F=function(k){var O=this.j();k.J(O.resolve,O.reject)},y.prototype.G=function(k,O){var D=this.j();try{k.call(O,D.resolve,D.reject)}catch(rt){D.reject(rt)}},y.prototype.then=function(k,O){function D(Xt,lt){return typeof Xt=="function"?function(st){try{rt(Xt(st))}catch(ht){dt(ht)}}:lt}var rt,dt,ct=new y(function(Xt,lt){rt=Xt,dt=lt});return this.J(D(k,rt),D(O,dt)),ct},y.prototype.catch=function(k){return this.then(void 0,k)},y.prototype.J=function(k,O){function D(){switch(rt.h){case 1:k(rt.i);break;case 2:O(rt.i);break;default:throw Error("Unexpected state: "+rt.h)}}var rt=this;this.g==null?B.h(D):this.g.push(D),this.o=!0},y.resolve=F,y.reject=function(k){return new y(function(O,D){D(k)})},y.race=function(k){return new y(function(O,D){for(var rt=U(k),dt=rt.next();!dt.done;dt=rt.next())F(dt.value).J(O,D)})},y.all=function(k){var O=U(k),D=O.next();return D.done?F([]):new y(function(rt,dt){function ct(st){return function(ht){Xt[st]=ht,lt--,lt==0&&rt(Xt)}}var Xt=[],lt=0;do Xt.push(void 0),lt++,F(D.value).J(ct(Xt.length-1),dt),D=O.next();while(!D.done)})},y}),J("Object.is",function(a){return a||function(y,v){return y===v?y!==0||1/y===1/v:y!==y&&v!==v}}),J("Array.prototype.includes",function(a){return a||function(y,v){var F=this;F instanceof String&&(F=String(F));var E=F.length;for(v=v||0,0>v&&(v=Math.max(v+E,0));v<E;v++){var B=F[v];if(B===y||Object.is(B,y))return!0}return!1}}),J("String.prototype.includes",function(a){return a||function(y,v){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(y instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(y,v||0)!==-1}}),J("Array.prototype.keys",function(a){return a||function(){return ut(this,function(y){return y})}});var jn=this||self;function de(a,y){a=a.split(".");var v=jn;a[0]in v||typeof v.execScript=="undefined"||v.execScript("var "+a[0]);for(var F;a.length&&(F=a.shift());)a.length||y===void 0?v[F]&&v[F]!==Object.prototype[F]?v=v[F]:v=v[F]={}:v[F]=y}function vt(a,y){return y=String.fromCharCode.apply(null,y),a==null?y:a+y}var ye,an=typeof TextDecoder!="undefined",hn,In=typeof TextEncoder!="undefined";function vn(a){if(In)a=(hn||(hn=new TextEncoder)).encode(a);else{var y=void 0;y=y===void 0?!1:y;for(var v=0,F=new Uint8Array(3*a.length),E=0;E<a.length;E++){var B=a.charCodeAt(E);if(128>B)F[v++]=B;else{if(2048>B)F[v++]=B>>6|192;else{if(55296<=B&&57343>=B){if(56319>=B&&E<a.length){var k=a.charCodeAt(++E);if(56320<=k&&57343>=k){B=1024*(B-55296)+k-56320+65536,F[v++]=B>>18|240,F[v++]=B>>12&63|128,F[v++]=B>>6&63|128,F[v++]=B&63|128;continue}else E--}if(y)throw Error("Found an unpaired surrogate");B=65533}F[v++]=B>>12|224,F[v++]=B>>6&63|128}F[v++]=B&63|128}}a=F.subarray(0,v)}return a}var Ln={},Be=null;function nn(a,y){y===void 0&&(y=0),fn(),y=Ln[y];for(var v=Array(Math.floor(a.length/3)),F=y[64]||"",E=0,B=0;E<a.length-2;E+=3){var k=a[E],O=a[E+1],D=a[E+2],rt=y[k>>2];k=y[(k&3)<<4|O>>4],O=y[(O&15)<<2|D>>6],D=y[D&63],v[B++]=rt+k+O+D}switch(rt=0,D=F,a.length-E){case 2:rt=a[E+1],D=y[(rt&15)<<2]||F;case 1:a=a[E],v[B]=y[a>>2]+y[(a&3)<<4|rt>>4]+D+F}return v.join("")}function Nn(a){var y=a.length,v=3*y/4;v%3?v=Math.floor(v):"=.".indexOf(a[y-1])!=-1&&(v="=.".indexOf(a[y-2])!=-1?v-2:v-1);var F=new Uint8Array(v),E=0;return Tn(a,function(B){F[E++]=B}),F.subarray(0,E)}function Tn(a,y){function v(D){for(;F<a.length;){var rt=a.charAt(F++),dt=Be[rt];if(dt!=null)return dt;if(!/^[\s\xa0]*$/.test(rt))throw Error("Unknown base64 encoding at char: "+rt)}return D}fn();for(var F=0;;){var E=v(-1),B=v(0),k=v(64),O=v(64);if(O===64&&E===-1)break;y(E<<2|B>>4),k!=64&&(y(B<<4&240|k>>2),O!=64&&y(k<<6&192|O))}}function fn(){if(!Be){Be={};for(var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),y=["+/=","+/","-_=","-_.","-_"],v=0;5>v;v++){var F=a.concat(y[v].split(""));Ln[v]=F;for(var E=0;E<F.length;E++){var B=F[E];Be[B]===void 0&&(Be[B]=E)}}}}var dn=typeof Uint8Array.prototype.slice=="function",bn;function pn(a,y,v){return y===v?bn||(bn=new Uint8Array(0)):dn?a.slice(y,v):new Uint8Array(a.subarray(y,v))}var re=0,pe=0;function ze(a,y){y=y===void 0?{}:y,y=y.v===void 0?!1:y.v,this.h=null,this.g=this.i=this.j=0,this.l=!1,this.v=y,a&&oe(this,a)}function oe(a,y){y=y.constructor===Uint8Array?y:y.constructor===ArrayBuffer?new Uint8Array(y):y.constructor===Array?new Uint8Array(y):y.constructor===String?Nn(y):y instanceof Uint8Array?new Uint8Array(y.buffer,y.byteOffset,y.byteLength):new Uint8Array(0),a.h=y,a.j=0,a.i=a.h.length,a.g=a.j}ze.prototype.reset=function(){this.g=this.j};function ue(a){var y=a.h,v=y[a.g],F=v&127;return 128>v?(a.g+=1,F):(v=y[a.g+1],F|=(v&127)<<7,128>v?(a.g+=2,F):(v=y[a.g+2],F|=(v&127)<<14,128>v?(a.g+=3,F):(v=y[a.g+3],F|=(v&127)<<21,128>v?(a.g+=4,F):(v=y[a.g+4],F|=(v&15)<<28,128>v?(a.g+=5,F>>>0):(a.g+=5,128<=y[a.g++]&&128<=y[a.g++]&&128<=y[a.g++]&&128<=y[a.g++]&&a.g++,F)))))}function je(a){var y=a.h[a.g],v=a.h[a.g+1],F=a.h[a.g+2],E=a.h[a.g+3];return a.g+=4,v=(y<<0|v<<8|F<<16|E<<24)>>>0,a=2*(v>>31)+1,y=v>>>23&255,v&=8388607,y==255?v?NaN:1/0*a:y==0?a*Math.pow(2,-149)*v:a*Math.pow(2,y-150)*(v+Math.pow(2,23))}var Ve=[];function Pt(){this.g=new Uint8Array(64),this.h=0}Pt.prototype.push=function(a){if(!(this.h+1<this.g.length)){var y=this.g;this.g=new Uint8Array(Math.ceil(1+2*this.g.length)),this.g.set(y)}this.g[this.h++]=a},Pt.prototype.length=function(){return this.h},Pt.prototype.end=function(){var a=this.g,y=this.h;return this.h=0,pn(a,0,y)};function he(a,y){for(;127<y;)a.push(y&127|128),y>>>=7;a.push(y)}function ve(a){var y={},v=y.N===void 0?!1:y.N;this.o={v:y.v===void 0?!1:y.v},this.N=v,y=this.o,Ve.length?(v=Ve.pop(),y&&(v.v=y.v),a&&oe(v,a),a=v):a=new ze(a,y),this.g=a,this.m=this.g.g,this.h=this.i=this.l=-1,this.j=!1}ve.prototype.reset=function(){this.g.reset(),this.h=this.l=-1};function gt(a){var y=a.g;if((y=y.g==y.i)||(y=a.j)||(y=a.g,y=y.l||0>y.g||y.g>y.i),y)return!1;a.m=a.g.g,y=ue(a.g);var v=y&7;return v!=0&&v!=5&&v!=1&&v!=2&&v!=3&&v!=4?(a.j=!0,!1):(a.i=y,a.l=y>>>3,a.h=v,!0)}function me(a){switch(a.h){case 0:if(a.h!=0)me(a);else{for(a=a.g;a.h[a.g]&128;)a.g++;a.g++}break;case 1:a.h!=1?me(a):(a=a.g,a.g+=8);break;case 2:if(a.h!=2)me(a);else{var y=ue(a.g);a=a.g,a.g+=y}break;case 5:a.h!=5?me(a):(a=a.g,a.g+=4);break;case 3:y=a.l;do{if(!gt(a)){a.j=!0;break}if(a.h==4){a.l!=y&&(a.j=!0);break}me(a)}while(1);break;default:a.j=!0}}function _t(a,y,v){var F=a.g.i,E=ue(a.g);return E=a.g.g+E,a.g.i=E,v(y,a),a.g.g=E,a.g.i=F,y}function te(a){var y=ue(a.g);a=a.g;var v=a.g;a.g+=y,a=a.h;var F;if(an)(F=ye)||(F=ye=new TextDecoder("utf-8",{fatal:!1})),F=F.decode(a.subarray(v,v+y));else{y=v+y;for(var E=[],B=null,k,O,D;v<y;)k=a[v++],128>k?E.push(k):224>k?v>=y?E.push(65533):(O=a[v++],194>k||(O&192)!==128?(v--,E.push(65533)):E.push((k&31)<<6|O&63)):240>k?v>=y-1?E.push(65533):(O=a[v++],(O&192)!==128||k===224&&160>O||k===237&&160<=O||((F=a[v++])&192)!==128?(v--,E.push(65533)):E.push((k&15)<<12|(O&63)<<6|F&63)):244>=k?v>=y-2?E.push(65533):(O=a[v++],(O&192)!==128||(k<<28)+(O-144)>>30!==0||((F=a[v++])&192)!==128||((D=a[v++])&192)!==128?(v--,E.push(65533)):(k=(k&7)<<18|(O&63)<<12|(F&63)<<6|D&63,k-=65536,E.push((k>>10&1023)+55296,(k&1023)+56320))):E.push(65533),8192<=E.length&&(B=vt(B,E),E.length=0);F=vt(B,E)}return F}function be(){this.h=[],this.i=0,this.g=new Pt}function _e(a,y){y.length!==0&&(a.h.push(y),a.i+=y.length)}function Ge(a){var y=a.i+a.g.length();if(y===0)return new Uint8Array(0);y=new Uint8Array(y);for(var v=a.h,F=v.length,E=0,B=0;B<F;B++){var k=v[B];k.length!==0&&(y.set(k,E),E+=k.length)}return v=a.g,F=v.h,F!==0&&(y.set(v.g.subarray(0,F),E),v.h=0),a.h=[y],y}function Yt(a,y,v){if(v!=null){he(a.g,8*y+5),a=a.g;var F=v;F=(v=0>F?1:0)?-F:F,F===0?0<1/F?re=pe=0:(pe=0,re=2147483648):isNaN(F)?(pe=0,re=2147483647):34028234663852886e22<F?(pe=0,re=(v<<31|2139095040)>>>0):11754943508222875e-54>F?(F=Math.round(F/Math.pow(2,-149)),pe=0,re=(v<<31|F)>>>0):(y=Math.floor(Math.log(F)/Math.LN2),F*=Math.pow(2,-y),F=Math.round(8388608*F)&8388607,pe=0,re=(v<<31|y+127<<23|F)>>>0),v=re,a.push(v>>>0&255),a.push(v>>>8&255),a.push(v>>>16&255),a.push(v>>>24&255)}}var xe=typeof Uint8Array=="function";function Ue(a,y,v){if(a!=null)return typeof a=="object"?xe&&a instanceof Uint8Array?v(a):Xe(a,y,v):y(a)}function Xe(a,y,v){if(Array.isArray(a)){for(var F=Array(a.length),E=0;E<a.length;E++)F[E]=Ue(a[E],y,v);return Array.isArray(a)&&a.W&&$e(F),F}F={};for(E in a)F[E]=Ue(a[E],y,v);return F}function Xn(a){return typeof a=="number"?isFinite(a)?a:String(a):a}var rn={W:{value:!0,configurable:!0}};function $e(a){return Array.isArray(a)&&!Object.isFrozen(a)&&Object.defineProperties(a,rn),a}var Zn;function Mt(a,y,v){var F=Zn;Zn=null,a||(a=F),F=this.constructor.ca,a||(a=F?[F]:[]),this.j=F?0:-1,this.i=null,this.g=a;t:{if(F=this.g.length,a=F-1,F&&(F=this.g[a],F!==null&&typeof F=="object"&&F.constructor===Object)){this.l=a-this.j,this.h=F;break t}y!==void 0&&-1<y?(this.l=Math.max(y,a+1-this.j),this.h=null):this.l=Number.MAX_VALUE}if(v)for(y=0;y<v.length;y++)a=v[y],a<this.l?(a+=this.j,(F=this.g[a])?$e(F):this.g[a]=Re):(Qt(this),(F=this.h[a])?$e(F):this.h[a]=Re)}var Re=Object.freeze($e([]));function Qt(a){var y=a.l+a.j;a.g[y]||(a.h=a.g[y]={})}function Et(a,y,v){return y===-1?null:(v===void 0?0:v)||y>=a.l?a.h?a.h[y]:void 0:a.g[y+a.j]}function qe(a){var y=y===void 0?!1:y,v=Et(a,1,y);return v==null&&(v=Re),v===Re&&(v=$e([]),Gt(a,1,v,y)),v}function xt(a,y,v){return a=Et(a,y),a=a==null?a:+a,a==null?v===void 0?0:v:a}function Gt(a,y,v,F){(F===void 0?0:F)||y>=a.l?(Qt(a),a.h[y]=v):a.g[y+a.j]=v}function un(a,y){a.i||(a.i={});var v=a.i[1];if(!v){var F=qe(a);v=[];for(var E=0;E<F.length;E++)v[E]=new y(F[E]);a.i[1]=v}return v}function Bt(a,y,v,F){var E=un(a,v);y=y||new v,a=qe(a),F!=null?(E.splice(F,0,y),a.splice(F,0,at(y))):(E.push(y),a.push(at(y)))}Mt.prototype.toJSON=function(){var a=at(this);return Xe(a,Xn,nn)};function at(a,y){if(a.i)for(var v in a.i){var F=a.i[v];if(Array.isArray(F))for(var E=0;E<F.length;E++)F[E]&&at(F[E]);else F&&at(F)}return a.g}Mt.prototype.toString=function(){return at(this).toString()};function it(a,y){return a=Et(a,y),a==null?0:a}function ee(a,y){return a=Et(a,y),a==null?"":a}function Ie(a,y){if(a=a.m){_e(y,y.g.end());for(var v=0;v<a.length;v++)_e(y,a[v])}}function It(a,y){if(y.h==4)return!1;var v=y.m;return me(y),y.N||(y=pn(y.g.h,v,y.g.g),(v=a.m)?v.push(y):a.m=[y]),!0}function ne(a,y){var v=void 0;return new(v||(v=Promise))(function(F,E){function B(D){try{O(y.next(D))}catch(rt){E(rt)}}function k(D){try{O(y.throw(D))}catch(rt){E(rt)}}function O(D){D.done?F(D.value):new v(function(rt){rt(D.value)}).then(B,k)}O((y=y.apply(a,void 0)).next())})}function we(a){Mt.call(this,a)}yt(we,Mt);function Kt(a,y){for(;gt(y);)switch(y.i){case 8:var v=ue(y.g);Gt(a,1,v);break;case 21:v=je(y.g),Gt(a,2,v);break;case 26:v=te(y),Gt(a,3,v);break;case 34:v=te(y),Gt(a,4,v);break;default:if(!It(a,y))return a}return a}function Vt(a){Mt.call(this,a,-1,Ke)}yt(Vt,Mt),Vt.prototype.addClassification=function(a,y){Bt(this,a,we,y)};var Ke=[1];function ke(a){Mt.call(this,a)}yt(ke,Mt);function Ee(a,y){for(;gt(y);)switch(y.i){case 13:var v=je(y.g);Gt(a,1,v);break;case 21:v=je(y.g),Gt(a,2,v);break;case 29:v=je(y.g),Gt(a,3,v);break;case 37:v=je(y.g),Gt(a,4,v);break;case 45:v=je(y.g),Gt(a,5,v);break;default:if(!It(a,y))return a}return a}function Tt(a){Mt.call(this,a,-1,Le)}yt(Tt,Mt);var Le=[1];function mn(a){Mt.call(this,a)}yt(mn,Mt);function Ae(a,y,v){if(v=a.createShader(v===0?a.VERTEX_SHADER:a.FRAGMENT_SHADER),a.shaderSource(v,y),a.compileShader(v),!a.getShaderParameter(v,a.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
1
|
+
(function(Rn,ir){typeof exports=="object"&&typeof module!="undefined"?ir(exports):typeof define=="function"&&define.amd?define(["exports"],ir):(Rn=typeof globalThis!="undefined"?globalThis:Rn||self,ir(Rn["ml-transformers"]={}))})(this,function(Rn){"use strict";function ir(){return new Promise((V,v)=>{typeof MediaStreamTrackProcessor=="undefined"||typeof MediaStreamTrackGenerator=="undefined"?v("Your browser does not support the MediaStreamTrack API for Insertable Streams of Media."):V()})}var qr={exports:{}},ti=function(v,W){return function(){for(var x=new Array(arguments.length),A=0;A<x.length;A++)x[A]=arguments[A];return v.apply(W,x)}},ki=ti,Kn=Object.prototype.toString;function Yr(V){return Array.isArray(V)}function Ur(V){return typeof V=="undefined"}function Hi(V){return V!==null&&!Ur(V)&&V.constructor!==null&&!Ur(V.constructor)&&typeof V.constructor.isBuffer=="function"&&V.constructor.isBuffer(V)}function ei(V){return Kn.call(V)==="[object ArrayBuffer]"}function ji(V){return Kn.call(V)==="[object FormData]"}function Ji(V){var v;return typeof ArrayBuffer!="undefined"&&ArrayBuffer.isView?v=ArrayBuffer.isView(V):v=V&&V.buffer&&ei(V.buffer),v}function Ci(V){return typeof V=="string"}function Ai(V){return typeof V=="number"}function ni(V){return V!==null&&typeof V=="object"}function ar(V){if(Kn.call(V)!=="[object Object]")return!1;var v=Object.getPrototypeOf(V);return v===null||v===Object.prototype}function Oi(V){return Kn.call(V)==="[object Date]"}function Ki(V){return Kn.call(V)==="[object File]"}function _i(V){return Kn.call(V)==="[object Blob]"}function ri(V){return Kn.call(V)==="[object Function]"}function Pi(V){return ni(V)&&ri(V.pipe)}function Bi(V){return Kn.call(V)==="[object URLSearchParams]"}function Mi(V){return V.trim?V.trim():V.replace(/^\s+|\s+$/g,"")}function zi(){return typeof navigator!="undefined"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window!="undefined"&&typeof document!="undefined"}function kr(V,v){if(!(V===null||typeof V=="undefined"))if(typeof V!="object"&&(V=[V]),Yr(V))for(var W=0,I=V.length;W<I;W++)v.call(null,V[W],W,V);else for(var x in V)Object.prototype.hasOwnProperty.call(V,x)&&v.call(null,V[x],x,V)}function Hr(){var V={};function v(x,A){ar(V[A])&&ar(x)?V[A]=Hr(V[A],x):ar(x)?V[A]=Hr({},x):Yr(x)?V[A]=x.slice():V[A]=x}for(var W=0,I=arguments.length;W<I;W++)kr(arguments[W],v);return V}function Qi(V,v,W){return kr(v,function(x,A){W&&typeof x=="function"?V[A]=ki(x,W):V[A]=x}),V}function Di(V){return V.charCodeAt(0)===65279&&(V=V.slice(1)),V}var En={isArray:Yr,isArrayBuffer:ei,isBuffer:Hi,isFormData:ji,isArrayBufferView:Ji,isString:Ci,isNumber:Ai,isObject:ni,isPlainObject:ar,isUndefined:Ur,isDate:Oi,isFile:Ki,isBlob:_i,isFunction:ri,isStream:Pi,isURLSearchParams:Bi,isStandardBrowserEnv:zi,forEach:kr,merge:Hr,extend:Qi,trim:Mi,stripBOM:Di},Qn=En;function ii(V){return encodeURIComponent(V).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var oi=function(v,W,I){if(!W)return v;var x;if(I)x=I(W);else if(Qn.isURLSearchParams(W))x=W.toString();else{var A=[];Qn.forEach(W,function(pt,_e){pt===null||typeof pt=="undefined"||(Qn.isArray(pt)?_e=_e+"[]":pt=[pt],Qn.forEach(pt,function(jt){Qn.isDate(jt)?jt=jt.toISOString():Qn.isObject(jt)&&(jt=JSON.stringify(jt)),A.push(ii(_e)+"="+ii(jt))}))}),x=A.join("&")}if(x){var Q=v.indexOf("#");Q!==-1&&(v=v.slice(0,Q)),v+=(v.indexOf("?")===-1?"?":"&")+x}return v},$i=En;function fr(){this.handlers=[]}fr.prototype.use=function(v,W,I){return this.handlers.push({fulfilled:v,rejected:W,synchronous:I?I.synchronous:!1,runWhen:I?I.runWhen:null}),this.handlers.length-1},fr.prototype.eject=function(v){this.handlers[v]&&(this.handlers[v]=null)},fr.prototype.forEach=function(v){$i.forEach(this.handlers,function(I){I!==null&&v(I)})};var qi=fr,to=En,eo=function(v,W){to.forEach(v,function(x,A){A!==W&&A.toUpperCase()===W.toUpperCase()&&(v[W]=x,delete v[A])})},ui=function(v,W,I,x,A){return v.config=W,I&&(v.code=I),v.request=x,v.response=A,v.isAxiosError=!0,v.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}},v},no=ui,si=function(v,W,I,x,A){var Q=new Error(v);return no(Q,W,I,x,A)},ro=si,io=function(v,W,I){var x=I.config.validateStatus;!I.status||!x||x(I.status)?v(I):W(ro("Request failed with status code "+I.status,I.config,null,I.request,I))},hr=En,oo=hr.isStandardBrowserEnv()?function(){return{write:function(W,I,x,A,Q,C){var pt=[];pt.push(W+"="+encodeURIComponent(I)),hr.isNumber(x)&&pt.push("expires="+new Date(x).toGMTString()),hr.isString(A)&&pt.push("path="+A),hr.isString(Q)&&pt.push("domain="+Q),C===!0&&pt.push("secure"),document.cookie=pt.join("; ")},read:function(W){var I=document.cookie.match(new RegExp("(^|;\\s*)("+W+")=([^;]*)"));return I?decodeURIComponent(I[3]):null},remove:function(W){this.write(W,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}(),uo=function(v){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(v)},so=function(v,W){return W?v.replace(/\/+$/,"")+"/"+W.replace(/^\/+/,""):v},lo=uo,co=so,ao=function(v,W){return v&&!lo(W)?co(v,W):W},jr=En,fo=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"],ho=function(v){var W={},I,x,A;return v&&jr.forEach(v.split(`
|
|
2
|
+
`),function(C){if(A=C.indexOf(":"),I=jr.trim(C.substr(0,A)).toLowerCase(),x=jr.trim(C.substr(A+1)),I){if(W[I]&&fo.indexOf(I)>=0)return;I==="set-cookie"?W[I]=(W[I]?W[I]:[]).concat([x]):W[I]=W[I]?W[I]+", "+x:x}}),W},li=En,po=li.isStandardBrowserEnv()?function(){var v=/(msie|trident)/i.test(navigator.userAgent),W=document.createElement("a"),I;function x(A){var Q=A;return v&&(W.setAttribute("href",Q),Q=W.href),W.setAttribute("href",Q),{href:W.href,protocol:W.protocol?W.protocol.replace(/:$/,""):"",host:W.host,search:W.search?W.search.replace(/^\?/,""):"",hash:W.hash?W.hash.replace(/^#/,""):"",hostname:W.hostname,port:W.port,pathname:W.pathname.charAt(0)==="/"?W.pathname:"/"+W.pathname}}return I=x(window.location.href),function(Q){var C=li.isString(Q)?x(Q):Q;return C.protocol===I.protocol&&C.host===I.host}}():function(){return function(){return!0}}();function Jr(V){this.message=V}Jr.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},Jr.prototype.__CANCEL__=!0;var pr=Jr,dr=En,go=io,mo=oo,yo=oi,vo=ao,bo=ho,Zo=po,Cr=si,Go=mr,Ro=pr,ci=function(v){return new Promise(function(I,x){var A=v.data,Q=v.headers,C=v.responseType,pt;function _e(){v.cancelToken&&v.cancelToken.unsubscribe(pt),v.signal&&v.signal.removeEventListener("abort",pt)}dr.isFormData(A)&&delete Q["Content-Type"];var ct=new XMLHttpRequest;if(v.auth){var jt=v.auth.username||"",qe=v.auth.password?unescape(encodeURIComponent(v.auth.password)):"";Q.Authorization="Basic "+btoa(jt+":"+qe)}var fe=vo(v.baseURL,v.url);ct.open(v.method.toUpperCase(),yo(fe,v.params,v.paramsSerializer),!0),ct.timeout=v.timeout;function He(){if(!!ct){var ue="getAllResponseHeaders"in ct?bo(ct.getAllResponseHeaders()):null,pe=!C||C==="text"||C==="json"?ct.responseText:ct.response,he={data:pe,status:ct.status,statusText:ct.statusText,headers:ue,config:v,request:ct};go(function(Fn){I(Fn),_e()},function(Fn){x(Fn),_e()},he),ct=null}}if("onloadend"in ct?ct.onloadend=He:ct.onreadystatechange=function(){!ct||ct.readyState!==4||ct.status===0&&!(ct.responseURL&&ct.responseURL.indexOf("file:")===0)||setTimeout(He)},ct.onabort=function(){!ct||(x(Cr("Request aborted",v,"ECONNABORTED",ct)),ct=null)},ct.onerror=function(){x(Cr("Network Error",v,null,ct)),ct=null},ct.ontimeout=function(){var pe=v.timeout?"timeout of "+v.timeout+"ms exceeded":"timeout exceeded",he=v.transitional||Go.transitional;v.timeoutErrorMessage&&(pe=v.timeoutErrorMessage),x(Cr(pe,v,he.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",ct)),ct=null},dr.isStandardBrowserEnv()){var Lt=(v.withCredentials||Zo(fe))&&v.xsrfCookieName?mo.read(v.xsrfCookieName):void 0;Lt&&(Q[v.xsrfHeaderName]=Lt)}"setRequestHeader"in ct&&dr.forEach(Q,function(pe,he){typeof A=="undefined"&&he.toLowerCase()==="content-type"?delete Q[he]:ct.setRequestHeader(he,pe)}),dr.isUndefined(v.withCredentials)||(ct.withCredentials=!!v.withCredentials),C&&C!=="json"&&(ct.responseType=v.responseType),typeof v.onDownloadProgress=="function"&&ct.addEventListener("progress",v.onDownloadProgress),typeof v.onUploadProgress=="function"&&ct.upload&&ct.upload.addEventListener("progress",v.onUploadProgress),(v.cancelToken||v.signal)&&(pt=function(ue){!ct||(x(!ue||ue&&ue.type?new Ro("canceled"):ue),ct.abort(),ct=null)},v.cancelToken&&v.cancelToken.subscribe(pt),v.signal&&(v.signal.aborted?pt():v.signal.addEventListener("abort",pt))),A||(A=null),ct.send(A)})},Tn=En,ai=eo,Xo=ui,wo={"Content-Type":"application/x-www-form-urlencoded"};function fi(V,v){!Tn.isUndefined(V)&&Tn.isUndefined(V["Content-Type"])&&(V["Content-Type"]=v)}function Wo(){var V;return(typeof XMLHttpRequest!="undefined"||typeof process!="undefined"&&Object.prototype.toString.call(process)==="[object process]")&&(V=ci),V}function Vo(V,v,W){if(Tn.isString(V))try{return(v||JSON.parse)(V),Tn.trim(V)}catch(I){if(I.name!=="SyntaxError")throw I}return(W||JSON.stringify)(V)}var gr={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:Wo(),transformRequest:[function(v,W){return ai(W,"Accept"),ai(W,"Content-Type"),Tn.isFormData(v)||Tn.isArrayBuffer(v)||Tn.isBuffer(v)||Tn.isStream(v)||Tn.isFile(v)||Tn.isBlob(v)?v:Tn.isArrayBufferView(v)?v.buffer:Tn.isURLSearchParams(v)?(fi(W,"application/x-www-form-urlencoded;charset=utf-8"),v.toString()):Tn.isObject(v)||W&&W["Content-Type"]==="application/json"?(fi(W,"application/json"),Vo(v)):v}],transformResponse:[function(v){var W=this.transitional||gr.transitional,I=W&&W.silentJSONParsing,x=W&&W.forcedJSONParsing,A=!I&&this.responseType==="json";if(A||x&&Tn.isString(v)&&v.length)try{return JSON.parse(v)}catch(Q){if(A)throw Q.name==="SyntaxError"?Xo(Q,this,"E_JSON_PARSE"):Q}return v}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(v){return v>=200&&v<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};Tn.forEach(["delete","get","head"],function(v){gr.headers[v]={}}),Tn.forEach(["post","put","patch"],function(v){gr.headers[v]=Tn.merge(wo)});var mr=gr,So=En,To=mr,Fo=function(v,W,I){var x=this||To;return So.forEach(I,function(Q){v=Q.call(x,v,W)}),v},hi=function(v){return!!(v&&v.__CANCEL__)},pi=En,Ar=Fo,xo=hi,Lo=mr,Io=pr;function Or(V){if(V.cancelToken&&V.cancelToken.throwIfRequested(),V.signal&&V.signal.aborted)throw new Io("canceled")}var No=function(v){Or(v),v.headers=v.headers||{},v.data=Ar.call(v,v.data,v.headers,v.transformRequest),v.headers=pi.merge(v.headers.common||{},v.headers[v.method]||{},v.headers),pi.forEach(["delete","get","head","post","put","patch","common"],function(x){delete v.headers[x]});var W=v.adapter||Lo.adapter;return W(v).then(function(x){return Or(v),x.data=Ar.call(v,x.data,x.headers,v.transformResponse),x},function(x){return xo(x)||(Or(v),x&&x.response&&(x.response.data=Ar.call(v,x.response.data,x.response.headers,v.transformResponse))),Promise.reject(x)})},kn=En,di=function(v,W){W=W||{};var I={};function x(ct,jt){return kn.isPlainObject(ct)&&kn.isPlainObject(jt)?kn.merge(ct,jt):kn.isPlainObject(jt)?kn.merge({},jt):kn.isArray(jt)?jt.slice():jt}function A(ct){if(kn.isUndefined(W[ct])){if(!kn.isUndefined(v[ct]))return x(void 0,v[ct])}else return x(v[ct],W[ct])}function Q(ct){if(!kn.isUndefined(W[ct]))return x(void 0,W[ct])}function C(ct){if(kn.isUndefined(W[ct])){if(!kn.isUndefined(v[ct]))return x(void 0,v[ct])}else return x(void 0,W[ct])}function pt(ct){if(ct in W)return x(v[ct],W[ct]);if(ct in v)return x(void 0,v[ct])}var _e={url:Q,method:Q,data:Q,baseURL:C,transformRequest:C,transformResponse:C,paramsSerializer:C,timeout:C,timeoutMessage:C,withCredentials:C,adapter:C,responseType:C,xsrfCookieName:C,xsrfHeaderName:C,onUploadProgress:C,onDownloadProgress:C,decompress:C,maxContentLength:C,maxBodyLength:C,transport:C,httpAgent:C,httpsAgent:C,cancelToken:C,socketPath:C,responseEncoding:C,validateStatus:pt};return kn.forEach(Object.keys(v).concat(Object.keys(W)),function(jt){var qe=_e[jt]||A,fe=qe(jt);kn.isUndefined(fe)&&qe!==pt||(I[jt]=fe)}),I},gi={version:"0.25.0"},Eo=gi.version,Kr={};["object","boolean","number","function","string","symbol"].forEach(function(V,v){Kr[V]=function(I){return typeof I===V||"a"+(v<1?"n ":" ")+V}});var mi={};Kr.transitional=function(v,W,I){function x(A,Q){return"[Axios v"+Eo+"] Transitional option '"+A+"'"+Q+(I?". "+I:"")}return function(A,Q,C){if(v===!1)throw new Error(x(Q," has been removed"+(W?" in "+W:"")));return W&&!mi[Q]&&(mi[Q]=!0,console.warn(x(Q," has been deprecated since v"+W+" and will be removed in the near future"))),v?v(A,Q,C):!0}};function Yo(V,v,W){if(typeof V!="object")throw new TypeError("options must be an object");for(var I=Object.keys(V),x=I.length;x-- >0;){var A=I[x],Q=v[A];if(Q){var C=V[A],pt=C===void 0||Q(C,A,V);if(pt!==!0)throw new TypeError("option "+A+" must be "+pt);continue}if(W!==!0)throw Error("Unknown option "+A)}}var Uo={assertOptions:Yo,validators:Kr},yi=En,ko=oi,vi=qi,bi=No,yr=di,Zi=Uo,Dn=Zi.validators;function or(V){this.defaults=V,this.interceptors={request:new vi,response:new vi}}or.prototype.request=function(v,W){if(typeof v=="string"?(W=W||{},W.url=v):W=v||{},!W.url)throw new Error("Provided config url is not valid");W=yr(this.defaults,W),W.method?W.method=W.method.toLowerCase():this.defaults.method?W.method=this.defaults.method.toLowerCase():W.method="get";var I=W.transitional;I!==void 0&&Zi.assertOptions(I,{silentJSONParsing:Dn.transitional(Dn.boolean),forcedJSONParsing:Dn.transitional(Dn.boolean),clarifyTimeoutError:Dn.transitional(Dn.boolean)},!1);var x=[],A=!0;this.interceptors.request.forEach(function(fe){typeof fe.runWhen=="function"&&fe.runWhen(W)===!1||(A=A&&fe.synchronous,x.unshift(fe.fulfilled,fe.rejected))});var Q=[];this.interceptors.response.forEach(function(fe){Q.push(fe.fulfilled,fe.rejected)});var C;if(!A){var pt=[bi,void 0];for(Array.prototype.unshift.apply(pt,x),pt=pt.concat(Q),C=Promise.resolve(W);pt.length;)C=C.then(pt.shift(),pt.shift());return C}for(var _e=W;x.length;){var ct=x.shift(),jt=x.shift();try{_e=ct(_e)}catch(qe){jt(qe);break}}try{C=bi(_e)}catch(qe){return Promise.reject(qe)}for(;Q.length;)C=C.then(Q.shift(),Q.shift());return C},or.prototype.getUri=function(v){if(!v.url)throw new Error("Provided config url is not valid");return v=yr(this.defaults,v),ko(v.url,v.params,v.paramsSerializer).replace(/^\?/,"")},yi.forEach(["delete","get","head","options"],function(v){or.prototype[v]=function(W,I){return this.request(yr(I||{},{method:v,url:W,data:(I||{}).data}))}}),yi.forEach(["post","put","patch"],function(v){or.prototype[v]=function(W,I,x){return this.request(yr(x||{},{method:v,url:W,data:I}))}});var Ho=or,jo=pr;function $n(V){if(typeof V!="function")throw new TypeError("executor must be a function.");var v;this.promise=new Promise(function(x){v=x});var W=this;this.promise.then(function(I){if(!!W._listeners){var x,A=W._listeners.length;for(x=0;x<A;x++)W._listeners[x](I);W._listeners=null}}),this.promise.then=function(I){var x,A=new Promise(function(Q){W.subscribe(Q),x=Q}).then(I);return A.cancel=function(){W.unsubscribe(x)},A},V(function(x){W.reason||(W.reason=new jo(x),v(W.reason))})}$n.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},$n.prototype.subscribe=function(v){if(this.reason){v(this.reason);return}this._listeners?this._listeners.push(v):this._listeners=[v]},$n.prototype.unsubscribe=function(v){if(!!this._listeners){var W=this._listeners.indexOf(v);W!==-1&&this._listeners.splice(W,1)}},$n.source=function(){var v,W=new $n(function(x){v=x});return{token:W,cancel:v}};var Jo=$n,Co=function(v){return function(I){return v.apply(null,I)}},Ao=En,Oo=function(v){return Ao.isObject(v)&&v.isAxiosError===!0},Gi=En,Ko=ti,vr=Ho,_o=di,Po=mr;function Ri(V){var v=new vr(V),W=Ko(vr.prototype.request,v);return Gi.extend(W,vr.prototype,v),Gi.extend(W,v),W.create=function(x){return Ri(_o(V,x))},W}var An=Ri(Po);An.Axios=vr,An.Cancel=pr,An.CancelToken=Jo,An.isCancel=hi,An.VERSION=gi.version,An.all=function(v){return Promise.all(v)},An.spread=Co,An.isAxiosError=Oo,qr.exports=An,qr.exports.default=An;function Bo(){return globalThis._vonageMediaProcessorMetadata}for(var Mo=[],_r=0;_r<256;++_r)Mo.push((_r+256).toString(16).substr(1));const _n=new WeakMap,br=new WeakMap,ur=new WeakMap,Pr=Symbol("anyProducer"),Xi=Promise.resolve(),Zr=Symbol("listenerAdded"),Gr=Symbol("listenerRemoved");let Br=!1;function qn(V){if(typeof V!="string"&&typeof V!="symbol")throw new TypeError("eventName must be a string or a symbol")}function Rr(V){if(typeof V!="function")throw new TypeError("listener must be a function")}function tr(V,v){const W=br.get(V);return W.has(v)||W.set(v,new Set),W.get(v)}function sr(V,v){const W=typeof v=="string"||typeof v=="symbol"?v:Pr,I=ur.get(V);return I.has(W)||I.set(W,new Set),I.get(W)}function zo(V,v,W){const I=ur.get(V);if(I.has(v))for(const x of I.get(v))x.enqueue(W);if(I.has(Pr)){const x=Promise.all([v,W]);for(const A of I.get(Pr))A.enqueue(x)}}function wi(V,v){v=Array.isArray(v)?v:[v];let W=!1,I=()=>{},x=[];const A={enqueue(Q){x.push(Q),I()},finish(){W=!0,I()}};for(const Q of v)sr(V,Q).add(A);return{async next(){return x?x.length===0?W?(x=void 0,this.next()):(await new Promise(Q=>{I=Q}),this.next()):{done:!1,value:await x.shift()}:{done:!0}},async return(Q){x=void 0;for(const C of v)sr(V,C).delete(A);return I(),arguments.length>0?{done:!0,value:await Q}:{done:!0}},[Symbol.asyncIterator](){return this}}}function Wi(V){if(V===void 0)return Vi;if(!Array.isArray(V))throw new TypeError("`methodNames` must be an array of strings");for(const v of V)if(!Vi.includes(v))throw typeof v!="string"?new TypeError("`methodNames` element must be a string"):new Error(`${v} is not Emittery method`);return V}const Mr=V=>V===Zr||V===Gr;class er{static mixin(v,W){return W=Wi(W),I=>{if(typeof I!="function")throw new TypeError("`target` must be function");for(const Q of W)if(I.prototype[Q]!==void 0)throw new Error(`The property \`${Q}\` already exists on \`target\``);function x(){return Object.defineProperty(this,v,{enumerable:!1,value:new er}),this[v]}Object.defineProperty(I.prototype,v,{enumerable:!1,get:x});const A=Q=>function(...C){return this[v][Q](...C)};for(const Q of W)Object.defineProperty(I.prototype,Q,{enumerable:!1,value:A(Q)});return I}}static get isDebugEnabled(){if(typeof process!="object")return Br;const{env:v}=process||{env:{}};return v.DEBUG==="emittery"||v.DEBUG==="*"||Br}static set isDebugEnabled(v){Br=v}constructor(v={}){_n.set(this,new Set),br.set(this,new Map),ur.set(this,new Map),this.debug=v.debug||{},this.debug.enabled===void 0&&(this.debug.enabled=!1),this.debug.logger||(this.debug.logger=(W,I,x,A)=>{A=JSON.stringify(A),typeof x=="symbol"&&(x=x.toString());const Q=new Date,C=`${Q.getHours()}:${Q.getMinutes()}:${Q.getSeconds()}.${Q.getMilliseconds()}`;console.log(`[${C}][emittery:${W}][${I}] Event Name: ${x}
|
|
3
|
+
data: ${A}`)})}logIfDebugEnabled(v,W,I){(er.isDebugEnabled||this.debug.enabled)&&this.debug.logger(v,this.debug.name,W,I)}on(v,W){Rr(W),v=Array.isArray(v)?v:[v];for(const I of v)qn(I),tr(this,I).add(W),this.logIfDebugEnabled("subscribe",I,void 0),Mr(I)||this.emit(Zr,{eventName:I,listener:W});return this.off.bind(this,v,W)}off(v,W){Rr(W),v=Array.isArray(v)?v:[v];for(const I of v)qn(I),tr(this,I).delete(W),this.logIfDebugEnabled("unsubscribe",I,void 0),Mr(I)||this.emit(Gr,{eventName:I,listener:W})}once(v){return new Promise(W=>{const I=this.on(v,x=>{I(),W(x)})})}events(v){v=Array.isArray(v)?v:[v];for(const W of v)qn(W);return wi(this,v)}async emit(v,W){qn(v),this.logIfDebugEnabled("emit",v,W),zo(this,v,W);const I=tr(this,v),x=_n.get(this),A=[...I],Q=Mr(v)?[]:[...x];await Xi,await Promise.all([...A.map(async C=>{if(I.has(C))return C(W)}),...Q.map(async C=>{if(x.has(C))return C(v,W)})])}async emitSerial(v,W){qn(v),this.logIfDebugEnabled("emitSerial",v,W);const I=tr(this,v),x=_n.get(this),A=[...I],Q=[...x];await Xi;for(const C of A)I.has(C)&&await C(W);for(const C of Q)x.has(C)&&await C(v,W)}onAny(v){return Rr(v),this.logIfDebugEnabled("subscribeAny",void 0,void 0),_n.get(this).add(v),this.emit(Zr,{listener:v}),this.offAny.bind(this,v)}anyEvent(){return wi(this)}offAny(v){Rr(v),this.logIfDebugEnabled("unsubscribeAny",void 0,void 0),this.emit(Gr,{listener:v}),_n.get(this).delete(v)}clearListeners(v){v=Array.isArray(v)?v:[v];for(const W of v)if(this.logIfDebugEnabled("clear",W,void 0),typeof W=="string"||typeof W=="symbol"){tr(this,W).clear();const I=sr(this,W);for(const x of I)x.finish();I.clear()}else{_n.get(this).clear();for(const I of br.get(this).values())I.clear();for(const I of ur.get(this).values()){for(const x of I)x.finish();I.clear()}}}listenerCount(v){v=Array.isArray(v)?v:[v];let W=0;for(const I of v){if(typeof I=="string"){W+=_n.get(this).size+tr(this,I).size+sr(this,I).size+sr(this).size;continue}typeof I!="undefined"&&qn(I),W+=_n.get(this).size;for(const x of br.get(this).values())W+=x.size;for(const x of ur.get(this).values())W+=x.size}return W}bindMethods(v,W){if(typeof v!="object"||v===null)throw new TypeError("`target` must be an object");W=Wi(W);for(const I of W){if(v[I]!==void 0)throw new Error(`The property \`${I}\` already exists on \`target\``);Object.defineProperty(v,I,{enumerable:!1,value:this[I].bind(this)})}}}const Vi=Object.getOwnPropertyNames(er.prototype).filter(V=>V!=="constructor");Object.defineProperty(er,"listenerAdded",{value:Zr,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(er,"listenerRemoved",{value:Gr,writable:!1,enumerable:!0,configurable:!1});var Si;(function(V){V.FPS_DROP="fps_drop"})(Si||(Si={}));class Qo{constructor(){this.processor_=null,this.generator_=null}init(v){return new Promise((W,I)=>{try{this.processor_=new MediaStreamTrackProcessor(v)}catch(x){console.log(`[InsertableStreamHelper] MediaStreamTrackProcessor failed: ${x}`),I(x)}try{v.kind==="audio"?this.generator_=new MediaStreamTrackGenerator({kind:"audio"}):v.kind==="video"?this.generator_=new MediaStreamTrackGenerator({kind:"video"}):I("kind not supported")}catch(x){console.log(`[InsertableStreamHelper] MediaStreamTrackGenerator failed: ${x}`),I(x)}W()})}getReadable(){return this.processor_.readable}getWriteable(){return this.generator_.writable}getProccesorTrack(){return this.generator_}}class Do{constructor(v){this.insertableStreamHelper_=new Qo,this.mediaProcessor_=v}setTrack(v){return new Promise((W,I)=>{this.insertableStreamHelper_.init(v).then(()=>{this.mediaProcessor_.transform(this.insertableStreamHelper_.getReadable(),this.insertableStreamHelper_.getWriteable()).then(()=>{W(this.insertableStreamHelper_.getProccesorTrack())}).catch(x=>{I(x)})}).catch(x=>{I(x)})})}destroy(){return new Promise((v,W)=>{this.mediaProcessor_?this.mediaProcessor_.destroy().then(()=>{v()}).catch(I=>{W(I)}):W("no processor")})}}const Ti="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NsYXNzIFB7fVAudXBkYXRlcz17dHJhbnNmb3JtZXJfbmV3OiJOZXcgdHJhbnNmb3JtZXIiLHRyYW5zZm9ybWVyX251bGw6Ik51bGwgdHJhbnNmb3JtZXIifSxQLmVycm9ycz17dHJhbnNmb3JtZXJfbm9uZToiTm8gdHJhbnNmb3JtZXJzIHByb3ZpZGVkIix0cmFuc2Zvcm1lcl9zdGFydDoiQ2Fubm90IHN0YXJ0IHRyYW5zZm9ybWVyIix0cmFuc2Zvcm1lcl90cmFuc2Zvcm06IkNhbm5vdCB0cmFuc2Zvcm0gZnJhbWUiLHRyYW5zZm9ybWVyX2ZsdXNoOiJDYW5ub3QgZmx1c2ggdHJhbnNmb3JtZXIiLHJlYWRhYmxlX251bGw6IlJlYWRhYmxlIGlzIG51bGwiLHdyaXRhYmxlX251bGw6IldyaXRhYmxlIGlzIG51bGwifTt2YXIgZWU9e2V4cG9ydHM6e319LEVlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBuPW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoKSxvPTA7bzxuLmxlbmd0aDtvKyspbltvXT1hcmd1bWVudHNbb107cmV0dXJuIGUuYXBwbHkodCxuKX19LHJ0PUVlLFI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiB0ZShyKXtyZXR1cm4gQXJyYXkuaXNBcnJheShyKX1mdW5jdGlvbiByZShyKXtyZXR1cm4gdHlwZW9mIHI9PSJ1bmRlZmluZWQifWZ1bmN0aW9uIHN0KHIpe3JldHVybiByIT09bnVsbCYmIXJlKHIpJiZyLmNvbnN0cnVjdG9yIT09bnVsbCYmIXJlKHIuY29uc3RydWN0b3IpJiZ0eXBlb2Ygci5jb25zdHJ1Y3Rvci5pc0J1ZmZlcj09ImZ1bmN0aW9uIiYmci5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihyKX1mdW5jdGlvbiBUZShyKXtyZXR1cm4gUi5jYWxsKHIpPT09IltvYmplY3QgQXJyYXlCdWZmZXJdIn1mdW5jdGlvbiBudChyKXtyZXR1cm4gUi5jYWxsKHIpPT09IltvYmplY3QgRm9ybURhdGFdIn1mdW5jdGlvbiBpdChyKXt2YXIgZTtyZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyIT0idW5kZWZpbmVkIiYmQXJyYXlCdWZmZXIuaXNWaWV3P2U9QXJyYXlCdWZmZXIuaXNWaWV3KHIpOmU9ciYmci5idWZmZXImJlRlKHIuYnVmZmVyKSxlfWZ1bmN0aW9uIG90KHIpe3JldHVybiB0eXBlb2Ygcj09InN0cmluZyJ9ZnVuY3Rpb24gYXQocil7cmV0dXJuIHR5cGVvZiByPT0ibnVtYmVyIn1mdW5jdGlvbiBQZShyKXtyZXR1cm4gciE9PW51bGwmJnR5cGVvZiByPT0ib2JqZWN0In1mdW5jdGlvbiBEKHIpe2lmKFIuY2FsbChyKSE9PSJbb2JqZWN0IE9iamVjdF0iKXJldHVybiExO3ZhciBlPU9iamVjdC5nZXRQcm90b3R5cGVPZihyKTtyZXR1cm4gZT09PW51bGx8fGU9PT1PYmplY3QucHJvdG90eXBlfWZ1bmN0aW9uIHV0KHIpe3JldHVybiBSLmNhbGwocik9PT0iW29iamVjdCBEYXRlXSJ9ZnVuY3Rpb24gbHQocil7cmV0dXJuIFIuY2FsbChyKT09PSJbb2JqZWN0IEZpbGVdIn1mdW5jdGlvbiBjdChyKXtyZXR1cm4gUi5jYWxsKHIpPT09IltvYmplY3QgQmxvYl0ifWZ1bmN0aW9uIFJlKHIpe3JldHVybiBSLmNhbGwocik9PT0iW29iamVjdCBGdW5jdGlvbl0ifWZ1bmN0aW9uIGZ0KHIpe3JldHVybiBQZShyKSYmUmUoci5waXBlKX1mdW5jdGlvbiBodChyKXtyZXR1cm4gUi5jYWxsKHIpPT09IltvYmplY3QgVVJMU2VhcmNoUGFyYW1zXSJ9ZnVuY3Rpb24gZHQocil7cmV0dXJuIHIudHJpbT9yLnRyaW0oKTpyLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX1mdW5jdGlvbiBwdCgpe3JldHVybiB0eXBlb2YgbmF2aWdhdG9yIT0idW5kZWZpbmVkIiYmKG5hdmlnYXRvci5wcm9kdWN0PT09IlJlYWN0TmF0aXZlInx8bmF2aWdhdG9yLnByb2R1Y3Q9PT0iTmF0aXZlU2NyaXB0Inx8bmF2aWdhdG9yLnByb2R1Y3Q9PT0iTlMiKT8hMTp0eXBlb2Ygd2luZG93IT0idW5kZWZpbmVkIiYmdHlwZW9mIGRvY3VtZW50IT0idW5kZWZpbmVkIn1mdW5jdGlvbiBzZShyLGUpe2lmKCEocj09PW51bGx8fHR5cGVvZiByPT0idW5kZWZpbmVkIikpaWYodHlwZW9mIHIhPSJvYmplY3QiJiYocj1bcl0pLHRlKHIpKWZvcih2YXIgdD0wLHM9ci5sZW5ndGg7dDxzO3QrKyllLmNhbGwobnVsbCxyW3RdLHQscik7ZWxzZSBmb3IodmFyIG4gaW4gcilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixuKSYmZS5jYWxsKG51bGwscltuXSxuLHIpfWZ1bmN0aW9uIG5lKCl7dmFyIHI9e307ZnVuY3Rpb24gZShuLG8pe0QocltvXSkmJkQobik/cltvXT1uZShyW29dLG4pOkQobik/cltvXT1uZSh7fSxuKTp0ZShuKT9yW29dPW4uc2xpY2UoKTpyW29dPW59Zm9yKHZhciB0PTAscz1hcmd1bWVudHMubGVuZ3RoO3Q8czt0Kyspc2UoYXJndW1lbnRzW3RdLGUpO3JldHVybiByfWZ1bmN0aW9uIG10KHIsZSx0KXtyZXR1cm4gc2UoZSxmdW5jdGlvbihuLG8pe3QmJnR5cGVvZiBuPT0iZnVuY3Rpb24iP3Jbb109cnQobix0KTpyW29dPW59KSxyfWZ1bmN0aW9uIGd0KHIpe3JldHVybiByLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKHI9ci5zbGljZSgxKSkscn12YXIgcD17aXNBcnJheTp0ZSxpc0FycmF5QnVmZmVyOlRlLGlzQnVmZmVyOnN0LGlzRm9ybURhdGE6bnQsaXNBcnJheUJ1ZmZlclZpZXc6aXQsaXNTdHJpbmc6b3QsaXNOdW1iZXI6YXQsaXNPYmplY3Q6UGUsaXNQbGFpbk9iamVjdDpELGlzVW5kZWZpbmVkOnJlLGlzRGF0ZTp1dCxpc0ZpbGU6bHQsaXNCbG9iOmN0LGlzRnVuY3Rpb246UmUsaXNTdHJlYW06ZnQsaXNVUkxTZWFyY2hQYXJhbXM6aHQsaXNTdGFuZGFyZEJyb3dzZXJFbnY6cHQsZm9yRWFjaDpzZSxtZXJnZTpuZSxleHRlbmQ6bXQsdHJpbTpkdCxzdHJpcEJPTTpndH0sST1wO2Z1bmN0aW9uIFNlKHIpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQocikucmVwbGFjZSgvJTNBL2dpLCI6IikucmVwbGFjZSgvJTI0L2csIiQiKS5yZXBsYWNlKC8lMkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjAvZywiKyIpLnJlcGxhY2UoLyU1Qi9naSwiWyIpLnJlcGxhY2UoLyU1RC9naSwiXSIpfXZhciBDZT1mdW5jdGlvbihlLHQscyl7aWYoIXQpcmV0dXJuIGU7dmFyIG47aWYocyluPXModCk7ZWxzZSBpZihJLmlzVVJMU2VhcmNoUGFyYW1zKHQpKW49dC50b1N0cmluZygpO2Vsc2V7dmFyIG89W107SS5mb3JFYWNoKHQsZnVuY3Rpb24obCxtKXtsPT09bnVsbHx8dHlwZW9mIGw9PSJ1bmRlZmluZWQifHwoSS5pc0FycmF5KGwpP209bSsiW10iOmw9W2xdLEkuZm9yRWFjaChsLGZ1bmN0aW9uKGYpe0kuaXNEYXRlKGYpP2Y9Zi50b0lTT1N0cmluZygpOkkuaXNPYmplY3QoZikmJihmPUpTT04uc3RyaW5naWZ5KGYpKSxvLnB1c2goU2UobSkrIj0iK1NlKGYpKX0pKX0pLG49by5qb2luKCImIil9aWYobil7dmFyIGk9ZS5pbmRleE9mKCIjIik7aSE9PS0xJiYoZT1lLnNsaWNlKDAsaSkpLGUrPShlLmluZGV4T2YoIj8iKT09PS0xPyI/IjoiJiIpK259cmV0dXJuIGV9LHl0PXA7ZnVuY3Rpb24gcSgpe3RoaXMuaGFuZGxlcnM9W119cS5wcm90b3R5cGUudXNlPWZ1bmN0aW9uKGUsdCxzKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6ZSxyZWplY3RlZDp0LHN5bmNocm9ub3VzOnM/cy5zeW5jaHJvbm91czohMSxydW5XaGVuOnM/cy5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfSxxLnByb3RvdHlwZS5lamVjdD1mdW5jdGlvbihlKXt0aGlzLmhhbmRsZXJzW2VdJiYodGhpcy5oYW5kbGVyc1tlXT1udWxsKX0scS5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihlKXt5dC5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24ocyl7cyE9PW51bGwmJmUocyl9KX07dmFyIF90PXEsYnQ9cCx3dD1mdW5jdGlvbihlLHQpe2J0LmZvckVhY2goZSxmdW5jdGlvbihuLG8pe28hPT10JiZvLnRvVXBwZXJDYXNlKCk9PT10LnRvVXBwZXJDYXNlKCkmJihlW3RdPW4sZGVsZXRlIGVbb10pfSl9LE9lPWZ1bmN0aW9uKGUsdCxzLG4sbyl7cmV0dXJuIGUuY29uZmlnPXQscyYmKGUuY29kZT1zKSxlLnJlcXVlc3Q9bixlLnJlc3BvbnNlPW8sZS5pc0F4aW9zRXJyb3I9ITAsZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6dGhpcy5jb25maWcsY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMucmVzcG9uc2UmJnRoaXMucmVzcG9uc2Uuc3RhdHVzP3RoaXMucmVzcG9uc2Uuc3RhdHVzOm51bGx9fSxlfSx2dD1PZSxJZT1mdW5jdGlvbihlLHQscyxuLG8pe3ZhciBpPW5ldyBFcnJvcihlKTtyZXR1cm4gdnQoaSx0LHMsbixvKX0sRXQ9SWUsVHQ9ZnVuY3Rpb24oZSx0LHMpe3ZhciBuPXMuY29uZmlnLnZhbGlkYXRlU3RhdHVzOyFzLnN0YXR1c3x8IW58fG4ocy5zdGF0dXMpP2Uocyk6dChFdCgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK3Muc3RhdHVzLHMuY29uZmlnLG51bGwscy5yZXF1ZXN0LHMpKX0sSD1wLFB0PUguaXNTdGFuZGFyZEJyb3dzZXJFbnYoKT9mdW5jdGlvbigpe3JldHVybnt3cml0ZTpmdW5jdGlvbih0LHMsbixvLGksYSl7dmFyIGw9W107bC5wdXNoKHQrIj0iK2VuY29kZVVSSUNvbXBvbmVudChzKSksSC5pc051bWJlcihuKSYmbC5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUobikudG9HTVRTdHJpbmcoKSksSC5pc1N0cmluZyhvKSYmbC5wdXNoKCJwYXRoPSIrbyksSC5pc1N0cmluZyhpKSYmbC5wdXNoKCJkb21haW49IitpKSxhPT09ITAmJmwucHVzaCgic2VjdXJlIiksZG9jdW1lbnQuY29va2llPWwuam9pbigiOyAiKX0scmVhZDpmdW5jdGlvbih0KXt2YXIgcz1kb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgiKF58O1xccyopKCIrdCsiKT0oW147XSopIikpO3JldHVybiBzP2RlY29kZVVSSUNvbXBvbmVudChzWzNdKTpudWxsfSxyZW1vdmU6ZnVuY3Rpb24odCl7dGhpcy53cml0ZSh0LCIiLERhdGUubm93KCktODY0ZTUpfX19KCk6ZnVuY3Rpb24oKXtyZXR1cm57d3JpdGU6ZnVuY3Rpb24oKXt9LHJlYWQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0scmVtb3ZlOmZ1bmN0aW9uKCl7fX19KCksUnQ9ZnVuY3Rpb24oZSl7cmV0dXJuL14oW2Etel1bYS16XGQrXC0uXSo6KT9cL1wvL2kudGVzdChlKX0sU3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD9lLnJlcGxhY2UoL1wvKyQvLCIiKSsiLyIrdC5yZXBsYWNlKC9eXC8rLywiIik6ZX0sQ3Q9UnQsT3Q9U3QsSXQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmIUN0KHQpP090KGUsdCk6dH0saWU9cCx4dD1bImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdLE10PWZ1bmN0aW9uKGUpe3ZhciB0PXt9LHMsbixvO3JldHVybiBlJiZpZS5mb3JFYWNoKGUuc3BsaXQoYApgKSxmdW5jdGlvbihhKXtpZihvPWEuaW5kZXhPZigiOiIpLHM9aWUudHJpbShhLnN1YnN0cigwLG8pKS50b0xvd2VyQ2FzZSgpLG49aWUudHJpbShhLnN1YnN0cihvKzEpKSxzKXtpZih0W3NdJiZ4dC5pbmRleE9mKHMpPj0wKXJldHVybjtzPT09InNldC1jb29raWUiP3Rbc109KHRbc10/dFtzXTpbXSkuY29uY2F0KFtuXSk6dFtzXT10W3NdP3Rbc10rIiwgIituOm59fSksdH0seGU9cCxBdD14ZS5pc1N0YW5kYXJkQnJvd3NlckVudigpP2Z1bmN0aW9uKCl7dmFyIGU9Lyhtc2llfHRyaWRlbnQpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSx0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxzO2Z1bmN0aW9uIG4obyl7dmFyIGk9bztyZXR1cm4gZSYmKHQuc2V0QXR0cmlidXRlKCJocmVmIixpKSxpPXQuaHJlZiksdC5zZXRBdHRyaWJ1dGUoImhyZWYiLGkpLHtocmVmOnQuaHJlZixwcm90b2NvbDp0LnByb3RvY29sP3QucHJvdG9jb2wucmVwbGFjZSgvOiQvLCIiKToiIixob3N0OnQuaG9zdCxzZWFyY2g6dC5zZWFyY2g/dC5zZWFyY2gucmVwbGFjZSgvXlw/LywiIik6IiIsaGFzaDp0Lmhhc2g/dC5oYXNoLnJlcGxhY2UoL14jLywiIik6IiIsaG9zdG5hbWU6dC5ob3N0bmFtZSxwb3J0OnQucG9ydCxwYXRobmFtZTp0LnBhdGhuYW1lLmNoYXJBdCgwKT09PSIvIj90LnBhdGhuYW1lOiIvIit0LnBhdGhuYW1lfX1yZXR1cm4gcz1uKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxmdW5jdGlvbihpKXt2YXIgYT14ZS5pc1N0cmluZyhpKT9uKGkpOmk7cmV0dXJuIGEucHJvdG9jb2w9PT1zLnByb3RvY29sJiZhLmhvc3Q9PT1zLmhvc3R9fSgpOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuITB9fSgpO2Z1bmN0aW9uIG9lKHIpe3RoaXMubWVzc2FnZT1yfW9lLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJDYW5jZWwiKyh0aGlzLm1lc3NhZ2U/IjogIit0aGlzLm1lc3NhZ2U6IiIpfSxvZS5wcm90b3R5cGUuX19DQU5DRUxfXz0hMDt2YXIgaj1vZSxKPXAsa3Q9VHQsTnQ9UHQsVXQ9Q2UsQnQ9SXQsJHQ9TXQsTHQ9QXQsYWU9SWUsRnQ9VyxEdD1qLE1lPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihzLG4pe3ZhciBvPWUuZGF0YSxpPWUuaGVhZGVycyxhPWUucmVzcG9uc2VUeXBlLGw7ZnVuY3Rpb24gbSgpe2UuY2FuY2VsVG9rZW4mJmUuY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUobCksZS5zaWduYWwmJmUuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixsKX1KLmlzRm9ybURhdGEobykmJmRlbGV0ZSBpWyJDb250ZW50LVR5cGUiXTt2YXIgdT1uZXcgWE1MSHR0cFJlcXVlc3Q7aWYoZS5hdXRoKXt2YXIgZj1lLmF1dGgudXNlcm5hbWV8fCIiLFQ9ZS5hdXRoLnBhc3N3b3JkP3VuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChlLmF1dGgucGFzc3dvcmQpKToiIjtpLkF1dGhvcml6YXRpb249IkJhc2ljICIrYnRvYShmKyI6IitUKX12YXIgZz1CdChlLmJhc2VVUkwsZS51cmwpO3Uub3BlbihlLm1ldGhvZC50b1VwcGVyQ2FzZSgpLFV0KGcsZS5wYXJhbXMsZS5wYXJhbXNTZXJpYWxpemVyKSwhMCksdS50aW1lb3V0PWUudGltZW91dDtmdW5jdGlvbiBldCgpe2lmKCEhdSl7dmFyIHY9ImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiB1PyR0KHUuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpOm51bGwsQj0hYXx8YT09PSJ0ZXh0Inx8YT09PSJqc29uIj91LnJlc3BvbnNlVGV4dDp1LnJlc3BvbnNlLE89e2RhdGE6QixzdGF0dXM6dS5zdGF0dXMsc3RhdHVzVGV4dDp1LnN0YXR1c1RleHQsaGVhZGVyczp2LGNvbmZpZzplLHJlcXVlc3Q6dX07a3QoZnVuY3Rpb24odmUpe3ModmUpLG0oKX0sZnVuY3Rpb24odmUpe24odmUpLG0oKX0sTyksdT1udWxsfX1pZigib25sb2FkZW5kImluIHU/dS5vbmxvYWRlbmQ9ZXQ6dS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshdXx8dS5yZWFkeVN0YXRlIT09NHx8dS5zdGF0dXM9PT0wJiYhKHUucmVzcG9uc2VVUkwmJnUucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKT09PTApfHxzZXRUaW1lb3V0KGV0KX0sdS5vbmFib3J0PWZ1bmN0aW9uKCl7IXV8fChuKGFlKCJSZXF1ZXN0IGFib3J0ZWQiLGUsIkVDT05OQUJPUlRFRCIsdSkpLHU9bnVsbCl9LHUub25lcnJvcj1mdW5jdGlvbigpe24oYWUoIk5ldHdvcmsgRXJyb3IiLGUsbnVsbCx1KSksdT1udWxsfSx1Lm9udGltZW91dD1mdW5jdGlvbigpe3ZhciBCPWUudGltZW91dD8idGltZW91dCBvZiAiK2UudGltZW91dCsibXMgZXhjZWVkZWQiOiJ0aW1lb3V0IGV4Y2VlZGVkIixPPWUudHJhbnNpdGlvbmFsfHxGdC50cmFuc2l0aW9uYWw7ZS50aW1lb3V0RXJyb3JNZXNzYWdlJiYoQj1lLnRpbWVvdXRFcnJvck1lc3NhZ2UpLG4oYWUoQixlLE8uY2xhcmlmeVRpbWVvdXRFcnJvcj8iRVRJTUVET1VUIjoiRUNPTk5BQk9SVEVEIix1KSksdT1udWxsfSxKLmlzU3RhbmRhcmRCcm93c2VyRW52KCkpe3ZhciB0dD0oZS53aXRoQ3JlZGVudGlhbHN8fEx0KGcpKSYmZS54c3JmQ29va2llTmFtZT9OdC5yZWFkKGUueHNyZkNvb2tpZU5hbWUpOnZvaWQgMDt0dCYmKGlbZS54c3JmSGVhZGVyTmFtZV09dHQpfSJzZXRSZXF1ZXN0SGVhZGVyImluIHUmJkouZm9yRWFjaChpLGZ1bmN0aW9uKEIsTyl7dHlwZW9mIG89PSJ1bmRlZmluZWQiJiZPLnRvTG93ZXJDYXNlKCk9PT0iY29udGVudC10eXBlIj9kZWxldGUgaVtPXTp1LnNldFJlcXVlc3RIZWFkZXIoTyxCKX0pLEouaXNVbmRlZmluZWQoZS53aXRoQ3JlZGVudGlhbHMpfHwodS53aXRoQ3JlZGVudGlhbHM9ISFlLndpdGhDcmVkZW50aWFscyksYSYmYSE9PSJqc29uIiYmKHUucmVzcG9uc2VUeXBlPWUucmVzcG9uc2VUeXBlKSx0eXBlb2YgZS5vbkRvd25sb2FkUHJvZ3Jlc3M9PSJmdW5jdGlvbiImJnUuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGUub25Eb3dubG9hZFByb2dyZXNzKSx0eXBlb2YgZS5vblVwbG9hZFByb2dyZXNzPT0iZnVuY3Rpb24iJiZ1LnVwbG9hZCYmdS51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGUub25VcGxvYWRQcm9ncmVzcyksKGUuY2FuY2VsVG9rZW58fGUuc2lnbmFsKSYmKGw9ZnVuY3Rpb24odil7IXV8fChuKCF2fHx2JiZ2LnR5cGU/bmV3IER0KCJjYW5jZWxlZCIpOnYpLHUuYWJvcnQoKSx1PW51bGwpfSxlLmNhbmNlbFRva2VuJiZlLmNhbmNlbFRva2VuLnN1YnNjcmliZShsKSxlLnNpZ25hbCYmKGUuc2lnbmFsLmFib3J0ZWQ/bCgpOmUuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixsKSkpLG98fChvPW51bGwpLHUuc2VuZChvKX0pfSxoPXAsQWU9d3QscXQ9T2UsSHQ9eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifTtmdW5jdGlvbiBrZShyLGUpeyFoLmlzVW5kZWZpbmVkKHIpJiZoLmlzVW5kZWZpbmVkKHJbIkNvbnRlbnQtVHlwZSJdKSYmKHJbIkNvbnRlbnQtVHlwZSJdPWUpfWZ1bmN0aW9uIGp0KCl7dmFyIHI7cmV0dXJuKHR5cGVvZiBYTUxIdHRwUmVxdWVzdCE9InVuZGVmaW5lZCJ8fHR5cGVvZiBwcm9jZXNzIT0idW5kZWZpbmVkIiYmT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHByb2Nlc3MpPT09IltvYmplY3QgcHJvY2Vzc10iKSYmKHI9TWUpLHJ9ZnVuY3Rpb24gSnQocixlLHQpe2lmKGguaXNTdHJpbmcocikpdHJ5e3JldHVybihlfHxKU09OLnBhcnNlKShyKSxoLnRyaW0ocil9Y2F0Y2gocyl7aWYocy5uYW1lIT09IlN5bnRheEVycm9yIil0aHJvdyBzfXJldHVybih0fHxKU09OLnN0cmluZ2lmeSkocil9dmFyIFY9e3RyYW5zaXRpb25hbDp7c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX0sYWRhcHRlcjpqdCgpLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKGUsdCl7cmV0dXJuIEFlKHQsIkFjY2VwdCIpLEFlKHQsIkNvbnRlbnQtVHlwZSIpLGguaXNGb3JtRGF0YShlKXx8aC5pc0FycmF5QnVmZmVyKGUpfHxoLmlzQnVmZmVyKGUpfHxoLmlzU3RyZWFtKGUpfHxoLmlzRmlsZShlKXx8aC5pc0Jsb2IoZSk/ZTpoLmlzQXJyYXlCdWZmZXJWaWV3KGUpP2UuYnVmZmVyOmguaXNVUkxTZWFyY2hQYXJhbXMoZSk/KGtlKHQsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiksZS50b1N0cmluZygpKTpoLmlzT2JqZWN0KGUpfHx0JiZ0WyJDb250ZW50LVR5cGUiXT09PSJhcHBsaWNhdGlvbi9qc29uIj8oa2UodCwiYXBwbGljYXRpb24vanNvbiIpLEp0KGUpKTplfV0sdHJhbnNmb3JtUmVzcG9uc2U6W2Z1bmN0aW9uKGUpe3ZhciB0PXRoaXMudHJhbnNpdGlvbmFsfHxWLnRyYW5zaXRpb25hbCxzPXQmJnQuc2lsZW50SlNPTlBhcnNpbmcsbj10JiZ0LmZvcmNlZEpTT05QYXJzaW5nLG89IXMmJnRoaXMucmVzcG9uc2VUeXBlPT09Impzb24iO2lmKG98fG4mJmguaXNTdHJpbmcoZSkmJmUubGVuZ3RoKXRyeXtyZXR1cm4gSlNPTi5wYXJzZShlKX1jYXRjaChpKXtpZihvKXRocm93IGkubmFtZT09PSJTeW50YXhFcnJvciI/cXQoaSx0aGlzLCJFX0pTT05fUEFSU0UiKTppfXJldHVybiBlfV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PTIwMCYmZTwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoifX19O2guZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiXSxmdW5jdGlvbihlKXtWLmhlYWRlcnNbZV09e319KSxoLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSxmdW5jdGlvbihlKXtWLmhlYWRlcnNbZV09aC5tZXJnZShIdCl9KTt2YXIgVz1WLFZ0PXAsV3Q9VyxHdD1mdW5jdGlvbihlLHQscyl7dmFyIG49dGhpc3x8V3Q7cmV0dXJuIFZ0LmZvckVhY2gocyxmdW5jdGlvbihpKXtlPWkuY2FsbChuLGUsdCl9KSxlfSxOZT1mdW5jdGlvbihlKXtyZXR1cm4hIShlJiZlLl9fQ0FOQ0VMX18pfSxVZT1wLHVlPUd0LHp0PU5lLFF0PVcsWHQ9ajtmdW5jdGlvbiBsZShyKXtpZihyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnRocm93SWZSZXF1ZXN0ZWQoKSxyLnNpZ25hbCYmci5zaWduYWwuYWJvcnRlZCl0aHJvdyBuZXcgWHQoImNhbmNlbGVkIil9dmFyIEt0PWZ1bmN0aW9uKGUpe2xlKGUpLGUuaGVhZGVycz1lLmhlYWRlcnN8fHt9LGUuZGF0YT11ZS5jYWxsKGUsZS5kYXRhLGUuaGVhZGVycyxlLnRyYW5zZm9ybVJlcXVlc3QpLGUuaGVhZGVycz1VZS5tZXJnZShlLmhlYWRlcnMuY29tbW9ufHx7fSxlLmhlYWRlcnNbZS5tZXRob2RdfHx7fSxlLmhlYWRlcnMpLFVlLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sZnVuY3Rpb24obil7ZGVsZXRlIGUuaGVhZGVyc1tuXX0pO3ZhciB0PWUuYWRhcHRlcnx8UXQuYWRhcHRlcjtyZXR1cm4gdChlKS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBsZShlKSxuLmRhdGE9dWUuY2FsbChlLG4uZGF0YSxuLmhlYWRlcnMsZS50cmFuc2Zvcm1SZXNwb25zZSksbn0sZnVuY3Rpb24obil7cmV0dXJuIHp0KG4pfHwobGUoZSksbiYmbi5yZXNwb25zZSYmKG4ucmVzcG9uc2UuZGF0YT11ZS5jYWxsKGUsbi5yZXNwb25zZS5kYXRhLG4ucmVzcG9uc2UuaGVhZGVycyxlLnRyYW5zZm9ybVJlc3BvbnNlKSkpLFByb21pc2UucmVqZWN0KG4pfSl9LHk9cCxCZT1mdW5jdGlvbihlLHQpe3Q9dHx8e307dmFyIHM9e307ZnVuY3Rpb24gbih1LGYpe3JldHVybiB5LmlzUGxhaW5PYmplY3QodSkmJnkuaXNQbGFpbk9iamVjdChmKT95Lm1lcmdlKHUsZik6eS5pc1BsYWluT2JqZWN0KGYpP3kubWVyZ2Uoe30sZik6eS5pc0FycmF5KGYpP2Yuc2xpY2UoKTpmfWZ1bmN0aW9uIG8odSl7aWYoeS5pc1VuZGVmaW5lZCh0W3VdKSl7aWYoIXkuaXNVbmRlZmluZWQoZVt1XSkpcmV0dXJuIG4odm9pZCAwLGVbdV0pfWVsc2UgcmV0dXJuIG4oZVt1XSx0W3VdKX1mdW5jdGlvbiBpKHUpe2lmKCF5LmlzVW5kZWZpbmVkKHRbdV0pKXJldHVybiBuKHZvaWQgMCx0W3VdKX1mdW5jdGlvbiBhKHUpe2lmKHkuaXNVbmRlZmluZWQodFt1XSkpe2lmKCF5LmlzVW5kZWZpbmVkKGVbdV0pKXJldHVybiBuKHZvaWQgMCxlW3VdKX1lbHNlIHJldHVybiBuKHZvaWQgMCx0W3VdKX1mdW5jdGlvbiBsKHUpe2lmKHUgaW4gdClyZXR1cm4gbihlW3VdLHRbdV0pO2lmKHUgaW4gZSlyZXR1cm4gbih2b2lkIDAsZVt1XSl9dmFyIG09e3VybDppLG1ldGhvZDppLGRhdGE6aSxiYXNlVVJMOmEsdHJhbnNmb3JtUmVxdWVzdDphLHRyYW5zZm9ybVJlc3BvbnNlOmEscGFyYW1zU2VyaWFsaXplcjphLHRpbWVvdXQ6YSx0aW1lb3V0TWVzc2FnZTphLHdpdGhDcmVkZW50aWFsczphLGFkYXB0ZXI6YSxyZXNwb25zZVR5cGU6YSx4c3JmQ29va2llTmFtZTphLHhzcmZIZWFkZXJOYW1lOmEsb25VcGxvYWRQcm9ncmVzczphLG9uRG93bmxvYWRQcm9ncmVzczphLGRlY29tcHJlc3M6YSxtYXhDb250ZW50TGVuZ3RoOmEsbWF4Qm9keUxlbmd0aDphLHRyYW5zcG9ydDphLGh0dHBBZ2VudDphLGh0dHBzQWdlbnQ6YSxjYW5jZWxUb2tlbjphLHNvY2tldFBhdGg6YSxyZXNwb25zZUVuY29kaW5nOmEsdmFsaWRhdGVTdGF0dXM6bH07cmV0dXJuIHkuZm9yRWFjaChPYmplY3Qua2V5cyhlKS5jb25jYXQoT2JqZWN0LmtleXModCkpLGZ1bmN0aW9uKGYpe3ZhciBUPW1bZl18fG8sZz1UKGYpO3kuaXNVbmRlZmluZWQoZykmJlQhPT1sfHwoc1tmXT1nKX0pLHN9LCRlPXt2ZXJzaW9uOiIwLjI1LjAifSxZdD0kZS52ZXJzaW9uLGNlPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaChmdW5jdGlvbihyLGUpe2NlW3JdPWZ1bmN0aW9uKHMpe3JldHVybiB0eXBlb2Ygcz09PXJ8fCJhIisoZTwxPyJuICI6IiAiKStyfX0pO3ZhciBMZT17fTtjZS50cmFuc2l0aW9uYWw9ZnVuY3Rpb24oZSx0LHMpe2Z1bmN0aW9uIG4obyxpKXtyZXR1cm4iW0F4aW9zIHYiK1l0KyJdIFRyYW5zaXRpb25hbCBvcHRpb24gJyIrbysiJyIraSsocz8iLiAiK3M6IiIpfXJldHVybiBmdW5jdGlvbihvLGksYSl7aWYoZT09PSExKXRocm93IG5ldyBFcnJvcihuKGksIiBoYXMgYmVlbiByZW1vdmVkIisodD8iIGluICIrdDoiIikpKTtyZXR1cm4gdCYmIUxlW2ldJiYoTGVbaV09ITAsY29uc29sZS53YXJuKG4oaSwiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrdCsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSxlP2UobyxpLGEpOiEwfX07ZnVuY3Rpb24gWnQocixlLHQpe2lmKHR5cGVvZiByIT0ib2JqZWN0Iil0aHJvdyBuZXcgVHlwZUVycm9yKCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Iik7Zm9yKHZhciBzPU9iamVjdC5rZXlzKHIpLG49cy5sZW5ndGg7bi0tID4wOyl7dmFyIG89c1tuXSxpPWVbb107aWYoaSl7dmFyIGE9cltvXSxsPWE9PT12b2lkIDB8fGkoYSxvLHIpO2lmKGwhPT0hMCl0aHJvdyBuZXcgVHlwZUVycm9yKCJvcHRpb24gIitvKyIgbXVzdCBiZSAiK2wpO2NvbnRpbnVlfWlmKHQhPT0hMCl0aHJvdyBFcnJvcigiVW5rbm93biBvcHRpb24gIitvKX19dmFyIGVyPXthc3NlcnRPcHRpb25zOlp0LHZhbGlkYXRvcnM6Y2V9LEZlPXAsdHI9Q2UsRGU9X3QscWU9S3QsRz1CZSxIZT1lcix4PUhlLnZhbGlkYXRvcnM7ZnVuY3Rpb24gJChyKXt0aGlzLmRlZmF1bHRzPXIsdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IERlLHJlc3BvbnNlOm5ldyBEZX19JC5wcm90b3R5cGUucmVxdWVzdD1mdW5jdGlvbihlLHQpe2lmKHR5cGVvZiBlPT0ic3RyaW5nIj8odD10fHx7fSx0LnVybD1lKTp0PWV8fHt9LCF0LnVybCl0aHJvdyBuZXcgRXJyb3IoIlByb3ZpZGVkIGNvbmZpZyB1cmwgaXMgbm90IHZhbGlkIik7dD1HKHRoaXMuZGVmYXVsdHMsdCksdC5tZXRob2Q/dC5tZXRob2Q9dC5tZXRob2QudG9Mb3dlckNhc2UoKTp0aGlzLmRlZmF1bHRzLm1ldGhvZD90Lm1ldGhvZD10aGlzLmRlZmF1bHRzLm1ldGhvZC50b0xvd2VyQ2FzZSgpOnQubWV0aG9kPSJnZXQiO3ZhciBzPXQudHJhbnNpdGlvbmFsO3MhPT12b2lkIDAmJkhlLmFzc2VydE9wdGlvbnMocyx7c2lsZW50SlNPTlBhcnNpbmc6eC50cmFuc2l0aW9uYWwoeC5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzp4LnRyYW5zaXRpb25hbCh4LmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6eC50cmFuc2l0aW9uYWwoeC5ib29sZWFuKX0sITEpO3ZhciBuPVtdLG89ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uKGcpe3R5cGVvZiBnLnJ1bldoZW49PSJmdW5jdGlvbiImJmcucnVuV2hlbih0KT09PSExfHwobz1vJiZnLnN5bmNocm9ub3VzLG4udW5zaGlmdChnLmZ1bGZpbGxlZCxnLnJlamVjdGVkKSl9KTt2YXIgaT1bXTt0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKGZ1bmN0aW9uKGcpe2kucHVzaChnLmZ1bGZpbGxlZCxnLnJlamVjdGVkKX0pO3ZhciBhO2lmKCFvKXt2YXIgbD1bcWUsdm9pZCAwXTtmb3IoQXJyYXkucHJvdG90eXBlLnVuc2hpZnQuYXBwbHkobCxuKSxsPWwuY29uY2F0KGkpLGE9UHJvbWlzZS5yZXNvbHZlKHQpO2wubGVuZ3RoOylhPWEudGhlbihsLnNoaWZ0KCksbC5zaGlmdCgpKTtyZXR1cm4gYX1mb3IodmFyIG09dDtuLmxlbmd0aDspe3ZhciB1PW4uc2hpZnQoKSxmPW4uc2hpZnQoKTt0cnl7bT11KG0pfWNhdGNoKFQpe2YoVCk7YnJlYWt9fXRyeXthPXFlKG0pfWNhdGNoKFQpe3JldHVybiBQcm9taXNlLnJlamVjdChUKX1mb3IoO2kubGVuZ3RoOylhPWEudGhlbihpLnNoaWZ0KCksaS5zaGlmdCgpKTtyZXR1cm4gYX0sJC5wcm90b3R5cGUuZ2V0VXJpPWZ1bmN0aW9uKGUpe2lmKCFlLnVybCl0aHJvdyBuZXcgRXJyb3IoIlByb3ZpZGVkIGNvbmZpZyB1cmwgaXMgbm90IHZhbGlkIik7cmV0dXJuIGU9Ryh0aGlzLmRlZmF1bHRzLGUpLHRyKGUudXJsLGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplcikucmVwbGFjZSgvXlw/LywiIil9LEZlLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLGZ1bmN0aW9uKGUpeyQucHJvdG90eXBlW2VdPWZ1bmN0aW9uKHQscyl7cmV0dXJuIHRoaXMucmVxdWVzdChHKHN8fHt9LHttZXRob2Q6ZSx1cmw6dCxkYXRhOihzfHx7fSkuZGF0YX0pKX19KSxGZS5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sZnVuY3Rpb24oZSl7JC5wcm90b3R5cGVbZV09ZnVuY3Rpb24odCxzLG4pe3JldHVybiB0aGlzLnJlcXVlc3QoRyhufHx7fSx7bWV0aG9kOmUsdXJsOnQsZGF0YTpzfSkpfX0pO3ZhciBycj0kLHNyPWo7ZnVuY3Rpb24gTShyKXtpZih0eXBlb2YgciE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7dmFyIGU7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKG4pe2U9bn0pO3ZhciB0PXRoaXM7dGhpcy5wcm9taXNlLnRoZW4oZnVuY3Rpb24ocyl7aWYoISF0Ll9saXN0ZW5lcnMpe3ZhciBuLG89dC5fbGlzdGVuZXJzLmxlbmd0aDtmb3Iobj0wO248bztuKyspdC5fbGlzdGVuZXJzW25dKHMpO3QuX2xpc3RlbmVycz1udWxsfX0pLHRoaXMucHJvbWlzZS50aGVuPWZ1bmN0aW9uKHMpe3ZhciBuLG89bmV3IFByb21pc2UoZnVuY3Rpb24oaSl7dC5zdWJzY3JpYmUoaSksbj1pfSkudGhlbihzKTtyZXR1cm4gby5jYW5jZWw9ZnVuY3Rpb24oKXt0LnVuc3Vic2NyaWJlKG4pfSxvfSxyKGZ1bmN0aW9uKG4pe3QucmVhc29ufHwodC5yZWFzb249bmV3IHNyKG4pLGUodC5yZWFzb24pKX0pfU0ucHJvdG90eXBlLnRocm93SWZSZXF1ZXN0ZWQ9ZnVuY3Rpb24oKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn0sTS5wcm90b3R5cGUuc3Vic2NyaWJlPWZ1bmN0aW9uKGUpe2lmKHRoaXMucmVhc29uKXtlKHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKGUpOnRoaXMuX2xpc3RlbmVycz1bZV19LE0ucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKGUpe2lmKCEhdGhpcy5fbGlzdGVuZXJzKXt2YXIgdD10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZihlKTt0IT09LTEmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UodCwxKX19LE0uc291cmNlPWZ1bmN0aW9uKCl7dmFyIGUsdD1uZXcgTShmdW5jdGlvbihuKXtlPW59KTtyZXR1cm57dG9rZW46dCxjYW5jZWw6ZX19O3ZhciBucj1NLGlyPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihzKXtyZXR1cm4gZS5hcHBseShudWxsLHMpfX0sb3I9cCxhcj1mdW5jdGlvbihlKXtyZXR1cm4gb3IuaXNPYmplY3QoZSkmJmUuaXNBeGlvc0Vycm9yPT09ITB9LGplPXAsdXI9RWUsej1ycixscj1CZSxjcj1XO2Z1bmN0aW9uIEplKHIpe3ZhciBlPW5ldyB6KHIpLHQ9dXIoei5wcm90b3R5cGUucmVxdWVzdCxlKTtyZXR1cm4gamUuZXh0ZW5kKHQsei5wcm90b3R5cGUsZSksamUuZXh0ZW5kKHQsZSksdC5jcmVhdGU9ZnVuY3Rpb24obil7cmV0dXJuIEplKGxyKHIsbikpfSx0fXZhciBFPUplKGNyKTtFLkF4aW9zPXosRS5DYW5jZWw9aixFLkNhbmNlbFRva2VuPW5yLEUuaXNDYW5jZWw9TmUsRS5WRVJTSU9OPSRlLnZlcnNpb24sRS5hbGw9ZnVuY3Rpb24oZSl7cmV0dXJuIFByb21pc2UuYWxsKGUpfSxFLnNwcmVhZD1pcixFLmlzQXhpb3NFcnJvcj1hcixlZS5leHBvcnRzPUUsZWUuZXhwb3J0cy5kZWZhdWx0PUU7dmFyIGZyPWVlLmV4cG9ydHM7Y2xhc3MgY3tpc0VtcHR5KCl7cmV0dXJuIXRoaXMuaXNQcmVzZW50KCl9c3RhdGljIG9mKGUpe2lmKGUhPW51bGwpcmV0dXJuIG5ldyBWZShlKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgcGFzc2VkIHZhbHVlIHdhcyBudWxsIG9yIHVuZGVmaW5lZC4iKX1zdGF0aWMgb2ZOb25OdWxsKGUpe3JldHVybiBjLm9mKGUpfXN0YXRpYyBvZk51bGxhYmxlKGUpe3JldHVybiBlIT1udWxsP25ldyBWZShlKTpuZXcgV2V9c3RhdGljIGVtcHR5KCl7cmV0dXJuIG5ldyBXZX1zdGF0aWMgZnJvbShlKXtzd2l0Y2goZS5raW5kKXtjYXNlInByZXNlbnQiOnJldHVybiBjLm9mKGUudmFsdWUpO2Nhc2UiZW1wdHkiOnJldHVybiBjLmVtcHR5KCk7ZGVmYXVsdDp0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgcGFzc2VkIHZhbHVlIHdhcyBub3QgYW4gT3B0aW9uIHR5cGUuIil9fX1jbGFzcyBWZSBleHRlbmRzIGN7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLnBheWxvYWQ9ZX1pc1ByZXNlbnQoKXtyZXR1cm4hMH1nZXQoKXtyZXR1cm4gdGhpcy5wYXlsb2FkfWlmUHJlc2VudChlKXtlKHRoaXMucGF5bG9hZCl9aWZQcmVzZW50T3JFbHNlKGUsdCl7ZSh0aGlzLnBheWxvYWQpfWZpbHRlcihlKXtyZXR1cm4gZSh0aGlzLnBheWxvYWQpP3RoaXM6Yy5lbXB0eSgpfW1hcChlKXtjb25zdCB0PWUodGhpcy5wYXlsb2FkKTtyZXR1cm4gYy5vZk51bGxhYmxlKHQpfWZsYXRNYXAoZSl7cmV0dXJuIGUodGhpcy5wYXlsb2FkKX1vcihlKXtyZXR1cm4gdGhpc31vckVsc2UoZSl7cmV0dXJuIHRoaXMucGF5bG9hZH1vckVsc2VHZXQoZSl7cmV0dXJuIHRoaXMucGF5bG9hZH1vckVsc2VUaHJvdyhlKXtyZXR1cm4gdGhpcy5wYXlsb2FkfW9yTnVsbCgpe3JldHVybiB0aGlzLnBheWxvYWR9b3JVbmRlZmluZWQoKXtyZXR1cm4gdGhpcy5wYXlsb2FkfXRvT3B0aW9uKCl7cmV0dXJue2tpbmQ6InByZXNlbnQiLHZhbHVlOnRoaXMucGF5bG9hZH19bWF0Y2hlcyhlKXtyZXR1cm4gZS5wcmVzZW50KHRoaXMucGF5bG9hZCl9dG9KU09OKGUpe3JldHVybiB0aGlzLnBheWxvYWR9fWNsYXNzIFdlIGV4dGVuZHMgY3tpc1ByZXNlbnQoKXtyZXR1cm4hMX1jb25zdHJ1Y3Rvcigpe3N1cGVyKCl9Z2V0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIG9wdGlvbmFsIGlzIG5vdCBwcmVzZW50LiIpfWlmUHJlc2VudChlKXt9aWZQcmVzZW50T3JFbHNlKGUsdCl7dCgpfWZpbHRlcihlKXtyZXR1cm4gdGhpc31tYXAoZSl7cmV0dXJuIGMuZW1wdHkoKX1mbGF0TWFwKGUpe3JldHVybiBjLmVtcHR5KCl9b3IoZSl7cmV0dXJuIGUoKX1vckVsc2UoZSl7cmV0dXJuIGV9b3JFbHNlR2V0KGUpe3JldHVybiB0aGlzLm9yRWxzZShlKCkpfW9yRWxzZVRocm93KGUpe3Rocm93IGUoKX1vck51bGwoKXtyZXR1cm4gbnVsbH1vclVuZGVmaW5lZCgpe310b09wdGlvbigpe3JldHVybntraW5kOiJlbXB0eSJ9fW1hdGNoZXMoZSl7cmV0dXJuIGUuZW1wdHkoKX10b0pTT04oZSl7cmV0dXJuIG51bGx9fWNvbnN0IGhyPSIxLjIuNyI7ZnVuY3Rpb24gZHIocil7Z2xvYmFsVGhpcy5fdm9uYWdlTWVkaWFQcm9jZXNzb3JNZXRhZGF0YT1yfWZ1bmN0aW9uIHByKCl7cmV0dXJuIGdsb2JhbFRoaXMuX3ZvbmFnZU1lZGlhUHJvY2Vzc29yTWV0YWRhdGF9Y2xhc3MgX3tjb25zdHJ1Y3Rvcigpe2NvbnN0IGU9cHIoKTt0aGlzLl9yZXBvcnQ9e2FjdGlvbjpjLmVtcHR5KCksYXBwbGljYXRpb25JZDpjLm9mTnVsbGFibGUoZSE9PXZvaWQgMCYmZSE9bnVsbD9lLmFwcElkOm51bGwpLHRpbWVzdGFtcDpEYXRlLm5vdygpLGZwczpjLmVtcHR5KCksZnJhbWVzVHJhbnNmb3JtZWQ6Yy5lbXB0eSgpLGd1aWQ6Yy5lbXB0eSgpLGhpZ2hlc3RGcmFtZVRyYW5zZm9ybUNwdTpjLmVtcHR5KCksbWVzc2FnZTpjLmVtcHR5KCksc291cmNlOmMub2ZOdWxsYWJsZShlIT09dm9pZCAwJiZlIT1udWxsP2Uuc291cmNlVHlwZTpudWxsKSx0cmFuc2Zvcm1lZEZwczpjLmVtcHR5KCksdHJhbnNmb3JtZXJUeXBlOmMuZW1wdHkoKSx2YXJpYXRpb246Yy5lbXB0eSgpLHZpZGVvSGVpZ2h0OmMuZW1wdHkoKSx2aWRlb1dpZHRoOmMuZW1wdHkoKSx2ZXJzaW9uOmhyLGVycm9yOmMuZW1wdHkoKSxwcm94eVVybDpjLm9mTnVsbGFibGUoZSE9PXZvaWQgMCYmZSE9bnVsbD9lLnByb3h5VXJsOm51bGwpfX1hY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3JlcG9ydC5hY3Rpb249Yy5vZk51bGxhYmxlKGUpLHRoaXN9ZnJhbWVzVHJhbnNmb3JtZWQoZSl7cmV0dXJuIHRoaXMuX3JlcG9ydC5mcmFtZXNUcmFuc2Zvcm1lZD1jLm9mTnVsbGFibGUoZSksdGhpc31mcHMoZSl7cmV0dXJuIHRoaXMuX3JlcG9ydC5mcHM9Yy5vZk51bGxhYmxlKGUpLHRoaXN9Z3VpZChlKXtyZXR1cm4gdGhpcy5fcmVwb3J0Lmd1aWQ9Yy5vZk51bGxhYmxlKGUpLHRoaXN9bWVzc2FnZShlKXtyZXR1cm4gdGhpcy5fcmVwb3J0Lm1lc3NhZ2U9Yy5vZk51bGxhYmxlKGUpLHRoaXN9dHJhbnNmb3JtZWRGcHMoZSl7cmV0dXJuIHRoaXMuX3JlcG9ydC50cmFuc2Zvcm1lZEZwcz1jLm9mTnVsbGFibGUoZSksdGhpc310cmFuc2Zvcm1lclR5cGUoZSl7cmV0dXJuIHRoaXMuX3JlcG9ydC50cmFuc2Zvcm1lclR5cGU9Yy5vZk51bGxhYmxlKGUpLHRoaXN9dmFyaWF0aW9uKGUpe3JldHVybiB0aGlzLl9yZXBvcnQudmFyaWF0aW9uPWMub2ZOdWxsYWJsZShlKSx0aGlzfXZpZGVvSGVpZ2h0KGUpe3JldHVybiB0aGlzLl9yZXBvcnQudmlkZW9IZWlnaHQ9Yy5vZk51bGxhYmxlKGUpLHRoaXN9dmlkZW9XaWR0aChlKXtyZXR1cm4gdGhpcy5fcmVwb3J0LnZpZGVvV2lkdGg9Yy5vZk51bGxhYmxlKGUpLHRoaXN9ZXJyb3IoZSl7cmV0dXJuIHRoaXMuX3JlcG9ydC5lcnJvcj1jLm9mTnVsbGFibGUoZSksdGhpc31idWlsZCgpe3JldHVybiB0aGlzLl9yZXBvcnR9fWNvbnN0IG1yPXI9PkpTT04uc3RyaW5naWZ5KHIsKGUsdCk9PntpZih0IT09bnVsbClyZXR1cm4gdH0pO2NsYXNzIGJ7c3RhdGljIHJlcG9ydChlKXtyZXR1cm4gbmV3IFByb21pc2UoKHQscyk9PntpZihlLmFwcGxpY2F0aW9uSWQuaXNFbXB0eSgpfHxlLnNvdXJjZS5pc0VtcHR5KCkpe3QoInN1Y2Nlc3MiKTtyZXR1cm59bGV0IG49ZnIuY3JlYXRlKCksbz17dGltZW91dDoxZTQsdGltZW91dEVycm9yTWVzc2FnZToiUmVxdWVzdCB0aW1lb3V0IixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9fSxpPSJobGcudG9rYm94LmNvbS9wcm9kL2xvZ2dpbmcvdmNwX3dlYnJ0YyI7aWYoZS5wcm94eVVybC5pc0VtcHR5KCkpaT0iaHR0cHM6Ly8iK2k7ZWxzZXtsZXQgYTtlLnByb3h5VXJsLmdldCgpLnNsaWNlKGUucHJveHlVcmwuZ2V0KCkubGVuZ3RoLTEpIT09Ii8iP2E9ZS5wcm94eVVybC5nZXQoKSsiLyI6YT1lLnByb3h5VXJsLmdldCgpLGk9YStpfW4ucG9zdChpLG1yKGUpLG8pLnRoZW4oYT0+e2NvbnNvbGUubG9nKGEpLHQoInN1Y2Nlc3MiKX0pLmNhdGNoKGE9Pntjb25zb2xlLmxvZyhhKSxzKGEpfSl9KX19dmFyIFEsZ3I9bmV3IFVpbnQ4QXJyYXkoMTYpO2Z1bmN0aW9uIHlyKCl7aWYoIVEmJihRPXR5cGVvZiBjcnlwdG8hPSJ1bmRlZmluZWQiJiZjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzJiZjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzLmJpbmQoY3J5cHRvKXx8dHlwZW9mIG1zQ3J5cHRvIT0idW5kZWZpbmVkIiYmdHlwZW9mIG1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcz09ImZ1bmN0aW9uIiYmbXNDcnlwdG8uZ2V0UmFuZG9tVmFsdWVzLmJpbmQobXNDcnlwdG8pLCFRKSl0aHJvdyBuZXcgRXJyb3IoImNyeXB0by5nZXRSYW5kb21WYWx1ZXMoKSBub3Qgc3VwcG9ydGVkLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3V1aWRqcy91dWlkI2dldHJhbmRvbXZhbHVlcy1ub3Qtc3VwcG9ydGVkIik7cmV0dXJuIFEoZ3IpfXZhciBfcj0vXig/OlswLTlhLWZdezh9LVswLTlhLWZdezR9LVsxLTVdWzAtOWEtZl17M30tWzg5YWJdWzAtOWEtZl17M30tWzAtOWEtZl17MTJ9fDAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMCkkL2k7ZnVuY3Rpb24gYnIocil7cmV0dXJuIHR5cGVvZiByPT0ic3RyaW5nIiYmX3IudGVzdChyKX1mb3IodmFyIGQ9W10sZmU9MDtmZTwyNTY7KytmZSlkLnB1c2goKGZlKzI1NikudG9TdHJpbmcoMTYpLnN1YnN0cigxKSk7ZnVuY3Rpb24gd3Iocil7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOjAsdD0oZFtyW2UrMF1dK2RbcltlKzFdXStkW3JbZSsyXV0rZFtyW2UrM11dKyItIitkW3JbZSs0XV0rZFtyW2UrNV1dKyItIitkW3JbZSs2XV0rZFtyW2UrN11dKyItIitkW3JbZSs4XV0rZFtyW2UrOV1dKyItIitkW3JbZSsxMF1dK2RbcltlKzExXV0rZFtyW2UrMTJdXStkW3JbZSsxM11dK2RbcltlKzE0XV0rZFtyW2UrMTVdXSkudG9Mb3dlckNhc2UoKTtpZighYnIodCkpdGhyb3cgVHlwZUVycm9yKCJTdHJpbmdpZmllZCBVVUlEIGlzIGludmFsaWQiKTtyZXR1cm4gdH1mdW5jdGlvbiBHZShyLGUsdCl7cj1yfHx7fTt2YXIgcz1yLnJhbmRvbXx8KHIucm5nfHx5cikoKTtpZihzWzZdPXNbNl0mMTV8NjQsc1s4XT1zWzhdJjYzfDEyOCxlKXt0PXR8fDA7Zm9yKHZhciBuPTA7bjwxNjsrK24pZVt0K25dPXNbbl07cmV0dXJuIGV9cmV0dXJuIHdyKHMpfWNvbnN0IFM9bmV3IFdlYWtNYXAsWD1uZXcgV2Vha01hcCxMPW5ldyBXZWFrTWFwLGhlPVN5bWJvbCgiYW55UHJvZHVjZXIiKSx6ZT1Qcm9taXNlLnJlc29sdmUoKSxLPVN5bWJvbCgibGlzdGVuZXJBZGRlZCIpLFk9U3ltYm9sKCJsaXN0ZW5lclJlbW92ZWQiKTtsZXQgZGU9ITE7ZnVuY3Rpb24gQShyKXtpZih0eXBlb2YgciE9InN0cmluZyImJnR5cGVvZiByIT0ic3ltYm9sIil0aHJvdyBuZXcgVHlwZUVycm9yKCJldmVudE5hbWUgbXVzdCBiZSBhIHN0cmluZyBvciBhIHN5bWJvbCIpfWZ1bmN0aW9uIFoocil7aWYodHlwZW9mIHIhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigibGlzdGVuZXIgbXVzdCBiZSBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gayhyLGUpe2NvbnN0IHQ9WC5nZXQocik7cmV0dXJuIHQuaGFzKGUpfHx0LnNldChlLG5ldyBTZXQpLHQuZ2V0KGUpfWZ1bmN0aW9uIEYocixlKXtjb25zdCB0PXR5cGVvZiBlPT0ic3RyaW5nInx8dHlwZW9mIGU9PSJzeW1ib2wiP2U6aGUscz1MLmdldChyKTtyZXR1cm4gcy5oYXModCl8fHMuc2V0KHQsbmV3IFNldCkscy5nZXQodCl9ZnVuY3Rpb24gdnIocixlLHQpe2NvbnN0IHM9TC5nZXQocik7aWYocy5oYXMoZSkpZm9yKGNvbnN0IG4gb2Ygcy5nZXQoZSkpbi5lbnF1ZXVlKHQpO2lmKHMuaGFzKGhlKSl7Y29uc3Qgbj1Qcm9taXNlLmFsbChbZSx0XSk7Zm9yKGNvbnN0IG8gb2Ygcy5nZXQoaGUpKW8uZW5xdWV1ZShuKX19ZnVuY3Rpb24gUWUocixlKXtlPUFycmF5LmlzQXJyYXkoZSk/ZTpbZV07bGV0IHQ9ITEscz0oKT0+e30sbj1bXTtjb25zdCBvPXtlbnF1ZXVlKGkpe24ucHVzaChpKSxzKCl9LGZpbmlzaCgpe3Q9ITAscygpfX07Zm9yKGNvbnN0IGkgb2YgZSlGKHIsaSkuYWRkKG8pO3JldHVybnthc3luYyBuZXh0KCl7cmV0dXJuIG4/bi5sZW5ndGg9PT0wP3Q/KG49dm9pZCAwLHRoaXMubmV4dCgpKTooYXdhaXQgbmV3IFByb21pc2UoaT0+e3M9aX0pLHRoaXMubmV4dCgpKTp7ZG9uZTohMSx2YWx1ZTphd2FpdCBuLnNoaWZ0KCl9Ontkb25lOiEwfX0sYXN5bmMgcmV0dXJuKGkpe249dm9pZCAwO2Zvcihjb25zdCBhIG9mIGUpRihyLGEpLmRlbGV0ZShvKTtyZXR1cm4gcygpLGFyZ3VtZW50cy5sZW5ndGg+MD97ZG9uZTohMCx2YWx1ZTphd2FpdCBpfTp7ZG9uZTohMH19LFtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKXtyZXR1cm4gdGhpc319fWZ1bmN0aW9uIFhlKHIpe2lmKHI9PT12b2lkIDApcmV0dXJuIEtlO2lmKCFBcnJheS5pc0FycmF5KHIpKXRocm93IG5ldyBUeXBlRXJyb3IoImBtZXRob2ROYW1lc2AgbXVzdCBiZSBhbiBhcnJheSBvZiBzdHJpbmdzIik7Zm9yKGNvbnN0IGUgb2YgcilpZighS2UuaW5jbHVkZXMoZSkpdGhyb3cgdHlwZW9mIGUhPSJzdHJpbmciP25ldyBUeXBlRXJyb3IoImBtZXRob2ROYW1lc2AgZWxlbWVudCBtdXN0IGJlIGEgc3RyaW5nIik6bmV3IEVycm9yKGAke2V9IGlzIG5vdCBFbWl0dGVyeSBtZXRob2RgKTtyZXR1cm4gcn1jb25zdCBwZT1yPT5yPT09S3x8cj09PVk7Y2xhc3MgQ3tzdGF0aWMgbWl4aW4oZSx0KXtyZXR1cm4gdD1YZSh0KSxzPT57aWYodHlwZW9mIHMhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiYHRhcmdldGAgbXVzdCBiZSBmdW5jdGlvbiIpO2Zvcihjb25zdCBpIG9mIHQpaWYocy5wcm90b3R5cGVbaV0hPT12b2lkIDApdGhyb3cgbmV3IEVycm9yKGBUaGUgcHJvcGVydHkgXGAke2l9XGAgYWxyZWFkeSBleGlzdHMgb24gXGB0YXJnZXRcYGApO2Z1bmN0aW9uIG4oKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsZSx7ZW51bWVyYWJsZTohMSx2YWx1ZTpuZXcgQ30pLHRoaXNbZV19T2JqZWN0LmRlZmluZVByb3BlcnR5KHMucHJvdG90eXBlLGUse2VudW1lcmFibGU6ITEsZ2V0Om59KTtjb25zdCBvPWk9PmZ1bmN0aW9uKC4uLmEpe3JldHVybiB0aGlzW2VdW2ldKC4uLmEpfTtmb3IoY29uc3QgaSBvZiB0KU9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLnByb3RvdHlwZSxpLHtlbnVtZXJhYmxlOiExLHZhbHVlOm8oaSl9KTtyZXR1cm4gc319c3RhdGljIGdldCBpc0RlYnVnRW5hYmxlZCgpe2lmKHR5cGVvZiBwcm9jZXNzIT0ib2JqZWN0IilyZXR1cm4gZGU7Y29uc3R7ZW52OmV9PXByb2Nlc3N8fHtlbnY6e319O3JldHVybiBlLkRFQlVHPT09ImVtaXR0ZXJ5Inx8ZS5ERUJVRz09PSIqInx8ZGV9c3RhdGljIHNldCBpc0RlYnVnRW5hYmxlZChlKXtkZT1lfWNvbnN0cnVjdG9yKGU9e30pe1Muc2V0KHRoaXMsbmV3IFNldCksWC5zZXQodGhpcyxuZXcgTWFwKSxMLnNldCh0aGlzLG5ldyBNYXApLHRoaXMuZGVidWc9ZS5kZWJ1Z3x8e30sdGhpcy5kZWJ1Zy5lbmFibGVkPT09dm9pZCAwJiYodGhpcy5kZWJ1Zy5lbmFibGVkPSExKSx0aGlzLmRlYnVnLmxvZ2dlcnx8KHRoaXMuZGVidWcubG9nZ2VyPSh0LHMsbixvKT0+e289SlNPTi5zdHJpbmdpZnkobyksdHlwZW9mIG49PSJzeW1ib2wiJiYobj1uLnRvU3RyaW5nKCkpO2NvbnN0IGk9bmV3IERhdGUsYT1gJHtpLmdldEhvdXJzKCl9OiR7aS5nZXRNaW51dGVzKCl9OiR7aS5nZXRTZWNvbmRzKCl9LiR7aS5nZXRNaWxsaXNlY29uZHMoKX1gO2NvbnNvbGUubG9nKGBbJHthfV1bZW1pdHRlcnk6JHt0fV1bJHtzfV0gRXZlbnQgTmFtZTogJHtufQoJZGF0YTogJHtvfWApfSl9bG9nSWZEZWJ1Z0VuYWJsZWQoZSx0LHMpeyhDLmlzRGVidWdFbmFibGVkfHx0aGlzLmRlYnVnLmVuYWJsZWQpJiZ0aGlzLmRlYnVnLmxvZ2dlcihlLHRoaXMuZGVidWcubmFtZSx0LHMpfW9uKGUsdCl7Wih0KSxlPUFycmF5LmlzQXJyYXkoZSk/ZTpbZV07Zm9yKGNvbnN0IHMgb2YgZSlBKHMpLGsodGhpcyxzKS5hZGQodCksdGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgic3Vic2NyaWJlIixzLHZvaWQgMCkscGUocyl8fHRoaXMuZW1pdChLLHtldmVudE5hbWU6cyxsaXN0ZW5lcjp0fSk7cmV0dXJuIHRoaXMub2ZmLmJpbmQodGhpcyxlLHQpfW9mZihlLHQpe1oodCksZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdO2Zvcihjb25zdCBzIG9mIGUpQShzKSxrKHRoaXMscykuZGVsZXRlKHQpLHRoaXMubG9nSWZEZWJ1Z0VuYWJsZWQoInVuc3Vic2NyaWJlIixzLHZvaWQgMCkscGUocyl8fHRoaXMuZW1pdChZLHtldmVudE5hbWU6cyxsaXN0ZW5lcjp0fSl9b25jZShlKXtyZXR1cm4gbmV3IFByb21pc2UodD0+e2NvbnN0IHM9dGhpcy5vbihlLG49PntzKCksdChuKX0pfSl9ZXZlbnRzKGUpe2U9QXJyYXkuaXNBcnJheShlKT9lOltlXTtmb3IoY29uc3QgdCBvZiBlKUEodCk7cmV0dXJuIFFlKHRoaXMsZSl9YXN5bmMgZW1pdChlLHQpe0EoZSksdGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgiZW1pdCIsZSx0KSx2cih0aGlzLGUsdCk7Y29uc3Qgcz1rKHRoaXMsZSksbj1TLmdldCh0aGlzKSxvPVsuLi5zXSxpPXBlKGUpP1tdOlsuLi5uXTthd2FpdCB6ZSxhd2FpdCBQcm9taXNlLmFsbChbLi4uby5tYXAoYXN5bmMgYT0+e2lmKHMuaGFzKGEpKXJldHVybiBhKHQpfSksLi4uaS5tYXAoYXN5bmMgYT0+e2lmKG4uaGFzKGEpKXJldHVybiBhKGUsdCl9KV0pfWFzeW5jIGVtaXRTZXJpYWwoZSx0KXtBKGUpLHRoaXMubG9nSWZEZWJ1Z0VuYWJsZWQoImVtaXRTZXJpYWwiLGUsdCk7Y29uc3Qgcz1rKHRoaXMsZSksbj1TLmdldCh0aGlzKSxvPVsuLi5zXSxpPVsuLi5uXTthd2FpdCB6ZTtmb3IoY29uc3QgYSBvZiBvKXMuaGFzKGEpJiZhd2FpdCBhKHQpO2Zvcihjb25zdCBhIG9mIGkpbi5oYXMoYSkmJmF3YWl0IGEoZSx0KX1vbkFueShlKXtyZXR1cm4gWihlKSx0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJzdWJzY3JpYmVBbnkiLHZvaWQgMCx2b2lkIDApLFMuZ2V0KHRoaXMpLmFkZChlKSx0aGlzLmVtaXQoSyx7bGlzdGVuZXI6ZX0pLHRoaXMub2ZmQW55LmJpbmQodGhpcyxlKX1hbnlFdmVudCgpe3JldHVybiBRZSh0aGlzKX1vZmZBbnkoZSl7WihlKSx0aGlzLmxvZ0lmRGVidWdFbmFibGVkKCJ1bnN1YnNjcmliZUFueSIsdm9pZCAwLHZvaWQgMCksdGhpcy5lbWl0KFkse2xpc3RlbmVyOmV9KSxTLmdldCh0aGlzKS5kZWxldGUoZSl9Y2xlYXJMaXN0ZW5lcnMoZSl7ZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdO2Zvcihjb25zdCB0IG9mIGUpaWYodGhpcy5sb2dJZkRlYnVnRW5hYmxlZCgiY2xlYXIiLHQsdm9pZCAwKSx0eXBlb2YgdD09InN0cmluZyJ8fHR5cGVvZiB0PT0ic3ltYm9sIil7ayh0aGlzLHQpLmNsZWFyKCk7Y29uc3Qgcz1GKHRoaXMsdCk7Zm9yKGNvbnN0IG4gb2YgcyluLmZpbmlzaCgpO3MuY2xlYXIoKX1lbHNle1MuZ2V0KHRoaXMpLmNsZWFyKCk7Zm9yKGNvbnN0IHMgb2YgWC5nZXQodGhpcykudmFsdWVzKCkpcy5jbGVhcigpO2Zvcihjb25zdCBzIG9mIEwuZ2V0KHRoaXMpLnZhbHVlcygpKXtmb3IoY29uc3QgbiBvZiBzKW4uZmluaXNoKCk7cy5jbGVhcigpfX19bGlzdGVuZXJDb3VudChlKXtlPUFycmF5LmlzQXJyYXkoZSk/ZTpbZV07bGV0IHQ9MDtmb3IoY29uc3QgcyBvZiBlKXtpZih0eXBlb2Ygcz09InN0cmluZyIpe3QrPVMuZ2V0KHRoaXMpLnNpemUrayh0aGlzLHMpLnNpemUrRih0aGlzLHMpLnNpemUrRih0aGlzKS5zaXplO2NvbnRpbnVlfXR5cGVvZiBzIT0idW5kZWZpbmVkIiYmQShzKSx0Kz1TLmdldCh0aGlzKS5zaXplO2Zvcihjb25zdCBuIG9mIFguZ2V0KHRoaXMpLnZhbHVlcygpKXQrPW4uc2l6ZTtmb3IoY29uc3QgbiBvZiBMLmdldCh0aGlzKS52YWx1ZXMoKSl0Kz1uLnNpemV9cmV0dXJuIHR9YmluZE1ldGhvZHMoZSx0KXtpZih0eXBlb2YgZSE9Im9iamVjdCJ8fGU9PT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoImB0YXJnZXRgIG11c3QgYmUgYW4gb2JqZWN0Iik7dD1YZSh0KTtmb3IoY29uc3QgcyBvZiB0KXtpZihlW3NdIT09dm9pZCAwKXRocm93IG5ldyBFcnJvcihgVGhlIHByb3BlcnR5IFxgJHtzfVxgIGFscmVhZHkgZXhpc3RzIG9uIFxgdGFyZ2V0XGBgKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxzLHtlbnVtZXJhYmxlOiExLHZhbHVlOnRoaXNbc10uYmluZCh0aGlzKX0pfX19Y29uc3QgS2U9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQy5wcm90b3R5cGUpLmZpbHRlcihyPT5yIT09ImNvbnN0cnVjdG9yIik7T2JqZWN0LmRlZmluZVByb3BlcnR5KEMsImxpc3RlbmVyQWRkZWQiLHt2YWx1ZTpLLHdyaXRhYmxlOiExLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiExfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEMsImxpc3RlbmVyUmVtb3ZlZCIse3ZhbHVlOlksd3JpdGFibGU6ITEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITF9KTt2YXIgbWU9QztmdW5jdGlvbiBFcihyKXtyZXR1cm4gdHlwZW9mIHI9PSJvYmplY3QiJiZyIT09bnVsbCYmIm1lc3NhZ2UiaW4gciYmdHlwZW9mIHIubWVzc2FnZT09InN0cmluZyJ9ZnVuY3Rpb24gVHIocil7aWYoRXIocikpcmV0dXJuIHI7dHJ5e3JldHVybiBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkocikpfWNhdGNoe3JldHVybiBuZXcgRXJyb3IoU3RyaW5nKHIpKX19ZnVuY3Rpb24gZ2Uocil7cmV0dXJuIFRyKHIpLm1lc3NhZ2V9dmFyIHllOyhmdW5jdGlvbihyKXtyLkZQU19EUk9QPSJmcHNfZHJvcCJ9KSh5ZXx8KHllPXt9KSk7Y29uc3QgUHI9NTAwLFJyPS44O2NsYXNzIFNyIGV4dGVuZHMgbWV7Y29uc3RydWN0b3IoZSx0KXtzdXBlcigpLHRoaXMuaW5kZXhfPXQsdGhpcy51dWlkXz1HZSgpLHRoaXMuZnJhbWVzVHJhbnNmb3JtZWRfPTAsdGhpcy50cmFuc2Zvcm1lcl89ZSx0aGlzLnNob3VsZFN0b3BfPSExLHRoaXMuaXNGbGFzaGVkXz0hMSx0aGlzLmZyYW1lc0Zyb21Tb3VyY2VfPTAsdGhpcy5mcHNfPTAsdGhpcy5tZWRpYVRyYW5zZm9ybWVyUW9zUmVwb3J0U3RhcnRUaW1lc3RhbXBfPTAsdGhpcy52aWRlb0hlaWdodF89MCx0aGlzLnZpZGVvV2lkdGhfPTAsdGhpcy50cmFja0V4cGVjdGVkUmF0ZV89LTEsdGhpcy50cmFuc2Zvcm1lclR5cGVfPSJDdXN0b20iLCJnZXRUcmFuc2Zvcm1lclR5cGUiaW4gZSYmKHRoaXMudHJhbnNmb3JtZXJUeXBlXz1lLmdldFRyYW5zZm9ybWVyVHlwZSgpKTtjb25zdCBzPW5ldyBfKCkuYWN0aW9uKCJNZWRpYVRyYW5zZm9ybWVyIikuZ3VpZCh0aGlzLnV1aWRfKS50cmFuc2Zvcm1lclR5cGUodGhpcy50cmFuc2Zvcm1lclR5cGVfKS52YXJpYXRpb24oIkNyZWF0ZSIpLmJ1aWxkKCk7Yi5yZXBvcnQocyl9c2V0VHJhY2tFeHBlY3RlZFJhdGUoZSl7dGhpcy50cmFja0V4cGVjdGVkUmF0ZV89ZX1hc3luYyBzdGFydChlKXtpZih0aGlzLmNvbnRyb2xsZXJfPWUsdGhpcy50cmFuc2Zvcm1lcl8mJnR5cGVvZiB0aGlzLnRyYW5zZm9ybWVyXy5zdGFydD09ImZ1bmN0aW9uIil0cnl7YXdhaXQgdGhpcy50cmFuc2Zvcm1lcl8uc3RhcnQoZSl9Y2F0Y2godCl7Y29uc3Qgcz1uZXcgXygpLmFjdGlvbigiTWVkaWFUcmFuc2Zvcm1lciIpLmd1aWQodGhpcy51dWlkXykubWVzc2FnZShQLmVycm9ycy50cmFuc2Zvcm1lcl9zdGFydCkudHJhbnNmb3JtZXJUeXBlKHRoaXMudHJhbnNmb3JtZXJUeXBlXykudmFyaWF0aW9uKCJFcnJvciIpLmVycm9yKGdlKHQpKS5idWlsZCgpO2IucmVwb3J0KHMpO2NvbnN0IG49e2V2ZW50TWV0YURhdGE6e3RyYW5zZm9ybWVySW5kZXg6dGhpcy5pbmRleF99LGVycm9yOnQsZnVuY3Rpb246InN0YXJ0In07dGhpcy5lbWl0KCJlcnJvciIsbil9fWFzeW5jIHRyYW5zZm9ybShlLHQpe3ZhciBzLG4sbyxpO2lmKHRoaXMubWVkaWFUcmFuc2Zvcm1lclFvc1JlcG9ydFN0YXJ0VGltZXN0YW1wXz09PTAmJih0aGlzLm1lZGlhVHJhbnNmb3JtZXJRb3NSZXBvcnRTdGFydFRpbWVzdGFtcF89RGF0ZS5ub3coKSksZSBpbnN0YW5jZW9mIFZpZGVvRnJhbWUmJih0aGlzLnZpZGVvSGVpZ2h0Xz0ocz1lPT1udWxsP3ZvaWQgMDplLmRpc3BsYXlIZWlnaHQpIT1udWxsP3M6MCx0aGlzLnZpZGVvV2lkdGhfPShuPWU9PW51bGw/dm9pZCAwOmUuZGlzcGxheVdpZHRoKSE9bnVsbD9uOjApLCsrdGhpcy5mcmFtZXNGcm9tU291cmNlXyx0aGlzLnRyYW5zZm9ybWVyXylpZih0aGlzLnNob3VsZFN0b3BfKWNvbnNvbGUud2FybigiW1BpcGVsaW5lXSBmbHVzaCBmcm9tIHRyYW5zZm9ybSIpLGUuY2xvc2UoKSx0aGlzLmZsdXNoKHQpLHQudGVybWluYXRlKCk7ZWxzZSB0cnl7YXdhaXQoKGk9KG89dGhpcy50cmFuc2Zvcm1lcl8pLnRyYW5zZm9ybSk9PW51bGw/dm9pZCAwOmkuY2FsbChvLGUsdCkpLCsrdGhpcy5mcmFtZXNUcmFuc2Zvcm1lZF8sdGhpcy5mcmFtZXNUcmFuc2Zvcm1lZF89PT1QciYmdGhpcy5tZWRpYVRyYW5zZm9ybWVyUW9zUmVwb3J0KCl9Y2F0Y2goYSl7Y29uc3QgbD1uZXcgXygpLmFjdGlvbigiTWVkaWFUcmFuc2Zvcm1lciIpLmd1aWQodGhpcy51dWlkXykubWVzc2FnZShQLmVycm9ycy50cmFuc2Zvcm1lcl90cmFuc2Zvcm0pLnRyYW5zZm9ybWVyVHlwZSh0aGlzLnRyYW5zZm9ybWVyVHlwZV8pLnZhcmlhdGlvbigiRXJyb3IiKS5lcnJvcihnZShhKSkuYnVpbGQoKTtiLnJlcG9ydChsKTtjb25zdCBtPXtldmVudE1ldGFEYXRhOnt0cmFuc2Zvcm1lckluZGV4OnRoaXMuaW5kZXhffSxlcnJvcjphLGZ1bmN0aW9uOiJ0cmFuc2Zvcm0ifTt0aGlzLmVtaXQoImVycm9yIixtKX19YXN5bmMgZmx1c2goZSl7aWYodGhpcy50cmFuc2Zvcm1lcl8mJnR5cGVvZiB0aGlzLnRyYW5zZm9ybWVyXy5mbHVzaD09ImZ1bmN0aW9uIiYmIXRoaXMuaXNGbGFzaGVkXyl7dGhpcy5pc0ZsYXNoZWRfPSEwO3RyeXthd2FpdCB0aGlzLnRyYW5zZm9ybWVyXy5mbHVzaChlKX1jYXRjaChzKXtjb25zdCBuPW5ldyBfKCkuYWN0aW9uKCJNZWRpYVRyYW5zZm9ybWVyIikuZ3VpZCh0aGlzLnV1aWRfKS5tZXNzYWdlKFAuZXJyb3JzLnRyYW5zZm9ybWVyX2ZsdXNoKS50cmFuc2Zvcm1lclR5cGUodGhpcy50cmFuc2Zvcm1lclR5cGVfKS52YXJpYXRpb24oIkVycm9yIikuZXJyb3IoZ2UocykpLmJ1aWxkKCk7Yi5yZXBvcnQobik7Y29uc3Qgbz17ZXZlbnRNZXRhRGF0YTp7dHJhbnNmb3JtZXJJbmRleDp0aGlzLmluZGV4X30sZXJyb3I6cyxmdW5jdGlvbjoiZmx1c2gifTt0aGlzLmVtaXQoImVycm9yIixvKX19dGhpcy5tZWRpYVRyYW5zZm9ybWVyUW9zUmVwb3J0KCk7Y29uc3QgdD1uZXcgXygpLmFjdGlvbigiTWVkaWFUcmFuc2Zvcm1lciIpLmd1aWQodGhpcy51dWlkXykudHJhbnNmb3JtZXJUeXBlKHRoaXMudHJhbnNmb3JtZXJUeXBlXykudmFyaWF0aW9uKCJEZWxldGUiKS5idWlsZCgpO2IucmVwb3J0KHQpfXN0b3AoKXtjb25zb2xlLmxvZygiW1BpcGVsaW5lXSBTdG9wIHN0cmVhbS4iKSx0aGlzLmNvbnRyb2xsZXJfJiYodGhpcy5mbHVzaCh0aGlzLmNvbnRyb2xsZXJfKSx0aGlzLmNvbnRyb2xsZXJfLnRlcm1pbmF0ZSgpKSx0aGlzLnNob3VsZFN0b3BfPSEwfW1lZGlhVHJhbnNmb3JtZXJRb3NSZXBvcnQoKXtsZXQgZT0oRGF0ZS5ub3coKS10aGlzLm1lZGlhVHJhbnNmb3JtZXJRb3NSZXBvcnRTdGFydFRpbWVzdGFtcF8pLzFlMyx0PXRoaXMuZnJhbWVzRnJvbVNvdXJjZV8vZSxzPXRoaXMuZnJhbWVzVHJhbnNmb3JtZWRfL2U7aWYodGhpcy50cmFja0V4cGVjdGVkUmF0ZV8hPS0xJiZ0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXypScj50KXtjb25zdCBvPXtldmVudE1ldGFEYXRhOnt0cmFuc2Zvcm1lckluZGV4OnRoaXMuaW5kZXhffSx3YXJuaW5nVHlwZTp5ZS5GUFNfRFJPUCxkcm9wSW5mbzp7cmVxdWVzdGVkOnRoaXMudHJhY2tFeHBlY3RlZFJhdGVfLGN1cnJlbnQ6dH19O3RoaXMuZW1pdCgid2FybiIsbyl9Y29uc3Qgbj1uZXcgXygpLmFjdGlvbigiTWVkaWFUcmFuc2Zvcm1lciIpLmZwcyh0KS50cmFuc2Zvcm1lZEZwcyhzKS5mcmFtZXNUcmFuc2Zvcm1lZCh0aGlzLmZyYW1lc1RyYW5zZm9ybWVkXykuZ3VpZCh0aGlzLnV1aWRfKS50cmFuc2Zvcm1lclR5cGUodGhpcy50cmFuc2Zvcm1lclR5cGVfKS52aWRlb0hlaWdodCh0aGlzLnZpZGVvSGVpZ2h0XykudmlkZW9XaWR0aCh0aGlzLnZpZGVvV2lkdGhfKS52YXJpYXRpb24oIlFvUyIpLmJ1aWxkKCk7Yi5yZXBvcnQobiksdGhpcy5tZWRpYVRyYW5zZm9ybWVyUW9zUmVwb3J0U3RhcnRUaW1lc3RhbXBfPTAsdGhpcy5mcmFtZXNGcm9tU291cmNlXz0wLHRoaXMuZnJhbWVzVHJhbnNmb3JtZWRfPTB9fWNsYXNzIENyIGV4dGVuZHMgbWV7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLnRyYW5zZm9ybWVyc189W10sdGhpcy50cmFja0V4cGVjdGVkUmF0ZV89LTE7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2xldCBzPW5ldyBTcihlW3RdLHQpO3Mub24oImVycm9yIixuPT57dGhpcy5lbWl0KCJlcnJvciIsbil9KSxzLm9uKCJ3YXJuIixuPT57dGhpcy5lbWl0KCJ3YXJuIixuKX0pLHRoaXMudHJhbnNmb3JtZXJzXy5wdXNoKHMpfX1zZXRUcmFja0V4cGVjdGVkUmF0ZShlKXt0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXz1lO2ZvcihsZXQgdCBvZiB0aGlzLnRyYW5zZm9ybWVyc18pdC5zZXRUcmFja0V4cGVjdGVkUmF0ZSh0aGlzLnRyYWNrRXhwZWN0ZWRSYXRlXyl9YXN5bmMgc3RhcnQoZSx0KXtpZighdGhpcy50cmFuc2Zvcm1lcnNffHx0aGlzLnRyYW5zZm9ybWVyc18ubGVuZ3RoPT09MCl7Y29uc29sZS5sb2coIltQaXBlbGluZV0gTm8gdHJhbnNmb3JtZXJzLiIpO3JldHVybn10cnl7bGV0IHM9ZTtmb3IobGV0IG4gb2YgdGhpcy50cmFuc2Zvcm1lcnNfKWU9ZS5waXBlVGhyb3VnaChuZXcgVHJhbnNmb3JtU3RyZWFtKG4pKTtlLnBpcGVUbyh0KS50aGVuKGFzeW5jKCk9Pntjb25zb2xlLmxvZygiW1BpcGVsaW5lXSBTZXR1cC4iKSxhd2FpdCB0LmFib3J0KCksYXdhaXQgcy5jYW5jZWwoKSx0aGlzLmVtaXQoInBpcGVsaW5lSW5mbyIse21lc3NhZ2U6InBpcGVsaW5lX2VuZGVkIn0pfSkuY2F0Y2goYXN5bmMgbj0+e2UuY2FuY2VsKCkudGhlbigoKT0+e2NvbnNvbGUubG9nKCJbUGlwZWxpbmVdIFNodXR0aW5nIGRvd24gc3RyZWFtcyBhZnRlciBhYm9ydC4iKX0pLmNhdGNoKG89Pntjb25zb2xlLmVycm9yKCJbUGlwZWxpbmVdIEVycm9yIGZyb20gc3RyZWFtIHRyYW5zZm9ybToiLG8pfSksYXdhaXQgdC5hYm9ydChuKSxhd2FpdCBzLmNhbmNlbChuKSx0aGlzLmVtaXQoInBpcGVsaW5lSW5mbyIse21lc3NhZ2U6InBpcGVsaW5lX2VuZGVkX3dpdGhfZXJyb3IifSl9KX1jYXRjaHt0aGlzLmVtaXQoInBpcGVsaW5lSW5mbyIse21lc3NhZ2U6InBpcGVsaW5lX3N0YXJ0ZWRfd2l0aF9lcnJvciJ9KSx0aGlzLmRlc3Ryb3koKTtyZXR1cm59dGhpcy5lbWl0KCJwaXBlbGluZUluZm8iLHttZXNzYWdlOiJwaXBlbGluZV9zdGFydGVkIn0pLGNvbnNvbGUubG9nKCJbUGlwZWxpbmVdIFBpcGVsaW5lIHN0YXJ0ZWQuIil9YXN5bmMgZGVzdHJveSgpe2NvbnNvbGUubG9nKCJbUGlwZWxpbmVdIERlc3Ryb3lpbmcgUGlwZWxpbmUuIik7Zm9yKGxldCBlIG9mIHRoaXMudHJhbnNmb3JtZXJzXyllLnN0b3AoKX19Y2xhc3MgT3IgZXh0ZW5kcyBtZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy51dWlkXz1HZSgpLHRoaXMudHJhY2tFeHBlY3RlZFJhdGVfPS0xO2NvbnN0IGU9bmV3IF8oKS5hY3Rpb24oIk1lZGlhUHJvY2Vzc29yIikuZ3VpZCh0aGlzLnV1aWRfKS52YXJpYXRpb24oIkNyZWF0ZSIpLmJ1aWxkKCk7Yi5yZXBvcnQoZSl9c2V0VHJhY2tFeHBlY3RlZFJhdGUoZSl7dGhpcy50cmFja0V4cGVjdGVkUmF0ZV89ZSx0aGlzLnBpcGVsaW5lXyYmdGhpcy5waXBlbGluZV8uc2V0VHJhY2tFeHBlY3RlZFJhdGUodGhpcy50cmFja0V4cGVjdGVkUmF0ZV8pfXRyYW5zZm9ybShlLHQpe3JldHVybiB0aGlzLnJlYWRhYmxlXz1lLHRoaXMud3JpdGFibGVfPXQsdGhpcy50cmFuc2Zvcm1JbnRlcm5hbCgpfXRyYW5zZm9ybUludGVybmFsKCl7cmV0dXJuIG5ldyBQcm9taXNlKChlLHQpPT57aWYoIXRoaXMudHJhbnNmb3JtZXJzX3x8dGhpcy50cmFuc2Zvcm1lcnNfLmxlbmd0aD09PTApe2NvbnN0IG49bmV3IF8oKS5hY3Rpb24oIk1lZGlhUHJvY2Vzc29yIikuZ3VpZCh0aGlzLnV1aWRfKS5tZXNzYWdlKFAuZXJyb3JzLnRyYW5zZm9ybWVyX25vbmUpLnZhcmlhdGlvbigiRXJyb3IiKS5idWlsZCgpO2IucmVwb3J0KG4pLHQoIltNZWRpYVByb2Nlc3Nvcl0gTmVlZCB0byBzZXQgdHJhbnNmb3JtZXJzLiIpO3JldHVybn1pZighdGhpcy5yZWFkYWJsZV8pe2NvbnN0IG49bmV3IF8oKS5hY3Rpb24oIk1lZGlhUHJvY2Vzc29yIikuZ3VpZCh0aGlzLnV1aWRfKS5tZXNzYWdlKFAuZXJyb3JzLnJlYWRhYmxlX251bGwpLnZhcmlhdGlvbigiRXJyb3IiKS5idWlsZCgpO2IucmVwb3J0KG4pLHQoIltNZWRpYVByb2Nlc3Nvcl0gUmVhZGFibGUgaXMgbnVsbC4iKTtyZXR1cm59aWYoIXRoaXMud3JpdGFibGVfKXtjb25zdCBuPW5ldyBfKCkuYWN0aW9uKCJNZWRpYVByb2Nlc3NvciIpLmd1aWQodGhpcy51dWlkXykubWVzc2FnZShQLmVycm9ycy53cml0YWJsZV9udWxsKS52YXJpYXRpb24oIkVycm9yIikuYnVpbGQoKTtiLnJlcG9ydChuKSx0KCJbTWVkaWFQcm9jZXNzb3JdIFdyaXRhYmxlIGlzIG51bGwuIik7cmV0dXJufWxldCBzPSExO3RoaXMucGlwZWxpbmVfJiYocz0hMCx0aGlzLnBpcGVsaW5lXy5jbGVhckxpc3RlbmVycygpLHRoaXMucGlwZWxpbmVfLmRlc3Ryb3koKSksdGhpcy5waXBlbGluZV89bmV3IENyKHRoaXMudHJhbnNmb3JtZXJzXyksdGhpcy5waXBlbGluZV8ub24oIndhcm4iLG49Pnt0aGlzLmVtaXQoIndhcm4iLG4pfSksdGhpcy5waXBlbGluZV8ub24oImVycm9yIixuPT57dGhpcy5lbWl0KCJlcnJvciIsbil9KSx0aGlzLnBpcGVsaW5lXy5vbigicGlwZWxpbmVJbmZvIixuPT57cyYmKG4ubWVzc2FnZT09PSJwaXBlbGluZV9zdGFydGVkIj9uLm1lc3NhZ2U9InBpcGVsaW5lX3Jlc3RhcnRlZCI6bi5tZXNzYWdlPT09InBpcGVsaW5lX3N0YXJ0ZWRfd2l0aF9lcnJvciImJihuLm1lc3NhZ2U9InBpcGVsaW5lX3Jlc3RhcnRlZF93aXRoX2Vycm9yIikpLHRoaXMuZW1pdCgicGlwZWxpbmVJbmZvIixuKX0pLHRoaXMudHJhY2tFeHBlY3RlZFJhdGVfIT0tMSYmdGhpcy5waXBlbGluZV8uc2V0VHJhY2tFeHBlY3RlZFJhdGUodGhpcy50cmFja0V4cGVjdGVkUmF0ZV8pLHRoaXMucGlwZWxpbmVfLnN0YXJ0KHRoaXMucmVhZGFibGVfLHRoaXMud3JpdGFibGVfKS50aGVuKCgpPT57ZSgpfSkuY2F0Y2gobj0+e3Qobil9KX0pfXNldFRyYW5zZm9ybWVycyhlKXtjb25zdCB0PW5ldyBfKCkuYWN0aW9uKCJNZWRpYVByb2Nlc3NvciIpLmd1aWQodGhpcy51dWlkXykubWVzc2FnZShQLnVwZGF0ZXMudHJhbnNmb3JtZXJfbmV3KS52YXJpYXRpb24oIlVwZGF0ZSIpLmJ1aWxkKCk7cmV0dXJuIGIucmVwb3J0KHQpLHRoaXMudHJhbnNmb3JtZXJzXz1lLHRoaXMucmVhZGFibGVfJiZ0aGlzLndyaXRhYmxlXz90aGlzLnRyYW5zZm9ybUludGVybmFsKCk6UHJvbWlzZS5yZXNvbHZlKCl9ZGVzdHJveSgpe3JldHVybiBuZXcgUHJvbWlzZShlPT57dGhpcy5waXBlbGluZV8mJnRoaXMucGlwZWxpbmVfLmRlc3Ryb3koKTtjb25zdCB0PW5ldyBfKCkuYWN0aW9uKCJNZWRpYVByb2Nlc3NvciIpLmd1aWQodGhpcy51dWlkXykudmFyaWF0aW9uKCJEZWxldGUiKS5idWlsZCgpO2IucmVwb3J0KHQpLGUoKX0pfX12YXIgX2U9KHI9PihyLkxvdz0iTG93IixyLkhpZ2g9IkhpZ2giLHIpKShfZXx8e30pO2NsYXNzIFlle2NvbnN0cnVjdG9yKGUpe3RoaXMuYmx1ckZpbHRlcl89ZT09PV9lLkhpZ2g/ImJsdXIoMTVweCkiOiJibHVyKDVweCkifWRlc3Ryb3koKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+e2UoKX0pfXJ1blBvc3RQcm9jZXNzaW5nKGUsdCl7dHJ5e2UuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJkZXN0aW5hdGlvbi1vdmVyIixlLmZpbHRlcj10aGlzLmJsdXJGaWx0ZXJfLGUuZHJhd0ltYWdlKHQsMCwwLHQud2lkdGgsdC5oZWlnaHQpfWNhdGNoKHMpe2NvbnNvbGUubG9nKCJbQmx1clBvc3RQcm9jZXNzXSBGYWlsZWQgdG8gZHJhdyBjYW52YXMiLHMpfX19Y2xhc3MgWmV7Y29uc3RydWN0b3IoKXt9ZGVzdHJveSgpe3JldHVybiBuZXcgUHJvbWlzZShlPT57dGhpcy5iZ0ltYWdlXyYmdGhpcy5iZ0ltYWdlXy5jbG9zZSgpLGUoKX0pfXNldFZpcnR1YWxCR0ltYWdlKGUpe3RoaXMuYmdJbWFnZV8mJnRoaXMuYmdJbWFnZV8uY2xvc2UoKSx0aGlzLmJnSW1hZ2VfPWV9YXN5bmMgcnVuUG9zdFByb2Nlc3NpbmcoZSx0KXtpZih0aGlzLmJnSW1hZ2VfKXtpZih0aGlzLmJnSW1hZ2VfLndpZHRoIT10LndpZHRofHx0aGlzLmJnSW1hZ2VfLmhlaWdodCE9dC5oZWlnaHQpe2NvbnN0IHM9ImhpZ2giLG49e3Jlc2l6ZVdpZHRoOnQud2lkdGgscmVzaXplSGVpZ2h0OnQuaGVpZ2h0LHJlc2l6ZVF1YWxpdHk6c307dHJ5e3RoaXMuYmdJbWFnZV89YXdhaXQgY3JlYXRlSW1hZ2VCaXRtYXAodGhpcy5iZ0ltYWdlXyxuKX1jYXRjaChvKXt0aHJvdyBvfX1lLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0iZGVzdGluYXRpb24tb3ZlciIsZS5kcmF3SW1hZ2UodGhpcy5iZ0ltYWdlXywwLDAsdGhpcy5iZ0ltYWdlXy53aWR0aCx0aGlzLmJnSW1hZ2VfLmhlaWdodCl9fX1jbGFzcyBJcntjb25zdHJ1Y3RvcihlPTEvMCl7dGhpcy5jYXBhY2l0eT1lLHRoaXMuc3RvcmFnZT1bXX1lbnF1ZXVlKGUpe2lmKHRoaXMuc2l6ZSgpPT09dGhpcy5jYXBhY2l0eSl0aHJvdyBFcnJvcigiUXVldWUgaGFzIHJlYWNoZWQgbWF4IGNhcGFjaXR5LCB5b3UgY2Fubm90IGFkZCBtb3JlIGl0ZW1zIik7dGhpcy5zdG9yYWdlLnB1c2goZSl9ZGVxdWV1ZSgpe3JldHVybiB0aGlzLnN0b3JhZ2Uuc2hpZnQoKX1zaXplKCl7cmV0dXJuIHRoaXMuc3RvcmFnZS5sZW5ndGh9fWNvbnN0IGJlPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5xdWV1ZV89bmV3IElyfWNsZWFyUXVldWUocil7Zm9yKDt0aGlzLnF1ZXVlXy5zaXplKCk+MDspdGhpcy5xdWV1ZV8uZGVxdWV1ZSgpLmNsb3NlKCl9c2V0VmlkZW9SZWFkYWJsZShyKXtyZXR1cm4gbmV3IFByb21pc2UoKGUsdCk9Pnt0aGlzLmZyYW1lUmVhZGVyXz1yLmdldFJlYWRlcigpLHRoaXMuZnJhbWVSZWFkZXJfLnJlYWQoKS50aGVuKHM9Pnt0aGlzLnByb2Nlc3NGcmFtZShzKX0pLmNhdGNoKHM9Pnt0KHMpfSksZSgpfSl9ZGVzdHJveSgpe3JldHVybiBuZXcgUHJvbWlzZShhc3luYyhyLGUpPT57dmFyIHQ7dGhpcy5jbGVhclF1ZXVlKCEwKSx0aGlzLmZyYW1lUmVhZGVyXz8odD10aGlzLmZyYW1lUmVhZGVyXyk9PW51bGx8fHQuY2FuY2VsKCkudGhlbigoKT0+e3IoKX0pLmNhdGNoKHM9PntlKHMpfSk6cigpfSl9cHJvY2Vzc0ZyYW1lKHIpe2lmKCFyLmRvbmUpe2lmKCF0aGlzLmZyYW1lUmVhZGVyXyl7ci52YWx1ZS5jbG9zZSgpO3JldHVybn1mb3IoO3RoaXMucXVldWVfLnNpemUoKT49YmUuTlVNQkVSX09GX0ZSQU1FU19UT19DTEVBUjspe2xldCBlPXRoaXMucXVldWVfLmRlcXVldWUoKTtlJiZlLmNsb3NlKCl9dGhpcy5xdWV1ZV8uZW5xdWV1ZShyLnZhbHVlKSx0aGlzLmZyYW1lUmVhZGVyXy5yZWFkKCkudGhlbihlPT57dGhpcy5wcm9jZXNzRnJhbWUoZSl9KS5jYXRjaChlPT57Y29uc29sZS5lcnJvcihlKX0pfX1ydW5Qb3N0UHJvY2Vzc2luZyhyLGUpe3RyeXtpZihyLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0iZGVzdGluYXRpb24tb3ZlciIsdGhpcy5xdWV1ZV8uc2l6ZSgpPmJlLk5VTUJFUl9PRl9GUkFNRVNfVE9fQ0xFQVImJnRoaXMuY2xlYXJRdWV1ZSghMSksdGhpcy5xdWV1ZV8uc2l6ZSgpPjApe2NvbnN0IHQ9dGhpcy5xdWV1ZV8uZGVxdWV1ZSgpO3IuZHJhd0ltYWdlKHQsMCwwLGUud2lkdGgsZS5oZWlnaHQpLHQuY2xvc2UoKX19Y2F0Y2godCl7Y29uc29sZS5lcnJvcigiW1ZpZGVvUG9zdFByb2Nlc3NdIEZhaWxlZCB0byBkcmF3IGNhbnZhcyIsdCl9fX07bGV0IHdlPWJlO3dlLk5VTUJFUl9PRl9GUkFNRVNfVE9fQ0xFQVI9NTtjbGFzcyB4cntjb25zdHJ1Y3RvcihlKXt0aGlzLmJsdXJGaWx0ZXJfPWU9PT1fZS5IaWdoPyJibHVyKDE1cHgpIjoiYmx1cig1cHgpIn1kZXN0cm95KCl7cmV0dXJuIG5ldyBQcm9taXNlKGU9PntlKCl9KX1ydW5Qb3N0UHJvY2Vzc2luZyhlLHQpe3RyeXtlLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0ic291cmNlLWluIixlLmZpbHRlcj10aGlzLmJsdXJGaWx0ZXJfLGUuZHJhd0ltYWdlKHQsMCwwLHQud2lkdGgsdC5oZWlnaHQpLGUuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJkZXN0aW5hdGlvbi1vdmVyIixlLmZpbHRlcj0iYmx1cigwcHgpIixlLmRyYXdJbWFnZSh0LDAsMCx0LndpZHRoLHQuaGVpZ2h0KX1jYXRjaChzKXtjb25zb2xlLmxvZygiW0JsdXJQb3N0UHJvY2Vzc10gRmFpbGVkIHRvIGRyYXcgY2FudmFzIixzKX19fWNvbnN0IHc9Y2xhc3N7Y29uc3RydWN0b3IoKXtpZih0aGlzLmxhc3RQcm9jZXNzZWRUaW1lc3RhbXBfPTAsdGhpcy5uZXdJbnB1dENvdW50ZXI9MCx0aGlzLnRpbWVyR2FwXz13LkJMVVJfUFJPQ0VTU19HQVBfTUlDUk9fU0VDT05ELHRoaXMucmVzdWx0Q2FudmFzXz1uZXcgT2Zmc2NyZWVuQ2FudmFzKDEsMSksdGhpcy5yZXN1bHRDdHhfPXRoaXMucmVzdWx0Q2FudmFzXy5nZXRDb250ZXh0KCIyZCIse2FscGhhOiExLGRlc3luY2hyb25pemVkOiEwfSksIXRoaXMucmVzdWx0Q3R4Xyl0aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBjcmVhdGUgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIik7aWYodGhpcy5zZWdtZW50YXRpb25NYXNrQ2FudmFzXz1uZXcgT2Zmc2NyZWVuQ2FudmFzKHcuU0VMRklFX1dJRFRILHcuU0VMRklFX0hJR0hUKSx0aGlzLnNlZ21lbnRhdGlvbk1hc2tDdHhfPXRoaXMuc2VnbWVudGF0aW9uTWFza0NhbnZhc18uZ2V0Q29udGV4dCgiMmQiLHthbHBoYTohMSxkZXN5bmNocm9uaXplZDohMH0pLCF0aGlzLnNlZ21lbnRhdGlvbk1hc2tDdHhfKXRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIGNyZWF0ZSBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQiKX1pbml0KHIpe3RoaXMucHJvY2Vzc0ZyYW1lQ2I9cn1hc3luYyBzZXRCYWNrZ3JvdW5kT3B0aW9ucyhyKXtpZih0eXBlb2YgdGhpcy5wb3N0UHJvY2Vzc0ludGVyZmFjZV8hPSJ1bmRlZmluZWQiKXRyeXthd2FpdCB0aGlzLnBvc3RQcm9jZXNzSW50ZXJmYWNlXy5kZXN0cm95KCl9Y2F0Y2goZSl7dGhyb3cgZX1pZihyLnRyYW5zZm9ybWVyVHlwZT09PSJWaXJ0dWFsQmFja2dyb3VuZCIpdGhpcy50aW1lckdhcF89dy5WSVJUVUFMX1BST0NFU1NfR0FQX01JQ1JPX1NFQ09ORCx0aGlzLnBvc3RQcm9jZXNzSW50ZXJmYWNlXz1uZXcgWmU7ZWxzZSBpZihyLnRyYW5zZm9ybWVyVHlwZT09PSJCYWNrZ3JvdW5kQmx1ciIpe2xldCBlPXI7dGhpcy50aW1lckdhcF89dy5CTFVSX1BST0NFU1NfR0FQX01JQ1JPX1NFQ09ORCx0aGlzLnBvc3RQcm9jZXNzSW50ZXJmYWNlXz1uZXcgWWUoZS5yYWRpdXMpfWVsc2UgaWYoci50cmFuc2Zvcm1lclR5cGU9PT0iVmlkZW9CYWNrZ3JvdW5kIil0aGlzLnRpbWVyR2FwXz13LkJMVVJfUFJPQ0VTU19HQVBfTUlDUk9fU0VDT05ELHRoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfPW5ldyB3ZTtlbHNlIGlmKHIudHJhbnNmb3JtZXJUeXBlPT09IlNpbHVldGVCbHVyIil7bGV0IGU9cjt0aGlzLnRpbWVyR2FwXz13LkJMVVJfUFJPQ0VTU19HQVBfTUlDUk9fU0VDT05ELHRoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfPW5ldyB4cihlLnJhZGl1cyl9ZWxzZSB0aGlzLnRpbWVyR2FwXz13LkJMVVJfUFJPQ0VTU19HQVBfTUlDUk9fU0VDT05ELHRoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfPW5ldyBZZX1jbG9zZSgpe3JldHVybiBuZXcgUHJvbWlzZSgocixlKT0+e3RoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfP3RoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfLmRlc3Ryb3koKS50aGVuKCgpPT57cigpfSkuY2F0Y2godD0+e2UodCl9KTpyKCl9KX1zdGFydCgpe31hc3luYyB0cmFuc2Zvcm0ocixlKXsodGhpcy5yZXN1bHRDYW52YXNfLndpZHRoIT1yLmRpc3BsYXlXaWR0aHx8dGhpcy5yZXN1bHRDYW52YXNfLmhlaWdodCE9ci5kaXNwbGF5SGVpZ2h0KSYmKHRoaXMucmVzdWx0Q2FudmFzXy53aWR0aD1yLmRpc3BsYXlXaWR0aCx0aGlzLnJlc3VsdENhbnZhc18uaGVpZ2h0PXIuZGlzcGxheUhlaWdodCk7Y29uc3QgdD1yLnRpbWVzdGFtcDtjcmVhdGVJbWFnZUJpdG1hcChyKS50aGVuKHM9PntyLmNsb3NlKCksdGhpcy5wcm9jZXNzRnJhbWUoZSxzLHQpfSkuY2F0Y2gocz0+e2UuZW5xdWV1ZShyKX0pfXByb2Nlc3NGcmFtZShyLGUsdCl7KHRoaXMubmV3SW5wdXRDb3VudGVyPHcuTkVXX0lOUFVUX05VTUJFUl9PRl9SVU5TfHx0LXRoaXMubGFzdFByb2Nlc3NlZFRpbWVzdGFtcF8+PXRoaXMudGltZXJHYXBfKSYmKHRoaXMubGFzdFByb2Nlc3NlZFRpbWVzdGFtcF89dCx0aGlzLnByb2Nlc3NTb3VyY2UoZSksdGhpcy5uZXdJbnB1dENvdW50ZXI8dy5ORVdfSU5QVVRfTlVNQkVSX09GX1JVTlMmJnRoaXMubmV3SW5wdXRDb3VudGVyKyspLHRoaXMucmVzdWx0Q3R4Xy5zYXZlKCksdGhpcy5yZXN1bHRDdHhfLmNsZWFyUmVjdCgwLDAsdGhpcy5yZXN1bHRDYW52YXNfLndpZHRoLHRoaXMucmVzdWx0Q2FudmFzXy5oZWlnaHQpLHRoaXMuc2VnbWVudGF0aW9uTWFza0ltYWdlXyYmKHRoaXMucmVzdWx0Q3R4Xy5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249ImNvcHkiLHRoaXMucmVzdWx0Q3R4Xy5kcmF3SW1hZ2UodGhpcy5zZWdtZW50YXRpb25NYXNrSW1hZ2VfLDAsMCx0aGlzLnNlZ21lbnRhdGlvbk1hc2tJbWFnZV8ud2lkdGgsdGhpcy5zZWdtZW50YXRpb25NYXNrSW1hZ2VfLmhlaWdodCwwLDAsdGhpcy5yZXN1bHRDYW52YXNfLndpZHRoLHRoaXMucmVzdWx0Q2FudmFzXy5oZWlnaHQpKSx0aGlzLnJlc3VsdEN0eF8uZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJzb3VyY2UtYXRvcCIsdGhpcy5yZXN1bHRDdHhfLmZpbHRlcj0ibm9uZSIsdGhpcy5yZXN1bHRDdHhfLmRyYXdJbWFnZShlLDAsMCxlLndpZHRoLGUuaGVpZ2h0KSx0aGlzLnBvc3RQcm9jZXNzSW50ZXJmYWNlXyYmdGhpcy5wb3N0UHJvY2Vzc0ludGVyZmFjZV8ucnVuUG9zdFByb2Nlc3NpbmcodGhpcy5yZXN1bHRDdHhfLGUpLHRoaXMucmVzdWx0Q3R4Xy5yZXN0b3JlKCksci5lbnF1ZXVlKG5ldyBWaWRlb0ZyYW1lKHRoaXMucmVzdWx0Q2FudmFzXyx7dGltZXN0YW1wOnQsYWxwaGE6ImRpc2NhcmQifSkpLGUuY2xvc2UoKX1wcm9jZXNzU291cmNlKHIpe2lmKHRoaXMuc2VnbWVudGF0aW9uTWFza0N0eF8uY2xlYXJSZWN0KDAsMCx0aGlzLnNlZ21lbnRhdGlvbk1hc2tDYW52YXNfLndpZHRoLHRoaXMuc2VnbWVudGF0aW9uTWFza0NhbnZhc18uaGVpZ2h0KSx0aGlzLnNlZ21lbnRhdGlvbk1hc2tDdHhfLmRyYXdJbWFnZShyLDAsMCxyLndpZHRoLHIuaGVpZ2h0LDAsMCx0aGlzLnNlZ21lbnRhdGlvbk1hc2tDYW52YXNfLndpZHRoLHRoaXMuc2VnbWVudGF0aW9uTWFza0NhbnZhc18uaGVpZ2h0KSx0aGlzLnByb2Nlc3NGcmFtZUNiKXtsZXQgZT10aGlzLnNlZ21lbnRhdGlvbk1hc2tDYW52YXNfLnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpO3RoaXMucHJvY2Vzc0ZyYW1lQ2IoZSl9fWZsdXNoKCl7fWdldFRyYW5zZm9ybWVyVHlwZSgpe3JldHVybiJCYWNrZ3JvdW5kVHJhbnNmb3JtZXIifXJlc2V0TmV3SW5wdXRDb3VuZXIoKXt0aGlzLm5ld0lucHV0Q291bnRlcj0wfXNldFZpZGVvQkdSZWFkYWJsZShyKXtyZXR1cm4gbmV3IFByb21pc2UoKGUsdCk9Pnt0aGlzLnBvc3RQcm9jZXNzSW50ZXJmYWNlXyBpbnN0YW5jZW9mIHdlP3RoaXMucG9zdFByb2Nlc3NJbnRlcmZhY2VfLnNldFZpZGVvUmVhZGFibGUocikudGhlbigoKT0+e2UoKX0pLmNhdGNoKHM9Pnt0KHMpfSk6dCgicG9zdCBwcm9jZXNzIGlzIG5vdCB2aWRlbyIpfSl9c2V0VmlydHVhbEJHSW1hZ2Uocil7cmV0dXJuIG5ldyBQcm9taXNlKChlLHQpPT57dGhpcy5wb3N0UHJvY2Vzc0ludGVyZmFjZV8gaW5zdGFuY2VvZiBaZT8odGhpcy5wb3N0UHJvY2Vzc0ludGVyZmFjZV8uc2V0VmlydHVhbEJHSW1hZ2UociksZSgpKTp0KCJwb3N0IHByb2Nlc3MgaXMgbm90IHZpZGVvIil9KX1zZXRTZWdtZW50YXRpb25NYXNrSW1hZ2Uocil7dGhpcy5zZWdtZW50YXRpb25NYXNrSW1hZ2VfJiZ0aGlzLnNlZ21lbnRhdGlvbk1hc2tJbWFnZV8uY2xvc2UoKSx0aGlzLnNlZ21lbnRhdGlvbk1hc2tJbWFnZV89cn19O2xldCBOPXc7Ti5CTFVSX1BST0NFU1NfR0FQX01JQ1JPX1NFQ09ORD0yZTUsTi5WSVJUVUFMX1BST0NFU1NfR0FQX01JQ1JPX1NFQ09ORD0xNWU0LE4uTkVXX0lOUFVUX05VTUJFUl9PRl9SVU5TPTMwLE4uU0VMRklFX1dJRFRIPTI1NixOLlNFTEZJRV9ISUdIVD0xNDQ7ZnVuY3Rpb24gTXIocil7cmV0dXJuIHR5cGVvZiByPT0ib2JqZWN0IiYmciE9PW51bGwmJiJtZXNzYWdlImluIHImJnR5cGVvZiByLm1lc3NhZ2U9PSJzdHJpbmcifWZ1bmN0aW9uIEFyKHIpe2lmKE1yKHIpKXJldHVybiByO3RyeXtyZXR1cm4gbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHIpKX1jYXRjaHtyZXR1cm4gbmV3IEVycm9yKFN0cmluZyhyKSl9fWZ1bmN0aW9uIFUocil7cmV0dXJuIHR5cGVvZiByPT0idW5kZWZpbmVkIj8iIjpBcihyKS5tZXNzYWdlfWlmKHR5cGVvZiBpbXBvcnRTY3JpcHRzPT0iZnVuY3Rpb24iKXtsZXQgcj1mdW5jdGlvbigpe3JldHVybiBuZXcgUHJvbWlzZSgocyxuKT0+e2U9bmV3IE9yLGUub24oImVycm9yIixpPT57Y29uc3QgYT17Y2FsbGJhY2tUeXBlOiJtZWRpYV9wcm9jZXNzb3JfZXJyb3JfZXZlbnQiLG1lc3NhZ2U6aX07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoYSkpfSksZS5vbigid2FybiIsaT0+e2NvbnN0IGE9e2NhbGxiYWNrVHlwZToibWVkaWFfcHJvY2Vzc29yX3dhcm5fZXZlbnQiLG1lc3NhZ2U6aX07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoYSkpfSksZS5vbigicGlwZWxpbmVJbmZvIixpPT57Y29uc3QgYT17Y2FsbGJhY2tUeXBlOiJtZWRpYV9wcm9jZXNzb3JfcGlwZWxpbmVfZXZlbnQiLG1lc3NhZ2U6aX07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoYSkpfSksdD1uZXcgTix0LmluaXQoaT0+e3Bvc3RNZXNzYWdlKGksW2ldKX0pO2xldCBvPVtdO28ucHVzaCh0KSxlLnNldFRyYW5zZm9ybWVycyhvKS50aGVuKCgpPT57cygpfSkuY2F0Y2goaT0+e24oaSl9KX0pfSxlLHQ7b25tZXNzYWdlPWFzeW5jIHM9PntpZihzLmRhdGEgaW5zdGFuY2VvZiBJbWFnZUJpdG1hcCl7dCYmdC5zZXRTZWdtZW50YXRpb25NYXNrSW1hZ2Uocy5kYXRhKTtyZXR1cm59Y29uc3R7b3BlcmF0aW9uOm59PXMuZGF0YTtpZihuPT09ImluaXQiKXtjb25zdHttZXRhRGF0YTpvfT1zLmRhdGE7dHlwZW9mIG89PSJzdHJpbmciJiZkcihKU09OLnBhcnNlKG8pKSxyKCkudGhlbigoKT0+e2NvbnN0IGk9e2NhbGxiYWNrVHlwZToic3VjY2VzcyIsbWVzc2FnZTpufTtwb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShpKSl9KS5jYXRjaChpPT57Y29uc3QgYT17Y2FsbGJhY2tUeXBlOiJlcnJvciIsbWVzc2FnZTpuLGVycm9yOlUoaSl9O3Bvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KGEpKX0pfWVsc2UgaWYobj09PSJ0cmFuc2Zvcm0iKXtjb25zdHtyZWFkYWJsZTpvLHdyaXRhYmxlOml9PXMuZGF0YTt0LnJlc2V0TmV3SW5wdXRDb3VuZXIoKSxlLnRyYW5zZm9ybShvLGkpLnRoZW4oKCk9Pntjb25zdCBhPXtjYWxsYmFja1R5cGU6InN1Y2Nlc3MiLG1lc3NhZ2U6bn07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoYSkpfSkuY2F0Y2goYT0+e2NvbnN0IGw9e2NhbGxiYWNrVHlwZToiZXJyb3IiLG1lc3NhZ2U6bixlcnJvcjpVKGEpfTtwb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShsKSl9KX1lbHNlIGlmKG49PT0iZGVzdHJveSIpdC5jbG9zZSgpLmZpbmFsbHkoKCk9PntlLmRlc3Ryb3koKS50aGVuKCgpPT57Y29uc3Qgbz17Y2FsbGJhY2tUeXBlOiJzdWNjZXNzIixtZXNzYWdlOm59O3Bvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KG8pKX0pLmNhdGNoKG89Pntjb25zdCBpPXtjYWxsYmFja1R5cGU6ImVycm9yIixtZXNzYWdlOm4sZXJyb3I6VShvKX07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoaSkpfSl9KTtlbHNlIGlmKG49PT0ic2V0VHJhY2tFeHBlY3RlZFJhdGUiKXtlLnNldFRyYWNrRXhwZWN0ZWRSYXRlKHMuZGF0YS5yYXRlKTtjb25zdCBvPXtjYWxsYmFja1R5cGU6InN1Y2Nlc3MiLG1lc3NhZ2U6bn07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkobykpfWVsc2UgaWYobj09PSJzZXRCYWNrZ3JvdW5kT3B0aW9ucyIpe2NvbnN0e2JhY2tncm91bmRPcHRpb25zOm99PXMuZGF0YTt0LnNldEJhY2tncm91bmRPcHRpb25zKEpTT04ucGFyc2UobykpLnRoZW4oKCk9Pntjb25zdCBpPXtjYWxsYmFja1R5cGU6InN1Y2Nlc3MiLG1lc3NhZ2U6bn07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoaSkpfSkuY2F0Y2goaT0+e2NvbnN0IGE9e2NhbGxiYWNrVHlwZToiZXJyb3IiLG1lc3NhZ2U6bixlcnJvcjpVKGkpfTtwb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShhKSl9KX1lbHNlIGlmKG49PT0ic2V0VmlkZW9CR1JlYWRhYmxlIil7Y29uc3R7cmVhZGFibGU6b309cy5kYXRhO3Quc2V0VmlkZW9CR1JlYWRhYmxlKG8pLnRoZW4oKCk9Pntjb25zdCBpPXtjYWxsYmFja1R5cGU6InN1Y2Nlc3MiLG1lc3NhZ2U6bn07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoaSkpfSkuY2F0Y2goaT0+e2NvbnN0IGE9e2NhbGxiYWNrVHlwZToiZXJyb3IiLG1lc3NhZ2U6bixlcnJvcjpVKGkpfTtwb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShhKSl9KX1lbHNlIGlmKG49PT0ic2V0VmlydHVhbEJHSW1hZ2UiKXtjb25zdHtpbWFnZTpvfT1zLmRhdGE7dC5zZXRWaXJ0dWFsQkdJbWFnZShvKS50aGVuKCgpPT57Y29uc3QgaT17Y2FsbGJhY2tUeXBlOiJzdWNjZXNzIixtZXNzYWdlOm59O3Bvc3RNZXNzYWdlKEpTT04uc3RyaW5naWZ5KGkpKX0pLmNhdGNoKGk9Pntjb25zdCBhPXtjYWxsYmFja1R5cGU6ImVycm9yIixtZXNzYWdlOm4sZXJyb3I6VShpKX07cG9zdE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoYSkpfSl9fX19KSgpOwo=",Fi=typeof window!="undefined"&&window.Blob&&new Blob([atob(Ti)],{type:"text/javascript;charset=utf-8"});function $o(){const V=Fi&&(window.URL||window.webkitURL).createObjectURL(Fi);try{return V?new Worker(V,{}):new Worker("data:application/javascript;base64,"+Ti,{type:"module"})}finally{V&&(window.URL||window.webkitURL).revokeObjectURL(V)}}const Pn=new WeakMap,Xr=new WeakMap,lr=new WeakMap,zr=Symbol("anyProducer"),xi=Promise.resolve(),wr=Symbol("listenerAdded"),Wr=Symbol("listenerRemoved");let Qr=!1;function nr(V){if(typeof V!="string"&&typeof V!="symbol")throw new TypeError("eventName must be a string or a symbol")}function Vr(V){if(typeof V!="function")throw new TypeError("listener must be a function")}function rr(V,v){const W=Xr.get(V);return W.has(v)||W.set(v,new Set),W.get(v)}function cr(V,v){const W=typeof v=="string"||typeof v=="symbol"?v:zr,I=lr.get(V);return I.has(W)||I.set(W,new Set),I.get(W)}function qo(V,v,W){const I=lr.get(V);if(I.has(v))for(const x of I.get(v))x.enqueue(W);if(I.has(zr)){const x=Promise.all([v,W]);for(const A of I.get(zr))A.enqueue(x)}}function Li(V,v){v=Array.isArray(v)?v:[v];let W=!1,I=()=>{},x=[];const A={enqueue(Q){x.push(Q),I()},finish(){W=!0,I()}};for(const Q of v)cr(V,Q).add(A);return{async next(){return x?x.length===0?W?(x=void 0,this.next()):(await new Promise(Q=>{I=Q}),this.next()):{done:!1,value:await x.shift()}:{done:!0}},async return(Q){x=void 0;for(const C of v)cr(V,C).delete(A);return I(),arguments.length>0?{done:!0,value:await Q}:{done:!0}},[Symbol.asyncIterator](){return this}}}function Ii(V){if(V===void 0)return Ni;if(!Array.isArray(V))throw new TypeError("`methodNames` must be an array of strings");for(const v of V)if(!Ni.includes(v))throw typeof v!="string"?new TypeError("`methodNames` element must be a string"):new Error(`${v} is not Emittery method`);return V}const Dr=V=>V===wr||V===Wr;class zn{static mixin(v,W){return W=Ii(W),I=>{if(typeof I!="function")throw new TypeError("`target` must be function");for(const Q of W)if(I.prototype[Q]!==void 0)throw new Error(`The property \`${Q}\` already exists on \`target\``);function x(){return Object.defineProperty(this,v,{enumerable:!1,value:new zn}),this[v]}Object.defineProperty(I.prototype,v,{enumerable:!1,get:x});const A=Q=>function(...C){return this[v][Q](...C)};for(const Q of W)Object.defineProperty(I.prototype,Q,{enumerable:!1,value:A(Q)});return I}}static get isDebugEnabled(){if(typeof process!="object")return Qr;const{env:v}=process||{env:{}};return v.DEBUG==="emittery"||v.DEBUG==="*"||Qr}static set isDebugEnabled(v){Qr=v}constructor(v={}){Pn.set(this,new Set),Xr.set(this,new Map),lr.set(this,new Map),this.debug=v.debug||{},this.debug.enabled===void 0&&(this.debug.enabled=!1),this.debug.logger||(this.debug.logger=(W,I,x,A)=>{try{A=JSON.stringify(A)}catch{A=`Object with the following keys failed to stringify: ${Object.keys(A).join(",")}`}typeof x=="symbol"&&(x=x.toString());const Q=new Date,C=`${Q.getHours()}:${Q.getMinutes()}:${Q.getSeconds()}.${Q.getMilliseconds()}`;console.log(`[${C}][emittery:${W}][${I}] Event Name: ${x}
|
|
4
|
+
data: ${A}`)})}logIfDebugEnabled(v,W,I){(zn.isDebugEnabled||this.debug.enabled)&&this.debug.logger(v,this.debug.name,W,I)}on(v,W){Vr(W),v=Array.isArray(v)?v:[v];for(const I of v)nr(I),rr(this,I).add(W),this.logIfDebugEnabled("subscribe",I,void 0),Dr(I)||this.emit(wr,{eventName:I,listener:W});return this.off.bind(this,v,W)}off(v,W){Vr(W),v=Array.isArray(v)?v:[v];for(const I of v)nr(I),rr(this,I).delete(W),this.logIfDebugEnabled("unsubscribe",I,void 0),Dr(I)||this.emit(Wr,{eventName:I,listener:W})}once(v){return new Promise(W=>{const I=this.on(v,x=>{I(),W(x)})})}events(v){v=Array.isArray(v)?v:[v];for(const W of v)nr(W);return Li(this,v)}async emit(v,W){nr(v),this.logIfDebugEnabled("emit",v,W),qo(this,v,W);const I=rr(this,v),x=Pn.get(this),A=[...I],Q=Dr(v)?[]:[...x];await xi,await Promise.all([...A.map(async C=>{if(I.has(C))return C(W)}),...Q.map(async C=>{if(x.has(C))return C(v,W)})])}async emitSerial(v,W){nr(v),this.logIfDebugEnabled("emitSerial",v,W);const I=rr(this,v),x=Pn.get(this),A=[...I],Q=[...x];await xi;for(const C of A)I.has(C)&&await C(W);for(const C of Q)x.has(C)&&await C(v,W)}onAny(v){return Vr(v),this.logIfDebugEnabled("subscribeAny",void 0,void 0),Pn.get(this).add(v),this.emit(wr,{listener:v}),this.offAny.bind(this,v)}anyEvent(){return Li(this)}offAny(v){Vr(v),this.logIfDebugEnabled("unsubscribeAny",void 0,void 0),this.emit(Wr,{listener:v}),Pn.get(this).delete(v)}clearListeners(v){v=Array.isArray(v)?v:[v];for(const W of v)if(this.logIfDebugEnabled("clear",W,void 0),typeof W=="string"||typeof W=="symbol"){rr(this,W).clear();const I=cr(this,W);for(const x of I)x.finish();I.clear()}else{Pn.get(this).clear();for(const I of Xr.get(this).values())I.clear();for(const I of lr.get(this).values()){for(const x of I)x.finish();I.clear()}}}listenerCount(v){v=Array.isArray(v)?v:[v];let W=0;for(const I of v){if(typeof I=="string"){W+=Pn.get(this).size+rr(this,I).size+cr(this,I).size+cr(this).size;continue}typeof I!="undefined"&&nr(I),W+=Pn.get(this).size;for(const x of Xr.get(this).values())W+=x.size;for(const x of lr.get(this).values())W+=x.size}return W}bindMethods(v,W){if(typeof v!="object"||v===null)throw new TypeError("`target` must be an object");W=Ii(W);for(const I of W){if(v[I]!==void 0)throw new Error(`The property \`${I}\` already exists on \`target\``);Object.defineProperty(v,I,{enumerable:!1,value:this[I].bind(this)})}}}const Ni=Object.getOwnPropertyNames(zn.prototype).filter(V=>V!=="constructor");Object.defineProperty(zn,"listenerAdded",{value:wr,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(zn,"listenerRemoved",{value:Wr,writable:!1,enumerable:!0,configurable:!1});var Ei=zn;const Sr={};(function(){var V;function v(f){var b=0;return function(){return b<f.length?{done:!1,value:f[b++]}:{done:!0}}}var W=typeof Object.defineProperties=="function"?Object.defineProperty:function(f,b,Z){return f==Array.prototype||f==Object.prototype||(f[b]=Z.value),f};function I(f){f=[typeof globalThis=="object"&&globalThis,f,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var b=0;b<f.length;++b){var Z=f[b];if(Z&&Z.Math==Math)return Z}throw Error("Cannot find global object")}var x=I(this);function A(f,b){if(b)t:{var Z=x;f=f.split(".");for(var Y=0;Y<f.length-1;Y++){var _=f[Y];if(!(_ in Z))break t;Z=Z[_]}f=f[f.length-1],Y=Z[f],b=b(Y),b!=Y&&b!=null&&W(Z,f,{configurable:!0,writable:!0,value:b})}}A("Symbol",function(f){function b(et){if(this instanceof b)throw new TypeError("Symbol is not a constructor");return new Z(Y+(et||"")+"_"+_++,et)}function Z(et,K){this.g=et,W(this,"description",{configurable:!0,writable:!0,value:K})}if(f)return f;Z.prototype.toString=function(){return this.g};var Y="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",_=0;return b}),A("Symbol.iterator",function(f){if(f)return f;f=Symbol("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),Z=0;Z<b.length;Z++){var Y=x[b[Z]];typeof Y=="function"&&typeof Y.prototype[f]!="function"&&W(Y.prototype,f,{configurable:!0,writable:!0,value:function(){return Q(v(this))}})}return f});function Q(f){return f={next:f},f[Symbol.iterator]=function(){return this},f}function C(f){var b=typeof Symbol!="undefined"&&Symbol.iterator&&f[Symbol.iterator];return b?b.call(f):{next:v(f)}}function pt(f){if(!(f instanceof Array)){f=C(f);for(var b,Z=[];!(b=f.next()).done;)Z.push(b.value);f=Z}return f}var _e=typeof Object.create=="function"?Object.create:function(f){function b(){}return b.prototype=f,new b},ct;if(typeof Object.setPrototypeOf=="function")ct=Object.setPrototypeOf;else{var jt;t:{var qe={a:!0},fe={};try{fe.__proto__=qe,jt=fe.a;break t}catch{}jt=!1}ct=jt?function(f,b){if(f.__proto__=b,f.__proto__!==b)throw new TypeError(f+" is not extensible");return f}:null}var He=ct;function Lt(f,b){if(f.prototype=_e(b.prototype),f.prototype.constructor=f,He)He(f,b);else for(var Z in b)if(Z!="prototype")if(Object.defineProperties){var Y=Object.getOwnPropertyDescriptor(b,Z);Y&&Object.defineProperty(f,Z,Y)}else f[Z]=b[Z];f.ea=b.prototype}function ue(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function pe(f){if(f.l)throw new TypeError("Generator is already running");f.l=!0}ue.prototype.o=function(f){this.h=f};function he(f,b){f.j={U:b,V:!0},f.g=f.m||f.s}ue.prototype.return=function(f){this.j={return:f},this.g=this.s};function $(f,b,Z){return f.g=Z,{value:b}}function Fn(f){this.g=new ue,this.h=f}function Hn(f,b){pe(f.g);var Z=f.g.i;return Z?je(f,"return"in Z?Z.return:function(Y){return{value:Y,done:!0}},b,f.g.return):(f.g.return(b),ee(f))}function je(f,b,Z,Y){try{var _=b.call(f.g.i,Z);if(!(_ instanceof Object))throw new TypeError("Iterator result "+_+" is not an object");if(!_.done)return f.g.l=!1,_;var et=_.value}catch(K){return f.g.i=null,he(f.g,K),ee(f)}return f.g.i=null,Y.call(f.g,et),ee(f)}function ee(f){for(;f.g.g;)try{var b=f.h(f.g);if(b)return f.g.l=!1,{value:b.value,done:!1}}catch(Z){f.g.h=void 0,he(f.g,Z)}if(f.g.l=!1,f.g.j){if(b=f.g.j,f.g.j=null,b.V)throw b.U;return{value:b.return,done:!0}}return{value:void 0,done:!0}}function jn(f){this.next=function(b){return pe(f.g),f.g.i?b=je(f,f.g.i.next,b,f.g.o):(f.g.o(b),b=ee(f)),b},this.throw=function(b){return pe(f.g),f.g.i?b=je(f,f.g.i.throw,b,f.g.o):(he(f.g,b),b=ee(f)),b},this.return=function(b){return Hn(f,b)},this[Symbol.iterator]=function(){return this}}function te(f,b){return b=new jn(new Fn(b)),He&&f.prototype&&He(b,f.prototype),b}function ht(f,b){f instanceof String&&(f+="");var Z=0,Y=!1,_={next:function(){if(!Y&&Z<f.length){var et=Z++;return{value:b(et,f[et]),done:!1}}return Y=!0,{done:!0,value:void 0}}};return _[Symbol.iterator]=function(){return _},_}var Jn=typeof Object.assign=="function"?Object.assign:function(f,b){for(var Z=1;Z<arguments.length;Z++){var Y=arguments[Z];if(Y)for(var _ in Y)Object.prototype.hasOwnProperty.call(Y,_)&&(f[_]=Y[_])}return f};A("Object.assign",function(f){return f||Jn}),A("Promise",function(f){function b(K){this.h=0,this.i=void 0,this.g=[],this.o=!1;var tt=this.j();try{K(tt.resolve,tt.reject)}catch(st){tt.reject(st)}}function Z(){this.g=null}function Y(K){return K instanceof b?K:new b(function(tt){tt(K)})}if(f)return f;Z.prototype.h=function(K){if(this.g==null){this.g=[];var tt=this;this.i(function(){tt.l()})}this.g.push(K)};var _=x.setTimeout;Z.prototype.i=function(K){_(K,0)},Z.prototype.l=function(){for(;this.g&&this.g.length;){var K=this.g;this.g=[];for(var tt=0;tt<K.length;++tt){var st=K[tt];K[tt]=null;try{st()}catch(mt){this.j(mt)}}}this.g=null},Z.prototype.j=function(K){this.i(function(){throw K})},b.prototype.j=function(){function K(mt){return function(Ft){st||(st=!0,mt.call(tt,Ft))}}var tt=this,st=!1;return{resolve:K(this.C),reject:K(this.l)}},b.prototype.C=function(K){if(K===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(K instanceof b)this.F(K);else{t:switch(typeof K){case"object":var tt=K!=null;break t;case"function":tt=!0;break t;default:tt=!1}tt?this.u(K):this.m(K)}},b.prototype.u=function(K){var tt=void 0;try{tt=K.then}catch(st){this.l(st);return}typeof tt=="function"?this.G(tt,K):this.m(K)},b.prototype.l=function(K){this.s(2,K)},b.prototype.m=function(K){this.s(1,K)},b.prototype.s=function(K,tt){if(this.h!=0)throw Error("Cannot settle("+K+", "+tt+"): Promise already settled in state"+this.h);this.h=K,this.i=tt,this.h===2&&this.D(),this.A()},b.prototype.D=function(){var K=this;_(function(){if(K.B()){var tt=x.console;typeof tt!="undefined"&&tt.error(K.i)}},1)},b.prototype.B=function(){if(this.o)return!1;var K=x.CustomEvent,tt=x.Event,st=x.dispatchEvent;return typeof st=="undefined"?!0:(typeof K=="function"?K=new K("unhandledrejection",{cancelable:!0}):typeof tt=="function"?K=new tt("unhandledrejection",{cancelable:!0}):(K=x.document.createEvent("CustomEvent"),K.initCustomEvent("unhandledrejection",!1,!0,K)),K.promise=this,K.reason=this.i,st(K))},b.prototype.A=function(){if(this.g!=null){for(var K=0;K<this.g.length;++K)et.h(this.g[K]);this.g=null}};var et=new Z;return b.prototype.F=function(K){var tt=this.j();K.J(tt.resolve,tt.reject)},b.prototype.G=function(K,tt){var st=this.j();try{K.call(tt,st.resolve,st.reject)}catch(mt){st.reject(mt)}},b.prototype.then=function(K,tt){function st(Ht,Wt){return typeof Ht=="function"?function(Zt){try{mt(Ht(Zt))}catch(Tt){Ft(Tt)}}:Wt}var mt,Ft,wt=new b(function(Ht,Wt){mt=Ht,Ft=Wt});return this.J(st(K,mt),st(tt,Ft)),wt},b.prototype.catch=function(K){return this.then(void 0,K)},b.prototype.J=function(K,tt){function st(){switch(mt.h){case 1:K(mt.i);break;case 2:tt(mt.i);break;default:throw Error("Unexpected state: "+mt.h)}}var mt=this;this.g==null?et.h(st):this.g.push(st),this.o=!0},b.resolve=Y,b.reject=function(K){return new b(function(tt,st){st(K)})},b.race=function(K){return new b(function(tt,st){for(var mt=C(K),Ft=mt.next();!Ft.done;Ft=mt.next())Y(Ft.value).J(tt,st)})},b.all=function(K){var tt=C(K),st=tt.next();return st.done?Y([]):new b(function(mt,Ft){function wt(Zt){return function(Tt){Ht[Zt]=Tt,Wt--,Wt==0&&mt(Ht)}}var Ht=[],Wt=0;do Ht.push(void 0),Wt++,Y(st.value).J(wt(Ht.length-1),Ft),st=tt.next();while(!st.done)})},b}),A("Object.is",function(f){return f||function(b,Z){return b===Z?b!==0||1/b===1/Z:b!==b&&Z!==Z}}),A("Array.prototype.includes",function(f){return f||function(b,Z){var Y=this;Y instanceof String&&(Y=String(Y));var _=Y.length;for(Z=Z||0,0>Z&&(Z=Math.max(Z+_,0));Z<_;Z++){var et=Y[Z];if(et===b||Object.is(et,b))return!0}return!1}}),A("String.prototype.includes",function(f){return f||function(b,Z){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(b instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(b,Z||0)!==-1}}),A("Array.prototype.keys",function(f){return f||function(){return ht(this,function(b){return b})}});var Cn=this||self;function ye(f,b){f=f.split(".");var Z=Cn;f[0]in Z||typeof Z.execScript=="undefined"||Z.execScript("var "+f[0]);for(var Y;f.length&&(Y=f.shift());)f.length||b===void 0?Z[Y]&&Z[Y]!==Object.prototype[Y]?Z=Z[Y]:Z=Z[Y]={}:Z[Y]=b}function St(f,b){return b=String.fromCharCode.apply(null,b),f==null?b:f+b}var We,tn=typeof TextDecoder!="undefined",hn,Wn=typeof TextEncoder!="undefined";function bn(f){if(Wn)f=(hn||(hn=new TextEncoder)).encode(f);else{var b=void 0;b=b===void 0?!1:b;for(var Z=0,Y=new Uint8Array(3*f.length),_=0;_<f.length;_++){var et=f.charCodeAt(_);if(128>et)Y[Z++]=et;else{if(2048>et)Y[Z++]=et>>6|192;else{if(55296<=et&&57343>=et){if(56319>=et&&_<f.length){var K=f.charCodeAt(++_);if(56320<=K&&57343>=K){et=1024*(et-55296)+K-56320+65536,Y[Z++]=et>>18|240,Y[Z++]=et>>12&63|128,Y[Z++]=et>>6&63|128,Y[Z++]=et&63|128;continue}else _--}if(b)throw Error("Found an unpaired surrogate");et=65533}Y[Z++]=et>>12|224,Y[Z++]=et>>6&63|128}Y[Z++]=et&63|128}}f=Y.subarray(0,Z)}return f}var xn={},en=null;function un(f,b){b===void 0&&(b=0),pn(),b=xn[b];for(var Z=Array(Math.floor(f.length/3)),Y=b[64]||"",_=0,et=0;_<f.length-2;_+=3){var K=f[_],tt=f[_+1],st=f[_+2],mt=b[K>>2];K=b[(K&3)<<4|tt>>4],tt=b[(tt&15)<<2|st>>6],st=b[st&63],Z[et++]=mt+K+tt+st}switch(mt=0,st=Y,f.length-_){case 2:mt=f[_+1],st=b[(mt&15)<<2]||Y;case 1:f=f[_],Z[et]=b[f>>2]+b[(f&3)<<4|mt>>4]+st+Y}return Z.join("")}function In(f){var b=f.length,Z=3*b/4;Z%3?Z=Math.floor(Z):"=.".indexOf(f[b-1])!=-1&&(Z="=.".indexOf(f[b-2])!=-1?Z-2:Z-1);var Y=new Uint8Array(Z),_=0;return Vn(f,function(et){Y[_++]=et}),Y.subarray(0,_)}function Vn(f,b){function Z(st){for(;Y<f.length;){var mt=f.charAt(Y++),Ft=en[mt];if(Ft!=null)return Ft;if(!/^[\s\xa0]*$/.test(mt))throw Error("Unknown base64 encoding at char: "+mt)}return st}pn();for(var Y=0;;){var _=Z(-1),et=Z(0),K=Z(64),tt=Z(64);if(tt===64&&_===-1)break;b(_<<2|et>>4),K!=64&&(b(et<<4&240|K>>2),tt!=64&&b(K<<6&192|tt))}}function pn(){if(!en){en={};for(var f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),b=["+/=","+/","-_=","-_.","-_"],Z=0;5>Z;Z++){var Y=f.concat(b[Z].split(""));xn[Z]=Y;for(var _=0;_<Y.length;_++){var et=Y[_];en[et]===void 0&&(en[et]=_)}}}}var nn=typeof Uint8Array.prototype.slice=="function",Zn;function dn(f,b,Z){return b===Z?Zn||(Zn=new Uint8Array(0)):nn?f.slice(b,Z):new Uint8Array(f.subarray(b,Z))}var ce=0,ve=0;function Pe(f,b){b=b===void 0?{}:b,b=b.v===void 0?!1:b.v,this.h=null,this.g=this.i=this.j=0,this.l=!1,this.v=b,f&&le(this,f)}function le(f,b){b=b.constructor===Uint8Array?b:b.constructor===ArrayBuffer?new Uint8Array(b):b.constructor===Array?new Uint8Array(b):b.constructor===String?In(b):b instanceof Uint8Array?new Uint8Array(b.buffer,b.byteOffset,b.byteLength):new Uint8Array(0),f.h=b,f.j=0,f.i=f.h.length,f.g=f.j}Pe.prototype.reset=function(){this.g=this.j};function ae(f){var b=f.h,Z=b[f.g],Y=Z&127;return 128>Z?(f.g+=1,Y):(Z=b[f.g+1],Y|=(Z&127)<<7,128>Z?(f.g+=2,Y):(Z=b[f.g+2],Y|=(Z&127)<<14,128>Z?(f.g+=3,Y):(Z=b[f.g+3],Y|=(Z&127)<<21,128>Z?(f.g+=4,Y):(Z=b[f.g+4],Y|=(Z&15)<<28,128>Z?(f.g+=5,Y>>>0):(f.g+=5,128<=b[f.g++]&&128<=b[f.g++]&&128<=b[f.g++]&&128<=b[f.g++]&&f.g++,Y)))))}function ze(f){var b=f.h[f.g],Z=f.h[f.g+1],Y=f.h[f.g+2],_=f.h[f.g+3];return f.g+=4,Z=(b<<0|Z<<8|Y<<16|_<<24)>>>0,f=2*(Z>>31)+1,b=Z>>>23&255,Z&=8388607,b==255?Z?NaN:1/0*f:b==0?f*Math.pow(2,-149)*Z:f*Math.pow(2,b-150)*(Z+Math.pow(2,23))}var xe=[];function Ct(){this.g=new Uint8Array(64),this.h=0}Ct.prototype.push=function(f){if(!(this.h+1<this.g.length)){var b=this.g;this.g=new Uint8Array(Math.ceil(1+2*this.g.length)),this.g.set(b)}this.g[this.h++]=f},Ct.prototype.length=function(){return this.h},Ct.prototype.end=function(){var f=this.g,b=this.h;return this.h=0,dn(f,0,b)};function re(f,b){for(;127<b;)f.push(b&127|128),b>>>=7;f.push(b)}function Ve(f){var b={},Z=b.N===void 0?!1:b.N;this.o={v:b.v===void 0?!1:b.v},this.N=Z,b=this.o,xe.length?(Z=xe.pop(),b&&(Z.v=b.v),f&&le(Z,f),f=Z):f=new Pe(f,b),this.g=f,this.m=this.g.g,this.h=this.i=this.l=-1,this.j=!1}Ve.prototype.reset=function(){this.g.reset(),this.h=this.l=-1};function It(f){var b=f.g;if((b=b.g==b.i)||(b=f.j)||(b=f.g,b=b.l||0>b.g||b.g>b.i),b)return!1;f.m=f.g.g,b=ae(f.g);var Z=b&7;return Z!=0&&Z!=5&&Z!=1&&Z!=2&&Z!=3&&Z!=4?(f.j=!0,!1):(f.i=b,f.l=b>>>3,f.h=Z,!0)}function de(f){switch(f.h){case 0:if(f.h!=0)de(f);else{for(f=f.g;f.h[f.g]&128;)f.g++;f.g++}break;case 1:f.h!=1?de(f):(f=f.g,f.g+=8);break;case 2:if(f.h!=2)de(f);else{var b=ae(f.g);f=f.g,f.g+=b}break;case 5:f.h!=5?de(f):(f=f.g,f.g+=4);break;case 3:b=f.l;do{if(!It(f)){f.j=!0;break}if(f.h==4){f.l!=b&&(f.j=!0);break}de(f)}while(1);break;default:f.j=!0}}function At(f,b,Z){var Y=f.g.i,_=ae(f.g);return _=f.g.g+_,f.g.i=_,Z(b,f),f.g.g=_,f.g.i=Y,b}function ne(f){var b=ae(f.g);f=f.g;var Z=f.g;f.g+=b,f=f.h;var Y;if(tn)(Y=We)||(Y=We=new TextDecoder("utf-8",{fatal:!1})),Y=Y.decode(f.subarray(Z,Z+b));else{b=Z+b;for(var _=[],et=null,K,tt,st;Z<b;)K=f[Z++],128>K?_.push(K):224>K?Z>=b?_.push(65533):(tt=f[Z++],194>K||(tt&192)!==128?(Z--,_.push(65533)):_.push((K&31)<<6|tt&63)):240>K?Z>=b-1?_.push(65533):(tt=f[Z++],(tt&192)!==128||K===224&&160>tt||K===237&&160<=tt||((Y=f[Z++])&192)!==128?(Z--,_.push(65533)):_.push((K&15)<<12|(tt&63)<<6|Y&63)):244>=K?Z>=b-2?_.push(65533):(tt=f[Z++],(tt&192)!==128||(K<<28)+(tt-144)>>30!==0||((Y=f[Z++])&192)!==128||((st=f[Z++])&192)!==128?(Z--,_.push(65533)):(K=(K&7)<<18|(tt&63)<<12|(Y&63)<<6|st&63,K-=65536,_.push((K>>10&1023)+55296,(K&1023)+56320))):_.push(65533),8192<=_.length&&(et=St(et,_),_.length=0);Y=St(et,_)}return Y}function Ge(){this.h=[],this.i=0,this.g=new Ct}function Be(f,b){b.length!==0&&(f.h.push(b),f.i+=b.length)}function se(f){var b=f.i+f.g.length();if(b===0)return new Uint8Array(0);b=new Uint8Array(b);for(var Z=f.h,Y=Z.length,_=0,et=0;et<Y;et++){var K=Z[et];K.length!==0&&(b.set(K,_),_+=K.length)}return Z=f.g,Y=Z.h,Y!==0&&(b.set(Z.g.subarray(0,Y),_),Z.h=0),f.h=[b],b}function Yt(f,b,Z){if(Z!=null){re(f.g,8*b+5),f=f.g;var Y=Z;Y=(Z=0>Y?1:0)?-Y:Y,Y===0?0<1/Y?ce=ve=0:(ve=0,ce=2147483648):isNaN(Y)?(ve=0,ce=2147483647):34028234663852886e22<Y?(ve=0,ce=(Z<<31|2139095040)>>>0):11754943508222875e-54>Y?(Y=Math.round(Y/Math.pow(2,-149)),ve=0,ce=(Z<<31|Y)>>>0):(b=Math.floor(Math.log(Y)/Math.LN2),Y*=Math.pow(2,-b),Y=Math.round(8388608*Y)&8388607,ve=0,ce=(Z<<31|b+127<<23|Y)>>>0),Z=ce,f.push(Z>>>0&255),f.push(Z>>>8&255),f.push(Z>>>16&255),f.push(Z>>>24&255)}}var Ie=typeof Uint8Array=="function";function Je(f,b,Z){if(f!=null)return typeof f=="object"?Ie&&f instanceof Uint8Array?Z(f):ge(f,b,Z):b(f)}function ge(f,b,Z){if(Array.isArray(f)){for(var Y=Array(f.length),_=0;_<f.length;_++)Y[_]=Je(f[_],b,Z);return Array.isArray(f)&&f.W&&sn(Y),Y}Y={};for(_ in f)Y[_]=Je(f[_],b,Z);return Y}function Xn(f){return typeof f=="number"?isFinite(f)?f:String(f):f}var Qe={W:{value:!0,configurable:!0}};function sn(f){return Array.isArray(f)&&!Object.isFrozen(f)&&Object.defineProperties(f,Qe),f}var cn;function ie(f,b,Z){var Y=cn;cn=null,f||(f=Y),Y=this.constructor.ca,f||(f=Y?[Y]:[]),this.j=Y?0:-1,this.i=null,this.g=f;t:{if(Y=this.g.length,f=Y-1,Y&&(Y=this.g[f],Y!==null&&typeof Y=="object"&&Y.constructor===Object)){this.l=f-this.j,this.h=Y;break t}b!==void 0&&-1<b?(this.l=Math.max(b,f+1-this.j),this.h=null):this.l=Number.MAX_VALUE}if(Z)for(b=0;b<Z.length;b++)f=Z[b],f<this.l?(f+=this.j,(Y=this.g[f])?sn(Y):this.g[f]=Re):(oe(this),(Y=this.h[f])?sn(Y):this.h[f]=Re)}var Re=Object.freeze(sn([]));function oe(f){var b=f.l+f.j;f.g[b]||(f.h=f.g[b]={})}function Mt(f,b,Z){return b===-1?null:(Z===void 0?0:Z)||b>=f.l?f.h?f.h[b]:void 0:f.g[b+f.j]}function Ce(f){var b=b===void 0?!1:b,Z=Mt(f,1,b);return Z==null&&(Z=Re),Z===Re&&(Z=sn([]),Ut(f,1,Z,b)),Z}function Ot(f,b,Z){return f=Mt(f,b),f=f==null?f:+f,f==null?Z===void 0?0:Z:f}function Ut(f,b,Z,Y){(Y===void 0?0:Y)||b>=f.l?(oe(f),f.h[b]=Z):f.g[b+f.j]=Z}function gn(f,b){f.i||(f.i={});var Z=f.i[1];if(!Z){var Y=Ce(f);Z=[];for(var _=0;_<Y.length;_++)Z[_]=new b(Y[_]);f.i[1]=Z}return Z}function $t(f,b,Z,Y){var _=gn(f,Z);b=b||new Z,f=Ce(f),Y!=null?(_.splice(Y,0,b),f.splice(Y,0,Vt(b))):(_.push(b),f.push(Vt(b)))}ie.prototype.toJSON=function(){var f=Vt(this);return ge(f,Xn,un)};function Vt(f,b){if(f.i)for(var Z in f.i){var Y=f.i[Z];if(Array.isArray(Y))for(var _=0;_<Y.length;_++)Y[_]&&Vt(Y[_]);else Y&&Vt(Y)}return f.g}ie.prototype.toString=function(){return Vt(this).toString()};function bt(f,b){return f=Mt(f,b),f==null?0:f}function zt(f,b){return f=Mt(f,b),f==null?"":f}function Fe(f,b){if(f=f.m){Be(b,b.g.end());for(var Z=0;Z<f.length;Z++)Be(b,f[Z])}}function Kt(f,b){if(b.h==4)return!1;var Z=b.m;return de(b),b.N||(b=dn(b.g.h,Z,b.g.g),(Z=f.m)?Z.push(b):f.m=[b]),!0}function Qt(f,b){var Z=void 0;return new(Z||(Z=Promise))(function(Y,_){function et(st){try{tt(b.next(st))}catch(mt){_(mt)}}function K(st){try{tt(b.throw(st))}catch(mt){_(mt)}}function tt(st){st.done?Y(st.value):new Z(function(mt){mt(st.value)}).then(et,K)}tt((b=b.apply(f,void 0)).next())})}function Le(f){ie.call(this,f)}Lt(Le,ie);function kt(f,b){for(;It(b);)switch(b.i){case 8:var Z=ae(b.g);Ut(f,1,Z);break;case 21:Z=ze(b.g),Ut(f,2,Z);break;case 26:Z=ne(b),Ut(f,3,Z);break;case 34:Z=ne(b),Ut(f,4,Z);break;default:if(!Kt(f,b))return f}return f}function Rt(f){ie.call(this,f,-1,Ae)}Lt(Rt,ie),Rt.prototype.addClassification=function(f,b){$t(this,f,Le,b)};var Ae=[1];function Oe(f){ie.call(this,f)}Lt(Oe,ie);function Se(f,b){for(;It(b);)switch(b.i){case 13:var Z=ze(b.g);Ut(f,1,Z);break;case 21:Z=ze(b.g),Ut(f,2,Z);break;case 29:Z=ze(b.g),Ut(f,3,Z);break;case 37:Z=ze(b.g),Ut(f,4,Z);break;case 45:Z=ze(b.g),Ut(f,5,Z);break;default:if(!Kt(f,b))return f}return f}function Jt(f){ie.call(this,f,-1,Ne)}Lt(Jt,ie);var Ne=[1];function an(f){ie.call(this,f)}Lt(an,ie);function De(f,b,Z){if(Z=f.createShader(Z===0?f.VERTEX_SHADER:f.FRAGMENT_SHADER),f.shaderSource(Z,b),f.compileShader(Z),!f.getShaderParameter(Z,f.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
5
5
|
|
|
6
|
-
`+
|
|
6
|
+
`+f.getShaderInfoLog(Z));return Z}function Ee(f){return gn(f,Le).map(function(b){return{index:bt(b,1),Y:Ot(b,2),label:Mt(b,3)!=null?zt(b,3):void 0,displayName:Mt(b,4)!=null?zt(b,4):void 0}})}function Me(f){return{x:Ot(f,1),y:Ot(f,2),z:Ot(f,3),visibility:Mt(f,4)!=null?Ot(f,4):void 0}}function $e(f,b){this.h=f,this.g=b,this.l=0}function me(f,b,Z){return Ye(f,b),typeof f.g.canvas.transferToImageBitmap=="function"?Promise.resolve(f.g.canvas.transferToImageBitmap()):Z?Promise.resolve(f.g.canvas):typeof createImageBitmap=="function"?createImageBitmap(f.g.canvas):(f.i===void 0&&(f.i=document.createElement("canvas")),new Promise(function(Y){f.i.height=f.g.canvas.height,f.i.width=f.g.canvas.width,f.i.getContext("2d",{}).drawImage(f.g.canvas,0,0,f.g.canvas.width,f.g.canvas.height),Y(f.i)}))}function Ye(f,b){var Z=f.g;if(f.m===void 0){var Y=De(Z,`
|
|
7
7
|
attribute vec2 aVertex;
|
|
8
8
|
attribute vec2 aTex;
|
|
9
9
|
varying vec2 vTex;
|
|
10
10
|
void main(void) {
|
|
11
11
|
gl_Position = vec4(aVertex, 0.0, 1.0);
|
|
12
12
|
vTex = aTex;
|
|
13
|
-
}`,0),
|
|
13
|
+
}`,0),_=De(Z,`
|
|
14
14
|
precision mediump float;
|
|
15
15
|
varying vec2 vTex;
|
|
16
16
|
uniform sampler2D sampler0;
|
|
17
17
|
void main(){
|
|
18
18
|
gl_FragColor = texture2D(sampler0, vTex);
|
|
19
|
-
}`,1),
|
|
19
|
+
}`,1),et=Z.createProgram();if(Z.attachShader(et,Y),Z.attachShader(et,_),Z.linkProgram(et),!Z.getProgramParameter(et,Z.LINK_STATUS))throw Error(`Could not compile WebGL program.
|
|
20
20
|
|
|
21
|
-
`+v.getProgramInfoLog(B));F=a.m=B,v.useProgram(F),E=v.getUniformLocation(F,"sampler0"),a.j={I:v.getAttribLocation(F,"aVertex"),H:v.getAttribLocation(F,"aTex"),da:E},a.s=v.createBuffer(),v.bindBuffer(v.ARRAY_BUFFER,a.s),v.enableVertexAttribArray(a.j.I),v.vertexAttribPointer(a.j.I,2,v.FLOAT,!1,0,0),v.bufferData(v.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),v.STATIC_DRAW),v.bindBuffer(v.ARRAY_BUFFER,null),a.o=v.createBuffer(),v.bindBuffer(v.ARRAY_BUFFER,a.o),v.enableVertexAttribArray(a.j.H),v.vertexAttribPointer(a.j.H,2,v.FLOAT,!1,0,0),v.bufferData(v.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),v.STATIC_DRAW),v.bindBuffer(v.ARRAY_BUFFER,null),v.uniform1i(E,0)}F=a.j,v.useProgram(a.m),v.canvas.width=y.width,v.canvas.height=y.height,v.viewport(0,0,y.width,y.height),v.activeTexture(v.TEXTURE0),a.h.bindTexture2d(y.glName),v.enableVertexAttribArray(F.I),v.bindBuffer(v.ARRAY_BUFFER,a.s),v.vertexAttribPointer(F.I,2,v.FLOAT,!1,0,0),v.enableVertexAttribArray(F.H),v.bindBuffer(v.ARRAY_BUFFER,a.o),v.vertexAttribPointer(F.H,2,v.FLOAT,!1,0,0),v.bindFramebuffer(v.DRAW_FRAMEBUFFER?v.DRAW_FRAMEBUFFER:v.FRAMEBUFFER,null),v.clearColor(0,0,0,0),v.clear(v.COLOR_BUFFER_BIT),v.colorMask(!0,!0,!0,!0),v.drawArrays(v.TRIANGLE_FAN,0,4),v.disableVertexAttribArray(F.I),v.disableVertexAttribArray(F.H),v.bindBuffer(v.ARRAY_BUFFER,null),a.h.bindTexture2d(0)}function Yn(a){this.g=a}var Se=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function ge(a,y){return y+a}function en(a,y){window[a]=y}function Rn(a){var y=document.createElement("script");return y.setAttribute("src",a),y.setAttribute("crossorigin","anonymous"),new Promise(function(v){y.addEventListener("load",function(){v()},!1),y.addEventListener("error",function(){v()},!1),document.body.appendChild(y)})}function We(){return ne(this,function a(){return Ot(a,function(y){switch(y.g){case 1:return y.m=2,P(y,WebAssembly.instantiate(Se),4);case 4:y.g=3,y.m=0;break;case 2:return y.m=0,y.j=null,y.return(!1);case 3:return y.return(!0)}})})}function Vn(a){if(this.g=a,this.listeners={},this.j={},this.F={},this.m={},this.s={},this.G=this.o=this.R=!0,this.C=Promise.resolve(),this.P="",this.B={},this.locateFile=a&&a.locateFile||ge,typeof window=="object")var y=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")y=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.S=y,a.options){y=U(Object.keys(a.options));for(var v=y.next();!v.done;v=y.next()){v=v.value;var F=a.options[v].default;F!==void 0&&(this.j[v]=typeof F=="function"?F():F)}}}X=Vn.prototype,X.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function Te(a,y){return a.g.files===void 0?[]:typeof a.g.files=="function"?a.g.files(y):a.g.files}function on(a){return ne(a,function y(){var v=this,F,E,B,k,O,D,rt,dt,ct,Xt,lt;return Ot(y,function(st){switch(st.g){case 1:return F=v,v.R?(E=Te(v,v.j),P(st,We(),2)):st.return();case 2:if(B=st.h,typeof window=="object")return en("createMediapipeSolutionsWasm",{locateFile:v.locateFile}),en("createMediapipeSolutionsPackedAssets",{locateFile:v.locateFile}),D=E.filter(function(ht){return ht.data!==void 0}),rt=E.filter(function(ht){return ht.data===void 0}),dt=Promise.all(D.map(function(ht){var bt=Ne(F,ht.url);if(ht.path!==void 0){var Jt=ht.path;bt=bt.then(function(Ct){return F.overrideFile(Jt,Ct),Promise.resolve(Ct)})}return bt})),ct=Promise.all(rt.map(function(ht){return ht.simd===void 0||ht.simd&&B||!ht.simd&&!B?Rn(F.locateFile(ht.url,F.S)):Promise.resolve()})).then(function(){return ne(F,function ht(){var bt,Jt,Ct=this;return Ot(ht,function(At){if(At.g==1)return bt=window.createMediapipeSolutionsWasm,Jt=window.createMediapipeSolutionsPackedAssets,P(At,bt(Jt),2);Ct.h=At.h,At.g=0})})}),Xt=function(){return ne(F,function ht(){var bt=this;return Ot(ht,function(Jt){return bt.g.graph&&bt.g.graph.url?Jt=P(Jt,Ne(bt,bt.g.graph.url),0):(Jt.g=0,Jt=void 0),Jt})})}(),P(st,Promise.all([ct,dt,Xt]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return k=E.filter(function(ht){return ht.simd===void 0||ht.simd&&B||!ht.simd&&!B}).map(function(ht){return F.locateFile(ht.url,F.S)}),importScripts.apply(null,et(k)),P(st,createMediapipeSolutionsWasm(Module),6);case 6:v.h=st.h,v.l=new OffscreenCanvas(1,1),v.h.canvas=v.l,O=v.h.GL.createContext(v.l,{antialias:!1,alpha:!1,ba:typeof WebGL2RenderingContext!="undefined"?2:1}),v.h.GL.makeContextCurrent(O),st.g=4;break;case 7:if(v.l=document.createElement("canvas"),lt=v.l.getContext("webgl2",{}),!lt&&(lt=v.l.getContext("webgl",{}),!lt))return alert("Failed to create WebGL canvas context when passing video frame."),st.return();v.D=lt,v.h.canvas=v.l,v.h.createContext(v.l,!0,!0,{});case 4:v.i=new v.h.SolutionWasm,v.R=!1,st.g=0}})})}function gn(a){return ne(a,function y(){var v=this,F,E,B,k,O,D,rt,dt;return Ot(y,function(ct){if(ct.g==1){if(v.g.graph&&v.g.graph.url&&v.P===v.g.graph.url)return ct.return();if(v.o=!0,!v.g.graph||!v.g.graph.url){ct.g=2;return}return v.P=v.g.graph.url,P(ct,Ne(v,v.g.graph.url),3)}for(ct.g!=2&&(F=ct.h,v.i.loadGraph(F)),E=U(Object.keys(v.B)),B=E.next();!B.done;B=E.next())k=B.value,v.i.overrideFile(k,v.B[k]);if(v.B={},v.g.listeners)for(O=U(v.g.listeners),D=O.next();!D.done;D=O.next())rt=D.value,kn(v,rt);dt=v.j,v.j={},v.setOptions(dt),ct.g=0})})}X.reset=function(){return ne(this,function a(){var y=this;return Ot(a,function(v){y.i&&(y.i.reset(),y.m={},y.s={}),v.g=0})})},X.setOptions=function(a,y){var v=this;if(y=y||this.g.options){for(var F=[],E=[],B={},k=U(Object.keys(a)),O=k.next();!O.done;B={K:B.K,L:B.L},O=k.next()){var D=O.value;D in this.j&&this.j[D]===a[D]||(this.j[D]=a[D],O=y[D],O!==void 0&&(O.onChange&&(B.K=O.onChange,B.L=a[D],F.push(function(rt){return function(){return ne(v,function dt(){var ct,Xt=this;return Ot(dt,function(lt){if(lt.g==1)return P(lt,rt.K(rt.L),2);ct=lt.h,ct===!0&&(Xt.o=!0),lt.g=0})})}}(B))),O.graphOptionXref&&(D={valueNumber:O.type===1?a[D]:0,valueBoolean:O.type===0?a[D]:!1,valueString:O.type===2?a[D]:""},O=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),O.graphOptionXref),D),E.push(O))))}(F.length!==0||E.length!==0)&&(this.o=!0,this.A=(this.A===void 0?[]:this.A).concat(E),this.u=(this.u===void 0?[]:this.u).concat(F))}};function Fn(a){return ne(a,function y(){var v=this,F,E,B,k,O,D,rt;return Ot(y,function(dt){switch(dt.g){case 1:if(!v.o)return dt.return();if(!v.u){dt.g=2;break}F=U(v.u),E=F.next();case 3:if(E.done){dt.g=5;break}return B=E.value,P(dt,B(),4);case 4:E=F.next(),dt.g=3;break;case 5:v.u=void 0;case 2:if(v.A){for(k=new v.h.GraphOptionChangeRequestList,O=U(v.A),D=O.next();!D.done;D=O.next())rt=D.value,k.push_back(rt);v.i.changeOptions(k),k.delete(),v.A=void 0}v.o=!1,dt.g=0}})})}X.initialize=function(){return ne(this,function a(){var y=this;return Ot(a,function(v){return v.g==1?P(v,on(y),2):v.g!=3?P(v,gn(y),3):P(v,Fn(y),0)})})};function Ne(a,y){return ne(a,function v(){var F=this,E,B;return Ot(v,function(k){return y in F.F?k.return(F.F[y]):(E=F.locateFile(y,""),B=fetch(E).then(function(O){return O.arrayBuffer()}),F.F[y]=B,k.return(B))})})}X.overrideFile=function(a,y){this.i?this.i.overrideFile(a,y):this.B[a]=y},X.clearOverriddenFiles=function(){this.B={},this.i&&this.i.clearOverriddenFiles()},X.send=function(a,y){return ne(this,function v(){var F=this,E,B,k,O,D,rt,dt,ct,Xt;return Ot(v,function(lt){switch(lt.g){case 1:return F.g.inputs?(E=1e3*(y==null?performance.now():y),P(lt,F.C,2)):lt.return();case 2:return P(lt,F.initialize(),3);case 3:for(B=new F.h.PacketDataList,k=U(Object.keys(a)),O=k.next();!O.done;O=k.next())if(D=O.value,rt=F.g.inputs[D]){t:{var st=F,ht=a[D];switch(rt.type){case"video":var bt=st.m[rt.stream];if(bt||(bt=new tn(st.h,st.D),st.m[rt.stream]=bt),st=bt,st.l===0&&(st.l=st.h.createTexture()),typeof HTMLVideoElement!="undefined"&&ht instanceof HTMLVideoElement){var Jt=ht.videoWidth;bt=ht.videoHeight}else typeof HTMLImageElement!="undefined"&&ht instanceof HTMLImageElement?(Jt=ht.naturalWidth,bt=ht.naturalHeight):(Jt=ht.width,bt=ht.height);bt={glName:st.l,width:Jt,height:bt},Jt=st.g,Jt.canvas.width=bt.width,Jt.canvas.height=bt.height,Jt.activeTexture(Jt.TEXTURE0),st.h.bindTexture2d(st.l),Jt.texImage2D(Jt.TEXTURE_2D,0,Jt.RGBA,Jt.RGBA,Jt.UNSIGNED_BYTE,ht),st.h.bindTexture2d(0),st=bt;break t;case"detections":for(bt=st.m[rt.stream],bt||(bt=new Yn(st.h),st.m[rt.stream]=bt),st=bt,st.data||(st.data=new st.g.DetectionListData),st.data.reset(ht.length),bt=0;bt<ht.length;++bt){Jt=ht[bt];var Ct=st.data,At=Ct.setBoundingBox,Ze=bt,l=Jt.T,f=new mn;Gt(f,1,l.Z),Gt(f,2,l.$),Gt(f,3,l.height),Gt(f,4,l.width),Gt(f,5,l.rotation),Gt(f,6,l.X);var m=l=new be;Yt(m,1,Et(f,1)),Yt(m,2,Et(f,2)),Yt(m,3,Et(f,3)),Yt(m,4,Et(f,4)),Yt(m,5,Et(f,5));var w=Et(f,6);if(w!=null&&w!=null){he(m.g,48);var L=m.g,j=w;w=0>j,j=Math.abs(j);var N=j>>>0;for(j=Math.floor((j-N)/4294967296),j>>>=0,w&&(j=~j>>>0,N=(~N>>>0)+1,4294967295<N&&(N=0,j++,4294967295<j&&(j=0))),re=N,pe=j,w=re,N=pe;0<N||127<w;)L.push(w&127|128),w=(w>>>7|N<<25)>>>0,N>>>=7;L.push(w)}if(Ie(f,m),l=Ge(l),At.call(Ct,Ze,l),Jt.O)for(Ct=0;Ct<Jt.O.length;++Ct)f=Jt.O[Ct],m=!!f.visibility,At=st.data,Ze=At.addNormalizedLandmark,l=bt,f=Object.assign(Object.assign({},f),{visibility:m?f.visibility:0}),m=new ke,Gt(m,1,f.x),Gt(m,2,f.y),Gt(m,3,f.z),f.visibility&&Gt(m,4,f.visibility),L=f=new be,Yt(L,1,Et(m,1)),Yt(L,2,Et(m,2)),Yt(L,3,Et(m,3)),Yt(L,4,Et(m,4)),Yt(L,5,Et(m,5)),Ie(m,L),f=Ge(f),Ze.call(At,l,f);if(Jt.M)for(Ct=0;Ct<Jt.M.length;++Ct){if(At=st.data,Ze=At.addClassification,l=bt,f=Jt.M[Ct],m=new we,Gt(m,2,f.Y),f.index&&Gt(m,1,f.index),f.label&&Gt(m,3,f.label),f.displayName&&Gt(m,4,f.displayName),L=f=new be,N=Et(m,1),N!=null&&N!=null)if(he(L.g,8),w=L.g,0<=N)he(w,N);else{for(j=0;9>j;j++)w.push(N&127|128),N>>=7;w.push(1)}Yt(L,2,Et(m,2)),w=Et(m,3),w!=null&&(w=vn(w),he(L.g,26),he(L.g,w.length),_e(L,L.g.end()),_e(L,w)),w=Et(m,4),w!=null&&(w=vn(w),he(L.g,34),he(L.g,w.length),_e(L,L.g.end()),_e(L,w)),Ie(m,L),f=Ge(f),Ze.call(At,l,f)}}st=st.data;break t;default:st={}}}switch(dt=st,ct=rt.stream,rt.type){case"video":B.pushTexture2d(Object.assign(Object.assign({},dt),{stream:ct,timestamp:E}));break;case"detections":Xt=dt,Xt.stream=ct,Xt.timestamp=E,B.pushDetectionList(Xt);break;default:throw Error("Unknown input config type: '"+rt.type+"'")}}return F.i.send(B),P(lt,F.C,4);case 4:B.delete(),lt.g=0}})})};function wn(a,y,v){return ne(a,function F(){var E,B,k,O,D,rt,dt=this,ct,Xt,lt,st,ht,bt,Jt,Ct;return Ot(F,function(At){switch(At.g){case 1:if(!v)return At.return(y);for(E={},B=0,k=U(Object.keys(v)),O=k.next();!O.done;O=k.next())D=O.value,rt=v[D],typeof rt!="string"&&rt.type==="texture"&&y[rt.stream]!==void 0&&++B;1<B&&(dt.G=!1),ct=U(Object.keys(v)),O=ct.next();case 2:if(O.done){At.g=4;break}if(Xt=O.value,lt=v[Xt],typeof lt=="string")return Jt=E,Ct=Xt,P(At,Kn(dt,Xt,y[lt]),14);if(st=y[lt.stream],lt.type==="detection_list"){if(st){for(var Ze=st.getRectList(),l=st.getLandmarksList(),f=st.getClassificationsList(),m=[],w=0;w<Ze.size();++w){var L=Ze.get(w);t:{var j=new mn;for(L=new ve(L);gt(L);)switch(L.i){case 13:var N=je(L.g);Gt(j,1,N);break;case 21:N=je(L.g),Gt(j,2,N);break;case 29:N=je(L.g),Gt(j,3,N);break;case 37:N=je(L.g),Gt(j,4,N);break;case 45:N=je(L.g),Gt(j,5,N);break;case 48:for(var A=L.g,_=128,nt=0,ft=N=0;4>ft&&128<=_;ft++)_=A.h[A.g++],nt|=(_&127)<<7*ft;if(128<=_&&(_=A.h[A.g++],nt|=(_&127)<<28,N|=(_&127)>>4),128<=_)for(ft=0;5>ft&&128<=_;ft++)_=A.h[A.g++],N|=(_&127)<<7*ft+3;128>_?(A=nt>>>0,_=N>>>0,(N=_&2147483648)&&(A=~A+1>>>0,_=~_>>>0,A==0&&(_=_+1>>>0)),A=4294967296*_+(A>>>0),N=N?-A:A):(A.l=!0,N=void 0),Gt(j,6,N);break;default:if(!It(j,L))break t}}j={Z:xt(j,1),$:xt(j,2),height:xt(j,3),width:xt(j,4),rotation:xt(j,5,0),X:it(j,6)},N=l.get(w);t:for(L=new Tt,N=new ve(N);gt(N);)switch(N.i){case 10:A=_t(N,new ke,Ee),Bt(L,A,ke,void 0);break;default:if(!It(L,N))break t}L=un(L,ke).map(Qe),A=f.get(w);t:for(N=new Vt,A=new ve(A);gt(A);)switch(A.i){case 10:N.addClassification(_t(A,new we,Kt));break;default:if(!It(N,A))break t}j={T:j,O:L,M:Me(N)},m.push(j)}Ze=m}else Ze=[];E[Xt]=Ze,At.g=7;break}if(lt.type==="proto_list"){if(st){for(Ze=Array(st.size()),l=0;l<st.size();l++)Ze[l]=st.get(l);st.delete()}else Ze=[];E[Xt]=Ze,At.g=7;break}if(st===void 0){At.g=3;break}if(lt.type==="float_list"){E[Xt]=st,At.g=7;break}if(lt.type==="proto"){E[Xt]=st,At.g=7;break}if(lt.type!=="texture")throw Error("Unknown output config type: '"+lt.type+"'");return ht=dt.s[Xt],ht||(ht=new tn(dt.h,dt.D),dt.s[Xt]=ht),P(At,De(ht,st,dt.G),13);case 13:bt=At.h,E[Xt]=bt;case 7:lt.transform&&E[Xt]&&(E[Xt]=lt.transform(E[Xt])),At.g=3;break;case 14:Jt[Ct]=At.h;case 3:O=ct.next(),At.g=2;break;case 4:return At.return(E)}})})}function Kn(a,y,v){return ne(a,function F(){var E=this,B;return Ot(F,function(k){return typeof v=="number"||v instanceof Uint8Array||v instanceof E.h.Uint8BlobList?k.return(v):v instanceof E.h.Texture2dDataOut?(B=E.s[y],B||(B=new tn(E.h,E.D),E.s[y]=B),k.return(De(B,v,E.G))):k.return(void 0)})})}function kn(a,y){for(var v=y.name||"$",F=[].concat(et(y.wants)),E=new a.h.StringList,B=U(y.wants),k=B.next();!k.done;k=B.next())E.push_back(k.value);B=a.h.PacketListener.implement({onResults:function(O){for(var D={},rt=0;rt<y.wants.length;++rt)D[F[rt]]=O.get(rt);var dt=a.listeners[v];dt&&(a.C=wn(a,D,y.outs).then(function(ct){ct=dt(ct);for(var Xt=0;Xt<y.wants.length;++Xt){var lt=D[F[Xt]];typeof lt=="object"&<.hasOwnProperty&<.hasOwnProperty("delete")&<.delete()}ct&&(a.C=ct)}))}}),a.i.attachMultiListener(E,B),E.delete()}X.onResults=function(a,y){this.listeners[y||"$"]=a},de("Solution",Vn),de("OptionType",{BOOL:0,NUMBER:1,aa:2,0:"BOOL",1:"NUMBER",2:"STRING"});function sn(a){switch(a===void 0&&(a=0),a){case 1:return"selfie_segmentation_landscape.tflite";default:return"selfie_segmentation.tflite"}}function Gn(a){var y=this;a=a||{},this.g=new Vn({locateFile:a.locateFile,files:function(v){return[{simd:!0,url:"selfie_segmentation_solution_simd_wasm_bin.js"},{simd:!1,url:"selfie_segmentation_solution_wasm_bin.js"},{data:!0,url:sn(v.modelSelection)}]},graph:{url:"selfie_segmentation.binarypb"},listeners:[{wants:["segmentation_mask","image_transformed"],outs:{image:{type:"texture",stream:"image_transformed"},segmentationMask:{type:"texture",stream:"segmentation_mask"}}}],inputs:{image:{type:"video",stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},modelSelection:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelSelection",fieldName:"int_value"},onChange:function(v){return ne(y,function F(){var E,B,k=this,O;return Ot(F,function(D){return D.g==1?(E=sn(v),B="third_party/mediapipe/modules/selfie_segmentation/"+E,P(D,Ne(k.g,E),2)):(O=D.h,k.g.overrideFile(B,O),D.return(!0))})})}}}})}X=Gn.prototype,X.close=function(){return this.g.close(),Promise.resolve()},X.onResults=function(a){this.g.onResults(a)},X.initialize=function(){return ne(this,function a(){var y=this;return Ot(a,function(v){return P(v,y.g.initialize(),0)})})},X.reset=function(){this.g.reset()},X.send=function(a){return ne(this,function y(){var v=this;return Ot(y,function(F){return P(F,v.g.send(a),0)})})},X.setOptions=function(a){this.g.setOptions(a)},de("SelfieSegmentation",Gn),de("VERSION","0.1.1632777926")}).call(cn),globalThis.VonageSelfieSegmentationVersion=globalThis.VERSION,globalThis.VonageSelfieSegmentation=globalThis.SelfieSegmentation,function(){var X;function g(l){var f=0;return function(){return f<l.length?{done:!1,value:l[f++]}:{done:!0}}}var G=typeof Object.defineProperties=="function"?Object.defineProperty:function(l,f,m){return l==Array.prototype||l==Object.prototype||(l[f]=m.value),l};function S(l){l=[typeof globalThis=="object"&&globalThis,l,typeof window=="object"&&window,typeof self=="object"&&self,typeof cn=="object"&&cn];for(var f=0;f<l.length;++f){var m=l[f];if(m&&m.Math==Math)return m}throw Error("Cannot find global object")}var T=S(this);function J(l,f){if(f)t:{var m=T;l=l.split(".");for(var w=0;w<l.length-1;w++){var L=l[w];if(!(L in m))break t;m=m[L]}l=l[l.length-1],w=m[l],f=f(w),f!=w&&f!=null&&G(m,l,{configurable:!0,writable:!0,value:f})}}J("Symbol",function(l){function f(j){if(this instanceof f)throw new TypeError("Symbol is not a constructor");return new m(w+(j||"")+"_"+L++,j)}function m(j,N){this.g=j,G(this,"description",{configurable:!0,writable:!0,value:N})}if(l)return l;m.prototype.toString=function(){return this.g};var w="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",L=0;return f}),J("Symbol.iterator",function(l){if(l)return l;l=Symbol("Symbol.iterator");for(var f="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),m=0;m<f.length;m++){var w=T[f[m]];typeof w=="function"&&typeof w.prototype[l]!="function"&&G(w.prototype,l,{configurable:!0,writable:!0,value:function(){return K(g(this))}})}return l});function K(l){return l={next:l},l[Symbol.iterator]=function(){return this},l}function U(l){var f=typeof Symbol!="undefined"&&Symbol.iterator&&l[Symbol.iterator];return f?f.call(l):{next:g(l)}}function et(l){if(!(l instanceof Array)){l=U(l);for(var f,m=[];!(f=l.next()).done;)m.push(f.value);l=m}return l}var Ye=typeof Object.create=="function"?Object.create:function(l){function f(){}return f.prototype=l,new f},tt;if(typeof Object.setPrototypeOf=="function")tt=Object.setPrototypeOf;else{var Ft;t:{var Pe={a:!0},se={};try{se.__proto__=Pe,Ft=se.a;break t}catch{}Ft=!1}tt=Ft?function(l,f){if(l.__proto__=f,l.__proto__!==f)throw new TypeError(l+" is not extensible");return l}:null}var Je=tt;function yt(l,f){if(l.prototype=Ye(f.prototype),l.prototype.constructor=l,Je)Je(l,f);else for(var m in f)if(m!="prototype")if(Object.defineProperties){var w=Object.getOwnPropertyDescriptor(f,m);w&&Object.defineProperty(l,m,w)}else l[m]=f[m];l.ea=f.prototype}function $t(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function fe(l){if(l.l)throw new TypeError("Generator is already running");l.l=!0}$t.prototype.o=function(l){this.h=l};function ae(l,f){l.j={U:f,V:!0},l.g=l.m||l.s}$t.prototype.return=function(l){this.j={return:l},this.g=this.s};function P(l,f,m){return l.g=m,{value:f}}function Sn(l){this.g=new $t,this.h=l}function En(l,f){fe(l.g);var m=l.g.i;return m?Ce(l,"return"in m?m.return:function(w){return{value:w,done:!0}},f,l.g.return):(l.g.return(f),qt(l))}function Ce(l,f,m,w){try{var L=f.call(l.g.i,m);if(!(L instanceof Object))throw new TypeError("Iterator result "+L+" is not an object");if(!L.done)return l.g.l=!1,L;var j=L.value}catch(N){return l.g.i=null,ae(l.g,N),qt(l)}return l.g.i=null,w.call(l.g,j),qt(l)}function qt(l){for(;l.g.g;)try{var f=l.h(l.g);if(f)return l.g.l=!1,{value:f.value,done:!1}}catch(m){l.g.h=void 0,ae(l.g,m)}if(l.g.l=!1,l.g.j){if(f=l.g.j,l.g.j=null,f.V)throw f.U;return{value:f.return,done:!0}}return{value:void 0,done:!0}}function Hn(l){this.next=function(f){return fe(l.g),l.g.i?f=Ce(l,l.g.i.next,f,l.g.o):(l.g.o(f),f=qt(l)),f},this.throw=function(f){return fe(l.g),l.g.i?f=Ce(l,l.g.i.throw,f,l.g.o):(ae(l.g,f),f=qt(l)),f},this.return=function(f){return En(l,f)},this[Symbol.iterator]=function(){return this}}function Ot(l,f){return f=new Hn(new Sn(f)),Je&&l.prototype&&Je(f,l.prototype),f}function ut(l,f){l instanceof String&&(l+="");var m=0,w=!1,L={next:function(){if(!w&&m<l.length){var j=m++;return{value:f(j,l[j]),done:!1}}return w=!0,{done:!0,value:void 0}}};return L[Symbol.iterator]=function(){return L},L}var Cn=typeof Object.assign=="function"?Object.assign:function(l,f){for(var m=1;m<arguments.length;m++){var w=arguments[m];if(w)for(var L in w)Object.prototype.hasOwnProperty.call(w,L)&&(l[L]=w[L])}return l};J("Object.assign",function(l){return l||Cn}),J("Promise",function(l){function f(N){this.h=0,this.i=void 0,this.g=[],this.o=!1;var A=this.j();try{N(A.resolve,A.reject)}catch(_){A.reject(_)}}function m(){this.g=null}function w(N){return N instanceof f?N:new f(function(A){A(N)})}if(l)return l;m.prototype.h=function(N){if(this.g==null){this.g=[];var A=this;this.i(function(){A.l()})}this.g.push(N)};var L=T.setTimeout;m.prototype.i=function(N){L(N,0)},m.prototype.l=function(){for(;this.g&&this.g.length;){var N=this.g;this.g=[];for(var A=0;A<N.length;++A){var _=N[A];N[A]=null;try{_()}catch(nt){this.j(nt)}}}this.g=null},m.prototype.j=function(N){this.i(function(){throw N})},f.prototype.j=function(){function N(nt){return function(ft){_||(_=!0,nt.call(A,ft))}}var A=this,_=!1;return{resolve:N(this.C),reject:N(this.l)}},f.prototype.C=function(N){if(N===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(N instanceof f)this.F(N);else{t:switch(typeof N){case"object":var A=N!=null;break t;case"function":A=!0;break t;default:A=!1}A?this.u(N):this.m(N)}},f.prototype.u=function(N){var A=void 0;try{A=N.then}catch(_){this.l(_);return}typeof A=="function"?this.G(A,N):this.m(N)},f.prototype.l=function(N){this.s(2,N)},f.prototype.m=function(N){this.s(1,N)},f.prototype.s=function(N,A){if(this.h!=0)throw Error("Cannot settle("+N+", "+A+"): Promise already settled in state"+this.h);this.h=N,this.i=A,this.h===2&&this.D(),this.A()},f.prototype.D=function(){var N=this;L(function(){if(N.B()){var A=T.console;typeof A!="undefined"&&A.error(N.i)}},1)},f.prototype.B=function(){if(this.o)return!1;var N=T.CustomEvent,A=T.Event,_=T.dispatchEvent;return typeof _=="undefined"?!0:(typeof N=="function"?N=new N("unhandledrejection",{cancelable:!0}):typeof A=="function"?N=new A("unhandledrejection",{cancelable:!0}):(N=T.document.createEvent("CustomEvent"),N.initCustomEvent("unhandledrejection",!1,!0,N)),N.promise=this,N.reason=this.i,_(N))},f.prototype.A=function(){if(this.g!=null){for(var N=0;N<this.g.length;++N)j.h(this.g[N]);this.g=null}};var j=new m;return f.prototype.F=function(N){var A=this.j();N.J(A.resolve,A.reject)},f.prototype.G=function(N,A){var _=this.j();try{N.call(A,_.resolve,_.reject)}catch(nt){_.reject(nt)}},f.prototype.then=function(N,A){function _(Lt,Zt){return typeof Lt=="function"?function(ot){try{nt(Lt(ot))}catch(pt){ft(pt)}}:Zt}var nt,ft,zt=new f(function(Lt,Zt){nt=Lt,ft=Zt});return this.J(_(N,nt),_(A,ft)),zt},f.prototype.catch=function(N){return this.then(void 0,N)},f.prototype.J=function(N,A){function _(){switch(nt.h){case 1:N(nt.i);break;case 2:A(nt.i);break;default:throw Error("Unexpected state: "+nt.h)}}var nt=this;this.g==null?j.h(_):this.g.push(_),this.o=!0},f.resolve=w,f.reject=function(N){return new f(function(A,_){_(N)})},f.race=function(N){return new f(function(A,_){for(var nt=U(N),ft=nt.next();!ft.done;ft=nt.next())w(ft.value).J(A,_)})},f.all=function(N){var A=U(N),_=A.next();return _.done?w([]):new f(function(nt,ft){function zt(ot){return function(pt){Lt[ot]=pt,Zt--,Zt==0&&nt(Lt)}}var Lt=[],Zt=0;do Lt.push(void 0),Zt++,w(_.value).J(zt(Lt.length-1),ft),_=A.next();while(!_.done)})},f}),J("Object.is",function(l){return l||function(f,m){return f===m?f!==0||1/f===1/m:f!==f&&m!==m}}),J("Array.prototype.includes",function(l){return l||function(f,m){var w=this;w instanceof String&&(w=String(w));var L=w.length;for(m=m||0,0>m&&(m=Math.max(m+L,0));m<L;m++){var j=w[m];if(j===f||Object.is(j,f))return!0}return!1}}),J("String.prototype.includes",function(l){return l||function(f,m){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(f instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(f,m||0)!==-1}}),J("Array.prototype.keys",function(l){return l||function(){return ut(this,function(f){return f})}});var jn=this||self;function de(l,f){l=l.split(".");var m=jn;l[0]in m||typeof m.execScript=="undefined"||m.execScript("var "+l[0]);for(var w;l.length&&(w=l.shift());)l.length||f===void 0?m[w]&&m[w]!==Object.prototype[w]?m=m[w]:m=m[w]={}:m[w]=f}function vt(l,f){return f=String.fromCharCode.apply(null,f),l==null?f:l+f}var ye,an=typeof TextDecoder!="undefined",hn,In=typeof TextEncoder!="undefined";function vn(l){if(In)l=(hn||(hn=new TextEncoder)).encode(l);else{var f=void 0;f=f===void 0?!1:f;for(var m=0,w=new Uint8Array(3*l.length),L=0;L<l.length;L++){var j=l.charCodeAt(L);if(128>j)w[m++]=j;else{if(2048>j)w[m++]=j>>6|192;else{if(55296<=j&&57343>=j){if(56319>=j&&L<l.length){var N=l.charCodeAt(++L);if(56320<=N&&57343>=N){j=1024*(j-55296)+N-56320+65536,w[m++]=j>>18|240,w[m++]=j>>12&63|128,w[m++]=j>>6&63|128,w[m++]=j&63|128;continue}else L--}if(f)throw Error("Found an unpaired surrogate");j=65533}w[m++]=j>>12|224,w[m++]=j>>6&63|128}w[m++]=j&63|128}}l=w.subarray(0,m)}return l}var Ln={},Be=null;function nn(l,f){f===void 0&&(f=0),fn(),f=Ln[f];for(var m=Array(Math.floor(l.length/3)),w=f[64]||"",L=0,j=0;L<l.length-2;L+=3){var N=l[L],A=l[L+1],_=l[L+2],nt=f[N>>2];N=f[(N&3)<<4|A>>4],A=f[(A&15)<<2|_>>6],_=f[_&63],m[j++]=nt+N+A+_}switch(nt=0,_=w,l.length-L){case 2:nt=l[L+1],_=f[(nt&15)<<2]||w;case 1:l=l[L],m[j]=f[l>>2]+f[(l&3)<<4|nt>>4]+_+w}return m.join("")}function Nn(l){var f=l.length,m=3*f/4;m%3?m=Math.floor(m):"=.".indexOf(l[f-1])!=-1&&(m="=.".indexOf(l[f-2])!=-1?m-2:m-1);var w=new Uint8Array(m),L=0;return Tn(l,function(j){w[L++]=j}),w.subarray(0,L)}function Tn(l,f){function m(_){for(;w<l.length;){var nt=l.charAt(w++),ft=Be[nt];if(ft!=null)return ft;if(!/^[\s\xa0]*$/.test(nt))throw Error("Unknown base64 encoding at char: "+nt)}return _}fn();for(var w=0;;){var L=m(-1),j=m(0),N=m(64),A=m(64);if(A===64&&L===-1)break;f(L<<2|j>>4),N!=64&&(f(j<<4&240|N>>2),A!=64&&f(N<<6&192|A))}}function fn(){if(!Be){Be={};for(var l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),f=["+/=","+/","-_=","-_.","-_"],m=0;5>m;m++){var w=l.concat(f[m].split(""));Ln[m]=w;for(var L=0;L<w.length;L++){var j=w[L];Be[j]===void 0&&(Be[j]=L)}}}}var dn=typeof Uint8Array.prototype.slice=="function",bn;function pn(l,f,m){return f===m?bn||(bn=new Uint8Array(0)):dn?l.slice(f,m):new Uint8Array(l.subarray(f,m))}var re=0,pe=0;function ze(l,f){f=f===void 0?{}:f,f=f.v===void 0?!1:f.v,this.h=null,this.g=this.j=this.l=0,this.m=!1,this.v=f,l&&oe(this,l)}function oe(l,f){f=f.constructor===Uint8Array?f:f.constructor===ArrayBuffer?new Uint8Array(f):f.constructor===Array?new Uint8Array(f):f.constructor===String?Nn(f):f instanceof Uint8Array?new Uint8Array(f.buffer,f.byteOffset,f.byteLength):new Uint8Array(0),l.h=f,l.l=0,l.j=l.h.length,l.g=l.l}ze.prototype.reset=function(){this.g=this.l};function ue(l){for(var f=128,m=0,w=0,L=0;4>L&&128<=f;L++)f=l.h[l.g++],m|=(f&127)<<7*L;if(128<=f&&(f=l.h[l.g++],m|=(f&127)<<28,w|=(f&127)>>4),128<=f)for(L=0;5>L&&128<=f;L++)f=l.h[l.g++],w|=(f&127)<<7*L+3;if(128>f)return l=m>>>0,f=w>>>0,(w=f&2147483648)&&(l=~l+1>>>0,f=~f>>>0,l==0&&(f=f+1>>>0)),l=4294967296*f+(l>>>0),w?-l:l;l.m=!0}ze.prototype.i=function(){var l=this.h,f=l[this.g],m=f&127;return 128>f?(this.g+=1,m):(f=l[this.g+1],m|=(f&127)<<7,128>f?(this.g+=2,m):(f=l[this.g+2],m|=(f&127)<<14,128>f?(this.g+=3,m):(f=l[this.g+3],m|=(f&127)<<21,128>f?(this.g+=4,m):(f=l[this.g+4],m|=(f&15)<<28,128>f?(this.g+=5,m>>>0):(this.g+=5,128<=l[this.g++]&&128<=l[this.g++]&&128<=l[this.g++]&&128<=l[this.g++]&&this.g++,m)))))},ze.prototype.o=function(){var l=this.h[this.g],f=this.h[this.g+1],m=this.h[this.g+2],w=this.h[this.g+3];return this.g+=4,m=(l<<0|f<<8|m<<16|w<<24)>>>0,l=2*(m>>31)+1,f=m>>>23&255,m&=8388607,f==255?m?NaN:1/0*l:f==0?l*Math.pow(2,-149)*m:l*Math.pow(2,f-150)*(m+Math.pow(2,23))};var je=[];function Ve(){this.g=new Uint8Array(64),this.h=0}Ve.prototype.push=function(l){if(!(this.h+1<this.g.length)){var f=this.g;this.g=new Uint8Array(Math.ceil(1+2*this.g.length)),this.g.set(f)}this.g[this.h++]=l},Ve.prototype.length=function(){return this.h},Ve.prototype.end=function(){var l=this.g,f=this.h;return this.h=0,pn(l,0,f)};function Pt(l,f){for(;127<f;)l.push(f&127|128),f>>>=7;l.push(f)}function he(l){var f={},m=f.N===void 0?!1:f.N;this.o={v:f.v===void 0?!1:f.v},this.N=m,f=this.o,je.length?(m=je.pop(),f&&(m.v=f.v),l&&oe(m,l),l=m):l=new ze(l,f),this.g=l,this.m=this.g.g,this.h=this.i=this.l=-1,this.j=!1}he.prototype.reset=function(){this.g.reset(),this.h=this.l=-1};function ve(l){var f=l.g;if((f=f.g==f.j)||(f=l.j)||(f=l.g,f=f.m||0>f.g||f.g>f.j),f)return!1;l.m=l.g.g,f=l.g.i();var m=f&7;return m!=0&&m!=5&&m!=1&&m!=2&&m!=3&&m!=4?(l.j=!0,!1):(l.i=f,l.l=f>>>3,l.h=m,!0)}function gt(l){switch(l.h){case 0:if(l.h!=0)gt(l);else{for(l=l.g;l.h[l.g]&128;)l.g++;l.g++}break;case 1:l.h!=1?gt(l):(l=l.g,l.g+=8);break;case 2:if(l.h!=2)gt(l);else{var f=l.g.i();l=l.g,l.g+=f}break;case 5:l.h!=5?gt(l):(l=l.g,l.g+=4);break;case 3:f=l.l;do{if(!ve(l)){l.j=!0;break}if(l.h==4){l.l!=f&&(l.j=!0);break}gt(l)}while(1);break;default:l.j=!0}}function me(l,f,m){var w=l.g.j,L=l.g.i(),j=l.g.g+L;if(l.g.j=j,m(f,l),m=j-l.g.g,m!==0)throw Error("Message parsing ended unexpectedly. Expected to read "+L+" bytes, instead read "+(L-m)+" bytes, either the data ended unexpectedly or the message misreported its own length");return l.g.g=j,l.g.j=w,f}function _t(l){return l.g.o()}function te(l){var f=l.g.i();l=l.g;var m=l.g;l.g+=f,l=l.h;var w;if(an)(w=ye)||(w=ye=new TextDecoder("utf-8",{fatal:!1})),w=w.decode(l.subarray(m,m+f));else{f=m+f;for(var L=[],j=null,N,A,_;m<f;)N=l[m++],128>N?L.push(N):224>N?m>=f?L.push(65533):(A=l[m++],194>N||(A&192)!==128?(m--,L.push(65533)):L.push((N&31)<<6|A&63)):240>N?m>=f-1?L.push(65533):(A=l[m++],(A&192)!==128||N===224&&160>A||N===237&&160<=A||((w=l[m++])&192)!==128?(m--,L.push(65533)):L.push((N&15)<<12|(A&63)<<6|w&63)):244>=N?m>=f-2?L.push(65533):(A=l[m++],(A&192)!==128||(N<<28)+(A-144)>>30!==0||((w=l[m++])&192)!==128||((_=l[m++])&192)!==128?(m--,L.push(65533)):(N=(N&7)<<18|(A&63)<<12|(w&63)<<6|_&63,N-=65536,L.push((N>>10&1023)+55296,(N&1023)+56320))):L.push(65533),8192<=L.length&&(j=vt(j,L),L.length=0);w=vt(j,L)}return w}function be(l,f,m){var w=l.g.i();for(w=l.g.g+w;l.g.g<w;)m.push(f.call(l.g))}function _e(l,f){l.h==2?be(l,ze.prototype.o,f):f.push(_t(l))}function Ge(){this.h=[],this.i=0,this.g=new Ve}function Yt(l,f){f.length!==0&&(l.h.push(f),l.i+=f.length)}function xe(l){var f=l.i+l.g.length();if(f===0)return new Uint8Array(0);f=new Uint8Array(f);for(var m=l.h,w=m.length,L=0,j=0;j<w;j++){var N=m[j];N.length!==0&&(f.set(N,L),L+=N.length)}return m=l.g,w=m.h,w!==0&&(f.set(m.g.subarray(0,w),L),m.h=0),l.h=[f],f}function Ue(l,f,m){if(m!=null){Pt(l.g,8*f+5),l=l.g;var w=m;w=(m=0>w?1:0)?-w:w,w===0?0<1/w?re=pe=0:(pe=0,re=2147483648):isNaN(w)?(pe=0,re=2147483647):34028234663852886e22<w?(pe=0,re=(m<<31|2139095040)>>>0):11754943508222875e-54>w?(w=Math.round(w/Math.pow(2,-149)),pe=0,re=(m<<31|w)>>>0):(f=Math.floor(Math.log(w)/Math.LN2),w*=Math.pow(2,-f),w=Math.round(8388608*w),16777216<=w&&++f,pe=0,re=(m<<31|f+127<<23|w&8388607)>>>0),m=re,l.push(m>>>0&255),l.push(m>>>8&255),l.push(m>>>16&255),l.push(m>>>24&255)}}var Xe=typeof Uint8Array=="function";function Xn(l,f,m){if(l!=null)return typeof l=="object"?Xe&&l instanceof Uint8Array?m(l):rn(l,f,m):f(l)}function rn(l,f,m){if(Array.isArray(l)){for(var w=Array(l.length),L=0;L<l.length;L++)w[L]=Xn(l[L],f,m);return Array.isArray(l)&&l.W&&Mt(w),w}w={};for(L in l)w[L]=Xn(l[L],f,m);return w}function $e(l){return typeof l=="number"?isFinite(l)?l:String(l):l}var Zn={W:{value:!0,configurable:!0}};function Mt(l){return Array.isArray(l)&&!Object.isFrozen(l)&&Object.defineProperties(l,Zn),l}var Re;function Qt(l,f,m){var w=Re;Re=null,l||(l=w),w=this.constructor.ca,l||(l=w?[w]:[]),this.j=w?0:-1,this.m=this.g=null,this.h=l;t:{if(w=this.h.length,l=w-1,w&&(w=this.h[l],!(w===null||typeof w!="object"||Array.isArray(w)||Xe&&w instanceof Uint8Array))){this.l=l-this.j,this.i=w;break t}f!==void 0&&-1<f?(this.l=Math.max(f,l+1-this.j),this.i=null):this.l=Number.MAX_VALUE}if(m)for(f=0;f<m.length;f++)l=m[f],l<this.l?(l+=this.j,(w=this.h[l])?Mt(w):this.h[l]=Et):(qe(this),(w=this.i[l])?Mt(w):this.i[l]=Et)}var Et=Object.freeze(Mt([]));function qe(l){var f=l.l+l.j;l.h[f]||(l.i=l.h[f]={})}function xt(l,f,m){return f===-1?null:(m===void 0?0:m)||f>=l.l?l.i?l.i[f]:void 0:l.h[f+l.j]}function Gt(l,f){var m=m===void 0?!1:m,w=xt(l,f,m);return w==null&&(w=Et),w===Et&&(w=Mt([]),it(l,f,w,m)),w}function un(l){var f=Gt(l,3);if(l.m||(l.m={}),!l.m[3]){for(var m=0;m<f.length;m++)f[m]=+f[m];l.m[3]=!0}return f}function Bt(l,f,m){return l=xt(l,f),l==null?m:l}function at(l,f,m){return l=xt(l,f),l=l==null?l:+l,l==null?m===void 0?0:m:l}function it(l,f,m,w){(w===void 0?0:w)||f>=l.l?(qe(l),l.i[f]=m):l.h[f+l.j]=m}function ee(l,f,m){if(m===-1)return null;if(l.g||(l.g={}),!l.g[m]){var w=xt(l,m,!1);w&&(l.g[m]=new f(w))}return l.g[m]}function Ie(l,f){l.g||(l.g={});var m=l.g[1];if(!m){var w=Gt(l,1);m=[];for(var L=0;L<w.length;L++)m[L]=new f(w[L]);l.g[1]=m}return m}function It(l,f,m){var w=w===void 0?!1:w;l.g||(l.g={});var L=m&&we(m);l.g[f]=m,it(l,f,L,w)}function ne(l,f,m,w){var L=Ie(l,m);f=f||new m,l=Gt(l,1),w!=null?(L.splice(w,0,f),l.splice(w,0,we(f))):(L.push(f),l.push(we(f)))}Qt.prototype.toJSON=function(){var l=we(this);return rn(l,$e,nn)};function we(l,f){if(l.g)for(var m in l.g){var w=l.g[m];if(Array.isArray(w))for(var L=0;L<w.length;L++)w[L]&&we(w[L]);else w&&we(w)}return l.h}Qt.prototype.toString=function(){return we(this).toString()};function Kt(l,f){if(l=l.o){Yt(f,f.g.end());for(var m=0;m<l.length;m++)Yt(f,l[m])}}function Vt(l,f){if(f.h==4)return!1;var m=f.m;return gt(f),f.N||(f=pn(f.g.h,m,f.g.g),(m=l.o)?m.push(f):l.o=[f]),!0}function Ke(l){Qt.call(this,l,-1,Ee)}yt(Ke,Qt),Ke.prototype.getRows=function(){return xt(this,1)},Ke.prototype.getCols=function(){return xt(this,2)},Ke.prototype.getPackedDataList=function(){return un(this)},Ke.prototype.getLayout=function(){return Bt(this,4,0)};function ke(l,f){for(;ve(f);)switch(f.i){case 8:var m=f.g.i();it(l,1,m);break;case 16:m=f.g.i(),it(l,2,m);break;case 29:case 26:_e(f,l.getPackedDataList());break;case 32:m=ue(f.g),it(l,4,m);break;default:if(!Vt(l,f))return l}return l}var Ee=[3];function Tt(l,f){var m=void 0;return new(m||(m=Promise))(function(w,L){function j(_){try{A(f.next(_))}catch(nt){L(nt)}}function N(_){try{A(f.throw(_))}catch(nt){L(nt)}}function A(_){_.done?w(_.value):new m(function(nt){nt(_.value)}).then(j,N)}A((f=f.apply(l,void 0)).next())})}function Le(l){Qt.call(this,l)}yt(Le,Qt);function mn(l,f){for(;ve(f);)switch(f.i){case 8:var m=f.g.i();it(l,1,m);break;case 21:m=_t(f),it(l,2,m);break;case 26:m=te(f),it(l,3,m);break;case 34:m=te(f),it(l,4,m);break;default:if(!Vt(l,f))return l}return l}function Ae(l){Qt.call(this,l,-1,Me)}yt(Ae,Qt),Ae.prototype.addClassification=function(l,f){return ne(this,l,Le,f),this};var Me=[1];function Qe(l){Qt.call(this,l)}yt(Qe,Qt);function tn(l,f){for(;ve(f);)switch(f.i){case 13:var m=_t(f);it(l,1,m);break;case 21:m=_t(f),it(l,2,m);break;case 29:m=_t(f),it(l,3,m);break;case 37:m=_t(f),it(l,4,m);break;case 45:m=_t(f),it(l,5,m);break;default:if(!Vt(l,f))return l}return l}function De(l){Qt.call(this,l,-1,Yn)}yt(De,Qt);function Wn(l){t:{var f=new De;for(l=new he(l);ve(l);)switch(l.i){case 10:var m=me(l,new Qe,tn);ne(f,m,Qe,void 0);break;default:if(!Vt(f,l))break t}}return f}var Yn=[1];function Se(l){Qt.call(this,l)}yt(Se,Qt);function ge(l){Qt.call(this,l,-1,Rn)}yt(ge,Qt),ge.prototype.getVertexType=function(){return Bt(this,1,0)},ge.prototype.getPrimitiveType=function(){return Bt(this,2,0)},ge.prototype.getVertexBufferList=function(){return un(this)},ge.prototype.getIndexBufferList=function(){return Gt(this,4)};function en(l,f){for(;ve(f);)switch(f.i){case 8:var m=ue(f.g);it(l,1,m);break;case 16:m=ue(f.g),it(l,2,m);break;case 29:case 26:_e(f,l.getVertexBufferList());break;case 32:case 34:m=f;var w=l.getIndexBufferList();m.h==2?be(m,ze.prototype.i,w):w.push(m.g.i());break;default:if(!Vt(l,f))return l}return l}var Rn=[3,4];function We(l){Qt.call(this,l)}yt(We,Qt),We.prototype.getMesh=function(){return ee(this,ge,1)},We.prototype.getPoseTransformMatrix=function(){return ee(this,Ke,2)};function Vn(l){t:{var f=new We;for(l=new he(l);ve(l);)switch(l.i){case 10:var m=me(l,new ge,en);It(f,1,m);break;case 18:m=me(l,new Ke,ke),It(f,2,m);break;default:if(!Vt(f,l))break t}}return f}function Te(l,f,m){if(m=l.createShader(m===0?l.VERTEX_SHADER:l.FRAGMENT_SHADER),l.shaderSource(m,f),l.compileShader(m),!l.getShaderParameter(m,l.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
21
|
+
`+Z.getProgramInfoLog(et));Y=f.m=et,Z.useProgram(Y),_=Z.getUniformLocation(Y,"sampler0"),f.j={I:Z.getAttribLocation(Y,"aVertex"),H:Z.getAttribLocation(Y,"aTex"),da:_},f.s=Z.createBuffer(),Z.bindBuffer(Z.ARRAY_BUFFER,f.s),Z.enableVertexAttribArray(f.j.I),Z.vertexAttribPointer(f.j.I,2,Z.FLOAT,!1,0,0),Z.bufferData(Z.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),Z.STATIC_DRAW),Z.bindBuffer(Z.ARRAY_BUFFER,null),f.o=Z.createBuffer(),Z.bindBuffer(Z.ARRAY_BUFFER,f.o),Z.enableVertexAttribArray(f.j.H),Z.vertexAttribPointer(f.j.H,2,Z.FLOAT,!1,0,0),Z.bufferData(Z.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),Z.STATIC_DRAW),Z.bindBuffer(Z.ARRAY_BUFFER,null),Z.uniform1i(_,0)}Y=f.j,Z.useProgram(f.m),Z.canvas.width=b.width,Z.canvas.height=b.height,Z.viewport(0,0,b.width,b.height),Z.activeTexture(Z.TEXTURE0),f.h.bindTexture2d(b.glName),Z.enableVertexAttribArray(Y.I),Z.bindBuffer(Z.ARRAY_BUFFER,f.s),Z.vertexAttribPointer(Y.I,2,Z.FLOAT,!1,0,0),Z.enableVertexAttribArray(Y.H),Z.bindBuffer(Z.ARRAY_BUFFER,f.o),Z.vertexAttribPointer(Y.H,2,Z.FLOAT,!1,0,0),Z.bindFramebuffer(Z.DRAW_FRAMEBUFFER?Z.DRAW_FRAMEBUFFER:Z.FRAMEBUFFER,null),Z.clearColor(0,0,0,0),Z.clear(Z.COLOR_BUFFER_BIT),Z.colorMask(!0,!0,!0,!0),Z.drawArrays(Z.TRIANGLE_FAN,0,4),Z.disableVertexAttribArray(Y.I),Z.disableVertexAttribArray(Y.H),Z.bindBuffer(Z.ARRAY_BUFFER,null),f.h.bindTexture2d(0)}function Nn(f){this.g=f}var Ue=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function be(f,b){return b+f}function rn(f,b){window[f]=b}function fn(f){var b=document.createElement("script");return b.setAttribute("src",f),b.setAttribute("crossorigin","anonymous"),new Promise(function(Z){b.addEventListener("load",function(){Z()},!1),b.addEventListener("error",function(){Z()},!1),document.body.appendChild(b)})}function Te(){return Qt(this,function f(){return te(f,function(b){switch(b.g){case 1:return b.m=2,$(b,WebAssembly.instantiate(Ue),4);case 4:b.g=3,b.m=0;break;case 2:return b.m=0,b.j=null,b.return(!1);case 3:return b.return(!0)}})})}function Sn(f){if(this.g=f,this.listeners={},this.j={},this.F={},this.m={},this.s={},this.G=this.o=this.R=!0,this.C=Promise.resolve(),this.P="",this.B={},this.locateFile=f&&f.locateFile||be,typeof window=="object")var b=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")b=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.S=b,f.options){b=C(Object.keys(f.options));for(var Z=b.next();!Z.done;Z=b.next()){Z=Z.value;var Y=f.options[Z].default;Y!==void 0&&(this.j[Z]=typeof Y=="function"?Y():Y)}}}V=Sn.prototype,V.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function ke(f,b){return f.g.files===void 0?[]:typeof f.g.files=="function"?f.g.files(b):f.g.files}function on(f){return Qt(f,function b(){var Z=this,Y,_,et,K,tt,st,mt,Ft,wt,Ht,Wt;return te(b,function(Zt){switch(Zt.g){case 1:return Y=Z,Z.R?(_=ke(Z,Z.j),$(Zt,Te(),2)):Zt.return();case 2:if(et=Zt.h,typeof window=="object")return rn("createMediapipeSolutionsWasm",{locateFile:Z.locateFile}),rn("createMediapipeSolutionsPackedAssets",{locateFile:Z.locateFile}),st=_.filter(function(Tt){return Tt.data!==void 0}),mt=_.filter(function(Tt){return Tt.data===void 0}),Ft=Promise.all(st.map(function(Tt){var Et=Ke(Y,Tt.url);if(Tt.path!==void 0){var Bt=Tt.path;Et=Et.then(function(Dt){return Y.overrideFile(Bt,Dt),Promise.resolve(Dt)})}return Et})),wt=Promise.all(mt.map(function(Tt){return Tt.simd===void 0||Tt.simd&&et||!Tt.simd&&!et?fn(Y.locateFile(Tt.url,Y.S)):Promise.resolve()})).then(function(){return Qt(Y,function Tt(){var Et,Bt,Dt=this;return te(Tt,function(qt){if(qt.g==1)return Et=window.createMediapipeSolutionsWasm,Bt=window.createMediapipeSolutionsPackedAssets,$(qt,Et(Bt),2);Dt.h=qt.h,qt.g=0})})}),Ht=function(){return Qt(Y,function Tt(){var Et=this;return te(Tt,function(Bt){return Et.g.graph&&Et.g.graph.url?Bt=$(Bt,Ke(Et,Et.g.graph.url),0):(Bt.g=0,Bt=void 0),Bt})})}(),$(Zt,Promise.all([wt,Ft,Ht]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return K=_.filter(function(Tt){return Tt.simd===void 0||Tt.simd&&et||!Tt.simd&&!et}).map(function(Tt){return Y.locateFile(Tt.url,Y.S)}),importScripts.apply(null,pt(K)),$(Zt,createMediapipeSolutionsWasm(Module),6);case 6:Z.h=Zt.h,Z.l=new OffscreenCanvas(1,1),Z.h.canvas=Z.l,tt=Z.h.GL.createContext(Z.l,{antialias:!1,alpha:!1,ba:typeof WebGL2RenderingContext!="undefined"?2:1}),Z.h.GL.makeContextCurrent(tt),Zt.g=4;break;case 7:if(Z.l=document.createElement("canvas"),Wt=Z.l.getContext("webgl2",{}),!Wt&&(Wt=Z.l.getContext("webgl",{}),!Wt))return alert("Failed to create WebGL canvas context when passing video frame."),Zt.return();Z.D=Wt,Z.h.canvas=Z.l,Z.h.createContext(Z.l,!0,!0,{});case 4:Z.i=new Z.h.SolutionWasm,Z.R=!1,Zt.g=0}})})}function mn(f){return Qt(f,function b(){var Z=this,Y,_,et,K,tt,st,mt,Ft;return te(b,function(wt){if(wt.g==1){if(Z.g.graph&&Z.g.graph.url&&Z.P===Z.g.graph.url)return wt.return();if(Z.o=!0,!Z.g.graph||!Z.g.graph.url){wt.g=2;return}return Z.P=Z.g.graph.url,$(wt,Ke(Z,Z.g.graph.url),3)}for(wt.g!=2&&(Y=wt.h,Z.i.loadGraph(Y)),_=C(Object.keys(Z.B)),et=_.next();!et.done;et=_.next())K=et.value,Z.i.overrideFile(K,Z.B[K]);if(Z.B={},Z.g.listeners)for(tt=C(Z.g.listeners),st=tt.next();!st.done;st=tt.next())mt=st.value,Un(Z,mt);Ft=Z.j,Z.j={},Z.setOptions(Ft),wt.g=0})})}V.reset=function(){return Qt(this,function f(){var b=this;return te(f,function(Z){b.i&&(b.i.reset(),b.m={},b.s={}),Z.g=0})})},V.setOptions=function(f,b){var Z=this;if(b=b||this.g.options){for(var Y=[],_=[],et={},K=C(Object.keys(f)),tt=K.next();!tt.done;et={K:et.K,L:et.L},tt=K.next()){var st=tt.value;st in this.j&&this.j[st]===f[st]||(this.j[st]=f[st],tt=b[st],tt!==void 0&&(tt.onChange&&(et.K=tt.onChange,et.L=f[st],Y.push(function(mt){return function(){return Qt(Z,function Ft(){var wt,Ht=this;return te(Ft,function(Wt){if(Wt.g==1)return $(Wt,mt.K(mt.L),2);wt=Wt.h,wt===!0&&(Ht.o=!0),Wt.g=0})})}}(et))),tt.graphOptionXref&&(st={valueNumber:tt.type===1?f[st]:0,valueBoolean:tt.type===0?f[st]:!1,valueString:tt.type===2?f[st]:""},tt=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),tt.graphOptionXref),st),_.push(tt))))}(Y.length!==0||_.length!==0)&&(this.o=!0,this.A=(this.A===void 0?[]:this.A).concat(_),this.u=(this.u===void 0?[]:this.u).concat(Y))}};function Ln(f){return Qt(f,function b(){var Z=this,Y,_,et,K,tt,st,mt;return te(b,function(Ft){switch(Ft.g){case 1:if(!Z.o)return Ft.return();if(!Z.u){Ft.g=2;break}Y=C(Z.u),_=Y.next();case 3:if(_.done){Ft.g=5;break}return et=_.value,$(Ft,et(),4);case 4:_=Y.next(),Ft.g=3;break;case 5:Z.u=void 0;case 2:if(Z.A){for(K=new Z.h.GraphOptionChangeRequestList,tt=C(Z.A),st=tt.next();!st.done;st=tt.next())mt=st.value,K.push_back(mt);Z.i.changeOptions(K),K.delete(),Z.A=void 0}Z.o=!1,Ft.g=0}})})}V.initialize=function(){return Qt(this,function f(){var b=this;return te(f,function(Z){return Z.g==1?$(Z,on(b),2):Z.g!=3?$(Z,mn(b),3):$(Z,Ln(b),0)})})};function Ke(f,b){return Qt(f,function Z(){var Y=this,_,et;return te(Z,function(K){return b in Y.F?K.return(Y.F[b]):(_=Y.locateFile(b,""),et=fetch(_).then(function(tt){return tt.arrayBuffer()}),Y.F[b]=et,K.return(et))})})}V.overrideFile=function(f,b){this.i?this.i.overrideFile(f,b):this.B[f]=b},V.clearOverriddenFiles=function(){this.B={},this.i&&this.i.clearOverriddenFiles()},V.send=function(f,b){return Qt(this,function Z(){var Y=this,_,et,K,tt,st,mt,Ft,wt,Ht;return te(Z,function(Wt){switch(Wt.g){case 1:return Y.g.inputs?(_=1e3*(b==null?performance.now():b),$(Wt,Y.C,2)):Wt.return();case 2:return $(Wt,Y.initialize(),3);case 3:for(et=new Y.h.PacketDataList,K=C(Object.keys(f)),tt=K.next();!tt.done;tt=K.next())if(st=tt.value,mt=Y.g.inputs[st]){t:{var Zt=Y,Tt=f[st];switch(mt.type){case"video":var Et=Zt.m[mt.stream];if(Et||(Et=new $e(Zt.h,Zt.D),Zt.m[mt.stream]=Et),Zt=Et,Zt.l===0&&(Zt.l=Zt.h.createTexture()),typeof HTMLVideoElement!="undefined"&&Tt instanceof HTMLVideoElement){var Bt=Tt.videoWidth;Et=Tt.videoHeight}else typeof HTMLImageElement!="undefined"&&Tt instanceof HTMLImageElement?(Bt=Tt.naturalWidth,Et=Tt.naturalHeight):(Bt=Tt.width,Et=Tt.height);Et={glName:Zt.l,width:Bt,height:Et},Bt=Zt.g,Bt.canvas.width=Et.width,Bt.canvas.height=Et.height,Bt.activeTexture(Bt.TEXTURE0),Zt.h.bindTexture2d(Zt.l),Bt.texImage2D(Bt.TEXTURE_2D,0,Bt.RGBA,Bt.RGBA,Bt.UNSIGNED_BYTE,Tt),Zt.h.bindTexture2d(0),Zt=Et;break t;case"detections":for(Et=Zt.m[mt.stream],Et||(Et=new Nn(Zt.h),Zt.m[mt.stream]=Et),Zt=Et,Zt.data||(Zt.data=new Zt.g.DetectionListData),Zt.data.reset(Tt.length),Et=0;Et<Tt.length;++Et){Bt=Tt[Et];var Dt=Zt.data,qt=Dt.setBoundingBox,Ze=Et,c=Bt.T,p=new an;Ut(p,1,c.Z),Ut(p,2,c.$),Ut(p,3,c.height),Ut(p,4,c.width),Ut(p,5,c.rotation),Ut(p,6,c.X);var m=c=new Ge;Yt(m,1,Mt(p,1)),Yt(m,2,Mt(p,2)),Yt(m,3,Mt(p,3)),Yt(m,4,Mt(p,4)),Yt(m,5,Mt(p,5));var L=Mt(p,6);if(L!=null&&L!=null){re(m.g,48);var H=m.g,P=L;L=0>P,P=Math.abs(P);var j=P>>>0;for(P=Math.floor((P-j)/4294967296),P>>>=0,L&&(P=~P>>>0,j=(~j>>>0)+1,4294967295<j&&(j=0,P++,4294967295<P&&(P=0))),ce=j,ve=P,L=ce,j=ve;0<j||127<L;)H.push(L&127|128),L=(L>>>7|j<<25)>>>0,j>>>=7;H.push(L)}if(Fe(p,m),c=se(c),qt.call(Dt,Ze,c),Bt.O)for(Dt=0;Dt<Bt.O.length;++Dt)p=Bt.O[Dt],m=!!p.visibility,qt=Zt.data,Ze=qt.addNormalizedLandmark,c=Et,p=Object.assign(Object.assign({},p),{visibility:m?p.visibility:0}),m=new Oe,Ut(m,1,p.x),Ut(m,2,p.y),Ut(m,3,p.z),p.visibility&&Ut(m,4,p.visibility),H=p=new Ge,Yt(H,1,Mt(m,1)),Yt(H,2,Mt(m,2)),Yt(H,3,Mt(m,3)),Yt(H,4,Mt(m,4)),Yt(H,5,Mt(m,5)),Fe(m,H),p=se(p),Ze.call(qt,c,p);if(Bt.M)for(Dt=0;Dt<Bt.M.length;++Dt){if(qt=Zt.data,Ze=qt.addClassification,c=Et,p=Bt.M[Dt],m=new Le,Ut(m,2,p.Y),p.index&&Ut(m,1,p.index),p.label&&Ut(m,3,p.label),p.displayName&&Ut(m,4,p.displayName),H=p=new Ge,j=Mt(m,1),j!=null&&j!=null)if(re(H.g,8),L=H.g,0<=j)re(L,j);else{for(P=0;9>P;P++)L.push(j&127|128),j>>=7;L.push(1)}Yt(H,2,Mt(m,2)),L=Mt(m,3),L!=null&&(L=bn(L),re(H.g,26),re(H.g,L.length),Be(H,H.g.end()),Be(H,L)),L=Mt(m,4),L!=null&&(L=bn(L),re(H.g,34),re(H.g,L.length),Be(H,H.g.end()),Be(H,L)),Fe(m,H),p=se(p),Ze.call(qt,c,p)}}Zt=Zt.data;break t;default:Zt={}}}switch(Ft=Zt,wt=mt.stream,mt.type){case"video":et.pushTexture2d(Object.assign(Object.assign({},Ft),{stream:wt,timestamp:_}));break;case"detections":Ht=Ft,Ht.stream=wt,Ht.timestamp=_,et.pushDetectionList(Ht);break;default:throw Error("Unknown input config type: '"+mt.type+"'")}}return Y.i.send(et),$(Wt,Y.C,4);case 4:et.delete(),Wt.g=0}})})};function yn(f,b,Z){return Qt(f,function Y(){var _,et,K,tt,st,mt,Ft=this,wt,Ht,Wt,Zt,Tt,Et,Bt,Dt;return te(Y,function(qt){switch(qt.g){case 1:if(!Z)return qt.return(b);for(_={},et=0,K=C(Object.keys(Z)),tt=K.next();!tt.done;tt=K.next())st=tt.value,mt=Z[st],typeof mt!="string"&&mt.type==="texture"&&b[mt.stream]!==void 0&&++et;1<et&&(Ft.G=!1),wt=C(Object.keys(Z)),tt=wt.next();case 2:if(tt.done){qt.g=4;break}if(Ht=tt.value,Wt=Z[Ht],typeof Wt=="string")return Bt=_,Dt=Ht,$(qt,Yn(Ft,Ht,b[Wt]),14);if(Zt=b[Wt.stream],Wt.type==="detection_list"){if(Zt){for(var Ze=Zt.getRectList(),c=Zt.getLandmarksList(),p=Zt.getClassificationsList(),m=[],L=0;L<Ze.size();++L){var H=Ze.get(L);t:{var P=new an;for(H=new Ve(H);It(H);)switch(H.i){case 13:var j=ze(H.g);Ut(P,1,j);break;case 21:j=ze(H.g),Ut(P,2,j);break;case 29:j=ze(H.g),Ut(P,3,j);break;case 37:j=ze(H.g),Ut(P,4,j);break;case 45:j=ze(H.g),Ut(P,5,j);break;case 48:for(var D=H.g,rt=128,r=0,y=j=0;4>y&&128<=rt;y++)rt=D.h[D.g++],r|=(rt&127)<<7*y;if(128<=rt&&(rt=D.h[D.g++],r|=(rt&127)<<28,j|=(rt&127)>>4),128<=rt)for(y=0;5>y&&128<=rt;y++)rt=D.h[D.g++],j|=(rt&127)<<7*y+3;128>rt?(D=r>>>0,rt=j>>>0,(j=rt&2147483648)&&(D=~D+1>>>0,rt=~rt>>>0,D==0&&(rt=rt+1>>>0)),D=4294967296*rt+(D>>>0),j=j?-D:D):(D.l=!0,j=void 0),Ut(P,6,j);break;default:if(!Kt(P,H))break t}}P={Z:Ot(P,1),$:Ot(P,2),height:Ot(P,3),width:Ot(P,4),rotation:Ot(P,5,0),X:bt(P,6)},j=c.get(L);t:for(H=new Jt,j=new Ve(j);It(j);)switch(j.i){case 10:D=At(j,new Oe,Se),$t(H,D,Oe,void 0);break;default:if(!Kt(H,j))break t}H=gn(H,Oe).map(Me),D=p.get(L);t:for(j=new Rt,D=new Ve(D);It(D);)switch(D.i){case 10:j.addClassification(At(D,new Le,kt));break;default:if(!Kt(j,D))break t}P={T:P,O:H,M:Ee(j)},m.push(P)}Ze=m}else Ze=[];_[Ht]=Ze,qt.g=7;break}if(Wt.type==="proto_list"){if(Zt){for(Ze=Array(Zt.size()),c=0;c<Zt.size();c++)Ze[c]=Zt.get(c);Zt.delete()}else Ze=[];_[Ht]=Ze,qt.g=7;break}if(Zt===void 0){qt.g=3;break}if(Wt.type==="float_list"){_[Ht]=Zt,qt.g=7;break}if(Wt.type==="proto"){_[Ht]=Zt,qt.g=7;break}if(Wt.type!=="texture")throw Error("Unknown output config type: '"+Wt.type+"'");return Tt=Ft.s[Ht],Tt||(Tt=new $e(Ft.h,Ft.D),Ft.s[Ht]=Tt),$(qt,me(Tt,Zt,Ft.G),13);case 13:Et=qt.h,_[Ht]=Et;case 7:Wt.transform&&_[Ht]&&(_[Ht]=Wt.transform(_[Ht])),qt.g=3;break;case 14:Bt[Dt]=qt.h;case 3:tt=wt.next(),qt.g=2;break;case 4:return qt.return(_)}})})}function Yn(f,b,Z){return Qt(f,function Y(){var _=this,et;return te(Y,function(K){return typeof Z=="number"||Z instanceof Uint8Array||Z instanceof _.h.Uint8BlobList?K.return(Z):Z instanceof _.h.Texture2dDataOut?(et=_.s[b],et||(et=new $e(_.h,_.D),_.s[b]=et),K.return(me(et,Z,_.G))):K.return(void 0)})})}function Un(f,b){for(var Z=b.name||"$",Y=[].concat(pt(b.wants)),_=new f.h.StringList,et=C(b.wants),K=et.next();!K.done;K=et.next())_.push_back(K.value);et=f.h.PacketListener.implement({onResults:function(tt){for(var st={},mt=0;mt<b.wants.length;++mt)st[Y[mt]]=tt.get(mt);var Ft=f.listeners[Z];Ft&&(f.C=yn(f,st,b.outs).then(function(wt){wt=Ft(wt);for(var Ht=0;Ht<b.wants.length;++Ht){var Wt=st[Y[Ht]];typeof Wt=="object"&&Wt.hasOwnProperty&&Wt.hasOwnProperty("delete")&&Wt.delete()}wt&&(f.C=wt)}))}}),f.i.attachMultiListener(_,et),_.delete()}V.onResults=function(f,b){this.listeners[b||"$"]=f},ye("Solution",Sn),ye("OptionType",{BOOL:0,NUMBER:1,aa:2,0:"BOOL",1:"NUMBER",2:"STRING"});function vn(f){switch(f===void 0&&(f=0),f){case 1:return"selfie_segmentation_landscape.tflite";default:return"selfie_segmentation.tflite"}}function Gn(f){var b=this;f=f||{},this.g=new Sn({locateFile:f.locateFile,files:function(Z){return[{simd:!0,url:"selfie_segmentation_solution_simd_wasm_bin.js"},{simd:!1,url:"selfie_segmentation_solution_wasm_bin.js"},{data:!0,url:vn(Z.modelSelection)}]},graph:{url:"selfie_segmentation.binarypb"},listeners:[{wants:["segmentation_mask","image_transformed"],outs:{image:{type:"texture",stream:"image_transformed"},segmentationMask:{type:"texture",stream:"segmentation_mask"}}}],inputs:{image:{type:"video",stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},modelSelection:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelSelection",fieldName:"int_value"},onChange:function(Z){return Qt(b,function Y(){var _,et,K=this,tt;return te(Y,function(st){return st.g==1?(_=vn(Z),et="third_party/mediapipe/modules/selfie_segmentation/"+_,$(st,Ke(K.g,_),2)):(tt=st.h,K.g.overrideFile(et,tt),st.return(!0))})})}}}})}V=Gn.prototype,V.close=function(){return this.g.close(),Promise.resolve()},V.onResults=function(f){this.g.onResults(f)},V.initialize=function(){return Qt(this,function f(){var b=this;return te(f,function(Z){return $(Z,b.g.initialize(),0)})})},V.reset=function(){this.g.reset()},V.send=function(f){return Qt(this,function b(){var Z=this;return te(b,function(Y){return $(Y,Z.g.send(f),0)})})},V.setOptions=function(f){this.g.setOptions(f)},ye("SelfieSegmentation",Gn),ye("VERSION","0.1.1632777926")}).call(Sr);const Tr={};(function(){var V;function v(i){var g=0;return function(){return g<i.length?{done:!1,value:i[g++]}:{done:!0}}}var W=typeof Object.defineProperties=="function"?Object.defineProperty:function(i,g,R){return i==Array.prototype||i==Object.prototype||(i[g]=R.value),i};function I(i){i=[typeof globalThis=="object"&&globalThis,i,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var g=0;g<i.length;++g){var R=i[g];if(R&&R.Math==Math)return R}throw Error("Cannot find global object")}var x=I(this);function A(i,g){if(g)t:{var R=x;i=i.split(".");for(var w=0;w<i.length-1;w++){var E=i[w];if(!(E in R))break t;R=R[E]}i=i[i.length-1],w=R[i],g=g(w),g!=w&&g!=null&&W(R,i,{configurable:!0,writable:!0,value:g})}}A("Symbol",function(i){function g(n){if(this instanceof g)throw new TypeError("Symbol is not a constructor");return new R(w+(n||"")+"_"+E++,n)}function R(n,l){this.g=n,W(this,"description",{configurable:!0,writable:!0,value:l})}if(i)return i;R.prototype.toString=function(){return this.g};var w="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",E=0;return g}),A("Symbol.iterator",function(i){if(i)return i;i=Symbol("Symbol.iterator");for(var g="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),R=0;R<g.length;R++){var w=x[g[R]];typeof w=="function"&&typeof w.prototype[i]!="function"&&W(w.prototype,i,{configurable:!0,writable:!0,value:function(){return Q(v(this))}})}return i});function Q(i){return i={next:i},i[Symbol.iterator]=function(){return this},i}function C(i){var g=typeof Symbol!="undefined"&&Symbol.iterator&&i[Symbol.iterator];return g?g.call(i):{next:v(i)}}function pt(i){if(!(i instanceof Array)){i=C(i);for(var g,R=[];!(g=i.next()).done;)R.push(g.value);i=R}return i}var _e=typeof Object.create=="function"?Object.create:function(i){function g(){}return g.prototype=i,new g},ct;if(typeof Object.setPrototypeOf=="function")ct=Object.setPrototypeOf;else{var jt;t:{var qe={a:!0},fe={};try{fe.__proto__=qe,jt=fe.a;break t}catch{}jt=!1}ct=jt?function(i,g){if(i.__proto__=g,i.__proto__!==g)throw new TypeError(i+" is not extensible");return i}:null}var He=ct;function Lt(i,g){if(i.prototype=_e(g.prototype),i.prototype.constructor=i,He)He(i,g);else for(var R in g)if(R!="prototype")if(Object.defineProperties){var w=Object.getOwnPropertyDescriptor(g,R);w&&Object.defineProperty(i,R,w)}else i[R]=g[R];i.ra=g.prototype}function ue(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.u=this.o=0,this.j=null}function pe(i){if(i.l)throw new TypeError("Generator is already running");i.l=!0}ue.prototype.s=function(i){this.h=i};function he(i,g){i.j={fa:g,ga:!0},i.g=i.o||i.u}ue.prototype.return=function(i){this.j={return:i},this.g=this.u};function $(i,g,R){return i.g=R,{value:g}}function Fn(i){this.g=new ue,this.h=i}function Hn(i,g){pe(i.g);var R=i.g.i;return R?je(i,"return"in R?R.return:function(w){return{value:w,done:!0}},g,i.g.return):(i.g.return(g),ee(i))}function je(i,g,R,w){try{var E=g.call(i.g.i,R);if(!(E instanceof Object))throw new TypeError("Iterator result "+E+" is not an object");if(!E.done)return i.g.l=!1,E;var n=E.value}catch(l){return i.g.i=null,he(i.g,l),ee(i)}return i.g.i=null,w.call(i.g,n),ee(i)}function ee(i){for(;i.g.g;)try{var g=i.h(i.g);if(g)return i.g.l=!1,{value:g.value,done:!1}}catch(R){i.g.h=void 0,he(i.g,R)}if(i.g.l=!1,i.g.j){if(g=i.g.j,i.g.j=null,g.ga)throw g.fa;return{value:g.return,done:!0}}return{value:void 0,done:!0}}function jn(i){this.next=function(g){return pe(i.g),i.g.i?g=je(i,i.g.i.next,g,i.g.s):(i.g.s(g),g=ee(i)),g},this.throw=function(g){return pe(i.g),i.g.i?g=je(i,i.g.i.throw,g,i.g.s):(he(i.g,g),g=ee(i)),g},this.return=function(g){return Hn(i,g)},this[Symbol.iterator]=function(){return this}}function te(i){function g(w){return i.next(w)}function R(w){return i.throw(w)}return new Promise(function(w,E){function n(l){l.done?w(l.value):Promise.resolve(l.value).then(g,R).then(n,E)}n(i.next())})}function ht(i){return te(new jn(new Fn(i)))}A("Promise",function(i){function g(l){this.h=0,this.i=void 0,this.g=[],this.s=!1;var d=this.j();try{l(d.resolve,d.reject)}catch(e){d.reject(e)}}function R(){this.g=null}function w(l){return l instanceof g?l:new g(function(d){d(l)})}if(i)return i;R.prototype.h=function(l){if(this.g==null){this.g=[];var d=this;this.i(function(){d.l()})}this.g.push(l)};var E=x.setTimeout;R.prototype.i=function(l){E(l,0)},R.prototype.l=function(){for(;this.g&&this.g.length;){var l=this.g;this.g=[];for(var d=0;d<l.length;++d){var e=l[d];l[d]=null;try{e()}catch(u){this.j(u)}}}this.g=null},R.prototype.j=function(l){this.i(function(){throw l})},g.prototype.j=function(){function l(u){return function(a){e||(e=!0,u.call(d,a))}}var d=this,e=!1;return{resolve:l(this.D),reject:l(this.l)}},g.prototype.D=function(l){if(l===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(l instanceof g)this.H(l);else{t:switch(typeof l){case"object":var d=l!=null;break t;case"function":d=!0;break t;default:d=!1}d?this.A(l):this.o(l)}},g.prototype.A=function(l){var d=void 0;try{d=l.then}catch(e){this.l(e);return}typeof d=="function"?this.I(d,l):this.o(l)},g.prototype.l=function(l){this.u(2,l)},g.prototype.o=function(l){this.u(1,l)},g.prototype.u=function(l,d){if(this.h!=0)throw Error("Cannot settle("+l+", "+d+"): Promise already settled in state"+this.h);this.h=l,this.i=d,this.h===2&&this.G(),this.B()},g.prototype.G=function(){var l=this;E(function(){if(l.C()){var d=x.console;typeof d!="undefined"&&d.error(l.i)}},1)},g.prototype.C=function(){if(this.s)return!1;var l=x.CustomEvent,d=x.Event,e=x.dispatchEvent;return typeof e=="undefined"?!0:(typeof l=="function"?l=new l("unhandledrejection",{cancelable:!0}):typeof d=="function"?l=new d("unhandledrejection",{cancelable:!0}):(l=x.document.createEvent("CustomEvent"),l.initCustomEvent("unhandledrejection",!1,!0,l)),l.promise=this,l.reason=this.i,e(l))},g.prototype.B=function(){if(this.g!=null){for(var l=0;l<this.g.length;++l)n.h(this.g[l]);this.g=null}};var n=new R;return g.prototype.H=function(l){var d=this.j();l.M(d.resolve,d.reject)},g.prototype.I=function(l,d){var e=this.j();try{l.call(d,e.resolve,e.reject)}catch(u){e.reject(u)}},g.prototype.then=function(l,d){function e(o,s){return typeof o=="function"?function(h){try{u(o(h))}catch(X){a(X)}}:s}var u,a,t=new g(function(o,s){u=o,a=s});return this.M(e(l,u),e(d,a)),t},g.prototype.catch=function(l){return this.then(void 0,l)},g.prototype.M=function(l,d){function e(){switch(u.h){case 1:l(u.i);break;case 2:d(u.i);break;default:throw Error("Unexpected state: "+u.h)}}var u=this;this.g==null?n.h(e):this.g.push(e),this.s=!0},g.resolve=w,g.reject=function(l){return new g(function(d,e){e(l)})},g.race=function(l){return new g(function(d,e){for(var u=C(l),a=u.next();!a.done;a=u.next())w(a.value).M(d,e)})},g.all=function(l){var d=C(l),e=d.next();return e.done?w([]):new g(function(u,a){function t(h){return function(X){o[h]=X,s--,s==0&&u(o)}}var o=[],s=0;do o.push(void 0),s++,w(e.value).M(t(o.length-1),a),e=d.next();while(!e.done)})},g});function Jn(i,g){i instanceof String&&(i+="");var R=0,w=!1,E={next:function(){if(!w&&R<i.length){var n=R++;return{value:g(n,i[n]),done:!1}}return w=!0,{done:!0,value:void 0}}};return E[Symbol.iterator]=function(){return E},E}var Cn=typeof Object.assign=="function"?Object.assign:function(i,g){for(var R=1;R<arguments.length;R++){var w=arguments[R];if(w)for(var E in w)Object.prototype.hasOwnProperty.call(w,E)&&(i[E]=w[E])}return i};A("Object.assign",function(i){return i||Cn}),A("Object.is",function(i){return i||function(g,R){return g===R?g!==0||1/g===1/R:g!==g&&R!==R}}),A("Array.prototype.includes",function(i){return i||function(g,R){var w=this;w instanceof String&&(w=String(w));var E=w.length;for(R=R||0,0>R&&(R=Math.max(R+E,0));R<E;R++){var n=w[R];if(n===g||Object.is(n,g))return!0}return!1}}),A("String.prototype.includes",function(i){return i||function(g,R){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(g instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(g,R||0)!==-1}}),A("Array.prototype.keys",function(i){return i||function(){return Jn(this,function(g){return g})}});var ye=this||self;function St(i,g){i=i.split(".");var R=ye;i[0]in R||typeof R.execScript=="undefined"||R.execScript("var "+i[0]);for(var w;i.length&&(w=i.shift());)i.length||g===void 0?R[w]&&R[w]!==Object.prototype[w]?R=R[w]:R=R[w]={}:R[w]=g}function We(){throw Error("Invalid UTF8")}function tn(i,g){return g=String.fromCharCode.apply(null,g),i==null?g:i+g}var hn,Wn=typeof TextDecoder!="undefined",bn,xn=typeof TextEncoder!="undefined",en={},un=null;function In(i){var g;g===void 0&&(g=0),nn(),g=en[g];for(var R=Array(Math.floor(i.length/3)),w=g[64]||"",E=0,n=0;E<i.length-2;E+=3){var l=i[E],d=i[E+1],e=i[E+2],u=g[l>>2];l=g[(l&3)<<4|d>>4],d=g[(d&15)<<2|e>>6],e=g[e&63],R[n++]=u+l+d+e}switch(u=0,e=w,i.length-E){case 2:u=i[E+1],e=g[(u&15)<<2]||w;case 1:i=i[E],R[n]=g[i>>2]+g[(i&3)<<4|u>>4]+e+w}return R.join("")}function Vn(i){var g=i.length,R=3*g/4;R%3?R=Math.floor(R):"=.".indexOf(i[g-1])!=-1&&(R="=.".indexOf(i[g-2])!=-1?R-2:R-1);var w=new Uint8Array(R),E=0;return pn(i,function(n){w[E++]=n}),E!==R?w.subarray(0,E):w}function pn(i,g){function R(e){for(;w<i.length;){var u=i.charAt(w++),a=un[u];if(a!=null)return a;if(!/^[\s\xa0]*$/.test(u))throw Error("Unknown base64 encoding at char: "+u)}return e}nn();for(var w=0;;){var E=R(-1),n=R(0),l=R(64),d=R(64);if(d===64&&E===-1)break;g(E<<2|n>>4),l!=64&&(g(n<<4&240|l>>2),d!=64&&g(l<<6&192|d))}}function nn(){if(!un){un={};for(var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),g=["+/=","+/","-_=","-_.","-_"],R=0;5>R;R++){var w=i.concat(g[R].split(""));en[R]=w;for(var E=0;E<w.length;E++){var n=w[E];un[n]===void 0&&(un[n]=E)}}}}var Zn=typeof Uint8Array=="function";function dn(i){return Zn&&i!=null&&i instanceof Uint8Array}var ce;function ve(i){if(this.L=i,i!==null&&i.length===0)throw Error("ByteString should be constructed with non-empty values")}var Pe=typeof Uint8Array.prototype.slice=="function",le=0,ae=0;function ze(i,g){if(i.constructor===Uint8Array)return i;if(i.constructor===ArrayBuffer)return new Uint8Array(i);if(i.constructor===Array)return new Uint8Array(i);if(i.constructor===String)return Vn(i);if(i.constructor===ve)return!g&&(g=i.L)&&g.constructor===Uint8Array?g:(g=i.L,g=g==null||dn(g)?g:typeof g=="string"?Vn(g):null,(i=i.L=g)?new Uint8Array(i):ce||(ce=new Uint8Array(0)));if(i instanceof Uint8Array)return new Uint8Array(i.buffer,i.byteOffset,i.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function xe(i,g){return Error("Invalid wire type: "+i+" (at position "+g+")")}function Ct(){return Error("Failed to read varint, encoding is invalid.")}function re(i,g){g=g===void 0?{}:g,g=g.v===void 0?!1:g.v,this.h=null,this.g=this.i=this.j=0,this.v=g,i&&Ve(this,i)}function Ve(i,g){i.h=ze(g,i.v),i.j=0,i.i=i.h.length,i.g=i.j}re.prototype.reset=function(){this.g=this.j};function It(i){if(i.g>i.i)throw Error("Tried to read past the end of the data "+i.g+" > "+i.i)}function de(i){var g=i.h,R=g[i.g],w=R&127;if(128>R)return i.g+=1,It(i),w;if(R=g[i.g+1],w|=(R&127)<<7,128>R)return i.g+=2,It(i),w;if(R=g[i.g+2],w|=(R&127)<<14,128>R)return i.g+=3,It(i),w;if(R=g[i.g+3],w|=(R&127)<<21,128>R)return i.g+=4,It(i),w;if(R=g[i.g+4],i.g+=5,w|=(R&15)<<28,128>R)return It(i),w;if(128<=g[i.g++]&&128<=g[i.g++]&&128<=g[i.g++]&&128<=g[i.g++]&&128<=g[i.g++])throw Ct();return It(i),w}var At=[];function ne(){this.g=[]}ne.prototype.length=function(){return this.g.length},ne.prototype.end=function(){var i=this.g;return this.g=[],i};function Ge(i,g){for(;127<g;)i.g.push(g&127|128),g>>>=7;i.g.push(g)}function Be(i){var g={},R=g.W===void 0?!1:g.W;this.l={v:g.v===void 0?!1:g.v},this.W=R,g=this.l,At.length?(R=At.pop(),g&&(R.v=g.v),i&&Ve(R,i),i=R):i=new re(i,g),this.g=i,this.j=this.g.g,this.h=this.i=-1}Be.prototype.reset=function(){this.g.reset(),this.j=this.g.g,this.h=this.i=-1};function se(i){var g=i.g;if(g.g==g.i)return!1;i.j=i.g.g;var R=de(i.g)>>>0;if(g=R>>>3,R&=7,!(0<=R&&5>=R))throw xe(R,i.j);if(1>g)throw Error("Invalid field number: "+g+" (at position "+i.j+")");return i.i=g,i.h=R,!0}function Yt(i){switch(i.h){case 0:if(i.h!=0)Yt(i);else t:{i=i.g;for(var g=i.g,R=g+10;g<R;)if((i.h[g++]&128)===0){i.g=g,It(i);break t}throw Ct()}break;case 1:i=i.g,i.g+=8,It(i);break;case 2:i.h!=2?Yt(i):(g=de(i.g)>>>0,i=i.g,i.g+=g,It(i));break;case 5:i=i.g,i.g+=4,It(i);break;case 3:g=i.i;do{if(!se(i))throw Error("Unmatched start-group tag: stream EOF");if(i.h==4){if(i.i!=g)throw Error("Unmatched end-group tag");break}Yt(i)}while(1);break;default:throw xe(i.h,i.j)}}var Ie=[];function Je(){this.i=[],this.h=0,this.g=new ne}function ge(i,g){g.length!==0&&(i.i.push(g),i.h+=g.length)}function Xn(i,g){if(g=g.ca){ge(i,i.g.end());for(var R=0;R<g.length;R++)ge(i,g[R])}}var Qe=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function sn(i,g){Object.isFrozen(i)||(Qe?i[Qe]|=g:i.N!==void 0?i.N|=g:Object.defineProperties(i,{N:{value:g,configurable:!0,writable:!0,enumerable:!1}}))}function cn(i){var g;return Qe?g=i[Qe]:g=i.N,g==null?0:g}function ie(i){return sn(i,1),i}function Re(i){return Array.isArray(i)?!!(cn(i)&2):!1}function oe(i){if(!Array.isArray(i))throw Error("cannot mark non-array as immutable");sn(i,2)}function Mt(i){return i!==null&&typeof i=="object"&&!Array.isArray(i)&&i.constructor===Object}var Ce=Object.freeze(ie([]));function Ot(i){if(Re(i.m))throw Error("Cannot mutate an immutable Message")}var Ut=typeof Symbol!="undefined"&&typeof Symbol.hasInstance!="undefined";function gn(i){return{value:i,configurable:!1,writable:!1,enumerable:!1}}function $t(i,g,R){return g===-1?null:g>=i.i?i.g?i.g[g]:void 0:(R===void 0?0:R)&&i.g&&(R=i.g[g],R!=null)?R:i.m[g+i.h]}function Vt(i,g,R,w){w=w===void 0?!1:w,Ot(i),g<i.i&&!w?i.m[g+i.h]=R:(i.g||(i.g=i.m[i.i+i.h]={}))[g]=R}function bt(i,g,R,w){R=R===void 0?!0:R,w=w===void 0?!1:w;var E=$t(i,g,w);return E==null&&(E=Ce),Re(i.m)?R&&(oe(E),Object.freeze(E)):(E===Ce||Re(E))&&(E=ie(E.slice()),Vt(i,g,E,w)),E}function zt(i,g,R){return i=$t(i,g),i=i==null?i:+i,i==null?R===void 0?0:R:i}function Fe(i,g,R,w){i.j||(i.j={});var E=Re(i.m),n=i.j[R];if(!n){w=bt(i,R,!0,w===void 0?!1:w),n=[],E=E||Re(w);for(var l=0;l<w.length;l++)n[l]=new g(w[l]),E&&oe(n[l].m);E&&(oe(n),Object.freeze(n)),i.j[R]=n}return n}function Kt(i,g,R,w,E){var n=n===void 0?!1:n;return Ot(i),n=Fe(i,R,g,n),R=w||new R,i=bt(i,g),E!=null?(n.splice(E,0,R),i.splice(E,0,R.m)):(n.push(R),i.push(R.m)),R}function Qt(i,g){return i=$t(i,g),i==null?0:i}function Le(i,g){return i=$t(i,g),i==null?"":i}function kt(i){switch(typeof i){case"number":return isFinite(i)?i:String(i);case"object":if(i&&!Array.isArray(i)){if(dn(i))return In(i);if(i instanceof ve){var g=i.L;return g=g==null||typeof g=="string"?g:Zn&&g instanceof Uint8Array?In(g):null,(i.L=g)||""}}}return i}function Rt(i){var g=Se;return g=g===void 0?Jt:g,Oe(i,g)}function Ae(i,g){if(i!=null){if(Array.isArray(i))i=Oe(i,g);else if(Mt(i)){var R={},w;for(w in i)R[w]=Ae(i[w],g);i=R}else i=g(i);return i}}function Oe(i,g){for(var R=i.slice(),w=0;w<R.length;w++)R[w]=Ae(R[w],g);return Array.isArray(i)&&cn(i)&1&&ie(R),R}function Se(i){return i&&typeof i=="object"&&i.toJSON?i.toJSON():(i=kt(i),Array.isArray(i)?Rt(i):i)}function Jt(i){return dn(i)?new Uint8Array(i):i}function Ne(i,g,R){i||(i=an),an=null;var w=this.constructor.h;i||(i=w?[w]:[]),this.h=(w?0:-1)-(this.constructor.g||0),this.j=void 0,this.m=i;t:{if(w=this.m.length,i=w-1,w&&(w=this.m[i],Mt(w))){this.i=i-this.h,this.g=w;break t}g!==void 0&&-1<g?(this.i=Math.max(g,i+1-this.h),this.g=void 0):this.i=Number.MAX_VALUE}if(R)for(g=0;g<R.length;g++)if(i=R[g],i<this.i)i+=this.h,(w=this.m[i])?Array.isArray(w)&&ie(w):this.m[i]=Ce;else{w=this.g||(this.g=this.m[this.i+this.h]={});var E=w[i];E?Array.isArray(E)&&ie(E):w[i]=Ce}}Ne.prototype.toJSON=function(){return Rt(this.m)},Ne.prototype.toString=function(){return this.m.toString()};var an;function De(){Ne.apply(this,arguments)}if(Lt(De,Ne),Ut){var Ee={};Object.defineProperties(De,(Ee[Symbol.hasInstance]=gn(function(){throw Error("Cannot perform instanceof checks for MutableMessage")}),Ee))}function Me(i,g,R){if(R){var w={},E;for(E in R){var n=R[E],l=n.ja;l||(w.F=n.pa||n.ha.P,n.ba?(w.U=fn(n.ba),l=function(d){return function(e,u,a){return d.F(e,u,a,d.U)}}(w)):n.da?(w.T=Te(n.X.g,n.da),l=function(d){return function(e,u,a){return d.F(e,u,a,d.T)}}(w)):l=w.F,n.ja=l),l(g,i,n.X),w={F:w.F,U:w.U,T:w.T}}}Xn(g,i)}var $e=Symbol();function me(i,g,R){return i[$e]||(i[$e]=function(w,E){return g(w,E,R)})}function Ye(i){var g=i[$e];if(!g){var R=f(i);g=function(w,E){return b(w,E,R)},i[$e]=g}return g}function Nn(i){var g=i.ba;if(g)return Ye(g);if(g=i.oa)return me(i.X.g,g,i.da)}function Ue(i){var g=Nn(i),R=i.X,w=i.ha.O;return g?function(E,n){return w(E,n,R,g)}:function(E,n){return w(E,n,R)}}function be(i,g,R,w,E,n){i=i();var l=0;for(i.length&&typeof i[0]!="number"&&(R(g,i[0]),l++);l<i.length;){R=i[l++];for(var d=l+1;d<i.length&&typeof i[d]!="number";)d++;var e=i[l++];switch(d-=l,d){case 0:w(g,R,e);break;case 1:w(g,R,e,i[l++]);break;case 2:E(g,R,e,i[l++],i[l++]);break;case 3:d=i[l++];var u=i[l++],a=i[l++];Array.isArray(a)?E(g,R,e,d,u,a):n(g,R,e,d,u,a);break;case 4:n(g,R,e,i[l++],i[l++],i[l++],i[l++]);break;default:throw Error("unexpected number of binary field arguments: "+d)}}return g}var rn=Symbol();function fn(i){var g=i[rn];if(!g){var R=Ke(i);g=function(w,E){return Y(w,E,R)},i[rn]=g}return g}function Te(i,g){var R=i[rn];return R||(R=function(w,E){return Me(w,E,g)},i[rn]=R),R}var Sn=Symbol();function ke(i,g){i.push(g)}function on(i,g,R){i.push(g,R.P)}function mn(i,g,R,w,E){var n=fn(E),l=R.P;i.push(g,function(d,e,u){return l(d,e,u,w,n)})}function Ln(i,g,R,w,E,n){var l=Te(w,n),d=R.P;i.push(g,function(e,u,a){return d(e,u,a,w,l)})}function Ke(i){var g=i[Sn];return g||be(i,i[Sn]=[],ke,on,mn,Ln)}var yn=Symbol();function Yn(i,g){i[0]=g}function Un(i,g,R,w){var E=R.O;i[g]=w?function(n,l,d){return E(n,l,d,w)}:E}function vn(i,g,R,w,E,n){var l=R.O,d=Ye(E);i[g]=function(e,u,a){return l(e,u,a,w,d,n)}}function Gn(i,g,R,w,E,n,l){var d=R.O,e=me(w,E,n);i[g]=function(u,a,t){return d(u,a,t,w,e,l)}}function f(i){var g=i[yn];return g||be(i,i[yn]={},Yn,Un,vn,Gn)}function b(i,g,R){for(;se(g)&&g.h!=4;){var w=g.i,E=R[w];if(!E){var n=R[0];n&&(n=n[w])&&(E=R[w]=Ue(n))}if((!E||!E(g,i,w))&&(E=g,w=i,n=E.j,Yt(E),!E.W)){var l=E.g.h;E=E.g.g,E=n===E?ce||(ce=new Uint8Array(0)):Pe?l.slice(n,E):new Uint8Array(l.subarray(n,E)),(n=w.ca)?n.push(E):w.ca=[E]}}return i}function Z(i,g,R){if(Ie.length){var w=Ie.pop();i&&(Ve(w.g,i),w.i=-1,w.h=-1),i=w}else i=new Be(i);try{return b(new g,i,f(R))}finally{g=i.g,g.h=null,g.j=0,g.i=0,g.g=0,g.v=!1,i.i=-1,i.h=-1,100>Ie.length&&Ie.push(i)}}function Y(i,g,R){for(var w=R.length,E=w%2==1,n=E?1:0;n<w;n+=2)(0,R[n+1])(g,i,R[n]);Me(i,g,E?R[0]:void 0)}function _(i,g){var R=new Je;Y(i,R,Ke(g)),ge(R,R.g.end()),i=new Uint8Array(R.h),g=R.i;for(var w=g.length,E=0,n=0;n<w;n++){var l=g[n];i.set(l,E),E+=l.length}return R.i=[i],i}function et(i,g){return{O:i,P:g}}var K=et(function(i,g,R){if(i.h!==5)return!1;i=i.g;var w=i.h[i.g],E=i.h[i.g+1],n=i.h[i.g+2],l=i.h[i.g+3];return i.g+=4,It(i),E=(w<<0|E<<8|n<<16|l<<24)>>>0,i=2*(E>>31)+1,w=E>>>23&255,E&=8388607,Vt(g,R,w==255?E?NaN:1/0*i:w==0?i*Math.pow(2,-149)*E:i*Math.pow(2,w-150)*(E+Math.pow(2,23))),!0},function(i,g,R){if(g=$t(g,R),g!=null){Ge(i.g,8*R+5),i=i.g;var w=g;w=(R=0>w?1:0)?-w:w,w===0?0<1/w?le=ae=0:(ae=0,le=2147483648):isNaN(w)?(ae=0,le=2147483647):34028234663852886e22<w?(ae=0,le=(R<<31|2139095040)>>>0):11754943508222875e-54>w?(w=Math.round(w/Math.pow(2,-149)),ae=0,le=(R<<31|w)>>>0):(g=Math.floor(Math.log(w)/Math.LN2),w*=Math.pow(2,-g),w=Math.round(8388608*w),16777216<=w&&++g,ae=0,le=(R<<31|g+127<<23|w&8388607)>>>0),R=le,i.g.push(R>>>0&255),i.g.push(R>>>8&255),i.g.push(R>>>16&255),i.g.push(R>>>24&255)}}),tt=et(function(i,g,R){if(i.h!==0)return!1;for(var w=i.g,E=128,n=0,l=i=0;4>l&&128<=E;l++)E=w.h[w.g++],It(w),n|=(E&127)<<7*l;if(128<=E&&(E=w.h[w.g++],It(w),n|=(E&127)<<28,i|=(E&127)>>4),128<=E)for(l=0;5>l&&128<=E;l++)E=w.h[w.g++],It(w),i|=(E&127)<<7*l+3;if(128>E)w=n>>>0,E=i>>>0,(i=E&2147483648)&&(w=~w+1>>>0,E=~E>>>0,w==0&&(E=E+1>>>0)),w=4294967296*E+(w>>>0);else throw Ct();return Vt(g,R,i?-w:w),!0},function(i,g,R){if(g=$t(g,R),g!=null&&g!=null){Ge(i.g,8*R),i=i.g;var w=g;for(R=0>w,w=Math.abs(w),g=w>>>0,w=Math.floor((w-g)/4294967296),w>>>=0,R&&(w=~w>>>0,g=(~g>>>0)+1,4294967295<g&&(g=0,w++,4294967295<w&&(w=0))),le=g,ae=w,R=le,g=ae;0<g||127<R;)i.g.push(R&127|128),R=(R>>>7|g<<25)>>>0,g>>>=7;i.g.push(R)}}),st=et(function(i,g,R){return i.h!==0?!1:(Vt(g,R,de(i.g)),!0)},function(i,g,R){if(g=$t(g,R),g!=null&&g!=null)if(Ge(i.g,8*R),i=i.g,R=g,0<=R)Ge(i,R);else{for(g=0;9>g;g++)i.g.push(R&127|128),R>>=7;i.g.push(1)}}),mt=et(function(i,g,R){if(i.h!==2)return!1;var w=de(i.g)>>>0;i=i.g;var E=i.g;i.g+=w,It(i),i=i.h;var n;if(Wn)(n=hn)||(n=hn=new TextDecoder("utf-8",{fatal:!0})),n=n.decode(i.subarray(E,E+w));else{w=E+w;for(var l=[],d=null,e,u,a;E<w;)e=i[E++],128>e?l.push(e):224>e?E>=w?We():(u=i[E++],194>e||(u&192)!==128?(E--,We()):l.push((e&31)<<6|u&63)):240>e?E>=w-1?We():(u=i[E++],(u&192)!==128||e===224&&160>u||e===237&&160<=u||((n=i[E++])&192)!==128?(E--,We()):l.push((e&15)<<12|(u&63)<<6|n&63)):244>=e?E>=w-2?We():(u=i[E++],(u&192)!==128||(e<<28)+(u-144)>>30!==0||((n=i[E++])&192)!==128||((a=i[E++])&192)!==128?(E--,We()):(e=(e&7)<<18|(u&63)<<12|(n&63)<<6|a&63,e-=65536,l.push((e>>10&1023)+55296,(e&1023)+56320))):We(),8192<=l.length&&(d=tn(d,l),l.length=0);n=tn(d,l)}return Vt(g,R,n),!0},function(i,g,R){if(g=$t(g,R),g!=null){var w=!1;if(w=w===void 0?!1:w,xn){if(w&&/(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])/.test(g))throw Error("Found an unpaired surrogate");g=(bn||(bn=new TextEncoder)).encode(g)}else{for(var E=0,n=new Uint8Array(3*g.length),l=0;l<g.length;l++){var d=g.charCodeAt(l);if(128>d)n[E++]=d;else{if(2048>d)n[E++]=d>>6|192;else{if(55296<=d&&57343>=d){if(56319>=d&&l<g.length){var e=g.charCodeAt(++l);if(56320<=e&&57343>=e){d=1024*(d-55296)+e-56320+65536,n[E++]=d>>18|240,n[E++]=d>>12&63|128,n[E++]=d>>6&63|128,n[E++]=d&63|128;continue}else l--}if(w)throw Error("Found an unpaired surrogate");d=65533}n[E++]=d>>12|224,n[E++]=d>>6&63|128}n[E++]=d&63|128}}g=n.subarray(0,E)}Ge(i.g,8*R+2),Ge(i.g,g.length),ge(i,i.g.end()),ge(i,g)}}),Ft=et(function(i,g,R,w,E){if(i.h!==2)return!1;g=Kt(g,R,w),R=i.g.i,w=de(i.g)>>>0;var n=i.g.g+w,l=n-R;if(0>=l&&(i.g.i=n,E(g,i),l=n-i.g.g),l)throw Error("Message parsing ended unexpectedly. Expected to read "+(w+" bytes, instead read "+(w-l)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return i.g.g=n,i.g.i=R,!0},function(i,g,R,w,E){if(g=Fe(g,w,R),g!=null)for(w=0;w<g.length;w++){var n=i;Ge(n.g,8*R+2);var l=n.g.end();ge(n,l),l.push(n.h),n=l,E(g[w],i),l=i;var d=n.pop();for(d=l.h+l.g.length()-d;127<d;)n.push(d&127|128),d>>>=7,l.h++;n.push(d),l.h++}});function wt(){De.apply(this,arguments)}if(Lt(wt,De),Ut){var Ht={};Object.defineProperties(wt,(Ht[Symbol.hasInstance]=gn(Object[Symbol.hasInstance]),Ht))}function Wt(i){wt.call(this,i)}Lt(Wt,wt);function Zt(){return[1,st,2,K,3,mt,4,mt]}function Tt(i){wt.call(this,i,-1,Bt)}Lt(Tt,wt),Tt.prototype.addClassification=function(i,g){return Kt(this,1,Wt,i,g),this};function Et(){return[1,Ft,Wt,Zt]}var Bt=[1];function Dt(i){wt.call(this,i)}Lt(Dt,wt);function qt(){return[1,K,2,K,3,K,4,K,5,K]}function Ze(i){wt.call(this,i,-1,p)}Lt(Ze,wt);function c(){return[1,Ft,Dt,qt]}var p=[1];function m(i){wt.call(this,i)}Lt(m,wt);function L(){return[1,K,2,K,3,K,4,K,5,K,6,tt]}function H(i,g,R){if(R=i.createShader(R===0?i.VERTEX_SHADER:i.FRAGMENT_SHADER),i.shaderSource(R,g),i.compileShader(R),!i.getShaderParameter(R,i.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
22
22
|
|
|
23
|
-
`+
|
|
23
|
+
`+i.getShaderInfoLog(R));return R}function P(i){return Fe(i,Wt,1).map(function(g){return{index:Qt(g,1),score:zt(g,2),label:$t(g,3)!=null?Le(g,3):void 0,displayName:$t(g,4)!=null?Le(g,4):void 0}})}function j(i){return{x:zt(i,1),y:zt(i,2),z:zt(i,3),visibility:$t(i,4)!=null?zt(i,4):void 0}}function D(i){return i.map(function(g){return Fe(Z(g,Ze,c),Dt,1).map(j)})}function rt(i,g){this.h=i,this.g=g,this.l=0}function r(i,g,R){return y(i,g),typeof i.g.canvas.transferToImageBitmap=="function"?Promise.resolve(i.g.canvas.transferToImageBitmap()):R?Promise.resolve(i.g.canvas):typeof createImageBitmap=="function"?createImageBitmap(i.g.canvas):(i.i===void 0&&(i.i=document.createElement("canvas")),new Promise(function(w){i.i.height=i.g.canvas.height,i.i.width=i.g.canvas.width,i.i.getContext("2d",{}).drawImage(i.g.canvas,0,0,i.g.canvas.width,i.g.canvas.height),w(i.i)}))}function y(i,g){var R=i.g;if(i.o===void 0){var w=H(R,`
|
|
24
24
|
attribute vec2 aVertex;
|
|
25
25
|
attribute vec2 aTex;
|
|
26
26
|
varying vec2 vTex;
|
|
27
27
|
void main(void) {
|
|
28
28
|
gl_Position = vec4(aVertex, 0.0, 1.0);
|
|
29
29
|
vTex = aTex;
|
|
30
|
-
}`,0),
|
|
30
|
+
}`,0),E=H(R,`
|
|
31
31
|
precision mediump float;
|
|
32
32
|
varying vec2 vTex;
|
|
33
33
|
uniform sampler2D sampler0;
|
|
34
34
|
void main(){
|
|
35
35
|
gl_FragColor = texture2D(sampler0, vTex);
|
|
36
|
-
}`,1),
|
|
36
|
+
}`,1),n=R.createProgram();if(R.attachShader(n,w),R.attachShader(n,E),R.linkProgram(n),!R.getProgramParameter(n,R.LINK_STATUS))throw Error(`Could not compile WebGL program.
|
|
37
37
|
|
|
38
|
-
`+m.getProgramInfoLog(j));w=l.m=j,m.useProgram(w),L=m.getUniformLocation(w,"sampler0"),l.j={I:m.getAttribLocation(w,"aVertex"),H:m.getAttribLocation(w,"aTex"),da:L},l.s=m.createBuffer(),m.bindBuffer(m.ARRAY_BUFFER,l.s),m.enableVertexAttribArray(l.j.I),m.vertexAttribPointer(l.j.I,2,m.FLOAT,!1,0,0),m.bufferData(m.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),m.STATIC_DRAW),m.bindBuffer(m.ARRAY_BUFFER,null),l.o=m.createBuffer(),m.bindBuffer(m.ARRAY_BUFFER,l.o),m.enableVertexAttribArray(l.j.H),m.vertexAttribPointer(l.j.H,2,m.FLOAT,!1,0,0),m.bufferData(m.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),m.STATIC_DRAW),m.bindBuffer(m.ARRAY_BUFFER,null),m.uniform1i(L,0)}w=l.j,m.useProgram(l.m),m.canvas.width=f.width,m.canvas.height=f.height,m.viewport(0,0,f.width,f.height),m.activeTexture(m.TEXTURE0),l.h.bindTexture2d(f.glName),m.enableVertexAttribArray(w.I),m.bindBuffer(m.ARRAY_BUFFER,l.s),m.vertexAttribPointer(w.I,2,m.FLOAT,!1,0,0),m.enableVertexAttribArray(w.H),m.bindBuffer(m.ARRAY_BUFFER,l.o),m.vertexAttribPointer(w.H,2,m.FLOAT,!1,0,0),m.bindFramebuffer(m.DRAW_FRAMEBUFFER?m.DRAW_FRAMEBUFFER:m.FRAMEBUFFER,null),m.clearColor(0,0,0,0),m.clear(m.COLOR_BUFFER_BIT),m.colorMask(!0,!0,!0,!0),m.drawArrays(m.TRIANGLE_FAN,0,4),m.disableVertexAttribArray(w.I),m.disableVertexAttribArray(w.H),m.bindBuffer(m.ARRAY_BUFFER,null),l.h.bindTexture2d(0)}function Kn(l){this.g=l}var kn=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function sn(l,f){return f+l}function Gn(l,f){window[l]=f}function a(l){var f=document.createElement("script");return f.setAttribute("src",l),f.setAttribute("crossorigin","anonymous"),new Promise(function(m){f.addEventListener("load",function(){m()},!1),f.addEventListener("error",function(){m()},!1),document.body.appendChild(f)})}function y(){return Tt(this,function l(){return Ot(l,function(f){switch(f.g){case 1:return f.m=2,P(f,WebAssembly.instantiate(kn),4);case 4:f.g=3,f.m=0;break;case 2:return f.m=0,f.j=null,f.return(!1);case 3:return f.return(!0)}})})}function v(l){if(this.g=l,this.listeners={},this.j={},this.F={},this.m={},this.s={},this.G=this.o=this.R=!0,this.C=Promise.resolve(),this.P="",this.B={},this.locateFile=l&&l.locateFile||sn,typeof window=="object")var f=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")f=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.S=f,l.options){f=U(Object.keys(l.options));for(var m=f.next();!m.done;m=f.next()){m=m.value;var w=l.options[m].default;w!==void 0&&(this.j[m]=typeof w=="function"?w():w)}}}X=v.prototype,X.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function F(l,f){return l.g.files===void 0?[]:typeof l.g.files=="function"?l.g.files(f):l.g.files}function E(l){return Tt(l,function f(){var m=this,w,L,j,N,A,_,nt,ft,zt,Lt,Zt;return Ot(f,function(ot){switch(ot.g){case 1:return w=m,m.R?(L=F(m,m.j),P(ot,y(),2)):ot.return();case 2:if(j=ot.h,typeof window=="object")return Gn("createMediapipeSolutionsWasm",{locateFile:m.locateFile}),Gn("createMediapipeSolutionsPackedAssets",{locateFile:m.locateFile}),_=L.filter(function(pt){return pt.data!==void 0}),nt=L.filter(function(pt){return pt.data===void 0}),ft=Promise.all(_.map(function(pt){var wt=O(w,pt.url);if(pt.path!==void 0){var Ut=pt.path;wt=wt.then(function(Fe){return w.overrideFile(Ut,Fe),Promise.resolve(Fe)})}return wt})),zt=Promise.all(nt.map(function(pt){return pt.simd===void 0||pt.simd&&j||!pt.simd&&!j?a(w.locateFile(pt.url,w.S)):Promise.resolve()})).then(function(){return Tt(w,function pt(){var wt,Ut,Fe=this;return Ot(pt,function(Dt){if(Dt.g==1)return wt=window.createMediapipeSolutionsWasm,Ut=window.createMediapipeSolutionsPackedAssets,P(Dt,wt(Ut),2);Fe.h=Dt.h,Dt.g=0})})}),Lt=function(){return Tt(w,function pt(){var wt=this;return Ot(pt,function(Ut){return wt.g.graph&&wt.g.graph.url?Ut=P(Ut,O(wt,wt.g.graph.url),0):(Ut.g=0,Ut=void 0),Ut})})}(),P(ot,Promise.all([zt,ft,Lt]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return N=L.filter(function(pt){return pt.simd===void 0||pt.simd&&j||!pt.simd&&!j}).map(function(pt){return w.locateFile(pt.url,w.S)}),importScripts.apply(null,et(N)),P(ot,createMediapipeSolutionsWasm(Module),6);case 6:m.h=ot.h,m.l=new OffscreenCanvas(1,1),m.h.canvas=m.l,A=m.h.GL.createContext(m.l,{antialias:!1,alpha:!1,ba:typeof WebGL2RenderingContext!="undefined"?2:1}),m.h.GL.makeContextCurrent(A),ot.g=4;break;case 7:if(m.l=document.createElement("canvas"),Zt=m.l.getContext("webgl2",{}),!Zt&&(Zt=m.l.getContext("webgl",{}),!Zt))return alert("Failed to create WebGL canvas context when passing video frame."),ot.return();m.D=Zt,m.h.canvas=m.l,m.h.createContext(m.l,!0,!0,{});case 4:m.i=new m.h.SolutionWasm,m.R=!1,ot.g=0}})})}function B(l){return Tt(l,function f(){var m=this,w,L,j,N,A,_,nt,ft;return Ot(f,function(zt){if(zt.g==1){if(m.g.graph&&m.g.graph.url&&m.P===m.g.graph.url)return zt.return();if(m.o=!0,!m.g.graph||!m.g.graph.url){zt.g=2;return}return m.P=m.g.graph.url,P(zt,O(m,m.g.graph.url),3)}for(zt.g!=2&&(w=zt.h,m.i.loadGraph(w)),L=U(Object.keys(m.B)),j=L.next();!j.done;j=L.next())N=j.value,m.i.overrideFile(N,m.B[N]);if(m.B={},m.g.listeners)for(A=U(m.g.listeners),_=A.next();!_.done;_=A.next())nt=_.value,dt(m,nt);ft=m.j,m.j={},m.setOptions(ft),zt.g=0})})}X.reset=function(){return Tt(this,function l(){var f=this;return Ot(l,function(m){f.i&&(f.i.reset(),f.m={},f.s={}),m.g=0})})},X.setOptions=function(l,f){var m=this;if(f=f||this.g.options){for(var w=[],L=[],j={},N=U(Object.keys(l)),A=N.next();!A.done;j={K:j.K,L:j.L},A=N.next()){var _=A.value;_ in this.j&&this.j[_]===l[_]||(this.j[_]=l[_],A=f[_],A!==void 0&&(A.onChange&&(j.K=A.onChange,j.L=l[_],w.push(function(nt){return function(){return Tt(m,function ft(){var zt,Lt=this;return Ot(ft,function(Zt){if(Zt.g==1)return P(Zt,nt.K(nt.L),2);zt=Zt.h,zt===!0&&(Lt.o=!0),Zt.g=0})})}}(j))),A.graphOptionXref&&(_={valueNumber:A.type===1?l[_]:0,valueBoolean:A.type===0?l[_]:!1,valueString:A.type===2?l[_]:""},A=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),A.graphOptionXref),_),L.push(A))))}(w.length!==0||L.length!==0)&&(this.o=!0,this.A=(this.A===void 0?[]:this.A).concat(L),this.u=(this.u===void 0?[]:this.u).concat(w))}};function k(l){return Tt(l,function f(){var m=this,w,L,j,N,A,_,nt;return Ot(f,function(ft){switch(ft.g){case 1:if(!m.o)return ft.return();if(!m.u){ft.g=2;break}w=U(m.u),L=w.next();case 3:if(L.done){ft.g=5;break}return j=L.value,P(ft,j(),4);case 4:L=w.next(),ft.g=3;break;case 5:m.u=void 0;case 2:if(m.A){for(N=new m.h.GraphOptionChangeRequestList,A=U(m.A),_=A.next();!_.done;_=A.next())nt=_.value,N.push_back(nt);m.i.changeOptions(N),N.delete(),m.A=void 0}m.o=!1,ft.g=0}})})}X.initialize=function(){return Tt(this,function l(){var f=this;return Ot(l,function(m){return m.g==1?P(m,E(f),2):m.g!=3?P(m,B(f),3):P(m,k(f),0)})})};function O(l,f){return Tt(l,function m(){var w=this,L,j;return Ot(m,function(N){return f in w.F?N.return(w.F[f]):(L=w.locateFile(f,""),j=fetch(L).then(function(A){return A.arrayBuffer()}),w.F[f]=j,N.return(j))})})}X.overrideFile=function(l,f){this.i?this.i.overrideFile(l,f):this.B[l]=f},X.clearOverriddenFiles=function(){this.B={},this.i&&this.i.clearOverriddenFiles()},X.send=function(l,f){return Tt(this,function m(){var w=this,L,j,N,A,_,nt,ft,zt,Lt;return Ot(m,function(Zt){switch(Zt.g){case 1:return w.g.inputs?(L=1e3*(f==null?performance.now():f),P(Zt,w.C,2)):Zt.return();case 2:return P(Zt,w.initialize(),3);case 3:for(j=new w.h.PacketDataList,N=U(Object.keys(l)),A=N.next();!A.done;A=N.next())if(_=A.value,nt=w.g.inputs[_]){t:{var ot=w,pt=l[_];switch(nt.type){case"video":var wt=ot.m[nt.stream];if(wt||(wt=new Fn(ot.h,ot.D),ot.m[nt.stream]=wt),ot=wt,ot.l===0&&(ot.l=ot.h.createTexture()),typeof HTMLVideoElement!="undefined"&&pt instanceof HTMLVideoElement){var Ut=pt.videoWidth;wt=pt.videoHeight}else typeof HTMLImageElement!="undefined"&&pt instanceof HTMLImageElement?(Ut=pt.naturalWidth,wt=pt.naturalHeight):(Ut=pt.width,wt=pt.height);wt={glName:ot.l,width:Ut,height:wt},Ut=ot.g,Ut.canvas.width=wt.width,Ut.canvas.height=wt.height,Ut.activeTexture(Ut.TEXTURE0),ot.h.bindTexture2d(ot.l),Ut.texImage2D(Ut.TEXTURE_2D,0,Ut.RGBA,Ut.RGBA,Ut.UNSIGNED_BYTE,pt),ot.h.bindTexture2d(0),ot=wt;break t;case"detections":for(wt=ot.m[nt.stream],wt||(wt=new Kn(ot.h),ot.m[nt.stream]=wt),ot=wt,ot.data||(ot.data=new ot.g.DetectionListData),ot.data.reset(pt.length),wt=0;wt<pt.length;++wt){Ut=pt[wt];var Fe=ot.data,Dt=Fe.setBoundingBox,He=wt,ie=Ut.T,St=new Se;it(St,1,ie.Z),it(St,2,ie.$),it(St,3,ie.height),it(St,4,ie.width),it(St,5,ie.rotation),it(St,6,ie.X);var Ht=ie=new Ge;Ue(Ht,1,xt(St,1)),Ue(Ht,2,xt(St,2)),Ue(Ht,3,xt(St,3)),Ue(Ht,4,xt(St,4)),Ue(Ht,5,xt(St,5));var kt=xt(St,6);if(kt!=null&&kt!=null){Pt(Ht.g,48);var Nt=Ht.g,jt=kt;kt=0>jt,jt=Math.abs(jt);var i=jt>>>0;for(jt=Math.floor((jt-i)/4294967296),jt>>>=0,kt&&(jt=~jt>>>0,i=(~i>>>0)+1,4294967295<i&&(i=0,jt++,4294967295<jt&&(jt=0))),re=i,pe=jt,kt=re,i=pe;0<i||127<kt;)Nt.push(kt&127|128),kt=(kt>>>7|i<<25)>>>0,i>>>=7;Nt.push(kt)}if(Kt(St,Ht),ie=xe(ie),Dt.call(Fe,He,ie),Ut.O)for(Fe=0;Fe<Ut.O.length;++Fe)St=Ut.O[Fe],Ht=!!St.visibility,Dt=ot.data,He=Dt.addNormalizedLandmark,ie=wt,St=Object.assign(Object.assign({},St),{visibility:Ht?St.visibility:0}),Ht=new Qe,it(Ht,1,St.x),it(Ht,2,St.y),it(Ht,3,St.z),St.visibility&&it(Ht,4,St.visibility),Nt=St=new Ge,Ue(Nt,1,xt(Ht,1)),Ue(Nt,2,xt(Ht,2)),Ue(Nt,3,xt(Ht,3)),Ue(Nt,4,xt(Ht,4)),Ue(Nt,5,xt(Ht,5)),Kt(Ht,Nt),St=xe(St),He.call(Dt,ie,St);if(Ut.M)for(Fe=0;Fe<Ut.M.length;++Fe){if(Dt=ot.data,He=Dt.addClassification,ie=wt,St=Ut.M[Fe],Ht=new Le,it(Ht,2,St.Y),St.index&&it(Ht,1,St.index),St.label&&it(Ht,3,St.label),St.displayName&&it(Ht,4,St.displayName),Nt=St=new Ge,i=xt(Ht,1),i!=null&&i!=null)if(Pt(Nt.g,8),kt=Nt.g,0<=i)Pt(kt,i);else{for(jt=0;9>jt;jt++)kt.push(i&127|128),i>>=7;kt.push(1)}Ue(Nt,2,xt(Ht,2)),kt=xt(Ht,3),kt!=null&&(kt=vn(kt),Pt(Nt.g,26),Pt(Nt.g,kt.length),Yt(Nt,Nt.g.end()),Yt(Nt,kt)),kt=xt(Ht,4),kt!=null&&(kt=vn(kt),Pt(Nt.g,34),Pt(Nt.g,kt.length),Yt(Nt,Nt.g.end()),Yt(Nt,kt)),Kt(Ht,Nt),St=xe(St),He.call(Dt,ie,St)}}ot=ot.data;break t;default:ot={}}}switch(ft=ot,zt=nt.stream,nt.type){case"video":j.pushTexture2d(Object.assign(Object.assign({},ft),{stream:zt,timestamp:L}));break;case"detections":Lt=ft,Lt.stream=zt,Lt.timestamp=L,j.pushDetectionList(Lt);break;default:throw Error("Unknown input config type: '"+nt.type+"'")}}return w.i.send(j),P(Zt,w.C,4);case 4:j.delete(),Zt.g=0}})})};function D(l,f,m){return Tt(l,function w(){var L,j,N,A,_,nt,ft=this,zt,Lt,Zt,ot,pt,wt,Ut,Fe;return Ot(w,function(Dt){switch(Dt.g){case 1:if(!m)return Dt.return(f);for(L={},j=0,N=U(Object.keys(m)),A=N.next();!A.done;A=N.next())_=A.value,nt=m[_],typeof nt!="string"&&nt.type==="texture"&&f[nt.stream]!==void 0&&++j;1<j&&(ft.G=!1),zt=U(Object.keys(m)),A=zt.next();case 2:if(A.done){Dt.g=4;break}if(Lt=A.value,Zt=m[Lt],typeof Zt=="string")return Ut=L,Fe=Lt,P(Dt,rt(ft,Lt,f[Zt]),14);if(ot=f[Zt.stream],Zt.type==="detection_list"){if(ot){for(var He=ot.getRectList(),ie=ot.getLandmarksList(),St=ot.getClassificationsList(),Ht=[],kt=0;kt<He.size();++kt){var Nt=He.get(kt);t:{var jt=new Se;for(Nt=new he(Nt);ve(Nt);)switch(Nt.i){case 13:var i=_t(Nt);it(jt,1,i);break;case 21:i=_t(Nt),it(jt,2,i);break;case 29:i=_t(Nt),it(jt,3,i);break;case 37:i=_t(Nt),it(jt,4,i);break;case 45:i=_t(Nt),it(jt,5,i);break;case 48:i=ue(Nt.g),it(jt,6,i);break;default:if(!Vt(jt,Nt))break t}}jt={Z:at(jt,1),$:at(jt,2),height:at(jt,3),width:at(jt,4),rotation:at(jt,5,0),X:Bt(jt,6,0)},Nt=Ie(Wn(ie.get(kt)),Qe).map(gn);var p=St.get(kt);t:for(i=new Ae,p=new he(p);ve(p);)switch(p.i){case 10:i.addClassification(me(p,new Le,mn));break;default:if(!Vt(i,p))break t}jt={T:jt,O:Nt,M:on(i)},Ht.push(jt)}He=Ht}else He=[];L[Lt]=He,Dt.g=7;break}if(Zt.type==="proto_list"){if(ot){for(He=Array(ot.size()),ie=0;ie<ot.size();ie++)He[ie]=ot.get(ie);ot.delete()}else He=[];L[Lt]=He,Dt.g=7;break}if(ot===void 0){Dt.g=3;break}if(Zt.type==="float_list"){L[Lt]=ot,Dt.g=7;break}if(Zt.type==="proto"){L[Lt]=ot,Dt.g=7;break}if(Zt.type!=="texture")throw Error("Unknown output config type: '"+Zt.type+"'");return pt=ft.s[Lt],pt||(pt=new Fn(ft.h,ft.D),ft.s[Lt]=pt),P(Dt,Ne(pt,ot,ft.G),13);case 13:wt=Dt.h,L[Lt]=wt;case 7:Zt.transform&&L[Lt]&&(L[Lt]=Zt.transform(L[Lt])),Dt.g=3;break;case 14:Ut[Fe]=Dt.h;case 3:A=zt.next(),Dt.g=2;break;case 4:return Dt.return(L)}})})}function rt(l,f,m){return Tt(l,function w(){var L=this,j;return Ot(w,function(N){return typeof m=="number"||m instanceof Uint8Array||m instanceof L.h.Uint8BlobList?N.return(m):m instanceof L.h.Texture2dDataOut?(j=L.s[f],j||(j=new Fn(L.h,L.D),L.s[f]=j),N.return(Ne(j,m,L.G))):N.return(void 0)})})}function dt(l,f){for(var m=f.name||"$",w=[].concat(et(f.wants)),L=new l.h.StringList,j=U(f.wants),N=j.next();!N.done;N=j.next())L.push_back(N.value);j=l.h.PacketListener.implement({onResults:function(A){for(var _={},nt=0;nt<f.wants.length;++nt)_[w[nt]]=A.get(nt);var ft=l.listeners[m];ft&&(l.C=D(l,_,f.outs).then(function(zt){zt=ft(zt);for(var Lt=0;Lt<f.wants.length;++Lt){var Zt=_[w[Lt]];typeof Zt=="object"&&Zt.hasOwnProperty&&Zt.hasOwnProperty("delete")&&Zt.delete()}zt&&(l.C=zt)}))}}),l.i.attachMultiListener(L,j),L.delete()}X.onResults=function(l,f){this.listeners[f||"$"]=l},de("Solution",v),de("OptionType",{BOOL:0,NUMBER:1,aa:2,0:"BOOL",1:"NUMBER",2:"STRING"});function ct(l){l=Vn(l);var f=l.getMesh();if(!f)return l;var m=new Float32Array(f.getVertexBufferList());f.getVertexBufferList=function(){return m};var w=new Uint32Array(f.getIndexBufferList());return f.getIndexBufferList=function(){return w},l}var Xt={files:[{url:"face_mesh_solution_packed_assets_loader.js"},{simd:!0,url:"face_mesh_solution_simd_wasm_bin.js"},{simd:!1,url:"face_mesh_solution_wasm_bin.js"}],graph:{url:"face_mesh.binarypb"},listeners:[{wants:["multi_face_geometry","image_transformed","multi_face_landmarks"],outs:{image:"image_transformed",multiFaceGeometry:{type:"proto_list",stream:"multi_face_geometry",transform:function(l){return l.map(ct)}},multiFaceLandmarks:{type:"proto_list",stream:"multi_face_landmarks",transform:function(l){return l.map(function(f){return Ie(Wn(f),Qe).map(gn)})}}}}],inputs:{image:{type:"video",stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},enableFaceGeometry:{type:0,graphOptionXref:{calculatorName:"EnableFaceGeometryConstant",calculatorType:"ConstantSidePacketCalculator",fieldName:"bool_value"}},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},maxNumFaces:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorNumFaces",fieldName:"int_value"}},refineLandmarks:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorRefineLandmarks",fieldName:"bool_value"}},minDetectionConfidence:{type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"facelandmarkfrontgpu__facedetectionshortrangegpu__facedetectionshortrangecommon__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"facelandmarkfrontgpu__facelandmarkgpu__ThresholdingCalculator",fieldName:"threshold"}},cameraNear:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"near"}},cameraFar:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"far"}},cameraVerticalFovDegrees:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"vertical_fov_degrees"}}}},lt=[[61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]],st=[[263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]],ht=[[276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]],bt=[[33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]],Jt=[[46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]],Ct=[[10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]],At=[].concat(et(lt),et(st),et(ht),et(bt),et(Jt),et(Ct));function Ze(l){l=l||{},l=Object.assign(Object.assign({},Xt),l),this.g=new v(l)}X=Ze.prototype,X.close=function(){return this.g.close(),Promise.resolve()},X.onResults=function(l){this.g.onResults(l)},X.initialize=function(){return Tt(this,function l(){var f=this;return Ot(l,function(m){return P(m,f.g.initialize(),0)})})},X.reset=function(){this.g.reset()},X.send=function(l){return Tt(this,function f(){var m=this;return Ot(f,function(w){return P(w,m.g.send(l),0)})})},X.setOptions=function(l){this.g.setOptions(l)},de("FACE_GEOMETRY",{Layout:{COLUMN_MAJOR:0,ROW_MAJOR:1,0:"COLUMN_MAJOR",1:"ROW_MAJOR"},PrimitiveType:{TRIANGLE:0,0:"TRIANGLE"},VertexType:{VERTEX_PT:0,0:"VERTEX_PT"},DEFAULT_CAMERA_PARAMS:{verticalFovDegrees:63,near:1,far:1e4}}),de("FaceMesh",Ze),de("FACEMESH_LIPS",lt),de("FACEMESH_LEFT_EYE",st),de("FACEMESH_LEFT_EYEBROW",ht),de("FACEMESH_LEFT_IRIS",[[474,475],[475,476],[476,477],[477,474]]),de("FACEMESH_RIGHT_EYE",bt),de("FACEMESH_RIGHT_EYEBROW",Jt),de("FACEMESH_RIGHT_IRIS",[[469,470],[470,471],[471,472],[472,469]]),de("FACEMESH_FACE_OVAL",Ct),de("FACEMESH_CONTOURS",At),de("FACEMESH_TESSELATION",[[127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]]),de("matrixDataToMatrix",function(l){for(var f=l.getCols(),m=l.getRows(),w=l.getPackedDataList(),L=[],j=0;j<m;j++)L.push(Array(f));for(j=0;j<m;j++)for(var N=0;N<f;N++){var A=l.getLayout()===1?j*f+N:N*m+j;L[j][N]=w[A]}return L}),de("VERSION","0.4.1633559619")}.call(cn),globalThis.VonageFaceMashVersion=globalThis.VERSION,globalThis.VonageFaceMash=globalThis.FaceMesh,function(){var X;function g(n){var s=0;return function(){return s<n.length?{done:!1,value:n[s++]}:{done:!0}}}var G=typeof Object.defineProperties=="function"?Object.defineProperty:function(n,s,d){return n==Array.prototype||n==Object.prototype||(n[s]=d.value),n};function S(n){n=[typeof globalThis=="object"&&globalThis,n,typeof window=="object"&&window,typeof self=="object"&&self,typeof cn=="object"&&cn];for(var s=0;s<n.length;++s){var d=n[s];if(d&&d.Math==Math)return d}throw Error("Cannot find global object")}var T=S(this);function J(n,s){if(s)t:{var d=T;n=n.split(".");for(var e=0;e<n.length-1;e++){var o=n[e];if(!(o in d))break t;d=d[o]}n=n[n.length-1],e=d[n],s=s(e),s!=e&&s!=null&&G(d,n,{configurable:!0,writable:!0,value:s})}}J("Symbol",function(n){function s(c){if(this instanceof s)throw new TypeError("Symbol is not a constructor");return new d(e+(c||"")+"_"+o++,c)}function d(c,t){this.g=c,G(this,"description",{configurable:!0,writable:!0,value:t})}if(n)return n;d.prototype.toString=function(){return this.g};var e="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",o=0;return s}),J("Symbol.iterator",function(n){if(n)return n;n=Symbol("Symbol.iterator");for(var s="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),d=0;d<s.length;d++){var e=T[s[d]];typeof e=="function"&&typeof e.prototype[n]!="function"&&G(e.prototype,n,{configurable:!0,writable:!0,value:function(){return K(g(this))}})}return n});function K(n){return n={next:n},n[Symbol.iterator]=function(){return this},n}function U(n){var s=typeof Symbol!="undefined"&&Symbol.iterator&&n[Symbol.iterator];return s?s.call(n):{next:g(n)}}function et(n){if(!(n instanceof Array)){n=U(n);for(var s,d=[];!(s=n.next()).done;)d.push(s.value);n=d}return n}var Ye=typeof Object.create=="function"?Object.create:function(n){function s(){}return s.prototype=n,new s},tt;if(typeof Object.setPrototypeOf=="function")tt=Object.setPrototypeOf;else{var Ft;t:{var Pe={a:!0},se={};try{se.__proto__=Pe,Ft=se.a;break t}catch{}Ft=!1}tt=Ft?function(n,s){if(n.__proto__=s,n.__proto__!==s)throw new TypeError(n+" is not extensible");return n}:null}var Je=tt;function yt(n,s){if(n.prototype=Ye(s.prototype),n.prototype.constructor=n,Je)Je(n,s);else for(var d in s)if(d!="prototype")if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(s,d);e&&Object.defineProperty(n,d,e)}else n[d]=s[d];n.na=s.prototype}function $t(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.u=this.o=0,this.j=null}function fe(n){if(n.l)throw new TypeError("Generator is already running");n.l=!0}$t.prototype.s=function(n){this.h=n};function ae(n,s){n.j={da:s,ea:!0},n.g=n.o||n.u}$t.prototype.return=function(n){this.j={return:n},this.g=this.u};function P(n,s,d){return n.g=d,{value:s}}function Sn(n){this.g=new $t,this.h=n}function En(n,s){fe(n.g);var d=n.g.i;return d?Ce(n,"return"in d?d.return:function(e){return{value:e,done:!0}},s,n.g.return):(n.g.return(s),qt(n))}function Ce(n,s,d,e){try{var o=s.call(n.g.i,d);if(!(o instanceof Object))throw new TypeError("Iterator result "+o+" is not an object");if(!o.done)return n.g.l=!1,o;var c=o.value}catch(t){return n.g.i=null,ae(n.g,t),qt(n)}return n.g.i=null,e.call(n.g,c),qt(n)}function qt(n){for(;n.g.g;)try{var s=n.h(n.g);if(s)return n.g.l=!1,{value:s.value,done:!1}}catch(d){n.g.h=void 0,ae(n.g,d)}if(n.g.l=!1,n.g.j){if(s=n.g.j,n.g.j=null,s.ea)throw s.da;return{value:s.return,done:!0}}return{value:void 0,done:!0}}function Hn(n){this.next=function(s){return fe(n.g),n.g.i?s=Ce(n,n.g.i.next,s,n.g.s):(n.g.s(s),s=qt(n)),s},this.throw=function(s){return fe(n.g),n.g.i?s=Ce(n,n.g.i.throw,s,n.g.s):(ae(n.g,s),s=qt(n)),s},this.return=function(s){return En(n,s)},this[Symbol.iterator]=function(){return this}}function Ot(n){function s(e){return n.next(e)}function d(e){return n.throw(e)}return new Promise(function(e,o){function c(t){t.done?e(t.value):Promise.resolve(t.value).then(s,d).then(c,o)}c(n.next())})}function ut(n){return Ot(new Hn(new Sn(n)))}J("Promise",function(n){function s(t){this.h=0,this.i=void 0,this.g=[],this.s=!1;var r=this.j();try{t(r.resolve,r.reject)}catch(u){r.reject(u)}}function d(){this.g=null}function e(t){return t instanceof s?t:new s(function(r){r(t)})}if(n)return n;d.prototype.h=function(t){if(this.g==null){this.g=[];var r=this;this.i(function(){r.l()})}this.g.push(t)};var o=T.setTimeout;d.prototype.i=function(t){o(t,0)},d.prototype.l=function(){for(;this.g&&this.g.length;){var t=this.g;this.g=[];for(var r=0;r<t.length;++r){var u=t[r];t[r]=null;try{u()}catch(h){this.j(h)}}}this.g=null},d.prototype.j=function(t){this.i(function(){throw t})},s.prototype.j=function(){function t(h){return function(Z){u||(u=!0,h.call(r,Z))}}var r=this,u=!1;return{resolve:t(this.D),reject:t(this.l)}},s.prototype.D=function(t){if(t===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(t instanceof s)this.H(t);else{t:switch(typeof t){case"object":var r=t!=null;break t;case"function":r=!0;break t;default:r=!1}r?this.A(t):this.o(t)}},s.prototype.A=function(t){var r=void 0;try{r=t.then}catch(u){this.l(u);return}typeof r=="function"?this.I(r,t):this.o(t)},s.prototype.l=function(t){this.u(2,t)},s.prototype.o=function(t){this.u(1,t)},s.prototype.u=function(t,r){if(this.h!=0)throw Error("Cannot settle("+t+", "+r+"): Promise already settled in state"+this.h);this.h=t,this.i=r,this.h===2&&this.G(),this.B()},s.prototype.G=function(){var t=this;o(function(){if(t.C()){var r=T.console;typeof r!="undefined"&&r.error(t.i)}},1)},s.prototype.C=function(){if(this.s)return!1;var t=T.CustomEvent,r=T.Event,u=T.dispatchEvent;return typeof u=="undefined"?!0:(typeof t=="function"?t=new t("unhandledrejection",{cancelable:!0}):typeof r=="function"?t=new r("unhandledrejection",{cancelable:!0}):(t=T.document.createEvent("CustomEvent"),t.initCustomEvent("unhandledrejection",!1,!0,t)),t.promise=this,t.reason=this.i,u(t))},s.prototype.B=function(){if(this.g!=null){for(var t=0;t<this.g.length;++t)c.h(this.g[t]);this.g=null}};var c=new d;return s.prototype.H=function(t){var r=this.j();t.M(r.resolve,r.reject)},s.prototype.I=function(t,r){var u=this.j();try{t.call(r,u.resolve,u.reject)}catch(h){u.reject(h)}},s.prototype.then=function(t,r){function u(V,I){return typeof V=="function"?function(Y){try{h(V(Y))}catch(H){Z(H)}}:I}var h,Z,R=new s(function(V,I){h=V,Z=I});return this.M(u(t,h),u(r,Z)),R},s.prototype.catch=function(t){return this.then(void 0,t)},s.prototype.M=function(t,r){function u(){switch(h.h){case 1:t(h.i);break;case 2:r(h.i);break;default:throw Error("Unexpected state: "+h.h)}}var h=this;this.g==null?c.h(u):this.g.push(u),this.s=!0},s.resolve=e,s.reject=function(t){return new s(function(r,u){u(t)})},s.race=function(t){return new s(function(r,u){for(var h=U(t),Z=h.next();!Z.done;Z=h.next())e(Z.value).M(r,u)})},s.all=function(t){var r=U(t),u=r.next();return u.done?e([]):new s(function(h,Z){function R(Y){return function(H){V[Y]=H,I--,I==0&&h(V)}}var V=[],I=0;do V.push(void 0),I++,e(u.value).M(R(V.length-1),Z),u=r.next();while(!u.done)})},s});function Cn(n,s){n instanceof String&&(n+="");var d=0,e=!1,o={next:function(){if(!e&&d<n.length){var c=d++;return{value:s(c,n[c]),done:!1}}return e=!0,{done:!0,value:void 0}}};return o[Symbol.iterator]=function(){return o},o}var jn=typeof Object.assign=="function"?Object.assign:function(n,s){for(var d=1;d<arguments.length;d++){var e=arguments[d];if(e)for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=e[o])}return n};J("Object.assign",function(n){return n||jn}),J("Object.is",function(n){return n||function(s,d){return s===d?s!==0||1/s===1/d:s!==s&&d!==d}}),J("Array.prototype.includes",function(n){return n||function(s,d){var e=this;e instanceof String&&(e=String(e));var o=e.length;for(d=d||0,0>d&&(d=Math.max(d+o,0));d<o;d++){var c=e[d];if(c===s||Object.is(c,s))return!0}return!1}}),J("String.prototype.includes",function(n){return n||function(s,d){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(s instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(s,d||0)!==-1}}),J("Array.prototype.keys",function(n){return n||function(){return Cn(this,function(s){return s})}});var de=this||self;function vt(n,s){n=n.split(".");var d=de;n[0]in d||typeof d.execScript=="undefined"||d.execScript("var "+n[0]);for(var e;n.length&&(e=n.shift());)n.length||s===void 0?d[e]&&d[e]!==Object.prototype[e]?d=d[e]:d=d[e]={}:d[e]=s}function ye(){throw Error("Invalid UTF8")}function an(n,s){return s=String.fromCharCode.apply(null,s),n==null?s:n+s}var hn,In=typeof TextDecoder!="undefined",vn,Ln=typeof TextEncoder!="undefined",Be={},nn=null;function Nn(n){var s;s===void 0&&(s=0),dn(),s=Be[s];for(var d=Array(Math.floor(n.length/3)),e=s[64]||"",o=0,c=0;o<n.length-2;o+=3){var t=n[o],r=n[o+1],u=n[o+2],h=s[t>>2];t=s[(t&3)<<4|r>>4],r=s[(r&15)<<2|u>>6],u=s[u&63],d[c++]=h+t+r+u}switch(h=0,u=e,n.length-o){case 2:h=n[o+1],u=s[(h&15)<<2]||e;case 1:n=n[o],d[c]=s[n>>2]+s[(n&3)<<4|h>>4]+u+e}return d.join("")}function Tn(n){var s=n.length,d=3*s/4;d%3?d=Math.floor(d):"=.".indexOf(n[s-1])!=-1&&(d="=.".indexOf(n[s-2])!=-1?d-2:d-1);var e=new Uint8Array(d),o=0;return fn(n,function(c){e[o++]=c}),o!==d?e.subarray(0,o):e}function fn(n,s){function d(u){for(;e<n.length;){var h=n.charAt(e++),Z=nn[h];if(Z!=null)return Z;if(!/^[\s\xa0]*$/.test(h))throw Error("Unknown base64 encoding at char: "+h)}return u}dn();for(var e=0;;){var o=d(-1),c=d(0),t=d(64),r=d(64);if(r===64&&o===-1)break;s(o<<2|c>>4),t!=64&&(s(c<<4&240|t>>2),r!=64&&s(t<<6&192|r))}}function dn(){if(!nn){nn={};for(var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),s=["+/=","+/","-_=","-_.","-_"],d=0;5>d;d++){var e=n.concat(s[d].split(""));Be[d]=e;for(var o=0;o<e.length;o++){var c=e[o];nn[c]===void 0&&(nn[c]=o)}}}}var bn=typeof Uint8Array=="function";function pn(n){return bn&&n!=null&&n instanceof Uint8Array}var re;function pe(n){if(this.L=n,n!==null&&n.length===0)throw Error("ByteString should be constructed with non-empty values")}var ze=typeof Uint8Array.prototype.slice=="function",oe=0,ue=0;function je(n,s){if(n.constructor===Uint8Array)return n;if(n.constructor===ArrayBuffer)return new Uint8Array(n);if(n.constructor===Array)return new Uint8Array(n);if(n.constructor===String)return Tn(n);if(n.constructor===pe)return!s&&(s=n.L)&&s.constructor===Uint8Array?s:(s=n.L,s=s==null||pn(s)?s:typeof s=="string"?Tn(s):null,(n=n.L=s)?new Uint8Array(n):re||(re=new Uint8Array(0)));if(n instanceof Uint8Array)return new Uint8Array(n.buffer,n.byteOffset,n.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function Ve(n,s){return Error("Invalid wire type: "+n+" (at position "+s+")")}function Pt(){return Error("Failed to read varint, encoding is invalid.")}function he(n,s){s=s===void 0?{}:s,s=s.v===void 0?!1:s.v,this.h=null,this.g=this.i=this.j=0,this.v=s,n&&ve(this,n)}function ve(n,s){n.h=je(s,n.v),n.j=0,n.i=n.h.length,n.g=n.j}he.prototype.reset=function(){this.g=this.j};function gt(n){if(n.g>n.i)throw Error("Tried to read past the end of the data "+n.g+" > "+n.i)}function me(n){var s=n.h,d=s[n.g],e=d&127;if(128>d)return n.g+=1,gt(n),e;if(d=s[n.g+1],e|=(d&127)<<7,128>d)return n.g+=2,gt(n),e;if(d=s[n.g+2],e|=(d&127)<<14,128>d)return n.g+=3,gt(n),e;if(d=s[n.g+3],e|=(d&127)<<21,128>d)return n.g+=4,gt(n),e;if(d=s[n.g+4],n.g+=5,e|=(d&15)<<28,128>d)return gt(n),e;if(128<=s[n.g++]&&128<=s[n.g++]&&128<=s[n.g++]&&128<=s[n.g++]&&128<=s[n.g++])throw Pt();return gt(n),e}var _t=[];function te(){this.g=[]}te.prototype.length=function(){return this.g.length},te.prototype.end=function(){var n=this.g;return this.g=[],n};function be(n,s){for(;127<s;)n.g.push(s&127|128),s>>>=7;n.g.push(s)}function _e(n){var s={},d=s.W===void 0?!1:s.W;this.l={v:s.v===void 0?!1:s.v},this.W=d,s=this.l,_t.length?(d=_t.pop(),s&&(d.v=s.v),n&&ve(d,n),n=d):n=new he(n,s),this.g=n,this.j=this.g.g,this.h=this.i=-1}_e.prototype.reset=function(){this.g.reset(),this.j=this.g.g,this.h=this.i=-1};function Ge(n){var s=n.g;if(s.g==s.i)return!1;n.j=n.g.g;var d=me(n.g)>>>0;if(s=d>>>3,d&=7,!(0<=d&&5>=d))throw Ve(d,n.j);if(1>s)throw Error("Invalid field number: "+s+" (at position "+n.j+")");return n.i=s,n.h=d,!0}function Yt(n){switch(n.h){case 0:if(n.h!=0)Yt(n);else t:{n=n.g;for(var s=n.g,d=s+10;s<d;)if((n.h[s++]&128)===0){n.g=s,gt(n);break t}throw Pt()}break;case 1:n=n.g,n.g+=8,gt(n);break;case 2:n.h!=2?Yt(n):(s=me(n.g)>>>0,n=n.g,n.g+=s,gt(n));break;case 5:n=n.g,n.g+=4,gt(n);break;case 3:s=n.i;do{if(!Ge(n))throw Error("Unmatched start-group tag: stream EOF");if(n.h==4){if(n.i!=s)throw Error("Unmatched end-group tag");break}Yt(n)}while(1);break;default:throw Ve(n.h,n.j)}}var xe=[];function Ue(){this.i=[],this.h=0,this.g=new te}function Xe(n,s){s.length!==0&&(n.i.push(s),n.h+=s.length)}function Xn(n,s){if(s=s.ba){Xe(n,n.g.end());for(var d=0;d<s.length;d++)Xe(n,s[d])}}var rn=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function $e(n,s){Object.isFrozen(n)||(rn?n[rn]|=s:n.N!==void 0?n.N|=s:Object.defineProperties(n,{N:{value:s,configurable:!0,writable:!0,enumerable:!1}}))}function Zn(n){var s;return rn?s=n[rn]:s=n.N,s==null?0:s}function Mt(n){return $e(n,1),n}function Re(n){return Array.isArray(n)?!!(Zn(n)&2):!1}function Qt(n){if(!Array.isArray(n))throw Error("cannot mark non-array as immutable");$e(n,2)}function Et(n){return n!==null&&typeof n=="object"&&!Array.isArray(n)&&n.constructor===Object}var qe=Object.freeze(Mt([]));function xt(n){if(Re(n.m))throw Error("Cannot mutate an immutable Message")}var Gt=typeof Symbol!="undefined"&&typeof Symbol.hasInstance!="undefined";function un(n){return{value:n,configurable:!1,writable:!1,enumerable:!1}}function Bt(n,s,d){return s===-1?null:s>=n.i?n.g?n.g[s]:void 0:(d===void 0?0:d)&&n.g&&(d=n.g[s],d!=null)?d:n.m[s+n.h]}function at(n,s,d,e){e=e===void 0?!1:e,xt(n),s<n.i&&!e?n.m[s+n.h]=d:(n.g||(n.g=n.m[n.i+n.h]={}))[s]=d}function it(n,s,d,e){d=d===void 0?!0:d,e=e===void 0?!1:e;var o=Bt(n,s,e);return o==null&&(o=qe),Re(n.m)?d&&(Qt(o),Object.freeze(o)):(o===qe||Re(o))&&(o=Mt(o.slice()),at(n,s,o,e)),o}function ee(n,s,d){return n=Bt(n,s),n=n==null?n:+n,n==null?d===void 0?0:d:n}function Ie(n,s,d,e){n.j||(n.j={});var o=Re(n.m),c=n.j[d];if(!c){e=it(n,d,!0,e===void 0?!1:e),c=[],o=o||Re(e);for(var t=0;t<e.length;t++)c[t]=new s(e[t]),o&&Qt(c[t].m);o&&(Qt(c),Object.freeze(c)),n.j[d]=c}return c}function It(n,s,d,e,o){var c=c===void 0?!1:c;return xt(n),c=Ie(n,d,s,c),d=e||new d,n=it(n,s),o!=null?(c.splice(o,0,d),n.splice(o,0,d.m)):(c.push(d),n.push(d.m)),d}function ne(n,s){return n=Bt(n,s),n==null?0:n}function we(n,s){return n=Bt(n,s),n==null?"":n}function Kt(n){switch(typeof n){case"number":return isFinite(n)?n:String(n);case"object":if(n&&!Array.isArray(n)){if(pn(n))return Nn(n);if(n instanceof pe){var s=n.L;return s=s==null||typeof s=="string"?s:bn&&s instanceof Uint8Array?Nn(s):null,(n.L=s)||""}}}return n}function Vt(n){var s=Ee;return s=s===void 0?Tt:s,ke(n,s)}function Ke(n,s){if(n!=null){if(Array.isArray(n))n=ke(n,s);else if(Et(n)){var d={},e;for(e in n)d[e]=Ke(n[e],s);n=d}else n=s(n);return n}}function ke(n,s){for(var d=n.slice(),e=0;e<d.length;e++)d[e]=Ke(d[e],s);return Array.isArray(n)&&Zn(n)&1&&Mt(d),d}function Ee(n){return n&&typeof n=="object"&&n.toJSON?n.toJSON():(n=Kt(n),Array.isArray(n)?Vt(n):n)}function Tt(n){return pn(n)?new Uint8Array(n):n}function Le(n,s,d){n||(n=mn),mn=null;var e=this.constructor.h;n||(n=e?[e]:[]),this.h=(e?0:-1)-(this.constructor.g||0),this.j=void 0,this.m=n;t:{if(e=this.m.length,n=e-1,e&&(e=this.m[n],Et(e))){this.i=n-this.h,this.g=e;break t}s!==void 0&&-1<s?(this.i=Math.max(s,n+1-this.h),this.g=void 0):this.i=Number.MAX_VALUE}if(d)for(s=0;s<d.length;s++)if(n=d[s],n<this.i)n+=this.h,(e=this.m[n])?Array.isArray(e)&&Mt(e):this.m[n]=qe;else{e=this.g||(this.g=this.m[this.i+this.h]={});var o=e[n];o?Array.isArray(o)&&Mt(o):e[n]=qe}}Le.prototype.toJSON=function(){return Vt(this.m)},Le.prototype.toString=function(){return this.m.toString()};var mn;function Ae(){Le.apply(this,arguments)}if(yt(Ae,Le),Gt){var Me={};Object.defineProperties(Ae,(Me[Symbol.hasInstance]=un(function(){throw Error("Cannot perform instanceof checks for MutableMessage")}),Me))}function Qe(n,s,d){if(d){var e={},o;for(o in d){var c=d[o],t=c.ha;t||(e.F=c.la||c.fa.P,c.aa?(e.U=Rn(c.aa),t=function(r){return function(u,h,Z){return r.F(u,h,Z,r.U)}}(e)):c.ca?(e.T=We(c.X.g,c.ca),t=function(r){return function(u,h,Z){return r.F(u,h,Z,r.T)}}(e)):t=e.F,c.ha=t),t(s,n,c.X),e={F:e.F,U:e.U,T:e.T}}}Xn(s,n)}var tn=Symbol();function De(n,s,d){return n[tn]||(n[tn]=function(e,o){return s(e,o,d)})}function Wn(n){var s=n[tn];if(!s){var d=a(n);s=function(e,o){return y(e,o,d)},n[tn]=s}return s}function Yn(n){var s=n.aa;if(s)return Wn(s);if(s=n.ka)return De(n.X.g,s,n.ca)}function Se(n){var s=Yn(n),d=n.X,e=n.fa.O;return s?function(o,c){return e(o,c,d,s)}:function(o,c){return e(o,c,d)}}function ge(n,s,d,e,o,c){n=n();var t=0;for(n.length&&typeof n[0]!="number"&&(d(s,n[0]),t++);t<n.length;){d=n[t++];for(var r=t+1;r<n.length&&typeof n[r]!="number";)r++;var u=n[t++];switch(r-=t,r){case 0:e(s,d,u);break;case 1:e(s,d,u,n[t++]);break;case 2:o(s,d,u,n[t++],n[t++]);break;case 3:r=n[t++];var h=n[t++],Z=n[t++];Array.isArray(Z)?o(s,d,u,r,h,Z):c(s,d,u,r,h,Z);break;case 4:c(s,d,u,n[t++],n[t++],n[t++],n[t++]);break;default:throw Error("unexpected number of binary field arguments: "+r)}}return s}var en=Symbol();function Rn(n){var s=n[en];if(!s){var d=Ne(n);s=function(e,o){return F(e,o,d)},n[en]=s}return s}function We(n,s){var d=n[en];return d||(d=function(e,o){return Qe(e,o,s)},n[en]=d),d}var Vn=Symbol();function Te(n,s){n.push(s)}function on(n,s,d){n.push(s,d.P)}function gn(n,s,d,e,o){var c=Rn(o),t=d.P;n.push(s,function(r,u,h){return t(r,u,h,e,c)})}function Fn(n,s,d,e,o,c){var t=We(e,c),r=d.P;n.push(s,function(u,h,Z){return r(u,h,Z,e,t)})}function Ne(n){var s=n[Vn];return s||ge(n,n[Vn]=[],Te,on,gn,Fn)}var wn=Symbol();function Kn(n,s){n[0]=s}function kn(n,s,d,e){var o=d.O;n[s]=e?function(c,t,r){return o(c,t,r,e)}:o}function sn(n,s,d,e,o,c){var t=d.O,r=Wn(o);n[s]=function(u,h,Z){return t(u,h,Z,e,r,c)}}function Gn(n,s,d,e,o,c,t){var r=d.O,u=De(e,o,c);n[s]=function(h,Z,R){return r(h,Z,R,e,u,t)}}function a(n){var s=n[wn];return s||ge(n,n[wn]={},Kn,kn,sn,Gn)}function y(n,s,d){for(;Ge(s)&&s.h!=4;){var e=s.i,o=d[e];if(!o){var c=d[0];c&&(c=c[e])&&(o=d[e]=Se(c))}if((!o||!o(s,n,e))&&(o=s,e=n,c=o.j,Yt(o),!o.W)){var t=o.g.h;o=o.g.g,o=c===o?re||(re=new Uint8Array(0)):ze?t.slice(c,o):new Uint8Array(t.subarray(c,o)),(c=e.ba)?c.push(o):e.ba=[o]}}return n}function v(n,s,d){if(xe.length){var e=xe.pop();n&&(ve(e.g,n),e.i=-1,e.h=-1),n=e}else n=new _e(n);try{return y(new s,n,a(d))}finally{s=n.g,s.h=null,s.j=0,s.i=0,s.g=0,s.v=!1,n.i=-1,n.h=-1,100>xe.length&&xe.push(n)}}function F(n,s,d){for(var e=d.length,o=e%2==1,c=o?1:0;c<e;c+=2)(0,d[c+1])(s,n,d[c]);Qe(n,s,o?d[0]:void 0)}function E(n,s){var d=new Ue;F(n,d,Ne(s)),Xe(d,d.g.end()),n=new Uint8Array(d.h),s=d.i;for(var e=s.length,o=0,c=0;c<e;c++){var t=s[c];n.set(t,o),o+=t.length}return d.i=[n],n}function B(n,s){return{O:n,P:s}}var k=B(function(n,s,d){if(n.h!==5)return!1;n=n.g;var e=n.h[n.g],o=n.h[n.g+1],c=n.h[n.g+2],t=n.h[n.g+3];return n.g+=4,gt(n),o=(e<<0|o<<8|c<<16|t<<24)>>>0,n=2*(o>>31)+1,e=o>>>23&255,o&=8388607,at(s,d,e==255?o?NaN:1/0*n:e==0?n*Math.pow(2,-149)*o:n*Math.pow(2,e-150)*(o+Math.pow(2,23))),!0},function(n,s,d){if(s=Bt(s,d),s!=null){be(n.g,8*d+5),n=n.g;var e=s;e=(d=0>e?1:0)?-e:e,e===0?0<1/e?oe=ue=0:(ue=0,oe=2147483648):isNaN(e)?(ue=0,oe=2147483647):34028234663852886e22<e?(ue=0,oe=(d<<31|2139095040)>>>0):11754943508222875e-54>e?(e=Math.round(e/Math.pow(2,-149)),ue=0,oe=(d<<31|e)>>>0):(s=Math.floor(Math.log(e)/Math.LN2),e*=Math.pow(2,-s),e=Math.round(8388608*e),16777216<=e&&++s,ue=0,oe=(d<<31|s+127<<23|e&8388607)>>>0),d=oe,n.g.push(d>>>0&255),n.g.push(d>>>8&255),n.g.push(d>>>16&255),n.g.push(d>>>24&255)}}),O=B(function(n,s,d){if(n.h!==0)return!1;for(var e=n.g,o=128,c=0,t=n=0;4>t&&128<=o;t++)o=e.h[e.g++],gt(e),c|=(o&127)<<7*t;if(128<=o&&(o=e.h[e.g++],gt(e),c|=(o&127)<<28,n|=(o&127)>>4),128<=o)for(t=0;5>t&&128<=o;t++)o=e.h[e.g++],gt(e),n|=(o&127)<<7*t+3;if(128>o)e=c>>>0,o=n>>>0,(n=o&2147483648)&&(e=~e+1>>>0,o=~o>>>0,e==0&&(o=o+1>>>0)),e=4294967296*o+(e>>>0);else throw Pt();return at(s,d,n?-e:e),!0},function(n,s,d){if(s=Bt(s,d),s!=null&&s!=null){be(n.g,8*d),n=n.g;var e=s;for(d=0>e,e=Math.abs(e),s=e>>>0,e=Math.floor((e-s)/4294967296),e>>>=0,d&&(e=~e>>>0,s=(~s>>>0)+1,4294967295<s&&(s=0,e++,4294967295<e&&(e=0))),oe=s,ue=e,d=oe,s=ue;0<s||127<d;)n.g.push(d&127|128),d=(d>>>7|s<<25)>>>0,s>>>=7;n.g.push(d)}}),D=B(function(n,s,d){return n.h!==0?!1:(at(s,d,me(n.g)),!0)},function(n,s,d){if(s=Bt(s,d),s!=null&&s!=null)if(be(n.g,8*d),n=n.g,d=s,0<=d)be(n,d);else{for(s=0;9>s;s++)n.g.push(d&127|128),d>>=7;n.g.push(1)}}),rt=B(function(n,s,d){if(n.h!==2)return!1;var e=me(n.g)>>>0;n=n.g;var o=n.g;n.g+=e,gt(n),n=n.h;var c;if(In)(c=hn)||(c=hn=new TextDecoder("utf-8",{fatal:!0})),c=c.decode(n.subarray(o,o+e));else{e=o+e;for(var t=[],r=null,u,h,Z;o<e;)u=n[o++],128>u?t.push(u):224>u?o>=e?ye():(h=n[o++],194>u||(h&192)!==128?(o--,ye()):t.push((u&31)<<6|h&63)):240>u?o>=e-1?ye():(h=n[o++],(h&192)!==128||u===224&&160>h||u===237&&160<=h||((c=n[o++])&192)!==128?(o--,ye()):t.push((u&15)<<12|(h&63)<<6|c&63)):244>=u?o>=e-2?ye():(h=n[o++],(h&192)!==128||(u<<28)+(h-144)>>30!==0||((c=n[o++])&192)!==128||((Z=n[o++])&192)!==128?(o--,ye()):(u=(u&7)<<18|(h&63)<<12|(c&63)<<6|Z&63,u-=65536,t.push((u>>10&1023)+55296,(u&1023)+56320))):ye(),8192<=t.length&&(r=an(r,t),t.length=0);c=an(r,t)}return at(s,d,c),!0},function(n,s,d){if(s=Bt(s,d),s!=null){var e=!1;if(e=e===void 0?!1:e,Ln){if(e&&/(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])/.test(s))throw Error("Found an unpaired surrogate");s=(vn||(vn=new TextEncoder)).encode(s)}else{for(var o=0,c=new Uint8Array(3*s.length),t=0;t<s.length;t++){var r=s.charCodeAt(t);if(128>r)c[o++]=r;else{if(2048>r)c[o++]=r>>6|192;else{if(55296<=r&&57343>=r){if(56319>=r&&t<s.length){var u=s.charCodeAt(++t);if(56320<=u&&57343>=u){r=1024*(r-55296)+u-56320+65536,c[o++]=r>>18|240,c[o++]=r>>12&63|128,c[o++]=r>>6&63|128,c[o++]=r&63|128;continue}else t--}if(e)throw Error("Found an unpaired surrogate");r=65533}c[o++]=r>>12|224,c[o++]=r>>6&63|128}c[o++]=r&63|128}}s=c.subarray(0,o)}be(n.g,8*d+2),be(n.g,s.length),Xe(n,n.g.end()),Xe(n,s)}}),dt=B(function(n,s,d,e,o){if(n.h!==2)return!1;s=It(s,d,e),d=n.g.i,e=me(n.g)>>>0;var c=n.g.g+e,t=c-d;if(0>=t&&(n.g.i=c,o(s,n),t=c-n.g.g),t)throw Error("Message parsing ended unexpectedly. Expected to read "+(e+" bytes, instead read "+(e-t)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return n.g.g=c,n.g.i=d,!0},function(n,s,d,e,o){if(s=Ie(s,e,d),s!=null)for(e=0;e<s.length;e++){var c=n;be(c.g,8*d+2);var t=c.g.end();Xe(c,t),t.push(c.h),c=t,o(s[e],n),t=n;var r=c.pop();for(r=t.h+t.g.length()-r;127<r;)c.push(r&127|128),r>>>=7,t.h++;c.push(r),t.h++}});function ct(){Ae.apply(this,arguments)}if(yt(ct,Ae),Gt){var Xt={};Object.defineProperties(ct,(Xt[Symbol.hasInstance]=un(Object[Symbol.hasInstance]),Xt))}function lt(n){ct.call(this,n)}yt(lt,ct);function st(){return[1,D,2,k,3,rt,4,rt]}function ht(n){ct.call(this,n,-1,Jt)}yt(ht,ct),ht.prototype.addClassification=function(n,s){return It(this,1,lt,n,s),this};function bt(){return[1,dt,lt,st]}var Jt=[1];function Ct(n){ct.call(this,n)}yt(Ct,ct);function At(){return[1,k,2,k,3,k,4,k,5,k]}function Ze(n){ct.call(this,n,-1,f)}yt(Ze,ct);function l(){return[1,dt,Ct,At]}var f=[1];function m(n){ct.call(this,n)}yt(m,ct);function w(){return[1,k,2,k,3,k,4,k,5,k,6,O]}var L=[[61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]],j=[[263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]],N=[[276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]],A=[[33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]],_=[[46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]],nt=[[10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]],ft=[].concat(et(L),et(j),et(N),et(A),et(_),et(nt));function zt(n,s,d){if(d=n.createShader(d===0?n.VERTEX_SHADER:n.FRAGMENT_SHADER),n.shaderSource(d,s),n.compileShader(d),!n.getShaderParameter(d,n.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
38
|
+
`+R.getProgramInfoLog(n));w=i.o=n,R.useProgram(w),E=R.getUniformLocation(w,"sampler0"),i.j={K:R.getAttribLocation(w,"aVertex"),J:R.getAttribLocation(w,"aTex"),qa:E},i.u=R.createBuffer(),R.bindBuffer(R.ARRAY_BUFFER,i.u),R.enableVertexAttribArray(i.j.K),R.vertexAttribPointer(i.j.K,2,R.FLOAT,!1,0,0),R.bufferData(R.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),R.STATIC_DRAW),R.bindBuffer(R.ARRAY_BUFFER,null),i.s=R.createBuffer(),R.bindBuffer(R.ARRAY_BUFFER,i.s),R.enableVertexAttribArray(i.j.J),R.vertexAttribPointer(i.j.J,2,R.FLOAT,!1,0,0),R.bufferData(R.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),R.STATIC_DRAW),R.bindBuffer(R.ARRAY_BUFFER,null),R.uniform1i(E,0)}w=i.j,R.useProgram(i.o),R.canvas.width=g.width,R.canvas.height=g.height,R.viewport(0,0,g.width,g.height),R.activeTexture(R.TEXTURE0),i.h.bindTexture2d(g.glName),R.enableVertexAttribArray(w.K),R.bindBuffer(R.ARRAY_BUFFER,i.u),R.vertexAttribPointer(w.K,2,R.FLOAT,!1,0,0),R.enableVertexAttribArray(w.J),R.bindBuffer(R.ARRAY_BUFFER,i.s),R.vertexAttribPointer(w.J,2,R.FLOAT,!1,0,0),R.bindFramebuffer(R.DRAW_FRAMEBUFFER?R.DRAW_FRAMEBUFFER:R.FRAMEBUFFER,null),R.clearColor(0,0,0,0),R.clear(R.COLOR_BUFFER_BIT),R.colorMask(!0,!0,!0,!0),R.drawArrays(R.TRIANGLE_FAN,0,4),R.disableVertexAttribArray(w.K),R.disableVertexAttribArray(w.J),R.bindBuffer(R.ARRAY_BUFFER,null),i.h.bindTexture2d(0)}function G(i){this.g=i}var S=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function N(i,g){return g+i}function J(i,g){window[i]=g}function k(i){var g=document.createElement("script");return g.setAttribute("src",i),g.setAttribute("crossorigin","anonymous"),new Promise(function(R){g.addEventListener("load",function(){R()},!1),g.addEventListener("error",function(){R()},!1),document.body.appendChild(g)})}function q(){return ht(function(i){switch(i.g){case 1:return i.o=2,$(i,WebAssembly.instantiate(S),4);case 4:i.g=3,i.o=0;break;case 2:return i.o=0,i.j=null,i.return(!1);case 3:return i.return(!0)}})}function z(i){if(this.g=i,this.listeners={},this.j={},this.H={},this.o={},this.u={},this.I=this.s=this.$=!0,this.D=Promise.resolve(),this.Z="",this.C={},this.locateFile=i&&i.locateFile||N,typeof window=="object")var g=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")g=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.aa=g,i.options){g=C(Object.keys(i.options));for(var R=g.next();!R.done;R=g.next()){R=R.value;var w=i.options[R].default;w!==void 0&&(this.j[R]=typeof w=="function"?w():w)}}}V=z.prototype,V.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function lt(i){var g,R,w,E,n,l,d,e,u,a,t;return ht(function(o){switch(o.g){case 1:return i.$?(g=i.g.files===void 0?[]:typeof i.g.files=="function"?i.g.files(i.j):i.g.files,$(o,q(),2)):o.return();case 2:if(R=o.h,typeof window=="object")return J("createMediapipeSolutionsWasm",{locateFile:i.locateFile}),J("createMediapipeSolutionsPackedAssets",{locateFile:i.locateFile}),l=g.filter(function(s){return s.data!==void 0}),d=g.filter(function(s){return s.data===void 0}),e=Promise.all(l.map(function(s){var h=yt(i,s.url);if(s.path!==void 0){var X=s.path;h=h.then(function(T){return i.overrideFile(X,T),Promise.resolve(T)})}return h})),u=Promise.all(d.map(function(s){return s.simd===void 0||s.simd&&R||!s.simd&&!R?k(i.locateFile(s.url,i.aa)):Promise.resolve()})).then(function(){var s,h,X;return ht(function(T){if(T.g==1)return s=window.createMediapipeSolutionsWasm,h=window.createMediapipeSolutionsPackedAssets,X=i,$(T,s(h),2);X.h=T.h,T.g=0})}),a=function(){return ht(function(s){return i.g.graph&&i.g.graph.url?s=$(s,yt(i,i.g.graph.url),0):(s.g=0,s=void 0),s})}(),$(o,Promise.all([u,e,a]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return w=g.filter(function(s){return s.simd===void 0||s.simd&&R||!s.simd&&!R}).map(function(s){return i.locateFile(s.url,i.aa)}),importScripts.apply(null,pt(w)),E=i,$(o,createMediapipeSolutionsWasm(Module),6);case 6:E.h=o.h,i.l=new OffscreenCanvas(1,1),i.h.canvas=i.l,n=i.h.GL.createContext(i.l,{antialias:!1,alpha:!1,na:typeof WebGL2RenderingContext!="undefined"?2:1}),i.h.GL.makeContextCurrent(n),o.g=4;break;case 7:if(i.l=document.createElement("canvas"),t=i.l.getContext("webgl2",{}),!t&&(t=i.l.getContext("webgl",{}),!t))return alert("Failed to create WebGL canvas context when passing video frame."),o.return();i.G=t,i.h.canvas=i.l,i.h.createContext(i.l,!0,!0,{});case 4:i.i=new i.h.SolutionWasm,i.$=!1,o.g=0}})}function dt(i){var g,R,w,E,n,l,d,e;return ht(function(u){if(u.g==1){if(i.g.graph&&i.g.graph.url&&i.Z===i.g.graph.url)return u.return();if(i.s=!0,!i.g.graph||!i.g.graph.url){u.g=2;return}return i.Z=i.g.graph.url,$(u,yt(i,i.g.graph.url),3)}for(u.g!=2&&(g=u.h,i.i.loadGraph(g)),R=C(Object.keys(i.C)),w=R.next();!w.done;w=R.next())E=w.value,i.i.overrideFile(E,i.C[E]);if(i.C={},i.g.listeners)for(n=C(i.g.listeners),l=n.next();!l.done;l=n.next())d=l.value,vt(i,d);e=i.j,i.j={},i.setOptions(e),u.g=0})}V.reset=function(){var i=this;return ht(function(g){i.i&&(i.i.reset(),i.o={},i.u={}),g.g=0})},V.setOptions=function(i,g){var R=this;if(g=g||this.g.options){for(var w=[],E=[],n={},l=C(Object.keys(i)),d=l.next();!d.done;n={R:n.R,S:n.S},d=l.next()){var e=d.value;e in this.j&&this.j[e]===i[e]||(this.j[e]=i[e],d=g[e],d!==void 0&&(d.onChange&&(n.R=d.onChange,n.S=i[e],w.push(function(u){return function(){var a;return ht(function(t){if(t.g==1)return $(t,u.R(u.S),2);a=t.h,a===!0&&(R.s=!0),t.g=0})}}(n))),d.graphOptionXref&&(e={valueNumber:d.type===1?i[e]:0,valueBoolean:d.type===0?i[e]:!1,valueString:d.type===2?i[e]:""},d=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),d.graphOptionXref),e),E.push(d))))}(w.length!==0||E.length!==0)&&(this.s=!0,this.B=(this.B===void 0?[]:this.B).concat(E),this.A=(this.A===void 0?[]:this.A).concat(w))}};function xt(i){var g,R,w,E,n,l,d;return ht(function(e){switch(e.g){case 1:if(!i.s)return e.return();if(!i.A){e.g=2;break}g=C(i.A),R=g.next();case 3:if(R.done){e.g=5;break}return w=R.value,$(e,w(),4);case 4:R=g.next(),e.g=3;break;case 5:i.A=void 0;case 2:if(i.B){for(E=new i.h.GraphOptionChangeRequestList,n=C(i.B),l=n.next();!l.done;l=n.next())d=l.value,E.push_back(d);i.i.changeOptions(E),E.delete(),i.B=void 0}i.s=!1,e.g=0}})}V.initialize=function(){var i=this;return ht(function(g){return g.g==1?$(g,lt(i),2):g.g!=3?$(g,dt(i),3):$(g,xt(i),0)})};function yt(i,g){var R,w;return ht(function(E){return g in i.H?E.return(i.H[g]):(R=i.locateFile(g,""),w=fetch(R).then(function(n){return n.arrayBuffer()}),i.H[g]=w,E.return(w))})}V.overrideFile=function(i,g){this.i?this.i.overrideFile(i,g):this.C[i]=g},V.clearOverriddenFiles=function(){this.C={},this.i&&this.i.clearOverriddenFiles()},V.send=function(i,g){var R=this,w,E,n,l,d,e,u,a,t;return ht(function(o){switch(o.g){case 1:return R.g.inputs?(w=1e3*(g==null?performance.now():g),$(o,R.D,2)):o.return();case 2:return $(o,R.initialize(),3);case 3:for(E=new R.h.PacketDataList,n=C(Object.keys(i)),l=n.next();!l.done;l=n.next())if(d=l.value,e=R.g.inputs[d]){t:{var s=i[d];switch(e.type){case"video":var h=R.o[e.stream];if(h||(h=new rt(R.h,R.G),R.o[e.stream]=h),h.l===0&&(h.l=h.h.createTexture()),typeof HTMLVideoElement!="undefined"&&s instanceof HTMLVideoElement)var X=s.videoWidth,T=s.videoHeight;else typeof HTMLImageElement!="undefined"&&s instanceof HTMLImageElement?(X=s.naturalWidth,T=s.naturalHeight):(X=s.width,T=s.height);T={glName:h.l,width:X,height:T},X=h.g,X.canvas.width=T.width,X.canvas.height=T.height,X.activeTexture(X.TEXTURE0),h.h.bindTexture2d(h.l),X.texImage2D(X.TEXTURE_2D,0,X.RGBA,X.RGBA,X.UNSIGNED_BYTE,s),h.h.bindTexture2d(0),h=T;break t;case"detections":for(h=R.o[e.stream],h||(h=new G(R.h),R.o[e.stream]=h),h.data||(h.data=new h.g.DetectionListData),h.data.reset(s.length),T=0;T<s.length;++T){X=s[T];var F=h.data,U=F.setBoundingBox,O=T,B=X.ea,M=new m;if(Vt(M,1,B.ka),Vt(M,2,B.la),Vt(M,3,B.height),Vt(M,4,B.width),Vt(M,5,B.rotation),Vt(M,6,B.ia),B=_(M,L),U.call(F,O,B),X.Y)for(F=0;F<X.Y.length;++F){M=X.Y[F];var nt=!!M.visibility;U=h.data,O=U.addNormalizedLandmark,B=T,M=Object.assign(Object.assign({},M),{visibility:nt?M.visibility:0}),nt=new Dt,Vt(nt,1,M.x),Vt(nt,2,M.y),Vt(nt,3,M.z),M.visibility&&Vt(nt,4,M.visibility),M=_(nt,qt),O.call(U,B,M)}if(X.V)for(F=0;F<X.V.length;++F)U=h.data,O=U.addClassification,B=T,M=X.V[F],nt=new Wt,Vt(nt,2,M.score),M.index&&Vt(nt,1,M.index),M.label&&Vt(nt,3,M.label),M.displayName&&Vt(nt,4,M.displayName),M=_(nt,Zt),O.call(U,B,M)}h=h.data;break t;default:h={}}}switch(u=h,a=e.stream,e.type){case"video":E.pushTexture2d(Object.assign(Object.assign({},u),{stream:a,timestamp:w}));break;case"detections":t=u,t.stream=a,t.timestamp=w,E.pushDetectionList(t);break;default:throw Error("Unknown input config type: '"+e.type+"'")}}return R.i.send(E),$(o,R.D,4);case 4:E.delete(),o.g=0}})};function it(i,g,R){var w,E,n,l,d,e,u,a,t,o,s,h,X,T;return ht(function(F){switch(F.g){case 1:if(!R)return F.return(g);for(w={},E=0,n=C(Object.keys(R)),l=n.next();!l.done;l=n.next())d=l.value,e=R[d],typeof e!="string"&&e.type==="texture"&&g[e.stream]!==void 0&&++E;1<E&&(i.I=!1),u=C(Object.keys(R)),l=u.next();case 2:if(l.done){F.g=4;break}if(a=l.value,t=R[a],typeof t=="string")return X=w,T=a,$(F,gt(i,a,g[t]),14);if(o=g[t.stream],t.type==="detection_list"){if(o){for(var U=o.getRectList(),O=o.getLandmarksList(),B=o.getClassificationsList(),M=[],nt=0;nt<U.size();++nt){var ot=Z(U.get(nt),m,L);ot={ea:{ka:zt(ot,1),la:zt(ot,2),height:zt(ot,3),width:zt(ot,4),rotation:zt(ot,5,0),ia:Qt(ot,6)},Y:Fe(Z(O.get(nt),Ze,c),Dt,1).map(j),V:P(Z(B.get(nt),Tt,Et))},M.push(ot)}U=M}else U=[];w[a]=U,F.g=7;break}if(t.type==="proto_list"){if(o){for(U=Array(o.size()),O=0;O<o.size();O++)U[O]=o.get(O);o.delete()}else U=[];w[a]=U,F.g=7;break}if(o===void 0){F.g=3;break}if(t.type==="float_list"){w[a]=o,F.g=7;break}if(t.type==="proto"){w[a]=o,F.g=7;break}if(t.type!=="texture")throw Error("Unknown output config type: '"+t.type+"'");return s=i.u[a],s||(s=new rt(i.h,i.G),i.u[a]=s),$(F,r(s,o,i.I),13);case 13:h=F.h,w[a]=h;case 7:t.transform&&w[a]&&(w[a]=t.transform(w[a])),F.g=3;break;case 14:X[T]=F.h;case 3:l=u.next(),F.g=2;break;case 4:return F.return(w)}})}function gt(i,g,R){var w;return ht(function(E){return typeof R=="number"||R instanceof Uint8Array||R instanceof i.h.Uint8BlobList?E.return(R):R instanceof i.h.Texture2dDataOut?(w=i.u[g],w||(w=new rt(i.h,i.G),i.u[g]=w),E.return(r(w,R,i.I))):E.return(void 0)})}function vt(i,g){for(var R=g.name||"$",w=[].concat(pt(g.wants)),E=new i.h.StringList,n=C(g.wants),l=n.next();!l.done;l=n.next())E.push_back(l.value);n=i.h.PacketListener.implement({onResults:function(d){for(var e={},u=0;u<g.wants.length;++u)e[w[u]]=d.get(u);var a=i.listeners[R];a&&(i.D=it(i,e,g.outs).then(function(t){t=a(t);for(var o=0;o<g.wants.length;++o){var s=e[w[o]];typeof s=="object"&&s.hasOwnProperty&&s.hasOwnProperty("delete")&&s.delete()}t&&(i.D=t)}))}}),i.i.attachMultiListener(E,n),E.delete()}V.onResults=function(i,g){this.listeners[g||"$"]=i},St("Solution",z),St("OptionType",{BOOL:0,NUMBER:1,ma:2,0:"BOOL",1:"NUMBER",2:"STRING"});function Gt(i){return i===void 0&&(i=0),i===1?"hand_landmark_full.tflite":"hand_landmark_lite.tflite"}function Xt(i){var g=this;i=i||{},this.g=new z({locateFile:i.locateFile,files:function(R){return[{url:"hands_solution_packed_assets_loader.js"},{simd:!1,url:"hands_solution_wasm_bin.js"},{simd:!0,url:"hands_solution_simd_wasm_bin.js"},{data:!0,url:Gt(R.modelComplexity)}]},graph:{url:"hands.binarypb"},inputs:{image:{type:"video",stream:"input_frames_gpu"}},listeners:[{wants:["multi_hand_landmarks","multi_hand_world_landmarks","image_transformed","multi_handedness"],outs:{image:"image_transformed",multiHandLandmarks:{type:"proto_list",stream:"multi_hand_landmarks",transform:D},multiHandWorldLandmarks:{type:"proto_list",stream:"multi_hand_world_landmarks",transform:D},multiHandedness:{type:"proto_list",stream:"multi_handedness",transform:function(R){return R.map(function(w){return P(Z(w,Tt,Et))[0]})}}}}],options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:typeof window!="object"||window.navigator===void 0?!1:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},maxNumHands:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculator",fieldName:"int_value"}},modelComplexity:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelComplexity",fieldName:"int_value"},onChange:function(R){var w,E,n;return ht(function(l){return l.g==1?(w=Gt(R),E="third_party/mediapipe/modules/hand_landmark/"+w,$(l,yt(g.g,w),2)):(n=l.h,g.g.overrideFile(E,n),l.return(!0))})}},minDetectionConfidence:{type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"handlandmarktrackinggpu__palmdetectiongpu__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"handlandmarktrackinggpu__handlandmarkgpu__ThresholdingCalculator",fieldName:"threshold"}}}})}V=Xt.prototype,V.close=function(){return this.g.close(),Promise.resolve()},V.onResults=function(i){this.g.onResults(i)},V.initialize=function(){var i=this;return ht(function(g){return $(g,i.g.initialize(),0)})},V.reset=function(){this.g.reset()},V.send=function(i){var g=this;return ht(function(R){return $(R,g.g.send(i),0)})},V.setOptions=function(i){this.g.setOptions(i)},St("Hands",Xt),St("HAND_CONNECTIONS",[[0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[0,17],[17,18],[18,19],[19,20]]),St("VERSION","0.4.1646424915")}).call(Tr);var Fr={};(function(){var V;function v(e){var u=0;return function(){return u<e.length?{done:!1,value:e[u++]}:{done:!0}}}var W=typeof Object.defineProperties=="function"?Object.defineProperty:function(e,u,a){return e==Array.prototype||e==Object.prototype||(e[u]=a.value),e};function I(e){e=[typeof globalThis=="object"&&globalThis,e,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var u=0;u<e.length;++u){var a=e[u];if(a&&a.Math==Math)return a}throw Error("Cannot find global object")}var x=I(this);function A(e,u){if(u)t:{var a=x;e=e.split(".");for(var t=0;t<e.length-1;t++){var o=e[t];if(!(o in a))break t;a=a[o]}e=e[e.length-1],t=a[e],u=u(t),u!=t&&u!=null&&W(a,e,{configurable:!0,writable:!0,value:u})}}A("Symbol",function(e){function u(s){if(this instanceof u)throw new TypeError("Symbol is not a constructor");return new a(t+(s||"")+"_"+o++,s)}function a(s,h){this.g=s,W(this,"description",{configurable:!0,writable:!0,value:h})}if(e)return e;a.prototype.toString=function(){return this.g};var t="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",o=0;return u}),A("Symbol.iterator",function(e){if(e)return e;e=Symbol("Symbol.iterator");for(var u="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),a=0;a<u.length;a++){var t=x[u[a]];typeof t=="function"&&typeof t.prototype[e]!="function"&&W(t.prototype,e,{configurable:!0,writable:!0,value:function(){return Q(v(this))}})}return e});function Q(e){return e={next:e},e[Symbol.iterator]=function(){return this},e}function C(e){var u=typeof Symbol!="undefined"&&Symbol.iterator&&e[Symbol.iterator];return u?u.call(e):{next:v(e)}}function pt(e){if(!(e instanceof Array)){e=C(e);for(var u,a=[];!(u=e.next()).done;)a.push(u.value);e=a}return e}var _e=typeof Object.create=="function"?Object.create:function(e){function u(){}return u.prototype=e,new u},ct;if(typeof Object.setPrototypeOf=="function")ct=Object.setPrototypeOf;else{var jt;t:{var qe={a:!0},fe={};try{fe.__proto__=qe,jt=fe.a;break t}catch{}jt=!1}ct=jt?function(e,u){if(e.__proto__=u,e.__proto__!==u)throw new TypeError(e+" is not extensible");return e}:null}var He=ct;function Lt(e,u){if(e.prototype=_e(u.prototype),e.prototype.constructor=e,He)He(e,u);else for(var a in u)if(a!="prototype")if(Object.defineProperties){var t=Object.getOwnPropertyDescriptor(u,a);t&&Object.defineProperty(e,a,t)}else e[a]=u[a];e.da=u.prototype}function ue(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function pe(e){if(e.l)throw new TypeError("Generator is already running");e.l=!0}ue.prototype.o=function(e){this.h=e};function he(e,u){e.j={U:u,V:!0},e.g=e.m||e.s}ue.prototype.return=function(e){this.j={return:e},this.g=this.s};function $(e,u,a){return e.g=a,{value:u}}function Fn(e){this.g=new ue,this.h=e}function Hn(e,u){pe(e.g);var a=e.g.i;return a?je(e,"return"in a?a.return:function(t){return{value:t,done:!0}},u,e.g.return):(e.g.return(u),ee(e))}function je(e,u,a,t){try{var o=u.call(e.g.i,a);if(!(o instanceof Object))throw new TypeError("Iterator result "+o+" is not an object");if(!o.done)return e.g.l=!1,o;var s=o.value}catch(h){return e.g.i=null,he(e.g,h),ee(e)}return e.g.i=null,t.call(e.g,s),ee(e)}function ee(e){for(;e.g.g;)try{var u=e.h(e.g);if(u)return e.g.l=!1,{value:u.value,done:!1}}catch(a){e.g.h=void 0,he(e.g,a)}if(e.g.l=!1,e.g.j){if(u=e.g.j,e.g.j=null,u.V)throw u.U;return{value:u.return,done:!0}}return{value:void 0,done:!0}}function jn(e){this.next=function(u){return pe(e.g),e.g.i?u=je(e,e.g.i.next,u,e.g.o):(e.g.o(u),u=ee(e)),u},this.throw=function(u){return pe(e.g),e.g.i?u=je(e,e.g.i.throw,u,e.g.o):(he(e.g,u),u=ee(e)),u},this.return=function(u){return Hn(e,u)},this[Symbol.iterator]=function(){return this}}function te(e){function u(t){return e.next(t)}function a(t){return e.throw(t)}return new Promise(function(t,o){function s(h){h.done?t(h.value):Promise.resolve(h.value).then(u,a).then(s,o)}s(e.next())})}function ht(e){return te(new jn(new Fn(e)))}A("Promise",function(e){function u(h){this.h=0,this.i=void 0,this.g=[],this.o=!1;var X=this.j();try{h(X.resolve,X.reject)}catch(T){X.reject(T)}}function a(){this.g=null}function t(h){return h instanceof u?h:new u(function(X){X(h)})}if(e)return e;a.prototype.h=function(h){if(this.g==null){this.g=[];var X=this;this.i(function(){X.l()})}this.g.push(h)};var o=x.setTimeout;a.prototype.i=function(h){o(h,0)},a.prototype.l=function(){for(;this.g&&this.g.length;){var h=this.g;this.g=[];for(var X=0;X<h.length;++X){var T=h[X];h[X]=null;try{T()}catch(F){this.j(F)}}}this.g=null},a.prototype.j=function(h){this.i(function(){throw h})},u.prototype.j=function(){function h(F){return function(U){T||(T=!0,F.call(X,U))}}var X=this,T=!1;return{resolve:h(this.C),reject:h(this.l)}},u.prototype.C=function(h){if(h===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(h instanceof u)this.F(h);else{t:switch(typeof h){case"object":var X=h!=null;break t;case"function":X=!0;break t;default:X=!1}X?this.v(h):this.m(h)}},u.prototype.v=function(h){var X=void 0;try{X=h.then}catch(T){this.l(T);return}typeof X=="function"?this.G(X,h):this.m(h)},u.prototype.l=function(h){this.s(2,h)},u.prototype.m=function(h){this.s(1,h)},u.prototype.s=function(h,X){if(this.h!=0)throw Error("Cannot settle("+h+", "+X+"): Promise already settled in state"+this.h);this.h=h,this.i=X,this.h===2&&this.D(),this.A()},u.prototype.D=function(){var h=this;o(function(){if(h.B()){var X=x.console;typeof X!="undefined"&&X.error(h.i)}},1)},u.prototype.B=function(){if(this.o)return!1;var h=x.CustomEvent,X=x.Event,T=x.dispatchEvent;return typeof T=="undefined"?!0:(typeof h=="function"?h=new h("unhandledrejection",{cancelable:!0}):typeof X=="function"?h=new X("unhandledrejection",{cancelable:!0}):(h=x.document.createEvent("CustomEvent"),h.initCustomEvent("unhandledrejection",!1,!0,h)),h.promise=this,h.reason=this.i,T(h))},u.prototype.A=function(){if(this.g!=null){for(var h=0;h<this.g.length;++h)s.h(this.g[h]);this.g=null}};var s=new a;return u.prototype.F=function(h){var X=this.j();h.J(X.resolve,X.reject)},u.prototype.G=function(h,X){var T=this.j();try{h.call(X,T.resolve,T.reject)}catch(F){T.reject(F)}},u.prototype.then=function(h,X){function T(B,M){return typeof B=="function"?function(nt){try{F(B(nt))}catch(ot){U(ot)}}:M}var F,U,O=new u(function(B,M){F=B,U=M});return this.J(T(h,F),T(X,U)),O},u.prototype.catch=function(h){return this.then(void 0,h)},u.prototype.J=function(h,X){function T(){switch(F.h){case 1:h(F.i);break;case 2:X(F.i);break;default:throw Error("Unexpected state: "+F.h)}}var F=this;this.g==null?s.h(T):this.g.push(T),this.o=!0},u.resolve=t,u.reject=function(h){return new u(function(X,T){T(h)})},u.race=function(h){return new u(function(X,T){for(var F=C(h),U=F.next();!U.done;U=F.next())t(U.value).J(X,T)})},u.all=function(h){var X=C(h),T=X.next();return T.done?t([]):new u(function(F,U){function O(nt){return function(ot){B[nt]=ot,M--,M==0&&F(B)}}var B=[],M=0;do B.push(void 0),M++,t(T.value).J(O(B.length-1),U),T=X.next();while(!T.done)})},u});function Jn(e,u){e instanceof String&&(e+="");var a=0,t=!1,o={next:function(){if(!t&&a<e.length){var s=a++;return{value:u(s,e[s]),done:!1}}return t=!0,{done:!0,value:void 0}}};return o[Symbol.iterator]=function(){return o},o}var Cn=typeof Object.assign=="function"?Object.assign:function(e,u){for(var a=1;a<arguments.length;a++){var t=arguments[a];if(t)for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e};A("Object.assign",function(e){return e||Cn}),A("Object.is",function(e){return e||function(u,a){return u===a?u!==0||1/u===1/a:u!==u&&a!==a}}),A("Array.prototype.includes",function(e){return e||function(u,a){var t=this;t instanceof String&&(t=String(t));var o=t.length;for(a=a||0,0>a&&(a=Math.max(a+o,0));a<o;a++){var s=t[a];if(s===u||Object.is(s,u))return!0}return!1}}),A("String.prototype.includes",function(e){return e||function(u,a){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(u instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(u,a||0)!==-1}}),A("Array.prototype.keys",function(e){return e||function(){return Jn(this,function(u){return u})}});var ye=this||self;function St(e,u){e=e.split(".");var a=ye;e[0]in a||typeof a.execScript=="undefined"||a.execScript("var "+e[0]);for(var t;e.length&&(t=e.shift());)e.length||u===void 0?a[t]&&a[t]!==Object.prototype[t]?a=a[t]:a=a[t]={}:a[t]=u}function We(e){ye.setTimeout(function(){throw e},0)}function tn(e){We(e)}function hn(e,u){tn(Error("Invalid wire type: "+e+" (at position "+u+")"))}function Wn(){tn(Error("Failed to read varint, encoding is invalid."))}function bn(e,u){return u=String.fromCharCode.apply(null,u),e==null?u:e+u}var xn,en=typeof TextDecoder!="undefined",un,In=typeof TextEncoder!="undefined";function Vn(e){if(In)e=(un||(un=new TextEncoder)).encode(e);else{var u=void 0;u=u===void 0?!1:u;for(var a=0,t=new Uint8Array(3*e.length),o=0;o<e.length;o++){var s=e.charCodeAt(o);if(128>s)t[a++]=s;else{if(2048>s)t[a++]=s>>6|192;else{if(55296<=s&&57343>=s){if(56319>=s&&o<e.length){var h=e.charCodeAt(++o);if(56320<=h&&57343>=h){s=1024*(s-55296)+h-56320+65536,t[a++]=s>>18|240,t[a++]=s>>12&63|128,t[a++]=s>>6&63|128,t[a++]=s&63|128;continue}else o--}if(u)throw Error("Found an unpaired surrogate");s=65533}t[a++]=s>>12|224,t[a++]=s>>6&63|128}t[a++]=s&63|128}}e=t.subarray(0,a)}return e}var pn={},nn=null;function Zn(e){var u;u===void 0&&(u=0),ve(),u=pn[u];for(var a=Array(Math.floor(e.length/3)),t=u[64]||"",o=0,s=0;o<e.length-2;o+=3){var h=e[o],X=e[o+1],T=e[o+2],F=u[h>>2];h=u[(h&3)<<4|X>>4],X=u[(X&15)<<2|T>>6],T=u[T&63],a[s++]=F+h+X+T}switch(F=0,T=t,e.length-o){case 2:F=e[o+1],T=u[(F&15)<<2]||t;case 1:e=e[o],a[s]=u[e>>2]+u[(e&3)<<4|F>>4]+T+t}return a.join("")}function dn(e){var u=e.length,a=3*u/4;a%3?a=Math.floor(a):"=.".indexOf(e[u-1])!=-1&&(a="=.".indexOf(e[u-2])!=-1?a-2:a-1);var t=new Uint8Array(a),o=0;return ce(e,function(s){t[o++]=s}),t.subarray(0,o)}function ce(e,u){function a(T){for(;t<e.length;){var F=e.charAt(t++),U=nn[F];if(U!=null)return U;if(!/^[\s\xa0]*$/.test(F))throw Error("Unknown base64 encoding at char: "+F)}return T}ve();for(var t=0;;){var o=a(-1),s=a(0),h=a(64),X=a(64);if(X===64&&o===-1)break;u(o<<2|s>>4),h!=64&&(u(s<<4&240|h>>2),X!=64&&u(h<<6&192|X))}}function ve(){if(!nn){nn={};for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),u=["+/=","+/","-_=","-_.","-_"],a=0;5>a;a++){var t=e.concat(u[a].split(""));pn[a]=t;for(var o=0;o<t.length;o++){var s=t[o];nn[s]===void 0&&(nn[s]=o)}}}}var Pe=typeof Uint8Array=="function",le;function ae(e){if(this.g=e,e!==null&&e.length===0)throw Error("ByteString should be constructed with non-empty values")}ae.prototype.toJSON=function(){if(this.g==null)var e="";else e=this.g,e=this.g=e==null||typeof e=="string"?e:Pe&&e instanceof Uint8Array?Zn(e):null;return e};var ze=typeof Uint8Array.prototype.slice=="function";function xe(e,u,a){return u===a?le||(le=new Uint8Array(0)):ze?e.slice(u,a):new Uint8Array(e.subarray(u,a))}var Ct=0,re=0;function Ve(e){if(e.constructor===Uint8Array)return e;if(e.constructor===ArrayBuffer)return new Uint8Array(e);if(e.constructor===Array)return new Uint8Array(e);if(e.constructor===String)return dn(e);if(e.constructor===ae){if(e.g==null)var u=le||(le=new Uint8Array(0));else{u=Uint8Array;var a=e.g;a=a==null||Pe&&a!=null&&a instanceof Uint8Array?a:typeof a=="string"?dn(a):null,e=e.g=a,u=new u(e)}return u}if(e instanceof Uint8Array)return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function It(e,u){u=u===void 0?{}:u,u=u.u===void 0?!1:u.u,this.h=null,this.g=this.i=this.m=0,this.l=!1,this.u=u,e&&de(this,e)}function de(e,u){e.h=Ve(u),e.m=0,e.i=e.h.length,e.g=e.m}It.prototype.reset=function(){this.g=this.m};function At(e){for(var u=128,a=0,t=0,o=0;4>o&&128<=u;o++)u=e.h[e.g++],a|=(u&127)<<7*o;if(128<=u&&(u=e.h[e.g++],a|=(u&127)<<28,t|=(u&127)>>4),128<=u)for(o=0;5>o&&128<=u;o++)u=e.h[e.g++],t|=(u&127)<<7*o+3;if(128>u)return e=a>>>0,u=t>>>0,(t=u&2147483648)&&(e=~e+1>>>0,u=~u>>>0,e==0&&(u=u+1>>>0)),e=4294967296*u+(e>>>0),t?-e:e;e.l=!0,Wn()}function ne(e){e.g>e.i&&(e.l=!0,tn(Error("Tried to read past the end of the data "+e.g+" > "+e.i)))}It.prototype.j=function(){var e=this.h,u=e[this.g],a=u&127;return 128>u?(this.g+=1,ne(this),a):(u=e[this.g+1],a|=(u&127)<<7,128>u?(this.g+=2,ne(this),a):(u=e[this.g+2],a|=(u&127)<<14,128>u?(this.g+=3,ne(this),a):(u=e[this.g+3],a|=(u&127)<<21,128>u?(this.g+=4,ne(this),a):(u=e[this.g+4],a|=(u&15)<<28,128>u?(this.g+=5,ne(this),a>>>0):(this.g+=5,128<=e[this.g++]&&128<=e[this.g++]&&128<=e[this.g++]&&128<=e[this.g++]&&128<=e[this.g++]?(this.l=!0,Wn(),a):(ne(this),a))))))},It.prototype.o=function(){var e=this.h[this.g],u=this.h[this.g+1],a=this.h[this.g+2],t=this.h[this.g+3];return this.g+=4,ne(this),a=(e<<0|u<<8|a<<16|t<<24)>>>0,e=2*(a>>31)+1,u=a>>>23&255,a&=8388607,u==255?a?NaN:1/0*e:u==0?e*Math.pow(2,-149)*a:e*Math.pow(2,u-150)*(a+Math.pow(2,23))};var Ge=[];function Be(){this.g=new Uint8Array(64),this.h=0}function se(e,u){if(!(e.h+1<e.g.length)){var a=e.g;e.g=new Uint8Array(Math.ceil(1+2*e.g.length)),e.g.set(a)}e.g[e.h++]=u}Be.prototype.length=function(){return this.h},Be.prototype.end=function(){var e=this.g,u=this.h;return this.h=0,xe(e,0,u)};function Yt(e,u){for(;127<u;)se(e,u&127|128),u>>>=7;se(e,u)}function Ie(e){var u={},a=u.N===void 0?!1:u.N;this.m={u:u.u===void 0?!1:u.u},this.N=a,u=this.m,Ge.length?(a=Ge.pop(),u&&(a.u=u.u),e&&de(a,e),e=a):e=new It(e,u),this.g=e,this.l=this.g.g,this.h=this.i=-1,this.j=!1}Ie.prototype.reset=function(){this.g.reset(),this.h=this.i=-1};function Je(e){var u=e.g;if((u=u.g==u.i)||(u=e.j)||(u=e.g,u=u.l||0>u.g||u.g>u.i),u)return!1;e.l=e.g.g;var a=e.g.j();return u=a>>>3,a&=7,0<=a&&5>=a?(e.i=u,e.h=a,!0):(e.j=!0,hn(a,e.l),!1)}function ge(e){switch(e.h){case 0:if(e.h!=0)ge(e);else t:{e=e.g;for(var u=e.g,a=0;10>a;a++){if((e.h[u]&128)===0){e.g=u+1,ne(e);break t}u++}e.l=!0,Wn()}break;case 1:e=e.g,e.g+=8,ne(e);break;case 2:e.h!=2?ge(e):(u=e.g.j(),e=e.g,e.g+=u,ne(e));break;case 5:e=e.g,e.g+=4,ne(e);break;case 3:u=e.i;do{if(!Je(e)){e.j=!0,tn(Error("Unmatched start-group tag: stream EOF"));break}if(e.h==4){e.i!=u&&(e.j=!0,tn(Error("Unmatched end-group tag")));break}ge(e)}while(1);break;default:e.j=!0,hn(e.h,e.l)}}function Xn(e,u,a){e.N||(e=xe(e.g.h,a,e.g.g),(a=u.o)?a.push(e):u.o=[e])}function Qe(e,u,a){var t=e.g.i,o=e.g.j(),s=e.g.g+o;if(e.g.i=s,a(u,e),a=s-e.g.g,a!==0)throw Error("Message parsing ended unexpectedly. Expected to read "+(o+" bytes, instead read "+(o-a)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return e.g.g=s,e.g.i=t,u}function sn(e,u,a){var t=e.g.j();for(t=e.g.g+t;e.g.g<t;)a.push(u.call(e.g))}var cn=[];function ie(){this.h=[],this.i=0,this.g=new Be}function Re(e,u){u.length!==0&&(e.h.push(u),e.i+=u.length)}function oe(e,u,a){Yt(e.g,8*u+2),Yt(e.g,a.length),Re(e,e.g.end()),Re(e,a)}var Mt=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function Ce(e,u){Object.isFrozen(e)||(Mt?e[Mt]|=u:e.g!==void 0?e.g|=u:Object.defineProperties(e,{g:{value:u,configurable:!0,writable:!0,enumerable:!1}}))}function Ot(e){if(!e)return 0;var u;return Mt?u=e[Mt]:u=e.g,u==null?0:u}function Ut(e){return Array.isArray(e)&&Ce(e,1),e}function gn(e){if(!Array.isArray(e))throw Error("cannot mark non-array as immutable");Ce(e,2)}function $t(e){return e!==null&&typeof e=="object"&&e.constructor===Object}function Vt(e){switch(typeof e){case"number":return isFinite(e)?e:String(e);case"object":return Pe&&e!=null&&e instanceof Uint8Array?Zn(e):e;default:return e}}function bt(e,u){if(e!=null)return Array.isArray(e)||$t(e)?zt(e,u):u(e)}function zt(e,u){if(Array.isArray(e)){for(var a=Array(e.length),t=0;t<e.length;t++)a[t]=bt(e[t],u);return Ot(e)&1&&Ut(a),a}a={};for(t in e)a[t]=bt(e[t],u);return a}var Fe;function Kt(e,u,a){var t=Fe;Fe=null,e||(e=t),t=this.constructor.ba,e||(e=t?[t]:[]),this.j=(t?0:-1)-(this.constructor.$||0),this.m=this.g=null,this.h=e;t:{if(t=this.h.length,e=t-1,t&&(t=this.h[e],$t(t))){this.l=e-this.j,this.i=t;break t}u!==void 0&&-1<u?(this.l=Math.max(u,e+1-this.j),this.i=null):this.l=Number.MAX_VALUE}if(a)for(u=0;u<a.length;u++)e=a[u],e<this.l?(e+=this.j,(t=this.h[e])?Ut(t):this.h[e]=Qt):(Le(this),(t=this.i[e])?Ut(t):this.i[e]=Qt)}var Qt=Object.freeze(Ut([]));function Le(e){var u=e.l+e.j;e.h[u]||(e.i=e.h[u]={})}function kt(e,u,a){return u===-1?null:(a===void 0?0:a)||u>=e.l?e.i?e.i[u]:void 0:e.h[u+e.j]}function Rt(e,u,a){a=a===void 0?!0:a;var t=t===void 0?!1:t,o=kt(e,u,t);return o==null&&(o=Qt),o===Qt?(o=Ut([]),Jt(e,u,o,t)):a&&Array.isArray(o)&&Ot(o)&2&&(o=o.slice(),Jt(e,u,o,t)),o}function Ae(e){var u=Rt(e,3,!1);if(e.m||(e.m={}),!e.m[3]){for(var a=0;a<u.length;a++)u[a]=+u[a];e.m[3]=!0}return u}function Oe(e,u,a){return e=kt(e,u),e==null?a:e}function Se(e,u,a){return e=kt(e,u),e=e==null?e:+e,e==null?a===void 0?0:a:e}function Jt(e,u,a,t){(t===void 0?0:t)||u>=e.l?(Le(e),e.i[u]=a):e.h[u+e.j]=a}function Ne(e,u,a){if(a===-1)return null;e.g||(e.g={});var t=e.g[a];if(t)return t;var o=kt(e,a,!1);return o==null?t:(u=new u(o),e.g[a]=u)}function an(e,u,a){e.g||(e.g={});var t=e.g[a];if(!t){var o=Rt(e,a,!1);t=[];for(var s=Array.isArray(o)?!!(Ot(o)&2):!1,h=0;h<o.length;h++)t[h]=new u(o[h]),s&&gn(t[h].h);s&&(gn(t),Object.freeze(t)),e.g[a]=t}return t}function De(e,u,a,t,o){var s=an(e,t,u);a=a||new t,e=Rt(e,u),o!=null?(s.splice(o,0,a),e.splice(o,0,Ee(a))):(s.push(a),e.push(Ee(a)))}Kt.prototype.toJSON=function(){var e=Ee(this);return zt(e,Vt)};function Ee(e){if(e.g)for(var u in e.g){var a=e.g[u];if(Array.isArray(a))for(var t=0;t<a.length;t++)a[t]&&Ee(a[t]);else a&&Ee(a)}return e.h}Kt.prototype.toString=function(){return Ee(this).toString()};function Me(e,u){if(e=e.o){Re(u,u.g.end());for(var a=0;a<e.length;a++)Re(u,e[a])}}function $e(e){var u=e[0];switch(e.length){case 2:var a=e[1];return function(T,F,U){return u(T,F,U,a)};case 3:var t=e[1],o=e[2];return function(T,F,U){return u(T,F,U,t,o)};case 4:var s=e[1],h=e[2],X=e[3];return function(T,F,U){return u(T,F,U,s,h,X)};default:throw Error("unsupported number of parameters, expected [2-4], got "+e.length)}}function me(e,u,a){for(;Je(u)&&u.h!=4;){var t=u.i,o=a[t];if(o){if(Array.isArray(o)&&(o=a[t]=$e(o)),!o(u,e,t)){t=u,o=e;var s=t.l;ge(t),Xn(t,o,s)}}else t=u,o=e,s=t.l,ge(t),Xn(t,o,s)}return e}function Ye(e,u){var a=new ie;if(u(e,a),e=a.i+a.g.length(),e===0)a=new Uint8Array(0);else{e=new Uint8Array(e);for(var t=a.h,o=t.length,s=u=0;s<o;s++){var h=t[s];h.length!==0&&(e.set(h,u),u+=h.length)}t=a.g,o=t.h,o!==0&&(e.set(t.g.subarray(0,o),u),t.h=0),a.h=[e],a=e}return a}function Nn(e,u,a){if(cn.length){var t=cn.pop();e&&(de(t.g,e),t.i=-1,t.h=-1),e=t}else e=new Ie(e);try{return a(new u,e)}finally{u=e.g,u.h=null,u.m=0,u.i=0,u.g=0,u.l=!1,u.u=!1,e.i=-1,e.h=-1,e.j=!1,100>cn.length&&cn.push(e)}}function Ue(e,u,a){if(u=kt(u,a),u!=null){Yt(e.g,8*a+5),e=e.g;var t=u;t=(a=0>t?1:0)?-t:t,t===0?0<1/t?Ct=re=0:(re=0,Ct=2147483648):isNaN(t)?(re=0,Ct=2147483647):34028234663852886e22<t?(re=0,Ct=(a<<31|2139095040)>>>0):11754943508222875e-54>t?(t=Math.round(t/Math.pow(2,-149)),re=0,Ct=(a<<31|t)>>>0):(u=Math.floor(Math.log(t)/Math.LN2),t*=Math.pow(2,-u),t=Math.round(8388608*t),16777216<=t&&++u,re=0,Ct=(a<<31|u+127<<23|t&8388607)>>>0),a=Ct,se(e,a>>>0&255),se(e,a>>>8&255),se(e,a>>>16&255),se(e,a>>>24&255)}}function be(e,u,a){return e.h!==5?!1:(Jt(u,a,e.g.o()),!0)}function rn(e,u,a){return e.h!==5&&e.h!==2?!1:(u=Rt(u,a),e.h==2?sn(e,It.prototype.o,u):u.push(e.g.o()),!0)}function fn(e,u,a){return e.h!==0?!1:(Jt(u,a,At(e.g)),!0)}function Te(e,u,a){return e.h!==0?!1:(Jt(u,a,e.g.j()),!0)}function Sn(e,u,a){if(e.h!==2)return!1;var t=e.g.j();e=e.g;var o=e.g;e.g+=t,ne(e),e=e.h;var s;if(en)(s=xn)||(s=xn=new TextDecoder("utf-8",{fatal:!1})),s=s.decode(e.subarray(o,o+t));else{t=o+t;for(var h=[],X=null,T,F,U;o<t;)T=e[o++],128>T?h.push(T):224>T?o>=t?h.push(65533):(F=e[o++],194>T||(F&192)!==128?(o--,h.push(65533)):h.push((T&31)<<6|F&63)):240>T?o>=t-1?h.push(65533):(F=e[o++],(F&192)!==128||T===224&&160>F||T===237&&160<=F||((s=e[o++])&192)!==128?(o--,h.push(65533)):h.push((T&15)<<12|(F&63)<<6|s&63)):244>=T?o>=t-2?h.push(65533):(F=e[o++],(F&192)!==128||(T<<28)+(F-144)>>30!==0||((s=e[o++])&192)!==128||((U=e[o++])&192)!==128?(o--,h.push(65533)):(T=(T&7)<<18|(F&63)<<12|(s&63)<<6|U&63,T-=65536,h.push((T>>10&1023)+55296,(T&1023)+56320))):h.push(65533),8192<=h.length&&(X=bn(X,h),h.length=0);s=bn(X,h)}return Jt(u,a,s),!0}function ke(e,u,a,t,o){if(e.h!==2)return!1;e=Qe(e,new t,o);var s=s===void 0?!1:s;return u.g||(u.g={}),t=e&&Ee(e),u.g[a]=e,Jt(u,a,t,s),!0}function on(e,u,a,t,o){return e.h!==2?!1:(e=Qe(e,new t,o),De(u,a,e,t,void 0),!0)}function mn(e,u,a){return e.h!==0&&e.h!==2?!1:(u=Rt(u,a),e.h==2?sn(e,It.prototype.j,u):u.push(e.g.j()),!0)}function Ln(e,u,a){return e.h!==0?!1:(Jt(u,a,At(e.g)),!0)}function Ke(e){Kt.call(this,e,-1,Un)}var yn;Lt(Ke,Kt),Ke.prototype.getRows=function(){return kt(this,1)},Ke.prototype.getCols=function(){return kt(this,2)},Ke.prototype.getPackedDataList=function(){return Ae(this)},Ke.prototype.getLayout=function(){return Oe(this,4,0)};function Yn(e,u){return me(e,u,yn||(yn={1:Te,2:Te,3:rn,4:Ln}))}var Un=[3];function vn(e){Kt.call(this,e)}var Gn;Lt(vn,Kt);function f(e,u){var a=kt(e,1);if(a!=null&&a!=null){Yt(u.g,8);var t=u.g;if(0<=a)Yt(t,a);else{for(var o=0;9>o;o++)se(t,a&127|128),a>>=7;se(t,1)}}Ue(u,e,2),t=kt(e,3),t!=null&&oe(u,3,Vn(t)),t=kt(e,4),t!=null&&oe(u,4,Vn(t)),Me(e,u)}function b(e,u){return me(e,u,Gn||(Gn={1:Te,2:be,3:Sn,4:Sn}))}function Z(e){Kt.call(this,e,-1,et)}var Y;Lt(Z,Kt),Z.prototype.addClassification=function(e,u){return De(this,1,e,vn,u),this};function _(e,u){return me(e,u,Y||(Y={1:[on,vn,b]}))}var et=[1];function K(e){Kt.call(this,e)}var tt;Lt(K,Kt);function st(e,u){Ue(u,e,1),Ue(u,e,2),Ue(u,e,3),Ue(u,e,4),Ue(u,e,5),Me(e,u)}function mt(e,u){return me(e,u,tt||(tt={1:be,2:be,3:be,4:be,5:be}))}function Ft(e){Kt.call(this,e,-1,Wt)}var wt;Lt(Ft,Kt);function Ht(e,u){return me(e,u,wt||(wt={1:[on,K,mt]}))}var Wt=[1];function Zt(e){Kt.call(this,e)}var Tt;Lt(Zt,Kt);function Et(e,u){Ue(u,e,1),Ue(u,e,2),Ue(u,e,3),Ue(u,e,4),Ue(u,e,5);var a=kt(e,6);if(a!=null&&a!=null){Yt(u.g,48);var t=u.g,o=a;a=0>o,o=Math.abs(o);var s=o>>>0;for(o=Math.floor((o-s)/4294967296),o>>>=0,a&&(o=~o>>>0,s=(~s>>>0)+1,4294967295<s&&(s=0,o++,4294967295<o&&(o=0))),Ct=s,re=o,a=Ct,s=re;0<s||127<a;)se(t,a&127|128),a=(a>>>7|s<<25)>>>0,s>>>=7;se(t,a)}Me(e,u)}function Bt(e,u){return me(e,u,Tt||(Tt={1:be,2:be,3:be,4:be,5:be,6:fn}))}function Dt(e){Kt.call(this,e,-1,c)}var qt;Lt(Dt,Kt),Dt.prototype.getVertexType=function(){return Oe(this,1,0)},Dt.prototype.getPrimitiveType=function(){return Oe(this,2,0)},Dt.prototype.getVertexBufferList=function(){return Ae(this)},Dt.prototype.getIndexBufferList=function(){return Rt(this,4)};function Ze(e,u){return me(e,u,qt||(qt={1:Ln,2:Ln,3:rn,4:mn}))}var c=[3,4];function p(e){Kt.call(this,e)}var m;Lt(p,Kt),p.prototype.getMesh=function(){return Ne(this,Dt,1)},p.prototype.getPoseTransformMatrix=function(){return Ne(this,Ke,2)};function L(e,u){return me(e,u,m||(m={1:[ke,Dt,Ze],2:[ke,Ke,Yn]}))}var H=[[61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]],P=[[263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]],j=[[276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]],D=[[33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]],rt=[[46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]],r=[[10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]],y=[].concat(pt(H),pt(P),pt(j),pt(D),pt(rt),pt(r));function G(e,u,a){if(a=e.createShader(a===0?e.VERTEX_SHADER:e.FRAGMENT_SHADER),e.shaderSource(a,u),e.compileShader(a),!e.getShaderParameter(a,e.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
39
39
|
|
|
40
|
-
`+
|
|
40
|
+
`+e.getShaderInfoLog(a));return a}function S(e){return an(e,vn,1).map(function(u){return{index:Oe(u,1,0),score:Se(u,2),label:kt(u,3)!=null?Oe(u,3,""):void 0,displayName:kt(u,4)!=null?Oe(u,4,""):void 0}})}function N(e){return{x:Se(e,1),y:Se(e,2),z:Se(e,3),visibility:kt(e,4)!=null?Se(e,4):void 0}}function J(e){return an(Nn(e,Ft,Ht),K,1).map(N)}function k(e,u){this.h=e,this.g=u,this.l=0}function q(e,u,a){return z(e,u),typeof e.g.canvas.transferToImageBitmap=="function"?Promise.resolve(e.g.canvas.transferToImageBitmap()):a?Promise.resolve(e.g.canvas):typeof createImageBitmap=="function"?createImageBitmap(e.g.canvas):(e.i===void 0&&(e.i=document.createElement("canvas")),new Promise(function(t){e.i.height=e.g.canvas.height,e.i.width=e.g.canvas.width,e.i.getContext("2d",{}).drawImage(e.g.canvas,0,0,e.g.canvas.width,e.g.canvas.height),t(e.i)}))}function z(e,u){var a=e.g;if(e.m===void 0){var t=G(a,`
|
|
41
41
|
attribute vec2 aVertex;
|
|
42
42
|
attribute vec2 aTex;
|
|
43
43
|
varying vec2 vTex;
|
|
44
44
|
void main(void) {
|
|
45
45
|
gl_Position = vec4(aVertex, 0.0, 1.0);
|
|
46
46
|
vTex = aTex;
|
|
47
|
-
}`,0),o=
|
|
47
|
+
}`,0),o=G(a,`
|
|
48
48
|
precision mediump float;
|
|
49
49
|
varying vec2 vTex;
|
|
50
50
|
uniform sampler2D sampler0;
|
|
51
51
|
void main(){
|
|
52
52
|
gl_FragColor = texture2D(sampler0, vTex);
|
|
53
|
-
}`,1),
|
|
53
|
+
}`,1),s=a.createProgram();if(a.attachShader(s,t),a.attachShader(s,o),a.linkProgram(s),!a.getProgramParameter(s,a.LINK_STATUS))throw Error(`Could not compile WebGL program.
|
|
54
54
|
|
|
55
|
-
`+d.getProgramInfoLog(c));e=n.o=c,d.useProgram(e),o=d.getUniformLocation(e,"sampler0"),n.j={K:d.getAttribLocation(e,"aVertex"),J:d.getAttribLocation(e,"aTex"),ma:o},n.u=d.createBuffer(),d.bindBuffer(d.ARRAY_BUFFER,n.u),d.enableVertexAttribArray(n.j.K),d.vertexAttribPointer(n.j.K,2,d.FLOAT,!1,0,0),d.bufferData(d.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),d.STATIC_DRAW),d.bindBuffer(d.ARRAY_BUFFER,null),n.s=d.createBuffer(),d.bindBuffer(d.ARRAY_BUFFER,n.s),d.enableVertexAttribArray(n.j.J),d.vertexAttribPointer(n.j.J,2,d.FLOAT,!1,0,0),d.bufferData(d.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),d.STATIC_DRAW),d.bindBuffer(d.ARRAY_BUFFER,null),d.uniform1i(o,0)}e=n.j,d.useProgram(n.o),d.canvas.width=s.width,d.canvas.height=s.height,d.viewport(0,0,s.width,s.height),d.activeTexture(d.TEXTURE0),n.h.bindTexture2d(s.glName),d.enableVertexAttribArray(e.K),d.bindBuffer(d.ARRAY_BUFFER,n.u),d.vertexAttribPointer(e.K,2,d.FLOAT,!1,0,0),d.enableVertexAttribArray(e.J),d.bindBuffer(d.ARRAY_BUFFER,n.s),d.vertexAttribPointer(e.J,2,d.FLOAT,!1,0,0),d.bindFramebuffer(d.DRAW_FRAMEBUFFER?d.DRAW_FRAMEBUFFER:d.FRAMEBUFFER,null),d.clearColor(0,0,0,0),d.clear(d.COLOR_BUFFER_BIT),d.colorMask(!0,!0,!0,!0),d.drawArrays(d.TRIANGLE_FAN,0,4),d.disableVertexAttribArray(e.K),d.disableVertexAttribArray(e.J),d.bindBuffer(d.ARRAY_BUFFER,null),n.h.bindTexture2d(0)}function Ut(n){this.g=n}var Fe=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function Dt(n,s){return s+n}function He(n,s){window[n]=s}function ie(n){var s=document.createElement("script");return s.setAttribute("src",n),s.setAttribute("crossorigin","anonymous"),new Promise(function(d){s.addEventListener("load",function(){d()},!1),s.addEventListener("error",function(){d()},!1),document.body.appendChild(s)})}function St(){return ut(function(n){switch(n.g){case 1:return n.o=2,P(n,WebAssembly.instantiate(Fe),4);case 4:n.g=3,n.o=0;break;case 2:return n.o=0,n.j=null,n.return(!1);case 3:return n.return(!0)}})}function Ht(n){if(this.g=n,this.listeners={},this.j={},this.H={},this.o={},this.u={},this.I=this.s=this.Z=!0,this.D=Promise.resolve(),this.Y="",this.C={},this.locateFile=n&&n.locateFile||Dt,typeof window=="object")var s=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")s=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.$=s,n.options){s=U(Object.keys(n.options));for(var d=s.next();!d.done;d=s.next()){d=d.value;var e=n.options[d].default;e!==void 0&&(this.j[d]=typeof e=="function"?e():e)}}}X=Ht.prototype,X.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function kt(n){var s,d,e,o,c,t,r,u,h,Z,R;return ut(function(V){switch(V.g){case 1:return n.Z?(s=n.g.files===void 0?[]:typeof n.g.files=="function"?n.g.files(n.j):n.g.files,P(V,St(),2)):V.return();case 2:if(d=V.h,typeof window=="object")return He("createMediapipeSolutionsWasm",{locateFile:n.locateFile}),He("createMediapipeSolutionsPackedAssets",{locateFile:n.locateFile}),t=s.filter(function(I){return I.data!==void 0}),r=s.filter(function(I){return I.data===void 0}),u=Promise.all(t.map(function(I){var Y=i(n,I.url);if(I.path!==void 0){var H=I.path;Y=Y.then(function(C){return n.overrideFile(H,C),Promise.resolve(C)})}return Y})),h=Promise.all(r.map(function(I){return I.simd===void 0||I.simd&&d||!I.simd&&!d?ie(n.locateFile(I.url,n.$)):Promise.resolve()})).then(function(){var I,Y,H;return ut(function(C){if(C.g==1)return I=window.createMediapipeSolutionsWasm,Y=window.createMediapipeSolutionsPackedAssets,H=n,P(C,I(Y),2);H.h=C.h,C.g=0})}),Z=function(){return ut(function(I){return n.g.graph&&n.g.graph.url?I=P(I,i(n,n.g.graph.url),0):(I.g=0,I=void 0),I})}(),P(V,Promise.all([h,u,Z]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return e=s.filter(function(I){return I.simd===void 0||I.simd&&d||!I.simd&&!d}).map(function(I){return n.locateFile(I.url,n.$)}),importScripts.apply(null,et(e)),o=n,P(V,createMediapipeSolutionsWasm(Module),6);case 6:o.h=V.h,n.l=new OffscreenCanvas(1,1),n.h.canvas=n.l,c=n.h.GL.createContext(n.l,{antialias:!1,alpha:!1,ja:typeof WebGL2RenderingContext!="undefined"?2:1}),n.h.GL.makeContextCurrent(c),V.g=4;break;case 7:if(n.l=document.createElement("canvas"),R=n.l.getContext("webgl2",{}),!R&&(R=n.l.getContext("webgl",{}),!R))return alert("Failed to create WebGL canvas context when passing video frame."),V.return();n.G=R,n.h.canvas=n.l,n.h.createContext(n.l,!0,!0,{});case 4:n.i=new n.h.SolutionWasm,n.Z=!1,V.g=0}})}function Nt(n){var s,d,e,o,c,t,r,u;return ut(function(h){if(h.g==1){if(n.g.graph&&n.g.graph.url&&n.Y===n.g.graph.url)return h.return();if(n.s=!0,!n.g.graph||!n.g.graph.url){h.g=2;return}return n.Y=n.g.graph.url,P(h,i(n,n.g.graph.url),3)}for(h.g!=2&&(s=h.h,n.i.loadGraph(s)),d=U(Object.keys(n.C)),e=d.next();!e.done;e=d.next())o=e.value,n.i.overrideFile(o,n.C[o]);if(n.C={},n.g.listeners)for(c=U(n.g.listeners),t=c.next();!t.done;t=c.next())r=t.value,W(n,r);u=n.j,n.j={},n.setOptions(u),h.g=0})}X.reset=function(){var n=this;return ut(function(s){n.i&&(n.i.reset(),n.o={},n.u={}),s.g=0})},X.setOptions=function(n,s){var d=this;if(s=s||this.g.options){for(var e=[],o=[],c={},t=U(Object.keys(n)),r=t.next();!r.done;c={R:c.R,S:c.S},r=t.next()){var u=r.value;u in this.j&&this.j[u]===n[u]||(this.j[u]=n[u],r=s[u],r!==void 0&&(r.onChange&&(c.R=r.onChange,c.S=n[u],e.push(function(h){return function(){var Z;return ut(function(R){if(R.g==1)return P(R,h.R(h.S),2);Z=R.h,Z===!0&&(d.s=!0),R.g=0})}}(c))),r.graphOptionXref&&(u={valueNumber:r.type===1?n[u]:0,valueBoolean:r.type===0?n[u]:!1,valueString:r.type===2?n[u]:""},r=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),r.graphOptionXref),u),o.push(r))))}(e.length!==0||o.length!==0)&&(this.s=!0,this.B=(this.B===void 0?[]:this.B).concat(o),this.A=(this.A===void 0?[]:this.A).concat(e))}};function jt(n){var s,d,e,o,c,t,r;return ut(function(u){switch(u.g){case 1:if(!n.s)return u.return();if(!n.A){u.g=2;break}s=U(n.A),d=s.next();case 3:if(d.done){u.g=5;break}return e=d.value,P(u,e(),4);case 4:d=s.next(),u.g=3;break;case 5:n.A=void 0;case 2:if(n.B){for(o=new n.h.GraphOptionChangeRequestList,c=U(n.B),t=c.next();!t.done;t=c.next())r=t.value,o.push_back(r);n.i.changeOptions(o),o.delete(),n.B=void 0}n.s=!1,u.g=0}})}X.initialize=function(){var n=this;return ut(function(s){return s.g==1?P(s,kt(n),2):s.g!=3?P(s,Nt(n),3):P(s,jt(n),0)})};function i(n,s){var d,e;return ut(function(o){return s in n.H?o.return(n.H[s]):(d=n.locateFile(s,""),e=fetch(d).then(function(c){return c.arrayBuffer()}),n.H[s]=e,o.return(e))})}X.overrideFile=function(n,s){this.i?this.i.overrideFile(n,s):this.C[n]=s},X.clearOverriddenFiles=function(){this.C={},this.i&&this.i.clearOverriddenFiles()},X.send=function(n,s){var d=this,e,o,c,t,r,u,h,Z,R;return ut(function(V){switch(V.g){case 1:return d.g.inputs?(e=1e3*(s==null?performance.now():s),P(V,d.D,2)):V.return();case 2:return P(V,d.initialize(),3);case 3:for(o=new d.h.PacketDataList,c=U(Object.keys(n)),t=c.next();!t.done;t=c.next())if(r=t.value,u=d.g.inputs[r]){t:{var I=n[r];switch(u.type){case"video":var Y=d.o[u.stream];if(Y||(Y=new ot(d.h,d.G),d.o[u.stream]=Y),Y.l===0&&(Y.l=Y.h.createTexture()),typeof HTMLVideoElement!="undefined"&&I instanceof HTMLVideoElement)var H=I.videoWidth,C=I.videoHeight;else typeof HTMLImageElement!="undefined"&&I instanceof HTMLImageElement?(H=I.naturalWidth,C=I.naturalHeight):(H=I.width,C=I.height);C={glName:Y.l,width:H,height:C},H=Y.g,H.canvas.width=C.width,H.canvas.height=C.height,H.activeTexture(H.TEXTURE0),Y.h.bindTexture2d(Y.l),H.texImage2D(H.TEXTURE_2D,0,H.RGBA,H.RGBA,H.UNSIGNED_BYTE,I),Y.h.bindTexture2d(0),Y=C;break t;case"detections":for(Y=d.o[u.stream],Y||(Y=new Ut(d.h),d.o[u.stream]=Y),Y.data||(Y.data=new Y.g.DetectionListData),Y.data.reset(I.length),C=0;C<I.length;++C){H=I[C];var z=Y.data,M=z.setBoundingBox,Q=C,q=H.boundingBox,$=new m;if(at($,1,q.xCenter),at($,2,q.yCenter),at($,3,q.height),at($,4,q.width),at($,5,q.rotation),at($,6,q.rectId),q=E($,w),M.call(z,Q,q),H.landmarks)for(z=0;z<H.landmarks.length;++z){$=H.landmarks[z];var mt=!!$.visibility;M=Y.data,Q=M.addNormalizedLandmark,q=C,$=Object.assign(Object.assign({},$),{visibility:mt?$.visibility:0}),mt=new Ct,at(mt,1,$.x),at(mt,2,$.y),at(mt,3,$.z),$.visibility&&at(mt,4,$.visibility),$=E(mt,At),Q.call(M,q,$)}if(H.V)for(z=0;z<H.V.length;++z)M=Y.data,Q=M.addClassification,q=C,$=H.V[z],mt=new lt,at(mt,2,$.ga),$.index&&at(mt,1,$.index),$.label&&at(mt,3,$.label),$.displayName&&at(mt,4,$.displayName),$=E(mt,st),Q.call(M,q,$)}Y=Y.data;break t;default:Y={}}}switch(h=Y,Z=u.stream,u.type){case"video":o.pushTexture2d(Object.assign(Object.assign({},h),{stream:Z,timestamp:e}));break;case"detections":R=h,R.stream=Z,R.timestamp=e,o.pushDetectionList(R);break;default:throw Error("Unknown input config type: '"+u.type+"'")}}return d.i.send(o),P(V,d.D,4);case 4:o.delete(),V.g=0}})};function p(n,s,d){var e,o,c,t,r,u,h,Z,R,V,I,Y,H,C;return ut(function(z){switch(z.g){case 1:if(!d)return z.return(s);for(e={},o=0,c=U(Object.keys(d)),t=c.next();!t.done;t=c.next())r=t.value,u=d[r],typeof u!="string"&&u.type==="texture"&&s[u.stream]!==void 0&&++o;1<o&&(n.I=!1),h=U(Object.keys(d)),t=h.next();case 2:if(t.done){z.g=4;break}if(Z=t.value,R=d[Z],typeof R=="string")return H=e,C=Z,P(z,b(n,Z,s[R]),14);if(V=s[R.stream],R.type==="detection_list"){if(V){for(var M=V.getRectList(),Q=V.getLandmarksList(),q=V.getClassificationsList(),$=[],mt=0;mt<M.size();++mt){var Wt=v(M.get(mt),m,w);Wt={boundingBox:{xCenter:ee(Wt,1),yCenter:ee(Wt,2),height:ee(Wt,3),width:ee(Wt,4),rotation:ee(Wt,5,0),rectId:ne(Wt,6)},landmarks:Ie(v(Q.get(mt),Ze,l),Ct,1).map(Zt),V:Lt(v(q.get(mt),ht,bt))},$.push(Wt)}M=$}else M=[];e[Z]=M,z.g=7;break}if(R.type==="proto_list"){if(V){for(M=Array(V.size()),Q=0;Q<V.size();Q++)M[Q]=V.get(Q);V.delete()}else M=[];e[Z]=M,z.g=7;break}if(V===void 0){z.g=3;break}if(R.type==="float_list"){e[Z]=V,z.g=7;break}if(R.type==="proto"){e[Z]=V,z.g=7;break}if(R.type!=="texture")throw Error("Unknown output config type: '"+R.type+"'");return I=n.u[Z],I||(I=new ot(n.h,n.G),n.u[Z]=I),P(z,pt(I,V,n.I),13);case 13:Y=z.h,e[Z]=Y;case 7:R.transform&&e[Z]&&(e[Z]=R.transform(e[Z])),z.g=3;break;case 14:H[C]=z.h;case 3:t=h.next(),z.g=2;break;case 4:return z.return(e)}})}function b(n,s,d){var e;return ut(function(o){return typeof d=="number"||d instanceof Uint8Array||d instanceof n.h.Uint8BlobList?o.return(d):d instanceof n.h.Texture2dDataOut?(e=n.u[s],e||(e=new ot(n.h,n.G),n.u[s]=e),o.return(pt(e,d,n.I))):o.return(void 0)})}function W(n,s){for(var d=s.name||"$",e=[].concat(et(s.wants)),o=new n.h.StringList,c=U(s.wants),t=c.next();!t.done;t=c.next())o.push_back(t.value);c=n.h.PacketListener.implement({onResults:function(r){for(var u={},h=0;h<s.wants.length;++h)u[e[h]]=r.get(h);var Z=n.listeners[d];Z&&(n.D=p(n,u,s.outs).then(function(R){R=Z(R);for(var V=0;V<s.wants.length;++V){var I=u[e[V]];typeof I=="object"&&I.hasOwnProperty&&I.hasOwnProperty("delete")&&I.delete()}R&&(n.D=R)}))}}),n.i.attachMultiListener(o,c),o.delete()}X.onResults=function(n,s){this.listeners[s||"$"]=n},vt("Solution",Ht),vt("OptionType",{BOOL:0,NUMBER:1,ia:2,0:"BOOL",1:"NUMBER",2:"STRING"});function x(n){var s=this;n=n||{};var d={url:"face_detection_short.binarypb"},e={type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"facedetectionshortrangegpu__facedetectionshortrangecommon__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}};this.g=new Ht({locateFile:n.locateFile,files:[{data:!0,url:"face_detection_short.binarypb"},{data:!0,url:"face_detection_short_range.tflite"},{simd:!0,url:"face_detection_solution_simd_wasm_bin.js"},{simd:!1,url:"face_detection_solution_wasm_bin.js"}],graph:d,listeners:[{wants:["detections","image_transformed"],outs:{image:"image_transformed",detections:{type:"detection_list",stream:"detections"}}}],inputs:{image:{type:"video",stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:typeof window!="object"||window.navigator===void 0?!1:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},model:{type:0,onChange:function(o){var c,t,r,u,h,Z;return ut(function(R){switch(R.g){case 1:c=o==="short"?["face_detection_short_range.tflite"]:["face_detection_full_range_sparse.tflite"],t=U(c),r=t.next();case 2:if(r.done){R.g=4;break}return u=r.value,h="third_party/mediapipe/modules/face_detection/"+u,P(R,i(s.g,u),5);case 5:Z=R.h,s.g.overrideFile(h,Z),r=t.next(),R.g=2;break;case 4:return d.url=o==="short"?"face_detection_short.binarypb":"face_detection_full.binarypb",e.graphOptionXref.calculatorName=o==="short"?"facedetectionshortrangegpu__facedetectionshortrangecommon__TensorsToDetectionsCalculator":"facedetectionfullrangegpu__facedetectionfullrangecommon__TensorsToDetectionsCalculator",R.return(!0)}})}},minDetectionConfidence:e}})}X=x.prototype,X.close=function(){return this.g.close(),Promise.resolve()},X.onResults=function(n){this.g.onResults(n)},X.initialize=function(){var n=this;return ut(function(s){return P(s,n.g.initialize(),0)})},X.reset=function(){this.g.reset()},X.send=function(n){var s=this;return ut(function(d){return P(d,s.g.send(n),0)})},X.setOptions=function(n){this.g.setOptions(n)},vt("FaceDetection",x),vt("FACEDETECTION_LIPS",L),vt("FACEDETECTION_LEFT_EYE",j),vt("FACEDETECTION_LEFT_EYEBROW",N),vt("FACEDETECTION_RIGHT_EYE",A),vt("FACEDETECTION_RIGHT_EYEBROW",_),vt("FACEDETECTION_FACE_OVAL",nt),vt("FACEDETECTION_CONTOURS",ft),vt("FACEDETECTION_TESSELATION",[[127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]]),vt("VERSION","0.4.1646425229")}.call(cn),globalThis.VonageFaceDetectionVersion=globalThis.VERSION,globalThis.VonageFaceDetection=globalThis.FaceDetection,function(){var X;function g(i){var p=0;return function(){return p<i.length?{done:!1,value:i[p++]}:{done:!0}}}var G=typeof Object.defineProperties=="function"?Object.defineProperty:function(i,p,b){return i==Array.prototype||i==Object.prototype||(i[p]=b.value),i};function S(i){i=[typeof globalThis=="object"&&globalThis,i,typeof window=="object"&&window,typeof self=="object"&&self,typeof cn=="object"&&cn];for(var p=0;p<i.length;++p){var b=i[p];if(b&&b.Math==Math)return b}throw Error("Cannot find global object")}var T=S(this);function J(i,p){if(p)t:{var b=T;i=i.split(".");for(var W=0;W<i.length-1;W++){var x=i[W];if(!(x in b))break t;b=b[x]}i=i[i.length-1],W=b[i],p=p(W),p!=W&&p!=null&&G(b,i,{configurable:!0,writable:!0,value:p})}}J("Symbol",function(i){function p(n){if(this instanceof p)throw new TypeError("Symbol is not a constructor");return new b(W+(n||"")+"_"+x++,n)}function b(n,s){this.g=n,G(this,"description",{configurable:!0,writable:!0,value:s})}if(i)return i;b.prototype.toString=function(){return this.g};var W="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",x=0;return p}),J("Symbol.iterator",function(i){if(i)return i;i=Symbol("Symbol.iterator");for(var p="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),b=0;b<p.length;b++){var W=T[p[b]];typeof W=="function"&&typeof W.prototype[i]!="function"&&G(W.prototype,i,{configurable:!0,writable:!0,value:function(){return K(g(this))}})}return i});function K(i){return i={next:i},i[Symbol.iterator]=function(){return this},i}function U(i){var p=typeof Symbol!="undefined"&&Symbol.iterator&&i[Symbol.iterator];return p?p.call(i):{next:g(i)}}function et(i){if(!(i instanceof Array)){i=U(i);for(var p,b=[];!(p=i.next()).done;)b.push(p.value);i=b}return i}var Ye=typeof Object.create=="function"?Object.create:function(i){function p(){}return p.prototype=i,new p},tt;if(typeof Object.setPrototypeOf=="function")tt=Object.setPrototypeOf;else{var Ft;t:{var Pe={a:!0},se={};try{se.__proto__=Pe,Ft=se.a;break t}catch{}Ft=!1}tt=Ft?function(i,p){if(i.__proto__=p,i.__proto__!==p)throw new TypeError(i+" is not extensible");return i}:null}var Je=tt;function yt(i,p){if(i.prototype=Ye(p.prototype),i.prototype.constructor=i,Je)Je(i,p);else for(var b in p)if(b!="prototype")if(Object.defineProperties){var W=Object.getOwnPropertyDescriptor(p,b);W&&Object.defineProperty(i,b,W)}else i[b]=p[b];i.ra=p.prototype}function $t(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.u=this.o=0,this.j=null}function fe(i){if(i.l)throw new TypeError("Generator is already running");i.l=!0}$t.prototype.s=function(i){this.h=i};function ae(i,p){i.j={fa:p,ga:!0},i.g=i.o||i.u}$t.prototype.return=function(i){this.j={return:i},this.g=this.u};function P(i,p,b){return i.g=b,{value:p}}function Sn(i){this.g=new $t,this.h=i}function En(i,p){fe(i.g);var b=i.g.i;return b?Ce(i,"return"in b?b.return:function(W){return{value:W,done:!0}},p,i.g.return):(i.g.return(p),qt(i))}function Ce(i,p,b,W){try{var x=p.call(i.g.i,b);if(!(x instanceof Object))throw new TypeError("Iterator result "+x+" is not an object");if(!x.done)return i.g.l=!1,x;var n=x.value}catch(s){return i.g.i=null,ae(i.g,s),qt(i)}return i.g.i=null,W.call(i.g,n),qt(i)}function qt(i){for(;i.g.g;)try{var p=i.h(i.g);if(p)return i.g.l=!1,{value:p.value,done:!1}}catch(b){i.g.h=void 0,ae(i.g,b)}if(i.g.l=!1,i.g.j){if(p=i.g.j,i.g.j=null,p.ga)throw p.fa;return{value:p.return,done:!0}}return{value:void 0,done:!0}}function Hn(i){this.next=function(p){return fe(i.g),i.g.i?p=Ce(i,i.g.i.next,p,i.g.s):(i.g.s(p),p=qt(i)),p},this.throw=function(p){return fe(i.g),i.g.i?p=Ce(i,i.g.i.throw,p,i.g.s):(ae(i.g,p),p=qt(i)),p},this.return=function(p){return En(i,p)},this[Symbol.iterator]=function(){return this}}function Ot(i){function p(W){return i.next(W)}function b(W){return i.throw(W)}return new Promise(function(W,x){function n(s){s.done?W(s.value):Promise.resolve(s.value).then(p,b).then(n,x)}n(i.next())})}function ut(i){return Ot(new Hn(new Sn(i)))}J("Promise",function(i){function p(s){this.h=0,this.i=void 0,this.g=[],this.s=!1;var d=this.j();try{s(d.resolve,d.reject)}catch(e){d.reject(e)}}function b(){this.g=null}function W(s){return s instanceof p?s:new p(function(d){d(s)})}if(i)return i;b.prototype.h=function(s){if(this.g==null){this.g=[];var d=this;this.i(function(){d.l()})}this.g.push(s)};var x=T.setTimeout;b.prototype.i=function(s){x(s,0)},b.prototype.l=function(){for(;this.g&&this.g.length;){var s=this.g;this.g=[];for(var d=0;d<s.length;++d){var e=s[d];s[d]=null;try{e()}catch(o){this.j(o)}}}this.g=null},b.prototype.j=function(s){this.i(function(){throw s})},p.prototype.j=function(){function s(o){return function(c){e||(e=!0,o.call(d,c))}}var d=this,e=!1;return{resolve:s(this.D),reject:s(this.l)}},p.prototype.D=function(s){if(s===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(s instanceof p)this.H(s);else{t:switch(typeof s){case"object":var d=s!=null;break t;case"function":d=!0;break t;default:d=!1}d?this.A(s):this.o(s)}},p.prototype.A=function(s){var d=void 0;try{d=s.then}catch(e){this.l(e);return}typeof d=="function"?this.I(d,s):this.o(s)},p.prototype.l=function(s){this.u(2,s)},p.prototype.o=function(s){this.u(1,s)},p.prototype.u=function(s,d){if(this.h!=0)throw Error("Cannot settle("+s+", "+d+"): Promise already settled in state"+this.h);this.h=s,this.i=d,this.h===2&&this.G(),this.B()},p.prototype.G=function(){var s=this;x(function(){if(s.C()){var d=T.console;typeof d!="undefined"&&d.error(s.i)}},1)},p.prototype.C=function(){if(this.s)return!1;var s=T.CustomEvent,d=T.Event,e=T.dispatchEvent;return typeof e=="undefined"?!0:(typeof s=="function"?s=new s("unhandledrejection",{cancelable:!0}):typeof d=="function"?s=new d("unhandledrejection",{cancelable:!0}):(s=T.document.createEvent("CustomEvent"),s.initCustomEvent("unhandledrejection",!1,!0,s)),s.promise=this,s.reason=this.i,e(s))},p.prototype.B=function(){if(this.g!=null){for(var s=0;s<this.g.length;++s)n.h(this.g[s]);this.g=null}};var n=new b;return p.prototype.H=function(s){var d=this.j();s.M(d.resolve,d.reject)},p.prototype.I=function(s,d){var e=this.j();try{s.call(d,e.resolve,e.reject)}catch(o){e.reject(o)}},p.prototype.then=function(s,d){function e(r,u){return typeof r=="function"?function(h){try{o(r(h))}catch(Z){c(Z)}}:u}var o,c,t=new p(function(r,u){o=r,c=u});return this.M(e(s,o),e(d,c)),t},p.prototype.catch=function(s){return this.then(void 0,s)},p.prototype.M=function(s,d){function e(){switch(o.h){case 1:s(o.i);break;case 2:d(o.i);break;default:throw Error("Unexpected state: "+o.h)}}var o=this;this.g==null?n.h(e):this.g.push(e),this.s=!0},p.resolve=W,p.reject=function(s){return new p(function(d,e){e(s)})},p.race=function(s){return new p(function(d,e){for(var o=U(s),c=o.next();!c.done;c=o.next())W(c.value).M(d,e)})},p.all=function(s){var d=U(s),e=d.next();return e.done?W([]):new p(function(o,c){function t(h){return function(Z){r[h]=Z,u--,u==0&&o(r)}}var r=[],u=0;do r.push(void 0),u++,W(e.value).M(t(r.length-1),c),e=d.next();while(!e.done)})},p});function Cn(i,p){i instanceof String&&(i+="");var b=0,W=!1,x={next:function(){if(!W&&b<i.length){var n=b++;return{value:p(n,i[n]),done:!1}}return W=!0,{done:!0,value:void 0}}};return x[Symbol.iterator]=function(){return x},x}var jn=typeof Object.assign=="function"?Object.assign:function(i,p){for(var b=1;b<arguments.length;b++){var W=arguments[b];if(W)for(var x in W)Object.prototype.hasOwnProperty.call(W,x)&&(i[x]=W[x])}return i};J("Object.assign",function(i){return i||jn}),J("Object.is",function(i){return i||function(p,b){return p===b?p!==0||1/p===1/b:p!==p&&b!==b}}),J("Array.prototype.includes",function(i){return i||function(p,b){var W=this;W instanceof String&&(W=String(W));var x=W.length;for(b=b||0,0>b&&(b=Math.max(b+x,0));b<x;b++){var n=W[b];if(n===p||Object.is(n,p))return!0}return!1}}),J("String.prototype.includes",function(i){return i||function(p,b){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(p instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(p,b||0)!==-1}}),J("Array.prototype.keys",function(i){return i||function(){return Cn(this,function(p){return p})}});var de=this||self;function vt(i,p){i=i.split(".");var b=de;i[0]in b||typeof b.execScript=="undefined"||b.execScript("var "+i[0]);for(var W;i.length&&(W=i.shift());)i.length||p===void 0?b[W]&&b[W]!==Object.prototype[W]?b=b[W]:b=b[W]={}:b[W]=p}function ye(){throw Error("Invalid UTF8")}function an(i,p){return p=String.fromCharCode.apply(null,p),i==null?p:i+p}var hn,In=typeof TextDecoder!="undefined",vn,Ln=typeof TextEncoder!="undefined",Be={},nn=null;function Nn(i){var p;p===void 0&&(p=0),dn(),p=Be[p];for(var b=Array(Math.floor(i.length/3)),W=p[64]||"",x=0,n=0;x<i.length-2;x+=3){var s=i[x],d=i[x+1],e=i[x+2],o=p[s>>2];s=p[(s&3)<<4|d>>4],d=p[(d&15)<<2|e>>6],e=p[e&63],b[n++]=o+s+d+e}switch(o=0,e=W,i.length-x){case 2:o=i[x+1],e=p[(o&15)<<2]||W;case 1:i=i[x],b[n]=p[i>>2]+p[(i&3)<<4|o>>4]+e+W}return b.join("")}function Tn(i){var p=i.length,b=3*p/4;b%3?b=Math.floor(b):"=.".indexOf(i[p-1])!=-1&&(b="=.".indexOf(i[p-2])!=-1?b-2:b-1);var W=new Uint8Array(b),x=0;return fn(i,function(n){W[x++]=n}),x!==b?W.subarray(0,x):W}function fn(i,p){function b(e){for(;W<i.length;){var o=i.charAt(W++),c=nn[o];if(c!=null)return c;if(!/^[\s\xa0]*$/.test(o))throw Error("Unknown base64 encoding at char: "+o)}return e}dn();for(var W=0;;){var x=b(-1),n=b(0),s=b(64),d=b(64);if(d===64&&x===-1)break;p(x<<2|n>>4),s!=64&&(p(n<<4&240|s>>2),d!=64&&p(s<<6&192|d))}}function dn(){if(!nn){nn={};for(var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),p=["+/=","+/","-_=","-_.","-_"],b=0;5>b;b++){var W=i.concat(p[b].split(""));Be[b]=W;for(var x=0;x<W.length;x++){var n=W[x];nn[n]===void 0&&(nn[n]=x)}}}}var bn=typeof Uint8Array=="function";function pn(i){return bn&&i!=null&&i instanceof Uint8Array}var re;function pe(i){if(this.L=i,i!==null&&i.length===0)throw Error("ByteString should be constructed with non-empty values")}var ze=typeof Uint8Array.prototype.slice=="function",oe=0,ue=0;function je(i,p){if(i.constructor===Uint8Array)return i;if(i.constructor===ArrayBuffer)return new Uint8Array(i);if(i.constructor===Array)return new Uint8Array(i);if(i.constructor===String)return Tn(i);if(i.constructor===pe)return!p&&(p=i.L)&&p.constructor===Uint8Array?p:(p=i.L,p=p==null||pn(p)?p:typeof p=="string"?Tn(p):null,(i=i.L=p)?new Uint8Array(i):re||(re=new Uint8Array(0)));if(i instanceof Uint8Array)return new Uint8Array(i.buffer,i.byteOffset,i.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function Ve(i,p){return Error("Invalid wire type: "+i+" (at position "+p+")")}function Pt(){return Error("Failed to read varint, encoding is invalid.")}function he(i,p){p=p===void 0?{}:p,p=p.v===void 0?!1:p.v,this.h=null,this.g=this.i=this.j=0,this.v=p,i&&ve(this,i)}function ve(i,p){i.h=je(p,i.v),i.j=0,i.i=i.h.length,i.g=i.j}he.prototype.reset=function(){this.g=this.j};function gt(i){if(i.g>i.i)throw Error("Tried to read past the end of the data "+i.g+" > "+i.i)}function me(i){var p=i.h,b=p[i.g],W=b&127;if(128>b)return i.g+=1,gt(i),W;if(b=p[i.g+1],W|=(b&127)<<7,128>b)return i.g+=2,gt(i),W;if(b=p[i.g+2],W|=(b&127)<<14,128>b)return i.g+=3,gt(i),W;if(b=p[i.g+3],W|=(b&127)<<21,128>b)return i.g+=4,gt(i),W;if(b=p[i.g+4],i.g+=5,W|=(b&15)<<28,128>b)return gt(i),W;if(128<=p[i.g++]&&128<=p[i.g++]&&128<=p[i.g++]&&128<=p[i.g++]&&128<=p[i.g++])throw Pt();return gt(i),W}var _t=[];function te(){this.g=[]}te.prototype.length=function(){return this.g.length},te.prototype.end=function(){var i=this.g;return this.g=[],i};function be(i,p){for(;127<p;)i.g.push(p&127|128),p>>>=7;i.g.push(p)}function _e(i){var p={},b=p.W===void 0?!1:p.W;this.l={v:p.v===void 0?!1:p.v},this.W=b,p=this.l,_t.length?(b=_t.pop(),p&&(b.v=p.v),i&&ve(b,i),i=b):i=new he(i,p),this.g=i,this.j=this.g.g,this.h=this.i=-1}_e.prototype.reset=function(){this.g.reset(),this.j=this.g.g,this.h=this.i=-1};function Ge(i){var p=i.g;if(p.g==p.i)return!1;i.j=i.g.g;var b=me(i.g)>>>0;if(p=b>>>3,b&=7,!(0<=b&&5>=b))throw Ve(b,i.j);if(1>p)throw Error("Invalid field number: "+p+" (at position "+i.j+")");return i.i=p,i.h=b,!0}function Yt(i){switch(i.h){case 0:if(i.h!=0)Yt(i);else t:{i=i.g;for(var p=i.g,b=p+10;p<b;)if((i.h[p++]&128)===0){i.g=p,gt(i);break t}throw Pt()}break;case 1:i=i.g,i.g+=8,gt(i);break;case 2:i.h!=2?Yt(i):(p=me(i.g)>>>0,i=i.g,i.g+=p,gt(i));break;case 5:i=i.g,i.g+=4,gt(i);break;case 3:p=i.i;do{if(!Ge(i))throw Error("Unmatched start-group tag: stream EOF");if(i.h==4){if(i.i!=p)throw Error("Unmatched end-group tag");break}Yt(i)}while(1);break;default:throw Ve(i.h,i.j)}}var xe=[];function Ue(){this.i=[],this.h=0,this.g=new te}function Xe(i,p){p.length!==0&&(i.i.push(p),i.h+=p.length)}function Xn(i,p){if(p=p.ca){Xe(i,i.g.end());for(var b=0;b<p.length;b++)Xe(i,p[b])}}var rn=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function $e(i,p){Object.isFrozen(i)||(rn?i[rn]|=p:i.N!==void 0?i.N|=p:Object.defineProperties(i,{N:{value:p,configurable:!0,writable:!0,enumerable:!1}}))}function Zn(i){var p;return rn?p=i[rn]:p=i.N,p==null?0:p}function Mt(i){return $e(i,1),i}function Re(i){return Array.isArray(i)?!!(Zn(i)&2):!1}function Qt(i){if(!Array.isArray(i))throw Error("cannot mark non-array as immutable");$e(i,2)}function Et(i){return i!==null&&typeof i=="object"&&!Array.isArray(i)&&i.constructor===Object}var qe=Object.freeze(Mt([]));function xt(i){if(Re(i.m))throw Error("Cannot mutate an immutable Message")}var Gt=typeof Symbol!="undefined"&&typeof Symbol.hasInstance!="undefined";function un(i){return{value:i,configurable:!1,writable:!1,enumerable:!1}}function Bt(i,p,b){return p===-1?null:p>=i.i?i.g?i.g[p]:void 0:(b===void 0?0:b)&&i.g&&(b=i.g[p],b!=null)?b:i.m[p+i.h]}function at(i,p,b,W){W=W===void 0?!1:W,xt(i),p<i.i&&!W?i.m[p+i.h]=b:(i.g||(i.g=i.m[i.i+i.h]={}))[p]=b}function it(i,p,b,W){b=b===void 0?!0:b,W=W===void 0?!1:W;var x=Bt(i,p,W);return x==null&&(x=qe),Re(i.m)?b&&(Qt(x),Object.freeze(x)):(x===qe||Re(x))&&(x=Mt(x.slice()),at(i,p,x,W)),x}function ee(i,p,b){return i=Bt(i,p),i=i==null?i:+i,i==null?b===void 0?0:b:i}function Ie(i,p,b,W){i.j||(i.j={});var x=Re(i.m),n=i.j[b];if(!n){W=it(i,b,!0,W===void 0?!1:W),n=[],x=x||Re(W);for(var s=0;s<W.length;s++)n[s]=new p(W[s]),x&&Qt(n[s].m);x&&(Qt(n),Object.freeze(n)),i.j[b]=n}return n}function It(i,p,b,W,x){var n=n===void 0?!1:n;return xt(i),n=Ie(i,b,p,n),b=W||new b,i=it(i,p),x!=null?(n.splice(x,0,b),i.splice(x,0,b.m)):(n.push(b),i.push(b.m)),b}function ne(i,p){return i=Bt(i,p),i==null?0:i}function we(i,p){return i=Bt(i,p),i==null?"":i}function Kt(i){switch(typeof i){case"number":return isFinite(i)?i:String(i);case"object":if(i&&!Array.isArray(i)){if(pn(i))return Nn(i);if(i instanceof pe){var p=i.L;return p=p==null||typeof p=="string"?p:bn&&p instanceof Uint8Array?Nn(p):null,(i.L=p)||""}}}return i}function Vt(i){var p=Ee;return p=p===void 0?Tt:p,ke(i,p)}function Ke(i,p){if(i!=null){if(Array.isArray(i))i=ke(i,p);else if(Et(i)){var b={},W;for(W in i)b[W]=Ke(i[W],p);i=b}else i=p(i);return i}}function ke(i,p){for(var b=i.slice(),W=0;W<b.length;W++)b[W]=Ke(b[W],p);return Array.isArray(i)&&Zn(i)&1&&Mt(b),b}function Ee(i){return i&&typeof i=="object"&&i.toJSON?i.toJSON():(i=Kt(i),Array.isArray(i)?Vt(i):i)}function Tt(i){return pn(i)?new Uint8Array(i):i}function Le(i,p,b){i||(i=mn),mn=null;var W=this.constructor.h;i||(i=W?[W]:[]),this.h=(W?0:-1)-(this.constructor.g||0),this.j=void 0,this.m=i;t:{if(W=this.m.length,i=W-1,W&&(W=this.m[i],Et(W))){this.i=i-this.h,this.g=W;break t}p!==void 0&&-1<p?(this.i=Math.max(p,i+1-this.h),this.g=void 0):this.i=Number.MAX_VALUE}if(b)for(p=0;p<b.length;p++)if(i=b[p],i<this.i)i+=this.h,(W=this.m[i])?Array.isArray(W)&&Mt(W):this.m[i]=qe;else{W=this.g||(this.g=this.m[this.i+this.h]={});var x=W[i];x?Array.isArray(x)&&Mt(x):W[i]=qe}}Le.prototype.toJSON=function(){return Vt(this.m)},Le.prototype.toString=function(){return this.m.toString()};var mn;function Ae(){Le.apply(this,arguments)}if(yt(Ae,Le),Gt){var Me={};Object.defineProperties(Ae,(Me[Symbol.hasInstance]=un(function(){throw Error("Cannot perform instanceof checks for MutableMessage")}),Me))}function Qe(i,p,b){if(b){var W={},x;for(x in b){var n=b[x],s=n.ja;s||(W.F=n.pa||n.ha.P,n.ba?(W.U=Rn(n.ba),s=function(d){return function(e,o,c){return d.F(e,o,c,d.U)}}(W)):n.da?(W.T=We(n.X.g,n.da),s=function(d){return function(e,o,c){return d.F(e,o,c,d.T)}}(W)):s=W.F,n.ja=s),s(p,i,n.X),W={F:W.F,U:W.U,T:W.T}}}Xn(p,i)}var tn=Symbol();function De(i,p,b){return i[tn]||(i[tn]=function(W,x){return p(W,x,b)})}function Wn(i){var p=i[tn];if(!p){var b=a(i);p=function(W,x){return y(W,x,b)},i[tn]=p}return p}function Yn(i){var p=i.ba;if(p)return Wn(p);if(p=i.oa)return De(i.X.g,p,i.da)}function Se(i){var p=Yn(i),b=i.X,W=i.ha.O;return p?function(x,n){return W(x,n,b,p)}:function(x,n){return W(x,n,b)}}function ge(i,p,b,W,x,n){i=i();var s=0;for(i.length&&typeof i[0]!="number"&&(b(p,i[0]),s++);s<i.length;){b=i[s++];for(var d=s+1;d<i.length&&typeof i[d]!="number";)d++;var e=i[s++];switch(d-=s,d){case 0:W(p,b,e);break;case 1:W(p,b,e,i[s++]);break;case 2:x(p,b,e,i[s++],i[s++]);break;case 3:d=i[s++];var o=i[s++],c=i[s++];Array.isArray(c)?x(p,b,e,d,o,c):n(p,b,e,d,o,c);break;case 4:n(p,b,e,i[s++],i[s++],i[s++],i[s++]);break;default:throw Error("unexpected number of binary field arguments: "+d)}}return p}var en=Symbol();function Rn(i){var p=i[en];if(!p){var b=Ne(i);p=function(W,x){return F(W,x,b)},i[en]=p}return p}function We(i,p){var b=i[en];return b||(b=function(W,x){return Qe(W,x,p)},i[en]=b),b}var Vn=Symbol();function Te(i,p){i.push(p)}function on(i,p,b){i.push(p,b.P)}function gn(i,p,b,W,x){var n=Rn(x),s=b.P;i.push(p,function(d,e,o){return s(d,e,o,W,n)})}function Fn(i,p,b,W,x,n){var s=We(W,n),d=b.P;i.push(p,function(e,o,c){return d(e,o,c,W,s)})}function Ne(i){var p=i[Vn];return p||ge(i,i[Vn]=[],Te,on,gn,Fn)}var wn=Symbol();function Kn(i,p){i[0]=p}function kn(i,p,b,W){var x=b.O;i[p]=W?function(n,s,d){return x(n,s,d,W)}:x}function sn(i,p,b,W,x,n){var s=b.O,d=Wn(x);i[p]=function(e,o,c){return s(e,o,c,W,d,n)}}function Gn(i,p,b,W,x,n,s){var d=b.O,e=De(W,x,n);i[p]=function(o,c,t){return d(o,c,t,W,e,s)}}function a(i){var p=i[wn];return p||ge(i,i[wn]={},Kn,kn,sn,Gn)}function y(i,p,b){for(;Ge(p)&&p.h!=4;){var W=p.i,x=b[W];if(!x){var n=b[0];n&&(n=n[W])&&(x=b[W]=Se(n))}if((!x||!x(p,i,W))&&(x=p,W=i,n=x.j,Yt(x),!x.W)){var s=x.g.h;x=x.g.g,x=n===x?re||(re=new Uint8Array(0)):ze?s.slice(n,x):new Uint8Array(s.subarray(n,x)),(n=W.ca)?n.push(x):W.ca=[x]}}return i}function v(i,p,b){if(xe.length){var W=xe.pop();i&&(ve(W.g,i),W.i=-1,W.h=-1),i=W}else i=new _e(i);try{return y(new p,i,a(b))}finally{p=i.g,p.h=null,p.j=0,p.i=0,p.g=0,p.v=!1,i.i=-1,i.h=-1,100>xe.length&&xe.push(i)}}function F(i,p,b){for(var W=b.length,x=W%2==1,n=x?1:0;n<W;n+=2)(0,b[n+1])(p,i,b[n]);Qe(i,p,x?b[0]:void 0)}function E(i,p){var b=new Ue;F(i,b,Ne(p)),Xe(b,b.g.end()),i=new Uint8Array(b.h),p=b.i;for(var W=p.length,x=0,n=0;n<W;n++){var s=p[n];i.set(s,x),x+=s.length}return b.i=[i],i}function B(i,p){return{O:i,P:p}}var k=B(function(i,p,b){if(i.h!==5)return!1;i=i.g;var W=i.h[i.g],x=i.h[i.g+1],n=i.h[i.g+2],s=i.h[i.g+3];return i.g+=4,gt(i),x=(W<<0|x<<8|n<<16|s<<24)>>>0,i=2*(x>>31)+1,W=x>>>23&255,x&=8388607,at(p,b,W==255?x?NaN:1/0*i:W==0?i*Math.pow(2,-149)*x:i*Math.pow(2,W-150)*(x+Math.pow(2,23))),!0},function(i,p,b){if(p=Bt(p,b),p!=null){be(i.g,8*b+5),i=i.g;var W=p;W=(b=0>W?1:0)?-W:W,W===0?0<1/W?oe=ue=0:(ue=0,oe=2147483648):isNaN(W)?(ue=0,oe=2147483647):34028234663852886e22<W?(ue=0,oe=(b<<31|2139095040)>>>0):11754943508222875e-54>W?(W=Math.round(W/Math.pow(2,-149)),ue=0,oe=(b<<31|W)>>>0):(p=Math.floor(Math.log(W)/Math.LN2),W*=Math.pow(2,-p),W=Math.round(8388608*W),16777216<=W&&++p,ue=0,oe=(b<<31|p+127<<23|W&8388607)>>>0),b=oe,i.g.push(b>>>0&255),i.g.push(b>>>8&255),i.g.push(b>>>16&255),i.g.push(b>>>24&255)}}),O=B(function(i,p,b){if(i.h!==0)return!1;for(var W=i.g,x=128,n=0,s=i=0;4>s&&128<=x;s++)x=W.h[W.g++],gt(W),n|=(x&127)<<7*s;if(128<=x&&(x=W.h[W.g++],gt(W),n|=(x&127)<<28,i|=(x&127)>>4),128<=x)for(s=0;5>s&&128<=x;s++)x=W.h[W.g++],gt(W),i|=(x&127)<<7*s+3;if(128>x)W=n>>>0,x=i>>>0,(i=x&2147483648)&&(W=~W+1>>>0,x=~x>>>0,W==0&&(x=x+1>>>0)),W=4294967296*x+(W>>>0);else throw Pt();return at(p,b,i?-W:W),!0},function(i,p,b){if(p=Bt(p,b),p!=null&&p!=null){be(i.g,8*b),i=i.g;var W=p;for(b=0>W,W=Math.abs(W),p=W>>>0,W=Math.floor((W-p)/4294967296),W>>>=0,b&&(W=~W>>>0,p=(~p>>>0)+1,4294967295<p&&(p=0,W++,4294967295<W&&(W=0))),oe=p,ue=W,b=oe,p=ue;0<p||127<b;)i.g.push(b&127|128),b=(b>>>7|p<<25)>>>0,p>>>=7;i.g.push(b)}}),D=B(function(i,p,b){return i.h!==0?!1:(at(p,b,me(i.g)),!0)},function(i,p,b){if(p=Bt(p,b),p!=null&&p!=null)if(be(i.g,8*b),i=i.g,b=p,0<=b)be(i,b);else{for(p=0;9>p;p++)i.g.push(b&127|128),b>>=7;i.g.push(1)}}),rt=B(function(i,p,b){if(i.h!==2)return!1;var W=me(i.g)>>>0;i=i.g;var x=i.g;i.g+=W,gt(i),i=i.h;var n;if(In)(n=hn)||(n=hn=new TextDecoder("utf-8",{fatal:!0})),n=n.decode(i.subarray(x,x+W));else{W=x+W;for(var s=[],d=null,e,o,c;x<W;)e=i[x++],128>e?s.push(e):224>e?x>=W?ye():(o=i[x++],194>e||(o&192)!==128?(x--,ye()):s.push((e&31)<<6|o&63)):240>e?x>=W-1?ye():(o=i[x++],(o&192)!==128||e===224&&160>o||e===237&&160<=o||((n=i[x++])&192)!==128?(x--,ye()):s.push((e&15)<<12|(o&63)<<6|n&63)):244>=e?x>=W-2?ye():(o=i[x++],(o&192)!==128||(e<<28)+(o-144)>>30!==0||((n=i[x++])&192)!==128||((c=i[x++])&192)!==128?(x--,ye()):(e=(e&7)<<18|(o&63)<<12|(n&63)<<6|c&63,e-=65536,s.push((e>>10&1023)+55296,(e&1023)+56320))):ye(),8192<=s.length&&(d=an(d,s),s.length=0);n=an(d,s)}return at(p,b,n),!0},function(i,p,b){if(p=Bt(p,b),p!=null){var W=!1;if(W=W===void 0?!1:W,Ln){if(W&&/(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])/.test(p))throw Error("Found an unpaired surrogate");p=(vn||(vn=new TextEncoder)).encode(p)}else{for(var x=0,n=new Uint8Array(3*p.length),s=0;s<p.length;s++){var d=p.charCodeAt(s);if(128>d)n[x++]=d;else{if(2048>d)n[x++]=d>>6|192;else{if(55296<=d&&57343>=d){if(56319>=d&&s<p.length){var e=p.charCodeAt(++s);if(56320<=e&&57343>=e){d=1024*(d-55296)+e-56320+65536,n[x++]=d>>18|240,n[x++]=d>>12&63|128,n[x++]=d>>6&63|128,n[x++]=d&63|128;continue}else s--}if(W)throw Error("Found an unpaired surrogate");d=65533}n[x++]=d>>12|224,n[x++]=d>>6&63|128}n[x++]=d&63|128}}p=n.subarray(0,x)}be(i.g,8*b+2),be(i.g,p.length),Xe(i,i.g.end()),Xe(i,p)}}),dt=B(function(i,p,b,W,x){if(i.h!==2)return!1;p=It(p,b,W),b=i.g.i,W=me(i.g)>>>0;var n=i.g.g+W,s=n-b;if(0>=s&&(i.g.i=n,x(p,i),s=n-i.g.g),s)throw Error("Message parsing ended unexpectedly. Expected to read "+(W+" bytes, instead read "+(W-s)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return i.g.g=n,i.g.i=b,!0},function(i,p,b,W,x){if(p=Ie(p,W,b),p!=null)for(W=0;W<p.length;W++){var n=i;be(n.g,8*b+2);var s=n.g.end();Xe(n,s),s.push(n.h),n=s,x(p[W],i),s=i;var d=n.pop();for(d=s.h+s.g.length()-d;127<d;)n.push(d&127|128),d>>>=7,s.h++;n.push(d),s.h++}});function ct(){Ae.apply(this,arguments)}if(yt(ct,Ae),Gt){var Xt={};Object.defineProperties(ct,(Xt[Symbol.hasInstance]=un(Object[Symbol.hasInstance]),Xt))}function lt(i){ct.call(this,i)}yt(lt,ct);function st(){return[1,D,2,k,3,rt,4,rt]}function ht(i){ct.call(this,i,-1,Jt)}yt(ht,ct),ht.prototype.addClassification=function(i,p){return It(this,1,lt,i,p),this};function bt(){return[1,dt,lt,st]}var Jt=[1];function Ct(i){ct.call(this,i)}yt(Ct,ct);function At(){return[1,k,2,k,3,k,4,k,5,k]}function Ze(i){ct.call(this,i,-1,f)}yt(Ze,ct);function l(){return[1,dt,Ct,At]}var f=[1];function m(i){ct.call(this,i)}yt(m,ct);function w(){return[1,k,2,k,3,k,4,k,5,k,6,O]}function L(i,p,b){if(b=i.createShader(b===0?i.VERTEX_SHADER:i.FRAGMENT_SHADER),i.shaderSource(b,p),i.compileShader(b),!i.getShaderParameter(b,i.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
55
|
+
`+a.getProgramInfoLog(s));t=e.m=s,a.useProgram(t),o=a.getUniformLocation(t,"sampler0"),e.j={I:a.getAttribLocation(t,"aVertex"),H:a.getAttribLocation(t,"aTex"),ca:o},e.s=a.createBuffer(),a.bindBuffer(a.ARRAY_BUFFER,e.s),a.enableVertexAttribArray(e.j.I),a.vertexAttribPointer(e.j.I,2,a.FLOAT,!1,0,0),a.bufferData(a.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,null),e.o=a.createBuffer(),a.bindBuffer(a.ARRAY_BUFFER,e.o),a.enableVertexAttribArray(e.j.H),a.vertexAttribPointer(e.j.H,2,a.FLOAT,!1,0,0),a.bufferData(a.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,null),a.uniform1i(o,0)}t=e.j,a.useProgram(e.m),a.canvas.width=u.width,a.canvas.height=u.height,a.viewport(0,0,u.width,u.height),a.activeTexture(a.TEXTURE0),e.h.bindTexture2d(u.glName),a.enableVertexAttribArray(t.I),a.bindBuffer(a.ARRAY_BUFFER,e.s),a.vertexAttribPointer(t.I,2,a.FLOAT,!1,0,0),a.enableVertexAttribArray(t.H),a.bindBuffer(a.ARRAY_BUFFER,e.o),a.vertexAttribPointer(t.H,2,a.FLOAT,!1,0,0),a.bindFramebuffer(a.DRAW_FRAMEBUFFER?a.DRAW_FRAMEBUFFER:a.FRAMEBUFFER,null),a.clearColor(0,0,0,0),a.clear(a.COLOR_BUFFER_BIT),a.colorMask(!0,!0,!0,!0),a.drawArrays(a.TRIANGLE_FAN,0,4),a.disableVertexAttribArray(t.I),a.disableVertexAttribArray(t.H),a.bindBuffer(a.ARRAY_BUFFER,null),e.h.bindTexture2d(0)}function lt(e){this.g=e}var dt=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function xt(e,u){return u+e}function yt(e,u){window[e]=u}function it(e){var u=document.createElement("script");return u.setAttribute("src",e),u.setAttribute("crossorigin","anonymous"),new Promise(function(a){u.addEventListener("load",function(){a()},!1),u.addEventListener("error",function(){a()},!1),document.body.appendChild(u)})}function gt(){return ht(function(e){switch(e.g){case 1:return e.m=2,$(e,WebAssembly.instantiate(dt),4);case 4:e.g=3,e.m=0;break;case 2:return e.m=0,e.j=null,e.return(!1);case 3:return e.return(!0)}})}function vt(e){if(this.g=e,this.listeners={},this.j={},this.F={},this.m={},this.s={},this.G=this.o=this.R=!0,this.C=Promise.resolve(),this.P="",this.B={},this.locateFile=e&&e.locateFile||xt,typeof window=="object")var u=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")u=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.S=u,e.options){u=C(Object.keys(e.options));for(var a=u.next();!a.done;a=u.next()){a=a.value;var t=e.options[a].default;t!==void 0&&(this.j[a]=typeof t=="function"?t():t)}}}V=vt.prototype,V.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function Gt(e){var u,a,t,o,s,h,X,T,F,U,O;return ht(function(B){switch(B.g){case 1:return e.R?(u=e.g.files===void 0?[]:typeof e.g.files=="function"?e.g.files(e.j):e.g.files,$(B,gt(),2)):B.return();case 2:if(a=B.h,typeof window=="object")return yt("createMediapipeSolutionsWasm",{locateFile:e.locateFile}),yt("createMediapipeSolutionsPackedAssets",{locateFile:e.locateFile}),h=u.filter(function(M){return M.data!==void 0}),X=u.filter(function(M){return M.data===void 0}),T=Promise.all(h.map(function(M){var nt=g(e,M.url);if(M.path!==void 0){var ot=M.path;nt=nt.then(function(ut){return e.overrideFile(ot,ut),Promise.resolve(ut)})}return nt})),F=Promise.all(X.map(function(M){return M.simd===void 0||M.simd&&a||!M.simd&&!a?it(e.locateFile(M.url,e.S)):Promise.resolve()})).then(function(){var M,nt,ot;return ht(function(ut){if(ut.g==1)return M=window.createMediapipeSolutionsWasm,nt=window.createMediapipeSolutionsPackedAssets,ot=e,$(ut,M(nt),2);ot.h=ut.h,ut.g=0})}),U=function(){return ht(function(M){return e.g.graph&&e.g.graph.url?M=$(M,g(e,e.g.graph.url),0):(M.g=0,M=void 0),M})}(),$(B,Promise.all([F,T,U]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return t=u.filter(function(M){return M.simd===void 0||M.simd&&a||!M.simd&&!a}).map(function(M){return e.locateFile(M.url,e.S)}),importScripts.apply(null,pt(t)),o=e,$(B,createMediapipeSolutionsWasm(Module),6);case 6:o.h=B.h,e.l=new OffscreenCanvas(1,1),e.h.canvas=e.l,s=e.h.GL.createContext(e.l,{antialias:!1,alpha:!1,aa:typeof WebGL2RenderingContext!="undefined"?2:1}),e.h.GL.makeContextCurrent(s),B.g=4;break;case 7:if(e.l=document.createElement("canvas"),O=e.l.getContext("webgl2",{}),!O&&(O=e.l.getContext("webgl",{}),!O))return alert("Failed to create WebGL canvas context when passing video frame."),B.return();e.D=O,e.h.canvas=e.l,e.h.createContext(e.l,!0,!0,{});case 4:e.i=new e.h.SolutionWasm,e.R=!1,B.g=0}})}function Xt(e){var u,a,t,o,s,h,X,T;return ht(function(F){if(F.g==1){if(e.g.graph&&e.g.graph.url&&e.P===e.g.graph.url)return F.return();if(e.o=!0,!e.g.graph||!e.g.graph.url){F.g=2;return}return e.P=e.g.graph.url,$(F,g(e,e.g.graph.url),3)}for(F.g!=2&&(u=F.h,e.i.loadGraph(u)),a=C(Object.keys(e.B)),t=a.next();!t.done;t=a.next())o=t.value,e.i.overrideFile(o,e.B[o]);if(e.B={},e.g.listeners)for(s=C(e.g.listeners),h=s.next();!h.done;h=s.next())X=h.value,E(e,X);T=e.j,e.j={},e.setOptions(T),F.g=0})}V.reset=function(){var e=this;return ht(function(u){e.i&&(e.i.reset(),e.m={},e.s={}),u.g=0})},V.setOptions=function(e,u){var a=this;if(u=u||this.g.options){for(var t=[],o=[],s={},h=C(Object.keys(e)),X=h.next();!X.done;s={K:s.K,L:s.L},X=h.next()){var T=X.value;T in this.j&&this.j[T]===e[T]||(this.j[T]=e[T],X=u[T],X!==void 0&&(X.onChange&&(s.K=X.onChange,s.L=e[T],t.push(function(F){return function(){var U;return ht(function(O){if(O.g==1)return $(O,F.K(F.L),2);U=O.h,U===!0&&(a.o=!0),O.g=0})}}(s))),X.graphOptionXref&&(T={valueNumber:X.type===1?e[T]:0,valueBoolean:X.type===0?e[T]:!1,valueString:X.type===2?e[T]:""},X=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),X.graphOptionXref),T),o.push(X))))}(t.length!==0||o.length!==0)&&(this.o=!0,this.A=(this.A===void 0?[]:this.A).concat(o),this.v=(this.v===void 0?[]:this.v).concat(t))}};function i(e){var u,a,t,o,s,h,X;return ht(function(T){switch(T.g){case 1:if(!e.o)return T.return();if(!e.v){T.g=2;break}u=C(e.v),a=u.next();case 3:if(a.done){T.g=5;break}return t=a.value,$(T,t(),4);case 4:a=u.next(),T.g=3;break;case 5:e.v=void 0;case 2:if(e.A){for(o=new e.h.GraphOptionChangeRequestList,s=C(e.A),h=s.next();!h.done;h=s.next())X=h.value,o.push_back(X);e.i.changeOptions(o),o.delete(),e.A=void 0}e.o=!1,T.g=0}})}V.initialize=function(){var e=this;return ht(function(u){return u.g==1?$(u,Gt(e),2):u.g!=3?$(u,Xt(e),3):$(u,i(e),0)})};function g(e,u){var a,t;return ht(function(o){return u in e.F?o.return(e.F[u]):(a=e.locateFile(u,""),t=fetch(a).then(function(s){return s.arrayBuffer()}),e.F[u]=t,o.return(t))})}V.overrideFile=function(e,u){this.i?this.i.overrideFile(e,u):this.B[e]=u},V.clearOverriddenFiles=function(){this.B={},this.i&&this.i.clearOverriddenFiles()},V.send=function(e,u){var a=this,t,o,s,h,X,T,F,U,O;return ht(function(B){switch(B.g){case 1:return a.g.inputs?(t=1e3*(u==null?performance.now():u),$(B,a.C,2)):B.return();case 2:return $(B,a.initialize(),3);case 3:for(o=new a.h.PacketDataList,s=C(Object.keys(e)),h=s.next();!h.done;h=s.next())if(X=h.value,T=a.g.inputs[X]){t:{var M=e[X];switch(T.type){case"video":var nt=a.m[T.stream];if(nt||(nt=new k(a.h,a.D),a.m[T.stream]=nt),nt.l===0&&(nt.l=nt.h.createTexture()),typeof HTMLVideoElement!="undefined"&&M instanceof HTMLVideoElement)var ot=M.videoWidth,ut=M.videoHeight;else typeof HTMLImageElement!="undefined"&&M instanceof HTMLImageElement?(ot=M.naturalWidth,ut=M.naturalHeight):(ot=M.width,ut=M.height);ut={glName:nt.l,width:ot,height:ut},ot=nt.g,ot.canvas.width=ut.width,ot.canvas.height=ut.height,ot.activeTexture(ot.TEXTURE0),nt.h.bindTexture2d(nt.l),ot.texImage2D(ot.TEXTURE_2D,0,ot.RGBA,ot.RGBA,ot.UNSIGNED_BYTE,M),nt.h.bindTexture2d(0),nt=ut;break t;case"detections":for(nt=a.m[T.stream],nt||(nt=new lt(a.h),a.m[T.stream]=nt),nt.data||(nt.data=new nt.g.DetectionListData),nt.data.reset(M.length),ut=0;ut<M.length;++ut){ot=M[ut];var ft=nt.data,at=ft.setBoundingBox,Nt=ut,_t=ot.T,Pt=new Zt;if(Jt(Pt,1,_t.X),Jt(Pt,2,_t.Y),Jt(Pt,3,_t.height),Jt(Pt,4,_t.width),Jt(Pt,5,_t.rotation),Jt(Pt,6,_t.W),_t=Ye(Pt,Et),at.call(ft,Nt,_t),ot.O)for(ft=0;ft<ot.O.length;++ft){Pt=ot.O[ft];var Xe=!!Pt.visibility;at=nt.data,Nt=at.addNormalizedLandmark,_t=ut,Pt=Object.assign(Object.assign({},Pt),{visibility:Xe?Pt.visibility:0}),Xe=new K,Jt(Xe,1,Pt.x),Jt(Xe,2,Pt.y),Jt(Xe,3,Pt.z),Pt.visibility&&Jt(Xe,4,Pt.visibility),Pt=Ye(Xe,st),Nt.call(at,_t,Pt)}if(ot.M)for(ft=0;ft<ot.M.length;++ft)at=nt.data,Nt=at.addClassification,_t=ut,Pt=ot.M[ft],Xe=new vn,Jt(Xe,2,Pt.score),Pt.index&&Jt(Xe,1,Pt.index),Pt.label&&Jt(Xe,3,Pt.label),Pt.displayName&&Jt(Xe,4,Pt.displayName),Pt=Ye(Xe,f),Nt.call(at,_t,Pt)}nt=nt.data;break t;default:nt={}}}switch(F=nt,U=T.stream,T.type){case"video":o.pushTexture2d(Object.assign(Object.assign({},F),{stream:U,timestamp:t}));break;case"detections":O=F,O.stream=U,O.timestamp=t,o.pushDetectionList(O);break;default:throw Error("Unknown input config type: '"+T.type+"'")}}return a.i.send(o),$(B,a.C,4);case 4:o.delete(),B.g=0}})};function R(e,u,a){var t,o,s,h,X,T,F,U,O,B,M,nt,ot,ut;return ht(function(ft){switch(ft.g){case 1:if(!a)return ft.return(u);for(t={},o=0,s=C(Object.keys(a)),h=s.next();!h.done;h=s.next())X=h.value,T=a[X],typeof T!="string"&&T.type==="texture"&&u[T.stream]!==void 0&&++o;1<o&&(e.G=!1),F=C(Object.keys(a)),h=F.next();case 2:if(h.done){ft.g=4;break}if(U=h.value,O=a[U],typeof O=="string")return ot=t,ut=U,$(ft,w(e,U,u[O]),14);if(B=u[O.stream],O.type==="detection_list"){if(B){for(var at=B.getRectList(),Nt=B.getLandmarksList(),_t=B.getClassificationsList(),Pt=[],Xe=0;Xe<at.size();++Xe){var ln=Nn(at.get(Xe),Zt,Bt);ln={T:{X:Se(ln,1),Y:Se(ln,2),height:Se(ln,3),width:Se(ln,4),rotation:Se(ln,5,0),W:Oe(ln,6,0)},O:J(Nt.get(Xe)),M:S(Nn(_t.get(Xe),Z,_))},Pt.push(ln)}at=Pt}else at=[];t[U]=at,ft.g=7;break}if(O.type==="proto_list"){if(B){for(at=Array(B.size()),Nt=0;Nt<B.size();Nt++)at[Nt]=B.get(Nt);B.delete()}else at=[];t[U]=at,ft.g=7;break}if(B===void 0){ft.g=3;break}if(O.type==="float_list"){t[U]=B,ft.g=7;break}if(O.type==="proto"){t[U]=B,ft.g=7;break}if(O.type!=="texture")throw Error("Unknown output config type: '"+O.type+"'");return M=e.s[U],M||(M=new k(e.h,e.D),e.s[U]=M),$(ft,q(M,B,e.G),13);case 13:nt=ft.h,t[U]=nt;case 7:O.transform&&t[U]&&(t[U]=O.transform(t[U])),ft.g=3;break;case 14:ot[ut]=ft.h;case 3:h=F.next(),ft.g=2;break;case 4:return ft.return(t)}})}function w(e,u,a){var t;return ht(function(o){return typeof a=="number"||a instanceof Uint8Array||a instanceof e.h.Uint8BlobList?o.return(a):a instanceof e.h.Texture2dDataOut?(t=e.s[u],t||(t=new k(e.h,e.D),e.s[u]=t),o.return(q(t,a,e.G))):o.return(void 0)})}function E(e,u){for(var a=u.name||"$",t=[].concat(pt(u.wants)),o=new e.h.StringList,s=C(u.wants),h=s.next();!h.done;h=s.next())o.push_back(h.value);s=e.h.PacketListener.implement({onResults:function(X){for(var T={},F=0;F<u.wants.length;++F)T[t[F]]=X.get(F);var U=e.listeners[a];U&&(e.C=R(e,T,u.outs).then(function(O){O=U(O);for(var B=0;B<u.wants.length;++B){var M=T[t[B]];typeof M=="object"&&M.hasOwnProperty&&M.hasOwnProperty("delete")&&M.delete()}O&&(e.C=O)}))}}),e.i.attachMultiListener(o,s),o.delete()}V.onResults=function(e,u){this.listeners[u||"$"]=e},St("Solution",vt),St("OptionType",{BOOL:0,NUMBER:1,Z:2,0:"BOOL",1:"NUMBER",2:"STRING"});function n(e){return e.map(l)}function l(e){e=Nn(e,p,L);var u=e.getMesh();if(!u)return e;var a=new Float32Array(u.getVertexBufferList());u.getVertexBufferList=function(){return a};var t=new Uint32Array(u.getIndexBufferList());return u.getIndexBufferList=function(){return t},e}function d(e){var u=this;e=e||{},this.g=new vt({locateFile:e.locateFile,files:[{url:"holistic_solution_packed_assets_loader.js"},{simd:!1,url:"holistic_solution_wasm_bin.js"},{simd:!0,url:"holistic_solution_simd_wasm_bin.js"}],graph:{url:"holistic.binarypb"},inputs:{image:{type:"video",stream:"input_frames_gpu"}},listeners:[{wants:"left_hand_landmarks right_hand_landmarks face_landmarks pose_landmarks world_landmarks segmentation_mask image_transformed multi_face_geometry".split(" "),outs:{image:{type:"texture",stream:"image_transformed"},leftHandLandmarks:{type:"proto",stream:"left_hand_landmarks",transform:J},rightHandLandmarks:{type:"proto",stream:"right_hand_landmarks",transform:J},faceLandmarks:{type:"proto",stream:"face_landmarks",transform:J},poseLandmarks:{type:"proto",stream:"pose_landmarks",transform:J},ea:{type:"proto",stream:"world_landmarks",transform:J},segmentationMask:{type:"texture",stream:"segmentation_mask"},multiFaceGeometry:{type:"proto_list",stream:"multi_face_geometry",transform:n}}}],options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},enableFaceGeometry:{type:0,graphOptionXref:{calculatorName:"EnableFaceGeometryConstant",calculatorType:"ConstantSidePacketCalculator",fieldName:"bool_value"}},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},modelComplexity:{type:1,default:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelComplexity",fieldName:"int_value"},onChange:function(a){var t,o,s,h;return ht(function(X){if(X.g==1){switch(t="",a){case 1:t="pose_landmark_full.tflite";break;case 2:t="pose_landmark_heavy.tflite";break;default:t="pose_landmark_lite.tflite"}return o="third_party/mediapipe/modules/pose_landmark/"+t,s=u.g.locateFile(t,""),$(X,fetch(s),3)}return X.g!=2?$(X,X.h.arrayBuffer(),2):(h=X.h,u.g.overrideFile(o,h),$(X,u.g.reset(),0))})}},smoothLandmarks:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorSmoothLandmarks",fieldName:"bool_value"}},enableSegmentation:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorEnableSegmentation",fieldName:"bool_value"}},smoothSegmentation:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorSmoothSegmentation",fieldName:"bool_value"}},refineFaceLandmarks:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorRefineFaceLandmarks",fieldName:"bool_value"}},minDetectionConfidence:{type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"holisticlandmarkgpu__poselandmarkgpu__posedetectiongpu__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"holisticlandmarkgpu__poselandmarkgpu__poselandmarkbyroigpu__tensorstoposelandmarksandsegmentation__ThresholdingCalculator",fieldName:"threshold"}},cameraNear:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"near"}},cameraFar:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"far"}},cameraVerticalFovDegrees:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"vertical_fov_degrees"}}}})}V=d.prototype,V.close=function(){return this.g.close(),Promise.resolve()},V.onResults=function(e){this.g.onResults(e)},V.initialize=function(){var e=this;return ht(function(u){return $(u,e.g.initialize(),0)})},V.reset=function(){this.g.reset()},V.send=function(e){var u=this;return ht(function(a){return $(a,u.g.send(e),0)})},V.setOptions=function(e){this.g.setOptions(e)},St("Holistic",d),St("FACE_GEOMETRY",{Layout:{COLUMN_MAJOR:0,ROW_MAJOR:1,0:"COLUMN_MAJOR",1:"ROW_MAJOR"},PrimitiveType:{TRIANGLE:0,0:"TRIANGLE"},VertexType:{VERTEX_PT:0,0:"VERTEX_PT"},DEFAULT_CAMERA_PARAMS:{verticalFovDegrees:63,near:1,far:1e4}}),St("FACEMESH_LIPS",H),St("FACEMESH_LEFT_EYE",P),St("FACEMESH_LEFT_EYEBROW",j),St("FACEMESH_LEFT_IRIS",[[474,475],[475,476],[476,477],[477,474]]),St("FACEMESH_RIGHT_EYE",D),St("FACEMESH_RIGHT_EYEBROW",rt),St("FACEMESH_RIGHT_IRIS",[[469,470],[470,471],[471,472],[472,469]]),St("FACEMESH_FACE_OVAL",r),St("FACEMESH_CONTOURS",y),St("FACEMESH_TESSELATION",[[127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]]),St("HAND_CONNECTIONS",[[0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[0,17],[17,18],[18,19],[19,20]]),St("POSE_CONNECTIONS",[[0,1],[1,2],[2,3],[3,7],[0,4],[4,5],[5,6],[6,8],[9,10],[11,12],[11,13],[13,15],[15,17],[15,19],[15,21],[17,19],[12,14],[14,16],[16,18],[16,20],[16,22],[18,20],[11,23],[12,24],[23,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,31],[30,32],[27,31],[28,32]]),St("POSE_LANDMARKS",{NOSE:0,LEFT_EYE_INNER:1,LEFT_EYE:2,LEFT_EYE_OUTER:3,RIGHT_EYE_INNER:4,RIGHT_EYE:5,RIGHT_EYE_OUTER:6,LEFT_EAR:7,RIGHT_EAR:8,LEFT_RIGHT:9,RIGHT_LEFT:10,LEFT_SHOULDER:11,RIGHT_SHOULDER:12,LEFT_ELBOW:13,RIGHT_ELBOW:14,LEFT_WRIST:15,RIGHT_WRIST:16,LEFT_PINKY:17,RIGHT_PINKY:18,LEFT_INDEX:19,RIGHT_INDEX:20,LEFT_THUMB:21,RIGHT_THUMB:22,LEFT_HIP:23,RIGHT_HIP:24,LEFT_KNEE:25,RIGHT_KNEE:26,LEFT_ANKLE:27,RIGHT_ANKLE:28,LEFT_HEEL:29,RIGHT_HEEL:30,LEFT_FOOT_INDEX:31,RIGHT_FOOT_INDEX:32}),St("POSE_LANDMARKS_LEFT",{LEFT_EYE_INNER:1,LEFT_EYE:2,LEFT_EYE_OUTER:3,LEFT_EAR:7,LEFT_RIGHT:9,LEFT_SHOULDER:11,LEFT_ELBOW:13,LEFT_WRIST:15,LEFT_PINKY:17,LEFT_INDEX:19,LEFT_THUMB:21,LEFT_HIP:23,LEFT_KNEE:25,LEFT_ANKLE:27,LEFT_HEEL:29,LEFT_FOOT_INDEX:31}),St("POSE_LANDMARKS_RIGHT",{RIGHT_EYE_INNER:4,RIGHT_EYE:5,RIGHT_EYE_OUTER:6,RIGHT_EAR:8,RIGHT_LEFT:10,RIGHT_SHOULDER:12,RIGHT_ELBOW:14,RIGHT_WRIST:16,RIGHT_PINKY:18,RIGHT_INDEX:20,RIGHT_THUMB:22,RIGHT_HIP:24,RIGHT_KNEE:26,RIGHT_ANKLE:28,RIGHT_HEEL:30,RIGHT_FOOT_INDEX:32}),St("POSE_LANDMARKS_NEUTRAL",{NOSE:0}),St("matrixDataToMatrix",function(e){for(var u=e.getCols(),a=e.getRows(),t=e.getPackedDataList(),o=[],s=0;s<a;s++)o.push(Array(u));for(s=0;s<a;s++)for(var h=0;h<u;h++){var X=e.getLayout()===1?s*u+h:h*a+s;o[s][h]=t[X]}return o}),St("VERSION","0.5.1635989137")}).call(Fr);const xr={};(function(){var V;function v(n){var l=0;return function(){return l<n.length?{done:!1,value:n[l++]}:{done:!0}}}var W=typeof Object.defineProperties=="function"?Object.defineProperty:function(n,l,d){return n==Array.prototype||n==Object.prototype||(n[l]=d.value),n};function I(n){n=[typeof globalThis=="object"&&globalThis,n,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var l=0;l<n.length;++l){var d=n[l];if(d&&d.Math==Math)return d}throw Error("Cannot find global object")}var x=I(this);function A(n,l){if(l)t:{var d=x;n=n.split(".");for(var e=0;e<n.length-1;e++){var u=n[e];if(!(u in d))break t;d=d[u]}n=n[n.length-1],e=d[n],l=l(e),l!=e&&l!=null&&W(d,n,{configurable:!0,writable:!0,value:l})}}A("Symbol",function(n){function l(a){if(this instanceof l)throw new TypeError("Symbol is not a constructor");return new d(e+(a||"")+"_"+u++,a)}function d(a,t){this.g=a,W(this,"description",{configurable:!0,writable:!0,value:t})}if(n)return n;d.prototype.toString=function(){return this.g};var e="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",u=0;return l}),A("Symbol.iterator",function(n){if(n)return n;n=Symbol("Symbol.iterator");for(var l="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),d=0;d<l.length;d++){var e=x[l[d]];typeof e=="function"&&typeof e.prototype[n]!="function"&&W(e.prototype,n,{configurable:!0,writable:!0,value:function(){return Q(v(this))}})}return n});function Q(n){return n={next:n},n[Symbol.iterator]=function(){return this},n}function C(n){var l=typeof Symbol!="undefined"&&Symbol.iterator&&n[Symbol.iterator];return l?l.call(n):{next:v(n)}}function pt(n){if(!(n instanceof Array)){n=C(n);for(var l,d=[];!(l=n.next()).done;)d.push(l.value);n=d}return n}var _e=typeof Object.create=="function"?Object.create:function(n){function l(){}return l.prototype=n,new l},ct;if(typeof Object.setPrototypeOf=="function")ct=Object.setPrototypeOf;else{var jt;t:{var qe={a:!0},fe={};try{fe.__proto__=qe,jt=fe.a;break t}catch{}jt=!1}ct=jt?function(n,l){if(n.__proto__=l,n.__proto__!==l)throw new TypeError(n+" is not extensible");return n}:null}var He=ct;function Lt(n,l){if(n.prototype=_e(l.prototype),n.prototype.constructor=n,He)He(n,l);else for(var d in l)if(d!="prototype")if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(l,d);e&&Object.defineProperty(n,d,e)}else n[d]=l[d];n.na=l.prototype}function ue(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.u=this.o=0,this.j=null}function pe(n){if(n.l)throw new TypeError("Generator is already running");n.l=!0}ue.prototype.s=function(n){this.h=n};function he(n,l){n.j={da:l,ea:!0},n.g=n.o||n.u}ue.prototype.return=function(n){this.j={return:n},this.g=this.u};function $(n,l,d){return n.g=d,{value:l}}function Fn(n){this.g=new ue,this.h=n}function Hn(n,l){pe(n.g);var d=n.g.i;return d?je(n,"return"in d?d.return:function(e){return{value:e,done:!0}},l,n.g.return):(n.g.return(l),ee(n))}function je(n,l,d,e){try{var u=l.call(n.g.i,d);if(!(u instanceof Object))throw new TypeError("Iterator result "+u+" is not an object");if(!u.done)return n.g.l=!1,u;var a=u.value}catch(t){return n.g.i=null,he(n.g,t),ee(n)}return n.g.i=null,e.call(n.g,a),ee(n)}function ee(n){for(;n.g.g;)try{var l=n.h(n.g);if(l)return n.g.l=!1,{value:l.value,done:!1}}catch(d){n.g.h=void 0,he(n.g,d)}if(n.g.l=!1,n.g.j){if(l=n.g.j,n.g.j=null,l.ea)throw l.da;return{value:l.return,done:!0}}return{value:void 0,done:!0}}function jn(n){this.next=function(l){return pe(n.g),n.g.i?l=je(n,n.g.i.next,l,n.g.s):(n.g.s(l),l=ee(n)),l},this.throw=function(l){return pe(n.g),n.g.i?l=je(n,n.g.i.throw,l,n.g.s):(he(n.g,l),l=ee(n)),l},this.return=function(l){return Hn(n,l)},this[Symbol.iterator]=function(){return this}}function te(n){function l(e){return n.next(e)}function d(e){return n.throw(e)}return new Promise(function(e,u){function a(t){t.done?e(t.value):Promise.resolve(t.value).then(l,d).then(a,u)}a(n.next())})}function ht(n){return te(new jn(new Fn(n)))}A("Promise",function(n){function l(t){this.h=0,this.i=void 0,this.g=[],this.s=!1;var o=this.j();try{t(o.resolve,o.reject)}catch(s){o.reject(s)}}function d(){this.g=null}function e(t){return t instanceof l?t:new l(function(o){o(t)})}if(n)return n;d.prototype.h=function(t){if(this.g==null){this.g=[];var o=this;this.i(function(){o.l()})}this.g.push(t)};var u=x.setTimeout;d.prototype.i=function(t){u(t,0)},d.prototype.l=function(){for(;this.g&&this.g.length;){var t=this.g;this.g=[];for(var o=0;o<t.length;++o){var s=t[o];t[o]=null;try{s()}catch(h){this.j(h)}}}this.g=null},d.prototype.j=function(t){this.i(function(){throw t})},l.prototype.j=function(){function t(h){return function(X){s||(s=!0,h.call(o,X))}}var o=this,s=!1;return{resolve:t(this.D),reject:t(this.l)}},l.prototype.D=function(t){if(t===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(t instanceof l)this.H(t);else{t:switch(typeof t){case"object":var o=t!=null;break t;case"function":o=!0;break t;default:o=!1}o?this.A(t):this.o(t)}},l.prototype.A=function(t){var o=void 0;try{o=t.then}catch(s){this.l(s);return}typeof o=="function"?this.I(o,t):this.o(t)},l.prototype.l=function(t){this.u(2,t)},l.prototype.o=function(t){this.u(1,t)},l.prototype.u=function(t,o){if(this.h!=0)throw Error("Cannot settle("+t+", "+o+"): Promise already settled in state"+this.h);this.h=t,this.i=o,this.h===2&&this.G(),this.B()},l.prototype.G=function(){var t=this;u(function(){if(t.C()){var o=x.console;typeof o!="undefined"&&o.error(t.i)}},1)},l.prototype.C=function(){if(this.s)return!1;var t=x.CustomEvent,o=x.Event,s=x.dispatchEvent;return typeof s=="undefined"?!0:(typeof t=="function"?t=new t("unhandledrejection",{cancelable:!0}):typeof o=="function"?t=new o("unhandledrejection",{cancelable:!0}):(t=x.document.createEvent("CustomEvent"),t.initCustomEvent("unhandledrejection",!1,!0,t)),t.promise=this,t.reason=this.i,s(t))},l.prototype.B=function(){if(this.g!=null){for(var t=0;t<this.g.length;++t)a.h(this.g[t]);this.g=null}};var a=new d;return l.prototype.H=function(t){var o=this.j();t.M(o.resolve,o.reject)},l.prototype.I=function(t,o){var s=this.j();try{t.call(o,s.resolve,s.reject)}catch(h){s.reject(h)}},l.prototype.then=function(t,o){function s(F,U){return typeof F=="function"?function(O){try{h(F(O))}catch(B){X(B)}}:U}var h,X,T=new l(function(F,U){h=F,X=U});return this.M(s(t,h),s(o,X)),T},l.prototype.catch=function(t){return this.then(void 0,t)},l.prototype.M=function(t,o){function s(){switch(h.h){case 1:t(h.i);break;case 2:o(h.i);break;default:throw Error("Unexpected state: "+h.h)}}var h=this;this.g==null?a.h(s):this.g.push(s),this.s=!0},l.resolve=e,l.reject=function(t){return new l(function(o,s){s(t)})},l.race=function(t){return new l(function(o,s){for(var h=C(t),X=h.next();!X.done;X=h.next())e(X.value).M(o,s)})},l.all=function(t){var o=C(t),s=o.next();return s.done?e([]):new l(function(h,X){function T(O){return function(B){F[O]=B,U--,U==0&&h(F)}}var F=[],U=0;do F.push(void 0),U++,e(s.value).M(T(F.length-1),X),s=o.next();while(!s.done)})},l});function Jn(n,l){n instanceof String&&(n+="");var d=0,e=!1,u={next:function(){if(!e&&d<n.length){var a=d++;return{value:l(a,n[a]),done:!1}}return e=!0,{done:!0,value:void 0}}};return u[Symbol.iterator]=function(){return u},u}var Cn=typeof Object.assign=="function"?Object.assign:function(n,l){for(var d=1;d<arguments.length;d++){var e=arguments[d];if(e)for(var u in e)Object.prototype.hasOwnProperty.call(e,u)&&(n[u]=e[u])}return n};A("Object.assign",function(n){return n||Cn}),A("Object.is",function(n){return n||function(l,d){return l===d?l!==0||1/l===1/d:l!==l&&d!==d}}),A("Array.prototype.includes",function(n){return n||function(l,d){var e=this;e instanceof String&&(e=String(e));var u=e.length;for(d=d||0,0>d&&(d=Math.max(d+u,0));d<u;d++){var a=e[d];if(a===l||Object.is(a,l))return!0}return!1}}),A("String.prototype.includes",function(n){return n||function(l,d){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(l instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(l,d||0)!==-1}}),A("Array.prototype.keys",function(n){return n||function(){return Jn(this,function(l){return l})}});var ye=this||self;function St(n,l){n=n.split(".");var d=ye;n[0]in d||typeof d.execScript=="undefined"||d.execScript("var "+n[0]);for(var e;n.length&&(e=n.shift());)n.length||l===void 0?d[e]&&d[e]!==Object.prototype[e]?d=d[e]:d=d[e]={}:d[e]=l}function We(){throw Error("Invalid UTF8")}function tn(n,l){return l=String.fromCharCode.apply(null,l),n==null?l:n+l}var hn,Wn=typeof TextDecoder!="undefined",bn,xn=typeof TextEncoder!="undefined",en={},un=null;function In(n){var l;l===void 0&&(l=0),nn(),l=en[l];for(var d=Array(Math.floor(n.length/3)),e=l[64]||"",u=0,a=0;u<n.length-2;u+=3){var t=n[u],o=n[u+1],s=n[u+2],h=l[t>>2];t=l[(t&3)<<4|o>>4],o=l[(o&15)<<2|s>>6],s=l[s&63],d[a++]=h+t+o+s}switch(h=0,s=e,n.length-u){case 2:h=n[u+1],s=l[(h&15)<<2]||e;case 1:n=n[u],d[a]=l[n>>2]+l[(n&3)<<4|h>>4]+s+e}return d.join("")}function Vn(n){var l=n.length,d=3*l/4;d%3?d=Math.floor(d):"=.".indexOf(n[l-1])!=-1&&(d="=.".indexOf(n[l-2])!=-1?d-2:d-1);var e=new Uint8Array(d),u=0;return pn(n,function(a){e[u++]=a}),u!==d?e.subarray(0,u):e}function pn(n,l){function d(s){for(;e<n.length;){var h=n.charAt(e++),X=un[h];if(X!=null)return X;if(!/^[\s\xa0]*$/.test(h))throw Error("Unknown base64 encoding at char: "+h)}return s}nn();for(var e=0;;){var u=d(-1),a=d(0),t=d(64),o=d(64);if(o===64&&u===-1)break;l(u<<2|a>>4),t!=64&&(l(a<<4&240|t>>2),o!=64&&l(t<<6&192|o))}}function nn(){if(!un){un={};for(var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),l=["+/=","+/","-_=","-_.","-_"],d=0;5>d;d++){var e=n.concat(l[d].split(""));en[d]=e;for(var u=0;u<e.length;u++){var a=e[u];un[a]===void 0&&(un[a]=u)}}}}var Zn=typeof Uint8Array=="function";function dn(n){return Zn&&n!=null&&n instanceof Uint8Array}var ce;function ve(n){if(this.L=n,n!==null&&n.length===0)throw Error("ByteString should be constructed with non-empty values")}var Pe=typeof Uint8Array.prototype.slice=="function",le=0,ae=0;function ze(n,l){if(n.constructor===Uint8Array)return n;if(n.constructor===ArrayBuffer)return new Uint8Array(n);if(n.constructor===Array)return new Uint8Array(n);if(n.constructor===String)return Vn(n);if(n.constructor===ve)return!l&&(l=n.L)&&l.constructor===Uint8Array?l:(l=n.L,l=l==null||dn(l)?l:typeof l=="string"?Vn(l):null,(n=n.L=l)?new Uint8Array(n):ce||(ce=new Uint8Array(0)));if(n instanceof Uint8Array)return new Uint8Array(n.buffer,n.byteOffset,n.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function xe(n,l){return Error("Invalid wire type: "+n+" (at position "+l+")")}function Ct(){return Error("Failed to read varint, encoding is invalid.")}function re(n,l){l=l===void 0?{}:l,l=l.v===void 0?!1:l.v,this.h=null,this.g=this.i=this.j=0,this.v=l,n&&Ve(this,n)}function Ve(n,l){n.h=ze(l,n.v),n.j=0,n.i=n.h.length,n.g=n.j}re.prototype.reset=function(){this.g=this.j};function It(n){if(n.g>n.i)throw Error("Tried to read past the end of the data "+n.g+" > "+n.i)}function de(n){var l=n.h,d=l[n.g],e=d&127;if(128>d)return n.g+=1,It(n),e;if(d=l[n.g+1],e|=(d&127)<<7,128>d)return n.g+=2,It(n),e;if(d=l[n.g+2],e|=(d&127)<<14,128>d)return n.g+=3,It(n),e;if(d=l[n.g+3],e|=(d&127)<<21,128>d)return n.g+=4,It(n),e;if(d=l[n.g+4],n.g+=5,e|=(d&15)<<28,128>d)return It(n),e;if(128<=l[n.g++]&&128<=l[n.g++]&&128<=l[n.g++]&&128<=l[n.g++]&&128<=l[n.g++])throw Ct();return It(n),e}var At=[];function ne(){this.g=[]}ne.prototype.length=function(){return this.g.length},ne.prototype.end=function(){var n=this.g;return this.g=[],n};function Ge(n,l){for(;127<l;)n.g.push(l&127|128),l>>>=7;n.g.push(l)}function Be(n){var l={},d=l.W===void 0?!1:l.W;this.l={v:l.v===void 0?!1:l.v},this.W=d,l=this.l,At.length?(d=At.pop(),l&&(d.v=l.v),n&&Ve(d,n),n=d):n=new re(n,l),this.g=n,this.j=this.g.g,this.h=this.i=-1}Be.prototype.reset=function(){this.g.reset(),this.j=this.g.g,this.h=this.i=-1};function se(n){var l=n.g;if(l.g==l.i)return!1;n.j=n.g.g;var d=de(n.g)>>>0;if(l=d>>>3,d&=7,!(0<=d&&5>=d))throw xe(d,n.j);if(1>l)throw Error("Invalid field number: "+l+" (at position "+n.j+")");return n.i=l,n.h=d,!0}function Yt(n){switch(n.h){case 0:if(n.h!=0)Yt(n);else t:{n=n.g;for(var l=n.g,d=l+10;l<d;)if((n.h[l++]&128)===0){n.g=l,It(n);break t}throw Ct()}break;case 1:n=n.g,n.g+=8,It(n);break;case 2:n.h!=2?Yt(n):(l=de(n.g)>>>0,n=n.g,n.g+=l,It(n));break;case 5:n=n.g,n.g+=4,It(n);break;case 3:l=n.i;do{if(!se(n))throw Error("Unmatched start-group tag: stream EOF");if(n.h==4){if(n.i!=l)throw Error("Unmatched end-group tag");break}Yt(n)}while(1);break;default:throw xe(n.h,n.j)}}var Ie=[];function Je(){this.i=[],this.h=0,this.g=new ne}function ge(n,l){l.length!==0&&(n.i.push(l),n.h+=l.length)}function Xn(n,l){if(l=l.ba){ge(n,n.g.end());for(var d=0;d<l.length;d++)ge(n,l[d])}}var Qe=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function sn(n,l){Object.isFrozen(n)||(Qe?n[Qe]|=l:n.N!==void 0?n.N|=l:Object.defineProperties(n,{N:{value:l,configurable:!0,writable:!0,enumerable:!1}}))}function cn(n){var l;return Qe?l=n[Qe]:l=n.N,l==null?0:l}function ie(n){return sn(n,1),n}function Re(n){return Array.isArray(n)?!!(cn(n)&2):!1}function oe(n){if(!Array.isArray(n))throw Error("cannot mark non-array as immutable");sn(n,2)}function Mt(n){return n!==null&&typeof n=="object"&&!Array.isArray(n)&&n.constructor===Object}var Ce=Object.freeze(ie([]));function Ot(n){if(Re(n.m))throw Error("Cannot mutate an immutable Message")}var Ut=typeof Symbol!="undefined"&&typeof Symbol.hasInstance!="undefined";function gn(n){return{value:n,configurable:!1,writable:!1,enumerable:!1}}function $t(n,l,d){return l===-1?null:l>=n.i?n.g?n.g[l]:void 0:(d===void 0?0:d)&&n.g&&(d=n.g[l],d!=null)?d:n.m[l+n.h]}function Vt(n,l,d,e){e=e===void 0?!1:e,Ot(n),l<n.i&&!e?n.m[l+n.h]=d:(n.g||(n.g=n.m[n.i+n.h]={}))[l]=d}function bt(n,l,d,e){d=d===void 0?!0:d,e=e===void 0?!1:e;var u=$t(n,l,e);return u==null&&(u=Ce),Re(n.m)?d&&(oe(u),Object.freeze(u)):(u===Ce||Re(u))&&(u=ie(u.slice()),Vt(n,l,u,e)),u}function zt(n,l,d){return n=$t(n,l),n=n==null?n:+n,n==null?d===void 0?0:d:n}function Fe(n,l,d,e){n.j||(n.j={});var u=Re(n.m),a=n.j[d];if(!a){e=bt(n,d,!0,e===void 0?!1:e),a=[],u=u||Re(e);for(var t=0;t<e.length;t++)a[t]=new l(e[t]),u&&oe(a[t].m);u&&(oe(a),Object.freeze(a)),n.j[d]=a}return a}function Kt(n,l,d,e,u){var a=a===void 0?!1:a;return Ot(n),a=Fe(n,d,l,a),d=e||new d,n=bt(n,l),u!=null?(a.splice(u,0,d),n.splice(u,0,d.m)):(a.push(d),n.push(d.m)),d}function Qt(n,l){return n=$t(n,l),n==null?0:n}function Le(n,l){return n=$t(n,l),n==null?"":n}function kt(n){switch(typeof n){case"number":return isFinite(n)?n:String(n);case"object":if(n&&!Array.isArray(n)){if(dn(n))return In(n);if(n instanceof ve){var l=n.L;return l=l==null||typeof l=="string"?l:Zn&&l instanceof Uint8Array?In(l):null,(n.L=l)||""}}}return n}function Rt(n){var l=Se;return l=l===void 0?Jt:l,Oe(n,l)}function Ae(n,l){if(n!=null){if(Array.isArray(n))n=Oe(n,l);else if(Mt(n)){var d={},e;for(e in n)d[e]=Ae(n[e],l);n=d}else n=l(n);return n}}function Oe(n,l){for(var d=n.slice(),e=0;e<d.length;e++)d[e]=Ae(d[e],l);return Array.isArray(n)&&cn(n)&1&&ie(d),d}function Se(n){return n&&typeof n=="object"&&n.toJSON?n.toJSON():(n=kt(n),Array.isArray(n)?Rt(n):n)}function Jt(n){return dn(n)?new Uint8Array(n):n}function Ne(n,l,d){n||(n=an),an=null;var e=this.constructor.h;n||(n=e?[e]:[]),this.h=(e?0:-1)-(this.constructor.g||0),this.j=void 0,this.m=n;t:{if(e=this.m.length,n=e-1,e&&(e=this.m[n],Mt(e))){this.i=n-this.h,this.g=e;break t}l!==void 0&&-1<l?(this.i=Math.max(l,n+1-this.h),this.g=void 0):this.i=Number.MAX_VALUE}if(d)for(l=0;l<d.length;l++)if(n=d[l],n<this.i)n+=this.h,(e=this.m[n])?Array.isArray(e)&&ie(e):this.m[n]=Ce;else{e=this.g||(this.g=this.m[this.i+this.h]={});var u=e[n];u?Array.isArray(u)&&ie(u):e[n]=Ce}}Ne.prototype.toJSON=function(){return Rt(this.m)},Ne.prototype.toString=function(){return this.m.toString()};var an;function De(){Ne.apply(this,arguments)}if(Lt(De,Ne),Ut){var Ee={};Object.defineProperties(De,(Ee[Symbol.hasInstance]=gn(function(){throw Error("Cannot perform instanceof checks for MutableMessage")}),Ee))}function Me(n,l,d){if(d){var e={},u;for(u in d){var a=d[u],t=a.ha;t||(e.F=a.la||a.fa.P,a.aa?(e.U=fn(a.aa),t=function(o){return function(s,h,X){return o.F(s,h,X,o.U)}}(e)):a.ca?(e.T=Te(a.X.g,a.ca),t=function(o){return function(s,h,X){return o.F(s,h,X,o.T)}}(e)):t=e.F,a.ha=t),t(l,n,a.X),e={F:e.F,U:e.U,T:e.T}}}Xn(l,n)}var $e=Symbol();function me(n,l,d){return n[$e]||(n[$e]=function(e,u){return l(e,u,d)})}function Ye(n){var l=n[$e];if(!l){var d=f(n);l=function(e,u){return b(e,u,d)},n[$e]=l}return l}function Nn(n){var l=n.aa;if(l)return Ye(l);if(l=n.ka)return me(n.X.g,l,n.ca)}function Ue(n){var l=Nn(n),d=n.X,e=n.fa.O;return l?function(u,a){return e(u,a,d,l)}:function(u,a){return e(u,a,d)}}function be(n,l,d,e,u,a){n=n();var t=0;for(n.length&&typeof n[0]!="number"&&(d(l,n[0]),t++);t<n.length;){d=n[t++];for(var o=t+1;o<n.length&&typeof n[o]!="number";)o++;var s=n[t++];switch(o-=t,o){case 0:e(l,d,s);break;case 1:e(l,d,s,n[t++]);break;case 2:u(l,d,s,n[t++],n[t++]);break;case 3:o=n[t++];var h=n[t++],X=n[t++];Array.isArray(X)?u(l,d,s,o,h,X):a(l,d,s,o,h,X);break;case 4:a(l,d,s,n[t++],n[t++],n[t++],n[t++]);break;default:throw Error("unexpected number of binary field arguments: "+o)}}return l}var rn=Symbol();function fn(n){var l=n[rn];if(!l){var d=Ke(n);l=function(e,u){return Y(e,u,d)},n[rn]=l}return l}function Te(n,l){var d=n[rn];return d||(d=function(e,u){return Me(e,u,l)},n[rn]=d),d}var Sn=Symbol();function ke(n,l){n.push(l)}function on(n,l,d){n.push(l,d.P)}function mn(n,l,d,e,u){var a=fn(u),t=d.P;n.push(l,function(o,s,h){return t(o,s,h,e,a)})}function Ln(n,l,d,e,u,a){var t=Te(e,a),o=d.P;n.push(l,function(s,h,X){return o(s,h,X,e,t)})}function Ke(n){var l=n[Sn];return l||be(n,n[Sn]=[],ke,on,mn,Ln)}var yn=Symbol();function Yn(n,l){n[0]=l}function Un(n,l,d,e){var u=d.O;n[l]=e?function(a,t,o){return u(a,t,o,e)}:u}function vn(n,l,d,e,u,a){var t=d.O,o=Ye(u);n[l]=function(s,h,X){return t(s,h,X,e,o,a)}}function Gn(n,l,d,e,u,a,t){var o=d.O,s=me(e,u,a);n[l]=function(h,X,T){return o(h,X,T,e,s,t)}}function f(n){var l=n[yn];return l||be(n,n[yn]={},Yn,Un,vn,Gn)}function b(n,l,d){for(;se(l)&&l.h!=4;){var e=l.i,u=d[e];if(!u){var a=d[0];a&&(a=a[e])&&(u=d[e]=Ue(a))}if((!u||!u(l,n,e))&&(u=l,e=n,a=u.j,Yt(u),!u.W)){var t=u.g.h;u=u.g.g,u=a===u?ce||(ce=new Uint8Array(0)):Pe?t.slice(a,u):new Uint8Array(t.subarray(a,u)),(a=e.ba)?a.push(u):e.ba=[u]}}return n}function Z(n,l,d){if(Ie.length){var e=Ie.pop();n&&(Ve(e.g,n),e.i=-1,e.h=-1),n=e}else n=new Be(n);try{return b(new l,n,f(d))}finally{l=n.g,l.h=null,l.j=0,l.i=0,l.g=0,l.v=!1,n.i=-1,n.h=-1,100>Ie.length&&Ie.push(n)}}function Y(n,l,d){for(var e=d.length,u=e%2==1,a=u?1:0;a<e;a+=2)(0,d[a+1])(l,n,d[a]);Me(n,l,u?d[0]:void 0)}function _(n,l){var d=new Je;Y(n,d,Ke(l)),ge(d,d.g.end()),n=new Uint8Array(d.h),l=d.i;for(var e=l.length,u=0,a=0;a<e;a++){var t=l[a];n.set(t,u),u+=t.length}return d.i=[n],n}function et(n,l){return{O:n,P:l}}var K=et(function(n,l,d){if(n.h!==5)return!1;n=n.g;var e=n.h[n.g],u=n.h[n.g+1],a=n.h[n.g+2],t=n.h[n.g+3];return n.g+=4,It(n),u=(e<<0|u<<8|a<<16|t<<24)>>>0,n=2*(u>>31)+1,e=u>>>23&255,u&=8388607,Vt(l,d,e==255?u?NaN:1/0*n:e==0?n*Math.pow(2,-149)*u:n*Math.pow(2,e-150)*(u+Math.pow(2,23))),!0},function(n,l,d){if(l=$t(l,d),l!=null){Ge(n.g,8*d+5),n=n.g;var e=l;e=(d=0>e?1:0)?-e:e,e===0?0<1/e?le=ae=0:(ae=0,le=2147483648):isNaN(e)?(ae=0,le=2147483647):34028234663852886e22<e?(ae=0,le=(d<<31|2139095040)>>>0):11754943508222875e-54>e?(e=Math.round(e/Math.pow(2,-149)),ae=0,le=(d<<31|e)>>>0):(l=Math.floor(Math.log(e)/Math.LN2),e*=Math.pow(2,-l),e=Math.round(8388608*e),16777216<=e&&++l,ae=0,le=(d<<31|l+127<<23|e&8388607)>>>0),d=le,n.g.push(d>>>0&255),n.g.push(d>>>8&255),n.g.push(d>>>16&255),n.g.push(d>>>24&255)}}),tt=et(function(n,l,d){if(n.h!==0)return!1;for(var e=n.g,u=128,a=0,t=n=0;4>t&&128<=u;t++)u=e.h[e.g++],It(e),a|=(u&127)<<7*t;if(128<=u&&(u=e.h[e.g++],It(e),a|=(u&127)<<28,n|=(u&127)>>4),128<=u)for(t=0;5>t&&128<=u;t++)u=e.h[e.g++],It(e),n|=(u&127)<<7*t+3;if(128>u)e=a>>>0,u=n>>>0,(n=u&2147483648)&&(e=~e+1>>>0,u=~u>>>0,e==0&&(u=u+1>>>0)),e=4294967296*u+(e>>>0);else throw Ct();return Vt(l,d,n?-e:e),!0},function(n,l,d){if(l=$t(l,d),l!=null&&l!=null){Ge(n.g,8*d),n=n.g;var e=l;for(d=0>e,e=Math.abs(e),l=e>>>0,e=Math.floor((e-l)/4294967296),e>>>=0,d&&(e=~e>>>0,l=(~l>>>0)+1,4294967295<l&&(l=0,e++,4294967295<e&&(e=0))),le=l,ae=e,d=le,l=ae;0<l||127<d;)n.g.push(d&127|128),d=(d>>>7|l<<25)>>>0,l>>>=7;n.g.push(d)}}),st=et(function(n,l,d){return n.h!==0?!1:(Vt(l,d,de(n.g)),!0)},function(n,l,d){if(l=$t(l,d),l!=null&&l!=null)if(Ge(n.g,8*d),n=n.g,d=l,0<=d)Ge(n,d);else{for(l=0;9>l;l++)n.g.push(d&127|128),d>>=7;n.g.push(1)}}),mt=et(function(n,l,d){if(n.h!==2)return!1;var e=de(n.g)>>>0;n=n.g;var u=n.g;n.g+=e,It(n),n=n.h;var a;if(Wn)(a=hn)||(a=hn=new TextDecoder("utf-8",{fatal:!0})),a=a.decode(n.subarray(u,u+e));else{e=u+e;for(var t=[],o=null,s,h,X;u<e;)s=n[u++],128>s?t.push(s):224>s?u>=e?We():(h=n[u++],194>s||(h&192)!==128?(u--,We()):t.push((s&31)<<6|h&63)):240>s?u>=e-1?We():(h=n[u++],(h&192)!==128||s===224&&160>h||s===237&&160<=h||((a=n[u++])&192)!==128?(u--,We()):t.push((s&15)<<12|(h&63)<<6|a&63)):244>=s?u>=e-2?We():(h=n[u++],(h&192)!==128||(s<<28)+(h-144)>>30!==0||((a=n[u++])&192)!==128||((X=n[u++])&192)!==128?(u--,We()):(s=(s&7)<<18|(h&63)<<12|(a&63)<<6|X&63,s-=65536,t.push((s>>10&1023)+55296,(s&1023)+56320))):We(),8192<=t.length&&(o=tn(o,t),t.length=0);a=tn(o,t)}return Vt(l,d,a),!0},function(n,l,d){if(l=$t(l,d),l!=null){var e=!1;if(e=e===void 0?!1:e,xn){if(e&&/(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])/.test(l))throw Error("Found an unpaired surrogate");l=(bn||(bn=new TextEncoder)).encode(l)}else{for(var u=0,a=new Uint8Array(3*l.length),t=0;t<l.length;t++){var o=l.charCodeAt(t);if(128>o)a[u++]=o;else{if(2048>o)a[u++]=o>>6|192;else{if(55296<=o&&57343>=o){if(56319>=o&&t<l.length){var s=l.charCodeAt(++t);if(56320<=s&&57343>=s){o=1024*(o-55296)+s-56320+65536,a[u++]=o>>18|240,a[u++]=o>>12&63|128,a[u++]=o>>6&63|128,a[u++]=o&63|128;continue}else t--}if(e)throw Error("Found an unpaired surrogate");o=65533}a[u++]=o>>12|224,a[u++]=o>>6&63|128}a[u++]=o&63|128}}l=a.subarray(0,u)}Ge(n.g,8*d+2),Ge(n.g,l.length),ge(n,n.g.end()),ge(n,l)}}),Ft=et(function(n,l,d,e,u){if(n.h!==2)return!1;l=Kt(l,d,e),d=n.g.i,e=de(n.g)>>>0;var a=n.g.g+e,t=a-d;if(0>=t&&(n.g.i=a,u(l,n),t=a-n.g.g),t)throw Error("Message parsing ended unexpectedly. Expected to read "+(e+" bytes, instead read "+(e-t)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return n.g.g=a,n.g.i=d,!0},function(n,l,d,e,u){if(l=Fe(l,e,d),l!=null)for(e=0;e<l.length;e++){var a=n;Ge(a.g,8*d+2);var t=a.g.end();ge(a,t),t.push(a.h),a=t,u(l[e],n),t=n;var o=a.pop();for(o=t.h+t.g.length()-o;127<o;)a.push(o&127|128),o>>>=7,t.h++;a.push(o),t.h++}});function wt(){De.apply(this,arguments)}if(Lt(wt,De),Ut){var Ht={};Object.defineProperties(wt,(Ht[Symbol.hasInstance]=gn(Object[Symbol.hasInstance]),Ht))}function Wt(n){wt.call(this,n)}Lt(Wt,wt);function Zt(){return[1,st,2,K,3,mt,4,mt]}function Tt(n){wt.call(this,n,-1,Bt)}Lt(Tt,wt),Tt.prototype.addClassification=function(n,l){return Kt(this,1,Wt,n,l),this};function Et(){return[1,Ft,Wt,Zt]}var Bt=[1];function Dt(n){wt.call(this,n)}Lt(Dt,wt);function qt(){return[1,K,2,K,3,K,4,K,5,K]}function Ze(n){wt.call(this,n,-1,p)}Lt(Ze,wt);function c(){return[1,Ft,Dt,qt]}var p=[1];function m(n){wt.call(this,n)}Lt(m,wt);function L(){return[1,K,2,K,3,K,4,K,5,K,6,tt]}var H=[[61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]],P=[[263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]],j=[[276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]],D=[[33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]],rt=[[46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]],r=[[10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]],y=[].concat(pt(H),pt(P),pt(j),pt(D),pt(rt),pt(r));function G(n,l,d){if(d=n.createShader(d===0?n.VERTEX_SHADER:n.FRAGMENT_SHADER),n.shaderSource(d,l),n.compileShader(d),!n.getShaderParameter(d,n.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
56
56
|
|
|
57
|
-
`+
|
|
57
|
+
`+n.getShaderInfoLog(d));return d}function S(n){return Fe(n,Wt,1).map(function(l){return{index:Qt(l,1),ga:zt(l,2),label:$t(l,3)!=null?Le(l,3):void 0,displayName:$t(l,4)!=null?Le(l,4):void 0}})}function N(n){return{x:zt(n,1),y:zt(n,2),z:zt(n,3),visibility:$t(n,4)!=null?zt(n,4):void 0}}function J(n,l){this.h=n,this.g=l,this.l=0}function k(n,l,d){return q(n,l),typeof n.g.canvas.transferToImageBitmap=="function"?Promise.resolve(n.g.canvas.transferToImageBitmap()):d?Promise.resolve(n.g.canvas):typeof createImageBitmap=="function"?createImageBitmap(n.g.canvas):(n.i===void 0&&(n.i=document.createElement("canvas")),new Promise(function(e){n.i.height=n.g.canvas.height,n.i.width=n.g.canvas.width,n.i.getContext("2d",{}).drawImage(n.g.canvas,0,0,n.g.canvas.width,n.g.canvas.height),e(n.i)}))}function q(n,l){var d=n.g;if(n.o===void 0){var e=G(d,`
|
|
58
58
|
attribute vec2 aVertex;
|
|
59
59
|
attribute vec2 aTex;
|
|
60
60
|
varying vec2 vTex;
|
|
61
61
|
void main(void) {
|
|
62
62
|
gl_Position = vec4(aVertex, 0.0, 1.0);
|
|
63
63
|
vTex = aTex;
|
|
64
|
-
}`,0),
|
|
64
|
+
}`,0),u=G(d,`
|
|
65
65
|
precision mediump float;
|
|
66
66
|
varying vec2 vTex;
|
|
67
67
|
uniform sampler2D sampler0;
|
|
68
68
|
void main(){
|
|
69
69
|
gl_FragColor = texture2D(sampler0, vTex);
|
|
70
|
-
}`,1),
|
|
70
|
+
}`,1),a=d.createProgram();if(d.attachShader(a,e),d.attachShader(a,u),d.linkProgram(a),!d.getProgramParameter(a,d.LINK_STATUS))throw Error(`Could not compile WebGL program.
|
|
71
71
|
|
|
72
|
-
`+b.getProgramInfoLog(n));W=i.o=n,b.useProgram(W),x=b.getUniformLocation(W,"sampler0"),i.j={K:b.getAttribLocation(W,"aVertex"),J:b.getAttribLocation(W,"aTex"),qa:x},i.u=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,i.u),b.enableVertexAttribArray(i.j.K),b.vertexAttribPointer(i.j.K,2,b.FLOAT,!1,0,0),b.bufferData(b.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,null),i.s=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,i.s),b.enableVertexAttribArray(i.j.J),b.vertexAttribPointer(i.j.J,2,b.FLOAT,!1,0,0),b.bufferData(b.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,null),b.uniform1i(x,0)}W=i.j,b.useProgram(i.o),b.canvas.width=p.width,b.canvas.height=p.height,b.viewport(0,0,p.width,p.height),b.activeTexture(b.TEXTURE0),i.h.bindTexture2d(p.glName),b.enableVertexAttribArray(W.K),b.bindBuffer(b.ARRAY_BUFFER,i.u),b.vertexAttribPointer(W.K,2,b.FLOAT,!1,0,0),b.enableVertexAttribArray(W.J),b.bindBuffer(b.ARRAY_BUFFER,i.s),b.vertexAttribPointer(W.J,2,b.FLOAT,!1,0,0),b.bindFramebuffer(b.DRAW_FRAMEBUFFER?b.DRAW_FRAMEBUFFER:b.FRAMEBUFFER,null),b.clearColor(0,0,0,0),b.clear(b.COLOR_BUFFER_BIT),b.colorMask(!0,!0,!0,!0),b.drawArrays(b.TRIANGLE_FAN,0,4),b.disableVertexAttribArray(W.K),b.disableVertexAttribArray(W.J),b.bindBuffer(b.ARRAY_BUFFER,null),i.h.bindTexture2d(0)}function zt(i){this.g=i}var Lt=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function Zt(i,p){return p+i}function ot(i,p){window[i]=p}function pt(i){var p=document.createElement("script");return p.setAttribute("src",i),p.setAttribute("crossorigin","anonymous"),new Promise(function(b){p.addEventListener("load",function(){b()},!1),p.addEventListener("error",function(){b()},!1),document.body.appendChild(p)})}function wt(){return ut(function(i){switch(i.g){case 1:return i.o=2,P(i,WebAssembly.instantiate(Lt),4);case 4:i.g=3,i.o=0;break;case 2:return i.o=0,i.j=null,i.return(!1);case 3:return i.return(!0)}})}function Ut(i){if(this.g=i,this.listeners={},this.j={},this.H={},this.o={},this.u={},this.I=this.s=this.$=!0,this.D=Promise.resolve(),this.Z="",this.C={},this.locateFile=i&&i.locateFile||Zt,typeof window=="object")var p=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")p=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.aa=p,i.options){p=U(Object.keys(i.options));for(var b=p.next();!b.done;b=p.next()){b=b.value;var W=i.options[b].default;W!==void 0&&(this.j[b]=typeof W=="function"?W():W)}}}X=Ut.prototype,X.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function Fe(i){var p,b,W,x,n,s,d,e,o,c,t;return ut(function(r){switch(r.g){case 1:return i.$?(p=i.g.files===void 0?[]:typeof i.g.files=="function"?i.g.files(i.j):i.g.files,P(r,wt(),2)):r.return();case 2:if(b=r.h,typeof window=="object")return ot("createMediapipeSolutionsWasm",{locateFile:i.locateFile}),ot("createMediapipeSolutionsPackedAssets",{locateFile:i.locateFile}),s=p.filter(function(u){return u.data!==void 0}),d=p.filter(function(u){return u.data===void 0}),e=Promise.all(s.map(function(u){var h=ie(i,u.url);if(u.path!==void 0){var Z=u.path;h=h.then(function(R){return i.overrideFile(Z,R),Promise.resolve(R)})}return h})),o=Promise.all(d.map(function(u){return u.simd===void 0||u.simd&&b||!u.simd&&!b?pt(i.locateFile(u.url,i.aa)):Promise.resolve()})).then(function(){var u,h,Z;return ut(function(R){if(R.g==1)return u=window.createMediapipeSolutionsWasm,h=window.createMediapipeSolutionsPackedAssets,Z=i,P(R,u(h),2);Z.h=R.h,R.g=0})}),c=function(){return ut(function(u){return i.g.graph&&i.g.graph.url?u=P(u,ie(i,i.g.graph.url),0):(u.g=0,u=void 0),u})}(),P(r,Promise.all([o,e,c]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return W=p.filter(function(u){return u.simd===void 0||u.simd&&b||!u.simd&&!b}).map(function(u){return i.locateFile(u.url,i.aa)}),importScripts.apply(null,et(W)),x=i,P(r,createMediapipeSolutionsWasm(Module),6);case 6:x.h=r.h,i.l=new OffscreenCanvas(1,1),i.h.canvas=i.l,n=i.h.GL.createContext(i.l,{antialias:!1,alpha:!1,na:typeof WebGL2RenderingContext!="undefined"?2:1}),i.h.GL.makeContextCurrent(n),r.g=4;break;case 7:if(i.l=document.createElement("canvas"),t=i.l.getContext("webgl2",{}),!t&&(t=i.l.getContext("webgl",{}),!t))return alert("Failed to create WebGL canvas context when passing video frame."),r.return();i.G=t,i.h.canvas=i.l,i.h.createContext(i.l,!0,!0,{});case 4:i.i=new i.h.SolutionWasm,i.$=!1,r.g=0}})}function Dt(i){var p,b,W,x,n,s,d,e;return ut(function(o){if(o.g==1){if(i.g.graph&&i.g.graph.url&&i.Z===i.g.graph.url)return o.return();if(i.s=!0,!i.g.graph||!i.g.graph.url){o.g=2;return}return i.Z=i.g.graph.url,P(o,ie(i,i.g.graph.url),3)}for(o.g!=2&&(p=o.h,i.i.loadGraph(p)),b=U(Object.keys(i.C)),W=b.next();!W.done;W=b.next())x=W.value,i.i.overrideFile(x,i.C[x]);if(i.C={},i.g.listeners)for(n=U(i.g.listeners),s=n.next();!s.done;s=n.next())d=s.value,kt(i,d);e=i.j,i.j={},i.setOptions(e),o.g=0})}X.reset=function(){var i=this;return ut(function(p){i.i&&(i.i.reset(),i.o={},i.u={}),p.g=0})},X.setOptions=function(i,p){var b=this;if(p=p||this.g.options){for(var W=[],x=[],n={},s=U(Object.keys(i)),d=s.next();!d.done;n={R:n.R,S:n.S},d=s.next()){var e=d.value;e in this.j&&this.j[e]===i[e]||(this.j[e]=i[e],d=p[e],d!==void 0&&(d.onChange&&(n.R=d.onChange,n.S=i[e],W.push(function(o){return function(){var c;return ut(function(t){if(t.g==1)return P(t,o.R(o.S),2);c=t.h,c===!0&&(b.s=!0),t.g=0})}}(n))),d.graphOptionXref&&(e={valueNumber:d.type===1?i[e]:0,valueBoolean:d.type===0?i[e]:!1,valueString:d.type===2?i[e]:""},d=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),d.graphOptionXref),e),x.push(d))))}(W.length!==0||x.length!==0)&&(this.s=!0,this.B=(this.B===void 0?[]:this.B).concat(x),this.A=(this.A===void 0?[]:this.A).concat(W))}};function He(i){var p,b,W,x,n,s,d;return ut(function(e){switch(e.g){case 1:if(!i.s)return e.return();if(!i.A){e.g=2;break}p=U(i.A),b=p.next();case 3:if(b.done){e.g=5;break}return W=b.value,P(e,W(),4);case 4:b=p.next(),e.g=3;break;case 5:i.A=void 0;case 2:if(i.B){for(x=new i.h.GraphOptionChangeRequestList,n=U(i.B),s=n.next();!s.done;s=n.next())d=s.value,x.push_back(d);i.i.changeOptions(x),x.delete(),i.B=void 0}i.s=!1,e.g=0}})}X.initialize=function(){var i=this;return ut(function(p){return p.g==1?P(p,Fe(i),2):p.g!=3?P(p,Dt(i),3):P(p,He(i),0)})};function ie(i,p){var b,W;return ut(function(x){return p in i.H?x.return(i.H[p]):(b=i.locateFile(p,""),W=fetch(b).then(function(n){return n.arrayBuffer()}),i.H[p]=W,x.return(W))})}X.overrideFile=function(i,p){this.i?this.i.overrideFile(i,p):this.C[i]=p},X.clearOverriddenFiles=function(){this.C={},this.i&&this.i.clearOverriddenFiles()},X.send=function(i,p){var b=this,W,x,n,s,d,e,o,c,t;return ut(function(r){switch(r.g){case 1:return b.g.inputs?(W=1e3*(p==null?performance.now():p),P(r,b.D,2)):r.return();case 2:return P(r,b.initialize(),3);case 3:for(x=new b.h.PacketDataList,n=U(Object.keys(i)),s=n.next();!s.done;s=n.next())if(d=s.value,e=b.g.inputs[d]){t:{var u=i[d];switch(e.type){case"video":var h=b.o[e.stream];if(h||(h=new _(b.h,b.G),b.o[e.stream]=h),h.l===0&&(h.l=h.h.createTexture()),typeof HTMLVideoElement!="undefined"&&u instanceof HTMLVideoElement)var Z=u.videoWidth,R=u.videoHeight;else typeof HTMLImageElement!="undefined"&&u instanceof HTMLImageElement?(Z=u.naturalWidth,R=u.naturalHeight):(Z=u.width,R=u.height);R={glName:h.l,width:Z,height:R},Z=h.g,Z.canvas.width=R.width,Z.canvas.height=R.height,Z.activeTexture(Z.TEXTURE0),h.h.bindTexture2d(h.l),Z.texImage2D(Z.TEXTURE_2D,0,Z.RGBA,Z.RGBA,Z.UNSIGNED_BYTE,u),h.h.bindTexture2d(0),h=R;break t;case"detections":for(h=b.o[e.stream],h||(h=new zt(b.h),b.o[e.stream]=h),h.data||(h.data=new h.g.DetectionListData),h.data.reset(u.length),R=0;R<u.length;++R){Z=u[R];var V=h.data,I=V.setBoundingBox,Y=R,H=Z.ea,C=new m;if(at(C,1,H.ka),at(C,2,H.la),at(C,3,H.height),at(C,4,H.width),at(C,5,H.rotation),at(C,6,H.ia),H=E(C,w),I.call(V,Y,H),Z.Y)for(V=0;V<Z.Y.length;++V){C=Z.Y[V];var z=!!C.visibility;I=h.data,Y=I.addNormalizedLandmark,H=R,C=Object.assign(Object.assign({},C),{visibility:z?C.visibility:0}),z=new Ct,at(z,1,C.x),at(z,2,C.y),at(z,3,C.z),C.visibility&&at(z,4,C.visibility),C=E(z,At),Y.call(I,H,C)}if(Z.V)for(V=0;V<Z.V.length;++V)I=h.data,Y=I.addClassification,H=R,C=Z.V[V],z=new lt,at(z,2,C.score),C.index&&at(z,1,C.index),C.label&&at(z,3,C.label),C.displayName&&at(z,4,C.displayName),C=E(z,st),Y.call(I,H,C)}h=h.data;break t;default:h={}}}switch(o=h,c=e.stream,e.type){case"video":x.pushTexture2d(Object.assign(Object.assign({},o),{stream:c,timestamp:W}));break;case"detections":t=o,t.stream=c,t.timestamp=W,x.pushDetectionList(t);break;default:throw Error("Unknown input config type: '"+e.type+"'")}}return b.i.send(x),P(r,b.D,4);case 4:x.delete(),r.g=0}})};function St(i,p,b){var W,x,n,s,d,e,o,c,t,r,u,h,Z,R;return ut(function(V){switch(V.g){case 1:if(!b)return V.return(p);for(W={},x=0,n=U(Object.keys(b)),s=n.next();!s.done;s=n.next())d=s.value,e=b[d],typeof e!="string"&&e.type==="texture"&&p[e.stream]!==void 0&&++x;1<x&&(i.I=!1),o=U(Object.keys(b)),s=o.next();case 2:if(s.done){V.g=4;break}if(c=s.value,t=b[c],typeof t=="string")return Z=W,R=c,P(V,Ht(i,c,p[t]),14);if(r=p[t.stream],t.type==="detection_list"){if(r){for(var I=r.getRectList(),Y=r.getLandmarksList(),H=r.getClassificationsList(),C=[],z=0;z<I.size();++z){var M=v(I.get(z),m,w);M={ea:{ka:ee(M,1),la:ee(M,2),height:ee(M,3),width:ee(M,4),rotation:ee(M,5,0),ia:ne(M,6)},Y:Ie(v(Y.get(z),Ze,l),Ct,1).map(N),V:j(v(H.get(z),ht,bt))},C.push(M)}I=C}else I=[];W[c]=I,V.g=7;break}if(t.type==="proto_list"){if(r){for(I=Array(r.size()),Y=0;Y<r.size();Y++)I[Y]=r.get(Y);r.delete()}else I=[];W[c]=I,V.g=7;break}if(r===void 0){V.g=3;break}if(t.type==="float_list"){W[c]=r,V.g=7;break}if(t.type==="proto"){W[c]=r,V.g=7;break}if(t.type!=="texture")throw Error("Unknown output config type: '"+t.type+"'");return u=i.u[c],u||(u=new _(i.h,i.G),i.u[c]=u),P(V,nt(u,r,i.I),13);case 13:h=V.h,W[c]=h;case 7:t.transform&&W[c]&&(W[c]=t.transform(W[c])),V.g=3;break;case 14:Z[R]=V.h;case 3:s=o.next(),V.g=2;break;case 4:return V.return(W)}})}function Ht(i,p,b){var W;return ut(function(x){return typeof b=="number"||b instanceof Uint8Array||b instanceof i.h.Uint8BlobList?x.return(b):b instanceof i.h.Texture2dDataOut?(W=i.u[p],W||(W=new _(i.h,i.G),i.u[p]=W),x.return(nt(W,b,i.I))):x.return(void 0)})}function kt(i,p){for(var b=p.name||"$",W=[].concat(et(p.wants)),x=new i.h.StringList,n=U(p.wants),s=n.next();!s.done;s=n.next())x.push_back(s.value);n=i.h.PacketListener.implement({onResults:function(d){for(var e={},o=0;o<p.wants.length;++o)e[W[o]]=d.get(o);var c=i.listeners[b];c&&(i.D=St(i,e,p.outs).then(function(t){t=c(t);for(var r=0;r<p.wants.length;++r){var u=e[W[r]];typeof u=="object"&&u.hasOwnProperty&&u.hasOwnProperty("delete")&&u.delete()}t&&(i.D=t)}))}}),i.i.attachMultiListener(x,n),x.delete()}X.onResults=function(i,p){this.listeners[p||"$"]=i},vt("Solution",Ut),vt("OptionType",{BOOL:0,NUMBER:1,ma:2,0:"BOOL",1:"NUMBER",2:"STRING"});function Nt(i){return i===void 0&&(i=0),i===1?"hand_landmark_full.tflite":"hand_landmark_lite.tflite"}function jt(i){var p=this;i=i||{},this.g=new Ut({locateFile:i.locateFile,files:function(b){return[{url:"hands_solution_packed_assets_loader.js"},{simd:!1,url:"hands_solution_wasm_bin.js"},{simd:!0,url:"hands_solution_simd_wasm_bin.js"},{data:!0,url:Nt(b.modelComplexity)}]},graph:{url:"hands.binarypb"},inputs:{image:{type:"video",stream:"input_frames_gpu"}},listeners:[{wants:["multi_hand_landmarks","multi_hand_world_landmarks","image_transformed","multi_handedness"],outs:{image:"image_transformed",multiHandLandmarks:{type:"proto_list",stream:"multi_hand_landmarks",transform:A},multiHandWorldLandmarks:{type:"proto_list",stream:"multi_hand_world_landmarks",transform:A},multiHandedness:{type:"proto_list",stream:"multi_handedness",transform:function(b){return b.map(function(W){return j(v(W,ht,bt))[0]})}}}}],options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:typeof window!="object"||window.navigator===void 0?!1:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},maxNumHands:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculator",fieldName:"int_value"}},modelComplexity:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelComplexity",fieldName:"int_value"},onChange:function(b){var W,x,n;return ut(function(s){return s.g==1?(W=Nt(b),x="third_party/mediapipe/modules/hand_landmark/"+W,P(s,ie(p.g,W),2)):(n=s.h,p.g.overrideFile(x,n),s.return(!0))})}},minDetectionConfidence:{type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"handlandmarktrackinggpu__palmdetectiongpu__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"handlandmarktrackinggpu__handlandmarkgpu__ThresholdingCalculator",fieldName:"threshold"}}}})}X=jt.prototype,X.close=function(){return this.g.close(),Promise.resolve()},X.onResults=function(i){this.g.onResults(i)},X.initialize=function(){var i=this;return ut(function(p){return P(p,i.g.initialize(),0)})},X.reset=function(){this.g.reset()},X.send=function(i){var p=this;return ut(function(b){return P(b,p.g.send(i),0)})},X.setOptions=function(i){this.g.setOptions(i)},vt("Hands",jt),vt("HAND_CONNECTIONS",[[0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[0,17],[17,18],[18,19],[19,20]]),vt("VERSION","0.4.1646424915")}.call(cn),globalThis.VonageHandsVersion=globalThis.VERSION,globalThis.VonageHands=globalThis.Hands,function(){var X;function g(e){var o=0;return function(){return o<e.length?{done:!1,value:e[o++]}:{done:!0}}}var G=typeof Object.defineProperties=="function"?Object.defineProperty:function(e,o,c){return e==Array.prototype||e==Object.prototype||(e[o]=c.value),e};function S(e){e=[typeof globalThis=="object"&&globalThis,e,typeof window=="object"&&window,typeof self=="object"&&self,typeof cn=="object"&&cn];for(var o=0;o<e.length;++o){var c=e[o];if(c&&c.Math==Math)return c}throw Error("Cannot find global object")}var T=S(this);function J(e,o){if(o)t:{var c=T;e=e.split(".");for(var t=0;t<e.length-1;t++){var r=e[t];if(!(r in c))break t;c=c[r]}e=e[e.length-1],t=c[e],o=o(t),o!=t&&o!=null&&G(c,e,{configurable:!0,writable:!0,value:o})}}J("Symbol",function(e){function o(u){if(this instanceof o)throw new TypeError("Symbol is not a constructor");return new c(t+(u||"")+"_"+r++,u)}function c(u,h){this.g=u,G(this,"description",{configurable:!0,writable:!0,value:h})}if(e)return e;c.prototype.toString=function(){return this.g};var t="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",r=0;return o}),J("Symbol.iterator",function(e){if(e)return e;e=Symbol("Symbol.iterator");for(var o="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),c=0;c<o.length;c++){var t=T[o[c]];typeof t=="function"&&typeof t.prototype[e]!="function"&&G(t.prototype,e,{configurable:!0,writable:!0,value:function(){return K(g(this))}})}return e});function K(e){return e={next:e},e[Symbol.iterator]=function(){return this},e}function U(e){var o=typeof Symbol!="undefined"&&Symbol.iterator&&e[Symbol.iterator];return o?o.call(e):{next:g(e)}}function et(e){if(!(e instanceof Array)){e=U(e);for(var o,c=[];!(o=e.next()).done;)c.push(o.value);e=c}return e}var Ye=typeof Object.create=="function"?Object.create:function(e){function o(){}return o.prototype=e,new o},tt;if(typeof Object.setPrototypeOf=="function")tt=Object.setPrototypeOf;else{var Ft;t:{var Pe={a:!0},se={};try{se.__proto__=Pe,Ft=se.a;break t}catch{}Ft=!1}tt=Ft?function(e,o){if(e.__proto__=o,e.__proto__!==o)throw new TypeError(e+" is not extensible");return e}:null}var Je=tt;function yt(e,o){if(e.prototype=Ye(o.prototype),e.prototype.constructor=e,Je)Je(e,o);else for(var c in o)if(c!="prototype")if(Object.defineProperties){var t=Object.getOwnPropertyDescriptor(o,c);t&&Object.defineProperty(e,c,t)}else e[c]=o[c];e.da=o.prototype}function $t(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function fe(e){if(e.l)throw new TypeError("Generator is already running");e.l=!0}$t.prototype.o=function(e){this.h=e};function ae(e,o){e.j={U:o,V:!0},e.g=e.m||e.s}$t.prototype.return=function(e){this.j={return:e},this.g=this.s};function P(e,o,c){return e.g=c,{value:o}}function Sn(e){this.g=new $t,this.h=e}function En(e,o){fe(e.g);var c=e.g.i;return c?Ce(e,"return"in c?c.return:function(t){return{value:t,done:!0}},o,e.g.return):(e.g.return(o),qt(e))}function Ce(e,o,c,t){try{var r=o.call(e.g.i,c);if(!(r instanceof Object))throw new TypeError("Iterator result "+r+" is not an object");if(!r.done)return e.g.l=!1,r;var u=r.value}catch(h){return e.g.i=null,ae(e.g,h),qt(e)}return e.g.i=null,t.call(e.g,u),qt(e)}function qt(e){for(;e.g.g;)try{var o=e.h(e.g);if(o)return e.g.l=!1,{value:o.value,done:!1}}catch(c){e.g.h=void 0,ae(e.g,c)}if(e.g.l=!1,e.g.j){if(o=e.g.j,e.g.j=null,o.V)throw o.U;return{value:o.return,done:!0}}return{value:void 0,done:!0}}function Hn(e){this.next=function(o){return fe(e.g),e.g.i?o=Ce(e,e.g.i.next,o,e.g.o):(e.g.o(o),o=qt(e)),o},this.throw=function(o){return fe(e.g),e.g.i?o=Ce(e,e.g.i.throw,o,e.g.o):(ae(e.g,o),o=qt(e)),o},this.return=function(o){return En(e,o)},this[Symbol.iterator]=function(){return this}}function Ot(e){function o(t){return e.next(t)}function c(t){return e.throw(t)}return new Promise(function(t,r){function u(h){h.done?t(h.value):Promise.resolve(h.value).then(o,c).then(u,r)}u(e.next())})}function ut(e){return Ot(new Hn(new Sn(e)))}J("Promise",function(e){function o(h){this.h=0,this.i=void 0,this.g=[],this.o=!1;var Z=this.j();try{h(Z.resolve,Z.reject)}catch(R){Z.reject(R)}}function c(){this.g=null}function t(h){return h instanceof o?h:new o(function(Z){Z(h)})}if(e)return e;c.prototype.h=function(h){if(this.g==null){this.g=[];var Z=this;this.i(function(){Z.l()})}this.g.push(h)};var r=T.setTimeout;c.prototype.i=function(h){r(h,0)},c.prototype.l=function(){for(;this.g&&this.g.length;){var h=this.g;this.g=[];for(var Z=0;Z<h.length;++Z){var R=h[Z];h[Z]=null;try{R()}catch(V){this.j(V)}}}this.g=null},c.prototype.j=function(h){this.i(function(){throw h})},o.prototype.j=function(){function h(V){return function(I){R||(R=!0,V.call(Z,I))}}var Z=this,R=!1;return{resolve:h(this.C),reject:h(this.l)}},o.prototype.C=function(h){if(h===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(h instanceof o)this.F(h);else{t:switch(typeof h){case"object":var Z=h!=null;break t;case"function":Z=!0;break t;default:Z=!1}Z?this.v(h):this.m(h)}},o.prototype.v=function(h){var Z=void 0;try{Z=h.then}catch(R){this.l(R);return}typeof Z=="function"?this.G(Z,h):this.m(h)},o.prototype.l=function(h){this.s(2,h)},o.prototype.m=function(h){this.s(1,h)},o.prototype.s=function(h,Z){if(this.h!=0)throw Error("Cannot settle("+h+", "+Z+"): Promise already settled in state"+this.h);this.h=h,this.i=Z,this.h===2&&this.D(),this.A()},o.prototype.D=function(){var h=this;r(function(){if(h.B()){var Z=T.console;typeof Z!="undefined"&&Z.error(h.i)}},1)},o.prototype.B=function(){if(this.o)return!1;var h=T.CustomEvent,Z=T.Event,R=T.dispatchEvent;return typeof R=="undefined"?!0:(typeof h=="function"?h=new h("unhandledrejection",{cancelable:!0}):typeof Z=="function"?h=new Z("unhandledrejection",{cancelable:!0}):(h=T.document.createEvent("CustomEvent"),h.initCustomEvent("unhandledrejection",!1,!0,h)),h.promise=this,h.reason=this.i,R(h))},o.prototype.A=function(){if(this.g!=null){for(var h=0;h<this.g.length;++h)u.h(this.g[h]);this.g=null}};var u=new c;return o.prototype.F=function(h){var Z=this.j();h.J(Z.resolve,Z.reject)},o.prototype.G=function(h,Z){var R=this.j();try{h.call(Z,R.resolve,R.reject)}catch(V){R.reject(V)}},o.prototype.then=function(h,Z){function R(H,C){return typeof H=="function"?function(z){try{V(H(z))}catch(M){I(M)}}:C}var V,I,Y=new o(function(H,C){V=H,I=C});return this.J(R(h,V),R(Z,I)),Y},o.prototype.catch=function(h){return this.then(void 0,h)},o.prototype.J=function(h,Z){function R(){switch(V.h){case 1:h(V.i);break;case 2:Z(V.i);break;default:throw Error("Unexpected state: "+V.h)}}var V=this;this.g==null?u.h(R):this.g.push(R),this.o=!0},o.resolve=t,o.reject=function(h){return new o(function(Z,R){R(h)})},o.race=function(h){return new o(function(Z,R){for(var V=U(h),I=V.next();!I.done;I=V.next())t(I.value).J(Z,R)})},o.all=function(h){var Z=U(h),R=Z.next();return R.done?t([]):new o(function(V,I){function Y(z){return function(M){H[z]=M,C--,C==0&&V(H)}}var H=[],C=0;do H.push(void 0),C++,t(R.value).J(Y(H.length-1),I),R=Z.next();while(!R.done)})},o});function Cn(e,o){e instanceof String&&(e+="");var c=0,t=!1,r={next:function(){if(!t&&c<e.length){var u=c++;return{value:o(u,e[u]),done:!1}}return t=!0,{done:!0,value:void 0}}};return r[Symbol.iterator]=function(){return r},r}var jn=typeof Object.assign=="function"?Object.assign:function(e,o){for(var c=1;c<arguments.length;c++){var t=arguments[c];if(t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e};J("Object.assign",function(e){return e||jn}),J("Object.is",function(e){return e||function(o,c){return o===c?o!==0||1/o===1/c:o!==o&&c!==c}}),J("Array.prototype.includes",function(e){return e||function(o,c){var t=this;t instanceof String&&(t=String(t));var r=t.length;for(c=c||0,0>c&&(c=Math.max(c+r,0));c<r;c++){var u=t[c];if(u===o||Object.is(u,o))return!0}return!1}}),J("String.prototype.includes",function(e){return e||function(o,c){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(o instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(o,c||0)!==-1}}),J("Array.prototype.keys",function(e){return e||function(){return Cn(this,function(o){return o})}});var de=this||self;function vt(e,o){e=e.split(".");var c=de;e[0]in c||typeof c.execScript=="undefined"||c.execScript("var "+e[0]);for(var t;e.length&&(t=e.shift());)e.length||o===void 0?c[t]&&c[t]!==Object.prototype[t]?c=c[t]:c=c[t]={}:c[t]=o}function ye(e){de.setTimeout(function(){throw e},0)}function an(e){ye(e)}function hn(e,o){an(Error("Invalid wire type: "+e+" (at position "+o+")"))}function In(){an(Error("Failed to read varint, encoding is invalid."))}function vn(e,o){return o=String.fromCharCode.apply(null,o),e==null?o:e+o}var Ln,Be=typeof TextDecoder!="undefined",nn,Nn=typeof TextEncoder!="undefined";function Tn(e){if(Nn)e=(nn||(nn=new TextEncoder)).encode(e);else{var o=void 0;o=o===void 0?!1:o;for(var c=0,t=new Uint8Array(3*e.length),r=0;r<e.length;r++){var u=e.charCodeAt(r);if(128>u)t[c++]=u;else{if(2048>u)t[c++]=u>>6|192;else{if(55296<=u&&57343>=u){if(56319>=u&&r<e.length){var h=e.charCodeAt(++r);if(56320<=h&&57343>=h){u=1024*(u-55296)+h-56320+65536,t[c++]=u>>18|240,t[c++]=u>>12&63|128,t[c++]=u>>6&63|128,t[c++]=u&63|128;continue}else r--}if(o)throw Error("Found an unpaired surrogate");u=65533}t[c++]=u>>12|224,t[c++]=u>>6&63|128}t[c++]=u&63|128}}e=t.subarray(0,c)}return e}var fn={},dn=null;function bn(e){var o;o===void 0&&(o=0),pe(),o=fn[o];for(var c=Array(Math.floor(e.length/3)),t=o[64]||"",r=0,u=0;r<e.length-2;r+=3){var h=e[r],Z=e[r+1],R=e[r+2],V=o[h>>2];h=o[(h&3)<<4|Z>>4],Z=o[(Z&15)<<2|R>>6],R=o[R&63],c[u++]=V+h+Z+R}switch(V=0,R=t,e.length-r){case 2:V=e[r+1],R=o[(V&15)<<2]||t;case 1:e=e[r],c[u]=o[e>>2]+o[(e&3)<<4|V>>4]+R+t}return c.join("")}function pn(e){var o=e.length,c=3*o/4;c%3?c=Math.floor(c):"=.".indexOf(e[o-1])!=-1&&(c="=.".indexOf(e[o-2])!=-1?c-2:c-1);var t=new Uint8Array(c),r=0;return re(e,function(u){t[r++]=u}),t.subarray(0,r)}function re(e,o){function c(R){for(;t<e.length;){var V=e.charAt(t++),I=dn[V];if(I!=null)return I;if(!/^[\s\xa0]*$/.test(V))throw Error("Unknown base64 encoding at char: "+V)}return R}pe();for(var t=0;;){var r=c(-1),u=c(0),h=c(64),Z=c(64);if(Z===64&&r===-1)break;o(r<<2|u>>4),h!=64&&(o(u<<4&240|h>>2),Z!=64&&o(h<<6&192|Z))}}function pe(){if(!dn){dn={};for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),o=["+/=","+/","-_=","-_.","-_"],c=0;5>c;c++){var t=e.concat(o[c].split(""));fn[c]=t;for(var r=0;r<t.length;r++){var u=t[r];dn[u]===void 0&&(dn[u]=r)}}}}var ze=typeof Uint8Array=="function",oe;function ue(e){if(this.g=e,e!==null&&e.length===0)throw Error("ByteString should be constructed with non-empty values")}ue.prototype.toJSON=function(){if(this.g==null)var e="";else e=this.g,e=this.g=e==null||typeof e=="string"?e:ze&&e instanceof Uint8Array?bn(e):null;return e};var je=typeof Uint8Array.prototype.slice=="function";function Ve(e,o,c){return o===c?oe||(oe=new Uint8Array(0)):je?e.slice(o,c):new Uint8Array(e.subarray(o,c))}var Pt=0,he=0;function ve(e){if(e.constructor===Uint8Array)return e;if(e.constructor===ArrayBuffer)return new Uint8Array(e);if(e.constructor===Array)return new Uint8Array(e);if(e.constructor===String)return pn(e);if(e.constructor===ue){if(e.g==null)var o=oe||(oe=new Uint8Array(0));else{o=Uint8Array;var c=e.g;c=c==null||ze&&c!=null&&c instanceof Uint8Array?c:typeof c=="string"?pn(c):null,e=e.g=c,o=new o(e)}return o}if(e instanceof Uint8Array)return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function gt(e,o){o=o===void 0?{}:o,o=o.u===void 0?!1:o.u,this.h=null,this.g=this.i=this.m=0,this.l=!1,this.u=o,e&&me(this,e)}function me(e,o){e.h=ve(o),e.m=0,e.i=e.h.length,e.g=e.m}gt.prototype.reset=function(){this.g=this.m};function _t(e){for(var o=128,c=0,t=0,r=0;4>r&&128<=o;r++)o=e.h[e.g++],c|=(o&127)<<7*r;if(128<=o&&(o=e.h[e.g++],c|=(o&127)<<28,t|=(o&127)>>4),128<=o)for(r=0;5>r&&128<=o;r++)o=e.h[e.g++],t|=(o&127)<<7*r+3;if(128>o)return e=c>>>0,o=t>>>0,(t=o&2147483648)&&(e=~e+1>>>0,o=~o>>>0,e==0&&(o=o+1>>>0)),e=4294967296*o+(e>>>0),t?-e:e;e.l=!0,In()}function te(e){e.g>e.i&&(e.l=!0,an(Error("Tried to read past the end of the data "+e.g+" > "+e.i)))}gt.prototype.j=function(){var e=this.h,o=e[this.g],c=o&127;return 128>o?(this.g+=1,te(this),c):(o=e[this.g+1],c|=(o&127)<<7,128>o?(this.g+=2,te(this),c):(o=e[this.g+2],c|=(o&127)<<14,128>o?(this.g+=3,te(this),c):(o=e[this.g+3],c|=(o&127)<<21,128>o?(this.g+=4,te(this),c):(o=e[this.g+4],c|=(o&15)<<28,128>o?(this.g+=5,te(this),c>>>0):(this.g+=5,128<=e[this.g++]&&128<=e[this.g++]&&128<=e[this.g++]&&128<=e[this.g++]&&128<=e[this.g++]?(this.l=!0,In(),c):(te(this),c))))))},gt.prototype.o=function(){var e=this.h[this.g],o=this.h[this.g+1],c=this.h[this.g+2],t=this.h[this.g+3];return this.g+=4,te(this),c=(e<<0|o<<8|c<<16|t<<24)>>>0,e=2*(c>>31)+1,o=c>>>23&255,c&=8388607,o==255?c?NaN:1/0*e:o==0?e*Math.pow(2,-149)*c:e*Math.pow(2,o-150)*(c+Math.pow(2,23))};var be=[];function _e(){this.g=new Uint8Array(64),this.h=0}function Ge(e,o){if(!(e.h+1<e.g.length)){var c=e.g;e.g=new Uint8Array(Math.ceil(1+2*e.g.length)),e.g.set(c)}e.g[e.h++]=o}_e.prototype.length=function(){return this.h},_e.prototype.end=function(){var e=this.g,o=this.h;return this.h=0,Ve(e,0,o)};function Yt(e,o){for(;127<o;)Ge(e,o&127|128),o>>>=7;Ge(e,o)}function xe(e){var o={},c=o.N===void 0?!1:o.N;this.m={u:o.u===void 0?!1:o.u},this.N=c,o=this.m,be.length?(c=be.pop(),o&&(c.u=o.u),e&&me(c,e),e=c):e=new gt(e,o),this.g=e,this.l=this.g.g,this.h=this.i=-1,this.j=!1}xe.prototype.reset=function(){this.g.reset(),this.h=this.i=-1};function Ue(e){var o=e.g;if((o=o.g==o.i)||(o=e.j)||(o=e.g,o=o.l||0>o.g||o.g>o.i),o)return!1;e.l=e.g.g;var c=e.g.j();return o=c>>>3,c&=7,0<=c&&5>=c?(e.i=o,e.h=c,!0):(e.j=!0,hn(c,e.l),!1)}function Xe(e){switch(e.h){case 0:if(e.h!=0)Xe(e);else t:{e=e.g;for(var o=e.g,c=0;10>c;c++){if((e.h[o]&128)===0){e.g=o+1,te(e);break t}o++}e.l=!0,In()}break;case 1:e=e.g,e.g+=8,te(e);break;case 2:e.h!=2?Xe(e):(o=e.g.j(),e=e.g,e.g+=o,te(e));break;case 5:e=e.g,e.g+=4,te(e);break;case 3:o=e.i;do{if(!Ue(e)){e.j=!0,an(Error("Unmatched start-group tag: stream EOF"));break}if(e.h==4){e.i!=o&&(e.j=!0,an(Error("Unmatched end-group tag")));break}Xe(e)}while(1);break;default:e.j=!0,hn(e.h,e.l)}}function Xn(e,o,c){e.N||(e=Ve(e.g.h,c,e.g.g),(c=o.o)?c.push(e):o.o=[e])}function rn(e,o,c){var t=e.g.i,r=e.g.j(),u=e.g.g+r;if(e.g.i=u,c(o,e),c=u-e.g.g,c!==0)throw Error("Message parsing ended unexpectedly. Expected to read "+(r+" bytes, instead read "+(r-c)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return e.g.g=u,e.g.i=t,o}function $e(e,o,c){var t=e.g.j();for(t=e.g.g+t;e.g.g<t;)c.push(o.call(e.g))}var Zn=[];function Mt(){this.h=[],this.i=0,this.g=new _e}function Re(e,o){o.length!==0&&(e.h.push(o),e.i+=o.length)}function Qt(e,o,c){Yt(e.g,8*o+2),Yt(e.g,c.length),Re(e,e.g.end()),Re(e,c)}var Et=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function qe(e,o){Object.isFrozen(e)||(Et?e[Et]|=o:e.g!==void 0?e.g|=o:Object.defineProperties(e,{g:{value:o,configurable:!0,writable:!0,enumerable:!1}}))}function xt(e){if(!e)return 0;var o;return Et?o=e[Et]:o=e.g,o==null?0:o}function Gt(e){return Array.isArray(e)&&qe(e,1),e}function un(e){if(!Array.isArray(e))throw Error("cannot mark non-array as immutable");qe(e,2)}function Bt(e){return e!==null&&typeof e=="object"&&e.constructor===Object}function at(e){switch(typeof e){case"number":return isFinite(e)?e:String(e);case"object":return ze&&e!=null&&e instanceof Uint8Array?bn(e):e;default:return e}}function it(e,o){if(e!=null)return Array.isArray(e)||Bt(e)?ee(e,o):o(e)}function ee(e,o){if(Array.isArray(e)){for(var c=Array(e.length),t=0;t<e.length;t++)c[t]=it(e[t],o);return xt(e)&1&&Gt(c),c}c={};for(t in e)c[t]=it(e[t],o);return c}var Ie;function It(e,o,c){var t=Ie;Ie=null,e||(e=t),t=this.constructor.ba,e||(e=t?[t]:[]),this.j=(t?0:-1)-(this.constructor.$||0),this.m=this.g=null,this.h=e;t:{if(t=this.h.length,e=t-1,t&&(t=this.h[e],Bt(t))){this.l=e-this.j,this.i=t;break t}o!==void 0&&-1<o?(this.l=Math.max(o,e+1-this.j),this.i=null):this.l=Number.MAX_VALUE}if(c)for(o=0;o<c.length;o++)e=c[o],e<this.l?(e+=this.j,(t=this.h[e])?Gt(t):this.h[e]=ne):(we(this),(t=this.i[e])?Gt(t):this.i[e]=ne)}var ne=Object.freeze(Gt([]));function we(e){var o=e.l+e.j;e.h[o]||(e.i=e.h[o]={})}function Kt(e,o,c){return o===-1?null:(c===void 0?0:c)||o>=e.l?e.i?e.i[o]:void 0:e.h[o+e.j]}function Vt(e,o,c){c=c===void 0?!0:c;var t=t===void 0?!1:t,r=Kt(e,o,t);return r==null&&(r=ne),r===ne?(r=Gt([]),Tt(e,o,r,t)):c&&Array.isArray(r)&&xt(r)&2&&(r=r.slice(),Tt(e,o,r,t)),r}function Ke(e){var o=Vt(e,3,!1);if(e.m||(e.m={}),!e.m[3]){for(var c=0;c<o.length;c++)o[c]=+o[c];e.m[3]=!0}return o}function ke(e,o,c){return e=Kt(e,o),e==null?c:e}function Ee(e,o,c){return e=Kt(e,o),e=e==null?e:+e,e==null?c===void 0?0:c:e}function Tt(e,o,c,t){(t===void 0?0:t)||o>=e.l?(we(e),e.i[o]=c):e.h[o+e.j]=c}function Le(e,o,c){if(c===-1)return null;e.g||(e.g={});var t=e.g[c];if(t)return t;var r=Kt(e,c,!1);return r==null?t:(o=new o(r),e.g[c]=o)}function mn(e,o,c){e.g||(e.g={});var t=e.g[c];if(!t){var r=Vt(e,c,!1);t=[];for(var u=Array.isArray(r)?!!(xt(r)&2):!1,h=0;h<r.length;h++)t[h]=new o(r[h]),u&&un(t[h].h);u&&(un(t),Object.freeze(t)),e.g[c]=t}return t}function Ae(e,o,c,t,r){var u=mn(e,t,o);c=c||new t,e=Vt(e,o),r!=null?(u.splice(r,0,c),e.splice(r,0,Me(c))):(u.push(c),e.push(Me(c)))}It.prototype.toJSON=function(){var e=Me(this);return ee(e,at)};function Me(e){if(e.g)for(var o in e.g){var c=e.g[o];if(Array.isArray(c))for(var t=0;t<c.length;t++)c[t]&&Me(c[t]);else c&&Me(c)}return e.h}It.prototype.toString=function(){return Me(this).toString()};function Qe(e,o){if(e=e.o){Re(o,o.g.end());for(var c=0;c<e.length;c++)Re(o,e[c])}}function tn(e){var o=e[0];switch(e.length){case 2:var c=e[1];return function(R,V,I){return o(R,V,I,c)};case 3:var t=e[1],r=e[2];return function(R,V,I){return o(R,V,I,t,r)};case 4:var u=e[1],h=e[2],Z=e[3];return function(R,V,I){return o(R,V,I,u,h,Z)};default:throw Error("unsupported number of parameters, expected [2-4], got "+e.length)}}function De(e,o,c){for(;Ue(o)&&o.h!=4;){var t=o.i,r=c[t];if(r){if(Array.isArray(r)&&(r=c[t]=tn(r)),!r(o,e,t)){t=o,r=e;var u=t.l;Xe(t),Xn(t,r,u)}}else t=o,r=e,u=t.l,Xe(t),Xn(t,r,u)}return e}function Wn(e,o){var c=new Mt;if(o(e,c),e=c.i+c.g.length(),e===0)c=new Uint8Array(0);else{e=new Uint8Array(e);for(var t=c.h,r=t.length,u=o=0;u<r;u++){var h=t[u];h.length!==0&&(e.set(h,o),o+=h.length)}t=c.g,r=t.h,r!==0&&(e.set(t.g.subarray(0,r),o),t.h=0),c.h=[e],c=e}return c}function Yn(e,o,c){if(Zn.length){var t=Zn.pop();e&&(me(t.g,e),t.i=-1,t.h=-1),e=t}else e=new xe(e);try{return c(new o,e)}finally{o=e.g,o.h=null,o.m=0,o.i=0,o.g=0,o.l=!1,o.u=!1,e.i=-1,e.h=-1,e.j=!1,100>Zn.length&&Zn.push(e)}}function Se(e,o,c){if(o=Kt(o,c),o!=null){Yt(e.g,8*c+5),e=e.g;var t=o;t=(c=0>t?1:0)?-t:t,t===0?0<1/t?Pt=he=0:(he=0,Pt=2147483648):isNaN(t)?(he=0,Pt=2147483647):34028234663852886e22<t?(he=0,Pt=(c<<31|2139095040)>>>0):11754943508222875e-54>t?(t=Math.round(t/Math.pow(2,-149)),he=0,Pt=(c<<31|t)>>>0):(o=Math.floor(Math.log(t)/Math.LN2),t*=Math.pow(2,-o),t=Math.round(8388608*t),16777216<=t&&++o,he=0,Pt=(c<<31|o+127<<23|t&8388607)>>>0),c=Pt,Ge(e,c>>>0&255),Ge(e,c>>>8&255),Ge(e,c>>>16&255),Ge(e,c>>>24&255)}}function ge(e,o,c){return e.h!==5?!1:(Tt(o,c,e.g.o()),!0)}function en(e,o,c){return e.h!==5&&e.h!==2?!1:(o=Vt(o,c),e.h==2?$e(e,gt.prototype.o,o):o.push(e.g.o()),!0)}function Rn(e,o,c){return e.h!==0?!1:(Tt(o,c,_t(e.g)),!0)}function We(e,o,c){return e.h!==0?!1:(Tt(o,c,e.g.j()),!0)}function Vn(e,o,c){if(e.h!==2)return!1;var t=e.g.j();e=e.g;var r=e.g;e.g+=t,te(e),e=e.h;var u;if(Be)(u=Ln)||(u=Ln=new TextDecoder("utf-8",{fatal:!1})),u=u.decode(e.subarray(r,r+t));else{t=r+t;for(var h=[],Z=null,R,V,I;r<t;)R=e[r++],128>R?h.push(R):224>R?r>=t?h.push(65533):(V=e[r++],194>R||(V&192)!==128?(r--,h.push(65533)):h.push((R&31)<<6|V&63)):240>R?r>=t-1?h.push(65533):(V=e[r++],(V&192)!==128||R===224&&160>V||R===237&&160<=V||((u=e[r++])&192)!==128?(r--,h.push(65533)):h.push((R&15)<<12|(V&63)<<6|u&63)):244>=R?r>=t-2?h.push(65533):(V=e[r++],(V&192)!==128||(R<<28)+(V-144)>>30!==0||((u=e[r++])&192)!==128||((I=e[r++])&192)!==128?(r--,h.push(65533)):(R=(R&7)<<18|(V&63)<<12|(u&63)<<6|I&63,R-=65536,h.push((R>>10&1023)+55296,(R&1023)+56320))):h.push(65533),8192<=h.length&&(Z=vn(Z,h),h.length=0);u=vn(Z,h)}return Tt(o,c,u),!0}function Te(e,o,c,t,r){if(e.h!==2)return!1;e=rn(e,new t,r);var u=u===void 0?!1:u;return o.g||(o.g={}),t=e&&Me(e),o.g[c]=e,Tt(o,c,t,u),!0}function on(e,o,c,t,r){return e.h!==2?!1:(e=rn(e,new t,r),Ae(o,c,e,t,void 0),!0)}function gn(e,o,c){return e.h!==0&&e.h!==2?!1:(o=Vt(o,c),e.h==2?$e(e,gt.prototype.j,o):o.push(e.g.j()),!0)}function Fn(e,o,c){return e.h!==0?!1:(Tt(o,c,_t(e.g)),!0)}function Ne(e){It.call(this,e,-1,kn)}var wn;yt(Ne,It),Ne.prototype.getRows=function(){return Kt(this,1)},Ne.prototype.getCols=function(){return Kt(this,2)},Ne.prototype.getPackedDataList=function(){return Ke(this)},Ne.prototype.getLayout=function(){return ke(this,4,0)};function Kn(e,o){return De(e,o,wn||(wn={1:We,2:We,3:en,4:Fn}))}var kn=[3];function sn(e){It.call(this,e)}var Gn;yt(sn,It);function a(e,o){var c=Kt(e,1);if(c!=null&&c!=null){Yt(o.g,8);var t=o.g;if(0<=c)Yt(t,c);else{for(var r=0;9>r;r++)Ge(t,c&127|128),c>>=7;Ge(t,1)}}Se(o,e,2),t=Kt(e,3),t!=null&&Qt(o,3,Tn(t)),t=Kt(e,4),t!=null&&Qt(o,4,Tn(t)),Qe(e,o)}function y(e,o){return De(e,o,Gn||(Gn={1:We,2:ge,3:Vn,4:Vn}))}function v(e){It.call(this,e,-1,B)}var F;yt(v,It),v.prototype.addClassification=function(e,o){return Ae(this,1,e,sn,o),this};function E(e,o){return De(e,o,F||(F={1:[on,sn,y]}))}var B=[1];function k(e){It.call(this,e)}var O;yt(k,It);function D(e,o){Se(o,e,1),Se(o,e,2),Se(o,e,3),Se(o,e,4),Se(o,e,5),Qe(e,o)}function rt(e,o){return De(e,o,O||(O={1:ge,2:ge,3:ge,4:ge,5:ge}))}function dt(e){It.call(this,e,-1,lt)}var ct;yt(dt,It);function Xt(e,o){return De(e,o,ct||(ct={1:[on,k,rt]}))}var lt=[1];function st(e){It.call(this,e)}var ht;yt(st,It);function bt(e,o){Se(o,e,1),Se(o,e,2),Se(o,e,3),Se(o,e,4),Se(o,e,5);var c=Kt(e,6);if(c!=null&&c!=null){Yt(o.g,48);var t=o.g,r=c;c=0>r,r=Math.abs(r);var u=r>>>0;for(r=Math.floor((r-u)/4294967296),r>>>=0,c&&(r=~r>>>0,u=(~u>>>0)+1,4294967295<u&&(u=0,r++,4294967295<r&&(r=0))),Pt=u,he=r,c=Pt,u=he;0<u||127<c;)Ge(t,c&127|128),c=(c>>>7|u<<25)>>>0,u>>>=7;Ge(t,c)}Qe(e,o)}function Jt(e,o){return De(e,o,ht||(ht={1:ge,2:ge,3:ge,4:ge,5:ge,6:Rn}))}function Ct(e){It.call(this,e,-1,l)}var At;yt(Ct,It),Ct.prototype.getVertexType=function(){return ke(this,1,0)},Ct.prototype.getPrimitiveType=function(){return ke(this,2,0)},Ct.prototype.getVertexBufferList=function(){return Ke(this)},Ct.prototype.getIndexBufferList=function(){return Vt(this,4)};function Ze(e,o){return De(e,o,At||(At={1:Fn,2:Fn,3:en,4:gn}))}var l=[3,4];function f(e){It.call(this,e)}var m;yt(f,It),f.prototype.getMesh=function(){return Le(this,Ct,1)},f.prototype.getPoseTransformMatrix=function(){return Le(this,Ne,2)};function w(e,o){return De(e,o,m||(m={1:[Te,Ct,Ze],2:[Te,Ne,Kn]}))}var L=[[61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]],j=[[263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]],N=[[276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]],A=[[33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]],_=[[46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]],nt=[[10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]],ft=[].concat(et(L),et(j),et(N),et(A),et(_),et(nt));function zt(e,o,c){if(c=e.createShader(c===0?e.VERTEX_SHADER:e.FRAGMENT_SHADER),e.shaderSource(c,o),e.compileShader(c),!e.getShaderParameter(c,e.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
72
|
+
`+d.getProgramInfoLog(a));e=n.o=a,d.useProgram(e),u=d.getUniformLocation(e,"sampler0"),n.j={K:d.getAttribLocation(e,"aVertex"),J:d.getAttribLocation(e,"aTex"),ma:u},n.u=d.createBuffer(),d.bindBuffer(d.ARRAY_BUFFER,n.u),d.enableVertexAttribArray(n.j.K),d.vertexAttribPointer(n.j.K,2,d.FLOAT,!1,0,0),d.bufferData(d.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),d.STATIC_DRAW),d.bindBuffer(d.ARRAY_BUFFER,null),n.s=d.createBuffer(),d.bindBuffer(d.ARRAY_BUFFER,n.s),d.enableVertexAttribArray(n.j.J),d.vertexAttribPointer(n.j.J,2,d.FLOAT,!1,0,0),d.bufferData(d.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),d.STATIC_DRAW),d.bindBuffer(d.ARRAY_BUFFER,null),d.uniform1i(u,0)}e=n.j,d.useProgram(n.o),d.canvas.width=l.width,d.canvas.height=l.height,d.viewport(0,0,l.width,l.height),d.activeTexture(d.TEXTURE0),n.h.bindTexture2d(l.glName),d.enableVertexAttribArray(e.K),d.bindBuffer(d.ARRAY_BUFFER,n.u),d.vertexAttribPointer(e.K,2,d.FLOAT,!1,0,0),d.enableVertexAttribArray(e.J),d.bindBuffer(d.ARRAY_BUFFER,n.s),d.vertexAttribPointer(e.J,2,d.FLOAT,!1,0,0),d.bindFramebuffer(d.DRAW_FRAMEBUFFER?d.DRAW_FRAMEBUFFER:d.FRAMEBUFFER,null),d.clearColor(0,0,0,0),d.clear(d.COLOR_BUFFER_BIT),d.colorMask(!0,!0,!0,!0),d.drawArrays(d.TRIANGLE_FAN,0,4),d.disableVertexAttribArray(e.K),d.disableVertexAttribArray(e.J),d.bindBuffer(d.ARRAY_BUFFER,null),n.h.bindTexture2d(0)}function z(n){this.g=n}var lt=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function dt(n,l){return l+n}function xt(n,l){window[n]=l}function yt(n){var l=document.createElement("script");return l.setAttribute("src",n),l.setAttribute("crossorigin","anonymous"),new Promise(function(d){l.addEventListener("load",function(){d()},!1),l.addEventListener("error",function(){d()},!1),document.body.appendChild(l)})}function it(){return ht(function(n){switch(n.g){case 1:return n.o=2,$(n,WebAssembly.instantiate(lt),4);case 4:n.g=3,n.o=0;break;case 2:return n.o=0,n.j=null,n.return(!1);case 3:return n.return(!0)}})}function gt(n){if(this.g=n,this.listeners={},this.j={},this.H={},this.o={},this.u={},this.I=this.s=this.Z=!0,this.D=Promise.resolve(),this.Y="",this.C={},this.locateFile=n&&n.locateFile||dt,typeof window=="object")var l=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")l=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.$=l,n.options){l=C(Object.keys(n.options));for(var d=l.next();!d.done;d=l.next()){d=d.value;var e=n.options[d].default;e!==void 0&&(this.j[d]=typeof e=="function"?e():e)}}}V=gt.prototype,V.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function vt(n){var l,d,e,u,a,t,o,s,h,X,T;return ht(function(F){switch(F.g){case 1:return n.Z?(l=n.g.files===void 0?[]:typeof n.g.files=="function"?n.g.files(n.j):n.g.files,$(F,it(),2)):F.return();case 2:if(d=F.h,typeof window=="object")return xt("createMediapipeSolutionsWasm",{locateFile:n.locateFile}),xt("createMediapipeSolutionsPackedAssets",{locateFile:n.locateFile}),t=l.filter(function(U){return U.data!==void 0}),o=l.filter(function(U){return U.data===void 0}),s=Promise.all(t.map(function(U){var O=i(n,U.url);if(U.path!==void 0){var B=U.path;O=O.then(function(M){return n.overrideFile(B,M),Promise.resolve(M)})}return O})),h=Promise.all(o.map(function(U){return U.simd===void 0||U.simd&&d||!U.simd&&!d?yt(n.locateFile(U.url,n.$)):Promise.resolve()})).then(function(){var U,O,B;return ht(function(M){if(M.g==1)return U=window.createMediapipeSolutionsWasm,O=window.createMediapipeSolutionsPackedAssets,B=n,$(M,U(O),2);B.h=M.h,M.g=0})}),X=function(){return ht(function(U){return n.g.graph&&n.g.graph.url?U=$(U,i(n,n.g.graph.url),0):(U.g=0,U=void 0),U})}(),$(F,Promise.all([h,s,X]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return e=l.filter(function(U){return U.simd===void 0||U.simd&&d||!U.simd&&!d}).map(function(U){return n.locateFile(U.url,n.$)}),importScripts.apply(null,pt(e)),u=n,$(F,createMediapipeSolutionsWasm(Module),6);case 6:u.h=F.h,n.l=new OffscreenCanvas(1,1),n.h.canvas=n.l,a=n.h.GL.createContext(n.l,{antialias:!1,alpha:!1,ja:typeof WebGL2RenderingContext!="undefined"?2:1}),n.h.GL.makeContextCurrent(a),F.g=4;break;case 7:if(n.l=document.createElement("canvas"),T=n.l.getContext("webgl2",{}),!T&&(T=n.l.getContext("webgl",{}),!T))return alert("Failed to create WebGL canvas context when passing video frame."),F.return();n.G=T,n.h.canvas=n.l,n.h.createContext(n.l,!0,!0,{});case 4:n.i=new n.h.SolutionWasm,n.Z=!1,F.g=0}})}function Gt(n){var l,d,e,u,a,t,o,s;return ht(function(h){if(h.g==1){if(n.g.graph&&n.g.graph.url&&n.Y===n.g.graph.url)return h.return();if(n.s=!0,!n.g.graph||!n.g.graph.url){h.g=2;return}return n.Y=n.g.graph.url,$(h,i(n,n.g.graph.url),3)}for(h.g!=2&&(l=h.h,n.i.loadGraph(l)),d=C(Object.keys(n.C)),e=d.next();!e.done;e=d.next())u=e.value,n.i.overrideFile(u,n.C[u]);if(n.C={},n.g.listeners)for(a=C(n.g.listeners),t=a.next();!t.done;t=a.next())o=t.value,w(n,o);s=n.j,n.j={},n.setOptions(s),h.g=0})}V.reset=function(){var n=this;return ht(function(l){n.i&&(n.i.reset(),n.o={},n.u={}),l.g=0})},V.setOptions=function(n,l){var d=this;if(l=l||this.g.options){for(var e=[],u=[],a={},t=C(Object.keys(n)),o=t.next();!o.done;a={R:a.R,S:a.S},o=t.next()){var s=o.value;s in this.j&&this.j[s]===n[s]||(this.j[s]=n[s],o=l[s],o!==void 0&&(o.onChange&&(a.R=o.onChange,a.S=n[s],e.push(function(h){return function(){var X;return ht(function(T){if(T.g==1)return $(T,h.R(h.S),2);X=T.h,X===!0&&(d.s=!0),T.g=0})}}(a))),o.graphOptionXref&&(s={valueNumber:o.type===1?n[s]:0,valueBoolean:o.type===0?n[s]:!1,valueString:o.type===2?n[s]:""},o=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),o.graphOptionXref),s),u.push(o))))}(e.length!==0||u.length!==0)&&(this.s=!0,this.B=(this.B===void 0?[]:this.B).concat(u),this.A=(this.A===void 0?[]:this.A).concat(e))}};function Xt(n){var l,d,e,u,a,t,o;return ht(function(s){switch(s.g){case 1:if(!n.s)return s.return();if(!n.A){s.g=2;break}l=C(n.A),d=l.next();case 3:if(d.done){s.g=5;break}return e=d.value,$(s,e(),4);case 4:d=l.next(),s.g=3;break;case 5:n.A=void 0;case 2:if(n.B){for(u=new n.h.GraphOptionChangeRequestList,a=C(n.B),t=a.next();!t.done;t=a.next())o=t.value,u.push_back(o);n.i.changeOptions(u),u.delete(),n.B=void 0}n.s=!1,s.g=0}})}V.initialize=function(){var n=this;return ht(function(l){return l.g==1?$(l,vt(n),2):l.g!=3?$(l,Gt(n),3):$(l,Xt(n),0)})};function i(n,l){var d,e;return ht(function(u){return l in n.H?u.return(n.H[l]):(d=n.locateFile(l,""),e=fetch(d).then(function(a){return a.arrayBuffer()}),n.H[l]=e,u.return(e))})}V.overrideFile=function(n,l){this.i?this.i.overrideFile(n,l):this.C[n]=l},V.clearOverriddenFiles=function(){this.C={},this.i&&this.i.clearOverriddenFiles()},V.send=function(n,l){var d=this,e,u,a,t,o,s,h,X,T;return ht(function(F){switch(F.g){case 1:return d.g.inputs?(e=1e3*(l==null?performance.now():l),$(F,d.D,2)):F.return();case 2:return $(F,d.initialize(),3);case 3:for(u=new d.h.PacketDataList,a=C(Object.keys(n)),t=a.next();!t.done;t=a.next())if(o=t.value,s=d.g.inputs[o]){t:{var U=n[o];switch(s.type){case"video":var O=d.o[s.stream];if(O||(O=new J(d.h,d.G),d.o[s.stream]=O),O.l===0&&(O.l=O.h.createTexture()),typeof HTMLVideoElement!="undefined"&&U instanceof HTMLVideoElement)var B=U.videoWidth,M=U.videoHeight;else typeof HTMLImageElement!="undefined"&&U instanceof HTMLImageElement?(B=U.naturalWidth,M=U.naturalHeight):(B=U.width,M=U.height);M={glName:O.l,width:B,height:M},B=O.g,B.canvas.width=M.width,B.canvas.height=M.height,B.activeTexture(B.TEXTURE0),O.h.bindTexture2d(O.l),B.texImage2D(B.TEXTURE_2D,0,B.RGBA,B.RGBA,B.UNSIGNED_BYTE,U),O.h.bindTexture2d(0),O=M;break t;case"detections":for(O=d.o[s.stream],O||(O=new z(d.h),d.o[s.stream]=O),O.data||(O.data=new O.g.DetectionListData),O.data.reset(U.length),M=0;M<U.length;++M){B=U[M];var nt=O.data,ot=nt.setBoundingBox,ut=M,ft=B.boundingBox,at=new m;if(Vt(at,1,ft.xCenter),Vt(at,2,ft.yCenter),Vt(at,3,ft.height),Vt(at,4,ft.width),Vt(at,5,ft.rotation),Vt(at,6,ft.rectId),ft=_(at,L),ot.call(nt,ut,ft),B.landmarks)for(nt=0;nt<B.landmarks.length;++nt){at=B.landmarks[nt];var Nt=!!at.visibility;ot=O.data,ut=ot.addNormalizedLandmark,ft=M,at=Object.assign(Object.assign({},at),{visibility:Nt?at.visibility:0}),Nt=new Dt,Vt(Nt,1,at.x),Vt(Nt,2,at.y),Vt(Nt,3,at.z),at.visibility&&Vt(Nt,4,at.visibility),at=_(Nt,qt),ut.call(ot,ft,at)}if(B.V)for(nt=0;nt<B.V.length;++nt)ot=O.data,ut=ot.addClassification,ft=M,at=B.V[nt],Nt=new Wt,Vt(Nt,2,at.ga),at.index&&Vt(Nt,1,at.index),at.label&&Vt(Nt,3,at.label),at.displayName&&Vt(Nt,4,at.displayName),at=_(Nt,Zt),ut.call(ot,ft,at)}O=O.data;break t;default:O={}}}switch(h=O,X=s.stream,s.type){case"video":u.pushTexture2d(Object.assign(Object.assign({},h),{stream:X,timestamp:e}));break;case"detections":T=h,T.stream=X,T.timestamp=e,u.pushDetectionList(T);break;default:throw Error("Unknown input config type: '"+s.type+"'")}}return d.i.send(u),$(F,d.D,4);case 4:u.delete(),F.g=0}})};function g(n,l,d){var e,u,a,t,o,s,h,X,T,F,U,O,B,M;return ht(function(nt){switch(nt.g){case 1:if(!d)return nt.return(l);for(e={},u=0,a=C(Object.keys(d)),t=a.next();!t.done;t=a.next())o=t.value,s=d[o],typeof s!="string"&&s.type==="texture"&&l[s.stream]!==void 0&&++u;1<u&&(n.I=!1),h=C(Object.keys(d)),t=h.next();case 2:if(t.done){nt.g=4;break}if(X=t.value,T=d[X],typeof T=="string")return B=e,M=X,$(nt,R(n,X,l[T]),14);if(F=l[T.stream],T.type==="detection_list"){if(F){for(var ot=F.getRectList(),ut=F.getLandmarksList(),ft=F.getClassificationsList(),at=[],Nt=0;Nt<ot.size();++Nt){var _t=Z(ot.get(Nt),m,L);_t={boundingBox:{xCenter:zt(_t,1),yCenter:zt(_t,2),height:zt(_t,3),width:zt(_t,4),rotation:zt(_t,5,0),rectId:Qt(_t,6)},landmarks:Fe(Z(ut.get(Nt),Ze,c),Dt,1).map(N),V:S(Z(ft.get(Nt),Tt,Et))},at.push(_t)}ot=at}else ot=[];e[X]=ot,nt.g=7;break}if(T.type==="proto_list"){if(F){for(ot=Array(F.size()),ut=0;ut<F.size();ut++)ot[ut]=F.get(ut);F.delete()}else ot=[];e[X]=ot,nt.g=7;break}if(F===void 0){nt.g=3;break}if(T.type==="float_list"){e[X]=F,nt.g=7;break}if(T.type==="proto"){e[X]=F,nt.g=7;break}if(T.type!=="texture")throw Error("Unknown output config type: '"+T.type+"'");return U=n.u[X],U||(U=new J(n.h,n.G),n.u[X]=U),$(nt,k(U,F,n.I),13);case 13:O=nt.h,e[X]=O;case 7:T.transform&&e[X]&&(e[X]=T.transform(e[X])),nt.g=3;break;case 14:B[M]=nt.h;case 3:t=h.next(),nt.g=2;break;case 4:return nt.return(e)}})}function R(n,l,d){var e;return ht(function(u){return typeof d=="number"||d instanceof Uint8Array||d instanceof n.h.Uint8BlobList?u.return(d):d instanceof n.h.Texture2dDataOut?(e=n.u[l],e||(e=new J(n.h,n.G),n.u[l]=e),u.return(k(e,d,n.I))):u.return(void 0)})}function w(n,l){for(var d=l.name||"$",e=[].concat(pt(l.wants)),u=new n.h.StringList,a=C(l.wants),t=a.next();!t.done;t=a.next())u.push_back(t.value);a=n.h.PacketListener.implement({onResults:function(o){for(var s={},h=0;h<l.wants.length;++h)s[e[h]]=o.get(h);var X=n.listeners[d];X&&(n.D=g(n,s,l.outs).then(function(T){T=X(T);for(var F=0;F<l.wants.length;++F){var U=s[e[F]];typeof U=="object"&&U.hasOwnProperty&&U.hasOwnProperty("delete")&&U.delete()}T&&(n.D=T)}))}}),n.i.attachMultiListener(u,a),u.delete()}V.onResults=function(n,l){this.listeners[l||"$"]=n},St("Solution",gt),St("OptionType",{BOOL:0,NUMBER:1,ia:2,0:"BOOL",1:"NUMBER",2:"STRING"});function E(n){var l=this;n=n||{};var d={url:"face_detection_short.binarypb"},e={type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"facedetectionshortrangegpu__facedetectionshortrangecommon__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}};this.g=new gt({locateFile:n.locateFile,files:[{data:!0,url:"face_detection_short.binarypb"},{data:!0,url:"face_detection_short_range.tflite"},{simd:!0,url:"face_detection_solution_simd_wasm_bin.js"},{simd:!1,url:"face_detection_solution_wasm_bin.js"}],graph:d,listeners:[{wants:["detections","image_transformed"],outs:{image:"image_transformed",detections:{type:"detection_list",stream:"detections"}}}],inputs:{image:{type:"video",stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:typeof window!="object"||window.navigator===void 0?!1:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},model:{type:0,onChange:function(u){var a,t,o,s,h,X;return ht(function(T){switch(T.g){case 1:a=u==="short"?["face_detection_short_range.tflite"]:["face_detection_full_range_sparse.tflite"],t=C(a),o=t.next();case 2:if(o.done){T.g=4;break}return s=o.value,h="third_party/mediapipe/modules/face_detection/"+s,$(T,i(l.g,s),5);case 5:X=T.h,l.g.overrideFile(h,X),o=t.next(),T.g=2;break;case 4:return d.url=u==="short"?"face_detection_short.binarypb":"face_detection_full.binarypb",e.graphOptionXref.calculatorName=u==="short"?"facedetectionshortrangegpu__facedetectionshortrangecommon__TensorsToDetectionsCalculator":"facedetectionfullrangegpu__facedetectionfullrangecommon__TensorsToDetectionsCalculator",T.return(!0)}})}},minDetectionConfidence:e}})}V=E.prototype,V.close=function(){return this.g.close(),Promise.resolve()},V.onResults=function(n){this.g.onResults(n)},V.initialize=function(){var n=this;return ht(function(l){return $(l,n.g.initialize(),0)})},V.reset=function(){this.g.reset()},V.send=function(n){var l=this;return ht(function(d){return $(d,l.g.send(n),0)})},V.setOptions=function(n){this.g.setOptions(n)},St("FaceDetection",E),St("FACEDETECTION_LIPS",H),St("FACEDETECTION_LEFT_EYE",P),St("FACEDETECTION_LEFT_EYEBROW",j),St("FACEDETECTION_RIGHT_EYE",D),St("FACEDETECTION_RIGHT_EYEBROW",rt),St("FACEDETECTION_FACE_OVAL",r),St("FACEDETECTION_CONTOURS",y),St("FACEDETECTION_TESSELATION",[[127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]]),St("VERSION","0.4.1646425229")}).call(xr);const Lr={};(function(){var V;function v(c){var p=0;return function(){return p<c.length?{done:!1,value:c[p++]}:{done:!0}}}var W=typeof Object.defineProperties=="function"?Object.defineProperty:function(c,p,m){return c==Array.prototype||c==Object.prototype||(c[p]=m.value),c};function I(c){c=[typeof globalThis=="object"&&globalThis,c,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var p=0;p<c.length;++p){var m=c[p];if(m&&m.Math==Math)return m}throw Error("Cannot find global object")}var x=I(this);function A(c,p){if(p)t:{var m=x;c=c.split(".");for(var L=0;L<c.length-1;L++){var H=c[L];if(!(H in m))break t;m=m[H]}c=c[c.length-1],L=m[c],p=p(L),p!=L&&p!=null&&W(m,c,{configurable:!0,writable:!0,value:p})}}A("Symbol",function(c){function p(P){if(this instanceof p)throw new TypeError("Symbol is not a constructor");return new m(L+(P||"")+"_"+H++,P)}function m(P,j){this.g=P,W(this,"description",{configurable:!0,writable:!0,value:j})}if(c)return c;m.prototype.toString=function(){return this.g};var L="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",H=0;return p}),A("Symbol.iterator",function(c){if(c)return c;c=Symbol("Symbol.iterator");for(var p="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),m=0;m<p.length;m++){var L=x[p[m]];typeof L=="function"&&typeof L.prototype[c]!="function"&&W(L.prototype,c,{configurable:!0,writable:!0,value:function(){return Q(v(this))}})}return c});function Q(c){return c={next:c},c[Symbol.iterator]=function(){return this},c}function C(c){var p=typeof Symbol!="undefined"&&Symbol.iterator&&c[Symbol.iterator];return p?p.call(c):{next:v(c)}}function pt(c){if(!(c instanceof Array)){c=C(c);for(var p,m=[];!(p=c.next()).done;)m.push(p.value);c=m}return c}var _e=typeof Object.create=="function"?Object.create:function(c){function p(){}return p.prototype=c,new p},ct;if(typeof Object.setPrototypeOf=="function")ct=Object.setPrototypeOf;else{var jt;t:{var qe={a:!0},fe={};try{fe.__proto__=qe,jt=fe.a;break t}catch{}jt=!1}ct=jt?function(c,p){if(c.__proto__=p,c.__proto__!==p)throw new TypeError(c+" is not extensible");return c}:null}var He=ct;function Lt(c,p){if(c.prototype=_e(p.prototype),c.prototype.constructor=c,He)He(c,p);else for(var m in p)if(m!="prototype")if(Object.defineProperties){var L=Object.getOwnPropertyDescriptor(p,m);L&&Object.defineProperty(c,m,L)}else c[m]=p[m];c.ea=p.prototype}function ue(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function pe(c){if(c.l)throw new TypeError("Generator is already running");c.l=!0}ue.prototype.o=function(c){this.h=c};function he(c,p){c.j={U:p,V:!0},c.g=c.m||c.s}ue.prototype.return=function(c){this.j={return:c},this.g=this.s};function $(c,p,m){return c.g=m,{value:p}}function Fn(c){this.g=new ue,this.h=c}function Hn(c,p){pe(c.g);var m=c.g.i;return m?je(c,"return"in m?m.return:function(L){return{value:L,done:!0}},p,c.g.return):(c.g.return(p),ee(c))}function je(c,p,m,L){try{var H=p.call(c.g.i,m);if(!(H instanceof Object))throw new TypeError("Iterator result "+H+" is not an object");if(!H.done)return c.g.l=!1,H;var P=H.value}catch(j){return c.g.i=null,he(c.g,j),ee(c)}return c.g.i=null,L.call(c.g,P),ee(c)}function ee(c){for(;c.g.g;)try{var p=c.h(c.g);if(p)return c.g.l=!1,{value:p.value,done:!1}}catch(m){c.g.h=void 0,he(c.g,m)}if(c.g.l=!1,c.g.j){if(p=c.g.j,c.g.j=null,p.V)throw p.U;return{value:p.return,done:!0}}return{value:void 0,done:!0}}function jn(c){this.next=function(p){return pe(c.g),c.g.i?p=je(c,c.g.i.next,p,c.g.o):(c.g.o(p),p=ee(c)),p},this.throw=function(p){return pe(c.g),c.g.i?p=je(c,c.g.i.throw,p,c.g.o):(he(c.g,p),p=ee(c)),p},this.return=function(p){return Hn(c,p)},this[Symbol.iterator]=function(){return this}}function te(c,p){return p=new jn(new Fn(p)),He&&c.prototype&&He(p,c.prototype),p}function ht(c,p){c instanceof String&&(c+="");var m=0,L=!1,H={next:function(){if(!L&&m<c.length){var P=m++;return{value:p(P,c[P]),done:!1}}return L=!0,{done:!0,value:void 0}}};return H[Symbol.iterator]=function(){return H},H}var Jn=typeof Object.assign=="function"?Object.assign:function(c,p){for(var m=1;m<arguments.length;m++){var L=arguments[m];if(L)for(var H in L)Object.prototype.hasOwnProperty.call(L,H)&&(c[H]=L[H])}return c};A("Object.assign",function(c){return c||Jn}),A("Promise",function(c){function p(j){this.h=0,this.i=void 0,this.g=[],this.o=!1;var D=this.j();try{j(D.resolve,D.reject)}catch(rt){D.reject(rt)}}function m(){this.g=null}function L(j){return j instanceof p?j:new p(function(D){D(j)})}if(c)return c;m.prototype.h=function(j){if(this.g==null){this.g=[];var D=this;this.i(function(){D.l()})}this.g.push(j)};var H=x.setTimeout;m.prototype.i=function(j){H(j,0)},m.prototype.l=function(){for(;this.g&&this.g.length;){var j=this.g;this.g=[];for(var D=0;D<j.length;++D){var rt=j[D];j[D]=null;try{rt()}catch(r){this.j(r)}}}this.g=null},m.prototype.j=function(j){this.i(function(){throw j})},p.prototype.j=function(){function j(r){return function(y){rt||(rt=!0,r.call(D,y))}}var D=this,rt=!1;return{resolve:j(this.C),reject:j(this.l)}},p.prototype.C=function(j){if(j===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(j instanceof p)this.F(j);else{t:switch(typeof j){case"object":var D=j!=null;break t;case"function":D=!0;break t;default:D=!1}D?this.u(j):this.m(j)}},p.prototype.u=function(j){var D=void 0;try{D=j.then}catch(rt){this.l(rt);return}typeof D=="function"?this.G(D,j):this.m(j)},p.prototype.l=function(j){this.s(2,j)},p.prototype.m=function(j){this.s(1,j)},p.prototype.s=function(j,D){if(this.h!=0)throw Error("Cannot settle("+j+", "+D+"): Promise already settled in state"+this.h);this.h=j,this.i=D,this.h===2&&this.D(),this.A()},p.prototype.D=function(){var j=this;H(function(){if(j.B()){var D=x.console;typeof D!="undefined"&&D.error(j.i)}},1)},p.prototype.B=function(){if(this.o)return!1;var j=x.CustomEvent,D=x.Event,rt=x.dispatchEvent;return typeof rt=="undefined"?!0:(typeof j=="function"?j=new j("unhandledrejection",{cancelable:!0}):typeof D=="function"?j=new D("unhandledrejection",{cancelable:!0}):(j=x.document.createEvent("CustomEvent"),j.initCustomEvent("unhandledrejection",!1,!0,j)),j.promise=this,j.reason=this.i,rt(j))},p.prototype.A=function(){if(this.g!=null){for(var j=0;j<this.g.length;++j)P.h(this.g[j]);this.g=null}};var P=new m;return p.prototype.F=function(j){var D=this.j();j.J(D.resolve,D.reject)},p.prototype.G=function(j,D){var rt=this.j();try{j.call(D,rt.resolve,rt.reject)}catch(r){rt.reject(r)}},p.prototype.then=function(j,D){function rt(S,N){return typeof S=="function"?function(J){try{r(S(J))}catch(k){y(k)}}:N}var r,y,G=new p(function(S,N){r=S,y=N});return this.J(rt(j,r),rt(D,y)),G},p.prototype.catch=function(j){return this.then(void 0,j)},p.prototype.J=function(j,D){function rt(){switch(r.h){case 1:j(r.i);break;case 2:D(r.i);break;default:throw Error("Unexpected state: "+r.h)}}var r=this;this.g==null?P.h(rt):this.g.push(rt),this.o=!0},p.resolve=L,p.reject=function(j){return new p(function(D,rt){rt(j)})},p.race=function(j){return new p(function(D,rt){for(var r=C(j),y=r.next();!y.done;y=r.next())L(y.value).J(D,rt)})},p.all=function(j){var D=C(j),rt=D.next();return rt.done?L([]):new p(function(r,y){function G(J){return function(k){S[J]=k,N--,N==0&&r(S)}}var S=[],N=0;do S.push(void 0),N++,L(rt.value).J(G(S.length-1),y),rt=D.next();while(!rt.done)})},p}),A("Object.is",function(c){return c||function(p,m){return p===m?p!==0||1/p===1/m:p!==p&&m!==m}}),A("Array.prototype.includes",function(c){return c||function(p,m){var L=this;L instanceof String&&(L=String(L));var H=L.length;for(m=m||0,0>m&&(m=Math.max(m+H,0));m<H;m++){var P=L[m];if(P===p||Object.is(P,p))return!0}return!1}}),A("String.prototype.includes",function(c){return c||function(p,m){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(p instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(p,m||0)!==-1}}),A("Array.prototype.keys",function(c){return c||function(){return ht(this,function(p){return p})}});var Cn=this||self;function ye(c,p){c=c.split(".");var m=Cn;c[0]in m||typeof m.execScript=="undefined"||m.execScript("var "+c[0]);for(var L;c.length&&(L=c.shift());)c.length||p===void 0?m[L]&&m[L]!==Object.prototype[L]?m=m[L]:m=m[L]={}:m[L]=p}function St(c,p){return p=String.fromCharCode.apply(null,p),c==null?p:c+p}var We,tn=typeof TextDecoder!="undefined",hn,Wn=typeof TextEncoder!="undefined";function bn(c){if(Wn)c=(hn||(hn=new TextEncoder)).encode(c);else{var p=void 0;p=p===void 0?!1:p;for(var m=0,L=new Uint8Array(3*c.length),H=0;H<c.length;H++){var P=c.charCodeAt(H);if(128>P)L[m++]=P;else{if(2048>P)L[m++]=P>>6|192;else{if(55296<=P&&57343>=P){if(56319>=P&&H<c.length){var j=c.charCodeAt(++H);if(56320<=j&&57343>=j){P=1024*(P-55296)+j-56320+65536,L[m++]=P>>18|240,L[m++]=P>>12&63|128,L[m++]=P>>6&63|128,L[m++]=P&63|128;continue}else H--}if(p)throw Error("Found an unpaired surrogate");P=65533}L[m++]=P>>12|224,L[m++]=P>>6&63|128}L[m++]=P&63|128}}c=L.subarray(0,m)}return c}var xn={},en=null;function un(c,p){p===void 0&&(p=0),pn(),p=xn[p];for(var m=Array(Math.floor(c.length/3)),L=p[64]||"",H=0,P=0;H<c.length-2;H+=3){var j=c[H],D=c[H+1],rt=c[H+2],r=p[j>>2];j=p[(j&3)<<4|D>>4],D=p[(D&15)<<2|rt>>6],rt=p[rt&63],m[P++]=r+j+D+rt}switch(r=0,rt=L,c.length-H){case 2:r=c[H+1],rt=p[(r&15)<<2]||L;case 1:c=c[H],m[P]=p[c>>2]+p[(c&3)<<4|r>>4]+rt+L}return m.join("")}function In(c){var p=c.length,m=3*p/4;m%3?m=Math.floor(m):"=.".indexOf(c[p-1])!=-1&&(m="=.".indexOf(c[p-2])!=-1?m-2:m-1);var L=new Uint8Array(m),H=0;return Vn(c,function(P){L[H++]=P}),L.subarray(0,H)}function Vn(c,p){function m(rt){for(;L<c.length;){var r=c.charAt(L++),y=en[r];if(y!=null)return y;if(!/^[\s\xa0]*$/.test(r))throw Error("Unknown base64 encoding at char: "+r)}return rt}pn();for(var L=0;;){var H=m(-1),P=m(0),j=m(64),D=m(64);if(D===64&&H===-1)break;p(H<<2|P>>4),j!=64&&(p(P<<4&240|j>>2),D!=64&&p(j<<6&192|D))}}function pn(){if(!en){en={};for(var c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),p=["+/=","+/","-_=","-_.","-_"],m=0;5>m;m++){var L=c.concat(p[m].split(""));xn[m]=L;for(var H=0;H<L.length;H++){var P=L[H];en[P]===void 0&&(en[P]=H)}}}}var nn=typeof Uint8Array.prototype.slice=="function",Zn;function dn(c,p,m){return p===m?Zn||(Zn=new Uint8Array(0)):nn?c.slice(p,m):new Uint8Array(c.subarray(p,m))}var ce=0,ve=0;function Pe(c,p){p=p===void 0?{}:p,p=p.v===void 0?!1:p.v,this.h=null,this.g=this.j=this.l=0,this.m=!1,this.v=p,c&&le(this,c)}function le(c,p){p=p.constructor===Uint8Array?p:p.constructor===ArrayBuffer?new Uint8Array(p):p.constructor===Array?new Uint8Array(p):p.constructor===String?In(p):p instanceof Uint8Array?new Uint8Array(p.buffer,p.byteOffset,p.byteLength):new Uint8Array(0),c.h=p,c.l=0,c.j=c.h.length,c.g=c.l}Pe.prototype.reset=function(){this.g=this.l};function ae(c){for(var p=128,m=0,L=0,H=0;4>H&&128<=p;H++)p=c.h[c.g++],m|=(p&127)<<7*H;if(128<=p&&(p=c.h[c.g++],m|=(p&127)<<28,L|=(p&127)>>4),128<=p)for(H=0;5>H&&128<=p;H++)p=c.h[c.g++],L|=(p&127)<<7*H+3;if(128>p)return c=m>>>0,p=L>>>0,(L=p&2147483648)&&(c=~c+1>>>0,p=~p>>>0,c==0&&(p=p+1>>>0)),c=4294967296*p+(c>>>0),L?-c:c;c.m=!0}Pe.prototype.i=function(){var c=this.h,p=c[this.g],m=p&127;return 128>p?(this.g+=1,m):(p=c[this.g+1],m|=(p&127)<<7,128>p?(this.g+=2,m):(p=c[this.g+2],m|=(p&127)<<14,128>p?(this.g+=3,m):(p=c[this.g+3],m|=(p&127)<<21,128>p?(this.g+=4,m):(p=c[this.g+4],m|=(p&15)<<28,128>p?(this.g+=5,m>>>0):(this.g+=5,128<=c[this.g++]&&128<=c[this.g++]&&128<=c[this.g++]&&128<=c[this.g++]&&this.g++,m)))))},Pe.prototype.o=function(){var c=this.h[this.g],p=this.h[this.g+1],m=this.h[this.g+2],L=this.h[this.g+3];return this.g+=4,m=(c<<0|p<<8|m<<16|L<<24)>>>0,c=2*(m>>31)+1,p=m>>>23&255,m&=8388607,p==255?m?NaN:1/0*c:p==0?c*Math.pow(2,-149)*m:c*Math.pow(2,p-150)*(m+Math.pow(2,23))};var ze=[];function xe(){this.g=new Uint8Array(64),this.h=0}xe.prototype.push=function(c){if(!(this.h+1<this.g.length)){var p=this.g;this.g=new Uint8Array(Math.ceil(1+2*this.g.length)),this.g.set(p)}this.g[this.h++]=c},xe.prototype.length=function(){return this.h},xe.prototype.end=function(){var c=this.g,p=this.h;return this.h=0,dn(c,0,p)};function Ct(c,p){for(;127<p;)c.push(p&127|128),p>>>=7;c.push(p)}function re(c){var p={},m=p.N===void 0?!1:p.N;this.o={v:p.v===void 0?!1:p.v},this.N=m,p=this.o,ze.length?(m=ze.pop(),p&&(m.v=p.v),c&&le(m,c),c=m):c=new Pe(c,p),this.g=c,this.m=this.g.g,this.h=this.i=this.l=-1,this.j=!1}re.prototype.reset=function(){this.g.reset(),this.h=this.l=-1};function Ve(c){var p=c.g;if((p=p.g==p.j)||(p=c.j)||(p=c.g,p=p.m||0>p.g||p.g>p.j),p)return!1;c.m=c.g.g,p=c.g.i();var m=p&7;return m!=0&&m!=5&&m!=1&&m!=2&&m!=3&&m!=4?(c.j=!0,!1):(c.i=p,c.l=p>>>3,c.h=m,!0)}function It(c){switch(c.h){case 0:if(c.h!=0)It(c);else{for(c=c.g;c.h[c.g]&128;)c.g++;c.g++}break;case 1:c.h!=1?It(c):(c=c.g,c.g+=8);break;case 2:if(c.h!=2)It(c);else{var p=c.g.i();c=c.g,c.g+=p}break;case 5:c.h!=5?It(c):(c=c.g,c.g+=4);break;case 3:p=c.l;do{if(!Ve(c)){c.j=!0;break}if(c.h==4){c.l!=p&&(c.j=!0);break}It(c)}while(1);break;default:c.j=!0}}function de(c,p,m){var L=c.g.j,H=c.g.i(),P=c.g.g+H;if(c.g.j=P,m(p,c),m=P-c.g.g,m!==0)throw Error("Message parsing ended unexpectedly. Expected to read "+H+" bytes, instead read "+(H-m)+" bytes, either the data ended unexpectedly or the message misreported its own length");return c.g.g=P,c.g.j=L,p}function At(c){return c.g.o()}function ne(c){var p=c.g.i();c=c.g;var m=c.g;c.g+=p,c=c.h;var L;if(tn)(L=We)||(L=We=new TextDecoder("utf-8",{fatal:!1})),L=L.decode(c.subarray(m,m+p));else{p=m+p;for(var H=[],P=null,j,D,rt;m<p;)j=c[m++],128>j?H.push(j):224>j?m>=p?H.push(65533):(D=c[m++],194>j||(D&192)!==128?(m--,H.push(65533)):H.push((j&31)<<6|D&63)):240>j?m>=p-1?H.push(65533):(D=c[m++],(D&192)!==128||j===224&&160>D||j===237&&160<=D||((L=c[m++])&192)!==128?(m--,H.push(65533)):H.push((j&15)<<12|(D&63)<<6|L&63)):244>=j?m>=p-2?H.push(65533):(D=c[m++],(D&192)!==128||(j<<28)+(D-144)>>30!==0||((L=c[m++])&192)!==128||((rt=c[m++])&192)!==128?(m--,H.push(65533)):(j=(j&7)<<18|(D&63)<<12|(L&63)<<6|rt&63,j-=65536,H.push((j>>10&1023)+55296,(j&1023)+56320))):H.push(65533),8192<=H.length&&(P=St(P,H),H.length=0);L=St(P,H)}return L}function Ge(c,p,m){var L=c.g.i();for(L=c.g.g+L;c.g.g<L;)m.push(p.call(c.g))}function Be(c,p){c.h==2?Ge(c,Pe.prototype.o,p):p.push(At(c))}function se(){this.h=[],this.i=0,this.g=new xe}function Yt(c,p){p.length!==0&&(c.h.push(p),c.i+=p.length)}function Ie(c){var p=c.i+c.g.length();if(p===0)return new Uint8Array(0);p=new Uint8Array(p);for(var m=c.h,L=m.length,H=0,P=0;P<L;P++){var j=m[P];j.length!==0&&(p.set(j,H),H+=j.length)}return m=c.g,L=m.h,L!==0&&(p.set(m.g.subarray(0,L),H),m.h=0),c.h=[p],p}function Je(c,p,m){if(m!=null){Ct(c.g,8*p+5),c=c.g;var L=m;L=(m=0>L?1:0)?-L:L,L===0?0<1/L?ce=ve=0:(ve=0,ce=2147483648):isNaN(L)?(ve=0,ce=2147483647):34028234663852886e22<L?(ve=0,ce=(m<<31|2139095040)>>>0):11754943508222875e-54>L?(L=Math.round(L/Math.pow(2,-149)),ve=0,ce=(m<<31|L)>>>0):(p=Math.floor(Math.log(L)/Math.LN2),L*=Math.pow(2,-p),L=Math.round(8388608*L),16777216<=L&&++p,ve=0,ce=(m<<31|p+127<<23|L&8388607)>>>0),m=ce,c.push(m>>>0&255),c.push(m>>>8&255),c.push(m>>>16&255),c.push(m>>>24&255)}}var ge=typeof Uint8Array=="function";function Xn(c,p,m){if(c!=null)return typeof c=="object"?ge&&c instanceof Uint8Array?m(c):Qe(c,p,m):p(c)}function Qe(c,p,m){if(Array.isArray(c)){for(var L=Array(c.length),H=0;H<c.length;H++)L[H]=Xn(c[H],p,m);return Array.isArray(c)&&c.W&&ie(L),L}L={};for(H in c)L[H]=Xn(c[H],p,m);return L}function sn(c){return typeof c=="number"?isFinite(c)?c:String(c):c}var cn={W:{value:!0,configurable:!0}};function ie(c){return Array.isArray(c)&&!Object.isFrozen(c)&&Object.defineProperties(c,cn),c}var Re;function oe(c,p,m){var L=Re;Re=null,c||(c=L),L=this.constructor.ca,c||(c=L?[L]:[]),this.j=L?0:-1,this.m=this.g=null,this.h=c;t:{if(L=this.h.length,c=L-1,L&&(L=this.h[c],!(L===null||typeof L!="object"||Array.isArray(L)||ge&&L instanceof Uint8Array))){this.l=c-this.j,this.i=L;break t}p!==void 0&&-1<p?(this.l=Math.max(p,c+1-this.j),this.i=null):this.l=Number.MAX_VALUE}if(m)for(p=0;p<m.length;p++)c=m[p],c<this.l?(c+=this.j,(L=this.h[c])?ie(L):this.h[c]=Mt):(Ce(this),(L=this.i[c])?ie(L):this.i[c]=Mt)}var Mt=Object.freeze(ie([]));function Ce(c){var p=c.l+c.j;c.h[p]||(c.i=c.h[p]={})}function Ot(c,p,m){return p===-1?null:(m===void 0?0:m)||p>=c.l?c.i?c.i[p]:void 0:c.h[p+c.j]}function Ut(c,p){var m=m===void 0?!1:m,L=Ot(c,p,m);return L==null&&(L=Mt),L===Mt&&(L=ie([]),bt(c,p,L,m)),L}function gn(c){var p=Ut(c,3);if(c.m||(c.m={}),!c.m[3]){for(var m=0;m<p.length;m++)p[m]=+p[m];c.m[3]=!0}return p}function $t(c,p,m){return c=Ot(c,p),c==null?m:c}function Vt(c,p,m){return c=Ot(c,p),c=c==null?c:+c,c==null?m===void 0?0:m:c}function bt(c,p,m,L){(L===void 0?0:L)||p>=c.l?(Ce(c),c.i[p]=m):c.h[p+c.j]=m}function zt(c,p,m){if(m===-1)return null;if(c.g||(c.g={}),!c.g[m]){var L=Ot(c,m,!1);L&&(c.g[m]=new p(L))}return c.g[m]}function Fe(c,p){c.g||(c.g={});var m=c.g[1];if(!m){var L=Ut(c,1);m=[];for(var H=0;H<L.length;H++)m[H]=new p(L[H]);c.g[1]=m}return m}function Kt(c,p,m){var L=L===void 0?!1:L;c.g||(c.g={});var H=m&&Le(m);c.g[p]=m,bt(c,p,H,L)}function Qt(c,p,m,L){var H=Fe(c,m);p=p||new m,c=Ut(c,1),L!=null?(H.splice(L,0,p),c.splice(L,0,Le(p))):(H.push(p),c.push(Le(p)))}oe.prototype.toJSON=function(){var c=Le(this);return Qe(c,sn,un)};function Le(c,p){if(c.g)for(var m in c.g){var L=c.g[m];if(Array.isArray(L))for(var H=0;H<L.length;H++)L[H]&&Le(L[H]);else L&&Le(L)}return c.h}oe.prototype.toString=function(){return Le(this).toString()};function kt(c,p){if(c=c.o){Yt(p,p.g.end());for(var m=0;m<c.length;m++)Yt(p,c[m])}}function Rt(c,p){if(p.h==4)return!1;var m=p.m;return It(p),p.N||(p=dn(p.g.h,m,p.g.g),(m=c.o)?m.push(p):c.o=[p]),!0}function Ae(c){oe.call(this,c,-1,Se)}Lt(Ae,oe),Ae.prototype.getRows=function(){return Ot(this,1)},Ae.prototype.getCols=function(){return Ot(this,2)},Ae.prototype.getPackedDataList=function(){return gn(this)},Ae.prototype.getLayout=function(){return $t(this,4,0)};function Oe(c,p){for(;Ve(p);)switch(p.i){case 8:var m=p.g.i();bt(c,1,m);break;case 16:m=p.g.i(),bt(c,2,m);break;case 29:case 26:Be(p,c.getPackedDataList());break;case 32:m=ae(p.g),bt(c,4,m);break;default:if(!Rt(c,p))return c}return c}var Se=[3];function Jt(c,p){var m=void 0;return new(m||(m=Promise))(function(L,H){function P(rt){try{D(p.next(rt))}catch(r){H(r)}}function j(rt){try{D(p.throw(rt))}catch(r){H(r)}}function D(rt){rt.done?L(rt.value):new m(function(r){r(rt.value)}).then(P,j)}D((p=p.apply(c,void 0)).next())})}function Ne(c){oe.call(this,c)}Lt(Ne,oe);function an(c,p){for(;Ve(p);)switch(p.i){case 8:var m=p.g.i();bt(c,1,m);break;case 21:m=At(p),bt(c,2,m);break;case 26:m=ne(p),bt(c,3,m);break;case 34:m=ne(p),bt(c,4,m);break;default:if(!Rt(c,p))return c}return c}function De(c){oe.call(this,c,-1,Ee)}Lt(De,oe),De.prototype.addClassification=function(c,p){return Qt(this,c,Ne,p),this};var Ee=[1];function Me(c){oe.call(this,c)}Lt(Me,oe);function $e(c,p){for(;Ve(p);)switch(p.i){case 13:var m=At(p);bt(c,1,m);break;case 21:m=At(p),bt(c,2,m);break;case 29:m=At(p),bt(c,3,m);break;case 37:m=At(p),bt(c,4,m);break;case 45:m=At(p),bt(c,5,m);break;default:if(!Rt(c,p))return c}return c}function me(c){oe.call(this,c,-1,Nn)}Lt(me,oe);function Ye(c){t:{var p=new me;for(c=new re(c);Ve(c);)switch(c.i){case 10:var m=de(c,new Me,$e);Qt(p,m,Me,void 0);break;default:if(!Rt(p,c))break t}}return p}var Nn=[1];function Ue(c){oe.call(this,c)}Lt(Ue,oe);function be(c){oe.call(this,c,-1,fn)}Lt(be,oe),be.prototype.getVertexType=function(){return $t(this,1,0)},be.prototype.getPrimitiveType=function(){return $t(this,2,0)},be.prototype.getVertexBufferList=function(){return gn(this)},be.prototype.getIndexBufferList=function(){return Ut(this,4)};function rn(c,p){for(;Ve(p);)switch(p.i){case 8:var m=ae(p.g);bt(c,1,m);break;case 16:m=ae(p.g),bt(c,2,m);break;case 29:case 26:Be(p,c.getVertexBufferList());break;case 32:case 34:m=p;var L=c.getIndexBufferList();m.h==2?Ge(m,Pe.prototype.i,L):L.push(m.g.i());break;default:if(!Rt(c,p))return c}return c}var fn=[3,4];function Te(c){oe.call(this,c)}Lt(Te,oe),Te.prototype.getMesh=function(){return zt(this,be,1)},Te.prototype.getPoseTransformMatrix=function(){return zt(this,Ae,2)};function Sn(c){t:{var p=new Te;for(c=new re(c);Ve(c);)switch(c.i){case 10:var m=de(c,new be,rn);Kt(p,1,m);break;case 18:m=de(c,new Ae,Oe),Kt(p,2,m);break;default:if(!Rt(p,c))break t}}return p}function ke(c,p,m){if(m=c.createShader(m===0?c.VERTEX_SHADER:c.FRAGMENT_SHADER),c.shaderSource(m,p),c.compileShader(m),!c.getShaderParameter(m,c.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
73
73
|
|
|
74
|
-
`+
|
|
74
|
+
`+c.getShaderInfoLog(m));return m}function on(c){return Fe(c,Ne).map(function(p){return{index:$t(p,1,0),Y:Vt(p,2),label:Ot(p,3)!=null?$t(p,3,""):void 0,displayName:Ot(p,4)!=null?$t(p,4,""):void 0}})}function mn(c){return{x:Vt(c,1),y:Vt(c,2),z:Vt(c,3),visibility:Ot(c,4)!=null?Vt(c,4):void 0}}function Ln(c,p){this.h=c,this.g=p,this.l=0}function Ke(c,p,m){return yn(c,p),typeof c.g.canvas.transferToImageBitmap=="function"?Promise.resolve(c.g.canvas.transferToImageBitmap()):m?Promise.resolve(c.g.canvas):typeof createImageBitmap=="function"?createImageBitmap(c.g.canvas):(c.i===void 0&&(c.i=document.createElement("canvas")),new Promise(function(L){c.i.height=c.g.canvas.height,c.i.width=c.g.canvas.width,c.i.getContext("2d",{}).drawImage(c.g.canvas,0,0,c.g.canvas.width,c.g.canvas.height),L(c.i)}))}function yn(c,p){var m=c.g;if(c.m===void 0){var L=ke(m,`
|
|
75
75
|
attribute vec2 aVertex;
|
|
76
76
|
attribute vec2 aTex;
|
|
77
77
|
varying vec2 vTex;
|
|
78
78
|
void main(void) {
|
|
79
79
|
gl_Position = vec4(aVertex, 0.0, 1.0);
|
|
80
80
|
vTex = aTex;
|
|
81
|
-
}`,0),
|
|
81
|
+
}`,0),H=ke(m,`
|
|
82
82
|
precision mediump float;
|
|
83
83
|
varying vec2 vTex;
|
|
84
84
|
uniform sampler2D sampler0;
|
|
85
85
|
void main(){
|
|
86
86
|
gl_FragColor = texture2D(sampler0, vTex);
|
|
87
|
-
}`,1),
|
|
87
|
+
}`,1),P=m.createProgram();if(m.attachShader(P,L),m.attachShader(P,H),m.linkProgram(P),!m.getProgramParameter(P,m.LINK_STATUS))throw Error(`Could not compile WebGL program.
|
|
88
88
|
|
|
89
|
-
`+c.getProgramInfoLog(u));t=e.m=u,c.useProgram(t),r=c.getUniformLocation(t,"sampler0"),e.j={I:c.getAttribLocation(t,"aVertex"),H:c.getAttribLocation(t,"aTex"),ca:r},e.s=c.createBuffer(),c.bindBuffer(c.ARRAY_BUFFER,e.s),c.enableVertexAttribArray(e.j.I),c.vertexAttribPointer(e.j.I,2,c.FLOAT,!1,0,0),c.bufferData(c.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),c.STATIC_DRAW),c.bindBuffer(c.ARRAY_BUFFER,null),e.o=c.createBuffer(),c.bindBuffer(c.ARRAY_BUFFER,e.o),c.enableVertexAttribArray(e.j.H),c.vertexAttribPointer(e.j.H,2,c.FLOAT,!1,0,0),c.bufferData(c.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),c.STATIC_DRAW),c.bindBuffer(c.ARRAY_BUFFER,null),c.uniform1i(r,0)}t=e.j,c.useProgram(e.m),c.canvas.width=o.width,c.canvas.height=o.height,c.viewport(0,0,o.width,o.height),c.activeTexture(c.TEXTURE0),e.h.bindTexture2d(o.glName),c.enableVertexAttribArray(t.I),c.bindBuffer(c.ARRAY_BUFFER,e.s),c.vertexAttribPointer(t.I,2,c.FLOAT,!1,0,0),c.enableVertexAttribArray(t.H),c.bindBuffer(c.ARRAY_BUFFER,e.o),c.vertexAttribPointer(t.H,2,c.FLOAT,!1,0,0),c.bindFramebuffer(c.DRAW_FRAMEBUFFER?c.DRAW_FRAMEBUFFER:c.FRAMEBUFFER,null),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),c.colorMask(!0,!0,!0,!0),c.drawArrays(c.TRIANGLE_FAN,0,4),c.disableVertexAttribArray(t.I),c.disableVertexAttribArray(t.H),c.bindBuffer(c.ARRAY_BUFFER,null),e.h.bindTexture2d(0)}function Fe(e){this.g=e}var Dt=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function He(e,o){return o+e}function ie(e,o){window[e]=o}function St(e){var o=document.createElement("script");return o.setAttribute("src",e),o.setAttribute("crossorigin","anonymous"),new Promise(function(c){o.addEventListener("load",function(){c()},!1),o.addEventListener("error",function(){c()},!1),document.body.appendChild(o)})}function Ht(){return ut(function(e){switch(e.g){case 1:return e.m=2,P(e,WebAssembly.instantiate(Dt),4);case 4:e.g=3,e.m=0;break;case 2:return e.m=0,e.j=null,e.return(!1);case 3:return e.return(!0)}})}function kt(e){if(this.g=e,this.listeners={},this.j={},this.F={},this.m={},this.s={},this.G=this.o=this.R=!0,this.C=Promise.resolve(),this.P="",this.B={},this.locateFile=e&&e.locateFile||He,typeof window=="object")var o=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")o=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.S=o,e.options){o=U(Object.keys(e.options));for(var c=o.next();!c.done;c=o.next()){c=c.value;var t=e.options[c].default;t!==void 0&&(this.j[c]=typeof t=="function"?t():t)}}}X=kt.prototype,X.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function Nt(e){var o,c,t,r,u,h,Z,R,V,I,Y;return ut(function(H){switch(H.g){case 1:return e.R?(o=e.g.files===void 0?[]:typeof e.g.files=="function"?e.g.files(e.j):e.g.files,P(H,Ht(),2)):H.return();case 2:if(c=H.h,typeof window=="object")return ie("createMediapipeSolutionsWasm",{locateFile:e.locateFile}),ie("createMediapipeSolutionsPackedAssets",{locateFile:e.locateFile}),h=o.filter(function(C){return C.data!==void 0}),Z=o.filter(function(C){return C.data===void 0}),R=Promise.all(h.map(function(C){var z=p(e,C.url);if(C.path!==void 0){var M=C.path;z=z.then(function(Q){return e.overrideFile(M,Q),Promise.resolve(Q)})}return z})),V=Promise.all(Z.map(function(C){return C.simd===void 0||C.simd&&c||!C.simd&&!c?St(e.locateFile(C.url,e.S)):Promise.resolve()})).then(function(){var C,z,M;return ut(function(Q){if(Q.g==1)return C=window.createMediapipeSolutionsWasm,z=window.createMediapipeSolutionsPackedAssets,M=e,P(Q,C(z),2);M.h=Q.h,Q.g=0})}),I=function(){return ut(function(C){return e.g.graph&&e.g.graph.url?C=P(C,p(e,e.g.graph.url),0):(C.g=0,C=void 0),C})}(),P(H,Promise.all([V,R,I]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return t=o.filter(function(C){return C.simd===void 0||C.simd&&c||!C.simd&&!c}).map(function(C){return e.locateFile(C.url,e.S)}),importScripts.apply(null,et(t)),r=e,P(H,createMediapipeSolutionsWasm(Module),6);case 6:r.h=H.h,e.l=new OffscreenCanvas(1,1),e.h.canvas=e.l,u=e.h.GL.createContext(e.l,{antialias:!1,alpha:!1,aa:typeof WebGL2RenderingContext!="undefined"?2:1}),e.h.GL.makeContextCurrent(u),H.g=4;break;case 7:if(e.l=document.createElement("canvas"),Y=e.l.getContext("webgl2",{}),!Y&&(Y=e.l.getContext("webgl",{}),!Y))return alert("Failed to create WebGL canvas context when passing video frame."),H.return();e.D=Y,e.h.canvas=e.l,e.h.createContext(e.l,!0,!0,{});case 4:e.i=new e.h.SolutionWasm,e.R=!1,H.g=0}})}function jt(e){var o,c,t,r,u,h,Z,R;return ut(function(V){if(V.g==1){if(e.g.graph&&e.g.graph.url&&e.P===e.g.graph.url)return V.return();if(e.o=!0,!e.g.graph||!e.g.graph.url){V.g=2;return}return e.P=e.g.graph.url,P(V,p(e,e.g.graph.url),3)}for(V.g!=2&&(o=V.h,e.i.loadGraph(o)),c=U(Object.keys(e.B)),t=c.next();!t.done;t=c.next())r=t.value,e.i.overrideFile(r,e.B[r]);if(e.B={},e.g.listeners)for(u=U(e.g.listeners),h=u.next();!h.done;h=u.next())Z=h.value,x(e,Z);R=e.j,e.j={},e.setOptions(R),V.g=0})}X.reset=function(){var e=this;return ut(function(o){e.i&&(e.i.reset(),e.m={},e.s={}),o.g=0})},X.setOptions=function(e,o){var c=this;if(o=o||this.g.options){for(var t=[],r=[],u={},h=U(Object.keys(e)),Z=h.next();!Z.done;u={K:u.K,L:u.L},Z=h.next()){var R=Z.value;R in this.j&&this.j[R]===e[R]||(this.j[R]=e[R],Z=o[R],Z!==void 0&&(Z.onChange&&(u.K=Z.onChange,u.L=e[R],t.push(function(V){return function(){var I;return ut(function(Y){if(Y.g==1)return P(Y,V.K(V.L),2);I=Y.h,I===!0&&(c.o=!0),Y.g=0})}}(u))),Z.graphOptionXref&&(R={valueNumber:Z.type===1?e[R]:0,valueBoolean:Z.type===0?e[R]:!1,valueString:Z.type===2?e[R]:""},Z=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),Z.graphOptionXref),R),r.push(Z))))}(t.length!==0||r.length!==0)&&(this.o=!0,this.A=(this.A===void 0?[]:this.A).concat(r),this.v=(this.v===void 0?[]:this.v).concat(t))}};function i(e){var o,c,t,r,u,h,Z;return ut(function(R){switch(R.g){case 1:if(!e.o)return R.return();if(!e.v){R.g=2;break}o=U(e.v),c=o.next();case 3:if(c.done){R.g=5;break}return t=c.value,P(R,t(),4);case 4:c=o.next(),R.g=3;break;case 5:e.v=void 0;case 2:if(e.A){for(r=new e.h.GraphOptionChangeRequestList,u=U(e.A),h=u.next();!h.done;h=u.next())Z=h.value,r.push_back(Z);e.i.changeOptions(r),r.delete(),e.A=void 0}e.o=!1,R.g=0}})}X.initialize=function(){var e=this;return ut(function(o){return o.g==1?P(o,Nt(e),2):o.g!=3?P(o,jt(e),3):P(o,i(e),0)})};function p(e,o){var c,t;return ut(function(r){return o in e.F?r.return(e.F[o]):(c=e.locateFile(o,""),t=fetch(c).then(function(u){return u.arrayBuffer()}),e.F[o]=t,r.return(t))})}X.overrideFile=function(e,o){this.i?this.i.overrideFile(e,o):this.B[e]=o},X.clearOverriddenFiles=function(){this.B={},this.i&&this.i.clearOverriddenFiles()},X.send=function(e,o){var c=this,t,r,u,h,Z,R,V,I,Y;return ut(function(H){switch(H.g){case 1:return c.g.inputs?(t=1e3*(o==null?performance.now():o),P(H,c.C,2)):H.return();case 2:return P(H,c.initialize(),3);case 3:for(r=new c.h.PacketDataList,u=U(Object.keys(e)),h=u.next();!h.done;h=u.next())if(Z=h.value,R=c.g.inputs[Z]){t:{var C=e[Z];switch(R.type){case"video":var z=c.m[R.stream];if(z||(z=new pt(c.h,c.D),c.m[R.stream]=z),z.l===0&&(z.l=z.h.createTexture()),typeof HTMLVideoElement!="undefined"&&C instanceof HTMLVideoElement)var M=C.videoWidth,Q=C.videoHeight;else typeof HTMLImageElement!="undefined"&&C instanceof HTMLImageElement?(M=C.naturalWidth,Q=C.naturalHeight):(M=C.width,Q=C.height);Q={glName:z.l,width:M,height:Q},M=z.g,M.canvas.width=Q.width,M.canvas.height=Q.height,M.activeTexture(M.TEXTURE0),z.h.bindTexture2d(z.l),M.texImage2D(M.TEXTURE_2D,0,M.RGBA,M.RGBA,M.UNSIGNED_BYTE,C),z.h.bindTexture2d(0),z=Q;break t;case"detections":for(z=c.m[R.stream],z||(z=new Fe(c.h),c.m[R.stream]=z),z.data||(z.data=new z.g.DetectionListData),z.data.reset(C.length),Q=0;Q<C.length;++Q){M=C[Q];var q=z.data,$=q.setBoundingBox,mt=Q,Wt=M.T,Rt=new st;if(Tt(Rt,1,Wt.X),Tt(Rt,2,Wt.Y),Tt(Rt,3,Wt.height),Tt(Rt,4,Wt.width),Tt(Rt,5,Wt.rotation),Tt(Rt,6,Wt.W),Wt=Wn(Rt,bt),$.call(q,mt,Wt),M.O)for(q=0;q<M.O.length;++q){Rt=M.O[q];var le=!!Rt.visibility;$=z.data,mt=$.addNormalizedLandmark,Wt=Q,Rt=Object.assign(Object.assign({},Rt),{visibility:le?Rt.visibility:0}),le=new k,Tt(le,1,Rt.x),Tt(le,2,Rt.y),Tt(le,3,Rt.z),Rt.visibility&&Tt(le,4,Rt.visibility),Rt=Wn(le,D),mt.call($,Wt,Rt)}if(M.M)for(q=0;q<M.M.length;++q)$=z.data,mt=$.addClassification,Wt=Q,Rt=M.M[q],le=new sn,Tt(le,2,Rt.score),Rt.index&&Tt(le,1,Rt.index),Rt.label&&Tt(le,3,Rt.label),Rt.displayName&&Tt(le,4,Rt.displayName),Rt=Wn(le,a),mt.call($,Wt,Rt)}z=z.data;break t;default:z={}}}switch(V=z,I=R.stream,R.type){case"video":r.pushTexture2d(Object.assign(Object.assign({},V),{stream:I,timestamp:t}));break;case"detections":Y=V,Y.stream=I,Y.timestamp=t,r.pushDetectionList(Y);break;default:throw Error("Unknown input config type: '"+R.type+"'")}}return c.i.send(r),P(H,c.C,4);case 4:r.delete(),H.g=0}})};function b(e,o,c){var t,r,u,h,Z,R,V,I,Y,H,C,z,M,Q;return ut(function(q){switch(q.g){case 1:if(!c)return q.return(o);for(t={},r=0,u=U(Object.keys(c)),h=u.next();!h.done;h=u.next())Z=h.value,R=c[Z],typeof R!="string"&&R.type==="texture"&&o[R.stream]!==void 0&&++r;1<r&&(e.G=!1),V=U(Object.keys(c)),h=V.next();case 2:if(h.done){q.g=4;break}if(I=h.value,Y=c[I],typeof Y=="string")return M=t,Q=I,P(q,W(e,I,o[Y]),14);if(H=o[Y.stream],Y.type==="detection_list"){if(H){for(var $=H.getRectList(),mt=H.getLandmarksList(),Wt=H.getClassificationsList(),Rt=[],le=0;le<$.size();++le){var Oe=Yn($.get(le),st,Jt);Oe={T:{X:Ee(Oe,1),Y:Ee(Oe,2),height:Ee(Oe,3),width:Ee(Oe,4),rotation:Ee(Oe,5,0),W:ke(Oe,6,0)},O:ot(mt.get(le)),M:Lt(Yn(Wt.get(le),v,E))},Rt.push(Oe)}$=Rt}else $=[];t[I]=$,q.g=7;break}if(Y.type==="proto_list"){if(H){for($=Array(H.size()),mt=0;mt<H.size();mt++)$[mt]=H.get(mt);H.delete()}else $=[];t[I]=$,q.g=7;break}if(H===void 0){q.g=3;break}if(Y.type==="float_list"){t[I]=H,q.g=7;break}if(Y.type==="proto"){t[I]=H,q.g=7;break}if(Y.type!=="texture")throw Error("Unknown output config type: '"+Y.type+"'");return C=e.s[I],C||(C=new pt(e.h,e.D),e.s[I]=C),P(q,wt(C,H,e.G),13);case 13:z=q.h,t[I]=z;case 7:Y.transform&&t[I]&&(t[I]=Y.transform(t[I])),q.g=3;break;case 14:M[Q]=q.h;case 3:h=V.next(),q.g=2;break;case 4:return q.return(t)}})}function W(e,o,c){var t;return ut(function(r){return typeof c=="number"||c instanceof Uint8Array||c instanceof e.h.Uint8BlobList?r.return(c):c instanceof e.h.Texture2dDataOut?(t=e.s[o],t||(t=new pt(e.h,e.D),e.s[o]=t),r.return(wt(t,c,e.G))):r.return(void 0)})}function x(e,o){for(var c=o.name||"$",t=[].concat(et(o.wants)),r=new e.h.StringList,u=U(o.wants),h=u.next();!h.done;h=u.next())r.push_back(h.value);u=e.h.PacketListener.implement({onResults:function(Z){for(var R={},V=0;V<o.wants.length;++V)R[t[V]]=Z.get(V);var I=e.listeners[c];I&&(e.C=b(e,R,o.outs).then(function(Y){Y=I(Y);for(var H=0;H<o.wants.length;++H){var C=R[t[H]];typeof C=="object"&&C.hasOwnProperty&&C.hasOwnProperty("delete")&&C.delete()}Y&&(e.C=Y)}))}}),e.i.attachMultiListener(r,u),r.delete()}X.onResults=function(e,o){this.listeners[o||"$"]=e},vt("Solution",kt),vt("OptionType",{BOOL:0,NUMBER:1,Z:2,0:"BOOL",1:"NUMBER",2:"STRING"});function n(e){return e.map(s)}function s(e){e=Yn(e,f,w);var o=e.getMesh();if(!o)return e;var c=new Float32Array(o.getVertexBufferList());o.getVertexBufferList=function(){return c};var t=new Uint32Array(o.getIndexBufferList());return o.getIndexBufferList=function(){return t},e}function d(e){var o=this;e=e||{},this.g=new kt({locateFile:e.locateFile,files:[{url:"holistic_solution_packed_assets_loader.js"},{simd:!1,url:"holistic_solution_wasm_bin.js"},{simd:!0,url:"holistic_solution_simd_wasm_bin.js"}],graph:{url:"holistic.binarypb"},inputs:{image:{type:"video",stream:"input_frames_gpu"}},listeners:[{wants:"left_hand_landmarks right_hand_landmarks face_landmarks pose_landmarks world_landmarks segmentation_mask image_transformed multi_face_geometry".split(" "),outs:{image:{type:"texture",stream:"image_transformed"},leftHandLandmarks:{type:"proto",stream:"left_hand_landmarks",transform:ot},rightHandLandmarks:{type:"proto",stream:"right_hand_landmarks",transform:ot},faceLandmarks:{type:"proto",stream:"face_landmarks",transform:ot},poseLandmarks:{type:"proto",stream:"pose_landmarks",transform:ot},ea:{type:"proto",stream:"world_landmarks",transform:ot},segmentationMask:{type:"texture",stream:"segmentation_mask"},multiFaceGeometry:{type:"proto_list",stream:"multi_face_geometry",transform:n}}}],options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},enableFaceGeometry:{type:0,graphOptionXref:{calculatorName:"EnableFaceGeometryConstant",calculatorType:"ConstantSidePacketCalculator",fieldName:"bool_value"}},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},modelComplexity:{type:1,default:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelComplexity",fieldName:"int_value"},onChange:function(c){var t,r,u,h;return ut(function(Z){if(Z.g==1){switch(t="",c){case 1:t="pose_landmark_full.tflite";break;case 2:t="pose_landmark_heavy.tflite";break;default:t="pose_landmark_lite.tflite"}return r="third_party/mediapipe/modules/pose_landmark/"+t,u=o.g.locateFile(t,""),P(Z,fetch(u),3)}return Z.g!=2?P(Z,Z.h.arrayBuffer(),2):(h=Z.h,o.g.overrideFile(r,h),P(Z,o.g.reset(),0))})}},smoothLandmarks:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorSmoothLandmarks",fieldName:"bool_value"}},enableSegmentation:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorEnableSegmentation",fieldName:"bool_value"}},smoothSegmentation:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorSmoothSegmentation",fieldName:"bool_value"}},refineFaceLandmarks:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorRefineFaceLandmarks",fieldName:"bool_value"}},minDetectionConfidence:{type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"holisticlandmarkgpu__poselandmarkgpu__posedetectiongpu__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"holisticlandmarkgpu__poselandmarkgpu__poselandmarkbyroigpu__tensorstoposelandmarksandsegmentation__ThresholdingCalculator",fieldName:"threshold"}},cameraNear:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"near"}},cameraFar:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"far"}},cameraVerticalFovDegrees:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"vertical_fov_degrees"}}}})}X=d.prototype,X.close=function(){return this.g.close(),Promise.resolve()},X.onResults=function(e){this.g.onResults(e)},X.initialize=function(){var e=this;return ut(function(o){return P(o,e.g.initialize(),0)})},X.reset=function(){this.g.reset()},X.send=function(e){var o=this;return ut(function(c){return P(c,o.g.send(e),0)})},X.setOptions=function(e){this.g.setOptions(e)},vt("Holistic",d),vt("FACE_GEOMETRY",{Layout:{COLUMN_MAJOR:0,ROW_MAJOR:1,0:"COLUMN_MAJOR",1:"ROW_MAJOR"},PrimitiveType:{TRIANGLE:0,0:"TRIANGLE"},VertexType:{VERTEX_PT:0,0:"VERTEX_PT"},DEFAULT_CAMERA_PARAMS:{verticalFovDegrees:63,near:1,far:1e4}}),vt("FACEMESH_LIPS",L),vt("FACEMESH_LEFT_EYE",j),vt("FACEMESH_LEFT_EYEBROW",N),vt("FACEMESH_LEFT_IRIS",[[474,475],[475,476],[476,477],[477,474]]),vt("FACEMESH_RIGHT_EYE",A),vt("FACEMESH_RIGHT_EYEBROW",_),vt("FACEMESH_RIGHT_IRIS",[[469,470],[470,471],[471,472],[472,469]]),vt("FACEMESH_FACE_OVAL",nt),vt("FACEMESH_CONTOURS",ft),vt("FACEMESH_TESSELATION",[[127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]]),vt("HAND_CONNECTIONS",[[0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[0,17],[17,18],[18,19],[19,20]]),vt("POSE_CONNECTIONS",[[0,1],[1,2],[2,3],[3,7],[0,4],[4,5],[5,6],[6,8],[9,10],[11,12],[11,13],[13,15],[15,17],[15,19],[15,21],[17,19],[12,14],[14,16],[16,18],[16,20],[16,22],[18,20],[11,23],[12,24],[23,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,31],[30,32],[27,31],[28,32]]),vt("POSE_LANDMARKS",{NOSE:0,LEFT_EYE_INNER:1,LEFT_EYE:2,LEFT_EYE_OUTER:3,RIGHT_EYE_INNER:4,RIGHT_EYE:5,RIGHT_EYE_OUTER:6,LEFT_EAR:7,RIGHT_EAR:8,LEFT_RIGHT:9,RIGHT_LEFT:10,LEFT_SHOULDER:11,RIGHT_SHOULDER:12,LEFT_ELBOW:13,RIGHT_ELBOW:14,LEFT_WRIST:15,RIGHT_WRIST:16,LEFT_PINKY:17,RIGHT_PINKY:18,LEFT_INDEX:19,RIGHT_INDEX:20,LEFT_THUMB:21,RIGHT_THUMB:22,LEFT_HIP:23,RIGHT_HIP:24,LEFT_KNEE:25,RIGHT_KNEE:26,LEFT_ANKLE:27,RIGHT_ANKLE:28,LEFT_HEEL:29,RIGHT_HEEL:30,LEFT_FOOT_INDEX:31,RIGHT_FOOT_INDEX:32}),vt("POSE_LANDMARKS_LEFT",{LEFT_EYE_INNER:1,LEFT_EYE:2,LEFT_EYE_OUTER:3,LEFT_EAR:7,LEFT_RIGHT:9,LEFT_SHOULDER:11,LEFT_ELBOW:13,LEFT_WRIST:15,LEFT_PINKY:17,LEFT_INDEX:19,LEFT_THUMB:21,LEFT_HIP:23,LEFT_KNEE:25,LEFT_ANKLE:27,LEFT_HEEL:29,LEFT_FOOT_INDEX:31}),vt("POSE_LANDMARKS_RIGHT",{RIGHT_EYE_INNER:4,RIGHT_EYE:5,RIGHT_EYE_OUTER:6,RIGHT_EAR:8,RIGHT_LEFT:10,RIGHT_SHOULDER:12,RIGHT_ELBOW:14,RIGHT_WRIST:16,RIGHT_PINKY:18,RIGHT_INDEX:20,RIGHT_THUMB:22,RIGHT_HIP:24,RIGHT_KNEE:26,RIGHT_ANKLE:28,RIGHT_HEEL:30,RIGHT_FOOT_INDEX:32}),vt("POSE_LANDMARKS_NEUTRAL",{NOSE:0}),vt("matrixDataToMatrix",function(e){for(var o=e.getCols(),c=e.getRows(),t=e.getPackedDataList(),r=[],u=0;u<c;u++)r.push(Array(o));for(u=0;u<c;u++)for(var h=0;h<o;h++){var Z=e.getLayout()===1?u*o+h:h*c+u;r[u][h]=t[Z]}return r}),vt("VERSION","0.5.1635989137")}.call(cn),globalThis.VonageHolisticVersion=globalThis.VERSION,globalThis.VonageHolistic=globalThis.Holistic,function(){var X;function g(t){var r=0;return function(){return r<t.length?{done:!1,value:t[r++]}:{done:!0}}}var G=typeof Object.defineProperties=="function"?Object.defineProperty:function(t,r,u){return t==Array.prototype||t==Object.prototype||(t[r]=u.value),t};function S(t){t=[typeof globalThis=="object"&&globalThis,t,typeof window=="object"&&window,typeof self=="object"&&self,typeof cn=="object"&&cn];for(var r=0;r<t.length;++r){var u=t[r];if(u&&u.Math==Math)return u}throw Error("Cannot find global object")}var T=S(this);function J(t,r){if(r)t:{var u=T;t=t.split(".");for(var h=0;h<t.length-1;h++){var Z=t[h];if(!(Z in u))break t;u=u[Z]}t=t[t.length-1],h=u[t],r=r(h),r!=h&&r!=null&&G(u,t,{configurable:!0,writable:!0,value:r})}}J("Symbol",function(t){function r(R){if(this instanceof r)throw new TypeError("Symbol is not a constructor");return new u(h+(R||"")+"_"+Z++,R)}function u(R,V){this.g=R,G(this,"description",{configurable:!0,writable:!0,value:V})}if(t)return t;u.prototype.toString=function(){return this.g};var h="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",Z=0;return r}),J("Symbol.iterator",function(t){if(t)return t;t=Symbol("Symbol.iterator");for(var r="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),u=0;u<r.length;u++){var h=T[r[u]];typeof h=="function"&&typeof h.prototype[t]!="function"&&G(h.prototype,t,{configurable:!0,writable:!0,value:function(){return K(g(this))}})}return t});function K(t){return t={next:t},t[Symbol.iterator]=function(){return this},t}function U(t){var r=typeof Symbol!="undefined"&&Symbol.iterator&&t[Symbol.iterator];return r?r.call(t):{next:g(t)}}function et(t){if(!(t instanceof Array)){t=U(t);for(var r,u=[];!(r=t.next()).done;)u.push(r.value);t=u}return t}var Ye=typeof Object.create=="function"?Object.create:function(t){function r(){}return r.prototype=t,new r},tt;if(typeof Object.setPrototypeOf=="function")tt=Object.setPrototypeOf;else{var Ft;t:{var Pe={a:!0},se={};try{se.__proto__=Pe,Ft=se.a;break t}catch{}Ft=!1}tt=Ft?function(t,r){if(t.__proto__=r,t.__proto__!==r)throw new TypeError(t+" is not extensible");return t}:null}var Je=tt;function yt(t,r){if(t.prototype=Ye(r.prototype),t.prototype.constructor=t,Je)Je(t,r);else for(var u in r)if(u!="prototype")if(Object.defineProperties){var h=Object.getOwnPropertyDescriptor(r,u);h&&Object.defineProperty(t,u,h)}else t[u]=r[u];t.ka=r.prototype}function $t(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function fe(t){if(t.l)throw new TypeError("Generator is already running");t.l=!0}$t.prototype.o=function(t){this.h=t};function ae(t,r){t.j={V:r,X:!0},t.g=t.m||t.s}$t.prototype.return=function(t){this.j={return:t},this.g=this.s};function P(t,r,u){return t.g=u,{value:r}}function Sn(t){this.g=new $t,this.h=t}function En(t,r){fe(t.g);var u=t.g.i;return u?Ce(t,"return"in u?u.return:function(h){return{value:h,done:!0}},r,t.g.return):(t.g.return(r),qt(t))}function Ce(t,r,u,h){try{var Z=r.call(t.g.i,u);if(!(Z instanceof Object))throw new TypeError("Iterator result "+Z+" is not an object");if(!Z.done)return t.g.l=!1,Z;var R=Z.value}catch(V){return t.g.i=null,ae(t.g,V),qt(t)}return t.g.i=null,h.call(t.g,R),qt(t)}function qt(t){for(;t.g.g;)try{var r=t.h(t.g);if(r)return t.g.l=!1,{value:r.value,done:!1}}catch(u){t.g.h=void 0,ae(t.g,u)}if(t.g.l=!1,t.g.j){if(r=t.g.j,t.g.j=null,r.X)throw r.V;return{value:r.return,done:!0}}return{value:void 0,done:!0}}function Hn(t){this.next=function(r){return fe(t.g),t.g.i?r=Ce(t,t.g.i.next,r,t.g.o):(t.g.o(r),r=qt(t)),r},this.throw=function(r){return fe(t.g),t.g.i?r=Ce(t,t.g.i.throw,r,t.g.o):(ae(t.g,r),r=qt(t)),r},this.return=function(r){return En(t,r)},this[Symbol.iterator]=function(){return this}}function Ot(t){function r(h){return t.next(h)}function u(h){return t.throw(h)}return new Promise(function(h,Z){function R(V){V.done?h(V.value):Promise.resolve(V.value).then(r,u).then(R,Z)}R(t.next())})}function ut(t){return Ot(new Hn(new Sn(t)))}J("Promise",function(t){function r(V){this.h=0,this.i=void 0,this.g=[],this.o=!1;var I=this.j();try{V(I.resolve,I.reject)}catch(Y){I.reject(Y)}}function u(){this.g=null}function h(V){return V instanceof r?V:new r(function(I){I(V)})}if(t)return t;u.prototype.h=function(V){if(this.g==null){this.g=[];var I=this;this.i(function(){I.l()})}this.g.push(V)};var Z=T.setTimeout;u.prototype.i=function(V){Z(V,0)},u.prototype.l=function(){for(;this.g&&this.g.length;){var V=this.g;this.g=[];for(var I=0;I<V.length;++I){var Y=V[I];V[I]=null;try{Y()}catch(H){this.j(H)}}}this.g=null},u.prototype.j=function(V){this.i(function(){throw V})},r.prototype.j=function(){function V(H){return function(C){Y||(Y=!0,H.call(I,C))}}var I=this,Y=!1;return{resolve:V(this.D),reject:V(this.l)}},r.prototype.D=function(V){if(V===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(V instanceof r)this.G(V);else{t:switch(typeof V){case"object":var I=V!=null;break t;case"function":I=!0;break t;default:I=!1}I?this.A(V):this.m(V)}},r.prototype.A=function(V){var I=void 0;try{I=V.then}catch(Y){this.l(Y);return}typeof I=="function"?this.H(I,V):this.m(V)},r.prototype.l=function(V){this.s(2,V)},r.prototype.m=function(V){this.s(1,V)},r.prototype.s=function(V,I){if(this.h!=0)throw Error("Cannot settle("+V+", "+I+"): Promise already settled in state"+this.h);this.h=V,this.i=I,this.h===2&&this.F(),this.B()},r.prototype.F=function(){var V=this;Z(function(){if(V.C()){var I=T.console;typeof I!="undefined"&&I.error(V.i)}},1)},r.prototype.C=function(){if(this.o)return!1;var V=T.CustomEvent,I=T.Event,Y=T.dispatchEvent;return typeof Y=="undefined"?!0:(typeof V=="function"?V=new V("unhandledrejection",{cancelable:!0}):typeof I=="function"?V=new I("unhandledrejection",{cancelable:!0}):(V=T.document.createEvent("CustomEvent"),V.initCustomEvent("unhandledrejection",!1,!0,V)),V.promise=this,V.reason=this.i,Y(V))},r.prototype.B=function(){if(this.g!=null){for(var V=0;V<this.g.length;++V)R.h(this.g[V]);this.g=null}};var R=new u;return r.prototype.G=function(V){var I=this.j();V.K(I.resolve,I.reject)},r.prototype.H=function(V,I){var Y=this.j();try{V.call(I,Y.resolve,Y.reject)}catch(H){Y.reject(H)}},r.prototype.then=function(V,I){function Y(M,Q){return typeof M=="function"?function(q){try{H(M(q))}catch($){C($)}}:Q}var H,C,z=new r(function(M,Q){H=M,C=Q});return this.K(Y(V,H),Y(I,C)),z},r.prototype.catch=function(V){return this.then(void 0,V)},r.prototype.K=function(V,I){function Y(){switch(H.h){case 1:V(H.i);break;case 2:I(H.i);break;default:throw Error("Unexpected state: "+H.h)}}var H=this;this.g==null?R.h(Y):this.g.push(Y),this.o=!0},r.resolve=h,r.reject=function(V){return new r(function(I,Y){Y(V)})},r.race=function(V){return new r(function(I,Y){for(var H=U(V),C=H.next();!C.done;C=H.next())h(C.value).K(I,Y)})},r.all=function(V){var I=U(V),Y=I.next();return Y.done?h([]):new r(function(H,C){function z(q){return function($){M[q]=$,Q--,Q==0&&H(M)}}var M=[],Q=0;do M.push(void 0),Q++,h(Y.value).K(z(M.length-1),C),Y=I.next();while(!Y.done)})},r});function Cn(t,r){t instanceof String&&(t+="");var u=0,h=!1,Z={next:function(){if(!h&&u<t.length){var R=u++;return{value:r(R,t[R]),done:!1}}return h=!0,{done:!0,value:void 0}}};return Z[Symbol.iterator]=function(){return Z},Z}var jn=typeof Object.assign=="function"?Object.assign:function(t,r){for(var u=1;u<arguments.length;u++){var h=arguments[u];if(h)for(var Z in h)Object.prototype.hasOwnProperty.call(h,Z)&&(t[Z]=h[Z])}return t};J("Object.assign",function(t){return t||jn}),J("Object.is",function(t){return t||function(r,u){return r===u?r!==0||1/r===1/u:r!==r&&u!==u}}),J("Array.prototype.includes",function(t){return t||function(r,u){var h=this;h instanceof String&&(h=String(h));var Z=h.length;for(u=u||0,0>u&&(u=Math.max(u+Z,0));u<Z;u++){var R=h[u];if(R===r||Object.is(R,r))return!0}return!1}}),J("String.prototype.includes",function(t){return t||function(r,u){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(r instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(r,u||0)!==-1}}),J("Array.prototype.keys",function(t){return t||function(){return Cn(this,function(r){return r})}});var de=this||self;function vt(t,r){t=t.split(".");var u=de;t[0]in u||typeof u.execScript=="undefined"||u.execScript("var "+t[0]);for(var h;t.length&&(h=t.shift());)t.length||r===void 0?u[h]&&u[h]!==Object.prototype[h]?u=u[h]:u=u[h]={}:u[h]=r}function ye(t){throw t}function an(t,r){ye(Error("Invalid wire type: "+t+" (at position "+r+")"))}function hn(){ye(Error("Failed to read varint, encoding is invalid."))}function In(t,r){return r=String.fromCharCode.apply(null,r),t==null?r:t+r}var vn,Ln=typeof TextDecoder!="undefined",Be,nn=typeof TextEncoder!="undefined";function Nn(t){if(nn)t=(Be||(Be=new TextEncoder)).encode(t);else{var r=void 0;r=r===void 0?!1:r;for(var u=0,h=new Uint8Array(3*t.length),Z=0;Z<t.length;Z++){var R=t.charCodeAt(Z);if(128>R)h[u++]=R;else{if(2048>R)h[u++]=R>>6|192;else{if(55296<=R&&57343>=R){if(56319>=R&&Z<t.length){var V=t.charCodeAt(++Z);if(56320<=V&&57343>=V){R=1024*(R-55296)+V-56320+65536,h[u++]=R>>18|240,h[u++]=R>>12&63|128,h[u++]=R>>6&63|128,h[u++]=R&63|128;continue}else Z--}if(r)throw Error("Found an unpaired surrogate");R=65533}h[u++]=R>>12|224,h[u++]=R>>6&63|128}h[u++]=R&63|128}}t=h.subarray(0,u)}return t}var Tn={},fn=null;function dn(t){var r;r===void 0&&(r=0),re(),r=Tn[r];for(var u=Array(Math.floor(t.length/3)),h=r[64]||"",Z=0,R=0;Z<t.length-2;Z+=3){var V=t[Z],I=t[Z+1],Y=t[Z+2],H=r[V>>2];V=r[(V&3)<<4|I>>4],I=r[(I&15)<<2|Y>>6],Y=r[Y&63],u[R++]=H+V+I+Y}switch(H=0,Y=h,t.length-Z){case 2:H=t[Z+1],Y=r[(H&15)<<2]||h;case 1:t=t[Z],u[R]=r[t>>2]+r[(t&3)<<4|H>>4]+Y+h}return u.join("")}function bn(t){var r=t.length,u=3*r/4;u%3?u=Math.floor(u):"=.".indexOf(t[r-1])!=-1&&(u="=.".indexOf(t[r-2])!=-1?u-2:u-1);var h=new Uint8Array(u),Z=0;return pn(t,function(R){h[Z++]=R}),h.subarray(0,Z)}function pn(t,r){function u(Y){for(;h<t.length;){var H=t.charAt(h++),C=fn[H];if(C!=null)return C;if(!/^[\s\xa0]*$/.test(H))throw Error("Unknown base64 encoding at char: "+H)}return Y}re();for(var h=0;;){var Z=u(-1),R=u(0),V=u(64),I=u(64);if(I===64&&Z===-1)break;r(Z<<2|R>>4),V!=64&&(r(R<<4&240|V>>2),I!=64&&r(V<<6&192|I))}}function re(){if(!fn){fn={};for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),r=["+/=","+/","-_=","-_.","-_"],u=0;5>u;u++){var h=t.concat(r[u].split(""));Tn[u]=h;for(var Z=0;Z<h.length;Z++){var R=h[Z];fn[R]===void 0&&(fn[R]=Z)}}}}var pe=typeof Uint8Array=="function",ze;function oe(t){if(this.g=t,t!==null&&t.length===0)throw Error("ByteString should be constructed with non-empty values")}var ue=typeof Uint8Array.prototype.slice=="function";function je(t,r,u){return r===u?ze||(ze=new Uint8Array(0)):ue?t.slice(r,u):new Uint8Array(t.subarray(r,u))}var Ve=0,Pt=0;function he(t){if(t.constructor===Uint8Array)return t;if(t.constructor===ArrayBuffer)return new Uint8Array(t);if(t.constructor===Array)return new Uint8Array(t);if(t.constructor===String)return bn(t);if(t.constructor===oe){if(t.g==null)var r=ze||(ze=new Uint8Array(0));else{r=Uint8Array;var u=t.g;u=u==null||pe&&u!=null&&u instanceof Uint8Array?u:typeof u=="string"?bn(u):null,t=t.g=u,r=new r(t)}return r}if(t instanceof Uint8Array)return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function ve(t,r){r=r===void 0?{}:r,r=r.v===void 0?!1:r.v,this.h=null,this.g=this.i=this.l=0,this.j=!1,this.v=r,t&>(this,t)}function gt(t,r){t.h=he(r),t.l=0,t.i=t.h.length,t.g=t.l}ve.prototype.reset=function(){this.g=this.l};function me(t){for(var r=128,u=0,h=0,Z=0;4>Z&&128<=r;Z++)r=t.h[t.g++],u|=(r&127)<<7*Z;if(128<=r&&(r=t.h[t.g++],u|=(r&127)<<28,h|=(r&127)>>4),128<=r)for(Z=0;5>Z&&128<=r;Z++)r=t.h[t.g++],h|=(r&127)<<7*Z+3;if(128>r)return t=u>>>0,r=h>>>0,(h=r&2147483648)&&(t=~t+1>>>0,r=~r>>>0,t==0&&(r=r+1>>>0)),t=4294967296*r+(t>>>0),h?-t:t;t.j=!0,hn()}function _t(t){t.g>t.i&&(t.j=!0,ye(Error("Tried to read past the end of the data "+t.g+" > "+t.i)))}function te(t){var r=t.h,u=r[t.g],h=u&127;return 128>u?(t.g+=1,_t(t),h):(u=r[t.g+1],h|=(u&127)<<7,128>u?(t.g+=2,_t(t),h):(u=r[t.g+2],h|=(u&127)<<14,128>u?(t.g+=3,_t(t),h):(u=r[t.g+3],h|=(u&127)<<21,128>u?(t.g+=4,_t(t),h):(u=r[t.g+4],h|=(u&15)<<28,128>u?(t.g+=5,_t(t),h>>>0):(t.g+=5,128<=r[t.g++]&&128<=r[t.g++]&&128<=r[t.g++]&&128<=r[t.g++]&&128<=r[t.g++]?(t.j=!0,hn(),h):(_t(t),h))))))}function be(t){var r=t.h[t.g],u=t.h[t.g+1],h=t.h[t.g+2],Z=t.h[t.g+3];return t.g+=4,_t(t),(r<<0|u<<8|h<<16|Z<<24)>>>0}ve.prototype.m=function(){var t=be(this),r=2*(t>>31)+1,u=t>>>23&255;return t&=8388607,u==255?t?NaN:1/0*r:u==0?r*Math.pow(2,-149)*t:r*Math.pow(2,u-150)*(t+Math.pow(2,23))};var _e=[];function Ge(){this.g=new Uint8Array(64),this.h=0}function Yt(t,r){if(!(t.h+1<t.g.length)){var u=t.g;t.g=new Uint8Array(Math.ceil(1+2*t.g.length)),t.g.set(u)}t.g[t.h++]=r}Ge.prototype.length=function(){return this.h},Ge.prototype.end=function(){var t=this.g,r=this.h;return this.h=0,je(t,0,r)};function xe(t,r){for(;127<r;)Yt(t,r&127|128),r>>>=7;Yt(t,r)}function Ue(t){var r={},u=r.O===void 0?!1:r.O;this.m={v:r.v===void 0?!1:r.v},this.O=u,r=this.m,_e.length?(u=_e.pop(),r&&(u.v=r.v),t&>(u,t),t=u):t=new ve(t,r),this.g=t,this.l=this.g.g,this.h=this.i=-1,this.j=!1}Ue.prototype.reset=function(){this.g.reset(),this.h=this.i=-1};function Xe(t){var r=t.g;if((r=r.g==r.i)||(r=t.j)||(r=t.g,r=r.j||0>r.g||r.g>r.i),r)return!1;t.l=t.g.g;var u=te(t.g);return r=u>>>3,u&=7,0<=u&&5>=u?(t.i=r,t.h=u,!0):(t.j=!0,an(u,t.l),!1)}function Xn(t){switch(t.h){case 0:if(t.h!=0)Xn(t);else t:{t=t.g;for(var r=t.g,u=0;10>u;u++){if((t.h[r]&128)===0){t.g=r+1,_t(t);break t}r++}t.j=!0,hn()}break;case 1:t=t.g,t.g+=8,_t(t);break;case 2:t.h!=2?Xn(t):(r=te(t.g),t=t.g,t.g+=r,_t(t));break;case 5:t=t.g,t.g+=4,_t(t);break;case 3:r=t.i;do{if(!Xe(t)){t.j=!0,ye(Error("Unmatched start-group tag: stream EOF"));break}if(t.h==4){t.i!=r&&(t.j=!0,ye(Error("Unmatched end-group tag")));break}Xn(t)}while(1);break;default:t.j=!0,an(t.h,t.l)}}function rn(t,r,u){var h=t.g.i,Z=te(t.g),R=t.g.g+Z;if(t.g.i=R,u(r,t),u=R-t.g.g,u!==0)throw Error("Message parsing ended unexpectedly. Expected to read "+(Z+" bytes, instead read "+(Z-u)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return t.g.g=R,t.g.i=h,r}var $e=[];function Zn(){this.h=[],this.i=0,this.g=new Ge}function Mt(t,r){r.length!==0&&(t.h.push(r),t.i+=r.length)}function Re(t,r,u){xe(t.g,8*r+2),xe(t.g,u.length),Mt(t,t.g.end()),Mt(t,u)}var Qt=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function Et(t){return Object.isFrozen(t)||(Qt?t[Qt]|=1:t.g!==void 0?t.g|=1:Object.defineProperties(t,{g:{value:1,configurable:!0,writable:!0,enumerable:!1}})),t}function qe(t){return t!==null&&typeof t=="object"&&t.constructor===Object}function xt(t){switch(typeof t){case"number":return isFinite(t)?t:String(t);case"object":if(pe&&t!=null&&t instanceof Uint8Array)return dn(t);if(t instanceof oe){if(t.g==null)t="";else{var r=t.g;r=r==null||typeof r=="string"?r:pe&&r instanceof Uint8Array?dn(r):null,t=t.g=r}return t}}return t}function Gt(t,r){if(t!=null)return Array.isArray(t)||qe(t)?un(t,r):r(t)}function un(t,r){if(Array.isArray(t)){for(var u=Array(t.length),h=0;h<t.length;h++)u[h]=Gt(t[h],r);if(r=Array.isArray(t)){var Z;Qt?Z=t[Qt]:Z=t.g,r=(Z==null?0:Z)&1}return r&&Et(u),u}Z={};for(u in t)Z[u]=Gt(t[u],r);return Z}function Bt(t){return t=xt(t),Array.isArray(t)?un(t,Bt):t}var at;function it(t,r,u){var h=at;at=null,t||(t=h),h=this.constructor.ha,t||(t=h?[h]:[]),this.i=(h?0:-1)-(this.constructor.fa||0),this.l=this.g=null,this.u=t;t:{if(h=this.u.length,t=h-1,h&&(h=this.u[t],qe(h))){this.j=t-this.i,this.h=h;break t}r!==void 0&&-1<r?(this.j=Math.max(r,t+1-this.i),this.h=null):this.j=Number.MAX_VALUE}if(u)for(r=0;r<u.length;r++)t=u[r],t<this.j?(t+=this.i,(h=this.u[t])?Array.isArray(h)&&Et(h):this.u[t]=ee):(Ie(this),(h=this.h[t])?Array.isArray(h)&&Et(h):this.h[t]=ee)}var ee=Object.freeze(Et([]));function Ie(t){var r=t.j+t.i;t.u[r]||(t.h=t.u[r]={})}function It(t,r,u){return r===-1?null:(u===void 0?0:u)||r>=t.j?t.h?t.h[r]:void 0:t.u[r+t.i]}function ne(t,r,u){u=u===void 0?!1:u;var h=It(t,r,u);return h==null&&(h=ee),h===ee&&(h=Et(h.slice()),Vt(t,r,h,u)),h}function we(t,r){var u=ne(t,r);if(t.l||(t.l={}),!t.l[r]){for(var h=0;h<u.length;h++)u[h]=+u[h];t.l[r]=!0}return u}function Kt(t,r,u){return t=It(t,r),t=t==null?t:+t,t==null?u===void 0?0:u:t}function Vt(t,r,u,h){(h===void 0?0:h)||r>=t.j?(Ie(t),t.h[r]=u):t.u[r+t.i]=u}function Ke(t,r,u,h){u!==h?Vt(t,r,u):Vt(t,r,void 0,!1)}function ke(t,r,u){if(u===-1)return null;t.g||(t.g={});var h=t.g[u];if(h)return h;var Z=It(t,u,!1);return Z==null?h:(r=new r(Z),t.g[u]=r)}function Ee(t,r,u){t.g||(t.g={});var h=t.g[u];if(!h){var Z=ne(t,u,!1);h=[];for(var R=0;R<Z.length;R++)h[R]=new r(Z[R]);t.g[u]=h}return h}function Tt(t,r,u,h,Z){var R=Ee(t,h,r);u=u||new h,t=ne(t,r),Z!=null?(R.splice(Z,0,u),t.splice(Z,0,u.u)):(R.push(u),t.push(u.u))}it.prototype.toJSON=function(){return un(this.u,Bt)},it.prototype.toString=function(){return this.u.toString()};function Le(t,r){return t=It(t,r),t==null?0:t}function mn(t,r){return t=It(t,r),t==null?"":t}function Ae(t,r){if(t=t.m){Mt(r,r.g.end());for(var u=0;u<t.length;u++)Mt(r,t[u])}}var Me=Symbol();function Qe(t,r,u){return t[Me]||(t[Me]=function(h,Z){return r(h,Z,u)})}function tn(t){var r=t[Me];if(!r){var u=t[Se]||(t[Se]=t());r=function(h,Z){return ge(h,Z,u)},t[Me]=r}return r}function De(t){var r=t.da;if(r)return tn(r);if(r=t.ia){var u=t.Y;return delete t.Y,Qe(t.W.g,r,u)}}function Wn(t){var r=De(t),u=t.W,h=t.ea;return r?function(Z,R){return h(Z,R,u,r)}:function(Z,R){return h(Z,R,u)}}function Yn(t){var r=t[0];switch(t.length){case 2:var u=t[1];return function(Q,q,$){return r(Q,q,$,u)};case 3:var h=t[1],Z=tn(t[2]);return function(Q,q,$){return r(Q,q,$,h,Z)};case 4:var R=t[1],V=t[3],I=tn(t[2]);return function(Q,q,$){return r(Q,q,$,R,I,V)};case 5:var Y=t[1],H=Qe(Y,t[3],t[4]);return function(Q,q,$){return r(Q,q,$,Y,H)};case 6:var C=t[1],z=t[5],M=Qe(C,t[3],t[4]);return function(Q,q,$){return r(Q,q,$,C,M,z)};default:throw Error("Unsupported number of parameters, expected [2-6], got "+t.length)}}var Se=Symbol();function ge(t,r,u){for(;Xe(r)&&r.h!=4;){var h=r.i,Z=u[h];if(Z)Array.isArray(Z)&&(Z=u[h]=Yn(Z));else{var R=u[0];R&&(R=R[h])&&(Z=u[h]=Wn(R))}Z&&Z(r,t,h)||(Z=r,h=t,R=Z.l,Xn(Z),Z.O||(Z=je(Z.g.h,R,Z.g.g),(R=h.m)?R.push(Z):h.m=[Z]))}return t}function en(t,r){var u=new Zn;if(r(t,u),t=u.i+u.g.length(),t===0)u=new Uint8Array(0);else{t=new Uint8Array(t);for(var h=u.h,Z=h.length,R=r=0;R<Z;R++){var V=h[R];V.length!==0&&(t.set(V,r),r+=V.length)}h=u.g,Z=h.h,Z!==0&&(t.set(h.g.subarray(0,Z),r),h.h=0),u.h=[t],u=t}return u}function Rn(t,r,u){if($e.length){var h=$e.pop();t&&(gt(h.g,t),h.i=-1,h.h=-1),t=h}else t=new Ue(t);try{var Z=new r;return ge(Z,t,u[Se]||(u[Se]=u()))}finally{r=t.g,r.h=null,r.l=0,r.i=0,r.g=0,r.j=!1,r.v=!1,t.i=-1,t.h=-1,t.j=!1,100>$e.length&&$e.push(t)}}function We(t,r,u){if(r=It(r,u),r!=null){xe(t.g,8*u+5),t=t.g;var h=r;h=(u=0>h?1:0)?-h:h,h===0?0<1/h?Ve=Pt=0:(Pt=0,Ve=2147483648):isNaN(h)?(Pt=0,Ve=2147483647):34028234663852886e22<h?(Pt=0,Ve=(u<<31|2139095040)>>>0):11754943508222875e-54>h?(h=Math.round(h/Math.pow(2,-149)),Pt=0,Ve=(u<<31|h)>>>0):(r=Math.floor(Math.log(h)/Math.LN2),h*=Math.pow(2,-r),h=Math.round(8388608*h),16777216<=h&&++r,Pt=0,Ve=(u<<31|r+127<<23|h&8388607)>>>0),u=Ve,Yt(t,u>>>0&255),Yt(t,u>>>8&255),Yt(t,u>>>16&255),Yt(t,u>>>24&255)}}function Vn(t,r,u){if(t.h!==1)return!1;var h=t.g;t=be(h);var Z=be(h);h=2*(Z>>31)+1;var R=Z>>>20&2047;return t=4294967296*(Z&1048575)+t,Ke(r,u,R==2047?t?NaN:1/0*h:R==0?h*Math.pow(2,-1074)*t:h*Math.pow(2,R-1075)*(t+4503599627370496),0),!0}function Te(t,r,u){return t.h!==5?!1:(Vt(r,u,t.g.m()),!0)}function on(t,r,u){if(t.h!==5&&t.h!==2)return!1;if(r=ne(r,u),t.h==2){u=ve.prototype.m;var h=te(t.g);for(h=t.g.g+h;t.g.g<h;)r.push(u.call(t.g))}else r.push(t.g.m());return!0}function gn(t,r,u){return t.h!==5?!1:(t=t.g.m(),Ke(r,u,t,0),!0)}function Fn(t,r,u){return t.h!==0?!1:(Vt(r,u,me(t.g)),!0)}function Ne(t,r,u){return t.h!==0?!1:(Vt(r,u,te(t.g)),!0)}function wn(t,r,u){return t.h!==0?!1:(t=te(t.g),Ke(r,u,t,0),!0)}function Kn(t,r,u){return t.h!==0?!1:(t=!!te(t.g),Ke(r,u,t,!1),!0)}function kn(t,r,u){if(t.h!==2)return!1;var h=te(t.g);t=t.g;var Z=t.g;t.g+=h,_t(t),t=t.h;var R;if(Ln)(R=vn)||(R=vn=new TextDecoder("utf-8",{fatal:!1})),R=R.decode(t.subarray(Z,Z+h));else{h=Z+h;for(var V=[],I=null,Y,H,C;Z<h;)Y=t[Z++],128>Y?V.push(Y):224>Y?Z>=h?V.push(65533):(H=t[Z++],194>Y||(H&192)!==128?(Z--,V.push(65533)):V.push((Y&31)<<6|H&63)):240>Y?Z>=h-1?V.push(65533):(H=t[Z++],(H&192)!==128||Y===224&&160>H||Y===237&&160<=H||((R=t[Z++])&192)!==128?(Z--,V.push(65533)):V.push((Y&15)<<12|(H&63)<<6|R&63)):244>=Y?Z>=h-2?V.push(65533):(H=t[Z++],(H&192)!==128||(Y<<28)+(H-144)>>30!==0||((R=t[Z++])&192)!==128||((C=t[Z++])&192)!==128?(Z--,V.push(65533)):(Y=(Y&7)<<18|(H&63)<<12|(R&63)<<6|C&63,Y-=65536,V.push((Y>>10&1023)+55296,(Y&1023)+56320))):V.push(65533),8192<=V.length&&(I=In(I,V),V.length=0);R=In(I,V)}return Vt(r,u,R),!0}function sn(t,r,u,h,Z){return t.h!==2?!1:(t=rn(t,new h,Z),r.g||(r.g={}),h=t&&t.u,r.g[u]=t,Vt(r,u,h,!1),!0)}function Gn(t,r,u,h,Z){return t.h!==2?!1:(t=rn(t,new h,Z),Tt(r,u,t,h,void 0),!0)}function a(t,r,u){return t.h!==0?!1:(Vt(r,u,me(t.g)),!0)}function y(t){it.call(this,t)}yt(y,it);function v(){return{1:Ne,2:Te,3:kn,4:kn}}function F(t,r){var u=It(t,1);if(u!=null&&u!=null){xe(r.g,8);var h=r.g;if(0<=u)xe(h,u);else{for(var Z=0;9>Z;Z++)Yt(h,u&127|128),u>>=7;Yt(h,1)}}We(r,t,2),h=It(t,3),h!=null&&Re(r,3,Nn(h)),h=It(t,4),h!=null&&Re(r,4,Nn(h)),Ae(t,r)}function E(t){it.call(this,t,-1,k)}yt(E,it),E.prototype.addClassification=function(t,r){return Tt(this,1,t,y,r),this};function B(){return{1:[Gn,y,v]}}var k=[1];function O(t){it.call(this,t)}yt(O,it);function D(){return{1:Te,2:Te,3:Te,4:Te,5:Te}}function rt(t,r){We(r,t,1),We(r,t,2),We(r,t,3),We(r,t,4),We(r,t,5),Ae(t,r)}function dt(t){it.call(this,t,-1,Xt)}yt(dt,it);function ct(){return{1:[Gn,O,D]}}var Xt=[1];function lt(t){it.call(this,t)}yt(lt,it);function st(){return{1:Te,2:Te,3:Te,4:Te,5:Te,6:Fn}}function ht(t,r){We(r,t,1),We(r,t,2),We(r,t,3),We(r,t,4),We(r,t,5);var u=It(t,6);if(u!=null&&u!=null){xe(r.g,48);var h=r.g,Z=u;u=0>Z,Z=Math.abs(Z);var R=Z>>>0;for(Z=Math.floor((Z-R)/4294967296),Z>>>=0,u&&(Z=~Z>>>0,R=(~R>>>0)+1,4294967295<R&&(R=0,Z++,4294967295<Z&&(Z=0))),Ve=R,Pt=Z,u=Ve,R=Pt;0<R||127<u;)Yt(h,u&127|128),u=(u>>>7|R<<25)>>>0,R>>>=7;Yt(h,u)}Ae(t,r)}function bt(t){it.call(this,t,-1,Ze)}yt(bt,it);function Jt(){return{1:a,2:a,3:on,4:[sn,Ct,At],5:Ne,6:Ne,7:on,8:on,9:on}}function Ct(t){it.call(this,t)}yt(Ct,it);function At(){return{1:Te,2:Te,3:Te}}var Ze=[3,7,8,9];function l(t){it.call(this,t)}yt(l,it);function f(){return{1:gn,2:gn,3:gn}}function m(t){it.call(this,t)}yt(m,it);function w(){return{1:gn,2:gn,3:gn}}function L(t){it.call(this,t)}yt(L,it);function j(){return{1:wn,2:[sn,m,w],3:[sn,l,f],4:Kn}}function N(t){it.call(this,t,-1,_)}yt(N,it);function A(){return{1:wn,2:[Gn,L,j],3:gn,4:on,5:on,6:on}}var _=[2,4,5,6];function nt(t){it.call(this,t,-1,zt)}yt(nt,it);function ft(){return{1:wn,2:[Gn,N,A],3:[sn,bt,Jt],4:Vn,5:on,6:on}}var zt=[2,5,6];function Lt(t,r,u){if(u=t.createShader(u===0?t.VERTEX_SHADER:t.FRAGMENT_SHADER),t.shaderSource(u,r),t.compileShader(u),!t.getShaderParameter(u,t.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
89
|
+
`+m.getProgramInfoLog(P));L=c.m=P,m.useProgram(L),H=m.getUniformLocation(L,"sampler0"),c.j={I:m.getAttribLocation(L,"aVertex"),H:m.getAttribLocation(L,"aTex"),da:H},c.s=m.createBuffer(),m.bindBuffer(m.ARRAY_BUFFER,c.s),m.enableVertexAttribArray(c.j.I),m.vertexAttribPointer(c.j.I,2,m.FLOAT,!1,0,0),m.bufferData(m.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),m.STATIC_DRAW),m.bindBuffer(m.ARRAY_BUFFER,null),c.o=m.createBuffer(),m.bindBuffer(m.ARRAY_BUFFER,c.o),m.enableVertexAttribArray(c.j.H),m.vertexAttribPointer(c.j.H,2,m.FLOAT,!1,0,0),m.bufferData(m.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),m.STATIC_DRAW),m.bindBuffer(m.ARRAY_BUFFER,null),m.uniform1i(H,0)}L=c.j,m.useProgram(c.m),m.canvas.width=p.width,m.canvas.height=p.height,m.viewport(0,0,p.width,p.height),m.activeTexture(m.TEXTURE0),c.h.bindTexture2d(p.glName),m.enableVertexAttribArray(L.I),m.bindBuffer(m.ARRAY_BUFFER,c.s),m.vertexAttribPointer(L.I,2,m.FLOAT,!1,0,0),m.enableVertexAttribArray(L.H),m.bindBuffer(m.ARRAY_BUFFER,c.o),m.vertexAttribPointer(L.H,2,m.FLOAT,!1,0,0),m.bindFramebuffer(m.DRAW_FRAMEBUFFER?m.DRAW_FRAMEBUFFER:m.FRAMEBUFFER,null),m.clearColor(0,0,0,0),m.clear(m.COLOR_BUFFER_BIT),m.colorMask(!0,!0,!0,!0),m.drawArrays(m.TRIANGLE_FAN,0,4),m.disableVertexAttribArray(L.I),m.disableVertexAttribArray(L.H),m.bindBuffer(m.ARRAY_BUFFER,null),c.h.bindTexture2d(0)}function Yn(c){this.g=c}var Un=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function vn(c,p){return p+c}function Gn(c,p){window[c]=p}function f(c){var p=document.createElement("script");return p.setAttribute("src",c),p.setAttribute("crossorigin","anonymous"),new Promise(function(m){p.addEventListener("load",function(){m()},!1),p.addEventListener("error",function(){m()},!1),document.body.appendChild(p)})}function b(){return Jt(this,function c(){return te(c,function(p){switch(p.g){case 1:return p.m=2,$(p,WebAssembly.instantiate(Un),4);case 4:p.g=3,p.m=0;break;case 2:return p.m=0,p.j=null,p.return(!1);case 3:return p.return(!0)}})})}function Z(c){if(this.g=c,this.listeners={},this.j={},this.F={},this.m={},this.s={},this.G=this.o=this.R=!0,this.C=Promise.resolve(),this.P="",this.B={},this.locateFile=c&&c.locateFile||vn,typeof window=="object")var p=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")p=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.S=p,c.options){p=C(Object.keys(c.options));for(var m=p.next();!m.done;m=p.next()){m=m.value;var L=c.options[m].default;L!==void 0&&(this.j[m]=typeof L=="function"?L():L)}}}V=Z.prototype,V.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function Y(c,p){return c.g.files===void 0?[]:typeof c.g.files=="function"?c.g.files(p):c.g.files}function _(c){return Jt(c,function p(){var m=this,L,H,P,j,D,rt,r,y,G,S,N;return te(p,function(J){switch(J.g){case 1:return L=m,m.R?(H=Y(m,m.j),$(J,b(),2)):J.return();case 2:if(P=J.h,typeof window=="object")return Gn("createMediapipeSolutionsWasm",{locateFile:m.locateFile}),Gn("createMediapipeSolutionsPackedAssets",{locateFile:m.locateFile}),rt=H.filter(function(k){return k.data!==void 0}),r=H.filter(function(k){return k.data===void 0}),y=Promise.all(rt.map(function(k){var q=tt(L,k.url);if(k.path!==void 0){var z=k.path;q=q.then(function(lt){return L.overrideFile(z,lt),Promise.resolve(lt)})}return q})),G=Promise.all(r.map(function(k){return k.simd===void 0||k.simd&&P||!k.simd&&!P?f(L.locateFile(k.url,L.S)):Promise.resolve()})).then(function(){return Jt(L,function k(){var q,z,lt=this;return te(k,function(dt){if(dt.g==1)return q=window.createMediapipeSolutionsWasm,z=window.createMediapipeSolutionsPackedAssets,$(dt,q(z),2);lt.h=dt.h,dt.g=0})})}),S=function(){return Jt(L,function k(){var q=this;return te(k,function(z){return q.g.graph&&q.g.graph.url?z=$(z,tt(q,q.g.graph.url),0):(z.g=0,z=void 0),z})})}(),$(J,Promise.all([G,y,S]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return j=H.filter(function(k){return k.simd===void 0||k.simd&&P||!k.simd&&!P}).map(function(k){return L.locateFile(k.url,L.S)}),importScripts.apply(null,pt(j)),$(J,createMediapipeSolutionsWasm(Module),6);case 6:m.h=J.h,m.l=new OffscreenCanvas(1,1),m.h.canvas=m.l,D=m.h.GL.createContext(m.l,{antialias:!1,alpha:!1,ba:typeof WebGL2RenderingContext!="undefined"?2:1}),m.h.GL.makeContextCurrent(D),J.g=4;break;case 7:if(m.l=document.createElement("canvas"),N=m.l.getContext("webgl2",{}),!N&&(N=m.l.getContext("webgl",{}),!N))return alert("Failed to create WebGL canvas context when passing video frame."),J.return();m.D=N,m.h.canvas=m.l,m.h.createContext(m.l,!0,!0,{});case 4:m.i=new m.h.SolutionWasm,m.R=!1,J.g=0}})})}function et(c){return Jt(c,function p(){var m=this,L,H,P,j,D,rt,r,y;return te(p,function(G){if(G.g==1){if(m.g.graph&&m.g.graph.url&&m.P===m.g.graph.url)return G.return();if(m.o=!0,!m.g.graph||!m.g.graph.url){G.g=2;return}return m.P=m.g.graph.url,$(G,tt(m,m.g.graph.url),3)}for(G.g!=2&&(L=G.h,m.i.loadGraph(L)),H=C(Object.keys(m.B)),P=H.next();!P.done;P=H.next())j=P.value,m.i.overrideFile(j,m.B[j]);if(m.B={},m.g.listeners)for(D=C(m.g.listeners),rt=D.next();!rt.done;rt=D.next())r=rt.value,Ft(m,r);y=m.j,m.j={},m.setOptions(y),G.g=0})})}V.reset=function(){return Jt(this,function c(){var p=this;return te(c,function(m){p.i&&(p.i.reset(),p.m={},p.s={}),m.g=0})})},V.setOptions=function(c,p){var m=this;if(p=p||this.g.options){for(var L=[],H=[],P={},j=C(Object.keys(c)),D=j.next();!D.done;P={K:P.K,L:P.L},D=j.next()){var rt=D.value;rt in this.j&&this.j[rt]===c[rt]||(this.j[rt]=c[rt],D=p[rt],D!==void 0&&(D.onChange&&(P.K=D.onChange,P.L=c[rt],L.push(function(r){return function(){return Jt(m,function y(){var G,S=this;return te(y,function(N){if(N.g==1)return $(N,r.K(r.L),2);G=N.h,G===!0&&(S.o=!0),N.g=0})})}}(P))),D.graphOptionXref&&(rt={valueNumber:D.type===1?c[rt]:0,valueBoolean:D.type===0?c[rt]:!1,valueString:D.type===2?c[rt]:""},D=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),D.graphOptionXref),rt),H.push(D))))}(L.length!==0||H.length!==0)&&(this.o=!0,this.A=(this.A===void 0?[]:this.A).concat(H),this.u=(this.u===void 0?[]:this.u).concat(L))}};function K(c){return Jt(c,function p(){var m=this,L,H,P,j,D,rt,r;return te(p,function(y){switch(y.g){case 1:if(!m.o)return y.return();if(!m.u){y.g=2;break}L=C(m.u),H=L.next();case 3:if(H.done){y.g=5;break}return P=H.value,$(y,P(),4);case 4:H=L.next(),y.g=3;break;case 5:m.u=void 0;case 2:if(m.A){for(j=new m.h.GraphOptionChangeRequestList,D=C(m.A),rt=D.next();!rt.done;rt=D.next())r=rt.value,j.push_back(r);m.i.changeOptions(j),j.delete(),m.A=void 0}m.o=!1,y.g=0}})})}V.initialize=function(){return Jt(this,function c(){var p=this;return te(c,function(m){return m.g==1?$(m,_(p),2):m.g!=3?$(m,et(p),3):$(m,K(p),0)})})};function tt(c,p){return Jt(c,function m(){var L=this,H,P;return te(m,function(j){return p in L.F?j.return(L.F[p]):(H=L.locateFile(p,""),P=fetch(H).then(function(D){return D.arrayBuffer()}),L.F[p]=P,j.return(P))})})}V.overrideFile=function(c,p){this.i?this.i.overrideFile(c,p):this.B[c]=p},V.clearOverriddenFiles=function(){this.B={},this.i&&this.i.clearOverriddenFiles()},V.send=function(c,p){return Jt(this,function m(){var L=this,H,P,j,D,rt,r,y,G,S;return te(m,function(N){switch(N.g){case 1:return L.g.inputs?(H=1e3*(p==null?performance.now():p),$(N,L.C,2)):N.return();case 2:return $(N,L.initialize(),3);case 3:for(P=new L.h.PacketDataList,j=C(Object.keys(c)),D=j.next();!D.done;D=j.next())if(rt=D.value,r=L.g.inputs[rt]){t:{var J=L,k=c[rt];switch(r.type){case"video":var q=J.m[r.stream];if(q||(q=new Ln(J.h,J.D),J.m[r.stream]=q),J=q,J.l===0&&(J.l=J.h.createTexture()),typeof HTMLVideoElement!="undefined"&&k instanceof HTMLVideoElement){var z=k.videoWidth;q=k.videoHeight}else typeof HTMLImageElement!="undefined"&&k instanceof HTMLImageElement?(z=k.naturalWidth,q=k.naturalHeight):(z=k.width,q=k.height);q={glName:J.l,width:z,height:q},z=J.g,z.canvas.width=q.width,z.canvas.height=q.height,z.activeTexture(z.TEXTURE0),J.h.bindTexture2d(J.l),z.texImage2D(z.TEXTURE_2D,0,z.RGBA,z.RGBA,z.UNSIGNED_BYTE,k),J.h.bindTexture2d(0),J=q;break t;case"detections":for(q=J.m[r.stream],q||(q=new Yn(J.h),J.m[r.stream]=q),J=q,J.data||(J.data=new J.g.DetectionListData),J.data.reset(k.length),q=0;q<k.length;++q){z=k[q];var lt=J.data,dt=lt.setBoundingBox,xt=q,yt=z.T,it=new Ue;bt(it,1,yt.Z),bt(it,2,yt.$),bt(it,3,yt.height),bt(it,4,yt.width),bt(it,5,yt.rotation),bt(it,6,yt.X);var gt=yt=new se;Je(gt,1,Ot(it,1)),Je(gt,2,Ot(it,2)),Je(gt,3,Ot(it,3)),Je(gt,4,Ot(it,4)),Je(gt,5,Ot(it,5));var vt=Ot(it,6);if(vt!=null&&vt!=null){Ct(gt.g,48);var Gt=gt.g,Xt=vt;vt=0>Xt,Xt=Math.abs(Xt);var i=Xt>>>0;for(Xt=Math.floor((Xt-i)/4294967296),Xt>>>=0,vt&&(Xt=~Xt>>>0,i=(~i>>>0)+1,4294967295<i&&(i=0,Xt++,4294967295<Xt&&(Xt=0))),ce=i,ve=Xt,vt=ce,i=ve;0<i||127<vt;)Gt.push(vt&127|128),vt=(vt>>>7|i<<25)>>>0,i>>>=7;Gt.push(vt)}if(kt(it,gt),yt=Ie(yt),dt.call(lt,xt,yt),z.O)for(lt=0;lt<z.O.length;++lt)it=z.O[lt],gt=!!it.visibility,dt=J.data,xt=dt.addNormalizedLandmark,yt=q,it=Object.assign(Object.assign({},it),{visibility:gt?it.visibility:0}),gt=new Me,bt(gt,1,it.x),bt(gt,2,it.y),bt(gt,3,it.z),it.visibility&&bt(gt,4,it.visibility),Gt=it=new se,Je(Gt,1,Ot(gt,1)),Je(Gt,2,Ot(gt,2)),Je(Gt,3,Ot(gt,3)),Je(Gt,4,Ot(gt,4)),Je(Gt,5,Ot(gt,5)),kt(gt,Gt),it=Ie(it),xt.call(dt,yt,it);if(z.M)for(lt=0;lt<z.M.length;++lt){if(dt=J.data,xt=dt.addClassification,yt=q,it=z.M[lt],gt=new Ne,bt(gt,2,it.Y),it.index&&bt(gt,1,it.index),it.label&&bt(gt,3,it.label),it.displayName&&bt(gt,4,it.displayName),Gt=it=new se,i=Ot(gt,1),i!=null&&i!=null)if(Ct(Gt.g,8),vt=Gt.g,0<=i)Ct(vt,i);else{for(Xt=0;9>Xt;Xt++)vt.push(i&127|128),i>>=7;vt.push(1)}Je(Gt,2,Ot(gt,2)),vt=Ot(gt,3),vt!=null&&(vt=bn(vt),Ct(Gt.g,26),Ct(Gt.g,vt.length),Yt(Gt,Gt.g.end()),Yt(Gt,vt)),vt=Ot(gt,4),vt!=null&&(vt=bn(vt),Ct(Gt.g,34),Ct(Gt.g,vt.length),Yt(Gt,Gt.g.end()),Yt(Gt,vt)),kt(gt,Gt),it=Ie(it),xt.call(dt,yt,it)}}J=J.data;break t;default:J={}}}switch(y=J,G=r.stream,r.type){case"video":P.pushTexture2d(Object.assign(Object.assign({},y),{stream:G,timestamp:H}));break;case"detections":S=y,S.stream=G,S.timestamp=H,P.pushDetectionList(S);break;default:throw Error("Unknown input config type: '"+r.type+"'")}}return L.i.send(P),$(N,L.C,4);case 4:P.delete(),N.g=0}})})};function st(c,p,m){return Jt(c,function L(){var H,P,j,D,rt,r,y=this,G,S,N,J,k,q,z,lt;return te(L,function(dt){switch(dt.g){case 1:if(!m)return dt.return(p);for(H={},P=0,j=C(Object.keys(m)),D=j.next();!D.done;D=j.next())rt=D.value,r=m[rt],typeof r!="string"&&r.type==="texture"&&p[r.stream]!==void 0&&++P;1<P&&(y.G=!1),G=C(Object.keys(m)),D=G.next();case 2:if(D.done){dt.g=4;break}if(S=D.value,N=m[S],typeof N=="string")return z=H,lt=S,$(dt,mt(y,S,p[N]),14);if(J=p[N.stream],N.type==="detection_list"){if(J){for(var xt=J.getRectList(),yt=J.getLandmarksList(),it=J.getClassificationsList(),gt=[],vt=0;vt<xt.size();++vt){var Gt=xt.get(vt);t:{var Xt=new Ue;for(Gt=new re(Gt);Ve(Gt);)switch(Gt.i){case 13:var i=At(Gt);bt(Xt,1,i);break;case 21:i=At(Gt),bt(Xt,2,i);break;case 29:i=At(Gt),bt(Xt,3,i);break;case 37:i=At(Gt),bt(Xt,4,i);break;case 45:i=At(Gt),bt(Xt,5,i);break;case 48:i=ae(Gt.g),bt(Xt,6,i);break;default:if(!Rt(Xt,Gt))break t}}Xt={Z:Vt(Xt,1),$:Vt(Xt,2),height:Vt(Xt,3),width:Vt(Xt,4),rotation:Vt(Xt,5,0),X:$t(Xt,6,0)},Gt=Fe(Ye(yt.get(vt)),Me).map(mn);var g=it.get(vt);t:for(i=new De,g=new re(g);Ve(g);)switch(g.i){case 10:i.addClassification(de(g,new Ne,an));break;default:if(!Rt(i,g))break t}Xt={T:Xt,O:Gt,M:on(i)},gt.push(Xt)}xt=gt}else xt=[];H[S]=xt,dt.g=7;break}if(N.type==="proto_list"){if(J){for(xt=Array(J.size()),yt=0;yt<J.size();yt++)xt[yt]=J.get(yt);J.delete()}else xt=[];H[S]=xt,dt.g=7;break}if(J===void 0){dt.g=3;break}if(N.type==="float_list"){H[S]=J,dt.g=7;break}if(N.type==="proto"){H[S]=J,dt.g=7;break}if(N.type!=="texture")throw Error("Unknown output config type: '"+N.type+"'");return k=y.s[S],k||(k=new Ln(y.h,y.D),y.s[S]=k),$(dt,Ke(k,J,y.G),13);case 13:q=dt.h,H[S]=q;case 7:N.transform&&H[S]&&(H[S]=N.transform(H[S])),dt.g=3;break;case 14:z[lt]=dt.h;case 3:D=G.next(),dt.g=2;break;case 4:return dt.return(H)}})})}function mt(c,p,m){return Jt(c,function L(){var H=this,P;return te(L,function(j){return typeof m=="number"||m instanceof Uint8Array||m instanceof H.h.Uint8BlobList?j.return(m):m instanceof H.h.Texture2dDataOut?(P=H.s[p],P||(P=new Ln(H.h,H.D),H.s[p]=P),j.return(Ke(P,m,H.G))):j.return(void 0)})})}function Ft(c,p){for(var m=p.name||"$",L=[].concat(pt(p.wants)),H=new c.h.StringList,P=C(p.wants),j=P.next();!j.done;j=P.next())H.push_back(j.value);P=c.h.PacketListener.implement({onResults:function(D){for(var rt={},r=0;r<p.wants.length;++r)rt[L[r]]=D.get(r);var y=c.listeners[m];y&&(c.C=st(c,rt,p.outs).then(function(G){G=y(G);for(var S=0;S<p.wants.length;++S){var N=rt[L[S]];typeof N=="object"&&N.hasOwnProperty&&N.hasOwnProperty("delete")&&N.delete()}G&&(c.C=G)}))}}),c.i.attachMultiListener(H,P),H.delete()}V.onResults=function(c,p){this.listeners[p||"$"]=c},ye("Solution",Z),ye("OptionType",{BOOL:0,NUMBER:1,aa:2,0:"BOOL",1:"NUMBER",2:"STRING"});function wt(c){c=Sn(c);var p=c.getMesh();if(!p)return c;var m=new Float32Array(p.getVertexBufferList());p.getVertexBufferList=function(){return m};var L=new Uint32Array(p.getIndexBufferList());return p.getIndexBufferList=function(){return L},c}var Ht={files:[{url:"face_mesh_solution_packed_assets_loader.js"},{simd:!0,url:"face_mesh_solution_simd_wasm_bin.js"},{simd:!1,url:"face_mesh_solution_wasm_bin.js"}],graph:{url:"face_mesh.binarypb"},listeners:[{wants:["multi_face_geometry","image_transformed","multi_face_landmarks"],outs:{image:"image_transformed",multiFaceGeometry:{type:"proto_list",stream:"multi_face_geometry",transform:function(c){return c.map(wt)}},multiFaceLandmarks:{type:"proto_list",stream:"multi_face_landmarks",transform:function(c){return c.map(function(p){return Fe(Ye(p),Me).map(mn)})}}}}],inputs:{image:{type:"video",stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},enableFaceGeometry:{type:0,graphOptionXref:{calculatorName:"EnableFaceGeometryConstant",calculatorType:"ConstantSidePacketCalculator",fieldName:"bool_value"}},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},maxNumFaces:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorNumFaces",fieldName:"int_value"}},refineLandmarks:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorRefineLandmarks",fieldName:"bool_value"}},minDetectionConfidence:{type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"facelandmarkfrontgpu__facedetectionshortrangegpu__facedetectionshortrangecommon__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"facelandmarkfrontgpu__facelandmarkgpu__ThresholdingCalculator",fieldName:"threshold"}},cameraNear:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"near"}},cameraFar:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"far"}},cameraVerticalFovDegrees:{type:1,graphOptionXref:{calculatorType:"FaceGeometryEnvGeneratorCalculator",fieldName:"vertical_fov_degrees"}}}},Wt=[[61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]],Zt=[[263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]],Tt=[[276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]],Et=[[33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]],Bt=[[46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]],Dt=[[10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]],qt=[].concat(pt(Wt),pt(Zt),pt(Tt),pt(Et),pt(Bt),pt(Dt));function Ze(c){c=c||{},c=Object.assign(Object.assign({},Ht),c),this.g=new Z(c)}V=Ze.prototype,V.close=function(){return this.g.close(),Promise.resolve()},V.onResults=function(c){this.g.onResults(c)},V.initialize=function(){return Jt(this,function c(){var p=this;return te(c,function(m){return $(m,p.g.initialize(),0)})})},V.reset=function(){this.g.reset()},V.send=function(c){return Jt(this,function p(){var m=this;return te(p,function(L){return $(L,m.g.send(c),0)})})},V.setOptions=function(c){this.g.setOptions(c)},ye("FACE_GEOMETRY",{Layout:{COLUMN_MAJOR:0,ROW_MAJOR:1,0:"COLUMN_MAJOR",1:"ROW_MAJOR"},PrimitiveType:{TRIANGLE:0,0:"TRIANGLE"},VertexType:{VERTEX_PT:0,0:"VERTEX_PT"},DEFAULT_CAMERA_PARAMS:{verticalFovDegrees:63,near:1,far:1e4}}),ye("FaceMesh",Ze),ye("FACEMESH_LIPS",Wt),ye("FACEMESH_LEFT_EYE",Zt),ye("FACEMESH_LEFT_EYEBROW",Tt),ye("FACEMESH_LEFT_IRIS",[[474,475],[475,476],[476,477],[477,474]]),ye("FACEMESH_RIGHT_EYE",Et),ye("FACEMESH_RIGHT_EYEBROW",Bt),ye("FACEMESH_RIGHT_IRIS",[[469,470],[470,471],[471,472],[472,469]]),ye("FACEMESH_FACE_OVAL",Dt),ye("FACEMESH_CONTOURS",qt),ye("FACEMESH_TESSELATION",[[127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]]),ye("matrixDataToMatrix",function(c){for(var p=c.getCols(),m=c.getRows(),L=c.getPackedDataList(),H=[],P=0;P<m;P++)H.push(Array(p));for(P=0;P<m;P++)for(var j=0;j<p;j++){var D=c.getLayout()===1?P*p+j:j*m+P;H[P][j]=L[D]}return H}),ye("VERSION","0.4.1633559619")}).call(Lr);const Ir={};(function(){var V;function v(t){var o=0;return function(){return o<t.length?{done:!1,value:t[o++]}:{done:!0}}}var W=typeof Object.defineProperties=="function"?Object.defineProperty:function(t,o,s){return t==Array.prototype||t==Object.prototype||(t[o]=s.value),t};function I(t){t=[typeof globalThis=="object"&&globalThis,t,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var o=0;o<t.length;++o){var s=t[o];if(s&&s.Math==Math)return s}throw Error("Cannot find global object")}var x=I(this);function A(t,o){if(o)t:{var s=x;t=t.split(".");for(var h=0;h<t.length-1;h++){var X=t[h];if(!(X in s))break t;s=s[X]}t=t[t.length-1],h=s[t],o=o(h),o!=h&&o!=null&&W(s,t,{configurable:!0,writable:!0,value:o})}}A("Symbol",function(t){function o(T){if(this instanceof o)throw new TypeError("Symbol is not a constructor");return new s(h+(T||"")+"_"+X++,T)}function s(T,F){this.g=T,W(this,"description",{configurable:!0,writable:!0,value:F})}if(t)return t;s.prototype.toString=function(){return this.g};var h="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",X=0;return o}),A("Symbol.iterator",function(t){if(t)return t;t=Symbol("Symbol.iterator");for(var o="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),s=0;s<o.length;s++){var h=x[o[s]];typeof h=="function"&&typeof h.prototype[t]!="function"&&W(h.prototype,t,{configurable:!0,writable:!0,value:function(){return Q(v(this))}})}return t});function Q(t){return t={next:t},t[Symbol.iterator]=function(){return this},t}function C(t){var o=typeof Symbol!="undefined"&&Symbol.iterator&&t[Symbol.iterator];return o?o.call(t):{next:v(t)}}function pt(t){if(!(t instanceof Array)){t=C(t);for(var o,s=[];!(o=t.next()).done;)s.push(o.value);t=s}return t}var _e=typeof Object.create=="function"?Object.create:function(t){function o(){}return o.prototype=t,new o},ct;if(typeof Object.setPrototypeOf=="function")ct=Object.setPrototypeOf;else{var jt;t:{var qe={a:!0},fe={};try{fe.__proto__=qe,jt=fe.a;break t}catch{}jt=!1}ct=jt?function(t,o){if(t.__proto__=o,t.__proto__!==o)throw new TypeError(t+" is not extensible");return t}:null}var He=ct;function Lt(t,o){if(t.prototype=_e(o.prototype),t.prototype.constructor=t,He)He(t,o);else for(var s in o)if(s!="prototype")if(Object.defineProperties){var h=Object.getOwnPropertyDescriptor(o,s);h&&Object.defineProperty(t,s,h)}else t[s]=o[s];t.ka=o.prototype}function ue(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function pe(t){if(t.l)throw new TypeError("Generator is already running");t.l=!0}ue.prototype.o=function(t){this.h=t};function he(t,o){t.j={V:o,X:!0},t.g=t.m||t.s}ue.prototype.return=function(t){this.j={return:t},this.g=this.s};function $(t,o,s){return t.g=s,{value:o}}function Fn(t){this.g=new ue,this.h=t}function Hn(t,o){pe(t.g);var s=t.g.i;return s?je(t,"return"in s?s.return:function(h){return{value:h,done:!0}},o,t.g.return):(t.g.return(o),ee(t))}function je(t,o,s,h){try{var X=o.call(t.g.i,s);if(!(X instanceof Object))throw new TypeError("Iterator result "+X+" is not an object");if(!X.done)return t.g.l=!1,X;var T=X.value}catch(F){return t.g.i=null,he(t.g,F),ee(t)}return t.g.i=null,h.call(t.g,T),ee(t)}function ee(t){for(;t.g.g;)try{var o=t.h(t.g);if(o)return t.g.l=!1,{value:o.value,done:!1}}catch(s){t.g.h=void 0,he(t.g,s)}if(t.g.l=!1,t.g.j){if(o=t.g.j,t.g.j=null,o.X)throw o.V;return{value:o.return,done:!0}}return{value:void 0,done:!0}}function jn(t){this.next=function(o){return pe(t.g),t.g.i?o=je(t,t.g.i.next,o,t.g.o):(t.g.o(o),o=ee(t)),o},this.throw=function(o){return pe(t.g),t.g.i?o=je(t,t.g.i.throw,o,t.g.o):(he(t.g,o),o=ee(t)),o},this.return=function(o){return Hn(t,o)},this[Symbol.iterator]=function(){return this}}function te(t){function o(h){return t.next(h)}function s(h){return t.throw(h)}return new Promise(function(h,X){function T(F){F.done?h(F.value):Promise.resolve(F.value).then(o,s).then(T,X)}T(t.next())})}function ht(t){return te(new jn(new Fn(t)))}A("Promise",function(t){function o(F){this.h=0,this.i=void 0,this.g=[],this.o=!1;var U=this.j();try{F(U.resolve,U.reject)}catch(O){U.reject(O)}}function s(){this.g=null}function h(F){return F instanceof o?F:new o(function(U){U(F)})}if(t)return t;s.prototype.h=function(F){if(this.g==null){this.g=[];var U=this;this.i(function(){U.l()})}this.g.push(F)};var X=x.setTimeout;s.prototype.i=function(F){X(F,0)},s.prototype.l=function(){for(;this.g&&this.g.length;){var F=this.g;this.g=[];for(var U=0;U<F.length;++U){var O=F[U];F[U]=null;try{O()}catch(B){this.j(B)}}}this.g=null},s.prototype.j=function(F){this.i(function(){throw F})},o.prototype.j=function(){function F(B){return function(M){O||(O=!0,B.call(U,M))}}var U=this,O=!1;return{resolve:F(this.D),reject:F(this.l)}},o.prototype.D=function(F){if(F===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(F instanceof o)this.G(F);else{t:switch(typeof F){case"object":var U=F!=null;break t;case"function":U=!0;break t;default:U=!1}U?this.A(F):this.m(F)}},o.prototype.A=function(F){var U=void 0;try{U=F.then}catch(O){this.l(O);return}typeof U=="function"?this.H(U,F):this.m(F)},o.prototype.l=function(F){this.s(2,F)},o.prototype.m=function(F){this.s(1,F)},o.prototype.s=function(F,U){if(this.h!=0)throw Error("Cannot settle("+F+", "+U+"): Promise already settled in state"+this.h);this.h=F,this.i=U,this.h===2&&this.F(),this.B()},o.prototype.F=function(){var F=this;X(function(){if(F.C()){var U=x.console;typeof U!="undefined"&&U.error(F.i)}},1)},o.prototype.C=function(){if(this.o)return!1;var F=x.CustomEvent,U=x.Event,O=x.dispatchEvent;return typeof O=="undefined"?!0:(typeof F=="function"?F=new F("unhandledrejection",{cancelable:!0}):typeof U=="function"?F=new U("unhandledrejection",{cancelable:!0}):(F=x.document.createEvent("CustomEvent"),F.initCustomEvent("unhandledrejection",!1,!0,F)),F.promise=this,F.reason=this.i,O(F))},o.prototype.B=function(){if(this.g!=null){for(var F=0;F<this.g.length;++F)T.h(this.g[F]);this.g=null}};var T=new s;return o.prototype.G=function(F){var U=this.j();F.K(U.resolve,U.reject)},o.prototype.H=function(F,U){var O=this.j();try{F.call(U,O.resolve,O.reject)}catch(B){O.reject(B)}},o.prototype.then=function(F,U){function O(ot,ut){return typeof ot=="function"?function(ft){try{B(ot(ft))}catch(at){M(at)}}:ut}var B,M,nt=new o(function(ot,ut){B=ot,M=ut});return this.K(O(F,B),O(U,M)),nt},o.prototype.catch=function(F){return this.then(void 0,F)},o.prototype.K=function(F,U){function O(){switch(B.h){case 1:F(B.i);break;case 2:U(B.i);break;default:throw Error("Unexpected state: "+B.h)}}var B=this;this.g==null?T.h(O):this.g.push(O),this.o=!0},o.resolve=h,o.reject=function(F){return new o(function(U,O){O(F)})},o.race=function(F){return new o(function(U,O){for(var B=C(F),M=B.next();!M.done;M=B.next())h(M.value).K(U,O)})},o.all=function(F){var U=C(F),O=U.next();return O.done?h([]):new o(function(B,M){function nt(ft){return function(at){ot[ft]=at,ut--,ut==0&&B(ot)}}var ot=[],ut=0;do ot.push(void 0),ut++,h(O.value).K(nt(ot.length-1),M),O=U.next();while(!O.done)})},o});function Jn(t,o){t instanceof String&&(t+="");var s=0,h=!1,X={next:function(){if(!h&&s<t.length){var T=s++;return{value:o(T,t[T]),done:!1}}return h=!0,{done:!0,value:void 0}}};return X[Symbol.iterator]=function(){return X},X}var Cn=typeof Object.assign=="function"?Object.assign:function(t,o){for(var s=1;s<arguments.length;s++){var h=arguments[s];if(h)for(var X in h)Object.prototype.hasOwnProperty.call(h,X)&&(t[X]=h[X])}return t};A("Object.assign",function(t){return t||Cn}),A("Object.is",function(t){return t||function(o,s){return o===s?o!==0||1/o===1/s:o!==o&&s!==s}}),A("Array.prototype.includes",function(t){return t||function(o,s){var h=this;h instanceof String&&(h=String(h));var X=h.length;for(s=s||0,0>s&&(s=Math.max(s+X,0));s<X;s++){var T=h[s];if(T===o||Object.is(T,o))return!0}return!1}}),A("String.prototype.includes",function(t){return t||function(o,s){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(o instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(o,s||0)!==-1}}),A("Array.prototype.keys",function(t){return t||function(){return Jn(this,function(o){return o})}});var ye=this||self;function St(t,o){t=t.split(".");var s=ye;t[0]in s||typeof s.execScript=="undefined"||s.execScript("var "+t[0]);for(var h;t.length&&(h=t.shift());)t.length||o===void 0?s[h]&&s[h]!==Object.prototype[h]?s=s[h]:s=s[h]={}:s[h]=o}function We(t){throw t}function tn(t,o){We(Error("Invalid wire type: "+t+" (at position "+o+")"))}function hn(){We(Error("Failed to read varint, encoding is invalid."))}function Wn(t,o){return o=String.fromCharCode.apply(null,o),t==null?o:t+o}var bn,xn=typeof TextDecoder!="undefined",en,un=typeof TextEncoder!="undefined";function In(t){if(un)t=(en||(en=new TextEncoder)).encode(t);else{var o=void 0;o=o===void 0?!1:o;for(var s=0,h=new Uint8Array(3*t.length),X=0;X<t.length;X++){var T=t.charCodeAt(X);if(128>T)h[s++]=T;else{if(2048>T)h[s++]=T>>6|192;else{if(55296<=T&&57343>=T){if(56319>=T&&X<t.length){var F=t.charCodeAt(++X);if(56320<=F&&57343>=F){T=1024*(T-55296)+F-56320+65536,h[s++]=T>>18|240,h[s++]=T>>12&63|128,h[s++]=T>>6&63|128,h[s++]=T&63|128;continue}else X--}if(o)throw Error("Found an unpaired surrogate");T=65533}h[s++]=T>>12|224,h[s++]=T>>6&63|128}h[s++]=T&63|128}}t=h.subarray(0,s)}return t}var Vn={},pn=null;function nn(t){var o;o===void 0&&(o=0),ce(),o=Vn[o];for(var s=Array(Math.floor(t.length/3)),h=o[64]||"",X=0,T=0;X<t.length-2;X+=3){var F=t[X],U=t[X+1],O=t[X+2],B=o[F>>2];F=o[(F&3)<<4|U>>4],U=o[(U&15)<<2|O>>6],O=o[O&63],s[T++]=B+F+U+O}switch(B=0,O=h,t.length-X){case 2:B=t[X+1],O=o[(B&15)<<2]||h;case 1:t=t[X],s[T]=o[t>>2]+o[(t&3)<<4|B>>4]+O+h}return s.join("")}function Zn(t){var o=t.length,s=3*o/4;s%3?s=Math.floor(s):"=.".indexOf(t[o-1])!=-1&&(s="=.".indexOf(t[o-2])!=-1?s-2:s-1);var h=new Uint8Array(s),X=0;return dn(t,function(T){h[X++]=T}),h.subarray(0,X)}function dn(t,o){function s(O){for(;h<t.length;){var B=t.charAt(h++),M=pn[B];if(M!=null)return M;if(!/^[\s\xa0]*$/.test(B))throw Error("Unknown base64 encoding at char: "+B)}return O}ce();for(var h=0;;){var X=s(-1),T=s(0),F=s(64),U=s(64);if(U===64&&X===-1)break;o(X<<2|T>>4),F!=64&&(o(T<<4&240|F>>2),U!=64&&o(F<<6&192|U))}}function ce(){if(!pn){pn={};for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),o=["+/=","+/","-_=","-_.","-_"],s=0;5>s;s++){var h=t.concat(o[s].split(""));Vn[s]=h;for(var X=0;X<h.length;X++){var T=h[X];pn[T]===void 0&&(pn[T]=X)}}}}var ve=typeof Uint8Array=="function",Pe;function le(t){if(this.g=t,t!==null&&t.length===0)throw Error("ByteString should be constructed with non-empty values")}var ae=typeof Uint8Array.prototype.slice=="function";function ze(t,o,s){return o===s?Pe||(Pe=new Uint8Array(0)):ae?t.slice(o,s):new Uint8Array(t.subarray(o,s))}var xe=0,Ct=0;function re(t){if(t.constructor===Uint8Array)return t;if(t.constructor===ArrayBuffer)return new Uint8Array(t);if(t.constructor===Array)return new Uint8Array(t);if(t.constructor===String)return Zn(t);if(t.constructor===le){if(t.g==null)var o=Pe||(Pe=new Uint8Array(0));else{o=Uint8Array;var s=t.g;s=s==null||ve&&s!=null&&s instanceof Uint8Array?s:typeof s=="string"?Zn(s):null,t=t.g=s,o=new o(t)}return o}if(t instanceof Uint8Array)return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function Ve(t,o){o=o===void 0?{}:o,o=o.v===void 0?!1:o.v,this.h=null,this.g=this.i=this.l=0,this.j=!1,this.v=o,t&&It(this,t)}function It(t,o){t.h=re(o),t.l=0,t.i=t.h.length,t.g=t.l}Ve.prototype.reset=function(){this.g=this.l};function de(t){for(var o=128,s=0,h=0,X=0;4>X&&128<=o;X++)o=t.h[t.g++],s|=(o&127)<<7*X;if(128<=o&&(o=t.h[t.g++],s|=(o&127)<<28,h|=(o&127)>>4),128<=o)for(X=0;5>X&&128<=o;X++)o=t.h[t.g++],h|=(o&127)<<7*X+3;if(128>o)return t=s>>>0,o=h>>>0,(h=o&2147483648)&&(t=~t+1>>>0,o=~o>>>0,t==0&&(o=o+1>>>0)),t=4294967296*o+(t>>>0),h?-t:t;t.j=!0,hn()}function At(t){t.g>t.i&&(t.j=!0,We(Error("Tried to read past the end of the data "+t.g+" > "+t.i)))}function ne(t){var o=t.h,s=o[t.g],h=s&127;return 128>s?(t.g+=1,At(t),h):(s=o[t.g+1],h|=(s&127)<<7,128>s?(t.g+=2,At(t),h):(s=o[t.g+2],h|=(s&127)<<14,128>s?(t.g+=3,At(t),h):(s=o[t.g+3],h|=(s&127)<<21,128>s?(t.g+=4,At(t),h):(s=o[t.g+4],h|=(s&15)<<28,128>s?(t.g+=5,At(t),h>>>0):(t.g+=5,128<=o[t.g++]&&128<=o[t.g++]&&128<=o[t.g++]&&128<=o[t.g++]&&128<=o[t.g++]?(t.j=!0,hn(),h):(At(t),h))))))}function Ge(t){var o=t.h[t.g],s=t.h[t.g+1],h=t.h[t.g+2],X=t.h[t.g+3];return t.g+=4,At(t),(o<<0|s<<8|h<<16|X<<24)>>>0}Ve.prototype.m=function(){var t=Ge(this),o=2*(t>>31)+1,s=t>>>23&255;return t&=8388607,s==255?t?NaN:1/0*o:s==0?o*Math.pow(2,-149)*t:o*Math.pow(2,s-150)*(t+Math.pow(2,23))};var Be=[];function se(){this.g=new Uint8Array(64),this.h=0}function Yt(t,o){if(!(t.h+1<t.g.length)){var s=t.g;t.g=new Uint8Array(Math.ceil(1+2*t.g.length)),t.g.set(s)}t.g[t.h++]=o}se.prototype.length=function(){return this.h},se.prototype.end=function(){var t=this.g,o=this.h;return this.h=0,ze(t,0,o)};function Ie(t,o){for(;127<o;)Yt(t,o&127|128),o>>>=7;Yt(t,o)}function Je(t){var o={},s=o.O===void 0?!1:o.O;this.m={v:o.v===void 0?!1:o.v},this.O=s,o=this.m,Be.length?(s=Be.pop(),o&&(s.v=o.v),t&&It(s,t),t=s):t=new Ve(t,o),this.g=t,this.l=this.g.g,this.h=this.i=-1,this.j=!1}Je.prototype.reset=function(){this.g.reset(),this.h=this.i=-1};function ge(t){var o=t.g;if((o=o.g==o.i)||(o=t.j)||(o=t.g,o=o.j||0>o.g||o.g>o.i),o)return!1;t.l=t.g.g;var s=ne(t.g);return o=s>>>3,s&=7,0<=s&&5>=s?(t.i=o,t.h=s,!0):(t.j=!0,tn(s,t.l),!1)}function Xn(t){switch(t.h){case 0:if(t.h!=0)Xn(t);else t:{t=t.g;for(var o=t.g,s=0;10>s;s++){if((t.h[o]&128)===0){t.g=o+1,At(t);break t}o++}t.j=!0,hn()}break;case 1:t=t.g,t.g+=8,At(t);break;case 2:t.h!=2?Xn(t):(o=ne(t.g),t=t.g,t.g+=o,At(t));break;case 5:t=t.g,t.g+=4,At(t);break;case 3:o=t.i;do{if(!ge(t)){t.j=!0,We(Error("Unmatched start-group tag: stream EOF"));break}if(t.h==4){t.i!=o&&(t.j=!0,We(Error("Unmatched end-group tag")));break}Xn(t)}while(1);break;default:t.j=!0,tn(t.h,t.l)}}function Qe(t,o,s){var h=t.g.i,X=ne(t.g),T=t.g.g+X;if(t.g.i=T,s(o,t),s=T-t.g.g,s!==0)throw Error("Message parsing ended unexpectedly. Expected to read "+(X+" bytes, instead read "+(X-s)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return t.g.g=T,t.g.i=h,o}var sn=[];function cn(){this.h=[],this.i=0,this.g=new se}function ie(t,o){o.length!==0&&(t.h.push(o),t.i+=o.length)}function Re(t,o,s){Ie(t.g,8*o+2),Ie(t.g,s.length),ie(t,t.g.end()),ie(t,s)}var oe=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function Mt(t){return Object.isFrozen(t)||(oe?t[oe]|=1:t.g!==void 0?t.g|=1:Object.defineProperties(t,{g:{value:1,configurable:!0,writable:!0,enumerable:!1}})),t}function Ce(t){return t!==null&&typeof t=="object"&&t.constructor===Object}function Ot(t){switch(typeof t){case"number":return isFinite(t)?t:String(t);case"object":if(ve&&t!=null&&t instanceof Uint8Array)return nn(t);if(t instanceof le){if(t.g==null)t="";else{var o=t.g;o=o==null||typeof o=="string"?o:ve&&o instanceof Uint8Array?nn(o):null,t=t.g=o}return t}}return t}function Ut(t,o){if(t!=null)return Array.isArray(t)||Ce(t)?gn(t,o):o(t)}function gn(t,o){if(Array.isArray(t)){for(var s=Array(t.length),h=0;h<t.length;h++)s[h]=Ut(t[h],o);if(o=Array.isArray(t)){var X;oe?X=t[oe]:X=t.g,o=(X==null?0:X)&1}return o&&Mt(s),s}X={};for(s in t)X[s]=Ut(t[s],o);return X}function $t(t){return t=Ot(t),Array.isArray(t)?gn(t,$t):t}var Vt;function bt(t,o,s){var h=Vt;Vt=null,t||(t=h),h=this.constructor.ha,t||(t=h?[h]:[]),this.i=(h?0:-1)-(this.constructor.fa||0),this.l=this.g=null,this.u=t;t:{if(h=this.u.length,t=h-1,h&&(h=this.u[t],Ce(h))){this.j=t-this.i,this.h=h;break t}o!==void 0&&-1<o?(this.j=Math.max(o,t+1-this.i),this.h=null):this.j=Number.MAX_VALUE}if(s)for(o=0;o<s.length;o++)t=s[o],t<this.j?(t+=this.i,(h=this.u[t])?Array.isArray(h)&&Mt(h):this.u[t]=zt):(Fe(this),(h=this.h[t])?Array.isArray(h)&&Mt(h):this.h[t]=zt)}var zt=Object.freeze(Mt([]));function Fe(t){var o=t.j+t.i;t.u[o]||(t.h=t.u[o]={})}function Kt(t,o,s){return o===-1?null:(s===void 0?0:s)||o>=t.j?t.h?t.h[o]:void 0:t.u[o+t.i]}function Qt(t,o,s){s=s===void 0?!1:s;var h=Kt(t,o,s);return h==null&&(h=zt),h===zt&&(h=Mt(h.slice()),Rt(t,o,h,s)),h}function Le(t,o){var s=Qt(t,o);if(t.l||(t.l={}),!t.l[o]){for(var h=0;h<s.length;h++)s[h]=+s[h];t.l[o]=!0}return s}function kt(t,o,s){return t=Kt(t,o),t=t==null?t:+t,t==null?s===void 0?0:s:t}function Rt(t,o,s,h){(h===void 0?0:h)||o>=t.j?(Fe(t),t.h[o]=s):t.u[o+t.i]=s}function Ae(t,o,s,h){s!==h?Rt(t,o,s):Rt(t,o,void 0,!1)}function Oe(t,o,s){if(s===-1)return null;t.g||(t.g={});var h=t.g[s];if(h)return h;var X=Kt(t,s,!1);return X==null?h:(o=new o(X),t.g[s]=o)}function Se(t,o,s){t.g||(t.g={});var h=t.g[s];if(!h){var X=Qt(t,s,!1);h=[];for(var T=0;T<X.length;T++)h[T]=new o(X[T]);t.g[s]=h}return h}function Jt(t,o,s,h,X){var T=Se(t,h,o);s=s||new h,t=Qt(t,o),X!=null?(T.splice(X,0,s),t.splice(X,0,s.u)):(T.push(s),t.push(s.u))}bt.prototype.toJSON=function(){return gn(this.u,$t)},bt.prototype.toString=function(){return this.u.toString()};function Ne(t,o){return t=Kt(t,o),t==null?0:t}function an(t,o){return t=Kt(t,o),t==null?"":t}function De(t,o){if(t=t.m){ie(o,o.g.end());for(var s=0;s<t.length;s++)ie(o,t[s])}}var Ee=Symbol();function Me(t,o,s){return t[Ee]||(t[Ee]=function(h,X){return o(h,X,s)})}function $e(t){var o=t[Ee];if(!o){var s=t[Ue]||(t[Ue]=t());o=function(h,X){return be(h,X,s)},t[Ee]=o}return o}function me(t){var o=t.da;if(o)return $e(o);if(o=t.ia){var s=t.Y;return delete t.Y,Me(t.W.g,o,s)}}function Ye(t){var o=me(t),s=t.W,h=t.ea;return o?function(X,T){return h(X,T,s,o)}:function(X,T){return h(X,T,s)}}function Nn(t){var o=t[0];switch(t.length){case 2:var s=t[1];return function(ut,ft,at){return o(ut,ft,at,s)};case 3:var h=t[1],X=$e(t[2]);return function(ut,ft,at){return o(ut,ft,at,h,X)};case 4:var T=t[1],F=t[3],U=$e(t[2]);return function(ut,ft,at){return o(ut,ft,at,T,U,F)};case 5:var O=t[1],B=Me(O,t[3],t[4]);return function(ut,ft,at){return o(ut,ft,at,O,B)};case 6:var M=t[1],nt=t[5],ot=Me(M,t[3],t[4]);return function(ut,ft,at){return o(ut,ft,at,M,ot,nt)};default:throw Error("Unsupported number of parameters, expected [2-6], got "+t.length)}}var Ue=Symbol();function be(t,o,s){for(;ge(o)&&o.h!=4;){var h=o.i,X=s[h];if(X)Array.isArray(X)&&(X=s[h]=Nn(X));else{var T=s[0];T&&(T=T[h])&&(X=s[h]=Ye(T))}X&&X(o,t,h)||(X=o,h=t,T=X.l,Xn(X),X.O||(X=ze(X.g.h,T,X.g.g),(T=h.m)?T.push(X):h.m=[X]))}return t}function rn(t,o){var s=new cn;if(o(t,s),t=s.i+s.g.length(),t===0)s=new Uint8Array(0);else{t=new Uint8Array(t);for(var h=s.h,X=h.length,T=o=0;T<X;T++){var F=h[T];F.length!==0&&(t.set(F,o),o+=F.length)}h=s.g,X=h.h,X!==0&&(t.set(h.g.subarray(0,X),o),h.h=0),s.h=[t],s=t}return s}function fn(t,o,s){if(sn.length){var h=sn.pop();t&&(It(h.g,t),h.i=-1,h.h=-1),t=h}else t=new Je(t);try{var X=new o;return be(X,t,s[Ue]||(s[Ue]=s()))}finally{o=t.g,o.h=null,o.l=0,o.i=0,o.g=0,o.j=!1,o.v=!1,t.i=-1,t.h=-1,t.j=!1,100>sn.length&&sn.push(t)}}function Te(t,o,s){if(o=Kt(o,s),o!=null){Ie(t.g,8*s+5),t=t.g;var h=o;h=(s=0>h?1:0)?-h:h,h===0?0<1/h?xe=Ct=0:(Ct=0,xe=2147483648):isNaN(h)?(Ct=0,xe=2147483647):34028234663852886e22<h?(Ct=0,xe=(s<<31|2139095040)>>>0):11754943508222875e-54>h?(h=Math.round(h/Math.pow(2,-149)),Ct=0,xe=(s<<31|h)>>>0):(o=Math.floor(Math.log(h)/Math.LN2),h*=Math.pow(2,-o),h=Math.round(8388608*h),16777216<=h&&++o,Ct=0,xe=(s<<31|o+127<<23|h&8388607)>>>0),s=xe,Yt(t,s>>>0&255),Yt(t,s>>>8&255),Yt(t,s>>>16&255),Yt(t,s>>>24&255)}}function Sn(t,o,s){if(t.h!==1)return!1;var h=t.g;t=Ge(h);var X=Ge(h);h=2*(X>>31)+1;var T=X>>>20&2047;return t=4294967296*(X&1048575)+t,Ae(o,s,T==2047?t?NaN:1/0*h:T==0?h*Math.pow(2,-1074)*t:h*Math.pow(2,T-1075)*(t+4503599627370496),0),!0}function ke(t,o,s){return t.h!==5?!1:(Rt(o,s,t.g.m()),!0)}function on(t,o,s){if(t.h!==5&&t.h!==2)return!1;if(o=Qt(o,s),t.h==2){s=Ve.prototype.m;var h=ne(t.g);for(h=t.g.g+h;t.g.g<h;)o.push(s.call(t.g))}else o.push(t.g.m());return!0}function mn(t,o,s){return t.h!==5?!1:(t=t.g.m(),Ae(o,s,t,0),!0)}function Ln(t,o,s){return t.h!==0?!1:(Rt(o,s,de(t.g)),!0)}function Ke(t,o,s){return t.h!==0?!1:(Rt(o,s,ne(t.g)),!0)}function yn(t,o,s){return t.h!==0?!1:(t=ne(t.g),Ae(o,s,t,0),!0)}function Yn(t,o,s){return t.h!==0?!1:(t=!!ne(t.g),Ae(o,s,t,!1),!0)}function Un(t,o,s){if(t.h!==2)return!1;var h=ne(t.g);t=t.g;var X=t.g;t.g+=h,At(t),t=t.h;var T;if(xn)(T=bn)||(T=bn=new TextDecoder("utf-8",{fatal:!1})),T=T.decode(t.subarray(X,X+h));else{h=X+h;for(var F=[],U=null,O,B,M;X<h;)O=t[X++],128>O?F.push(O):224>O?X>=h?F.push(65533):(B=t[X++],194>O||(B&192)!==128?(X--,F.push(65533)):F.push((O&31)<<6|B&63)):240>O?X>=h-1?F.push(65533):(B=t[X++],(B&192)!==128||O===224&&160>B||O===237&&160<=B||((T=t[X++])&192)!==128?(X--,F.push(65533)):F.push((O&15)<<12|(B&63)<<6|T&63)):244>=O?X>=h-2?F.push(65533):(B=t[X++],(B&192)!==128||(O<<28)+(B-144)>>30!==0||((T=t[X++])&192)!==128||((M=t[X++])&192)!==128?(X--,F.push(65533)):(O=(O&7)<<18|(B&63)<<12|(T&63)<<6|M&63,O-=65536,F.push((O>>10&1023)+55296,(O&1023)+56320))):F.push(65533),8192<=F.length&&(U=Wn(U,F),F.length=0);T=Wn(U,F)}return Rt(o,s,T),!0}function vn(t,o,s,h,X){return t.h!==2?!1:(t=Qe(t,new h,X),o.g||(o.g={}),h=t&&t.u,o.g[s]=t,Rt(o,s,h,!1),!0)}function Gn(t,o,s,h,X){return t.h!==2?!1:(t=Qe(t,new h,X),Jt(o,s,t,h,void 0),!0)}function f(t,o,s){return t.h!==0?!1:(Rt(o,s,de(t.g)),!0)}function b(t){bt.call(this,t)}Lt(b,bt);function Z(){return{1:Ke,2:ke,3:Un,4:Un}}function Y(t,o){var s=Kt(t,1);if(s!=null&&s!=null){Ie(o.g,8);var h=o.g;if(0<=s)Ie(h,s);else{for(var X=0;9>X;X++)Yt(h,s&127|128),s>>=7;Yt(h,1)}}Te(o,t,2),h=Kt(t,3),h!=null&&Re(o,3,In(h)),h=Kt(t,4),h!=null&&Re(o,4,In(h)),De(t,o)}function _(t){bt.call(this,t,-1,K)}Lt(_,bt),_.prototype.addClassification=function(t,o){return Jt(this,1,t,b,o),this};function et(){return{1:[Gn,b,Z]}}var K=[1];function tt(t){bt.call(this,t)}Lt(tt,bt);function st(){return{1:ke,2:ke,3:ke,4:ke,5:ke}}function mt(t,o){Te(o,t,1),Te(o,t,2),Te(o,t,3),Te(o,t,4),Te(o,t,5),De(t,o)}function Ft(t){bt.call(this,t,-1,Ht)}Lt(Ft,bt);function wt(){return{1:[Gn,tt,st]}}var Ht=[1];function Wt(t){bt.call(this,t)}Lt(Wt,bt);function Zt(){return{1:ke,2:ke,3:ke,4:ke,5:ke,6:Ln}}function Tt(t,o){Te(o,t,1),Te(o,t,2),Te(o,t,3),Te(o,t,4),Te(o,t,5);var s=Kt(t,6);if(s!=null&&s!=null){Ie(o.g,48);var h=o.g,X=s;s=0>X,X=Math.abs(X);var T=X>>>0;for(X=Math.floor((X-T)/4294967296),X>>>=0,s&&(X=~X>>>0,T=(~T>>>0)+1,4294967295<T&&(T=0,X++,4294967295<X&&(X=0))),xe=T,Ct=X,s=xe,T=Ct;0<T||127<s;)Yt(h,s&127|128),s=(s>>>7|T<<25)>>>0,T>>>=7;Yt(h,s)}De(t,o)}function Et(t){bt.call(this,t,-1,Ze)}Lt(Et,bt);function Bt(){return{1:f,2:f,3:on,4:[vn,Dt,qt],5:Ke,6:Ke,7:on,8:on,9:on}}function Dt(t){bt.call(this,t)}Lt(Dt,bt);function qt(){return{1:ke,2:ke,3:ke}}var Ze=[3,7,8,9];function c(t){bt.call(this,t)}Lt(c,bt);function p(){return{1:mn,2:mn,3:mn}}function m(t){bt.call(this,t)}Lt(m,bt);function L(){return{1:mn,2:mn,3:mn}}function H(t){bt.call(this,t)}Lt(H,bt);function P(){return{1:yn,2:[vn,m,L],3:[vn,c,p],4:Yn}}function j(t){bt.call(this,t,-1,rt)}Lt(j,bt);function D(){return{1:yn,2:[Gn,H,P],3:mn,4:on,5:on,6:on}}var rt=[2,4,5,6];function r(t){bt.call(this,t,-1,G)}Lt(r,bt);function y(){return{1:yn,2:[Gn,j,D],3:[vn,Et,Bt],4:Sn,5:on,6:on}}var G=[2,5,6];function S(t,o,s){if(s=t.createShader(s===0?t.VERTEX_SHADER:t.FRAGMENT_SHADER),t.shaderSource(s,o),t.compileShader(s),!t.getShaderParameter(s,t.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
90
90
|
|
|
91
|
-
`+t.getShaderInfoLog(
|
|
91
|
+
`+t.getShaderInfoLog(s));return s}function N(t){return Se(t,b,1).map(function(o){return{index:Ne(o,1),$:kt(o,2),label:Kt(o,3)!=null?an(o,3):void 0,displayName:Kt(o,4)!=null?an(o,4):void 0}})}function J(t){return{x:kt(t,1),y:kt(t,2),z:kt(t,3),visibility:Kt(t,4)!=null?kt(t,4):void 0}}function k(t,o){this.h=t,this.g=o,this.l=0}function q(t,o,s){return z(t,o),typeof t.g.canvas.transferToImageBitmap=="function"?Promise.resolve(t.g.canvas.transferToImageBitmap()):s?Promise.resolve(t.g.canvas):typeof createImageBitmap=="function"?createImageBitmap(t.g.canvas):(t.i===void 0&&(t.i=document.createElement("canvas")),new Promise(function(h){t.i.height=t.g.canvas.height,t.i.width=t.g.canvas.width,t.i.getContext("2d",{}).drawImage(t.g.canvas,0,0,t.g.canvas.width,t.g.canvas.height),h(t.i)}))}function z(t,o){var s=t.g;if(t.m===void 0){var h=S(s,`
|
|
92
92
|
attribute vec2 aVertex;
|
|
93
93
|
attribute vec2 aTex;
|
|
94
94
|
varying vec2 vTex;
|
|
95
95
|
void main(void) {
|
|
96
96
|
gl_Position = vec4(aVertex, 0.0, 1.0);
|
|
97
97
|
vTex = aTex;
|
|
98
|
-
}`,0),
|
|
98
|
+
}`,0),X=S(s,`
|
|
99
99
|
precision mediump float;
|
|
100
100
|
varying vec2 vTex;
|
|
101
101
|
uniform sampler2D sampler0;
|
|
102
102
|
void main(){
|
|
103
103
|
gl_FragColor = texture2D(sampler0, vTex);
|
|
104
|
-
}`,1),
|
|
104
|
+
}`,1),T=s.createProgram();if(s.attachShader(T,h),s.attachShader(T,X),s.linkProgram(T),!s.getProgramParameter(T,s.LINK_STATUS))throw Error(`Could not compile WebGL program.
|
|
105
105
|
|
|
106
|
-
`+u.getProgramInfoLog(R));h=t.m=R,u.useProgram(h),Z=u.getUniformLocation(h,"sampler0"),t.j={J:u.getAttribLocation(h,"aVertex"),I:u.getAttribLocation(h,"aTex"),ja:Z},t.s=u.createBuffer(),u.bindBuffer(u.ARRAY_BUFFER,t.s),u.enableVertexAttribArray(t.j.J),u.vertexAttribPointer(t.j.J,2,u.FLOAT,!1,0,0),u.bufferData(u.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),u.STATIC_DRAW),u.bindBuffer(u.ARRAY_BUFFER,null),t.o=u.createBuffer(),u.bindBuffer(u.ARRAY_BUFFER,t.o),u.enableVertexAttribArray(t.j.I),u.vertexAttribPointer(t.j.I,2,u.FLOAT,!1,0,0),u.bufferData(u.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),u.STATIC_DRAW),u.bindBuffer(u.ARRAY_BUFFER,null),u.uniform1i(Z,0)}h=t.j,u.useProgram(t.m),u.canvas.width=r.width,u.canvas.height=r.height,u.viewport(0,0,r.width,r.height),u.activeTexture(u.TEXTURE0),t.h.bindTexture2d(r.glName),u.enableVertexAttribArray(h.J),u.bindBuffer(u.ARRAY_BUFFER,t.s),u.vertexAttribPointer(h.J,2,u.FLOAT,!1,0,0),u.enableVertexAttribArray(h.I),u.bindBuffer(u.ARRAY_BUFFER,t.o),u.vertexAttribPointer(h.I,2,u.FLOAT,!1,0,0),u.bindFramebuffer(u.DRAW_FRAMEBUFFER?u.DRAW_FRAMEBUFFER:u.FRAMEBUFFER,null),u.clearColor(0,0,0,0),u.clear(u.COLOR_BUFFER_BIT),u.colorMask(!0,!0,!0,!0),u.drawArrays(u.TRIANGLE_FAN,0,4),u.disableVertexAttribArray(h.J),u.disableVertexAttribArray(h.I),u.bindBuffer(u.ARRAY_BUFFER,null),t.h.bindTexture2d(0)}function Fe(t){this.g=t}var Dt=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function He(t,r){return r+t}function ie(t,r){window[t]=r}function St(t){var r=document.createElement("script");return r.setAttribute("src",t),r.setAttribute("crossorigin","anonymous"),new Promise(function(u){r.addEventListener("load",function(){u()},!1),r.addEventListener("error",function(){u()},!1),document.body.appendChild(r)})}function Ht(){return ut(function(t){switch(t.g){case 1:return t.m=2,P(t,WebAssembly.instantiate(Dt),4);case 4:t.g=3,t.m=0;break;case 2:return t.m=0,t.j=null,t.return(!1);case 3:return t.return(!0)}})}function kt(t){if(this.g=t,this.listeners={},this.j={},this.G={},this.m={},this.s={},this.H=this.o=this.S=!0,this.D=Promise.resolve(),this.R="",this.C={},this.locateFile=t&&t.locateFile||He,typeof window=="object")var r=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")r=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.T=r,t.options){r=U(Object.keys(t.options));for(var u=r.next();!u.done;u=r.next()){u=u.value;var h=t.options[u].default;h!==void 0&&(this.j[u]=typeof h=="function"?h():h)}}}X=kt.prototype,X.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function Nt(t){var r,u,h,Z,R,V,I,Y,H,C,z;return ut(function(M){switch(M.g){case 1:return t.S?(r=t.g.files===void 0?[]:typeof t.g.files=="function"?t.g.files(t.j):t.g.files,P(M,Ht(),2)):M.return();case 2:if(u=M.h,typeof window=="object")return ie("createMediapipeSolutionsWasm",{locateFile:t.locateFile}),ie("createMediapipeSolutionsPackedAssets",{locateFile:t.locateFile}),V=r.filter(function(Q){return Q.data!==void 0}),I=r.filter(function(Q){return Q.data===void 0}),Y=Promise.all(V.map(function(Q){var q=p(t,Q.url);if(Q.path!==void 0){var $=Q.path;q=q.then(function(mt){return t.overrideFile($,mt),Promise.resolve(mt)})}return q})),H=Promise.all(I.map(function(Q){return Q.simd===void 0||Q.simd&&u||!Q.simd&&!u?St(t.locateFile(Q.url,t.T)):Promise.resolve()})).then(function(){var Q,q,$;return ut(function(mt){if(mt.g==1)return Q=window.createMediapipeSolutionsWasm,q=window.createMediapipeSolutionsPackedAssets,$=t,P(mt,Q(q),2);$.h=mt.h,mt.g=0})}),C=function(){return ut(function(Q){return t.g.graph&&t.g.graph.url?Q=P(Q,p(t,t.g.graph.url),0):(Q.g=0,Q=void 0),Q})}(),P(M,Promise.all([H,Y,C]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return h=r.filter(function(Q){return Q.simd===void 0||Q.simd&&u||!Q.simd&&!u}).map(function(Q){return t.locateFile(Q.url,t.T)}),importScripts.apply(null,et(h)),Z=t,P(M,createMediapipeSolutionsWasm(Module),6);case 6:Z.h=M.h,t.l=new OffscreenCanvas(1,1),t.h.canvas=t.l,R=t.h.GL.createContext(t.l,{antialias:!1,alpha:!1,ga:typeof WebGL2RenderingContext!="undefined"?2:1}),t.h.GL.makeContextCurrent(R),M.g=4;break;case 7:if(t.l=document.createElement("canvas"),z=t.l.getContext("webgl2",{}),!z&&(z=t.l.getContext("webgl",{}),!z))return alert("Failed to create WebGL canvas context when passing video frame."),M.return();t.F=z,t.h.canvas=t.l,t.h.createContext(t.l,!0,!0,{});case 4:t.i=new t.h.SolutionWasm,t.S=!1,M.g=0}})}function jt(t){var r,u,h,Z,R,V,I,Y;return ut(function(H){if(H.g==1){if(t.g.graph&&t.g.graph.url&&t.R===t.g.graph.url)return H.return();if(t.o=!0,!t.g.graph||!t.g.graph.url){H.g=2;return}return t.R=t.g.graph.url,P(H,p(t,t.g.graph.url),3)}for(H.g!=2&&(r=H.h,t.i.loadGraph(r)),u=U(Object.keys(t.C)),h=u.next();!h.done;h=u.next())Z=h.value,t.i.overrideFile(Z,t.C[Z]);if(t.C={},t.g.listeners)for(R=U(t.g.listeners),V=R.next();!V.done;V=R.next())I=V.value,x(t,I);Y=t.j,t.j={},t.setOptions(Y),H.g=0})}X.reset=function(){var t=this;return ut(function(r){t.i&&(t.i.reset(),t.m={},t.s={}),r.g=0})},X.setOptions=function(t,r){var u=this;if(r=r||this.g.options){for(var h=[],Z=[],R={},V=U(Object.keys(t)),I=V.next();!I.done;R={L:R.L,M:R.M},I=V.next()){var Y=I.value;Y in this.j&&this.j[Y]===t[Y]||(this.j[Y]=t[Y],I=r[Y],I!==void 0&&(I.onChange&&(R.L=I.onChange,R.M=t[Y],h.push(function(H){return function(){var C;return ut(function(z){if(z.g==1)return P(z,H.L(H.M),2);C=z.h,C===!0&&(u.o=!0),z.g=0})}}(R))),I.graphOptionXref&&(Y={valueNumber:I.type===1?t[Y]:0,valueBoolean:I.type===0?t[Y]:!1,valueString:I.type===2?t[Y]:""},I=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),I.graphOptionXref),Y),Z.push(I))))}(h.length!==0||Z.length!==0)&&(this.o=!0,this.B=(this.B===void 0?[]:this.B).concat(Z),this.A=(this.A===void 0?[]:this.A).concat(h))}};function i(t){var r,u,h,Z,R,V,I;return ut(function(Y){switch(Y.g){case 1:if(!t.o)return Y.return();if(!t.A){Y.g=2;break}r=U(t.A),u=r.next();case 3:if(u.done){Y.g=5;break}return h=u.value,P(Y,h(),4);case 4:u=r.next(),Y.g=3;break;case 5:t.A=void 0;case 2:if(t.B){for(Z=new t.h.GraphOptionChangeRequestList,R=U(t.B),V=R.next();!V.done;V=R.next())I=V.value,Z.push_back(I);t.i.changeOptions(Z),Z.delete(),t.B=void 0}t.o=!1,Y.g=0}})}X.initialize=function(){var t=this;return ut(function(r){return r.g==1?P(r,Nt(t),2):r.g!=3?P(r,jt(t),3):P(r,i(t),0)})};function p(t,r){var u,h;return ut(function(Z){return r in t.G?Z.return(t.G[r]):(u=t.locateFile(r,""),h=fetch(u).then(function(R){return R.arrayBuffer()}),t.G[r]=h,Z.return(h))})}X.overrideFile=function(t,r){this.i?this.i.overrideFile(t,r):this.C[t]=r},X.clearOverriddenFiles=function(){this.C={},this.i&&this.i.clearOverriddenFiles()},X.send=function(t,r){var u=this,h,Z,R,V,I,Y,H,C,z;return ut(function(M){switch(M.g){case 1:return u.g.inputs?(h=1e3*(r==null?performance.now():r),P(M,u.D,2)):M.return();case 2:return P(M,u.initialize(),3);case 3:for(Z=new u.h.PacketDataList,R=U(Object.keys(t)),V=R.next();!V.done;V=R.next())if(I=V.value,Y=u.g.inputs[I]){t:{var Q=t[I];switch(Y.type){case"video":var q=u.m[Y.stream];if(q||(q=new pt(u.h,u.F),u.m[Y.stream]=q),q.l===0&&(q.l=q.h.createTexture()),typeof HTMLVideoElement!="undefined"&&Q instanceof HTMLVideoElement)var $=Q.videoWidth,mt=Q.videoHeight;else typeof HTMLImageElement!="undefined"&&Q instanceof HTMLImageElement?($=Q.naturalWidth,mt=Q.naturalHeight):($=Q.width,mt=Q.height);mt={glName:q.l,width:$,height:mt},$=q.g,$.canvas.width=mt.width,$.canvas.height=mt.height,$.activeTexture($.TEXTURE0),q.h.bindTexture2d(q.l),$.texImage2D($.TEXTURE_2D,0,$.RGBA,$.RGBA,$.UNSIGNED_BYTE,Q),q.h.bindTexture2d(0),q=mt;break t;case"detections":for(q=u.m[Y.stream],q||(q=new Fe(u.h),u.m[Y.stream]=q),q.data||(q.data=new q.g.DetectionListData),q.data.reset(Q.length),mt=0;mt<Q.length;++mt){$=Q[mt];var Wt=q.data,Rt=Wt.setBoundingBox,le=mt,Oe=$.U,ce=new lt;if(Vt(ce,1,Oe.aa),Vt(ce,2,Oe.ba),Vt(ce,3,Oe.height),Vt(ce,4,Oe.width),Vt(ce,5,Oe.rotation),Vt(ce,6,Oe.Z),Oe=en(ce,ht),Rt.call(Wt,le,Oe),$.P)for(Wt=0;Wt<$.P.length;++Wt){ce=$.P[Wt];var ln=!!ce.visibility;Rt=q.data,le=Rt.addNormalizedLandmark,Oe=mt,ce=Object.assign(Object.assign({},ce),{visibility:ln?ce.visibility:0}),ln=new O,Vt(ln,1,ce.x),Vt(ln,2,ce.y),Vt(ln,3,ce.z),ce.visibility&&Vt(ln,4,ce.visibility),ce=en(ln,rt),le.call(Rt,Oe,ce)}if($.N)for(Wt=0;Wt<$.N.length;++Wt)Rt=q.data,le=Rt.addClassification,Oe=mt,ce=$.N[Wt],ln=new y,Vt(ln,2,ce.$),ce.index&&Vt(ln,1,ce.index),ce.label&&Vt(ln,3,ce.label),ce.displayName&&Vt(ln,4,ce.displayName),ce=en(ln,F),le.call(Rt,Oe,ce)}q=q.data;break t;default:q={}}}switch(H=q,C=Y.stream,Y.type){case"video":Z.pushTexture2d(Object.assign(Object.assign({},H),{stream:C,timestamp:h}));break;case"detections":z=H,z.stream=C,z.timestamp=h,Z.pushDetectionList(z);break;default:throw Error("Unknown input config type: '"+Y.type+"'")}}return u.i.send(Z),P(M,u.D,4);case 4:Z.delete(),M.g=0}})};function b(t,r,u){var h,Z,R,V,I,Y,H,C,z,M,Q,q,$,mt;return ut(function(Wt){switch(Wt.g){case 1:if(!u)return Wt.return(r);for(h={},Z=0,R=U(Object.keys(u)),V=R.next();!V.done;V=R.next())I=V.value,Y=u[I],typeof Y!="string"&&Y.type==="texture"&&r[Y.stream]!==void 0&&++Z;1<Z&&(t.H=!1),H=U(Object.keys(u)),V=H.next();case 2:if(V.done){Wt.g=4;break}if(C=V.value,z=u[C],typeof z=="string")return $=h,mt=C,P(Wt,W(t,C,r[z]),14);if(M=r[z.stream],z.type==="detection_list"){if(M){for(var Rt=M.getRectList(),le=M.getLandmarksList(),Oe=M.getClassificationsList(),ce=[],ln=0;ln<Rt.size();++ln){var _n=Rn(Rt.get(ln),lt,st);_n={U:{aa:Kt(_n,1),ba:Kt(_n,2),height:Kt(_n,3),width:Kt(_n,4),rotation:Kt(_n,5,0),Z:Le(_n,6)},P:Ee(Rn(le.get(ln),dt,ct),O,1).map(ot),N:Zt(Rn(Oe.get(ln),E,B))},ce.push(_n)}Rt=ce}else Rt=[];h[C]=Rt,Wt.g=7;break}if(z.type==="proto_list"){if(M){for(Rt=Array(M.size()),le=0;le<M.size();le++)Rt[le]=M.get(le);M.delete()}else Rt=[];h[C]=Rt,Wt.g=7;break}if(M===void 0){Wt.g=3;break}if(z.type==="float_list"){h[C]=M,Wt.g=7;break}if(z.type==="proto"){h[C]=M,Wt.g=7;break}if(z.type!=="texture")throw Error("Unknown output config type: '"+z.type+"'");return Q=t.s[C],Q||(Q=new pt(t.h,t.F),t.s[C]=Q),P(Wt,wt(Q,M,t.H),13);case 13:q=Wt.h,h[C]=q;case 7:z.transform&&h[C]&&(h[C]=z.transform(h[C])),Wt.g=3;break;case 14:$[mt]=Wt.h;case 3:V=H.next(),Wt.g=2;break;case 4:return Wt.return(h)}})}function W(t,r,u){var h;return ut(function(Z){return typeof u=="number"||u instanceof Uint8Array||u instanceof t.h.Uint8BlobList?Z.return(u):u instanceof t.h.Texture2dDataOut?(h=t.s[r],h||(h=new pt(t.h,t.F),t.s[r]=h),Z.return(wt(h,u,t.H))):Z.return(void 0)})}function x(t,r){for(var u=r.name||"$",h=[].concat(et(r.wants)),Z=new t.h.StringList,R=U(r.wants),V=R.next();!V.done;V=R.next())Z.push_back(V.value);R=t.h.PacketListener.implement({onResults:function(I){for(var Y={},H=0;H<r.wants.length;++H)Y[h[H]]=I.get(H);var C=t.listeners[u];C&&(t.D=b(t,Y,r.outs).then(function(z){z=C(z);for(var M=0;M<r.wants.length;++M){var Q=Y[h[M]];typeof Q=="object"&&Q.hasOwnProperty&&Q.hasOwnProperty("delete")&&Q.delete()}z&&(t.D=z)}))}}),t.i.attachMultiListener(Z,R),Z.delete()}X.onResults=function(t,r){this.listeners[r||"$"]=t},vt("Solution",kt),vt("OptionType",{BOOL:0,NUMBER:1,ca:2,0:"BOOL",1:"NUMBER",2:"STRING"});function n(t){var r=Le(t,1),u=ke(t,l,3);return u={x:Kt(u,1),y:Kt(u,2),depth:Kt(u,3)},t=ke(t,m,2),{id:r,point2d:u,point3d:{x:Kt(t,1),y:Kt(t,2),z:Kt(t,3)}}}function s(t){var r=Rn(t,nt,ft);t=[],r=Ee(r,N,2);for(var u=0;u<r.length;u++)t.push({id:Le(r[u],1),keypoints:Ee(r[u],L,2).map(n),visibility:Kt(r[u],3),scale:we(r[u],6),translation:we(r[u],5),rotation:we(r[u],4)});return t}function d(t){switch(t){case"Camera":return"object_detection_3d_camera.tflite";case"Chair":return"object_detection_3d_chair.tflite";case"Cup":return"object_detection_3d_cup.tflite";default:return"object_detection_3d_sneakers.tflite"}}function e(t){switch(t){case"Camera":return"Camera";case"Chair":return"Chair";case"Cup":return"Coffee cup, Mug";default:return"Footwear"}}var o={focalX:{type:1,graphOptionXref:{calculatorType:"Lift2DFrameAnnotationTo3DCalculator",fieldName:"normalized_focal_x"}},focalY:{type:1,graphOptionXref:{calculatorType:"Lift2DFrameAnnotationTo3DCalculator",fieldName:"normalized_focal_y"}},principalX:{type:1,graphOptionXref:{calculatorType:"Lift2DFrameAnnotationTo3DCalculator",fieldName:"normalized_principal_point_x"}},principalY:{type:1,graphOptionXref:{calculatorType:"Lift2DFrameAnnotationTo3DCalculator",fieldName:"normalized_principal_point_y"}},allowedLabels:{type:2,graphOptionXref:{calculatorName:"ConstantSidePacketCalculatorAllowedLabels",calculatorType:"ConstantSidePacketCalculator",fieldName:"string_value"}}};function c(t){var r=this;t=t||{},this.g=new kt({locateFile:t.locateFile,files:[{url:"objectron_solution_packed_assets_loader.js"},{simd:!1,url:"objectron_solution_wasm_bin.js"},{simd:!0,url:"objectron_solution_simd_wasm_bin.js"}],graph:{url:"objectron.binarypb"},inputs:{image:{type:"video",stream:"input_frames_gpu"}},listeners:[{wants:["lifted_objects","image_transformed"],outs:{image:"image_transformed",objectDetections:{type:"proto",stream:"lifted_objects",transform:s}}}],options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:typeof window!="object"||window.navigator===void 0?!1:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,default:!1,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},maxNumObjects:{type:1,default:5,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorMaxNumObjects",fieldName:"int_value"}},staticImageMode:{type:0,default:!0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"objectrongpusubgraph__ConstantSidePacketCalculator",fieldName:"bool_value"}},minDetectionConfidence:{type:1,default:.5,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"objectrongpusubgraph__objectdetectionoidv4subgraph__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,default:.99,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"objectrongpusubgraph__boxlandmarksubgraph__ThresholdingCalculator",fieldName:"threshold"}},modelName:{default:"Shoe",onChange:function(u){var h,Z,R,V;return ut(function(I){return I.g==1?(h=u,r.g.setOptions({allowedLabels:e(h)},o),Z=d(h),R="object_detection_3d.tflite",P(I,p(r.g,Z),2)):(V=I.h,r.g.overrideFile(R,V),I.return(!0))})}},focalLength:{default:[1,1],onChange:function(u){var h;return ut(function(Z){return h=u,r.h=h,r.g.setOptions({focalX:h[0],focalY:h[1]},o),Z.return(!0)})}},principalPoint:{default:[0,0],onChange:function(u){var h;return ut(function(Z){return h=u,r.i=h,r.g.setOptions({principalX:h[0],principalY:h[1]},o),Z.return(!0)})}},imageSize:{onChange:function(u){var h,Z,R,V;return ut(function(I){if(r.h===void 0||r.i===void 0)return console.error('"focalLength" and "principalPoint" must be set if setting image size'),I.return();h=u,Z=[h[0]/2,h[1]/2],R=[r.h[0]/Z[0],r.h[1]/Z[1]],V=[r.i[0]/Z[0],r.i[1]/Z[1]],r.setOptions({focalLength:R,principalPoint:V}),I.g=0})}}}})}X=c.prototype,X.close=function(){return this.g.close(),Promise.resolve()},X.onResults=function(t){this.g.onResults(t)},X.initialize=function(){var t=this;return ut(function(r){return P(r,t.g.initialize(),0)})},X.reset=function(){this.g.reset()},X.send=function(t){var r=this;return ut(function(u){return P(u,r.g.send(t),0)})},X.setOptions=function(t){this.g.setOptions(t)},vt("Objectron",c),vt("BOX_CONNECTIONS",[[1,2],[2,4],[4,3],[3,1],[5,6],[6,8],[8,7],[7,5],[1,5],[2,6],[3,7],[4,8]]),vt("BOX_KEYPOINTS",{CENTER:0,BACK_BOTTOM_LEFT:1,FRONT_BOTTOM_LEFT:2,BACK_TOP_LEFT:3,FRONT_TOP_LEFT:4,BACK_BOTTOM_RIGHT:5,FRONT_BOTTOM_RIGHT:6,BACK_TOP_RIGHT:7,FRONT_TOP_RIGHT:8}),vt("VERSION","0.4.1636596145")}.call(cn),globalThis.VonageObjectronVersion=globalThis.VERSION,globalThis.VonageObjectron=globalThis.Objectron;const Qn=class{constructor(){this.mediapipeMap_=new Map}getVersion(X){switch(X){case"face_detection":return VonageFaceDetectionVersion;case"face_mesh":return VonageFaceMashVersion;case"hands":return VonageHandsVersion;case"holistic":return VonageHolisticVersion;case"objectron":return VonageObjectronVersion;case"selfie_segmentation":return VonageSelfieSegmentationVersion;default:return""}}initialize(X){return new Promise(async(g,G)=>{if(X.mediaPipeModelConfigArray.length==0){G("no model was selected");return}for(let S=0;S<X.mediaPipeModelConfigArray.length;S++){const T=X.mediaPipeModelConfigArray[S];if(this.mediapipeMap_.has(T.modelType)){G("setting same type is not supported");return}if(typeof T.listener!="function"){G(`[${T.modelType}] ResultsListener must be provided`);return}let J;switch(T.modelType){case"face_mesh":J=new VonageFaceMash({locateFile:(K,U)=>(T.assetsUri||Qn.defaultAssetsBaseUrl+"face_mesh/"+this.getVersion("face_mesh"))+"/"+K});break;case"face_detection":J=new VonageFaceDetection({locateFile:(K,U)=>(T.assetsUri||Qn.defaultAssetsBaseUrl+"face_detection/"+this.getVersion("face_detection"))+"/"+K});break;case"hands":J=new VonageHands({locateFile:(K,U)=>(T.assetsUri||Qn.defaultAssetsBaseUrl+"hands/"+this.getVersion("hands"))+"/"+K});break;case"holistic":J=new VonageHolistic({locateFile:(K,U)=>(T.assetsUri||Qn.defaultAssetsBaseUrl+"holistic/"+this.getVersion("holistic"))+"/"+K});break;case"objectron":J=new VonageObjectron({locateFile:(K,U)=>(T.assetsUri||Qn.defaultAssetsBaseUrl+"objectron/"+this.getVersion("objectron"))+"/"+K});break;case"selfie_segmentation":J=new VonageSelfieSegmentation({locateFile:(K,U)=>(T.assetsUri||Qn.defaultAssetsBaseUrl+"selfie_segmentation/"+this.getVersion("selfie_segmentation"))+"/"+K});break;default:G("unknown model type");return}J.onResults(T.listener),T.options&&J.setOptions(T.options);try{await J.initialize(),this.mediapipeMap_.set(T.modelType,J)}catch(K){G(K);return}}g()})}close(X){return new Promise((g,G)=>{let S=[];if(X){let T=this.mediapipeMap_.get(X);if(T)this.mediapipeMap_.delete(X),S.push(T.close());else{G("model not exit");return}}else{for(const[T,J]of this.mediapipeMap_.entries())S.push(J.close());this.mediapipeMap_.clear()}Promise.all(S).then(()=>{g()}).catch(T=>{G(T)})})}send(X,g){return new Promise((G,S)=>{let T=[];if(g){let J=this.mediapipeMap_.get(g);if(J)T.push(J.send({image:X}));else{S("model not exit");return}}else for(const[J,K]of this.mediapipeMap_.entries())T.push(K.send({image:X}));Promise.all(T).then(()=>{G()}).catch(J=>{S(J)})})}reset(X){if(X){let g=this.mediapipeMap_.get(X);g&&typeof g.reset=="function"&&g.reset()}else for(const[g,G]of this.mediapipeMap_.entries())G&&typeof G.reset=="function"&&G.reset()}};let Br=Qn;Br.defaultAssetsBaseUrl="https://d3opqjmqzxf057.cloudfront.net/ml/mediapipe/";class Fi{static createVideoReadable(g){return new Promise((G,S)=>{const T=document.createElement("video");let J=new AbortController,K=new AbortController;T.addEventListener("canplay",()=>{J.abort(),T.muted=!0,T.loop=!0,T.play().then(()=>{try{const U=T.captureStream(),et=new MediaStreamTrackProcessor(U.getVideoTracks()[0]);G(et.readable)}catch(U){S(U)}})},{once:!0,signal:K.signal}),T.addEventListener("error",U=>{K.abort(),S("loading error:"+U)},{once:!0,signal:J.signal}),T.src=g})}static createImageCanvas(g){return new Promise((G,S)=>{var T=new Image;T.onload=function(){createImageBitmap(T).then(J=>{T.remove(),G(J)}).catch(J=>{S(J)})},T.onerror=function(J){S(J)},T.src=g})}}class _o extends Ti{constructor(){super(),this.worker_=new Bo,this.trackExpectedRate_=-1,this.workerInited_=!1,this.mediapipeHelper_=new Br,this.innerEmitty_=new Ti,this.worker_.addEventListener("message",g=>{if(g.data instanceof ImageBitmap)this.mediapipeHelper_.send(g.data).then(()=>{g.data.close()}).catch(G=>{let S={error:G,eventMetaData:{transformerIndex:-1},function:"transform"};this.emit("error",S)});else{let G=JSON.parse(g.data);if(G.callbackType==="success"||G.callbackType==="error")G.message==="init"?this.innerEmitty_.emit("initResults",g.data):G.message==="transform"?this.innerEmitty_.emit("transformResults",g.data):G.message==="destroy"?this.innerEmitty_.emit("destroyResults",g.data):G.message==="setBackgroundOptions"?this.innerEmitty_.emit("setBackgroundOptionsResults",g.data):G.message==="setVideoBGReadable"?this.innerEmitty_.emit("setVideoBGReadableResults",g.data):G.message==="setVirtualBGImage"&&this.innerEmitty_.emit("setVirtualBGImageResults",g.data);else if(G.callbackType==="media_processor_error_event")this.emit("error",G.message);else if(G.callbackType==="media_processor_warn_event")this.emit("warn",G.message);else if(G.callbackType==="media_processor_pipeline_event"){this.emit("pipelineInfo",G.message);let S=G.message;(S.message==="pipeline_ended"||S.message==="pipeline_ended_with_error")&&this.mediapipeHelper_.close().finally(()=>{this.worker_&&(this.cleanInnerEmitty(),this.worker_.terminate(),this.workerInited_=!1,this.worker_=void 0)})}}})}cleanInnerEmitty(){let g="Worker ended";this.innerEmitty_.listenerCount("initResults")&&this.innerEmitty_.emit("initResults",JSON.stringify({error:g})),this.innerEmitty_.listenerCount("destroyResults")&&this.innerEmitty_.emit("destroyResults",JSON.stringify({error:g})),this.innerEmitty_.listenerCount("setBackgroundOptionsResults")&&this.innerEmitty_.emit("setBackgroundOptionsResults",JSON.stringify({error:g})),this.innerEmitty_.listenerCount("setVideoBGReadableResults")&&this.innerEmitty_.emit("setVideoBGReadableResults",JSON.stringify({error:g})),this.innerEmitty_.listenerCount("setVirtualBGImageResults")&&this.innerEmitty_.emit("setVirtualBGImageResults",JSON.stringify({error:g})),this.innerEmitty_.listenerCount("transformResults")&&this.innerEmitty_.emit("transformResults",JSON.stringify({error:g}))}init(g){return new Promise((G,S)=>{if(!this.worker_){S("worker is off");return}let T={modelSelection:1,selfieMode:!1};this.mediapipeHelper_.initialize({mediaPipeModelConfigArray:[{assetsUri:g.mediapipeBaseAssetsUri,modelType:"selfie_segmentation",options:T,listener:J=>{let K=J;this.worker_&&this.worker_.postMessage(K.segmentationMask,[K.segmentationMask])}}]}).then(()=>{let J=JSON.stringify(jo());if(typeof J!="string"&&(J=JSON.stringify({})),!this.worker_){S("worker is off");return}this.worker_.postMessage({operation:"init",metaData:J}),this.innerEmitty_.once("initResults").then(K=>{let U=JSON.parse(K);U.callbackType==="success"?(this.workerInited_=!0,this.trackExpectedRate_!=-1&&this.postTrackExpectedRate(),this.setBackgroundOptions(g).then(()=>{G()}).catch(et=>{S(et)})):S(U.error)}).catch(K=>{S(K)})}).catch(J=>{S(J)})})}transform(g,G){return new Promise(async(S,T)=>{if(!this.worker_){T("worker is off");return}this.worker_.postMessage({operation:"transform",readable:g,writable:G},[g,G]),this.innerEmitty_.once("transformResults").then(J=>{let K=JSON.parse(J);K.callbackType==="success"?S():T(K.error)}).catch(J=>{T(J)})})}destroy(){return new Promise(async(g,G)=>{if(!this.worker_){g();return}this.worker_.postMessage({operation:"destroy"}),this.innerEmitty_.once("destroyResults").then(S=>{let T=JSON.parse(S);T.callbackType==="success"?this.mediapipeHelper_.close().then(()=>{g()}).catch(J=>{G(J)}):G(T.error)}).catch(S=>{G(S)})})}setTrackExpectedRate(g){this.trackExpectedRate_=g,this.postTrackExpectedRate()}postTrackExpectedRate(){this.workerInited_&&this.worker_.postMessage({operation:"setTrackExpectedRate",rate:this.trackExpectedRate_})}setBackgroundOptions(g){return new Promise((G,S)=>{if(!this.worker_){S("worker is off");return}this.worker_.postMessage({operation:"setBackgroundOptions",backgroundOptions:JSON.stringify(g)}),this.innerEmitty_.once("setBackgroundOptionsResults").then(T=>{let J=JSON.parse(T);J.callbackType==="success"?g.transformerType==="VideoBackground"?Fi.createVideoReadable(g.backgroundAssetUri).then(K=>{if(!this.worker_){S("worker is off");return}this.worker_.postMessage({operation:"setVideoBGReadable",readable:K},[K]),this.innerEmitty_.once("setVideoBGReadableResults").then(U=>{let et=JSON.parse(U);et.callbackType==="success"?G():S(et.error)}).catch(U=>{S(U)})}).catch(K=>{S(K)}):g.transformerType==="VirtualBackground"?Fi.createImageCanvas(g.backgroundAssetUri).then(K=>{if(!this.worker_){S("worker is off");return}this.worker_.postMessage({operation:"setVirtualBGImage",image:K},[K]),this.innerEmitty_.once("setVirtualBGImageResults").then(U=>{let et=JSON.parse(U);et.callbackType==="success"?G():S(et.error)}).catch(U=>{S(U)})}).catch(K=>{S(K)}):G():S(J.error)}).catch(T=>{S(T)})})}}var xi=(X=>(X.Low="Low",X.High="High",X))(xi||{});const Mo=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]));function Qo(){return new Promise(async(X,g)=>{try{await or()}catch(G){g(G);return}Mo().then(G=>{if(G===!1){g("Your browser does not support WebAssembly features.");return}X()}).catch(G=>{g(G)})})}let On,Tr=-1;function Do(){return On}function $o(X){Tr=X,typeof On!="undefined"&&On.setTrackExpectedRate(Tr)}function qo(X){return new Promise(async(g,G)=>{On=new _o,Tr!=-1&&On.setTrackExpectedRate(Tr),On.init(X).then(()=>{const S=new Po(On);g(S)}).catch(S=>{G(S)})})}function t2(X){return new Promise((g,G)=>{On?On.setBackgroundOptions(X).then(()=>{g()}).catch(S=>{G(S)}):G("media processor is not set")})}Un.BlurRadius=xi,Un.MediapipeHelper=Br,Un.createVonageMediaProcessorConnector=qo,Un.getVonageEventEmitter=Do,Un.isSupported=Qo,Un.setBackgroundOptions=t2,Un.setTrackExpectedRate=$o,Object.defineProperties(Un,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
106
|
+
`+s.getProgramInfoLog(T));h=t.m=T,s.useProgram(h),X=s.getUniformLocation(h,"sampler0"),t.j={J:s.getAttribLocation(h,"aVertex"),I:s.getAttribLocation(h,"aTex"),ja:X},t.s=s.createBuffer(),s.bindBuffer(s.ARRAY_BUFFER,t.s),s.enableVertexAttribArray(t.j.J),s.vertexAttribPointer(t.j.J,2,s.FLOAT,!1,0,0),s.bufferData(s.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),s.STATIC_DRAW),s.bindBuffer(s.ARRAY_BUFFER,null),t.o=s.createBuffer(),s.bindBuffer(s.ARRAY_BUFFER,t.o),s.enableVertexAttribArray(t.j.I),s.vertexAttribPointer(t.j.I,2,s.FLOAT,!1,0,0),s.bufferData(s.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),s.STATIC_DRAW),s.bindBuffer(s.ARRAY_BUFFER,null),s.uniform1i(X,0)}h=t.j,s.useProgram(t.m),s.canvas.width=o.width,s.canvas.height=o.height,s.viewport(0,0,o.width,o.height),s.activeTexture(s.TEXTURE0),t.h.bindTexture2d(o.glName),s.enableVertexAttribArray(h.J),s.bindBuffer(s.ARRAY_BUFFER,t.s),s.vertexAttribPointer(h.J,2,s.FLOAT,!1,0,0),s.enableVertexAttribArray(h.I),s.bindBuffer(s.ARRAY_BUFFER,t.o),s.vertexAttribPointer(h.I,2,s.FLOAT,!1,0,0),s.bindFramebuffer(s.DRAW_FRAMEBUFFER?s.DRAW_FRAMEBUFFER:s.FRAMEBUFFER,null),s.clearColor(0,0,0,0),s.clear(s.COLOR_BUFFER_BIT),s.colorMask(!0,!0,!0,!0),s.drawArrays(s.TRIANGLE_FAN,0,4),s.disableVertexAttribArray(h.J),s.disableVertexAttribArray(h.I),s.bindBuffer(s.ARRAY_BUFFER,null),t.h.bindTexture2d(0)}function lt(t){this.g=t}var dt=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function xt(t,o){return o+t}function yt(t,o){window[t]=o}function it(t){var o=document.createElement("script");return o.setAttribute("src",t),o.setAttribute("crossorigin","anonymous"),new Promise(function(s){o.addEventListener("load",function(){s()},!1),o.addEventListener("error",function(){s()},!1),document.body.appendChild(o)})}function gt(){return ht(function(t){switch(t.g){case 1:return t.m=2,$(t,WebAssembly.instantiate(dt),4);case 4:t.g=3,t.m=0;break;case 2:return t.m=0,t.j=null,t.return(!1);case 3:return t.return(!0)}})}function vt(t){if(this.g=t,this.listeners={},this.j={},this.G={},this.m={},this.s={},this.H=this.o=this.S=!0,this.D=Promise.resolve(),this.R="",this.C={},this.locateFile=t&&t.locateFile||xt,typeof window=="object")var o=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")o=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.T=o,t.options){o=C(Object.keys(t.options));for(var s=o.next();!s.done;s=o.next()){s=s.value;var h=t.options[s].default;h!==void 0&&(this.j[s]=typeof h=="function"?h():h)}}}V=vt.prototype,V.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function Gt(t){var o,s,h,X,T,F,U,O,B,M,nt;return ht(function(ot){switch(ot.g){case 1:return t.S?(o=t.g.files===void 0?[]:typeof t.g.files=="function"?t.g.files(t.j):t.g.files,$(ot,gt(),2)):ot.return();case 2:if(s=ot.h,typeof window=="object")return yt("createMediapipeSolutionsWasm",{locateFile:t.locateFile}),yt("createMediapipeSolutionsPackedAssets",{locateFile:t.locateFile}),F=o.filter(function(ut){return ut.data!==void 0}),U=o.filter(function(ut){return ut.data===void 0}),O=Promise.all(F.map(function(ut){var ft=g(t,ut.url);if(ut.path!==void 0){var at=ut.path;ft=ft.then(function(Nt){return t.overrideFile(at,Nt),Promise.resolve(Nt)})}return ft})),B=Promise.all(U.map(function(ut){return ut.simd===void 0||ut.simd&&s||!ut.simd&&!s?it(t.locateFile(ut.url,t.T)):Promise.resolve()})).then(function(){var ut,ft,at;return ht(function(Nt){if(Nt.g==1)return ut=window.createMediapipeSolutionsWasm,ft=window.createMediapipeSolutionsPackedAssets,at=t,$(Nt,ut(ft),2);at.h=Nt.h,Nt.g=0})}),M=function(){return ht(function(ut){return t.g.graph&&t.g.graph.url?ut=$(ut,g(t,t.g.graph.url),0):(ut.g=0,ut=void 0),ut})}(),$(ot,Promise.all([B,O,M]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return h=o.filter(function(ut){return ut.simd===void 0||ut.simd&&s||!ut.simd&&!s}).map(function(ut){return t.locateFile(ut.url,t.T)}),importScripts.apply(null,pt(h)),X=t,$(ot,createMediapipeSolutionsWasm(Module),6);case 6:X.h=ot.h,t.l=new OffscreenCanvas(1,1),t.h.canvas=t.l,T=t.h.GL.createContext(t.l,{antialias:!1,alpha:!1,ga:typeof WebGL2RenderingContext!="undefined"?2:1}),t.h.GL.makeContextCurrent(T),ot.g=4;break;case 7:if(t.l=document.createElement("canvas"),nt=t.l.getContext("webgl2",{}),!nt&&(nt=t.l.getContext("webgl",{}),!nt))return alert("Failed to create WebGL canvas context when passing video frame."),ot.return();t.F=nt,t.h.canvas=t.l,t.h.createContext(t.l,!0,!0,{});case 4:t.i=new t.h.SolutionWasm,t.S=!1,ot.g=0}})}function Xt(t){var o,s,h,X,T,F,U,O;return ht(function(B){if(B.g==1){if(t.g.graph&&t.g.graph.url&&t.R===t.g.graph.url)return B.return();if(t.o=!0,!t.g.graph||!t.g.graph.url){B.g=2;return}return t.R=t.g.graph.url,$(B,g(t,t.g.graph.url),3)}for(B.g!=2&&(o=B.h,t.i.loadGraph(o)),s=C(Object.keys(t.C)),h=s.next();!h.done;h=s.next())X=h.value,t.i.overrideFile(X,t.C[X]);if(t.C={},t.g.listeners)for(T=C(t.g.listeners),F=T.next();!F.done;F=T.next())U=F.value,E(t,U);O=t.j,t.j={},t.setOptions(O),B.g=0})}V.reset=function(){var t=this;return ht(function(o){t.i&&(t.i.reset(),t.m={},t.s={}),o.g=0})},V.setOptions=function(t,o){var s=this;if(o=o||this.g.options){for(var h=[],X=[],T={},F=C(Object.keys(t)),U=F.next();!U.done;T={L:T.L,M:T.M},U=F.next()){var O=U.value;O in this.j&&this.j[O]===t[O]||(this.j[O]=t[O],U=o[O],U!==void 0&&(U.onChange&&(T.L=U.onChange,T.M=t[O],h.push(function(B){return function(){var M;return ht(function(nt){if(nt.g==1)return $(nt,B.L(B.M),2);M=nt.h,M===!0&&(s.o=!0),nt.g=0})}}(T))),U.graphOptionXref&&(O={valueNumber:U.type===1?t[O]:0,valueBoolean:U.type===0?t[O]:!1,valueString:U.type===2?t[O]:""},U=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),U.graphOptionXref),O),X.push(U))))}(h.length!==0||X.length!==0)&&(this.o=!0,this.B=(this.B===void 0?[]:this.B).concat(X),this.A=(this.A===void 0?[]:this.A).concat(h))}};function i(t){var o,s,h,X,T,F,U;return ht(function(O){switch(O.g){case 1:if(!t.o)return O.return();if(!t.A){O.g=2;break}o=C(t.A),s=o.next();case 3:if(s.done){O.g=5;break}return h=s.value,$(O,h(),4);case 4:s=o.next(),O.g=3;break;case 5:t.A=void 0;case 2:if(t.B){for(X=new t.h.GraphOptionChangeRequestList,T=C(t.B),F=T.next();!F.done;F=T.next())U=F.value,X.push_back(U);t.i.changeOptions(X),X.delete(),t.B=void 0}t.o=!1,O.g=0}})}V.initialize=function(){var t=this;return ht(function(o){return o.g==1?$(o,Gt(t),2):o.g!=3?$(o,Xt(t),3):$(o,i(t),0)})};function g(t,o){var s,h;return ht(function(X){return o in t.G?X.return(t.G[o]):(s=t.locateFile(o,""),h=fetch(s).then(function(T){return T.arrayBuffer()}),t.G[o]=h,X.return(h))})}V.overrideFile=function(t,o){this.i?this.i.overrideFile(t,o):this.C[t]=o},V.clearOverriddenFiles=function(){this.C={},this.i&&this.i.clearOverriddenFiles()},V.send=function(t,o){var s=this,h,X,T,F,U,O,B,M,nt;return ht(function(ot){switch(ot.g){case 1:return s.g.inputs?(h=1e3*(o==null?performance.now():o),$(ot,s.D,2)):ot.return();case 2:return $(ot,s.initialize(),3);case 3:for(X=new s.h.PacketDataList,T=C(Object.keys(t)),F=T.next();!F.done;F=T.next())if(U=F.value,O=s.g.inputs[U]){t:{var ut=t[U];switch(O.type){case"video":var ft=s.m[O.stream];if(ft||(ft=new k(s.h,s.F),s.m[O.stream]=ft),ft.l===0&&(ft.l=ft.h.createTexture()),typeof HTMLVideoElement!="undefined"&&ut instanceof HTMLVideoElement)var at=ut.videoWidth,Nt=ut.videoHeight;else typeof HTMLImageElement!="undefined"&&ut instanceof HTMLImageElement?(at=ut.naturalWidth,Nt=ut.naturalHeight):(at=ut.width,Nt=ut.height);Nt={glName:ft.l,width:at,height:Nt},at=ft.g,at.canvas.width=Nt.width,at.canvas.height=Nt.height,at.activeTexture(at.TEXTURE0),ft.h.bindTexture2d(ft.l),at.texImage2D(at.TEXTURE_2D,0,at.RGBA,at.RGBA,at.UNSIGNED_BYTE,ut),ft.h.bindTexture2d(0),ft=Nt;break t;case"detections":for(ft=s.m[O.stream],ft||(ft=new lt(s.h),s.m[O.stream]=ft),ft.data||(ft.data=new ft.g.DetectionListData),ft.data.reset(ut.length),Nt=0;Nt<ut.length;++Nt){at=ut[Nt];var _t=ft.data,Pt=_t.setBoundingBox,Xe=Nt,ln=at.U,we=new Wt;if(Rt(we,1,ln.aa),Rt(we,2,ln.ba),Rt(we,3,ln.height),Rt(we,4,ln.width),Rt(we,5,ln.rotation),Rt(we,6,ln.Z),ln=rn(we,Tt),Pt.call(_t,Xe,ln),at.P)for(_t=0;_t<at.P.length;++_t){we=at.P[_t];var wn=!!we.visibility;Pt=ft.data,Xe=Pt.addNormalizedLandmark,ln=Nt,we=Object.assign(Object.assign({},we),{visibility:wn?we.visibility:0}),wn=new tt,Rt(wn,1,we.x),Rt(wn,2,we.y),Rt(wn,3,we.z),we.visibility&&Rt(wn,4,we.visibility),we=rn(wn,mt),Xe.call(Pt,ln,we)}if(at.N)for(_t=0;_t<at.N.length;++_t)Pt=ft.data,Xe=Pt.addClassification,ln=Nt,we=at.N[_t],wn=new b,Rt(wn,2,we.$),we.index&&Rt(wn,1,we.index),we.label&&Rt(wn,3,we.label),we.displayName&&Rt(wn,4,we.displayName),we=rn(wn,Y),Xe.call(Pt,ln,we)}ft=ft.data;break t;default:ft={}}}switch(B=ft,M=O.stream,O.type){case"video":X.pushTexture2d(Object.assign(Object.assign({},B),{stream:M,timestamp:h}));break;case"detections":nt=B,nt.stream=M,nt.timestamp=h,X.pushDetectionList(nt);break;default:throw Error("Unknown input config type: '"+O.type+"'")}}return s.i.send(X),$(ot,s.D,4);case 4:X.delete(),ot.g=0}})};function R(t,o,s){var h,X,T,F,U,O,B,M,nt,ot,ut,ft,at,Nt;return ht(function(_t){switch(_t.g){case 1:if(!s)return _t.return(o);for(h={},X=0,T=C(Object.keys(s)),F=T.next();!F.done;F=T.next())U=F.value,O=s[U],typeof O!="string"&&O.type==="texture"&&o[O.stream]!==void 0&&++X;1<X&&(t.H=!1),B=C(Object.keys(s)),F=B.next();case 2:if(F.done){_t.g=4;break}if(M=F.value,nt=s[M],typeof nt=="string")return at=h,Nt=M,$(_t,w(t,M,o[nt]),14);if(ot=o[nt.stream],nt.type==="detection_list"){if(ot){for(var Pt=ot.getRectList(),Xe=ot.getLandmarksList(),ln=ot.getClassificationsList(),we=[],wn=0;wn<Pt.size();++wn){var Mn=fn(Pt.get(wn),Wt,Zt);Mn={U:{aa:kt(Mn,1),ba:kt(Mn,2),height:kt(Mn,3),width:kt(Mn,4),rotation:kt(Mn,5,0),Z:Ne(Mn,6)},P:Se(fn(Xe.get(wn),Ft,wt),tt,1).map(J),N:N(fn(ln.get(wn),_,et))},we.push(Mn)}Pt=we}else Pt=[];h[M]=Pt,_t.g=7;break}if(nt.type==="proto_list"){if(ot){for(Pt=Array(ot.size()),Xe=0;Xe<ot.size();Xe++)Pt[Xe]=ot.get(Xe);ot.delete()}else Pt=[];h[M]=Pt,_t.g=7;break}if(ot===void 0){_t.g=3;break}if(nt.type==="float_list"){h[M]=ot,_t.g=7;break}if(nt.type==="proto"){h[M]=ot,_t.g=7;break}if(nt.type!=="texture")throw Error("Unknown output config type: '"+nt.type+"'");return ut=t.s[M],ut||(ut=new k(t.h,t.F),t.s[M]=ut),$(_t,q(ut,ot,t.H),13);case 13:ft=_t.h,h[M]=ft;case 7:nt.transform&&h[M]&&(h[M]=nt.transform(h[M])),_t.g=3;break;case 14:at[Nt]=_t.h;case 3:F=B.next(),_t.g=2;break;case 4:return _t.return(h)}})}function w(t,o,s){var h;return ht(function(X){return typeof s=="number"||s instanceof Uint8Array||s instanceof t.h.Uint8BlobList?X.return(s):s instanceof t.h.Texture2dDataOut?(h=t.s[o],h||(h=new k(t.h,t.F),t.s[o]=h),X.return(q(h,s,t.H))):X.return(void 0)})}function E(t,o){for(var s=o.name||"$",h=[].concat(pt(o.wants)),X=new t.h.StringList,T=C(o.wants),F=T.next();!F.done;F=T.next())X.push_back(F.value);T=t.h.PacketListener.implement({onResults:function(U){for(var O={},B=0;B<o.wants.length;++B)O[h[B]]=U.get(B);var M=t.listeners[s];M&&(t.D=R(t,O,o.outs).then(function(nt){nt=M(nt);for(var ot=0;ot<o.wants.length;++ot){var ut=O[h[ot]];typeof ut=="object"&&ut.hasOwnProperty&&ut.hasOwnProperty("delete")&&ut.delete()}nt&&(t.D=nt)}))}}),t.i.attachMultiListener(X,T),X.delete()}V.onResults=function(t,o){this.listeners[o||"$"]=t},St("Solution",vt),St("OptionType",{BOOL:0,NUMBER:1,ca:2,0:"BOOL",1:"NUMBER",2:"STRING"});function n(t){var o=Ne(t,1),s=Oe(t,c,3);return s={x:kt(s,1),y:kt(s,2),depth:kt(s,3)},t=Oe(t,m,2),{id:o,point2d:s,point3d:{x:kt(t,1),y:kt(t,2),z:kt(t,3)}}}function l(t){var o=fn(t,r,y);t=[],o=Se(o,j,2);for(var s=0;s<o.length;s++)t.push({id:Ne(o[s],1),keypoints:Se(o[s],H,2).map(n),visibility:kt(o[s],3),scale:Le(o[s],6),translation:Le(o[s],5),rotation:Le(o[s],4)});return t}function d(t){switch(t){case"Camera":return"object_detection_3d_camera.tflite";case"Chair":return"object_detection_3d_chair.tflite";case"Cup":return"object_detection_3d_cup.tflite";default:return"object_detection_3d_sneakers.tflite"}}function e(t){switch(t){case"Camera":return"Camera";case"Chair":return"Chair";case"Cup":return"Coffee cup, Mug";default:return"Footwear"}}var u={focalX:{type:1,graphOptionXref:{calculatorType:"Lift2DFrameAnnotationTo3DCalculator",fieldName:"normalized_focal_x"}},focalY:{type:1,graphOptionXref:{calculatorType:"Lift2DFrameAnnotationTo3DCalculator",fieldName:"normalized_focal_y"}},principalX:{type:1,graphOptionXref:{calculatorType:"Lift2DFrameAnnotationTo3DCalculator",fieldName:"normalized_principal_point_x"}},principalY:{type:1,graphOptionXref:{calculatorType:"Lift2DFrameAnnotationTo3DCalculator",fieldName:"normalized_principal_point_y"}},allowedLabels:{type:2,graphOptionXref:{calculatorName:"ConstantSidePacketCalculatorAllowedLabels",calculatorType:"ConstantSidePacketCalculator",fieldName:"string_value"}}};function a(t){var o=this;t=t||{},this.g=new vt({locateFile:t.locateFile,files:[{url:"objectron_solution_packed_assets_loader.js"},{simd:!1,url:"objectron_solution_wasm_bin.js"},{simd:!0,url:"objectron_solution_simd_wasm_bin.js"}],graph:{url:"objectron.binarypb"},inputs:{image:{type:"video",stream:"input_frames_gpu"}},listeners:[{wants:["lifted_objects","image_transformed"],outs:{image:"image_transformed",objectDetections:{type:"proto",stream:"lifted_objects",transform:l}}}],options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:typeof window!="object"||window.navigator===void 0?!1:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,default:!1,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},maxNumObjects:{type:1,default:5,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorMaxNumObjects",fieldName:"int_value"}},staticImageMode:{type:0,default:!0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"objectrongpusubgraph__ConstantSidePacketCalculator",fieldName:"bool_value"}},minDetectionConfidence:{type:1,default:.5,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"objectrongpusubgraph__objectdetectionoidv4subgraph__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,default:.99,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"objectrongpusubgraph__boxlandmarksubgraph__ThresholdingCalculator",fieldName:"threshold"}},modelName:{default:"Shoe",onChange:function(s){var h,X,T,F;return ht(function(U){return U.g==1?(h=s,o.g.setOptions({allowedLabels:e(h)},u),X=d(h),T="object_detection_3d.tflite",$(U,g(o.g,X),2)):(F=U.h,o.g.overrideFile(T,F),U.return(!0))})}},focalLength:{default:[1,1],onChange:function(s){var h;return ht(function(X){return h=s,o.h=h,o.g.setOptions({focalX:h[0],focalY:h[1]},u),X.return(!0)})}},principalPoint:{default:[0,0],onChange:function(s){var h;return ht(function(X){return h=s,o.i=h,o.g.setOptions({principalX:h[0],principalY:h[1]},u),X.return(!0)})}},imageSize:{onChange:function(s){var h,X,T,F;return ht(function(U){if(o.h===void 0||o.i===void 0)return console.error('"focalLength" and "principalPoint" must be set if setting image size'),U.return();h=s,X=[h[0]/2,h[1]/2],T=[o.h[0]/X[0],o.h[1]/X[1]],F=[o.i[0]/X[0],o.i[1]/X[1]],o.setOptions({focalLength:T,principalPoint:F}),U.g=0})}}}})}V=a.prototype,V.close=function(){return this.g.close(),Promise.resolve()},V.onResults=function(t){this.g.onResults(t)},V.initialize=function(){var t=this;return ht(function(o){return $(o,t.g.initialize(),0)})},V.reset=function(){this.g.reset()},V.send=function(t){var o=this;return ht(function(s){return $(s,o.g.send(t),0)})},V.setOptions=function(t){this.g.setOptions(t)},St("Objectron",a),St("BOX_CONNECTIONS",[[1,2],[2,4],[4,3],[3,1],[5,6],[6,8],[8,7],[7,5],[1,5],[2,6],[3,7],[4,8]]),St("BOX_KEYPOINTS",{CENTER:0,BACK_BOTTOM_LEFT:1,FRONT_BOTTOM_LEFT:2,BACK_TOP_LEFT:3,FRONT_TOP_LEFT:4,BACK_BOTTOM_RIGHT:5,FRONT_BOTTOM_RIGHT:6,BACK_TOP_RIGHT:7,FRONT_TOP_RIGHT:8}),St("VERSION","0.4.1636596145")}).call(Ir);const Nr={};(function(){var V;function v(r){var y=0;return function(){return y<r.length?{done:!1,value:r[y++]}:{done:!0}}}var W=typeof Object.defineProperties=="function"?Object.defineProperty:function(r,y,G){return r==Array.prototype||r==Object.prototype||(r[y]=G.value),r};function I(r){r=[typeof globalThis=="object"&&globalThis,r,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var y=0;y<r.length;++y){var G=r[y];if(G&&G.Math==Math)return G}throw Error("Cannot find global object")}var x=I(this);function A(r,y){if(y)t:{var G=x;r=r.split(".");for(var S=0;S<r.length-1;S++){var N=r[S];if(!(N in G))break t;G=G[N]}r=r[r.length-1],S=G[r],y=y(S),y!=S&&y!=null&&W(G,r,{configurable:!0,writable:!0,value:y})}}A("Symbol",function(r){function y(J){if(this instanceof y)throw new TypeError("Symbol is not a constructor");return new G(S+(J||"")+"_"+N++,J)}function G(J,k){this.g=J,W(this,"description",{configurable:!0,writable:!0,value:k})}if(r)return r;G.prototype.toString=function(){return this.g};var S="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",N=0;return y}),A("Symbol.iterator",function(r){if(r)return r;r=Symbol("Symbol.iterator");for(var y="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),G=0;G<y.length;G++){var S=x[y[G]];typeof S=="function"&&typeof S.prototype[r]!="function"&&W(S.prototype,r,{configurable:!0,writable:!0,value:function(){return Q(v(this))}})}return r});function Q(r){return r={next:r},r[Symbol.iterator]=function(){return this},r}function C(r){var y=typeof Symbol!="undefined"&&Symbol.iterator&&r[Symbol.iterator];return y?y.call(r):{next:v(r)}}function pt(r){if(!(r instanceof Array)){r=C(r);for(var y,G=[];!(y=r.next()).done;)G.push(y.value);r=G}return r}var _e=typeof Object.create=="function"?Object.create:function(r){function y(){}return y.prototype=r,new y},ct;if(typeof Object.setPrototypeOf=="function")ct=Object.setPrototypeOf;else{var jt;t:{var qe={a:!0},fe={};try{fe.__proto__=qe,jt=fe.a;break t}catch{}jt=!1}ct=jt?function(r,y){if(r.__proto__=y,r.__proto__!==y)throw new TypeError(r+" is not extensible");return r}:null}var He=ct;function Lt(r,y){if(r.prototype=_e(y.prototype),r.prototype.constructor=r,He)He(r,y);else for(var G in y)if(G!="prototype")if(Object.defineProperties){var S=Object.getOwnPropertyDescriptor(y,G);S&&Object.defineProperty(r,G,S)}else r[G]=y[G];r.ea=y.prototype}function ue(){this.l=!1,this.i=null,this.h=void 0,this.g=1,this.s=this.m=0,this.j=null}function pe(r){if(r.l)throw new TypeError("Generator is already running");r.l=!0}ue.prototype.o=function(r){this.h=r};function he(r,y){r.j={U:y,V:!0},r.g=r.m||r.s}ue.prototype.return=function(r){this.j={return:r},this.g=this.s};function $(r,y,G){return r.g=G,{value:y}}function Fn(r){this.g=new ue,this.h=r}function Hn(r,y){pe(r.g);var G=r.g.i;return G?je(r,"return"in G?G.return:function(S){return{value:S,done:!0}},y,r.g.return):(r.g.return(y),ee(r))}function je(r,y,G,S){try{var N=y.call(r.g.i,G);if(!(N instanceof Object))throw new TypeError("Iterator result "+N+" is not an object");if(!N.done)return r.g.l=!1,N;var J=N.value}catch(k){return r.g.i=null,he(r.g,k),ee(r)}return r.g.i=null,S.call(r.g,J),ee(r)}function ee(r){for(;r.g.g;)try{var y=r.h(r.g);if(y)return r.g.l=!1,{value:y.value,done:!1}}catch(G){r.g.h=void 0,he(r.g,G)}if(r.g.l=!1,r.g.j){if(y=r.g.j,r.g.j=null,y.V)throw y.U;return{value:y.return,done:!0}}return{value:void 0,done:!0}}function jn(r){this.next=function(y){return pe(r.g),r.g.i?y=je(r,r.g.i.next,y,r.g.o):(r.g.o(y),y=ee(r)),y},this.throw=function(y){return pe(r.g),r.g.i?y=je(r,r.g.i.throw,y,r.g.o):(he(r.g,y),y=ee(r)),y},this.return=function(y){return Hn(r,y)},this[Symbol.iterator]=function(){return this}}function te(r){function y(S){return r.next(S)}function G(S){return r.throw(S)}return new Promise(function(S,N){function J(k){k.done?S(k.value):Promise.resolve(k.value).then(y,G).then(J,N)}J(r.next())})}function ht(r){return te(new jn(new Fn(r)))}A("Promise",function(r){function y(k){this.h=0,this.i=void 0,this.g=[],this.o=!1;var q=this.j();try{k(q.resolve,q.reject)}catch(z){q.reject(z)}}function G(){this.g=null}function S(k){return k instanceof y?k:new y(function(q){q(k)})}if(r)return r;G.prototype.h=function(k){if(this.g==null){this.g=[];var q=this;this.i(function(){q.l()})}this.g.push(k)};var N=x.setTimeout;G.prototype.i=function(k){N(k,0)},G.prototype.l=function(){for(;this.g&&this.g.length;){var k=this.g;this.g=[];for(var q=0;q<k.length;++q){var z=k[q];k[q]=null;try{z()}catch(lt){this.j(lt)}}}this.g=null},G.prototype.j=function(k){this.i(function(){throw k})},y.prototype.j=function(){function k(lt){return function(dt){z||(z=!0,lt.call(q,dt))}}var q=this,z=!1;return{resolve:k(this.C),reject:k(this.l)}},y.prototype.C=function(k){if(k===this)this.l(new TypeError("A Promise cannot resolve to itself"));else if(k instanceof y)this.F(k);else{t:switch(typeof k){case"object":var q=k!=null;break t;case"function":q=!0;break t;default:q=!1}q?this.v(k):this.m(k)}},y.prototype.v=function(k){var q=void 0;try{q=k.then}catch(z){this.l(z);return}typeof q=="function"?this.G(q,k):this.m(k)},y.prototype.l=function(k){this.s(2,k)},y.prototype.m=function(k){this.s(1,k)},y.prototype.s=function(k,q){if(this.h!=0)throw Error("Cannot settle("+k+", "+q+"): Promise already settled in state"+this.h);this.h=k,this.i=q,this.h===2&&this.D(),this.A()},y.prototype.D=function(){var k=this;N(function(){if(k.B()){var q=x.console;typeof q!="undefined"&&q.error(k.i)}},1)},y.prototype.B=function(){if(this.o)return!1;var k=x.CustomEvent,q=x.Event,z=x.dispatchEvent;return typeof z=="undefined"?!0:(typeof k=="function"?k=new k("unhandledrejection",{cancelable:!0}):typeof q=="function"?k=new q("unhandledrejection",{cancelable:!0}):(k=x.document.createEvent("CustomEvent"),k.initCustomEvent("unhandledrejection",!1,!0,k)),k.promise=this,k.reason=this.i,z(k))},y.prototype.A=function(){if(this.g!=null){for(var k=0;k<this.g.length;++k)J.h(this.g[k]);this.g=null}};var J=new G;return y.prototype.F=function(k){var q=this.j();k.J(q.resolve,q.reject)},y.prototype.G=function(k,q){var z=this.j();try{k.call(q,z.resolve,z.reject)}catch(lt){z.reject(lt)}},y.prototype.then=function(k,q){function z(yt,it){return typeof yt=="function"?function(gt){try{lt(yt(gt))}catch(vt){dt(vt)}}:it}var lt,dt,xt=new y(function(yt,it){lt=yt,dt=it});return this.J(z(k,lt),z(q,dt)),xt},y.prototype.catch=function(k){return this.then(void 0,k)},y.prototype.J=function(k,q){function z(){switch(lt.h){case 1:k(lt.i);break;case 2:q(lt.i);break;default:throw Error("Unexpected state: "+lt.h)}}var lt=this;this.g==null?J.h(z):this.g.push(z),this.o=!0},y.resolve=S,y.reject=function(k){return new y(function(q,z){z(k)})},y.race=function(k){return new y(function(q,z){for(var lt=C(k),dt=lt.next();!dt.done;dt=lt.next())S(dt.value).J(q,z)})},y.all=function(k){var q=C(k),z=q.next();return z.done?S([]):new y(function(lt,dt){function xt(gt){return function(vt){yt[gt]=vt,it--,it==0&<(yt)}}var yt=[],it=0;do yt.push(void 0),it++,S(z.value).J(xt(yt.length-1),dt),z=q.next();while(!z.done)})},y});function Jn(r,y){r instanceof String&&(r+="");var G=0,S=!1,N={next:function(){if(!S&&G<r.length){var J=G++;return{value:y(J,r[J]),done:!1}}return S=!0,{done:!0,value:void 0}}};return N[Symbol.iterator]=function(){return N},N}var Cn=typeof Object.assign=="function"?Object.assign:function(r,y){for(var G=1;G<arguments.length;G++){var S=arguments[G];if(S)for(var N in S)Object.prototype.hasOwnProperty.call(S,N)&&(r[N]=S[N])}return r};A("Object.assign",function(r){return r||Cn}),A("Object.is",function(r){return r||function(y,G){return y===G?y!==0||1/y===1/G:y!==y&&G!==G}}),A("Array.prototype.includes",function(r){return r||function(y,G){var S=this;S instanceof String&&(S=String(S));var N=S.length;for(G=G||0,0>G&&(G=Math.max(G+N,0));G<N;G++){var J=S[G];if(J===y||Object.is(J,y))return!0}return!1}}),A("String.prototype.includes",function(r){return r||function(y,G){if(this==null)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(y instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return this.indexOf(y,G||0)!==-1}}),A("Array.prototype.keys",function(r){return r||function(){return Jn(this,function(y){return y})}});var ye=this||self;function St(r,y){r=r.split(".");var G=ye;r[0]in G||typeof G.execScript=="undefined"||G.execScript("var "+r[0]);for(var S;r.length&&(S=r.shift());)r.length||y===void 0?G[S]&&G[S]!==Object.prototype[S]?G=G[S]:G=G[S]={}:G[S]=y}function We(r){ye.setTimeout(function(){throw r},0)}function tn(r){We(r)}function hn(r,y){tn(Error("Invalid wire type: "+r+" (at position "+y+")"))}function Wn(){tn(Error("Failed to read varint, encoding is invalid."))}function bn(r,y){return y=String.fromCharCode.apply(null,y),r==null?y:r+y}var xn,en=typeof TextDecoder!="undefined",un,In=typeof TextEncoder!="undefined";function Vn(r){if(In)r=(un||(un=new TextEncoder)).encode(r);else{var y=void 0;y=y===void 0?!1:y;for(var G=0,S=new Uint8Array(3*r.length),N=0;N<r.length;N++){var J=r.charCodeAt(N);if(128>J)S[G++]=J;else{if(2048>J)S[G++]=J>>6|192;else{if(55296<=J&&57343>=J){if(56319>=J&&N<r.length){var k=r.charCodeAt(++N);if(56320<=k&&57343>=k){J=1024*(J-55296)+k-56320+65536,S[G++]=J>>18|240,S[G++]=J>>12&63|128,S[G++]=J>>6&63|128,S[G++]=J&63|128;continue}else N--}if(y)throw Error("Found an unpaired surrogate");J=65533}S[G++]=J>>12|224,S[G++]=J>>6&63|128}S[G++]=J&63|128}}r=S.subarray(0,G)}return r}var pn={},nn=null;function Zn(r){var y;y===void 0&&(y=0),ve(),y=pn[y];for(var G=Array(Math.floor(r.length/3)),S=y[64]||"",N=0,J=0;N<r.length-2;N+=3){var k=r[N],q=r[N+1],z=r[N+2],lt=y[k>>2];k=y[(k&3)<<4|q>>4],q=y[(q&15)<<2|z>>6],z=y[z&63],G[J++]=lt+k+q+z}switch(lt=0,z=S,r.length-N){case 2:lt=r[N+1],z=y[(lt&15)<<2]||S;case 1:r=r[N],G[J]=y[r>>2]+y[(r&3)<<4|lt>>4]+z+S}return G.join("")}function dn(r){var y=r.length,G=3*y/4;G%3?G=Math.floor(G):"=.".indexOf(r[y-1])!=-1&&(G="=.".indexOf(r[y-2])!=-1?G-2:G-1);var S=new Uint8Array(G),N=0;return ce(r,function(J){S[N++]=J}),S.subarray(0,N)}function ce(r,y){function G(z){for(;S<r.length;){var lt=r.charAt(S++),dt=nn[lt];if(dt!=null)return dt;if(!/^[\s\xa0]*$/.test(lt))throw Error("Unknown base64 encoding at char: "+lt)}return z}ve();for(var S=0;;){var N=G(-1),J=G(0),k=G(64),q=G(64);if(q===64&&N===-1)break;y(N<<2|J>>4),k!=64&&(y(J<<4&240|k>>2),q!=64&&y(k<<6&192|q))}}function ve(){if(!nn){nn={};for(var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),y=["+/=","+/","-_=","-_.","-_"],G=0;5>G;G++){var S=r.concat(y[G].split(""));pn[G]=S;for(var N=0;N<S.length;N++){var J=S[N];nn[J]===void 0&&(nn[J]=N)}}}}var Pe=typeof Uint8Array=="function",le;function ae(r){if(this.g=r,r!==null&&r.length===0)throw Error("ByteString should be constructed with non-empty values")}ae.prototype.toJSON=function(){if(this.g==null)var r="";else r=this.g,r=this.g=r==null||typeof r=="string"?r:Pe&&r instanceof Uint8Array?Zn(r):null;return r};var ze=typeof Uint8Array.prototype.slice=="function";function xe(r,y,G){return y===G?le||(le=new Uint8Array(0)):ze?r.slice(y,G):new Uint8Array(r.subarray(y,G))}var Ct=0,re=0;function Ve(r){if(r.constructor===Uint8Array)return r;if(r.constructor===ArrayBuffer)return new Uint8Array(r);if(r.constructor===Array)return new Uint8Array(r);if(r.constructor===String)return dn(r);if(r.constructor===ae){if(r.g==null)var y=le||(le=new Uint8Array(0));else{y=Uint8Array;var G=r.g;G=G==null||Pe&&G!=null&&G instanceof Uint8Array?G:typeof G=="string"?dn(G):null,r=r.g=G,y=new y(r)}return y}if(r instanceof Uint8Array)return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers")}function It(r,y){y=y===void 0?{}:y,y=y.u===void 0?!1:y.u,this.h=null,this.g=this.i=this.l=0,this.j=!1,this.u=y,r&&de(this,r)}function de(r,y){r.h=Ve(y),r.l=0,r.i=r.h.length,r.g=r.l}It.prototype.reset=function(){this.g=this.l};function At(r){r.g>r.i&&(r.j=!0,tn(Error("Tried to read past the end of the data "+r.g+" > "+r.i)))}function ne(r){var y=r.h,G=y[r.g],S=G&127;return 128>G?(r.g+=1,At(r),S):(G=y[r.g+1],S|=(G&127)<<7,128>G?(r.g+=2,At(r),S):(G=y[r.g+2],S|=(G&127)<<14,128>G?(r.g+=3,At(r),S):(G=y[r.g+3],S|=(G&127)<<21,128>G?(r.g+=4,At(r),S):(G=y[r.g+4],S|=(G&15)<<28,128>G?(r.g+=5,At(r),S>>>0):(r.g+=5,128<=y[r.g++]&&128<=y[r.g++]&&128<=y[r.g++]&&128<=y[r.g++]&&128<=y[r.g++]?(r.j=!0,Wn(),S):(At(r),S))))))}var Ge=[];function Be(){this.g=new Uint8Array(64),this.h=0}function se(r,y){if(!(r.h+1<r.g.length)){var G=r.g;r.g=new Uint8Array(Math.ceil(1+2*r.g.length)),r.g.set(G)}r.g[r.h++]=y}Be.prototype.length=function(){return this.h},Be.prototype.end=function(){var r=this.g,y=this.h;return this.h=0,xe(r,0,y)};function Yt(r,y){for(;127<y;)se(r,y&127|128),y>>>=7;se(r,y)}function Ie(r){var y={},G=y.N===void 0?!1:y.N;this.m={u:y.u===void 0?!1:y.u},this.N=G,y=this.m,Ge.length?(G=Ge.pop(),y&&(G.u=y.u),r&&de(G,r),r=G):r=new It(r,y),this.g=r,this.l=this.g.g,this.h=this.i=-1,this.j=!1}Ie.prototype.reset=function(){this.g.reset(),this.h=this.i=-1};function Je(r){var y=r.g;if((y=y.g==y.i)||(y=r.j)||(y=r.g,y=y.j||0>y.g||y.g>y.i),y)return!1;r.l=r.g.g;var G=ne(r.g);return y=G>>>3,G&=7,0<=G&&5>=G?(r.i=y,r.h=G,!0):(r.j=!0,hn(G,r.l),!1)}function ge(r){switch(r.h){case 0:if(r.h!=0)ge(r);else t:{r=r.g;for(var y=r.g,G=0;10>G;G++){if((r.h[y]&128)===0){r.g=y+1,At(r);break t}y++}r.j=!0,Wn()}break;case 1:r=r.g,r.g+=8,At(r);break;case 2:r.h!=2?ge(r):(y=ne(r.g),r=r.g,r.g+=y,At(r));break;case 5:r=r.g,r.g+=4,At(r);break;case 3:y=r.i;do{if(!Je(r)){r.j=!0,tn(Error("Unmatched start-group tag: stream EOF"));break}if(r.h==4){r.i!=y&&(r.j=!0,tn(Error("Unmatched end-group tag")));break}ge(r)}while(1);break;default:r.j=!0,hn(r.h,r.l)}}function Xn(r,y,G){r.N||(r=xe(r.g.h,G,r.g.g),(G=y.m)?G.push(r):y.m=[r])}var Qe=[];function sn(){this.h=[],this.i=0,this.g=new Be}function cn(r,y){y.length!==0&&(r.h.push(y),r.i+=y.length)}function ie(r,y,G){Yt(r.g,8*y+2),Yt(r.g,G.length),cn(r,r.g.end()),cn(r,G)}var Re=typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol(void 0):void 0;function oe(r,y){Object.isFrozen(r)||(Re?r[Re]|=y:r.g!==void 0?r.g|=y:Object.defineProperties(r,{g:{value:y,configurable:!0,writable:!0,enumerable:!1}}))}function Mt(r){if(!r)return 0;var y;return Re?y=r[Re]:y=r.g,y==null?0:y}function Ce(r){return Array.isArray(r)&&oe(r,1),r}function Ot(r){if(!Array.isArray(r))throw Error("cannot mark non-array as immutable");oe(r,2)}function Ut(r){return r!==null&&typeof r=="object"&&r.constructor===Object}function gn(r){switch(typeof r){case"number":return isFinite(r)?r:String(r);case"object":return Pe&&r!=null&&r instanceof Uint8Array?Zn(r):r;default:return r}}function $t(r,y){if(r!=null)return Array.isArray(r)||Ut(r)?Vt(r,y):y(r)}function Vt(r,y){if(Array.isArray(r)){for(var G=Array(r.length),S=0;S<r.length;S++)G[S]=$t(r[S],y);return Mt(r)&1&&Ce(G),G}G={};for(S in r)G[S]=$t(r[S],y);return G}var bt;function zt(r,y,G){var S=bt;bt=null,r||(r=S),S=this.constructor.ca,r||(r=S?[S]:[]),this.j=(S?0:-1)-(this.constructor.aa||0),this.i=null,this.g=r;t:{if(S=this.g.length,r=S-1,S&&(S=this.g[r],Ut(S))){this.l=r-this.j,this.h=S;break t}y!==void 0&&-1<y?(this.l=Math.max(y,r+1-this.j),this.h=null):this.l=Number.MAX_VALUE}if(G)for(y=0;y<G.length;y++)r=G[y],r<this.l?(r+=this.j,(S=this.g[r])?Ce(S):this.g[r]=Fe):(Kt(this),(S=this.h[r])?Ce(S):this.h[r]=Fe)}var Fe=Object.freeze(Ce([]));function Kt(r){var y=r.l+r.j;r.g[y]||(r.h=r.g[y]={})}function Qt(r,y,G){return y===-1?null:(G===void 0?0:G)||y>=r.l?r.h?r.h[y]:void 0:r.g[y+r.j]}function Le(r,y,G){G=G===void 0?!0:G;var S=S===void 0?!1:S,N=Qt(r,y,S);return N==null&&(N=Fe),N===Fe?(N=Ce([]),Rt(r,y,N,S)):G&&Array.isArray(N)&&Mt(N)&2&&(N=N.slice(),Rt(r,y,N,S)),N}function kt(r,y,G){return r=Qt(r,y),r=r==null?r:+r,r==null?G===void 0?0:G:r}function Rt(r,y,G,S){(S===void 0?0:S)||y>=r.l?(Kt(r),r.h[y]=G):r.g[y+r.j]=G}function Ae(r,y,G){r.i||(r.i={});var S=r.i[G];if(!S){var N=Le(r,G,!1);S=[];for(var J=Array.isArray(N)?!!(Mt(N)&2):!1,k=0;k<N.length;k++)S[k]=new y(N[k]),J&&Ot(S[k].g);J&&(Ot(S),Object.freeze(S)),r.i[G]=S}return S}function Oe(r,y,G,S,N){var J=Ae(r,S,y);G=G||new S,r=Le(r,y),N!=null?(J.splice(N,0,G),r.splice(N,0,Se(G))):(J.push(G),r.push(Se(G)))}zt.prototype.toJSON=function(){var r=Se(this);return Vt(r,gn)};function Se(r){if(r.i)for(var y in r.i){var G=r.i[y];if(Array.isArray(G))for(var S=0;S<G.length;S++)G[S]&&Se(G[S]);else G&&Se(G)}return r.g}zt.prototype.toString=function(){return Se(this).toString()};function Jt(r,y){return r=Qt(r,y),r==null?0:r}function Ne(r,y){return r=Qt(r,y),r==null?"":r}function an(r,y){if(r=r.m){cn(y,y.g.end());for(var G=0;G<r.length;G++)cn(y,r[G])}}function De(r){var y=r[0];switch(r.length){case 2:var G=r[1];return function(z,lt,dt){return y(z,lt,dt,G)};case 3:var S=r[1],N=r[2];return function(z,lt,dt){return y(z,lt,dt,S,N)};case 4:var J=r[1],k=r[2],q=r[3];return function(z,lt,dt){return y(z,lt,dt,J,k,q)};default:throw Error("unsupported number of parameters, expected [2-4], got "+r.length)}}function Ee(r,y,G){for(;Je(y)&&y.h!=4;){var S=y.i,N=G[S];if(N){if(Array.isArray(N)&&(N=G[S]=De(N)),!N(y,r,S)){S=y,N=r;var J=S.l;ge(S),Xn(S,N,J)}}else S=y,N=r,J=S.l,ge(S),Xn(S,N,J)}return r}function Me(r,y){var G=new sn;if(y(r,G),r=G.i+G.g.length(),r===0)G=new Uint8Array(0);else{r=new Uint8Array(r);for(var S=G.h,N=S.length,J=y=0;J<N;J++){var k=S[J];k.length!==0&&(r.set(k,y),y+=k.length)}S=G.g,N=S.h,N!==0&&(r.set(S.g.subarray(0,N),y),S.h=0),G.h=[r],G=r}return G}function $e(r,y,G){if(Qe.length){var S=Qe.pop();r&&(de(S.g,r),S.i=-1,S.h=-1),r=S}else r=new Ie(r);try{return G(new y,r)}finally{y=r.g,y.h=null,y.l=0,y.i=0,y.g=0,y.j=!1,y.u=!1,r.i=-1,r.h=-1,r.j=!1,100>Qe.length&&Qe.push(r)}}function me(r,y,G){if(y=Qt(y,G),y!=null){Yt(r.g,8*G+5),r=r.g;var S=y;S=(G=0>S?1:0)?-S:S,S===0?0<1/S?Ct=re=0:(re=0,Ct=2147483648):isNaN(S)?(re=0,Ct=2147483647):34028234663852886e22<S?(re=0,Ct=(G<<31|2139095040)>>>0):11754943508222875e-54>S?(S=Math.round(S/Math.pow(2,-149)),re=0,Ct=(G<<31|S)>>>0):(y=Math.floor(Math.log(S)/Math.LN2),S*=Math.pow(2,-y),S=Math.round(8388608*S),16777216<=S&&++y,re=0,Ct=(G<<31|y+127<<23|S&8388607)>>>0),G=Ct,se(r,G>>>0&255),se(r,G>>>8&255),se(r,G>>>16&255),se(r,G>>>24&255)}}function Ye(r,y,G){if(r.h!==5)return!1;r=r.g;var S=r.h[r.g],N=r.h[r.g+1],J=r.h[r.g+2],k=r.h[r.g+3];return r.g+=4,At(r),N=(S<<0|N<<8|J<<16|k<<24)>>>0,r=2*(N>>31)+1,S=N>>>23&255,N&=8388607,Rt(y,G,S==255?N?NaN:1/0*r:S==0?r*Math.pow(2,-149)*N:r*Math.pow(2,S-150)*(N+Math.pow(2,23))),!0}function Nn(r,y,G){if(r.h!==0)return!1;for(var S=r.g,N=128,J=0,k=r=0;4>k&&128<=N;k++)N=S.h[S.g++],J|=(N&127)<<7*k;if(128<=N&&(N=S.h[S.g++],J|=(N&127)<<28,r|=(N&127)>>4),128<=N)for(k=0;5>k&&128<=N;k++)N=S.h[S.g++],r|=(N&127)<<7*k+3;return 128>N?(S=J>>>0,N=r>>>0,(r=N&2147483648)&&(S=~S+1>>>0,N=~N>>>0,S==0&&(N=N+1>>>0)),S=4294967296*N+(S>>>0),r=r?-S:S):(S.j=!0,Wn(),r=void 0),Rt(y,G,r),!0}function Ue(r,y,G){return r.h!==0?!1:(Rt(y,G,ne(r.g)),!0)}function be(r,y,G){if(r.h!==2)return!1;var S=ne(r.g);r=r.g;var N=r.g;r.g+=S,At(r),r=r.h;var J;if(en)(J=xn)||(J=xn=new TextDecoder("utf-8",{fatal:!1})),J=J.decode(r.subarray(N,N+S));else{S=N+S;for(var k=[],q=null,z,lt,dt;N<S;)z=r[N++],128>z?k.push(z):224>z?N>=S?k.push(65533):(lt=r[N++],194>z||(lt&192)!==128?(N--,k.push(65533)):k.push((z&31)<<6|lt&63)):240>z?N>=S-1?k.push(65533):(lt=r[N++],(lt&192)!==128||z===224&&160>lt||z===237&&160<=lt||((J=r[N++])&192)!==128?(N--,k.push(65533)):k.push((z&15)<<12|(lt&63)<<6|J&63)):244>=z?N>=S-2?k.push(65533):(lt=r[N++],(lt&192)!==128||(z<<28)+(lt-144)>>30!==0||((J=r[N++])&192)!==128||((dt=r[N++])&192)!==128?(N--,k.push(65533)):(z=(z&7)<<18|(lt&63)<<12|(J&63)<<6|dt&63,z-=65536,k.push((z>>10&1023)+55296,(z&1023)+56320))):k.push(65533),8192<=k.length&&(q=bn(q,k),k.length=0);J=bn(q,k)}return Rt(y,G,J),!0}function rn(r,y,G,S,N){if(r.h!==2)return!1;var J=new S,k=r.g.i,q=ne(r.g),z=r.g.g+q;if(r.g.i=z,N(J,r),N=z-r.g.g,N!==0)throw Error("Message parsing ended unexpectedly. Expected to read "+(q+" bytes, instead read "+(q-N)+" bytes, either the data ended unexpectedly or the message misreported its own length"));return r.g.g=z,r.g.i=k,Oe(y,G,J,S,void 0),!0}function fn(r){zt.call(this,r)}var Te;Lt(fn,zt);function Sn(r,y){var G=Qt(r,1);if(G!=null&&G!=null){Yt(y.g,8);var S=y.g;if(0<=G)Yt(S,G);else{for(var N=0;9>N;N++)se(S,G&127|128),G>>=7;se(S,1)}}me(y,r,2),S=Qt(r,3),S!=null&&ie(y,3,Vn(S)),S=Qt(r,4),S!=null&&ie(y,4,Vn(S)),an(r,y)}function ke(r,y){return Ee(r,y,Te||(Te={1:Ue,2:Ye,3:be,4:be}))}function on(r){zt.call(this,r,-1,Ke)}var mn;Lt(on,zt),on.prototype.addClassification=function(r,y){return Oe(this,1,r,fn,y),this};function Ln(r,y){return Ee(r,y,mn||(mn={1:[rn,fn,ke]}))}var Ke=[1];function yn(r){zt.call(this,r)}var Yn;Lt(yn,zt);function Un(r,y){me(y,r,1),me(y,r,2),me(y,r,3),me(y,r,4),me(y,r,5),an(r,y)}function vn(r,y){return Ee(r,y,Yn||(Yn={1:Ye,2:Ye,3:Ye,4:Ye,5:Ye}))}function Gn(r){zt.call(this,r,-1,Z)}var f;Lt(Gn,zt);function b(r,y){return Ee(r,y,f||(f={1:[rn,yn,vn]}))}var Z=[1];function Y(r){zt.call(this,r)}var _;Lt(Y,zt);function et(r,y){me(y,r,1),me(y,r,2),me(y,r,3),me(y,r,4),me(y,r,5);var G=Qt(r,6);if(G!=null&&G!=null){Yt(y.g,48);var S=y.g,N=G;G=0>N,N=Math.abs(N);var J=N>>>0;for(N=Math.floor((N-J)/4294967296),N>>>=0,G&&(N=~N>>>0,J=(~J>>>0)+1,4294967295<J&&(J=0,N++,4294967295<N&&(N=0))),Ct=J,re=N,G=Ct,J=re;0<J||127<G;)se(S,G&127|128),G=(G>>>7|J<<25)>>>0,J>>>=7;se(S,G)}an(r,y)}function K(r,y){return Ee(r,y,_||(_={1:Ye,2:Ye,3:Ye,4:Ye,5:Ye,6:Nn}))}function tt(r,y,G){if(G=r.createShader(G===0?r.VERTEX_SHADER:r.FRAGMENT_SHADER),r.shaderSource(G,y),r.compileShader(G),!r.getShaderParameter(G,r.COMPILE_STATUS))throw Error(`Could not compile WebGL shader.
|
|
107
|
+
|
|
108
|
+
`+r.getShaderInfoLog(G));return G}function st(r){return Ae(r,fn,1).map(function(y){return{index:Jt(y,1),X:kt(y,2),label:Qt(y,3)!=null?Ne(y,3):void 0,displayName:Qt(y,4)!=null?Ne(y,4):void 0}})}function mt(r){return{x:kt(r,1),y:kt(r,2),z:kt(r,3),visibility:Qt(r,4)!=null?kt(r,4):void 0}}function Ft(r){return Ae($e(r,Gn,b),yn,1).map(mt)}function wt(r,y){this.h=r,this.g=y,this.l=0}function Ht(r,y,G){return Wt(r,y),typeof r.g.canvas.transferToImageBitmap=="function"?Promise.resolve(r.g.canvas.transferToImageBitmap()):G?Promise.resolve(r.g.canvas):typeof createImageBitmap=="function"?createImageBitmap(r.g.canvas):(r.i===void 0&&(r.i=document.createElement("canvas")),new Promise(function(S){r.i.height=r.g.canvas.height,r.i.width=r.g.canvas.width,r.i.getContext("2d",{}).drawImage(r.g.canvas,0,0,r.g.canvas.width,r.g.canvas.height),S(r.i)}))}function Wt(r,y){var G=r.g;if(r.m===void 0){var S=tt(G,`
|
|
109
|
+
attribute vec2 aVertex;
|
|
110
|
+
attribute vec2 aTex;
|
|
111
|
+
varying vec2 vTex;
|
|
112
|
+
void main(void) {
|
|
113
|
+
gl_Position = vec4(aVertex, 0.0, 1.0);
|
|
114
|
+
vTex = aTex;
|
|
115
|
+
}`,0),N=tt(G,`
|
|
116
|
+
precision mediump float;
|
|
117
|
+
varying vec2 vTex;
|
|
118
|
+
uniform sampler2D sampler0;
|
|
119
|
+
void main(){
|
|
120
|
+
gl_FragColor = texture2D(sampler0, vTex);
|
|
121
|
+
}`,1),J=G.createProgram();if(G.attachShader(J,S),G.attachShader(J,N),G.linkProgram(J),!G.getProgramParameter(J,G.LINK_STATUS))throw Error(`Could not compile WebGL program.
|
|
122
|
+
|
|
123
|
+
`+G.getProgramInfoLog(J));S=r.m=J,G.useProgram(S),N=G.getUniformLocation(S,"sampler0"),r.j={I:G.getAttribLocation(S,"aVertex"),H:G.getAttribLocation(S,"aTex"),da:N},r.s=G.createBuffer(),G.bindBuffer(G.ARRAY_BUFFER,r.s),G.enableVertexAttribArray(r.j.I),G.vertexAttribPointer(r.j.I,2,G.FLOAT,!1,0,0),G.bufferData(G.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),G.STATIC_DRAW),G.bindBuffer(G.ARRAY_BUFFER,null),r.o=G.createBuffer(),G.bindBuffer(G.ARRAY_BUFFER,r.o),G.enableVertexAttribArray(r.j.H),G.vertexAttribPointer(r.j.H,2,G.FLOAT,!1,0,0),G.bufferData(G.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),G.STATIC_DRAW),G.bindBuffer(G.ARRAY_BUFFER,null),G.uniform1i(N,0)}S=r.j,G.useProgram(r.m),G.canvas.width=y.width,G.canvas.height=y.height,G.viewport(0,0,y.width,y.height),G.activeTexture(G.TEXTURE0),r.h.bindTexture2d(y.glName),G.enableVertexAttribArray(S.I),G.bindBuffer(G.ARRAY_BUFFER,r.s),G.vertexAttribPointer(S.I,2,G.FLOAT,!1,0,0),G.enableVertexAttribArray(S.H),G.bindBuffer(G.ARRAY_BUFFER,r.o),G.vertexAttribPointer(S.H,2,G.FLOAT,!1,0,0),G.bindFramebuffer(G.DRAW_FRAMEBUFFER?G.DRAW_FRAMEBUFFER:G.FRAMEBUFFER,null),G.clearColor(0,0,0,0),G.clear(G.COLOR_BUFFER_BIT),G.colorMask(!0,!0,!0,!0),G.drawArrays(G.TRIANGLE_FAN,0,4),G.disableVertexAttribArray(S.I),G.disableVertexAttribArray(S.H),G.bindBuffer(G.ARRAY_BUFFER,null),r.h.bindTexture2d(0)}function Zt(r){this.g=r}var Tt=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function Et(r,y){return y+r}function Bt(r,y){window[r]=y}function Dt(r){var y=document.createElement("script");return y.setAttribute("src",r),y.setAttribute("crossorigin","anonymous"),new Promise(function(G){y.addEventListener("load",function(){G()},!1),y.addEventListener("error",function(){G()},!1),document.body.appendChild(y)})}function qt(){return ht(function(r){switch(r.g){case 1:return r.m=2,$(r,WebAssembly.instantiate(Tt),4);case 4:r.g=3,r.m=0;break;case 2:return r.m=0,r.j=null,r.return(!1);case 3:return r.return(!0)}})}function Ze(r){if(this.g=r,this.listeners={},this.j={},this.F={},this.m={},this.s={},this.G=this.o=this.R=!0,this.C=Promise.resolve(),this.P="",this.B={},this.locateFile=r&&r.locateFile||Et,typeof window=="object")var y=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if(typeof location!="undefined")y=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.S=y,r.options){y=C(Object.keys(r.options));for(var G=y.next();!G.done;G=y.next()){G=G.value;var S=r.options[G].default;S!==void 0&&(this.j[G]=typeof S=="function"?S():S)}}}V=Ze.prototype,V.close=function(){return this.i&&this.i.delete(),Promise.resolve()};function c(r){var y,G,S,N,J,k,q,z,lt,dt,xt;return ht(function(yt){switch(yt.g){case 1:return r.R?(y=r.g.files===void 0?[]:typeof r.g.files=="function"?r.g.files(r.j):r.g.files,$(yt,qt(),2)):yt.return();case 2:if(G=yt.h,typeof window=="object")return Bt("createMediapipeSolutionsWasm",{locateFile:r.locateFile}),Bt("createMediapipeSolutionsPackedAssets",{locateFile:r.locateFile}),k=y.filter(function(it){return it.data!==void 0}),q=y.filter(function(it){return it.data===void 0}),z=Promise.all(k.map(function(it){var gt=L(r,it.url);if(it.path!==void 0){var vt=it.path;gt=gt.then(function(Gt){return r.overrideFile(vt,Gt),Promise.resolve(Gt)})}return gt})),lt=Promise.all(q.map(function(it){return it.simd===void 0||it.simd&&G||!it.simd&&!G?Dt(r.locateFile(it.url,r.S)):Promise.resolve()})).then(function(){var it,gt,vt;return ht(function(Gt){if(Gt.g==1)return it=window.createMediapipeSolutionsWasm,gt=window.createMediapipeSolutionsPackedAssets,vt=r,$(Gt,it(gt),2);vt.h=Gt.h,Gt.g=0})}),dt=function(){return ht(function(it){return r.g.graph&&r.g.graph.url?it=$(it,L(r,r.g.graph.url),0):(it.g=0,it=void 0),it})}(),$(yt,Promise.all([lt,z,dt]),7);if(typeof importScripts!="function")throw Error("solutions can only be loaded on a web page or in a web worker");return S=y.filter(function(it){return it.simd===void 0||it.simd&&G||!it.simd&&!G}).map(function(it){return r.locateFile(it.url,r.S)}),importScripts.apply(null,pt(S)),N=r,$(yt,createMediapipeSolutionsWasm(Module),6);case 6:N.h=yt.h,r.l=new OffscreenCanvas(1,1),r.h.canvas=r.l,J=r.h.GL.createContext(r.l,{antialias:!1,alpha:!1,ba:typeof WebGL2RenderingContext!="undefined"?2:1}),r.h.GL.makeContextCurrent(J),yt.g=4;break;case 7:if(r.l=document.createElement("canvas"),xt=r.l.getContext("webgl2",{}),!xt&&(xt=r.l.getContext("webgl",{}),!xt))return alert("Failed to create WebGL canvas context when passing video frame."),yt.return();r.D=xt,r.h.canvas=r.l,r.h.createContext(r.l,!0,!0,{});case 4:r.i=new r.h.SolutionWasm,r.R=!1,yt.g=0}})}function p(r){var y,G,S,N,J,k,q,z;return ht(function(lt){if(lt.g==1){if(r.g.graph&&r.g.graph.url&&r.P===r.g.graph.url)return lt.return();if(r.o=!0,!r.g.graph||!r.g.graph.url){lt.g=2;return}return r.P=r.g.graph.url,$(lt,L(r,r.g.graph.url),3)}for(lt.g!=2&&(y=lt.h,r.i.loadGraph(y)),G=C(Object.keys(r.B)),S=G.next();!S.done;S=G.next())N=S.value,r.i.overrideFile(N,r.B[N]);if(r.B={},r.g.listeners)for(J=C(r.g.listeners),k=J.next();!k.done;k=J.next())q=k.value,j(r,q);z=r.j,r.j={},r.setOptions(z),lt.g=0})}V.reset=function(){var r=this;return ht(function(y){r.i&&(r.i.reset(),r.m={},r.s={}),y.g=0})},V.setOptions=function(r,y){var G=this;if(y=y||this.g.options){for(var S=[],N=[],J={},k=C(Object.keys(r)),q=k.next();!q.done;J={K:J.K,L:J.L},q=k.next()){var z=q.value;z in this.j&&this.j[z]===r[z]||(this.j[z]=r[z],q=y[z],q!==void 0&&(q.onChange&&(J.K=q.onChange,J.L=r[z],S.push(function(lt){return function(){var dt;return ht(function(xt){if(xt.g==1)return $(xt,lt.K(lt.L),2);dt=xt.h,dt===!0&&(G.o=!0),xt.g=0})}}(J))),q.graphOptionXref&&(z={valueNumber:q.type===1?r[z]:0,valueBoolean:q.type===0?r[z]:!1,valueString:q.type===2?r[z]:""},q=Object.assign(Object.assign(Object.assign({},{calculatorName:"",calculatorIndex:0}),q.graphOptionXref),z),N.push(q))))}(S.length!==0||N.length!==0)&&(this.o=!0,this.A=(this.A===void 0?[]:this.A).concat(N),this.v=(this.v===void 0?[]:this.v).concat(S))}};function m(r){var y,G,S,N,J,k,q;return ht(function(z){switch(z.g){case 1:if(!r.o)return z.return();if(!r.v){z.g=2;break}y=C(r.v),G=y.next();case 3:if(G.done){z.g=5;break}return S=G.value,$(z,S(),4);case 4:G=y.next(),z.g=3;break;case 5:r.v=void 0;case 2:if(r.A){for(N=new r.h.GraphOptionChangeRequestList,J=C(r.A),k=J.next();!k.done;k=J.next())q=k.value,N.push_back(q);r.i.changeOptions(N),N.delete(),r.A=void 0}r.o=!1,z.g=0}})}V.initialize=function(){var r=this;return ht(function(y){return y.g==1?$(y,c(r),2):y.g!=3?$(y,p(r),3):$(y,m(r),0)})};function L(r,y){var G,S;return ht(function(N){return y in r.F?N.return(r.F[y]):(G=r.locateFile(y,""),S=fetch(G).then(function(J){return J.arrayBuffer()}),r.F[y]=S,N.return(S))})}V.overrideFile=function(r,y){this.i?this.i.overrideFile(r,y):this.B[r]=y},V.clearOverriddenFiles=function(){this.B={},this.i&&this.i.clearOverriddenFiles()},V.send=function(r,y){var G=this,S,N,J,k,q,z,lt,dt,xt;return ht(function(yt){switch(yt.g){case 1:return G.g.inputs?(S=1e3*(y==null?performance.now():y),$(yt,G.C,2)):yt.return();case 2:return $(yt,G.initialize(),3);case 3:for(N=new G.h.PacketDataList,J=C(Object.keys(r)),k=J.next();!k.done;k=J.next())if(q=k.value,z=G.g.inputs[q]){t:{var it=r[q];switch(z.type){case"video":var gt=G.m[z.stream];if(gt||(gt=new wt(G.h,G.D),G.m[z.stream]=gt),gt.l===0&&(gt.l=gt.h.createTexture()),typeof HTMLVideoElement!="undefined"&&it instanceof HTMLVideoElement)var vt=it.videoWidth,Gt=it.videoHeight;else typeof HTMLImageElement!="undefined"&&it instanceof HTMLImageElement?(vt=it.naturalWidth,Gt=it.naturalHeight):(vt=it.width,Gt=it.height);Gt={glName:gt.l,width:vt,height:Gt},vt=gt.g,vt.canvas.width=Gt.width,vt.canvas.height=Gt.height,vt.activeTexture(vt.TEXTURE0),gt.h.bindTexture2d(gt.l),vt.texImage2D(vt.TEXTURE_2D,0,vt.RGBA,vt.RGBA,vt.UNSIGNED_BYTE,it),gt.h.bindTexture2d(0),gt=Gt;break t;case"detections":for(gt=G.m[z.stream],gt||(gt=new Zt(G.h),G.m[z.stream]=gt),gt.data||(gt.data=new gt.g.DetectionListData),gt.data.reset(it.length),Gt=0;Gt<it.length;++Gt){vt=it[Gt];var Xt=gt.data,i=Xt.setBoundingBox,g=Gt,R=vt.T,w=new Y;if(Rt(w,1,R.Y),Rt(w,2,R.Z),Rt(w,3,R.height),Rt(w,4,R.width),Rt(w,5,R.rotation),Rt(w,6,R.W),R=Me(w,et),i.call(Xt,g,R),vt.O)for(Xt=0;Xt<vt.O.length;++Xt){w=vt.O[Xt];var E=!!w.visibility;i=gt.data,g=i.addNormalizedLandmark,R=Gt,w=Object.assign(Object.assign({},w),{visibility:E?w.visibility:0}),E=new yn,Rt(E,1,w.x),Rt(E,2,w.y),Rt(E,3,w.z),w.visibility&&Rt(E,4,w.visibility),w=Me(E,Un),g.call(i,R,w)}if(vt.M)for(Xt=0;Xt<vt.M.length;++Xt)i=gt.data,g=i.addClassification,R=Gt,w=vt.M[Xt],E=new fn,Rt(E,2,w.X),w.index&&Rt(E,1,w.index),w.label&&Rt(E,3,w.label),w.displayName&&Rt(E,4,w.displayName),w=Me(E,Sn),g.call(i,R,w)}gt=gt.data;break t;default:gt={}}}switch(lt=gt,dt=z.stream,z.type){case"video":N.pushTexture2d(Object.assign(Object.assign({},lt),{stream:dt,timestamp:S}));break;case"detections":xt=lt,xt.stream=dt,xt.timestamp=S,N.pushDetectionList(xt);break;default:throw Error("Unknown input config type: '"+z.type+"'")}}return G.i.send(N),$(yt,G.C,4);case 4:N.delete(),yt.g=0}})};function H(r,y,G){var S,N,J,k,q,z,lt,dt,xt,yt,it,gt,vt,Gt;return ht(function(Xt){switch(Xt.g){case 1:if(!G)return Xt.return(y);for(S={},N=0,J=C(Object.keys(G)),k=J.next();!k.done;k=J.next())q=k.value,z=G[q],typeof z!="string"&&z.type==="texture"&&y[z.stream]!==void 0&&++N;1<N&&(r.G=!1),lt=C(Object.keys(G)),k=lt.next();case 2:if(k.done){Xt.g=4;break}if(dt=k.value,xt=G[dt],typeof xt=="string")return vt=S,Gt=dt,$(Xt,P(r,dt,y[xt]),14);if(yt=y[xt.stream],xt.type==="detection_list"){if(yt){for(var i=yt.getRectList(),g=yt.getLandmarksList(),R=yt.getClassificationsList(),w=[],E=0;E<i.size();++E){var n=$e(i.get(E),Y,K);n={T:{Y:kt(n,1),Z:kt(n,2),height:kt(n,3),width:kt(n,4),rotation:kt(n,5,0),W:Jt(n,6)},O:Ft(g.get(E)),M:st($e(R.get(E),on,Ln))},w.push(n)}i=w}else i=[];S[dt]=i,Xt.g=7;break}if(xt.type==="proto_list"){if(yt){for(i=Array(yt.size()),g=0;g<yt.size();g++)i[g]=yt.get(g);yt.delete()}else i=[];S[dt]=i,Xt.g=7;break}if(yt===void 0){Xt.g=3;break}if(xt.type==="float_list"){S[dt]=yt,Xt.g=7;break}if(xt.type==="proto"){S[dt]=yt,Xt.g=7;break}if(xt.type!=="texture")throw Error("Unknown output config type: '"+xt.type+"'");return it=r.s[dt],it||(it=new wt(r.h,r.D),r.s[dt]=it),$(Xt,Ht(it,yt,r.G),13);case 13:gt=Xt.h,S[dt]=gt;case 7:xt.transform&&S[dt]&&(S[dt]=xt.transform(S[dt])),Xt.g=3;break;case 14:vt[Gt]=Xt.h;case 3:k=lt.next(),Xt.g=2;break;case 4:return Xt.return(S)}})}function P(r,y,G){var S;return ht(function(N){return typeof G=="number"||G instanceof Uint8Array||G instanceof r.h.Uint8BlobList?N.return(G):G instanceof r.h.Texture2dDataOut?(S=r.s[y],S||(S=new wt(r.h,r.D),r.s[y]=S),N.return(Ht(S,G,r.G))):N.return(void 0)})}function j(r,y){for(var G=y.name||"$",S=[].concat(pt(y.wants)),N=new r.h.StringList,J=C(y.wants),k=J.next();!k.done;k=J.next())N.push_back(k.value);J=r.h.PacketListener.implement({onResults:function(q){for(var z={},lt=0;lt<y.wants.length;++lt)z[S[lt]]=q.get(lt);var dt=r.listeners[G];dt&&(r.C=H(r,z,y.outs).then(function(xt){xt=dt(xt);for(var yt=0;yt<y.wants.length;++yt){var it=z[S[yt]];typeof it=="object"&&it.hasOwnProperty&&it.hasOwnProperty("delete")&&it.delete()}xt&&(r.C=xt)}))}}),r.i.attachMultiListener(N,J),N.delete()}V.onResults=function(r,y){this.listeners[y||"$"]=r},St("Solution",Ze),St("OptionType",{BOOL:0,NUMBER:1,$:2,0:"BOOL",1:"NUMBER",2:"STRING"});function D(r){switch(r===void 0&&(r=0),r){case 1:return"pose_landmark_full.tflite";case 2:return"pose_landmark_heavy.tflite";default:return"pose_landmark_lite.tflite"}}function rt(r){var y=this;r=r||{},this.g=new Ze({locateFile:r.locateFile,files:function(G){return[{url:"pose_solution_packed_assets_loader.js"},{simd:!1,url:"pose_solution_wasm_bin.js"},{simd:!0,url:"pose_solution_simd_wasm_bin.js"},{data:!0,url:D(G.modelComplexity)}]},graph:{url:"pose_web.binarypb"},listeners:[{wants:["pose_landmarks","world_landmarks","segmentation_mask","image_transformed"],outs:{image:{type:"texture",stream:"image_transformed"},poseLandmarks:{type:"proto",stream:"pose_landmarks",transform:Ft},poseWorldLandmarks:{type:"proto",stream:"world_landmarks",transform:Ft},segmentationMask:{type:"texture",stream:"segmentation_mask"}}}],inputs:{image:{type:"video",stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},modelComplexity:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelComplexity",fieldName:"int_value"},onChange:function(G){var S,N,J;return ht(function(k){return k.g==1?(S=D(G),N="third_party/mediapipe/modules/pose_landmark/"+S,$(k,L(y.g,S),2)):(J=k.h,y.g.overrideFile(N,J),k.return(!0))})}},smoothLandmarks:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorSmoothLandmarks",fieldName:"bool_value"}},enableSegmentation:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorEnableSegmentation",fieldName:"bool_value"}},smoothSegmentation:{type:0,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorSmoothSegmentation",fieldName:"bool_value"}},minDetectionConfidence:{type:1,graphOptionXref:{calculatorType:"TensorsToDetectionsCalculator",calculatorName:"poselandmarkgpu__posedetectiongpu__TensorsToDetectionsCalculator",fieldName:"min_score_thresh"}},minTrackingConfidence:{type:1,graphOptionXref:{calculatorType:"ThresholdingCalculator",calculatorName:"poselandmarkgpu__poselandmarkbyroigpu__tensorstoposelandmarksandsegmentation__ThresholdingCalculator",fieldName:"threshold"}}}})}V=rt.prototype,V.reset=function(){this.g.reset()},V.close=function(){return this.g.close(),Promise.resolve()},V.onResults=function(r){this.g.onResults(r)},V.initialize=function(){var r=this;return ht(function(y){return $(y,r.g.initialize(),0)})},V.send=function(r,y){var G=this;return ht(function(S){return $(S,G.g.send(r,y),0)})},V.setOptions=function(r){this.g.setOptions(r)},St("Pose",rt),St("POSE_CONNECTIONS",[[0,1],[1,2],[2,3],[3,7],[0,4],[4,5],[5,6],[6,8],[9,10],[11,12],[11,13],[13,15],[15,17],[15,19],[15,21],[17,19],[12,14],[14,16],[16,18],[16,20],[16,22],[18,20],[11,23],[12,24],[23,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,31],[30,32],[27,31],[28,32]]),St("POSE_LANDMARKS",{NOSE:0,LEFT_EYE_INNER:1,LEFT_EYE:2,LEFT_EYE_OUTER:3,RIGHT_EYE_INNER:4,RIGHT_EYE:5,RIGHT_EYE_OUTER:6,LEFT_EAR:7,RIGHT_EAR:8,LEFT_RIGHT:9,RIGHT_LEFT:10,LEFT_SHOULDER:11,RIGHT_SHOULDER:12,LEFT_ELBOW:13,RIGHT_ELBOW:14,LEFT_WRIST:15,RIGHT_WRIST:16,LEFT_PINKY:17,RIGHT_PINKY:18,LEFT_INDEX:19,RIGHT_INDEX:20,LEFT_THUMB:21,RIGHT_THUMB:22,LEFT_HIP:23,RIGHT_HIP:24,LEFT_KNEE:25,RIGHT_KNEE:26,LEFT_ANKLE:27,RIGHT_ANKLE:28,LEFT_HEEL:29,RIGHT_HEEL:30,LEFT_FOOT_INDEX:31,RIGHT_FOOT_INDEX:32}),St("POSE_LANDMARKS_LEFT",{LEFT_EYE_INNER:1,LEFT_EYE:2,LEFT_EYE_OUTER:3,LEFT_EAR:7,LEFT_RIGHT:9,LEFT_SHOULDER:11,LEFT_ELBOW:13,LEFT_WRIST:15,LEFT_PINKY:17,LEFT_INDEX:19,LEFT_THUMB:21,LEFT_HIP:23,LEFT_KNEE:25,LEFT_ANKLE:27,LEFT_HEEL:29,LEFT_FOOT_INDEX:31}),St("POSE_LANDMARKS_RIGHT",{RIGHT_EYE_INNER:4,RIGHT_EYE:5,RIGHT_EYE_OUTER:6,RIGHT_EAR:8,RIGHT_LEFT:10,RIGHT_SHOULDER:12,RIGHT_ELBOW:14,RIGHT_WRIST:16,RIGHT_PINKY:18,RIGHT_INDEX:20,RIGHT_THUMB:22,RIGHT_HIP:24,RIGHT_KNEE:26,RIGHT_ANKLE:28,RIGHT_HEEL:30,RIGHT_FOOT_INDEX:32}),St("POSE_LANDMARKS_NEUTRAL",{NOSE:0}),St("VERSION","0.5.1635988162")}).call(Nr);const Bn=class{constructor(){this.mediapipeMap_=new Map}getVersion(V){switch(V){case"face_detection":return xr.VERSION;case"face_mesh":return Lr.VERSION;case"hands":return Tr.VERSION;case"holistic":return Fr.VERSION;case"objectron":return Ir.VERSION;case"selfie_segmentation":return Sr.VERSION;case"pose":return Nr.VERSION;default:return""}}initialize(V){return new Promise(async(v,W)=>{if(V.mediaPipeModelConfigArray.length==0){W("no model was selected");return}for(let I=0;I<V.mediaPipeModelConfigArray.length;I++){const x=V.mediaPipeModelConfigArray[I];if(this.mediapipeMap_.has(x.modelType)){W("setting same type is not supported");return}if(typeof x.listener!="function"){W(`[${x.modelType}] ResultsListener must be provided`);return}let A;switch(x.modelType){case"face_mesh":A=new Lr.FaceMesh({locateFile:(Q,C)=>(x.assetsUri||Bn.defaultAssetsBaseUrl+"face_mesh/"+this.getVersion("face_mesh"))+"/"+Q});break;case"face_detection":A=new xr.FaceDetection({locateFile:(Q,C)=>(x.assetsUri||Bn.defaultAssetsBaseUrl+"face_detection/"+this.getVersion("face_detection"))+"/"+Q});break;case"hands":A=new Tr.Hands({locateFile:(Q,C)=>(x.assetsUri||Bn.defaultAssetsBaseUrl+"hands/"+this.getVersion("hands"))+"/"+Q});break;case"holistic":A=new Fr.Holistic({locateFile:(Q,C)=>(x.assetsUri||Bn.defaultAssetsBaseUrl+"holistic/"+this.getVersion("holistic"))+"/"+Q});break;case"objectron":A=new Ir.Objectron({locateFile:(Q,C)=>(x.assetsUri||Bn.defaultAssetsBaseUrl+"objectron/"+this.getVersion("objectron"))+"/"+Q});break;case"selfie_segmentation":A=new Sr.SelfieSegmentation({locateFile:(Q,C)=>(x.assetsUri||Bn.defaultAssetsBaseUrl+"selfie_segmentation/"+this.getVersion("selfie_segmentation"))+"/"+Q});break;case"pose":A=new Nr.Pose({locateFile:(Q,C)=>(x.assetsUri||Bn.defaultAssetsBaseUrl+"pose/"+this.getVersion("pose"))+"/"+Q});break;default:W("unknown model type");return}A.onResults(x.listener),x.options&&A.setOptions(x.options);try{await A.initialize(),this.mediapipeMap_.set(x.modelType,A)}catch(Q){W(Q);return}}v()})}close(V){return new Promise((v,W)=>{let I=[];if(V){let x=this.mediapipeMap_.get(V);if(x)this.mediapipeMap_.delete(V),I.push(x.close());else{W("model not exit");return}}else{for(const[x,A]of this.mediapipeMap_.entries())I.push(A.close());this.mediapipeMap_.clear()}Promise.all(I).then(()=>{v()}).catch(x=>{W(x)})})}send(V,v){return new Promise((W,I)=>{let x=[];if(v){let A=this.mediapipeMap_.get(v);if(A)x.push(A.send({image:V}));else{I("model not exit");return}}else for(const[A,Q]of this.mediapipeMap_.entries())x.push(Q.send({image:V}));Promise.all(x).then(()=>{W()}).catch(A=>{I(A)})})}reset(V){if(V){let v=this.mediapipeMap_.get(V);v&&typeof v.reset=="function"&&v.reset()}else for(const[v,W]of this.mediapipeMap_.entries())W&&typeof W.reset=="function"&&W.reset()}};let $r=Bn;$r.defaultAssetsBaseUrl="https://d3opqjmqzxf057.cloudfront.net/ml/mediapipe/";class Yi{static createVideoReadable(v){return new Promise((W,I)=>{const x=document.createElement("video");let A=new AbortController,Q=new AbortController;x.addEventListener("canplay",()=>{A.abort(),x.muted=!0,x.loop=!0,x.play().then(()=>{try{const C=x.captureStream(),pt=new MediaStreamTrackProcessor(C.getVideoTracks()[0]);W(pt.readable)}catch(C){I(C)}})},{once:!0,signal:Q.signal}),x.addEventListener("error",C=>{Q.abort(),I("loading error:"+C)},{once:!0,signal:A.signal}),x.src=v})}static createImageCanvas(v){return new Promise((W,I)=>{var x=new Image;x.onload=function(){createImageBitmap(x).then(A=>{x.remove(),W(A)}).catch(A=>{I(A)})},x.onerror=function(A){I(A)},x.src=v})}}class t2 extends Ei{constructor(){super(),this.worker_=new $o,this.trackExpectedRate_=-1,this.workerInited_=!1,this.mediapipeHelper_=new $r,this.innerEmitty_=new Ei,this.worker_.addEventListener("message",v=>{if(v.data instanceof ImageBitmap)this.mediapipeHelper_.send(v.data).then(()=>{v.data.close()}).catch(W=>{let I={error:W,eventMetaData:{transformerIndex:-1},function:"transform"};this.emit("error",I)});else{let W=JSON.parse(v.data);if(W.callbackType==="success"||W.callbackType==="error")W.message==="init"?this.innerEmitty_.emit("initResults",v.data):W.message==="transform"?this.innerEmitty_.emit("transformResults",v.data):W.message==="destroy"?this.innerEmitty_.emit("destroyResults",v.data):W.message==="setBackgroundOptions"?this.innerEmitty_.emit("setBackgroundOptionsResults",v.data):W.message==="setVideoBGReadable"?this.innerEmitty_.emit("setVideoBGReadableResults",v.data):W.message==="setVirtualBGImage"&&this.innerEmitty_.emit("setVirtualBGImageResults",v.data);else if(W.callbackType==="media_processor_error_event")this.emit("error",W.message);else if(W.callbackType==="media_processor_warn_event")this.emit("warn",W.message);else if(W.callbackType==="media_processor_pipeline_event"){this.emit("pipelineInfo",W.message);let I=W.message;(I.message==="pipeline_ended"||I.message==="pipeline_ended_with_error")&&this.mediapipeHelper_.close().finally(()=>{this.worker_&&(this.cleanInnerEmitty(),this.worker_.terminate(),this.workerInited_=!1,this.worker_=void 0)})}}})}cleanInnerEmitty(){let v="Worker ended";this.innerEmitty_.listenerCount("initResults")&&this.innerEmitty_.emit("initResults",JSON.stringify({error:v})),this.innerEmitty_.listenerCount("destroyResults")&&this.innerEmitty_.emit("destroyResults",JSON.stringify({error:v})),this.innerEmitty_.listenerCount("setBackgroundOptionsResults")&&this.innerEmitty_.emit("setBackgroundOptionsResults",JSON.stringify({error:v})),this.innerEmitty_.listenerCount("setVideoBGReadableResults")&&this.innerEmitty_.emit("setVideoBGReadableResults",JSON.stringify({error:v})),this.innerEmitty_.listenerCount("setVirtualBGImageResults")&&this.innerEmitty_.emit("setVirtualBGImageResults",JSON.stringify({error:v})),this.innerEmitty_.listenerCount("transformResults")&&this.innerEmitty_.emit("transformResults",JSON.stringify({error:v}))}init(v){return new Promise((W,I)=>{if(!this.worker_){I("worker is off");return}let x={modelSelection:1,selfieMode:!1};this.mediapipeHelper_.initialize({mediaPipeModelConfigArray:[{assetsUri:v.mediapipeBaseAssetsUri,modelType:"selfie_segmentation",options:x,listener:A=>{let Q=A;this.worker_&&this.worker_.postMessage(Q.segmentationMask,[Q.segmentationMask])}}]}).then(()=>{let A=JSON.stringify(Bo());if(typeof A!="string"&&(A=JSON.stringify({})),!this.worker_){I("worker is off");return}this.worker_.postMessage({operation:"init",metaData:A}),this.innerEmitty_.once("initResults").then(Q=>{let C=JSON.parse(Q);C.callbackType==="success"?(this.workerInited_=!0,this.trackExpectedRate_!=-1&&this.postTrackExpectedRate(),this.setBackgroundOptions(v).then(()=>{W()}).catch(pt=>{I(pt)})):I(C.error)}).catch(Q=>{I(Q)})}).catch(A=>{I(A)})})}transform(v,W){return new Promise(async(I,x)=>{if(!this.worker_){x("worker is off");return}this.worker_.postMessage({operation:"transform",readable:v,writable:W},[v,W]),this.innerEmitty_.once("transformResults").then(A=>{let Q=JSON.parse(A);Q.callbackType==="success"?I():x(Q.error)}).catch(A=>{x(A)})})}destroy(){return new Promise(async(v,W)=>{if(!this.worker_){v();return}this.worker_.postMessage({operation:"destroy"}),this.innerEmitty_.once("destroyResults").then(I=>{let x=JSON.parse(I);x.callbackType==="success"?this.mediapipeHelper_.close().then(()=>{v()}).catch(A=>{W(A)}):W(x.error)}).catch(I=>{W(I)})})}setTrackExpectedRate(v){this.trackExpectedRate_=v,this.postTrackExpectedRate()}postTrackExpectedRate(){this.workerInited_&&this.worker_.postMessage({operation:"setTrackExpectedRate",rate:this.trackExpectedRate_})}setBackgroundOptions(v){return new Promise((W,I)=>{if(!this.worker_){I("worker is off");return}this.worker_.postMessage({operation:"setBackgroundOptions",backgroundOptions:JSON.stringify(v)}),this.innerEmitty_.once("setBackgroundOptionsResults").then(x=>{let A=JSON.parse(x);A.callbackType==="success"?v.transformerType==="VideoBackground"?Yi.createVideoReadable(v.backgroundAssetUri).then(Q=>{if(!this.worker_){I("worker is off");return}this.worker_.postMessage({operation:"setVideoBGReadable",readable:Q},[Q]),this.innerEmitty_.once("setVideoBGReadableResults").then(C=>{let pt=JSON.parse(C);pt.callbackType==="success"?W():I(pt.error)}).catch(C=>{I(C)})}).catch(Q=>{I(Q)}):v.transformerType==="VirtualBackground"?Yi.createImageCanvas(v.backgroundAssetUri).then(Q=>{if(!this.worker_){I("worker is off");return}this.worker_.postMessage({operation:"setVirtualBGImage",image:Q},[Q]),this.innerEmitty_.once("setVirtualBGImageResults").then(C=>{let pt=JSON.parse(C);pt.callbackType==="success"?W():I(pt.error)}).catch(C=>{I(C)})}).catch(Q=>{I(Q)}):W():I(A.error)}).catch(x=>{I(x)})})}}var Ui=(V=>(V.Low="Low",V.High="High",V))(Ui||{});const e2=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]));function n2(){return new Promise(async(V,v)=>{try{await ir()}catch(W){v(W);return}e2().then(W=>{if(W===!1){v("Your browser does not support WebAssembly features.");return}V()}).catch(W=>{v(W)})})}let On,Er=-1;function r2(){return On}function i2(V){Er=V,typeof On!="undefined"&&On.setTrackExpectedRate(Er)}function o2(V){return new Promise(async(v,W)=>{On=new t2,Er!=-1&&On.setTrackExpectedRate(Er),On.init(V).then(()=>{const I=new Do(On);v(I)}).catch(I=>{W(I)})})}function u2(V){return new Promise((v,W)=>{On?On.setBackgroundOptions(V).then(()=>{v()}).catch(I=>{W(I)}):W("media processor is not set")})}Rn.BlurRadius=Ui,Rn.MediapipeHelper=$r,Rn.VonageFacedetection=xr,Rn.VonageFacemash=Lr,Rn.VonageHands=Tr,Rn.VonageHolistic=Fr,Rn.VonageObjectron=Ir,Rn.VonagePose=Nr,Rn.VonageSelfiesegmentation=Sr,Rn.createVonageMediaProcessorConnector=o2,Rn.getVonageEventEmitter=r2,Rn.isSupported=n2,Rn.setBackgroundOptions=u2,Rn.setTrackExpectedRate=i2,Object.defineProperties(Rn,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|