@launchdarkly/session-replay 1.2.3 → 1.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.umd.js CHANGED
@@ -1,14 +1,14 @@
1
- (function(Ye,Gt){typeof exports=="object"&&typeof module<"u"?Gt(exports):typeof define=="function"&&define.amd?define(["exports"],Gt):(Ye=typeof globalThis<"u"?globalThis:Ye||self,Gt(Ye.SessionReplay={}))})(this,function(Ye){"use strict";var Gt=Object.defineProperty,$a=(e,t,s)=>t in e?Gt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,Ue=(e,t,s)=>$a(e,typeof t!="symbol"?t+"":t,s),Rt=(e,t,s)=>new Promise((n,r)=>{var l=m=>{try{f(s.next(m))}catch(h){r(h)}},d=m=>{try{f(s.throw(m))}catch(h){r(h)}},f=m=>m.done?n(m.value):Promise.resolve(m.value).then(l,d);f((s=s.apply(e,t)).next())});const ir={},qa=["debug","log","info","warn","error"],rr=Symbol.for("@launchdarkly/o11y.sdkLogger"),ec=(()=>{try{return ir?.DEBUG==="true"}catch{return!1}})(),vt=(()=>{var e;const t=globalThis,s=(e=t[rr])!=null?e:t[rr]={debugEnabled:!1,suppressDepth:0};return ec&&(s.debugEnabled=!0),s})(),tc=e=>{vt.debugEnabled=e},sc=()=>vt.debugEnabled,As=e=>{vt.suppressDepth++;try{return e()}finally{vt.suppressDepth--}},nc=e=>qa.includes(e)?e:"log",ut=(e,...t)=>{vt.debugEnabled&&As(()=>{var s;try{((s=console[nc(e)])!=null?s:console.log).apply(console,t)}catch{}})},or=Object.create(null),Ie=(e,t,...s)=>{const n=`[@launchdarkly plugins]: (${e}): `;ut(t,n,...s)},_e=(e,t,s,...n)=>{or[`${e}-${t}`]||(or[`${e}-${t}`]=!0,Ie(e,s,...n))};let lr=class{constructor(t,s){Ue(this,"debug"),Ue(this,"name"),this.debug=t,this.name=s}prefix(){let t=`[${Date.now()}]`;return this.name&&(t+=` - ${this.name}`),t}log(...t){this.debug&&As(()=>console.log.apply(console,[this.prefix(),...t]))}warn(...t){(this.debug||sc())&&As(()=>console.warn.apply(console,[this.prefix(),...t]))}};class ar{constructor(){Ue(this,"_sdk"),Ue(this,"_isLoaded",!1),Ue(this,"_isReady",!1),Ue(this,"_callBuffer",[]),Ue(this,"_capacity",1e5),Ue(this,"_droppedEvents",0),Ue(this,"_exceededCapacity",!1),Ue(this,"_logger",new lr),Ue(this,"_pendingStart"),Ue(this,"_lastOp")}_bufferCall(t,s){if(this._isReady)return this._callSdk(t,s);this._enqueue({method:t,args:s})}_callSdk(t,s){try{return this._sdk[t](...s)}catch(n){Ie(`Error executing buffered call to ${t}:`,"error",n)}}_enqueue(t){this._callBuffer.length<this._capacity?(this._callBuffer.push(t),this._exceededCapacity=!1):(this._exceededCapacity||(this._exceededCapacity=!0,Ie("Exceeded event queue capacity. Increase capacity to avoid dropping events.","warn")),this._droppedEvents+=1)}load(t,{ready:s=!0,started:n}={}){this._sdk=t,this._isLoaded=!0;const r=this._pendingStart;this._pendingStart=void 0,s?(this.markReady(),n?this._queueOp("start",()=>Rt(this,null,function*(){yield n})).catch(l=>{Ie("Error starting the SDK","error",l)}).then(()=>r?.resolve()):r?.resolve()):r&&this._runPendingStart(r)}_runPendingStart(t){return Rt(this,null,function*(){try{yield this._start()}catch(s){Ie("Error starting the SDK","error",s)}t.resolve()})}_start(){var t;return this._isLoaded?((t=this._lastOp)==null?void 0:t.kind)==="start"?this._lastOp.promise:this._queueOp("start",()=>Rt(this,null,function*(){try{yield this._startSdk()}finally{this.markReady()}})):this._deferStart()}_stop(t){return this._isLoaded?this._queueOp("stop",()=>Rt(this,null,function*(){try{yield t()}catch(s){Ie("Error stopping the SDK","error",s)}})):(this._cancelPendingStart(),Promise.resolve())}_queueOp(t,s){var n;const r=(n=this._lastOp)==null?void 0:n.promise,l=(r?r.then(s,s):s()).finally(()=>{var d;((d=this._lastOp)==null?void 0:d.promise)===l&&(this._lastOp=void 0)});return this._lastOp={kind:t,promise:l},l}_startSdk(){return Rt(this,null,function*(){})}markReady(){if(!this._isReady){this._isReady=!0;for(const{method:t,args:s}of this._callBuffer)try{this._sdk[t](...s)}catch(n){Ie(`Error executing buffered call to ${t}:`,"error",n)}this._callBuffer=[]}}_deferStart(){if(!this._pendingStart){let t;const s=new Promise(n=>{t=n});this._pendingStart={promise:s,resolve:t}}return this._pendingStart.promise}_cancelPendingStart(){this._pendingStart&&(this._pendingStart.resolve(),this._pendingStart=void 0)}}var ic=Object.defineProperty,rc=Object.defineProperties,oc=Object.getOwnPropertyDescriptors,jt=Object.getOwnPropertySymbols,cr=Object.prototype.hasOwnProperty,ur=Object.prototype.propertyIsEnumerable,_s=(e,t,s)=>t in e?ic(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,ne=(e,t)=>{for(var s in t||(t={}))cr.call(t,s)&&_s(e,s,t[s]);if(jt)for(var s of jt(t))ur.call(t,s)&&_s(e,s,t[s]);return e},At=(e,t)=>rc(e,oc(t)),Wt=(e,t)=>{var s={};for(var n in e)cr.call(e,n)&&t.indexOf(n)<0&&(s[n]=e[n]);if(e!=null&&jt)for(var n of jt(e))t.indexOf(n)<0&&ur.call(e,n)&&(s[n]=e[n]);return s},wt=(e,t,s)=>_s(e,typeof t!="symbol"?t+"":t,s),dt=(e,t,s)=>new Promise((n,r)=>{var l=m=>{try{f(s.next(m))}catch(h){r(h)}},d=m=>{try{f(s.throw(m))}catch(h){r(h)}},f=m=>m.done?n(m.value):Promise.resolve(m.value).then(l,d);f((s=s.apply(e,t)).next())});function _t(e,t){throw new Error(t)}function lc(e){return typeof e=="object"&&e!==null}function ac(e,t){throw new Error("Unexpected invariant triggered.")}const cc=/\r\n|[\n\r]/g;function $s(e,t){let s=0,n=1;for(const r of e.body.matchAll(cc)){if(typeof r.index=="number"||ac(),r.index>=t)break;s=r.index+r[0].length,n+=1}return{line:n,column:t+1-s}}function uc(e){return dr(e.source,$s(e.source,e.start))}function dr(e,t){const s=e.locationOffset.column-1,n="".padStart(s)+e.body,r=t.line-1,l=e.locationOffset.line-1,d=t.line+l,f=t.line===1?s:0,m=t.column+f,h=`${e.name}:${d}:${m}
2
- `,p=n.split(/\r\n|[\n\r]/g),o=p[r];if(o.length>120){const a=Math.floor(m/80),i=m%80,c=[];for(let u=0;u<o.length;u+=80)c.push(o.slice(u,u+80));return h+hr([[`${d} |`,c[0]],...c.slice(1,a+1).map(u=>["|",u]),["|","^".padStart(i)],["|",c[a+1]]])}return h+hr([[`${d-1} |`,p[r-1]],[`${d} |`,o],["|","^".padStart(m)],[`${d+1} |`,p[r+1]]])}function hr(e){const t=e.filter(([n,r])=>r!==void 0),s=Math.max(...t.map(([n])=>n.length));return t.map(([n,r])=>n.padStart(s)+(r?" "+r:"")).join(`
3
- `)}function dc(e){const t=e[0];return t==null||"kind"in t||"length"in t?{nodes:t,source:e[1],positions:e[2],path:e[3],originalError:e[4],extensions:e[5]}:t}let hc=class _a extends Error{constructor(t,...s){var n,r,l;const{nodes:d,source:f,positions:m,path:h,originalError:p,extensions:o}=dc(s);super(t),this.name="GraphQLError",this.path=h??void 0,this.originalError=p??void 0,this.nodes=pr(Array.isArray(d)?d:d?[d]:void 0);const a=pr((n=this.nodes)===null||n===void 0?void 0:n.map(c=>c.loc).filter(c=>c!=null));this.source=f??(a==null||(r=a[0])===null||r===void 0?void 0:r.source),this.positions=m??a?.map(c=>c.start),this.locations=m&&f?m.map(c=>$s(f,c)):a?.map(c=>$s(c.source,c.start));const i=lc(p?.extensions)?p?.extensions:void 0;this.extensions=(l=o??i)!==null&&l!==void 0?l:Object.create(null),Object.defineProperties(this,{message:{writable:!0,enumerable:!0},name:{enumerable:!1},nodes:{enumerable:!1},source:{enumerable:!1},positions:{enumerable:!1},originalError:{enumerable:!1}}),p!=null&&p.stack?Object.defineProperty(this,"stack",{value:p.stack,writable:!0,configurable:!0}):Error.captureStackTrace?Error.captureStackTrace(this,_a):Object.defineProperty(this,"stack",{value:Error().stack,writable:!0,configurable:!0})}get[Symbol.toStringTag](){return"GraphQLError"}toString(){let t=this.message;if(this.nodes)for(const s of this.nodes)s.loc&&(t+=`
1
+ (function(Ye,Gt){typeof exports=="object"&&typeof module<"u"?Gt(exports):typeof define=="function"&&define.amd?define(["exports"],Gt):(Ye=typeof globalThis<"u"?globalThis:Ye||self,Gt(Ye.SessionReplay={}))})(this,function(Ye){"use strict";var Gt=Object.defineProperty,ec=(e,t,s)=>t in e?Gt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,Ue=(e,t,s)=>ec(e,typeof t!="symbol"?t+"":t,s),Rt=(e,t,s)=>new Promise((n,r)=>{var l=m=>{try{f(s.next(m))}catch(h){r(h)}},d=m=>{try{f(s.throw(m))}catch(h){r(h)}},f=m=>m.done?n(m.value):Promise.resolve(m.value).then(l,d);f((s=s.apply(e,t)).next())});const rr={},tc=["debug","log","info","warn","error"],or=Symbol.for("@launchdarkly/o11y.sdkLogger"),sc=(()=>{try{return rr?.DEBUG==="true"}catch{return!1}})(),vt=(()=>{var e;const t=globalThis,s=(e=t[or])!=null?e:t[or]={debugEnabled:!1,suppressDepth:0};return sc&&(s.debugEnabled=!0),s})(),nc=e=>{vt.debugEnabled=e},ic=()=>vt.debugEnabled,As=e=>{vt.suppressDepth++;try{return e()}finally{vt.suppressDepth--}},rc=e=>tc.includes(e)?e:"log",ut=(e,...t)=>{vt.debugEnabled&&As(()=>{var s;try{((s=console[rc(e)])!=null?s:console.log).apply(console,t)}catch{}})},lr=Object.create(null),Ie=(e,t,...s)=>{const n=`[@launchdarkly plugins]: (${e}): `;ut(t,n,...s)},_e=(e,t,s,...n)=>{lr[`${e}-${t}`]||(lr[`${e}-${t}`]=!0,Ie(e,s,...n))};class ar{constructor(t,s){Ue(this,"debug"),Ue(this,"name"),this.debug=t,this.name=s}prefix(){let t=`[${Date.now()}]`;return this.name&&(t+=` - ${this.name}`),t}log(...t){this.debug&&As(()=>console.log.apply(console,[this.prefix(),...t]))}warn(...t){(this.debug||ic())&&As(()=>console.warn.apply(console,[this.prefix(),...t]))}}class cr{constructor(){Ue(this,"_sdk"),Ue(this,"_isLoaded",!1),Ue(this,"_isReady",!1),Ue(this,"_callBuffer",[]),Ue(this,"_capacity",1e5),Ue(this,"_droppedEvents",0),Ue(this,"_exceededCapacity",!1),Ue(this,"_logger",new ar),Ue(this,"_pendingStart"),Ue(this,"_lastOp")}_bufferCall(t,s){if(this._isReady)return this._callSdk(t,s);this._enqueue({method:t,args:s})}_callSdk(t,s){try{return this._sdk[t](...s)}catch(n){Ie(`Error executing buffered call to ${t}:`,"error",n)}}_enqueue(t){this._callBuffer.length<this._capacity?(this._callBuffer.push(t),this._exceededCapacity=!1):(this._exceededCapacity||(this._exceededCapacity=!0,Ie("Exceeded event queue capacity. Increase capacity to avoid dropping events.","warn")),this._droppedEvents+=1)}load(t,{ready:s=!0,started:n}={}){this._sdk=t,this._isLoaded=!0;const r=this._pendingStart;this._pendingStart=void 0,s?(this.markReady(),n?this._queueOp("start",()=>Rt(this,null,function*(){yield n})).catch(l=>{Ie("Error starting the SDK","error",l)}).then(()=>r?.resolve()):r?.resolve()):r&&this._runPendingStart(r)}_runPendingStart(t){return Rt(this,null,function*(){try{yield this._start()}catch(s){Ie("Error starting the SDK","error",s)}t.resolve()})}_start(){var t;return this._isLoaded?((t=this._lastOp)==null?void 0:t.kind)==="start"?this._lastOp.promise:this._queueOp("start",()=>Rt(this,null,function*(){try{yield this._startSdk()}finally{this.markReady()}})):this._deferStart()}_stop(t){return this._isLoaded?this._queueOp("stop",()=>Rt(this,null,function*(){try{yield t()}catch(s){Ie("Error stopping the SDK","error",s)}})):(this._cancelPendingStart(),Promise.resolve())}_queueOp(t,s){var n;const r=(n=this._lastOp)==null?void 0:n.promise,l=(r?r.then(s,s):s()).finally(()=>{var d;((d=this._lastOp)==null?void 0:d.promise)===l&&(this._lastOp=void 0)});return this._lastOp={kind:t,promise:l},l}_startSdk(){return Rt(this,null,function*(){})}markReady(){if(!this._isReady){this._isReady=!0;for(const{method:t,args:s}of this._callBuffer)try{this._sdk[t](...s)}catch(n){Ie(`Error executing buffered call to ${t}:`,"error",n)}this._callBuffer=[]}}_deferStart(){if(!this._pendingStart){let t;const s=new Promise(n=>{t=n});this._pendingStart={promise:s,resolve:t}}return this._pendingStart.promise}_cancelPendingStart(){this._pendingStart&&(this._pendingStart.resolve(),this._pendingStart=void 0)}}var oc=Object.defineProperty,lc=Object.defineProperties,ac=Object.getOwnPropertyDescriptors,jt=Object.getOwnPropertySymbols,ur=Object.prototype.hasOwnProperty,dr=Object.prototype.propertyIsEnumerable,_s=(e,t,s)=>t in e?oc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,ne=(e,t)=>{for(var s in t||(t={}))ur.call(t,s)&&_s(e,s,t[s]);if(jt)for(var s of jt(t))dr.call(t,s)&&_s(e,s,t[s]);return e},At=(e,t)=>lc(e,ac(t)),Wt=(e,t)=>{var s={};for(var n in e)ur.call(e,n)&&t.indexOf(n)<0&&(s[n]=e[n]);if(e!=null&&jt)for(var n of jt(e))t.indexOf(n)<0&&dr.call(e,n)&&(s[n]=e[n]);return s},wt=(e,t,s)=>_s(e,typeof t!="symbol"?t+"":t,s),dt=(e,t,s)=>new Promise((n,r)=>{var l=m=>{try{f(s.next(m))}catch(h){r(h)}},d=m=>{try{f(s.throw(m))}catch(h){r(h)}},f=m=>m.done?n(m.value):Promise.resolve(m.value).then(l,d);f((s=s.apply(e,t)).next())});function _t(e,t){throw new Error(t)}function cc(e){return typeof e=="object"&&e!==null}function uc(e,t){throw new Error("Unexpected invariant triggered.")}const dc=/\r\n|[\n\r]/g;function $s(e,t){let s=0,n=1;for(const r of e.body.matchAll(dc)){if(typeof r.index=="number"||uc(),r.index>=t)break;s=r.index+r[0].length,n+=1}return{line:n,column:t+1-s}}function hc(e){return hr(e.source,$s(e.source,e.start))}function hr(e,t){const s=e.locationOffset.column-1,n="".padStart(s)+e.body,r=t.line-1,l=e.locationOffset.line-1,d=t.line+l,f=t.line===1?s:0,m=t.column+f,h=`${e.name}:${d}:${m}
2
+ `,p=n.split(/\r\n|[\n\r]/g),o=p[r];if(o.length>120){const a=Math.floor(m/80),i=m%80,c=[];for(let u=0;u<o.length;u+=80)c.push(o.slice(u,u+80));return h+pr([[`${d} |`,c[0]],...c.slice(1,a+1).map(u=>["|",u]),["|","^".padStart(i)],["|",c[a+1]]])}return h+pr([[`${d-1} |`,p[r-1]],[`${d} |`,o],["|","^".padStart(m)],[`${d+1} |`,p[r+1]]])}function pr(e){const t=e.filter(([n,r])=>r!==void 0),s=Math.max(...t.map(([n])=>n.length));return t.map(([n,r])=>n.padStart(s)+(r?" "+r:"")).join(`
3
+ `)}function pc(e){const t=e[0];return t==null||"kind"in t||"length"in t?{nodes:t,source:e[1],positions:e[2],path:e[3],originalError:e[4],extensions:e[5]}:t}let mc=class qa extends Error{constructor(t,...s){var n,r,l;const{nodes:d,source:f,positions:m,path:h,originalError:p,extensions:o}=pc(s);super(t),this.name="GraphQLError",this.path=h??void 0,this.originalError=p??void 0,this.nodes=mr(Array.isArray(d)?d:d?[d]:void 0);const a=mr((n=this.nodes)===null||n===void 0?void 0:n.map(c=>c.loc).filter(c=>c!=null));this.source=f??(a==null||(r=a[0])===null||r===void 0?void 0:r.source),this.positions=m??a?.map(c=>c.start),this.locations=m&&f?m.map(c=>$s(f,c)):a?.map(c=>$s(c.source,c.start));const i=cc(p?.extensions)?p?.extensions:void 0;this.extensions=(l=o??i)!==null&&l!==void 0?l:Object.create(null),Object.defineProperties(this,{message:{writable:!0,enumerable:!0},name:{enumerable:!1},nodes:{enumerable:!1},source:{enumerable:!1},positions:{enumerable:!1},originalError:{enumerable:!1}}),p!=null&&p.stack?Object.defineProperty(this,"stack",{value:p.stack,writable:!0,configurable:!0}):Error.captureStackTrace?Error.captureStackTrace(this,qa):Object.defineProperty(this,"stack",{value:Error().stack,writable:!0,configurable:!0})}get[Symbol.toStringTag](){return"GraphQLError"}toString(){let t=this.message;if(this.nodes)for(const s of this.nodes)s.loc&&(t+=`
4
4
 
5
- `+uc(s.loc));else if(this.source&&this.locations)for(const s of this.locations)t+=`
5
+ `+hc(s.loc));else if(this.source&&this.locations)for(const s of this.locations)t+=`
6
6
 
7
- `+dr(this.source,s);return t}toJSON(){const t={message:this.message};return this.locations!=null&&(t.locations=this.locations),this.path!=null&&(t.path=this.path),this.extensions!=null&&Object.keys(this.extensions).length>0&&(t.extensions=this.extensions),t}};function pr(e){return e===void 0||e.length===0?void 0:e}function Ze(e,t,s){return new hc(`Syntax Error: ${s}`,{source:e,positions:[t]})}let pc=class{constructor(t,s,n){this.start=t.start,this.end=s.end,this.startToken=t,this.endToken=s,this.source=n}get[Symbol.toStringTag](){return"Location"}toJSON(){return{start:this.start,end:this.end}}},mr=class{constructor(t,s,n,r,l,d){this.kind=t,this.start=s,this.end=n,this.line=r,this.column=l,this.value=d,this.prev=null,this.next=null}get[Symbol.toStringTag](){return"Token"}toJSON(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}}};const fr={Name:[],Document:["definitions"],OperationDefinition:["name","variableDefinitions","directives","selectionSet"],VariableDefinition:["variable","type","defaultValue","directives"],Variable:["name"],SelectionSet:["selections"],Field:["alias","name","arguments","directives","selectionSet"],Argument:["name","value"],FragmentSpread:["name","directives"],InlineFragment:["typeCondition","directives","selectionSet"],FragmentDefinition:["name","variableDefinitions","typeCondition","directives","selectionSet"],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:["values"],ObjectValue:["fields"],ObjectField:["name","value"],Directive:["name","arguments"],NamedType:["name"],ListType:["type"],NonNullType:["type"],SchemaDefinition:["description","directives","operationTypes"],OperationTypeDefinition:["type"],ScalarTypeDefinition:["description","name","directives"],ObjectTypeDefinition:["description","name","interfaces","directives","fields"],FieldDefinition:["description","name","arguments","type","directives"],InputValueDefinition:["description","name","type","defaultValue","directives"],InterfaceTypeDefinition:["description","name","interfaces","directives","fields"],UnionTypeDefinition:["description","name","directives","types"],EnumTypeDefinition:["description","name","directives","values"],EnumValueDefinition:["description","name","directives"],InputObjectTypeDefinition:["description","name","directives","fields"],DirectiveDefinition:["description","name","arguments","locations"],SchemaExtension:["directives","operationTypes"],ScalarTypeExtension:["name","directives"],ObjectTypeExtension:["name","interfaces","directives","fields"],InterfaceTypeExtension:["name","interfaces","directives","fields"],UnionTypeExtension:["name","directives","types"],EnumTypeExtension:["name","directives","values"],InputObjectTypeExtension:["name","directives","fields"]},mc=new Set(Object.keys(fr));function br(e){const t=e?.kind;return typeof t=="string"&&mc.has(t)}var ht;(function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"})(ht||(ht={}));var qs;(function(e){e.QUERY="QUERY",e.MUTATION="MUTATION",e.SUBSCRIPTION="SUBSCRIPTION",e.FIELD="FIELD",e.FRAGMENT_DEFINITION="FRAGMENT_DEFINITION",e.FRAGMENT_SPREAD="FRAGMENT_SPREAD",e.INLINE_FRAGMENT="INLINE_FRAGMENT",e.VARIABLE_DEFINITION="VARIABLE_DEFINITION",e.SCHEMA="SCHEMA",e.SCALAR="SCALAR",e.OBJECT="OBJECT",e.FIELD_DEFINITION="FIELD_DEFINITION",e.ARGUMENT_DEFINITION="ARGUMENT_DEFINITION",e.INTERFACE="INTERFACE",e.UNION="UNION",e.ENUM="ENUM",e.ENUM_VALUE="ENUM_VALUE",e.INPUT_OBJECT="INPUT_OBJECT",e.INPUT_FIELD_DEFINITION="INPUT_FIELD_DEFINITION"})(qs||(qs={}));var P;(function(e){e.NAME="Name",e.DOCUMENT="Document",e.OPERATION_DEFINITION="OperationDefinition",e.VARIABLE_DEFINITION="VariableDefinition",e.SELECTION_SET="SelectionSet",e.FIELD="Field",e.ARGUMENT="Argument",e.FRAGMENT_SPREAD="FragmentSpread",e.INLINE_FRAGMENT="InlineFragment",e.FRAGMENT_DEFINITION="FragmentDefinition",e.VARIABLE="Variable",e.INT="IntValue",e.FLOAT="FloatValue",e.STRING="StringValue",e.BOOLEAN="BooleanValue",e.NULL="NullValue",e.ENUM="EnumValue",e.LIST="ListValue",e.OBJECT="ObjectValue",e.OBJECT_FIELD="ObjectField",e.DIRECTIVE="Directive",e.NAMED_TYPE="NamedType",e.LIST_TYPE="ListType",e.NON_NULL_TYPE="NonNullType",e.SCHEMA_DEFINITION="SchemaDefinition",e.OPERATION_TYPE_DEFINITION="OperationTypeDefinition",e.SCALAR_TYPE_DEFINITION="ScalarTypeDefinition",e.OBJECT_TYPE_DEFINITION="ObjectTypeDefinition",e.FIELD_DEFINITION="FieldDefinition",e.INPUT_VALUE_DEFINITION="InputValueDefinition",e.INTERFACE_TYPE_DEFINITION="InterfaceTypeDefinition",e.UNION_TYPE_DEFINITION="UnionTypeDefinition",e.ENUM_TYPE_DEFINITION="EnumTypeDefinition",e.ENUM_VALUE_DEFINITION="EnumValueDefinition",e.INPUT_OBJECT_TYPE_DEFINITION="InputObjectTypeDefinition",e.DIRECTIVE_DEFINITION="DirectiveDefinition",e.SCHEMA_EXTENSION="SchemaExtension",e.SCALAR_TYPE_EXTENSION="ScalarTypeExtension",e.OBJECT_TYPE_EXTENSION="ObjectTypeExtension",e.INTERFACE_TYPE_EXTENSION="InterfaceTypeExtension",e.UNION_TYPE_EXTENSION="UnionTypeExtension",e.ENUM_TYPE_EXTENSION="EnumTypeExtension",e.INPUT_OBJECT_TYPE_EXTENSION="InputObjectTypeExtension"})(P||(P={}));function en(e){return e===9||e===32}function kt(e){return e>=48&&e<=57}function yr(e){return e>=97&&e<=122||e>=65&&e<=90}function gr(e){return yr(e)||e===95}function fc(e){return yr(e)||kt(e)||e===95}function bc(e){var t;let s=Number.MAX_SAFE_INTEGER,n=null,r=-1;for(let d=0;d<e.length;++d){var l;const f=e[d],m=yc(f);m!==f.length&&(n=(l=n)!==null&&l!==void 0?l:d,r=d,d!==0&&m<s&&(s=m))}return e.map((d,f)=>f===0?d:d.slice(s)).slice((t=n)!==null&&t!==void 0?t:0,r+1)}function yc(e){let t=0;for(;t<e.length&&en(e.charCodeAt(t));)++t;return t}function gc(e,t){const s=e.replace(/"""/g,'\\"""'),n=s.split(/\r\n|[\n\r]/g),r=n.length===1,l=n.length>1&&n.slice(1).every(i=>i.length===0||en(i.charCodeAt(0))),d=s.endsWith('\\"""'),f=e.endsWith('"')&&!d,m=e.endsWith("\\"),h=f||m,p=!r||e.length>70||h||l||d;let o="";const a=r&&en(e.charCodeAt(0));return(p&&!a||l)&&(o+=`
7
+ `+hr(this.source,s);return t}toJSON(){const t={message:this.message};return this.locations!=null&&(t.locations=this.locations),this.path!=null&&(t.path=this.path),this.extensions!=null&&Object.keys(this.extensions).length>0&&(t.extensions=this.extensions),t}};function mr(e){return e===void 0||e.length===0?void 0:e}function Ze(e,t,s){return new mc(`Syntax Error: ${s}`,{source:e,positions:[t]})}let fc=class{constructor(t,s,n){this.start=t.start,this.end=s.end,this.startToken=t,this.endToken=s,this.source=n}get[Symbol.toStringTag](){return"Location"}toJSON(){return{start:this.start,end:this.end}}},fr=class{constructor(t,s,n,r,l,d){this.kind=t,this.start=s,this.end=n,this.line=r,this.column=l,this.value=d,this.prev=null,this.next=null}get[Symbol.toStringTag](){return"Token"}toJSON(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}}};const br={Name:[],Document:["definitions"],OperationDefinition:["name","variableDefinitions","directives","selectionSet"],VariableDefinition:["variable","type","defaultValue","directives"],Variable:["name"],SelectionSet:["selections"],Field:["alias","name","arguments","directives","selectionSet"],Argument:["name","value"],FragmentSpread:["name","directives"],InlineFragment:["typeCondition","directives","selectionSet"],FragmentDefinition:["name","variableDefinitions","typeCondition","directives","selectionSet"],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:["values"],ObjectValue:["fields"],ObjectField:["name","value"],Directive:["name","arguments"],NamedType:["name"],ListType:["type"],NonNullType:["type"],SchemaDefinition:["description","directives","operationTypes"],OperationTypeDefinition:["type"],ScalarTypeDefinition:["description","name","directives"],ObjectTypeDefinition:["description","name","interfaces","directives","fields"],FieldDefinition:["description","name","arguments","type","directives"],InputValueDefinition:["description","name","type","defaultValue","directives"],InterfaceTypeDefinition:["description","name","interfaces","directives","fields"],UnionTypeDefinition:["description","name","directives","types"],EnumTypeDefinition:["description","name","directives","values"],EnumValueDefinition:["description","name","directives"],InputObjectTypeDefinition:["description","name","directives","fields"],DirectiveDefinition:["description","name","arguments","locations"],SchemaExtension:["directives","operationTypes"],ScalarTypeExtension:["name","directives"],ObjectTypeExtension:["name","interfaces","directives","fields"],InterfaceTypeExtension:["name","interfaces","directives","fields"],UnionTypeExtension:["name","directives","types"],EnumTypeExtension:["name","directives","values"],InputObjectTypeExtension:["name","directives","fields"]},bc=new Set(Object.keys(br));function yr(e){const t=e?.kind;return typeof t=="string"&&bc.has(t)}var ht;(function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"})(ht||(ht={}));var qs;(function(e){e.QUERY="QUERY",e.MUTATION="MUTATION",e.SUBSCRIPTION="SUBSCRIPTION",e.FIELD="FIELD",e.FRAGMENT_DEFINITION="FRAGMENT_DEFINITION",e.FRAGMENT_SPREAD="FRAGMENT_SPREAD",e.INLINE_FRAGMENT="INLINE_FRAGMENT",e.VARIABLE_DEFINITION="VARIABLE_DEFINITION",e.SCHEMA="SCHEMA",e.SCALAR="SCALAR",e.OBJECT="OBJECT",e.FIELD_DEFINITION="FIELD_DEFINITION",e.ARGUMENT_DEFINITION="ARGUMENT_DEFINITION",e.INTERFACE="INTERFACE",e.UNION="UNION",e.ENUM="ENUM",e.ENUM_VALUE="ENUM_VALUE",e.INPUT_OBJECT="INPUT_OBJECT",e.INPUT_FIELD_DEFINITION="INPUT_FIELD_DEFINITION"})(qs||(qs={}));var P;(function(e){e.NAME="Name",e.DOCUMENT="Document",e.OPERATION_DEFINITION="OperationDefinition",e.VARIABLE_DEFINITION="VariableDefinition",e.SELECTION_SET="SelectionSet",e.FIELD="Field",e.ARGUMENT="Argument",e.FRAGMENT_SPREAD="FragmentSpread",e.INLINE_FRAGMENT="InlineFragment",e.FRAGMENT_DEFINITION="FragmentDefinition",e.VARIABLE="Variable",e.INT="IntValue",e.FLOAT="FloatValue",e.STRING="StringValue",e.BOOLEAN="BooleanValue",e.NULL="NullValue",e.ENUM="EnumValue",e.LIST="ListValue",e.OBJECT="ObjectValue",e.OBJECT_FIELD="ObjectField",e.DIRECTIVE="Directive",e.NAMED_TYPE="NamedType",e.LIST_TYPE="ListType",e.NON_NULL_TYPE="NonNullType",e.SCHEMA_DEFINITION="SchemaDefinition",e.OPERATION_TYPE_DEFINITION="OperationTypeDefinition",e.SCALAR_TYPE_DEFINITION="ScalarTypeDefinition",e.OBJECT_TYPE_DEFINITION="ObjectTypeDefinition",e.FIELD_DEFINITION="FieldDefinition",e.INPUT_VALUE_DEFINITION="InputValueDefinition",e.INTERFACE_TYPE_DEFINITION="InterfaceTypeDefinition",e.UNION_TYPE_DEFINITION="UnionTypeDefinition",e.ENUM_TYPE_DEFINITION="EnumTypeDefinition",e.ENUM_VALUE_DEFINITION="EnumValueDefinition",e.INPUT_OBJECT_TYPE_DEFINITION="InputObjectTypeDefinition",e.DIRECTIVE_DEFINITION="DirectiveDefinition",e.SCHEMA_EXTENSION="SchemaExtension",e.SCALAR_TYPE_EXTENSION="ScalarTypeExtension",e.OBJECT_TYPE_EXTENSION="ObjectTypeExtension",e.INTERFACE_TYPE_EXTENSION="InterfaceTypeExtension",e.UNION_TYPE_EXTENSION="UnionTypeExtension",e.ENUM_TYPE_EXTENSION="EnumTypeExtension",e.INPUT_OBJECT_TYPE_EXTENSION="InputObjectTypeExtension"})(P||(P={}));function en(e){return e===9||e===32}function kt(e){return e>=48&&e<=57}function gr(e){return e>=97&&e<=122||e>=65&&e<=90}function Zr(e){return gr(e)||e===95}function yc(e){return gr(e)||kt(e)||e===95}function gc(e){var t;let s=Number.MAX_SAFE_INTEGER,n=null,r=-1;for(let d=0;d<e.length;++d){var l;const f=e[d],m=Zc(f);m!==f.length&&(n=(l=n)!==null&&l!==void 0?l:d,r=d,d!==0&&m<s&&(s=m))}return e.map((d,f)=>f===0?d:d.slice(s)).slice((t=n)!==null&&t!==void 0?t:0,r+1)}function Zc(e){let t=0;for(;t<e.length&&en(e.charCodeAt(t));)++t;return t}function Sc(e,t){const s=e.replace(/"""/g,'\\"""'),n=s.split(/\r\n|[\n\r]/g),r=n.length===1,l=n.length>1&&n.slice(1).every(i=>i.length===0||en(i.charCodeAt(0))),d=s.endsWith('\\"""'),f=e.endsWith('"')&&!d,m=e.endsWith("\\"),h=f||m,p=!r||e.length>70||h||l||d;let o="";const a=r&&en(e.charCodeAt(0));return(p&&!a||l)&&(o+=`
8
8
  `),o+=s,(p||h)&&(o+=`
9
- `),'"""'+o+'"""'}var x;(function(e){e.SOF="<SOF>",e.EOF="<EOF>",e.BANG="!",e.DOLLAR="$",e.AMP="&",e.PAREN_L="(",e.PAREN_R=")",e.SPREAD="...",e.COLON=":",e.EQUALS="=",e.AT="@",e.BRACKET_L="[",e.BRACKET_R="]",e.BRACE_L="{",e.PIPE="|",e.BRACE_R="}",e.NAME="Name",e.INT="Int",e.FLOAT="Float",e.STRING="String",e.BLOCK_STRING="BlockString",e.COMMENT="Comment"})(x||(x={}));let Zc=class{constructor(t){const s=new mr(x.SOF,0,0,0,0);this.source=t,this.lastToken=s,this.token=s,this.line=1,this.lineStart=0}get[Symbol.toStringTag](){return"Lexer"}advance(){return this.lastToken=this.token,this.token=this.lookahead()}lookahead(){let t=this.token;if(t.kind!==x.EOF)do if(t.next)t=t.next;else{const s=Ic(this,t.end);t.next=s,s.prev=t,t=s}while(t.kind===x.COMMENT);return t}};function Sc(e){return e===x.BANG||e===x.DOLLAR||e===x.AMP||e===x.PAREN_L||e===x.PAREN_R||e===x.SPREAD||e===x.COLON||e===x.EQUALS||e===x.AT||e===x.BRACKET_L||e===x.BRACKET_R||e===x.BRACE_L||e===x.PIPE||e===x.BRACE_R}function pt(e){return e>=0&&e<=55295||e>=57344&&e<=1114111}function $t(e,t){return Zr(e.charCodeAt(t))&&Sr(e.charCodeAt(t+1))}function Zr(e){return e>=55296&&e<=56319}function Sr(e){return e>=56320&&e<=57343}function it(e,t){const s=e.source.body.codePointAt(t);if(s===void 0)return x.EOF;if(s>=32&&s<=126){const n=String.fromCodePoint(s);return n==='"'?`'"'`:`"${n}"`}return"U+"+s.toString(16).toUpperCase().padStart(4,"0")}function be(e,t,s,n,r){const l=e.line,d=1+s-e.lineStart;return new mr(t,s,n,l,d,r)}function Ic(e,t){const s=e.source.body,n=s.length;let r=t;for(;r<n;){const l=s.charCodeAt(r);switch(l){case 65279:case 9:case 32:case 44:++r;continue;case 10:++r,++e.line,e.lineStart=r;continue;case 13:s.charCodeAt(r+1)===10?r+=2:++r,++e.line,e.lineStart=r;continue;case 35:return Xc(e,r);case 33:return be(e,x.BANG,r,r+1);case 36:return be(e,x.DOLLAR,r,r+1);case 38:return be(e,x.AMP,r,r+1);case 40:return be(e,x.PAREN_L,r,r+1);case 41:return be(e,x.PAREN_R,r,r+1);case 46:if(s.charCodeAt(r+1)===46&&s.charCodeAt(r+2)===46)return be(e,x.SPREAD,r,r+3);break;case 58:return be(e,x.COLON,r,r+1);case 61:return be(e,x.EQUALS,r,r+1);case 64:return be(e,x.AT,r,r+1);case 91:return be(e,x.BRACKET_L,r,r+1);case 93:return be(e,x.BRACKET_R,r,r+1);case 123:return be(e,x.BRACE_L,r,r+1);case 124:return be(e,x.PIPE,r,r+1);case 125:return be(e,x.BRACE_R,r,r+1);case 34:return s.charCodeAt(r+1)===34&&s.charCodeAt(r+2)===34?wc(e,r):Gc(e,r)}if(kt(l)||l===45)return Vc(e,r,l);if(gr(l))return kc(e,r);throw Ze(e.source,r,l===39?`Unexpected single quote character ('), did you mean to use a double quote (")?`:pt(l)||$t(s,r)?`Unexpected character: ${it(e,r)}.`:`Invalid character: ${it(e,r)}.`)}return be(e,x.EOF,n,n)}function Xc(e,t){const s=e.source.body,n=s.length;let r=t+1;for(;r<n;){const l=s.charCodeAt(r);if(l===10||l===13)break;if(pt(l))++r;else if($t(s,r))r+=2;else break}return be(e,x.COMMENT,t,r,s.slice(t+1,r))}function Vc(e,t,s){const n=e.source.body;let r=t,l=s,d=!1;if(l===45&&(l=n.charCodeAt(++r)),l===48){if(l=n.charCodeAt(++r),kt(l))throw Ze(e.source,r,`Invalid number, unexpected digit after 0: ${it(e,r)}.`)}else r=tn(e,r,l),l=n.charCodeAt(r);if(l===46&&(d=!0,l=n.charCodeAt(++r),r=tn(e,r,l),l=n.charCodeAt(r)),(l===69||l===101)&&(d=!0,l=n.charCodeAt(++r),(l===43||l===45)&&(l=n.charCodeAt(++r)),r=tn(e,r,l),l=n.charCodeAt(r)),l===46||gr(l))throw Ze(e.source,r,`Invalid number, expected digit but got: ${it(e,r)}.`);return be(e,d?x.FLOAT:x.INT,t,r,n.slice(t,r))}function tn(e,t,s){if(!kt(s))throw Ze(e.source,t,`Invalid number, expected digit but got: ${it(e,t)}.`);const n=e.source.body;let r=t+1;for(;kt(n.charCodeAt(r));)++r;return r}function Gc(e,t){const s=e.source.body,n=s.length;let r=t+1,l=r,d="";for(;r<n;){const f=s.charCodeAt(r);if(f===34)return d+=s.slice(l,r),be(e,x.STRING,t,r+1,d);if(f===92){d+=s.slice(l,r);const m=s.charCodeAt(r+1)===117?s.charCodeAt(r+2)===123?Rc(e,r):vc(e,r):Wc(e,r);d+=m.value,r+=m.size,l=r;continue}if(f===10||f===13)break;if(pt(f))++r;else if($t(s,r))r+=2;else throw Ze(e.source,r,`Invalid character within String: ${it(e,r)}.`)}throw Ze(e.source,r,"Unterminated string.")}function Rc(e,t){const s=e.source.body;let n=0,r=3;for(;r<12;){const l=s.charCodeAt(t+r++);if(l===125){if(r<5||!pt(n))break;return{value:String.fromCodePoint(n),size:r}}if(n=n<<4|Ct(l),n<0)break}throw Ze(e.source,t,`Invalid Unicode escape sequence: "${s.slice(t,t+r)}".`)}function vc(e,t){const s=e.source.body,n=Ir(s,t+2);if(pt(n))return{value:String.fromCodePoint(n),size:6};if(Zr(n)&&s.charCodeAt(t+6)===92&&s.charCodeAt(t+7)===117){const r=Ir(s,t+8);if(Sr(r))return{value:String.fromCodePoint(n,r),size:12}}throw Ze(e.source,t,`Invalid Unicode escape sequence: "${s.slice(t,t+6)}".`)}function Ir(e,t){return Ct(e.charCodeAt(t))<<12|Ct(e.charCodeAt(t+1))<<8|Ct(e.charCodeAt(t+2))<<4|Ct(e.charCodeAt(t+3))}function Ct(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:-1}function Wc(e,t){const s=e.source.body;switch(s.charCodeAt(t+1)){case 34:return{value:'"',size:2};case 92:return{value:"\\",size:2};case 47:return{value:"/",size:2};case 98:return{value:"\b",size:2};case 102:return{value:"\f",size:2};case 110:return{value:`
10
- `,size:2};case 114:return{value:"\r",size:2};case 116:return{value:" ",size:2}}throw Ze(e.source,t,`Invalid character escape sequence: "${s.slice(t,t+2)}".`)}function wc(e,t){const s=e.source.body,n=s.length;let r=e.lineStart,l=t+3,d=l,f="";const m=[];for(;l<n;){const h=s.charCodeAt(l);if(h===34&&s.charCodeAt(l+1)===34&&s.charCodeAt(l+2)===34){f+=s.slice(d,l),m.push(f);const p=be(e,x.BLOCK_STRING,t,l+3,bc(m).join(`
11
- `));return e.line+=m.length-1,e.lineStart=r,p}if(h===92&&s.charCodeAt(l+1)===34&&s.charCodeAt(l+2)===34&&s.charCodeAt(l+3)===34){f+=s.slice(d,l),d=l+1,l+=4;continue}if(h===10||h===13){f+=s.slice(d,l),m.push(f),h===13&&s.charCodeAt(l+1)===10?l+=2:++l,f="",d=l,r=l;continue}if(pt(h))++l;else if($t(s,l))l+=2;else throw Ze(e.source,l,`Invalid character within String: ${it(e,l)}.`)}throw Ze(e.source,l,"Unterminated string.")}function kc(e,t){const s=e.source.body,n=s.length;let r=t+1;for(;r<n;){const l=s.charCodeAt(r);if(fc(l))++r;else break}return be(e,x.NAME,t,r,s.slice(t,r))}const Cc=10,Xr=2;function sn(e){return qt(e,[])}function qt(e,t){switch(typeof e){case"string":return JSON.stringify(e);case"function":return e.name?`[function ${e.name}]`:"[function]";case"object":return xc(e,t);default:return String(e)}}function xc(e,t){if(e===null)return"null";if(t.includes(e))return"[Circular]";const s=[...t,e];if(Tc(e)){const n=e.toJSON();if(n!==e)return typeof n=="string"?n:qt(n,s)}else if(Array.isArray(e))return Nc(e,s);return Lc(e,s)}function Tc(e){return typeof e.toJSON=="function"}function Lc(e,t){const s=Object.entries(e);return s.length===0?"{}":t.length>Xr?"["+Jc(e)+"]":"{ "+s.map(([n,r])=>n+": "+qt(r,t)).join(", ")+" }"}function Nc(e,t){if(e.length===0)return"[]";if(t.length>Xr)return"[Array]";const s=Math.min(Cc,e.length),n=e.length-s,r=[];for(let l=0;l<s;++l)r.push(qt(e[l],t));return n===1?r.push("... 1 more item"):n>1&&r.push(`... ${n} more items`),"["+r.join(", ")+"]"}function Jc(e){const t=Object.prototype.toString.call(e).replace(/^\[object /,"").replace(/]$/,"");if(t==="Object"&&typeof e.constructor=="function"){const s=e.constructor.name;if(typeof s=="string"&&s!=="")return s}return t}const Yc=globalThis.process&&process.env.NODE_ENV==="production",Uc=Yc?function(e,t){return e instanceof t}:function(e,t){if(e instanceof t)return!0;if(typeof e=="object"&&e!==null){var s;const n=t.prototype[Symbol.toStringTag],r=Symbol.toStringTag in e?e[Symbol.toStringTag]:(s=e.constructor)===null||s===void 0?void 0:s.name;if(n===r){const l=sn(e);throw new Error(`Cannot use ${n} "${l}" from another module or realm.
9
+ `),'"""'+o+'"""'}var x;(function(e){e.SOF="<SOF>",e.EOF="<EOF>",e.BANG="!",e.DOLLAR="$",e.AMP="&",e.PAREN_L="(",e.PAREN_R=")",e.SPREAD="...",e.COLON=":",e.EQUALS="=",e.AT="@",e.BRACKET_L="[",e.BRACKET_R="]",e.BRACE_L="{",e.PIPE="|",e.BRACE_R="}",e.NAME="Name",e.INT="Int",e.FLOAT="Float",e.STRING="String",e.BLOCK_STRING="BlockString",e.COMMENT="Comment"})(x||(x={}));let Ic=class{constructor(t){const s=new fr(x.SOF,0,0,0,0);this.source=t,this.lastToken=s,this.token=s,this.line=1,this.lineStart=0}get[Symbol.toStringTag](){return"Lexer"}advance(){return this.lastToken=this.token,this.token=this.lookahead()}lookahead(){let t=this.token;if(t.kind!==x.EOF)do if(t.next)t=t.next;else{const s=Vc(this,t.end);t.next=s,s.prev=t,t=s}while(t.kind===x.COMMENT);return t}};function Xc(e){return e===x.BANG||e===x.DOLLAR||e===x.AMP||e===x.PAREN_L||e===x.PAREN_R||e===x.SPREAD||e===x.COLON||e===x.EQUALS||e===x.AT||e===x.BRACKET_L||e===x.BRACKET_R||e===x.BRACE_L||e===x.PIPE||e===x.BRACE_R}function pt(e){return e>=0&&e<=55295||e>=57344&&e<=1114111}function $t(e,t){return Sr(e.charCodeAt(t))&&Ir(e.charCodeAt(t+1))}function Sr(e){return e>=55296&&e<=56319}function Ir(e){return e>=56320&&e<=57343}function it(e,t){const s=e.source.body.codePointAt(t);if(s===void 0)return x.EOF;if(s>=32&&s<=126){const n=String.fromCodePoint(s);return n==='"'?`'"'`:`"${n}"`}return"U+"+s.toString(16).toUpperCase().padStart(4,"0")}function be(e,t,s,n,r){const l=e.line,d=1+s-e.lineStart;return new fr(t,s,n,l,d,r)}function Vc(e,t){const s=e.source.body,n=s.length;let r=t;for(;r<n;){const l=s.charCodeAt(r);switch(l){case 65279:case 9:case 32:case 44:++r;continue;case 10:++r,++e.line,e.lineStart=r;continue;case 13:s.charCodeAt(r+1)===10?r+=2:++r,++e.line,e.lineStart=r;continue;case 35:return Gc(e,r);case 33:return be(e,x.BANG,r,r+1);case 36:return be(e,x.DOLLAR,r,r+1);case 38:return be(e,x.AMP,r,r+1);case 40:return be(e,x.PAREN_L,r,r+1);case 41:return be(e,x.PAREN_R,r,r+1);case 46:if(s.charCodeAt(r+1)===46&&s.charCodeAt(r+2)===46)return be(e,x.SPREAD,r,r+3);break;case 58:return be(e,x.COLON,r,r+1);case 61:return be(e,x.EQUALS,r,r+1);case 64:return be(e,x.AT,r,r+1);case 91:return be(e,x.BRACKET_L,r,r+1);case 93:return be(e,x.BRACKET_R,r,r+1);case 123:return be(e,x.BRACE_L,r,r+1);case 124:return be(e,x.PIPE,r,r+1);case 125:return be(e,x.BRACE_R,r,r+1);case 34:return s.charCodeAt(r+1)===34&&s.charCodeAt(r+2)===34?Cc(e,r):vc(e,r)}if(kt(l)||l===45)return Rc(e,r,l);if(Zr(l))return xc(e,r);throw Ze(e.source,r,l===39?`Unexpected single quote character ('), did you mean to use a double quote (")?`:pt(l)||$t(s,r)?`Unexpected character: ${it(e,r)}.`:`Invalid character: ${it(e,r)}.`)}return be(e,x.EOF,n,n)}function Gc(e,t){const s=e.source.body,n=s.length;let r=t+1;for(;r<n;){const l=s.charCodeAt(r);if(l===10||l===13)break;if(pt(l))++r;else if($t(s,r))r+=2;else break}return be(e,x.COMMENT,t,r,s.slice(t+1,r))}function Rc(e,t,s){const n=e.source.body;let r=t,l=s,d=!1;if(l===45&&(l=n.charCodeAt(++r)),l===48){if(l=n.charCodeAt(++r),kt(l))throw Ze(e.source,r,`Invalid number, unexpected digit after 0: ${it(e,r)}.`)}else r=tn(e,r,l),l=n.charCodeAt(r);if(l===46&&(d=!0,l=n.charCodeAt(++r),r=tn(e,r,l),l=n.charCodeAt(r)),(l===69||l===101)&&(d=!0,l=n.charCodeAt(++r),(l===43||l===45)&&(l=n.charCodeAt(++r)),r=tn(e,r,l),l=n.charCodeAt(r)),l===46||Zr(l))throw Ze(e.source,r,`Invalid number, expected digit but got: ${it(e,r)}.`);return be(e,d?x.FLOAT:x.INT,t,r,n.slice(t,r))}function tn(e,t,s){if(!kt(s))throw Ze(e.source,t,`Invalid number, expected digit but got: ${it(e,t)}.`);const n=e.source.body;let r=t+1;for(;kt(n.charCodeAt(r));)++r;return r}function vc(e,t){const s=e.source.body,n=s.length;let r=t+1,l=r,d="";for(;r<n;){const f=s.charCodeAt(r);if(f===34)return d+=s.slice(l,r),be(e,x.STRING,t,r+1,d);if(f===92){d+=s.slice(l,r);const m=s.charCodeAt(r+1)===117?s.charCodeAt(r+2)===123?Wc(e,r):wc(e,r):kc(e,r);d+=m.value,r+=m.size,l=r;continue}if(f===10||f===13)break;if(pt(f))++r;else if($t(s,r))r+=2;else throw Ze(e.source,r,`Invalid character within String: ${it(e,r)}.`)}throw Ze(e.source,r,"Unterminated string.")}function Wc(e,t){const s=e.source.body;let n=0,r=3;for(;r<12;){const l=s.charCodeAt(t+r++);if(l===125){if(r<5||!pt(n))break;return{value:String.fromCodePoint(n),size:r}}if(n=n<<4|Ct(l),n<0)break}throw Ze(e.source,t,`Invalid Unicode escape sequence: "${s.slice(t,t+r)}".`)}function wc(e,t){const s=e.source.body,n=Xr(s,t+2);if(pt(n))return{value:String.fromCodePoint(n),size:6};if(Sr(n)&&s.charCodeAt(t+6)===92&&s.charCodeAt(t+7)===117){const r=Xr(s,t+8);if(Ir(r))return{value:String.fromCodePoint(n,r),size:12}}throw Ze(e.source,t,`Invalid Unicode escape sequence: "${s.slice(t,t+6)}".`)}function Xr(e,t){return Ct(e.charCodeAt(t))<<12|Ct(e.charCodeAt(t+1))<<8|Ct(e.charCodeAt(t+2))<<4|Ct(e.charCodeAt(t+3))}function Ct(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:-1}function kc(e,t){const s=e.source.body;switch(s.charCodeAt(t+1)){case 34:return{value:'"',size:2};case 92:return{value:"\\",size:2};case 47:return{value:"/",size:2};case 98:return{value:"\b",size:2};case 102:return{value:"\f",size:2};case 110:return{value:`
10
+ `,size:2};case 114:return{value:"\r",size:2};case 116:return{value:" ",size:2}}throw Ze(e.source,t,`Invalid character escape sequence: "${s.slice(t,t+2)}".`)}function Cc(e,t){const s=e.source.body,n=s.length;let r=e.lineStart,l=t+3,d=l,f="";const m=[];for(;l<n;){const h=s.charCodeAt(l);if(h===34&&s.charCodeAt(l+1)===34&&s.charCodeAt(l+2)===34){f+=s.slice(d,l),m.push(f);const p=be(e,x.BLOCK_STRING,t,l+3,gc(m).join(`
11
+ `));return e.line+=m.length-1,e.lineStart=r,p}if(h===92&&s.charCodeAt(l+1)===34&&s.charCodeAt(l+2)===34&&s.charCodeAt(l+3)===34){f+=s.slice(d,l),d=l+1,l+=4;continue}if(h===10||h===13){f+=s.slice(d,l),m.push(f),h===13&&s.charCodeAt(l+1)===10?l+=2:++l,f="",d=l,r=l;continue}if(pt(h))++l;else if($t(s,l))l+=2;else throw Ze(e.source,l,`Invalid character within String: ${it(e,l)}.`)}throw Ze(e.source,l,"Unterminated string.")}function xc(e,t){const s=e.source.body,n=s.length;let r=t+1;for(;r<n;){const l=s.charCodeAt(r);if(yc(l))++r;else break}return be(e,x.NAME,t,r,s.slice(t,r))}const Tc=10,Vr=2;function sn(e){return qt(e,[])}function qt(e,t){switch(typeof e){case"string":return JSON.stringify(e);case"function":return e.name?`[function ${e.name}]`:"[function]";case"object":return Lc(e,t);default:return String(e)}}function Lc(e,t){if(e===null)return"null";if(t.includes(e))return"[Circular]";const s=[...t,e];if(Nc(e)){const n=e.toJSON();if(n!==e)return typeof n=="string"?n:qt(n,s)}else if(Array.isArray(e))return Yc(e,s);return Jc(e,s)}function Nc(e){return typeof e.toJSON=="function"}function Jc(e,t){const s=Object.entries(e);return s.length===0?"{}":t.length>Vr?"["+Uc(e)+"]":"{ "+s.map(([n,r])=>n+": "+qt(r,t)).join(", ")+" }"}function Yc(e,t){if(e.length===0)return"[]";if(t.length>Vr)return"[Array]";const s=Math.min(Tc,e.length),n=e.length-s,r=[];for(let l=0;l<s;++l)r.push(qt(e[l],t));return n===1?r.push("... 1 more item"):n>1&&r.push(`... ${n} more items`),"["+r.join(", ")+"]"}function Uc(e){const t=Object.prototype.toString.call(e).replace(/^\[object /,"").replace(/]$/,"");if(t==="Object"&&typeof e.constructor=="function"){const s=e.constructor.name;if(typeof s=="string"&&s!=="")return s}return t}const Fc=globalThis.process&&process.env.NODE_ENV==="production",Mc=Fc?function(e,t){return e instanceof t}:function(e,t){if(e instanceof t)return!0;if(typeof e=="object"&&e!==null){var s;const n=t.prototype[Symbol.toStringTag],r=Symbol.toStringTag in e?e[Symbol.toStringTag]:(s=e.constructor)===null||s===void 0?void 0:s.name;if(n===r){const l=sn(e);throw new Error(`Cannot use ${n} "${l}" from another module or realm.
12
12
 
13
13
  Ensure that there is only one instance of "graphql" in the node_modules
14
14
  directory. If different versions of "graphql" are the dependencies of other
@@ -19,41 +19,41 @@ https://yarnpkg.com/en/docs/selective-version-resolutions
19
19
  Duplicate "graphql" modules cannot be used at the same time since different
20
20
  versions may have different capabilities and behavior. The data from one
21
21
  version used in the function from another could produce confusing and
22
- spurious results.`)}}return!1};let Vr=class{constructor(t,s="GraphQL request",n={line:1,column:1}){typeof t=="string"||_t(!1,`Body must be a string. Received: ${sn(t)}.`),this.body=t,this.name=s,this.locationOffset=n,this.locationOffset.line>0||_t(!1,"line in locationOffset is 1-indexed and must be positive."),this.locationOffset.column>0||_t(!1,"column in locationOffset is 1-indexed and must be positive.")}get[Symbol.toStringTag](){return"Source"}};function Fc(e){return Uc(e,Vr)}function Gr(e,t){const s=new Oc(e,t),n=s.parseDocument();return Object.defineProperty(n,"tokenCount",{enumerable:!1,value:s.tokenCount}),n}let Oc=class{constructor(t,s={}){const n=Fc(t)?t:new Vr(t);this._lexer=new Zc(n),this._options=s,this._tokenCounter=0}get tokenCount(){return this._tokenCounter}parseName(){const t=this.expectToken(x.NAME);return this.node(t,{kind:P.NAME,value:t.value})}parseDocument(){return this.node(this._lexer.token,{kind:P.DOCUMENT,definitions:this.many(x.SOF,this.parseDefinition,x.EOF)})}parseDefinition(){if(this.peek(x.BRACE_L))return this.parseOperationDefinition();const t=this.peekDescription(),s=t?this._lexer.lookahead():this._lexer.token;if(s.kind===x.NAME){switch(s.value){case"schema":return this.parseSchemaDefinition();case"scalar":return this.parseScalarTypeDefinition();case"type":return this.parseObjectTypeDefinition();case"interface":return this.parseInterfaceTypeDefinition();case"union":return this.parseUnionTypeDefinition();case"enum":return this.parseEnumTypeDefinition();case"input":return this.parseInputObjectTypeDefinition();case"directive":return this.parseDirectiveDefinition()}if(t)throw Ze(this._lexer.source,this._lexer.token.start,"Unexpected description, descriptions are supported only on type definitions.");switch(s.value){case"query":case"mutation":case"subscription":return this.parseOperationDefinition();case"fragment":return this.parseFragmentDefinition();case"extend":return this.parseTypeSystemExtension()}}throw this.unexpected(s)}parseOperationDefinition(){const t=this._lexer.token;if(this.peek(x.BRACE_L))return this.node(t,{kind:P.OPERATION_DEFINITION,operation:ht.QUERY,name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet()});const s=this.parseOperationType();let n;return this.peek(x.NAME)&&(n=this.parseName()),this.node(t,{kind:P.OPERATION_DEFINITION,operation:s,name:n,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseOperationType(){const t=this.expectToken(x.NAME);switch(t.value){case"query":return ht.QUERY;case"mutation":return ht.MUTATION;case"subscription":return ht.SUBSCRIPTION}throw this.unexpected(t)}parseVariableDefinitions(){return this.optionalMany(x.PAREN_L,this.parseVariableDefinition,x.PAREN_R)}parseVariableDefinition(){return this.node(this._lexer.token,{kind:P.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(x.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(x.EQUALS)?this.parseConstValueLiteral():void 0,directives:this.parseConstDirectives()})}parseVariable(){const t=this._lexer.token;return this.expectToken(x.DOLLAR),this.node(t,{kind:P.VARIABLE,name:this.parseName()})}parseSelectionSet(){return this.node(this._lexer.token,{kind:P.SELECTION_SET,selections:this.many(x.BRACE_L,this.parseSelection,x.BRACE_R)})}parseSelection(){return this.peek(x.SPREAD)?this.parseFragment():this.parseField()}parseField(){const t=this._lexer.token,s=this.parseName();let n,r;return this.expectOptionalToken(x.COLON)?(n=s,r=this.parseName()):r=s,this.node(t,{kind:P.FIELD,alias:n,name:r,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(x.BRACE_L)?this.parseSelectionSet():void 0})}parseArguments(t){const s=t?this.parseConstArgument:this.parseArgument;return this.optionalMany(x.PAREN_L,s,x.PAREN_R)}parseArgument(t=!1){const s=this._lexer.token,n=this.parseName();return this.expectToken(x.COLON),this.node(s,{kind:P.ARGUMENT,name:n,value:this.parseValueLiteral(t)})}parseConstArgument(){return this.parseArgument(!0)}parseFragment(){const t=this._lexer.token;this.expectToken(x.SPREAD);const s=this.expectOptionalKeyword("on");return!s&&this.peek(x.NAME)?this.node(t,{kind:P.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1)}):this.node(t,{kind:P.INLINE_FRAGMENT,typeCondition:s?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseFragmentDefinition(){const t=this._lexer.token;return this.expectKeyword("fragment"),this._options.allowLegacyFragmentVariables===!0?this.node(t,{kind:P.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()}):this.node(t,{kind:P.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseFragmentName(){if(this._lexer.token.value==="on")throw this.unexpected();return this.parseName()}parseValueLiteral(t){const s=this._lexer.token;switch(s.kind){case x.BRACKET_L:return this.parseList(t);case x.BRACE_L:return this.parseObject(t);case x.INT:return this.advanceLexer(),this.node(s,{kind:P.INT,value:s.value});case x.FLOAT:return this.advanceLexer(),this.node(s,{kind:P.FLOAT,value:s.value});case x.STRING:case x.BLOCK_STRING:return this.parseStringLiteral();case x.NAME:switch(this.advanceLexer(),s.value){case"true":return this.node(s,{kind:P.BOOLEAN,value:!0});case"false":return this.node(s,{kind:P.BOOLEAN,value:!1});case"null":return this.node(s,{kind:P.NULL});default:return this.node(s,{kind:P.ENUM,value:s.value})}case x.DOLLAR:if(t)if(this.expectToken(x.DOLLAR),this._lexer.token.kind===x.NAME){const n=this._lexer.token.value;throw Ze(this._lexer.source,s.start,`Unexpected variable "$${n}" in constant value.`)}else throw this.unexpected(s);return this.parseVariable();default:throw this.unexpected()}}parseConstValueLiteral(){return this.parseValueLiteral(!0)}parseStringLiteral(){const t=this._lexer.token;return this.advanceLexer(),this.node(t,{kind:P.STRING,value:t.value,block:t.kind===x.BLOCK_STRING})}parseList(t){const s=()=>this.parseValueLiteral(t);return this.node(this._lexer.token,{kind:P.LIST,values:this.any(x.BRACKET_L,s,x.BRACKET_R)})}parseObject(t){const s=()=>this.parseObjectField(t);return this.node(this._lexer.token,{kind:P.OBJECT,fields:this.any(x.BRACE_L,s,x.BRACE_R)})}parseObjectField(t){const s=this._lexer.token,n=this.parseName();return this.expectToken(x.COLON),this.node(s,{kind:P.OBJECT_FIELD,name:n,value:this.parseValueLiteral(t)})}parseDirectives(t){const s=[];for(;this.peek(x.AT);)s.push(this.parseDirective(t));return s}parseConstDirectives(){return this.parseDirectives(!0)}parseDirective(t){const s=this._lexer.token;return this.expectToken(x.AT),this.node(s,{kind:P.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(t)})}parseTypeReference(){const t=this._lexer.token;let s;if(this.expectOptionalToken(x.BRACKET_L)){const n=this.parseTypeReference();this.expectToken(x.BRACKET_R),s=this.node(t,{kind:P.LIST_TYPE,type:n})}else s=this.parseNamedType();return this.expectOptionalToken(x.BANG)?this.node(t,{kind:P.NON_NULL_TYPE,type:s}):s}parseNamedType(){return this.node(this._lexer.token,{kind:P.NAMED_TYPE,name:this.parseName()})}peekDescription(){return this.peek(x.STRING)||this.peek(x.BLOCK_STRING)}parseDescription(){if(this.peekDescription())return this.parseStringLiteral()}parseSchemaDefinition(){const t=this._lexer.token,s=this.parseDescription();this.expectKeyword("schema");const n=this.parseConstDirectives(),r=this.many(x.BRACE_L,this.parseOperationTypeDefinition,x.BRACE_R);return this.node(t,{kind:P.SCHEMA_DEFINITION,description:s,directives:n,operationTypes:r})}parseOperationTypeDefinition(){const t=this._lexer.token,s=this.parseOperationType();this.expectToken(x.COLON);const n=this.parseNamedType();return this.node(t,{kind:P.OPERATION_TYPE_DEFINITION,operation:s,type:n})}parseScalarTypeDefinition(){const t=this._lexer.token,s=this.parseDescription();this.expectKeyword("scalar");const n=this.parseName(),r=this.parseConstDirectives();return this.node(t,{kind:P.SCALAR_TYPE_DEFINITION,description:s,name:n,directives:r})}parseObjectTypeDefinition(){const t=this._lexer.token,s=this.parseDescription();this.expectKeyword("type");const n=this.parseName(),r=this.parseImplementsInterfaces(),l=this.parseConstDirectives(),d=this.parseFieldsDefinition();return this.node(t,{kind:P.OBJECT_TYPE_DEFINITION,description:s,name:n,interfaces:r,directives:l,fields:d})}parseImplementsInterfaces(){return this.expectOptionalKeyword("implements")?this.delimitedMany(x.AMP,this.parseNamedType):[]}parseFieldsDefinition(){return this.optionalMany(x.BRACE_L,this.parseFieldDefinition,x.BRACE_R)}parseFieldDefinition(){const t=this._lexer.token,s=this.parseDescription(),n=this.parseName(),r=this.parseArgumentDefs();this.expectToken(x.COLON);const l=this.parseTypeReference(),d=this.parseConstDirectives();return this.node(t,{kind:P.FIELD_DEFINITION,description:s,name:n,arguments:r,type:l,directives:d})}parseArgumentDefs(){return this.optionalMany(x.PAREN_L,this.parseInputValueDef,x.PAREN_R)}parseInputValueDef(){const t=this._lexer.token,s=this.parseDescription(),n=this.parseName();this.expectToken(x.COLON);const r=this.parseTypeReference();let l;this.expectOptionalToken(x.EQUALS)&&(l=this.parseConstValueLiteral());const d=this.parseConstDirectives();return this.node(t,{kind:P.INPUT_VALUE_DEFINITION,description:s,name:n,type:r,defaultValue:l,directives:d})}parseInterfaceTypeDefinition(){const t=this._lexer.token,s=this.parseDescription();this.expectKeyword("interface");const n=this.parseName(),r=this.parseImplementsInterfaces(),l=this.parseConstDirectives(),d=this.parseFieldsDefinition();return this.node(t,{kind:P.INTERFACE_TYPE_DEFINITION,description:s,name:n,interfaces:r,directives:l,fields:d})}parseUnionTypeDefinition(){const t=this._lexer.token,s=this.parseDescription();this.expectKeyword("union");const n=this.parseName(),r=this.parseConstDirectives(),l=this.parseUnionMemberTypes();return this.node(t,{kind:P.UNION_TYPE_DEFINITION,description:s,name:n,directives:r,types:l})}parseUnionMemberTypes(){return this.expectOptionalToken(x.EQUALS)?this.delimitedMany(x.PIPE,this.parseNamedType):[]}parseEnumTypeDefinition(){const t=this._lexer.token,s=this.parseDescription();this.expectKeyword("enum");const n=this.parseName(),r=this.parseConstDirectives(),l=this.parseEnumValuesDefinition();return this.node(t,{kind:P.ENUM_TYPE_DEFINITION,description:s,name:n,directives:r,values:l})}parseEnumValuesDefinition(){return this.optionalMany(x.BRACE_L,this.parseEnumValueDefinition,x.BRACE_R)}parseEnumValueDefinition(){const t=this._lexer.token,s=this.parseDescription(),n=this.parseEnumValueName(),r=this.parseConstDirectives();return this.node(t,{kind:P.ENUM_VALUE_DEFINITION,description:s,name:n,directives:r})}parseEnumValueName(){if(this._lexer.token.value==="true"||this._lexer.token.value==="false"||this._lexer.token.value==="null")throw Ze(this._lexer.source,this._lexer.token.start,`${es(this._lexer.token)} is reserved and cannot be used for an enum value.`);return this.parseName()}parseInputObjectTypeDefinition(){const t=this._lexer.token,s=this.parseDescription();this.expectKeyword("input");const n=this.parseName(),r=this.parseConstDirectives(),l=this.parseInputFieldsDefinition();return this.node(t,{kind:P.INPUT_OBJECT_TYPE_DEFINITION,description:s,name:n,directives:r,fields:l})}parseInputFieldsDefinition(){return this.optionalMany(x.BRACE_L,this.parseInputValueDef,x.BRACE_R)}parseTypeSystemExtension(){const t=this._lexer.lookahead();if(t.kind===x.NAME)switch(t.value){case"schema":return this.parseSchemaExtension();case"scalar":return this.parseScalarTypeExtension();case"type":return this.parseObjectTypeExtension();case"interface":return this.parseInterfaceTypeExtension();case"union":return this.parseUnionTypeExtension();case"enum":return this.parseEnumTypeExtension();case"input":return this.parseInputObjectTypeExtension()}throw this.unexpected(t)}parseSchemaExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("schema");const s=this.parseConstDirectives(),n=this.optionalMany(x.BRACE_L,this.parseOperationTypeDefinition,x.BRACE_R);if(s.length===0&&n.length===0)throw this.unexpected();return this.node(t,{kind:P.SCHEMA_EXTENSION,directives:s,operationTypes:n})}parseScalarTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("scalar");const s=this.parseName(),n=this.parseConstDirectives();if(n.length===0)throw this.unexpected();return this.node(t,{kind:P.SCALAR_TYPE_EXTENSION,name:s,directives:n})}parseObjectTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("type");const s=this.parseName(),n=this.parseImplementsInterfaces(),r=this.parseConstDirectives(),l=this.parseFieldsDefinition();if(n.length===0&&r.length===0&&l.length===0)throw this.unexpected();return this.node(t,{kind:P.OBJECT_TYPE_EXTENSION,name:s,interfaces:n,directives:r,fields:l})}parseInterfaceTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("interface");const s=this.parseName(),n=this.parseImplementsInterfaces(),r=this.parseConstDirectives(),l=this.parseFieldsDefinition();if(n.length===0&&r.length===0&&l.length===0)throw this.unexpected();return this.node(t,{kind:P.INTERFACE_TYPE_EXTENSION,name:s,interfaces:n,directives:r,fields:l})}parseUnionTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("union");const s=this.parseName(),n=this.parseConstDirectives(),r=this.parseUnionMemberTypes();if(n.length===0&&r.length===0)throw this.unexpected();return this.node(t,{kind:P.UNION_TYPE_EXTENSION,name:s,directives:n,types:r})}parseEnumTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("enum");const s=this.parseName(),n=this.parseConstDirectives(),r=this.parseEnumValuesDefinition();if(n.length===0&&r.length===0)throw this.unexpected();return this.node(t,{kind:P.ENUM_TYPE_EXTENSION,name:s,directives:n,values:r})}parseInputObjectTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("input");const s=this.parseName(),n=this.parseConstDirectives(),r=this.parseInputFieldsDefinition();if(n.length===0&&r.length===0)throw this.unexpected();return this.node(t,{kind:P.INPUT_OBJECT_TYPE_EXTENSION,name:s,directives:n,fields:r})}parseDirectiveDefinition(){const t=this._lexer.token,s=this.parseDescription();this.expectKeyword("directive"),this.expectToken(x.AT);const n=this.parseName(),r=this.parseArgumentDefs(),l=this.expectOptionalKeyword("repeatable");this.expectKeyword("on");const d=this.parseDirectiveLocations();return this.node(t,{kind:P.DIRECTIVE_DEFINITION,description:s,name:n,arguments:r,repeatable:l,locations:d})}parseDirectiveLocations(){return this.delimitedMany(x.PIPE,this.parseDirectiveLocation)}parseDirectiveLocation(){const t=this._lexer.token,s=this.parseName();if(Object.prototype.hasOwnProperty.call(qs,s.value))return s;throw this.unexpected(t)}node(t,s){return this._options.noLocation!==!0&&(s.loc=new pc(t,this._lexer.lastToken,this._lexer.source)),s}peek(t){return this._lexer.token.kind===t}expectToken(t){const s=this._lexer.token;if(s.kind===t)return this.advanceLexer(),s;throw Ze(this._lexer.source,s.start,`Expected ${Rr(t)}, found ${es(s)}.`)}expectOptionalToken(t){return this._lexer.token.kind===t?(this.advanceLexer(),!0):!1}expectKeyword(t){const s=this._lexer.token;if(s.kind===x.NAME&&s.value===t)this.advanceLexer();else throw Ze(this._lexer.source,s.start,`Expected "${t}", found ${es(s)}.`)}expectOptionalKeyword(t){const s=this._lexer.token;return s.kind===x.NAME&&s.value===t?(this.advanceLexer(),!0):!1}unexpected(t){const s=t??this._lexer.token;return Ze(this._lexer.source,s.start,`Unexpected ${es(s)}.`)}any(t,s,n){this.expectToken(t);const r=[];for(;!this.expectOptionalToken(n);)r.push(s.call(this));return r}optionalMany(t,s,n){if(this.expectOptionalToken(t)){const r=[];do r.push(s.call(this));while(!this.expectOptionalToken(n));return r}return[]}many(t,s,n){this.expectToken(t);const r=[];do r.push(s.call(this));while(!this.expectOptionalToken(n));return r}delimitedMany(t,s){this.expectOptionalToken(t);const n=[];do n.push(s.call(this));while(this.expectOptionalToken(t));return n}advanceLexer(){const{maxTokens:t}=this._options,s=this._lexer.advance();if(s.kind!==x.EOF&&(++this._tokenCounter,t!==void 0&&this._tokenCounter>t))throw Ze(this._lexer.source,s.start,`Document contains more that ${t} tokens. Parsing aborted.`)}};function es(e){const t=e.value;return Rr(e.kind)+(t!=null?` "${t}"`:"")}function Rr(e){return Sc(e)?`"${e}"`:e}function Mc(e){return`"${e.replace(Kc,Ec)}"`}const Kc=/[\x00-\x1f\x22\x5c\x7f-\x9f]/g;function Ec(e){return zc[e.charCodeAt(0)]}const zc=["\\u0000","\\u0001","\\u0002","\\u0003","\\u0004","\\u0005","\\u0006","\\u0007","\\b","\\t","\\n","\\u000B","\\f","\\r","\\u000E","\\u000F","\\u0010","\\u0011","\\u0012","\\u0013","\\u0014","\\u0015","\\u0016","\\u0017","\\u0018","\\u0019","\\u001A","\\u001B","\\u001C","\\u001D","\\u001E","\\u001F","","",'\\"',"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\\\","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\u007F","\\u0080","\\u0081","\\u0082","\\u0083","\\u0084","\\u0085","\\u0086","\\u0087","\\u0088","\\u0089","\\u008A","\\u008B","\\u008C","\\u008D","\\u008E","\\u008F","\\u0090","\\u0091","\\u0092","\\u0093","\\u0094","\\u0095","\\u0096","\\u0097","\\u0098","\\u0099","\\u009A","\\u009B","\\u009C","\\u009D","\\u009E","\\u009F"],Pc=Object.freeze({});function Hc(e,t,s=fr){const n=new Map;for(const S of Object.values(P))n.set(S,Dc(t,S));let r,l=Array.isArray(e),d=[e],f=-1,m=[],h=e,p,o;const a=[],i=[];do{f++;const S=f===d.length,Z=S&&m.length!==0;if(S){if(p=i.length===0?void 0:a[a.length-1],h=o,o=i.pop(),Z)if(l){h=h.slice();let R=0;for(const[y,g]of m){const V=y-R;g===null?(h.splice(V,1),R++):h[V]=g}}else{h=ne({},h);for(const[R,y]of m)h[R]=y}f=r.index,d=r.keys,m=r.edits,l=r.inArray,r=r.prev}else if(o){if(p=l?f:d[f],h=o[p],h==null)continue;a.push(p)}let I;if(!Array.isArray(h)){var c,u;br(h)||_t(!1,`Invalid AST Node: ${sn(h)}.`);const R=S?(c=n.get(h.kind))===null||c===void 0?void 0:c.leave:(u=n.get(h.kind))===null||u===void 0?void 0:u.enter;if(I=R?.call(t,h,p,o,a,i),I===Pc)break;if(I===!1){if(!S){a.pop();continue}}else if(I!==void 0&&(m.push([p,I]),!S))if(br(I))h=I;else{a.pop();continue}}if(I===void 0&&Z&&m.push([p,h]),S)a.pop();else{var b;r={inArray:l,index:f,keys:d,edits:m,prev:r},l=Array.isArray(h),d=l?h:(b=s[h.kind])!==null&&b!==void 0?b:[],f=-1,m=[],o&&i.push(o),o=h}}while(r!==void 0);return m.length!==0?m[m.length-1][1]:e}function Dc(e,t){const s=e[t];return typeof s=="object"?s:typeof s=="function"?{enter:s,leave:void 0}:{enter:e.enter,leave:e.leave}}function vr(e){return Hc(e,Qc)}const Bc=80,Qc={Name:{leave:e=>e.value},Variable:{leave:e=>"$"+e.name},Document:{leave:e=>F(e.definitions,`
22
+ spurious results.`)}}return!1};let Gr=class{constructor(t,s="GraphQL request",n={line:1,column:1}){typeof t=="string"||_t(!1,`Body must be a string. Received: ${sn(t)}.`),this.body=t,this.name=s,this.locationOffset=n,this.locationOffset.line>0||_t(!1,"line in locationOffset is 1-indexed and must be positive."),this.locationOffset.column>0||_t(!1,"column in locationOffset is 1-indexed and must be positive.")}get[Symbol.toStringTag](){return"Source"}};function Oc(e){return Mc(e,Gr)}function Rr(e,t){const s=new Kc(e,t),n=s.parseDocument();return Object.defineProperty(n,"tokenCount",{enumerable:!1,value:s.tokenCount}),n}let Kc=class{constructor(t,s={}){const n=Oc(t)?t:new Gr(t);this._lexer=new Ic(n),this._options=s,this._tokenCounter=0}get tokenCount(){return this._tokenCounter}parseName(){const t=this.expectToken(x.NAME);return this.node(t,{kind:P.NAME,value:t.value})}parseDocument(){return this.node(this._lexer.token,{kind:P.DOCUMENT,definitions:this.many(x.SOF,this.parseDefinition,x.EOF)})}parseDefinition(){if(this.peek(x.BRACE_L))return this.parseOperationDefinition();const t=this.peekDescription(),s=t?this._lexer.lookahead():this._lexer.token;if(s.kind===x.NAME){switch(s.value){case"schema":return this.parseSchemaDefinition();case"scalar":return this.parseScalarTypeDefinition();case"type":return this.parseObjectTypeDefinition();case"interface":return this.parseInterfaceTypeDefinition();case"union":return this.parseUnionTypeDefinition();case"enum":return this.parseEnumTypeDefinition();case"input":return this.parseInputObjectTypeDefinition();case"directive":return this.parseDirectiveDefinition()}if(t)throw Ze(this._lexer.source,this._lexer.token.start,"Unexpected description, descriptions are supported only on type definitions.");switch(s.value){case"query":case"mutation":case"subscription":return this.parseOperationDefinition();case"fragment":return this.parseFragmentDefinition();case"extend":return this.parseTypeSystemExtension()}}throw this.unexpected(s)}parseOperationDefinition(){const t=this._lexer.token;if(this.peek(x.BRACE_L))return this.node(t,{kind:P.OPERATION_DEFINITION,operation:ht.QUERY,name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet()});const s=this.parseOperationType();let n;return this.peek(x.NAME)&&(n=this.parseName()),this.node(t,{kind:P.OPERATION_DEFINITION,operation:s,name:n,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseOperationType(){const t=this.expectToken(x.NAME);switch(t.value){case"query":return ht.QUERY;case"mutation":return ht.MUTATION;case"subscription":return ht.SUBSCRIPTION}throw this.unexpected(t)}parseVariableDefinitions(){return this.optionalMany(x.PAREN_L,this.parseVariableDefinition,x.PAREN_R)}parseVariableDefinition(){return this.node(this._lexer.token,{kind:P.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(x.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(x.EQUALS)?this.parseConstValueLiteral():void 0,directives:this.parseConstDirectives()})}parseVariable(){const t=this._lexer.token;return this.expectToken(x.DOLLAR),this.node(t,{kind:P.VARIABLE,name:this.parseName()})}parseSelectionSet(){return this.node(this._lexer.token,{kind:P.SELECTION_SET,selections:this.many(x.BRACE_L,this.parseSelection,x.BRACE_R)})}parseSelection(){return this.peek(x.SPREAD)?this.parseFragment():this.parseField()}parseField(){const t=this._lexer.token,s=this.parseName();let n,r;return this.expectOptionalToken(x.COLON)?(n=s,r=this.parseName()):r=s,this.node(t,{kind:P.FIELD,alias:n,name:r,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(x.BRACE_L)?this.parseSelectionSet():void 0})}parseArguments(t){const s=t?this.parseConstArgument:this.parseArgument;return this.optionalMany(x.PAREN_L,s,x.PAREN_R)}parseArgument(t=!1){const s=this._lexer.token,n=this.parseName();return this.expectToken(x.COLON),this.node(s,{kind:P.ARGUMENT,name:n,value:this.parseValueLiteral(t)})}parseConstArgument(){return this.parseArgument(!0)}parseFragment(){const t=this._lexer.token;this.expectToken(x.SPREAD);const s=this.expectOptionalKeyword("on");return!s&&this.peek(x.NAME)?this.node(t,{kind:P.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1)}):this.node(t,{kind:P.INLINE_FRAGMENT,typeCondition:s?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseFragmentDefinition(){const t=this._lexer.token;return this.expectKeyword("fragment"),this._options.allowLegacyFragmentVariables===!0?this.node(t,{kind:P.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()}):this.node(t,{kind:P.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseFragmentName(){if(this._lexer.token.value==="on")throw this.unexpected();return this.parseName()}parseValueLiteral(t){const s=this._lexer.token;switch(s.kind){case x.BRACKET_L:return this.parseList(t);case x.BRACE_L:return this.parseObject(t);case x.INT:return this.advanceLexer(),this.node(s,{kind:P.INT,value:s.value});case x.FLOAT:return this.advanceLexer(),this.node(s,{kind:P.FLOAT,value:s.value});case x.STRING:case x.BLOCK_STRING:return this.parseStringLiteral();case x.NAME:switch(this.advanceLexer(),s.value){case"true":return this.node(s,{kind:P.BOOLEAN,value:!0});case"false":return this.node(s,{kind:P.BOOLEAN,value:!1});case"null":return this.node(s,{kind:P.NULL});default:return this.node(s,{kind:P.ENUM,value:s.value})}case x.DOLLAR:if(t)if(this.expectToken(x.DOLLAR),this._lexer.token.kind===x.NAME){const n=this._lexer.token.value;throw Ze(this._lexer.source,s.start,`Unexpected variable "$${n}" in constant value.`)}else throw this.unexpected(s);return this.parseVariable();default:throw this.unexpected()}}parseConstValueLiteral(){return this.parseValueLiteral(!0)}parseStringLiteral(){const t=this._lexer.token;return this.advanceLexer(),this.node(t,{kind:P.STRING,value:t.value,block:t.kind===x.BLOCK_STRING})}parseList(t){const s=()=>this.parseValueLiteral(t);return this.node(this._lexer.token,{kind:P.LIST,values:this.any(x.BRACKET_L,s,x.BRACKET_R)})}parseObject(t){const s=()=>this.parseObjectField(t);return this.node(this._lexer.token,{kind:P.OBJECT,fields:this.any(x.BRACE_L,s,x.BRACE_R)})}parseObjectField(t){const s=this._lexer.token,n=this.parseName();return this.expectToken(x.COLON),this.node(s,{kind:P.OBJECT_FIELD,name:n,value:this.parseValueLiteral(t)})}parseDirectives(t){const s=[];for(;this.peek(x.AT);)s.push(this.parseDirective(t));return s}parseConstDirectives(){return this.parseDirectives(!0)}parseDirective(t){const s=this._lexer.token;return this.expectToken(x.AT),this.node(s,{kind:P.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(t)})}parseTypeReference(){const t=this._lexer.token;let s;if(this.expectOptionalToken(x.BRACKET_L)){const n=this.parseTypeReference();this.expectToken(x.BRACKET_R),s=this.node(t,{kind:P.LIST_TYPE,type:n})}else s=this.parseNamedType();return this.expectOptionalToken(x.BANG)?this.node(t,{kind:P.NON_NULL_TYPE,type:s}):s}parseNamedType(){return this.node(this._lexer.token,{kind:P.NAMED_TYPE,name:this.parseName()})}peekDescription(){return this.peek(x.STRING)||this.peek(x.BLOCK_STRING)}parseDescription(){if(this.peekDescription())return this.parseStringLiteral()}parseSchemaDefinition(){const t=this._lexer.token,s=this.parseDescription();this.expectKeyword("schema");const n=this.parseConstDirectives(),r=this.many(x.BRACE_L,this.parseOperationTypeDefinition,x.BRACE_R);return this.node(t,{kind:P.SCHEMA_DEFINITION,description:s,directives:n,operationTypes:r})}parseOperationTypeDefinition(){const t=this._lexer.token,s=this.parseOperationType();this.expectToken(x.COLON);const n=this.parseNamedType();return this.node(t,{kind:P.OPERATION_TYPE_DEFINITION,operation:s,type:n})}parseScalarTypeDefinition(){const t=this._lexer.token,s=this.parseDescription();this.expectKeyword("scalar");const n=this.parseName(),r=this.parseConstDirectives();return this.node(t,{kind:P.SCALAR_TYPE_DEFINITION,description:s,name:n,directives:r})}parseObjectTypeDefinition(){const t=this._lexer.token,s=this.parseDescription();this.expectKeyword("type");const n=this.parseName(),r=this.parseImplementsInterfaces(),l=this.parseConstDirectives(),d=this.parseFieldsDefinition();return this.node(t,{kind:P.OBJECT_TYPE_DEFINITION,description:s,name:n,interfaces:r,directives:l,fields:d})}parseImplementsInterfaces(){return this.expectOptionalKeyword("implements")?this.delimitedMany(x.AMP,this.parseNamedType):[]}parseFieldsDefinition(){return this.optionalMany(x.BRACE_L,this.parseFieldDefinition,x.BRACE_R)}parseFieldDefinition(){const t=this._lexer.token,s=this.parseDescription(),n=this.parseName(),r=this.parseArgumentDefs();this.expectToken(x.COLON);const l=this.parseTypeReference(),d=this.parseConstDirectives();return this.node(t,{kind:P.FIELD_DEFINITION,description:s,name:n,arguments:r,type:l,directives:d})}parseArgumentDefs(){return this.optionalMany(x.PAREN_L,this.parseInputValueDef,x.PAREN_R)}parseInputValueDef(){const t=this._lexer.token,s=this.parseDescription(),n=this.parseName();this.expectToken(x.COLON);const r=this.parseTypeReference();let l;this.expectOptionalToken(x.EQUALS)&&(l=this.parseConstValueLiteral());const d=this.parseConstDirectives();return this.node(t,{kind:P.INPUT_VALUE_DEFINITION,description:s,name:n,type:r,defaultValue:l,directives:d})}parseInterfaceTypeDefinition(){const t=this._lexer.token,s=this.parseDescription();this.expectKeyword("interface");const n=this.parseName(),r=this.parseImplementsInterfaces(),l=this.parseConstDirectives(),d=this.parseFieldsDefinition();return this.node(t,{kind:P.INTERFACE_TYPE_DEFINITION,description:s,name:n,interfaces:r,directives:l,fields:d})}parseUnionTypeDefinition(){const t=this._lexer.token,s=this.parseDescription();this.expectKeyword("union");const n=this.parseName(),r=this.parseConstDirectives(),l=this.parseUnionMemberTypes();return this.node(t,{kind:P.UNION_TYPE_DEFINITION,description:s,name:n,directives:r,types:l})}parseUnionMemberTypes(){return this.expectOptionalToken(x.EQUALS)?this.delimitedMany(x.PIPE,this.parseNamedType):[]}parseEnumTypeDefinition(){const t=this._lexer.token,s=this.parseDescription();this.expectKeyword("enum");const n=this.parseName(),r=this.parseConstDirectives(),l=this.parseEnumValuesDefinition();return this.node(t,{kind:P.ENUM_TYPE_DEFINITION,description:s,name:n,directives:r,values:l})}parseEnumValuesDefinition(){return this.optionalMany(x.BRACE_L,this.parseEnumValueDefinition,x.BRACE_R)}parseEnumValueDefinition(){const t=this._lexer.token,s=this.parseDescription(),n=this.parseEnumValueName(),r=this.parseConstDirectives();return this.node(t,{kind:P.ENUM_VALUE_DEFINITION,description:s,name:n,directives:r})}parseEnumValueName(){if(this._lexer.token.value==="true"||this._lexer.token.value==="false"||this._lexer.token.value==="null")throw Ze(this._lexer.source,this._lexer.token.start,`${es(this._lexer.token)} is reserved and cannot be used for an enum value.`);return this.parseName()}parseInputObjectTypeDefinition(){const t=this._lexer.token,s=this.parseDescription();this.expectKeyword("input");const n=this.parseName(),r=this.parseConstDirectives(),l=this.parseInputFieldsDefinition();return this.node(t,{kind:P.INPUT_OBJECT_TYPE_DEFINITION,description:s,name:n,directives:r,fields:l})}parseInputFieldsDefinition(){return this.optionalMany(x.BRACE_L,this.parseInputValueDef,x.BRACE_R)}parseTypeSystemExtension(){const t=this._lexer.lookahead();if(t.kind===x.NAME)switch(t.value){case"schema":return this.parseSchemaExtension();case"scalar":return this.parseScalarTypeExtension();case"type":return this.parseObjectTypeExtension();case"interface":return this.parseInterfaceTypeExtension();case"union":return this.parseUnionTypeExtension();case"enum":return this.parseEnumTypeExtension();case"input":return this.parseInputObjectTypeExtension()}throw this.unexpected(t)}parseSchemaExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("schema");const s=this.parseConstDirectives(),n=this.optionalMany(x.BRACE_L,this.parseOperationTypeDefinition,x.BRACE_R);if(s.length===0&&n.length===0)throw this.unexpected();return this.node(t,{kind:P.SCHEMA_EXTENSION,directives:s,operationTypes:n})}parseScalarTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("scalar");const s=this.parseName(),n=this.parseConstDirectives();if(n.length===0)throw this.unexpected();return this.node(t,{kind:P.SCALAR_TYPE_EXTENSION,name:s,directives:n})}parseObjectTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("type");const s=this.parseName(),n=this.parseImplementsInterfaces(),r=this.parseConstDirectives(),l=this.parseFieldsDefinition();if(n.length===0&&r.length===0&&l.length===0)throw this.unexpected();return this.node(t,{kind:P.OBJECT_TYPE_EXTENSION,name:s,interfaces:n,directives:r,fields:l})}parseInterfaceTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("interface");const s=this.parseName(),n=this.parseImplementsInterfaces(),r=this.parseConstDirectives(),l=this.parseFieldsDefinition();if(n.length===0&&r.length===0&&l.length===0)throw this.unexpected();return this.node(t,{kind:P.INTERFACE_TYPE_EXTENSION,name:s,interfaces:n,directives:r,fields:l})}parseUnionTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("union");const s=this.parseName(),n=this.parseConstDirectives(),r=this.parseUnionMemberTypes();if(n.length===0&&r.length===0)throw this.unexpected();return this.node(t,{kind:P.UNION_TYPE_EXTENSION,name:s,directives:n,types:r})}parseEnumTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("enum");const s=this.parseName(),n=this.parseConstDirectives(),r=this.parseEnumValuesDefinition();if(n.length===0&&r.length===0)throw this.unexpected();return this.node(t,{kind:P.ENUM_TYPE_EXTENSION,name:s,directives:n,values:r})}parseInputObjectTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("input");const s=this.parseName(),n=this.parseConstDirectives(),r=this.parseInputFieldsDefinition();if(n.length===0&&r.length===0)throw this.unexpected();return this.node(t,{kind:P.INPUT_OBJECT_TYPE_EXTENSION,name:s,directives:n,fields:r})}parseDirectiveDefinition(){const t=this._lexer.token,s=this.parseDescription();this.expectKeyword("directive"),this.expectToken(x.AT);const n=this.parseName(),r=this.parseArgumentDefs(),l=this.expectOptionalKeyword("repeatable");this.expectKeyword("on");const d=this.parseDirectiveLocations();return this.node(t,{kind:P.DIRECTIVE_DEFINITION,description:s,name:n,arguments:r,repeatable:l,locations:d})}parseDirectiveLocations(){return this.delimitedMany(x.PIPE,this.parseDirectiveLocation)}parseDirectiveLocation(){const t=this._lexer.token,s=this.parseName();if(Object.prototype.hasOwnProperty.call(qs,s.value))return s;throw this.unexpected(t)}node(t,s){return this._options.noLocation!==!0&&(s.loc=new fc(t,this._lexer.lastToken,this._lexer.source)),s}peek(t){return this._lexer.token.kind===t}expectToken(t){const s=this._lexer.token;if(s.kind===t)return this.advanceLexer(),s;throw Ze(this._lexer.source,s.start,`Expected ${vr(t)}, found ${es(s)}.`)}expectOptionalToken(t){return this._lexer.token.kind===t?(this.advanceLexer(),!0):!1}expectKeyword(t){const s=this._lexer.token;if(s.kind===x.NAME&&s.value===t)this.advanceLexer();else throw Ze(this._lexer.source,s.start,`Expected "${t}", found ${es(s)}.`)}expectOptionalKeyword(t){const s=this._lexer.token;return s.kind===x.NAME&&s.value===t?(this.advanceLexer(),!0):!1}unexpected(t){const s=t??this._lexer.token;return Ze(this._lexer.source,s.start,`Unexpected ${es(s)}.`)}any(t,s,n){this.expectToken(t);const r=[];for(;!this.expectOptionalToken(n);)r.push(s.call(this));return r}optionalMany(t,s,n){if(this.expectOptionalToken(t)){const r=[];do r.push(s.call(this));while(!this.expectOptionalToken(n));return r}return[]}many(t,s,n){this.expectToken(t);const r=[];do r.push(s.call(this));while(!this.expectOptionalToken(n));return r}delimitedMany(t,s){this.expectOptionalToken(t);const n=[];do n.push(s.call(this));while(this.expectOptionalToken(t));return n}advanceLexer(){const{maxTokens:t}=this._options,s=this._lexer.advance();if(s.kind!==x.EOF&&(++this._tokenCounter,t!==void 0&&this._tokenCounter>t))throw Ze(this._lexer.source,s.start,`Document contains more that ${t} tokens. Parsing aborted.`)}};function es(e){const t=e.value;return vr(e.kind)+(t!=null?` "${t}"`:"")}function vr(e){return Xc(e)?`"${e}"`:e}function Ec(e){return`"${e.replace(zc,Pc)}"`}const zc=/[\x00-\x1f\x22\x5c\x7f-\x9f]/g;function Pc(e){return Hc[e.charCodeAt(0)]}const Hc=["\\u0000","\\u0001","\\u0002","\\u0003","\\u0004","\\u0005","\\u0006","\\u0007","\\b","\\t","\\n","\\u000B","\\f","\\r","\\u000E","\\u000F","\\u0010","\\u0011","\\u0012","\\u0013","\\u0014","\\u0015","\\u0016","\\u0017","\\u0018","\\u0019","\\u001A","\\u001B","\\u001C","\\u001D","\\u001E","\\u001F","","",'\\"',"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\\\","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\u007F","\\u0080","\\u0081","\\u0082","\\u0083","\\u0084","\\u0085","\\u0086","\\u0087","\\u0088","\\u0089","\\u008A","\\u008B","\\u008C","\\u008D","\\u008E","\\u008F","\\u0090","\\u0091","\\u0092","\\u0093","\\u0094","\\u0095","\\u0096","\\u0097","\\u0098","\\u0099","\\u009A","\\u009B","\\u009C","\\u009D","\\u009E","\\u009F"],Dc=Object.freeze({});function Bc(e,t,s=br){const n=new Map;for(const S of Object.values(P))n.set(S,Qc(t,S));let r,l=Array.isArray(e),d=[e],f=-1,m=[],h=e,p,o;const a=[],i=[];do{f++;const S=f===d.length,Z=S&&m.length!==0;if(S){if(p=i.length===0?void 0:a[a.length-1],h=o,o=i.pop(),Z)if(l){h=h.slice();let R=0;for(const[y,g]of m){const V=y-R;g===null?(h.splice(V,1),R++):h[V]=g}}else{h=ne({},h);for(const[R,y]of m)h[R]=y}f=r.index,d=r.keys,m=r.edits,l=r.inArray,r=r.prev}else if(o){if(p=l?f:d[f],h=o[p],h==null)continue;a.push(p)}let I;if(!Array.isArray(h)){var c,u;yr(h)||_t(!1,`Invalid AST Node: ${sn(h)}.`);const R=S?(c=n.get(h.kind))===null||c===void 0?void 0:c.leave:(u=n.get(h.kind))===null||u===void 0?void 0:u.enter;if(I=R?.call(t,h,p,o,a,i),I===Dc)break;if(I===!1){if(!S){a.pop();continue}}else if(I!==void 0&&(m.push([p,I]),!S))if(yr(I))h=I;else{a.pop();continue}}if(I===void 0&&Z&&m.push([p,h]),S)a.pop();else{var b;r={inArray:l,index:f,keys:d,edits:m,prev:r},l=Array.isArray(h),d=l?h:(b=s[h.kind])!==null&&b!==void 0?b:[],f=-1,m=[],o&&i.push(o),o=h}}while(r!==void 0);return m.length!==0?m[m.length-1][1]:e}function Qc(e,t){const s=e[t];return typeof s=="object"?s:typeof s=="function"?{enter:s,leave:void 0}:{enter:e.enter,leave:e.leave}}function Wr(e){return Bc(e,Ac)}const jc=80,Ac={Name:{leave:e=>e.value},Variable:{leave:e=>"$"+e.name},Document:{leave:e=>F(e.definitions,`
23
23
 
24
- `)},OperationDefinition:{leave(e){const t=ee("(",F(e.variableDefinitions,", "),")"),s=F([e.operation,F([e.name,t]),F(e.directives," ")]," ");return(s==="query"?"":s+" ")+e.selectionSet}},VariableDefinition:{leave:({variable:e,type:t,defaultValue:s,directives:n})=>e+": "+t+ee(" = ",s)+ee(" ",F(n," "))},SelectionSet:{leave:({selections:e})=>Me(e)},Field:{leave({alias:e,name:t,arguments:s,directives:n,selectionSet:r}){const l=ee("",e,": ")+t;let d=l+ee("(",F(s,", "),")");return d.length>Bc&&(d=l+ee(`(
24
+ `)},OperationDefinition:{leave(e){const t=ee("(",F(e.variableDefinitions,", "),")"),s=F([e.operation,F([e.name,t]),F(e.directives," ")]," ");return(s==="query"?"":s+" ")+e.selectionSet}},VariableDefinition:{leave:({variable:e,type:t,defaultValue:s,directives:n})=>e+": "+t+ee(" = ",s)+ee(" ",F(n," "))},SelectionSet:{leave:({selections:e})=>Oe(e)},Field:{leave({alias:e,name:t,arguments:s,directives:n,selectionSet:r}){const l=ee("",e,": ")+t;let d=l+ee("(",F(s,", "),")");return d.length>jc&&(d=l+ee(`(
25
25
  `,ts(F(s,`
26
26
  `)),`
27
- )`)),F([d,F(n," "),r]," ")}},Argument:{leave:({name:e,value:t})=>e+": "+t},FragmentSpread:{leave:({name:e,directives:t})=>"..."+e+ee(" ",F(t," "))},InlineFragment:{leave:({typeCondition:e,directives:t,selectionSet:s})=>F(["...",ee("on ",e),F(t," "),s]," ")},FragmentDefinition:{leave:({name:e,typeCondition:t,variableDefinitions:s,directives:n,selectionSet:r})=>`fragment ${e}${ee("(",F(s,", "),")")} on ${t} ${ee("",F(n," ")," ")}`+r},IntValue:{leave:({value:e})=>e},FloatValue:{leave:({value:e})=>e},StringValue:{leave:({value:e,block:t})=>t?gc(e):Mc(e)},BooleanValue:{leave:({value:e})=>e?"true":"false"},NullValue:{leave:()=>"null"},EnumValue:{leave:({value:e})=>e},ListValue:{leave:({values:e})=>"["+F(e,", ")+"]"},ObjectValue:{leave:({fields:e})=>"{"+F(e,", ")+"}"},ObjectField:{leave:({name:e,value:t})=>e+": "+t},Directive:{leave:({name:e,arguments:t})=>"@"+e+ee("(",F(t,", "),")")},NamedType:{leave:({name:e})=>e},ListType:{leave:({type:e})=>"["+e+"]"},NonNullType:{leave:({type:e})=>e+"!"},SchemaDefinition:{leave:({description:e,directives:t,operationTypes:s})=>ee("",e,`
28
- `)+F(["schema",F(t," "),Me(s)]," ")},OperationTypeDefinition:{leave:({operation:e,type:t})=>e+": "+t},ScalarTypeDefinition:{leave:({description:e,name:t,directives:s})=>ee("",e,`
27
+ )`)),F([d,F(n," "),r]," ")}},Argument:{leave:({name:e,value:t})=>e+": "+t},FragmentSpread:{leave:({name:e,directives:t})=>"..."+e+ee(" ",F(t," "))},InlineFragment:{leave:({typeCondition:e,directives:t,selectionSet:s})=>F(["...",ee("on ",e),F(t," "),s]," ")},FragmentDefinition:{leave:({name:e,typeCondition:t,variableDefinitions:s,directives:n,selectionSet:r})=>`fragment ${e}${ee("(",F(s,", "),")")} on ${t} ${ee("",F(n," ")," ")}`+r},IntValue:{leave:({value:e})=>e},FloatValue:{leave:({value:e})=>e},StringValue:{leave:({value:e,block:t})=>t?Sc(e):Ec(e)},BooleanValue:{leave:({value:e})=>e?"true":"false"},NullValue:{leave:()=>"null"},EnumValue:{leave:({value:e})=>e},ListValue:{leave:({values:e})=>"["+F(e,", ")+"]"},ObjectValue:{leave:({fields:e})=>"{"+F(e,", ")+"}"},ObjectField:{leave:({name:e,value:t})=>e+": "+t},Directive:{leave:({name:e,arguments:t})=>"@"+e+ee("(",F(t,", "),")")},NamedType:{leave:({name:e})=>e},ListType:{leave:({type:e})=>"["+e+"]"},NonNullType:{leave:({type:e})=>e+"!"},SchemaDefinition:{leave:({description:e,directives:t,operationTypes:s})=>ee("",e,`
28
+ `)+F(["schema",F(t," "),Oe(s)]," ")},OperationTypeDefinition:{leave:({operation:e,type:t})=>e+": "+t},ScalarTypeDefinition:{leave:({description:e,name:t,directives:s})=>ee("",e,`
29
29
  `)+F(["scalar",t,F(s," ")]," ")},ObjectTypeDefinition:{leave:({description:e,name:t,interfaces:s,directives:n,fields:r})=>ee("",e,`
30
- `)+F(["type",t,ee("implements ",F(s," & ")),F(n," "),Me(r)]," ")},FieldDefinition:{leave:({description:e,name:t,arguments:s,type:n,directives:r})=>ee("",e,`
31
- `)+t+(Wr(s)?ee(`(
30
+ `)+F(["type",t,ee("implements ",F(s," & ")),F(n," "),Oe(r)]," ")},FieldDefinition:{leave:({description:e,name:t,arguments:s,type:n,directives:r})=>ee("",e,`
31
+ `)+t+(wr(s)?ee(`(
32
32
  `,ts(F(s,`
33
33
  `)),`
34
34
  )`):ee("(",F(s,", "),")"))+": "+n+ee(" ",F(r," "))},InputValueDefinition:{leave:({description:e,name:t,type:s,defaultValue:n,directives:r})=>ee("",e,`
35
35
  `)+F([t+": "+s,ee("= ",n),F(r," ")]," ")},InterfaceTypeDefinition:{leave:({description:e,name:t,interfaces:s,directives:n,fields:r})=>ee("",e,`
36
- `)+F(["interface",t,ee("implements ",F(s," & ")),F(n," "),Me(r)]," ")},UnionTypeDefinition:{leave:({description:e,name:t,directives:s,types:n})=>ee("",e,`
36
+ `)+F(["interface",t,ee("implements ",F(s," & ")),F(n," "),Oe(r)]," ")},UnionTypeDefinition:{leave:({description:e,name:t,directives:s,types:n})=>ee("",e,`
37
37
  `)+F(["union",t,F(s," "),ee("= ",F(n," | "))]," ")},EnumTypeDefinition:{leave:({description:e,name:t,directives:s,values:n})=>ee("",e,`
38
- `)+F(["enum",t,F(s," "),Me(n)]," ")},EnumValueDefinition:{leave:({description:e,name:t,directives:s})=>ee("",e,`
38
+ `)+F(["enum",t,F(s," "),Oe(n)]," ")},EnumValueDefinition:{leave:({description:e,name:t,directives:s})=>ee("",e,`
39
39
  `)+F([t,F(s," ")]," ")},InputObjectTypeDefinition:{leave:({description:e,name:t,directives:s,fields:n})=>ee("",e,`
40
- `)+F(["input",t,F(s," "),Me(n)]," ")},DirectiveDefinition:{leave:({description:e,name:t,arguments:s,repeatable:n,locations:r})=>ee("",e,`
41
- `)+"directive @"+t+(Wr(s)?ee(`(
40
+ `)+F(["input",t,F(s," "),Oe(n)]," ")},DirectiveDefinition:{leave:({description:e,name:t,arguments:s,repeatable:n,locations:r})=>ee("",e,`
41
+ `)+"directive @"+t+(wr(s)?ee(`(
42
42
  `,ts(F(s,`
43
43
  `)),`
44
- )`):ee("(",F(s,", "),")"))+(n?" repeatable":"")+" on "+F(r," | ")},SchemaExtension:{leave:({directives:e,operationTypes:t})=>F(["extend schema",F(e," "),Me(t)]," ")},ScalarTypeExtension:{leave:({name:e,directives:t})=>F(["extend scalar",e,F(t," ")]," ")},ObjectTypeExtension:{leave:({name:e,interfaces:t,directives:s,fields:n})=>F(["extend type",e,ee("implements ",F(t," & ")),F(s," "),Me(n)]," ")},InterfaceTypeExtension:{leave:({name:e,interfaces:t,directives:s,fields:n})=>F(["extend interface",e,ee("implements ",F(t," & ")),F(s," "),Me(n)]," ")},UnionTypeExtension:{leave:({name:e,directives:t,types:s})=>F(["extend union",e,F(t," "),ee("= ",F(s," | "))]," ")},EnumTypeExtension:{leave:({name:e,directives:t,values:s})=>F(["extend enum",e,F(t," "),Me(s)]," ")},InputObjectTypeExtension:{leave:({name:e,directives:t,fields:s})=>F(["extend input",e,F(t," "),Me(s)]," ")}};function F(e,t=""){var s;return(s=e?.filter(n=>n).join(t))!==null&&s!==void 0?s:""}function Me(e){return ee(`{
44
+ )`):ee("(",F(s,", "),")"))+(n?" repeatable":"")+" on "+F(r," | ")},SchemaExtension:{leave:({directives:e,operationTypes:t})=>F(["extend schema",F(e," "),Oe(t)]," ")},ScalarTypeExtension:{leave:({name:e,directives:t})=>F(["extend scalar",e,F(t," ")]," ")},ObjectTypeExtension:{leave:({name:e,interfaces:t,directives:s,fields:n})=>F(["extend type",e,ee("implements ",F(t," & ")),F(s," "),Oe(n)]," ")},InterfaceTypeExtension:{leave:({name:e,interfaces:t,directives:s,fields:n})=>F(["extend interface",e,ee("implements ",F(t," & ")),F(s," "),Oe(n)]," ")},UnionTypeExtension:{leave:({name:e,directives:t,types:s})=>F(["extend union",e,F(t," "),ee("= ",F(s," | "))]," ")},EnumTypeExtension:{leave:({name:e,directives:t,values:s})=>F(["extend enum",e,F(t," "),Oe(s)]," ")},InputObjectTypeExtension:{leave:({name:e,directives:t,fields:s})=>F(["extend input",e,F(t," "),Oe(s)]," ")}};function F(e,t=""){var s;return(s=e?.filter(n=>n).join(t))!==null&&s!==void 0?s:""}function Oe(e){return ee(`{
45
45
  `,ts(F(e,`
46
46
  `)),`
47
47
  }`)}function ee(e,t,s=""){return t!=null&&t!==""?e+t+s:""}function ts(e){return ee(" ",e.replace(/\n/g,`
48
- `))}function Wr(e){var t;return(t=e?.some(s=>s.includes(`
49
- `)))!==null&&t!==void 0?t:!1}const nn=JSON,jc=e=>e.toUpperCase(),Ac=e=>{const t={};return e.forEach((s,n)=>{t[n]=s}),t},_c=(e,t,s)=>e.document?e:{document:e,variables:t,requestHeaders:s,signal:void 0},$c=(e,t,s)=>e.query?e:{query:e,variables:t,requestHeaders:s,signal:void 0},qc=(e,t)=>e.documents?e:{documents:e,requestHeaders:t,signal:void 0},wr=e=>{var t,s;let n;const r=e.definitions.filter(l=>l.kind==="OperationDefinition");return r.length===1&&(n=(s=(t=r[0])==null?void 0:t.name)==null?void 0:s.value),n},rn=e=>{if(typeof e=="string"){let s;try{const n=Gr(e);s=wr(n)}catch{}return{query:e,operationName:s}}const t=wr(e);return{query:vr(e),operationName:t}};let kr=class js extends Error{constructor(t,s){const n=`${js.extractMessage(t)}: ${JSON.stringify({response:t,request:s})}`;super(n),Object.setPrototypeOf(this,js.prototype),this.response=t,this.request=s,typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,js)}static extractMessage(t){var s,n,r;return(r=(n=(s=t.errors)==null?void 0:s[0])==null?void 0:n.message)!=null?r:`GraphQL Error (Code: ${t.status})`}};var eu=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function on(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ln={exports:{}};(function(e,t){var s=typeof self<"u"?self:eu,n=function(){function l(){this.fetch=!1,this.DOMException=s.DOMException}return l.prototype=s,new l}();(function(l){(function(d){var f={searchParams:"URLSearchParams"in l,iterable:"Symbol"in l&&"iterator"in Symbol,blob:"FileReader"in l&&"Blob"in l&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in l,arrayBuffer:"ArrayBuffer"in l};function m(G){return G&&DataView.prototype.isPrototypeOf(G)}if(f.arrayBuffer)var h=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],p=ArrayBuffer.isView||function(G){return G&&h.indexOf(Object.prototype.toString.call(G))>-1};function o(G){if(typeof G!="string"&&(G=String(G)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(G))throw new TypeError("Invalid character in header field name");return G.toLowerCase()}function a(G){return typeof G!="string"&&(G=String(G)),G}function i(G){var w={next:function(){var T=G.shift();return{done:T===void 0,value:T}}};return f.iterable&&(w[Symbol.iterator]=function(){return w}),w}function c(G){this.map={},G instanceof c?G.forEach(function(w,T){this.append(T,w)},this):Array.isArray(G)?G.forEach(function(w){this.append(w[0],w[1])},this):G&&Object.getOwnPropertyNames(G).forEach(function(w){this.append(w,G[w])},this)}c.prototype.append=function(G,w){G=o(G),w=a(w);var T=this.map[G];this.map[G]=T?T+", "+w:w},c.prototype.delete=function(G){delete this.map[o(G)]},c.prototype.get=function(G){return G=o(G),this.has(G)?this.map[G]:null},c.prototype.has=function(G){return this.map.hasOwnProperty(o(G))},c.prototype.set=function(G,w){this.map[o(G)]=a(w)},c.prototype.forEach=function(G,w){for(var T in this.map)this.map.hasOwnProperty(T)&&G.call(w,this.map[T],T,this)},c.prototype.keys=function(){var G=[];return this.forEach(function(w,T){G.push(T)}),i(G)},c.prototype.values=function(){var G=[];return this.forEach(function(w){G.push(w)}),i(G)},c.prototype.entries=function(){var G=[];return this.forEach(function(w,T){G.push([T,w])}),i(G)},f.iterable&&(c.prototype[Symbol.iterator]=c.prototype.entries);function u(G){if(G.bodyUsed)return Promise.reject(new TypeError("Already read"));G.bodyUsed=!0}function b(G){return new Promise(function(w,T){G.onload=function(){w(G.result)},G.onerror=function(){T(G.error)}})}function S(G){var w=new FileReader,T=b(w);return w.readAsArrayBuffer(G),T}function Z(G){var w=new FileReader,T=b(w);return w.readAsText(G),T}function I(G){for(var w=new Uint8Array(G),T=new Array(w.length),Y=0;Y<w.length;Y++)T[Y]=String.fromCharCode(w[Y]);return T.join("")}function R(G){if(G.slice)return G.slice(0);var w=new Uint8Array(G.byteLength);return w.set(new Uint8Array(G)),w.buffer}function y(){return this.bodyUsed=!1,this._initBody=function(G){this._bodyInit=G,G?typeof G=="string"?this._bodyText=G:f.blob&&Blob.prototype.isPrototypeOf(G)?this._bodyBlob=G:f.formData&&FormData.prototype.isPrototypeOf(G)?this._bodyFormData=G:f.searchParams&&URLSearchParams.prototype.isPrototypeOf(G)?this._bodyText=G.toString():f.arrayBuffer&&f.blob&&m(G)?(this._bodyArrayBuffer=R(G.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):f.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(G)||p(G))?this._bodyArrayBuffer=R(G):this._bodyText=G=Object.prototype.toString.call(G):this._bodyText="",this.headers.get("content-type")||(typeof G=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):f.searchParams&&URLSearchParams.prototype.isPrototypeOf(G)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},f.blob&&(this.blob=function(){var G=u(this);if(G)return G;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?u(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(S)}),this.text=function(){var G=u(this);if(G)return G;if(this._bodyBlob)return Z(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(I(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},f.formData&&(this.formData=function(){return this.text().then(X)}),this.json=function(){return this.text().then(JSON.parse)},this}var g=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function V(G){var w=G.toUpperCase();return g.indexOf(w)>-1?w:G}function v(G,w){w=w||{};var T=w.body;if(G instanceof v){if(G.bodyUsed)throw new TypeError("Already read");this.url=G.url,this.credentials=G.credentials,w.headers||(this.headers=new c(G.headers)),this.method=G.method,this.mode=G.mode,this.signal=G.signal,!T&&G._bodyInit!=null&&(T=G._bodyInit,G.bodyUsed=!0)}else this.url=String(G);if(this.credentials=w.credentials||this.credentials||"same-origin",(w.headers||!this.headers)&&(this.headers=new c(w.headers)),this.method=V(w.method||this.method||"GET"),this.mode=w.mode||this.mode||null,this.signal=w.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&T)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(T)}v.prototype.clone=function(){return new v(this,{body:this._bodyInit})};function X(G){var w=new FormData;return G.trim().split("&").forEach(function(T){if(T){var Y=T.split("="),M=Y.shift().replace(/\+/g," "),J=Y.join("=").replace(/\+/g," ");w.append(decodeURIComponent(M),decodeURIComponent(J))}}),w}function W(G){var w=new c,T=G.replace(/\r?\n[\t ]+/g," ");return T.split(/\r?\n/).forEach(function(Y){var M=Y.split(":"),J=M.shift().trim();if(J){var q=M.join(":").trim();w.append(J,q)}}),w}y.call(v.prototype);function k(G,w){w||(w={}),this.type="default",this.status=w.status===void 0?200:w.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in w?w.statusText:"OK",this.headers=new c(w.headers),this.url=w.url||"",this._initBody(G)}y.call(k.prototype),k.prototype.clone=function(){return new k(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new c(this.headers),url:this.url})},k.error=function(){var G=new k(null,{status:0,statusText:""});return G.type="error",G};var N=[301,302,303,307,308];k.redirect=function(G,w){if(N.indexOf(w)===-1)throw new RangeError("Invalid status code");return new k(null,{status:w,headers:{location:G}})},d.DOMException=l.DOMException;try{new d.DOMException}catch{d.DOMException=function(w,T){this.message=w,this.name=T;var Y=Error(w);this.stack=Y.stack},d.DOMException.prototype=Object.create(Error.prototype),d.DOMException.prototype.constructor=d.DOMException}function j(G,w){return new Promise(function(T,Y){var M=new v(G,w);if(M.signal&&M.signal.aborted)return Y(new d.DOMException("Aborted","AbortError"));var J=new XMLHttpRequest;function q(){J.abort()}J.onload=function(){var B={status:J.status,statusText:J.statusText,headers:W(J.getAllResponseHeaders()||"")};B.url="responseURL"in J?J.responseURL:B.headers.get("X-Request-URL");var C="response"in J?J.response:J.responseText;T(new k(C,B))},J.onerror=function(){Y(new TypeError("Network request failed"))},J.ontimeout=function(){Y(new TypeError("Network request failed"))},J.onabort=function(){Y(new d.DOMException("Aborted","AbortError"))},J.open(M.method,M.url,!0),M.credentials==="include"?J.withCredentials=!0:M.credentials==="omit"&&(J.withCredentials=!1),"responseType"in J&&f.blob&&(J.responseType="blob"),M.headers.forEach(function(B,C){J.setRequestHeader(C,B)}),M.signal&&(M.signal.addEventListener("abort",q),J.onreadystatechange=function(){J.readyState===4&&M.signal.removeEventListener("abort",q)}),J.send(typeof M._bodyInit>"u"?null:M._bodyInit)})}return j.polyfill=!0,l.fetch||(l.fetch=j,l.Headers=c,l.Request=v,l.Response=k),d.Headers=c,d.Request=v,d.Response=k,d.fetch=j,Object.defineProperty(d,"__esModule",{value:!0}),d})({})})(n),n.fetch.ponyfill=!0,delete n.fetch.polyfill;var r=n;t=r.fetch,t.default=r.fetch,t.fetch=r.fetch,t.Headers=r.Headers,t.Request=r.Request,t.Response=r.Response,e.exports=t})(ln,ln.exports);var an=ln.exports;const ss=on(an),tu=Object.freeze(Object.defineProperty({__proto__:null,default:ss},Symbol.toStringTag,{value:"Module"})),mt=e=>{let t={};return e&&(typeof Headers<"u"&&e instanceof Headers||tu&&an.Headers&&e instanceof an.Headers?t=Ac(e):Array.isArray(e)?e.forEach(([s,n])=>{s&&n!==void 0&&(t[s]=n)}):t=e),t},Cr=e=>e.replace(/([\s,]|#[^\n\r]+)+/g," ").trim(),su=e=>{if(!Array.isArray(e.query)){const n=e,r=[`query=${encodeURIComponent(Cr(n.query))}`];return e.variables&&r.push(`variables=${encodeURIComponent(n.jsonSerializer.stringify(n.variables))}`),n.operationName&&r.push(`operationName=${encodeURIComponent(n.operationName)}`),r.join("&")}if(typeof e.variables<"u"&&!Array.isArray(e.variables))throw new Error("Cannot create query with given variable type, array expected");const t=e,s=e.query.reduce((n,r,l)=>(n.push({query:Cr(r),variables:t.variables?t.jsonSerializer.stringify(t.variables[l]):void 0}),n),[]);return`query=${encodeURIComponent(t.jsonSerializer.stringify(s))}`},nu=e=>t=>dt(void 0,null,function*(){var s;const{url:n,query:r,variables:l,operationName:d,fetch:f,fetchOptions:m,middleware:h}=t,p=ne({},t.headers);let o="",a;e==="POST"?(a=ru(r,l,d,m.jsonSerializer),typeof a=="string"&&(p["Content-Type"]="application/json")):o=su({query:r,variables:l,operationName:d,jsonSerializer:(s=m.jsonSerializer)!=null?s:nn});const i=ne({method:e,headers:p,body:a},m);let c=n,u=i;if(h){const b=yield Promise.resolve(h(At(ne({},i),{url:n,operationName:d,variables:l}))),{url:S}=b,Z=Wt(b,["url"]);c=S,u=Z}return o&&(c=`${c}?${o}`),yield f(c,u)});let iu=class{constructor(t,s={}){this.url=t,this.requestConfig=s,this.rawRequest=(...n)=>dt(this,null,function*(){const[r,l,d]=n,f=$c(r,l,d),m=this.requestConfig,{headers:h,fetch:p=ss,method:o="POST",requestMiddleware:a,responseMiddleware:i}=m,c=Wt(m,["headers","fetch","method","requestMiddleware","responseMiddleware"]),{url:u}=this;f.signal!==void 0&&(c.signal=f.signal);const{operationName:b}=rn(f.query);return cn({url:u,query:f.query,variables:f.variables,headers:ne(ne({},mt(un(h))),mt(f.requestHeaders)),operationName:b,fetch:p,method:o,fetchOptions:c,middleware:a}).then(S=>(i&&i(S),S)).catch(S=>{throw i&&i(S),S})})}request(t,...s){return dt(this,null,function*(){const[n,r]=s,l=_c(t,n,r),d=this.requestConfig,{headers:f,fetch:m=ss,method:h="POST",requestMiddleware:p,responseMiddleware:o}=d,a=Wt(d,["headers","fetch","method","requestMiddleware","responseMiddleware"]),{url:i}=this;l.signal!==void 0&&(a.signal=l.signal);const{query:c,operationName:u}=rn(l.document);return cn({url:i,query:c,variables:l.variables,headers:ne(ne({},mt(un(f))),mt(l.requestHeaders)),operationName:u,fetch:m,method:h,fetchOptions:a,middleware:p}).then(b=>(o&&o(b),b.data)).catch(b=>{throw o&&o(b),b})})}batchRequests(t,s){var n;const r=qc(t,s),l=this.requestConfig,{headers:d}=l,f=Wt(l,["headers"]);r.signal!==void 0&&(f.signal=r.signal);const m=r.documents.map(({document:p})=>rn(p).query),h=r.documents.map(({variables:p})=>p);return cn({url:this.url,query:m,variables:h,headers:ne(ne({},mt(un(d))),mt(r.requestHeaders)),operationName:void 0,fetch:(n=this.requestConfig.fetch)!=null?n:ss,method:this.requestConfig.method||"POST",fetchOptions:f,middleware:this.requestConfig.requestMiddleware}).then(p=>(this.requestConfig.responseMiddleware&&this.requestConfig.responseMiddleware(p),p.data)).catch(p=>{throw this.requestConfig.responseMiddleware&&this.requestConfig.responseMiddleware(p),p})}setHeaders(t){return this.requestConfig.headers=t,this}setHeader(t,s){const{headers:n}=this.requestConfig;return n?n[t]=s:this.requestConfig.headers={[t]:s},this}setEndpoint(t){return this.url=t,this}};const cn=e=>dt(void 0,null,function*(){var t,s;const{query:n,variables:r,fetchOptions:l}=e,d=nu(jc((t=e.method)!=null?t:"post")),f=Array.isArray(e.query),m=yield d(e),h=yield ou(m,(s=l.jsonSerializer)!=null?s:nn),p=Array.isArray(h)?!h.some(({data:a})=>!a):!!h.data,o=Array.isArray(h)||!h.errors||Array.isArray(h.errors)&&!h.errors.length||l.errorPolicy==="all"||l.errorPolicy==="ignore";if(m.ok&&o&&p){const a=h,i=Wt(a,["errors"]),c=l.errorPolicy==="ignore"?i:h;return At(ne({},f?{data:c}:c),{headers:m.headers,status:m.status})}else{const a=typeof h=="string"?{error:h}:h;throw new kr(At(ne({},a),{status:m.status,headers:m.headers}),{query:n,variables:r})}}),ru=(e,t,s,n)=>{const r=n??nn;if(!Array.isArray(e))return r.stringify({query:e,variables:t,operationName:s});if(typeof t<"u"&&!Array.isArray(t))throw new Error("Cannot create request body with given variable type, array expected");const l=e.reduce((d,f,m)=>(d.push({query:f,variables:t?t[m]:void 0}),d),[]);return r.stringify(l)},ou=(e,t)=>dt(void 0,null,function*(){let s;return e.headers.forEach((n,r)=>{r.toLowerCase()==="content-type"&&(s=n)}),s&&(s.toLowerCase().startsWith("application/json")||s.toLowerCase().startsWith("application/graphql+json")||s.toLowerCase().startsWith("application/graphql-response+json"))?t.parse(yield e.text()):e.text()}),un=e=>typeof e=="function"?e():e;var dn={exports:{}};(function(e,t){t=e.exports=s,t.getSerialize=n;function s(r,l,d,f){return JSON.stringify(r,n(l,f),d)}function n(r,l){var d=[],f=[];return l==null&&(l=function(m,h){return d[0]===h?"[Circular ~]":"[Circular ~."+f.slice(0,d.indexOf(h)).join(".")+"]"}),function(m,h){if(d.length>0){var p=d.indexOf(this);~p?d.splice(p+1):d.push(this),~p?f.splice(p,1/0,m):f.push(m),~d.indexOf(h)&&(h=l.call(this,m,h))}else d.push(h);return r==null?h:r.call(this,m,h)}}})(dn,dn.exports);var lu=dn.exports;const au=on(lu);var ns=function(){return ns=Object.assign||function(e){for(var t,s=1,n=arguments.length;s<n;s++){t=arguments[s];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},ns.apply(this,arguments)},is=new Map,hn=new Map,xr=!0,rs=!1;function Tr(e){return e.replace(/[\s,]+/g," ").trim()}function cu(e){return Tr(e.source.body.substring(e.start,e.end))}function uu(e){var t=new Set,s=[];return e.definitions.forEach(function(n){if(n.kind==="FragmentDefinition"){var r=n.name.value,l=cu(n.loc),d=hn.get(r);d&&!d.has(l)?xr&&console.warn("Warning: fragment with name "+r+` already exists.
48
+ `))}function wr(e){var t;return(t=e?.some(s=>s.includes(`
49
+ `)))!==null&&t!==void 0?t:!1}const nn=JSON,_c=e=>e.toUpperCase(),$c=e=>{const t={};return e.forEach((s,n)=>{t[n]=s}),t},qc=(e,t,s)=>e.document?e:{document:e,variables:t,requestHeaders:s,signal:void 0},eu=(e,t,s)=>e.query?e:{query:e,variables:t,requestHeaders:s,signal:void 0},tu=(e,t)=>e.documents?e:{documents:e,requestHeaders:t,signal:void 0},kr=e=>{var t,s;let n;const r=e.definitions.filter(l=>l.kind==="OperationDefinition");return r.length===1&&(n=(s=(t=r[0])==null?void 0:t.name)==null?void 0:s.value),n},rn=e=>{if(typeof e=="string"){let s;try{const n=Rr(e);s=kr(n)}catch{}return{query:e,operationName:s}}const t=kr(e);return{query:Wr(e),operationName:t}};let Cr=class js extends Error{constructor(t,s){const n=`${js.extractMessage(t)}: ${JSON.stringify({response:t,request:s})}`;super(n),Object.setPrototypeOf(this,js.prototype),this.response=t,this.request=s,typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,js)}static extractMessage(t){var s,n,r;return(r=(n=(s=t.errors)==null?void 0:s[0])==null?void 0:n.message)!=null?r:`GraphQL Error (Code: ${t.status})`}};var su=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function on(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ln={exports:{}};(function(e,t){var s=typeof self<"u"?self:su,n=function(){function l(){this.fetch=!1,this.DOMException=s.DOMException}return l.prototype=s,new l}();(function(l){(function(d){var f={searchParams:"URLSearchParams"in l,iterable:"Symbol"in l&&"iterator"in Symbol,blob:"FileReader"in l&&"Blob"in l&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in l,arrayBuffer:"ArrayBuffer"in l};function m(G){return G&&DataView.prototype.isPrototypeOf(G)}if(f.arrayBuffer)var h=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],p=ArrayBuffer.isView||function(G){return G&&h.indexOf(Object.prototype.toString.call(G))>-1};function o(G){if(typeof G!="string"&&(G=String(G)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(G))throw new TypeError("Invalid character in header field name");return G.toLowerCase()}function a(G){return typeof G!="string"&&(G=String(G)),G}function i(G){var w={next:function(){var T=G.shift();return{done:T===void 0,value:T}}};return f.iterable&&(w[Symbol.iterator]=function(){return w}),w}function c(G){this.map={},G instanceof c?G.forEach(function(w,T){this.append(T,w)},this):Array.isArray(G)?G.forEach(function(w){this.append(w[0],w[1])},this):G&&Object.getOwnPropertyNames(G).forEach(function(w){this.append(w,G[w])},this)}c.prototype.append=function(G,w){G=o(G),w=a(w);var T=this.map[G];this.map[G]=T?T+", "+w:w},c.prototype.delete=function(G){delete this.map[o(G)]},c.prototype.get=function(G){return G=o(G),this.has(G)?this.map[G]:null},c.prototype.has=function(G){return this.map.hasOwnProperty(o(G))},c.prototype.set=function(G,w){this.map[o(G)]=a(w)},c.prototype.forEach=function(G,w){for(var T in this.map)this.map.hasOwnProperty(T)&&G.call(w,this.map[T],T,this)},c.prototype.keys=function(){var G=[];return this.forEach(function(w,T){G.push(T)}),i(G)},c.prototype.values=function(){var G=[];return this.forEach(function(w){G.push(w)}),i(G)},c.prototype.entries=function(){var G=[];return this.forEach(function(w,T){G.push([T,w])}),i(G)},f.iterable&&(c.prototype[Symbol.iterator]=c.prototype.entries);function u(G){if(G.bodyUsed)return Promise.reject(new TypeError("Already read"));G.bodyUsed=!0}function b(G){return new Promise(function(w,T){G.onload=function(){w(G.result)},G.onerror=function(){T(G.error)}})}function S(G){var w=new FileReader,T=b(w);return w.readAsArrayBuffer(G),T}function Z(G){var w=new FileReader,T=b(w);return w.readAsText(G),T}function I(G){for(var w=new Uint8Array(G),T=new Array(w.length),Y=0;Y<w.length;Y++)T[Y]=String.fromCharCode(w[Y]);return T.join("")}function R(G){if(G.slice)return G.slice(0);var w=new Uint8Array(G.byteLength);return w.set(new Uint8Array(G)),w.buffer}function y(){return this.bodyUsed=!1,this._initBody=function(G){this._bodyInit=G,G?typeof G=="string"?this._bodyText=G:f.blob&&Blob.prototype.isPrototypeOf(G)?this._bodyBlob=G:f.formData&&FormData.prototype.isPrototypeOf(G)?this._bodyFormData=G:f.searchParams&&URLSearchParams.prototype.isPrototypeOf(G)?this._bodyText=G.toString():f.arrayBuffer&&f.blob&&m(G)?(this._bodyArrayBuffer=R(G.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):f.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(G)||p(G))?this._bodyArrayBuffer=R(G):this._bodyText=G=Object.prototype.toString.call(G):this._bodyText="",this.headers.get("content-type")||(typeof G=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):f.searchParams&&URLSearchParams.prototype.isPrototypeOf(G)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},f.blob&&(this.blob=function(){var G=u(this);if(G)return G;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?u(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(S)}),this.text=function(){var G=u(this);if(G)return G;if(this._bodyBlob)return Z(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(I(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},f.formData&&(this.formData=function(){return this.text().then(X)}),this.json=function(){return this.text().then(JSON.parse)},this}var g=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function V(G){var w=G.toUpperCase();return g.indexOf(w)>-1?w:G}function v(G,w){w=w||{};var T=w.body;if(G instanceof v){if(G.bodyUsed)throw new TypeError("Already read");this.url=G.url,this.credentials=G.credentials,w.headers||(this.headers=new c(G.headers)),this.method=G.method,this.mode=G.mode,this.signal=G.signal,!T&&G._bodyInit!=null&&(T=G._bodyInit,G.bodyUsed=!0)}else this.url=String(G);if(this.credentials=w.credentials||this.credentials||"same-origin",(w.headers||!this.headers)&&(this.headers=new c(w.headers)),this.method=V(w.method||this.method||"GET"),this.mode=w.mode||this.mode||null,this.signal=w.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&T)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(T)}v.prototype.clone=function(){return new v(this,{body:this._bodyInit})};function X(G){var w=new FormData;return G.trim().split("&").forEach(function(T){if(T){var Y=T.split("="),O=Y.shift().replace(/\+/g," "),J=Y.join("=").replace(/\+/g," ");w.append(decodeURIComponent(O),decodeURIComponent(J))}}),w}function W(G){var w=new c,T=G.replace(/\r?\n[\t ]+/g," ");return T.split(/\r?\n/).forEach(function(Y){var O=Y.split(":"),J=O.shift().trim();if(J){var q=O.join(":").trim();w.append(J,q)}}),w}y.call(v.prototype);function k(G,w){w||(w={}),this.type="default",this.status=w.status===void 0?200:w.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in w?w.statusText:"OK",this.headers=new c(w.headers),this.url=w.url||"",this._initBody(G)}y.call(k.prototype),k.prototype.clone=function(){return new k(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new c(this.headers),url:this.url})},k.error=function(){var G=new k(null,{status:0,statusText:""});return G.type="error",G};var N=[301,302,303,307,308];k.redirect=function(G,w){if(N.indexOf(w)===-1)throw new RangeError("Invalid status code");return new k(null,{status:w,headers:{location:G}})},d.DOMException=l.DOMException;try{new d.DOMException}catch{d.DOMException=function(w,T){this.message=w,this.name=T;var Y=Error(w);this.stack=Y.stack},d.DOMException.prototype=Object.create(Error.prototype),d.DOMException.prototype.constructor=d.DOMException}function j(G,w){return new Promise(function(T,Y){var O=new v(G,w);if(O.signal&&O.signal.aborted)return Y(new d.DOMException("Aborted","AbortError"));var J=new XMLHttpRequest;function q(){J.abort()}J.onload=function(){var B={status:J.status,statusText:J.statusText,headers:W(J.getAllResponseHeaders()||"")};B.url="responseURL"in J?J.responseURL:B.headers.get("X-Request-URL");var C="response"in J?J.response:J.responseText;T(new k(C,B))},J.onerror=function(){Y(new TypeError("Network request failed"))},J.ontimeout=function(){Y(new TypeError("Network request failed"))},J.onabort=function(){Y(new d.DOMException("Aborted","AbortError"))},J.open(O.method,O.url,!0),O.credentials==="include"?J.withCredentials=!0:O.credentials==="omit"&&(J.withCredentials=!1),"responseType"in J&&f.blob&&(J.responseType="blob"),O.headers.forEach(function(B,C){J.setRequestHeader(C,B)}),O.signal&&(O.signal.addEventListener("abort",q),J.onreadystatechange=function(){J.readyState===4&&O.signal.removeEventListener("abort",q)}),J.send(typeof O._bodyInit>"u"?null:O._bodyInit)})}return j.polyfill=!0,l.fetch||(l.fetch=j,l.Headers=c,l.Request=v,l.Response=k),d.Headers=c,d.Request=v,d.Response=k,d.fetch=j,Object.defineProperty(d,"__esModule",{value:!0}),d})({})})(n),n.fetch.ponyfill=!0,delete n.fetch.polyfill;var r=n;t=r.fetch,t.default=r.fetch,t.fetch=r.fetch,t.Headers=r.Headers,t.Request=r.Request,t.Response=r.Response,e.exports=t})(ln,ln.exports);var an=ln.exports;const ss=on(an),nu=Object.freeze(Object.defineProperty({__proto__:null,default:ss},Symbol.toStringTag,{value:"Module"})),mt=e=>{let t={};return e&&(typeof Headers<"u"&&e instanceof Headers||nu&&an.Headers&&e instanceof an.Headers?t=$c(e):Array.isArray(e)?e.forEach(([s,n])=>{s&&n!==void 0&&(t[s]=n)}):t=e),t},xr=e=>e.replace(/([\s,]|#[^\n\r]+)+/g," ").trim(),iu=e=>{if(!Array.isArray(e.query)){const n=e,r=[`query=${encodeURIComponent(xr(n.query))}`];return e.variables&&r.push(`variables=${encodeURIComponent(n.jsonSerializer.stringify(n.variables))}`),n.operationName&&r.push(`operationName=${encodeURIComponent(n.operationName)}`),r.join("&")}if(typeof e.variables<"u"&&!Array.isArray(e.variables))throw new Error("Cannot create query with given variable type, array expected");const t=e,s=e.query.reduce((n,r,l)=>(n.push({query:xr(r),variables:t.variables?t.jsonSerializer.stringify(t.variables[l]):void 0}),n),[]);return`query=${encodeURIComponent(t.jsonSerializer.stringify(s))}`},ru=e=>t=>dt(void 0,null,function*(){var s;const{url:n,query:r,variables:l,operationName:d,fetch:f,fetchOptions:m,middleware:h}=t,p=ne({},t.headers);let o="",a;e==="POST"?(a=lu(r,l,d,m.jsonSerializer),typeof a=="string"&&(p["Content-Type"]="application/json")):o=iu({query:r,variables:l,operationName:d,jsonSerializer:(s=m.jsonSerializer)!=null?s:nn});const i=ne({method:e,headers:p,body:a},m);let c=n,u=i;if(h){const b=yield Promise.resolve(h(At(ne({},i),{url:n,operationName:d,variables:l}))),{url:S}=b,Z=Wt(b,["url"]);c=S,u=Z}return o&&(c=`${c}?${o}`),yield f(c,u)});let ou=class{constructor(t,s={}){this.url=t,this.requestConfig=s,this.rawRequest=(...n)=>dt(this,null,function*(){const[r,l,d]=n,f=eu(r,l,d),m=this.requestConfig,{headers:h,fetch:p=ss,method:o="POST",requestMiddleware:a,responseMiddleware:i}=m,c=Wt(m,["headers","fetch","method","requestMiddleware","responseMiddleware"]),{url:u}=this;f.signal!==void 0&&(c.signal=f.signal);const{operationName:b}=rn(f.query);return cn({url:u,query:f.query,variables:f.variables,headers:ne(ne({},mt(un(h))),mt(f.requestHeaders)),operationName:b,fetch:p,method:o,fetchOptions:c,middleware:a}).then(S=>(i&&i(S),S)).catch(S=>{throw i&&i(S),S})})}request(t,...s){return dt(this,null,function*(){const[n,r]=s,l=qc(t,n,r),d=this.requestConfig,{headers:f,fetch:m=ss,method:h="POST",requestMiddleware:p,responseMiddleware:o}=d,a=Wt(d,["headers","fetch","method","requestMiddleware","responseMiddleware"]),{url:i}=this;l.signal!==void 0&&(a.signal=l.signal);const{query:c,operationName:u}=rn(l.document);return cn({url:i,query:c,variables:l.variables,headers:ne(ne({},mt(un(f))),mt(l.requestHeaders)),operationName:u,fetch:m,method:h,fetchOptions:a,middleware:p}).then(b=>(o&&o(b),b.data)).catch(b=>{throw o&&o(b),b})})}batchRequests(t,s){var n;const r=tu(t,s),l=this.requestConfig,{headers:d}=l,f=Wt(l,["headers"]);r.signal!==void 0&&(f.signal=r.signal);const m=r.documents.map(({document:p})=>rn(p).query),h=r.documents.map(({variables:p})=>p);return cn({url:this.url,query:m,variables:h,headers:ne(ne({},mt(un(d))),mt(r.requestHeaders)),operationName:void 0,fetch:(n=this.requestConfig.fetch)!=null?n:ss,method:this.requestConfig.method||"POST",fetchOptions:f,middleware:this.requestConfig.requestMiddleware}).then(p=>(this.requestConfig.responseMiddleware&&this.requestConfig.responseMiddleware(p),p.data)).catch(p=>{throw this.requestConfig.responseMiddleware&&this.requestConfig.responseMiddleware(p),p})}setHeaders(t){return this.requestConfig.headers=t,this}setHeader(t,s){const{headers:n}=this.requestConfig;return n?n[t]=s:this.requestConfig.headers={[t]:s},this}setEndpoint(t){return this.url=t,this}};const cn=e=>dt(void 0,null,function*(){var t,s;const{query:n,variables:r,fetchOptions:l}=e,d=ru(_c((t=e.method)!=null?t:"post")),f=Array.isArray(e.query),m=yield d(e),h=yield au(m,(s=l.jsonSerializer)!=null?s:nn),p=Array.isArray(h)?!h.some(({data:a})=>!a):!!h.data,o=Array.isArray(h)||!h.errors||Array.isArray(h.errors)&&!h.errors.length||l.errorPolicy==="all"||l.errorPolicy==="ignore";if(m.ok&&o&&p){const a=h,i=Wt(a,["errors"]),c=l.errorPolicy==="ignore"?i:h;return At(ne({},f?{data:c}:c),{headers:m.headers,status:m.status})}else{const a=typeof h=="string"?{error:h}:h;throw new Cr(At(ne({},a),{status:m.status,headers:m.headers}),{query:n,variables:r})}}),lu=(e,t,s,n)=>{const r=n??nn;if(!Array.isArray(e))return r.stringify({query:e,variables:t,operationName:s});if(typeof t<"u"&&!Array.isArray(t))throw new Error("Cannot create request body with given variable type, array expected");const l=e.reduce((d,f,m)=>(d.push({query:f,variables:t?t[m]:void 0}),d),[]);return r.stringify(l)},au=(e,t)=>dt(void 0,null,function*(){let s;return e.headers.forEach((n,r)=>{r.toLowerCase()==="content-type"&&(s=n)}),s&&(s.toLowerCase().startsWith("application/json")||s.toLowerCase().startsWith("application/graphql+json")||s.toLowerCase().startsWith("application/graphql-response+json"))?t.parse(yield e.text()):e.text()}),un=e=>typeof e=="function"?e():e;var dn={exports:{}};(function(e,t){t=e.exports=s,t.getSerialize=n;function s(r,l,d,f){return JSON.stringify(r,n(l,f),d)}function n(r,l){var d=[],f=[];return l==null&&(l=function(m,h){return d[0]===h?"[Circular ~]":"[Circular ~."+f.slice(0,d.indexOf(h)).join(".")+"]"}),function(m,h){if(d.length>0){var p=d.indexOf(this);~p?d.splice(p+1):d.push(this),~p?f.splice(p,1/0,m):f.push(m),~d.indexOf(h)&&(h=l.call(this,m,h))}else d.push(h);return r==null?h:r.call(this,m,h)}}})(dn,dn.exports);var cu=dn.exports;const uu=on(cu);var ns=function(){return ns=Object.assign||function(e){for(var t,s=1,n=arguments.length;s<n;s++){t=arguments[s];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},ns.apply(this,arguments)},is=new Map,hn=new Map,Tr=!0,rs=!1;function Lr(e){return e.replace(/[\s,]+/g," ").trim()}function du(e){return Lr(e.source.body.substring(e.start,e.end))}function hu(e){var t=new Set,s=[];return e.definitions.forEach(function(n){if(n.kind==="FragmentDefinition"){var r=n.name.value,l=du(n.loc),d=hn.get(r);d&&!d.has(l)?Tr&&console.warn("Warning: fragment with name "+r+` already exists.
50
50
  graphql-tag enforces all fragment names across your application to be unique; read more about
51
- this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names`):d||hn.set(r,d=new Set),d.add(l),t.has(l)||(t.add(l),s.push(n))}else s.push(n)}),ns(ns({},e),{definitions:s})}function du(e){var t=new Set(e.definitions);t.forEach(function(n){n.loc&&delete n.loc,Object.keys(n).forEach(function(r){var l=n[r];l&&typeof l=="object"&&t.add(l)})});var s=e.loc;return s&&(delete s.startToken,delete s.endToken),e}function hu(e){var t=Tr(e);if(!is.has(t)){var s=Gr(e,{experimentalFragmentVariables:rs,allowLegacyFragmentVariables:rs});if(!s||s.kind!=="Document")throw new Error("Not a valid GraphQL document.");is.set(t,du(uu(s)))}return is.get(t)}function Re(e){for(var t=[],s=1;s<arguments.length;s++)t[s-1]=arguments[s];typeof e=="string"&&(e=[e]);var n=e[0];return t.forEach(function(r,l){r&&r.kind==="Document"?n+=r.loc.source.body:n+=r,n+=e[l+1]}),hu(n)}function pu(){is.clear(),hn.clear()}function mu(){xr=!1}function fu(){rs=!0}function bu(){rs=!1}var xt={gql:Re,resetCaches:pu,disableFragmentWarnings:mu,enableExperimentalFragmentVariables:fu,disableExperimentalFragmentVariables:bu};(function(e){e.gql=xt.gql,e.resetCaches=xt.resetCaches,e.disableFragmentWarnings=xt.disableFragmentWarnings,e.enableExperimentalFragmentVariables=xt.enableExperimentalFragmentVariables,e.disableExperimentalFragmentVariables=xt.disableExperimentalFragmentVariables})(Re||(Re={})),Re.default=Re;const Lr=Re`
51
+ this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names`):d||hn.set(r,d=new Set),d.add(l),t.has(l)||(t.add(l),s.push(n))}else s.push(n)}),ns(ns({},e),{definitions:s})}function pu(e){var t=new Set(e.definitions);t.forEach(function(n){n.loc&&delete n.loc,Object.keys(n).forEach(function(r){var l=n[r];l&&typeof l=="object"&&t.add(l)})});var s=e.loc;return s&&(delete s.startToken,delete s.endToken),e}function mu(e){var t=Lr(e);if(!is.has(t)){var s=Rr(e,{experimentalFragmentVariables:rs,allowLegacyFragmentVariables:rs});if(!s||s.kind!=="Document")throw new Error("Not a valid GraphQL document.");is.set(t,pu(hu(s)))}return is.get(t)}function Re(e){for(var t=[],s=1;s<arguments.length;s++)t[s-1]=arguments[s];typeof e=="string"&&(e=[e]);var n=e[0];return t.forEach(function(r,l){r&&r.kind==="Document"?n+=r.loc.source.body:n+=r,n+=e[l+1]}),mu(n)}function fu(){is.clear(),hn.clear()}function bu(){Tr=!1}function yu(){rs=!0}function gu(){rs=!1}var xt={gql:Re,resetCaches:fu,disableFragmentWarnings:bu,enableExperimentalFragmentVariables:yu,disableExperimentalFragmentVariables:gu};(function(e){e.gql=xt.gql,e.resetCaches=xt.resetCaches,e.disableFragmentWarnings=xt.disableFragmentWarnings,e.enableExperimentalFragmentVariables=xt.enableExperimentalFragmentVariables,e.disableExperimentalFragmentVariables=xt.disableExperimentalFragmentVariables})(Re||(Re={})),Re.default=Re;const Nr=Re`
52
52
  fragment MatchParts on MatchConfig {
53
53
  regexValue
54
54
  matchValue
55
55
  }
56
- `,yu=Re`
56
+ `,Zu=Re`
57
57
  mutation PushPayload(
58
58
  $session_secure_id: String!
59
59
  $payload_id: ID!
@@ -79,7 +79,7 @@ this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names`):d
79
79
  highlight_logs: $highlight_logs
80
80
  )
81
81
  }
82
- `,Nr=Re`
82
+ `,Jr=Re`
83
83
  mutation PushSessionEvents(
84
84
  $session_secure_id: String!
85
85
  $payload_id: Int64ID!
@@ -91,7 +91,7 @@ this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names`):d
91
91
  data: $data
92
92
  )
93
93
  }
94
- `,gu=Re`
94
+ `,Su=Re`
95
95
  mutation identifySession(
96
96
  $session_secure_id: String!
97
97
  $user_identifier: String!
@@ -103,7 +103,7 @@ this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names`):d
103
103
  user_object: $user_object
104
104
  )
105
105
  }
106
- `,Zu=Re`
106
+ `,Iu=Re`
107
107
  mutation addSessionProperties(
108
108
  $session_secure_id: String!
109
109
  $properties_object: Any
@@ -113,11 +113,11 @@ this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names`):d
113
113
  properties_object: $properties_object
114
114
  )
115
115
  }
116
- `,Su=Re`
116
+ `,Xu=Re`
117
117
  mutation pushMetrics($metrics: [MetricInput]!) {
118
118
  pushMetrics(metrics: $metrics)
119
119
  }
120
- `,Iu=Re`
120
+ `,Vu=Re`
121
121
  mutation addSessionFeedback(
122
122
  $session_secure_id: String!
123
123
  $user_name: String
@@ -133,7 +133,7 @@ this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names`):d
133
133
  timestamp: $timestamp
134
134
  )
135
135
  }
136
- `,Xu=Re`
136
+ `,Gu=Re`
137
137
  mutation initializeSession(
138
138
  $session_secure_id: String!
139
139
  $session_key: String
@@ -220,12 +220,12 @@ this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names`):d
220
220
  }
221
221
  }
222
222
  }
223
- ${Lr}
224
- `,Vu=Re`
223
+ ${Nr}
224
+ `,Ru=Re`
225
225
  query Ignore($id: ID!) {
226
226
  ignore(id: $id)
227
227
  }
228
- `,Gu=Re`
228
+ `,vu=Re`
229
229
  query GetSamplingConfig($organization_verbose_id: String!) {
230
230
  sampling(organization_verbose_id: $organization_verbose_id) {
231
231
  spans {
@@ -274,8 +274,8 @@ this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names`):d
274
274
  }
275
275
  }
276
276
  }
277
- ${Lr}
278
- `,Ru=(e,t,s,n)=>e();function vu(e,t=Ru){return{PushPayload(s,n){return t(r=>e.request(yu,s,ne(ne({},n),r)),"PushPayload","mutation",s)},PushSessionEvents(s,n){return t(r=>e.request(Nr,s,ne(ne({},n),r)),"PushSessionEvents","mutation",s)},identifySession(s,n){return t(r=>e.request(gu,s,ne(ne({},n),r)),"identifySession","mutation",s)},addSessionProperties(s,n){return t(r=>e.request(Zu,s,ne(ne({},n),r)),"addSessionProperties","mutation",s)},pushMetrics(s,n){return t(r=>e.request(Su,s,ne(ne({},n),r)),"pushMetrics","mutation",s)},addSessionFeedback(s,n){return t(r=>e.request(Iu,s,ne(ne({},n),r)),"addSessionFeedback","mutation",s)},initializeSession(s,n){return t(r=>e.request(Xu,s,ne(ne({},n),r)),"initializeSession","mutation",s)},Ignore(s,n){return t(r=>e.request(Vu,s,ne(ne({},n),r)),"Ignore","query",s)},GetSamplingConfig(s,n){return t(r=>e.request(Gu,s,ne(ne({},n),r)),"GetSamplingConfig","query",s)}}}function Wu(){var e=document.createElement("canvas");return e.getContext&&e.getContext("2d")?e.toDataURL("image/webp").indexOf("data:image/webp")==0:!1}function wu(){return Wu()?{type:"image/webp",quality:.9}:{type:"image/jpeg",quality:.6}}const ku="telemetry.sdk.name",Cu="telemetry.sdk.version",Jr=1e3,xu=1e3*2,Yr=4*60*60*1e3,pn=15*60*1e3,Ur={normal:{bytes:1e7,time:4*60*1e3},canvas:{bytes:16e6,time:5e3}},Tu=100,Fr="app.highlight.io",Or="https://app.launchdarkly.com",Lu={"observability.ld-stg.launchdarkly.com":"ld-stg.launchdarkly.com","observability.app.launchdarkly.com":"app.launchdarkly.com","observability.app.ld.catamorphic.com":"app.ld.catamorphic.com"},Nu="/projects/default",Ju=new RegExp("pub\\.(?<domain>.+)");/*! js-cookie v3.0.8 | MIT */function os(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var n in s)n!=="__proto__"&&(e[n]=s[n])}return e}var Yu={read:function(e){return e[0]==='"'&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function mn(e,t){function s(r,l,d){if(typeof document<"u"){d=os({},t,d),typeof d.expires=="number"&&(d.expires=new Date(Date.now()+d.expires*864e5)),d.expires&&(d.expires=d.expires.toUTCString()),r=encodeURIComponent(r).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var f="";for(var m in d)d[m]&&(f+="; "+m,d[m]!==!0&&(f+="="+d[m].split(";")[0]));return document.cookie=r+"="+e.write(l,r)+f}}function n(r){if(!(typeof document>"u"||arguments.length&&!r)){for(var l=document.cookie?document.cookie.split("; "):[],d={},f=0;f<l.length;f++){var m=l[f].split("="),h=m.slice(1).join("=");try{var p=decodeURIComponent(m[0]);if(p in d||(d[p]=e.read(h,p)),r===p)break}catch{}}return r?d[r]:d}}return Object.create({set:s,get:n,remove:function(r,l){s(r,"",os({},l,{expires:-1}))},withAttributes:function(r){return mn(this.converter,os({},this.attributes,r))},withConverter:function(r){return mn(os({},this.converter,r),this.attributes)}},{attributes:{value:Object.freeze(t)},converter:{value:Object.freeze(e)}})}var ls=mn(Yu,{path:"/"}),fn=(e=>(e.CLIENT_ID="highlightClientID",e))(fn||{});let as="localStorage",bn=!0,Tt,Uu=class{constructor(){wt(this,"storage",{})}get length(){return Object.keys(this.storage).length}key(t){var s;return(s=Object.keys(this.storage)[t])!=null?s:null}getItem(t){var s;return(s=this.storage[t])!=null?s:""}setItem(t,s){this.storage[t]=s}removeItem(t){delete this.storage[t]}},Fu=class{getItem(t){var s;return(s=ls.get(t))!=null?s:""}setItem(t,s){if(!bn)return;const n=new Date;n.setTime(n.getTime()+pn),ls.set(t,s,ne({expires:n},Tt?{domain:Tt}:{}))}removeItem(t){bn&&ls.remove(t,Tt?{domain:Tt}:void 0)}keys(){var t;return Object.keys((t=ls.get())!=null?t:{})}};const ft=new Uu,bt=new Fu,cs=()=>{let e=null;if(typeof window>"u")return ft;try{switch(as){case"localStorage":e=window.localStorage;break;case"sessionStorage":e=window.sessionStorage;break}e||(_e("storage","getPersistentStorage","debug",`persistent storage was not found for mode ${as}; using global storage`),e=ft)}catch(t){_e("storage","getPersistentStorage","debug","failed to get persistent storage; using global storage",t),e=ft}return e},Ou=e=>{as=e},Mr=e=>{bn=e},Mu=e=>{Tt=e},Te=e=>{try{return cs().getItem(e)}catch(t){return _e("storage","getItem","debug",`failed to get item ${e}; using global storage`,t),ft.getItem(e)}},He=(e,t)=>{bt.setItem(e,t);try{return cs().setItem(e,t)}catch(s){return _e("storage","setItem","debug",`failed to set item ${e}; using global storage`,s),ft.setItem(e,t)}},us=e=>{bt.removeItem(e);try{return cs().removeItem(e)}catch(t){return _e("storage","removeItem","debug",`failed to remove item ${e}; using global storage`,t),ft.removeItem(e)}},Ku=e=>{if(as==="sessionStorage"){_e("segment","sessionStorage","warn","highlight.io cannot use local storage; segment integration will not work");return}if(typeof window>"u"){_e("segment","no-window","warn","highlight.io cannot use local storage (not a window); segment integration will not work");return}const t=window.localStorage.setItem;window.localStorage.setItem=function(){const[s,n]=arguments;e({keyName:s,keyValue:n}),t.apply(this,[s,n])}};var ve=(e=>(e.SEGMENT_LAST_SENT_HASH_KEY="HIGHLIGHT_SEGMENT_LAST_SENT_HASH_KEY",e.SESSION_ID="sessionID",e.SESSION_DATA="sessionData",e.USER_IDENTIFIER="highlightIdentifier",e.USER_OBJECT="highlightUserObject",e))(ve||{});const ds=e=>`${ve.SESSION_DATA}_${e}`,Eu=()=>{var e;return typeof globalThis<"u"&&(e=globalThis.persistentSessionSecureID)!=null&&e.length?globalThis.persistentSessionSecureID:Kr()},zu=e=>{typeof globalThis<"u"&&e!=null&&e.length&&(globalThis.persistentSessionSecureID=e)},Kr=()=>{var e;return(e=Te(ve.SESSION_ID))!=null?e:""},Lt=e=>{He(ve.SESSION_ID,e)},Pu=e=>{const t=ds(e);return JSON.parse(Te(t)||"{}")},Hu=(e,t)=>!e.sessionKey&&!!e.sessionStartTime&&t-e.sessionStartTime>Yr,hs=e=>{e||(e=Kr());let t=Pu(e);if(t&&t.lastPushTime&&Date.now()-t.lastPushTime<pn&&!Hu(t,Date.now()))return t;us(ds(e))},rt=function(e){if(!(e!=null&&e.sessionSecureID))return;const t=e.sessionSecureID;zu(t);const s=ds(t);He(s,JSON.stringify(e)),Bu(s)},Du=function(){const e=bt.getItem(ve.SESSION_ID);Lt(e);const t=ds(e),s=bt.getItem(t);try{rt(JSON.parse(s))}catch{}};function Bu(e){var t;const s=`${ve.SESSION_DATA}_`,n=new Set,r=cs();for(let l=r.length-1;l>=0;l--){const d=r.key(l);d&&d.startsWith(s)&&d!==e&&n.add(d)}for(const l of bt.keys())l.startsWith(s)&&l!==e&&n.add(l);for(const l of n){let d=!0;try{const f=Te(l)||bt.getItem(l)||"{}",m=JSON.parse(f),h=(t=m.lastPushTime)!=null?t:m.sessionStartTime;d=h===void 0||Date.now()-h>=pn}catch{}d&&(_e("highlightSession","pruneSessionData","debug",`removing session data for stale key ${l}`),us(l))}}var Er=(e=>(e.BillingQuotaExceeded="BillingQuotaExceeded",e))(Er||{});const Qu=3,ju=1e3,Au=500,_u=[Er.BillingQuotaExceeded.toString()],$u=e=>{var t;return((t=e.response.errors)==null?void 0:t.find(s=>_u.includes(s.message)))===void 0},qu=()=>{const e=(t,s,n,r,l=0)=>dt(void 0,null,function*(){try{return yield t()}catch(d){if(d instanceof kr&&!$u(d))throw d;if(l<Qu)return yield new Promise(f=>setTimeout(f,ju+Au*Math.pow(2,l))),yield e(t,s,n,r,l+1);throw ut("error",`highlight.io: data request failed after ${l} retries`),d}});return e},zr="feature_flag",Pr="launchdarkly",ed=`${zr}.set.id`,td=`${zr}.provider.name`,sd=`${Pr}.application.id`,nd=`${Pr}.application.version`,id="$ld:telemetry:session:init",Hr="$ld:telemetry:track";function Dr(e){return e.includes("%")||e.includes(":")?e.replace(/%/g,"%25").replace(/:/g,"%3A"):e}function Br(e){return e.kind==="multi"}function Qr(e){return Br(e)?Object.keys(e).sort().filter(t=>t!=="kind").map(t=>`${t}:${Dr(e[t].key)}`).join(":"):"kind"in e&&e.kind==="user"?e.key:"kind"in e?`${e.kind}:${Dr(e.key)}`:e.key}function rd(e){return Br(e)?Object.keys(e).sort().filter(t=>t!=="kind").map(t=>({[t]:e[t].key})).reduce((t,s)=>ne(ne({},t),s),{}):"kind"in e?{[e.kind]:e.key}:{user:e.key}}let od=class{constructor(t,s){wt(this,"client"),wt(this,"metadata"),this.client=t,this.metadata=s}getHooks(t){return[]}init(t){this.client.track(id,{sessionID:t})}recordGauge(t,s){}identify(t,s,n={},r){}error(t,s){}track(t,s){const n=s.event;this.client.track(n?`${Hr}:${n}`:Hr,At(ne({},s),{sessionID:t}))}},ld=class extends ar{constructor(t,s){super(),wt(this,"client"),this.client=new od(t,s)}getHooks(t){return[{getMetadata:()=>({name:"highlight.run/ld"}),afterIdentify:(s,n,r)=>(this.load(this.client),n)}]}init(t){return this._bufferCall("init",[t])}recordGauge(t,s){return this._bufferCall("recordGauge",[t,s])}identify(t,s,n={},r){return this._bufferCall("identify",[t,s,n,r])}error(t,s){return this._bufferCall("error",[t,s])}track(t,s){return this._bufferCall("track",[t,s])}};const ad=e=>{e(window.location.href);const t=history.pushState;history.pushState=(l=>function(){var d=l.apply(this,arguments);return window.dispatchEvent(new Event("pushstate")),window.dispatchEvent(new Event("locationchange")),d})(history.pushState);const s=history.replaceState;history.replaceState=(l=>function(){var d=l.apply(this,arguments);return window.dispatchEvent(new Event("replacestate")),window.dispatchEvent(new Event("locationchange")),d})(history.replaceState);const n=()=>{window.dispatchEvent(new Event("locationchange"))};window.addEventListener("popstate",n);const r=function(){e(window.location.href)};return window.addEventListener("locationchange",r),()=>{window.removeEventListener("popstate",n),window.removeEventListener("locationchange",r),history.pushState=t,history.replaceState=s}},cd="1.4.0",ud={version:cd},dd=ud.version;function jr(e,t){return pd(e)}function hd(e){if(e.id.length)return`#${e.id}`;if(e.classList.length){let t=[];for(const s of e.classList)t.push(`.${s}`);return`${e.nodeName.toLowerCase()}${t.join(",")}`}return e.nodeName.toLowerCase()}const pd=e=>{let t="";const s=e.getAttribute("class"),n=e.getAttribute("id");return n&&(t=t.concat(Ar(n,"#"))),s&&(t=t.concat(Ar(s,"."))),t===""&&(t=t.concat(e.tagName.toLowerCase())),t},Ar=(e,t)=>`${t}${e.trim().split(" ").join(t)}`,md=e=>{let t;const s=()=>{clearTimeout(t),t=setTimeout(()=>{var n,r;e({height:window.innerHeight,width:window.innerWidth,availHeight:window.screen.availHeight,availWidth:window.screen.availWidth,colorDepth:window.screen.colorDepth,pixelDepth:window.screen.pixelDepth,orientation:(r=(n=window.screen.orientation)==null?void 0:n.angle)!=null?r:0})},500)};return window.addEventListener("resize",s),s(),()=>window.removeEventListener("resize",s)};var _r={exports:{}};/**
277
+ ${Nr}
278
+ `,Wu=(e,t,s,n)=>e();function wu(e,t=Wu){return{PushPayload(s,n){return t(r=>e.request(Zu,s,ne(ne({},n),r)),"PushPayload","mutation",s)},PushSessionEvents(s,n){return t(r=>e.request(Jr,s,ne(ne({},n),r)),"PushSessionEvents","mutation",s)},identifySession(s,n){return t(r=>e.request(Su,s,ne(ne({},n),r)),"identifySession","mutation",s)},addSessionProperties(s,n){return t(r=>e.request(Iu,s,ne(ne({},n),r)),"addSessionProperties","mutation",s)},pushMetrics(s,n){return t(r=>e.request(Xu,s,ne(ne({},n),r)),"pushMetrics","mutation",s)},addSessionFeedback(s,n){return t(r=>e.request(Vu,s,ne(ne({},n),r)),"addSessionFeedback","mutation",s)},initializeSession(s,n){return t(r=>e.request(Gu,s,ne(ne({},n),r)),"initializeSession","mutation",s)},Ignore(s,n){return t(r=>e.request(Ru,s,ne(ne({},n),r)),"Ignore","query",s)},GetSamplingConfig(s,n){return t(r=>e.request(vu,s,ne(ne({},n),r)),"GetSamplingConfig","query",s)}}}function ku(){var e=document.createElement("canvas");return e.getContext&&e.getContext("2d")?e.toDataURL("image/webp").indexOf("data:image/webp")==0:!1}function Cu(){return ku()?{type:"image/webp",quality:.9}:{type:"image/jpeg",quality:.6}}const xu="telemetry.sdk.name",Tu="telemetry.sdk.version",Yr=1e3,Lu=1e3*2,Ur=4*60*60*1e3,pn=15*60*1e3,Fr={normal:{bytes:1e7,time:4*60*1e3},canvas:{bytes:16e6,time:5e3}},Nu=100,Mr="app.highlight.io",Or="https://app.launchdarkly.com",Ju={"observability.ld-stg.launchdarkly.com":"ld-stg.launchdarkly.com","observability.app.launchdarkly.com":"app.launchdarkly.com","observability.app.ld.catamorphic.com":"app.ld.catamorphic.com"},Yu="/projects/default",Uu=new RegExp("pub\\.(?<domain>.+)");/*! js-cookie v3.0.8 | MIT */function os(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var n in s)n!=="__proto__"&&(e[n]=s[n])}return e}var Fu={read:function(e){return e[0]==='"'&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function mn(e,t){function s(r,l,d){if(typeof document<"u"){d=os({},t,d),typeof d.expires=="number"&&(d.expires=new Date(Date.now()+d.expires*864e5)),d.expires&&(d.expires=d.expires.toUTCString()),r=encodeURIComponent(r).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var f="";for(var m in d)d[m]&&(f+="; "+m,d[m]!==!0&&(f+="="+d[m].split(";")[0]));return document.cookie=r+"="+e.write(l,r)+f}}function n(r){if(!(typeof document>"u"||arguments.length&&!r)){for(var l=document.cookie?document.cookie.split("; "):[],d={},f=0;f<l.length;f++){var m=l[f].split("="),h=m.slice(1).join("=");try{var p=decodeURIComponent(m[0]);if(p in d||(d[p]=e.read(h,p)),r===p)break}catch{}}return r?d[r]:d}}return Object.create({set:s,get:n,remove:function(r,l){s(r,"",os({},l,{expires:-1}))},withAttributes:function(r){return mn(this.converter,os({},this.attributes,r))},withConverter:function(r){return mn(os({},this.converter,r),this.attributes)}},{attributes:{value:Object.freeze(t)},converter:{value:Object.freeze(e)}})}var ls=mn(Fu,{path:"/"}),fn=(e=>(e.CLIENT_ID="highlightClientID",e))(fn||{});let as="localStorage",bn=!0,Tt,Mu=class{constructor(){wt(this,"storage",{})}get length(){return Object.keys(this.storage).length}key(t){var s;return(s=Object.keys(this.storage)[t])!=null?s:null}getItem(t){var s;return(s=this.storage[t])!=null?s:""}setItem(t,s){this.storage[t]=s}removeItem(t){delete this.storage[t]}},Ou=class{getItem(t){var s;return(s=ls.get(t))!=null?s:""}setItem(t,s){if(!bn)return;const n=new Date;n.setTime(n.getTime()+pn),ls.set(t,s,ne({expires:n},Tt?{domain:Tt}:{}))}removeItem(t){bn&&ls.remove(t,Tt?{domain:Tt}:void 0)}keys(){var t;return Object.keys((t=ls.get())!=null?t:{})}};const ft=new Mu,bt=new Ou,cs=()=>{let e=null;if(typeof window>"u")return ft;try{switch(as){case"localStorage":e=window.localStorage;break;case"sessionStorage":e=window.sessionStorage;break}e||(_e("storage","getPersistentStorage","debug",`persistent storage was not found for mode ${as}; using global storage`),e=ft)}catch(t){_e("storage","getPersistentStorage","debug","failed to get persistent storage; using global storage",t),e=ft}return e},Ku=e=>{as=e},Kr=e=>{bn=e},Eu=e=>{Tt=e},Te=e=>{try{return cs().getItem(e)}catch(t){return _e("storage","getItem","debug",`failed to get item ${e}; using global storage`,t),ft.getItem(e)}},He=(e,t)=>{bt.setItem(e,t);try{return cs().setItem(e,t)}catch(s){return _e("storage","setItem","debug",`failed to set item ${e}; using global storage`,s),ft.setItem(e,t)}},us=e=>{bt.removeItem(e);try{return cs().removeItem(e)}catch(t){return _e("storage","removeItem","debug",`failed to remove item ${e}; using global storage`,t),ft.removeItem(e)}},zu=e=>{if(as==="sessionStorage"){_e("segment","sessionStorage","warn","highlight.io cannot use local storage; segment integration will not work");return}if(typeof window>"u"){_e("segment","no-window","warn","highlight.io cannot use local storage (not a window); segment integration will not work");return}const t=window.localStorage.setItem;window.localStorage.setItem=function(){const[s,n]=arguments;e({keyName:s,keyValue:n}),t.apply(this,[s,n])}};var ve=(e=>(e.SEGMENT_LAST_SENT_HASH_KEY="HIGHLIGHT_SEGMENT_LAST_SENT_HASH_KEY",e.SESSION_ID="sessionID",e.SESSION_DATA="sessionData",e.USER_IDENTIFIER="highlightIdentifier",e.USER_OBJECT="highlightUserObject",e))(ve||{});const ds=e=>`${ve.SESSION_DATA}_${e}`,Pu=()=>{var e;return typeof globalThis<"u"&&(e=globalThis.persistentSessionSecureID)!=null&&e.length?globalThis.persistentSessionSecureID:yn()},Hu=e=>{typeof globalThis<"u"&&e!=null&&e.length&&(globalThis.persistentSessionSecureID=e)},yn=()=>{var e;return(e=Te(ve.SESSION_ID))!=null?e:""},Lt=e=>{He(ve.SESSION_ID,e)},Er=e=>{const t=ds(e);return JSON.parse(Te(t)||"{}")},Du=(e,t)=>!e.sessionKey&&!!e.sessionStartTime&&t-e.sessionStartTime>Ur,hs=e=>{e||(e=yn());let t=Er(e);if(t&&t.lastPushTime&&Date.now()-t.lastPushTime<pn&&!Du(t,Date.now()))return t;us(ds(e))},Bu=e=>{const t=e??yn();if(t)try{return Er(t)}catch{return}},rt=function(e){if(!(e!=null&&e.sessionSecureID))return;const t=e.sessionSecureID;Hu(t);const s=ds(t);He(s,JSON.stringify(e)),ju(s)},Qu=function(){const e=bt.getItem(ve.SESSION_ID);Lt(e);const t=ds(e),s=bt.getItem(t);try{rt(JSON.parse(s))}catch{}};function ju(e){var t;const s=`${ve.SESSION_DATA}_`,n=new Set,r=cs();for(let l=r.length-1;l>=0;l--){const d=r.key(l);d&&d.startsWith(s)&&d!==e&&n.add(d)}for(const l of bt.keys())l.startsWith(s)&&l!==e&&n.add(l);for(const l of n){let d=!0;try{const f=Te(l)||bt.getItem(l)||"{}",m=JSON.parse(f),h=(t=m.lastPushTime)!=null?t:m.sessionStartTime;d=h===void 0||Date.now()-h>=pn}catch{}d&&(_e("highlightSession","pruneSessionData","debug",`removing session data for stale key ${l}`),us(l))}}var zr=(e=>(e.BillingQuotaExceeded="BillingQuotaExceeded",e))(zr||{});const Au=3,_u=1e3,$u=500,qu=[zr.BillingQuotaExceeded.toString()],ed=e=>{var t;return((t=e.response.errors)==null?void 0:t.find(s=>qu.includes(s.message)))===void 0},td=()=>{const e=(t,s,n,r,l=0)=>dt(void 0,null,function*(){try{return yield t()}catch(d){if(d instanceof Cr&&!ed(d))throw d;if(l<Au)return yield new Promise(f=>setTimeout(f,_u+$u*Math.pow(2,l))),yield e(t,s,n,r,l+1);throw ut("error",`highlight.io: data request failed after ${l} retries`),d}});return e},Pr="feature_flag",Hr="launchdarkly",sd=`${Pr}.set.id`,nd=`${Pr}.provider.name`,id=`${Hr}.application.id`,rd=`${Hr}.application.version`,od="$ld:telemetry:session:init",Dr="$ld:telemetry:track";function Br(e){return e.includes("%")||e.includes(":")?e.replace(/%/g,"%25").replace(/:/g,"%3A"):e}function Qr(e){return e.kind==="multi"}function jr(e){return Qr(e)?Object.keys(e).sort().filter(t=>t!=="kind").map(t=>`${t}:${Br(e[t].key)}`).join(":"):"kind"in e&&e.kind==="user"?e.key:"kind"in e?`${e.kind}:${Br(e.key)}`:e.key}function ld(e){return Qr(e)?Object.keys(e).sort().filter(t=>t!=="kind").map(t=>({[t]:e[t].key})).reduce((t,s)=>ne(ne({},t),s),{}):"kind"in e?{[e.kind]:e.key}:{user:e.key}}let ad=class{constructor(t,s){wt(this,"client"),wt(this,"metadata"),this.client=t,this.metadata=s}getHooks(t){return[]}init(t){this.client.track(od,{sessionID:t})}recordGauge(t,s){}identify(t,s,n={},r){}error(t,s){}track(t,s){const n=s.event;this.client.track(n?`${Dr}:${n}`:Dr,At(ne({},s),{sessionID:t}))}};class cd extends cr{constructor(t,s){super(),wt(this,"client"),this.client=new ad(t,s)}getHooks(t){return[{getMetadata:()=>({name:"highlight.run/ld"}),afterIdentify:(s,n,r)=>(this.load(this.client),n)}]}init(t){return this._bufferCall("init",[t])}recordGauge(t,s){return this._bufferCall("recordGauge",[t,s])}identify(t,s,n={},r){return this._bufferCall("identify",[t,s,n,r])}error(t,s){return this._bufferCall("error",[t,s])}track(t,s){return this._bufferCall("track",[t,s])}}const ud=e=>{e(window.location.href);const t=history.pushState;history.pushState=(l=>function(){var d=l.apply(this,arguments);return window.dispatchEvent(new Event("pushstate")),window.dispatchEvent(new Event("locationchange")),d})(history.pushState);const s=history.replaceState;history.replaceState=(l=>function(){var d=l.apply(this,arguments);return window.dispatchEvent(new Event("replacestate")),window.dispatchEvent(new Event("locationchange")),d})(history.replaceState);const n=()=>{window.dispatchEvent(new Event("locationchange"))};window.addEventListener("popstate",n);const r=function(){e(window.location.href)};return window.addEventListener("locationchange",r),()=>{window.removeEventListener("popstate",n),window.removeEventListener("locationchange",r),history.pushState=t,history.replaceState=s}},dd="1.5.0",hd={version:dd},pd=hd.version;function Ar(e,t){return fd(e)}function md(e){if(e.id.length)return`#${e.id}`;if(e.classList.length){let t=[];for(const s of e.classList)t.push(`.${s}`);return`${e.nodeName.toLowerCase()}${t.join(",")}`}return e.nodeName.toLowerCase()}const fd=e=>{let t="";const s=e.getAttribute("class"),n=e.getAttribute("id");return n&&(t=t.concat(_r(n,"#"))),s&&(t=t.concat(_r(s,"."))),t===""&&(t=t.concat(e.tagName.toLowerCase())),t},_r=(e,t)=>`${t}${e.trim().split(" ").join(t)}`,bd=e=>{let t;const s=()=>{clearTimeout(t),t=setTimeout(()=>{var n,r;e({height:window.innerHeight,width:window.innerWidth,availHeight:window.screen.availHeight,availWidth:window.screen.availWidth,colorDepth:window.screen.colorDepth,pixelDepth:window.screen.pixelDepth,orientation:(r=(n=window.screen.orientation)==null?void 0:n.angle)!=null?r:0})},500)};return window.addEventListener("resize",s),s(),()=>window.removeEventListener("resize",s)};var $r={exports:{}};/**
279
279
  * @preserve
280
280
  * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013)
281
281
  *
@@ -285,13 +285,13 @@ this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names`):d
285
285
  * @see http://github.com/garycourt/murmurhash-js
286
286
  * @author <a href="mailto:aappleby@gmail.com">Austin Appleby</a>
287
287
  * @see http://sites.google.com/site/murmurhash/
288
- */(function(e){(function(){var t;function s(n,r){var l=this instanceof s?this:t;if(l.reset(r),typeof n=="string"&&n.length>0&&l.hash(n),l!==this)return l}s.prototype.hash=function(n){var r,l,d,f,m;switch(m=n.length,this.len+=m,l=this.k1,d=0,this.rem){case 0:l^=m>d?n.charCodeAt(d++)&65535:0;case 1:l^=m>d?(n.charCodeAt(d++)&65535)<<8:0;case 2:l^=m>d?(n.charCodeAt(d++)&65535)<<16:0;case 3:l^=m>d?(n.charCodeAt(d)&255)<<24:0,l^=m>d?(n.charCodeAt(d++)&65280)>>8:0}if(this.rem=m+this.rem&3,m-=this.rem,m>0){for(r=this.h1;l=l*11601+(l&65535)*3432906752&4294967295,l=l<<15|l>>>17,l=l*13715+(l&65535)*461832192&4294967295,r^=l,r=r<<13|r>>>19,r=r*5+3864292196&4294967295,!(d>=m);)l=n.charCodeAt(d++)&65535^(n.charCodeAt(d++)&65535)<<8^(n.charCodeAt(d++)&65535)<<16,f=n.charCodeAt(d++),l^=(f&255)<<24^(f&65280)>>8;switch(l=0,this.rem){case 3:l^=(n.charCodeAt(d+2)&65535)<<16;case 2:l^=(n.charCodeAt(d+1)&65535)<<8;case 1:l^=n.charCodeAt(d)&65535}this.h1=r}return this.k1=l,this},s.prototype.result=function(){var n,r;return n=this.k1,r=this.h1,n>0&&(n=n*11601+(n&65535)*3432906752&4294967295,n=n<<15|n>>>17,n=n*13715+(n&65535)*461832192&4294967295,r^=n),r^=this.len,r^=r>>>16,r=r*51819+(r&65535)*2246770688&4294967295,r^=r>>>13,r=r*44597+(r&65535)*3266445312&4294967295,r^=r>>>16,r>>>0},s.prototype.reset=function(n){return this.h1=typeof n=="number"?n:0,this.rem=this.k1=this.len=0,this},t=new s,e.exports=s})()})(_r);var fd=_r.exports;const bd=on(fd),yn=28,yt="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",yd=2246822507,Nt=e=>{var t,s="";if(e){const n=bd(e).result();for(let r=0;r<yn;r++){const l=((n^r*yd)>>>0)%yt.length;s+=yt.charAt(l)}}else{const n=typeof window<"u"&&((t=window.crypto)==null?void 0:t.getRandomValues),r=new Uint32Array(yn);n&&window.crypto.getRandomValues(r);for(let l=0;l<yn;l++)n?s+=yt.charAt(r[l]%yt.length):s+=yt.charAt(Math.floor(Math.random()*yt.length))}return s};let gd=class{constructor(t){wt(this,"sessionSecureID");try{t!=null&&t.storageMode&&Ou(t?.storageMode),Mr(!!(t!=null&&t.sessionCookie)),t?.sessionCookieDomain!==void 0&&Mu(t.sessionCookieDomain),t!=null&&t.sessionCookie?Du():Mr(!1)}catch(s){Ie("Error initializing @launchdarkly observability plugin","error",s)}}configureSession(t,s){try{const n=Eu();let r=hs(n);r!=null&&r.sessionSecureID?this.sessionSecureID=r.sessionSecureID:(s!=null&&s.sessionKey?this.sessionSecureID=Nt(`${t}-${s.sessionKey}`):this.sessionSecureID=Nt(),Lt(this.sessionSecureID),rt({sessionSecureID:this.sessionSecureID,sessionKey:s?.sessionKey,projectID:0,sessionStartTime:Date.now(),lastPushTime:Date.now()}))}catch(n){Ie("Error configuring session in @launchdarkly observability plugin","error",n)}}};var Zd=Object.defineProperty,Sd=(e,t,s)=>t in e?Zd(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,Id=(e,t,s)=>Sd(e,t+"",s),$r=(e,t,s)=>new Promise((n,r)=>{var l=m=>{try{f(s.next(m))}catch(h){r(h)}},d=m=>{try{f(s.throw(m))}catch(h){r(h)}},f=m=>m.done?n(m.value):Promise.resolve(m.value).then(l,d);f((s=s.apply(e,t)).next())});let qr=class extends ar{constructor(){super(...arguments),Id(this,"_deferredStartOptions")}getSession(){return this._isLoaded?this._callSdk("getSession",[]):null}_startSdk(){return $r(this,null,function*(){const t=this._deferredStartOptions;this._deferredStartOptions=void 0,yield this._sdk.start(t)})}start(t){return $r(this,null,function*(){return this._deferredStartOptions=t,this._start()})}stop(){this._stop(()=>this._sdk.stop())}addSessionProperties(t){return this._bufferCall("addSessionProperties",[t])}getRecordingState(){return this._isLoaded?this._callSdk("getRecordingState",[]):"NotRecording"}snapshot(t){return this._isLoaded?this._callSdk("snapshot",[t]):Promise.resolve(void 0)}register(t,s){return this._bufferCall("register",[t,s])}};Ye.LDRecord=void 0,typeof globalThis<"u"?globalThis.LDRecord?Ye.LDRecord=globalThis.LDRecord:(Ye.LDRecord=new qr,globalThis.LDRecord=Ye.LDRecord):Ye.LDRecord=new qr;var Xd=Object.defineProperty,Vd=Object.defineProperties,Gd=Object.getOwnPropertyDescriptors,ps=Object.getOwnPropertySymbols,eo=Object.prototype.hasOwnProperty,to=Object.prototype.propertyIsEnumerable,so=e=>{throw TypeError(e)},gn=(e,t,s)=>t in e?Xd(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,H=(e,t)=>{for(var s in t||(t={}))eo.call(t,s)&&gn(e,s,t[s]);if(ps)for(var s of ps(t))to.call(t,s)&&gn(e,s,t[s]);return e},Xe=(e,t)=>Vd(e,Gd(t)),ms=(e,t)=>{var s={};for(var n in e)eo.call(e,n)&&t.indexOf(n)<0&&(s[n]=e[n]);if(e!=null&&ps)for(var n of ps(e))t.indexOf(n)<0&&to.call(e,n)&&(s[n]=e[n]);return s},Q=(e,t,s)=>gn(e,typeof t!="symbol"?t+"":t,s),no=(e,t,s)=>t.has(e)||so("Cannot "+s),Rd=(e,t,s)=>(no(e,t,"read from private field"),s?s.call(e):t.get(e)),vd=(e,t,s)=>t.has(e)?so("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),Wd=(e,t,s,n)=>(no(e,t,"write to private field"),t.set(e,s),s),We=(e,t,s)=>new Promise((n,r)=>{var l=m=>{try{f(s.next(m))}catch(h){r(h)}},d=m=>{try{f(s.throw(m))}catch(h){r(h)}},f=m=>m.done?n(m.value):Promise.resolve(m.value).then(l,d);f((s=s.apply(e,t)).next())});const wd={key:"_sid"},kd="rrweb/sequential-id@1",Cd=e=>{const t=wd;let s=0;return{name:kd,eventProcessor(n){return Object.assign(n,{[t.key]:++s}),n},options:t}};var xd=Object.defineProperty,Td=(e,t,s)=>t in e?xd(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,L=(e,t,s)=>Td(e,typeof t!="symbol"?t+"":t,s),io,Ld=Object.defineProperty,Nd=(e,t,s)=>t in e?Ld(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,ro=(e,t,s)=>Nd(e,typeof t!="symbol"?t+"":t,s),ye=(e=>(e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment",e))(ye||{});const fs=new Map,oo=new WeakSet;function lo(e){return e!==null&&typeof e=="object"&&"complete"in e&&"naturalWidth"in e&&"naturalHeight"in e&&"src"in e&&"onload"in e}function Jd(e){if(oo.has(e))return;oo.add(e);const t=e.drawImage.bind(e);e.drawImage=function(s,...n){const r=fs.get(e);r&&(r.cancelled=!0);const l=()=>{n.length===2&&lo(s)&&n.push(s.naturalWidth||s.width,s.naturalHeight||s.height),t(s,...n)};if(lo(s)&&!s.complete){const d={cancelled:!1};fs.set(e,d);const f=()=>{d.cancelled||(fs.delete(e),l())},m=()=>{if(!d.cancelled){fs.delete(e);try{l()}catch{}}};s.onload=f,s.onerror=m}else l()}}const ao={Node:["childNodes","parentNode","parentElement","textContent","ownerDocument"],ShadowRoot:["host","styleSheets"],Element:["shadowRoot","querySelector","querySelectorAll"],MutationObserver:[]},co={Node:["contains","getRootNode"],ShadowRoot:["getSelection"],Element:[],MutationObserver:["constructor"]},bs={},uo={},Yd=()=>!!globalThis.Zone;function Zn(e){if(bs[e])return bs[e];const t=globalThis[e],s=t.prototype,n=e in ao?ao[e]:void 0,r=!!(n&&n.every(f=>{var m,h;return!!((h=(m=Object.getOwnPropertyDescriptor(s,f))==null?void 0:m.get)!=null&&h.toString().includes("[native code]"))})),l=e in co?co[e]:void 0,d=!!(l&&l.every(f=>{var m;return typeof s[f]=="function"&&((m=s[f])==null?void 0:m.toString().includes("[native code]"))}));if(r&&d&&!Yd())return bs[e]=t.prototype,t.prototype;try{const f=document.createElement("iframe");f.style.display="none",document.body.appendChild(f);const m=f.contentWindow;if(!m)return t.prototype;const h=m[e].prototype;if(!h)return f.remove(),s;const p=navigator.userAgent;return p.includes("Safari")&&!p.includes("Chrome")?(f.classList.add("rr-block"),f.setAttribute("__rrwebUntaintedMutationObserver",""),uo[e]=()=>f.remove()):f.remove(),bs[e]=h}catch{return s}}const Sn={};function De(e,t,s){var n;const r=`${e}.${String(s)}`;if(Sn[r])return Sn[r].call(t);const l=Zn(e),d=(n=Object.getOwnPropertyDescriptor(l,s))==null?void 0:n.get;return d?(Sn[r]=d,d.call(t)):t[s]}const In={};function ho(e,t,s){const n=`${e}.${String(s)}`;if(In[n])return In[n].bind(t);const r=Zn(e)[s];return typeof r!="function"?t[s]:(In[n]=r,r.bind(t))}function Ud(e){return De("Node",e,"ownerDocument")}function Fd(e){return De("Node",e,"childNodes")}function Od(e){return De("Node",e,"parentNode")}function Md(e){return De("Node",e,"parentElement")}function Kd(e){return De("Node",e,"textContent")}function Ed(e,t){return ho("Node",e,"contains")(t)}function zd(e){return ho("Node",e,"getRootNode")()}function Pd(e){return!e||!("host"in e)?null:De("ShadowRoot",e,"host")}function Hd(e){return e.styleSheets}function Dd(e){return!e||!("shadowRoot"in e)?null:De("Element",e,"shadowRoot")}function Bd(e,t){return De("Element",e,"querySelector")(t)}function Qd(e,t){return De("Element",e,"querySelectorAll")(t)}function jd(){var e;return[Zn("MutationObserver").constructor,(e=uo.MutationObserver)!=null?e:()=>{}]}let po=Date.now;/[1-9][0-9]{12}/.test(Date.now().toString())||(po=()=>new Date().getTime());function Ad(e,t,s){try{if(!(t in e))return()=>{};const n=e[t],r=s(n);return typeof r=="function"&&(r.prototype=r.prototype||{},Object.defineProperties(r,{__rrweb_original__:{enumerable:!1,value:n}})),e[t]=r,()=>{e[t]=n}}catch{return()=>{}}}const Ve={ownerDocument:Ud,childNodes:Fd,parentNode:Od,parentElement:Md,textContent:Kd,contains:Ed,getRootNode:zd,host:Pd,styleSheets:Hd,shadowRoot:Dd,querySelector:Bd,querySelectorAll:Qd,nowTimestamp:po,mutationObserverCtor:jd,patch:Ad,wrapCanvasContextDrawImage:Jd};function mo(e){return e.nodeType===e.ELEMENT_NODE}function Jt(e){const t=e&&"host"in e&&"mode"in e&&Ve.host(e)||null;return!!(t&&"shadowRoot"in t&&Ve.shadowRoot(t)===e)}function Yt(e){return Object.prototype.toString.call(e)==="[object ShadowRoot]"}function _d(e){return e.includes(" background-clip: text;")&&!e.includes(" -webkit-background-clip: text;")&&(e=e.replace(/\sbackground-clip:\s*text;/g," -webkit-background-clip: text; background-clip: text;")),e}function $d(e){const{cssText:t}=e;if(t.split('"').length<3)return t;const s=["@import",`url(${JSON.stringify(e.href)})`];return e.layerName===""?s.push("layer"):e.layerName&&s.push(`layer(${e.layerName})`),e.supportsText&&s.push(`supports(${e.supportsText})`),e.media.length&&s.push(e.media.mediaText),s.join(" ")+";"}function Xn(e){try{const t=e.rules||e.cssRules;if(!t)return null;let s=e.href;!s&&e.ownerNode&&(s=e.ownerNode.baseURI);const n=Array.from(t,r=>fo(r,s)).join("");return _d(n)}catch{return null}}function fo(e,t){if(bo(e)){let s;try{s=Xn(e.styleSheet)||$d(e)}catch{s=e.cssText}return e.styleSheet.href?Zs(s,e.styleSheet.href):s}else{let s=e.cssText;return eh(e)&&e.selectorText.includes(":")&&(s=qd(s)),t?Zs(s,t):s}}function qd(e){const t=/(\[(?:[\w-]+)[^\\])(:(?:[\w-]+)\])/gm;return e.replace(t,"$1\\$2")}function bo(e){return"styleSheet"in e}function eh(e){return"selectorText"in e}class yo{constructor(){ro(this,"idNodeMap",new Map),ro(this,"nodeMetaMap",new WeakMap)}getId(t){var s;if(!t)return-1;const n=(s=this.getMeta(t))==null?void 0:s.id;return n??-1}getNode(t){return this.idNodeMap.get(t)||null}getIds(){return Array.from(this.idNodeMap.keys())}getMeta(t){return this.nodeMetaMap.get(t)||null}removeNodeFromMap(t){const s=this.getId(t);this.idNodeMap.delete(s),t.childNodes&&t.childNodes.forEach(n=>this.removeNodeFromMap(n))}has(t){return this.idNodeMap.has(t)}hasNode(t){return this.nodeMetaMap.has(t)}add(t,s){const n=s.id;this.idNodeMap.set(n,t),this.nodeMetaMap.set(t,s)}replace(t,s){const n=this.getNode(t);if(n){const r=this.nodeMetaMap.get(n);r&&this.nodeMetaMap.set(s,r)}this.idNodeMap.set(t,s)}reset(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap}}function th(){return new yo}function ys({element:e,maskInputOptions:t,tagName:s,type:n,value:r,overwriteRecord:l,maskInputFn:d}){let f=r||"";return Io({maskInputOptions:t,tagName:s,type:n,overwriteRecord:l})&&(d?f=d(f,e):f="*".repeat(f.length)),f}function ot(e){return e.toLowerCase()}const go="__rrweb_original__";function sh(e){const t=e.getContext("2d");if(!t)return!0;const s=50;for(let n=0;n<e.width;n+=s)for(let r=0;r<e.height;r+=s){const l=t.getImageData,d=go in l?l[go]:l;if(new Uint32Array(d.call(t,n,r,Math.min(s,e.width-n),Math.min(s,e.height-r)).data.buffer).some(f=>f!==0))return!1}return!0}function gs(e){const t=e.type;return e.hasAttribute("data-rr-is-password")?"password":t?ot(t):null}function Zo(e,t){var s;let n;try{n=new URL(e,window.location.href)}catch{return null}const r=/\.([0-9a-z]+)(?:$)/i,l=n.pathname.match(r);return(s=l?.[1])!=null?s:null}function nh(e){let t="";return e.indexOf("//")>-1?t=e.split("/").slice(0,3).join("/"):t=e.split("/")[0],t=t.split("?")[0],t}const ih=/url\((?:(')([^']*)'|(")(.*?)"|([^)]*))\)/gm,rh=/^(?:[a-z+]+:)?\/\//i,oh=/^www\..*/i,lh=/^(data:)([^,]*),(.*)/i;function Zs(e,t){return(e||"").replace(ih,(s,n,r,l,d,f)=>{const m=r||d||f,h=n||l||"";if(!m)return s;if(rh.test(m)||oh.test(m))return`url(${h}${m}${h})`;if(lh.test(m))return`url(${h}${m}${h})`;if(m[0]==="/")return`url(${h}${nh(t)+m}${h})`;const p=m.split("#")[0],o=m.substring(p.length),a=t.split("#")[0].split("/"),i=p.split("/");a.pop();for(const c of i)c!=="."&&(c===".."?a.pop():a.push(c));return`url(${h}${a.join("/")}${o}${h})`})}function Ss(e,t=!1){return t?e.replace(/(\/\*[^*]*\*\/)|[\s;]/g,""):e.replace(/(\/\*[^*]*\*\/)|[\s;]/g,"").replace(/0px/g,"0")}function ah(e,t,s=!1){const n=Array.from(t.childNodes),r=[];let l=0;if(n.length>1&&e&&typeof e=="string"){let d=Ss(e,s);const f=d.length/e.length;for(let m=1;m<n.length;m++)if(n[m].textContent&&typeof n[m].textContent=="string"){const h=Ss(n[m].textContent,s),p=100;let o=3;for(;o<h.length&&(h[o].match(/[a-zA-Z0-9]/)||h.indexOf(h.substring(0,o),1)!==-1);o++);for(;o<h.length;o++){let a=h.substring(0,o),i=d.split(a),c=-1;if(i.length===2)c=i[0].length;else if(i.length>2&&i[0]===""&&n[m-1].textContent!=="")c=d.indexOf(a,1);else if(i.length===1){if(a=a.substring(0,a.length-1),i=d.split(a),i.length<=1)return r.push(e),r;o=p+1}else o===h.length-1&&(c=d.indexOf(a));if(i.length>=2&&o>p){const u=n[m-1].textContent;if(u&&typeof u=="string"){const b=Ss(u).length;c=d.indexOf(a,b)}c===-1&&(c=i[0].length)}if(c!==-1){let u=Math.floor(c/f);for(;u>0&&u<e.length;){if(l+=1,l>50*n.length)return r.push(e),r;const b=Ss(e.substring(0,u),s);if(b.length===c){r.push(e.substring(0,u)),e=e.substring(u),d=d.substring(c);break}else b.length<c?u+=Math.max(1,Math.floor((c-b.length)/f)):u-=Math.max(1,Math.floor((b.length-c)*f))}break}}}}return r.push(e),r}function ch(e,t){return ah(e,t).join("/* rr_split */")}function Vn(e){return e=e.replace(/[^ -~]+/g,""),e=e?.split(" ").map(t=>t?Math.random().toString(20).substring(2,t.length+2):"").join(" ")||"",e}function Gn(e){return e==="img"||e==="video"||e==="audio"||e==="source"}const uh=new RegExp(/[a-zA-Z0-9.!#$%&'*+=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*/),dh=new RegExp(/[0-9]{9,16}/),hh=new RegExp(/[0-9]{3}-?[0-9]{2}-?[0-9]{4}/),ph=new RegExp(/[+]?[(]?[0-9]{3}[)]?[-\s.]?[0-9]{3}[-\s.]?[0-9]{4,6}/),mh=new RegExp(/[0-9]{4}-?[0-9]{4}-?[0-9]{4}-?[0-9]{4}/),fh=new RegExp(/[0-9]{1,5}.?[0-9]{0,3}\s[a-zA-Z]{2,30}\s[a-zA-Z]{2,15}/),bh=new RegExp(/(?:[0-9]{1,3}.){3}[0-9]{1,3}/),yh=[uh,dh,hh,ph,mh,fh,bh];function So(e){return e?yh.some(t=>t.test(e)):!1}const Io=({maskInputOptions:e,tagName:t,type:s,overwriteRecord:n})=>{const r=s&&s.toLowerCase();return n!=="true"&&(!!e[t.toLowerCase()]||!!(r&&e[r]))};let gh=1;const Zh=new RegExp("[^a-z0-9-_:]"),Ut=-2;function Xo(){return gh++}function Sh(e){if(e instanceof HTMLFormElement)return"form";const t=ot(e.tagName);return Zh.test(t)?"div":t}let gt,Vo;const Ih=/^[^ \t\n\r\u000c]+/,Xh=/^[, \t\n\r\u000c]+/;function Vh(e,t){if(t.trim()==="")return t;let s=0;function n(l){let d;const f=l.exec(t.substring(s));return f?(d=f[0],s+=d.length,d):""}const r=[];for(;n(Xh),!(s>=t.length);){let l=n(Ih);if(l.slice(-1)===",")l=Is(e,l.substring(0,l.length-1)),r.push(l);else{let d="";l=Is(e,l);let f=!1;for(;;){const m=t.charAt(s);if(m===""){r.push((l+d).trim());break}else if(f)m===")"&&(f=!1);else if(m===","){s+=1,r.push((l+d).trim());break}else m==="("&&(f=!0);d+=m,s+=1}}}return r.join(", ")}const Go=new WeakMap;function Is(e,t){return!t||t.trim()===""?t:Rn(e,t)}function Gh(e){return!!(e.tagName==="svg"||e.ownerSVGElement)}function Rn(e,t){let s=Go.get(e);if(s||(s=e.createElement("a"),Go.set(e,s)),!t)t="";else if(t.startsWith("blob:")||t.startsWith("data:"))return t;return s.setAttribute("href",t),s.href}function Ro(e,t,s,n){return n&&(s==="src"||s==="href"&&!(t==="use"&&n[0]==="#")||s==="xlink:href"&&n[0]!=="#"||s==="background"&&["table","td","th"].includes(t)?Is(e,n):s==="srcset"?Vh(e,n):s==="style"?Zs(n,Rn(e)):t==="object"&&s==="data"?Is(e,n):n)}function vo(e,t,s){return["video","audio"].includes(e)&&t==="autoplay"}function Wo(e,t,s){try{if(typeof t=="string"){if(e.classList.contains(t))return!0}else for(let n=e.classList.length;n--;){const r=e.classList[n];if(t.test(r))return!0}if(s)return e.matches(s)}catch{}return!1}function Xs(e,t,s){if(!e)return!1;if(e.nodeType!==e.ELEMENT_NODE)return s?Xs(Ve.parentNode(e),t,s):!1;for(let n=e.classList.length;n--;){const r=e.classList[n];if(t.test(r))return!0}return s?Xs(Ve.parentNode(e),t,s):!1}function wo(e,t,s,n){let r;if(mo(e)){if(r=e,!Ve.childNodes(r).length)return!1}else{if(Ve.parentElement(e)===null)return!1;r=Ve.parentElement(e)}try{if(typeof t=="string"){if(n){if(r.closest(`.${t}`))return!0}else if(r.classList.contains(t))return!0}else if(Xs(r,t,n))return!0;if(s){if(n){if(r.closest(s))return!0}else if(r.matches(s))return!0}}catch{}return!1}function Rh(e,t,s){const n=e.contentWindow;if(!n)return;let r=!1,l;try{l=n.document.readyState}catch{return}if(l!=="complete"){const f=setTimeout(()=>{r||(t(),r=!0)},s);e.addEventListener("load",()=>{clearTimeout(f),r=!0,t()});return}const d="about:blank";if(n.location.href!==d||e.src===d||e.src==="")return setTimeout(t,0),e.addEventListener("load",t);e.addEventListener("load",t)}function vh(e,t,s){let n=!1,r;try{r=e.sheet}catch{return}if(r)return;const l=setTimeout(()=>{n||(t(),n=!0)},s);e.addEventListener("load",()=>{clearTimeout(l),n=!0,t()})}function Wh(e,t){const{doc:s,mirror:n,blockClass:r,blockSelector:l,needsMask:d,inlineStylesheet:f,maskInputOptions:m={},maskTextClass:h,maskTextFn:p,maskInputFn:o,dataURLOptions:a={},inlineImages:i,inlineVideos:c,recordCanvas:u,keepIframeSrcFn:b,newlyAddedElement:S=!1,cssCaptured:Z=!1,privacySetting:I}=t,R=wh(s,n);switch(e.nodeType){case e.DOCUMENT_NODE:return e.compatMode!=="CSS1Compat"?{type:ye.Document,childNodes:[],compatMode:e.compatMode}:{type:ye.Document,childNodes:[]};case e.DOCUMENT_TYPE_NODE:return{type:ye.DocumentType,name:e.name,publicId:e.publicId,systemId:e.systemId,rootId:R};case e.ELEMENT_NODE:return Ch(e,{doc:s,blockClass:r,blockSelector:l,inlineStylesheet:f,maskInputOptions:m,maskInputFn:o,maskTextClass:h,dataURLOptions:a,inlineImages:i,inlineVideos:c,recordCanvas:u,keepIframeSrcFn:b,newlyAddedElement:S,privacySetting:I,rootId:R});case e.TEXT_NODE:return kh(e,{doc:s,needsMask:d,maskTextFn:p,privacySetting:I,rootId:R,cssCaptured:Z});case e.CDATA_SECTION_NODE:return{type:ye.CDATA,textContent:"",rootId:R};case e.COMMENT_NODE:return{type:ye.Comment,textContent:Ve.textContent(e)||"",rootId:R};default:return!1}}function wh(e,t){if(!t.hasNode(e))return;const s=t.getId(e);return s===1?void 0:s}function kh(e,t){var s;const{needsMask:n,maskTextFn:r,privacySetting:l,rootId:d,cssCaptured:f}=t,m=Ve.parentNode(e),h=m&&m.tagName;let p="";const o=h==="STYLE"?!0:void 0,a=h==="SCRIPT"?!0:void 0;a?p="SCRIPT_PLACEHOLDER":f||(p=Ve.textContent(e),o&&p&&(p=Zs(p,Rn(t.doc)))),!o&&!a&&p&&n&&(p=r?r(p,Ve.parentElement(e)):p.replace(/[\S]/g,"*"));const i=l==="strict",c=(s=e.parentElement)==null?void 0:s.getAttribute("data-hl-record"),u=l==="default"&&So(p);return(i||u)&&!c&&h&&!new Set(["HEAD","TITLE","STYLE","SCRIPT","HTML","BODY","NOSCRIPT"]).has(h)&&p&&(p=Vn(p)),{type:ye.Text,textContent:p||"",rootId:d}}function Ch(e,t){const{doc:s,blockClass:n,blockSelector:r,inlineStylesheet:l,maskInputOptions:d={},maskInputFn:f,maskTextClass:m,dataURLOptions:h={},inlineImages:p,inlineVideos:o,recordCanvas:a,keepIframeSrcFn:i,newlyAddedElement:c=!1,privacySetting:u,rootId:b}=t;let S=Wo(e,n,r);const Z=Wo(e,m,null),I=u==="strict";let R=Sh(e),y={};const g=e.attributes.length;for(let X=0;X<g;X++){const W=e.attributes[X];vo(R,W.name)||(y[W.name]=Ro(s,R,ot(W.name),W.value))}if(R==="link"&&l){const X=Array.from(s.styleSheets).find(k=>k.href===e.href);let W=null;X&&(W=Xn(X)),W&&(delete y.rel,delete y.href,y._cssText=W)}if(R==="style"&&e.sheet){let X=Xn(e.sheet);X&&(e.childNodes.length>1&&(X=ch(X,e)),y._cssText=X)}if(["input","textarea","select"].includes(R)){const X=e.value,W=e.checked;y.type!=="radio"&&y.type!=="checkbox"&&y.type!=="submit"&&y.type!=="button"&&X?y.value=ys({element:e,type:gs(e),tagName:R,value:X,overwriteRecord:e.getAttribute("data-hl-record"),maskInputOptions:d,maskInputFn:f}):W&&(y.checked=W)}if(R==="option"&&(e.selected&&!d.select?y.selected=!0:delete y.selected),R==="dialog"&&e.open&&(y.rr_open_mode=e.matches("dialog:modal")?"modal":"non-modal"),R==="canvas"&&a){if(e.__context==="2d")sh(e);else if(!("__context"in e)){const X=e.toDataURL(h.type,h.quality),W=s.createElement("canvas");W.width=e.width,W.height=e.height;const k=W.toDataURL(h.type,h.quality);X!==k&&(y.rr_dataURL=X)}}if(R==="img"&&p&&!S&&!Z&&!I){gt||(gt=s.createElement("canvas"),Vo=gt.getContext("2d"));const X=e,W=X.currentSrc||X.getAttribute("src")||"<unknown-src>",k=X.crossOrigin,N=()=>{X.removeEventListener("load",N);try{gt.width=X.naturalWidth,gt.height=X.naturalHeight,Vo.drawImage(X,0,0),y.rr_dataURL=gt.toDataURL(h.type,h.quality)}catch(j){if(X.crossOrigin!=="anonymous"){X.crossOrigin="anonymous",X.complete&&X.naturalWidth!==0?N():X.addEventListener("load",N);return}else console.warn(`Cannot inline img src=${W}! Error: ${j}`)}X.crossOrigin==="anonymous"&&(k?y.crossOrigin=k:X.removeAttribute("crossorigin"))};X.complete&&X.naturalWidth!==0?N():X.addEventListener("load",N)}if(["audio","video"].includes(R)){const X=y;X.rr_mediaState=e.paused?"paused":"played",X.rr_mediaCurrentTime=e.currentTime,X.rr_mediaPlaybackRate=e.playbackRate,X.rr_mediaMuted=e.muted,X.rr_mediaLoop=e.loop,X.rr_mediaVolume=e.volume}if(c||(e.scrollLeft&&(y.rr_scrollLeft=e.scrollLeft),e.scrollTop&&(y.rr_scrollTop=e.scrollTop)),S||Z||I&&Gn(R)){const{width:X,height:W}=e.getBoundingClientRect();y={class:y.class,rr_width:`${X}px`,rr_height:`${W}px`}}I&&Gn(R)&&(S=!0),R==="iframe"&&!i(y.src)&&(e.contentDocument||(y.rr_src=y.src),delete y.src);let V;try{customElements.get(R)&&(V=!0)}catch{}const v=X=>{const{width:W,height:k}=X.getBoundingClientRect();y={width:W,height:k,rr_width:`${W}px`,rr_height:`${k}px`,rr_inlined_video:!0,class:y.class,style:y.style},R="canvas";const N=s.createElement("canvas");N.width=e.width,N.height=e.height,y.rr_dataURL=N.toDataURL(h.type,h.quality)};if(R==="video"){const X=e;p&&(X.src===""||X.src.indexOf("blob:")!==-1)&&v(X),o&&X.src!==""&&X.src.indexOf("blob:")===-1&&v(X)}return{type:ye.Element,tagName:R,attributes:y,childNodes:[],isSVG:Gh(e)||void 0,needBlock:S,needMask:Z,rootId:b,isCustom:V}}function ce(e){return e==null?"":e.toLowerCase()}function ko(e){return e===!0||e==="all"?{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaVerification:!0,headMetaAuthorship:e==="all",headMetaDescKeywords:e==="all",headTitleMutations:e==="all"}:e||{}}function xh(e,t){return!!(t.comment&&e.type===ye.Comment||e.type===ye.Element&&(t.script&&(e.tagName==="script"||e.tagName==="link"&&(e.attributes.rel==="preload"&&e.attributes.as==="script"||e.attributes.rel==="modulepreload")||e.tagName==="link"&&e.attributes.rel==="prefetch"&&typeof e.attributes.href=="string"&&Zo(e.attributes.href)==="js")||t.headFavicon&&(e.tagName==="link"&&e.attributes.rel==="shortcut icon"||e.tagName==="meta"&&(ce(e.attributes.name).match(/^msapplication-tile(image|color)$/)||ce(e.attributes.name)==="application-name"||ce(e.attributes.rel)==="icon"||ce(e.attributes.rel)==="apple-touch-icon"||ce(e.attributes.rel)==="shortcut icon"))||e.tagName==="meta"&&(t.headMetaDescKeywords&&ce(e.attributes.name).match(/^description|keywords$/)||t.headMetaSocial&&(ce(e.attributes.property).match(/^(og|twitter|fb):/)||ce(e.attributes.name).match(/^(og|twitter):/)||ce(e.attributes.name)==="pinterest")||t.headMetaRobots&&(ce(e.attributes.name)==="robots"||ce(e.attributes.name)==="googlebot"||ce(e.attributes.name)==="bingbot")||t.headMetaHttpEquiv&&e.attributes["http-equiv"]!==void 0||t.headMetaAuthorship&&(ce(e.attributes.name)==="author"||ce(e.attributes.name)==="generator"||ce(e.attributes.name)==="framework"||ce(e.attributes.name)==="publisher"||ce(e.attributes.name)==="progid"||ce(e.attributes.property).match(/^article:/)||ce(e.attributes.property).match(/^product:/))||t.headMetaVerification&&(ce(e.attributes.name)==="google-site-verification"||ce(e.attributes.name)==="yandex-verification"||ce(e.attributes.name)==="csrf-token"||ce(e.attributes.name)==="p:domain_verify"||ce(e.attributes.name)==="verify-v1"||ce(e.attributes.name)==="verification"||ce(e.attributes.name)==="shopify-checkout-api-token"))))}function Zt(e,t){const{doc:s,mirror:n,blockClass:r,blockSelector:l,maskTextClass:d,maskTextSelector:f,skipChild:m=!1,inlineStylesheet:h=!0,maskInputOptions:p={},maskTextFn:o,maskInputFn:a,slimDOMOptions:i,dataURLOptions:c={},inlineImages:u=!1,inlineVideos:b=!1,recordCanvas:S=!1,onSerialize:Z,onIframeLoad:I,iframeLoadTimeout:R=5e3,onStylesheetLoad:y,stylesheetLoadTimeout:g=5e3,keepIframeSrcFn:V=()=>!1,newlyAddedElement:v=!1,cssCaptured:X=!1,privacySetting:W}=t;let{needsMask:k}=t,{preserveWhiteSpace:N=!0}=t;k||(k=wo(e,d,f,k===void 0));const j=Wh(e,{doc:s,mirror:n,blockClass:r,blockSelector:l,needsMask:k,inlineStylesheet:h,maskInputOptions:p,maskTextClass:d,maskTextFn:o,maskInputFn:a,dataURLOptions:c,inlineImages:u,inlineVideos:b,recordCanvas:S,keepIframeSrcFn:V,newlyAddedElement:v,cssCaptured:X,privacySetting:W});if(!j)return console.warn(e,"not serialized"),null;let G;n.hasNode(e)?G=n.getId(e):xh(j,i)||!N&&j.type===ye.Text&&!j.textContent.replace(/^\s+|\s+$/gm,"").length?G=Ut:G=Xo();const w=Object.assign(j,{id:G});if(n.add(e,w),G===Ut)return null;Z&&Z(e);let T=!m,Y=W,M=W==="strict";if(w.type===ye.Element){if(T=T&&!w.needBlock,M||(M=!!w.needBlock||!!w.needMask),Y=M?"strict":Y,M&&Gn(w.tagName)){const B=e.cloneNode();B.src="",n.add(B,w)}delete w.needBlock,delete w.needMask;const q=Ve.shadowRoot(e);q&&Yt(q)&&(w.isShadowHost=!0)}if((w.type===ye.Document||w.type===ye.Element)&&T){i.headWhitespace&&w.type===ye.Element&&w.tagName==="head"&&(N=!1);const q={doc:s,mirror:n,blockClass:r,blockSelector:l,needsMask:k,maskTextClass:d,maskTextSelector:f,skipChild:m,inlineStylesheet:h,maskInputOptions:p,maskTextFn:o,maskInputFn:a,slimDOMOptions:i,dataURLOptions:c,inlineImages:u,inlineVideos:b,recordCanvas:S,preserveWhiteSpace:N,onSerialize:Z,onIframeLoad:I,iframeLoadTimeout:R,onStylesheetLoad:y,stylesheetLoadTimeout:g,keepIframeSrcFn:V,cssCaptured:!1,privacySetting:Y};if(!(w.type===ye.Element&&w.tagName==="textarea"&&w.attributes.value!==void 0)){w.type===ye.Element&&w.attributes._cssText!==void 0&&typeof w.attributes._cssText=="string"&&(q.cssCaptured=!0);for(const C of Array.from(Ve.childNodes(e))){const oe=Zt(C,q);oe&&w.childNodes.push(oe)}}let B=null;if(mo(e)&&(B=Ve.shadowRoot(e)))for(const C of Array.from(Ve.childNodes(B))){const oe=Zt(C,q);oe&&(Yt(B)&&(oe.isShadow=!0),w.childNodes.push(oe))}}const J=Ve.parentNode(e);return J&&Jt(J)&&Yt(J)&&(w.isShadow=!0),w.type===ye.Element&&w.tagName==="iframe"&&Rh(e,()=>{const q=e.contentDocument;if(q&&I){const B=Zt(q,{doc:q,mirror:n,blockClass:r,blockSelector:l,needsMask:k,maskTextClass:d,maskTextSelector:f,skipChild:!1,inlineStylesheet:h,maskInputOptions:p,maskTextFn:o,maskInputFn:a,slimDOMOptions:i,dataURLOptions:c,inlineImages:u,inlineVideos:b,recordCanvas:S,preserveWhiteSpace:N,onSerialize:Z,onIframeLoad:I,iframeLoadTimeout:R,onStylesheetLoad:y,stylesheetLoadTimeout:g,keepIframeSrcFn:V,privacySetting:W});B&&I(e,B)}},R),w.type===ye.Element&&w.tagName==="link"&&typeof w.attributes.rel=="string"&&(w.attributes.rel==="stylesheet"||w.attributes.rel==="preload"&&typeof w.attributes.href=="string"&&Zo(w.attributes.href)==="css")&&vh(e,()=>{if(y){const q=Zt(e,{doc:s,mirror:n,blockClass:r,blockSelector:l,needsMask:k,maskTextClass:d,maskTextSelector:f,skipChild:!1,inlineStylesheet:h,maskInputOptions:p,maskTextFn:o,maskInputFn:a,slimDOMOptions:i,dataURLOptions:c,inlineImages:u,inlineVideos:b,recordCanvas:S,preserveWhiteSpace:N,onSerialize:Z,onIframeLoad:I,iframeLoadTimeout:R,onStylesheetLoad:y,stylesheetLoadTimeout:g,keepIframeSrcFn:V,privacySetting:W});q&&y(e,q)}},g),w}function Th(e,t){const{mirror:s=new yo,blockClass:n="highlight-block",blockSelector:r=null,maskTextClass:l="highlight-mask",maskTextSelector:d=null,inlineStylesheet:f=!0,inlineImages:m=!1,inlineVideos:h=!1,recordCanvas:p=!1,maskAllInputs:o=!1,maskTextFn:a,maskInputFn:i,slimDOM:c=!1,dataURLOptions:u,preserveWhiteSpace:b,onSerialize:S,onIframeLoad:Z,iframeLoadTimeout:I,onStylesheetLoad:R,stylesheetLoadTimeout:y,keepIframeSrcFn:g=()=>!1,privacySetting:V="default"}=t||{},v=o===!0?{color:!0,date:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0,textarea:!0,select:!0,password:!0}:o===!1?{password:!0}:o,X=ko(c);return Zt(e,{doc:e,mirror:s,blockClass:n,blockSelector:r,maskTextClass:l,maskTextSelector:d,skipChild:!1,inlineStylesheet:f,maskInputOptions:v,maskTextFn:a,maskInputFn:i,slimDOMOptions:X,dataURLOptions:u,inlineImages:m,inlineVideos:h,recordCanvas:p,preserveWhiteSpace:b,onSerialize:S,onIframeLoad:Z,iframeLoadTimeout:I,onStylesheetLoad:R,stylesheetLoadTimeout:y,keepIframeSrcFn:g,newlyAddedElement:!1,privacySetting:V})}function Lh(e){if(Object.prototype.hasOwnProperty.call(e,"__esModule"))return e;var t=e.default;if(typeof t=="function"){var s=function n(){return this instanceof n?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};s.prototype=t.prototype}else s={};return Object.defineProperty(s,"__esModule",{value:!0}),Object.keys(e).forEach(function(n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(s,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}),s}var Vs={exports:{}},Co;function Nh(){if(Co)return Vs.exports;Co=1;var e=String,t=function(){return{isColorSupported:!1,reset:e,bold:e,dim:e,italic:e,underline:e,inverse:e,hidden:e,strikethrough:e,black:e,red:e,green:e,yellow:e,blue:e,magenta:e,cyan:e,white:e,gray:e,bgBlack:e,bgRed:e,bgGreen:e,bgYellow:e,bgBlue:e,bgMagenta:e,bgCyan:e,bgWhite:e,blackBright:e,redBright:e,greenBright:e,yellowBright:e,blueBright:e,magentaBright:e,cyanBright:e,whiteBright:e,bgBlackBright:e,bgRedBright:e,bgGreenBright:e,bgYellowBright:e,bgBlueBright:e,bgMagentaBright:e,bgCyanBright:e,bgWhiteBright:e}};return Vs.exports=t(),Vs.exports.createColors=t,Vs.exports}const Jh={},Yh=Object.freeze(Object.defineProperty({__proto__:null,default:Jh},Symbol.toStringTag,{value:"Module"})),Ke=Lh(Yh);var vn,xo;function Wn(){if(xo)return vn;xo=1;let e=Nh(),t=Ke;class s extends Error{constructor(r,l,d,f,m,h){super(r),this.name="CssSyntaxError",this.reason=r,m&&(this.file=m),f&&(this.source=f),h&&(this.plugin=h),typeof l<"u"&&typeof d<"u"&&(typeof l=="number"?(this.line=l,this.column=d):(this.line=l.line,this.column=l.column,this.endLine=d.line,this.endColumn=d.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,s)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(r){if(!this.source)return"";let l=this.source;r==null&&(r=e.isColorSupported);let d=i=>i,f=i=>i,m=i=>i;if(r){let{bold:i,gray:c,red:u}=e.createColors(!0);f=b=>i(u(b)),d=b=>c(b),t&&(m=b=>t(b))}let h=l.split(/\r?\n/),p=Math.max(this.line-3,0),o=Math.min(this.line+2,h.length),a=String(o).length;return h.slice(p,o).map((i,c)=>{let u=p+1+c,b=" "+(" "+u).slice(-a)+" | ";if(u===this.line){if(i.length>160){let Z=20,I=Math.max(0,this.column-Z),R=Math.max(this.column+Z,this.endColumn+Z),y=i.slice(I,R),g=d(b.replace(/\d/g," "))+i.slice(0,Math.min(this.column-1,Z-1)).replace(/[^\t]/g," ");return f(">")+d(b)+m(y)+`
288
+ */(function(e){(function(){var t;function s(n,r){var l=this instanceof s?this:t;if(l.reset(r),typeof n=="string"&&n.length>0&&l.hash(n),l!==this)return l}s.prototype.hash=function(n){var r,l,d,f,m;switch(m=n.length,this.len+=m,l=this.k1,d=0,this.rem){case 0:l^=m>d?n.charCodeAt(d++)&65535:0;case 1:l^=m>d?(n.charCodeAt(d++)&65535)<<8:0;case 2:l^=m>d?(n.charCodeAt(d++)&65535)<<16:0;case 3:l^=m>d?(n.charCodeAt(d)&255)<<24:0,l^=m>d?(n.charCodeAt(d++)&65280)>>8:0}if(this.rem=m+this.rem&3,m-=this.rem,m>0){for(r=this.h1;l=l*11601+(l&65535)*3432906752&4294967295,l=l<<15|l>>>17,l=l*13715+(l&65535)*461832192&4294967295,r^=l,r=r<<13|r>>>19,r=r*5+3864292196&4294967295,!(d>=m);)l=n.charCodeAt(d++)&65535^(n.charCodeAt(d++)&65535)<<8^(n.charCodeAt(d++)&65535)<<16,f=n.charCodeAt(d++),l^=(f&255)<<24^(f&65280)>>8;switch(l=0,this.rem){case 3:l^=(n.charCodeAt(d+2)&65535)<<16;case 2:l^=(n.charCodeAt(d+1)&65535)<<8;case 1:l^=n.charCodeAt(d)&65535}this.h1=r}return this.k1=l,this},s.prototype.result=function(){var n,r;return n=this.k1,r=this.h1,n>0&&(n=n*11601+(n&65535)*3432906752&4294967295,n=n<<15|n>>>17,n=n*13715+(n&65535)*461832192&4294967295,r^=n),r^=this.len,r^=r>>>16,r=r*51819+(r&65535)*2246770688&4294967295,r^=r>>>13,r=r*44597+(r&65535)*3266445312&4294967295,r^=r>>>16,r>>>0},s.prototype.reset=function(n){return this.h1=typeof n=="number"?n:0,this.rem=this.k1=this.len=0,this},t=new s,e.exports=s})()})($r);var yd=$r.exports;const gd=on(yd),gn=28,yt="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",Zd=2246822507,Nt=e=>{var t,s="";if(e){const n=gd(e).result();for(let r=0;r<gn;r++){const l=((n^r*Zd)>>>0)%yt.length;s+=yt.charAt(l)}}else{const n=typeof window<"u"&&((t=window.crypto)==null?void 0:t.getRandomValues),r=new Uint32Array(gn);n&&window.crypto.getRandomValues(r);for(let l=0;l<gn;l++)n?s+=yt.charAt(r[l]%yt.length):s+=yt.charAt(Math.floor(Math.random()*yt.length))}return s};let Sd=class{constructor(t){wt(this,"sessionSecureID");try{t!=null&&t.storageMode&&Ku(t?.storageMode),Kr(!!(t!=null&&t.sessionCookie)),t?.sessionCookieDomain!==void 0&&Eu(t.sessionCookieDomain),t!=null&&t.sessionCookie?Qu():Kr(!1)}catch(s){Ie("Error initializing @launchdarkly observability plugin","error",s)}}configureSession(t,s){try{const n=Pu();Bu(n);let r=hs(n);r!=null&&r.sessionSecureID?this.sessionSecureID=r.sessionSecureID:(s!=null&&s.sessionKey?this.sessionSecureID=Nt(`${t}-${s.sessionKey}`):this.sessionSecureID=Nt(),Lt(this.sessionSecureID),rt({sessionSecureID:this.sessionSecureID,sessionKey:s?.sessionKey,projectID:0,sessionStartTime:Date.now(),lastPushTime:Date.now()}))}catch(n){Ie("Error configuring session in @launchdarkly observability plugin","error",n)}}};var Id=Object.defineProperty,Xd=(e,t,s)=>t in e?Id(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,Vd=(e,t,s)=>Xd(e,t+"",s),qr=(e,t,s)=>new Promise((n,r)=>{var l=m=>{try{f(s.next(m))}catch(h){r(h)}},d=m=>{try{f(s.throw(m))}catch(h){r(h)}},f=m=>m.done?n(m.value):Promise.resolve(m.value).then(l,d);f((s=s.apply(e,t)).next())});let eo=class extends cr{constructor(){super(...arguments),Vd(this,"_deferredStartOptions")}getSession(){return this._isLoaded?this._callSdk("getSession",[]):null}_startSdk(){return qr(this,null,function*(){const t=this._deferredStartOptions;this._deferredStartOptions=void 0,yield this._sdk.start(t)})}start(t){return qr(this,null,function*(){return this._deferredStartOptions=t,this._start()})}stop(){this._stop(()=>this._sdk.stop())}addSessionProperties(t){return this._bufferCall("addSessionProperties",[t])}getRecordingState(){return this._isLoaded?this._callSdk("getRecordingState",[]):"NotRecording"}snapshot(t){return this._isLoaded?this._callSdk("snapshot",[t]):Promise.resolve(void 0)}register(t,s){return this._bufferCall("register",[t,s])}};Ye.LDRecord=void 0,typeof globalThis<"u"?globalThis.LDRecord?Ye.LDRecord=globalThis.LDRecord:(Ye.LDRecord=new eo,globalThis.LDRecord=Ye.LDRecord):Ye.LDRecord=new eo;var Gd=Object.defineProperty,Rd=Object.defineProperties,vd=Object.getOwnPropertyDescriptors,ps=Object.getOwnPropertySymbols,to=Object.prototype.hasOwnProperty,so=Object.prototype.propertyIsEnumerable,no=e=>{throw TypeError(e)},Zn=(e,t,s)=>t in e?Gd(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,H=(e,t)=>{for(var s in t||(t={}))to.call(t,s)&&Zn(e,s,t[s]);if(ps)for(var s of ps(t))so.call(t,s)&&Zn(e,s,t[s]);return e},Xe=(e,t)=>Rd(e,vd(t)),ms=(e,t)=>{var s={};for(var n in e)to.call(e,n)&&t.indexOf(n)<0&&(s[n]=e[n]);if(e!=null&&ps)for(var n of ps(e))t.indexOf(n)<0&&so.call(e,n)&&(s[n]=e[n]);return s},Q=(e,t,s)=>Zn(e,typeof t!="symbol"?t+"":t,s),io=(e,t,s)=>t.has(e)||no("Cannot "+s),Wd=(e,t,s)=>(io(e,t,"read from private field"),s?s.call(e):t.get(e)),wd=(e,t,s)=>t.has(e)?no("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),kd=(e,t,s,n)=>(io(e,t,"write to private field"),t.set(e,s),s),We=(e,t,s)=>new Promise((n,r)=>{var l=m=>{try{f(s.next(m))}catch(h){r(h)}},d=m=>{try{f(s.throw(m))}catch(h){r(h)}},f=m=>m.done?n(m.value):Promise.resolve(m.value).then(l,d);f((s=s.apply(e,t)).next())});const Cd={key:"_sid"},xd="rrweb/sequential-id@1",Td=e=>{const t=Cd;let s=0;return{name:xd,eventProcessor(n){return Object.assign(n,{[t.key]:++s}),n},options:t}};var ro=(e=>(e[e.DomContentLoaded=0]="DomContentLoaded",e[e.Load=1]="Load",e[e.FullSnapshot=2]="FullSnapshot",e[e.IncrementalSnapshot=3]="IncrementalSnapshot",e[e.Meta=4]="Meta",e[e.Custom=5]="Custom",e[e.Plugin=6]="Plugin",e[e.Asset=7]="Asset",e))(ro||{}),Ld=Object.defineProperty,Nd=(e,t,s)=>t in e?Ld(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,L=(e,t,s)=>Nd(e,typeof t!="symbol"?t+"":t,s),oo,Jd=Object.defineProperty,Yd=(e,t,s)=>t in e?Jd(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,lo=(e,t,s)=>Yd(e,typeof t!="symbol"?t+"":t,s),ye=(e=>(e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment",e))(ye||{});const fs=new Map,ao=new WeakSet;function co(e){return e!==null&&typeof e=="object"&&"complete"in e&&"naturalWidth"in e&&"naturalHeight"in e&&"src"in e&&"onload"in e}function Ud(e){if(ao.has(e))return;ao.add(e);const t=e.drawImage.bind(e);e.drawImage=function(s,...n){const r=fs.get(e);r&&(r.cancelled=!0);const l=()=>{n.length===2&&co(s)&&n.push(s.naturalWidth||s.width,s.naturalHeight||s.height),t(s,...n)};if(co(s)&&!s.complete){const d={cancelled:!1};fs.set(e,d);const f=()=>{d.cancelled||(fs.delete(e),l())},m=()=>{if(!d.cancelled){fs.delete(e);try{l()}catch{}}};s.onload=f,s.onerror=m}else l()}}const uo={Node:["childNodes","parentNode","parentElement","textContent","ownerDocument"],ShadowRoot:["host","styleSheets"],Element:["shadowRoot","querySelector","querySelectorAll"],MutationObserver:[]},ho={Node:["contains","getRootNode"],ShadowRoot:["getSelection"],Element:[],MutationObserver:["constructor"]},bs={},po={},Fd=()=>!!globalThis.Zone;function Sn(e){if(bs[e])return bs[e];const t=globalThis[e],s=t.prototype,n=e in uo?uo[e]:void 0,r=!!(n&&n.every(f=>{var m,h;return!!((h=(m=Object.getOwnPropertyDescriptor(s,f))==null?void 0:m.get)!=null&&h.toString().includes("[native code]"))})),l=e in ho?ho[e]:void 0,d=!!(l&&l.every(f=>{var m;return typeof s[f]=="function"&&((m=s[f])==null?void 0:m.toString().includes("[native code]"))}));if(r&&d&&!Fd())return bs[e]=t.prototype,t.prototype;try{const f=document.createElement("iframe");f.style.display="none",document.body.appendChild(f);const m=f.contentWindow;if(!m)return t.prototype;const h=m[e].prototype;if(!h)return f.remove(),s;const p=navigator.userAgent;return p.includes("Safari")&&!p.includes("Chrome")?(f.classList.add("rr-block"),f.setAttribute("__rrwebUntaintedMutationObserver",""),po[e]=()=>f.remove()):f.remove(),bs[e]=h}catch{return s}}const In={};function De(e,t,s){var n;const r=`${e}.${String(s)}`;if(In[r])return In[r].call(t);const l=Sn(e),d=(n=Object.getOwnPropertyDescriptor(l,s))==null?void 0:n.get;return d?(In[r]=d,d.call(t)):t[s]}const Xn={};function mo(e,t,s){const n=`${e}.${String(s)}`;if(Xn[n])return Xn[n].bind(t);const r=Sn(e)[s];return typeof r!="function"?t[s]:(Xn[n]=r,r.bind(t))}function Md(e){return De("Node",e,"ownerDocument")}function Od(e){return De("Node",e,"childNodes")}function Kd(e){return De("Node",e,"parentNode")}function Ed(e){return De("Node",e,"parentElement")}function zd(e){return De("Node",e,"textContent")}function Pd(e,t){return mo("Node",e,"contains")(t)}function Hd(e){return mo("Node",e,"getRootNode")()}function Dd(e){return!e||!("host"in e)?null:De("ShadowRoot",e,"host")}function Bd(e){return e.styleSheets}function Qd(e){return!e||!("shadowRoot"in e)?null:De("Element",e,"shadowRoot")}function jd(e,t){return De("Element",e,"querySelector")(t)}function Ad(e,t){return De("Element",e,"querySelectorAll")(t)}function _d(){var e;return[Sn("MutationObserver").constructor,(e=po.MutationObserver)!=null?e:()=>{}]}let fo=Date.now;/[1-9][0-9]{12}/.test(Date.now().toString())||(fo=()=>new Date().getTime());function $d(e,t,s){try{if(!(t in e))return()=>{};const n=e[t],r=s(n);return typeof r=="function"&&(r.prototype=r.prototype||{},Object.defineProperties(r,{__rrweb_original__:{enumerable:!1,value:n}})),e[t]=r,()=>{e[t]=n}}catch{return()=>{}}}const Ve={ownerDocument:Md,childNodes:Od,parentNode:Kd,parentElement:Ed,textContent:zd,contains:Pd,getRootNode:Hd,host:Dd,styleSheets:Bd,shadowRoot:Qd,querySelector:jd,querySelectorAll:Ad,nowTimestamp:fo,mutationObserverCtor:_d,patch:$d,wrapCanvasContextDrawImage:Ud};function bo(e){return e.nodeType===e.ELEMENT_NODE}function Jt(e){const t=e&&"host"in e&&"mode"in e&&Ve.host(e)||null;return!!(t&&"shadowRoot"in t&&Ve.shadowRoot(t)===e)}function Yt(e){return Object.prototype.toString.call(e)==="[object ShadowRoot]"}function qd(e){return e.includes(" background-clip: text;")&&!e.includes(" -webkit-background-clip: text;")&&(e=e.replace(/\sbackground-clip:\s*text;/g," -webkit-background-clip: text; background-clip: text;")),e}function eh(e){const{cssText:t}=e;if(t.split('"').length<3)return t;const s=["@import",`url(${JSON.stringify(e.href)})`];return e.layerName===""?s.push("layer"):e.layerName&&s.push(`layer(${e.layerName})`),e.supportsText&&s.push(`supports(${e.supportsText})`),e.media.length&&s.push(e.media.mediaText),s.join(" ")+";"}function Vn(e){try{const t=e.rules||e.cssRules;if(!t)return null;let s=e.href;!s&&e.ownerNode&&(s=e.ownerNode.baseURI);const n=Array.from(t,r=>yo(r,s)).join("");return qd(n)}catch{return null}}function yo(e,t){if(go(e)){let s;try{s=Vn(e.styleSheet)||eh(e)}catch{s=e.cssText}return e.styleSheet.href?Zs(s,e.styleSheet.href):s}else{let s=e.cssText;return sh(e)&&e.selectorText.includes(":")&&(s=th(s)),t?Zs(s,t):s}}function th(e){const t=/(\[(?:[\w-]+)[^\\])(:(?:[\w-]+)\])/gm;return e.replace(t,"$1\\$2")}function go(e){return"styleSheet"in e}function sh(e){return"selectorText"in e}class Zo{constructor(){lo(this,"idNodeMap",new Map),lo(this,"nodeMetaMap",new WeakMap)}getId(t){var s;if(!t)return-1;const n=(s=this.getMeta(t))==null?void 0:s.id;return n??-1}getNode(t){return this.idNodeMap.get(t)||null}getIds(){return Array.from(this.idNodeMap.keys())}getMeta(t){return this.nodeMetaMap.get(t)||null}removeNodeFromMap(t){const s=this.getId(t);this.idNodeMap.delete(s),t.childNodes&&t.childNodes.forEach(n=>this.removeNodeFromMap(n))}has(t){return this.idNodeMap.has(t)}hasNode(t){return this.nodeMetaMap.has(t)}add(t,s){const n=s.id;this.idNodeMap.set(n,t),this.nodeMetaMap.set(t,s)}replace(t,s){const n=this.getNode(t);if(n){const r=this.nodeMetaMap.get(n);r&&this.nodeMetaMap.set(s,r)}this.idNodeMap.set(t,s)}reset(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap}}function nh(){return new Zo}function ys({element:e,maskInputOptions:t,tagName:s,type:n,value:r,overwriteRecord:l,maskInputFn:d}){let f=r||"";return Vo({maskInputOptions:t,tagName:s,type:n,overwriteRecord:l})&&(d?f=d(f,e):f="*".repeat(f.length)),f}function ot(e){return e.toLowerCase()}const So="__rrweb_original__";function ih(e){const t=e.getContext("2d");if(!t)return!0;const s=50;for(let n=0;n<e.width;n+=s)for(let r=0;r<e.height;r+=s){const l=t.getImageData,d=So in l?l[So]:l;if(new Uint32Array(d.call(t,n,r,Math.min(s,e.width-n),Math.min(s,e.height-r)).data.buffer).some(f=>f!==0))return!1}return!0}function gs(e){const t=e.type;return e.hasAttribute("data-rr-is-password")?"password":t?ot(t):null}function Io(e,t){var s;let n;try{n=new URL(e,window.location.href)}catch{return null}const r=/\.([0-9a-z]+)(?:$)/i,l=n.pathname.match(r);return(s=l?.[1])!=null?s:null}function rh(e){let t="";return e.indexOf("//")>-1?t=e.split("/").slice(0,3).join("/"):t=e.split("/")[0],t=t.split("?")[0],t}const oh=/url\((?:(')([^']*)'|(")(.*?)"|([^)]*))\)/gm,lh=/^(?:[a-z+]+:)?\/\//i,ah=/^www\..*/i,ch=/^(data:)([^,]*),(.*)/i;function Zs(e,t){return(e||"").replace(oh,(s,n,r,l,d,f)=>{const m=r||d||f,h=n||l||"";if(!m)return s;if(lh.test(m)||ah.test(m))return`url(${h}${m}${h})`;if(ch.test(m))return`url(${h}${m}${h})`;if(m[0]==="/")return`url(${h}${rh(t)+m}${h})`;const p=m.split("#")[0],o=m.substring(p.length),a=t.split("#")[0].split("/"),i=p.split("/");a.pop();for(const c of i)c!=="."&&(c===".."?a.pop():a.push(c));return`url(${h}${a.join("/")}${o}${h})`})}function Ss(e,t=!1){return t?e.replace(/(\/\*[^*]*\*\/)|[\s;]/g,""):e.replace(/(\/\*[^*]*\*\/)|[\s;]/g,"").replace(/0px/g,"0")}function uh(e,t,s=!1){const n=Array.from(t.childNodes),r=[];let l=0;if(n.length>1&&e&&typeof e=="string"){let d=Ss(e,s);const f=d.length/e.length;for(let m=1;m<n.length;m++)if(n[m].textContent&&typeof n[m].textContent=="string"){const h=Ss(n[m].textContent,s),p=100;let o=3;for(;o<h.length&&(h[o].match(/[a-zA-Z0-9]/)||h.indexOf(h.substring(0,o),1)!==-1);o++);for(;o<h.length;o++){let a=h.substring(0,o),i=d.split(a),c=-1;if(i.length===2)c=i[0].length;else if(i.length>2&&i[0]===""&&n[m-1].textContent!=="")c=d.indexOf(a,1);else if(i.length===1){if(a=a.substring(0,a.length-1),i=d.split(a),i.length<=1)return r.push(e),r;o=p+1}else o===h.length-1&&(c=d.indexOf(a));if(i.length>=2&&o>p){const u=n[m-1].textContent;if(u&&typeof u=="string"){const b=Ss(u).length;c=d.indexOf(a,b)}c===-1&&(c=i[0].length)}if(c!==-1){let u=Math.floor(c/f);for(;u>0&&u<e.length;){if(l+=1,l>50*n.length)return r.push(e),r;const b=Ss(e.substring(0,u),s);if(b.length===c){r.push(e.substring(0,u)),e=e.substring(u),d=d.substring(c);break}else b.length<c?u+=Math.max(1,Math.floor((c-b.length)/f)):u-=Math.max(1,Math.floor((b.length-c)*f))}break}}}}return r.push(e),r}function dh(e,t){return uh(e,t).join("/* rr_split */")}function Gn(e){return e=e.replace(/[^ -~]+/g,""),e=e?.split(" ").map(t=>t?Math.random().toString(20).substring(2,t.length+2):"").join(" ")||"",e}function Rn(e){return e==="img"||e==="video"||e==="audio"||e==="source"}const hh=new RegExp(/[a-zA-Z0-9.!#$%&'*+=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*/),ph=new RegExp(/[0-9]{9,16}/),mh=new RegExp(/[0-9]{3}-?[0-9]{2}-?[0-9]{4}/),fh=new RegExp(/[+]?[(]?[0-9]{3}[)]?[-\s.]?[0-9]{3}[-\s.]?[0-9]{4,6}/),bh=new RegExp(/[0-9]{4}-?[0-9]{4}-?[0-9]{4}-?[0-9]{4}/),yh=new RegExp(/[0-9]{1,5}.?[0-9]{0,3}\s[a-zA-Z]{2,30}\s[a-zA-Z]{2,15}/),gh=new RegExp(/(?:[0-9]{1,3}.){3}[0-9]{1,3}/),Zh=[hh,ph,mh,fh,bh,yh,gh];function Xo(e){return e?Zh.some(t=>t.test(e)):!1}const Vo=({maskInputOptions:e,tagName:t,type:s,overwriteRecord:n})=>{const r=s&&s.toLowerCase();return n!=="true"&&(!!e[t.toLowerCase()]||!!(r&&e[r]))};let Sh=1;const Ih=new RegExp("[^a-z0-9-_:]"),Ut=-2;function Go(){return Sh++}function Xh(e){if(e instanceof HTMLFormElement)return"form";const t=ot(e.tagName);return Ih.test(t)?"div":t}let gt,Ro;const Vh=/^[^ \t\n\r\u000c]+/,Gh=/^[, \t\n\r\u000c]+/;function Rh(e,t){if(t.trim()==="")return t;let s=0;function n(l){let d;const f=l.exec(t.substring(s));return f?(d=f[0],s+=d.length,d):""}const r=[];for(;n(Gh),!(s>=t.length);){let l=n(Vh);if(l.slice(-1)===",")l=Is(e,l.substring(0,l.length-1)),r.push(l);else{let d="";l=Is(e,l);let f=!1;for(;;){const m=t.charAt(s);if(m===""){r.push((l+d).trim());break}else if(f)m===")"&&(f=!1);else if(m===","){s+=1,r.push((l+d).trim());break}else m==="("&&(f=!0);d+=m,s+=1}}}return r.join(", ")}const vo=new WeakMap;function Is(e,t){return!t||t.trim()===""?t:vn(e,t)}function vh(e){return!!(e.tagName==="svg"||e.ownerSVGElement)}function vn(e,t){let s=vo.get(e);if(s||(s=e.createElement("a"),vo.set(e,s)),!t)t="";else if(t.startsWith("blob:")||t.startsWith("data:"))return t;return s.setAttribute("href",t),s.href}function Wo(e,t,s,n){return n&&(s==="src"||s==="href"&&!(t==="use"&&n[0]==="#")||s==="xlink:href"&&n[0]!=="#"||s==="background"&&["table","td","th"].includes(t)?Is(e,n):s==="srcset"?Rh(e,n):s==="style"?Zs(n,vn(e)):t==="object"&&s==="data"?Is(e,n):n)}function wo(e,t,s){return["video","audio"].includes(e)&&t==="autoplay"}function ko(e,t,s){try{if(typeof t=="string"){if(e.classList.contains(t))return!0}else for(let n=e.classList.length;n--;){const r=e.classList[n];if(t.test(r))return!0}if(s)return e.matches(s)}catch{}return!1}function Xs(e,t,s){if(!e)return!1;if(e.nodeType!==e.ELEMENT_NODE)return s?Xs(Ve.parentNode(e),t,s):!1;for(let n=e.classList.length;n--;){const r=e.classList[n];if(t.test(r))return!0}return s?Xs(Ve.parentNode(e),t,s):!1}function Co(e,t,s,n){let r;if(bo(e)){if(r=e,!Ve.childNodes(r).length)return!1}else{if(Ve.parentElement(e)===null)return!1;r=Ve.parentElement(e)}try{if(typeof t=="string"){if(n){if(r.closest(`.${t}`))return!0}else if(r.classList.contains(t))return!0}else if(Xs(r,t,n))return!0;if(s){if(n){if(r.closest(s))return!0}else if(r.matches(s))return!0}}catch{}return!1}function Wh(e,t,s){const n=e.contentWindow;if(!n)return;let r=!1,l;try{l=n.document.readyState}catch{return}if(l!=="complete"){const f=setTimeout(()=>{r||(t(),r=!0)},s);e.addEventListener("load",()=>{clearTimeout(f),r=!0,t()});return}const d="about:blank";if(n.location.href!==d||e.src===d||e.src==="")return setTimeout(t,0),e.addEventListener("load",t);e.addEventListener("load",t)}function wh(e,t,s){let n=!1,r;try{r=e.sheet}catch{return}if(r)return;const l=setTimeout(()=>{n||(t(),n=!0)},s);e.addEventListener("load",()=>{clearTimeout(l),n=!0,t()})}function kh(e,t){const{doc:s,mirror:n,blockClass:r,blockSelector:l,needsMask:d,inlineStylesheet:f,maskInputOptions:m={},maskTextClass:h,maskTextFn:p,maskInputFn:o,dataURLOptions:a={},inlineImages:i,inlineVideos:c,recordCanvas:u,keepIframeSrcFn:b,newlyAddedElement:S=!1,cssCaptured:Z=!1,privacySetting:I}=t,R=Ch(s,n);switch(e.nodeType){case e.DOCUMENT_NODE:return e.compatMode!=="CSS1Compat"?{type:ye.Document,childNodes:[],compatMode:e.compatMode}:{type:ye.Document,childNodes:[]};case e.DOCUMENT_TYPE_NODE:return{type:ye.DocumentType,name:e.name,publicId:e.publicId,systemId:e.systemId,rootId:R};case e.ELEMENT_NODE:return Th(e,{doc:s,blockClass:r,blockSelector:l,inlineStylesheet:f,maskInputOptions:m,maskInputFn:o,maskTextClass:h,dataURLOptions:a,inlineImages:i,inlineVideos:c,recordCanvas:u,keepIframeSrcFn:b,newlyAddedElement:S,privacySetting:I,rootId:R});case e.TEXT_NODE:return xh(e,{doc:s,needsMask:d,maskTextFn:p,privacySetting:I,rootId:R,cssCaptured:Z});case e.CDATA_SECTION_NODE:return{type:ye.CDATA,textContent:"",rootId:R};case e.COMMENT_NODE:return{type:ye.Comment,textContent:Ve.textContent(e)||"",rootId:R};default:return!1}}function Ch(e,t){if(!t.hasNode(e))return;const s=t.getId(e);return s===1?void 0:s}function xh(e,t){var s;const{needsMask:n,maskTextFn:r,privacySetting:l,rootId:d,cssCaptured:f}=t,m=Ve.parentNode(e),h=m&&m.tagName;let p="";const o=h==="STYLE"?!0:void 0,a=h==="SCRIPT"?!0:void 0;a?p="SCRIPT_PLACEHOLDER":f||(p=Ve.textContent(e),o&&p&&(p=Zs(p,vn(t.doc)))),!o&&!a&&p&&n&&(p=r?r(p,Ve.parentElement(e)):p.replace(/[\S]/g,"*"));const i=l==="strict",c=(s=e.parentElement)==null?void 0:s.getAttribute("data-hl-record"),u=l==="default"&&Xo(p);return(i||u)&&!c&&h&&!new Set(["HEAD","TITLE","STYLE","SCRIPT","HTML","BODY","NOSCRIPT"]).has(h)&&p&&(p=Gn(p)),{type:ye.Text,textContent:p||"",rootId:d}}function Th(e,t){const{doc:s,blockClass:n,blockSelector:r,inlineStylesheet:l,maskInputOptions:d={},maskInputFn:f,maskTextClass:m,dataURLOptions:h={},inlineImages:p,inlineVideos:o,recordCanvas:a,keepIframeSrcFn:i,newlyAddedElement:c=!1,privacySetting:u,rootId:b}=t;let S=ko(e,n,r);const Z=ko(e,m,null),I=u==="strict";let R=Xh(e),y={};const g=e.attributes.length;for(let X=0;X<g;X++){const W=e.attributes[X];wo(R,W.name)||(y[W.name]=Wo(s,R,ot(W.name),W.value))}if(R==="link"&&l){const X=Array.from(s.styleSheets).find(k=>k.href===e.href);let W=null;X&&(W=Vn(X)),W&&(delete y.rel,delete y.href,y._cssText=W)}if(R==="style"&&e.sheet){let X=Vn(e.sheet);X&&(e.childNodes.length>1&&(X=dh(X,e)),y._cssText=X)}if(["input","textarea","select"].includes(R)){const X=e.value,W=e.checked;y.type!=="radio"&&y.type!=="checkbox"&&y.type!=="submit"&&y.type!=="button"&&X?y.value=ys({element:e,type:gs(e),tagName:R,value:X,overwriteRecord:e.getAttribute("data-hl-record"),maskInputOptions:d,maskInputFn:f}):W&&(y.checked=W)}if(R==="option"&&(e.selected&&!d.select?y.selected=!0:delete y.selected),R==="dialog"&&e.open&&(y.rr_open_mode=e.matches("dialog:modal")?"modal":"non-modal"),R==="canvas"&&a){if(e.__context==="2d")ih(e);else if(!("__context"in e)){const X=e.toDataURL(h.type,h.quality),W=s.createElement("canvas");W.width=e.width,W.height=e.height;const k=W.toDataURL(h.type,h.quality);X!==k&&(y.rr_dataURL=X)}}if(R==="img"&&p&&!S&&!Z&&!I){gt||(gt=s.createElement("canvas"),Ro=gt.getContext("2d"));const X=e,W=X.currentSrc||X.getAttribute("src")||"<unknown-src>",k=X.crossOrigin,N=()=>{X.removeEventListener("load",N);try{gt.width=X.naturalWidth,gt.height=X.naturalHeight,Ro.drawImage(X,0,0),y.rr_dataURL=gt.toDataURL(h.type,h.quality)}catch(j){if(X.crossOrigin!=="anonymous"){X.crossOrigin="anonymous",X.complete&&X.naturalWidth!==0?N():X.addEventListener("load",N);return}else console.warn(`Cannot inline img src=${W}! Error: ${j}`)}X.crossOrigin==="anonymous"&&(k?y.crossOrigin=k:X.removeAttribute("crossorigin"))};X.complete&&X.naturalWidth!==0?N():X.addEventListener("load",N)}if(["audio","video"].includes(R)){const X=y;X.rr_mediaState=e.paused?"paused":"played",X.rr_mediaCurrentTime=e.currentTime,X.rr_mediaPlaybackRate=e.playbackRate,X.rr_mediaMuted=e.muted,X.rr_mediaLoop=e.loop,X.rr_mediaVolume=e.volume}if(c||(e.scrollLeft&&(y.rr_scrollLeft=e.scrollLeft),e.scrollTop&&(y.rr_scrollTop=e.scrollTop)),S||Z||I&&Rn(R)){const{width:X,height:W}=e.getBoundingClientRect();y={class:y.class,rr_width:`${X}px`,rr_height:`${W}px`}}I&&Rn(R)&&(S=!0),R==="iframe"&&!i(y.src)&&(e.contentDocument||(y.rr_src=y.src),delete y.src);let V;try{customElements.get(R)&&(V=!0)}catch{}const v=X=>{const{width:W,height:k}=X.getBoundingClientRect();y={width:W,height:k,rr_width:`${W}px`,rr_height:`${k}px`,rr_inlined_video:!0,class:y.class,style:y.style},R="canvas";const N=s.createElement("canvas");N.width=e.width,N.height=e.height,y.rr_dataURL=N.toDataURL(h.type,h.quality)};if(R==="video"){const X=e;p&&(X.src===""||X.src.indexOf("blob:")!==-1)&&v(X),o&&X.src!==""&&X.src.indexOf("blob:")===-1&&v(X)}return{type:ye.Element,tagName:R,attributes:y,childNodes:[],isSVG:vh(e)||void 0,needBlock:S,needMask:Z,rootId:b,isCustom:V}}function ce(e){return e==null?"":e.toLowerCase()}function xo(e){return e===!0||e==="all"?{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaVerification:!0,headMetaAuthorship:e==="all",headMetaDescKeywords:e==="all",headTitleMutations:e==="all"}:e||{}}function Lh(e,t){return!!(t.comment&&e.type===ye.Comment||e.type===ye.Element&&(t.script&&(e.tagName==="script"||e.tagName==="link"&&(e.attributes.rel==="preload"&&e.attributes.as==="script"||e.attributes.rel==="modulepreload")||e.tagName==="link"&&e.attributes.rel==="prefetch"&&typeof e.attributes.href=="string"&&Io(e.attributes.href)==="js")||t.headFavicon&&(e.tagName==="link"&&e.attributes.rel==="shortcut icon"||e.tagName==="meta"&&(ce(e.attributes.name).match(/^msapplication-tile(image|color)$/)||ce(e.attributes.name)==="application-name"||ce(e.attributes.rel)==="icon"||ce(e.attributes.rel)==="apple-touch-icon"||ce(e.attributes.rel)==="shortcut icon"))||e.tagName==="meta"&&(t.headMetaDescKeywords&&ce(e.attributes.name).match(/^description|keywords$/)||t.headMetaSocial&&(ce(e.attributes.property).match(/^(og|twitter|fb):/)||ce(e.attributes.name).match(/^(og|twitter):/)||ce(e.attributes.name)==="pinterest")||t.headMetaRobots&&(ce(e.attributes.name)==="robots"||ce(e.attributes.name)==="googlebot"||ce(e.attributes.name)==="bingbot")||t.headMetaHttpEquiv&&e.attributes["http-equiv"]!==void 0||t.headMetaAuthorship&&(ce(e.attributes.name)==="author"||ce(e.attributes.name)==="generator"||ce(e.attributes.name)==="framework"||ce(e.attributes.name)==="publisher"||ce(e.attributes.name)==="progid"||ce(e.attributes.property).match(/^article:/)||ce(e.attributes.property).match(/^product:/))||t.headMetaVerification&&(ce(e.attributes.name)==="google-site-verification"||ce(e.attributes.name)==="yandex-verification"||ce(e.attributes.name)==="csrf-token"||ce(e.attributes.name)==="p:domain_verify"||ce(e.attributes.name)==="verify-v1"||ce(e.attributes.name)==="verification"||ce(e.attributes.name)==="shopify-checkout-api-token"))))}function Zt(e,t){const{doc:s,mirror:n,blockClass:r,blockSelector:l,maskTextClass:d,maskTextSelector:f,skipChild:m=!1,inlineStylesheet:h=!0,maskInputOptions:p={},maskTextFn:o,maskInputFn:a,slimDOMOptions:i,dataURLOptions:c={},inlineImages:u=!1,inlineVideos:b=!1,recordCanvas:S=!1,onSerialize:Z,onIframeLoad:I,iframeLoadTimeout:R=5e3,onStylesheetLoad:y,stylesheetLoadTimeout:g=5e3,keepIframeSrcFn:V=()=>!1,newlyAddedElement:v=!1,cssCaptured:X=!1,privacySetting:W}=t;let{needsMask:k}=t,{preserveWhiteSpace:N=!0}=t;k||(k=Co(e,d,f,k===void 0));const j=kh(e,{doc:s,mirror:n,blockClass:r,blockSelector:l,needsMask:k,inlineStylesheet:h,maskInputOptions:p,maskTextClass:d,maskTextFn:o,maskInputFn:a,dataURLOptions:c,inlineImages:u,inlineVideos:b,recordCanvas:S,keepIframeSrcFn:V,newlyAddedElement:v,cssCaptured:X,privacySetting:W});if(!j)return console.warn(e,"not serialized"),null;let G;n.hasNode(e)?G=n.getId(e):Lh(j,i)||!N&&j.type===ye.Text&&!j.textContent.replace(/^\s+|\s+$/gm,"").length?G=Ut:G=Go();const w=Object.assign(j,{id:G});if(n.add(e,w),G===Ut)return null;Z&&Z(e);let T=!m,Y=W,O=W==="strict";if(w.type===ye.Element){if(T=T&&!w.needBlock,O||(O=!!w.needBlock||!!w.needMask),Y=O?"strict":Y,O&&Rn(w.tagName)){const B=e.cloneNode();B.src="",n.add(B,w)}delete w.needBlock,delete w.needMask;const q=Ve.shadowRoot(e);q&&Yt(q)&&(w.isShadowHost=!0)}if((w.type===ye.Document||w.type===ye.Element)&&T){i.headWhitespace&&w.type===ye.Element&&w.tagName==="head"&&(N=!1);const q={doc:s,mirror:n,blockClass:r,blockSelector:l,needsMask:k,maskTextClass:d,maskTextSelector:f,skipChild:m,inlineStylesheet:h,maskInputOptions:p,maskTextFn:o,maskInputFn:a,slimDOMOptions:i,dataURLOptions:c,inlineImages:u,inlineVideos:b,recordCanvas:S,preserveWhiteSpace:N,onSerialize:Z,onIframeLoad:I,iframeLoadTimeout:R,onStylesheetLoad:y,stylesheetLoadTimeout:g,keepIframeSrcFn:V,cssCaptured:!1,privacySetting:Y};if(!(w.type===ye.Element&&w.tagName==="textarea"&&w.attributes.value!==void 0)){w.type===ye.Element&&w.attributes._cssText!==void 0&&typeof w.attributes._cssText=="string"&&(q.cssCaptured=!0);for(const C of Array.from(Ve.childNodes(e))){const oe=Zt(C,q);oe&&w.childNodes.push(oe)}}let B=null;if(bo(e)&&(B=Ve.shadowRoot(e)))for(const C of Array.from(Ve.childNodes(B))){const oe=Zt(C,q);oe&&(Yt(B)&&(oe.isShadow=!0),w.childNodes.push(oe))}}const J=Ve.parentNode(e);return J&&Jt(J)&&Yt(J)&&(w.isShadow=!0),w.type===ye.Element&&w.tagName==="iframe"&&Wh(e,()=>{const q=e.contentDocument;if(q&&I){const B=Zt(q,{doc:q,mirror:n,blockClass:r,blockSelector:l,needsMask:k,maskTextClass:d,maskTextSelector:f,skipChild:!1,inlineStylesheet:h,maskInputOptions:p,maskTextFn:o,maskInputFn:a,slimDOMOptions:i,dataURLOptions:c,inlineImages:u,inlineVideos:b,recordCanvas:S,preserveWhiteSpace:N,onSerialize:Z,onIframeLoad:I,iframeLoadTimeout:R,onStylesheetLoad:y,stylesheetLoadTimeout:g,keepIframeSrcFn:V,privacySetting:W});B&&I(e,B)}},R),w.type===ye.Element&&w.tagName==="link"&&typeof w.attributes.rel=="string"&&(w.attributes.rel==="stylesheet"||w.attributes.rel==="preload"&&typeof w.attributes.href=="string"&&Io(w.attributes.href)==="css")&&wh(e,()=>{if(y){const q=Zt(e,{doc:s,mirror:n,blockClass:r,blockSelector:l,needsMask:k,maskTextClass:d,maskTextSelector:f,skipChild:!1,inlineStylesheet:h,maskInputOptions:p,maskTextFn:o,maskInputFn:a,slimDOMOptions:i,dataURLOptions:c,inlineImages:u,inlineVideos:b,recordCanvas:S,preserveWhiteSpace:N,onSerialize:Z,onIframeLoad:I,iframeLoadTimeout:R,onStylesheetLoad:y,stylesheetLoadTimeout:g,keepIframeSrcFn:V,privacySetting:W});q&&y(e,q)}},g),w}function Nh(e,t){const{mirror:s=new Zo,blockClass:n="highlight-block",blockSelector:r=null,maskTextClass:l="highlight-mask",maskTextSelector:d=null,inlineStylesheet:f=!0,inlineImages:m=!1,inlineVideos:h=!1,recordCanvas:p=!1,maskAllInputs:o=!1,maskTextFn:a,maskInputFn:i,slimDOM:c=!1,dataURLOptions:u,preserveWhiteSpace:b,onSerialize:S,onIframeLoad:Z,iframeLoadTimeout:I,onStylesheetLoad:R,stylesheetLoadTimeout:y,keepIframeSrcFn:g=()=>!1,privacySetting:V="default"}=t||{},v=o===!0?{color:!0,date:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0,textarea:!0,select:!0,password:!0}:o===!1?{password:!0}:o,X=xo(c);return Zt(e,{doc:e,mirror:s,blockClass:n,blockSelector:r,maskTextClass:l,maskTextSelector:d,skipChild:!1,inlineStylesheet:f,maskInputOptions:v,maskTextFn:a,maskInputFn:i,slimDOMOptions:X,dataURLOptions:u,inlineImages:m,inlineVideos:h,recordCanvas:p,preserveWhiteSpace:b,onSerialize:S,onIframeLoad:Z,iframeLoadTimeout:I,onStylesheetLoad:R,stylesheetLoadTimeout:y,keepIframeSrcFn:g,newlyAddedElement:!1,privacySetting:V})}function Jh(e){if(Object.prototype.hasOwnProperty.call(e,"__esModule"))return e;var t=e.default;if(typeof t=="function"){var s=function n(){return this instanceof n?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};s.prototype=t.prototype}else s={};return Object.defineProperty(s,"__esModule",{value:!0}),Object.keys(e).forEach(function(n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(s,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}),s}var Vs={exports:{}},To;function Yh(){if(To)return Vs.exports;To=1;var e=String,t=function(){return{isColorSupported:!1,reset:e,bold:e,dim:e,italic:e,underline:e,inverse:e,hidden:e,strikethrough:e,black:e,red:e,green:e,yellow:e,blue:e,magenta:e,cyan:e,white:e,gray:e,bgBlack:e,bgRed:e,bgGreen:e,bgYellow:e,bgBlue:e,bgMagenta:e,bgCyan:e,bgWhite:e,blackBright:e,redBright:e,greenBright:e,yellowBright:e,blueBright:e,magentaBright:e,cyanBright:e,whiteBright:e,bgBlackBright:e,bgRedBright:e,bgGreenBright:e,bgYellowBright:e,bgBlueBright:e,bgMagentaBright:e,bgCyanBright:e,bgWhiteBright:e}};return Vs.exports=t(),Vs.exports.createColors=t,Vs.exports}const Uh={},Fh=Object.freeze(Object.defineProperty({__proto__:null,default:Uh},Symbol.toStringTag,{value:"Module"})),Ke=Jh(Fh);var Wn,Lo;function wn(){if(Lo)return Wn;Lo=1;let e=Yh(),t=Ke;class s extends Error{constructor(r,l,d,f,m,h){super(r),this.name="CssSyntaxError",this.reason=r,m&&(this.file=m),f&&(this.source=f),h&&(this.plugin=h),typeof l<"u"&&typeof d<"u"&&(typeof l=="number"?(this.line=l,this.column=d):(this.line=l.line,this.column=l.column,this.endLine=d.line,this.endColumn=d.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,s)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(r){if(!this.source)return"";let l=this.source;r==null&&(r=e.isColorSupported);let d=i=>i,f=i=>i,m=i=>i;if(r){let{bold:i,gray:c,red:u}=e.createColors(!0);f=b=>i(u(b)),d=b=>c(b),t&&(m=b=>t(b))}let h=l.split(/\r?\n/),p=Math.max(this.line-3,0),o=Math.min(this.line+2,h.length),a=String(o).length;return h.slice(p,o).map((i,c)=>{let u=p+1+c,b=" "+(" "+u).slice(-a)+" | ";if(u===this.line){if(i.length>160){let Z=20,I=Math.max(0,this.column-Z),R=Math.max(this.column+Z,this.endColumn+Z),y=i.slice(I,R),g=d(b.replace(/\d/g," "))+i.slice(0,Math.min(this.column-1,Z-1)).replace(/[^\t]/g," ");return f(">")+d(b)+m(y)+`
289
289
  `+g+f("^")}let S=d(b.replace(/\d/g," "))+i.slice(0,this.column-1).replace(/[^\t]/g," ");return f(">")+d(b)+m(i)+`
290
290
  `+S+f("^")}return" "+d(b)+m(i)}).join(`
291
291
  `)}toString(){let r=this.showSourceCode();return r&&(r=`
292
292
 
293
293
  `+r+`
294
- `),this.name+": "+this.message+r}}return vn=s,s.default=s,vn}var wn,To;function Lo(){if(To)return wn;To=1;const e=/(<)(\/?style\b)/gi,t=/(<)(!--)/g,s=/[\t\n\f\r "#'()/;[\\\]{}]/;function n(p){return typeof p!="string"||!p.includes("<")?p:p.replace(e,"\\3c $2").replace(t,"\\3c $2")}const r={after:`
294
+ `),this.name+": "+this.message+r}}return Wn=s,s.default=s,Wn}var kn,No;function Jo(){if(No)return kn;No=1;const e=/(<)(\/?style\b)/gi,t=/(<)(!--)/g,s=/[\t\n\f\r "#'()/;[\\\]{}]/;function n(p){return typeof p!="string"||!p.includes("<")?p:p.replace(e,"\\3c $2").replace(t,"\\3c $2")}const r={after:`
295
295
  `,beforeClose:`
296
296
  `,beforeComment:`
297
297
  `,beforeDecl:`
@@ -302,27 +302,27 @@ this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names`):d
302
302
  `)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(a,null,"beforeDecl"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeDecl(o,a){let i;return o.walkDecls(c=>{if(typeof c.raws.before<"u")return i=c.raws.before,i.includes(`
303
303
  `)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(a,null,"beforeRule"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeOpen(o){let a;return o.walk(i=>{if(i.type!=="decl"&&(a=i.raws.between,typeof a<"u"))return!1}),a}rawBeforeRule(o){let a;return o.walk(i=>{if(i.nodes&&(i.parent!==o||o.first!==i)&&typeof i.raws.before<"u")return a=i.raws.before,a.includes(`
304
304
  `)&&(a=a.replace(/[^\n]+$/,"")),!1}),a&&(a=a.replace(/\S/g,"")),a}rawColon(o){let a;return o.walkDecls(i=>{if(typeof i.raws.between<"u")return a=i.raws.between.replace(/[^\s:]/g,""),!1}),a}rawEmptyBody(o){let a;return o.walk(i=>{if(i.nodes&&i.nodes.length===0&&(a=i.raws.after,typeof a<"u"))return!1}),a}rawIndent(o){if(o.raws.indent)return o.raws.indent;let a;return o.walk(i=>{let c=i.parent;if(c&&c!==o&&c.parent&&c.parent===o&&typeof i.raws.before<"u"){let u=i.raws.before.split(`
305
- `);return a=u[u.length-1],a=a.replace(/\S/g,""),!1}}),a}rawSemicolon(o){let a;return o.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(a=i.raws.semicolon,typeof a<"u"))return!1}),a}rawValue(o,a){let i=o[a],c=o.raws[a];return c&&c.value===i?c.raw:i}root(o){if(o.source&&o.source.input.hasBOM&&this.builder("\uFEFF",o,"start"),this.body(o),o.raws.after){let a=o.raws.after,i=o.parent&&o.parent.type==="document";this.builder(i?a:n(a))}}rule(o){this.block(o,this.rawValue(o,"selector")),o.raws.ownSemicolon&&this.builder(n(o.raws.ownSemicolon),o,"end")}stringify(o,a){if(!this[o.type])throw new Error("Unknown AST node type "+o.type+". Maybe you need to change PostCSS stringifier.");this[o.type](o,a)}}return wn=h,h.default=h,wn}var kn,No;function Gs(){if(No)return kn;No=1;let e=Lo();function t(s,n){new e(n).stringify(s)}return kn=t,t.default=t,kn}var Cn={},Jo;function Rs(){return Jo||(Jo=1,Cn.isClean=Symbol("isClean"),Cn.my=Symbol("my")),Cn}var xn,Yo;function vs(){if(Yo)return xn;Yo=1;let e=Wn(),t=Lo(),s=Gs(),{isClean:n,my:r}=Rs();function l(m,h){let p=new m.constructor,o=[[m,p,h]];for(;o.length>0;){let[a,i,c]=o.pop();for(let u in a){if(!Object.prototype.hasOwnProperty.call(a,u)||u==="proxyCache")continue;let b=a[u],S=typeof b;if(u==="parent"&&S==="object")c&&(i[u]=c);else if(u==="source")i[u]=b;else if(Array.isArray(b)){let Z=[];i[u]=Z;for(let I of b){let R=new I.constructor;Z.push(R),o.push([I,R,i])}}else{if(S==="object"&&b!==null){let Z=new b.constructor;o.push([b,Z,void 0]),b=Z}i[u]=b}}}return p}function d(m,h){if(h&&typeof h.offset<"u")return h.offset;let p=1,o=1,a=0;for(let i=0;i<m.length;i++){if(o===h.line&&p===h.column){a=i;break}m[i]===`
305
+ `);return a=u[u.length-1],a=a.replace(/\S/g,""),!1}}),a}rawSemicolon(o){let a;return o.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(a=i.raws.semicolon,typeof a<"u"))return!1}),a}rawValue(o,a){let i=o[a],c=o.raws[a];return c&&c.value===i?c.raw:i}root(o){if(o.source&&o.source.input.hasBOM&&this.builder("\uFEFF",o,"start"),this.body(o),o.raws.after){let a=o.raws.after,i=o.parent&&o.parent.type==="document";this.builder(i?a:n(a))}}rule(o){this.block(o,this.rawValue(o,"selector")),o.raws.ownSemicolon&&this.builder(n(o.raws.ownSemicolon),o,"end")}stringify(o,a){if(!this[o.type])throw new Error("Unknown AST node type "+o.type+". Maybe you need to change PostCSS stringifier.");this[o.type](o,a)}}return kn=h,h.default=h,kn}var Cn,Yo;function Gs(){if(Yo)return Cn;Yo=1;let e=Jo();function t(s,n){new e(n).stringify(s)}return Cn=t,t.default=t,Cn}var xn={},Uo;function Rs(){return Uo||(Uo=1,xn.isClean=Symbol("isClean"),xn.my=Symbol("my")),xn}var Tn,Fo;function vs(){if(Fo)return Tn;Fo=1;let e=wn(),t=Jo(),s=Gs(),{isClean:n,my:r}=Rs();function l(m,h){let p=new m.constructor,o=[[m,p,h]];for(;o.length>0;){let[a,i,c]=o.pop();for(let u in a){if(!Object.prototype.hasOwnProperty.call(a,u)||u==="proxyCache")continue;let b=a[u],S=typeof b;if(u==="parent"&&S==="object")c&&(i[u]=c);else if(u==="source")i[u]=b;else if(Array.isArray(b)){let Z=[];i[u]=Z;for(let I of b){let R=new I.constructor;Z.push(R),o.push([I,R,i])}}else{if(S==="object"&&b!==null){let Z=new b.constructor;o.push([b,Z,void 0]),b=Z}i[u]=b}}}return p}function d(m,h){if(h&&typeof h.offset<"u")return h.offset;let p=1,o=1,a=0;for(let i=0;i<m.length;i++){if(o===h.line&&p===h.column){a=i;break}m[i]===`
306
306
  `?(p=1,o+=1):p+=1}return a}class f{get proxyOf(){return this}constructor(h={}){this.raws={},this[n]=!1,this[r]=!0;for(let p of Object.keys(h))if(p!=="__proto__")if(p==="nodes"){this.nodes=[];for(let o of h[p])typeof o.clone=="function"&&o.parent?this.append(o.clone()):this.append(o)}else this[p]=h[p]}addToError(h){if(h.postcssNode=this,h.stack&&this.source&&/\n\s{4}at /.test(h.stack)){let p=this.source;h.stack=h.stack.replace(/\n\s{4}at /,`$&${p.input.from}:${p.start.line}:${p.start.column}$&`)}return h}after(h){return this.parent.insertAfter(this,h),this}assign(h={}){for(let p in h)this[p]=h[p];return this}before(h){return this.parent.insertBefore(this,h),this}cleanRaws(h){delete this.raws.before,delete this.raws.after,h||delete this.raws.between}clone(h={}){let p=l(this);for(let o in h)p[o]=h[o];return p}cloneAfter(h={}){let p=this.clone(h);return this.parent.insertAfter(this,p),p}cloneBefore(h={}){let p=this.clone(h);return this.parent.insertBefore(this,p),p}error(h,p={}){if(this.source){let{end:o,start:a}=this.rangeBy(p);return this.source.input.error(h,{column:a.column,line:a.line},{column:o.column,line:o.line},p)}return new e(h)}getProxyProcessor(){return{get(h,p){return p==="proxyOf"?h:p==="root"?()=>h.root().toProxy():h[p]},set(h,p,o){return h[p]===o||(h[p]=o,(p==="prop"||p==="value"||p==="name"||p==="params"||p==="important"||p==="text")&&h.markDirty()),!0}}}markClean(){this[n]=!0}markDirty(){if(this[n]){this[n]=!1;let h=this;for(;h=h.parent;)h[n]=!1}}next(){if(!this.parent)return;let h=this.parent.index(this);return this.parent.nodes[h+1]}positionBy(h={}){let p="document"in this.source.input?this.source.input.document:this.source.input.css,o={column:this.source.start.column,line:this.source.start.line,offset:d(p,this.source.start)};if(h.index)o=this.positionInside(h.index);else if(h.word){let a=p.slice(d(p,this.source.start),d(p,this.source.end)).indexOf(h.word);a!==-1&&(o=this.positionInside(a))}return o}positionInside(h){let p=this.source.start.column,o=this.source.start.line,a="document"in this.source.input?this.source.input.document:this.source.input.css,i=d(a,this.source.start),c=i+h;for(let u=i;u<c;u++)a[u]===`
307
- `?(p=1,o+=1):p+=1;return{column:p,line:o,offset:c}}prev(){if(!this.parent)return;let h=this.parent.index(this);return this.parent.nodes[h-1]}rangeBy(h={}){let p="document"in this.source.input?this.source.input.document:this.source.input.css,o={column:this.source.start.column,line:this.source.start.line,offset:d(p,this.source.start)},a=this.source.end?{column:this.source.end.column+1,line:this.source.end.line,offset:typeof this.source.end.offset=="number"?this.source.end.offset:d(p,this.source.end)+1}:{column:o.column+1,line:o.line,offset:o.offset+1};if(h.word){let i=p.slice(d(p,this.source.start),d(p,this.source.end)).indexOf(h.word);i!==-1&&(o=this.positionInside(i),a=this.positionInside(i+h.word.length))}else h.start?o={column:h.start.column,line:h.start.line,offset:d(p,h.start)}:typeof h.index=="number"&&(o=this.positionInside(h.index)),h.end?a={column:h.end.column,line:h.end.line,offset:d(p,h.end)}:typeof h.endIndex=="number"?a=this.positionInside(h.endIndex):typeof h.index=="number"&&(a=this.positionInside(h.index+1));return(a.line<o.line||a.line===o.line&&a.column<=o.column)&&(a={column:o.column+1,line:o.line,offset:o.offset+1}),{end:a,start:o}}raw(h,p){return new t().raw(this,h,p)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...h){if(this.parent){let p=this,o=!1;for(let a of h)a===this?o=!0:o?(this.parent.insertAfter(p,a),p=a):this.parent.insertBefore(p,a);o||this.remove()}return this}root(){let h=this;for(;h.parent&&h.parent.type!=="document";)h=h.parent;return h}toJSON(h,p){let o=p==null;p=p||new Map;let a=[],i=[[this,a,0]];for(let u=0;u<i.length;u++){let[b,S,Z]=i[u],I={};S[Z]=I;for(let R in b){if(!Object.prototype.hasOwnProperty.call(b,R)||R==="parent"||R==="proxyCache")continue;let y=b[R];if(Array.isArray(y)){let g=[];I[R]=g;for(let V=0;V<y.length;V++){let v=y[V];typeof v=="object"&&v.toJSON?v.toJSON===f.prototype.toJSON?i.push([v,g,V]):g[V]=v.toJSON(null,p):g[V]=v}}else if(typeof y=="object"&&y.toJSON)y.toJSON===f.prototype.toJSON?i.push([y,I,R]):I[R]=y.toJSON(null,p);else if(R==="source"){if(y==null)continue;let g=p.get(y.input);g==null&&(g=p.size,p.set(y.input,g)),I[R]={end:y.end,inputId:g,start:y.start}}else I[R]=y}}let c=a[0];return o&&(c.inputs=[...p.keys()].map(u=>u.toJSON())),c}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(h=s){h.stringify&&(h=h.stringify);let p="";return h(this,o=>{p+=o}),p}warn(h,p,o={}){let a={node:this};for(let i in o)a[i]=o[i];return h.warn(p,a)}}return xn=f,f.default=f,xn}var Tn,Uo;function Ws(){if(Uo)return Tn;Uo=1;let e=vs();class t extends e{constructor(n){super(n),this.type="comment"}}return Tn=t,t.default=t,Tn}var Ln,Fo;function ws(){if(Fo)return Ln;Fo=1;let e=vs();class t extends e{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(n){n&&typeof n.value<"u"&&typeof n.value!="string"&&(n=Xe(H({},n),{value:String(n.value)})),super(n),this.type="decl"}}return Ln=t,t.default=t,Ln}var Nn,Oo;function $e(){if(Oo)return Nn;Oo=1;let e=Ws(),t=ws(),s=vs(),{isClean:n,my:r}=Rs(),l,d,f,m;function h(a){let i=a.slice();for(;i.length>0;){let c=i.pop();if(delete c.source,c.nodes){c.nodes=c.nodes.slice();for(let u of c.nodes)i.push(u)}}return a.slice()}function p(a){let i=[a];for(;i.length>0;){let c=i.pop();if(c[n]=!1,c.proxyOf.nodes)for(let u of c.proxyOf.nodes)i.push(u)}}class o extends s{get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}append(...i){for(let c of i){let u=this.normalize(c,this.last);for(let b of u)this.proxyOf.nodes.push(b)}return this.markDirty(),this}cleanRaws(i){let c=[this];for(;c.length>0;){let u=c.pop();if(u!==this&&u.cleanRaws!==o.prototype.cleanRaws){u.cleanRaws(i);continue}if(s.prototype.cleanRaws.call(u,i),u.nodes)for(let b of u.nodes)c.push(b)}}each(i){if(!this.proxyOf.nodes)return;let c=this.getIterator(),u,b;for(;this.indexes[c]<this.proxyOf.nodes.length&&(u=this.indexes[c],b=i(this.proxyOf.nodes[u],u),b!==!1);)this.indexes[c]+=1;return delete this.indexes[c],b}every(i){return this.nodes.every(i)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let i=this.lastEach;return this.indexes[i]=0,i}getProxyProcessor(){return{get(i,c){return c==="proxyOf"?i:i[c]?c==="each"||typeof c=="string"&&c.startsWith("walk")?(...u)=>i[c](...u.map(b=>typeof b=="function"?(S,Z)=>b(S.toProxy(),Z):b)):c==="every"||c==="some"?u=>i[c]((b,...S)=>u(b.toProxy(),...S)):c==="root"?()=>i.root().toProxy():c==="nodes"?i.nodes.map(u=>u.toProxy()):c==="first"||c==="last"?i[c].toProxy():i[c]:i[c]},set(i,c,u){return i[c]===u||(i[c]=u,(c==="name"||c==="params"||c==="selector")&&i.markDirty()),!0}}}index(i){return typeof i=="number"?i:(i.proxyOf&&(i=i.proxyOf),this.proxyOf.nodes.indexOf(i))}insertAfter(i,c){let u=this.index(i),b=this.normalize(c,this.proxyOf.nodes[u]).reverse();u=this.index(i);for(let Z of b)this.proxyOf.nodes.splice(u+1,0,Z);let S;for(let Z in this.indexes)S=this.indexes[Z],u<S&&(this.indexes[Z]=S+b.length);return this.markDirty(),this}insertBefore(i,c){let u=this.index(i),b=u===0?"prepend":!1,S=this.normalize(c,this.proxyOf.nodes[u],b).reverse();u=this.index(i);for(let I of S)this.proxyOf.nodes.splice(u,0,I);let Z;for(let I in this.indexes)Z=this.indexes[I],u<=Z&&(this.indexes[I]=Z+S.length);return this.markDirty(),this}normalize(i,c){if(typeof i=="string")i=h(d(i).nodes);else if(typeof i>"u")i=[];else if(Array.isArray(i)){i=i.slice(0);for(let u of i)u.parent&&u.parent.removeChild(u,"ignore")}else if(i.type==="root"&&this.type!=="document"){i=i.nodes.slice(0);for(let u of i)u.parent&&u.parent.removeChild(u,"ignore")}else if(i.type)i=[i];else if(i.prop){if(typeof i.value>"u")throw new Error("Value field is missed in node creation");typeof i.value!="string"&&(i.value=String(i.value)),i=[new t(i)]}else if(i.selector||i.selectors)i=[new m(i)];else if(i.name)i=[new l(i)];else if(i.text)i=[new e(i)];else throw new Error("Unknown node type in node creation");return i.map(u=>(u[r]||o.rebuild(u),u=u.proxyOf,u.parent&&u.parent.removeChild(u),u[n]&&p(u),u.raws||(u.raws={}),typeof u.raws.before>"u"&&c&&typeof c.raws.before<"u"&&(u.raws.before=c.raws.before.replace(/\S/g,"")),u.parent=this.proxyOf,u))}prepend(...i){i=i.reverse();for(let c of i){let u=this.normalize(c,this.first,"prepend").reverse();for(let b of u)this.proxyOf.nodes.unshift(b);for(let b in this.indexes)this.indexes[b]=this.indexes[b]+u.length}return this.markDirty(),this}push(i){return i.parent=this,this.proxyOf.nodes.push(i),this}removeAll(){for(let i of this.proxyOf.nodes)i.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(i){i=this.index(i),this.proxyOf.nodes[i].parent=void 0,this.proxyOf.nodes.splice(i,1);let c;for(let u in this.indexes)c=this.indexes[u],c>=i&&(this.indexes[u]=c-1);return this.markDirty(),this}replaceValues(i,c,u){return u||(u=c,c={}),this.walkDecls(b=>{c.props&&!c.props.includes(b.prop)||c.fast&&!b.value.includes(c.fast)||(b.value=b.value.replace(i,u))}),this.markDirty(),this}some(i){return this.nodes.some(i)}walk(i){if(!this.proxyOf.nodes)return;let c=[{iterator:this.getIterator(),node:this.proxyOf}];for(;c.length>0;){let{iterator:u,node:b}=c[c.length-1],S=b.indexes[u];if(S>=b.proxyOf.nodes.length){delete b.indexes[u],c.pop();let R=c[c.length-1];R&&(R.node.indexes[R.iterator]+=1);continue}let Z=b.proxyOf.nodes[S],I;try{I=i(Z,S)}catch(R){throw Z.addToError(R)}if(I===!1){for(let R of c)delete R.node.indexes[R.iterator];return!1}Z.walk&&Z.proxyOf.nodes?c.push({iterator:Z.getIterator(),node:Z}):b.indexes[u]+=1}}walkAtRules(i,c){return c?i instanceof RegExp?this.walk((u,b)=>{if(u.type==="atrule"&&i.test(u.name))return c(u,b)}):this.walk((u,b)=>{if(u.type==="atrule"&&u.name===i)return c(u,b)}):(c=i,this.walk((u,b)=>{if(u.type==="atrule")return c(u,b)}))}walkComments(i){return this.walk((c,u)=>{if(c.type==="comment")return i(c,u)})}walkDecls(i,c){return c?i instanceof RegExp?this.walk((u,b)=>{if(u.type==="decl"&&i.test(u.prop))return c(u,b)}):this.walk((u,b)=>{if(u.type==="decl"&&u.prop===i)return c(u,b)}):(c=i,this.walk((u,b)=>{if(u.type==="decl")return c(u,b)}))}walkRules(i,c){return c?i instanceof RegExp?this.walk((u,b)=>{if(u.type==="rule"&&i.test(u.selector))return c(u,b)}):this.walk((u,b)=>{if(u.type==="rule"&&u.selector===i)return c(u,b)}):(c=i,this.walk((u,b)=>{if(u.type==="rule")return c(u,b)}))}}return o.registerParse=a=>{d=a},o.registerRule=a=>{m=a},o.registerAtRule=a=>{l=a},o.registerRoot=a=>{f=a},Nn=o,o.default=o,o.rebuild=a=>{let i=[a];for(;i.length>0;){let c=i.pop();if(c.type==="atrule"?Object.setPrototypeOf(c,l.prototype):c.type==="rule"?Object.setPrototypeOf(c,m.prototype):c.type==="decl"?Object.setPrototypeOf(c,t.prototype):c.type==="comment"?Object.setPrototypeOf(c,e.prototype):c.type==="root"&&Object.setPrototypeOf(c,f.prototype),c[r]=!0,c.nodes)for(let u of c.nodes)i.push(u)}},Nn}var Jn,Mo;function Yn(){if(Mo)return Jn;Mo=1;let e=$e();class t extends e{constructor(n){super(n),this.type="atrule"}append(...n){return this.proxyOf.nodes||(this.nodes=[]),super.append(...n)}prepend(...n){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...n)}}return Jn=t,t.default=t,e.registerAtRule(t),Jn}var Un,Ko;function Fn(){if(Ko)return Un;Ko=1;let e=$e(),t,s;class n extends e{constructor(l){super(H({type:"document"},l)),this.nodes||(this.nodes=[])}toResult(l={}){return new t(new s,this,l).stringify()}}return n.registerLazyResult=r=>{t=r},n.registerProcessor=r=>{s=r},Un=n,n.default=n,Un}var On,Eo;function Uh(){if(Eo)return On;Eo=1;let e="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";return On={nanoid:(t=21)=>{let s="",n=t|0;for(;n-- >0;)s+=e[Math.random()*64|0];return s},customAlphabet:(t,s=21)=>(n=s)=>{let r="",l=n|0;for(;l-- >0;)r+=t[Math.random()*t.length|0];return r}},On}var Mn,zo;function Po(){if(zo)return Mn;zo=1;let{existsSync:e,readFileSync:t,realpathSync:s}=Ke,{dirname:n,isAbsolute:r,join:l,relative:d,sep:f}=Ke,{SourceMapConsumer:m,SourceMapGenerator:h}=Ke;function p(i){try{return s(i)}catch{return i}}function o(i){return Buffer?Buffer.from(i,"base64").toString():window.atob(i)}class a{constructor(c,u){if(u.map===!1)return;u.unsafeMap&&(this.unsafeMap=!0),this.loadAnnotation(c),this.inline=this.startWith(this.annotation,"data:");let b=u.map?u.map.prev:void 0,S=this.loadMap(u.from,b);!this.mapFile&&u.from&&(this.mapFile=u.from),this.mapFile&&(this.root=n(this.mapFile)),S&&(this.text=S)}consumer(){return this.consumerCache||(this.consumerCache=new m(this.json||this.text)),this.consumerCache}decodeInline(c){let u=/^data:application\/json;charset=utf-?8;base64,/,b=/^data:application\/json;base64,/,S=/^data:application\/json;charset=utf-?8,/,Z=/^data:application\/json,/,I=c.match(S)||c.match(Z);if(I)return decodeURIComponent(c.substr(I[0].length));let R=c.match(u)||c.match(b);if(R)return o(c.substr(R[0].length));let y=c.slice(22);throw y=y.slice(0,y.indexOf(",")),new Error("Unsupported source map encoding "+y)}getAnnotationURL(c){return c.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(c){return typeof c!="object"?!1:typeof c.mappings=="string"||typeof c._mappings=="string"||Array.isArray(c.sections)}loadAnnotation(c){let u=c.match(/\/\*\s*# sourceMappingURL=/g);if(!u)return;let b=c.lastIndexOf(u.pop()),S=c.indexOf("*/",b);b>-1&&S>-1&&(this.annotation=this.getAnnotationURL(c.substring(b,S)))}loadFile(c,u,b){if(!b&&!this.unsafeMap){if(!/\.map$/i.test(c)||!u)return;let S=d(p(n(u)),p(c));if(S===".."||S.startsWith(".."+f)||r(S))return}if(this.root=n(c),e(c))return this.mapFile=c,t(c,"utf-8").toString().trim()}loadMap(c,u){if(u===!1)return!1;if(u){if(typeof u=="string")return u;if(typeof u=="function"){let b=u(c);if(b){let S=this.loadFile(b,c,!0);if(!S)throw new Error("Unable to load previous source map: "+b.toString());return S}}else{if(u instanceof m)return h.fromSourceMap(u).toString();if(u instanceof h)return u.toString();if(this.isMap(u))return JSON.stringify(u);throw new Error("Unsupported previous source map format: "+u.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let b=this.annotation;c&&(b=l(n(c),b));let S=this.loadFile(b,c,!1);if(S)try{this.json=JSON.parse(S.replace(/^\)]}'[^\n]*\n/,""))}catch{return}return S}}}startWith(c,u){return c?c.substr(0,u.length)===u:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}}return Mn=a,a.default=a,Mn}var Kn,Ho;function ks(){if(Ho)return Kn;Ho=1;let{nanoid:e}=Uh(),{isAbsolute:t,resolve:s}=Ke,{SourceMapConsumer:n,SourceMapGenerator:r}=Ke,{fileURLToPath:l,pathToFileURL:d}=Ke,f=Wn(),m=Po(),h=Ke,p=Symbol("lineToIndexCache"),o=!!(n&&r),a=!!(s&&t);function i(u){if(u[p])return u[p];let b=u.css.split(`
308
- `),S=new Array(b.length),Z=0;for(let I=0,R=b.length;I<R;I++)S[I]=Z,Z+=b[I].length+1;return u[p]=S,S}class c{get from(){return this.file||this.id}constructor(b,S={}){if(b===null||typeof b>"u"||typeof b=="object"&&!b.toString)throw new Error(`PostCSS received ${b} instead of CSS string`);if(this.css=b.toString(),this.css[0]==="\uFEFF"||this.css[0]==="￾"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,this.document=this.css,S.document&&(this.document=S.document.toString()),S.from&&(!a||/^\w+:\/\//.test(S.from)||t(S.from)?this.file=S.from:this.file=s(S.from)),a&&o){let Z=new m(this.css,S);if(Z.text){this.map=Z;let I=Z.consumer().file;!this.file&&I&&(this.file=this.mapResolve(I))}}this.file||(this.id="<input css "+e(6)+">"),this.map&&(this.map.file=this.from)}error(b,S,Z,I={}){let R,y,g,V,v;if(S&&typeof S=="object"){let W=S,k=Z;if(typeof W.offset=="number"){V=W.offset;let N=this.fromOffset(V);S=N.line,Z=N.col}else S=W.line,Z=W.column,V=this.fromLineAndColumn(S,Z);if(typeof k.offset=="number"){g=k.offset;let N=this.fromOffset(g);y=N.line,R=N.col}else y=k.line,R=k.column,g=this.fromLineAndColumn(k.line,k.column)}else if(Z)V=this.fromLineAndColumn(S,Z);else{V=S;let W=this.fromOffset(V);S=W.line,Z=W.col}let X=this.origin(S,Z,y,R);return X?v=new f(b,X.endLine===void 0?X.line:{column:X.column,line:X.line},X.endLine===void 0?X.column:{column:X.endColumn,line:X.endLine},X.source,X.file,I.plugin):v=new f(b,y===void 0?S:{column:Z,line:S},y===void 0?Z:{column:R,line:y},this.css,this.file,I.plugin),v.input={column:Z,endColumn:R,endLine:y,endOffset:g,line:S,offset:V,source:this.css},this.file&&(d&&(v.input.url=d(this.file).toString()),v.input.file=this.file),v}fromLineAndColumn(b,S){return i(this)[b-1]+S-1}fromOffset(b){let S=i(this),Z=S[S.length-1],I=0;if(b>=Z)I=S.length-1;else{let R=S.length-2,y;for(;I<R;)if(y=I+(R-I>>1),b<S[y])R=y-1;else if(b>=S[y+1])I=y+1;else{I=y;break}}return{col:b-S[I]+1,line:I+1}}mapResolve(b){return/^\w+:\/\//.test(b)?b:s(this.map.consumer().sourceRoot||this.map.root||".",b)}origin(b,S,Z,I){if(!this.map)return!1;let R=this.map.consumer(),y=R.originalPositionFor({column:S-1,line:b});if(!y.source)return!1;let g;if(typeof Z=="number"){let W=R.originalPositionFor({column:I-1,line:Z});W.source&&(g=W)}let V;t(y.source)?V=d(y.source):V=new URL(y.source,this.map.consumer().sourceRoot||d(this.map.mapFile));let v={column:y.column+1,endColumn:g&&g.column+1,endLine:g&&g.line,line:y.line,url:V.toString()};if(V.protocol==="file:")if(l)v.file=l(V);else throw new Error("file: protocol is not available in this PostCSS build");let X=R.sourceContentFor(y.source);return X&&(v.source=X),v}toJSON(){let b={};for(let S of["hasBOM","css","file","id"])this[S]!=null&&(b[S]=this[S]);return this.map&&(b.map=H({},this.map),b.map.consumerCache&&(b.map.consumerCache=void 0)),b}}return Kn=c,c.default=c,h&&h.registerInput&&h.registerInput(c),Kn}var En,Do;function Ft(){if(Do)return En;Do=1;let e=$e(),t,s;class n extends e{constructor(l){super(l),this.type="root",this.nodes||(this.nodes=[])}normalize(l,d,f){let m=new Set;for(let p of Array.isArray(l)?l:[l])p&&typeof p=="object"&&!p.parent&&p.raws&&typeof p.raws.before<"u"&&m.add(p.raws);let h=super.normalize(l);if(d){if(f==="prepend")this.nodes.length>1?d.raws.before=this.nodes[1].raws.before:delete d.raws.before;else if(this.first!==d)for(let p of h)m.has(p.raws)||(p.raws.before=d.raws.before)}return h}removeChild(l,d){let f=this.index(l);return!d&&f===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[f].raws.before),super.removeChild(l)}toResult(l={}){return new t(new s,this,l).stringify()}}return n.registerLazyResult=r=>{t=r},n.registerProcessor=r=>{s=r},En=n,n.default=n,e.registerRoot(n),En}var zn,Bo;function Qo(){if(Bo)return zn;Bo=1;let e={comma(t){return e.split(t,[","],!0)},space(t){let s=[" ",`
309
- `," "];return e.split(t,s)},split(t,s,n){if(typeof t!="string")return[];let r=[],l="",d=!1,f=0,m=!1,h="",p=!1;for(let o of t)p?p=!1:o==="\\"?p=!0:m?o===h&&(m=!1):o==='"'||o==="'"?(m=!0,h=o):o==="("?f+=1:o===")"?f>0&&(f-=1):f===0&&s.includes(o)&&(d=!0),d?(l!==""&&r.push(l.trim()),l="",d=!1):l+=o;return(n||l!=="")&&r.push(l.trim()),r}};return zn=e,e.default=e,zn}var Pn,jo;function Hn(){if(jo)return Pn;jo=1;let e=$e(),t=Qo();class s extends e{get selectors(){return t.comma(this.selector)}set selectors(r){let l=this.selector?this.selector.match(/,\s*/):null,d=l?l[0]:","+this.raw("between","beforeOpen");this.selector=r.join(d)}constructor(r){super(r),this.type="rule",this.nodes||(this.nodes=[])}}return Pn=s,s.default=s,e.registerRule(s),Pn}var Dn,Ao;function Fh(){if(Ao)return Dn;Ao=1;let e=Yn(),t=Ws(),s=ws(),n=ks(),r=Po(),l=Ft(),d=Hn();function f(p,o){return p.inputs?p.inputs.map(a=>{let i=Xe(H({},a),{__proto__:n.prototype});return i.map&&(i.map=Xe(H({},i.map),{__proto__:r.prototype})),i}):o}function m(p,o,a){let i=H({},p);if(delete i.inputs,delete i.nodes,i.source){let u=i.source,{inputId:b}=u,S=ms(u,["inputId"]);i.source=S,b!=null&&(i.source.input=o[b])}let c;if(i.type==="root")c=new l(i);else if(i.type==="decl")c=new s(i);else if(i.type==="rule")c=new d(i);else if(i.type==="comment")c=new t(i);else if(i.type==="atrule")c=new e(i);else throw new Error("Unknown node type: "+p.type);if(a){c.nodes=a;for(let u of a)u.parent=c}return c}function h(p,o){if(Array.isArray(p))return p.map(c=>h(c));let a,i=[{childIndex:0,children:[],inputs:f(p,o),json:p}];for(;i.length>0;){let c=i[i.length-1],u=c.json.nodes;if(u&&c.childIndex<u.length){let S=u[c.childIndex];c.childIndex+=1,i.push({childIndex:0,children:[],inputs:f(S,c.inputs),json:S});continue}i.pop();let b=m(c.json,c.inputs,u?c.children:void 0);i.length>0?i[i.length-1].children.push(b):a=b}return a}return Dn=h,h.default=h,Dn}var Bn,_o;function $o(){if(_o)return Bn;_o=1;let{dirname:e,relative:t,resolve:s,sep:n}=Ke,{SourceMapConsumer:r,SourceMapGenerator:l}=Ke,{pathToFileURL:d}=Ke,f=ks(),m=!!(r&&l),h=!!(e&&s&&t&&n);class p{constructor(a,i,c,u){this.stringify=a,this.mapOpts=c.map||{},this.root=i,this.opts=c,this.css=u,this.originalCSS=u,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let a;this.isInline()?a="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?a=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?a=this.mapOpts.annotation(this.opts.to,this.root):a=this.outputFile()+".map";let i=`
307
+ `?(p=1,o+=1):p+=1;return{column:p,line:o,offset:c}}prev(){if(!this.parent)return;let h=this.parent.index(this);return this.parent.nodes[h-1]}rangeBy(h={}){let p="document"in this.source.input?this.source.input.document:this.source.input.css,o={column:this.source.start.column,line:this.source.start.line,offset:d(p,this.source.start)},a=this.source.end?{column:this.source.end.column+1,line:this.source.end.line,offset:typeof this.source.end.offset=="number"?this.source.end.offset:d(p,this.source.end)+1}:{column:o.column+1,line:o.line,offset:o.offset+1};if(h.word){let i=p.slice(d(p,this.source.start),d(p,this.source.end)).indexOf(h.word);i!==-1&&(o=this.positionInside(i),a=this.positionInside(i+h.word.length))}else h.start?o={column:h.start.column,line:h.start.line,offset:d(p,h.start)}:typeof h.index=="number"&&(o=this.positionInside(h.index)),h.end?a={column:h.end.column,line:h.end.line,offset:d(p,h.end)}:typeof h.endIndex=="number"?a=this.positionInside(h.endIndex):typeof h.index=="number"&&(a=this.positionInside(h.index+1));return(a.line<o.line||a.line===o.line&&a.column<=o.column)&&(a={column:o.column+1,line:o.line,offset:o.offset+1}),{end:a,start:o}}raw(h,p){return new t().raw(this,h,p)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...h){if(this.parent){let p=this,o=!1;for(let a of h)a===this?o=!0:o?(this.parent.insertAfter(p,a),p=a):this.parent.insertBefore(p,a);o||this.remove()}return this}root(){let h=this;for(;h.parent&&h.parent.type!=="document";)h=h.parent;return h}toJSON(h,p){let o=p==null;p=p||new Map;let a=[],i=[[this,a,0]];for(let u=0;u<i.length;u++){let[b,S,Z]=i[u],I={};S[Z]=I;for(let R in b){if(!Object.prototype.hasOwnProperty.call(b,R)||R==="parent"||R==="proxyCache")continue;let y=b[R];if(Array.isArray(y)){let g=[];I[R]=g;for(let V=0;V<y.length;V++){let v=y[V];typeof v=="object"&&v.toJSON?v.toJSON===f.prototype.toJSON?i.push([v,g,V]):g[V]=v.toJSON(null,p):g[V]=v}}else if(typeof y=="object"&&y.toJSON)y.toJSON===f.prototype.toJSON?i.push([y,I,R]):I[R]=y.toJSON(null,p);else if(R==="source"){if(y==null)continue;let g=p.get(y.input);g==null&&(g=p.size,p.set(y.input,g)),I[R]={end:y.end,inputId:g,start:y.start}}else I[R]=y}}let c=a[0];return o&&(c.inputs=[...p.keys()].map(u=>u.toJSON())),c}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(h=s){h.stringify&&(h=h.stringify);let p="";return h(this,o=>{p+=o}),p}warn(h,p,o={}){let a={node:this};for(let i in o)a[i]=o[i];return h.warn(p,a)}}return Tn=f,f.default=f,Tn}var Ln,Mo;function Ws(){if(Mo)return Ln;Mo=1;let e=vs();class t extends e{constructor(n){super(n),this.type="comment"}}return Ln=t,t.default=t,Ln}var Nn,Oo;function ws(){if(Oo)return Nn;Oo=1;let e=vs();class t extends e{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(n){n&&typeof n.value<"u"&&typeof n.value!="string"&&(n=Xe(H({},n),{value:String(n.value)})),super(n),this.type="decl"}}return Nn=t,t.default=t,Nn}var Jn,Ko;function $e(){if(Ko)return Jn;Ko=1;let e=Ws(),t=ws(),s=vs(),{isClean:n,my:r}=Rs(),l,d,f,m;function h(a){let i=a.slice();for(;i.length>0;){let c=i.pop();if(delete c.source,c.nodes){c.nodes=c.nodes.slice();for(let u of c.nodes)i.push(u)}}return a.slice()}function p(a){let i=[a];for(;i.length>0;){let c=i.pop();if(c[n]=!1,c.proxyOf.nodes)for(let u of c.proxyOf.nodes)i.push(u)}}class o extends s{get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}append(...i){for(let c of i){let u=this.normalize(c,this.last);for(let b of u)this.proxyOf.nodes.push(b)}return this.markDirty(),this}cleanRaws(i){let c=[this];for(;c.length>0;){let u=c.pop();if(u!==this&&u.cleanRaws!==o.prototype.cleanRaws){u.cleanRaws(i);continue}if(s.prototype.cleanRaws.call(u,i),u.nodes)for(let b of u.nodes)c.push(b)}}each(i){if(!this.proxyOf.nodes)return;let c=this.getIterator(),u,b;for(;this.indexes[c]<this.proxyOf.nodes.length&&(u=this.indexes[c],b=i(this.proxyOf.nodes[u],u),b!==!1);)this.indexes[c]+=1;return delete this.indexes[c],b}every(i){return this.nodes.every(i)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let i=this.lastEach;return this.indexes[i]=0,i}getProxyProcessor(){return{get(i,c){return c==="proxyOf"?i:i[c]?c==="each"||typeof c=="string"&&c.startsWith("walk")?(...u)=>i[c](...u.map(b=>typeof b=="function"?(S,Z)=>b(S.toProxy(),Z):b)):c==="every"||c==="some"?u=>i[c]((b,...S)=>u(b.toProxy(),...S)):c==="root"?()=>i.root().toProxy():c==="nodes"?i.nodes.map(u=>u.toProxy()):c==="first"||c==="last"?i[c].toProxy():i[c]:i[c]},set(i,c,u){return i[c]===u||(i[c]=u,(c==="name"||c==="params"||c==="selector")&&i.markDirty()),!0}}}index(i){return typeof i=="number"?i:(i.proxyOf&&(i=i.proxyOf),this.proxyOf.nodes.indexOf(i))}insertAfter(i,c){let u=this.index(i),b=this.normalize(c,this.proxyOf.nodes[u]).reverse();u=this.index(i);for(let Z of b)this.proxyOf.nodes.splice(u+1,0,Z);let S;for(let Z in this.indexes)S=this.indexes[Z],u<S&&(this.indexes[Z]=S+b.length);return this.markDirty(),this}insertBefore(i,c){let u=this.index(i),b=u===0?"prepend":!1,S=this.normalize(c,this.proxyOf.nodes[u],b).reverse();u=this.index(i);for(let I of S)this.proxyOf.nodes.splice(u,0,I);let Z;for(let I in this.indexes)Z=this.indexes[I],u<=Z&&(this.indexes[I]=Z+S.length);return this.markDirty(),this}normalize(i,c){if(typeof i=="string")i=h(d(i).nodes);else if(typeof i>"u")i=[];else if(Array.isArray(i)){i=i.slice(0);for(let u of i)u.parent&&u.parent.removeChild(u,"ignore")}else if(i.type==="root"&&this.type!=="document"){i=i.nodes.slice(0);for(let u of i)u.parent&&u.parent.removeChild(u,"ignore")}else if(i.type)i=[i];else if(i.prop){if(typeof i.value>"u")throw new Error("Value field is missed in node creation");typeof i.value!="string"&&(i.value=String(i.value)),i=[new t(i)]}else if(i.selector||i.selectors)i=[new m(i)];else if(i.name)i=[new l(i)];else if(i.text)i=[new e(i)];else throw new Error("Unknown node type in node creation");return i.map(u=>(u[r]||o.rebuild(u),u=u.proxyOf,u.parent&&u.parent.removeChild(u),u[n]&&p(u),u.raws||(u.raws={}),typeof u.raws.before>"u"&&c&&typeof c.raws.before<"u"&&(u.raws.before=c.raws.before.replace(/\S/g,"")),u.parent=this.proxyOf,u))}prepend(...i){i=i.reverse();for(let c of i){let u=this.normalize(c,this.first,"prepend").reverse();for(let b of u)this.proxyOf.nodes.unshift(b);for(let b in this.indexes)this.indexes[b]=this.indexes[b]+u.length}return this.markDirty(),this}push(i){return i.parent=this,this.proxyOf.nodes.push(i),this}removeAll(){for(let i of this.proxyOf.nodes)i.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(i){i=this.index(i),this.proxyOf.nodes[i].parent=void 0,this.proxyOf.nodes.splice(i,1);let c;for(let u in this.indexes)c=this.indexes[u],c>=i&&(this.indexes[u]=c-1);return this.markDirty(),this}replaceValues(i,c,u){return u||(u=c,c={}),this.walkDecls(b=>{c.props&&!c.props.includes(b.prop)||c.fast&&!b.value.includes(c.fast)||(b.value=b.value.replace(i,u))}),this.markDirty(),this}some(i){return this.nodes.some(i)}walk(i){if(!this.proxyOf.nodes)return;let c=[{iterator:this.getIterator(),node:this.proxyOf}];for(;c.length>0;){let{iterator:u,node:b}=c[c.length-1],S=b.indexes[u];if(S>=b.proxyOf.nodes.length){delete b.indexes[u],c.pop();let R=c[c.length-1];R&&(R.node.indexes[R.iterator]+=1);continue}let Z=b.proxyOf.nodes[S],I;try{I=i(Z,S)}catch(R){throw Z.addToError(R)}if(I===!1){for(let R of c)delete R.node.indexes[R.iterator];return!1}Z.walk&&Z.proxyOf.nodes?c.push({iterator:Z.getIterator(),node:Z}):b.indexes[u]+=1}}walkAtRules(i,c){return c?i instanceof RegExp?this.walk((u,b)=>{if(u.type==="atrule"&&i.test(u.name))return c(u,b)}):this.walk((u,b)=>{if(u.type==="atrule"&&u.name===i)return c(u,b)}):(c=i,this.walk((u,b)=>{if(u.type==="atrule")return c(u,b)}))}walkComments(i){return this.walk((c,u)=>{if(c.type==="comment")return i(c,u)})}walkDecls(i,c){return c?i instanceof RegExp?this.walk((u,b)=>{if(u.type==="decl"&&i.test(u.prop))return c(u,b)}):this.walk((u,b)=>{if(u.type==="decl"&&u.prop===i)return c(u,b)}):(c=i,this.walk((u,b)=>{if(u.type==="decl")return c(u,b)}))}walkRules(i,c){return c?i instanceof RegExp?this.walk((u,b)=>{if(u.type==="rule"&&i.test(u.selector))return c(u,b)}):this.walk((u,b)=>{if(u.type==="rule"&&u.selector===i)return c(u,b)}):(c=i,this.walk((u,b)=>{if(u.type==="rule")return c(u,b)}))}}return o.registerParse=a=>{d=a},o.registerRule=a=>{m=a},o.registerAtRule=a=>{l=a},o.registerRoot=a=>{f=a},Jn=o,o.default=o,o.rebuild=a=>{let i=[a];for(;i.length>0;){let c=i.pop();if(c.type==="atrule"?Object.setPrototypeOf(c,l.prototype):c.type==="rule"?Object.setPrototypeOf(c,m.prototype):c.type==="decl"?Object.setPrototypeOf(c,t.prototype):c.type==="comment"?Object.setPrototypeOf(c,e.prototype):c.type==="root"&&Object.setPrototypeOf(c,f.prototype),c[r]=!0,c.nodes)for(let u of c.nodes)i.push(u)}},Jn}var Yn,Eo;function Un(){if(Eo)return Yn;Eo=1;let e=$e();class t extends e{constructor(n){super(n),this.type="atrule"}append(...n){return this.proxyOf.nodes||(this.nodes=[]),super.append(...n)}prepend(...n){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...n)}}return Yn=t,t.default=t,e.registerAtRule(t),Yn}var Fn,zo;function Mn(){if(zo)return Fn;zo=1;let e=$e(),t,s;class n extends e{constructor(l){super(H({type:"document"},l)),this.nodes||(this.nodes=[])}toResult(l={}){return new t(new s,this,l).stringify()}}return n.registerLazyResult=r=>{t=r},n.registerProcessor=r=>{s=r},Fn=n,n.default=n,Fn}var On,Po;function Mh(){if(Po)return On;Po=1;let e="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";return On={nanoid:(t=21)=>{let s="",n=t|0;for(;n-- >0;)s+=e[Math.random()*64|0];return s},customAlphabet:(t,s=21)=>(n=s)=>{let r="",l=n|0;for(;l-- >0;)r+=t[Math.random()*t.length|0];return r}},On}var Kn,Ho;function Do(){if(Ho)return Kn;Ho=1;let{existsSync:e,readFileSync:t,realpathSync:s}=Ke,{dirname:n,isAbsolute:r,join:l,relative:d,sep:f}=Ke,{SourceMapConsumer:m,SourceMapGenerator:h}=Ke;function p(i){try{return s(i)}catch{return i}}function o(i){return Buffer?Buffer.from(i,"base64").toString():window.atob(i)}class a{constructor(c,u){if(u.map===!1)return;u.unsafeMap&&(this.unsafeMap=!0),this.loadAnnotation(c),this.inline=this.startWith(this.annotation,"data:");let b=u.map?u.map.prev:void 0,S=this.loadMap(u.from,b);!this.mapFile&&u.from&&(this.mapFile=u.from),this.mapFile&&(this.root=n(this.mapFile)),S&&(this.text=S)}consumer(){return this.consumerCache||(this.consumerCache=new m(this.json||this.text)),this.consumerCache}decodeInline(c){let u=/^data:application\/json;charset=utf-?8;base64,/,b=/^data:application\/json;base64,/,S=/^data:application\/json;charset=utf-?8,/,Z=/^data:application\/json,/,I=c.match(S)||c.match(Z);if(I)return decodeURIComponent(c.substr(I[0].length));let R=c.match(u)||c.match(b);if(R)return o(c.substr(R[0].length));let y=c.slice(22);throw y=y.slice(0,y.indexOf(",")),new Error("Unsupported source map encoding "+y)}getAnnotationURL(c){return c.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(c){return typeof c!="object"?!1:typeof c.mappings=="string"||typeof c._mappings=="string"||Array.isArray(c.sections)}loadAnnotation(c){let u=c.match(/\/\*\s*# sourceMappingURL=/g);if(!u)return;let b=c.lastIndexOf(u.pop()),S=c.indexOf("*/",b);b>-1&&S>-1&&(this.annotation=this.getAnnotationURL(c.substring(b,S)))}loadFile(c,u,b){if(!b&&!this.unsafeMap){if(!/\.map$/i.test(c)||!u)return;let S=d(p(n(u)),p(c));if(S===".."||S.startsWith(".."+f)||r(S))return}if(this.root=n(c),e(c))return this.mapFile=c,t(c,"utf-8").toString().trim()}loadMap(c,u){if(u===!1)return!1;if(u){if(typeof u=="string")return u;if(typeof u=="function"){let b=u(c);if(b){let S=this.loadFile(b,c,!0);if(!S)throw new Error("Unable to load previous source map: "+b.toString());return S}}else{if(u instanceof m)return h.fromSourceMap(u).toString();if(u instanceof h)return u.toString();if(this.isMap(u))return JSON.stringify(u);throw new Error("Unsupported previous source map format: "+u.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let b=this.annotation;c&&(b=l(n(c),b));let S=this.loadFile(b,c,!1);if(S)try{this.json=JSON.parse(S.replace(/^\)]}'[^\n]*\n/,""))}catch{return}return S}}}startWith(c,u){return c?c.substr(0,u.length)===u:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}}return Kn=a,a.default=a,Kn}var En,Bo;function ks(){if(Bo)return En;Bo=1;let{nanoid:e}=Mh(),{isAbsolute:t,resolve:s}=Ke,{SourceMapConsumer:n,SourceMapGenerator:r}=Ke,{fileURLToPath:l,pathToFileURL:d}=Ke,f=wn(),m=Do(),h=Ke,p=Symbol("lineToIndexCache"),o=!!(n&&r),a=!!(s&&t);function i(u){if(u[p])return u[p];let b=u.css.split(`
308
+ `),S=new Array(b.length),Z=0;for(let I=0,R=b.length;I<R;I++)S[I]=Z,Z+=b[I].length+1;return u[p]=S,S}class c{get from(){return this.file||this.id}constructor(b,S={}){if(b===null||typeof b>"u"||typeof b=="object"&&!b.toString)throw new Error(`PostCSS received ${b} instead of CSS string`);if(this.css=b.toString(),this.css[0]==="\uFEFF"||this.css[0]==="￾"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,this.document=this.css,S.document&&(this.document=S.document.toString()),S.from&&(!a||/^\w+:\/\//.test(S.from)||t(S.from)?this.file=S.from:this.file=s(S.from)),a&&o){let Z=new m(this.css,S);if(Z.text){this.map=Z;let I=Z.consumer().file;!this.file&&I&&(this.file=this.mapResolve(I))}}this.file||(this.id="<input css "+e(6)+">"),this.map&&(this.map.file=this.from)}error(b,S,Z,I={}){let R,y,g,V,v;if(S&&typeof S=="object"){let W=S,k=Z;if(typeof W.offset=="number"){V=W.offset;let N=this.fromOffset(V);S=N.line,Z=N.col}else S=W.line,Z=W.column,V=this.fromLineAndColumn(S,Z);if(typeof k.offset=="number"){g=k.offset;let N=this.fromOffset(g);y=N.line,R=N.col}else y=k.line,R=k.column,g=this.fromLineAndColumn(k.line,k.column)}else if(Z)V=this.fromLineAndColumn(S,Z);else{V=S;let W=this.fromOffset(V);S=W.line,Z=W.col}let X=this.origin(S,Z,y,R);return X?v=new f(b,X.endLine===void 0?X.line:{column:X.column,line:X.line},X.endLine===void 0?X.column:{column:X.endColumn,line:X.endLine},X.source,X.file,I.plugin):v=new f(b,y===void 0?S:{column:Z,line:S},y===void 0?Z:{column:R,line:y},this.css,this.file,I.plugin),v.input={column:Z,endColumn:R,endLine:y,endOffset:g,line:S,offset:V,source:this.css},this.file&&(d&&(v.input.url=d(this.file).toString()),v.input.file=this.file),v}fromLineAndColumn(b,S){return i(this)[b-1]+S-1}fromOffset(b){let S=i(this),Z=S[S.length-1],I=0;if(b>=Z)I=S.length-1;else{let R=S.length-2,y;for(;I<R;)if(y=I+(R-I>>1),b<S[y])R=y-1;else if(b>=S[y+1])I=y+1;else{I=y;break}}return{col:b-S[I]+1,line:I+1}}mapResolve(b){return/^\w+:\/\//.test(b)?b:s(this.map.consumer().sourceRoot||this.map.root||".",b)}origin(b,S,Z,I){if(!this.map)return!1;let R=this.map.consumer(),y=R.originalPositionFor({column:S-1,line:b});if(!y.source)return!1;let g;if(typeof Z=="number"){let W=R.originalPositionFor({column:I-1,line:Z});W.source&&(g=W)}let V;t(y.source)?V=d(y.source):V=new URL(y.source,this.map.consumer().sourceRoot||d(this.map.mapFile));let v={column:y.column+1,endColumn:g&&g.column+1,endLine:g&&g.line,line:y.line,url:V.toString()};if(V.protocol==="file:")if(l)v.file=l(V);else throw new Error("file: protocol is not available in this PostCSS build");let X=R.sourceContentFor(y.source);return X&&(v.source=X),v}toJSON(){let b={};for(let S of["hasBOM","css","file","id"])this[S]!=null&&(b[S]=this[S]);return this.map&&(b.map=H({},this.map),b.map.consumerCache&&(b.map.consumerCache=void 0)),b}}return En=c,c.default=c,h&&h.registerInput&&h.registerInput(c),En}var zn,Qo;function Ft(){if(Qo)return zn;Qo=1;let e=$e(),t,s;class n extends e{constructor(l){super(l),this.type="root",this.nodes||(this.nodes=[])}normalize(l,d,f){let m=new Set;for(let p of Array.isArray(l)?l:[l])p&&typeof p=="object"&&!p.parent&&p.raws&&typeof p.raws.before<"u"&&m.add(p.raws);let h=super.normalize(l);if(d){if(f==="prepend")this.nodes.length>1?d.raws.before=this.nodes[1].raws.before:delete d.raws.before;else if(this.first!==d)for(let p of h)m.has(p.raws)||(p.raws.before=d.raws.before)}return h}removeChild(l,d){let f=this.index(l);return!d&&f===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[f].raws.before),super.removeChild(l)}toResult(l={}){return new t(new s,this,l).stringify()}}return n.registerLazyResult=r=>{t=r},n.registerProcessor=r=>{s=r},zn=n,n.default=n,e.registerRoot(n),zn}var Pn,jo;function Ao(){if(jo)return Pn;jo=1;let e={comma(t){return e.split(t,[","],!0)},space(t){let s=[" ",`
309
+ `," "];return e.split(t,s)},split(t,s,n){if(typeof t!="string")return[];let r=[],l="",d=!1,f=0,m=!1,h="",p=!1;for(let o of t)p?p=!1:o==="\\"?p=!0:m?o===h&&(m=!1):o==='"'||o==="'"?(m=!0,h=o):o==="("?f+=1:o===")"?f>0&&(f-=1):f===0&&s.includes(o)&&(d=!0),d?(l!==""&&r.push(l.trim()),l="",d=!1):l+=o;return(n||l!=="")&&r.push(l.trim()),r}};return Pn=e,e.default=e,Pn}var Hn,_o;function Dn(){if(_o)return Hn;_o=1;let e=$e(),t=Ao();class s extends e{get selectors(){return t.comma(this.selector)}set selectors(r){let l=this.selector?this.selector.match(/,\s*/):null,d=l?l[0]:","+this.raw("between","beforeOpen");this.selector=r.join(d)}constructor(r){super(r),this.type="rule",this.nodes||(this.nodes=[])}}return Hn=s,s.default=s,e.registerRule(s),Hn}var Bn,$o;function Oh(){if($o)return Bn;$o=1;let e=Un(),t=Ws(),s=ws(),n=ks(),r=Do(),l=Ft(),d=Dn();function f(p,o){return p.inputs?p.inputs.map(a=>{let i=Xe(H({},a),{__proto__:n.prototype});return i.map&&(i.map=Xe(H({},i.map),{__proto__:r.prototype})),i}):o}function m(p,o,a){let i=H({},p);if(delete i.inputs,delete i.nodes,i.source){let u=i.source,{inputId:b}=u,S=ms(u,["inputId"]);i.source=S,b!=null&&(i.source.input=o[b])}let c;if(i.type==="root")c=new l(i);else if(i.type==="decl")c=new s(i);else if(i.type==="rule")c=new d(i);else if(i.type==="comment")c=new t(i);else if(i.type==="atrule")c=new e(i);else throw new Error("Unknown node type: "+p.type);if(a){c.nodes=a;for(let u of a)u.parent=c}return c}function h(p,o){if(Array.isArray(p))return p.map(c=>h(c));let a,i=[{childIndex:0,children:[],inputs:f(p,o),json:p}];for(;i.length>0;){let c=i[i.length-1],u=c.json.nodes;if(u&&c.childIndex<u.length){let S=u[c.childIndex];c.childIndex+=1,i.push({childIndex:0,children:[],inputs:f(S,c.inputs),json:S});continue}i.pop();let b=m(c.json,c.inputs,u?c.children:void 0);i.length>0?i[i.length-1].children.push(b):a=b}return a}return Bn=h,h.default=h,Bn}var Qn,qo;function el(){if(qo)return Qn;qo=1;let{dirname:e,relative:t,resolve:s,sep:n}=Ke,{SourceMapConsumer:r,SourceMapGenerator:l}=Ke,{pathToFileURL:d}=Ke,f=ks(),m=!!(r&&l),h=!!(e&&s&&t&&n);class p{constructor(a,i,c,u){this.stringify=a,this.mapOpts=c.map||{},this.root=i,this.opts=c,this.css=u,this.originalCSS=u,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let a;this.isInline()?a="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?a=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?a=this.mapOpts.annotation(this.opts.to,this.root):a=this.outputFile()+".map";let i=`
310
310
  `;this.css.includes(`\r
311
311
  `)&&(i=`\r
312
312
  `),this.css+=i+"/*# sourceMappingURL="+a+" */"}applyPrevMaps(){for(let a of this.previous()){let i=this.toUrl(this.path(a.file)),c=a.root||e(a.file),u;this.mapOpts.sourcesContent===!1?(u=new r(a.text),u.sourcesContent&&(u.sourcesContent=null)):u=a.consumer(),this.map.applySourceMap(u,i,this.toUrl(this.path(c)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1){if(this.root){let a;for(let i=this.root.nodes.length-1;i>=0;i--)a=this.root.nodes[i],a.type==="comment"&&a.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(i)}else if(this.css){let a;for(;(a=this.css.lastIndexOf("/*#"))!==-1;){let i=this.css.indexOf("*/",a+3);if(i===-1)break;for(;a>0&&this.css[a-1]===`
313
313
  `;)a--;this.css=this.css.slice(0,a)+this.css.slice(i+2)}}}}generate(){if(this.clearAnnotation(),h&&m&&this.isMap())return this.generateMap();{let a="";return this.stringify(this.root,i=>{a+=i}),[a]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let a=this.previous()[0].consumer();a.file=this.outputFile(),this.map=l.fromSourceMap(a,{ignoreInvalidMapping:!0})}else this.map=new l({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>"});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new l({file:this.outputFile(),ignoreInvalidMapping:!0});let a=1,i=1,c="<no source>",u={generated:{column:0,line:0},original:{column:0,line:0},source:""},b,S;this.stringify(this.root,(Z,I,R)=>{if(this.css+=Z,I&&R!=="end"&&(u.generated.line=a,u.generated.column=i-1,I.source&&I.source.start?(u.source=this.sourcePath(I),u.original.line=I.source.start.line,u.original.column=I.source.start.column-1,this.map.addMapping(u)):(u.source=c,u.original.line=1,u.original.column=0,this.map.addMapping(u))),S=Z.match(/\n/g),S?(a+=S.length,b=Z.lastIndexOf(`
314
- `),i=Z.length-b):i+=Z.length,I&&R!=="start"){let y=I.parent||{raws:{}};(!(I.type==="decl"||I.type==="atrule"&&!I.nodes)||I!==y.last||y.raws.semicolon)&&(I.source&&I.source.end?(u.source=this.sourcePath(I),u.original.line=I.source.end.line,u.original.column=I.source.end.column-1,u.generated.line=a,u.generated.column=i-2,this.map.addMapping(u)):(u.source=c,u.original.line=1,u.original.column=0,u.generated.line=a,u.generated.column=i-1,this.map.addMapping(u)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(a=>a.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let a=this.mapOpts.annotation;return typeof a<"u"&&a!==!0?!1:this.previous().length?this.previous().some(i=>i.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(a=>a.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(a){if(this.mapOpts.absolute||a.charCodeAt(0)===60||/^\w+:\/\//.test(a))return a;let i=this.memoizedPaths.get(a);if(i)return i;let c=this.opts.to?e(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(c=e(s(c,this.mapOpts.annotation)));let u=t(c,a);return this.memoizedPaths.set(a,u),u}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(a=>{if(a.source&&a.source.input.map){let i=a.source.input.map;this.previousMaps.includes(i)||this.previousMaps.push(i)}});else{let a=new f(this.originalCSS,this.opts);a.map&&this.previousMaps.push(a.map)}return this.previousMaps}setSourcesContent(){let a={};if(this.root)this.root.walk(i=>{if(i.source){let c=i.source.input.from;if(c&&!a[c]){a[c]=!0;let u=this.usesFileUrls?this.toFileUrl(c):this.toUrl(this.path(c));this.map.setSourceContent(u,i.source.input.css)}}});else if(this.css){let i=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(i,this.css)}}sourcePath(a){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(a.source.input.from):this.toUrl(this.path(a.source.input.from))}toBase64(a){return Buffer?Buffer.from(a).toString("base64"):window.btoa(unescape(encodeURIComponent(a)))}toFileUrl(a){let i=this.memoizedFileURLs.get(a);if(i)return i;if(d){let c=d(a).toString();return this.memoizedFileURLs.set(a,c),c}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(a){let i=this.memoizedURLs.get(a);if(i)return i;n==="\\"&&(a=a.replace(/\\/g,"/"));let c=encodeURI(a).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(a,c),c}}return Bn=p,Bn}var Qn,qo;function Oh(){if(qo)return Qn;qo=1;const e=39,t=34,s=92,n=47,r=10,l=32,d=12,f=9,m=13,h=91,p=93,o=40,a=41,i=123,c=125,u=59,b=42,S=58,Z=64,I=/[\t\n\f\r "#'()/;[\\\]{}]/g,R=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,y=/.[\r\n"'(/\\]/,g=/[\da-f]/i;return Qn=function(V,v={}){let X=V.css.valueOf(),W=v.ignoreErrors,k,N,j,G,w,T,Y,M,J,q,B=X.length,C=0,oe=[],ue=[],le=-1;function Se(){return C}function U(E){throw V.error("Unclosed "+E,C)}function K(){return ue.length===0&&C>=B}function O(E){if(ue.length)return ue.pop();if(C>=B)return;let D=E?E.ignoreUnclosed:!1;switch(k=X.charCodeAt(C),k){case r:case l:case f:case m:case d:{G=C;do G+=1,k=X.charCodeAt(G);while(k===l||k===r||k===f||k===m||k===d);T=["space",X.slice(C,G)],C=G-1;break}case h:case p:case i:case c:case S:case u:case a:{let _=String.fromCharCode(k);T=[_,_,C];break}case o:{if(q=oe.length?oe.pop()[1]:"",J=X.charCodeAt(C+1),q==="url"&&J!==e&&J!==t&&J!==l&&J!==r&&J!==f&&J!==d&&J!==m){G=C;do{if(Y=!1,G=X.indexOf(")",G+1),G===-1)if(W||D){G=C;break}else U("bracket");for(M=G;X.charCodeAt(M-1)===s;)M-=1,Y=!Y}while(Y);T=["brackets",X.slice(C,G+1),C,G],C=G}else C<=le?T=["(","(",C]:(G=X.indexOf(")",C+1),N=X.slice(C,G+1),G===-1||y.test(N)?(le=G===-1?B:G,T=["(","(",C]):(T=["brackets",N,C,G],C=G));break}case e:case t:{w=k===e?"'":'"',G=C;do{if(Y=!1,G=X.indexOf(w,G+1),G===-1)if(W||D){G=C+1;break}else U("string");for(M=G;X.charCodeAt(M-1)===s;)M-=1,Y=!Y}while(Y);T=["string",X.slice(C,G+1),C,G],C=G;break}case Z:{I.lastIndex=C+1,I.test(X),I.lastIndex===0?G=X.length-1:G=I.lastIndex-2,T=["at-word",X.slice(C,G+1),C,G],C=G;break}case s:{for(G=C,j=!0;X.charCodeAt(G+1)===s;)G+=1,j=!j;if(k=X.charCodeAt(G+1),j&&k!==n&&k!==l&&k!==r&&k!==f&&k!==m&&k!==d&&(G+=1,g.test(X.charAt(G)))){for(;g.test(X.charAt(G+1));)G+=1;X.charCodeAt(G+1)===l&&(G+=1)}T=["word",X.slice(C,G+1),C,G],C=G;break}default:{k===n&&X.charCodeAt(C+1)===b?(G=X.indexOf("*/",C+2)+1,G===0&&(W||D?G=X.length:U("comment")),T=["comment",X.slice(C,G+1),C,G],C=G):(R.lastIndex=C+1,R.test(X),R.lastIndex===0?G=X.length-1:G=R.lastIndex-2,T=["word",X.slice(C,G+1),C,G],oe.push(T),C=G);break}}return C++,T}function z(E){ue.push(E)}return{back:z,endOfFile:K,nextToken:O,position:Se}},Qn}var jn,el;function Mh(){if(el)return jn;el=1;let e=Yn(),t=Ws(),s=ws(),n=Ft(),r=Hn(),l=Oh();const d={empty:!0,space:!0};function f(p){for(let o=p.length-1;o>=0;o--){let a=p[o],i=a[3]||a[2];if(i)return i}}function m(p,o,a){let i="";for(let c=o;c<a;c++)i+=p[c][1];return i}class h{constructor(o){this.input=o,this.root=new n,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:o,start:{column:1,line:1,offset:0}}}atrule(o){let a=new e;a.name=o[1].slice(1),a.name===""&&this.unnamedAtrule(a,o),this.init(a,o[2]);let i,c,u,b=!1,S=!1,Z=[],I=[];for(;!this.tokenizer.endOfFile();){if(o=this.tokenizer.nextToken(),i=o[0],i==="("||i==="["?I.push(i==="("?")":"]"):i==="{"&&I.length>0?I.push("}"):i===I[I.length-1]&&I.pop(),I.length===0)if(i===";"){a.source.end=this.getPosition(o[2]),a.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){S=!0;break}else if(i==="}"){if(Z.length>0){for(u=Z.length-1,c=Z[u];c&&c[0]==="space";)c=Z[--u];c&&(a.source.end=this.getPosition(c[3]||c[2]),a.source.end.offset++)}this.end(o);break}else Z.push(o);else Z.push(o);if(this.tokenizer.endOfFile()){b=!0;break}}a.raws.between=this.spacesAndCommentsFromEnd(Z),Z.length?(a.raws.afterName=this.spacesAndCommentsFromStart(Z),this.raw(a,"params",Z),b&&(o=Z[Z.length-1],a.source.end=this.getPosition(o[3]||o[2]),a.source.end.offset++,this.spaces=a.raws.between,a.raws.between="")):(a.raws.afterName="",a.params=""),S&&(a.nodes=[],this.current=a)}checkMissedSemicolon(o){let a=this.colon(o);if(a===!1)return;let i=0,c;for(let u=a-1;u>=0&&(c=o[u],!(c[0]!=="space"&&(i+=1,i===2)));u--);throw this.input.error("Missed semicolon",c[0]==="word"?c[3]+1:c[2])}colon(o){let a=0,i,c,u;for(let[b,S]of o.entries()){if(c=S,u=c[0],u==="("&&(a+=1),u===")"&&(a-=1),a===0&&u===":")if(!i)this.doubleColon(c);else{if(i[0]==="word"&&i[1]==="progid")continue;return b}i=c}return!1}comment(o){let a=new t;this.init(a,o[2]),a.source.end=this.getPosition(o[3]||o[2]),a.source.end.offset++;let i=o[1].slice(2,-2);if(!i.trim())a.text="",a.raws.left=i,a.raws.right="";else{let c=i.match(/^(\s*)([^]*\S)(\s*)$/);a.text=c[2],a.raws.left=c[1],a.raws.right=c[3]}}createTokenizer(){this.tokenizer=l(this.input)}decl(o,a){let i=new s;this.init(i,o[0][2]);let c=o[o.length-1];c[0]===";"&&(this.semicolon=!0,o.pop()),i.source.end=this.getPosition(c[3]||c[2]||f(o)),i.source.end.offset++;let u=0;for(;o[u][0]!=="word";)u===o.length-1&&this.unknownWord([o[u]]),u++;i.raws.before+=m(o,0,u),i.source.start=this.getPosition(o[u][2]);let b=u;for(;u<o.length;){let y=o[u][0];if(y===":"||y==="space"||y==="comment")break;u++}i.prop=m(o,b,u);let S=u,Z;for(;u<o.length&&(Z=o[u],u++,Z[0]!==":");)Z[0]==="word"&&/\w/.test(Z[1])&&this.unknownWord([Z]);i.raws.between=m(o,S,u),(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let I=u;for(;u<o.length;){let y=o[u][0];if(y!=="space"&&y!=="comment")break;u++}let R=o.slice(I,u);o=o.slice(u),this.precheckMissedSemicolon(o);for(let y=o.length-1;y>=0;y--){if(Z=o[y],Z[1].toLowerCase()==="!important"){i.important=!0;let g=this.stringFrom(o,y);g=this.spacesFromEnd(o)+g,g!==" !important"&&(i.raws.important=g);break}else if(Z[1].toLowerCase()==="important"){let g=o.slice(0),V="";for(let v=y;v>0;v--){let X=g[v][0];if(V.trim().startsWith("!")&&X!=="space")break;V=g.pop()[1]+V}V.trim().startsWith("!")&&(i.important=!0,i.raws.important=V,o=g)}if(Z[0]!=="space"&&Z[0]!=="comment")break}o.some(y=>y[0]!=="space"&&y[0]!=="comment")&&(i.raws.between+=R.map(y=>y[1]).join(""),R=[]),this.raw(i,"value",R.concat(o),a),i.value.includes(":")&&!a&&this.checkMissedSemicolon(o)}doubleColon(o){throw this.input.error("Double colon",{offset:o[2]},{offset:o[2]+o[1].length})}emptyRule(o){let a=new r;this.init(a,o[2]),a.selector="",a.raws.between="",this.current=a}end(o){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(o[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(o)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(o){if(this.spaces+=o[1],this.current.nodes){let a=this.current.nodes[this.current.nodes.length-1];a&&a.type==="rule"&&!a.raws.ownSemicolon&&(a.raws.ownSemicolon=this.spaces,this.spaces="",a.source.end=this.getPosition(o[2]),a.source.end.offset+=a.raws.ownSemicolon.length)}}getPosition(o){let a=this.input.fromOffset(o);return{column:a.col,line:a.line,offset:o}}init(o,a){this.current.push(o),o.source={input:this.input,start:this.getPosition(a)},o.raws.before=this.spaces,this.spaces="",o.type!=="comment"&&(this.semicolon=!1)}other(o){let a=!1,i=null,c=!1,u=null,b=[],S=o[1].startsWith("--"),Z=[],I=o;for(;I;){if(i=I[0],Z.push(I),i==="("||i==="[")u||(u=I),b.push(i==="("?")":"]");else if(S&&c&&i==="{")u||(u=I),b.push("}");else if(b.length===0)if(i===";")if(c){this.decl(Z,S);return}else break;else if(i==="{"){this.rule(Z);return}else if(i==="}"){this.tokenizer.back(Z.pop()),a=!0;break}else i===":"&&(c=!0);else i===b[b.length-1]&&(b.pop(),b.length===0&&(u=null));I=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(a=!0),b.length>0&&this.unclosedBracket(u),a&&c){if(!S)for(;Z.length&&(I=Z[Z.length-1][0],!(I!=="space"&&I!=="comment"));)this.tokenizer.back(Z.pop());this.decl(Z,S)}else this.unknownWord(Z)}parse(){let o;for(;!this.tokenizer.endOfFile();)switch(o=this.tokenizer.nextToken(),o[0]){case"space":this.spaces+=o[1];break;case";":this.freeSemicolon(o);break;case"}":this.end(o);break;case"comment":this.comment(o);break;case"at-word":this.atrule(o);break;case"{":this.emptyRule(o);break;default:this.other(o);break}this.endFile()}precheckMissedSemicolon(){}raw(o,a,i,c){let u,b,S=i.length,Z="",I=!0,R,y;for(let g=0;g<S;g+=1)u=i[g],b=u[0],b==="space"&&g===S-1&&!c?I=!1:b==="comment"?(y=i[g-1]?i[g-1][0]:"empty",R=i[g+1]?i[g+1][0]:"empty",!d[y]&&!d[R]?Z.slice(-1)===","?I=!1:Z+=u[1]:I=!1):Z+=u[1];if(!I){let g=i.reduce((V,v)=>V+v[1],"");o.raws[a]={raw:g,value:Z}}o[a]=Z}rule(o){o.pop();let a=new r;this.init(a,o[0][2]),a.raws.between=this.spacesAndCommentsFromEnd(o),this.raw(a,"selector",o),this.current=a}spacesAndCommentsFromEnd(o){let a,i="";for(;o.length&&(a=o[o.length-1][0],!(a!=="space"&&a!=="comment"));)i=o.pop()[1]+i;return i}spacesAndCommentsFromStart(o){let a,i="";for(;o.length&&(a=o[0][0],!(a!=="space"&&a!=="comment"));)i+=o.shift()[1];return i}spacesFromEnd(o){let a,i="";for(;o.length&&(a=o[o.length-1][0],a==="space");)i=o.pop()[1]+i;return i}stringFrom(o,a){let i="";for(let c=a;c<o.length;c++)i+=o[c][1];return o.splice(a,o.length-a),i}unclosedBlock(){let o=this.current.source.start;throw this.input.error("Unclosed block",o.line,o.column)}unclosedBracket(o){throw this.input.error("Unclosed bracket",{offset:o[2]},{offset:o[2]+1})}unexpectedClose(o){throw this.input.error("Unexpected }",{offset:o[2]},{offset:o[2]+1})}unknownWord(o){throw this.input.error("Unknown word "+o[0][1],{offset:o[0][2]},{offset:o[0][2]+o[0][1].length})}unnamedAtrule(o,a){throw this.input.error("At-rule without name",{offset:a[2]},{offset:a[2]+a[1].length})}}return jn=h,jn}var An,tl;function _n(){if(tl)return An;tl=1;let e=$e(),t=ks(),s=Mh();function n(r,l){let d=new t(r,l),f=new s(d);try{f.parse()}catch(m){throw process.env.NODE_ENV!=="production"&&m.name==="CssSyntaxError"&&l&&l.from&&(/\.scss$/i.test(l.from)?m.message+=`
314
+ `),i=Z.length-b):i+=Z.length,I&&R!=="start"){let y=I.parent||{raws:{}};(!(I.type==="decl"||I.type==="atrule"&&!I.nodes)||I!==y.last||y.raws.semicolon)&&(I.source&&I.source.end?(u.source=this.sourcePath(I),u.original.line=I.source.end.line,u.original.column=I.source.end.column-1,u.generated.line=a,u.generated.column=i-2,this.map.addMapping(u)):(u.source=c,u.original.line=1,u.original.column=0,u.generated.line=a,u.generated.column=i-1,this.map.addMapping(u)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(a=>a.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let a=this.mapOpts.annotation;return typeof a<"u"&&a!==!0?!1:this.previous().length?this.previous().some(i=>i.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(a=>a.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(a){if(this.mapOpts.absolute||a.charCodeAt(0)===60||/^\w+:\/\//.test(a))return a;let i=this.memoizedPaths.get(a);if(i)return i;let c=this.opts.to?e(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(c=e(s(c,this.mapOpts.annotation)));let u=t(c,a);return this.memoizedPaths.set(a,u),u}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(a=>{if(a.source&&a.source.input.map){let i=a.source.input.map;this.previousMaps.includes(i)||this.previousMaps.push(i)}});else{let a=new f(this.originalCSS,this.opts);a.map&&this.previousMaps.push(a.map)}return this.previousMaps}setSourcesContent(){let a={};if(this.root)this.root.walk(i=>{if(i.source){let c=i.source.input.from;if(c&&!a[c]){a[c]=!0;let u=this.usesFileUrls?this.toFileUrl(c):this.toUrl(this.path(c));this.map.setSourceContent(u,i.source.input.css)}}});else if(this.css){let i=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(i,this.css)}}sourcePath(a){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(a.source.input.from):this.toUrl(this.path(a.source.input.from))}toBase64(a){return Buffer?Buffer.from(a).toString("base64"):window.btoa(unescape(encodeURIComponent(a)))}toFileUrl(a){let i=this.memoizedFileURLs.get(a);if(i)return i;if(d){let c=d(a).toString();return this.memoizedFileURLs.set(a,c),c}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(a){let i=this.memoizedURLs.get(a);if(i)return i;n==="\\"&&(a=a.replace(/\\/g,"/"));let c=encodeURI(a).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(a,c),c}}return Qn=p,Qn}var jn,tl;function Kh(){if(tl)return jn;tl=1;const e=39,t=34,s=92,n=47,r=10,l=32,d=12,f=9,m=13,h=91,p=93,o=40,a=41,i=123,c=125,u=59,b=42,S=58,Z=64,I=/[\t\n\f\r "#'()/;[\\\]{}]/g,R=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,y=/.[\r\n"'(/\\]/,g=/[\da-f]/i;return jn=function(V,v={}){let X=V.css.valueOf(),W=v.ignoreErrors,k,N,j,G,w,T,Y,O,J,q,B=X.length,C=0,oe=[],ue=[],le=-1;function Se(){return C}function U(E){throw V.error("Unclosed "+E,C)}function K(){return ue.length===0&&C>=B}function M(E){if(ue.length)return ue.pop();if(C>=B)return;let D=E?E.ignoreUnclosed:!1;switch(k=X.charCodeAt(C),k){case r:case l:case f:case m:case d:{G=C;do G+=1,k=X.charCodeAt(G);while(k===l||k===r||k===f||k===m||k===d);T=["space",X.slice(C,G)],C=G-1;break}case h:case p:case i:case c:case S:case u:case a:{let _=String.fromCharCode(k);T=[_,_,C];break}case o:{if(q=oe.length?oe.pop()[1]:"",J=X.charCodeAt(C+1),q==="url"&&J!==e&&J!==t&&J!==l&&J!==r&&J!==f&&J!==d&&J!==m){G=C;do{if(Y=!1,G=X.indexOf(")",G+1),G===-1)if(W||D){G=C;break}else U("bracket");for(O=G;X.charCodeAt(O-1)===s;)O-=1,Y=!Y}while(Y);T=["brackets",X.slice(C,G+1),C,G],C=G}else C<=le?T=["(","(",C]:(G=X.indexOf(")",C+1),N=X.slice(C,G+1),G===-1||y.test(N)?(le=G===-1?B:G,T=["(","(",C]):(T=["brackets",N,C,G],C=G));break}case e:case t:{w=k===e?"'":'"',G=C;do{if(Y=!1,G=X.indexOf(w,G+1),G===-1)if(W||D){G=C+1;break}else U("string");for(O=G;X.charCodeAt(O-1)===s;)O-=1,Y=!Y}while(Y);T=["string",X.slice(C,G+1),C,G],C=G;break}case Z:{I.lastIndex=C+1,I.test(X),I.lastIndex===0?G=X.length-1:G=I.lastIndex-2,T=["at-word",X.slice(C,G+1),C,G],C=G;break}case s:{for(G=C,j=!0;X.charCodeAt(G+1)===s;)G+=1,j=!j;if(k=X.charCodeAt(G+1),j&&k!==n&&k!==l&&k!==r&&k!==f&&k!==m&&k!==d&&(G+=1,g.test(X.charAt(G)))){for(;g.test(X.charAt(G+1));)G+=1;X.charCodeAt(G+1)===l&&(G+=1)}T=["word",X.slice(C,G+1),C,G],C=G;break}default:{k===n&&X.charCodeAt(C+1)===b?(G=X.indexOf("*/",C+2)+1,G===0&&(W||D?G=X.length:U("comment")),T=["comment",X.slice(C,G+1),C,G],C=G):(R.lastIndex=C+1,R.test(X),R.lastIndex===0?G=X.length-1:G=R.lastIndex-2,T=["word",X.slice(C,G+1),C,G],oe.push(T),C=G);break}}return C++,T}function z(E){ue.push(E)}return{back:z,endOfFile:K,nextToken:M,position:Se}},jn}var An,sl;function Eh(){if(sl)return An;sl=1;let e=Un(),t=Ws(),s=ws(),n=Ft(),r=Dn(),l=Kh();const d={empty:!0,space:!0};function f(p){for(let o=p.length-1;o>=0;o--){let a=p[o],i=a[3]||a[2];if(i)return i}}function m(p,o,a){let i="";for(let c=o;c<a;c++)i+=p[c][1];return i}class h{constructor(o){this.input=o,this.root=new n,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:o,start:{column:1,line:1,offset:0}}}atrule(o){let a=new e;a.name=o[1].slice(1),a.name===""&&this.unnamedAtrule(a,o),this.init(a,o[2]);let i,c,u,b=!1,S=!1,Z=[],I=[];for(;!this.tokenizer.endOfFile();){if(o=this.tokenizer.nextToken(),i=o[0],i==="("||i==="["?I.push(i==="("?")":"]"):i==="{"&&I.length>0?I.push("}"):i===I[I.length-1]&&I.pop(),I.length===0)if(i===";"){a.source.end=this.getPosition(o[2]),a.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){S=!0;break}else if(i==="}"){if(Z.length>0){for(u=Z.length-1,c=Z[u];c&&c[0]==="space";)c=Z[--u];c&&(a.source.end=this.getPosition(c[3]||c[2]),a.source.end.offset++)}this.end(o);break}else Z.push(o);else Z.push(o);if(this.tokenizer.endOfFile()){b=!0;break}}a.raws.between=this.spacesAndCommentsFromEnd(Z),Z.length?(a.raws.afterName=this.spacesAndCommentsFromStart(Z),this.raw(a,"params",Z),b&&(o=Z[Z.length-1],a.source.end=this.getPosition(o[3]||o[2]),a.source.end.offset++,this.spaces=a.raws.between,a.raws.between="")):(a.raws.afterName="",a.params=""),S&&(a.nodes=[],this.current=a)}checkMissedSemicolon(o){let a=this.colon(o);if(a===!1)return;let i=0,c;for(let u=a-1;u>=0&&(c=o[u],!(c[0]!=="space"&&(i+=1,i===2)));u--);throw this.input.error("Missed semicolon",c[0]==="word"?c[3]+1:c[2])}colon(o){let a=0,i,c,u;for(let[b,S]of o.entries()){if(c=S,u=c[0],u==="("&&(a+=1),u===")"&&(a-=1),a===0&&u===":")if(!i)this.doubleColon(c);else{if(i[0]==="word"&&i[1]==="progid")continue;return b}i=c}return!1}comment(o){let a=new t;this.init(a,o[2]),a.source.end=this.getPosition(o[3]||o[2]),a.source.end.offset++;let i=o[1].slice(2,-2);if(!i.trim())a.text="",a.raws.left=i,a.raws.right="";else{let c=i.match(/^(\s*)([^]*\S)(\s*)$/);a.text=c[2],a.raws.left=c[1],a.raws.right=c[3]}}createTokenizer(){this.tokenizer=l(this.input)}decl(o,a){let i=new s;this.init(i,o[0][2]);let c=o[o.length-1];c[0]===";"&&(this.semicolon=!0,o.pop()),i.source.end=this.getPosition(c[3]||c[2]||f(o)),i.source.end.offset++;let u=0;for(;o[u][0]!=="word";)u===o.length-1&&this.unknownWord([o[u]]),u++;i.raws.before+=m(o,0,u),i.source.start=this.getPosition(o[u][2]);let b=u;for(;u<o.length;){let y=o[u][0];if(y===":"||y==="space"||y==="comment")break;u++}i.prop=m(o,b,u);let S=u,Z;for(;u<o.length&&(Z=o[u],u++,Z[0]!==":");)Z[0]==="word"&&/\w/.test(Z[1])&&this.unknownWord([Z]);i.raws.between=m(o,S,u),(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let I=u;for(;u<o.length;){let y=o[u][0];if(y!=="space"&&y!=="comment")break;u++}let R=o.slice(I,u);o=o.slice(u),this.precheckMissedSemicolon(o);for(let y=o.length-1;y>=0;y--){if(Z=o[y],Z[1].toLowerCase()==="!important"){i.important=!0;let g=this.stringFrom(o,y);g=this.spacesFromEnd(o)+g,g!==" !important"&&(i.raws.important=g);break}else if(Z[1].toLowerCase()==="important"){let g=o.slice(0),V="";for(let v=y;v>0;v--){let X=g[v][0];if(V.trim().startsWith("!")&&X!=="space")break;V=g.pop()[1]+V}V.trim().startsWith("!")&&(i.important=!0,i.raws.important=V,o=g)}if(Z[0]!=="space"&&Z[0]!=="comment")break}o.some(y=>y[0]!=="space"&&y[0]!=="comment")&&(i.raws.between+=R.map(y=>y[1]).join(""),R=[]),this.raw(i,"value",R.concat(o),a),i.value.includes(":")&&!a&&this.checkMissedSemicolon(o)}doubleColon(o){throw this.input.error("Double colon",{offset:o[2]},{offset:o[2]+o[1].length})}emptyRule(o){let a=new r;this.init(a,o[2]),a.selector="",a.raws.between="",this.current=a}end(o){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(o[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(o)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(o){if(this.spaces+=o[1],this.current.nodes){let a=this.current.nodes[this.current.nodes.length-1];a&&a.type==="rule"&&!a.raws.ownSemicolon&&(a.raws.ownSemicolon=this.spaces,this.spaces="",a.source.end=this.getPosition(o[2]),a.source.end.offset+=a.raws.ownSemicolon.length)}}getPosition(o){let a=this.input.fromOffset(o);return{column:a.col,line:a.line,offset:o}}init(o,a){this.current.push(o),o.source={input:this.input,start:this.getPosition(a)},o.raws.before=this.spaces,this.spaces="",o.type!=="comment"&&(this.semicolon=!1)}other(o){let a=!1,i=null,c=!1,u=null,b=[],S=o[1].startsWith("--"),Z=[],I=o;for(;I;){if(i=I[0],Z.push(I),i==="("||i==="[")u||(u=I),b.push(i==="("?")":"]");else if(S&&c&&i==="{")u||(u=I),b.push("}");else if(b.length===0)if(i===";")if(c){this.decl(Z,S);return}else break;else if(i==="{"){this.rule(Z);return}else if(i==="}"){this.tokenizer.back(Z.pop()),a=!0;break}else i===":"&&(c=!0);else i===b[b.length-1]&&(b.pop(),b.length===0&&(u=null));I=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(a=!0),b.length>0&&this.unclosedBracket(u),a&&c){if(!S)for(;Z.length&&(I=Z[Z.length-1][0],!(I!=="space"&&I!=="comment"));)this.tokenizer.back(Z.pop());this.decl(Z,S)}else this.unknownWord(Z)}parse(){let o;for(;!this.tokenizer.endOfFile();)switch(o=this.tokenizer.nextToken(),o[0]){case"space":this.spaces+=o[1];break;case";":this.freeSemicolon(o);break;case"}":this.end(o);break;case"comment":this.comment(o);break;case"at-word":this.atrule(o);break;case"{":this.emptyRule(o);break;default:this.other(o);break}this.endFile()}precheckMissedSemicolon(){}raw(o,a,i,c){let u,b,S=i.length,Z="",I=!0,R,y;for(let g=0;g<S;g+=1)u=i[g],b=u[0],b==="space"&&g===S-1&&!c?I=!1:b==="comment"?(y=i[g-1]?i[g-1][0]:"empty",R=i[g+1]?i[g+1][0]:"empty",!d[y]&&!d[R]?Z.slice(-1)===","?I=!1:Z+=u[1]:I=!1):Z+=u[1];if(!I){let g=i.reduce((V,v)=>V+v[1],"");o.raws[a]={raw:g,value:Z}}o[a]=Z}rule(o){o.pop();let a=new r;this.init(a,o[0][2]),a.raws.between=this.spacesAndCommentsFromEnd(o),this.raw(a,"selector",o),this.current=a}spacesAndCommentsFromEnd(o){let a,i="";for(;o.length&&(a=o[o.length-1][0],!(a!=="space"&&a!=="comment"));)i=o.pop()[1]+i;return i}spacesAndCommentsFromStart(o){let a,i="";for(;o.length&&(a=o[0][0],!(a!=="space"&&a!=="comment"));)i+=o.shift()[1];return i}spacesFromEnd(o){let a,i="";for(;o.length&&(a=o[o.length-1][0],a==="space");)i=o.pop()[1]+i;return i}stringFrom(o,a){let i="";for(let c=a;c<o.length;c++)i+=o[c][1];return o.splice(a,o.length-a),i}unclosedBlock(){let o=this.current.source.start;throw this.input.error("Unclosed block",o.line,o.column)}unclosedBracket(o){throw this.input.error("Unclosed bracket",{offset:o[2]},{offset:o[2]+1})}unexpectedClose(o){throw this.input.error("Unexpected }",{offset:o[2]},{offset:o[2]+1})}unknownWord(o){throw this.input.error("Unknown word "+o[0][1],{offset:o[0][2]},{offset:o[0][2]+o[0][1].length})}unnamedAtrule(o,a){throw this.input.error("At-rule without name",{offset:a[2]},{offset:a[2]+a[1].length})}}return An=h,An}var _n,nl;function $n(){if(nl)return _n;nl=1;let e=$e(),t=ks(),s=Eh();function n(r,l){let d=new t(r,l),f=new s(d);try{f.parse()}catch(m){throw process.env.NODE_ENV!=="production"&&m.name==="CssSyntaxError"&&l&&l.from&&(/\.scss$/i.test(l.from)?m.message+=`
315
315
  You tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser`:/\.sass/i.test(l.from)?m.message+=`
316
316
  You tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser`:/\.less$/i.test(l.from)&&(m.message+=`
317
- You tried to parse Less with the standard CSS parser; try again with the postcss-less parser`)),m}return f.root}return An=n,n.default=n,e.registerParse(n),An}var $n,sl;function nl(){if(sl)return $n;sl=1;let e=$e(),{my:t}=Rs();class s{constructor(r,l={}){if(this.type="warning",this.text=r,l.node&&l.node.source){l.node[t]||e.rebuild(l.node);let d=l.node.rangeBy(l);this.line=d.start.line,this.column=d.start.column,this.endLine=d.end.line,this.endColumn=d.end.column}for(let d in l)this[d]=l[d]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}}return $n=s,s.default=s,$n}var qn,il;function ei(){if(il)return qn;il=1;let e=nl();class t{get content(){return this.css}constructor(n,r,l){this.processor=n,this.messages=[],this.root=r,this.opts=l,this.css="",this.map=void 0}toString(){return this.css}warn(n,r={}){r.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(r.plugin=this.lastPlugin.postcssPlugin);let l=new e(n,r);return this.messages.push(l),l}warnings(){return this.messages.filter(n=>n.type==="warning")}}return qn=t,t.default=t,qn}var ti,rl;function ol(){if(rl)return ti;rl=1;let e={};return ti=function(t){e[t]||(e[t]=!0,typeof console<"u"&&console.warn&&console.warn(t))},ti}var si,ll;function al(){if(ll)return si;ll=1;let e=$e(),t=Fn(),s=$o(),n=_n(),r=ei(),l=Ft(),d=Gs(),{isClean:f,my:m}=Rs(),h=ol();const p={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},o={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},a={Once:!0,postcssPlugin:!0,prepare:!0},i=0;function c(R){return typeof R=="object"&&typeof R.then=="function"}function u(R){let y=!1,g=p[R.type];return R.type==="decl"?y=R.prop.toLowerCase():R.type==="atrule"&&(y=R.name.toLowerCase()),y&&R.append?[g,g+"-"+y,i,g+"Exit",g+"Exit-"+y]:y?[g,g+"-"+y,g+"Exit",g+"Exit-"+y]:R.append?[g,i,g+"Exit"]:[g,g+"Exit"]}function b(R){let y;return R.type==="document"?y=["Document",i,"DocumentExit"]:R.type==="root"?y=["Root",i,"RootExit"]:y=u(R),{eventIndex:0,events:y,iterator:0,node:R,visitorIndex:0,visitors:[]}}function S(R){let y=[R];for(;y.length>0;){let g=y.pop();if(g[f]=!1,g.nodes)for(let V of g.nodes)y.push(V)}return R}let Z={};class I{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(y,g,V){this.stringified=!1,this.processed=!1;let v;if(typeof g=="object"&&g!==null&&(g.type==="root"||g.type==="document"))v=S(g);else if(g instanceof I||g instanceof r)v=S(g.root),g.map&&(typeof V.map>"u"&&(V.map={}),V.map.inline||(V.map.inline=!1),V.map.prev=g.map);else{let X=n;V.syntax&&(X=V.syntax.parse),V.parser&&(X=V.parser),X.parse&&(X=X.parse);try{v=X(g,V)}catch(W){this.processed=!0,this.error=W}v&&!v[m]&&e.rebuild(v)}this.result=new r(y,v,V),this.helpers=Xe(H({},Z),{postcss:Z,result:this.result}),this.plugins=this.processor.plugins.map(X=>typeof X=="object"&&X.prepare?H(H({},X),X.prepare(this.result)):X)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(y){return this.async().catch(y)}finally(y){return this.async().then(y,y)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(y,g){let V=this.result.lastPlugin;try{if(g&&g.addToError(y),this.error=y,y.name==="CssSyntaxError"&&!y.plugin)y.plugin=V.postcssPlugin,y.setMessage();else if(V.postcssVersion&&process.env.NODE_ENV!=="production"){let v=V.postcssPlugin,X=V.postcssVersion,W=this.result.processor.version,k=X.split("."),N=W.split(".");(k[0]!==N[0]||parseInt(k[1])>parseInt(N[1]))&&console.error("Unknown error from PostCSS plugin. Your current PostCSS version is "+W+", but "+v+" uses "+X+". Perhaps this is the source of the error below.")}}catch(v){console&&console.error&&console.error(v)}return y}prepareVisitors(){this.listeners={};let y=(g,V,v)=>{this.listeners[V]||(this.listeners[V]=[]),this.listeners[V].push([g,v])};for(let g of this.plugins)if(typeof g=="object")for(let V in g){if(!o[V]&&/^[A-Z]/.test(V))throw new Error(`Unknown event ${V} in ${g.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!a[V])if(typeof g[V]=="object")for(let v in g[V])v==="*"?y(g,V,g[V][v]):y(g,V+"-"+v.toLowerCase(),g[V][v]);else typeof g[V]=="function"&&y(g,V,g[V])}this.hasListener=Object.keys(this.listeners).length>0}runAsync(){return We(this,null,function*(){this.plugin=0;for(let y=0;y<this.plugins.length;y++){let g=this.plugins[y],V=this.runOnRoot(g);if(c(V))try{yield V}catch(v){throw this.handleError(v)}}if(this.prepareVisitors(),this.hasListener){let y=this.result.root;for(;!y[f];){y[f]=!0;let g=[b(y)];for(;g.length>0;){let V=this.visitTick(g);if(c(V))try{yield V}catch(v){let X=g[g.length-1].node;throw this.handleError(v,X)}}}if(this.listeners.OnceExit)for(let[g,V]of this.listeners.OnceExit){this.result.lastPlugin=g;try{if(y.type==="document"){let v=y.nodes.map(X=>V(X,this.helpers));yield Promise.all(v)}else yield V(y,this.helpers)}catch(v){throw this.handleError(v)}}}return this.processed=!0,this.stringify()})}runOnRoot(y){this.result.lastPlugin=y;try{if(typeof y=="object"&&y.Once){if(this.result.root.type==="document"){let g=this.result.root.nodes.map(V=>y.Once(V,this.helpers));return c(g[0])?Promise.all(g):g}return y.Once(this.result.root,this.helpers)}else if(typeof y=="function")return y(this.result.root,this.result)}catch(g){throw this.handleError(g)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let y=this.result.opts,g=d;y.syntax&&(g=y.syntax.stringify),y.stringifier&&(g=y.stringifier),g.stringify&&(g=g.stringify);let V=this.result.root.source;if(y.map===void 0&&!(V&&V.input&&V.input.map)){let X="";return g(this.result.root,W=>{X+=W}),this.result.css=X,this.result}let v=new s(g,this.result.root,this.result.opts).generate();return this.result.css=v[0],this.result.map=v[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let y of this.plugins){let g=this.runOnRoot(y);if(c(g))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let y=this.result.root;for(;!y[f];)y[f]=!0,this.walkSync(y);if(this.listeners.OnceExit)if(y.type==="document")for(let g of y.nodes)this.visitSync(this.listeners.OnceExit,g);else this.visitSync(this.listeners.OnceExit,y)}return this.result}then(y,g){return process.env.NODE_ENV!=="production"&&("from"in this.opts||h("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.")),this.async().then(y,g)}toString(){return this.css}visitSync(y,g){for(let[V,v]of y){this.result.lastPlugin=V;let X;try{X=v(g,this.helpers)}catch(W){throw this.handleError(W,g.proxyOf)}if(g.type!=="root"&&g.type!=="document"&&!g.parent)return!0;if(c(X))throw this.getAsyncError()}}visitTick(y){let g=y[y.length-1],{node:V,visitors:v}=g;if(V.type!=="root"&&V.type!=="document"&&!V.parent){y.pop();return}if(v.length>0&&g.visitorIndex<v.length){let[W,k]=v[g.visitorIndex];g.visitorIndex+=1,g.visitorIndex===v.length&&(g.visitors=[],g.visitorIndex=0),this.result.lastPlugin=W;try{return k(V.toProxy(),this.helpers)}catch(N){throw this.handleError(N,V)}}if(g.iterator!==0){let W=g.iterator;g.descending&&(g.descending=!1,V.indexes[W]+=1);let k;for(;k=V.nodes[V.indexes[W]];){if(!k[f]){k[f]=!0,g.descending=!0,y.push(b(k));return}V.indexes[W]+=1}g.iterator=0,delete V.indexes[W]}let X=g.events;for(;g.eventIndex<X.length;){let W=X[g.eventIndex];if(g.eventIndex+=1,W===i){V.nodes&&V.nodes.length&&(V[f]=!0,g.iterator=V.getIterator());return}else if(this.listeners[W]){g.visitors=this.listeners[W];return}}y.pop()}walkSync(y){y[f]=!0;let g=[{eventIndex:0,events:u(y),iterator:0,node:y}];for(;g.length>0;){let V=g[g.length-1],v=V.node;if(V.iterator!==0){let X=V.iterator;V.descending&&(V.descending=!1,v.indexes[X]+=1);let W,k=!1;for(;W=v.nodes[v.indexes[X]];){if(!W[f]){W[f]=!0,V.descending=!0,g.push({eventIndex:0,events:u(W),iterator:0,node:W}),k=!0;break}v.indexes[X]+=1}if(k)continue;V.iterator=0,delete v.indexes[X]}if(V.eventIndex<V.events.length){let X=V.events[V.eventIndex];if(V.eventIndex+=1,X===i)v.nodes&&v.nodes.length&&(V.iterator=v.getIterator());else{let W=this.listeners[X];W&&this.visitSync(W,v.toProxy())&&g.pop()}continue}g.pop()}}warnings(){return this.sync().warnings()}}return I.registerPostcss=R=>{Z=R},si=I,I.default=I,l.registerLazyResult(I),t.registerLazyResult(I),si}var ni,cl;function Kh(){if(cl)return ni;cl=1;let e=$o(),t=_n(),s=ei(),n=Gs(),r=ol();class l{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let f,m=t;try{f=m(this._css,this._opts)}catch(h){this.error=h}if(this.error)throw this.error;return this._root=f,f}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(f,m,h){m=m.toString(),this.stringified=!1,this._processor=f,this._css=m,this._opts=h,this._map=void 0;let p=n;this.result=new s(this._processor,void 0,this._opts),this.result.css=m;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let a=new e(p,void 0,this._opts,m);if(a.isMap()){let[i,c]=a.generate();i&&(this.result.css=i),c&&(this.result.map=c)}else a.clearAnnotation(),this.result.css=a.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(f){return this.async().catch(f)}finally(f){return this.async().then(f,f)}sync(){if(this.error)throw this.error;return this.result}then(f,m){return process.env.NODE_ENV!=="production"&&("from"in this._opts||r("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.")),this.async().then(f,m)}toString(){return this._css}warnings(){return[]}}return ni=l,l.default=l,ni}var ii,ul;function Eh(){if(ul)return ii;ul=1;let e=Fn(),t=al(),s=Kh(),n=Ft();class r{constructor(d=[]){this.version="8.5.26",this.plugins=this.normalize(d)}normalize(d){let f=[];for(let m of d)if(m.postcss===!0?m=m():m.postcss&&(m=m.postcss),typeof m=="object"&&Array.isArray(m.plugins))f=f.concat(m.plugins);else if(typeof m=="object"&&m.postcssPlugin)f.push(m);else if(typeof m=="function")f.push(m);else if(typeof m=="object"&&(m.parse||m.stringify)){if(process.env.NODE_ENV!=="production")throw new Error("PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.")}else throw new Error(m+" is not a PostCSS plugin");return f}process(d,f={}){return!this.plugins.length&&!f.parser&&!f.stringifier&&!f.syntax?new s(this,d,f):new t(this,d,f)}use(d){return this.plugins=this.plugins.concat(this.normalize([d])),this}}return ii=r,r.default=r,n.registerProcessor(r),e.registerProcessor(r),ii}var ri,dl;function zh(){if(dl)return ri;dl=1;let e=Yn(),t=Ws(),s=$e(),n=Wn(),r=ws(),l=Fn(),d=Fh(),f=ks(),m=al(),h=Qo(),p=vs(),o=_n(),a=Eh(),i=ei(),c=Ft(),u=Hn(),b=Gs(),S=nl();function Z(...I){return I.length===1&&Array.isArray(I[0])&&(I=I[0]),new a(I)}return Z.plugin=function(I,R){let y=!1;function g(...v){console&&console.warn&&!y&&(y=!0,console.warn(I+`: postcss.plugin was deprecated. Migration guide:
317
+ You tried to parse Less with the standard CSS parser; try again with the postcss-less parser`)),m}return f.root}return _n=n,n.default=n,e.registerParse(n),_n}var qn,il;function rl(){if(il)return qn;il=1;let e=$e(),{my:t}=Rs();class s{constructor(r,l={}){if(this.type="warning",this.text=r,l.node&&l.node.source){l.node[t]||e.rebuild(l.node);let d=l.node.rangeBy(l);this.line=d.start.line,this.column=d.start.column,this.endLine=d.end.line,this.endColumn=d.end.column}for(let d in l)this[d]=l[d]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}}return qn=s,s.default=s,qn}var ei,ol;function ti(){if(ol)return ei;ol=1;let e=rl();class t{get content(){return this.css}constructor(n,r,l){this.processor=n,this.messages=[],this.root=r,this.opts=l,this.css="",this.map=void 0}toString(){return this.css}warn(n,r={}){r.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(r.plugin=this.lastPlugin.postcssPlugin);let l=new e(n,r);return this.messages.push(l),l}warnings(){return this.messages.filter(n=>n.type==="warning")}}return ei=t,t.default=t,ei}var si,ll;function al(){if(ll)return si;ll=1;let e={};return si=function(t){e[t]||(e[t]=!0,typeof console<"u"&&console.warn&&console.warn(t))},si}var ni,cl;function ul(){if(cl)return ni;cl=1;let e=$e(),t=Mn(),s=el(),n=$n(),r=ti(),l=Ft(),d=Gs(),{isClean:f,my:m}=Rs(),h=al();const p={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},o={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},a={Once:!0,postcssPlugin:!0,prepare:!0},i=0;function c(R){return typeof R=="object"&&typeof R.then=="function"}function u(R){let y=!1,g=p[R.type];return R.type==="decl"?y=R.prop.toLowerCase():R.type==="atrule"&&(y=R.name.toLowerCase()),y&&R.append?[g,g+"-"+y,i,g+"Exit",g+"Exit-"+y]:y?[g,g+"-"+y,g+"Exit",g+"Exit-"+y]:R.append?[g,i,g+"Exit"]:[g,g+"Exit"]}function b(R){let y;return R.type==="document"?y=["Document",i,"DocumentExit"]:R.type==="root"?y=["Root",i,"RootExit"]:y=u(R),{eventIndex:0,events:y,iterator:0,node:R,visitorIndex:0,visitors:[]}}function S(R){let y=[R];for(;y.length>0;){let g=y.pop();if(g[f]=!1,g.nodes)for(let V of g.nodes)y.push(V)}return R}let Z={};class I{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(y,g,V){this.stringified=!1,this.processed=!1;let v;if(typeof g=="object"&&g!==null&&(g.type==="root"||g.type==="document"))v=S(g);else if(g instanceof I||g instanceof r)v=S(g.root),g.map&&(typeof V.map>"u"&&(V.map={}),V.map.inline||(V.map.inline=!1),V.map.prev=g.map);else{let X=n;V.syntax&&(X=V.syntax.parse),V.parser&&(X=V.parser),X.parse&&(X=X.parse);try{v=X(g,V)}catch(W){this.processed=!0,this.error=W}v&&!v[m]&&e.rebuild(v)}this.result=new r(y,v,V),this.helpers=Xe(H({},Z),{postcss:Z,result:this.result}),this.plugins=this.processor.plugins.map(X=>typeof X=="object"&&X.prepare?H(H({},X),X.prepare(this.result)):X)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(y){return this.async().catch(y)}finally(y){return this.async().then(y,y)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(y,g){let V=this.result.lastPlugin;try{if(g&&g.addToError(y),this.error=y,y.name==="CssSyntaxError"&&!y.plugin)y.plugin=V.postcssPlugin,y.setMessage();else if(V.postcssVersion&&process.env.NODE_ENV!=="production"){let v=V.postcssPlugin,X=V.postcssVersion,W=this.result.processor.version,k=X.split("."),N=W.split(".");(k[0]!==N[0]||parseInt(k[1])>parseInt(N[1]))&&console.error("Unknown error from PostCSS plugin. Your current PostCSS version is "+W+", but "+v+" uses "+X+". Perhaps this is the source of the error below.")}}catch(v){console&&console.error&&console.error(v)}return y}prepareVisitors(){this.listeners={};let y=(g,V,v)=>{this.listeners[V]||(this.listeners[V]=[]),this.listeners[V].push([g,v])};for(let g of this.plugins)if(typeof g=="object")for(let V in g){if(!o[V]&&/^[A-Z]/.test(V))throw new Error(`Unknown event ${V} in ${g.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!a[V])if(typeof g[V]=="object")for(let v in g[V])v==="*"?y(g,V,g[V][v]):y(g,V+"-"+v.toLowerCase(),g[V][v]);else typeof g[V]=="function"&&y(g,V,g[V])}this.hasListener=Object.keys(this.listeners).length>0}runAsync(){return We(this,null,function*(){this.plugin=0;for(let y=0;y<this.plugins.length;y++){let g=this.plugins[y],V=this.runOnRoot(g);if(c(V))try{yield V}catch(v){throw this.handleError(v)}}if(this.prepareVisitors(),this.hasListener){let y=this.result.root;for(;!y[f];){y[f]=!0;let g=[b(y)];for(;g.length>0;){let V=this.visitTick(g);if(c(V))try{yield V}catch(v){let X=g[g.length-1].node;throw this.handleError(v,X)}}}if(this.listeners.OnceExit)for(let[g,V]of this.listeners.OnceExit){this.result.lastPlugin=g;try{if(y.type==="document"){let v=y.nodes.map(X=>V(X,this.helpers));yield Promise.all(v)}else yield V(y,this.helpers)}catch(v){throw this.handleError(v)}}}return this.processed=!0,this.stringify()})}runOnRoot(y){this.result.lastPlugin=y;try{if(typeof y=="object"&&y.Once){if(this.result.root.type==="document"){let g=this.result.root.nodes.map(V=>y.Once(V,this.helpers));return c(g[0])?Promise.all(g):g}return y.Once(this.result.root,this.helpers)}else if(typeof y=="function")return y(this.result.root,this.result)}catch(g){throw this.handleError(g)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let y=this.result.opts,g=d;y.syntax&&(g=y.syntax.stringify),y.stringifier&&(g=y.stringifier),g.stringify&&(g=g.stringify);let V=this.result.root.source;if(y.map===void 0&&!(V&&V.input&&V.input.map)){let X="";return g(this.result.root,W=>{X+=W}),this.result.css=X,this.result}let v=new s(g,this.result.root,this.result.opts).generate();return this.result.css=v[0],this.result.map=v[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let y of this.plugins){let g=this.runOnRoot(y);if(c(g))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let y=this.result.root;for(;!y[f];)y[f]=!0,this.walkSync(y);if(this.listeners.OnceExit)if(y.type==="document")for(let g of y.nodes)this.visitSync(this.listeners.OnceExit,g);else this.visitSync(this.listeners.OnceExit,y)}return this.result}then(y,g){return process.env.NODE_ENV!=="production"&&("from"in this.opts||h("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.")),this.async().then(y,g)}toString(){return this.css}visitSync(y,g){for(let[V,v]of y){this.result.lastPlugin=V;let X;try{X=v(g,this.helpers)}catch(W){throw this.handleError(W,g.proxyOf)}if(g.type!=="root"&&g.type!=="document"&&!g.parent)return!0;if(c(X))throw this.getAsyncError()}}visitTick(y){let g=y[y.length-1],{node:V,visitors:v}=g;if(V.type!=="root"&&V.type!=="document"&&!V.parent){y.pop();return}if(v.length>0&&g.visitorIndex<v.length){let[W,k]=v[g.visitorIndex];g.visitorIndex+=1,g.visitorIndex===v.length&&(g.visitors=[],g.visitorIndex=0),this.result.lastPlugin=W;try{return k(V.toProxy(),this.helpers)}catch(N){throw this.handleError(N,V)}}if(g.iterator!==0){let W=g.iterator;g.descending&&(g.descending=!1,V.indexes[W]+=1);let k;for(;k=V.nodes[V.indexes[W]];){if(!k[f]){k[f]=!0,g.descending=!0,y.push(b(k));return}V.indexes[W]+=1}g.iterator=0,delete V.indexes[W]}let X=g.events;for(;g.eventIndex<X.length;){let W=X[g.eventIndex];if(g.eventIndex+=1,W===i){V.nodes&&V.nodes.length&&(V[f]=!0,g.iterator=V.getIterator());return}else if(this.listeners[W]){g.visitors=this.listeners[W];return}}y.pop()}walkSync(y){y[f]=!0;let g=[{eventIndex:0,events:u(y),iterator:0,node:y}];for(;g.length>0;){let V=g[g.length-1],v=V.node;if(V.iterator!==0){let X=V.iterator;V.descending&&(V.descending=!1,v.indexes[X]+=1);let W,k=!1;for(;W=v.nodes[v.indexes[X]];){if(!W[f]){W[f]=!0,V.descending=!0,g.push({eventIndex:0,events:u(W),iterator:0,node:W}),k=!0;break}v.indexes[X]+=1}if(k)continue;V.iterator=0,delete v.indexes[X]}if(V.eventIndex<V.events.length){let X=V.events[V.eventIndex];if(V.eventIndex+=1,X===i)v.nodes&&v.nodes.length&&(V.iterator=v.getIterator());else{let W=this.listeners[X];W&&this.visitSync(W,v.toProxy())&&g.pop()}continue}g.pop()}}warnings(){return this.sync().warnings()}}return I.registerPostcss=R=>{Z=R},ni=I,I.default=I,l.registerLazyResult(I),t.registerLazyResult(I),ni}var ii,dl;function zh(){if(dl)return ii;dl=1;let e=el(),t=$n(),s=ti(),n=Gs(),r=al();class l{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let f,m=t;try{f=m(this._css,this._opts)}catch(h){this.error=h}if(this.error)throw this.error;return this._root=f,f}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(f,m,h){m=m.toString(),this.stringified=!1,this._processor=f,this._css=m,this._opts=h,this._map=void 0;let p=n;this.result=new s(this._processor,void 0,this._opts),this.result.css=m;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let a=new e(p,void 0,this._opts,m);if(a.isMap()){let[i,c]=a.generate();i&&(this.result.css=i),c&&(this.result.map=c)}else a.clearAnnotation(),this.result.css=a.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(f){return this.async().catch(f)}finally(f){return this.async().then(f,f)}sync(){if(this.error)throw this.error;return this.result}then(f,m){return process.env.NODE_ENV!=="production"&&("from"in this._opts||r("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.")),this.async().then(f,m)}toString(){return this._css}warnings(){return[]}}return ii=l,l.default=l,ii}var ri,hl;function Ph(){if(hl)return ri;hl=1;let e=Mn(),t=ul(),s=zh(),n=Ft();class r{constructor(d=[]){this.version="8.5.26",this.plugins=this.normalize(d)}normalize(d){let f=[];for(let m of d)if(m.postcss===!0?m=m():m.postcss&&(m=m.postcss),typeof m=="object"&&Array.isArray(m.plugins))f=f.concat(m.plugins);else if(typeof m=="object"&&m.postcssPlugin)f.push(m);else if(typeof m=="function")f.push(m);else if(typeof m=="object"&&(m.parse||m.stringify)){if(process.env.NODE_ENV!=="production")throw new Error("PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.")}else throw new Error(m+" is not a PostCSS plugin");return f}process(d,f={}){return!this.plugins.length&&!f.parser&&!f.stringifier&&!f.syntax?new s(this,d,f):new t(this,d,f)}use(d){return this.plugins=this.plugins.concat(this.normalize([d])),this}}return ri=r,r.default=r,n.registerProcessor(r),e.registerProcessor(r),ri}var oi,pl;function Hh(){if(pl)return oi;pl=1;let e=Un(),t=Ws(),s=$e(),n=wn(),r=ws(),l=Mn(),d=Oh(),f=ks(),m=ul(),h=Ao(),p=vs(),o=$n(),a=Ph(),i=ti(),c=Ft(),u=Dn(),b=Gs(),S=rl();function Z(...I){return I.length===1&&Array.isArray(I[0])&&(I=I[0]),new a(I)}return Z.plugin=function(I,R){let y=!1;function g(...v){console&&console.warn&&!y&&(y=!0,console.warn(I+`: postcss.plugin was deprecated. Migration guide:
318
318
  https://evilmartians.com/chronicles/postcss-8-plugin-migration`),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(I+`: 里面 postcss.plugin 被弃用. 迁移指南:
319
- https://www.w3ctech.com/topic/2226`));let X=R(...v);return X.postcssPlugin=I,X.postcssVersion=new a().version,X}let V;return Object.defineProperty(g,"postcss",{get(){return V||(V=g()),V}}),g.process=function(v,X,W){return Z([g(W)]).process(v,X)},g},Z.stringify=b,Z.parse=o,Z.fromJSON=d,Z.list=h,Z.comment=I=>new t(I),Z.atRule=I=>new e(I),Z.decl=I=>new r(I),Z.rule=I=>new u(I),Z.root=I=>new c(I),Z.document=I=>new l(I),Z.CssSyntaxError=n,Z.Declaration=r,Z.Container=s,Z.Processor=a,Z.Document=l,Z.Comment=t,Z.Warning=S,Z.AtRule=e,Z.Result=i,Z.Input=f,Z.Rule=u,Z.Root=c,Z.Node=p,m.registerPostcss(Z),ri=Z,Z.default=Z,ri}zh();var Ph=Object.defineProperty,Hh=(e,t,s)=>t in e?Ph(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,Fe=(e,t,s)=>Hh(e,typeof t!="symbol"?t+"":t,s);Date.now().toString();function Dh(e){if(Object.prototype.hasOwnProperty.call(e,"__esModule"))return e;var t=e.default;if(typeof t=="function"){var s=function n(){return this instanceof n?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};s.prototype=t.prototype}else s={};return Object.defineProperty(s,"__esModule",{value:!0}),Object.keys(e).forEach(function(n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(s,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}),s}var Cs={exports:{}},hl;function Bh(){if(hl)return Cs.exports;hl=1;var e=String,t=function(){return{isColorSupported:!1,reset:e,bold:e,dim:e,italic:e,underline:e,inverse:e,hidden:e,strikethrough:e,black:e,red:e,green:e,yellow:e,blue:e,magenta:e,cyan:e,white:e,gray:e,bgBlack:e,bgRed:e,bgGreen:e,bgYellow:e,bgBlue:e,bgMagenta:e,bgCyan:e,bgWhite:e,blackBright:e,redBright:e,greenBright:e,yellowBright:e,blueBright:e,magentaBright:e,cyanBright:e,whiteBright:e,bgBlackBright:e,bgRedBright:e,bgGreenBright:e,bgYellowBright:e,bgBlueBright:e,bgMagentaBright:e,bgCyanBright:e,bgWhiteBright:e}};return Cs.exports=t(),Cs.exports.createColors=t,Cs.exports}const Qh={},jh=Object.freeze(Object.defineProperty({__proto__:null,default:Qh},Symbol.toStringTag,{value:"Module"})),Ee=Dh(jh);var oi,pl;function li(){if(pl)return oi;pl=1;let e=Bh(),t=Ee;class s extends Error{constructor(r,l,d,f,m,h){super(r),this.name="CssSyntaxError",this.reason=r,m&&(this.file=m),f&&(this.source=f),h&&(this.plugin=h),typeof l<"u"&&typeof d<"u"&&(typeof l=="number"?(this.line=l,this.column=d):(this.line=l.line,this.column=l.column,this.endLine=d.line,this.endColumn=d.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,s)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(r){if(!this.source)return"";let l=this.source;r==null&&(r=e.isColorSupported);let d=i=>i,f=i=>i,m=i=>i;if(r){let{bold:i,gray:c,red:u}=e.createColors(!0);f=b=>i(u(b)),d=b=>c(b),t&&(m=b=>t(b))}let h=l.split(/\r?\n/),p=Math.max(this.line-3,0),o=Math.min(this.line+2,h.length),a=String(o).length;return h.slice(p,o).map((i,c)=>{let u=p+1+c,b=" "+(" "+u).slice(-a)+" | ";if(u===this.line){if(i.length>160){let Z=20,I=Math.max(0,this.column-Z),R=Math.max(this.column+Z,this.endColumn+Z),y=i.slice(I,R),g=d(b.replace(/\d/g," "))+i.slice(0,Math.min(this.column-1,Z-1)).replace(/[^\t]/g," ");return f(">")+d(b)+m(y)+`
319
+ https://www.w3ctech.com/topic/2226`));let X=R(...v);return X.postcssPlugin=I,X.postcssVersion=new a().version,X}let V;return Object.defineProperty(g,"postcss",{get(){return V||(V=g()),V}}),g.process=function(v,X,W){return Z([g(W)]).process(v,X)},g},Z.stringify=b,Z.parse=o,Z.fromJSON=d,Z.list=h,Z.comment=I=>new t(I),Z.atRule=I=>new e(I),Z.decl=I=>new r(I),Z.rule=I=>new u(I),Z.root=I=>new c(I),Z.document=I=>new l(I),Z.CssSyntaxError=n,Z.Declaration=r,Z.Container=s,Z.Processor=a,Z.Document=l,Z.Comment=t,Z.Warning=S,Z.AtRule=e,Z.Result=i,Z.Input=f,Z.Rule=u,Z.Root=c,Z.Node=p,m.registerPostcss(Z),oi=Z,Z.default=Z,oi}Hh();var Dh=Object.defineProperty,Bh=(e,t,s)=>t in e?Dh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,Fe=(e,t,s)=>Bh(e,typeof t!="symbol"?t+"":t,s);Date.now().toString();function Qh(e){if(Object.prototype.hasOwnProperty.call(e,"__esModule"))return e;var t=e.default;if(typeof t=="function"){var s=function n(){return this instanceof n?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};s.prototype=t.prototype}else s={};return Object.defineProperty(s,"__esModule",{value:!0}),Object.keys(e).forEach(function(n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(s,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}),s}var Cs={exports:{}},ml;function jh(){if(ml)return Cs.exports;ml=1;var e=String,t=function(){return{isColorSupported:!1,reset:e,bold:e,dim:e,italic:e,underline:e,inverse:e,hidden:e,strikethrough:e,black:e,red:e,green:e,yellow:e,blue:e,magenta:e,cyan:e,white:e,gray:e,bgBlack:e,bgRed:e,bgGreen:e,bgYellow:e,bgBlue:e,bgMagenta:e,bgCyan:e,bgWhite:e,blackBright:e,redBright:e,greenBright:e,yellowBright:e,blueBright:e,magentaBright:e,cyanBright:e,whiteBright:e,bgBlackBright:e,bgRedBright:e,bgGreenBright:e,bgYellowBright:e,bgBlueBright:e,bgMagentaBright:e,bgCyanBright:e,bgWhiteBright:e}};return Cs.exports=t(),Cs.exports.createColors=t,Cs.exports}const Ah={},_h=Object.freeze(Object.defineProperty({__proto__:null,default:Ah},Symbol.toStringTag,{value:"Module"})),Ee=Qh(_h);var li,fl;function ai(){if(fl)return li;fl=1;let e=jh(),t=Ee;class s extends Error{constructor(r,l,d,f,m,h){super(r),this.name="CssSyntaxError",this.reason=r,m&&(this.file=m),f&&(this.source=f),h&&(this.plugin=h),typeof l<"u"&&typeof d<"u"&&(typeof l=="number"?(this.line=l,this.column=d):(this.line=l.line,this.column=l.column,this.endLine=d.line,this.endColumn=d.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,s)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(r){if(!this.source)return"";let l=this.source;r==null&&(r=e.isColorSupported);let d=i=>i,f=i=>i,m=i=>i;if(r){let{bold:i,gray:c,red:u}=e.createColors(!0);f=b=>i(u(b)),d=b=>c(b),t&&(m=b=>t(b))}let h=l.split(/\r?\n/),p=Math.max(this.line-3,0),o=Math.min(this.line+2,h.length),a=String(o).length;return h.slice(p,o).map((i,c)=>{let u=p+1+c,b=" "+(" "+u).slice(-a)+" | ";if(u===this.line){if(i.length>160){let Z=20,I=Math.max(0,this.column-Z),R=Math.max(this.column+Z,this.endColumn+Z),y=i.slice(I,R),g=d(b.replace(/\d/g," "))+i.slice(0,Math.min(this.column-1,Z-1)).replace(/[^\t]/g," ");return f(">")+d(b)+m(y)+`
320
320
  `+g+f("^")}let S=d(b.replace(/\d/g," "))+i.slice(0,this.column-1).replace(/[^\t]/g," ");return f(">")+d(b)+m(i)+`
321
321
  `+S+f("^")}return" "+d(b)+m(i)}).join(`
322
322
  `)}toString(){let r=this.showSourceCode();return r&&(r=`
323
323
 
324
324
  `+r+`
325
- `),this.name+": "+this.message+r}}return oi=s,s.default=s,oi}var ai,ml;function fl(){if(ml)return ai;ml=1;const e=/(<)(\/?style\b)/gi,t=/(<)(!--)/g,s=/[\t\n\f\r "#'()/;[\\\]{}]/;function n(p){return typeof p!="string"||!p.includes("<")?p:p.replace(e,"\\3c $2").replace(t,"\\3c $2")}const r={after:`
325
+ `),this.name+": "+this.message+r}}return li=s,s.default=s,li}var ci,bl;function yl(){if(bl)return ci;bl=1;const e=/(<)(\/?style\b)/gi,t=/(<)(!--)/g,s=/[\t\n\f\r "#'()/;[\\\]{}]/;function n(p){return typeof p!="string"||!p.includes("<")?p:p.replace(e,"\\3c $2").replace(t,"\\3c $2")}const r={after:`
326
326
  `,beforeClose:`
327
327
  `,beforeComment:`
328
328
  `,beforeDecl:`
@@ -333,23 +333,23 @@ https://www.w3ctech.com/topic/2226`));let X=R(...v);return X.postcssPlugin=I,X.p
333
333
  `)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(a,null,"beforeDecl"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeDecl(o,a){let i;return o.walkDecls(c=>{if(typeof c.raws.before<"u")return i=c.raws.before,i.includes(`
334
334
  `)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(a,null,"beforeRule"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeOpen(o){let a;return o.walk(i=>{if(i.type!=="decl"&&(a=i.raws.between,typeof a<"u"))return!1}),a}rawBeforeRule(o){let a;return o.walk(i=>{if(i.nodes&&(i.parent!==o||o.first!==i)&&typeof i.raws.before<"u")return a=i.raws.before,a.includes(`
335
335
  `)&&(a=a.replace(/[^\n]+$/,"")),!1}),a&&(a=a.replace(/\S/g,"")),a}rawColon(o){let a;return o.walkDecls(i=>{if(typeof i.raws.between<"u")return a=i.raws.between.replace(/[^\s:]/g,""),!1}),a}rawEmptyBody(o){let a;return o.walk(i=>{if(i.nodes&&i.nodes.length===0&&(a=i.raws.after,typeof a<"u"))return!1}),a}rawIndent(o){if(o.raws.indent)return o.raws.indent;let a;return o.walk(i=>{let c=i.parent;if(c&&c!==o&&c.parent&&c.parent===o&&typeof i.raws.before<"u"){let u=i.raws.before.split(`
336
- `);return a=u[u.length-1],a=a.replace(/\S/g,""),!1}}),a}rawSemicolon(o){let a;return o.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(a=i.raws.semicolon,typeof a<"u"))return!1}),a}rawValue(o,a){let i=o[a],c=o.raws[a];return c&&c.value===i?c.raw:i}root(o){if(o.source&&o.source.input.hasBOM&&this.builder("\uFEFF",o,"start"),this.body(o),o.raws.after){let a=o.raws.after,i=o.parent&&o.parent.type==="document";this.builder(i?a:n(a))}}rule(o){this.block(o,this.rawValue(o,"selector")),o.raws.ownSemicolon&&this.builder(n(o.raws.ownSemicolon),o,"end")}stringify(o,a){if(!this[o.type])throw new Error("Unknown AST node type "+o.type+". Maybe you need to change PostCSS stringifier.");this[o.type](o,a)}}return ai=h,h.default=h,ai}var ci,bl;function xs(){if(bl)return ci;bl=1;let e=fl();function t(s,n){new e(n).stringify(s)}return ci=t,t.default=t,ci}var ui={},yl;function Ts(){return yl||(yl=1,ui.isClean=Symbol("isClean"),ui.my=Symbol("my")),ui}var di,gl;function Ls(){if(gl)return di;gl=1;let e=li(),t=fl(),s=xs(),{isClean:n,my:r}=Ts();function l(m,h){let p=new m.constructor,o=[[m,p,h]];for(;o.length>0;){let[a,i,c]=o.pop();for(let u in a){if(!Object.prototype.hasOwnProperty.call(a,u)||u==="proxyCache")continue;let b=a[u],S=typeof b;if(u==="parent"&&S==="object")c&&(i[u]=c);else if(u==="source")i[u]=b;else if(Array.isArray(b)){let Z=[];i[u]=Z;for(let I of b){let R=new I.constructor;Z.push(R),o.push([I,R,i])}}else{if(S==="object"&&b!==null){let Z=new b.constructor;o.push([b,Z,void 0]),b=Z}i[u]=b}}}return p}function d(m,h){if(h&&typeof h.offset<"u")return h.offset;let p=1,o=1,a=0;for(let i=0;i<m.length;i++){if(o===h.line&&p===h.column){a=i;break}m[i]===`
336
+ `);return a=u[u.length-1],a=a.replace(/\S/g,""),!1}}),a}rawSemicolon(o){let a;return o.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(a=i.raws.semicolon,typeof a<"u"))return!1}),a}rawValue(o,a){let i=o[a],c=o.raws[a];return c&&c.value===i?c.raw:i}root(o){if(o.source&&o.source.input.hasBOM&&this.builder("\uFEFF",o,"start"),this.body(o),o.raws.after){let a=o.raws.after,i=o.parent&&o.parent.type==="document";this.builder(i?a:n(a))}}rule(o){this.block(o,this.rawValue(o,"selector")),o.raws.ownSemicolon&&this.builder(n(o.raws.ownSemicolon),o,"end")}stringify(o,a){if(!this[o.type])throw new Error("Unknown AST node type "+o.type+". Maybe you need to change PostCSS stringifier.");this[o.type](o,a)}}return ci=h,h.default=h,ci}var ui,gl;function xs(){if(gl)return ui;gl=1;let e=yl();function t(s,n){new e(n).stringify(s)}return ui=t,t.default=t,ui}var di={},Zl;function Ts(){return Zl||(Zl=1,di.isClean=Symbol("isClean"),di.my=Symbol("my")),di}var hi,Sl;function Ls(){if(Sl)return hi;Sl=1;let e=ai(),t=yl(),s=xs(),{isClean:n,my:r}=Ts();function l(m,h){let p=new m.constructor,o=[[m,p,h]];for(;o.length>0;){let[a,i,c]=o.pop();for(let u in a){if(!Object.prototype.hasOwnProperty.call(a,u)||u==="proxyCache")continue;let b=a[u],S=typeof b;if(u==="parent"&&S==="object")c&&(i[u]=c);else if(u==="source")i[u]=b;else if(Array.isArray(b)){let Z=[];i[u]=Z;for(let I of b){let R=new I.constructor;Z.push(R),o.push([I,R,i])}}else{if(S==="object"&&b!==null){let Z=new b.constructor;o.push([b,Z,void 0]),b=Z}i[u]=b}}}return p}function d(m,h){if(h&&typeof h.offset<"u")return h.offset;let p=1,o=1,a=0;for(let i=0;i<m.length;i++){if(o===h.line&&p===h.column){a=i;break}m[i]===`
337
337
  `?(p=1,o+=1):p+=1}return a}class f{get proxyOf(){return this}constructor(h={}){this.raws={},this[n]=!1,this[r]=!0;for(let p of Object.keys(h))if(p!=="__proto__")if(p==="nodes"){this.nodes=[];for(let o of h[p])typeof o.clone=="function"&&o.parent?this.append(o.clone()):this.append(o)}else this[p]=h[p]}addToError(h){if(h.postcssNode=this,h.stack&&this.source&&/\n\s{4}at /.test(h.stack)){let p=this.source;h.stack=h.stack.replace(/\n\s{4}at /,`$&${p.input.from}:${p.start.line}:${p.start.column}$&`)}return h}after(h){return this.parent.insertAfter(this,h),this}assign(h={}){for(let p in h)this[p]=h[p];return this}before(h){return this.parent.insertBefore(this,h),this}cleanRaws(h){delete this.raws.before,delete this.raws.after,h||delete this.raws.between}clone(h={}){let p=l(this);for(let o in h)p[o]=h[o];return p}cloneAfter(h={}){let p=this.clone(h);return this.parent.insertAfter(this,p),p}cloneBefore(h={}){let p=this.clone(h);return this.parent.insertBefore(this,p),p}error(h,p={}){if(this.source){let{end:o,start:a}=this.rangeBy(p);return this.source.input.error(h,{column:a.column,line:a.line},{column:o.column,line:o.line},p)}return new e(h)}getProxyProcessor(){return{get(h,p){return p==="proxyOf"?h:p==="root"?()=>h.root().toProxy():h[p]},set(h,p,o){return h[p]===o||(h[p]=o,(p==="prop"||p==="value"||p==="name"||p==="params"||p==="important"||p==="text")&&h.markDirty()),!0}}}markClean(){this[n]=!0}markDirty(){if(this[n]){this[n]=!1;let h=this;for(;h=h.parent;)h[n]=!1}}next(){if(!this.parent)return;let h=this.parent.index(this);return this.parent.nodes[h+1]}positionBy(h={}){let p="document"in this.source.input?this.source.input.document:this.source.input.css,o={column:this.source.start.column,line:this.source.start.line,offset:d(p,this.source.start)};if(h.index)o=this.positionInside(h.index);else if(h.word){let a=p.slice(d(p,this.source.start),d(p,this.source.end)).indexOf(h.word);a!==-1&&(o=this.positionInside(a))}return o}positionInside(h){let p=this.source.start.column,o=this.source.start.line,a="document"in this.source.input?this.source.input.document:this.source.input.css,i=d(a,this.source.start),c=i+h;for(let u=i;u<c;u++)a[u]===`
338
- `?(p=1,o+=1):p+=1;return{column:p,line:o,offset:c}}prev(){if(!this.parent)return;let h=this.parent.index(this);return this.parent.nodes[h-1]}rangeBy(h={}){let p="document"in this.source.input?this.source.input.document:this.source.input.css,o={column:this.source.start.column,line:this.source.start.line,offset:d(p,this.source.start)},a=this.source.end?{column:this.source.end.column+1,line:this.source.end.line,offset:typeof this.source.end.offset=="number"?this.source.end.offset:d(p,this.source.end)+1}:{column:o.column+1,line:o.line,offset:o.offset+1};if(h.word){let i=p.slice(d(p,this.source.start),d(p,this.source.end)).indexOf(h.word);i!==-1&&(o=this.positionInside(i),a=this.positionInside(i+h.word.length))}else h.start?o={column:h.start.column,line:h.start.line,offset:d(p,h.start)}:typeof h.index=="number"&&(o=this.positionInside(h.index)),h.end?a={column:h.end.column,line:h.end.line,offset:d(p,h.end)}:typeof h.endIndex=="number"?a=this.positionInside(h.endIndex):typeof h.index=="number"&&(a=this.positionInside(h.index+1));return(a.line<o.line||a.line===o.line&&a.column<=o.column)&&(a={column:o.column+1,line:o.line,offset:o.offset+1}),{end:a,start:o}}raw(h,p){return new t().raw(this,h,p)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...h){if(this.parent){let p=this,o=!1;for(let a of h)a===this?o=!0:o?(this.parent.insertAfter(p,a),p=a):this.parent.insertBefore(p,a);o||this.remove()}return this}root(){let h=this;for(;h.parent&&h.parent.type!=="document";)h=h.parent;return h}toJSON(h,p){let o=p==null;p=p||new Map;let a=[],i=[[this,a,0]];for(let u=0;u<i.length;u++){let[b,S,Z]=i[u],I={};S[Z]=I;for(let R in b){if(!Object.prototype.hasOwnProperty.call(b,R)||R==="parent"||R==="proxyCache")continue;let y=b[R];if(Array.isArray(y)){let g=[];I[R]=g;for(let V=0;V<y.length;V++){let v=y[V];typeof v=="object"&&v.toJSON?v.toJSON===f.prototype.toJSON?i.push([v,g,V]):g[V]=v.toJSON(null,p):g[V]=v}}else if(typeof y=="object"&&y.toJSON)y.toJSON===f.prototype.toJSON?i.push([y,I,R]):I[R]=y.toJSON(null,p);else if(R==="source"){if(y==null)continue;let g=p.get(y.input);g==null&&(g=p.size,p.set(y.input,g)),I[R]={end:y.end,inputId:g,start:y.start}}else I[R]=y}}let c=a[0];return o&&(c.inputs=[...p.keys()].map(u=>u.toJSON())),c}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(h=s){h.stringify&&(h=h.stringify);let p="";return h(this,o=>{p+=o}),p}warn(h,p,o={}){let a={node:this};for(let i in o)a[i]=o[i];return h.warn(p,a)}}return di=f,f.default=f,di}var hi,Zl;function Ns(){if(Zl)return hi;Zl=1;let e=Ls();class t extends e{constructor(n){super(n),this.type="comment"}}return hi=t,t.default=t,hi}var pi,Sl;function Js(){if(Sl)return pi;Sl=1;let e=Ls();class t extends e{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(n){n&&typeof n.value<"u"&&typeof n.value!="string"&&(n=Xe(H({},n),{value:String(n.value)})),super(n),this.type="decl"}}return pi=t,t.default=t,pi}var mi,Il;function qe(){if(Il)return mi;Il=1;let e=Ns(),t=Js(),s=Ls(),{isClean:n,my:r}=Ts(),l,d,f,m;function h(a){let i=a.slice();for(;i.length>0;){let c=i.pop();if(delete c.source,c.nodes){c.nodes=c.nodes.slice();for(let u of c.nodes)i.push(u)}}return a.slice()}function p(a){let i=[a];for(;i.length>0;){let c=i.pop();if(c[n]=!1,c.proxyOf.nodes)for(let u of c.proxyOf.nodes)i.push(u)}}class o extends s{get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}append(...i){for(let c of i){let u=this.normalize(c,this.last);for(let b of u)this.proxyOf.nodes.push(b)}return this.markDirty(),this}cleanRaws(i){let c=[this];for(;c.length>0;){let u=c.pop();if(u!==this&&u.cleanRaws!==o.prototype.cleanRaws){u.cleanRaws(i);continue}if(s.prototype.cleanRaws.call(u,i),u.nodes)for(let b of u.nodes)c.push(b)}}each(i){if(!this.proxyOf.nodes)return;let c=this.getIterator(),u,b;for(;this.indexes[c]<this.proxyOf.nodes.length&&(u=this.indexes[c],b=i(this.proxyOf.nodes[u],u),b!==!1);)this.indexes[c]+=1;return delete this.indexes[c],b}every(i){return this.nodes.every(i)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let i=this.lastEach;return this.indexes[i]=0,i}getProxyProcessor(){return{get(i,c){return c==="proxyOf"?i:i[c]?c==="each"||typeof c=="string"&&c.startsWith("walk")?(...u)=>i[c](...u.map(b=>typeof b=="function"?(S,Z)=>b(S.toProxy(),Z):b)):c==="every"||c==="some"?u=>i[c]((b,...S)=>u(b.toProxy(),...S)):c==="root"?()=>i.root().toProxy():c==="nodes"?i.nodes.map(u=>u.toProxy()):c==="first"||c==="last"?i[c].toProxy():i[c]:i[c]},set(i,c,u){return i[c]===u||(i[c]=u,(c==="name"||c==="params"||c==="selector")&&i.markDirty()),!0}}}index(i){return typeof i=="number"?i:(i.proxyOf&&(i=i.proxyOf),this.proxyOf.nodes.indexOf(i))}insertAfter(i,c){let u=this.index(i),b=this.normalize(c,this.proxyOf.nodes[u]).reverse();u=this.index(i);for(let Z of b)this.proxyOf.nodes.splice(u+1,0,Z);let S;for(let Z in this.indexes)S=this.indexes[Z],u<S&&(this.indexes[Z]=S+b.length);return this.markDirty(),this}insertBefore(i,c){let u=this.index(i),b=u===0?"prepend":!1,S=this.normalize(c,this.proxyOf.nodes[u],b).reverse();u=this.index(i);for(let I of S)this.proxyOf.nodes.splice(u,0,I);let Z;for(let I in this.indexes)Z=this.indexes[I],u<=Z&&(this.indexes[I]=Z+S.length);return this.markDirty(),this}normalize(i,c){if(typeof i=="string")i=h(d(i).nodes);else if(typeof i>"u")i=[];else if(Array.isArray(i)){i=i.slice(0);for(let u of i)u.parent&&u.parent.removeChild(u,"ignore")}else if(i.type==="root"&&this.type!=="document"){i=i.nodes.slice(0);for(let u of i)u.parent&&u.parent.removeChild(u,"ignore")}else if(i.type)i=[i];else if(i.prop){if(typeof i.value>"u")throw new Error("Value field is missed in node creation");typeof i.value!="string"&&(i.value=String(i.value)),i=[new t(i)]}else if(i.selector||i.selectors)i=[new m(i)];else if(i.name)i=[new l(i)];else if(i.text)i=[new e(i)];else throw new Error("Unknown node type in node creation");return i.map(u=>(u[r]||o.rebuild(u),u=u.proxyOf,u.parent&&u.parent.removeChild(u),u[n]&&p(u),u.raws||(u.raws={}),typeof u.raws.before>"u"&&c&&typeof c.raws.before<"u"&&(u.raws.before=c.raws.before.replace(/\S/g,"")),u.parent=this.proxyOf,u))}prepend(...i){i=i.reverse();for(let c of i){let u=this.normalize(c,this.first,"prepend").reverse();for(let b of u)this.proxyOf.nodes.unshift(b);for(let b in this.indexes)this.indexes[b]=this.indexes[b]+u.length}return this.markDirty(),this}push(i){return i.parent=this,this.proxyOf.nodes.push(i),this}removeAll(){for(let i of this.proxyOf.nodes)i.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(i){i=this.index(i),this.proxyOf.nodes[i].parent=void 0,this.proxyOf.nodes.splice(i,1);let c;for(let u in this.indexes)c=this.indexes[u],c>=i&&(this.indexes[u]=c-1);return this.markDirty(),this}replaceValues(i,c,u){return u||(u=c,c={}),this.walkDecls(b=>{c.props&&!c.props.includes(b.prop)||c.fast&&!b.value.includes(c.fast)||(b.value=b.value.replace(i,u))}),this.markDirty(),this}some(i){return this.nodes.some(i)}walk(i){if(!this.proxyOf.nodes)return;let c=[{iterator:this.getIterator(),node:this.proxyOf}];for(;c.length>0;){let{iterator:u,node:b}=c[c.length-1],S=b.indexes[u];if(S>=b.proxyOf.nodes.length){delete b.indexes[u],c.pop();let R=c[c.length-1];R&&(R.node.indexes[R.iterator]+=1);continue}let Z=b.proxyOf.nodes[S],I;try{I=i(Z,S)}catch(R){throw Z.addToError(R)}if(I===!1){for(let R of c)delete R.node.indexes[R.iterator];return!1}Z.walk&&Z.proxyOf.nodes?c.push({iterator:Z.getIterator(),node:Z}):b.indexes[u]+=1}}walkAtRules(i,c){return c?i instanceof RegExp?this.walk((u,b)=>{if(u.type==="atrule"&&i.test(u.name))return c(u,b)}):this.walk((u,b)=>{if(u.type==="atrule"&&u.name===i)return c(u,b)}):(c=i,this.walk((u,b)=>{if(u.type==="atrule")return c(u,b)}))}walkComments(i){return this.walk((c,u)=>{if(c.type==="comment")return i(c,u)})}walkDecls(i,c){return c?i instanceof RegExp?this.walk((u,b)=>{if(u.type==="decl"&&i.test(u.prop))return c(u,b)}):this.walk((u,b)=>{if(u.type==="decl"&&u.prop===i)return c(u,b)}):(c=i,this.walk((u,b)=>{if(u.type==="decl")return c(u,b)}))}walkRules(i,c){return c?i instanceof RegExp?this.walk((u,b)=>{if(u.type==="rule"&&i.test(u.selector))return c(u,b)}):this.walk((u,b)=>{if(u.type==="rule"&&u.selector===i)return c(u,b)}):(c=i,this.walk((u,b)=>{if(u.type==="rule")return c(u,b)}))}}return o.registerParse=a=>{d=a},o.registerRule=a=>{m=a},o.registerAtRule=a=>{l=a},o.registerRoot=a=>{f=a},mi=o,o.default=o,o.rebuild=a=>{let i=[a];for(;i.length>0;){let c=i.pop();if(c.type==="atrule"?Object.setPrototypeOf(c,l.prototype):c.type==="rule"?Object.setPrototypeOf(c,m.prototype):c.type==="decl"?Object.setPrototypeOf(c,t.prototype):c.type==="comment"?Object.setPrototypeOf(c,e.prototype):c.type==="root"&&Object.setPrototypeOf(c,f.prototype),c[r]=!0,c.nodes)for(let u of c.nodes)i.push(u)}},mi}var fi,Xl;function bi(){if(Xl)return fi;Xl=1;let e=qe();class t extends e{constructor(n){super(n),this.type="atrule"}append(...n){return this.proxyOf.nodes||(this.nodes=[]),super.append(...n)}prepend(...n){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...n)}}return fi=t,t.default=t,e.registerAtRule(t),fi}var yi,Vl;function gi(){if(Vl)return yi;Vl=1;let e=qe(),t,s;class n extends e{constructor(l){super(H({type:"document"},l)),this.nodes||(this.nodes=[])}toResult(l={}){return new t(new s,this,l).stringify()}}return n.registerLazyResult=r=>{t=r},n.registerProcessor=r=>{s=r},yi=n,n.default=n,yi}var Zi,Gl;function Ah(){if(Gl)return Zi;Gl=1;let e="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";return Zi={nanoid:(t=21)=>{let s="",n=t|0;for(;n-- >0;)s+=e[Math.random()*64|0];return s},customAlphabet:(t,s=21)=>(n=s)=>{let r="",l=n|0;for(;l-- >0;)r+=t[Math.random()*t.length|0];return r}},Zi}var Si,Rl;function vl(){if(Rl)return Si;Rl=1;let{existsSync:e,readFileSync:t,realpathSync:s}=Ee,{dirname:n,isAbsolute:r,join:l,relative:d,sep:f}=Ee,{SourceMapConsumer:m,SourceMapGenerator:h}=Ee;function p(i){try{return s(i)}catch{return i}}function o(i){return Buffer?Buffer.from(i,"base64").toString():window.atob(i)}class a{constructor(c,u){if(u.map===!1)return;u.unsafeMap&&(this.unsafeMap=!0),this.loadAnnotation(c),this.inline=this.startWith(this.annotation,"data:");let b=u.map?u.map.prev:void 0,S=this.loadMap(u.from,b);!this.mapFile&&u.from&&(this.mapFile=u.from),this.mapFile&&(this.root=n(this.mapFile)),S&&(this.text=S)}consumer(){return this.consumerCache||(this.consumerCache=new m(this.json||this.text)),this.consumerCache}decodeInline(c){let u=/^data:application\/json;charset=utf-?8;base64,/,b=/^data:application\/json;base64,/,S=/^data:application\/json;charset=utf-?8,/,Z=/^data:application\/json,/,I=c.match(S)||c.match(Z);if(I)return decodeURIComponent(c.substr(I[0].length));let R=c.match(u)||c.match(b);if(R)return o(c.substr(R[0].length));let y=c.slice(22);throw y=y.slice(0,y.indexOf(",")),new Error("Unsupported source map encoding "+y)}getAnnotationURL(c){return c.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(c){return typeof c!="object"?!1:typeof c.mappings=="string"||typeof c._mappings=="string"||Array.isArray(c.sections)}loadAnnotation(c){let u=c.match(/\/\*\s*# sourceMappingURL=/g);if(!u)return;let b=c.lastIndexOf(u.pop()),S=c.indexOf("*/",b);b>-1&&S>-1&&(this.annotation=this.getAnnotationURL(c.substring(b,S)))}loadFile(c,u,b){if(!b&&!this.unsafeMap){if(!/\.map$/i.test(c)||!u)return;let S=d(p(n(u)),p(c));if(S===".."||S.startsWith(".."+f)||r(S))return}if(this.root=n(c),e(c))return this.mapFile=c,t(c,"utf-8").toString().trim()}loadMap(c,u){if(u===!1)return!1;if(u){if(typeof u=="string")return u;if(typeof u=="function"){let b=u(c);if(b){let S=this.loadFile(b,c,!0);if(!S)throw new Error("Unable to load previous source map: "+b.toString());return S}}else{if(u instanceof m)return h.fromSourceMap(u).toString();if(u instanceof h)return u.toString();if(this.isMap(u))return JSON.stringify(u);throw new Error("Unsupported previous source map format: "+u.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let b=this.annotation;c&&(b=l(n(c),b));let S=this.loadFile(b,c,!1);if(S)try{this.json=JSON.parse(S.replace(/^\)]}'[^\n]*\n/,""))}catch{return}return S}}}startWith(c,u){return c?c.substr(0,u.length)===u:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}}return Si=a,a.default=a,Si}var Ii,Wl;function Ys(){if(Wl)return Ii;Wl=1;let{nanoid:e}=Ah(),{isAbsolute:t,resolve:s}=Ee,{SourceMapConsumer:n,SourceMapGenerator:r}=Ee,{fileURLToPath:l,pathToFileURL:d}=Ee,f=li(),m=vl(),h=Ee,p=Symbol("lineToIndexCache"),o=!!(n&&r),a=!!(s&&t);function i(u){if(u[p])return u[p];let b=u.css.split(`
339
- `),S=new Array(b.length),Z=0;for(let I=0,R=b.length;I<R;I++)S[I]=Z,Z+=b[I].length+1;return u[p]=S,S}class c{get from(){return this.file||this.id}constructor(b,S={}){if(b===null||typeof b>"u"||typeof b=="object"&&!b.toString)throw new Error(`PostCSS received ${b} instead of CSS string`);if(this.css=b.toString(),this.css[0]==="\uFEFF"||this.css[0]==="￾"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,this.document=this.css,S.document&&(this.document=S.document.toString()),S.from&&(!a||/^\w+:\/\//.test(S.from)||t(S.from)?this.file=S.from:this.file=s(S.from)),a&&o){let Z=new m(this.css,S);if(Z.text){this.map=Z;let I=Z.consumer().file;!this.file&&I&&(this.file=this.mapResolve(I))}}this.file||(this.id="<input css "+e(6)+">"),this.map&&(this.map.file=this.from)}error(b,S,Z,I={}){let R,y,g,V,v;if(S&&typeof S=="object"){let W=S,k=Z;if(typeof W.offset=="number"){V=W.offset;let N=this.fromOffset(V);S=N.line,Z=N.col}else S=W.line,Z=W.column,V=this.fromLineAndColumn(S,Z);if(typeof k.offset=="number"){g=k.offset;let N=this.fromOffset(g);y=N.line,R=N.col}else y=k.line,R=k.column,g=this.fromLineAndColumn(k.line,k.column)}else if(Z)V=this.fromLineAndColumn(S,Z);else{V=S;let W=this.fromOffset(V);S=W.line,Z=W.col}let X=this.origin(S,Z,y,R);return X?v=new f(b,X.endLine===void 0?X.line:{column:X.column,line:X.line},X.endLine===void 0?X.column:{column:X.endColumn,line:X.endLine},X.source,X.file,I.plugin):v=new f(b,y===void 0?S:{column:Z,line:S},y===void 0?Z:{column:R,line:y},this.css,this.file,I.plugin),v.input={column:Z,endColumn:R,endLine:y,endOffset:g,line:S,offset:V,source:this.css},this.file&&(d&&(v.input.url=d(this.file).toString()),v.input.file=this.file),v}fromLineAndColumn(b,S){return i(this)[b-1]+S-1}fromOffset(b){let S=i(this),Z=S[S.length-1],I=0;if(b>=Z)I=S.length-1;else{let R=S.length-2,y;for(;I<R;)if(y=I+(R-I>>1),b<S[y])R=y-1;else if(b>=S[y+1])I=y+1;else{I=y;break}}return{col:b-S[I]+1,line:I+1}}mapResolve(b){return/^\w+:\/\//.test(b)?b:s(this.map.consumer().sourceRoot||this.map.root||".",b)}origin(b,S,Z,I){if(!this.map)return!1;let R=this.map.consumer(),y=R.originalPositionFor({column:S-1,line:b});if(!y.source)return!1;let g;if(typeof Z=="number"){let W=R.originalPositionFor({column:I-1,line:Z});W.source&&(g=W)}let V;t(y.source)?V=d(y.source):V=new URL(y.source,this.map.consumer().sourceRoot||d(this.map.mapFile));let v={column:y.column+1,endColumn:g&&g.column+1,endLine:g&&g.line,line:y.line,url:V.toString()};if(V.protocol==="file:")if(l)v.file=l(V);else throw new Error("file: protocol is not available in this PostCSS build");let X=R.sourceContentFor(y.source);return X&&(v.source=X),v}toJSON(){let b={};for(let S of["hasBOM","css","file","id"])this[S]!=null&&(b[S]=this[S]);return this.map&&(b.map=H({},this.map),b.map.consumerCache&&(b.map.consumerCache=void 0)),b}}return Ii=c,c.default=c,h&&h.registerInput&&h.registerInput(c),Ii}var Xi,wl;function Ot(){if(wl)return Xi;wl=1;let e=qe(),t,s;class n extends e{constructor(l){super(l),this.type="root",this.nodes||(this.nodes=[])}normalize(l,d,f){let m=new Set;for(let p of Array.isArray(l)?l:[l])p&&typeof p=="object"&&!p.parent&&p.raws&&typeof p.raws.before<"u"&&m.add(p.raws);let h=super.normalize(l);if(d){if(f==="prepend")this.nodes.length>1?d.raws.before=this.nodes[1].raws.before:delete d.raws.before;else if(this.first!==d)for(let p of h)m.has(p.raws)||(p.raws.before=d.raws.before)}return h}removeChild(l,d){let f=this.index(l);return!d&&f===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[f].raws.before),super.removeChild(l)}toResult(l={}){return new t(new s,this,l).stringify()}}return n.registerLazyResult=r=>{t=r},n.registerProcessor=r=>{s=r},Xi=n,n.default=n,e.registerRoot(n),Xi}var Vi,kl;function Cl(){if(kl)return Vi;kl=1;let e={comma(t){return e.split(t,[","],!0)},space(t){let s=[" ",`
340
- `," "];return e.split(t,s)},split(t,s,n){if(typeof t!="string")return[];let r=[],l="",d=!1,f=0,m=!1,h="",p=!1;for(let o of t)p?p=!1:o==="\\"?p=!0:m?o===h&&(m=!1):o==='"'||o==="'"?(m=!0,h=o):o==="("?f+=1:o===")"?f>0&&(f-=1):f===0&&s.includes(o)&&(d=!0),d?(l!==""&&r.push(l.trim()),l="",d=!1):l+=o;return(n||l!=="")&&r.push(l.trim()),r}};return Vi=e,e.default=e,Vi}var Gi,xl;function Ri(){if(xl)return Gi;xl=1;let e=qe(),t=Cl();class s extends e{get selectors(){return t.comma(this.selector)}set selectors(r){let l=this.selector?this.selector.match(/,\s*/):null,d=l?l[0]:","+this.raw("between","beforeOpen");this.selector=r.join(d)}constructor(r){super(r),this.type="rule",this.nodes||(this.nodes=[])}}return Gi=s,s.default=s,e.registerRule(s),Gi}var vi,Tl;function _h(){if(Tl)return vi;Tl=1;let e=bi(),t=Ns(),s=Js(),n=Ys(),r=vl(),l=Ot(),d=Ri();function f(p,o){return p.inputs?p.inputs.map(a=>{let i=Xe(H({},a),{__proto__:n.prototype});return i.map&&(i.map=Xe(H({},i.map),{__proto__:r.prototype})),i}):o}function m(p,o,a){let i=H({},p);if(delete i.inputs,delete i.nodes,i.source){let u=i.source,{inputId:b}=u,S=ms(u,["inputId"]);i.source=S,b!=null&&(i.source.input=o[b])}let c;if(i.type==="root")c=new l(i);else if(i.type==="decl")c=new s(i);else if(i.type==="rule")c=new d(i);else if(i.type==="comment")c=new t(i);else if(i.type==="atrule")c=new e(i);else throw new Error("Unknown node type: "+p.type);if(a){c.nodes=a;for(let u of a)u.parent=c}return c}function h(p,o){if(Array.isArray(p))return p.map(c=>h(c));let a,i=[{childIndex:0,children:[],inputs:f(p,o),json:p}];for(;i.length>0;){let c=i[i.length-1],u=c.json.nodes;if(u&&c.childIndex<u.length){let S=u[c.childIndex];c.childIndex+=1,i.push({childIndex:0,children:[],inputs:f(S,c.inputs),json:S});continue}i.pop();let b=m(c.json,c.inputs,u?c.children:void 0);i.length>0?i[i.length-1].children.push(b):a=b}return a}return vi=h,h.default=h,vi}var Wi,Ll;function Nl(){if(Ll)return Wi;Ll=1;let{dirname:e,relative:t,resolve:s,sep:n}=Ee,{SourceMapConsumer:r,SourceMapGenerator:l}=Ee,{pathToFileURL:d}=Ee,f=Ys(),m=!!(r&&l),h=!!(e&&s&&t&&n);class p{constructor(a,i,c,u){this.stringify=a,this.mapOpts=c.map||{},this.root=i,this.opts=c,this.css=u,this.originalCSS=u,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let a;this.isInline()?a="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?a=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?a=this.mapOpts.annotation(this.opts.to,this.root):a=this.outputFile()+".map";let i=`
338
+ `?(p=1,o+=1):p+=1;return{column:p,line:o,offset:c}}prev(){if(!this.parent)return;let h=this.parent.index(this);return this.parent.nodes[h-1]}rangeBy(h={}){let p="document"in this.source.input?this.source.input.document:this.source.input.css,o={column:this.source.start.column,line:this.source.start.line,offset:d(p,this.source.start)},a=this.source.end?{column:this.source.end.column+1,line:this.source.end.line,offset:typeof this.source.end.offset=="number"?this.source.end.offset:d(p,this.source.end)+1}:{column:o.column+1,line:o.line,offset:o.offset+1};if(h.word){let i=p.slice(d(p,this.source.start),d(p,this.source.end)).indexOf(h.word);i!==-1&&(o=this.positionInside(i),a=this.positionInside(i+h.word.length))}else h.start?o={column:h.start.column,line:h.start.line,offset:d(p,h.start)}:typeof h.index=="number"&&(o=this.positionInside(h.index)),h.end?a={column:h.end.column,line:h.end.line,offset:d(p,h.end)}:typeof h.endIndex=="number"?a=this.positionInside(h.endIndex):typeof h.index=="number"&&(a=this.positionInside(h.index+1));return(a.line<o.line||a.line===o.line&&a.column<=o.column)&&(a={column:o.column+1,line:o.line,offset:o.offset+1}),{end:a,start:o}}raw(h,p){return new t().raw(this,h,p)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...h){if(this.parent){let p=this,o=!1;for(let a of h)a===this?o=!0:o?(this.parent.insertAfter(p,a),p=a):this.parent.insertBefore(p,a);o||this.remove()}return this}root(){let h=this;for(;h.parent&&h.parent.type!=="document";)h=h.parent;return h}toJSON(h,p){let o=p==null;p=p||new Map;let a=[],i=[[this,a,0]];for(let u=0;u<i.length;u++){let[b,S,Z]=i[u],I={};S[Z]=I;for(let R in b){if(!Object.prototype.hasOwnProperty.call(b,R)||R==="parent"||R==="proxyCache")continue;let y=b[R];if(Array.isArray(y)){let g=[];I[R]=g;for(let V=0;V<y.length;V++){let v=y[V];typeof v=="object"&&v.toJSON?v.toJSON===f.prototype.toJSON?i.push([v,g,V]):g[V]=v.toJSON(null,p):g[V]=v}}else if(typeof y=="object"&&y.toJSON)y.toJSON===f.prototype.toJSON?i.push([y,I,R]):I[R]=y.toJSON(null,p);else if(R==="source"){if(y==null)continue;let g=p.get(y.input);g==null&&(g=p.size,p.set(y.input,g)),I[R]={end:y.end,inputId:g,start:y.start}}else I[R]=y}}let c=a[0];return o&&(c.inputs=[...p.keys()].map(u=>u.toJSON())),c}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(h=s){h.stringify&&(h=h.stringify);let p="";return h(this,o=>{p+=o}),p}warn(h,p,o={}){let a={node:this};for(let i in o)a[i]=o[i];return h.warn(p,a)}}return hi=f,f.default=f,hi}var pi,Il;function Ns(){if(Il)return pi;Il=1;let e=Ls();class t extends e{constructor(n){super(n),this.type="comment"}}return pi=t,t.default=t,pi}var mi,Xl;function Js(){if(Xl)return mi;Xl=1;let e=Ls();class t extends e{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(n){n&&typeof n.value<"u"&&typeof n.value!="string"&&(n=Xe(H({},n),{value:String(n.value)})),super(n),this.type="decl"}}return mi=t,t.default=t,mi}var fi,Vl;function qe(){if(Vl)return fi;Vl=1;let e=Ns(),t=Js(),s=Ls(),{isClean:n,my:r}=Ts(),l,d,f,m;function h(a){let i=a.slice();for(;i.length>0;){let c=i.pop();if(delete c.source,c.nodes){c.nodes=c.nodes.slice();for(let u of c.nodes)i.push(u)}}return a.slice()}function p(a){let i=[a];for(;i.length>0;){let c=i.pop();if(c[n]=!1,c.proxyOf.nodes)for(let u of c.proxyOf.nodes)i.push(u)}}class o extends s{get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}append(...i){for(let c of i){let u=this.normalize(c,this.last);for(let b of u)this.proxyOf.nodes.push(b)}return this.markDirty(),this}cleanRaws(i){let c=[this];for(;c.length>0;){let u=c.pop();if(u!==this&&u.cleanRaws!==o.prototype.cleanRaws){u.cleanRaws(i);continue}if(s.prototype.cleanRaws.call(u,i),u.nodes)for(let b of u.nodes)c.push(b)}}each(i){if(!this.proxyOf.nodes)return;let c=this.getIterator(),u,b;for(;this.indexes[c]<this.proxyOf.nodes.length&&(u=this.indexes[c],b=i(this.proxyOf.nodes[u],u),b!==!1);)this.indexes[c]+=1;return delete this.indexes[c],b}every(i){return this.nodes.every(i)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let i=this.lastEach;return this.indexes[i]=0,i}getProxyProcessor(){return{get(i,c){return c==="proxyOf"?i:i[c]?c==="each"||typeof c=="string"&&c.startsWith("walk")?(...u)=>i[c](...u.map(b=>typeof b=="function"?(S,Z)=>b(S.toProxy(),Z):b)):c==="every"||c==="some"?u=>i[c]((b,...S)=>u(b.toProxy(),...S)):c==="root"?()=>i.root().toProxy():c==="nodes"?i.nodes.map(u=>u.toProxy()):c==="first"||c==="last"?i[c].toProxy():i[c]:i[c]},set(i,c,u){return i[c]===u||(i[c]=u,(c==="name"||c==="params"||c==="selector")&&i.markDirty()),!0}}}index(i){return typeof i=="number"?i:(i.proxyOf&&(i=i.proxyOf),this.proxyOf.nodes.indexOf(i))}insertAfter(i,c){let u=this.index(i),b=this.normalize(c,this.proxyOf.nodes[u]).reverse();u=this.index(i);for(let Z of b)this.proxyOf.nodes.splice(u+1,0,Z);let S;for(let Z in this.indexes)S=this.indexes[Z],u<S&&(this.indexes[Z]=S+b.length);return this.markDirty(),this}insertBefore(i,c){let u=this.index(i),b=u===0?"prepend":!1,S=this.normalize(c,this.proxyOf.nodes[u],b).reverse();u=this.index(i);for(let I of S)this.proxyOf.nodes.splice(u,0,I);let Z;for(let I in this.indexes)Z=this.indexes[I],u<=Z&&(this.indexes[I]=Z+S.length);return this.markDirty(),this}normalize(i,c){if(typeof i=="string")i=h(d(i).nodes);else if(typeof i>"u")i=[];else if(Array.isArray(i)){i=i.slice(0);for(let u of i)u.parent&&u.parent.removeChild(u,"ignore")}else if(i.type==="root"&&this.type!=="document"){i=i.nodes.slice(0);for(let u of i)u.parent&&u.parent.removeChild(u,"ignore")}else if(i.type)i=[i];else if(i.prop){if(typeof i.value>"u")throw new Error("Value field is missed in node creation");typeof i.value!="string"&&(i.value=String(i.value)),i=[new t(i)]}else if(i.selector||i.selectors)i=[new m(i)];else if(i.name)i=[new l(i)];else if(i.text)i=[new e(i)];else throw new Error("Unknown node type in node creation");return i.map(u=>(u[r]||o.rebuild(u),u=u.proxyOf,u.parent&&u.parent.removeChild(u),u[n]&&p(u),u.raws||(u.raws={}),typeof u.raws.before>"u"&&c&&typeof c.raws.before<"u"&&(u.raws.before=c.raws.before.replace(/\S/g,"")),u.parent=this.proxyOf,u))}prepend(...i){i=i.reverse();for(let c of i){let u=this.normalize(c,this.first,"prepend").reverse();for(let b of u)this.proxyOf.nodes.unshift(b);for(let b in this.indexes)this.indexes[b]=this.indexes[b]+u.length}return this.markDirty(),this}push(i){return i.parent=this,this.proxyOf.nodes.push(i),this}removeAll(){for(let i of this.proxyOf.nodes)i.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(i){i=this.index(i),this.proxyOf.nodes[i].parent=void 0,this.proxyOf.nodes.splice(i,1);let c;for(let u in this.indexes)c=this.indexes[u],c>=i&&(this.indexes[u]=c-1);return this.markDirty(),this}replaceValues(i,c,u){return u||(u=c,c={}),this.walkDecls(b=>{c.props&&!c.props.includes(b.prop)||c.fast&&!b.value.includes(c.fast)||(b.value=b.value.replace(i,u))}),this.markDirty(),this}some(i){return this.nodes.some(i)}walk(i){if(!this.proxyOf.nodes)return;let c=[{iterator:this.getIterator(),node:this.proxyOf}];for(;c.length>0;){let{iterator:u,node:b}=c[c.length-1],S=b.indexes[u];if(S>=b.proxyOf.nodes.length){delete b.indexes[u],c.pop();let R=c[c.length-1];R&&(R.node.indexes[R.iterator]+=1);continue}let Z=b.proxyOf.nodes[S],I;try{I=i(Z,S)}catch(R){throw Z.addToError(R)}if(I===!1){for(let R of c)delete R.node.indexes[R.iterator];return!1}Z.walk&&Z.proxyOf.nodes?c.push({iterator:Z.getIterator(),node:Z}):b.indexes[u]+=1}}walkAtRules(i,c){return c?i instanceof RegExp?this.walk((u,b)=>{if(u.type==="atrule"&&i.test(u.name))return c(u,b)}):this.walk((u,b)=>{if(u.type==="atrule"&&u.name===i)return c(u,b)}):(c=i,this.walk((u,b)=>{if(u.type==="atrule")return c(u,b)}))}walkComments(i){return this.walk((c,u)=>{if(c.type==="comment")return i(c,u)})}walkDecls(i,c){return c?i instanceof RegExp?this.walk((u,b)=>{if(u.type==="decl"&&i.test(u.prop))return c(u,b)}):this.walk((u,b)=>{if(u.type==="decl"&&u.prop===i)return c(u,b)}):(c=i,this.walk((u,b)=>{if(u.type==="decl")return c(u,b)}))}walkRules(i,c){return c?i instanceof RegExp?this.walk((u,b)=>{if(u.type==="rule"&&i.test(u.selector))return c(u,b)}):this.walk((u,b)=>{if(u.type==="rule"&&u.selector===i)return c(u,b)}):(c=i,this.walk((u,b)=>{if(u.type==="rule")return c(u,b)}))}}return o.registerParse=a=>{d=a},o.registerRule=a=>{m=a},o.registerAtRule=a=>{l=a},o.registerRoot=a=>{f=a},fi=o,o.default=o,o.rebuild=a=>{let i=[a];for(;i.length>0;){let c=i.pop();if(c.type==="atrule"?Object.setPrototypeOf(c,l.prototype):c.type==="rule"?Object.setPrototypeOf(c,m.prototype):c.type==="decl"?Object.setPrototypeOf(c,t.prototype):c.type==="comment"?Object.setPrototypeOf(c,e.prototype):c.type==="root"&&Object.setPrototypeOf(c,f.prototype),c[r]=!0,c.nodes)for(let u of c.nodes)i.push(u)}},fi}var bi,Gl;function yi(){if(Gl)return bi;Gl=1;let e=qe();class t extends e{constructor(n){super(n),this.type="atrule"}append(...n){return this.proxyOf.nodes||(this.nodes=[]),super.append(...n)}prepend(...n){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...n)}}return bi=t,t.default=t,e.registerAtRule(t),bi}var gi,Rl;function Zi(){if(Rl)return gi;Rl=1;let e=qe(),t,s;class n extends e{constructor(l){super(H({type:"document"},l)),this.nodes||(this.nodes=[])}toResult(l={}){return new t(new s,this,l).stringify()}}return n.registerLazyResult=r=>{t=r},n.registerProcessor=r=>{s=r},gi=n,n.default=n,gi}var Si,vl;function $h(){if(vl)return Si;vl=1;let e="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";return Si={nanoid:(t=21)=>{let s="",n=t|0;for(;n-- >0;)s+=e[Math.random()*64|0];return s},customAlphabet:(t,s=21)=>(n=s)=>{let r="",l=n|0;for(;l-- >0;)r+=t[Math.random()*t.length|0];return r}},Si}var Ii,Wl;function wl(){if(Wl)return Ii;Wl=1;let{existsSync:e,readFileSync:t,realpathSync:s}=Ee,{dirname:n,isAbsolute:r,join:l,relative:d,sep:f}=Ee,{SourceMapConsumer:m,SourceMapGenerator:h}=Ee;function p(i){try{return s(i)}catch{return i}}function o(i){return Buffer?Buffer.from(i,"base64").toString():window.atob(i)}class a{constructor(c,u){if(u.map===!1)return;u.unsafeMap&&(this.unsafeMap=!0),this.loadAnnotation(c),this.inline=this.startWith(this.annotation,"data:");let b=u.map?u.map.prev:void 0,S=this.loadMap(u.from,b);!this.mapFile&&u.from&&(this.mapFile=u.from),this.mapFile&&(this.root=n(this.mapFile)),S&&(this.text=S)}consumer(){return this.consumerCache||(this.consumerCache=new m(this.json||this.text)),this.consumerCache}decodeInline(c){let u=/^data:application\/json;charset=utf-?8;base64,/,b=/^data:application\/json;base64,/,S=/^data:application\/json;charset=utf-?8,/,Z=/^data:application\/json,/,I=c.match(S)||c.match(Z);if(I)return decodeURIComponent(c.substr(I[0].length));let R=c.match(u)||c.match(b);if(R)return o(c.substr(R[0].length));let y=c.slice(22);throw y=y.slice(0,y.indexOf(",")),new Error("Unsupported source map encoding "+y)}getAnnotationURL(c){return c.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(c){return typeof c!="object"?!1:typeof c.mappings=="string"||typeof c._mappings=="string"||Array.isArray(c.sections)}loadAnnotation(c){let u=c.match(/\/\*\s*# sourceMappingURL=/g);if(!u)return;let b=c.lastIndexOf(u.pop()),S=c.indexOf("*/",b);b>-1&&S>-1&&(this.annotation=this.getAnnotationURL(c.substring(b,S)))}loadFile(c,u,b){if(!b&&!this.unsafeMap){if(!/\.map$/i.test(c)||!u)return;let S=d(p(n(u)),p(c));if(S===".."||S.startsWith(".."+f)||r(S))return}if(this.root=n(c),e(c))return this.mapFile=c,t(c,"utf-8").toString().trim()}loadMap(c,u){if(u===!1)return!1;if(u){if(typeof u=="string")return u;if(typeof u=="function"){let b=u(c);if(b){let S=this.loadFile(b,c,!0);if(!S)throw new Error("Unable to load previous source map: "+b.toString());return S}}else{if(u instanceof m)return h.fromSourceMap(u).toString();if(u instanceof h)return u.toString();if(this.isMap(u))return JSON.stringify(u);throw new Error("Unsupported previous source map format: "+u.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let b=this.annotation;c&&(b=l(n(c),b));let S=this.loadFile(b,c,!1);if(S)try{this.json=JSON.parse(S.replace(/^\)]}'[^\n]*\n/,""))}catch{return}return S}}}startWith(c,u){return c?c.substr(0,u.length)===u:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}}return Ii=a,a.default=a,Ii}var Xi,kl;function Ys(){if(kl)return Xi;kl=1;let{nanoid:e}=$h(),{isAbsolute:t,resolve:s}=Ee,{SourceMapConsumer:n,SourceMapGenerator:r}=Ee,{fileURLToPath:l,pathToFileURL:d}=Ee,f=ai(),m=wl(),h=Ee,p=Symbol("lineToIndexCache"),o=!!(n&&r),a=!!(s&&t);function i(u){if(u[p])return u[p];let b=u.css.split(`
339
+ `),S=new Array(b.length),Z=0;for(let I=0,R=b.length;I<R;I++)S[I]=Z,Z+=b[I].length+1;return u[p]=S,S}class c{get from(){return this.file||this.id}constructor(b,S={}){if(b===null||typeof b>"u"||typeof b=="object"&&!b.toString)throw new Error(`PostCSS received ${b} instead of CSS string`);if(this.css=b.toString(),this.css[0]==="\uFEFF"||this.css[0]==="￾"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,this.document=this.css,S.document&&(this.document=S.document.toString()),S.from&&(!a||/^\w+:\/\//.test(S.from)||t(S.from)?this.file=S.from:this.file=s(S.from)),a&&o){let Z=new m(this.css,S);if(Z.text){this.map=Z;let I=Z.consumer().file;!this.file&&I&&(this.file=this.mapResolve(I))}}this.file||(this.id="<input css "+e(6)+">"),this.map&&(this.map.file=this.from)}error(b,S,Z,I={}){let R,y,g,V,v;if(S&&typeof S=="object"){let W=S,k=Z;if(typeof W.offset=="number"){V=W.offset;let N=this.fromOffset(V);S=N.line,Z=N.col}else S=W.line,Z=W.column,V=this.fromLineAndColumn(S,Z);if(typeof k.offset=="number"){g=k.offset;let N=this.fromOffset(g);y=N.line,R=N.col}else y=k.line,R=k.column,g=this.fromLineAndColumn(k.line,k.column)}else if(Z)V=this.fromLineAndColumn(S,Z);else{V=S;let W=this.fromOffset(V);S=W.line,Z=W.col}let X=this.origin(S,Z,y,R);return X?v=new f(b,X.endLine===void 0?X.line:{column:X.column,line:X.line},X.endLine===void 0?X.column:{column:X.endColumn,line:X.endLine},X.source,X.file,I.plugin):v=new f(b,y===void 0?S:{column:Z,line:S},y===void 0?Z:{column:R,line:y},this.css,this.file,I.plugin),v.input={column:Z,endColumn:R,endLine:y,endOffset:g,line:S,offset:V,source:this.css},this.file&&(d&&(v.input.url=d(this.file).toString()),v.input.file=this.file),v}fromLineAndColumn(b,S){return i(this)[b-1]+S-1}fromOffset(b){let S=i(this),Z=S[S.length-1],I=0;if(b>=Z)I=S.length-1;else{let R=S.length-2,y;for(;I<R;)if(y=I+(R-I>>1),b<S[y])R=y-1;else if(b>=S[y+1])I=y+1;else{I=y;break}}return{col:b-S[I]+1,line:I+1}}mapResolve(b){return/^\w+:\/\//.test(b)?b:s(this.map.consumer().sourceRoot||this.map.root||".",b)}origin(b,S,Z,I){if(!this.map)return!1;let R=this.map.consumer(),y=R.originalPositionFor({column:S-1,line:b});if(!y.source)return!1;let g;if(typeof Z=="number"){let W=R.originalPositionFor({column:I-1,line:Z});W.source&&(g=W)}let V;t(y.source)?V=d(y.source):V=new URL(y.source,this.map.consumer().sourceRoot||d(this.map.mapFile));let v={column:y.column+1,endColumn:g&&g.column+1,endLine:g&&g.line,line:y.line,url:V.toString()};if(V.protocol==="file:")if(l)v.file=l(V);else throw new Error("file: protocol is not available in this PostCSS build");let X=R.sourceContentFor(y.source);return X&&(v.source=X),v}toJSON(){let b={};for(let S of["hasBOM","css","file","id"])this[S]!=null&&(b[S]=this[S]);return this.map&&(b.map=H({},this.map),b.map.consumerCache&&(b.map.consumerCache=void 0)),b}}return Xi=c,c.default=c,h&&h.registerInput&&h.registerInput(c),Xi}var Vi,Cl;function Mt(){if(Cl)return Vi;Cl=1;let e=qe(),t,s;class n extends e{constructor(l){super(l),this.type="root",this.nodes||(this.nodes=[])}normalize(l,d,f){let m=new Set;for(let p of Array.isArray(l)?l:[l])p&&typeof p=="object"&&!p.parent&&p.raws&&typeof p.raws.before<"u"&&m.add(p.raws);let h=super.normalize(l);if(d){if(f==="prepend")this.nodes.length>1?d.raws.before=this.nodes[1].raws.before:delete d.raws.before;else if(this.first!==d)for(let p of h)m.has(p.raws)||(p.raws.before=d.raws.before)}return h}removeChild(l,d){let f=this.index(l);return!d&&f===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[f].raws.before),super.removeChild(l)}toResult(l={}){return new t(new s,this,l).stringify()}}return n.registerLazyResult=r=>{t=r},n.registerProcessor=r=>{s=r},Vi=n,n.default=n,e.registerRoot(n),Vi}var Gi,xl;function Tl(){if(xl)return Gi;xl=1;let e={comma(t){return e.split(t,[","],!0)},space(t){let s=[" ",`
340
+ `," "];return e.split(t,s)},split(t,s,n){if(typeof t!="string")return[];let r=[],l="",d=!1,f=0,m=!1,h="",p=!1;for(let o of t)p?p=!1:o==="\\"?p=!0:m?o===h&&(m=!1):o==='"'||o==="'"?(m=!0,h=o):o==="("?f+=1:o===")"?f>0&&(f-=1):f===0&&s.includes(o)&&(d=!0),d?(l!==""&&r.push(l.trim()),l="",d=!1):l+=o;return(n||l!=="")&&r.push(l.trim()),r}};return Gi=e,e.default=e,Gi}var Ri,Ll;function vi(){if(Ll)return Ri;Ll=1;let e=qe(),t=Tl();class s extends e{get selectors(){return t.comma(this.selector)}set selectors(r){let l=this.selector?this.selector.match(/,\s*/):null,d=l?l[0]:","+this.raw("between","beforeOpen");this.selector=r.join(d)}constructor(r){super(r),this.type="rule",this.nodes||(this.nodes=[])}}return Ri=s,s.default=s,e.registerRule(s),Ri}var Wi,Nl;function qh(){if(Nl)return Wi;Nl=1;let e=yi(),t=Ns(),s=Js(),n=Ys(),r=wl(),l=Mt(),d=vi();function f(p,o){return p.inputs?p.inputs.map(a=>{let i=Xe(H({},a),{__proto__:n.prototype});return i.map&&(i.map=Xe(H({},i.map),{__proto__:r.prototype})),i}):o}function m(p,o,a){let i=H({},p);if(delete i.inputs,delete i.nodes,i.source){let u=i.source,{inputId:b}=u,S=ms(u,["inputId"]);i.source=S,b!=null&&(i.source.input=o[b])}let c;if(i.type==="root")c=new l(i);else if(i.type==="decl")c=new s(i);else if(i.type==="rule")c=new d(i);else if(i.type==="comment")c=new t(i);else if(i.type==="atrule")c=new e(i);else throw new Error("Unknown node type: "+p.type);if(a){c.nodes=a;for(let u of a)u.parent=c}return c}function h(p,o){if(Array.isArray(p))return p.map(c=>h(c));let a,i=[{childIndex:0,children:[],inputs:f(p,o),json:p}];for(;i.length>0;){let c=i[i.length-1],u=c.json.nodes;if(u&&c.childIndex<u.length){let S=u[c.childIndex];c.childIndex+=1,i.push({childIndex:0,children:[],inputs:f(S,c.inputs),json:S});continue}i.pop();let b=m(c.json,c.inputs,u?c.children:void 0);i.length>0?i[i.length-1].children.push(b):a=b}return a}return Wi=h,h.default=h,Wi}var wi,Jl;function Yl(){if(Jl)return wi;Jl=1;let{dirname:e,relative:t,resolve:s,sep:n}=Ee,{SourceMapConsumer:r,SourceMapGenerator:l}=Ee,{pathToFileURL:d}=Ee,f=Ys(),m=!!(r&&l),h=!!(e&&s&&t&&n);class p{constructor(a,i,c,u){this.stringify=a,this.mapOpts=c.map||{},this.root=i,this.opts=c,this.css=u,this.originalCSS=u,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let a;this.isInline()?a="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?a=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?a=this.mapOpts.annotation(this.opts.to,this.root):a=this.outputFile()+".map";let i=`
341
341
  `;this.css.includes(`\r
342
342
  `)&&(i=`\r
343
343
  `),this.css+=i+"/*# sourceMappingURL="+a+" */"}applyPrevMaps(){for(let a of this.previous()){let i=this.toUrl(this.path(a.file)),c=a.root||e(a.file),u;this.mapOpts.sourcesContent===!1?(u=new r(a.text),u.sourcesContent&&(u.sourcesContent=null)):u=a.consumer(),this.map.applySourceMap(u,i,this.toUrl(this.path(c)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1){if(this.root){let a;for(let i=this.root.nodes.length-1;i>=0;i--)a=this.root.nodes[i],a.type==="comment"&&a.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(i)}else if(this.css){let a;for(;(a=this.css.lastIndexOf("/*#"))!==-1;){let i=this.css.indexOf("*/",a+3);if(i===-1)break;for(;a>0&&this.css[a-1]===`
344
344
  `;)a--;this.css=this.css.slice(0,a)+this.css.slice(i+2)}}}}generate(){if(this.clearAnnotation(),h&&m&&this.isMap())return this.generateMap();{let a="";return this.stringify(this.root,i=>{a+=i}),[a]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let a=this.previous()[0].consumer();a.file=this.outputFile(),this.map=l.fromSourceMap(a,{ignoreInvalidMapping:!0})}else this.map=new l({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>"});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new l({file:this.outputFile(),ignoreInvalidMapping:!0});let a=1,i=1,c="<no source>",u={generated:{column:0,line:0},original:{column:0,line:0},source:""},b,S;this.stringify(this.root,(Z,I,R)=>{if(this.css+=Z,I&&R!=="end"&&(u.generated.line=a,u.generated.column=i-1,I.source&&I.source.start?(u.source=this.sourcePath(I),u.original.line=I.source.start.line,u.original.column=I.source.start.column-1,this.map.addMapping(u)):(u.source=c,u.original.line=1,u.original.column=0,this.map.addMapping(u))),S=Z.match(/\n/g),S?(a+=S.length,b=Z.lastIndexOf(`
345
- `),i=Z.length-b):i+=Z.length,I&&R!=="start"){let y=I.parent||{raws:{}};(!(I.type==="decl"||I.type==="atrule"&&!I.nodes)||I!==y.last||y.raws.semicolon)&&(I.source&&I.source.end?(u.source=this.sourcePath(I),u.original.line=I.source.end.line,u.original.column=I.source.end.column-1,u.generated.line=a,u.generated.column=i-2,this.map.addMapping(u)):(u.source=c,u.original.line=1,u.original.column=0,u.generated.line=a,u.generated.column=i-1,this.map.addMapping(u)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(a=>a.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let a=this.mapOpts.annotation;return typeof a<"u"&&a!==!0?!1:this.previous().length?this.previous().some(i=>i.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(a=>a.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(a){if(this.mapOpts.absolute||a.charCodeAt(0)===60||/^\w+:\/\//.test(a))return a;let i=this.memoizedPaths.get(a);if(i)return i;let c=this.opts.to?e(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(c=e(s(c,this.mapOpts.annotation)));let u=t(c,a);return this.memoizedPaths.set(a,u),u}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(a=>{if(a.source&&a.source.input.map){let i=a.source.input.map;this.previousMaps.includes(i)||this.previousMaps.push(i)}});else{let a=new f(this.originalCSS,this.opts);a.map&&this.previousMaps.push(a.map)}return this.previousMaps}setSourcesContent(){let a={};if(this.root)this.root.walk(i=>{if(i.source){let c=i.source.input.from;if(c&&!a[c]){a[c]=!0;let u=this.usesFileUrls?this.toFileUrl(c):this.toUrl(this.path(c));this.map.setSourceContent(u,i.source.input.css)}}});else if(this.css){let i=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(i,this.css)}}sourcePath(a){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(a.source.input.from):this.toUrl(this.path(a.source.input.from))}toBase64(a){return Buffer?Buffer.from(a).toString("base64"):window.btoa(unescape(encodeURIComponent(a)))}toFileUrl(a){let i=this.memoizedFileURLs.get(a);if(i)return i;if(d){let c=d(a).toString();return this.memoizedFileURLs.set(a,c),c}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(a){let i=this.memoizedURLs.get(a);if(i)return i;n==="\\"&&(a=a.replace(/\\/g,"/"));let c=encodeURI(a).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(a,c),c}}return Wi=p,Wi}var wi,Jl;function $h(){if(Jl)return wi;Jl=1;const e=39,t=34,s=92,n=47,r=10,l=32,d=12,f=9,m=13,h=91,p=93,o=40,a=41,i=123,c=125,u=59,b=42,S=58,Z=64,I=/[\t\n\f\r "#'()/;[\\\]{}]/g,R=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,y=/.[\r\n"'(/\\]/,g=/[\da-f]/i;return wi=function(V,v={}){let X=V.css.valueOf(),W=v.ignoreErrors,k,N,j,G,w,T,Y,M,J,q,B=X.length,C=0,oe=[],ue=[],le=-1;function Se(){return C}function U(E){throw V.error("Unclosed "+E,C)}function K(){return ue.length===0&&C>=B}function O(E){if(ue.length)return ue.pop();if(C>=B)return;let D=E?E.ignoreUnclosed:!1;switch(k=X.charCodeAt(C),k){case r:case l:case f:case m:case d:{G=C;do G+=1,k=X.charCodeAt(G);while(k===l||k===r||k===f||k===m||k===d);T=["space",X.slice(C,G)],C=G-1;break}case h:case p:case i:case c:case S:case u:case a:{let _=String.fromCharCode(k);T=[_,_,C];break}case o:{if(q=oe.length?oe.pop()[1]:"",J=X.charCodeAt(C+1),q==="url"&&J!==e&&J!==t&&J!==l&&J!==r&&J!==f&&J!==d&&J!==m){G=C;do{if(Y=!1,G=X.indexOf(")",G+1),G===-1)if(W||D){G=C;break}else U("bracket");for(M=G;X.charCodeAt(M-1)===s;)M-=1,Y=!Y}while(Y);T=["brackets",X.slice(C,G+1),C,G],C=G}else C<=le?T=["(","(",C]:(G=X.indexOf(")",C+1),N=X.slice(C,G+1),G===-1||y.test(N)?(le=G===-1?B:G,T=["(","(",C]):(T=["brackets",N,C,G],C=G));break}case e:case t:{w=k===e?"'":'"',G=C;do{if(Y=!1,G=X.indexOf(w,G+1),G===-1)if(W||D){G=C+1;break}else U("string");for(M=G;X.charCodeAt(M-1)===s;)M-=1,Y=!Y}while(Y);T=["string",X.slice(C,G+1),C,G],C=G;break}case Z:{I.lastIndex=C+1,I.test(X),I.lastIndex===0?G=X.length-1:G=I.lastIndex-2,T=["at-word",X.slice(C,G+1),C,G],C=G;break}case s:{for(G=C,j=!0;X.charCodeAt(G+1)===s;)G+=1,j=!j;if(k=X.charCodeAt(G+1),j&&k!==n&&k!==l&&k!==r&&k!==f&&k!==m&&k!==d&&(G+=1,g.test(X.charAt(G)))){for(;g.test(X.charAt(G+1));)G+=1;X.charCodeAt(G+1)===l&&(G+=1)}T=["word",X.slice(C,G+1),C,G],C=G;break}default:{k===n&&X.charCodeAt(C+1)===b?(G=X.indexOf("*/",C+2)+1,G===0&&(W||D?G=X.length:U("comment")),T=["comment",X.slice(C,G+1),C,G],C=G):(R.lastIndex=C+1,R.test(X),R.lastIndex===0?G=X.length-1:G=R.lastIndex-2,T=["word",X.slice(C,G+1),C,G],oe.push(T),C=G);break}}return C++,T}function z(E){ue.push(E)}return{back:z,endOfFile:K,nextToken:O,position:Se}},wi}var ki,Yl;function qh(){if(Yl)return ki;Yl=1;let e=bi(),t=Ns(),s=Js(),n=Ot(),r=Ri(),l=$h();const d={empty:!0,space:!0};function f(p){for(let o=p.length-1;o>=0;o--){let a=p[o],i=a[3]||a[2];if(i)return i}}function m(p,o,a){let i="";for(let c=o;c<a;c++)i+=p[c][1];return i}class h{constructor(o){this.input=o,this.root=new n,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:o,start:{column:1,line:1,offset:0}}}atrule(o){let a=new e;a.name=o[1].slice(1),a.name===""&&this.unnamedAtrule(a,o),this.init(a,o[2]);let i,c,u,b=!1,S=!1,Z=[],I=[];for(;!this.tokenizer.endOfFile();){if(o=this.tokenizer.nextToken(),i=o[0],i==="("||i==="["?I.push(i==="("?")":"]"):i==="{"&&I.length>0?I.push("}"):i===I[I.length-1]&&I.pop(),I.length===0)if(i===";"){a.source.end=this.getPosition(o[2]),a.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){S=!0;break}else if(i==="}"){if(Z.length>0){for(u=Z.length-1,c=Z[u];c&&c[0]==="space";)c=Z[--u];c&&(a.source.end=this.getPosition(c[3]||c[2]),a.source.end.offset++)}this.end(o);break}else Z.push(o);else Z.push(o);if(this.tokenizer.endOfFile()){b=!0;break}}a.raws.between=this.spacesAndCommentsFromEnd(Z),Z.length?(a.raws.afterName=this.spacesAndCommentsFromStart(Z),this.raw(a,"params",Z),b&&(o=Z[Z.length-1],a.source.end=this.getPosition(o[3]||o[2]),a.source.end.offset++,this.spaces=a.raws.between,a.raws.between="")):(a.raws.afterName="",a.params=""),S&&(a.nodes=[],this.current=a)}checkMissedSemicolon(o){let a=this.colon(o);if(a===!1)return;let i=0,c;for(let u=a-1;u>=0&&(c=o[u],!(c[0]!=="space"&&(i+=1,i===2)));u--);throw this.input.error("Missed semicolon",c[0]==="word"?c[3]+1:c[2])}colon(o){let a=0,i,c,u;for(let[b,S]of o.entries()){if(c=S,u=c[0],u==="("&&(a+=1),u===")"&&(a-=1),a===0&&u===":")if(!i)this.doubleColon(c);else{if(i[0]==="word"&&i[1]==="progid")continue;return b}i=c}return!1}comment(o){let a=new t;this.init(a,o[2]),a.source.end=this.getPosition(o[3]||o[2]),a.source.end.offset++;let i=o[1].slice(2,-2);if(!i.trim())a.text="",a.raws.left=i,a.raws.right="";else{let c=i.match(/^(\s*)([^]*\S)(\s*)$/);a.text=c[2],a.raws.left=c[1],a.raws.right=c[3]}}createTokenizer(){this.tokenizer=l(this.input)}decl(o,a){let i=new s;this.init(i,o[0][2]);let c=o[o.length-1];c[0]===";"&&(this.semicolon=!0,o.pop()),i.source.end=this.getPosition(c[3]||c[2]||f(o)),i.source.end.offset++;let u=0;for(;o[u][0]!=="word";)u===o.length-1&&this.unknownWord([o[u]]),u++;i.raws.before+=m(o,0,u),i.source.start=this.getPosition(o[u][2]);let b=u;for(;u<o.length;){let y=o[u][0];if(y===":"||y==="space"||y==="comment")break;u++}i.prop=m(o,b,u);let S=u,Z;for(;u<o.length&&(Z=o[u],u++,Z[0]!==":");)Z[0]==="word"&&/\w/.test(Z[1])&&this.unknownWord([Z]);i.raws.between=m(o,S,u),(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let I=u;for(;u<o.length;){let y=o[u][0];if(y!=="space"&&y!=="comment")break;u++}let R=o.slice(I,u);o=o.slice(u),this.precheckMissedSemicolon(o);for(let y=o.length-1;y>=0;y--){if(Z=o[y],Z[1].toLowerCase()==="!important"){i.important=!0;let g=this.stringFrom(o,y);g=this.spacesFromEnd(o)+g,g!==" !important"&&(i.raws.important=g);break}else if(Z[1].toLowerCase()==="important"){let g=o.slice(0),V="";for(let v=y;v>0;v--){let X=g[v][0];if(V.trim().startsWith("!")&&X!=="space")break;V=g.pop()[1]+V}V.trim().startsWith("!")&&(i.important=!0,i.raws.important=V,o=g)}if(Z[0]!=="space"&&Z[0]!=="comment")break}o.some(y=>y[0]!=="space"&&y[0]!=="comment")&&(i.raws.between+=R.map(y=>y[1]).join(""),R=[]),this.raw(i,"value",R.concat(o),a),i.value.includes(":")&&!a&&this.checkMissedSemicolon(o)}doubleColon(o){throw this.input.error("Double colon",{offset:o[2]},{offset:o[2]+o[1].length})}emptyRule(o){let a=new r;this.init(a,o[2]),a.selector="",a.raws.between="",this.current=a}end(o){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(o[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(o)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(o){if(this.spaces+=o[1],this.current.nodes){let a=this.current.nodes[this.current.nodes.length-1];a&&a.type==="rule"&&!a.raws.ownSemicolon&&(a.raws.ownSemicolon=this.spaces,this.spaces="",a.source.end=this.getPosition(o[2]),a.source.end.offset+=a.raws.ownSemicolon.length)}}getPosition(o){let a=this.input.fromOffset(o);return{column:a.col,line:a.line,offset:o}}init(o,a){this.current.push(o),o.source={input:this.input,start:this.getPosition(a)},o.raws.before=this.spaces,this.spaces="",o.type!=="comment"&&(this.semicolon=!1)}other(o){let a=!1,i=null,c=!1,u=null,b=[],S=o[1].startsWith("--"),Z=[],I=o;for(;I;){if(i=I[0],Z.push(I),i==="("||i==="[")u||(u=I),b.push(i==="("?")":"]");else if(S&&c&&i==="{")u||(u=I),b.push("}");else if(b.length===0)if(i===";")if(c){this.decl(Z,S);return}else break;else if(i==="{"){this.rule(Z);return}else if(i==="}"){this.tokenizer.back(Z.pop()),a=!0;break}else i===":"&&(c=!0);else i===b[b.length-1]&&(b.pop(),b.length===0&&(u=null));I=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(a=!0),b.length>0&&this.unclosedBracket(u),a&&c){if(!S)for(;Z.length&&(I=Z[Z.length-1][0],!(I!=="space"&&I!=="comment"));)this.tokenizer.back(Z.pop());this.decl(Z,S)}else this.unknownWord(Z)}parse(){let o;for(;!this.tokenizer.endOfFile();)switch(o=this.tokenizer.nextToken(),o[0]){case"space":this.spaces+=o[1];break;case";":this.freeSemicolon(o);break;case"}":this.end(o);break;case"comment":this.comment(o);break;case"at-word":this.atrule(o);break;case"{":this.emptyRule(o);break;default:this.other(o);break}this.endFile()}precheckMissedSemicolon(){}raw(o,a,i,c){let u,b,S=i.length,Z="",I=!0,R,y;for(let g=0;g<S;g+=1)u=i[g],b=u[0],b==="space"&&g===S-1&&!c?I=!1:b==="comment"?(y=i[g-1]?i[g-1][0]:"empty",R=i[g+1]?i[g+1][0]:"empty",!d[y]&&!d[R]?Z.slice(-1)===","?I=!1:Z+=u[1]:I=!1):Z+=u[1];if(!I){let g=i.reduce((V,v)=>V+v[1],"");o.raws[a]={raw:g,value:Z}}o[a]=Z}rule(o){o.pop();let a=new r;this.init(a,o[0][2]),a.raws.between=this.spacesAndCommentsFromEnd(o),this.raw(a,"selector",o),this.current=a}spacesAndCommentsFromEnd(o){let a,i="";for(;o.length&&(a=o[o.length-1][0],!(a!=="space"&&a!=="comment"));)i=o.pop()[1]+i;return i}spacesAndCommentsFromStart(o){let a,i="";for(;o.length&&(a=o[0][0],!(a!=="space"&&a!=="comment"));)i+=o.shift()[1];return i}spacesFromEnd(o){let a,i="";for(;o.length&&(a=o[o.length-1][0],a==="space");)i=o.pop()[1]+i;return i}stringFrom(o,a){let i="";for(let c=a;c<o.length;c++)i+=o[c][1];return o.splice(a,o.length-a),i}unclosedBlock(){let o=this.current.source.start;throw this.input.error("Unclosed block",o.line,o.column)}unclosedBracket(o){throw this.input.error("Unclosed bracket",{offset:o[2]},{offset:o[2]+1})}unexpectedClose(o){throw this.input.error("Unexpected }",{offset:o[2]},{offset:o[2]+1})}unknownWord(o){throw this.input.error("Unknown word "+o[0][1],{offset:o[0][2]},{offset:o[0][2]+o[0][1].length})}unnamedAtrule(o,a){throw this.input.error("At-rule without name",{offset:a[2]},{offset:a[2]+a[1].length})}}return ki=h,ki}var Ci,Ul;function xi(){if(Ul)return Ci;Ul=1;let e=qe(),t=Ys(),s=qh();function n(r,l){let d=new t(r,l),f=new s(d);try{f.parse()}catch(m){throw process.env.NODE_ENV!=="production"&&m.name==="CssSyntaxError"&&l&&l.from&&(/\.scss$/i.test(l.from)?m.message+=`
345
+ `),i=Z.length-b):i+=Z.length,I&&R!=="start"){let y=I.parent||{raws:{}};(!(I.type==="decl"||I.type==="atrule"&&!I.nodes)||I!==y.last||y.raws.semicolon)&&(I.source&&I.source.end?(u.source=this.sourcePath(I),u.original.line=I.source.end.line,u.original.column=I.source.end.column-1,u.generated.line=a,u.generated.column=i-2,this.map.addMapping(u)):(u.source=c,u.original.line=1,u.original.column=0,u.generated.line=a,u.generated.column=i-1,this.map.addMapping(u)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(a=>a.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let a=this.mapOpts.annotation;return typeof a<"u"&&a!==!0?!1:this.previous().length?this.previous().some(i=>i.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(a=>a.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(a){if(this.mapOpts.absolute||a.charCodeAt(0)===60||/^\w+:\/\//.test(a))return a;let i=this.memoizedPaths.get(a);if(i)return i;let c=this.opts.to?e(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(c=e(s(c,this.mapOpts.annotation)));let u=t(c,a);return this.memoizedPaths.set(a,u),u}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(a=>{if(a.source&&a.source.input.map){let i=a.source.input.map;this.previousMaps.includes(i)||this.previousMaps.push(i)}});else{let a=new f(this.originalCSS,this.opts);a.map&&this.previousMaps.push(a.map)}return this.previousMaps}setSourcesContent(){let a={};if(this.root)this.root.walk(i=>{if(i.source){let c=i.source.input.from;if(c&&!a[c]){a[c]=!0;let u=this.usesFileUrls?this.toFileUrl(c):this.toUrl(this.path(c));this.map.setSourceContent(u,i.source.input.css)}}});else if(this.css){let i=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(i,this.css)}}sourcePath(a){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(a.source.input.from):this.toUrl(this.path(a.source.input.from))}toBase64(a){return Buffer?Buffer.from(a).toString("base64"):window.btoa(unescape(encodeURIComponent(a)))}toFileUrl(a){let i=this.memoizedFileURLs.get(a);if(i)return i;if(d){let c=d(a).toString();return this.memoizedFileURLs.set(a,c),c}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(a){let i=this.memoizedURLs.get(a);if(i)return i;n==="\\"&&(a=a.replace(/\\/g,"/"));let c=encodeURI(a).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(a,c),c}}return wi=p,wi}var ki,Ul;function ep(){if(Ul)return ki;Ul=1;const e=39,t=34,s=92,n=47,r=10,l=32,d=12,f=9,m=13,h=91,p=93,o=40,a=41,i=123,c=125,u=59,b=42,S=58,Z=64,I=/[\t\n\f\r "#'()/;[\\\]{}]/g,R=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,y=/.[\r\n"'(/\\]/,g=/[\da-f]/i;return ki=function(V,v={}){let X=V.css.valueOf(),W=v.ignoreErrors,k,N,j,G,w,T,Y,O,J,q,B=X.length,C=0,oe=[],ue=[],le=-1;function Se(){return C}function U(E){throw V.error("Unclosed "+E,C)}function K(){return ue.length===0&&C>=B}function M(E){if(ue.length)return ue.pop();if(C>=B)return;let D=E?E.ignoreUnclosed:!1;switch(k=X.charCodeAt(C),k){case r:case l:case f:case m:case d:{G=C;do G+=1,k=X.charCodeAt(G);while(k===l||k===r||k===f||k===m||k===d);T=["space",X.slice(C,G)],C=G-1;break}case h:case p:case i:case c:case S:case u:case a:{let _=String.fromCharCode(k);T=[_,_,C];break}case o:{if(q=oe.length?oe.pop()[1]:"",J=X.charCodeAt(C+1),q==="url"&&J!==e&&J!==t&&J!==l&&J!==r&&J!==f&&J!==d&&J!==m){G=C;do{if(Y=!1,G=X.indexOf(")",G+1),G===-1)if(W||D){G=C;break}else U("bracket");for(O=G;X.charCodeAt(O-1)===s;)O-=1,Y=!Y}while(Y);T=["brackets",X.slice(C,G+1),C,G],C=G}else C<=le?T=["(","(",C]:(G=X.indexOf(")",C+1),N=X.slice(C,G+1),G===-1||y.test(N)?(le=G===-1?B:G,T=["(","(",C]):(T=["brackets",N,C,G],C=G));break}case e:case t:{w=k===e?"'":'"',G=C;do{if(Y=!1,G=X.indexOf(w,G+1),G===-1)if(W||D){G=C+1;break}else U("string");for(O=G;X.charCodeAt(O-1)===s;)O-=1,Y=!Y}while(Y);T=["string",X.slice(C,G+1),C,G],C=G;break}case Z:{I.lastIndex=C+1,I.test(X),I.lastIndex===0?G=X.length-1:G=I.lastIndex-2,T=["at-word",X.slice(C,G+1),C,G],C=G;break}case s:{for(G=C,j=!0;X.charCodeAt(G+1)===s;)G+=1,j=!j;if(k=X.charCodeAt(G+1),j&&k!==n&&k!==l&&k!==r&&k!==f&&k!==m&&k!==d&&(G+=1,g.test(X.charAt(G)))){for(;g.test(X.charAt(G+1));)G+=1;X.charCodeAt(G+1)===l&&(G+=1)}T=["word",X.slice(C,G+1),C,G],C=G;break}default:{k===n&&X.charCodeAt(C+1)===b?(G=X.indexOf("*/",C+2)+1,G===0&&(W||D?G=X.length:U("comment")),T=["comment",X.slice(C,G+1),C,G],C=G):(R.lastIndex=C+1,R.test(X),R.lastIndex===0?G=X.length-1:G=R.lastIndex-2,T=["word",X.slice(C,G+1),C,G],oe.push(T),C=G);break}}return C++,T}function z(E){ue.push(E)}return{back:z,endOfFile:K,nextToken:M,position:Se}},ki}var Ci,Fl;function tp(){if(Fl)return Ci;Fl=1;let e=yi(),t=Ns(),s=Js(),n=Mt(),r=vi(),l=ep();const d={empty:!0,space:!0};function f(p){for(let o=p.length-1;o>=0;o--){let a=p[o],i=a[3]||a[2];if(i)return i}}function m(p,o,a){let i="";for(let c=o;c<a;c++)i+=p[c][1];return i}class h{constructor(o){this.input=o,this.root=new n,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:o,start:{column:1,line:1,offset:0}}}atrule(o){let a=new e;a.name=o[1].slice(1),a.name===""&&this.unnamedAtrule(a,o),this.init(a,o[2]);let i,c,u,b=!1,S=!1,Z=[],I=[];for(;!this.tokenizer.endOfFile();){if(o=this.tokenizer.nextToken(),i=o[0],i==="("||i==="["?I.push(i==="("?")":"]"):i==="{"&&I.length>0?I.push("}"):i===I[I.length-1]&&I.pop(),I.length===0)if(i===";"){a.source.end=this.getPosition(o[2]),a.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){S=!0;break}else if(i==="}"){if(Z.length>0){for(u=Z.length-1,c=Z[u];c&&c[0]==="space";)c=Z[--u];c&&(a.source.end=this.getPosition(c[3]||c[2]),a.source.end.offset++)}this.end(o);break}else Z.push(o);else Z.push(o);if(this.tokenizer.endOfFile()){b=!0;break}}a.raws.between=this.spacesAndCommentsFromEnd(Z),Z.length?(a.raws.afterName=this.spacesAndCommentsFromStart(Z),this.raw(a,"params",Z),b&&(o=Z[Z.length-1],a.source.end=this.getPosition(o[3]||o[2]),a.source.end.offset++,this.spaces=a.raws.between,a.raws.between="")):(a.raws.afterName="",a.params=""),S&&(a.nodes=[],this.current=a)}checkMissedSemicolon(o){let a=this.colon(o);if(a===!1)return;let i=0,c;for(let u=a-1;u>=0&&(c=o[u],!(c[0]!=="space"&&(i+=1,i===2)));u--);throw this.input.error("Missed semicolon",c[0]==="word"?c[3]+1:c[2])}colon(o){let a=0,i,c,u;for(let[b,S]of o.entries()){if(c=S,u=c[0],u==="("&&(a+=1),u===")"&&(a-=1),a===0&&u===":")if(!i)this.doubleColon(c);else{if(i[0]==="word"&&i[1]==="progid")continue;return b}i=c}return!1}comment(o){let a=new t;this.init(a,o[2]),a.source.end=this.getPosition(o[3]||o[2]),a.source.end.offset++;let i=o[1].slice(2,-2);if(!i.trim())a.text="",a.raws.left=i,a.raws.right="";else{let c=i.match(/^(\s*)([^]*\S)(\s*)$/);a.text=c[2],a.raws.left=c[1],a.raws.right=c[3]}}createTokenizer(){this.tokenizer=l(this.input)}decl(o,a){let i=new s;this.init(i,o[0][2]);let c=o[o.length-1];c[0]===";"&&(this.semicolon=!0,o.pop()),i.source.end=this.getPosition(c[3]||c[2]||f(o)),i.source.end.offset++;let u=0;for(;o[u][0]!=="word";)u===o.length-1&&this.unknownWord([o[u]]),u++;i.raws.before+=m(o,0,u),i.source.start=this.getPosition(o[u][2]);let b=u;for(;u<o.length;){let y=o[u][0];if(y===":"||y==="space"||y==="comment")break;u++}i.prop=m(o,b,u);let S=u,Z;for(;u<o.length&&(Z=o[u],u++,Z[0]!==":");)Z[0]==="word"&&/\w/.test(Z[1])&&this.unknownWord([Z]);i.raws.between=m(o,S,u),(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let I=u;for(;u<o.length;){let y=o[u][0];if(y!=="space"&&y!=="comment")break;u++}let R=o.slice(I,u);o=o.slice(u),this.precheckMissedSemicolon(o);for(let y=o.length-1;y>=0;y--){if(Z=o[y],Z[1].toLowerCase()==="!important"){i.important=!0;let g=this.stringFrom(o,y);g=this.spacesFromEnd(o)+g,g!==" !important"&&(i.raws.important=g);break}else if(Z[1].toLowerCase()==="important"){let g=o.slice(0),V="";for(let v=y;v>0;v--){let X=g[v][0];if(V.trim().startsWith("!")&&X!=="space")break;V=g.pop()[1]+V}V.trim().startsWith("!")&&(i.important=!0,i.raws.important=V,o=g)}if(Z[0]!=="space"&&Z[0]!=="comment")break}o.some(y=>y[0]!=="space"&&y[0]!=="comment")&&(i.raws.between+=R.map(y=>y[1]).join(""),R=[]),this.raw(i,"value",R.concat(o),a),i.value.includes(":")&&!a&&this.checkMissedSemicolon(o)}doubleColon(o){throw this.input.error("Double colon",{offset:o[2]},{offset:o[2]+o[1].length})}emptyRule(o){let a=new r;this.init(a,o[2]),a.selector="",a.raws.between="",this.current=a}end(o){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(o[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(o)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(o){if(this.spaces+=o[1],this.current.nodes){let a=this.current.nodes[this.current.nodes.length-1];a&&a.type==="rule"&&!a.raws.ownSemicolon&&(a.raws.ownSemicolon=this.spaces,this.spaces="",a.source.end=this.getPosition(o[2]),a.source.end.offset+=a.raws.ownSemicolon.length)}}getPosition(o){let a=this.input.fromOffset(o);return{column:a.col,line:a.line,offset:o}}init(o,a){this.current.push(o),o.source={input:this.input,start:this.getPosition(a)},o.raws.before=this.spaces,this.spaces="",o.type!=="comment"&&(this.semicolon=!1)}other(o){let a=!1,i=null,c=!1,u=null,b=[],S=o[1].startsWith("--"),Z=[],I=o;for(;I;){if(i=I[0],Z.push(I),i==="("||i==="[")u||(u=I),b.push(i==="("?")":"]");else if(S&&c&&i==="{")u||(u=I),b.push("}");else if(b.length===0)if(i===";")if(c){this.decl(Z,S);return}else break;else if(i==="{"){this.rule(Z);return}else if(i==="}"){this.tokenizer.back(Z.pop()),a=!0;break}else i===":"&&(c=!0);else i===b[b.length-1]&&(b.pop(),b.length===0&&(u=null));I=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(a=!0),b.length>0&&this.unclosedBracket(u),a&&c){if(!S)for(;Z.length&&(I=Z[Z.length-1][0],!(I!=="space"&&I!=="comment"));)this.tokenizer.back(Z.pop());this.decl(Z,S)}else this.unknownWord(Z)}parse(){let o;for(;!this.tokenizer.endOfFile();)switch(o=this.tokenizer.nextToken(),o[0]){case"space":this.spaces+=o[1];break;case";":this.freeSemicolon(o);break;case"}":this.end(o);break;case"comment":this.comment(o);break;case"at-word":this.atrule(o);break;case"{":this.emptyRule(o);break;default:this.other(o);break}this.endFile()}precheckMissedSemicolon(){}raw(o,a,i,c){let u,b,S=i.length,Z="",I=!0,R,y;for(let g=0;g<S;g+=1)u=i[g],b=u[0],b==="space"&&g===S-1&&!c?I=!1:b==="comment"?(y=i[g-1]?i[g-1][0]:"empty",R=i[g+1]?i[g+1][0]:"empty",!d[y]&&!d[R]?Z.slice(-1)===","?I=!1:Z+=u[1]:I=!1):Z+=u[1];if(!I){let g=i.reduce((V,v)=>V+v[1],"");o.raws[a]={raw:g,value:Z}}o[a]=Z}rule(o){o.pop();let a=new r;this.init(a,o[0][2]),a.raws.between=this.spacesAndCommentsFromEnd(o),this.raw(a,"selector",o),this.current=a}spacesAndCommentsFromEnd(o){let a,i="";for(;o.length&&(a=o[o.length-1][0],!(a!=="space"&&a!=="comment"));)i=o.pop()[1]+i;return i}spacesAndCommentsFromStart(o){let a,i="";for(;o.length&&(a=o[0][0],!(a!=="space"&&a!=="comment"));)i+=o.shift()[1];return i}spacesFromEnd(o){let a,i="";for(;o.length&&(a=o[o.length-1][0],a==="space");)i=o.pop()[1]+i;return i}stringFrom(o,a){let i="";for(let c=a;c<o.length;c++)i+=o[c][1];return o.splice(a,o.length-a),i}unclosedBlock(){let o=this.current.source.start;throw this.input.error("Unclosed block",o.line,o.column)}unclosedBracket(o){throw this.input.error("Unclosed bracket",{offset:o[2]},{offset:o[2]+1})}unexpectedClose(o){throw this.input.error("Unexpected }",{offset:o[2]},{offset:o[2]+1})}unknownWord(o){throw this.input.error("Unknown word "+o[0][1],{offset:o[0][2]},{offset:o[0][2]+o[0][1].length})}unnamedAtrule(o,a){throw this.input.error("At-rule without name",{offset:a[2]},{offset:a[2]+a[1].length})}}return Ci=h,Ci}var xi,Ml;function Ti(){if(Ml)return xi;Ml=1;let e=qe(),t=Ys(),s=tp();function n(r,l){let d=new t(r,l),f=new s(d);try{f.parse()}catch(m){throw process.env.NODE_ENV!=="production"&&m.name==="CssSyntaxError"&&l&&l.from&&(/\.scss$/i.test(l.from)?m.message+=`
346
346
  You tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser`:/\.sass/i.test(l.from)?m.message+=`
347
347
  You tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser`:/\.less$/i.test(l.from)&&(m.message+=`
348
- You tried to parse Less with the standard CSS parser; try again with the postcss-less parser`)),m}return f.root}return Ci=n,n.default=n,e.registerParse(n),Ci}var Ti,Fl;function Ol(){if(Fl)return Ti;Fl=1;let e=qe(),{my:t}=Ts();class s{constructor(r,l={}){if(this.type="warning",this.text=r,l.node&&l.node.source){l.node[t]||e.rebuild(l.node);let d=l.node.rangeBy(l);this.line=d.start.line,this.column=d.start.column,this.endLine=d.end.line,this.endColumn=d.end.column}for(let d in l)this[d]=l[d]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}}return Ti=s,s.default=s,Ti}var Li,Ml;function Ni(){if(Ml)return Li;Ml=1;let e=Ol();class t{get content(){return this.css}constructor(n,r,l){this.processor=n,this.messages=[],this.root=r,this.opts=l,this.css="",this.map=void 0}toString(){return this.css}warn(n,r={}){r.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(r.plugin=this.lastPlugin.postcssPlugin);let l=new e(n,r);return this.messages.push(l),l}warnings(){return this.messages.filter(n=>n.type==="warning")}}return Li=t,t.default=t,Li}var Ji,Kl;function El(){if(Kl)return Ji;Kl=1;let e={};return Ji=function(t){e[t]||(e[t]=!0,typeof console<"u"&&console.warn&&console.warn(t))},Ji}var Yi,zl;function Pl(){if(zl)return Yi;zl=1;let e=qe(),t=gi(),s=Nl(),n=xi(),r=Ni(),l=Ot(),d=xs(),{isClean:f,my:m}=Ts(),h=El();const p={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},o={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},a={Once:!0,postcssPlugin:!0,prepare:!0},i=0;function c(R){return typeof R=="object"&&typeof R.then=="function"}function u(R){let y=!1,g=p[R.type];return R.type==="decl"?y=R.prop.toLowerCase():R.type==="atrule"&&(y=R.name.toLowerCase()),y&&R.append?[g,g+"-"+y,i,g+"Exit",g+"Exit-"+y]:y?[g,g+"-"+y,g+"Exit",g+"Exit-"+y]:R.append?[g,i,g+"Exit"]:[g,g+"Exit"]}function b(R){let y;return R.type==="document"?y=["Document",i,"DocumentExit"]:R.type==="root"?y=["Root",i,"RootExit"]:y=u(R),{eventIndex:0,events:y,iterator:0,node:R,visitorIndex:0,visitors:[]}}function S(R){let y=[R];for(;y.length>0;){let g=y.pop();if(g[f]=!1,g.nodes)for(let V of g.nodes)y.push(V)}return R}let Z={};class I{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(y,g,V){this.stringified=!1,this.processed=!1;let v;if(typeof g=="object"&&g!==null&&(g.type==="root"||g.type==="document"))v=S(g);else if(g instanceof I||g instanceof r)v=S(g.root),g.map&&(typeof V.map>"u"&&(V.map={}),V.map.inline||(V.map.inline=!1),V.map.prev=g.map);else{let X=n;V.syntax&&(X=V.syntax.parse),V.parser&&(X=V.parser),X.parse&&(X=X.parse);try{v=X(g,V)}catch(W){this.processed=!0,this.error=W}v&&!v[m]&&e.rebuild(v)}this.result=new r(y,v,V),this.helpers=Xe(H({},Z),{postcss:Z,result:this.result}),this.plugins=this.processor.plugins.map(X=>typeof X=="object"&&X.prepare?H(H({},X),X.prepare(this.result)):X)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(y){return this.async().catch(y)}finally(y){return this.async().then(y,y)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(y,g){let V=this.result.lastPlugin;try{if(g&&g.addToError(y),this.error=y,y.name==="CssSyntaxError"&&!y.plugin)y.plugin=V.postcssPlugin,y.setMessage();else if(V.postcssVersion&&process.env.NODE_ENV!=="production"){let v=V.postcssPlugin,X=V.postcssVersion,W=this.result.processor.version,k=X.split("."),N=W.split(".");(k[0]!==N[0]||parseInt(k[1])>parseInt(N[1]))&&console.error("Unknown error from PostCSS plugin. Your current PostCSS version is "+W+", but "+v+" uses "+X+". Perhaps this is the source of the error below.")}}catch(v){console&&console.error&&console.error(v)}return y}prepareVisitors(){this.listeners={};let y=(g,V,v)=>{this.listeners[V]||(this.listeners[V]=[]),this.listeners[V].push([g,v])};for(let g of this.plugins)if(typeof g=="object")for(let V in g){if(!o[V]&&/^[A-Z]/.test(V))throw new Error(`Unknown event ${V} in ${g.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!a[V])if(typeof g[V]=="object")for(let v in g[V])v==="*"?y(g,V,g[V][v]):y(g,V+"-"+v.toLowerCase(),g[V][v]);else typeof g[V]=="function"&&y(g,V,g[V])}this.hasListener=Object.keys(this.listeners).length>0}runAsync(){return We(this,null,function*(){this.plugin=0;for(let y=0;y<this.plugins.length;y++){let g=this.plugins[y],V=this.runOnRoot(g);if(c(V))try{yield V}catch(v){throw this.handleError(v)}}if(this.prepareVisitors(),this.hasListener){let y=this.result.root;for(;!y[f];){y[f]=!0;let g=[b(y)];for(;g.length>0;){let V=this.visitTick(g);if(c(V))try{yield V}catch(v){let X=g[g.length-1].node;throw this.handleError(v,X)}}}if(this.listeners.OnceExit)for(let[g,V]of this.listeners.OnceExit){this.result.lastPlugin=g;try{if(y.type==="document"){let v=y.nodes.map(X=>V(X,this.helpers));yield Promise.all(v)}else yield V(y,this.helpers)}catch(v){throw this.handleError(v)}}}return this.processed=!0,this.stringify()})}runOnRoot(y){this.result.lastPlugin=y;try{if(typeof y=="object"&&y.Once){if(this.result.root.type==="document"){let g=this.result.root.nodes.map(V=>y.Once(V,this.helpers));return c(g[0])?Promise.all(g):g}return y.Once(this.result.root,this.helpers)}else if(typeof y=="function")return y(this.result.root,this.result)}catch(g){throw this.handleError(g)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let y=this.result.opts,g=d;y.syntax&&(g=y.syntax.stringify),y.stringifier&&(g=y.stringifier),g.stringify&&(g=g.stringify);let V=this.result.root.source;if(y.map===void 0&&!(V&&V.input&&V.input.map)){let X="";return g(this.result.root,W=>{X+=W}),this.result.css=X,this.result}let v=new s(g,this.result.root,this.result.opts).generate();return this.result.css=v[0],this.result.map=v[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let y of this.plugins){let g=this.runOnRoot(y);if(c(g))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let y=this.result.root;for(;!y[f];)y[f]=!0,this.walkSync(y);if(this.listeners.OnceExit)if(y.type==="document")for(let g of y.nodes)this.visitSync(this.listeners.OnceExit,g);else this.visitSync(this.listeners.OnceExit,y)}return this.result}then(y,g){return process.env.NODE_ENV!=="production"&&("from"in this.opts||h("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.")),this.async().then(y,g)}toString(){return this.css}visitSync(y,g){for(let[V,v]of y){this.result.lastPlugin=V;let X;try{X=v(g,this.helpers)}catch(W){throw this.handleError(W,g.proxyOf)}if(g.type!=="root"&&g.type!=="document"&&!g.parent)return!0;if(c(X))throw this.getAsyncError()}}visitTick(y){let g=y[y.length-1],{node:V,visitors:v}=g;if(V.type!=="root"&&V.type!=="document"&&!V.parent){y.pop();return}if(v.length>0&&g.visitorIndex<v.length){let[W,k]=v[g.visitorIndex];g.visitorIndex+=1,g.visitorIndex===v.length&&(g.visitors=[],g.visitorIndex=0),this.result.lastPlugin=W;try{return k(V.toProxy(),this.helpers)}catch(N){throw this.handleError(N,V)}}if(g.iterator!==0){let W=g.iterator;g.descending&&(g.descending=!1,V.indexes[W]+=1);let k;for(;k=V.nodes[V.indexes[W]];){if(!k[f]){k[f]=!0,g.descending=!0,y.push(b(k));return}V.indexes[W]+=1}g.iterator=0,delete V.indexes[W]}let X=g.events;for(;g.eventIndex<X.length;){let W=X[g.eventIndex];if(g.eventIndex+=1,W===i){V.nodes&&V.nodes.length&&(V[f]=!0,g.iterator=V.getIterator());return}else if(this.listeners[W]){g.visitors=this.listeners[W];return}}y.pop()}walkSync(y){y[f]=!0;let g=[{eventIndex:0,events:u(y),iterator:0,node:y}];for(;g.length>0;){let V=g[g.length-1],v=V.node;if(V.iterator!==0){let X=V.iterator;V.descending&&(V.descending=!1,v.indexes[X]+=1);let W,k=!1;for(;W=v.nodes[v.indexes[X]];){if(!W[f]){W[f]=!0,V.descending=!0,g.push({eventIndex:0,events:u(W),iterator:0,node:W}),k=!0;break}v.indexes[X]+=1}if(k)continue;V.iterator=0,delete v.indexes[X]}if(V.eventIndex<V.events.length){let X=V.events[V.eventIndex];if(V.eventIndex+=1,X===i)v.nodes&&v.nodes.length&&(V.iterator=v.getIterator());else{let W=this.listeners[X];W&&this.visitSync(W,v.toProxy())&&g.pop()}continue}g.pop()}}warnings(){return this.sync().warnings()}}return I.registerPostcss=R=>{Z=R},Yi=I,I.default=I,l.registerLazyResult(I),t.registerLazyResult(I),Yi}var Ui,Hl;function ep(){if(Hl)return Ui;Hl=1;let e=Nl(),t=xi(),s=Ni(),n=xs(),r=El();class l{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let f,m=t;try{f=m(this._css,this._opts)}catch(h){this.error=h}if(this.error)throw this.error;return this._root=f,f}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(f,m,h){m=m.toString(),this.stringified=!1,this._processor=f,this._css=m,this._opts=h,this._map=void 0;let p=n;this.result=new s(this._processor,void 0,this._opts),this.result.css=m;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let a=new e(p,void 0,this._opts,m);if(a.isMap()){let[i,c]=a.generate();i&&(this.result.css=i),c&&(this.result.map=c)}else a.clearAnnotation(),this.result.css=a.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(f){return this.async().catch(f)}finally(f){return this.async().then(f,f)}sync(){if(this.error)throw this.error;return this.result}then(f,m){return process.env.NODE_ENV!=="production"&&("from"in this._opts||r("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.")),this.async().then(f,m)}toString(){return this._css}warnings(){return[]}}return Ui=l,l.default=l,Ui}var Fi,Dl;function tp(){if(Dl)return Fi;Dl=1;let e=gi(),t=Pl(),s=ep(),n=Ot();class r{constructor(d=[]){this.version="8.5.26",this.plugins=this.normalize(d)}normalize(d){let f=[];for(let m of d)if(m.postcss===!0?m=m():m.postcss&&(m=m.postcss),typeof m=="object"&&Array.isArray(m.plugins))f=f.concat(m.plugins);else if(typeof m=="object"&&m.postcssPlugin)f.push(m);else if(typeof m=="function")f.push(m);else if(typeof m=="object"&&(m.parse||m.stringify)){if(process.env.NODE_ENV!=="production")throw new Error("PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.")}else throw new Error(m+" is not a PostCSS plugin");return f}process(d,f={}){return!this.plugins.length&&!f.parser&&!f.stringifier&&!f.syntax?new s(this,d,f):new t(this,d,f)}use(d){return this.plugins=this.plugins.concat(this.normalize([d])),this}}return Fi=r,r.default=r,n.registerProcessor(r),e.registerProcessor(r),Fi}var Oi,Bl;function sp(){if(Bl)return Oi;Bl=1;let e=bi(),t=Ns(),s=qe(),n=li(),r=Js(),l=gi(),d=_h(),f=Ys(),m=Pl(),h=Cl(),p=Ls(),o=xi(),a=tp(),i=Ni(),c=Ot(),u=Ri(),b=xs(),S=Ol();function Z(...I){return I.length===1&&Array.isArray(I[0])&&(I=I[0]),new a(I)}return Z.plugin=function(I,R){let y=!1;function g(...v){console&&console.warn&&!y&&(y=!0,console.warn(I+`: postcss.plugin was deprecated. Migration guide:
348
+ You tried to parse Less with the standard CSS parser; try again with the postcss-less parser`)),m}return f.root}return xi=n,n.default=n,e.registerParse(n),xi}var Li,Ol;function Kl(){if(Ol)return Li;Ol=1;let e=qe(),{my:t}=Ts();class s{constructor(r,l={}){if(this.type="warning",this.text=r,l.node&&l.node.source){l.node[t]||e.rebuild(l.node);let d=l.node.rangeBy(l);this.line=d.start.line,this.column=d.start.column,this.endLine=d.end.line,this.endColumn=d.end.column}for(let d in l)this[d]=l[d]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}}return Li=s,s.default=s,Li}var Ni,El;function Ji(){if(El)return Ni;El=1;let e=Kl();class t{get content(){return this.css}constructor(n,r,l){this.processor=n,this.messages=[],this.root=r,this.opts=l,this.css="",this.map=void 0}toString(){return this.css}warn(n,r={}){r.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(r.plugin=this.lastPlugin.postcssPlugin);let l=new e(n,r);return this.messages.push(l),l}warnings(){return this.messages.filter(n=>n.type==="warning")}}return Ni=t,t.default=t,Ni}var Yi,zl;function Pl(){if(zl)return Yi;zl=1;let e={};return Yi=function(t){e[t]||(e[t]=!0,typeof console<"u"&&console.warn&&console.warn(t))},Yi}var Ui,Hl;function Dl(){if(Hl)return Ui;Hl=1;let e=qe(),t=Zi(),s=Yl(),n=Ti(),r=Ji(),l=Mt(),d=xs(),{isClean:f,my:m}=Ts(),h=Pl();const p={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},o={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},a={Once:!0,postcssPlugin:!0,prepare:!0},i=0;function c(R){return typeof R=="object"&&typeof R.then=="function"}function u(R){let y=!1,g=p[R.type];return R.type==="decl"?y=R.prop.toLowerCase():R.type==="atrule"&&(y=R.name.toLowerCase()),y&&R.append?[g,g+"-"+y,i,g+"Exit",g+"Exit-"+y]:y?[g,g+"-"+y,g+"Exit",g+"Exit-"+y]:R.append?[g,i,g+"Exit"]:[g,g+"Exit"]}function b(R){let y;return R.type==="document"?y=["Document",i,"DocumentExit"]:R.type==="root"?y=["Root",i,"RootExit"]:y=u(R),{eventIndex:0,events:y,iterator:0,node:R,visitorIndex:0,visitors:[]}}function S(R){let y=[R];for(;y.length>0;){let g=y.pop();if(g[f]=!1,g.nodes)for(let V of g.nodes)y.push(V)}return R}let Z={};class I{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(y,g,V){this.stringified=!1,this.processed=!1;let v;if(typeof g=="object"&&g!==null&&(g.type==="root"||g.type==="document"))v=S(g);else if(g instanceof I||g instanceof r)v=S(g.root),g.map&&(typeof V.map>"u"&&(V.map={}),V.map.inline||(V.map.inline=!1),V.map.prev=g.map);else{let X=n;V.syntax&&(X=V.syntax.parse),V.parser&&(X=V.parser),X.parse&&(X=X.parse);try{v=X(g,V)}catch(W){this.processed=!0,this.error=W}v&&!v[m]&&e.rebuild(v)}this.result=new r(y,v,V),this.helpers=Xe(H({},Z),{postcss:Z,result:this.result}),this.plugins=this.processor.plugins.map(X=>typeof X=="object"&&X.prepare?H(H({},X),X.prepare(this.result)):X)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(y){return this.async().catch(y)}finally(y){return this.async().then(y,y)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(y,g){let V=this.result.lastPlugin;try{if(g&&g.addToError(y),this.error=y,y.name==="CssSyntaxError"&&!y.plugin)y.plugin=V.postcssPlugin,y.setMessage();else if(V.postcssVersion&&process.env.NODE_ENV!=="production"){let v=V.postcssPlugin,X=V.postcssVersion,W=this.result.processor.version,k=X.split("."),N=W.split(".");(k[0]!==N[0]||parseInt(k[1])>parseInt(N[1]))&&console.error("Unknown error from PostCSS plugin. Your current PostCSS version is "+W+", but "+v+" uses "+X+". Perhaps this is the source of the error below.")}}catch(v){console&&console.error&&console.error(v)}return y}prepareVisitors(){this.listeners={};let y=(g,V,v)=>{this.listeners[V]||(this.listeners[V]=[]),this.listeners[V].push([g,v])};for(let g of this.plugins)if(typeof g=="object")for(let V in g){if(!o[V]&&/^[A-Z]/.test(V))throw new Error(`Unknown event ${V} in ${g.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!a[V])if(typeof g[V]=="object")for(let v in g[V])v==="*"?y(g,V,g[V][v]):y(g,V+"-"+v.toLowerCase(),g[V][v]);else typeof g[V]=="function"&&y(g,V,g[V])}this.hasListener=Object.keys(this.listeners).length>0}runAsync(){return We(this,null,function*(){this.plugin=0;for(let y=0;y<this.plugins.length;y++){let g=this.plugins[y],V=this.runOnRoot(g);if(c(V))try{yield V}catch(v){throw this.handleError(v)}}if(this.prepareVisitors(),this.hasListener){let y=this.result.root;for(;!y[f];){y[f]=!0;let g=[b(y)];for(;g.length>0;){let V=this.visitTick(g);if(c(V))try{yield V}catch(v){let X=g[g.length-1].node;throw this.handleError(v,X)}}}if(this.listeners.OnceExit)for(let[g,V]of this.listeners.OnceExit){this.result.lastPlugin=g;try{if(y.type==="document"){let v=y.nodes.map(X=>V(X,this.helpers));yield Promise.all(v)}else yield V(y,this.helpers)}catch(v){throw this.handleError(v)}}}return this.processed=!0,this.stringify()})}runOnRoot(y){this.result.lastPlugin=y;try{if(typeof y=="object"&&y.Once){if(this.result.root.type==="document"){let g=this.result.root.nodes.map(V=>y.Once(V,this.helpers));return c(g[0])?Promise.all(g):g}return y.Once(this.result.root,this.helpers)}else if(typeof y=="function")return y(this.result.root,this.result)}catch(g){throw this.handleError(g)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let y=this.result.opts,g=d;y.syntax&&(g=y.syntax.stringify),y.stringifier&&(g=y.stringifier),g.stringify&&(g=g.stringify);let V=this.result.root.source;if(y.map===void 0&&!(V&&V.input&&V.input.map)){let X="";return g(this.result.root,W=>{X+=W}),this.result.css=X,this.result}let v=new s(g,this.result.root,this.result.opts).generate();return this.result.css=v[0],this.result.map=v[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let y of this.plugins){let g=this.runOnRoot(y);if(c(g))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let y=this.result.root;for(;!y[f];)y[f]=!0,this.walkSync(y);if(this.listeners.OnceExit)if(y.type==="document")for(let g of y.nodes)this.visitSync(this.listeners.OnceExit,g);else this.visitSync(this.listeners.OnceExit,y)}return this.result}then(y,g){return process.env.NODE_ENV!=="production"&&("from"in this.opts||h("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.")),this.async().then(y,g)}toString(){return this.css}visitSync(y,g){for(let[V,v]of y){this.result.lastPlugin=V;let X;try{X=v(g,this.helpers)}catch(W){throw this.handleError(W,g.proxyOf)}if(g.type!=="root"&&g.type!=="document"&&!g.parent)return!0;if(c(X))throw this.getAsyncError()}}visitTick(y){let g=y[y.length-1],{node:V,visitors:v}=g;if(V.type!=="root"&&V.type!=="document"&&!V.parent){y.pop();return}if(v.length>0&&g.visitorIndex<v.length){let[W,k]=v[g.visitorIndex];g.visitorIndex+=1,g.visitorIndex===v.length&&(g.visitors=[],g.visitorIndex=0),this.result.lastPlugin=W;try{return k(V.toProxy(),this.helpers)}catch(N){throw this.handleError(N,V)}}if(g.iterator!==0){let W=g.iterator;g.descending&&(g.descending=!1,V.indexes[W]+=1);let k;for(;k=V.nodes[V.indexes[W]];){if(!k[f]){k[f]=!0,g.descending=!0,y.push(b(k));return}V.indexes[W]+=1}g.iterator=0,delete V.indexes[W]}let X=g.events;for(;g.eventIndex<X.length;){let W=X[g.eventIndex];if(g.eventIndex+=1,W===i){V.nodes&&V.nodes.length&&(V[f]=!0,g.iterator=V.getIterator());return}else if(this.listeners[W]){g.visitors=this.listeners[W];return}}y.pop()}walkSync(y){y[f]=!0;let g=[{eventIndex:0,events:u(y),iterator:0,node:y}];for(;g.length>0;){let V=g[g.length-1],v=V.node;if(V.iterator!==0){let X=V.iterator;V.descending&&(V.descending=!1,v.indexes[X]+=1);let W,k=!1;for(;W=v.nodes[v.indexes[X]];){if(!W[f]){W[f]=!0,V.descending=!0,g.push({eventIndex:0,events:u(W),iterator:0,node:W}),k=!0;break}v.indexes[X]+=1}if(k)continue;V.iterator=0,delete v.indexes[X]}if(V.eventIndex<V.events.length){let X=V.events[V.eventIndex];if(V.eventIndex+=1,X===i)v.nodes&&v.nodes.length&&(V.iterator=v.getIterator());else{let W=this.listeners[X];W&&this.visitSync(W,v.toProxy())&&g.pop()}continue}g.pop()}}warnings(){return this.sync().warnings()}}return I.registerPostcss=R=>{Z=R},Ui=I,I.default=I,l.registerLazyResult(I),t.registerLazyResult(I),Ui}var Fi,Bl;function sp(){if(Bl)return Fi;Bl=1;let e=Yl(),t=Ti(),s=Ji(),n=xs(),r=Pl();class l{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let f,m=t;try{f=m(this._css,this._opts)}catch(h){this.error=h}if(this.error)throw this.error;return this._root=f,f}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(f,m,h){m=m.toString(),this.stringified=!1,this._processor=f,this._css=m,this._opts=h,this._map=void 0;let p=n;this.result=new s(this._processor,void 0,this._opts),this.result.css=m;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let a=new e(p,void 0,this._opts,m);if(a.isMap()){let[i,c]=a.generate();i&&(this.result.css=i),c&&(this.result.map=c)}else a.clearAnnotation(),this.result.css=a.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(f){return this.async().catch(f)}finally(f){return this.async().then(f,f)}sync(){if(this.error)throw this.error;return this.result}then(f,m){return process.env.NODE_ENV!=="production"&&("from"in this._opts||r("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.")),this.async().then(f,m)}toString(){return this._css}warnings(){return[]}}return Fi=l,l.default=l,Fi}var Mi,Ql;function np(){if(Ql)return Mi;Ql=1;let e=Zi(),t=Dl(),s=sp(),n=Mt();class r{constructor(d=[]){this.version="8.5.26",this.plugins=this.normalize(d)}normalize(d){let f=[];for(let m of d)if(m.postcss===!0?m=m():m.postcss&&(m=m.postcss),typeof m=="object"&&Array.isArray(m.plugins))f=f.concat(m.plugins);else if(typeof m=="object"&&m.postcssPlugin)f.push(m);else if(typeof m=="function")f.push(m);else if(typeof m=="object"&&(m.parse||m.stringify)){if(process.env.NODE_ENV!=="production")throw new Error("PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.")}else throw new Error(m+" is not a PostCSS plugin");return f}process(d,f={}){return!this.plugins.length&&!f.parser&&!f.stringifier&&!f.syntax?new s(this,d,f):new t(this,d,f)}use(d){return this.plugins=this.plugins.concat(this.normalize([d])),this}}return Mi=r,r.default=r,n.registerProcessor(r),e.registerProcessor(r),Mi}var Oi,jl;function ip(){if(jl)return Oi;jl=1;let e=yi(),t=Ns(),s=qe(),n=ai(),r=Js(),l=Zi(),d=qh(),f=Ys(),m=Dl(),h=Tl(),p=Ls(),o=Ti(),a=np(),i=Ji(),c=Mt(),u=vi(),b=xs(),S=Kl();function Z(...I){return I.length===1&&Array.isArray(I[0])&&(I=I[0]),new a(I)}return Z.plugin=function(I,R){let y=!1;function g(...v){console&&console.warn&&!y&&(y=!0,console.warn(I+`: postcss.plugin was deprecated. Migration guide:
349
349
  https://evilmartians.com/chronicles/postcss-8-plugin-migration`),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(I+`: 里面 postcss.plugin 被弃用. 迁移指南:
350
- https://www.w3ctech.com/topic/2226`));let X=R(...v);return X.postcssPlugin=I,X.postcssVersion=new a().version,X}let V;return Object.defineProperty(g,"postcss",{get(){return V||(V=g()),V}}),g.process=function(v,X,W){return Z([g(W)]).process(v,X)},g},Z.stringify=b,Z.parse=o,Z.fromJSON=d,Z.list=h,Z.comment=I=>new t(I),Z.atRule=I=>new e(I),Z.decl=I=>new r(I),Z.rule=I=>new u(I),Z.root=I=>new c(I),Z.document=I=>new l(I),Z.CssSyntaxError=n,Z.Declaration=r,Z.Container=s,Z.Processor=a,Z.Document=l,Z.Comment=t,Z.Warning=S,Z.AtRule=e,Z.Result=i,Z.Input=f,Z.Rule=u,Z.Root=c,Z.Node=p,m.registerPostcss(Z),Oi=Z,Z.default=Z,Oi}sp();class Mi{constructor(...t){Fe(this,"parentElement",null),Fe(this,"parentNode",null),Fe(this,"ownerDocument"),Fe(this,"firstChild",null),Fe(this,"lastChild",null),Fe(this,"previousSibling",null),Fe(this,"nextSibling",null),Fe(this,"ELEMENT_NODE",1),Fe(this,"TEXT_NODE",3),Fe(this,"nodeType"),Fe(this,"nodeName"),Fe(this,"RRNodeType")}get childNodes(){const t=[];let s=this.firstChild;for(;s;)t.push(s),s=s.nextSibling;return t}contains(t){if(t instanceof Mi){if(t.ownerDocument!==this.ownerDocument)return!1;if(t===this)return!0}else return!1;for(;t.parentNode;){if(t.parentNode===this)return!0;t=t.parentNode}return!1}appendChild(t){throw new Error("RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.")}insertBefore(t,s){throw new Error("RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.")}removeChild(t){throw new Error("RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.")}toString(){return"RRNode"}}Date.now().toString();const Us=new Map,Ql=new WeakSet;function jl(e){return e!==null&&typeof e=="object"&&"complete"in e&&"naturalWidth"in e&&"naturalHeight"in e&&"src"in e&&"onload"in e}function np(e){if(Ql.has(e))return;Ql.add(e);const t=e.drawImage.bind(e);e.drawImage=function(s,...n){const r=Us.get(e);r&&(r.cancelled=!0);const l=()=>{n.length===2&&jl(s)&&n.push(s.naturalWidth||s.width,s.naturalHeight||s.height),t(s,...n)};if(jl(s)&&!s.complete){const d={cancelled:!1};Us.set(e,d);const f=()=>{d.cancelled||(Us.delete(e),l())},m=()=>{if(!d.cancelled){Us.delete(e);try{l()}catch{}}};s.onload=f,s.onerror=m}else l()}}const Al={Node:["childNodes","parentNode","parentElement","textContent","ownerDocument"],ShadowRoot:["host","styleSheets"],Element:["shadowRoot","querySelector","querySelectorAll"],MutationObserver:[]},_l={Node:["contains","getRootNode"],ShadowRoot:["getSelection"],Element:[],MutationObserver:["constructor"]},Fs={},$l={},ip=()=>!!globalThis.Zone;function Ki(e){if(Fs[e])return Fs[e];const t=globalThis[e],s=t.prototype,n=e in Al?Al[e]:void 0,r=!!(n&&n.every(f=>{var m,h;return!!((h=(m=Object.getOwnPropertyDescriptor(s,f))==null?void 0:m.get)!=null&&h.toString().includes("[native code]"))})),l=e in _l?_l[e]:void 0,d=!!(l&&l.every(f=>{var m;return typeof s[f]=="function"&&((m=s[f])==null?void 0:m.toString().includes("[native code]"))}));if(r&&d&&!ip())return Fs[e]=t.prototype,t.prototype;try{const f=document.createElement("iframe");f.style.display="none",document.body.appendChild(f);const m=f.contentWindow;if(!m)return t.prototype;const h=m[e].prototype;if(!h)return f.remove(),s;const p=navigator.userAgent;return p.includes("Safari")&&!p.includes("Chrome")?(f.classList.add("rr-block"),f.setAttribute("__rrwebUntaintedMutationObserver",""),$l[e]=()=>f.remove()):f.remove(),Fs[e]=h}catch{return s}}const Ei={};function Be(e,t,s){var n;const r=`${e}.${String(s)}`;if(Ei[r])return Ei[r].call(t);const l=Ki(e),d=(n=Object.getOwnPropertyDescriptor(l,s))==null?void 0:n.get;return d?(Ei[r]=d,d.call(t)):t[s]}const zi={};function ql(e,t,s){const n=`${e}.${String(s)}`;if(zi[n])return zi[n].bind(t);const r=Ki(e)[s];return typeof r!="function"?t[s]:(zi[n]=r,r.bind(t))}function rp(e){return Be("Node",e,"ownerDocument")}function op(e){return Be("Node",e,"childNodes")}function lp(e){return Be("Node",e,"parentNode")}function ap(e){return Be("Node",e,"parentElement")}function cp(e){return Be("Node",e,"textContent")}function up(e,t){return ql("Node",e,"contains")(t)}function dp(e){return ql("Node",e,"getRootNode")()}function hp(e){return!e||!("host"in e)?null:Be("ShadowRoot",e,"host")}function pp(e){return e.styleSheets}function mp(e){return!e||!("shadowRoot"in e)?null:Be("Element",e,"shadowRoot")}function fp(e,t){return Be("Element",e,"querySelector")(t)}function bp(e,t){return Be("Element",e,"querySelectorAll")(t)}function ea(){var e;return[Ki("MutationObserver").constructor,(e=$l.MutationObserver)!=null?e:()=>{}]}let Mt=Date.now;/[1-9][0-9]{12}/.test(Date.now().toString())||(Mt=()=>new Date().getTime());function lt(e,t,s){try{if(!(t in e))return()=>{};const n=e[t],r=s(n);return typeof r=="function"&&(r.prototype=r.prototype||{},Object.defineProperties(r,{__rrweb_original__:{enumerable:!1,value:n}})),e[t]=r,()=>{e[t]=n}}catch{return()=>{}}}const $={ownerDocument:rp,childNodes:op,parentNode:lp,parentElement:ap,textContent:cp,contains:up,getRootNode:dp,host:hp,styleSheets:pp,shadowRoot:mp,querySelector:fp,querySelectorAll:bp,nowTimestamp:Mt,mutationObserverCtor:ea,patch:lt,wrapCanvasContextDrawImage:np};function we(e,t,s=document){const n={capture:!0};return s.addEventListener(e,t,n),()=>s.removeEventListener(e,t,n)}const St=`Please stop import mirror directly. Instead of that,\r
350
+ https://www.w3ctech.com/topic/2226`));let X=R(...v);return X.postcssPlugin=I,X.postcssVersion=new a().version,X}let V;return Object.defineProperty(g,"postcss",{get(){return V||(V=g()),V}}),g.process=function(v,X,W){return Z([g(W)]).process(v,X)},g},Z.stringify=b,Z.parse=o,Z.fromJSON=d,Z.list=h,Z.comment=I=>new t(I),Z.atRule=I=>new e(I),Z.decl=I=>new r(I),Z.rule=I=>new u(I),Z.root=I=>new c(I),Z.document=I=>new l(I),Z.CssSyntaxError=n,Z.Declaration=r,Z.Container=s,Z.Processor=a,Z.Document=l,Z.Comment=t,Z.Warning=S,Z.AtRule=e,Z.Result=i,Z.Input=f,Z.Rule=u,Z.Root=c,Z.Node=p,m.registerPostcss(Z),Oi=Z,Z.default=Z,Oi}ip();class Ki{constructor(...t){Fe(this,"parentElement",null),Fe(this,"parentNode",null),Fe(this,"ownerDocument"),Fe(this,"firstChild",null),Fe(this,"lastChild",null),Fe(this,"previousSibling",null),Fe(this,"nextSibling",null),Fe(this,"ELEMENT_NODE",1),Fe(this,"TEXT_NODE",3),Fe(this,"nodeType"),Fe(this,"nodeName"),Fe(this,"RRNodeType")}get childNodes(){const t=[];let s=this.firstChild;for(;s;)t.push(s),s=s.nextSibling;return t}contains(t){if(t instanceof Ki){if(t.ownerDocument!==this.ownerDocument)return!1;if(t===this)return!0}else return!1;for(;t.parentNode;){if(t.parentNode===this)return!0;t=t.parentNode}return!1}appendChild(t){throw new Error("RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.")}insertBefore(t,s){throw new Error("RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.")}removeChild(t){throw new Error("RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.")}toString(){return"RRNode"}}Date.now().toString();const Us=new Map,Al=new WeakSet;function _l(e){return e!==null&&typeof e=="object"&&"complete"in e&&"naturalWidth"in e&&"naturalHeight"in e&&"src"in e&&"onload"in e}function rp(e){if(Al.has(e))return;Al.add(e);const t=e.drawImage.bind(e);e.drawImage=function(s,...n){const r=Us.get(e);r&&(r.cancelled=!0);const l=()=>{n.length===2&&_l(s)&&n.push(s.naturalWidth||s.width,s.naturalHeight||s.height),t(s,...n)};if(_l(s)&&!s.complete){const d={cancelled:!1};Us.set(e,d);const f=()=>{d.cancelled||(Us.delete(e),l())},m=()=>{if(!d.cancelled){Us.delete(e);try{l()}catch{}}};s.onload=f,s.onerror=m}else l()}}const $l={Node:["childNodes","parentNode","parentElement","textContent","ownerDocument"],ShadowRoot:["host","styleSheets"],Element:["shadowRoot","querySelector","querySelectorAll"],MutationObserver:[]},ql={Node:["contains","getRootNode"],ShadowRoot:["getSelection"],Element:[],MutationObserver:["constructor"]},Fs={},ea={},op=()=>!!globalThis.Zone;function Ei(e){if(Fs[e])return Fs[e];const t=globalThis[e],s=t.prototype,n=e in $l?$l[e]:void 0,r=!!(n&&n.every(f=>{var m,h;return!!((h=(m=Object.getOwnPropertyDescriptor(s,f))==null?void 0:m.get)!=null&&h.toString().includes("[native code]"))})),l=e in ql?ql[e]:void 0,d=!!(l&&l.every(f=>{var m;return typeof s[f]=="function"&&((m=s[f])==null?void 0:m.toString().includes("[native code]"))}));if(r&&d&&!op())return Fs[e]=t.prototype,t.prototype;try{const f=document.createElement("iframe");f.style.display="none",document.body.appendChild(f);const m=f.contentWindow;if(!m)return t.prototype;const h=m[e].prototype;if(!h)return f.remove(),s;const p=navigator.userAgent;return p.includes("Safari")&&!p.includes("Chrome")?(f.classList.add("rr-block"),f.setAttribute("__rrwebUntaintedMutationObserver",""),ea[e]=()=>f.remove()):f.remove(),Fs[e]=h}catch{return s}}const zi={};function Be(e,t,s){var n;const r=`${e}.${String(s)}`;if(zi[r])return zi[r].call(t);const l=Ei(e),d=(n=Object.getOwnPropertyDescriptor(l,s))==null?void 0:n.get;return d?(zi[r]=d,d.call(t)):t[s]}const Pi={};function ta(e,t,s){const n=`${e}.${String(s)}`;if(Pi[n])return Pi[n].bind(t);const r=Ei(e)[s];return typeof r!="function"?t[s]:(Pi[n]=r,r.bind(t))}function lp(e){return Be("Node",e,"ownerDocument")}function ap(e){return Be("Node",e,"childNodes")}function cp(e){return Be("Node",e,"parentNode")}function up(e){return Be("Node",e,"parentElement")}function dp(e){return Be("Node",e,"textContent")}function hp(e,t){return ta("Node",e,"contains")(t)}function pp(e){return ta("Node",e,"getRootNode")()}function mp(e){return!e||!("host"in e)?null:Be("ShadowRoot",e,"host")}function fp(e){return e.styleSheets}function bp(e){return!e||!("shadowRoot"in e)?null:Be("Element",e,"shadowRoot")}function yp(e,t){return Be("Element",e,"querySelector")(t)}function gp(e,t){return Be("Element",e,"querySelectorAll")(t)}function sa(){var e;return[Ei("MutationObserver").constructor,(e=ea.MutationObserver)!=null?e:()=>{}]}let Ot=Date.now;/[1-9][0-9]{12}/.test(Date.now().toString())||(Ot=()=>new Date().getTime());function lt(e,t,s){try{if(!(t in e))return()=>{};const n=e[t],r=s(n);return typeof r=="function"&&(r.prototype=r.prototype||{},Object.defineProperties(r,{__rrweb_original__:{enumerable:!1,value:n}})),e[t]=r,()=>{e[t]=n}}catch{return()=>{}}}const $={ownerDocument:lp,childNodes:ap,parentNode:cp,parentElement:up,textContent:dp,contains:hp,getRootNode:pp,host:mp,styleSheets:fp,shadowRoot:bp,querySelector:yp,querySelectorAll:gp,nowTimestamp:Ot,mutationObserverCtor:sa,patch:lt,wrapCanvasContextDrawImage:rp};function we(e,t,s=document){const n={capture:!0};return s.addEventListener(e,t,n),()=>s.removeEventListener(e,t,n)}const St=`Please stop import mirror directly. Instead of that,\r
351
351
  now you can use replayer.getMirror() to access the mirror instance of a replayer,\r
352
- or you can use record.mirror to access the mirror instance during recording.`;let ta={map:{},getId(){return console.error(St),-1},getNode(){return console.error(St),null},removeNodeFromMap(){console.error(St)},has(){return console.error(St),!1},reset(){console.error(St)}};typeof window<"u"&&window.Proxy&&window.Reflect&&(ta=new Proxy(ta,{get(e,t,s){return t==="map"&&console.error(St),Reflect.get(e,t,s)}}));function Kt(e,t,s={}){let n=null,r=0;return function(...l){const d=Date.now();!r&&s.leading===!1&&(r=d);const f=t-(d-r),m=this;f<=0||f>t?(n&&(clearTimeout(n),n=null),r=d,e.apply(m,l)):!n&&s.trailing!==!1&&(n=setTimeout(()=>{r=s.leading===!1?0:Date.now(),n=null,e.apply(m,l)},f))}}function Os(e,t,s,n,r=window){const l=r.Object.getOwnPropertyDescriptor(e,t);return r.Object.defineProperty(e,t,n?s:{set(d){setTimeout(()=>{s.set.call(this,d)},0),l&&l.set&&l.set.call(this,d)}}),()=>Os(e,t,l||{},!0)}function sa(e){var t,s,n,r;const l=e.document;return{left:l.scrollingElement?l.scrollingElement.scrollLeft:e.pageXOffset!==void 0?e.pageXOffset:l.documentElement.scrollLeft||l?.body&&((t=$.parentElement(l.body))==null?void 0:t.scrollLeft)||((s=l?.body)==null?void 0:s.scrollLeft)||0,top:l.scrollingElement?l.scrollingElement.scrollTop:e.pageYOffset!==void 0?e.pageYOffset:l?.documentElement.scrollTop||l?.body&&((n=$.parentElement(l.body))==null?void 0:n.scrollTop)||((r=l?.body)==null?void 0:r.scrollTop)||0}}function na(){return window.innerHeight||document.documentElement&&document.documentElement.clientHeight||document.body&&document.body.clientHeight}function ia(){return window.innerWidth||document.documentElement&&document.documentElement.clientWidth||document.body&&document.body.clientWidth}function ra(e){return e?e.nodeType===e.ELEMENT_NODE?e:$.parentElement(e):null}const yp=e=>{try{if(e instanceof HTMLElement)return e.tagName==="CANVAS"}catch{return!1}return!1};function Ge(e,t,s,n){if(!e)return!1;const r=ra(e);if(!r)return!1;try{if(typeof t=="string"){if(r.classList.contains(t)||n&&r.closest("."+t)!==null)return!0}else if(Xs(r,t,n))return!0}catch{}return!!(s&&(r.matches(s)||n&&r.closest(s)!==null))}function gp(e,t){return t.getId(e)!==-1}function Pi(e,t,s){return e.tagName==="TITLE"&&s.headTitleMutations?!0:t.getId(e)===Ut}function oa(e,t){if(Jt(e))return!1;const s=t.getId(e);if(!t.has(s))return!0;const n=$.parentNode(e);return n&&n.nodeType===e.DOCUMENT_NODE?!1:n?oa(n,t):!0}function Hi(e){return!!e.changedTouches}function Zp(e=window){"NodeList"in e&&!e.NodeList.prototype.forEach&&(e.NodeList.prototype.forEach=Array.prototype.forEach),"DOMTokenList"in e&&!e.DOMTokenList.prototype.forEach&&(e.DOMTokenList.prototype.forEach=Array.prototype.forEach)}function la(e,t){return!!(e.nodeName==="IFRAME"&&t.getMeta(e))}function aa(e,t){return!!(e.nodeName==="LINK"&&e.nodeType===e.ELEMENT_NODE&&e.getAttribute&&e.getAttribute("rel")==="stylesheet"&&t.getMeta(e))}function Di(e){return e?e instanceof Mi&&"shadowRoot"in e?!!e.shadowRoot:!!$.shadowRoot(e):!1}class Sp{constructor(){L(this,"id",1),L(this,"styleIDMap",new WeakMap),L(this,"idStyleMap",new Map)}getId(t){var s;return(s=this.styleIDMap.get(t))!=null?s:-1}has(t){return this.styleIDMap.has(t)}add(t,s){if(this.has(t))return this.getId(t);let n;return s===void 0?n=this.id++:n=s,this.styleIDMap.set(t,n),this.idStyleMap.set(n,t),n}getStyle(t){return this.idStyleMap.get(t)||null}reset(){this.styleIDMap=new WeakMap,this.idStyleMap=new Map,this.id=1}generateId(){return this.id++}}function ca(e){var t;let s=null;return"getRootNode"in e&&((t=$.getRootNode(e))==null?void 0:t.nodeType)===Node.DOCUMENT_FRAGMENT_NODE&&$.host($.getRootNode(e))&&(s=$.host($.getRootNode(e))),s}function Ip(e){let t=e,s;for(;s=ca(t);)t=s;return t}function Xp(e){const t=$.ownerDocument(e);if(!t)return!1;const s=Ip(e);return $.contains(t,s)}function ua(e){const t=$.ownerDocument(e);return t?$.contains(t,e)||Xp(e):!1}var ie=(e=>(e[e.DomContentLoaded=0]="DomContentLoaded",e[e.Load=1]="Load",e[e.FullSnapshot=2]="FullSnapshot",e[e.IncrementalSnapshot=3]="IncrementalSnapshot",e[e.Meta=4]="Meta",e[e.Custom=5]="Custom",e[e.Plugin=6]="Plugin",e[e.Asset=7]="Asset",e))(ie||{}),te=(e=>(e[e.Mutation=0]="Mutation",e[e.MouseMove=1]="MouseMove",e[e.MouseInteraction=2]="MouseInteraction",e[e.Scroll=3]="Scroll",e[e.ViewportResize=4]="ViewportResize",e[e.Input=5]="Input",e[e.TouchMove=6]="TouchMove",e[e.MediaInteraction=7]="MediaInteraction",e[e.StyleSheetRule=8]="StyleSheetRule",e[e.CanvasMutation=9]="CanvasMutation",e[e.Font=10]="Font",e[e.Log=11]="Log",e[e.Drag=12]="Drag",e[e.StyleDeclaration=13]="StyleDeclaration",e[e.Selection=14]="Selection",e[e.AdoptedStyleSheet=15]="AdoptedStyleSheet",e[e.CustomElement=16]="CustomElement",e))(te||{}),xe=(e=>(e[e.MouseUp=0]="MouseUp",e[e.MouseDown=1]="MouseDown",e[e.Click=2]="Click",e[e.ContextMenu=3]="ContextMenu",e[e.DblClick=4]="DblClick",e[e.Focus=5]="Focus",e[e.Blur=6]="Blur",e[e.TouchStart=7]="TouchStart",e[e.TouchMove_Departed=8]="TouchMove_Departed",e[e.TouchEnd=9]="TouchEnd",e[e.TouchCancel=10]="TouchCancel",e))(xe||{}),et=(e=>(e[e.Mouse=0]="Mouse",e[e.Pen=1]="Pen",e[e.Touch=2]="Touch",e))(et||{}),It=(e=>(e[e["2D"]=0]="2D",e[e.WebGL=1]="WebGL",e[e.WebGL2=2]="WebGL2",e))(It||{}),Xt=(e=>(e[e.Play=0]="Play",e[e.Pause=1]="Pause",e[e.Seeked=2]="Seeked",e[e.VolumeChange=3]="VolumeChange",e[e.RateChange=4]="RateChange",e))(Xt||{}),da=(e=>(e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment",e))(da||{});function ha(e){return"__ln"in e}class Vp{constructor(){L(this,"length",0),L(this,"head",null),L(this,"tail",null)}get(t){if(t>=this.length)throw new Error("Position outside of list range");let s=this.head;for(let n=0;n<t;n++)s=s?.next||null;return s}addNode(t){const s={value:t,previous:null,next:null};if(t.__ln=s,t.previousSibling&&ha(t.previousSibling)){const n=t.previousSibling.__ln.next;s.next=n,s.previous=t.previousSibling.__ln,t.previousSibling.__ln.next=s,n&&(n.previous=s)}else if(t.nextSibling&&ha(t.nextSibling)&&t.nextSibling.__ln.previous){const n=t.nextSibling.__ln.previous;s.previous=n,s.next=t.nextSibling.__ln,t.nextSibling.__ln.previous=s,n&&(n.next=s)}else this.head&&(this.head.previous=s),s.next=this.head,this.head=s;s.next===null&&(this.tail=s),this.length++}removeNode(t){const s=t.__ln;this.head&&(s.previous?(s.previous.next=s.next,s.next?s.next.previous=s.previous:this.tail=s.previous):(this.head=s.next,this.head?this.head.previous=null:this.tail=null),t.__ln&&delete t.__ln,this.length--)}}const pa=(e,t)=>`${e}@${t}`;class Gp{constructor(){L(this,"frozen",!1),L(this,"locked",!1),L(this,"texts",[]),L(this,"attributes",[]),L(this,"attributeMap",new WeakMap),L(this,"removes",[]),L(this,"mapRemoves",[]),L(this,"movedMap",{}),L(this,"addedSet",new Set),L(this,"movedSet",new Set),L(this,"droppedSet",new Set),L(this,"removesSubTreeCache",new Set),L(this,"mutationCb"),L(this,"blockClass"),L(this,"blockSelector"),L(this,"maskTextClass"),L(this,"maskTextSelector"),L(this,"inlineStylesheet"),L(this,"maskInputOptions"),L(this,"maskTextFn"),L(this,"maskInputFn"),L(this,"keepIframeSrcFn"),L(this,"recordCanvas"),L(this,"inlineImages"),L(this,"inlineVideos"),L(this,"privacySetting"),L(this,"slimDOMOptions"),L(this,"dataURLOptions"),L(this,"doc"),L(this,"mirror"),L(this,"iframeManager"),L(this,"stylesheetManager"),L(this,"shadowDomManager"),L(this,"canvasManager"),L(this,"processedNodeManager"),L(this,"unattachedDoc"),L(this,"processMutations",t=>{t.forEach(this.processMutation),this.emit()}),L(this,"emit",()=>{if(this.frozen||this.locked)return;const t=[],s=new Set,n=new Vp,r=m=>{let h=m,p=Ut;for(;p===Ut;)h=h&&h.nextSibling,p=h&&this.mirror.getId(h);return p},l=m=>{const h=$.parentNode(m);if(!h||!ua(m))return;let p=!1;if(m.nodeType===Node.TEXT_NODE){const c=h.tagName;if(c==="TEXTAREA")return;c==="STYLE"&&this.addedSet.has(h)&&(p=!0)}const o=Jt(h)?this.mirror.getId(ca(m)):this.mirror.getId(h),a=r(m);if(o===-1||a===-1)return n.addNode(m);const i=Zt(m,{doc:this.doc,mirror:this.mirror,blockClass:this.blockClass,blockSelector:this.blockSelector,maskTextClass:this.maskTextClass,maskTextSelector:this.maskTextSelector,skipChild:!0,newlyAddedElement:!0,inlineStylesheet:this.inlineStylesheet,maskInputOptions:this.maskInputOptions,maskTextFn:this.maskTextFn,maskInputFn:this.maskInputFn,slimDOMOptions:this.slimDOMOptions,dataURLOptions:this.dataURLOptions,recordCanvas:this.recordCanvas,inlineImages:this.inlineImages,inlineVideos:this.inlineVideos,privacySetting:this.privacySetting,onSerialize:c=>{la(c,this.mirror)&&this.iframeManager.addIframe(c),aa(c,this.mirror)&&this.stylesheetManager.trackLinkElement(c),Di(m)&&this.shadowDomManager.addShadowRoot($.shadowRoot(m),this.doc)},onIframeLoad:(c,u)=>{this.iframeManager.attachIframe(c,u),this.shadowDomManager.observeAttachShadow(c)},onStylesheetLoad:(c,u)=>{this.stylesheetManager.attachLinkElement(c,u)},cssCaptured:p});i&&(t.push({parentId:o,nextId:a,node:i}),s.add(i.id))};for(;this.mapRemoves.length;)this.mirror.removeNodeFromMap(this.mapRemoves.shift());for(const m of this.movedSet)ma(this.removesSubTreeCache,m)&&!this.movedSet.has($.parentNode(m))||l(m);for(const m of this.addedSet)!fa(this.droppedSet,m)&&!ma(this.removesSubTreeCache,m)||fa(this.movedSet,m)?l(m):this.droppedSet.add(m);let d=null;for(;n.length;){let m=null;if(d){const h=this.mirror.getId($.parentNode(d.value)),p=r(d.value);h!==-1&&p!==-1&&(m=d)}if(!m){let h=n.tail;for(;h;){const p=h;if(h=h.previous,p){const o=this.mirror.getId($.parentNode(p.value));if(r(p.value)===-1)continue;if(o!==-1){m=p;break}else{const a=p.value,i=$.parentNode(a);if(i&&i.nodeType===Node.DOCUMENT_FRAGMENT_NODE){const c=$.host(i);if(this.mirror.getId(c)!==-1){m=p;break}}}}}}if(!m){for(;n.head;)n.removeNode(n.head.value);break}d=m.previous,n.removeNode(m.value),l(m.value)}const f={texts:this.texts.map(m=>{var h,p;const o=m.node,a=$.parentNode(o);a&&a.tagName==="TEXTAREA"&&this.genTextAreaValueMutation(a);let i=m.value;const c=this.privacySetting==="strict",u=this.privacySetting==="default"&&So(i),b=(p=(h=m.node)==null?void 0:h.parentElement)==null?void 0:p.getAttribute("data-hl-record");return(c||u)&&!b&&i&&(i=Vn(i)),{id:this.mirror.getId(o),value:i}}).filter(m=>!s.has(m.id)).filter(m=>this.mirror.has(m.id)),attributes:this.attributes.map(m=>{const{attributes:h}=m;if(typeof h.style=="string"){const p=JSON.stringify(m.styleDiff),o=JSON.stringify(m._unchangedStyles);p.length<h.style.length&&(p+o).split("var(").length===h.style.split("var(").length&&(h.style=m.styleDiff)}return{id:this.mirror.getId(m.node),attributes:h}}).filter(m=>!s.has(m.id)).filter(m=>this.mirror.has(m.id)),removes:this.removes,adds:t};!f.texts.length&&!f.attributes.length&&!f.removes.length&&!f.adds.length||(this.texts=[],this.attributes=[],this.attributeMap=new WeakMap,this.removes=[],this.addedSet=new Set,this.movedSet=new Set,this.droppedSet=new Set,this.removesSubTreeCache=new Set,this.movedMap={},this.mutationCb(f))}),L(this,"genTextAreaValueMutation",t=>{let s=this.attributeMap.get(t);s||(s={node:t,attributes:{},styleDiff:{},_unchangedStyles:{}},this.attributes.push(s),this.attributeMap.set(t,s));const n=Array.from($.childNodes(t),r=>$.textContent(r)||"").join("");s.attributes.value=ys({overwriteRecord:null,element:t,maskInputOptions:this.maskInputOptions,tagName:t.tagName,type:gs(t),value:n,maskInputFn:this.maskInputFn})}),L(this,"processMutation",t=>{if(!Pi(t.target,this.mirror,this.slimDOMOptions))switch(t.type){case"characterData":{const s=$.textContent(t.target);!Ge(t.target,this.blockClass,this.blockSelector,!1)&&s!==t.oldValue&&this.texts.push({value:wo(t.target,this.maskTextClass,this.maskTextSelector,!0)&&s?this.maskTextFn?this.maskTextFn(s,ra(t.target)):s.replace(/[\S]/g,"*"):s,node:t.target});break}case"attributes":{const s=t.target;let n=t.attributeName,r=t.target.getAttribute(n);if(n==="value"){const d=gs(s);r=ys({element:s,maskInputOptions:this.maskInputOptions,tagName:s.tagName,type:d,value:r,overwriteRecord:s.getAttribute("data-hl-record"),maskInputFn:this.maskInputFn})}if(Ge(t.target,this.blockClass,this.blockSelector,!1)||r===t.oldValue)return;let l=this.attributeMap.get(t.target);if(s.tagName==="IFRAME"&&n==="src"&&!this.keepIframeSrcFn(r))if(!s.contentDocument)n="rr_src";else return;if(l||(l={node:t.target,attributes:{},styleDiff:{},_unchangedStyles:{}},this.attributes.push(l),this.attributeMap.set(t.target,l)),n==="type"&&s.tagName==="INPUT"&&(t.oldValue||"").toLowerCase()==="password"&&s.setAttribute("data-rr-is-password","true"),!vo(s.tagName,n)){if(t.target.tagName==="INPUT"){const d=t.target;if(d.type==="password"){l.attributes.value="*".repeat(d.value.length);break}}if(l.attributes[n]=Ro(this.doc,ot(s.tagName),ot(n),r),n==="style"){if(!this.unattachedDoc)try{this.unattachedDoc=document.implementation.createHTMLDocument()}catch{this.unattachedDoc=this.doc}const d=this.unattachedDoc.createElement("span");t.oldValue&&d.setAttribute("style",t.oldValue);for(const f of Array.from(s.style)){const m=s.style.getPropertyValue(f),h=s.style.getPropertyPriority(f);m!==d.style.getPropertyValue(f)||h!==d.style.getPropertyPriority(f)?h===""?l.styleDiff[f]=m:l.styleDiff[f]=[m,h]:l._unchangedStyles[f]=[m,h]}for(const f of Array.from(d.style))s.style.getPropertyValue(f)===""&&(l.styleDiff[f]=!1)}else n==="open"&&s.tagName==="DIALOG"&&(s.matches("dialog:modal")?l.attributes.rr_open_mode="modal":l.attributes.rr_open_mode="non-modal")}break}case"childList":{if(Ge(t.target,this.blockClass,this.blockSelector,!0))return;if(t.target.tagName==="TEXTAREA"){this.genTextAreaValueMutation(t.target);return}t.addedNodes.forEach(s=>this.genAdds(s,t.target)),t.removedNodes.forEach(s=>{const n=this.mirror.getId(s),r=Jt(t.target)?this.mirror.getId($.host(t.target)):this.mirror.getId(t.target);Ge(t.target,this.blockClass,this.blockSelector,!1)||Pi(s,this.mirror,this.slimDOMOptions)||!gp(s,this.mirror)||(this.addedSet.has(s)?(Bi(this.addedSet,s),this.droppedSet.add(s)):this.addedSet.has(t.target)&&n===-1||oa(t.target,this.mirror)||(this.movedSet.has(s)&&this.movedMap[pa(n,r)]?Bi(this.movedSet,s):(this.removes.push({parentId:r,id:n,isShadow:Jt(t.target)&&Yt(t.target)?!0:void 0}),Rp(s,this.removesSubTreeCache))),this.mapRemoves.push(s))});break}}}),L(this,"genAdds",(t,s)=>{if(!this.processedNodeManager.inOtherBuffer(t,this)&&!(this.addedSet.has(t)||this.movedSet.has(t))){if(this.mirror.hasNode(t)){if(Pi(t,this.mirror,this.slimDOMOptions))return;this.movedSet.add(t);let n=null;s&&this.mirror.hasNode(s)&&(n=this.mirror.getId(s)),n&&n!==-1&&(this.movedMap[pa(this.mirror.getId(t),n)]=!0)}else this.addedSet.add(t),this.droppedSet.delete(t);Ge(t,this.blockClass,this.blockSelector,!1)||($.childNodes(t).forEach(n=>this.genAdds(n)),Di(t)&&$.childNodes($.shadowRoot(t)).forEach(n=>{this.processedNodeManager.add(n,this),this.genAdds(n,t)}))}})}init(t){["mutationCb","blockClass","blockSelector","maskTextClass","maskTextSelector","inlineStylesheet","maskInputOptions","maskTextFn","maskInputFn","keepIframeSrcFn","recordCanvas","inlineImages","inlineVideos","privacySetting","slimDOMOptions","dataURLOptions","doc","mirror","iframeManager","stylesheetManager","shadowDomManager","canvasManager","processedNodeManager"].forEach(s=>{this[s]=t[s]})}freeze(){this.frozen=!0,this.canvasManager.freeze()}unfreeze(){this.frozen=!1,this.canvasManager.unfreeze(),this.emit()}isFrozen(){return this.frozen}lock(){this.locked=!0,this.canvasManager.lock()}unlock(){this.locked=!1,this.canvasManager.unlock(),this.emit()}reset(){this.shadowDomManager.reset(),this.canvasManager.reset()}}function Bi(e,t){e.delete(t),$.childNodes(t).forEach(s=>Bi(e,s))}function Rp(e,t){const s=[e];for(;s.length;){const n=s.pop();t.has(n)||(t.add(n),$.childNodes(n).forEach(r=>s.push(r)))}}function ma(e,t,s){return e.size===0?!1:vp(e,t)}function vp(e,t,s){const n=$.parentNode(t);return n?e.has(n):!1}function fa(e,t){return e.size===0?!1:ba(e,t)}function ba(e,t){const s=$.parentNode(t);return s?e.has(s)?!0:ba(e,s):!1}let Et;function Wp(e){Et=e}function wp(){Et=void 0}const se=e=>Et?(...t)=>{try{return e(...t)}catch(s){if(Et&&Et(s)===!0)return;throw s}}:e,at=[];function zt(e){try{if("composedPath"in e){const t=e.composedPath();if(t.length)return t[0]}else if("path"in e&&e.path.length)return e.path[0]}catch{}return e&&e.target}function ya(e,t){const s=new Gp;at.push(s),s.init(e);const[n,r]=ea(),l=new n(se(s.processMutations.bind(s)));return l.observe(t,{attributes:!0,attributeOldValue:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),[l,r]}function kp({mousemoveCb:e,sampling:t,doc:s,mirror:n}){if(t.mousemove===!1)return()=>{};const r=typeof t.mousemove=="number"?t.mousemove:50,l=typeof t.mousemoveCallback=="number"?t.mousemoveCallback:500;let d=[],f;const m=Kt(se(o=>{const a=Date.now()-f;e(d.map(i=>(i.timeOffset-=a,i)),o),d=[],f=null}),l),h=se(Kt(se(o=>{const a=zt(o),{clientX:i,clientY:c}=Hi(o)?o.changedTouches[0]:o;f||(f=Mt()),d.push({x:i,y:c,id:n.getId(a),timeOffset:Mt()-f}),m(typeof DragEvent<"u"&&o instanceof DragEvent?te.Drag:o instanceof MouseEvent?te.MouseMove:te.TouchMove)}),r,{trailing:!1})),p=[we("mousemove",h,s),we("touchmove",h,s),we("drag",h,s)];return se(()=>{p.forEach(o=>o())})}function Cp({mouseInteractionCb:e,doc:t,mirror:s,blockClass:n,blockSelector:r,sampling:l}){if(l.mouseInteraction===!1)return()=>{};const d=l.mouseInteraction===!0||l.mouseInteraction===void 0?{}:l.mouseInteraction,f=[];let m=null;const h=p=>o=>{const a=zt(o);if(Ge(a,n,r,!0)||yp(a))return;let i=null,c=p;if("pointerType"in o){switch(o.pointerType){case"mouse":i=et.Mouse;break;case"touch":i=et.Touch;break;case"pen":i=et.Pen;break}i===et.Touch&&(xe[p]===xe.MouseDown?c="TouchStart":xe[p]===xe.MouseUp&&(c="TouchEnd"))}else Hi(o)&&(i=et.Touch);i!==null?(m=i,(c.startsWith("Touch")&&i===et.Touch||c.startsWith("Mouse")&&i===et.Mouse)&&(i=null)):xe[p]===xe.Click&&(i=m,m=null);const u=Hi(o)?o.changedTouches[0]:o;if(!u)return;const b=s.getId(a),{clientX:S,clientY:Z}=u;se(e)(H({type:xe[c],id:b,x:S,y:Z},i!==null&&{pointerType:i}))};return Object.keys(xe).filter(p=>Number.isNaN(Number(p))&&!p.endsWith("_Departed")&&d[p]!==!1).forEach(p=>{let o=ot(p);const a=h(p);if(window.PointerEvent)switch(xe[p]){case xe.MouseDown:case xe.MouseUp:o=o.replace("mouse","pointer");break;case xe.TouchStart:case xe.TouchEnd:return}f.push(we(o,a,t))}),se(()=>{f.forEach(p=>p())})}function ga({scrollCb:e,doc:t,mirror:s,blockClass:n,blockSelector:r,sampling:l}){const d=se(Kt(se(f=>{const m=zt(f);if(!m||Ge(m,n,r,!0))return;const h=s.getId(m);if(m===t&&t.defaultView){const p=sa(t.defaultView);e({id:h,x:p.left,y:p.top})}else e({id:h,x:m.scrollLeft,y:m.scrollTop})}),l.scroll||100));return we("scroll",d,t)}function xp({viewportResizeCb:e},{win:t}){let s=-1,n=-1;const r=se(Kt(se(()=>{const l=na(),d=ia();(s!==l||n!==d)&&(e({width:Number(d),height:Number(l)}),s=l,n=d)}),200));return we("resize",r,t)}const Tp=["INPUT","TEXTAREA","SELECT"],Za=new WeakMap;function Lp({inputCb:e,doc:t,mirror:s,blockClass:n,blockSelector:r,ignoreClass:l,ignoreSelector:d,maskInputOptions:f,maskInputFn:m,sampling:h,userTriggeredOnInput:p}){function o(S){let Z=zt(S);const I=S.isTrusted,R=Z&&Z.tagName;if(Z&&R==="OPTION"&&(Z=$.parentElement(Z)),!Z||!R||Tp.indexOf(R)<0||Ge(Z,n,r,!0)||Z.classList.contains(l)||d&&Z.matches(d))return;let y=Z.value,g=!1;const V=gs(Z)||"",v=Z.getAttribute("data-hl-record");V==="radio"||V==="checkbox"?g=Z.checked:Io({maskInputOptions:f,type:V,tagName:R,overwriteRecord:v})&&(y=ys({element:Z,maskInputOptions:f,tagName:R,type:V,value:y,overwriteRecord:v,maskInputFn:m})),a(Z,p?{text:y,isChecked:g,userTriggered:I}:{text:y,isChecked:g});const X=Z.name;V==="radio"&&X&&g&&t.querySelectorAll(`input[type="radio"][name="${X}"]`).forEach(W=>{if(W!==Z){const k=W.value;a(W,p?{text:k,isChecked:!g,userTriggered:!1}:{text:k,isChecked:!g})}})}function a(S,Z){const I=Za.get(S);if(!I||I.text!==Z.text||I.isChecked!==Z.isChecked){Za.set(S,Z);const R=s.getId(S);se(e)(Xe(H({},Z),{id:R}))}}const i=(h.input==="last"?["change"]:["input","change"]).map(S=>we(S,se(o),t)),c=t.defaultView;if(!c)return()=>{i.forEach(S=>S())};const u=c.Object.getOwnPropertyDescriptor(c.HTMLInputElement.prototype,"value"),b=[[c.HTMLInputElement.prototype,"value"],[c.HTMLInputElement.prototype,"checked"],[c.HTMLSelectElement.prototype,"value"],[c.HTMLTextAreaElement.prototype,"value"],[c.HTMLSelectElement.prototype,"selectedIndex"],[c.HTMLOptionElement.prototype,"selected"]];return u&&u.set&&i.push(...b.map(S=>Os(S[0],S[1],{set(){se(o)({target:this,isTrusted:!1})}},!1,c))),se(()=>{i.forEach(S=>S())})}function Ms(e){const t=[];function s(n,r){if(Ks("CSSGroupingRule")&&n.parentRule instanceof CSSGroupingRule||Ks("CSSMediaRule")&&n.parentRule instanceof CSSMediaRule||Ks("CSSSupportsRule")&&n.parentRule instanceof CSSSupportsRule||Ks("CSSConditionRule")&&n.parentRule instanceof CSSConditionRule){const l=Array.from(n.parentRule.cssRules).indexOf(n);return r.unshift(l),s(n.parentRule,r)}else if(n.parentStyleSheet){const l=Array.from(n.parentStyleSheet.cssRules).indexOf(n);r.unshift(l)}return r}return s(e,t)}function tt(e,t,s){let n,r;return e?(e.ownerNode?n=t.getId(e.ownerNode):r=s.getId(e),{styleId:r,id:n}):{}}function st(e,t,s,n){e[t]===s&&(e[t]=n)}const Np=5;function Jp({styleSheetRuleCb:e,mirror:t,stylesheetManager:s,doc:n,styleSheetResyncInterval:r},{win:l}){if(!l.CSSStyleSheet||!l.CSSStyleSheet.prototype)return()=>{};const d=new WeakMap,f=new WeakSet;let m=!1,h=!1,p=!1,o,a=!1,i=!1,c=!1;const u=(U,K,O)=>{const z=d.get(U),E=U.cssRules[O];!z||!E||z.splice(Math.min(K??0,z.length),0,E)},b=(U,K)=>{const O=d.get(U);O&&K>=0&&K<O.length&&O.splice(K,1)},S=U=>new Proxy(U,{apply:se((K,O,z)=>{if(m)return h=!0,K.apply(O,z);if(a||i)return K.apply(O,z);const[E,D]=z,{id:_,styleId:re}=tt(O,t,s.styleMirror),fe=_&&_!==-1||re&&re!==-1;fe&&e({id:_,styleId:re,adds:[{rule:E,index:D}]}),i=!0;let Ne;try{Ne=K.apply(O,z)}finally{i=!1}return fe&&u(O,D,typeof Ne=="number"?Ne:D??0),Ne})}),Z=U=>new Proxy(U,{apply:se((K,O,z)=>{if(m)return p=!0,K.apply(O,z);if(a||c)return K.apply(O,z);const[E]=z,{id:D,styleId:_}=tt(O,t,s.styleMirror),re=D&&D!==-1||_&&_!==-1;re&&e({id:D,styleId:_,removes:[{index:E}]}),c=!0;let fe;try{fe=K.apply(O,z)}finally{c=!1}return re&&b(O,E),fe})}),I=l.CSSStyleSheet.prototype.insertRule;let R=S(I),y=I;l.CSSStyleSheet.prototype.insertRule=R;const g=l.CSSStyleSheet.prototype.addRule,V=function(U,K,O=this.cssRules.length){const z=`${U} { ${K} }`;return l.CSSStyleSheet.prototype.insertRule.apply(this,[z,O])};l.CSSStyleSheet.prototype.addRule=V;const v=l.CSSStyleSheet.prototype.deleteRule;let X=Z(v),W=v;l.CSSStyleSheet.prototype.deleteRule=X;const k=l.CSSStyleSheet.prototype.removeRule,N=function(U){return l.CSSStyleSheet.prototype.deleteRule.apply(this,[U])};l.CSSStyleSheet.prototype.removeRule=N;let j,G;l.CSSStyleSheet.prototype.replace&&(j=l.CSSStyleSheet.prototype.replace,G=new Proxy(j,{apply:se((U,K,O)=>{if(a)return U.apply(K,O);const[z]=O,{id:E,styleId:D}=tt(K,t,s.styleMirror);return(E&&E!==-1||D&&D!==-1)&&e({id:E,styleId:D,replace:z}),U.apply(K,O)})}),l.CSSStyleSheet.prototype.replace=G);let w,T;l.CSSStyleSheet.prototype.replaceSync&&(w=l.CSSStyleSheet.prototype.replaceSync,T=new Proxy(w,{apply:se((U,K,O)=>{if(a)return U.apply(K,O);const[z]=O,{id:E,styleId:D}=tt(K,t,s.styleMirror);return(E&&E!==-1||D&&D!==-1)&&e({id:E,styleId:D,replaceSync:z}),U.apply(K,O)})}),l.CSSStyleSheet.prototype.replaceSync=T);const Y={};Es("CSSGroupingRule")?Y.CSSGroupingRule=l.CSSGroupingRule:(Es("CSSMediaRule")&&(Y.CSSMediaRule=l.CSSMediaRule),Es("CSSConditionRule")&&(Y.CSSConditionRule=l.CSSConditionRule),Es("CSSSupportsRule")&&(Y.CSSSupportsRule=l.CSSSupportsRule));const M={},J={};Object.entries(Y).forEach(([U,K])=>{M[U]={insertRule:K.prototype.insertRule,deleteRule:K.prototype.deleteRule},J[U]={},J[U].insertRule=new Proxy(M[U].insertRule,{apply:se((O,z,E)=>{if(a)return O.apply(z,E);const[D,_]=E,{id:re,styleId:fe}=tt(z.parentStyleSheet,t,s.styleMirror);return(re&&re!==-1||fe&&fe!==-1)&&e({id:re,styleId:fe,adds:[{rule:D,index:[...Ms(z),_||0]}]}),O.apply(z,E)})}),J[U].deleteRule=new Proxy(M[U].deleteRule,{apply:se((O,z,E)=>{if(a)return O.apply(z,E);const[D]=E,{id:_,styleId:re}=tt(z.parentStyleSheet,t,s.styleMirror);return(_&&_!==-1||re&&re!==-1)&&e({id:_,styleId:re,removes:[{index:[...Ms(z),D]}]}),O.apply(z,E)})}),K.prototype.insertRule=J[U].insertRule,K.prototype.deleteRule=J[U].deleteRule});const q=()=>{m=!0,h=!1,p=!1;try{const U=o??(o=new l.CSSStyleSheet);U.insertRule(":root {}",0),U.deleteRule(0)}catch{return{insertRule:l.CSSStyleSheet.prototype.insertRule===R,deleteRule:l.CSSStyleSheet.prototype.deleteRule===X}}finally{m=!1}return{insertRule:h,deleteRule:p}};let B=0;const C=U=>{B>=Np||(B+=1,U.insertRule||(y=l.CSSStyleSheet.prototype.insertRule,R=S(y),l.CSSStyleSheet.prototype.insertRule=R),U.deleteRule||(W=l.CSSStyleSheet.prototype.deleteRule,X=Z(W),l.CSSStyleSheet.prototype.deleteRule=X))},oe=U=>{for(let K=0;K<n.styleSheets.length;K++){const O=n.styleSheets[K];if(f.has(O))continue;const z=O.ownerNode;if(!z||ot(z.nodeName)!=="style"||(z.textContent||"").trim().length)continue;const E=t.getId(z);if(!E||E===-1)continue;let D;try{D=O.cssRules}catch{continue}const _=d.get(O);if(!_){if(Array.from(D).some(re=>bo(re))){f.add(O);continue}if(d.set(O,Array.from(D)),U)continue;le(E,D);continue}U&&D.length===_.length||ue(E,O,_,D)}};function ue(U,K,O,z){const E=Array.from(z);if(E.length===O.length&&E.every((A,ge)=>A===O[ge]))return;const D=new Map(E.map((A,ge)=>[A,ge])),_=new Set;let re=-1;const fe=[];O.forEach((A,ge)=>{const de=D.get(A);de!==void 0&&de>re&&!_.has(A)?(_.add(A),re=de):fe.push({index:ge})}),fe.reverse();const Ne=[];E.forEach((A,ge)=>{_.has(A)||Ne.push({rule:A.cssText,index:ge})}),fe.length&&e({id:U,removes:fe}),Ne.length&&e({id:U,adds:Ne}),d.set(K,E)}function le(U,K){const O=[];for(let z=K.length-1;z>=0;z--)O.push({index:z});O.length&&e({id:U,removes:O}),e({id:U,adds:Array.from(K,(z,E)=>({rule:z.cssText,index:E}))})}let Se;return r>0&&(Se=l.setInterval(se(()=>{const U=q(),K=U.insertRule&&U.deleteRule;K||C(U),oe(K)}),r)),se(()=>{Se!==void 0&&l.clearInterval(Se),a=!0;const U=l.CSSStyleSheet.prototype;st(U,"insertRule",R,y),st(U,"deleteRule",X,W),st(U,"addRule",V,g),st(U,"removeRule",N,k),G&&st(U,"replace",G,j),T&&st(U,"replaceSync",T,w),Object.entries(Y).forEach(([K,O])=>{st(O.prototype,"insertRule",J[K].insertRule,M[K].insertRule),st(O.prototype,"deleteRule",J[K].deleteRule,M[K].deleteRule)})})}function Sa({mirror:e,stylesheetManager:t},s){var n,r,l;let d=null;s.nodeName==="#document"?d=e.getId(s):d=e.getId($.host(s));const f=s.nodeName==="#document"?(n=s.defaultView)==null?void 0:n.Document:(l=(r=s.ownerDocument)==null?void 0:r.defaultView)==null?void 0:l.ShadowRoot,m=f!=null&&f.prototype?Object.getOwnPropertyDescriptor(f?.prototype,"adoptedStyleSheets"):void 0;return d===null||d===-1||!f||!m?()=>{}:(Object.defineProperty(s,"adoptedStyleSheets",{configurable:m.configurable,enumerable:m.enumerable,get(){var h;return(h=m.get)==null?void 0:h.call(this)},set(h){var p;const o=(p=m.set)==null?void 0:p.call(this,h);if(d!==null&&d!==-1)try{t.adoptStyleSheets(h,d)}catch{}return o}}),se(()=>{Object.defineProperty(s,"adoptedStyleSheets",{configurable:m.configurable,enumerable:m.enumerable,get:m.get,set:m.set})}))}function Yp({styleDeclarationCb:e,mirror:t,ignoreCSSAttributes:s,stylesheetManager:n},{win:r}){const l=r.CSSStyleDeclaration.prototype.setProperty;r.CSSStyleDeclaration.prototype.setProperty=new Proxy(l,{apply:se((f,m,h)=>{var p;const[o,a,i]=h;if(s.has(o))return l.apply(m,[o,a,i]);const{id:c,styleId:u}=tt((p=m.parentRule)==null?void 0:p.parentStyleSheet,t,n.styleMirror);return(c&&c!==-1||u&&u!==-1)&&e({id:c,styleId:u,set:{property:o,value:a,priority:i},index:Ms(m.parentRule)}),f.apply(m,h)})});const d=r.CSSStyleDeclaration.prototype.removeProperty;return r.CSSStyleDeclaration.prototype.removeProperty=new Proxy(d,{apply:se((f,m,h)=>{var p;const[o]=h;if(s.has(o))return d.apply(m,[o]);const{id:a,styleId:i}=tt((p=m.parentRule)==null?void 0:p.parentStyleSheet,t,n.styleMirror);return(a&&a!==-1||i&&i!==-1)&&e({id:a,styleId:i,remove:{property:o},index:Ms(m.parentRule)}),f.apply(m,h)})}),se(()=>{r.CSSStyleDeclaration.prototype.setProperty=l,r.CSSStyleDeclaration.prototype.removeProperty=d})}function Up({mediaInteractionCb:e,blockClass:t,blockSelector:s,mirror:n,sampling:r,doc:l}){const d=se(m=>Kt(se(h=>{const p=zt(h);if(!p||Ge(p,t,s,!0))return;const{currentTime:o,volume:a,muted:i,playbackRate:c,loop:u}=p;e({type:m,id:n.getId(p),currentTime:o,volume:a,muted:i,playbackRate:c,loop:u})}),r.media||500)),f=[we("play",d(Xt.Play),l),we("pause",d(Xt.Pause),l),we("seeked",d(Xt.Seeked),l),we("volumechange",d(Xt.VolumeChange),l),we("ratechange",d(Xt.RateChange),l)];return se(()=>{f.forEach(m=>m())})}function Fp({fontCb:e,doc:t}){const s=t.defaultView;if(!s)return()=>{};const n=[],r=new WeakMap,l=s.FontFace;s.FontFace=function(f,m,h){const p=new l(f,m,h);return r.set(p,{family:f,buffer:typeof m!="string",descriptors:h,fontSource:typeof m=="string"?m:JSON.stringify(Array.from(new Uint8Array(m)))}),p};const d=lt(t.fonts,"add",function(f){return function(m){return setTimeout(se(()=>{const h=r.get(m);h&&(e(h),r.delete(m))}),0),f.apply(this,[m])}});return n.push(()=>{s.FontFace=l}),n.push(d),se(()=>{n.forEach(f=>f())})}function Op(e){const{doc:t,mirror:s,blockClass:n,blockSelector:r,selectionCb:l}=e;let d=!0;const f=se(()=>{const m=t.getSelection();if(!m||d&&m!=null&&m.isCollapsed)return;d=m.isCollapsed||!1;const h=[],p=m.rangeCount||0;for(let o=0;o<p;o++){const a=m.getRangeAt(o),{startContainer:i,startOffset:c,endContainer:u,endOffset:b}=a;Ge(i,n,r,!0)||Ge(u,n,r,!0)||h.push({start:s.getId(i),startOffset:c,end:s.getId(u),endOffset:b})}l({ranges:h})});return f(),we("selectionchange",f)}function Mp({doc:e,customElementCb:t}){const s=e.defaultView;return!s||!s.customElements?()=>{}:lt(s.customElements,"define",function(n){return function(r,l,d){try{t({define:{name:r}})}catch{console.warn(`Custom element callback failed for ${r}`)}return n.apply(this,[r,l,d])}})}function Kp(e,t){const{mutationCb:s,mousemoveCb:n,mouseInteractionCb:r,scrollCb:l,viewportResizeCb:d,inputCb:f,mediaInteractionCb:m,styleSheetRuleCb:h,styleDeclarationCb:p,canvasMutationCb:o,fontCb:a,selectionCb:i,customElementCb:c}=e;e.mutationCb=(...u)=>{t.mutation&&t.mutation(...u),s(...u)},e.mousemoveCb=(...u)=>{t.mousemove&&t.mousemove(...u),n(...u)},e.mouseInteractionCb=(...u)=>{t.mouseInteraction&&t.mouseInteraction(...u),r(...u)},e.scrollCb=(...u)=>{t.scroll&&t.scroll(...u),l(...u)},e.viewportResizeCb=(...u)=>{t.viewportResize&&t.viewportResize(...u),d(...u)},e.inputCb=(...u)=>{t.input&&t.input(...u),f(...u)},e.mediaInteractionCb=(...u)=>{t.mediaInteaction&&t.mediaInteaction(...u),m(...u)},e.styleSheetRuleCb=(...u)=>{t.styleSheetRule&&t.styleSheetRule(...u),h(...u)},e.styleDeclarationCb=(...u)=>{t.styleDeclaration&&t.styleDeclaration(...u),p(...u)},e.canvasMutationCb=(...u)=>{t.canvasMutation&&t.canvasMutation(...u),o(...u)},e.fontCb=(...u)=>{t.font&&t.font(...u),a(...u)},e.selectionCb=(...u)=>{t.selection&&t.selection(...u),i(...u)},e.customElementCb=(...u)=>{t.customElement&&t.customElement(...u),c(...u)}}function Ep(e,t={}){const s=e.doc.defaultView;if(!s)return()=>{};Kp(e,t);let n,r=()=>{};e.recordDOM&&([n,r]=ya(e,e.doc));const l=kp(e),d=Cp(e),f=ga(e),m=xp(e,{win:s}),h=Lp(e),p=Up(e);let o=()=>{},a=()=>{},i=()=>{},c=()=>{};e.recordDOM&&(o=Jp(e,{win:s}),a=Sa(e,e.doc),i=Yp(e,{win:s}),e.collectFonts&&(c=Fp(e)));const u=Op(e),b=Mp(e),S=[];for(const Z of e.plugins)S.push(Z.observer(Z.callback,s,Z.options));return se(()=>{at.forEach(Z=>Z.reset()),n?.disconnect(),r(),l(),d(),f(),m(),h(),p(),o(),a(),i(),c(),u(),b(),S.forEach(Z=>Z())})}function Ks(e){return typeof window[e]<"u"}function Es(e){return!!(typeof window[e]<"u"&&window[e].prototype&&"insertRule"in window[e].prototype&&"deleteRule"in window[e].prototype)}class Ia{constructor(t){L(this,"iframeIdToRemoteIdMap",new WeakMap),L(this,"iframeRemoteIdToIdMap",new WeakMap),this.generateIdFn=t}getId(t,s,n,r){const l=n||this.getIdToRemoteIdMap(t),d=r||this.getRemoteIdToIdMap(t);let f=l.get(s);return f||(f=this.generateIdFn(),l.set(s,f),d.set(f,s)),f}getIds(t,s){const n=this.getIdToRemoteIdMap(t),r=this.getRemoteIdToIdMap(t);return s.map(l=>this.getId(t,l,n,r))}getRemoteId(t,s,n){const r=n||this.getRemoteIdToIdMap(t);return typeof s!="number"?s:r.get(s)||-1}getRemoteIds(t,s){const n=this.getRemoteIdToIdMap(t);return s.map(r=>this.getRemoteId(t,r,n))}reset(t){if(!t){this.iframeIdToRemoteIdMap=new WeakMap,this.iframeRemoteIdToIdMap=new WeakMap;return}this.iframeIdToRemoteIdMap.delete(t),this.iframeRemoteIdToIdMap.delete(t)}getIdToRemoteIdMap(t){let s=this.iframeIdToRemoteIdMap.get(t);return s||(s=new Map,this.iframeIdToRemoteIdMap.set(t,s)),s}getRemoteIdToIdMap(t){let s=this.iframeRemoteIdToIdMap.get(t);return s||(s=new Map,this.iframeRemoteIdToIdMap.set(t,s)),s}}class zp{constructor(t){L(this,"iframes",new WeakMap),L(this,"crossOriginIframeMap",new WeakMap),L(this,"crossOriginIframeMirror",new Ia(Xo)),L(this,"crossOriginIframeStyleMirror"),L(this,"crossOriginIframeRootIdMap",new WeakMap),L(this,"mirror"),L(this,"mutationCb"),L(this,"wrappedEmit"),L(this,"loadListener"),L(this,"stylesheetManager"),L(this,"recordCrossOriginIframes"),this.mutationCb=t.mutationCb,this.wrappedEmit=t.wrappedEmit,this.stylesheetManager=t.stylesheetManager,this.recordCrossOriginIframes=t.recordCrossOriginIframes,this.crossOriginIframeStyleMirror=new Ia(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror)),this.mirror=t.mirror,this.recordCrossOriginIframes&&window.addEventListener("message",this.handleMessage.bind(this))}addIframe(t){this.iframes.set(t,!0),t.contentWindow&&this.crossOriginIframeMap.set(t.contentWindow,t)}addLoadListener(t){this.loadListener=t}attachIframe(t,s){var n,r;this.mutationCb({adds:[{parentId:this.mirror.getId(t),nextId:null,node:s}],removes:[],texts:[],attributes:[],isAttachIframe:!0}),this.recordCrossOriginIframes&&((n=t.contentWindow)==null||n.addEventListener("message",this.handleMessage.bind(this))),(r=this.loadListener)==null||r.call(this,t),t.contentDocument&&t.contentDocument.adoptedStyleSheets&&t.contentDocument.adoptedStyleSheets.length>0&&this.stylesheetManager.adoptStyleSheets(t.contentDocument.adoptedStyleSheets,this.mirror.getId(t.contentDocument))}handleMessage(t){const s=t;if(s.data.type!=="rrweb"||s.origin!==s.data.origin)return;const n=t.source;if(!n)return;const r=this.crossOriginIframeMap.get(n);if(!r)return;const l=this.transformCrossOriginEvent(r,s.data.event);l&&this.wrappedEmit(l,s.data.isCheckout)}transformCrossOriginEvent(t,s){var n;switch(s.type){case ie.FullSnapshot:{this.crossOriginIframeMirror.reset(t),this.crossOriginIframeStyleMirror.reset(t),this.replaceIdOnNode(s.data.node,t);const r=s.data.node.id;return this.crossOriginIframeRootIdMap.set(t,r),this.patchRootIdOnNode(s.data.node,r),{timestamp:s.timestamp,type:ie.IncrementalSnapshot,data:{source:te.Mutation,adds:[{parentId:this.mirror.getId(t),nextId:null,node:s.data.node}],removes:[],texts:[],attributes:[],isAttachIframe:!0}}}case ie.Meta:case ie.Load:case ie.DomContentLoaded:return!1;case ie.Plugin:return s;case ie.Custom:return this.replaceIds(s.data.payload,t,["id","parentId","previousId","nextId"]),s;case ie.IncrementalSnapshot:switch(s.data.source){case te.Mutation:return s.data.adds.forEach(r=>{this.replaceIds(r,t,["parentId","nextId","previousId"]),this.replaceIdOnNode(r.node,t);const l=this.crossOriginIframeRootIdMap.get(t);l&&this.patchRootIdOnNode(r.node,l)}),s.data.removes.forEach(r=>{this.replaceIds(r,t,["parentId","id"])}),s.data.attributes.forEach(r=>{this.replaceIds(r,t,["id"])}),s.data.texts.forEach(r=>{this.replaceIds(r,t,["id"])}),s;case te.Drag:case te.TouchMove:case te.MouseMove:return s.data.positions.forEach(r=>{this.replaceIds(r,t,["id"])}),s;case te.ViewportResize:return!1;case te.MediaInteraction:case te.MouseInteraction:case te.Scroll:case te.CanvasMutation:case te.Input:return this.replaceIds(s.data,t,["id"]),s;case te.StyleSheetRule:case te.StyleDeclaration:return this.replaceIds(s.data,t,["id"]),this.replaceStyleIds(s.data,t,["styleId"]),s;case te.Font:return s;case te.Selection:return s.data.ranges.forEach(r=>{this.replaceIds(r,t,["start","end"])}),s;case te.AdoptedStyleSheet:return this.replaceIds(s.data,t,["id"]),this.replaceStyleIds(s.data,t,["styleIds"]),(n=s.data.styles)==null||n.forEach(r=>{this.replaceStyleIds(r,t,["styleId"])}),s}}return!1}replace(t,s,n,r){for(const l of r)!Array.isArray(s[l])&&typeof s[l]!="number"||(Array.isArray(s[l])?s[l]=t.getIds(n,s[l]):s[l]=t.getId(n,s[l]));return s}replaceIds(t,s,n){return this.replace(this.crossOriginIframeMirror,t,s,n)}replaceStyleIds(t,s,n){return this.replace(this.crossOriginIframeStyleMirror,t,s,n)}replaceIdOnNode(t,s){this.replaceIds(t,s,["id","rootId"]),"childNodes"in t&&t.childNodes.forEach(n=>{this.replaceIdOnNode(n,s)})}patchRootIdOnNode(t,s){t.type!==da.Document&&!t.rootId&&(t.rootId=s),"childNodes"in t&&t.childNodes.forEach(n=>{this.patchRootIdOnNode(n,s)})}}class Pp{constructor(t){L(this,"shadowDoms",new WeakSet),L(this,"mutationCb"),L(this,"scrollCb"),L(this,"bypassOptions"),L(this,"mirror"),L(this,"restoreHandlers",[]),this.mutationCb=t.mutationCb,this.scrollCb=t.scrollCb,this.bypassOptions=t.bypassOptions,this.mirror=t.mirror,this.init()}init(){this.reset(),this.patchAttachShadow(Element,document)}addShadowRoot(t,s){if(!Yt(t)||this.shadowDoms.has(t))return;this.shadowDoms.add(t);const[n]=ya(Xe(H({},this.bypassOptions),{doc:s,mutationCb:this.mutationCb,mirror:this.mirror,shadowDomManager:this}),t);this.restoreHandlers.push(()=>n.disconnect()),this.restoreHandlers.push(ga(Xe(H({},this.bypassOptions),{scrollCb:this.scrollCb,doc:t,mirror:this.mirror}))),setTimeout(()=>{t.adoptedStyleSheets&&t.adoptedStyleSheets.length>0&&this.bypassOptions.stylesheetManager.adoptStyleSheets(t.adoptedStyleSheets,this.mirror.getId($.host(t))),this.restoreHandlers.push(Sa({mirror:this.mirror,stylesheetManager:this.bypassOptions.stylesheetManager},t))},0)}observeAttachShadow(t){!t.contentWindow||!t.contentDocument||this.patchAttachShadow(t.contentWindow.Element,t.contentDocument)}patchAttachShadow(t,s){const n=this;this.restoreHandlers.push(lt(t.prototype,"attachShadow",function(r){return function(l){const d=r.call(this,l),f=$.shadowRoot(this);return f&&ua(this)&&n.addShadowRoot(f,s),d}}))}reset(){this.restoreHandlers.forEach(t=>{try{t()}catch{}}),this.restoreHandlers=[],this.shadowDoms=new WeakSet}}for(var Vt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Hp=typeof Uint8Array>"u"?[]:new Uint8Array(256),zs=0;zs<Vt.length;zs++)Hp[Vt.charCodeAt(zs)]=zs;var Dp=function(e){var t=new Uint8Array(e),s,n=t.length,r="";for(s=0;s<n;s+=3)r+=Vt[t[s]>>2],r+=Vt[(t[s]&3)<<4|t[s+1]>>4],r+=Vt[(t[s+1]&15)<<2|t[s+2]>>6],r+=Vt[t[s+2]&63];return n%3===2?r=r.substring(0,r.length-1)+"=":n%3===1&&(r=r.substring(0,r.length-2)+"=="),r};const Xa=new Map;function Bp(e,t){let s=Xa.get(e);return s||(s=new Map,Xa.set(e,s)),s.has(t)||s.set(t,[]),s.get(t)}const Va=(e,t,s)=>{if(!e||!(Ra(e,t)||typeof e=="object"))return;const n=e.constructor.name,r=Bp(s,n);let l=r.indexOf(e);return l===-1&&(l=r.length,r.push(e)),l};function Ps(e,t,s){if(e instanceof Array)return e.map(n=>Ps(n,t,s));if(e===null)return e;if(e instanceof Float32Array||e instanceof Float64Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Uint8Array||e instanceof Uint16Array||e instanceof Int16Array||e instanceof Int8Array||e instanceof Uint8ClampedArray)return{rr_type:e.constructor.name,args:[Object.values(e)]};if(e instanceof ArrayBuffer){const n=e.constructor.name,r=Dp(e);return{rr_type:n,base64:r}}else{if(e instanceof DataView)return{rr_type:e.constructor.name,args:[Ps(e.buffer,t,s),e.byteOffset,e.byteLength]};if(e instanceof HTMLImageElement){const n=e.constructor.name,{src:r}=e;return{rr_type:n,src:r}}else if(e instanceof HTMLCanvasElement){const n="HTMLImageElement",r=e.toDataURL();return{rr_type:n,src:r}}else{if(e instanceof ImageData)return{rr_type:e.constructor.name,args:[Ps(e.data,t,s),e.width,e.height]};if(Ra(e,t)||typeof e=="object"){const n=e.constructor.name,r=Va(e,t,s);return{rr_type:n,index:r}}}}return e}const Ga=(e,t,s)=>e.map(n=>Ps(n,t,s)),Ra=(e,t)=>!!["WebGLActiveInfo","WebGLBuffer","WebGLFramebuffer","WebGLProgram","WebGLRenderbuffer","WebGLShader","WebGLShaderPrecisionFormat","WebGLTexture","WebGLUniformLocation","WebGLVertexArrayObject","WebGLVertexArrayObjectOES"].filter(s=>typeof t[s]=="function").find(s=>e instanceof t[s]);function Qp(e,t,s,n){const r=[],l=Object.getOwnPropertyNames(t.CanvasRenderingContext2D.prototype);for(const d of l)try{if(typeof t.CanvasRenderingContext2D.prototype[d]!="function")continue;const f=lt(t.CanvasRenderingContext2D.prototype,d,function(m){return function(...h){return Ge(this.canvas,s,n,!0)||setTimeout(()=>{const p=Ga(h,t,this);e(this.canvas,{type:It["2D"],property:d,args:p})},0),m.apply(this,h)}});r.push(f)}catch{const m=Os(t.CanvasRenderingContext2D.prototype,d,{set(h){e(this.canvas,{type:It["2D"],property:d,args:[h],setter:!0})}});r.push(m)}return()=>{r.forEach(d=>d())}}function jp(e){return e==="experimental-webgl"?"webgl":e}function va(e,t,s,n){const r=[];try{const l=lt(e.HTMLCanvasElement.prototype,"getContext",function(d){return function(f,...m){if(!Ge(this,t,s,!0)){const h=jp(f);if("__context"in this||(this.__context=h),n&&["webgl","webgl2"].includes(h))if(m[0]&&typeof m[0]=="object"){const p=m[0];p.preserveDrawingBuffer||(p.preserveDrawingBuffer=!0)}else m.splice(0,1,{preserveDrawingBuffer:!0})}return d.apply(this,[f,...m])}});r.push(l)}catch{console.error("failed to patch HTMLCanvasElement.prototype.getContext")}return()=>{r.forEach(l=>l())}}function Wa(e,t,s,n,r,l){const d=[],f=Object.getOwnPropertyNames(e);for(const m of f)if(!["isContextLost","canvas","drawingBufferWidth","drawingBufferHeight"].includes(m))try{if(typeof e[m]!="function")continue;const h=lt(e,m,function(p){return function(...o){const a=p.apply(this,o);if(Va(a,l,this),"tagName"in this.canvas&&!Ge(this.canvas,n,r,!0)){const i=Ga(o,l,this),c={type:t,property:m,args:i};s(this.canvas,c)}return a}});d.push(h)}catch{const p=Os(e,m,{set(o){s(this.canvas,{type:t,property:m,args:[o],setter:!0})}});d.push(p)}return d}function Ap(e,t,s,n){const r=[];return typeof t.WebGLRenderingContext<"u"&&r.push(...Wa(t.WebGLRenderingContext.prototype,It.WebGL,e,s,n,t)),typeof t.WebGL2RenderingContext<"u"&&r.push(...Wa(t.WebGL2RenderingContext.prototype,It.WebGL2,e,s,n,t)),()=>{r.forEach(l=>l())}}const wa=`(function() {
352
+ or you can use record.mirror to access the mirror instance during recording.`;let na={map:{},getId(){return console.error(St),-1},getNode(){return console.error(St),null},removeNodeFromMap(){console.error(St)},has(){return console.error(St),!1},reset(){console.error(St)}};typeof window<"u"&&window.Proxy&&window.Reflect&&(na=new Proxy(na,{get(e,t,s){return t==="map"&&console.error(St),Reflect.get(e,t,s)}}));function Kt(e,t,s={}){let n=null,r=0;return function(...l){const d=Date.now();!r&&s.leading===!1&&(r=d);const f=t-(d-r),m=this;f<=0||f>t?(n&&(clearTimeout(n),n=null),r=d,e.apply(m,l)):!n&&s.trailing!==!1&&(n=setTimeout(()=>{r=s.leading===!1?0:Date.now(),n=null,e.apply(m,l)},f))}}function Ms(e,t,s,n,r=window){const l=r.Object.getOwnPropertyDescriptor(e,t);return r.Object.defineProperty(e,t,n?s:{set(d){setTimeout(()=>{s.set.call(this,d)},0),l&&l.set&&l.set.call(this,d)}}),()=>Ms(e,t,l||{},!0)}function ia(e){var t,s,n,r;const l=e.document;return{left:l.scrollingElement?l.scrollingElement.scrollLeft:e.pageXOffset!==void 0?e.pageXOffset:l.documentElement.scrollLeft||l?.body&&((t=$.parentElement(l.body))==null?void 0:t.scrollLeft)||((s=l?.body)==null?void 0:s.scrollLeft)||0,top:l.scrollingElement?l.scrollingElement.scrollTop:e.pageYOffset!==void 0?e.pageYOffset:l?.documentElement.scrollTop||l?.body&&((n=$.parentElement(l.body))==null?void 0:n.scrollTop)||((r=l?.body)==null?void 0:r.scrollTop)||0}}function ra(){return window.innerHeight||document.documentElement&&document.documentElement.clientHeight||document.body&&document.body.clientHeight}function oa(){return window.innerWidth||document.documentElement&&document.documentElement.clientWidth||document.body&&document.body.clientWidth}function la(e){return e?e.nodeType===e.ELEMENT_NODE?e:$.parentElement(e):null}const Zp=e=>{try{if(e instanceof HTMLElement)return e.tagName==="CANVAS"}catch{return!1}return!1};function Ge(e,t,s,n){if(!e)return!1;const r=la(e);if(!r)return!1;try{if(typeof t=="string"){if(r.classList.contains(t)||n&&r.closest("."+t)!==null)return!0}else if(Xs(r,t,n))return!0}catch{}return!!(s&&(r.matches(s)||n&&r.closest(s)!==null))}function Sp(e,t){return t.getId(e)!==-1}function Hi(e,t,s){return e.tagName==="TITLE"&&s.headTitleMutations?!0:t.getId(e)===Ut}function aa(e,t){if(Jt(e))return!1;const s=t.getId(e);if(!t.has(s))return!0;const n=$.parentNode(e);return n&&n.nodeType===e.DOCUMENT_NODE?!1:n?aa(n,t):!0}function Di(e){return!!e.changedTouches}function Ip(e=window){"NodeList"in e&&!e.NodeList.prototype.forEach&&(e.NodeList.prototype.forEach=Array.prototype.forEach),"DOMTokenList"in e&&!e.DOMTokenList.prototype.forEach&&(e.DOMTokenList.prototype.forEach=Array.prototype.forEach)}function ca(e,t){return!!(e.nodeName==="IFRAME"&&t.getMeta(e))}function ua(e,t){return!!(e.nodeName==="LINK"&&e.nodeType===e.ELEMENT_NODE&&e.getAttribute&&e.getAttribute("rel")==="stylesheet"&&t.getMeta(e))}function Bi(e){return e?e instanceof Ki&&"shadowRoot"in e?!!e.shadowRoot:!!$.shadowRoot(e):!1}class Xp{constructor(){L(this,"id",1),L(this,"styleIDMap",new WeakMap),L(this,"idStyleMap",new Map)}getId(t){var s;return(s=this.styleIDMap.get(t))!=null?s:-1}has(t){return this.styleIDMap.has(t)}add(t,s){if(this.has(t))return this.getId(t);let n;return s===void 0?n=this.id++:n=s,this.styleIDMap.set(t,n),this.idStyleMap.set(n,t),n}getStyle(t){return this.idStyleMap.get(t)||null}reset(){this.styleIDMap=new WeakMap,this.idStyleMap=new Map,this.id=1}generateId(){return this.id++}}function da(e){var t;let s=null;return"getRootNode"in e&&((t=$.getRootNode(e))==null?void 0:t.nodeType)===Node.DOCUMENT_FRAGMENT_NODE&&$.host($.getRootNode(e))&&(s=$.host($.getRootNode(e))),s}function Vp(e){let t=e,s;for(;s=da(t);)t=s;return t}function Gp(e){const t=$.ownerDocument(e);if(!t)return!1;const s=Vp(e);return $.contains(t,s)}function ha(e){const t=$.ownerDocument(e);return t?$.contains(t,e)||Gp(e):!1}var ie=(e=>(e[e.DomContentLoaded=0]="DomContentLoaded",e[e.Load=1]="Load",e[e.FullSnapshot=2]="FullSnapshot",e[e.IncrementalSnapshot=3]="IncrementalSnapshot",e[e.Meta=4]="Meta",e[e.Custom=5]="Custom",e[e.Plugin=6]="Plugin",e[e.Asset=7]="Asset",e))(ie||{}),te=(e=>(e[e.Mutation=0]="Mutation",e[e.MouseMove=1]="MouseMove",e[e.MouseInteraction=2]="MouseInteraction",e[e.Scroll=3]="Scroll",e[e.ViewportResize=4]="ViewportResize",e[e.Input=5]="Input",e[e.TouchMove=6]="TouchMove",e[e.MediaInteraction=7]="MediaInteraction",e[e.StyleSheetRule=8]="StyleSheetRule",e[e.CanvasMutation=9]="CanvasMutation",e[e.Font=10]="Font",e[e.Log=11]="Log",e[e.Drag=12]="Drag",e[e.StyleDeclaration=13]="StyleDeclaration",e[e.Selection=14]="Selection",e[e.AdoptedStyleSheet=15]="AdoptedStyleSheet",e[e.CustomElement=16]="CustomElement",e))(te||{}),xe=(e=>(e[e.MouseUp=0]="MouseUp",e[e.MouseDown=1]="MouseDown",e[e.Click=2]="Click",e[e.ContextMenu=3]="ContextMenu",e[e.DblClick=4]="DblClick",e[e.Focus=5]="Focus",e[e.Blur=6]="Blur",e[e.TouchStart=7]="TouchStart",e[e.TouchMove_Departed=8]="TouchMove_Departed",e[e.TouchEnd=9]="TouchEnd",e[e.TouchCancel=10]="TouchCancel",e))(xe||{}),et=(e=>(e[e.Mouse=0]="Mouse",e[e.Pen=1]="Pen",e[e.Touch=2]="Touch",e))(et||{}),It=(e=>(e[e["2D"]=0]="2D",e[e.WebGL=1]="WebGL",e[e.WebGL2=2]="WebGL2",e))(It||{}),Xt=(e=>(e[e.Play=0]="Play",e[e.Pause=1]="Pause",e[e.Seeked=2]="Seeked",e[e.VolumeChange=3]="VolumeChange",e[e.RateChange=4]="RateChange",e))(Xt||{}),pa=(e=>(e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment",e))(pa||{});function ma(e){return"__ln"in e}class Rp{constructor(){L(this,"length",0),L(this,"head",null),L(this,"tail",null)}get(t){if(t>=this.length)throw new Error("Position outside of list range");let s=this.head;for(let n=0;n<t;n++)s=s?.next||null;return s}addNode(t){const s={value:t,previous:null,next:null};if(t.__ln=s,t.previousSibling&&ma(t.previousSibling)){const n=t.previousSibling.__ln.next;s.next=n,s.previous=t.previousSibling.__ln,t.previousSibling.__ln.next=s,n&&(n.previous=s)}else if(t.nextSibling&&ma(t.nextSibling)&&t.nextSibling.__ln.previous){const n=t.nextSibling.__ln.previous;s.previous=n,s.next=t.nextSibling.__ln,t.nextSibling.__ln.previous=s,n&&(n.next=s)}else this.head&&(this.head.previous=s),s.next=this.head,this.head=s;s.next===null&&(this.tail=s),this.length++}removeNode(t){const s=t.__ln;this.head&&(s.previous?(s.previous.next=s.next,s.next?s.next.previous=s.previous:this.tail=s.previous):(this.head=s.next,this.head?this.head.previous=null:this.tail=null),t.__ln&&delete t.__ln,this.length--)}}const fa=(e,t)=>`${e}@${t}`;class vp{constructor(){L(this,"frozen",!1),L(this,"locked",!1),L(this,"texts",[]),L(this,"attributes",[]),L(this,"attributeMap",new WeakMap),L(this,"removes",[]),L(this,"mapRemoves",[]),L(this,"movedMap",{}),L(this,"addedSet",new Set),L(this,"movedSet",new Set),L(this,"droppedSet",new Set),L(this,"removesSubTreeCache",new Set),L(this,"mutationCb"),L(this,"blockClass"),L(this,"blockSelector"),L(this,"maskTextClass"),L(this,"maskTextSelector"),L(this,"inlineStylesheet"),L(this,"maskInputOptions"),L(this,"maskTextFn"),L(this,"maskInputFn"),L(this,"keepIframeSrcFn"),L(this,"recordCanvas"),L(this,"inlineImages"),L(this,"inlineVideos"),L(this,"privacySetting"),L(this,"slimDOMOptions"),L(this,"dataURLOptions"),L(this,"doc"),L(this,"mirror"),L(this,"iframeManager"),L(this,"stylesheetManager"),L(this,"shadowDomManager"),L(this,"canvasManager"),L(this,"processedNodeManager"),L(this,"unattachedDoc"),L(this,"processMutations",t=>{t.forEach(this.processMutation),this.emit()}),L(this,"emit",()=>{if(this.frozen||this.locked)return;const t=[],s=new Set,n=new Rp,r=m=>{let h=m,p=Ut;for(;p===Ut;)h=h&&h.nextSibling,p=h&&this.mirror.getId(h);return p},l=m=>{const h=$.parentNode(m);if(!h||!ha(m))return;let p=!1;if(m.nodeType===Node.TEXT_NODE){const c=h.tagName;if(c==="TEXTAREA")return;c==="STYLE"&&this.addedSet.has(h)&&(p=!0)}const o=Jt(h)?this.mirror.getId(da(m)):this.mirror.getId(h),a=r(m);if(o===-1||a===-1)return n.addNode(m);const i=Zt(m,{doc:this.doc,mirror:this.mirror,blockClass:this.blockClass,blockSelector:this.blockSelector,maskTextClass:this.maskTextClass,maskTextSelector:this.maskTextSelector,skipChild:!0,newlyAddedElement:!0,inlineStylesheet:this.inlineStylesheet,maskInputOptions:this.maskInputOptions,maskTextFn:this.maskTextFn,maskInputFn:this.maskInputFn,slimDOMOptions:this.slimDOMOptions,dataURLOptions:this.dataURLOptions,recordCanvas:this.recordCanvas,inlineImages:this.inlineImages,inlineVideos:this.inlineVideos,privacySetting:this.privacySetting,onSerialize:c=>{ca(c,this.mirror)&&this.iframeManager.addIframe(c),ua(c,this.mirror)&&this.stylesheetManager.trackLinkElement(c),Bi(m)&&this.shadowDomManager.addShadowRoot($.shadowRoot(m),this.doc)},onIframeLoad:(c,u)=>{this.iframeManager.attachIframe(c,u),this.shadowDomManager.observeAttachShadow(c)},onStylesheetLoad:(c,u)=>{this.stylesheetManager.attachLinkElement(c,u)},cssCaptured:p});i&&(t.push({parentId:o,nextId:a,node:i}),s.add(i.id))};for(;this.mapRemoves.length;)this.mirror.removeNodeFromMap(this.mapRemoves.shift());for(const m of this.movedSet)ba(this.removesSubTreeCache,m)&&!this.movedSet.has($.parentNode(m))||l(m);for(const m of this.addedSet)!ya(this.droppedSet,m)&&!ba(this.removesSubTreeCache,m)||ya(this.movedSet,m)?l(m):this.droppedSet.add(m);let d=null;for(;n.length;){let m=null;if(d){const h=this.mirror.getId($.parentNode(d.value)),p=r(d.value);h!==-1&&p!==-1&&(m=d)}if(!m){let h=n.tail;for(;h;){const p=h;if(h=h.previous,p){const o=this.mirror.getId($.parentNode(p.value));if(r(p.value)===-1)continue;if(o!==-1){m=p;break}else{const a=p.value,i=$.parentNode(a);if(i&&i.nodeType===Node.DOCUMENT_FRAGMENT_NODE){const c=$.host(i);if(this.mirror.getId(c)!==-1){m=p;break}}}}}}if(!m){for(;n.head;)n.removeNode(n.head.value);break}d=m.previous,n.removeNode(m.value),l(m.value)}const f={texts:this.texts.map(m=>{var h,p;const o=m.node,a=$.parentNode(o);a&&a.tagName==="TEXTAREA"&&this.genTextAreaValueMutation(a);let i=m.value;const c=this.privacySetting==="strict",u=this.privacySetting==="default"&&Xo(i),b=(p=(h=m.node)==null?void 0:h.parentElement)==null?void 0:p.getAttribute("data-hl-record");return(c||u)&&!b&&i&&(i=Gn(i)),{id:this.mirror.getId(o),value:i}}).filter(m=>!s.has(m.id)).filter(m=>this.mirror.has(m.id)),attributes:this.attributes.map(m=>{const{attributes:h}=m;if(typeof h.style=="string"){const p=JSON.stringify(m.styleDiff),o=JSON.stringify(m._unchangedStyles);p.length<h.style.length&&(p+o).split("var(").length===h.style.split("var(").length&&(h.style=m.styleDiff)}return{id:this.mirror.getId(m.node),attributes:h}}).filter(m=>!s.has(m.id)).filter(m=>this.mirror.has(m.id)),removes:this.removes,adds:t};!f.texts.length&&!f.attributes.length&&!f.removes.length&&!f.adds.length||(this.texts=[],this.attributes=[],this.attributeMap=new WeakMap,this.removes=[],this.addedSet=new Set,this.movedSet=new Set,this.droppedSet=new Set,this.removesSubTreeCache=new Set,this.movedMap={},this.mutationCb(f))}),L(this,"genTextAreaValueMutation",t=>{let s=this.attributeMap.get(t);s||(s={node:t,attributes:{},styleDiff:{},_unchangedStyles:{}},this.attributes.push(s),this.attributeMap.set(t,s));const n=Array.from($.childNodes(t),r=>$.textContent(r)||"").join("");s.attributes.value=ys({overwriteRecord:null,element:t,maskInputOptions:this.maskInputOptions,tagName:t.tagName,type:gs(t),value:n,maskInputFn:this.maskInputFn})}),L(this,"processMutation",t=>{if(!Hi(t.target,this.mirror,this.slimDOMOptions))switch(t.type){case"characterData":{const s=$.textContent(t.target);!Ge(t.target,this.blockClass,this.blockSelector,!1)&&s!==t.oldValue&&this.texts.push({value:Co(t.target,this.maskTextClass,this.maskTextSelector,!0)&&s?this.maskTextFn?this.maskTextFn(s,la(t.target)):s.replace(/[\S]/g,"*"):s,node:t.target});break}case"attributes":{const s=t.target;let n=t.attributeName,r=t.target.getAttribute(n);if(n==="value"){const d=gs(s);r=ys({element:s,maskInputOptions:this.maskInputOptions,tagName:s.tagName,type:d,value:r,overwriteRecord:s.getAttribute("data-hl-record"),maskInputFn:this.maskInputFn})}if(Ge(t.target,this.blockClass,this.blockSelector,!1)||r===t.oldValue)return;let l=this.attributeMap.get(t.target);if(s.tagName==="IFRAME"&&n==="src"&&!this.keepIframeSrcFn(r))if(!s.contentDocument)n="rr_src";else return;if(l||(l={node:t.target,attributes:{},styleDiff:{},_unchangedStyles:{}},this.attributes.push(l),this.attributeMap.set(t.target,l)),n==="type"&&s.tagName==="INPUT"&&(t.oldValue||"").toLowerCase()==="password"&&s.setAttribute("data-rr-is-password","true"),!wo(s.tagName,n)){if(t.target.tagName==="INPUT"){const d=t.target;if(d.type==="password"){l.attributes.value="*".repeat(d.value.length);break}}if(l.attributes[n]=Wo(this.doc,ot(s.tagName),ot(n),r),n==="style"){if(!this.unattachedDoc)try{this.unattachedDoc=document.implementation.createHTMLDocument()}catch{this.unattachedDoc=this.doc}const d=this.unattachedDoc.createElement("span");t.oldValue&&d.setAttribute("style",t.oldValue);for(const f of Array.from(s.style)){const m=s.style.getPropertyValue(f),h=s.style.getPropertyPriority(f);m!==d.style.getPropertyValue(f)||h!==d.style.getPropertyPriority(f)?h===""?l.styleDiff[f]=m:l.styleDiff[f]=[m,h]:l._unchangedStyles[f]=[m,h]}for(const f of Array.from(d.style))s.style.getPropertyValue(f)===""&&(l.styleDiff[f]=!1)}else n==="open"&&s.tagName==="DIALOG"&&(s.matches("dialog:modal")?l.attributes.rr_open_mode="modal":l.attributes.rr_open_mode="non-modal")}break}case"childList":{if(Ge(t.target,this.blockClass,this.blockSelector,!0))return;if(t.target.tagName==="TEXTAREA"){this.genTextAreaValueMutation(t.target);return}t.addedNodes.forEach(s=>this.genAdds(s,t.target)),t.removedNodes.forEach(s=>{const n=this.mirror.getId(s),r=Jt(t.target)?this.mirror.getId($.host(t.target)):this.mirror.getId(t.target);Ge(t.target,this.blockClass,this.blockSelector,!1)||Hi(s,this.mirror,this.slimDOMOptions)||!Sp(s,this.mirror)||(this.addedSet.has(s)?(Qi(this.addedSet,s),this.droppedSet.add(s)):this.addedSet.has(t.target)&&n===-1||aa(t.target,this.mirror)||(this.movedSet.has(s)&&this.movedMap[fa(n,r)]?Qi(this.movedSet,s):(this.removes.push({parentId:r,id:n,isShadow:Jt(t.target)&&Yt(t.target)?!0:void 0}),Wp(s,this.removesSubTreeCache))),this.mapRemoves.push(s))});break}}}),L(this,"genAdds",(t,s)=>{if(!this.processedNodeManager.inOtherBuffer(t,this)&&!(this.addedSet.has(t)||this.movedSet.has(t))){if(this.mirror.hasNode(t)){if(Hi(t,this.mirror,this.slimDOMOptions))return;this.movedSet.add(t);let n=null;s&&this.mirror.hasNode(s)&&(n=this.mirror.getId(s)),n&&n!==-1&&(this.movedMap[fa(this.mirror.getId(t),n)]=!0)}else this.addedSet.add(t),this.droppedSet.delete(t);Ge(t,this.blockClass,this.blockSelector,!1)||($.childNodes(t).forEach(n=>this.genAdds(n)),Bi(t)&&$.childNodes($.shadowRoot(t)).forEach(n=>{this.processedNodeManager.add(n,this),this.genAdds(n,t)}))}})}init(t){["mutationCb","blockClass","blockSelector","maskTextClass","maskTextSelector","inlineStylesheet","maskInputOptions","maskTextFn","maskInputFn","keepIframeSrcFn","recordCanvas","inlineImages","inlineVideos","privacySetting","slimDOMOptions","dataURLOptions","doc","mirror","iframeManager","stylesheetManager","shadowDomManager","canvasManager","processedNodeManager"].forEach(s=>{this[s]=t[s]})}freeze(){this.frozen=!0,this.canvasManager.freeze()}unfreeze(){this.frozen=!1,this.canvasManager.unfreeze(),this.emit()}isFrozen(){return this.frozen}lock(){this.locked=!0,this.canvasManager.lock()}unlock(){this.locked=!1,this.canvasManager.unlock(),this.emit()}reset(){this.shadowDomManager.reset(),this.canvasManager.reset()}}function Qi(e,t){e.delete(t),$.childNodes(t).forEach(s=>Qi(e,s))}function Wp(e,t){const s=[e];for(;s.length;){const n=s.pop();t.has(n)||(t.add(n),$.childNodes(n).forEach(r=>s.push(r)))}}function ba(e,t,s){return e.size===0?!1:wp(e,t)}function wp(e,t,s){const n=$.parentNode(t);return n?e.has(n):!1}function ya(e,t){return e.size===0?!1:ga(e,t)}function ga(e,t){const s=$.parentNode(t);return s?e.has(s)?!0:ga(e,s):!1}let Et;function kp(e){Et=e}function Cp(){Et=void 0}const se=e=>Et?(...t)=>{try{return e(...t)}catch(s){if(Et&&Et(s)===!0)return;throw s}}:e,at=[];function zt(e){try{if("composedPath"in e){const t=e.composedPath();if(t.length)return t[0]}else if("path"in e&&e.path.length)return e.path[0]}catch{}return e&&e.target}function Za(e,t){const s=new vp;at.push(s),s.init(e);const[n,r]=sa(),l=new n(se(s.processMutations.bind(s)));return l.observe(t,{attributes:!0,attributeOldValue:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),[l,r]}function xp({mousemoveCb:e,sampling:t,doc:s,mirror:n}){if(t.mousemove===!1)return()=>{};const r=typeof t.mousemove=="number"?t.mousemove:50,l=typeof t.mousemoveCallback=="number"?t.mousemoveCallback:500;let d=[],f;const m=Kt(se(o=>{const a=Date.now()-f;e(d.map(i=>(i.timeOffset-=a,i)),o),d=[],f=null}),l),h=se(Kt(se(o=>{const a=zt(o),{clientX:i,clientY:c}=Di(o)?o.changedTouches[0]:o;f||(f=Ot()),d.push({x:i,y:c,id:n.getId(a),timeOffset:Ot()-f}),m(typeof DragEvent<"u"&&o instanceof DragEvent?te.Drag:o instanceof MouseEvent?te.MouseMove:te.TouchMove)}),r,{trailing:!1})),p=[we("mousemove",h,s),we("touchmove",h,s),we("drag",h,s)];return se(()=>{p.forEach(o=>o())})}function Tp({mouseInteractionCb:e,doc:t,mirror:s,blockClass:n,blockSelector:r,sampling:l}){if(l.mouseInteraction===!1)return()=>{};const d=l.mouseInteraction===!0||l.mouseInteraction===void 0?{}:l.mouseInteraction,f=[];let m=null;const h=p=>o=>{const a=zt(o);if(Ge(a,n,r,!0)||Zp(a))return;let i=null,c=p;if("pointerType"in o){switch(o.pointerType){case"mouse":i=et.Mouse;break;case"touch":i=et.Touch;break;case"pen":i=et.Pen;break}i===et.Touch&&(xe[p]===xe.MouseDown?c="TouchStart":xe[p]===xe.MouseUp&&(c="TouchEnd"))}else Di(o)&&(i=et.Touch);i!==null?(m=i,(c.startsWith("Touch")&&i===et.Touch||c.startsWith("Mouse")&&i===et.Mouse)&&(i=null)):xe[p]===xe.Click&&(i=m,m=null);const u=Di(o)?o.changedTouches[0]:o;if(!u)return;const b=s.getId(a),{clientX:S,clientY:Z}=u;se(e)(H({type:xe[c],id:b,x:S,y:Z},i!==null&&{pointerType:i}))};return Object.keys(xe).filter(p=>Number.isNaN(Number(p))&&!p.endsWith("_Departed")&&d[p]!==!1).forEach(p=>{let o=ot(p);const a=h(p);if(window.PointerEvent)switch(xe[p]){case xe.MouseDown:case xe.MouseUp:o=o.replace("mouse","pointer");break;case xe.TouchStart:case xe.TouchEnd:return}f.push(we(o,a,t))}),se(()=>{f.forEach(p=>p())})}function Sa({scrollCb:e,doc:t,mirror:s,blockClass:n,blockSelector:r,sampling:l}){const d=se(Kt(se(f=>{const m=zt(f);if(!m||Ge(m,n,r,!0))return;const h=s.getId(m);if(m===t&&t.defaultView){const p=ia(t.defaultView);e({id:h,x:p.left,y:p.top})}else e({id:h,x:m.scrollLeft,y:m.scrollTop})}),l.scroll||100));return we("scroll",d,t)}function Lp({viewportResizeCb:e},{win:t}){let s=-1,n=-1;const r=se(Kt(se(()=>{const l=ra(),d=oa();(s!==l||n!==d)&&(e({width:Number(d),height:Number(l)}),s=l,n=d)}),200));return we("resize",r,t)}const Np=["INPUT","TEXTAREA","SELECT"],Ia=new WeakMap;function Jp({inputCb:e,doc:t,mirror:s,blockClass:n,blockSelector:r,ignoreClass:l,ignoreSelector:d,maskInputOptions:f,maskInputFn:m,sampling:h,userTriggeredOnInput:p}){function o(S){let Z=zt(S);const I=S.isTrusted,R=Z&&Z.tagName;if(Z&&R==="OPTION"&&(Z=$.parentElement(Z)),!Z||!R||Np.indexOf(R)<0||Ge(Z,n,r,!0)||Z.classList.contains(l)||d&&Z.matches(d))return;let y=Z.value,g=!1;const V=gs(Z)||"",v=Z.getAttribute("data-hl-record");V==="radio"||V==="checkbox"?g=Z.checked:Vo({maskInputOptions:f,type:V,tagName:R,overwriteRecord:v})&&(y=ys({element:Z,maskInputOptions:f,tagName:R,type:V,value:y,overwriteRecord:v,maskInputFn:m})),a(Z,p?{text:y,isChecked:g,userTriggered:I}:{text:y,isChecked:g});const X=Z.name;V==="radio"&&X&&g&&t.querySelectorAll(`input[type="radio"][name="${X}"]`).forEach(W=>{if(W!==Z){const k=W.value;a(W,p?{text:k,isChecked:!g,userTriggered:!1}:{text:k,isChecked:!g})}})}function a(S,Z){const I=Ia.get(S);if(!I||I.text!==Z.text||I.isChecked!==Z.isChecked){Ia.set(S,Z);const R=s.getId(S);se(e)(Xe(H({},Z),{id:R}))}}const i=(h.input==="last"?["change"]:["input","change"]).map(S=>we(S,se(o),t)),c=t.defaultView;if(!c)return()=>{i.forEach(S=>S())};const u=c.Object.getOwnPropertyDescriptor(c.HTMLInputElement.prototype,"value"),b=[[c.HTMLInputElement.prototype,"value"],[c.HTMLInputElement.prototype,"checked"],[c.HTMLSelectElement.prototype,"value"],[c.HTMLTextAreaElement.prototype,"value"],[c.HTMLSelectElement.prototype,"selectedIndex"],[c.HTMLOptionElement.prototype,"selected"]];return u&&u.set&&i.push(...b.map(S=>Ms(S[0],S[1],{set(){se(o)({target:this,isTrusted:!1})}},!1,c))),se(()=>{i.forEach(S=>S())})}function Os(e){const t=[];function s(n,r){if(Ks("CSSGroupingRule")&&n.parentRule instanceof CSSGroupingRule||Ks("CSSMediaRule")&&n.parentRule instanceof CSSMediaRule||Ks("CSSSupportsRule")&&n.parentRule instanceof CSSSupportsRule||Ks("CSSConditionRule")&&n.parentRule instanceof CSSConditionRule){const l=Array.from(n.parentRule.cssRules).indexOf(n);return r.unshift(l),s(n.parentRule,r)}else if(n.parentStyleSheet){const l=Array.from(n.parentStyleSheet.cssRules).indexOf(n);r.unshift(l)}return r}return s(e,t)}function tt(e,t,s){let n,r;return e?(e.ownerNode?n=t.getId(e.ownerNode):r=s.getId(e),{styleId:r,id:n}):{}}function st(e,t,s,n){e[t]===s&&(e[t]=n)}const Yp=5;function Up({styleSheetRuleCb:e,mirror:t,stylesheetManager:s,doc:n,styleSheetResyncInterval:r},{win:l}){if(!l.CSSStyleSheet||!l.CSSStyleSheet.prototype)return()=>{};const d=new WeakMap,f=new WeakSet;let m=!1,h=!1,p=!1,o,a=!1,i=!1,c=!1;const u=(U,K,M)=>{const z=d.get(U),E=U.cssRules[M];!z||!E||z.splice(Math.min(K??0,z.length),0,E)},b=(U,K)=>{const M=d.get(U);M&&K>=0&&K<M.length&&M.splice(K,1)},S=U=>new Proxy(U,{apply:se((K,M,z)=>{if(m)return h=!0,K.apply(M,z);if(a||i)return K.apply(M,z);const[E,D]=z,{id:_,styleId:re}=tt(M,t,s.styleMirror),fe=_&&_!==-1||re&&re!==-1;fe&&e({id:_,styleId:re,adds:[{rule:E,index:D}]}),i=!0;let Ne;try{Ne=K.apply(M,z)}finally{i=!1}return fe&&u(M,D,typeof Ne=="number"?Ne:D??0),Ne})}),Z=U=>new Proxy(U,{apply:se((K,M,z)=>{if(m)return p=!0,K.apply(M,z);if(a||c)return K.apply(M,z);const[E]=z,{id:D,styleId:_}=tt(M,t,s.styleMirror),re=D&&D!==-1||_&&_!==-1;re&&e({id:D,styleId:_,removes:[{index:E}]}),c=!0;let fe;try{fe=K.apply(M,z)}finally{c=!1}return re&&b(M,E),fe})}),I=l.CSSStyleSheet.prototype.insertRule;let R=S(I),y=I;l.CSSStyleSheet.prototype.insertRule=R;const g=l.CSSStyleSheet.prototype.addRule,V=function(U,K,M=this.cssRules.length){const z=`${U} { ${K} }`;return l.CSSStyleSheet.prototype.insertRule.apply(this,[z,M])};l.CSSStyleSheet.prototype.addRule=V;const v=l.CSSStyleSheet.prototype.deleteRule;let X=Z(v),W=v;l.CSSStyleSheet.prototype.deleteRule=X;const k=l.CSSStyleSheet.prototype.removeRule,N=function(U){return l.CSSStyleSheet.prototype.deleteRule.apply(this,[U])};l.CSSStyleSheet.prototype.removeRule=N;let j,G;l.CSSStyleSheet.prototype.replace&&(j=l.CSSStyleSheet.prototype.replace,G=new Proxy(j,{apply:se((U,K,M)=>{if(a)return U.apply(K,M);const[z]=M,{id:E,styleId:D}=tt(K,t,s.styleMirror);return(E&&E!==-1||D&&D!==-1)&&e({id:E,styleId:D,replace:z}),U.apply(K,M)})}),l.CSSStyleSheet.prototype.replace=G);let w,T;l.CSSStyleSheet.prototype.replaceSync&&(w=l.CSSStyleSheet.prototype.replaceSync,T=new Proxy(w,{apply:se((U,K,M)=>{if(a)return U.apply(K,M);const[z]=M,{id:E,styleId:D}=tt(K,t,s.styleMirror);return(E&&E!==-1||D&&D!==-1)&&e({id:E,styleId:D,replaceSync:z}),U.apply(K,M)})}),l.CSSStyleSheet.prototype.replaceSync=T);const Y={};Es("CSSGroupingRule")?Y.CSSGroupingRule=l.CSSGroupingRule:(Es("CSSMediaRule")&&(Y.CSSMediaRule=l.CSSMediaRule),Es("CSSConditionRule")&&(Y.CSSConditionRule=l.CSSConditionRule),Es("CSSSupportsRule")&&(Y.CSSSupportsRule=l.CSSSupportsRule));const O={},J={};Object.entries(Y).forEach(([U,K])=>{O[U]={insertRule:K.prototype.insertRule,deleteRule:K.prototype.deleteRule},J[U]={},J[U].insertRule=new Proxy(O[U].insertRule,{apply:se((M,z,E)=>{if(a)return M.apply(z,E);const[D,_]=E,{id:re,styleId:fe}=tt(z.parentStyleSheet,t,s.styleMirror);return(re&&re!==-1||fe&&fe!==-1)&&e({id:re,styleId:fe,adds:[{rule:D,index:[...Os(z),_||0]}]}),M.apply(z,E)})}),J[U].deleteRule=new Proxy(O[U].deleteRule,{apply:se((M,z,E)=>{if(a)return M.apply(z,E);const[D]=E,{id:_,styleId:re}=tt(z.parentStyleSheet,t,s.styleMirror);return(_&&_!==-1||re&&re!==-1)&&e({id:_,styleId:re,removes:[{index:[...Os(z),D]}]}),M.apply(z,E)})}),K.prototype.insertRule=J[U].insertRule,K.prototype.deleteRule=J[U].deleteRule});const q=()=>{m=!0,h=!1,p=!1;try{const U=o??(o=new l.CSSStyleSheet);U.insertRule(":root {}",0),U.deleteRule(0)}catch{return{insertRule:l.CSSStyleSheet.prototype.insertRule===R,deleteRule:l.CSSStyleSheet.prototype.deleteRule===X}}finally{m=!1}return{insertRule:h,deleteRule:p}};let B=0;const C=U=>{B>=Yp||(B+=1,U.insertRule||(y=l.CSSStyleSheet.prototype.insertRule,R=S(y),l.CSSStyleSheet.prototype.insertRule=R),U.deleteRule||(W=l.CSSStyleSheet.prototype.deleteRule,X=Z(W),l.CSSStyleSheet.prototype.deleteRule=X))},oe=U=>{for(let K=0;K<n.styleSheets.length;K++){const M=n.styleSheets[K];if(f.has(M))continue;const z=M.ownerNode;if(!z||ot(z.nodeName)!=="style"||(z.textContent||"").trim().length)continue;const E=t.getId(z);if(!E||E===-1)continue;let D;try{D=M.cssRules}catch{continue}const _=d.get(M);if(!_){if(Array.from(D).some(re=>go(re))){f.add(M);continue}if(d.set(M,Array.from(D)),U)continue;le(E,D);continue}U&&D.length===_.length||ue(E,M,_,D)}};function ue(U,K,M,z){const E=Array.from(z);if(E.length===M.length&&E.every((A,ge)=>A===M[ge]))return;const D=new Map(E.map((A,ge)=>[A,ge])),_=new Set;let re=-1;const fe=[];M.forEach((A,ge)=>{const de=D.get(A);de!==void 0&&de>re&&!_.has(A)?(_.add(A),re=de):fe.push({index:ge})}),fe.reverse();const Ne=[];E.forEach((A,ge)=>{_.has(A)||Ne.push({rule:A.cssText,index:ge})}),fe.length&&e({id:U,removes:fe}),Ne.length&&e({id:U,adds:Ne}),d.set(K,E)}function le(U,K){const M=[];for(let z=K.length-1;z>=0;z--)M.push({index:z});M.length&&e({id:U,removes:M}),e({id:U,adds:Array.from(K,(z,E)=>({rule:z.cssText,index:E}))})}let Se;return r>0&&(Se=l.setInterval(se(()=>{const U=q(),K=U.insertRule&&U.deleteRule;K||C(U),oe(K)}),r)),se(()=>{Se!==void 0&&l.clearInterval(Se),a=!0;const U=l.CSSStyleSheet.prototype;st(U,"insertRule",R,y),st(U,"deleteRule",X,W),st(U,"addRule",V,g),st(U,"removeRule",N,k),G&&st(U,"replace",G,j),T&&st(U,"replaceSync",T,w),Object.entries(Y).forEach(([K,M])=>{st(M.prototype,"insertRule",J[K].insertRule,O[K].insertRule),st(M.prototype,"deleteRule",J[K].deleteRule,O[K].deleteRule)})})}function Xa({mirror:e,stylesheetManager:t},s){var n,r,l;let d=null;s.nodeName==="#document"?d=e.getId(s):d=e.getId($.host(s));const f=s.nodeName==="#document"?(n=s.defaultView)==null?void 0:n.Document:(l=(r=s.ownerDocument)==null?void 0:r.defaultView)==null?void 0:l.ShadowRoot,m=f!=null&&f.prototype?Object.getOwnPropertyDescriptor(f?.prototype,"adoptedStyleSheets"):void 0;return d===null||d===-1||!f||!m?()=>{}:(Object.defineProperty(s,"adoptedStyleSheets",{configurable:m.configurable,enumerable:m.enumerable,get(){var h;return(h=m.get)==null?void 0:h.call(this)},set(h){var p;const o=(p=m.set)==null?void 0:p.call(this,h);if(d!==null&&d!==-1)try{t.adoptStyleSheets(h,d)}catch{}return o}}),se(()=>{Object.defineProperty(s,"adoptedStyleSheets",{configurable:m.configurable,enumerable:m.enumerable,get:m.get,set:m.set})}))}function Fp({styleDeclarationCb:e,mirror:t,ignoreCSSAttributes:s,stylesheetManager:n},{win:r}){const l=r.CSSStyleDeclaration.prototype.setProperty;r.CSSStyleDeclaration.prototype.setProperty=new Proxy(l,{apply:se((f,m,h)=>{var p;const[o,a,i]=h;if(s.has(o))return l.apply(m,[o,a,i]);const{id:c,styleId:u}=tt((p=m.parentRule)==null?void 0:p.parentStyleSheet,t,n.styleMirror);return(c&&c!==-1||u&&u!==-1)&&e({id:c,styleId:u,set:{property:o,value:a,priority:i},index:Os(m.parentRule)}),f.apply(m,h)})});const d=r.CSSStyleDeclaration.prototype.removeProperty;return r.CSSStyleDeclaration.prototype.removeProperty=new Proxy(d,{apply:se((f,m,h)=>{var p;const[o]=h;if(s.has(o))return d.apply(m,[o]);const{id:a,styleId:i}=tt((p=m.parentRule)==null?void 0:p.parentStyleSheet,t,n.styleMirror);return(a&&a!==-1||i&&i!==-1)&&e({id:a,styleId:i,remove:{property:o},index:Os(m.parentRule)}),f.apply(m,h)})}),se(()=>{r.CSSStyleDeclaration.prototype.setProperty=l,r.CSSStyleDeclaration.prototype.removeProperty=d})}function Mp({mediaInteractionCb:e,blockClass:t,blockSelector:s,mirror:n,sampling:r,doc:l}){const d=se(m=>Kt(se(h=>{const p=zt(h);if(!p||Ge(p,t,s,!0))return;const{currentTime:o,volume:a,muted:i,playbackRate:c,loop:u}=p;e({type:m,id:n.getId(p),currentTime:o,volume:a,muted:i,playbackRate:c,loop:u})}),r.media||500)),f=[we("play",d(Xt.Play),l),we("pause",d(Xt.Pause),l),we("seeked",d(Xt.Seeked),l),we("volumechange",d(Xt.VolumeChange),l),we("ratechange",d(Xt.RateChange),l)];return se(()=>{f.forEach(m=>m())})}function Op({fontCb:e,doc:t}){const s=t.defaultView;if(!s)return()=>{};const n=[],r=new WeakMap,l=s.FontFace;s.FontFace=function(f,m,h){const p=new l(f,m,h);return r.set(p,{family:f,buffer:typeof m!="string",descriptors:h,fontSource:typeof m=="string"?m:JSON.stringify(Array.from(new Uint8Array(m)))}),p};const d=lt(t.fonts,"add",function(f){return function(m){return setTimeout(se(()=>{const h=r.get(m);h&&(e(h),r.delete(m))}),0),f.apply(this,[m])}});return n.push(()=>{s.FontFace=l}),n.push(d),se(()=>{n.forEach(f=>f())})}function Kp(e){const{doc:t,mirror:s,blockClass:n,blockSelector:r,selectionCb:l}=e;let d=!0;const f=se(()=>{const m=t.getSelection();if(!m||d&&m!=null&&m.isCollapsed)return;d=m.isCollapsed||!1;const h=[],p=m.rangeCount||0;for(let o=0;o<p;o++){const a=m.getRangeAt(o),{startContainer:i,startOffset:c,endContainer:u,endOffset:b}=a;Ge(i,n,r,!0)||Ge(u,n,r,!0)||h.push({start:s.getId(i),startOffset:c,end:s.getId(u),endOffset:b})}l({ranges:h})});return f(),we("selectionchange",f)}function Ep({doc:e,customElementCb:t}){const s=e.defaultView;return!s||!s.customElements?()=>{}:lt(s.customElements,"define",function(n){return function(r,l,d){try{t({define:{name:r}})}catch{console.warn(`Custom element callback failed for ${r}`)}return n.apply(this,[r,l,d])}})}function zp(e,t){const{mutationCb:s,mousemoveCb:n,mouseInteractionCb:r,scrollCb:l,viewportResizeCb:d,inputCb:f,mediaInteractionCb:m,styleSheetRuleCb:h,styleDeclarationCb:p,canvasMutationCb:o,fontCb:a,selectionCb:i,customElementCb:c}=e;e.mutationCb=(...u)=>{t.mutation&&t.mutation(...u),s(...u)},e.mousemoveCb=(...u)=>{t.mousemove&&t.mousemove(...u),n(...u)},e.mouseInteractionCb=(...u)=>{t.mouseInteraction&&t.mouseInteraction(...u),r(...u)},e.scrollCb=(...u)=>{t.scroll&&t.scroll(...u),l(...u)},e.viewportResizeCb=(...u)=>{t.viewportResize&&t.viewportResize(...u),d(...u)},e.inputCb=(...u)=>{t.input&&t.input(...u),f(...u)},e.mediaInteractionCb=(...u)=>{t.mediaInteaction&&t.mediaInteaction(...u),m(...u)},e.styleSheetRuleCb=(...u)=>{t.styleSheetRule&&t.styleSheetRule(...u),h(...u)},e.styleDeclarationCb=(...u)=>{t.styleDeclaration&&t.styleDeclaration(...u),p(...u)},e.canvasMutationCb=(...u)=>{t.canvasMutation&&t.canvasMutation(...u),o(...u)},e.fontCb=(...u)=>{t.font&&t.font(...u),a(...u)},e.selectionCb=(...u)=>{t.selection&&t.selection(...u),i(...u)},e.customElementCb=(...u)=>{t.customElement&&t.customElement(...u),c(...u)}}function Pp(e,t={}){const s=e.doc.defaultView;if(!s)return()=>{};zp(e,t);let n,r=()=>{};e.recordDOM&&([n,r]=Za(e,e.doc));const l=xp(e),d=Tp(e),f=Sa(e),m=Lp(e,{win:s}),h=Jp(e),p=Mp(e);let o=()=>{},a=()=>{},i=()=>{},c=()=>{};e.recordDOM&&(o=Up(e,{win:s}),a=Xa(e,e.doc),i=Fp(e,{win:s}),e.collectFonts&&(c=Op(e)));const u=Kp(e),b=Ep(e),S=[];for(const Z of e.plugins)S.push(Z.observer(Z.callback,s,Z.options));return se(()=>{at.forEach(Z=>Z.reset()),n?.disconnect(),r(),l(),d(),f(),m(),h(),p(),o(),a(),i(),c(),u(),b(),S.forEach(Z=>Z())})}function Ks(e){return typeof window[e]<"u"}function Es(e){return!!(typeof window[e]<"u"&&window[e].prototype&&"insertRule"in window[e].prototype&&"deleteRule"in window[e].prototype)}class Va{constructor(t){L(this,"iframeIdToRemoteIdMap",new WeakMap),L(this,"iframeRemoteIdToIdMap",new WeakMap),this.generateIdFn=t}getId(t,s,n,r){const l=n||this.getIdToRemoteIdMap(t),d=r||this.getRemoteIdToIdMap(t);let f=l.get(s);return f||(f=this.generateIdFn(),l.set(s,f),d.set(f,s)),f}getIds(t,s){const n=this.getIdToRemoteIdMap(t),r=this.getRemoteIdToIdMap(t);return s.map(l=>this.getId(t,l,n,r))}getRemoteId(t,s,n){const r=n||this.getRemoteIdToIdMap(t);return typeof s!="number"?s:r.get(s)||-1}getRemoteIds(t,s){const n=this.getRemoteIdToIdMap(t);return s.map(r=>this.getRemoteId(t,r,n))}reset(t){if(!t){this.iframeIdToRemoteIdMap=new WeakMap,this.iframeRemoteIdToIdMap=new WeakMap;return}this.iframeIdToRemoteIdMap.delete(t),this.iframeRemoteIdToIdMap.delete(t)}getIdToRemoteIdMap(t){let s=this.iframeIdToRemoteIdMap.get(t);return s||(s=new Map,this.iframeIdToRemoteIdMap.set(t,s)),s}getRemoteIdToIdMap(t){let s=this.iframeRemoteIdToIdMap.get(t);return s||(s=new Map,this.iframeRemoteIdToIdMap.set(t,s)),s}}class Hp{constructor(t){L(this,"iframes",new WeakMap),L(this,"crossOriginIframeMap",new WeakMap),L(this,"crossOriginIframeMirror",new Va(Go)),L(this,"crossOriginIframeStyleMirror"),L(this,"crossOriginIframeRootIdMap",new WeakMap),L(this,"mirror"),L(this,"mutationCb"),L(this,"wrappedEmit"),L(this,"loadListener"),L(this,"stylesheetManager"),L(this,"recordCrossOriginIframes"),this.mutationCb=t.mutationCb,this.wrappedEmit=t.wrappedEmit,this.stylesheetManager=t.stylesheetManager,this.recordCrossOriginIframes=t.recordCrossOriginIframes,this.crossOriginIframeStyleMirror=new Va(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror)),this.mirror=t.mirror,this.recordCrossOriginIframes&&window.addEventListener("message",this.handleMessage.bind(this))}addIframe(t){this.iframes.set(t,!0),t.contentWindow&&this.crossOriginIframeMap.set(t.contentWindow,t)}addLoadListener(t){this.loadListener=t}attachIframe(t,s){var n,r;this.mutationCb({adds:[{parentId:this.mirror.getId(t),nextId:null,node:s}],removes:[],texts:[],attributes:[],isAttachIframe:!0}),this.recordCrossOriginIframes&&((n=t.contentWindow)==null||n.addEventListener("message",this.handleMessage.bind(this))),(r=this.loadListener)==null||r.call(this,t),t.contentDocument&&t.contentDocument.adoptedStyleSheets&&t.contentDocument.adoptedStyleSheets.length>0&&this.stylesheetManager.adoptStyleSheets(t.contentDocument.adoptedStyleSheets,this.mirror.getId(t.contentDocument))}handleMessage(t){const s=t;if(s.data.type!=="rrweb"||s.origin!==s.data.origin)return;const n=t.source;if(!n)return;const r=this.crossOriginIframeMap.get(n);if(!r)return;const l=this.transformCrossOriginEvent(r,s.data.event);l&&this.wrappedEmit(l,s.data.isCheckout)}transformCrossOriginEvent(t,s){var n;switch(s.type){case ie.FullSnapshot:{this.crossOriginIframeMirror.reset(t),this.crossOriginIframeStyleMirror.reset(t),this.replaceIdOnNode(s.data.node,t);const r=s.data.node.id;return this.crossOriginIframeRootIdMap.set(t,r),this.patchRootIdOnNode(s.data.node,r),{timestamp:s.timestamp,type:ie.IncrementalSnapshot,data:{source:te.Mutation,adds:[{parentId:this.mirror.getId(t),nextId:null,node:s.data.node}],removes:[],texts:[],attributes:[],isAttachIframe:!0}}}case ie.Meta:case ie.Load:case ie.DomContentLoaded:return!1;case ie.Plugin:return s;case ie.Custom:return this.replaceIds(s.data.payload,t,["id","parentId","previousId","nextId"]),s;case ie.IncrementalSnapshot:switch(s.data.source){case te.Mutation:return s.data.adds.forEach(r=>{this.replaceIds(r,t,["parentId","nextId","previousId"]),this.replaceIdOnNode(r.node,t);const l=this.crossOriginIframeRootIdMap.get(t);l&&this.patchRootIdOnNode(r.node,l)}),s.data.removes.forEach(r=>{this.replaceIds(r,t,["parentId","id"])}),s.data.attributes.forEach(r=>{this.replaceIds(r,t,["id"])}),s.data.texts.forEach(r=>{this.replaceIds(r,t,["id"])}),s;case te.Drag:case te.TouchMove:case te.MouseMove:return s.data.positions.forEach(r=>{this.replaceIds(r,t,["id"])}),s;case te.ViewportResize:return!1;case te.MediaInteraction:case te.MouseInteraction:case te.Scroll:case te.CanvasMutation:case te.Input:return this.replaceIds(s.data,t,["id"]),s;case te.StyleSheetRule:case te.StyleDeclaration:return this.replaceIds(s.data,t,["id"]),this.replaceStyleIds(s.data,t,["styleId"]),s;case te.Font:return s;case te.Selection:return s.data.ranges.forEach(r=>{this.replaceIds(r,t,["start","end"])}),s;case te.AdoptedStyleSheet:return this.replaceIds(s.data,t,["id"]),this.replaceStyleIds(s.data,t,["styleIds"]),(n=s.data.styles)==null||n.forEach(r=>{this.replaceStyleIds(r,t,["styleId"])}),s}}return!1}replace(t,s,n,r){for(const l of r)!Array.isArray(s[l])&&typeof s[l]!="number"||(Array.isArray(s[l])?s[l]=t.getIds(n,s[l]):s[l]=t.getId(n,s[l]));return s}replaceIds(t,s,n){return this.replace(this.crossOriginIframeMirror,t,s,n)}replaceStyleIds(t,s,n){return this.replace(this.crossOriginIframeStyleMirror,t,s,n)}replaceIdOnNode(t,s){this.replaceIds(t,s,["id","rootId"]),"childNodes"in t&&t.childNodes.forEach(n=>{this.replaceIdOnNode(n,s)})}patchRootIdOnNode(t,s){t.type!==pa.Document&&!t.rootId&&(t.rootId=s),"childNodes"in t&&t.childNodes.forEach(n=>{this.patchRootIdOnNode(n,s)})}}class Dp{constructor(t){L(this,"shadowDoms",new WeakSet),L(this,"mutationCb"),L(this,"scrollCb"),L(this,"bypassOptions"),L(this,"mirror"),L(this,"restoreHandlers",[]),this.mutationCb=t.mutationCb,this.scrollCb=t.scrollCb,this.bypassOptions=t.bypassOptions,this.mirror=t.mirror,this.init()}init(){this.reset(),this.patchAttachShadow(Element,document)}addShadowRoot(t,s){if(!Yt(t)||this.shadowDoms.has(t))return;this.shadowDoms.add(t);const[n]=Za(Xe(H({},this.bypassOptions),{doc:s,mutationCb:this.mutationCb,mirror:this.mirror,shadowDomManager:this}),t);this.restoreHandlers.push(()=>n.disconnect()),this.restoreHandlers.push(Sa(Xe(H({},this.bypassOptions),{scrollCb:this.scrollCb,doc:t,mirror:this.mirror}))),setTimeout(()=>{t.adoptedStyleSheets&&t.adoptedStyleSheets.length>0&&this.bypassOptions.stylesheetManager.adoptStyleSheets(t.adoptedStyleSheets,this.mirror.getId($.host(t))),this.restoreHandlers.push(Xa({mirror:this.mirror,stylesheetManager:this.bypassOptions.stylesheetManager},t))},0)}observeAttachShadow(t){!t.contentWindow||!t.contentDocument||this.patchAttachShadow(t.contentWindow.Element,t.contentDocument)}patchAttachShadow(t,s){const n=this;this.restoreHandlers.push(lt(t.prototype,"attachShadow",function(r){return function(l){const d=r.call(this,l),f=$.shadowRoot(this);return f&&ha(this)&&n.addShadowRoot(f,s),d}}))}reset(){this.restoreHandlers.forEach(t=>{try{t()}catch{}}),this.restoreHandlers=[],this.shadowDoms=new WeakSet}}for(var Vt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Bp=typeof Uint8Array>"u"?[]:new Uint8Array(256),zs=0;zs<Vt.length;zs++)Bp[Vt.charCodeAt(zs)]=zs;var Qp=function(e){var t=new Uint8Array(e),s,n=t.length,r="";for(s=0;s<n;s+=3)r+=Vt[t[s]>>2],r+=Vt[(t[s]&3)<<4|t[s+1]>>4],r+=Vt[(t[s+1]&15)<<2|t[s+2]>>6],r+=Vt[t[s+2]&63];return n%3===2?r=r.substring(0,r.length-1)+"=":n%3===1&&(r=r.substring(0,r.length-2)+"=="),r};const Ga=new Map;function jp(e,t){let s=Ga.get(e);return s||(s=new Map,Ga.set(e,s)),s.has(t)||s.set(t,[]),s.get(t)}const Ra=(e,t,s)=>{if(!e||!(Wa(e,t)||typeof e=="object"))return;const n=e.constructor.name,r=jp(s,n);let l=r.indexOf(e);return l===-1&&(l=r.length,r.push(e)),l};function Ps(e,t,s){if(e instanceof Array)return e.map(n=>Ps(n,t,s));if(e===null)return e;if(e instanceof Float32Array||e instanceof Float64Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Uint8Array||e instanceof Uint16Array||e instanceof Int16Array||e instanceof Int8Array||e instanceof Uint8ClampedArray)return{rr_type:e.constructor.name,args:[Object.values(e)]};if(e instanceof ArrayBuffer){const n=e.constructor.name,r=Qp(e);return{rr_type:n,base64:r}}else{if(e instanceof DataView)return{rr_type:e.constructor.name,args:[Ps(e.buffer,t,s),e.byteOffset,e.byteLength]};if(e instanceof HTMLImageElement){const n=e.constructor.name,{src:r}=e;return{rr_type:n,src:r}}else if(e instanceof HTMLCanvasElement){const n="HTMLImageElement",r=e.toDataURL();return{rr_type:n,src:r}}else{if(e instanceof ImageData)return{rr_type:e.constructor.name,args:[Ps(e.data,t,s),e.width,e.height]};if(Wa(e,t)||typeof e=="object"){const n=e.constructor.name,r=Ra(e,t,s);return{rr_type:n,index:r}}}}return e}const va=(e,t,s)=>e.map(n=>Ps(n,t,s)),Wa=(e,t)=>!!["WebGLActiveInfo","WebGLBuffer","WebGLFramebuffer","WebGLProgram","WebGLRenderbuffer","WebGLShader","WebGLShaderPrecisionFormat","WebGLTexture","WebGLUniformLocation","WebGLVertexArrayObject","WebGLVertexArrayObjectOES"].filter(s=>typeof t[s]=="function").find(s=>e instanceof t[s]);function Ap(e,t,s,n){const r=[],l=Object.getOwnPropertyNames(t.CanvasRenderingContext2D.prototype);for(const d of l)try{if(typeof t.CanvasRenderingContext2D.prototype[d]!="function")continue;const f=lt(t.CanvasRenderingContext2D.prototype,d,function(m){return function(...h){return Ge(this.canvas,s,n,!0)||setTimeout(()=>{const p=va(h,t,this);e(this.canvas,{type:It["2D"],property:d,args:p})},0),m.apply(this,h)}});r.push(f)}catch{const m=Ms(t.CanvasRenderingContext2D.prototype,d,{set(h){e(this.canvas,{type:It["2D"],property:d,args:[h],setter:!0})}});r.push(m)}return()=>{r.forEach(d=>d())}}function _p(e){return e==="experimental-webgl"?"webgl":e}function wa(e,t,s,n){const r=[];try{const l=lt(e.HTMLCanvasElement.prototype,"getContext",function(d){return function(f,...m){if(!Ge(this,t,s,!0)){const h=_p(f);if("__context"in this||(this.__context=h),n&&["webgl","webgl2"].includes(h))if(m[0]&&typeof m[0]=="object"){const p=m[0];p.preserveDrawingBuffer||(p.preserveDrawingBuffer=!0)}else m.splice(0,1,{preserveDrawingBuffer:!0})}return d.apply(this,[f,...m])}});r.push(l)}catch{console.error("failed to patch HTMLCanvasElement.prototype.getContext")}return()=>{r.forEach(l=>l())}}function ka(e,t,s,n,r,l){const d=[],f=Object.getOwnPropertyNames(e);for(const m of f)if(!["isContextLost","canvas","drawingBufferWidth","drawingBufferHeight"].includes(m))try{if(typeof e[m]!="function")continue;const h=lt(e,m,function(p){return function(...o){const a=p.apply(this,o);if(Ra(a,l,this),"tagName"in this.canvas&&!Ge(this.canvas,n,r,!0)){const i=va(o,l,this),c={type:t,property:m,args:i};s(this.canvas,c)}return a}});d.push(h)}catch{const p=Ms(e,m,{set(o){s(this.canvas,{type:t,property:m,args:[o],setter:!0})}});d.push(p)}return d}function $p(e,t,s,n){const r=[];return typeof t.WebGLRenderingContext<"u"&&r.push(...ka(t.WebGLRenderingContext.prototype,It.WebGL,e,s,n,t)),typeof t.WebGL2RenderingContext<"u"&&r.push(...ka(t.WebGL2RenderingContext.prototype,It.WebGL2,e,s,n,t)),()=>{r.forEach(l=>l())}}const Ca=`(function() {
353
353
  "use strict";
354
354
  var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
355
355
  var lookup = typeof Uint8Array === "undefined" ? [] : new Uint8Array(256);
@@ -449,15 +449,15 @@ or you can use record.mirror to access the mirror instance during recording.`;le
449
449
  };
450
450
  })();
451
451
  //# sourceMappingURL=image-bitmap-data-url-worker-DwtK8A0z.js.map
452
- `,ka=typeof self<"u"&&self.Blob&&new Blob([wa],{type:"text/javascript;charset=utf-8"});function _p(e){let t;try{if(t=ka&&(self.URL||self.webkitURL).createObjectURL(ka),!t)throw"";const s=new Worker(t,{name:e?.name});return s.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),s}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(wa),{name:e?.name})}finally{t&&(self.URL||self.webkitURL).revokeObjectURL(t)}}class $p{constructor(t){L(this,"pendingCanvasMutations",new Map),L(this,"rafStamps",{latestId:0,invokeId:null}),L(this,"mirror"),L(this,"logger"),L(this,"worker"),L(this,"snapshotInProgressMap",new Map),L(this,"lastSnapshotTime",new Map),L(this,"options"),L(this,"mutationCb"),L(this,"resetObservers"),L(this,"frozen",!1),L(this,"locked",!1),L(this,"processMutation",(o,a)=>{(this.rafStamps.invokeId&&this.rafStamps.latestId!==this.rafStamps.invokeId||!this.rafStamps.invokeId)&&(this.rafStamps.invokeId=this.rafStamps.latestId),this.pendingCanvasMutations.has(o)||this.pendingCanvasMutations.set(o,[]),this.pendingCanvasMutations.get(o).push(a)});const{sampling:s,win:n,blockClass:r,blockSelector:l,recordCanvas:d,recordLocalVideos:f,recordRemoteVideos:m,initialSnapshotDelay:h,dataURLOptions:p}=t;this.mutationCb=t.mutationCb,this.mirror=t.mirror,this.logger=t.logger,this.worker=new _p,this.worker.onmessage=o=>{const{id:a}=o.data;if(this.snapshotInProgressMap.set(a,!1),!("base64"in o.data)){this.debug(null,"canvas worker received empty message",{id:a,data:o.data,status:o.data.status});return}const{base64:i,type:c,dx:u,dy:b,dw:S,dh:Z}=o.data,I={id:a,type:It["2D"],commands:[{property:"clearRect",args:[u,b,S,Z]},{property:"drawImage",args:[{rr_type:"ImageBitmap",args:[{rr_type:"Blob",data:[{rr_type:"ArrayBuffer",base64:i}],type:c}]},u,b,S,Z]}]};this.debug(null,"canvas worker recording mutation",I),this.mutationCb(I)},this.options=t,d&&s==="all"?(this.debug(null,"initializing canvas mutation observer",{sampling:s}),this.initCanvasMutationObserver(n,r,l)):d&&typeof s=="number"&&(this.debug(null,"initializing canvas fps observer",{sampling:s}),this.initCanvasFPSObserver(f,m,s,n,r,l,{initialSnapshotDelay:h,dataURLOptions:p},t.resizeFactor,t.maxSnapshotDimension))}reset(){this.pendingCanvasMutations.clear(),this.resetObservers&&this.resetObservers()}freeze(){this.frozen=!0}unfreeze(){this.frozen=!1}lock(){this.locked=!0}unlock(){this.locked=!1}debug(t,...s){if(!this.logger)return;const n=this.mirror.getId(t);let r="[highlight-canvas-manager]";t&&(r=`[highlight-canvas] [id:${n}]`,t.tagName.toLowerCase()==="canvas"&&(r+=` [ctx:${t.__context}]`)),this.logger.debug(r,t,...s)}snapshot(t){return We(this,null,function*(){var s;const n=this.mirror.getId(t);if(this.snapshotInProgressMap.get(n)){this.debug(t,"snapshotting already in progress for",n);return}const r=1e3/(typeof this.options.samplingManual=="number"?this.options.samplingManual:1),l=this.lastSnapshotTime.get(n);if(!(l&&new Date().getTime()-l<r)){if(this.debug(t,"starting snapshotting"),t.width===0||t.height===0){this.debug(t,"not yet ready",{width:t.width,height:t.height});return}this.lastSnapshotTime.set(n,new Date().getTime()),this.snapshotInProgressMap.set(n,!0);try{if(this.options.clearWebGLBuffer!==!1&&["webgl","webgl2"].includes(t.__context)){const p=t.getContext(t.__context);((s=p?.getContextAttributes())==null?void 0:s.preserveDrawingBuffer)===!1&&(p.clear(p.COLOR_BUFFER_BIT),this.debug(t,"cleared webgl canvas to load it into memory",{attributes:p?.getContextAttributes()}))}if(t.width===0||t.height===0){this.debug(t,"not yet ready",{width:t.width,height:t.height});return}let d=this.options.resizeFactor||1;if(this.options.maxSnapshotDimension){const p=Math.max(t.width,t.height);d=Math.min(d,this.options.maxSnapshotDimension/p)}const f=t.width*d,m=t.height*d,h=yield createImageBitmap(t,{resizeWidth:f,resizeHeight:m});this.debug(t,"created image bitmap",{width:h.width,height:h.height}),this.worker.postMessage({id:n,bitmap:h,width:f,height:m,dx:0,dy:0,dw:t.width,dh:t.height,dataURLOptions:this.options.dataURLOptions,logDebug:!!this.logger},[h]),this.debug(t,"sent message")}catch(d){this.debug(t,"failed to snapshot",d)}finally{this.snapshotInProgressMap.set(n,!1)}}})}initCanvasFPSObserver(t,s,n,r,l,d,f,m,h){const p=va(r,l,d,!0),o=1e3/n;let a=0,i;const c=new Map,u=(I,R)=>{const y=[];I.querySelectorAll(R).forEach(v=>y.push(v));const g=document.createNodeIterator(I,Node.ELEMENT_NODE);let V;for(;V=g.nextNode();)V!=null&&V.shadowRoot&&y.push(...u(V.shadowRoot,R));return y},b=I=>{const R=[];return u(r.document,"canvas").forEach(y=>{if(!Ge(y,l,d,!0)){this.debug(y,"discovered canvas"),R.push(y);const g=this.mirror.getId(y);c.has(g)||c.set(g,I)}}),R},S=I=>{const R=[];return(t||s)&&u(r.document,"video").forEach(y=>{if(!(!s&&y.src!==""&&y.src.indexOf("blob:")===-1)&&!(!t&&(y.src===""||y.src.indexOf("blob:")!==-1))&&!Ge(y,l,d,!0)){R.push(y);const g=this.mirror.getId(y);c.has(g)||c.set(g,I)}}),R},Z=I=>We(this,null,function*(){if(a&&I-a<o){i=requestAnimationFrame(g=>void Z(g));return}a=I;const R=g=>{const V=this.mirror.getId(g),v=c.get(V),X=!f.initialSnapshotDelay||I-v>f.initialSnapshotDelay;return this.debug(g,{delay:f.initialSnapshotDelay,delta:I-v,hadLoadingTime:X}),X},y=[];y.push(...b(I).filter(R).map(g=>this.snapshot(g))),y.push(...S(I).filter(R).map(g=>We(this,null,function*(){this.debug(g,"starting video snapshotting");const V=this.mirror.getId(g);if(this.snapshotInProgressMap.get(V)){this.debug(g,"video snapshotting already in progress for",V);return}this.snapshotInProgressMap.set(V,!0);try{const{width:v,height:X}=g.getBoundingClientRect(),{actualWidth:W,actualHeight:k}={actualWidth:g.videoWidth,actualHeight:g.videoHeight},N=Math.max(W,k);if(N===0){this.debug(g,"not yet ready",{width:g.width,height:g.height,actualWidth:W,actualHeight:k,boxWidth:v,boxHeight:X});return}let j=m||1;h&&(j=Math.min(j,h/N));const G=W*j,w=k*j,T=yield createImageBitmap(g,{resizeWidth:G,resizeHeight:w}),Y=Math.max(v,X)/N,M=W*Y,J=k*Y,q=(v-M)/2,B=(X-J)/2;this.debug(g,"created image bitmap",{actualWidth:W,actualHeight:k,boxWidth:v,boxHeight:X,outputWidth:M,outputHeight:J,resizeWidth:G,resizeHeight:w,scale:j,outputScale:Y,offsetX:q,offsetY:B}),this.worker.postMessage({id:V,bitmap:T,width:G,height:w,dx:q,dy:B,dw:M,dh:J,dataURLOptions:f.dataURLOptions,logDebug:!!this.logger},[T]),this.debug(g,"send message")}catch(v){this.debug(g,"failed to snapshot",v)}finally{this.snapshotInProgressMap.set(V,!1)}}))),yield Promise.all(y).catch(console.error),i=requestAnimationFrame(g=>void Z(g))});i=requestAnimationFrame(I=>void Z(I)),this.resetObservers=()=>{p(),i&&cancelAnimationFrame(i)}}initCanvasMutationObserver(t,s,n){this.startRAFTimestamping(),this.startPendingCanvasMutationFlusher();const r=va(t,s,n,!1),l=Qp(this.processMutation.bind(this),t,s,n),d=Ap(this.processMutation.bind(this),t,s,n);this.resetObservers=()=>{r(),l(),d()}}startPendingCanvasMutationFlusher(){requestAnimationFrame(()=>this.flushPendingCanvasMutations())}startRAFTimestamping(){const t=s=>{this.rafStamps.latestId=s,requestAnimationFrame(t)};requestAnimationFrame(t)}flushPendingCanvasMutations(){this.pendingCanvasMutations.forEach((t,s)=>{const n=this.mirror.getId(s);this.flushPendingCanvasMutationFor(s,n)}),requestAnimationFrame(()=>this.flushPendingCanvasMutations())}flushPendingCanvasMutationFor(t,s){if(this.frozen||this.locked)return;const n=this.pendingCanvasMutations.get(t);if(!n||s===-1)return;const r=n.map(d=>ms(d,["type"])),{type:l}=n[0];this.mutationCb({id:s,type:l,commands:r}),this.pendingCanvasMutations.delete(t)}}class qp{constructor(t){L(this,"trackedLinkElements",new WeakSet),L(this,"mutationCb"),L(this,"adoptedStyleSheetCb"),L(this,"styleMirror",new Sp),this.mutationCb=t.mutationCb,this.adoptedStyleSheetCb=t.adoptedStyleSheetCb}attachLinkElement(t,s){"_cssText"in s.attributes&&this.mutationCb({adds:[],removes:[],texts:[],attributes:[{id:s.id,attributes:s.attributes}]}),this.trackLinkElement(t)}trackLinkElement(t){this.trackedLinkElements.has(t)||(this.trackedLinkElements.add(t),this.trackStylesheetInLinkElement(t))}adoptStyleSheets(t,s){if(t.length===0)return;const n={id:s,styleIds:[]},r=[];for(const l of t){let d;this.styleMirror.has(l)?d=this.styleMirror.getId(l):(d=this.styleMirror.add(l),r.push({styleId:d,rules:Array.from(l.rules||CSSRule,(f,m)=>({rule:fo(f,l.href),index:m}))})),n.styleIds.push(d)}r.length>0&&(n.styles=r),this.adoptedStyleSheetCb(n)}reset(){this.styleMirror.reset(),this.trackedLinkElements=new WeakSet}trackStylesheetInLinkElement(t){}}class em{constructor(){L(this,"nodeMap",new WeakMap),L(this,"active",!1)}inOtherBuffer(t,s){const n=this.nodeMap.get(t);return n&&Array.from(n).some(r=>r!==s)}add(t,s){this.active||(this.active=!0,requestAnimationFrame(()=>{this.nodeMap=new WeakMap,this.active=!1})),this.nodeMap.set(t,(this.nodeMap.get(t)||new Set).add(s))}destroy(){}}let pe,Hs,Pt,Ds=!1;try{if(Array.from([1],e=>e*2)[0]!==2){const e=document.createElement("iframe");document.body.appendChild(e),Array.from=((io=e.contentWindow)==null?void 0:io.Array.from)||Array.from,document.body.removeChild(e)}}catch(e){console.debug("Unable to override Array.from",e)}const ze=th();function Qe(e={}){var t;const{emit:s,checkoutEveryNms:n,checkoutEveryNth:r,blockClass:l="highlight-block",blockSelector:d=null,ignoreClass:f="highlight-ignore",ignoreSelector:m=null,maskTextClass:h="highlight-mask",maskTextSelector:p=null,inlineStylesheet:o=!0,maskAllInputs:a,maskInputOptions:i,slimDOMOptions:c,maskInputFn:u,maskTextFn:b=Vn,hooks:S,packFn:Z,sampling:I={},mousemoveWait:R,recordDOM:y=!0,recordCanvas:g=!1,recordCrossOriginIframes:V=!1,recordAfter:v=e.recordAfter==="DOMContentLoaded"?e.recordAfter:"load",userTriggeredOnInput:X=!1,collectFonts:W=!1,inlineImages:k=!1,inlineVideos:N=!1,plugins:j,keepIframeSrcFn:G=()=>!1,privacySetting:w="default",ignoreCSSAttributes:T=new Set([]),styleSheetResyncInterval:Y=2e3,errorHandler:M,logger:J}=e,q=H(H({},e.dataURLOptions),typeof((t=e.sampling)==null?void 0:t.canvas)=="object"?e.sampling.canvas.dataURLOptions:void 0);Wp(M);const B=V?window.parent===window:!0;let C=!1;if(!B)try{window.parent.document&&(C=!1)}catch{C=!0}if(B&&!s)throw new Error("emit function is required");if(!B&&!C)return()=>{};R!==void 0&&I.mousemove===void 0&&(I.mousemove=R),ze.reset();const oe=a===!0?{color:!0,date:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0,textarea:!0,select:!0,password:!0}:i!==void 0?i:{password:!0},ue=ko(c);Zp();let le,Se=0;const U=A=>{for(const ge of j||[])ge.eventProcessor&&(A=ge.eventProcessor(A));return Z&&!C&&(A=Z(A)),A};pe=(A,ge)=>{var de;const me=A;if(me.timestamp=Mt(),(de=at[0])!=null&&de.isFrozen()&&me.type!==ie.FullSnapshot&&!(me.type===ie.IncrementalSnapshot&&me.data.source===te.Mutation)&&at.forEach(Je=>Je.unfreeze()),B)s?.(U(me),ge);else if(C){const Je={type:"rrweb",event:U(me),origin:window.location.origin,isCheckout:ge};window.parent.postMessage(Je,"*")}if(me.type===ie.FullSnapshot)le=me,Se=0;else if(me.type===ie.IncrementalSnapshot){if(me.data.source===te.Mutation&&me.data.isAttachIframe)return;Se++;const Je=r&&Se>=r,ae=n&&me.timestamp-le.timestamp>n;(Je||ae)&&Hs(!0)}};const K=A=>{pe({type:ie.IncrementalSnapshot,data:H({source:te.Mutation},A)})},O=A=>pe({type:ie.IncrementalSnapshot,data:H({source:te.Scroll},A)}),z=A=>pe({type:ie.IncrementalSnapshot,data:H({source:te.CanvasMutation},A)}),E=A=>pe({type:ie.IncrementalSnapshot,data:H({source:te.AdoptedStyleSheet},A)}),D=new qp({mutationCb:K,adoptedStyleSheetCb:E}),_=new zp({mirror:ze,mutationCb:K,stylesheetManager:D,recordCrossOriginIframes:V,wrappedEmit:pe});for(const A of j||[])A.getMirror&&A.getMirror({nodeMirror:ze,crossOriginIframeMirror:_.crossOriginIframeMirror,crossOriginIframeStyleMirror:_.crossOriginIframeStyleMirror});const re=new em,fe=typeof I?.canvas=="object"?I.canvas:{fps:I?.canvas};Pt=new $p({recordCanvas:g,recordLocalVideos:k,recordRemoteVideos:N,mutationCb:z,win:window,blockClass:l,blockSelector:d,mirror:ze,sampling:fe.fps,samplingManual:fe.fpsManual,clearWebGLBuffer:fe.clearWebGLBuffer,initialSnapshotDelay:fe.initialSnapshotDelay,dataURLOptions:q,resizeFactor:fe.resizeFactor,maxSnapshotDimension:fe.maxSnapshotDimension,logger:J});const Ne=new Pp({mutationCb:K,scrollCb:O,bypassOptions:{blockClass:l,blockSelector:d,maskTextClass:h,maskTextSelector:p,inlineStylesheet:o,maskInputOptions:oe,dataURLOptions:q,maskTextFn:b,maskInputFn:u,recordCanvas:g,inlineImages:k,inlineVideos:N,privacySetting:w,sampling:I,slimDOMOptions:ue,iframeManager:_,stylesheetManager:D,canvasManager:Pt,keepIframeSrcFn:G,processedNodeManager:re},mirror:ze});Hs=(A=!1)=>{if(!y)return;pe({type:ie.Meta,data:{href:window.location.href,width:ia(),height:na()}},A),D.reset(),Ne.init(),at.forEach(de=>de.lock());const ge=Th(document,{mirror:ze,blockClass:l,blockSelector:d,maskTextClass:h,maskTextSelector:p,inlineStylesheet:o,maskAllInputs:oe,maskTextFn:b,maskInputFn:u,slimDOM:ue,dataURLOptions:q,recordCanvas:g,inlineImages:k,inlineVideos:N,privacySetting:w,onSerialize:de=>{la(de,ze)&&_.addIframe(de),aa(de,ze)&&D.trackLinkElement(de),Di(de)&&Ne.addShadowRoot($.shadowRoot(de),document)},onIframeLoad:(de,me)=>{_.attachIframe(de,me),Ne.observeAttachShadow(de)},onStylesheetLoad:(de,me)=>{D.attachLinkElement(de,me)},keepIframeSrcFn:G});if(!ge)return console.warn("Failed to snapshot the document");pe({type:ie.FullSnapshot,data:{node:ge,initialOffset:sa(window)}},A),at.forEach(de=>de.unlock()),document.adoptedStyleSheets&&document.adoptedStyleSheets.length>0&&D.adoptStyleSheets(document.adoptedStyleSheets,ze.getId(document))};try{const A=[],ge=me=>{var Je;return se(Ep)({mutationCb:K,mousemoveCb:(ae,nr)=>pe({type:ie.IncrementalSnapshot,data:{source:nr,positions:ae}}),mouseInteractionCb:ae=>pe({type:ie.IncrementalSnapshot,data:H({source:te.MouseInteraction},ae)}),scrollCb:O,viewportResizeCb:ae=>pe({type:ie.IncrementalSnapshot,data:H({source:te.ViewportResize},ae)}),inputCb:ae=>pe({type:ie.IncrementalSnapshot,data:H({source:te.Input},ae)}),mediaInteractionCb:ae=>pe({type:ie.IncrementalSnapshot,data:H({source:te.MediaInteraction},ae)}),styleSheetRuleCb:ae=>pe({type:ie.IncrementalSnapshot,data:H({source:te.StyleSheetRule},ae)}),styleDeclarationCb:ae=>pe({type:ie.IncrementalSnapshot,data:H({source:te.StyleDeclaration},ae)}),canvasMutationCb:z,fontCb:ae=>pe({type:ie.IncrementalSnapshot,data:H({source:te.Font},ae)}),selectionCb:ae=>{pe({type:ie.IncrementalSnapshot,data:H({source:te.Selection},ae)})},customElementCb:ae=>{pe({type:ie.IncrementalSnapshot,data:H({source:te.CustomElement},ae)})},blockClass:l,ignoreClass:f,ignoreSelector:m,maskTextClass:h,maskTextSelector:p,maskInputOptions:oe,inlineStylesheet:o,sampling:I,recordDOM:y,recordCanvas:g,inlineImages:k,inlineVideos:N,userTriggeredOnInput:X,collectFonts:W,doc:me,maskInputFn:u,maskTextFn:b,keepIframeSrcFn:G,blockSelector:d,slimDOMOptions:ue,dataURLOptions:q,mirror:ze,iframeManager:_,stylesheetManager:D,shadowDomManager:Ne,processedNodeManager:re,canvasManager:Pt,ignoreCSSAttributes:T,styleSheetResyncInterval:Y,privacySetting:w,plugins:((Je=j?.filter(ae=>ae.observer))==null?void 0:Je.map(ae=>({observer:ae.observer,options:ae.options,callback:nr=>pe({type:ie.Plugin,data:{plugin:ae.name,payload:nr}})})))||[]},S)};_.addLoadListener(me=>{try{A.push(ge(me.contentDocument))}catch(Je){console.warn(Je)}});const de=()=>{Hs(),A.push(ge(document)),Ds=!0};return["interactive","complete"].includes(document.readyState)?de():(A.push(we("DOMContentLoaded",()=>{pe({type:ie.DomContentLoaded,data:{}}),v==="DOMContentLoaded"&&de()})),A.push(we("load",()=>{pe({type:ie.Load,data:{}}),v==="load"&&de()},window))),()=>{A.forEach(me=>{try{me()}catch(Je){String(Je).toLowerCase().includes("cross-origin")||console.warn(Je)}}),re.destroy(),Ds=!1,wp()}}catch(A){console.warn(A)}}Qe.addCustomEvent=(e,t)=>{Ds&&pe({type:ie.Custom,data:{tag:e,payload:t}})},Qe.freezePage=()=>{at.forEach(e=>e.freeze())},Qe.takeFullSnapshot=e=>{if(!Ds)throw new Error("please take full snapshot after start recording");Hs(e)},Qe.snapshotCanvas=e=>We(void 0,null,function*(){if(!Pt)throw new Error("canvas manager is not initialized");yield Pt.snapshot(e)}),Qe.mirror=ze;var Ca;(function(e){e[e.NotStarted=0]="NotStarted",e[e.Running=1]="Running",e[e.Stopped=2]="Stopped"})(Ca||(Ca={}));const{addCustomEvent:xa}=Qe,tm=(e,t,s)=>{switch(e){case"strict":return[!0,void 0];case"default":return[!0,void 0];case"none":return[!!t,Xe(H({},s),{password:!0})]}},sm=(e,t)=>e==="strict"?"strict":t??e==="default"?"default":"none",nm=e=>{const t=n=>{if(n.target){const r=n.target,l=jr(r);e(l,n)}},s={capture:!0};return window.addEventListener("click",t,s),()=>window.removeEventListener("click",t,s)},im=e=>{const t=s=>{if(s.target){const n=jr(s.target);e(n)}};return window.addEventListener("focusin",t),()=>window.removeEventListener("focusin",t)},rm=e=>{let t,s;if(typeof document.hidden<"u"?(t="hidden",s="visibilitychange"):typeof document.msHidden<"u"?(t="msHidden",s="msvisibilitychange"):typeof document.webkitHidden<"u"&&(t="webkitHidden",s="webkitvisibilitychange"),s===void 0)return()=>{};if(t===void 0)return()=>{};const n=t,r=()=>{const d=document[n];e(!!d)};document.addEventListener(s,r);const l=s;return()=>document.removeEventListener(l,r)},om=e=>{e(window.location.href);var t=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.send=function(l){setTimeout(()=>{var d,f;try{f=JSON.parse((d=l?.toString())!=null?d:"")}catch{return}(f.type==="track"||f.type==="identify")&&Qi(f)&&e(f)},100),t.call(this,l)};const s=l=>{if(l.key==="ajs_user_id"||l.key==="ajs_anonymous_id"||l.key==="ajs_user_traits"){const{userId:d,userTraits:f}=Ta();if(d){let m={};f&&(m=JSON.parse(f));const h={type:"identify",userId:d.toString(),traits:m};Qi(h)&&e(h)}}},{userId:n,userTraits:r}=Ta();if(n){let l={};r&&(l=JSON.parse(r));const d={type:"identify",userId:n.toString(),traits:l};Qi(d)&&e(d)}return window.addEventListener("storage",s),Ku(({keyName:l})=>{s({key:l})}),()=>{window.removeEventListener("storage",s),XMLHttpRequest.prototype.send=t}},Ta=()=>{const e=Te("ajs_user_id"),t=Te("ajs_user_traits"),s=Te("ajs_anonymous_id");return{userId:e,userTraits:t,anonymousId:s}},Qi=e=>{if(!e)return!1;let t="";try{t=JSON.stringify(e)}catch{return!1}const s=lm(t),n=Te(ve.SEGMENT_LAST_SENT_HASH_KEY);return n===void 0||s!==n?(He(ve.SEGMENT_LAST_SENT_HASH_KEY,s),!0):!1},lm=e=>{var t=0,s=e.length,n=0;if(s>0)for(;n<s;)t=(t<<5)-t+e.charCodeAt(n++)|0;return t.toString()},am=(e,t)=>{const s=cm(e);let n=[];const r=!1,l=!0,d=[];for(let m=0;m<s.length;m++){let h=s[m].split("+");n=[],h.length>1&&(n=hm(Na,h)),h=h[h.length-1],h=h==="*"?"*":dm(h),h in Pe||(Pe[h]=[]);const p={mods:n,shortcut:s[m],key:s[m],method:t,keyup:r,keydown:l,scope:"all",splitKey:"+"};Pe[h].push(p),d.push({key:h,handler:p})}const f=m=>fm(m);return pm(document,"keydown",f),()=>{document.removeEventListener("keydown",f);for(const{key:m,handler:h}of d){const p=Pe[m],o=p?p.indexOf(h):-1;o>-1&&p.splice(o,1)}}};let ke=[];function cm(e){typeof e!="string"&&(e=""),e=e.replace(/\s/g,"");const t=e.split(",");let s=t.lastIndexOf("");for(;s>=0;)t[s-1]+=",",t.splice(s,1),s=t.lastIndexOf("");return t}const Pe={},ji=typeof navigator<"u"?navigator.userAgent.toLowerCase().indexOf("firefox")>0:!1,um={backspace:8,tab:9,clear:12,enter:13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,num_0:96,num_1:97,num_2:98,num_3:99,num_4:100,num_5:101,num_6:102,num_7:103,num_8:104,num_9:105,num_multiply:106,num_add:107,num_enter:108,num_subtract:109,num_decimal:110,num_divide:111,"⇪":20,",":188,".":190,"/":191,"`":192,"-":ji?173:189,"=":ji?61:187,";":ji?59:186,"'":222,"[":219,"]":221,"\\":220},La={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},Ce={16:!1,18:!1,17:!1,91:!1},Na={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":91,cmd:91,command:91},dm=e=>um[e.toLowerCase()]||Na[e.toLowerCase()]||e.toUpperCase().charCodeAt(0);function hm(e,t){const s=t.slice(0,t.length-1);for(let n=0;n<s.length;n++)s[n]=e[s[n].toLowerCase()];return s}function pm(e,t,s){e.addEventListener?e.addEventListener(t,s,!1):e.attachEvent&&e.attachEvent(`on${t}`,()=>{s(window.event)})}function mm(e,t,s){let n;if(t.scope===s||t.scope==="all"){n=t.mods.length>0;for(const r in Ce)Object.prototype.hasOwnProperty.call(Ce,r)&&(!Ce[r]&&t.mods.indexOf(+r)>-1||Ce[r]&&t.mods.indexOf(+r)===-1)&&(n=!1);(t.mods.length===0&&!Ce[16]&&!Ce[18]&&!Ce[17]&&!Ce[91]||n||t.shortcut==="*")&&t.method(e,t)===!1&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0))}}function fm(e){const t=Pe["*"];let s=e.keyCode||e.which||e.charCode;if((s===93||s===224)&&(s=91),ke.indexOf(s)===-1&&s!==229&&ke.push(s),["ctrlKey","altKey","shiftKey","metaKey"].forEach(n=>{const r=La[n];e[n]&&ke.indexOf(r)===-1?ke.push(r):!e[n]&&ke.indexOf(r)>-1?ke.splice(ke.indexOf(r),1):n==="metaKey"&&e[n]&&ke.length===3&&(e.ctrlKey||e.shiftKey||e.altKey||(ke=ke.slice(ke.indexOf(r))))}),!(s in Ce&&(Ce[s]=!0,!t))){for(const n in Ce)Object.prototype.hasOwnProperty.call(Ce,n)&&(Ce[n]=e[La[n]]);if(e.getModifierState&&!(e.altKey&&!e.ctrlKey)&&e.getModifierState("AltGraph")&&(ke.indexOf(17)===-1&&ke.push(17),ke.indexOf(18)===-1&&ke.push(18),Ce[17]=!0,Ce[18]=!0),s in Pe){for(let n=0;n<Pe[s].length;n++)if((e.type==="keydown"&&Pe[s][n].keydown||e.type==="keyup"&&Pe[s][n].keyup)&&Pe[s][n].key){const r=Pe[s][n];mm(e,r,"all")}}}}const Ja="iframe parent ready",Ya="iframe ok",Ht="highlightLogs",bm=e=>{let t=Te(Ht)||"";t=t+"["+new Date().getTime()+"] "+e+`
453
- `,He(Ht,t)},ym=()=>Te(Ht)||"",gm=e=>{if(!e)return;let t=Te(Ht)||"";t&&(t.startsWith(e)?(t=t.slice(e.length),He(Ht,t)):bm("Unable to clear logs "+e.replace(`
452
+ `,xa=typeof self<"u"&&self.Blob&&new Blob([Ca],{type:"text/javascript;charset=utf-8"});function qp(e){let t;try{if(t=xa&&(self.URL||self.webkitURL).createObjectURL(xa),!t)throw"";const s=new Worker(t,{name:e?.name});return s.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),s}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(Ca),{name:e?.name})}finally{t&&(self.URL||self.webkitURL).revokeObjectURL(t)}}class em{constructor(t){L(this,"pendingCanvasMutations",new Map),L(this,"rafStamps",{latestId:0,invokeId:null}),L(this,"mirror"),L(this,"logger"),L(this,"worker"),L(this,"snapshotInProgressMap",new Map),L(this,"lastSnapshotTime",new Map),L(this,"options"),L(this,"mutationCb"),L(this,"resetObservers"),L(this,"frozen",!1),L(this,"locked",!1),L(this,"processMutation",(o,a)=>{(this.rafStamps.invokeId&&this.rafStamps.latestId!==this.rafStamps.invokeId||!this.rafStamps.invokeId)&&(this.rafStamps.invokeId=this.rafStamps.latestId),this.pendingCanvasMutations.has(o)||this.pendingCanvasMutations.set(o,[]),this.pendingCanvasMutations.get(o).push(a)});const{sampling:s,win:n,blockClass:r,blockSelector:l,recordCanvas:d,recordLocalVideos:f,recordRemoteVideos:m,initialSnapshotDelay:h,dataURLOptions:p}=t;this.mutationCb=t.mutationCb,this.mirror=t.mirror,this.logger=t.logger,this.worker=new qp,this.worker.onmessage=o=>{const{id:a}=o.data;if(this.snapshotInProgressMap.set(a,!1),!("base64"in o.data)){this.debug(null,"canvas worker received empty message",{id:a,data:o.data,status:o.data.status});return}const{base64:i,type:c,dx:u,dy:b,dw:S,dh:Z}=o.data,I={id:a,type:It["2D"],commands:[{property:"clearRect",args:[u,b,S,Z]},{property:"drawImage",args:[{rr_type:"ImageBitmap",args:[{rr_type:"Blob",data:[{rr_type:"ArrayBuffer",base64:i}],type:c}]},u,b,S,Z]}]};this.debug(null,"canvas worker recording mutation",I),this.mutationCb(I)},this.options=t,d&&s==="all"?(this.debug(null,"initializing canvas mutation observer",{sampling:s}),this.initCanvasMutationObserver(n,r,l)):d&&typeof s=="number"&&(this.debug(null,"initializing canvas fps observer",{sampling:s}),this.initCanvasFPSObserver(f,m,s,n,r,l,{initialSnapshotDelay:h,dataURLOptions:p},t.resizeFactor,t.maxSnapshotDimension))}reset(){this.pendingCanvasMutations.clear(),this.resetObservers&&this.resetObservers()}freeze(){this.frozen=!0}unfreeze(){this.frozen=!1}lock(){this.locked=!0}unlock(){this.locked=!1}debug(t,...s){if(!this.logger)return;const n=this.mirror.getId(t);let r="[highlight-canvas-manager]";t&&(r=`[highlight-canvas] [id:${n}]`,t.tagName.toLowerCase()==="canvas"&&(r+=` [ctx:${t.__context}]`)),this.logger.debug(r,t,...s)}snapshot(t){return We(this,null,function*(){var s;const n=this.mirror.getId(t);if(this.snapshotInProgressMap.get(n)){this.debug(t,"snapshotting already in progress for",n);return}const r=1e3/(typeof this.options.samplingManual=="number"?this.options.samplingManual:1),l=this.lastSnapshotTime.get(n);if(!(l&&new Date().getTime()-l<r)){if(this.debug(t,"starting snapshotting"),t.width===0||t.height===0){this.debug(t,"not yet ready",{width:t.width,height:t.height});return}this.lastSnapshotTime.set(n,new Date().getTime()),this.snapshotInProgressMap.set(n,!0);try{if(this.options.clearWebGLBuffer!==!1&&["webgl","webgl2"].includes(t.__context)){const p=t.getContext(t.__context);((s=p?.getContextAttributes())==null?void 0:s.preserveDrawingBuffer)===!1&&(p.clear(p.COLOR_BUFFER_BIT),this.debug(t,"cleared webgl canvas to load it into memory",{attributes:p?.getContextAttributes()}))}if(t.width===0||t.height===0){this.debug(t,"not yet ready",{width:t.width,height:t.height});return}let d=this.options.resizeFactor||1;if(this.options.maxSnapshotDimension){const p=Math.max(t.width,t.height);d=Math.min(d,this.options.maxSnapshotDimension/p)}const f=t.width*d,m=t.height*d,h=yield createImageBitmap(t,{resizeWidth:f,resizeHeight:m});this.debug(t,"created image bitmap",{width:h.width,height:h.height}),this.worker.postMessage({id:n,bitmap:h,width:f,height:m,dx:0,dy:0,dw:t.width,dh:t.height,dataURLOptions:this.options.dataURLOptions,logDebug:!!this.logger},[h]),this.debug(t,"sent message")}catch(d){this.debug(t,"failed to snapshot",d)}finally{this.snapshotInProgressMap.set(n,!1)}}})}initCanvasFPSObserver(t,s,n,r,l,d,f,m,h){const p=wa(r,l,d,!0),o=1e3/n;let a=0,i;const c=new Map,u=(I,R)=>{const y=[];I.querySelectorAll(R).forEach(v=>y.push(v));const g=document.createNodeIterator(I,Node.ELEMENT_NODE);let V;for(;V=g.nextNode();)V!=null&&V.shadowRoot&&y.push(...u(V.shadowRoot,R));return y},b=I=>{const R=[];return u(r.document,"canvas").forEach(y=>{if(!Ge(y,l,d,!0)){this.debug(y,"discovered canvas"),R.push(y);const g=this.mirror.getId(y);c.has(g)||c.set(g,I)}}),R},S=I=>{const R=[];return(t||s)&&u(r.document,"video").forEach(y=>{if(!(!s&&y.src!==""&&y.src.indexOf("blob:")===-1)&&!(!t&&(y.src===""||y.src.indexOf("blob:")!==-1))&&!Ge(y,l,d,!0)){R.push(y);const g=this.mirror.getId(y);c.has(g)||c.set(g,I)}}),R},Z=I=>We(this,null,function*(){if(a&&I-a<o){i=requestAnimationFrame(g=>void Z(g));return}a=I;const R=g=>{const V=this.mirror.getId(g),v=c.get(V),X=!f.initialSnapshotDelay||I-v>f.initialSnapshotDelay;return this.debug(g,{delay:f.initialSnapshotDelay,delta:I-v,hadLoadingTime:X}),X},y=[];y.push(...b(I).filter(R).map(g=>this.snapshot(g))),y.push(...S(I).filter(R).map(g=>We(this,null,function*(){this.debug(g,"starting video snapshotting");const V=this.mirror.getId(g);if(this.snapshotInProgressMap.get(V)){this.debug(g,"video snapshotting already in progress for",V);return}this.snapshotInProgressMap.set(V,!0);try{const{width:v,height:X}=g.getBoundingClientRect(),{actualWidth:W,actualHeight:k}={actualWidth:g.videoWidth,actualHeight:g.videoHeight},N=Math.max(W,k);if(N===0){this.debug(g,"not yet ready",{width:g.width,height:g.height,actualWidth:W,actualHeight:k,boxWidth:v,boxHeight:X});return}let j=m||1;h&&(j=Math.min(j,h/N));const G=W*j,w=k*j,T=yield createImageBitmap(g,{resizeWidth:G,resizeHeight:w}),Y=Math.max(v,X)/N,O=W*Y,J=k*Y,q=(v-O)/2,B=(X-J)/2;this.debug(g,"created image bitmap",{actualWidth:W,actualHeight:k,boxWidth:v,boxHeight:X,outputWidth:O,outputHeight:J,resizeWidth:G,resizeHeight:w,scale:j,outputScale:Y,offsetX:q,offsetY:B}),this.worker.postMessage({id:V,bitmap:T,width:G,height:w,dx:q,dy:B,dw:O,dh:J,dataURLOptions:f.dataURLOptions,logDebug:!!this.logger},[T]),this.debug(g,"send message")}catch(v){this.debug(g,"failed to snapshot",v)}finally{this.snapshotInProgressMap.set(V,!1)}}))),yield Promise.all(y).catch(console.error),i=requestAnimationFrame(g=>void Z(g))});i=requestAnimationFrame(I=>void Z(I)),this.resetObservers=()=>{p(),i&&cancelAnimationFrame(i)}}initCanvasMutationObserver(t,s,n){this.startRAFTimestamping(),this.startPendingCanvasMutationFlusher();const r=wa(t,s,n,!1),l=Ap(this.processMutation.bind(this),t,s,n),d=$p(this.processMutation.bind(this),t,s,n);this.resetObservers=()=>{r(),l(),d()}}startPendingCanvasMutationFlusher(){requestAnimationFrame(()=>this.flushPendingCanvasMutations())}startRAFTimestamping(){const t=s=>{this.rafStamps.latestId=s,requestAnimationFrame(t)};requestAnimationFrame(t)}flushPendingCanvasMutations(){this.pendingCanvasMutations.forEach((t,s)=>{const n=this.mirror.getId(s);this.flushPendingCanvasMutationFor(s,n)}),requestAnimationFrame(()=>this.flushPendingCanvasMutations())}flushPendingCanvasMutationFor(t,s){if(this.frozen||this.locked)return;const n=this.pendingCanvasMutations.get(t);if(!n||s===-1)return;const r=n.map(d=>ms(d,["type"])),{type:l}=n[0];this.mutationCb({id:s,type:l,commands:r}),this.pendingCanvasMutations.delete(t)}}class tm{constructor(t){L(this,"trackedLinkElements",new WeakSet),L(this,"mutationCb"),L(this,"adoptedStyleSheetCb"),L(this,"styleMirror",new Xp),this.mutationCb=t.mutationCb,this.adoptedStyleSheetCb=t.adoptedStyleSheetCb}attachLinkElement(t,s){"_cssText"in s.attributes&&this.mutationCb({adds:[],removes:[],texts:[],attributes:[{id:s.id,attributes:s.attributes}]}),this.trackLinkElement(t)}trackLinkElement(t){this.trackedLinkElements.has(t)||(this.trackedLinkElements.add(t),this.trackStylesheetInLinkElement(t))}adoptStyleSheets(t,s){if(t.length===0)return;const n={id:s,styleIds:[]},r=[];for(const l of t){let d;this.styleMirror.has(l)?d=this.styleMirror.getId(l):(d=this.styleMirror.add(l),r.push({styleId:d,rules:Array.from(l.rules||CSSRule,(f,m)=>({rule:yo(f,l.href),index:m}))})),n.styleIds.push(d)}r.length>0&&(n.styles=r),this.adoptedStyleSheetCb(n)}reset(){this.styleMirror.reset(),this.trackedLinkElements=new WeakSet}trackStylesheetInLinkElement(t){}}class sm{constructor(){L(this,"nodeMap",new WeakMap),L(this,"active",!1)}inOtherBuffer(t,s){const n=this.nodeMap.get(t);return n&&Array.from(n).some(r=>r!==s)}add(t,s){this.active||(this.active=!0,requestAnimationFrame(()=>{this.nodeMap=new WeakMap,this.active=!1})),this.nodeMap.set(t,(this.nodeMap.get(t)||new Set).add(s))}destroy(){}}let pe,Hs,Pt,Ds=!1;try{if(Array.from([1],e=>e*2)[0]!==2){const e=document.createElement("iframe");document.body.appendChild(e),Array.from=((oo=e.contentWindow)==null?void 0:oo.Array.from)||Array.from,document.body.removeChild(e)}}catch(e){console.debug("Unable to override Array.from",e)}const ze=nh();function Qe(e={}){var t;const{emit:s,checkoutEveryNms:n,checkoutEveryNth:r,blockClass:l="highlight-block",blockSelector:d=null,ignoreClass:f="highlight-ignore",ignoreSelector:m=null,maskTextClass:h="highlight-mask",maskTextSelector:p=null,inlineStylesheet:o=!0,maskAllInputs:a,maskInputOptions:i,slimDOMOptions:c,maskInputFn:u,maskTextFn:b=Gn,hooks:S,packFn:Z,sampling:I={},mousemoveWait:R,recordDOM:y=!0,recordCanvas:g=!1,recordCrossOriginIframes:V=!1,recordAfter:v=e.recordAfter==="DOMContentLoaded"?e.recordAfter:"load",userTriggeredOnInput:X=!1,collectFonts:W=!1,inlineImages:k=!1,inlineVideos:N=!1,plugins:j,keepIframeSrcFn:G=()=>!1,privacySetting:w="default",ignoreCSSAttributes:T=new Set([]),styleSheetResyncInterval:Y=2e3,errorHandler:O,logger:J}=e,q=H(H({},e.dataURLOptions),typeof((t=e.sampling)==null?void 0:t.canvas)=="object"?e.sampling.canvas.dataURLOptions:void 0);kp(O);const B=V?window.parent===window:!0;let C=!1;if(!B)try{window.parent.document&&(C=!1)}catch{C=!0}if(B&&!s)throw new Error("emit function is required");if(!B&&!C)return()=>{};R!==void 0&&I.mousemove===void 0&&(I.mousemove=R),ze.reset();const oe=a===!0?{color:!0,date:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0,textarea:!0,select:!0,password:!0}:i!==void 0?i:{password:!0},ue=xo(c);Ip();let le,Se=0;const U=A=>{for(const ge of j||[])ge.eventProcessor&&(A=ge.eventProcessor(A));return Z&&!C&&(A=Z(A)),A};pe=(A,ge)=>{var de;const me=A;if(me.timestamp=Ot(),(de=at[0])!=null&&de.isFrozen()&&me.type!==ie.FullSnapshot&&!(me.type===ie.IncrementalSnapshot&&me.data.source===te.Mutation)&&at.forEach(Je=>Je.unfreeze()),B)s?.(U(me),ge);else if(C){const Je={type:"rrweb",event:U(me),origin:window.location.origin,isCheckout:ge};window.parent.postMessage(Je,"*")}if(me.type===ie.FullSnapshot)le=me,Se=0;else if(me.type===ie.IncrementalSnapshot){if(me.data.source===te.Mutation&&me.data.isAttachIframe)return;Se++;const Je=r&&Se>=r,ae=n&&me.timestamp-le.timestamp>n;(Je||ae)&&Hs(!0)}};const K=A=>{pe({type:ie.IncrementalSnapshot,data:H({source:te.Mutation},A)})},M=A=>pe({type:ie.IncrementalSnapshot,data:H({source:te.Scroll},A)}),z=A=>pe({type:ie.IncrementalSnapshot,data:H({source:te.CanvasMutation},A)}),E=A=>pe({type:ie.IncrementalSnapshot,data:H({source:te.AdoptedStyleSheet},A)}),D=new tm({mutationCb:K,adoptedStyleSheetCb:E}),_=new Hp({mirror:ze,mutationCb:K,stylesheetManager:D,recordCrossOriginIframes:V,wrappedEmit:pe});for(const A of j||[])A.getMirror&&A.getMirror({nodeMirror:ze,crossOriginIframeMirror:_.crossOriginIframeMirror,crossOriginIframeStyleMirror:_.crossOriginIframeStyleMirror});const re=new sm,fe=typeof I?.canvas=="object"?I.canvas:{fps:I?.canvas};Pt=new em({recordCanvas:g,recordLocalVideos:k,recordRemoteVideos:N,mutationCb:z,win:window,blockClass:l,blockSelector:d,mirror:ze,sampling:fe.fps,samplingManual:fe.fpsManual,clearWebGLBuffer:fe.clearWebGLBuffer,initialSnapshotDelay:fe.initialSnapshotDelay,dataURLOptions:q,resizeFactor:fe.resizeFactor,maxSnapshotDimension:fe.maxSnapshotDimension,logger:J});const Ne=new Dp({mutationCb:K,scrollCb:M,bypassOptions:{blockClass:l,blockSelector:d,maskTextClass:h,maskTextSelector:p,inlineStylesheet:o,maskInputOptions:oe,dataURLOptions:q,maskTextFn:b,maskInputFn:u,recordCanvas:g,inlineImages:k,inlineVideos:N,privacySetting:w,sampling:I,slimDOMOptions:ue,iframeManager:_,stylesheetManager:D,canvasManager:Pt,keepIframeSrcFn:G,processedNodeManager:re},mirror:ze});Hs=(A=!1)=>{if(!y)return;pe({type:ie.Meta,data:{href:window.location.href,width:oa(),height:ra()}},A),D.reset(),Ne.init(),at.forEach(de=>de.lock());const ge=Nh(document,{mirror:ze,blockClass:l,blockSelector:d,maskTextClass:h,maskTextSelector:p,inlineStylesheet:o,maskAllInputs:oe,maskTextFn:b,maskInputFn:u,slimDOM:ue,dataURLOptions:q,recordCanvas:g,inlineImages:k,inlineVideos:N,privacySetting:w,onSerialize:de=>{ca(de,ze)&&_.addIframe(de),ua(de,ze)&&D.trackLinkElement(de),Bi(de)&&Ne.addShadowRoot($.shadowRoot(de),document)},onIframeLoad:(de,me)=>{_.attachIframe(de,me),Ne.observeAttachShadow(de)},onStylesheetLoad:(de,me)=>{D.attachLinkElement(de,me)},keepIframeSrcFn:G});if(!ge)return console.warn("Failed to snapshot the document");pe({type:ie.FullSnapshot,data:{node:ge,initialOffset:ia(window)}},A),at.forEach(de=>de.unlock()),document.adoptedStyleSheets&&document.adoptedStyleSheets.length>0&&D.adoptStyleSheets(document.adoptedStyleSheets,ze.getId(document))};try{const A=[],ge=me=>{var Je;return se(Pp)({mutationCb:K,mousemoveCb:(ae,ir)=>pe({type:ie.IncrementalSnapshot,data:{source:ir,positions:ae}}),mouseInteractionCb:ae=>pe({type:ie.IncrementalSnapshot,data:H({source:te.MouseInteraction},ae)}),scrollCb:M,viewportResizeCb:ae=>pe({type:ie.IncrementalSnapshot,data:H({source:te.ViewportResize},ae)}),inputCb:ae=>pe({type:ie.IncrementalSnapshot,data:H({source:te.Input},ae)}),mediaInteractionCb:ae=>pe({type:ie.IncrementalSnapshot,data:H({source:te.MediaInteraction},ae)}),styleSheetRuleCb:ae=>pe({type:ie.IncrementalSnapshot,data:H({source:te.StyleSheetRule},ae)}),styleDeclarationCb:ae=>pe({type:ie.IncrementalSnapshot,data:H({source:te.StyleDeclaration},ae)}),canvasMutationCb:z,fontCb:ae=>pe({type:ie.IncrementalSnapshot,data:H({source:te.Font},ae)}),selectionCb:ae=>{pe({type:ie.IncrementalSnapshot,data:H({source:te.Selection},ae)})},customElementCb:ae=>{pe({type:ie.IncrementalSnapshot,data:H({source:te.CustomElement},ae)})},blockClass:l,ignoreClass:f,ignoreSelector:m,maskTextClass:h,maskTextSelector:p,maskInputOptions:oe,inlineStylesheet:o,sampling:I,recordDOM:y,recordCanvas:g,inlineImages:k,inlineVideos:N,userTriggeredOnInput:X,collectFonts:W,doc:me,maskInputFn:u,maskTextFn:b,keepIframeSrcFn:G,blockSelector:d,slimDOMOptions:ue,dataURLOptions:q,mirror:ze,iframeManager:_,stylesheetManager:D,shadowDomManager:Ne,processedNodeManager:re,canvasManager:Pt,ignoreCSSAttributes:T,styleSheetResyncInterval:Y,privacySetting:w,plugins:((Je=j?.filter(ae=>ae.observer))==null?void 0:Je.map(ae=>({observer:ae.observer,options:ae.options,callback:ir=>pe({type:ie.Plugin,data:{plugin:ae.name,payload:ir}})})))||[]},S)};_.addLoadListener(me=>{try{A.push(ge(me.contentDocument))}catch(Je){console.warn(Je)}});const de=()=>{Hs(),A.push(ge(document)),Ds=!0};return["interactive","complete"].includes(document.readyState)?de():(A.push(we("DOMContentLoaded",()=>{pe({type:ie.DomContentLoaded,data:{}}),v==="DOMContentLoaded"&&de()})),A.push(we("load",()=>{pe({type:ie.Load,data:{}}),v==="load"&&de()},window))),()=>{A.forEach(me=>{try{me()}catch(Je){String(Je).toLowerCase().includes("cross-origin")||console.warn(Je)}}),re.destroy(),Ds=!1,Cp()}}catch(A){console.warn(A)}}Qe.addCustomEvent=(e,t)=>{Ds&&pe({type:ie.Custom,data:{tag:e,payload:t}})},Qe.freezePage=()=>{at.forEach(e=>e.freeze())},Qe.takeFullSnapshot=e=>{if(!Ds)throw new Error("please take full snapshot after start recording");Hs(e)},Qe.snapshotCanvas=e=>We(void 0,null,function*(){if(!Pt)throw new Error("canvas manager is not initialized");yield Pt.snapshot(e)}),Qe.mirror=ze;var Ta;(function(e){e[e.NotStarted=0]="NotStarted",e[e.Running=1]="Running",e[e.Stopped=2]="Stopped"})(Ta||(Ta={}));const{addCustomEvent:La}=Qe,nm=(e,t,s)=>{switch(e){case"strict":return[!0,void 0];case"default":return[!0,void 0];case"none":return[!!t,Xe(H({},s),{password:!0})]}},im=(e,t)=>e==="strict"?"strict":t??e==="default"?"default":"none",rm=e=>{const t=n=>{if(n.target){const r=n.target,l=Ar(r);e(l,n)}},s={capture:!0};return window.addEventListener("click",t,s),()=>window.removeEventListener("click",t,s)},om=e=>{const t=s=>{if(s.target){const n=Ar(s.target);e(n)}};return window.addEventListener("focusin",t),()=>window.removeEventListener("focusin",t)},lm=e=>{let t,s;if(typeof document.hidden<"u"?(t="hidden",s="visibilitychange"):typeof document.msHidden<"u"?(t="msHidden",s="msvisibilitychange"):typeof document.webkitHidden<"u"&&(t="webkitHidden",s="webkitvisibilitychange"),s===void 0)return()=>{};if(t===void 0)return()=>{};const n=t,r=()=>{const d=document[n];e(!!d)};document.addEventListener(s,r);const l=s;return()=>document.removeEventListener(l,r)},am=e=>{e(window.location.href);var t=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.send=function(l){setTimeout(()=>{var d,f;try{f=JSON.parse((d=l?.toString())!=null?d:"")}catch{return}(f.type==="track"||f.type==="identify")&&ji(f)&&e(f)},100),t.call(this,l)};const s=l=>{if(l.key==="ajs_user_id"||l.key==="ajs_anonymous_id"||l.key==="ajs_user_traits"){const{userId:d,userTraits:f}=Na();if(d){let m={};f&&(m=JSON.parse(f));const h={type:"identify",userId:d.toString(),traits:m};ji(h)&&e(h)}}},{userId:n,userTraits:r}=Na();if(n){let l={};r&&(l=JSON.parse(r));const d={type:"identify",userId:n.toString(),traits:l};ji(d)&&e(d)}return window.addEventListener("storage",s),zu(({keyName:l})=>{s({key:l})}),()=>{window.removeEventListener("storage",s),XMLHttpRequest.prototype.send=t}},Na=()=>{const e=Te("ajs_user_id"),t=Te("ajs_user_traits"),s=Te("ajs_anonymous_id");return{userId:e,userTraits:t,anonymousId:s}},ji=e=>{if(!e)return!1;let t="";try{t=JSON.stringify(e)}catch{return!1}const s=cm(t),n=Te(ve.SEGMENT_LAST_SENT_HASH_KEY);return n===void 0||s!==n?(He(ve.SEGMENT_LAST_SENT_HASH_KEY,s),!0):!1},cm=e=>{var t=0,s=e.length,n=0;if(s>0)for(;n<s;)t=(t<<5)-t+e.charCodeAt(n++)|0;return t.toString()},um=(e,t)=>{const s=dm(e);let n=[];const r=!1,l=!0,d=[];for(let m=0;m<s.length;m++){let h=s[m].split("+");n=[],h.length>1&&(n=mm(Ya,h)),h=h[h.length-1],h=h==="*"?"*":pm(h),h in Pe||(Pe[h]=[]);const p={mods:n,shortcut:s[m],key:s[m],method:t,keyup:r,keydown:l,scope:"all",splitKey:"+"};Pe[h].push(p),d.push({key:h,handler:p})}const f=m=>ym(m);return fm(document,"keydown",f),()=>{document.removeEventListener("keydown",f);for(const{key:m,handler:h}of d){const p=Pe[m],o=p?p.indexOf(h):-1;o>-1&&p.splice(o,1)}}};let ke=[];function dm(e){typeof e!="string"&&(e=""),e=e.replace(/\s/g,"");const t=e.split(",");let s=t.lastIndexOf("");for(;s>=0;)t[s-1]+=",",t.splice(s,1),s=t.lastIndexOf("");return t}const Pe={},Ai=typeof navigator<"u"?navigator.userAgent.toLowerCase().indexOf("firefox")>0:!1,hm={backspace:8,tab:9,clear:12,enter:13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,num_0:96,num_1:97,num_2:98,num_3:99,num_4:100,num_5:101,num_6:102,num_7:103,num_8:104,num_9:105,num_multiply:106,num_add:107,num_enter:108,num_subtract:109,num_decimal:110,num_divide:111,"⇪":20,",":188,".":190,"/":191,"`":192,"-":Ai?173:189,"=":Ai?61:187,";":Ai?59:186,"'":222,"[":219,"]":221,"\\":220},Ja={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},Ce={16:!1,18:!1,17:!1,91:!1},Ya={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":91,cmd:91,command:91},pm=e=>hm[e.toLowerCase()]||Ya[e.toLowerCase()]||e.toUpperCase().charCodeAt(0);function mm(e,t){const s=t.slice(0,t.length-1);for(let n=0;n<s.length;n++)s[n]=e[s[n].toLowerCase()];return s}function fm(e,t,s){e.addEventListener?e.addEventListener(t,s,!1):e.attachEvent&&e.attachEvent(`on${t}`,()=>{s(window.event)})}function bm(e,t,s){let n;if(t.scope===s||t.scope==="all"){n=t.mods.length>0;for(const r in Ce)Object.prototype.hasOwnProperty.call(Ce,r)&&(!Ce[r]&&t.mods.indexOf(+r)>-1||Ce[r]&&t.mods.indexOf(+r)===-1)&&(n=!1);(t.mods.length===0&&!Ce[16]&&!Ce[18]&&!Ce[17]&&!Ce[91]||n||t.shortcut==="*")&&t.method(e,t)===!1&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0))}}function ym(e){const t=Pe["*"];let s=e.keyCode||e.which||e.charCode;if((s===93||s===224)&&(s=91),ke.indexOf(s)===-1&&s!==229&&ke.push(s),["ctrlKey","altKey","shiftKey","metaKey"].forEach(n=>{const r=Ja[n];e[n]&&ke.indexOf(r)===-1?ke.push(r):!e[n]&&ke.indexOf(r)>-1?ke.splice(ke.indexOf(r),1):n==="metaKey"&&e[n]&&ke.length===3&&(e.ctrlKey||e.shiftKey||e.altKey||(ke=ke.slice(ke.indexOf(r))))}),!(s in Ce&&(Ce[s]=!0,!t))){for(const n in Ce)Object.prototype.hasOwnProperty.call(Ce,n)&&(Ce[n]=e[Ja[n]]);if(e.getModifierState&&!(e.altKey&&!e.ctrlKey)&&e.getModifierState("AltGraph")&&(ke.indexOf(17)===-1&&ke.push(17),ke.indexOf(18)===-1&&ke.push(18),Ce[17]=!0,Ce[18]=!0),s in Pe){for(let n=0;n<Pe[s].length;n++)if((e.type==="keydown"&&Pe[s][n].keydown||e.type==="keyup"&&Pe[s][n].keyup)&&Pe[s][n].key){const r=Pe[s][n];bm(e,r,"all")}}}}const Ua="iframe parent ready",Fa="iframe ok",Ht="highlightLogs",gm=e=>{let t=Te(Ht)||"";t=t+"["+new Date().getTime()+"] "+e+`
453
+ `,He(Ht,t)},Zm=()=>Te(Ht)||"",Sm=e=>{if(!e)return;let t=Te(Ht)||"";t&&(t.startsWith(e)?(t=t.slice(e.length),He(Ht,t)):gm("Unable to clear logs "+e.replace(`
454
454
  `," ")+" from "+t.replace(`
455
- `," ")))};var Le=Uint8Array,Oe=Uint16Array,Ai=Int32Array,_i=new Le([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),$i=new Le([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Ua=new Le([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Fa=function(e,t){for(var s=new Oe(31),n=0;n<31;++n)s[n]=t+=1<<e[n-1];for(var r=new Ai(s[30]),n=1;n<30;++n)for(var l=s[n];l<s[n+1];++l)r[l]=l-s[n]<<5|n;return{b:s,r}},Oa=Fa(_i,2),Zm=Oa.b,qi=Oa.r;Zm[28]=258,qi[258]=28;for(var Sm=Fa($i,0),Ma=Sm.r,Ka=new Oe(32768),he=0;he<32768;++he){var nt=(he&43690)>>1|(he&21845)<<1;nt=(nt&52428)>>2|(nt&13107)<<2,nt=(nt&61680)>>4|(nt&3855)<<4,Ka[he]=((nt&65280)>>8|(nt&255)<<8)>>1}for(var Dt=function(e,t,s){for(var n=e.length,r=0,l=new Oe(t);r<n;++r)e[r]&&++l[e[r]-1];var d=new Oe(t);for(r=1;r<t;++r)d[r]=d[r-1]+l[r-1]<<1;var f;for(f=new Oe(n),r=0;r<n;++r)e[r]&&(f[r]=Ka[d[e[r]-1]++]>>15-e[r]);return f},ct=new Le(288),he=0;he<144;++he)ct[he]=8;for(var he=144;he<256;++he)ct[he]=9;for(var he=256;he<280;++he)ct[he]=7;for(var he=280;he<288;++he)ct[he]=8;for(var Bs=new Le(32),he=0;he<32;++he)Bs[he]=5;var Im=Dt(ct,9),Xm=Dt(Bs,5),Ea=function(e){return(e+7)/8|0},za=function(e,t,s){return(s==null||s>e.length)&&(s=e.length),new Le(e.subarray(t,s))},je=function(e,t,s){s<<=t&7;var n=t/8|0;e[n]|=s,e[n+1]|=s>>8},Bt=function(e,t,s){s<<=t&7;var n=t/8|0;e[n]|=s,e[n+1]|=s>>8,e[n+2]|=s>>16},er=function(e,t){for(var s=[],n=0;n<e.length;++n)e[n]&&s.push({s:n,f:e[n]});var r=s.length,l=s.slice();if(!r)return{t:Ba,l:0};if(r==1){var d=new Le(s[0].s+1);return d[s[0].s]=1,{t:d,l:1}}s.sort(function(y,g){return y.f-g.f}),s.push({s:-1,f:25001});var f=s[0],m=s[1],h=0,p=1,o=2;for(s[0]={s:-1,f:f.f+m.f,l:f,r:m};p!=r-1;)f=s[s[h].f<s[o].f?h++:o++],m=s[h!=p&&s[h].f<s[o].f?h++:o++],s[p++]={s:-1,f:f.f+m.f,l:f,r:m};for(var a=l[0].s,n=1;n<r;++n)l[n].s>a&&(a=l[n].s);var i=new Oe(a+1),c=tr(s[p-1],i,0);if(c>t){var n=0,u=0,b=c-t,S=1<<b;for(l.sort(function(g,V){return i[V.s]-i[g.s]||g.f-V.f});n<r;++n){var Z=l[n].s;if(i[Z]>t)u+=S-(1<<c-i[Z]),i[Z]=t;else break}for(u>>=b;u>0;){var I=l[n].s;i[I]<t?u-=1<<t-i[I]++-1:++n}for(;n>=0&&u;--n){var R=l[n].s;i[R]==t&&(--i[R],++u)}c=t}return{t:new Le(i),l:c}},tr=function(e,t,s){return e.s==-1?Math.max(tr(e.l,t,s+1),tr(e.r,t,s+1)):t[e.s]=s},Pa=function(e){for(var t=e.length;t&&!e[--t];);for(var s=new Oe(++t),n=0,r=e[0],l=1,d=function(m){s[n++]=m},f=1;f<=t;++f)if(e[f]==r&&f!=t)++l;else{if(!r&&l>2){for(;l>138;l-=138)d(32754);l>2&&(d(l>10?l-11<<5|28690:l-3<<5|12305),l=0)}else if(l>3){for(d(r),--l;l>6;l-=6)d(8304);l>2&&(d(l-3<<5|8208),l=0)}for(;l--;)d(r);l=1,r=e[f]}return{c:s.subarray(0,n),n:t}},Qt=function(e,t){for(var s=0,n=0;n<t.length;++n)s+=e[n]*t[n];return s},Ha=function(e,t,s){var n=s.length,r=Ea(t+2);e[r]=n&255,e[r+1]=n>>8,e[r+2]=e[r]^255,e[r+3]=e[r+1]^255;for(var l=0;l<n;++l)e[r+l+4]=s[l];return(r+4+n)*8},Da=function(e,t,s,n,r,l,d,f,m,h,p){je(t,p++,s),++r[256];for(var o=er(r,15),a=o.t,i=o.l,c=er(l,15),u=c.t,b=c.l,S=Pa(a),Z=S.c,I=S.n,R=Pa(u),y=R.c,g=R.n,V=new Oe(19),v=0;v<Z.length;++v)++V[Z[v]&31];for(var v=0;v<y.length;++v)++V[y[v]&31];for(var X=er(V,7),W=X.t,k=X.l,N=19;N>4&&!W[Ua[N-1]];--N);var j=h+5<<3,G=Qt(r,ct)+Qt(l,Bs)+d,w=Qt(r,a)+Qt(l,u)+d+14+3*N+Qt(V,W)+2*V[16]+3*V[17]+7*V[18];if(m>=0&&j<=G&&j<=w)return Ha(t,p,e.subarray(m,m+h));var T,Y,M,J;if(je(t,p,1+(w<G)),p+=2,w<G){T=Dt(a,i),Y=a,M=Dt(u,b),J=u;var q=Dt(W,k);je(t,p,I-257),je(t,p+5,g-1),je(t,p+10,N-4),p+=14;for(var v=0;v<N;++v)je(t,p+3*v,W[Ua[v]]);p+=3*N;for(var B=[Z,y],C=0;C<2;++C)for(var oe=B[C],v=0;v<oe.length;++v){var ue=oe[v]&31;je(t,p,q[ue]),p+=W[ue],ue>15&&(je(t,p,oe[v]>>5&127),p+=oe[v]>>12)}}else T=Im,Y=ct,M=Xm,J=Bs;for(var v=0;v<f;++v){var le=n[v];if(le>255){var ue=le>>18&31;Bt(t,p,T[ue+257]),p+=Y[ue+257],ue>7&&(je(t,p,le>>23&31),p+=_i[ue]);var Se=le&31;Bt(t,p,M[Se]),p+=J[Se],Se>3&&(Bt(t,p,le>>5&8191),p+=$i[Se])}else Bt(t,p,T[le]),p+=Y[le]}return Bt(t,p,T[256]),p+Y[256]},Vm=new Ai([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Ba=new Le(0),Gm=function(e,t,s,n,r,l){var d=l.z||e.length,f=new Le(n+d+5*(1+Math.ceil(d/7e3))+r),m=f.subarray(n,f.length-r),h=l.l,p=(l.r||0)&7;if(t){p&&(m[0]=l.r>>3);for(var o=Vm[t-1],a=o>>13,i=o&8191,c=(1<<s)-1,u=l.p||new Oe(32768),b=l.h||new Oe(c+1),S=Math.ceil(s/3),Z=2*S,I=function(re){return(e[re]^e[re+1]<<S^e[re+2]<<Z)&c},R=new Ai(25e3),y=new Oe(288),g=new Oe(32),V=0,v=0,X=l.i||0,W=0,k=l.w||0,N=0;X+2<d;++X){var j=I(X),G=X&32767,w=b[j];if(u[G]=w,b[j]=G,k<=X){var T=d-X;if((V>7e3||W>24576)&&(T>423||!h)){p=Da(e,m,0,R,y,g,v,W,N,X-N,p),W=V=v=0,N=X;for(var Y=0;Y<286;++Y)y[Y]=0;for(var Y=0;Y<30;++Y)g[Y]=0}var M=2,J=0,q=i,B=G-w&32767;if(T>2&&j==I(X-B))for(var C=Math.min(a,T)-1,oe=Math.min(32767,X),ue=Math.min(258,T);B<=oe&&--q&&G!=w;){if(e[X+M]==e[X+M-B]){for(var le=0;le<ue&&e[X+le]==e[X+le-B];++le);if(le>M){if(M=le,J=B,le>C)break;for(var Se=Math.min(B,le-2),U=0,Y=0;Y<Se;++Y){var K=X-B+Y&32767,O=u[K],z=K-O&32767;z>U&&(U=z,w=K)}}}G=w,w=u[G],B+=G-w&32767}if(J){R[W++]=268435456|qi[M]<<18|Ma[J];var E=qi[M]&31,D=Ma[J]&31;v+=_i[E]+$i[D],++y[257+E],++g[D],k=X+M,++V}else R[W++]=e[X],++y[e[X]]}}for(X=Math.max(X,k);X<d;++X)R[W++]=e[X],++y[e[X]];p=Da(e,m,h,R,y,g,v,W,N,X-N,p),h||(l.r=p&7|m[p/8|0]<<3,p-=7,l.h=b,l.p=u,l.i=X,l.w=k)}else{for(var X=l.w||0;X<d+h;X+=65535){var _=X+65535;_>=d&&(m[p/8|0]=h,_=d),p=Ha(m,p+1,e.subarray(X,_))}l.i=d}return za(f,0,n+Ea(p)+r)},Rm=function(){for(var e=new Int32Array(256),t=0;t<256;++t){for(var s=t,n=9;--n;)s=(s&1&&-306674912)^s>>>1;e[t]=s}return e}(),vm=function(){var e=-1;return{p:function(t){for(var s=e,n=0;n<t.length;++n)s=Rm[s&255^t[n]]^s>>>8;e=s},d:function(){return~e}}},Wm=function(e,t,s,n,r){if(!r&&(r={l:1},t.dictionary)){var l=t.dictionary.subarray(-32768),d=new Le(l.length+e.length);d.set(l),d.set(e,l.length),e=d,r.w=l.length}return Gm(e,t.level==null?6:t.level,t.mem==null?r.l?Math.ceil(Math.max(8,Math.min(13,Math.log(e.length)))*1.5):20:12+t.mem,s,n,r)},sr=function(e,t,s){for(;s;++t)e[t]=s,s>>>=8},wm=function(e,t){var s=t.filename;if(e[0]=31,e[1]=139,e[2]=8,e[8]=t.level<2?4:t.level==9?2:0,e[9]=3,t.mtime!=0&&sr(e,4,Math.floor(new Date(t.mtime||Date.now())/1e3)),s){e[3]=8;for(var n=0;n<=s.length;++n)e[n+10]=s.charCodeAt(n)}},km=function(e){return 10+(e.filename?e.filename.length+1:0)};function Cm(e,t){t||(t={});var s=vm(),n=e.length;s.p(e);var r=Wm(e,t,km(t),8),l=r.length;return wm(r,t),sr(r,l-8,s.d()),sr(r,l-4,n),r}var Qa=typeof TextEncoder<"u"&&new TextEncoder,xm=typeof TextDecoder<"u"&&new TextDecoder;try{xm.decode(Ba,{stream:!0})}catch{}function Tm(e,t){var s;if(Qa)return Qa.encode(e);for(var n=e.length,r=new Le(e.length+(e.length>>1)),l=0,d=function(p){r[l++]=p},s=0;s<n;++s){if(l+5>r.length){var f=new Le(l+8+(n-s<<1));f.set(r),r=f}var m=e.charCodeAt(s);m<128||t?d(m):m<2048?(d(192|m>>6),d(128|m&63)):m>55295&&m<57344?(m=65536+(m&1047552)|e.charCodeAt(++s)&1023,d(240|m>>18),d(128|m>>12&63),d(128|m>>6&63),d(128|m&63)):(d(224|m>>12),d(128|m>>6&63),d(128|m&63))}return za(r,0,l)}function Lm(e){return We(this,null,function*(){const t=Tm(JSON.stringify(e)),s=Cm(t),n=yield new Promise(r=>{const l=new FileReader;l.onload=()=>r(l.result),l.readAsDataURL(new Blob([new Uint8Array(s)]))});return{compressedBase64:n.slice(n.indexOf(",")+1),compressedSize:s.length,bufferLength:t.length}})}const ja="dmFyIFFyPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxYcj1PYmplY3QuZGVmaW5lUHJvcGVydGllczt2YXIgV3I9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM7dmFyICRlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIG9uPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksYW49T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTt2YXIgbXQ9KEYsQiwkKT0+QiBpbiBGP1FyKEYsQix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6JH0pOkZbQl09JCxEPShGLEIpPT57Zm9yKHZhciAkIGluIEJ8fChCPXt9KSlvbi5jYWxsKEIsJCkmJm10KEYsJCxCWyRdKTtpZigkZSlmb3IodmFyICQgb2YgJGUoQikpYW4uY2FsbChCLCQpJiZtdChGLCQsQlskXSk7cmV0dXJuIEZ9LFVlPShGLEIpPT5YcihGLFdyKEIpKTt2YXIgdmU9KEYsQik9Pnt2YXIgJD17fTtmb3IodmFyIGVlIGluIEYpb24uY2FsbChGLGVlKSYmQi5pbmRleE9mKGVlKTwwJiYoJFtlZV09RltlZV0pO2lmKEYhPW51bGwmJiRlKWZvcih2YXIgZWUgb2YgJGUoRikpQi5pbmRleE9mKGVlKTwwJiZhbi5jYWxsKEYsZWUpJiYoJFtlZV09RltlZV0pO3JldHVybiAkfTt2YXIgeXQ9KEYsQiwkKT0+bXQoRix0eXBlb2YgQiE9InN5bWJvbCI/QisiIjpCLCQpO3ZhciBKPShGLEIsJCk9Pm5ldyBQcm9taXNlKChlZSxPZSk9Pnt2YXIgVmU9c2U9Pnt0cnl7RWUoJC5uZXh0KHNlKSl9Y2F0Y2goX2Upe09lKF9lKX19LGxlPXNlPT57dHJ5e0VlKCQudGhyb3coc2UpKX1jYXRjaChfZSl7T2UoX2UpfX0sRWU9c2U9PnNlLmRvbmU/ZWUoc2UudmFsdWUpOlByb21pc2UucmVzb2x2ZShzZS52YWx1ZSkudGhlbihWZSxsZSk7RWUoKCQ9JC5hcHBseShGLEIpKS5uZXh0KCkpfSk7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NvbnN0IEY9SlNPTixCPWU9PmUudG9VcHBlckNhc2UoKSwkPWU9Pntjb25zdCB0PXt9O3JldHVybiBlLmZvckVhY2goKG4saSk9Pnt0W2ldPW59KSx0fSxlZT0oZSx0LG4pPT5lLmRvY3VtZW50P2U6e2RvY3VtZW50OmUsdmFyaWFibGVzOnQscmVxdWVzdEhlYWRlcnM6bixzaWduYWw6dm9pZCAwfSxPZT0oZSx0LG4pPT5lLnF1ZXJ5P2U6e3F1ZXJ5OmUsdmFyaWFibGVzOnQscmVxdWVzdEhlYWRlcnM6bixzaWduYWw6dm9pZCAwfSxWZT0oZSx0KT0+ZS5kb2N1bWVudHM/ZTp7ZG9jdW1lbnRzOmUscmVxdWVzdEhlYWRlcnM6dCxzaWduYWw6dm9pZCAwfTtmdW5jdGlvbiBsZShlLHQpe2lmKCEhIWUpdGhyb3cgbmV3IEVycm9yKHQpfWZ1bmN0aW9uIEVlKGUpe3JldHVybiB0eXBlb2YgZT09Im9iamVjdCImJmUhPT1udWxsfWZ1bmN0aW9uIHNlKGUsdCl7aWYoISEhZSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgaW52YXJpYW50IHRyaWdnZXJlZC4iKX1jb25zdCBfZT0vXHJcbnxbXG5ccl0vZztmdW5jdGlvbiBxZShlLHQpe2xldCBuPTAsaT0xO2Zvcihjb25zdCByIG9mIGUuYm9keS5tYXRjaEFsbChfZSkpe2lmKHR5cGVvZiByLmluZGV4PT0ibnVtYmVyInx8c2UoITEpLHIuaW5kZXg+PXQpYnJlYWs7bj1yLmluZGV4K3JbMF0ubGVuZ3RoLGkrPTF9cmV0dXJue2xpbmU6aSxjb2x1bW46dCsxLW59fWZ1bmN0aW9uIGNuKGUpe3JldHVybiBndChlLnNvdXJjZSxxZShlLnNvdXJjZSxlLnN0YXJ0KSl9ZnVuY3Rpb24gZ3QoZSx0KXtjb25zdCBuPWUubG9jYXRpb25PZmZzZXQuY29sdW1uLTEsaT0iIi5wYWRTdGFydChuKStlLmJvZHkscj10LmxpbmUtMSxzPWUubG9jYXRpb25PZmZzZXQubGluZS0xLG89dC5saW5lK3MsYz10LmxpbmU9PT0xP246MCxoPXQuY29sdW1uK2MsZD1gJHtlLm5hbWV9OiR7b306JHtofQpgLHU9aS5zcGxpdCgvXHJcbnxbXG5ccl0vZykseT11W3JdO2lmKHkubGVuZ3RoPjEyMCl7Y29uc3Qgdj1NYXRoLmZsb29yKGgvODApLFQ9aCU4MCxtPVtdO2ZvcihsZXQgTj0wO048eS5sZW5ndGg7Tis9ODApbS5wdXNoKHkuc2xpY2UoTixOKzgwKSk7cmV0dXJuIGQrdnQoW1tgJHtvfSB8YCxtWzBdXSwuLi5tLnNsaWNlKDEsdisxKS5tYXAoTj0+WyJ8IixOXSksWyJ8IiwiXiIucGFkU3RhcnQoVCldLFsifCIsbVt2KzFdXV0pfXJldHVybiBkK3Z0KFtbYCR7by0xfSB8YCx1W3ItMV1dLFtgJHtvfSB8YCx5XSxbInwiLCJeIi5wYWRTdGFydChoKV0sW2Ake28rMX0gfGAsdVtyKzFdXV0pfWZ1bmN0aW9uIHZ0KGUpe2NvbnN0IHQ9ZS5maWx0ZXIoKFtpLHJdKT0+ciE9PXZvaWQgMCksbj1NYXRoLm1heCguLi50Lm1hcCgoW2ldKT0+aS5sZW5ndGgpKTtyZXR1cm4gdC5tYXAoKFtpLHJdKT0+aS5wYWRTdGFydChuKSsocj8iICIrcjoiIikpLmpvaW4oYApgKX1mdW5jdGlvbiB1bihlKXtjb25zdCB0PWVbMF07cmV0dXJuIHQ9PW51bGx8fCJraW5kImluIHR8fCJsZW5ndGgiaW4gdD97bm9kZXM6dCxzb3VyY2U6ZVsxXSxwb3NpdGlvbnM6ZVsyXSxwYXRoOmVbM10sb3JpZ2luYWxFcnJvcjplWzRdLGV4dGVuc2lvbnM6ZVs1XX06dH1jbGFzcyBqZSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQsLi4ubil7dmFyIGkscixzO2NvbnN0e25vZGVzOm8sc291cmNlOmMscG9zaXRpb25zOmgscGF0aDpkLG9yaWdpbmFsRXJyb3I6dSxleHRlbnNpb25zOnl9PXVuKG4pO3N1cGVyKHQpLHRoaXMubmFtZT0iR3JhcGhRTEVycm9yIix0aGlzLnBhdGg9ZCE9bnVsbD9kOnZvaWQgMCx0aGlzLm9yaWdpbmFsRXJyb3I9dSE9bnVsbD91OnZvaWQgMCx0aGlzLm5vZGVzPUV0KEFycmF5LmlzQXJyYXkobyk/bzpvP1tvXTp2b2lkIDApO2NvbnN0IHY9RXQoKGk9dGhpcy5ub2Rlcyk9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLm1hcChtPT5tLmxvYykuZmlsdGVyKG09Pm0hPW51bGwpKTt0aGlzLnNvdXJjZT1jIT1udWxsP2M6dj09bnVsbHx8KHI9dlswXSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLnNvdXJjZSx0aGlzLnBvc2l0aW9ucz1oIT1udWxsP2g6dj09bnVsbD92b2lkIDA6di5tYXAobT0+bS5zdGFydCksdGhpcy5sb2NhdGlvbnM9aCYmYz9oLm1hcChtPT5xZShjLG0pKTp2PT1udWxsP3ZvaWQgMDp2Lm1hcChtPT5xZShtLnNvdXJjZSxtLnN0YXJ0KSk7Y29uc3QgVD1FZSh1PT1udWxsP3ZvaWQgMDp1LmV4dGVuc2lvbnMpP3U9PW51bGw/dm9pZCAwOnUuZXh0ZW5zaW9uczp2b2lkIDA7dGhpcy5leHRlbnNpb25zPShzPXkhPW51bGw/eTpUKSE9PW51bGwmJnMhPT12b2lkIDA/czpPYmplY3QuY3JlYXRlKG51bGwpLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMse21lc3NhZ2U6e3dyaXRhYmxlOiEwLGVudW1lcmFibGU6ITB9LG5hbWU6e2VudW1lcmFibGU6ITF9LG5vZGVzOntlbnVtZXJhYmxlOiExfSxzb3VyY2U6e2VudW1lcmFibGU6ITF9LHBvc2l0aW9uczp7ZW51bWVyYWJsZTohMX0sb3JpZ2luYWxFcnJvcjp7ZW51bWVyYWJsZTohMX19KSx1IT1udWxsJiZ1LnN0YWNrP09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJzdGFjayIse3ZhbHVlOnUuc3RhY2ssd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSk6RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyxqZSk6T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsInN0YWNrIix7dmFsdWU6RXJyb3IoKS5zdGFjayx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9KX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJHcmFwaFFMRXJyb3IifXRvU3RyaW5nKCl7bGV0IHQ9dGhpcy5tZXNzYWdlO2lmKHRoaXMubm9kZXMpZm9yKGNvbnN0IG4gb2YgdGhpcy5ub2RlcyluLmxvYyYmKHQrPWAKCmArY24obi5sb2MpKTtlbHNlIGlmKHRoaXMuc291cmNlJiZ0aGlzLmxvY2F0aW9ucylmb3IoY29uc3QgbiBvZiB0aGlzLmxvY2F0aW9ucyl0Kz1gCgpgK2d0KHRoaXMuc291cmNlLG4pO3JldHVybiB0fXRvSlNPTigpe2NvbnN0IHQ9e21lc3NhZ2U6dGhpcy5tZXNzYWdlfTtyZXR1cm4gdGhpcy5sb2NhdGlvbnMhPW51bGwmJih0LmxvY2F0aW9ucz10aGlzLmxvY2F0aW9ucyksdGhpcy5wYXRoIT1udWxsJiYodC5wYXRoPXRoaXMucGF0aCksdGhpcy5leHRlbnNpb25zIT1udWxsJiZPYmplY3Qua2V5cyh0aGlzLmV4dGVuc2lvbnMpLmxlbmd0aD4wJiYodC5leHRlbnNpb25zPXRoaXMuZXh0ZW5zaW9ucyksdH19ZnVuY3Rpb24gRXQoZSl7cmV0dXJuIGU9PT12b2lkIDB8fGUubGVuZ3RoPT09MD92b2lkIDA6ZX1mdW5jdGlvbiBHKGUsdCxuKXtyZXR1cm4gbmV3IGplKGBTeW50YXggRXJyb3I6ICR7bn1gLHtzb3VyY2U6ZSxwb3NpdGlvbnM6W3RdfSl9Y2xhc3MgbG57Y29uc3RydWN0b3IodCxuLGkpe3RoaXMuc3RhcnQ9dC5zdGFydCx0aGlzLmVuZD1uLmVuZCx0aGlzLnN0YXJ0VG9rZW49dCx0aGlzLmVuZFRva2VuPW4sdGhpcy5zb3VyY2U9aX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJMb2NhdGlvbiJ9dG9KU09OKCl7cmV0dXJue3N0YXJ0OnRoaXMuc3RhcnQsZW5kOnRoaXMuZW5kfX19Y2xhc3MgX3R7Y29uc3RydWN0b3IodCxuLGkscixzLG8pe3RoaXMua2luZD10LHRoaXMuc3RhcnQ9bix0aGlzLmVuZD1pLHRoaXMubGluZT1yLHRoaXMuY29sdW1uPXMsdGhpcy52YWx1ZT1vLHRoaXMucHJldj1udWxsLHRoaXMubmV4dD1udWxsfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIlRva2VuIn10b0pTT04oKXtyZXR1cm57a2luZDp0aGlzLmtpbmQsdmFsdWU6dGhpcy52YWx1ZSxsaW5lOnRoaXMubGluZSxjb2x1bW46dGhpcy5jb2x1bW59fX1jb25zdCBidD17TmFtZTpbXSxEb2N1bWVudDpbImRlZmluaXRpb25zIl0sT3BlcmF0aW9uRGVmaW5pdGlvbjpbIm5hbWUiLCJ2YXJpYWJsZURlZmluaXRpb25zIiwiZGlyZWN0aXZlcyIsInNlbGVjdGlvblNldCJdLFZhcmlhYmxlRGVmaW5pdGlvbjpbInZhcmlhYmxlIiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsImRpcmVjdGl2ZXMiXSxWYXJpYWJsZTpbIm5hbWUiXSxTZWxlY3Rpb25TZXQ6WyJzZWxlY3Rpb25zIl0sRmllbGQ6WyJhbGlhcyIsIm5hbWUiLCJhcmd1bWVudHMiLCJkaXJlY3RpdmVzIiwic2VsZWN0aW9uU2V0Il0sQXJndW1lbnQ6WyJuYW1lIiwidmFsdWUiXSxGcmFnbWVudFNwcmVhZDpbIm5hbWUiLCJkaXJlY3RpdmVzIl0sSW5saW5lRnJhZ21lbnQ6WyJ0eXBlQ29uZGl0aW9uIiwiZGlyZWN0aXZlcyIsInNlbGVjdGlvblNldCJdLEZyYWdtZW50RGVmaW5pdGlvbjpbIm5hbWUiLCJ2YXJpYWJsZURlZmluaXRpb25zIiwidHlwZUNvbmRpdGlvbiIsImRpcmVjdGl2ZXMiLCJzZWxlY3Rpb25TZXQiXSxJbnRWYWx1ZTpbXSxGbG9hdFZhbHVlOltdLFN0cmluZ1ZhbHVlOltdLEJvb2xlYW5WYWx1ZTpbXSxOdWxsVmFsdWU6W10sRW51bVZhbHVlOltdLExpc3RWYWx1ZTpbInZhbHVlcyJdLE9iamVjdFZhbHVlOlsiZmllbGRzIl0sT2JqZWN0RmllbGQ6WyJuYW1lIiwidmFsdWUiXSxEaXJlY3RpdmU6WyJuYW1lIiwiYXJndW1lbnRzIl0sTmFtZWRUeXBlOlsibmFtZSJdLExpc3RUeXBlOlsidHlwZSJdLE5vbk51bGxUeXBlOlsidHlwZSJdLFNjaGVtYURlZmluaXRpb246WyJkZXNjcmlwdGlvbiIsImRpcmVjdGl2ZXMiLCJvcGVyYXRpb25UeXBlcyJdLE9wZXJhdGlvblR5cGVEZWZpbml0aW9uOlsidHlwZSJdLFNjYWxhclR5cGVEZWZpbml0aW9uOlsiZGVzY3JpcHRpb24iLCJuYW1lIiwiZGlyZWN0aXZlcyJdLE9iamVjdFR5cGVEZWZpbml0aW9uOlsiZGVzY3JpcHRpb24iLCJuYW1lIiwiaW50ZXJmYWNlcyIsImRpcmVjdGl2ZXMiLCJmaWVsZHMiXSxGaWVsZERlZmluaXRpb246WyJkZXNjcmlwdGlvbiIsIm5hbWUiLCJhcmd1bWVudHMiLCJ0eXBlIiwiZGlyZWN0aXZlcyJdLElucHV0VmFsdWVEZWZpbml0aW9uOlsiZGVzY3JpcHRpb24iLCJuYW1lIiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsImRpcmVjdGl2ZXMiXSxJbnRlcmZhY2VUeXBlRGVmaW5pdGlvbjpbImRlc2NyaXB0aW9uIiwibmFtZSIsImludGVyZmFjZXMiLCJkaXJlY3RpdmVzIiwiZmllbGRzIl0sVW5pb25UeXBlRGVmaW5pdGlvbjpbImRlc2NyaXB0aW9uIiwibmFtZSIsImRpcmVjdGl2ZXMiLCJ0eXBlcyJdLEVudW1UeXBlRGVmaW5pdGlvbjpbImRlc2NyaXB0aW9uIiwibmFtZSIsImRpcmVjdGl2ZXMiLCJ2YWx1ZXMiXSxFbnVtVmFsdWVEZWZpbml0aW9uOlsiZGVzY3JpcHRpb24iLCJuYW1lIiwiZGlyZWN0aXZlcyJdLElucHV0T2JqZWN0VHlwZURlZmluaXRpb246WyJkZXNjcmlwdGlvbiIsIm5hbWUiLCJkaXJlY3RpdmVzIiwiZmllbGRzIl0sRGlyZWN0aXZlRGVmaW5pdGlvbjpbImRlc2NyaXB0aW9uIiwibmFtZSIsImFyZ3VtZW50cyIsImxvY2F0aW9ucyJdLFNjaGVtYUV4dGVuc2lvbjpbImRpcmVjdGl2ZXMiLCJvcGVyYXRpb25UeXBlcyJdLFNjYWxhclR5cGVFeHRlbnNpb246WyJuYW1lIiwiZGlyZWN0aXZlcyJdLE9iamVjdFR5cGVFeHRlbnNpb246WyJuYW1lIiwiaW50ZXJmYWNlcyIsImRpcmVjdGl2ZXMiLCJmaWVsZHMiXSxJbnRlcmZhY2VUeXBlRXh0ZW5zaW9uOlsibmFtZSIsImludGVyZmFjZXMiLCJkaXJlY3RpdmVzIiwiZmllbGRzIl0sVW5pb25UeXBlRXh0ZW5zaW9uOlsibmFtZSIsImRpcmVjdGl2ZXMiLCJ0eXBlcyJdLEVudW1UeXBlRXh0ZW5zaW9uOlsibmFtZSIsImRpcmVjdGl2ZXMiLCJ2YWx1ZXMiXSxJbnB1dE9iamVjdFR5cGVFeHRlbnNpb246WyJuYW1lIiwiZGlyZWN0aXZlcyIsImZpZWxkcyJdfSxobj1uZXcgU2V0KE9iamVjdC5rZXlzKGJ0KSk7ZnVuY3Rpb24gVHQoZSl7Y29uc3QgdD1lPT1udWxsP3ZvaWQgMDplLmtpbmQ7cmV0dXJuIHR5cGVvZiB0PT0ic3RyaW5nIiYmaG4uaGFzKHQpfXZhciBoZTsoZnVuY3Rpb24oZSl7ZS5RVUVSWT0icXVlcnkiLGUuTVVUQVRJT049Im11dGF0aW9uIixlLlNVQlNDUklQVElPTj0ic3Vic2NyaXB0aW9uIn0pKGhlfHwoaGU9e30pKTt2YXIgR2U7KGZ1bmN0aW9uKGUpe2UuUVVFUlk9IlFVRVJZIixlLk1VVEFUSU9OPSJNVVRBVElPTiIsZS5TVUJTQ1JJUFRJT049IlNVQlNDUklQVElPTiIsZS5GSUVMRD0iRklFTEQiLGUuRlJBR01FTlRfREVGSU5JVElPTj0iRlJBR01FTlRfREVGSU5JVElPTiIsZS5GUkFHTUVOVF9TUFJFQUQ9IkZSQUdNRU5UX1NQUkVBRCIsZS5JTkxJTkVfRlJBR01FTlQ9IklOTElORV9GUkFHTUVOVCIsZS5WQVJJQUJMRV9ERUZJTklUSU9OPSJWQVJJQUJMRV9ERUZJTklUSU9OIixlLlNDSEVNQT0iU0NIRU1BIixlLlNDQUxBUj0iU0NBTEFSIixlLk9CSkVDVD0iT0JKRUNUIixlLkZJRUxEX0RFRklOSVRJT049IkZJRUxEX0RFRklOSVRJT04iLGUuQVJHVU1FTlRfREVGSU5JVElPTj0iQVJHVU1FTlRfREVGSU5JVElPTiIsZS5JTlRFUkZBQ0U9IklOVEVSRkFDRSIsZS5VTklPTj0iVU5JT04iLGUuRU5VTT0iRU5VTSIsZS5FTlVNX1ZBTFVFPSJFTlVNX1ZBTFVFIixlLklOUFVUX09CSkVDVD0iSU5QVVRfT0JKRUNUIixlLklOUFVUX0ZJRUxEX0RFRklOSVRJT049IklOUFVUX0ZJRUxEX0RFRklOSVRJT04ifSkoR2V8fChHZT17fSkpO3ZhciBiOyhmdW5jdGlvbihlKXtlLk5BTUU9Ik5hbWUiLGUuRE9DVU1FTlQ9IkRvY3VtZW50IixlLk9QRVJBVElPTl9ERUZJTklUSU9OPSJPcGVyYXRpb25EZWZpbml0aW9uIixlLlZBUklBQkxFX0RFRklOSVRJT049IlZhcmlhYmxlRGVmaW5pdGlvbiIsZS5TRUxFQ1RJT05fU0VUPSJTZWxlY3Rpb25TZXQiLGUuRklFTEQ9IkZpZWxkIixlLkFSR1VNRU5UPSJBcmd1bWVudCIsZS5GUkFHTUVOVF9TUFJFQUQ9IkZyYWdtZW50U3ByZWFkIixlLklOTElORV9GUkFHTUVOVD0iSW5saW5lRnJhZ21lbnQiLGUuRlJBR01FTlRfREVGSU5JVElPTj0iRnJhZ21lbnREZWZpbml0aW9uIixlLlZBUklBQkxFPSJWYXJpYWJsZSIsZS5JTlQ9IkludFZhbHVlIixlLkZMT0FUPSJGbG9hdFZhbHVlIixlLlNUUklORz0iU3RyaW5nVmFsdWUiLGUuQk9PTEVBTj0iQm9vbGVhblZhbHVlIixlLk5VTEw9Ik51bGxWYWx1ZSIsZS5FTlVNPSJFbnVtVmFsdWUiLGUuTElTVD0iTGlzdFZhbHVlIixlLk9CSkVDVD0iT2JqZWN0VmFsdWUiLGUuT0JKRUNUX0ZJRUxEPSJPYmplY3RGaWVsZCIsZS5ESVJFQ1RJVkU9IkRpcmVjdGl2ZSIsZS5OQU1FRF9UWVBFPSJOYW1lZFR5cGUiLGUuTElTVF9UWVBFPSJMaXN0VHlwZSIsZS5OT05fTlVMTF9UWVBFPSJOb25OdWxsVHlwZSIsZS5TQ0hFTUFfREVGSU5JVElPTj0iU2NoZW1hRGVmaW5pdGlvbiIsZS5PUEVSQVRJT05fVFlQRV9ERUZJTklUSU9OPSJPcGVyYXRpb25UeXBlRGVmaW5pdGlvbiIsZS5TQ0FMQVJfVFlQRV9ERUZJTklUSU9OPSJTY2FsYXJUeXBlRGVmaW5pdGlvbiIsZS5PQkpFQ1RfVFlQRV9ERUZJTklUSU9OPSJPYmplY3RUeXBlRGVmaW5pdGlvbiIsZS5GSUVMRF9ERUZJTklUSU9OPSJGaWVsZERlZmluaXRpb24iLGUuSU5QVVRfVkFMVUVfREVGSU5JVElPTj0iSW5wdXRWYWx1ZURlZmluaXRpb24iLGUuSU5URVJGQUNFX1RZUEVfREVGSU5JVElPTj0iSW50ZXJmYWNlVHlwZURlZmluaXRpb24iLGUuVU5JT05fVFlQRV9ERUZJTklUSU9OPSJVbmlvblR5cGVEZWZpbml0aW9uIixlLkVOVU1fVFlQRV9ERUZJTklUSU9OPSJFbnVtVHlwZURlZmluaXRpb24iLGUuRU5VTV9WQUxVRV9ERUZJTklUSU9OPSJFbnVtVmFsdWVEZWZpbml0aW9uIixlLklOUFVUX09CSkVDVF9UWVBFX0RFRklOSVRJT049IklucHV0T2JqZWN0VHlwZURlZmluaXRpb24iLGUuRElSRUNUSVZFX0RFRklOSVRJT049IkRpcmVjdGl2ZURlZmluaXRpb24iLGUuU0NIRU1BX0VYVEVOU0lPTj0iU2NoZW1hRXh0ZW5zaW9uIixlLlNDQUxBUl9UWVBFX0VYVEVOU0lPTj0iU2NhbGFyVHlwZUV4dGVuc2lvbiIsZS5PQkpFQ1RfVFlQRV9FWFRFTlNJT049Ik9iamVjdFR5cGVFeHRlbnNpb24iLGUuSU5URVJGQUNFX1RZUEVfRVhURU5TSU9OPSJJbnRlcmZhY2VUeXBlRXh0ZW5zaW9uIixlLlVOSU9OX1RZUEVfRVhURU5TSU9OPSJVbmlvblR5cGVFeHRlbnNpb24iLGUuRU5VTV9UWVBFX0VYVEVOU0lPTj0iRW51bVR5cGVFeHRlbnNpb24iLGUuSU5QVVRfT0JKRUNUX1RZUEVfRVhURU5TSU9OPSJJbnB1dE9iamVjdFR5cGVFeHRlbnNpb24ifSkoYnx8KGI9e30pKTtmdW5jdGlvbiB6ZShlKXtyZXR1cm4gZT09PTl8fGU9PT0zMn1mdW5jdGlvbiBiZShlKXtyZXR1cm4gZT49NDgmJmU8PTU3fWZ1bmN0aW9uIE50KGUpe3JldHVybiBlPj05NyYmZTw9MTIyfHxlPj02NSYmZTw9OTB9ZnVuY3Rpb24geHQoZSl7cmV0dXJuIE50KGUpfHxlPT09OTV9ZnVuY3Rpb24gZm4oZSl7cmV0dXJuIE50KGUpfHxiZShlKXx8ZT09PTk1fWZ1bmN0aW9uIGRuKGUpe3ZhciB0O2xldCBuPU51bWJlci5NQVhfU0FGRV9JTlRFR0VSLGk9bnVsbCxyPS0xO2ZvcihsZXQgbz0wO288ZS5sZW5ndGg7KytvKXt2YXIgcztjb25zdCBjPWVbb10saD1wbihjKTtoIT09Yy5sZW5ndGgmJihpPShzPWkpIT09bnVsbCYmcyE9PXZvaWQgMD9zOm8scj1vLG8hPT0wJiZoPG4mJihuPWgpKX1yZXR1cm4gZS5tYXAoKG8sYyk9PmM9PT0wP286by5zbGljZShuKSkuc2xpY2UoKHQ9aSkhPT1udWxsJiZ0IT09dm9pZCAwP3Q6MCxyKzEpfWZ1bmN0aW9uIHBuKGUpe2xldCB0PTA7Zm9yKDt0PGUubGVuZ3RoJiZ6ZShlLmNoYXJDb2RlQXQodCkpOykrK3Q7cmV0dXJuIHR9ZnVuY3Rpb24gbW4oZSx0KXtjb25zdCBuPWUucmVwbGFjZSgvIiIiL2csJ1xcIiIiJyksaT1uLnNwbGl0KC9cclxufFtcblxyXS9nKSxyPWkubGVuZ3RoPT09MSxzPWkubGVuZ3RoPjEmJmkuc2xpY2UoMSkuZXZlcnkoVD0+VC5sZW5ndGg9PT0wfHx6ZShULmNoYXJDb2RlQXQoMCkpKSxvPW4uZW5kc1dpdGgoJ1xcIiIiJyksYz1lLmVuZHNXaXRoKCciJykmJiFvLGg9ZS5lbmRzV2l0aCgiXFwiKSxkPWN8fGgsdT0hcnx8ZS5sZW5ndGg+NzB8fGR8fHN8fG87bGV0IHk9IiI7Y29uc3Qgdj1yJiZ6ZShlLmNoYXJDb2RlQXQoMCkpO3JldHVybih1JiYhdnx8cykmJih5Kz1gCmApLHkrPW4sKHV8fGQpJiYoeSs9YApgKSwnIiIiJyt5KyciIiInfXZhciBsOyhmdW5jdGlvbihlKXtlLlNPRj0iPFNPRj4iLGUuRU9GPSI8RU9GPiIsZS5CQU5HPSIhIixlLkRPTExBUj0iJCIsZS5BTVA9IiYiLGUuUEFSRU5fTD0iKCIsZS5QQVJFTl9SPSIpIixlLlNQUkVBRD0iLi4uIixlLkNPTE9OPSI6IixlLkVRVUFMUz0iPSIsZS5BVD0iQCIsZS5CUkFDS0VUX0w9IlsiLGUuQlJBQ0tFVF9SPSJdIixlLkJSQUNFX0w9InsiLGUuUElQRT0ifCIsZS5CUkFDRV9SPSJ9IixlLk5BTUU9Ik5hbWUiLGUuSU5UPSJJbnQiLGUuRkxPQVQ9IkZsb2F0IixlLlNUUklORz0iU3RyaW5nIixlLkJMT0NLX1NUUklORz0iQmxvY2tTdHJpbmciLGUuQ09NTUVOVD0iQ29tbWVudCJ9KShsfHwobD17fSkpO2NsYXNzIHlue2NvbnN0cnVjdG9yKHQpe2NvbnN0IG49bmV3IF90KGwuU09GLDAsMCwwLDApO3RoaXMuc291cmNlPXQsdGhpcy5sYXN0VG9rZW49bix0aGlzLnRva2VuPW4sdGhpcy5saW5lPTEsdGhpcy5saW5lU3RhcnQ9MH1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJMZXhlciJ9YWR2YW5jZSgpe3JldHVybiB0aGlzLmxhc3RUb2tlbj10aGlzLnRva2VuLHRoaXMudG9rZW49dGhpcy5sb29rYWhlYWQoKX1sb29rYWhlYWQoKXtsZXQgdD10aGlzLnRva2VuO2lmKHQua2luZCE9PWwuRU9GKWRvIGlmKHQubmV4dCl0PXQubmV4dDtlbHNle2NvbnN0IG49dm4odGhpcyx0LmVuZCk7dC5uZXh0PW4sbi5wcmV2PXQsdD1ufXdoaWxlKHQua2luZD09PWwuQ09NTUVOVCk7cmV0dXJuIHR9fWZ1bmN0aW9uIGduKGUpe3JldHVybiBlPT09bC5CQU5HfHxlPT09bC5ET0xMQVJ8fGU9PT1sLkFNUHx8ZT09PWwuUEFSRU5fTHx8ZT09PWwuUEFSRU5fUnx8ZT09PWwuU1BSRUFEfHxlPT09bC5DT0xPTnx8ZT09PWwuRVFVQUxTfHxlPT09bC5BVHx8ZT09PWwuQlJBQ0tFVF9MfHxlPT09bC5CUkFDS0VUX1J8fGU9PT1sLkJSQUNFX0x8fGU9PT1sLlBJUEV8fGU9PT1sLkJSQUNFX1J9ZnVuY3Rpb24gZmUoZSl7cmV0dXJuIGU+PTAmJmU8PTU1Mjk1fHxlPj01NzM0NCYmZTw9MTExNDExMX1mdW5jdGlvbiB3ZShlLHQpe3JldHVybiBBdChlLmNoYXJDb2RlQXQodCkpJiZJdChlLmNoYXJDb2RlQXQodCsxKSl9ZnVuY3Rpb24gQXQoZSl7cmV0dXJuIGU+PTU1Mjk2JiZlPD01NjMxOX1mdW5jdGlvbiBJdChlKXtyZXR1cm4gZT49NTYzMjAmJmU8PTU3MzQzfWZ1bmN0aW9uIGNlKGUsdCl7Y29uc3Qgbj1lLnNvdXJjZS5ib2R5LmNvZGVQb2ludEF0KHQpO2lmKG49PT12b2lkIDApcmV0dXJuIGwuRU9GO2lmKG4+PTMyJiZuPD0xMjYpe2NvbnN0IGk9U3RyaW5nLmZyb21Db2RlUG9pbnQobik7cmV0dXJuIGk9PT0nIic/YCciJ2A6YCIke2l9ImB9cmV0dXJuIlUrIituLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpLnBhZFN0YXJ0KDQsIjAiKX1mdW5jdGlvbiBVKGUsdCxuLGkscil7Y29uc3Qgcz1lLmxpbmUsbz0xK24tZS5saW5lU3RhcnQ7cmV0dXJuIG5ldyBfdCh0LG4saSxzLG8scil9ZnVuY3Rpb24gdm4oZSx0KXtjb25zdCBuPWUuc291cmNlLmJvZHksaT1uLmxlbmd0aDtsZXQgcj10O2Zvcig7cjxpOyl7Y29uc3Qgcz1uLmNoYXJDb2RlQXQocik7c3dpdGNoKHMpe2Nhc2UgNjUyNzk6Y2FzZSA5OmNhc2UgMzI6Y2FzZSA0NDorK3I7Y29udGludWU7Y2FzZSAxMDorK3IsKytlLmxpbmUsZS5saW5lU3RhcnQ9cjtjb250aW51ZTtjYXNlIDEzOm4uY2hhckNvZGVBdChyKzEpPT09MTA/cis9MjorK3IsKytlLmxpbmUsZS5saW5lU3RhcnQ9cjtjb250aW51ZTtjYXNlIDM1OnJldHVybiBFbihlLHIpO2Nhc2UgMzM6cmV0dXJuIFUoZSxsLkJBTkcscixyKzEpO2Nhc2UgMzY6cmV0dXJuIFUoZSxsLkRPTExBUixyLHIrMSk7Y2FzZSAzODpyZXR1cm4gVShlLGwuQU1QLHIscisxKTtjYXNlIDQwOnJldHVybiBVKGUsbC5QQVJFTl9MLHIscisxKTtjYXNlIDQxOnJldHVybiBVKGUsbC5QQVJFTl9SLHIscisxKTtjYXNlIDQ2OmlmKG4uY2hhckNvZGVBdChyKzEpPT09NDYmJm4uY2hhckNvZGVBdChyKzIpPT09NDYpcmV0dXJuIFUoZSxsLlNQUkVBRCxyLHIrMyk7YnJlYWs7Y2FzZSA1ODpyZXR1cm4gVShlLGwuQ09MT04scixyKzEpO2Nhc2UgNjE6cmV0dXJuIFUoZSxsLkVRVUFMUyxyLHIrMSk7Y2FzZSA2NDpyZXR1cm4gVShlLGwuQVQscixyKzEpO2Nhc2UgOTE6cmV0dXJuIFUoZSxsLkJSQUNLRVRfTCxyLHIrMSk7Y2FzZSA5MzpyZXR1cm4gVShlLGwuQlJBQ0tFVF9SLHIscisxKTtjYXNlIDEyMzpyZXR1cm4gVShlLGwuQlJBQ0VfTCxyLHIrMSk7Y2FzZSAxMjQ6cmV0dXJuIFUoZSxsLlBJUEUscixyKzEpO2Nhc2UgMTI1OnJldHVybiBVKGUsbC5CUkFDRV9SLHIscisxKTtjYXNlIDM0OnJldHVybiBuLmNoYXJDb2RlQXQocisxKT09PTM0JiZuLmNoYXJDb2RlQXQocisyKT09PTM0P0FuKGUscik6Ym4oZSxyKX1pZihiZShzKXx8cz09PTQ1KXJldHVybiBfbihlLHIscyk7aWYoeHQocykpcmV0dXJuIEluKGUscik7dGhyb3cgRyhlLnNvdXJjZSxyLHM9PT0zOT9gVW5leHBlY3RlZCBzaW5nbGUgcXVvdGUgY2hhcmFjdGVyICgnKSwgZGlkIHlvdSBtZWFuIHRvIHVzZSBhIGRvdWJsZSBxdW90ZSAoIik/YDpmZShzKXx8d2UobixyKT9gVW5leHBlY3RlZCBjaGFyYWN0ZXI6ICR7Y2UoZSxyKX0uYDpgSW52YWxpZCBjaGFyYWN0ZXI6ICR7Y2UoZSxyKX0uYCl9cmV0dXJuIFUoZSxsLkVPRixpLGkpfWZ1bmN0aW9uIEVuKGUsdCl7Y29uc3Qgbj1lLnNvdXJjZS5ib2R5LGk9bi5sZW5ndGg7bGV0IHI9dCsxO2Zvcig7cjxpOyl7Y29uc3Qgcz1uLmNoYXJDb2RlQXQocik7aWYocz09PTEwfHxzPT09MTMpYnJlYWs7aWYoZmUocykpKytyO2Vsc2UgaWYod2UobixyKSlyKz0yO2Vsc2UgYnJlYWt9cmV0dXJuIFUoZSxsLkNPTU1FTlQsdCxyLG4uc2xpY2UodCsxLHIpKX1mdW5jdGlvbiBfbihlLHQsbil7Y29uc3QgaT1lLnNvdXJjZS5ib2R5O2xldCByPXQscz1uLG89ITE7aWYocz09PTQ1JiYocz1pLmNoYXJDb2RlQXQoKytyKSkscz09PTQ4KXtpZihzPWkuY2hhckNvZGVBdCgrK3IpLGJlKHMpKXRocm93IEcoZS5zb3VyY2UscixgSW52YWxpZCBudW1iZXIsIHVuZXhwZWN0ZWQgZGlnaXQgYWZ0ZXIgMDogJHtjZShlLHIpfS5gKX1lbHNlIHI9SGUoZSxyLHMpLHM9aS5jaGFyQ29kZUF0KHIpO2lmKHM9PT00NiYmKG89ITAscz1pLmNoYXJDb2RlQXQoKytyKSxyPUhlKGUscixzKSxzPWkuY2hhckNvZGVBdChyKSksKHM9PT02OXx8cz09PTEwMSkmJihvPSEwLHM9aS5jaGFyQ29kZUF0KCsrciksKHM9PT00M3x8cz09PTQ1KSYmKHM9aS5jaGFyQ29kZUF0KCsrcikpLHI9SGUoZSxyLHMpLHM9aS5jaGFyQ29kZUF0KHIpKSxzPT09NDZ8fHh0KHMpKXRocm93IEcoZS5zb3VyY2UscixgSW52YWxpZCBudW1iZXIsIGV4cGVjdGVkIGRpZ2l0IGJ1dCBnb3Q6ICR7Y2UoZSxyKX0uYCk7cmV0dXJuIFUoZSxvP2wuRkxPQVQ6bC5JTlQsdCxyLGkuc2xpY2UodCxyKSl9ZnVuY3Rpb24gSGUoZSx0LG4pe2lmKCFiZShuKSl0aHJvdyBHKGUuc291cmNlLHQsYEludmFsaWQgbnVtYmVyLCBleHBlY3RlZCBkaWdpdCBidXQgZ290OiAke2NlKGUsdCl9LmApO2NvbnN0IGk9ZS5zb3VyY2UuYm9keTtsZXQgcj10KzE7Zm9yKDtiZShpLmNoYXJDb2RlQXQocikpOykrK3I7cmV0dXJuIHJ9ZnVuY3Rpb24gYm4oZSx0KXtjb25zdCBuPWUuc291cmNlLmJvZHksaT1uLmxlbmd0aDtsZXQgcj10KzEscz1yLG89IiI7Zm9yKDtyPGk7KXtjb25zdCBjPW4uY2hhckNvZGVBdChyKTtpZihjPT09MzQpcmV0dXJuIG8rPW4uc2xpY2UocyxyKSxVKGUsbC5TVFJJTkcsdCxyKzEsbyk7aWYoYz09PTkyKXtvKz1uLnNsaWNlKHMscik7Y29uc3QgaD1uLmNoYXJDb2RlQXQocisxKT09PTExNz9uLmNoYXJDb2RlQXQocisyKT09PTEyMz9UbihlLHIpOk5uKGUscik6eG4oZSxyKTtvKz1oLnZhbHVlLHIrPWguc2l6ZSxzPXI7Y29udGludWV9aWYoYz09PTEwfHxjPT09MTMpYnJlYWs7aWYoZmUoYykpKytyO2Vsc2UgaWYod2UobixyKSlyKz0yO2Vsc2UgdGhyb3cgRyhlLnNvdXJjZSxyLGBJbnZhbGlkIGNoYXJhY3RlciB3aXRoaW4gU3RyaW5nOiAke2NlKGUscil9LmApfXRocm93IEcoZS5zb3VyY2UsciwiVW50ZXJtaW5hdGVkIHN0cmluZy4iKX1mdW5jdGlvbiBUbihlLHQpe2NvbnN0IG49ZS5zb3VyY2UuYm9keTtsZXQgaT0wLHI9Mztmb3IoO3I8MTI7KXtjb25zdCBzPW4uY2hhckNvZGVBdCh0K3IrKyk7aWYocz09PTEyNSl7aWYocjw1fHwhZmUoaSkpYnJlYWs7cmV0dXJue3ZhbHVlOlN0cmluZy5mcm9tQ29kZVBvaW50KGkpLHNpemU6cn19aWYoaT1pPDw0fFRlKHMpLGk8MClicmVha310aHJvdyBHKGUuc291cmNlLHQsYEludmFsaWQgVW5pY29kZSBlc2NhcGUgc2VxdWVuY2U6ICIke24uc2xpY2UodCx0K3IpfSIuYCl9ZnVuY3Rpb24gTm4oZSx0KXtjb25zdCBuPWUuc291cmNlLmJvZHksaT1TdChuLHQrMik7aWYoZmUoaSkpcmV0dXJue3ZhbHVlOlN0cmluZy5mcm9tQ29kZVBvaW50KGkpLHNpemU6Nn07aWYoQXQoaSkmJm4uY2hhckNvZGVBdCh0KzYpPT09OTImJm4uY2hhckNvZGVBdCh0KzcpPT09MTE3KXtjb25zdCByPVN0KG4sdCs4KTtpZihJdChyKSlyZXR1cm57dmFsdWU6U3RyaW5nLmZyb21Db2RlUG9pbnQoaSxyKSxzaXplOjEyfX10aHJvdyBHKGUuc291cmNlLHQsYEludmFsaWQgVW5pY29kZSBlc2NhcGUgc2VxdWVuY2U6ICIke24uc2xpY2UodCx0KzYpfSIuYCl9ZnVuY3Rpb24gU3QoZSx0KXtyZXR1cm4gVGUoZS5jaGFyQ29kZUF0KHQpKTw8MTJ8VGUoZS5jaGFyQ29kZUF0KHQrMSkpPDw4fFRlKGUuY2hhckNvZGVBdCh0KzIpKTw8NHxUZShlLmNoYXJDb2RlQXQodCszKSl9ZnVuY3Rpb24gVGUoZSl7cmV0dXJuIGU+PTQ4JiZlPD01Nz9lLTQ4OmU+PTY1JiZlPD03MD9lLTU1OmU+PTk3JiZlPD0xMDI/ZS04NzotMX1mdW5jdGlvbiB4bihlLHQpe2NvbnN0IG49ZS5zb3VyY2UuYm9keTtzd2l0Y2gobi5jaGFyQ29kZUF0KHQrMSkpe2Nhc2UgMzQ6cmV0dXJue3ZhbHVlOiciJyxzaXplOjJ9O2Nhc2UgOTI6cmV0dXJue3ZhbHVlOiJcXCIsc2l6ZToyfTtjYXNlIDQ3OnJldHVybnt2YWx1ZToiLyIsc2l6ZToyfTtjYXNlIDk4OnJldHVybnt2YWx1ZToiXGIiLHNpemU6Mn07Y2FzZSAxMDI6cmV0dXJue3ZhbHVlOiJcZiIsc2l6ZToyfTtjYXNlIDExMDpyZXR1cm57dmFsdWU6YApgLHNpemU6Mn07Y2FzZSAxMTQ6cmV0dXJue3ZhbHVlOiJcciIsc2l6ZToyfTtjYXNlIDExNjpyZXR1cm57dmFsdWU6IgkiLHNpemU6Mn19dGhyb3cgRyhlLnNvdXJjZSx0LGBJbnZhbGlkIGNoYXJhY3RlciBlc2NhcGUgc2VxdWVuY2U6ICIke24uc2xpY2UodCx0KzIpfSIuYCl9ZnVuY3Rpb24gQW4oZSx0KXtjb25zdCBuPWUuc291cmNlLmJvZHksaT1uLmxlbmd0aDtsZXQgcj1lLmxpbmVTdGFydCxzPXQrMyxvPXMsYz0iIjtjb25zdCBoPVtdO2Zvcig7czxpOyl7Y29uc3QgZD1uLmNoYXJDb2RlQXQocyk7aWYoZD09PTM0JiZuLmNoYXJDb2RlQXQocysxKT09PTM0JiZuLmNoYXJDb2RlQXQocysyKT09PTM0KXtjKz1uLnNsaWNlKG8scyksaC5wdXNoKGMpO2NvbnN0IHU9VShlLGwuQkxPQ0tfU1RSSU5HLHQscyszLGRuKGgpLmpvaW4oYApgKSk7cmV0dXJuIGUubGluZSs9aC5sZW5ndGgtMSxlLmxpbmVTdGFydD1yLHV9aWYoZD09PTkyJiZuLmNoYXJDb2RlQXQocysxKT09PTM0JiZuLmNoYXJDb2RlQXQocysyKT09PTM0JiZuLmNoYXJDb2RlQXQocyszKT09PTM0KXtjKz1uLnNsaWNlKG8scyksbz1zKzEscys9NDtjb250aW51ZX1pZihkPT09MTB8fGQ9PT0xMyl7Yys9bi5zbGljZShvLHMpLGgucHVzaChjKSxkPT09MTMmJm4uY2hhckNvZGVBdChzKzEpPT09MTA/cys9MjorK3MsYz0iIixvPXMscj1zO2NvbnRpbnVlfWlmKGZlKGQpKSsrcztlbHNlIGlmKHdlKG4scykpcys9MjtlbHNlIHRocm93IEcoZS5zb3VyY2UscyxgSW52YWxpZCBjaGFyYWN0ZXIgd2l0aGluIFN0cmluZzogJHtjZShlLHMpfS5gKX10aHJvdyBHKGUuc291cmNlLHMsIlVudGVybWluYXRlZCBzdHJpbmcuIil9ZnVuY3Rpb24gSW4oZSx0KXtjb25zdCBuPWUuc291cmNlLmJvZHksaT1uLmxlbmd0aDtsZXQgcj10KzE7Zm9yKDtyPGk7KXtjb25zdCBzPW4uY2hhckNvZGVBdChyKTtpZihmbihzKSkrK3I7ZWxzZSBicmVha31yZXR1cm4gVShlLGwuTkFNRSx0LHIsbi5zbGljZSh0LHIpKX1jb25zdCBTbj0xMCxPdD0yO2Z1bmN0aW9uIFllKGUpe3JldHVybiBEZShlLFtdKX1mdW5jdGlvbiBEZShlLHQpe3N3aXRjaCh0eXBlb2YgZSl7Y2FzZSJzdHJpbmciOnJldHVybiBKU09OLnN0cmluZ2lmeShlKTtjYXNlImZ1bmN0aW9uIjpyZXR1cm4gZS5uYW1lP2BbZnVuY3Rpb24gJHtlLm5hbWV9XWA6IltmdW5jdGlvbl0iO2Nhc2Uib2JqZWN0IjpyZXR1cm4gT24oZSx0KTtkZWZhdWx0OnJldHVybiBTdHJpbmcoZSl9fWZ1bmN0aW9uIE9uKGUsdCl7aWYoZT09PW51bGwpcmV0dXJuIm51bGwiO2lmKHQuaW5jbHVkZXMoZSkpcmV0dXJuIltDaXJjdWxhcl0iO2NvbnN0IG49Wy4uLnQsZV07aWYod24oZSkpe2NvbnN0IGk9ZS50b0pTT04oKTtpZihpIT09ZSlyZXR1cm4gdHlwZW9mIGk9PSJzdHJpbmciP2k6RGUoaSxuKX1lbHNlIGlmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGtuKGUsbik7cmV0dXJuIERuKGUsbil9ZnVuY3Rpb24gd24oZSl7cmV0dXJuIHR5cGVvZiBlLnRvSlNPTj09ImZ1bmN0aW9uIn1mdW5jdGlvbiBEbihlLHQpe2NvbnN0IG49T2JqZWN0LmVudHJpZXMoZSk7cmV0dXJuIG4ubGVuZ3RoPT09MD8ie30iOnQubGVuZ3RoPk90PyJbIitDbihlKSsiXSI6InsgIituLm1hcCgoW3Isc10pPT5yKyI6ICIrRGUocyx0KSkuam9pbigiLCAiKSsiIH0ifWZ1bmN0aW9uIGtuKGUsdCl7aWYoZS5sZW5ndGg9PT0wKXJldHVybiJbXSI7aWYodC5sZW5ndGg+T3QpcmV0dXJuIltBcnJheV0iO2NvbnN0IG49TWF0aC5taW4oU24sZS5sZW5ndGgpLGk9ZS5sZW5ndGgtbixyPVtdO2ZvcihsZXQgcz0wO3M8bjsrK3Mpci5wdXNoKERlKGVbc10sdCkpO3JldHVybiBpPT09MT9yLnB1c2goIi4uLiAxIG1vcmUgaXRlbSIpOmk+MSYmci5wdXNoKGAuLi4gJHtpfSBtb3JlIGl0ZW1zYCksIlsiK3Iuam9pbigiLCAiKSsiXSJ9ZnVuY3Rpb24gQ24oZSl7Y29uc3QgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkucmVwbGFjZSgvXlxbb2JqZWN0IC8sIiIpLnJlcGxhY2UoL10kLywiIik7aWYodD09PSJPYmplY3QiJiZ0eXBlb2YgZS5jb25zdHJ1Y3Rvcj09ImZ1bmN0aW9uIil7Y29uc3Qgbj1lLmNvbnN0cnVjdG9yLm5hbWU7aWYodHlwZW9mIG49PSJzdHJpbmciJiZuIT09IiIpcmV0dXJuIG59cmV0dXJuIHR9Y29uc3QgUm49Z2xvYmFsVGhpcy5wcm9jZXNzJiZwcm9jZXNzLmVudi5OT0RFX0VOVj09PSJwcm9kdWN0aW9uIj9mdW5jdGlvbih0LG4pe3JldHVybiB0IGluc3RhbmNlb2Ygbn06ZnVuY3Rpb24odCxuKXtpZih0IGluc3RhbmNlb2YgbilyZXR1cm4hMDtpZih0eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsKXt2YXIgaTtjb25zdCByPW4ucHJvdG90eXBlW1N5bWJvbC50b1N0cmluZ1RhZ10scz1TeW1ib2wudG9TdHJpbmdUYWcgaW4gdD90W1N5bWJvbC50b1N0cmluZ1RhZ106KGk9dC5jb25zdHJ1Y3Rvcik9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLm5hbWU7aWYocj09PXMpe2NvbnN0IG89WWUodCk7dGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgdXNlICR7cn0gIiR7b30iIGZyb20gYW5vdGhlciBtb2R1bGUgb3IgcmVhbG0uCgpFbnN1cmUgdGhhdCB0aGVyZSBpcyBvbmx5IG9uZSBpbnN0YW5jZSBvZiAiZ3JhcGhxbCIgaW4gdGhlIG5vZGVfbW9kdWxlcwpkaXJlY3RvcnkuIElmIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiAiZ3JhcGhxbCIgYXJlIHRoZSBkZXBlbmRlbmNpZXMgb2Ygb3RoZXIKcmVsaWVkIG9uIG1vZHVsZXMsIHVzZSAicmVzb2x1dGlvbnMiIHRvIGVuc3VyZSBvbmx5IG9uZSB2ZXJzaW9uIGlzIGluc3RhbGxlZC4KCmh0dHBzOi8veWFybnBrZy5jb20vZW4vZG9jcy9zZWxlY3RpdmUtdmVyc2lvbi1yZXNvbHV0aW9ucwoKRHVwbGljYXRlICJncmFwaHFsIiBtb2R1bGVzIGNhbm5vdCBiZSB1c2VkIGF0IHRoZSBzYW1lIHRpbWUgc2luY2UgZGlmZmVyZW50CnZlcnNpb25zIG1heSBoYXZlIGRpZmZlcmVudCBjYXBhYmlsaXRpZXMgYW5kIGJlaGF2aW9yLiBUaGUgZGF0YSBmcm9tIG9uZQp2ZXJzaW9uIHVzZWQgaW4gdGhlIGZ1bmN0aW9uIGZyb20gYW5vdGhlciBjb3VsZCBwcm9kdWNlIGNvbmZ1c2luZyBhbmQKc3B1cmlvdXMgcmVzdWx0cy5gKX19cmV0dXJuITF9O2NsYXNzIHd0e2NvbnN0cnVjdG9yKHQsbj0iR3JhcGhRTCByZXF1ZXN0IixpPXtsaW5lOjEsY29sdW1uOjF9KXt0eXBlb2YgdD09InN0cmluZyJ8fGxlKCExLGBCb2R5IG11c3QgYmUgYSBzdHJpbmcuIFJlY2VpdmVkOiAke1llKHQpfS5gKSx0aGlzLmJvZHk9dCx0aGlzLm5hbWU9bix0aGlzLmxvY2F0aW9uT2Zmc2V0PWksdGhpcy5sb2NhdGlvbk9mZnNldC5saW5lPjB8fGxlKCExLCJsaW5lIGluIGxvY2F0aW9uT2Zmc2V0IGlzIDEtaW5kZXhlZCBhbmQgbXVzdCBiZSBwb3NpdGl2ZS4iKSx0aGlzLmxvY2F0aW9uT2Zmc2V0LmNvbHVtbj4wfHxsZSghMSwiY29sdW1uIGluIGxvY2F0aW9uT2Zmc2V0IGlzIDEtaW5kZXhlZCBhbmQgbXVzdCBiZSBwb3NpdGl2ZS4iKX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJTb3VyY2UifX1mdW5jdGlvbiBMbihlKXtyZXR1cm4gUm4oZSx3dCl9ZnVuY3Rpb24gRHQoZSx0KXtjb25zdCBuPW5ldyBQbihlLHQpLGk9bi5wYXJzZURvY3VtZW50KCk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLCJ0b2tlbkNvdW50Iix7ZW51bWVyYWJsZTohMSx2YWx1ZTpuLnRva2VuQ291bnR9KSxpfWNsYXNzIFBue2NvbnN0cnVjdG9yKHQsbj17fSl7Y29uc3QgaT1Mbih0KT90Om5ldyB3dCh0KTt0aGlzLl9sZXhlcj1uZXcgeW4oaSksdGhpcy5fb3B0aW9ucz1uLHRoaXMuX3Rva2VuQ291bnRlcj0wfWdldCB0b2tlbkNvdW50KCl7cmV0dXJuIHRoaXMuX3Rva2VuQ291bnRlcn1wYXJzZU5hbWUoKXtjb25zdCB0PXRoaXMuZXhwZWN0VG9rZW4obC5OQU1FKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5OQU1FLHZhbHVlOnQudmFsdWV9KX1wYXJzZURvY3VtZW50KCl7cmV0dXJuIHRoaXMubm9kZSh0aGlzLl9sZXhlci50b2tlbix7a2luZDpiLkRPQ1VNRU5ULGRlZmluaXRpb25zOnRoaXMubWFueShsLlNPRix0aGlzLnBhcnNlRGVmaW5pdGlvbixsLkVPRil9KX1wYXJzZURlZmluaXRpb24oKXtpZih0aGlzLnBlZWsobC5CUkFDRV9MKSlyZXR1cm4gdGhpcy5wYXJzZU9wZXJhdGlvbkRlZmluaXRpb24oKTtjb25zdCB0PXRoaXMucGVla0Rlc2NyaXB0aW9uKCksbj10P3RoaXMuX2xleGVyLmxvb2thaGVhZCgpOnRoaXMuX2xleGVyLnRva2VuO2lmKG4ua2luZD09PWwuTkFNRSl7c3dpdGNoKG4udmFsdWUpe2Nhc2Uic2NoZW1hIjpyZXR1cm4gdGhpcy5wYXJzZVNjaGVtYURlZmluaXRpb24oKTtjYXNlInNjYWxhciI6cmV0dXJuIHRoaXMucGFyc2VTY2FsYXJUeXBlRGVmaW5pdGlvbigpO2Nhc2UidHlwZSI6cmV0dXJuIHRoaXMucGFyc2VPYmplY3RUeXBlRGVmaW5pdGlvbigpO2Nhc2UiaW50ZXJmYWNlIjpyZXR1cm4gdGhpcy5wYXJzZUludGVyZmFjZVR5cGVEZWZpbml0aW9uKCk7Y2FzZSJ1bmlvbiI6cmV0dXJuIHRoaXMucGFyc2VVbmlvblR5cGVEZWZpbml0aW9uKCk7Y2FzZSJlbnVtIjpyZXR1cm4gdGhpcy5wYXJzZUVudW1UeXBlRGVmaW5pdGlvbigpO2Nhc2UiaW5wdXQiOnJldHVybiB0aGlzLnBhcnNlSW5wdXRPYmplY3RUeXBlRGVmaW5pdGlvbigpO2Nhc2UiZGlyZWN0aXZlIjpyZXR1cm4gdGhpcy5wYXJzZURpcmVjdGl2ZURlZmluaXRpb24oKX1pZih0KXRocm93IEcodGhpcy5fbGV4ZXIuc291cmNlLHRoaXMuX2xleGVyLnRva2VuLnN0YXJ0LCJVbmV4cGVjdGVkIGRlc2NyaXB0aW9uLCBkZXNjcmlwdGlvbnMgYXJlIHN1cHBvcnRlZCBvbmx5IG9uIHR5cGUgZGVmaW5pdGlvbnMuIik7c3dpdGNoKG4udmFsdWUpe2Nhc2UicXVlcnkiOmNhc2UibXV0YXRpb24iOmNhc2Uic3Vic2NyaXB0aW9uIjpyZXR1cm4gdGhpcy5wYXJzZU9wZXJhdGlvbkRlZmluaXRpb24oKTtjYXNlImZyYWdtZW50IjpyZXR1cm4gdGhpcy5wYXJzZUZyYWdtZW50RGVmaW5pdGlvbigpO2Nhc2UiZXh0ZW5kIjpyZXR1cm4gdGhpcy5wYXJzZVR5cGVTeXN0ZW1FeHRlbnNpb24oKX19dGhyb3cgdGhpcy51bmV4cGVjdGVkKG4pfXBhcnNlT3BlcmF0aW9uRGVmaW5pdGlvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW47aWYodGhpcy5wZWVrKGwuQlJBQ0VfTCkpcmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOmIuT1BFUkFUSU9OX0RFRklOSVRJT04sb3BlcmF0aW9uOmhlLlFVRVJZLG5hbWU6dm9pZCAwLHZhcmlhYmxlRGVmaW5pdGlvbnM6W10sZGlyZWN0aXZlczpbXSxzZWxlY3Rpb25TZXQ6dGhpcy5wYXJzZVNlbGVjdGlvblNldCgpfSk7Y29uc3Qgbj10aGlzLnBhcnNlT3BlcmF0aW9uVHlwZSgpO2xldCBpO3JldHVybiB0aGlzLnBlZWsobC5OQU1FKSYmKGk9dGhpcy5wYXJzZU5hbWUoKSksdGhpcy5ub2RlKHQse2tpbmQ6Yi5PUEVSQVRJT05fREVGSU5JVElPTixvcGVyYXRpb246bixuYW1lOmksdmFyaWFibGVEZWZpbml0aW9uczp0aGlzLnBhcnNlVmFyaWFibGVEZWZpbml0aW9ucygpLGRpcmVjdGl2ZXM6dGhpcy5wYXJzZURpcmVjdGl2ZXMoITEpLHNlbGVjdGlvblNldDp0aGlzLnBhcnNlU2VsZWN0aW9uU2V0KCl9KX1wYXJzZU9wZXJhdGlvblR5cGUoKXtjb25zdCB0PXRoaXMuZXhwZWN0VG9rZW4obC5OQU1FKTtzd2l0Y2godC52YWx1ZSl7Y2FzZSJxdWVyeSI6cmV0dXJuIGhlLlFVRVJZO2Nhc2UibXV0YXRpb24iOnJldHVybiBoZS5NVVRBVElPTjtjYXNlInN1YnNjcmlwdGlvbiI6cmV0dXJuIGhlLlNVQlNDUklQVElPTn10aHJvdyB0aGlzLnVuZXhwZWN0ZWQodCl9cGFyc2VWYXJpYWJsZURlZmluaXRpb25zKCl7cmV0dXJuIHRoaXMub3B0aW9uYWxNYW55KGwuUEFSRU5fTCx0aGlzLnBhcnNlVmFyaWFibGVEZWZpbml0aW9uLGwuUEFSRU5fUil9cGFyc2VWYXJpYWJsZURlZmluaXRpb24oKXtyZXR1cm4gdGhpcy5ub2RlKHRoaXMuX2xleGVyLnRva2VuLHtraW5kOmIuVkFSSUFCTEVfREVGSU5JVElPTix2YXJpYWJsZTp0aGlzLnBhcnNlVmFyaWFibGUoKSx0eXBlOih0aGlzLmV4cGVjdFRva2VuKGwuQ09MT04pLHRoaXMucGFyc2VUeXBlUmVmZXJlbmNlKCkpLGRlZmF1bHRWYWx1ZTp0aGlzLmV4cGVjdE9wdGlvbmFsVG9rZW4obC5FUVVBTFMpP3RoaXMucGFyc2VDb25zdFZhbHVlTGl0ZXJhbCgpOnZvaWQgMCxkaXJlY3RpdmVzOnRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKX0pfXBhcnNlVmFyaWFibGUoKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuO3JldHVybiB0aGlzLmV4cGVjdFRva2VuKGwuRE9MTEFSKSx0aGlzLm5vZGUodCx7a2luZDpiLlZBUklBQkxFLG5hbWU6dGhpcy5wYXJzZU5hbWUoKX0pfXBhcnNlU2VsZWN0aW9uU2V0KCl7cmV0dXJuIHRoaXMubm9kZSh0aGlzLl9sZXhlci50b2tlbix7a2luZDpiLlNFTEVDVElPTl9TRVQsc2VsZWN0aW9uczp0aGlzLm1hbnkobC5CUkFDRV9MLHRoaXMucGFyc2VTZWxlY3Rpb24sbC5CUkFDRV9SKX0pfXBhcnNlU2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMucGVlayhsLlNQUkVBRCk/dGhpcy5wYXJzZUZyYWdtZW50KCk6dGhpcy5wYXJzZUZpZWxkKCl9cGFyc2VGaWVsZCgpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW4sbj10aGlzLnBhcnNlTmFtZSgpO2xldCBpLHI7cmV0dXJuIHRoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihsLkNPTE9OKT8oaT1uLHI9dGhpcy5wYXJzZU5hbWUoKSk6cj1uLHRoaXMubm9kZSh0LHtraW5kOmIuRklFTEQsYWxpYXM6aSxuYW1lOnIsYXJndW1lbnRzOnRoaXMucGFyc2VBcmd1bWVudHMoITEpLGRpcmVjdGl2ZXM6dGhpcy5wYXJzZURpcmVjdGl2ZXMoITEpLHNlbGVjdGlvblNldDp0aGlzLnBlZWsobC5CUkFDRV9MKT90aGlzLnBhcnNlU2VsZWN0aW9uU2V0KCk6dm9pZCAwfSl9cGFyc2VBcmd1bWVudHModCl7Y29uc3Qgbj10P3RoaXMucGFyc2VDb25zdEFyZ3VtZW50OnRoaXMucGFyc2VBcmd1bWVudDtyZXR1cm4gdGhpcy5vcHRpb25hbE1hbnkobC5QQVJFTl9MLG4sbC5QQVJFTl9SKX1wYXJzZUFyZ3VtZW50KHQ9ITEpe2NvbnN0IG49dGhpcy5fbGV4ZXIudG9rZW4saT10aGlzLnBhcnNlTmFtZSgpO3JldHVybiB0aGlzLmV4cGVjdFRva2VuKGwuQ09MT04pLHRoaXMubm9kZShuLHtraW5kOmIuQVJHVU1FTlQsbmFtZTppLHZhbHVlOnRoaXMucGFyc2VWYWx1ZUxpdGVyYWwodCl9KX1wYXJzZUNvbnN0QXJndW1lbnQoKXtyZXR1cm4gdGhpcy5wYXJzZUFyZ3VtZW50KCEwKX1wYXJzZUZyYWdtZW50KCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjt0aGlzLmV4cGVjdFRva2VuKGwuU1BSRUFEKTtjb25zdCBuPXRoaXMuZXhwZWN0T3B0aW9uYWxLZXl3b3JkKCJvbiIpO3JldHVybiFuJiZ0aGlzLnBlZWsobC5OQU1FKT90aGlzLm5vZGUodCx7a2luZDpiLkZSQUdNRU5UX1NQUkVBRCxuYW1lOnRoaXMucGFyc2VGcmFnbWVudE5hbWUoKSxkaXJlY3RpdmVzOnRoaXMucGFyc2VEaXJlY3RpdmVzKCExKX0pOnRoaXMubm9kZSh0LHtraW5kOmIuSU5MSU5FX0ZSQUdNRU5ULHR5cGVDb25kaXRpb246bj90aGlzLnBhcnNlTmFtZWRUeXBlKCk6dm9pZCAwLGRpcmVjdGl2ZXM6dGhpcy5wYXJzZURpcmVjdGl2ZXMoITEpLHNlbGVjdGlvblNldDp0aGlzLnBhcnNlU2VsZWN0aW9uU2V0KCl9KX1wYXJzZUZyYWdtZW50RGVmaW5pdGlvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW47cmV0dXJuIHRoaXMuZXhwZWN0S2V5d29yZCgiZnJhZ21lbnQiKSx0aGlzLl9vcHRpb25zLmFsbG93TGVnYWN5RnJhZ21lbnRWYXJpYWJsZXM9PT0hMD90aGlzLm5vZGUodCx7a2luZDpiLkZSQUdNRU5UX0RFRklOSVRJT04sbmFtZTp0aGlzLnBhcnNlRnJhZ21lbnROYW1lKCksdmFyaWFibGVEZWZpbml0aW9uczp0aGlzLnBhcnNlVmFyaWFibGVEZWZpbml0aW9ucygpLHR5cGVDb25kaXRpb246KHRoaXMuZXhwZWN0S2V5d29yZCgib24iKSx0aGlzLnBhcnNlTmFtZWRUeXBlKCkpLGRpcmVjdGl2ZXM6dGhpcy5wYXJzZURpcmVjdGl2ZXMoITEpLHNlbGVjdGlvblNldDp0aGlzLnBhcnNlU2VsZWN0aW9uU2V0KCl9KTp0aGlzLm5vZGUodCx7a2luZDpiLkZSQUdNRU5UX0RFRklOSVRJT04sbmFtZTp0aGlzLnBhcnNlRnJhZ21lbnROYW1lKCksdHlwZUNvbmRpdGlvbjoodGhpcy5leHBlY3RLZXl3b3JkKCJvbiIpLHRoaXMucGFyc2VOYW1lZFR5cGUoKSksZGlyZWN0aXZlczp0aGlzLnBhcnNlRGlyZWN0aXZlcyghMSksc2VsZWN0aW9uU2V0OnRoaXMucGFyc2VTZWxlY3Rpb25TZXQoKX0pfXBhcnNlRnJhZ21lbnROYW1lKCl7aWYodGhpcy5fbGV4ZXIudG9rZW4udmFsdWU9PT0ib24iKXRocm93IHRoaXMudW5leHBlY3RlZCgpO3JldHVybiB0aGlzLnBhcnNlTmFtZSgpfXBhcnNlVmFsdWVMaXRlcmFsKHQpe2NvbnN0IG49dGhpcy5fbGV4ZXIudG9rZW47c3dpdGNoKG4ua2luZCl7Y2FzZSBsLkJSQUNLRVRfTDpyZXR1cm4gdGhpcy5wYXJzZUxpc3QodCk7Y2FzZSBsLkJSQUNFX0w6cmV0dXJuIHRoaXMucGFyc2VPYmplY3QodCk7Y2FzZSBsLklOVDpyZXR1cm4gdGhpcy5hZHZhbmNlTGV4ZXIoKSx0aGlzLm5vZGUobix7a2luZDpiLklOVCx2YWx1ZTpuLnZhbHVlfSk7Y2FzZSBsLkZMT0FUOnJldHVybiB0aGlzLmFkdmFuY2VMZXhlcigpLHRoaXMubm9kZShuLHtraW5kOmIuRkxPQVQsdmFsdWU6bi52YWx1ZX0pO2Nhc2UgbC5TVFJJTkc6Y2FzZSBsLkJMT0NLX1NUUklORzpyZXR1cm4gdGhpcy5wYXJzZVN0cmluZ0xpdGVyYWwoKTtjYXNlIGwuTkFNRTpzd2l0Y2godGhpcy5hZHZhbmNlTGV4ZXIoKSxuLnZhbHVlKXtjYXNlInRydWUiOnJldHVybiB0aGlzLm5vZGUobix7a2luZDpiLkJPT0xFQU4sdmFsdWU6ITB9KTtjYXNlImZhbHNlIjpyZXR1cm4gdGhpcy5ub2RlKG4se2tpbmQ6Yi5CT09MRUFOLHZhbHVlOiExfSk7Y2FzZSJudWxsIjpyZXR1cm4gdGhpcy5ub2RlKG4se2tpbmQ6Yi5OVUxMfSk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5ub2RlKG4se2tpbmQ6Yi5FTlVNLHZhbHVlOm4udmFsdWV9KX1jYXNlIGwuRE9MTEFSOmlmKHQpaWYodGhpcy5leHBlY3RUb2tlbihsLkRPTExBUiksdGhpcy5fbGV4ZXIudG9rZW4ua2luZD09PWwuTkFNRSl7Y29uc3QgaT10aGlzLl9sZXhlci50b2tlbi52YWx1ZTt0aHJvdyBHKHRoaXMuX2xleGVyLnNvdXJjZSxuLnN0YXJ0LGBVbmV4cGVjdGVkIHZhcmlhYmxlICIkJHtpfSIgaW4gY29uc3RhbnQgdmFsdWUuYCl9ZWxzZSB0aHJvdyB0aGlzLnVuZXhwZWN0ZWQobik7cmV0dXJuIHRoaXMucGFyc2VWYXJpYWJsZSgpO2RlZmF1bHQ6dGhyb3cgdGhpcy51bmV4cGVjdGVkKCl9fXBhcnNlQ29uc3RWYWx1ZUxpdGVyYWwoKXtyZXR1cm4gdGhpcy5wYXJzZVZhbHVlTGl0ZXJhbCghMCl9cGFyc2VTdHJpbmdMaXRlcmFsKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjtyZXR1cm4gdGhpcy5hZHZhbmNlTGV4ZXIoKSx0aGlzLm5vZGUodCx7a2luZDpiLlNUUklORyx2YWx1ZTp0LnZhbHVlLGJsb2NrOnQua2luZD09PWwuQkxPQ0tfU1RSSU5HfSl9cGFyc2VMaXN0KHQpe2NvbnN0IG49KCk9PnRoaXMucGFyc2VWYWx1ZUxpdGVyYWwodCk7cmV0dXJuIHRoaXMubm9kZSh0aGlzLl9sZXhlci50b2tlbix7a2luZDpiLkxJU1QsdmFsdWVzOnRoaXMuYW55KGwuQlJBQ0tFVF9MLG4sbC5CUkFDS0VUX1IpfSl9cGFyc2VPYmplY3QodCl7Y29uc3Qgbj0oKT0+dGhpcy5wYXJzZU9iamVjdEZpZWxkKHQpO3JldHVybiB0aGlzLm5vZGUodGhpcy5fbGV4ZXIudG9rZW4se2tpbmQ6Yi5PQkpFQ1QsZmllbGRzOnRoaXMuYW55KGwuQlJBQ0VfTCxuLGwuQlJBQ0VfUil9KX1wYXJzZU9iamVjdEZpZWxkKHQpe2NvbnN0IG49dGhpcy5fbGV4ZXIudG9rZW4saT10aGlzLnBhcnNlTmFtZSgpO3JldHVybiB0aGlzLmV4cGVjdFRva2VuKGwuQ09MT04pLHRoaXMubm9kZShuLHtraW5kOmIuT0JKRUNUX0ZJRUxELG5hbWU6aSx2YWx1ZTp0aGlzLnBhcnNlVmFsdWVMaXRlcmFsKHQpfSl9cGFyc2VEaXJlY3RpdmVzKHQpe2NvbnN0IG49W107Zm9yKDt0aGlzLnBlZWsobC5BVCk7KW4ucHVzaCh0aGlzLnBhcnNlRGlyZWN0aXZlKHQpKTtyZXR1cm4gbn1wYXJzZUNvbnN0RGlyZWN0aXZlcygpe3JldHVybiB0aGlzLnBhcnNlRGlyZWN0aXZlcyghMCl9cGFyc2VEaXJlY3RpdmUodCl7Y29uc3Qgbj10aGlzLl9sZXhlci50b2tlbjtyZXR1cm4gdGhpcy5leHBlY3RUb2tlbihsLkFUKSx0aGlzLm5vZGUobix7a2luZDpiLkRJUkVDVElWRSxuYW1lOnRoaXMucGFyc2VOYW1lKCksYXJndW1lbnRzOnRoaXMucGFyc2VBcmd1bWVudHModCl9KX1wYXJzZVR5cGVSZWZlcmVuY2UoKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuO2xldCBuO2lmKHRoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihsLkJSQUNLRVRfTCkpe2NvbnN0IGk9dGhpcy5wYXJzZVR5cGVSZWZlcmVuY2UoKTt0aGlzLmV4cGVjdFRva2VuKGwuQlJBQ0tFVF9SKSxuPXRoaXMubm9kZSh0LHtraW5kOmIuTElTVF9UWVBFLHR5cGU6aX0pfWVsc2Ugbj10aGlzLnBhcnNlTmFtZWRUeXBlKCk7cmV0dXJuIHRoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihsLkJBTkcpP3RoaXMubm9kZSh0LHtraW5kOmIuTk9OX05VTExfVFlQRSx0eXBlOm59KTpufXBhcnNlTmFtZWRUeXBlKCl7cmV0dXJuIHRoaXMubm9kZSh0aGlzLl9sZXhlci50b2tlbix7a2luZDpiLk5BTUVEX1RZUEUsbmFtZTp0aGlzLnBhcnNlTmFtZSgpfSl9cGVla0Rlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMucGVlayhsLlNUUklORyl8fHRoaXMucGVlayhsLkJMT0NLX1NUUklORyl9cGFyc2VEZXNjcmlwdGlvbigpe2lmKHRoaXMucGVla0Rlc2NyaXB0aW9uKCkpcmV0dXJuIHRoaXMucGFyc2VTdHJpbmdMaXRlcmFsKCl9cGFyc2VTY2hlbWFEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZCgic2NoZW1hIik7Y29uc3QgaT10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCkscj10aGlzLm1hbnkobC5CUkFDRV9MLHRoaXMucGFyc2VPcGVyYXRpb25UeXBlRGVmaW5pdGlvbixsLkJSQUNFX1IpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpiLlNDSEVNQV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sZGlyZWN0aXZlczppLG9wZXJhdGlvblR5cGVzOnJ9KX1wYXJzZU9wZXJhdGlvblR5cGVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VPcGVyYXRpb25UeXBlKCk7dGhpcy5leHBlY3RUb2tlbihsLkNPTE9OKTtjb25zdCBpPXRoaXMucGFyc2VOYW1lZFR5cGUoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5PUEVSQVRJT05fVFlQRV9ERUZJTklUSU9OLG9wZXJhdGlvbjpuLHR5cGU6aX0pfXBhcnNlU2NhbGFyVHlwZURlZmluaXRpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZURlc2NyaXB0aW9uKCk7dGhpcy5leHBlY3RLZXl3b3JkKCJzY2FsYXIiKTtjb25zdCBpPXRoaXMucGFyc2VOYW1lKCkscj10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCk7cmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOmIuU0NBTEFSX1RZUEVfREVGSU5JVElPTixkZXNjcmlwdGlvbjpuLG5hbWU6aSxkaXJlY3RpdmVzOnJ9KX1wYXJzZU9iamVjdFR5cGVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZCgidHlwZSIpO2NvbnN0IGk9dGhpcy5wYXJzZU5hbWUoKSxyPXRoaXMucGFyc2VJbXBsZW1lbnRzSW50ZXJmYWNlcygpLHM9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpLG89dGhpcy5wYXJzZUZpZWxkc0RlZmluaXRpb24oKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5PQkpFQ1RfVFlQRV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sbmFtZTppLGludGVyZmFjZXM6cixkaXJlY3RpdmVzOnMsZmllbGRzOm99KX1wYXJzZUltcGxlbWVudHNJbnRlcmZhY2VzKCl7cmV0dXJuIHRoaXMuZXhwZWN0T3B0aW9uYWxLZXl3b3JkKCJpbXBsZW1lbnRzIik/dGhpcy5kZWxpbWl0ZWRNYW55KGwuQU1QLHRoaXMucGFyc2VOYW1lZFR5cGUpOltdfXBhcnNlRmllbGRzRGVmaW5pdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbmFsTWFueShsLkJSQUNFX0wsdGhpcy5wYXJzZUZpZWxkRGVmaW5pdGlvbixsLkJSQUNFX1IpfXBhcnNlRmllbGREZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpLGk9dGhpcy5wYXJzZU5hbWUoKSxyPXRoaXMucGFyc2VBcmd1bWVudERlZnMoKTt0aGlzLmV4cGVjdFRva2VuKGwuQ09MT04pO2NvbnN0IHM9dGhpcy5wYXJzZVR5cGVSZWZlcmVuY2UoKSxvPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5GSUVMRF9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sbmFtZTppLGFyZ3VtZW50czpyLHR5cGU6cyxkaXJlY3RpdmVzOm99KX1wYXJzZUFyZ3VtZW50RGVmcygpe3JldHVybiB0aGlzLm9wdGlvbmFsTWFueShsLlBBUkVOX0wsdGhpcy5wYXJzZUlucHV0VmFsdWVEZWYsbC5QQVJFTl9SKX1wYXJzZUlucHV0VmFsdWVEZWYoKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZURlc2NyaXB0aW9uKCksaT10aGlzLnBhcnNlTmFtZSgpO3RoaXMuZXhwZWN0VG9rZW4obC5DT0xPTik7Y29uc3Qgcj10aGlzLnBhcnNlVHlwZVJlZmVyZW5jZSgpO2xldCBzO3RoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihsLkVRVUFMUykmJihzPXRoaXMucGFyc2VDb25zdFZhbHVlTGl0ZXJhbCgpKTtjb25zdCBvPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5JTlBVVF9WQUxVRV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sbmFtZTppLHR5cGU6cixkZWZhdWx0VmFsdWU6cyxkaXJlY3RpdmVzOm99KX1wYXJzZUludGVyZmFjZVR5cGVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZCgiaW50ZXJmYWNlIik7Y29uc3QgaT10aGlzLnBhcnNlTmFtZSgpLHI9dGhpcy5wYXJzZUltcGxlbWVudHNJbnRlcmZhY2VzKCkscz10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCksbz10aGlzLnBhcnNlRmllbGRzRGVmaW5pdGlvbigpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpiLklOVEVSRkFDRV9UWVBFX0RFRklOSVRJT04sZGVzY3JpcHRpb246bixuYW1lOmksaW50ZXJmYWNlczpyLGRpcmVjdGl2ZXM6cyxmaWVsZHM6b30pfXBhcnNlVW5pb25UeXBlRGVmaW5pdGlvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW4sbj10aGlzLnBhcnNlRGVzY3JpcHRpb24oKTt0aGlzLmV4cGVjdEtleXdvcmQoInVuaW9uIik7Y29uc3QgaT10aGlzLnBhcnNlTmFtZSgpLHI9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpLHM9dGhpcy5wYXJzZVVuaW9uTWVtYmVyVHlwZXMoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5VTklPTl9UWVBFX0RFRklOSVRJT04sZGVzY3JpcHRpb246bixuYW1lOmksZGlyZWN0aXZlczpyLHR5cGVzOnN9KX1wYXJzZVVuaW9uTWVtYmVyVHlwZXMoKXtyZXR1cm4gdGhpcy5leHBlY3RPcHRpb25hbFRva2VuKGwuRVFVQUxTKT90aGlzLmRlbGltaXRlZE1hbnkobC5QSVBFLHRoaXMucGFyc2VOYW1lZFR5cGUpOltdfXBhcnNlRW51bVR5cGVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZCgiZW51bSIpO2NvbnN0IGk9dGhpcy5wYXJzZU5hbWUoKSxyPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxzPXRoaXMucGFyc2VFbnVtVmFsdWVzRGVmaW5pdGlvbigpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpiLkVOVU1fVFlQRV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sbmFtZTppLGRpcmVjdGl2ZXM6cix2YWx1ZXM6c30pfXBhcnNlRW51bVZhbHVlc0RlZmluaXRpb24oKXtyZXR1cm4gdGhpcy5vcHRpb25hbE1hbnkobC5CUkFDRV9MLHRoaXMucGFyc2VFbnVtVmFsdWVEZWZpbml0aW9uLGwuQlJBQ0VfUil9cGFyc2VFbnVtVmFsdWVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpLGk9dGhpcy5wYXJzZUVudW1WYWx1ZU5hbWUoKSxyPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5FTlVNX1ZBTFVFX0RFRklOSVRJT04sZGVzY3JpcHRpb246bixuYW1lOmksZGlyZWN0aXZlczpyfSl9cGFyc2VFbnVtVmFsdWVOYW1lKCl7aWYodGhpcy5fbGV4ZXIudG9rZW4udmFsdWU9PT0idHJ1ZSJ8fHRoaXMuX2xleGVyLnRva2VuLnZhbHVlPT09ImZhbHNlInx8dGhpcy5fbGV4ZXIudG9rZW4udmFsdWU9PT0ibnVsbCIpdGhyb3cgRyh0aGlzLl9sZXhlci5zb3VyY2UsdGhpcy5fbGV4ZXIudG9rZW4uc3RhcnQsYCR7a2UodGhpcy5fbGV4ZXIudG9rZW4pfSBpcyByZXNlcnZlZCBhbmQgY2Fubm90IGJlIHVzZWQgZm9yIGFuIGVudW0gdmFsdWUuYCk7cmV0dXJuIHRoaXMucGFyc2VOYW1lKCl9cGFyc2VJbnB1dE9iamVjdFR5cGVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZCgiaW5wdXQiKTtjb25zdCBpPXRoaXMucGFyc2VOYW1lKCkscj10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCkscz10aGlzLnBhcnNlSW5wdXRGaWVsZHNEZWZpbml0aW9uKCk7cmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOmIuSU5QVVRfT0JKRUNUX1RZUEVfREVGSU5JVElPTixkZXNjcmlwdGlvbjpuLG5hbWU6aSxkaXJlY3RpdmVzOnIsZmllbGRzOnN9KX1wYXJzZUlucHV0RmllbGRzRGVmaW5pdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbmFsTWFueShsLkJSQUNFX0wsdGhpcy5wYXJzZUlucHV0VmFsdWVEZWYsbC5CUkFDRV9SKX1wYXJzZVR5cGVTeXN0ZW1FeHRlbnNpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLmxvb2thaGVhZCgpO2lmKHQua2luZD09PWwuTkFNRSlzd2l0Y2godC52YWx1ZSl7Y2FzZSJzY2hlbWEiOnJldHVybiB0aGlzLnBhcnNlU2NoZW1hRXh0ZW5zaW9uKCk7Y2FzZSJzY2FsYXIiOnJldHVybiB0aGlzLnBhcnNlU2NhbGFyVHlwZUV4dGVuc2lvbigpO2Nhc2UidHlwZSI6cmV0dXJuIHRoaXMucGFyc2VPYmplY3RUeXBlRXh0ZW5zaW9uKCk7Y2FzZSJpbnRlcmZhY2UiOnJldHVybiB0aGlzLnBhcnNlSW50ZXJmYWNlVHlwZUV4dGVuc2lvbigpO2Nhc2UidW5pb24iOnJldHVybiB0aGlzLnBhcnNlVW5pb25UeXBlRXh0ZW5zaW9uKCk7Y2FzZSJlbnVtIjpyZXR1cm4gdGhpcy5wYXJzZUVudW1UeXBlRXh0ZW5zaW9uKCk7Y2FzZSJpbnB1dCI6cmV0dXJuIHRoaXMucGFyc2VJbnB1dE9iamVjdFR5cGVFeHRlbnNpb24oKX10aHJvdyB0aGlzLnVuZXhwZWN0ZWQodCl9cGFyc2VTY2hlbWFFeHRlbnNpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuO3RoaXMuZXhwZWN0S2V5d29yZCgiZXh0ZW5kIiksdGhpcy5leHBlY3RLZXl3b3JkKCJzY2hlbWEiKTtjb25zdCBuPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxpPXRoaXMub3B0aW9uYWxNYW55KGwuQlJBQ0VfTCx0aGlzLnBhcnNlT3BlcmF0aW9uVHlwZURlZmluaXRpb24sbC5CUkFDRV9SKTtpZihuLmxlbmd0aD09PTAmJmkubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5TQ0hFTUFfRVhURU5TSU9OLGRpcmVjdGl2ZXM6bixvcGVyYXRpb25UeXBlczppfSl9cGFyc2VTY2FsYXJUeXBlRXh0ZW5zaW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjt0aGlzLmV4cGVjdEtleXdvcmQoImV4dGVuZCIpLHRoaXMuZXhwZWN0S2V5d29yZCgic2NhbGFyIik7Y29uc3Qgbj10aGlzLnBhcnNlTmFtZSgpLGk9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpO2lmKGkubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5TQ0FMQVJfVFlQRV9FWFRFTlNJT04sbmFtZTpuLGRpcmVjdGl2ZXM6aX0pfXBhcnNlT2JqZWN0VHlwZUV4dGVuc2lvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW47dGhpcy5leHBlY3RLZXl3b3JkKCJleHRlbmQiKSx0aGlzLmV4cGVjdEtleXdvcmQoInR5cGUiKTtjb25zdCBuPXRoaXMucGFyc2VOYW1lKCksaT10aGlzLnBhcnNlSW1wbGVtZW50c0ludGVyZmFjZXMoKSxyPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxzPXRoaXMucGFyc2VGaWVsZHNEZWZpbml0aW9uKCk7aWYoaS5sZW5ndGg9PT0wJiZyLmxlbmd0aD09PTAmJnMubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5PQkpFQ1RfVFlQRV9FWFRFTlNJT04sbmFtZTpuLGludGVyZmFjZXM6aSxkaXJlY3RpdmVzOnIsZmllbGRzOnN9KX1wYXJzZUludGVyZmFjZVR5cGVFeHRlbnNpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuO3RoaXMuZXhwZWN0S2V5d29yZCgiZXh0ZW5kIiksdGhpcy5leHBlY3RLZXl3b3JkKCJpbnRlcmZhY2UiKTtjb25zdCBuPXRoaXMucGFyc2VOYW1lKCksaT10aGlzLnBhcnNlSW1wbGVtZW50c0ludGVyZmFjZXMoKSxyPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxzPXRoaXMucGFyc2VGaWVsZHNEZWZpbml0aW9uKCk7aWYoaS5sZW5ndGg9PT0wJiZyLmxlbmd0aD09PTAmJnMubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5JTlRFUkZBQ0VfVFlQRV9FWFRFTlNJT04sbmFtZTpuLGludGVyZmFjZXM6aSxkaXJlY3RpdmVzOnIsZmllbGRzOnN9KX1wYXJzZVVuaW9uVHlwZUV4dGVuc2lvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW47dGhpcy5leHBlY3RLZXl3b3JkKCJleHRlbmQiKSx0aGlzLmV4cGVjdEtleXdvcmQoInVuaW9uIik7Y29uc3Qgbj10aGlzLnBhcnNlTmFtZSgpLGk9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpLHI9dGhpcy5wYXJzZVVuaW9uTWVtYmVyVHlwZXMoKTtpZihpLmxlbmd0aD09PTAmJnIubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5VTklPTl9UWVBFX0VYVEVOU0lPTixuYW1lOm4sZGlyZWN0aXZlczppLHR5cGVzOnJ9KX1wYXJzZUVudW1UeXBlRXh0ZW5zaW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjt0aGlzLmV4cGVjdEtleXdvcmQoImV4dGVuZCIpLHRoaXMuZXhwZWN0S2V5d29yZCgiZW51bSIpO2NvbnN0IG49dGhpcy5wYXJzZU5hbWUoKSxpPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxyPXRoaXMucGFyc2VFbnVtVmFsdWVzRGVmaW5pdGlvbigpO2lmKGkubGVuZ3RoPT09MCYmci5sZW5ndGg9PT0wKXRocm93IHRoaXMudW5leHBlY3RlZCgpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpiLkVOVU1fVFlQRV9FWFRFTlNJT04sbmFtZTpuLGRpcmVjdGl2ZXM6aSx2YWx1ZXM6cn0pfXBhcnNlSW5wdXRPYmplY3RUeXBlRXh0ZW5zaW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjt0aGlzLmV4cGVjdEtleXdvcmQoImV4dGVuZCIpLHRoaXMuZXhwZWN0S2V5d29yZCgiaW5wdXQiKTtjb25zdCBuPXRoaXMucGFyc2VOYW1lKCksaT10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCkscj10aGlzLnBhcnNlSW5wdXRGaWVsZHNEZWZpbml0aW9uKCk7aWYoaS5sZW5ndGg9PT0wJiZyLmxlbmd0aD09PTApdGhyb3cgdGhpcy51bmV4cGVjdGVkKCk7cmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOmIuSU5QVVRfT0JKRUNUX1RZUEVfRVhURU5TSU9OLG5hbWU6bixkaXJlY3RpdmVzOmksZmllbGRzOnJ9KX1wYXJzZURpcmVjdGl2ZURlZmluaXRpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZURlc2NyaXB0aW9uKCk7dGhpcy5leHBlY3RLZXl3b3JkKCJkaXJlY3RpdmUiKSx0aGlzLmV4cGVjdFRva2VuKGwuQVQpO2NvbnN0IGk9dGhpcy5wYXJzZU5hbWUoKSxyPXRoaXMucGFyc2VBcmd1bWVudERlZnMoKSxzPXRoaXMuZXhwZWN0T3B0aW9uYWxLZXl3b3JkKCJyZXBlYXRhYmxlIik7dGhpcy5leHBlY3RLZXl3b3JkKCJvbiIpO2NvbnN0IG89dGhpcy5wYXJzZURpcmVjdGl2ZUxvY2F0aW9ucygpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpiLkRJUkVDVElWRV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sbmFtZTppLGFyZ3VtZW50czpyLHJlcGVhdGFibGU6cyxsb2NhdGlvbnM6b30pfXBhcnNlRGlyZWN0aXZlTG9jYXRpb25zKCl7cmV0dXJuIHRoaXMuZGVsaW1pdGVkTWFueShsLlBJUEUsdGhpcy5wYXJzZURpcmVjdGl2ZUxvY2F0aW9uKX1wYXJzZURpcmVjdGl2ZUxvY2F0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VOYW1lKCk7aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEdlLG4udmFsdWUpKXJldHVybiBuO3Rocm93IHRoaXMudW5leHBlY3RlZCh0KX1ub2RlKHQsbil7cmV0dXJuIHRoaXMuX29wdGlvbnMubm9Mb2NhdGlvbiE9PSEwJiYobi5sb2M9bmV3IGxuKHQsdGhpcy5fbGV4ZXIubGFzdFRva2VuLHRoaXMuX2xleGVyLnNvdXJjZSkpLG59cGVlayh0KXtyZXR1cm4gdGhpcy5fbGV4ZXIudG9rZW4ua2luZD09PXR9ZXhwZWN0VG9rZW4odCl7Y29uc3Qgbj10aGlzLl9sZXhlci50b2tlbjtpZihuLmtpbmQ9PT10KXJldHVybiB0aGlzLmFkdmFuY2VMZXhlcigpLG47dGhyb3cgRyh0aGlzLl9sZXhlci5zb3VyY2Usbi5zdGFydCxgRXhwZWN0ZWQgJHtrdCh0KX0sIGZvdW5kICR7a2Uobil9LmApfWV4cGVjdE9wdGlvbmFsVG9rZW4odCl7cmV0dXJuIHRoaXMuX2xleGVyLnRva2VuLmtpbmQ9PT10Pyh0aGlzLmFkdmFuY2VMZXhlcigpLCEwKTohMX1leHBlY3RLZXl3b3JkKHQpe2NvbnN0IG49dGhpcy5fbGV4ZXIudG9rZW47aWYobi5raW5kPT09bC5OQU1FJiZuLnZhbHVlPT09dCl0aGlzLmFkdmFuY2VMZXhlcigpO2Vsc2UgdGhyb3cgRyh0aGlzLl9sZXhlci5zb3VyY2Usbi5zdGFydCxgRXhwZWN0ZWQgIiR7dH0iLCBmb3VuZCAke2tlKG4pfS5gKX1leHBlY3RPcHRpb25hbEtleXdvcmQodCl7Y29uc3Qgbj10aGlzLl9sZXhlci50b2tlbjtyZXR1cm4gbi5raW5kPT09bC5OQU1FJiZuLnZhbHVlPT09dD8odGhpcy5hZHZhbmNlTGV4ZXIoKSwhMCk6ITF9dW5leHBlY3RlZCh0KXtjb25zdCBuPXQhPW51bGw/dDp0aGlzLl9sZXhlci50b2tlbjtyZXR1cm4gRyh0aGlzLl9sZXhlci5zb3VyY2Usbi5zdGFydCxgVW5leHBlY3RlZCAke2tlKG4pfS5gKX1hbnkodCxuLGkpe3RoaXMuZXhwZWN0VG9rZW4odCk7Y29uc3Qgcj1bXTtmb3IoOyF0aGlzLmV4cGVjdE9wdGlvbmFsVG9rZW4oaSk7KXIucHVzaChuLmNhbGwodGhpcykpO3JldHVybiByfW9wdGlvbmFsTWFueSh0LG4saSl7aWYodGhpcy5leHBlY3RPcHRpb25hbFRva2VuKHQpKXtjb25zdCByPVtdO2RvIHIucHVzaChuLmNhbGwodGhpcykpO3doaWxlKCF0aGlzLmV4cGVjdE9wdGlvbmFsVG9rZW4oaSkpO3JldHVybiByfXJldHVybltdfW1hbnkodCxuLGkpe3RoaXMuZXhwZWN0VG9rZW4odCk7Y29uc3Qgcj1bXTtkbyByLnB1c2gobi5jYWxsKHRoaXMpKTt3aGlsZSghdGhpcy5leHBlY3RPcHRpb25hbFRva2VuKGkpKTtyZXR1cm4gcn1kZWxpbWl0ZWRNYW55KHQsbil7dGhpcy5leHBlY3RPcHRpb25hbFRva2VuKHQpO2NvbnN0IGk9W107ZG8gaS5wdXNoKG4uY2FsbCh0aGlzKSk7d2hpbGUodGhpcy5leHBlY3RPcHRpb25hbFRva2VuKHQpKTtyZXR1cm4gaX1hZHZhbmNlTGV4ZXIoKXtjb25zdHttYXhUb2tlbnM6dH09dGhpcy5fb3B0aW9ucyxuPXRoaXMuX2xleGVyLmFkdmFuY2UoKTtpZihuLmtpbmQhPT1sLkVPRiYmKCsrdGhpcy5fdG9rZW5Db3VudGVyLHQhPT12b2lkIDAmJnRoaXMuX3Rva2VuQ291bnRlcj50KSl0aHJvdyBHKHRoaXMuX2xleGVyLnNvdXJjZSxuLnN0YXJ0LGBEb2N1bWVudCBjb250YWlucyBtb3JlIHRoYXQgJHt0fSB0b2tlbnMuIFBhcnNpbmcgYWJvcnRlZC5gKX19ZnVuY3Rpb24ga2UoZSl7Y29uc3QgdD1lLnZhbHVlO3JldHVybiBrdChlLmtpbmQpKyh0IT1udWxsP2AgIiR7dH0iYDoiIil9ZnVuY3Rpb24ga3QoZSl7cmV0dXJuIGduKGUpP2AiJHtlfSJgOmV9ZnVuY3Rpb24gRm4oZSl7cmV0dXJuYCIke2UucmVwbGFjZShNbixCbil9ImB9Y29uc3QgTW49L1tceDAwLVx4MWZceDIyXHg1Y1x4N2YtXHg5Zl0vZztmdW5jdGlvbiBCbihlKXtyZXR1cm4gJG5bZS5jaGFyQ29kZUF0KDApXX1jb25zdCAkbj1bIlxcdTAwMDAiLCJcXHUwMDAxIiwiXFx1MDAwMiIsIlxcdTAwMDMiLCJcXHUwMDA0IiwiXFx1MDAwNSIsIlxcdTAwMDYiLCJcXHUwMDA3IiwiXFxiIiwiXFx0IiwiXFxuIiwiXFx1MDAwQiIsIlxcZiIsIlxcciIsIlxcdTAwMEUiLCJcXHUwMDBGIiwiXFx1MDAxMCIsIlxcdTAwMTEiLCJcXHUwMDEyIiwiXFx1MDAxMyIsIlxcdTAwMTQiLCJcXHUwMDE1IiwiXFx1MDAxNiIsIlxcdTAwMTciLCJcXHUwMDE4IiwiXFx1MDAxOSIsIlxcdTAwMUEiLCJcXHUwMDFCIiwiXFx1MDAxQyIsIlxcdTAwMUQiLCJcXHUwMDFFIiwiXFx1MDAxRiIsIiIsIiIsJ1xcIicsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIlxcXFwiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJcXHUwMDdGIiwiXFx1MDA4MCIsIlxcdTAwODEiLCJcXHUwMDgyIiwiXFx1MDA4MyIsIlxcdTAwODQiLCJcXHUwMDg1IiwiXFx1MDA4NiIsIlxcdTAwODciLCJcXHUwMDg4IiwiXFx1MDA4OSIsIlxcdTAwOEEiLCJcXHUwMDhCIiwiXFx1MDA4QyIsIlxcdTAwOEQiLCJcXHUwMDhFIiwiXFx1MDA4RiIsIlxcdTAwOTAiLCJcXHUwMDkxIiwiXFx1MDA5MiIsIlxcdTAwOTMiLCJcXHUwMDk0IiwiXFx1MDA5NSIsIlxcdTAwOTYiLCJcXHUwMDk3IiwiXFx1MDA5OCIsIlxcdTAwOTkiLCJcXHUwMDlBIiwiXFx1MDA5QiIsIlxcdTAwOUMiLCJcXHUwMDlEIiwiXFx1MDA5RSIsIlxcdTAwOUYiXSxVbj1PYmplY3QuZnJlZXplKHt9KTtmdW5jdGlvbiBWbihlLHQsbj1idCl7Y29uc3QgaT1uZXcgTWFwO2Zvcihjb25zdCBMIG9mIE9iamVjdC52YWx1ZXMoYikpaS5zZXQoTCxxbih0LEwpKTtsZXQgcixzPUFycmF5LmlzQXJyYXkoZSksbz1bZV0sYz0tMSxoPVtdLGQ9ZSx1LHk7Y29uc3Qgdj1bXSxUPVtdO2Rve2MrKztjb25zdCBMPWM9PT1vLmxlbmd0aCxxPUwmJmgubGVuZ3RoIT09MDtpZihMKXtpZih1PVQubGVuZ3RoPT09MD92b2lkIDA6dlt2Lmxlbmd0aC0xXSxkPXkseT1ULnBvcCgpLHEpaWYocyl7ZD1kLnNsaWNlKCk7bGV0IEU9MDtmb3IoY29uc3RbdyxrXW9mIGgpe2NvbnN0IFA9dy1FO2s9PT1udWxsPyhkLnNwbGljZShQLDEpLEUrKyk6ZFtQXT1rfX1lbHNle2Q9RCh7fSxkKTtmb3IoY29uc3RbRSx3XW9mIGgpZFtFXT13fWM9ci5pbmRleCxvPXIua2V5cyxoPXIuZWRpdHMscz1yLmluQXJyYXkscj1yLnByZXZ9ZWxzZSBpZih5KXtpZih1PXM/YzpvW2NdLGQ9eVt1XSxkPT1udWxsKWNvbnRpbnVlO3YucHVzaCh1KX1sZXQgZztpZighQXJyYXkuaXNBcnJheShkKSl7dmFyIG0sTjtUdChkKXx8bGUoITEsYEludmFsaWQgQVNUIE5vZGU6ICR7WWUoZCl9LmApO2NvbnN0IEU9TD8obT1pLmdldChkLmtpbmQpKT09PW51bGx8fG09PT12b2lkIDA/dm9pZCAwOm0ubGVhdmU6KE49aS5nZXQoZC5raW5kKSk9PT1udWxsfHxOPT09dm9pZCAwP3ZvaWQgMDpOLmVudGVyO2lmKGc9RT09bnVsbD92b2lkIDA6RS5jYWxsKHQsZCx1LHksdixUKSxnPT09VW4pYnJlYWs7aWYoZz09PSExKXtpZighTCl7di5wb3AoKTtjb250aW51ZX19ZWxzZSBpZihnIT09dm9pZCAwJiYoaC5wdXNoKFt1LGddKSwhTCkpaWYoVHQoZykpZD1nO2Vsc2V7di5wb3AoKTtjb250aW51ZX19aWYoZz09PXZvaWQgMCYmcSYmaC5wdXNoKFt1LGRdKSxMKXYucG9wKCk7ZWxzZXt2YXIgUjtyPXtpbkFycmF5OnMsaW5kZXg6YyxrZXlzOm8sZWRpdHM6aCxwcmV2OnJ9LHM9QXJyYXkuaXNBcnJheShkKSxvPXM/ZDooUj1uW2Qua2luZF0pIT09bnVsbCYmUiE9PXZvaWQgMD9SOltdLGM9LTEsaD1bXSx5JiZULnB1c2goeSkseT1kfX13aGlsZShyIT09dm9pZCAwKTtyZXR1cm4gaC5sZW5ndGghPT0wP2hbaC5sZW5ndGgtMV1bMV06ZX1mdW5jdGlvbiBxbihlLHQpe2NvbnN0IG49ZVt0XTtyZXR1cm4gdHlwZW9mIG49PSJvYmplY3QiP246dHlwZW9mIG49PSJmdW5jdGlvbiI/e2VudGVyOm4sbGVhdmU6dm9pZCAwfTp7ZW50ZXI6ZS5lbnRlcixsZWF2ZTplLmxlYXZlfX1mdW5jdGlvbiBqbihlKXtyZXR1cm4gVm4oZSx6bil9Y29uc3QgR249ODAsem49e05hbWU6e2xlYXZlOmU9PmUudmFsdWV9LFZhcmlhYmxlOntsZWF2ZTplPT4iJCIrZS5uYW1lfSxEb2N1bWVudDp7bGVhdmU6ZT0+cChlLmRlZmluaXRpb25zLGAKCmApfSxPcGVyYXRpb25EZWZpbml0aW9uOntsZWF2ZShlKXtjb25zdCB0PU8oIigiLHAoZS52YXJpYWJsZURlZmluaXRpb25zLCIsICIpLCIpIiksbj1wKFtlLm9wZXJhdGlvbixwKFtlLm5hbWUsdF0pLHAoZS5kaXJlY3RpdmVzLCIgIildLCIgIik7cmV0dXJuKG49PT0icXVlcnkiPyIiOm4rIiAiKStlLnNlbGVjdGlvblNldH19LFZhcmlhYmxlRGVmaW5pdGlvbjp7bGVhdmU6KHt2YXJpYWJsZTplLHR5cGU6dCxkZWZhdWx0VmFsdWU6bixkaXJlY3RpdmVzOml9KT0+ZSsiOiAiK3QrTygiID0gIixuKStPKCIgIixwKGksIiAiKSl9LFNlbGVjdGlvblNldDp7bGVhdmU6KHtzZWxlY3Rpb25zOmV9KT0+cmUoZSl9LEZpZWxkOntsZWF2ZSh7YWxpYXM6ZSxuYW1lOnQsYXJndW1lbnRzOm4sZGlyZWN0aXZlczppLHNlbGVjdGlvblNldDpyfSl7Y29uc3Qgcz1PKCIiLGUsIjogIikrdDtsZXQgbz1zK08oIigiLHAobiwiLCAiKSwiKSIpO3JldHVybiBvLmxlbmd0aD5HbiYmKG89cytPKGAoCmAsQ2UocChuLGAKYCkpLGAKKWApKSxwKFtvLHAoaSwiICIpLHJdLCIgIil9fSxBcmd1bWVudDp7bGVhdmU6KHtuYW1lOmUsdmFsdWU6dH0pPT5lKyI6ICIrdH0sRnJhZ21lbnRTcHJlYWQ6e2xlYXZlOih7bmFtZTplLGRpcmVjdGl2ZXM6dH0pPT4iLi4uIitlK08oIiAiLHAodCwiICIpKX0sSW5saW5lRnJhZ21lbnQ6e2xlYXZlOih7dHlwZUNvbmRpdGlvbjplLGRpcmVjdGl2ZXM6dCxzZWxlY3Rpb25TZXQ6bn0pPT5wKFsiLi4uIixPKCJvbiAiLGUpLHAodCwiICIpLG5dLCIgIil9LEZyYWdtZW50RGVmaW5pdGlvbjp7bGVhdmU6KHtuYW1lOmUsdHlwZUNvbmRpdGlvbjp0LHZhcmlhYmxlRGVmaW5pdGlvbnM6bixkaXJlY3RpdmVzOmksc2VsZWN0aW9uU2V0OnJ9KT0+YGZyYWdtZW50ICR7ZX0ke08oIigiLHAobiwiLCAiKSwiKSIpfSBvbiAke3R9ICR7TygiIixwKGksIiAiKSwiICIpfWArcn0sSW50VmFsdWU6e2xlYXZlOih7dmFsdWU6ZX0pPT5lfSxGbG9hdFZhbHVlOntsZWF2ZTooe3ZhbHVlOmV9KT0+ZX0sU3RyaW5nVmFsdWU6e2xlYXZlOih7dmFsdWU6ZSxibG9jazp0fSk9PnQ/bW4oZSk6Rm4oZSl9LEJvb2xlYW5WYWx1ZTp7bGVhdmU6KHt2YWx1ZTplfSk9PmU/InRydWUiOiJmYWxzZSJ9LE51bGxWYWx1ZTp7bGVhdmU6KCk9PiJudWxsIn0sRW51bVZhbHVlOntsZWF2ZTooe3ZhbHVlOmV9KT0+ZX0sTGlzdFZhbHVlOntsZWF2ZTooe3ZhbHVlczplfSk9PiJbIitwKGUsIiwgIikrIl0ifSxPYmplY3RWYWx1ZTp7bGVhdmU6KHtmaWVsZHM6ZX0pPT4ieyIrcChlLCIsICIpKyJ9In0sT2JqZWN0RmllbGQ6e2xlYXZlOih7bmFtZTplLHZhbHVlOnR9KT0+ZSsiOiAiK3R9LERpcmVjdGl2ZTp7bGVhdmU6KHtuYW1lOmUsYXJndW1lbnRzOnR9KT0+IkAiK2UrTygiKCIscCh0LCIsICIpLCIpIil9LE5hbWVkVHlwZTp7bGVhdmU6KHtuYW1lOmV9KT0+ZX0sTGlzdFR5cGU6e2xlYXZlOih7dHlwZTplfSk9PiJbIitlKyJdIn0sTm9uTnVsbFR5cGU6e2xlYXZlOih7dHlwZTplfSk9PmUrIiEifSxTY2hlbWFEZWZpbml0aW9uOntsZWF2ZTooe2Rlc2NyaXB0aW9uOmUsZGlyZWN0aXZlczp0LG9wZXJhdGlvblR5cGVzOm59KT0+TygiIixlLGAKYCkrcChbInNjaGVtYSIscCh0LCIgIikscmUobildLCIgIil9LE9wZXJhdGlvblR5cGVEZWZpbml0aW9uOntsZWF2ZTooe29wZXJhdGlvbjplLHR5cGU6dH0pPT5lKyI6ICIrdH0sU2NhbGFyVHlwZURlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsZGlyZWN0aXZlczpufSk9Pk8oIiIsZSxgCmApK3AoWyJzY2FsYXIiLHQscChuLCIgIildLCIgIil9LE9iamVjdFR5cGVEZWZpbml0aW9uOntsZWF2ZTooe2Rlc2NyaXB0aW9uOmUsbmFtZTp0LGludGVyZmFjZXM6bixkaXJlY3RpdmVzOmksZmllbGRzOnJ9KT0+TygiIixlLGAKYCkrcChbInR5cGUiLHQsTygiaW1wbGVtZW50cyAiLHAobiwiICYgIikpLHAoaSwiICIpLHJlKHIpXSwiICIpfSxGaWVsZERlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsYXJndW1lbnRzOm4sdHlwZTppLGRpcmVjdGl2ZXM6cn0pPT5PKCIiLGUsYApgKSt0KyhDdChuKT9PKGAoCmAsQ2UocChuLGAKYCkpLGAKKWApOk8oIigiLHAobiwiLCAiKSwiKSIpKSsiOiAiK2krTygiICIscChyLCIgIikpfSxJbnB1dFZhbHVlRGVmaW5pdGlvbjp7bGVhdmU6KHtkZXNjcmlwdGlvbjplLG5hbWU6dCx0eXBlOm4sZGVmYXVsdFZhbHVlOmksZGlyZWN0aXZlczpyfSk9Pk8oIiIsZSxgCmApK3AoW3QrIjogIituLE8oIj0gIixpKSxwKHIsIiAiKV0sIiAiKX0sSW50ZXJmYWNlVHlwZURlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsaW50ZXJmYWNlczpuLGRpcmVjdGl2ZXM6aSxmaWVsZHM6cn0pPT5PKCIiLGUsYApgKStwKFsiaW50ZXJmYWNlIix0LE8oImltcGxlbWVudHMgIixwKG4sIiAmICIpKSxwKGksIiAiKSxyZShyKV0sIiAiKX0sVW5pb25UeXBlRGVmaW5pdGlvbjp7bGVhdmU6KHtkZXNjcmlwdGlvbjplLG5hbWU6dCxkaXJlY3RpdmVzOm4sdHlwZXM6aX0pPT5PKCIiLGUsYApgKStwKFsidW5pb24iLHQscChuLCIgIiksTygiPSAiLHAoaSwiIHwgIikpXSwiICIpfSxFbnVtVHlwZURlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsZGlyZWN0aXZlczpuLHZhbHVlczppfSk9Pk8oIiIsZSxgCmApK3AoWyJlbnVtIix0LHAobiwiICIpLHJlKGkpXSwiICIpfSxFbnVtVmFsdWVEZWZpbml0aW9uOntsZWF2ZTooe2Rlc2NyaXB0aW9uOmUsbmFtZTp0LGRpcmVjdGl2ZXM6bn0pPT5PKCIiLGUsYApgKStwKFt0LHAobiwiICIpXSwiICIpfSxJbnB1dE9iamVjdFR5cGVEZWZpbml0aW9uOntsZWF2ZTooe2Rlc2NyaXB0aW9uOmUsbmFtZTp0LGRpcmVjdGl2ZXM6bixmaWVsZHM6aX0pPT5PKCIiLGUsYApgKStwKFsiaW5wdXQiLHQscChuLCIgIikscmUoaSldLCIgIil9LERpcmVjdGl2ZURlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsYXJndW1lbnRzOm4scmVwZWF0YWJsZTppLGxvY2F0aW9uczpyfSk9Pk8oIiIsZSxgCmApKyJkaXJlY3RpdmUgQCIrdCsoQ3Qobik/TyhgKApgLENlKHAobixgCmApKSxgCilgKTpPKCIoIixwKG4sIiwgIiksIikiKSkrKGk/IiByZXBlYXRhYmxlIjoiIikrIiBvbiAiK3AociwiIHwgIil9LFNjaGVtYUV4dGVuc2lvbjp7bGVhdmU6KHtkaXJlY3RpdmVzOmUsb3BlcmF0aW9uVHlwZXM6dH0pPT5wKFsiZXh0ZW5kIHNjaGVtYSIscChlLCIgIikscmUodCldLCIgIil9LFNjYWxhclR5cGVFeHRlbnNpb246e2xlYXZlOih7bmFtZTplLGRpcmVjdGl2ZXM6dH0pPT5wKFsiZXh0ZW5kIHNjYWxhciIsZSxwKHQsIiAiKV0sIiAiKX0sT2JqZWN0VHlwZUV4dGVuc2lvbjp7bGVhdmU6KHtuYW1lOmUsaW50ZXJmYWNlczp0LGRpcmVjdGl2ZXM6bixmaWVsZHM6aX0pPT5wKFsiZXh0ZW5kIHR5cGUiLGUsTygiaW1wbGVtZW50cyAiLHAodCwiICYgIikpLHAobiwiICIpLHJlKGkpXSwiICIpfSxJbnRlcmZhY2VUeXBlRXh0ZW5zaW9uOntsZWF2ZTooe25hbWU6ZSxpbnRlcmZhY2VzOnQsZGlyZWN0aXZlczpuLGZpZWxkczppfSk9PnAoWyJleHRlbmQgaW50ZXJmYWNlIixlLE8oImltcGxlbWVudHMgIixwKHQsIiAmICIpKSxwKG4sIiAiKSxyZShpKV0sIiAiKX0sVW5pb25UeXBlRXh0ZW5zaW9uOntsZWF2ZTooe25hbWU6ZSxkaXJlY3RpdmVzOnQsdHlwZXM6bn0pPT5wKFsiZXh0ZW5kIHVuaW9uIixlLHAodCwiICIpLE8oIj0gIixwKG4sIiB8ICIpKV0sIiAiKX0sRW51bVR5cGVFeHRlbnNpb246e2xlYXZlOih7bmFtZTplLGRpcmVjdGl2ZXM6dCx2YWx1ZXM6bn0pPT5wKFsiZXh0ZW5kIGVudW0iLGUscCh0LCIgIikscmUobildLCIgIil9LElucHV0T2JqZWN0VHlwZUV4dGVuc2lvbjp7bGVhdmU6KHtuYW1lOmUsZGlyZWN0aXZlczp0LGZpZWxkczpufSk9PnAoWyJleHRlbmQgaW5wdXQiLGUscCh0LCIgIikscmUobildLCIgIil9fTtmdW5jdGlvbiBwKGUsdD0iIil7dmFyIG47cmV0dXJuKG49ZT09bnVsbD92b2lkIDA6ZS5maWx0ZXIoaT0+aSkuam9pbih0KSkhPT1udWxsJiZuIT09dm9pZCAwP246IiJ9ZnVuY3Rpb24gcmUoZSl7cmV0dXJuIE8oYHsKYCxDZShwKGUsYApgKSksYAp9YCl9ZnVuY3Rpb24gTyhlLHQsbj0iIil7cmV0dXJuIHQhPW51bGwmJnQhPT0iIj9lK3QrbjoiIn1mdW5jdGlvbiBDZShlKXtyZXR1cm4gTygiICAiLGUucmVwbGFjZSgvXG4vZyxgCiAgYCkpfWZ1bmN0aW9uIEN0KGUpe3ZhciB0O3JldHVybih0PWU9PW51bGw/dm9pZCAwOmUuc29tZShuPT5uLmluY2x1ZGVzKGAKYCkpKSE9PW51bGwmJnQhPT12b2lkIDA/dDohMX1jb25zdCBSdD1lPT57dmFyIGkscjtsZXQgdDtjb25zdCBuPWUuZGVmaW5pdGlvbnMuZmlsdGVyKHM9PnMua2luZD09PSJPcGVyYXRpb25EZWZpbml0aW9uIik7cmV0dXJuIG4ubGVuZ3RoPT09MSYmKHQ9KHI9KGk9blswXSk9PW51bGw/dm9pZCAwOmkubmFtZSk9PW51bGw/dm9pZCAwOnIudmFsdWUpLHR9LEplPWU9PntpZih0eXBlb2YgZT09InN0cmluZyIpe2xldCBuO3RyeXtjb25zdCBpPUR0KGUpO249UnQoaSl9Y2F0Y2goaSl7fXJldHVybntxdWVyeTplLG9wZXJhdGlvbk5hbWU6bn19Y29uc3QgdD1SdChlKTtyZXR1cm57cXVlcnk6am4oZSksb3BlcmF0aW9uTmFtZTp0fX07Y2xhc3MgZGUgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3Rvcih0LG4pe2NvbnN0IGk9YCR7ZGUuZXh0cmFjdE1lc3NhZ2UodCl9OiAke0pTT04uc3RyaW5naWZ5KHtyZXNwb25zZTp0LHJlcXVlc3Q6bn0pfWA7c3VwZXIoaSksT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsZGUucHJvdG90eXBlKSx0aGlzLnJlc3BvbnNlPXQsdGhpcy5yZXF1ZXN0PW4sdHlwZW9mIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlPT0iZnVuY3Rpb24iJiZFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLGRlKX1zdGF0aWMgZXh0cmFjdE1lc3NhZ2UodCl7dmFyIG4saSxyO3JldHVybihyPShpPShuPXQuZXJyb3JzKT09bnVsbD92b2lkIDA6blswXSk9PW51bGw/dm9pZCAwOmkubWVzc2FnZSkhPW51bGw/cjpgR3JhcGhRTCBFcnJvciAoQ29kZTogJHt0LnN0YXR1c30pYH19dmFyIEhuPXR5cGVvZiBnbG9iYWxUaGlzIT0idW5kZWZpbmVkIj9nbG9iYWxUaGlzOnR5cGVvZiB3aW5kb3chPSJ1bmRlZmluZWQiP3dpbmRvdzp0eXBlb2YgZ2xvYmFsIT0idW5kZWZpbmVkIj9nbG9iYWw6dHlwZW9mIHNlbGYhPSJ1bmRlZmluZWQiP3NlbGY6e307ZnVuY3Rpb24gTHQoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsImRlZmF1bHQiKT9lLmRlZmF1bHQ6ZX12YXIgUWU9e2V4cG9ydHM6e319OyhmdW5jdGlvbihlLHQpe3ZhciBuPXR5cGVvZiBzZWxmIT0idW5kZWZpbmVkIj9zZWxmOkhuLGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBzKCl7dGhpcy5mZXRjaD0hMSx0aGlzLkRPTUV4Y2VwdGlvbj1uLkRPTUV4Y2VwdGlvbn1yZXR1cm4gcy5wcm90b3R5cGU9bixuZXcgc30oKTsoZnVuY3Rpb24ocyl7KGZ1bmN0aW9uKG8pe3ZhciBjPXtzZWFyY2hQYXJhbXM6IlVSTFNlYXJjaFBhcmFtcyJpbiBzLGl0ZXJhYmxlOiJTeW1ib2wiaW4gcyYmIml0ZXJhdG9yImluIFN5bWJvbCxibG9iOiJGaWxlUmVhZGVyImluIHMmJiJCbG9iImluIHMmJmZ1bmN0aW9uKCl7dHJ5e3JldHVybiBuZXcgQmxvYiwhMH1jYXRjaChhKXtyZXR1cm4hMX19KCksZm9ybURhdGE6IkZvcm1EYXRhImluIHMsYXJyYXlCdWZmZXI6IkFycmF5QnVmZmVyImluIHN9O2Z1bmN0aW9uIGgoYSl7cmV0dXJuIGEmJkRhdGFWaWV3LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGEpfWlmKGMuYXJyYXlCdWZmZXIpdmFyIGQ9WyJbb2JqZWN0IEludDhBcnJheV0iLCJbb2JqZWN0IFVpbnQ4QXJyYXldIiwiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iLCJbb2JqZWN0IEludDE2QXJyYXldIiwiW29iamVjdCBVaW50MTZBcnJheV0iLCJbb2JqZWN0IEludDMyQXJyYXldIiwiW29iamVjdCBVaW50MzJBcnJheV0iLCJbb2JqZWN0IEZsb2F0MzJBcnJheV0iLCJbb2JqZWN0IEZsb2F0NjRBcnJheV0iXSx1PUFycmF5QnVmZmVyLmlzVmlld3x8ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmQuaW5kZXhPZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSkpPi0xfTtmdW5jdGlvbiB5KGEpe2lmKHR5cGVvZiBhIT0ic3RyaW5nIiYmKGE9U3RyaW5nKGEpKSwvW15hLXowLTlcLSMkJSYnKisuXl9gfH5dL2kudGVzdChhKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGNoYXJhY3RlciBpbiBoZWFkZXIgZmllbGQgbmFtZSIpO3JldHVybiBhLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gdihhKXtyZXR1cm4gdHlwZW9mIGEhPSJzdHJpbmciJiYoYT1TdHJpbmcoYSkpLGF9ZnVuY3Rpb24gVChhKXt2YXIgZj17bmV4dDpmdW5jdGlvbigpe3ZhciBfPWEuc2hpZnQoKTtyZXR1cm57ZG9uZTpfPT09dm9pZCAwLHZhbHVlOl99fX07cmV0dXJuIGMuaXRlcmFibGUmJihmW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gZn0pLGZ9ZnVuY3Rpb24gbShhKXt0aGlzLm1hcD17fSxhIGluc3RhbmNlb2YgbT9hLmZvckVhY2goZnVuY3Rpb24oZixfKXt0aGlzLmFwcGVuZChfLGYpfSx0aGlzKTpBcnJheS5pc0FycmF5KGEpP2EuZm9yRWFjaChmdW5jdGlvbihmKXt0aGlzLmFwcGVuZChmWzBdLGZbMV0pfSx0aGlzKTphJiZPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhhKS5mb3JFYWNoKGZ1bmN0aW9uKGYpe3RoaXMuYXBwZW5kKGYsYVtmXSl9LHRoaXMpfW0ucHJvdG90eXBlLmFwcGVuZD1mdW5jdGlvbihhLGYpe2E9eShhKSxmPXYoZik7dmFyIF89dGhpcy5tYXBbYV07dGhpcy5tYXBbYV09Xz9fKyIsICIrZjpmfSxtLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oYSl7ZGVsZXRlIHRoaXMubWFwW3koYSldfSxtLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9eShhKSx0aGlzLmhhcyhhKT90aGlzLm1hcFthXTpudWxsfSxtLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubWFwLmhhc093blByb3BlcnR5KHkoYSkpfSxtLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxmKXt0aGlzLm1hcFt5KGEpXT12KGYpfSxtLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGEsZil7Zm9yKHZhciBfIGluIHRoaXMubWFwKXRoaXMubWFwLmhhc093blByb3BlcnR5KF8pJiZhLmNhbGwoZix0aGlzLm1hcFtfXSxfLHRoaXMpfSxtLnByb3RvdHlwZS5rZXlzPWZ1bmN0aW9uKCl7dmFyIGE9W107cmV0dXJuIHRoaXMuZm9yRWFjaChmdW5jdGlvbihmLF8pe2EucHVzaChfKX0pLFQoYSl9LG0ucHJvdG90eXBlLnZhbHVlcz1mdW5jdGlvbigpe3ZhciBhPVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24oZil7YS5wdXNoKGYpfSksVChhKX0sbS5wcm90b3R5cGUuZW50cmllcz1mdW5jdGlvbigpe3ZhciBhPVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24oZixfKXthLnB1c2goW18sZl0pfSksVChhKX0sYy5pdGVyYWJsZSYmKG0ucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl09bS5wcm90b3R5cGUuZW50cmllcyk7ZnVuY3Rpb24gTihhKXtpZihhLmJvZHlVc2VkKXJldHVybiBQcm9taXNlLnJlamVjdChuZXcgVHlwZUVycm9yKCJBbHJlYWR5IHJlYWQiKSk7YS5ib2R5VXNlZD0hMH1mdW5jdGlvbiBSKGEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihmLF8pe2Eub25sb2FkPWZ1bmN0aW9uKCl7ZihhLnJlc3VsdCl9LGEub25lcnJvcj1mdW5jdGlvbigpe18oYS5lcnJvcil9fSl9ZnVuY3Rpb24gTChhKXt2YXIgZj1uZXcgRmlsZVJlYWRlcixfPVIoZik7cmV0dXJuIGYucmVhZEFzQXJyYXlCdWZmZXIoYSksX31mdW5jdGlvbiBxKGEpe3ZhciBmPW5ldyBGaWxlUmVhZGVyLF89UihmKTtyZXR1cm4gZi5yZWFkQXNUZXh0KGEpLF99ZnVuY3Rpb24gZyhhKXtmb3IodmFyIGY9bmV3IFVpbnQ4QXJyYXkoYSksXz1uZXcgQXJyYXkoZi5sZW5ndGgpLFM9MDtTPGYubGVuZ3RoO1MrKylfW1NdPVN0cmluZy5mcm9tQ2hhckNvZGUoZltTXSk7cmV0dXJuIF8uam9pbigiIil9ZnVuY3Rpb24gRShhKXtpZihhLnNsaWNlKXJldHVybiBhLnNsaWNlKDApO3ZhciBmPW5ldyBVaW50OEFycmF5KGEuYnl0ZUxlbmd0aCk7cmV0dXJuIGYuc2V0KG5ldyBVaW50OEFycmF5KGEpKSxmLmJ1ZmZlcn1mdW5jdGlvbiB3KCl7cmV0dXJuIHRoaXMuYm9keVVzZWQ9ITEsdGhpcy5faW5pdEJvZHk9ZnVuY3Rpb24oYSl7dGhpcy5fYm9keUluaXQ9YSxhP3R5cGVvZiBhPT0ic3RyaW5nIj90aGlzLl9ib2R5VGV4dD1hOmMuYmxvYiYmQmxvYi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihhKT90aGlzLl9ib2R5QmxvYj1hOmMuZm9ybURhdGEmJkZvcm1EYXRhLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGEpP3RoaXMuX2JvZHlGb3JtRGF0YT1hOmMuc2VhcmNoUGFyYW1zJiZVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoYSk/dGhpcy5fYm9keVRleHQ9YS50b1N0cmluZygpOmMuYXJyYXlCdWZmZXImJmMuYmxvYiYmaChhKT8odGhpcy5fYm9keUFycmF5QnVmZmVyPUUoYS5idWZmZXIpLHRoaXMuX2JvZHlJbml0PW5ldyBCbG9iKFt0aGlzLl9ib2R5QXJyYXlCdWZmZXJdKSk6Yy5hcnJheUJ1ZmZlciYmKEFycmF5QnVmZmVyLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGEpfHx1KGEpKT90aGlzLl9ib2R5QXJyYXlCdWZmZXI9RShhKTp0aGlzLl9ib2R5VGV4dD1hPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKTp0aGlzLl9ib2R5VGV4dD0iIix0aGlzLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKXx8KHR5cGVvZiBhPT0ic3RyaW5nIj90aGlzLmhlYWRlcnMuc2V0KCJjb250ZW50LXR5cGUiLCJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgiKTp0aGlzLl9ib2R5QmxvYiYmdGhpcy5fYm9keUJsb2IudHlwZT90aGlzLmhlYWRlcnMuc2V0KCJjb250ZW50LXR5cGUiLHRoaXMuX2JvZHlCbG9iLnR5cGUpOmMuc2VhcmNoUGFyYW1zJiZVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoYSkmJnRoaXMuaGVhZGVycy5zZXQoImNvbnRlbnQtdHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04IikpfSxjLmJsb2ImJih0aGlzLmJsb2I9ZnVuY3Rpb24oKXt2YXIgYT1OKHRoaXMpO2lmKGEpcmV0dXJuIGE7aWYodGhpcy5fYm9keUJsb2IpcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5QmxvYik7aWYodGhpcy5fYm9keUFycmF5QnVmZmVyKXJldHVybiBQcm9taXNlLnJlc29sdmUobmV3IEJsb2IoW3RoaXMuX2JvZHlBcnJheUJ1ZmZlcl0pKTtpZih0aGlzLl9ib2R5Rm9ybURhdGEpdGhyb3cgbmV3IEVycm9yKCJjb3VsZCBub3QgcmVhZCBGb3JtRGF0YSBib2R5IGFzIGJsb2IiKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBCbG9iKFt0aGlzLl9ib2R5VGV4dF0pKX0sdGhpcy5hcnJheUJ1ZmZlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9ib2R5QXJyYXlCdWZmZXI/Tih0aGlzKXx8UHJvbWlzZS5yZXNvbHZlKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcik6dGhpcy5ibG9iKCkudGhlbihMKX0pLHRoaXMudGV4dD1mdW5jdGlvbigpe3ZhciBhPU4odGhpcyk7aWYoYSlyZXR1cm4gYTtpZih0aGlzLl9ib2R5QmxvYilyZXR1cm4gcSh0aGlzLl9ib2R5QmxvYik7aWYodGhpcy5fYm9keUFycmF5QnVmZmVyKXJldHVybiBQcm9taXNlLnJlc29sdmUoZyh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpKTtpZih0aGlzLl9ib2R5Rm9ybURhdGEpdGhyb3cgbmV3IEVycm9yKCJjb3VsZCBub3QgcmVhZCBGb3JtRGF0YSBib2R5IGFzIHRleHQiKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2JvZHlUZXh0KX0sYy5mb3JtRGF0YSYmKHRoaXMuZm9ybURhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50ZXh0KCkudGhlbih4KX0pLHRoaXMuanNvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRleHQoKS50aGVuKEpTT04ucGFyc2UpfSx0aGlzfXZhciBrPVsiREVMRVRFIiwiR0VUIiwiSEVBRCIsIk9QVElPTlMiLCJQT1NUIiwiUFVUIl07ZnVuY3Rpb24gUChhKXt2YXIgZj1hLnRvVXBwZXJDYXNlKCk7cmV0dXJuIGsuaW5kZXhPZihmKT4tMT9mOmF9ZnVuY3Rpb24gSShhLGYpe2Y9Znx8e307dmFyIF89Zi5ib2R5O2lmKGEgaW5zdGFuY2VvZiBJKXtpZihhLmJvZHlVc2VkKXRocm93IG5ldyBUeXBlRXJyb3IoIkFscmVhZHkgcmVhZCIpO3RoaXMudXJsPWEudXJsLHRoaXMuY3JlZGVudGlhbHM9YS5jcmVkZW50aWFscyxmLmhlYWRlcnN8fCh0aGlzLmhlYWRlcnM9bmV3IG0oYS5oZWFkZXJzKSksdGhpcy5tZXRob2Q9YS5tZXRob2QsdGhpcy5tb2RlPWEubW9kZSx0aGlzLnNpZ25hbD1hLnNpZ25hbCwhXyYmYS5fYm9keUluaXQhPW51bGwmJihfPWEuX2JvZHlJbml0LGEuYm9keVVzZWQ9ITApfWVsc2UgdGhpcy51cmw9U3RyaW5nKGEpO2lmKHRoaXMuY3JlZGVudGlhbHM9Zi5jcmVkZW50aWFsc3x8dGhpcy5jcmVkZW50aWFsc3x8InNhbWUtb3JpZ2luIiwoZi5oZWFkZXJzfHwhdGhpcy5oZWFkZXJzKSYmKHRoaXMuaGVhZGVycz1uZXcgbShmLmhlYWRlcnMpKSx0aGlzLm1ldGhvZD1QKGYubWV0aG9kfHx0aGlzLm1ldGhvZHx8IkdFVCIpLHRoaXMubW9kZT1mLm1vZGV8fHRoaXMubW9kZXx8bnVsbCx0aGlzLnNpZ25hbD1mLnNpZ25hbHx8dGhpcy5zaWduYWwsdGhpcy5yZWZlcnJlcj1udWxsLCh0aGlzLm1ldGhvZD09PSJHRVQifHx0aGlzLm1ldGhvZD09PSJIRUFEIikmJl8pdGhyb3cgbmV3IFR5cGVFcnJvcigiQm9keSBub3QgYWxsb3dlZCBmb3IgR0VUIG9yIEhFQUQgcmVxdWVzdHMiKTt0aGlzLl9pbml0Qm9keShfKX1JLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgSSh0aGlzLHtib2R5OnRoaXMuX2JvZHlJbml0fSl9O2Z1bmN0aW9uIHgoYSl7dmFyIGY9bmV3IEZvcm1EYXRhO3JldHVybiBhLnRyaW0oKS5zcGxpdCgiJiIpLmZvckVhY2goZnVuY3Rpb24oXyl7aWYoXyl7dmFyIFM9Xy5zcGxpdCgiPSIpLEM9Uy5zaGlmdCgpLnJlcGxhY2UoL1wrL2csIiAiKSxBPVMuam9pbigiPSIpLnJlcGxhY2UoL1wrL2csIiAiKTtmLmFwcGVuZChkZWNvZGVVUklDb21wb25lbnQoQyksZGVjb2RlVVJJQ29tcG9uZW50KEEpKX19KSxmfWZ1bmN0aW9uIHooYSl7dmFyIGY9bmV3IG0sXz1hLnJlcGxhY2UoL1xyP1xuW1x0IF0rL2csIiAiKTtyZXR1cm4gXy5zcGxpdCgvXHI/XG4vKS5mb3JFYWNoKGZ1bmN0aW9uKFMpe3ZhciBDPVMuc3BsaXQoIjoiKSxBPUMuc2hpZnQoKS50cmltKCk7aWYoQSl7dmFyIEs9Qy5qb2luKCI6IikudHJpbSgpO2YuYXBwZW5kKEEsSyl9fSksZn13LmNhbGwoSS5wcm90b3R5cGUpO2Z1bmN0aW9uIFYoYSxmKXtmfHwoZj17fSksdGhpcy50eXBlPSJkZWZhdWx0Iix0aGlzLnN0YXR1cz1mLnN0YXR1cz09PXZvaWQgMD8yMDA6Zi5zdGF0dXMsdGhpcy5vaz10aGlzLnN0YXR1cz49MjAwJiZ0aGlzLnN0YXR1czwzMDAsdGhpcy5zdGF0dXNUZXh0PSJzdGF0dXNUZXh0ImluIGY/Zi5zdGF0dXNUZXh0OiJPSyIsdGhpcy5oZWFkZXJzPW5ldyBtKGYuaGVhZGVycyksdGhpcy51cmw9Zi51cmx8fCIiLHRoaXMuX2luaXRCb2R5KGEpfXcuY2FsbChWLnByb3RvdHlwZSksVi5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFYodGhpcy5fYm9keUluaXQse3N0YXR1czp0aGlzLnN0YXR1cyxzdGF0dXNUZXh0OnRoaXMuc3RhdHVzVGV4dCxoZWFkZXJzOm5ldyBtKHRoaXMuaGVhZGVycyksdXJsOnRoaXMudXJsfSl9LFYuZXJyb3I9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgVihudWxsLHtzdGF0dXM6MCxzdGF0dXNUZXh0OiIifSk7cmV0dXJuIGEudHlwZT0iZXJyb3IiLGF9O3ZhciBIPVszMDEsMzAyLDMwMywzMDcsMzA4XTtWLnJlZGlyZWN0PWZ1bmN0aW9uKGEsZil7aWYoSC5pbmRleE9mKGYpPT09LTEpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgc3RhdHVzIGNvZGUiKTtyZXR1cm4gbmV3IFYobnVsbCx7c3RhdHVzOmYsaGVhZGVyczp7bG9jYXRpb246YX19KX0sby5ET01FeGNlcHRpb249cy5ET01FeGNlcHRpb247dHJ5e25ldyBvLkRPTUV4Y2VwdGlvbn1jYXRjaChhKXtvLkRPTUV4Y2VwdGlvbj1mdW5jdGlvbihmLF8pe3RoaXMubWVzc2FnZT1mLHRoaXMubmFtZT1fO3ZhciBTPUVycm9yKGYpO3RoaXMuc3RhY2s9Uy5zdGFja30sby5ET01FeGNlcHRpb24ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKSxvLkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuY29uc3RydWN0b3I9by5ET01FeGNlcHRpb259ZnVuY3Rpb24gWChhLGYpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihfLFMpe3ZhciBDPW5ldyBJKGEsZik7aWYoQy5zaWduYWwmJkMuc2lnbmFsLmFib3J0ZWQpcmV0dXJuIFMobmV3IG8uRE9NRXhjZXB0aW9uKCJBYm9ydGVkIiwiQWJvcnRFcnJvciIpKTt2YXIgQT1uZXcgWE1MSHR0cFJlcXVlc3Q7ZnVuY3Rpb24gSygpe0EuYWJvcnQoKX1BLm9ubG9hZD1mdW5jdGlvbigpe3ZhciBqPXtzdGF0dXM6QS5zdGF0dXMsc3RhdHVzVGV4dDpBLnN0YXR1c1RleHQsaGVhZGVyczp6KEEuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCl8fCIiKX07ai51cmw9InJlc3BvbnNlVVJMImluIEE/QS5yZXNwb25zZVVSTDpqLmhlYWRlcnMuZ2V0KCJYLVJlcXVlc3QtVVJMIik7dmFyIFc9InJlc3BvbnNlImluIEE/QS5yZXNwb25zZTpBLnJlc3BvbnNlVGV4dDtfKG5ldyBWKFcsaikpfSxBLm9uZXJyb3I9ZnVuY3Rpb24oKXtTKG5ldyBUeXBlRXJyb3IoIk5ldHdvcmsgcmVxdWVzdCBmYWlsZWQiKSl9LEEub250aW1lb3V0PWZ1bmN0aW9uKCl7UyhuZXcgVHlwZUVycm9yKCJOZXR3b3JrIHJlcXVlc3QgZmFpbGVkIikpfSxBLm9uYWJvcnQ9ZnVuY3Rpb24oKXtTKG5ldyBvLkRPTUV4Y2VwdGlvbigiQWJvcnRlZCIsIkFib3J0RXJyb3IiKSl9LEEub3BlbihDLm1ldGhvZCxDLnVybCwhMCksQy5jcmVkZW50aWFscz09PSJpbmNsdWRlIj9BLndpdGhDcmVkZW50aWFscz0hMDpDLmNyZWRlbnRpYWxzPT09Im9taXQiJiYoQS53aXRoQ3JlZGVudGlhbHM9ITEpLCJyZXNwb25zZVR5cGUiaW4gQSYmYy5ibG9iJiYoQS5yZXNwb25zZVR5cGU9ImJsb2IiKSxDLmhlYWRlcnMuZm9yRWFjaChmdW5jdGlvbihqLFcpe0Euc2V0UmVxdWVzdEhlYWRlcihXLGopfSksQy5zaWduYWwmJihDLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsSyksQS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtBLnJlYWR5U3RhdGU9PT00JiZDLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsSyl9KSxBLnNlbmQodHlwZW9mIEMuX2JvZHlJbml0PT0idW5kZWZpbmVkIj9udWxsOkMuX2JvZHlJbml0KX0pfXJldHVybiBYLnBvbHlmaWxsPSEwLHMuZmV0Y2h8fChzLmZldGNoPVgscy5IZWFkZXJzPW0scy5SZXF1ZXN0PUkscy5SZXNwb25zZT1WKSxvLkhlYWRlcnM9bSxvLlJlcXVlc3Q9SSxvLlJlc3BvbnNlPVYsby5mZXRjaD1YLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxvfSkoe30pfSkoaSksaS5mZXRjaC5wb255ZmlsbD0hMCxkZWxldGUgaS5mZXRjaC5wb2x5ZmlsbDt2YXIgcj1pO3Q9ci5mZXRjaCx0LmRlZmF1bHQ9ci5mZXRjaCx0LmZldGNoPXIuZmV0Y2gsdC5IZWFkZXJzPXIuSGVhZGVycyx0LlJlcXVlc3Q9ci5SZXF1ZXN0LHQuUmVzcG9uc2U9ci5SZXNwb25zZSxlLmV4cG9ydHM9dH0pKFFlLFFlLmV4cG9ydHMpO3ZhciBYZT1RZS5leHBvcnRzLFJlPUx0KFhlKSxZbj1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxkZWZhdWx0OlJlfSk7Y29uc3QgcGU9ZT0+e2xldCB0PXt9O3JldHVybiBlJiYodHlwZW9mIEhlYWRlcnMhPSJ1bmRlZmluZWQiJiZlIGluc3RhbmNlb2YgSGVhZGVyc3x8WW4mJlhlLkhlYWRlcnMmJmUgaW5zdGFuY2VvZiBYZS5IZWFkZXJzP3Q9JChlKTpBcnJheS5pc0FycmF5KGUpP2UuZm9yRWFjaCgoW24saV0pPT57biYmaSE9PXZvaWQgMCYmKHRbbl09aSl9KTp0PWUpLHR9LFB0PWU9PmUucmVwbGFjZSgvKFtccyxdfCNbXlxuXHJdKykrL2csIiAiKS50cmltKCksSm49ZT0+e2lmKCFBcnJheS5pc0FycmF5KGUucXVlcnkpKXtjb25zdCBpPWUscj1bYHF1ZXJ5PSR7ZW5jb2RlVVJJQ29tcG9uZW50KFB0KGkucXVlcnkpKX1gXTtyZXR1cm4gZS52YXJpYWJsZXMmJnIucHVzaChgdmFyaWFibGVzPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGkuanNvblNlcmlhbGl6ZXIuc3RyaW5naWZ5KGkudmFyaWFibGVzKSl9YCksaS5vcGVyYXRpb25OYW1lJiZyLnB1c2goYG9wZXJhdGlvbk5hbWU9JHtlbmNvZGVVUklDb21wb25lbnQoaS5vcGVyYXRpb25OYW1lKX1gKSxyLmpvaW4oIiYiKX1pZih0eXBlb2YgZS52YXJpYWJsZXMhPSJ1bmRlZmluZWQiJiYhQXJyYXkuaXNBcnJheShlLnZhcmlhYmxlcykpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY3JlYXRlIHF1ZXJ5IHdpdGggZ2l2ZW4gdmFyaWFibGUgdHlwZSwgYXJyYXkgZXhwZWN0ZWQiKTtjb25zdCB0PWUsbj1lLnF1ZXJ5LnJlZHVjZSgoaSxyLHMpPT4oaS5wdXNoKHtxdWVyeTpQdChyKSx2YXJpYWJsZXM6dC52YXJpYWJsZXM/dC5qc29uU2VyaWFsaXplci5zdHJpbmdpZnkodC52YXJpYWJsZXNbc10pOnZvaWQgMH0pLGkpLFtdKTtyZXR1cm5gcXVlcnk9JHtlbmNvZGVVUklDb21wb25lbnQodC5qc29uU2VyaWFsaXplci5zdHJpbmdpZnkobikpfWB9LFFuPWU9PnQ9PkoodGhpcyxudWxsLGZ1bmN0aW9uKigpe3ZhciBOO2NvbnN0e3VybDpuLHF1ZXJ5OmksdmFyaWFibGVzOnIsb3BlcmF0aW9uTmFtZTpzLGZldGNoOm8sZmV0Y2hPcHRpb25zOmMsbWlkZGxld2FyZTpofT10LGQ9RCh7fSx0LmhlYWRlcnMpO2xldCB1PSIiLHk7ZT09PSJQT1NUIj8oeT1XbihpLHIscyxjLmpzb25TZXJpYWxpemVyKSx0eXBlb2YgeT09InN0cmluZyImJihkWyJDb250ZW50LVR5cGUiXT0iYXBwbGljYXRpb24vanNvbiIpKTp1PUpuKHtxdWVyeTppLHZhcmlhYmxlczpyLG9wZXJhdGlvbk5hbWU6cyxqc29uU2VyaWFsaXplcjooTj1jLmpzb25TZXJpYWxpemVyKSE9bnVsbD9OOkZ9KTtjb25zdCB2PUQoe21ldGhvZDplLGhlYWRlcnM6ZCxib2R5Onl9LGMpO2xldCBUPW4sbT12O2lmKGgpe2NvbnN0IFI9eWllbGQgUHJvbWlzZS5yZXNvbHZlKGgoVWUoRCh7fSx2KSx7dXJsOm4sb3BlcmF0aW9uTmFtZTpzLHZhcmlhYmxlczpyfSkpKSx7dXJsOnF9PVIsZz12ZShSLFsidXJsIl0pO1Q9cSxtPWd9cmV0dXJuIHUmJihUPWAke1R9PyR7dX1gKSx5aWVsZCBvKFQsbSl9KTtjbGFzcyBYbntjb25zdHJ1Y3Rvcih0LG49e30pe3RoaXMudXJsPXQsdGhpcy5yZXF1ZXN0Q29uZmlnPW4sdGhpcy5yYXdSZXF1ZXN0PSguLi5pKT0+Sih0aGlzLG51bGwsZnVuY3Rpb24qKCl7Y29uc3RbcixzLG9dPWksYz1PZShyLHMsbyksUj10aGlzLnJlcXVlc3RDb25maWcse2hlYWRlcnM6aCxmZXRjaDpkPVJlLG1ldGhvZDp1PSJQT1NUIixyZXF1ZXN0TWlkZGxld2FyZTp5LHJlc3BvbnNlTWlkZGxld2FyZTp2fT1SLFQ9dmUoUixbImhlYWRlcnMiLCJmZXRjaCIsIm1ldGhvZCIsInJlcXVlc3RNaWRkbGV3YXJlIiwicmVzcG9uc2VNaWRkbGV3YXJlIl0pLHt1cmw6bX09dGhpcztjLnNpZ25hbCE9PXZvaWQgMCYmKFQuc2lnbmFsPWMuc2lnbmFsKTtjb25zdHtvcGVyYXRpb25OYW1lOk59PUplKGMucXVlcnkpO3JldHVybiBXZSh7dXJsOm0scXVlcnk6Yy5xdWVyeSx2YXJpYWJsZXM6Yy52YXJpYWJsZXMsaGVhZGVyczpEKEQoe30scGUoWmUoaCkpKSxwZShjLnJlcXVlc3RIZWFkZXJzKSksb3BlcmF0aW9uTmFtZTpOLGZldGNoOmQsbWV0aG9kOnUsZmV0Y2hPcHRpb25zOlQsbWlkZGxld2FyZTp5fSkudGhlbihMPT4odiYmdihMKSxMKSkuY2F0Y2goTD0+e3Rocm93IHYmJnYoTCksTH0pfSl9cmVxdWVzdCh0LC4uLm4pe3JldHVybiBKKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtjb25zdFtpLHJdPW4scz1lZSh0LGksciksTj10aGlzLnJlcXVlc3RDb25maWcse2hlYWRlcnM6byxmZXRjaDpjPVJlLG1ldGhvZDpoPSJQT1NUIixyZXF1ZXN0TWlkZGxld2FyZTpkLHJlc3BvbnNlTWlkZGxld2FyZTp1fT1OLHk9dmUoTixbImhlYWRlcnMiLCJmZXRjaCIsIm1ldGhvZCIsInJlcXVlc3RNaWRkbGV3YXJlIiwicmVzcG9uc2VNaWRkbGV3YXJlIl0pLHt1cmw6dn09dGhpcztzLnNpZ25hbCE9PXZvaWQgMCYmKHkuc2lnbmFsPXMuc2lnbmFsKTtjb25zdHtxdWVyeTpULG9wZXJhdGlvbk5hbWU6bX09SmUocy5kb2N1bWVudCk7cmV0dXJuIFdlKHt1cmw6dixxdWVyeTpULHZhcmlhYmxlczpzLnZhcmlhYmxlcyxoZWFkZXJzOkQoRCh7fSxwZShaZShvKSkpLHBlKHMucmVxdWVzdEhlYWRlcnMpKSxvcGVyYXRpb25OYW1lOm0sZmV0Y2g6YyxtZXRob2Q6aCxmZXRjaE9wdGlvbnM6eSxtaWRkbGV3YXJlOmR9KS50aGVuKFI9Pih1JiZ1KFIpLFIuZGF0YSkpLmNhdGNoKFI9Pnt0aHJvdyB1JiZ1KFIpLFJ9KX0pfWJhdGNoUmVxdWVzdHModCxuKXt2YXIgZDtjb25zdCBpPVZlKHQsbiksaD10aGlzLnJlcXVlc3RDb25maWcse2hlYWRlcnM6cn09aCxzPXZlKGgsWyJoZWFkZXJzIl0pO2kuc2lnbmFsIT09dm9pZCAwJiYocy5zaWduYWw9aS5zaWduYWwpO2NvbnN0IG89aS5kb2N1bWVudHMubWFwKCh7ZG9jdW1lbnQ6dX0pPT5KZSh1KS5xdWVyeSksYz1pLmRvY3VtZW50cy5tYXAoKHt2YXJpYWJsZXM6dX0pPT51KTtyZXR1cm4gV2Uoe3VybDp0aGlzLnVybCxxdWVyeTpvLHZhcmlhYmxlczpjLGhlYWRlcnM6RChEKHt9LHBlKFplKHIpKSkscGUoaS5yZXF1ZXN0SGVhZGVycykpLG9wZXJhdGlvbk5hbWU6dm9pZCAwLGZldGNoOihkPXRoaXMucmVxdWVzdENvbmZpZy5mZXRjaCkhPW51bGw/ZDpSZSxtZXRob2Q6dGhpcy5yZXF1ZXN0Q29uZmlnLm1ldGhvZHx8IlBPU1QiLGZldGNoT3B0aW9uczpzLG1pZGRsZXdhcmU6dGhpcy5yZXF1ZXN0Q29uZmlnLnJlcXVlc3RNaWRkbGV3YXJlfSkudGhlbih1PT4odGhpcy5yZXF1ZXN0Q29uZmlnLnJlc3BvbnNlTWlkZGxld2FyZSYmdGhpcy5yZXF1ZXN0Q29uZmlnLnJlc3BvbnNlTWlkZGxld2FyZSh1KSx1LmRhdGEpKS5jYXRjaCh1PT57dGhyb3cgdGhpcy5yZXF1ZXN0Q29uZmlnLnJlc3BvbnNlTWlkZGxld2FyZSYmdGhpcy5yZXF1ZXN0Q29uZmlnLnJlc3BvbnNlTWlkZGxld2FyZSh1KSx1fSl9c2V0SGVhZGVycyh0KXtyZXR1cm4gdGhpcy5yZXF1ZXN0Q29uZmlnLmhlYWRlcnM9dCx0aGlzfXNldEhlYWRlcih0LG4pe2NvbnN0e2hlYWRlcnM6aX09dGhpcy5yZXF1ZXN0Q29uZmlnO3JldHVybiBpP2lbdF09bjp0aGlzLnJlcXVlc3RDb25maWcuaGVhZGVycz17W3RdOm59LHRoaXN9c2V0RW5kcG9pbnQodCl7cmV0dXJuIHRoaXMudXJsPXQsdGhpc319Y29uc3QgV2U9ZT0+Sih0aGlzLG51bGwsZnVuY3Rpb24qKCl7dmFyIHUseTtjb25zdHtxdWVyeTp0LHZhcmlhYmxlczpuLGZldGNoT3B0aW9uczppfT1lLHI9UW4oQigodT1lLm1ldGhvZCkhPW51bGw/dToicG9zdCIpKSxzPUFycmF5LmlzQXJyYXkoZS5xdWVyeSksbz15aWVsZCByKGUpLGM9eWllbGQgWm4obywoeT1pLmpzb25TZXJpYWxpemVyKSE9bnVsbD95OkYpLGg9QXJyYXkuaXNBcnJheShjKT8hYy5zb21lKCh7ZGF0YTpUfSk9PiFUKTohIWMuZGF0YSxkPUFycmF5LmlzQXJyYXkoYyl8fCFjLmVycm9yc3x8QXJyYXkuaXNBcnJheShjLmVycm9ycykmJiFjLmVycm9ycy5sZW5ndGh8fGkuZXJyb3JQb2xpY3k9PT0iYWxsInx8aS5lcnJvclBvbGljeT09PSJpZ25vcmUiO2lmKG8ub2smJmQmJmgpe2NvbnN0IHY9KEFycmF5LmlzQXJyYXkoYyksYykse2Vycm9yczpUfT12LG09dmUodixbImVycm9ycyJdKSxOPWkuZXJyb3JQb2xpY3k9PT0iaWdub3JlIj9tOmM7cmV0dXJuIFVlKEQoe30scz97ZGF0YTpOfTpOKSx7aGVhZGVyczpvLmhlYWRlcnMsc3RhdHVzOm8uc3RhdHVzfSl9ZWxzZXtjb25zdCBUPXR5cGVvZiBjPT0ic3RyaW5nIj97ZXJyb3I6Y306Yzt0aHJvdyBuZXcgZGUoVWUoRCh7fSxUKSx7c3RhdHVzOm8uc3RhdHVzLGhlYWRlcnM6by5oZWFkZXJzfSkse3F1ZXJ5OnQsdmFyaWFibGVzOm59KX19KSxXbj0oZSx0LG4saSk9Pntjb25zdCByPWkhPW51bGw/aTpGO2lmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybiByLnN0cmluZ2lmeSh7cXVlcnk6ZSx2YXJpYWJsZXM6dCxvcGVyYXRpb25OYW1lOm59KTtpZih0eXBlb2YgdCE9InVuZGVmaW5lZCImJiFBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGNyZWF0ZSByZXF1ZXN0IGJvZHkgd2l0aCBnaXZlbiB2YXJpYWJsZSB0eXBlLCBhcnJheSBleHBlY3RlZCIpO2NvbnN0IHM9ZS5yZWR1Y2UoKG8sYyxoKT0+KG8ucHVzaCh7cXVlcnk6Yyx2YXJpYWJsZXM6dD90W2hdOnZvaWQgMH0pLG8pLFtdKTtyZXR1cm4gci5zdHJpbmdpZnkocyl9LFpuPShlLHQpPT5KKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtsZXQgbjtyZXR1cm4gZS5oZWFkZXJzLmZvckVhY2goKGkscik9PntyLnRvTG93ZXJDYXNlKCk9PT0iY29udGVudC10eXBlIiYmKG49aSl9KSxuJiYobi50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoImFwcGxpY2F0aW9uL2pzb24iKXx8bi50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoImFwcGxpY2F0aW9uL2dyYXBocWwranNvbiIpfHxuLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aCgiYXBwbGljYXRpb24vZ3JhcGhxbC1yZXNwb25zZStqc29uIikpP3QucGFyc2UoeWllbGQgZS50ZXh0KCkpOmUudGV4dCgpfSksWmU9ZT0+dHlwZW9mIGU9PSJmdW5jdGlvbiI/ZSgpOmU7dmFyIEtlPXtleHBvcnRzOnt9fTsoZnVuY3Rpb24oZSx0KXt0PWUuZXhwb3J0cz1uLHQuZ2V0U2VyaWFsaXplPWk7ZnVuY3Rpb24gbihyLHMsbyxjKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkocixpKHMsYyksbyl9ZnVuY3Rpb24gaShyLHMpe3ZhciBvPVtdLGM9W107cmV0dXJuIHM9PW51bGwmJihzPWZ1bmN0aW9uKGgsZCl7cmV0dXJuIG9bMF09PT1kPyJbQ2lyY3VsYXIgfl0iOiJbQ2lyY3VsYXIgfi4iK2Muc2xpY2UoMCxvLmluZGV4T2YoZCkpLmpvaW4oIi4iKSsiXSJ9KSxmdW5jdGlvbihoLGQpe2lmKG8ubGVuZ3RoPjApe3ZhciB1PW8uaW5kZXhPZih0aGlzKTt+dT9vLnNwbGljZSh1KzEpOm8ucHVzaCh0aGlzKSx+dT9jLnNwbGljZSh1LDEvMCxoKTpjLnB1c2goaCksfm8uaW5kZXhPZihkKSYmKGQ9cy5jYWxsKHRoaXMsaCxkKSl9ZWxzZSBvLnB1c2goZCk7cmV0dXJuIHI9PW51bGw/ZDpyLmNhbGwodGhpcyxoLGQpfX19KShLZSxLZS5leHBvcnRzKTt2YXIgS249S2UuZXhwb3J0cyxtZT1MdChLbik7Y29uc3QgRnQ9MWUzKjE1O3ZhciBMZT1mdW5jdGlvbigpe3JldHVybiBMZT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIG4saT0xLHI9YXJndW1lbnRzLmxlbmd0aDtpPHI7aSsrKXtuPWFyZ3VtZW50c1tpXTtmb3IodmFyIHMgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixzKSYmKHRbc109bltzXSl9cmV0dXJuIHR9LExlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07dHlwZW9mIFN1cHByZXNzZWRFcnJvcj09ImZ1bmN0aW9uIiYmU3VwcHJlc3NlZEVycm9yO3ZhciBQZT1uZXcgTWFwLGV0PW5ldyBNYXAsTXQ9ITAsRmU9ITE7ZnVuY3Rpb24gQnQoZSl7cmV0dXJuIGUucmVwbGFjZSgvW1xzLF0rL2csIiAiKS50cmltKCl9ZnVuY3Rpb24gZXIoZSl7cmV0dXJuIEJ0KGUuc291cmNlLmJvZHkuc3Vic3RyaW5nKGUuc3RhcnQsZS5lbmQpKX1mdW5jdGlvbiB0cihlKXt2YXIgdD1uZXcgU2V0LG49W107cmV0dXJuIGUuZGVmaW5pdGlvbnMuZm9yRWFjaChmdW5jdGlvbihpKXtpZihpLmtpbmQ9PT0iRnJhZ21lbnREZWZpbml0aW9uIil7dmFyIHI9aS5uYW1lLnZhbHVlLHM9ZXIoaS5sb2MpLG89ZXQuZ2V0KHIpO28mJiFvLmhhcyhzKT9NdCYmY29uc29sZS53YXJuKCJXYXJuaW5nOiBmcmFnbWVudCB3aXRoIG5hbWUgIityK2AgYWxyZWFkeSBleGlzdHMuCmdyYXBocWwtdGFnIGVuZm9yY2VzIGFsbCBmcmFnbWVudCBuYW1lcyBhY3Jvc3MgeW91ciBhcHBsaWNhdGlvbiB0byBiZSB1bmlxdWU7IHJlYWQgbW9yZSBhYm91dAp0aGlzIGluIHRoZSBkb2NzOiBodHRwOi8vZGV2LmFwb2xsb2RhdGEuY29tL2NvcmUvZnJhZ21lbnRzLmh0bWwjdW5pcXVlLW5hbWVzYCk6b3x8ZXQuc2V0KHIsbz1uZXcgU2V0KSxvLmFkZChzKSx0LmhhcyhzKXx8KHQuYWRkKHMpLG4ucHVzaChpKSl9ZWxzZSBuLnB1c2goaSl9KSxMZShMZSh7fSxlKSx7ZGVmaW5pdGlvbnM6bn0pfWZ1bmN0aW9uIG5yKGUpe3ZhciB0PW5ldyBTZXQoZS5kZWZpbml0aW9ucyk7dC5mb3JFYWNoKGZ1bmN0aW9uKGkpe2kubG9jJiZkZWxldGUgaS5sb2MsT2JqZWN0LmtleXMoaSkuZm9yRWFjaChmdW5jdGlvbihyKXt2YXIgcz1pW3JdO3MmJnR5cGVvZiBzPT0ib2JqZWN0IiYmdC5hZGQocyl9KX0pO3ZhciBuPWUubG9jO3JldHVybiBuJiYoZGVsZXRlIG4uc3RhcnRUb2tlbixkZWxldGUgbi5lbmRUb2tlbiksZX1mdW5jdGlvbiBycihlKXt2YXIgdD1CdChlKTtpZighUGUuaGFzKHQpKXt2YXIgbj1EdChlLHtleHBlcmltZW50YWxGcmFnbWVudFZhcmlhYmxlczpGZSxhbGxvd0xlZ2FjeUZyYWdtZW50VmFyaWFibGVzOkZlfSk7aWYoIW58fG4ua2luZCE9PSJEb2N1bWVudCIpdGhyb3cgbmV3IEVycm9yKCJOb3QgYSB2YWxpZCBHcmFwaFFMIGRvY3VtZW50LiIpO1BlLnNldCh0LG5yKHRyKG4pKSl9cmV0dXJuIFBlLmdldCh0KX1mdW5jdGlvbiBRKGUpe2Zvcih2YXIgdD1bXSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W24tMV09YXJndW1lbnRzW25dO3R5cGVvZiBlPT0ic3RyaW5nIiYmKGU9W2VdKTt2YXIgaT1lWzBdO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24ocixzKXtyJiZyLmtpbmQ9PT0iRG9jdW1lbnQiP2krPXIubG9jLnNvdXJjZS5ib2R5OmkrPXIsaSs9ZVtzKzFdfSkscnIoaSl9ZnVuY3Rpb24gaXIoKXtQZS5jbGVhcigpLGV0LmNsZWFyKCl9ZnVuY3Rpb24gc3IoKXtNdD0hMX1mdW5jdGlvbiBvcigpe0ZlPSEwfWZ1bmN0aW9uIGFyKCl7RmU9ITF9dmFyIE5lPXtncWw6USxyZXNldENhY2hlczppcixkaXNhYmxlRnJhZ21lbnRXYXJuaW5nczpzcixlbmFibGVFeHBlcmltZW50YWxGcmFnbWVudFZhcmlhYmxlczpvcixkaXNhYmxlRXhwZXJpbWVudGFsRnJhZ21lbnRWYXJpYWJsZXM6YXJ9OyhmdW5jdGlvbihlKXtlLmdxbD1OZS5ncWwsZS5yZXNldENhY2hlcz1OZS5yZXNldENhY2hlcyxlLmRpc2FibGVGcmFnbWVudFdhcm5pbmdzPU5lLmRpc2FibGVGcmFnbWVudFdhcm5pbmdzLGUuZW5hYmxlRXhwZXJpbWVudGFsRnJhZ21lbnRWYXJpYWJsZXM9TmUuZW5hYmxlRXhwZXJpbWVudGFsRnJhZ21lbnRWYXJpYWJsZXMsZS5kaXNhYmxlRXhwZXJpbWVudGFsRnJhZ21lbnRWYXJpYWJsZXM9TmUuZGlzYWJsZUV4cGVyaW1lbnRhbEZyYWdtZW50VmFyaWFibGVzfSkoUXx8KFE9e30pKSxRLmRlZmF1bHQ9UTtjb25zdCAkdD1RYAoJZnJhZ21lbnQgTWF0Y2hQYXJ0cyBvbiBNYXRjaENvbmZpZyB7CgkJcmVnZXhWYWx1ZQoJCW1hdGNoVmFsdWUKCX0KYCxjcj1RYAoJbXV0YXRpb24gUHVzaFBheWxvYWQoCgkJJHNlc3Npb25fc2VjdXJlX2lkOiBTdHJpbmchCgkJJHBheWxvYWRfaWQ6IElEIQoJCSRldmVudHM6IFJlcGxheUV2ZW50c0lucHV0IQoJCSRtZXNzYWdlczogU3RyaW5nIQoJCSRyZXNvdXJjZXM6IFN0cmluZyEKCQkkd2ViX3NvY2tldF9ldmVudHM6IFN0cmluZyEKCQkkZXJyb3JzOiBbRXJyb3JPYmplY3RJbnB1dF0hCgkJJGlzX2JlYWNvbjogQm9vbGVhbgoJCSRoYXNfc2Vzc2lvbl91bmxvYWRlZDogQm9vbGVhbgoJCSRoaWdobGlnaHRfbG9nczogU3RyaW5nCgkpIHsKCQlwdXNoUGF5bG9hZCgKCQkJc2Vzc2lvbl9zZWN1cmVfaWQ6ICRzZXNzaW9uX3NlY3VyZV9pZAoJCQlwYXlsb2FkX2lkOiAkcGF5bG9hZF9pZAoJCQlldmVudHM6ICRldmVudHMKCQkJbWVzc2FnZXM6ICRtZXNzYWdlcwoJCQlyZXNvdXJjZXM6ICRyZXNvdXJjZXMKCQkJd2ViX3NvY2tldF9ldmVudHM6ICR3ZWJfc29ja2V0X2V2ZW50cwoJCQllcnJvcnM6ICRlcnJvcnMKCQkJaXNfYmVhY29uOiAkaXNfYmVhY29uCgkJCWhhc19zZXNzaW9uX3VubG9hZGVkOiAkaGFzX3Nlc3Npb25fdW5sb2FkZWQKCQkJaGlnaGxpZ2h0X2xvZ3M6ICRoaWdobGlnaHRfbG9ncwoJCSkKCX0KYCx1cj1RYAoJbXV0YXRpb24gUHVzaFNlc3Npb25FdmVudHMoCgkJJHNlc3Npb25fc2VjdXJlX2lkOiBTdHJpbmchCgkJJHBheWxvYWRfaWQ6IEludDY0SUQhCgkJJGRhdGE6IFN0cmluZyEKCSkgewoJCXB1c2hTZXNzaW9uRXZlbnRzKAoJCQlzZXNzaW9uX3NlY3VyZV9pZDogJHNlc3Npb25fc2VjdXJlX2lkCgkJCXBheWxvYWRfaWQ6ICRwYXlsb2FkX2lkCgkJCWRhdGE6ICRkYXRhCgkJKQoJfQpgLGxyPVFgCgltdXRhdGlvbiBpZGVudGlmeVNlc3Npb24oCgkJJHNlc3Npb25fc2VjdXJlX2lkOiBTdHJpbmchCgkJJHVzZXJfaWRlbnRpZmllcjogU3RyaW5nIQoJCSR1c2VyX29iamVjdDogQW55CgkpIHsKCQlpZGVudGlmeVNlc3Npb24oCgkJCXNlc3Npb25fc2VjdXJlX2lkOiAkc2Vzc2lvbl9zZWN1cmVfaWQKCQkJdXNlcl9pZGVudGlmaWVyOiAkdXNlcl9pZGVudGlmaWVyCgkJCXVzZXJfb2JqZWN0OiAkdXNlcl9vYmplY3QKCQkpCgl9CmAsaHI9UWAKCW11dGF0aW9uIGFkZFNlc3Npb25Qcm9wZXJ0aWVzKAoJCSRzZXNzaW9uX3NlY3VyZV9pZDogU3RyaW5nIQoJCSRwcm9wZXJ0aWVzX29iamVjdDogQW55CgkpIHsKCQlhZGRTZXNzaW9uUHJvcGVydGllcygKCQkJc2Vzc2lvbl9zZWN1cmVfaWQ6ICRzZXNzaW9uX3NlY3VyZV9pZAoJCQlwcm9wZXJ0aWVzX29iamVjdDogJHByb3BlcnRpZXNfb2JqZWN0CgkJKQoJfQpgLGZyPVFgCgltdXRhdGlvbiBwdXNoTWV0cmljcygkbWV0cmljczogW01ldHJpY0lucHV0XSEpIHsKCQlwdXNoTWV0cmljcyhtZXRyaWNzOiAkbWV0cmljcykKCX0KYCxkcj1RYAoJbXV0YXRpb24gYWRkU2Vzc2lvbkZlZWRiYWNrKAoJCSRzZXNzaW9uX3NlY3VyZV9pZDogU3RyaW5nIQoJCSR1c2VyX25hbWU6IFN0cmluZwoJCSR1c2VyX2VtYWlsOiBTdHJpbmcKCQkkdmVyYmF0aW06IFN0cmluZyEKCQkkdGltZXN0YW1wOiBUaW1lc3RhbXAhCgkpIHsKCQlhZGRTZXNzaW9uRmVlZGJhY2soCgkJCXNlc3Npb25fc2VjdXJlX2lkOiAkc2Vzc2lvbl9zZWN1cmVfaWQKCQkJdXNlcl9uYW1lOiAkdXNlcl9uYW1lCgkJCXVzZXJfZW1haWw6ICR1c2VyX2VtYWlsCgkJCXZlcmJhdGltOiAkdmVyYmF0aW0KCQkJdGltZXN0YW1wOiAkdGltZXN0YW1wCgkJKQoJfQpgLHByPVFgCgltdXRhdGlvbiBpbml0aWFsaXplU2Vzc2lvbigKCQkkc2Vzc2lvbl9zZWN1cmVfaWQ6IFN0cmluZyEKCQkkc2Vzc2lvbl9rZXk6IFN0cmluZwoJCSRvcmdhbml6YXRpb25fdmVyYm9zZV9pZDogU3RyaW5nIQoJCSRlbmFibGVfc3RyaWN0X3ByaXZhY3k6IEJvb2xlYW4hCgkJJHByaXZhY3lfc2V0dGluZzogU3RyaW5nIQoJCSRlbmFibGVfcmVjb3JkaW5nX25ldHdvcmtfY29udGVudHM6IEJvb2xlYW4hCgkJJGNsaWVudFZlcnNpb246IFN0cmluZyEKCQkkZmlyc3Rsb2FkVmVyc2lvbjogU3RyaW5nIQoJCSRjbGllbnRDb25maWc6IFN0cmluZyEKCQkkZW52aXJvbm1lbnQ6IFN0cmluZyEKCQkkaWQ6IFN0cmluZyEKCQkkYXBwVmVyc2lvbjogU3RyaW5nCgkJJHNlcnZpY2VOYW1lOiBTdHJpbmchCgkJJGNsaWVudF9pZDogU3RyaW5nIQoJCSRuZXR3b3JrX3JlY29yZGluZ19kb21haW5zOiBbU3RyaW5nIV0KCQkkZGlzYWJsZV9zZXNzaW9uX3JlY29yZGluZzogQm9vbGVhbgoJKSB7CgkJaW5pdGlhbGl6ZVNlc3Npb24oCgkJCXNlc3Npb25fc2VjdXJlX2lkOiAkc2Vzc2lvbl9zZWN1cmVfaWQKCQkJc2Vzc2lvbl9rZXk6ICRzZXNzaW9uX2tleQoJCQlvcmdhbml6YXRpb25fdmVyYm9zZV9pZDogJG9yZ2FuaXphdGlvbl92ZXJib3NlX2lkCgkJCWVuYWJsZV9zdHJpY3RfcHJpdmFjeTogJGVuYWJsZV9zdHJpY3RfcHJpdmFjeQoJCQllbmFibGVfcmVjb3JkaW5nX25ldHdvcmtfY29udGVudHM6ICRlbmFibGVfcmVjb3JkaW5nX25ldHdvcmtfY29udGVudHMKCQkJY2xpZW50VmVyc2lvbjogJGNsaWVudFZlcnNpb24KCQkJZmlyc3Rsb2FkVmVyc2lvbjogJGZpcnN0bG9hZFZlcnNpb24KCQkJY2xpZW50Q29uZmlnOiAkY2xpZW50Q29uZmlnCgkJCWVudmlyb25tZW50OiAkZW52aXJvbm1lbnQKCQkJYXBwVmVyc2lvbjogJGFwcFZlcnNpb24KCQkJc2VydmljZU5hbWU6ICRzZXJ2aWNlTmFtZQoJCQlmaW5nZXJwcmludDogJGlkCgkJCWNsaWVudF9pZDogJGNsaWVudF9pZAoJCQluZXR3b3JrX3JlY29yZGluZ19kb21haW5zOiAkbmV0d29ya19yZWNvcmRpbmdfZG9tYWlucwoJCQlkaXNhYmxlX3Nlc3Npb25fcmVjb3JkaW5nOiAkZGlzYWJsZV9zZXNzaW9uX3JlY29yZGluZwoJCQlwcml2YWN5X3NldHRpbmc6ICRwcml2YWN5X3NldHRpbmcKCQkpIHsKCQkJc2VjdXJlX2lkCgkJCXByb2plY3RfaWQKCQkJc2FtcGxpbmcgewoJCQkJc3BhbnMgewoJCQkJCW5hbWUgewoJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJfQoJCQkJCWF0dHJpYnV0ZXMgewoJCQkJCQlrZXkgewoJCQkJCQkJLi4uTWF0Y2hQYXJ0cwoJCQkJCQl9CgkJCQkJCWF0dHJpYnV0ZSB7CgkJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJCX0KCQkJCQl9CgkJCQkJZXZlbnRzIHsKCQkJCQkJbmFtZSB7CgkJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJCX0KCQkJCQkJYXR0cmlidXRlcyB7CgkJCQkJCQlrZXkgewoJCQkJCQkJCS4uLk1hdGNoUGFydHMKCQkJCQkJCX0KCQkJCQkJCWF0dHJpYnV0ZSB7CgkJCQkJCQkJLi4uTWF0Y2hQYXJ0cwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJCXNhbXBsaW5nUmF0aW8KCQkJCX0KCQkJCWxvZ3MgewoJCQkJCW1lc3NhZ2UgewoJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJfQoJCQkJCXNldmVyaXR5VGV4dCB7CgkJCQkJCS4uLk1hdGNoUGFydHMKCQkJCQl9CgkJCQkJYXR0cmlidXRlcyB7CgkJCQkJCWtleSB7CgkJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJCX0KCQkJCQkJYXR0cmlidXRlIHsKCQkJCQkJCS4uLk1hdGNoUGFydHMKCQkJCQkJfQoJCQkJCX0KCQkJCQlzYW1wbGluZ1JhdGlvCgkJCQl9CgkJCX0KCQl9Cgl9CgkkeyR0fQpgLG1yPVFgCglxdWVyeSBJZ25vcmUoJGlkOiBJRCEpIHsKCQlpZ25vcmUoaWQ6ICRpZCkKCX0KYCx5cj1RYAoJcXVlcnkgR2V0U2FtcGxpbmdDb25maWcoJG9yZ2FuaXphdGlvbl92ZXJib3NlX2lkOiBTdHJpbmchKSB7CgkJc2FtcGxpbmcob3JnYW5pemF0aW9uX3ZlcmJvc2VfaWQ6ICRvcmdhbml6YXRpb25fdmVyYm9zZV9pZCkgewoJCQlzcGFucyB7CgkJCQluYW1lIHsKCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQl9CgkJCQlhdHRyaWJ1dGVzIHsKCQkJCQlrZXkgewoJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJfQoJCQkJCWF0dHJpYnV0ZSB7CgkJCQkJCS4uLk1hdGNoUGFydHMKCQkJCQl9CgkJCQl9CgkJCQlldmVudHMgewoJCQkJCW5hbWUgewoJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJfQoJCQkJCWF0dHJpYnV0ZXMgewoJCQkJCQlrZXkgewoJCQkJCQkJLi4uTWF0Y2hQYXJ0cwoJCQkJCQl9CgkJCQkJCWF0dHJpYnV0ZSB7CgkJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCQlzYW1wbGluZ1JhdGlvCgkJCX0KCQkJbG9ncyB7CgkJCQltZXNzYWdlIHsKCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQl9CgkJCQlzZXZlcml0eVRleHQgewoJCQkJCS4uLk1hdGNoUGFydHMKCQkJCX0KCQkJCWF0dHJpYnV0ZXMgewoJCQkJCWtleSB7CgkJCQkJCS4uLk1hdGNoUGFydHMKCQkJCQl9CgkJCQkJYXR0cmlidXRlIHsKCQkJCQkJLi4uTWF0Y2hQYXJ0cwoJCQkJCX0KCQkJCX0KCQkJCXNhbXBsaW5nUmF0aW8KCQkJfQoJCX0KCX0KCSR7JHR9CmAsZ3I9KGUsdCxuLGkpPT5lKCk7ZnVuY3Rpb24gdnIoZSx0PWdyKXtyZXR1cm57UHVzaFBheWxvYWQobixpKXtyZXR1cm4gdChyPT5lLnJlcXVlc3QoY3IsbixEKEQoe30saSkscikpLCJQdXNoUGF5bG9hZCIsIm11dGF0aW9uIixuKX0sUHVzaFNlc3Npb25FdmVudHMobixpKXtyZXR1cm4gdChyPT5lLnJlcXVlc3QodXIsbixEKEQoe30saSkscikpLCJQdXNoU2Vzc2lvbkV2ZW50cyIsIm11dGF0aW9uIixuKX0saWRlbnRpZnlTZXNzaW9uKG4saSl7cmV0dXJuIHQocj0+ZS5yZXF1ZXN0KGxyLG4sRChEKHt9LGkpLHIpKSwiaWRlbnRpZnlTZXNzaW9uIiwibXV0YXRpb24iLG4pfSxhZGRTZXNzaW9uUHJvcGVydGllcyhuLGkpe3JldHVybiB0KHI9PmUucmVxdWVzdChocixuLEQoRCh7fSxpKSxyKSksImFkZFNlc3Npb25Qcm9wZXJ0aWVzIiwibXV0YXRpb24iLG4pfSxwdXNoTWV0cmljcyhuLGkpe3JldHVybiB0KHI9PmUucmVxdWVzdChmcixuLEQoRCh7fSxpKSxyKSksInB1c2hNZXRyaWNzIiwibXV0YXRpb24iLG4pfSxhZGRTZXNzaW9uRmVlZGJhY2sobixpKXtyZXR1cm4gdChyPT5lLnJlcXVlc3QoZHIsbixEKEQoe30saSkscikpLCJhZGRTZXNzaW9uRmVlZGJhY2siLCJtdXRhdGlvbiIsbil9LGluaXRpYWxpemVTZXNzaW9uKG4saSl7cmV0dXJuIHQocj0+ZS5yZXF1ZXN0KHByLG4sRChEKHt9LGkpLHIpKSwiaW5pdGlhbGl6ZVNlc3Npb24iLCJtdXRhdGlvbiIsbil9LElnbm9yZShuLGkpe3JldHVybiB0KHI9PmUucmVxdWVzdChtcixuLEQoRCh7fSxpKSxyKSksIklnbm9yZSIsInF1ZXJ5IixuKX0sR2V0U2FtcGxpbmdDb25maWcobixpKXtyZXR1cm4gdChyPT5lLnJlcXVlc3QoeXIsbixEKEQoe30saSkscikpLCJHZXRTYW1wbGluZ0NvbmZpZyIsInF1ZXJ5IixuKX19fXZhciB0ZT1VaW50OEFycmF5LG5lPVVpbnQxNkFycmF5LHR0PUludDMyQXJyYXksbnQ9bmV3IHRlKFswLDAsMCwwLDAsMCwwLDAsMSwxLDEsMSwyLDIsMiwyLDMsMywzLDMsNCw0LDQsNCw1LDUsNSw1LDAsMCwwLDBdKSxydD1uZXcgdGUoWzAsMCwwLDAsMSwxLDIsMiwzLDMsNCw0LDUsNSw2LDYsNyw3LDgsOCw5LDksMTAsMTAsMTEsMTEsMTIsMTIsMTMsMTMsMCwwXSksVXQ9bmV3IHRlKFsxNiwxNywxOCwwLDgsNyw5LDYsMTAsNSwxMSw0LDEyLDMsMTMsMiwxNCwxLDE1XSksVnQ9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49bmV3IG5lKDMxKSxpPTA7aTwzMTsrK2kpbltpXT10Kz0xPDxlW2ktMV07Zm9yKHZhciByPW5ldyB0dChuWzMwXSksaT0xO2k8MzA7KytpKWZvcih2YXIgcz1uW2ldO3M8bltpKzFdOysrcylyW3NdPXMtbltpXTw8NXxpO3JldHVybntiOm4scn19LHF0PVZ0KG50LDIpLEVyPXF0LmIsaXQ9cXQucjtFclsyOF09MjU4LGl0WzI1OF09Mjg7Zm9yKHZhciBfcj1WdChydCwwKSxqdD1fci5yLHN0PW5ldyBuZSgzMjc2OCksTT0wO008MzI3Njg7KytNKXt2YXIgYWU9KE0mNDM2OTApPj4xfChNJjIxODQ1KTw8MTthZT0oYWUmNTI0MjgpPj4yfChhZSYxMzEwNyk8PDIsYWU9KGFlJjYxNjgwKT4+NHwoYWUmMzg1NSk8PDQsc3RbTV09KChhZSY2NTI4MCk+Pjh8KGFlJjI1NSk8PDgpPj4xfWZvcih2YXIgeGU9ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgaT1lLmxlbmd0aCxyPTAscz1uZXcgbmUodCk7cjxpOysrcillW3JdJiYrK3NbZVtyXS0xXTt2YXIgbz1uZXcgbmUodCk7Zm9yKHI9MTtyPHQ7KytyKW9bcl09b1tyLTFdK3Nbci0xXTw8MTt2YXIgYztpZihuKXtjPW5ldyBuZSgxPDx0KTt2YXIgaD0xNS10O2ZvcihyPTA7cjxpOysrcilpZihlW3JdKWZvcih2YXIgZD1yPDw0fGVbcl0sdT10LWVbcl0seT1vW2Vbcl0tMV0rKzw8dSx2PXl8KDE8PHUpLTE7eTw9djsrK3kpY1tzdFt5XT4+aF09ZH1lbHNlIGZvcihjPW5ldyBuZShpKSxyPTA7cjxpOysrcillW3JdJiYoY1tyXT1zdFtvW2Vbcl0tMV0rK10+PjE1LWVbcl0pO3JldHVybiBjfSx1ZT1uZXcgdGUoMjg4KSxNPTA7TTwxNDQ7KytNKXVlW01dPTg7Zm9yKHZhciBNPTE0NDtNPDI1NjsrK00pdWVbTV09OTtmb3IodmFyIE09MjU2O008MjgwOysrTSl1ZVtNXT03O2Zvcih2YXIgTT0yODA7TTwyODg7KytNKXVlW01dPTg7Zm9yKHZhciBNZT1uZXcgdGUoMzIpLE09MDtNPDMyOysrTSlNZVtNXT01O3ZhciBicj14ZSh1ZSw5LDApLFRyPXhlKE1lLDUsMCksR3Q9ZnVuY3Rpb24oZSl7cmV0dXJuKGUrNykvOHwwfSx6dD1mdW5jdGlvbihlLHQsbil7cmV0dXJuKG49PW51bGx8fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCksbmV3IHRlKGUuc3ViYXJyYXkodCxuKSl9LG9lPWZ1bmN0aW9uKGUsdCxuKXtuPDw9dCY3O3ZhciBpPXQvOHwwO2VbaV18PW4sZVtpKzFdfD1uPj44fSxBZT1mdW5jdGlvbihlLHQsbil7bjw8PXQmNzt2YXIgaT10Lzh8MDtlW2ldfD1uLGVbaSsxXXw9bj4+OCxlW2krMl18PW4+PjE2fSxvdD1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1bXSxpPTA7aTxlLmxlbmd0aDsrK2kpZVtpXSYmbi5wdXNoKHtzOmksZjplW2ldfSk7dmFyIHI9bi5sZW5ndGgscz1uLnNsaWNlKCk7aWYoIXIpcmV0dXJue3Q6UXQsbDowfTtpZihyPT0xKXt2YXIgbz1uZXcgdGUoblswXS5zKzEpO3JldHVybiBvW25bMF0uc109MSx7dDpvLGw6MX19bi5zb3J0KGZ1bmN0aW9uKHcsayl7cmV0dXJuIHcuZi1rLmZ9KSxuLnB1c2goe3M6LTEsZjoyNTAwMX0pO3ZhciBjPW5bMF0saD1uWzFdLGQ9MCx1PTEseT0yO2ZvcihuWzBdPXtzOi0xLGY6Yy5mK2guZixsOmMscjpofTt1IT1yLTE7KWM9bltuW2RdLmY8blt5XS5mP2QrKzp5KytdLGg9bltkIT11JiZuW2RdLmY8blt5XS5mP2QrKzp5KytdLG5bdSsrXT17czotMSxmOmMuZitoLmYsbDpjLHI6aH07Zm9yKHZhciB2PXNbMF0ucyxpPTE7aTxyOysraSlzW2ldLnM+diYmKHY9c1tpXS5zKTt2YXIgVD1uZXcgbmUodisxKSxtPWF0KG5bdS0xXSxULDApO2lmKG0+dCl7dmFyIGk9MCxOPTAsUj1tLXQsTD0xPDxSO2ZvcihzLnNvcnQoZnVuY3Rpb24oayxQKXtyZXR1cm4gVFtQLnNdLVRbay5zXXx8ay5mLVAuZn0pO2k8cjsrK2kpe3ZhciBxPXNbaV0ucztpZihUW3FdPnQpTis9TC0oMTw8bS1UW3FdKSxUW3FdPXQ7ZWxzZSBicmVha31mb3IoTj4+PVI7Tj4wOyl7dmFyIGc9c1tpXS5zO1RbZ108dD9OLT0xPDx0LVRbZ10rKy0xOisraX1mb3IoO2k+PTAmJk47LS1pKXt2YXIgRT1zW2ldLnM7VFtFXT09dCYmKC0tVFtFXSwrK04pfW09dH1yZXR1cm57dDpuZXcgdGUoVCksbDptfX0sYXQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlLnM9PS0xP01hdGgubWF4KGF0KGUubCx0LG4rMSksYXQoZS5yLHQsbisxKSk6dFtlLnNdPW59LEh0PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmxlbmd0aDt0JiYhZVstLXRdOyk7Zm9yKHZhciBuPW5ldyBuZSgrK3QpLGk9MCxyPWVbMF0scz0xLG89ZnVuY3Rpb24oaCl7bltpKytdPWh9LGM9MTtjPD10OysrYylpZihlW2NdPT1yJiZjIT10KSsrcztlbHNle2lmKCFyJiZzPjIpe2Zvcig7cz4xMzg7cy09MTM4KW8oMzI3NTQpO3M+MiYmKG8ocz4xMD9zLTExPDw1fDI4NjkwOnMtMzw8NXwxMjMwNSkscz0wKX1lbHNlIGlmKHM+Myl7Zm9yKG8ociksLS1zO3M+NjtzLT02KW8oODMwNCk7cz4yJiYobyhzLTM8PDV8ODIwOCkscz0wKX1mb3IoO3MtLTspbyhyKTtzPTEscj1lW2NdfXJldHVybntjOm4uc3ViYXJyYXkoMCxpKSxuOnR9fSxJZT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0wLGk9MDtpPHQubGVuZ3RoOysraSluKz1lW2ldKnRbaV07cmV0dXJuIG59LFl0PWZ1bmN0aW9uKGUsdCxuKXt2YXIgaT1uLmxlbmd0aCxyPUd0KHQrMik7ZVtyXT1pJjI1NSxlW3IrMV09aT4+OCxlW3IrMl09ZVtyXV4yNTUsZVtyKzNdPWVbcisxXV4yNTU7Zm9yKHZhciBzPTA7czxpOysrcyllW3Ircys0XT1uW3NdO3JldHVybihyKzQraSkqOH0sSnQ9ZnVuY3Rpb24oZSx0LG4saSxyLHMsbyxjLGgsZCx1KXtvZSh0LHUrKyxuKSwrK3JbMjU2XTtmb3IodmFyIHk9b3QociwxNSksdj15LnQsVD15LmwsbT1vdChzLDE1KSxOPW0udCxSPW0ubCxMPUh0KHYpLHE9TC5jLGc9TC5uLEU9SHQoTiksdz1FLmMsaz1FLm4sUD1uZXcgbmUoMTkpLEk9MDtJPHEubGVuZ3RoOysrSSkrK1BbcVtJXSYzMV07Zm9yKHZhciBJPTA7STx3Lmxlbmd0aDsrK0kpKytQW3dbSV0mMzFdO2Zvcih2YXIgeD1vdChQLDcpLHo9eC50LFY9eC5sLEg9MTk7SD40JiYheltVdFtILTFdXTstLUgpO3ZhciBYPWQrNTw8MyxhPUllKHIsdWUpK0llKHMsTWUpK28sZj1JZShyLHYpK0llKHMsTikrbysxNCszKkgrSWUoUCx6KSsyKlBbMTZdKzMqUFsxN10rNypQWzE4XTtpZihoPj0wJiZYPD1hJiZYPD1mKXJldHVybiBZdCh0LHUsZS5zdWJhcnJheShoLGgrZCkpO3ZhciBfLFMsQyxBO2lmKG9lKHQsdSwxKyhmPGEpKSx1Kz0yLGY8YSl7Xz14ZSh2LFQsMCksUz12LEM9eGUoTixSLDApLEE9Tjt2YXIgSz14ZSh6LFYsMCk7b2UodCx1LGctMjU3KSxvZSh0LHUrNSxrLTEpLG9lKHQsdSsxMCxILTQpLHUrPTE0O2Zvcih2YXIgST0wO0k8SDsrK0kpb2UodCx1KzMqSSx6W1V0W0ldXSk7dSs9MypIO2Zvcih2YXIgaj1bcSx3XSxXPTA7VzwyOysrVylmb3IodmFyIHllPWpbV10sST0wO0k8eWUubGVuZ3RoOysrSSl7dmFyIGllPXllW0ldJjMxO29lKHQsdSxLW2llXSksdSs9eltpZV0saWU+MTUmJihvZSh0LHUseWVbSV0+PjUmMTI3KSx1Kz15ZVtJXT4+MTIpfX1lbHNlIF89YnIsUz11ZSxDPVRyLEE9TWU7Zm9yKHZhciBJPTA7STxjOysrSSl7dmFyIFk9aVtJXTtpZihZPjI1NSl7dmFyIGllPVk+PjE4JjMxO0FlKHQsdSxfW2llKzI1N10pLHUrPVNbaWUrMjU3XSxpZT43JiYob2UodCx1LFk+PjIzJjMxKSx1Kz1udFtpZV0pO3ZhciBnZT1ZJjMxO0FlKHQsdSxDW2dlXSksdSs9QVtnZV0sZ2U+MyYmKEFlKHQsdSxZPj41JjgxOTEpLHUrPXJ0W2dlXSl9ZWxzZSBBZSh0LHUsX1tZXSksdSs9U1tZXX1yZXR1cm4gQWUodCx1LF9bMjU2XSksdStTWzI1Nl19LE5yPW5ldyB0dChbNjU1NDAsMTMxMDgwLDEzMTA4OCwxMzExMDQsMjYyMTc2LDEwNDg3MDQsMTA0ODgzMiwyMTE0NTYwLDIxMTc2MzJdKSxRdD1uZXcgdGUoMCkseHI9ZnVuY3Rpb24oZSx0LG4saSxyLHMpe3ZhciBvPXMuenx8ZS5sZW5ndGgsYz1uZXcgdGUoaStvKzUqKDErTWF0aC5jZWlsKG8vN2UzKSkrciksaD1jLnN1YmFycmF5KGksYy5sZW5ndGgtciksZD1zLmwsdT0ocy5yfHwwKSY3O2lmKHQpe3UmJihoWzBdPXMucj4+Myk7Zm9yKHZhciB5PU5yW3QtMV0sdj15Pj4xMyxUPXkmODE5MSxtPSgxPDxuKS0xLE49cy5wfHxuZXcgbmUoMzI3NjgpLFI9cy5ofHxuZXcgbmUobSsxKSxMPU1hdGguY2VpbChuLzMpLHE9MipMLGc9ZnVuY3Rpb24ocHQpe3JldHVybihlW3B0XV5lW3B0KzFdPDxMXmVbcHQrMl08PHEpJm19LEU9bmV3IHR0KDI1ZTMpLHc9bmV3IG5lKDI4OCksaz1uZXcgbmUoMzIpLFA9MCxJPTAseD1zLml8fDAsej0wLFY9cy53fHwwLEg9MDt4KzI8bzsrK3gpe3ZhciBYPWcoeCksYT14JjMyNzY3LGY9UltYXTtpZihOW2FdPWYsUltYXT1hLFY8PXgpe3ZhciBfPW8teDtpZigoUD43ZTN8fHo+MjQ1NzYpJiYoXz40MjN8fCFkKSl7dT1KdChlLGgsMCxFLHcsayxJLHosSCx4LUgsdSksej1QPUk9MCxIPXg7Zm9yKHZhciBTPTA7UzwyODY7KytTKXdbU109MDtmb3IodmFyIFM9MDtTPDMwOysrUylrW1NdPTB9dmFyIEM9MixBPTAsSz1ULGo9YS1mJjMyNzY3O2lmKF8+MiYmWD09Zyh4LWopKWZvcih2YXIgVz1NYXRoLm1pbih2LF8pLTEseWU9TWF0aC5taW4oMzI3NjcseCksaWU9TWF0aC5taW4oMjU4LF8pO2o8PXllJiYtLUsmJmEhPWY7KXtpZihlW3grQ109PWVbeCtDLWpdKXtmb3IodmFyIFk9MDtZPGllJiZlW3grWV09PWVbeCtZLWpdOysrWSk7aWYoWT5DKXtpZihDPVksQT1qLFk+VylicmVhaztmb3IodmFyIGdlPU1hdGgubWluKGosWS0yKSx0bj0wLFM9MDtTPGdlOysrUyl7dmFyIGZ0PXgtaitTJjMyNzY3LEpyPU5bZnRdLG5uPWZ0LUpyJjMyNzY3O25uPnRuJiYodG49bm4sZj1mdCl9fX1hPWYsZj1OW2FdLGorPWEtZiYzMjc2N31pZihBKXtFW3orK109MjY4NDM1NDU2fGl0W0NdPDwxOHxqdFtBXTt2YXIgcm49aXRbQ10mMzEsc249anRbQV0mMzE7SSs9bnRbcm5dK3J0W3NuXSwrK3dbMjU3K3JuXSwrK2tbc25dLFY9eCtDLCsrUH1lbHNlIEVbeisrXT1lW3hdLCsrd1tlW3hdXX19Zm9yKHg9TWF0aC5tYXgoeCxWKTt4PG87Kyt4KUVbeisrXT1lW3hdLCsrd1tlW3hdXTt1PUp0KGUsaCxkLEUsdyxrLEkseixILHgtSCx1KSxkfHwocy5yPXUmN3xoW3UvOHwwXTw8Myx1LT03LHMuaD1SLHMucD1OLHMuaT14LHMudz1WKX1lbHNle2Zvcih2YXIgeD1zLnd8fDA7eDxvK2Q7eCs9NjU1MzUpe3ZhciBkdD14KzY1NTM1O2R0Pj1vJiYoaFt1Lzh8MF09ZCxkdD1vKSx1PVl0KGgsdSsxLGUuc3ViYXJyYXkoeCxkdCkpfXMuaT1vfXJldHVybiB6dChjLDAsaStHdCh1KStyKX0sQXI9ZnVuY3Rpb24oKXtmb3IodmFyIGU9bmV3IEludDMyQXJyYXkoMjU2KSx0PTA7dDwyNTY7Kyt0KXtmb3IodmFyIG49dCxpPTk7LS1pOyluPShuJjEmJi0zMDY2NzQ5MTIpXm4+Pj4xO2VbdF09bn1yZXR1cm4gZX0oKSxJcj1mdW5jdGlvbigpe3ZhciBlPS0xO3JldHVybntwOmZ1bmN0aW9uKHQpe2Zvcih2YXIgbj1lLGk9MDtpPHQubGVuZ3RoOysraSluPUFyW24mMjU1XnRbaV1dXm4+Pj44O2U9bn0sZDpmdW5jdGlvbigpe3JldHVybn5lfX19LFNyPWZ1bmN0aW9uKGUsdCxuLGkscil7aWYoIXImJihyPXtsOjF9LHQuZGljdGlvbmFyeSkpe3ZhciBzPXQuZGljdGlvbmFyeS5zdWJhcnJheSgtMzI3NjgpLG89bmV3IHRlKHMubGVuZ3RoK2UubGVuZ3RoKTtvLnNldChzKSxvLnNldChlLHMubGVuZ3RoKSxlPW8sci53PXMubGVuZ3RofXJldHVybiB4cihlLHQubGV2ZWw9PW51bGw/Njp0LmxldmVsLHQubWVtPT1udWxsP3IubD9NYXRoLmNlaWwoTWF0aC5tYXgoOCxNYXRoLm1pbigxMyxNYXRoLmxvZyhlLmxlbmd0aCkpKSoxLjUpOjIwOjEyK3QubWVtLG4saSxyKX0sY3Q9ZnVuY3Rpb24oZSx0LG4pe2Zvcig7bjsrK3QpZVt0XT1uLG4+Pj49OH0sT3I9ZnVuY3Rpb24oZSx0KXt2YXIgbj10LmZpbGVuYW1lO2lmKGVbMF09MzEsZVsxXT0xMzksZVsyXT04LGVbOF09dC5sZXZlbDwyPzQ6dC5sZXZlbD09OT8yOjAsZVs5XT0zLHQubXRpbWUhPTAmJmN0KGUsNCxNYXRoLmZsb29yKG5ldyBEYXRlKHQubXRpbWV8fERhdGUubm93KCkpLzFlMykpLG4pe2VbM109ODtmb3IodmFyIGk9MDtpPD1uLmxlbmd0aDsrK2kpZVtpKzEwXT1uLmNoYXJDb2RlQXQoaSl9fSx3cj1mdW5jdGlvbihlKXtyZXR1cm4gMTArKGUuZmlsZW5hbWU/ZS5maWxlbmFtZS5sZW5ndGgrMTowKX07ZnVuY3Rpb24gRHIoZSx0KXt0fHwodD17fSk7dmFyIG49SXIoKSxpPWUubGVuZ3RoO24ucChlKTt2YXIgcj1TcihlLHQsd3IodCksOCkscz1yLmxlbmd0aDtyZXR1cm4gT3Iocix0KSxjdChyLHMtOCxuLmQoKSksY3QocixzLTQsaSkscn12YXIgWHQ9dHlwZW9mIFRleHRFbmNvZGVyIT0idW5kZWZpbmVkIiYmbmV3IFRleHRFbmNvZGVyLGtyPXR5cGVvZiBUZXh0RGVjb2RlciE9InVuZGVmaW5lZCImJm5ldyBUZXh0RGVjb2RlcixDcj0wO3RyeXtrci5kZWNvZGUoUXQse3N0cmVhbTohMH0pLENyPTF9Y2F0Y2goZSl7fWZ1bmN0aW9uIFJyKGUsdCl7dmFyIG47aWYoWHQpcmV0dXJuIFh0LmVuY29kZShlKTtmb3IodmFyIGk9ZS5sZW5ndGgscj1uZXcgdGUoZS5sZW5ndGgrKGUubGVuZ3RoPj4xKSkscz0wLG89ZnVuY3Rpb24oZCl7cltzKytdPWR9LG49MDtuPGk7KytuKXtpZihzKzU+ci5sZW5ndGgpe3ZhciBjPW5ldyB0ZShzKzgrKGktbjw8MSkpO2Muc2V0KHIpLHI9Y312YXIgaD1lLmNoYXJDb2RlQXQobik7aDwxMjh8fHQ/byhoKTpoPDIwNDg/KG8oMTkyfGg+PjYpLG8oMTI4fGgmNjMpKTpoPjU1Mjk1JiZoPDU3MzQ0PyhoPTY1NTM2KyhoJjEwNDc1NTIpfGUuY2hhckNvZGVBdCgrK24pJjEwMjMsbygyNDB8aD4+MTgpLG8oMTI4fGg+PjEyJjYzKSxvKDEyOHxoPj42JjYzKSxvKDEyOHxoJjYzKSk6KG8oMjI0fGg+PjEyKSxvKDEyOHxoPj42JjYzKSxvKDEyOHxoJjYzKSl9cmV0dXJuIHp0KHIsMCxzKX1mdW5jdGlvbiBMcihlKXtyZXR1cm4gSih0aGlzLG51bGwsZnVuY3Rpb24qKCl7Y29uc3QgdD1ScihKU09OLnN0cmluZ2lmeShlKSksbj1Ecih0KSxpPXlpZWxkIG5ldyBQcm9taXNlKHI9Pntjb25zdCBzPW5ldyBGaWxlUmVhZGVyO3Mub25sb2FkPSgpPT5yKHMucmVzdWx0KSxzLnJlYWRBc0RhdGFVUkwobmV3IEJsb2IoW25ldyBVaW50OEFycmF5KG4pXSkpfSk7cmV0dXJue2NvbXByZXNzZWRCYXNlNjQ6aS5zbGljZShpLmluZGV4T2YoIiwiKSsxKSxjb21wcmVzc2VkU2l6ZTpuLmxlbmd0aCxidWZmZXJMZW5ndGg6dC5sZW5ndGh9fSl9Y29uc3QgdXQ9e0JBU0VfVVJMOiIvIixERVY6ITEsTU9ERToicHJvZHVjdGlvbiIsUFJPRDohMCxTU1I6ITF9LFByPVsiZGVidWciLCJsb2ciLCJpbmZvIiwid2FybiIsImVycm9yIl0sbHQ9U3ltYm9sLmZvcigiQGxhdW5jaGRhcmtseS9vMTF5LnNka0xvZ2dlciIpLEZyPSgoKT0+e3RyeXtyZXR1cm4odXQ9PW51bGw/dm9pZCAwOnV0LkRFQlVHKT09PSJ0cnVlIn1jYXRjaChlKXtyZXR1cm4hMX19KSgpLEJlPSgoKT0+e3ZhciBuO2NvbnN0IGU9Z2xvYmFsVGhpcyx0PShuPWVbbHRdKSE9bnVsbD9uOmVbbHRdPXtkZWJ1Z0VuYWJsZWQ6ITEsc3VwcHJlc3NEZXB0aDowfTtyZXR1cm4gRnImJih0LmRlYnVnRW5hYmxlZD0hMCksdH0pKCksTXI9KCk9PkJlLmRlYnVnRW5hYmxlZCxodD1lPT57QmUuc3VwcHJlc3NEZXB0aCsrO3RyeXtyZXR1cm4gZSgpfWZpbmFsbHl7QmUuc3VwcHJlc3NEZXB0aC0tfX0sQnI9ZT0+UHIuaW5jbHVkZXMoZSk/ZToibG9nIiwkcj0oZSwuLi50KT0+e0JlLmRlYnVnRW5hYmxlZCYmaHQoKCk9Pnt2YXIgbjt0cnl7KChuPWNvbnNvbGVbQnIoZSldKSE9bnVsbD9uOmNvbnNvbGUubG9nKS5hcHBseShjb25zb2xlLHQpfWNhdGNoKGkpe319KX07Y2xhc3MgVXJ7Y29uc3RydWN0b3IodCxuKXt5dCh0aGlzLCJkZWJ1ZyIpO3l0KHRoaXMsIm5hbWUiKTt0aGlzLmRlYnVnPXQsdGhpcy5uYW1lPW59cHJlZml4KCl7bGV0IHQ9YFske0RhdGUubm93KCl9XWA7cmV0dXJuIHRoaXMubmFtZSYmKHQrPWAgLSAke3RoaXMubmFtZX1gKSx0fWxvZyguLi50KXt0aGlzLmRlYnVnJiZodCgoKT0+Y29uc29sZS5sb2cuYXBwbHkoY29uc29sZSxbdGhpcy5wcmVmaXgoKSwuLi50XSkpfXdhcm4oLi4udCl7KHRoaXMuZGVidWd8fE1yKCkpJiZodCgoKT0+Y29uc29sZS53YXJuLmFwcGx5KGNvbnNvbGUsW3RoaXMucHJlZml4KCksLi4udF0pKX19dmFyIFd0PShlPT4oZS5CaWxsaW5nUXVvdGFFeGNlZWRlZD0iQmlsbGluZ1F1b3RhRXhjZWVkZWQiLGUpKShXdHx8e30pO2NvbnN0IFZyPTMscXI9MWUzLGpyPTUwMCxHcj1bV3QuQmlsbGluZ1F1b3RhRXhjZWVkZWQudG9TdHJpbmcoKV0senI9ZT0+e3ZhciBuO3JldHVybigobj1lLnJlc3BvbnNlLmVycm9ycyk9PW51bGw/dm9pZCAwOm4uZmluZChpPT5Hci5pbmNsdWRlcyhpLm1lc3NhZ2UpKSk9PT12b2lkIDB9LEhyPSgpPT57Y29uc3QgZT0odCxuLGkscixzPTApPT5KKHRoaXMsbnVsbCxmdW5jdGlvbiooKXt0cnl7cmV0dXJuIHlpZWxkIHQoKX1jYXRjaChvKXtpZihvIGluc3RhbmNlb2YgZGUmJiF6cihvKSl0aHJvdyBvO2lmKHM8VnIpcmV0dXJuIHlpZWxkIG5ldyBQcm9taXNlKGM9PnNldFRpbWVvdXQoYyxxcitqcipNYXRoLnBvdygyLHMpKSkseWllbGQgZSh0LG4saSxyLHMrMSk7dGhyb3cgJHIoImVycm9yIixgaGlnaGxpZ2h0LmlvOiBkYXRhIHJlcXVlc3QgZmFpbGVkIGFmdGVyICR7c30gcmV0cmllc2ApLG99fSk7cmV0dXJuIGV9LFp0PTUsS3Q9MmUzLFlyPVsibnVtYmVyIiwic3RyaW5nIiwiYm9vbGVhbiJdO3ZhciBaPShlPT4oZVtlLkluaXRpYWxpemU9MF09IkluaXRpYWxpemUiLGVbZS5SZXNldD0xXT0iUmVzZXQiLGVbZS5Bc3luY0V2ZW50cz0yXT0iQXN5bmNFdmVudHMiLGVbZS5JZGVudGlmeT0zXT0iSWRlbnRpZnkiLGVbZS5Qcm9wZXJ0aWVzPTRdPSJQcm9wZXJ0aWVzIixlW2UuTWV0cmljcz01XT0iTWV0cmljcyIsZVtlLkZlZWRiYWNrPTZdPSJGZWVkYmFjayIsZVtlLkN1c3RvbUV2ZW50PTddPSJDdXN0b21FdmVudCIsZVtlLlN0b3A9OF09IlN0b3AiLGVbZS5HZXRTdGF0dXM9OV09IkdldFN0YXR1cyIsZSkpKFp8fHt9KTtjb25zdCBTZT1zZWxmO2Z1bmN0aW9uIGVuKGUsdCl7Y29uc3Qgbj17fSxpPVtdLHI9W107Zm9yKGNvbnN0W3Msb11vZiBPYmplY3QuZW50cmllcyhlKSl7aWYobz09bnVsbCljb250aW51ZTtZci5pbmNsdWRlcyh0eXBlb2Ygbyl8fGkucHVzaCh7W3NdOm99KTtsZXQgYzt0eXBlb2Ygbz09InN0cmluZyI/Yz1vOmM9bWUobyksYy5sZW5ndGg+S3QmJihyLnB1c2goe1tzXTpvfSksYz1jLnN1YnN0cmluZygwLEt0KSksbltzXT1jfXJldHVybiB0IT09InNlc3Npb24iJiYoaS5sZW5ndGg+MCYmY29uc29sZS53YXJuKGBIaWdobGlnaHQgd2FzIHBhc3NlZCBvbmUgb3IgbW9yZSAke3R9IHByb3BlcnRpZXMgbm90IG9mIHR5cGUgc3RyaW5nLCBudW1iZXIsIG9yIGJvb2xlYW4uYCxpKSxyLmxlbmd0aD4wJiZjb25zb2xlLndhcm4oYEhpZ2hsaWdodCB3YXMgcGFzc2VkIG9uZSBvciBtb3JlICR7dH0gcHJvcGVydGllcyBleGNlZWRpbmcgMjAwMCBjaGFyYWN0ZXJzLCB3aGljaCB3aWxsIGJlIHRydW5jYXRlZC5gLHIpKSxufXtsZXQgZSx0LG4saT0wLHI9MCxzPSExLG89MCxjPW5ldyBVcighMSwiW3dvcmtlcl0iKTtjb25zdCBoPVtdLGQ9W10sdT0oKT0+byE9PTAmJmk8WnQmJiEhKG4hPW51bGwmJm4ubGVuZ3RoKSx5PShnLEUpPT57U2UucG9zdE1lc3NhZ2Uoe3Jlc3BvbnNlOnt0eXBlOlouQ3VzdG9tRXZlbnQsdGFnOmcscGF5bG9hZDpFfX0pfSx2PWc9PkoodGhpcyxudWxsLGZ1bmN0aW9uKigpe2NvbnN0e2lkOkUsZXZlbnRzOncsbWVzc2FnZXM6ayxlcnJvcnM6UCxyZXNvdXJjZXNTdHJpbmc6SSx3ZWJTb2NrZXRFdmVudHNTdHJpbmc6eCxoYXNTZXNzaW9uVW5sb2FkZWQ6eixoaWdobGlnaHRMb2dzOlZ9PWcsSD1tZSh7bWVzc2FnZXM6a30pO2xldCBYPXtzZXNzaW9uX3NlY3VyZV9pZDpuLHBheWxvYWRfaWQ6RS50b1N0cmluZygpLGV2ZW50czp7ZXZlbnRzOnd9LG1lc3NhZ2VzOkgscmVzb3VyY2VzOkksd2ViX3NvY2tldF9ldmVudHM6eCxlcnJvcnM6UCxpc19iZWFjb246ITEsaGFzX3Nlc3Npb25fdW5sb2FkZWQ6en07ViYmKFguaGlnaGxpZ2h0X2xvZ3M9Vik7Y29uc3R7Y29tcHJlc3NlZEJhc2U2NDphLGJ1ZmZlckxlbmd0aDpmLGNvbXByZXNzZWRTaXplOl99PXlpZWxkIExyKFgpLFM9e3R5cGU6Wi5Bc3luY0V2ZW50cyxpZDpFLGV2ZW50c1NpemU6Zixjb21wcmVzc2VkU2l6ZTphLmxlbmd0aH07Yy5sb2coYFB1c2hpbmcgcGF5bG9hZDogJHtKU09OLnN0cmluZ2lmeSh7c2Vzc2lvblNlY3VyZUlEOm4saWQ6RSxmaXJzdFNJRDpNYXRoLm1pbiguLi5YLmV2ZW50cy5ldmVudHMubWFwKFc9Plc9PW51bGw/dm9pZCAwOlcuX3NpZCkuZmlsdGVyKFc9PiEhVykpLGV2ZW50c0xlbmd0aDpYLmV2ZW50cy5ldmVudHMubGVuZ3RoLG1lc3NhZ2VzTGVuZ3RoOmsubGVuZ3RoLHJlc291cmNlc0xlbmd0aDpJLmxlbmd0aCx3ZWJTb2NrZXRMZW5ndGg6eC5sZW5ndGgsZXJyb3JzTGVuZ3RoOlAubGVuZ3RoLGJ1Zkxlbmd0aDpmLGNvbXByZXNzZWRMZW5ndGg6Xyxjb21wcmVzc2VkQmFzZTY0TGVuZ3RoOmEubGVuZ3RofSx2b2lkIDAsMil9YCk7Y29uc3QgQz1lLlB1c2hTZXNzaW9uRXZlbnRzKHtzZXNzaW9uX3NlY3VyZV9pZDpuLHBheWxvYWRfaWQ6RS50b1N0cmluZygpLGRhdGE6YX0pO2xldCBBPVByb21pc2UucmVzb2x2ZSgpO2gubGVuZ3RoJiYoQT1lLnB1c2hNZXRyaWNzKHttZXRyaWNzOmh9KSxoLnNwbGljZSgwKSk7bGV0IEs9cGVyZm9ybWFuY2Uubm93KCk7Y29uc3Qgaj1zZXRJbnRlcnZhbCgoKT0+e0smJnBlcmZvcm1hbmNlLm5vdygpLUs+RnQmJihjb25zb2xlLndhcm4oYFVwbG9hZGluZyBwdXNoUGF5bG9hZCB0b29rIHRvbyBsb25nLCBmYWlsdXJlIG51bWJlciAjJHtyfS5gKSxyKz0xLGNsZWFySW50ZXJ2YWwoaikscj49WnQmJihjb25zb2xlLndhcm4oIlVwbG9hZGluZyBwdXNoUGF5bG9hZCB0b29rIHRvbyBsb25nLCBzdG9wcGluZyByZWNvcmRpbmcgdG8gYXZvaWQgT09NLiIpLFNlLnBvc3RNZXNzYWdlKHtyZXNwb25zZTp7dHlwZTpaLlN0b3AscmVxdWVzdFN0YXJ0OkssYXN5bmNFdmVudHNSZXNwb25zZTpTfX0pLG0oe3R5cGU6Wi5Qcm9wZXJ0aWVzLHByb3BlcnRpZXNPYmplY3Q6e3N0b3BSZWFzb246IlB1c2ggUGF5bG9hZCBUaW1lb3V0In0scHJvcGVydHlUeXBlOnt0eXBlOiJ0cmFjayJ9fSkpKX0sMTAwKTt0cnl7eWllbGQgUHJvbWlzZS5hbGwoW0MsQV0pLHImJnBlcmZvcm1hbmNlLm5vdygpLUs8PUZ0JiYoY29uc29sZS53YXJuKGBwdXNoUGF5bG9hZCBzdWNjZWVkZWQgYWZ0ZXIgIyR7cn0gZmFpbHVyZXMsIHJlc2V0dGluZyBzdG9wIHN3aXRjaC5gKSxyPTApfWZpbmFsbHl7Sz0wLGNsZWFySW50ZXJ2YWwoail9U2UucG9zdE1lc3NhZ2Uoe3Jlc3BvbnNlOlN9KX0pLFQ9Zz0+Sih0aGlzLG51bGwsZnVuY3Rpb24qKCl7Y29uc3R7dXNlck9iamVjdDpFLHVzZXJJZGVudGlmaWVyOncsc291cmNlOmt9PWc7az09PSJzZWdtZW50Ij95KCJTZWdtZW50IElkZW50aWZ5IixtZShEKHt1c2VySWRlbnRpZmllcjp3fSxFKSkpOnkoIklkZW50aWZ5IixtZShEKHt1c2VySWRlbnRpZmllcjp3fSxFKSkpLHlpZWxkIGUuaWRlbnRpZnlTZXNzaW9uKHtzZXNzaW9uX3NlY3VyZV9pZDpuLHVzZXJfaWRlbnRpZmllcjp3LHVzZXJfb2JqZWN0OmVuKEUsInVzZXIiKX0pO2NvbnN0IFA9az09PSJzZWdtZW50Ij9rOiJkZWZhdWx0IjtjLmxvZyhgSWRlbnRpZnkgKCR7d30sIHNvdXJjZTogJHtQfSkgdy8gb2JqOiAke21lKEUpfSBAICR7dH1gKX0pLG09Zz0+Sih0aGlzLG51bGwsZnVuY3Rpb24qKCl7Y29uc3R7cHJvcGVydGllc09iamVjdDpFLHByb3BlcnR5VHlwZTp3fT1nO2xldCBrOyh3PT1udWxsP3ZvaWQgMDp3LnR5cGUpPT09InNlc3Npb24iPyhrPSJTZXNzaW9uIix5aWVsZCBlLmFkZFNlc3Npb25Qcm9wZXJ0aWVzKHtzZXNzaW9uX3NlY3VyZV9pZDpuLHByb3BlcnRpZXNfb2JqZWN0OmVuKEUsInNlc3Npb24iKX0pKToodz09bnVsbD92b2lkIDA6dy5zb3VyY2UpPT09InNlZ21lbnQiP2s9IlNlZ21lbnQiOms9IlRyYWNrIixrIT09IlNlc3Npb24iJiZ5KGssbWUoRSkpLGMubG9nKGBBZGRpbmcgJHtrfSBQcm9wZXJ0aWVzIHRvIHNlc3Npb24gKCR7bn0pIHcvIG9iajogJHtKU09OLnN0cmluZ2lmeShFKX0gQCAke3R9YCl9KSxOPWc9PkoodGhpcyxudWxsLGZ1bmN0aW9uKigpe2gucHVzaCguLi5nLm1ldHJpY3MubWFwKEU9Pih7bmFtZTpFLm5hbWUsdmFsdWU6RS52YWx1ZSxzZXNzaW9uX3NlY3VyZV9pZDpuLGNhdGVnb3J5OkUuY2F0ZWdvcnksZ3JvdXA6RS5ncm91cCx0aW1lc3RhbXA6RS50aW1lc3RhbXAudG9JU09TdHJpbmcoKSx0YWdzOkUudGFnc30pKSl9KSxSPWc9PkoodGhpcyxudWxsLGZ1bmN0aW9uKigpe2NvbnN0e3RpbWVzdGFtcDpFLHZlcmJhdGltOncsdXNlckVtYWlsOmssdXNlck5hbWU6UH09Zzt5aWVsZCBlLmFkZFNlc3Npb25GZWVkYmFjayh7c2Vzc2lvbl9zZWN1cmVfaWQ6bix0aW1lc3RhbXA6RSx2ZXJiYXRpbTp3LHVzZXJfZW1haWw6ayx1c2VyX25hbWU6UH0pfSksTD1nPT5KKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtnLnR5cGU9PT1aLkFzeW5jRXZlbnRzP3lpZWxkIHYoZyk6Zy50eXBlPT09Wi5JZGVudGlmeT95aWVsZCBUKGcpOmcudHlwZT09PVouUHJvcGVydGllcz95aWVsZCBtKGcpOmcudHlwZT09PVouTWV0cmljcz95aWVsZCBOKGcpOmcudHlwZT09PVouRmVlZGJhY2smJih5aWVsZCBSKGcpKX0pLHE9KCk9PkoodGhpcyxudWxsLGZ1bmN0aW9uKigpe2Zvcig7ZC5sZW5ndGg+MCYmdSgpOyl7Y29uc3QgZz1kLnNoaWZ0KCk7dHJ5e3lpZWxkIEwoZyksaT0wfWNhdGNoKEUpe3MmJmNvbnNvbGUuZXJyb3IoRSksaSs9MX19fSk7U2Uub25tZXNzYWdlPWZ1bmN0aW9uKGcpe3JldHVybiBKKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtpZihnLmRhdGEubWVzc2FnZS50eXBlPT09Wi5Jbml0aWFsaXplKXt0PWcuZGF0YS5tZXNzYWdlLmJhY2tlbmQsbj1nLmRhdGEubWVzc2FnZS5zZXNzaW9uU2VjdXJlSUQscz1nLmRhdGEubWVzc2FnZS5kZWJ1ZyxvPWcuZGF0YS5tZXNzYWdlLnJlY29yZGluZ1N0YXJ0VGltZSxjLmRlYnVnPXMsZT12cihuZXcgWG4odCx7aGVhZGVyczp7fX0pLEhyKCkpLHlpZWxkIHEoKTtyZXR1cm59aWYoZy5kYXRhLm1lc3NhZ2UudHlwZT09PVouUmVzZXQpe2QubGVuZ3RoPTAsaC5sZW5ndGg9MCxpPTAscj0wLG49IiIsbz0wO3JldHVybn1pZihnLmRhdGEubWVzc2FnZS50eXBlPT09Wi5HZXRTdGF0dXMpe1NlLnBvc3RNZXNzYWdlKHtyZXNwb25zZTp7dHlwZTpaLkdldFN0YXR1cyxwZW5kaW5nQ291bnQ6ZC5sZW5ndGgsaW5pdGlhbGl6ZWQ6dSgpfX0pO3JldHVybn1pZighdSgpKXtkLnB1c2goZy5kYXRhLm1lc3NhZ2UpO3JldHVybn10cnl7eWllbGQgTChnLmRhdGEubWVzc2FnZSksaT0wLHlpZWxkIHEoKX1jYXRjaChFKXtzJiZjb25zb2xlLmVycm9yKEUpLGkrPTF9fSl9fX0pKCk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWhpZ2hsaWdodC1jbGllbnQtd29ya2VyLURyRFBSQ3J2LmpzLm1hcAo=",Nm=e=>Uint8Array.from(atob(e),t=>t.charCodeAt(0)),Aa=typeof self<"u"&&self.Blob&&new Blob([Nm(ja)],{type:"text/javascript;charset=utf-8"});function Jm(e){let t;try{if(t=Aa&&(self.URL||self.webkitURL).createObjectURL(Aa),!t)throw"";const s=new Worker(t,{name:e?.name});return s.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),s}catch{return new Worker("data:text/javascript;base64,"+ja,{name:e?.name})}finally{t&&(self.URL||self.webkitURL).revokeObjectURL(t)}}var Ae=(e=>(e[e.Initialize=0]="Initialize",e[e.Reset=1]="Reset",e[e.AsyncEvents=2]="AsyncEvents",e[e.Identify=3]="Identify",e[e.Properties=4]="Properties",e[e.Metrics=5]="Metrics",e[e.Feedback=6]="Feedback",e[e.CustomEvent=7]="CustomEvent",e[e.Stop=8]="Stop",e[e.GetStatus=9]="GetStatus",e))(Ae||{});const Ym=({apiKey:e})=>{(function(t,s){var n=t.amplitude||{_q:[],_iq:{}},r=s.createElement("script");r.type="text/javascript",r.integrity="sha384-+EO59vL/X7v6VE2s6/F4HxfHlK0nDUVWKVg8K9oUlvffAeeaShVBmbORTC2D3UF+",r.crossOrigin="anonymous",r.async=!0,r.src="https://cdn.amplitude.com/libs/amplitude-8.17.0-min.gz.js",r.onload=function(){t.amplitude.runQueuedFunctions||console.log("[Amplitude] Error: could not load SDK"),amplitude.getInstance().init(e)};var l=s.getElementsByTagName("script")[0];l.parentNode.insertBefore(r,l);function d(u,b){u.prototype[b]=function(){return this._q.push([b].concat(Array.prototype.slice.call(arguments,0))),this}}for(var f=function(){return this._q=[],this},m=["add","append","clearAll","prepend","set","setOnce","unset","preInsert","postInsert","remove"],h=0;h<m.length;h++)d(f,m[h]);n.Identify=f;for(var p=function(){return this._q=[],this},o=["setProductId","setQuantity","setPrice","setRevenueType","setEventProperties"],a=0;a<o.length;a++)d(p,o[a]);n.Revenue=p;var i=["init","logEvent","logRevenue","setUserId","setUserProperties","setOptOut","setVersionName","setDomain","setDeviceId","enableTracking","setGlobalUserProperties","identify","clearUserProperties","setGroup","logRevenueV2","regenerateDeviceId","groupIdentify","onInit","logEventWithTimestamp","logEventWithGroups","setSessionId","resetSessionId"];function c(u){function b(Z){u[Z]=function(){u._q.push([Z].concat(Array.prototype.slice.call(arguments,0)))}}for(var S=0;S<i.length;S++)b(i[S])}c(n),n.getInstance=function(u){return u=(!u||u.length===0?"$default_instance":u).toLowerCase(),Object.prototype.hasOwnProperty.call(n._iq,u)||(n._iq[u]={_q:[]},c(n._iq[u])),n._iq[u]},t.amplitude=n})(window,document)},Um=({projectToken:e})=>{if(window.mixpanel)return;(function(s,n){if(!n.__SV){var r,l;window.mixpanel=n,n._i=[],n.init=function(d,f,m){function h(a,i){var c=i.split(".");c.length==2&&(a=a[c[0]],i=c[1]),a[i]=function(){a.push([i].concat(Array.prototype.slice.call(arguments,0)))}}var p=n;for(typeof m<"u"?p=n[m]=[]:m="mixpanel",p.people=p.people||[],p.toString=function(a){var i="mixpanel";return m!=="mixpanel"&&(i+="."+m),a||(i+=" (stub)"),i},p.people.toString=function(){return p.toString(1)+".people (stub)"},r="disable time_event track track_pageview track_links track_forms track_with_groups add_group set_group remove_group register register_once alias unregister identify name_tag set_config reset opt_in_tracking opt_out_tracking has_opted_in_tracking has_opted_out_tracking clear_opt_in_out_tracking start_batch_senders people.set people.set_once people.unset people.increment people.append people.union people.track_charge people.clear_charges people.delete_user people.remove".split(" "),l=0;l<r.length;l++)h(p,r[l]);var o="set set_once union unset remove delete".split(" ");p.get_group=function(){function a(b){i[b]=function(){call2_args=arguments,call2=[b].concat(Array.prototype.slice.call(call2_args,0)),p.push([c,call2])}}for(var i={},c=["get_group"].concat(Array.prototype.slice.call(arguments,0)),u=0;u<o.length;u++)a(o[u]);return i},n._i.push([d,f,m])},n.__SV=1.2}})(document,window.mixpanel||[]);const t=document.createElement("script");t.src=Fm,document.head.appendChild(t),t.addEventListener("load",()=>{var s;(s=window.mixpanel)==null||s.init(e)})},Fm="https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";var Qs;class Om{constructor(t){Q(this,"options"),Q(this,"isRunningOnHighlight"),Q(this,"organizationID"),vd(this,Qs),Q(this,"events"),Q(this,"sessionData"),Q(this,"ready"),Q(this,"manualStopped"),Q(this,"state"),Q(this,"logger"),Q(this,"enableSegmentIntegration"),Q(this,"privacySetting"),Q(this,"enableCanvasRecording"),Q(this,"samplingStrategy"),Q(this,"inlineImages"),Q(this,"inlineVideos"),Q(this,"inlineStylesheet"),Q(this,"styleSheetResyncInterval"),Q(this,"debugOptions"),Q(this,"listeners"),Q(this,"firstloadVersion"),Q(this,"environment"),Q(this,"sessionShortcut"),Q(this,"appVersion"),Q(this,"serviceName"),Q(this,"_worker"),Q(this,"_optionsInternal"),Q(this,"_backendUrl"),Q(this,"_recordingStartTime"),Q(this,"_isOnLocalHost"),Q(this,"_onToggleFeedbackFormVisibility"),Q(this,"_isCrossOriginIframe"),Q(this,"_eventBytesSinceSnapshot"),Q(this,"_lastSnapshotTime"),Q(this,"_lastVisibilityChangeTime"),Q(this,"pushPayloadTimerId"),Q(this,"hasSessionUnloaded"),Q(this,"hasPushedData"),Q(this,"reloaded"),Q(this,"_hasPreviouslyInitialized"),Q(this,"_recordStop"),Q(this,"_integrations",[]);var s,n,r,l,d,f;this.options=t,typeof((s=this.options)==null?void 0:s.debug)=="boolean"?this.debugOptions=this.options.debug?{clientInteractions:!0}:{}:this.debugOptions=(r=(n=this.options)==null?void 0:n.debug)!=null?r:{},this.logger=new lr(this.debugOptions.clientInteractions),(l=this.options)!=null&&l.debug&&tc(!0),this._worker=new Jm,this._worker.onmessage=h=>{var p,o,a;((p=h.data.response)==null?void 0:p.type)===Ae.AsyncEvents?(this._eventBytesSinceSnapshot+=h.data.response.eventsSize,this.logger.log(`Web worker sent payloadID ${h.data.response.id} size ${h.data.response.eventsSize} bytes, compression ratio ${h.data.response.eventsSize/h.data.response.compressedSize}.
456
- Total since snapshot: ${(this._eventBytesSinceSnapshot/1e6).toFixed(1)}MB`)):((o=h.data.response)==null?void 0:o.type)===Ae.CustomEvent?this.addCustomEvent(h.data.response.tag,h.data.response.payload):((a=h.data.response)==null?void 0:a.type)===Ae.Stop&&(Ie("worker.onmessage","warn","Stopping recording due to worker failure",h.data.response),this.stop(!1))};let m=hs();if(this.reloaded=!1,!((d=this.sessionData)!=null&&d.sessionSecureID)&&m!=null&&m.sessionSecureID)this.sessionData=m,this.options.sessionSecureID=m.sessionSecureID,this.reloaded=!0,this.logger.log(`Tab reloaded, continuing previous session: ${this.sessionData.sessionSecureID}`);else{for(const h of Object.values(ve))us(h);this.sessionData={sessionSecureID:this.options.sessionSecureID,projectID:0,sessionStartTime:Date.now()}}this._hasPreviouslyInitialized=!1;try{window.parent.document&&(this._isCrossOriginIframe=!1)}catch{this._isCrossOriginIframe=(f=this.options.recordCrossOriginIframe)!=null?f:!0}this._initMembers(this.options)}_reset(t){return We(this,arguments,function*({forceNew:s,sessionKey:n}){this.pushPayloadTimerId&&(clearTimeout(this.pushPayloadTimerId),this.pushPayloadTimerId=void 0);let r,l;if(!s)try{r=Te(ve.USER_IDENTIFIER);const d=Te(ve.USER_OBJECT);d&&(l=JSON.parse(d))}catch{}for(const d of Object.values(ve))us(d);this.sessionData.sessionSecureID=n?Nt(`${this.organizationID}-${n}`):Nt(),this.sessionData.sessionKey=n,this.sessionData.sessionStartTime=Date.now(),this.options.sessionSecureID=this.sessionData.sessionSecureID,this.stop(),this._worker.postMessage({message:{type:Ae.Reset}}),yield this.start(),r&&l&&this.identify(r,l)})}_initMembers(t){var s,n,r,l,d,f,m,h,p,o;this.sessionShortcut=!1,this._recordingStartTime=0,this._isOnLocalHost=window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"||window.location.hostname==="",this.ready=!1,this.state="NotRecording",this.manualStopped=!1,this.enableSegmentIntegration=!!t.enableSegmentIntegration,this.privacySetting=(s=t.privacySetting)!=null?s:"default",this.enableCanvasRecording=(n=t.enableCanvasRecording)!=null?n:!1,this.inlineImages=(r=t.inlineImages)!=null?r:this._isOnLocalHost,this.inlineVideos=(l=t.inlineVideos)!=null?l:this._isOnLocalHost,this.inlineStylesheet=(d=t.inlineStylesheet)!=null?d:this._isOnLocalHost,this.styleSheetResyncInterval=(f=t.styleSheetResyncInterval)!=null?f:2e3,this.samplingStrategy=H({canvasFactor:.5,canvasMaxSnapshotDimension:360,canvasClearWebGLBuffer:!0,dataUrlOptions:wu()},(m=t.samplingStrategy)!=null?m:{canvas:2}),this._backendUrl=(h=t?.backendUrl)!=null?h:"https://pub.observability.app.launchdarkly.com",this._backendUrl[0]==="/"&&(this._backendUrl=new URL(this._backendUrl,document.baseURI).href);const a=new iu(`${this._backendUrl}`,{headers:{}});Wd(this,Qs,vu(a,qu())),this.environment=(p=t.environment)!=null?p:"production",this.appVersion=t.appVersion,this.serviceName=(o=t.serviceName)!=null?o:"browser",typeof t.organizationID=="string"?this.organizationID=t.organizationID:this.organizationID=t.organizationID.toString(),this.isRunningOnHighlight=this.organizationID==="1"||this.organizationID==="1jdkoe52",this.firstloadVersion=t.firstloadVersion||"unknown",this.sessionShortcut=t.sessionShortcut||!1,this._onToggleFeedbackFormVisibility=()=>{};const i=t,c=ms(i,["firstloadVersion"]);this._optionsInternal=c,this.listeners=[],this.events=[],this.hasSessionUnloaded=!1,this.hasPushedData=!1,window.Intercom&&window.Intercom("onShow",()=>{window.Intercom("update",{highlightSessionURL:this.getCurrentSessionURLWithTimestamp()}),this.addProperties({event:"Intercom onShow"})}),this._eventBytesSinceSnapshot=0,this._lastSnapshotTime=new Date().getTime(),this._lastVisibilityChangeTime=new Date().getTime()}identify(t,s={},n){if(!t||t===""){Ie("identify","warn","Highlight's identify() call was passed an empty identifier.",{user_identifier:t,user_object:s});return}this.sessionData.userIdentifier=t.toString(),this.sessionData.userObject=s,He(ve.USER_IDENTIFIER,t.toString()),He(ve.USER_OBJECT,JSON.stringify(s)),this._worker.postMessage({message:{type:Ae.Identify,userIdentifier:t,userObject:s,source:n}})}track(t,s){this.addProperties(Xe(H({},s),{event:t}))}addProperties(t={},s){const n=H({},t);Object.entries(n).forEach(([r,l])=>{try{structuredClone(l)}catch{delete n[r]}}),this._worker.postMessage({message:{type:Ae.Properties,propertiesObject:n,propertyType:s}})}addSessionProperties(t){this.addProperties(t,{type:"session"})}start(t){return We(this,null,function*(){var s,n,r,l,d,f,m,h,p,o;if(!((s=navigator?.userAgent)!=null&&s.includes("Googlebot")||(n=navigator?.userAgent)!=null&&n.includes("AdsBot")))try{if(t!=null&&t.forceNew){yield this._reset(t);return}if(t!=null&&t.sessionKey&&t?.sessionKey!==this.sessionData.sessionKey){yield this._reset(Xe(H({},t),{forceNew:!0}));return}this.logger.log("Initializing...",t,this.sessionData,this.options),this.sessionData=(r=hs(this.sessionData.sessionSecureID))!=null?r:this.sessionData,(l=this.sessionData)!=null&&l.sessionStartTime?this._recordingStartTime=(d=this.sessionData)==null?void 0:d.sessionStartTime:(this._recordingStartTime=new Date().getTime(),this.sessionData.sessionStartTime=this._recordingStartTime);let a=Te(fn.CLIENT_ID);a||(a=Nt(),He(fn.CLIENT_ID,a));let i;this.options.disableSessionRecording||this.options.disableNetworkRecording!==void 0||typeof this.options.networkRecording=="boolean"?i=!1:i=((f=this.options.networkRecording)==null?void 0:f.recordHeadersAndBody)||!1;let c=[];if(typeof this.options.networkRecording=="object"&&(m=this.options.networkRecording.destinationDomains)!=null&&m.length&&(c=this.options.networkRecording.destinationDomains),this._isCrossOriginIframe)yield this._setupCrossOriginIframe();else{const I=yield Rd(this,Qs).initializeSession({organization_verbose_id:this.organizationID,enable_strict_privacy:this.privacySetting==="strict",privacy_setting:this.privacySetting,enable_recording_network_contents:i,clientVersion:this.firstloadVersion,firstloadVersion:this.firstloadVersion,clientConfig:JSON.stringify(this._optionsInternal),environment:this.environment,id:a,appVersion:this.appVersion,serviceName:this.serviceName,session_secure_id:this.sessionData.sessionSecureID,session_key:this.sessionData.sessionKey,client_id:a,network_recording_domains:c,disable_session_recording:this.options.disableSessionRecording});if(I.initializeSession.secure_id!==this.sessionData.sessionSecureID&&this.logger.log(`Unexpected secure id returned by initializeSession: ${I.initializeSession.secure_id}, expected ${this.sessionData.sessionSecureID}`),this.sessionData.sessionSecureID=I.initializeSession.secure_id,this.sessionData.projectID=parseInt(((h=I?.initializeSession)==null?void 0:h.project_id)||"0"),!this.sessionData.projectID||!this.sessionData.sessionSecureID){ut("error","Failed to initialize Highlight; an error occurred on our end.",this.sessionData);return}}Lt(""),rt(this.sessionData),this.logger.log(`Loaded Highlight
455
+ `," ")))};var Le=Uint8Array,Me=Uint16Array,_i=Int32Array,$i=new Le([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),qi=new Le([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Ma=new Le([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Oa=function(e,t){for(var s=new Me(31),n=0;n<31;++n)s[n]=t+=1<<e[n-1];for(var r=new _i(s[30]),n=1;n<30;++n)for(var l=s[n];l<s[n+1];++l)r[l]=l-s[n]<<5|n;return{b:s,r}},Ka=Oa($i,2),Im=Ka.b,er=Ka.r;Im[28]=258,er[258]=28;for(var Xm=Oa(qi,0),Ea=Xm.r,za=new Me(32768),he=0;he<32768;++he){var nt=(he&43690)>>1|(he&21845)<<1;nt=(nt&52428)>>2|(nt&13107)<<2,nt=(nt&61680)>>4|(nt&3855)<<4,za[he]=((nt&65280)>>8|(nt&255)<<8)>>1}for(var Dt=function(e,t,s){for(var n=e.length,r=0,l=new Me(t);r<n;++r)e[r]&&++l[e[r]-1];var d=new Me(t);for(r=1;r<t;++r)d[r]=d[r-1]+l[r-1]<<1;var f;for(f=new Me(n),r=0;r<n;++r)e[r]&&(f[r]=za[d[e[r]-1]++]>>15-e[r]);return f},ct=new Le(288),he=0;he<144;++he)ct[he]=8;for(var he=144;he<256;++he)ct[he]=9;for(var he=256;he<280;++he)ct[he]=7;for(var he=280;he<288;++he)ct[he]=8;for(var Bs=new Le(32),he=0;he<32;++he)Bs[he]=5;var Vm=Dt(ct,9),Gm=Dt(Bs,5),Pa=function(e){return(e+7)/8|0},Ha=function(e,t,s){return(s==null||s>e.length)&&(s=e.length),new Le(e.subarray(t,s))},je=function(e,t,s){s<<=t&7;var n=t/8|0;e[n]|=s,e[n+1]|=s>>8},Bt=function(e,t,s){s<<=t&7;var n=t/8|0;e[n]|=s,e[n+1]|=s>>8,e[n+2]|=s>>16},tr=function(e,t){for(var s=[],n=0;n<e.length;++n)e[n]&&s.push({s:n,f:e[n]});var r=s.length,l=s.slice();if(!r)return{t:ja,l:0};if(r==1){var d=new Le(s[0].s+1);return d[s[0].s]=1,{t:d,l:1}}s.sort(function(y,g){return y.f-g.f}),s.push({s:-1,f:25001});var f=s[0],m=s[1],h=0,p=1,o=2;for(s[0]={s:-1,f:f.f+m.f,l:f,r:m};p!=r-1;)f=s[s[h].f<s[o].f?h++:o++],m=s[h!=p&&s[h].f<s[o].f?h++:o++],s[p++]={s:-1,f:f.f+m.f,l:f,r:m};for(var a=l[0].s,n=1;n<r;++n)l[n].s>a&&(a=l[n].s);var i=new Me(a+1),c=sr(s[p-1],i,0);if(c>t){var n=0,u=0,b=c-t,S=1<<b;for(l.sort(function(g,V){return i[V.s]-i[g.s]||g.f-V.f});n<r;++n){var Z=l[n].s;if(i[Z]>t)u+=S-(1<<c-i[Z]),i[Z]=t;else break}for(u>>=b;u>0;){var I=l[n].s;i[I]<t?u-=1<<t-i[I]++-1:++n}for(;n>=0&&u;--n){var R=l[n].s;i[R]==t&&(--i[R],++u)}c=t}return{t:new Le(i),l:c}},sr=function(e,t,s){return e.s==-1?Math.max(sr(e.l,t,s+1),sr(e.r,t,s+1)):t[e.s]=s},Da=function(e){for(var t=e.length;t&&!e[--t];);for(var s=new Me(++t),n=0,r=e[0],l=1,d=function(m){s[n++]=m},f=1;f<=t;++f)if(e[f]==r&&f!=t)++l;else{if(!r&&l>2){for(;l>138;l-=138)d(32754);l>2&&(d(l>10?l-11<<5|28690:l-3<<5|12305),l=0)}else if(l>3){for(d(r),--l;l>6;l-=6)d(8304);l>2&&(d(l-3<<5|8208),l=0)}for(;l--;)d(r);l=1,r=e[f]}return{c:s.subarray(0,n),n:t}},Qt=function(e,t){for(var s=0,n=0;n<t.length;++n)s+=e[n]*t[n];return s},Ba=function(e,t,s){var n=s.length,r=Pa(t+2);e[r]=n&255,e[r+1]=n>>8,e[r+2]=e[r]^255,e[r+3]=e[r+1]^255;for(var l=0;l<n;++l)e[r+l+4]=s[l];return(r+4+n)*8},Qa=function(e,t,s,n,r,l,d,f,m,h,p){je(t,p++,s),++r[256];for(var o=tr(r,15),a=o.t,i=o.l,c=tr(l,15),u=c.t,b=c.l,S=Da(a),Z=S.c,I=S.n,R=Da(u),y=R.c,g=R.n,V=new Me(19),v=0;v<Z.length;++v)++V[Z[v]&31];for(var v=0;v<y.length;++v)++V[y[v]&31];for(var X=tr(V,7),W=X.t,k=X.l,N=19;N>4&&!W[Ma[N-1]];--N);var j=h+5<<3,G=Qt(r,ct)+Qt(l,Bs)+d,w=Qt(r,a)+Qt(l,u)+d+14+3*N+Qt(V,W)+2*V[16]+3*V[17]+7*V[18];if(m>=0&&j<=G&&j<=w)return Ba(t,p,e.subarray(m,m+h));var T,Y,O,J;if(je(t,p,1+(w<G)),p+=2,w<G){T=Dt(a,i),Y=a,O=Dt(u,b),J=u;var q=Dt(W,k);je(t,p,I-257),je(t,p+5,g-1),je(t,p+10,N-4),p+=14;for(var v=0;v<N;++v)je(t,p+3*v,W[Ma[v]]);p+=3*N;for(var B=[Z,y],C=0;C<2;++C)for(var oe=B[C],v=0;v<oe.length;++v){var ue=oe[v]&31;je(t,p,q[ue]),p+=W[ue],ue>15&&(je(t,p,oe[v]>>5&127),p+=oe[v]>>12)}}else T=Vm,Y=ct,O=Gm,J=Bs;for(var v=0;v<f;++v){var le=n[v];if(le>255){var ue=le>>18&31;Bt(t,p,T[ue+257]),p+=Y[ue+257],ue>7&&(je(t,p,le>>23&31),p+=$i[ue]);var Se=le&31;Bt(t,p,O[Se]),p+=J[Se],Se>3&&(Bt(t,p,le>>5&8191),p+=qi[Se])}else Bt(t,p,T[le]),p+=Y[le]}return Bt(t,p,T[256]),p+Y[256]},Rm=new _i([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),ja=new Le(0),vm=function(e,t,s,n,r,l){var d=l.z||e.length,f=new Le(n+d+5*(1+Math.ceil(d/7e3))+r),m=f.subarray(n,f.length-r),h=l.l,p=(l.r||0)&7;if(t){p&&(m[0]=l.r>>3);for(var o=Rm[t-1],a=o>>13,i=o&8191,c=(1<<s)-1,u=l.p||new Me(32768),b=l.h||new Me(c+1),S=Math.ceil(s/3),Z=2*S,I=function(re){return(e[re]^e[re+1]<<S^e[re+2]<<Z)&c},R=new _i(25e3),y=new Me(288),g=new Me(32),V=0,v=0,X=l.i||0,W=0,k=l.w||0,N=0;X+2<d;++X){var j=I(X),G=X&32767,w=b[j];if(u[G]=w,b[j]=G,k<=X){var T=d-X;if((V>7e3||W>24576)&&(T>423||!h)){p=Qa(e,m,0,R,y,g,v,W,N,X-N,p),W=V=v=0,N=X;for(var Y=0;Y<286;++Y)y[Y]=0;for(var Y=0;Y<30;++Y)g[Y]=0}var O=2,J=0,q=i,B=G-w&32767;if(T>2&&j==I(X-B))for(var C=Math.min(a,T)-1,oe=Math.min(32767,X),ue=Math.min(258,T);B<=oe&&--q&&G!=w;){if(e[X+O]==e[X+O-B]){for(var le=0;le<ue&&e[X+le]==e[X+le-B];++le);if(le>O){if(O=le,J=B,le>C)break;for(var Se=Math.min(B,le-2),U=0,Y=0;Y<Se;++Y){var K=X-B+Y&32767,M=u[K],z=K-M&32767;z>U&&(U=z,w=K)}}}G=w,w=u[G],B+=G-w&32767}if(J){R[W++]=268435456|er[O]<<18|Ea[J];var E=er[O]&31,D=Ea[J]&31;v+=$i[E]+qi[D],++y[257+E],++g[D],k=X+O,++V}else R[W++]=e[X],++y[e[X]]}}for(X=Math.max(X,k);X<d;++X)R[W++]=e[X],++y[e[X]];p=Qa(e,m,h,R,y,g,v,W,N,X-N,p),h||(l.r=p&7|m[p/8|0]<<3,p-=7,l.h=b,l.p=u,l.i=X,l.w=k)}else{for(var X=l.w||0;X<d+h;X+=65535){var _=X+65535;_>=d&&(m[p/8|0]=h,_=d),p=Ba(m,p+1,e.subarray(X,_))}l.i=d}return Ha(f,0,n+Pa(p)+r)},Wm=function(){for(var e=new Int32Array(256),t=0;t<256;++t){for(var s=t,n=9;--n;)s=(s&1&&-306674912)^s>>>1;e[t]=s}return e}(),wm=function(){var e=-1;return{p:function(t){for(var s=e,n=0;n<t.length;++n)s=Wm[s&255^t[n]]^s>>>8;e=s},d:function(){return~e}}},km=function(e,t,s,n,r){if(!r&&(r={l:1},t.dictionary)){var l=t.dictionary.subarray(-32768),d=new Le(l.length+e.length);d.set(l),d.set(e,l.length),e=d,r.w=l.length}return vm(e,t.level==null?6:t.level,t.mem==null?r.l?Math.ceil(Math.max(8,Math.min(13,Math.log(e.length)))*1.5):20:12+t.mem,s,n,r)},nr=function(e,t,s){for(;s;++t)e[t]=s,s>>>=8},Cm=function(e,t){var s=t.filename;if(e[0]=31,e[1]=139,e[2]=8,e[8]=t.level<2?4:t.level==9?2:0,e[9]=3,t.mtime!=0&&nr(e,4,Math.floor(new Date(t.mtime||Date.now())/1e3)),s){e[3]=8;for(var n=0;n<=s.length;++n)e[n+10]=s.charCodeAt(n)}},xm=function(e){return 10+(e.filename?e.filename.length+1:0)};function Tm(e,t){t||(t={});var s=wm(),n=e.length;s.p(e);var r=km(e,t,xm(t),8),l=r.length;return Cm(r,t),nr(r,l-8,s.d()),nr(r,l-4,n),r}var Aa=typeof TextEncoder<"u"&&new TextEncoder,Lm=typeof TextDecoder<"u"&&new TextDecoder;try{Lm.decode(ja,{stream:!0})}catch{}function Nm(e,t){var s;if(Aa)return Aa.encode(e);for(var n=e.length,r=new Le(e.length+(e.length>>1)),l=0,d=function(p){r[l++]=p},s=0;s<n;++s){if(l+5>r.length){var f=new Le(l+8+(n-s<<1));f.set(r),r=f}var m=e.charCodeAt(s);m<128||t?d(m):m<2048?(d(192|m>>6),d(128|m&63)):m>55295&&m<57344?(m=65536+(m&1047552)|e.charCodeAt(++s)&1023,d(240|m>>18),d(128|m>>12&63),d(128|m>>6&63),d(128|m&63)):(d(224|m>>12),d(128|m>>6&63),d(128|m&63))}return Ha(r,0,l)}function Jm(e){return We(this,null,function*(){const t=Nm(JSON.stringify(e)),s=Tm(t),n=yield new Promise(r=>{const l=new FileReader;l.onload=()=>r(l.result),l.readAsDataURL(new Blob([new Uint8Array(s)]))});return{compressedBase64:n.slice(n.indexOf(",")+1),compressedSize:s.length,bufferLength:t.length}})}const _a="dmFyIFFyPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxYcj1PYmplY3QuZGVmaW5lUHJvcGVydGllczt2YXIgV3I9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM7dmFyICRlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIG9uPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksYW49T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTt2YXIgbXQ9KEYsQiwkKT0+QiBpbiBGP1FyKEYsQix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6JH0pOkZbQl09JCxEPShGLEIpPT57Zm9yKHZhciAkIGluIEJ8fChCPXt9KSlvbi5jYWxsKEIsJCkmJm10KEYsJCxCWyRdKTtpZigkZSlmb3IodmFyICQgb2YgJGUoQikpYW4uY2FsbChCLCQpJiZtdChGLCQsQlskXSk7cmV0dXJuIEZ9LFVlPShGLEIpPT5YcihGLFdyKEIpKTt2YXIgdmU9KEYsQik9Pnt2YXIgJD17fTtmb3IodmFyIGVlIGluIEYpb24uY2FsbChGLGVlKSYmQi5pbmRleE9mKGVlKTwwJiYoJFtlZV09RltlZV0pO2lmKEYhPW51bGwmJiRlKWZvcih2YXIgZWUgb2YgJGUoRikpQi5pbmRleE9mKGVlKTwwJiZhbi5jYWxsKEYsZWUpJiYoJFtlZV09RltlZV0pO3JldHVybiAkfTt2YXIgeXQ9KEYsQiwkKT0+bXQoRix0eXBlb2YgQiE9InN5bWJvbCI/QisiIjpCLCQpO3ZhciBKPShGLEIsJCk9Pm5ldyBQcm9taXNlKChlZSxPZSk9Pnt2YXIgVmU9c2U9Pnt0cnl7RWUoJC5uZXh0KHNlKSl9Y2F0Y2goX2Upe09lKF9lKX19LGxlPXNlPT57dHJ5e0VlKCQudGhyb3coc2UpKX1jYXRjaChfZSl7T2UoX2UpfX0sRWU9c2U9PnNlLmRvbmU/ZWUoc2UudmFsdWUpOlByb21pc2UucmVzb2x2ZShzZS52YWx1ZSkudGhlbihWZSxsZSk7RWUoKCQ9JC5hcHBseShGLEIpKS5uZXh0KCkpfSk7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NvbnN0IEY9SlNPTixCPWU9PmUudG9VcHBlckNhc2UoKSwkPWU9Pntjb25zdCB0PXt9O3JldHVybiBlLmZvckVhY2goKG4saSk9Pnt0W2ldPW59KSx0fSxlZT0oZSx0LG4pPT5lLmRvY3VtZW50P2U6e2RvY3VtZW50OmUsdmFyaWFibGVzOnQscmVxdWVzdEhlYWRlcnM6bixzaWduYWw6dm9pZCAwfSxPZT0oZSx0LG4pPT5lLnF1ZXJ5P2U6e3F1ZXJ5OmUsdmFyaWFibGVzOnQscmVxdWVzdEhlYWRlcnM6bixzaWduYWw6dm9pZCAwfSxWZT0oZSx0KT0+ZS5kb2N1bWVudHM/ZTp7ZG9jdW1lbnRzOmUscmVxdWVzdEhlYWRlcnM6dCxzaWduYWw6dm9pZCAwfTtmdW5jdGlvbiBsZShlLHQpe2lmKCEhIWUpdGhyb3cgbmV3IEVycm9yKHQpfWZ1bmN0aW9uIEVlKGUpe3JldHVybiB0eXBlb2YgZT09Im9iamVjdCImJmUhPT1udWxsfWZ1bmN0aW9uIHNlKGUsdCl7aWYoISEhZSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgaW52YXJpYW50IHRyaWdnZXJlZC4iKX1jb25zdCBfZT0vXHJcbnxbXG5ccl0vZztmdW5jdGlvbiBxZShlLHQpe2xldCBuPTAsaT0xO2Zvcihjb25zdCByIG9mIGUuYm9keS5tYXRjaEFsbChfZSkpe2lmKHR5cGVvZiByLmluZGV4PT0ibnVtYmVyInx8c2UoITEpLHIuaW5kZXg+PXQpYnJlYWs7bj1yLmluZGV4K3JbMF0ubGVuZ3RoLGkrPTF9cmV0dXJue2xpbmU6aSxjb2x1bW46dCsxLW59fWZ1bmN0aW9uIGNuKGUpe3JldHVybiBndChlLnNvdXJjZSxxZShlLnNvdXJjZSxlLnN0YXJ0KSl9ZnVuY3Rpb24gZ3QoZSx0KXtjb25zdCBuPWUubG9jYXRpb25PZmZzZXQuY29sdW1uLTEsaT0iIi5wYWRTdGFydChuKStlLmJvZHkscj10LmxpbmUtMSxzPWUubG9jYXRpb25PZmZzZXQubGluZS0xLG89dC5saW5lK3MsYz10LmxpbmU9PT0xP246MCxoPXQuY29sdW1uK2MsZD1gJHtlLm5hbWV9OiR7b306JHtofQpgLHU9aS5zcGxpdCgvXHJcbnxbXG5ccl0vZykseT11W3JdO2lmKHkubGVuZ3RoPjEyMCl7Y29uc3Qgdj1NYXRoLmZsb29yKGgvODApLFQ9aCU4MCxtPVtdO2ZvcihsZXQgTj0wO048eS5sZW5ndGg7Tis9ODApbS5wdXNoKHkuc2xpY2UoTixOKzgwKSk7cmV0dXJuIGQrdnQoW1tgJHtvfSB8YCxtWzBdXSwuLi5tLnNsaWNlKDEsdisxKS5tYXAoTj0+WyJ8IixOXSksWyJ8IiwiXiIucGFkU3RhcnQoVCldLFsifCIsbVt2KzFdXV0pfXJldHVybiBkK3Z0KFtbYCR7by0xfSB8YCx1W3ItMV1dLFtgJHtvfSB8YCx5XSxbInwiLCJeIi5wYWRTdGFydChoKV0sW2Ake28rMX0gfGAsdVtyKzFdXV0pfWZ1bmN0aW9uIHZ0KGUpe2NvbnN0IHQ9ZS5maWx0ZXIoKFtpLHJdKT0+ciE9PXZvaWQgMCksbj1NYXRoLm1heCguLi50Lm1hcCgoW2ldKT0+aS5sZW5ndGgpKTtyZXR1cm4gdC5tYXAoKFtpLHJdKT0+aS5wYWRTdGFydChuKSsocj8iICIrcjoiIikpLmpvaW4oYApgKX1mdW5jdGlvbiB1bihlKXtjb25zdCB0PWVbMF07cmV0dXJuIHQ9PW51bGx8fCJraW5kImluIHR8fCJsZW5ndGgiaW4gdD97bm9kZXM6dCxzb3VyY2U6ZVsxXSxwb3NpdGlvbnM6ZVsyXSxwYXRoOmVbM10sb3JpZ2luYWxFcnJvcjplWzRdLGV4dGVuc2lvbnM6ZVs1XX06dH1jbGFzcyBqZSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQsLi4ubil7dmFyIGkscixzO2NvbnN0e25vZGVzOm8sc291cmNlOmMscG9zaXRpb25zOmgscGF0aDpkLG9yaWdpbmFsRXJyb3I6dSxleHRlbnNpb25zOnl9PXVuKG4pO3N1cGVyKHQpLHRoaXMubmFtZT0iR3JhcGhRTEVycm9yIix0aGlzLnBhdGg9ZCE9bnVsbD9kOnZvaWQgMCx0aGlzLm9yaWdpbmFsRXJyb3I9dSE9bnVsbD91OnZvaWQgMCx0aGlzLm5vZGVzPUV0KEFycmF5LmlzQXJyYXkobyk/bzpvP1tvXTp2b2lkIDApO2NvbnN0IHY9RXQoKGk9dGhpcy5ub2Rlcyk9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLm1hcChtPT5tLmxvYykuZmlsdGVyKG09Pm0hPW51bGwpKTt0aGlzLnNvdXJjZT1jIT1udWxsP2M6dj09bnVsbHx8KHI9dlswXSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLnNvdXJjZSx0aGlzLnBvc2l0aW9ucz1oIT1udWxsP2g6dj09bnVsbD92b2lkIDA6di5tYXAobT0+bS5zdGFydCksdGhpcy5sb2NhdGlvbnM9aCYmYz9oLm1hcChtPT5xZShjLG0pKTp2PT1udWxsP3ZvaWQgMDp2Lm1hcChtPT5xZShtLnNvdXJjZSxtLnN0YXJ0KSk7Y29uc3QgVD1FZSh1PT1udWxsP3ZvaWQgMDp1LmV4dGVuc2lvbnMpP3U9PW51bGw/dm9pZCAwOnUuZXh0ZW5zaW9uczp2b2lkIDA7dGhpcy5leHRlbnNpb25zPShzPXkhPW51bGw/eTpUKSE9PW51bGwmJnMhPT12b2lkIDA/czpPYmplY3QuY3JlYXRlKG51bGwpLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMse21lc3NhZ2U6e3dyaXRhYmxlOiEwLGVudW1lcmFibGU6ITB9LG5hbWU6e2VudW1lcmFibGU6ITF9LG5vZGVzOntlbnVtZXJhYmxlOiExfSxzb3VyY2U6e2VudW1lcmFibGU6ITF9LHBvc2l0aW9uczp7ZW51bWVyYWJsZTohMX0sb3JpZ2luYWxFcnJvcjp7ZW51bWVyYWJsZTohMX19KSx1IT1udWxsJiZ1LnN0YWNrP09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJzdGFjayIse3ZhbHVlOnUuc3RhY2ssd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSk6RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyxqZSk6T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsInN0YWNrIix7dmFsdWU6RXJyb3IoKS5zdGFjayx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9KX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJHcmFwaFFMRXJyb3IifXRvU3RyaW5nKCl7bGV0IHQ9dGhpcy5tZXNzYWdlO2lmKHRoaXMubm9kZXMpZm9yKGNvbnN0IG4gb2YgdGhpcy5ub2RlcyluLmxvYyYmKHQrPWAKCmArY24obi5sb2MpKTtlbHNlIGlmKHRoaXMuc291cmNlJiZ0aGlzLmxvY2F0aW9ucylmb3IoY29uc3QgbiBvZiB0aGlzLmxvY2F0aW9ucyl0Kz1gCgpgK2d0KHRoaXMuc291cmNlLG4pO3JldHVybiB0fXRvSlNPTigpe2NvbnN0IHQ9e21lc3NhZ2U6dGhpcy5tZXNzYWdlfTtyZXR1cm4gdGhpcy5sb2NhdGlvbnMhPW51bGwmJih0LmxvY2F0aW9ucz10aGlzLmxvY2F0aW9ucyksdGhpcy5wYXRoIT1udWxsJiYodC5wYXRoPXRoaXMucGF0aCksdGhpcy5leHRlbnNpb25zIT1udWxsJiZPYmplY3Qua2V5cyh0aGlzLmV4dGVuc2lvbnMpLmxlbmd0aD4wJiYodC5leHRlbnNpb25zPXRoaXMuZXh0ZW5zaW9ucyksdH19ZnVuY3Rpb24gRXQoZSl7cmV0dXJuIGU9PT12b2lkIDB8fGUubGVuZ3RoPT09MD92b2lkIDA6ZX1mdW5jdGlvbiBHKGUsdCxuKXtyZXR1cm4gbmV3IGplKGBTeW50YXggRXJyb3I6ICR7bn1gLHtzb3VyY2U6ZSxwb3NpdGlvbnM6W3RdfSl9Y2xhc3MgbG57Y29uc3RydWN0b3IodCxuLGkpe3RoaXMuc3RhcnQ9dC5zdGFydCx0aGlzLmVuZD1uLmVuZCx0aGlzLnN0YXJ0VG9rZW49dCx0aGlzLmVuZFRva2VuPW4sdGhpcy5zb3VyY2U9aX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJMb2NhdGlvbiJ9dG9KU09OKCl7cmV0dXJue3N0YXJ0OnRoaXMuc3RhcnQsZW5kOnRoaXMuZW5kfX19Y2xhc3MgX3R7Y29uc3RydWN0b3IodCxuLGkscixzLG8pe3RoaXMua2luZD10LHRoaXMuc3RhcnQ9bix0aGlzLmVuZD1pLHRoaXMubGluZT1yLHRoaXMuY29sdW1uPXMsdGhpcy52YWx1ZT1vLHRoaXMucHJldj1udWxsLHRoaXMubmV4dD1udWxsfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIlRva2VuIn10b0pTT04oKXtyZXR1cm57a2luZDp0aGlzLmtpbmQsdmFsdWU6dGhpcy52YWx1ZSxsaW5lOnRoaXMubGluZSxjb2x1bW46dGhpcy5jb2x1bW59fX1jb25zdCBidD17TmFtZTpbXSxEb2N1bWVudDpbImRlZmluaXRpb25zIl0sT3BlcmF0aW9uRGVmaW5pdGlvbjpbIm5hbWUiLCJ2YXJpYWJsZURlZmluaXRpb25zIiwiZGlyZWN0aXZlcyIsInNlbGVjdGlvblNldCJdLFZhcmlhYmxlRGVmaW5pdGlvbjpbInZhcmlhYmxlIiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsImRpcmVjdGl2ZXMiXSxWYXJpYWJsZTpbIm5hbWUiXSxTZWxlY3Rpb25TZXQ6WyJzZWxlY3Rpb25zIl0sRmllbGQ6WyJhbGlhcyIsIm5hbWUiLCJhcmd1bWVudHMiLCJkaXJlY3RpdmVzIiwic2VsZWN0aW9uU2V0Il0sQXJndW1lbnQ6WyJuYW1lIiwidmFsdWUiXSxGcmFnbWVudFNwcmVhZDpbIm5hbWUiLCJkaXJlY3RpdmVzIl0sSW5saW5lRnJhZ21lbnQ6WyJ0eXBlQ29uZGl0aW9uIiwiZGlyZWN0aXZlcyIsInNlbGVjdGlvblNldCJdLEZyYWdtZW50RGVmaW5pdGlvbjpbIm5hbWUiLCJ2YXJpYWJsZURlZmluaXRpb25zIiwidHlwZUNvbmRpdGlvbiIsImRpcmVjdGl2ZXMiLCJzZWxlY3Rpb25TZXQiXSxJbnRWYWx1ZTpbXSxGbG9hdFZhbHVlOltdLFN0cmluZ1ZhbHVlOltdLEJvb2xlYW5WYWx1ZTpbXSxOdWxsVmFsdWU6W10sRW51bVZhbHVlOltdLExpc3RWYWx1ZTpbInZhbHVlcyJdLE9iamVjdFZhbHVlOlsiZmllbGRzIl0sT2JqZWN0RmllbGQ6WyJuYW1lIiwidmFsdWUiXSxEaXJlY3RpdmU6WyJuYW1lIiwiYXJndW1lbnRzIl0sTmFtZWRUeXBlOlsibmFtZSJdLExpc3RUeXBlOlsidHlwZSJdLE5vbk51bGxUeXBlOlsidHlwZSJdLFNjaGVtYURlZmluaXRpb246WyJkZXNjcmlwdGlvbiIsImRpcmVjdGl2ZXMiLCJvcGVyYXRpb25UeXBlcyJdLE9wZXJhdGlvblR5cGVEZWZpbml0aW9uOlsidHlwZSJdLFNjYWxhclR5cGVEZWZpbml0aW9uOlsiZGVzY3JpcHRpb24iLCJuYW1lIiwiZGlyZWN0aXZlcyJdLE9iamVjdFR5cGVEZWZpbml0aW9uOlsiZGVzY3JpcHRpb24iLCJuYW1lIiwiaW50ZXJmYWNlcyIsImRpcmVjdGl2ZXMiLCJmaWVsZHMiXSxGaWVsZERlZmluaXRpb246WyJkZXNjcmlwdGlvbiIsIm5hbWUiLCJhcmd1bWVudHMiLCJ0eXBlIiwiZGlyZWN0aXZlcyJdLElucHV0VmFsdWVEZWZpbml0aW9uOlsiZGVzY3JpcHRpb24iLCJuYW1lIiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsImRpcmVjdGl2ZXMiXSxJbnRlcmZhY2VUeXBlRGVmaW5pdGlvbjpbImRlc2NyaXB0aW9uIiwibmFtZSIsImludGVyZmFjZXMiLCJkaXJlY3RpdmVzIiwiZmllbGRzIl0sVW5pb25UeXBlRGVmaW5pdGlvbjpbImRlc2NyaXB0aW9uIiwibmFtZSIsImRpcmVjdGl2ZXMiLCJ0eXBlcyJdLEVudW1UeXBlRGVmaW5pdGlvbjpbImRlc2NyaXB0aW9uIiwibmFtZSIsImRpcmVjdGl2ZXMiLCJ2YWx1ZXMiXSxFbnVtVmFsdWVEZWZpbml0aW9uOlsiZGVzY3JpcHRpb24iLCJuYW1lIiwiZGlyZWN0aXZlcyJdLElucHV0T2JqZWN0VHlwZURlZmluaXRpb246WyJkZXNjcmlwdGlvbiIsIm5hbWUiLCJkaXJlY3RpdmVzIiwiZmllbGRzIl0sRGlyZWN0aXZlRGVmaW5pdGlvbjpbImRlc2NyaXB0aW9uIiwibmFtZSIsImFyZ3VtZW50cyIsImxvY2F0aW9ucyJdLFNjaGVtYUV4dGVuc2lvbjpbImRpcmVjdGl2ZXMiLCJvcGVyYXRpb25UeXBlcyJdLFNjYWxhclR5cGVFeHRlbnNpb246WyJuYW1lIiwiZGlyZWN0aXZlcyJdLE9iamVjdFR5cGVFeHRlbnNpb246WyJuYW1lIiwiaW50ZXJmYWNlcyIsImRpcmVjdGl2ZXMiLCJmaWVsZHMiXSxJbnRlcmZhY2VUeXBlRXh0ZW5zaW9uOlsibmFtZSIsImludGVyZmFjZXMiLCJkaXJlY3RpdmVzIiwiZmllbGRzIl0sVW5pb25UeXBlRXh0ZW5zaW9uOlsibmFtZSIsImRpcmVjdGl2ZXMiLCJ0eXBlcyJdLEVudW1UeXBlRXh0ZW5zaW9uOlsibmFtZSIsImRpcmVjdGl2ZXMiLCJ2YWx1ZXMiXSxJbnB1dE9iamVjdFR5cGVFeHRlbnNpb246WyJuYW1lIiwiZGlyZWN0aXZlcyIsImZpZWxkcyJdfSxobj1uZXcgU2V0KE9iamVjdC5rZXlzKGJ0KSk7ZnVuY3Rpb24gVHQoZSl7Y29uc3QgdD1lPT1udWxsP3ZvaWQgMDplLmtpbmQ7cmV0dXJuIHR5cGVvZiB0PT0ic3RyaW5nIiYmaG4uaGFzKHQpfXZhciBoZTsoZnVuY3Rpb24oZSl7ZS5RVUVSWT0icXVlcnkiLGUuTVVUQVRJT049Im11dGF0aW9uIixlLlNVQlNDUklQVElPTj0ic3Vic2NyaXB0aW9uIn0pKGhlfHwoaGU9e30pKTt2YXIgR2U7KGZ1bmN0aW9uKGUpe2UuUVVFUlk9IlFVRVJZIixlLk1VVEFUSU9OPSJNVVRBVElPTiIsZS5TVUJTQ1JJUFRJT049IlNVQlNDUklQVElPTiIsZS5GSUVMRD0iRklFTEQiLGUuRlJBR01FTlRfREVGSU5JVElPTj0iRlJBR01FTlRfREVGSU5JVElPTiIsZS5GUkFHTUVOVF9TUFJFQUQ9IkZSQUdNRU5UX1NQUkVBRCIsZS5JTkxJTkVfRlJBR01FTlQ9IklOTElORV9GUkFHTUVOVCIsZS5WQVJJQUJMRV9ERUZJTklUSU9OPSJWQVJJQUJMRV9ERUZJTklUSU9OIixlLlNDSEVNQT0iU0NIRU1BIixlLlNDQUxBUj0iU0NBTEFSIixlLk9CSkVDVD0iT0JKRUNUIixlLkZJRUxEX0RFRklOSVRJT049IkZJRUxEX0RFRklOSVRJT04iLGUuQVJHVU1FTlRfREVGSU5JVElPTj0iQVJHVU1FTlRfREVGSU5JVElPTiIsZS5JTlRFUkZBQ0U9IklOVEVSRkFDRSIsZS5VTklPTj0iVU5JT04iLGUuRU5VTT0iRU5VTSIsZS5FTlVNX1ZBTFVFPSJFTlVNX1ZBTFVFIixlLklOUFVUX09CSkVDVD0iSU5QVVRfT0JKRUNUIixlLklOUFVUX0ZJRUxEX0RFRklOSVRJT049IklOUFVUX0ZJRUxEX0RFRklOSVRJT04ifSkoR2V8fChHZT17fSkpO3ZhciBiOyhmdW5jdGlvbihlKXtlLk5BTUU9Ik5hbWUiLGUuRE9DVU1FTlQ9IkRvY3VtZW50IixlLk9QRVJBVElPTl9ERUZJTklUSU9OPSJPcGVyYXRpb25EZWZpbml0aW9uIixlLlZBUklBQkxFX0RFRklOSVRJT049IlZhcmlhYmxlRGVmaW5pdGlvbiIsZS5TRUxFQ1RJT05fU0VUPSJTZWxlY3Rpb25TZXQiLGUuRklFTEQ9IkZpZWxkIixlLkFSR1VNRU5UPSJBcmd1bWVudCIsZS5GUkFHTUVOVF9TUFJFQUQ9IkZyYWdtZW50U3ByZWFkIixlLklOTElORV9GUkFHTUVOVD0iSW5saW5lRnJhZ21lbnQiLGUuRlJBR01FTlRfREVGSU5JVElPTj0iRnJhZ21lbnREZWZpbml0aW9uIixlLlZBUklBQkxFPSJWYXJpYWJsZSIsZS5JTlQ9IkludFZhbHVlIixlLkZMT0FUPSJGbG9hdFZhbHVlIixlLlNUUklORz0iU3RyaW5nVmFsdWUiLGUuQk9PTEVBTj0iQm9vbGVhblZhbHVlIixlLk5VTEw9Ik51bGxWYWx1ZSIsZS5FTlVNPSJFbnVtVmFsdWUiLGUuTElTVD0iTGlzdFZhbHVlIixlLk9CSkVDVD0iT2JqZWN0VmFsdWUiLGUuT0JKRUNUX0ZJRUxEPSJPYmplY3RGaWVsZCIsZS5ESVJFQ1RJVkU9IkRpcmVjdGl2ZSIsZS5OQU1FRF9UWVBFPSJOYW1lZFR5cGUiLGUuTElTVF9UWVBFPSJMaXN0VHlwZSIsZS5OT05fTlVMTF9UWVBFPSJOb25OdWxsVHlwZSIsZS5TQ0hFTUFfREVGSU5JVElPTj0iU2NoZW1hRGVmaW5pdGlvbiIsZS5PUEVSQVRJT05fVFlQRV9ERUZJTklUSU9OPSJPcGVyYXRpb25UeXBlRGVmaW5pdGlvbiIsZS5TQ0FMQVJfVFlQRV9ERUZJTklUSU9OPSJTY2FsYXJUeXBlRGVmaW5pdGlvbiIsZS5PQkpFQ1RfVFlQRV9ERUZJTklUSU9OPSJPYmplY3RUeXBlRGVmaW5pdGlvbiIsZS5GSUVMRF9ERUZJTklUSU9OPSJGaWVsZERlZmluaXRpb24iLGUuSU5QVVRfVkFMVUVfREVGSU5JVElPTj0iSW5wdXRWYWx1ZURlZmluaXRpb24iLGUuSU5URVJGQUNFX1RZUEVfREVGSU5JVElPTj0iSW50ZXJmYWNlVHlwZURlZmluaXRpb24iLGUuVU5JT05fVFlQRV9ERUZJTklUSU9OPSJVbmlvblR5cGVEZWZpbml0aW9uIixlLkVOVU1fVFlQRV9ERUZJTklUSU9OPSJFbnVtVHlwZURlZmluaXRpb24iLGUuRU5VTV9WQUxVRV9ERUZJTklUSU9OPSJFbnVtVmFsdWVEZWZpbml0aW9uIixlLklOUFVUX09CSkVDVF9UWVBFX0RFRklOSVRJT049IklucHV0T2JqZWN0VHlwZURlZmluaXRpb24iLGUuRElSRUNUSVZFX0RFRklOSVRJT049IkRpcmVjdGl2ZURlZmluaXRpb24iLGUuU0NIRU1BX0VYVEVOU0lPTj0iU2NoZW1hRXh0ZW5zaW9uIixlLlNDQUxBUl9UWVBFX0VYVEVOU0lPTj0iU2NhbGFyVHlwZUV4dGVuc2lvbiIsZS5PQkpFQ1RfVFlQRV9FWFRFTlNJT049Ik9iamVjdFR5cGVFeHRlbnNpb24iLGUuSU5URVJGQUNFX1RZUEVfRVhURU5TSU9OPSJJbnRlcmZhY2VUeXBlRXh0ZW5zaW9uIixlLlVOSU9OX1RZUEVfRVhURU5TSU9OPSJVbmlvblR5cGVFeHRlbnNpb24iLGUuRU5VTV9UWVBFX0VYVEVOU0lPTj0iRW51bVR5cGVFeHRlbnNpb24iLGUuSU5QVVRfT0JKRUNUX1RZUEVfRVhURU5TSU9OPSJJbnB1dE9iamVjdFR5cGVFeHRlbnNpb24ifSkoYnx8KGI9e30pKTtmdW5jdGlvbiB6ZShlKXtyZXR1cm4gZT09PTl8fGU9PT0zMn1mdW5jdGlvbiBiZShlKXtyZXR1cm4gZT49NDgmJmU8PTU3fWZ1bmN0aW9uIE50KGUpe3JldHVybiBlPj05NyYmZTw9MTIyfHxlPj02NSYmZTw9OTB9ZnVuY3Rpb24geHQoZSl7cmV0dXJuIE50KGUpfHxlPT09OTV9ZnVuY3Rpb24gZm4oZSl7cmV0dXJuIE50KGUpfHxiZShlKXx8ZT09PTk1fWZ1bmN0aW9uIGRuKGUpe3ZhciB0O2xldCBuPU51bWJlci5NQVhfU0FGRV9JTlRFR0VSLGk9bnVsbCxyPS0xO2ZvcihsZXQgbz0wO288ZS5sZW5ndGg7KytvKXt2YXIgcztjb25zdCBjPWVbb10saD1wbihjKTtoIT09Yy5sZW5ndGgmJihpPShzPWkpIT09bnVsbCYmcyE9PXZvaWQgMD9zOm8scj1vLG8hPT0wJiZoPG4mJihuPWgpKX1yZXR1cm4gZS5tYXAoKG8sYyk9PmM9PT0wP286by5zbGljZShuKSkuc2xpY2UoKHQ9aSkhPT1udWxsJiZ0IT09dm9pZCAwP3Q6MCxyKzEpfWZ1bmN0aW9uIHBuKGUpe2xldCB0PTA7Zm9yKDt0PGUubGVuZ3RoJiZ6ZShlLmNoYXJDb2RlQXQodCkpOykrK3Q7cmV0dXJuIHR9ZnVuY3Rpb24gbW4oZSx0KXtjb25zdCBuPWUucmVwbGFjZSgvIiIiL2csJ1xcIiIiJyksaT1uLnNwbGl0KC9cclxufFtcblxyXS9nKSxyPWkubGVuZ3RoPT09MSxzPWkubGVuZ3RoPjEmJmkuc2xpY2UoMSkuZXZlcnkoVD0+VC5sZW5ndGg9PT0wfHx6ZShULmNoYXJDb2RlQXQoMCkpKSxvPW4uZW5kc1dpdGgoJ1xcIiIiJyksYz1lLmVuZHNXaXRoKCciJykmJiFvLGg9ZS5lbmRzV2l0aCgiXFwiKSxkPWN8fGgsdT0hcnx8ZS5sZW5ndGg+NzB8fGR8fHN8fG87bGV0IHk9IiI7Y29uc3Qgdj1yJiZ6ZShlLmNoYXJDb2RlQXQoMCkpO3JldHVybih1JiYhdnx8cykmJih5Kz1gCmApLHkrPW4sKHV8fGQpJiYoeSs9YApgKSwnIiIiJyt5KyciIiInfXZhciBsOyhmdW5jdGlvbihlKXtlLlNPRj0iPFNPRj4iLGUuRU9GPSI8RU9GPiIsZS5CQU5HPSIhIixlLkRPTExBUj0iJCIsZS5BTVA9IiYiLGUuUEFSRU5fTD0iKCIsZS5QQVJFTl9SPSIpIixlLlNQUkVBRD0iLi4uIixlLkNPTE9OPSI6IixlLkVRVUFMUz0iPSIsZS5BVD0iQCIsZS5CUkFDS0VUX0w9IlsiLGUuQlJBQ0tFVF9SPSJdIixlLkJSQUNFX0w9InsiLGUuUElQRT0ifCIsZS5CUkFDRV9SPSJ9IixlLk5BTUU9Ik5hbWUiLGUuSU5UPSJJbnQiLGUuRkxPQVQ9IkZsb2F0IixlLlNUUklORz0iU3RyaW5nIixlLkJMT0NLX1NUUklORz0iQmxvY2tTdHJpbmciLGUuQ09NTUVOVD0iQ29tbWVudCJ9KShsfHwobD17fSkpO2NsYXNzIHlue2NvbnN0cnVjdG9yKHQpe2NvbnN0IG49bmV3IF90KGwuU09GLDAsMCwwLDApO3RoaXMuc291cmNlPXQsdGhpcy5sYXN0VG9rZW49bix0aGlzLnRva2VuPW4sdGhpcy5saW5lPTEsdGhpcy5saW5lU3RhcnQ9MH1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJMZXhlciJ9YWR2YW5jZSgpe3JldHVybiB0aGlzLmxhc3RUb2tlbj10aGlzLnRva2VuLHRoaXMudG9rZW49dGhpcy5sb29rYWhlYWQoKX1sb29rYWhlYWQoKXtsZXQgdD10aGlzLnRva2VuO2lmKHQua2luZCE9PWwuRU9GKWRvIGlmKHQubmV4dCl0PXQubmV4dDtlbHNle2NvbnN0IG49dm4odGhpcyx0LmVuZCk7dC5uZXh0PW4sbi5wcmV2PXQsdD1ufXdoaWxlKHQua2luZD09PWwuQ09NTUVOVCk7cmV0dXJuIHR9fWZ1bmN0aW9uIGduKGUpe3JldHVybiBlPT09bC5CQU5HfHxlPT09bC5ET0xMQVJ8fGU9PT1sLkFNUHx8ZT09PWwuUEFSRU5fTHx8ZT09PWwuUEFSRU5fUnx8ZT09PWwuU1BSRUFEfHxlPT09bC5DT0xPTnx8ZT09PWwuRVFVQUxTfHxlPT09bC5BVHx8ZT09PWwuQlJBQ0tFVF9MfHxlPT09bC5CUkFDS0VUX1J8fGU9PT1sLkJSQUNFX0x8fGU9PT1sLlBJUEV8fGU9PT1sLkJSQUNFX1J9ZnVuY3Rpb24gZmUoZSl7cmV0dXJuIGU+PTAmJmU8PTU1Mjk1fHxlPj01NzM0NCYmZTw9MTExNDExMX1mdW5jdGlvbiB3ZShlLHQpe3JldHVybiBBdChlLmNoYXJDb2RlQXQodCkpJiZJdChlLmNoYXJDb2RlQXQodCsxKSl9ZnVuY3Rpb24gQXQoZSl7cmV0dXJuIGU+PTU1Mjk2JiZlPD01NjMxOX1mdW5jdGlvbiBJdChlKXtyZXR1cm4gZT49NTYzMjAmJmU8PTU3MzQzfWZ1bmN0aW9uIGNlKGUsdCl7Y29uc3Qgbj1lLnNvdXJjZS5ib2R5LmNvZGVQb2ludEF0KHQpO2lmKG49PT12b2lkIDApcmV0dXJuIGwuRU9GO2lmKG4+PTMyJiZuPD0xMjYpe2NvbnN0IGk9U3RyaW5nLmZyb21Db2RlUG9pbnQobik7cmV0dXJuIGk9PT0nIic/YCciJ2A6YCIke2l9ImB9cmV0dXJuIlUrIituLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpLnBhZFN0YXJ0KDQsIjAiKX1mdW5jdGlvbiBVKGUsdCxuLGkscil7Y29uc3Qgcz1lLmxpbmUsbz0xK24tZS5saW5lU3RhcnQ7cmV0dXJuIG5ldyBfdCh0LG4saSxzLG8scil9ZnVuY3Rpb24gdm4oZSx0KXtjb25zdCBuPWUuc291cmNlLmJvZHksaT1uLmxlbmd0aDtsZXQgcj10O2Zvcig7cjxpOyl7Y29uc3Qgcz1uLmNoYXJDb2RlQXQocik7c3dpdGNoKHMpe2Nhc2UgNjUyNzk6Y2FzZSA5OmNhc2UgMzI6Y2FzZSA0NDorK3I7Y29udGludWU7Y2FzZSAxMDorK3IsKytlLmxpbmUsZS5saW5lU3RhcnQ9cjtjb250aW51ZTtjYXNlIDEzOm4uY2hhckNvZGVBdChyKzEpPT09MTA/cis9MjorK3IsKytlLmxpbmUsZS5saW5lU3RhcnQ9cjtjb250aW51ZTtjYXNlIDM1OnJldHVybiBFbihlLHIpO2Nhc2UgMzM6cmV0dXJuIFUoZSxsLkJBTkcscixyKzEpO2Nhc2UgMzY6cmV0dXJuIFUoZSxsLkRPTExBUixyLHIrMSk7Y2FzZSAzODpyZXR1cm4gVShlLGwuQU1QLHIscisxKTtjYXNlIDQwOnJldHVybiBVKGUsbC5QQVJFTl9MLHIscisxKTtjYXNlIDQxOnJldHVybiBVKGUsbC5QQVJFTl9SLHIscisxKTtjYXNlIDQ2OmlmKG4uY2hhckNvZGVBdChyKzEpPT09NDYmJm4uY2hhckNvZGVBdChyKzIpPT09NDYpcmV0dXJuIFUoZSxsLlNQUkVBRCxyLHIrMyk7YnJlYWs7Y2FzZSA1ODpyZXR1cm4gVShlLGwuQ09MT04scixyKzEpO2Nhc2UgNjE6cmV0dXJuIFUoZSxsLkVRVUFMUyxyLHIrMSk7Y2FzZSA2NDpyZXR1cm4gVShlLGwuQVQscixyKzEpO2Nhc2UgOTE6cmV0dXJuIFUoZSxsLkJSQUNLRVRfTCxyLHIrMSk7Y2FzZSA5MzpyZXR1cm4gVShlLGwuQlJBQ0tFVF9SLHIscisxKTtjYXNlIDEyMzpyZXR1cm4gVShlLGwuQlJBQ0VfTCxyLHIrMSk7Y2FzZSAxMjQ6cmV0dXJuIFUoZSxsLlBJUEUscixyKzEpO2Nhc2UgMTI1OnJldHVybiBVKGUsbC5CUkFDRV9SLHIscisxKTtjYXNlIDM0OnJldHVybiBuLmNoYXJDb2RlQXQocisxKT09PTM0JiZuLmNoYXJDb2RlQXQocisyKT09PTM0P0FuKGUscik6Ym4oZSxyKX1pZihiZShzKXx8cz09PTQ1KXJldHVybiBfbihlLHIscyk7aWYoeHQocykpcmV0dXJuIEluKGUscik7dGhyb3cgRyhlLnNvdXJjZSxyLHM9PT0zOT9gVW5leHBlY3RlZCBzaW5nbGUgcXVvdGUgY2hhcmFjdGVyICgnKSwgZGlkIHlvdSBtZWFuIHRvIHVzZSBhIGRvdWJsZSBxdW90ZSAoIik/YDpmZShzKXx8d2UobixyKT9gVW5leHBlY3RlZCBjaGFyYWN0ZXI6ICR7Y2UoZSxyKX0uYDpgSW52YWxpZCBjaGFyYWN0ZXI6ICR7Y2UoZSxyKX0uYCl9cmV0dXJuIFUoZSxsLkVPRixpLGkpfWZ1bmN0aW9uIEVuKGUsdCl7Y29uc3Qgbj1lLnNvdXJjZS5ib2R5LGk9bi5sZW5ndGg7bGV0IHI9dCsxO2Zvcig7cjxpOyl7Y29uc3Qgcz1uLmNoYXJDb2RlQXQocik7aWYocz09PTEwfHxzPT09MTMpYnJlYWs7aWYoZmUocykpKytyO2Vsc2UgaWYod2UobixyKSlyKz0yO2Vsc2UgYnJlYWt9cmV0dXJuIFUoZSxsLkNPTU1FTlQsdCxyLG4uc2xpY2UodCsxLHIpKX1mdW5jdGlvbiBfbihlLHQsbil7Y29uc3QgaT1lLnNvdXJjZS5ib2R5O2xldCByPXQscz1uLG89ITE7aWYocz09PTQ1JiYocz1pLmNoYXJDb2RlQXQoKytyKSkscz09PTQ4KXtpZihzPWkuY2hhckNvZGVBdCgrK3IpLGJlKHMpKXRocm93IEcoZS5zb3VyY2UscixgSW52YWxpZCBudW1iZXIsIHVuZXhwZWN0ZWQgZGlnaXQgYWZ0ZXIgMDogJHtjZShlLHIpfS5gKX1lbHNlIHI9SGUoZSxyLHMpLHM9aS5jaGFyQ29kZUF0KHIpO2lmKHM9PT00NiYmKG89ITAscz1pLmNoYXJDb2RlQXQoKytyKSxyPUhlKGUscixzKSxzPWkuY2hhckNvZGVBdChyKSksKHM9PT02OXx8cz09PTEwMSkmJihvPSEwLHM9aS5jaGFyQ29kZUF0KCsrciksKHM9PT00M3x8cz09PTQ1KSYmKHM9aS5jaGFyQ29kZUF0KCsrcikpLHI9SGUoZSxyLHMpLHM9aS5jaGFyQ29kZUF0KHIpKSxzPT09NDZ8fHh0KHMpKXRocm93IEcoZS5zb3VyY2UscixgSW52YWxpZCBudW1iZXIsIGV4cGVjdGVkIGRpZ2l0IGJ1dCBnb3Q6ICR7Y2UoZSxyKX0uYCk7cmV0dXJuIFUoZSxvP2wuRkxPQVQ6bC5JTlQsdCxyLGkuc2xpY2UodCxyKSl9ZnVuY3Rpb24gSGUoZSx0LG4pe2lmKCFiZShuKSl0aHJvdyBHKGUuc291cmNlLHQsYEludmFsaWQgbnVtYmVyLCBleHBlY3RlZCBkaWdpdCBidXQgZ290OiAke2NlKGUsdCl9LmApO2NvbnN0IGk9ZS5zb3VyY2UuYm9keTtsZXQgcj10KzE7Zm9yKDtiZShpLmNoYXJDb2RlQXQocikpOykrK3I7cmV0dXJuIHJ9ZnVuY3Rpb24gYm4oZSx0KXtjb25zdCBuPWUuc291cmNlLmJvZHksaT1uLmxlbmd0aDtsZXQgcj10KzEscz1yLG89IiI7Zm9yKDtyPGk7KXtjb25zdCBjPW4uY2hhckNvZGVBdChyKTtpZihjPT09MzQpcmV0dXJuIG8rPW4uc2xpY2UocyxyKSxVKGUsbC5TVFJJTkcsdCxyKzEsbyk7aWYoYz09PTkyKXtvKz1uLnNsaWNlKHMscik7Y29uc3QgaD1uLmNoYXJDb2RlQXQocisxKT09PTExNz9uLmNoYXJDb2RlQXQocisyKT09PTEyMz9UbihlLHIpOk5uKGUscik6eG4oZSxyKTtvKz1oLnZhbHVlLHIrPWguc2l6ZSxzPXI7Y29udGludWV9aWYoYz09PTEwfHxjPT09MTMpYnJlYWs7aWYoZmUoYykpKytyO2Vsc2UgaWYod2UobixyKSlyKz0yO2Vsc2UgdGhyb3cgRyhlLnNvdXJjZSxyLGBJbnZhbGlkIGNoYXJhY3RlciB3aXRoaW4gU3RyaW5nOiAke2NlKGUscil9LmApfXRocm93IEcoZS5zb3VyY2UsciwiVW50ZXJtaW5hdGVkIHN0cmluZy4iKX1mdW5jdGlvbiBUbihlLHQpe2NvbnN0IG49ZS5zb3VyY2UuYm9keTtsZXQgaT0wLHI9Mztmb3IoO3I8MTI7KXtjb25zdCBzPW4uY2hhckNvZGVBdCh0K3IrKyk7aWYocz09PTEyNSl7aWYocjw1fHwhZmUoaSkpYnJlYWs7cmV0dXJue3ZhbHVlOlN0cmluZy5mcm9tQ29kZVBvaW50KGkpLHNpemU6cn19aWYoaT1pPDw0fFRlKHMpLGk8MClicmVha310aHJvdyBHKGUuc291cmNlLHQsYEludmFsaWQgVW5pY29kZSBlc2NhcGUgc2VxdWVuY2U6ICIke24uc2xpY2UodCx0K3IpfSIuYCl9ZnVuY3Rpb24gTm4oZSx0KXtjb25zdCBuPWUuc291cmNlLmJvZHksaT1TdChuLHQrMik7aWYoZmUoaSkpcmV0dXJue3ZhbHVlOlN0cmluZy5mcm9tQ29kZVBvaW50KGkpLHNpemU6Nn07aWYoQXQoaSkmJm4uY2hhckNvZGVBdCh0KzYpPT09OTImJm4uY2hhckNvZGVBdCh0KzcpPT09MTE3KXtjb25zdCByPVN0KG4sdCs4KTtpZihJdChyKSlyZXR1cm57dmFsdWU6U3RyaW5nLmZyb21Db2RlUG9pbnQoaSxyKSxzaXplOjEyfX10aHJvdyBHKGUuc291cmNlLHQsYEludmFsaWQgVW5pY29kZSBlc2NhcGUgc2VxdWVuY2U6ICIke24uc2xpY2UodCx0KzYpfSIuYCl9ZnVuY3Rpb24gU3QoZSx0KXtyZXR1cm4gVGUoZS5jaGFyQ29kZUF0KHQpKTw8MTJ8VGUoZS5jaGFyQ29kZUF0KHQrMSkpPDw4fFRlKGUuY2hhckNvZGVBdCh0KzIpKTw8NHxUZShlLmNoYXJDb2RlQXQodCszKSl9ZnVuY3Rpb24gVGUoZSl7cmV0dXJuIGU+PTQ4JiZlPD01Nz9lLTQ4OmU+PTY1JiZlPD03MD9lLTU1OmU+PTk3JiZlPD0xMDI/ZS04NzotMX1mdW5jdGlvbiB4bihlLHQpe2NvbnN0IG49ZS5zb3VyY2UuYm9keTtzd2l0Y2gobi5jaGFyQ29kZUF0KHQrMSkpe2Nhc2UgMzQ6cmV0dXJue3ZhbHVlOiciJyxzaXplOjJ9O2Nhc2UgOTI6cmV0dXJue3ZhbHVlOiJcXCIsc2l6ZToyfTtjYXNlIDQ3OnJldHVybnt2YWx1ZToiLyIsc2l6ZToyfTtjYXNlIDk4OnJldHVybnt2YWx1ZToiXGIiLHNpemU6Mn07Y2FzZSAxMDI6cmV0dXJue3ZhbHVlOiJcZiIsc2l6ZToyfTtjYXNlIDExMDpyZXR1cm57dmFsdWU6YApgLHNpemU6Mn07Y2FzZSAxMTQ6cmV0dXJue3ZhbHVlOiJcciIsc2l6ZToyfTtjYXNlIDExNjpyZXR1cm57dmFsdWU6IgkiLHNpemU6Mn19dGhyb3cgRyhlLnNvdXJjZSx0LGBJbnZhbGlkIGNoYXJhY3RlciBlc2NhcGUgc2VxdWVuY2U6ICIke24uc2xpY2UodCx0KzIpfSIuYCl9ZnVuY3Rpb24gQW4oZSx0KXtjb25zdCBuPWUuc291cmNlLmJvZHksaT1uLmxlbmd0aDtsZXQgcj1lLmxpbmVTdGFydCxzPXQrMyxvPXMsYz0iIjtjb25zdCBoPVtdO2Zvcig7czxpOyl7Y29uc3QgZD1uLmNoYXJDb2RlQXQocyk7aWYoZD09PTM0JiZuLmNoYXJDb2RlQXQocysxKT09PTM0JiZuLmNoYXJDb2RlQXQocysyKT09PTM0KXtjKz1uLnNsaWNlKG8scyksaC5wdXNoKGMpO2NvbnN0IHU9VShlLGwuQkxPQ0tfU1RSSU5HLHQscyszLGRuKGgpLmpvaW4oYApgKSk7cmV0dXJuIGUubGluZSs9aC5sZW5ndGgtMSxlLmxpbmVTdGFydD1yLHV9aWYoZD09PTkyJiZuLmNoYXJDb2RlQXQocysxKT09PTM0JiZuLmNoYXJDb2RlQXQocysyKT09PTM0JiZuLmNoYXJDb2RlQXQocyszKT09PTM0KXtjKz1uLnNsaWNlKG8scyksbz1zKzEscys9NDtjb250aW51ZX1pZihkPT09MTB8fGQ9PT0xMyl7Yys9bi5zbGljZShvLHMpLGgucHVzaChjKSxkPT09MTMmJm4uY2hhckNvZGVBdChzKzEpPT09MTA/cys9MjorK3MsYz0iIixvPXMscj1zO2NvbnRpbnVlfWlmKGZlKGQpKSsrcztlbHNlIGlmKHdlKG4scykpcys9MjtlbHNlIHRocm93IEcoZS5zb3VyY2UscyxgSW52YWxpZCBjaGFyYWN0ZXIgd2l0aGluIFN0cmluZzogJHtjZShlLHMpfS5gKX10aHJvdyBHKGUuc291cmNlLHMsIlVudGVybWluYXRlZCBzdHJpbmcuIil9ZnVuY3Rpb24gSW4oZSx0KXtjb25zdCBuPWUuc291cmNlLmJvZHksaT1uLmxlbmd0aDtsZXQgcj10KzE7Zm9yKDtyPGk7KXtjb25zdCBzPW4uY2hhckNvZGVBdChyKTtpZihmbihzKSkrK3I7ZWxzZSBicmVha31yZXR1cm4gVShlLGwuTkFNRSx0LHIsbi5zbGljZSh0LHIpKX1jb25zdCBTbj0xMCxPdD0yO2Z1bmN0aW9uIFllKGUpe3JldHVybiBEZShlLFtdKX1mdW5jdGlvbiBEZShlLHQpe3N3aXRjaCh0eXBlb2YgZSl7Y2FzZSJzdHJpbmciOnJldHVybiBKU09OLnN0cmluZ2lmeShlKTtjYXNlImZ1bmN0aW9uIjpyZXR1cm4gZS5uYW1lP2BbZnVuY3Rpb24gJHtlLm5hbWV9XWA6IltmdW5jdGlvbl0iO2Nhc2Uib2JqZWN0IjpyZXR1cm4gT24oZSx0KTtkZWZhdWx0OnJldHVybiBTdHJpbmcoZSl9fWZ1bmN0aW9uIE9uKGUsdCl7aWYoZT09PW51bGwpcmV0dXJuIm51bGwiO2lmKHQuaW5jbHVkZXMoZSkpcmV0dXJuIltDaXJjdWxhcl0iO2NvbnN0IG49Wy4uLnQsZV07aWYod24oZSkpe2NvbnN0IGk9ZS50b0pTT04oKTtpZihpIT09ZSlyZXR1cm4gdHlwZW9mIGk9PSJzdHJpbmciP2k6RGUoaSxuKX1lbHNlIGlmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGtuKGUsbik7cmV0dXJuIERuKGUsbil9ZnVuY3Rpb24gd24oZSl7cmV0dXJuIHR5cGVvZiBlLnRvSlNPTj09ImZ1bmN0aW9uIn1mdW5jdGlvbiBEbihlLHQpe2NvbnN0IG49T2JqZWN0LmVudHJpZXMoZSk7cmV0dXJuIG4ubGVuZ3RoPT09MD8ie30iOnQubGVuZ3RoPk90PyJbIitDbihlKSsiXSI6InsgIituLm1hcCgoW3Isc10pPT5yKyI6ICIrRGUocyx0KSkuam9pbigiLCAiKSsiIH0ifWZ1bmN0aW9uIGtuKGUsdCl7aWYoZS5sZW5ndGg9PT0wKXJldHVybiJbXSI7aWYodC5sZW5ndGg+T3QpcmV0dXJuIltBcnJheV0iO2NvbnN0IG49TWF0aC5taW4oU24sZS5sZW5ndGgpLGk9ZS5sZW5ndGgtbixyPVtdO2ZvcihsZXQgcz0wO3M8bjsrK3Mpci5wdXNoKERlKGVbc10sdCkpO3JldHVybiBpPT09MT9yLnB1c2goIi4uLiAxIG1vcmUgaXRlbSIpOmk+MSYmci5wdXNoKGAuLi4gJHtpfSBtb3JlIGl0ZW1zYCksIlsiK3Iuam9pbigiLCAiKSsiXSJ9ZnVuY3Rpb24gQ24oZSl7Y29uc3QgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkucmVwbGFjZSgvXlxbb2JqZWN0IC8sIiIpLnJlcGxhY2UoL10kLywiIik7aWYodD09PSJPYmplY3QiJiZ0eXBlb2YgZS5jb25zdHJ1Y3Rvcj09ImZ1bmN0aW9uIil7Y29uc3Qgbj1lLmNvbnN0cnVjdG9yLm5hbWU7aWYodHlwZW9mIG49PSJzdHJpbmciJiZuIT09IiIpcmV0dXJuIG59cmV0dXJuIHR9Y29uc3QgUm49Z2xvYmFsVGhpcy5wcm9jZXNzJiZwcm9jZXNzLmVudi5OT0RFX0VOVj09PSJwcm9kdWN0aW9uIj9mdW5jdGlvbih0LG4pe3JldHVybiB0IGluc3RhbmNlb2Ygbn06ZnVuY3Rpb24odCxuKXtpZih0IGluc3RhbmNlb2YgbilyZXR1cm4hMDtpZih0eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsKXt2YXIgaTtjb25zdCByPW4ucHJvdG90eXBlW1N5bWJvbC50b1N0cmluZ1RhZ10scz1TeW1ib2wudG9TdHJpbmdUYWcgaW4gdD90W1N5bWJvbC50b1N0cmluZ1RhZ106KGk9dC5jb25zdHJ1Y3Rvcik9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLm5hbWU7aWYocj09PXMpe2NvbnN0IG89WWUodCk7dGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgdXNlICR7cn0gIiR7b30iIGZyb20gYW5vdGhlciBtb2R1bGUgb3IgcmVhbG0uCgpFbnN1cmUgdGhhdCB0aGVyZSBpcyBvbmx5IG9uZSBpbnN0YW5jZSBvZiAiZ3JhcGhxbCIgaW4gdGhlIG5vZGVfbW9kdWxlcwpkaXJlY3RvcnkuIElmIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiAiZ3JhcGhxbCIgYXJlIHRoZSBkZXBlbmRlbmNpZXMgb2Ygb3RoZXIKcmVsaWVkIG9uIG1vZHVsZXMsIHVzZSAicmVzb2x1dGlvbnMiIHRvIGVuc3VyZSBvbmx5IG9uZSB2ZXJzaW9uIGlzIGluc3RhbGxlZC4KCmh0dHBzOi8veWFybnBrZy5jb20vZW4vZG9jcy9zZWxlY3RpdmUtdmVyc2lvbi1yZXNvbHV0aW9ucwoKRHVwbGljYXRlICJncmFwaHFsIiBtb2R1bGVzIGNhbm5vdCBiZSB1c2VkIGF0IHRoZSBzYW1lIHRpbWUgc2luY2UgZGlmZmVyZW50CnZlcnNpb25zIG1heSBoYXZlIGRpZmZlcmVudCBjYXBhYmlsaXRpZXMgYW5kIGJlaGF2aW9yLiBUaGUgZGF0YSBmcm9tIG9uZQp2ZXJzaW9uIHVzZWQgaW4gdGhlIGZ1bmN0aW9uIGZyb20gYW5vdGhlciBjb3VsZCBwcm9kdWNlIGNvbmZ1c2luZyBhbmQKc3B1cmlvdXMgcmVzdWx0cy5gKX19cmV0dXJuITF9O2NsYXNzIHd0e2NvbnN0cnVjdG9yKHQsbj0iR3JhcGhRTCByZXF1ZXN0IixpPXtsaW5lOjEsY29sdW1uOjF9KXt0eXBlb2YgdD09InN0cmluZyJ8fGxlKCExLGBCb2R5IG11c3QgYmUgYSBzdHJpbmcuIFJlY2VpdmVkOiAke1llKHQpfS5gKSx0aGlzLmJvZHk9dCx0aGlzLm5hbWU9bix0aGlzLmxvY2F0aW9uT2Zmc2V0PWksdGhpcy5sb2NhdGlvbk9mZnNldC5saW5lPjB8fGxlKCExLCJsaW5lIGluIGxvY2F0aW9uT2Zmc2V0IGlzIDEtaW5kZXhlZCBhbmQgbXVzdCBiZSBwb3NpdGl2ZS4iKSx0aGlzLmxvY2F0aW9uT2Zmc2V0LmNvbHVtbj4wfHxsZSghMSwiY29sdW1uIGluIGxvY2F0aW9uT2Zmc2V0IGlzIDEtaW5kZXhlZCBhbmQgbXVzdCBiZSBwb3NpdGl2ZS4iKX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJTb3VyY2UifX1mdW5jdGlvbiBMbihlKXtyZXR1cm4gUm4oZSx3dCl9ZnVuY3Rpb24gRHQoZSx0KXtjb25zdCBuPW5ldyBQbihlLHQpLGk9bi5wYXJzZURvY3VtZW50KCk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLCJ0b2tlbkNvdW50Iix7ZW51bWVyYWJsZTohMSx2YWx1ZTpuLnRva2VuQ291bnR9KSxpfWNsYXNzIFBue2NvbnN0cnVjdG9yKHQsbj17fSl7Y29uc3QgaT1Mbih0KT90Om5ldyB3dCh0KTt0aGlzLl9sZXhlcj1uZXcgeW4oaSksdGhpcy5fb3B0aW9ucz1uLHRoaXMuX3Rva2VuQ291bnRlcj0wfWdldCB0b2tlbkNvdW50KCl7cmV0dXJuIHRoaXMuX3Rva2VuQ291bnRlcn1wYXJzZU5hbWUoKXtjb25zdCB0PXRoaXMuZXhwZWN0VG9rZW4obC5OQU1FKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5OQU1FLHZhbHVlOnQudmFsdWV9KX1wYXJzZURvY3VtZW50KCl7cmV0dXJuIHRoaXMubm9kZSh0aGlzLl9sZXhlci50b2tlbix7a2luZDpiLkRPQ1VNRU5ULGRlZmluaXRpb25zOnRoaXMubWFueShsLlNPRix0aGlzLnBhcnNlRGVmaW5pdGlvbixsLkVPRil9KX1wYXJzZURlZmluaXRpb24oKXtpZih0aGlzLnBlZWsobC5CUkFDRV9MKSlyZXR1cm4gdGhpcy5wYXJzZU9wZXJhdGlvbkRlZmluaXRpb24oKTtjb25zdCB0PXRoaXMucGVla0Rlc2NyaXB0aW9uKCksbj10P3RoaXMuX2xleGVyLmxvb2thaGVhZCgpOnRoaXMuX2xleGVyLnRva2VuO2lmKG4ua2luZD09PWwuTkFNRSl7c3dpdGNoKG4udmFsdWUpe2Nhc2Uic2NoZW1hIjpyZXR1cm4gdGhpcy5wYXJzZVNjaGVtYURlZmluaXRpb24oKTtjYXNlInNjYWxhciI6cmV0dXJuIHRoaXMucGFyc2VTY2FsYXJUeXBlRGVmaW5pdGlvbigpO2Nhc2UidHlwZSI6cmV0dXJuIHRoaXMucGFyc2VPYmplY3RUeXBlRGVmaW5pdGlvbigpO2Nhc2UiaW50ZXJmYWNlIjpyZXR1cm4gdGhpcy5wYXJzZUludGVyZmFjZVR5cGVEZWZpbml0aW9uKCk7Y2FzZSJ1bmlvbiI6cmV0dXJuIHRoaXMucGFyc2VVbmlvblR5cGVEZWZpbml0aW9uKCk7Y2FzZSJlbnVtIjpyZXR1cm4gdGhpcy5wYXJzZUVudW1UeXBlRGVmaW5pdGlvbigpO2Nhc2UiaW5wdXQiOnJldHVybiB0aGlzLnBhcnNlSW5wdXRPYmplY3RUeXBlRGVmaW5pdGlvbigpO2Nhc2UiZGlyZWN0aXZlIjpyZXR1cm4gdGhpcy5wYXJzZURpcmVjdGl2ZURlZmluaXRpb24oKX1pZih0KXRocm93IEcodGhpcy5fbGV4ZXIuc291cmNlLHRoaXMuX2xleGVyLnRva2VuLnN0YXJ0LCJVbmV4cGVjdGVkIGRlc2NyaXB0aW9uLCBkZXNjcmlwdGlvbnMgYXJlIHN1cHBvcnRlZCBvbmx5IG9uIHR5cGUgZGVmaW5pdGlvbnMuIik7c3dpdGNoKG4udmFsdWUpe2Nhc2UicXVlcnkiOmNhc2UibXV0YXRpb24iOmNhc2Uic3Vic2NyaXB0aW9uIjpyZXR1cm4gdGhpcy5wYXJzZU9wZXJhdGlvbkRlZmluaXRpb24oKTtjYXNlImZyYWdtZW50IjpyZXR1cm4gdGhpcy5wYXJzZUZyYWdtZW50RGVmaW5pdGlvbigpO2Nhc2UiZXh0ZW5kIjpyZXR1cm4gdGhpcy5wYXJzZVR5cGVTeXN0ZW1FeHRlbnNpb24oKX19dGhyb3cgdGhpcy51bmV4cGVjdGVkKG4pfXBhcnNlT3BlcmF0aW9uRGVmaW5pdGlvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW47aWYodGhpcy5wZWVrKGwuQlJBQ0VfTCkpcmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOmIuT1BFUkFUSU9OX0RFRklOSVRJT04sb3BlcmF0aW9uOmhlLlFVRVJZLG5hbWU6dm9pZCAwLHZhcmlhYmxlRGVmaW5pdGlvbnM6W10sZGlyZWN0aXZlczpbXSxzZWxlY3Rpb25TZXQ6dGhpcy5wYXJzZVNlbGVjdGlvblNldCgpfSk7Y29uc3Qgbj10aGlzLnBhcnNlT3BlcmF0aW9uVHlwZSgpO2xldCBpO3JldHVybiB0aGlzLnBlZWsobC5OQU1FKSYmKGk9dGhpcy5wYXJzZU5hbWUoKSksdGhpcy5ub2RlKHQse2tpbmQ6Yi5PUEVSQVRJT05fREVGSU5JVElPTixvcGVyYXRpb246bixuYW1lOmksdmFyaWFibGVEZWZpbml0aW9uczp0aGlzLnBhcnNlVmFyaWFibGVEZWZpbml0aW9ucygpLGRpcmVjdGl2ZXM6dGhpcy5wYXJzZURpcmVjdGl2ZXMoITEpLHNlbGVjdGlvblNldDp0aGlzLnBhcnNlU2VsZWN0aW9uU2V0KCl9KX1wYXJzZU9wZXJhdGlvblR5cGUoKXtjb25zdCB0PXRoaXMuZXhwZWN0VG9rZW4obC5OQU1FKTtzd2l0Y2godC52YWx1ZSl7Y2FzZSJxdWVyeSI6cmV0dXJuIGhlLlFVRVJZO2Nhc2UibXV0YXRpb24iOnJldHVybiBoZS5NVVRBVElPTjtjYXNlInN1YnNjcmlwdGlvbiI6cmV0dXJuIGhlLlNVQlNDUklQVElPTn10aHJvdyB0aGlzLnVuZXhwZWN0ZWQodCl9cGFyc2VWYXJpYWJsZURlZmluaXRpb25zKCl7cmV0dXJuIHRoaXMub3B0aW9uYWxNYW55KGwuUEFSRU5fTCx0aGlzLnBhcnNlVmFyaWFibGVEZWZpbml0aW9uLGwuUEFSRU5fUil9cGFyc2VWYXJpYWJsZURlZmluaXRpb24oKXtyZXR1cm4gdGhpcy5ub2RlKHRoaXMuX2xleGVyLnRva2VuLHtraW5kOmIuVkFSSUFCTEVfREVGSU5JVElPTix2YXJpYWJsZTp0aGlzLnBhcnNlVmFyaWFibGUoKSx0eXBlOih0aGlzLmV4cGVjdFRva2VuKGwuQ09MT04pLHRoaXMucGFyc2VUeXBlUmVmZXJlbmNlKCkpLGRlZmF1bHRWYWx1ZTp0aGlzLmV4cGVjdE9wdGlvbmFsVG9rZW4obC5FUVVBTFMpP3RoaXMucGFyc2VDb25zdFZhbHVlTGl0ZXJhbCgpOnZvaWQgMCxkaXJlY3RpdmVzOnRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKX0pfXBhcnNlVmFyaWFibGUoKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuO3JldHVybiB0aGlzLmV4cGVjdFRva2VuKGwuRE9MTEFSKSx0aGlzLm5vZGUodCx7a2luZDpiLlZBUklBQkxFLG5hbWU6dGhpcy5wYXJzZU5hbWUoKX0pfXBhcnNlU2VsZWN0aW9uU2V0KCl7cmV0dXJuIHRoaXMubm9kZSh0aGlzLl9sZXhlci50b2tlbix7a2luZDpiLlNFTEVDVElPTl9TRVQsc2VsZWN0aW9uczp0aGlzLm1hbnkobC5CUkFDRV9MLHRoaXMucGFyc2VTZWxlY3Rpb24sbC5CUkFDRV9SKX0pfXBhcnNlU2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMucGVlayhsLlNQUkVBRCk/dGhpcy5wYXJzZUZyYWdtZW50KCk6dGhpcy5wYXJzZUZpZWxkKCl9cGFyc2VGaWVsZCgpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW4sbj10aGlzLnBhcnNlTmFtZSgpO2xldCBpLHI7cmV0dXJuIHRoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihsLkNPTE9OKT8oaT1uLHI9dGhpcy5wYXJzZU5hbWUoKSk6cj1uLHRoaXMubm9kZSh0LHtraW5kOmIuRklFTEQsYWxpYXM6aSxuYW1lOnIsYXJndW1lbnRzOnRoaXMucGFyc2VBcmd1bWVudHMoITEpLGRpcmVjdGl2ZXM6dGhpcy5wYXJzZURpcmVjdGl2ZXMoITEpLHNlbGVjdGlvblNldDp0aGlzLnBlZWsobC5CUkFDRV9MKT90aGlzLnBhcnNlU2VsZWN0aW9uU2V0KCk6dm9pZCAwfSl9cGFyc2VBcmd1bWVudHModCl7Y29uc3Qgbj10P3RoaXMucGFyc2VDb25zdEFyZ3VtZW50OnRoaXMucGFyc2VBcmd1bWVudDtyZXR1cm4gdGhpcy5vcHRpb25hbE1hbnkobC5QQVJFTl9MLG4sbC5QQVJFTl9SKX1wYXJzZUFyZ3VtZW50KHQ9ITEpe2NvbnN0IG49dGhpcy5fbGV4ZXIudG9rZW4saT10aGlzLnBhcnNlTmFtZSgpO3JldHVybiB0aGlzLmV4cGVjdFRva2VuKGwuQ09MT04pLHRoaXMubm9kZShuLHtraW5kOmIuQVJHVU1FTlQsbmFtZTppLHZhbHVlOnRoaXMucGFyc2VWYWx1ZUxpdGVyYWwodCl9KX1wYXJzZUNvbnN0QXJndW1lbnQoKXtyZXR1cm4gdGhpcy5wYXJzZUFyZ3VtZW50KCEwKX1wYXJzZUZyYWdtZW50KCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjt0aGlzLmV4cGVjdFRva2VuKGwuU1BSRUFEKTtjb25zdCBuPXRoaXMuZXhwZWN0T3B0aW9uYWxLZXl3b3JkKCJvbiIpO3JldHVybiFuJiZ0aGlzLnBlZWsobC5OQU1FKT90aGlzLm5vZGUodCx7a2luZDpiLkZSQUdNRU5UX1NQUkVBRCxuYW1lOnRoaXMucGFyc2VGcmFnbWVudE5hbWUoKSxkaXJlY3RpdmVzOnRoaXMucGFyc2VEaXJlY3RpdmVzKCExKX0pOnRoaXMubm9kZSh0LHtraW5kOmIuSU5MSU5FX0ZSQUdNRU5ULHR5cGVDb25kaXRpb246bj90aGlzLnBhcnNlTmFtZWRUeXBlKCk6dm9pZCAwLGRpcmVjdGl2ZXM6dGhpcy5wYXJzZURpcmVjdGl2ZXMoITEpLHNlbGVjdGlvblNldDp0aGlzLnBhcnNlU2VsZWN0aW9uU2V0KCl9KX1wYXJzZUZyYWdtZW50RGVmaW5pdGlvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW47cmV0dXJuIHRoaXMuZXhwZWN0S2V5d29yZCgiZnJhZ21lbnQiKSx0aGlzLl9vcHRpb25zLmFsbG93TGVnYWN5RnJhZ21lbnRWYXJpYWJsZXM9PT0hMD90aGlzLm5vZGUodCx7a2luZDpiLkZSQUdNRU5UX0RFRklOSVRJT04sbmFtZTp0aGlzLnBhcnNlRnJhZ21lbnROYW1lKCksdmFyaWFibGVEZWZpbml0aW9uczp0aGlzLnBhcnNlVmFyaWFibGVEZWZpbml0aW9ucygpLHR5cGVDb25kaXRpb246KHRoaXMuZXhwZWN0S2V5d29yZCgib24iKSx0aGlzLnBhcnNlTmFtZWRUeXBlKCkpLGRpcmVjdGl2ZXM6dGhpcy5wYXJzZURpcmVjdGl2ZXMoITEpLHNlbGVjdGlvblNldDp0aGlzLnBhcnNlU2VsZWN0aW9uU2V0KCl9KTp0aGlzLm5vZGUodCx7a2luZDpiLkZSQUdNRU5UX0RFRklOSVRJT04sbmFtZTp0aGlzLnBhcnNlRnJhZ21lbnROYW1lKCksdHlwZUNvbmRpdGlvbjoodGhpcy5leHBlY3RLZXl3b3JkKCJvbiIpLHRoaXMucGFyc2VOYW1lZFR5cGUoKSksZGlyZWN0aXZlczp0aGlzLnBhcnNlRGlyZWN0aXZlcyghMSksc2VsZWN0aW9uU2V0OnRoaXMucGFyc2VTZWxlY3Rpb25TZXQoKX0pfXBhcnNlRnJhZ21lbnROYW1lKCl7aWYodGhpcy5fbGV4ZXIudG9rZW4udmFsdWU9PT0ib24iKXRocm93IHRoaXMudW5leHBlY3RlZCgpO3JldHVybiB0aGlzLnBhcnNlTmFtZSgpfXBhcnNlVmFsdWVMaXRlcmFsKHQpe2NvbnN0IG49dGhpcy5fbGV4ZXIudG9rZW47c3dpdGNoKG4ua2luZCl7Y2FzZSBsLkJSQUNLRVRfTDpyZXR1cm4gdGhpcy5wYXJzZUxpc3QodCk7Y2FzZSBsLkJSQUNFX0w6cmV0dXJuIHRoaXMucGFyc2VPYmplY3QodCk7Y2FzZSBsLklOVDpyZXR1cm4gdGhpcy5hZHZhbmNlTGV4ZXIoKSx0aGlzLm5vZGUobix7a2luZDpiLklOVCx2YWx1ZTpuLnZhbHVlfSk7Y2FzZSBsLkZMT0FUOnJldHVybiB0aGlzLmFkdmFuY2VMZXhlcigpLHRoaXMubm9kZShuLHtraW5kOmIuRkxPQVQsdmFsdWU6bi52YWx1ZX0pO2Nhc2UgbC5TVFJJTkc6Y2FzZSBsLkJMT0NLX1NUUklORzpyZXR1cm4gdGhpcy5wYXJzZVN0cmluZ0xpdGVyYWwoKTtjYXNlIGwuTkFNRTpzd2l0Y2godGhpcy5hZHZhbmNlTGV4ZXIoKSxuLnZhbHVlKXtjYXNlInRydWUiOnJldHVybiB0aGlzLm5vZGUobix7a2luZDpiLkJPT0xFQU4sdmFsdWU6ITB9KTtjYXNlImZhbHNlIjpyZXR1cm4gdGhpcy5ub2RlKG4se2tpbmQ6Yi5CT09MRUFOLHZhbHVlOiExfSk7Y2FzZSJudWxsIjpyZXR1cm4gdGhpcy5ub2RlKG4se2tpbmQ6Yi5OVUxMfSk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5ub2RlKG4se2tpbmQ6Yi5FTlVNLHZhbHVlOm4udmFsdWV9KX1jYXNlIGwuRE9MTEFSOmlmKHQpaWYodGhpcy5leHBlY3RUb2tlbihsLkRPTExBUiksdGhpcy5fbGV4ZXIudG9rZW4ua2luZD09PWwuTkFNRSl7Y29uc3QgaT10aGlzLl9sZXhlci50b2tlbi52YWx1ZTt0aHJvdyBHKHRoaXMuX2xleGVyLnNvdXJjZSxuLnN0YXJ0LGBVbmV4cGVjdGVkIHZhcmlhYmxlICIkJHtpfSIgaW4gY29uc3RhbnQgdmFsdWUuYCl9ZWxzZSB0aHJvdyB0aGlzLnVuZXhwZWN0ZWQobik7cmV0dXJuIHRoaXMucGFyc2VWYXJpYWJsZSgpO2RlZmF1bHQ6dGhyb3cgdGhpcy51bmV4cGVjdGVkKCl9fXBhcnNlQ29uc3RWYWx1ZUxpdGVyYWwoKXtyZXR1cm4gdGhpcy5wYXJzZVZhbHVlTGl0ZXJhbCghMCl9cGFyc2VTdHJpbmdMaXRlcmFsKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjtyZXR1cm4gdGhpcy5hZHZhbmNlTGV4ZXIoKSx0aGlzLm5vZGUodCx7a2luZDpiLlNUUklORyx2YWx1ZTp0LnZhbHVlLGJsb2NrOnQua2luZD09PWwuQkxPQ0tfU1RSSU5HfSl9cGFyc2VMaXN0KHQpe2NvbnN0IG49KCk9PnRoaXMucGFyc2VWYWx1ZUxpdGVyYWwodCk7cmV0dXJuIHRoaXMubm9kZSh0aGlzLl9sZXhlci50b2tlbix7a2luZDpiLkxJU1QsdmFsdWVzOnRoaXMuYW55KGwuQlJBQ0tFVF9MLG4sbC5CUkFDS0VUX1IpfSl9cGFyc2VPYmplY3QodCl7Y29uc3Qgbj0oKT0+dGhpcy5wYXJzZU9iamVjdEZpZWxkKHQpO3JldHVybiB0aGlzLm5vZGUodGhpcy5fbGV4ZXIudG9rZW4se2tpbmQ6Yi5PQkpFQ1QsZmllbGRzOnRoaXMuYW55KGwuQlJBQ0VfTCxuLGwuQlJBQ0VfUil9KX1wYXJzZU9iamVjdEZpZWxkKHQpe2NvbnN0IG49dGhpcy5fbGV4ZXIudG9rZW4saT10aGlzLnBhcnNlTmFtZSgpO3JldHVybiB0aGlzLmV4cGVjdFRva2VuKGwuQ09MT04pLHRoaXMubm9kZShuLHtraW5kOmIuT0JKRUNUX0ZJRUxELG5hbWU6aSx2YWx1ZTp0aGlzLnBhcnNlVmFsdWVMaXRlcmFsKHQpfSl9cGFyc2VEaXJlY3RpdmVzKHQpe2NvbnN0IG49W107Zm9yKDt0aGlzLnBlZWsobC5BVCk7KW4ucHVzaCh0aGlzLnBhcnNlRGlyZWN0aXZlKHQpKTtyZXR1cm4gbn1wYXJzZUNvbnN0RGlyZWN0aXZlcygpe3JldHVybiB0aGlzLnBhcnNlRGlyZWN0aXZlcyghMCl9cGFyc2VEaXJlY3RpdmUodCl7Y29uc3Qgbj10aGlzLl9sZXhlci50b2tlbjtyZXR1cm4gdGhpcy5leHBlY3RUb2tlbihsLkFUKSx0aGlzLm5vZGUobix7a2luZDpiLkRJUkVDVElWRSxuYW1lOnRoaXMucGFyc2VOYW1lKCksYXJndW1lbnRzOnRoaXMucGFyc2VBcmd1bWVudHModCl9KX1wYXJzZVR5cGVSZWZlcmVuY2UoKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuO2xldCBuO2lmKHRoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihsLkJSQUNLRVRfTCkpe2NvbnN0IGk9dGhpcy5wYXJzZVR5cGVSZWZlcmVuY2UoKTt0aGlzLmV4cGVjdFRva2VuKGwuQlJBQ0tFVF9SKSxuPXRoaXMubm9kZSh0LHtraW5kOmIuTElTVF9UWVBFLHR5cGU6aX0pfWVsc2Ugbj10aGlzLnBhcnNlTmFtZWRUeXBlKCk7cmV0dXJuIHRoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihsLkJBTkcpP3RoaXMubm9kZSh0LHtraW5kOmIuTk9OX05VTExfVFlQRSx0eXBlOm59KTpufXBhcnNlTmFtZWRUeXBlKCl7cmV0dXJuIHRoaXMubm9kZSh0aGlzLl9sZXhlci50b2tlbix7a2luZDpiLk5BTUVEX1RZUEUsbmFtZTp0aGlzLnBhcnNlTmFtZSgpfSl9cGVla0Rlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMucGVlayhsLlNUUklORyl8fHRoaXMucGVlayhsLkJMT0NLX1NUUklORyl9cGFyc2VEZXNjcmlwdGlvbigpe2lmKHRoaXMucGVla0Rlc2NyaXB0aW9uKCkpcmV0dXJuIHRoaXMucGFyc2VTdHJpbmdMaXRlcmFsKCl9cGFyc2VTY2hlbWFEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZCgic2NoZW1hIik7Y29uc3QgaT10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCkscj10aGlzLm1hbnkobC5CUkFDRV9MLHRoaXMucGFyc2VPcGVyYXRpb25UeXBlRGVmaW5pdGlvbixsLkJSQUNFX1IpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpiLlNDSEVNQV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sZGlyZWN0aXZlczppLG9wZXJhdGlvblR5cGVzOnJ9KX1wYXJzZU9wZXJhdGlvblR5cGVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VPcGVyYXRpb25UeXBlKCk7dGhpcy5leHBlY3RUb2tlbihsLkNPTE9OKTtjb25zdCBpPXRoaXMucGFyc2VOYW1lZFR5cGUoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5PUEVSQVRJT05fVFlQRV9ERUZJTklUSU9OLG9wZXJhdGlvbjpuLHR5cGU6aX0pfXBhcnNlU2NhbGFyVHlwZURlZmluaXRpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZURlc2NyaXB0aW9uKCk7dGhpcy5leHBlY3RLZXl3b3JkKCJzY2FsYXIiKTtjb25zdCBpPXRoaXMucGFyc2VOYW1lKCkscj10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCk7cmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOmIuU0NBTEFSX1RZUEVfREVGSU5JVElPTixkZXNjcmlwdGlvbjpuLG5hbWU6aSxkaXJlY3RpdmVzOnJ9KX1wYXJzZU9iamVjdFR5cGVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZCgidHlwZSIpO2NvbnN0IGk9dGhpcy5wYXJzZU5hbWUoKSxyPXRoaXMucGFyc2VJbXBsZW1lbnRzSW50ZXJmYWNlcygpLHM9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpLG89dGhpcy5wYXJzZUZpZWxkc0RlZmluaXRpb24oKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5PQkpFQ1RfVFlQRV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sbmFtZTppLGludGVyZmFjZXM6cixkaXJlY3RpdmVzOnMsZmllbGRzOm99KX1wYXJzZUltcGxlbWVudHNJbnRlcmZhY2VzKCl7cmV0dXJuIHRoaXMuZXhwZWN0T3B0aW9uYWxLZXl3b3JkKCJpbXBsZW1lbnRzIik/dGhpcy5kZWxpbWl0ZWRNYW55KGwuQU1QLHRoaXMucGFyc2VOYW1lZFR5cGUpOltdfXBhcnNlRmllbGRzRGVmaW5pdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbmFsTWFueShsLkJSQUNFX0wsdGhpcy5wYXJzZUZpZWxkRGVmaW5pdGlvbixsLkJSQUNFX1IpfXBhcnNlRmllbGREZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpLGk9dGhpcy5wYXJzZU5hbWUoKSxyPXRoaXMucGFyc2VBcmd1bWVudERlZnMoKTt0aGlzLmV4cGVjdFRva2VuKGwuQ09MT04pO2NvbnN0IHM9dGhpcy5wYXJzZVR5cGVSZWZlcmVuY2UoKSxvPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5GSUVMRF9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sbmFtZTppLGFyZ3VtZW50czpyLHR5cGU6cyxkaXJlY3RpdmVzOm99KX1wYXJzZUFyZ3VtZW50RGVmcygpe3JldHVybiB0aGlzLm9wdGlvbmFsTWFueShsLlBBUkVOX0wsdGhpcy5wYXJzZUlucHV0VmFsdWVEZWYsbC5QQVJFTl9SKX1wYXJzZUlucHV0VmFsdWVEZWYoKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZURlc2NyaXB0aW9uKCksaT10aGlzLnBhcnNlTmFtZSgpO3RoaXMuZXhwZWN0VG9rZW4obC5DT0xPTik7Y29uc3Qgcj10aGlzLnBhcnNlVHlwZVJlZmVyZW5jZSgpO2xldCBzO3RoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihsLkVRVUFMUykmJihzPXRoaXMucGFyc2VDb25zdFZhbHVlTGl0ZXJhbCgpKTtjb25zdCBvPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5JTlBVVF9WQUxVRV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sbmFtZTppLHR5cGU6cixkZWZhdWx0VmFsdWU6cyxkaXJlY3RpdmVzOm99KX1wYXJzZUludGVyZmFjZVR5cGVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZCgiaW50ZXJmYWNlIik7Y29uc3QgaT10aGlzLnBhcnNlTmFtZSgpLHI9dGhpcy5wYXJzZUltcGxlbWVudHNJbnRlcmZhY2VzKCkscz10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCksbz10aGlzLnBhcnNlRmllbGRzRGVmaW5pdGlvbigpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpiLklOVEVSRkFDRV9UWVBFX0RFRklOSVRJT04sZGVzY3JpcHRpb246bixuYW1lOmksaW50ZXJmYWNlczpyLGRpcmVjdGl2ZXM6cyxmaWVsZHM6b30pfXBhcnNlVW5pb25UeXBlRGVmaW5pdGlvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW4sbj10aGlzLnBhcnNlRGVzY3JpcHRpb24oKTt0aGlzLmV4cGVjdEtleXdvcmQoInVuaW9uIik7Y29uc3QgaT10aGlzLnBhcnNlTmFtZSgpLHI9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpLHM9dGhpcy5wYXJzZVVuaW9uTWVtYmVyVHlwZXMoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5VTklPTl9UWVBFX0RFRklOSVRJT04sZGVzY3JpcHRpb246bixuYW1lOmksZGlyZWN0aXZlczpyLHR5cGVzOnN9KX1wYXJzZVVuaW9uTWVtYmVyVHlwZXMoKXtyZXR1cm4gdGhpcy5leHBlY3RPcHRpb25hbFRva2VuKGwuRVFVQUxTKT90aGlzLmRlbGltaXRlZE1hbnkobC5QSVBFLHRoaXMucGFyc2VOYW1lZFR5cGUpOltdfXBhcnNlRW51bVR5cGVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZCgiZW51bSIpO2NvbnN0IGk9dGhpcy5wYXJzZU5hbWUoKSxyPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxzPXRoaXMucGFyc2VFbnVtVmFsdWVzRGVmaW5pdGlvbigpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpiLkVOVU1fVFlQRV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sbmFtZTppLGRpcmVjdGl2ZXM6cix2YWx1ZXM6c30pfXBhcnNlRW51bVZhbHVlc0RlZmluaXRpb24oKXtyZXR1cm4gdGhpcy5vcHRpb25hbE1hbnkobC5CUkFDRV9MLHRoaXMucGFyc2VFbnVtVmFsdWVEZWZpbml0aW9uLGwuQlJBQ0VfUil9cGFyc2VFbnVtVmFsdWVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpLGk9dGhpcy5wYXJzZUVudW1WYWx1ZU5hbWUoKSxyPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5FTlVNX1ZBTFVFX0RFRklOSVRJT04sZGVzY3JpcHRpb246bixuYW1lOmksZGlyZWN0aXZlczpyfSl9cGFyc2VFbnVtVmFsdWVOYW1lKCl7aWYodGhpcy5fbGV4ZXIudG9rZW4udmFsdWU9PT0idHJ1ZSJ8fHRoaXMuX2xleGVyLnRva2VuLnZhbHVlPT09ImZhbHNlInx8dGhpcy5fbGV4ZXIudG9rZW4udmFsdWU9PT0ibnVsbCIpdGhyb3cgRyh0aGlzLl9sZXhlci5zb3VyY2UsdGhpcy5fbGV4ZXIudG9rZW4uc3RhcnQsYCR7a2UodGhpcy5fbGV4ZXIudG9rZW4pfSBpcyByZXNlcnZlZCBhbmQgY2Fubm90IGJlIHVzZWQgZm9yIGFuIGVudW0gdmFsdWUuYCk7cmV0dXJuIHRoaXMucGFyc2VOYW1lKCl9cGFyc2VJbnB1dE9iamVjdFR5cGVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZCgiaW5wdXQiKTtjb25zdCBpPXRoaXMucGFyc2VOYW1lKCkscj10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCkscz10aGlzLnBhcnNlSW5wdXRGaWVsZHNEZWZpbml0aW9uKCk7cmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOmIuSU5QVVRfT0JKRUNUX1RZUEVfREVGSU5JVElPTixkZXNjcmlwdGlvbjpuLG5hbWU6aSxkaXJlY3RpdmVzOnIsZmllbGRzOnN9KX1wYXJzZUlucHV0RmllbGRzRGVmaW5pdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbmFsTWFueShsLkJSQUNFX0wsdGhpcy5wYXJzZUlucHV0VmFsdWVEZWYsbC5CUkFDRV9SKX1wYXJzZVR5cGVTeXN0ZW1FeHRlbnNpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLmxvb2thaGVhZCgpO2lmKHQua2luZD09PWwuTkFNRSlzd2l0Y2godC52YWx1ZSl7Y2FzZSJzY2hlbWEiOnJldHVybiB0aGlzLnBhcnNlU2NoZW1hRXh0ZW5zaW9uKCk7Y2FzZSJzY2FsYXIiOnJldHVybiB0aGlzLnBhcnNlU2NhbGFyVHlwZUV4dGVuc2lvbigpO2Nhc2UidHlwZSI6cmV0dXJuIHRoaXMucGFyc2VPYmplY3RUeXBlRXh0ZW5zaW9uKCk7Y2FzZSJpbnRlcmZhY2UiOnJldHVybiB0aGlzLnBhcnNlSW50ZXJmYWNlVHlwZUV4dGVuc2lvbigpO2Nhc2UidW5pb24iOnJldHVybiB0aGlzLnBhcnNlVW5pb25UeXBlRXh0ZW5zaW9uKCk7Y2FzZSJlbnVtIjpyZXR1cm4gdGhpcy5wYXJzZUVudW1UeXBlRXh0ZW5zaW9uKCk7Y2FzZSJpbnB1dCI6cmV0dXJuIHRoaXMucGFyc2VJbnB1dE9iamVjdFR5cGVFeHRlbnNpb24oKX10aHJvdyB0aGlzLnVuZXhwZWN0ZWQodCl9cGFyc2VTY2hlbWFFeHRlbnNpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuO3RoaXMuZXhwZWN0S2V5d29yZCgiZXh0ZW5kIiksdGhpcy5leHBlY3RLZXl3b3JkKCJzY2hlbWEiKTtjb25zdCBuPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxpPXRoaXMub3B0aW9uYWxNYW55KGwuQlJBQ0VfTCx0aGlzLnBhcnNlT3BlcmF0aW9uVHlwZURlZmluaXRpb24sbC5CUkFDRV9SKTtpZihuLmxlbmd0aD09PTAmJmkubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5TQ0hFTUFfRVhURU5TSU9OLGRpcmVjdGl2ZXM6bixvcGVyYXRpb25UeXBlczppfSl9cGFyc2VTY2FsYXJUeXBlRXh0ZW5zaW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjt0aGlzLmV4cGVjdEtleXdvcmQoImV4dGVuZCIpLHRoaXMuZXhwZWN0S2V5d29yZCgic2NhbGFyIik7Y29uc3Qgbj10aGlzLnBhcnNlTmFtZSgpLGk9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpO2lmKGkubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5TQ0FMQVJfVFlQRV9FWFRFTlNJT04sbmFtZTpuLGRpcmVjdGl2ZXM6aX0pfXBhcnNlT2JqZWN0VHlwZUV4dGVuc2lvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW47dGhpcy5leHBlY3RLZXl3b3JkKCJleHRlbmQiKSx0aGlzLmV4cGVjdEtleXdvcmQoInR5cGUiKTtjb25zdCBuPXRoaXMucGFyc2VOYW1lKCksaT10aGlzLnBhcnNlSW1wbGVtZW50c0ludGVyZmFjZXMoKSxyPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxzPXRoaXMucGFyc2VGaWVsZHNEZWZpbml0aW9uKCk7aWYoaS5sZW5ndGg9PT0wJiZyLmxlbmd0aD09PTAmJnMubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5PQkpFQ1RfVFlQRV9FWFRFTlNJT04sbmFtZTpuLGludGVyZmFjZXM6aSxkaXJlY3RpdmVzOnIsZmllbGRzOnN9KX1wYXJzZUludGVyZmFjZVR5cGVFeHRlbnNpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuO3RoaXMuZXhwZWN0S2V5d29yZCgiZXh0ZW5kIiksdGhpcy5leHBlY3RLZXl3b3JkKCJpbnRlcmZhY2UiKTtjb25zdCBuPXRoaXMucGFyc2VOYW1lKCksaT10aGlzLnBhcnNlSW1wbGVtZW50c0ludGVyZmFjZXMoKSxyPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxzPXRoaXMucGFyc2VGaWVsZHNEZWZpbml0aW9uKCk7aWYoaS5sZW5ndGg9PT0wJiZyLmxlbmd0aD09PTAmJnMubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5JTlRFUkZBQ0VfVFlQRV9FWFRFTlNJT04sbmFtZTpuLGludGVyZmFjZXM6aSxkaXJlY3RpdmVzOnIsZmllbGRzOnN9KX1wYXJzZVVuaW9uVHlwZUV4dGVuc2lvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW47dGhpcy5leHBlY3RLZXl3b3JkKCJleHRlbmQiKSx0aGlzLmV4cGVjdEtleXdvcmQoInVuaW9uIik7Y29uc3Qgbj10aGlzLnBhcnNlTmFtZSgpLGk9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpLHI9dGhpcy5wYXJzZVVuaW9uTWVtYmVyVHlwZXMoKTtpZihpLmxlbmd0aD09PTAmJnIubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yi5VTklPTl9UWVBFX0VYVEVOU0lPTixuYW1lOm4sZGlyZWN0aXZlczppLHR5cGVzOnJ9KX1wYXJzZUVudW1UeXBlRXh0ZW5zaW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjt0aGlzLmV4cGVjdEtleXdvcmQoImV4dGVuZCIpLHRoaXMuZXhwZWN0S2V5d29yZCgiZW51bSIpO2NvbnN0IG49dGhpcy5wYXJzZU5hbWUoKSxpPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxyPXRoaXMucGFyc2VFbnVtVmFsdWVzRGVmaW5pdGlvbigpO2lmKGkubGVuZ3RoPT09MCYmci5sZW5ndGg9PT0wKXRocm93IHRoaXMudW5leHBlY3RlZCgpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpiLkVOVU1fVFlQRV9FWFRFTlNJT04sbmFtZTpuLGRpcmVjdGl2ZXM6aSx2YWx1ZXM6cn0pfXBhcnNlSW5wdXRPYmplY3RUeXBlRXh0ZW5zaW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjt0aGlzLmV4cGVjdEtleXdvcmQoImV4dGVuZCIpLHRoaXMuZXhwZWN0S2V5d29yZCgiaW5wdXQiKTtjb25zdCBuPXRoaXMucGFyc2VOYW1lKCksaT10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCkscj10aGlzLnBhcnNlSW5wdXRGaWVsZHNEZWZpbml0aW9uKCk7aWYoaS5sZW5ndGg9PT0wJiZyLmxlbmd0aD09PTApdGhyb3cgdGhpcy51bmV4cGVjdGVkKCk7cmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOmIuSU5QVVRfT0JKRUNUX1RZUEVfRVhURU5TSU9OLG5hbWU6bixkaXJlY3RpdmVzOmksZmllbGRzOnJ9KX1wYXJzZURpcmVjdGl2ZURlZmluaXRpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZURlc2NyaXB0aW9uKCk7dGhpcy5leHBlY3RLZXl3b3JkKCJkaXJlY3RpdmUiKSx0aGlzLmV4cGVjdFRva2VuKGwuQVQpO2NvbnN0IGk9dGhpcy5wYXJzZU5hbWUoKSxyPXRoaXMucGFyc2VBcmd1bWVudERlZnMoKSxzPXRoaXMuZXhwZWN0T3B0aW9uYWxLZXl3b3JkKCJyZXBlYXRhYmxlIik7dGhpcy5leHBlY3RLZXl3b3JkKCJvbiIpO2NvbnN0IG89dGhpcy5wYXJzZURpcmVjdGl2ZUxvY2F0aW9ucygpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpiLkRJUkVDVElWRV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sbmFtZTppLGFyZ3VtZW50czpyLHJlcGVhdGFibGU6cyxsb2NhdGlvbnM6b30pfXBhcnNlRGlyZWN0aXZlTG9jYXRpb25zKCl7cmV0dXJuIHRoaXMuZGVsaW1pdGVkTWFueShsLlBJUEUsdGhpcy5wYXJzZURpcmVjdGl2ZUxvY2F0aW9uKX1wYXJzZURpcmVjdGl2ZUxvY2F0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VOYW1lKCk7aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEdlLG4udmFsdWUpKXJldHVybiBuO3Rocm93IHRoaXMudW5leHBlY3RlZCh0KX1ub2RlKHQsbil7cmV0dXJuIHRoaXMuX29wdGlvbnMubm9Mb2NhdGlvbiE9PSEwJiYobi5sb2M9bmV3IGxuKHQsdGhpcy5fbGV4ZXIubGFzdFRva2VuLHRoaXMuX2xleGVyLnNvdXJjZSkpLG59cGVlayh0KXtyZXR1cm4gdGhpcy5fbGV4ZXIudG9rZW4ua2luZD09PXR9ZXhwZWN0VG9rZW4odCl7Y29uc3Qgbj10aGlzLl9sZXhlci50b2tlbjtpZihuLmtpbmQ9PT10KXJldHVybiB0aGlzLmFkdmFuY2VMZXhlcigpLG47dGhyb3cgRyh0aGlzLl9sZXhlci5zb3VyY2Usbi5zdGFydCxgRXhwZWN0ZWQgJHtrdCh0KX0sIGZvdW5kICR7a2Uobil9LmApfWV4cGVjdE9wdGlvbmFsVG9rZW4odCl7cmV0dXJuIHRoaXMuX2xleGVyLnRva2VuLmtpbmQ9PT10Pyh0aGlzLmFkdmFuY2VMZXhlcigpLCEwKTohMX1leHBlY3RLZXl3b3JkKHQpe2NvbnN0IG49dGhpcy5fbGV4ZXIudG9rZW47aWYobi5raW5kPT09bC5OQU1FJiZuLnZhbHVlPT09dCl0aGlzLmFkdmFuY2VMZXhlcigpO2Vsc2UgdGhyb3cgRyh0aGlzLl9sZXhlci5zb3VyY2Usbi5zdGFydCxgRXhwZWN0ZWQgIiR7dH0iLCBmb3VuZCAke2tlKG4pfS5gKX1leHBlY3RPcHRpb25hbEtleXdvcmQodCl7Y29uc3Qgbj10aGlzLl9sZXhlci50b2tlbjtyZXR1cm4gbi5raW5kPT09bC5OQU1FJiZuLnZhbHVlPT09dD8odGhpcy5hZHZhbmNlTGV4ZXIoKSwhMCk6ITF9dW5leHBlY3RlZCh0KXtjb25zdCBuPXQhPW51bGw/dDp0aGlzLl9sZXhlci50b2tlbjtyZXR1cm4gRyh0aGlzLl9sZXhlci5zb3VyY2Usbi5zdGFydCxgVW5leHBlY3RlZCAke2tlKG4pfS5gKX1hbnkodCxuLGkpe3RoaXMuZXhwZWN0VG9rZW4odCk7Y29uc3Qgcj1bXTtmb3IoOyF0aGlzLmV4cGVjdE9wdGlvbmFsVG9rZW4oaSk7KXIucHVzaChuLmNhbGwodGhpcykpO3JldHVybiByfW9wdGlvbmFsTWFueSh0LG4saSl7aWYodGhpcy5leHBlY3RPcHRpb25hbFRva2VuKHQpKXtjb25zdCByPVtdO2RvIHIucHVzaChuLmNhbGwodGhpcykpO3doaWxlKCF0aGlzLmV4cGVjdE9wdGlvbmFsVG9rZW4oaSkpO3JldHVybiByfXJldHVybltdfW1hbnkodCxuLGkpe3RoaXMuZXhwZWN0VG9rZW4odCk7Y29uc3Qgcj1bXTtkbyByLnB1c2gobi5jYWxsKHRoaXMpKTt3aGlsZSghdGhpcy5leHBlY3RPcHRpb25hbFRva2VuKGkpKTtyZXR1cm4gcn1kZWxpbWl0ZWRNYW55KHQsbil7dGhpcy5leHBlY3RPcHRpb25hbFRva2VuKHQpO2NvbnN0IGk9W107ZG8gaS5wdXNoKG4uY2FsbCh0aGlzKSk7d2hpbGUodGhpcy5leHBlY3RPcHRpb25hbFRva2VuKHQpKTtyZXR1cm4gaX1hZHZhbmNlTGV4ZXIoKXtjb25zdHttYXhUb2tlbnM6dH09dGhpcy5fb3B0aW9ucyxuPXRoaXMuX2xleGVyLmFkdmFuY2UoKTtpZihuLmtpbmQhPT1sLkVPRiYmKCsrdGhpcy5fdG9rZW5Db3VudGVyLHQhPT12b2lkIDAmJnRoaXMuX3Rva2VuQ291bnRlcj50KSl0aHJvdyBHKHRoaXMuX2xleGVyLnNvdXJjZSxuLnN0YXJ0LGBEb2N1bWVudCBjb250YWlucyBtb3JlIHRoYXQgJHt0fSB0b2tlbnMuIFBhcnNpbmcgYWJvcnRlZC5gKX19ZnVuY3Rpb24ga2UoZSl7Y29uc3QgdD1lLnZhbHVlO3JldHVybiBrdChlLmtpbmQpKyh0IT1udWxsP2AgIiR7dH0iYDoiIil9ZnVuY3Rpb24ga3QoZSl7cmV0dXJuIGduKGUpP2AiJHtlfSJgOmV9ZnVuY3Rpb24gRm4oZSl7cmV0dXJuYCIke2UucmVwbGFjZShNbixCbil9ImB9Y29uc3QgTW49L1tceDAwLVx4MWZceDIyXHg1Y1x4N2YtXHg5Zl0vZztmdW5jdGlvbiBCbihlKXtyZXR1cm4gJG5bZS5jaGFyQ29kZUF0KDApXX1jb25zdCAkbj1bIlxcdTAwMDAiLCJcXHUwMDAxIiwiXFx1MDAwMiIsIlxcdTAwMDMiLCJcXHUwMDA0IiwiXFx1MDAwNSIsIlxcdTAwMDYiLCJcXHUwMDA3IiwiXFxiIiwiXFx0IiwiXFxuIiwiXFx1MDAwQiIsIlxcZiIsIlxcciIsIlxcdTAwMEUiLCJcXHUwMDBGIiwiXFx1MDAxMCIsIlxcdTAwMTEiLCJcXHUwMDEyIiwiXFx1MDAxMyIsIlxcdTAwMTQiLCJcXHUwMDE1IiwiXFx1MDAxNiIsIlxcdTAwMTciLCJcXHUwMDE4IiwiXFx1MDAxOSIsIlxcdTAwMUEiLCJcXHUwMDFCIiwiXFx1MDAxQyIsIlxcdTAwMUQiLCJcXHUwMDFFIiwiXFx1MDAxRiIsIiIsIiIsJ1xcIicsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIlxcXFwiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJcXHUwMDdGIiwiXFx1MDA4MCIsIlxcdTAwODEiLCJcXHUwMDgyIiwiXFx1MDA4MyIsIlxcdTAwODQiLCJcXHUwMDg1IiwiXFx1MDA4NiIsIlxcdTAwODciLCJcXHUwMDg4IiwiXFx1MDA4OSIsIlxcdTAwOEEiLCJcXHUwMDhCIiwiXFx1MDA4QyIsIlxcdTAwOEQiLCJcXHUwMDhFIiwiXFx1MDA4RiIsIlxcdTAwOTAiLCJcXHUwMDkxIiwiXFx1MDA5MiIsIlxcdTAwOTMiLCJcXHUwMDk0IiwiXFx1MDA5NSIsIlxcdTAwOTYiLCJcXHUwMDk3IiwiXFx1MDA5OCIsIlxcdTAwOTkiLCJcXHUwMDlBIiwiXFx1MDA5QiIsIlxcdTAwOUMiLCJcXHUwMDlEIiwiXFx1MDA5RSIsIlxcdTAwOUYiXSxVbj1PYmplY3QuZnJlZXplKHt9KTtmdW5jdGlvbiBWbihlLHQsbj1idCl7Y29uc3QgaT1uZXcgTWFwO2Zvcihjb25zdCBMIG9mIE9iamVjdC52YWx1ZXMoYikpaS5zZXQoTCxxbih0LEwpKTtsZXQgcixzPUFycmF5LmlzQXJyYXkoZSksbz1bZV0sYz0tMSxoPVtdLGQ9ZSx1LHk7Y29uc3Qgdj1bXSxUPVtdO2Rve2MrKztjb25zdCBMPWM9PT1vLmxlbmd0aCxxPUwmJmgubGVuZ3RoIT09MDtpZihMKXtpZih1PVQubGVuZ3RoPT09MD92b2lkIDA6dlt2Lmxlbmd0aC0xXSxkPXkseT1ULnBvcCgpLHEpaWYocyl7ZD1kLnNsaWNlKCk7bGV0IEU9MDtmb3IoY29uc3RbdyxrXW9mIGgpe2NvbnN0IFA9dy1FO2s9PT1udWxsPyhkLnNwbGljZShQLDEpLEUrKyk6ZFtQXT1rfX1lbHNle2Q9RCh7fSxkKTtmb3IoY29uc3RbRSx3XW9mIGgpZFtFXT13fWM9ci5pbmRleCxvPXIua2V5cyxoPXIuZWRpdHMscz1yLmluQXJyYXkscj1yLnByZXZ9ZWxzZSBpZih5KXtpZih1PXM/YzpvW2NdLGQ9eVt1XSxkPT1udWxsKWNvbnRpbnVlO3YucHVzaCh1KX1sZXQgZztpZighQXJyYXkuaXNBcnJheShkKSl7dmFyIG0sTjtUdChkKXx8bGUoITEsYEludmFsaWQgQVNUIE5vZGU6ICR7WWUoZCl9LmApO2NvbnN0IEU9TD8obT1pLmdldChkLmtpbmQpKT09PW51bGx8fG09PT12b2lkIDA/dm9pZCAwOm0ubGVhdmU6KE49aS5nZXQoZC5raW5kKSk9PT1udWxsfHxOPT09dm9pZCAwP3ZvaWQgMDpOLmVudGVyO2lmKGc9RT09bnVsbD92b2lkIDA6RS5jYWxsKHQsZCx1LHksdixUKSxnPT09VW4pYnJlYWs7aWYoZz09PSExKXtpZighTCl7di5wb3AoKTtjb250aW51ZX19ZWxzZSBpZihnIT09dm9pZCAwJiYoaC5wdXNoKFt1LGddKSwhTCkpaWYoVHQoZykpZD1nO2Vsc2V7di5wb3AoKTtjb250aW51ZX19aWYoZz09PXZvaWQgMCYmcSYmaC5wdXNoKFt1LGRdKSxMKXYucG9wKCk7ZWxzZXt2YXIgUjtyPXtpbkFycmF5OnMsaW5kZXg6YyxrZXlzOm8sZWRpdHM6aCxwcmV2OnJ9LHM9QXJyYXkuaXNBcnJheShkKSxvPXM/ZDooUj1uW2Qua2luZF0pIT09bnVsbCYmUiE9PXZvaWQgMD9SOltdLGM9LTEsaD1bXSx5JiZULnB1c2goeSkseT1kfX13aGlsZShyIT09dm9pZCAwKTtyZXR1cm4gaC5sZW5ndGghPT0wP2hbaC5sZW5ndGgtMV1bMV06ZX1mdW5jdGlvbiBxbihlLHQpe2NvbnN0IG49ZVt0XTtyZXR1cm4gdHlwZW9mIG49PSJvYmplY3QiP246dHlwZW9mIG49PSJmdW5jdGlvbiI/e2VudGVyOm4sbGVhdmU6dm9pZCAwfTp7ZW50ZXI6ZS5lbnRlcixsZWF2ZTplLmxlYXZlfX1mdW5jdGlvbiBqbihlKXtyZXR1cm4gVm4oZSx6bil9Y29uc3QgR249ODAsem49e05hbWU6e2xlYXZlOmU9PmUudmFsdWV9LFZhcmlhYmxlOntsZWF2ZTplPT4iJCIrZS5uYW1lfSxEb2N1bWVudDp7bGVhdmU6ZT0+cChlLmRlZmluaXRpb25zLGAKCmApfSxPcGVyYXRpb25EZWZpbml0aW9uOntsZWF2ZShlKXtjb25zdCB0PU8oIigiLHAoZS52YXJpYWJsZURlZmluaXRpb25zLCIsICIpLCIpIiksbj1wKFtlLm9wZXJhdGlvbixwKFtlLm5hbWUsdF0pLHAoZS5kaXJlY3RpdmVzLCIgIildLCIgIik7cmV0dXJuKG49PT0icXVlcnkiPyIiOm4rIiAiKStlLnNlbGVjdGlvblNldH19LFZhcmlhYmxlRGVmaW5pdGlvbjp7bGVhdmU6KHt2YXJpYWJsZTplLHR5cGU6dCxkZWZhdWx0VmFsdWU6bixkaXJlY3RpdmVzOml9KT0+ZSsiOiAiK3QrTygiID0gIixuKStPKCIgIixwKGksIiAiKSl9LFNlbGVjdGlvblNldDp7bGVhdmU6KHtzZWxlY3Rpb25zOmV9KT0+cmUoZSl9LEZpZWxkOntsZWF2ZSh7YWxpYXM6ZSxuYW1lOnQsYXJndW1lbnRzOm4sZGlyZWN0aXZlczppLHNlbGVjdGlvblNldDpyfSl7Y29uc3Qgcz1PKCIiLGUsIjogIikrdDtsZXQgbz1zK08oIigiLHAobiwiLCAiKSwiKSIpO3JldHVybiBvLmxlbmd0aD5HbiYmKG89cytPKGAoCmAsQ2UocChuLGAKYCkpLGAKKWApKSxwKFtvLHAoaSwiICIpLHJdLCIgIil9fSxBcmd1bWVudDp7bGVhdmU6KHtuYW1lOmUsdmFsdWU6dH0pPT5lKyI6ICIrdH0sRnJhZ21lbnRTcHJlYWQ6e2xlYXZlOih7bmFtZTplLGRpcmVjdGl2ZXM6dH0pPT4iLi4uIitlK08oIiAiLHAodCwiICIpKX0sSW5saW5lRnJhZ21lbnQ6e2xlYXZlOih7dHlwZUNvbmRpdGlvbjplLGRpcmVjdGl2ZXM6dCxzZWxlY3Rpb25TZXQ6bn0pPT5wKFsiLi4uIixPKCJvbiAiLGUpLHAodCwiICIpLG5dLCIgIil9LEZyYWdtZW50RGVmaW5pdGlvbjp7bGVhdmU6KHtuYW1lOmUsdHlwZUNvbmRpdGlvbjp0LHZhcmlhYmxlRGVmaW5pdGlvbnM6bixkaXJlY3RpdmVzOmksc2VsZWN0aW9uU2V0OnJ9KT0+YGZyYWdtZW50ICR7ZX0ke08oIigiLHAobiwiLCAiKSwiKSIpfSBvbiAke3R9ICR7TygiIixwKGksIiAiKSwiICIpfWArcn0sSW50VmFsdWU6e2xlYXZlOih7dmFsdWU6ZX0pPT5lfSxGbG9hdFZhbHVlOntsZWF2ZTooe3ZhbHVlOmV9KT0+ZX0sU3RyaW5nVmFsdWU6e2xlYXZlOih7dmFsdWU6ZSxibG9jazp0fSk9PnQ/bW4oZSk6Rm4oZSl9LEJvb2xlYW5WYWx1ZTp7bGVhdmU6KHt2YWx1ZTplfSk9PmU/InRydWUiOiJmYWxzZSJ9LE51bGxWYWx1ZTp7bGVhdmU6KCk9PiJudWxsIn0sRW51bVZhbHVlOntsZWF2ZTooe3ZhbHVlOmV9KT0+ZX0sTGlzdFZhbHVlOntsZWF2ZTooe3ZhbHVlczplfSk9PiJbIitwKGUsIiwgIikrIl0ifSxPYmplY3RWYWx1ZTp7bGVhdmU6KHtmaWVsZHM6ZX0pPT4ieyIrcChlLCIsICIpKyJ9In0sT2JqZWN0RmllbGQ6e2xlYXZlOih7bmFtZTplLHZhbHVlOnR9KT0+ZSsiOiAiK3R9LERpcmVjdGl2ZTp7bGVhdmU6KHtuYW1lOmUsYXJndW1lbnRzOnR9KT0+IkAiK2UrTygiKCIscCh0LCIsICIpLCIpIil9LE5hbWVkVHlwZTp7bGVhdmU6KHtuYW1lOmV9KT0+ZX0sTGlzdFR5cGU6e2xlYXZlOih7dHlwZTplfSk9PiJbIitlKyJdIn0sTm9uTnVsbFR5cGU6e2xlYXZlOih7dHlwZTplfSk9PmUrIiEifSxTY2hlbWFEZWZpbml0aW9uOntsZWF2ZTooe2Rlc2NyaXB0aW9uOmUsZGlyZWN0aXZlczp0LG9wZXJhdGlvblR5cGVzOm59KT0+TygiIixlLGAKYCkrcChbInNjaGVtYSIscCh0LCIgIikscmUobildLCIgIil9LE9wZXJhdGlvblR5cGVEZWZpbml0aW9uOntsZWF2ZTooe29wZXJhdGlvbjplLHR5cGU6dH0pPT5lKyI6ICIrdH0sU2NhbGFyVHlwZURlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsZGlyZWN0aXZlczpufSk9Pk8oIiIsZSxgCmApK3AoWyJzY2FsYXIiLHQscChuLCIgIildLCIgIil9LE9iamVjdFR5cGVEZWZpbml0aW9uOntsZWF2ZTooe2Rlc2NyaXB0aW9uOmUsbmFtZTp0LGludGVyZmFjZXM6bixkaXJlY3RpdmVzOmksZmllbGRzOnJ9KT0+TygiIixlLGAKYCkrcChbInR5cGUiLHQsTygiaW1wbGVtZW50cyAiLHAobiwiICYgIikpLHAoaSwiICIpLHJlKHIpXSwiICIpfSxGaWVsZERlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsYXJndW1lbnRzOm4sdHlwZTppLGRpcmVjdGl2ZXM6cn0pPT5PKCIiLGUsYApgKSt0KyhDdChuKT9PKGAoCmAsQ2UocChuLGAKYCkpLGAKKWApOk8oIigiLHAobiwiLCAiKSwiKSIpKSsiOiAiK2krTygiICIscChyLCIgIikpfSxJbnB1dFZhbHVlRGVmaW5pdGlvbjp7bGVhdmU6KHtkZXNjcmlwdGlvbjplLG5hbWU6dCx0eXBlOm4sZGVmYXVsdFZhbHVlOmksZGlyZWN0aXZlczpyfSk9Pk8oIiIsZSxgCmApK3AoW3QrIjogIituLE8oIj0gIixpKSxwKHIsIiAiKV0sIiAiKX0sSW50ZXJmYWNlVHlwZURlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsaW50ZXJmYWNlczpuLGRpcmVjdGl2ZXM6aSxmaWVsZHM6cn0pPT5PKCIiLGUsYApgKStwKFsiaW50ZXJmYWNlIix0LE8oImltcGxlbWVudHMgIixwKG4sIiAmICIpKSxwKGksIiAiKSxyZShyKV0sIiAiKX0sVW5pb25UeXBlRGVmaW5pdGlvbjp7bGVhdmU6KHtkZXNjcmlwdGlvbjplLG5hbWU6dCxkaXJlY3RpdmVzOm4sdHlwZXM6aX0pPT5PKCIiLGUsYApgKStwKFsidW5pb24iLHQscChuLCIgIiksTygiPSAiLHAoaSwiIHwgIikpXSwiICIpfSxFbnVtVHlwZURlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsZGlyZWN0aXZlczpuLHZhbHVlczppfSk9Pk8oIiIsZSxgCmApK3AoWyJlbnVtIix0LHAobiwiICIpLHJlKGkpXSwiICIpfSxFbnVtVmFsdWVEZWZpbml0aW9uOntsZWF2ZTooe2Rlc2NyaXB0aW9uOmUsbmFtZTp0LGRpcmVjdGl2ZXM6bn0pPT5PKCIiLGUsYApgKStwKFt0LHAobiwiICIpXSwiICIpfSxJbnB1dE9iamVjdFR5cGVEZWZpbml0aW9uOntsZWF2ZTooe2Rlc2NyaXB0aW9uOmUsbmFtZTp0LGRpcmVjdGl2ZXM6bixmaWVsZHM6aX0pPT5PKCIiLGUsYApgKStwKFsiaW5wdXQiLHQscChuLCIgIikscmUoaSldLCIgIil9LERpcmVjdGl2ZURlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsYXJndW1lbnRzOm4scmVwZWF0YWJsZTppLGxvY2F0aW9uczpyfSk9Pk8oIiIsZSxgCmApKyJkaXJlY3RpdmUgQCIrdCsoQ3Qobik/TyhgKApgLENlKHAobixgCmApKSxgCilgKTpPKCIoIixwKG4sIiwgIiksIikiKSkrKGk/IiByZXBlYXRhYmxlIjoiIikrIiBvbiAiK3AociwiIHwgIil9LFNjaGVtYUV4dGVuc2lvbjp7bGVhdmU6KHtkaXJlY3RpdmVzOmUsb3BlcmF0aW9uVHlwZXM6dH0pPT5wKFsiZXh0ZW5kIHNjaGVtYSIscChlLCIgIikscmUodCldLCIgIil9LFNjYWxhclR5cGVFeHRlbnNpb246e2xlYXZlOih7bmFtZTplLGRpcmVjdGl2ZXM6dH0pPT5wKFsiZXh0ZW5kIHNjYWxhciIsZSxwKHQsIiAiKV0sIiAiKX0sT2JqZWN0VHlwZUV4dGVuc2lvbjp7bGVhdmU6KHtuYW1lOmUsaW50ZXJmYWNlczp0LGRpcmVjdGl2ZXM6bixmaWVsZHM6aX0pPT5wKFsiZXh0ZW5kIHR5cGUiLGUsTygiaW1wbGVtZW50cyAiLHAodCwiICYgIikpLHAobiwiICIpLHJlKGkpXSwiICIpfSxJbnRlcmZhY2VUeXBlRXh0ZW5zaW9uOntsZWF2ZTooe25hbWU6ZSxpbnRlcmZhY2VzOnQsZGlyZWN0aXZlczpuLGZpZWxkczppfSk9PnAoWyJleHRlbmQgaW50ZXJmYWNlIixlLE8oImltcGxlbWVudHMgIixwKHQsIiAmICIpKSxwKG4sIiAiKSxyZShpKV0sIiAiKX0sVW5pb25UeXBlRXh0ZW5zaW9uOntsZWF2ZTooe25hbWU6ZSxkaXJlY3RpdmVzOnQsdHlwZXM6bn0pPT5wKFsiZXh0ZW5kIHVuaW9uIixlLHAodCwiICIpLE8oIj0gIixwKG4sIiB8ICIpKV0sIiAiKX0sRW51bVR5cGVFeHRlbnNpb246e2xlYXZlOih7bmFtZTplLGRpcmVjdGl2ZXM6dCx2YWx1ZXM6bn0pPT5wKFsiZXh0ZW5kIGVudW0iLGUscCh0LCIgIikscmUobildLCIgIil9LElucHV0T2JqZWN0VHlwZUV4dGVuc2lvbjp7bGVhdmU6KHtuYW1lOmUsZGlyZWN0aXZlczp0LGZpZWxkczpufSk9PnAoWyJleHRlbmQgaW5wdXQiLGUscCh0LCIgIikscmUobildLCIgIil9fTtmdW5jdGlvbiBwKGUsdD0iIil7dmFyIG47cmV0dXJuKG49ZT09bnVsbD92b2lkIDA6ZS5maWx0ZXIoaT0+aSkuam9pbih0KSkhPT1udWxsJiZuIT09dm9pZCAwP246IiJ9ZnVuY3Rpb24gcmUoZSl7cmV0dXJuIE8oYHsKYCxDZShwKGUsYApgKSksYAp9YCl9ZnVuY3Rpb24gTyhlLHQsbj0iIil7cmV0dXJuIHQhPW51bGwmJnQhPT0iIj9lK3QrbjoiIn1mdW5jdGlvbiBDZShlKXtyZXR1cm4gTygiICAiLGUucmVwbGFjZSgvXG4vZyxgCiAgYCkpfWZ1bmN0aW9uIEN0KGUpe3ZhciB0O3JldHVybih0PWU9PW51bGw/dm9pZCAwOmUuc29tZShuPT5uLmluY2x1ZGVzKGAKYCkpKSE9PW51bGwmJnQhPT12b2lkIDA/dDohMX1jb25zdCBSdD1lPT57dmFyIGkscjtsZXQgdDtjb25zdCBuPWUuZGVmaW5pdGlvbnMuZmlsdGVyKHM9PnMua2luZD09PSJPcGVyYXRpb25EZWZpbml0aW9uIik7cmV0dXJuIG4ubGVuZ3RoPT09MSYmKHQ9KHI9KGk9blswXSk9PW51bGw/dm9pZCAwOmkubmFtZSk9PW51bGw/dm9pZCAwOnIudmFsdWUpLHR9LEplPWU9PntpZih0eXBlb2YgZT09InN0cmluZyIpe2xldCBuO3RyeXtjb25zdCBpPUR0KGUpO249UnQoaSl9Y2F0Y2goaSl7fXJldHVybntxdWVyeTplLG9wZXJhdGlvbk5hbWU6bn19Y29uc3QgdD1SdChlKTtyZXR1cm57cXVlcnk6am4oZSksb3BlcmF0aW9uTmFtZTp0fX07Y2xhc3MgZGUgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3Rvcih0LG4pe2NvbnN0IGk9YCR7ZGUuZXh0cmFjdE1lc3NhZ2UodCl9OiAke0pTT04uc3RyaW5naWZ5KHtyZXNwb25zZTp0LHJlcXVlc3Q6bn0pfWA7c3VwZXIoaSksT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsZGUucHJvdG90eXBlKSx0aGlzLnJlc3BvbnNlPXQsdGhpcy5yZXF1ZXN0PW4sdHlwZW9mIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlPT0iZnVuY3Rpb24iJiZFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLGRlKX1zdGF0aWMgZXh0cmFjdE1lc3NhZ2UodCl7dmFyIG4saSxyO3JldHVybihyPShpPShuPXQuZXJyb3JzKT09bnVsbD92b2lkIDA6blswXSk9PW51bGw/dm9pZCAwOmkubWVzc2FnZSkhPW51bGw/cjpgR3JhcGhRTCBFcnJvciAoQ29kZTogJHt0LnN0YXR1c30pYH19dmFyIEhuPXR5cGVvZiBnbG9iYWxUaGlzIT0idW5kZWZpbmVkIj9nbG9iYWxUaGlzOnR5cGVvZiB3aW5kb3chPSJ1bmRlZmluZWQiP3dpbmRvdzp0eXBlb2YgZ2xvYmFsIT0idW5kZWZpbmVkIj9nbG9iYWw6dHlwZW9mIHNlbGYhPSJ1bmRlZmluZWQiP3NlbGY6e307ZnVuY3Rpb24gTHQoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsImRlZmF1bHQiKT9lLmRlZmF1bHQ6ZX12YXIgUWU9e2V4cG9ydHM6e319OyhmdW5jdGlvbihlLHQpe3ZhciBuPXR5cGVvZiBzZWxmIT0idW5kZWZpbmVkIj9zZWxmOkhuLGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBzKCl7dGhpcy5mZXRjaD0hMSx0aGlzLkRPTUV4Y2VwdGlvbj1uLkRPTUV4Y2VwdGlvbn1yZXR1cm4gcy5wcm90b3R5cGU9bixuZXcgc30oKTsoZnVuY3Rpb24ocyl7KGZ1bmN0aW9uKG8pe3ZhciBjPXtzZWFyY2hQYXJhbXM6IlVSTFNlYXJjaFBhcmFtcyJpbiBzLGl0ZXJhYmxlOiJTeW1ib2wiaW4gcyYmIml0ZXJhdG9yImluIFN5bWJvbCxibG9iOiJGaWxlUmVhZGVyImluIHMmJiJCbG9iImluIHMmJmZ1bmN0aW9uKCl7dHJ5e3JldHVybiBuZXcgQmxvYiwhMH1jYXRjaChhKXtyZXR1cm4hMX19KCksZm9ybURhdGE6IkZvcm1EYXRhImluIHMsYXJyYXlCdWZmZXI6IkFycmF5QnVmZmVyImluIHN9O2Z1bmN0aW9uIGgoYSl7cmV0dXJuIGEmJkRhdGFWaWV3LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGEpfWlmKGMuYXJyYXlCdWZmZXIpdmFyIGQ9WyJbb2JqZWN0IEludDhBcnJheV0iLCJbb2JqZWN0IFVpbnQ4QXJyYXldIiwiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iLCJbb2JqZWN0IEludDE2QXJyYXldIiwiW29iamVjdCBVaW50MTZBcnJheV0iLCJbb2JqZWN0IEludDMyQXJyYXldIiwiW29iamVjdCBVaW50MzJBcnJheV0iLCJbb2JqZWN0IEZsb2F0MzJBcnJheV0iLCJbb2JqZWN0IEZsb2F0NjRBcnJheV0iXSx1PUFycmF5QnVmZmVyLmlzVmlld3x8ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmQuaW5kZXhPZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSkpPi0xfTtmdW5jdGlvbiB5KGEpe2lmKHR5cGVvZiBhIT0ic3RyaW5nIiYmKGE9U3RyaW5nKGEpKSwvW15hLXowLTlcLSMkJSYnKisuXl9gfH5dL2kudGVzdChhKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGNoYXJhY3RlciBpbiBoZWFkZXIgZmllbGQgbmFtZSIpO3JldHVybiBhLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gdihhKXtyZXR1cm4gdHlwZW9mIGEhPSJzdHJpbmciJiYoYT1TdHJpbmcoYSkpLGF9ZnVuY3Rpb24gVChhKXt2YXIgZj17bmV4dDpmdW5jdGlvbigpe3ZhciBfPWEuc2hpZnQoKTtyZXR1cm57ZG9uZTpfPT09dm9pZCAwLHZhbHVlOl99fX07cmV0dXJuIGMuaXRlcmFibGUmJihmW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gZn0pLGZ9ZnVuY3Rpb24gbShhKXt0aGlzLm1hcD17fSxhIGluc3RhbmNlb2YgbT9hLmZvckVhY2goZnVuY3Rpb24oZixfKXt0aGlzLmFwcGVuZChfLGYpfSx0aGlzKTpBcnJheS5pc0FycmF5KGEpP2EuZm9yRWFjaChmdW5jdGlvbihmKXt0aGlzLmFwcGVuZChmWzBdLGZbMV0pfSx0aGlzKTphJiZPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhhKS5mb3JFYWNoKGZ1bmN0aW9uKGYpe3RoaXMuYXBwZW5kKGYsYVtmXSl9LHRoaXMpfW0ucHJvdG90eXBlLmFwcGVuZD1mdW5jdGlvbihhLGYpe2E9eShhKSxmPXYoZik7dmFyIF89dGhpcy5tYXBbYV07dGhpcy5tYXBbYV09Xz9fKyIsICIrZjpmfSxtLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oYSl7ZGVsZXRlIHRoaXMubWFwW3koYSldfSxtLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9eShhKSx0aGlzLmhhcyhhKT90aGlzLm1hcFthXTpudWxsfSxtLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubWFwLmhhc093blByb3BlcnR5KHkoYSkpfSxtLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxmKXt0aGlzLm1hcFt5KGEpXT12KGYpfSxtLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGEsZil7Zm9yKHZhciBfIGluIHRoaXMubWFwKXRoaXMubWFwLmhhc093blByb3BlcnR5KF8pJiZhLmNhbGwoZix0aGlzLm1hcFtfXSxfLHRoaXMpfSxtLnByb3RvdHlwZS5rZXlzPWZ1bmN0aW9uKCl7dmFyIGE9W107cmV0dXJuIHRoaXMuZm9yRWFjaChmdW5jdGlvbihmLF8pe2EucHVzaChfKX0pLFQoYSl9LG0ucHJvdG90eXBlLnZhbHVlcz1mdW5jdGlvbigpe3ZhciBhPVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24oZil7YS5wdXNoKGYpfSksVChhKX0sbS5wcm90b3R5cGUuZW50cmllcz1mdW5jdGlvbigpe3ZhciBhPVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24oZixfKXthLnB1c2goW18sZl0pfSksVChhKX0sYy5pdGVyYWJsZSYmKG0ucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl09bS5wcm90b3R5cGUuZW50cmllcyk7ZnVuY3Rpb24gTihhKXtpZihhLmJvZHlVc2VkKXJldHVybiBQcm9taXNlLnJlamVjdChuZXcgVHlwZUVycm9yKCJBbHJlYWR5IHJlYWQiKSk7YS5ib2R5VXNlZD0hMH1mdW5jdGlvbiBSKGEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihmLF8pe2Eub25sb2FkPWZ1bmN0aW9uKCl7ZihhLnJlc3VsdCl9LGEub25lcnJvcj1mdW5jdGlvbigpe18oYS5lcnJvcil9fSl9ZnVuY3Rpb24gTChhKXt2YXIgZj1uZXcgRmlsZVJlYWRlcixfPVIoZik7cmV0dXJuIGYucmVhZEFzQXJyYXlCdWZmZXIoYSksX31mdW5jdGlvbiBxKGEpe3ZhciBmPW5ldyBGaWxlUmVhZGVyLF89UihmKTtyZXR1cm4gZi5yZWFkQXNUZXh0KGEpLF99ZnVuY3Rpb24gZyhhKXtmb3IodmFyIGY9bmV3IFVpbnQ4QXJyYXkoYSksXz1uZXcgQXJyYXkoZi5sZW5ndGgpLFM9MDtTPGYubGVuZ3RoO1MrKylfW1NdPVN0cmluZy5mcm9tQ2hhckNvZGUoZltTXSk7cmV0dXJuIF8uam9pbigiIil9ZnVuY3Rpb24gRShhKXtpZihhLnNsaWNlKXJldHVybiBhLnNsaWNlKDApO3ZhciBmPW5ldyBVaW50OEFycmF5KGEuYnl0ZUxlbmd0aCk7cmV0dXJuIGYuc2V0KG5ldyBVaW50OEFycmF5KGEpKSxmLmJ1ZmZlcn1mdW5jdGlvbiB3KCl7cmV0dXJuIHRoaXMuYm9keVVzZWQ9ITEsdGhpcy5faW5pdEJvZHk9ZnVuY3Rpb24oYSl7dGhpcy5fYm9keUluaXQ9YSxhP3R5cGVvZiBhPT0ic3RyaW5nIj90aGlzLl9ib2R5VGV4dD1hOmMuYmxvYiYmQmxvYi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihhKT90aGlzLl9ib2R5QmxvYj1hOmMuZm9ybURhdGEmJkZvcm1EYXRhLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGEpP3RoaXMuX2JvZHlGb3JtRGF0YT1hOmMuc2VhcmNoUGFyYW1zJiZVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoYSk/dGhpcy5fYm9keVRleHQ9YS50b1N0cmluZygpOmMuYXJyYXlCdWZmZXImJmMuYmxvYiYmaChhKT8odGhpcy5fYm9keUFycmF5QnVmZmVyPUUoYS5idWZmZXIpLHRoaXMuX2JvZHlJbml0PW5ldyBCbG9iKFt0aGlzLl9ib2R5QXJyYXlCdWZmZXJdKSk6Yy5hcnJheUJ1ZmZlciYmKEFycmF5QnVmZmVyLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGEpfHx1KGEpKT90aGlzLl9ib2R5QXJyYXlCdWZmZXI9RShhKTp0aGlzLl9ib2R5VGV4dD1hPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKTp0aGlzLl9ib2R5VGV4dD0iIix0aGlzLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKXx8KHR5cGVvZiBhPT0ic3RyaW5nIj90aGlzLmhlYWRlcnMuc2V0KCJjb250ZW50LXR5cGUiLCJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgiKTp0aGlzLl9ib2R5QmxvYiYmdGhpcy5fYm9keUJsb2IudHlwZT90aGlzLmhlYWRlcnMuc2V0KCJjb250ZW50LXR5cGUiLHRoaXMuX2JvZHlCbG9iLnR5cGUpOmMuc2VhcmNoUGFyYW1zJiZVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoYSkmJnRoaXMuaGVhZGVycy5zZXQoImNvbnRlbnQtdHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04IikpfSxjLmJsb2ImJih0aGlzLmJsb2I9ZnVuY3Rpb24oKXt2YXIgYT1OKHRoaXMpO2lmKGEpcmV0dXJuIGE7aWYodGhpcy5fYm9keUJsb2IpcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5QmxvYik7aWYodGhpcy5fYm9keUFycmF5QnVmZmVyKXJldHVybiBQcm9taXNlLnJlc29sdmUobmV3IEJsb2IoW3RoaXMuX2JvZHlBcnJheUJ1ZmZlcl0pKTtpZih0aGlzLl9ib2R5Rm9ybURhdGEpdGhyb3cgbmV3IEVycm9yKCJjb3VsZCBub3QgcmVhZCBGb3JtRGF0YSBib2R5IGFzIGJsb2IiKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBCbG9iKFt0aGlzLl9ib2R5VGV4dF0pKX0sdGhpcy5hcnJheUJ1ZmZlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9ib2R5QXJyYXlCdWZmZXI/Tih0aGlzKXx8UHJvbWlzZS5yZXNvbHZlKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcik6dGhpcy5ibG9iKCkudGhlbihMKX0pLHRoaXMudGV4dD1mdW5jdGlvbigpe3ZhciBhPU4odGhpcyk7aWYoYSlyZXR1cm4gYTtpZih0aGlzLl9ib2R5QmxvYilyZXR1cm4gcSh0aGlzLl9ib2R5QmxvYik7aWYodGhpcy5fYm9keUFycmF5QnVmZmVyKXJldHVybiBQcm9taXNlLnJlc29sdmUoZyh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpKTtpZih0aGlzLl9ib2R5Rm9ybURhdGEpdGhyb3cgbmV3IEVycm9yKCJjb3VsZCBub3QgcmVhZCBGb3JtRGF0YSBib2R5IGFzIHRleHQiKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2JvZHlUZXh0KX0sYy5mb3JtRGF0YSYmKHRoaXMuZm9ybURhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50ZXh0KCkudGhlbih4KX0pLHRoaXMuanNvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRleHQoKS50aGVuKEpTT04ucGFyc2UpfSx0aGlzfXZhciBrPVsiREVMRVRFIiwiR0VUIiwiSEVBRCIsIk9QVElPTlMiLCJQT1NUIiwiUFVUIl07ZnVuY3Rpb24gUChhKXt2YXIgZj1hLnRvVXBwZXJDYXNlKCk7cmV0dXJuIGsuaW5kZXhPZihmKT4tMT9mOmF9ZnVuY3Rpb24gSShhLGYpe2Y9Znx8e307dmFyIF89Zi5ib2R5O2lmKGEgaW5zdGFuY2VvZiBJKXtpZihhLmJvZHlVc2VkKXRocm93IG5ldyBUeXBlRXJyb3IoIkFscmVhZHkgcmVhZCIpO3RoaXMudXJsPWEudXJsLHRoaXMuY3JlZGVudGlhbHM9YS5jcmVkZW50aWFscyxmLmhlYWRlcnN8fCh0aGlzLmhlYWRlcnM9bmV3IG0oYS5oZWFkZXJzKSksdGhpcy5tZXRob2Q9YS5tZXRob2QsdGhpcy5tb2RlPWEubW9kZSx0aGlzLnNpZ25hbD1hLnNpZ25hbCwhXyYmYS5fYm9keUluaXQhPW51bGwmJihfPWEuX2JvZHlJbml0LGEuYm9keVVzZWQ9ITApfWVsc2UgdGhpcy51cmw9U3RyaW5nKGEpO2lmKHRoaXMuY3JlZGVudGlhbHM9Zi5jcmVkZW50aWFsc3x8dGhpcy5jcmVkZW50aWFsc3x8InNhbWUtb3JpZ2luIiwoZi5oZWFkZXJzfHwhdGhpcy5oZWFkZXJzKSYmKHRoaXMuaGVhZGVycz1uZXcgbShmLmhlYWRlcnMpKSx0aGlzLm1ldGhvZD1QKGYubWV0aG9kfHx0aGlzLm1ldGhvZHx8IkdFVCIpLHRoaXMubW9kZT1mLm1vZGV8fHRoaXMubW9kZXx8bnVsbCx0aGlzLnNpZ25hbD1mLnNpZ25hbHx8dGhpcy5zaWduYWwsdGhpcy5yZWZlcnJlcj1udWxsLCh0aGlzLm1ldGhvZD09PSJHRVQifHx0aGlzLm1ldGhvZD09PSJIRUFEIikmJl8pdGhyb3cgbmV3IFR5cGVFcnJvcigiQm9keSBub3QgYWxsb3dlZCBmb3IgR0VUIG9yIEhFQUQgcmVxdWVzdHMiKTt0aGlzLl9pbml0Qm9keShfKX1JLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgSSh0aGlzLHtib2R5OnRoaXMuX2JvZHlJbml0fSl9O2Z1bmN0aW9uIHgoYSl7dmFyIGY9bmV3IEZvcm1EYXRhO3JldHVybiBhLnRyaW0oKS5zcGxpdCgiJiIpLmZvckVhY2goZnVuY3Rpb24oXyl7aWYoXyl7dmFyIFM9Xy5zcGxpdCgiPSIpLEM9Uy5zaGlmdCgpLnJlcGxhY2UoL1wrL2csIiAiKSxBPVMuam9pbigiPSIpLnJlcGxhY2UoL1wrL2csIiAiKTtmLmFwcGVuZChkZWNvZGVVUklDb21wb25lbnQoQyksZGVjb2RlVVJJQ29tcG9uZW50KEEpKX19KSxmfWZ1bmN0aW9uIHooYSl7dmFyIGY9bmV3IG0sXz1hLnJlcGxhY2UoL1xyP1xuW1x0IF0rL2csIiAiKTtyZXR1cm4gXy5zcGxpdCgvXHI/XG4vKS5mb3JFYWNoKGZ1bmN0aW9uKFMpe3ZhciBDPVMuc3BsaXQoIjoiKSxBPUMuc2hpZnQoKS50cmltKCk7aWYoQSl7dmFyIEs9Qy5qb2luKCI6IikudHJpbSgpO2YuYXBwZW5kKEEsSyl9fSksZn13LmNhbGwoSS5wcm90b3R5cGUpO2Z1bmN0aW9uIFYoYSxmKXtmfHwoZj17fSksdGhpcy50eXBlPSJkZWZhdWx0Iix0aGlzLnN0YXR1cz1mLnN0YXR1cz09PXZvaWQgMD8yMDA6Zi5zdGF0dXMsdGhpcy5vaz10aGlzLnN0YXR1cz49MjAwJiZ0aGlzLnN0YXR1czwzMDAsdGhpcy5zdGF0dXNUZXh0PSJzdGF0dXNUZXh0ImluIGY/Zi5zdGF0dXNUZXh0OiJPSyIsdGhpcy5oZWFkZXJzPW5ldyBtKGYuaGVhZGVycyksdGhpcy51cmw9Zi51cmx8fCIiLHRoaXMuX2luaXRCb2R5KGEpfXcuY2FsbChWLnByb3RvdHlwZSksVi5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFYodGhpcy5fYm9keUluaXQse3N0YXR1czp0aGlzLnN0YXR1cyxzdGF0dXNUZXh0OnRoaXMuc3RhdHVzVGV4dCxoZWFkZXJzOm5ldyBtKHRoaXMuaGVhZGVycyksdXJsOnRoaXMudXJsfSl9LFYuZXJyb3I9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgVihudWxsLHtzdGF0dXM6MCxzdGF0dXNUZXh0OiIifSk7cmV0dXJuIGEudHlwZT0iZXJyb3IiLGF9O3ZhciBIPVszMDEsMzAyLDMwMywzMDcsMzA4XTtWLnJlZGlyZWN0PWZ1bmN0aW9uKGEsZil7aWYoSC5pbmRleE9mKGYpPT09LTEpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgc3RhdHVzIGNvZGUiKTtyZXR1cm4gbmV3IFYobnVsbCx7c3RhdHVzOmYsaGVhZGVyczp7bG9jYXRpb246YX19KX0sby5ET01FeGNlcHRpb249cy5ET01FeGNlcHRpb247dHJ5e25ldyBvLkRPTUV4Y2VwdGlvbn1jYXRjaChhKXtvLkRPTUV4Y2VwdGlvbj1mdW5jdGlvbihmLF8pe3RoaXMubWVzc2FnZT1mLHRoaXMubmFtZT1fO3ZhciBTPUVycm9yKGYpO3RoaXMuc3RhY2s9Uy5zdGFja30sby5ET01FeGNlcHRpb24ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKSxvLkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuY29uc3RydWN0b3I9by5ET01FeGNlcHRpb259ZnVuY3Rpb24gWChhLGYpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihfLFMpe3ZhciBDPW5ldyBJKGEsZik7aWYoQy5zaWduYWwmJkMuc2lnbmFsLmFib3J0ZWQpcmV0dXJuIFMobmV3IG8uRE9NRXhjZXB0aW9uKCJBYm9ydGVkIiwiQWJvcnRFcnJvciIpKTt2YXIgQT1uZXcgWE1MSHR0cFJlcXVlc3Q7ZnVuY3Rpb24gSygpe0EuYWJvcnQoKX1BLm9ubG9hZD1mdW5jdGlvbigpe3ZhciBqPXtzdGF0dXM6QS5zdGF0dXMsc3RhdHVzVGV4dDpBLnN0YXR1c1RleHQsaGVhZGVyczp6KEEuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCl8fCIiKX07ai51cmw9InJlc3BvbnNlVVJMImluIEE/QS5yZXNwb25zZVVSTDpqLmhlYWRlcnMuZ2V0KCJYLVJlcXVlc3QtVVJMIik7dmFyIFc9InJlc3BvbnNlImluIEE/QS5yZXNwb25zZTpBLnJlc3BvbnNlVGV4dDtfKG5ldyBWKFcsaikpfSxBLm9uZXJyb3I9ZnVuY3Rpb24oKXtTKG5ldyBUeXBlRXJyb3IoIk5ldHdvcmsgcmVxdWVzdCBmYWlsZWQiKSl9LEEub250aW1lb3V0PWZ1bmN0aW9uKCl7UyhuZXcgVHlwZUVycm9yKCJOZXR3b3JrIHJlcXVlc3QgZmFpbGVkIikpfSxBLm9uYWJvcnQ9ZnVuY3Rpb24oKXtTKG5ldyBvLkRPTUV4Y2VwdGlvbigiQWJvcnRlZCIsIkFib3J0RXJyb3IiKSl9LEEub3BlbihDLm1ldGhvZCxDLnVybCwhMCksQy5jcmVkZW50aWFscz09PSJpbmNsdWRlIj9BLndpdGhDcmVkZW50aWFscz0hMDpDLmNyZWRlbnRpYWxzPT09Im9taXQiJiYoQS53aXRoQ3JlZGVudGlhbHM9ITEpLCJyZXNwb25zZVR5cGUiaW4gQSYmYy5ibG9iJiYoQS5yZXNwb25zZVR5cGU9ImJsb2IiKSxDLmhlYWRlcnMuZm9yRWFjaChmdW5jdGlvbihqLFcpe0Euc2V0UmVxdWVzdEhlYWRlcihXLGopfSksQy5zaWduYWwmJihDLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsSyksQS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtBLnJlYWR5U3RhdGU9PT00JiZDLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsSyl9KSxBLnNlbmQodHlwZW9mIEMuX2JvZHlJbml0PT0idW5kZWZpbmVkIj9udWxsOkMuX2JvZHlJbml0KX0pfXJldHVybiBYLnBvbHlmaWxsPSEwLHMuZmV0Y2h8fChzLmZldGNoPVgscy5IZWFkZXJzPW0scy5SZXF1ZXN0PUkscy5SZXNwb25zZT1WKSxvLkhlYWRlcnM9bSxvLlJlcXVlc3Q9SSxvLlJlc3BvbnNlPVYsby5mZXRjaD1YLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxvfSkoe30pfSkoaSksaS5mZXRjaC5wb255ZmlsbD0hMCxkZWxldGUgaS5mZXRjaC5wb2x5ZmlsbDt2YXIgcj1pO3Q9ci5mZXRjaCx0LmRlZmF1bHQ9ci5mZXRjaCx0LmZldGNoPXIuZmV0Y2gsdC5IZWFkZXJzPXIuSGVhZGVycyx0LlJlcXVlc3Q9ci5SZXF1ZXN0LHQuUmVzcG9uc2U9ci5SZXNwb25zZSxlLmV4cG9ydHM9dH0pKFFlLFFlLmV4cG9ydHMpO3ZhciBYZT1RZS5leHBvcnRzLFJlPUx0KFhlKSxZbj1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxkZWZhdWx0OlJlfSk7Y29uc3QgcGU9ZT0+e2xldCB0PXt9O3JldHVybiBlJiYodHlwZW9mIEhlYWRlcnMhPSJ1bmRlZmluZWQiJiZlIGluc3RhbmNlb2YgSGVhZGVyc3x8WW4mJlhlLkhlYWRlcnMmJmUgaW5zdGFuY2VvZiBYZS5IZWFkZXJzP3Q9JChlKTpBcnJheS5pc0FycmF5KGUpP2UuZm9yRWFjaCgoW24saV0pPT57biYmaSE9PXZvaWQgMCYmKHRbbl09aSl9KTp0PWUpLHR9LFB0PWU9PmUucmVwbGFjZSgvKFtccyxdfCNbXlxuXHJdKykrL2csIiAiKS50cmltKCksSm49ZT0+e2lmKCFBcnJheS5pc0FycmF5KGUucXVlcnkpKXtjb25zdCBpPWUscj1bYHF1ZXJ5PSR7ZW5jb2RlVVJJQ29tcG9uZW50KFB0KGkucXVlcnkpKX1gXTtyZXR1cm4gZS52YXJpYWJsZXMmJnIucHVzaChgdmFyaWFibGVzPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGkuanNvblNlcmlhbGl6ZXIuc3RyaW5naWZ5KGkudmFyaWFibGVzKSl9YCksaS5vcGVyYXRpb25OYW1lJiZyLnB1c2goYG9wZXJhdGlvbk5hbWU9JHtlbmNvZGVVUklDb21wb25lbnQoaS5vcGVyYXRpb25OYW1lKX1gKSxyLmpvaW4oIiYiKX1pZih0eXBlb2YgZS52YXJpYWJsZXMhPSJ1bmRlZmluZWQiJiYhQXJyYXkuaXNBcnJheShlLnZhcmlhYmxlcykpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY3JlYXRlIHF1ZXJ5IHdpdGggZ2l2ZW4gdmFyaWFibGUgdHlwZSwgYXJyYXkgZXhwZWN0ZWQiKTtjb25zdCB0PWUsbj1lLnF1ZXJ5LnJlZHVjZSgoaSxyLHMpPT4oaS5wdXNoKHtxdWVyeTpQdChyKSx2YXJpYWJsZXM6dC52YXJpYWJsZXM/dC5qc29uU2VyaWFsaXplci5zdHJpbmdpZnkodC52YXJpYWJsZXNbc10pOnZvaWQgMH0pLGkpLFtdKTtyZXR1cm5gcXVlcnk9JHtlbmNvZGVVUklDb21wb25lbnQodC5qc29uU2VyaWFsaXplci5zdHJpbmdpZnkobikpfWB9LFFuPWU9PnQ9PkoodGhpcyxudWxsLGZ1bmN0aW9uKigpe3ZhciBOO2NvbnN0e3VybDpuLHF1ZXJ5OmksdmFyaWFibGVzOnIsb3BlcmF0aW9uTmFtZTpzLGZldGNoOm8sZmV0Y2hPcHRpb25zOmMsbWlkZGxld2FyZTpofT10LGQ9RCh7fSx0LmhlYWRlcnMpO2xldCB1PSIiLHk7ZT09PSJQT1NUIj8oeT1XbihpLHIscyxjLmpzb25TZXJpYWxpemVyKSx0eXBlb2YgeT09InN0cmluZyImJihkWyJDb250ZW50LVR5cGUiXT0iYXBwbGljYXRpb24vanNvbiIpKTp1PUpuKHtxdWVyeTppLHZhcmlhYmxlczpyLG9wZXJhdGlvbk5hbWU6cyxqc29uU2VyaWFsaXplcjooTj1jLmpzb25TZXJpYWxpemVyKSE9bnVsbD9OOkZ9KTtjb25zdCB2PUQoe21ldGhvZDplLGhlYWRlcnM6ZCxib2R5Onl9LGMpO2xldCBUPW4sbT12O2lmKGgpe2NvbnN0IFI9eWllbGQgUHJvbWlzZS5yZXNvbHZlKGgoVWUoRCh7fSx2KSx7dXJsOm4sb3BlcmF0aW9uTmFtZTpzLHZhcmlhYmxlczpyfSkpKSx7dXJsOnF9PVIsZz12ZShSLFsidXJsIl0pO1Q9cSxtPWd9cmV0dXJuIHUmJihUPWAke1R9PyR7dX1gKSx5aWVsZCBvKFQsbSl9KTtjbGFzcyBYbntjb25zdHJ1Y3Rvcih0LG49e30pe3RoaXMudXJsPXQsdGhpcy5yZXF1ZXN0Q29uZmlnPW4sdGhpcy5yYXdSZXF1ZXN0PSguLi5pKT0+Sih0aGlzLG51bGwsZnVuY3Rpb24qKCl7Y29uc3RbcixzLG9dPWksYz1PZShyLHMsbyksUj10aGlzLnJlcXVlc3RDb25maWcse2hlYWRlcnM6aCxmZXRjaDpkPVJlLG1ldGhvZDp1PSJQT1NUIixyZXF1ZXN0TWlkZGxld2FyZTp5LHJlc3BvbnNlTWlkZGxld2FyZTp2fT1SLFQ9dmUoUixbImhlYWRlcnMiLCJmZXRjaCIsIm1ldGhvZCIsInJlcXVlc3RNaWRkbGV3YXJlIiwicmVzcG9uc2VNaWRkbGV3YXJlIl0pLHt1cmw6bX09dGhpcztjLnNpZ25hbCE9PXZvaWQgMCYmKFQuc2lnbmFsPWMuc2lnbmFsKTtjb25zdHtvcGVyYXRpb25OYW1lOk59PUplKGMucXVlcnkpO3JldHVybiBXZSh7dXJsOm0scXVlcnk6Yy5xdWVyeSx2YXJpYWJsZXM6Yy52YXJpYWJsZXMsaGVhZGVyczpEKEQoe30scGUoWmUoaCkpKSxwZShjLnJlcXVlc3RIZWFkZXJzKSksb3BlcmF0aW9uTmFtZTpOLGZldGNoOmQsbWV0aG9kOnUsZmV0Y2hPcHRpb25zOlQsbWlkZGxld2FyZTp5fSkudGhlbihMPT4odiYmdihMKSxMKSkuY2F0Y2goTD0+e3Rocm93IHYmJnYoTCksTH0pfSl9cmVxdWVzdCh0LC4uLm4pe3JldHVybiBKKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtjb25zdFtpLHJdPW4scz1lZSh0LGksciksTj10aGlzLnJlcXVlc3RDb25maWcse2hlYWRlcnM6byxmZXRjaDpjPVJlLG1ldGhvZDpoPSJQT1NUIixyZXF1ZXN0TWlkZGxld2FyZTpkLHJlc3BvbnNlTWlkZGxld2FyZTp1fT1OLHk9dmUoTixbImhlYWRlcnMiLCJmZXRjaCIsIm1ldGhvZCIsInJlcXVlc3RNaWRkbGV3YXJlIiwicmVzcG9uc2VNaWRkbGV3YXJlIl0pLHt1cmw6dn09dGhpcztzLnNpZ25hbCE9PXZvaWQgMCYmKHkuc2lnbmFsPXMuc2lnbmFsKTtjb25zdHtxdWVyeTpULG9wZXJhdGlvbk5hbWU6bX09SmUocy5kb2N1bWVudCk7cmV0dXJuIFdlKHt1cmw6dixxdWVyeTpULHZhcmlhYmxlczpzLnZhcmlhYmxlcyxoZWFkZXJzOkQoRCh7fSxwZShaZShvKSkpLHBlKHMucmVxdWVzdEhlYWRlcnMpKSxvcGVyYXRpb25OYW1lOm0sZmV0Y2g6YyxtZXRob2Q6aCxmZXRjaE9wdGlvbnM6eSxtaWRkbGV3YXJlOmR9KS50aGVuKFI9Pih1JiZ1KFIpLFIuZGF0YSkpLmNhdGNoKFI9Pnt0aHJvdyB1JiZ1KFIpLFJ9KX0pfWJhdGNoUmVxdWVzdHModCxuKXt2YXIgZDtjb25zdCBpPVZlKHQsbiksaD10aGlzLnJlcXVlc3RDb25maWcse2hlYWRlcnM6cn09aCxzPXZlKGgsWyJoZWFkZXJzIl0pO2kuc2lnbmFsIT09dm9pZCAwJiYocy5zaWduYWw9aS5zaWduYWwpO2NvbnN0IG89aS5kb2N1bWVudHMubWFwKCh7ZG9jdW1lbnQ6dX0pPT5KZSh1KS5xdWVyeSksYz1pLmRvY3VtZW50cy5tYXAoKHt2YXJpYWJsZXM6dX0pPT51KTtyZXR1cm4gV2Uoe3VybDp0aGlzLnVybCxxdWVyeTpvLHZhcmlhYmxlczpjLGhlYWRlcnM6RChEKHt9LHBlKFplKHIpKSkscGUoaS5yZXF1ZXN0SGVhZGVycykpLG9wZXJhdGlvbk5hbWU6dm9pZCAwLGZldGNoOihkPXRoaXMucmVxdWVzdENvbmZpZy5mZXRjaCkhPW51bGw/ZDpSZSxtZXRob2Q6dGhpcy5yZXF1ZXN0Q29uZmlnLm1ldGhvZHx8IlBPU1QiLGZldGNoT3B0aW9uczpzLG1pZGRsZXdhcmU6dGhpcy5yZXF1ZXN0Q29uZmlnLnJlcXVlc3RNaWRkbGV3YXJlfSkudGhlbih1PT4odGhpcy5yZXF1ZXN0Q29uZmlnLnJlc3BvbnNlTWlkZGxld2FyZSYmdGhpcy5yZXF1ZXN0Q29uZmlnLnJlc3BvbnNlTWlkZGxld2FyZSh1KSx1LmRhdGEpKS5jYXRjaCh1PT57dGhyb3cgdGhpcy5yZXF1ZXN0Q29uZmlnLnJlc3BvbnNlTWlkZGxld2FyZSYmdGhpcy5yZXF1ZXN0Q29uZmlnLnJlc3BvbnNlTWlkZGxld2FyZSh1KSx1fSl9c2V0SGVhZGVycyh0KXtyZXR1cm4gdGhpcy5yZXF1ZXN0Q29uZmlnLmhlYWRlcnM9dCx0aGlzfXNldEhlYWRlcih0LG4pe2NvbnN0e2hlYWRlcnM6aX09dGhpcy5yZXF1ZXN0Q29uZmlnO3JldHVybiBpP2lbdF09bjp0aGlzLnJlcXVlc3RDb25maWcuaGVhZGVycz17W3RdOm59LHRoaXN9c2V0RW5kcG9pbnQodCl7cmV0dXJuIHRoaXMudXJsPXQsdGhpc319Y29uc3QgV2U9ZT0+Sih0aGlzLG51bGwsZnVuY3Rpb24qKCl7dmFyIHUseTtjb25zdHtxdWVyeTp0LHZhcmlhYmxlczpuLGZldGNoT3B0aW9uczppfT1lLHI9UW4oQigodT1lLm1ldGhvZCkhPW51bGw/dToicG9zdCIpKSxzPUFycmF5LmlzQXJyYXkoZS5xdWVyeSksbz15aWVsZCByKGUpLGM9eWllbGQgWm4obywoeT1pLmpzb25TZXJpYWxpemVyKSE9bnVsbD95OkYpLGg9QXJyYXkuaXNBcnJheShjKT8hYy5zb21lKCh7ZGF0YTpUfSk9PiFUKTohIWMuZGF0YSxkPUFycmF5LmlzQXJyYXkoYyl8fCFjLmVycm9yc3x8QXJyYXkuaXNBcnJheShjLmVycm9ycykmJiFjLmVycm9ycy5sZW5ndGh8fGkuZXJyb3JQb2xpY3k9PT0iYWxsInx8aS5lcnJvclBvbGljeT09PSJpZ25vcmUiO2lmKG8ub2smJmQmJmgpe2NvbnN0IHY9KEFycmF5LmlzQXJyYXkoYyksYykse2Vycm9yczpUfT12LG09dmUodixbImVycm9ycyJdKSxOPWkuZXJyb3JQb2xpY3k9PT0iaWdub3JlIj9tOmM7cmV0dXJuIFVlKEQoe30scz97ZGF0YTpOfTpOKSx7aGVhZGVyczpvLmhlYWRlcnMsc3RhdHVzOm8uc3RhdHVzfSl9ZWxzZXtjb25zdCBUPXR5cGVvZiBjPT0ic3RyaW5nIj97ZXJyb3I6Y306Yzt0aHJvdyBuZXcgZGUoVWUoRCh7fSxUKSx7c3RhdHVzOm8uc3RhdHVzLGhlYWRlcnM6by5oZWFkZXJzfSkse3F1ZXJ5OnQsdmFyaWFibGVzOm59KX19KSxXbj0oZSx0LG4saSk9Pntjb25zdCByPWkhPW51bGw/aTpGO2lmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybiByLnN0cmluZ2lmeSh7cXVlcnk6ZSx2YXJpYWJsZXM6dCxvcGVyYXRpb25OYW1lOm59KTtpZih0eXBlb2YgdCE9InVuZGVmaW5lZCImJiFBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGNyZWF0ZSByZXF1ZXN0IGJvZHkgd2l0aCBnaXZlbiB2YXJpYWJsZSB0eXBlLCBhcnJheSBleHBlY3RlZCIpO2NvbnN0IHM9ZS5yZWR1Y2UoKG8sYyxoKT0+KG8ucHVzaCh7cXVlcnk6Yyx2YXJpYWJsZXM6dD90W2hdOnZvaWQgMH0pLG8pLFtdKTtyZXR1cm4gci5zdHJpbmdpZnkocyl9LFpuPShlLHQpPT5KKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtsZXQgbjtyZXR1cm4gZS5oZWFkZXJzLmZvckVhY2goKGkscik9PntyLnRvTG93ZXJDYXNlKCk9PT0iY29udGVudC10eXBlIiYmKG49aSl9KSxuJiYobi50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoImFwcGxpY2F0aW9uL2pzb24iKXx8bi50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoImFwcGxpY2F0aW9uL2dyYXBocWwranNvbiIpfHxuLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aCgiYXBwbGljYXRpb24vZ3JhcGhxbC1yZXNwb25zZStqc29uIikpP3QucGFyc2UoeWllbGQgZS50ZXh0KCkpOmUudGV4dCgpfSksWmU9ZT0+dHlwZW9mIGU9PSJmdW5jdGlvbiI/ZSgpOmU7dmFyIEtlPXtleHBvcnRzOnt9fTsoZnVuY3Rpb24oZSx0KXt0PWUuZXhwb3J0cz1uLHQuZ2V0U2VyaWFsaXplPWk7ZnVuY3Rpb24gbihyLHMsbyxjKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkocixpKHMsYyksbyl9ZnVuY3Rpb24gaShyLHMpe3ZhciBvPVtdLGM9W107cmV0dXJuIHM9PW51bGwmJihzPWZ1bmN0aW9uKGgsZCl7cmV0dXJuIG9bMF09PT1kPyJbQ2lyY3VsYXIgfl0iOiJbQ2lyY3VsYXIgfi4iK2Muc2xpY2UoMCxvLmluZGV4T2YoZCkpLmpvaW4oIi4iKSsiXSJ9KSxmdW5jdGlvbihoLGQpe2lmKG8ubGVuZ3RoPjApe3ZhciB1PW8uaW5kZXhPZih0aGlzKTt+dT9vLnNwbGljZSh1KzEpOm8ucHVzaCh0aGlzKSx+dT9jLnNwbGljZSh1LDEvMCxoKTpjLnB1c2goaCksfm8uaW5kZXhPZihkKSYmKGQ9cy5jYWxsKHRoaXMsaCxkKSl9ZWxzZSBvLnB1c2goZCk7cmV0dXJuIHI9PW51bGw/ZDpyLmNhbGwodGhpcyxoLGQpfX19KShLZSxLZS5leHBvcnRzKTt2YXIgS249S2UuZXhwb3J0cyxtZT1MdChLbik7Y29uc3QgRnQ9MWUzKjE1O3ZhciBMZT1mdW5jdGlvbigpe3JldHVybiBMZT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIG4saT0xLHI9YXJndW1lbnRzLmxlbmd0aDtpPHI7aSsrKXtuPWFyZ3VtZW50c1tpXTtmb3IodmFyIHMgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixzKSYmKHRbc109bltzXSl9cmV0dXJuIHR9LExlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07dHlwZW9mIFN1cHByZXNzZWRFcnJvcj09ImZ1bmN0aW9uIiYmU3VwcHJlc3NlZEVycm9yO3ZhciBQZT1uZXcgTWFwLGV0PW5ldyBNYXAsTXQ9ITAsRmU9ITE7ZnVuY3Rpb24gQnQoZSl7cmV0dXJuIGUucmVwbGFjZSgvW1xzLF0rL2csIiAiKS50cmltKCl9ZnVuY3Rpb24gZXIoZSl7cmV0dXJuIEJ0KGUuc291cmNlLmJvZHkuc3Vic3RyaW5nKGUuc3RhcnQsZS5lbmQpKX1mdW5jdGlvbiB0cihlKXt2YXIgdD1uZXcgU2V0LG49W107cmV0dXJuIGUuZGVmaW5pdGlvbnMuZm9yRWFjaChmdW5jdGlvbihpKXtpZihpLmtpbmQ9PT0iRnJhZ21lbnREZWZpbml0aW9uIil7dmFyIHI9aS5uYW1lLnZhbHVlLHM9ZXIoaS5sb2MpLG89ZXQuZ2V0KHIpO28mJiFvLmhhcyhzKT9NdCYmY29uc29sZS53YXJuKCJXYXJuaW5nOiBmcmFnbWVudCB3aXRoIG5hbWUgIityK2AgYWxyZWFkeSBleGlzdHMuCmdyYXBocWwtdGFnIGVuZm9yY2VzIGFsbCBmcmFnbWVudCBuYW1lcyBhY3Jvc3MgeW91ciBhcHBsaWNhdGlvbiB0byBiZSB1bmlxdWU7IHJlYWQgbW9yZSBhYm91dAp0aGlzIGluIHRoZSBkb2NzOiBodHRwOi8vZGV2LmFwb2xsb2RhdGEuY29tL2NvcmUvZnJhZ21lbnRzLmh0bWwjdW5pcXVlLW5hbWVzYCk6b3x8ZXQuc2V0KHIsbz1uZXcgU2V0KSxvLmFkZChzKSx0LmhhcyhzKXx8KHQuYWRkKHMpLG4ucHVzaChpKSl9ZWxzZSBuLnB1c2goaSl9KSxMZShMZSh7fSxlKSx7ZGVmaW5pdGlvbnM6bn0pfWZ1bmN0aW9uIG5yKGUpe3ZhciB0PW5ldyBTZXQoZS5kZWZpbml0aW9ucyk7dC5mb3JFYWNoKGZ1bmN0aW9uKGkpe2kubG9jJiZkZWxldGUgaS5sb2MsT2JqZWN0LmtleXMoaSkuZm9yRWFjaChmdW5jdGlvbihyKXt2YXIgcz1pW3JdO3MmJnR5cGVvZiBzPT0ib2JqZWN0IiYmdC5hZGQocyl9KX0pO3ZhciBuPWUubG9jO3JldHVybiBuJiYoZGVsZXRlIG4uc3RhcnRUb2tlbixkZWxldGUgbi5lbmRUb2tlbiksZX1mdW5jdGlvbiBycihlKXt2YXIgdD1CdChlKTtpZighUGUuaGFzKHQpKXt2YXIgbj1EdChlLHtleHBlcmltZW50YWxGcmFnbWVudFZhcmlhYmxlczpGZSxhbGxvd0xlZ2FjeUZyYWdtZW50VmFyaWFibGVzOkZlfSk7aWYoIW58fG4ua2luZCE9PSJEb2N1bWVudCIpdGhyb3cgbmV3IEVycm9yKCJOb3QgYSB2YWxpZCBHcmFwaFFMIGRvY3VtZW50LiIpO1BlLnNldCh0LG5yKHRyKG4pKSl9cmV0dXJuIFBlLmdldCh0KX1mdW5jdGlvbiBRKGUpe2Zvcih2YXIgdD1bXSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W24tMV09YXJndW1lbnRzW25dO3R5cGVvZiBlPT0ic3RyaW5nIiYmKGU9W2VdKTt2YXIgaT1lWzBdO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24ocixzKXtyJiZyLmtpbmQ9PT0iRG9jdW1lbnQiP2krPXIubG9jLnNvdXJjZS5ib2R5OmkrPXIsaSs9ZVtzKzFdfSkscnIoaSl9ZnVuY3Rpb24gaXIoKXtQZS5jbGVhcigpLGV0LmNsZWFyKCl9ZnVuY3Rpb24gc3IoKXtNdD0hMX1mdW5jdGlvbiBvcigpe0ZlPSEwfWZ1bmN0aW9uIGFyKCl7RmU9ITF9dmFyIE5lPXtncWw6USxyZXNldENhY2hlczppcixkaXNhYmxlRnJhZ21lbnRXYXJuaW5nczpzcixlbmFibGVFeHBlcmltZW50YWxGcmFnbWVudFZhcmlhYmxlczpvcixkaXNhYmxlRXhwZXJpbWVudGFsRnJhZ21lbnRWYXJpYWJsZXM6YXJ9OyhmdW5jdGlvbihlKXtlLmdxbD1OZS5ncWwsZS5yZXNldENhY2hlcz1OZS5yZXNldENhY2hlcyxlLmRpc2FibGVGcmFnbWVudFdhcm5pbmdzPU5lLmRpc2FibGVGcmFnbWVudFdhcm5pbmdzLGUuZW5hYmxlRXhwZXJpbWVudGFsRnJhZ21lbnRWYXJpYWJsZXM9TmUuZW5hYmxlRXhwZXJpbWVudGFsRnJhZ21lbnRWYXJpYWJsZXMsZS5kaXNhYmxlRXhwZXJpbWVudGFsRnJhZ21lbnRWYXJpYWJsZXM9TmUuZGlzYWJsZUV4cGVyaW1lbnRhbEZyYWdtZW50VmFyaWFibGVzfSkoUXx8KFE9e30pKSxRLmRlZmF1bHQ9UTtjb25zdCAkdD1RYAoJZnJhZ21lbnQgTWF0Y2hQYXJ0cyBvbiBNYXRjaENvbmZpZyB7CgkJcmVnZXhWYWx1ZQoJCW1hdGNoVmFsdWUKCX0KYCxjcj1RYAoJbXV0YXRpb24gUHVzaFBheWxvYWQoCgkJJHNlc3Npb25fc2VjdXJlX2lkOiBTdHJpbmchCgkJJHBheWxvYWRfaWQ6IElEIQoJCSRldmVudHM6IFJlcGxheUV2ZW50c0lucHV0IQoJCSRtZXNzYWdlczogU3RyaW5nIQoJCSRyZXNvdXJjZXM6IFN0cmluZyEKCQkkd2ViX3NvY2tldF9ldmVudHM6IFN0cmluZyEKCQkkZXJyb3JzOiBbRXJyb3JPYmplY3RJbnB1dF0hCgkJJGlzX2JlYWNvbjogQm9vbGVhbgoJCSRoYXNfc2Vzc2lvbl91bmxvYWRlZDogQm9vbGVhbgoJCSRoaWdobGlnaHRfbG9nczogU3RyaW5nCgkpIHsKCQlwdXNoUGF5bG9hZCgKCQkJc2Vzc2lvbl9zZWN1cmVfaWQ6ICRzZXNzaW9uX3NlY3VyZV9pZAoJCQlwYXlsb2FkX2lkOiAkcGF5bG9hZF9pZAoJCQlldmVudHM6ICRldmVudHMKCQkJbWVzc2FnZXM6ICRtZXNzYWdlcwoJCQlyZXNvdXJjZXM6ICRyZXNvdXJjZXMKCQkJd2ViX3NvY2tldF9ldmVudHM6ICR3ZWJfc29ja2V0X2V2ZW50cwoJCQllcnJvcnM6ICRlcnJvcnMKCQkJaXNfYmVhY29uOiAkaXNfYmVhY29uCgkJCWhhc19zZXNzaW9uX3VubG9hZGVkOiAkaGFzX3Nlc3Npb25fdW5sb2FkZWQKCQkJaGlnaGxpZ2h0X2xvZ3M6ICRoaWdobGlnaHRfbG9ncwoJCSkKCX0KYCx1cj1RYAoJbXV0YXRpb24gUHVzaFNlc3Npb25FdmVudHMoCgkJJHNlc3Npb25fc2VjdXJlX2lkOiBTdHJpbmchCgkJJHBheWxvYWRfaWQ6IEludDY0SUQhCgkJJGRhdGE6IFN0cmluZyEKCSkgewoJCXB1c2hTZXNzaW9uRXZlbnRzKAoJCQlzZXNzaW9uX3NlY3VyZV9pZDogJHNlc3Npb25fc2VjdXJlX2lkCgkJCXBheWxvYWRfaWQ6ICRwYXlsb2FkX2lkCgkJCWRhdGE6ICRkYXRhCgkJKQoJfQpgLGxyPVFgCgltdXRhdGlvbiBpZGVudGlmeVNlc3Npb24oCgkJJHNlc3Npb25fc2VjdXJlX2lkOiBTdHJpbmchCgkJJHVzZXJfaWRlbnRpZmllcjogU3RyaW5nIQoJCSR1c2VyX29iamVjdDogQW55CgkpIHsKCQlpZGVudGlmeVNlc3Npb24oCgkJCXNlc3Npb25fc2VjdXJlX2lkOiAkc2Vzc2lvbl9zZWN1cmVfaWQKCQkJdXNlcl9pZGVudGlmaWVyOiAkdXNlcl9pZGVudGlmaWVyCgkJCXVzZXJfb2JqZWN0OiAkdXNlcl9vYmplY3QKCQkpCgl9CmAsaHI9UWAKCW11dGF0aW9uIGFkZFNlc3Npb25Qcm9wZXJ0aWVzKAoJCSRzZXNzaW9uX3NlY3VyZV9pZDogU3RyaW5nIQoJCSRwcm9wZXJ0aWVzX29iamVjdDogQW55CgkpIHsKCQlhZGRTZXNzaW9uUHJvcGVydGllcygKCQkJc2Vzc2lvbl9zZWN1cmVfaWQ6ICRzZXNzaW9uX3NlY3VyZV9pZAoJCQlwcm9wZXJ0aWVzX29iamVjdDogJHByb3BlcnRpZXNfb2JqZWN0CgkJKQoJfQpgLGZyPVFgCgltdXRhdGlvbiBwdXNoTWV0cmljcygkbWV0cmljczogW01ldHJpY0lucHV0XSEpIHsKCQlwdXNoTWV0cmljcyhtZXRyaWNzOiAkbWV0cmljcykKCX0KYCxkcj1RYAoJbXV0YXRpb24gYWRkU2Vzc2lvbkZlZWRiYWNrKAoJCSRzZXNzaW9uX3NlY3VyZV9pZDogU3RyaW5nIQoJCSR1c2VyX25hbWU6IFN0cmluZwoJCSR1c2VyX2VtYWlsOiBTdHJpbmcKCQkkdmVyYmF0aW06IFN0cmluZyEKCQkkdGltZXN0YW1wOiBUaW1lc3RhbXAhCgkpIHsKCQlhZGRTZXNzaW9uRmVlZGJhY2soCgkJCXNlc3Npb25fc2VjdXJlX2lkOiAkc2Vzc2lvbl9zZWN1cmVfaWQKCQkJdXNlcl9uYW1lOiAkdXNlcl9uYW1lCgkJCXVzZXJfZW1haWw6ICR1c2VyX2VtYWlsCgkJCXZlcmJhdGltOiAkdmVyYmF0aW0KCQkJdGltZXN0YW1wOiAkdGltZXN0YW1wCgkJKQoJfQpgLHByPVFgCgltdXRhdGlvbiBpbml0aWFsaXplU2Vzc2lvbigKCQkkc2Vzc2lvbl9zZWN1cmVfaWQ6IFN0cmluZyEKCQkkc2Vzc2lvbl9rZXk6IFN0cmluZwoJCSRvcmdhbml6YXRpb25fdmVyYm9zZV9pZDogU3RyaW5nIQoJCSRlbmFibGVfc3RyaWN0X3ByaXZhY3k6IEJvb2xlYW4hCgkJJHByaXZhY3lfc2V0dGluZzogU3RyaW5nIQoJCSRlbmFibGVfcmVjb3JkaW5nX25ldHdvcmtfY29udGVudHM6IEJvb2xlYW4hCgkJJGNsaWVudFZlcnNpb246IFN0cmluZyEKCQkkZmlyc3Rsb2FkVmVyc2lvbjogU3RyaW5nIQoJCSRjbGllbnRDb25maWc6IFN0cmluZyEKCQkkZW52aXJvbm1lbnQ6IFN0cmluZyEKCQkkaWQ6IFN0cmluZyEKCQkkYXBwVmVyc2lvbjogU3RyaW5nCgkJJHNlcnZpY2VOYW1lOiBTdHJpbmchCgkJJGNsaWVudF9pZDogU3RyaW5nIQoJCSRuZXR3b3JrX3JlY29yZGluZ19kb21haW5zOiBbU3RyaW5nIV0KCQkkZGlzYWJsZV9zZXNzaW9uX3JlY29yZGluZzogQm9vbGVhbgoJKSB7CgkJaW5pdGlhbGl6ZVNlc3Npb24oCgkJCXNlc3Npb25fc2VjdXJlX2lkOiAkc2Vzc2lvbl9zZWN1cmVfaWQKCQkJc2Vzc2lvbl9rZXk6ICRzZXNzaW9uX2tleQoJCQlvcmdhbml6YXRpb25fdmVyYm9zZV9pZDogJG9yZ2FuaXphdGlvbl92ZXJib3NlX2lkCgkJCWVuYWJsZV9zdHJpY3RfcHJpdmFjeTogJGVuYWJsZV9zdHJpY3RfcHJpdmFjeQoJCQllbmFibGVfcmVjb3JkaW5nX25ldHdvcmtfY29udGVudHM6ICRlbmFibGVfcmVjb3JkaW5nX25ldHdvcmtfY29udGVudHMKCQkJY2xpZW50VmVyc2lvbjogJGNsaWVudFZlcnNpb24KCQkJZmlyc3Rsb2FkVmVyc2lvbjogJGZpcnN0bG9hZFZlcnNpb24KCQkJY2xpZW50Q29uZmlnOiAkY2xpZW50Q29uZmlnCgkJCWVudmlyb25tZW50OiAkZW52aXJvbm1lbnQKCQkJYXBwVmVyc2lvbjogJGFwcFZlcnNpb24KCQkJc2VydmljZU5hbWU6ICRzZXJ2aWNlTmFtZQoJCQlmaW5nZXJwcmludDogJGlkCgkJCWNsaWVudF9pZDogJGNsaWVudF9pZAoJCQluZXR3b3JrX3JlY29yZGluZ19kb21haW5zOiAkbmV0d29ya19yZWNvcmRpbmdfZG9tYWlucwoJCQlkaXNhYmxlX3Nlc3Npb25fcmVjb3JkaW5nOiAkZGlzYWJsZV9zZXNzaW9uX3JlY29yZGluZwoJCQlwcml2YWN5X3NldHRpbmc6ICRwcml2YWN5X3NldHRpbmcKCQkpIHsKCQkJc2VjdXJlX2lkCgkJCXByb2plY3RfaWQKCQkJc2FtcGxpbmcgewoJCQkJc3BhbnMgewoJCQkJCW5hbWUgewoJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJfQoJCQkJCWF0dHJpYnV0ZXMgewoJCQkJCQlrZXkgewoJCQkJCQkJLi4uTWF0Y2hQYXJ0cwoJCQkJCQl9CgkJCQkJCWF0dHJpYnV0ZSB7CgkJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJCX0KCQkJCQl9CgkJCQkJZXZlbnRzIHsKCQkJCQkJbmFtZSB7CgkJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJCX0KCQkJCQkJYXR0cmlidXRlcyB7CgkJCQkJCQlrZXkgewoJCQkJCQkJCS4uLk1hdGNoUGFydHMKCQkJCQkJCX0KCQkJCQkJCWF0dHJpYnV0ZSB7CgkJCQkJCQkJLi4uTWF0Y2hQYXJ0cwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJCXNhbXBsaW5nUmF0aW8KCQkJCX0KCQkJCWxvZ3MgewoJCQkJCW1lc3NhZ2UgewoJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJfQoJCQkJCXNldmVyaXR5VGV4dCB7CgkJCQkJCS4uLk1hdGNoUGFydHMKCQkJCQl9CgkJCQkJYXR0cmlidXRlcyB7CgkJCQkJCWtleSB7CgkJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJCX0KCQkJCQkJYXR0cmlidXRlIHsKCQkJCQkJCS4uLk1hdGNoUGFydHMKCQkJCQkJfQoJCQkJCX0KCQkJCQlzYW1wbGluZ1JhdGlvCgkJCQl9CgkJCX0KCQl9Cgl9CgkkeyR0fQpgLG1yPVFgCglxdWVyeSBJZ25vcmUoJGlkOiBJRCEpIHsKCQlpZ25vcmUoaWQ6ICRpZCkKCX0KYCx5cj1RYAoJcXVlcnkgR2V0U2FtcGxpbmdDb25maWcoJG9yZ2FuaXphdGlvbl92ZXJib3NlX2lkOiBTdHJpbmchKSB7CgkJc2FtcGxpbmcob3JnYW5pemF0aW9uX3ZlcmJvc2VfaWQ6ICRvcmdhbml6YXRpb25fdmVyYm9zZV9pZCkgewoJCQlzcGFucyB7CgkJCQluYW1lIHsKCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQl9CgkJCQlhdHRyaWJ1dGVzIHsKCQkJCQlrZXkgewoJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJfQoJCQkJCWF0dHJpYnV0ZSB7CgkJCQkJCS4uLk1hdGNoUGFydHMKCQkJCQl9CgkJCQl9CgkJCQlldmVudHMgewoJCQkJCW5hbWUgewoJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJfQoJCQkJCWF0dHJpYnV0ZXMgewoJCQkJCQlrZXkgewoJCQkJCQkJLi4uTWF0Y2hQYXJ0cwoJCQkJCQl9CgkJCQkJCWF0dHJpYnV0ZSB7CgkJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCQlzYW1wbGluZ1JhdGlvCgkJCX0KCQkJbG9ncyB7CgkJCQltZXNzYWdlIHsKCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQl9CgkJCQlzZXZlcml0eVRleHQgewoJCQkJCS4uLk1hdGNoUGFydHMKCQkJCX0KCQkJCWF0dHJpYnV0ZXMgewoJCQkJCWtleSB7CgkJCQkJCS4uLk1hdGNoUGFydHMKCQkJCQl9CgkJCQkJYXR0cmlidXRlIHsKCQkJCQkJLi4uTWF0Y2hQYXJ0cwoJCQkJCX0KCQkJCX0KCQkJCXNhbXBsaW5nUmF0aW8KCQkJfQoJCX0KCX0KCSR7JHR9CmAsZ3I9KGUsdCxuLGkpPT5lKCk7ZnVuY3Rpb24gdnIoZSx0PWdyKXtyZXR1cm57UHVzaFBheWxvYWQobixpKXtyZXR1cm4gdChyPT5lLnJlcXVlc3QoY3IsbixEKEQoe30saSkscikpLCJQdXNoUGF5bG9hZCIsIm11dGF0aW9uIixuKX0sUHVzaFNlc3Npb25FdmVudHMobixpKXtyZXR1cm4gdChyPT5lLnJlcXVlc3QodXIsbixEKEQoe30saSkscikpLCJQdXNoU2Vzc2lvbkV2ZW50cyIsIm11dGF0aW9uIixuKX0saWRlbnRpZnlTZXNzaW9uKG4saSl7cmV0dXJuIHQocj0+ZS5yZXF1ZXN0KGxyLG4sRChEKHt9LGkpLHIpKSwiaWRlbnRpZnlTZXNzaW9uIiwibXV0YXRpb24iLG4pfSxhZGRTZXNzaW9uUHJvcGVydGllcyhuLGkpe3JldHVybiB0KHI9PmUucmVxdWVzdChocixuLEQoRCh7fSxpKSxyKSksImFkZFNlc3Npb25Qcm9wZXJ0aWVzIiwibXV0YXRpb24iLG4pfSxwdXNoTWV0cmljcyhuLGkpe3JldHVybiB0KHI9PmUucmVxdWVzdChmcixuLEQoRCh7fSxpKSxyKSksInB1c2hNZXRyaWNzIiwibXV0YXRpb24iLG4pfSxhZGRTZXNzaW9uRmVlZGJhY2sobixpKXtyZXR1cm4gdChyPT5lLnJlcXVlc3QoZHIsbixEKEQoe30saSkscikpLCJhZGRTZXNzaW9uRmVlZGJhY2siLCJtdXRhdGlvbiIsbil9LGluaXRpYWxpemVTZXNzaW9uKG4saSl7cmV0dXJuIHQocj0+ZS5yZXF1ZXN0KHByLG4sRChEKHt9LGkpLHIpKSwiaW5pdGlhbGl6ZVNlc3Npb24iLCJtdXRhdGlvbiIsbil9LElnbm9yZShuLGkpe3JldHVybiB0KHI9PmUucmVxdWVzdChtcixuLEQoRCh7fSxpKSxyKSksIklnbm9yZSIsInF1ZXJ5IixuKX0sR2V0U2FtcGxpbmdDb25maWcobixpKXtyZXR1cm4gdChyPT5lLnJlcXVlc3QoeXIsbixEKEQoe30saSkscikpLCJHZXRTYW1wbGluZ0NvbmZpZyIsInF1ZXJ5IixuKX19fXZhciB0ZT1VaW50OEFycmF5LG5lPVVpbnQxNkFycmF5LHR0PUludDMyQXJyYXksbnQ9bmV3IHRlKFswLDAsMCwwLDAsMCwwLDAsMSwxLDEsMSwyLDIsMiwyLDMsMywzLDMsNCw0LDQsNCw1LDUsNSw1LDAsMCwwLDBdKSxydD1uZXcgdGUoWzAsMCwwLDAsMSwxLDIsMiwzLDMsNCw0LDUsNSw2LDYsNyw3LDgsOCw5LDksMTAsMTAsMTEsMTEsMTIsMTIsMTMsMTMsMCwwXSksVXQ9bmV3IHRlKFsxNiwxNywxOCwwLDgsNyw5LDYsMTAsNSwxMSw0LDEyLDMsMTMsMiwxNCwxLDE1XSksVnQ9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49bmV3IG5lKDMxKSxpPTA7aTwzMTsrK2kpbltpXT10Kz0xPDxlW2ktMV07Zm9yKHZhciByPW5ldyB0dChuWzMwXSksaT0xO2k8MzA7KytpKWZvcih2YXIgcz1uW2ldO3M8bltpKzFdOysrcylyW3NdPXMtbltpXTw8NXxpO3JldHVybntiOm4scn19LHF0PVZ0KG50LDIpLEVyPXF0LmIsaXQ9cXQucjtFclsyOF09MjU4LGl0WzI1OF09Mjg7Zm9yKHZhciBfcj1WdChydCwwKSxqdD1fci5yLHN0PW5ldyBuZSgzMjc2OCksTT0wO008MzI3Njg7KytNKXt2YXIgYWU9KE0mNDM2OTApPj4xfChNJjIxODQ1KTw8MTthZT0oYWUmNTI0MjgpPj4yfChhZSYxMzEwNyk8PDIsYWU9KGFlJjYxNjgwKT4+NHwoYWUmMzg1NSk8PDQsc3RbTV09KChhZSY2NTI4MCk+Pjh8KGFlJjI1NSk8PDgpPj4xfWZvcih2YXIgeGU9ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgaT1lLmxlbmd0aCxyPTAscz1uZXcgbmUodCk7cjxpOysrcillW3JdJiYrK3NbZVtyXS0xXTt2YXIgbz1uZXcgbmUodCk7Zm9yKHI9MTtyPHQ7KytyKW9bcl09b1tyLTFdK3Nbci0xXTw8MTt2YXIgYztpZihuKXtjPW5ldyBuZSgxPDx0KTt2YXIgaD0xNS10O2ZvcihyPTA7cjxpOysrcilpZihlW3JdKWZvcih2YXIgZD1yPDw0fGVbcl0sdT10LWVbcl0seT1vW2Vbcl0tMV0rKzw8dSx2PXl8KDE8PHUpLTE7eTw9djsrK3kpY1tzdFt5XT4+aF09ZH1lbHNlIGZvcihjPW5ldyBuZShpKSxyPTA7cjxpOysrcillW3JdJiYoY1tyXT1zdFtvW2Vbcl0tMV0rK10+PjE1LWVbcl0pO3JldHVybiBjfSx1ZT1uZXcgdGUoMjg4KSxNPTA7TTwxNDQ7KytNKXVlW01dPTg7Zm9yKHZhciBNPTE0NDtNPDI1NjsrK00pdWVbTV09OTtmb3IodmFyIE09MjU2O008MjgwOysrTSl1ZVtNXT03O2Zvcih2YXIgTT0yODA7TTwyODg7KytNKXVlW01dPTg7Zm9yKHZhciBNZT1uZXcgdGUoMzIpLE09MDtNPDMyOysrTSlNZVtNXT01O3ZhciBicj14ZSh1ZSw5LDApLFRyPXhlKE1lLDUsMCksR3Q9ZnVuY3Rpb24oZSl7cmV0dXJuKGUrNykvOHwwfSx6dD1mdW5jdGlvbihlLHQsbil7cmV0dXJuKG49PW51bGx8fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCksbmV3IHRlKGUuc3ViYXJyYXkodCxuKSl9LG9lPWZ1bmN0aW9uKGUsdCxuKXtuPDw9dCY3O3ZhciBpPXQvOHwwO2VbaV18PW4sZVtpKzFdfD1uPj44fSxBZT1mdW5jdGlvbihlLHQsbil7bjw8PXQmNzt2YXIgaT10Lzh8MDtlW2ldfD1uLGVbaSsxXXw9bj4+OCxlW2krMl18PW4+PjE2fSxvdD1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1bXSxpPTA7aTxlLmxlbmd0aDsrK2kpZVtpXSYmbi5wdXNoKHtzOmksZjplW2ldfSk7dmFyIHI9bi5sZW5ndGgscz1uLnNsaWNlKCk7aWYoIXIpcmV0dXJue3Q6UXQsbDowfTtpZihyPT0xKXt2YXIgbz1uZXcgdGUoblswXS5zKzEpO3JldHVybiBvW25bMF0uc109MSx7dDpvLGw6MX19bi5zb3J0KGZ1bmN0aW9uKHcsayl7cmV0dXJuIHcuZi1rLmZ9KSxuLnB1c2goe3M6LTEsZjoyNTAwMX0pO3ZhciBjPW5bMF0saD1uWzFdLGQ9MCx1PTEseT0yO2ZvcihuWzBdPXtzOi0xLGY6Yy5mK2guZixsOmMscjpofTt1IT1yLTE7KWM9bltuW2RdLmY8blt5XS5mP2QrKzp5KytdLGg9bltkIT11JiZuW2RdLmY8blt5XS5mP2QrKzp5KytdLG5bdSsrXT17czotMSxmOmMuZitoLmYsbDpjLHI6aH07Zm9yKHZhciB2PXNbMF0ucyxpPTE7aTxyOysraSlzW2ldLnM+diYmKHY9c1tpXS5zKTt2YXIgVD1uZXcgbmUodisxKSxtPWF0KG5bdS0xXSxULDApO2lmKG0+dCl7dmFyIGk9MCxOPTAsUj1tLXQsTD0xPDxSO2ZvcihzLnNvcnQoZnVuY3Rpb24oayxQKXtyZXR1cm4gVFtQLnNdLVRbay5zXXx8ay5mLVAuZn0pO2k8cjsrK2kpe3ZhciBxPXNbaV0ucztpZihUW3FdPnQpTis9TC0oMTw8bS1UW3FdKSxUW3FdPXQ7ZWxzZSBicmVha31mb3IoTj4+PVI7Tj4wOyl7dmFyIGc9c1tpXS5zO1RbZ108dD9OLT0xPDx0LVRbZ10rKy0xOisraX1mb3IoO2k+PTAmJk47LS1pKXt2YXIgRT1zW2ldLnM7VFtFXT09dCYmKC0tVFtFXSwrK04pfW09dH1yZXR1cm57dDpuZXcgdGUoVCksbDptfX0sYXQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlLnM9PS0xP01hdGgubWF4KGF0KGUubCx0LG4rMSksYXQoZS5yLHQsbisxKSk6dFtlLnNdPW59LEh0PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmxlbmd0aDt0JiYhZVstLXRdOyk7Zm9yKHZhciBuPW5ldyBuZSgrK3QpLGk9MCxyPWVbMF0scz0xLG89ZnVuY3Rpb24oaCl7bltpKytdPWh9LGM9MTtjPD10OysrYylpZihlW2NdPT1yJiZjIT10KSsrcztlbHNle2lmKCFyJiZzPjIpe2Zvcig7cz4xMzg7cy09MTM4KW8oMzI3NTQpO3M+MiYmKG8ocz4xMD9zLTExPDw1fDI4NjkwOnMtMzw8NXwxMjMwNSkscz0wKX1lbHNlIGlmKHM+Myl7Zm9yKG8ociksLS1zO3M+NjtzLT02KW8oODMwNCk7cz4yJiYobyhzLTM8PDV8ODIwOCkscz0wKX1mb3IoO3MtLTspbyhyKTtzPTEscj1lW2NdfXJldHVybntjOm4uc3ViYXJyYXkoMCxpKSxuOnR9fSxJZT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0wLGk9MDtpPHQubGVuZ3RoOysraSluKz1lW2ldKnRbaV07cmV0dXJuIG59LFl0PWZ1bmN0aW9uKGUsdCxuKXt2YXIgaT1uLmxlbmd0aCxyPUd0KHQrMik7ZVtyXT1pJjI1NSxlW3IrMV09aT4+OCxlW3IrMl09ZVtyXV4yNTUsZVtyKzNdPWVbcisxXV4yNTU7Zm9yKHZhciBzPTA7czxpOysrcyllW3Ircys0XT1uW3NdO3JldHVybihyKzQraSkqOH0sSnQ9ZnVuY3Rpb24oZSx0LG4saSxyLHMsbyxjLGgsZCx1KXtvZSh0LHUrKyxuKSwrK3JbMjU2XTtmb3IodmFyIHk9b3QociwxNSksdj15LnQsVD15LmwsbT1vdChzLDE1KSxOPW0udCxSPW0ubCxMPUh0KHYpLHE9TC5jLGc9TC5uLEU9SHQoTiksdz1FLmMsaz1FLm4sUD1uZXcgbmUoMTkpLEk9MDtJPHEubGVuZ3RoOysrSSkrK1BbcVtJXSYzMV07Zm9yKHZhciBJPTA7STx3Lmxlbmd0aDsrK0kpKytQW3dbSV0mMzFdO2Zvcih2YXIgeD1vdChQLDcpLHo9eC50LFY9eC5sLEg9MTk7SD40JiYheltVdFtILTFdXTstLUgpO3ZhciBYPWQrNTw8MyxhPUllKHIsdWUpK0llKHMsTWUpK28sZj1JZShyLHYpK0llKHMsTikrbysxNCszKkgrSWUoUCx6KSsyKlBbMTZdKzMqUFsxN10rNypQWzE4XTtpZihoPj0wJiZYPD1hJiZYPD1mKXJldHVybiBZdCh0LHUsZS5zdWJhcnJheShoLGgrZCkpO3ZhciBfLFMsQyxBO2lmKG9lKHQsdSwxKyhmPGEpKSx1Kz0yLGY8YSl7Xz14ZSh2LFQsMCksUz12LEM9eGUoTixSLDApLEE9Tjt2YXIgSz14ZSh6LFYsMCk7b2UodCx1LGctMjU3KSxvZSh0LHUrNSxrLTEpLG9lKHQsdSsxMCxILTQpLHUrPTE0O2Zvcih2YXIgST0wO0k8SDsrK0kpb2UodCx1KzMqSSx6W1V0W0ldXSk7dSs9MypIO2Zvcih2YXIgaj1bcSx3XSxXPTA7VzwyOysrVylmb3IodmFyIHllPWpbV10sST0wO0k8eWUubGVuZ3RoOysrSSl7dmFyIGllPXllW0ldJjMxO29lKHQsdSxLW2llXSksdSs9eltpZV0saWU+MTUmJihvZSh0LHUseWVbSV0+PjUmMTI3KSx1Kz15ZVtJXT4+MTIpfX1lbHNlIF89YnIsUz11ZSxDPVRyLEE9TWU7Zm9yKHZhciBJPTA7STxjOysrSSl7dmFyIFk9aVtJXTtpZihZPjI1NSl7dmFyIGllPVk+PjE4JjMxO0FlKHQsdSxfW2llKzI1N10pLHUrPVNbaWUrMjU3XSxpZT43JiYob2UodCx1LFk+PjIzJjMxKSx1Kz1udFtpZV0pO3ZhciBnZT1ZJjMxO0FlKHQsdSxDW2dlXSksdSs9QVtnZV0sZ2U+MyYmKEFlKHQsdSxZPj41JjgxOTEpLHUrPXJ0W2dlXSl9ZWxzZSBBZSh0LHUsX1tZXSksdSs9U1tZXX1yZXR1cm4gQWUodCx1LF9bMjU2XSksdStTWzI1Nl19LE5yPW5ldyB0dChbNjU1NDAsMTMxMDgwLDEzMTA4OCwxMzExMDQsMjYyMTc2LDEwNDg3MDQsMTA0ODgzMiwyMTE0NTYwLDIxMTc2MzJdKSxRdD1uZXcgdGUoMCkseHI9ZnVuY3Rpb24oZSx0LG4saSxyLHMpe3ZhciBvPXMuenx8ZS5sZW5ndGgsYz1uZXcgdGUoaStvKzUqKDErTWF0aC5jZWlsKG8vN2UzKSkrciksaD1jLnN1YmFycmF5KGksYy5sZW5ndGgtciksZD1zLmwsdT0ocy5yfHwwKSY3O2lmKHQpe3UmJihoWzBdPXMucj4+Myk7Zm9yKHZhciB5PU5yW3QtMV0sdj15Pj4xMyxUPXkmODE5MSxtPSgxPDxuKS0xLE49cy5wfHxuZXcgbmUoMzI3NjgpLFI9cy5ofHxuZXcgbmUobSsxKSxMPU1hdGguY2VpbChuLzMpLHE9MipMLGc9ZnVuY3Rpb24ocHQpe3JldHVybihlW3B0XV5lW3B0KzFdPDxMXmVbcHQrMl08PHEpJm19LEU9bmV3IHR0KDI1ZTMpLHc9bmV3IG5lKDI4OCksaz1uZXcgbmUoMzIpLFA9MCxJPTAseD1zLml8fDAsej0wLFY9cy53fHwwLEg9MDt4KzI8bzsrK3gpe3ZhciBYPWcoeCksYT14JjMyNzY3LGY9UltYXTtpZihOW2FdPWYsUltYXT1hLFY8PXgpe3ZhciBfPW8teDtpZigoUD43ZTN8fHo+MjQ1NzYpJiYoXz40MjN8fCFkKSl7dT1KdChlLGgsMCxFLHcsayxJLHosSCx4LUgsdSksej1QPUk9MCxIPXg7Zm9yKHZhciBTPTA7UzwyODY7KytTKXdbU109MDtmb3IodmFyIFM9MDtTPDMwOysrUylrW1NdPTB9dmFyIEM9MixBPTAsSz1ULGo9YS1mJjMyNzY3O2lmKF8+MiYmWD09Zyh4LWopKWZvcih2YXIgVz1NYXRoLm1pbih2LF8pLTEseWU9TWF0aC5taW4oMzI3NjcseCksaWU9TWF0aC5taW4oMjU4LF8pO2o8PXllJiYtLUsmJmEhPWY7KXtpZihlW3grQ109PWVbeCtDLWpdKXtmb3IodmFyIFk9MDtZPGllJiZlW3grWV09PWVbeCtZLWpdOysrWSk7aWYoWT5DKXtpZihDPVksQT1qLFk+VylicmVhaztmb3IodmFyIGdlPU1hdGgubWluKGosWS0yKSx0bj0wLFM9MDtTPGdlOysrUyl7dmFyIGZ0PXgtaitTJjMyNzY3LEpyPU5bZnRdLG5uPWZ0LUpyJjMyNzY3O25uPnRuJiYodG49bm4sZj1mdCl9fX1hPWYsZj1OW2FdLGorPWEtZiYzMjc2N31pZihBKXtFW3orK109MjY4NDM1NDU2fGl0W0NdPDwxOHxqdFtBXTt2YXIgcm49aXRbQ10mMzEsc249anRbQV0mMzE7SSs9bnRbcm5dK3J0W3NuXSwrK3dbMjU3K3JuXSwrK2tbc25dLFY9eCtDLCsrUH1lbHNlIEVbeisrXT1lW3hdLCsrd1tlW3hdXX19Zm9yKHg9TWF0aC5tYXgoeCxWKTt4PG87Kyt4KUVbeisrXT1lW3hdLCsrd1tlW3hdXTt1PUp0KGUsaCxkLEUsdyxrLEkseixILHgtSCx1KSxkfHwocy5yPXUmN3xoW3UvOHwwXTw8Myx1LT03LHMuaD1SLHMucD1OLHMuaT14LHMudz1WKX1lbHNle2Zvcih2YXIgeD1zLnd8fDA7eDxvK2Q7eCs9NjU1MzUpe3ZhciBkdD14KzY1NTM1O2R0Pj1vJiYoaFt1Lzh8MF09ZCxkdD1vKSx1PVl0KGgsdSsxLGUuc3ViYXJyYXkoeCxkdCkpfXMuaT1vfXJldHVybiB6dChjLDAsaStHdCh1KStyKX0sQXI9ZnVuY3Rpb24oKXtmb3IodmFyIGU9bmV3IEludDMyQXJyYXkoMjU2KSx0PTA7dDwyNTY7Kyt0KXtmb3IodmFyIG49dCxpPTk7LS1pOyluPShuJjEmJi0zMDY2NzQ5MTIpXm4+Pj4xO2VbdF09bn1yZXR1cm4gZX0oKSxJcj1mdW5jdGlvbigpe3ZhciBlPS0xO3JldHVybntwOmZ1bmN0aW9uKHQpe2Zvcih2YXIgbj1lLGk9MDtpPHQubGVuZ3RoOysraSluPUFyW24mMjU1XnRbaV1dXm4+Pj44O2U9bn0sZDpmdW5jdGlvbigpe3JldHVybn5lfX19LFNyPWZ1bmN0aW9uKGUsdCxuLGkscil7aWYoIXImJihyPXtsOjF9LHQuZGljdGlvbmFyeSkpe3ZhciBzPXQuZGljdGlvbmFyeS5zdWJhcnJheSgtMzI3NjgpLG89bmV3IHRlKHMubGVuZ3RoK2UubGVuZ3RoKTtvLnNldChzKSxvLnNldChlLHMubGVuZ3RoKSxlPW8sci53PXMubGVuZ3RofXJldHVybiB4cihlLHQubGV2ZWw9PW51bGw/Njp0LmxldmVsLHQubWVtPT1udWxsP3IubD9NYXRoLmNlaWwoTWF0aC5tYXgoOCxNYXRoLm1pbigxMyxNYXRoLmxvZyhlLmxlbmd0aCkpKSoxLjUpOjIwOjEyK3QubWVtLG4saSxyKX0sY3Q9ZnVuY3Rpb24oZSx0LG4pe2Zvcig7bjsrK3QpZVt0XT1uLG4+Pj49OH0sT3I9ZnVuY3Rpb24oZSx0KXt2YXIgbj10LmZpbGVuYW1lO2lmKGVbMF09MzEsZVsxXT0xMzksZVsyXT04LGVbOF09dC5sZXZlbDwyPzQ6dC5sZXZlbD09OT8yOjAsZVs5XT0zLHQubXRpbWUhPTAmJmN0KGUsNCxNYXRoLmZsb29yKG5ldyBEYXRlKHQubXRpbWV8fERhdGUubm93KCkpLzFlMykpLG4pe2VbM109ODtmb3IodmFyIGk9MDtpPD1uLmxlbmd0aDsrK2kpZVtpKzEwXT1uLmNoYXJDb2RlQXQoaSl9fSx3cj1mdW5jdGlvbihlKXtyZXR1cm4gMTArKGUuZmlsZW5hbWU/ZS5maWxlbmFtZS5sZW5ndGgrMTowKX07ZnVuY3Rpb24gRHIoZSx0KXt0fHwodD17fSk7dmFyIG49SXIoKSxpPWUubGVuZ3RoO24ucChlKTt2YXIgcj1TcihlLHQsd3IodCksOCkscz1yLmxlbmd0aDtyZXR1cm4gT3Iocix0KSxjdChyLHMtOCxuLmQoKSksY3QocixzLTQsaSkscn12YXIgWHQ9dHlwZW9mIFRleHRFbmNvZGVyIT0idW5kZWZpbmVkIiYmbmV3IFRleHRFbmNvZGVyLGtyPXR5cGVvZiBUZXh0RGVjb2RlciE9InVuZGVmaW5lZCImJm5ldyBUZXh0RGVjb2RlcixDcj0wO3RyeXtrci5kZWNvZGUoUXQse3N0cmVhbTohMH0pLENyPTF9Y2F0Y2goZSl7fWZ1bmN0aW9uIFJyKGUsdCl7dmFyIG47aWYoWHQpcmV0dXJuIFh0LmVuY29kZShlKTtmb3IodmFyIGk9ZS5sZW5ndGgscj1uZXcgdGUoZS5sZW5ndGgrKGUubGVuZ3RoPj4xKSkscz0wLG89ZnVuY3Rpb24oZCl7cltzKytdPWR9LG49MDtuPGk7KytuKXtpZihzKzU+ci5sZW5ndGgpe3ZhciBjPW5ldyB0ZShzKzgrKGktbjw8MSkpO2Muc2V0KHIpLHI9Y312YXIgaD1lLmNoYXJDb2RlQXQobik7aDwxMjh8fHQ/byhoKTpoPDIwNDg/KG8oMTkyfGg+PjYpLG8oMTI4fGgmNjMpKTpoPjU1Mjk1JiZoPDU3MzQ0PyhoPTY1NTM2KyhoJjEwNDc1NTIpfGUuY2hhckNvZGVBdCgrK24pJjEwMjMsbygyNDB8aD4+MTgpLG8oMTI4fGg+PjEyJjYzKSxvKDEyOHxoPj42JjYzKSxvKDEyOHxoJjYzKSk6KG8oMjI0fGg+PjEyKSxvKDEyOHxoPj42JjYzKSxvKDEyOHxoJjYzKSl9cmV0dXJuIHp0KHIsMCxzKX1mdW5jdGlvbiBMcihlKXtyZXR1cm4gSih0aGlzLG51bGwsZnVuY3Rpb24qKCl7Y29uc3QgdD1ScihKU09OLnN0cmluZ2lmeShlKSksbj1Ecih0KSxpPXlpZWxkIG5ldyBQcm9taXNlKHI9Pntjb25zdCBzPW5ldyBGaWxlUmVhZGVyO3Mub25sb2FkPSgpPT5yKHMucmVzdWx0KSxzLnJlYWRBc0RhdGFVUkwobmV3IEJsb2IoW25ldyBVaW50OEFycmF5KG4pXSkpfSk7cmV0dXJue2NvbXByZXNzZWRCYXNlNjQ6aS5zbGljZShpLmluZGV4T2YoIiwiKSsxKSxjb21wcmVzc2VkU2l6ZTpuLmxlbmd0aCxidWZmZXJMZW5ndGg6dC5sZW5ndGh9fSl9Y29uc3QgdXQ9e0JBU0VfVVJMOiIvIixERVY6ITEsTU9ERToicHJvZHVjdGlvbiIsUFJPRDohMCxTU1I6ITF9LFByPVsiZGVidWciLCJsb2ciLCJpbmZvIiwid2FybiIsImVycm9yIl0sbHQ9U3ltYm9sLmZvcigiQGxhdW5jaGRhcmtseS9vMTF5LnNka0xvZ2dlciIpLEZyPSgoKT0+e3RyeXtyZXR1cm4odXQ9PW51bGw/dm9pZCAwOnV0LkRFQlVHKT09PSJ0cnVlIn1jYXRjaChlKXtyZXR1cm4hMX19KSgpLEJlPSgoKT0+e3ZhciBuO2NvbnN0IGU9Z2xvYmFsVGhpcyx0PShuPWVbbHRdKSE9bnVsbD9uOmVbbHRdPXtkZWJ1Z0VuYWJsZWQ6ITEsc3VwcHJlc3NEZXB0aDowfTtyZXR1cm4gRnImJih0LmRlYnVnRW5hYmxlZD0hMCksdH0pKCksTXI9KCk9PkJlLmRlYnVnRW5hYmxlZCxodD1lPT57QmUuc3VwcHJlc3NEZXB0aCsrO3RyeXtyZXR1cm4gZSgpfWZpbmFsbHl7QmUuc3VwcHJlc3NEZXB0aC0tfX0sQnI9ZT0+UHIuaW5jbHVkZXMoZSk/ZToibG9nIiwkcj0oZSwuLi50KT0+e0JlLmRlYnVnRW5hYmxlZCYmaHQoKCk9Pnt2YXIgbjt0cnl7KChuPWNvbnNvbGVbQnIoZSldKSE9bnVsbD9uOmNvbnNvbGUubG9nKS5hcHBseShjb25zb2xlLHQpfWNhdGNoKGkpe319KX07Y2xhc3MgVXJ7Y29uc3RydWN0b3IodCxuKXt5dCh0aGlzLCJkZWJ1ZyIpO3l0KHRoaXMsIm5hbWUiKTt0aGlzLmRlYnVnPXQsdGhpcy5uYW1lPW59cHJlZml4KCl7bGV0IHQ9YFske0RhdGUubm93KCl9XWA7cmV0dXJuIHRoaXMubmFtZSYmKHQrPWAgLSAke3RoaXMubmFtZX1gKSx0fWxvZyguLi50KXt0aGlzLmRlYnVnJiZodCgoKT0+Y29uc29sZS5sb2cuYXBwbHkoY29uc29sZSxbdGhpcy5wcmVmaXgoKSwuLi50XSkpfXdhcm4oLi4udCl7KHRoaXMuZGVidWd8fE1yKCkpJiZodCgoKT0+Y29uc29sZS53YXJuLmFwcGx5KGNvbnNvbGUsW3RoaXMucHJlZml4KCksLi4udF0pKX19dmFyIFd0PShlPT4oZS5CaWxsaW5nUXVvdGFFeGNlZWRlZD0iQmlsbGluZ1F1b3RhRXhjZWVkZWQiLGUpKShXdHx8e30pO2NvbnN0IFZyPTMscXI9MWUzLGpyPTUwMCxHcj1bV3QuQmlsbGluZ1F1b3RhRXhjZWVkZWQudG9TdHJpbmcoKV0senI9ZT0+e3ZhciBuO3JldHVybigobj1lLnJlc3BvbnNlLmVycm9ycyk9PW51bGw/dm9pZCAwOm4uZmluZChpPT5Hci5pbmNsdWRlcyhpLm1lc3NhZ2UpKSk9PT12b2lkIDB9LEhyPSgpPT57Y29uc3QgZT0odCxuLGkscixzPTApPT5KKHRoaXMsbnVsbCxmdW5jdGlvbiooKXt0cnl7cmV0dXJuIHlpZWxkIHQoKX1jYXRjaChvKXtpZihvIGluc3RhbmNlb2YgZGUmJiF6cihvKSl0aHJvdyBvO2lmKHM8VnIpcmV0dXJuIHlpZWxkIG5ldyBQcm9taXNlKGM9PnNldFRpbWVvdXQoYyxxcitqcipNYXRoLnBvdygyLHMpKSkseWllbGQgZSh0LG4saSxyLHMrMSk7dGhyb3cgJHIoImVycm9yIixgaGlnaGxpZ2h0LmlvOiBkYXRhIHJlcXVlc3QgZmFpbGVkIGFmdGVyICR7c30gcmV0cmllc2ApLG99fSk7cmV0dXJuIGV9LFp0PTUsS3Q9MmUzLFlyPVsibnVtYmVyIiwic3RyaW5nIiwiYm9vbGVhbiJdO3ZhciBaPShlPT4oZVtlLkluaXRpYWxpemU9MF09IkluaXRpYWxpemUiLGVbZS5SZXNldD0xXT0iUmVzZXQiLGVbZS5Bc3luY0V2ZW50cz0yXT0iQXN5bmNFdmVudHMiLGVbZS5JZGVudGlmeT0zXT0iSWRlbnRpZnkiLGVbZS5Qcm9wZXJ0aWVzPTRdPSJQcm9wZXJ0aWVzIixlW2UuTWV0cmljcz01XT0iTWV0cmljcyIsZVtlLkZlZWRiYWNrPTZdPSJGZWVkYmFjayIsZVtlLkN1c3RvbUV2ZW50PTddPSJDdXN0b21FdmVudCIsZVtlLlN0b3A9OF09IlN0b3AiLGVbZS5HZXRTdGF0dXM9OV09IkdldFN0YXR1cyIsZSkpKFp8fHt9KTtjb25zdCBTZT1zZWxmO2Z1bmN0aW9uIGVuKGUsdCl7Y29uc3Qgbj17fSxpPVtdLHI9W107Zm9yKGNvbnN0W3Msb11vZiBPYmplY3QuZW50cmllcyhlKSl7aWYobz09bnVsbCljb250aW51ZTtZci5pbmNsdWRlcyh0eXBlb2Ygbyl8fGkucHVzaCh7W3NdOm99KTtsZXQgYzt0eXBlb2Ygbz09InN0cmluZyI/Yz1vOmM9bWUobyksYy5sZW5ndGg+S3QmJihyLnB1c2goe1tzXTpvfSksYz1jLnN1YnN0cmluZygwLEt0KSksbltzXT1jfXJldHVybiB0IT09InNlc3Npb24iJiYoaS5sZW5ndGg+MCYmY29uc29sZS53YXJuKGBIaWdobGlnaHQgd2FzIHBhc3NlZCBvbmUgb3IgbW9yZSAke3R9IHByb3BlcnRpZXMgbm90IG9mIHR5cGUgc3RyaW5nLCBudW1iZXIsIG9yIGJvb2xlYW4uYCxpKSxyLmxlbmd0aD4wJiZjb25zb2xlLndhcm4oYEhpZ2hsaWdodCB3YXMgcGFzc2VkIG9uZSBvciBtb3JlICR7dH0gcHJvcGVydGllcyBleGNlZWRpbmcgMjAwMCBjaGFyYWN0ZXJzLCB3aGljaCB3aWxsIGJlIHRydW5jYXRlZC5gLHIpKSxufXtsZXQgZSx0LG4saT0wLHI9MCxzPSExLG89MCxjPW5ldyBVcighMSwiW3dvcmtlcl0iKTtjb25zdCBoPVtdLGQ9W10sdT0oKT0+byE9PTAmJmk8WnQmJiEhKG4hPW51bGwmJm4ubGVuZ3RoKSx5PShnLEUpPT57U2UucG9zdE1lc3NhZ2Uoe3Jlc3BvbnNlOnt0eXBlOlouQ3VzdG9tRXZlbnQsdGFnOmcscGF5bG9hZDpFfX0pfSx2PWc9PkoodGhpcyxudWxsLGZ1bmN0aW9uKigpe2NvbnN0e2lkOkUsZXZlbnRzOncsbWVzc2FnZXM6ayxlcnJvcnM6UCxyZXNvdXJjZXNTdHJpbmc6SSx3ZWJTb2NrZXRFdmVudHNTdHJpbmc6eCxoYXNTZXNzaW9uVW5sb2FkZWQ6eixoaWdobGlnaHRMb2dzOlZ9PWcsSD1tZSh7bWVzc2FnZXM6a30pO2xldCBYPXtzZXNzaW9uX3NlY3VyZV9pZDpuLHBheWxvYWRfaWQ6RS50b1N0cmluZygpLGV2ZW50czp7ZXZlbnRzOnd9LG1lc3NhZ2VzOkgscmVzb3VyY2VzOkksd2ViX3NvY2tldF9ldmVudHM6eCxlcnJvcnM6UCxpc19iZWFjb246ITEsaGFzX3Nlc3Npb25fdW5sb2FkZWQ6en07ViYmKFguaGlnaGxpZ2h0X2xvZ3M9Vik7Y29uc3R7Y29tcHJlc3NlZEJhc2U2NDphLGJ1ZmZlckxlbmd0aDpmLGNvbXByZXNzZWRTaXplOl99PXlpZWxkIExyKFgpLFM9e3R5cGU6Wi5Bc3luY0V2ZW50cyxpZDpFLGV2ZW50c1NpemU6Zixjb21wcmVzc2VkU2l6ZTphLmxlbmd0aH07Yy5sb2coYFB1c2hpbmcgcGF5bG9hZDogJHtKU09OLnN0cmluZ2lmeSh7c2Vzc2lvblNlY3VyZUlEOm4saWQ6RSxmaXJzdFNJRDpNYXRoLm1pbiguLi5YLmV2ZW50cy5ldmVudHMubWFwKFc9Plc9PW51bGw/dm9pZCAwOlcuX3NpZCkuZmlsdGVyKFc9PiEhVykpLGV2ZW50c0xlbmd0aDpYLmV2ZW50cy5ldmVudHMubGVuZ3RoLG1lc3NhZ2VzTGVuZ3RoOmsubGVuZ3RoLHJlc291cmNlc0xlbmd0aDpJLmxlbmd0aCx3ZWJTb2NrZXRMZW5ndGg6eC5sZW5ndGgsZXJyb3JzTGVuZ3RoOlAubGVuZ3RoLGJ1Zkxlbmd0aDpmLGNvbXByZXNzZWRMZW5ndGg6Xyxjb21wcmVzc2VkQmFzZTY0TGVuZ3RoOmEubGVuZ3RofSx2b2lkIDAsMil9YCk7Y29uc3QgQz1lLlB1c2hTZXNzaW9uRXZlbnRzKHtzZXNzaW9uX3NlY3VyZV9pZDpuLHBheWxvYWRfaWQ6RS50b1N0cmluZygpLGRhdGE6YX0pO2xldCBBPVByb21pc2UucmVzb2x2ZSgpO2gubGVuZ3RoJiYoQT1lLnB1c2hNZXRyaWNzKHttZXRyaWNzOmh9KSxoLnNwbGljZSgwKSk7bGV0IEs9cGVyZm9ybWFuY2Uubm93KCk7Y29uc3Qgaj1zZXRJbnRlcnZhbCgoKT0+e0smJnBlcmZvcm1hbmNlLm5vdygpLUs+RnQmJihjb25zb2xlLndhcm4oYFVwbG9hZGluZyBwdXNoUGF5bG9hZCB0b29rIHRvbyBsb25nLCBmYWlsdXJlIG51bWJlciAjJHtyfS5gKSxyKz0xLGNsZWFySW50ZXJ2YWwoaikscj49WnQmJihjb25zb2xlLndhcm4oIlVwbG9hZGluZyBwdXNoUGF5bG9hZCB0b29rIHRvbyBsb25nLCBzdG9wcGluZyByZWNvcmRpbmcgdG8gYXZvaWQgT09NLiIpLFNlLnBvc3RNZXNzYWdlKHtyZXNwb25zZTp7dHlwZTpaLlN0b3AscmVxdWVzdFN0YXJ0OkssYXN5bmNFdmVudHNSZXNwb25zZTpTfX0pLG0oe3R5cGU6Wi5Qcm9wZXJ0aWVzLHByb3BlcnRpZXNPYmplY3Q6e3N0b3BSZWFzb246IlB1c2ggUGF5bG9hZCBUaW1lb3V0In0scHJvcGVydHlUeXBlOnt0eXBlOiJ0cmFjayJ9fSkpKX0sMTAwKTt0cnl7eWllbGQgUHJvbWlzZS5hbGwoW0MsQV0pLHImJnBlcmZvcm1hbmNlLm5vdygpLUs8PUZ0JiYoY29uc29sZS53YXJuKGBwdXNoUGF5bG9hZCBzdWNjZWVkZWQgYWZ0ZXIgIyR7cn0gZmFpbHVyZXMsIHJlc2V0dGluZyBzdG9wIHN3aXRjaC5gKSxyPTApfWZpbmFsbHl7Sz0wLGNsZWFySW50ZXJ2YWwoail9U2UucG9zdE1lc3NhZ2Uoe3Jlc3BvbnNlOlN9KX0pLFQ9Zz0+Sih0aGlzLG51bGwsZnVuY3Rpb24qKCl7Y29uc3R7dXNlck9iamVjdDpFLHVzZXJJZGVudGlmaWVyOncsc291cmNlOmt9PWc7az09PSJzZWdtZW50Ij95KCJTZWdtZW50IElkZW50aWZ5IixtZShEKHt1c2VySWRlbnRpZmllcjp3fSxFKSkpOnkoIklkZW50aWZ5IixtZShEKHt1c2VySWRlbnRpZmllcjp3fSxFKSkpLHlpZWxkIGUuaWRlbnRpZnlTZXNzaW9uKHtzZXNzaW9uX3NlY3VyZV9pZDpuLHVzZXJfaWRlbnRpZmllcjp3LHVzZXJfb2JqZWN0OmVuKEUsInVzZXIiKX0pO2NvbnN0IFA9az09PSJzZWdtZW50Ij9rOiJkZWZhdWx0IjtjLmxvZyhgSWRlbnRpZnkgKCR7d30sIHNvdXJjZTogJHtQfSkgdy8gb2JqOiAke21lKEUpfSBAICR7dH1gKX0pLG09Zz0+Sih0aGlzLG51bGwsZnVuY3Rpb24qKCl7Y29uc3R7cHJvcGVydGllc09iamVjdDpFLHByb3BlcnR5VHlwZTp3fT1nO2xldCBrOyh3PT1udWxsP3ZvaWQgMDp3LnR5cGUpPT09InNlc3Npb24iPyhrPSJTZXNzaW9uIix5aWVsZCBlLmFkZFNlc3Npb25Qcm9wZXJ0aWVzKHtzZXNzaW9uX3NlY3VyZV9pZDpuLHByb3BlcnRpZXNfb2JqZWN0OmVuKEUsInNlc3Npb24iKX0pKToodz09bnVsbD92b2lkIDA6dy5zb3VyY2UpPT09InNlZ21lbnQiP2s9IlNlZ21lbnQiOms9IlRyYWNrIixrIT09IlNlc3Npb24iJiZ5KGssbWUoRSkpLGMubG9nKGBBZGRpbmcgJHtrfSBQcm9wZXJ0aWVzIHRvIHNlc3Npb24gKCR7bn0pIHcvIG9iajogJHtKU09OLnN0cmluZ2lmeShFKX0gQCAke3R9YCl9KSxOPWc9PkoodGhpcyxudWxsLGZ1bmN0aW9uKigpe2gucHVzaCguLi5nLm1ldHJpY3MubWFwKEU9Pih7bmFtZTpFLm5hbWUsdmFsdWU6RS52YWx1ZSxzZXNzaW9uX3NlY3VyZV9pZDpuLGNhdGVnb3J5OkUuY2F0ZWdvcnksZ3JvdXA6RS5ncm91cCx0aW1lc3RhbXA6RS50aW1lc3RhbXAudG9JU09TdHJpbmcoKSx0YWdzOkUudGFnc30pKSl9KSxSPWc9PkoodGhpcyxudWxsLGZ1bmN0aW9uKigpe2NvbnN0e3RpbWVzdGFtcDpFLHZlcmJhdGltOncsdXNlckVtYWlsOmssdXNlck5hbWU6UH09Zzt5aWVsZCBlLmFkZFNlc3Npb25GZWVkYmFjayh7c2Vzc2lvbl9zZWN1cmVfaWQ6bix0aW1lc3RhbXA6RSx2ZXJiYXRpbTp3LHVzZXJfZW1haWw6ayx1c2VyX25hbWU6UH0pfSksTD1nPT5KKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtnLnR5cGU9PT1aLkFzeW5jRXZlbnRzP3lpZWxkIHYoZyk6Zy50eXBlPT09Wi5JZGVudGlmeT95aWVsZCBUKGcpOmcudHlwZT09PVouUHJvcGVydGllcz95aWVsZCBtKGcpOmcudHlwZT09PVouTWV0cmljcz95aWVsZCBOKGcpOmcudHlwZT09PVouRmVlZGJhY2smJih5aWVsZCBSKGcpKX0pLHE9KCk9PkoodGhpcyxudWxsLGZ1bmN0aW9uKigpe2Zvcig7ZC5sZW5ndGg+MCYmdSgpOyl7Y29uc3QgZz1kLnNoaWZ0KCk7dHJ5e3lpZWxkIEwoZyksaT0wfWNhdGNoKEUpe3MmJmNvbnNvbGUuZXJyb3IoRSksaSs9MX19fSk7U2Uub25tZXNzYWdlPWZ1bmN0aW9uKGcpe3JldHVybiBKKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtpZihnLmRhdGEubWVzc2FnZS50eXBlPT09Wi5Jbml0aWFsaXplKXt0PWcuZGF0YS5tZXNzYWdlLmJhY2tlbmQsbj1nLmRhdGEubWVzc2FnZS5zZXNzaW9uU2VjdXJlSUQscz1nLmRhdGEubWVzc2FnZS5kZWJ1ZyxvPWcuZGF0YS5tZXNzYWdlLnJlY29yZGluZ1N0YXJ0VGltZSxjLmRlYnVnPXMsZT12cihuZXcgWG4odCx7aGVhZGVyczp7fX0pLEhyKCkpLHlpZWxkIHEoKTtyZXR1cm59aWYoZy5kYXRhLm1lc3NhZ2UudHlwZT09PVouUmVzZXQpe2QubGVuZ3RoPTAsaC5sZW5ndGg9MCxpPTAscj0wLG49IiIsbz0wO3JldHVybn1pZihnLmRhdGEubWVzc2FnZS50eXBlPT09Wi5HZXRTdGF0dXMpe1NlLnBvc3RNZXNzYWdlKHtyZXNwb25zZTp7dHlwZTpaLkdldFN0YXR1cyxwZW5kaW5nQ291bnQ6ZC5sZW5ndGgsaW5pdGlhbGl6ZWQ6dSgpfX0pO3JldHVybn1pZighdSgpKXtkLnB1c2goZy5kYXRhLm1lc3NhZ2UpO3JldHVybn10cnl7eWllbGQgTChnLmRhdGEubWVzc2FnZSksaT0wLHlpZWxkIHEoKX1jYXRjaChFKXtzJiZjb25zb2xlLmVycm9yKEUpLGkrPTF9fSl9fX0pKCk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWhpZ2hsaWdodC1jbGllbnQtd29ya2VyLURyRFBSQ3J2LmpzLm1hcAo=",Ym=e=>Uint8Array.from(atob(e),t=>t.charCodeAt(0)),$a=typeof self<"u"&&self.Blob&&new Blob([Ym(_a)],{type:"text/javascript;charset=utf-8"});function Um(e){let t;try{if(t=$a&&(self.URL||self.webkitURL).createObjectURL($a),!t)throw"";const s=new Worker(t,{name:e?.name});return s.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),s}catch{return new Worker("data:text/javascript;base64,"+_a,{name:e?.name})}finally{t&&(self.URL||self.webkitURL).revokeObjectURL(t)}}var Ae=(e=>(e[e.Initialize=0]="Initialize",e[e.Reset=1]="Reset",e[e.AsyncEvents=2]="AsyncEvents",e[e.Identify=3]="Identify",e[e.Properties=4]="Properties",e[e.Metrics=5]="Metrics",e[e.Feedback=6]="Feedback",e[e.CustomEvent=7]="CustomEvent",e[e.Stop=8]="Stop",e[e.GetStatus=9]="GetStatus",e))(Ae||{});const Fm=({apiKey:e})=>{(function(t,s){var n=t.amplitude||{_q:[],_iq:{}},r=s.createElement("script");r.type="text/javascript",r.integrity="sha384-+EO59vL/X7v6VE2s6/F4HxfHlK0nDUVWKVg8K9oUlvffAeeaShVBmbORTC2D3UF+",r.crossOrigin="anonymous",r.async=!0,r.src="https://cdn.amplitude.com/libs/amplitude-8.17.0-min.gz.js",r.onload=function(){t.amplitude.runQueuedFunctions||console.log("[Amplitude] Error: could not load SDK"),amplitude.getInstance().init(e)};var l=s.getElementsByTagName("script")[0];l.parentNode.insertBefore(r,l);function d(u,b){u.prototype[b]=function(){return this._q.push([b].concat(Array.prototype.slice.call(arguments,0))),this}}for(var f=function(){return this._q=[],this},m=["add","append","clearAll","prepend","set","setOnce","unset","preInsert","postInsert","remove"],h=0;h<m.length;h++)d(f,m[h]);n.Identify=f;for(var p=function(){return this._q=[],this},o=["setProductId","setQuantity","setPrice","setRevenueType","setEventProperties"],a=0;a<o.length;a++)d(p,o[a]);n.Revenue=p;var i=["init","logEvent","logRevenue","setUserId","setUserProperties","setOptOut","setVersionName","setDomain","setDeviceId","enableTracking","setGlobalUserProperties","identify","clearUserProperties","setGroup","logRevenueV2","regenerateDeviceId","groupIdentify","onInit","logEventWithTimestamp","logEventWithGroups","setSessionId","resetSessionId"];function c(u){function b(Z){u[Z]=function(){u._q.push([Z].concat(Array.prototype.slice.call(arguments,0)))}}for(var S=0;S<i.length;S++)b(i[S])}c(n),n.getInstance=function(u){return u=(!u||u.length===0?"$default_instance":u).toLowerCase(),Object.prototype.hasOwnProperty.call(n._iq,u)||(n._iq[u]={_q:[]},c(n._iq[u])),n._iq[u]},t.amplitude=n})(window,document)},Mm=({projectToken:e})=>{if(window.mixpanel)return;(function(s,n){if(!n.__SV){var r,l;window.mixpanel=n,n._i=[],n.init=function(d,f,m){function h(a,i){var c=i.split(".");c.length==2&&(a=a[c[0]],i=c[1]),a[i]=function(){a.push([i].concat(Array.prototype.slice.call(arguments,0)))}}var p=n;for(typeof m<"u"?p=n[m]=[]:m="mixpanel",p.people=p.people||[],p.toString=function(a){var i="mixpanel";return m!=="mixpanel"&&(i+="."+m),a||(i+=" (stub)"),i},p.people.toString=function(){return p.toString(1)+".people (stub)"},r="disable time_event track track_pageview track_links track_forms track_with_groups add_group set_group remove_group register register_once alias unregister identify name_tag set_config reset opt_in_tracking opt_out_tracking has_opted_in_tracking has_opted_out_tracking clear_opt_in_out_tracking start_batch_senders people.set people.set_once people.unset people.increment people.append people.union people.track_charge people.clear_charges people.delete_user people.remove".split(" "),l=0;l<r.length;l++)h(p,r[l]);var o="set set_once union unset remove delete".split(" ");p.get_group=function(){function a(b){i[b]=function(){call2_args=arguments,call2=[b].concat(Array.prototype.slice.call(call2_args,0)),p.push([c,call2])}}for(var i={},c=["get_group"].concat(Array.prototype.slice.call(arguments,0)),u=0;u<o.length;u++)a(o[u]);return i},n._i.push([d,f,m])},n.__SV=1.2}})(document,window.mixpanel||[]);const t=document.createElement("script");t.src=Om,document.head.appendChild(t),t.addEventListener("load",()=>{var s;(s=window.mixpanel)==null||s.init(e)})},Om="https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";var Qs;class Km{constructor(t){Q(this,"options"),Q(this,"isRunningOnHighlight"),Q(this,"organizationID"),wd(this,Qs),Q(this,"events"),Q(this,"sessionData"),Q(this,"ready"),Q(this,"manualStopped"),Q(this,"state"),Q(this,"logger"),Q(this,"enableSegmentIntegration"),Q(this,"privacySetting"),Q(this,"enableCanvasRecording"),Q(this,"samplingStrategy"),Q(this,"inlineImages"),Q(this,"inlineVideos"),Q(this,"inlineStylesheet"),Q(this,"styleSheetResyncInterval"),Q(this,"debugOptions"),Q(this,"listeners"),Q(this,"firstloadVersion"),Q(this,"environment"),Q(this,"sessionShortcut"),Q(this,"appVersion"),Q(this,"serviceName"),Q(this,"_worker"),Q(this,"_optionsInternal"),Q(this,"_backendUrl"),Q(this,"_recordingStartTime"),Q(this,"_isOnLocalHost"),Q(this,"_onToggleFeedbackFormVisibility"),Q(this,"_isCrossOriginIframe"),Q(this,"_eventBytesSinceSnapshot"),Q(this,"_lastSnapshotTime"),Q(this,"_snapshotPayloadIds"),Q(this,"_lastVisibilityChangeTime"),Q(this,"pushPayloadTimerId"),Q(this,"hasSessionUnloaded"),Q(this,"hasPushedData"),Q(this,"reloaded"),Q(this,"_hasPreviouslyInitialized"),Q(this,"_recordStop"),Q(this,"_integrations",[]);var s,n,r,l,d,f;this.options=t,typeof((s=this.options)==null?void 0:s.debug)=="boolean"?this.debugOptions=this.options.debug?{clientInteractions:!0}:{}:this.debugOptions=(r=(n=this.options)==null?void 0:n.debug)!=null?r:{},this.logger=new ar(this.debugOptions.clientInteractions),(l=this.options)!=null&&l.debug&&nc(!0),this._worker=new Um,this._worker.onmessage=h=>{var p,o,a;((p=h.data.response)==null?void 0:p.type)===Ae.AsyncEvents?(this._snapshotPayloadIds.delete(h.data.response.id)||(this._eventBytesSinceSnapshot+=h.data.response.eventsSize),this.logger.log(`Web worker sent payloadID ${h.data.response.id} size ${h.data.response.eventsSize} bytes, compression ratio ${h.data.response.eventsSize/h.data.response.compressedSize}.
456
+ Total since snapshot: ${(this._eventBytesSinceSnapshot/1e6).toFixed(1)}MB`)):((o=h.data.response)==null?void 0:o.type)===Ae.CustomEvent?this.addCustomEvent(h.data.response.tag,h.data.response.payload):((a=h.data.response)==null?void 0:a.type)===Ae.Stop&&(Ie("worker.onmessage","warn","Stopping recording due to worker failure",h.data.response),this.stop(!1))};let m=hs();if(this.reloaded=!1,!((d=this.sessionData)!=null&&d.sessionSecureID)&&m!=null&&m.sessionSecureID)this.sessionData=m,this.options.sessionSecureID=m.sessionSecureID,this.reloaded=!0,this.logger.log(`Tab reloaded, continuing previous session: ${this.sessionData.sessionSecureID}`);else{for(const h of Object.values(ve))us(h);this.sessionData={sessionSecureID:this.options.sessionSecureID,projectID:0,sessionStartTime:Date.now()}}this._hasPreviouslyInitialized=!1;try{window.parent.document&&(this._isCrossOriginIframe=!1)}catch{this._isCrossOriginIframe=(f=this.options.recordCrossOriginIframe)!=null?f:!0}this._initMembers(this.options)}_reset(t){return We(this,arguments,function*({forceNew:s,sessionKey:n}){this.pushPayloadTimerId&&(clearTimeout(this.pushPayloadTimerId),this.pushPayloadTimerId=void 0);let r,l;if(!s)try{r=Te(ve.USER_IDENTIFIER);const d=Te(ve.USER_OBJECT);d&&(l=JSON.parse(d))}catch{}for(const d of Object.values(ve))us(d);this.sessionData.sessionSecureID=n?Nt(`${this.organizationID}-${n}`):Nt(),this.sessionData.sessionKey=n,this.sessionData.sessionStartTime=Date.now(),this.options.sessionSecureID=this.sessionData.sessionSecureID,this.stop(),this._worker.postMessage({message:{type:Ae.Reset}}),yield this.start(),r&&l&&this.identify(r,l)})}_initMembers(t){var s,n,r,l,d,f,m,h,p,o;this.sessionShortcut=!1,this._recordingStartTime=0,this._isOnLocalHost=window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"||window.location.hostname==="",this.ready=!1,this.state="NotRecording",this.manualStopped=!1,this.enableSegmentIntegration=!!t.enableSegmentIntegration,this.privacySetting=(s=t.privacySetting)!=null?s:"default",this.enableCanvasRecording=(n=t.enableCanvasRecording)!=null?n:!1,this.inlineImages=(r=t.inlineImages)!=null?r:this._isOnLocalHost,this.inlineVideos=(l=t.inlineVideos)!=null?l:this._isOnLocalHost,this.inlineStylesheet=(d=t.inlineStylesheet)!=null?d:this._isOnLocalHost,this.styleSheetResyncInterval=(f=t.styleSheetResyncInterval)!=null?f:2e3,this.samplingStrategy=H({canvasFactor:.5,canvasMaxSnapshotDimension:360,canvasClearWebGLBuffer:!0,dataUrlOptions:Cu()},(m=t.samplingStrategy)!=null?m:{canvas:2}),this._backendUrl=(h=t?.backendUrl)!=null?h:"https://pub.observability.app.launchdarkly.com",this._backendUrl[0]==="/"&&(this._backendUrl=new URL(this._backendUrl,document.baseURI).href);const a=new ou(`${this._backendUrl}`,{headers:{}});kd(this,Qs,wu(a,td())),this.environment=(p=t.environment)!=null?p:"production",this.appVersion=t.appVersion,this.serviceName=(o=t.serviceName)!=null?o:"browser",typeof t.organizationID=="string"?this.organizationID=t.organizationID:this.organizationID=t.organizationID.toString(),this.isRunningOnHighlight=this.organizationID==="1"||this.organizationID==="1jdkoe52",this.firstloadVersion=t.firstloadVersion||"unknown",this.sessionShortcut=t.sessionShortcut||!1,this._onToggleFeedbackFormVisibility=()=>{};const i=t,c=ms(i,["firstloadVersion"]);this._optionsInternal=c,this.listeners=[],this.events=[],this.hasSessionUnloaded=!1,this.hasPushedData=!1,window.Intercom&&window.Intercom("onShow",()=>{window.Intercom("update",{highlightSessionURL:this.getCurrentSessionURLWithTimestamp()}),this.addProperties({event:"Intercom onShow"})}),this._eventBytesSinceSnapshot=0,this._lastSnapshotTime=new Date().getTime(),this._snapshotPayloadIds=new Set,this._lastVisibilityChangeTime=new Date().getTime()}identify(t,s={},n){if(!t||t===""){Ie("identify","warn","Highlight's identify() call was passed an empty identifier.",{user_identifier:t,user_object:s});return}this.sessionData.userIdentifier=t.toString(),this.sessionData.userObject=s,He(ve.USER_IDENTIFIER,t.toString()),He(ve.USER_OBJECT,JSON.stringify(s)),this._worker.postMessage({message:{type:Ae.Identify,userIdentifier:t,userObject:s,source:n}})}track(t,s){this.addProperties(Xe(H({},s),{event:t}))}addProperties(t={},s){const n=H({},t);Object.entries(n).forEach(([r,l])=>{try{structuredClone(l)}catch{delete n[r]}}),this._worker.postMessage({message:{type:Ae.Properties,propertiesObject:n,propertyType:s}})}addSessionProperties(t){this.addProperties(t,{type:"session"})}start(t){return We(this,null,function*(){var s,n,r,l,d,f,m,h,p,o;if(!((s=navigator?.userAgent)!=null&&s.includes("Googlebot")||(n=navigator?.userAgent)!=null&&n.includes("AdsBot")))try{if(t!=null&&t.forceNew){yield this._reset(t);return}if(t!=null&&t.sessionKey&&t?.sessionKey!==this.sessionData.sessionKey){yield this._reset(Xe(H({},t),{forceNew:!0}));return}this.logger.log("Initializing...",t,this.sessionData,this.options),this.sessionData=(r=hs(this.sessionData.sessionSecureID))!=null?r:this.sessionData,(l=this.sessionData)!=null&&l.sessionStartTime?this._recordingStartTime=(d=this.sessionData)==null?void 0:d.sessionStartTime:(this._recordingStartTime=new Date().getTime(),this.sessionData.sessionStartTime=this._recordingStartTime);let a=Te(fn.CLIENT_ID);a||(a=Nt(),He(fn.CLIENT_ID,a));let i;this.options.disableSessionRecording||this.options.disableNetworkRecording!==void 0||typeof this.options.networkRecording=="boolean"?i=!1:i=((f=this.options.networkRecording)==null?void 0:f.recordHeadersAndBody)||!1;let c=[];if(typeof this.options.networkRecording=="object"&&(m=this.options.networkRecording.destinationDomains)!=null&&m.length&&(c=this.options.networkRecording.destinationDomains),this._isCrossOriginIframe)yield this._setupCrossOriginIframe();else{const I=yield Wd(this,Qs).initializeSession({organization_verbose_id:this.organizationID,enable_strict_privacy:this.privacySetting==="strict",privacy_setting:this.privacySetting,enable_recording_network_contents:i,clientVersion:this.firstloadVersion,firstloadVersion:this.firstloadVersion,clientConfig:JSON.stringify(this._optionsInternal),environment:this.environment,id:a,appVersion:this.appVersion,serviceName:this.serviceName,session_secure_id:this.sessionData.sessionSecureID,session_key:this.sessionData.sessionKey,client_id:a,network_recording_domains:c,disable_session_recording:this.options.disableSessionRecording});if(I.initializeSession.secure_id!==this.sessionData.sessionSecureID&&this.logger.log(`Unexpected secure id returned by initializeSession: ${I.initializeSession.secure_id}, expected ${this.sessionData.sessionSecureID}`),this.sessionData.sessionSecureID=I.initializeSession.secure_id,this.sessionData.projectID=parseInt(((h=I?.initializeSession)==null?void 0:h.project_id)||"0"),!this.sessionData.projectID||!this.sessionData.sessionSecureID){ut("error","Failed to initialize Highlight; an error occurred on our end.",this.sessionData);return}}Lt(""),rt(this.sessionData),this.logger.log(`Loaded Highlight
457
457
  Remote: ${this._backendUrl}
458
458
  Project ID: ${this.sessionData.projectID}
459
- SessionSecureID: ${this.sessionData.sessionSecureID}`),this.options.sessionSecureID=this.sessionData.sessionSecureID,this._worker.postMessage({message:{type:Ae.Initialize,sessionSecureID:this.sessionData.sessionSecureID,backend:this._backendUrl,debug:!!this.debugOptions.clientInteractions,recordingStartTime:this._recordingStartTime}});for(const I of this._integrations)I.init(this.sessionData.sessionSecureID);if(this.sessionData.userIdentifier&&this.identify(this.sessionData.userIdentifier,this.sessionData.userObject),this.pushPayloadTimerId&&(clearTimeout(this.pushPayloadTimerId),this.pushPayloadTimerId=void 0),this._isCrossOriginIframe||(this.pushPayloadTimerId=setTimeout(()=>{this._save()},Jr)),this.options.disableSessionRecording){this.logger.log("Highlight is NOT RECORDING a session replay per H.init setting."),this.ready=!0,this.state="Recording",this.manualStopped=!1;return}const u=(I,R)=>{R&&this.logger.log("received isCheckout emit",{event:I}),this.events.push(I)};u.bind(this);const b=!!this._recordStop;this._recordStop&&(this._recordStop(),this._recordStop=void 0);const[S,Z]=tm(this.privacySetting,this.options.maskAllInputs,this.options.maskInputOptions);this._recordStop=Qe({ignoreClass:(p=this.options.ignoreClass)!=null?p:"highlight-ignore",ignoreSelector:this.options.ignoreSelector,blockClass:(o=this.options.blockClass)!=null?o:"highlight-block",blockSelector:this.options.blockSelector,emit:u,recordCrossOriginIframes:this.options.recordCrossOriginIframe,privacySetting:sm(this.privacySetting,this.options.maskPiiText),maskAllInputs:S,maskInputOptions:Z,maskTextClass:this.options.maskTextClass,maskTextSelector:this.options.maskTextSelector,recordCanvas:this.enableCanvasRecording,sampling:{canvas:{fps:this.samplingStrategy.canvas,fpsManual:this.samplingStrategy.canvasManualSnapshot,resizeFactor:this.samplingStrategy.canvasFactor,clearWebGLBuffer:this.samplingStrategy.canvasClearWebGLBuffer,initialSnapshotDelay:this.samplingStrategy.canvasInitialSnapshotDelay,dataURLOptions:this.samplingStrategy.dataUrlOptions,maxSnapshotDimension:this.samplingStrategy.canvasMaxSnapshotDimension}},keepIframeSrcFn:I=>!this.options.recordCrossOriginIframe,inlineImages:this.inlineImages,inlineVideos:this.inlineVideos,collectFonts:this.inlineImages,inlineStylesheet:this.inlineStylesheet,styleSheetResyncInterval:this.styleSheetResyncInterval,plugins:[Cd()],logger:typeof this.options.debug=="boolean"&&this.options.debug||typeof this.options.debug=="object"&&this.options.debug.domRecording?{debug:this.logger.log,warn:Ie.bind(null,"RecordSDK","warn")}:void 0}),b||this.options.recordCrossOriginIframe&&this._setupCrossOriginIframeParent(),document.referrer&&(window&&document.referrer.includes(window.location.origin)||(this.addCustomEvent("Referrer",document.referrer),this.addProperties({referrer:document.referrer},{type:"session"}))),this.sessionData.sessionKey&&this.addProperties({sessionKey:this.sessionData.sessionKey},{type:"session"}),this._setupWindowListeners(),this.ready=!0,this.state="Recording",this.manualStopped=!1}catch(a){Ie("initializeSession _setupWindowListeners","warn",a)}})}_visibilityHandler(t){return We(this,null,function*(){if(this.manualStopped){this.logger.log("Ignoring visibility event due to manual stop.");return}new Date().getTime()-this._lastVisibilityChangeTime<Tu||(this._lastVisibilityChangeTime=new Date().getTime(),this.logger.log(`Detected window ${t?"hidden":"visible"}.`),t?(this.addCustomEvent("TabHidden",!0),this.options.disableBackgroundRecording&&this.stop()):(this.options.disableBackgroundRecording&&(yield this.start()),this.addCustomEvent("TabHidden",!1)))})}_setupCrossOriginIframe(){return We(this,null,function*(){this.logger.log("highlight in cross-origin iframe is waiting "),yield new Promise(t=>{const s=n=>{if(n.data.highlight===Ja){const r=n.data;this.logger.log("highlight got window message ",r),this.sessionData.projectID=r.projectID,this.sessionData.sessionSecureID=r.sessionSecureID,window.parent.postMessage({highlight:Ya},"*"),window.removeEventListener("message",s),t()}};window.addEventListener("message",s)})})}_setupCrossOriginIframeParent(){this.logger.log("highlight setting up cross origin iframe parent notification"),setInterval(()=>{window.document.querySelectorAll("iframe").forEach(t=>{var s;(s=t.contentWindow)==null||s.postMessage({highlight:Ja,projectID:this.sessionData.projectID,sessionSecureID:this.sessionData.sessionSecureID},"*")})},Jr),window.addEventListener("message",t=>{t.data.highlight===Ya&&this.logger.log("highlight got response from initialized iframe")})}_setupWindowListeners(){var t;try{const n=this;this.enableSegmentIntegration&&this.listeners.push(om(l=>{if(l.type==="track"){const d={};d["segment-event"]=l.event,n.addProperties(d,{type:"track",source:"segment"})}else if(l.type==="identify"){const d=l.userId.replace(/^"(.*)"$/,"$1");n.identify(d,l.traits,"segment")}})),this.listeners.push(ad(l=>{this.reloaded?(this.addCustomEvent("Reload",l),this.reloaded=!1,n.addProperties({reload:!0},{type:"session"})):this.addCustomEvent("Navigate",l)})),this.listeners.push(md(l=>{this.addCustomEvent("Viewport",l)})),this.listeners.push(nm((l,d)=>{let f=null,m=null;if(d&&d.target){const h=d.target;f=hd(h),m=h.textContent,m&&m.length>2e3&&(m=m.substring(0,2e3))}this.addCustomEvent("Click",{clickTarget:l,clickTextContent:m,clickSelector:f})})),this.listeners.push(im(l=>{l&&this.addCustomEvent("Focus",l)})),this.sessionShortcut&&this.listeners.push(am(this.sessionShortcut,()=>{window.open(this.getCurrentSessionURLWithTimestamp(),"_blank")})),this._hasPreviouslyInitialized||((t=window.electron)!=null&&t.ipcRenderer?(window.electron.ipcRenderer.on("highlight.run",({visible:l})=>{this._visibilityHandler(!l)}),this.logger.log("Set up Electron highlight.run events.")):(rm(l=>this._visibilityHandler(l)),this.logger.log("Set up document visibility listener.")),this._hasPreviouslyInitialized=!0);const r=()=>{this.hasSessionUnloaded=!0,this.pushPayloadTimerId&&(clearTimeout(this.pushPayloadTimerId),this.pushPayloadTimerId=void 0)};window.addEventListener("beforeunload",r),this.listeners.push(()=>window.removeEventListener("beforeunload",r))}catch(n){Ie("initializeSession _setupWindowListeners","warn",n)}const s=()=>{this.addCustomEvent("Page Unload",""),Lt(this.sessionData.sessionSecureID),rt(this.sessionData)};if(window.addEventListener("beforeunload",s),this.listeners.push(()=>window.removeEventListener("beforeunload",s)),navigator.userAgent.match(/iPad/i)||navigator.userAgent.match(/iPhone/i)){const n=()=>{this.addCustomEvent("Page Unload",""),Lt(this.sessionData.sessionSecureID),rt(this.sessionData)};window.addEventListener("pagehide",n),this.listeners.push(()=>window.removeEventListener("beforeunload",n))}}stop(t){this.manualStopped=!!t,this.manualStopped&&this.addCustomEvent("Stop","H.stop() was called which stops Highlight from recording."),this.state="NotRecording",t&&this._recordStop&&(this._recordStop(),this._recordStop=void 0),this.listeners.forEach(s=>s()),this.listeners=[]}getCurrentSessionURLWithTimestamp(){const t=new Date().getTime(),{projectID:s,sessionSecureID:n}=this.sessionData,r=(t-this._recordingStartTime)/1e3;return`https://${Fr}/${s}/sessions/${n}?ts=${r}`}getCurrentSessionURL(){const t=this.sessionData.projectID,s=this.sessionData.sessionSecureID;return t&&s?`https://${Fr}/${t}/sessions/${s}`:null}snapshot(t){return We(this,null,function*(){yield Qe.snapshotCanvas(t)})}addSessionFeedback(t){}_save(){return We(this,null,function*(){var t;try{this.state==="Recording"&&this.listeners&&!this.sessionData.sessionKey&&this.sessionData.sessionStartTime&&Date.now()-this.sessionData.sessionStartTime>Yr&&(this.logger.log("Resetting session",{start:this.sessionData.sessionStartTime}),yield this._reset({}));let s;((t=this.options)==null?void 0:t.sendMode)==="local"&&(s=n=>We(this,null,function*(){let r=new Blob([JSON.stringify({query:vr(Nr),variables:n})],{type:"application/json"});return yield window.fetch(`${this._backendUrl}`,{method:"POST",body:r}),0})),yield this._sendPayload({sendFn:s}),this.hasPushedData=!0,this.sessionData.lastPushTime=Date.now(),rt(this.sessionData)}catch(s){Ie("_save","warn",s)}this.state==="Recording"&&(this.pushPayloadTimerId&&(clearTimeout(this.pushPayloadTimerId),this.pushPayloadTimerId=void 0),this.pushPayloadTimerId=setTimeout(()=>{this._save()},xu))})}addCustomEvent(t,s){if(this.state==="NotRecording"){let n;const r=()=>{clearInterval(n),this.state==="Recording"&&this.events.length>0?xa(t,s):n=setTimeout(r,500)};n=setTimeout(r,500)}else this.state==="Recording"&&(this.events.length>0||this.hasPushedData)&&xa(t,s)}_sendPayload(t){return We(this,arguments,function*({sendFn:s}){const n=[...this.events],{bytes:r,time:l}=this.enableCanvasRecording?Ur.canvas:Ur.normal;this._eventBytesSinceSnapshot>=r&&new Date().getTime()-this._lastSnapshotTime>=l&&this.takeFullSnapshot(),this.logger.log(`Sending: ${n.length} events,
459
+ SessionSecureID: ${this.sessionData.sessionSecureID}`),this.options.sessionSecureID=this.sessionData.sessionSecureID,this._worker.postMessage({message:{type:Ae.Initialize,sessionSecureID:this.sessionData.sessionSecureID,backend:this._backendUrl,debug:!!this.debugOptions.clientInteractions,recordingStartTime:this._recordingStartTime}});for(const I of this._integrations)I.init(this.sessionData.sessionSecureID);if(this.sessionData.userIdentifier&&this.identify(this.sessionData.userIdentifier,this.sessionData.userObject),this.pushPayloadTimerId&&(clearTimeout(this.pushPayloadTimerId),this.pushPayloadTimerId=void 0),this._isCrossOriginIframe||(this.pushPayloadTimerId=setTimeout(()=>{this._save()},Yr)),this.options.disableSessionRecording){this.logger.log("Highlight is NOT RECORDING a session replay per H.init setting."),this.ready=!0,this.state="Recording",this.manualStopped=!1;return}const u=(I,R)=>{R&&this.logger.log("received isCheckout emit",{event:I}),this.events.push(I)};u.bind(this);const b=!!this._recordStop;this._recordStop&&(this._recordStop(),this._recordStop=void 0);const[S,Z]=nm(this.privacySetting,this.options.maskAllInputs,this.options.maskInputOptions);this._recordStop=Qe({ignoreClass:(p=this.options.ignoreClass)!=null?p:"highlight-ignore",ignoreSelector:this.options.ignoreSelector,blockClass:(o=this.options.blockClass)!=null?o:"highlight-block",blockSelector:this.options.blockSelector,emit:u,recordCrossOriginIframes:this.options.recordCrossOriginIframe,privacySetting:im(this.privacySetting,this.options.maskPiiText),maskAllInputs:S,maskInputOptions:Z,maskTextClass:this.options.maskTextClass,maskTextSelector:this.options.maskTextSelector,recordCanvas:this.enableCanvasRecording,sampling:{canvas:{fps:this.samplingStrategy.canvas,fpsManual:this.samplingStrategy.canvasManualSnapshot,resizeFactor:this.samplingStrategy.canvasFactor,clearWebGLBuffer:this.samplingStrategy.canvasClearWebGLBuffer,initialSnapshotDelay:this.samplingStrategy.canvasInitialSnapshotDelay,dataURLOptions:this.samplingStrategy.dataUrlOptions,maxSnapshotDimension:this.samplingStrategy.canvasMaxSnapshotDimension}},keepIframeSrcFn:I=>!this.options.recordCrossOriginIframe,inlineImages:this.inlineImages,inlineVideos:this.inlineVideos,collectFonts:this.inlineImages,inlineStylesheet:this.inlineStylesheet,styleSheetResyncInterval:this.styleSheetResyncInterval,plugins:[Td()],logger:typeof this.options.debug=="boolean"&&this.options.debug||typeof this.options.debug=="object"&&this.options.debug.domRecording?{debug:this.logger.log,warn:Ie.bind(null,"RecordSDK","warn")}:void 0}),b||this.options.recordCrossOriginIframe&&this._setupCrossOriginIframeParent(),document.referrer&&(window&&document.referrer.includes(window.location.origin)||(this.addCustomEvent("Referrer",document.referrer),this.addProperties({referrer:document.referrer},{type:"session"}))),this.sessionData.sessionKey&&this.addProperties({sessionKey:this.sessionData.sessionKey},{type:"session"}),this._setupWindowListeners(),this.ready=!0,this.state="Recording",this.manualStopped=!1}catch(a){Ie("initializeSession _setupWindowListeners","warn",a)}})}_visibilityHandler(t){return We(this,null,function*(){if(this.manualStopped){this.logger.log("Ignoring visibility event due to manual stop.");return}new Date().getTime()-this._lastVisibilityChangeTime<Nu||(this._lastVisibilityChangeTime=new Date().getTime(),this.logger.log(`Detected window ${t?"hidden":"visible"}.`),t?(this.addCustomEvent("TabHidden",!0),this.options.disableBackgroundRecording&&this.stop()):(this.options.disableBackgroundRecording&&(yield this.start()),this.addCustomEvent("TabHidden",!1)))})}_setupCrossOriginIframe(){return We(this,null,function*(){this.logger.log("highlight in cross-origin iframe is waiting "),yield new Promise(t=>{const s=n=>{if(n.data.highlight===Ua){const r=n.data;this.logger.log("highlight got window message ",r),this.sessionData.projectID=r.projectID,this.sessionData.sessionSecureID=r.sessionSecureID,window.parent.postMessage({highlight:Fa},"*"),window.removeEventListener("message",s),t()}};window.addEventListener("message",s)})})}_setupCrossOriginIframeParent(){this.logger.log("highlight setting up cross origin iframe parent notification"),setInterval(()=>{window.document.querySelectorAll("iframe").forEach(t=>{var s;(s=t.contentWindow)==null||s.postMessage({highlight:Ua,projectID:this.sessionData.projectID,sessionSecureID:this.sessionData.sessionSecureID},"*")})},Yr),window.addEventListener("message",t=>{t.data.highlight===Fa&&this.logger.log("highlight got response from initialized iframe")})}_setupWindowListeners(){var t;try{const n=this;this.enableSegmentIntegration&&this.listeners.push(am(l=>{if(l.type==="track"){const d={};d["segment-event"]=l.event,n.addProperties(d,{type:"track",source:"segment"})}else if(l.type==="identify"){const d=l.userId.replace(/^"(.*)"$/,"$1");n.identify(d,l.traits,"segment")}})),this.listeners.push(ud(l=>{this.reloaded?(this.addCustomEvent("Reload",l),this.reloaded=!1,n.addProperties({reload:!0},{type:"session"})):this.addCustomEvent("Navigate",l)})),this.listeners.push(bd(l=>{this.addCustomEvent("Viewport",l)})),this.listeners.push(rm((l,d)=>{let f=null,m=null;if(d&&d.target){const h=d.target;f=md(h),m=h.textContent,m&&m.length>2e3&&(m=m.substring(0,2e3))}this.addCustomEvent("Click",{clickTarget:l,clickTextContent:m,clickSelector:f})})),this.listeners.push(om(l=>{l&&this.addCustomEvent("Focus",l)})),this.sessionShortcut&&this.listeners.push(um(this.sessionShortcut,()=>{window.open(this.getCurrentSessionURLWithTimestamp(),"_blank")})),this._hasPreviouslyInitialized||((t=window.electron)!=null&&t.ipcRenderer?(window.electron.ipcRenderer.on("highlight.run",({visible:l})=>{this._visibilityHandler(!l)}),this.logger.log("Set up Electron highlight.run events.")):(lm(l=>this._visibilityHandler(l)),this.logger.log("Set up document visibility listener.")),this._hasPreviouslyInitialized=!0);const r=()=>{this.hasSessionUnloaded=!0,this.pushPayloadTimerId&&(clearTimeout(this.pushPayloadTimerId),this.pushPayloadTimerId=void 0)};window.addEventListener("beforeunload",r),this.listeners.push(()=>window.removeEventListener("beforeunload",r))}catch(n){Ie("initializeSession _setupWindowListeners","warn",n)}const s=()=>{this.addCustomEvent("Page Unload",""),Lt(this.sessionData.sessionSecureID),rt(this.sessionData)};if(window.addEventListener("beforeunload",s),this.listeners.push(()=>window.removeEventListener("beforeunload",s)),navigator.userAgent.match(/iPad/i)||navigator.userAgent.match(/iPhone/i)){const n=()=>{this.addCustomEvent("Page Unload",""),Lt(this.sessionData.sessionSecureID),rt(this.sessionData)};window.addEventListener("pagehide",n),this.listeners.push(()=>window.removeEventListener("beforeunload",n))}}stop(t){this.manualStopped=!!t,this.manualStopped&&this.addCustomEvent("Stop","H.stop() was called which stops Highlight from recording."),this.state="NotRecording",t&&this._recordStop&&(this._recordStop(),this._recordStop=void 0),this.listeners.forEach(s=>s()),this.listeners=[]}getCurrentSessionURLWithTimestamp(){const t=new Date().getTime(),{projectID:s,sessionSecureID:n}=this.sessionData,r=(t-this._recordingStartTime)/1e3;return`https://${Mr}/${s}/sessions/${n}?ts=${r}`}getCurrentSessionURL(){const t=this.sessionData.projectID,s=this.sessionData.sessionSecureID;return t&&s?`https://${Mr}/${t}/sessions/${s}`:null}snapshot(t){return We(this,null,function*(){yield Qe.snapshotCanvas(t)})}addSessionFeedback(t){}_save(){return We(this,null,function*(){var t;try{this.state==="Recording"&&this.listeners&&!this.sessionData.sessionKey&&this.sessionData.sessionStartTime&&Date.now()-this.sessionData.sessionStartTime>Ur&&(this.logger.log("Resetting session",{start:this.sessionData.sessionStartTime}),yield this._reset({}));let s;((t=this.options)==null?void 0:t.sendMode)==="local"&&(s=n=>We(this,null,function*(){let r=new Blob([JSON.stringify({query:Wr(Jr),variables:n})],{type:"application/json"});return yield window.fetch(`${this._backendUrl}`,{method:"POST",body:r}),0})),yield this._sendPayload({sendFn:s}),this.hasPushedData=!0,this.sessionData.lastPushTime=Date.now(),rt(this.sessionData)}catch(s){Ie("_save","warn",s)}this.state==="Recording"&&(this.pushPayloadTimerId&&(clearTimeout(this.pushPayloadTimerId),this.pushPayloadTimerId=void 0),this.pushPayloadTimerId=setTimeout(()=>{this._save()},Lu))})}addCustomEvent(t,s){if(this.state==="NotRecording"){let n;const r=()=>{clearInterval(n),this.state==="Recording"&&this.events.length>0?La(t,s):n=setTimeout(r,500)};n=setTimeout(r,500)}else this.state==="Recording"&&(this.events.length>0||this.hasPushedData)&&La(t,s)}_sendPayload(t){return We(this,arguments,function*({sendFn:s}){const n=[...this.events],{bytes:r,time:l}=this.enableCanvasRecording?Fr.canvas:Fr.normal;this._eventBytesSinceSnapshot>=r&&new Date().getTime()-this._lastSnapshotTime>=l&&this.takeFullSnapshot(),this.logger.log(`Sending: ${n.length} events,
460
460
  To: ${this._backendUrl}
461
461
  Org: ${this.organizationID}
462
- SessionSecureID: ${this.sessionData.sessionSecureID}`);const d=new Date().getTime(),f=ym();if(s){const m={session_secure_id:this.sessionData.sessionSecureID,payload_id:d.toString(),events:{events:n},messages:au({messages:[]}),resources:JSON.stringify({resources:[]}),web_socket_events:JSON.stringify({webSocketEvents:[]}),errors:[],is_beacon:!1,has_session_unloaded:this.hasSessionUnloaded,highlight_logs:f||void 0},{compressedBase64:h}=yield Lm(m);yield s({session_secure_id:this.sessionData.sessionSecureID,payload_id:d.toString(),data:h})}else this._worker.postMessage({message:{type:Ae.AsyncEvents,id:d,events:n,messages:[],errors:[],resourcesString:JSON.stringify({resources:[]}),webSocketEventsString:JSON.stringify({webSocketEvents:[]}),hasSessionUnloaded:this.hasSessionUnloaded,highlightLogs:f}});rt(this.sessionData),this.events=this.events.slice(n.length),gm(f)})}takeFullSnapshot(){if(!this._recordStop){this.logger.log("skipping full snapshot as rrweb is not running");return}this.logger.log("taking full snapshot",{bytesSinceSnapshot:this._eventBytesSinceSnapshot,lastSnapshotTime:this._lastSnapshotTime}),Qe.takeFullSnapshot(),this._eventBytesSinceSnapshot=0,this._lastSnapshotTime=new Date().getTime()}register(t,s){this._integrations.push(new ld(t,s))}getHooks(t){return this._integrations.flatMap(s=>{var n,r;return(r=(n=s.getHooks)==null?void 0:n.call(s,t))!=null?r:[]})}getRecordingState(){var t;return(t=this==null?void 0:this.state)!=null?t:"NotRecording"}getSession(){const t=this.sessionData.sessionSecureID,s=hs(t);if(!s)return null;const n=`${this.getFrontendUrl()}/sessions/${t}`;if(!n||!s?.sessionStartTime)return null;const r=new Date().getTime();let l;try{l=new URL(n)}catch(m){return Ie("identify","warn",`failed to construct session url from ${n}`,m),null}const d=new URL(l),f=(r-this._recordingStartTime)/1e3;return d.searchParams.set("ts",f.toString()),{url:l.toString(),urlWithTimestamp:d.toString(),sessionSecureID:t}}getFrontendUrl(){var t,s;const n=this._backendUrl.match(Ju);if(n&&(t=n?.groups)!=null&&t.domain){const r=(s=n.groups.domain)!=null?s:"",l=Lu[r];return l?`https://${l}${Nu}`:Or}return Or}}Qs=new WeakMap;class Mm extends gd{constructor(t){super(t),Q(this,"record"),Q(this,"options"),this.options=t}initialize(t,s){var n,r,l,d,f,m,h,p,o;try{if(typeof window>"u"||typeof document>"u"){ut("warn","@launchdarkly/session-replay is not initializing because it is not supported in this environment.");return}if(typeof Worker>"u"){ut("warn","@launchdarkly/session-replay is not initializing because Worker is not supported.");return}if(!t){ut("warn","@launchdarkly/session-replay is not initializing because the SDK credential is undefined.");return}this.configureSession(t,s);const a=Xe(H({},s),{organizationID:t,firstloadVersion:dd,environment:s?.environment||"production",appVersion:s?.version,sessionSecureID:this.sessionSecureID,privacySetting:(n=s?.privacySetting)!=null?n:"strict"});this.record=new Om(a);const i=s!=null&&s.manualStart?void 0:this.record.start();Ye.LDRecord.load(this.record,{ready:!(s!=null&&s.manualStart),started:i}),!((l=(r=s?.integrations)==null?void 0:r.mixpanel)!=null&&l.disabled)&&(f=(d=s?.integrations)==null?void 0:d.mixpanel)!=null&&f.projectToken&&Um(s.integrations.mixpanel),!((h=(m=s?.integrations)==null?void 0:m.amplitude)!=null&&h.disabled)&&(o=(p=s?.integrations)==null?void 0:p.amplitude)!=null&&o.apiKey&&Ym(s.integrations.amplitude)}catch(a){Ie("Error initializing @launchdarkly/session-replay SDK","error",a)}}getMetadata(){return{name:"@launchdarkly/session-replay"}}register(t,s){var n;(n=this.record)==null||n.register(t,s)}getHooks(t){var s,n,r,l;const d=H(H({[ku]:t.sdk.name,[Cu]:t.sdk.version,[ed]:t.clientSideId,[td]:"LaunchDarkly"},(s=t.application)!=null&&s.id?{[sd]:t.application.id}:{}),(n=t.application)!=null&&n.version?{[nd]:t.application.version}:{});return this.initialize((l=(r=t.sdkKey)!=null?r:t.mobileKey)!=null?l:t.clientSideId,this.options),[{getMetadata:()=>({name:"@launchdarkly/session-replay/hooks"}),afterIdentify:(f,m,h)=>{var p,o,a,i,c,u,b,S;for(const Z of(a=(o=(p=this.record)==null?void 0:p.getHooks)==null?void 0:o.call(p,t))!=null?a:[])(i=Z.afterIdentify)==null||i.call(Z,f,m,h);if(h.status==="completed"){const Z=Xe(H({},rd(f.context)),{key:(b=(u=(c=this.options)==null?void 0:c.contextFriendlyName)==null?void 0:u.call(c,f.context))!=null?b:Qr(f.context),canonicalKey:Qr(f.context)});(S=this.record)==null||S.identify(Z.key,H(H({},d),Z),"LaunchDarkly")}return m},afterEvaluation:(f,m,h)=>{var p,o,a,i;for(const c of(a=(o=(p=this.record)==null?void 0:p.getHooks)==null?void 0:o.call(p,t))!=null?a:[])(i=c.afterEvaluation)==null||i.call(c,f,m,h);return m},afterTrack:f=>{var m,h,p,o,a;for(const i of(p=(h=(m=this.record)==null?void 0:m.getHooks)==null?void 0:h.call(m,t))!=null?p:[])(o=i.afterTrack)==null||o.call(i,f);(a=this.record)==null||a.track(f.key,{data:f.data,value:f.metricValue})}}]}}Ye.default=Mm,Object.defineProperties(Ye,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
462
+ SessionSecureID: ${this.sessionData.sessionSecureID}`);const d=new Date().getTime(),f=Zm();if(s){const m={session_secure_id:this.sessionData.sessionSecureID,payload_id:d.toString(),events:{events:n},messages:uu({messages:[]}),resources:JSON.stringify({resources:[]}),web_socket_events:JSON.stringify({webSocketEvents:[]}),errors:[],is_beacon:!1,has_session_unloaded:this.hasSessionUnloaded,highlight_logs:f||void 0},{compressedBase64:h}=yield Jm(m);yield s({session_secure_id:this.sessionData.sessionSecureID,payload_id:d.toString(),data:h})}else n.some(m=>m.type===ro.FullSnapshot)&&this._snapshotPayloadIds.add(d),this._worker.postMessage({message:{type:Ae.AsyncEvents,id:d,events:n,messages:[],errors:[],resourcesString:JSON.stringify({resources:[]}),webSocketEventsString:JSON.stringify({webSocketEvents:[]}),hasSessionUnloaded:this.hasSessionUnloaded,highlightLogs:f}});rt(this.sessionData),this.events=this.events.slice(n.length),Sm(f)})}takeFullSnapshot(){if(!this._recordStop){this.logger.log("skipping full snapshot as rrweb is not running");return}this.logger.log("taking full snapshot",{bytesSinceSnapshot:this._eventBytesSinceSnapshot,lastSnapshotTime:this._lastSnapshotTime}),Qe.takeFullSnapshot(),this._eventBytesSinceSnapshot=0,this._lastSnapshotTime=new Date().getTime()}register(t,s){this._integrations.push(new cd(t,s))}getHooks(t){return this._integrations.flatMap(s=>{var n,r;return(r=(n=s.getHooks)==null?void 0:n.call(s,t))!=null?r:[]})}getRecordingState(){var t;return(t=this==null?void 0:this.state)!=null?t:"NotRecording"}getSession(){const t=this.sessionData.sessionSecureID,s=hs(t);if(!s)return null;const n=`${this.getFrontendUrl()}/sessions/${t}`;if(!n||!s?.sessionStartTime)return null;const r=new Date().getTime();let l;try{l=new URL(n)}catch(m){return Ie("identify","warn",`failed to construct session url from ${n}`,m),null}const d=new URL(l),f=(r-this._recordingStartTime)/1e3;return d.searchParams.set("ts",f.toString()),{url:l.toString(),urlWithTimestamp:d.toString(),sessionSecureID:t}}getFrontendUrl(){var t,s;const n=this._backendUrl.match(Uu);if(n&&(t=n?.groups)!=null&&t.domain){const r=(s=n.groups.domain)!=null?s:"",l=Ju[r];return l?`https://${l}${Yu}`:Or}return Or}}Qs=new WeakMap;class Em extends Sd{constructor(t){super(t),Q(this,"record"),Q(this,"options"),this.options=t}initialize(t,s){var n,r,l,d,f,m,h,p,o;try{if(typeof window>"u"||typeof document>"u"){ut("warn","@launchdarkly/session-replay is not initializing because it is not supported in this environment.");return}if(typeof Worker>"u"){ut("warn","@launchdarkly/session-replay is not initializing because Worker is not supported.");return}if(!t){ut("warn","@launchdarkly/session-replay is not initializing because the SDK credential is undefined.");return}this.configureSession(t,s);const a=Xe(H({},s),{organizationID:t,firstloadVersion:pd,environment:s?.environment||"production",appVersion:s?.version,sessionSecureID:this.sessionSecureID,privacySetting:(n=s?.privacySetting)!=null?n:"strict"});this.record=new Km(a);const i=s!=null&&s.manualStart?void 0:this.record.start();Ye.LDRecord.load(this.record,{ready:!(s!=null&&s.manualStart),started:i}),!((l=(r=s?.integrations)==null?void 0:r.mixpanel)!=null&&l.disabled)&&(f=(d=s?.integrations)==null?void 0:d.mixpanel)!=null&&f.projectToken&&Mm(s.integrations.mixpanel),!((h=(m=s?.integrations)==null?void 0:m.amplitude)!=null&&h.disabled)&&(o=(p=s?.integrations)==null?void 0:p.amplitude)!=null&&o.apiKey&&Fm(s.integrations.amplitude)}catch(a){Ie("Error initializing @launchdarkly/session-replay SDK","error",a)}}getMetadata(){return{name:"@launchdarkly/session-replay"}}register(t,s){var n;(n=this.record)==null||n.register(t,s)}getHooks(t){var s,n,r,l;const d=H(H({[xu]:t.sdk.name,[Tu]:t.sdk.version,[sd]:t.clientSideId,[nd]:"LaunchDarkly"},(s=t.application)!=null&&s.id?{[id]:t.application.id}:{}),(n=t.application)!=null&&n.version?{[rd]:t.application.version}:{});return this.initialize((l=(r=t.sdkKey)!=null?r:t.mobileKey)!=null?l:t.clientSideId,this.options),[{getMetadata:()=>({name:"@launchdarkly/session-replay/hooks"}),afterIdentify:(f,m,h)=>{var p,o,a,i,c,u,b,S;for(const Z of(a=(o=(p=this.record)==null?void 0:p.getHooks)==null?void 0:o.call(p,t))!=null?a:[])(i=Z.afterIdentify)==null||i.call(Z,f,m,h);if(h.status==="completed"){const Z=Xe(H({},ld(f.context)),{key:(b=(u=(c=this.options)==null?void 0:c.contextFriendlyName)==null?void 0:u.call(c,f.context))!=null?b:jr(f.context),canonicalKey:jr(f.context)});(S=this.record)==null||S.identify(Z.key,H(H({},d),Z),"LaunchDarkly")}return m},afterEvaluation:(f,m,h)=>{var p,o,a,i;for(const c of(a=(o=(p=this.record)==null?void 0:p.getHooks)==null?void 0:o.call(p,t))!=null?a:[])(i=c.afterEvaluation)==null||i.call(c,f,m,h);return m},afterTrack:f=>{var m,h,p,o,a;for(const i of(p=(h=(m=this.record)==null?void 0:m.getHooks)==null?void 0:h.call(m,t))!=null?p:[])(o=i.afterTrack)==null||o.call(i,f);(a=this.record)==null||a.track(f.key,{data:f.data,value:f.metricValue})}}]}}Ye.default=Em,Object.defineProperties(Ye,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
463
463
  //# sourceMappingURL=index.umd.js.map