diff --git a/plugins/visage/visage.css b/plugins/visage/visage.css index 3ff91e02..e70f75e8 100644 --- a/plugins/visage/visage.css +++ b/plugins/visage/visage.css @@ -690,7 +690,7 @@ border-radius: var(--v-r); overflow: hidden; cursor: pointer; - transition: transform 0.25s var(--v-ease), box-shadow 0.25s var(--v-ease), border-color 0.2s ease; + transition: box-shadow 0.25s var(--v-ease), border-color 0.2s ease; border: 1.5px solid var(--v-border); background: var(--v-surface-3); display: flex; @@ -698,15 +698,10 @@ } .visage-performer-card:hover { - transform: translateY(-4px); border-color: var(--v-border-hover); box-shadow: 0 16px 40px rgba(0, 0, 0, 0.4), 0 0 0 1px var(--v-accent-glow); } -.visage-performer-card:active { - transform: translateY(-2px); -} - .visage-performer-card:focus-visible { outline: 2px solid var(--v-accent); outline-offset: 2px; @@ -789,13 +784,10 @@ height: 100%; object-fit: cover; object-position: top center; - transition: transform 0.4s var(--v-ease); display: block; } -.visage-performer-card:hover .visage-portrait-img { - transform: scale(1.05); -} + /* Gradient overlay on bottom of portrait */ .visage-card-img-overlay { @@ -1793,6 +1785,223 @@ pointer-events: none; } +/* ======================== + MOBILE (≤768px) + Everything below is wrapped in a media query so desktop is untouched. + ======================== */ + +@media (max-width: 768px) { + + .visage-modal { + width: 100vw; + max-width: 100vw; + max-height: 100vh; + border-radius: 0; + border-left: none; + border-right: none; + } + + .visage-modal-header { + padding: 0.6rem 1rem; + } + + .visage-modal-title h2 { + font-size: 0.55rem; + } + + .visage-match-count { + font-size: 0.55rem; + } + + .visage-face-tabs { + padding: 0.5rem 0.75rem; + gap: 0.4rem; + } + + .visage-face-tab-image { + width: 44px; + height: 56px; + } + + .visage-modal-body { + flex-direction: column; + } + + .visage-left-panel { + width: 100%; + flex-direction: row; + align-items: center; + padding: 0.75rem 1rem; + border-right: none; + border-bottom: 1px solid var(--v-border); + gap: 0.75rem; + overflow-x: auto; + } + + .visage-left-panel > div { + flex-shrink: 0; + } + + .visage-section-label, + .visage-section-label-name { + font-size: 0.5rem; + margin-bottom: 0.25rem; + white-space: nowrap; + } + + .visage-detect-frame, + .visage-match-frame { + width: 64px; + aspect-ratio: 1; + } + + .visage-match-frame { + aspect-ratio: 2 / 3; + } + + .visage-vs-divider { + font-size: 0.5rem; + gap: 0.25rem; + } + + .visage-vs-divider::before, + .visage-vs-divider::after { + display: none; + } + + .visage-right-panel { + padding: 0.75rem; + } + + .visage-performer-grid { + grid-template-columns: repeat(2, 1fr); + gap: 0.5rem; + } + + .visage-performer-card { + border-radius: 8px; + } + + .visage-card-portrait { + aspect-ratio: 3 / 4; + } + + .visage-card-meta { + padding: 0.4rem 0.4rem 0.35rem; + gap: 0.15rem; + } + + .visage-performer-name { + font-size: 0.68rem; + -webkit-line-clamp: 1; + } + + .visage-card-stats { + gap: 0.15rem; + } + + .visage-confidence-pct { + font-size: 0.6rem; + } + + .visage-card-check-badge { + width: 22px; + height: 22px; + top: 4px; + right: 4px; + } + + .visage-sprite-toolbar { + flex-wrap: wrap; + padding: 0.4rem 0.75rem; + gap: 0.5rem; + } + + .visage-threshold-text { + font-size: 0.55rem; + } + + .visage-sprite-threshold input[type="range"] { + width: 48px; + } + + .visage-modal-footer .visage-footer-main { + flex-direction: column; + gap: 0.5rem; + padding: 0.6rem 1rem; + } + + .visage-progress-info { + align-items: center; + text-align: center; + } + + .visage-keyboard-hints { + display: none; + } + + .visage-button-group { + width: 100%; + justify-content: center; + } + + .visage-btn { + padding: 0.5rem 0.75rem; + font-size: 0.72rem; + } + + .visage-ext-patreon-btn { + font-size: 10px; + padding: 6px 12px; + } + + .visage-sprite-modal { + width: 100vw; + } + + .visage-sprite-grid { + grid-template-columns: 1fr; + } + + .visage-sprite-compare { + flex-direction: row; + } + + .visage-sprite-vs { + width: 26px; + height: 26px; + } + + .visage-sprite-vs span { + font-size: 0.45rem; + } + + .visage-sprite-info { + padding: 0.5rem 0.6rem 0.4rem; + } + + .visage-sprite-performer-link { + font-size: 0.78rem; + } + + .visage-sprite-summary-text .visage-sprite-performer-link { + font-size: 0.82rem; + } + + .visage-sprite-card { + border-radius: 10px; + } + + .visage-sprite-stats-row { + font-size: 0.55rem; + } + + .visage-sprite-conf-badge { + font-size: 0.55rem; + } + +} + @media (prefers-reduced-motion: reduce) { .visage-ext-patreon-btn::after { animation: none; diff --git a/plugins/visage/visage.js b/plugins/visage/visage.js index 43029b2a..fe570c4b 100644 --- a/plugins/visage/visage.js +++ b/plugins/visage/visage.js @@ -1,4 +1,4 @@ -!function(){"use strict";const A=window.PluginApi.React,{createContext:e,useContext:t,useReducer:r,useCallback:n}=A,s={scenario:null,scenarioId:null,selectedFaceId:null,matches:[],facesData:[],loading:{},showMatchModal:!1,showFrameSelector:!1,showSpriteModal:!1,frameSelectorUrl:"",spriteResult:null,detectionMode:"sprite",scanProgress:0,scanProgressDesc:""};function o(A,e){switch(e.type){case"SET_SCENARIO":return{...A,scenario:e.scenario,scenarioId:e.id};case"SET_MATCHES":return{...A,matches:e.matches,showMatchModal:!0};case"SET_FACES_DATA":return{...A,facesData:e.data,frameSelectorUrl:e.url,showFrameSelector:!0};case"SET_SELECTED_FACE":return{...A,selectedFaceId:e.id};case"SET_LOADING":return{...A,loading:{...A.loading,[e.key]:e.value}};case"CLEAR_LOADING":{const t={...A.loading};return delete t[e.key],{...A,loading:t}}case"SHOW_MATCH_MODAL":return{...A,showMatchModal:e.show};case"SHOW_FRAME_SELECTOR":return{...A,showFrameSelector:e.show};case"SHOW_SPRITE_MODAL":return{...A,showSpriteModal:e.show};case"CLEAR_MATCHES":return{...A,matches:[],showMatchModal:!1};case"SET_SPRITE_RESULT":return{...A,spriteResult:e.result,showSpriteModal:!0};case"CLEAR_SPRITE_RESULT":return{...A,spriteResult:null,showSpriteModal:!1,scanProgress:0,scanProgressDesc:""};case"SET_DETECTION_MODE":return{...A,detectionMode:e.mode};case"SET_SCAN_PROGRESS":return{...A,scanProgress:e.progress,scanProgressDesc:e.desc};case"RESET":return{...s,scanProgress:0,scanProgressDesc:""};default:return A}}const i=e(null);function B({children:e,scenario:t,scenarioId:B}){const[a,c]=r(o,{...s,scenario:t||null,scenarioId:B||null}),l=n(((A,e)=>{c({type:"SET_SCENARIO",scenario:A,id:e})}),[]),g=n((A=>{c({type:"SET_MATCHES",matches:A})}),[]),u=n(((A,e)=>{c({type:"SET_FACES_DATA",data:A,url:e})}),[]),w=n((A=>{c({type:"SET_SELECTED_FACE",id:A})}),[]),Q=n(((A,e)=>{c({type:"SET_LOADING",key:A,value:e})}),[]),d=n((A=>{c({type:"CLEAR_LOADING",key:A})}),[]),C=n((A=>{c({type:"SHOW_MATCH_MODAL",show:A})}),[]),h=n((A=>{c({type:"SHOW_FRAME_SELECTOR",show:A})}),[]),U=n((A=>{c({type:"SHOW_SPRITE_MODAL",show:A})}),[]),F=n((()=>{c({type:"CLEAR_MATCHES"})}),[]),f=n((A=>{c({type:"SET_SPRITE_RESULT",result:A})}),[]),p=n((()=>{c({type:"CLEAR_SPRITE_RESULT"})}),[]),m=n((A=>{c({type:"SET_DETECTION_MODE",mode:A})}),[]),E=n(((A,e)=>{c({type:"SET_SCAN_PROGRESS",progress:A,desc:e})}),[]),H=n((()=>{c({type:"RESET"})}),[]),y={state:a,dispatch:c,setScenario:l,setMatches:g,setFacesData:u,setSelectedFace:w,setLoading:Q,clearLoading:d,showMatchModal:C,showFrameSelector:h,showSpriteModal:U,clearMatches:F,setSpriteResult:f,clearSpriteResult:p,setDetectionMode:m,setScanProgress:E,reset:H};return A.createElement(i.Provider,{value:y},e)}function a(){const A=t(i);if(!A)throw new Error("useVisage must be used within a VisageProvider");return A}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self; +!function(){"use strict";const A=window.PluginApi.React,{createContext:e,useContext:t,useReducer:r,useCallback:n}=A,s={scenario:null,scenarioId:null,selectedFaceId:null,matches:[],facesData:[],loading:{},showMatchModal:!1,showFrameSelector:!1,showSpriteModal:!1,frameSelectorUrl:"",spriteResult:null,detectionMode:"sprite",scanProgress:0,scanProgressDesc:""};function o(A,e){switch(e.type){case"SET_SCENARIO":return{...A,scenario:e.scenario,scenarioId:e.id};case"SET_MATCHES":return{...A,matches:e.matches,showMatchModal:!0};case"SET_FACES_DATA":return{...A,facesData:e.data,frameSelectorUrl:e.url,showFrameSelector:!0};case"SET_SELECTED_FACE":return{...A,selectedFaceId:e.id};case"SET_LOADING":return{...A,loading:{...A.loading,[e.key]:e.value}};case"CLEAR_LOADING":{const t={...A.loading};return delete t[e.key],{...A,loading:t}}case"SHOW_MATCH_MODAL":return{...A,showMatchModal:e.show};case"SHOW_FRAME_SELECTOR":return{...A,showFrameSelector:e.show};case"SHOW_SPRITE_MODAL":return{...A,showSpriteModal:e.show};case"CLEAR_MATCHES":return{...A,matches:[],showMatchModal:!1};case"SET_SPRITE_RESULT":return{...A,spriteResult:e.result,showSpriteModal:!0};case"CLEAR_SPRITE_RESULT":return{...A,spriteResult:null,showSpriteModal:!1,scanProgress:0,scanProgressDesc:""};case"SET_DETECTION_MODE":return{...A,detectionMode:e.mode};case"SET_SCAN_PROGRESS":return{...A,scanProgress:e.progress,scanProgressDesc:e.desc};case"RESET":return{...s,scanProgress:0,scanProgressDesc:""};default:return A}}const i=e(null);function a({children:e,scenario:t,scenarioId:a}){const[B,c]=r(o,{...s,scenario:t||null,scenarioId:a||null}),l=n(((A,e)=>{c({type:"SET_SCENARIO",scenario:A,id:e})}),[]),g=n((A=>{c({type:"SET_MATCHES",matches:A})}),[]),u=n(((A,e)=>{c({type:"SET_FACES_DATA",data:A,url:e})}),[]),w=n((A=>{c({type:"SET_SELECTED_FACE",id:A})}),[]),Q=n(((A,e)=>{c({type:"SET_LOADING",key:A,value:e})}),[]),d=n((A=>{c({type:"CLEAR_LOADING",key:A})}),[]),C=n((A=>{c({type:"SHOW_MATCH_MODAL",show:A})}),[]),h=n((A=>{c({type:"SHOW_FRAME_SELECTOR",show:A})}),[]),U=n((A=>{c({type:"SHOW_SPRITE_MODAL",show:A})}),[]),F=n((()=>{c({type:"CLEAR_MATCHES"})}),[]),f=n((A=>{c({type:"SET_SPRITE_RESULT",result:A})}),[]),p=n((()=>{c({type:"CLEAR_SPRITE_RESULT"})}),[]),m=n((A=>{c({type:"SET_DETECTION_MODE",mode:A})}),[]),E=n(((A,e)=>{c({type:"SET_SCAN_PROGRESS",progress:A,desc:e})}),[]),H=n((()=>{c({type:"RESET"})}),[]),y={state:B,dispatch:c,setScenario:l,setMatches:g,setFacesData:u,setSelectedFace:w,setLoading:Q,clearLoading:d,showMatchModal:C,showFrameSelector:h,showSpriteModal:U,clearMatches:F,setSpriteResult:f,clearSpriteResult:p,setDetectionMode:m,setScanProgress:E,reset:H};return A.createElement(i.Provider,{value:y},e)}function B(){const A=t(i);if(!A)throw new Error("useVisage must be used within a VisageProvider");return A}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self; /*! * html2canvas 1.4.1 * Copyright (c) 2022 Niklas von Hertzen @@ -19,4 +19,4 @@ var c,l,g=(c=function(A,e){A.exports=function(){ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ -var A=function(e,t){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(A,e){A.__proto__=e}||function(A,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(A[t]=e[t])},A(e,t)};function e(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}A(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var t=function(){return t=Object.assign||function(A){for(var e,t=1,r=arguments.length;t0&&n[n.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!n||s[1]>n[0]&&s[1]=55296&&n<=56319&&t>10),o%1024+56320)),(n+1===t||r.length>16384)&&(s+=String.fromCharCode.apply(String,r),r.length=0)}return s},l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",g="undefined"==typeof Uint8Array?[]:new Uint8Array(256),u=0;u>4,c[B++]=(15&r)<<4|n>>2,c[B++]=(3&n)<<6|63&s;return a},h=function(A){for(var e=A.length,t=[],r=0;r>F,E=(1<>F)+32,y=65536>>f,v=(1<=0){if(A<55296||A>56319&&A<=65535)return e=((e=this.index[A>>F])<>F)])<>f),e=this.index[e],e+=A>>F&v,e=((e=this.index[e])<M?(n.push(!0),o-=M):n.push(!1),-1!==["normal","auto","loose"].indexOf(e)&&-1!==[8208,8211,12316,12448].indexOf(A))return r.push(s),t.push(q);if(o===V||o===J){if(0===s)return r.push(s),t.push(cA);var i=t[s-1];return-1===xA.indexOf(i)?(r.push(r[s-1]),t.push(i)):(r.push(s),t.push(cA))}return r.push(s),o===lA?t.push("strict"===e?eA:CA):o===pA||o===aA?t.push(cA):o===mA?A>=131072&&A<=196605||A>=196608&&A<=262141?t.push(CA):t.push(cA):void t.push(o)})),[r,t,n]},OA=function(A,e,t,r){var n=r[t];if(Array.isArray(A)?-1!==A.indexOf(n):A===n)for(var s=t;s<=r.length;){if((B=r[++s])===e)return!0;if(B!==X)break}if(n===X)for(s=t;s>0;){var o=r[--s];if(Array.isArray(A)?-1!==A.indexOf(o):A===o)for(var i=t;i<=r.length;){var B;if((B=r[++i])===e)return!0;if(B!==X)break}if(o!==X)break}return!1},kA=function(A,e){for(var t=A;t>=0;){var r=e[t];if(r!==X)return r;t--}return 0},VA=function(A,e,t,r,n){if(0===t[r])return yA;var s=r-1;if(Array.isArray(n)&&!0===n[s])return yA;var o=s-1,i=s+1,B=e[s],a=o>=0?e[o]:0,c=e[i];if(B===O&&c===k)return yA;if(-1!==bA.indexOf(B))return HA;if(-1!==bA.indexOf(c))return yA;if(-1!==LA.indexOf(c))return yA;if(kA(s,e)===R)return vA;if(IA.get(A[s])===J)return yA;if((B===gA||B===uA)&&IA.get(A[i])===J)return yA;if(B===N||c===N)return yA;if(B===P)return yA;if(-1===[X,Y,Z].indexOf(B)&&c===P)return yA;if(-1!==[j,z,$,nA,BA].indexOf(c))return yA;if(kA(s,e)===tA)return yA;if(OA(rA,tA,s,e))return yA;if(OA([j,z],eA,s,e))return yA;if(OA(W,W,s,e))return yA;if(B===X)return vA;if(B===rA||c===rA)return yA;if(c===q||B===q)return vA;if(-1!==[Y,Z,eA].indexOf(c)||B===_)return yA;if(a===dA&&-1!==MA.indexOf(B))return yA;if(B===BA&&c===dA)return yA;if(c===AA)return yA;if(-1!==KA.indexOf(c)&&B===sA||-1!==KA.indexOf(B)&&c===sA)return yA;if(B===iA&&-1!==[CA,gA,uA].indexOf(c)||-1!==[CA,gA,uA].indexOf(B)&&c===oA)return yA;if(-1!==KA.indexOf(B)&&-1!==DA.indexOf(c)||-1!==DA.indexOf(B)&&-1!==KA.indexOf(c))return yA;if(-1!==[iA,oA].indexOf(B)&&(c===sA||-1!==[tA,Z].indexOf(c)&&e[i+1]===sA)||-1!==[tA,Z].indexOf(B)&&c===sA||B===sA&&-1!==[sA,BA,nA].indexOf(c))return yA;if(-1!==[sA,BA,nA,j,z].indexOf(c))for(var l=s;l>=0;){if((g=e[l])===sA)return yA;if(-1===[BA,nA].indexOf(g))break;l--}if(-1!==[iA,oA].indexOf(c))for(l=-1!==[j,z].indexOf(B)?o:s;l>=0;){var g;if((g=e[l])===sA)return yA;if(-1===[BA,nA].indexOf(g))break;l--}if(hA===B&&-1!==[hA,UA,wA,QA].indexOf(c)||-1!==[UA,wA].indexOf(B)&&-1!==[UA,FA].indexOf(c)||-1!==[FA,QA].indexOf(B)&&c===FA)return yA;if(-1!==SA.indexOf(B)&&-1!==[AA,oA].indexOf(c)||-1!==SA.indexOf(c)&&B===iA)return yA;if(-1!==KA.indexOf(B)&&-1!==KA.indexOf(c))return yA;if(B===nA&&-1!==KA.indexOf(c))return yA;if(-1!==KA.concat(sA).indexOf(B)&&c===tA&&-1===EA.indexOf(A[i])||-1!==KA.concat(sA).indexOf(c)&&B===z)return yA;if(B===fA&&c===fA){for(var u=t[s],w=1;u>0&&e[--u]===fA;)w++;if(w%2!=0)return yA}return B===gA&&c===uA?yA:vA},GA=function(A,e){e||(e={lineBreak:"normal",wordBreak:"normal"});var t=TA(A,e.lineBreak),r=t[0],n=t[1],s=t[2];"break-all"!==e.wordBreak&&"break-word"!==e.wordBreak||(n=n.map((function(A){return-1!==[sA,cA,pA].indexOf(A)?CA:A})));var o="keep-all"===e.wordBreak?s.map((function(e,t){return e&&A[t]>=19968&&A[t]<=40959})):void 0;return[r,n,o]},NA=function(){function A(A,e,t,r){this.codePoints=A,this.required=e===HA,this.start=t,this.end=r}return A.prototype.slice=function(){return c.apply(void 0,this.codePoints.slice(this.start,this.end))},A}(),RA=function(A,e){var t=a(A),r=GA(t,e),n=r[0],s=r[1],o=r[2],i=t.length,B=0,c=0;return{next:function(){if(c>=i)return{done:!0,value:null};for(var A=yA;c=Me&&A<=57},Ye=function(A){return A>=55296&&A<=57343},_e=function(A){return We(A)||A>=Ne&&A<=Pe||A>=Te&&A<=ke},Ze=function(A){return A>=Te&&A<=Ge},qe=function(A){return A>=Ne&&A<=Je},je=function(A){return Ze(A)||qe(A)},ze=function(A){return A>=Fe},$e=function(A){return A===YA||A===qA||A===jA},At=function(A){return je(A)||ze(A)||A===oe},et=function(A){return At(A)||We(A)||A===ie},tt=function(A){return A>=Ie&&A<=Ke||A===be||A>=Le&&A<=De||A===xe},rt=function(A,e){return A===ZA&&e!==YA},nt=function(A,e,t){return A===ie?At(e)||rt(e,t):!!At(A)||!(A!==ZA||!rt(A,e))},st=function(A,e,t){return A===me||A===ie?!!We(e)||e===ve&&We(t):We(A===ve?e:A)},ot=function(A){var e=0,t=1;A[e]!==me&&A[e]!==ie||(A[e]===ie&&(t=-1),e++);for(var r=[];We(A[e]);)r.push(A[e++]);var n=r.length?parseInt(c.apply(void 0,r),10):0;A[e]===ve&&e++;for(var s=[];We(A[e]);)s.push(A[e++]);var o=s.length,i=o?parseInt(c.apply(void 0,s),10):0;A[e]!==Re&&A[e]!==Oe||e++;var B=1;A[e]!==me&&A[e]!==ie||(A[e]===ie&&(B=-1),e++);for(var a=[];We(A[e]);)a.push(A[e++]);var l=a.length?parseInt(c.apply(void 0,a),10):0;return t*(n+i*Math.pow(10,-o))*Math.pow(10,B*l)},it={type:2},Bt={type:3},at={type:4},ct={type:13},lt={type:8},gt={type:21},ut={type:9},wt={type:10},Qt={type:11},dt={type:12},Ct={type:14},ht={type:23},Ut={type:1},Ft={type:25},ft={type:24},pt={type:26},mt={type:27},Et={type:28},Ht={type:29},yt={type:31},vt={type:32},It=function(){function A(){this._value=[]}return A.prototype.write=function(A){this._value=this._value.concat(a(A))},A.prototype.read=function(){for(var A=[],e=this.consumeToken();e!==vt;)A.push(e),e=this.consumeToken();return A},A.prototype.consumeToken=function(){var A=this.consumeCodePoint();switch(A){case zA:return this.consumeStringToken(zA);case Ae:var e=this.peekCodePoint(0),t=this.peekCodePoint(1),r=this.peekCodePoint(2);if(et(e)||rt(t,r)){var n=nt(e,t,r)?XA:PA;return{type:5,value:this.consumeName(),flags:n}}break;case ee:if(this.peekCodePoint(0)===$A)return this.consumeCodePoint(),ct;break;case re:return this.consumeStringToken(re);case ne:return it;case se:return Bt;case pe:if(this.peekCodePoint(0)===$A)return this.consumeCodePoint(),Ct;break;case me:if(st(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case Ee:return at;case ie:var s=A,o=this.peekCodePoint(0),i=this.peekCodePoint(1);if(st(s,o,i))return this.reconsumeCodePoint(A),this.consumeNumericToken();if(nt(s,o,i))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();if(o===ie&&i===ce)return this.consumeCodePoint(),this.consumeCodePoint(),ft;break;case ve:if(st(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case _A:if(this.peekCodePoint(0)===pe)for(this.consumeCodePoint();;){var B=this.consumeCodePoint();if(B===pe&&(B=this.consumeCodePoint())===_A)return this.consumeToken();if(B===Se)return this.consumeToken()}break;case He:return pt;case ye:return mt;case ae:if(this.peekCodePoint(0)===Be&&this.peekCodePoint(1)===ie&&this.peekCodePoint(2)===ie)return this.consumeCodePoint(),this.consumeCodePoint(),Ft;break;case le:var a=this.peekCodePoint(0),l=this.peekCodePoint(1),g=this.peekCodePoint(2);if(nt(a,l,g))return{type:7,value:this.consumeName()};break;case ge:return Et;case ZA:if(rt(A,this.peekCodePoint(0)))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();break;case ue:return Ht;case we:if(this.peekCodePoint(0)===$A)return this.consumeCodePoint(),lt;break;case Qe:return Qt;case Ce:return dt;case Ve:case Xe:var u=this.peekCodePoint(0),w=this.peekCodePoint(1);return u!==me||!_e(w)&&w!==de||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(A),this.consumeIdentLikeToken();case he:if(this.peekCodePoint(0)===$A)return this.consumeCodePoint(),ut;if(this.peekCodePoint(0)===he)return this.consumeCodePoint(),gt;break;case Ue:if(this.peekCodePoint(0)===$A)return this.consumeCodePoint(),wt;break;case Se:return vt}return $e(A)?(this.consumeWhiteSpace(),yt):We(A)?(this.reconsumeCodePoint(A),this.consumeNumericToken()):At(A)?(this.reconsumeCodePoint(A),this.consumeIdentLikeToken()):{type:6,value:c(A)}},A.prototype.consumeCodePoint=function(){var A=this._value.shift();return void 0===A?-1:A},A.prototype.reconsumeCodePoint=function(A){this._value.unshift(A)},A.prototype.peekCodePoint=function(A){return A>=this._value.length?-1:this._value[A]},A.prototype.consumeUnicodeRangeToken=function(){for(var A=[],e=this.consumeCodePoint();_e(e)&&A.length<6;)A.push(e),e=this.consumeCodePoint();for(var t=!1;e===de&&A.length<6;)A.push(e),e=this.consumeCodePoint(),t=!0;if(t)return{type:30,start:parseInt(c.apply(void 0,A.map((function(A){return A===de?Me:A}))),16),end:parseInt(c.apply(void 0,A.map((function(A){return A===de?Pe:A}))),16)};var r=parseInt(c.apply(void 0,A),16);if(this.peekCodePoint(0)===ie&&_e(this.peekCodePoint(1))){this.consumeCodePoint(),e=this.consumeCodePoint();for(var n=[];_e(e)&&n.length<6;)n.push(e),e=this.consumeCodePoint();return{type:30,start:r,end:parseInt(c.apply(void 0,n),16)}}return{type:30,start:r,end:r}},A.prototype.consumeIdentLikeToken=function(){var A=this.consumeName();return"url"===A.toLowerCase()&&this.peekCodePoint(0)===ne?(this.consumeCodePoint(),this.consumeUrlToken()):this.peekCodePoint(0)===ne?(this.consumeCodePoint(),{type:19,value:A}):{type:20,value:A}},A.prototype.consumeUrlToken=function(){var A=[];if(this.consumeWhiteSpace(),this.peekCodePoint(0)===Se)return{type:22,value:""};var e=this.peekCodePoint(0);if(e===re||e===zA){var t=this.consumeStringToken(this.consumeCodePoint());return 0===t.type&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===Se||this.peekCodePoint(0)===se)?(this.consumeCodePoint(),{type:22,value:t.value}):(this.consumeBadUrlRemnants(),ht)}for(;;){var r=this.consumeCodePoint();if(r===Se||r===se)return{type:22,value:c.apply(void 0,A)};if($e(r))return this.consumeWhiteSpace(),this.peekCodePoint(0)===Se||this.peekCodePoint(0)===se?(this.consumeCodePoint(),{type:22,value:c.apply(void 0,A)}):(this.consumeBadUrlRemnants(),ht);if(r===zA||r===re||r===ne||tt(r))return this.consumeBadUrlRemnants(),ht;if(r===ZA){if(!rt(r,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),ht;A.push(this.consumeEscapedCodePoint())}else A.push(r)}},A.prototype.consumeWhiteSpace=function(){for(;$e(this.peekCodePoint(0));)this.consumeCodePoint()},A.prototype.consumeBadUrlRemnants=function(){for(;;){var A=this.consumeCodePoint();if(A===se||A===Se)return;rt(A,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},A.prototype.consumeStringSlice=function(A){for(var e=5e4,t="";A>0;){var r=Math.min(e,A);t+=c.apply(void 0,this._value.splice(0,r)),A-=r}return this._value.shift(),t},A.prototype.consumeStringToken=function(A){for(var e="",t=0;;){var r=this._value[t];if(r===Se||void 0===r||r===A)return{type:0,value:e+=this.consumeStringSlice(t)};if(r===YA)return this._value.splice(0,t),Ut;if(r===ZA){var n=this._value[t+1];n!==Se&&void 0!==n&&(n===YA?(e+=this.consumeStringSlice(t),t=-1,this._value.shift()):rt(r,n)&&(e+=this.consumeStringSlice(t),e+=c(this.consumeEscapedCodePoint()),t=-1))}t++}},A.prototype.consumeNumber=function(){var A=[],e=JA,t=this.peekCodePoint(0);for(t!==me&&t!==ie||A.push(this.consumeCodePoint());We(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0);var r=this.peekCodePoint(1);if(t===ve&&We(r))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=WA;We(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0),r=this.peekCodePoint(1);var n=this.peekCodePoint(2);if((t===Re||t===Oe)&&((r===me||r===ie)&&We(n)||We(r)))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=WA;We(this.peekCodePoint(0));)A.push(this.consumeCodePoint());return[ot(A),e]},A.prototype.consumeNumericToken=function(){var A=this.consumeNumber(),e=A[0],t=A[1],r=this.peekCodePoint(0),n=this.peekCodePoint(1),s=this.peekCodePoint(2);return nt(r,n,s)?{type:15,number:e,flags:t,unit:this.consumeName()}:r===te?(this.consumeCodePoint(),{type:16,number:e,flags:t}):{type:17,number:e,flags:t}},A.prototype.consumeEscapedCodePoint=function(){var A=this.consumeCodePoint();if(_e(A)){for(var e=c(A);_e(this.peekCodePoint(0))&&e.length<6;)e+=c(this.consumeCodePoint());$e(this.peekCodePoint(0))&&this.consumeCodePoint();var t=parseInt(e,16);return 0===t||Ye(t)||t>1114111?fe:t}return A===Se?fe:A},A.prototype.consumeName=function(){for(var A="";;){var e=this.consumeCodePoint();if(et(e))A+=c(e);else{if(!rt(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),A;A+=c(this.consumeEscapedCodePoint())}}},A}(),Kt=function(){function A(A){this._tokens=A}return A.create=function(e){var t=new It;return t.write(e),new A(t.read())},A.parseValue=function(e){return A.create(e).parseComponentValue()},A.parseValues=function(e){return A.create(e).parseComponentValues()},A.prototype.parseComponentValue=function(){for(var A=this.consumeToken();31===A.type;)A=this.consumeToken();if(32===A.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(A);var e=this.consumeComponentValue();do{A=this.consumeToken()}while(31===A.type);if(32===A.type)return e;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},A.prototype.parseComponentValues=function(){for(var A=[];;){var e=this.consumeComponentValue();if(32===e.type)return A;A.push(e),A.push()}},A.prototype.consumeComponentValue=function(){var A=this.consumeToken();switch(A.type){case 11:case 28:case 2:return this.consumeSimpleBlock(A.type);case 19:return this.consumeFunction(A)}return A},A.prototype.consumeSimpleBlock=function(A){for(var e={type:A,values:[]},t=this.consumeToken();;){if(32===t.type||kt(t,A))return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue()),t=this.consumeToken()}},A.prototype.consumeFunction=function(A){for(var e={name:A.value,values:[],type:18};;){var t=this.consumeToken();if(32===t.type||3===t.type)return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue())}},A.prototype.consumeToken=function(){var A=this._tokens.shift();return void 0===A?vt:A},A.prototype.reconsumeToken=function(A){this._tokens.unshift(A)},A}(),bt=function(A){return 15===A.type},Lt=function(A){return 17===A.type},Dt=function(A){return 20===A.type},xt=function(A){return 0===A.type},St=function(A,e){return Dt(A)&&A.value===e},Mt=function(A){return 31!==A.type},Tt=function(A){return 31!==A.type&&4!==A.type},Ot=function(A){var e=[],t=[];return A.forEach((function(A){if(4===A.type){if(0===t.length)throw new Error("Error parsing function args, zero tokens for arg");return e.push(t),void(t=[])}31!==A.type&&t.push(A)})),t.length&&e.push(t),e},kt=function(A,e){return 11===e&&12===A.type||28===e&&29===A.type||2===e&&3===A.type},Vt=function(A){return 17===A.type||15===A.type},Gt=function(A){return 16===A.type||Vt(A)},Nt=function(A){return A.length>1?[A[0],A[1]]:[A[0]]},Rt={type:17,number:0,flags:JA},Pt={type:16,number:50,flags:JA},Xt={type:16,number:100,flags:JA},Jt=function(A,e,t){var r=A[0],n=A[1];return[Wt(r,e),Wt(void 0!==n?n:r,t)]},Wt=function(A,e){if(16===A.type)return A.number/100*e;if(bt(A))switch(A.unit){case"rem":case"em":return 16*A.number;default:return A.number}return A.number},Yt="deg",_t="grad",Zt="rad",qt="turn",jt={name:"angle",parse:function(A,e){if(15===e.type)switch(e.unit){case Yt:return Math.PI*e.number/180;case _t:return Math.PI/200*e.number;case Zt:return e.number;case qt:return 2*Math.PI*e.number}throw new Error("Unsupported angle type")}},zt=function(A){return 15===A.type&&(A.unit===Yt||A.unit===_t||A.unit===Zt||A.unit===qt)},$t=function(A){switch(A.filter(Dt).map((function(A){return A.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[Rt,Rt];case"to top":case"bottom":return Ar(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[Rt,Xt];case"to right":case"left":return Ar(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[Xt,Xt];case"to bottom":case"top":return Ar(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[Xt,Rt];case"to left":case"right":return Ar(270)}return 0},Ar=function(A){return Math.PI*A/180},er={name:"color",parse:function(A,e){if(18===e.type){var t=ar[e.name];if(void 0===t)throw new Error('Attempting to parse an unsupported color function "'+e.name+'"');return t(A,e.values)}if(5===e.type){if(3===e.value.length){var r=e.value.substring(0,1),n=e.value.substring(1,2),s=e.value.substring(2,3);return nr(parseInt(r+r,16),parseInt(n+n,16),parseInt(s+s,16),1)}if(4===e.value.length){r=e.value.substring(0,1),n=e.value.substring(1,2),s=e.value.substring(2,3);var o=e.value.substring(3,4);return nr(parseInt(r+r,16),parseInt(n+n,16),parseInt(s+s,16),parseInt(o+o,16)/255)}if(6===e.value.length)return r=e.value.substring(0,2),n=e.value.substring(2,4),s=e.value.substring(4,6),nr(parseInt(r,16),parseInt(n,16),parseInt(s,16),1);if(8===e.value.length)return r=e.value.substring(0,2),n=e.value.substring(2,4),s=e.value.substring(4,6),o=e.value.substring(6,8),nr(parseInt(r,16),parseInt(n,16),parseInt(s,16),parseInt(o,16)/255)}if(20===e.type){var i=lr[e.value.toUpperCase()];if(void 0!==i)return i}return lr.TRANSPARENT}},tr=function(A){return 0==(255&A)},rr=function(A){var e=255&A,t=255&A>>8,r=255&A>>16,n=255&A>>24;return e<255?"rgba("+n+","+r+","+t+","+e/255+")":"rgb("+n+","+r+","+t+")"},nr=function(A,e,t,r){return(A<<24|e<<16|t<<8|Math.round(255*r)<<0)>>>0},sr=function(A,e){if(17===A.type)return A.number;if(16===A.type){var t=3===e?1:255;return 3===e?A.number/100*t:Math.round(A.number/100*t)}return 0},or=function(A,e){var t=e.filter(Tt);if(3===t.length){var r=t.map(sr),n=r[0],s=r[1],o=r[2];return nr(n,s,o,1)}if(4===t.length){var i=t.map(sr),B=(n=i[0],s=i[1],o=i[2],i[3]);return nr(n,s,o,B)}return 0};function ir(A,e,t){return t<0&&(t+=1),t>=1&&(t-=1),t<1/6?(e-A)*t*6+A:t<.5?e:t<2/3?6*(e-A)*(2/3-t)+A:A}var Br=function(A,e){var t=e.filter(Tt),r=t[0],n=t[1],s=t[2],o=t[3],i=(17===r.type?Ar(r.number):jt.parse(A,r))/(2*Math.PI),B=Gt(n)?n.number/100:0,a=Gt(s)?s.number/100:0,c=void 0!==o&&Gt(o)?Wt(o,1):1;if(0===B)return nr(255*a,255*a,255*a,1);var l=a<=.5?a*(B+1):a+B-a*B,g=2*a-l,u=ir(g,l,i+1/3),w=ir(g,l,i),Q=ir(g,l,i-1/3);return nr(255*u,255*w,255*Q,c)},ar={hsl:Br,hsla:Br,rgb:or,rgba:or},cr=function(A,e){return er.parse(A,Kt.create(e).parseComponentValue())},lr={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},gr={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(A,e){return e.map((function(A){if(Dt(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},ur={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},wr=function(A,e){var t=er.parse(A,e[0]),r=e[1];return r&&Gt(r)?{color:t,stop:r}:{color:t,stop:null}},Qr=function(A,e){var t=A[0],r=A[A.length-1];null===t.stop&&(t.stop=Rt),null===r.stop&&(r.stop=Xt);for(var n=[],s=0,o=0;os?n.push(B):n.push(s),s=B}else n.push(null)}var a=null;for(o=0;oA.optimumDistance)?{optimumCorner:e,optimumDistance:i}:A}),{optimumDistance:n?1/0:-1/0,optimumCorner:null}).optimumCorner},Fr=function(A,e,t,r,n){var s=0,o=0;switch(A.size){case 0:0===A.shape?s=o=Math.min(Math.abs(e),Math.abs(e-r),Math.abs(t),Math.abs(t-n)):1===A.shape&&(s=Math.min(Math.abs(e),Math.abs(e-r)),o=Math.min(Math.abs(t),Math.abs(t-n)));break;case 2:if(0===A.shape)s=o=Math.min(hr(e,t),hr(e,t-n),hr(e-r,t),hr(e-r,t-n));else if(1===A.shape){var i=Math.min(Math.abs(t),Math.abs(t-n))/Math.min(Math.abs(e),Math.abs(e-r)),B=Ur(r,n,e,t,!0),a=B[0],c=B[1];o=i*(s=hr(a-e,(c-t)/i))}break;case 1:0===A.shape?s=o=Math.max(Math.abs(e),Math.abs(e-r),Math.abs(t),Math.abs(t-n)):1===A.shape&&(s=Math.max(Math.abs(e),Math.abs(e-r)),o=Math.max(Math.abs(t),Math.abs(t-n)));break;case 3:if(0===A.shape)s=o=Math.max(hr(e,t),hr(e,t-n),hr(e-r,t),hr(e-r,t-n));else if(1===A.shape){i=Math.max(Math.abs(t),Math.abs(t-n))/Math.max(Math.abs(e),Math.abs(e-r));var l=Ur(r,n,e,t,!1);a=l[0],c=l[1],o=i*(s=hr(a-e,(c-t)/i))}}return Array.isArray(A.size)&&(s=Wt(A.size[0],r),o=2===A.size.length?Wt(A.size[1],n):s),[s,o]},fr=function(A,e){var t=Ar(180),r=[];return Ot(e).forEach((function(e,n){if(0===n){var s=e[0];if(20===s.type&&-1!==["top","left","right","bottom"].indexOf(s.value))return void(t=$t(e));if(zt(s))return void(t=(jt.parse(A,s)+Ar(270))%Ar(360))}var o=wr(A,e);r.push(o)})),{angle:t,stops:r,type:1}},pr="closest-side",mr="farthest-side",Er="closest-corner",Hr="farthest-corner",yr="circle",vr="ellipse",Ir="cover",Kr="contain",br=function(A,e){var t=0,r=3,n=[],s=[];return Ot(e).forEach((function(e,o){var i=!0;if(0===o?i=e.reduce((function(A,e){if(Dt(e))switch(e.value){case"center":return s.push(Pt),!1;case"top":case"left":return s.push(Rt),!1;case"right":case"bottom":return s.push(Xt),!1}else if(Gt(e)||Vt(e))return s.push(e),!1;return A}),i):1===o&&(i=e.reduce((function(A,e){if(Dt(e))switch(e.value){case yr:return t=0,!1;case vr:return t=1,!1;case Kr:case pr:return r=0,!1;case mr:return r=1,!1;case Er:return r=2,!1;case Ir:case Hr:return r=3,!1}else if(Vt(e)||Gt(e))return Array.isArray(r)||(r=[]),r.push(e),!1;return A}),i)),i){var B=wr(A,e);n.push(B)}})),{size:r,shape:t,stops:n,position:s,type:2}},Lr=function(A){return 1===A.type},Dr=function(A){return 2===A.type},xr={name:"image",parse:function(A,e){if(22===e.type){var t={url:e.value,type:0};return A.cache.addImage(e.value),t}if(18===e.type){var r=Tr[e.name];if(void 0===r)throw new Error('Attempting to parse an unsupported image function "'+e.name+'"');return r(A,e.values)}throw new Error("Unsupported image type "+e.type)}};function Sr(A){return!(20===A.type&&"none"===A.value||18===A.type&&!Tr[A.name])}var Mr,Tr={"linear-gradient":function(A,e){var t=Ar(180),r=[];return Ot(e).forEach((function(e,n){if(0===n){var s=e[0];if(20===s.type&&"to"===s.value)return void(t=$t(e));if(zt(s))return void(t=jt.parse(A,s))}var o=wr(A,e);r.push(o)})),{angle:t,stops:r,type:1}},"-moz-linear-gradient":fr,"-ms-linear-gradient":fr,"-o-linear-gradient":fr,"-webkit-linear-gradient":fr,"radial-gradient":function(A,e){var t=0,r=3,n=[],s=[];return Ot(e).forEach((function(e,o){var i=!0;if(0===o){var B=!1;i=e.reduce((function(A,e){if(B)if(Dt(e))switch(e.value){case"center":return s.push(Pt),A;case"top":case"left":return s.push(Rt),A;case"right":case"bottom":return s.push(Xt),A}else(Gt(e)||Vt(e))&&s.push(e);else if(Dt(e))switch(e.value){case yr:return t=0,!1;case vr:return t=1,!1;case"at":return B=!0,!1;case pr:return r=0,!1;case Ir:case mr:return r=1,!1;case Kr:case Er:return r=2,!1;case Hr:return r=3,!1}else if(Vt(e)||Gt(e))return Array.isArray(r)||(r=[]),r.push(e),!1;return A}),i)}if(i){var a=wr(A,e);n.push(a)}})),{size:r,shape:t,stops:n,position:s,type:2}},"-moz-radial-gradient":br,"-ms-radial-gradient":br,"-o-radial-gradient":br,"-webkit-radial-gradient":br,"-webkit-gradient":function(A,e){var t=Ar(180),r=[],n=1,s=0,o=3,i=[];return Ot(e).forEach((function(e,t){var s=e[0];if(0===t){if(Dt(s)&&"linear"===s.value)return void(n=1);if(Dt(s)&&"radial"===s.value)return void(n=2)}if(18===s.type)if("from"===s.name){var o=er.parse(A,s.values[0]);r.push({stop:Rt,color:o})}else if("to"===s.name)o=er.parse(A,s.values[0]),r.push({stop:Xt,color:o});else if("color-stop"===s.name){var i=s.values.filter(Tt);if(2===i.length){o=er.parse(A,i[1]);var B=i[0];Lt(B)&&r.push({stop:{type:16,number:100*B.number,flags:B.flags},color:o})}}})),1===n?{angle:(t+Ar(180))%Ar(360),stops:r,type:n}:{size:o,shape:s,stops:r,position:i,type:n}}},Or={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(A,e){if(0===e.length)return[];var t=e[0];return 20===t.type&&"none"===t.value?[]:e.filter((function(A){return Tt(A)&&Sr(A)})).map((function(e){return xr.parse(A,e)}))}},kr={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(A,e){return e.map((function(A){if(Dt(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},Vr={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(A,e){return Ot(e).map((function(A){return A.filter(Gt)})).map(Nt)}},Gr={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(A,e){return Ot(e).map((function(A){return A.filter(Dt).map((function(A){return A.value})).join(" ")})).map(Nr)}},Nr=function(A){switch(A){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}};!function(A){A.AUTO="auto",A.CONTAIN="contain",A.COVER="cover"}(Mr||(Mr={}));var Rr,Pr={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(A,e){return Ot(e).map((function(A){return A.filter(Xr)}))}},Xr=function(A){return Dt(A)||Gt(A)},Jr=function(A){return{name:"border-"+A+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},Wr=Jr("top"),Yr=Jr("right"),_r=Jr("bottom"),Zr=Jr("left"),qr=function(A){return{name:"border-radius-"+A,initialValue:"0 0",prefix:!1,type:1,parse:function(A,e){return Nt(e.filter(Gt))}}},jr=qr("top-left"),zr=qr("top-right"),$r=qr("bottom-right"),An=qr("bottom-left"),en=function(A){return{name:"border-"+A+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(A,e){switch(e){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},tn=en("top"),rn=en("right"),nn=en("bottom"),sn=en("left"),on=function(A){return{name:"border-"+A+"-width",initialValue:"0",type:0,prefix:!1,parse:function(A,e){return bt(e)?e.number:0}}},Bn=on("top"),an=on("right"),cn=on("bottom"),ln=on("left"),gn={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},un={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(A,e){return"rtl"===e?1:0}},wn={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(A,e){return e.filter(Dt).reduce((function(A,e){return A|Qn(e.value)}),0)}},Qn=function(A){switch(A){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},dn={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},Cn={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(A,e){return 20===e.type&&"normal"===e.value?0:17===e.type||15===e.type?e.number:0}};!function(A){A.NORMAL="normal",A.STRICT="strict"}(Rr||(Rr={}));var hn,Un={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){return"strict"===e?Rr.STRICT:Rr.NORMAL}},Fn={name:"line-height",initialValue:"normal",prefix:!1,type:4},fn=function(A,e){return Dt(A)&&"normal"===A.value?1.2*e:17===A.type?e*A.number:Gt(A)?Wt(A,e):e},pn={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(A,e){return 20===e.type&&"none"===e.value?null:xr.parse(A,e)}},mn={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(A,e){return"inside"===e?0:1}},En={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},Hn=function(A){return{name:"margin-"+A,initialValue:"0",prefix:!1,type:4}},yn=Hn("top"),vn=Hn("right"),In=Hn("bottom"),Kn=Hn("left"),bn={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(A,e){return e.filter(Dt).map((function(A){switch(A.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}}))}},Ln={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){return"break-word"===e?"break-word":"normal"}},Dn=function(A){return{name:"padding-"+A,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},xn=Dn("top"),Sn=Dn("right"),Mn=Dn("bottom"),Tn=Dn("left"),On={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(A,e){switch(e){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},kn={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(A,e){switch(e){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},Vn={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(A,e){return 1===e.length&&St(e[0],"none")?[]:Ot(e).map((function(e){for(var t={color:lr.TRANSPARENT,offsetX:Rt,offsetY:Rt,blur:Rt},r=0,n=0;n1?1:0],this.overflowWrap=hs(A,Ln,e.overflowWrap),this.paddingTop=hs(A,xn,e.paddingTop),this.paddingRight=hs(A,Sn,e.paddingRight),this.paddingBottom=hs(A,Mn,e.paddingBottom),this.paddingLeft=hs(A,Tn,e.paddingLeft),this.paintOrder=hs(A,gs,e.paintOrder),this.position=hs(A,kn,e.position),this.textAlign=hs(A,On,e.textAlign),this.textDecorationColor=hs(A,jn,null!==(t=e.textDecorationColor)&&void 0!==t?t:e.color),this.textDecorationLine=hs(A,zn,null!==(r=e.textDecorationLine)&&void 0!==r?r:e.textDecoration),this.textShadow=hs(A,Vn,e.textShadow),this.textTransform=hs(A,Gn,e.textTransform),this.transform=hs(A,Nn,e.transform),this.transformOrigin=hs(A,Jn,e.transformOrigin),this.visibility=hs(A,Wn,e.visibility),this.webkitTextStrokeColor=hs(A,us,e.webkitTextStrokeColor),this.webkitTextStrokeWidth=hs(A,ws,e.webkitTextStrokeWidth),this.wordBreak=hs(A,Yn,e.wordBreak),this.zIndex=hs(A,_n,e.zIndex)}return A.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},A.prototype.isTransparent=function(){return tr(this.backgroundColor)},A.prototype.isTransformed=function(){return null!==this.transform},A.prototype.isPositioned=function(){return 0!==this.position},A.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},A.prototype.isFloating=function(){return 0!==this.float},A.prototype.isInlineLevel=function(){return ns(this.display,4)||ns(this.display,33554432)||ns(this.display,268435456)||ns(this.display,536870912)||ns(this.display,67108864)||ns(this.display,134217728)},A}(),ds=function(){function A(A,e){this.content=hs(A,ss,e.content),this.quotes=hs(A,as,e.quotes)}return A}(),Cs=function(){function A(A,e){this.counterIncrement=hs(A,os,e.counterIncrement),this.counterReset=hs(A,is,e.counterReset)}return A}(),hs=function(A,e,t){var r=new It,n=null!=t?t.toString():e.initialValue;r.write(n);var s=new Kt(r.read());switch(e.type){case 2:var o=s.parseComponentValue();return e.parse(A,Dt(o)?o.value:e.initialValue);case 0:return e.parse(A,s.parseComponentValue());case 1:return e.parse(A,s.parseComponentValues());case 4:return s.parseComponentValue();case 3:switch(e.format){case"angle":return jt.parse(A,s.parseComponentValue());case"color":return er.parse(A,s.parseComponentValue());case"image":return xr.parse(A,s.parseComponentValue());case"length":var i=s.parseComponentValue();return Vt(i)?i:Rt;case"length-percentage":var B=s.parseComponentValue();return Gt(B)?B:Rt;case"time":return Zn.parse(A,s.parseComponentValue())}}},Us="data-html2canvas-debug",Fs=function(A){switch(A.getAttribute(Us)){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}},fs=function(A,e){var t=Fs(A);return 1===t||e===t},ps=function(){function A(A,e){this.context=A,this.textNodes=[],this.elements=[],this.flags=0,fs(e,3),this.styles=new Qs(A,window.getComputedStyle(e,null)),ci(e)&&(this.styles.animationDuration.some((function(A){return A>0}))&&(e.style.animationDuration="0s"),null!==this.styles.transform&&(e.style.transform="none")),this.bounds=i(this.context,e),fs(e,4)&&(this.flags|=16)}return A}(),ms="AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=",Es="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Hs="undefined"==typeof Uint8Array?[]:new Uint8Array(256),ys=0;ys>4,c[B++]=(15&r)<<4|n>>2,c[B++]=(3&n)<<6|63&s;return a},Is=function(A){for(var e=A.length,t=[],r=0;r>bs,Ss=(1<>bs)+32,Ts=65536>>Ls,Os=(1<=0){if(A<55296||A>56319&&A<=65535)return e=((e=this.index[A>>bs])<>bs)])<>Ls),e=this.index[e],e+=A>>bs&Os,e=((e=this.index[e])<=55296&&n<=56319&&t>10),o%1024+56320)),(n+1===t||r.length>16384)&&(s+=String.fromCharCode.apply(String,r),r.length=0)}return s},Bo=Gs(ms),ao="×",co="÷",lo=function(A){return Bo.get(A)},go=function(A,e,t){var r=t-2,n=e[r],s=e[t-1],o=e[t];if(s===Ys&&o===_s)return ao;if(s===Ys||s===_s||s===Zs)return co;if(o===Ys||o===_s||o===Zs)return co;if(s===zs&&-1!==[zs,$s,eo,to].indexOf(o))return ao;if(!(s!==eo&&s!==$s||o!==$s&&o!==Ao))return ao;if((s===to||s===Ao)&&o===Ao)return ao;if(o===ro||o===qs)return ao;if(o===js)return ao;if(s===Ws)return ao;if(s===ro&&o===no){for(;n===qs;)n=e[--r];if(n===no)return ao}if(s===so&&o===so){for(var i=0;n===so;)i++,n=e[--r];if(i%2==0)return ao}return co},uo=function(A){var e=oo(A),t=e.length,r=0,n=0,s=e.map(lo);return{next:function(){if(r>=t)return{done:!0,value:null};for(var A=ao;ro.x||n.y>o.y;return o=n,0===e||i}));return A.body.removeChild(e),i},ho=function(){return void 0!==(new Image).crossOrigin},Uo=function(){return"string"==typeof(new XMLHttpRequest).responseType},Fo=function(A){var e=new Image,t=A.createElement("canvas"),r=t.getContext("2d");if(!r)return!1;e.src="data:image/svg+xml,";try{r.drawImage(e,0,0),t.toDataURL()}catch(A){return!1}return!0},fo=function(A){return 0===A[0]&&255===A[1]&&0===A[2]&&255===A[3]},po=function(A){var e=A.createElement("canvas"),t=100;e.width=t,e.height=t;var r=e.getContext("2d");if(!r)return Promise.reject(!1);r.fillStyle="rgb(0, 255, 0)",r.fillRect(0,0,t,t);var n=new Image,s=e.toDataURL();n.src=s;var o=mo(t,t,0,0,n);return r.fillStyle="red",r.fillRect(0,0,t,t),Eo(o).then((function(e){r.drawImage(e,0,0);var n=r.getImageData(0,0,t,t).data;r.fillStyle="red",r.fillRect(0,0,t,t);var o=A.createElement("div");return o.style.backgroundImage="url("+s+")",o.style.height=t+"px",fo(n)?Eo(mo(t,t,0,0,o)):Promise.reject(!1)})).then((function(A){return r.drawImage(A,0,0),fo(r.getImageData(0,0,t,t).data)})).catch((function(){return!1}))},mo=function(A,e,t,r,n){var s="http://www.w3.org/2000/svg",o=document.createElementNS(s,"svg"),i=document.createElementNS(s,"foreignObject");return o.setAttributeNS(null,"width",A.toString()),o.setAttributeNS(null,"height",e.toString()),i.setAttributeNS(null,"width","100%"),i.setAttributeNS(null,"height","100%"),i.setAttributeNS(null,"x",t.toString()),i.setAttributeNS(null,"y",r.toString()),i.setAttributeNS(null,"externalResourcesRequired","true"),o.appendChild(i),i.appendChild(n),o},Eo=function(A){return new Promise((function(e,t){var r=new Image;r.onload=function(){return e(r)},r.onerror=t,r.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent((new XMLSerializer).serializeToString(A))}))},Ho={get SUPPORT_RANGE_BOUNDS(){var A=Qo(document);return Object.defineProperty(Ho,"SUPPORT_RANGE_BOUNDS",{value:A}),A},get SUPPORT_WORD_BREAKING(){var A=Ho.SUPPORT_RANGE_BOUNDS&&Co(document);return Object.defineProperty(Ho,"SUPPORT_WORD_BREAKING",{value:A}),A},get SUPPORT_SVG_DRAWING(){var A=Fo(document);return Object.defineProperty(Ho,"SUPPORT_SVG_DRAWING",{value:A}),A},get SUPPORT_FOREIGNOBJECT_DRAWING(){var A="function"==typeof Array.from&&"function"==typeof window.fetch?po(document):Promise.resolve(!1);return Object.defineProperty(Ho,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:A}),A},get SUPPORT_CORS_IMAGES(){var A=ho();return Object.defineProperty(Ho,"SUPPORT_CORS_IMAGES",{value:A}),A},get SUPPORT_RESPONSE_TYPE(){var A=Uo();return Object.defineProperty(Ho,"SUPPORT_RESPONSE_TYPE",{value:A}),A},get SUPPORT_CORS_XHR(){var A="withCredentials"in new XMLHttpRequest;return Object.defineProperty(Ho,"SUPPORT_CORS_XHR",{value:A}),A},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var A=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(Ho,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:A}),A}},yo=function(){function A(A,e){this.text=A,this.bounds=e}return A}(),vo=function(A,e,t,r){var n=Do(e,t),s=[],i=0;return n.forEach((function(e){if(t.textDecorationLine.length||e.trim().length>0)if(Ho.SUPPORT_RANGE_BOUNDS){var n=Ko(r,i,e.length).getClientRects();if(n.length>1){var B=bo(e),a=0;B.forEach((function(e){s.push(new yo(e,o.fromDOMRectList(A,Ko(r,a+i,e.length).getClientRects()))),a+=e.length}))}else s.push(new yo(e,o.fromDOMRectList(A,n)))}else{var c=r.splitText(e.length);s.push(new yo(e,Io(A,r))),r=c}else Ho.SUPPORT_RANGE_BOUNDS||(r=r.splitText(e.length));i+=e.length})),s},Io=function(A,e){var t=e.ownerDocument;if(t){var r=t.createElement("html2canvaswrapper");r.appendChild(e.cloneNode(!0));var n=e.parentNode;if(n){n.replaceChild(r,e);var s=i(A,r);return r.firstChild&&n.replaceChild(r.firstChild,r),s}}return o.EMPTY},Ko=function(A,e,t){var r=A.ownerDocument;if(!r)throw new Error("Node has no owner document");var n=r.createRange();return n.setStart(A,e),n.setEnd(A,e+t),n},bo=function(A){if(Ho.SUPPORT_NATIVE_TEXT_SEGMENTATION){var e=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(e.segment(A)).map((function(A){return A.segment}))}return wo(A)},Lo=function(A,e){if(Ho.SUPPORT_NATIVE_TEXT_SEGMENTATION){var t=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(t.segment(A)).map((function(A){return A.segment}))}return So(A,e)},Do=function(A,e){return 0!==e.letterSpacing?bo(A):Lo(A,e)},xo=[32,160,4961,65792,65793,4153,4241],So=function(A,e){for(var t,r=RA(A,{lineBreak:e.lineBreak,wordBreak:"break-word"===e.overflowWrap?"break-word":e.wordBreak}),n=[],s=function(){if(t.value){var A=t.value.slice(),e=a(A),r="";e.forEach((function(A){-1===xo.indexOf(A)?r+=c(A):(r.length&&n.push(r),n.push(c(A)),r="")})),r.length&&n.push(r)}};!(t=r.next()).done;)s();return n},Mo=function(){function A(A,e,t){this.text=To(e.data,t.textTransform),this.textBounds=vo(A,this.text,t,e)}return A}(),To=function(A,e){switch(e){case 1:return A.toLowerCase();case 3:return A.replace(Oo,ko);case 2:return A.toUpperCase();default:return A}},Oo=/(^|\s|:|-|\(|\))([a-z])/g,ko=function(A,e,t){return A.length>0?e+t.toUpperCase():A},Vo=function(A){function t(e,t){var r=A.call(this,e,t)||this;return r.src=t.currentSrc||t.src,r.intrinsicWidth=t.naturalWidth,r.intrinsicHeight=t.naturalHeight,r.context.cache.addImage(r.src),r}return e(t,A),t}(ps),Go=function(A){function t(e,t){var r=A.call(this,e,t)||this;return r.canvas=t,r.intrinsicWidth=t.width,r.intrinsicHeight=t.height,r}return e(t,A),t}(ps),No=function(A){function t(e,t){var r=A.call(this,e,t)||this,n=new XMLSerializer,s=i(e,t);return t.setAttribute("width",s.width+"px"),t.setAttribute("height",s.height+"px"),r.svg="data:image/svg+xml,"+encodeURIComponent(n.serializeToString(t)),r.intrinsicWidth=t.width.baseVal.value,r.intrinsicHeight=t.height.baseVal.value,r.context.cache.addImage(r.svg),r}return e(t,A),t}(ps),Ro=function(A){function t(e,t){var r=A.call(this,e,t)||this;return r.value=t.value,r}return e(t,A),t}(ps),Po=function(A){function t(e,t){var r=A.call(this,e,t)||this;return r.start=t.start,r.reversed="boolean"==typeof t.reversed&&!0===t.reversed,r}return e(t,A),t}(ps),Xo=[{type:15,flags:0,unit:"px",number:3}],Jo=[{type:16,flags:0,number:50}],Wo=function(A){return A.width>A.height?new o(A.left+(A.width-A.height)/2,A.top,A.height,A.height):A.width0)t.textNodes.push(new Mo(A,n,t.styles));else if(ai(n))if(yi(n)&&n.assignedNodes)n.assignedNodes().forEach((function(e){return ri(A,e,t,r)}));else{var o=ni(A,n);o.styles.isVisible()&&(oi(n,o,r)?o.flags|=4:ii(o.styles)&&(o.flags|=2),-1!==ti.indexOf(n.tagName)&&(o.flags|=8),t.elements.push(o),n.slot,n.shadowRoot?ri(A,n.shadowRoot,o,r):Ei(n)||di(n)||Hi(n)||ri(A,n,o,r))}},ni=function(A,e){return Fi(e)?new Vo(A,e):hi(e)?new Go(A,e):di(e)?new No(A,e):gi(e)?new Ro(A,e):ui(e)?new Po(A,e):wi(e)?new zo(A,e):Hi(e)?new $o(A,e):Ei(e)?new Ai(A,e):fi(e)?new ei(A,e):new ps(A,e)},si=function(A,e){var t=ni(A,e);return t.flags|=4,ri(A,e,t,t),t},oi=function(A,e,t){return e.styles.isPositionedWithZIndex()||e.styles.opacity<1||e.styles.isTransformed()||Ci(A)&&t.styles.isTransparent()},ii=function(A){return A.isPositioned()||A.isFloating()},Bi=function(A){return A.nodeType===Node.TEXT_NODE},ai=function(A){return A.nodeType===Node.ELEMENT_NODE},ci=function(A){return ai(A)&&void 0!==A.style&&!li(A)},li=function(A){return"object"==typeof A.className},gi=function(A){return"LI"===A.tagName},ui=function(A){return"OL"===A.tagName},wi=function(A){return"INPUT"===A.tagName},Qi=function(A){return"HTML"===A.tagName},di=function(A){return"svg"===A.tagName},Ci=function(A){return"BODY"===A.tagName},hi=function(A){return"CANVAS"===A.tagName},Ui=function(A){return"VIDEO"===A.tagName},Fi=function(A){return"IMG"===A.tagName},fi=function(A){return"IFRAME"===A.tagName},pi=function(A){return"STYLE"===A.tagName},mi=function(A){return"SCRIPT"===A.tagName},Ei=function(A){return"TEXTAREA"===A.tagName},Hi=function(A){return"SELECT"===A.tagName},yi=function(A){return"SLOT"===A.tagName},vi=function(A){return A.tagName.indexOf("-")>0},Ii=function(){function A(){this.counters={}}return A.prototype.getCounterValue=function(A){var e=this.counters[A];return e&&e.length?e[e.length-1]:1},A.prototype.getCounterValues=function(A){var e=this.counters[A];return e||[]},A.prototype.pop=function(A){var e=this;A.forEach((function(A){return e.counters[A].pop()}))},A.prototype.parse=function(A){var e=this,t=A.counterIncrement,r=A.counterReset,n=!0;null!==t&&t.forEach((function(A){var t=e.counters[A.counter];t&&0!==A.increment&&(n=!1,t.length||t.push(1),t[Math.max(0,t.length-1)]+=A.increment)}));var s=[];return n&&r.forEach((function(A){var t=e.counters[A.counter];s.push(A.counter),t||(t=e.counters[A.counter]=[]),t.push(A.reset)})),s},A}(),Ki={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},bi={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},Li={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},Di={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},xi=function(A,e,t,r,n,s){return At?Wi(A,n,s.length>0):r.integers.reduce((function(e,t,n){for(;A>=t;)A-=t,e+=r.values[n];return e}),"")+s},Si=function(A,e,t,r){var n="";do{t||A--,n=r(A)+n,A/=e}while(A*e>=e);return n},Mi=function(A,e,t,r,n){var s=t-e+1;return(A<0?"-":"")+(Si(Math.abs(A),s,r,(function(A){return c(Math.floor(A%s)+e)}))+n)},Ti=function(A,e,t){void 0===t&&(t=". ");var r=e.length;return Si(Math.abs(A),r,!1,(function(A){return e[Math.floor(A%r)]}))+t},Oi=1,ki=2,Vi=4,Gi=8,Ni=function(A,e,t,r,n,s){if(A<-9999||A>9999)return Wi(A,4,n.length>0);var o=Math.abs(A),i=n;if(0===o)return e[0]+i;for(var B=0;o>0&&B<=4;B++){var a=o%10;0===a&&ns(s,Oi)&&""!==i?i=e[a]+i:a>1||1===a&&0===B||1===a&&1===B&&ns(s,ki)||1===a&&1===B&&ns(s,Vi)&&A>100||1===a&&B>1&&ns(s,Gi)?i=e[a]+(B>0?t[B-1]:"")+i:1===a&&B>0&&(i=t[B-1]+i),o=Math.floor(o/10)}return(A<0?r:"")+i},Ri="十百千萬",Pi="拾佰仟萬",Xi="マイナス",Ji="마이너스",Wi=function(A,e,t){var r=t?". ":"",n=t?"、":"",s=t?", ":"",o=t?" ":"";switch(e){case 0:return"•"+o;case 1:return"◦"+o;case 2:return"◾"+o;case 5:var i=Mi(A,48,57,!0,r);return i.length<4?"0"+i:i;case 4:return Ti(A,"〇一二三四五六七八九",n);case 6:return xi(A,1,3999,Ki,3,r).toLowerCase();case 7:return xi(A,1,3999,Ki,3,r);case 8:return Mi(A,945,969,!1,r);case 9:return Mi(A,97,122,!1,r);case 10:return Mi(A,65,90,!1,r);case 11:return Mi(A,1632,1641,!0,r);case 12:case 49:return xi(A,1,9999,bi,3,r);case 35:return xi(A,1,9999,bi,3,r).toLowerCase();case 13:return Mi(A,2534,2543,!0,r);case 14:case 30:return Mi(A,6112,6121,!0,r);case 15:return Ti(A,"子丑寅卯辰巳午未申酉戌亥",n);case 16:return Ti(A,"甲乙丙丁戊己庚辛壬癸",n);case 17:case 48:return Ni(A,"零一二三四五六七八九",Ri,"負",n,ki|Vi|Gi);case 47:return Ni(A,"零壹貳參肆伍陸柒捌玖",Pi,"負",n,Oi|ki|Vi|Gi);case 42:return Ni(A,"零一二三四五六七八九",Ri,"负",n,ki|Vi|Gi);case 41:return Ni(A,"零壹贰叁肆伍陆柒捌玖",Pi,"负",n,Oi|ki|Vi|Gi);case 26:return Ni(A,"〇一二三四五六七八九","十百千万",Xi,n,0);case 25:return Ni(A,"零壱弐参四伍六七八九","拾百千万",Xi,n,Oi|ki|Vi);case 31:return Ni(A,"영일이삼사오육칠팔구","십백천만",Ji,s,Oi|ki|Vi);case 33:return Ni(A,"零一二三四五六七八九","十百千萬",Ji,s,0);case 32:return Ni(A,"零壹貳參四五六七八九","拾百千",Ji,s,Oi|ki|Vi);case 18:return Mi(A,2406,2415,!0,r);case 20:return xi(A,1,19999,Di,3,r);case 21:return Mi(A,2790,2799,!0,r);case 22:return Mi(A,2662,2671,!0,r);case 22:return xi(A,1,10999,Li,3,r);case 23:return Ti(A,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return Ti(A,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return Mi(A,3302,3311,!0,r);case 28:return Ti(A,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",n);case 29:return Ti(A,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",n);case 34:return Mi(A,3792,3801,!0,r);case 37:return Mi(A,6160,6169,!0,r);case 38:return Mi(A,4160,4169,!0,r);case 39:return Mi(A,2918,2927,!0,r);case 40:return Mi(A,1776,1785,!0,r);case 43:return Mi(A,3046,3055,!0,r);case 44:return Mi(A,3174,3183,!0,r);case 45:return Mi(A,3664,3673,!0,r);case 46:return Mi(A,3872,3881,!0,r);default:return Mi(A,48,57,!0,r)}},Yi="data-html2canvas-ignore",_i=function(){function A(A,e,t){if(this.context=A,this.options=t,this.scrolledElements=[],this.referenceElement=e,this.counters=new Ii,this.quoteDepth=0,!e.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(e.ownerDocument.documentElement,!1)}return A.prototype.toIFrame=function(A,e){var t=this,s=qi(A,e);if(!s.contentWindow)return Promise.reject("Unable to find iframe window");var o=A.defaultView.pageXOffset,i=A.defaultView.pageYOffset,B=s.contentWindow,a=B.document,c=$i(s).then((function(){return r(t,void 0,void 0,(function(){var A,t;return n(this,(function(r){switch(r.label){case 0:return this.scrolledElements.forEach(nB),B&&(B.scrollTo(e.left,e.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||B.scrollY===e.top&&B.scrollX===e.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(B.scrollX-e.left,B.scrollY-e.top,0,0))),A=this.options.onclone,void 0===(t=this.clonedReferenceElement)?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:a.fonts&&a.fonts.ready?[4,a.fonts.ready]:[3,2];case 1:r.sent(),r.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,zi(a)]:[3,4];case 3:r.sent(),r.label=4;case 4:return"function"==typeof A?[2,Promise.resolve().then((function(){return A(a,t)})).then((function(){return s}))]:[2,s]}}))}))}));return a.open(),a.write(tB(document.doctype)+""),rB(this.referenceElement.ownerDocument,o,i),a.replaceChild(a.adoptNode(this.documentElement),a.documentElement),a.close(),c},A.prototype.createElementClone=function(A){if(fs(A,2),hi(A))return this.createCanvasClone(A);if(Ui(A))return this.createVideoClone(A);if(pi(A))return this.createStyleClone(A);var e=A.cloneNode(!1);return Fi(e)&&(Fi(A)&&A.currentSrc&&A.currentSrc!==A.src&&(e.src=A.currentSrc,e.srcset=""),"lazy"===e.loading&&(e.loading="eager")),vi(e)?this.createCustomElementClone(e):e},A.prototype.createCustomElementClone=function(A){var e=document.createElement("html2canvascustomelement");return eB(A.style,e),e},A.prototype.createStyleClone=function(A){try{var e=A.sheet;if(e&&e.cssRules){var t=[].slice.call(e.cssRules,0).reduce((function(A,e){return e&&"string"==typeof e.cssText?A+e.cssText:A}),""),r=A.cloneNode(!1);return r.textContent=t,r}}catch(A){if(this.context.logger.error("Unable to access cssRules property",A),"SecurityError"!==A.name)throw A}return A.cloneNode(!1)},A.prototype.createCanvasClone=function(A){var e;if(this.options.inlineImages&&A.ownerDocument){var t=A.ownerDocument.createElement("img");try{return t.src=A.toDataURL(),t}catch(e){this.context.logger.info("Unable to inline canvas contents, canvas is tainted",A)}}var r=A.cloneNode(!1);try{r.width=A.width,r.height=A.height;var n=A.getContext("2d"),s=r.getContext("2d");if(s)if(!this.options.allowTaint&&n)s.putImageData(n.getImageData(0,0,A.width,A.height),0,0);else{var o=null!==(e=A.getContext("webgl2"))&&void 0!==e?e:A.getContext("webgl");if(o){var i=o.getContextAttributes();!1===(null==i?void 0:i.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",A)}s.drawImage(A,0,0)}return r}catch(e){this.context.logger.info("Unable to clone canvas as it is tainted",A)}return r},A.prototype.createVideoClone=function(A){var e=A.ownerDocument.createElement("canvas");e.width=A.offsetWidth,e.height=A.offsetHeight;var t=e.getContext("2d");try{return t&&(t.drawImage(A,0,0,e.width,e.height),this.options.allowTaint||t.getImageData(0,0,e.width,e.height)),e}catch(e){this.context.logger.info("Unable to clone video as it is tainted",A)}var r=A.ownerDocument.createElement("canvas");return r.width=A.offsetWidth,r.height=A.offsetHeight,r},A.prototype.appendChildNode=function(A,e,t){ai(e)&&(mi(e)||e.hasAttribute(Yi)||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(e))||this.options.copyStyles&&ai(e)&&pi(e)||A.appendChild(this.cloneNode(e,t))},A.prototype.cloneChildNodes=function(A,e,t){for(var r=this,n=A.shadowRoot?A.shadowRoot.firstChild:A.firstChild;n;n=n.nextSibling)if(ai(n)&&yi(n)&&"function"==typeof n.assignedNodes){var s=n.assignedNodes();s.length&&s.forEach((function(A){return r.appendChildNode(e,A,t)}))}else this.appendChildNode(e,n,t)},A.prototype.cloneNode=function(A,e){if(Bi(A))return document.createTextNode(A.data);if(!A.ownerDocument)return A.cloneNode(!1);var t=A.ownerDocument.defaultView;if(t&&ai(A)&&(ci(A)||li(A))){var r=this.createElementClone(A);r.style.transitionProperty="none";var n=t.getComputedStyle(A),s=t.getComputedStyle(A,":before"),o=t.getComputedStyle(A,":after");this.referenceElement===A&&ci(r)&&(this.clonedReferenceElement=r),Ci(r)&&cB(r);var i=this.counters.parse(new Cs(this.context,n)),B=this.resolvePseudoContent(A,r,s,Js.BEFORE);vi(A)&&(e=!0),Ui(A)||this.cloneChildNodes(A,r,e),B&&r.insertBefore(B,r.firstChild);var a=this.resolvePseudoContent(A,r,o,Js.AFTER);return a&&r.appendChild(a),this.counters.pop(i),(n&&(this.options.copyStyles||li(A))&&!fi(A)||e)&&eB(n,r),0===A.scrollTop&&0===A.scrollLeft||this.scrolledElements.push([r,A.scrollLeft,A.scrollTop]),(Ei(A)||Hi(A))&&(Ei(r)||Hi(r))&&(r.value=A.value),r}return A.cloneNode(!1)},A.prototype.resolvePseudoContent=function(A,e,t,r){var n=this;if(t){var s=t.content,o=e.ownerDocument;if(o&&s&&"none"!==s&&"-moz-alt-content"!==s&&"none"!==t.display){this.counters.parse(new Cs(this.context,t));var i=new ds(this.context,t),B=o.createElement("html2canvaspseudoelement");eB(t,B),i.content.forEach((function(e){if(0===e.type)B.appendChild(o.createTextNode(e.value));else if(22===e.type){var t=o.createElement("img");t.src=e.value,t.style.opacity="1",B.appendChild(t)}else if(18===e.type){if("attr"===e.name){var r=e.values.filter(Dt);r.length&&B.appendChild(o.createTextNode(A.getAttribute(r[0].value)||""))}else if("counter"===e.name){var s=e.values.filter(Tt),a=s[0],c=s[1];if(a&&Dt(a)){var l=n.counters.getCounterValue(a.value),g=c&&Dt(c)?En.parse(n.context,c.value):3;B.appendChild(o.createTextNode(Wi(l,g,!1)))}}else if("counters"===e.name){var u=e.values.filter(Tt),w=(a=u[0],u[1]);if(c=u[2],a&&Dt(a)){var Q=n.counters.getCounterValues(a.value),d=c&&Dt(c)?En.parse(n.context,c.value):3,C=w&&0===w.type?w.value:"",h=Q.map((function(A){return Wi(A,d,!1)})).join(C);B.appendChild(o.createTextNode(h))}}}else if(20===e.type)switch(e.value){case"open-quote":B.appendChild(o.createTextNode(cs(i.quotes,n.quoteDepth++,!0)));break;case"close-quote":B.appendChild(o.createTextNode(cs(i.quotes,--n.quoteDepth,!1)));break;default:B.appendChild(o.createTextNode(e.value))}})),B.className=iB+" "+BB;var a=r===Js.BEFORE?" "+iB:" "+BB;return li(e)?e.className.baseValue+=a:e.className+=a,B}}},A.destroy=function(A){return!!A.parentNode&&(A.parentNode.removeChild(A),!0)},A}();!function(A){A[A.BEFORE=0]="BEFORE",A[A.AFTER=1]="AFTER"}(Js||(Js={}));var Zi,qi=function(A,e){var t=A.createElement("iframe");return t.className="html2canvas-container",t.style.visibility="hidden",t.style.position="fixed",t.style.left="-10000px",t.style.top="0px",t.style.border="0",t.width=e.width.toString(),t.height=e.height.toString(),t.scrolling="no",t.setAttribute(Yi,"true"),A.body.appendChild(t),t},ji=function(A){return new Promise((function(e){A.complete?e():A.src?(A.onload=e,A.onerror=e):e()}))},zi=function(A){return Promise.all([].slice.call(A.images,0).map(ji))},$i=function(A){return new Promise((function(e,t){var r=A.contentWindow;if(!r)return t("No window assigned for iframe");var n=r.document;r.onload=A.onload=function(){r.onload=A.onload=null;var t=setInterval((function(){n.body.childNodes.length>0&&"complete"===n.readyState&&(clearInterval(t),e(A))}),50)}}))},AB=["all","d","content"],eB=function(A,e){for(var t=A.length-1;t>=0;t--){var r=A.item(t);-1===AB.indexOf(r)&&e.style.setProperty(r,A.getPropertyValue(r))}return e},tB=function(A){var e="";return A&&(e+=""),e},rB=function(A,e,t){A&&A.defaultView&&(e!==A.defaultView.pageXOffset||t!==A.defaultView.pageYOffset)&&A.defaultView.scrollTo(e,t)},nB=function(A){var e=A[0],t=A[1],r=A[2];e.scrollLeft=t,e.scrollTop=r},sB=":before",oB=":after",iB="___html2canvas___pseudoelement_before",BB="___html2canvas___pseudoelement_after",aB='{\n content: "" !important;\n display: none !important;\n}',cB=function(A){lB(A,"."+iB+sB+aB+"\n ."+BB+oB+aB)},lB=function(A,e){var t=A.ownerDocument;if(t){var r=t.createElement("style");r.textContent=e,A.appendChild(r)}},gB=function(){function A(){}return A.getOrigin=function(e){var t=A._link;return t?(t.href=e,t.href=t.href,t.protocol+t.hostname+t.port):"about:blank"},A.isSameOrigin=function(e){return A.getOrigin(e)===A._origin},A.setContext=function(e){A._link=e.document.createElement("a"),A._origin=A.getOrigin(e.location.href)},A._origin="about:blank",A}(),uB=function(){function A(A,e){this.context=A,this._options=e,this._cache={}}return A.prototype.addImage=function(A){var e=Promise.resolve();return this.has(A)?e:FB(A)||CB(A)?((this._cache[A]=this.loadImage(A)).catch((function(){})),e):e},A.prototype.match=function(A){return this._cache[A]},A.prototype.loadImage=function(A){return r(this,void 0,void 0,(function(){var e,t,r,s,o=this;return n(this,(function(n){switch(n.label){case 0:return e=gB.isSameOrigin(A),t=!hB(A)&&!0===this._options.useCORS&&Ho.SUPPORT_CORS_IMAGES&&!e,r=!hB(A)&&!e&&!FB(A)&&"string"==typeof this._options.proxy&&Ho.SUPPORT_CORS_XHR&&!t,e||!1!==this._options.allowTaint||hB(A)||FB(A)||r||t?(s=A,r?[4,this.proxy(s)]:[3,2]):[2];case 1:s=n.sent(),n.label=2;case 2:return this.context.logger.debug("Added image "+A.substring(0,256)),[4,new Promise((function(A,e){var r=new Image;r.onload=function(){return A(r)},r.onerror=e,(UB(s)||t)&&(r.crossOrigin="anonymous"),r.src=s,!0===r.complete&&setTimeout((function(){return A(r)}),500),o._options.imageTimeout>0&&setTimeout((function(){return e("Timed out ("+o._options.imageTimeout+"ms) loading image")}),o._options.imageTimeout)}))];case 3:return[2,n.sent()]}}))}))},A.prototype.has=function(A){return void 0!==this._cache[A]},A.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},A.prototype.proxy=function(A){var e=this,t=this._options.proxy;if(!t)throw new Error("No proxy defined");var r=A.substring(0,256);return new Promise((function(n,s){var o=Ho.SUPPORT_RESPONSE_TYPE?"blob":"text",i=new XMLHttpRequest;i.onload=function(){if(200===i.status)if("text"===o)n(i.response);else{var A=new FileReader;A.addEventListener("load",(function(){return n(A.result)}),!1),A.addEventListener("error",(function(A){return s(A)}),!1),A.readAsDataURL(i.response)}else s("Failed to proxy resource "+r+" with status code "+i.status)},i.onerror=s;var B=t.indexOf("?")>-1?"&":"?";if(i.open("GET",""+t+B+"url="+encodeURIComponent(A)+"&responseType="+o),"text"!==o&&i instanceof XMLHttpRequest&&(i.responseType=o),e._options.imageTimeout){var a=e._options.imageTimeout;i.timeout=a,i.ontimeout=function(){return s("Timed out ("+a+"ms) proxying "+r)}}i.send()}))},A}(),wB=/^data:image\/svg\+xml/i,QB=/^data:image\/.*;base64,/i,dB=/^data:image\/.*/i,CB=function(A){return Ho.SUPPORT_SVG_DRAWING||!fB(A)},hB=function(A){return dB.test(A)},UB=function(A){return QB.test(A)},FB=function(A){return"blob"===A.substr(0,4)},fB=function(A){return"svg"===A.substr(-3).toLowerCase()||wB.test(A)},pB=function(){function A(A,e){this.type=0,this.x=A,this.y=e}return A.prototype.add=function(e,t){return new A(this.x+e,this.y+t)},A}(),mB=function(A,e,t){return new pB(A.x+(e.x-A.x)*t,A.y+(e.y-A.y)*t)},EB=function(){function A(A,e,t,r){this.type=1,this.start=A,this.startControl=e,this.endControl=t,this.end=r}return A.prototype.subdivide=function(e,t){var r=mB(this.start,this.startControl,e),n=mB(this.startControl,this.endControl,e),s=mB(this.endControl,this.end,e),o=mB(r,n,e),i=mB(n,s,e),B=mB(o,i,e);return t?new A(this.start,r,o,B):new A(B,i,s,this.end)},A.prototype.add=function(e,t){return new A(this.start.add(e,t),this.startControl.add(e,t),this.endControl.add(e,t),this.end.add(e,t))},A.prototype.reverse=function(){return new A(this.end,this.endControl,this.startControl,this.start)},A}(),HB=function(A){return 1===A.type},yB=function(){function A(A){var e=A.styles,t=A.bounds,r=Jt(e.borderTopLeftRadius,t.width,t.height),n=r[0],s=r[1],o=Jt(e.borderTopRightRadius,t.width,t.height),i=o[0],B=o[1],a=Jt(e.borderBottomRightRadius,t.width,t.height),c=a[0],l=a[1],g=Jt(e.borderBottomLeftRadius,t.width,t.height),u=g[0],w=g[1],Q=[];Q.push((n+i)/t.width),Q.push((u+c)/t.width),Q.push((s+w)/t.height),Q.push((B+l)/t.height);var d=Math.max.apply(Math,Q);d>1&&(n/=d,s/=d,i/=d,B/=d,c/=d,l/=d,u/=d,w/=d);var C=t.width-i,h=t.height-l,U=t.width-c,F=t.height-w,f=e.borderTopWidth,p=e.borderRightWidth,m=e.borderBottomWidth,E=e.borderLeftWidth,H=Wt(e.paddingTop,A.bounds.width),y=Wt(e.paddingRight,A.bounds.width),v=Wt(e.paddingBottom,A.bounds.width),I=Wt(e.paddingLeft,A.bounds.width);this.topLeftBorderDoubleOuterBox=n>0||s>0?vB(t.left+E/3,t.top+f/3,n-E/3,s-f/3,Zi.TOP_LEFT):new pB(t.left+E/3,t.top+f/3),this.topRightBorderDoubleOuterBox=n>0||s>0?vB(t.left+C,t.top+f/3,i-p/3,B-f/3,Zi.TOP_RIGHT):new pB(t.left+t.width-p/3,t.top+f/3),this.bottomRightBorderDoubleOuterBox=c>0||l>0?vB(t.left+U,t.top+h,c-p/3,l-m/3,Zi.BOTTOM_RIGHT):new pB(t.left+t.width-p/3,t.top+t.height-m/3),this.bottomLeftBorderDoubleOuterBox=u>0||w>0?vB(t.left+E/3,t.top+F,u-E/3,w-m/3,Zi.BOTTOM_LEFT):new pB(t.left+E/3,t.top+t.height-m/3),this.topLeftBorderDoubleInnerBox=n>0||s>0?vB(t.left+2*E/3,t.top+2*f/3,n-2*E/3,s-2*f/3,Zi.TOP_LEFT):new pB(t.left+2*E/3,t.top+2*f/3),this.topRightBorderDoubleInnerBox=n>0||s>0?vB(t.left+C,t.top+2*f/3,i-2*p/3,B-2*f/3,Zi.TOP_RIGHT):new pB(t.left+t.width-2*p/3,t.top+2*f/3),this.bottomRightBorderDoubleInnerBox=c>0||l>0?vB(t.left+U,t.top+h,c-2*p/3,l-2*m/3,Zi.BOTTOM_RIGHT):new pB(t.left+t.width-2*p/3,t.top+t.height-2*m/3),this.bottomLeftBorderDoubleInnerBox=u>0||w>0?vB(t.left+2*E/3,t.top+F,u-2*E/3,w-2*m/3,Zi.BOTTOM_LEFT):new pB(t.left+2*E/3,t.top+t.height-2*m/3),this.topLeftBorderStroke=n>0||s>0?vB(t.left+E/2,t.top+f/2,n-E/2,s-f/2,Zi.TOP_LEFT):new pB(t.left+E/2,t.top+f/2),this.topRightBorderStroke=n>0||s>0?vB(t.left+C,t.top+f/2,i-p/2,B-f/2,Zi.TOP_RIGHT):new pB(t.left+t.width-p/2,t.top+f/2),this.bottomRightBorderStroke=c>0||l>0?vB(t.left+U,t.top+h,c-p/2,l-m/2,Zi.BOTTOM_RIGHT):new pB(t.left+t.width-p/2,t.top+t.height-m/2),this.bottomLeftBorderStroke=u>0||w>0?vB(t.left+E/2,t.top+F,u-E/2,w-m/2,Zi.BOTTOM_LEFT):new pB(t.left+E/2,t.top+t.height-m/2),this.topLeftBorderBox=n>0||s>0?vB(t.left,t.top,n,s,Zi.TOP_LEFT):new pB(t.left,t.top),this.topRightBorderBox=i>0||B>0?vB(t.left+C,t.top,i,B,Zi.TOP_RIGHT):new pB(t.left+t.width,t.top),this.bottomRightBorderBox=c>0||l>0?vB(t.left+U,t.top+h,c,l,Zi.BOTTOM_RIGHT):new pB(t.left+t.width,t.top+t.height),this.bottomLeftBorderBox=u>0||w>0?vB(t.left,t.top+F,u,w,Zi.BOTTOM_LEFT):new pB(t.left,t.top+t.height),this.topLeftPaddingBox=n>0||s>0?vB(t.left+E,t.top+f,Math.max(0,n-E),Math.max(0,s-f),Zi.TOP_LEFT):new pB(t.left+E,t.top+f),this.topRightPaddingBox=i>0||B>0?vB(t.left+Math.min(C,t.width-p),t.top+f,C>t.width+p?0:Math.max(0,i-p),Math.max(0,B-f),Zi.TOP_RIGHT):new pB(t.left+t.width-p,t.top+f),this.bottomRightPaddingBox=c>0||l>0?vB(t.left+Math.min(U,t.width-E),t.top+Math.min(h,t.height-m),Math.max(0,c-p),Math.max(0,l-m),Zi.BOTTOM_RIGHT):new pB(t.left+t.width-p,t.top+t.height-m),this.bottomLeftPaddingBox=u>0||w>0?vB(t.left+E,t.top+Math.min(F,t.height-m),Math.max(0,u-E),Math.max(0,w-m),Zi.BOTTOM_LEFT):new pB(t.left+E,t.top+t.height-m),this.topLeftContentBox=n>0||s>0?vB(t.left+E+I,t.top+f+H,Math.max(0,n-(E+I)),Math.max(0,s-(f+H)),Zi.TOP_LEFT):new pB(t.left+E+I,t.top+f+H),this.topRightContentBox=i>0||B>0?vB(t.left+Math.min(C,t.width+E+I),t.top+f+H,C>t.width+E+I?0:i-E+I,B-(f+H),Zi.TOP_RIGHT):new pB(t.left+t.width-(p+y),t.top+f+H),this.bottomRightContentBox=c>0||l>0?vB(t.left+Math.min(U,t.width-(E+I)),t.top+Math.min(h,t.height+f+H),Math.max(0,c-(p+y)),l-(m+v),Zi.BOTTOM_RIGHT):new pB(t.left+t.width-(p+y),t.top+t.height-(m+v)),this.bottomLeftContentBox=u>0||w>0?vB(t.left+E+I,t.top+F,Math.max(0,u-(E+I)),w-(m+v),Zi.BOTTOM_LEFT):new pB(t.left+E+I,t.top+t.height-(m+v))}return A}();!function(A){A[A.TOP_LEFT=0]="TOP_LEFT",A[A.TOP_RIGHT=1]="TOP_RIGHT",A[A.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",A[A.BOTTOM_LEFT=3]="BOTTOM_LEFT"}(Zi||(Zi={}));var vB=function(A,e,t,r,n){var s=(Math.sqrt(2)-1)/3*4,o=t*s,i=r*s,B=A+t,a=e+r;switch(n){case Zi.TOP_LEFT:return new EB(new pB(A,a),new pB(A,a-i),new pB(B-o,e),new pB(B,e));case Zi.TOP_RIGHT:return new EB(new pB(A,e),new pB(A+o,e),new pB(B,a-i),new pB(B,a));case Zi.BOTTOM_RIGHT:return new EB(new pB(B,e),new pB(B,e+i),new pB(A+o,a),new pB(A,a));case Zi.BOTTOM_LEFT:default:return new EB(new pB(B,a),new pB(B-o,a),new pB(A,e+i),new pB(A,e))}},IB=function(A){return[A.topLeftBorderBox,A.topRightBorderBox,A.bottomRightBorderBox,A.bottomLeftBorderBox]},KB=function(A){return[A.topLeftContentBox,A.topRightContentBox,A.bottomRightContentBox,A.bottomLeftContentBox]},bB=function(A){return[A.topLeftPaddingBox,A.topRightPaddingBox,A.bottomRightPaddingBox,A.bottomLeftPaddingBox]},LB=function(){function A(A,e,t){this.offsetX=A,this.offsetY=e,this.matrix=t,this.type=0,this.target=6}return A}(),DB=function(){function A(A,e){this.path=A,this.target=e,this.type=1}return A}(),xB=function(){function A(A){this.opacity=A,this.type=2,this.target=6}return A}(),SB=function(A){return 0===A.type},MB=function(A){return 1===A.type},TB=function(A){return 2===A.type},OB=function(A,e){return A.length===e.length&&A.some((function(A,t){return A===e[t]}))},kB=function(A,e,t,r,n){return A.map((function(A,s){switch(s){case 0:return A.add(e,t);case 1:return A.add(e+r,t);case 2:return A.add(e+r,t+n);case 3:return A.add(e,t+n)}return A}))},VB=function(){function A(A){this.element=A,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]}return A}(),GB=function(){function A(A,e){if(this.container=A,this.parent=e,this.effects=[],this.curves=new yB(this.container),this.container.styles.opacity<1&&this.effects.push(new xB(this.container.styles.opacity)),null!==this.container.styles.transform){var t=this.container.bounds.left+this.container.styles.transformOrigin[0].number,r=this.container.bounds.top+this.container.styles.transformOrigin[1].number,n=this.container.styles.transform;this.effects.push(new LB(t,r,n))}if(0!==this.container.styles.overflowX){var s=IB(this.curves),o=bB(this.curves);OB(s,o)?this.effects.push(new DB(s,6)):(this.effects.push(new DB(s,2)),this.effects.push(new DB(o,4)))}}return A.prototype.getEffects=function(A){for(var e=-1===[2,3].indexOf(this.container.styles.position),t=this.parent,r=this.effects.slice(0);t;){var n=t.effects.filter((function(A){return!MB(A)}));if(e||0!==t.container.styles.position||!t.parent){if(r.unshift.apply(r,n),e=-1===[2,3].indexOf(t.container.styles.position),0!==t.container.styles.overflowX){var s=IB(t.curves),o=bB(t.curves);OB(s,o)||r.unshift(new DB(o,6))}}else r.unshift.apply(r,n);t=t.parent}return r.filter((function(e){return ns(e.target,A)}))},A}(),NB=function(A,e,t,r){A.container.elements.forEach((function(n){var s=ns(n.flags,4),o=ns(n.flags,2),i=new GB(n,A);ns(n.styles.display,2048)&&r.push(i);var B=ns(n.flags,8)?[]:r;if(s||o){var a=s||n.styles.isPositioned()?t:e,c=new VB(i);if(n.styles.isPositioned()||n.styles.opacity<1||n.styles.isTransformed()){var l=n.styles.zIndex.order;if(l<0){var g=0;a.negativeZIndex.some((function(A,e){return l>A.element.container.styles.zIndex.order?(g=e,!1):g>0})),a.negativeZIndex.splice(g,0,c)}else if(l>0){var u=0;a.positiveZIndex.some((function(A,e){return l>=A.element.container.styles.zIndex.order?(u=e+1,!1):u>0})),a.positiveZIndex.splice(u,0,c)}else a.zeroOrAutoZIndexOrTransformedOrOpacity.push(c)}else n.styles.isFloating()?a.nonPositionedFloats.push(c):a.nonPositionedInlineLevel.push(c);NB(i,c,s?c:t,B)}else n.styles.isInlineLevel()?e.inlineLevel.push(i):e.nonInlineLevel.push(i),NB(i,e,t,B);ns(n.flags,8)&&RB(n,B)}))},RB=function(A,e){for(var t=A instanceof Po?A.start:1,r=A instanceof Po&&A.reversed,n=0;n0&&A.intrinsicHeight>0){var r=jB(A),n=bB(e);this.path(n),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(t,0,0,A.intrinsicWidth,A.intrinsicHeight,r.left,r.top,r.width,r.height),this.ctx.restore()}},t.prototype.renderNodeContent=function(A){return r(this,void 0,void 0,(function(){var e,r,s,i,B,a,c,l,g,u,w,Q,d,C,h,U,F,f;return n(this,(function(n){switch(n.label){case 0:this.applyEffects(A.getEffects(4)),e=A.container,r=A.curves,s=e.styles,i=0,B=e.textNodes,n.label=1;case 1:return i0&&E>0&&(h=r.ctx.createPattern(Q,"repeat"),r.renderRepeat(F,h,y,v))):Dr(t)&&(U=Aa(A,e,[null,null,null]),F=U[0],f=U[1],p=U[2],m=U[3],E=U[4],H=0===t.position.length?[Pt]:t.position,y=Wt(H[0],m),v=Wt(H[H.length-1],E),I=Fr(t,y,v,m,E),K=I[0],b=I[1],K>0&&b>0&&(L=r.ctx.createRadialGradient(f+y,p+v,0,f+y,p+v,K),Qr(t.stops,2*K).forEach((function(A){return L.addColorStop(A.stop,rr(A.color))})),r.path(F),r.ctx.fillStyle=L,K!==b?(D=A.bounds.left+.5*A.bounds.width,x=A.bounds.top+.5*A.bounds.height,M=1/(S=b/K),r.ctx.save(),r.ctx.translate(D,x),r.ctx.transform(1,0,0,S,0,0),r.ctx.translate(-D,-x),r.ctx.fillRect(f,M*(p-x)+x,m,E*M),r.ctx.restore()):r.ctx.fill())),n.label=6;case 6:return e--,[2]}}))},r=this,s=0,o=A.styles.backgroundImage.slice(0).reverse(),B.label=1;case 1:return s0?2!==a.style?[3,5]:[4,this.renderDashedDottedBorder(a.color,a.width,o,A.curves,2)]:[3,11]:[3,13];case 4:return n.sent(),[3,11];case 5:return 3!==a.style?[3,7]:[4,this.renderDashedDottedBorder(a.color,a.width,o,A.curves,3)];case 6:return n.sent(),[3,11];case 7:return 4!==a.style?[3,9]:[4,this.renderDoubleBorder(a.color,a.width,o,A.curves)];case 8:return n.sent(),[3,11];case 9:return[4,this.renderSolidBorder(a.color,o,A.curves)];case 10:n.sent(),n.label=11;case 11:o++,n.label=12;case 12:return i++,[3,3];case 13:return[2]}}))}))},t.prototype.renderDashedDottedBorder=function(A,e,t,s,o){return r(this,void 0,void 0,(function(){var r,i,B,a,c,l,g,u,w,Q,d,C,h,U,F,f;return n(this,(function(n){return this.ctx.save(),r=YB(s,t),i=XB(s,t),2===o&&(this.path(i),this.ctx.clip()),HB(i[0])?(B=i[0].start.x,a=i[0].start.y):(B=i[0].x,a=i[0].y),HB(i[1])?(c=i[1].end.x,l=i[1].end.y):(c=i[1].x,l=i[1].y),g=0===t||2===t?Math.abs(B-c):Math.abs(a-l),this.ctx.beginPath(),3===o?this.formatPath(r):this.formatPath(i.slice(0,2)),u=e<3?3*e:2*e,w=e<3?2*e:e,3===o&&(u=e,w=e),Q=!0,g<=2*u?Q=!1:g<=2*u+w?(u*=d=g/(2*u+w),w*=d):(C=Math.floor((g+w)/(u+w)),h=(g-C*u)/(C-1),w=(U=(g-(C+1)*u)/C)<=0||Math.abs(w-h){s.toBlob((t=>{t?A(t):e(new Error("Fallback toBlob returned null"))}),"image/jpeg",w)}))}async function U(){var A;const e=function(){const A=Array.from(document.querySelectorAll("video, img, canvas")),e=window.innerWidth,t=window.innerHeight;let r=null,n=0;for(const s of A){const A=s.getBoundingClientRect(),o=Math.max(0,Math.min(A.right,e)-Math.max(A.left,0))*Math.max(0,Math.min(A.bottom,t)-Math.max(A.top,0));if(o<2500)continue;const i=d(s);0!==i.w&&0!==i.h&&o>n&&(n=o,r={el:s,rect:{x:A.left,y:A.top,w:A.width,h:A.height}})}return r}();if(e){const A=C(e.el,e.rect);return F({x:A.x,y:A.y,w:A.w,h:A.h})}const t=Array.from(document.querySelectorAll("video")),r=window.innerWidth,n=window.innerHeight;let s=null;for(const e of t){const t=e.getBoundingClientRect(),o=Math.max(0,Math.min(t.right,r)-Math.max(t.left,0))*Math.max(0,Math.min(t.bottom,n)-Math.max(t.top,0));o>(null!==(A=null==s?void 0:s.area)&&void 0!==A?A:0)&&(s={el:e,rect:{x:t.left,y:t.top,w:t.width,h:t.height},area:o})}return s?(console.warn("[Visage] captureWholeFrame: video not loaded, using fallback capture"),h(s.rect)):(console.warn("[Visage] captureWholeFrame: no media element found"),null)}async function F(A){console.warn("[Visage] captureRegion",A);const e=function(A,e){const t=document.elementsFromPoint(A,e);for(const A of t)if(A instanceof HTMLVideoElement||A instanceof HTMLImageElement||A instanceof HTMLCanvasElement){const e=A.getBoundingClientRect();return{el:A,rect:{x:e.left,y:e.top,w:e.width,h:e.height}}}return null}(A.x+A.w/2,A.y+A.h/2);if(!e)return console.warn("[Visage] No media element at center, falling back"),h(A);const t=d(e.el);if(0===t.w||0===t.h)return console.warn("[Visage] Media has no intrinsic size (not loaded yet), falling back"),h(A);const r=C(e.el,e.rect),n=function(A,e){const t=Math.max(A.x,e.x),r=Math.max(A.y,e.y),n=Math.min(A.x+A.w,e.x+e.w),s=Math.min(A.y+A.h,e.y+e.h);return{x:t,y:r,w:Math.max(0,n-t),h:Math.max(0,s-r)}}(A,r);if(n.w<4||n.h<4)return console.warn("[Visage] Selection too small after content clamp, falling back"),h(A);const{sx:s,sy:o,sw:i,sh:B}=function(A,e,t){const r=d(A);return{sx:(e.x-t.x)*(r.w/t.w),sy:(e.y-t.y)*(r.h/t.h),sw:e.w*(r.w/t.w),sh:e.h*(r.h/t.h)}}(e.el,n,r);console.warn("[Visage] Direct capture mapped:",{sx:s,sy:o,sw:i,sh:B});try{const A=await async function(A,e,t,r,n){const s=Math.min(u/r,u/n,1),o=Math.max(1,Math.round(r*s)),i=Math.max(1,Math.round(n*s)),B=document.createElement("canvas");B.width=o,B.height=i;const a=B.getContext("2d");if(!a)throw new Error("Failed to get 2D context");return a.drawImage(A,e,t,r,n,0,0,o,i),new Promise(((A,e)=>{B.toBlob((t=>{t?A(t):e(new Error("toBlob returned null"))}),"image/jpeg",w)}))}(e.el,s,o,i,B);return function(A,e){if(!Q)return;const t=URL.createObjectURL(A),r=document.createElement("img");r.src=t,r.style.cssText=["position:fixed",`left:${e.x}px`,`top:${e.y}px`,`width:${e.w}px`,`height:${e.h}px`,"opacity:0.5","pointer-events:none","z-index:2147483647","border:1px solid #00ff00"].join(";"),document.body.appendChild(r),setTimeout((()=>{r.remove(),URL.revokeObjectURL(t)}),3e3)}(A,n),A}catch(e){return console.warn("[Visage] Direct capture threw, falling back:",e),h(A)}}let f=20;const p=20,m="visage_api_endpoint",E="https://cc1234-stashface-onnx.hf.space";function H(){var A;if("undefined"!=typeof window&&(null===(A=window.visageConfig)||void 0===A?void 0:A.apiEndpoint))return window.visageConfig.apiEndpoint;try{const A=localStorage.getItem(m);if(A)return A}catch(A){console.warn("Could not read API endpoint from localStorage:",A)}return E}const y="/gradio_api";async function v(A,e,t){const r=new FormData;r.append("files",e,t);const n=await fetch(`${A}${y}/upload`,{method:"POST",body:r,credentials:"omit"});if(!n.ok)throw new Error(`Upload failed: ${n.status}`);return(await n.json())[0]}async function I(A,e,t,r){var n,s;const o=await fetch(`${A}${y}/call/${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:t}),credentials:"omit"});if(!o.ok)throw new Error(`Predict failed: ${o.status}`);const{event_id:i}=await o.json(),B=null===(n=(await fetch(`${A}${y}/call/${e}/${i}`,{credentials:"omit"})).body)||void 0===n?void 0:n.getReader();if(!B)throw new Error("No response body");const a=new TextDecoder;let c="",l=null;for(;;){const{done:A,value:e}=await B.read();if(A)break;c+=a.decode(e,{stream:!0});const t=c.split("\n");c=t.pop()||"";for(const A of t)if(A.startsWith("data: "))try{const e=JSON.parse(A.slice(6));if(null===e)continue;const t=Array.isArray(e)&&1===e.length?e[0]:e;if(void 0!==(null==t?void 0:t.progress)){r&&r(t.progress,t.desc||"");continue}if("data"in t){l=t.data;continue}if(Array.isArray(t)&&t.length>0&&void 0!==(null===(s=t[0])||void 0===s?void 0:s.data)){l=t[0].data;continue}l=t}catch(A){}}return l}async function K(A,e,t){const r=H(),n=await v(r,A,"sprite.jpg"),s=await v(r,e,"thumbs.vtt"),o=A=>({path:A,meta:{_type:"gradio.FileData"}}),i=await I(r,"identify_sprite_performers",[o(n),o(s),p],t);return{data:Array.isArray(i)?i:[i]}}function b(){const A=document.URL.match(/(scenes|images)\/(\d+)/);if(!A)throw new Error("Could not parse scenario and ID from URL");return[A[1],A[2]]}const L=window.PluginApi.React,{useCallback:D}=L;let x=null,S=null,M=null,T=0,O=0,k=!1;function V(){M&&(document.removeEventListener("keydown",M),M=null),x&&(x.remove(),x=null,S=null)}function G({menuItem:A}){let e=null;try{e=window.PluginApi.hooks.useToast()}catch(A){}const{state:t,setLoading:r,setMatches:n,setScenario:s}=a(),o="face-search",i=t.loading[o]||!1,B=D((async()=>{i||function(A,e){V(),x=document.createElement("div"),x.style.cssText="position:fixed;inset:0;z-index:2147483647;cursor:crosshair;background:rgba(0,0,0,0.12);";const t=document.createElement("div");function r(A){if(!k)return;const e=Math.min(T,A.clientX),t=Math.min(O,A.clientY),r=Math.abs(A.clientX-T),n=Math.abs(A.clientY-O);S.style.cssText=`position:fixed;display:block;left:${e}px;top:${t}px;width:${r}px;height:${n}px;outline:2px solid #5695ff;outline-offset:-2px;background:rgba(86,149,255,0.08);pointer-events:none;z-index:2147483649;`}function n(t){k=!1,x.removeEventListener("mousemove",r),x.removeEventListener("mouseup",n);const s=S.getBoundingClientRect();if(s.width<10||s.height<10)return V(),void e();x.style.display="none",F({x:s.left,y:s.top,w:s.width,h:s.height}).then((t=>{V(),t?A(t):e()})).catch((()=>{V(),e()}))}function s(t){if("Escape"===t.key)return V(),void e();if("Enter"===t.key){if(t.preventDefault(),k)return;x.style.display="none",U().then((t=>{V(),t?A(t):e()})).catch((()=>{V(),e()}))}}t.textContent="Drag to select a face — Enter to scan the whole frame — Esc to cancel",t.style.cssText="position:fixed;top:16px;left:50%;transform:translateX(-50%);background:#07070f;color:rgba(255,255,255,0.8);padding:10px 24px;border-radius:8px;font:13px/1.4 system-ui,sans-serif;border:1px solid rgba(255,255,255,0.07);box-shadow:0 4px 20px rgba(0,0,0,0.5);pointer-events:none;z-index:2147483648;",x.appendChild(t),S=document.createElement("div"),S.style.cssText="position:fixed;display:none;outline:2px solid #5695ff;outline-offset:-2px;background:rgba(86,149,255,0.08);pointer-events:none;z-index:2147483649;",x.appendChild(S),document.body.appendChild(x),x.addEventListener("mousedown",(function(A){0===A.button&&(k=!0,T=A.clientX,O=A.clientY,S.style.cssText=`position:fixed;display:block;left:${T}px;top:${O}px;width:0;height:0;outline:2px solid #5695ff;outline-offset:-2px;background:rgba(86,149,255,0.08);pointer-events:none;z-index:2147483649;`,x.addEventListener("mousemove",r),x.addEventListener("mouseup",n))})),M=s,document.addEventListener("keydown",s)}((async A=>{var t,i,B,a,c,l,g,u,w,Q,d,C;r(o,!0);try{const[r,o]=b();s(r,o);const g=await async function(A,e,t){var r;try{const r=H(),n=await Promise.all(e.map((async A=>{if(A instanceof Blob||A instanceof File){const e=A instanceof File?A.name:"file";return{path:await v(r,A,e),meta:{_type:"gradio.FileData"}}}return A}))),s=await I(r,A,n,t);return{data:Array.isArray(s)?s:[s]}}catch(A){const e=null!==(r=null==A?void 0:A.message)&&void 0!==r?r:"string"==typeof A?A:JSON.stringify(A);throw new Error(`Gradio API call failed: ${e}`)}}("multiple_image_search",[A,f]),u=g.data;if(!u||"object"!=typeof u)return console.log("No matches found - invalid data"),void(null===(i=null===(t=null==e?void 0:e.toast)||void 0===t?void 0:t.warning)||void 0===i||i.call(t,"No faces found in that selection. Try a tighter crop, or press Enter to scan the whole frame."));const w=Array.isArray(u)?u[0]:u;if(null==w?void 0:w.error)return console.log("API returned error:",w.error),void(null===(a=null===(B=null==e?void 0:e.toast)||void 0===B?void 0:B.warning)||void 0===a||a.call(B,w.error));if(!Array.isArray(u)||0===u.length)return console.log("No matches found - empty array"),void(null===(l=null===(c=null==e?void 0:e.toast)||void 0===c?void 0:c.warning)||void 0===l||l.call(c,"No faces found in that selection. Try a tighter crop, or press Enter to scan the whole frame."));n(u)}catch(A){console.error("Face search error:",A),A&&"object"==typeof A&&(console.error("Error keys:",Object.keys(A)),console.error("Error stage:",A.stage),console.error("Error message prop:",A.message),console.error("Error broken:",A.broken));const t=A instanceof Error?A.message:"Unknown error";t.includes("Could not find element")?null===(u=null===(g=null==e?void 0:e.toast)||void 0===g?void 0:g.error)||void 0===u||u.call(g,"Could not capture media. Please ensure the scene/image is fully loaded."):t.includes("Failed to fetch")||t.includes("NetworkError")?null===(Q=null===(w=null==e?void 0:e.toast)||void 0===w?void 0:w.error)||void 0===Q||Q.call(w,"Face recognition API is not reachable. Check the API endpoint in Settings."):null===(C=null===(d=null==e?void 0:e.toast)||void 0===d?void 0:d.error)||void 0===C||C.call(d,"Face search failed: "+t)}finally{r(o,!1)}}),(()=>{var A,t;null===(t=null===(A=null==e?void 0:e.toast)||void 0===A?void 0:A.warning)||void 0===t||t.call(A,"Select a face within the video player area.")}))}),[r,n,s,i]);return A?L.createElement("a",{href:"#",className:"bg-secondary text-white dropdown-item",role:"button",title:"Drag a box around a face, or press Enter to scan the whole frame, to search StashDB for matches",onClick:A=>{A.preventDefault(),function(){var A;const e=document.querySelector(".dropdown-menu.show");if(!e)return;e.classList.remove("show");const t=null===(A=e.closest(".dropdown"))||void 0===A?void 0:A.querySelector('[data-toggle="dropdown"], .dropdown-toggle');t&&t.setAttribute("aria-expanded","false")}(),B()}},"Visage: Current Frame"):L.createElement("button",{id:"visage-frame-search",className:"visage-toolbar-button"+(i?" visage-scanning":""),onClick:B,disabled:i,title:"Visage: Current Frame"},L.createElement("svg",{width:20,height:20,viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},L.createElement("path",{d:"M9 11.75c-.69 0-1.25.56-1.25 1.25s.56 1.25 1.25 1.25 1.25-.56 1.25-1.25-.56-1.25-1.25-1.25zm6 0c-.69 0-1.25.56-1.25 1.25s.56 1.25 1.25 1.25 1.25-.56 1.25-1.25-.56-1.25-1.25-1.25zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8 0-.29.02-.58.05-.86 2.36-1.05 4.23-2.98 5.21-5.37C11.07 8.33 14.05 10 17.42 10c.78 0 1.53-.09 2.25-.26.21.71.33 1.47.33 2.26 0 4.41-3.59 8-8 8z"})))}function N(A,e=2){return String(A).padStart(e,"0")}function R(A){const e=Math.floor(A/3600),t=Math.floor(A%3600/60),r=Math.floor(A%60),n=Math.round(1e3*(A-Math.floor(A)));return`${N(e)}:${N(t)}:${N(r)}.${N(n,3)}`}const P=window.PluginApi.GQL,X=()=>window.PluginApi.utils.StashService.getClient();async function J(A){return(await X().query({query:P.FindPerformersDocument,variables:{performer_filter:{stash_id_endpoint:{endpoint:"",stash_id:A,modifier:"EQUALS"}}}})).data.findPerformers.performers}async function W(A){return(await X().query({query:P.FindSceneDocument,variables:{id:A}})).data.findScene.performers.map((A=>A.id))}async function Y(A){return(await X().query({query:P.FindImageDocument,variables:{id:A}})).data.findImage.performers.map((A=>A.id))}async function _(A,e){return X().mutate({mutation:P.SceneUpdateDocument,variables:{input:{id:A,performer_ids:e}}})}async function Z(A,e){return X().mutate({mutation:P.ImageUpdateDocument,variables:{input:{id:A,performer_ids:e}}})}async function q(A){var e,t,r,n;console.log("[Visage] getPerformerDataFromStashID - checking stashbox config...");const s=await X().query({query:P.ConfigurationDocument});console.log("[Visage] Stashboxes:",JSON.stringify(null===(r=null===(t=null===(e=s.data)||void 0===e?void 0:e.configuration)||void 0===t?void 0:t.general)||void 0===r?void 0:r.stashBoxes,null,2)),console.log("[Visage] Calling scrapeSinglePerformer with stash_id:",A);try{const e=await X().query({query:P.ScrapeSinglePerformerDocument,variables:{source:{stash_box_index:0},input:{query:A}}});return console.log("[Visage] scrapeSinglePerformer raw result:",e),console.log("[Visage] scrapeSinglePerformer data:",JSON.stringify(e.data,null,2)),e.errors&&console.log("[Visage] GraphQL errors:",JSON.stringify(e.errors,null,2)),(null===(n=e.data)||void 0===n?void 0:n.scrapeSinglePerformer)?e.data.scrapeSinglePerformer.filter((e=>e.remote_site_id===A))[0]:void console.log("[Visage] scrapeSinglePerformer returned null/undefined")}catch(A){return void console.log("[Visage] Exception in scrapeSinglePerformer:",A)}}async function j(A){return X().mutate({mutation:P.PerformerCreateDocument,variables:{input:A}})}async function z(A,e){var t;return null!==(t=(await X().query({query:P.FindSceneDocument,variables:{id:A}})).data.findScene.paths[e])&&void 0!==t?t:null}async function $(A){const e=await z(A,"sprite");if(!e)return null;return(await fetch(e)).ok?e:null}async function AA(A){return z(A,"preview")}async function eA(A,e){const{images:t,height:r,aliases:n,remote_site_id:s,stored_id:o,__typename:i,tags:B,...a}=A,c=await async function(){var A,e,t;const r=null===(t=null===(e=null===(A=(await X().query({query:P.ConfigurationDocument})).data)||void 0===A?void 0:A.configuration)||void 0===e?void 0:e.general)||void 0===t?void 0:t.stashBoxes;return(null==r?void 0:r.length)?r[0].endpoint:null}();return{...a,image:null==t?void 0:t[0],height_cm:r,alias_list:n,stash_ids:c?[{endpoint:c,stash_id:e}]:void 0}}async function tA(A,e,t){const r="scenes"===A?W:Y,n="scenes"===A?_:Z,s=await r(e);s.includes(t)||(s.push(t),await n(e,s))}function rA(){try{return window.PluginApi.hooks.useToast()}catch(A){return null}}let nA=!1;function sA(){return nA}const oA=window.PluginApi.React,{useCallback:iA}=oA;function BA(A){return!!(null==A?void 0:A.performers)&&Object.keys(A.performers).length>0}function aA({menuItem:A}){const e=rA(),{state:t,setLoading:r,setSpriteResult:n,showSpriteModal:s,setDetectionMode:o,setScanProgress:i}=a(),B="face-detection",c=t.loading[B]||!1,l=iA((async A=>{var e;const t=await $(A);if(!t)return null;const r=t.replace(/_sprite\.jpg$/,"_thumbs.vtt"),n=await async function(A){const e=await fetch(A);if(!e.ok)throw new Error(`Failed to fetch ${A}: ${e.status}`);const t=await e.blob();return new Promise((A=>{const e=new FileReader;e.onload=()=>A(e.result),e.readAsDataURL(t)}))}(t),s=await fetch(r);if(!s.ok)return console.warn("[Visage] sprite VTT fetch failed",r,s.status),null;const o=await s.blob(),B=function(A){const e=A.split(","),t=e[0].match(/:(.*?);/)[1],r=atob(e[1]);let n=r.length;const s=new Uint8Array(n);for(;n--;)s[n]=r.charCodeAt(n);return new Blob([s],{type:t})}(n),a=await K(B,o,((A,e)=>i(A,e))),c=null===(e=null==a?void 0:a.data)||void 0===e?void 0:e[0];return(null==c?void 0:c.error)?(console.warn("[Visage] sprite identification error:",c.error),null):BA(c)?c:null}),[i]),g=iA((async A=>{var e;const t=await AA(A);if(!t)return null;const{sprite:r,vtt:n}=await async function(A,e=12,t=640,r=360){const n=document.createElement("video");n.crossOrigin="anonymous",n.preload="auto",n.muted=!0,n.playsInline=!0,n.src=A,await new Promise(((A,e)=>{const t=setTimeout((()=>e(new Error("Preview video load timed out"))),15e3);n.onloadedmetadata=()=>{clearTimeout(t),A()},n.onerror=()=>{clearTimeout(t),e(new Error("Failed to load preview video"))},n.load()})),await n.play(),n.pause();const s=n.duration;if(!s||s<=0)throw new Error("Invalid preview video duration");const o=s/e,i=document.createElement("canvas");i.width=t,i.height=r;const B=i.getContext("2d"),a=Math.ceil(e/4),c=document.createElement("canvas");c.width=4*t,c.height=a*r;const l=c.getContext("2d"),g=[],u=o/2;for(let A=0;A{n.onseeked=()=>A()})),B.drawImage(n,0,0,t,r);const a=A%4,c=Math.floor(A/4);l.drawImage(i,a*t,c*r),g.push(`${R(e)} --\x3e ${R(Math.min(e+o,s))}\nsprite.jpg#xywh=${a*t},${c*r},${t},${r}`)}const w=await new Promise(((A,e)=>{c.toBlob((t=>t?A(t):e(new Error("toBlob failed"))),"image/jpeg",.85)})),Q="WEBVTT\n\n"+g.map(((A,e)=>`${e+1}\n${A}`)).join("\n\n");return n.remove(),i.remove(),c.remove(),{sprite:w,vtt:Q}}(t);if(sA())return null;const s=new Blob([n],{type:"text/vtt"}),o=await K(r,s,((A,e)=>i(A,e))),B=null===(e=null==o?void 0:o.data)||void 0===e?void 0:e[0];return(null==B?void 0:B.error)?(console.warn("[Visage] preview identification error:",B.error),null):BA(B)?B:null}),[i]),u=iA((async()=>{var A,t,i,a;nA=!1,console.warn("[Visage] whole scene scan clicked");try{r(B,!0),s(!0);const[A,t]=b();if("scenes"!==A)return console.warn("[Visage] scene scan only works on scenes"),void s(!1);o("sprite");const i=await l(t);if(sA())return;if(i)return void n(i);o("preview");const a=await g(t);if(sA())return;if(a)return void n(a);s(!1);const c=await $(t),u=await AA(t);c||u?null==e||e.toast({content:"No faces or performers found in this scene’s sprite sheet or preview video."}):null==e||e.toast({content:"No sprite sheet or preview video found for this scene. Generate them in Scene settings, then try again."})}catch(r){console.error("[Visage] scene scan error:",r),s(!1);const n=r instanceof Error?r.message:"Unknown error";n.includes("Failed to fetch")||n.includes("NetworkError")?null===(t=null===(A=null==e?void 0:e.toast)||void 0===A?void 0:A.error)||void 0===t||t.call(A,"Face recognition API is not reachable. Check the API endpoint in Settings."):null===(a=null===(i=null==e?void 0:e.toast)||void 0===i?void 0:i.error)||void 0===a||a.call(i,"Scene scan failed: "+n)}finally{r(B,!1)}}),[r,n,s,o,i,l,g,e]);return A?oA.createElement("a",{href:"#",className:"bg-secondary text-white dropdown-item",role:"button",title:"Identify every performer in the scene (needs a generated sprite sheet or preview video)",onClick:A=>{A.preventDefault(),function(){var A;const e=document.querySelector(".dropdown-menu.show");if(!e)return;e.classList.remove("show");const t=null===(A=e.closest(".dropdown"))||void 0===A?void 0:A.querySelector('[data-toggle="dropdown"], .dropdown-toggle');t&&t.setAttribute("aria-expanded","false")}(),u()}},"Visage: Whole Scene"):oA.createElement("button",{id:"visage-scene-scan",className:"visage-toolbar-button"+(c?" visage-scanning":""),onClick:u,disabled:c,title:"Visage: Whole Scene"},oA.createElement("svg",{width:20,height:20,viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},oA.createElement("path",{d:"M18 4l2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4z"})))}const cA=window.PluginApi.React,{useState:lA,useEffect:gA,useCallback:uA}=cA;const wA=window.PluginApi.React,{useEffect:QA}=wA,dA='a, button, input, [tabindex]:not([tabindex="-1"])';function CA(A,e=!0){const t=wA.useRef(null);return QA((()=>{if(!e)return;const r=t.current;if(!r)return;const n=document.activeElement;(()=>{const A=r.querySelectorAll(dA);A.length>0?A[0].focus():(r.hasAttribute("tabindex")||r.setAttribute("tabindex","-1"),r.focus())})();const s=e=>{if(t.current){if("Escape"===e.key)return e.preventDefault(),void A();if("Tab"===e.key){const A=Array.from(t.current.querySelectorAll(dA)).filter((A=>!A.hasAttribute("disabled")));if(0===A.length)return void e.preventDefault();const r=A[0],n=A[A.length-1],s=document.activeElement;e.shiftKey?s!==r&&t.current.contains(s)||(e.preventDefault(),n.focus()):s!==n&&t.current.contains(s)||(e.preventDefault(),r.focus())}}};return document.addEventListener("keydown",s,!0),()=>{document.removeEventListener("keydown",s,!0),n&&"function"==typeof n.focus&&n.focus()}}),[e,A]),t}const hA=window.PluginApi.React,{useCallback:UA}=hA;const FA=window.PluginApi.React;function fA({performer:A,isLoading:e,isKeyboardSelected:t,isSelected:r,onToggle:n}){const s=function(A=400){return UA((e=>{e&&(e.style.opacity="0",e.style.transition=`opacity ${A}ms ease`,e.complete&&e.naturalWidth>0?e.style.opacity="1":(e.addEventListener("load",(()=>{e.style.opacity="1"}),{once:!0}),e.addEventListener("error",(()=>{e.style.opacity="1"}),{once:!0})))}),[A])}(),o=A.confidence||0,i=o>=90?"visage-confidence-excellent":o>=70?"visage-confidence-good":"visage-confidence-uncertain",B=o>=90?"Excellent match":o>=70?"Good match":"Uncertain match",a=["visage-performer-card",e?"visage-loading":"",t?"visage-keyboard-selected":"",r?"visage-performer-selected":""].filter(Boolean).join(" ");function c(){e||n(A.id)}return FA.createElement("div",{className:a,"data-performer-id":A.id,onClick:c,onKeyPress:function(A){"Enter"!==A.key&&" "!==A.key||(A.preventDefault(),c())},role:"button",tabIndex:t?0:-1,"aria-pressed":r,"aria-label":`${r?"Deselect":"Select"} ${A.name}`},FA.createElement("div",{className:"visage-card-portrait"},FA.createElement("img",{ref:s,className:"visage-portrait-img",alt:A.name,src:A.image}),FA.createElement("div",{className:"visage-card-img-overlay"}),FA.createElement("div",{className:`visage-confidence-strip ${i}`,style:{width:`${o}%`}}),A.country&&FA.createElement("span",{className:`visage-country-flag fi fi-${A.country.toLowerCase()}`}),r&&FA.createElement("div",{className:"visage-card-check-badge"},FA.createElement("svg",{width:16,height:16,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:3},FA.createElement("polyline",{points:"20 6 9 17 4 12"}))),FA.createElement("div",{className:"visage-card-meta"},FA.createElement("a",{href:`https://stashdb.org/performers/${A.id}`,target:"_blank",rel:"noopener noreferrer",className:"visage-performer-name",onClick:A=>A.stopPropagation()},A.name),FA.createElement("div",{className:"visage-card-stats"},FA.createElement("div",{className:`visage-confidence-dot ${i}`}),FA.createElement("span",{className:"visage-confidence-pct"},`${o}%`),FA.createElement("span",{className:"visage-confidence-lbl"},B)))))}const pA=window.PluginApi.React,{useCallback:mA,useEffect:EA,useRef:HA,useState:yA}=pA;function vA(){var A,e,t,r;const n=rA(),{state:s,setLoading:o,showMatchModal:i}=a(),{matches:B,loading:c}=s,l=Array.isArray(B)?B:[],[g,u]=pA.useState(0),[w,Q]=yA(new Map),[d,C]=yA(!1),[h,U]=yA(!1),[F,f]=yA(new Set),[p,m]=yA((()=>{const A=localStorage.getItem("visage:minConfidence:match");if(null!==A){const e=Number(A);if(!Number.isNaN(e))return e}const e=l.flatMap((A=>A.performers.map((A=>A.confidence||0)))).filter((A=>A>0)).sort(((A,e)=>e-A));return e.length>=3?e[2]:0})),E=CA(D,s.showMatchModal),H=HA(!1);EA((()=>{requestAnimationFrame((()=>U(!0)));const[A,e]=b();return"scenes"===A&&(async()=>{var A,t,r,n;try{const s=window.PluginApi.GQL,o=window.PluginApi.utils.StashService.getClient(),i=await o.query({query:s.FindSceneDocument,variables:{id:e}}),B=new Set;for(const e of null!==(r=null===(t=null===(A=i.data)||void 0===A?void 0:A.findScene)||void 0===t?void 0:t.performers)&&void 0!==r?r:[])for(const A of null!==(n=e.stash_ids)&&void 0!==n?n:[])A.stash_id&&B.add(A.stash_id);H.current||f(B)}catch(A){}})(),()=>{H.current=!0}}),[]);const y=mA((A=>{var e;const t=l[A];return(null===(e=null==t?void 0:t.performers)||void 0===e?void 0:e.filter((A=>(A.confidence||0)>=p)).length)||0}),[l,p]),v=mA(((A,e)=>{const t=l[A];if(!t)return;const r=t.performers[e];r&&!c[`add-performer-${r.id}`]&&x(A,r.id)}),[l,c]),{selectedFaceIndex:I,selectedCardIndex:K,hasNavigated:L}=function({faceCount:A,getPerformerCount:e,onAssign:t,enabled:r}){const[n,s]=lA(0),[o,i]=lA(0),[B,a]=lA(!1),c=uA((B=>{if(!r)return;const c=e(n);switch(B.key){case"ArrowRight":B.preventDefault(),a(!0),o0&&i(o-1);break;case"ArrowDown":B.preventDefault(),a(!0),n0&&(s(n-1),i(0));break;case"Enter":case" ":B.preventDefault(),a(!0),t(n,o)}}),[r,A,n,o,e,t]);return gA((()=>{if(r)return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)}),[c,r]),{selectedFaceIndex:n,selectedCardIndex:o,hasNavigated:B,setSelectedFaceIndex:s,setSelectedCardIndex:i}}({faceCount:l.length,getPerformerCount:y,onAssign:v,enabled:s.showMatchModal});function D(){U(!1),setTimeout((()=>i(!1)),300)}function x(A,e){F.has(e)||Q((t=>{const r=new Map(t);return r.get(A)===e?r.delete(A):r.set(A,e),r}))}EA((()=>{u(I)}),[I]);const S=c["face-search"]&&0===l.length,M=l[g],T=w.get(g),O=null!==(e=null===(A=null==M?void 0:M.performers)||void 0===A?void 0:A.findIndex((A=>F.has(A.id))))&&void 0!==e?e:-1,k=L?K:T?null!==(r=null===(t=null==M?void 0:M.performers)||void 0===t?void 0:t.findIndex((A=>A.id===T)))&&void 0!==r?r:0:O>=0?O:0;return pA.createElement("div",{className:"visage-modal-backdrop "+(h?"visage-visible":""),onClick:A=>{A.target===A.currentTarget&&D()}},pA.createElement("div",{ref:E,className:"visage-modal "+(h?"visage-visible":""),role:"dialog","aria-modal":"true"},pA.createElement("div",{className:"visage-modal-header"},pA.createElement("div",{className:"visage-modal-title"},pA.createElement("h2",null,"CURRENT FRAME"),!S&&pA.createElement("span",{className:"visage-match-count"},`${l.length} faces found · ${w.size} selected`+(F.size>0?` · ${F.size} in scene`:""))),pA.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},pA.createElement("button",{className:"visage-modal-close",onClick:D,"aria-label":"Close"},pA.createElement("svg",{width:20,height:20,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2},pA.createElement("line",{x1:18,y1:6,x2:6,y2:18}),pA.createElement("line",{x1:6,y1:6,x2:18,y2:18}))))),S?pA.createElement("div",{className:"visage-modal-loading"},pA.createElement("div",{className:"visage-face-scan"},pA.createElement("span",{className:"visage-face-scan-corner"}),pA.createElement("span",{className:"visage-face-scan-corner"}),pA.createElement("span",{className:"visage-face-scan-corner"}),pA.createElement("span",{className:"visage-face-scan-corner"}),pA.createElement("svg",{viewBox:"0 0 100 120",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round"},pA.createElement("path",{d:"M50 7 C29 7 15 22 16 45 C16.5 57 20 65 24 71"}),pA.createElement("path",{d:"M50 7 C71 7 85 22 84 45 C83.5 57 80 65 76 71"}),pA.createElement("path",{strokeWidth:1.2,d:"M50 15 C37 15 27 26 27 42"}),pA.createElement("path",{strokeWidth:1.2,d:"M50 15 C63 15 73 26 73 42"}),pA.createElement("path",{d:"M27 42 C27 61 34 77 43 85 C46 88 54 88 57 85 C66 77 73 61 73 42"}),pA.createElement("path",{d:"M33 52 C36.5 55 42.5 55 46 52"}),pA.createElement("path",{d:"M54 52 C57.5 55 63.5 55 67 52"}),pA.createElement("path",{strokeWidth:1.2,d:"M35 54.6 L33.8 57 M39.5 55.6 L39 58.2 M44 54.6 L45 57"}),pA.createElement("path",{strokeWidth:1.2,d:"M56 54.6 L55 57 M60.5 55.6 L61 58.2 M65 54.6 L66.2 57"}),pA.createElement("path",{strokeWidth:1.2,d:"M32 46 C36 43.6 43 43.6 47 46"}),pA.createElement("path",{strokeWidth:1.2,d:"M53 46 C57 43.6 64 43.6 68 46"}),pA.createElement("path",{strokeWidth:1.2,d:"M50 54 C50 60 49.4 63 48.8 65.2 C49.6 66.4 50.4 66.4 51.2 65.2"}),pA.createElement("path",{d:"M42 75 C45 72.5 48 73.8 50 74.8 C52 73.8 55 72.5 58 75 C55 79.5 45 79.5 42 75 Z"}),pA.createElement("path",{strokeWidth:1.2,d:"M44.5 80.5 C47 82.5 53 82.5 55.5 80.5"}),pA.createElement("path",{strokeWidth:1.2,d:"M42 87.5 C42 94 40.5 99 38 104"}),pA.createElement("path",{strokeWidth:1.2,d:"M58 87.5 C58 94 59.5 99 62 104"}),...[[25,52],[75,52],[35,68],[65,68],[60.5,82]].map((([A,e],t)=>pA.createElement("circle",{key:t,className:"visage-face-scan-dot",cx:A,cy:e,r:4===t?1.5:1.8,stroke:"none"})))),pA.createElement("div",{className:"visage-face-scan-beam"})),pA.createElement("span",{className:"visage-loading-label"},"Scanning • face recognition…")):pA.createElement(pA.Fragment,null,pA.createElement("div",{className:"visage-face-tabs"},l.map(((A,e)=>0===y(e)?null:pA.createElement("button",{key:e,className:"visage-face-tab "+(e===g?"visage-face-tab-active":""),onClick:()=>u(e)},pA.createElement("img",{src:`data:image/jpg;base64,${A.image}`,alt:`Face ${e+1}`,className:"visage-face-tab-image"}))))),pA.createElement("div",{className:"visage-sprite-toolbar",style:{padding:"0.5rem 1.5rem"}},pA.createElement("div",{className:"visage-sprite-threshold"},pA.createElement("span",{className:"visage-threshold-text"},"Min conf."),pA.createElement("input",{type:"range",min:0,max:100,step:5,value:p,onChange:A=>{const e=Number(A.target.value);m(e),localStorage.setItem("visage:minConfidence:match",String(e))},title:`Minimum confidence: ${p}%`}),pA.createElement("span",{className:"visage-sprite-threshold-label"},`${p}%`))),pA.createElement("div",{className:"visage-modal-body"},pA.createElement("div",{className:"visage-left-panel"},M&&pA.createElement(pA.Fragment,null,pA.createElement("div",null,pA.createElement("span",{className:"visage-section-label"},"Detected"),pA.createElement("div",{className:"visage-detect-frame"},pA.createElement("img",{src:`data:image/jpg;base64,${M.image}`,alt:"Detected face",className:"visage-detect-image"}))),M.performers[k]&&pA.createElement(pA.Fragment,null,pA.createElement("div",{className:"visage-vs-divider"},"vs"),pA.createElement("div",null,pA.createElement("span",{className:"visage-section-label-name"},M.performers[k].name),pA.createElement("div",{className:"visage-match-frame"},pA.createElement("img",{src:M.performers[k].image,alt:M.performers[k].name,className:"visage-match-image"})))))),pA.createElement("div",{className:"visage-right-panel"},pA.createElement("div",{className:"visage-performer-grid"},null==M?void 0:M.performers.filter((A=>(A.confidence||0)>=p)).map(((A,e)=>pA.createElement(fA,{key:A.id,performer:A,isLoading:c[`add-performer-${A.id}`]||!1,isKeyboardSelected:L&&I===g&&K===e,isSelected:F.has(A.id)||w.get(g)===A.id,onToggle:A=>x(g,A)})))))),pA.createElement("div",{className:"visage-modal-footer"},pA.createElement("div",{className:"visage-footer-main"},pA.createElement("a",{className:"visage-ext-patreon-btn",href:"https://www.patreon.com/cw/cc12340",target:"_blank",rel:"noopener noreferrer"},pA.createElement("svg",{width:13,height:13,viewBox:"0 0 24 24",fill:"currentColor"},pA.createElement("circle",{cx:15,cy:9,r:7}),pA.createElement("rect",{x:2,y:2,width:4,height:20,rx:1})),"Support on Patreon"),pA.createElement("div",{className:"visage-progress-info"},pA.createElement("span",{className:"visage-matches-assigned"},w.size>0?`${w.size} of ${l.length} selected`:F.size>0?`${l.length} faces found · all in scene`:`${l.length} faces found · click to select`),pA.createElement("div",{className:"visage-keyboard-hints"},pA.createElement("kbd",null,"↑↓")," Switch faces • ",pA.createElement("kbd",null,"←→")," Select performers • ",pA.createElement("kbd",null,"Enter")," Select performer")),pA.createElement("div",{className:"visage-button-group"},l.some((A=>A.performers.some((A=>A.confidence>=90&&!F.has(A.id)&&w.get(g)!==A.id))))&&pA.createElement("button",{className:"visage-btn visage-btn-secondary",onClick:async function(){for(let A=0;Ae.confidence>=90&&!F.has(e.id)&&w.get(A)!==e.id)).sort(((A,e)=>e.confidence-A.confidence))[0];e&&x(A,e.id)}}},pA.createElement("svg",{width:16,height:16,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2},pA.createElement("path",{d:"M9 11l3 3 8-8"})),"Select Best Matches"),pA.createElement("button",{className:"visage-btn visage-btn-primary",onClick:async function(){var A,e,t,r,s,i,B,a,c;const l=Array.from(w.values()).filter((A=>!F.has(A)));if(0===l.length)return void D();C(!0);const[g,u]=b();try{for(const i of l){const B=`add-performer-${i}`;o(B,!0);try{let o=await J(i),B=i;if(0===o.length){const o=await q(i);if(!o){null===(e=null===(A=null==n?void 0:n.toast)||void 0===A?void 0:A.warning)||void 0===e||e.call(A,`Could not import performer ${i}. Configure a stashbox in Settings.`);continue}const a=await eA(o,i),c=await j(a);if(c.errors){null===(r=null===(t=null==n?void 0:n.toast)||void 0===t?void 0:t.error)||void 0===r||r.call(t,"Failed to create performer: "+(null===(s=c.errors[0])||void 0===s?void 0:s.message));continue}B=c.data.performerCreate.id}else B=o[0].id;await tA(g,u,B)}finally{o(B,!1)}}null===(B=null===(i=null==n?void 0:n.toast)||void 0===i?void 0:i.success)||void 0===B||B.call(i,`Added ${l.length} performer${1!==l.length?"s":""} to the ${"scenes"===g?"scene":"image"}.`),D()}catch(A){console.log("[Visage] addConfirmed error:",A),null===(c=null===(a=null==n?void 0:n.toast)||void 0===a?void 0:a.error)||void 0===c||c.call(a,"Failed to add performers: "+(A instanceof Error?A.message:"Unknown error"))}finally{C(!1)}},disabled:0===w.size||d},d?"Adding...":`Done (${w.size})`)))))))}const IA=window.PluginApi.React,{useEffect:KA,useMemo:bA,useState:LA,useRef:DA,useCallback:xA}=IA;function SA(A){if(!isFinite(A)||A<0)return"-:--";const e=Math.floor(A/60),t=Math.floor(A%60);return`${e.toString().padStart(2,"0")}:${t.toString().padStart(2,"0")}`}function MA(){const A=rA(),{state:e,showSpriteModal:t,clearSpriteResult:r,setLoading:n}=a(),{spriteResult:s,loading:o,scanProgress:i,scanProgressDesc:B}=e,[c,l]=LA(!1),[g,u]=LA(new Set),[w,Q]=LA({}),[d,C]=LA(new Set),[h,U]=LA(!1),[F,f]=LA("confidence"),[p,m]=LA((()=>{const A=localStorage.getItem("visage:minConfidence:sprite"),e=null===A?NaN:Number(A);return Number.isFinite(e)?e:20})),[E,H]=LA(0),[y,v]=LA(new Set),I=o["face-detection"]&&null===s,K=DA(!1);KA((()=>{requestAnimationFrame((()=>l(!0)));const[A,e]=b();return"scenes"===A&&(async()=>{var A,t,r,n;try{const s=window.PluginApi.GQL,o=window.PluginApi.utils.StashService.getClient(),i=await o.query({query:s.FindSceneDocument,variables:{id:e}}),B=new Set;for(const e of null!==(r=null===(t=null===(A=i.data)||void 0===A?void 0:A.findScene)||void 0===t?void 0:t.performers)&&void 0!==r?r:[])for(const A of null!==(n=e.stash_ids)&&void 0!==n?n:[])A.stash_id&&B.add(A.stash_id);K.current||v(B)}catch(A){}})(),()=>{K.current=!0}}),[]);const L=bA((()=>(null==s?void 0:s.performers)?Object.values(s.performers).sort(((A,e)=>e.confidence-A.confidence)):[]),[s]),D=bA((()=>{var A;let e=Object.values(null!==(A=null==s?void 0:s.performers)&&void 0!==A?A:{});p>0&&(e=e.filter((A=>A.confidence>=p)));const t=[...e];switch(F){case"name":t.sort(((A,e)=>A.name.localeCompare(e.name)));break;case"hits":t.sort(((A,e)=>e.hit_count-A.hit_count));break;default:t.sort(((A,e)=>e.confidence-A.confidence))}return t}),[s,p,F]),x=bA((()=>{var A,e,t;let r=0;for(const n of L){const s=Array.isArray(n.time_ranges)?n.time_ranges:Object.values(null!==(A=n.time_ranges)&&void 0!==A?A:{});for(const A of s){const n=A,s=Number(null!==(t=null!==(e=null==n?void 0:n[1])&&void 0!==e?e:null==n?void 0:n.end)&&void 0!==t?t:0);s>r&&(r=s)}}return r||600}),[L]);async function S(A){var e;try{const t=await J(A);if(K.current)return;if(t.length>0)return void Q((e=>({...e,[A]:{id:t[0].id,image:`/performer/${t[0].id}/image`}})));const r=await q(A);if(K.current)return;(null===(e=null==r?void 0:r.images)||void 0===e?void 0:e[0])?Q((e=>({...e,[A]:{id:A,image:r.images[0]}}))):Q((e=>({...e,[A]:{id:A,image:null}})))}catch(e){K.current||Q((e=>({...e,[A]:{id:A,image:null}})))}finally{K.current||C((e=>{const t=new Set(e);return t.delete(A),t}))}}function M(A){u((e=>{const t=new Set(e);return t.has(A)?t.delete(A):t.add(A),t}))}function T(){l(!1),setTimeout((()=>{r(),t(!1)}),300)}KA((()=>{if(!c)return;const A=D.length;if(A)return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e);function e(e){var t;if("ArrowRight"===e.key||"ArrowDown"===e.key)e.preventDefault(),H((e=>(e+1)%A));else if("ArrowLeft"===e.key||"ArrowUp"===e.key)e.preventDefault(),H((e=>(e-1+A)%A));else if(" "===e.key||"Enter"===e.key){if("INPUT"===(null===(t=e.target)||void 0===t?void 0:t.tagName))return;e.preventDefault();const A=D[E];A&&M(A.id)}}}),[c,D,E]),KA((()=>{for(const A of L)A.id in w||d.has(A.id)||(C((e=>new Set(e).add(A.id))),S(A.id))}),[L]);const O=CA(T,!0);return IA.createElement("div",{className:"visage-modal-backdrop "+(c?"visage-visible":""),onClick:A=>{A.target===A.currentTarget&&T()}},IA.createElement("div",{ref:O,className:"visage-modal visage-sprite-modal "+(c?"visage-visible":""),role:"dialog","aria-modal":"true"},IA.createElement("div",{className:"visage-modal-header"},IA.createElement("div",{className:"visage-modal-title"},IA.createElement("h2",null,"SCENE PERFORMERS"),!I&&IA.createElement("span",{className:"visage-match-count"},`${L.length} found · ${g.size} confirmed`)),IA.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},IA.createElement("button",{className:"visage-modal-close",onClick:T,"aria-label":"Close"},IA.createElement("svg",{width:20,height:20,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2},IA.createElement("line",{x1:18,y1:6,x2:6,y2:18}),IA.createElement("line",{x1:6,y1:6,x2:18,y2:18})))),!I&&IA.createElement("div",{className:"visage-sprite-toolbar"},IA.createElement("div",{className:"visage-sprite-sort"},["confidence","name","hits"].map((A=>IA.createElement("button",{key:A,className:"visage-sprite-sort-btn"+(F===A?" visage-active":""),onClick:()=>{f(A),H(0)}},A.charAt(0).toUpperCase()+A.slice(1))))),IA.createElement("div",{className:"visage-sprite-threshold"},IA.createElement("span",{className:"visage-threshold-text"},"Min conf."),IA.createElement("input",{type:"range",min:0,max:100,step:5,value:p,onChange:A=>{const e=Number(A.target.value);m(e),localStorage.setItem("visage:minConfidence:sprite",String(e))},title:`Minimum confidence: ${p}%`}),IA.createElement("span",{className:"visage-sprite-threshold-label"},`${p}%`)))),I?IA.createElement("div",{className:"visage-modal-loading"},IA.createElement("div",{className:"visage-conveyor"},IA.createElement("div",{className:"visage-conveyor-track"},Array.from({length:14},((A,e)=>IA.createElement("div",{key:e,className:"visage-conveyor-frame"})))),IA.createElement("div",{className:"visage-conveyor-beam"}),IA.createElement("div",{className:"visage-conveyor-rail"})),(i>0||B)&&IA.createElement("div",{className:"visage-scan-progress"},IA.createElement("div",{className:"visage-scan-progress-bar"},IA.createElement("div",{className:"visage-scan-progress-fill",style:{width:`${Math.round(100*i)}%`}}))),IA.createElement("span",{className:"visage-loading-label"},B||"Visage Scanning…"),IA.createElement("button",{className:"visage-btn visage-btn-secondary",onClick:()=>{nA=!0,n("face-detection",!1),T()},style:{marginTop:12}},"Cancel")):IA.createElement(IA.Fragment,null,IA.createElement("div",{className:"visage-sprite-body"},0===L.length?IA.createElement("div",{className:"visage-sprite-empty"},IA.createElement("p",null,"No performers identified in this sprite.")):IA.createElement("div",{className:"visage-sprite-grid"},D.map(((A,e)=>{const n=y.has(A.id),s=g.has(A.id)||n,o=e===E,i=w[A.id],B=null==i?void 0:i.image,a=d.has(A.id),c=(u=A.confidence)>=90?"visage-confidence-excellent":u>=70?"visage-confidence-good":"visage-confidence-uncertain";var u;const Q=(C=A.time_ranges,[...Array.isArray(C)?C:Object.values(null!=C?C:{})].sort(((A,e)=>{var t,r,n,s;return Number(null!==(r=null!==(t=null==A?void 0:A[0])&&void 0!==t?t:null==A?void 0:A.start)&&void 0!==r?r:0)-Number(null!==(s=null!==(n=null==e?void 0:e[0])&&void 0!==n?n:null==e?void 0:e.start)&&void 0!==s?s:0)})));var C;const U=function(A){return(Array.isArray(A)?A:Object.values(null!=A?A:{})).map((A=>{var e,t,r,n,s,o;return{left:Number(null!==(t=null!==(e=null==A?void 0:A[0])&&void 0!==e?e:null==A?void 0:A.start)&&void 0!==t?t:0)/x*100,width:Math.max((Number(null!==(n=null!==(r=null==A?void 0:A[1])&&void 0!==r?r:null==A?void 0:A.end)&&void 0!==n?n:0)-Number(null!==(o=null!==(s=null==A?void 0:A[0])&&void 0!==s?s:null==A?void 0:A.start)&&void 0!==o?o:0))/x*100,.3)}}))}(Q),F=["visage-sprite-card",s?"visage-sprite-confirmed":"",o?"visage-sprite-focused":"",h?"visage-sprite-disabled":""].filter(Boolean).join(" ");return IA.createElement("div",{key:A.id,className:F,onClick:()=>M(A.id),role:"button",tabIndex:0,"aria-pressed":s},IA.createElement("div",{className:"visage-sprite-compare"},IA.createElement("div",{className:"visage-sprite-face"},IA.createElement("img",{src:`data:image/jpeg;base64,${A.thumbnail}`,alt:"Detected face",className:"visage-sprite-face-img"}),IA.createElement("span",{className:"visage-sprite-label"},"SPRITE")),IA.createElement("div",{className:"visage-sprite-vs"},IA.createElement("span",null,"vs")),IA.createElement("div",{className:"visage-sprite-performer-img"},IA.createElement("div",{className:"visage-sprite-img-placeholder"},IA.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2},IA.createElement("path",{d:"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}),IA.createElement("circle",{cx:12,cy:7,r:4}))),a&&IA.createElement("div",{className:"visage-sprite-img-loading"}),B&&IA.createElement("img",{src:B,alt:A.name,className:"visage-sprite-performer-img-src",onError:A=>{A.target.remove()}}),IA.createElement("span",{className:"visage-sprite-label"},"STASH")),n&&IA.createElement("div",{className:"visage-sprite-in-scene"},"In scene"),s&&!n&&IA.createElement("div",{className:"visage-sprite-check-badge"},IA.createElement("svg",{width:18,height:18,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:3},IA.createElement("polyline",{points:"20 6 9 17 4 12"})))),IA.createElement("div",{className:"visage-sprite-info"},IA.createElement("div",{className:"visage-sprite-summary"},function({confidence:A,confClass:e}){const t=46,r=2*Math.PI*21,n=r*(1-A/100);return IA.createElement("div",{className:"visage-sprite-ring"},IA.createElement("svg",{width:t,height:t,viewBox:"0 0 46 46"},IA.createElement("circle",{cx:23,cy:23,r:21,fill:"none",stroke:"rgba(255,255,255,0.08)",strokeWidth:4}),IA.createElement("circle",{className:`visage-sprite-ring-fill ${e}`,cx:23,cy:23,r:21,fill:"none",strokeWidth:4,strokeDasharray:r,strokeDashoffset:n,strokeLinecap:"round",transform:"rotate(-90 23 23)"})),IA.createElement("span",{className:"visage-sprite-ring-label"},`${A}%`))}({confidence:A.confidence,confClass:c}),IA.createElement("div",{className:"visage-sprite-summary-text"},IA.createElement("a",{href:A.performer_url,target:"_blank",rel:"noopener noreferrer",className:"visage-sprite-performer-link",onClick:A=>A.stopPropagation()},A.name),IA.createElement("div",{className:"visage-sprite-stats-row"},IA.createElement("span",{className:"visage-sprite-stat"},`${A.hit_count} hit${1!==A.hit_count?"s":""}`),IA.createElement("span",{className:"visage-sprite-stat-sep"},"·"),IA.createElement("span",{className:"visage-sprite-stat"},`${SA(Q.reduce(((A,e)=>{var t,r,n,s;return A+(Number(null!==(r=null!==(t=null==e?void 0:e[1])&&void 0!==t?t:null==e?void 0:e.end)&&void 0!==r?r:0)-Number(null!==(s=null!==(n=null==e?void 0:e[0])&&void 0!==n?n:null==e?void 0:e.start)&&void 0!==s?s:0))}),0))} total`)))),IA.createElement("div",{className:"visage-sprite-timeline-wrap"},IA.createElement("div",{className:"visage-sprite-timeline"},U.map(((A,e)=>{var n,s,o,i;const B=Q[e],a=Number(null!==(s=null!==(n=null==B?void 0:B[0])&&void 0!==n?n:null==B?void 0:B.start)&&void 0!==s?s:0),g=Number(null!==(i=null!==(o=null==B?void 0:B[1])&&void 0!==o?o:null==B?void 0:B.end)&&void 0!==i?i:0);return IA.createElement("div",{key:e,className:`visage-sprite-timeline-seg ${c}`,style:{left:`${A.left}%`,width:`${A.width}%`},onClick:A=>{A.stopPropagation(),function(A){const[e,n]=b();"scenes"===e&&(l(!1),setTimeout((()=>{r(),t(!1),window.location.href=`${window.location.pathname}?t=${Math.floor(A)}`}),300))}(a)},title:`${SA(a)}–${SA(g)}`})}))),IA.createElement("div",{className:"visage-sprite-timeline-labels"},IA.createElement("span",null,"00:00"),IA.createElement("span",null,SA(x)))),n&&IA.createElement("div",{className:"visage-sprite-hint visage-sprite-hint-done"},IA.createElement("span",null,"Already in scene")),!s&&!n&&IA.createElement("div",{className:"visage-sprite-hint"},IA.createElement("span",null,"Click to confirm")),s&&!n&&IA.createElement("div",{className:"visage-sprite-hint visage-sprite-hint-done"},IA.createElement("span",null,"Confirmed"))))})))),IA.createElement("div",{className:"visage-modal-footer"},IA.createElement("div",{className:"visage-footer-main"},IA.createElement("a",{className:"visage-ext-patreon-btn",href:"https://www.patreon.com/cw/cc12340",target:"_blank",rel:"noopener noreferrer"},IA.createElement("svg",{width:13,height:13,viewBox:"0 0 24 24",fill:"currentColor"},IA.createElement("circle",{cx:15,cy:9,r:7}),IA.createElement("rect",{x:2,y:2,width:4,height:20,rx:1})),"Support on Patreon"),IA.createElement("div",{className:"visage-progress-info"},g.size>0?IA.createElement("span",{className:"visage-matches-assigned"},`${g.size} of ${L.length} confirmed`):IA.createElement("span",{className:"visage-matches-assigned"},D.length!y.has(A)));if(0!==Q.length)try{for(const i of Q){const B=`sprite-add-${i}`;n(B,!0);try{let n=w[i],B=null==n?void 0:n.id;if(!B||B===i)if((null==n?void 0:n.image)&&n.id!==i)B=n.id;else{const n=await J(i);if(n.length>0)B=n[0].id;else{const n=await q(i);if(!n){null===(t=null===(e=null==A?void 0:A.toast)||void 0===e?void 0:e.warning)||void 0===t||t.call(e,`Could not import performer ${i}. Configure a stashbox in Settings.`);continue}const a=await eA(n,i),c=await j(a);if(c.errors){null===(s=null===(r=null==A?void 0:A.toast)||void 0===r?void 0:r.error)||void 0===s||s.call(r,"Failed to create performer: "+(null===(o=c.errors[0])||void 0===o?void 0:o.message));continue}B=c.data.performerCreate.id}}await tA(l,u,B)}finally{n(B,!1)}}null===(B=null===(i=null==A?void 0:A.toast)||void 0===i?void 0:i.success)||void 0===B||B.call(i,`Added ${Q.length} performer${1!==Q.length?"s":""} to the ${"scenes"===l?"scene":"image"}.`),T()}catch(e){console.error("[Visage] add performers error:",e),null===(c=null===(a=null==A?void 0:A.toast)||void 0===a?void 0:a.error)||void 0===c||c.call(a,"Failed to add performers: "+(e instanceof Error?e.message:"Unknown error"))}finally{U(!1)}else T()},disabled:0===g.size||h},h?"Adding...":`Done (${g.size})`)))))))}const{React:TA,ReactDOM:OA}=PluginApi;function kA(){const[A,e]=TA.useState(null);return TA.useEffect((()=>{function t(){var t;if(A)return!0;const r=document.querySelectorAll(".dropdown-menu");for(const A of r){if(!(null===(t=A.textContent)||void 0===t?void 0:t.includes("Rescan")))continue;if(A.querySelector(".visage-menu-divider"))continue;const r=document.createElement("hr");r.className="visage-menu-divider dropdown-divider",A.insertBefore(r,A.firstElementChild);const n=document.createElement("div");return n.style.cssText="display:flex;flex-direction:column;flex-shrink:0;",A.insertBefore(n,r),e(n),!0}return!1}t();const r=new MutationObserver(t);return r.observe(document.body,{childList:!0,subtree:!0}),()=>r.disconnect()}),[A]),A?OA.createPortal(TA.createElement(TA.Fragment,null,TA.createElement(G,{menuItem:!0}),TA.createElement(aA,{menuItem:!0})),A):null}function VA(){const A=TA.useRef(null),[e,t]=TA.useState(!1);return TA.useEffect((()=>{const e=document.querySelector(".image-toolbar-group:nth-child(2)");e&&(A.current=e,t(!0))}),[]),e&&A.current?OA.createPortal(TA.createElement(G,null),A.current):null}function GA(){const{state:A}=a();return OA.createPortal(TA.createElement(TA.Fragment,null,A.showMatchModal&&TA.createElement(vA,null),A.showSpriteModal&&TA.createElement(MA,null)),document.body)}function NA(){return TA.useEffect((()=>{function A(){return!!getComputedStyle(document.documentElement).getPropertyValue("--color-dim").trim()&&(function(){try{const A=getComputedStyle(document.documentElement),e=getComputedStyle(document.body),t=A.getPropertyValue("--color-dim").trim()||A.getPropertyValue("--color-dark").trim()||A.getPropertyValue("--color-surface").trim()||e.backgroundColor,r=A.getPropertyValue("--color-text").trim()||e.color,n=A.getPropertyValue("--color-text-dim").trim()||"",s=A.getPropertyValue("--color-border").trim()||"",o=A.getPropertyValue("--color-dark").trim()||"",i="#137cbd",B=A.getPropertyValue("--primary").trim();let a="";(t||r||n||s||o)&&B===i&&(a=A.getPropertyValue("--color-accent").trim()||A.getPropertyValue("--color-silver").trim()||A.getPropertyValue("--color-star").trim()||r);const c=document.documentElement;e.backgroundColor&&c.style.setProperty("--v-bg",e.backgroundColor),t&&c.style.setProperty("--v-surface",t),r&&c.style.setProperty("--v-text",r),n&&c.style.setProperty("--v-text-2",n),a&&c.style.setProperty("--v-accent",a),s&&"#000"!==s&&"rgb(0, 0, 0)"!==s&&c.style.setProperty("--v-border",s),o&&c.style.setProperty("--v-nav-bg",o)}catch(A){console.warn("[Visage] theme detection failed:",A)}}(),!0)}const e=setTimeout(A,200),t=setInterval((()=>{A()&&clearInterval(t)}),600),r=setTimeout((()=>clearInterval(t)),15e3);return()=>{clearTimeout(e),clearInterval(t),clearTimeout(r)}}),[]),null}function RA({scenarioId:A}){return TA.createElement(B,{scenario:"images",scenarioId:A},TA.createElement(NA,null),TA.createElement(VA,null),TA.createElement(GA,null))}let PA=null;function XA(A){PA&&(OA.unmountComponentAtNode(PA),PA.remove()),PA=document.createElement("div"),PA.id="visage-image-root",PA.style.display="contents",document.body.appendChild(PA),OA.render(TA.createElement(RA,{scenarioId:A}),PA)}PluginApi.patch.after("ScenePage",((A,e,t)=>{const r=function(A){var e,t;if(null==A?void 0:A.id)return String(A.id);if(null===(t=null===(e=null==A?void 0:A.match)||void 0===e?void 0:e.params)||void 0===t?void 0:t.id)return A.match.params.id;const r=window.location.pathname.match(/\/(scenes|images)\/(\d+)/);return r?r[2]:null}(A);return r?TA.createElement(B,{scenario:"scenes",scenarioId:r},TA.createElement(NA,null),t,TA.createElement(kA,null),TA.createElement(GA,null)):t})),PluginApi.Event.addEventListener("stash:page:image",(A=>{var e,t,r;const n=((null===(r=null===(t=null===(e=A.detail)||void 0===e?void 0:e.data)||void 0===t?void 0:t.location)||void 0===r?void 0:r.pathname)||"").match(/\/images\/(\d+)/);n&&setTimeout((()=>XA(n[1])),100)})),PluginApi.Event.addEventListener("stash:location",(A=>{var e,t,r;((null===(r=null===(t=null===(e=A.detail)||void 0===e?void 0:e.data)||void 0===t?void 0:t.location)||void 0===r?void 0:r.pathname)||"").match(/\/images\/(\d+)/)||PA&&(OA.unmountComponentAtNode(PA),PA.remove(),PA=null)}));const JA=window.location.pathname.match(/\/images\/(\d+)/);JA&&setTimeout((()=>XA(JA[1])),100)}(); +var A=function(e,t){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(A,e){A.__proto__=e}||function(A,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(A[t]=e[t])},A(e,t)};function e(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}A(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var t=function(){return t=Object.assign||function(A){for(var e,t=1,r=arguments.length;t0&&n[n.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!n||s[1]>n[0]&&s[1]=55296&&n<=56319&&t>10),o%1024+56320)),(n+1===t||r.length>16384)&&(s+=String.fromCharCode.apply(String,r),r.length=0)}return s},l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",g="undefined"==typeof Uint8Array?[]:new Uint8Array(256),u=0;u>4,c[a++]=(15&r)<<4|n>>2,c[a++]=(3&n)<<6|63&s;return B},h=function(A){for(var e=A.length,t=[],r=0;r>F,E=(1<>F)+32,y=65536>>f,v=(1<=0){if(A<55296||A>56319&&A<=65535)return e=((e=this.index[A>>F])<>F)])<>f),e=this.index[e],e+=A>>F&v,e=((e=this.index[e])<M?(n.push(!0),o-=M):n.push(!1),-1!==["normal","auto","loose"].indexOf(e)&&-1!==[8208,8211,12316,12448].indexOf(A))return r.push(s),t.push(q);if(o===V||o===J){if(0===s)return r.push(s),t.push(cA);var i=t[s-1];return-1===xA.indexOf(i)?(r.push(r[s-1]),t.push(i)):(r.push(s),t.push(cA))}return r.push(s),o===lA?t.push("strict"===e?eA:CA):o===pA||o===BA?t.push(cA):o===mA?A>=131072&&A<=196605||A>=196608&&A<=262141?t.push(CA):t.push(cA):void t.push(o)})),[r,t,n]},OA=function(A,e,t,r){var n=r[t];if(Array.isArray(A)?-1!==A.indexOf(n):A===n)for(var s=t;s<=r.length;){if((a=r[++s])===e)return!0;if(a!==X)break}if(n===X)for(s=t;s>0;){var o=r[--s];if(Array.isArray(A)?-1!==A.indexOf(o):A===o)for(var i=t;i<=r.length;){var a;if((a=r[++i])===e)return!0;if(a!==X)break}if(o!==X)break}return!1},kA=function(A,e){for(var t=A;t>=0;){var r=e[t];if(r!==X)return r;t--}return 0},VA=function(A,e,t,r,n){if(0===t[r])return yA;var s=r-1;if(Array.isArray(n)&&!0===n[s])return yA;var o=s-1,i=s+1,a=e[s],B=o>=0?e[o]:0,c=e[i];if(a===O&&c===k)return yA;if(-1!==bA.indexOf(a))return HA;if(-1!==bA.indexOf(c))return yA;if(-1!==LA.indexOf(c))return yA;if(kA(s,e)===P)return vA;if(IA.get(A[s])===J)return yA;if((a===gA||a===uA)&&IA.get(A[i])===J)return yA;if(a===N||c===N)return yA;if(a===R)return yA;if(-1===[X,Y,Z].indexOf(a)&&c===R)return yA;if(-1!==[j,z,$,nA,aA].indexOf(c))return yA;if(kA(s,e)===tA)return yA;if(OA(rA,tA,s,e))return yA;if(OA([j,z],eA,s,e))return yA;if(OA(W,W,s,e))return yA;if(a===X)return vA;if(a===rA||c===rA)return yA;if(c===q||a===q)return vA;if(-1!==[Y,Z,eA].indexOf(c)||a===_)return yA;if(B===dA&&-1!==MA.indexOf(a))return yA;if(a===aA&&c===dA)return yA;if(c===AA)return yA;if(-1!==KA.indexOf(c)&&a===sA||-1!==KA.indexOf(a)&&c===sA)return yA;if(a===iA&&-1!==[CA,gA,uA].indexOf(c)||-1!==[CA,gA,uA].indexOf(a)&&c===oA)return yA;if(-1!==KA.indexOf(a)&&-1!==DA.indexOf(c)||-1!==DA.indexOf(a)&&-1!==KA.indexOf(c))return yA;if(-1!==[iA,oA].indexOf(a)&&(c===sA||-1!==[tA,Z].indexOf(c)&&e[i+1]===sA)||-1!==[tA,Z].indexOf(a)&&c===sA||a===sA&&-1!==[sA,aA,nA].indexOf(c))return yA;if(-1!==[sA,aA,nA,j,z].indexOf(c))for(var l=s;l>=0;){if((g=e[l])===sA)return yA;if(-1===[aA,nA].indexOf(g))break;l--}if(-1!==[iA,oA].indexOf(c))for(l=-1!==[j,z].indexOf(a)?o:s;l>=0;){var g;if((g=e[l])===sA)return yA;if(-1===[aA,nA].indexOf(g))break;l--}if(hA===a&&-1!==[hA,UA,wA,QA].indexOf(c)||-1!==[UA,wA].indexOf(a)&&-1!==[UA,FA].indexOf(c)||-1!==[FA,QA].indexOf(a)&&c===FA)return yA;if(-1!==SA.indexOf(a)&&-1!==[AA,oA].indexOf(c)||-1!==SA.indexOf(c)&&a===iA)return yA;if(-1!==KA.indexOf(a)&&-1!==KA.indexOf(c))return yA;if(a===nA&&-1!==KA.indexOf(c))return yA;if(-1!==KA.concat(sA).indexOf(a)&&c===tA&&-1===EA.indexOf(A[i])||-1!==KA.concat(sA).indexOf(c)&&a===z)return yA;if(a===fA&&c===fA){for(var u=t[s],w=1;u>0&&e[--u]===fA;)w++;if(w%2!=0)return yA}return a===gA&&c===uA?yA:vA},GA=function(A,e){e||(e={lineBreak:"normal",wordBreak:"normal"});var t=TA(A,e.lineBreak),r=t[0],n=t[1],s=t[2];"break-all"!==e.wordBreak&&"break-word"!==e.wordBreak||(n=n.map((function(A){return-1!==[sA,cA,pA].indexOf(A)?CA:A})));var o="keep-all"===e.wordBreak?s.map((function(e,t){return e&&A[t]>=19968&&A[t]<=40959})):void 0;return[r,n,o]},NA=function(){function A(A,e,t,r){this.codePoints=A,this.required=e===HA,this.start=t,this.end=r}return A.prototype.slice=function(){return c.apply(void 0,this.codePoints.slice(this.start,this.end))},A}(),PA=function(A,e){var t=B(A),r=GA(t,e),n=r[0],s=r[1],o=r[2],i=t.length,a=0,c=0;return{next:function(){if(c>=i)return{done:!0,value:null};for(var A=yA;c=Me&&A<=57},Ye=function(A){return A>=55296&&A<=57343},_e=function(A){return We(A)||A>=Ne&&A<=Re||A>=Te&&A<=ke},Ze=function(A){return A>=Te&&A<=Ge},qe=function(A){return A>=Ne&&A<=Je},je=function(A){return Ze(A)||qe(A)},ze=function(A){return A>=Fe},$e=function(A){return A===YA||A===qA||A===jA},At=function(A){return je(A)||ze(A)||A===oe},et=function(A){return At(A)||We(A)||A===ie},tt=function(A){return A>=Ie&&A<=Ke||A===be||A>=Le&&A<=De||A===xe},rt=function(A,e){return A===ZA&&e!==YA},nt=function(A,e,t){return A===ie?At(e)||rt(e,t):!!At(A)||!(A!==ZA||!rt(A,e))},st=function(A,e,t){return A===me||A===ie?!!We(e)||e===ve&&We(t):We(A===ve?e:A)},ot=function(A){var e=0,t=1;A[e]!==me&&A[e]!==ie||(A[e]===ie&&(t=-1),e++);for(var r=[];We(A[e]);)r.push(A[e++]);var n=r.length?parseInt(c.apply(void 0,r),10):0;A[e]===ve&&e++;for(var s=[];We(A[e]);)s.push(A[e++]);var o=s.length,i=o?parseInt(c.apply(void 0,s),10):0;A[e]!==Pe&&A[e]!==Oe||e++;var a=1;A[e]!==me&&A[e]!==ie||(A[e]===ie&&(a=-1),e++);for(var B=[];We(A[e]);)B.push(A[e++]);var l=B.length?parseInt(c.apply(void 0,B),10):0;return t*(n+i*Math.pow(10,-o))*Math.pow(10,a*l)},it={type:2},at={type:3},Bt={type:4},ct={type:13},lt={type:8},gt={type:21},ut={type:9},wt={type:10},Qt={type:11},dt={type:12},Ct={type:14},ht={type:23},Ut={type:1},Ft={type:25},ft={type:24},pt={type:26},mt={type:27},Et={type:28},Ht={type:29},yt={type:31},vt={type:32},It=function(){function A(){this._value=[]}return A.prototype.write=function(A){this._value=this._value.concat(B(A))},A.prototype.read=function(){for(var A=[],e=this.consumeToken();e!==vt;)A.push(e),e=this.consumeToken();return A},A.prototype.consumeToken=function(){var A=this.consumeCodePoint();switch(A){case zA:return this.consumeStringToken(zA);case Ae:var e=this.peekCodePoint(0),t=this.peekCodePoint(1),r=this.peekCodePoint(2);if(et(e)||rt(t,r)){var n=nt(e,t,r)?XA:RA;return{type:5,value:this.consumeName(),flags:n}}break;case ee:if(this.peekCodePoint(0)===$A)return this.consumeCodePoint(),ct;break;case re:return this.consumeStringToken(re);case ne:return it;case se:return at;case pe:if(this.peekCodePoint(0)===$A)return this.consumeCodePoint(),Ct;break;case me:if(st(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case Ee:return Bt;case ie:var s=A,o=this.peekCodePoint(0),i=this.peekCodePoint(1);if(st(s,o,i))return this.reconsumeCodePoint(A),this.consumeNumericToken();if(nt(s,o,i))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();if(o===ie&&i===ce)return this.consumeCodePoint(),this.consumeCodePoint(),ft;break;case ve:if(st(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case _A:if(this.peekCodePoint(0)===pe)for(this.consumeCodePoint();;){var a=this.consumeCodePoint();if(a===pe&&(a=this.consumeCodePoint())===_A)return this.consumeToken();if(a===Se)return this.consumeToken()}break;case He:return pt;case ye:return mt;case Be:if(this.peekCodePoint(0)===ae&&this.peekCodePoint(1)===ie&&this.peekCodePoint(2)===ie)return this.consumeCodePoint(),this.consumeCodePoint(),Ft;break;case le:var B=this.peekCodePoint(0),l=this.peekCodePoint(1),g=this.peekCodePoint(2);if(nt(B,l,g))return{type:7,value:this.consumeName()};break;case ge:return Et;case ZA:if(rt(A,this.peekCodePoint(0)))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();break;case ue:return Ht;case we:if(this.peekCodePoint(0)===$A)return this.consumeCodePoint(),lt;break;case Qe:return Qt;case Ce:return dt;case Ve:case Xe:var u=this.peekCodePoint(0),w=this.peekCodePoint(1);return u!==me||!_e(w)&&w!==de||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(A),this.consumeIdentLikeToken();case he:if(this.peekCodePoint(0)===$A)return this.consumeCodePoint(),ut;if(this.peekCodePoint(0)===he)return this.consumeCodePoint(),gt;break;case Ue:if(this.peekCodePoint(0)===$A)return this.consumeCodePoint(),wt;break;case Se:return vt}return $e(A)?(this.consumeWhiteSpace(),yt):We(A)?(this.reconsumeCodePoint(A),this.consumeNumericToken()):At(A)?(this.reconsumeCodePoint(A),this.consumeIdentLikeToken()):{type:6,value:c(A)}},A.prototype.consumeCodePoint=function(){var A=this._value.shift();return void 0===A?-1:A},A.prototype.reconsumeCodePoint=function(A){this._value.unshift(A)},A.prototype.peekCodePoint=function(A){return A>=this._value.length?-1:this._value[A]},A.prototype.consumeUnicodeRangeToken=function(){for(var A=[],e=this.consumeCodePoint();_e(e)&&A.length<6;)A.push(e),e=this.consumeCodePoint();for(var t=!1;e===de&&A.length<6;)A.push(e),e=this.consumeCodePoint(),t=!0;if(t)return{type:30,start:parseInt(c.apply(void 0,A.map((function(A){return A===de?Me:A}))),16),end:parseInt(c.apply(void 0,A.map((function(A){return A===de?Re:A}))),16)};var r=parseInt(c.apply(void 0,A),16);if(this.peekCodePoint(0)===ie&&_e(this.peekCodePoint(1))){this.consumeCodePoint(),e=this.consumeCodePoint();for(var n=[];_e(e)&&n.length<6;)n.push(e),e=this.consumeCodePoint();return{type:30,start:r,end:parseInt(c.apply(void 0,n),16)}}return{type:30,start:r,end:r}},A.prototype.consumeIdentLikeToken=function(){var A=this.consumeName();return"url"===A.toLowerCase()&&this.peekCodePoint(0)===ne?(this.consumeCodePoint(),this.consumeUrlToken()):this.peekCodePoint(0)===ne?(this.consumeCodePoint(),{type:19,value:A}):{type:20,value:A}},A.prototype.consumeUrlToken=function(){var A=[];if(this.consumeWhiteSpace(),this.peekCodePoint(0)===Se)return{type:22,value:""};var e=this.peekCodePoint(0);if(e===re||e===zA){var t=this.consumeStringToken(this.consumeCodePoint());return 0===t.type&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===Se||this.peekCodePoint(0)===se)?(this.consumeCodePoint(),{type:22,value:t.value}):(this.consumeBadUrlRemnants(),ht)}for(;;){var r=this.consumeCodePoint();if(r===Se||r===se)return{type:22,value:c.apply(void 0,A)};if($e(r))return this.consumeWhiteSpace(),this.peekCodePoint(0)===Se||this.peekCodePoint(0)===se?(this.consumeCodePoint(),{type:22,value:c.apply(void 0,A)}):(this.consumeBadUrlRemnants(),ht);if(r===zA||r===re||r===ne||tt(r))return this.consumeBadUrlRemnants(),ht;if(r===ZA){if(!rt(r,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),ht;A.push(this.consumeEscapedCodePoint())}else A.push(r)}},A.prototype.consumeWhiteSpace=function(){for(;$e(this.peekCodePoint(0));)this.consumeCodePoint()},A.prototype.consumeBadUrlRemnants=function(){for(;;){var A=this.consumeCodePoint();if(A===se||A===Se)return;rt(A,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},A.prototype.consumeStringSlice=function(A){for(var e=5e4,t="";A>0;){var r=Math.min(e,A);t+=c.apply(void 0,this._value.splice(0,r)),A-=r}return this._value.shift(),t},A.prototype.consumeStringToken=function(A){for(var e="",t=0;;){var r=this._value[t];if(r===Se||void 0===r||r===A)return{type:0,value:e+=this.consumeStringSlice(t)};if(r===YA)return this._value.splice(0,t),Ut;if(r===ZA){var n=this._value[t+1];n!==Se&&void 0!==n&&(n===YA?(e+=this.consumeStringSlice(t),t=-1,this._value.shift()):rt(r,n)&&(e+=this.consumeStringSlice(t),e+=c(this.consumeEscapedCodePoint()),t=-1))}t++}},A.prototype.consumeNumber=function(){var A=[],e=JA,t=this.peekCodePoint(0);for(t!==me&&t!==ie||A.push(this.consumeCodePoint());We(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0);var r=this.peekCodePoint(1);if(t===ve&&We(r))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=WA;We(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0),r=this.peekCodePoint(1);var n=this.peekCodePoint(2);if((t===Pe||t===Oe)&&((r===me||r===ie)&&We(n)||We(r)))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=WA;We(this.peekCodePoint(0));)A.push(this.consumeCodePoint());return[ot(A),e]},A.prototype.consumeNumericToken=function(){var A=this.consumeNumber(),e=A[0],t=A[1],r=this.peekCodePoint(0),n=this.peekCodePoint(1),s=this.peekCodePoint(2);return nt(r,n,s)?{type:15,number:e,flags:t,unit:this.consumeName()}:r===te?(this.consumeCodePoint(),{type:16,number:e,flags:t}):{type:17,number:e,flags:t}},A.prototype.consumeEscapedCodePoint=function(){var A=this.consumeCodePoint();if(_e(A)){for(var e=c(A);_e(this.peekCodePoint(0))&&e.length<6;)e+=c(this.consumeCodePoint());$e(this.peekCodePoint(0))&&this.consumeCodePoint();var t=parseInt(e,16);return 0===t||Ye(t)||t>1114111?fe:t}return A===Se?fe:A},A.prototype.consumeName=function(){for(var A="";;){var e=this.consumeCodePoint();if(et(e))A+=c(e);else{if(!rt(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),A;A+=c(this.consumeEscapedCodePoint())}}},A}(),Kt=function(){function A(A){this._tokens=A}return A.create=function(e){var t=new It;return t.write(e),new A(t.read())},A.parseValue=function(e){return A.create(e).parseComponentValue()},A.parseValues=function(e){return A.create(e).parseComponentValues()},A.prototype.parseComponentValue=function(){for(var A=this.consumeToken();31===A.type;)A=this.consumeToken();if(32===A.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(A);var e=this.consumeComponentValue();do{A=this.consumeToken()}while(31===A.type);if(32===A.type)return e;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},A.prototype.parseComponentValues=function(){for(var A=[];;){var e=this.consumeComponentValue();if(32===e.type)return A;A.push(e),A.push()}},A.prototype.consumeComponentValue=function(){var A=this.consumeToken();switch(A.type){case 11:case 28:case 2:return this.consumeSimpleBlock(A.type);case 19:return this.consumeFunction(A)}return A},A.prototype.consumeSimpleBlock=function(A){for(var e={type:A,values:[]},t=this.consumeToken();;){if(32===t.type||kt(t,A))return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue()),t=this.consumeToken()}},A.prototype.consumeFunction=function(A){for(var e={name:A.value,values:[],type:18};;){var t=this.consumeToken();if(32===t.type||3===t.type)return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue())}},A.prototype.consumeToken=function(){var A=this._tokens.shift();return void 0===A?vt:A},A.prototype.reconsumeToken=function(A){this._tokens.unshift(A)},A}(),bt=function(A){return 15===A.type},Lt=function(A){return 17===A.type},Dt=function(A){return 20===A.type},xt=function(A){return 0===A.type},St=function(A,e){return Dt(A)&&A.value===e},Mt=function(A){return 31!==A.type},Tt=function(A){return 31!==A.type&&4!==A.type},Ot=function(A){var e=[],t=[];return A.forEach((function(A){if(4===A.type){if(0===t.length)throw new Error("Error parsing function args, zero tokens for arg");return e.push(t),void(t=[])}31!==A.type&&t.push(A)})),t.length&&e.push(t),e},kt=function(A,e){return 11===e&&12===A.type||28===e&&29===A.type||2===e&&3===A.type},Vt=function(A){return 17===A.type||15===A.type},Gt=function(A){return 16===A.type||Vt(A)},Nt=function(A){return A.length>1?[A[0],A[1]]:[A[0]]},Pt={type:17,number:0,flags:JA},Rt={type:16,number:50,flags:JA},Xt={type:16,number:100,flags:JA},Jt=function(A,e,t){var r=A[0],n=A[1];return[Wt(r,e),Wt(void 0!==n?n:r,t)]},Wt=function(A,e){if(16===A.type)return A.number/100*e;if(bt(A))switch(A.unit){case"rem":case"em":return 16*A.number;default:return A.number}return A.number},Yt="deg",_t="grad",Zt="rad",qt="turn",jt={name:"angle",parse:function(A,e){if(15===e.type)switch(e.unit){case Yt:return Math.PI*e.number/180;case _t:return Math.PI/200*e.number;case Zt:return e.number;case qt:return 2*Math.PI*e.number}throw new Error("Unsupported angle type")}},zt=function(A){return 15===A.type&&(A.unit===Yt||A.unit===_t||A.unit===Zt||A.unit===qt)},$t=function(A){switch(A.filter(Dt).map((function(A){return A.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[Pt,Pt];case"to top":case"bottom":return Ar(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[Pt,Xt];case"to right":case"left":return Ar(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[Xt,Xt];case"to bottom":case"top":return Ar(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[Xt,Pt];case"to left":case"right":return Ar(270)}return 0},Ar=function(A){return Math.PI*A/180},er={name:"color",parse:function(A,e){if(18===e.type){var t=Br[e.name];if(void 0===t)throw new Error('Attempting to parse an unsupported color function "'+e.name+'"');return t(A,e.values)}if(5===e.type){if(3===e.value.length){var r=e.value.substring(0,1),n=e.value.substring(1,2),s=e.value.substring(2,3);return nr(parseInt(r+r,16),parseInt(n+n,16),parseInt(s+s,16),1)}if(4===e.value.length){r=e.value.substring(0,1),n=e.value.substring(1,2),s=e.value.substring(2,3);var o=e.value.substring(3,4);return nr(parseInt(r+r,16),parseInt(n+n,16),parseInt(s+s,16),parseInt(o+o,16)/255)}if(6===e.value.length)return r=e.value.substring(0,2),n=e.value.substring(2,4),s=e.value.substring(4,6),nr(parseInt(r,16),parseInt(n,16),parseInt(s,16),1);if(8===e.value.length)return r=e.value.substring(0,2),n=e.value.substring(2,4),s=e.value.substring(4,6),o=e.value.substring(6,8),nr(parseInt(r,16),parseInt(n,16),parseInt(s,16),parseInt(o,16)/255)}if(20===e.type){var i=lr[e.value.toUpperCase()];if(void 0!==i)return i}return lr.TRANSPARENT}},tr=function(A){return 0==(255&A)},rr=function(A){var e=255&A,t=255&A>>8,r=255&A>>16,n=255&A>>24;return e<255?"rgba("+n+","+r+","+t+","+e/255+")":"rgb("+n+","+r+","+t+")"},nr=function(A,e,t,r){return(A<<24|e<<16|t<<8|Math.round(255*r)<<0)>>>0},sr=function(A,e){if(17===A.type)return A.number;if(16===A.type){var t=3===e?1:255;return 3===e?A.number/100*t:Math.round(A.number/100*t)}return 0},or=function(A,e){var t=e.filter(Tt);if(3===t.length){var r=t.map(sr),n=r[0],s=r[1],o=r[2];return nr(n,s,o,1)}if(4===t.length){var i=t.map(sr),a=(n=i[0],s=i[1],o=i[2],i[3]);return nr(n,s,o,a)}return 0};function ir(A,e,t){return t<0&&(t+=1),t>=1&&(t-=1),t<1/6?(e-A)*t*6+A:t<.5?e:t<2/3?6*(e-A)*(2/3-t)+A:A}var ar=function(A,e){var t=e.filter(Tt),r=t[0],n=t[1],s=t[2],o=t[3],i=(17===r.type?Ar(r.number):jt.parse(A,r))/(2*Math.PI),a=Gt(n)?n.number/100:0,B=Gt(s)?s.number/100:0,c=void 0!==o&&Gt(o)?Wt(o,1):1;if(0===a)return nr(255*B,255*B,255*B,1);var l=B<=.5?B*(a+1):B+a-B*a,g=2*B-l,u=ir(g,l,i+1/3),w=ir(g,l,i),Q=ir(g,l,i-1/3);return nr(255*u,255*w,255*Q,c)},Br={hsl:ar,hsla:ar,rgb:or,rgba:or},cr=function(A,e){return er.parse(A,Kt.create(e).parseComponentValue())},lr={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},gr={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(A,e){return e.map((function(A){if(Dt(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},ur={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},wr=function(A,e){var t=er.parse(A,e[0]),r=e[1];return r&&Gt(r)?{color:t,stop:r}:{color:t,stop:null}},Qr=function(A,e){var t=A[0],r=A[A.length-1];null===t.stop&&(t.stop=Pt),null===r.stop&&(r.stop=Xt);for(var n=[],s=0,o=0;os?n.push(a):n.push(s),s=a}else n.push(null)}var B=null;for(o=0;oA.optimumDistance)?{optimumCorner:e,optimumDistance:i}:A}),{optimumDistance:n?1/0:-1/0,optimumCorner:null}).optimumCorner},Fr=function(A,e,t,r,n){var s=0,o=0;switch(A.size){case 0:0===A.shape?s=o=Math.min(Math.abs(e),Math.abs(e-r),Math.abs(t),Math.abs(t-n)):1===A.shape&&(s=Math.min(Math.abs(e),Math.abs(e-r)),o=Math.min(Math.abs(t),Math.abs(t-n)));break;case 2:if(0===A.shape)s=o=Math.min(hr(e,t),hr(e,t-n),hr(e-r,t),hr(e-r,t-n));else if(1===A.shape){var i=Math.min(Math.abs(t),Math.abs(t-n))/Math.min(Math.abs(e),Math.abs(e-r)),a=Ur(r,n,e,t,!0),B=a[0],c=a[1];o=i*(s=hr(B-e,(c-t)/i))}break;case 1:0===A.shape?s=o=Math.max(Math.abs(e),Math.abs(e-r),Math.abs(t),Math.abs(t-n)):1===A.shape&&(s=Math.max(Math.abs(e),Math.abs(e-r)),o=Math.max(Math.abs(t),Math.abs(t-n)));break;case 3:if(0===A.shape)s=o=Math.max(hr(e,t),hr(e,t-n),hr(e-r,t),hr(e-r,t-n));else if(1===A.shape){i=Math.max(Math.abs(t),Math.abs(t-n))/Math.max(Math.abs(e),Math.abs(e-r));var l=Ur(r,n,e,t,!1);B=l[0],c=l[1],o=i*(s=hr(B-e,(c-t)/i))}}return Array.isArray(A.size)&&(s=Wt(A.size[0],r),o=2===A.size.length?Wt(A.size[1],n):s),[s,o]},fr=function(A,e){var t=Ar(180),r=[];return Ot(e).forEach((function(e,n){if(0===n){var s=e[0];if(20===s.type&&-1!==["top","left","right","bottom"].indexOf(s.value))return void(t=$t(e));if(zt(s))return void(t=(jt.parse(A,s)+Ar(270))%Ar(360))}var o=wr(A,e);r.push(o)})),{angle:t,stops:r,type:1}},pr="closest-side",mr="farthest-side",Er="closest-corner",Hr="farthest-corner",yr="circle",vr="ellipse",Ir="cover",Kr="contain",br=function(A,e){var t=0,r=3,n=[],s=[];return Ot(e).forEach((function(e,o){var i=!0;if(0===o?i=e.reduce((function(A,e){if(Dt(e))switch(e.value){case"center":return s.push(Rt),!1;case"top":case"left":return s.push(Pt),!1;case"right":case"bottom":return s.push(Xt),!1}else if(Gt(e)||Vt(e))return s.push(e),!1;return A}),i):1===o&&(i=e.reduce((function(A,e){if(Dt(e))switch(e.value){case yr:return t=0,!1;case vr:return t=1,!1;case Kr:case pr:return r=0,!1;case mr:return r=1,!1;case Er:return r=2,!1;case Ir:case Hr:return r=3,!1}else if(Vt(e)||Gt(e))return Array.isArray(r)||(r=[]),r.push(e),!1;return A}),i)),i){var a=wr(A,e);n.push(a)}})),{size:r,shape:t,stops:n,position:s,type:2}},Lr=function(A){return 1===A.type},Dr=function(A){return 2===A.type},xr={name:"image",parse:function(A,e){if(22===e.type){var t={url:e.value,type:0};return A.cache.addImage(e.value),t}if(18===e.type){var r=Tr[e.name];if(void 0===r)throw new Error('Attempting to parse an unsupported image function "'+e.name+'"');return r(A,e.values)}throw new Error("Unsupported image type "+e.type)}};function Sr(A){return!(20===A.type&&"none"===A.value||18===A.type&&!Tr[A.name])}var Mr,Tr={"linear-gradient":function(A,e){var t=Ar(180),r=[];return Ot(e).forEach((function(e,n){if(0===n){var s=e[0];if(20===s.type&&"to"===s.value)return void(t=$t(e));if(zt(s))return void(t=jt.parse(A,s))}var o=wr(A,e);r.push(o)})),{angle:t,stops:r,type:1}},"-moz-linear-gradient":fr,"-ms-linear-gradient":fr,"-o-linear-gradient":fr,"-webkit-linear-gradient":fr,"radial-gradient":function(A,e){var t=0,r=3,n=[],s=[];return Ot(e).forEach((function(e,o){var i=!0;if(0===o){var a=!1;i=e.reduce((function(A,e){if(a)if(Dt(e))switch(e.value){case"center":return s.push(Rt),A;case"top":case"left":return s.push(Pt),A;case"right":case"bottom":return s.push(Xt),A}else(Gt(e)||Vt(e))&&s.push(e);else if(Dt(e))switch(e.value){case yr:return t=0,!1;case vr:return t=1,!1;case"at":return a=!0,!1;case pr:return r=0,!1;case Ir:case mr:return r=1,!1;case Kr:case Er:return r=2,!1;case Hr:return r=3,!1}else if(Vt(e)||Gt(e))return Array.isArray(r)||(r=[]),r.push(e),!1;return A}),i)}if(i){var B=wr(A,e);n.push(B)}})),{size:r,shape:t,stops:n,position:s,type:2}},"-moz-radial-gradient":br,"-ms-radial-gradient":br,"-o-radial-gradient":br,"-webkit-radial-gradient":br,"-webkit-gradient":function(A,e){var t=Ar(180),r=[],n=1,s=0,o=3,i=[];return Ot(e).forEach((function(e,t){var s=e[0];if(0===t){if(Dt(s)&&"linear"===s.value)return void(n=1);if(Dt(s)&&"radial"===s.value)return void(n=2)}if(18===s.type)if("from"===s.name){var o=er.parse(A,s.values[0]);r.push({stop:Pt,color:o})}else if("to"===s.name)o=er.parse(A,s.values[0]),r.push({stop:Xt,color:o});else if("color-stop"===s.name){var i=s.values.filter(Tt);if(2===i.length){o=er.parse(A,i[1]);var a=i[0];Lt(a)&&r.push({stop:{type:16,number:100*a.number,flags:a.flags},color:o})}}})),1===n?{angle:(t+Ar(180))%Ar(360),stops:r,type:n}:{size:o,shape:s,stops:r,position:i,type:n}}},Or={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(A,e){if(0===e.length)return[];var t=e[0];return 20===t.type&&"none"===t.value?[]:e.filter((function(A){return Tt(A)&&Sr(A)})).map((function(e){return xr.parse(A,e)}))}},kr={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(A,e){return e.map((function(A){if(Dt(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},Vr={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(A,e){return Ot(e).map((function(A){return A.filter(Gt)})).map(Nt)}},Gr={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(A,e){return Ot(e).map((function(A){return A.filter(Dt).map((function(A){return A.value})).join(" ")})).map(Nr)}},Nr=function(A){switch(A){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}};!function(A){A.AUTO="auto",A.CONTAIN="contain",A.COVER="cover"}(Mr||(Mr={}));var Pr,Rr={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(A,e){return Ot(e).map((function(A){return A.filter(Xr)}))}},Xr=function(A){return Dt(A)||Gt(A)},Jr=function(A){return{name:"border-"+A+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},Wr=Jr("top"),Yr=Jr("right"),_r=Jr("bottom"),Zr=Jr("left"),qr=function(A){return{name:"border-radius-"+A,initialValue:"0 0",prefix:!1,type:1,parse:function(A,e){return Nt(e.filter(Gt))}}},jr=qr("top-left"),zr=qr("top-right"),$r=qr("bottom-right"),An=qr("bottom-left"),en=function(A){return{name:"border-"+A+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(A,e){switch(e){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},tn=en("top"),rn=en("right"),nn=en("bottom"),sn=en("left"),on=function(A){return{name:"border-"+A+"-width",initialValue:"0",type:0,prefix:!1,parse:function(A,e){return bt(e)?e.number:0}}},an=on("top"),Bn=on("right"),cn=on("bottom"),ln=on("left"),gn={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},un={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(A,e){return"rtl"===e?1:0}},wn={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(A,e){return e.filter(Dt).reduce((function(A,e){return A|Qn(e.value)}),0)}},Qn=function(A){switch(A){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},dn={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},Cn={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(A,e){return 20===e.type&&"normal"===e.value?0:17===e.type||15===e.type?e.number:0}};!function(A){A.NORMAL="normal",A.STRICT="strict"}(Pr||(Pr={}));var hn,Un={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){return"strict"===e?Pr.STRICT:Pr.NORMAL}},Fn={name:"line-height",initialValue:"normal",prefix:!1,type:4},fn=function(A,e){return Dt(A)&&"normal"===A.value?1.2*e:17===A.type?e*A.number:Gt(A)?Wt(A,e):e},pn={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(A,e){return 20===e.type&&"none"===e.value?null:xr.parse(A,e)}},mn={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(A,e){return"inside"===e?0:1}},En={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},Hn=function(A){return{name:"margin-"+A,initialValue:"0",prefix:!1,type:4}},yn=Hn("top"),vn=Hn("right"),In=Hn("bottom"),Kn=Hn("left"),bn={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(A,e){return e.filter(Dt).map((function(A){switch(A.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}}))}},Ln={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){return"break-word"===e?"break-word":"normal"}},Dn=function(A){return{name:"padding-"+A,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},xn=Dn("top"),Sn=Dn("right"),Mn=Dn("bottom"),Tn=Dn("left"),On={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(A,e){switch(e){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},kn={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(A,e){switch(e){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},Vn={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(A,e){return 1===e.length&&St(e[0],"none")?[]:Ot(e).map((function(e){for(var t={color:lr.TRANSPARENT,offsetX:Pt,offsetY:Pt,blur:Pt},r=0,n=0;n1?1:0],this.overflowWrap=hs(A,Ln,e.overflowWrap),this.paddingTop=hs(A,xn,e.paddingTop),this.paddingRight=hs(A,Sn,e.paddingRight),this.paddingBottom=hs(A,Mn,e.paddingBottom),this.paddingLeft=hs(A,Tn,e.paddingLeft),this.paintOrder=hs(A,gs,e.paintOrder),this.position=hs(A,kn,e.position),this.textAlign=hs(A,On,e.textAlign),this.textDecorationColor=hs(A,jn,null!==(t=e.textDecorationColor)&&void 0!==t?t:e.color),this.textDecorationLine=hs(A,zn,null!==(r=e.textDecorationLine)&&void 0!==r?r:e.textDecoration),this.textShadow=hs(A,Vn,e.textShadow),this.textTransform=hs(A,Gn,e.textTransform),this.transform=hs(A,Nn,e.transform),this.transformOrigin=hs(A,Jn,e.transformOrigin),this.visibility=hs(A,Wn,e.visibility),this.webkitTextStrokeColor=hs(A,us,e.webkitTextStrokeColor),this.webkitTextStrokeWidth=hs(A,ws,e.webkitTextStrokeWidth),this.wordBreak=hs(A,Yn,e.wordBreak),this.zIndex=hs(A,_n,e.zIndex)}return A.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},A.prototype.isTransparent=function(){return tr(this.backgroundColor)},A.prototype.isTransformed=function(){return null!==this.transform},A.prototype.isPositioned=function(){return 0!==this.position},A.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},A.prototype.isFloating=function(){return 0!==this.float},A.prototype.isInlineLevel=function(){return ns(this.display,4)||ns(this.display,33554432)||ns(this.display,268435456)||ns(this.display,536870912)||ns(this.display,67108864)||ns(this.display,134217728)},A}(),ds=function(){function A(A,e){this.content=hs(A,ss,e.content),this.quotes=hs(A,Bs,e.quotes)}return A}(),Cs=function(){function A(A,e){this.counterIncrement=hs(A,os,e.counterIncrement),this.counterReset=hs(A,is,e.counterReset)}return A}(),hs=function(A,e,t){var r=new It,n=null!=t?t.toString():e.initialValue;r.write(n);var s=new Kt(r.read());switch(e.type){case 2:var o=s.parseComponentValue();return e.parse(A,Dt(o)?o.value:e.initialValue);case 0:return e.parse(A,s.parseComponentValue());case 1:return e.parse(A,s.parseComponentValues());case 4:return s.parseComponentValue();case 3:switch(e.format){case"angle":return jt.parse(A,s.parseComponentValue());case"color":return er.parse(A,s.parseComponentValue());case"image":return xr.parse(A,s.parseComponentValue());case"length":var i=s.parseComponentValue();return Vt(i)?i:Pt;case"length-percentage":var a=s.parseComponentValue();return Gt(a)?a:Pt;case"time":return Zn.parse(A,s.parseComponentValue())}}},Us="data-html2canvas-debug",Fs=function(A){switch(A.getAttribute(Us)){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}},fs=function(A,e){var t=Fs(A);return 1===t||e===t},ps=function(){function A(A,e){this.context=A,this.textNodes=[],this.elements=[],this.flags=0,fs(e,3),this.styles=new Qs(A,window.getComputedStyle(e,null)),ci(e)&&(this.styles.animationDuration.some((function(A){return A>0}))&&(e.style.animationDuration="0s"),null!==this.styles.transform&&(e.style.transform="none")),this.bounds=i(this.context,e),fs(e,4)&&(this.flags|=16)}return A}(),ms="AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=",Es="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Hs="undefined"==typeof Uint8Array?[]:new Uint8Array(256),ys=0;ys>4,c[a++]=(15&r)<<4|n>>2,c[a++]=(3&n)<<6|63&s;return B},Is=function(A){for(var e=A.length,t=[],r=0;r>bs,Ss=(1<>bs)+32,Ts=65536>>Ls,Os=(1<=0){if(A<55296||A>56319&&A<=65535)return e=((e=this.index[A>>bs])<>bs)])<>Ls),e=this.index[e],e+=A>>bs&Os,e=((e=this.index[e])<=55296&&n<=56319&&t>10),o%1024+56320)),(n+1===t||r.length>16384)&&(s+=String.fromCharCode.apply(String,r),r.length=0)}return s},ao=Gs(ms),Bo="×",co="÷",lo=function(A){return ao.get(A)},go=function(A,e,t){var r=t-2,n=e[r],s=e[t-1],o=e[t];if(s===Ys&&o===_s)return Bo;if(s===Ys||s===_s||s===Zs)return co;if(o===Ys||o===_s||o===Zs)return co;if(s===zs&&-1!==[zs,$s,eo,to].indexOf(o))return Bo;if(!(s!==eo&&s!==$s||o!==$s&&o!==Ao))return Bo;if((s===to||s===Ao)&&o===Ao)return Bo;if(o===ro||o===qs)return Bo;if(o===js)return Bo;if(s===Ws)return Bo;if(s===ro&&o===no){for(;n===qs;)n=e[--r];if(n===no)return Bo}if(s===so&&o===so){for(var i=0;n===so;)i++,n=e[--r];if(i%2==0)return Bo}return co},uo=function(A){var e=oo(A),t=e.length,r=0,n=0,s=e.map(lo);return{next:function(){if(r>=t)return{done:!0,value:null};for(var A=Bo;ro.x||n.y>o.y;return o=n,0===e||i}));return A.body.removeChild(e),i},ho=function(){return void 0!==(new Image).crossOrigin},Uo=function(){return"string"==typeof(new XMLHttpRequest).responseType},Fo=function(A){var e=new Image,t=A.createElement("canvas"),r=t.getContext("2d");if(!r)return!1;e.src="data:image/svg+xml,";try{r.drawImage(e,0,0),t.toDataURL()}catch(A){return!1}return!0},fo=function(A){return 0===A[0]&&255===A[1]&&0===A[2]&&255===A[3]},po=function(A){var e=A.createElement("canvas"),t=100;e.width=t,e.height=t;var r=e.getContext("2d");if(!r)return Promise.reject(!1);r.fillStyle="rgb(0, 255, 0)",r.fillRect(0,0,t,t);var n=new Image,s=e.toDataURL();n.src=s;var o=mo(t,t,0,0,n);return r.fillStyle="red",r.fillRect(0,0,t,t),Eo(o).then((function(e){r.drawImage(e,0,0);var n=r.getImageData(0,0,t,t).data;r.fillStyle="red",r.fillRect(0,0,t,t);var o=A.createElement("div");return o.style.backgroundImage="url("+s+")",o.style.height=t+"px",fo(n)?Eo(mo(t,t,0,0,o)):Promise.reject(!1)})).then((function(A){return r.drawImage(A,0,0),fo(r.getImageData(0,0,t,t).data)})).catch((function(){return!1}))},mo=function(A,e,t,r,n){var s="http://www.w3.org/2000/svg",o=document.createElementNS(s,"svg"),i=document.createElementNS(s,"foreignObject");return o.setAttributeNS(null,"width",A.toString()),o.setAttributeNS(null,"height",e.toString()),i.setAttributeNS(null,"width","100%"),i.setAttributeNS(null,"height","100%"),i.setAttributeNS(null,"x",t.toString()),i.setAttributeNS(null,"y",r.toString()),i.setAttributeNS(null,"externalResourcesRequired","true"),o.appendChild(i),i.appendChild(n),o},Eo=function(A){return new Promise((function(e,t){var r=new Image;r.onload=function(){return e(r)},r.onerror=t,r.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent((new XMLSerializer).serializeToString(A))}))},Ho={get SUPPORT_RANGE_BOUNDS(){var A=Qo(document);return Object.defineProperty(Ho,"SUPPORT_RANGE_BOUNDS",{value:A}),A},get SUPPORT_WORD_BREAKING(){var A=Ho.SUPPORT_RANGE_BOUNDS&&Co(document);return Object.defineProperty(Ho,"SUPPORT_WORD_BREAKING",{value:A}),A},get SUPPORT_SVG_DRAWING(){var A=Fo(document);return Object.defineProperty(Ho,"SUPPORT_SVG_DRAWING",{value:A}),A},get SUPPORT_FOREIGNOBJECT_DRAWING(){var A="function"==typeof Array.from&&"function"==typeof window.fetch?po(document):Promise.resolve(!1);return Object.defineProperty(Ho,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:A}),A},get SUPPORT_CORS_IMAGES(){var A=ho();return Object.defineProperty(Ho,"SUPPORT_CORS_IMAGES",{value:A}),A},get SUPPORT_RESPONSE_TYPE(){var A=Uo();return Object.defineProperty(Ho,"SUPPORT_RESPONSE_TYPE",{value:A}),A},get SUPPORT_CORS_XHR(){var A="withCredentials"in new XMLHttpRequest;return Object.defineProperty(Ho,"SUPPORT_CORS_XHR",{value:A}),A},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var A=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(Ho,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:A}),A}},yo=function(){function A(A,e){this.text=A,this.bounds=e}return A}(),vo=function(A,e,t,r){var n=Do(e,t),s=[],i=0;return n.forEach((function(e){if(t.textDecorationLine.length||e.trim().length>0)if(Ho.SUPPORT_RANGE_BOUNDS){var n=Ko(r,i,e.length).getClientRects();if(n.length>1){var a=bo(e),B=0;a.forEach((function(e){s.push(new yo(e,o.fromDOMRectList(A,Ko(r,B+i,e.length).getClientRects()))),B+=e.length}))}else s.push(new yo(e,o.fromDOMRectList(A,n)))}else{var c=r.splitText(e.length);s.push(new yo(e,Io(A,r))),r=c}else Ho.SUPPORT_RANGE_BOUNDS||(r=r.splitText(e.length));i+=e.length})),s},Io=function(A,e){var t=e.ownerDocument;if(t){var r=t.createElement("html2canvaswrapper");r.appendChild(e.cloneNode(!0));var n=e.parentNode;if(n){n.replaceChild(r,e);var s=i(A,r);return r.firstChild&&n.replaceChild(r.firstChild,r),s}}return o.EMPTY},Ko=function(A,e,t){var r=A.ownerDocument;if(!r)throw new Error("Node has no owner document");var n=r.createRange();return n.setStart(A,e),n.setEnd(A,e+t),n},bo=function(A){if(Ho.SUPPORT_NATIVE_TEXT_SEGMENTATION){var e=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(e.segment(A)).map((function(A){return A.segment}))}return wo(A)},Lo=function(A,e){if(Ho.SUPPORT_NATIVE_TEXT_SEGMENTATION){var t=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(t.segment(A)).map((function(A){return A.segment}))}return So(A,e)},Do=function(A,e){return 0!==e.letterSpacing?bo(A):Lo(A,e)},xo=[32,160,4961,65792,65793,4153,4241],So=function(A,e){for(var t,r=PA(A,{lineBreak:e.lineBreak,wordBreak:"break-word"===e.overflowWrap?"break-word":e.wordBreak}),n=[],s=function(){if(t.value){var A=t.value.slice(),e=B(A),r="";e.forEach((function(A){-1===xo.indexOf(A)?r+=c(A):(r.length&&n.push(r),n.push(c(A)),r="")})),r.length&&n.push(r)}};!(t=r.next()).done;)s();return n},Mo=function(){function A(A,e,t){this.text=To(e.data,t.textTransform),this.textBounds=vo(A,this.text,t,e)}return A}(),To=function(A,e){switch(e){case 1:return A.toLowerCase();case 3:return A.replace(Oo,ko);case 2:return A.toUpperCase();default:return A}},Oo=/(^|\s|:|-|\(|\))([a-z])/g,ko=function(A,e,t){return A.length>0?e+t.toUpperCase():A},Vo=function(A){function t(e,t){var r=A.call(this,e,t)||this;return r.src=t.currentSrc||t.src,r.intrinsicWidth=t.naturalWidth,r.intrinsicHeight=t.naturalHeight,r.context.cache.addImage(r.src),r}return e(t,A),t}(ps),Go=function(A){function t(e,t){var r=A.call(this,e,t)||this;return r.canvas=t,r.intrinsicWidth=t.width,r.intrinsicHeight=t.height,r}return e(t,A),t}(ps),No=function(A){function t(e,t){var r=A.call(this,e,t)||this,n=new XMLSerializer,s=i(e,t);return t.setAttribute("width",s.width+"px"),t.setAttribute("height",s.height+"px"),r.svg="data:image/svg+xml,"+encodeURIComponent(n.serializeToString(t)),r.intrinsicWidth=t.width.baseVal.value,r.intrinsicHeight=t.height.baseVal.value,r.context.cache.addImage(r.svg),r}return e(t,A),t}(ps),Po=function(A){function t(e,t){var r=A.call(this,e,t)||this;return r.value=t.value,r}return e(t,A),t}(ps),Ro=function(A){function t(e,t){var r=A.call(this,e,t)||this;return r.start=t.start,r.reversed="boolean"==typeof t.reversed&&!0===t.reversed,r}return e(t,A),t}(ps),Xo=[{type:15,flags:0,unit:"px",number:3}],Jo=[{type:16,flags:0,number:50}],Wo=function(A){return A.width>A.height?new o(A.left+(A.width-A.height)/2,A.top,A.height,A.height):A.width0)t.textNodes.push(new Mo(A,n,t.styles));else if(Bi(n))if(yi(n)&&n.assignedNodes)n.assignedNodes().forEach((function(e){return ri(A,e,t,r)}));else{var o=ni(A,n);o.styles.isVisible()&&(oi(n,o,r)?o.flags|=4:ii(o.styles)&&(o.flags|=2),-1!==ti.indexOf(n.tagName)&&(o.flags|=8),t.elements.push(o),n.slot,n.shadowRoot?ri(A,n.shadowRoot,o,r):Ei(n)||di(n)||Hi(n)||ri(A,n,o,r))}},ni=function(A,e){return Fi(e)?new Vo(A,e):hi(e)?new Go(A,e):di(e)?new No(A,e):gi(e)?new Po(A,e):ui(e)?new Ro(A,e):wi(e)?new zo(A,e):Hi(e)?new $o(A,e):Ei(e)?new Ai(A,e):fi(e)?new ei(A,e):new ps(A,e)},si=function(A,e){var t=ni(A,e);return t.flags|=4,ri(A,e,t,t),t},oi=function(A,e,t){return e.styles.isPositionedWithZIndex()||e.styles.opacity<1||e.styles.isTransformed()||Ci(A)&&t.styles.isTransparent()},ii=function(A){return A.isPositioned()||A.isFloating()},ai=function(A){return A.nodeType===Node.TEXT_NODE},Bi=function(A){return A.nodeType===Node.ELEMENT_NODE},ci=function(A){return Bi(A)&&void 0!==A.style&&!li(A)},li=function(A){return"object"==typeof A.className},gi=function(A){return"LI"===A.tagName},ui=function(A){return"OL"===A.tagName},wi=function(A){return"INPUT"===A.tagName},Qi=function(A){return"HTML"===A.tagName},di=function(A){return"svg"===A.tagName},Ci=function(A){return"BODY"===A.tagName},hi=function(A){return"CANVAS"===A.tagName},Ui=function(A){return"VIDEO"===A.tagName},Fi=function(A){return"IMG"===A.tagName},fi=function(A){return"IFRAME"===A.tagName},pi=function(A){return"STYLE"===A.tagName},mi=function(A){return"SCRIPT"===A.tagName},Ei=function(A){return"TEXTAREA"===A.tagName},Hi=function(A){return"SELECT"===A.tagName},yi=function(A){return"SLOT"===A.tagName},vi=function(A){return A.tagName.indexOf("-")>0},Ii=function(){function A(){this.counters={}}return A.prototype.getCounterValue=function(A){var e=this.counters[A];return e&&e.length?e[e.length-1]:1},A.prototype.getCounterValues=function(A){var e=this.counters[A];return e||[]},A.prototype.pop=function(A){var e=this;A.forEach((function(A){return e.counters[A].pop()}))},A.prototype.parse=function(A){var e=this,t=A.counterIncrement,r=A.counterReset,n=!0;null!==t&&t.forEach((function(A){var t=e.counters[A.counter];t&&0!==A.increment&&(n=!1,t.length||t.push(1),t[Math.max(0,t.length-1)]+=A.increment)}));var s=[];return n&&r.forEach((function(A){var t=e.counters[A.counter];s.push(A.counter),t||(t=e.counters[A.counter]=[]),t.push(A.reset)})),s},A}(),Ki={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},bi={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},Li={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},Di={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},xi=function(A,e,t,r,n,s){return At?Wi(A,n,s.length>0):r.integers.reduce((function(e,t,n){for(;A>=t;)A-=t,e+=r.values[n];return e}),"")+s},Si=function(A,e,t,r){var n="";do{t||A--,n=r(A)+n,A/=e}while(A*e>=e);return n},Mi=function(A,e,t,r,n){var s=t-e+1;return(A<0?"-":"")+(Si(Math.abs(A),s,r,(function(A){return c(Math.floor(A%s)+e)}))+n)},Ti=function(A,e,t){void 0===t&&(t=". ");var r=e.length;return Si(Math.abs(A),r,!1,(function(A){return e[Math.floor(A%r)]}))+t},Oi=1,ki=2,Vi=4,Gi=8,Ni=function(A,e,t,r,n,s){if(A<-9999||A>9999)return Wi(A,4,n.length>0);var o=Math.abs(A),i=n;if(0===o)return e[0]+i;for(var a=0;o>0&&a<=4;a++){var B=o%10;0===B&&ns(s,Oi)&&""!==i?i=e[B]+i:B>1||1===B&&0===a||1===B&&1===a&&ns(s,ki)||1===B&&1===a&&ns(s,Vi)&&A>100||1===B&&a>1&&ns(s,Gi)?i=e[B]+(a>0?t[a-1]:"")+i:1===B&&a>0&&(i=t[a-1]+i),o=Math.floor(o/10)}return(A<0?r:"")+i},Pi="十百千萬",Ri="拾佰仟萬",Xi="マイナス",Ji="마이너스",Wi=function(A,e,t){var r=t?". ":"",n=t?"、":"",s=t?", ":"",o=t?" ":"";switch(e){case 0:return"•"+o;case 1:return"◦"+o;case 2:return"◾"+o;case 5:var i=Mi(A,48,57,!0,r);return i.length<4?"0"+i:i;case 4:return Ti(A,"〇一二三四五六七八九",n);case 6:return xi(A,1,3999,Ki,3,r).toLowerCase();case 7:return xi(A,1,3999,Ki,3,r);case 8:return Mi(A,945,969,!1,r);case 9:return Mi(A,97,122,!1,r);case 10:return Mi(A,65,90,!1,r);case 11:return Mi(A,1632,1641,!0,r);case 12:case 49:return xi(A,1,9999,bi,3,r);case 35:return xi(A,1,9999,bi,3,r).toLowerCase();case 13:return Mi(A,2534,2543,!0,r);case 14:case 30:return Mi(A,6112,6121,!0,r);case 15:return Ti(A,"子丑寅卯辰巳午未申酉戌亥",n);case 16:return Ti(A,"甲乙丙丁戊己庚辛壬癸",n);case 17:case 48:return Ni(A,"零一二三四五六七八九",Pi,"負",n,ki|Vi|Gi);case 47:return Ni(A,"零壹貳參肆伍陸柒捌玖",Ri,"負",n,Oi|ki|Vi|Gi);case 42:return Ni(A,"零一二三四五六七八九",Pi,"负",n,ki|Vi|Gi);case 41:return Ni(A,"零壹贰叁肆伍陆柒捌玖",Ri,"负",n,Oi|ki|Vi|Gi);case 26:return Ni(A,"〇一二三四五六七八九","十百千万",Xi,n,0);case 25:return Ni(A,"零壱弐参四伍六七八九","拾百千万",Xi,n,Oi|ki|Vi);case 31:return Ni(A,"영일이삼사오육칠팔구","십백천만",Ji,s,Oi|ki|Vi);case 33:return Ni(A,"零一二三四五六七八九","十百千萬",Ji,s,0);case 32:return Ni(A,"零壹貳參四五六七八九","拾百千",Ji,s,Oi|ki|Vi);case 18:return Mi(A,2406,2415,!0,r);case 20:return xi(A,1,19999,Di,3,r);case 21:return Mi(A,2790,2799,!0,r);case 22:return Mi(A,2662,2671,!0,r);case 22:return xi(A,1,10999,Li,3,r);case 23:return Ti(A,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return Ti(A,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return Mi(A,3302,3311,!0,r);case 28:return Ti(A,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",n);case 29:return Ti(A,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",n);case 34:return Mi(A,3792,3801,!0,r);case 37:return Mi(A,6160,6169,!0,r);case 38:return Mi(A,4160,4169,!0,r);case 39:return Mi(A,2918,2927,!0,r);case 40:return Mi(A,1776,1785,!0,r);case 43:return Mi(A,3046,3055,!0,r);case 44:return Mi(A,3174,3183,!0,r);case 45:return Mi(A,3664,3673,!0,r);case 46:return Mi(A,3872,3881,!0,r);default:return Mi(A,48,57,!0,r)}},Yi="data-html2canvas-ignore",_i=function(){function A(A,e,t){if(this.context=A,this.options=t,this.scrolledElements=[],this.referenceElement=e,this.counters=new Ii,this.quoteDepth=0,!e.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(e.ownerDocument.documentElement,!1)}return A.prototype.toIFrame=function(A,e){var t=this,s=qi(A,e);if(!s.contentWindow)return Promise.reject("Unable to find iframe window");var o=A.defaultView.pageXOffset,i=A.defaultView.pageYOffset,a=s.contentWindow,B=a.document,c=$i(s).then((function(){return r(t,void 0,void 0,(function(){var A,t;return n(this,(function(r){switch(r.label){case 0:return this.scrolledElements.forEach(na),a&&(a.scrollTo(e.left,e.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||a.scrollY===e.top&&a.scrollX===e.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(a.scrollX-e.left,a.scrollY-e.top,0,0))),A=this.options.onclone,void 0===(t=this.clonedReferenceElement)?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:B.fonts&&B.fonts.ready?[4,B.fonts.ready]:[3,2];case 1:r.sent(),r.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,zi(B)]:[3,4];case 3:r.sent(),r.label=4;case 4:return"function"==typeof A?[2,Promise.resolve().then((function(){return A(B,t)})).then((function(){return s}))]:[2,s]}}))}))}));return B.open(),B.write(ta(document.doctype)+""),ra(this.referenceElement.ownerDocument,o,i),B.replaceChild(B.adoptNode(this.documentElement),B.documentElement),B.close(),c},A.prototype.createElementClone=function(A){if(fs(A,2),hi(A))return this.createCanvasClone(A);if(Ui(A))return this.createVideoClone(A);if(pi(A))return this.createStyleClone(A);var e=A.cloneNode(!1);return Fi(e)&&(Fi(A)&&A.currentSrc&&A.currentSrc!==A.src&&(e.src=A.currentSrc,e.srcset=""),"lazy"===e.loading&&(e.loading="eager")),vi(e)?this.createCustomElementClone(e):e},A.prototype.createCustomElementClone=function(A){var e=document.createElement("html2canvascustomelement");return ea(A.style,e),e},A.prototype.createStyleClone=function(A){try{var e=A.sheet;if(e&&e.cssRules){var t=[].slice.call(e.cssRules,0).reduce((function(A,e){return e&&"string"==typeof e.cssText?A+e.cssText:A}),""),r=A.cloneNode(!1);return r.textContent=t,r}}catch(A){if(this.context.logger.error("Unable to access cssRules property",A),"SecurityError"!==A.name)throw A}return A.cloneNode(!1)},A.prototype.createCanvasClone=function(A){var e;if(this.options.inlineImages&&A.ownerDocument){var t=A.ownerDocument.createElement("img");try{return t.src=A.toDataURL(),t}catch(e){this.context.logger.info("Unable to inline canvas contents, canvas is tainted",A)}}var r=A.cloneNode(!1);try{r.width=A.width,r.height=A.height;var n=A.getContext("2d"),s=r.getContext("2d");if(s)if(!this.options.allowTaint&&n)s.putImageData(n.getImageData(0,0,A.width,A.height),0,0);else{var o=null!==(e=A.getContext("webgl2"))&&void 0!==e?e:A.getContext("webgl");if(o){var i=o.getContextAttributes();!1===(null==i?void 0:i.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",A)}s.drawImage(A,0,0)}return r}catch(e){this.context.logger.info("Unable to clone canvas as it is tainted",A)}return r},A.prototype.createVideoClone=function(A){var e=A.ownerDocument.createElement("canvas");e.width=A.offsetWidth,e.height=A.offsetHeight;var t=e.getContext("2d");try{return t&&(t.drawImage(A,0,0,e.width,e.height),this.options.allowTaint||t.getImageData(0,0,e.width,e.height)),e}catch(e){this.context.logger.info("Unable to clone video as it is tainted",A)}var r=A.ownerDocument.createElement("canvas");return r.width=A.offsetWidth,r.height=A.offsetHeight,r},A.prototype.appendChildNode=function(A,e,t){Bi(e)&&(mi(e)||e.hasAttribute(Yi)||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(e))||this.options.copyStyles&&Bi(e)&&pi(e)||A.appendChild(this.cloneNode(e,t))},A.prototype.cloneChildNodes=function(A,e,t){for(var r=this,n=A.shadowRoot?A.shadowRoot.firstChild:A.firstChild;n;n=n.nextSibling)if(Bi(n)&&yi(n)&&"function"==typeof n.assignedNodes){var s=n.assignedNodes();s.length&&s.forEach((function(A){return r.appendChildNode(e,A,t)}))}else this.appendChildNode(e,n,t)},A.prototype.cloneNode=function(A,e){if(ai(A))return document.createTextNode(A.data);if(!A.ownerDocument)return A.cloneNode(!1);var t=A.ownerDocument.defaultView;if(t&&Bi(A)&&(ci(A)||li(A))){var r=this.createElementClone(A);r.style.transitionProperty="none";var n=t.getComputedStyle(A),s=t.getComputedStyle(A,":before"),o=t.getComputedStyle(A,":after");this.referenceElement===A&&ci(r)&&(this.clonedReferenceElement=r),Ci(r)&&ca(r);var i=this.counters.parse(new Cs(this.context,n)),a=this.resolvePseudoContent(A,r,s,Js.BEFORE);vi(A)&&(e=!0),Ui(A)||this.cloneChildNodes(A,r,e),a&&r.insertBefore(a,r.firstChild);var B=this.resolvePseudoContent(A,r,o,Js.AFTER);return B&&r.appendChild(B),this.counters.pop(i),(n&&(this.options.copyStyles||li(A))&&!fi(A)||e)&&ea(n,r),0===A.scrollTop&&0===A.scrollLeft||this.scrolledElements.push([r,A.scrollLeft,A.scrollTop]),(Ei(A)||Hi(A))&&(Ei(r)||Hi(r))&&(r.value=A.value),r}return A.cloneNode(!1)},A.prototype.resolvePseudoContent=function(A,e,t,r){var n=this;if(t){var s=t.content,o=e.ownerDocument;if(o&&s&&"none"!==s&&"-moz-alt-content"!==s&&"none"!==t.display){this.counters.parse(new Cs(this.context,t));var i=new ds(this.context,t),a=o.createElement("html2canvaspseudoelement");ea(t,a),i.content.forEach((function(e){if(0===e.type)a.appendChild(o.createTextNode(e.value));else if(22===e.type){var t=o.createElement("img");t.src=e.value,t.style.opacity="1",a.appendChild(t)}else if(18===e.type){if("attr"===e.name){var r=e.values.filter(Dt);r.length&&a.appendChild(o.createTextNode(A.getAttribute(r[0].value)||""))}else if("counter"===e.name){var s=e.values.filter(Tt),B=s[0],c=s[1];if(B&&Dt(B)){var l=n.counters.getCounterValue(B.value),g=c&&Dt(c)?En.parse(n.context,c.value):3;a.appendChild(o.createTextNode(Wi(l,g,!1)))}}else if("counters"===e.name){var u=e.values.filter(Tt),w=(B=u[0],u[1]);if(c=u[2],B&&Dt(B)){var Q=n.counters.getCounterValues(B.value),d=c&&Dt(c)?En.parse(n.context,c.value):3,C=w&&0===w.type?w.value:"",h=Q.map((function(A){return Wi(A,d,!1)})).join(C);a.appendChild(o.createTextNode(h))}}}else if(20===e.type)switch(e.value){case"open-quote":a.appendChild(o.createTextNode(cs(i.quotes,n.quoteDepth++,!0)));break;case"close-quote":a.appendChild(o.createTextNode(cs(i.quotes,--n.quoteDepth,!1)));break;default:a.appendChild(o.createTextNode(e.value))}})),a.className=ia+" "+aa;var B=r===Js.BEFORE?" "+ia:" "+aa;return li(e)?e.className.baseValue+=B:e.className+=B,a}}},A.destroy=function(A){return!!A.parentNode&&(A.parentNode.removeChild(A),!0)},A}();!function(A){A[A.BEFORE=0]="BEFORE",A[A.AFTER=1]="AFTER"}(Js||(Js={}));var Zi,qi=function(A,e){var t=A.createElement("iframe");return t.className="html2canvas-container",t.style.visibility="hidden",t.style.position="fixed",t.style.left="-10000px",t.style.top="0px",t.style.border="0",t.width=e.width.toString(),t.height=e.height.toString(),t.scrolling="no",t.setAttribute(Yi,"true"),A.body.appendChild(t),t},ji=function(A){return new Promise((function(e){A.complete?e():A.src?(A.onload=e,A.onerror=e):e()}))},zi=function(A){return Promise.all([].slice.call(A.images,0).map(ji))},$i=function(A){return new Promise((function(e,t){var r=A.contentWindow;if(!r)return t("No window assigned for iframe");var n=r.document;r.onload=A.onload=function(){r.onload=A.onload=null;var t=setInterval((function(){n.body.childNodes.length>0&&"complete"===n.readyState&&(clearInterval(t),e(A))}),50)}}))},Aa=["all","d","content"],ea=function(A,e){for(var t=A.length-1;t>=0;t--){var r=A.item(t);-1===Aa.indexOf(r)&&e.style.setProperty(r,A.getPropertyValue(r))}return e},ta=function(A){var e="";return A&&(e+=""),e},ra=function(A,e,t){A&&A.defaultView&&(e!==A.defaultView.pageXOffset||t!==A.defaultView.pageYOffset)&&A.defaultView.scrollTo(e,t)},na=function(A){var e=A[0],t=A[1],r=A[2];e.scrollLeft=t,e.scrollTop=r},sa=":before",oa=":after",ia="___html2canvas___pseudoelement_before",aa="___html2canvas___pseudoelement_after",Ba='{\n content: "" !important;\n display: none !important;\n}',ca=function(A){la(A,"."+ia+sa+Ba+"\n ."+aa+oa+Ba)},la=function(A,e){var t=A.ownerDocument;if(t){var r=t.createElement("style");r.textContent=e,A.appendChild(r)}},ga=function(){function A(){}return A.getOrigin=function(e){var t=A._link;return t?(t.href=e,t.href=t.href,t.protocol+t.hostname+t.port):"about:blank"},A.isSameOrigin=function(e){return A.getOrigin(e)===A._origin},A.setContext=function(e){A._link=e.document.createElement("a"),A._origin=A.getOrigin(e.location.href)},A._origin="about:blank",A}(),ua=function(){function A(A,e){this.context=A,this._options=e,this._cache={}}return A.prototype.addImage=function(A){var e=Promise.resolve();return this.has(A)?e:Fa(A)||Ca(A)?((this._cache[A]=this.loadImage(A)).catch((function(){})),e):e},A.prototype.match=function(A){return this._cache[A]},A.prototype.loadImage=function(A){return r(this,void 0,void 0,(function(){var e,t,r,s,o=this;return n(this,(function(n){switch(n.label){case 0:return e=ga.isSameOrigin(A),t=!ha(A)&&!0===this._options.useCORS&&Ho.SUPPORT_CORS_IMAGES&&!e,r=!ha(A)&&!e&&!Fa(A)&&"string"==typeof this._options.proxy&&Ho.SUPPORT_CORS_XHR&&!t,e||!1!==this._options.allowTaint||ha(A)||Fa(A)||r||t?(s=A,r?[4,this.proxy(s)]:[3,2]):[2];case 1:s=n.sent(),n.label=2;case 2:return this.context.logger.debug("Added image "+A.substring(0,256)),[4,new Promise((function(A,e){var r=new Image;r.onload=function(){return A(r)},r.onerror=e,(Ua(s)||t)&&(r.crossOrigin="anonymous"),r.src=s,!0===r.complete&&setTimeout((function(){return A(r)}),500),o._options.imageTimeout>0&&setTimeout((function(){return e("Timed out ("+o._options.imageTimeout+"ms) loading image")}),o._options.imageTimeout)}))];case 3:return[2,n.sent()]}}))}))},A.prototype.has=function(A){return void 0!==this._cache[A]},A.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},A.prototype.proxy=function(A){var e=this,t=this._options.proxy;if(!t)throw new Error("No proxy defined");var r=A.substring(0,256);return new Promise((function(n,s){var o=Ho.SUPPORT_RESPONSE_TYPE?"blob":"text",i=new XMLHttpRequest;i.onload=function(){if(200===i.status)if("text"===o)n(i.response);else{var A=new FileReader;A.addEventListener("load",(function(){return n(A.result)}),!1),A.addEventListener("error",(function(A){return s(A)}),!1),A.readAsDataURL(i.response)}else s("Failed to proxy resource "+r+" with status code "+i.status)},i.onerror=s;var a=t.indexOf("?")>-1?"&":"?";if(i.open("GET",""+t+a+"url="+encodeURIComponent(A)+"&responseType="+o),"text"!==o&&i instanceof XMLHttpRequest&&(i.responseType=o),e._options.imageTimeout){var B=e._options.imageTimeout;i.timeout=B,i.ontimeout=function(){return s("Timed out ("+B+"ms) proxying "+r)}}i.send()}))},A}(),wa=/^data:image\/svg\+xml/i,Qa=/^data:image\/.*;base64,/i,da=/^data:image\/.*/i,Ca=function(A){return Ho.SUPPORT_SVG_DRAWING||!fa(A)},ha=function(A){return da.test(A)},Ua=function(A){return Qa.test(A)},Fa=function(A){return"blob"===A.substr(0,4)},fa=function(A){return"svg"===A.substr(-3).toLowerCase()||wa.test(A)},pa=function(){function A(A,e){this.type=0,this.x=A,this.y=e}return A.prototype.add=function(e,t){return new A(this.x+e,this.y+t)},A}(),ma=function(A,e,t){return new pa(A.x+(e.x-A.x)*t,A.y+(e.y-A.y)*t)},Ea=function(){function A(A,e,t,r){this.type=1,this.start=A,this.startControl=e,this.endControl=t,this.end=r}return A.prototype.subdivide=function(e,t){var r=ma(this.start,this.startControl,e),n=ma(this.startControl,this.endControl,e),s=ma(this.endControl,this.end,e),o=ma(r,n,e),i=ma(n,s,e),a=ma(o,i,e);return t?new A(this.start,r,o,a):new A(a,i,s,this.end)},A.prototype.add=function(e,t){return new A(this.start.add(e,t),this.startControl.add(e,t),this.endControl.add(e,t),this.end.add(e,t))},A.prototype.reverse=function(){return new A(this.end,this.endControl,this.startControl,this.start)},A}(),Ha=function(A){return 1===A.type},ya=function(){function A(A){var e=A.styles,t=A.bounds,r=Jt(e.borderTopLeftRadius,t.width,t.height),n=r[0],s=r[1],o=Jt(e.borderTopRightRadius,t.width,t.height),i=o[0],a=o[1],B=Jt(e.borderBottomRightRadius,t.width,t.height),c=B[0],l=B[1],g=Jt(e.borderBottomLeftRadius,t.width,t.height),u=g[0],w=g[1],Q=[];Q.push((n+i)/t.width),Q.push((u+c)/t.width),Q.push((s+w)/t.height),Q.push((a+l)/t.height);var d=Math.max.apply(Math,Q);d>1&&(n/=d,s/=d,i/=d,a/=d,c/=d,l/=d,u/=d,w/=d);var C=t.width-i,h=t.height-l,U=t.width-c,F=t.height-w,f=e.borderTopWidth,p=e.borderRightWidth,m=e.borderBottomWidth,E=e.borderLeftWidth,H=Wt(e.paddingTop,A.bounds.width),y=Wt(e.paddingRight,A.bounds.width),v=Wt(e.paddingBottom,A.bounds.width),I=Wt(e.paddingLeft,A.bounds.width);this.topLeftBorderDoubleOuterBox=n>0||s>0?va(t.left+E/3,t.top+f/3,n-E/3,s-f/3,Zi.TOP_LEFT):new pa(t.left+E/3,t.top+f/3),this.topRightBorderDoubleOuterBox=n>0||s>0?va(t.left+C,t.top+f/3,i-p/3,a-f/3,Zi.TOP_RIGHT):new pa(t.left+t.width-p/3,t.top+f/3),this.bottomRightBorderDoubleOuterBox=c>0||l>0?va(t.left+U,t.top+h,c-p/3,l-m/3,Zi.BOTTOM_RIGHT):new pa(t.left+t.width-p/3,t.top+t.height-m/3),this.bottomLeftBorderDoubleOuterBox=u>0||w>0?va(t.left+E/3,t.top+F,u-E/3,w-m/3,Zi.BOTTOM_LEFT):new pa(t.left+E/3,t.top+t.height-m/3),this.topLeftBorderDoubleInnerBox=n>0||s>0?va(t.left+2*E/3,t.top+2*f/3,n-2*E/3,s-2*f/3,Zi.TOP_LEFT):new pa(t.left+2*E/3,t.top+2*f/3),this.topRightBorderDoubleInnerBox=n>0||s>0?va(t.left+C,t.top+2*f/3,i-2*p/3,a-2*f/3,Zi.TOP_RIGHT):new pa(t.left+t.width-2*p/3,t.top+2*f/3),this.bottomRightBorderDoubleInnerBox=c>0||l>0?va(t.left+U,t.top+h,c-2*p/3,l-2*m/3,Zi.BOTTOM_RIGHT):new pa(t.left+t.width-2*p/3,t.top+t.height-2*m/3),this.bottomLeftBorderDoubleInnerBox=u>0||w>0?va(t.left+2*E/3,t.top+F,u-2*E/3,w-2*m/3,Zi.BOTTOM_LEFT):new pa(t.left+2*E/3,t.top+t.height-2*m/3),this.topLeftBorderStroke=n>0||s>0?va(t.left+E/2,t.top+f/2,n-E/2,s-f/2,Zi.TOP_LEFT):new pa(t.left+E/2,t.top+f/2),this.topRightBorderStroke=n>0||s>0?va(t.left+C,t.top+f/2,i-p/2,a-f/2,Zi.TOP_RIGHT):new pa(t.left+t.width-p/2,t.top+f/2),this.bottomRightBorderStroke=c>0||l>0?va(t.left+U,t.top+h,c-p/2,l-m/2,Zi.BOTTOM_RIGHT):new pa(t.left+t.width-p/2,t.top+t.height-m/2),this.bottomLeftBorderStroke=u>0||w>0?va(t.left+E/2,t.top+F,u-E/2,w-m/2,Zi.BOTTOM_LEFT):new pa(t.left+E/2,t.top+t.height-m/2),this.topLeftBorderBox=n>0||s>0?va(t.left,t.top,n,s,Zi.TOP_LEFT):new pa(t.left,t.top),this.topRightBorderBox=i>0||a>0?va(t.left+C,t.top,i,a,Zi.TOP_RIGHT):new pa(t.left+t.width,t.top),this.bottomRightBorderBox=c>0||l>0?va(t.left+U,t.top+h,c,l,Zi.BOTTOM_RIGHT):new pa(t.left+t.width,t.top+t.height),this.bottomLeftBorderBox=u>0||w>0?va(t.left,t.top+F,u,w,Zi.BOTTOM_LEFT):new pa(t.left,t.top+t.height),this.topLeftPaddingBox=n>0||s>0?va(t.left+E,t.top+f,Math.max(0,n-E),Math.max(0,s-f),Zi.TOP_LEFT):new pa(t.left+E,t.top+f),this.topRightPaddingBox=i>0||a>0?va(t.left+Math.min(C,t.width-p),t.top+f,C>t.width+p?0:Math.max(0,i-p),Math.max(0,a-f),Zi.TOP_RIGHT):new pa(t.left+t.width-p,t.top+f),this.bottomRightPaddingBox=c>0||l>0?va(t.left+Math.min(U,t.width-E),t.top+Math.min(h,t.height-m),Math.max(0,c-p),Math.max(0,l-m),Zi.BOTTOM_RIGHT):new pa(t.left+t.width-p,t.top+t.height-m),this.bottomLeftPaddingBox=u>0||w>0?va(t.left+E,t.top+Math.min(F,t.height-m),Math.max(0,u-E),Math.max(0,w-m),Zi.BOTTOM_LEFT):new pa(t.left+E,t.top+t.height-m),this.topLeftContentBox=n>0||s>0?va(t.left+E+I,t.top+f+H,Math.max(0,n-(E+I)),Math.max(0,s-(f+H)),Zi.TOP_LEFT):new pa(t.left+E+I,t.top+f+H),this.topRightContentBox=i>0||a>0?va(t.left+Math.min(C,t.width+E+I),t.top+f+H,C>t.width+E+I?0:i-E+I,a-(f+H),Zi.TOP_RIGHT):new pa(t.left+t.width-(p+y),t.top+f+H),this.bottomRightContentBox=c>0||l>0?va(t.left+Math.min(U,t.width-(E+I)),t.top+Math.min(h,t.height+f+H),Math.max(0,c-(p+y)),l-(m+v),Zi.BOTTOM_RIGHT):new pa(t.left+t.width-(p+y),t.top+t.height-(m+v)),this.bottomLeftContentBox=u>0||w>0?va(t.left+E+I,t.top+F,Math.max(0,u-(E+I)),w-(m+v),Zi.BOTTOM_LEFT):new pa(t.left+E+I,t.top+t.height-(m+v))}return A}();!function(A){A[A.TOP_LEFT=0]="TOP_LEFT",A[A.TOP_RIGHT=1]="TOP_RIGHT",A[A.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",A[A.BOTTOM_LEFT=3]="BOTTOM_LEFT"}(Zi||(Zi={}));var va=function(A,e,t,r,n){var s=(Math.sqrt(2)-1)/3*4,o=t*s,i=r*s,a=A+t,B=e+r;switch(n){case Zi.TOP_LEFT:return new Ea(new pa(A,B),new pa(A,B-i),new pa(a-o,e),new pa(a,e));case Zi.TOP_RIGHT:return new Ea(new pa(A,e),new pa(A+o,e),new pa(a,B-i),new pa(a,B));case Zi.BOTTOM_RIGHT:return new Ea(new pa(a,e),new pa(a,e+i),new pa(A+o,B),new pa(A,B));case Zi.BOTTOM_LEFT:default:return new Ea(new pa(a,B),new pa(a-o,B),new pa(A,e+i),new pa(A,e))}},Ia=function(A){return[A.topLeftBorderBox,A.topRightBorderBox,A.bottomRightBorderBox,A.bottomLeftBorderBox]},Ka=function(A){return[A.topLeftContentBox,A.topRightContentBox,A.bottomRightContentBox,A.bottomLeftContentBox]},ba=function(A){return[A.topLeftPaddingBox,A.topRightPaddingBox,A.bottomRightPaddingBox,A.bottomLeftPaddingBox]},La=function(){function A(A,e,t){this.offsetX=A,this.offsetY=e,this.matrix=t,this.type=0,this.target=6}return A}(),Da=function(){function A(A,e){this.path=A,this.target=e,this.type=1}return A}(),xa=function(){function A(A){this.opacity=A,this.type=2,this.target=6}return A}(),Sa=function(A){return 0===A.type},Ma=function(A){return 1===A.type},Ta=function(A){return 2===A.type},Oa=function(A,e){return A.length===e.length&&A.some((function(A,t){return A===e[t]}))},ka=function(A,e,t,r,n){return A.map((function(A,s){switch(s){case 0:return A.add(e,t);case 1:return A.add(e+r,t);case 2:return A.add(e+r,t+n);case 3:return A.add(e,t+n)}return A}))},Va=function(){function A(A){this.element=A,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]}return A}(),Ga=function(){function A(A,e){if(this.container=A,this.parent=e,this.effects=[],this.curves=new ya(this.container),this.container.styles.opacity<1&&this.effects.push(new xa(this.container.styles.opacity)),null!==this.container.styles.transform){var t=this.container.bounds.left+this.container.styles.transformOrigin[0].number,r=this.container.bounds.top+this.container.styles.transformOrigin[1].number,n=this.container.styles.transform;this.effects.push(new La(t,r,n))}if(0!==this.container.styles.overflowX){var s=Ia(this.curves),o=ba(this.curves);Oa(s,o)?this.effects.push(new Da(s,6)):(this.effects.push(new Da(s,2)),this.effects.push(new Da(o,4)))}}return A.prototype.getEffects=function(A){for(var e=-1===[2,3].indexOf(this.container.styles.position),t=this.parent,r=this.effects.slice(0);t;){var n=t.effects.filter((function(A){return!Ma(A)}));if(e||0!==t.container.styles.position||!t.parent){if(r.unshift.apply(r,n),e=-1===[2,3].indexOf(t.container.styles.position),0!==t.container.styles.overflowX){var s=Ia(t.curves),o=ba(t.curves);Oa(s,o)||r.unshift(new Da(o,6))}}else r.unshift.apply(r,n);t=t.parent}return r.filter((function(e){return ns(e.target,A)}))},A}(),Na=function(A,e,t,r){A.container.elements.forEach((function(n){var s=ns(n.flags,4),o=ns(n.flags,2),i=new Ga(n,A);ns(n.styles.display,2048)&&r.push(i);var a=ns(n.flags,8)?[]:r;if(s||o){var B=s||n.styles.isPositioned()?t:e,c=new Va(i);if(n.styles.isPositioned()||n.styles.opacity<1||n.styles.isTransformed()){var l=n.styles.zIndex.order;if(l<0){var g=0;B.negativeZIndex.some((function(A,e){return l>A.element.container.styles.zIndex.order?(g=e,!1):g>0})),B.negativeZIndex.splice(g,0,c)}else if(l>0){var u=0;B.positiveZIndex.some((function(A,e){return l>=A.element.container.styles.zIndex.order?(u=e+1,!1):u>0})),B.positiveZIndex.splice(u,0,c)}else B.zeroOrAutoZIndexOrTransformedOrOpacity.push(c)}else n.styles.isFloating()?B.nonPositionedFloats.push(c):B.nonPositionedInlineLevel.push(c);Na(i,c,s?c:t,a)}else n.styles.isInlineLevel()?e.inlineLevel.push(i):e.nonInlineLevel.push(i),Na(i,e,t,a);ns(n.flags,8)&&Pa(n,a)}))},Pa=function(A,e){for(var t=A instanceof Ro?A.start:1,r=A instanceof Ro&&A.reversed,n=0;n0&&A.intrinsicHeight>0){var r=ja(A),n=ba(e);this.path(n),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(t,0,0,A.intrinsicWidth,A.intrinsicHeight,r.left,r.top,r.width,r.height),this.ctx.restore()}},t.prototype.renderNodeContent=function(A){return r(this,void 0,void 0,(function(){var e,r,s,i,a,B,c,l,g,u,w,Q,d,C,h,U,F,f;return n(this,(function(n){switch(n.label){case 0:this.applyEffects(A.getEffects(4)),e=A.container,r=A.curves,s=e.styles,i=0,a=e.textNodes,n.label=1;case 1:return i0&&E>0&&(h=r.ctx.createPattern(Q,"repeat"),r.renderRepeat(F,h,y,v))):Dr(t)&&(U=AB(A,e,[null,null,null]),F=U[0],f=U[1],p=U[2],m=U[3],E=U[4],H=0===t.position.length?[Rt]:t.position,y=Wt(H[0],m),v=Wt(H[H.length-1],E),I=Fr(t,y,v,m,E),K=I[0],b=I[1],K>0&&b>0&&(L=r.ctx.createRadialGradient(f+y,p+v,0,f+y,p+v,K),Qr(t.stops,2*K).forEach((function(A){return L.addColorStop(A.stop,rr(A.color))})),r.path(F),r.ctx.fillStyle=L,K!==b?(D=A.bounds.left+.5*A.bounds.width,x=A.bounds.top+.5*A.bounds.height,M=1/(S=b/K),r.ctx.save(),r.ctx.translate(D,x),r.ctx.transform(1,0,0,S,0,0),r.ctx.translate(-D,-x),r.ctx.fillRect(f,M*(p-x)+x,m,E*M),r.ctx.restore()):r.ctx.fill())),n.label=6;case 6:return e--,[2]}}))},r=this,s=0,o=A.styles.backgroundImage.slice(0).reverse(),a.label=1;case 1:return s0?2!==B.style?[3,5]:[4,this.renderDashedDottedBorder(B.color,B.width,o,A.curves,2)]:[3,11]:[3,13];case 4:return n.sent(),[3,11];case 5:return 3!==B.style?[3,7]:[4,this.renderDashedDottedBorder(B.color,B.width,o,A.curves,3)];case 6:return n.sent(),[3,11];case 7:return 4!==B.style?[3,9]:[4,this.renderDoubleBorder(B.color,B.width,o,A.curves)];case 8:return n.sent(),[3,11];case 9:return[4,this.renderSolidBorder(B.color,o,A.curves)];case 10:n.sent(),n.label=11;case 11:o++,n.label=12;case 12:return i++,[3,3];case 13:return[2]}}))}))},t.prototype.renderDashedDottedBorder=function(A,e,t,s,o){return r(this,void 0,void 0,(function(){var r,i,a,B,c,l,g,u,w,Q,d,C,h,U,F,f;return n(this,(function(n){return this.ctx.save(),r=Ya(s,t),i=Xa(s,t),2===o&&(this.path(i),this.ctx.clip()),Ha(i[0])?(a=i[0].start.x,B=i[0].start.y):(a=i[0].x,B=i[0].y),Ha(i[1])?(c=i[1].end.x,l=i[1].end.y):(c=i[1].x,l=i[1].y),g=0===t||2===t?Math.abs(a-c):Math.abs(B-l),this.ctx.beginPath(),3===o?this.formatPath(r):this.formatPath(i.slice(0,2)),u=e<3?3*e:2*e,w=e<3?2*e:e,3===o&&(u=e,w=e),Q=!0,g<=2*u?Q=!1:g<=2*u+w?(u*=d=g/(2*u+w),w*=d):(C=Math.floor((g+w)/(u+w)),h=(g-C*u)/(C-1),w=(U=(g-(C+1)*u)/C)<=0||Math.abs(w-h){a.toBlob((t=>{t?A(t):e(new Error("toBlob returned null"))}),"image/jpeg",w)}))}async function f(A){const e=await g(document.documentElement,{x:A.x,y:A.y,width:A.w,height:A.h,scale:1,useCORS:!0,allowTaint:!1}),t=Math.min(u/e.width,u/e.height,1),r=Math.max(1,Math.round(e.width*t)),n=Math.max(1,Math.round(e.height*t)),s=document.createElement("canvas");s.width=r,s.height=n;const o=s.getContext("2d");if(!o)throw new Error("Failed to get 2D context in fallback");return o.drawImage(e,0,0,r,n),new Promise(((A,e)=>{s.toBlob((t=>{t?A(t):e(new Error("Fallback toBlob returned null"))}),"image/jpeg",w)}))}function p(){const A=Array.from(document.querySelectorAll("video, img, canvas")),e=window.innerWidth,t=window.innerHeight;let r=null,n=0,s=null,o=0;for(const i of A){const A=i.getBoundingClientRect(),a=Math.max(0,Math.min(A.right,e)-Math.max(A.left,0))*Math.max(0,Math.min(A.bottom,t)-Math.max(A.top,0));if(a<2500)continue;const B=d(i),c={el:i,rect:{x:A.left,y:A.top,w:A.width,h:A.height}};i instanceof HTMLVideoElement?a>n&&(n=a,r=c):0!==B.w&&0!==B.h&&a>o&&(o=a,s=c)}return r||s}async function m(){const A=p();if(!A)return console.warn("[Visage] captureWholeFrame: no media element found"),null;const e=d(A.el);if(A.el instanceof HTMLVideoElement&&(0===e.w||0===e.h)){const e=function(A){var e;if(A.poster)return A.poster;const t=null===(e=A.parentElement)||void 0===e?void 0:e.querySelector(".vjs-poster");if(t){const A=getComputedStyle(t).backgroundImage.match(/url\(["']?([^"')]+)["']?\)/);if(A)return A[1]}return null}(A.el);if(e){console.warn("[Visage] Video not loaded, capturing poster:",e);try{const A=new Image;A.crossOrigin="anonymous",A.src=e,await new Promise(((e,t)=>{A.onload=()=>e(),A.onerror=()=>t(new Error("Poster image failed to load"))}));const t=await optimizeCanvas(A);if(t)return t}catch(A){console.warn("[Visage] Poster capture failed:",A)}}return f(A.rect)}const t=C(A.el,A.rect);return E({x:t.x,y:t.y,w:t.w,h:t.h})}async function E(A){const e=function(A,e){const t=document.elementsFromPoint(A,e);for(const A of t)if(A instanceof HTMLVideoElement||A instanceof HTMLImageElement||A instanceof HTMLCanvasElement){const e=A.getBoundingClientRect();return{el:A,rect:{x:e.left,y:e.top,w:e.width,h:e.height}}}return null}(A.x+A.w/2,A.y+A.h/2);if(!e){const e=p();if(e){const t=d(e.el);if(t.w>0&&t.h>0){const t=C(e.el,e.rect),r=h(A,t);if(r.w>=4&&r.h>=4){const{sx:A,sy:n,sw:s,sh:o}=U(e.el,r,t);try{return await F(e.el,A,n,s,o)}catch(A){}}}}return console.warn("[Visage] No media element at center, falling back"),f(A)}const t=d(e.el);if(0===t.w||0===t.h)return console.warn("[Visage] Media has no intrinsic size (not loaded yet), falling back"),f(A);const r=C(e.el,e.rect),n=h(A,r);if(n.w<4||n.h<4)return console.warn("[Visage] Selection too small after content clamp, falling back"),f(A);const{sx:s,sy:o,sw:i,sh:a}=U(e.el,n,r);console.warn("[Visage] Direct capture mapped:",{sx:s,sy:o,sw:i,sh:a});try{const A=await F(e.el,s,o,i,a);return function(A,e){if(!Q)return;const t=URL.createObjectURL(A),r=document.createElement("img");r.src=t,r.style.cssText=["position:fixed",`left:${e.x}px`,`top:${e.y}px`,`width:${e.w}px`,`height:${e.h}px`,"opacity:0.5","pointer-events:none","z-index:2147483647","border:1px solid #00ff00"].join(";"),document.body.appendChild(r),setTimeout((()=>{r.remove(),URL.revokeObjectURL(t)}),3e3)}(A,n),A}catch(e){return console.warn("[Visage] Direct capture threw, falling back:",e),f(A)}}let H=!1;function y(){return H}let v=20;const I=20,K="visage_api_endpoint",b="https://cc1234-stashface-onnx.hf.space";function L(){var A;if("undefined"!=typeof window&&(null===(A=window.visageConfig)||void 0===A?void 0:A.apiEndpoint))return window.visageConfig.apiEndpoint;try{const A=localStorage.getItem(K);if(A)return A}catch(A){console.warn("Could not read API endpoint from localStorage:",A)}return b}const D="/gradio_api";async function x(A,e,t){const r=new FormData;r.append("files",e,t);const n=await fetch(`${A}${D}/upload`,{method:"POST",body:r,credentials:"omit"});if(!n.ok)throw new Error(`Upload failed: ${n.status}`);return(await n.json())[0]}async function S(A,e,t,r){var n,s;const o=await fetch(`${A}${D}/call/${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:t}),credentials:"omit"});if(!o.ok)throw new Error(`Predict failed: ${o.status}`);const{event_id:i}=await o.json(),a=null===(n=(await fetch(`${A}${D}/call/${e}/${i}`,{credentials:"omit"})).body)||void 0===n?void 0:n.getReader();if(!a)throw new Error("No response body");const B=new TextDecoder;let c="",l=null;for(;;){if(y()){a.cancel();break}const{done:A,value:e}=await a.read();if(A)break;c+=B.decode(e,{stream:!0});const t=c.split("\n");c=t.pop()||"";for(const A of t)if(A.startsWith("data: "))try{const e=JSON.parse(A.slice(6));if(null===e)continue;const t=Array.isArray(e)&&1===e.length?e[0]:e;if(void 0!==(null==t?void 0:t.progress)){r&&r(t.progress,t.desc||"");continue}if("data"in t){l=t.data;continue}if(Array.isArray(t)&&t.length>0&&void 0!==(null===(s=t[0])||void 0===s?void 0:s.data)){l=t[0].data;continue}l=t}catch(A){}}return l}async function M(A,e,t){const r=L(),n=await x(r,A,"sprite.jpg"),s=await x(r,e,"thumbs.vtt"),o=A=>({path:A,meta:{_type:"gradio.FileData"}}),i=await S(r,"identify_sprite_performers",[o(n),o(s),I],t);return{data:Array.isArray(i)?i:[i]}}const T=window.PluginApi.GQL,O=()=>window.PluginApi.utils.StashService.getClient();async function k(A){return(await O().query({query:T.FindPerformersDocument,variables:{performer_filter:{stash_id_endpoint:{endpoint:"",stash_id:A,modifier:"EQUALS"}}}})).data.findPerformers.performers}async function V(A){return(await O().query({query:T.FindSceneDocument,variables:{id:A}})).data.findScene.performers.map((A=>A.id))}async function G(A){return(await O().query({query:T.FindImageDocument,variables:{id:A}})).data.findImage.performers.map((A=>A.id))}async function N(A,e){return O().mutate({mutation:T.SceneUpdateDocument,variables:{input:{id:A,performer_ids:e}}})}async function P(A,e){return O().mutate({mutation:T.ImageUpdateDocument,variables:{input:{id:A,performer_ids:e}}})}async function R(A){var e,t,r,n;console.log("[Visage] getPerformerDataFromStashID - checking stashbox config...");const s=await O().query({query:T.ConfigurationDocument});console.log("[Visage] Stashboxes:",JSON.stringify(null===(r=null===(t=null===(e=s.data)||void 0===e?void 0:e.configuration)||void 0===t?void 0:t.general)||void 0===r?void 0:r.stashBoxes,null,2)),console.log("[Visage] Calling scrapeSinglePerformer with stash_id:",A);try{const e=await O().query({query:T.ScrapeSinglePerformerDocument,variables:{source:{stash_box_index:0},input:{query:A}}});return console.log("[Visage] scrapeSinglePerformer raw result:",e),console.log("[Visage] scrapeSinglePerformer data:",JSON.stringify(e.data,null,2)),e.errors&&console.log("[Visage] GraphQL errors:",JSON.stringify(e.errors,null,2)),(null===(n=e.data)||void 0===n?void 0:n.scrapeSinglePerformer)?e.data.scrapeSinglePerformer.filter((e=>e.remote_site_id===A))[0]:void console.log("[Visage] scrapeSinglePerformer returned null/undefined")}catch(A){return void console.log("[Visage] Exception in scrapeSinglePerformer:",A)}}async function X(A){return O().mutate({mutation:T.PerformerCreateDocument,variables:{input:A}})}async function J(A,e){var t;return null!==(t=(await O().query({query:T.FindSceneDocument,variables:{id:A}})).data.findScene.paths[e])&&void 0!==t?t:null}async function W(A){const e=await J(A,"sprite");if(!e)return null;return(await fetch(e)).ok?e:null}async function Y(A){return async function(A,e="image"){var t,r;const n=null!==(r=null===(t=(await O().query({query:T.FindImageDocument,variables:{id:A}})).data.findImage.paths)||void 0===t?void 0:t[e])&&void 0!==r?r:null;return n?"string"==typeof n&&n.startsWith("/")?`${window.location.origin}${n}`:n:null}(A,"image")}async function _(A){return J(A,"preview")}async function Z(A,e){const{images:t,height:r,aliases:n,remote_site_id:s,stored_id:o,__typename:i,tags:a,...B}=A,c=await async function(){var A,e,t;const r=null===(t=null===(e=null===(A=(await O().query({query:T.ConfigurationDocument})).data)||void 0===A?void 0:A.configuration)||void 0===e?void 0:e.general)||void 0===t?void 0:t.stashBoxes;return(null==r?void 0:r.length)?r[0].endpoint:null}();return{...B,image:null==t?void 0:t[0],height_cm:r,alias_list:n,stash_ids:c?[{endpoint:c,stash_id:e}]:void 0}}async function q(A,e,t){const r="scenes"===A?V:G,n="scenes"===A?N:P,s=await r(e);s.includes(t)||(s.push(t),await n(e,s))}function j(){const A=document.URL.match(/(scenes|images)\/(\d+)/);if(!A)throw new Error("Could not parse scenario and ID from URL");return[A[1],A[2]]}function z(){var A;const e=document.querySelector(".dropdown-menu.show");if(!e)return;e.classList.remove("show");const t=null===(A=e.closest(".dropdown"))||void 0===A?void 0:A.querySelector('[data-toggle="dropdown"], .dropdown-toggle');t&&t.setAttribute("aria-expanded","false")}function $(){try{return window.PluginApi.hooks.useToast()}catch(A){return null}}function AA(A,e="Unknown error"){return A instanceof Error?A.message:e}const eA=window.PluginApi.React,{useCallback:tA}=eA;let rA=null,nA=null,sA=null,oA=0,iA=0,aA=!1,BA=!1;function cA(A,e,t){lA(),BA=!1;const r=(null==t?void 0:t.region)||E,n=(null==t?void 0:t.whole)||m;rA=document.createElement("div"),rA.style.cssText="position:fixed;inset:0;z-index:2147483647;cursor:crosshair;background:rgba(0,0,0,0.12);";const s=document.createElement("div");function o(A){if(!aA)return;const e=Math.min(oA,A.clientX),t=Math.min(iA,A.clientY),r=Math.abs(A.clientX-oA),n=Math.abs(A.clientY-iA);nA.style.cssText=`position:fixed;display:block;left:${e}px;top:${t}px;width:${r}px;height:${n}px;outline:2px solid #5695ff;outline-offset:-2px;background:rgba(86,149,255,0.08);pointer-events:none;z-index:2147483649;`}function i(t){if(aA=!1,rA.removeEventListener("mousemove",o),rA.removeEventListener("mouseup",i),BA)return;BA=!0;const n=nA.getBoundingClientRect();if(n.width<10||n.height<10)return lA(),e(),void(BA=!1);rA.style.display="none",r({x:n.left,y:n.top,w:n.width,h:n.height}).then((t=>{lA(),t?A(t):e()})).catch((()=>{lA(),e()}))}function a(t){if("Escape"===t.key)return lA(),void e();if("Enter"===t.key){if(t.preventDefault(),aA||BA)return;BA=!0,rA.style.display="none",n().then((t=>{lA(),t?A(t):e()})).catch((()=>{lA(),e()}))}}s.textContent="Drag to select a face — Enter to scan the whole frame — Esc to cancel",s.style.cssText="position:fixed;top:16px;left:50%;transform:translateX(-50%);background:#07070f;color:rgba(255,255,255,0.8);padding:10px 24px;border-radius:8px;font:13px/1.4 system-ui,sans-serif;border:1px solid rgba(255,255,255,0.07);box-shadow:0 4px 20px rgba(0,0,0,0.5);pointer-events:none;z-index:2147483648;",rA.appendChild(s),nA=document.createElement("div"),nA.style.cssText="position:fixed;display:none;outline:2px solid #5695ff;outline-offset:-2px;background:rgba(86,149,255,0.08);pointer-events:none;z-index:2147483649;",rA.appendChild(nA),document.body.appendChild(rA),rA.addEventListener("mousedown",(function(A){0===A.button&&(aA=!0,oA=A.clientX,iA=A.clientY,nA.style.cssText=`position:fixed;display:block;left:${oA}px;top:${iA}px;width:0;height:0;outline:2px solid #5695ff;outline-offset:-2px;background:rgba(86,149,255,0.08);pointer-events:none;z-index:2147483649;`,rA.addEventListener("mousemove",o),rA.addEventListener("mouseup",i))})),sA=a,document.addEventListener("keydown",a)}function lA(){sA&&(document.removeEventListener("keydown",sA),sA=null),rA&&(rA.remove(),rA=null,nA=null)}const gA="ontouchstart"in window||navigator.maxTouchPoints>0;async function uA(A){const e=await Y(A);if(!e)return null;try{const A=await fetch(e);if(!A.ok)return null;const t=await A.blob();return t.type?t:new Blob([t],{type:"image/jpeg"})}catch(A){return null}}async function wA(A,e){try{const t=await createImageBitmap(A),r=e.x+e.w/2,n=e.y+e.h/2,s=document.elementsFromPoint(r,n);let o=null;for(const A of s)if(A instanceof HTMLImageElement){o=A;break}const i=o?function(A,e,t){const r=A.getBoundingClientRect(),n=getComputedStyle(A).objectFit;let s=r.width,o=r.height;if(e>0&&t>0)if("contain"===n||"scale-down"===n){const A=Math.min(r.width/e,r.height/t);s=e*A,o=t*A}else if("cover"===n){const A=Math.max(r.width/e,r.height/t);s=e*A,o=t*A}return{x:r.left+(r.width-s)/2,y:r.top+(r.height-o)/2,w:s,h:o}}(o,t.width,t.height):{x:0,y:0,w:window.innerWidth,h:window.innerHeight},a=Math.max(e.x,i.x),B=Math.max(e.y,i.y),c=Math.min(e.x+e.w,i.x+i.w),l=Math.min(e.y+e.h,i.y+i.h);if(a>=c||B>=l)return null;const g=c-a,u=l-B;if(g<4||u<4)return null;const w=(a-i.x)/i.w*t.width,Q=(B-i.y)/i.h*t.height,d=g/i.w*t.width,C=u/i.h*t.height,h=document.createElement("canvas"),U=400,F=Math.min(U/d,U/C,1);h.width=Math.max(1,Math.round(d*F)),h.height=Math.max(1,Math.round(C*F));const f=h.getContext("2d");return f?(f.drawImage(t,w,Q,d,C,0,0,h.width,h.height),t.close(),new Promise((A=>h.toBlob((e=>A(e)),"image/jpeg",.85)))):null}catch(A){return null}}async function QA(A,e,t,r,n,s){var o,i,a,B,c,l,g,u,w,Q,d,C;t(s,!0);const[h,U]=j();n(h,U);try{const t=await async function(A,e,t){var r;try{const r=L(),n=await Promise.all(e.map((async A=>{if(A instanceof Blob||A instanceof File){const e=A instanceof File?A.name:"file";return{path:await x(r,A,e),meta:{_type:"gradio.FileData"}}}return A}))),s=await S(r,A,n,t);return{data:Array.isArray(s)?s:[s]}}catch(A){const e=null!==(r=null==A?void 0:A.message)&&void 0!==r?r:"string"==typeof A?A:JSON.stringify(A);throw new Error(`Gradio API call failed: ${e}`)}}("multiple_image_search",[A,v]),n=t.data;if(!n||"object"!=typeof n)return void(null===(i=null===(o=null==e?void 0:e.toast)||void 0===o?void 0:o.warning)||void 0===i||i.call(o,"No faces found in that selection. Try a tighter crop, or press Enter to scan the whole frame."));const s=Array.isArray(n)?n[0]:n;if(null==s?void 0:s.error)return void(null===(B=null===(a=null==e?void 0:e.toast)||void 0===a?void 0:a.warning)||void 0===B||B.call(a,s.error));if(!Array.isArray(n)||0===n.length)return void(null===(l=null===(c=null==e?void 0:e.toast)||void 0===c?void 0:c.warning)||void 0===l||l.call(c,"No faces found in that selection. Try a tighter crop, or press Enter to scan the whole frame."));r(n)}catch(A){const t=AA(A);t.includes("Could not find element")?null===(u=null===(g=null==e?void 0:e.toast)||void 0===g?void 0:g.error)||void 0===u||u.call(g,"Could not capture media. Please ensure the scene/image is fully loaded."):t.includes("Failed to fetch")||t.includes("NetworkError")?null===(Q=null===(w=null==e?void 0:e.toast)||void 0===w?void 0:w.error)||void 0===Q||Q.call(w,"Face recognition API is not reachable. Check the API endpoint in Settings."):null===(C=null===(d=null==e?void 0:e.toast)||void 0===d?void 0:d.error)||void 0===C||C.call(d,"Face search failed: "+t)}finally{t(s,!1)}}function dA({menuItem:A}){const e=$(),{state:t,setLoading:r,setMatches:n,setScenario:s}=B(),o="face-search",i=t.loading[o]||!1,a=tA((async()=>{var A,t,a,B,c,l,g,u;if(i)return;const[w,Q]=j();if(s(w,Q),"images"!==w)if(gA){r(o,!0);try{const A=await m();if(!A)return null===(l=null===(c=null==e?void 0:e.toast)||void 0===c?void 0:c.warning)||void 0===l||l.call(c,"Could not capture the current frame."),void r(o,!1);await QA(A,e,r,n,s,o)}catch(A){console.warn("[Visage] captureWholeFrame failed:",A),null===(u=null===(g=null==e?void 0:e.toast)||void 0===g?void 0:g.error)||void 0===u||u.call(g,"Failed to capture the current frame."),r(o,!1)}}else cA((A=>{QA(A,e,r,n,s,o)}),(()=>{var A,t;null===(t=null===(A=null==e?void 0:e.toast)||void 0===A?void 0:A.warning)||void 0===t||t.call(A,"Select a face within the video player area.")}));else{if(gA){r(o,!0);try{const i=await uA(Q);if(!i)return null===(t=null===(A=null==e?void 0:e.toast)||void 0===A?void 0:A.warning)||void 0===t||t.call(A,"Could not fetch image from Stash."),void r(o,!1);await QA(i,e,r,n,s,o)}catch(A){null===(B=null===(a=null==e?void 0:e.toast)||void 0===a?void 0:a.error)||void 0===B||B.call(a,"Failed to capture image: "+AA(A)),r(o,!1)}return}cA((A=>{QA(A,e,r,n,s,o)}),(()=>{var A,t;null===(t=null===(A=null==e?void 0:e.toast)||void 0===A?void 0:A.warning)||void 0===t||t.call(A,"Select a face within the image.")}),{region:async A=>{const e=await uA(Q);return e?wA(e,A):null},whole:()=>uA(Q)})}}),[r,n,s,i,e]);return A?eA.createElement("a",{href:"#",className:"bg-secondary text-white dropdown-item",role:"button",title:"Drag a box around a face, or press Enter to scan the whole frame, to search StashDB for matches",onClick:A=>{A.preventDefault(),z(),a()}},"Visage: Current Frame"):eA.createElement("button",{id:"visage-frame-search",className:"visage-toolbar-button"+(i?" visage-scanning":""),onClick:a,disabled:i,title:"Visage: Current Frame"},eA.createElement("svg",{width:20,height:20,viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},eA.createElement("path",{d:"M9 11.75c-.69 0-1.25.56-1.25 1.25s.56 1.25 1.25 1.25 1.25-.56 1.25-1.25-.56-1.25-1.25-1.25zm6 0c-.69 0-1.25.56-1.25 1.25s.56 1.25 1.25 1.25 1.25-.56 1.25-1.25-.56-1.25-1.25-1.25zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8 0-.29.02-.58.05-.86 2.36-1.05 4.23-2.98 5.21-5.37C11.07 8.33 14.05 10 17.42 10c.78 0 1.53-.09 2.25-.26.21.71.33 1.47.33 2.26 0 4.41-3.59 8-8 8z"})))}function CA(A,e=2){return String(A).padStart(e,"0")}function hA(A){const e=Math.floor(A/3600),t=Math.floor(A%3600/60),r=Math.floor(A%60),n=Math.round(1e3*(A-Math.floor(A)));return`${CA(e)}:${CA(t)}:${CA(r)}.${CA(n,3)}`}const UA=window.PluginApi.React,{useCallback:FA}=UA;function fA(A){return!!(null==A?void 0:A.performers)&&Object.keys(A.performers).length>0}function pA({menuItem:A}){const e=$(),{state:t,setLoading:r,setSpriteResult:n,showSpriteModal:s,setDetectionMode:o,setScanProgress:i}=B(),a="face-detection",c=t.loading[a]||!1,l=FA((async A=>{var e;const t=await W(A);if(!t)return null;const r=t.replace(/_sprite\.jpg$/,"_thumbs.vtt"),n=await async function(A){const e=await fetch(A);if(!e.ok)throw new Error(`Failed to fetch ${A}: ${e.status}`);const t=await e.blob();return new Promise((A=>{const e=new FileReader;e.onload=()=>A(e.result),e.readAsDataURL(t)}))}(t),s=await fetch(r);if(!s.ok)return console.warn("[Visage] sprite VTT fetch failed",r,s.status),null;const o=await s.blob(),a=function(A){const e=A.split(","),t=e[0].match(/:(.*?);/)[1],r=atob(e[1]);let n=r.length;const s=new Uint8Array(n);for(;n--;)s[n]=r.charCodeAt(n);return new Blob([s],{type:t})}(n),B=await M(a,o,((A,e)=>i(A,e))),c=null===(e=null==B?void 0:B.data)||void 0===e?void 0:e[0];return(null==c?void 0:c.error)?(console.warn("[Visage] sprite identification error:",c.error),null):fA(c)?c:null}),[i]),g=FA((async A=>{var e;const t=await _(A);if(!t)return null;const{sprite:r,vtt:n}=await async function(A,e=12,t=640,r=360){const n=document.createElement("video");n.crossOrigin="anonymous",n.preload="auto",n.muted=!0,n.playsInline=!0,n.src=A,await new Promise(((A,e)=>{const t=setTimeout((()=>e(new Error("Preview video load timed out"))),15e3);n.onloadedmetadata=()=>{clearTimeout(t),A()},n.onerror=()=>{clearTimeout(t),e(new Error("Failed to load preview video"))},n.load()})),await n.play(),n.pause();const s=n.duration;if(!s||s<=0)throw new Error("Invalid preview video duration");const o=s/e,i=document.createElement("canvas");i.width=t,i.height=r;const a=i.getContext("2d"),B=Math.ceil(e/4),c=document.createElement("canvas");c.width=4*t,c.height=B*r;const l=c.getContext("2d"),g=[],u=o/2;for(let A=0;A{n.onseeked=()=>A()})),a.drawImage(n,0,0,t,r);const B=A%4,c=Math.floor(A/4);l.drawImage(i,B*t,c*r),g.push(`${hA(e)} --\x3e ${hA(Math.min(e+o,s))}\nsprite.jpg#xywh=${B*t},${c*r},${t},${r}`)}const w=await new Promise(((A,e)=>{c.toBlob((t=>t?A(t):e(new Error("toBlob failed"))),"image/jpeg",.85)})),Q="WEBVTT\n\n"+g.map(((A,e)=>`${e+1}\n${A}`)).join("\n\n");return n.remove(),i.remove(),c.remove(),{sprite:w,vtt:Q}}(t);if(y())return null;const s=new Blob([n],{type:"text/vtt"}),o=await M(r,s,((A,e)=>i(A,e))),a=null===(e=null==o?void 0:o.data)||void 0===e?void 0:e[0];return(null==a?void 0:a.error)?(console.warn("[Visage] preview identification error:",a.error),null):fA(a)?a:null}),[i]),u=FA((async()=>{var A,t,i,B;H=!1,console.warn("[Visage] whole scene scan clicked");try{r(a,!0),s(!0);const[A,t]=j();if("scenes"!==A)return console.warn("[Visage] scene scan only works on scenes"),void s(!1);o("sprite");const i=await l(t);if(y())return;if(i)return void n(i);o("preview");const B=await g(t);if(y())return;if(B)return void n(B);s(!1);const c=await W(t),u=await _(t);c||u?null==e||e.toast({content:"No faces or performers found in this scene’s sprite sheet or preview video."}):null==e||e.toast({content:"No sprite sheet or preview video found for this scene. Generate them in Scene settings, then try again."})}catch(r){console.error("[Visage] scene scan error:",r),s(!1);const n=AA(r);n.includes("Failed to fetch")||n.includes("NetworkError")?null===(t=null===(A=null==e?void 0:e.toast)||void 0===A?void 0:A.error)||void 0===t||t.call(A,"Face recognition API is not reachable. Check the API endpoint in Settings."):null===(B=null===(i=null==e?void 0:e.toast)||void 0===i?void 0:i.error)||void 0===B||B.call(i,"Scene scan failed: "+n)}finally{r(a,!1)}}),[r,n,s,o,i,l,g,e]);return A?UA.createElement("a",{href:"#",className:"bg-secondary text-white dropdown-item",role:"button",title:"Identify every performer in the scene (needs a generated sprite sheet or preview video)",onClick:A=>{A.preventDefault(),z(),u()}},"Visage: Whole Scene"):UA.createElement("button",{id:"visage-scene-scan",className:"visage-toolbar-button"+(c?" visage-scanning":""),onClick:u,disabled:c,title:"Visage: Whole Scene"},UA.createElement("svg",{width:20,height:20,viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},UA.createElement("path",{d:"M18 4l2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4z"})))}const mA=window.PluginApi.React,{useState:EA,useEffect:HA,useCallback:yA}=mA;const vA=window.PluginApi.React,{useEffect:IA}=vA,KA='a, button, input, [tabindex]:not([tabindex="-1"])';function bA(A,e=!0){const t=vA.useRef(null);return IA((()=>{if(!e)return;const r=t.current;if(!r)return;const n=document.activeElement;(()=>{const A=r.querySelectorAll(KA);A.length>0?A[0].focus():(r.hasAttribute("tabindex")||r.setAttribute("tabindex","-1"),r.focus())})();const s=e=>{if(t.current){if("Escape"===e.key)return e.preventDefault(),void A();if("Tab"===e.key){const A=Array.from(t.current.querySelectorAll(KA)).filter((A=>!A.hasAttribute("disabled")));if(0===A.length)return void e.preventDefault();const r=A[0],n=A[A.length-1],s=document.activeElement;e.shiftKey?s!==r&&t.current.contains(s)||(e.preventDefault(),n.focus()):s!==n&&t.current.contains(s)||(e.preventDefault(),r.focus())}}};return document.addEventListener("keydown",s,!0),()=>{document.removeEventListener("keydown",s,!0),n&&"function"==typeof n.focus&&n.focus()}}),[e,A]),t}const LA=window.PluginApi.React,{useCallback:DA}=LA;const xA=window.PluginApi.React;function SA({performer:A,isLoading:e,isKeyboardSelected:t,isSelected:r,onToggle:n}){const s=function(A=400){return DA((e=>{e&&(e.style.opacity="0",e.style.transition=`opacity ${A}ms ease`,e.complete&&e.naturalWidth>0?e.style.opacity="1":(e.addEventListener("load",(()=>{e.style.opacity="1"}),{once:!0}),e.addEventListener("error",(()=>{e.style.opacity="1"}),{once:!0})))}),[A])}(),o=A.confidence||0,i=o>=90?"visage-confidence-excellent":o>=70?"visage-confidence-good":"visage-confidence-uncertain",a=o>=90?"Excellent match":o>=70?"Good match":"Uncertain match",B=["visage-performer-card",e?"visage-loading":"",t?"visage-keyboard-selected":"",r?"visage-performer-selected":""].filter(Boolean).join(" ");function c(){e||n(A.id)}return xA.createElement("div",{className:B,"data-performer-id":A.id,onClick:c,onKeyPress:function(A){"Enter"!==A.key&&" "!==A.key||(A.preventDefault(),c())},role:"button",tabIndex:t?0:-1,"aria-pressed":r,"aria-label":`${r?"Deselect":"Select"} ${A.name}`},xA.createElement("div",{className:"visage-card-portrait"},xA.createElement("img",{ref:s,className:"visage-portrait-img",alt:A.name,src:A.image}),xA.createElement("div",{className:"visage-card-img-overlay"}),xA.createElement("div",{className:`visage-confidence-strip ${i}`,style:{width:`${o}%`}}),A.country&&xA.createElement("span",{className:`visage-country-flag fi fi-${A.country.toLowerCase()}`}),r&&xA.createElement("div",{className:"visage-card-check-badge"},xA.createElement("svg",{width:16,height:16,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:3},xA.createElement("polyline",{points:"20 6 9 17 4 12"}))),xA.createElement("div",{className:"visage-card-meta"},xA.createElement("a",{href:`https://stashdb.org/performers/${A.id}`,target:"_blank",rel:"noopener noreferrer",className:"visage-performer-name",onClick:A=>A.stopPropagation()},A.name),xA.createElement("div",{className:"visage-card-stats"},xA.createElement("div",{className:`visage-confidence-dot ${i}`}),xA.createElement("span",{className:"visage-confidence-pct"},`${o}%`),xA.createElement("span",{className:"visage-confidence-lbl"},a)))))}const MA=window.PluginApi.React,{useCallback:TA,useEffect:OA,useRef:kA,useState:VA}=MA;function GA(){var A,e,t,r;const n=$(),{state:s,setLoading:o,showMatchModal:i}=B(),{matches:a,loading:c}=s,l=Array.isArray(a)?a:[],[g,u]=MA.useState(0),[w,Q]=VA(new Map),[d,C]=VA(!1),[h,U]=VA(!1),[F,f]=VA(new Set),[p,m]=VA((()=>{const A=localStorage.getItem("visage:minConfidence:match");if(null!==A){const e=Number(A);if(!Number.isNaN(e))return e}const e=l.flatMap((A=>A.performers.map((A=>A.confidence||0)))).filter((A=>A>0)).sort(((A,e)=>e-A));return e.length>=3?e[2]:0})),E=bA(L,s.showMatchModal),H=kA(!1);OA((()=>{requestAnimationFrame((()=>U(!0)));const[A,e]=j();return"scenes"===A&&(async()=>{var A,t,r,n;try{const s=window.PluginApi.GQL,o=window.PluginApi.utils.StashService.getClient(),i=await o.query({query:s.FindSceneDocument,variables:{id:e}}),a=new Set;for(const e of null!==(r=null===(t=null===(A=i.data)||void 0===A?void 0:A.findScene)||void 0===t?void 0:t.performers)&&void 0!==r?r:[])for(const A of null!==(n=e.stash_ids)&&void 0!==n?n:[])A.stash_id&&a.add(A.stash_id);H.current||f(a)}catch(A){}})(),()=>{H.current=!0}}),[]);const y=TA((A=>{var e;const t=l[A];return(null===(e=null==t?void 0:t.performers)||void 0===e?void 0:e.filter((A=>(A.confidence||0)>=p)).length)||0}),[l,p]),v=TA(((A,e)=>{const t=l[A];if(!t)return;const r=t.performers[e];r&&!c[`add-performer-${r.id}`]&&D(A,r.id)}),[l,c]),{selectedFaceIndex:I,selectedCardIndex:K,hasNavigated:b}=function({faceCount:A,getPerformerCount:e,onAssign:t,enabled:r}){const[n,s]=EA(0),[o,i]=EA(0),[a,B]=EA(!1),c=yA((a=>{if(!r)return;const c=e(n);switch(a.key){case"ArrowRight":a.preventDefault(),B(!0),o0&&i(o-1);break;case"ArrowDown":a.preventDefault(),B(!0),n0&&(s(n-1),i(0));break;case"Enter":case" ":a.preventDefault(),B(!0),t(n,o)}}),[r,A,n,o,e,t]);return HA((()=>{if(r)return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)}),[c,r]),{selectedFaceIndex:n,selectedCardIndex:o,hasNavigated:a,setSelectedFaceIndex:s,setSelectedCardIndex:i}}({faceCount:l.length,getPerformerCount:y,onAssign:v,enabled:s.showMatchModal});function L(){U(!1),setTimeout((()=>i(!1)),300)}function D(A,e){F.has(e)||Q((t=>{const r=new Map(t);return r.get(A)===e?r.delete(A):r.set(A,e),r}))}OA((()=>{u(I)}),[I]);const x=c["face-search"]&&0===l.length,S=l[g],M=w.get(g),T=null!==(e=null===(A=null==S?void 0:S.performers)||void 0===A?void 0:A.findIndex((A=>F.has(A.id))))&&void 0!==e?e:-1,O=b?K:M?null!==(r=null===(t=null==S?void 0:S.performers)||void 0===t?void 0:t.findIndex((A=>A.id===M)))&&void 0!==r?r:0:T>=0?T:0;return MA.createElement("div",{className:"visage-modal-backdrop "+(h?"visage-visible":""),onClick:A=>{A.target===A.currentTarget&&L()}},MA.createElement("div",{ref:E,className:"visage-modal "+(h?"visage-visible":""),role:"dialog","aria-modal":"true"},MA.createElement("div",{className:"visage-modal-header"},MA.createElement("div",{className:"visage-modal-title"},MA.createElement("h2",null,"CURRENT FRAME"),!x&&MA.createElement("span",{className:"visage-match-count"},`${l.length} faces found · ${w.size} selected`+(F.size>0?` · ${F.size} in scene`:""))),MA.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},MA.createElement("button",{className:"visage-modal-close",onClick:L,"aria-label":"Close"},MA.createElement("svg",{width:20,height:20,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2},MA.createElement("line",{x1:18,y1:6,x2:6,y2:18}),MA.createElement("line",{x1:6,y1:6,x2:18,y2:18}))))),x?MA.createElement("div",{className:"visage-modal-loading"},MA.createElement("div",{className:"visage-face-scan"},MA.createElement("span",{className:"visage-face-scan-corner"}),MA.createElement("span",{className:"visage-face-scan-corner"}),MA.createElement("span",{className:"visage-face-scan-corner"}),MA.createElement("span",{className:"visage-face-scan-corner"}),MA.createElement("svg",{viewBox:"0 0 100 120",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round"},MA.createElement("path",{d:"M50 7 C29 7 15 22 16 45 C16.5 57 20 65 24 71"}),MA.createElement("path",{d:"M50 7 C71 7 85 22 84 45 C83.5 57 80 65 76 71"}),MA.createElement("path",{strokeWidth:1.2,d:"M50 15 C37 15 27 26 27 42"}),MA.createElement("path",{strokeWidth:1.2,d:"M50 15 C63 15 73 26 73 42"}),MA.createElement("path",{d:"M27 42 C27 61 34 77 43 85 C46 88 54 88 57 85 C66 77 73 61 73 42"}),MA.createElement("path",{d:"M33 52 C36.5 55 42.5 55 46 52"}),MA.createElement("path",{d:"M54 52 C57.5 55 63.5 55 67 52"}),MA.createElement("path",{strokeWidth:1.2,d:"M35 54.6 L33.8 57 M39.5 55.6 L39 58.2 M44 54.6 L45 57"}),MA.createElement("path",{strokeWidth:1.2,d:"M56 54.6 L55 57 M60.5 55.6 L61 58.2 M65 54.6 L66.2 57"}),MA.createElement("path",{strokeWidth:1.2,d:"M32 46 C36 43.6 43 43.6 47 46"}),MA.createElement("path",{strokeWidth:1.2,d:"M53 46 C57 43.6 64 43.6 68 46"}),MA.createElement("path",{strokeWidth:1.2,d:"M50 54 C50 60 49.4 63 48.8 65.2 C49.6 66.4 50.4 66.4 51.2 65.2"}),MA.createElement("path",{d:"M42 75 C45 72.5 48 73.8 50 74.8 C52 73.8 55 72.5 58 75 C55 79.5 45 79.5 42 75 Z"}),MA.createElement("path",{strokeWidth:1.2,d:"M44.5 80.5 C47 82.5 53 82.5 55.5 80.5"}),MA.createElement("path",{strokeWidth:1.2,d:"M42 87.5 C42 94 40.5 99 38 104"}),MA.createElement("path",{strokeWidth:1.2,d:"M58 87.5 C58 94 59.5 99 62 104"}),...[[25,52],[75,52],[35,68],[65,68],[60.5,82]].map((([A,e],t)=>MA.createElement("circle",{key:t,className:"visage-face-scan-dot",cx:A,cy:e,r:4===t?1.5:1.8,stroke:"none"})))),MA.createElement("div",{className:"visage-face-scan-beam"})),MA.createElement("span",{className:"visage-loading-label"},"Scanning • face recognition…")):MA.createElement(MA.Fragment,null,MA.createElement("div",{className:"visage-face-tabs"},l.map(((A,e)=>0===y(e)?null:MA.createElement("button",{key:e,className:"visage-face-tab "+(e===g?"visage-face-tab-active":""),onClick:()=>u(e)},MA.createElement("img",{src:`data:image/jpg;base64,${A.image}`,alt:`Face ${e+1}`,className:"visage-face-tab-image"}))))),MA.createElement("div",{className:"visage-sprite-toolbar",style:{padding:"0.5rem 1.5rem"}},MA.createElement("div",{className:"visage-sprite-threshold"},MA.createElement("span",{className:"visage-threshold-text"},"Min conf."),MA.createElement("input",{type:"range",min:0,max:100,step:5,value:p,onChange:A=>{const e=Number(A.target.value);m(e),localStorage.setItem("visage:minConfidence:match",String(e))},title:`Minimum confidence: ${p}%`}),MA.createElement("span",{className:"visage-sprite-threshold-label"},`${p}%`))),MA.createElement("div",{className:"visage-modal-body"},MA.createElement("div",{className:"visage-left-panel"},S&&MA.createElement(MA.Fragment,null,MA.createElement("div",null,MA.createElement("span",{className:"visage-section-label"},"Detected"),MA.createElement("div",{className:"visage-detect-frame"},MA.createElement("img",{src:`data:image/jpg;base64,${S.image}`,alt:"Detected face",className:"visage-detect-image"}))),S.performers[O]&&MA.createElement(MA.Fragment,null,MA.createElement("div",{className:"visage-vs-divider"},"vs"),MA.createElement("div",null,MA.createElement("span",{className:"visage-section-label-name"},S.performers[O].name),MA.createElement("div",{className:"visage-match-frame"},MA.createElement("img",{src:S.performers[O].image,alt:S.performers[O].name,className:"visage-match-image"})))))),MA.createElement("div",{className:"visage-right-panel"},MA.createElement("div",{className:"visage-performer-grid"},null==S?void 0:S.performers.filter((A=>(A.confidence||0)>=p)).map(((A,e)=>MA.createElement(SA,{key:A.id,performer:A,isLoading:c[`add-performer-${A.id}`]||!1,isKeyboardSelected:b&&I===g&&K===e,isSelected:F.has(A.id)||w.get(g)===A.id,onToggle:A=>D(g,A)})))))),MA.createElement("div",{className:"visage-modal-footer"},MA.createElement("div",{className:"visage-footer-main"},MA.createElement("a",{className:"visage-ext-patreon-btn",href:"https://www.patreon.com/cw/cc12340",target:"_blank",rel:"noopener noreferrer"},MA.createElement("svg",{width:13,height:13,viewBox:"0 0 24 24",fill:"currentColor"},MA.createElement("circle",{cx:15,cy:9,r:7}),MA.createElement("rect",{x:2,y:2,width:4,height:20,rx:1})),"Support on Patreon"),MA.createElement("div",{className:"visage-progress-info"},MA.createElement("span",{className:"visage-matches-assigned"},w.size>0?`${w.size} of ${l.length} selected`:F.size>0?`${l.length} faces found · all in scene`:`${l.length} faces found · click to select`),MA.createElement("div",{className:"visage-keyboard-hints"},MA.createElement("kbd",null,"↑↓")," Switch faces • ",MA.createElement("kbd",null,"←→")," Select performers • ",MA.createElement("kbd",null,"Enter")," Select performer")),MA.createElement("div",{className:"visage-button-group"},l.some((A=>A.performers.some((A=>A.confidence>=90&&!F.has(A.id)&&w.get(g)!==A.id))))&&MA.createElement("button",{className:"visage-btn visage-btn-secondary",onClick:async function(){for(let A=0;Ae.confidence>=90&&!F.has(e.id)&&w.get(A)!==e.id)).sort(((A,e)=>e.confidence-A.confidence))[0];e&&D(A,e.id)}}},MA.createElement("svg",{width:16,height:16,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2},MA.createElement("path",{d:"M9 11l3 3 8-8"})),"Select Best Matches"),MA.createElement("button",{className:"visage-btn visage-btn-primary",onClick:async function(){var A,e,t,r,s,i,a,B,c;const l=Array.from(w.values()).filter((A=>!F.has(A)));if(0===l.length)return void L();C(!0);const[g,u]=j();try{for(const i of l){const a=`add-performer-${i}`;o(a,!0);try{let o=await k(i),a=i;if(0===o.length){const o=await R(i);if(!o){null===(e=null===(A=null==n?void 0:n.toast)||void 0===A?void 0:A.warning)||void 0===e||e.call(A,`Could not import performer ${i}. Configure a stashbox in Settings.`);continue}const B=await Z(o,i),c=await X(B);if(c.errors){null===(r=null===(t=null==n?void 0:n.toast)||void 0===t?void 0:t.error)||void 0===r||r.call(t,"Failed to create performer: "+(null===(s=c.errors[0])||void 0===s?void 0:s.message));continue}a=c.data.performerCreate.id}else a=o[0].id;await q(g,u,a)}finally{o(a,!1)}}null===(a=null===(i=null==n?void 0:n.toast)||void 0===i?void 0:i.success)||void 0===a||a.call(i,`Added ${l.length} performer${1!==l.length?"s":""} to the ${"scenes"===g?"scene":"image"}.`),L()}catch(A){console.log("[Visage] addConfirmed error:",A),null===(c=null===(B=null==n?void 0:n.toast)||void 0===B?void 0:B.error)||void 0===c||c.call(B,"Failed to add performers: "+AA(A))}finally{C(!1)}},disabled:0===w.size||d},d?"Adding...":`Done (${w.size})`)))))))}const NA=window.PluginApi.React,{useEffect:PA,useMemo:RA,useState:XA,useRef:JA,useCallback:WA}=NA;function YA(A){if(!isFinite(A)||A<0)return"-:--";const e=Math.floor(A/60),t=Math.floor(A%60);return`${e.toString().padStart(2,"0")}:${t.toString().padStart(2,"0")}`}function _A(){const A=$(),{state:e,showSpriteModal:t,clearSpriteResult:r,setLoading:n}=B(),{spriteResult:s,loading:o,scanProgress:i,scanProgressDesc:a}=e,[c,l]=XA(!1),[g,u]=XA(new Set),[w,Q]=XA({}),[d,C]=XA(new Set),[h,U]=XA(!1),[F,f]=XA("confidence"),[p,m]=XA((()=>{const A=localStorage.getItem("visage:minConfidence:sprite"),e=null===A?NaN:Number(A);return Number.isFinite(e)?e:20})),[E,y]=XA(0),[v,I]=XA(new Set),K=o["face-detection"]&&null===s,b=JA(!1);PA((()=>{requestAnimationFrame((()=>l(!0)));const[A,e]=j();return"scenes"===A&&(async()=>{var A,t,r,n;try{const s=window.PluginApi.GQL,o=window.PluginApi.utils.StashService.getClient(),i=await o.query({query:s.FindSceneDocument,variables:{id:e}}),a=new Set;for(const e of null!==(r=null===(t=null===(A=i.data)||void 0===A?void 0:A.findScene)||void 0===t?void 0:t.performers)&&void 0!==r?r:[])for(const A of null!==(n=e.stash_ids)&&void 0!==n?n:[])A.stash_id&&a.add(A.stash_id);b.current||I(a)}catch(A){}})(),()=>{b.current=!0}}),[]);const L=RA((()=>(null==s?void 0:s.performers)?Object.values(s.performers).sort(((A,e)=>e.confidence-A.confidence)):[]),[s]),D=RA((()=>{var A;let e=Object.values(null!==(A=null==s?void 0:s.performers)&&void 0!==A?A:{});p>0&&(e=e.filter((A=>A.confidence>=p)));const t=[...e];switch(F){case"name":t.sort(((A,e)=>A.name.localeCompare(e.name)));break;case"hits":t.sort(((A,e)=>e.hit_count-A.hit_count));break;default:t.sort(((A,e)=>e.confidence-A.confidence))}return t}),[s,p,F]),x=RA((()=>{var A,e,t;let r=0;for(const n of L){const s=Array.isArray(n.time_ranges)?n.time_ranges:Object.values(null!==(A=n.time_ranges)&&void 0!==A?A:{});for(const A of s){const n=A,s=Number(null!==(t=null!==(e=null==n?void 0:n[1])&&void 0!==e?e:null==n?void 0:n.end)&&void 0!==t?t:0);s>r&&(r=s)}}return r||600}),[L]);async function S(A){var e;try{const t=await k(A);if(b.current)return;if(t.length>0)return void Q((e=>({...e,[A]:{id:t[0].id,image:`/performer/${t[0].id}/image`}})));const r=await R(A);if(b.current)return;(null===(e=null==r?void 0:r.images)||void 0===e?void 0:e[0])?Q((e=>({...e,[A]:{id:A,image:r.images[0]}}))):Q((e=>({...e,[A]:{id:A,image:null}})))}catch(e){b.current||Q((e=>({...e,[A]:{id:A,image:null}})))}finally{b.current||C((e=>{const t=new Set(e);return t.delete(A),t}))}}function M(A){u((e=>{const t=new Set(e);return t.has(A)?t.delete(A):t.add(A),t}))}function T(){l(!1),setTimeout((()=>{r(),t(!1)}),300)}PA((()=>{if(!c)return;const A=D.length;if(A)return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e);function e(e){var t;if("ArrowRight"===e.key||"ArrowDown"===e.key)e.preventDefault(),y((e=>(e+1)%A));else if("ArrowLeft"===e.key||"ArrowUp"===e.key)e.preventDefault(),y((e=>(e-1+A)%A));else if(" "===e.key||"Enter"===e.key){if("INPUT"===(null===(t=e.target)||void 0===t?void 0:t.tagName))return;e.preventDefault();const A=D[E];A&&M(A.id)}}}),[c,D,E]),PA((()=>{for(const A of L)A.id in w||d.has(A.id)||(C((e=>new Set(e).add(A.id))),S(A.id))}),[L]);const O=bA(T,!0);return NA.createElement("div",{className:"visage-modal-backdrop "+(c?"visage-visible":""),onClick:A=>{A.target===A.currentTarget&&T()}},NA.createElement("div",{ref:O,className:"visage-modal visage-sprite-modal "+(c?"visage-visible":""),role:"dialog","aria-modal":"true"},NA.createElement("div",{className:"visage-modal-header"},NA.createElement("div",{className:"visage-modal-title"},NA.createElement("h2",null,"SCENE PERFORMERS"),!K&&NA.createElement("span",{className:"visage-match-count"},`${L.length} found · ${g.size} confirmed`)),NA.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},NA.createElement("button",{className:"visage-modal-close",onClick:T,"aria-label":"Close"},NA.createElement("svg",{width:20,height:20,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2},NA.createElement("line",{x1:18,y1:6,x2:6,y2:18}),NA.createElement("line",{x1:6,y1:6,x2:18,y2:18})))),!K&&NA.createElement("div",{className:"visage-sprite-toolbar"},NA.createElement("div",{className:"visage-sprite-sort"},["confidence","name","hits"].map((A=>NA.createElement("button",{key:A,className:"visage-sprite-sort-btn"+(F===A?" visage-active":""),onClick:()=>{f(A),y(0)}},A.charAt(0).toUpperCase()+A.slice(1))))),NA.createElement("div",{className:"visage-sprite-threshold"},NA.createElement("span",{className:"visage-threshold-text"},"Min conf."),NA.createElement("input",{type:"range",min:0,max:100,step:5,value:p,onChange:A=>{const e=Number(A.target.value);m(e),localStorage.setItem("visage:minConfidence:sprite",String(e))},title:`Minimum confidence: ${p}%`}),NA.createElement("span",{className:"visage-sprite-threshold-label"},`${p}%`)))),K?NA.createElement("div",{className:"visage-modal-loading"},NA.createElement("div",{className:"visage-conveyor"},NA.createElement("div",{className:"visage-conveyor-track"},Array.from({length:14},((A,e)=>NA.createElement("div",{key:e,className:"visage-conveyor-frame"})))),NA.createElement("div",{className:"visage-conveyor-beam"}),NA.createElement("div",{className:"visage-conveyor-rail"})),(i>0||a)&&NA.createElement("div",{className:"visage-scan-progress"},NA.createElement("div",{className:"visage-scan-progress-bar"},NA.createElement("div",{className:"visage-scan-progress-fill",style:{width:`${Math.round(100*i)}%`}}))),NA.createElement("span",{className:"visage-loading-label"},a||"Visage Scanning…"),NA.createElement("button",{className:"visage-btn visage-btn-secondary",onClick:()=>{H=!0,n("face-detection",!1),T()},style:{marginTop:12}},"Cancel")):NA.createElement(NA.Fragment,null,NA.createElement("div",{className:"visage-sprite-body"},0===L.length?NA.createElement("div",{className:"visage-sprite-empty"},NA.createElement("p",null,"No performers identified in this sprite.")):NA.createElement("div",{className:"visage-sprite-grid"},D.map(((A,e)=>{const n=v.has(A.id),s=g.has(A.id)||n,o=e===E,i=w[A.id],a=null==i?void 0:i.image,B=d.has(A.id),c=(u=A.confidence)>=90?"visage-confidence-excellent":u>=70?"visage-confidence-good":"visage-confidence-uncertain";var u;const Q=(C=A.time_ranges,[...Array.isArray(C)?C:Object.values(null!=C?C:{})].sort(((A,e)=>{var t,r,n,s;return Number(null!==(r=null!==(t=null==A?void 0:A[0])&&void 0!==t?t:null==A?void 0:A.start)&&void 0!==r?r:0)-Number(null!==(s=null!==(n=null==e?void 0:e[0])&&void 0!==n?n:null==e?void 0:e.start)&&void 0!==s?s:0)})));var C;const U=function(A){return(Array.isArray(A)?A:Object.values(null!=A?A:{})).map((A=>{var e,t,r,n,s,o;return{left:Number(null!==(t=null!==(e=null==A?void 0:A[0])&&void 0!==e?e:null==A?void 0:A.start)&&void 0!==t?t:0)/x*100,width:Math.max((Number(null!==(n=null!==(r=null==A?void 0:A[1])&&void 0!==r?r:null==A?void 0:A.end)&&void 0!==n?n:0)-Number(null!==(o=null!==(s=null==A?void 0:A[0])&&void 0!==s?s:null==A?void 0:A.start)&&void 0!==o?o:0))/x*100,.3)}}))}(Q),F=["visage-sprite-card",s?"visage-sprite-confirmed":"",o?"visage-sprite-focused":"",h?"visage-sprite-disabled":""].filter(Boolean).join(" ");return NA.createElement("div",{key:A.id,className:F,onClick:()=>M(A.id),role:"button",tabIndex:0,"aria-pressed":s},NA.createElement("div",{className:"visage-sprite-compare"},NA.createElement("div",{className:"visage-sprite-face"},NA.createElement("img",{src:`data:image/jpeg;base64,${A.thumbnail}`,alt:"Detected face",className:"visage-sprite-face-img"}),NA.createElement("span",{className:"visage-sprite-label"},"SPRITE")),NA.createElement("div",{className:"visage-sprite-vs"},NA.createElement("span",null,"vs")),NA.createElement("div",{className:"visage-sprite-performer-img"},NA.createElement("div",{className:"visage-sprite-img-placeholder"},NA.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2},NA.createElement("path",{d:"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}),NA.createElement("circle",{cx:12,cy:7,r:4}))),B&&NA.createElement("div",{className:"visage-sprite-img-loading"}),a&&NA.createElement("img",{src:a,alt:A.name,className:"visage-sprite-performer-img-src",onError:A=>{A.target.remove()}}),NA.createElement("span",{className:"visage-sprite-label"},"STASH")),n&&NA.createElement("div",{className:"visage-sprite-in-scene"},"In scene"),s&&!n&&NA.createElement("div",{className:"visage-sprite-check-badge"},NA.createElement("svg",{width:18,height:18,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:3},NA.createElement("polyline",{points:"20 6 9 17 4 12"})))),NA.createElement("div",{className:"visage-sprite-info"},NA.createElement("div",{className:"visage-sprite-summary"},function({confidence:A,confClass:e}){const t=46,r=2*Math.PI*21,n=r*(1-A/100);return NA.createElement("div",{className:"visage-sprite-ring"},NA.createElement("svg",{width:t,height:t,viewBox:"0 0 46 46"},NA.createElement("circle",{cx:23,cy:23,r:21,fill:"none",stroke:"rgba(255,255,255,0.08)",strokeWidth:4}),NA.createElement("circle",{className:`visage-sprite-ring-fill ${e}`,cx:23,cy:23,r:21,fill:"none",strokeWidth:4,strokeDasharray:r,strokeDashoffset:n,strokeLinecap:"round",transform:"rotate(-90 23 23)"})),NA.createElement("span",{className:"visage-sprite-ring-label"},`${A}%`))}({confidence:A.confidence,confClass:c}),NA.createElement("div",{className:"visage-sprite-summary-text"},NA.createElement("a",{href:A.performer_url,target:"_blank",rel:"noopener noreferrer",className:"visage-sprite-performer-link",onClick:A=>A.stopPropagation()},A.name),NA.createElement("div",{className:"visage-sprite-stats-row"},NA.createElement("span",{className:"visage-sprite-stat"},`${A.hit_count} hit${1!==A.hit_count?"s":""}`),NA.createElement("span",{className:"visage-sprite-stat-sep"},"·"),NA.createElement("span",{className:"visage-sprite-stat"},`${YA(Q.reduce(((A,e)=>{var t,r,n,s;return A+(Number(null!==(r=null!==(t=null==e?void 0:e[1])&&void 0!==t?t:null==e?void 0:e.end)&&void 0!==r?r:0)-Number(null!==(s=null!==(n=null==e?void 0:e[0])&&void 0!==n?n:null==e?void 0:e.start)&&void 0!==s?s:0))}),0))} total`)))),NA.createElement("div",{className:"visage-sprite-timeline-wrap"},NA.createElement("div",{className:"visage-sprite-timeline"},U.map(((A,e)=>{var n,s,o,i;const a=Q[e],B=Number(null!==(s=null!==(n=null==a?void 0:a[0])&&void 0!==n?n:null==a?void 0:a.start)&&void 0!==s?s:0),g=Number(null!==(i=null!==(o=null==a?void 0:a[1])&&void 0!==o?o:null==a?void 0:a.end)&&void 0!==i?i:0);return NA.createElement("div",{key:e,className:`visage-sprite-timeline-seg ${c}`,style:{left:`${A.left}%`,width:`${A.width}%`},onClick:A=>{A.stopPropagation(),function(A){const[e,n]=j();"scenes"===e&&(l(!1),setTimeout((()=>{r(),t(!1),window.location.href=`${window.location.pathname}?t=${Math.floor(A)}`}),300))}(B)},title:`${YA(B)}–${YA(g)}`})}))),NA.createElement("div",{className:"visage-sprite-timeline-labels"},NA.createElement("span",null,"00:00"),NA.createElement("span",null,YA(x)))),n&&NA.createElement("div",{className:"visage-sprite-hint visage-sprite-hint-done"},NA.createElement("span",null,"Already in scene")),!s&&!n&&NA.createElement("div",{className:"visage-sprite-hint"},NA.createElement("span",null,"Click to confirm")),s&&!n&&NA.createElement("div",{className:"visage-sprite-hint visage-sprite-hint-done"},NA.createElement("span",null,"Confirmed"))))})))),NA.createElement("div",{className:"visage-modal-footer"},NA.createElement("div",{className:"visage-footer-main"},NA.createElement("a",{className:"visage-ext-patreon-btn",href:"https://www.patreon.com/cw/cc12340",target:"_blank",rel:"noopener noreferrer"},NA.createElement("svg",{width:13,height:13,viewBox:"0 0 24 24",fill:"currentColor"},NA.createElement("circle",{cx:15,cy:9,r:7}),NA.createElement("rect",{x:2,y:2,width:4,height:20,rx:1})),"Support on Patreon"),NA.createElement("div",{className:"visage-progress-info"},g.size>0?NA.createElement("span",{className:"visage-matches-assigned"},`${g.size} of ${L.length} confirmed`):NA.createElement("span",{className:"visage-matches-assigned"},D.length!v.has(A)));if(0!==Q.length)try{for(const i of Q){const a=`sprite-add-${i}`;n(a,!0);try{let n=w[i],a=null==n?void 0:n.id;if(!a||a===i)if((null==n?void 0:n.image)&&n.id!==i)a=n.id;else{const n=await k(i);if(n.length>0)a=n[0].id;else{const n=await R(i);if(!n){null===(t=null===(e=null==A?void 0:A.toast)||void 0===e?void 0:e.warning)||void 0===t||t.call(e,`Could not import performer ${i}. Configure a stashbox in Settings.`);continue}const B=await Z(n,i),c=await X(B);if(c.errors){null===(s=null===(r=null==A?void 0:A.toast)||void 0===r?void 0:r.error)||void 0===s||s.call(r,"Failed to create performer: "+(null===(o=c.errors[0])||void 0===o?void 0:o.message));continue}a=c.data.performerCreate.id}}await q(l,u,a)}finally{n(a,!1)}}null===(a=null===(i=null==A?void 0:A.toast)||void 0===i?void 0:i.success)||void 0===a||a.call(i,`Added ${Q.length} performer${1!==Q.length?"s":""} to the ${"scenes"===l?"scene":"image"}.`),T()}catch(e){console.error("[Visage] add performers error:",e),null===(c=null===(B=null==A?void 0:A.toast)||void 0===B?void 0:B.error)||void 0===c||c.call(B,"Failed to add performers: "+AA(e))}finally{U(!1)}else T()},disabled:0===g.size||h},h?"Adding...":`Done (${g.size})`)))))))}const{React:ZA,ReactDOM:qA}=PluginApi;function jA(A){const e=A.textContent||"";return e.includes("Delete")&&(e.includes("Generate")||e.includes("Rescan")||e.includes("Submit"))}function zA(A){const e=document.createElement("hr");e.className="visage-menu-divider dropdown-divider",A.insertBefore(e,A.firstElementChild);const t=document.createElement("div");return t.style.cssText="display:flex;flex-direction:column;flex-shrink:0;",A.insertBefore(t,e),t}function $A(A){const[e,t]=ZA.useState(null),r=ZA.useRef(!1);return ZA.useEffect((()=>{function A(){if(r.current){if(e&&document.contains(e))return!0;r.current=!1}for(const A of document.querySelectorAll(".dropdown-menu"))if(jA(A)&&!A.querySelector(".visage-menu-divider"))return t(zA(A)),r.current=!0,!0;return!1}if(A())return;const n=setInterval((()=>{A()&&(clearInterval(n),s.disconnect())}),300),s=new MutationObserver((()=>{A()&&(clearInterval(n),s.disconnect())}));return s.observe(document.body,{childList:!0,subtree:!0}),()=>{clearInterval(n),s.disconnect()}}),[e]),e?qA.createPortal(A(e),e):null}function Ae(){return $A((A=>ZA.createElement(ZA.Fragment,null,ZA.createElement(dA,{menuItem:!0}),ZA.createElement(pA,{menuItem:!0}))))}function ee(){return $A((A=>ZA.createElement(dA,{menuItem:!0})))}function te(){const{state:A}=B();return qA.createPortal(ZA.createElement(ZA.Fragment,null,A.showMatchModal&&ZA.createElement(GA,null),A.showSpriteModal&&ZA.createElement(_A,null)),document.body)}function re(){return ZA.useEffect((()=>{function A(){return!!getComputedStyle(document.documentElement).getPropertyValue("--color-dim").trim()&&(function(){try{const A=getComputedStyle(document.documentElement),e=getComputedStyle(document.body),t=A.getPropertyValue("--color-dim").trim()||A.getPropertyValue("--color-dark").trim()||A.getPropertyValue("--color-surface").trim()||e.backgroundColor,r=A.getPropertyValue("--color-text").trim()||e.color,n=A.getPropertyValue("--color-text-dim").trim()||"",s=A.getPropertyValue("--color-border").trim()||"",o=A.getPropertyValue("--color-dark").trim()||"",i="#137cbd",a=A.getPropertyValue("--primary").trim();let B="";(t||r||n||s||o)&&a===i&&(B=A.getPropertyValue("--color-accent").trim()||A.getPropertyValue("--color-silver").trim()||A.getPropertyValue("--color-star").trim()||r);const c=document.documentElement;e.backgroundColor&&c.style.setProperty("--v-bg",e.backgroundColor),t&&c.style.setProperty("--v-surface",t),r&&c.style.setProperty("--v-text",r),n&&c.style.setProperty("--v-text-2",n),B&&c.style.setProperty("--v-accent",B),s&&"#000"!==s&&"rgb(0, 0, 0)"!==s&&c.style.setProperty("--v-border",s),o&&c.style.setProperty("--v-nav-bg",o)}catch(A){console.warn("[Visage] theme detection failed:",A)}}(),!0)}const e=setTimeout(A,200),t=setInterval((()=>{A()&&clearInterval(t)}),600),r=setTimeout((()=>clearInterval(t)),15e3);return()=>{clearTimeout(e),clearInterval(t),clearTimeout(r)}}),[]),null}function ne({scenarioId:A}){return ZA.createElement(a,{scenario:"images",scenarioId:A},ZA.createElement(re,null),ZA.createElement(ee,null),ZA.createElement(te,null))}let se=null;function oe(A){se&&(qA.unmountComponentAtNode(se),se.remove()),se=document.createElement("div"),se.id="visage-image-root",se.style.display="contents",document.body.appendChild(se),qA.render(ZA.createElement(ne,{scenarioId:A}),se)}PluginApi.patch.after("ScenePage",((A,e,t)=>{const r=function(A){var e,t;if(null==A?void 0:A.id)return String(A.id);if(null===(t=null===(e=null==A?void 0:A.match)||void 0===e?void 0:e.params)||void 0===t?void 0:t.id)return A.match.params.id;const r=window.location.pathname.match(/\/(scenes|images)\/(\d+)/);return r?r[2]:null}(A);return r?ZA.createElement(a,{scenario:"scenes",scenarioId:r},ZA.createElement(re,null),t,ZA.createElement(Ae,null),ZA.createElement(te,null)):t})),PluginApi.Event.addEventListener("stash:page:image",(A=>{var e,t,r;const n=((null===(r=null===(t=null===(e=A.detail)||void 0===e?void 0:e.data)||void 0===t?void 0:t.location)||void 0===r?void 0:r.pathname)||"").match(/\/images\/(\d+)/);n&&requestAnimationFrame((()=>oe(n[1])))})),PluginApi.Event.addEventListener("stash:location",(A=>{var e,t,r;const n=((null===(r=null===(t=null===(e=A.detail)||void 0===e?void 0:e.data)||void 0===t?void 0:t.location)||void 0===r?void 0:r.pathname)||"").match(/\/images\/(\d+)/);n?requestAnimationFrame((()=>oe(n[1]))):se&&(qA.unmountComponentAtNode(se),se.remove(),se=null)}));const ie=window.location.pathname.match(/\/images\/(\d+)/);ie&&requestAnimationFrame((()=>oe(ie[1])))}(); diff --git a/plugins/visage/visage.yml b/plugins/visage/visage.yml index 4f8f8ebf..1f82ac23 100644 --- a/plugins/visage/visage.yml +++ b/plugins/visage/visage.yml @@ -1,6 +1,6 @@ name: Visage description: Use facial recognition to lookup performers from scene sprites -version: 2.1.0 +version: 2.2.0 url: https://github.com/cc1234475/visage ui: javascript: @@ -8,15 +8,8 @@ ui: css: - visage.css csp: - # connect-src: URLs the plugin is allowed to make API calls to. - # Add your Gradio server here when using a different backend. - # Supports http:// https:// ws:// and wss:// variants. connect-src: - # Remote/huggingface Gradio server - "https://cc1234-stashface-onnx.hf.space" - # Add your own server below: - "http://localhost:7860" - # - "wss://localhost:7860" - # - "https://your-gradio-server.example.com" script-src: - "'self'"