diff --git a/.gitignore b/.gitignore index 8ee54e8..d08d8f6 100644 --- a/.gitignore +++ b/.gitignore @@ -8,8 +8,7 @@ pnpm-debug.log* lerna-debug.log* node_modules -.DS_Store -dist +.DS_Store dist-ssr coverage *.local diff --git a/dist.zip b/dist.zip deleted file mode 100644 index 3c3d146..0000000 Binary files a/dist.zip and /dev/null differ diff --git a/dist/assets/401-BSBdQqy4.css b/dist/assets/401-BSBdQqy4.css new file mode 100644 index 0000000..300da90 --- /dev/null +++ b/dist/assets/401-BSBdQqy4.css @@ -0,0 +1 @@ +.errPage-container[data-v-2c8b7582]{width:800px;max-width:100%;margin:100px auto}.errPage-container .pan-back-btn[data-v-2c8b7582]{background:#008489;color:#fff;border:none!important}.errPage-container .pan-gif[data-v-2c8b7582]{margin:0 auto;display:block}.errPage-container .pan-img[data-v-2c8b7582]{display:block;margin:0 auto;width:100%}.errPage-container .text-jumbo[data-v-2c8b7582]{font-size:60px;font-weight:700;color:#484848}.errPage-container .list-unstyled[data-v-2c8b7582]{font-size:14px}.errPage-container .list-unstyled li[data-v-2c8b7582]{padding-bottom:5px}.errPage-container .list-unstyled a[data-v-2c8b7582]{color:#008489;text-decoration:none}.errPage-container .list-unstyled a[data-v-2c8b7582]:hover{text-decoration:underline} diff --git a/dist/assets/401-BnzQ57U8.js b/dist/assets/401-BnzQ57U8.js new file mode 100644 index 0000000..c5265d4 --- /dev/null +++ b/dist/assets/401-BnzQ57U8.js @@ -0,0 +1 @@ +import{_ as d,j as f,r as m,c as k,d as o,w as s,e as n,o as g,h as a,f as e}from"./index-DikBC4WP.js";const x="/assets/401-HGF6Q5qM.gif",b={class:"errPage-container"},h={class:"list-unstyled"},w={class:"link-type"},v=["src"],y={__name:"401",setup(B){let{proxy:r}=f();const c=m(x+"?"+ +new Date);function u(){r.$route.query.noGoBack?r.$router.push({path:"/"}):r.$router.go(-1)}return(C,t)=>{const _=n("el-button"),i=n("router-link"),l=n("el-col"),p=n("el-row");return g(),k("div",b,[o(_,{icon:"arrow-left",class:"pan-back-btn",onClick:u},{default:s(()=>[...t[0]||(t[0]=[a(" 返回 ",-1)])]),_:1}),o(p,null,{default:s(()=>[o(l,{span:12},{default:s(()=>[t[2]||(t[2]=e("h1",{class:"text-jumbo text-ginormous"}," 401错误! ",-1)),t[3]||(t[3]=e("h2",null,"您没有访问权限!",-1)),t[4]||(t[4]=e("h6",null,"对不起,您没有访问权限,请不要进行非法操作!您可以返回主页面",-1)),e("ul",h,[e("li",w,[o(i,{to:"/"},{default:s(()=>[...t[1]||(t[1]=[a(" 回首页 ",-1)])]),_:1})])])]),_:1}),o(l,{span:12},{default:s(()=>[e("img",{src:c.value,width:"313",height:"428",alt:"Girl has dropped her ice cream."},null,8,v)]),_:1})]),_:1})])}}},I=d(y,[["__scopeId","data-v-2c8b7582"]]);export{I as default}; diff --git a/dist/assets/401-BnzQ57U8.js.gz b/dist/assets/401-BnzQ57U8.js.gz new file mode 100644 index 0000000..e9ec9a8 Binary files /dev/null and b/dist/assets/401-BnzQ57U8.js.gz differ diff --git a/dist/assets/401-HGF6Q5qM.gif b/dist/assets/401-HGF6Q5qM.gif new file mode 100644 index 0000000..cd6e0d9 Binary files /dev/null and b/dist/assets/401-HGF6Q5qM.gif differ diff --git a/dist/assets/404-Cb2yUGol.css b/dist/assets/404-Cb2yUGol.css new file mode 100644 index 0000000..af55687 --- /dev/null +++ b/dist/assets/404-Cb2yUGol.css @@ -0,0 +1 @@ +.wscn-http404-container[data-v-328ae272]{transform:translate(-50%,-50%);position:absolute;top:40%;left:50%}.wscn-http404[data-v-328ae272]{position:relative;width:1200px;padding:0 50px;overflow:hidden}.wscn-http404 .pic-404[data-v-328ae272]{position:relative;float:left;width:600px;overflow:hidden}.wscn-http404 .pic-404__parent[data-v-328ae272]{width:100%}.wscn-http404 .pic-404__child[data-v-328ae272]{position:absolute}.wscn-http404 .pic-404__child.left[data-v-328ae272]{width:80px;top:17px;left:220px;opacity:0;animation-name:cloudLeft-328ae272;animation-duration:2s;animation-timing-function:linear;animation-fill-mode:forwards;animation-delay:1s}.wscn-http404 .pic-404__child.mid[data-v-328ae272]{width:46px;top:10px;left:420px;opacity:0;animation-name:cloudMid-328ae272;animation-duration:2s;animation-timing-function:linear;animation-fill-mode:forwards;animation-delay:1.2s}.wscn-http404 .pic-404__child.right[data-v-328ae272]{width:62px;top:100px;left:500px;opacity:0;animation-name:cloudRight-328ae272;animation-duration:2s;animation-timing-function:linear;animation-fill-mode:forwards;animation-delay:1s}@keyframes cloudLeft-328ae272{0%{top:17px;left:220px;opacity:0}20%{top:33px;left:188px;opacity:1}80%{top:81px;left:92px;opacity:1}to{top:97px;left:60px;opacity:0}}@keyframes cloudMid-328ae272{0%{top:10px;left:420px;opacity:0}20%{top:40px;left:360px;opacity:1}70%{top:130px;left:180px;opacity:1}to{top:160px;left:120px;opacity:0}}@keyframes cloudRight-328ae272{0%{top:100px;left:500px;opacity:0}20%{top:120px;left:460px;opacity:1}80%{top:180px;left:340px;opacity:1}to{top:200px;left:300px;opacity:0}}.wscn-http404 .bullshit[data-v-328ae272]{position:relative;float:left;width:300px;padding:30px 0;overflow:hidden}.wscn-http404 .bullshit__oops[data-v-328ae272]{font-size:32px;font-weight:700;line-height:40px;color:#1482f0;opacity:0;margin-bottom:20px;animation-name:slideUp-328ae272;animation-duration:.5s;animation-fill-mode:forwards}.wscn-http404 .bullshit__headline[data-v-328ae272]{font-size:20px;line-height:24px;color:#222;font-weight:700;opacity:0;margin-bottom:10px;animation-name:slideUp-328ae272;animation-duration:.5s;animation-delay:.1s;animation-fill-mode:forwards}.wscn-http404 .bullshit__info[data-v-328ae272]{font-size:13px;line-height:21px;color:gray;opacity:0;margin-bottom:30px;animation-name:slideUp-328ae272;animation-duration:.5s;animation-delay:.2s;animation-fill-mode:forwards}.wscn-http404 .bullshit__return-home[data-v-328ae272]{display:block;float:left;width:110px;height:36px;background:#1482f0;border-radius:100px;text-align:center;color:#fff;opacity:0;font-size:14px;line-height:36px;cursor:pointer;animation-name:slideUp-328ae272;animation-duration:.5s;animation-delay:.3s;animation-fill-mode:forwards}@keyframes slideUp-328ae272{0%{transform:translateY(60px);opacity:0}to{transform:translateY(0);opacity:1}} diff --git a/dist/assets/404-Cb2yUGol.css.gz b/dist/assets/404-Cb2yUGol.css.gz new file mode 100644 index 0000000..c0f99e1 Binary files /dev/null and b/dist/assets/404-Cb2yUGol.css.gz differ diff --git a/dist/assets/404-N4aRkdWY.png b/dist/assets/404-N4aRkdWY.png new file mode 100644 index 0000000..3d8e230 Binary files /dev/null and b/dist/assets/404-N4aRkdWY.png differ diff --git a/dist/assets/404-W2OpILVy.js b/dist/assets/404-W2OpILVy.js new file mode 100644 index 0000000..23d19d1 --- /dev/null +++ b/dist/assets/404-W2OpILVy.js @@ -0,0 +1 @@ +import{_ as o,b as l,c as _,f as t,q as c,d,t as n,s as r,w as p,e as m,o as u,h as v}from"./index-DikBC4WP.js";const h="/assets/404-N4aRkdWY.png",a="/assets/404_cloud-CPexjtDj.png",f={class:"wscn-http404-container"},g={class:"wscn-http404"},x={class:"bullshit"},b={class:"bullshit__headline"},k={__name:"404",setup(N){let e=l(()=>"找不到网页!");return(w,s)=>{const i=m("router-link");return u(),_("div",f,[t("div",g,[s[3]||(s[3]=c('
404404404404
',1)),t("div",x,[s[1]||(s[1]=t("div",{class:"bullshit__oops"}," 404错误! ",-1)),t("div",b,n(r(e)),1),s[2]||(s[2]=t("div",{class:"bullshit__info"}," 对不起,您正在寻找的页面不存在。尝试检查URL的错误,然后按浏览器上的刷新按钮或尝试在我们的应用程序中找到其他内容。 ",-1)),d(i,{to:"/index",class:"bullshit__return-home"},{default:p(()=>[...s[0]||(s[0]=[v(" 返回首页 ",-1)])]),_:1})])])])}}},B=o(k,[["__scopeId","data-v-328ae272"]]);export{B as default}; diff --git a/dist/assets/404-W2OpILVy.js.gz b/dist/assets/404-W2OpILVy.js.gz new file mode 100644 index 0000000..37eb312 Binary files /dev/null and b/dist/assets/404-W2OpILVy.js.gz differ diff --git a/dist/assets/404_cloud-CPexjtDj.png b/dist/assets/404_cloud-CPexjtDj.png new file mode 100644 index 0000000..c6281d0 Binary files /dev/null and b/dist/assets/404_cloud-CPexjtDj.png differ diff --git a/dist/assets/Gc_114_line-Level-action-D-au3m2o.png b/dist/assets/Gc_114_line-Level-action-D-au3m2o.png new file mode 100644 index 0000000..593bf3b Binary files /dev/null and b/dist/assets/Gc_114_line-Level-action-D-au3m2o.png differ diff --git a/dist/assets/Gc_114_line-Level-pSAy3hqw.png b/dist/assets/Gc_114_line-Level-pSAy3hqw.png new file mode 100644 index 0000000..a2d94bf Binary files /dev/null and b/dist/assets/Gc_114_line-Level-pSAy3hqw.png differ diff --git a/dist/assets/amplify-D21nWILD.png b/dist/assets/amplify-D21nWILD.png new file mode 100644 index 0000000..4e4306a Binary files /dev/null and b/dist/assets/amplify-D21nWILD.png differ diff --git a/dist/assets/brushSize-BKGQxoQG.svg b/dist/assets/brushSize-BKGQxoQG.svg new file mode 100644 index 0000000..a2913ce --- /dev/null +++ b/dist/assets/brushSize-BKGQxoQG.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/assets/brushSize-active-BDmIZAig.svg b/dist/assets/brushSize-active-BDmIZAig.svg new file mode 100644 index 0000000..0376633 --- /dev/null +++ b/dist/assets/brushSize-active-BDmIZAig.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/dist/assets/bus-C8MdfDPM.js b/dist/assets/bus-C8MdfDPM.js new file mode 100644 index 0000000..800334d --- /dev/null +++ b/dist/assets/bus-C8MdfDPM.js @@ -0,0 +1 @@ +function o(i){return{all:i=i||new Map,on:function(e,c){var t=i.get(e);t?t.push(c):i.set(e,[c])},off:function(e,c){var t=i.get(e);t&&(c?t.splice(t.indexOf(c)>>>0,1):i.set(e,[]))},emit:function(e,c){var t=i.get(e);t&&t.slice().map(function(n){n(c)}),(t=i.get("*"))&&t.slice().map(function(n){n(e,c)})}}}const a=o();export{a as e,o as m}; diff --git a/dist/assets/index-BEyUpNsD.js b/dist/assets/index-BEyUpNsD.js new file mode 100644 index 0000000..85c54be --- /dev/null +++ b/dist/assets/index-BEyUpNsD.js @@ -0,0 +1,38 @@ +import{E as U,_ as Yi,i as da,j as ua,r as F,k as Dl,m as ha,c as Y,f as x,d as z,w as Q,e as oe,n as Ml,p as xl,a as fa,o as $,U as Ri,g as Fe,D as ue,X as pa,t as le,h as he,F as ai,B as oi,W as ma,a8 as Al,L as Ve,b as Ie,J as Ce,a9 as Nl,aa as Ll,ab as Ul,a6 as Fl,s as gt,ac as jl,l as Pt,N as Bl,ad as Vl,u as ql,Y as Te,ae as tr,af as ir,ag as nr,a5 as Kl}from"./index-DikBC4WP.js";import{a as sr,b as Gl,B as Wl,u as zl}from"./room-BKpValiO.js";import Hl from"./index-eGhvKdrr.js";import{e as ot}from"./bus-C8MdfDPM.js";import{C as Jl}from"./index-Ba59pKR3.js";const $l="/assets/shrink-Cp-w-M07.png",Ql="/assets/amplify-D21nWILD.png";var rr={};function Yl(n,e){return e.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(i){if(i!=="default"&&!(i in n)){var s=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(n,i,s.get?s:{enumerable:!0,get:function(){return t[i]}})}})}),Object.freeze(n)}var Xl=Object.defineProperty,Zl=(n,e,t)=>e in n?Xl(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,ar=(n,e,t)=>Zl(n,typeof e!="symbol"?e+"":e,t);class Ne{constructor(){ar(this,"_locking"),ar(this,"_locks"),this._locking=Promise.resolve(),this._locks=0}isLocked(){return this._locks>0}lock(){this._locks+=1;let e;const t=new Promise(s=>e=()=>{this._locks-=1,s()}),i=this._locking.then(()=>e);return this._locking=this._locking.then(()=>t),i}}function me(n,e){if(!n)throw new Error(e)}const ed=34028234663852886e22,td=-34028234663852886e22,id=4294967295,nd=2147483647,sd=-2147483648;function Ii(n){if(typeof n!="number")throw new Error("invalid int 32: "+typeof n);if(!Number.isInteger(n)||n>nd||nid||n<0)throw new Error("invalid uint 32: "+n)}function ga(n){if(typeof n!="number")throw new Error("invalid float 32: "+typeof n);if(Number.isFinite(n)&&(n>ed||n({no:s.no,name:s.name,localName:n[s.no]})))}function ya(n,e,t){const i=Object.create(null),s=Object.create(null),r=[];for(const a of e){const o=ka(a);r.push(o),i[a.name]=o,s[a.no]=o}return{typeName:n,values:r,findName(a){return i[a]},findNumber(a){return s[a]}}}function ad(n,e,t){const i={};for(const s of e){const r=ka(s);i[r.localName]=r.no,i[r.no]=r.localName}return ba(i,n,e),i}function ka(n){return"localName"in n?n:Object.assign(Object.assign({},n),{localName:n.name})}class ds{equals(e){return this.getType().runtime.util.equals(this.getType(),this,e)}clone(){return this.getType().runtime.util.clone(this)}fromBinary(e,t){const i=this.getType(),s=i.runtime.bin,r=s.makeReadOptions(t);return s.readMessage(this,r.readerFactory(e),e.byteLength,r),this}fromJson(e,t){const i=this.getType(),s=i.runtime.json,r=s.makeReadOptions(t);return s.readMessage(i,e,r,this),this}fromJsonString(e,t){let i;try{i=JSON.parse(e)}catch(s){throw new Error("cannot decode ".concat(this.getType().typeName," from JSON: ").concat(s instanceof Error?s.message:String(s)))}return this.fromJson(i,t)}toBinary(e){const t=this.getType(),i=t.runtime.bin,s=i.makeWriteOptions(e),r=s.writerFactory();return i.writeMessage(this,r,s),r.finish()}toJson(e){const t=this.getType(),i=t.runtime.json,s=i.makeWriteOptions(e);return i.writeMessage(this,s)}toJsonString(e){var t;const i=this.toJson(e);return JSON.stringify(i,null,(t=e==null?void 0:e.prettySpaces)!==null&&t!==void 0?t:0)}toJSON(){return this.toJson({emitDefaultValues:!0})}getType(){return Object.getPrototypeOf(this).constructor}}function od(n,e,t,i){var s;const r=(s=i==null?void 0:i.localName)!==null&&s!==void 0?s:e.substring(e.lastIndexOf(".")+1),a={[r]:function(o){n.util.initFields(this),n.util.initPartial(o,this)}}[r];return Object.setPrototypeOf(a.prototype,new ds),Object.assign(a,{runtime:n,typeName:e,fields:n.util.newFieldList(t),fromBinary(o,c){return new a().fromBinary(o,c)},fromJson(o,c){return new a().fromJson(o,c)},fromJsonString(o,c){return new a().fromJsonString(o,c)},equals(o,c){return n.util.equals(a,o,c)}}),a}function cd(){let n=0,e=0;for(let i=0;i<28;i+=7){let s=this.buf[this.pos++];if(n|=(s&127)<>4,!(t&128))return this.assertBounds(),[n,e];for(let i=3;i<=31;i+=7){let s=this.buf[this.pos++];if(e|=(s&127)<>>r,o=!(!(a>>>7)&&e==0),c=(o?a|128:a)&255;if(t.push(c),!o)return}const i=n>>>28&15|(e&7)<<4,s=!!(e>>3);if(t.push((s?i|128:i)&255),!!s){for(let r=3;r<31;r=r+7){const a=e>>>r,o=!!(a>>>7),c=(o?a|128:a)&255;if(t.push(c),!o)return}t.push(e>>>31&1)}}const Oi=4294967296;function or(n){const e=n[0]==="-";e&&(n=n.slice(1));const t=1e6;let i=0,s=0;function r(a,o){const c=Number(n.slice(a,o));s*=t,i=i*t+c,i>=Oi&&(s=s+(i/Oi|0),i=i%Oi)}return r(-24,-18),r(-18,-12),r(-12,-6),r(-6),e?Ca(i,s):us(i,s)}function ld(n,e){let t=us(n,e);const i=t.hi&2147483648;i&&(t=Ca(t.lo,t.hi));const s=Ta(t.lo,t.hi);return i?"-"+s:s}function Ta(n,e){if({lo:n,hi:e}=dd(n,e),e<=2097151)return String(Oi*e+n);const t=n&16777215,i=(n>>>24|e<<8)&16777215,s=e>>16&65535;let r=t+i*6777216+s*6710656,a=i+s*8147497,o=s*2;const c=1e7;return r>=c&&(a+=Math.floor(r/c),r%=c),a>=c&&(o+=Math.floor(a/c),a%=c),o.toString()+cr(a)+cr(r)}function dd(n,e){return{lo:n>>>0,hi:e>>>0}}function us(n,e){return{lo:n|0,hi:e|0}}function Ca(n,e){return e=~e,n?n=~n+1:e+=1,us(n,e)}const cr=n=>{const e=String(n);return"0000000".slice(e.length)+e};function lr(n,e){if(n>=0){for(;n>127;)e.push(n&127|128),n=n>>>7;e.push(n)}else{for(let t=0;t<9;t++)e.push(n&127|128),n=n>>7;e.push(1)}}function ud(){let n=this.buf[this.pos++],e=n&127;if(!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<7,!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<14,!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<21,!(n&128))return this.assertBounds(),e;n=this.buf[this.pos++],e|=(n&15)<<28;for(let t=5;n&128&&t<10;t++)n=this.buf[this.pos++];if(n&128)throw new Error("invalid varint");return this.assertBounds(),e>>>0}function hd(){const n=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof n.getBigInt64=="function"&&typeof n.getBigUint64=="function"&&typeof n.setBigInt64=="function"&&typeof n.setBigUint64=="function"&&(typeof process!="object"||typeof rr!="object"||rr.BUF_BIGINT_DISABLE!=="1")){const s=BigInt("-9223372036854775808"),r=BigInt("9223372036854775807"),a=BigInt("0"),o=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(c){const l=typeof c=="bigint"?c:BigInt(c);if(l>r||lo||lme(/^-?[0-9]+$/.test(s),"int64 invalid: ".concat(s)),i=s=>me(/^[0-9]+$/.test(s),"uint64 invalid: ".concat(s));return{zero:"0",supported:!1,parse(s){return typeof s!="string"&&(s=s.toString()),t(s),s},uParse(s){return typeof s!="string"&&(s=s.toString()),i(s),s},enc(s){return typeof s!="string"&&(s=s.toString()),t(s),or(s)},uEnc(s){return typeof s!="string"&&(s=s.toString()),i(s),or(s)},dec(s,r){return ld(s,r)},uDec(s,r){return Ta(s,r)}}}const de=hd();var R;(function(n){n[n.DOUBLE=1]="DOUBLE",n[n.FLOAT=2]="FLOAT",n[n.INT64=3]="INT64",n[n.UINT64=4]="UINT64",n[n.INT32=5]="INT32",n[n.FIXED64=6]="FIXED64",n[n.FIXED32=7]="FIXED32",n[n.BOOL=8]="BOOL",n[n.STRING=9]="STRING",n[n.BYTES=12]="BYTES",n[n.UINT32=13]="UINT32",n[n.SFIXED32=15]="SFIXED32",n[n.SFIXED64=16]="SFIXED64",n[n.SINT32=17]="SINT32",n[n.SINT64=18]="SINT64"})(R||(R={}));var Ct;(function(n){n[n.BIGINT=0]="BIGINT",n[n.STRING=1]="STRING"})(Ct||(Ct={}));function mt(n,e,t){if(e===t)return!0;if(n==R.BYTES){if(!(e instanceof Uint8Array)||!(t instanceof Uint8Array)||e.length!==t.length)return!1;for(let i=0;i>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(Un(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return Ii(e),lr(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let t=this.textEncoder.encode(e);return this.uint32(t.byteLength),this.raw(t)}float(e){ga(e);let t=new Uint8Array(4);return new DataView(t.buffer).setFloat32(0,e,!0),this.raw(t)}double(e){let t=new Uint8Array(8);return new DataView(t.buffer).setFloat64(0,e,!0),this.raw(t)}fixed32(e){Un(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){Ii(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return Ii(e),e=(e<<1^e>>31)>>>0,lr(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),i=new DataView(t.buffer),s=de.enc(e);return i.setInt32(0,s.lo,!0),i.setInt32(4,s.hi,!0),this.raw(t)}fixed64(e){let t=new Uint8Array(8),i=new DataView(t.buffer),s=de.uEnc(e);return i.setInt32(0,s.lo,!0),i.setInt32(4,s.hi,!0),this.raw(t)}int64(e){let t=de.enc(e);return Tn(t.lo,t.hi,this.buf),this}sint64(e){let t=de.enc(e),i=t.hi>>31,s=t.lo<<1^i,r=(t.hi<<1|t.lo>>>31)^i;return Tn(s,r,this.buf),this}uint64(e){let t=de.uEnc(e);return Tn(t.lo,t.hi,this.buf),this}}class pd{constructor(e,t){this.varint64=cd,this.uint32=ud,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=t??new TextDecoder}tag(){let e=this.uint32(),t=e>>>3,i=e&7;if(t<=0||i<0||i>5)throw new Error("illegal tag: field no "+t+" wire type "+i);return[t,i]}skip(e,t){let i=this.pos;switch(e){case ge.Varint:for(;this.buf[this.pos++]&128;);break;case ge.Bit64:this.pos+=4;case ge.Bit32:this.pos+=4;break;case ge.LengthDelimited:let s=this.uint32();this.pos+=s;break;case ge.StartGroup:for(;;){const[r,a]=this.tag();if(a===ge.EndGroup){if(t!==void 0&&r!==t)throw new Error("invalid end group tag");break}this.skip(a,r)}break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(i,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return de.dec(...this.varint64())}uint64(){return de.uDec(...this.varint64())}sint64(){let[e,t]=this.varint64(),i=-(e&1);return e=(e>>>1|(t&1)<<31)^i,t=t>>>1^i,de.dec(e,t)}bool(){let[e,t]=this.varint64();return e!==0||t!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return de.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return de.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(){return this.textDecoder.decode(this.bytes())}}function md(n,e,t,i){let s;return{typeName:e,extendee:t,get field(){if(!s){const r=typeof i=="function"?i():i;r.name=e.split(".").pop(),r.jsonName="[".concat(e,"]"),s=n.util.newFieldList([r]).list()[0]}return s},runtime:n}}function Pa(n){const e=n.field.localName,t=Object.create(null);return t[e]=gd(n),[t,()=>t[e]]}function gd(n){const e=n.field;if(e.repeated)return[];if(e.default!==void 0)return e.default;switch(e.kind){case"enum":return e.T.values[0].no;case"scalar":return Gt(e.T,e.L);case"message":const t=e.T,i=new t;return t.fieldWrapper?t.fieldWrapper.unwrapField(i):i;case"map":throw"map fields are not allowed to be extensions"}}function vd(n,e){if(!e.repeated&&(e.kind=="enum"||e.kind=="scalar")){for(let t=n.length-1;t>=0;--t)if(n[t].no==e.no)return[n[t]];return[]}return n.filter(t=>t.no===e.no)}let ct="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),Xi=[];for(let n=0;n>4,a=r,s=2;break;case 2:t[i++]=(a&15)<<4|(r&60)>>2,a=r,s=3;break;case 3:t[i++]=(a&3)<<6|r,s=0;break}}if(s==1)throw Error("invalid base64 string.");return t.subarray(0,i)},enc(n){let e="",t=0,i,s=0;for(let r=0;r>2],s=(i&3)<<4,t=1;break;case 1:e+=ct[s|i>>4],s=(i&15)<<2,t=2;break;case 2:e+=ct[s|i>>6],e+=ct[i&63],t=0;break}return t&&(e+=ct[s],e+="=",t==1&&(e+="=")),e}};function bd(n,e,t){wa(e,n);const i=e.runtime.bin.makeReadOptions(t),s=vd(n.getType().runtime.bin.listUnknownFields(n),e.field),[r,a]=Pa(e);for(const o of s)e.runtime.bin.readField(r,i.readerFactory(o.data),e.field,o.wireType,i);return a()}function yd(n,e,t,i){wa(e,n);const s=e.runtime.bin.makeReadOptions(i),r=e.runtime.bin.makeWriteOptions(i);if(_a(n,e)){const l=n.getType().runtime.bin.listUnknownFields(n).filter(d=>d.no!=e.field.no);n.getType().runtime.bin.discardUnknownFields(n);for(const d of l)n.getType().runtime.bin.onUnknownField(n,d.no,d.wireType,d.data)}const a=r.writerFactory();let o=e.field;!o.opt&&!o.repeated&&(o.kind=="enum"||o.kind=="scalar")&&(o=Object.assign(Object.assign({},e.field),{opt:!0})),e.runtime.bin.writeField(o,t,a,r);const c=s.readerFactory(a.finish());for(;c.posi.no==e.field.no)}function wa(n,e){me(n.extendee.typeName==e.getType().typeName,"extension ".concat(n.typeName," can only be applied to message ").concat(n.extendee.typeName))}function Ra(n,e){const t=n.localName;if(n.repeated)return e[t].length>0;if(n.oneof)return e[n.oneof.localName].case===t;switch(n.kind){case"enum":case"scalar":return n.opt||n.req?e[t]!==void 0:n.kind=="enum"?e[t]!==n.T.values[0].no:!Sa(n.T,e[t]);case"message":return e[t]!==void 0;case"map":return Object.keys(e[t]).length>0}}function dr(n,e){const t=n.localName,i=!n.opt&&!n.req;if(n.repeated)e[t]=[];else if(n.oneof)e[n.oneof.localName]={case:void 0};else switch(n.kind){case"map":e[t]={};break;case"enum":e[t]=i?n.T.values[0].no:void 0;break;case"scalar":e[t]=i?Gt(n.T,n.L):void 0;break;case"message":e[t]=void 0;break}}function Et(n,e){if(n===null||typeof n!="object"||!Object.getOwnPropertyNames(ds.prototype).every(i=>i in n&&typeof n[i]=="function"))return!1;const t=n.getType();return t===null||typeof t!="function"||!("typeName"in t)||typeof t.typeName!="string"?!1:e===void 0?!0:t.typeName==e.typeName}function Ia(n,e){return Et(e)||!n.fieldWrapper?e:n.fieldWrapper.wrapField(e)}R.DOUBLE,R.FLOAT,R.INT64,R.UINT64,R.INT32,R.UINT32,R.BOOL,R.STRING,R.BYTES;const ur={ignoreUnknownFields:!1},hr={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function kd(n){return n?Object.assign(Object.assign({},ur),n):ur}function Td(n){return n?Object.assign(Object.assign({},hr),n):hr}const Ki=Symbol(),Di=Symbol();function Cd(){return{makeReadOptions:kd,makeWriteOptions:Td,readMessage(n,e,t,i){if(e==null||Array.isArray(e)||typeof e!="object")throw new Error("cannot decode message ".concat(n.typeName," from JSON: ").concat(et(e)));i=i??new n;const s=new Map,r=t.typeRegistry;for(const[a,o]of Object.entries(e)){const c=n.fields.findJsonName(a);if(c){if(c.oneof){if(o===null&&c.kind=="scalar")continue;const l=s.get(c.oneof);if(l!==void 0)throw new Error("cannot decode message ".concat(n.typeName,' from JSON: multiple keys for oneof "').concat(c.oneof.name,'" present: "').concat(l,'", "').concat(a,'"'));s.set(c.oneof,a)}fr(i,o,c,t,n)}else{let l=!1;if(r!=null&&r.findExtension&&a.startsWith("[")&&a.endsWith("]")){const d=r.findExtension(a.substring(1,a.length-1));if(d&&d.extendee.typeName==n.typeName){l=!0;const[f,p]=Pa(d);fr(f,o,d.field,t,d),yd(i,d,p(),t)}}if(!l&&!t.ignoreUnknownFields)throw new Error("cannot decode message ".concat(n.typeName,' from JSON: key "').concat(a,'" is unknown'))}}return i},writeMessage(n,e){const t=n.getType(),i={};let s;try{for(s of t.fields.byNumber()){if(!Ra(s,n)){if(s.req)throw"required field not set";if(!e.emitDefaultValues||!Pd(s))continue}const a=s.oneof?n[s.oneof.localName].value:n[s.localName],o=pr(s,a,e);o!==void 0&&(i[e.useProtoFieldName?s.name:s.jsonName]=o)}const r=e.typeRegistry;if(r!=null&&r.findExtensionFor)for(const a of t.runtime.bin.listUnknownFields(n)){const o=r.findExtensionFor(t.typeName,a.no);if(o&&_a(n,o)){const c=bd(n,o,e),l=pr(o.field,c,e);l!==void 0&&(i[o.field.jsonName]=l)}}}catch(r){const a=s?"cannot encode field ".concat(t.typeName,".").concat(s.name," to JSON"):"cannot encode message ".concat(t.typeName," to JSON"),o=r instanceof Error?r.message:String(r);throw new Error(a+(o.length>0?": ".concat(o):""))}return i},readScalar(n,e,t){return ci(n,e,t??Ct.BIGINT,!0)},writeScalar(n,e,t){if(e!==void 0&&(t||Sa(n,e)))return Mi(n,e)},debug:et}}function et(n){if(n===null)return"null";switch(typeof n){case"object":return Array.isArray(n)?"array":"object";case"string":return n.length>100?"string":'"'.concat(n.split('"').join('\\"'),'"');default:return String(n)}}function fr(n,e,t,i,s){let r=t.localName;if(t.repeated){if(me(t.kind!="map"),e===null)return;if(!Array.isArray(e))throw new Error("cannot decode field ".concat(s.typeName,".").concat(t.name," from JSON: ").concat(et(e)));const a=n[r];for(const o of e){if(o===null)throw new Error("cannot decode field ".concat(s.typeName,".").concat(t.name," from JSON: ").concat(et(o)));switch(t.kind){case"message":a.push(t.T.fromJson(o,i));break;case"enum":const c=Cn(t.T,o,i.ignoreUnknownFields,!0);c!==Di&&a.push(c);break;case"scalar":try{a.push(ci(t.T,o,t.L,!0))}catch(l){let d="cannot decode field ".concat(s.typeName,".").concat(t.name," from JSON: ").concat(et(o));throw l instanceof Error&&l.message.length>0&&(d+=": ".concat(l.message)),new Error(d)}break}}}else if(t.kind=="map"){if(e===null)return;if(typeof e!="object"||Array.isArray(e))throw new Error("cannot decode field ".concat(s.typeName,".").concat(t.name," from JSON: ").concat(et(e)));const a=n[r];for(const[o,c]of Object.entries(e)){if(c===null)throw new Error("cannot decode field ".concat(s.typeName,".").concat(t.name," from JSON: map value null"));let l;try{l=Sd(t.K,o)}catch(d){let f="cannot decode map key for field ".concat(s.typeName,".").concat(t.name," from JSON: ").concat(et(e));throw d instanceof Error&&d.message.length>0&&(f+=": ".concat(d.message)),new Error(f)}switch(t.V.kind){case"message":a[l]=t.V.T.fromJson(c,i);break;case"enum":const d=Cn(t.V.T,c,i.ignoreUnknownFields,!0);d!==Di&&(a[l]=d);break;case"scalar":try{a[l]=ci(t.V.T,c,Ct.BIGINT,!0)}catch(f){let p="cannot decode map value for field ".concat(s.typeName,".").concat(t.name," from JSON: ").concat(et(e));throw f instanceof Error&&f.message.length>0&&(p+=": ".concat(f.message)),new Error(p)}break}}}else switch(t.oneof&&(n=n[t.oneof.localName]={case:r},r="value"),t.kind){case"message":const a=t.T;if(e===null&&a.typeName!="google.protobuf.Value")return;let o=n[r];Et(o)?o.fromJson(e,i):(n[r]=o=a.fromJson(e,i),a.fieldWrapper&&!t.oneof&&(n[r]=a.fieldWrapper.unwrapField(o)));break;case"enum":const c=Cn(t.T,e,i.ignoreUnknownFields,!1);switch(c){case Ki:dr(t,n);break;case Di:break;default:n[r]=c;break}break;case"scalar":try{const l=ci(t.T,e,t.L,!1);switch(l){case Ki:dr(t,n);break;default:n[r]=l;break}}catch(l){let d="cannot decode field ".concat(s.typeName,".").concat(t.name," from JSON: ").concat(et(e));throw l instanceof Error&&l.message.length>0&&(d+=": ".concat(l.message)),new Error(d)}break}}function Sd(n,e){if(n===R.BOOL)switch(e){case"true":e=!0;break;case"false":e=!1;break}return ci(n,e,Ct.BIGINT,!0).toString()}function ci(n,e,t,i){if(e===null)return i?Gt(n,t):Ki;switch(n){case R.DOUBLE:case R.FLOAT:if(e==="NaN")return Number.NaN;if(e==="Infinity")return Number.POSITIVE_INFINITY;if(e==="-Infinity")return Number.NEGATIVE_INFINITY;if(e===""||typeof e=="string"&&e.trim().length!==e.length||typeof e!="string"&&typeof e!="number")break;const s=Number(e);if(Number.isNaN(s)||!Number.isFinite(s))break;return n==R.FLOAT&&ga(s),s;case R.INT32:case R.FIXED32:case R.SFIXED32:case R.SINT32:case R.UINT32:let r;if(typeof e=="number"?r=e:typeof e=="string"&&e.length>0&&e.trim().length===e.length&&(r=Number(e)),r===void 0)break;return n==R.UINT32||n==R.FIXED32?Un(r):Ii(r),r;case R.INT64:case R.SFIXED64:case R.SINT64:if(typeof e!="number"&&typeof e!="string")break;const a=de.parse(e);return t?a.toString():a;case R.FIXED64:case R.UINT64:if(typeof e!="number"&&typeof e!="string")break;const o=de.uParse(e);return t?o.toString():o;case R.BOOL:if(typeof e!="boolean")break;return e;case R.STRING:if(typeof e!="string")break;try{encodeURIComponent(e)}catch{throw new Error("invalid UTF8")}return e;case R.BYTES:if(e==="")return new Uint8Array(0);if(typeof e!="string")break;return Ea.dec(e)}throw new Error}function Cn(n,e,t,i){if(e===null)return n.typeName=="google.protobuf.NullValue"?0:i?n.values[0].no:Ki;switch(typeof e){case"number":if(Number.isInteger(e))return e;break;case"string":const s=n.findName(e);if(s!==void 0)return s.no;if(t)return Di;break}throw new Error("cannot decode enum ".concat(n.typeName," from JSON: ").concat(et(e)))}function Pd(n){return n.repeated||n.kind=="map"?!0:!(n.oneof||n.kind=="message"||n.opt||n.req)}function pr(n,e,t){if(n.kind=="map"){me(typeof e=="object"&&e!=null);const i={},s=Object.entries(e);switch(n.V.kind){case"scalar":for(const[a,o]of s)i[a.toString()]=Mi(n.V.T,o);break;case"message":for(const[a,o]of s)i[a.toString()]=o.toJson(t);break;case"enum":const r=n.V.T;for(const[a,o]of s)i[a.toString()]=Sn(r,o,t.enumAsInteger);break}return t.emitDefaultValues||s.length>0?i:void 0}if(n.repeated){me(Array.isArray(e));const i=[];switch(n.kind){case"scalar":for(let s=0;s0?i:void 0}switch(n.kind){case"scalar":return Mi(n.T,e);case"enum":return Sn(n.T,e,t.enumAsInteger);case"message":return Ia(n.T,e).toJson(t)}}function Sn(n,e,t){var i;if(me(typeof e=="number"),n.typeName=="google.protobuf.NullValue")return null;if(t)return e;const s=n.findNumber(e);return(i=s==null?void 0:s.name)!==null&&i!==void 0?i:e}function Mi(n,e){switch(n){case R.INT32:case R.SFIXED32:case R.SINT32:case R.FIXED32:case R.UINT32:return me(typeof e=="number"),e;case R.FLOAT:case R.DOUBLE:return me(typeof e=="number"),Number.isNaN(e)?"NaN":e===Number.POSITIVE_INFINITY?"Infinity":e===Number.NEGATIVE_INFINITY?"-Infinity":e;case R.STRING:return me(typeof e=="string"),e;case R.BOOL:return me(typeof e=="boolean"),e;case R.UINT64:case R.FIXED64:case R.INT64:case R.SFIXED64:case R.SINT64:return me(typeof e=="bigint"||typeof e=="string"||typeof e=="number"),e.toString();case R.BYTES:return me(e instanceof Uint8Array),Ea.enc(e)}}const xt=Symbol("@bufbuild/protobuf/unknown-fields"),mr={readUnknownFields:!0,readerFactory:n=>new pd(n)},gr={writeUnknownFields:!0,writerFactory:()=>new fd};function Ed(n){return n?Object.assign(Object.assign({},mr),n):mr}function _d(n){return n?Object.assign(Object.assign({},gr),n):gr}function wd(){return{makeReadOptions:Ed,makeWriteOptions:_d,listUnknownFields(n){var e;return(e=n[xt])!==null&&e!==void 0?e:[]},discardUnknownFields(n){delete n[xt]},writeUnknownFields(n,e){const i=n[xt];if(i)for(const s of i)e.tag(s.no,s.wireType).raw(s.data)},onUnknownField(n,e,t,i){const s=n;Array.isArray(s[xt])||(s[xt]=[]),s[xt].push({no:e,wireType:t,data:i})},readMessage(n,e,t,i,s){const r=n.getType(),a=s?e.len:e.pos+t;let o,c;for(;e.pos0&&(c=Id),r){let p=n[a];if(i==ge.LengthDelimited&&o!=R.STRING&&o!=R.BYTES){let y=e.uint32()+e.pos;for(;e.posEt(p,f)?p:new f(p));else{const p=a[s];f.fieldWrapper?f.typeName==="google.protobuf.BytesValue"?r[s]=Zt(p):r[s]=p:r[s]=Et(p,f)?p:new f(p)}break}}},equals(n,e,t){return e===t?!0:!e||!t?!1:n.fields.byMember().every(i=>{const s=e[i.localName],r=t[i.localName];if(i.repeated){if(s.length!==r.length)return!1;switch(i.kind){case"message":return s.every((a,o)=>i.T.equals(a,r[o]));case"scalar":return s.every((a,o)=>mt(i.T,a,r[o]));case"enum":return s.every((a,o)=>mt(R.INT32,a,r[o]))}throw new Error("repeated cannot contain ".concat(i.kind))}switch(i.kind){case"message":return i.T.equals(s,r);case"enum":return mt(R.INT32,s,r);case"scalar":return mt(i.T,s,r);case"oneof":if(s.case!==r.case)return!1;const a=i.findField(s.case);if(a===void 0)return!0;switch(a.kind){case"message":return a.T.equals(s.value,r.value);case"enum":return mt(R.INT32,s.value,r.value);case"scalar":return mt(a.T,s.value,r.value)}throw new Error("oneof cannot contain ".concat(a.kind));case"map":const o=Object.keys(s).concat(Object.keys(r));switch(i.V.kind){case"message":const c=i.V.T;return o.every(d=>c.equals(s[d],r[d]));case"enum":return o.every(d=>mt(R.INT32,s[d],r[d]));case"scalar":const l=i.V.T;return o.every(d=>mt(l,s[d],r[d]))}break}})},clone(n){const e=n.getType(),t=new e,i=t;for(const s of e.fields.byMember()){const r=n[s.localName];let a;if(s.repeated)a=r.map(Pi);else if(s.kind=="map"){a=i[s.localName];for(const[o,c]of Object.entries(r))a[o]=Pi(c)}else s.kind=="oneof"?a=s.findField(r.case)?{case:r.case,value:Pi(r.value)}:{case:void 0}:a=Pi(r);i[s.localName]=a}for(const s of e.runtime.bin.listUnknownFields(n))e.runtime.bin.onUnknownField(i,s.no,s.wireType,s.data);return t}}}function Pi(n){if(n===void 0)return n;if(Et(n))return n.clone();if(n instanceof Uint8Array){const e=new Uint8Array(n.byteLength);return e.set(n),e}return n}function Zt(n){return n instanceof Uint8Array?n:new Uint8Array(n)}function xd(n,e,t){return{syntax:n,json:Cd(),bin:wd(),util:Object.assign(Object.assign({},Md()),{newFieldList:e,initFields:t}),makeMessageType(i,s,r){return od(this,i,s,r)},makeEnum:ad,makeEnumType:ya,getEnumType:rd,makeExtension(i,s,r){return md(this,i,s,r)}}}class Ad{constructor(e,t){this._fields=e,this._normalizer=t}findJsonName(e){if(!this.jsonNames){const t={};for(const i of this.list())t[i.jsonName]=t[i.name]=i;this.jsonNames=t}return this.jsonNames[e]}find(e){if(!this.numbers){const t={};for(const i of this.list())t[i.no]=i;this.numbers=t}return this.numbers[e]}list(){return this.all||(this.all=this._normalizer(this._fields)),this.all}byNumber(){return this.numbersAsc||(this.numbersAsc=this.list().concat().sort((e,t)=>e.no-t.no)),this.numbersAsc}byMember(){if(!this.members){this.members=[];const e=this.members;let t;for(const i of this.list())i.oneof?i.oneof!==t&&(t=i.oneof,e.push(t)):e.push(i)}return this.members}}function Da(n,e){const t=Ma(n);return e?t:Bd(jd(t))}function Nd(n){return Da(n,!1)}const Ld=Ma;function Ma(n){let e=!1;const t=[];for(let i=0;i"".concat(n,"$"),jd=n=>Fd.has(n)?xa(n):n,Bd=n=>Ud.has(n)?xa(n):n;class Vd{constructor(e){this.kind="oneof",this.repeated=!1,this.packed=!1,this.opt=!1,this.req=!1,this.default=void 0,this.fields=[],this.name=e,this.localName=Nd(e)}addField(e){me(e.oneof===this,"field ".concat(e.name," not one of ").concat(this.name)),this.fields.push(e)}findField(e){if(!this._lookup){this._lookup=Object.create(null);for(let t=0;tnew Ad(n,e=>qd(e)),n=>{for(const e of n.getType().fields.byMember()){if(e.opt)continue;const t=e.localName,i=n;if(e.repeated){i[t]=[];continue}switch(e.kind){case"oneof":i[t]={case:void 0};break;case"enum":i[t]=0;break;case"map":i[t]={};break;case"scalar":i[t]=Gt(e.T,e.L);break}}});class Oe extends ds{constructor(e){super(),this.seconds=de.zero,this.nanos=0,T.util.initPartial(e,this)}fromJson(e,t){if(typeof e!="string")throw new Error("cannot decode google.protobuf.Timestamp from JSON: ".concat(T.json.debug(e)));const i=e.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:Z|\.([0-9]{3,9})Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!i)throw new Error("cannot decode google.protobuf.Timestamp from JSON: invalid RFC 3339 string");const s=Date.parse(i[1]+"-"+i[2]+"-"+i[3]+"T"+i[4]+":"+i[5]+":"+i[6]+(i[8]?i[8]:"Z"));if(Number.isNaN(s))throw new Error("cannot decode google.protobuf.Timestamp from JSON: invalid RFC 3339 string");if(sDate.parse("9999-12-31T23:59:59Z"))throw new Error("cannot decode message google.protobuf.Timestamp from JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive");return this.seconds=de.parse(s/1e3),this.nanos=0,i[7]&&(this.nanos=parseInt("1"+i[7]+"0".repeat(9-i[7].length))-1e9),this}toJson(e){const t=Number(this.seconds)*1e3;if(tDate.parse("9999-12-31T23:59:59Z"))throw new Error("cannot encode google.protobuf.Timestamp to JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive");if(this.nanos<0)throw new Error("cannot encode google.protobuf.Timestamp to JSON: nanos must not be negative");let i="Z";if(this.nanos>0){const s=(this.nanos+1e9).toString().substring(1);s.substring(3)==="000000"?i="."+s.substring(0,3)+"Z":s.substring(6)==="000"?i="."+s.substring(0,6)+"Z":i="."+s+"Z"}return new Date(t).toISOString().replace(".000Z",i)}toDate(){return new Date(Number(this.seconds)*1e3+Math.ceil(this.nanos/1e6))}static now(){return Oe.fromDate(new Date)}static fromDate(e){const t=e.getTime();return new Oe({seconds:de.parse(Math.floor(t/1e3)),nanos:t%1e3*1e6})}static fromBinary(e,t){return new Oe().fromBinary(e,t)}static fromJson(e,t){return new Oe().fromJson(e,t)}static fromJsonString(e,t){return new Oe().fromJsonString(e,t)}static equals(e,t){return T.util.equals(Oe,e,t)}}Oe.runtime=T;Oe.typeName="google.protobuf.Timestamp";Oe.fields=T.util.newFieldList(()=>[{no:1,name:"seconds",kind:"scalar",T:3},{no:2,name:"nanos",kind:"scalar",T:5}]);const Kd=T.makeMessageType("livekit.MetricsBatch",()=>[{no:1,name:"timestamp_ms",kind:"scalar",T:3},{no:2,name:"normalized_timestamp",kind:"message",T:Oe},{no:3,name:"str_data",kind:"scalar",T:9,repeated:!0},{no:4,name:"time_series",kind:"message",T:Gd,repeated:!0},{no:5,name:"events",kind:"message",T:zd,repeated:!0}]),Gd=T.makeMessageType("livekit.TimeSeriesMetric",()=>[{no:1,name:"label",kind:"scalar",T:13},{no:2,name:"participant_identity",kind:"scalar",T:13},{no:3,name:"track_sid",kind:"scalar",T:13},{no:4,name:"samples",kind:"message",T:Wd,repeated:!0},{no:5,name:"rid",kind:"scalar",T:13}]),Wd=T.makeMessageType("livekit.MetricSample",()=>[{no:1,name:"timestamp_ms",kind:"scalar",T:3},{no:2,name:"normalized_timestamp",kind:"message",T:Oe},{no:3,name:"value",kind:"scalar",T:2}]),zd=T.makeMessageType("livekit.EventMetric",()=>[{no:1,name:"label",kind:"scalar",T:13},{no:2,name:"participant_identity",kind:"scalar",T:13},{no:3,name:"track_sid",kind:"scalar",T:13},{no:4,name:"start_timestamp_ms",kind:"scalar",T:3},{no:5,name:"end_timestamp_ms",kind:"scalar",T:3,opt:!0},{no:6,name:"normalized_start_timestamp",kind:"message",T:Oe},{no:7,name:"normalized_end_timestamp",kind:"message",T:Oe,opt:!0},{no:8,name:"metadata",kind:"scalar",T:9},{no:9,name:"rid",kind:"scalar",T:13}]),Ge=T.makeEnum("livekit.TrackType",[{no:0,name:"AUDIO"},{no:1,name:"VIDEO"},{no:2,name:"DATA"}]),Re=T.makeEnum("livekit.TrackSource",[{no:0,name:"UNKNOWN"},{no:1,name:"CAMERA"},{no:2,name:"MICROPHONE"},{no:3,name:"SCREEN_SHARE"},{no:4,name:"SCREEN_SHARE_AUDIO"}]),hs=T.makeEnum("livekit.VideoQuality",[{no:0,name:"LOW"},{no:1,name:"MEDIUM"},{no:2,name:"HIGH"},{no:3,name:"OFF"}]),ri=T.makeEnum("livekit.ConnectionQuality",[{no:0,name:"POOR"},{no:1,name:"GOOD"},{no:2,name:"EXCELLENT"},{no:3,name:"LOST"}]),pi=T.makeEnum("livekit.ClientConfigSetting",[{no:0,name:"UNSET"},{no:1,name:"DISABLED"},{no:2,name:"ENABLED"}]),ze=T.makeEnum("livekit.DisconnectReason",[{no:0,name:"UNKNOWN_REASON"},{no:1,name:"CLIENT_INITIATED"},{no:2,name:"DUPLICATE_IDENTITY"},{no:3,name:"SERVER_SHUTDOWN"},{no:4,name:"PARTICIPANT_REMOVED"},{no:5,name:"ROOM_DELETED"},{no:6,name:"STATE_MISMATCH"},{no:7,name:"JOIN_FAILURE"},{no:8,name:"MIGRATION"},{no:9,name:"SIGNAL_CLOSE"},{no:10,name:"ROOM_CLOSED"},{no:11,name:"USER_UNAVAILABLE"},{no:12,name:"USER_REJECTED"},{no:13,name:"SIP_TRUNK_FAILURE"}]),At=T.makeEnum("livekit.ReconnectReason",[{no:0,name:"RR_UNKNOWN"},{no:1,name:"RR_SIGNAL_DISCONNECTED"},{no:2,name:"RR_PUBLISHER_FAILED"},{no:3,name:"RR_SUBSCRIBER_FAILED"},{no:4,name:"RR_SWITCH_CANDIDATE"}]),Hd=T.makeEnum("livekit.SubscriptionError",[{no:0,name:"SE_UNKNOWN"},{no:1,name:"SE_CODEC_UNSUPPORTED"},{no:2,name:"SE_TRACK_NOTFOUND"}]),tt=T.makeEnum("livekit.AudioTrackFeature",[{no:0,name:"TF_STEREO"},{no:1,name:"TF_NO_DTX"},{no:2,name:"TF_AUTO_GAIN_CONTROL"},{no:3,name:"TF_ECHO_CANCELLATION"},{no:4,name:"TF_NOISE_SUPPRESSION"},{no:5,name:"TF_ENHANCED_NOISE_CANCELLATION"}]),fs=T.makeMessageType("livekit.Room",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"empty_timeout",kind:"scalar",T:13},{no:14,name:"departure_timeout",kind:"scalar",T:13},{no:4,name:"max_participants",kind:"scalar",T:13},{no:5,name:"creation_time",kind:"scalar",T:3},{no:6,name:"turn_password",kind:"scalar",T:9},{no:7,name:"enabled_codecs",kind:"message",T:Wi,repeated:!0},{no:8,name:"metadata",kind:"scalar",T:9},{no:9,name:"num_participants",kind:"scalar",T:13},{no:11,name:"num_publishers",kind:"scalar",T:13},{no:10,name:"active_recording",kind:"scalar",T:8},{no:13,name:"version",kind:"message",T:Wa}]),Wi=T.makeMessageType("livekit.Codec",()=>[{no:1,name:"mime",kind:"scalar",T:9},{no:2,name:"fmtp_line",kind:"scalar",T:9}]),Jd=T.makeMessageType("livekit.ParticipantPermission",()=>[{no:1,name:"can_subscribe",kind:"scalar",T:8},{no:2,name:"can_publish",kind:"scalar",T:8},{no:3,name:"can_publish_data",kind:"scalar",T:8},{no:9,name:"can_publish_sources",kind:"enum",T:T.getEnumType(Re),repeated:!0},{no:7,name:"hidden",kind:"scalar",T:8},{no:8,name:"recorder",kind:"scalar",T:8},{no:10,name:"can_update_metadata",kind:"scalar",T:8},{no:11,name:"agent",kind:"scalar",T:8},{no:12,name:"can_subscribe_metrics",kind:"scalar",T:8}]),mi=T.makeMessageType("livekit.ParticipantInfo",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"identity",kind:"scalar",T:9},{no:3,name:"state",kind:"enum",T:T.getEnumType(Fn)},{no:4,name:"tracks",kind:"message",T:Ut,repeated:!0},{no:5,name:"metadata",kind:"scalar",T:9},{no:6,name:"joined_at",kind:"scalar",T:3},{no:9,name:"name",kind:"scalar",T:9},{no:10,name:"version",kind:"scalar",T:13},{no:11,name:"permission",kind:"message",T:Jd},{no:12,name:"region",kind:"scalar",T:9},{no:13,name:"is_publisher",kind:"scalar",T:8},{no:14,name:"kind",kind:"enum",T:T.getEnumType(zi)},{no:15,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:16,name:"disconnect_reason",kind:"enum",T:T.getEnumType(ze)}]),Fn=T.makeEnum("livekit.ParticipantInfo.State",[{no:0,name:"JOINING"},{no:1,name:"JOINED"},{no:2,name:"ACTIVE"},{no:3,name:"DISCONNECTED"}]),zi=T.makeEnum("livekit.ParticipantInfo.Kind",[{no:0,name:"STANDARD"},{no:1,name:"INGRESS"},{no:2,name:"EGRESS"},{no:3,name:"SIP"},{no:4,name:"AGENT"}]),Ae=T.makeEnum("livekit.Encryption.Type",[{no:0,name:"NONE"},{no:1,name:"GCM"},{no:2,name:"CUSTOM"}]),$d=T.makeMessageType("livekit.SimulcastCodecInfo",()=>[{no:1,name:"mime_type",kind:"scalar",T:9},{no:2,name:"mid",kind:"scalar",T:9},{no:3,name:"cid",kind:"scalar",T:9},{no:4,name:"layers",kind:"message",T:_t,repeated:!0}]),Ut=T.makeMessageType("livekit.TrackInfo",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"type",kind:"enum",T:T.getEnumType(Ge)},{no:3,name:"name",kind:"scalar",T:9},{no:4,name:"muted",kind:"scalar",T:8},{no:5,name:"width",kind:"scalar",T:13},{no:6,name:"height",kind:"scalar",T:13},{no:7,name:"simulcast",kind:"scalar",T:8},{no:8,name:"disable_dtx",kind:"scalar",T:8},{no:9,name:"source",kind:"enum",T:T.getEnumType(Re)},{no:10,name:"layers",kind:"message",T:_t,repeated:!0},{no:11,name:"mime_type",kind:"scalar",T:9},{no:12,name:"mid",kind:"scalar",T:9},{no:13,name:"codecs",kind:"message",T:$d,repeated:!0},{no:14,name:"stereo",kind:"scalar",T:8},{no:15,name:"disable_red",kind:"scalar",T:8},{no:16,name:"encryption",kind:"enum",T:T.getEnumType(Ae)},{no:17,name:"stream",kind:"scalar",T:9},{no:18,name:"version",kind:"message",T:Wa},{no:19,name:"audio_features",kind:"enum",T:T.getEnumType(tt),repeated:!0}]),_t=T.makeMessageType("livekit.VideoLayer",()=>[{no:1,name:"quality",kind:"enum",T:T.getEnumType(hs)},{no:2,name:"width",kind:"scalar",T:13},{no:3,name:"height",kind:"scalar",T:13},{no:4,name:"bitrate",kind:"scalar",T:13},{no:5,name:"ssrc",kind:"scalar",T:13}]),vt=T.makeMessageType("livekit.DataPacket",()=>[{no:1,name:"kind",kind:"enum",T:T.getEnumType(ae)},{no:4,name:"participant_identity",kind:"scalar",T:9},{no:5,name:"destination_identities",kind:"scalar",T:9,repeated:!0},{no:2,name:"user",kind:"message",T:Na,oneof:"value"},{no:3,name:"speaker",kind:"message",T:Qd,oneof:"value"},{no:6,name:"sip_dtmf",kind:"message",T:La,oneof:"value"},{no:7,name:"transcription",kind:"message",T:Yd,oneof:"value"},{no:8,name:"metrics",kind:"message",T:Kd,oneof:"value"},{no:9,name:"chat_message",kind:"message",T:jn,oneof:"value"},{no:10,name:"rpc_request",kind:"message",T:Ua,oneof:"value"},{no:11,name:"rpc_ack",kind:"message",T:Fa,oneof:"value"},{no:12,name:"rpc_response",kind:"message",T:ja,oneof:"value"},{no:13,name:"stream_header",kind:"message",T:ru,oneof:"value"},{no:14,name:"stream_chunk",kind:"message",T:au,oneof:"value"}]),ae=T.makeEnum("livekit.DataPacket.Kind",[{no:0,name:"RELIABLE"},{no:1,name:"LOSSY"}]),Qd=T.makeMessageType("livekit.ActiveSpeakerUpdate",()=>[{no:1,name:"speakers",kind:"message",T:Aa,repeated:!0}]),Aa=T.makeMessageType("livekit.SpeakerInfo",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"level",kind:"scalar",T:2},{no:3,name:"active",kind:"scalar",T:8}]),Na=T.makeMessageType("livekit.UserPacket",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:5,name:"participant_identity",kind:"scalar",T:9},{no:2,name:"payload",kind:"scalar",T:12},{no:3,name:"destination_sids",kind:"scalar",T:9,repeated:!0},{no:6,name:"destination_identities",kind:"scalar",T:9,repeated:!0},{no:4,name:"topic",kind:"scalar",T:9,opt:!0},{no:8,name:"id",kind:"scalar",T:9,opt:!0},{no:9,name:"start_time",kind:"scalar",T:4,opt:!0},{no:10,name:"end_time",kind:"scalar",T:4,opt:!0}]),La=T.makeMessageType("livekit.SipDTMF",()=>[{no:3,name:"code",kind:"scalar",T:13},{no:4,name:"digit",kind:"scalar",T:9}]),Yd=T.makeMessageType("livekit.Transcription",()=>[{no:2,name:"transcribed_participant_identity",kind:"scalar",T:9},{no:3,name:"track_id",kind:"scalar",T:9},{no:4,name:"segments",kind:"message",T:Xd,repeated:!0}]),Xd=T.makeMessageType("livekit.TranscriptionSegment",()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"start_time",kind:"scalar",T:4},{no:4,name:"end_time",kind:"scalar",T:4},{no:5,name:"final",kind:"scalar",T:8},{no:6,name:"language",kind:"scalar",T:9}]),jn=T.makeMessageType("livekit.ChatMessage",()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"timestamp",kind:"scalar",T:3},{no:3,name:"edit_timestamp",kind:"scalar",T:3,opt:!0},{no:4,name:"message",kind:"scalar",T:9},{no:5,name:"deleted",kind:"scalar",T:8},{no:6,name:"generated",kind:"scalar",T:8}]),Ua=T.makeMessageType("livekit.RpcRequest",()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"method",kind:"scalar",T:9},{no:3,name:"payload",kind:"scalar",T:9},{no:4,name:"response_timeout_ms",kind:"scalar",T:13},{no:5,name:"version",kind:"scalar",T:13}]),Fa=T.makeMessageType("livekit.RpcAck",()=>[{no:1,name:"request_id",kind:"scalar",T:9}]),ja=T.makeMessageType("livekit.RpcResponse",()=>[{no:1,name:"request_id",kind:"scalar",T:9},{no:2,name:"payload",kind:"scalar",T:9,oneof:"value"},{no:3,name:"error",kind:"message",T:Ba,oneof:"value"}]),Ba=T.makeMessageType("livekit.RpcError",()=>[{no:1,name:"code",kind:"scalar",T:13},{no:2,name:"message",kind:"scalar",T:9},{no:3,name:"data",kind:"scalar",T:9}]),Va=T.makeMessageType("livekit.ParticipantTracks",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"track_sids",kind:"scalar",T:9,repeated:!0}]),Zd=T.makeMessageType("livekit.ServerInfo",()=>[{no:1,name:"edition",kind:"enum",T:T.getEnumType(qa)},{no:2,name:"version",kind:"scalar",T:9},{no:3,name:"protocol",kind:"scalar",T:5},{no:4,name:"region",kind:"scalar",T:9},{no:5,name:"node_id",kind:"scalar",T:9},{no:6,name:"debug_info",kind:"scalar",T:9},{no:7,name:"agent_protocol",kind:"scalar",T:5}]),qa=T.makeEnum("livekit.ServerInfo.Edition",[{no:0,name:"Standard"},{no:1,name:"Cloud"}]),eu=T.makeMessageType("livekit.ClientInfo",()=>[{no:1,name:"sdk",kind:"enum",T:T.getEnumType(Ka)},{no:2,name:"version",kind:"scalar",T:9},{no:3,name:"protocol",kind:"scalar",T:5},{no:4,name:"os",kind:"scalar",T:9},{no:5,name:"os_version",kind:"scalar",T:9},{no:6,name:"device_model",kind:"scalar",T:9},{no:7,name:"browser",kind:"scalar",T:9},{no:8,name:"browser_version",kind:"scalar",T:9},{no:9,name:"address",kind:"scalar",T:9},{no:10,name:"network",kind:"scalar",T:9},{no:11,name:"other_sdks",kind:"scalar",T:9}]),Ka=T.makeEnum("livekit.ClientInfo.SDK",[{no:0,name:"UNKNOWN"},{no:1,name:"JS"},{no:2,name:"SWIFT"},{no:3,name:"ANDROID"},{no:4,name:"FLUTTER"},{no:5,name:"GO"},{no:6,name:"UNITY"},{no:7,name:"REACT_NATIVE"},{no:8,name:"RUST"},{no:9,name:"PYTHON"},{no:10,name:"CPP"},{no:11,name:"UNITY_WEB"},{no:12,name:"NODE"}]),Ga=T.makeMessageType("livekit.ClientConfiguration",()=>[{no:1,name:"video",kind:"message",T:kr},{no:2,name:"screen",kind:"message",T:kr},{no:3,name:"resume_connection",kind:"enum",T:T.getEnumType(pi)},{no:4,name:"disabled_codecs",kind:"message",T:tu},{no:5,name:"force_relay",kind:"enum",T:T.getEnumType(pi)}]),kr=T.makeMessageType("livekit.VideoConfiguration",()=>[{no:1,name:"hardware_encoder",kind:"enum",T:T.getEnumType(pi)}]),tu=T.makeMessageType("livekit.DisabledCodecs",()=>[{no:1,name:"codecs",kind:"message",T:Wi,repeated:!0},{no:2,name:"publish",kind:"message",T:Wi,repeated:!0}]),Wa=T.makeMessageType("livekit.TimedVersion",()=>[{no:1,name:"unix_micro",kind:"scalar",T:3},{no:2,name:"ticks",kind:"scalar",T:5}]),iu=T.makeEnum("livekit.DataStream.OperationType",[{no:0,name:"CREATE"},{no:1,name:"UPDATE"},{no:2,name:"DELETE"},{no:3,name:"REACTION"}]),nu=T.makeMessageType("livekit.DataStream.TextHeader",()=>[{no:1,name:"operation_type",kind:"enum",T:T.getEnumType(iu)},{no:2,name:"version",kind:"scalar",T:5},{no:3,name:"reply_to_stream_id",kind:"scalar",T:9},{no:4,name:"attached_stream_ids",kind:"scalar",T:9,repeated:!0},{no:5,name:"generated",kind:"scalar",T:8}],{localName:"DataStream_TextHeader"}),su=T.makeMessageType("livekit.DataStream.FileHeader",()=>[{no:1,name:"file_name",kind:"scalar",T:9}],{localName:"DataStream_FileHeader"}),ru=T.makeMessageType("livekit.DataStream.Header",()=>[{no:1,name:"stream_id",kind:"scalar",T:9},{no:2,name:"timestamp",kind:"scalar",T:3},{no:3,name:"topic",kind:"scalar",T:9},{no:4,name:"mime_type",kind:"scalar",T:9},{no:5,name:"total_length",kind:"scalar",T:4,opt:!0},{no:6,name:"total_chunks",kind:"scalar",T:4,opt:!0},{no:7,name:"encryption_type",kind:"enum",T:T.getEnumType(Ae)},{no:8,name:"extensions",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:9,name:"text_header",kind:"message",T:nu,oneof:"content_header"},{no:10,name:"file_header",kind:"message",T:su,oneof:"content_header"}],{localName:"DataStream_Header"}),au=T.makeMessageType("livekit.DataStream.Chunk",()=>[{no:1,name:"stream_id",kind:"scalar",T:9},{no:2,name:"chunk_index",kind:"scalar",T:4},{no:3,name:"content",kind:"scalar",T:12},{no:4,name:"complete",kind:"scalar",T:8},{no:5,name:"version",kind:"scalar",T:5},{no:6,name:"iv",kind:"scalar",T:12,opt:!0}],{localName:"DataStream_Chunk"}),We=T.makeEnum("livekit.SignalTarget",[{no:0,name:"PUBLISHER"},{no:1,name:"SUBSCRIBER"}]),Bn=T.makeEnum("livekit.StreamState",[{no:0,name:"ACTIVE"},{no:1,name:"PAUSED"}]),ou=T.makeEnum("livekit.CandidateProtocol",[{no:0,name:"UDP"},{no:1,name:"TCP"},{no:2,name:"TLS"}]),cu=T.makeMessageType("livekit.SignalRequest",()=>[{no:1,name:"offer",kind:"message",T:wt,oneof:"message"},{no:2,name:"answer",kind:"message",T:wt,oneof:"message"},{no:3,name:"trickle",kind:"message",T:ps,oneof:"message"},{no:4,name:"add_track",kind:"message",T:qn,oneof:"message"},{no:5,name:"mute",kind:"message",T:ms,oneof:"message"},{no:6,name:"subscription",kind:"message",T:Zi,oneof:"message"},{no:7,name:"track_setting",kind:"message",T:za,oneof:"message"},{no:8,name:"leave",kind:"message",T:en,oneof:"message"},{no:10,name:"update_layers",kind:"message",T:Ja,oneof:"message"},{no:11,name:"subscription_permission",kind:"message",T:Xa,oneof:"message"},{no:12,name:"sync_state",kind:"message",T:Za,oneof:"message"},{no:13,name:"simulate",kind:"message",T:Ze,oneof:"message"},{no:14,name:"ping",kind:"scalar",T:3,oneof:"message"},{no:15,name:"update_metadata",kind:"message",T:$a,oneof:"message"},{no:16,name:"ping_req",kind:"message",T:to,oneof:"message"},{no:17,name:"update_audio_track",kind:"message",T:Ha,oneof:"message"},{no:18,name:"update_video_track",kind:"message",T:fu,oneof:"message"}]),Tr=T.makeMessageType("livekit.SignalResponse",()=>[{no:1,name:"join",kind:"message",T:lu,oneof:"message"},{no:2,name:"answer",kind:"message",T:wt,oneof:"message"},{no:3,name:"offer",kind:"message",T:wt,oneof:"message"},{no:4,name:"trickle",kind:"message",T:ps,oneof:"message"},{no:5,name:"update",kind:"message",T:hu,oneof:"message"},{no:6,name:"track_published",kind:"message",T:gs,oneof:"message"},{no:8,name:"leave",kind:"message",T:en,oneof:"message"},{no:9,name:"mute",kind:"message",T:ms,oneof:"message"},{no:10,name:"speakers_changed",kind:"message",T:pu,oneof:"message"},{no:11,name:"room_update",kind:"message",T:mu,oneof:"message"},{no:12,name:"connection_quality",kind:"message",T:vu,oneof:"message"},{no:13,name:"stream_state_update",kind:"message",T:yu,oneof:"message"},{no:14,name:"subscribed_quality_update",kind:"message",T:Tu,oneof:"message"},{no:15,name:"subscription_permission_update",kind:"message",T:Cu,oneof:"message"},{no:16,name:"refresh_token",kind:"scalar",T:9,oneof:"message"},{no:17,name:"track_unpublished",kind:"message",T:uu,oneof:"message"},{no:18,name:"pong",kind:"scalar",T:3,oneof:"message"},{no:19,name:"reconnect",kind:"message",T:du,oneof:"message"},{no:20,name:"pong_resp",kind:"message",T:Su,oneof:"message"},{no:21,name:"subscription_response",kind:"message",T:_u,oneof:"message"},{no:22,name:"request_response",kind:"message",T:wu,oneof:"message"},{no:23,name:"track_subscribed",kind:"message",T:Ru,oneof:"message"}]),Vn=T.makeMessageType("livekit.SimulcastCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"cid",kind:"scalar",T:9}]),qn=T.makeMessageType("livekit.AddTrackRequest",()=>[{no:1,name:"cid",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"type",kind:"enum",T:T.getEnumType(Ge)},{no:4,name:"width",kind:"scalar",T:13},{no:5,name:"height",kind:"scalar",T:13},{no:6,name:"muted",kind:"scalar",T:8},{no:7,name:"disable_dtx",kind:"scalar",T:8},{no:8,name:"source",kind:"enum",T:T.getEnumType(Re)},{no:9,name:"layers",kind:"message",T:_t,repeated:!0},{no:10,name:"simulcast_codecs",kind:"message",T:Vn,repeated:!0},{no:11,name:"sid",kind:"scalar",T:9},{no:12,name:"stereo",kind:"scalar",T:8},{no:13,name:"disable_red",kind:"scalar",T:8},{no:14,name:"encryption",kind:"enum",T:T.getEnumType(Ae)},{no:15,name:"stream",kind:"scalar",T:9}]),ps=T.makeMessageType("livekit.TrickleRequest",()=>[{no:1,name:"candidateInit",kind:"scalar",T:9},{no:2,name:"target",kind:"enum",T:T.getEnumType(We)},{no:3,name:"final",kind:"scalar",T:8}]),ms=T.makeMessageType("livekit.MuteTrackRequest",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"muted",kind:"scalar",T:8}]),lu=T.makeMessageType("livekit.JoinResponse",()=>[{no:1,name:"room",kind:"message",T:fs},{no:2,name:"participant",kind:"message",T:mi},{no:3,name:"other_participants",kind:"message",T:mi,repeated:!0},{no:4,name:"server_version",kind:"scalar",T:9},{no:5,name:"ice_servers",kind:"message",T:Qa,repeated:!0},{no:6,name:"subscriber_primary",kind:"scalar",T:8},{no:7,name:"alternative_url",kind:"scalar",T:9},{no:8,name:"client_configuration",kind:"message",T:Ga},{no:9,name:"server_region",kind:"scalar",T:9},{no:10,name:"ping_timeout",kind:"scalar",T:5},{no:11,name:"ping_interval",kind:"scalar",T:5},{no:12,name:"server_info",kind:"message",T:Zd},{no:13,name:"sif_trailer",kind:"scalar",T:12},{no:14,name:"enabled_publish_codecs",kind:"message",T:Wi,repeated:!0},{no:15,name:"fast_publish",kind:"scalar",T:8}]),du=T.makeMessageType("livekit.ReconnectResponse",()=>[{no:1,name:"ice_servers",kind:"message",T:Qa,repeated:!0},{no:2,name:"client_configuration",kind:"message",T:Ga}]),gs=T.makeMessageType("livekit.TrackPublishedResponse",()=>[{no:1,name:"cid",kind:"scalar",T:9},{no:2,name:"track",kind:"message",T:Ut}]),uu=T.makeMessageType("livekit.TrackUnpublishedResponse",()=>[{no:1,name:"track_sid",kind:"scalar",T:9}]),wt=T.makeMessageType("livekit.SessionDescription",()=>[{no:1,name:"type",kind:"scalar",T:9},{no:2,name:"sdp",kind:"scalar",T:9}]),hu=T.makeMessageType("livekit.ParticipantUpdate",()=>[{no:1,name:"participants",kind:"message",T:mi,repeated:!0}]),Zi=T.makeMessageType("livekit.UpdateSubscription",()=>[{no:1,name:"track_sids",kind:"scalar",T:9,repeated:!0},{no:2,name:"subscribe",kind:"scalar",T:8},{no:3,name:"participant_tracks",kind:"message",T:Va,repeated:!0}]),za=T.makeMessageType("livekit.UpdateTrackSettings",()=>[{no:1,name:"track_sids",kind:"scalar",T:9,repeated:!0},{no:3,name:"disabled",kind:"scalar",T:8},{no:4,name:"quality",kind:"enum",T:T.getEnumType(hs)},{no:5,name:"width",kind:"scalar",T:13},{no:6,name:"height",kind:"scalar",T:13},{no:7,name:"fps",kind:"scalar",T:13},{no:8,name:"priority",kind:"scalar",T:13}]),Ha=T.makeMessageType("livekit.UpdateLocalAudioTrack",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"features",kind:"enum",T:T.getEnumType(tt),repeated:!0}]),fu=T.makeMessageType("livekit.UpdateLocalVideoTrack",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"width",kind:"scalar",T:13},{no:3,name:"height",kind:"scalar",T:13}]),en=T.makeMessageType("livekit.LeaveRequest",()=>[{no:1,name:"can_reconnect",kind:"scalar",T:8},{no:2,name:"reason",kind:"enum",T:T.getEnumType(ze)},{no:3,name:"action",kind:"enum",T:T.getEnumType(jt)},{no:4,name:"regions",kind:"message",T:Pu}]),jt=T.makeEnum("livekit.LeaveRequest.Action",[{no:0,name:"DISCONNECT"},{no:1,name:"RESUME"},{no:2,name:"RECONNECT"}]),Ja=T.makeMessageType("livekit.UpdateVideoLayers",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"layers",kind:"message",T:_t,repeated:!0}]),$a=T.makeMessageType("livekit.UpdateParticipantMetadata",()=>[{no:1,name:"metadata",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:4,name:"request_id",kind:"scalar",T:13}]),Qa=T.makeMessageType("livekit.ICEServer",()=>[{no:1,name:"urls",kind:"scalar",T:9,repeated:!0},{no:2,name:"username",kind:"scalar",T:9},{no:3,name:"credential",kind:"scalar",T:9}]),pu=T.makeMessageType("livekit.SpeakersChanged",()=>[{no:1,name:"speakers",kind:"message",T:Aa,repeated:!0}]),mu=T.makeMessageType("livekit.RoomUpdate",()=>[{no:1,name:"room",kind:"message",T:fs}]),gu=T.makeMessageType("livekit.ConnectionQualityInfo",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"quality",kind:"enum",T:T.getEnumType(ri)},{no:3,name:"score",kind:"scalar",T:2}]),vu=T.makeMessageType("livekit.ConnectionQualityUpdate",()=>[{no:1,name:"updates",kind:"message",T:gu,repeated:!0}]),bu=T.makeMessageType("livekit.StreamStateInfo",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"track_sid",kind:"scalar",T:9},{no:3,name:"state",kind:"enum",T:T.getEnumType(Bn)}]),yu=T.makeMessageType("livekit.StreamStateUpdate",()=>[{no:1,name:"stream_states",kind:"message",T:bu,repeated:!0}]),vs=T.makeMessageType("livekit.SubscribedQuality",()=>[{no:1,name:"quality",kind:"enum",T:T.getEnumType(hs)},{no:2,name:"enabled",kind:"scalar",T:8}]),ku=T.makeMessageType("livekit.SubscribedCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"qualities",kind:"message",T:vs,repeated:!0}]),Tu=T.makeMessageType("livekit.SubscribedQualityUpdate",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"subscribed_qualities",kind:"message",T:vs,repeated:!0},{no:3,name:"subscribed_codecs",kind:"message",T:ku,repeated:!0}]),Ya=T.makeMessageType("livekit.TrackPermission",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"all_tracks",kind:"scalar",T:8},{no:3,name:"track_sids",kind:"scalar",T:9,repeated:!0},{no:4,name:"participant_identity",kind:"scalar",T:9}]),Xa=T.makeMessageType("livekit.SubscriptionPermission",()=>[{no:1,name:"all_participants",kind:"scalar",T:8},{no:2,name:"track_permissions",kind:"message",T:Ya,repeated:!0}]),Cu=T.makeMessageType("livekit.SubscriptionPermissionUpdate",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"track_sid",kind:"scalar",T:9},{no:3,name:"allowed",kind:"scalar",T:8}]),Za=T.makeMessageType("livekit.SyncState",()=>[{no:1,name:"answer",kind:"message",T:wt},{no:2,name:"subscription",kind:"message",T:Zi},{no:3,name:"publish_tracks",kind:"message",T:gs,repeated:!0},{no:4,name:"data_channels",kind:"message",T:eo,repeated:!0},{no:5,name:"offer",kind:"message",T:wt},{no:6,name:"track_sids_disabled",kind:"scalar",T:9,repeated:!0}]),eo=T.makeMessageType("livekit.DataChannelInfo",()=>[{no:1,name:"label",kind:"scalar",T:9},{no:2,name:"id",kind:"scalar",T:13},{no:3,name:"target",kind:"enum",T:T.getEnumType(We)}]),Ze=T.makeMessageType("livekit.SimulateScenario",()=>[{no:1,name:"speaker_update",kind:"scalar",T:5,oneof:"scenario"},{no:2,name:"node_failure",kind:"scalar",T:8,oneof:"scenario"},{no:3,name:"migration",kind:"scalar",T:8,oneof:"scenario"},{no:4,name:"server_leave",kind:"scalar",T:8,oneof:"scenario"},{no:5,name:"switch_candidate_protocol",kind:"enum",T:T.getEnumType(ou),oneof:"scenario"},{no:6,name:"subscriber_bandwidth",kind:"scalar",T:3,oneof:"scenario"},{no:7,name:"disconnect_signal_on_resume",kind:"scalar",T:8,oneof:"scenario"},{no:8,name:"disconnect_signal_on_resume_no_messages",kind:"scalar",T:8,oneof:"scenario"},{no:9,name:"leave_request_full_reconnect",kind:"scalar",T:8,oneof:"scenario"}]),to=T.makeMessageType("livekit.Ping",()=>[{no:1,name:"timestamp",kind:"scalar",T:3},{no:2,name:"rtt",kind:"scalar",T:3}]),Su=T.makeMessageType("livekit.Pong",()=>[{no:1,name:"last_ping_timestamp",kind:"scalar",T:3},{no:2,name:"timestamp",kind:"scalar",T:3}]),Pu=T.makeMessageType("livekit.RegionSettings",()=>[{no:1,name:"regions",kind:"message",T:Eu,repeated:!0}]),Eu=T.makeMessageType("livekit.RegionInfo",()=>[{no:1,name:"region",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"distance",kind:"scalar",T:3}]),_u=T.makeMessageType("livekit.SubscriptionResponse",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"err",kind:"enum",T:T.getEnumType(Hd)}]),wu=T.makeMessageType("livekit.RequestResponse",()=>[{no:1,name:"request_id",kind:"scalar",T:13},{no:2,name:"reason",kind:"enum",T:T.getEnumType(io)},{no:3,name:"message",kind:"scalar",T:9}]),io=T.makeEnum("livekit.RequestResponse.Reason",[{no:0,name:"OK"},{no:1,name:"NOT_FOUND"},{no:2,name:"NOT_ALLOWED"},{no:3,name:"LIMIT_EXCEEDED"}]),Ru=T.makeMessageType("livekit.TrackSubscribed",()=>[{no:1,name:"track_sid",kind:"scalar",T:9}]);function Iu(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Ai={exports:{}},Ou=Ai.exports,Cr;function Du(){return Cr||(Cr=1,function(n){(function(e,t){n.exports?n.exports=t():e.log=t()})(Ou,function(){var e=function(){},t="undefined",i=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),s=["trace","debug","info","warn","error"],r={},a=null;function o(C,_){var b=C[_];if(typeof b.bind=="function")return b.bind(C);try{return Function.prototype.bind.call(b,C)}catch{return function(){return Function.prototype.apply.apply(b,[C,arguments])}}}function c(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function l(C){return C==="debug"&&(C="log"),typeof console===t?!1:C==="trace"&&i?c:console[C]!==void 0?o(console,C):console.log!==void 0?o(console,"log"):e}function d(){for(var C=this.getLevel(),_=0;_=0&&B<=b.levels.SILENT)return B;throw new TypeError("log.setLevel() called with invalid level: "+q)}b.name=C,b.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},b.methodFactory=_||p,b.getLevel=function(){return P??W??G},b.setLevel=function(q,B){return P=M(q),B!==!1&&w(P),d.call(b)},b.setDefaultLevel=function(q){W=M(q),S()||b.setLevel(q,!1)},b.resetLevel=function(){P=null,I(),d.call(b)},b.enableAll=function(q){b.setLevel(b.levels.TRACE,q)},b.disableAll=function(q){b.setLevel(b.levels.SILENT,q)},b.rebuild=function(){if(a!==b&&(G=M(a.getLevel())),d.call(b),a===b)for(var q in r)r[q].rebuild()},G=M(a?a.getLevel():"WARN");var A=S();A!=null&&(P=M(A)),d.call(b)}a=new m,a.getLogger=function(_){if(typeof _!="symbol"&&typeof _!="string"||_==="")throw new TypeError("You must supply a name when creating a logger.");var b=r[_];return b||(b=r[_]=new m(_,a.methodFactory)),b};var y=typeof window!==t?window.log:void 0;return a.noConflict=function(){return typeof window!==t&&window.log===a&&(window.log=y),a},a.getLoggers=function(){return r},a.default=a,a})}(Ai)),Ai.exports}var tn=Du(),Kn;(function(n){n[n.trace=0]="trace",n[n.debug=1]="debug",n[n.info=2]="info",n[n.warn=3]="warn",n[n.error=4]="error",n[n.silent=5]="silent"})(Kn||(Kn={}));var Je;(function(n){n.Default="livekit",n.Room="livekit-room",n.Participant="livekit-participant",n.Track="livekit-track",n.Publication="livekit-track-publication",n.Engine="livekit-engine",n.Signal="livekit-signal",n.PCManager="livekit-pc-manager",n.PCTransport="livekit-pc-transport",n.E2EE="lk-e2ee"})(Je||(Je={}));let Z=tn.getLogger("livekit");Object.values(Je).map(n=>tn.getLogger(n));Z.setDefaultLevel(Kn.info);function dt(n){const e=tn.getLogger(n);return e.setDefaultLevel(Z.getLevel()),e}const Mu=tn.getLogger("lk-e2ee"),ei=7e3,xu=[0,300,2*2*300,3*3*300,4*4*300,ei,ei,ei,ei,ei];class Au{constructor(e){this._retryDelays=e!==void 0?[...e]:xu}nextRetryDelayInMs(e){if(e.retryCount>=this._retryDelays.length)return null;const t=this._retryDelays[e.retryCount];return e.retryCount<=1?t:t+Math.random()*1e3}}function g(n,e,t,i){function s(r){return r instanceof t?r:new t(function(a){a(r)})}return new(t||(t=Promise))(function(r,a){function o(d){try{l(i.next(d))}catch(f){a(f)}}function c(d){try{l(i.throw(d))}catch(f){a(f)}}function l(d){d.done?r(d.value):s(d.value).then(o,c)}l((i=i.apply(n,e||[])).next())})}function Sr(n){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&n[e],i=0;if(t)return t.call(n);if(n&&typeof n.length=="number")return{next:function(){return n&&i>=n.length&&(n=void 0),{value:n&&n[i++],done:!n}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function Lt(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=n[Symbol.asyncIterator],t;return e?e.call(n):(n=typeof Sr=="function"?Sr(n):n[Symbol.iterator](),t={},i("next"),i("throw"),i("return"),t[Symbol.asyncIterator]=function(){return this},t);function i(r){t[r]=n[r]&&function(a){return new Promise(function(o,c){a=n[r](a),s(o,c,a.done,a.value)})}}function s(r,a,o,c){Promise.resolve(c).then(function(l){r({value:l,done:o})},a)}}var Ei={exports:{}},Pr;function Nu(){if(Pr)return Ei.exports;Pr=1;var n=typeof Reflect=="object"?Reflect:null,e=n&&typeof n.apply=="function"?n.apply:function(k,w,S){return Function.prototype.apply.call(k,w,S)},t;n&&typeof n.ownKeys=="function"?t=n.ownKeys:Object.getOwnPropertySymbols?t=function(k){return Object.getOwnPropertyNames(k).concat(Object.getOwnPropertySymbols(k))}:t=function(k){return Object.getOwnPropertyNames(k)};function i(P){console&&console.warn&&console.warn(P)}var s=Number.isNaN||function(k){return k!==k};function r(){r.init.call(this)}Ei.exports=r,Ei.exports.once=b,r.EventEmitter=r,r.prototype._events=void 0,r.prototype._eventsCount=0,r.prototype._maxListeners=void 0;var a=10;function o(P){if(typeof P!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof P)}Object.defineProperty(r,"defaultMaxListeners",{enumerable:!0,get:function(){return a},set:function(P){if(typeof P!="number"||P<0||s(P))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+P+".");a=P}}),r.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},r.prototype.setMaxListeners=function(k){if(typeof k!="number"||k<0||s(k))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+k+".");return this._maxListeners=k,this};function c(P){return P._maxListeners===void 0?r.defaultMaxListeners:P._maxListeners}r.prototype.getMaxListeners=function(){return c(this)},r.prototype.emit=function(k){for(var w=[],S=1;S0&&(A=w[0]),A instanceof Error)throw A;var q=new Error("Unhandled error."+(A?" ("+A.message+")":""));throw q.context=A,q}var B=M[k];if(B===void 0)return!1;if(typeof B=="function")e(B,this,w);else for(var K=B.length,ve=y(B,K),S=0;S0&&A.length>I&&!A.warned){A.warned=!0;var q=new Error("Possible EventEmitter memory leak detected. "+A.length+" "+String(k)+" listeners added. Use emitter.setMaxListeners() to increase limit");q.name="MaxListenersExceededWarning",q.emitter=P,q.type=k,q.count=A.length,i(q)}return P}r.prototype.addListener=function(k,w){return l(this,k,w,!1)},r.prototype.on=r.prototype.addListener,r.prototype.prependListener=function(k,w){return l(this,k,w,!0)};function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(P,k,w){var S={fired:!1,wrapFn:void 0,target:P,type:k,listener:w},I=d.bind(S);return I.listener=w,S.wrapFn=I,I}r.prototype.once=function(k,w){return o(w),this.on(k,f(this,k,w)),this},r.prototype.prependOnceListener=function(k,w){return o(w),this.prependListener(k,f(this,k,w)),this},r.prototype.removeListener=function(k,w){var S,I,M,A,q;if(o(w),I=this._events,I===void 0)return this;if(S=I[k],S===void 0)return this;if(S===w||S.listener===w)--this._eventsCount===0?this._events=Object.create(null):(delete I[k],I.removeListener&&this.emit("removeListener",k,S.listener||w));else if(typeof S!="function"){for(M=-1,A=S.length-1;A>=0;A--)if(S[A]===w||S[A].listener===w){q=S[A].listener,M=A;break}if(M<0)return this;M===0?S.shift():C(S,M),S.length===1&&(I[k]=S[0]),I.removeListener!==void 0&&this.emit("removeListener",k,q||w)}return this},r.prototype.off=r.prototype.removeListener,r.prototype.removeAllListeners=function(k){var w,S,I;if(S=this._events,S===void 0)return this;if(S.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):S[k]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete S[k]),this;if(arguments.length===0){var M=Object.keys(S),A;for(I=0;I=0;I--)this.removeListener(k,w[I]);return this};function p(P,k,w){var S=P._events;if(S===void 0)return[];var I=S[k];return I===void 0?[]:typeof I=="function"?w?[I.listener||I]:[I]:w?_(I):y(I,I.length)}r.prototype.listeners=function(k){return p(this,k,!0)},r.prototype.rawListeners=function(k){return p(this,k,!1)},r.listenerCount=function(P,k){return typeof P.listenerCount=="function"?P.listenerCount(k):m.call(P,k)},r.prototype.listenerCount=m;function m(P){var k=this._events;if(k!==void 0){var w=k[P];if(typeof w=="function")return 1;if(w!==void 0)return w.length}return 0}r.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]};function y(P,k){for(var w=new Array(k),S=0;S=t&&parseInt(i[t],10)}function It(n,e,t){if(!n.RTCPeerConnection)return;const i=n.RTCPeerConnection.prototype,s=i.addEventListener;i.addEventListener=function(a,o){if(a!==e)return s.apply(this,arguments);const c=l=>{const d=t(l);d&&(o.handleEvent?o.handleEvent(d):o(d))};return this._eventMap=this._eventMap||{},this._eventMap[e]||(this._eventMap[e]=new Map),this._eventMap[e].set(o,c),s.apply(this,[a,c])};const r=i.removeEventListener;i.removeEventListener=function(a,o){if(a!==e||!this._eventMap||!this._eventMap[e])return r.apply(this,arguments);if(!this._eventMap[e].has(o))return r.apply(this,arguments);const c=this._eventMap[e].get(o);return this._eventMap[e].delete(o),this._eventMap[e].size===0&&delete this._eventMap[e],Object.keys(this._eventMap).length===0&&delete this._eventMap,r.apply(this,[a,c])},Object.defineProperty(i,"on"+e,{get(){return this["_on"+e]},set(a){this["_on"+e]&&(this.removeEventListener(e,this["_on"+e]),delete this["_on"+e]),a&&this.addEventListener(e,this["_on"+e]=a)},enumerable:!0,configurable:!0})}function Lu(n){return typeof n!="boolean"?new Error("Argument type: "+typeof n+". Please use a boolean."):(no=n,n?"adapter.js logging disabled":"adapter.js logging enabled")}function Uu(n){return typeof n!="boolean"?new Error("Argument type: "+typeof n+". Please use a boolean."):(so=!n,"adapter.js deprecation warnings "+(n?"disabled":"enabled"))}function ro(){if(typeof window=="object"){if(no)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function bs(n,e){so&&console.warn(n+" is deprecated, please use "+e+" instead.")}function Fu(n){const e={browser:null,version:null};if(typeof n>"u"||!n.navigator||!n.navigator.userAgent)return e.browser="Not a browser.",e;const{navigator:t}=n;if(t.userAgentData&&t.userAgentData.brands){const i=t.userAgentData.brands.find(s=>s.brand==="Chromium");if(i)return{browser:"chrome",version:parseInt(i.version,10)}}if(t.mozGetUserMedia)e.browser="firefox",e.version=Ni(t.userAgent,/Firefox\/(\d+)\./,1);else if(t.webkitGetUserMedia||n.isSecureContext===!1&&n.webkitRTCPeerConnection)e.browser="chrome",e.version=Ni(t.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else if(n.RTCPeerConnection&&t.userAgent.match(/AppleWebKit\/(\d+)\./))e.browser="safari",e.version=Ni(t.userAgent,/AppleWebKit\/(\d+)\./,1),e.supportsUnifiedPlan=n.RTCRtpTransceiver&&"currentDirection"in n.RTCRtpTransceiver.prototype;else return e.browser="Not a supported browser.",e;return e}function Er(n){return Object.prototype.toString.call(n)==="[object Object]"}function ao(n){return Er(n)?Object.keys(n).reduce(function(e,t){const i=Er(n[t]),s=i?ao(n[t]):n[t],r=i&&!Object.keys(s).length;return s===void 0||r?e:Object.assign(e,{[t]:s})},{}):n}function Gn(n,e,t){!e||t.has(e.id)||(t.set(e.id,e),Object.keys(e).forEach(i=>{i.endsWith("Id")?Gn(n,n.get(e[i]),t):i.endsWith("Ids")&&e[i].forEach(s=>{Gn(n,n.get(s),t)})}))}function _r(n,e,t){const i=t?"outbound-rtp":"inbound-rtp",s=new Map;if(e===null)return s;const r=[];return n.forEach(a=>{a.type==="track"&&a.trackIdentifier===e.id&&r.push(a)}),r.forEach(a=>{n.forEach(o=>{o.type===i&&o.trackId===a.id&&Gn(n,o,s)})}),s}const wr=ro;function oo(n,e){const t=n&&n.navigator;if(!t.mediaDevices)return;const i=function(o){if(typeof o!="object"||o.mandatory||o.optional)return o;const c={};return Object.keys(o).forEach(l=>{if(l==="require"||l==="advanced"||l==="mediaSource")return;const d=typeof o[l]=="object"?o[l]:{ideal:o[l]};d.exact!==void 0&&typeof d.exact=="number"&&(d.min=d.max=d.exact);const f=function(p,m){return p?p+m.charAt(0).toUpperCase()+m.slice(1):m==="deviceId"?"sourceId":m};if(d.ideal!==void 0){c.optional=c.optional||[];let p={};typeof d.ideal=="number"?(p[f("min",l)]=d.ideal,c.optional.push(p),p={},p[f("max",l)]=d.ideal,c.optional.push(p)):(p[f("",l)]=d.ideal,c.optional.push(p))}d.exact!==void 0&&typeof d.exact!="number"?(c.mandatory=c.mandatory||{},c.mandatory[f("",l)]=d.exact):["min","max"].forEach(p=>{d[p]!==void 0&&(c.mandatory=c.mandatory||{},c.mandatory[f(p,l)]=d[p])})}),o.advanced&&(c.optional=(c.optional||[]).concat(o.advanced)),c},s=function(o,c){if(e.version>=61)return c(o);if(o=JSON.parse(JSON.stringify(o)),o&&typeof o.audio=="object"){const l=function(d,f,p){f in d&&!(p in d)&&(d[p]=d[f],delete d[f])};o=JSON.parse(JSON.stringify(o)),l(o.audio,"autoGainControl","googAutoGainControl"),l(o.audio,"noiseSuppression","googNoiseSuppression"),o.audio=i(o.audio)}if(o&&typeof o.video=="object"){let l=o.video.facingMode;l=l&&(typeof l=="object"?l:{ideal:l});const d=e.version<66;if(l&&(l.exact==="user"||l.exact==="environment"||l.ideal==="user"||l.ideal==="environment")&&!(t.mediaDevices.getSupportedConstraints&&t.mediaDevices.getSupportedConstraints().facingMode&&!d)){delete o.video.facingMode;let f;if(l.exact==="environment"||l.ideal==="environment"?f=["back","rear"]:(l.exact==="user"||l.ideal==="user")&&(f=["front"]),f)return t.mediaDevices.enumerateDevices().then(p=>{p=p.filter(y=>y.kind==="videoinput");let m=p.find(y=>f.some(C=>y.label.toLowerCase().includes(C)));return!m&&p.length&&f.includes("back")&&(m=p[p.length-1]),m&&(o.video.deviceId=l.exact?{exact:m.deviceId}:{ideal:m.deviceId}),o.video=i(o.video),wr("chrome: "+JSON.stringify(o)),c(o)})}o.video=i(o.video)}return wr("chrome: "+JSON.stringify(o)),c(o)},r=function(o){return e.version>=64?o:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[o.name]||o.name,message:o.message,constraint:o.constraint||o.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}},a=function(o,c,l){s(o,d=>{t.webkitGetUserMedia(d,c,f=>{l&&l(r(f))})})};if(t.getUserMedia=a.bind(t),t.mediaDevices.getUserMedia){const o=t.mediaDevices.getUserMedia.bind(t.mediaDevices);t.mediaDevices.getUserMedia=function(c){return s(c,l=>o(l).then(d=>{if(l.audio&&!d.getAudioTracks().length||l.video&&!d.getVideoTracks().length)throw d.getTracks().forEach(f=>{f.stop()}),new DOMException("","NotFoundError");return d},d=>Promise.reject(r(d))))}}}function co(n){n.MediaStream=n.MediaStream||n.webkitMediaStream}function lo(n){if(typeof n=="object"&&n.RTCPeerConnection&&!("ontrack"in n.RTCPeerConnection.prototype)){Object.defineProperty(n.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(t){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=t)},enumerable:!0,configurable:!0});const e=n.RTCPeerConnection.prototype.setRemoteDescription;n.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=i=>{i.stream.addEventListener("addtrack",s=>{let r;n.RTCPeerConnection.prototype.getReceivers?r=this.getReceivers().find(o=>o.track&&o.track.id===s.track.id):r={track:s.track};const a=new Event("track");a.track=s.track,a.receiver=r,a.transceiver={receiver:r},a.streams=[i.stream],this.dispatchEvent(a)}),i.stream.getTracks().forEach(s=>{let r;n.RTCPeerConnection.prototype.getReceivers?r=this.getReceivers().find(o=>o.track&&o.track.id===s.id):r={track:s};const a=new Event("track");a.track=s,a.receiver=r,a.transceiver={receiver:r},a.streams=[i.stream],this.dispatchEvent(a)})},this.addEventListener("addstream",this._ontrackpoly)),e.apply(this,arguments)}}else It(n,"track",e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e))}function uo(n){if(typeof n=="object"&&n.RTCPeerConnection&&!("getSenders"in n.RTCPeerConnection.prototype)&&"createDTMFSender"in n.RTCPeerConnection.prototype){const e=function(s,r){return{track:r,get dtmf(){return this._dtmf===void 0&&(r.kind==="audio"?this._dtmf=s.createDTMFSender(r):this._dtmf=null),this._dtmf},_pc:s}};if(!n.RTCPeerConnection.prototype.getSenders){n.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const s=n.RTCPeerConnection.prototype.addTrack;n.RTCPeerConnection.prototype.addTrack=function(o,c){let l=s.apply(this,arguments);return l||(l=e(this,o),this._senders.push(l)),l};const r=n.RTCPeerConnection.prototype.removeTrack;n.RTCPeerConnection.prototype.removeTrack=function(o){r.apply(this,arguments);const c=this._senders.indexOf(o);c!==-1&&this._senders.splice(c,1)}}const t=n.RTCPeerConnection.prototype.addStream;n.RTCPeerConnection.prototype.addStream=function(r){this._senders=this._senders||[],t.apply(this,[r]),r.getTracks().forEach(a=>{this._senders.push(e(this,a))})};const i=n.RTCPeerConnection.prototype.removeStream;n.RTCPeerConnection.prototype.removeStream=function(r){this._senders=this._senders||[],i.apply(this,[r]),r.getTracks().forEach(a=>{const o=this._senders.find(c=>c.track===a);o&&this._senders.splice(this._senders.indexOf(o),1)})}}else if(typeof n=="object"&&n.RTCPeerConnection&&"getSenders"in n.RTCPeerConnection.prototype&&"createDTMFSender"in n.RTCPeerConnection.prototype&&n.RTCRtpSender&&!("dtmf"in n.RTCRtpSender.prototype)){const e=n.RTCPeerConnection.prototype.getSenders;n.RTCPeerConnection.prototype.getSenders=function(){const i=e.apply(this,[]);return i.forEach(s=>s._pc=this),i},Object.defineProperty(n.RTCRtpSender.prototype,"dtmf",{get(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function ho(n){if(!(typeof n=="object"&&n.RTCPeerConnection&&n.RTCRtpSender&&n.RTCRtpReceiver))return;if(!("getStats"in n.RTCRtpSender.prototype)){const t=n.RTCPeerConnection.prototype.getSenders;t&&(n.RTCPeerConnection.prototype.getSenders=function(){const r=t.apply(this,[]);return r.forEach(a=>a._pc=this),r});const i=n.RTCPeerConnection.prototype.addTrack;i&&(n.RTCPeerConnection.prototype.addTrack=function(){const r=i.apply(this,arguments);return r._pc=this,r}),n.RTCRtpSender.prototype.getStats=function(){const r=this;return this._pc.getStats().then(a=>_r(a,r.track,!0))}}if(!("getStats"in n.RTCRtpReceiver.prototype)){const t=n.RTCPeerConnection.prototype.getReceivers;t&&(n.RTCPeerConnection.prototype.getReceivers=function(){const s=t.apply(this,[]);return s.forEach(r=>r._pc=this),s}),It(n,"track",i=>(i.receiver._pc=i.srcElement,i)),n.RTCRtpReceiver.prototype.getStats=function(){const s=this;return this._pc.getStats().then(r=>_r(r,s.track,!1))}}if(!("getStats"in n.RTCRtpSender.prototype&&"getStats"in n.RTCRtpReceiver.prototype))return;const e=n.RTCPeerConnection.prototype.getStats;n.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof n.MediaStreamTrack){const i=arguments[0];let s,r,a;return this.getSenders().forEach(o=>{o.track===i&&(s?a=!0:s=o)}),this.getReceivers().forEach(o=>(o.track===i&&(r?a=!0:r=o),o.track===i)),a||s&&r?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):s?s.getStats():r?r.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return e.apply(this,arguments)}}function fo(n){n.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(a=>this._shimmedLocalStreams[a][0])};const e=n.RTCPeerConnection.prototype.addTrack;n.RTCPeerConnection.prototype.addTrack=function(a,o){if(!o)return e.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const c=e.apply(this,arguments);return this._shimmedLocalStreams[o.id]?this._shimmedLocalStreams[o.id].indexOf(c)===-1&&this._shimmedLocalStreams[o.id].push(c):this._shimmedLocalStreams[o.id]=[o,c],c};const t=n.RTCPeerConnection.prototype.addStream;n.RTCPeerConnection.prototype.addStream=function(a){this._shimmedLocalStreams=this._shimmedLocalStreams||{},a.getTracks().forEach(l=>{if(this.getSenders().find(f=>f.track===l))throw new DOMException("Track already exists.","InvalidAccessError")});const o=this.getSenders();t.apply(this,arguments);const c=this.getSenders().filter(l=>o.indexOf(l)===-1);this._shimmedLocalStreams[a.id]=[a].concat(c)};const i=n.RTCPeerConnection.prototype.removeStream;n.RTCPeerConnection.prototype.removeStream=function(a){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[a.id],i.apply(this,arguments)};const s=n.RTCPeerConnection.prototype.removeTrack;n.RTCPeerConnection.prototype.removeTrack=function(a){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},a&&Object.keys(this._shimmedLocalStreams).forEach(o=>{const c=this._shimmedLocalStreams[o].indexOf(a);c!==-1&&this._shimmedLocalStreams[o].splice(c,1),this._shimmedLocalStreams[o].length===1&&delete this._shimmedLocalStreams[o]}),s.apply(this,arguments)}}function po(n,e){if(!n.RTCPeerConnection)return;if(n.RTCPeerConnection.prototype.addTrack&&e.version>=65)return fo(n);const t=n.RTCPeerConnection.prototype.getLocalStreams;n.RTCPeerConnection.prototype.getLocalStreams=function(){const d=t.apply(this);return this._reverseStreams=this._reverseStreams||{},d.map(f=>this._reverseStreams[f.id])};const i=n.RTCPeerConnection.prototype.addStream;n.RTCPeerConnection.prototype.addStream=function(d){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},d.getTracks().forEach(f=>{if(this.getSenders().find(m=>m.track===f))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[d.id]){const f=new n.MediaStream(d.getTracks());this._streams[d.id]=f,this._reverseStreams[f.id]=d,d=f}i.apply(this,[d])};const s=n.RTCPeerConnection.prototype.removeStream;n.RTCPeerConnection.prototype.removeStream=function(d){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},s.apply(this,[this._streams[d.id]||d]),delete this._reverseStreams[this._streams[d.id]?this._streams[d.id].id:d.id],delete this._streams[d.id]},n.RTCPeerConnection.prototype.addTrack=function(d,f){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");const p=[].slice.call(arguments,1);if(p.length!==1||!p[0].getTracks().find(C=>C===d))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find(C=>C.track===d))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const y=this._streams[f.id];if(y)y.addTrack(d),Promise.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{const C=new n.MediaStream([d]);this._streams[f.id]=C,this._reverseStreams[C.id]=f,this.addStream(C)}return this.getSenders().find(C=>C.track===d)};function r(l,d){let f=d.sdp;return Object.keys(l._reverseStreams||[]).forEach(p=>{const m=l._reverseStreams[p],y=l._streams[m.id];f=f.replace(new RegExp(y.id,"g"),m.id)}),new RTCSessionDescription({type:d.type,sdp:f})}function a(l,d){let f=d.sdp;return Object.keys(l._reverseStreams||[]).forEach(p=>{const m=l._reverseStreams[p],y=l._streams[m.id];f=f.replace(new RegExp(m.id,"g"),y.id)}),new RTCSessionDescription({type:d.type,sdp:f})}["createOffer","createAnswer"].forEach(function(l){const d=n.RTCPeerConnection.prototype[l],f={[l](){const p=arguments;return arguments.length&&typeof arguments[0]=="function"?d.apply(this,[y=>{const C=r(this,y);p[0].apply(null,[C])},y=>{p[1]&&p[1].apply(null,y)},arguments[2]]):d.apply(this,arguments).then(y=>r(this,y))}};n.RTCPeerConnection.prototype[l]=f[l]});const o=n.RTCPeerConnection.prototype.setLocalDescription;n.RTCPeerConnection.prototype.setLocalDescription=function(){return!arguments.length||!arguments[0].type?o.apply(this,arguments):(arguments[0]=a(this,arguments[0]),o.apply(this,arguments))};const c=Object.getOwnPropertyDescriptor(n.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(n.RTCPeerConnection.prototype,"localDescription",{get(){const l=c.get.apply(this);return l.type===""?l:r(this,l)}}),n.RTCPeerConnection.prototype.removeTrack=function(d){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!d._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(!(d._pc===this))throw new DOMException("Sender was not created by this connection.","InvalidAccessError");this._streams=this._streams||{};let p;Object.keys(this._streams).forEach(m=>{this._streams[m].getTracks().find(C=>d.track===C)&&(p=this._streams[m])}),p&&(p.getTracks().length===1?this.removeStream(this._reverseStreams[p.id]):p.removeTrack(d.track),this.dispatchEvent(new Event("negotiationneeded")))}}function Wn(n,e){!n.RTCPeerConnection&&n.webkitRTCPeerConnection&&(n.RTCPeerConnection=n.webkitRTCPeerConnection),n.RTCPeerConnection&&e.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(t){const i=n.RTCPeerConnection.prototype[t],s={[t](){return arguments[0]=new(t==="addIceCandidate"?n.RTCIceCandidate:n.RTCSessionDescription)(arguments[0]),i.apply(this,arguments)}};n.RTCPeerConnection.prototype[t]=s[t]})}function mo(n,e){It(n,"negotiationneeded",t=>{const i=t.target;if(!((e.version<72||i.getConfiguration&&i.getConfiguration().sdpSemantics==="plan-b")&&i.signalingState!=="stable"))return t})}var Rr=Object.freeze({__proto__:null,fixNegotiationNeeded:mo,shimAddTrackRemoveTrack:po,shimAddTrackRemoveTrackWithNative:fo,shimGetSendersWithDtmf:uo,shimGetUserMedia:oo,shimMediaStream:co,shimOnTrack:lo,shimPeerConnection:Wn,shimSenderReceiverGetStats:ho});function go(n,e){const t=n&&n.navigator,i=n&&n.MediaStreamTrack;if(t.getUserMedia=function(s,r,a){bs("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),t.mediaDevices.getUserMedia(s).then(r,a)},!(e.version>55&&"autoGainControl"in t.mediaDevices.getSupportedConstraints())){const s=function(a,o,c){o in a&&!(c in a)&&(a[c]=a[o],delete a[o])},r=t.mediaDevices.getUserMedia.bind(t.mediaDevices);if(t.mediaDevices.getUserMedia=function(a){return typeof a=="object"&&typeof a.audio=="object"&&(a=JSON.parse(JSON.stringify(a)),s(a.audio,"autoGainControl","mozAutoGainControl"),s(a.audio,"noiseSuppression","mozNoiseSuppression")),r(a)},i&&i.prototype.getSettings){const a=i.prototype.getSettings;i.prototype.getSettings=function(){const o=a.apply(this,arguments);return s(o,"mozAutoGainControl","autoGainControl"),s(o,"mozNoiseSuppression","noiseSuppression"),o}}if(i&&i.prototype.applyConstraints){const a=i.prototype.applyConstraints;i.prototype.applyConstraints=function(o){return this.kind==="audio"&&typeof o=="object"&&(o=JSON.parse(JSON.stringify(o)),s(o,"autoGainControl","mozAutoGainControl"),s(o,"noiseSuppression","mozNoiseSuppression")),a.apply(this,[o])}}}}function ju(n,e){n.navigator.mediaDevices&&"getDisplayMedia"in n.navigator.mediaDevices||n.navigator.mediaDevices&&(n.navigator.mediaDevices.getDisplayMedia=function(i){if(!(i&&i.video)){const s=new DOMException("getDisplayMedia without video constraints is undefined");return s.name="NotFoundError",s.code=8,Promise.reject(s)}return i.video===!0?i.video={mediaSource:e}:i.video.mediaSource=e,n.navigator.mediaDevices.getUserMedia(i)})}function vo(n){typeof n=="object"&&n.RTCTrackEvent&&"receiver"in n.RTCTrackEvent.prototype&&!("transceiver"in n.RTCTrackEvent.prototype)&&Object.defineProperty(n.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function zn(n,e){if(typeof n!="object"||!(n.RTCPeerConnection||n.mozRTCPeerConnection))return;!n.RTCPeerConnection&&n.mozRTCPeerConnection&&(n.RTCPeerConnection=n.mozRTCPeerConnection),e.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(s){const r=n.RTCPeerConnection.prototype[s],a={[s](){return arguments[0]=new(s==="addIceCandidate"?n.RTCIceCandidate:n.RTCSessionDescription)(arguments[0]),r.apply(this,arguments)}};n.RTCPeerConnection.prototype[s]=a[s]});const t={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},i=n.RTCPeerConnection.prototype.getStats;n.RTCPeerConnection.prototype.getStats=function(){const[r,a,o]=arguments;return i.apply(this,[r||null]).then(c=>{if(e.version<53&&!a)try{c.forEach(l=>{l.type=t[l.type]||l.type})}catch(l){if(l.name!=="TypeError")throw l;c.forEach((d,f)=>{c.set(f,Object.assign({},d,{type:t[d.type]||d.type}))})}return c}).then(a,o)}}function bo(n){if(!(typeof n=="object"&&n.RTCPeerConnection&&n.RTCRtpSender)||n.RTCRtpSender&&"getStats"in n.RTCRtpSender.prototype)return;const e=n.RTCPeerConnection.prototype.getSenders;e&&(n.RTCPeerConnection.prototype.getSenders=function(){const s=e.apply(this,[]);return s.forEach(r=>r._pc=this),s});const t=n.RTCPeerConnection.prototype.addTrack;t&&(n.RTCPeerConnection.prototype.addTrack=function(){const s=t.apply(this,arguments);return s._pc=this,s}),n.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function yo(n){if(!(typeof n=="object"&&n.RTCPeerConnection&&n.RTCRtpSender)||n.RTCRtpSender&&"getStats"in n.RTCRtpReceiver.prototype)return;const e=n.RTCPeerConnection.prototype.getReceivers;e&&(n.RTCPeerConnection.prototype.getReceivers=function(){const i=e.apply(this,[]);return i.forEach(s=>s._pc=this),i}),It(n,"track",t=>(t.receiver._pc=t.srcElement,t)),n.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function ko(n){!n.RTCPeerConnection||"removeStream"in n.RTCPeerConnection.prototype||(n.RTCPeerConnection.prototype.removeStream=function(t){bs("removeStream","removeTrack"),this.getSenders().forEach(i=>{i.track&&t.getTracks().includes(i.track)&&this.removeTrack(i)})})}function To(n){n.DataChannel&&!n.RTCDataChannel&&(n.RTCDataChannel=n.DataChannel)}function Co(n){if(!(typeof n=="object"&&n.RTCPeerConnection))return;const e=n.RTCPeerConnection.prototype.addTransceiver;e&&(n.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let i=arguments[1]&&arguments[1].sendEncodings;i===void 0&&(i=[]),i=[...i];const s=i.length>0;s&&i.forEach(a=>{if("rid"in a&&!/^[a-z0-9]{0,16}$/i.test(a.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in a&&!(parseFloat(a.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in a&&!(parseFloat(a.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});const r=e.apply(this,arguments);if(s){const{sender:a}=r,o=a.getParameters();(!("encodings"in o)||o.encodings.length===1&&Object.keys(o.encodings[0]).length===0)&&(o.encodings=i,a.sendEncodings=i,this.setParametersPromises.push(a.setParameters(o).then(()=>{delete a.sendEncodings}).catch(()=>{delete a.sendEncodings})))}return r})}function So(n){if(!(typeof n=="object"&&n.RTCRtpSender))return;const e=n.RTCRtpSender.prototype.getParameters;e&&(n.RTCRtpSender.prototype.getParameters=function(){const i=e.apply(this,arguments);return"encodings"in i||(i.encodings=[].concat(this.sendEncodings||[{}])),i})}function Po(n){if(!(typeof n=="object"&&n.RTCPeerConnection))return;const e=n.RTCPeerConnection.prototype.createOffer;n.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>e.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):e.apply(this,arguments)}}function Eo(n){if(!(typeof n=="object"&&n.RTCPeerConnection))return;const e=n.RTCPeerConnection.prototype.createAnswer;n.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>e.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):e.apply(this,arguments)}}var Ir=Object.freeze({__proto__:null,shimAddTransceiver:Co,shimCreateAnswer:Eo,shimCreateOffer:Po,shimGetDisplayMedia:ju,shimGetParameters:So,shimGetUserMedia:go,shimOnTrack:vo,shimPeerConnection:zn,shimRTCDataChannel:To,shimReceiverGetStats:yo,shimRemoveStream:ko,shimSenderGetStats:bo});function _o(n){if(!(typeof n!="object"||!n.RTCPeerConnection)){if("getLocalStreams"in n.RTCPeerConnection.prototype||(n.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in n.RTCPeerConnection.prototype)){const e=n.RTCPeerConnection.prototype.addTrack;n.RTCPeerConnection.prototype.addStream=function(i){this._localStreams||(this._localStreams=[]),this._localStreams.includes(i)||this._localStreams.push(i),i.getAudioTracks().forEach(s=>e.call(this,s,i)),i.getVideoTracks().forEach(s=>e.call(this,s,i))},n.RTCPeerConnection.prototype.addTrack=function(i){for(var s=arguments.length,r=new Array(s>1?s-1:0),a=1;a{this._localStreams?this._localStreams.includes(o)||this._localStreams.push(o):this._localStreams=[o]}),e.apply(this,arguments)}}"removeStream"in n.RTCPeerConnection.prototype||(n.RTCPeerConnection.prototype.removeStream=function(t){this._localStreams||(this._localStreams=[]);const i=this._localStreams.indexOf(t);if(i===-1)return;this._localStreams.splice(i,1);const s=t.getTracks();this.getSenders().forEach(r=>{s.includes(r.track)&&this.removeTrack(r)})})}}function wo(n){if(!(typeof n!="object"||!n.RTCPeerConnection)&&("getRemoteStreams"in n.RTCPeerConnection.prototype||(n.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in n.RTCPeerConnection.prototype))){Object.defineProperty(n.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(t){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=t),this.addEventListener("track",this._onaddstreampoly=i=>{i.streams.forEach(s=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(s))return;this._remoteStreams.push(s);const r=new Event("addstream");r.stream=s,this.dispatchEvent(r)})})}});const e=n.RTCPeerConnection.prototype.setRemoteDescription;n.RTCPeerConnection.prototype.setRemoteDescription=function(){const i=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(s){s.streams.forEach(r=>{if(i._remoteStreams||(i._remoteStreams=[]),i._remoteStreams.indexOf(r)>=0)return;i._remoteStreams.push(r);const a=new Event("addstream");a.stream=r,i.dispatchEvent(a)})}),e.apply(i,arguments)}}}function Ro(n){if(typeof n!="object"||!n.RTCPeerConnection)return;const e=n.RTCPeerConnection.prototype,t=e.createOffer,i=e.createAnswer,s=e.setLocalDescription,r=e.setRemoteDescription,a=e.addIceCandidate;e.createOffer=function(l,d){const f=arguments.length>=2?arguments[2]:arguments[0],p=t.apply(this,[f]);return d?(p.then(l,d),Promise.resolve()):p},e.createAnswer=function(l,d){const f=arguments.length>=2?arguments[2]:arguments[0],p=i.apply(this,[f]);return d?(p.then(l,d),Promise.resolve()):p};let o=function(c,l,d){const f=s.apply(this,[c]);return d?(f.then(l,d),Promise.resolve()):f};e.setLocalDescription=o,o=function(c,l,d){const f=r.apply(this,[c]);return d?(f.then(l,d),Promise.resolve()):f},e.setRemoteDescription=o,o=function(c,l,d){const f=a.apply(this,[c]);return d?(f.then(l,d),Promise.resolve()):f},e.addIceCandidate=o}function Io(n){const e=n&&n.navigator;if(e.mediaDevices&&e.mediaDevices.getUserMedia){const t=e.mediaDevices,i=t.getUserMedia.bind(t);e.mediaDevices.getUserMedia=s=>i(Oo(s))}!e.getUserMedia&&e.mediaDevices&&e.mediaDevices.getUserMedia&&(e.getUserMedia=(function(i,s,r){e.mediaDevices.getUserMedia(i).then(s,r)}).bind(e))}function Oo(n){return n&&n.video!==void 0?Object.assign({},n,{video:ao(n.video)}):n}function Do(n){if(!n.RTCPeerConnection)return;const e=n.RTCPeerConnection;n.RTCPeerConnection=function(i,s){if(i&&i.iceServers){const r=[];for(let a=0;aa.receiver.track.kind==="audio");i.offerToReceiveAudio===!1&&s?s.direction==="sendrecv"?s.setDirection?s.setDirection("sendonly"):s.direction="sendonly":s.direction==="recvonly"&&(s.setDirection?s.setDirection("inactive"):s.direction="inactive"):i.offerToReceiveAudio===!0&&!s&&this.addTransceiver("audio",{direction:"recvonly"}),typeof i.offerToReceiveVideo<"u"&&(i.offerToReceiveVideo=!!i.offerToReceiveVideo);const r=this.getTransceivers().find(a=>a.receiver.track.kind==="video");i.offerToReceiveVideo===!1&&r?r.direction==="sendrecv"?r.setDirection?r.setDirection("sendonly"):r.direction="sendonly":r.direction==="recvonly"&&(r.setDirection?r.setDirection("inactive"):r.direction="inactive"):i.offerToReceiveVideo===!0&&!r&&this.addTransceiver("video",{direction:"recvonly"})}return e.apply(this,arguments)}}function Ao(n){typeof n!="object"||n.AudioContext||(n.AudioContext=n.webkitAudioContext)}var Or=Object.freeze({__proto__:null,shimAudioContext:Ao,shimCallbacksAPI:Ro,shimConstraints:Oo,shimCreateOfferLegacy:xo,shimGetUserMedia:Io,shimLocalStreamsAPI:_o,shimRTCIceServerUrls:Do,shimRemoteStreamsAPI:wo,shimTrackEventTransceiver:Mo}),Pn={exports:{}},Dr;function Bu(){return Dr||(Dr=1,function(n){const e={};e.generateIdentifier=function(){return Math.random().toString(36).substring(2,12)},e.localCName=e.generateIdentifier(),e.splitLines=function(t){return t.trim().split(` +`).map(i=>i.trim())},e.splitSections=function(t){return t.split(` +m=`).map((s,r)=>(r>0?"m="+s:s).trim()+`\r +`)},e.getDescription=function(t){const i=e.splitSections(t);return i&&i[0]},e.getMediaSections=function(t){const i=e.splitSections(t);return i.shift(),i},e.matchPrefix=function(t,i){return e.splitLines(t).filter(s=>s.indexOf(i)===0)},e.parseCandidate=function(t){let i;t.indexOf("a=candidate:")===0?i=t.substring(12).split(" "):i=t.substring(10).split(" ");const s={foundation:i[0],component:{1:"rtp",2:"rtcp"}[i[1]]||i[1],protocol:i[2].toLowerCase(),priority:parseInt(i[3],10),ip:i[4],address:i[4],port:parseInt(i[5],10),type:i[7]};for(let r=8;r0?i[0].split("/")[1]:"sendrecv",uri:i[1],attributes:i.slice(2).join(" ")}},e.writeExtmap=function(t){return"a=extmap:"+(t.id||t.preferredId)+(t.direction&&t.direction!=="sendrecv"?"/"+t.direction:"")+" "+t.uri+(t.attributes?" "+t.attributes:"")+`\r +`},e.parseFmtp=function(t){const i={};let s;const r=t.substring(t.indexOf(" ")+1).split(";");for(let a=0;a{t.parameters[a]!==void 0?r.push(a+"="+t.parameters[a]):r.push(a)}),i+="a=fmtp:"+s+" "+r.join(";")+`\r +`}return i},e.parseRtcpFb=function(t){const i=t.substring(t.indexOf(" ")+1).split(" ");return{type:i.shift(),parameter:i.join(" ")}},e.writeRtcpFb=function(t){let i="",s=t.payloadType;return t.preferredPayloadType!==void 0&&(s=t.preferredPayloadType),t.rtcpFeedback&&t.rtcpFeedback.length&&t.rtcpFeedback.forEach(r=>{i+="a=rtcp-fb:"+s+" "+r.type+(r.parameter&&r.parameter.length?" "+r.parameter:"")+`\r +`}),i},e.parseSsrcMedia=function(t){const i=t.indexOf(" "),s={ssrc:parseInt(t.substring(7,i),10)},r=t.indexOf(":",i);return r>-1?(s.attribute=t.substring(i+1,r),s.value=t.substring(r+1)):s.attribute=t.substring(i+1),s},e.parseSsrcGroup=function(t){const i=t.substring(13).split(" ");return{semantics:i.shift(),ssrcs:i.map(s=>parseInt(s,10))}},e.getMid=function(t){const i=e.matchPrefix(t,"a=mid:")[0];if(i)return i.substring(6)},e.parseFingerprint=function(t){const i=t.substring(14).split(" ");return{algorithm:i[0].toLowerCase(),value:i[1].toUpperCase()}},e.getDtlsParameters=function(t,i){return{role:"auto",fingerprints:e.matchPrefix(t+i,"a=fingerprint:").map(e.parseFingerprint)}},e.writeDtlsParameters=function(t,i){let s="a=setup:"+i+`\r +`;return t.fingerprints.forEach(r=>{s+="a=fingerprint:"+r.algorithm+" "+r.value+`\r +`}),s},e.parseCryptoLine=function(t){const i=t.substring(9).split(" ");return{tag:parseInt(i[0],10),cryptoSuite:i[1],keyParams:i[2],sessionParams:i.slice(3)}},e.writeCryptoLine=function(t){return"a=crypto:"+t.tag+" "+t.cryptoSuite+" "+(typeof t.keyParams=="object"?e.writeCryptoKeyParams(t.keyParams):t.keyParams)+(t.sessionParams?" "+t.sessionParams.join(" "):"")+`\r +`},e.parseCryptoKeyParams=function(t){if(t.indexOf("inline:")!==0)return null;const i=t.substring(7).split("|");return{keyMethod:"inline",keySalt:i[0],lifeTime:i[1],mkiValue:i[2]?i[2].split(":")[0]:void 0,mkiLength:i[2]?i[2].split(":")[1]:void 0}},e.writeCryptoKeyParams=function(t){return t.keyMethod+":"+t.keySalt+(t.lifeTime?"|"+t.lifeTime:"")+(t.mkiValue&&t.mkiLength?"|"+t.mkiValue+":"+t.mkiLength:"")},e.getCryptoParameters=function(t,i){return e.matchPrefix(t+i,"a=crypto:").map(e.parseCryptoLine)},e.getIceParameters=function(t,i){const s=e.matchPrefix(t+i,"a=ice-ufrag:")[0],r=e.matchPrefix(t+i,"a=ice-pwd:")[0];return s&&r?{usernameFragment:s.substring(12),password:r.substring(10)}:null},e.writeIceParameters=function(t){let i="a=ice-ufrag:"+t.usernameFragment+`\r +a=ice-pwd:`+t.password+`\r +`;return t.iceLite&&(i+=`a=ice-lite\r +`),i},e.parseRtpParameters=function(t){const i={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},r=e.splitLines(t)[0].split(" ");i.profile=r[2];for(let o=3;o{i.headerExtensions.push(e.parseExtmap(o))});const a=e.matchPrefix(t,"a=rtcp-fb:* ").map(e.parseRtcpFb);return i.codecs.forEach(o=>{a.forEach(c=>{o.rtcpFeedback.find(d=>d.type===c.type&&d.parameter===c.parameter)||o.rtcpFeedback.push(c)})}),i},e.writeRtpDescription=function(t,i){let s="";s+="m="+t+" ",s+=i.codecs.length>0?"9":"0",s+=" "+(i.profile||"UDP/TLS/RTP/SAVPF")+" ",s+=i.codecs.map(a=>a.preferredPayloadType!==void 0?a.preferredPayloadType:a.payloadType).join(" ")+`\r +`,s+=`c=IN IP4 0.0.0.0\r +`,s+=`a=rtcp:9 IN IP4 0.0.0.0\r +`,i.codecs.forEach(a=>{s+=e.writeRtpMap(a),s+=e.writeFmtp(a),s+=e.writeRtcpFb(a)});let r=0;return i.codecs.forEach(a=>{a.maxptime>r&&(r=a.maxptime)}),r>0&&(s+="a=maxptime:"+r+`\r +`),i.headerExtensions&&i.headerExtensions.forEach(a=>{s+=e.writeExtmap(a)}),s},e.parseRtpEncodingParameters=function(t){const i=[],s=e.parseRtpParameters(t),r=s.fecMechanisms.indexOf("RED")!==-1,a=s.fecMechanisms.indexOf("ULPFEC")!==-1,o=e.matchPrefix(t,"a=ssrc:").map(p=>e.parseSsrcMedia(p)).filter(p=>p.attribute==="cname"),c=o.length>0&&o[0].ssrc;let l;const d=e.matchPrefix(t,"a=ssrc-group:FID").map(p=>p.substring(17).split(" ").map(y=>parseInt(y,10)));d.length>0&&d[0].length>1&&d[0][0]===c&&(l=d[0][1]),s.codecs.forEach(p=>{if(p.name.toUpperCase()==="RTX"&&p.parameters.apt){let m={ssrc:c,codecPayloadType:parseInt(p.parameters.apt,10)};c&&l&&(m.rtx={ssrc:l}),i.push(m),r&&(m=JSON.parse(JSON.stringify(m)),m.fec={ssrc:c,mechanism:a?"red+ulpfec":"red"},i.push(m))}}),i.length===0&&c&&i.push({ssrc:c});let f=e.matchPrefix(t,"b=");return f.length&&(f[0].indexOf("b=TIAS:")===0?f=parseInt(f[0].substring(7),10):f[0].indexOf("b=AS:")===0?f=parseInt(f[0].substring(5),10)*1e3*.95-50*40*8:f=void 0,i.forEach(p=>{p.maxBitrate=f})),i},e.parseRtcpParameters=function(t){const i={},s=e.matchPrefix(t,"a=ssrc:").map(o=>e.parseSsrcMedia(o)).filter(o=>o.attribute==="cname")[0];s&&(i.cname=s.value,i.ssrc=s.ssrc);const r=e.matchPrefix(t,"a=rtcp-rsize");i.reducedSize=r.length>0,i.compound=r.length===0;const a=e.matchPrefix(t,"a=rtcp-mux");return i.mux=a.length>0,i},e.writeRtcpParameters=function(t){let i="";return t.reducedSize&&(i+=`a=rtcp-rsize\r +`),t.mux&&(i+=`a=rtcp-mux\r +`),t.ssrc!==void 0&&t.cname&&(i+="a=ssrc:"+t.ssrc+" cname:"+t.cname+`\r +`),i},e.parseMsid=function(t){let i;const s=e.matchPrefix(t,"a=msid:");if(s.length===1)return i=s[0].substring(7).split(" "),{stream:i[0],track:i[1]};const r=e.matchPrefix(t,"a=ssrc:").map(a=>e.parseSsrcMedia(a)).filter(a=>a.attribute==="msid");if(r.length>0)return i=r[0].value.split(" "),{stream:i[0],track:i[1]}},e.parseSctpDescription=function(t){const i=e.parseMLine(t),s=e.matchPrefix(t,"a=max-message-size:");let r;s.length>0&&(r=parseInt(s[0].substring(19),10)),isNaN(r)&&(r=65536);const a=e.matchPrefix(t,"a=sctp-port:");if(a.length>0)return{port:parseInt(a[0].substring(12),10),protocol:i.fmt,maxMessageSize:r};const o=e.matchPrefix(t,"a=sctpmap:");if(o.length>0){const c=o[0].substring(10).split(" ");return{port:parseInt(c[0],10),protocol:c[1],maxMessageSize:r}}},e.writeSctpDescription=function(t,i){let s=[];return t.protocol!=="DTLS/SCTP"?s=["m="+t.kind+" 9 "+t.protocol+" "+i.protocol+`\r +`,`c=IN IP4 0.0.0.0\r +`,"a=sctp-port:"+i.port+`\r +`]:s=["m="+t.kind+" 9 "+t.protocol+" "+i.port+`\r +`,`c=IN IP4 0.0.0.0\r +`,"a=sctpmap:"+i.port+" "+i.protocol+` 65535\r +`],i.maxMessageSize!==void 0&&s.push("a=max-message-size:"+i.maxMessageSize+`\r +`),s.join("")},e.generateSessionId=function(){return Math.random().toString().substr(2,22)},e.writeSessionBoilerplate=function(t,i,s){let r;const a=i!==void 0?i:2;return t?r=t:r=e.generateSessionId(),`v=0\r +o=`+(s||"thisisadapterortc")+" "+r+" "+a+` IN IP4 127.0.0.1\r +s=-\r +t=0 0\r +`},e.getDirection=function(t,i){const s=e.splitLines(t);for(let r=0;r(t.candidate&&Object.defineProperty(t,"candidate",{value:new n.RTCIceCandidate(t.candidate),writable:"false"}),t))}function Hn(n){!n.RTCIceCandidate||n.RTCIceCandidate&&"relayProtocol"in n.RTCIceCandidate.prototype||It(n,"icecandidate",e=>{if(e.candidate){const t=Bt.parseCandidate(e.candidate.candidate);t.type==="relay"&&(e.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[t.priority>>24])}return e})}function Ui(n,e){if(!n.RTCPeerConnection)return;"sctp"in n.RTCPeerConnection.prototype||Object.defineProperty(n.RTCPeerConnection.prototype,"sctp",{get(){return typeof this._sctp>"u"?null:this._sctp}});const t=function(o){if(!o||!o.sdp)return!1;const c=Bt.splitSections(o.sdp);return c.shift(),c.some(l=>{const d=Bt.parseMLine(l);return d&&d.kind==="application"&&d.protocol.indexOf("SCTP")!==-1})},i=function(o){const c=o.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(c===null||c.length<2)return-1;const l=parseInt(c[1],10);return l!==l?-1:l},s=function(o){let c=65536;return e.browser==="firefox"&&(e.version<57?o===-1?c=16384:c=2147483637:e.version<60?c=e.version===57?65535:65536:c=2147483637),c},r=function(o,c){let l=65536;e.browser==="firefox"&&e.version===57&&(l=65535);const d=Bt.matchPrefix(o.sdp,"a=max-message-size:");return d.length>0?l=parseInt(d[0].substring(19),10):e.browser==="firefox"&&c!==-1&&(l=2147483637),l},a=n.RTCPeerConnection.prototype.setRemoteDescription;n.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,e.browser==="chrome"&&e.version>=76){const{sdpSemantics:c}=this.getConfiguration();c==="plan-b"&&Object.defineProperty(this,"sctp",{get(){return typeof this._sctp>"u"?null:this._sctp},enumerable:!0,configurable:!0})}if(t(arguments[0])){const c=i(arguments[0]),l=s(c),d=r(arguments[0],c);let f;l===0&&d===0?f=Number.POSITIVE_INFINITY:l===0||d===0?f=Math.max(l,d):f=Math.min(l,d);const p={};Object.defineProperty(p,"maxMessageSize",{get(){return f}}),this._sctp=p}return a.apply(this,arguments)}}function Fi(n){if(!(n.RTCPeerConnection&&"createDataChannel"in n.RTCPeerConnection.prototype))return;function e(i,s){const r=i.send;i.send=function(){const o=arguments[0],c=o.length||o.size||o.byteLength;if(i.readyState==="open"&&s.sctp&&c>s.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+s.sctp.maxMessageSize+" bytes)");return r.apply(i,arguments)}}const t=n.RTCPeerConnection.prototype.createDataChannel;n.RTCPeerConnection.prototype.createDataChannel=function(){const s=t.apply(this,arguments);return e(s,this),s},It(n,"datachannel",i=>(e(i.channel,i.target),i))}function Jn(n){if(!n.RTCPeerConnection||"connectionState"in n.RTCPeerConnection.prototype)return;const e=n.RTCPeerConnection.prototype;Object.defineProperty(e,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(e,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(t){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),t&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=t)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach(t=>{const i=e[t];e[t]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=s=>{const r=s.target;if(r._lastConnectionState!==r.connectionState){r._lastConnectionState=r.connectionState;const a=new Event("connectionstatechange",s);r.dispatchEvent(a)}return s},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),i.apply(this,arguments)}})}function $n(n,e){if(!n.RTCPeerConnection||e.browser==="chrome"&&e.version>=71||e.browser==="safari"&&e.version>=605)return;const t=n.RTCPeerConnection.prototype.setRemoteDescription;n.RTCPeerConnection.prototype.setRemoteDescription=function(s){if(s&&s.sdp&&s.sdp.indexOf(` +a=extmap-allow-mixed`)!==-1){const r=s.sdp.split(` +`).filter(a=>a.trim()!=="a=extmap-allow-mixed").join(` +`);n.RTCSessionDescription&&s instanceof n.RTCSessionDescription?arguments[0]=new n.RTCSessionDescription({type:s.type,sdp:r}):s.sdp=r}return t.apply(this,arguments)}}function ji(n,e){if(!(n.RTCPeerConnection&&n.RTCPeerConnection.prototype))return;const t=n.RTCPeerConnection.prototype.addIceCandidate;!t||t.length===0||(n.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?(e.browser==="chrome"&&e.version<78||e.browser==="firefox"&&e.version<68||e.browser==="safari")&&arguments[0]&&arguments[0].candidate===""?Promise.resolve():t.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}function Bi(n,e){if(!(n.RTCPeerConnection&&n.RTCPeerConnection.prototype))return;const t=n.RTCPeerConnection.prototype.setLocalDescription;!t||t.length===0||(n.RTCPeerConnection.prototype.setLocalDescription=function(){let s=arguments[0]||{};if(typeof s!="object"||s.type&&s.sdp)return t.apply(this,arguments);if(s={type:s.type,sdp:s.sdp},!s.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":s.type="offer";break;default:s.type="answer";break}return s.sdp||s.type!=="offer"&&s.type!=="answer"?t.apply(this,[s]):(s.type==="offer"?this.createOffer:this.createAnswer).apply(this).then(a=>t.apply(this,[a]))})}var qu=Object.freeze({__proto__:null,removeExtmapAllowMixed:$n,shimAddIceCandidateNullOrEmpty:ji,shimConnectionState:Jn,shimMaxMessageSize:Ui,shimParameterlessSetLocalDescription:Bi,shimRTCIceCandidate:Li,shimRTCIceCandidateRelayProtocol:Hn,shimSendThrowTypeError:Fi});function Ku(){let{window:n}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{shimChrome:!0,shimFirefox:!0,shimSafari:!0};const t=ro,i=Fu(n),s={browserDetails:i,commonShim:qu,extractVersion:Ni,disableLog:Lu,disableWarnings:Uu,sdp:Vu};switch(i.browser){case"chrome":if(!Rr||!Wn||!e.shimChrome)return t("Chrome shim is not included in this adapter release."),s;if(i.version===null)return t("Chrome shim can not determine version, not shimming."),s;t("adapter.js shimming chrome."),s.browserShim=Rr,ji(n,i),Bi(n),oo(n,i),co(n),Wn(n,i),lo(n),po(n,i),uo(n),ho(n),mo(n,i),Li(n),Hn(n),Jn(n),Ui(n,i),Fi(n),$n(n,i);break;case"firefox":if(!Ir||!zn||!e.shimFirefox)return t("Firefox shim is not included in this adapter release."),s;t("adapter.js shimming firefox."),s.browserShim=Ir,ji(n,i),Bi(n),go(n,i),zn(n,i),vo(n),ko(n),bo(n),yo(n),To(n),Co(n),So(n),Po(n),Eo(n),Li(n),Jn(n),Ui(n,i),Fi(n);break;case"safari":if(!Or||!e.shimSafari)return t("Safari shim is not included in this adapter release."),s;t("adapter.js shimming safari."),s.browserShim=Or,ji(n,i),Bi(n),Do(n),xo(n),Ro(n),_o(n),wo(n),Mo(n),Io(n),Ao(n),Li(n),Hn(n),Ui(n,i),Fi(n),$n(n,i);break;default:t("Unsupported browser!");break}return s}Ku({window:typeof window>"u"?void 0:window});const Gu=10,_i="lk_e2ee",Wu="LKFrameEncryptionKey",zu={sharedKey:!1,ratchetSalt:Wu,ratchetWindowSize:8,failureTolerance:Gu,keyringSize:16};var Tt;(function(n){n.SetKey="setKey",n.RatchetRequest="ratchetRequest",n.KeyRatcheted="keyRatcheted"})(Tt||(Tt={}));var Mr;(function(n){n.KeyRatcheted="keyRatcheted"})(Mr||(Mr={}));var kt;(function(n){n.ParticipantEncryptionStatusChanged="participantEncryptionStatusChanged",n.EncryptionError="encryptionError"})(kt||(kt={}));var xr;(function(n){n.Error="cryptorError"})(xr||(xr={}));function Hu(){return Ju()||Qn()}function Qn(){return typeof window.RTCRtpScriptTransform<"u"}function Ju(){return typeof window.RTCRtpSender<"u"&&typeof window.RTCRtpSender.prototype.createEncodedStreams<"u"}class im extends nt.EventEmitter{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};super(),this.onKeyRatcheted=(t,i)=>{Z.debug("key ratcheted event received",{material:t,keyIndex:i})},this.keyInfoMap=new Map,this.options=Object.assign(Object.assign({},zu),e),this.on(Tt.KeyRatcheted,this.onKeyRatcheted)}onSetEncryptionKey(e,t,i){const s={key:e,participantIdentity:t,keyIndex:i};if(!this.options.sharedKey&&!t)throw new Error("participant identity needs to be passed for encryption key if sharedKey option is false");this.keyInfoMap.set("".concat(t??"shared","-").concat(i??0),s),this.emit(Tt.SetKey,s)}getKeys(){return Array.from(this.keyInfoMap.values())}getOptions(){return this.options}ratchetKey(e,t){this.emit(Tt.RatchetRequest,e,t)}}class Ot extends Error{constructor(e,t){super(t||"an error has occured"),this.code=e}}var te;(function(n){n[n.NotAllowed=0]="NotAllowed",n[n.ServerUnreachable=1]="ServerUnreachable",n[n.InternalError=2]="InternalError",n[n.Cancelled=3]="Cancelled",n[n.LeaveRequest=4]="LeaveRequest"})(te||(te={}));class re extends Ot{constructor(e,t,i,s){super(1,e),this.status=i,this.reason=t,this.context=s}}class ys extends Ot{constructor(e){super(21,e??"device is unsupported")}}class it extends Ot{constructor(e){super(20,e??"track is invalid")}}class $u extends Ot{constructor(e){super(10,e??"unsupported server")}}class ye extends Ot{constructor(e){super(12,e??"unexpected connection state")}}class Yn extends Ot{constructor(e){super(13,e??"unable to negotiate")}}class Ar extends Ot{constructor(e,t){super(15,e),this.reason=t}}var Hi;(function(n){n.PermissionDenied="PermissionDenied",n.NotFound="NotFound",n.DeviceInUse="DeviceInUse",n.Other="Other"})(Hi||(Hi={}));(function(n){function e(t){if(t&&"name"in t)return t.name==="NotFoundError"||t.name==="DevicesNotFoundError"?n.NotFound:t.name==="NotAllowedError"||t.name==="PermissionDeniedError"?n.PermissionDenied:t.name==="NotReadableError"||t.name==="TrackStartError"?n.DeviceInUse:n.Other}n.getFailure=e})(Hi||(Hi={}));var Nr;(function(n){n[n.InvalidKey=0]="InvalidKey",n[n.MissingKey=1]="MissingKey",n[n.InternalError=2]="InternalError"})(Nr||(Nr={}));var D;(function(n){n.Connected="connected",n.Reconnecting="reconnecting",n.SignalReconnecting="signalReconnecting",n.Reconnected="reconnected",n.Disconnected="disconnected",n.ConnectionStateChanged="connectionStateChanged",n.MediaDevicesChanged="mediaDevicesChanged",n.ParticipantConnected="participantConnected",n.ParticipantDisconnected="participantDisconnected",n.TrackPublished="trackPublished",n.TrackSubscribed="trackSubscribed",n.TrackSubscriptionFailed="trackSubscriptionFailed",n.TrackUnpublished="trackUnpublished",n.TrackUnsubscribed="trackUnsubscribed",n.TrackMuted="trackMuted",n.TrackUnmuted="trackUnmuted",n.LocalTrackPublished="localTrackPublished",n.LocalTrackUnpublished="localTrackUnpublished",n.LocalAudioSilenceDetected="localAudioSilenceDetected",n.ActiveSpeakersChanged="activeSpeakersChanged",n.ParticipantMetadataChanged="participantMetadataChanged",n.ParticipantNameChanged="participantNameChanged",n.ParticipantAttributesChanged="participantAttributesChanged",n.RoomMetadataChanged="roomMetadataChanged",n.DataReceived="dataReceived",n.SipDTMFReceived="sipDTMFReceived",n.TranscriptionReceived="transcriptionReceived",n.ConnectionQualityChanged="connectionQualityChanged",n.TrackStreamStateChanged="trackStreamStateChanged",n.TrackSubscriptionPermissionChanged="trackSubscriptionPermissionChanged",n.TrackSubscriptionStatusChanged="trackSubscriptionStatusChanged",n.AudioPlaybackStatusChanged="audioPlaybackChanged",n.VideoPlaybackStatusChanged="videoPlaybackChanged",n.MediaDevicesError="mediaDevicesError",n.ParticipantPermissionsChanged="participantPermissionsChanged",n.SignalConnected="signalConnected",n.RecordingStatusChanged="recordingStatusChanged",n.ParticipantEncryptionStatusChanged="participantEncryptionStatusChanged",n.EncryptionError="encryptionError",n.DCBufferStatusChanged="dcBufferStatusChanged",n.ActiveDeviceChanged="activeDeviceChanged",n.ChatMessage="chatMessage",n.LocalTrackSubscribed="localTrackSubscribed",n.MetricsReceived="metricsReceived"})(D||(D={}));var L;(function(n){n.TrackPublished="trackPublished",n.TrackSubscribed="trackSubscribed",n.TrackSubscriptionFailed="trackSubscriptionFailed",n.TrackUnpublished="trackUnpublished",n.TrackUnsubscribed="trackUnsubscribed",n.TrackMuted="trackMuted",n.TrackUnmuted="trackUnmuted",n.LocalTrackPublished="localTrackPublished",n.LocalTrackUnpublished="localTrackUnpublished",n.ParticipantMetadataChanged="participantMetadataChanged",n.ParticipantNameChanged="participantNameChanged",n.DataReceived="dataReceived",n.SipDTMFReceived="sipDTMFReceived",n.TranscriptionReceived="transcriptionReceived",n.IsSpeakingChanged="isSpeakingChanged",n.ConnectionQualityChanged="connectionQualityChanged",n.TrackStreamStateChanged="trackStreamStateChanged",n.TrackSubscriptionPermissionChanged="trackSubscriptionPermissionChanged",n.TrackSubscriptionStatusChanged="trackSubscriptionStatusChanged",n.MediaDevicesError="mediaDevicesError",n.AudioStreamAcquired="audioStreamAcquired",n.ParticipantPermissionsChanged="participantPermissionsChanged",n.PCTrackAdded="pcTrackAdded",n.AttributesChanged="attributesChanged",n.LocalTrackSubscribed="localTrackSubscribed",n.ChatMessage="chatMessage"})(L||(L={}));var j;(function(n){n.TransportsCreated="transportsCreated",n.Connected="connected",n.Disconnected="disconnected",n.Resuming="resuming",n.Resumed="resumed",n.Restarting="restarting",n.Restarted="restarted",n.SignalResumed="signalResumed",n.SignalRestarted="signalRestarted",n.Closing="closing",n.MediaTrackAdded="mediaTrackAdded",n.ActiveSpeakersUpdate="activeSpeakersUpdate",n.DataPacketReceived="dataPacketReceived",n.RTPVideoMapUpdate="rtpVideoMapUpdate",n.DCBufferStatusChanged="dcBufferStatusChanged",n.ParticipantUpdate="participantUpdate",n.RoomUpdate="roomUpdate",n.SpeakersChanged="speakersChanged",n.StreamStateChanged="streamStateChanged",n.ConnectionQualityUpdate="connectionQualityUpdate",n.SubscriptionError="subscriptionError",n.SubscriptionPermissionUpdate="subscriptionPermissionUpdate",n.RemoteMute="remoteMute",n.SubscribedQualityUpdate="subscribedQualityUpdate",n.LocalTrackUnpublished="localTrackUnpublished",n.LocalTrackSubscribed="localTrackSubscribed",n.Offline="offline",n.SignalRequestResponse="signalRequestResponse"})(j||(j={}));var N;(function(n){n.Message="message",n.Muted="muted",n.Unmuted="unmuted",n.Restarted="restarted",n.Ended="ended",n.Subscribed="subscribed",n.Unsubscribed="unsubscribed",n.UpdateSettings="updateSettings",n.UpdateSubscription="updateSubscription",n.AudioPlaybackStarted="audioPlaybackStarted",n.AudioPlaybackFailed="audioPlaybackFailed",n.AudioSilenceDetected="audioSilenceDetected",n.VisibilityChanged="visibilityChanged",n.VideoDimensionsChanged="videoDimensionsChanged",n.VideoPlaybackStarted="videoPlaybackStarted",n.VideoPlaybackFailed="videoPlaybackFailed",n.ElementAttached="elementAttached",n.ElementDetached="elementDetached",n.UpstreamPaused="upstreamPaused",n.UpstreamResumed="upstreamResumed",n.SubscriptionPermissionChanged="subscriptionPermissionChanged",n.SubscriptionStatusChanged="subscriptionStatusChanged",n.SubscriptionFailed="subscriptionFailed",n.TrackProcessorUpdate="trackProcessorUpdate",n.AudioTrackFeatureUpdate="audioTrackFeatureUpdate",n.TranscriptionReceived="transcriptionReceived",n.TimeSyncUpdate="timeSyncUpdate"})(N||(N={}));function ks(n,e,t){var i,s,r;e===void 0&&(e=50),t===void 0&&(t={});var a=(i=t.isImmediate)!=null&&i,o=(s=t.callback)!=null&&s,c=t.maxWait,l=Date.now(),d=[];function f(){if(c!==void 0){var m=Date.now()-l;if(m+e>=c)return c-m}return e}var p=function(){var m=[].slice.call(arguments),y=this;return new Promise(function(C,_){var b=a&&r===void 0;if(r!==void 0&&clearTimeout(r),r=setTimeout(function(){if(r=void 0,l=Date.now(),!a){var W=n.apply(y,m);o&&o(W),d.forEach(function(P){return(0,P.resolve)(W)}),d=[]}},f()),b){var G=n.apply(y,m);return o&&o(G),C(G)}d.push({resolve:C,reject:_})})};return p.cancel=function(m){r!==void 0&&clearTimeout(r),d.forEach(function(y){return(0,y.reject)(m)}),d=[]},p}const Qu=/version\/(\d+(\.?_?\d+)+)/i;let En;function ut(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(typeof navigator>"u")return;const t=navigator.userAgent.toLowerCase();if(En===void 0||e){const i=Yu.find(s=>{let{test:r}=s;return r.test(t)});En=i==null?void 0:i.describe(t)}return En}const Yu=[{test:/firefox|iceweasel|fxios/i,describe(n){return{name:"Firefox",version:Vi(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,n),os:n.toLowerCase().includes("fxios")?"iOS":void 0,osVersion:_n(n)}}},{test:/chrom|crios|crmo/i,describe(n){return{name:"Chrome",version:Vi(/(?:chrome|chromium|crios|crmo)\/(\d+(\.?_?\d+)+)/i,n),os:n.toLowerCase().includes("crios")?"iOS":void 0,osVersion:_n(n)}}},{test:/safari|applewebkit/i,describe(n){return{name:"Safari",version:Vi(Qu,n),os:n.includes("mobile/")?"iOS":"macOS",osVersion:_n(n)}}}];function Vi(n,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;const i=e.match(n);return i&&i.length>=t&&i[t]||""}function _n(n){return n.includes("mac os")?Vi(/\(.+?(\d+_\d+(:?_\d+)?)/,n,1).replace(/_/g,"."):void 0}var Xu="2.7.5";const Zu=Xu,eh=15;class Ee{}Ee.setTimeout=function(){return setTimeout(...arguments)};Ee.setInterval=function(){return setInterval(...arguments)};Ee.clearTimeout=function(){return clearTimeout(...arguments)};Ee.clearInterval=function(){return clearInterval(...arguments)};class ne{constructor(e,t,i,s,r){if(typeof e=="object")this.width=e.width,this.height=e.height,this.aspectRatio=e.aspectRatio,this.encoding={maxBitrate:e.maxBitrate,maxFramerate:e.maxFramerate,priority:e.priority};else if(t!==void 0&&i!==void 0)this.width=e,this.height=t,this.aspectRatio=e/t,this.encoding={maxBitrate:i,maxFramerate:s,priority:r};else throw new TypeError("Unsupported options: provide at least width, height and maxBitrate")}get resolution(){return{width:this.width,height:this.height,frameRate:this.encoding.maxFramerate,aspectRatio:this.aspectRatio}}}const th=["vp8","h264"],ih=["vp8","h264","vp9","av1"];function nh(n){return!!th.find(e=>e===n)}var Xn;(function(n){n.telephone={maxBitrate:12e3},n.speech={maxBitrate:24e3},n.music={maxBitrate:48e3},n.musicStereo={maxBitrate:64e3},n.musicHighQuality={maxBitrate:96e3},n.musicHighQualityStereo={maxBitrate:128e3}})(Xn||(Xn={}));const gi={h90:new ne(160,90,9e4,20),h180:new ne(320,180,16e4,20),h216:new ne(384,216,18e4,20),h360:new ne(640,360,45e4,20),h540:new ne(960,540,8e5,25),h720:new ne(1280,720,17e5,30),h1080:new ne(1920,1080,3e6,30),h1440:new ne(2560,1440,5e6,30),h2160:new ne(3840,2160,8e6,30)},Zn={h120:new ne(160,120,7e4,20),h180:new ne(240,180,125e3,20),h240:new ne(320,240,14e4,20),h360:new ne(480,360,33e4,20),h480:new ne(640,480,5e5,20),h540:new ne(720,540,6e5,25),h720:new ne(960,720,13e5,30),h1080:new ne(1440,1080,23e5,30),h1440:new ne(1920,1440,38e5,30)},Ts={h360fps3:new ne(640,360,2e5,3,"medium"),h360fps15:new ne(640,360,4e5,15,"medium"),h720fps5:new ne(1280,720,8e5,5,"medium"),h720fps15:new ne(1280,720,15e5,15,"medium"),h720fps30:new ne(1280,720,2e6,30,"medium"),h1080fps15:new ne(1920,1080,25e5,15,"medium"),h1080fps30:new ne(1920,1080,5e6,30,"medium"),original:new ne(0,0,7e6,30,"medium")};function sh(n){if(!(typeof n>"u"))return typeof structuredClone=="function"?structuredClone(n):JSON.parse(JSON.stringify(n))}const rh=5e3,ti=[];var je;(function(n){n[n.LOW=0]="LOW",n[n.MEDIUM=1]="MEDIUM",n[n.HIGH=2]="HIGH"})(je||(je={}));class E extends nt.EventEmitter{constructor(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};var s;super(),this.attachedElements=[],this.isMuted=!1,this.streamState=E.StreamState.Active,this.isInBackground=!1,this._currentBitrate=0,this.log=Z,this.appVisibilityChangedListener=()=>{this.backgroundTimeout&&clearTimeout(this.backgroundTimeout),document.visibilityState==="hidden"?this.backgroundTimeout=setTimeout(()=>this.handleAppVisibilityChanged(),rh):this.handleAppVisibilityChanged()},this.log=dt((s=i.loggerName)!==null&&s!==void 0?s:Je.Track),this.loggerContextCb=i.loggerContextCb,this.setMaxListeners(100),this.kind=t,this._mediaStreamTrack=e,this._mediaStreamID=e.id,this.source=E.Source.Unknown}get logContext(){var e;return Object.assign(Object.assign({},(e=this.loggerContextCb)===null||e===void 0?void 0:e.call(this)),se(this))}get currentBitrate(){return this._currentBitrate}get mediaStreamTrack(){return this._mediaStreamTrack}get mediaStreamID(){return this._mediaStreamID}attach(e){let t="audio";this.kind===E.Kind.Video&&(t="video"),this.attachedElements.length===0&&this.kind===E.Kind.Video&&this.addAppVisibilityListener(),e||(t==="audio"&&(ti.forEach(r=>{r.parentElement===null&&!e&&(e=r)}),e&&ti.splice(ti.indexOf(e),1)),e||(e=document.createElement(t))),this.attachedElements.includes(e)||this.attachedElements.push(e),Ft(this.mediaStreamTrack,e);const i=e.srcObject.getTracks(),s=i.some(r=>r.kind==="audio");return e.play().then(()=>{this.emit(s?N.AudioPlaybackStarted:N.VideoPlaybackStarted)}).catch(r=>{r.name==="NotAllowedError"?this.emit(s?N.AudioPlaybackFailed:N.VideoPlaybackFailed,r):r.name==="AbortError"?Z.debug("".concat(s?"audio":"video"," playback aborted, likely due to new play request")):Z.warn("could not playback ".concat(s?"audio":"video"),r),s&&e&&i.some(a=>a.kind==="video")&&r.name==="NotAllowedError"&&(e.muted=!0,e.play().catch(()=>{}))}),this.emit(N.ElementAttached,e),e}detach(e){try{if(e){Vt(this.mediaStreamTrack,e);const i=this.attachedElements.indexOf(e);return i>=0&&(this.attachedElements.splice(i,1),this.recycleElement(e),this.emit(N.ElementDetached,e)),e}const t=[];return this.attachedElements.forEach(i=>{Vt(this.mediaStreamTrack,i),t.push(i),this.recycleElement(i),this.emit(N.ElementDetached,i)}),this.attachedElements=[],t}finally{this.attachedElements.length===0&&this.removeAppVisibilityListener()}}stop(){this.stopMonitor(),this._mediaStreamTrack.stop()}enable(){this._mediaStreamTrack.enabled=!0}disable(){this._mediaStreamTrack.enabled=!1}stopMonitor(){this.monitorInterval&&clearInterval(this.monitorInterval),this.timeSyncHandle&&cancelAnimationFrame(this.timeSyncHandle)}updateLoggerOptions(e){e.loggerName&&(this.log=dt(e.loggerName)),e.loggerContextCb&&(this.loggerContextCb=e.loggerContextCb)}recycleElement(e){if(e instanceof HTMLAudioElement){let t=!0;e.pause(),ti.forEach(i=>{i.parentElement||(t=!1)}),t&&ti.push(e)}}handleAppVisibilityChanged(){return g(this,void 0,void 0,function*(){this.isInBackground=document.visibilityState==="hidden",!this.isInBackground&&this.kind===E.Kind.Video&&setTimeout(()=>this.attachedElements.forEach(e=>e.play().catch(()=>{})),0)})}addAppVisibilityListener(){Le()?(this.isInBackground=document.visibilityState==="hidden",document.addEventListener("visibilitychange",this.appVisibilityChangedListener)):this.isInBackground=!1}removeAppVisibilityListener(){Le()&&document.removeEventListener("visibilitychange",this.appVisibilityChangedListener)}}function Ft(n,e){let t;e.srcObject instanceof MediaStream?t=e.srcObject:t=new MediaStream;let i;n.kind==="audio"?i=t.getAudioTracks():i=t.getVideoTracks(),i.includes(n)||(i.forEach(s=>{t.removeTrack(s)}),t.addTrack(n)),(!Rt()||!(e instanceof HTMLVideoElement))&&(e.autoplay=!0),e.muted=t.getAudioTracks().length===0,e instanceof HTMLVideoElement&&(e.playsInline=!0),e.srcObject!==t&&(e.srcObject=t,(Rt()||Wt())&&e instanceof HTMLVideoElement&&setTimeout(()=>{e.srcObject=t,e.play().catch(()=>{})},0))}function Vt(n,e){if(e.srcObject instanceof MediaStream){const t=e.srcObject;t.removeTrack(n),t.getTracks().length>0?e.srcObject=t:e.srcObject=null}}(function(n){let e;(function(l){l.Audio="audio",l.Video="video",l.Unknown="unknown"})(e=n.Kind||(n.Kind={}));let t;(function(l){l.Camera="camera",l.Microphone="microphone",l.ScreenShare="screen_share",l.ScreenShareAudio="screen_share_audio",l.Unknown="unknown"})(t=n.Source||(n.Source={}));let i;(function(l){l.Active="active",l.Paused="paused",l.Unknown="unknown"})(i=n.StreamState||(n.StreamState={}));function s(l){switch(l){case e.Audio:return Ge.AUDIO;case e.Video:return Ge.VIDEO;default:return Ge.DATA}}n.kindToProto=s;function r(l){switch(l){case Ge.AUDIO:return e.Audio;case Ge.VIDEO:return e.Video;default:return e.Unknown}}n.kindFromProto=r;function a(l){switch(l){case t.Camera:return Re.CAMERA;case t.Microphone:return Re.MICROPHONE;case t.ScreenShare:return Re.SCREEN_SHARE;case t.ScreenShareAudio:return Re.SCREEN_SHARE_AUDIO;default:return Re.UNKNOWN}}n.sourceToProto=a;function o(l){switch(l){case Re.CAMERA:return t.Camera;case Re.MICROPHONE:return t.Microphone;case Re.SCREEN_SHARE:return t.ScreenShare;case Re.SCREEN_SHARE_AUDIO:return t.ScreenShareAudio;default:return t.Unknown}}n.sourceFromProto=o;function c(l){switch(l){case Bn.ACTIVE:return i.Active;case Bn.PAUSED:return i.Paused;default:return i.Unknown}}n.streamStateFromProto=c})(E||(E={}));function Lo(n,e,t){var i;const{optionsWithoutProcessor:s,audioProcessor:r,videoProcessor:a}=Cs(n??{}),o=(i=sh(s))!==null&&i!==void 0?i:{};return o.audio===!0&&(o.audio={}),o.video===!0&&(o.video={}),o.audio&&(es(o.audio,e),r&&(o.audio.processor=r)),o.video&&(es(o.video,t),a&&(o.video.processor=a)),o}function es(n,e){return Object.keys(e).forEach(t=>{n[t]===void 0&&(n[t]=e[t])}),n}function nn(n){const e={};if(n.video)if(typeof n.video=="object"){const t={},i=t,s=n.video;Object.keys(s).forEach(r=>{switch(r){case"resolution":es(i,s.resolution);break;default:i[r]=s[r]}}),e.video=t}else e.video=n.video;else e.video=!1;return n.audio?typeof n.audio=="object"?e.audio=n.audio:e.audio=!0:e.audio=!1,e}function ah(n){return g(this,arguments,void 0,function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:200;return function*(){const i=Uo();if(i){const s=i.createAnalyser();s.fftSize=2048;const r=s.frequencyBinCount,a=new Uint8Array(r);i.createMediaStreamSource(new MediaStream([e.mediaStreamTrack])).connect(s),yield He(t),s.getByteTimeDomainData(a);const c=a.some(l=>l!==128&&l!==0);return i.close(),!c}return!1}()})}function Uo(){const n=typeof window<"u"&&(window.AudioContext||window.webkitAudioContext);if(n)return new n({latencyHint:"interactive"})}function Lr(n){return n===E.Source.Microphone?"audioinput":n===E.Source.Camera?"videoinput":void 0}function oh(n){var e,t;let i=(e=n.video)!==null&&e!==void 0?e:!0;return n.resolution&&n.resolution.width>0&&n.resolution.height>0&&(i=typeof i=="boolean"?{}:i,Rt()?i=Object.assign(Object.assign({},i),{width:{max:n.resolution.width},height:{max:n.resolution.height},frameRate:n.resolution.frameRate}):i=Object.assign(Object.assign({},i),{width:{ideal:n.resolution.width},height:{ideal:n.resolution.height},frameRate:n.resolution.frameRate})),{audio:(t=n.audio)!==null&&t!==void 0?t:!1,video:i,controller:n.controller,selfBrowserSurface:n.selfBrowserSurface,surfaceSwitching:n.surfaceSwitching,systemAudio:n.systemAudio,preferCurrentTab:n.preferCurrentTab}}function qi(n){return n.split("/")[1].toLowerCase()}function ch(n){const e=[];return n.forEach(t=>{t.track!==void 0&&e.push(new gs({cid:t.track.mediaStreamID,track:t.trackInfo}))}),e}function se(n){return n instanceof E?{trackID:n.sid,source:n.source,muted:n.isMuted,enabled:n.mediaStreamTrack.enabled,kind:n.kind,streamID:n.mediaStreamID,streamTrackID:n.mediaStreamTrack.id}:{trackID:n.trackSid,enabled:n.isEnabled,muted:n.isMuted,trackInfo:Object.assign({mimeType:n.mimeType,name:n.trackName,encrypted:n.isEncrypted,kind:n.kind,source:n.source},n.track?se(n.track):{})}}function lh(){return typeof RTCRtpReceiver<"u"&&"getSynchronizationSources"in RTCRtpReceiver}function dh(n,e){var t;n===void 0&&(n={}),e===void 0&&(e={});const i=[...Object.keys(e),...Object.keys(n)],s={};for(const r of i)n[r]!==e[r]&&(s[r]=(t=e[r])!==null&&t!==void 0?t:"");return s}function Cs(n){const e=Object.assign({},n);let t,i;return typeof e.audio=="object"&&e.audio.processor&&(t=e.audio.processor,e.audio=Object.assign(Object.assign({},e.audio),{processor:void 0})),typeof e.video=="object"&&e.video.processor&&(i=e.video.processor,e.video=Object.assign(Object.assign({},e.video),{processor:void 0})),{audioProcessor:t,videoProcessor:i,optionsWithoutProcessor:e}}const uh="|",Ur="https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension";function hh(n){const e=n.split(uh);return e.length>1?[e[0],n.substr(e[0].length+1)]:[n,""]}function He(n){return g(this,void 0,void 0,function*(){return new Promise(e=>Ee.setTimeout(e,n))})}function ts(){return"addTransceiver"in RTCPeerConnection.prototype}function is(){return"addTrack"in RTCPeerConnection.prototype}function fh(){if(!("getCapabilities"in RTCRtpSender)||Rt())return!1;const n=RTCRtpSender.getCapabilities("video");let e=!1;if(n){for(const t of n.codecs)if(t.mimeType==="video/AV1"){e=!0;break}}return e}function ph(){if(!("getCapabilities"in RTCRtpSender)||Wt())return!1;if(Rt()){const t=ut();if(t!=null&&t.version&&zt(t.version,"16")<0)return!1}const n=RTCRtpSender.getCapabilities("video");let e=!1;if(n){for(const t of n.codecs)if(t.mimeType==="video/VP9"){e=!0;break}}return e}function di(n){return n==="av1"||n==="vp9"}function ns(n){return document?(n||(n=document.createElement("audio")),"setSinkId"in n):!1}function mh(){return typeof RTCPeerConnection>"u"?!1:ts()||is()}function Wt(){var n;return((n=ut())===null||n===void 0?void 0:n.name)==="Firefox"}function Rt(){var n;return((n=ut())===null||n===void 0?void 0:n.name)==="Safari"}function gh(){const n=ut();return(n==null?void 0:n.name)==="Safari"&&n.version.startsWith("17.")}function Fo(){var n,e;return Le()?(e=(n=navigator.userAgentData)===null||n===void 0?void 0:n.mobile)!==null&&e!==void 0?e:/Tablet|iPad|Mobile|Android|BlackBerry/.test(navigator.userAgent):!1}function vh(){const n=ut(),e="17.2";if(n)return n.name!=="Safari"&&n.os!=="iOS"||n.os==="iOS"&&n.osVersion&&zt(e,n.osVersion)>=0?!0:n.name==="Safari"&&zt(e,n.version)>=0}function Le(){return typeof document<"u"}function ht(){return navigator.product=="ReactNative"}function ss(n){return n.hostname.endsWith(".livekit.cloud")||n.hostname.endsWith(".livekit.run")}function jo(){if(global&&global.LiveKitReactNativeGlobal)return global.LiveKitReactNativeGlobal}function Bo(){if(!ht())return;let n=jo();if(n)return n.platform}function Fr(){if(Le())return window.devicePixelRatio;if(ht()){let n=jo();if(n)return n.devicePixelRatio}return 1}function zt(n,e){const t=n.split("."),i=e.split("."),s=Math.min(t.length,i.length);for(let r=0;ro)return 1;if(a(wn||(wn=new ResizeObserver(bh)),wn);let Rn=null;const Br=()=>(Rn||(Rn=new IntersectionObserver(yh,{root:null,rootMargin:"0px"})),Rn);function kh(){var n;const e=new eu({sdk:Ka.JS,protocol:eh,version:Zu});return ht()&&(e.os=(n=Bo())!==null&&n!==void 0?n:""),e}function Vr(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:16,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:16,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;const s=document.createElement("canvas");s.width=n,s.height=e;const r=s.getContext("2d");r==null||r.fillRect(0,0,s.width,s.height),i&&r&&(r.beginPath(),r.arc(n/2,e/2,50,0,Math.PI*2,!0),r.closePath(),r.fillStyle="grey",r.fill());const a=s.captureStream(),[o]=a.getTracks();if(!o)throw Error("Could not get empty media stream video track");return o.enabled=t,o}let ii;function In(){if(!ii){const n=new AudioContext,e=n.createOscillator(),t=n.createGain();t.gain.setValueAtTime(0,0);const i=n.createMediaStreamDestination();if(e.connect(t),t.connect(i),e.start(),[ii]=i.stream.getAudioTracks(),!ii)throw Error("Could not get empty media stream audio track");ii.enabled=!1}return ii.clone()}class Vo{constructor(e,t){this.onFinally=t,this.promise=new Promise((i,s)=>g(this,void 0,void 0,function*(){this.resolve=i,this.reject=s,e&&(yield e(i,s))})).finally(()=>{var i;return(i=this.onFinally)===null||i===void 0?void 0:i.call(this)})}}function Th(n){return ih.includes(n)}function lt(n){if(typeof n=="string"||typeof n=="number")return n;if(Array.isArray(n))return n[0];if(n.exact)return Array.isArray(n.exact)?n.exact[0]:n.exact;if(n.ideal)return Array.isArray(n.ideal)?n.ideal[0]:n.ideal;throw Error("could not unwrap constraint")}function Ch(n){return n.startsWith("http")?n.replace(/^(http)/,"ws"):n}function qr(n){return n.startsWith("ws")?n.replace(/^(ws)/,"http"):n}function Sh(n,e){return n.segments.map(t=>{let{id:i,text:s,language:r,startTime:a,endTime:o,final:c}=t;var l;const d=(l=e.get(i))!==null&&l!==void 0?l:Date.now(),f=Date.now();return c?e.delete(i):e.set(i,d),{id:i,text:s,startTime:Number.parseInt(a.toString()),endTime:Number.parseInt(o.toString()),final:c,language:r,firstReceivedTime:d,lastReceivedTime:f}})}function Ph(n){const{id:e,timestamp:t,message:i,editTimestamp:s}=n;return{id:e,timestamp:Number.parseInt(t.toString()),editTimestamp:s?Number.parseInt(s.toString()):void 0,message:i}}function Kr(n){switch(n.reason){case te.LeaveRequest:return n.context;case te.Cancelled:return ze.CLIENT_INITIATED;case te.NotAllowed:return ze.USER_REJECTED;case te.ServerUnreachable:return ze.JOIN_FAILURE;default:return ze.UNKNOWN_REASON}}const On="default";class Pe{static getInstance(){return this.instance===void 0&&(this.instance=new Pe),this.instance}getDevices(e){return g(this,arguments,void 0,function(t){var i=this;let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){var r;if(((r=Pe.userMediaPromiseMap)===null||r===void 0?void 0:r.size)>0){Z.debug("awaiting getUserMedia promise");try{t?yield Pe.userMediaPromiseMap.get(t):yield Promise.all(Pe.userMediaPromiseMap.values())}catch{Z.warn("error waiting for media permissons")}}let a=yield navigator.mediaDevices.enumerateDevices();if(s&&!(Rt()&&i.hasDeviceInUse(t))&&(a.filter(c=>c.kind===t).length===0||a.some(c=>{const l=c.label==="",d=t?c.kind===t:!0;return l&&d}))){const c={video:t!=="audioinput"&&t!=="audiooutput",audio:t!=="videoinput"},l=yield navigator.mediaDevices.getUserMedia(c);a=yield navigator.mediaDevices.enumerateDevices(),l.getTracks().forEach(d=>{d.stop()})}return t&&(a=a.filter(o=>o.kind===t)),a}()})}normalizeDeviceId(e,t,i){return g(this,void 0,void 0,function*(){if(t!==On)return t;const s=yield this.getDevices(e),r=s.find(o=>o.deviceId===On);if(!r){Z.warn("could not reliably determine default device");return}const a=s.find(o=>o.deviceId!==On&&o.groupId===(i??r.groupId));if(!a){Z.warn("could not reliably determine default device");return}return a==null?void 0:a.deviceId})}hasDeviceInUse(e){return e?Pe.userMediaPromiseMap.has(e):Pe.userMediaPromiseMap.size>0}}Pe.mediaDeviceKinds=["audioinput","audiooutput","videoinput"];Pe.userMediaPromiseMap=new Map;const Eh=1e3;class qt extends E{get sender(){return this._sender}set sender(e){this._sender=e}get constraints(){return this._constraints}constructor(e,t,i){let s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,r=arguments.length>4?arguments[4]:void 0;super(e,t,r),this.manuallyStopped=!1,this._isUpstreamPaused=!1,this.handleTrackMuteEvent=()=>this.debouncedTrackMuteHandler().catch(()=>this.log.debug("track mute bounce got cancelled by an unmute event",this.logContext)),this.debouncedTrackMuteHandler=ks(()=>g(this,void 0,void 0,function*(){yield this.pauseUpstream()}),5e3),this.handleTrackUnmuteEvent=()=>g(this,void 0,void 0,function*(){this.debouncedTrackMuteHandler.cancel("unmute"),yield this.resumeUpstream()}),this.handleEnded=()=>{this.isInBackground&&(this.reacquireTrack=!0),this._mediaStreamTrack.removeEventListener("mute",this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener("unmute",this.handleTrackUnmuteEvent),this.emit(N.Ended,this)},this.reacquireTrack=!1,this.providedByUser=s,this.muteLock=new Ne,this.pauseUpstreamLock=new Ne,this.processorLock=new Ne,this.restartLock=new Ne,this.setMediaStreamTrack(e,!0),this._constraints=e.getConstraints(),i&&(this._constraints=i)}get id(){return this._mediaStreamTrack.id}get dimensions(){if(this.kind!==E.Kind.Video)return;const{width:e,height:t}=this._mediaStreamTrack.getSettings();if(e&&t)return{width:e,height:t}}get isUpstreamPaused(){return this._isUpstreamPaused}get isUserProvided(){return this.providedByUser}get mediaStreamTrack(){var e,t;return(t=(e=this.processor)===null||e===void 0?void 0:e.processedTrack)!==null&&t!==void 0?t:this._mediaStreamTrack}getSourceTrackSettings(){return this._mediaStreamTrack.getSettings()}setMediaStreamTrack(e,t){return g(this,void 0,void 0,function*(){if(e===this._mediaStreamTrack&&!t)return;this._mediaStreamTrack&&(this.attachedElements.forEach(s=>{Vt(this._mediaStreamTrack,s)}),this.debouncedTrackMuteHandler.cancel("new-track"),this._mediaStreamTrack.removeEventListener("ended",this.handleEnded),this._mediaStreamTrack.removeEventListener("mute",this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener("unmute",this.handleTrackUnmuteEvent)),this.mediaStream=new MediaStream([e]),e&&(e.addEventListener("ended",this.handleEnded),e.addEventListener("mute",this.handleTrackMuteEvent),e.addEventListener("unmute",this.handleTrackUnmuteEvent),this._constraints=e.getConstraints());let i;if(this.processor&&e){const s=yield this.processorLock.lock();try{if(this.log.debug("restarting processor",this.logContext),this.kind==="unknown")throw TypeError("cannot set processor on track of unknown kind");this.processorElement&&(Ft(e,this.processorElement),this.processorElement.muted=!0),yield this.processor.restart({track:e,kind:this.kind,element:this.processorElement}),i=this.processor.processedTrack}finally{s()}}this.sender&&(yield this.sender.replaceTrack(i??e)),!this.providedByUser&&this._mediaStreamTrack!==e&&this._mediaStreamTrack.stop(),this._mediaStreamTrack=e,e&&(this._mediaStreamTrack.enabled=!this.isMuted,yield this.resumeUpstream(),this.attachedElements.forEach(s=>{Ft(i??e,s)}))})}waitForDimensions(){return g(this,arguments,void 0,function(){var e=this;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Eh;return function*(){var i;if(e.kind===E.Kind.Audio)throw new Error("cannot get dimensions for audio tracks");((i=ut())===null||i===void 0?void 0:i.os)==="iOS"&&(yield He(10));const s=Date.now();for(;Date.now()-s0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){if(e.source===E.Source.ScreenShare)return;const{deviceId:i,groupId:s}=e._mediaStreamTrack.getSettings(),r=e.kind===E.Kind.Audio?"audioinput":"videoinput";return t?Pe.getInstance().normalizeDeviceId(r,i,s):i}()})}mute(){return g(this,void 0,void 0,function*(){return this.setTrackMuted(!0),this})}unmute(){return g(this,void 0,void 0,function*(){return this.setTrackMuted(!1),this})}replaceTrack(e,t){return g(this,void 0,void 0,function*(){if(!this.sender)throw new it("unable to replace an unpublished track");let i,s;return typeof t=="boolean"?i=t:t!==void 0&&(i=t.userProvidedTrack,s=t.stopProcessor),this.providedByUser=i??!0,this.log.debug("replace MediaStreamTrack",this.logContext),yield this.setMediaStreamTrack(e),s&&this.processor&&(yield this.stopProcessor()),this})}restart(e){return g(this,void 0,void 0,function*(){this.manuallyStopped=!1;const t=yield this.restartLock.lock();try{e||(e=this._constraints),this.log.debug("restarting track with constraints",Object.assign(Object.assign({},this.logContext),{constraints:e}));const i={audio:!1,video:!1};this.kind===E.Kind.Video?i.video=e:i.audio=e,this.attachedElements.forEach(a=>{Vt(this.mediaStreamTrack,a)}),this._mediaStreamTrack.removeEventListener("ended",this.handleEnded),this._mediaStreamTrack.stop();const r=(yield navigator.mediaDevices.getUserMedia(i)).getTracks()[0];return r.addEventListener("ended",this.handleEnded),this.log.debug("re-acquired MediaStreamTrack",this.logContext),yield this.setMediaStreamTrack(r),this._constraints=e,this.emit(N.Restarted,this),this.manuallyStopped&&(this.log.warn("track was stopped during a restart, stopping restarted track",this.logContext),this.stop()),this}finally{t()}})}setTrackMuted(e){this.log.debug("setting ".concat(this.kind," track ").concat(e?"muted":"unmuted"),this.logContext),!(this.isMuted===e&&this._mediaStreamTrack.enabled!==e)&&(this.isMuted=e,this._mediaStreamTrack.enabled=!e,this.emit(e?N.Muted:N.Unmuted,this))}get needsReAcquisition(){return this._mediaStreamTrack.readyState!=="live"||this._mediaStreamTrack.muted||!this._mediaStreamTrack.enabled||this.reacquireTrack}handleAppVisibilityChanged(){const e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return g(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),Fo()&&(this.log.debug("visibility changed, is in Background: ".concat(this.isInBackground),this.logContext),!this.isInBackground&&this.needsReAcquisition&&!this.isUserProvided&&!this.isMuted&&(this.log.debug("track needs to be reacquired, restarting ".concat(this.source),this.logContext),yield this.restart(),this.reacquireTrack=!1))})}stop(){var e;this.manuallyStopped=!0,super.stop(),this._mediaStreamTrack.removeEventListener("ended",this.handleEnded),this._mediaStreamTrack.removeEventListener("mute",this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener("unmute",this.handleTrackUnmuteEvent),(e=this.processor)===null||e===void 0||e.destroy(),this.processor=void 0}pauseUpstream(){return g(this,void 0,void 0,function*(){const e=yield this.pauseUpstreamLock.lock();try{if(this._isUpstreamPaused===!0)return;if(!this.sender){this.log.warn("unable to pause upstream for an unpublished track",this.logContext);return}this._isUpstreamPaused=!0,this.emit(N.UpstreamPaused,this);const t=ut();if((t==null?void 0:t.name)==="Safari"&&zt(t.version,"12.0")<0)throw new ys("pauseUpstream is not supported on Safari < 12.");yield this.sender.replaceTrack(null)}finally{e()}})}resumeUpstream(){return g(this,void 0,void 0,function*(){const e=yield this.pauseUpstreamLock.lock();try{if(this._isUpstreamPaused===!1)return;if(!this.sender){this.log.warn("unable to resume upstream for an unpublished track",this.logContext);return}this._isUpstreamPaused=!1,this.emit(N.UpstreamResumed,this),yield this.sender.replaceTrack(this.mediaStreamTrack)}finally{e()}})}getRTCStatsReport(){return g(this,void 0,void 0,function*(){var e;return!((e=this.sender)===null||e===void 0)&&e.getStats?yield this.sender.getStats():void 0})}setProcessor(e){return g(this,arguments,void 0,function(t){var i=this;let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){var r;const a=yield i.processorLock.lock();try{i.log.debug("setting up processor",i.logContext);const o=document.createElement(i.kind),c={kind:i.kind,track:i._mediaStreamTrack,element:o,audioContext:i.audioContext};if(yield t.init(c),i.log.debug("processor initialized",i.logContext),i.processor&&(yield i.stopProcessor()),i.kind==="unknown")throw TypeError("cannot set processor on track of unknown kind");if(Ft(i._mediaStreamTrack,o),o.muted=!0,o.play().catch(l=>i.log.error("failed to play processor element",Object.assign(Object.assign({},i.logContext),{error:l}))),i.processor=t,i.processorElement=o,i.processor.processedTrack){for(const l of i.attachedElements)l!==i.processorElement&&s&&(Vt(i._mediaStreamTrack,l),Ft(i.processor.processedTrack,l));yield(r=i.sender)===null||r===void 0?void 0:r.replaceTrack(i.processor.processedTrack)}i.emit(N.TrackProcessorUpdate,i.processor)}finally{a()}}()})}getProcessor(){return this.processor}stopProcessor(){return g(this,arguments,void 0,function(){var e=this;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){var i,s;e.processor&&(e.log.debug("stopping processor",e.logContext),(i=e.processor.processedTrack)===null||i===void 0||i.stop(),yield e.processor.destroy(),e.processor=void 0,t||((s=e.processorElement)===null||s===void 0||s.remove(),e.processorElement=void 0),yield e._mediaStreamTrack.applyConstraints(e._constraints),yield e.setMediaStreamTrack(e._mediaStreamTrack,!0),e.emit(N.TrackProcessorUpdate))}()})}}class _h extends nt.EventEmitter{constructor(e){super(),this.onWorkerMessage=t=>{var i,s;const{kind:r,data:a}=t.data;switch(r){case"error":Z.error(a.error.message),this.emit(kt.EncryptionError,a.error);break;case"initAck":a.enabled&&this.keyProvider.getKeys().forEach(o=>{this.postKey(o)});break;case"enable":if(a.enabled&&this.keyProvider.getKeys().forEach(o=>{this.postKey(o)}),this.encryptionEnabled!==a.enabled&&a.participantIdentity===((i=this.room)===null||i===void 0?void 0:i.localParticipant.identity))this.emit(kt.ParticipantEncryptionStatusChanged,a.enabled,this.room.localParticipant),this.encryptionEnabled=a.enabled;else if(a.participantIdentity){const o=(s=this.room)===null||s===void 0?void 0:s.getParticipantByIdentity(a.participantIdentity);if(!o)throw TypeError("couldn't set encryption status, participant not found".concat(a.participantIdentity));this.emit(kt.ParticipantEncryptionStatusChanged,a.enabled,o)}break;case"ratchetKey":this.keyProvider.emit(Tt.KeyRatcheted,a.material,a.keyIndex);break}},this.onWorkerError=t=>{Z.error("e2ee worker encountered an error:",{error:t.error}),this.emit(kt.EncryptionError,t.error)},this.keyProvider=e.keyProvider,this.worker=e.worker,this.encryptionEnabled=!1}setup(e){if(!Hu())throw new ys("tried to setup end-to-end encryption on an unsupported browser");if(Z.info("setting up e2ee"),e!==this.room){this.room=e,this.setupEventListeners(e,this.keyProvider);const t={kind:"init",data:{keyProviderOptions:this.keyProvider.getOptions(),loglevel:Mu.getLevel()}};this.worker&&(Z.info("initializing worker",{worker:this.worker}),this.worker.onmessage=this.onWorkerMessage,this.worker.onerror=this.onWorkerError,this.worker.postMessage(t))}}setParticipantCryptorEnabled(e,t){Z.debug("set e2ee to ".concat(e," for participant ").concat(t)),this.postEnable(e,t)}setSifTrailer(e){!e||e.length===0?Z.warn("ignoring server sent trailer as it's empty"):this.postSifTrailer(e)}setupEngine(e){e.on(j.RTPVideoMapUpdate,t=>{this.postRTPMap(t)})}setupEventListeners(e,t){e.on(D.TrackPublished,(i,s)=>this.setParticipantCryptorEnabled(i.trackInfo.encryption!==Ae.NONE,s.identity)),e.on(D.ConnectionStateChanged,i=>{i===ie.Connected&&e.remoteParticipants.forEach(s=>{s.trackPublications.forEach(r=>{this.setParticipantCryptorEnabled(r.trackInfo.encryption!==Ae.NONE,s.identity)})})}).on(D.TrackUnsubscribed,(i,s,r)=>{var a;const o={kind:"removeTransform",data:{participantIdentity:r.identity,trackId:i.mediaStreamID}};(a=this.worker)===null||a===void 0||a.postMessage(o)}).on(D.TrackSubscribed,(i,s,r)=>{this.setupE2EEReceiver(i,r.identity,s.trackInfo)}).on(D.SignalConnected,()=>{if(!this.room)throw new TypeError("expected room to be present on signal connect");t.getKeys().forEach(i=>{this.postKey(i)}),this.setParticipantCryptorEnabled(this.room.localParticipant.isE2EEEnabled,this.room.localParticipant.identity)}),e.localParticipant.on(L.LocalTrackPublished,i=>g(this,void 0,void 0,function*(){this.setupE2EESender(i.track,i.track.sender)})),t.on(Tt.SetKey,i=>this.postKey(i)).on(Tt.RatchetRequest,(i,s)=>this.postRatchetRequest(i,s))}postRatchetRequest(e,t){if(!this.worker)throw Error("could not ratchet key, worker is missing");const i={kind:"ratchetRequest",data:{participantIdentity:e,keyIndex:t}};this.worker.postMessage(i)}postKey(e){let{key:t,participantIdentity:i,keyIndex:s}=e;var r;if(!this.worker)throw Error("could not set key, worker is missing");const a={kind:"setKey",data:{participantIdentity:i,isPublisher:i===((r=this.room)===null||r===void 0?void 0:r.localParticipant.identity),key:t,keyIndex:s}};this.worker.postMessage(a)}postEnable(e,t){if(this.worker){const i={kind:"enable",data:{enabled:e,participantIdentity:t}};this.worker.postMessage(i)}else throw new ReferenceError("failed to enable e2ee, worker is not ready")}postRTPMap(e){var t;if(!this.worker)throw TypeError("could not post rtp map, worker is missing");if(!(!((t=this.room)===null||t===void 0)&&t.localParticipant.identity))throw TypeError("could not post rtp map, local participant identity is missing");const i={kind:"setRTPMap",data:{map:e,participantIdentity:this.room.localParticipant.identity}};this.worker.postMessage(i)}postSifTrailer(e){if(!this.worker)throw Error("could not post SIF trailer, worker is missing");const t={kind:"setSifTrailer",data:{trailer:e}};this.worker.postMessage(t)}setupE2EEReceiver(e,t,i){if(e.receiver){if(!(i!=null&&i.mimeType)||i.mimeType==="")throw new TypeError("MimeType missing from trackInfo, cannot set up E2EE cryptor");this.handleReceiver(e.receiver,e.mediaStreamID,t,e.kind==="video"?qi(i.mimeType):void 0)}}setupE2EESender(e,t){if(!(e instanceof qt)||!t){t||Z.warn("early return because sender is not ready");return}this.handleSender(t,e.mediaStreamID,void 0)}handleReceiver(e,t,i,s){return g(this,void 0,void 0,function*(){if(this.worker){if(Qn()){const r={kind:"decode",participantIdentity:i,trackId:t,codec:s};e.transform=new RTCRtpScriptTransform(this.worker,r)}else{if(_i in e&&s){const c={kind:"updateCodec",data:{trackId:t,codec:s,participantIdentity:i}};this.worker.postMessage(c);return}let r=e.writableStream,a=e.readableStream;if(!r||!a){const c=e.createEncodedStreams();e.writableStream=c.writable,r=c.writable,e.readableStream=c.readable,a=c.readable}const o={kind:"decode",data:{readableStream:a,writableStream:r,trackId:t,codec:s,participantIdentity:i}};this.worker.postMessage(o,[a,r])}e[_i]=!0}})}handleSender(e,t,i){var s;if(!(_i in e||!this.worker)){if(!(!((s=this.room)===null||s===void 0)&&s.localParticipant.identity)||this.room.localParticipant.identity==="")throw TypeError("local identity needs to be known in order to set up encrypted sender");if(Qn()){Z.info("initialize script transform");const r={kind:"encode",participantIdentity:this.room.localParticipant.identity,trackId:t,codec:i};e.transform=new RTCRtpScriptTransform(this.worker,r)}else{Z.info("initialize encoded streams");const r=e.createEncodedStreams(),a={kind:"encode",data:{readableStream:r.readable,writableStream:r.writable,codec:i,trackId:t,participantIdentity:this.room.localParticipant.identity}};this.worker.postMessage(a,[r.readable,r.writable])}e[_i]=!0}}}var ui;(function(n){n[n.WAITING=0]="WAITING",n[n.RUNNING=1]="RUNNING",n[n.COMPLETED=2]="COMPLETED"})(ui||(ui={}));class wh{constructor(){this.pendingTasks=new Map,this.taskMutex=new Ne,this.nextTaskIndex=0}run(e){return g(this,void 0,void 0,function*(){const t={id:this.nextTaskIndex++,enqueuedAt:Date.now(),status:ui.WAITING};this.pendingTasks.set(t.id,t);const i=yield this.taskMutex.lock();try{return t.executedAt=Date.now(),t.status=ui.RUNNING,yield e()}finally{t.status=ui.COMPLETED,this.pendingTasks.delete(t.id),i()}})}flush(){return g(this,void 0,void 0,function*(){return this.run(()=>g(this,void 0,void 0,function*(){}))})}snapshot(){return Array.from(this.pendingTasks.values())}}const Rh=["syncState","trickle","offer","answer","simulate","leave"];function Ih(n){const e=Rh.indexOf(n.case)>=0;return Z.trace("request allowed to bypass queue:",{canPass:e,req:n}),e}var ce;(function(n){n[n.CONNECTING=0]="CONNECTING",n[n.CONNECTED=1]="CONNECTED",n[n.RECONNECTING=2]="RECONNECTING",n[n.DISCONNECTING=3]="DISCONNECTING",n[n.DISCONNECTED=4]="DISCONNECTED"})(ce||(ce={}));class Ss{get currentState(){return this.state}get isDisconnected(){return this.state===ce.DISCONNECTING||this.state===ce.DISCONNECTED}get isEstablishingConnection(){return this.state===ce.CONNECTING||this.state===ce.RECONNECTING}getNextRequestId(){return this._requestId+=1,this._requestId}constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var i;this.rtt=0,this.state=ce.DISCONNECTED,this.log=Z,this._requestId=0,this.resetCallbacks=()=>{this.onAnswer=void 0,this.onLeave=void 0,this.onLocalTrackPublished=void 0,this.onLocalTrackUnpublished=void 0,this.onNegotiateRequested=void 0,this.onOffer=void 0,this.onRemoteMuteChanged=void 0,this.onSubscribedQualityUpdate=void 0,this.onTokenRefresh=void 0,this.onTrickle=void 0,this.onClose=void 0},this.log=dt((i=t.loggerName)!==null&&i!==void 0?i:Je.Signal),this.loggerContextCb=t.loggerContextCb,this.useJSON=e,this.requestQueue=new wh,this.queuedRequests=[],this.closingLock=new Ne,this.connectionLock=new Ne,this.state=ce.DISCONNECTED}get logContext(){var e,t;return(t=(e=this.loggerContextCb)===null||e===void 0?void 0:e.call(this))!==null&&t!==void 0?t:{}}join(e,t,i,s){return g(this,void 0,void 0,function*(){return this.state=ce.CONNECTING,this.options=i,yield this.connect(e,t,i,s)})}reconnect(e,t,i,s){return g(this,void 0,void 0,function*(){if(!this.options){this.log.warn("attempted to reconnect without signal options being set, ignoring",this.logContext);return}return this.state=ce.RECONNECTING,this.clearPingInterval(),yield this.connect(e,t,Object.assign(Object.assign({},this.options),{reconnect:!0,sid:i,reconnectReason:s}))})}connect(e,t,i,s){this.connectOptions=i,e=Ch(e),e=e.replace(/\/$/,""),e+="/rtc";const r=kh(),a=Oh(t,r,i);return new Promise((o,c)=>g(this,void 0,void 0,function*(){const l=yield this.connectionLock.lock();try{const d=()=>g(this,void 0,void 0,function*(){this.close(),clearTimeout(f),c(new re("room connection has been cancelled (signal)",te.Cancelled))}),f=setTimeout(()=>{this.close(),c(new re("room connection has timed out (signal)",te.ServerUnreachable))},i.websocketTimeout);s!=null&&s.aborted&&d(),s==null||s.addEventListener("abort",d),this.log.debug("connecting to ".concat(e+a),this.logContext),this.ws&&(yield this.close(!1)),this.ws=new WebSocket(e+a),this.ws.binaryType="arraybuffer",this.ws.onopen=()=>{clearTimeout(f)},this.ws.onerror=p=>g(this,void 0,void 0,function*(){if(this.state!==ce.CONNECTED){this.state=ce.DISCONNECTED,clearTimeout(f);try{const m=yield fetch("http".concat(e.substring(2),"/validate").concat(a));if(m.status.toFixed(0).startsWith("4")){const y=yield m.text();c(new re(y,te.NotAllowed,m.status))}else c(new re("Internal error",te.InternalError,m.status))}catch{c(new re("server was not reachable",te.ServerUnreachable))}return}this.handleWSError(p)}),this.ws.onmessage=p=>g(this,void 0,void 0,function*(){var m,y,C;let _;if(typeof p.data=="string"){const b=JSON.parse(p.data);_=Tr.fromJson(b,{ignoreUnknownFields:!0})}else if(p.data instanceof ArrayBuffer)_=Tr.fromBinary(new Uint8Array(p.data));else{this.log.error("could not decode websocket message: ".concat(typeof p.data),this.logContext);return}if(this.state!==ce.CONNECTED){let b=!1;if(((m=_.message)===null||m===void 0?void 0:m.case)==="join"?(this.state=ce.CONNECTED,s==null||s.removeEventListener("abort",d),this.pingTimeoutDuration=_.message.value.pingTimeout,this.pingIntervalDuration=_.message.value.pingInterval,this.pingTimeoutDuration&&this.pingTimeoutDuration>0&&(this.log.debug("ping config",Object.assign(Object.assign({},this.logContext),{timeout:this.pingTimeoutDuration,interval:this.pingIntervalDuration})),this.startPingInterval()),o(_.message.value)):this.state===ce.RECONNECTING&&_.message.case!=="leave"?(this.state=ce.CONNECTED,s==null||s.removeEventListener("abort",d),this.startPingInterval(),((y=_.message)===null||y===void 0?void 0:y.case)==="reconnect"?o(_.message.value):(this.log.debug("declaring signal reconnected without reconnect response received",this.logContext),o(void 0),b=!0)):this.isEstablishingConnection&&_.message.case==="leave"?c(new re("Received leave request while trying to (re)connect",te.LeaveRequest,void 0,_.message.value.reason)):i.reconnect||c(new re("did not receive join response, got ".concat((C=_.message)===null||C===void 0?void 0:C.case," instead"),te.InternalError)),!b)return}this.signalLatency&&(yield He(this.signalLatency)),this.handleSignalResponse(_)}),this.ws.onclose=p=>{this.isEstablishingConnection&&c(new re("Websocket got closed during a (re)connection attempt",te.InternalError)),this.log.warn("websocket closed",Object.assign(Object.assign({},this.logContext),{reason:p.reason,code:p.code,wasClean:p.wasClean,state:this.state})),this.handleOnClose(p.reason)}}finally{l()}}))}close(){return g(this,arguments,void 0,function(){var e=this;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){const i=yield e.closingLock.lock();try{if(e.clearPingInterval(),t&&(e.state=ce.DISCONNECTING),e.ws){e.ws.onmessage=null,e.ws.onopen=null,e.ws.onclose=null;const s=new Promise(r=>{e.ws?e.ws.onclose=()=>{r()}:r()});e.ws.readyState2&&arguments[2]!==void 0?arguments[2]:{};return function*(){const o=r.getNextRequestId();return yield r.sendRequest({case:"updateMetadata",value:new $a({requestId:o,metadata:i,name:s,attributes:a})}),o}()})}sendUpdateTrackSettings(e){this.sendRequest({case:"trackSetting",value:e})}sendUpdateSubscription(e){return this.sendRequest({case:"subscription",value:e})}sendSyncState(e){return this.sendRequest({case:"syncState",value:e})}sendUpdateVideoLayers(e,t){return this.sendRequest({case:"updateLayers",value:new Ja({trackSid:e,layers:t})})}sendUpdateSubscriptionPermissions(e,t){return this.sendRequest({case:"subscriptionPermission",value:new Xa({allParticipants:e,trackPermissions:t})})}sendSimulateScenario(e){return this.sendRequest({case:"simulate",value:e})}sendPing(){return Promise.all([this.sendRequest({case:"ping",value:de.parse(Date.now())}),this.sendRequest({case:"pingReq",value:new to({timestamp:de.parse(Date.now()),rtt:de.parse(this.rtt)})})])}sendUpdateLocalAudioTrack(e,t){return this.sendRequest({case:"updateAudioTrack",value:new Ha({trackSid:e,features:t})})}sendLeave(){return this.sendRequest({case:"leave",value:new en({reason:ze.CLIENT_INITIATED,action:jt.DISCONNECT})})}sendRequest(e){return g(this,arguments,void 0,function(t){var i=this;let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return function*(){if(!s&&!Ih(t)&&i.state===ce.RECONNECTING){i.queuedRequests.push(()=>g(i,void 0,void 0,function*(){yield this.sendRequest(t,!0)}));return}if(s||(yield i.requestQueue.flush()),i.signalLatency&&(yield He(i.signalLatency)),!i.ws||i.ws.readyState!==i.ws.OPEN){i.log.error("cannot send signal request before connected, type: ".concat(t==null?void 0:t.case),i.logContext);return}const a=new cu({message:t});try{i.useJSON?i.ws.send(a.toJsonString()):i.ws.send(a.toBinary())}catch(o){i.log.error("error sending signal message",Object.assign(Object.assign({},i.logContext),{error:o}))}}()})}handleSignalResponse(e){var t,i;const s=e.message;if(s==null){this.log.debug("received unsupported message",this.logContext);return}let r=!1;if(s.case==="answer"){const a=Gr(s.value);this.onAnswer&&this.onAnswer(a)}else if(s.case==="offer"){const a=Gr(s.value);this.onOffer&&this.onOffer(a)}else if(s.case==="trickle"){const a=JSON.parse(s.value.candidateInit);this.onTrickle&&this.onTrickle(a,s.value.target)}else s.case==="update"?this.onParticipantUpdate&&this.onParticipantUpdate((t=s.value.participants)!==null&&t!==void 0?t:[]):s.case==="trackPublished"?this.onLocalTrackPublished&&this.onLocalTrackPublished(s.value):s.case==="speakersChanged"?this.onSpeakersChanged&&this.onSpeakersChanged((i=s.value.speakers)!==null&&i!==void 0?i:[]):s.case==="leave"?this.onLeave&&this.onLeave(s.value):s.case==="mute"?this.onRemoteMuteChanged&&this.onRemoteMuteChanged(s.value.sid,s.value.muted):s.case==="roomUpdate"?this.onRoomUpdate&&s.value.room&&this.onRoomUpdate(s.value.room):s.case==="connectionQuality"?this.onConnectionQuality&&this.onConnectionQuality(s.value):s.case==="streamStateUpdate"?this.onStreamStateUpdate&&this.onStreamStateUpdate(s.value):s.case==="subscribedQualityUpdate"?this.onSubscribedQualityUpdate&&this.onSubscribedQualityUpdate(s.value):s.case==="subscriptionPermissionUpdate"?this.onSubscriptionPermissionUpdate&&this.onSubscriptionPermissionUpdate(s.value):s.case==="refreshToken"?this.onTokenRefresh&&this.onTokenRefresh(s.value):s.case==="trackUnpublished"?this.onLocalTrackUnpublished&&this.onLocalTrackUnpublished(s.value):s.case==="subscriptionResponse"?this.onSubscriptionError&&this.onSubscriptionError(s.value):s.case==="pong"||(s.case==="pongResp"?(this.rtt=Date.now()-Number.parseInt(s.value.lastPingTimestamp.toString()),this.resetPingTimeout(),r=!0):s.case==="requestResponse"?this.onRequestResponse&&this.onRequestResponse(s.value):s.case==="trackSubscribed"?this.onLocalTrackSubscribed&&this.onLocalTrackSubscribed(s.value.trackSid):this.log.debug("unsupported message",Object.assign(Object.assign({},this.logContext),{msgCase:s.case})));r||this.resetPingTimeout()}setReconnected(){for(;this.queuedRequests.length>0;){const e=this.queuedRequests.shift();e&&this.requestQueue.run(e)}}handleOnClose(e){return g(this,void 0,void 0,function*(){if(this.state===ce.DISCONNECTED)return;const t=this.onClose;yield this.close(),this.log.debug("websocket connection closed: ".concat(e),Object.assign(Object.assign({},this.logContext),{reason:e})),t&&t(e)})}handleWSError(e){this.log.error("websocket error",Object.assign(Object.assign({},this.logContext),{error:e}))}resetPingTimeout(){if(this.clearPingTimeout(),!this.pingTimeoutDuration){this.log.warn("ping timeout duration not set",this.logContext);return}this.pingTimeout=Ee.setTimeout(()=>{this.log.warn("ping timeout triggered. last pong received at: ".concat(new Date(Date.now()-this.pingTimeoutDuration*1e3).toUTCString()),this.logContext),this.handleOnClose("ping timeout")},this.pingTimeoutDuration*1e3)}clearPingTimeout(){this.pingTimeout&&Ee.clearTimeout(this.pingTimeout)}startPingInterval(){if(this.clearPingInterval(),this.resetPingTimeout(),!this.pingIntervalDuration){this.log.warn("ping interval duration not set",this.logContext);return}this.log.debug("start ping interval",this.logContext),this.pingInterval=Ee.setInterval(()=>{this.sendPing()},this.pingIntervalDuration*1e3)}clearPingInterval(){this.log.debug("clearing ping interval",this.logContext),this.clearPingTimeout(),this.pingInterval&&Ee.clearInterval(this.pingInterval)}}function Gr(n){const e={type:"offer",sdp:n.sdp};switch(n.type){case"answer":case"offer":case"pranswer":case"rollback":e.type=n.type;break}return e}function Ji(n){return new wt({sdp:n.sdp,type:n.type})}function Oh(n,e,t){var i;const s=new URLSearchParams;return s.set("access_token",n),t.reconnect&&(s.set("reconnect","1"),t.sid&&s.set("sid",t.sid)),s.set("auto_subscribe",t.autoSubscribe?"1":"0"),s.set("sdk",ht()?"reactnative":"js"),s.set("version",e.version),s.set("protocol",e.protocol.toString()),e.deviceModel&&s.set("device_model",e.deviceModel),e.os&&s.set("os",e.os),e.osVersion&&s.set("os_version",e.osVersion),e.browser&&s.set("browser",e.browser),e.browserVersion&&s.set("browser_version",e.browserVersion),t.adaptiveStream&&s.set("adaptive_stream","1"),t.reconnectReason&&s.set("reconnect_reason",t.reconnectReason.toString()),!((i=navigator.connection)===null||i===void 0)&&i.type&&s.set("network",navigator.connection.type),"?".concat(s.toString())}var Xe={},Dn={},Mn={exports:{}},Wr;function qo(){if(Wr)return Mn.exports;Wr=1;var n=Mn.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(e){return e.encoding?"rtpmap:%d %s/%s/%s":e.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(e){return e.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(e){return e.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(e){return"extmap:%d"+(e.direction?"/%s":"%v")+(e["encrypt-uri"]?" %s":"%v")+" %s"+(e.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(e){return e.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(e){var t="candidate:%s %d %s %d %s %d typ %s";return t+=e.raddr!=null?" raddr %s rport %d":"%v%v",t+=e.tcptype!=null?" tcptype %s":"%v",e.generation!=null&&(t+=" generation %d"),t+=e["network-id"]!=null?" network-id %d":"%v",t+=e["network-cost"]!=null?" network-cost %d":"%v",t}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(e){var t="ssrc:%d";return e.attribute!=null&&(t+=" %s",e.value!=null&&(t+=":%s")),t}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(e){return e.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(e){return e.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(e){return"imageattr:%s %s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(e){return"simulcast:%s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(e){return"ts-refclk:%s"+(e.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(e){var t="mediaclk:";return t+=e.id!=null?"id=%s %s":"%v%s",t+=e.mediaClockValue!=null?"=%s":"",t+=e.rateNumerator!=null?" rate=%s":"",t+=e.rateDenominator!=null?"/%s":"",t}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};return Object.keys(n).forEach(function(e){var t=n[e];t.forEach(function(i){i.reg||(i.reg=/(.*)/),i.format||(i.format="%s")})}),Mn.exports}var zr;function Dh(){return zr||(zr=1,function(n){var e=function(o){return String(Number(o))===o?Number(o):o},t=function(o,c,l,d){if(d&&!l)c[d]=e(o[1]);else for(var f=0;f1&&(o[l[0]]=void 0),o};n.parseParams=function(o){return o.split(/;\s?/).reduce(a,{})},n.parseFmtpConfig=n.parseParams,n.parsePayloads=function(o){return o.toString().split(" ").map(Number)},n.parseRemoteCandidates=function(o){for(var c=[],l=o.split(" ").map(e),d=0;d=l)return d;var f=c[o];switch(o+=1,d){case"%%":return"%";case"%s":return String(f);case"%d":return Number(f);case"%v":return""}})},i=function(a,o,c){var l=o.format instanceof Function?o.format(o.push?c:c[o.name]):o.format,d=[a+"="+l];if(o.names)for(var f=0;f1&&arguments[1]!==void 0?arguments[1]:{};var i;super(),this.log=Z,this.ddExtID=0,this.pendingCandidates=[],this.restartingIce=!1,this.renegotiate=!1,this.trackBitrates=[],this.remoteStereoMids=[],this.remoteNackMids=[],this.negotiate=ks(s=>g(this,void 0,void 0,function*(){this.emit(Kt.NegotiationStarted);try{yield this.createAndSendOffer()}catch(r){if(s)s(r);else throw r}}),Nh),this.close=()=>{this._pc&&(this._pc.close(),this._pc.onconnectionstatechange=null,this._pc.oniceconnectionstatechange=null,this._pc.onicegatheringstatechange=null,this._pc.ondatachannel=null,this._pc.onnegotiationneeded=null,this._pc.onsignalingstatechange=null,this._pc.onicecandidate=null,this._pc.ondatachannel=null,this._pc.ontrack=null,this._pc.onconnectionstatechange=null,this._pc.oniceconnectionstatechange=null,this._pc=null)},this.log=dt((i=t.loggerName)!==null&&i!==void 0?i:Je.PCTransport),this.loggerOptions=t,this.config=e,this._pc=this.createPC()}createPC(){const e=new RTCPeerConnection(this.config);return e.onicecandidate=t=>{var i;t.candidate&&((i=this.onIceCandidate)===null||i===void 0||i.call(this,t.candidate))},e.onicecandidateerror=t=>{var i;(i=this.onIceCandidateError)===null||i===void 0||i.call(this,t)},e.oniceconnectionstatechange=()=>{var t;(t=this.onIceConnectionStateChange)===null||t===void 0||t.call(this,e.iceConnectionState)},e.onsignalingstatechange=()=>{var t;(t=this.onSignalingStatechange)===null||t===void 0||t.call(this,e.signalingState)},e.onconnectionstatechange=()=>{var t;(t=this.onConnectionStateChange)===null||t===void 0||t.call(this,e.connectionState)},e.ondatachannel=t=>{var i;(i=this.onDataChannel)===null||i===void 0||i.call(this,t)},e.ontrack=t=>{var i;(i=this.onTrack)===null||i===void 0||i.call(this,t)},e}get logContext(){var e,t;return Object.assign({},(t=(e=this.loggerOptions).loggerContextCb)===null||t===void 0?void 0:t.call(e))}get isICEConnected(){return this._pc!==null&&(this.pc.iceConnectionState==="connected"||this.pc.iceConnectionState==="completed")}addIceCandidate(e){return g(this,void 0,void 0,function*(){if(this.pc.remoteDescription&&!this.restartingIce)return this.pc.addIceCandidate(e);this.pendingCandidates.push(e)})}setRemoteDescription(e){return g(this,void 0,void 0,function*(){var t;let i;if(e.type==="offer"){let{stereoMids:s,nackMids:r}=Lh(e);this.remoteStereoMids=s,this.remoteNackMids=r}else if(e.type==="answer"){const s=bt.parse((t=e.sdp)!==null&&t!==void 0?t:"");s.media.forEach(r=>{r.type==="audio"&&this.trackBitrates.some(a=>{if(!a.transceiver||r.mid!=a.transceiver.mid)return!1;let o=0;if(r.rtp.some(l=>l.codec.toUpperCase()===a.codec.toUpperCase()?(o=l.payload,!0):!1),o===0)return!0;let c=!1;for(const l of r.fmtp)if(l.payload===o){l.config=l.config.split(";").filter(d=>!d.includes("maxaveragebitrate")).join(";"),a.maxbr>0&&(l.config+=";maxaveragebitrate=".concat(a.maxbr*1e3)),c=!0;break}return c||a.maxbr>0&&r.fmtp.push({payload:o,config:"maxaveragebitrate=".concat(a.maxbr*1e3)}),!0})}),i=bt.write(s)}yield this.setMungedSDP(e,i,!0),this.pendingCandidates.forEach(s=>{this.pc.addIceCandidate(s)}),this.pendingCandidates=[],this.restartingIce=!1,this.renegotiate?(this.renegotiate=!1,yield this.createAndSendOffer()):e.type==="answer"&&(this.emit(Kt.NegotiationComplete),e.sdp&&bt.parse(e.sdp).media.forEach(r=>{r.type==="video"&&this.emit(Kt.RTPVideoPayloadTypes,r.rtp)}))})}createAndSendOffer(e){return g(this,void 0,void 0,function*(){var t;if(this.onOffer===void 0)return;if(e!=null&&e.iceRestart&&(this.log.debug("restarting ICE",this.logContext),this.restartingIce=!0),this._pc&&this._pc.signalingState==="have-local-offer"){const r=this._pc.remoteDescription;if(e!=null&&e.iceRestart&&r)yield this._pc.setRemoteDescription(r);else{this.renegotiate=!0;return}}else if(!this._pc||this._pc.signalingState==="closed"){this.log.warn("could not createOffer with closed peer connection",this.logContext);return}this.log.debug("starting to negotiate",this.logContext);const i=yield this.pc.createOffer(e);this.log.debug("original offer",Object.assign({sdp:i.sdp},this.logContext));const s=bt.parse((t=i.sdp)!==null&&t!==void 0?t:"");s.media.forEach(r=>{Yr(r),r.type==="audio"?Qr(r,[],[]):r.type==="video"&&this.trackBitrates.some(a=>{if(!r.msid||!a.cid||!r.msid.includes(a.cid))return!1;let o=0;if(r.rtp.some(l=>l.codec.toUpperCase()===a.codec.toUpperCase()?(o=l.payload,!0):!1),o===0||(di(a.codec)&&this.ensureVideoDDExtensionForSVC(r,s),a.codec!=="av1"))return!0;const c=Math.round(a.maxbr*Ah);for(const l of r.fmtp)if(l.payload===o){l.config.includes("x-google-start-bitrate")||(l.config+=";x-google-start-bitrate=".concat(c));break}return!0})}),yield this.setMungedSDP(i,bt.write(s)),this.onOffer(i)})}createAndSetAnswer(){return g(this,void 0,void 0,function*(){var e;const t=yield this.pc.createAnswer(),i=bt.parse((e=t.sdp)!==null&&e!==void 0?e:"");return i.media.forEach(s=>{Yr(s),s.type==="audio"&&Qr(s,this.remoteStereoMids,this.remoteNackMids)}),yield this.setMungedSDP(t,bt.write(i)),t})}createDataChannel(e,t){return this.pc.createDataChannel(e,t)}addTransceiver(e,t){return this.pc.addTransceiver(e,t)}addTrack(e){if(!this._pc)throw new ye("PC closed, cannot add track");return this._pc.addTrack(e)}setTrackCodecBitrate(e){this.trackBitrates.push(e)}setConfiguration(e){var t;if(!this._pc)throw new ye("PC closed, cannot configure");return(t=this._pc)===null||t===void 0?void 0:t.setConfiguration(e)}canRemoveTrack(){var e;return!!(!((e=this._pc)===null||e===void 0)&&e.removeTrack)}removeTrack(e){var t;return(t=this._pc)===null||t===void 0?void 0:t.removeTrack(e)}getConnectionState(){var e,t;return(t=(e=this._pc)===null||e===void 0?void 0:e.connectionState)!==null&&t!==void 0?t:"closed"}getICEConnectionState(){var e,t;return(t=(e=this._pc)===null||e===void 0?void 0:e.iceConnectionState)!==null&&t!==void 0?t:"closed"}getSignallingState(){var e,t;return(t=(e=this._pc)===null||e===void 0?void 0:e.signalingState)!==null&&t!==void 0?t:"closed"}getTransceivers(){var e,t;return(t=(e=this._pc)===null||e===void 0?void 0:e.getTransceivers())!==null&&t!==void 0?t:[]}getSenders(){var e,t;return(t=(e=this._pc)===null||e===void 0?void 0:e.getSenders())!==null&&t!==void 0?t:[]}getLocalDescription(){var e;return(e=this._pc)===null||e===void 0?void 0:e.localDescription}getRemoteDescription(){var e;return(e=this.pc)===null||e===void 0?void 0:e.remoteDescription}getStats(){return this.pc.getStats()}getConnectedAddress(){return g(this,void 0,void 0,function*(){var e;if(!this._pc)return;let t="";const i=new Map,s=new Map;if((yield this._pc.getStats()).forEach(o=>{switch(o.type){case"transport":t=o.selectedCandidatePairId;break;case"candidate-pair":t===""&&o.selected&&(t=o.id),i.set(o.id,o);break;case"remote-candidate":s.set(o.id,"".concat(o.address,":").concat(o.port));break}}),t==="")return;const a=(e=i.get(t))===null||e===void 0?void 0:e.remoteCandidateId;if(a!==void 0)return s.get(a)})}setMungedSDP(e,t,i){return g(this,void 0,void 0,function*(){if(t){const s=e.sdp;e.sdp=t;try{this.log.debug("setting munged ".concat(i?"remote":"local"," description"),this.logContext),i?yield this.pc.setRemoteDescription(e):yield this.pc.setLocalDescription(e);return}catch(r){this.log.warn("not able to set ".concat(e.type,", falling back to unmodified sdp"),Object.assign(Object.assign({},this.logContext),{error:r,sdp:t})),e.sdp=s}}try{i?yield this.pc.setRemoteDescription(e):yield this.pc.setLocalDescription(e)}catch(s){let r="unknown error";s instanceof Error?r=s.message:typeof s=="string"&&(r=s);const a={error:r,sdp:e.sdp};throw!i&&this.pc.remoteDescription&&(a.remoteSdp=this.pc.remoteDescription),this.log.error("unable to set ".concat(e.type),Object.assign(Object.assign({},this.logContext),{fields:a})),new Yn(r)}})}ensureVideoDDExtensionForSVC(e,t){var i,s;if(!((i=e.ext)===null||i===void 0?void 0:i.some(a=>a.uri===Ur))){if(this.ddExtID===0){let a=0;t.media.forEach(o=>{var c;o.type==="video"&&((c=o.ext)===null||c===void 0||c.forEach(l=>{l.value>a&&(a=l.value)}))}),this.ddExtID=a+1}(s=e.ext)===null||s===void 0||s.push({value:this.ddExtID,uri:Ur})}}}function Qr(n,e,t){let i=0;n.rtp.some(s=>s.codec==="opus"?(i=s.payload,!0):!1),i>0&&(n.rtcpFb||(n.rtcpFb=[]),t.includes(n.mid)&&!n.rtcpFb.some(s=>s.payload===i&&s.type==="nack")&&n.rtcpFb.push({payload:i,type:"nack"}),e.includes(n.mid)&&n.fmtp.some(s=>s.payload===i?(s.config.includes("stereo=1")||(s.config+=";stereo=1"),!0):!1))}function Lh(n){var e;const t=[],i=[],s=bt.parse((e=n.sdp)!==null&&e!==void 0?e:"");let r=0;return s.media.forEach(a=>{var o;a.type==="audio"&&(a.rtp.some(c=>c.codec==="opus"?(r=c.payload,!0):!1),!((o=a.rtcpFb)===null||o===void 0)&&o.some(c=>c.payload===r&&c.type==="nack")&&i.push(a.mid),a.fmtp.some(c=>c.payload===r?(c.config.includes("sprop-stereo=1")&&t.push(a.mid),!0):!1))}),{stereoMids:t,nackMids:i}}function Yr(n){if(n.connection){const e=n.connection.ip.indexOf(":")>=0;(n.connection.version===4&&e||n.connection.version===6&&!e)&&(n.connection.ip="0.0.0.0",n.connection.version=4)}}const rs="vp8",Uh={audioPreset:Xn.music,dtx:!0,red:!0,forceStereo:!1,simulcast:!0,screenShareEncoding:Ts.h1080fps15.encoding,stopMicTrackOnMute:!1,videoCodec:rs,backupCodec:!0},Ko={autoGainControl:!0,echoCancellation:!0,noiseSuppression:!0,voiceIsolation:!0},Go={resolution:gi.h720.resolution},Fh={adaptiveStream:!1,dynacast:!1,stopLocalTrackOnUnpublish:!0,reconnectPolicy:new Au,disconnectOnPageLeave:!0,webAudioMix:!1},Ps={autoSubscribe:!0,maxRetries:1,peerConnectionTimeout:15e3,websocketTimeout:15e3};var pe;(function(n){n[n.NEW=0]="NEW",n[n.CONNECTING=1]="CONNECTING",n[n.CONNECTED=2]="CONNECTED",n[n.FAILED=3]="FAILED",n[n.CLOSING=4]="CLOSING",n[n.CLOSED=5]="CLOSED"})(pe||(pe={}));class jh{get needsPublisher(){return this.isPublisherConnectionRequired}get needsSubscriber(){return this.isSubscriberConnectionRequired}get currentState(){return this.state}constructor(e,t,i){var s;this.peerConnectionTimeout=Ps.peerConnectionTimeout,this.log=Z,this.updateState=()=>{var r;const a=this.state,o=this.requiredTransports.map(c=>c.getConnectionState());o.every(c=>c==="connected")?this.state=pe.CONNECTED:o.some(c=>c==="failed")?this.state=pe.FAILED:o.some(c=>c==="connecting")?this.state=pe.CONNECTING:o.every(c=>c==="closed")?this.state=pe.CLOSED:o.some(c=>c==="closed")?this.state=pe.CLOSING:o.every(c=>c==="new")&&(this.state=pe.NEW),a!==this.state&&(this.log.debug("pc state change: from ".concat(pe[a]," to ").concat(pe[this.state]),this.logContext),(r=this.onStateChange)===null||r===void 0||r.call(this,this.state,this.publisher.getConnectionState(),this.subscriber.getConnectionState()))},this.log=dt((s=i.loggerName)!==null&&s!==void 0?s:Je.PCManager),this.loggerOptions=i,this.isPublisherConnectionRequired=!t,this.isSubscriberConnectionRequired=t,this.publisher=new $r(e,i),this.subscriber=new $r(e,i),this.publisher.onConnectionStateChange=this.updateState,this.subscriber.onConnectionStateChange=this.updateState,this.publisher.onIceConnectionStateChange=this.updateState,this.subscriber.onIceConnectionStateChange=this.updateState,this.publisher.onSignalingStatechange=this.updateState,this.subscriber.onSignalingStatechange=this.updateState,this.publisher.onIceCandidate=r=>{var a;(a=this.onIceCandidate)===null||a===void 0||a.call(this,r,We.PUBLISHER)},this.subscriber.onIceCandidate=r=>{var a;(a=this.onIceCandidate)===null||a===void 0||a.call(this,r,We.SUBSCRIBER)},this.subscriber.onDataChannel=r=>{var a;(a=this.onDataChannel)===null||a===void 0||a.call(this,r)},this.subscriber.onTrack=r=>{var a;(a=this.onTrack)===null||a===void 0||a.call(this,r)},this.publisher.onOffer=r=>{var a;(a=this.onPublisherOffer)===null||a===void 0||a.call(this,r)},this.state=pe.NEW,this.connectionLock=new Ne,this.remoteOfferLock=new Ne}get logContext(){var e,t;return Object.assign({},(t=(e=this.loggerOptions).loggerContextCb)===null||t===void 0?void 0:t.call(e))}requirePublisher(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.isPublisherConnectionRequired=e,this.updateState()}requireSubscriber(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.isSubscriberConnectionRequired=e,this.updateState()}createAndSendPublisherOffer(e){return this.publisher.createAndSendOffer(e)}setPublisherAnswer(e){return this.publisher.setRemoteDescription(e)}removeTrack(e){return this.publisher.removeTrack(e)}close(){return g(this,void 0,void 0,function*(){if(this.publisher&&this.publisher.getSignallingState()!=="closed"){const e=this.publisher;for(const t of e.getSenders())try{e.canRemoveTrack()&&e.removeTrack(t)}catch(i){this.log.warn("could not removeTrack",Object.assign(Object.assign({},this.logContext),{error:i}))}}yield Promise.all([this.publisher.close(),this.subscriber.close()]),this.updateState()})}triggerIceRestart(){return g(this,void 0,void 0,function*(){this.subscriber.restartingIce=!0,this.needsPublisher&&(yield this.createAndSendPublisherOffer({iceRestart:!0}))})}addIceCandidate(e,t){return g(this,void 0,void 0,function*(){t===We.PUBLISHER?yield this.publisher.addIceCandidate(e):yield this.subscriber.addIceCandidate(e)})}createSubscriberAnswerFromOffer(e){return g(this,void 0,void 0,function*(){this.log.debug("received server offer",Object.assign(Object.assign({},this.logContext),{RTCSdpType:e.type,sdp:e.sdp,signalingState:this.subscriber.getSignallingState().toString()}));const t=yield this.remoteOfferLock.lock();try{return yield this.subscriber.setRemoteDescription(e),yield this.subscriber.createAndSetAnswer()}finally{t()}})}updateConfiguration(e,t){this.publisher.setConfiguration(e),this.subscriber.setConfiguration(e),t&&this.triggerIceRestart()}ensurePCTransportConnection(e,t){return g(this,void 0,void 0,function*(){var i;const s=yield this.connectionLock.lock();try{this.isPublisherConnectionRequired&&this.publisher.getConnectionState()!=="connected"&&this.publisher.getConnectionState()!=="connecting"&&(this.log.debug("negotiation required, start negotiating",this.logContext),this.publisher.negotiate()),yield Promise.all((i=this.requiredTransports)===null||i===void 0?void 0:i.map(r=>this.ensureTransportConnected(r,e,t)))}finally{s()}})}negotiate(e){return g(this,void 0,void 0,function*(){return new Promise((t,i)=>g(this,void 0,void 0,function*(){const s=setTimeout(()=>{i("negotiation timed out")},this.peerConnectionTimeout),r=()=>{clearTimeout(s),i("negotiation aborted")};e.signal.addEventListener("abort",r),this.publisher.once(Kt.NegotiationStarted,()=>{e.signal.aborted||this.publisher.once(Kt.NegotiationComplete,()=>{clearTimeout(s),t()})}),yield this.publisher.negotiate(a=>{clearTimeout(s),i(a)})}))})}addPublisherTransceiver(e,t){return this.publisher.addTransceiver(e,t)}addPublisherTrack(e){return this.publisher.addTrack(e)}createPublisherDataChannel(e,t){return this.publisher.createDataChannel(e,t)}getConnectedAddress(e){return e===We.PUBLISHER?this.publisher.getConnectedAddress():e===We.SUBSCRIBER?this.publisher.getConnectedAddress():this.requiredTransports[0].getConnectedAddress()}get requiredTransports(){const e=[];return this.isPublisherConnectionRequired&&e.push(this.publisher),this.isSubscriberConnectionRequired&&e.push(this.subscriber),e}ensureTransportConnected(e,t){return g(this,arguments,void 0,function(i,s){var r=this;let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.peerConnectionTimeout;return function*(){if(i.getConnectionState()!=="connected")return new Promise((c,l)=>g(r,void 0,void 0,function*(){const d=()=>{this.log.warn("abort transport connection",this.logContext),Ee.clearTimeout(f),l(new re("room connection has been cancelled",te.Cancelled))};s!=null&&s.signal.aborted&&d(),s==null||s.signal.addEventListener("abort",d);const f=Ee.setTimeout(()=>{s==null||s.signal.removeEventListener("abort",d),l(new re("could not establish pc connection",te.InternalError))},a);for(;this.state!==pe.CONNECTED;)if(yield He(50),s!=null&&s.signal.aborted){l(new re("room connection has been cancelled",te.Cancelled));return}Ee.clearTimeout(f),s==null||s.signal.removeEventListener("abort",d),c()}))}()})}}const Es=2e3;function sn(n,e){if(!e)return 0;let t,i;return"bytesReceived"in n?(t=n.bytesReceived,i=e.bytesReceived):"bytesSent"in n&&(t=n.bytesSent,i=e.bytesSent),t===void 0||i===void 0||n.timestamp===void 0||e.timestamp===void 0?0:(t-i)*8*1e3/(n.timestamp-e.timestamp)}class Se extends qt{get enhancedNoiseCancellation(){return this.isKrispNoiseFilterEnabled}constructor(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=arguments.length>3?arguments[3]:void 0,r=arguments.length>4?arguments[4]:void 0;super(e,E.Kind.Audio,t,i,r),this.stopOnMute=!1,this.isKrispNoiseFilterEnabled=!1,this.monitorSender=()=>g(this,void 0,void 0,function*(){if(!this.sender){this._currentBitrate=0;return}let a;try{a=yield this.getSenderStats()}catch(o){this.log.error("could not get audio sender stats",Object.assign(Object.assign({},this.logContext),{error:o}));return}a&&this.prevStats&&(this._currentBitrate=sn(a,this.prevStats)),this.prevStats=a}),this.handleKrispNoiseFilterEnable=()=>{this.isKrispNoiseFilterEnabled=!0,this.log.debug("Krisp noise filter enabled",this.logContext),this.emit(N.AudioTrackFeatureUpdate,this,tt.TF_ENHANCED_NOISE_CANCELLATION,!0)},this.handleKrispNoiseFilterDisable=()=>{this.isKrispNoiseFilterEnabled=!1,this.log.debug("Krisp noise filter disabled",this.logContext),this.emit(N.AudioTrackFeatureUpdate,this,tt.TF_ENHANCED_NOISE_CANCELLATION,!1)},this.audioContext=s,this.checkForSilence()}setDeviceId(e){return g(this,void 0,void 0,function*(){return this._constraints.deviceId===e&&this._mediaStreamTrack.getSettings().deviceId===lt(e)?!0:(this._constraints.deviceId=e,this.isMuted||(yield this.restartTrack()),this.isMuted||lt(e)===this._mediaStreamTrack.getSettings().deviceId)})}mute(){const e=Object.create(null,{mute:{get:()=>super.mute}});return g(this,void 0,void 0,function*(){const t=yield this.muteLock.lock();try{return this.isMuted?(this.log.debug("Track already muted",this.logContext),this):(this.source===E.Source.Microphone&&this.stopOnMute&&!this.isUserProvided&&(this.log.debug("stopping mic track",this.logContext),this._mediaStreamTrack.stop()),yield e.mute.call(this),this)}finally{t()}})}unmute(){const e=Object.create(null,{unmute:{get:()=>super.unmute}});return g(this,void 0,void 0,function*(){const t=yield this.muteLock.lock();try{if(!this.isMuted)return this.log.debug("Track already unmuted",this.logContext),this;const i=this._constraints.deviceId&&this._mediaStreamTrack.getSettings().deviceId!==lt(this._constraints.deviceId);return this.source===E.Source.Microphone&&(this.stopOnMute||this._mediaStreamTrack.readyState==="ended"||i)&&!this.isUserProvided&&(this.log.debug("reacquiring mic track",this.logContext),yield this.restartTrack()),yield e.unmute.call(this),this}finally{t()}})}restartTrack(e){return g(this,void 0,void 0,function*(){let t;if(e){const i=nn({audio:e});typeof i.audio!="boolean"&&(t=i.audio)}yield this.restart(t)})}restart(e){const t=Object.create(null,{restart:{get:()=>super.restart}});return g(this,void 0,void 0,function*(){const i=yield t.restart.call(this,e);return this.checkForSilence(),i})}startMonitor(){Le()&&(this.monitorInterval||(this.monitorInterval=setInterval(()=>{this.monitorSender()},Es)))}setProcessor(e){return g(this,void 0,void 0,function*(){var t;const i=yield this.processorLock.lock();try{if(!this.audioContext)throw Error("Audio context needs to be set on LocalAudioTrack in order to enable processors");this.processor&&(yield this.stopProcessor());const s={kind:this.kind,track:this._mediaStreamTrack,audioContext:this.audioContext};this.log.debug("setting up audio processor ".concat(e.name),this.logContext),yield e.init(s),this.processor=e,this.processor.processedTrack&&(yield(t=this.sender)===null||t===void 0?void 0:t.replaceTrack(this.processor.processedTrack),this.processor.processedTrack.addEventListener("enable-lk-krisp-noise-filter",this.handleKrispNoiseFilterEnable),this.processor.processedTrack.addEventListener("disable-lk-krisp-noise-filter",this.handleKrispNoiseFilterDisable)),this.emit(N.TrackProcessorUpdate,this.processor)}finally{i()}})}setAudioContext(e){this.audioContext=e}getSenderStats(){return g(this,void 0,void 0,function*(){var e;if(!(!((e=this.sender)===null||e===void 0)&&e.getStats))return;const t=yield this.sender.getStats();let i;return t.forEach(s=>{s.type==="outbound-rtp"&&(i={type:"audio",streamId:s.id,packetsSent:s.packetsSent,packetsLost:s.packetsLost,bytesSent:s.bytesSent,timestamp:s.timestamp,roundTripTime:s.roundTripTime,jitter:s.jitter})}),i})}checkForSilence(){return g(this,void 0,void 0,function*(){const e=yield ah(this);return e&&(this.isMuted||this.log.warn("silence detected on local audio track",this.logContext),this.emit(N.AudioSilenceDetected)),e})}}function Wo(n,e,t){switch(n.kind){case"audio":return new Se(n,e,!1,void 0,t);case"video":return new we(n,e,!1,t);default:throw new it("unsupported track type: ".concat(n.kind))}}const Bh=Object.values(gi),Vh=Object.values(Zn),qh=Object.values(Ts),Kh=[gi.h180,gi.h360],Gh=[Zn.h180,Zn.h360],Wh=n=>[{scaleResolutionDownBy:2,fps:n.encoding.maxFramerate}].map(t=>{var i,s;return new ne(Math.floor(n.width/t.scaleResolutionDownBy),Math.floor(n.height/t.scaleResolutionDownBy),Math.max(15e4,Math.floor(n.encoding.maxBitrate/(Math.pow(t.scaleResolutionDownBy,2)*(((i=n.encoding.maxFramerate)!==null&&i!==void 0?i:30)/((s=t.fps)!==null&&s!==void 0?s:30))))),t.fps,n.encoding.priority)}),as=["q","h","f"];function os(n,e,t,i){var s,r;let a=i==null?void 0:i.videoEncoding;n&&(a=i==null?void 0:i.screenShareEncoding);const o=i==null?void 0:i.simulcast,c=i==null?void 0:i.scalabilityMode,l=i==null?void 0:i.videoCodec;if(!a&&!o&&!c||!e||!t)return[{}];a||(a=Hh(n,e,t,l),Z.debug("using video encoding",a));const d=new ne(e,t,a.maxBitrate,a.maxFramerate,a.priority);if(c&&di(l)){const m=new zo(c),y=[];if(m.spatial>3)throw new Error("unsupported scalabilityMode: ".concat(c));const C=ut();if(Rt()||ht()||(C==null?void 0:C.name)==="Chrome"&&zt(C==null?void 0:C.version,"113")<0){const _=m.suffix=="h"?2:3;for(let b=0;b0){const m=f[0];f.length>1&&([,p]=f);const y=Math.max(e,t);if(y>=960&&p)return An(e,t,[m,p,d]);if(y>=480)return An(e,t,[m,d])}return An(e,t,[d])}function zh(n,e,t){var i,s,r,a;if(!t.backupCodec||t.backupCodec===!0||t.backupCodec.codec===t.videoCodec)return;e!==t.backupCodec.codec&&Z.warn("requested a different codec than specified as backup",{serverRequested:e,backup:t.backupCodec.codec}),t.videoCodec=e,t.videoEncoding=t.backupCodec.encoding;const o=n.mediaStreamTrack.getSettings(),c=(i=o.width)!==null&&i!==void 0?i:(s=n.dimensions)===null||s===void 0?void 0:s.width,l=(r=o.height)!==null&&r!==void 0?r:(a=n.dimensions)===null||a===void 0?void 0:a.height;return os(n.source===E.Source.ScreenShare,c,l,t)}function Hh(n,e,t,i){const s=Jh(n,e,t);let{encoding:r}=s[0];const a=Math.max(e,t);for(let o=0;o=a)break}if(i)switch(i){case"av1":r=Object.assign({},r),r.maxBitrate=r.maxBitrate*.7;break;case"vp9":r=Object.assign({},r),r.maxBitrate=r.maxBitrate*.85;break}return r}function Jh(n,e,t){if(n)return qh;const i=e>t?e/t:t/e;return Math.abs(i-16/9)i?t/i:i/t;return Math.abs(s-16/9){if(r>=as.length)return;const a=Math.min(n,e),c={rid:as[r],scaleResolutionDownBy:Math.max(1,a/Math.min(s.width,s.height)),maxBitrate:s.encoding.maxBitrate};s.encoding.maxFramerate&&(c.maxFramerate=s.encoding.maxFramerate);const l=Wt()||r===0;s.encoding.priority&&l&&(c.priority=s.encoding.priority,c.networkPriority=s.encoding.priority),i.push(c)}),ht()&&Bo()==="ios"){let s;i.forEach(a=>{s?a.maxFramerate&&a.maxFramerate>s&&(s=a.maxFramerate):s=a.maxFramerate});let r=!0;i.forEach(a=>{var o;a.maxFramerate!=s&&(r&&(r=!1,Z.info("Simulcast on iOS React-Native requires all encodings to share the same framerate.")),Z.info('Setting framerate of encoding "'.concat((o=a.rid)!==null&&o!==void 0?o:"",'" to ').concat(s)),a.maxFramerate=s)})}return i}function Zr(n){if(n)return n.sort((e,t)=>{const{encoding:i}=e,{encoding:s}=t;return i.maxBitrate>s.maxBitrate?1:i.maxBitrates.maxFramerate?1:-1:0})}class zo{constructor(e){const t=e.match(/^L(\d)T(\d)(h|_KEY|_KEY_SHIFT){0,1}$/);if(!t)throw new Error("invalid scalability mode");if(this.spatial=parseInt(t[1]),this.temporal=parseInt(t[2]),t.length>3)switch(t[3]){case"h":case"_KEY":case"_KEY_SHIFT":this.suffix=t[3]}}toString(){var e;return"L".concat(this.spatial,"T").concat(this.temporal).concat((e=this.suffix)!==null&&e!==void 0?e:"")}}function $h(n){return n.source===E.Source.ScreenShare||n.constraints.height&<(n.constraints.height)>=1080?"maintain-resolution":"balanced"}const Qh=5e3;class we extends qt{get sender(){return this._sender}set sender(e){this._sender=e,this.degradationPreference&&this.setDegradationPreference(this.degradationPreference)}constructor(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=arguments.length>3?arguments[3]:void 0;super(e,E.Kind.Video,t,i,s),this.simulcastCodecs=new Map,this.degradationPreference="balanced",this.monitorSender=()=>g(this,void 0,void 0,function*(){if(!this.sender){this._currentBitrate=0;return}let r;try{r=yield this.getSenderStats()}catch(o){this.log.error("could not get audio sender stats",Object.assign(Object.assign({},this.logContext),{error:o}));return}const a=new Map(r.map(o=>[o.rid,o]));if(this.prevStats){let o=0;a.forEach((c,l)=>{var d;const f=(d=this.prevStats)===null||d===void 0?void 0:d.get(l);o+=sn(c,f)}),this._currentBitrate=o}this.prevStats=a}),this.senderLock=new Ne}get isSimulcast(){return!!(this.sender&&this.sender.getParameters().encodings.length>1)}startMonitor(e){var t;if(this.signalClient=e,!Le())return;const i=(t=this.sender)===null||t===void 0?void 0:t.getParameters();i&&(this.encodings=i.encodings),!this.monitorInterval&&(this.monitorInterval=setInterval(()=>{this.monitorSender()},Es))}stop(){this._mediaStreamTrack.getConstraints(),this.simulcastCodecs.forEach(e=>{e.mediaStreamTrack.stop()}),super.stop()}pauseUpstream(){const e=Object.create(null,{pauseUpstream:{get:()=>super.pauseUpstream}});return g(this,void 0,void 0,function*(){var t,i,s,r,a;yield e.pauseUpstream.call(this);try{for(var o=!0,c=Lt(this.simulcastCodecs.values()),l;l=yield c.next(),t=l.done,!t;o=!0)r=l.value,o=!1,yield(a=r.sender)===null||a===void 0?void 0:a.replaceTrack(null)}catch(d){i={error:d}}finally{try{!o&&!t&&(s=c.return)&&(yield s.call(c))}finally{if(i)throw i.error}}})}resumeUpstream(){const e=Object.create(null,{resumeUpstream:{get:()=>super.resumeUpstream}});return g(this,void 0,void 0,function*(){var t,i,s,r,a;yield e.resumeUpstream.call(this);try{for(var o=!0,c=Lt(this.simulcastCodecs.values()),l;l=yield c.next(),t=l.done,!t;o=!0){r=l.value,o=!1;const d=r;yield(a=d.sender)===null||a===void 0?void 0:a.replaceTrack(d.mediaStreamTrack)}}catch(d){i={error:d}}finally{try{!o&&!t&&(s=c.return)&&(yield s.call(c))}finally{if(i)throw i.error}}})}mute(){const e=Object.create(null,{mute:{get:()=>super.mute}});return g(this,void 0,void 0,function*(){const t=yield this.muteLock.lock();try{return this.isMuted?(this.log.debug("Track already muted",this.logContext),this):(this.source===E.Source.Camera&&!this.isUserProvided&&(this.log.debug("stopping camera track",this.logContext),this._mediaStreamTrack.stop()),yield e.mute.call(this),this)}finally{t()}})}unmute(){const e=Object.create(null,{unmute:{get:()=>super.unmute}});return g(this,void 0,void 0,function*(){const t=yield this.muteLock.lock();try{return this.isMuted?(this.source===E.Source.Camera&&!this.isUserProvided&&(this.log.debug("reacquiring camera track",this.logContext),yield this.restartTrack()),yield e.unmute.call(this),this):(this.log.debug("Track already unmuted",this.logContext),this)}finally{t()}})}setTrackMuted(e){super.setTrackMuted(e);for(const t of this.simulcastCodecs.values())t.mediaStreamTrack.enabled=!e}getSenderStats(){return g(this,void 0,void 0,function*(){var e;if(!(!((e=this.sender)===null||e===void 0)&&e.getStats))return[];const t=[],i=yield this.sender.getStats();return i.forEach(s=>{var r;if(s.type==="outbound-rtp"){const a={type:"video",streamId:s.id,frameHeight:s.frameHeight,frameWidth:s.frameWidth,framesPerSecond:s.framesPerSecond,framesSent:s.framesSent,firCount:s.firCount,pliCount:s.pliCount,nackCount:s.nackCount,packetsSent:s.packetsSent,bytesSent:s.bytesSent,qualityLimitationReason:s.qualityLimitationReason,qualityLimitationDurations:s.qualityLimitationDurations,qualityLimitationResolutionChanges:s.qualityLimitationResolutionChanges,rid:(r=s.rid)!==null&&r!==void 0?r:s.id,retransmittedPacketsSent:s.retransmittedPacketsSent,targetBitrate:s.targetBitrate,timestamp:s.timestamp},o=i.get(s.remoteId);o&&(a.jitter=o.jitter,a.packetsLost=o.packetsLost,a.roundTripTime=o.roundTripTime),t.push(a)}}),t.sort((s,r)=>{var a,o;return((a=r.frameWidth)!==null&&a!==void 0?a:0)-((o=s.frameWidth)!==null&&o!==void 0?o:0)}),t})}setPublishingQuality(e){const t=[];for(let i=je.LOW;i<=je.HIGH;i+=1)t.push(new vs({quality:i,enabled:i<=e}));this.log.debug("setting publishing quality. max quality ".concat(e),this.logContext),this.setPublishingLayers(t)}setDeviceId(e){return g(this,void 0,void 0,function*(){return this._constraints.deviceId===e&&this._mediaStreamTrack.getSettings().deviceId===lt(e)?!0:(this._constraints.deviceId=e,this.isMuted||(yield this.restartTrack()),this.isMuted||lt(e)===this._mediaStreamTrack.getSettings().deviceId)})}restartTrack(e){return g(this,void 0,void 0,function*(){var t,i,s,r;let a;if(e){const d=nn({video:e});typeof d.video!="boolean"&&(a=d.video)}yield this.restart(a);try{for(var o=!0,c=Lt(this.simulcastCodecs.values()),l;l=yield c.next(),t=l.done,!t;o=!0){r=l.value,o=!1;const d=r;d.sender&&(d.mediaStreamTrack=this.mediaStreamTrack.clone(),yield d.sender.replaceTrack(d.mediaStreamTrack))}}catch(d){i={error:d}}finally{try{!o&&!t&&(s=c.return)&&(yield s.call(c))}finally{if(i)throw i.error}}})}setProcessor(e){const t=Object.create(null,{setProcessor:{get:()=>super.setProcessor}});return g(this,arguments,void 0,function(i){var s=this;let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){var a,o,c,l,d,f;if(yield t.setProcessor.call(s,i,r),!((d=s.processor)===null||d===void 0)&&d.processedTrack)try{for(var p=!0,m=Lt(s.simulcastCodecs.values()),y;y=yield m.next(),a=y.done,!a;p=!0)l=y.value,p=!1,yield(f=l.sender)===null||f===void 0?void 0:f.replaceTrack(s.processor.processedTrack)}catch(C){o={error:C}}finally{try{!p&&!a&&(c=m.return)&&(yield c.call(m))}finally{if(o)throw o.error}}}()})}setDegradationPreference(e){return g(this,void 0,void 0,function*(){if(this.degradationPreference=e,this.sender)try{this.log.debug("setting degradationPreference to ".concat(e),this.logContext);const t=this.sender.getParameters();t.degradationPreference=e,this.sender.setParameters(t)}catch(t){this.log.warn("failed to set degradationPreference",Object.assign({error:t},this.logContext))}})}addSimulcastTrack(e,t){if(this.simulcastCodecs.has(e)){this.log.error("".concat(e," already added, skipping adding simulcast codec"),this.logContext);return}const i={codec:e,mediaStreamTrack:this.mediaStreamTrack.clone(),sender:void 0,encodings:t};return this.simulcastCodecs.set(e,i),i}setSimulcastTrackSender(e,t){const i=this.simulcastCodecs.get(e);i&&(i.sender=t,setTimeout(()=>{this.subscribedCodecs&&this.setPublishingCodecs(this.subscribedCodecs)},Qh))}setPublishingCodecs(e){return g(this,void 0,void 0,function*(){var t,i,s,r,a,o,c;if(this.log.debug("setting publishing codecs",Object.assign(Object.assign({},this.logContext),{codecs:e,currentCodec:this.codec})),!this.codec&&e.length>0)return yield this.setPublishingLayers(e[0].qualities),[];this.subscribedCodecs=e;const l=[];try{for(t=!0,i=Lt(e);s=yield i.next(),r=s.done,!r;t=!0){c=s.value,t=!1;const d=c;if(!this.codec||this.codec===d.codec)yield this.setPublishingLayers(d.qualities);else{const f=this.simulcastCodecs.get(d.codec);if(this.log.debug("try setPublishingCodec for ".concat(d.codec),Object.assign(Object.assign({},this.logContext),{simulcastCodecInfo:f})),!f||!f.sender){for(const p of d.qualities)if(p.enabled){l.push(d.codec);break}}else f.encodings&&(this.log.debug("try setPublishingLayersForSender ".concat(d.codec),this.logContext),yield ea(f.sender,f.encodings,d.qualities,this.senderLock,this.log,this.logContext))}}}catch(d){a={error:d}}finally{try{!t&&!r&&(o=i.return)&&(yield o.call(i))}finally{if(a)throw a.error}}return l})}setPublishingLayers(e){return g(this,void 0,void 0,function*(){this.log.debug("setting publishing layers",Object.assign(Object.assign({},this.logContext),{qualities:e})),!(!this.sender||!this.encodings)&&(yield ea(this.sender,this.encodings,e,this.senderLock,this.log,this.logContext))})}handleAppVisibilityChanged(){const e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return g(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),Fo()&&this.isInBackground&&this.source===E.Source.Camera&&(this._mediaStreamTrack.enabled=!1)})}}function ea(n,e,t,i,s,r){return g(this,void 0,void 0,function*(){const a=yield i.lock();s.debug("setPublishingLayersForSender",Object.assign(Object.assign({},r),{sender:n,qualities:t,senderEncodings:e}));try{const o=n.getParameters(),{encodings:c}=o;if(!c)return;if(c.length!==e.length){s.warn("cannot set publishing layers, encodings mismatch",Object.assign(Object.assign({},r),{encodings:c,senderEncodings:e}));return}let l=!1;!1&&c[0].scalabilityMode||c.forEach((f,p)=>{var m;let y=(m=f.rid)!==null&&m!==void 0?m:"";y===""&&(y="q");const C=Ho(y),_=t.find(b=>b.quality===C);_&&f.active!==_.enabled&&(l=!0,f.active=_.enabled,s.debug("setting layer ".concat(_.quality," to ").concat(f.active?"enabled":"disabled"),r),Wt()&&(_.enabled?(f.scaleResolutionDownBy=e[p].scaleResolutionDownBy,f.maxBitrate=e[p].maxBitrate,f.maxFrameRate=e[p].maxFrameRate):(f.scaleResolutionDownBy=4,f.maxBitrate=10,f.maxFrameRate=2)))}),l&&(o.encodings=c,s.debug("setting encodings",Object.assign(Object.assign({},r),{encodings:o.encodings})),yield n.setParameters(o))}finally{a()}})}function Ho(n){switch(n){case"f":return je.HIGH;case"h":return je.MEDIUM;case"q":return je.LOW;default:return je.HIGH}}function ta(n,e,t,i){if(!t)return[new _t({quality:je.HIGH,width:n,height:e,bitrate:0,ssrc:0})];if(i){const s=t[0].scalabilityMode,r=new zo(s),a=[],o=r.suffix=="h"?1.5:2,c=r.suffix=="h"?2:3;for(let l=0;l{var r,a,o;const c=(r=s.scaleResolutionDownBy)!==null&&r!==void 0?r:1;let l=Ho((a=s.rid)!==null&&a!==void 0?a:"");return new _t({quality:l,width:Math.ceil(n/c),height:Math.ceil(e/c),bitrate:(o=s.maxBitrate)!==null&&o!==void 0?o:0,ssrc:0})})}const ia="_lossy",na="_reliable",Yh=2*1e3,Nn="leave-reconnect";var qe;(function(n){n[n.New=0]="New",n[n.Connected=1]="Connected",n[n.Disconnected=2]="Disconnected",n[n.Reconnecting=3]="Reconnecting",n[n.Closed=4]="Closed"})(qe||(qe={}));class Xh extends nt.EventEmitter{get isClosed(){return this._isClosed}get pendingReconnect(){return!!this.reconnectTimeout}constructor(e){var t;super(),this.options=e,this.rtcConfig={},this.peerConnectionTimeout=Ps.peerConnectionTimeout,this.fullReconnectOnNext=!1,this.subscriberPrimary=!1,this.pcState=qe.New,this._isClosed=!0,this.pendingTrackResolvers={},this.reconnectAttempts=0,this.reconnectStart=0,this.attemptingReconnect=!1,this.joinAttempts=0,this.maxJoinAttempts=1,this.shouldFailNext=!1,this.log=Z,this.handleDataChannel=i=>g(this,[i],void 0,function(s){var r=this;let{channel:a}=s;return function*(){if(a){if(a.label===na)r.reliableDCSub=a;else if(a.label===ia)r.lossyDCSub=a;else return;r.log.debug("on data channel ".concat(a.id,", ").concat(a.label),r.logContext),a.onmessage=r.handleDataMessage}}()}),this.handleDataMessage=i=>g(this,void 0,void 0,function*(){var s,r;const a=yield this.dataProcessLock.lock();try{let o;if(i.data instanceof ArrayBuffer)o=i.data;else if(i.data instanceof Blob)o=yield i.data.arrayBuffer();else{this.log.error("unsupported data type",Object.assign(Object.assign({},this.logContext),{data:i.data}));return}const c=vt.fromBinary(new Uint8Array(o));((s=c.value)===null||s===void 0?void 0:s.case)==="speaker"?this.emit(j.ActiveSpeakersUpdate,c.value.value.speakers):(((r=c.value)===null||r===void 0?void 0:r.case)==="user"&&ef(c,c.value.value),this.emit(j.DataPacketReceived,c))}finally{a()}}),this.handleDataError=i=>{const r=i.currentTarget.maxRetransmits===0?"lossy":"reliable";if(i instanceof ErrorEvent&&i.error){const{error:a}=i.error;this.log.error("DataChannel error on ".concat(r,": ").concat(i.message),Object.assign(Object.assign({},this.logContext),{error:a}))}else this.log.error("Unknown DataChannel error on ".concat(r),Object.assign(Object.assign({},this.logContext),{event:i}))},this.handleBufferedAmountLow=i=>{const r=i.currentTarget.maxRetransmits===0?ae.LOSSY:ae.RELIABLE;this.updateAndEmitDCBufferStatus(r)},this.handleDisconnect=(i,s)=>{if(this._isClosed)return;this.log.warn("".concat(i," disconnected"),this.logContext),this.reconnectAttempts===0&&(this.reconnectStart=Date.now());const r=c=>{this.log.warn("could not recover connection after ".concat(this.reconnectAttempts," attempts, ").concat(c,"ms. giving up"),this.logContext),this.emit(j.Disconnected),this.close()},a=Date.now()-this.reconnectStart;let o=this.getNextRetryDelay({elapsedMs:a,retryCount:this.reconnectAttempts});if(o===null){r(a);return}i===Nn&&(o=0),this.log.debug("reconnecting in ".concat(o,"ms"),this.logContext),this.clearReconnectTimeout(),this.token&&this.regionUrlProvider&&this.regionUrlProvider.updateToken(this.token),this.reconnectTimeout=Ee.setTimeout(()=>this.attemptReconnect(s).finally(()=>this.reconnectTimeout=void 0),o)},this.waitForRestarted=()=>new Promise((i,s)=>{this.pcState===qe.Connected&&i();const r=()=>{this.off(j.Disconnected,a),i()},a=()=>{this.off(j.Restarted,r),s()};this.once(j.Restarted,r),this.once(j.Disconnected,a)}),this.updateAndEmitDCBufferStatus=i=>{const s=this.isBufferStatusLow(i);typeof s<"u"&&s!==this.dcBufferStatus.get(i)&&(this.dcBufferStatus.set(i,s),this.emit(j.DCBufferStatusChanged,s,i))},this.isBufferStatusLow=i=>{const s=this.dataChannelForKind(i);if(s)return s.bufferedAmount<=s.bufferedAmountLowThreshold},this.handleBrowserOnLine=()=>{this.client.currentState===ce.RECONNECTING&&(this.clearReconnectTimeout(),this.attemptReconnect(At.RR_SIGNAL_DISCONNECTED))},this.log=dt((t=e.loggerName)!==null&&t!==void 0?t:Je.Engine),this.loggerOptions={loggerName:e.loggerName,loggerContextCb:()=>this.logContext},this.client=new Ss(void 0,this.loggerOptions),this.client.signalLatency=this.options.expSignalLatency,this.reconnectPolicy=this.options.reconnectPolicy,this.registerOnLineListener(),this.closingLock=new Ne,this.dataProcessLock=new Ne,this.dcBufferStatus=new Map([[ae.LOSSY,!0],[ae.RELIABLE,!0]]),this.client.onParticipantUpdate=i=>this.emit(j.ParticipantUpdate,i),this.client.onConnectionQuality=i=>this.emit(j.ConnectionQualityUpdate,i),this.client.onRoomUpdate=i=>this.emit(j.RoomUpdate,i),this.client.onSubscriptionError=i=>this.emit(j.SubscriptionError,i),this.client.onSubscriptionPermissionUpdate=i=>this.emit(j.SubscriptionPermissionUpdate,i),this.client.onSpeakersChanged=i=>this.emit(j.SpeakersChanged,i),this.client.onStreamStateUpdate=i=>this.emit(j.StreamStateChanged,i),this.client.onRequestResponse=i=>this.emit(j.SignalRequestResponse,i)}get logContext(){var e,t,i,s,r,a,o,c;return{room:(t=(e=this.latestJoinResponse)===null||e===void 0?void 0:e.room)===null||t===void 0?void 0:t.name,roomID:(s=(i=this.latestJoinResponse)===null||i===void 0?void 0:i.room)===null||s===void 0?void 0:s.sid,participant:(a=(r=this.latestJoinResponse)===null||r===void 0?void 0:r.participant)===null||a===void 0?void 0:a.identity,pID:(c=(o=this.latestJoinResponse)===null||o===void 0?void 0:o.participant)===null||c===void 0?void 0:c.sid}}join(e,t,i,s){return g(this,void 0,void 0,function*(){this.url=e,this.token=t,this.signalOpts=i,this.maxJoinAttempts=i.maxRetries;try{this.joinAttempts+=1,this.setupSignalClientCallbacks();const r=yield this.client.join(e,t,i,s);return this._isClosed=!1,this.latestJoinResponse=r,this.subscriberPrimary=r.subscriberPrimary,this.pcManager||(yield this.configure(r)),(!this.subscriberPrimary||r.fastPublish)&&this.negotiate(),this.clientConfiguration=r.clientConfiguration,r}catch(r){if(r instanceof re&&r.reason===te.ServerUnreachable&&(this.log.warn("Couldn't connect to server, attempt ".concat(this.joinAttempts," of ").concat(this.maxJoinAttempts),this.logContext),this.joinAttempts{i&&(i.close(),i.onbufferedamountlow=null,i.onclose=null,i.onclosing=null,i.onerror=null,i.onmessage=null,i.onopen=null)};t(this.lossyDC),t(this.lossyDCSub),t(this.reliableDC),t(this.reliableDCSub),this.lossyDC=void 0,this.lossyDCSub=void 0,this.reliableDC=void 0,this.reliableDCSub=void 0})}cleanupClient(){return g(this,void 0,void 0,function*(){yield this.client.close(),this.client.resetCallbacks()})}addTrack(e){if(this.pendingTrackResolvers[e.cid])throw new it("a track with the same ID has already been published");return new Promise((t,i)=>{const s=setTimeout(()=>{delete this.pendingTrackResolvers[e.cid],i(new re("publication of local track timed out, no response from server",te.InternalError))},1e4);this.pendingTrackResolvers[e.cid]={resolve:r=>{clearTimeout(s),t(r)},reject:()=>{clearTimeout(s),i(new Error("Cancelled publication by calling unpublish"))}},this.client.sendAddTrack(e)})}removeTrack(e){if(e.track&&this.pendingTrackResolvers[e.track.id]){const{reject:t}=this.pendingTrackResolvers[e.track.id];t&&t(),delete this.pendingTrackResolvers[e.track.id]}try{return this.pcManager.removeTrack(e),!0}catch(t){this.log.warn("failed to remove track",Object.assign(Object.assign({},this.logContext),{error:t}))}return!1}updateMuteStatus(e,t){this.client.sendMuteTrack(e,t)}get dataSubscriberReadyState(){var e;return(e=this.reliableDCSub)===null||e===void 0?void 0:e.readyState}getConnectedServerAddress(){return g(this,void 0,void 0,function*(){var e;return(e=this.pcManager)===null||e===void 0?void 0:e.getConnectedAddress()})}setRegionUrlProvider(e){this.regionUrlProvider=e}configure(e){return g(this,void 0,void 0,function*(){var t,i;if(this.pcManager&&this.pcManager.currentState!==pe.NEW)return;this.participantSid=(t=e.participant)===null||t===void 0?void 0:t.sid;const s=this.makeRTCConfiguration(e);this.pcManager=new jh(s,e.subscriberPrimary,this.loggerOptions),this.emit(j.TransportsCreated,this.pcManager.publisher,this.pcManager.subscriber),this.pcManager.onIceCandidate=(r,a)=>{this.client.sendIceCandidate(r,a)},this.pcManager.onPublisherOffer=r=>{this.client.sendOffer(r)},this.pcManager.onDataChannel=this.handleDataChannel,this.pcManager.onStateChange=(r,a,o)=>g(this,void 0,void 0,function*(){if(this.log.debug("primary PC state changed ".concat(r),this.logContext),["closed","disconnected","failed"].includes(a)&&(this.publisherConnectionPromise=void 0),r===pe.CONNECTED){const d=this.pcState===qe.New;this.pcState=qe.Connected,d&&this.emit(j.Connected,e)}else r===pe.FAILED&&this.pcState===qe.Connected&&(this.pcState=qe.Disconnected,this.handleDisconnect("peerconnection failed",o==="failed"?At.RR_SUBSCRIBER_FAILED:At.RR_PUBLISHER_FAILED));const c=this.client.isDisconnected||this.client.currentState===ce.RECONNECTING,l=[pe.FAILED,pe.CLOSING,pe.CLOSED].includes(r);c&&l&&!this._isClosed&&this.emit(j.Offline)}),this.pcManager.onTrack=r=>{this.emit(j.MediaTrackAdded,r.track,r.streams[0],r.receiver)},Zh((i=e.serverInfo)===null||i===void 0?void 0:i.protocol)||this.createDataChannels()})}setupSignalClientCallbacks(){this.client.onAnswer=e=>g(this,void 0,void 0,function*(){this.pcManager&&(this.log.debug("received server answer",Object.assign(Object.assign({},this.logContext),{RTCSdpType:e.type})),yield this.pcManager.setPublisherAnswer(e))}),this.client.onTrickle=(e,t)=>{this.pcManager&&(this.log.trace("got ICE candidate from peer",Object.assign(Object.assign({},this.logContext),{candidate:e,target:t})),this.pcManager.addIceCandidate(e,t))},this.client.onOffer=e=>g(this,void 0,void 0,function*(){if(!this.pcManager)return;const t=yield this.pcManager.createSubscriberAnswerFromOffer(e);this.client.sendAnswer(t)}),this.client.onLocalTrackPublished=e=>{var t;if(this.log.debug("received trackPublishedResponse",Object.assign(Object.assign({},this.logContext),{cid:e.cid,track:(t=e.track)===null||t===void 0?void 0:t.sid})),!this.pendingTrackResolvers[e.cid]){this.log.error("missing track resolver for ".concat(e.cid),Object.assign(Object.assign({},this.logContext),{cid:e.cid}));return}const{resolve:i}=this.pendingTrackResolvers[e.cid];delete this.pendingTrackResolvers[e.cid],i(e.track)},this.client.onLocalTrackUnpublished=e=>{this.emit(j.LocalTrackUnpublished,e)},this.client.onLocalTrackSubscribed=e=>{this.emit(j.LocalTrackSubscribed,e)},this.client.onTokenRefresh=e=>{this.token=e},this.client.onRemoteMuteChanged=(e,t)=>{this.emit(j.RemoteMute,e,t)},this.client.onSubscribedQualityUpdate=e=>{this.emit(j.SubscribedQualityUpdate,e)},this.client.onClose=()=>{this.handleDisconnect("signal",At.RR_SIGNAL_DISCONNECTED)},this.client.onLeave=e=>{switch(this.log.debug("client leave request",Object.assign(Object.assign({},this.logContext),{reason:e==null?void 0:e.reason})),e.regions&&this.regionUrlProvider&&(this.log.debug("updating regions",this.logContext),this.regionUrlProvider.setServerReportedRegions(e.regions)),e.action){case jt.DISCONNECT:this.emit(j.Disconnected,e==null?void 0:e.reason),this.close();break;case jt.RECONNECT:this.fullReconnectOnNext=!0,this.handleDisconnect(Nn);break;case jt.RESUME:this.handleDisconnect(Nn)}}}makeRTCConfiguration(e){var t;const i=Object.assign({},this.rtcConfig);if(!((t=this.signalOpts)===null||t===void 0)&&t.e2eeEnabled&&(this.log.debug("E2EE - setting up transports with insertable streams",this.logContext),i.encodedInsertableStreams=!0),e.iceServers&&!i.iceServers){const s=[];e.iceServers.forEach(r=>{const a={urls:r.urls};r.username&&(a.username=r.username),r.credential&&(a.credential=r.credential),s.push(a)}),i.iceServers=s}return e.clientConfiguration&&e.clientConfiguration.forceRelay===pi.ENABLED&&(i.iceTransportPolicy="relay"),i.sdpSemantics="unified-plan",i.continualGatheringPolicy="gather_continually",i}createDataChannels(){this.pcManager&&(this.lossyDC&&(this.lossyDC.onmessage=null,this.lossyDC.onerror=null),this.reliableDC&&(this.reliableDC.onmessage=null,this.reliableDC.onerror=null),this.lossyDC=this.pcManager.createPublisherDataChannel(ia,{ordered:!0,maxRetransmits:0}),this.reliableDC=this.pcManager.createPublisherDataChannel(na,{ordered:!0}),this.lossyDC.onmessage=this.handleDataMessage,this.reliableDC.onmessage=this.handleDataMessage,this.lossyDC.onerror=this.handleDataError,this.reliableDC.onerror=this.handleDataError,this.lossyDC.bufferedAmountLowThreshold=65535,this.reliableDC.bufferedAmountLowThreshold=65535,this.lossyDC.onbufferedamountlow=this.handleBufferedAmountLow,this.reliableDC.onbufferedamountlow=this.handleBufferedAmountLow)}createSender(e,t,i){return g(this,void 0,void 0,function*(){if(ts())return yield this.createTransceiverRTCRtpSender(e,t,i);if(is())return this.log.warn("using add-track fallback",this.logContext),yield this.createRTCRtpSender(e.mediaStreamTrack);throw new ye("Required webRTC APIs not supported on this device")})}createSimulcastSender(e,t,i,s){return g(this,void 0,void 0,function*(){if(ts())return this.createSimulcastTransceiverSender(e,t,i,s);if(is())return this.log.debug("using add-track fallback",this.logContext),this.createRTCRtpSender(e.mediaStreamTrack);throw new ye("Cannot stream on this device")})}createTransceiverRTCRtpSender(e,t,i){return g(this,void 0,void 0,function*(){if(!this.pcManager)throw new ye("publisher is closed");const s=[];e.mediaStream&&s.push(e.mediaStream),e instanceof we&&(e.codec=t.videoCodec);const r={direction:"sendonly",streams:s};return i&&(r.sendEncodings=i),(yield this.pcManager.addPublisherTransceiver(e.mediaStreamTrack,r)).sender})}createSimulcastTransceiverSender(e,t,i,s){return g(this,void 0,void 0,function*(){if(!this.pcManager)throw new ye("publisher is closed");const r={direction:"sendonly"};s&&(r.sendEncodings=s);const a=yield this.pcManager.addPublisherTransceiver(t.mediaStreamTrack,r);if(i.videoCodec)return e.setSimulcastTrackSender(i.videoCodec,a.sender),a.sender})}createRTCRtpSender(e){return g(this,void 0,void 0,function*(){if(!this.pcManager)throw new ye("publisher is closed");return this.pcManager.addPublisherTrack(e)})}attemptReconnect(e){return g(this,void 0,void 0,function*(){var t,i,s;if(!this._isClosed){if(this.attemptingReconnect){Z.warn("already attempting reconnect, returning early",this.logContext);return}(((t=this.clientConfiguration)===null||t===void 0?void 0:t.resumeConnection)===pi.DISABLED||((s=(i=this.pcManager)===null||i===void 0?void 0:i.currentState)!==null&&s!==void 0?s:pe.NEW)===pe.NEW)&&(this.fullReconnectOnNext=!0);try{this.attemptingReconnect=!0,this.fullReconnectOnNext?yield this.restartConnection():yield this.resumeConnection(e),this.clearPendingReconnect(),this.fullReconnectOnNext=!1}catch(r){this.reconnectAttempts+=1;let a=!0;r instanceof ye?(this.log.debug("received unrecoverable error",Object.assign(Object.assign({},this.logContext),{error:r})),a=!1):r instanceof Nt||(this.fullReconnectOnNext=!0),a?this.handleDisconnect("reconnect",At.RR_UNKNOWN):(this.log.info("could not recover connection after ".concat(this.reconnectAttempts," attempts, ").concat(Date.now()-this.reconnectStart,"ms. giving up"),this.logContext),this.emit(j.Disconnected),yield this.close())}finally{this.attemptingReconnect=!1}}})}getNextRetryDelay(e){try{return this.reconnectPolicy.nextRetryDelayInMs(e)}catch(t){this.log.warn("encountered error in reconnect policy",Object.assign(Object.assign({},this.logContext),{error:t}))}return null}restartConnection(e){return g(this,void 0,void 0,function*(){var t,i,s;try{if(!this.url||!this.token)throw new ye("could not reconnect, url or token not saved");this.log.info("reconnecting, attempt: ".concat(this.reconnectAttempts),this.logContext),this.emit(j.Restarting),this.client.isDisconnected||(yield this.client.sendLeave()),yield this.cleanupPeerConnections(),yield this.cleanupClient();let r;try{if(!this.signalOpts)throw this.log.warn("attempted connection restart, without signal options present",this.logContext),new Nt;r=yield this.join(e??this.url,this.token,this.signalOpts)}catch(a){throw a instanceof re&&a.reason===te.NotAllowed?new ye("could not reconnect, token might be expired"):new Nt}if(this.shouldFailNext)throw this.shouldFailNext=!1,new Error("simulated failure");if(this.client.setReconnected(),this.emit(j.SignalRestarted,r),yield this.waitForPCReconnected(),this.client.currentState!==ce.CONNECTED)throw new Nt("Signal connection got severed during reconnect");(t=this.regionUrlProvider)===null||t===void 0||t.resetAttempts(),this.emit(j.Restarted)}catch(r){const a=yield(i=this.regionUrlProvider)===null||i===void 0?void 0:i.getNextBestRegionUrl();if(a){yield this.restartConnection(a);return}else throw(s=this.regionUrlProvider)===null||s===void 0||s.resetAttempts(),r}})}resumeConnection(e){return g(this,void 0,void 0,function*(){var t;if(!this.url||!this.token)throw new ye("could not reconnect, url or token not saved");if(!this.pcManager)throw new ye("publisher and subscriber connections unset");this.log.info("resuming signal connection, attempt ".concat(this.reconnectAttempts),this.logContext),this.emit(j.Resuming);let i;try{this.setupSignalClientCallbacks(),i=yield this.client.reconnect(this.url,this.token,this.participantSid,e)}catch(s){let r="";throw s instanceof Error&&(r=s.message,this.log.error(s.message,Object.assign(Object.assign({},this.logContext),{error:s}))),s instanceof re&&s.reason===te.NotAllowed?new ye("could not reconnect, token might be expired"):s instanceof re&&s.reason===te.LeaveRequest?s:new Nt(r)}if(this.emit(j.SignalResumed),i){const s=this.makeRTCConfiguration(i);this.pcManager.updateConfiguration(s)}else this.log.warn("Did not receive reconnect response",this.logContext);if(this.shouldFailNext)throw this.shouldFailNext=!1,new Error("simulated failure");if(yield this.pcManager.triggerIceRestart(),yield this.waitForPCReconnected(),this.client.currentState!==ce.CONNECTED)throw new Nt("Signal connection got severed during reconnect");this.client.setReconnected(),((t=this.reliableDC)===null||t===void 0?void 0:t.readyState)==="open"&&this.reliableDC.id===null&&this.createDataChannels(),this.emit(j.Resumed)})}waitForPCInitialConnection(e,t){return g(this,void 0,void 0,function*(){if(!this.pcManager)throw new ye("PC manager is closed");yield this.pcManager.ensurePCTransportConnection(t,e)})}waitForPCReconnected(){return g(this,void 0,void 0,function*(){this.pcState=qe.Reconnecting,this.log.debug("waiting for peer connection to reconnect",this.logContext);try{if(yield He(Yh),!this.pcManager)throw new ye("PC manager is closed");yield this.pcManager.ensurePCTransportConnection(void 0,this.peerConnectionTimeout),this.pcState=qe.Connected}catch(e){throw this.pcState=qe.Disconnected,new re("could not establish PC connection, ".concat(e.message),te.InternalError)}})}sendDataPacket(e,t){return g(this,void 0,void 0,function*(){const i=e.toBinary();yield this.ensurePublisherConnected(t);const s=this.dataChannelForKind(t);s&&s.send(i),this.updateAndEmitDCBufferStatus(t)})}ensureDataTransportConnected(e){return g(this,arguments,void 0,function(t){var i=this;let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.subscriberPrimary;return function*(){var r;if(!i.pcManager)throw new ye("PC manager is closed");const a=s?i.pcManager.subscriber:i.pcManager.publisher,o=s?"Subscriber":"Publisher";if(!a)throw new re("".concat(o," connection not set"),te.InternalError);let c=!1;!s&&!i.dataChannelForKind(t,s)&&(i.createDataChannels(),c=!0),!c&&!s&&!i.pcManager.publisher.isICEConnected&&i.pcManager.publisher.getICEConnectionState()!=="checking"&&(c=!0),c&&i.negotiate();const l=i.dataChannelForKind(t,s);if((l==null?void 0:l.readyState)==="open")return;const d=new Date().getTime()+i.peerConnectionTimeout;for(;new Date().getTime()g(this,void 0,void 0,function*(){if(!this.pcManager){t(new Yn("PC manager is closed"));return}this.pcManager.requirePublisher(),this.pcManager.publisher.getTransceivers().length==0&&!this.lossyDC&&!this.reliableDC&&this.createDataChannels();const i=new AbortController,s=()=>{i.abort(),this.log.debug("engine disconnected while negotiation was ongoing",this.logContext),e()};this.isClosed&&t("cannot negotiate on closed engine"),this.on(j.Closing,s),this.pcManager.publisher.once(Kt.RTPVideoPayloadTypes,r=>{const a=new Map;r.forEach(o=>{const c=o.codec.toLowerCase();Th(c)&&a.set(o.payload,c)}),this.emit(j.RTPVideoMapUpdate,a)});try{yield this.pcManager.negotiate(i),e()}catch(r){r instanceof Yn&&(this.fullReconnectOnNext=!0),this.handleDisconnect("negotiation",At.RR_UNKNOWN),t(r)}finally{this.off(j.Closing,s)}}))})}dataChannelForKind(e,t){if(t){if(e===ae.LOSSY)return this.lossyDCSub;if(e===ae.RELIABLE)return this.reliableDCSub}else{if(e===ae.LOSSY)return this.lossyDC;if(e===ae.RELIABLE)return this.reliableDC}}sendSyncState(e,t){var i,s;if(!this.pcManager){this.log.warn("sync state cannot be sent without peer connection setup",this.logContext);return}const r=this.pcManager.subscriber.getLocalDescription(),a=this.pcManager.subscriber.getRemoteDescription(),o=(s=(i=this.signalOpts)===null||i===void 0?void 0:i.autoSubscribe)!==null&&s!==void 0?s:!0,c=new Array,l=new Array;e.forEach(d=>{d.isDesired!==o&&c.push(d.trackSid),d.isEnabled||l.push(d.trackSid)}),this.client.sendSyncState(new Za({answer:r?Ji({sdp:r.sdp,type:r.type}):void 0,offer:a?Ji({sdp:a.sdp,type:a.type}):void 0,subscription:new Zi({trackSids:c,subscribe:!o,participantTracks:[]}),publishTracks:ch(t),dataChannels:this.dataChannelsInfo(),trackSidsDisabled:l}))}failNext(){this.shouldFailNext=!0}dataChannelsInfo(){const e=[],t=(i,s)=>{(i==null?void 0:i.id)!==void 0&&i.id!==null&&e.push(new eo({label:i.label,id:i.id,target:s}))};return t(this.dataChannelForKind(ae.LOSSY),We.PUBLISHER),t(this.dataChannelForKind(ae.RELIABLE),We.PUBLISHER),t(this.dataChannelForKind(ae.LOSSY,!0),We.SUBSCRIBER),t(this.dataChannelForKind(ae.RELIABLE,!0),We.SUBSCRIBER),e}clearReconnectTimeout(){this.reconnectTimeout&&Ee.clearTimeout(this.reconnectTimeout)}clearPendingReconnect(){this.clearReconnectTimeout(),this.reconnectAttempts=0}registerOnLineListener(){Le()&&window.addEventListener("online",this.handleBrowserOnLine)}deregisterOnLineListener(){Le()&&window.removeEventListener("online",this.handleBrowserOnLine)}}class Nt extends Error{}function Zh(n){return n!==void 0&&n>13}function ef(n,e){const t=n.participantIdentity?n.participantIdentity:e.participantIdentity;n.participantIdentity=t,e.participantIdentity=t;const i=n.destinationIdentities.length!==0?n.destinationIdentities:e.destinationIdentities;n.destinationIdentities=i,e.destinationIdentities=i}class sa{constructor(e,t){this.lastUpdateAt=0,this.settingsCacheTime=3e3,this.attemptedRegions=[],this.serverUrl=new URL(e),this.token=t}updateToken(e){this.token=e}isCloud(){return ss(this.serverUrl)}getServerUrl(){return this.serverUrl}getNextBestRegionUrl(e){return g(this,void 0,void 0,function*(){if(!this.isCloud())throw Error("region availability is only supported for LiveKit Cloud domains");(!this.regionSettings||Date.now()-this.lastUpdateAt>this.settingsCacheTime)&&(this.regionSettings=yield this.fetchRegionSettings(e));const t=this.regionSettings.regions.filter(i=>!this.attemptedRegions.find(s=>s.url===i.url));if(t.length>0){const i=t[0];return this.attemptedRegions.push(i),Z.debug("next region: ".concat(i.region)),i.url}else return null})}resetAttempts(){this.attemptedRegions=[]}fetchRegionSettings(e){return g(this,void 0,void 0,function*(){const t=yield fetch("".concat(tf(this.serverUrl),"/regions"),{headers:{authorization:"Bearer ".concat(this.token)},signal:e});if(t.ok){const i=yield t.json();return this.lastUpdateAt=Date.now(),i}else throw new re("Could not fetch region settings: ".concat(t.statusText),t.status===401?te.NotAllowed:te.InternalError,t.status)})}setServerReportedRegions(e){this.regionSettings=e,this.lastUpdateAt=Date.now()}}function tf(n){return"".concat(n.protocol.replace("ws","http"),"//").concat(n.host,"/settings")}class fe extends Error{constructor(e,t,i){super(t),this.code=e,this.message=aa(t,fe.MAX_MESSAGE_BYTES),this.data=i?aa(i,fe.MAX_DATA_BYTES):void 0}static fromProto(e){return new fe(e.code,e.message,e.data)}toProto(){return new Ba({code:this.code,message:this.message,data:this.data})}static builtIn(e,t){return new fe(fe.ErrorCode[e],fe.ErrorMessage[e],t)}}fe.MAX_MESSAGE_BYTES=256;fe.MAX_DATA_BYTES=15360;fe.ErrorCode={APPLICATION_ERROR:1500,CONNECTION_TIMEOUT:1501,RESPONSE_TIMEOUT:1502,RECIPIENT_DISCONNECTED:1503,RESPONSE_PAYLOAD_TOO_LARGE:1504,SEND_FAILED:1505,UNSUPPORTED_METHOD:1400,RECIPIENT_NOT_FOUND:1401,REQUEST_PAYLOAD_TOO_LARGE:1402,UNSUPPORTED_SERVER:1403,UNSUPPORTED_VERSION:1404};fe.ErrorMessage={APPLICATION_ERROR:"Application error in method handler",CONNECTION_TIMEOUT:"Connection timeout",RESPONSE_TIMEOUT:"Response timeout",RECIPIENT_DISCONNECTED:"Recipient disconnected",RESPONSE_PAYLOAD_TOO_LARGE:"Response payload too large",SEND_FAILED:"Failed to send",UNSUPPORTED_METHOD:"Method not supported at destination",RECIPIENT_NOT_FOUND:"Recipient not found",REQUEST_PAYLOAD_TOO_LARGE:"Request payload too large",UNSUPPORTED_SERVER:"RPC not supported by server",UNSUPPORTED_VERSION:"Unsupported RPC version"};const ra=15360;function cs(n){return new TextEncoder().encode(n).length}function aa(n,e){if(cs(n)<=e)return n;let t=0,i=n.length;const s=new TextEncoder;for(;t{i.track===this._mediaStreamTrack&&(e.removeEventListener("removetrack",t),this.receiver&&"playoutDelayHint"in this.receiver&&(this.receiver.playoutDelayHint=void 0),this.receiver=void 0,this._currentBitrate=0,this.emit(N.Ended,this))};e.addEventListener("removetrack",t)}start(){this.startMonitor(),super.enable()}stop(){this.stopMonitor(),super.disable()}getRTCStatsReport(){return g(this,void 0,void 0,function*(){var e;return!((e=this.receiver)===null||e===void 0)&&e.getStats?yield this.receiver.getStats():void 0})}setPlayoutDelay(e){this.receiver?"playoutDelayHint"in this.receiver?this.receiver.playoutDelayHint=e:this.log.warn("Playout delay not supported in this browser"):this.log.warn("Cannot set playout delay, track already ended")}getPlayoutDelay(){if(this.receiver){if("playoutDelayHint"in this.receiver)return this.receiver.playoutDelayHint;this.log.warn("Playout delay not supported in this browser")}else this.log.warn("Cannot get playout delay, track already ended");return 0}startMonitor(){this.monitorInterval||(this.monitorInterval=setInterval(()=>this.monitorReceiver(),Es)),lh()&&this.registerTimeSyncUpdate()}registerTimeSyncUpdate(){const e=()=>{var t;this.timeSyncHandle=requestAnimationFrame(()=>e());const i=(t=this.receiver)===null||t===void 0?void 0:t.getSynchronizationSources()[0];if(i){const{timestamp:s,rtpTimestamp:r}=i;r&&this.rtpTimestamp!==r&&(this.emit(N.TimeSyncUpdate,{timestamp:s,rtpTimestamp:r}),this.rtpTimestamp=r)}};e()}}class hi extends Jo{constructor(e,t,i,s,r,a){super(e,t,E.Kind.Audio,i,a),this.monitorReceiver=()=>g(this,void 0,void 0,function*(){if(!this.receiver){this._currentBitrate=0;return}const o=yield this.getReceiverStats();o&&this.prevStats&&this.receiver&&(this._currentBitrate=sn(o,this.prevStats)),this.prevStats=o}),this.audioContext=s,this.webAudioPluginNodes=[],r&&(this.sinkId=r.deviceId)}setVolume(e){var t;for(const i of this.attachedElements)this.audioContext?(t=this.gainNode)===null||t===void 0||t.gain.setTargetAtTime(e,0,.1):i.volume=e;ht()&&this._mediaStreamTrack._setVolume(e),this.elementVolume=e}getVolume(){if(this.elementVolume)return this.elementVolume;if(ht())return 1;let e=0;return this.attachedElements.forEach(t=>{t.volume>e&&(e=t.volume)}),e}setSinkId(e){return g(this,void 0,void 0,function*(){this.sinkId=e,yield Promise.all(this.attachedElements.map(t=>{if(ns(t))return t.setSinkId(e)}))})}attach(e){const t=this.attachedElements.length===0;return e?super.attach(e):e=super.attach(),this.sinkId&&ns(e)&&e.setSinkId(this.sinkId),this.audioContext&&t&&(this.log.debug("using audio context mapping",this.logContext),this.connectWebAudio(this.audioContext,e),e.volume=0,e.muted=!0),this.elementVolume&&this.setVolume(this.elementVolume),e}detach(e){let t;return e?(t=super.detach(e),this.audioContext&&(this.attachedElements.length>0?this.connectWebAudio(this.audioContext,this.attachedElements[0]):this.disconnectWebAudio())):(t=super.detach(),this.disconnectWebAudio()),t}setAudioContext(e){this.audioContext=e,e&&this.attachedElements.length>0?this.connectWebAudio(e,this.attachedElements[0]):e||this.disconnectWebAudio()}setWebAudioPlugins(e){this.webAudioPluginNodes=e,this.attachedElements.length>0&&this.audioContext&&this.connectWebAudio(this.audioContext,this.attachedElements[0])}connectWebAudio(e,t){this.disconnectWebAudio(),this.sourceNode=e.createMediaStreamSource(t.srcObject);let i=this.sourceNode;this.webAudioPluginNodes.forEach(s=>{i.connect(s),i=s}),this.gainNode=e.createGain(),i.connect(this.gainNode),this.gainNode.connect(e.destination),this.elementVolume&&this.gainNode.gain.setTargetAtTime(this.elementVolume,0,.1),e.state!=="running"&&e.resume().then(()=>{e.state!=="running"&&this.emit(N.AudioPlaybackFailed,new Error("Audio Context couldn't be started automatically"))}).catch(s=>{this.emit(N.AudioPlaybackFailed,s)})}disconnectWebAudio(){var e,t;(e=this.gainNode)===null||e===void 0||e.disconnect(),(t=this.sourceNode)===null||t===void 0||t.disconnect(),this.gainNode=void 0,this.sourceNode=void 0}getReceiverStats(){return g(this,void 0,void 0,function*(){if(!this.receiver||!this.receiver.getStats)return;const e=yield this.receiver.getStats();let t;return e.forEach(i=>{i.type==="inbound-rtp"&&(t={type:"audio",timestamp:i.timestamp,jitter:i.jitter,bytesReceived:i.bytesReceived,concealedSamples:i.concealedSamples,concealmentEvents:i.concealmentEvents,silentConcealedSamples:i.silentConcealedSamples,silentConcealmentEvents:i.silentConcealmentEvents,totalAudioEnergy:i.totalAudioEnergy,totalSamplesDuration:i.totalSamplesDuration})}),t})}}const Ln=100;class fi extends Jo{constructor(e,t,i,s,r){super(e,t,E.Kind.Video,i,r),this.elementInfos=[],this.monitorReceiver=()=>g(this,void 0,void 0,function*(){if(!this.receiver){this._currentBitrate=0;return}const a=yield this.getReceiverStats();a&&this.prevStats&&this.receiver&&(this._currentBitrate=sn(a,this.prevStats)),this.prevStats=a}),this.debouncedHandleResize=ks(()=>{this.updateDimensions()},Ln),this.adaptiveStreamSettings=s}get isAdaptiveStream(){return this.adaptiveStreamSettings!==void 0}get mediaStreamTrack(){return this._mediaStreamTrack}setMuted(e){super.setMuted(e),this.attachedElements.forEach(t=>{e?Vt(this._mediaStreamTrack,t):Ft(this._mediaStreamTrack,t)})}attach(e){if(e?super.attach(e):e=super.attach(),this.adaptiveStreamSettings&&this.elementInfos.find(t=>t.element===e)===void 0){const t=new nf(e);this.observeElementInfo(t)}return e}observeElementInfo(e){this.adaptiveStreamSettings&&this.elementInfos.find(t=>t===e)===void 0?(e.handleResize=()=>{this.debouncedHandleResize()},e.handleVisibilityChanged=()=>{this.updateVisibility()},this.elementInfos.push(e),e.observe(),this.debouncedHandleResize(),this.updateVisibility()):this.log.warn("visibility resize observer not triggered",this.logContext)}stopObservingElementInfo(e){if(!this.isAdaptiveStream){this.log.warn("stopObservingElementInfo ignored",this.logContext);return}const t=this.elementInfos.filter(i=>i===e);for(const i of t)i.stopObserving();this.elementInfos=this.elementInfos.filter(i=>i!==e),this.updateVisibility(),this.debouncedHandleResize()}detach(e){let t=[];if(e)return this.stopObservingElement(e),super.detach(e);t=super.detach();for(const i of t)this.stopObservingElement(i);return t}getDecoderImplementation(){var e;return(e=this.prevStats)===null||e===void 0?void 0:e.decoderImplementation}getReceiverStats(){return g(this,void 0,void 0,function*(){if(!this.receiver||!this.receiver.getStats)return;const e=yield this.receiver.getStats();let t,i="",s=new Map;return e.forEach(r=>{r.type==="inbound-rtp"?(i=r.codecId,t={type:"video",framesDecoded:r.framesDecoded,framesDropped:r.framesDropped,framesReceived:r.framesReceived,packetsReceived:r.packetsReceived,packetsLost:r.packetsLost,frameWidth:r.frameWidth,frameHeight:r.frameHeight,pliCount:r.pliCount,firCount:r.firCount,nackCount:r.nackCount,jitter:r.jitter,timestamp:r.timestamp,bytesReceived:r.bytesReceived,decoderImplementation:r.decoderImplementation}):r.type==="codec"&&s.set(r.id,r)}),t&&i!==""&&s.get(i)&&(t.mimeType=s.get(i).mimeType),t})}stopObservingElement(e){const t=this.elementInfos.filter(i=>i.element===e);for(const i of t)this.stopObservingElementInfo(i)}handleAppVisibilityChanged(){const e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return g(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),this.isAdaptiveStream&&this.updateVisibility()})}updateVisibility(){var e,t;const i=this.elementInfos.reduce((o,c)=>Math.max(o,c.visibilityChangedAt||0),0),s=!((t=(e=this.adaptiveStreamSettings)===null||e===void 0?void 0:e.pauseVideoInBackground)!==null&&t!==void 0)||t?this.isInBackground:!1,r=this.elementInfos.some(o=>o.pictureInPicture),a=this.elementInfos.some(o=>o.visible)&&!s||r;if(this.lastVisible!==a){if(!a&&Date.now()-i{this.updateVisibility()},Ln);return}this.lastVisible=a,this.emit(N.VisibilityChanged,a,this)}}updateDimensions(){var e,t;let i=0,s=0;const r=this.getPixelDensity();for(const a of this.elementInfos){const o=a.width()*r,c=a.height()*r;o+c>i+s&&(i=o,s=c)}((e=this.lastDimensions)===null||e===void 0?void 0:e.width)===i&&((t=this.lastDimensions)===null||t===void 0?void 0:t.height)===s||(this.lastDimensions={width:i,height:s},this.emit(N.VideoDimensionsChanged,this.lastDimensions,this))}getPixelDensity(){var e;const t=(e=this.adaptiveStreamSettings)===null||e===void 0?void 0:e.pixelDensity;return t==="screen"?Fr():t||(Fr()>2?2:1)}}class nf{get visible(){return this.isPiP||this.isIntersecting}get pictureInPicture(){return this.isPiP}constructor(e,t){this.onVisibilityChanged=i=>{var s;const{target:r,isIntersecting:a}=i;r===this.element&&(this.isIntersecting=a,this.isPiP=ni(this.element),this.visibilityChangedAt=Date.now(),(s=this.handleVisibilityChanged)===null||s===void 0||s.call(this))},this.onEnterPiP=()=>{var i,s,r;(s=(i=window.documentPictureInPicture)===null||i===void 0?void 0:i.window)===null||s===void 0||s.addEventListener("pagehide",this.onLeavePiP),this.isPiP=ni(this.element),(r=this.handleVisibilityChanged)===null||r===void 0||r.call(this)},this.onLeavePiP=()=>{var i;this.isPiP=ni(this.element),(i=this.handleVisibilityChanged)===null||i===void 0||i.call(this)},this.element=e,this.isIntersecting=t??ls(e),this.isPiP=Le()&&ni(e),this.visibilityChangedAt=0}width(){return this.element.clientWidth}height(){return this.element.clientHeight}observe(){var e,t,i;this.isIntersecting=ls(this.element),this.isPiP=ni(this.element),this.element.handleResize=()=>{var s;(s=this.handleResize)===null||s===void 0||s.call(this)},this.element.handleVisibilityChanged=this.onVisibilityChanged,Br().observe(this.element),jr().observe(this.element),this.element.addEventListener("enterpictureinpicture",this.onEnterPiP),this.element.addEventListener("leavepictureinpicture",this.onLeavePiP),(e=window.documentPictureInPicture)===null||e===void 0||e.addEventListener("enter",this.onEnterPiP),(i=(t=window.documentPictureInPicture)===null||t===void 0?void 0:t.window)===null||i===void 0||i.addEventListener("pagehide",this.onLeavePiP)}stopObserving(){var e,t,i,s,r;(e=Br())===null||e===void 0||e.unobserve(this.element),(t=jr())===null||t===void 0||t.unobserve(this.element),this.element.removeEventListener("enterpictureinpicture",this.onEnterPiP),this.element.removeEventListener("leavepictureinpicture",this.onLeavePiP),(i=window.documentPictureInPicture)===null||i===void 0||i.removeEventListener("enter",this.onEnterPiP),(r=(s=window.documentPictureInPicture)===null||s===void 0?void 0:s.window)===null||r===void 0||r.removeEventListener("pagehide",this.onLeavePiP)}}function ni(n){var e,t;return document.pictureInPictureElement===n?!0:!((e=window.documentPictureInPicture)===null||e===void 0)&&e.window?ls(n,(t=window.documentPictureInPicture)===null||t===void 0?void 0:t.window):!1}function ls(n,e){const t=e||window;let i=n.offsetTop,s=n.offsetLeft;const r=n.offsetWidth,a=n.offsetHeight,{hidden:o}=n,{display:c}=getComputedStyle(n);for(;n.offsetParent;)n=n.offsetParent,i+=n.offsetTop,s+=n.offsetLeft;return it.pageYOffset&&s+r>t.pageXOffset&&!o&&c!=="none"}class at extends nt.EventEmitter{constructor(e,t,i,s){var r;super(),this.metadataMuted=!1,this.encryption=Ae.NONE,this.log=Z,this.handleMuted=()=>{this.emit(N.Muted)},this.handleUnmuted=()=>{this.emit(N.Unmuted)},this.log=dt((r=s==null?void 0:s.loggerName)!==null&&r!==void 0?r:Je.Publication),this.loggerContextCb=this.loggerContextCb,this.setMaxListeners(100),this.kind=e,this.trackSid=t,this.trackName=i,this.source=E.Source.Unknown}setTrack(e){this.track&&(this.track.off(N.Muted,this.handleMuted),this.track.off(N.Unmuted,this.handleUnmuted)),this.track=e,e&&(e.on(N.Muted,this.handleMuted),e.on(N.Unmuted,this.handleUnmuted))}get logContext(){var e;return Object.assign(Object.assign({},(e=this.loggerContextCb)===null||e===void 0?void 0:e.call(this)),se(this))}get isMuted(){return this.metadataMuted}get isEnabled(){return!0}get isSubscribed(){return this.track!==void 0}get isEncrypted(){return this.encryption!==Ae.NONE}get audioTrack(){if(this.track instanceof Se||this.track instanceof hi)return this.track}get videoTrack(){if(this.track instanceof we||this.track instanceof fi)return this.track}updateInfo(e){this.trackSid=e.sid,this.trackName=e.name,this.source=E.sourceFromProto(e.source),this.mimeType=e.mimeType,this.kind===E.Kind.Video&&e.width>0&&(this.dimensions={width:e.width,height:e.height},this.simulcasted=e.simulcast),this.encryption=e.encryption,this.trackInfo=e,this.log.debug("update publication info",Object.assign(Object.assign({},this.logContext),{info:e}))}}(function(n){(function(e){e.Desired="desired",e.Subscribed="subscribed",e.Unsubscribed="unsubscribed"})(n.SubscriptionStatus||(n.SubscriptionStatus={})),function(e){e.Allowed="allowed",e.NotAllowed="not_allowed"}(n.PermissionStatus||(n.PermissionStatus={}))})(at||(at={}));class $i extends at{get isUpstreamPaused(){var e;return(e=this.track)===null||e===void 0?void 0:e.isUpstreamPaused}constructor(e,t,i,s){super(e,t.sid,t.name,s),this.track=void 0,this.handleTrackEnded=()=>{this.emit(N.Ended)},this.updateInfo(t),this.setTrack(i)}setTrack(e){this.track&&this.track.off(N.Ended,this.handleTrackEnded),super.setTrack(e),e&&e.on(N.Ended,this.handleTrackEnded)}get isMuted(){return this.track?this.track.isMuted:super.isMuted}get audioTrack(){return super.audioTrack}get videoTrack(){return super.videoTrack}mute(){return g(this,void 0,void 0,function*(){var e;return(e=this.track)===null||e===void 0?void 0:e.mute()})}unmute(){return g(this,void 0,void 0,function*(){var e;return(e=this.track)===null||e===void 0?void 0:e.unmute()})}pauseUpstream(){return g(this,void 0,void 0,function*(){var e;yield(e=this.track)===null||e===void 0?void 0:e.pauseUpstream()})}resumeUpstream(){return g(this,void 0,void 0,function*(){var e;yield(e=this.track)===null||e===void 0?void 0:e.resumeUpstream()})}getTrackFeatures(){var e;if(this.track instanceof Se){const t=this.track.getSourceTrackSettings(),i=new Set;return t.autoGainControl&&i.add(tt.TF_AUTO_GAIN_CONTROL),t.echoCancellation&&i.add(tt.TF_ECHO_CANCELLATION),t.noiseSuppression&&i.add(tt.TF_NOISE_SUPPRESSION),t.channelCount&&t.channelCount>1&&i.add(tt.TF_STEREO),!((e=this.options)===null||e===void 0)&&e.dtx||i.add(tt.TF_NO_DTX),this.track.enhancedNoiseCancellation&&i.add(tt.TF_ENHANCED_NOISE_CANCELLATION),Array.from(i.values())}else return[]}}var yt;(function(n){n.Excellent="excellent",n.Good="good",n.Poor="poor",n.Lost="lost",n.Unknown="unknown"})(yt||(yt={}));function sf(n){switch(n){case ri.EXCELLENT:return yt.Excellent;case ri.GOOD:return yt.Good;case ri.POOR:return yt.Poor;case ri.LOST:return yt.Lost;default:return yt.Unknown}}class $o extends nt.EventEmitter{get logContext(){var e,t;return Object.assign({},(t=(e=this.loggerOptions)===null||e===void 0?void 0:e.loggerContextCb)===null||t===void 0?void 0:t.call(e))}get isEncrypted(){return this.trackPublications.size>0&&Array.from(this.trackPublications.values()).every(e=>e.isEncrypted)}get isAgent(){var e;return((e=this.permissions)===null||e===void 0?void 0:e.agent)||this.kind===zi.AGENT}get kind(){return this._kind}get attributes(){return Object.freeze(Object.assign({},this._attributes))}constructor(e,t,i,s,r,a){let o=arguments.length>6&&arguments[6]!==void 0?arguments[6]:zi.STANDARD;var c;super(),this.audioLevel=0,this.isSpeaking=!1,this._connectionQuality=yt.Unknown,this.log=Z,this.log=dt((c=a==null?void 0:a.loggerName)!==null&&c!==void 0?c:Je.Participant),this.loggerOptions=a,this.setMaxListeners(100),this.sid=e,this.identity=t,this.name=i,this.metadata=s,this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.trackPublications=new Map,this._kind=o,this._attributes=r??{}}getTrackPublications(){return Array.from(this.trackPublications.values())}getTrackPublication(e){for(const[,t]of this.trackPublications)if(t.source===e)return t}getTrackPublicationByName(e){for(const[,t]of this.trackPublications)if(t.trackName===e)return t}get connectionQuality(){return this._connectionQuality}get isCameraEnabled(){var e;const t=this.getTrackPublication(E.Source.Camera);return!(!((e=t==null?void 0:t.isMuted)!==null&&e!==void 0)||e)}get isMicrophoneEnabled(){var e;const t=this.getTrackPublication(E.Source.Microphone);return!(!((e=t==null?void 0:t.isMuted)!==null&&e!==void 0)||e)}get isScreenShareEnabled(){return!!this.getTrackPublication(E.Source.ScreenShare)}get isLocal(){return!1}get joinedAt(){return this.participantInfo?new Date(Number.parseInt(this.participantInfo.joinedAt.toString())*1e3):new Date}updateInfo(e){return this.participantInfo&&this.participantInfo.sid===e.sid&&this.participantInfo.version>e.version?!1:(this.identity=e.identity,this.sid=e.sid,this._setName(e.name),this._setMetadata(e.metadata),this._setAttributes(e.attributes),e.permission&&this.setPermissions(e.permission),this.participantInfo=e,this.log.trace("update participant info",Object.assign(Object.assign({},this.logContext),{info:e})),!0)}_setMetadata(e){const t=this.metadata!==e,i=this.metadata;this.metadata=e,t&&this.emit(L.ParticipantMetadataChanged,i)}_setName(e){const t=this.name!==e;this.name=e,t&&this.emit(L.ParticipantNameChanged,e)}_setAttributes(e){const t=dh(this.attributes,e);this._attributes=e,Object.keys(t).length>0&&this.emit(L.AttributesChanged,t)}setPermissions(e){var t,i,s,r,a,o;const c=this.permissions,l=e.canPublish!==((t=this.permissions)===null||t===void 0?void 0:t.canPublish)||e.canSubscribe!==((i=this.permissions)===null||i===void 0?void 0:i.canSubscribe)||e.canPublishData!==((s=this.permissions)===null||s===void 0?void 0:s.canPublishData)||e.hidden!==((r=this.permissions)===null||r===void 0?void 0:r.hidden)||e.recorder!==((a=this.permissions)===null||a===void 0?void 0:a.recorder)||e.canPublishSources.length!==this.permissions.canPublishSources.length||e.canPublishSources.some((d,f)=>{var p;return d!==((p=this.permissions)===null||p===void 0?void 0:p.canPublishSources[f])})||e.canSubscribeMetrics!==((o=this.permissions)===null||o===void 0?void 0:o.canSubscribeMetrics);return this.permissions=e,l&&this.emit(L.ParticipantPermissionsChanged,c),l}setIsSpeaking(e){e!==this.isSpeaking&&(this.isSpeaking=e,e&&(this.lastSpokeAt=new Date),this.emit(L.IsSpeakingChanged,e))}setConnectionQuality(e){const t=this._connectionQuality;this._connectionQuality=sf(e),t!==this._connectionQuality&&this.emit(L.ConnectionQualityChanged,this._connectionQuality)}setAudioContext(e){this.audioContext=e,this.audioTrackPublications.forEach(t=>(t.track instanceof hi||t.track instanceof Se)&&t.track.setAudioContext(e))}addTrackPublication(e){e.on(N.Muted,()=>{this.emit(L.TrackMuted,e)}),e.on(N.Unmuted,()=>{this.emit(L.TrackUnmuted,e)});const t=e;switch(t.track&&(t.track.sid=e.trackSid),this.trackPublications.set(e.trackSid,e),e.kind){case E.Kind.Audio:this.audioTrackPublications.set(e.trackSid,e);break;case E.Kind.Video:this.videoTrackPublications.set(e.trackSid,e);break}}}function rf(n){var e,t,i;if(!n.participantSid&&!n.participantIdentity)throw new Error("Invalid track permission, must provide at least one of participantIdentity and participantSid");return new Ya({participantIdentity:(e=n.participantIdentity)!==null&&e!==void 0?e:"",participantSid:(t=n.participantSid)!==null&&t!==void 0?t:"",allTracks:(i=n.allowAll)!==null&&i!==void 0?i:!1,trackSids:n.allowedTrackSids||[]})}class oa extends $o{constructor(e,t,i,s){super(e,t,void 0,void 0,void 0,{loggerName:s.loggerName,loggerContextCb:()=>this.engine.logContext}),this.pendingPublishing=new Set,this.pendingPublishPromises=new Map,this.participantTrackPermissions=[],this.allParticipantsAllowedToSubscribe=!0,this.encryptionType=Ae.NONE,this.enabledPublishVideoCodecs=[],this.rpcHandlers=new Map,this.pendingAcks=new Map,this.pendingResponses=new Map,this.handleReconnecting=()=>{this.reconnectFuture||(this.reconnectFuture=new Vo)},this.handleReconnected=()=>{var r,a;(a=(r=this.reconnectFuture)===null||r===void 0?void 0:r.resolve)===null||a===void 0||a.call(r),this.reconnectFuture=void 0,this.updateTrackSubscriptionPermissions()},this.handleDisconnected=()=>{var r,a;this.reconnectFuture&&(this.reconnectFuture.promise.catch(o=>this.log.warn(o.message,this.logContext)),(a=(r=this.reconnectFuture)===null||r===void 0?void 0:r.reject)===null||a===void 0||a.call(r,"Got disconnected during reconnection attempt"),this.reconnectFuture=void 0)},this.handleSignalRequestResponse=r=>{const{requestId:a,reason:o,message:c}=r,l=this.pendingSignalRequests.get(a);l&&(o!==io.OK&&l.reject(new Ar(c,o)),this.pendingSignalRequests.delete(a))},this.handleDataPacket=r=>{switch(r.value.case){case"rpcRequest":let a=r.value.value;this.handleIncomingRpcRequest(r.participantIdentity,a.id,a.method,a.payload,a.responseTimeoutMs,a.version);break;case"rpcResponse":let o=r.value.value,c=null,l=null;o.value.case==="payload"?c=o.value.value:o.value.case==="error"&&(l=fe.fromProto(o.value.value)),this.handleIncomingRpcResponse(o.requestId,c,l);break;case"rpcAck":let d=r.value.value;this.handleIncomingRpcAck(d.requestId);break}},this.updateTrackSubscriptionPermissions=()=>{this.log.debug("updating track subscription permissions",Object.assign(Object.assign({},this.logContext),{allParticipantsAllowed:this.allParticipantsAllowedToSubscribe,participantTrackPermissions:this.participantTrackPermissions})),this.engine.client.sendUpdateSubscriptionPermissions(this.allParticipantsAllowedToSubscribe,this.participantTrackPermissions.map(r=>rf(r)))},this.onTrackUnmuted=r=>{this.onTrackMuted(r,r.isUpstreamPaused)},this.onTrackMuted=(r,a)=>{if(a===void 0&&(a=!0),!r.sid){this.log.error("could not update mute status for unpublished track",Object.assign(Object.assign({},this.logContext),se(r)));return}this.engine.updateMuteStatus(r.sid,a)},this.onTrackUpstreamPaused=r=>{this.log.debug("upstream paused",Object.assign(Object.assign({},this.logContext),se(r))),this.onTrackMuted(r,!0)},this.onTrackUpstreamResumed=r=>{this.log.debug("upstream resumed",Object.assign(Object.assign({},this.logContext),se(r))),this.onTrackMuted(r,r.isMuted)},this.onTrackFeatureUpdate=r=>{const a=this.audioTrackPublications.get(r.sid);if(!a){this.log.warn("Could not update local audio track settings, missing publication for track ".concat(r.sid),this.logContext);return}this.engine.client.sendUpdateLocalAudioTrack(a.trackSid,a.getTrackFeatures())},this.handleSubscribedQualityUpdate=r=>g(this,void 0,void 0,function*(){var a,o,c,l,d,f;if(!(!((d=this.roomOptions)===null||d===void 0)&&d.dynacast))return;const p=this.videoTrackPublications.get(r.trackSid);if(!p){this.log.warn("received subscribed quality update for unknown track",Object.assign(Object.assign({},this.logContext),{trackSid:r.trackSid}));return}if(r.subscribedCodecs.length>0){if(!p.videoTrack)return;const _=yield p.videoTrack.setPublishingCodecs(r.subscribedCodecs);try{for(var m=!0,y=Lt(_),C;C=yield y.next(),a=C.done,!a;m=!0){l=C.value,m=!1;const b=l;nh(b)&&(this.log.debug("publish ".concat(b," for ").concat(p.videoTrack.sid),Object.assign(Object.assign({},this.logContext),se(p))),yield this.publishAdditionalCodecForTrack(p.videoTrack,b,p.options))}}catch(b){o={error:b}}finally{try{!m&&!a&&(c=y.return)&&(yield c.call(y))}finally{if(o)throw o.error}}}else r.subscribedQualities.length>0&&(yield(f=p.videoTrack)===null||f===void 0?void 0:f.setPublishingLayers(r.subscribedQualities))}),this.handleLocalTrackUnpublished=r=>{const a=this.trackPublications.get(r.trackSid);if(!a){this.log.warn("received unpublished event for unknown track",Object.assign(Object.assign({},this.logContext),{trackSid:r.trackSid}));return}this.unpublishTrack(a.track)},this.handleTrackEnded=r=>g(this,void 0,void 0,function*(){if(r.source===E.Source.ScreenShare||r.source===E.Source.ScreenShareAudio)this.log.debug("unpublishing local track due to TrackEnded",Object.assign(Object.assign({},this.logContext),se(r))),this.unpublishTrack(r);else if(r.isUserProvided)yield r.mute();else if(r instanceof Se||r instanceof we)try{if(Le())try{const a=yield navigator==null?void 0:navigator.permissions.query({name:r.source===E.Source.Camera?"camera":"microphone"});if(a&&a.state==="denied")throw this.log.warn("user has revoked access to ".concat(r.source),Object.assign(Object.assign({},this.logContext),se(r))),a.onchange=()=>{a.state!=="denied"&&(r.isMuted||r.restartTrack(),a.onchange=null)},new Error("GetUserMedia Permission denied")}catch{}r.isMuted||(this.log.debug("track ended, attempting to use a different device",Object.assign(Object.assign({},this.logContext),se(r))),r instanceof Se?yield r.restartTrack({deviceId:"default"}):yield r.restartTrack())}catch{this.log.warn("could not restart track, muting instead",Object.assign(Object.assign({},this.logContext),se(r))),yield r.mute()}}),this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.trackPublications=new Map,this.engine=i,this.roomOptions=s,this.setupEngine(i),this.activeDeviceMap=new Map,this.pendingSignalRequests=new Map}get lastCameraError(){return this.cameraError}get lastMicrophoneError(){return this.microphoneError}get isE2EEEnabled(){return this.encryptionType!==Ae.NONE}getTrackPublication(e){const t=super.getTrackPublication(e);if(t)return t}getTrackPublicationByName(e){const t=super.getTrackPublicationByName(e);if(t)return t}setupEngine(e){this.engine=e,this.engine.on(j.RemoteMute,(t,i)=>{const s=this.trackPublications.get(t);!s||!s.track||(i?s.mute():s.unmute())}),this.engine.on(j.Connected,this.handleReconnected).on(j.SignalRestarted,this.handleReconnected).on(j.SignalResumed,this.handleReconnected).on(j.Restarting,this.handleReconnecting).on(j.Resuming,this.handleReconnecting).on(j.LocalTrackUnpublished,this.handleLocalTrackUnpublished).on(j.SubscribedQualityUpdate,this.handleSubscribedQualityUpdate).on(j.Disconnected,this.handleDisconnected).on(j.SignalRequestResponse,this.handleSignalRequestResponse).on(j.DataPacketReceived,this.handleDataPacket)}setMetadata(e){return g(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({metadata:e})})}setName(e){return g(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({name:e})})}setAttributes(e){return g(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({attributes:e})})}requestMetadataUpdate(e){return g(this,arguments,void 0,function(t){var i=this;let{metadata:s,name:r,attributes:a}=t;return function*(){return new Promise((o,c)=>g(i,void 0,void 0,function*(){var l,d;try{let f=!1;const p=yield this.engine.client.sendUpdateLocalMetadata((l=s??this.metadata)!==null&&l!==void 0?l:"",(d=r??this.name)!==null&&d!==void 0?d:"",a),m=performance.now();for(this.pendingSignalRequests.set(p,{resolve:o,reject:y=>{c(y),f=!0},values:{name:r,metadata:s,attributes:a}});performance.now()-m<5e3&&!f;){if((!r||this.name===r)&&(!s||this.metadata===s)&&(!a||Object.entries(a).every(y=>{let[C,_]=y;return this.attributes[C]===_||_===""&&!this.attributes[C]}))){this.pendingSignalRequests.delete(p),o();return}yield He(50)}c(new Ar("Request to update local metadata timed out","TimeoutError"))}catch(f){f instanceof Error&&c(f)}}))}()})}setCameraEnabled(e,t,i){return this.setTrackEnabled(E.Source.Camera,e,t,i)}setMicrophoneEnabled(e,t,i){return this.setTrackEnabled(E.Source.Microphone,e,t,i)}setScreenShareEnabled(e,t,i){return this.setTrackEnabled(E.Source.ScreenShare,e,t,i)}setPermissions(e){const t=this.permissions,i=super.setPermissions(e);return i&&t&&this.emit(L.ParticipantPermissionsChanged,t),i}setE2EEEnabled(e){return g(this,void 0,void 0,function*(){this.encryptionType=e?Ae.GCM:Ae.NONE,yield this.republishAllTracks(void 0,!1)})}setTrackEnabled(e,t,i,s){return g(this,void 0,void 0,function*(){var r,a;this.log.debug("setTrackEnabled",Object.assign(Object.assign({},this.logContext),{source:e,enabled:t})),this.republishPromise&&(yield this.republishPromise);let o=this.getTrackPublication(e);if(t)if(o)yield o.unmute();else{let c;if(this.pendingPublishing.has(e)){const l=yield this.waitForPendingPublicationOfSource(e);return l||this.log.info("waiting for pending publication promise timed out",Object.assign(Object.assign({},this.logContext),{source:e})),yield l==null?void 0:l.unmute(),l}this.pendingPublishing.add(e);try{switch(e){case E.Source.Camera:c=yield this.createTracks({video:(r=i)!==null&&r!==void 0?r:!0});break;case E.Source.Microphone:c=yield this.createTracks({audio:(a=i)!==null&&a!==void 0?a:!0});break;case E.Source.ScreenShare:c=yield this.createScreenTracks(Object.assign({},i));break;default:throw new it(e)}const l=[];for(const f of c)this.log.info("publishing track",Object.assign(Object.assign({},this.logContext),se(f))),l.push(this.publishTrack(f,s));[o]=yield Promise.all(l)}catch(l){throw c==null||c.forEach(d=>{d.stop()}),l instanceof Error&&!(l instanceof it)&&this.emit(L.MediaDevicesError,l),l}finally{this.pendingPublishing.delete(e)}}else if(!(o!=null&&o.track)&&this.pendingPublishing.has(e)&&(o=yield this.waitForPendingPublicationOfSource(e),o||this.log.info("waiting for pending publication promise timed out",Object.assign(Object.assign({},this.logContext),{source:e}))),o&&o.track)if(e===E.Source.ScreenShare){o=yield this.unpublishTrack(o.track);const c=this.getTrackPublication(E.Source.ScreenShareAudio);c&&c.track&&this.unpublishTrack(c.track)}else yield o.mute();return o})}enableCameraAndMicrophone(){return g(this,void 0,void 0,function*(){if(!(this.pendingPublishing.has(E.Source.Camera)||this.pendingPublishing.has(E.Source.Microphone))){this.pendingPublishing.add(E.Source.Camera),this.pendingPublishing.add(E.Source.Microphone);try{const e=yield this.createTracks({audio:!0,video:!0});yield Promise.all(e.map(t=>this.publishTrack(t)))}finally{this.pendingPublishing.delete(E.Source.Camera),this.pendingPublishing.delete(E.Source.Microphone)}}})}createTracks(e){return g(this,void 0,void 0,function*(){var t,i;e??(e={});const{audioProcessor:s,videoProcessor:r,optionsWithoutProcessor:a}=Cs(e),o=Lo(a,(t=this.roomOptions)===null||t===void 0?void 0:t.audioCaptureDefaults,(i=this.roomOptions)===null||i===void 0?void 0:i.videoCaptureDefaults),c=nn(o);let l;try{l=yield navigator.mediaDevices.getUserMedia(c)}catch(d){throw d instanceof Error&&(c.audio&&(this.microphoneError=d),c.video&&(this.cameraError=d)),d}return c.audio&&(this.microphoneError=void 0,this.emit(L.AudioStreamAcquired)),c.video&&(this.cameraError=void 0),Promise.all(l.getTracks().map(d=>g(this,void 0,void 0,function*(){const f=d.kind==="audio";f?o.audio:o.video;let p;const m=f?c.audio:c.video;typeof m!="boolean"&&(p=m);const y=Wo(d,p,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});return y.kind===E.Kind.Video?y.source=E.Source.Camera:y.kind===E.Kind.Audio&&(y.source=E.Source.Microphone,y.setAudioContext(this.audioContext)),y.mediaStream=l,y instanceof Se&&s?yield y.setProcessor(s):y instanceof we&&r&&(yield y.setProcessor(r)),y})))})}createScreenTracks(e){return g(this,void 0,void 0,function*(){if(e===void 0&&(e={}),navigator.mediaDevices.getDisplayMedia===void 0)throw new ys("getDisplayMedia not supported");e.resolution===void 0&&!gh()&&(e.resolution=Ts.h1080fps30.resolution);const t=oh(e),i=yield navigator.mediaDevices.getDisplayMedia(t),s=i.getVideoTracks();if(s.length===0)throw new it("no video track found");const r=new we(s[0],void 0,!1,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});r.source=E.Source.ScreenShare,e.contentHint&&(r.mediaStreamTrack.contentHint=e.contentHint);const a=[r];if(i.getAudioTracks().length>0){this.emit(L.AudioStreamAcquired);const o=new Se(i.getAudioTracks()[0],void 0,!1,this.audioContext,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});o.source=E.Source.ScreenShareAudio,a.push(o)}return a})}publishTrack(e,t){return g(this,void 0,void 0,function*(){return this.publishOrRepublishTrack(e,t)})}publishOrRepublishTrack(e,t){return g(this,arguments,void 0,function(i,s){var r=this;let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return function*(){var o,c,l,d;i instanceof Se&&i.setAudioContext(r.audioContext),yield(o=r.reconnectFuture)===null||o===void 0?void 0:o.promise,r.republishPromise&&!a&&(yield r.republishPromise),i instanceof qt&&r.pendingPublishPromises.has(i)&&(yield r.pendingPublishPromises.get(i));let f;if(i instanceof MediaStreamTrack)f=i.getConstraints();else{f=i.constraints;let b;switch(i.source){case E.Source.Microphone:b="audioinput";break;case E.Source.Camera:b="videoinput"}b&&r.activeDeviceMap.has(b)&&(f=Object.assign(Object.assign({},f),{deviceId:r.activeDeviceMap.get(b)}))}if(i instanceof MediaStreamTrack)switch(i.kind){case"audio":i=new Se(i,f,!0,r.audioContext,{loggerName:r.roomOptions.loggerName,loggerContextCb:()=>r.logContext});break;case"video":i=new we(i,f,!0,{loggerName:r.roomOptions.loggerName,loggerContextCb:()=>r.logContext});break;default:throw new it("unsupported MediaStreamTrack kind ".concat(i.kind))}else i.updateLoggerOptions({loggerName:r.roomOptions.loggerName,loggerContextCb:()=>r.logContext});let p;if(r.trackPublications.forEach(b=>{b.track&&b.track===i&&(p=b)}),p)return r.log.warn("track has already been published, skipping",Object.assign(Object.assign({},r.logContext),se(p))),p;const m="channelCount"in i.mediaStreamTrack.getSettings()&&i.mediaStreamTrack.getSettings().channelCount===2||i.mediaStreamTrack.getConstraints().channelCount===2,y=(c=s==null?void 0:s.forceStereo)!==null&&c!==void 0?c:m;y&&(s||(s={}),s.dtx===void 0&&r.log.info("Opus DTX will be disabled for stereo tracks by default. Enable them explicitly to make it work.",Object.assign(Object.assign({},r.logContext),se(i))),s.red===void 0&&r.log.info("Opus RED will be disabled for stereo tracks by default. Enable them explicitly to make it work."),(l=s.dtx)!==null&&l!==void 0||(s.dtx=!1),(d=s.red)!==null&&d!==void 0||(s.red=!1));const C=Object.assign(Object.assign({},r.roomOptions.publishDefaults),s);!vh()&&r.roomOptions.e2ee&&(r.log.info("End-to-end encryption is set up, simulcast publishing will be disabled on Safari versions and iOS browsers running iOS < v17.2",Object.assign({},r.logContext)),C.simulcast=!1),C.source&&(i.source=C.source);const _=r.publish(i,C,y);r.pendingPublishPromises.set(i,_);try{return yield _}catch(b){throw b}finally{r.pendingPublishPromises.delete(i)}}()})}publish(e,t,i){return g(this,void 0,void 0,function*(){var s,r,a,o,c,l,d,f,p,m;Array.from(this.trackPublications.values()).find(k=>e instanceof qt&&k.source===e.source)&&e.source!==E.Source.Unknown&&this.log.info("publishing a second track with the same source: ".concat(e.source),Object.assign(Object.assign({},this.logContext),se(e))),t.stopMicTrackOnMute&&e instanceof Se&&(e.stopOnMute=!0),e.source===E.Source.ScreenShare&&Wt()&&(t.simulcast=!1),t.videoCodec==="av1"&&!fh()&&(t.videoCodec=void 0),t.videoCodec==="vp9"&&!ph()&&(t.videoCodec=void 0),t.videoCodec===void 0&&(t.videoCodec=rs),this.enabledPublishVideoCodecs.length>0&&(this.enabledPublishVideoCodecs.some(k=>t.videoCodec===qi(k.mime))||(t.videoCodec=qi(this.enabledPublishVideoCodecs[0].mime)));const C=t.videoCodec;e.on(N.Muted,this.onTrackMuted),e.on(N.Unmuted,this.onTrackUnmuted),e.on(N.Ended,this.handleTrackEnded),e.on(N.UpstreamPaused,this.onTrackUpstreamPaused),e.on(N.UpstreamResumed,this.onTrackUpstreamResumed),e.on(N.AudioTrackFeatureUpdate,this.onTrackFeatureUpdate);const _=new qn({cid:e.mediaStreamTrack.id,name:t.name,type:E.kindToProto(e.kind),muted:e.isMuted,source:E.sourceToProto(e.source),disableDtx:!(!((s=t.dtx)!==null&&s!==void 0)||s),encryption:this.encryptionType,stereo:i,disableRed:this.isE2EEEnabled||!(!((r=t.red)!==null&&r!==void 0)||r),stream:t==null?void 0:t.stream});let b;if(e.kind===E.Kind.Video){let k={width:0,height:0};try{k=yield e.waitForDimensions()}catch{const S=(o=(a=this.roomOptions.videoCaptureDefaults)===null||a===void 0?void 0:a.resolution)!==null&&o!==void 0?o:gi.h720.resolution;k={width:S.width,height:S.height},this.log.error("could not determine track dimensions, using defaults",Object.assign(Object.assign(Object.assign({},this.logContext),se(e)),{dims:k}))}_.width=k.width,_.height=k.height,e instanceof we&&(di(C)&&(e.source===E.Source.ScreenShare&&(t.scalabilityMode="L1T3","contentHint"in e.mediaStreamTrack&&(e.mediaStreamTrack.contentHint="motion",this.log.info("forcing contentHint to motion for screenshare with SVC codecs",Object.assign(Object.assign({},this.logContext),se(e))))),t.scalabilityMode=(c=t.scalabilityMode)!==null&&c!==void 0?c:"L3T3_KEY"),_.simulcastCodecs=[new Vn({codec:C,cid:e.mediaStreamTrack.id})],t.backupCodec===!0&&(t.backupCodec={codec:rs}),t.backupCodec&&C!==t.backupCodec.codec&&_.encryption===Ae.NONE&&(this.roomOptions.dynacast||(this.roomOptions.dynacast=!0),_.simulcastCodecs.push(new Vn({codec:t.backupCodec.codec,cid:""})))),b=os(e.source===E.Source.ScreenShare,_.width,_.height,t),_.layers=ta(_.width,_.height,b,di(t.videoCodec))}else e.kind===E.Kind.Audio&&(b=[{maxBitrate:(l=t.audioPreset)===null||l===void 0?void 0:l.maxBitrate,priority:(f=(d=t.audioPreset)===null||d===void 0?void 0:d.priority)!==null&&f!==void 0?f:"high",networkPriority:(m=(p=t.audioPreset)===null||p===void 0?void 0:p.priority)!==null&&m!==void 0?m:"high"}]);if(!this.engine||this.engine.isClosed)throw new ye("cannot publish track when not connected");const G=()=>g(this,void 0,void 0,function*(){var k,w,S;if(!this.engine.pcManager)throw new ye("pcManager is not ready");if(e.sender=yield this.engine.createSender(e,t,b),e instanceof we&&((k=t.degradationPreference)!==null&&k!==void 0||(t.degradationPreference=$h(e)),e.setDegradationPreference(t.degradationPreference)),b)if(Wt()&&e.kind===E.Kind.Audio){let I;for(const M of this.engine.pcManager.publisher.getTransceivers())if(M.sender===e.sender){I=M;break}I&&this.engine.pcManager.publisher.setTrackCodecBitrate({transceiver:I,codec:"opus",maxbr:!((w=b[0])===null||w===void 0)&&w.maxBitrate?b[0].maxBitrate/1e3:0})}else e.codec&&di(e.codec)&&(!((S=b[0])===null||S===void 0)&&S.maxBitrate)&&this.engine.pcManager.publisher.setTrackCodecBitrate({cid:_.cid,codec:e.codec,maxbr:b[0].maxBitrate/1e3});yield this.engine.negotiate()});let W;if(this.enabledPublishVideoCodecs.length>0)W=(yield Promise.all([this.engine.addTrack(_),G()]))[0];else{W=yield this.engine.addTrack(_);let k;if(W.codecs.forEach(w=>{k===void 0&&(k=w.mimeType)}),k&&e.kind===E.Kind.Video){const w=qi(k);w!==C&&(this.log.debug("falling back to server selected codec",Object.assign(Object.assign(Object.assign({},this.logContext),se(e)),{codec:w})),t.videoCodec=w,b=os(e.source===E.Source.ScreenShare,_.width,_.height,t))}yield G()}const P=new $i(e.kind,W,e,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});return P.options=t,e.sid=W.sid,this.log.debug("publishing ".concat(e.kind," with encodings"),Object.assign(Object.assign({},this.logContext),{encodings:b,trackInfo:W})),e instanceof we?e.startMonitor(this.engine.client):e instanceof Se&&e.startMonitor(),this.addTrackPublication(P),this.emit(L.LocalTrackPublished,P),P})}get isLocal(){return!0}publishAdditionalCodecForTrack(e,t,i){return g(this,void 0,void 0,function*(){var s;if(this.encryptionType!==Ae.NONE)return;let r;if(this.trackPublications.forEach(m=>{m.track&&m.track===e&&(r=m)}),!r)throw new it("track is not published");if(!(e instanceof we))throw new it("track is not a video track");const a=Object.assign(Object.assign({},(s=this.roomOptions)===null||s===void 0?void 0:s.publishDefaults),i),o=zh(e,t,a);if(!o){this.log.info("backup codec has been disabled, ignoring request to add additional codec for track",Object.assign(Object.assign({},this.logContext),se(e)));return}const c=e.addSimulcastTrack(t,o);if(!c)return;const l=new qn({cid:c.mediaStreamTrack.id,type:E.kindToProto(e.kind),muted:e.isMuted,source:E.sourceToProto(e.source),sid:e.sid,simulcastCodecs:[{codec:a.videoCodec,cid:c.mediaStreamTrack.id}]});if(l.layers=ta(l.width,l.height,o),!this.engine||this.engine.isClosed)throw new ye("cannot publish track when not connected");const d=()=>g(this,void 0,void 0,function*(){yield this.engine.createSimulcastSender(e,c,a,o),yield this.engine.negotiate()}),p=(yield Promise.all([this.engine.addTrack(l),d()]))[0];this.log.debug("published ".concat(t," for track ").concat(e.sid),Object.assign(Object.assign({},this.logContext),{encodings:o,trackInfo:p}))})}unpublishTrack(e,t){return g(this,void 0,void 0,function*(){var i,s;if(e instanceof qt){const l=this.pendingPublishPromises.get(e);l&&(this.log.info("awaiting publish promise before attempting to unpublish",Object.assign(Object.assign({},this.logContext),se(e))),yield l)}const r=this.getPublicationForTrack(e),a=r?se(r):void 0;if(this.log.debug("unpublishing track",Object.assign(Object.assign({},this.logContext),a)),!r||!r.track){this.log.warn("track was not unpublished because no publication was found",Object.assign(Object.assign({},this.logContext),a));return}e=r.track,e.off(N.Muted,this.onTrackMuted),e.off(N.Unmuted,this.onTrackUnmuted),e.off(N.Ended,this.handleTrackEnded),e.off(N.UpstreamPaused,this.onTrackUpstreamPaused),e.off(N.UpstreamResumed,this.onTrackUpstreamResumed),e.off(N.AudioTrackFeatureUpdate,this.onTrackFeatureUpdate),t===void 0&&(t=(s=(i=this.roomOptions)===null||i===void 0?void 0:i.stopLocalTrackOnUnpublish)!==null&&s!==void 0?s:!0),t?e.stop():e.stopMonitor();let o=!1;const c=e.sender;if(e.sender=void 0,this.engine.pcManager&&this.engine.pcManager.currentStatethis.unpublishTrack(i)))).filter(i=>i instanceof $i)})}republishAllTracks(e){return g(this,arguments,void 0,function(t){var i=this;let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){i.republishPromise&&(yield i.republishPromise),i.republishPromise=new Promise((r,a)=>g(i,void 0,void 0,function*(){try{const o=[];this.trackPublications.forEach(c=>{c.track&&(t&&(c.options=Object.assign(Object.assign({},c.options),t)),o.push(c))}),yield Promise.all(o.map(c=>g(this,void 0,void 0,function*(){const l=c.track;yield this.unpublishTrack(l,!1),s&&!l.isMuted&&l.source!==E.Source.ScreenShare&&l.source!==E.Source.ScreenShareAudio&&(l instanceof Se||l instanceof we)&&!l.isUserProvided&&(this.log.debug("restarting existing track",Object.assign(Object.assign({},this.logContext),{track:c.trackSid})),yield l.restartTrack()),yield this.publishOrRepublishTrack(l,c.options,!0)}))),r()}catch(o){a(o)}finally{this.republishPromise=void 0}})),yield i.republishPromise}()})}publishData(e){return g(this,arguments,void 0,function(t){var i=this;let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return function*(){const r=s.reliable?ae.RELIABLE:ae.LOSSY,a=s.destinationIdentities,o=s.topic,c=new vt({kind:r,value:{case:"user",value:new Na({participantIdentity:i.identity,payload:t,destinationIdentities:a,topic:o})}});yield i.engine.sendDataPacket(c,r)}()})}publishDtmf(e,t){return g(this,void 0,void 0,function*(){const i=new vt({kind:ae.RELIABLE,value:{case:"sipDtmf",value:new La({code:e,digit:t})}});yield this.engine.sendDataPacket(i,ae.RELIABLE)})}sendChatMessage(e){return g(this,void 0,void 0,function*(){const t={id:crypto.randomUUID(),message:e,timestamp:Date.now()},i=new vt({value:{case:"chatMessage",value:new jn(Object.assign(Object.assign({},t),{timestamp:de.parse(t.timestamp)}))}});return yield this.engine.sendDataPacket(i,ae.RELIABLE),this.emit(L.ChatMessage,t),t})}editChatMessage(e,t){return g(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},t),{message:e,editTimestamp:Date.now()}),s=new vt({value:{case:"chatMessage",value:new jn(Object.assign(Object.assign({},i),{timestamp:de.parse(i.timestamp),editTimestamp:de.parse(i.editTimestamp)}))}});return yield this.engine.sendDataPacket(s,ae.RELIABLE),this.emit(L.ChatMessage,i),i})}performRpc(e){return g(this,arguments,void 0,function(t){var i=this;let{destinationIdentity:s,method:r,payload:a,responseTimeout:o=1e4}=t;return function*(){return new Promise((l,d)=>g(i,void 0,void 0,function*(){var f,p,m,y;if(cs(a)>ra){d(fe.builtIn("REQUEST_PAYLOAD_TOO_LARGE"));return}if(!((p=(f=this.engine.latestJoinResponse)===null||f===void 0?void 0:f.serverInfo)===null||p===void 0)&&p.version&&zt((y=(m=this.engine.latestJoinResponse)===null||m===void 0?void 0:m.serverInfo)===null||y===void 0?void 0:y.version,"1.8.0")<0){d(fe.builtIn("UNSUPPORTED_SERVER"));return}const C=crypto.randomUUID();yield this.publishRpcRequest(s,C,r,a,o-2e3);const _=setTimeout(()=>{this.pendingAcks.delete(C),d(fe.builtIn("CONNECTION_TIMEOUT")),this.pendingResponses.delete(C),clearTimeout(b)},2e3);this.pendingAcks.set(C,{resolve:()=>{clearTimeout(_)},participantIdentity:s});const b=setTimeout(()=>{this.pendingResponses.delete(C),d(fe.builtIn("RESPONSE_TIMEOUT"))},o);this.pendingResponses.set(C,{resolve:(G,W)=>{clearTimeout(b),this.pendingAcks.has(C)&&(console.warn("RPC response received before ack",C),this.pendingAcks.delete(C),clearTimeout(_)),W?d(W):l(G??"")},participantIdentity:s})}))}()})}registerRpcMethod(e,t){this.rpcHandlers.set(e,t)}unregisterRpcMethod(e){this.rpcHandlers.delete(e)}setTrackSubscriptionPermissions(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];this.participantTrackPermissions=t,this.allParticipantsAllowedToSubscribe=e,this.engine.client.isDisconnected||this.updateTrackSubscriptionPermissions()}handleIncomingRpcAck(e){const t=this.pendingAcks.get(e);t?(t.resolve(),this.pendingAcks.delete(e)):console.error("Ack received for unexpected RPC request",e)}handleIncomingRpcResponse(e,t,i){const s=this.pendingResponses.get(e);s?(s.resolve(t,i),this.pendingResponses.delete(e)):console.error("Response received for unexpected RPC request",e)}handleIncomingRpcRequest(e,t,i,s,r,a){return g(this,void 0,void 0,function*(){if(yield this.publishRpcAck(e,t),a!==1){yield this.publishRpcResponse(e,t,null,fe.builtIn("UNSUPPORTED_VERSION"));return}const o=this.rpcHandlers.get(i);if(!o){yield this.publishRpcResponse(e,t,null,fe.builtIn("UNSUPPORTED_METHOD"));return}let c=null,l=null;try{const d=yield o({requestId:t,callerIdentity:e,payload:s,responseTimeout:r});cs(d)>ra?(c=fe.builtIn("RESPONSE_PAYLOAD_TOO_LARGE"),console.warn("RPC Response payload too large for ".concat(i))):l=d}catch(d){d instanceof fe?c=d:(console.warn("Uncaught error returned by RPC handler for ".concat(i,". Returning APPLICATION_ERROR instead."),d),c=fe.builtIn("APPLICATION_ERROR"))}yield this.publishRpcResponse(e,t,l,c)})}publishRpcRequest(e,t,i,s,r){return g(this,void 0,void 0,function*(){const a=new vt({destinationIdentities:[e],kind:ae.RELIABLE,value:{case:"rpcRequest",value:new Ua({id:t,method:i,payload:s,responseTimeoutMs:r,version:1})}});yield this.engine.sendDataPacket(a,ae.RELIABLE)})}publishRpcResponse(e,t,i,s){return g(this,void 0,void 0,function*(){const r=new vt({destinationIdentities:[e],kind:ae.RELIABLE,value:{case:"rpcResponse",value:new ja({requestId:t,value:s?{case:"error",value:s.toProto()}:{case:"payload",value:i??""}})}});yield this.engine.sendDataPacket(r,ae.RELIABLE)})}publishRpcAck(e,t){return g(this,void 0,void 0,function*(){const i=new vt({destinationIdentities:[e],kind:ae.RELIABLE,value:{case:"rpcAck",value:new Fa({requestId:t})}});yield this.engine.sendDataPacket(i,ae.RELIABLE)})}handleParticipantDisconnected(e){for(const[t,{participantIdentity:i}]of this.pendingAcks)i===e&&this.pendingAcks.delete(t);for(const[t,{participantIdentity:i,resolve:s}]of this.pendingResponses)i===e&&(s(null,fe.builtIn("RECIPIENT_DISCONNECTED")),this.pendingResponses.delete(t))}setEnabledPublishCodecs(e){this.enabledPublishVideoCodecs=e.filter(t=>t.mime.split("/")[0].toLowerCase()==="video")}updateInfo(e){return e.sid!==this.sid||!super.updateInfo(e)?!1:(e.tracks.forEach(t=>{var i,s;const r=this.trackPublications.get(t.sid);if(r){const a=r.isMuted||((s=(i=r.track)===null||i===void 0?void 0:i.isUpstreamPaused)!==null&&s!==void 0?s:!1);a!==t.muted&&(this.log.debug("updating server mute state after reconcile",Object.assign(Object.assign(Object.assign({},this.logContext),se(r)),{mutedOnServer:a})),this.engine.client.sendMuteTrack(t.sid,a))}}),!0)}getPublicationForTrack(e){let t;return this.trackPublications.forEach(i=>{const s=i.track;s&&(e instanceof MediaStreamTrack?(s instanceof Se||s instanceof we)&&s.mediaStreamTrack===e&&(t=i):e===s&&(t=i))}),t}waitForPendingPublicationOfSource(e){return g(this,void 0,void 0,function*(){const i=Date.now();for(;Date.now(){let[a]=r;return a.source===e});if(s)return s[1];yield He(20)}})}}class Qo extends at{constructor(e,t,i,s){super(e,t.sid,t.name,s),this.track=void 0,this.allowed=!0,this.disabled=!1,this.currentVideoQuality=je.HIGH,this.handleEnded=r=>{this.setTrack(void 0),this.emit(N.Ended,r)},this.handleVisibilityChange=r=>{this.log.debug("adaptivestream video visibility ".concat(this.trackSid,", visible=").concat(r),this.logContext),this.disabled=!r,this.emitTrackUpdate()},this.handleVideoDimensionsChange=r=>{this.log.debug("adaptivestream video dimensions ".concat(r.width,"x").concat(r.height),this.logContext),this.videoDimensions=r,this.emitTrackUpdate()},this.subscribed=i,this.updateInfo(t)}setSubscribed(e){const t=this.subscriptionStatus,i=this.permissionStatus;this.subscribed=e,e&&(this.allowed=!0);const s=new Zi({trackSids:[this.trackSid],subscribe:this.subscribed,participantTracks:[new Va({participantSid:"",trackSids:[this.trackSid]})]});this.emit(N.UpdateSubscription,s),this.emitSubscriptionUpdateIfChanged(t),this.emitPermissionUpdateIfChanged(i)}get subscriptionStatus(){return this.subscribed===!1?at.SubscriptionStatus.Unsubscribed:super.isSubscribed?at.SubscriptionStatus.Subscribed:at.SubscriptionStatus.Desired}get permissionStatus(){return this.allowed?at.PermissionStatus.Allowed:at.PermissionStatus.NotAllowed}get isSubscribed(){return this.subscribed===!1?!1:super.isSubscribed}get isDesired(){return this.subscribed!==!1}get isEnabled(){return!this.disabled}setEnabled(e){!this.isManualOperationAllowed()||this.disabled===!e||(this.disabled=!e,this.emitTrackUpdate())}setVideoQuality(e){!this.isManualOperationAllowed()||this.currentVideoQuality===e||(this.currentVideoQuality=e,this.videoDimensions=void 0,this.emitTrackUpdate())}setVideoDimensions(e){var t,i;this.isManualOperationAllowed()&&(((t=this.videoDimensions)===null||t===void 0?void 0:t.width)===e.width&&((i=this.videoDimensions)===null||i===void 0?void 0:i.height)===e.height||(this.track instanceof fi&&(this.videoDimensions=e),this.currentVideoQuality=void 0,this.emitTrackUpdate()))}setVideoFPS(e){this.isManualOperationAllowed()&&this.track instanceof fi&&this.fps!==e&&(this.fps=e,this.emitTrackUpdate())}get videoQuality(){return this.currentVideoQuality}setTrack(e){const t=this.subscriptionStatus,i=this.permissionStatus,s=this.track;s!==e&&(s&&(s.off(N.VideoDimensionsChanged,this.handleVideoDimensionsChange),s.off(N.VisibilityChanged,this.handleVisibilityChange),s.off(N.Ended,this.handleEnded),s.detach(),s.stopMonitor(),this.emit(N.Unsubscribed,s)),super.setTrack(e),e&&(e.sid=this.trackSid,e.on(N.VideoDimensionsChanged,this.handleVideoDimensionsChange),e.on(N.VisibilityChanged,this.handleVisibilityChange),e.on(N.Ended,this.handleEnded),this.emit(N.Subscribed,e)),this.emitPermissionUpdateIfChanged(i),this.emitSubscriptionUpdateIfChanged(t))}setAllowed(e){const t=this.subscriptionStatus,i=this.permissionStatus;this.allowed=e,this.emitPermissionUpdateIfChanged(i),this.emitSubscriptionUpdateIfChanged(t)}setSubscriptionError(e){this.emit(N.SubscriptionFailed,e)}updateInfo(e){super.updateInfo(e);const t=this.metadataMuted;this.metadataMuted=e.muted,this.track?this.track.setMuted(e.muted):t!==e.muted&&this.emit(e.muted?N.Muted:N.Unmuted)}emitSubscriptionUpdateIfChanged(e){const t=this.subscriptionStatus;e!==t&&this.emit(N.SubscriptionStatusChanged,t,e)}emitPermissionUpdateIfChanged(e){this.permissionStatus!==e&&this.emit(N.SubscriptionPermissionChanged,this.permissionStatus,e)}isManualOperationAllowed(){return this.kind===E.Kind.Video&&this.isAdaptiveStream?(this.log.warn("adaptive stream is enabled, cannot change video track settings",this.logContext),!1):this.isDesired?!0:(this.log.warn("cannot update track settings when not subscribed",this.logContext),!1)}get isAdaptiveStream(){return this.track instanceof fi&&this.track.isAdaptiveStream}emitTrackUpdate(){const e=new za({trackSids:[this.trackSid],disabled:this.disabled,fps:this.fps});this.videoDimensions?(e.width=Math.ceil(this.videoDimensions.width),e.height=Math.ceil(this.videoDimensions.height)):this.currentVideoQuality!==void 0?e.quality=this.currentVideoQuality:e.quality=je.HIGH,this.emit(N.UpdateSettings,e)}}class Qi extends $o{static fromParticipantInfo(e,t,i){return new Qi(e,t.sid,t.identity,t.name,t.metadata,t.attributes,i,t.kind)}get logContext(){return Object.assign(Object.assign({},super.logContext),{rpID:this.sid,remoteParticipant:this.identity})}constructor(e,t,i,s,r,a,o){let c=arguments.length>7&&arguments[7]!==void 0?arguments[7]:zi.STANDARD;super(t,i||"",s,r,a,o,c),this.signalClient=e,this.trackPublications=new Map,this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.volumeMap=new Map}addTrackPublication(e){super.addTrackPublication(e),e.on(N.UpdateSettings,t=>{this.log.debug("send update settings",Object.assign(Object.assign({},this.logContext),se(e))),this.signalClient.sendUpdateTrackSettings(t)}),e.on(N.UpdateSubscription,t=>{t.participantTracks.forEach(i=>{i.participantSid=this.sid}),this.signalClient.sendUpdateSubscription(t)}),e.on(N.SubscriptionPermissionChanged,t=>{this.emit(L.TrackSubscriptionPermissionChanged,e,t)}),e.on(N.SubscriptionStatusChanged,t=>{this.emit(L.TrackSubscriptionStatusChanged,e,t)}),e.on(N.Subscribed,t=>{this.emit(L.TrackSubscribed,t,e)}),e.on(N.Unsubscribed,t=>{this.emit(L.TrackUnsubscribed,t,e)}),e.on(N.SubscriptionFailed,t=>{this.emit(L.TrackSubscriptionFailed,e.trackSid,t)})}getTrackPublication(e){const t=super.getTrackPublication(e);if(t)return t}getTrackPublicationByName(e){const t=super.getTrackPublicationByName(e);if(t)return t}setVolume(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:E.Source.Microphone;this.volumeMap.set(t,e);const i=this.getTrackPublication(t);i&&i.track&&i.track.setVolume(e)}getVolume(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:E.Source.Microphone;const t=this.getTrackPublication(e);return t&&t.track?t.track.getVolume():this.volumeMap.get(e)}addSubscribedMediaTrack(e,t,i,s,r,a){let o=this.getTrackPublicationBySid(t);if(o||t.startsWith("TR")||this.trackPublications.forEach(d=>{!o&&e.kind===d.kind.toString()&&(o=d)}),!o){if(a===0){this.log.error("could not find published track",Object.assign(Object.assign({},this.logContext),{trackSid:t})),this.emit(L.TrackSubscriptionFailed,t);return}a===void 0&&(a=20),setTimeout(()=>{this.addSubscribedMediaTrack(e,t,i,s,r,a-1)},150);return}if(e.readyState==="ended"){this.log.error("unable to subscribe because MediaStreamTrack is ended. Do not call MediaStreamTrack.stop()",Object.assign(Object.assign({},this.logContext),se(o))),this.emit(L.TrackSubscriptionFailed,t);return}const c=e.kind==="video";let l;return c?l=new fi(e,t,s,r):l=new hi(e,t,s,this.audioContext,this.audioOutput),l.source=o.source,l.isMuted=o.isMuted,l.setMediaStream(i),l.start(),o.setTrack(l),this.volumeMap.has(o.source)&&l instanceof hi&&l.setVolume(this.volumeMap.get(o.source)),o}get hasMetadata(){return!!this.participantInfo}getTrackPublicationBySid(e){return this.trackPublications.get(e)}updateInfo(e){if(!super.updateInfo(e))return!1;const t=new Map,i=new Map;return e.tracks.forEach(s=>{var r,a;let o=this.getTrackPublicationBySid(s.sid);if(o)o.updateInfo(s);else{const c=E.kindFromProto(s.type);if(!c)return;o=new Qo(c,s,(r=this.signalClient.connectOptions)===null||r===void 0?void 0:r.autoSubscribe,{loggerContextCb:()=>this.logContext,loggerName:(a=this.loggerOptions)===null||a===void 0?void 0:a.loggerName}),o.updateInfo(s),i.set(s.sid,o);const l=Array.from(this.trackPublications.values()).find(d=>d.source===(o==null?void 0:o.source));l&&o.source!==E.Source.Unknown&&this.log.debug("received a second track publication for ".concat(this.identity," with the same source: ").concat(o.source),Object.assign(Object.assign({},this.logContext),{oldTrack:se(l),newTrack:se(o)})),this.addTrackPublication(o)}t.set(s.sid,o)}),this.trackPublications.forEach(s=>{t.has(s.trackSid)||(this.log.trace("detected removed track on remote participant, unpublishing",Object.assign(Object.assign({},this.logContext),se(s))),this.unpublishTrack(s.trackSid,!0))}),i.forEach(s=>{this.emit(L.TrackPublished,s)}),!0}unpublishTrack(e,t){const i=this.trackPublications.get(e);if(!i)return;const{track:s}=i;switch(s&&(s.stop(),i.setTrack(void 0)),this.trackPublications.delete(e),i.kind){case E.Kind.Audio:this.audioTrackPublications.delete(e);break;case E.Kind.Video:this.videoTrackPublications.delete(e);break}t&&this.emit(L.TrackUnpublished,i)}setAudioOutput(e){return g(this,void 0,void 0,function*(){this.audioOutput=e;const t=[];this.audioTrackPublications.forEach(i=>{var s;i.track instanceof hi&&t.push(i.track.setSinkId((s=e.deviceId)!==null&&s!==void 0?s:"default"))}),yield Promise.all(t)})}emit(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),s=1;sg(this,void 0,void 0,function*(){var c;if(!mh())throw ht()?Error("WebRTC isn't detected, have you called registerGlobals?"):Error("LiveKit doesn't seem to be supported on this browser. Try to update your browser and make sure no browser extensions are disabling webRTC.");const l=yield this.disconnectLock.lock();if(this.state===ie.Connected)return this.log.info("already connected to room ".concat(this.name),this.logContext),l(),Promise.resolve();if(this.connectFuture)return l(),this.connectFuture.promise;this.setAndEmitConnectionState(ie.Connecting),((c=this.regionUrlProvider)===null||c===void 0?void 0:c.getServerUrl().toString())!==r&&(this.regionUrl=void 0,this.regionUrlProvider=void 0),ss(new URL(r))&&(this.regionUrlProvider===void 0?this.regionUrlProvider=new sa(r,a):this.regionUrlProvider.updateToken(a),this.regionUrlProvider.fetchRegionSettings().then(p=>{var m;(m=this.regionUrlProvider)===null||m===void 0||m.setServerReportedRegions(p)}).catch(p=>{this.log.warn("could not fetch region settings",Object.assign(Object.assign({},this.logContext),{error:p}))}));const d=(p,m,y)=>g(this,void 0,void 0,function*(){var C,_;this.abortController&&this.abortController.abort();const b=new AbortController;this.abortController=b,l==null||l();try{yield this.attemptConnection(y??r,a,o,b),this.abortController=void 0,p()}catch(G){if(this.regionUrlProvider&&G instanceof re&&G.reason!==te.Cancelled&&G.reason!==te.NotAllowed){let W=null;try{W=yield this.regionUrlProvider.getNextBestRegionUrl((C=this.abortController)===null||C===void 0?void 0:C.signal)}catch(P){if(P instanceof re&&(P.status===401||P.reason===te.Cancelled)){this.handleDisconnect(this.options.stopLocalTrackOnUnpublish),m(P);return}}W&&!(!((_=this.abortController)===null||_===void 0)&&_.signal.aborted)?(this.log.info("Initial connection failed with ConnectionError: ".concat(G.message,". Retrying with another region: ").concat(W),this.logContext),this.recreateEngine(),yield d(p,m,W)):(this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,Kr(G)),m(G))}else{let W=ze.UNKNOWN_REASON;G instanceof re&&(W=Kr(G)),this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,W),m(G)}}}),f=this.regionUrl;return this.regionUrl=void 0,this.connectFuture=new Vo((p,m)=>{d(p,m,f)},()=>{this.clearConnectionFutures()}),this.connectFuture.promise}),this.connectSignal=(r,a,o,c,l,d)=>g(this,void 0,void 0,function*(){var f,p,m;const y=yield o.join(r,a,{autoSubscribe:c.autoSubscribe,adaptiveStream:typeof l.adaptiveStream=="object"?!0:l.adaptiveStream,maxRetries:c.maxRetries,e2eeEnabled:!!this.e2eeManager,websocketTimeout:c.websocketTimeout},d.signal);let C=y.serverInfo;if(C||(C={version:y.serverVersion,region:y.serverRegion}),this.serverInfo=C,this.log.debug("connected to Livekit Server ".concat(Object.entries(C).map(_=>{let[b,G]=_;return"".concat(b,": ").concat(G)}).join(", ")),{room:(f=y.room)===null||f===void 0?void 0:f.name,roomSid:(p=y.room)===null||p===void 0?void 0:p.sid,identity:(m=y.participant)===null||m===void 0?void 0:m.identity}),!C.version)throw new $u("unknown server version");return C.version==="0.15.1"&&this.options.dynacast&&(this.log.debug("disabling dynacast due to server version",this.logContext),l.dynacast=!1),y}),this.applyJoinResponse=r=>{const a=r.participant;if(this.localParticipant.sid=a.sid,this.localParticipant.identity=a.identity,this.localParticipant.setEnabledPublishCodecs(r.enabledPublishCodecs),this.options.e2ee&&this.e2eeManager)try{this.e2eeManager.setSifTrailer(r.sifTrailer)}catch(o){this.log.error(o instanceof Error?o.message:"Could not set SifTrailer",Object.assign(Object.assign({},this.logContext),{error:o}))}this.handleParticipantUpdates([a,...r.otherParticipants]),r.room&&this.handleRoomUpdate(r.room)},this.attemptConnection=(r,a,o,c)=>g(this,void 0,void 0,function*(){var l,d,f;this.state===ie.Reconnecting||this.isResuming||!((l=this.engine)===null||l===void 0)&&l.pendingReconnect?(this.log.info("Reconnection attempt replaced by new connection attempt",this.logContext),this.recreateEngine()):this.maybeCreateEngine(),!((d=this.regionUrlProvider)===null||d===void 0)&&d.isCloud()&&this.engine.setRegionUrlProvider(this.regionUrlProvider),this.acquireAudioContext(),this.connOptions=Object.assign(Object.assign({},Ps),o),this.connOptions.rtcConfig&&(this.engine.rtcConfig=this.connOptions.rtcConfig),this.connOptions.peerConnectionTimeout&&(this.engine.peerConnectionTimeout=this.connOptions.peerConnectionTimeout);try{const p=yield this.connectSignal(r,a,this.engine,this.connOptions,this.options,c);this.applyJoinResponse(p),this.setupLocalParticipantEvents(),this.emit(D.SignalConnected)}catch(p){yield this.engine.close(),this.recreateEngine();const m=new re("could not establish signal connection",te.ServerUnreachable);throw p instanceof Error&&(m.message="".concat(m.message,": ").concat(p.message)),p instanceof re&&(m.reason=p.reason,m.status=p.status),this.log.debug("error trying to establish signal connection",Object.assign(Object.assign({},this.logContext),{error:p})),m}if(c.signal.aborted)throw yield this.engine.close(),this.recreateEngine(),new re("Connection attempt aborted",te.Cancelled);try{yield this.engine.waitForPCInitialConnection(this.connOptions.peerConnectionTimeout,c)}catch(p){throw yield this.engine.close(),this.recreateEngine(),p}Le()&&this.options.disconnectOnPageLeave&&(window.addEventListener("pagehide",this.onPageLeave),window.addEventListener("beforeunload",this.onPageLeave)),Le()&&(document.addEventListener("freeze",this.onPageLeave),(f=navigator.mediaDevices)===null||f===void 0||f.addEventListener("devicechange",this.handleDeviceChange)),this.setAndEmitConnectionState(ie.Connected),this.emit(D.Connected),this.registerConnectionReconcile()}),this.disconnect=function(){for(var r=arguments.length,a=new Array(r),o=0;o0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){var d,f,p,m;const y=yield c.disconnectLock.lock();try{if(c.state===ie.Disconnected){c.log.debug("already disconnected",c.logContext);return}c.log.info("disconnect from room",Object.assign({},c.logContext)),(c.state===ie.Connecting||c.state===ie.Reconnecting||c.isResuming)&&(c.log.warn("abort connection attempt",c.logContext),(d=c.abortController)===null||d===void 0||d.abort(),(p=(f=c.connectFuture)===null||f===void 0?void 0:f.reject)===null||p===void 0||p.call(f,new re("Client initiated disconnect",te.Cancelled)),c.connectFuture=void 0),!((m=c.engine)===null||m===void 0)&&m.client.isDisconnected||(yield c.engine.client.sendLeave()),c.engine&&(yield c.engine.close()),c.handleDisconnect(l,ze.CLIENT_INITIATED),c.engine=void 0}finally{y()}}()})},this.onPageLeave=()=>g(this,void 0,void 0,function*(){this.log.info("Page leave detected, disconnecting",this.logContext),yield this.disconnect()}),this.startAudio=()=>g(this,void 0,void 0,function*(){const r=[],a=ut();if(a&&a.os==="iOS"){const o="livekit-dummy-audio-el";let c=document.getElementById(o);if(!c){c=document.createElement("audio"),c.id=o,c.autoplay=!0,c.hidden=!0;const l=In();l.enabled=!0;const d=new MediaStream([l]);c.srcObject=d,document.addEventListener("visibilitychange",()=>{c&&(c.srcObject=document.hidden?null:d,document.hidden||(this.log.debug("page visible again, triggering startAudio to resume playback and update playback status",this.logContext),this.startAudio()))}),document.body.append(c),this.once(D.Disconnected,()=>{c==null||c.remove(),c=null})}r.push(c)}this.remoteParticipants.forEach(o=>{o.audioTrackPublications.forEach(c=>{c.track&&c.track.attachedElements.forEach(l=>{r.push(l)})})});try{yield Promise.all([this.acquireAudioContext(),...r.map(o=>(o.muted=!1,o.play()))]),this.handleAudioPlaybackStarted()}catch(o){throw this.handleAudioPlaybackFailed(o),o}}),this.startVideo=()=>g(this,void 0,void 0,function*(){const r=[];for(const a of this.remoteParticipants.values())a.videoTrackPublications.forEach(o=>{var c;(c=o.track)===null||c===void 0||c.attachedElements.forEach(l=>{r.includes(l)||r.push(l)})});yield Promise.all(r.map(a=>a.play())).then(()=>{this.handleVideoPlaybackStarted()}).catch(a=>{a.name==="NotAllowedError"?this.handleVideoPlaybackFailed():this.log.warn("Resuming video playback failed, make sure you call `startVideo` directly in a user gesture handler",this.logContext)})}),this.handleRestarting=()=>{this.clearConnectionReconcile(),this.isResuming=!1;for(const r of this.remoteParticipants.values())this.handleParticipantDisconnected(r.identity,r);this.setAndEmitConnectionState(ie.Reconnecting)&&this.emit(D.Reconnecting)},this.handleSignalRestarted=r=>g(this,void 0,void 0,function*(){this.log.debug("signal reconnected to server, region ".concat(r.serverRegion),Object.assign(Object.assign({},this.logContext),{region:r.serverRegion})),this.bufferedEvents=[],this.applyJoinResponse(r);try{yield this.localParticipant.republishAllTracks(void 0,!0)}catch(a){this.log.error("error trying to re-publish tracks after reconnection",Object.assign(Object.assign({},this.logContext),{error:a}))}try{yield this.engine.waitForRestarted(),this.log.debug("fully reconnected to server",Object.assign(Object.assign({},this.logContext),{region:r.serverRegion}))}catch{return}this.setAndEmitConnectionState(ie.Connected),this.emit(D.Reconnected),this.registerConnectionReconcile(),this.emitBufferedEvents()}),this.handleParticipantUpdates=r=>{r.forEach(a=>{var o;if(a.identity===this.localParticipant.identity){this.localParticipant.updateInfo(a);return}a.identity===""&&(a.identity=(o=this.sidToIdentity.get(a.sid))!==null&&o!==void 0?o:"");let c=this.remoteParticipants.get(a.identity);a.state===Fn.DISCONNECTED?this.handleParticipantDisconnected(a.identity,c):c=this.getOrCreateParticipant(a.identity,a)})},this.handleActiveSpeakersUpdate=r=>{const a=[],o={};r.forEach(c=>{if(o[c.sid]=!0,c.sid===this.localParticipant.sid)this.localParticipant.audioLevel=c.level,this.localParticipant.setIsSpeaking(!0),a.push(this.localParticipant);else{const l=this.getRemoteParticipantBySid(c.sid);l&&(l.audioLevel=c.level,l.setIsSpeaking(!0),a.push(l))}}),o[this.localParticipant.sid]||(this.localParticipant.audioLevel=0,this.localParticipant.setIsSpeaking(!1)),this.remoteParticipants.forEach(c=>{o[c.sid]||(c.audioLevel=0,c.setIsSpeaking(!1))}),this.activeSpeakers=a,this.emitWhenConnected(D.ActiveSpeakersChanged,a)},this.handleSpeakersChanged=r=>{const a=new Map;this.activeSpeakers.forEach(c=>{const l=this.remoteParticipants.get(c.identity);l&&l.sid!==c.sid||a.set(c.sid,c)}),r.forEach(c=>{let l=this.getRemoteParticipantBySid(c.sid);c.sid===this.localParticipant.sid&&(l=this.localParticipant),l&&(l.audioLevel=c.level,l.setIsSpeaking(c.active),c.active?a.set(c.sid,l):a.delete(c.sid))});const o=Array.from(a.values());o.sort((c,l)=>l.audioLevel-c.audioLevel),this.activeSpeakers=o,this.emitWhenConnected(D.ActiveSpeakersChanged,o)},this.handleStreamStateUpdate=r=>{r.streamStates.forEach(a=>{const o=this.getRemoteParticipantBySid(a.participantSid);if(!o)return;const c=o.getTrackPublicationBySid(a.trackSid);if(!c||!c.track)return;const l=E.streamStateFromProto(a.state);l!==c.track.streamState&&(c.track.streamState=l,o.emit(L.TrackStreamStateChanged,c,c.track.streamState),this.emitWhenConnected(D.TrackStreamStateChanged,c,c.track.streamState,o))})},this.handleSubscriptionPermissionUpdate=r=>{const a=this.getRemoteParticipantBySid(r.participantSid);if(!a)return;const o=a.getTrackPublicationBySid(r.trackSid);o&&o.setAllowed(r.allowed)},this.handleSubscriptionError=r=>{const a=Array.from(this.remoteParticipants.values()).find(c=>c.trackPublications.has(r.trackSid));if(!a)return;const o=a.getTrackPublicationBySid(r.trackSid);o&&o.setSubscriptionError(r.err)},this.handleDataPacket=r=>{const a=this.remoteParticipants.get(r.participantIdentity);r.value.case==="user"?this.handleUserPacket(a,r.value.value,r.kind):r.value.case==="transcription"?this.handleTranscription(a,r.value.value):r.value.case==="sipDtmf"?this.handleSipDtmf(a,r.value.value):r.value.case==="chatMessage"?this.handleChatMessage(a,r.value.value):r.value.case==="metrics"&&this.handleMetrics(r.value.value,a)},this.handleUserPacket=(r,a,o)=>{this.emit(D.DataReceived,a.payload,r,o,a.topic),r==null||r.emit(L.DataReceived,a.payload,o)},this.handleSipDtmf=(r,a)=>{this.emit(D.SipDTMFReceived,a,r),r==null||r.emit(L.SipDTMFReceived,a)},this.bufferedSegments=new Map,this.handleTranscription=(r,a)=>{const o=a.transcribedParticipantIdentity===this.localParticipant.identity?this.localParticipant:this.getParticipantByIdentity(a.transcribedParticipantIdentity),c=o==null?void 0:o.trackPublications.get(a.trackId),l=Sh(a,this.transcriptionReceivedTimes);c==null||c.emit(N.TranscriptionReceived,l),o==null||o.emit(L.TranscriptionReceived,l,c),this.emit(D.TranscriptionReceived,l,o,c)},this.handleChatMessage=(r,a)=>{const o=Ph(a);this.emit(D.ChatMessage,o,r)},this.handleMetrics=(r,a)=>{this.emit(D.MetricsReceived,r,a)},this.handleAudioPlaybackStarted=()=>{this.canPlaybackAudio||(this.audioEnabled=!0,this.emit(D.AudioPlaybackStatusChanged,!0))},this.handleAudioPlaybackFailed=r=>{this.log.warn("could not playback audio",Object.assign(Object.assign({},this.logContext),{error:r})),this.canPlaybackAudio&&(this.audioEnabled=!1,this.emit(D.AudioPlaybackStatusChanged,!1))},this.handleVideoPlaybackStarted=()=>{this.isVideoPlaybackBlocked&&(this.isVideoPlaybackBlocked=!1,this.emit(D.VideoPlaybackStatusChanged,!0))},this.handleVideoPlaybackFailed=()=>{this.isVideoPlaybackBlocked||(this.isVideoPlaybackBlocked=!0,this.emit(D.VideoPlaybackStatusChanged,!1))},this.handleDeviceChange=()=>g(this,void 0,void 0,function*(){const r=yield Pe.getInstance().getDevices(void 0,!1),a=["audiooutput"];for(let o of a){const c=r.filter(l=>l.kind===o);c.length>0&&!c.find(l=>l.deviceId===this.getActiveDevice(o))&&(yield this.switchActiveDevice(o,c[0].deviceId))}this.emit(D.MediaDevicesChanged)}),this.handleRoomUpdate=r=>{const a=this.roomInfo;this.roomInfo=r,a&&a.metadata!==r.metadata&&this.emitWhenConnected(D.RoomMetadataChanged,r.metadata),(a==null?void 0:a.activeRecording)!==r.activeRecording&&this.emitWhenConnected(D.RecordingStatusChanged,r.activeRecording)},this.handleConnectionQualityUpdate=r=>{r.updates.forEach(a=>{if(a.participantSid===this.localParticipant.sid){this.localParticipant.setConnectionQuality(a.quality);return}const o=this.getRemoteParticipantBySid(a.participantSid);o&&o.setConnectionQuality(a.quality)})},this.onLocalParticipantMetadataChanged=r=>{this.emit(D.ParticipantMetadataChanged,r,this.localParticipant)},this.onLocalParticipantNameChanged=r=>{this.emit(D.ParticipantNameChanged,r,this.localParticipant)},this.onLocalAttributesChanged=r=>{this.emit(D.ParticipantAttributesChanged,r,this.localParticipant)},this.onLocalTrackMuted=r=>{this.emit(D.TrackMuted,r,this.localParticipant)},this.onLocalTrackUnmuted=r=>{this.emit(D.TrackUnmuted,r,this.localParticipant)},this.onTrackProcessorUpdate=r=>{var a;(a=r==null?void 0:r.onPublish)===null||a===void 0||a.call(r,this)},this.onLocalTrackPublished=r=>g(this,void 0,void 0,function*(){var a,o,c,l,d,f;(a=r.track)===null||a===void 0||a.on(N.TrackProcessorUpdate,this.onTrackProcessorUpdate),(o=r.track)===null||o===void 0||o.on(N.Restarted,this.onLocalTrackRestarted),(d=(l=(c=r.track)===null||c===void 0?void 0:c.getProcessor())===null||l===void 0?void 0:l.onPublish)===null||d===void 0||d.call(l,this),this.emit(D.LocalTrackPublished,r,this.localParticipant),r.track instanceof Se&&(yield r.track.checkForSilence())&&this.emit(D.LocalAudioSilenceDetected,r);const p=yield(f=r.track)===null||f===void 0?void 0:f.getDeviceId(),m=Lr(r.source);m&&p&&p!==this.localParticipant.activeDeviceMap.get(m)&&(this.localParticipant.activeDeviceMap.set(m,p),this.emit(D.ActiveDeviceChanged,m,p))}),this.onLocalTrackUnpublished=r=>{var a,o;(a=r.track)===null||a===void 0||a.off(N.TrackProcessorUpdate,this.onTrackProcessorUpdate),(o=r.track)===null||o===void 0||o.off(N.Restarted,this.onLocalTrackRestarted),this.emit(D.LocalTrackUnpublished,r,this.localParticipant)},this.onLocalTrackRestarted=r=>g(this,void 0,void 0,function*(){const a=yield r.getDeviceId(!1),o=Lr(r.source);o&&a&&a!==this.localParticipant.activeDeviceMap.get(o)&&(this.log.debug("local track restarted, setting ".concat(o," ").concat(a," active"),this.logContext),this.localParticipant.activeDeviceMap.set(o,a),this.emit(D.ActiveDeviceChanged,o,a))}),this.onLocalConnectionQualityChanged=r=>{this.emit(D.ConnectionQualityChanged,r,this.localParticipant)},this.onMediaDevicesError=r=>{this.emit(D.MediaDevicesError,r)},this.onLocalParticipantPermissionsChanged=r=>{this.emit(D.ParticipantPermissionsChanged,r,this.localParticipant)},this.onLocalChatMessageSent=r=>{this.emit(D.ChatMessage,r,this.localParticipant)},this.setMaxListeners(100),this.remoteParticipants=new Map,this.sidToIdentity=new Map,this.options=Object.assign(Object.assign({},Fh),e),this.log=dt((i=this.options.loggerName)!==null&&i!==void 0?i:Je.Room),this.transcriptionReceivedTimes=new Map,this.options.audioCaptureDefaults=Object.assign(Object.assign({},Ko),e==null?void 0:e.audioCaptureDefaults),this.options.videoCaptureDefaults=Object.assign(Object.assign({},Go),e==null?void 0:e.videoCaptureDefaults),this.options.publishDefaults=Object.assign(Object.assign({},Uh),e==null?void 0:e.publishDefaults),this.maybeCreateEngine(),this.disconnectLock=new Ne,this.localParticipant=new oa("","",this.engine,this.options),this.options.videoCaptureDefaults.deviceId&&this.localParticipant.activeDeviceMap.set("videoinput",lt(this.options.videoCaptureDefaults.deviceId)),this.options.audioCaptureDefaults.deviceId&&this.localParticipant.activeDeviceMap.set("audioinput",lt(this.options.audioCaptureDefaults.deviceId)),!((s=this.options.audioOutput)===null||s===void 0)&&s.deviceId&&this.switchActiveDevice("audiooutput",lt(this.options.audioOutput.deviceId)).catch(r=>this.log.warn("Could not set audio output: ".concat(r.message),this.logContext)),this.options.e2ee&&this.setupE2EE()}setE2EEEnabled(e){return g(this,void 0,void 0,function*(){if(this.e2eeManager)yield Promise.all([this.localParticipant.setE2EEEnabled(e)]),this.localParticipant.identity!==""&&this.e2eeManager.setParticipantCryptorEnabled(e,this.localParticipant.identity);else throw Error("e2ee not configured, please set e2ee settings within the room options")})}setupE2EE(){var e;this.options.e2ee&&("e2eeManager"in this.options.e2ee?this.e2eeManager=this.options.e2ee.e2eeManager:this.e2eeManager=new _h(this.options.e2ee),this.e2eeManager.on(kt.ParticipantEncryptionStatusChanged,(t,i)=>{i instanceof oa&&(this.isE2EEEnabled=t),this.emit(D.ParticipantEncryptionStatusChanged,t,i)}),this.e2eeManager.on(kt.EncryptionError,t=>this.emit(D.EncryptionError,t)),(e=this.e2eeManager)===null||e===void 0||e.setup(this))}get logContext(){var e;return{room:this.name,roomID:(e=this.roomInfo)===null||e===void 0?void 0:e.sid,participant:this.localParticipant.identity,pID:this.localParticipant.sid}}get isRecording(){var e,t;return(t=(e=this.roomInfo)===null||e===void 0?void 0:e.activeRecording)!==null&&t!==void 0?t:!1}getSid(){return g(this,void 0,void 0,function*(){return this.state===ie.Disconnected?"":this.roomInfo&&this.roomInfo.sid!==""?this.roomInfo.sid:new Promise((e,t)=>{const i=s=>{s.sid!==""&&(this.engine.off(j.RoomUpdate,i),e(s.sid))};this.engine.on(j.RoomUpdate,i),this.once(D.Disconnected,()=>{this.engine.off(j.RoomUpdate,i),t("Room disconnected before room server id was available")})})})}get name(){var e,t;return(t=(e=this.roomInfo)===null||e===void 0?void 0:e.name)!==null&&t!==void 0?t:""}get metadata(){var e;return(e=this.roomInfo)===null||e===void 0?void 0:e.metadata}get numParticipants(){var e,t;return(t=(e=this.roomInfo)===null||e===void 0?void 0:e.numParticipants)!==null&&t!==void 0?t:0}get numPublishers(){var e,t;return(t=(e=this.roomInfo)===null||e===void 0?void 0:e.numPublishers)!==null&&t!==void 0?t:0}maybeCreateEngine(){this.engine&&!this.engine.isClosed||(this.engine=new Xh(this.options),this.engine.on(j.ParticipantUpdate,this.handleParticipantUpdates).on(j.RoomUpdate,this.handleRoomUpdate).on(j.SpeakersChanged,this.handleSpeakersChanged).on(j.StreamStateChanged,this.handleStreamStateUpdate).on(j.ConnectionQualityUpdate,this.handleConnectionQualityUpdate).on(j.SubscriptionError,this.handleSubscriptionError).on(j.SubscriptionPermissionUpdate,this.handleSubscriptionPermissionUpdate).on(j.MediaTrackAdded,(e,t,i)=>{this.onTrackAdded(e,t,i)}).on(j.Disconnected,e=>{this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,e)}).on(j.ActiveSpeakersUpdate,this.handleActiveSpeakersUpdate).on(j.DataPacketReceived,this.handleDataPacket).on(j.Resuming,()=>{this.clearConnectionReconcile(),this.isResuming=!0,this.log.info("Resuming signal connection",this.logContext),this.setAndEmitConnectionState(ie.SignalReconnecting)&&this.emit(D.SignalReconnecting)}).on(j.Resumed,()=>{this.registerConnectionReconcile(),this.isResuming=!1,this.log.info("Resumed signal connection",this.logContext),this.updateSubscriptions(),this.emitBufferedEvents(),this.setAndEmitConnectionState(ie.Connected)&&this.emit(D.Reconnected)}).on(j.SignalResumed,()=>{this.bufferedEvents=[],(this.state===ie.Reconnecting||this.isResuming)&&this.sendSyncState()}).on(j.Restarting,this.handleRestarting).on(j.SignalRestarted,this.handleSignalRestarted).on(j.Offline,()=>{this.setAndEmitConnectionState(ie.Reconnecting)&&this.emit(D.Reconnecting)}).on(j.DCBufferStatusChanged,(e,t)=>{this.emit(D.DCBufferStatusChanged,e,t)}).on(j.LocalTrackSubscribed,e=>{const t=this.localParticipant.getTrackPublications().find(i=>{let{trackSid:s}=i;return s===e});if(!t){this.log.warn("could not find local track subscription for subscribed event",this.logContext);return}this.localParticipant.emit(L.LocalTrackSubscribed,t),this.emitWhenConnected(D.LocalTrackSubscribed,t,this.localParticipant)}),this.localParticipant&&this.localParticipant.setupEngine(this.engine),this.e2eeManager&&this.e2eeManager.setupEngine(this.engine))}static getLocalDevices(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return Pe.getInstance().getDevices(e,t)}prepareConnection(e,t){return g(this,void 0,void 0,function*(){if(this.state===ie.Disconnected){this.log.debug("prepareConnection to ".concat(e),this.logContext);try{if(ss(new URL(e))&&t){this.regionUrlProvider=new sa(e,t);const i=yield this.regionUrlProvider.getNextBestRegionUrl();i&&this.state===ie.Disconnected&&(this.regionUrl=i,yield fetch(qr(i),{method:"HEAD"}),this.log.debug("prepared connection to ".concat(i),this.logContext))}else yield fetch(qr(e),{method:"HEAD"})}catch(i){this.log.warn("could not prepare connection",Object.assign(Object.assign({},this.logContext),{error:i}))}}})}getParticipantByIdentity(e){return this.localParticipant.identity===e?this.localParticipant:this.remoteParticipants.get(e)}clearConnectionFutures(){this.connectFuture=void 0}simulateScenario(e,t){return g(this,void 0,void 0,function*(){let i=()=>{},s;switch(e){case"signal-reconnect":yield this.engine.client.handleOnClose("simulate disconnect");break;case"speaker":s=new Ze({scenario:{case:"speakerUpdate",value:3}});break;case"node-failure":s=new Ze({scenario:{case:"nodeFailure",value:!0}});break;case"server-leave":s=new Ze({scenario:{case:"serverLeave",value:!0}});break;case"migration":s=new Ze({scenario:{case:"migration",value:!0}});break;case"resume-reconnect":this.engine.failNext(),yield this.engine.client.handleOnClose("simulate resume-disconnect");break;case"disconnect-signal-on-resume":i=()=>g(this,void 0,void 0,function*(){yield this.engine.client.handleOnClose("simulate resume-disconnect")}),s=new Ze({scenario:{case:"disconnectSignalOnResume",value:!0}});break;case"disconnect-signal-on-resume-no-messages":i=()=>g(this,void 0,void 0,function*(){yield this.engine.client.handleOnClose("simulate resume-disconnect")}),s=new Ze({scenario:{case:"disconnectSignalOnResumeNoMessages",value:!0}});break;case"full-reconnect":this.engine.fullReconnectOnNext=!0,yield this.engine.client.handleOnClose("simulate full-reconnect");break;case"force-tcp":case"force-tls":s=new Ze({scenario:{case:"switchCandidateProtocol",value:e==="force-tls"?2:1}}),i=()=>g(this,void 0,void 0,function*(){const r=this.engine.client.onLeave;r&&r(new en({reason:ze.CLIENT_INITIATED,action:jt.RECONNECT}))});break;case"subscriber-bandwidth":if(t===void 0||typeof t!="number")throw new Error("subscriber-bandwidth requires a number as argument");s=new Ze({scenario:{case:"subscriberBandwidth",value:BigInt(t)}});break;case"leave-full-reconnect":s=new Ze({scenario:{case:"leaveRequestFullReconnect",value:!0}})}s&&(yield this.engine.client.sendSimulateScenario(s),yield i())})}get canPlaybackAudio(){return this.audioEnabled}get canPlaybackVideo(){return!this.isVideoPlaybackBlocked}getActiveDevice(e){return this.localParticipant.activeDeviceMap.get(e)}switchActiveDevice(e,t){return g(this,arguments,void 0,function(i,s){var r=this;let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return function*(){var o,c,l,d,f,p,m;let y=!1,C=!0;const _=a?{exact:s}:s;if(i==="audioinput"){const b=(o=r.getActiveDevice(i))!==null&&o!==void 0?o:r.options.audioCaptureDefaults.deviceId;r.options.audioCaptureDefaults.deviceId=_,y=b!==_;const G=Array.from(r.localParticipant.audioTrackPublications.values()).filter(W=>W.source===E.Source.Microphone);try{C=(yield Promise.all(G.map(W=>{var P;return(P=W.audioTrack)===null||P===void 0?void 0:P.setDeviceId(_)}))).every(W=>W===!0)}catch(W){throw r.options.audioCaptureDefaults.deviceId=b,W}}else if(i==="videoinput"){const b=(c=r.getActiveDevice(i))!==null&&c!==void 0?c:r.options.videoCaptureDefaults.deviceId;r.options.videoCaptureDefaults.deviceId=_,y=b!==_;const G=Array.from(r.localParticipant.videoTrackPublications.values()).filter(W=>W.source===E.Source.Camera);try{C=(yield Promise.all(G.map(W=>{var P;return(P=W.videoTrack)===null||P===void 0?void 0:P.setDeviceId(_)}))).every(W=>W===!0)}catch(W){throw r.options.videoCaptureDefaults.deviceId=b,W}}else if(i==="audiooutput"){if(!ns()&&!r.options.webAudioMix||r.options.webAudioMix&&r.audioContext&&!("setSinkId"in r.audioContext))throw new Error("cannot switch audio output, setSinkId not supported");r.options.webAudioMix&&(s=(l=yield Pe.getInstance().normalizeDeviceId("audiooutput",s))!==null&&l!==void 0?l:""),(d=(m=r.options).audioOutput)!==null&&d!==void 0||(m.audioOutput={});const b=(f=r.getActiveDevice(i))!==null&&f!==void 0?f:r.options.audioOutput.deviceId;r.options.audioOutput.deviceId=s,y=b!==_;try{r.options.webAudioMix&&((p=r.audioContext)===null||p===void 0||p.setSinkId(s)),yield Promise.all(Array.from(r.remoteParticipants.values()).map(G=>G.setAudioOutput({deviceId:s})))}catch(G){throw r.options.audioOutput.deviceId=b,G}}return y&&C&&(r.localParticipant.activeDeviceMap.set(i,s),r.emit(D.ActiveDeviceChanged,i,s)),C}()})}setupLocalParticipantEvents(){this.localParticipant.on(L.ParticipantMetadataChanged,this.onLocalParticipantMetadataChanged).on(L.ParticipantNameChanged,this.onLocalParticipantNameChanged).on(L.AttributesChanged,this.onLocalAttributesChanged).on(L.TrackMuted,this.onLocalTrackMuted).on(L.TrackUnmuted,this.onLocalTrackUnmuted).on(L.LocalTrackPublished,this.onLocalTrackPublished).on(L.LocalTrackUnpublished,this.onLocalTrackUnpublished).on(L.ConnectionQualityChanged,this.onLocalConnectionQualityChanged).on(L.MediaDevicesError,this.onMediaDevicesError).on(L.AudioStreamAcquired,this.startAudio).on(L.ChatMessage,this.onLocalChatMessageSent).on(L.ParticipantPermissionsChanged,this.onLocalParticipantPermissionsChanged)}recreateEngine(){var e;(e=this.engine)===null||e===void 0||e.close(),this.engine=void 0,this.isResuming=!1,this.remoteParticipants.clear(),this.sidToIdentity.clear(),this.bufferedEvents=[],this.maybeCreateEngine()}onTrackAdded(e,t,i){if(this.state===ie.Connecting||this.state===ie.Reconnecting){const d=()=>{this.onTrackAdded(e,t,i),f()},f=()=>{this.off(D.Reconnected,d),this.off(D.Connected,d),this.off(D.Disconnected,f)};this.once(D.Reconnected,d),this.once(D.Connected,d),this.once(D.Disconnected,f);return}if(this.state===ie.Disconnected){this.log.warn("skipping incoming track after Room disconnected",this.logContext);return}const s=hh(t.id),r=s[0];let a=s[1],o=e.id;if(a&&a.startsWith("TR")&&(o=a),r===this.localParticipant.sid){this.log.warn("tried to create RemoteParticipant for local participant",this.logContext);return}const c=Array.from(this.remoteParticipants.values()).find(d=>d.sid===r);if(!c){this.log.error("Tried to add a track for a participant, that's not present. Sid: ".concat(r),this.logContext);return}let l;this.options.adaptiveStream&&(typeof this.options.adaptiveStream=="object"?l=this.options.adaptiveStream:l={}),c.addSubscribedMediaTrack(e,o,t,i,l)}handleDisconnect(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,t=arguments.length>1?arguments[1]:void 0;var i;if(this.clearConnectionReconcile(),this.isResuming=!1,this.bufferedEvents=[],this.transcriptionReceivedTimes.clear(),this.state!==ie.Disconnected){this.regionUrl=void 0;try{this.remoteParticipants.forEach(s=>{s.trackPublications.forEach(r=>{s.unpublishTrack(r.trackSid)})}),this.localParticipant.trackPublications.forEach(s=>{var r,a,o;s.track&&this.localParticipant.unpublishTrack(s.track,e),e?((r=s.track)===null||r===void 0||r.detach(),(a=s.track)===null||a===void 0||a.stop()):(o=s.track)===null||o===void 0||o.stopMonitor()}),this.localParticipant.off(L.ParticipantMetadataChanged,this.onLocalParticipantMetadataChanged).off(L.ParticipantNameChanged,this.onLocalParticipantNameChanged).off(L.AttributesChanged,this.onLocalAttributesChanged).off(L.TrackMuted,this.onLocalTrackMuted).off(L.TrackUnmuted,this.onLocalTrackUnmuted).off(L.LocalTrackPublished,this.onLocalTrackPublished).off(L.LocalTrackUnpublished,this.onLocalTrackUnpublished).off(L.ConnectionQualityChanged,this.onLocalConnectionQualityChanged).off(L.MediaDevicesError,this.onMediaDevicesError).off(L.AudioStreamAcquired,this.startAudio).off(L.ChatMessage,this.onLocalChatMessageSent).off(L.ParticipantPermissionsChanged,this.onLocalParticipantPermissionsChanged),this.localParticipant.trackPublications.clear(),this.localParticipant.videoTrackPublications.clear(),this.localParticipant.audioTrackPublications.clear(),this.remoteParticipants.clear(),this.sidToIdentity.clear(),this.activeSpeakers=[],this.audioContext&&typeof this.options.webAudioMix=="boolean"&&(this.audioContext.close(),this.audioContext=void 0),Le()&&(window.removeEventListener("beforeunload",this.onPageLeave),window.removeEventListener("pagehide",this.onPageLeave),window.removeEventListener("freeze",this.onPageLeave),(i=navigator.mediaDevices)===null||i===void 0||i.removeEventListener("devicechange",this.handleDeviceChange))}finally{this.setAndEmitConnectionState(ie.Disconnected),this.emit(D.Disconnected,t)}}}handleParticipantDisconnected(e,t){var i;this.remoteParticipants.delete(e),t&&(t.trackPublications.forEach(s=>{t.unpublishTrack(s.trackSid,!0)}),this.emit(D.ParticipantDisconnected,t),(i=this.localParticipant)===null||i===void 0||i.handleParticipantDisconnected(t.identity))}acquireAudioContext(){return g(this,void 0,void 0,function*(){var e,t;if(typeof this.options.webAudioMix!="boolean"&&this.options.webAudioMix.audioContext?this.audioContext=this.options.webAudioMix.audioContext:(!this.audioContext||this.audioContext.state==="closed")&&(this.audioContext=(e=Uo())!==null&&e!==void 0?e:void 0),this.audioContext&&this.audioContext.state==="suspended")try{yield this.audioContext.resume()}catch(s){this.log.warn("Could not resume audio context",Object.assign(Object.assign({},this.logContext),{error:s}))}this.options.webAudioMix&&this.remoteParticipants.forEach(s=>s.setAudioContext(this.audioContext)),this.localParticipant.setAudioContext(this.audioContext);const i=((t=this.audioContext)===null||t===void 0?void 0:t.state)==="running";i!==this.canPlaybackAudio&&(this.audioEnabled=i,this.emit(D.AudioPlaybackStatusChanged,i))})}createParticipant(e,t){var i;let s;return t?s=Qi.fromParticipantInfo(this.engine.client,t,{loggerContextCb:()=>this.logContext,loggerName:this.options.loggerName}):s=new Qi(this.engine.client,"",e,void 0,void 0,void 0,{loggerContextCb:()=>this.logContext,loggerName:this.options.loggerName}),this.options.webAudioMix&&s.setAudioContext(this.audioContext),!((i=this.options.audioOutput)===null||i===void 0)&&i.deviceId&&s.setAudioOutput(this.options.audioOutput).catch(r=>this.log.warn("Could not set audio output: ".concat(r.message),this.logContext)),s}getOrCreateParticipant(e,t){if(this.remoteParticipants.has(e)){const s=this.remoteParticipants.get(e);return t&&s.updateInfo(t)&&this.sidToIdentity.set(t.sid,t.identity),s}const i=this.createParticipant(e,t);return this.remoteParticipants.set(e,i),this.sidToIdentity.set(t.sid,t.identity),this.emitWhenConnected(D.ParticipantConnected,i),i.on(L.TrackPublished,s=>{this.emitWhenConnected(D.TrackPublished,s,i)}).on(L.TrackSubscribed,(s,r)=>{s.kind===E.Kind.Audio?(s.on(N.AudioPlaybackStarted,this.handleAudioPlaybackStarted),s.on(N.AudioPlaybackFailed,this.handleAudioPlaybackFailed)):s.kind===E.Kind.Video&&(s.on(N.VideoPlaybackFailed,this.handleVideoPlaybackFailed),s.on(N.VideoPlaybackStarted,this.handleVideoPlaybackStarted)),this.emit(D.TrackSubscribed,s,r,i)}).on(L.TrackUnpublished,s=>{this.emit(D.TrackUnpublished,s,i)}).on(L.TrackUnsubscribed,(s,r)=>{this.emit(D.TrackUnsubscribed,s,r,i)}).on(L.TrackSubscriptionFailed,s=>{this.emit(D.TrackSubscriptionFailed,s,i)}).on(L.TrackMuted,s=>{this.emitWhenConnected(D.TrackMuted,s,i)}).on(L.TrackUnmuted,s=>{this.emitWhenConnected(D.TrackUnmuted,s,i)}).on(L.ParticipantMetadataChanged,s=>{this.emitWhenConnected(D.ParticipantMetadataChanged,s,i)}).on(L.ParticipantNameChanged,s=>{this.emitWhenConnected(D.ParticipantNameChanged,s,i)}).on(L.AttributesChanged,s=>{this.emitWhenConnected(D.ParticipantAttributesChanged,s,i)}).on(L.ConnectionQualityChanged,s=>{this.emitWhenConnected(D.ConnectionQualityChanged,s,i)}).on(L.ParticipantPermissionsChanged,s=>{this.emitWhenConnected(D.ParticipantPermissionsChanged,s,i)}).on(L.TrackSubscriptionStatusChanged,(s,r)=>{this.emitWhenConnected(D.TrackSubscriptionStatusChanged,s,r,i)}).on(L.TrackSubscriptionFailed,(s,r)=>{this.emit(D.TrackSubscriptionFailed,s,i,r)}).on(L.TrackSubscriptionPermissionChanged,(s,r)=>{this.emitWhenConnected(D.TrackSubscriptionPermissionChanged,s,r,i)}),t&&i.updateInfo(t),i}sendSyncState(){const e=Array.from(this.remoteParticipants.values()).reduce((i,s)=>(i.push(...s.getTrackPublications()),i),[]),t=this.localParticipant.getTrackPublications();this.engine.sendSyncState(e,t)}updateSubscriptions(){for(const e of this.remoteParticipants.values())for(const t of e.videoTrackPublications.values())t.isSubscribed&&t instanceof Qo&&t.emitTrackUpdate()}getRemoteParticipantBySid(e){const t=this.sidToIdentity.get(e);if(t)return this.remoteParticipants.get(t)}registerConnectionReconcile(){this.clearConnectionReconcile();let e=0;this.connectionReconcileInterval=Ee.setInterval(()=>{!this.engine||this.engine.isClosed||!this.engine.verifyTransport()?(e++,this.log.warn("detected connection state mismatch",Object.assign(Object.assign({},this.logContext),{numFailures:e,engine:this.engine?{closed:this.engine.isClosed,transportsConnected:this.engine.verifyTransport()}:void 0})),e>=3&&(this.recreateEngine(),this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,ze.STATE_MISMATCH))):e=0},af)}clearConnectionReconcile(){this.connectionReconcileInterval&&Ee.clearInterval(this.connectionReconcileInterval)}setAndEmitConnectionState(e){return e===this.state?!1:(this.state=e,this.emit(D.ConnectionStateChanged,this.state),!0)}emitBufferedEvents(){this.bufferedEvents.forEach(e=>{let[t,i]=e;this.emit(t,...i)}),this.bufferedEvents=[]}emitWhenConnected(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),s=1;sthis.logContext}),{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext});this.localParticipant.addTrackPublication(a),this.localParticipant.emit(L.LocalTrackPublished,a)}if(s.audio){const a=new $i(E.Kind.Audio,new Ut({source:Re.MICROPHONE,sid:Math.floor(Math.random()*1e4).toString(),type:Ge.AUDIO}),new Se(s.useRealTracks?(yield navigator.mediaDevices.getUserMedia({audio:!0})).getAudioTracks()[0]:In(),void 0,!1,this.audioContext,{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext}),{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext});this.localParticipant.addTrackPublication(a),this.localParticipant.emit(L.LocalTrackPublished,a)}for(let a=0;a1?t-1:0),s=1;sa!==void 0);this.log.debug("room event ".concat(e),Object.assign(Object.assign({},this.logContext),{event:e,args:r}))}return super.emit(e,...i)}}function Xo(n){return n.map(e=>{if(e)return Array.isArray(e)?Xo(e):typeof e=="object"?"logContext"in e&&e.logContext:e})}var Ke;(function(n){n[n.IDLE=0]="IDLE",n[n.RUNNING=1]="RUNNING",n[n.SKIPPED=2]="SKIPPED",n[n.SUCCESS=3]="SUCCESS",n[n.FAILED=4]="FAILED"})(Ke||(Ke={}));class Ht extends nt.EventEmitter{constructor(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};super(),this.status=Ke.IDLE,this.logs=[],this.errorsAsWarnings=!1,this.url=e,this.token=t,this.name=this.constructor.name,this.room=new Yo(i.roomOptions),this.connectOptions=i.connectOptions,i.errorsAsWarnings&&(this.errorsAsWarnings=i.errorsAsWarnings)}run(e){return g(this,void 0,void 0,function*(){if(this.status!==Ke.IDLE)throw Error("check is running already");this.setStatus(Ke.RUNNING);try{yield this.perform()}catch(t){t instanceof Error&&(this.errorsAsWarnings?this.appendWarning(t.message):this.appendError(t.message))}return yield this.disconnect(),yield new Promise(t=>setTimeout(t,500)),this.status!==Ke.SKIPPED&&this.setStatus(this.isSuccess()?Ke.SUCCESS:Ke.FAILED),e&&e(),this.getInfo()})}isSuccess(){return!this.logs.some(e=>e.level==="error")}connect(){return g(this,void 0,void 0,function*(){return this.room.state===ie.Connected?this.room:(yield this.room.connect(this.url,this.token,this.connectOptions),this.room)})}disconnect(){return g(this,void 0,void 0,function*(){this.room&&this.room.state!==ie.Disconnected&&(yield this.room.disconnect(),yield new Promise(e=>setTimeout(e,500)))})}skip(){this.setStatus(Ke.SKIPPED)}appendMessage(e){this.logs.push({level:"info",message:e}),this.emit("update",this.getInfo())}appendWarning(e){this.logs.push({level:"warning",message:e}),this.emit("update",this.getInfo())}appendError(e){this.logs.push({level:"error",message:e}),this.emit("update",this.getInfo())}setStatus(e){this.status=e,this.emit("update",this.getInfo())}get engine(){var e;return(e=this.room)===null||e===void 0?void 0:e.engine}getInfo(){return{logs:this.logs,name:this.name,status:this.status,description:this.description}}}function Zo(n){return g(this,void 0,void 0,function*(){var e,t;n??(n={}),(e=n.audio)!==null&&e!==void 0||(n.audio=!0),(t=n.video)!==null&&t!==void 0||(n.video=!0);const{audioProcessor:i,videoProcessor:s}=Cs(n),r=Lo(n,Ko,Go),a=nn(r),o=navigator.mediaDevices.getUserMedia(a);n.audio&&(Pe.userMediaPromiseMap.set("audioinput",o),o.catch(()=>Pe.userMediaPromiseMap.delete("audioinput"))),n.video&&(Pe.userMediaPromiseMap.set("videoinput",o),o.catch(()=>Pe.userMediaPromiseMap.delete("videoinput")));const c=yield o;return Promise.all(c.getTracks().map(l=>g(this,void 0,void 0,function*(){const d=l.kind==="audio";d?r.audio:r.video;let f;const p=d?a.audio:a.video;typeof p!="boolean"&&(f=p),f?f.deviceId=l.getSettings().deviceId:f={deviceId:l.getSettings().deviceId};const m=Wo(l,f);return m.kind===E.Kind.Video?m.source=E.Source.Camera:m.kind===E.Kind.Audio&&(m.source=E.Source.Microphone),m.mediaStream=c,m instanceof Se&&i?yield m.setProcessor(i):m instanceof we&&s&&(yield m.setProcessor(s)),m})))})}function of(n){return g(this,void 0,void 0,function*(){return(yield Zo({audio:!1,video:n}))[0]})}function cf(n){return g(this,void 0,void 0,function*(){return(yield Zo({audio:n,video:!1}))[0]})}class lf extends Ht{get description(){return"Can publish audio"}perform(){return g(this,void 0,void 0,function*(){var e;const t=yield this.connect(),i=yield cf();t.localParticipant.publishTrack(i),yield new Promise(a=>setTimeout(a,3e3));const s=yield(e=i.sender)===null||e===void 0?void 0:e.getStats();if(!s)throw new Error("Could not get RTCStats");let r=0;if(s.forEach(a=>{a.type==="outbound-rtp"&&(a.kind==="audio"||!a.kind&&a.mediaType==="audio")&&(r=a.packetsSent)}),r===0)throw new Error("Could not determine packets are sent");this.appendMessage("published ".concat(r," audio packets"))})}}class df extends Ht{get description(){return"Can publish video"}perform(){return g(this,void 0,void 0,function*(){var e;const t=yield this.connect(),i=yield of();t.localParticipant.publishTrack(i),yield new Promise(a=>setTimeout(a,5e3));const s=yield(e=i.sender)===null||e===void 0?void 0:e.getStats();if(!s)throw new Error("Could not get RTCStats");let r=0;if(s.forEach(a=>{a.type==="outbound-rtp"&&(a.kind==="video"||!a.kind&&a.mediaType==="video")&&(r+=a.packetsSent)}),r===0)throw new Error("Could not determine packets are sent");this.appendMessage("published ".concat(r," video packets"))})}}class uf extends Ht{get description(){return"Resuming connection after interruption"}perform(){return g(this,void 0,void 0,function*(){var e;const t=yield this.connect();let i=!1,s=!1,r;const a=new Promise(l=>{setTimeout(l,5e3),r=l}),o=()=>{i=!0};t.on(D.SignalReconnecting,o).on(D.Reconnecting,o).on(D.Reconnected,()=>{s=!0,r(!0)}),(e=t.engine.client.ws)===null||e===void 0||e.close();const c=t.engine.client.onClose;if(c&&c(""),yield a,i){if(!s||t.state!==ie.Connected)throw this.appendWarning("reconnection is only possible in Redis-based configurations"),new Error("Not able to reconnect")}else throw new Error("Did not attempt to reconnect")})}}class hf extends Ht{get description(){return"Can connect via TURN"}perform(){return g(this,void 0,void 0,function*(){var e,t;const i=new Ss,s=yield i.join(this.url,this.token,{autoSubscribe:!0,maxRetries:0,e2eeEnabled:!1,websocketTimeout:15e3});let r=!1,a=!1,o=!1;for(let c of s.iceServers)for(let l of c.urls)l.startsWith("turn:")?(a=!0,o=!0):l.startsWith("turns:")&&(a=!0,o=!0,r=!0),l.startsWith("stun:")&&(o=!0);o?a&&!r&&this.appendWarning("TURN is configured server side, but TURN/TLS is unavailable."):this.appendWarning("No STUN servers configured on server side."),yield i.close(),!((t=(e=this.connectOptions)===null||e===void 0?void 0:e.rtcConfig)===null||t===void 0)&&t.iceServers||a?yield this.room.connect(this.url,this.token,{rtcConfig:{iceTransportPolicy:"relay"}}):(this.appendWarning("No TURN servers configured."),this.skip(),yield new Promise(c=>setTimeout(c,0)))})}}class ff extends Ht{get description(){return"Establishing WebRTC connection"}perform(){return g(this,void 0,void 0,function*(){let e=!1,t=!1;this.room.on(D.SignalConnected,()=>{const i=this.room.engine.client.onTrickle;this.room.engine.client.onTrickle=(s,r)=>{if(s.candidate){const a=new RTCIceCandidate(s);let o="".concat(a.protocol," ").concat(a.address,":").concat(a.port," ").concat(a.type);a.address&&(pf(a.address)?o+=" (private)":a.protocol==="tcp"&&a.tcpType==="passive"?(e=!0,o+=" (passive)"):a.protocol==="udp"&&(t=!0)),this.appendMessage(o)}i&&i(s,r)},this.room.engine.pcManager&&(this.room.engine.pcManager.subscriber.onIceCandidateError=s=>{s instanceof RTCPeerConnectionIceErrorEvent&&this.appendWarning("error with ICE candidate: ".concat(s.errorCode," ").concat(s.errorText," ").concat(s.url))})});try{yield this.connect(),Z.info("now the room is connected")}catch(i){throw this.appendWarning("ports need to be open on firewall in order to connect."),i}e||this.appendWarning("Server is not configured for ICE/TCP"),t||this.appendWarning("No public IPv4 UDP candidates were found. Your server is likely not configured correctly")})}}function pf(n){const e=n.split(".");if(e.length===4){if(e[0]==="10")return!0;if(e[0]==="192"&&e[1]==="168")return!0;if(e[0]==="172"){const t=parseInt(e[1],10);if(t>=16&&t<=31)return!0}}return!1}class mf extends Ht{get description(){return"Connecting to signal connection via WebSocket"}perform(){return g(this,void 0,void 0,function*(){var e,t,i;(this.url.startsWith("ws:")||this.url.startsWith("http:"))&&this.appendWarning("Server is insecure, clients may block connections to it");let s=new Ss;const r=yield s.join(this.url,this.token,{autoSubscribe:!0,maxRetries:0,e2eeEnabled:!1,websocketTimeout:15e3});this.appendMessage("Connected to server, version ".concat(r.serverVersion,".")),((e=r.serverInfo)===null||e===void 0?void 0:e.edition)===qa.Cloud&&(!((t=r.serverInfo)===null||t===void 0)&&t.region)&&this.appendMessage("LiveKit Cloud: ".concat((i=r.serverInfo)===null||i===void 0?void 0:i.region)),yield s.close()})}}class nm extends nt.EventEmitter{constructor(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};super(),this.options={},this.checkResults=new Map,this.url=e,this.token=t,this.options=i}getNextCheckId(){const e=this.checkResults.size;return this.checkResults.set(e,{logs:[],status:Ke.IDLE,name:"",description:""}),e}updateCheck(e,t){this.checkResults.set(e,t),this.emit("checkUpdate",e,t)}isSuccess(){return Array.from(this.checkResults.values()).every(e=>e.status!==Ke.FAILED)}getResults(){return Array.from(this.checkResults.values())}createAndRunCheck(e){return g(this,void 0,void 0,function*(){const t=this.getNextCheckId(),i=new e(this.url,this.token,this.options),s=a=>{this.updateCheck(t,a)};i.on("update",s);const r=yield i.run();return i.off("update",s),r})}checkWebsocket(){return g(this,void 0,void 0,function*(){return this.createAndRunCheck(mf)})}checkWebRTC(){return g(this,void 0,void 0,function*(){return this.createAndRunCheck(ff)})}checkTURN(){return g(this,void 0,void 0,function*(){return this.createAndRunCheck(hf)})}checkReconnect(){return g(this,void 0,void 0,function*(){return this.createAndRunCheck(uf)})}checkPublishAudio(){return g(this,void 0,void 0,function*(){return this.createAndRunCheck(lf)})}checkPublishVideo(){return g(this,void 0,void 0,function*(){return this.createAndRunCheck(df)})}}function si(n,e){switch(n.name){case"NotAllowedError":U.error(`用户拒绝了权限请求,请允许此网站使用${e}权限`);break;case"NotFoundError":U.error(`未检测到可用的${e}设备,请检查${e}是否已正确连接`);break;case"NotSupportedError":U.error(`当前浏览器不支持${e}功能,请使用现代浏览器如Chrome、Firefox或Edge`);break;case"NotReadableError":U.error(`${e}设备正被其他应用程序占用,请关闭其他使用${e}的应用后重试`);break;case"OverconstrainedError":U.error(`${e}配置不兼容,请尝试调整${e}设置`);break;default:U.error("服务错误,请刷新重试")}}function gf(n,e,t){try{const s=new TextDecoder().decode(n);U.info(`收到消息 from ${e.identity}: ${s}`)}catch(i){console.error("处理接收消息失败:",i)}}function vf(){U.success("已重新连接到房间")}function wi(n,e){const t=n.find(i=>i.deviceId===e);return t&&t.label||"未知设备"}function bf(n,e){}function yf(n){}async function kf(n){const e=await n.arrayBuffer(),t=await crypto.subtle.digest("SHA-1",e);return Array.from(new Uint8Array(t)).map(r=>r.toString(16).padStart(2,"0")).join("")}function ca(n,e){return JSON.stringify(n)===JSON.stringify(e)}function la(){return`laser_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}const Tf={class:"wrapper-content"},Cf={class:"login-form"},Sf={key:0},Pf={key:1},Ef={__name:"index",emits:["loginSuccess"],setup(n,{emit:e}){const t=da();fa();const{proxy:i}=ua();F(void 0);const s=e,r=Dl(),a=F({username:"",password:""}),o={username:[{required:!0,trigger:"blur",message:"请输入用户名"}],password:[{required:!0,trigger:"blur",message:"请输入密码"}]},c=F(!1);function l(){i.$refs.loginRef.validate(p=>{if(p){if(c.value=!0,!(localStorage!=null&&localStorage.getItem("UDID"))){ElMessage({message:"服务错误,请刷新页面",type:"warning"});return}const m=(a.value.username+(localStorage==null?void 0:localStorage.getItem("UDID"))).toLowerCase().replaceAll("-",""),C=`Gx${d(6)}${a.value.password}`,_=Jl.Blowfish.encrypt(C,m).toString();t.login({password:_,username:a.value.username}).then(async b=>{const G=JSON.parse(sessionStorage.getItem("userData"));s("loginSuccess",G)}).catch(b=>{console.log("登录失败",b),c.value=!1})}}),f()}function d(p){const m="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let y="";for(let C=0;C{}):console.log("浏览器不支持通知")}return ha(()=>{r.initUdid()}),(p,m)=>{const y=oe("el-input"),C=oe("el-form-item"),_=oe("el-button"),b=oe("el-form");return $(),Y("div",Tf,[x("div",Cf,[m[3]||(m[3]=x("div",{class:"selected-rectangle"},null,-1)),z(b,{ref:"loginRef",class:"form-info",model:a.value,rules:o},{default:Q(()=>[m[2]||(m[2]=x("h3",{class:"title"},"欢迎登录",-1)),z(C,{prop:"username"},{default:Q(()=>[z(y,{modelValue:a.value.username,"onUpdate:modelValue":m[0]||(m[0]=G=>a.value.username=G),"auto-complete":"off",placeholder:"请输入您的账号",size:"large",type:"text"},null,8,["modelValue"])]),_:1}),z(C,{prop:"password"},{default:Q(()=>[z(y,{modelValue:a.value.password,"onUpdate:modelValue":m[1]||(m[1]=G=>a.value.password=G),"auto-complete":"off",placeholder:"请输入密码",size:"large",type:"password",onKeyup:Ml(l,["enter"])},null,8,["modelValue"])]),_:1}),z(C,null,{default:Q(()=>[z(_,{loading:c.value,size:"large",class:"button-login",type:"primary",onClick:xl(l,["prevent"])},{default:Q(()=>[c.value?($(),Y("span",Pf,"登录中...")):($(),Y("span",Sf,"登 录"))]),_:1},8,["loading"])]),_:1})]),_:1},8,["model"])])])}}},_f=Yi(Ef,[["__scopeId","data-v-aa0dd888"]]),wf={class:"drawer-content"},Rf={class:"search-section"},If={key:0,class:"selected-section"},Of={class:"selected-header"},Df={class:"selected-tags"},Mf={class:"tree-item"},xf={class:"tree-item-content"},Af={key:0,class:"user-icon"},Nf={key:1,class:"dept-icon"},Lf={class:"tree-item-text"},Uf={key:2,class:"user-count"},Ff={class:"footer-actions"},jf={__name:"index",props:{loading:{type:Boolean,default:!0}},emits:["confirmSelection"],setup(n,{expose:e,emit:t}){const i=t,s=F(!1),r=F(),a=F(""),o=F([]),c=F([]),l=F(!1),d=F([]),f=Ri({children:"users",label:"name",value:"uid",disabled:S=>S.uid&&d.value.includes(S.uid),isLeaf:S=>!!S.uid});async function p(S){s.value=!0,o.value=[],c.value=[],a.value="";try{const I=await Al(S);d.value=I.data.filter(M=>M.status==1).map(M=>M.user_uid)}catch(I){console.error("获取房间参与者失败:",I),d.value=[]}Ve(()=>{r.value&&r.value.setCheckedKeys([])})}function m(){o.value.length>0&&(i("confirmSelection",o.value),s.value=!1)}function y(){s.value=!1}const C=async(S,I)=>{(S==null?void 0:S.level)===0?_(I,"",S==null?void 0:S.level):(S==null?void 0:S.level)>0&&(S.data.directory_uid?b(I,S.data.directory_uid,S==null?void 0:S.level):I(I))},_=async(S,I)=>{try{l.value=!0;let M=await sr({level:1});M.meta.code==200&&S(M.data),l.value=!1}catch(M){console.log(M),l.value=!1}},b=async(S,I,M)=>{try{l.value=!0;let A=[],q=[];const B=await sr({level:1,parent_uuid:I});B!=null&&B.data&&(q=B.data),I&&(A=(await Gl(I,{directory_uuid:I})).data),S([...q,...A]),l.value=!1}catch(A){console.log(A),l.value=!1}},G=(S,I)=>{r.value.getCheckedKeys(),r.value.getHalfCheckedKeys();const M=r.value.getCheckedNodes(!1,!0),A=M.filter(q=>q.uid&&!d.value.includes(q.uid));o.value=A,c.value=M},W=S=>{const I=o.value.findIndex(M=>M.uid===S.uid);I!==-1&&o.value.splice(I,1),r.value&&r.value.setChecked(S.uid,!1,!1)},P=()=>{o.value=[],c.value=[],r.value&&r.value.setCheckedKeys([])},k=()=>{r.value&&r.value.filter(a.value)},w=(S,I)=>S?I.name&&I.name.toLowerCase().includes(S.toLowerCase()):!0;return e({show:p,getSelectedUsers:()=>o.value}),(S,I)=>{const M=oe("el-input"),A=oe("el-button"),q=oe("el-tag"),B=oe("el-tree"),K=oe("el-scrollbar"),ve=oe("el-drawer"),De=ma("loading");return $(),Fe(ve,{modelValue:s.value,"onUpdate:modelValue":I[1]||(I[1]=_e=>s.value=_e),direction:"rtl",title:"请选择要加入房间的人员",size:"40%"},{header:Q(()=>[...I[2]||(I[2]=[x("h4",null,"请选择要加入房间的人员",-1)])]),footer:Q(()=>[x("div",Ff,[z(A,{onClick:y},{default:Q(()=>[...I[4]||(I[4]=[he("取 消",-1)])]),_:1}),z(A,{type:"primary",onClick:m,disabled:o.value.length===0},{default:Q(()=>[he(" 确 定 ("+le(o.value.length)+") ",1)]),_:1},8,["disabled"])])]),default:Q(()=>[x("div",wf,[x("div",Rf,[z(M,{modelValue:a.value,"onUpdate:modelValue":I[0]||(I[0]=_e=>a.value=_e),placeholder:"搜索人员或部门",clearable:"","prefix-icon":"Search",onInput:k},null,8,["modelValue"])]),o.value.length>0?($(),Y("div",If,[x("div",Of,[x("span",null,"已选择 ("+le(o.value.length)+")",1),z(A,{type:"text",onClick:P},{default:Q(()=>[...I[3]||(I[3]=[he("清空",-1)])]),_:1})]),x("div",Df,[($(!0),Y(ai,null,oi(o.value,_e=>($(),Fe(q,{key:_e.uid,closable:"",onClose:st=>W(_e),class:"selected-tag"},{default:Q(()=>[he(le(_e.name),1)]),_:2},1032,["onClose"]))),128))])])):ue("",!0),pa(($(),Fe(K,{class:"left-list-scrollbar",height:"calc(100vh - 240px)"},{default:Q(()=>[z(B,{ref_key:"treeRef",ref:r,lazy:"",load:C,props:f,"node-key":"uid","show-checkbox":"","default-expand-all":!1,"expand-on-click-node":!1,"check-strictly":!1,"filter-node-method":w,onCheck:G,style:{width:"100%"}},{default:Q(({node:_e,data:st})=>[x("div",Mf,[x("div",xf,[st.uid?($(),Y("span",Af,"👤")):($(),Y("span",Nf,"📁")),x("span",Lf,le(st.name),1),st.users_count?($(),Y("span",Uf,"("+le(st.users_count)+")",1)):ue("",!0)])])]),_:1},8,["props"])]),_:1})),[[De,l.value]])])]),_:1},8,["modelValue"])}}},Bf=Yi(jf,[["__scopeId","data-v-082d2e76"]]),Vf={style:{"margin-top":"20px"}},qf={style:{color:"#f56c6c"}},Kf={__name:"upLoadFile",props:{fileType:{type:Array,default:()=>["pdf","png","jpg","jpeg","gif","doc","docx","xls","xlsx","ppt","pptx"]},roomId:{type:String,default:""}},emits:["upload-success"],setup(n,{expose:e,emit:t}){const i=n,s=t,{proxy:r}=ua(),a=F(!1),o=F(""),c=F([]);F([]);const l=F(null);F(!0),F(!1);const d=F(""),f=F(""),p=F(null),m=F(!1),y=F(),C=F(""),_=Ie(()=>i.fileType.map(M=>`.${M}`).join(", "));ot.on("subscribeToFileUploadTopic",b);function b(M){try{y.value=M.roomId;const A=`xsynergy/room/${M.roomId}/file/upload`;Ce.subscribe(A,G)}catch(A){console.error("订阅文件上传事件失败:",A)}}function G(M,A){try{const q=M.toString(),B=JSON.parse(q);ot.emit("fileUploadStatus",B),s("upload-success")}catch(q){console.error("文件长传状态消息失败:",q)}}const W=async M=>{if(m.value)return U.warning("文件正在上传中,请稍候..."),!1;const A=M.name.toLowerCase().slice((M.name.lastIndexOf(".")-1>>>0)+2);if(!i.fileType.includes(A))return U.error(`文件格式不支持,请上传 ${_.value} 格式的文件`),!1;if(!(M.size/1024/1024<50))return U.error("上传文件大小不能超过 50 MB!"),!1;m.value=!0;try{p.value=M;const B=await kf(M),K=await Nl({service:i.roomId,hash:B,ext:A});if(K.meta.code!=200)return U.error(K.meta.msg),m.value=!1,!1;K.data.exists?(f.value=K.data.fileUrl,U.info("文件已存在,无需重复上传"),m.value=!1):(d.value=K.data.token,await P(M))}catch(B){return console.error("上传过程出错:",B),U.error("上传过程出错,请重试"),m.value=!1,!1}return!1},P=async M=>{if(!d.value)return U.error("上传凭证不存在"),m.value=!1,!1;let A=new FormData;A.append("file",M);try{const q=await Ll(d.value,A);return q.meta.code!=200?(U.error(q.meta.msg),m.value=!1,!1):(f.value=q.data.fileUrl,k(q.data.fileUrl),U.success("文件上传成功"),m.value=!1,a.value=!1,ot.emit("fileSuccess"),!0)}catch(q){return console.error("上传文件失败:",q),U.error("上传文件失败"),m.value=!1,!1}};async function k(M){try{const A=await Ul({file_url:M},i.roomId);if(A.meta.code!==200)throw new Error(A.meta.msg||"文件转换失败")}catch{U.error("文件转换失败")}}const w=()=>{o.value="上传文件",a.value=!0,C.value=JSON.parse(sessionStorage.getItem("userData"))},S=()=>{c.value=[],p.value=null,d.value="",f.value="",m.value=!1,a.value=!1};return e({showEdit:w,close:S,save:()=>{S()}}),(M,A)=>{const q=oe("el-button"),B=oe("el-upload"),K=oe("el-dialog");return $(),Y("div",null,[z(K,{modelValue:a.value,"onUpdate:modelValue":A[0]||(A[0]=ve=>a.value=ve),title:o.value,width:"403px",onClose:S},{default:Q(()=>[z(B,{ref_key:"uploadRef",ref:l,accept:_.value,"show-file-list":!1,limit:999,style:{width:"100%","text-align":"center"},"before-upload":W},{trigger:Q(()=>[z(q,{type:"primary",class:"el-button-custom-css blue-css",loading:m.value,disabled:m.value},{default:Q(()=>[he(le(m.value?"上传中...":"上传文件"),1)]),_:1},8,["loading","disabled"])]),_:1},8,["accept"]),x("div",Vf,[A[1]||(A[1]=he(" 请上传格式为: ",-1)),x("b",qf,le(_.value),1),A[2]||(A[2]=he(" 的文件 ",-1))])]),_:1},8,["modelValue","title"])])}}},Gf="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAxdJREFUaEPtWUtrE1EYPV9Co5UMiBUfuPItQmo7d0J/gzsR3JTiQnThThHqrqUtIiLizoWi6EYXrvwDkp0i84U0lQo+wQfqSrHR1Ewy105pSyiZuXPjXNpoZnvPPfec78zj3vkIMS7HcY76vn+BiI4A2BhjihLCzNYySAjxDsCjWq02MTMz8005uQlAKrAQ4hqA8wCUWBVX8zgzr/AJIX4DyAB4T0QnXNd9FpcrUpQQYmxB+ERcMh1ciIGAYp6ITrmu+yAOX6iBwcHBw6lUqgwgHYdIFxNhIKCSUsqLxWLxqoo31IAQ4iaAMyqCdscVBpZpJ5l5PGqNKAOvAextV6BqXkwDAc04M0+G8UUZ+AFg5U2hEqQ7bllWb6FQmA/m2bb9kYh2hXBIACPMfL/VeJSBOQBZXWFx8USUc133eYAXQtwAcDZi7hdm3rmuDEgpR5cfUiHEVgCPARwMM+F53pZyufxz9fiaJQDgA4BDzPwrbmrrKoElMQ8tyxouFAr1dk2sZQKLmqWUTwBM+r7/tFQqfdc1suYG4gquVqvW7OxsZT09A3G1L+K6BrTKZQDcTcBAUbUok0zAI6IJKeUdZv6spSIEPDQ0tL1er49IKS8R0YZWsCQNTDFzcNBJ/LJte5SIrhg10Gg0DpRKpVeJqweQz+d3+L7fMtUkE9jHzG9MGOjv79/W09Pz1WgCAMaYecqEAcdxzkkpr5s2UAtOSQDuJfUQB5XPZDLDUsrLYb9tkryFTBRfydk1oCyRYUA3AcMFVtJ3E2gqUce/Rjv+Q9bZW4l/YTPX2dtpAB1/oFG+s00A/svvgNH+gG5K7STwdmHPv1t3IUP4BjMHh/3Gav6of6O3AJw2JEiX9iUzt+wdhBoYGBjYn06nSwA26a5mAB/69Y/sEzuOc1JKeTfpJremwRcAnLBGiLL7btv2CBEFLddezYX/Gk5Erud5x6anpz+FkSkNBBPz+fwe3/eDg/xxk42/JZENKWUxlUrdXvr750VVIpaBJgLK5XKbs9ms7rxYaVQqFdnX1zen03IyIiSW2oRAHW/gD2/2A0+EZnI9AAAAAElFTkSuQmCC",Wf={class:"drawer-content"},zf={class:"upload-section"},Hf={class:"file-list"},Jf={class:"file-info"},$f={class:"file-icon"},Qf=["src"],Yf={class:"file-details"},Xf=["title"],Zf={class:"file-actions"},ep={key:0,class:"empty-state"},tp={__name:"fileList",props:{roomId:{type:String,default:""}},emits:[""],setup(n,{expose:e,emit:t}){const i=n;ot.on("fileUploadStatus",async()=>{s.value&&await y()});const s=F(!1),r=F([]),a=F(!1),o=F(null),c=F(null);function l(_){return Gf}function d(_){try{const b=document.createElement("iframe");b.style.display="none",b.src=_.source_url,document.body.appendChild(b),setTimeout(()=>{document.body.removeChild(b)},5e3),U.success("开始下载文件")}catch(b){console.error("iframe下载失败:",b),U.error("下载失败,请检查浏览器设置")}}function f(_){if(!_.preview_url){U.error("文件链接无效");return}c.value.showEdit(_)}function p(){o.value.showEdit()}async function m(){s.value=!0,await y()}async function y(){a.value=!0;try{const _=await Fl(i.roomId);if(_.meta.code!==200){U.error(_.meta.msg);return}r.value=_.data.files||[]}catch{U.error("获取文件列表失败")}finally{a.value=!1}}async function C(){s.value&&await y()}return e({show:m}),(_,b)=>{const G=oe("el-icon"),W=oe("el-button"),P=oe("el-empty"),k=oe("el-drawer"),w=ma("loading");return $(),Y("div",null,[z(k,{modelValue:s.value,"onUpdate:modelValue":b[0]||(b[0]=S=>s.value=S),direction:"rtl",title:"文件列表",size:"40%"},{header:Q(()=>[...b[1]||(b[1]=[x("h4",null,"文件列表",-1)])]),default:Q(()=>[x("div",Wf,[x("div",zf,[z(W,{type:"primary",size:"small",onClick:p},{default:Q(()=>[z(G,null,{default:Q(()=>[z(gt(jl))]),_:1}),b[2]||(b[2]=he(" 上传文件 ",-1))]),_:1})]),pa(($(),Y("div",Hf,[($(!0),Y(ai,null,oi(r.value,S=>($(),Y("div",{key:S.id||S.fileKey,class:"file-item"},[x("div",Jf,[x("div",$f,[x("img",{src:l(S.file_name),alt:"文件图标",class:"file-icon-img"},null,8,Qf)]),x("div",Yf,[x("div",{class:"file-name",title:S.file_name},le(S.file_name),9,Xf)])]),x("div",Zf,[z(W,{type:"primary",size:"small",disabled:!S.preview_url,onClick:I=>f(S)},{default:Q(()=>[...b[3]||(b[3]=[he("预览",-1)])]),_:2},1032,["disabled","onClick"]),z(W,{type:"success",size:"small",onClick:I=>d(S)},{default:Q(()=>[...b[4]||(b[4]=[he("下载",-1)])]),_:2},1032,["onClick"])])]))),128)),r.value.length===0?($(),Y("div",ep,[z(P,{description:"暂无文件"})])):ue("",!0)])),[[w,a.value]])])]),_:1},8,["modelValue"]),z(Kf,{ref_key:"uploadRef",ref:o,fileType:["pdf","png","jpg","jpeg","gif","doc","docx","xls","xlsx","ppt","pptx","txt","mp4","mp3"],roomId:n.roomId,onUploadSuccess:C},null,8,["roomId"]),z(Wl,{ref_key:"browseFileRef",ref:c,roomId:n.roomId},null,8,["roomId"])])}}},ip=Yi(tp,[["__scopeId","data-v-071490ec"]]),np={key:0},sp={key:1},rp={key:0,class:"loading-container"},ap={class:"loading-content"},op={class:"livekit-container"},cp={key:0,class:"meeting-container"},lp={key:0,class:"screen-share-area"},dp={class:"screen-share-header"},up={key:0,class:"sharing-user"},hp={class:"screen-share-video"},fp={class:"content-layers-container"},pp={key:0,class:"enlarged-video-container"},mp={class:"video-wrapper enlarged-video-wrapper"},gp={key:2,class:"video-placeholder"},vp={class:"video-overlay"},bp={class:"participant-name"},yp={key:0,class:"laser-pointer-indicator"},kp={key:1,class:"video-wrapper screen-share-wrapper"},Tp={class:"video-tracks"},Cp={key:1,class:"video-placeholder"},Sp={class:"video-overlay"},Pp={class:"participant-name"},Ep={key:0,class:"laser-pointer-indicator"},_p={class:"participants-header"},wp={class:"participant-header"},Rp={class:"status-indicator"},Ip={key:0,class:"participant-actions"},Op={class:"video-wrapper"},Dp={class:"video-overlay"},Mp={class:"participant-name"},xp={key:0,class:"video-placeholder"},Ap={class:"participant-header"},Np={class:"status-indicator"},Lp={class:"video-wrapper"},Up={class:"video-tracks"},Fp=["onLoadedmetadata"],jp={key:1,class:"video-placeholder"},Bp={class:"video-overlay"},Vp={class:"participant-name"},qp={class:"fixed-controls"},Kp={class:"controls-container"},Gp={class:"microphone-control-group"},Wp={class:"microphone-control-group"},zp={key:0},Hp={key:1},Jp={key:2},$p="wss://meeting.cnsdt.com:443",Qp={__name:"index",setup(n){da(),zl();const e=ql(),t=fa(),i=F(""),s=F(!0),r=F(""),a=F(""),o=F(null),c=F(null),l=F(!1),d=F(!1),f=F(!1),p=F(!1),m=F([]),y=F([]),C=F(""),_=F(""),b=F(new Map),G=F(new Map),W=F(new Map),P=F(""),k=F(null),w=F(null),S=F(""),I=F(!1),M=F(!1),A=F(null);F(!1),F("");const q=F(),B=F(!1),K=F(null),ve=F(null),De=F(new Map),_e=F(new Map),st=F(null),Me=F(null),_s=F(null),ws=F(),Rs=F(!1),Is=F(!1),Os=F(!1),Ds=F(!1),rn=F(!1),V=F(null),an=F(null),X=F(null),Be=F(null),rt=F(""),on=F(!1),$e=Ri({isDrawing:!1,startX:0,startY:0}),Qe=Ri({isDrawing:!1,startX:0,startY:0}),ke=Ri({color:"#ff0000",thickness:3,duration:2e3,fadeDuration:300}),ft={OPEN:"open_whiteboard",CLOSE:"close_whiteboard",SYNC:"sync_whiteboard",ACTIVATE_LAYER:"activate_layer"},cn={DRAW:"laser_draw",CLEAR:"laser_clear"},Jt={ENLARGE:"enlarge_video",SHRINK:"shrink_video"},Ms=Ie(()=>St.value||M.value),St=Ie(()=>Ue.value||V.value),xs=Ie(()=>St.value&&rt.value==="screenVideo"),As=Ie(()=>M.value&&rt.value==="whiteboard"),ec=Ie(()=>St.value&&xs.value?V.value?V.value.identity===i.value?"我的放大视频":`放大视图 - ${V.value.identity}`:"共享屏幕":M.value&&As.value?"共享白板":St.value?V.value?"放大视频":"共享屏幕":M.value?"共享白板":"共享内容"),vi=Ie(()=>b.value.size+1),tc=Ie(()=>Array.from(b.value.values())),Ue=Ie(()=>P.value!==""||f.value),Ns=Ie(()=>l.value||Ue.value||V.value),ic=Ie(()=>!Ue.value),nc=Ie(()=>!V.value);Ie(()=>!0),Ie(()=>I.value?S.value===i.value?"您正在共享屏幕":`${S.value} 正在共享屏幕`:"暂无屏幕共享");const H=new Yo({adaptiveStream:!0,dynacast:!0,audioCaptureDefaults:{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0},videoCaptureDefaults:{resolution:{width:1280,height:720}},publishDefaults:{screenShareEncoding:{maxBitrate:3e6,maxFramerate:30},videoEncoding:{maxBitrate:25e5,maxFramerate:30},audioEncoding:{maxBitrate:64e3},red:!0}});ot.on("whiteboardFailed",ac);function xe(u,h=!0){rt.value,rt.value=u,h&&sc(u)}function sc(u){try{const h={type:ft.ACTIVATE_LAYER,roomId:a.value,sender:i.value,senderName:i.value,timestamp:Date.now(),payload:{layerType:u,hasScreenShare:Ue.value,hasEnlargedVideo:!!V.value,hasWhiteboard:M.value}};Ce.publish(`xSynergy/shareWhiteboard/${H.name}`,h)}catch(h){console.error("发布图层激活消息失败:",h)}}function rc(){rn.value=!1}function ac(u){rn.value=u}function oc(u){if(u.identity!==i.value){U.warning("只能放大自己的视频");return}if(vi.value<=1){U.warning("需要至少2名参与者才能使用放大功能");return}if(!l.value){U.warning("请先打开摄像头");return}f.value&&(H.localParticipant.setScreenShareEnabled(!1),f.value=!1,U.info("已自动停止屏幕共享,开启视频放大模式")),V.value&&V.value.identity!==i.value&&Dt(),V.value=u,xe("screenVideo",!0),U.success("已放大您的视频"),hn(Jt.ENLARGE,{participant:{identity:u.identity,hasCameraTrack:u.hasCameraTrack,audioEnabled:u.audioEnabled}}),Ve(()=>{Mt()})}function Dt(){B.value&&(B.value=!1,Qt(),X.value&&(X.value.style.pointerEvents="none",X.value.style.cursor="default"),K.value&&(K.value.style.pointerEvents="none",K.value.style.cursor="default")),V.value&&V.value.identity===i.value&&hn(Jt.SHRINK,{participant:{identity:i.value}}),V.value=null,U.info("已关闭放大视图"),dn()}function cc(u){if(u&&(an.value=u,V.value))if(V.value.identity===i.value)o.value&&o.value.srcObject&&(u.srcObject=o.value.srcObject);else{const h=b.value.get(V.value.identity);h&&h.cameraTrack&&pt(u,h.cameraTrack)}}function lc(){Mt()}function Mt(){if(!X.value||!V.value)return;const u=document.querySelector(".enlarged-video-element");u&&(ln(u),Be.value=X.value.getContext("2d"),X.value.style.position="absolute",X.value.style.top="0",X.value.style.left="0",X.value.style.zIndex="10",X.value.style.cursor=B.value?"crosshair":"default",X.value.style.pointerEvents=B.value?"auto":"none",hc(u))}function ln(u){if(!X.value||!u)return;const h=u.getBoundingClientRect();X.value.width=h.width,X.value.height=h.height,X.value.style.width=`${h.width}px`,X.value.style.height=`${h.height}px`,bi()}function bi(){if(!Be.value||!X.value)return;Be.value.clearRect(0,0,X.value.width,X.value.height),De.value.forEach(h=>{if(h.type==="circle"){const v=$t(h.data.center);dc(v)}else if(h.type==="line"){const v=$t(h.data.start),O=$t(h.data.end);uc(v.x,v.y,O.x,O.y)}})}function dc(u){if(!Be.value)return;const h=Be.value;h.beginPath(),h.arc(u.x,u.y,ke.thickness,0,Math.PI*2),h.fillStyle=ke.color,h.fill(),h.stroke()}function uc(u,h,v,O){if(!Be.value)return;const J=Be.value;J.beginPath(),J.moveTo(u,h),J.lineTo(v,O),J.strokeStyle=ke.color,J.lineWidth=ke.thickness,J.lineCap="round",J.stroke()}function hc(u){Me.value&&Me.value.disconnect(),Me.value=new ResizeObserver(h=>{for(let v of h)v.target===u&&ln(u)}),Me.value.observe(u)}function dn(){Be.value&&X.value&&Be.value.clearRect(0,0,X.value.width,X.value.height),Qe.isDrawing=!1}function fc(u){if(!B.value||!V.value)return;const h=un(u),v={type:"circle",data:{color:ke.color,center:h,thickness:ke.thickness}},O=yi(v);Ti({...v,id:O,target:"enlarged"})}function pc(u){if(!B.value||!V.value)return;const h=bc(u);Qe.isDrawing=!0,Qe.startX=h.x,Qe.startY=h.y}function mc(u){}function gc(u){if(!B.value||!Qe.isDrawing||!V.value)return;const h=un(u),v=un({clientX:Qe.startX+X.value.getBoundingClientRect().left,clientY:Qe.startY+X.value.getBoundingClientRect().top}),O={type:"line",data:{color:ke.color,start:v,end:h,thickness:ke.thickness}};if($t(O.data.start),$t(O.data.end),!ca(O.data.start,O.data.end)){const J=yi(O);Ti({...O,id:J,target:"enlarged"})}Qe.isDrawing=!1}function vc(){Qe.isDrawing=!1}function un(u){if(!X.value)return{x:0,y:0};const h=X.value.getBoundingClientRect();return{x:((u.clientX-h.left)/X.value.width).toFixed(4),y:((u.clientY-h.top)/X.value.height).toFixed(4)}}function bc(u){if(!X.value)return{x:0,y:0};const h=X.value.getBoundingClientRect();return{x:u.clientX-h.left,y:u.clientY-h.top}}function $t(u){return X.value?{x:parseFloat(u.x)*X.value.width,y:parseFloat(u.y)*X.value.height}:{x:0,y:0}}async function yc(){try{if(Ds.value)return;const u=`enlargeVideo_${Date.now()}`;await Ce.connect(u),Ds.value=!0,kc()}catch(u){console.error("MQTT连接失败:",u),U.error("视屏缩放服务连接失败")}}function kc(){try{Ce.subscribe(`xSynergy/enlarge_video/${H.name}`,Tc)}catch(u){console.error("订阅激光笔主题失败:",u)}}function Tc(u,h){try{const v=u.toString(),O=JSON.parse(v);if(O.roomId!==H.name||O.sender===i.value)return;switch(O.type){case Jt.ENLARGE:Cc(O);break;case Jt.SHRINK:Sc(O);break;default:console.warn("未知的视频放大消息类型:",O.type)}}catch(v){console.error("处理视频放大消息失败:",v)}}function Cc(u){const{participant:h}=u.payload;if(!b.value.has(h.identity)){console.warn("收到放大消息,但参与者不存在:",h.identity);return}f.value&&(H.localParticipant.setScreenShareEnabled(!1),f.value=!1,U.info("其他用户开启了视频放大,已自动停止屏幕共享")),M.value&&(Vs(),U.info("其他用户开启了视频放大,已自动退出白板")),V.value&&V.value.identity!==h.identity&&Dt(),V.value={identity:h.identity,hasCameraTrack:h.hasCameraTrack,audioEnabled:h.audioEnabled},U.info(`${h.identity} 放大了自己的视频`),Ve(()=>{const v=b.value.get(h.identity);v&&v.cameraTrack&&an.value&&pt(an.value,v.cameraTrack)}),Ve(()=>{Mt()})}function Sc(u){const{participant:h}=u.payload;V.value&&V.value.identity===h.identity&&(V.value=null,U.info(`${h.identity} 关闭了放大视图`),B.value&&(B.value=!1,Qt()),dn())}function hn(u,h={}){try{const v={type:u,roomId:H.name,sender:i.value,timestamp:Date.now(),payload:h};return Ce.publish(`xSynergy/enlarge_video/${H.name}`,v),!0}catch(v){return console.error("发布视频放大消息失败:",v),!1}}async function Pc(){try{if(Rs.value)return;const u=`fileUpload_${Date.now()}`;await Ce.connect(u),Rs.value=!0,ot.emit("subscribeToFileUploadTopic",{roomId:a.value})}catch(u){console.error("MQTT连接失败:",u),U.error("文件上传服务连接失败")}}async function Ec(){try{if(Is.value)return;const u=`filePreview_${Date.now()}`;await Ce.connect(u),Is.value=!0,ot.emit("subscribeToFilePreviewTopic",{roomId:a.value}),ot.emit("roomces",{roomId:a.value})}catch(u){console.error("MQTT连接失败:",u),U.error("文件上传服务连接失败")}}async function _c(){try{if(Os.value)return;const u=`fileConversionStatus_${Date.now()}`;await Ce.connect(u),Os.value=!0,ot.emit("subscribeToFileConversionStatusTopic",{roomId:a.value})}catch(u){console.error("MQTT连接失败:",u),U.error("文件上传服务连接失败")}}function wc(){if(!Ns.value){U.warning("请在开启摄像头或屏幕共享时使用激光笔");return}if(!Ue.value&&!V.value){U.warning("请在屏幕共享、放大视图模式下使用激光笔");return}B.value=!B.value,B.value?(V.value?Mt():Yt(),U.success("激光笔已开启,双击添加标记,拖拽绘制线条")):(Qt(),U.info("激光笔已关闭"))}function Qt(){_e.value.forEach((u,h)=>{clearTimeout(u)}),_e.value.clear(),De.value.clear(),ve.value&&K.value&&ve.value.clearRect(0,0,K.value.width,K.value.height),Be.value&&X.value&&Be.value.clearRect(0,0,X.value.width,X.value.height),$e.isDrawing=!1,Qe.isDrawing=!1}function yi(u){const h=la();u.id=h,u.timestamp=Date.now(),De.value.set(h,u);const v=setTimeout(()=>{Ls(h)},ke.duration);return _e.value.set(h,v),ki(),bi(),h}function Ls(u){_e.value.has(u)&&(clearTimeout(_e.value.get(u)),_e.value.delete(u)),De.value.delete(u),ki(),bi()}function Rc(){Yt()}function Yt(){if(!K.value)return;let u;Ue.value?(u=document.querySelector(".screen-share-element"),_s.value=u):V.value&&(u=document.querySelector(".enlarged-video-element"),_s.value=u),u&&(fn(u),ve.value=K.value.getContext("2d"),K.value.style.position="absolute",K.value.style.top="0",K.value.style.left="0",K.value.style.zIndex="10",K.value.style.cursor=B.value?"crosshair":"default",K.value.style.pointerEvents=B.value?"auto":"none",Ic(u))}function fn(u){if(!K.value||!u)return;const h=u.getBoundingClientRect();K.value.width=h.width,K.value.height=h.height,K.value.style.width=`${h.width}px`,K.value.style.height=`${h.height}px`,ki()}function Ic(u){Me.value&&Me.value.disconnect(),Me.value=new ResizeObserver(h=>{for(let v of h)v.target===u&&fn(u)}),Me.value.observe(u)}function Oc(){st.value&&(clearTimeout(st.value),st.value=null),ve.value&&K.value&&ve.value.clearRect(0,0,K.value.width,K.value.height),De.value.clear(),$e.isDrawing=!1}function pn(u){if(!K.value)return{x:0,y:0};const h=K.value.getBoundingClientRect();return{x:((u.clientX-h.left)/K.value.width).toFixed(4),y:((u.clientY-h.top)/K.value.height).toFixed(4)}}function Dc(u){if(!K.value)return{x:0,y:0};const h=K.value.getBoundingClientRect();return{x:u.clientX-h.left,y:u.clientY-h.top}}function Mc(u){if(!B.value)return;const h=pn(u),v={type:"circle",data:{color:ke.color,center:h,thickness:ke.thickness}},O=yi(v);Ti({...v,id:O})}function xc(u){if(!B.value)return;const h=Dc(u);$e.isDrawing=!0,$e.startX=h.x,$e.startY=h.y}function Ac(u){}function Nc(u){if(!B.value||!$e.isDrawing)return;const h=pn(u),v=pn({clientX:$e.startX+K.value.getBoundingClientRect().left,clientY:$e.startY+K.value.getBoundingClientRect().top}),O={type:"line",data:{color:ke.color,start:v,end:h,thickness:ke.thickness}};if(Xt(O.data.start),Xt(O.data.end),!ca(O.data.start,O.data.end)){const J=yi(O);Ti({...O,id:J})}$e.isDrawing=!1}function Lc(){$e.isDrawing=!1}function Uc(u){if(!ve.value)return;const h=ve.value;h.beginPath(),h.arc(u.x,u.y,ke.thickness,0,Math.PI*2),h.fillStyle=ke.color,h.fill(),h.stroke()}function Fc(u,h,v,O){if(!ve.value)return;const J=ve.value;J.beginPath(),J.moveTo(u,h),J.lineTo(v,O),J.strokeStyle=ke.color,J.lineWidth=ke.thickness,J.lineCap="round",J.stroke()}function ki(){if(!ve.value||!K.value)return;ve.value.clearRect(0,0,K.value.width,K.value.height),De.value.forEach(h=>{if(h.type==="circle"){const v=Xt(h.data.center);Uc(v)}else if(h.type==="line"){const v=Xt(h.data.start),O=Xt(h.data.end);Fc(v.x,v.y,O.x,O.y)}})}function Xt(u){return K.value?{x:parseFloat(u.x)*K.value.width,y:parseFloat(u.y)*K.value.height}:{x:0,y:0}}function Us(){if(!B.value||!K.value)return;let u;Ue.value?u=document.querySelector(".screen-share-element"):V.value&&(u=document.querySelector(".enlarged-video-element")),u&&fn(u)}function Fs(){if(!B.value||!X.value||!V.value)return;const u=document.querySelector(".enlarged-video-element");u&&ln(u)}window.addEventListener("resize",()=>{Us(),Fs()});function jc(){try{Ce.subscribe(`xSynergy/laserPointer/${H.name}`,Bc)}catch(u){console.error("订阅激光笔主题失败:",u)}}function Ti(u){try{const h={type:cn.DRAW,roomId:a.value,sender:i.value,timestamp:Date.now(),element:u};Ce.publish(`xSynergy/laserPointer/${H.name}`,h)}catch(h){console.error("发布激光笔数据失败:",h)}}function Bc(u,h){try{const v=u.toString(),O=JSON.parse(v);if(O.roomId!==H.name||O.sender===i.value)return;switch(O.type){case cn.DRAW:Vc(O);break;case cn.CLEAR:Qt();break}}catch(v){console.error("处理激光笔消息失败:",v)}}function Vc(u){const{element:h}=u;if(h.id&&De.value.has(h.id))De.value.set(h.id,h);else{const v=la();h.id=v,h.timestamp=Date.now(),De.value.set(v,h);const O=setTimeout(()=>{Ls(v)},ke.duration);_e.value.set(v,O)}ki(),bi()}async function qc(){ws.value.show()}async function mn(u){try{if(u){const h=await navigator.mediaDevices.getUserMedia({video:!0}),v=await navigator.mediaDevices.enumerateDevices();m.value=v.filter(O=>O.kind==="videoinput"),h.getTracks().forEach(O=>{O.stop()})}}catch(h){console.error("摄像头访问失败:",h),si(h,"摄像头"),m.value=[]}}async function Kc(u){if(u==="refresh"){await mn(!0),U.success("设备列表已刷新");return}C.value=u,l.value?await Wc(u):await js(u),U.success(`已切换到摄像头: ${wi(m.value,u)}`)}async function gn(u){try{if(u){const h=await navigator.mediaDevices.getUserMedia({audio:!0}),v=await navigator.mediaDevices.enumerateDevices();y.value=v.filter(O=>O.kind==="audioinput"),h.getTracks().forEach(O=>O.stop())}}catch(h){console.error("麦克风访问失败:",h),si(h,"麦克风"),y.value=[]}}async function Gc(u){if(u==="refresh"){await gn(),U.success("设备列表已刷新");return}_.value=u,d.value?await zc(u):await Bs(u),U.success(`已切换到麦克风: ${wi(y.value,u)}`)}async function js(u){try{return H.options.videoCaptureDefaults.deviceId=u,await H.localParticipant.setCameraEnabled(!0),l.value=!0,setTimeout(()=>{yn()},200),!0}catch(h){U.error("使用指定设备开启摄像头失败");try{l.value&&await H.localParticipant.setCameraEnabled(!0)}catch{l.value=!1,C.value=""}throw h}}async function Bs(u){try{return H.options.audioCaptureDefaults.deviceId=u,await H.localParticipant.setMicrophoneEnabled(!0),d.value=!0,!0}catch(h){throw console.error("使用指定设备开启麦克风失败:",h),d.value=!1,h}}async function Wc(u){try{return await H.localParticipant.setCameraEnabled(!1),H.options.videoCaptureDefaults.deviceId=u,await H.localParticipant.setCameraEnabled(!0),setTimeout(()=>{yn()},200),!0}catch(h){console.error("切换摄像头设备失败:",h);try{await H.localParticipant.setCameraEnabled(!0)}catch{l.value=!1}throw h}}async function zc(u){try{return await H.localParticipant.setMicrophoneEnabled(!1),H.options.audioCaptureDefaults.deviceId=u,await H.localParticipant.setMicrophoneEnabled(!0),!0}catch(h){console.error("切换麦克风设备失败:",h);try{await H.localParticipant.setMicrophoneEnabled(!0)}catch{d.value=!1}throw h}}async function Hc(){try{const u=`whiteboard_${Date.now()}`;await Ce.connect(u),Jc()}catch(u){console.error("MQTT连接失败:",u),U.error("白板同步连接失败")}}function Jc(){try{Ce.subscribe(`xSynergy/shareWhiteboard/${H.name}`,Qc)}catch(u){console.error("订阅白板主题失败:",u)}}async function $c(){try{const u=`toLaserPointer_${Date.now()}`;await Ce.connect(u),jc()}catch(u){console.error("MQTT连接失败:",u),U.error("激光笔同步连接失败")}}function Qc(u,h){try{const v=u.toString(),O=JSON.parse(v);if(O.roomId!==H.name||O.sender===i.value)return;switch(O.type){case ft.OPEN:Xc(O);break;case ft.CLOSE:Zc(O);break;case ft.SYNC:el(O);break;case ft.ACTIVATE_LAYER:Yc(O);break;default:console.warn("未知的白板消息类型:",O.type)}}catch(v){console.error("处理白板消息失败:",v)}}function Yc(u){const{layerType:h,hasScreenShare:v,hasEnlargedVideo:O,hasWhiteboard:J}=u.payload;h==="screenVideo"&&(v||O)?xe("screenVideo",!1):h==="whiteboard"&&J&&xe("whiteboard",!1)}function Xc(u){U.info(`${u.senderName||u.sender} 开启了白板`),M.value=!0,xe("whiteboard",!1)}function Zc(u){U.info(`${u.senderName||u.sender} 关闭了白板`),Ve(()=>{Ue.value&&!M.value&&(xe("screenVideo",!1),k.value&&w.value&&pt(w.value,k.value))})}function el(u){A.value&&u.payload&&A.value.syncData&&A.value.syncData(u.payload)}async function tl(){q.value.show(a.value)}async function il(u){if(u.length<0){U.error("请选择加入房间的人员");return}const h=u.map(v=>({user_uid:v.uid,display_name:v.name}));await Kl(H.name,{participants:h,participant_role:"participant"})}function vn(u,h={}){try{const v={type:u,roomId:a.value,sender:i.value,senderName:i.value,timestamp:Date.now(),payload:h};return Ce.publish(`xSynergy/shareWhiteboard/${H.name}`,v),!0}catch(v){return console.error("发布白板消息失败:",v),U.warning("消息发送失败,但白板功能正常"),!1}}async function nl(){M.value?await Vs():await sl()}async function sl(){try{M.value=!0,xe("whiteboard",!0),vn(ft.OPEN,{action:"open",whiteboardId:a.value,roomName:r.value})?U.success("白板已开启,已通知其他参会者"):U.success("白板已开启")}catch(u){console.error("开启白板失败:",u),U.error("开启白板失败")}}async function Vs(){try{vn(ft.CLOSE,{action:"close",whiteboardId:a.value,roomName:r.value}),M.value=!1,A.value&&A.value.cleanup&&A.value.cleanup(),rt.value==="whiteboard"&&St.value&&xe("screenVideo",!1),U.success("已退出白板")}catch(u){u!=="cancel"&&(console.error("退出白板失败:",u),U.error("退出白板失败"))}}function rl(u,h,v){if(!u)return;G.value.has(h)||G.value.set(h,{});const O=G.value.get(h);O[v]=u,G.value.set(h,O);const J=b.value.get(h);J&&J.cameraTrack&&pt(u,J.cameraTrack)}function al(u,h){if(!u)return;W.value.set(h,u);const v=b.value.get(h);v&&v.audioTrack&&$s(u,v.audioTrack)}function ol(u){u&&(w.value=u,k.value&&pt(u,k.value),Ve(()=>{Yt()}))}function cl(){H.removeAllListeners(),H.on(D.Connected,ll).on(D.Disconnected,dl).on(D.Reconnected,vf).on(D.TrackSubscribed,qs).on(D.TrackUnsubscribed,Ks).on(D.ParticipantConnected,ul).on(D.ParticipantDisconnected,hl).on(D.LocalTrackPublished,fl).on(D.LocalTrackUnpublished,pl).on(D.TrackMuted,Gs).on(D.TrackUnmuted,Ws).on(D.ActiveSpeakersChanged,ml).on(D.DataReceived,gf).on(D.ConnectionStateChanged,yf)}async function ll(){a.value=H.name,await Hc(),await $c(),await Pc(),await _c(),await Ec(),await yc(),s.value=!1,U.success("已成功连接到房间"),H.remoteParticipants.forEach(u=>{Js(u),zs(u),Ye(u)})}function dl(u){s.value=!0,l.value=!1,d.value=!1,f.value=!1,b.value.clear(),G.value.clear(),W.value.clear(),P.value="",k.value=null,V.value=null,U.error("连接已断开")}function qs(u,h,v){u&&(u.kind===E.Kind.Video?(vl(v,h.source,u),h.source===E.Source.ScreenShare&&(Hs(v,u),S.value=v.identity,I.value=!0,v.identity!==i.value&&xe("screenVideo",!1)),Tl(v.identity,h.source,u)):u.kind===E.Kind.Audio&&(yl(v,u),Cl(v.identity,u))),Ye(v)}function Ks(u,h,v){u.kind===E.Kind.Video?(bl(v,h.source),bn(v.identity,h.source),h.source===E.Source.ScreenShare&&(Hs(v,null),S.value===v.identity&&(S.value="",I.value=!1)),Ye(v)):u.kind===E.Kind.Audio&&(kl(v),Qs(v.identity),Ye(v))}function ul(u){Js(u),zs(u),Ye(u),U.info(`新用户加入: ${u.identity}`)}function hl(u){u.identity===P.value&&(P.value="",k.value=null,w.value&&w.value.srcObject&&(w.value.srcObject=null)),u.identity===S.value&&(S.value="",I.value=!1),V.value&&V.value.identity===u.identity&&Dt(),gl(u),U.info(`用户离开: ${u.identity}`)}function fl(u){u.track&&(u.kind===E.Kind.Video?u.source===E.Source.Camera?Ci(u.track):u.source===E.Source.ScreenShare&&(P.value=H.localParticipant.identity,k.value=u.track,S.value=H.localParticipant.identity,I.value=!0,w.value&&pt(w.value,u.track)):u.kind===E.Kind.Audio&&(d.value=!0))}function pl(u){u.kind===E.Kind.Video?u.source===E.Source.Camera?l.value=!1:u.source===E.Source.ScreenShare&&P.value===H.localParticipant.identity&&(f.value=!1,P.value="",k.value=null,S.value===H.localParticipant.identity&&(S.value="",I.value=!1),w.value&&w.value.srcObject&&(w.value.srcObject=null)):u.kind===E.Kind.Audio&&(d.value=!1)}function Gs(u,h){Ye(h)}function Ws(u,h){Ye(h)}function zs(u){u.on(L.TrackSubscribed,(h,v)=>{qs(h,v,u)}).on(L.TrackUnsubscribed,(h,v)=>{Ks(h,v,u)}).on(L.TrackMuted,h=>{Gs(h,u)}).on(L.TrackUnmuted,h=>{Ws(h,u)}).on(L.IsSpeakingChanged,h=>{Sl(u,h)}).on(L.TrackPublished,h=>{Ye(u)}).on(L.TrackUnpublished,h=>{Ye(u)})}function ml(u){const h=u.some(v=>v.identity===H.localParticipant.identity);p.value=h,b.value.forEach((v,O)=>{const J=u.some(be=>be.identity===O);v.isSpeaking!==J&&(v.isSpeaking=J,b.value.set(O,{...v}))})}function Hs(u,h){h?(P.value=u.identity,k.value=h,M.value||xe("screenVideo",!1),w.value&&pt(w.value,h)):u.identity===P.value&&(P.value="",k.value=null,w.value&&w.value.srcObject&&(w.value.srcObject=null))}function Js(u){var v;if(!u||u.identity===((v=H.localParticipant)==null?void 0:v.identity))return;const h={identity:u.identity,cameraTrack:null,screenTrack:null,audioTrack:null,hasCameraTrack:!1,hasScreenTrack:!1,audioEnabled:!1,videoEnabled:u.isCameraEnabled,isSpeaking:!1};b.value.set(u.identity,h)}function gl(u){if(b.value.has(u.identity)){const h=u.identity;bn(h,"camera"),bn(h,"screen"),Qs(h),b.value.delete(h),G.value.delete(h),W.value.delete(h)}}function vl(u,h,v){const O=b.value.get(u.identity);O&&(h===E.Source.Camera?(O.cameraTrack=v,O.hasCameraTrack=!0):h===E.Source.ScreenShare&&(O.screenTrack=v,O.hasScreenTrack=!0),b.value.set(u.identity,{...O}))}function bl(u,h){const v=b.value.get(u.identity);v&&(h===E.Source.Camera?(v.cameraTrack=null,v.hasCameraTrack=!1):h===E.Source.ScreenShare&&(v.screenTrack=null,v.hasScreenTrack=!1),b.value.set(u.identity,{...v}))}function yl(u,h){const v=b.value.get(u.identity);v&&(v.audioTrack=h,v.audioEnabled=!0,b.value.set(u.identity,{...v}))}function kl(u){const h=b.value.get(u.identity);h&&(h.audioTrack=null,h.audioEnabled=!1,b.value.set(u.identity,{...h}))}function pt(u,h){if(!(!u||!h))try{const v=new MediaStream;v.addTrack(h.mediaStreamTrack),u.srcObject=v}catch(v){console.error("附加轨道到视频元素失败:",v)}}function $s(u,h){if(!(!u||!h))try{const v=new MediaStream;v.addTrack(h.mediaStreamTrack),u.srcObject=v,u.play().catch(O=>{console.warn("音频播放失败:",O)})}catch(v){console.error("附加轨道到音频元素失败:",v)}}function Tl(u,h,v){const O=G.value.get(u);if(!O)return;const J=h===E.Source.Camera?"camera":"screen",be=O[J];be&&pt(be,v)}function Cl(u,h){const v=W.value.get(u);v&&$s(v,h)}function bn(u,h){const v=G.value.get(u);if(!v)return;const O=h===E.Source.Camera?"camera":"screen",J=v[O];J&&J.srcObject&&(J.srcObject=null)}function Qs(u){const h=W.value.get(u);h&&h.srcObject&&(h.srcObject=null)}function Ye(u){const h=b.value.get(u.identity);if(!h)return;let v=!1,O=!1,J=!1;u.videoTrackPublications.forEach(be=>{be.isSubscribed&&be.track&&!be.isMuted&&(be.source===E.Source.Camera?(v=!0,h.cameraTrack||(h.cameraTrack=be.track)):be.source===E.Source.ScreenShare&&(O=!0,h.screenTrack||(h.screenTrack=be.track)))}),u.audioTrackPublications.forEach(be=>{be.isSubscribed&&be.track&&!be.isMuted&&(J=!0,h.audioTrack||(h.audioTrack=be.track))}),h.hasCameraTrack=v,h.hasScreenTrack=O,h.audioEnabled=J,h.videoEnabled=u.isCameraEnabled,v||(h.cameraTrack=null),O||(h.screenTrack=null),J||(h.audioTrack=null),b.value.set(u.identity,{...h})}function Sl(u,h){const v=b.value.get(u.identity);v&&v.isSpeaking!==h&&(v.isSpeaking=h,b.value.set(u.identity,{...v}))}function Ci(u){if(o.value&&u)try{const h=new MediaStream;h.addTrack(u.mediaStreamTrack),o.value.srcObject=h,l.value=!0,o.value.play().catch(v=>{console.warn("本地视频播放失败:",v)})}catch(h){console.error("附加本地视频轨道失败:",h)}}async function Pl(){try{if(l.value)await H.localParticipant.setCameraEnabled(!1),l.value=!1,o.value&&o.value.srcObject&&(o.value.srcObject.getTracks().forEach(u=>u.stop()),o.value.srcObject=null),C.value="",U.info("摄像头已关闭"),V.value&&V.value.identity===H.localParticipant.identity&&Dt(),Ye(H.localParticipant);else{if(o.value||(console.warn("本地视频元素未找到,等待DOM更新"),await Ve()),m.value.length===0&&await mn(!0),m.value.length===0){U.error("未找到可用的摄像头设备");return}let u=C.value;!u&&m.value.length>0&&(u=m.value[0].deviceId,C.value=u),u?(await js(u),U.success(`摄像头已开启 - ${wi(m.value,u)}`)):(await H.localParticipant.setCameraEnabled(!0),l.value=!0,setTimeout(()=>{yn()},200),U.success("摄像头已开启")),await El()}}catch(u){si(u,"摄像头")}}async function El(){try{await new Promise(v=>setTimeout(v,500));const h=Array.from(H.localParticipant.videoTrackPublications.values()).find(v=>v.source===E.Source.Camera&&v.track);h?h.track&&o.value&&Ci(h.track):console.warn("未找到摄像头发布轨道")}catch(u){console.error("确保摄像头轨道发布失败:",u)}}async function yn(){try{await new Promise(v=>setTimeout(v,100));const h=Array.from(H.localParticipant.videoTrackPublications.values()).find(v=>v.source===E.Source.Camera&&v.track);h&&h.track?Ci(h.track):setTimeout(()=>{const O=Array.from(H.localParticipant.videoTrackPublications.values()).find(J=>J.source===E.Source.Camera&&J.track);O&&O.track?Ci(O.track):console.warn("最终未找到摄像头轨道")},1e3)}catch(u){console.error("手动附加摄像头轨道失败:",u)}}async function _l(){try{if(d.value){await H.localParticipant.setMicrophoneEnabled(!1),d.value=!1;const u=Array.from(H.localParticipant.audioTrackPublications.values());for(const h of u)h.track&&h.track.stop();_.value="",U.info("麦克风已关闭")}else{if(y.value.length===0&&await gn(!0),y.value.length===0)return;let u=_.value;!u&&y.value.length>0&&(u=y.value[0].deviceId,_.value=u),u?(await Bs(u),U.success(`麦克风已开启 - ${wi(y.value,u)}`)):(await H.localParticipant.setMicrophoneEnabled(!0),d.value=!0,U.success("麦克风已开启")),U.success("麦克风已开启")}}catch(u){si(u,"麦克风"),d.value||(_.value="")}}async function wl(){try{if(V.value){U.error("当前处于视频放大模式,无法进行屏幕共享");return}if(!f.value&&I.value&&S.value!==i.value){U.error(`当前 ${S.value} 正在共享屏幕,请等待其结束后再共享`);return}f.value?(await H.localParticipant.setScreenShareEnabled(!1),f.value=!1,S.value===i.value&&(S.value="",I.value=!1),U.info("屏幕共享已停止")):(await H.localParticipant.setScreenShareEnabled(!0),f.value=!0,S.value=i.value,I.value=!0,xe("screenVideo",!0),U.success("屏幕共享已开始"))}catch(u){si(u,"屏幕共享")}}async function Ys(){try{V.value&&V.value.identity===i.value&&hn(Jt.SHRINK,{participant:{identity:i.value}}),M.value&&(vn(ft.CLOSE,{action:"close",reason:"host_left",roomName:r.value}),M.value=!1,A.value&&A.value.cleanup&&A.value.cleanup()),Ce.disconnect(),f.value&&await H.localParticipant.setScreenShareEnabled(!1),await H.localParticipant.setCameraEnabled(!1),await H.localParticipant.setMicrophoneEnabled(!1),d.value=!1,l.value=!1,_.value="",C.value="",await H.disconnect(),Il(),U.success("已离开会议")}catch(u){console.error("离开会议失败:",u),U.error("离开会议失败")}}async function Rl(){await Ys(),t.push({path:"/coordinate"})}function Il(){S.value="",I.value=!1,M.value=!1,l.value=!1,d.value=!1,f.value=!1,p.value=!1,s.value=!0,i.value="",_.value="",C.value="",y.value=[],m.value=[],V.value=null,Ce.disconnect(),b.value.clear(),G.value.clear(),W.value.clear(),P.value="",k.value=null,o.value&&o.value.srcObject&&(o.value.srcObject.getTracks().forEach(u=>u.stop()),o.value.srcObject=null),c.value&&c.value.srcObject&&(c.value.srcObject.getTracks().forEach(u=>u.stop()),c.value.srcObject=null),w.value&&w.value.srcObject&&(w.value.srcObject.getTracks().forEach(u=>u.stop()),w.value.srcObject=null),G.value.forEach((u,h)=>{u.camera&&u.camera.srcObject&&(u.camera.srcObject.getTracks().forEach(v=>v.stop()),u.camera.srcObject=null),u.screen&&u.screen.srcObject&&(u.screen.srcObject.getTracks().forEach(v=>v.stop()),u.screen.srcObject=null)}),W.value.forEach((u,h)=>{u&&u.srcObject&&(u.srcObject.getTracks().forEach(v=>v.stop()),u.srcObject=null)})}Pt([()=>Ue.value,()=>f.value],([u,h])=>{!u&&!h&&B.value&&Ol()},{immediate:!0}),Pt(l,u=>{u||V.value&&V.value.identity===i.value&&Dt()}),Pt([Ue,V],([u,h])=>{B.value&&Ve(()=>{Yt()})}),Pt(B,u=>{u?Ve(()=>{V.value?Mt():Yt()}):Me.value&&(Me.value.disconnect(),Me.value=null)}),Pt(V,u=>{u&&B.value?Ve(()=>{Mt()}):dn()}),Pt(St,u=>{u&&!rt.value?xe("screenVideo",!1):!u&&rt.value==="screenVideo"&&(M.value?xe("whiteboard",!1):rt.value="")}),Pt(M,u=>{u&&!rt.value&&xe("whiteboard",!1)});function Ol(){B.value=!1,Oc(),K.value&&(K.value.style.pointerEvents="none",K.value.style.cursor="default"),U.info("屏幕共享已结束,激光笔已自动关闭")}return Bl(()=>{window.removeEventListener("resize",Us),window.removeEventListener("resize",Fs),Me.value&&Me.value.disconnect(),Qt(),M.value&&A.value&&A.value.cleanup&&A.value.cleanup(),Ce.disconnect(),H&&H.state==="connected"&&Ys()}),ha(async()=>{try{on.value=!0,s.value=!0;const u=await Vl(e.query.room_uid);if(u.meta.code==200){const h=u.data.access_token;i.value=u.data.user_uid,r.value=u.data.room_name,await Ve(),cl(),await H.connect($p,h,{autoSubscribe:!0})}else{U.error(u.meta.message);return}}catch(u){U.error(`连接失败: ${u.message}`),s.value=!0}finally{on.value=!1}}),(u,h)=>{const v=oe("Loading"),O=oe("el-icon"),J=oe("el-button"),be=oe("Microphone"),Xs=oe("Mute"),Si=oe("el-dropdown-item"),Zs=oe("el-dropdown-menu"),er=oe("el-dropdown");return rn.value?($(),Y("div",np,[z(_f,{onLoginSuccess:rc})])):($(),Y("div",sp,[on.value?($(),Y("div",rp,[x("div",ap,[z(O,{class:"loading-icon"},{default:Q(()=>[z(v)]),_:1}),h[1]||(h[1]=x("p",null,"正在创建房间,请稍候...",-1))])])):ue("",!0),x("audio",{ref_key:"localAudio",ref:c,autoplay:"",muted:"",class:"audio-element"},null,512),h[17]||(h[17]=x("div",{id:"audio"},null,-1)),x("div",op,[s.value?ue("",!0):($(),Y("div",cp,[x("div",{class:Te(["video-layout",{"screen-sharing-active":Ms.value,"enlarged-mode":V.value}])},[Ms.value?($(),Y("div",lp,[x("div",dp,[x("h3",null,le(ec.value),1),P.value?($(),Y("div",up,[x("span",null,"由 "+le(P.value)+" 共享",1)])):ue("",!0),V.value&&V.value.identity===i.value?($(),Fe(J,{key:1,onClick:Dt,type:"info",size:"small",class:"close-enlarge-btn"},{default:Q(()=>[...h[2]||(h[2]=[x("img",{src:$l,style:{width:"16px",height:"15px"},alt:""},null,-1)])]),_:1})):ue("",!0)]),x("div",hp,[x("div",fp,[St.value?($(),Y("div",{key:0,class:Te(["content-layer screen-video-layer",{"active-layer":xs.value}])},[V.value?($(),Y("div",pp,[x("div",mp,[V.value?($(),Y("canvas",{key:0,ref_key:"enlargedLaserPointerCanvas",ref:X,class:"laser-pointer-canvas enlarged-laser-canvas",onDblclick:fc,onMousedown:pc,onMousemove:mc,onMouseup:gc,onMouseleave:vc},null,544)):ue("",!0),V.value.hasCameraTrack?($(),Y("video",{key:1,ref:ee=>cc(ee),autoplay:"",playsinline:"",class:"enlarged-video-element",onLoadedmetadata:lc},null,544)):ue("",!0),V.value.hasCameraTrack?ue("",!0):($(),Y("div",gp,[...h[3]||(h[3]=[x("i",{class:"el-icon-user"},null,-1),x("span",null,"暂无视频流",-1)])])),x("div",vp,[x("span",bp,le(V.value.identity===i.value?"我":V.value.identity),1),x("span",{class:Te(["audio-indicator",{muted:!V.value.audioEnabled}])},[x("i",{class:Te(V.value.audioEnabled?"el-icon-microphone":"el-icon-turn-off-microphone")},null,2)],2),B.value&&V.value?($(),Y("span",yp,[...h[4]||(h[4]=[x("i",{class:"el-icon-aim"},null,-1),he(" 激光笔模式中 ",-1)])])):ue("",!0)])])])):($(),Y("div",kp,[x("canvas",{ref_key:"laserPointerCanvas",ref:K,class:"laser-pointer-canvas",onDblclick:Mc,onMousedown:xc,onMousemove:Ac,onMouseup:Nc,onMouseleave:Lc},null,544),x("div",Tp,[k.value?($(),Y("video",{key:0,ref:ee=>ol(ee),autoplay:"",playsinline:"",class:"screen-share-element",onLoadedmetadata:Rc},null,544)):ue("",!0),k.value?ue("",!0):($(),Y("div",Cp,[...h[5]||(h[5]=[x("i",{class:"el-icon-monitor"},null,-1),x("span",null,"暂无屏幕共享",-1)])]))]),x("div",Sp,[x("span",Pp,le(P.value),1),B.value?($(),Y("span",Ep,[...h[6]||(h[6]=[x("i",{class:"el-icon-aim"},null,-1),he(" 激光笔模式中 ",-1)])])):ue("",!0)])]))],2)):ue("",!0),M.value?($(),Y("div",{key:1,class:Te(["content-layer whiteboard-layer",{"active-layer":As.value}])},[z(Hl,{ref_key:"whiteboardRef",ref:A,roomId:a.value,userId:i.value,class:"whiteboard-component"},null,8,["roomId","userId"])],2)):ue("",!0)])])])):ue("",!0),x("div",{class:Te(["participants-area",{"with-screen-share":Ue.value||M.value||V.value}])},[x("div",_p,[x("h3",null,"会议名称:"+le(r.value),1),x("h3",null,"参会者 ("+le(vi.value)+")",1)]),x("div",{class:Te(["video-grid",{"grid-layout":!Ue.value&&!V.value&&vi.value>1}])},[x("div",{class:Te(["participant-card local-participant",{enlarged:V.value&&V.value.identity===i.value}])},[x("div",wp,[x("h3",null,"我的视频 ("+le(i.value)+")",1),x("div",Rp,[z(O,{class:Te({"audio-on":d.value,"audio-off":!d.value})},{default:Q(()=>[d.value?($(),Fe(be,{key:0})):($(),Fe(Xs,{key:1}))]),_:1},8,["class"])]),vi.value>1&&ic.value&&!V.value?($(),Y("div",Ip,[z(J,{onClick:h[0]||(h[0]=ee=>oc({identity:i.value,hasCameraTrack:l.value,audioEnabled:d.value})),type:"link",size:"small",class:"enlarge-btn",title:"放大视图"},{default:Q(()=>[...h[7]||(h[7]=[x("img",{src:Ql,style:{width:"18px",height:"12px"},alt:""},null,-1)])]),_:1})])):ue("",!0)]),x("div",Op,[x("video",{ref_key:"localVideo",ref:o,autoplay:"",muted:"",playsinline:"",class:"video-element"},null,512),x("div",Dp,[x("span",Mp,le(i.value),1),x("span",{class:Te(["audio-indicator",{muted:!d.value}])},[x("i",{class:Te(d.value?"el-icon-microphone":"el-icon-turn-off-microphone")},null,2)],2)]),l.value?ue("",!0):($(),Y("div",xp,[...h[8]||(h[8]=[x("i",{class:"el-icon-user"},null,-1),x("span",null,"摄像头已关闭",-1)])]))])],2),($(!0),Y(ai,null,oi(tc.value,ee=>($(),Y("div",{class:Te(["participant-card",{enlarged:V.value&&V.value.identity===ee.identity}]),key:ee.identity},[x("div",Ap,[x("h3",null,le(ee.identity),1),x("div",Np,[z(O,{class:Te({"audio-on":ee.audioEnabled,"audio-off":!ee.audioEnabled})},{default:Q(()=>[ee.audioEnabled?($(),Fe(be,{key:0})):($(),Fe(Xs,{key:1}))]),_:2},1032,["class"])])]),x("div",Lp,[x("div",Up,[ee.hasCameraTrack?($(),Y("video",{key:0,ref_for:!0,ref:kn=>rl(kn,ee.identity,"camera"),autoplay:"",playsinline:"",class:"video-element",onLoadedmetadata:()=>gt(bf)(ee.identity,"camera")},null,40,Fp)):ue("",!0),ee.hasCameraTrack?ue("",!0):($(),Y("div",jp,[...h[9]||(h[9]=[x("i",{class:"el-icon-user"},null,-1),x("span",null,"摄像头已关闭",-1)])]))]),x("div",Bp,[x("span",Vp,le(ee.identity),1),x("span",{class:Te(["audio-indicator",{muted:!ee.audioEnabled}])},[x("i",{class:Te(ee.audioEnabled?"el-icon-microphone":"el-icon-turn-off-microphone")},null,2)],2)])]),x("audio",{ref_for:!0,ref:kn=>al(kn,ee.identity),autoplay:"",class:"participant-audio"},null,512)],2))),128))],2)],2)],2),x("div",qp,[x("div",Kp,[x("div",Gp,[z(J,{onClick:Pl,type:l.value?"danger":"info",class:"control-btn microphone-btn",size:"large"},{default:Q(()=>[he(le(l.value?"关闭摄像头":"开启摄像头"),1)]),_:1},8,["type"]),z(er,{trigger:"click",onCommand:Kc,onVisibleChange:mn,class:"control-dropdown microphone-dropdown"},{dropdown:Q(()=>[z(Zs,null,{default:Q(()=>[($(!0),Y(ai,null,oi(m.value,ee=>($(),Fe(Si,{key:ee.deviceId,command:ee.deviceId,class:Te({"selected-device":C.value===ee.deviceId})},{default:Q(()=>[h[10]||(h[10]=x("i",{class:"el-icon-video-camera"},null,-1)),he(" "+le(ee.label||`摄像头 ${m.value.indexOf(ee)+1}`)+" ",1),C.value===ee.deviceId?($(),Fe(O,{key:0,class:"check-icon"},{default:Q(()=>[z(gt(ir))]),_:1})):ue("",!0)]),_:2},1032,["command","class"]))),128)),z(Si,{divided:"",command:"refresh"},{default:Q(()=>[z(O,null,{default:Q(()=>[z(gt(nr))]),_:1}),h[11]||(h[11]=he(" 刷新设备列表 ",-1))]),_:1})]),_:1})]),default:Q(()=>[z(J,{type:l.value?"danger":"info",class:"control-btn dropdown-btn",size:"large"},{default:Q(()=>[z(O,{class:"el-icon--right"},{default:Q(()=>[z(gt(tr))]),_:1})]),_:1},8,["type"])]),_:1})]),x("div",Wp,[z(J,{onClick:_l,type:d.value?"danger":"info",class:"control-btn microphone-btn",size:"large"},{default:Q(()=>[he(le(d.value?"关闭麦克风":"开启麦克风"),1)]),_:1},8,["type"]),z(er,{trigger:"click",onCommand:Gc,onVisibleChange:gn,class:"control-dropdown microphone-dropdown"},{dropdown:Q(()=>[z(Zs,null,{default:Q(()=>[($(!0),Y(ai,null,oi(y.value,ee=>($(),Fe(Si,{key:ee.deviceId,command:ee.deviceId,class:Te({"selected-device":_.value===ee.deviceId})},{default:Q(()=>[h[12]||(h[12]=x("i",{class:"el-icon-microphone"},null,-1)),he(" "+le(ee.label||`麦克风 ${y.value.indexOf(ee)+1}`)+" ",1),_.value===ee.deviceId?($(),Fe(O,{key:0,class:"check-icon"},{default:Q(()=>[z(gt(ir))]),_:1})):ue("",!0)]),_:2},1032,["command","class"]))),128)),z(Si,{divided:"",command:"refresh"},{default:Q(()=>[z(O,null,{default:Q(()=>[z(gt(nr))]),_:1}),h[13]||(h[13]=he(" 刷新设备列表 ",-1))]),_:1})]),_:1})]),default:Q(()=>[z(J,{type:d.value?"danger":"info",class:"control-btn dropdown-btn",size:"large"},{default:Q(()=>[z(O,{class:"el-icon--right"},{default:Q(()=>[z(gt(tr))]),_:1})]),_:1},8,["type"])]),_:1})]),z(J,{onClick:wl,type:f.value?"danger":I.value?"primary":"info",disabled:I.value&&!f.value||!nc.value,class:"control-btn",size:"large"},{default:Q(()=>[f.value?($(),Y("span",zp,"停止共享")):I.value?($(),Y("span",Hp,"他人共享中")):($(),Y("span",Jp,"共享屏幕"))]),_:1},8,["type","disabled"]),z(J,{onClick:nl,type:M.value?"danger":"info",class:"control-btn",size:"large"},{default:Q(()=>[he(le(M.value?"退出白板":"共享白板"),1)]),_:1},8,["type"]),z(J,{onClick:wc,type:B.value?"danger":"info",disabled:!Ns.value,class:"control-btn",size:"large"},{default:Q(()=>[he(le(B.value?"关闭激光笔":"激光笔"),1)]),_:1},8,["type","disabled"]),z(J,{onClick:qc,type:"info",class:"control-btn",size:"large"},{default:Q(()=>[...h[14]||(h[14]=[he(" 文件 ",-1)])]),_:1}),z(J,{onClick:tl,type:"info",class:"control-btn",size:"large"},{default:Q(()=>[...h[15]||(h[15]=[he(" 邀请人员 ",-1)])]),_:1}),z(J,{onClick:Rl,type:"info",class:"control-btn",size:"large"},{default:Q(()=>[...h[16]||(h[16]=[he(" 离开会议 ",-1)])]),_:1})])])])),z(Bf,{ref_key:"inviterJoinRoomRef",ref:q,onConfirmSelection:il},null,512),z(ip,{ref_key:"fileListRef",ref:ws,roomId:a.value},null,8,["roomId"])])]))}}},sm=Yi(Qp,[["__scopeId","data-v-42ecdcb9"]]);export{sm as default}; diff --git a/dist/assets/index-BEyUpNsD.js.gz b/dist/assets/index-BEyUpNsD.js.gz new file mode 100644 index 0000000..bbf9d7c Binary files /dev/null and b/dist/assets/index-BEyUpNsD.js.gz differ diff --git a/dist/assets/index-Ba59pKR3.js b/dist/assets/index-Ba59pKR3.js new file mode 100644 index 0000000..8bf6979 --- /dev/null +++ b/dist/assets/index-Ba59pKR3.js @@ -0,0 +1,14 @@ +import{ai as Br,aj as W,ak as ur}from"./index-DikBC4WP.js";var jx={exports:{}};function dr(R){throw new Error('Could not dynamically require "'+R+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var F0={exports:{}};const hr={},Cr=Object.freeze(Object.defineProperty({__proto__:null,default:hr},Symbol.toStringTag,{value:"Module"})),lr=Br(Cr);var hx;function I(){return hx||(hx=1,function(R,T){(function(C,n){R.exports=n()})(W,function(){var C=C||function(n,p){var D;if(typeof window<"u"&&window.crypto&&(D=window.crypto),typeof self<"u"&&self.crypto&&(D=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(D=globalThis.crypto),!D&&typeof window<"u"&&window.msCrypto&&(D=window.msCrypto),!D&&typeof W<"u"&&W.crypto&&(D=W.crypto),!D&&typeof dr=="function")try{D=lr}catch{}var w=function(){if(D){if(typeof D.getRandomValues=="function")try{return D.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof D.randomBytes=="function")try{return D.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},B=Object.create||function(){function t(){}return function(a){var i;return t.prototype=a,i=new t,t.prototype=null,i}}(),d={},x=d.lib={},e=x.Base=function(){return{extend:function(t){var a=B(this);return t&&a.mixIn(t),(!a.hasOwnProperty("init")||this.init===a.init)&&(a.init=function(){a.$super.init.apply(this,arguments)}),a.init.prototype=a,a.$super=this,a},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var a in t)t.hasOwnProperty(a)&&(this[a]=t[a]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),u=x.WordArray=e.extend({init:function(t,a){t=this.words=t||[],a!=p?this.sigBytes=a:this.sigBytes=t.length*4},toString:function(t){return(t||s).stringify(this)},concat:function(t){var a=this.words,i=t.words,E=this.sigBytes,l=t.sigBytes;if(this.clamp(),E%4)for(var A=0;A>>2]>>>24-A%4*8&255;a[E+A>>>2]|=_<<24-(E+A)%4*8}else for(var S=0;S>>2]=i[S>>>2];return this.sigBytes+=l,this},clamp:function(){var t=this.words,a=this.sigBytes;t[a>>>2]&=4294967295<<32-a%4*8,t.length=n.ceil(a/4)},clone:function(){var t=e.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var a=[],i=0;i>>2]>>>24-l%4*8&255;E.push((A>>>4).toString(16)),E.push((A&15).toString(16))}return E.join("")},parse:function(t){for(var a=t.length,i=[],E=0;E>>3]|=parseInt(t.substr(E,2),16)<<24-E%8*4;return new u.init(i,a/2)}},o=r.Latin1={stringify:function(t){for(var a=t.words,i=t.sigBytes,E=[],l=0;l>>2]>>>24-l%4*8&255;E.push(String.fromCharCode(A))}return E.join("")},parse:function(t){for(var a=t.length,i=[],E=0;E>>2]|=(t.charCodeAt(E)&255)<<24-E%4*8;return new u.init(i,a)}},c=r.Utf8={stringify:function(t){try{return decodeURIComponent(escape(o.stringify(t)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(t){return o.parse(unescape(encodeURIComponent(t)))}},f=x.BufferedBlockAlgorithm=e.extend({reset:function(){this._data=new u.init,this._nDataBytes=0},_append:function(t){typeof t=="string"&&(t=c.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(t){var a,i=this._data,E=i.words,l=i.sigBytes,A=this.blockSize,_=A*4,S=l/_;t?S=n.ceil(S):S=n.max((S|0)-this._minBufferSize,0);var v=S*A,F=n.min(v*4,l);if(v){for(var y=0;y>>2]|=d[u]<<24-u%4*8;w.call(this,e,x)}else w.apply(this,arguments)};B.prototype=D}}(),C.lib.WordArray})}(p0)),p0.exports}var _0={exports:{}},Ex;function Ar(){return Ex||(Ex=1,function(R,T){(function(C,n){R.exports=n(I())})(W,function(C){return function(){var n=C,p=n.lib,D=p.WordArray,w=n.enc;w.Utf16=w.Utf16BE={stringify:function(d){for(var x=d.words,e=d.sigBytes,u=[],r=0;r>>2]>>>16-r%4*8&65535;u.push(String.fromCharCode(s))}return u.join("")},parse:function(d){for(var x=d.length,e=[],u=0;u>>1]|=d.charCodeAt(u)<<16-u%2*16;return D.create(e,x*2)}},w.Utf16LE={stringify:function(d){for(var x=d.words,e=d.sigBytes,u=[],r=0;r>>2]>>>16-r%4*8&65535);u.push(String.fromCharCode(s))}return u.join("")},parse:function(d){for(var x=d.length,e=[],u=0;u>>1]|=B(d.charCodeAt(u)<<16-u%2*16);return D.create(e,x*2)}};function B(d){return d<<8&4278255360|d>>>8&16711935}}(),C.enc.Utf16})}(_0)),_0.exports}var b0={exports:{}},Ax;function e0(){return Ax||(Ax=1,function(R,T){(function(C,n){R.exports=n(I())})(W,function(C){return function(){var n=C,p=n.lib,D=p.WordArray,w=n.enc;w.Base64={stringify:function(d){var x=d.words,e=d.sigBytes,u=this._map;d.clamp();for(var r=[],s=0;s>>2]>>>24-s%4*8&255,c=x[s+1>>>2]>>>24-(s+1)%4*8&255,f=x[s+2>>>2]>>>24-(s+2)%4*8&255,h=o<<16|c<<8|f,t=0;t<4&&s+t*.75>>6*(3-t)&63));var a=u.charAt(64);if(a)for(;r.length%4;)r.push(a);return r.join("")},parse:function(d){var x=d.length,e=this._map,u=this._reverseMap;if(!u){u=this._reverseMap=[];for(var r=0;r>>6-s%4*2,f=o|c;u[r>>>2]|=f<<24-r%4*8,r++}return D.create(u,r)}}(),C.enc.Base64})}(b0)),b0.exports}var y0={exports:{}},Fx;function Fr(){return Fx||(Fx=1,function(R,T){(function(C,n){R.exports=n(I())})(W,function(C){return function(){var n=C,p=n.lib,D=p.WordArray,w=n.enc;w.Base64url={stringify:function(d,x){x===void 0&&(x=!0);var e=d.words,u=d.sigBytes,r=x?this._safe_map:this._map;d.clamp();for(var s=[],o=0;o>>2]>>>24-o%4*8&255,f=e[o+1>>>2]>>>24-(o+1)%4*8&255,h=e[o+2>>>2]>>>24-(o+2)%4*8&255,t=c<<16|f<<8|h,a=0;a<4&&o+a*.75>>6*(3-a)&63));var i=r.charAt(64);if(i)for(;s.length%4;)s.push(i);return s.join("")},parse:function(d,x){x===void 0&&(x=!0);var e=d.length,u=x?this._safe_map:this._map,r=this._reverseMap;if(!r){r=this._reverseMap=[];for(var s=0;s>>6-s%4*2,f=o|c;u[r>>>2]|=f<<24-r%4*8,r++}return D.create(u,r)}}(),C.enc.Base64url})}(y0)),y0.exports}var g0={exports:{}},Dx;function t0(){return Dx||(Dx=1,function(R,T){(function(C,n){R.exports=n(I())})(W,function(C){return function(n){var p=C,D=p.lib,w=D.WordArray,B=D.Hasher,d=p.algo,x=[];(function(){for(var c=0;c<64;c++)x[c]=n.abs(n.sin(c+1))*4294967296|0})();var e=d.MD5=B.extend({_doReset:function(){this._hash=new w.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(c,f){for(var h=0;h<16;h++){var t=f+h,a=c[t];c[t]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360}var i=this._hash.words,E=c[f+0],l=c[f+1],A=c[f+2],_=c[f+3],S=c[f+4],v=c[f+5],F=c[f+6],y=c[f+7],g=c[f+8],z=c[f+9],q=c[f+10],P=c[f+11],U=c[f+12],N=c[f+13],O=c[f+14],X=c[f+15],b=i[0],H=i[1],m=i[2],k=i[3];b=u(b,H,m,k,E,7,x[0]),k=u(k,b,H,m,l,12,x[1]),m=u(m,k,b,H,A,17,x[2]),H=u(H,m,k,b,_,22,x[3]),b=u(b,H,m,k,S,7,x[4]),k=u(k,b,H,m,v,12,x[5]),m=u(m,k,b,H,F,17,x[6]),H=u(H,m,k,b,y,22,x[7]),b=u(b,H,m,k,g,7,x[8]),k=u(k,b,H,m,z,12,x[9]),m=u(m,k,b,H,q,17,x[10]),H=u(H,m,k,b,P,22,x[11]),b=u(b,H,m,k,U,7,x[12]),k=u(k,b,H,m,N,12,x[13]),m=u(m,k,b,H,O,17,x[14]),H=u(H,m,k,b,X,22,x[15]),b=r(b,H,m,k,l,5,x[16]),k=r(k,b,H,m,F,9,x[17]),m=r(m,k,b,H,P,14,x[18]),H=r(H,m,k,b,E,20,x[19]),b=r(b,H,m,k,v,5,x[20]),k=r(k,b,H,m,q,9,x[21]),m=r(m,k,b,H,X,14,x[22]),H=r(H,m,k,b,S,20,x[23]),b=r(b,H,m,k,z,5,x[24]),k=r(k,b,H,m,O,9,x[25]),m=r(m,k,b,H,_,14,x[26]),H=r(H,m,k,b,g,20,x[27]),b=r(b,H,m,k,N,5,x[28]),k=r(k,b,H,m,A,9,x[29]),m=r(m,k,b,H,y,14,x[30]),H=r(H,m,k,b,U,20,x[31]),b=s(b,H,m,k,v,4,x[32]),k=s(k,b,H,m,g,11,x[33]),m=s(m,k,b,H,P,16,x[34]),H=s(H,m,k,b,O,23,x[35]),b=s(b,H,m,k,l,4,x[36]),k=s(k,b,H,m,S,11,x[37]),m=s(m,k,b,H,y,16,x[38]),H=s(H,m,k,b,q,23,x[39]),b=s(b,H,m,k,N,4,x[40]),k=s(k,b,H,m,E,11,x[41]),m=s(m,k,b,H,_,16,x[42]),H=s(H,m,k,b,F,23,x[43]),b=s(b,H,m,k,z,4,x[44]),k=s(k,b,H,m,U,11,x[45]),m=s(m,k,b,H,X,16,x[46]),H=s(H,m,k,b,A,23,x[47]),b=o(b,H,m,k,E,6,x[48]),k=o(k,b,H,m,y,10,x[49]),m=o(m,k,b,H,O,15,x[50]),H=o(H,m,k,b,v,21,x[51]),b=o(b,H,m,k,U,6,x[52]),k=o(k,b,H,m,_,10,x[53]),m=o(m,k,b,H,q,15,x[54]),H=o(H,m,k,b,l,21,x[55]),b=o(b,H,m,k,g,6,x[56]),k=o(k,b,H,m,X,10,x[57]),m=o(m,k,b,H,F,15,x[58]),H=o(H,m,k,b,N,21,x[59]),b=o(b,H,m,k,S,6,x[60]),k=o(k,b,H,m,P,10,x[61]),m=o(m,k,b,H,A,15,x[62]),H=o(H,m,k,b,z,21,x[63]),i[0]=i[0]+b|0,i[1]=i[1]+H|0,i[2]=i[2]+m|0,i[3]=i[3]+k|0},_doFinalize:function(){var c=this._data,f=c.words,h=this._nDataBytes*8,t=c.sigBytes*8;f[t>>>5]|=128<<24-t%32;var a=n.floor(h/4294967296),i=h;f[(t+64>>>9<<4)+15]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360,f[(t+64>>>9<<4)+14]=(i<<8|i>>>24)&16711935|(i<<24|i>>>8)&4278255360,c.sigBytes=(f.length+1)*4,this._process();for(var E=this._hash,l=E.words,A=0;A<4;A++){var _=l[A];l[A]=(_<<8|_>>>24)&16711935|(_<<24|_>>>8)&4278255360}return E},clone:function(){var c=B.clone.call(this);return c._hash=this._hash.clone(),c}});function u(c,f,h,t,a,i,E){var l=c+(f&h|~f&t)+a+E;return(l<>>32-i)+f}function r(c,f,h,t,a,i,E){var l=c+(f&t|h&~t)+a+E;return(l<>>32-i)+f}function s(c,f,h,t,a,i,E){var l=c+(f^h^t)+a+E;return(l<>>32-i)+f}function o(c,f,h,t,a,i,E){var l=c+(h^(f|~t))+a+E;return(l<>>32-i)+f}p.MD5=B._createHelper(e),p.HmacMD5=B._createHmacHelper(e)}(Math),C.MD5})}(g0)),g0.exports}var k0={exports:{}},px;function Mx(){return px||(px=1,function(R,T){(function(C,n){R.exports=n(I())})(W,function(C){return function(){var n=C,p=n.lib,D=p.WordArray,w=p.Hasher,B=n.algo,d=[],x=B.SHA1=w.extend({_doReset:function(){this._hash=new D.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,u){for(var r=this._hash.words,s=r[0],o=r[1],c=r[2],f=r[3],h=r[4],t=0;t<80;t++){if(t<16)d[t]=e[u+t]|0;else{var a=d[t-3]^d[t-8]^d[t-14]^d[t-16];d[t]=a<<1|a>>>31}var i=(s<<5|s>>>27)+h+d[t];t<20?i+=(o&c|~o&f)+1518500249:t<40?i+=(o^c^f)+1859775393:t<60?i+=(o&c|o&f|c&f)-1894007588:i+=(o^c^f)-899497514,h=f,f=c,c=o<<30|o>>>2,o=s,s=i}r[0]=r[0]+s|0,r[1]=r[1]+o|0,r[2]=r[2]+c|0,r[3]=r[3]+f|0,r[4]=r[4]+h|0},_doFinalize:function(){var e=this._data,u=e.words,r=this._nDataBytes*8,s=e.sigBytes*8;return u[s>>>5]|=128<<24-s%32,u[(s+64>>>9<<4)+14]=Math.floor(r/4294967296),u[(s+64>>>9<<4)+15]=r,e.sigBytes=u.length*4,this._process(),this._hash},clone:function(){var e=w.clone.call(this);return e._hash=this._hash.clone(),e}});n.SHA1=w._createHelper(x),n.HmacSHA1=w._createHmacHelper(x)}(),C.SHA1})}(k0)),k0.exports}var w0={exports:{}},_x;function rx(){return _x||(_x=1,function(R,T){(function(C,n){R.exports=n(I())})(W,function(C){return function(n){var p=C,D=p.lib,w=D.WordArray,B=D.Hasher,d=p.algo,x=[],e=[];(function(){function s(h){for(var t=n.sqrt(h),a=2;a<=t;a++)if(!(h%a))return!1;return!0}function o(h){return(h-(h|0))*4294967296|0}for(var c=2,f=0;f<64;)s(c)&&(f<8&&(x[f]=o(n.pow(c,1/2))),e[f]=o(n.pow(c,1/3)),f++),c++})();var u=[],r=d.SHA256=B.extend({_doReset:function(){this._hash=new w.init(x.slice(0))},_doProcessBlock:function(s,o){for(var c=this._hash.words,f=c[0],h=c[1],t=c[2],a=c[3],i=c[4],E=c[5],l=c[6],A=c[7],_=0;_<64;_++){if(_<16)u[_]=s[o+_]|0;else{var S=u[_-15],v=(S<<25|S>>>7)^(S<<14|S>>>18)^S>>>3,F=u[_-2],y=(F<<15|F>>>17)^(F<<13|F>>>19)^F>>>10;u[_]=v+u[_-7]+y+u[_-16]}var g=i&E^~i&l,z=f&h^f&t^h&t,q=(f<<30|f>>>2)^(f<<19|f>>>13)^(f<<10|f>>>22),P=(i<<26|i>>>6)^(i<<21|i>>>11)^(i<<7|i>>>25),U=A+P+g+e[_]+u[_],N=q+z;A=l,l=E,E=i,i=a+U|0,a=t,t=h,h=f,f=U+N|0}c[0]=c[0]+f|0,c[1]=c[1]+h|0,c[2]=c[2]+t|0,c[3]=c[3]+a|0,c[4]=c[4]+i|0,c[5]=c[5]+E|0,c[6]=c[6]+l|0,c[7]=c[7]+A|0},_doFinalize:function(){var s=this._data,o=s.words,c=this._nDataBytes*8,f=s.sigBytes*8;return o[f>>>5]|=128<<24-f%32,o[(f+64>>>9<<4)+14]=n.floor(c/4294967296),o[(f+64>>>9<<4)+15]=c,s.sigBytes=o.length*4,this._process(),this._hash},clone:function(){var s=B.clone.call(this);return s._hash=this._hash.clone(),s}});p.SHA256=B._createHelper(r),p.HmacSHA256=B._createHmacHelper(r)}(Math),C.SHA256})}(w0)),w0.exports}var H0={exports:{}},bx;function Dr(){return bx||(bx=1,function(R,T){(function(C,n,p){R.exports=n(I(),rx())})(W,function(C){return function(){var n=C,p=n.lib,D=p.WordArray,w=n.algo,B=w.SHA256,d=w.SHA224=B.extend({_doReset:function(){this._hash=new D.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var x=B._doFinalize.call(this);return x.sigBytes-=4,x}});n.SHA224=B._createHelper(d),n.HmacSHA224=B._createHmacHelper(d)}(),C.SHA224})}(H0)),H0.exports}var m0={exports:{}},yx;function Vx(){return yx||(yx=1,function(R,T){(function(C,n,p){R.exports=n(I(),l0())})(W,function(C){return function(){var n=C,p=n.lib,D=p.Hasher,w=n.x64,B=w.Word,d=w.WordArray,x=n.algo;function e(){return B.create.apply(B,arguments)}var u=[e(1116352408,3609767458),e(1899447441,602891725),e(3049323471,3964484399),e(3921009573,2173295548),e(961987163,4081628472),e(1508970993,3053834265),e(2453635748,2937671579),e(2870763221,3664609560),e(3624381080,2734883394),e(310598401,1164996542),e(607225278,1323610764),e(1426881987,3590304994),e(1925078388,4068182383),e(2162078206,991336113),e(2614888103,633803317),e(3248222580,3479774868),e(3835390401,2666613458),e(4022224774,944711139),e(264347078,2341262773),e(604807628,2007800933),e(770255983,1495990901),e(1249150122,1856431235),e(1555081692,3175218132),e(1996064986,2198950837),e(2554220882,3999719339),e(2821834349,766784016),e(2952996808,2566594879),e(3210313671,3203337956),e(3336571891,1034457026),e(3584528711,2466948901),e(113926993,3758326383),e(338241895,168717936),e(666307205,1188179964),e(773529912,1546045734),e(1294757372,1522805485),e(1396182291,2643833823),e(1695183700,2343527390),e(1986661051,1014477480),e(2177026350,1206759142),e(2456956037,344077627),e(2730485921,1290863460),e(2820302411,3158454273),e(3259730800,3505952657),e(3345764771,106217008),e(3516065817,3606008344),e(3600352804,1432725776),e(4094571909,1467031594),e(275423344,851169720),e(430227734,3100823752),e(506948616,1363258195),e(659060556,3750685593),e(883997877,3785050280),e(958139571,3318307427),e(1322822218,3812723403),e(1537002063,2003034995),e(1747873779,3602036899),e(1955562222,1575990012),e(2024104815,1125592928),e(2227730452,2716904306),e(2361852424,442776044),e(2428436474,593698344),e(2756734187,3733110249),e(3204031479,2999351573),e(3329325298,3815920427),e(3391569614,3928383900),e(3515267271,566280711),e(3940187606,3454069534),e(4118630271,4000239992),e(116418474,1914138554),e(174292421,2731055270),e(289380356,3203993006),e(460393269,320620315),e(685471733,587496836),e(852142971,1086792851),e(1017036298,365543100),e(1126000580,2618297676),e(1288033470,3409855158),e(1501505948,4234509866),e(1607167915,987167468),e(1816402316,1246189591)],r=[];(function(){for(var o=0;o<80;o++)r[o]=e()})();var s=x.SHA512=D.extend({_doReset:function(){this._hash=new d.init([new B.init(1779033703,4089235720),new B.init(3144134277,2227873595),new B.init(1013904242,4271175723),new B.init(2773480762,1595750129),new B.init(1359893119,2917565137),new B.init(2600822924,725511199),new B.init(528734635,4215389547),new B.init(1541459225,327033209)])},_doProcessBlock:function(o,c){for(var f=this._hash.words,h=f[0],t=f[1],a=f[2],i=f[3],E=f[4],l=f[5],A=f[6],_=f[7],S=h.high,v=h.low,F=t.high,y=t.low,g=a.high,z=a.low,q=i.high,P=i.low,U=E.high,N=E.low,O=l.high,X=l.low,b=A.high,H=A.low,m=_.high,k=_.low,G=S,K=v,$=F,L=y,i0=g,a0=z,E0=q,f0=P,M=U,Q=N,d0=O,s0=X,h0=b,c0=H,A0=m,v0=k,V=0;V<80;V++){var j,J,C0=r[V];if(V<16)J=C0.high=o[c+V*2]|0,j=C0.low=o[c+V*2+1]|0;else{var tx=r[V-15],n0=tx.high,B0=tx.low,Jx=(n0>>>1|B0<<31)^(n0>>>8|B0<<24)^n0>>>7,ax=(B0>>>1|n0<<31)^(B0>>>8|n0<<24)^(B0>>>7|n0<<25),nx=r[V-2],o0=nx.high,u0=nx.low,xr=(o0>>>19|u0<<13)^(o0<<3|u0>>>29)^o0>>>6,ox=(u0>>>19|o0<<13)^(u0<<3|o0>>>29)^(u0>>>6|o0<<26),ix=r[V-7],rr=ix.high,er=ix.low,fx=r[V-16],tr=fx.high,sx=fx.low;j=ax+er,J=Jx+rr+(j>>>0>>0?1:0),j=j+ox,J=J+xr+(j>>>0>>0?1:0),j=j+sx,J=J+tr+(j>>>0>>0?1:0),C0.high=J,C0.low=j}var ar=M&d0^~M&h0,cx=Q&s0^~Q&c0,nr=G&$^G&i0^$&i0,or=K&L^K&a0^L&a0,ir=(G>>>28|K<<4)^(G<<30|K>>>2)^(G<<25|K>>>7),vx=(K>>>28|G<<4)^(K<<30|G>>>2)^(K<<25|G>>>7),fr=(M>>>14|Q<<18)^(M>>>18|Q<<14)^(M<<23|Q>>>9),sr=(Q>>>14|M<<18)^(Q>>>18|M<<14)^(Q<<23|M>>>9),Bx=u[V],cr=Bx.high,ux=Bx.low,Y=v0+sr,x0=A0+fr+(Y>>>0>>0?1:0),Y=Y+cx,x0=x0+ar+(Y>>>0>>0?1:0),Y=Y+ux,x0=x0+cr+(Y>>>0>>0?1:0),Y=Y+j,x0=x0+J+(Y>>>0>>0?1:0),dx=vx+or,vr=ir+nr+(dx>>>0>>0?1:0);A0=h0,v0=c0,h0=d0,c0=s0,d0=M,s0=Q,Q=f0+Y|0,M=E0+x0+(Q>>>0>>0?1:0)|0,E0=i0,f0=a0,i0=$,a0=L,$=G,L=K,K=Y+dx|0,G=x0+vr+(K>>>0>>0?1:0)|0}v=h.low=v+K,h.high=S+G+(v>>>0>>0?1:0),y=t.low=y+L,t.high=F+$+(y>>>0>>0?1:0),z=a.low=z+a0,a.high=g+i0+(z>>>0>>0?1:0),P=i.low=P+f0,i.high=q+E0+(P>>>0>>0?1:0),N=E.low=N+Q,E.high=U+M+(N>>>0>>0?1:0),X=l.low=X+s0,l.high=O+d0+(X>>>0>>0?1:0),H=A.low=H+c0,A.high=b+h0+(H>>>0>>0?1:0),k=_.low=k+v0,_.high=m+A0+(k>>>0>>0?1:0)},_doFinalize:function(){var o=this._data,c=o.words,f=this._nDataBytes*8,h=o.sigBytes*8;c[h>>>5]|=128<<24-h%32,c[(h+128>>>10<<5)+30]=Math.floor(f/4294967296),c[(h+128>>>10<<5)+31]=f,o.sigBytes=c.length*4,this._process();var t=this._hash.toX32();return t},clone:function(){var o=D.clone.call(this);return o._hash=this._hash.clone(),o},blockSize:1024/32});n.SHA512=D._createHelper(s),n.HmacSHA512=D._createHmacHelper(s)}(),C.SHA512})}(m0)),m0.exports}var S0={exports:{}},gx;function pr(){return gx||(gx=1,function(R,T){(function(C,n,p){R.exports=n(I(),l0(),Vx())})(W,function(C){return function(){var n=C,p=n.x64,D=p.Word,w=p.WordArray,B=n.algo,d=B.SHA512,x=B.SHA384=d.extend({_doReset:function(){this._hash=new w.init([new D.init(3418070365,3238371032),new D.init(1654270250,914150663),new D.init(2438529370,812702999),new D.init(355462360,4144912697),new D.init(1731405415,4290775857),new D.init(2394180231,1750603025),new D.init(3675008525,1694076839),new D.init(1203062813,3204075428)])},_doFinalize:function(){var e=d._doFinalize.call(this);return e.sigBytes-=16,e}});n.SHA384=d._createHelper(x),n.HmacSHA384=d._createHmacHelper(x)}(),C.SHA384})}(S0)),S0.exports}var R0={exports:{}},kx;function _r(){return kx||(kx=1,function(R,T){(function(C,n,p){R.exports=n(I(),l0())})(W,function(C){return function(n){var p=C,D=p.lib,w=D.WordArray,B=D.Hasher,d=p.x64,x=d.Word,e=p.algo,u=[],r=[],s=[];(function(){for(var f=1,h=0,t=0;t<24;t++){u[f+5*h]=(t+1)*(t+2)/2%64;var a=h%5,i=(2*f+3*h)%5;f=a,h=i}for(var f=0;f<5;f++)for(var h=0;h<5;h++)r[f+5*h]=h+(2*f+3*h)%5*5;for(var E=1,l=0;l<24;l++){for(var A=0,_=0,S=0;S<7;S++){if(E&1){var v=(1<>>24)&16711935|(E<<24|E>>>8)&4278255360,l=(l<<8|l>>>24)&16711935|(l<<24|l>>>8)&4278255360;var A=t[i];A.high^=l,A.low^=E}for(var _=0;_<24;_++){for(var S=0;S<5;S++){for(var v=0,F=0,y=0;y<5;y++){var A=t[S+5*y];v^=A.high,F^=A.low}var g=o[S];g.high=v,g.low=F}for(var S=0;S<5;S++)for(var z=o[(S+4)%5],q=o[(S+1)%5],P=q.high,U=q.low,v=z.high^(P<<1|U>>>31),F=z.low^(U<<1|P>>>31),y=0;y<5;y++){var A=t[S+5*y];A.high^=v,A.low^=F}for(var N=1;N<25;N++){var v,F,A=t[N],O=A.high,X=A.low,b=u[N];b<32?(v=O<>>32-b,F=X<>>32-b):(v=X<>>64-b,F=O<>>64-b);var H=o[r[N]];H.high=v,H.low=F}var m=o[0],k=t[0];m.high=k.high,m.low=k.low;for(var S=0;S<5;S++)for(var y=0;y<5;y++){var N=S+5*y,A=t[N],G=o[N],K=o[(S+1)%5+5*y],$=o[(S+2)%5+5*y];A.high=G.high^~K.high&$.high,A.low=G.low^~K.low&$.low}var A=t[0],L=s[_];A.high^=L.high,A.low^=L.low}},_doFinalize:function(){var f=this._data,h=f.words;this._nDataBytes*8;var t=f.sigBytes*8,a=this.blockSize*32;h[t>>>5]|=1<<24-t%32,h[(n.ceil((t+1)/a)*a>>>5)-1]|=128,f.sigBytes=h.length*4,this._process();for(var i=this._state,E=this.cfg.outputLength/8,l=E/8,A=[],_=0;_>>24)&16711935|(v<<24|v>>>8)&4278255360,F=(F<<8|F>>>24)&16711935|(F<<24|F>>>8)&4278255360,A.push(F),A.push(v)}return new w.init(A,E)},clone:function(){for(var f=B.clone.call(this),h=f._state=this._state.slice(0),t=0;t<25;t++)h[t]=h[t].clone();return f}});p.SHA3=B._createHelper(c),p.HmacSHA3=B._createHmacHelper(c)}(Math),C.SHA3})}(R0)),R0.exports}var z0={exports:{}},wx;function br(){return wx||(wx=1,function(R,T){(function(C,n){R.exports=n(I())})(W,function(C){/** @preserve + (c) 2012 by Cédric Mesnil. All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */return function(n){var p=C,D=p.lib,w=D.WordArray,B=D.Hasher,d=p.algo,x=w.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),e=w.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),u=w.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),r=w.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),s=w.create([0,1518500249,1859775393,2400959708,2840853838]),o=w.create([1352829926,1548603684,1836072691,2053994217,0]),c=d.RIPEMD160=B.extend({_doReset:function(){this._hash=w.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(l,A){for(var _=0;_<16;_++){var S=A+_,v=l[S];l[S]=(v<<8|v>>>24)&16711935|(v<<24|v>>>8)&4278255360}var F=this._hash.words,y=s.words,g=o.words,z=x.words,q=e.words,P=u.words,U=r.words,N,O,X,b,H,m,k,G,K,$;m=N=F[0],k=O=F[1],G=X=F[2],K=b=F[3],$=H=F[4];for(var L,_=0;_<80;_+=1)L=N+l[A+z[_]]|0,_<16?L+=f(O,X,b)+y[0]:_<32?L+=h(O,X,b)+y[1]:_<48?L+=t(O,X,b)+y[2]:_<64?L+=a(O,X,b)+y[3]:L+=i(O,X,b)+y[4],L=L|0,L=E(L,P[_]),L=L+H|0,N=H,H=b,b=E(X,10),X=O,O=L,L=m+l[A+q[_]]|0,_<16?L+=i(k,G,K)+g[0]:_<32?L+=a(k,G,K)+g[1]:_<48?L+=t(k,G,K)+g[2]:_<64?L+=h(k,G,K)+g[3]:L+=f(k,G,K)+g[4],L=L|0,L=E(L,U[_]),L=L+$|0,m=$,$=K,K=E(G,10),G=k,k=L;L=F[1]+X+K|0,F[1]=F[2]+b+$|0,F[2]=F[3]+H+m|0,F[3]=F[4]+N+k|0,F[4]=F[0]+O+G|0,F[0]=L},_doFinalize:function(){var l=this._data,A=l.words,_=this._nDataBytes*8,S=l.sigBytes*8;A[S>>>5]|=128<<24-S%32,A[(S+64>>>9<<4)+14]=(_<<8|_>>>24)&16711935|(_<<24|_>>>8)&4278255360,l.sigBytes=(A.length+1)*4,this._process();for(var v=this._hash,F=v.words,y=0;y<5;y++){var g=F[y];F[y]=(g<<8|g>>>24)&16711935|(g<<24|g>>>8)&4278255360}return v},clone:function(){var l=B.clone.call(this);return l._hash=this._hash.clone(),l}});function f(l,A,_){return l^A^_}function h(l,A,_){return l&A|~l&_}function t(l,A,_){return(l|~A)^_}function a(l,A,_){return l&_|A&~_}function i(l,A,_){return l^(A|~_)}function E(l,A){return l<>>32-A}p.RIPEMD160=B._createHelper(c),p.HmacRIPEMD160=B._createHmacHelper(c)}(),C.RIPEMD160})}(z0)),z0.exports}var q0={exports:{}},Hx;function ex(){return Hx||(Hx=1,function(R,T){(function(C,n){R.exports=n(I())})(W,function(C){(function(){var n=C,p=n.lib,D=p.Base,w=n.enc,B=w.Utf8,d=n.algo;d.HMAC=D.extend({init:function(x,e){x=this._hasher=new x.init,typeof e=="string"&&(e=B.parse(e));var u=x.blockSize,r=u*4;e.sigBytes>r&&(e=x.finalize(e)),e.clamp();for(var s=this._oKey=e.clone(),o=this._iKey=e.clone(),c=s.words,f=o.words,h=0;h>>2]&255;v.sigBytes-=F}};D.BlockCipher=s.extend({cfg:s.cfg.extend({mode:f,padding:t}),reset:function(){var v;s.reset.call(this);var F=this.cfg,y=F.iv,g=F.mode;this._xformMode==this._ENC_XFORM_MODE?v=g.createEncryptor:(v=g.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==v?this._mode.init(this,y&&y.words):(this._mode=v.call(g,this,y&&y.words),this._mode.__creator=v)},_doProcessBlock:function(v,F){this._mode.processBlock(v,F)},_doFinalize:function(){var v,F=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(F.pad(this._data,this.blockSize),v=this._process(!0)):(v=this._process(!0),F.unpad(v)),v},blockSize:128/32});var a=D.CipherParams=w.extend({init:function(v){this.mixIn(v)},toString:function(v){return(v||this.formatter).stringify(this)}}),i=p.format={},E=i.OpenSSL={stringify:function(v){var F,y=v.ciphertext,g=v.salt;return g?F=B.create([1398893684,1701076831]).concat(g).concat(y):F=y,F.toString(e)},parse:function(v){var F,y=e.parse(v),g=y.words;return g[0]==1398893684&&g[1]==1701076831&&(F=B.create(g.slice(2,4)),g.splice(0,4),y.sigBytes-=16),a.create({ciphertext:y,salt:F})}},l=D.SerializableCipher=w.extend({cfg:w.extend({format:E}),encrypt:function(v,F,y,g){g=this.cfg.extend(g);var z=v.createEncryptor(y,g),q=z.finalize(F),P=z.cfg;return a.create({ciphertext:q,key:y,iv:P.iv,algorithm:v,mode:P.mode,padding:P.padding,blockSize:v.blockSize,formatter:g.format})},decrypt:function(v,F,y,g){g=this.cfg.extend(g),F=this._parse(F,g.format);var z=v.createDecryptor(y,g).finalize(F.ciphertext);return z},_parse:function(v,F){return typeof v=="string"?F.parse(v,this):v}}),A=p.kdf={},_=A.OpenSSL={execute:function(v,F,y,g,z){if(g||(g=B.random(64/8)),z)var q=r.create({keySize:F+y,hasher:z}).compute(v,g);else var q=r.create({keySize:F+y}).compute(v,g);var P=B.create(q.words.slice(F),y*4);return q.sigBytes=F*4,a.create({key:q,iv:P,salt:g})}},S=D.PasswordBasedCipher=l.extend({cfg:l.cfg.extend({kdf:_}),encrypt:function(v,F,y,g){g=this.cfg.extend(g);var z=g.kdf.execute(y,v.keySize,v.ivSize,g.salt,g.hasher);g.iv=z.iv;var q=l.encrypt.call(this,v,F,z.key,g);return q.mixIn(z),q},decrypt:function(v,F,y,g){g=this.cfg.extend(g),F=this._parse(F,g.format);var z=g.kdf.execute(y,v.keySize,v.ivSize,F.salt,g.hasher);g.iv=z.iv;var q=l.decrypt.call(this,v,F,z.key,g);return q}})}()})}(L0)),L0.exports}var T0={exports:{}},zx;function gr(){return zx||(zx=1,function(R,T){(function(C,n,p){R.exports=n(I(),Z())})(W,function(C){return C.mode.CFB=function(){var n=C.lib.BlockCipherMode.extend();n.Encryptor=n.extend({processBlock:function(D,w){var B=this._cipher,d=B.blockSize;p.call(this,D,w,d,B),this._prevBlock=D.slice(w,w+d)}}),n.Decryptor=n.extend({processBlock:function(D,w){var B=this._cipher,d=B.blockSize,x=D.slice(w,w+d);p.call(this,D,w,d,B),this._prevBlock=x}});function p(D,w,B,d){var x,e=this._iv;e?(x=e.slice(0),this._iv=void 0):x=this._prevBlock,d.encryptBlock(x,0);for(var u=0;u>24&255)===255){var d=B>>16&255,x=B>>8&255,e=B&255;d===255?(d=0,x===255?(x=0,e===255?e=0:++e):++x):++d,B=0,B+=d<<16,B+=x<<8,B+=e}else B+=1<<24;return B}function D(B){return(B[0]=p(B[0]))===0&&(B[1]=p(B[1])),B}var w=n.Encryptor=n.extend({processBlock:function(B,d){var x=this._cipher,e=x.blockSize,u=this._iv,r=this._counter;u&&(r=this._counter=u.slice(0),this._iv=void 0),D(r);var s=r.slice(0);x.encryptBlock(s,0);for(var o=0;o>>2]|=B<<24-d%4*8,n.sigBytes+=B},unpad:function(n){var p=n.words[n.sigBytes-1>>>2]&255;n.sigBytes-=p}},C.pad.Ansix923})}(K0)),K0.exports}var U0={exports:{}},Ix;function Rr(){return Ix||(Ix=1,function(R,T){(function(C,n,p){R.exports=n(I(),Z())})(W,function(C){return C.pad.Iso10126={pad:function(n,p){var D=p*4,w=D-n.sigBytes%D;n.concat(C.lib.WordArray.random(w-1)).concat(C.lib.WordArray.create([w<<24],1))},unpad:function(n){var p=n.words[n.sigBytes-1>>>2]&255;n.sigBytes-=p}},C.pad.Iso10126})}(U0)),U0.exports}var G0={exports:{}},Nx;function zr(){return Nx||(Nx=1,function(R,T){(function(C,n,p){R.exports=n(I(),Z())})(W,function(C){return C.pad.Iso97971={pad:function(n,p){n.concat(C.lib.WordArray.create([2147483648],1)),C.pad.ZeroPadding.pad(n,p)},unpad:function(n){C.pad.ZeroPadding.unpad(n),n.sigBytes--}},C.pad.Iso97971})}(G0)),G0.exports}var Z0={exports:{}},Xx;function qr(){return Xx||(Xx=1,function(R,T){(function(C,n,p){R.exports=n(I(),Z())})(W,function(C){return C.pad.ZeroPadding={pad:function(n,p){var D=p*4;n.clamp(),n.sigBytes+=D-(n.sigBytes%D||D)},unpad:function(n){for(var p=n.words,D=n.sigBytes-1,D=n.sigBytes-1;D>=0;D--)if(p[D>>>2]>>>24-D%4*8&255){n.sigBytes=D+1;break}}},C.pad.ZeroPadding})}(Z0)),Z0.exports}var $0={exports:{}},Ox;function Pr(){return Ox||(Ox=1,function(R,T){(function(C,n,p){R.exports=n(I(),Z())})(W,function(C){return C.pad.NoPadding={pad:function(){},unpad:function(){}},C.pad.NoPadding})}($0)),$0.exports}var Q0={exports:{}},Kx;function Wr(){return Kx||(Kx=1,function(R,T){(function(C,n,p){R.exports=n(I(),Z())})(W,function(C){return function(n){var p=C,D=p.lib,w=D.CipherParams,B=p.enc,d=B.Hex,x=p.format;x.Hex={stringify:function(e){return e.ciphertext.toString(d)},parse:function(e){var u=d.parse(e);return w.create({ciphertext:u})}}}(),C.format.Hex})}(Q0)),Q0.exports}var Y0={exports:{}},Ux;function Lr(){return Ux||(Ux=1,function(R,T){(function(C,n,p){R.exports=n(I(),e0(),t0(),r0(),Z())})(W,function(C){return function(){var n=C,p=n.lib,D=p.BlockCipher,w=n.algo,B=[],d=[],x=[],e=[],u=[],r=[],s=[],o=[],c=[],f=[];(function(){for(var a=[],i=0;i<256;i++)i<128?a[i]=i<<1:a[i]=i<<1^283;for(var E=0,l=0,i=0;i<256;i++){var A=l^l<<1^l<<2^l<<3^l<<4;A=A>>>8^A&255^99,B[E]=A,d[A]=E;var _=a[E],S=a[_],v=a[S],F=a[A]*257^A*16843008;x[E]=F<<24|F>>>8,e[E]=F<<16|F>>>16,u[E]=F<<8|F>>>24,r[E]=F;var F=v*16843009^S*65537^_*257^E*16843008;s[A]=F<<24|F>>>8,o[A]=F<<16|F>>>16,c[A]=F<<8|F>>>24,f[A]=F,E?(E=_^a[a[a[v^_]]],l^=a[a[l]]):E=l=1}})();var h=[0,1,2,4,8,16,32,64,128,27,54],t=w.AES=D.extend({_doReset:function(){var a;if(!(this._nRounds&&this._keyPriorReset===this._key)){for(var i=this._keyPriorReset=this._key,E=i.words,l=i.sigBytes/4,A=this._nRounds=l+6,_=(A+1)*4,S=this._keySchedule=[],v=0;v<_;v++)v6&&v%l==4&&(a=B[a>>>24]<<24|B[a>>>16&255]<<16|B[a>>>8&255]<<8|B[a&255]):(a=a<<8|a>>>24,a=B[a>>>24]<<24|B[a>>>16&255]<<16|B[a>>>8&255]<<8|B[a&255],a^=h[v/l|0]<<24),S[v]=S[v-l]^a);for(var F=this._invKeySchedule=[],y=0;y<_;y++){var v=_-y;if(y%4)var a=S[v];else var a=S[v-4];y<4||v<=4?F[y]=a:F[y]=s[B[a>>>24]]^o[B[a>>>16&255]]^c[B[a>>>8&255]]^f[B[a&255]]}}},encryptBlock:function(a,i){this._doCryptBlock(a,i,this._keySchedule,x,e,u,r,B)},decryptBlock:function(a,i){var E=a[i+1];a[i+1]=a[i+3],a[i+3]=E,this._doCryptBlock(a,i,this._invKeySchedule,s,o,c,f,d);var E=a[i+1];a[i+1]=a[i+3],a[i+3]=E},_doCryptBlock:function(a,i,E,l,A,_,S,v){for(var F=this._nRounds,y=a[i]^E[0],g=a[i+1]^E[1],z=a[i+2]^E[2],q=a[i+3]^E[3],P=4,U=1;U>>24]^A[g>>>16&255]^_[z>>>8&255]^S[q&255]^E[P++],O=l[g>>>24]^A[z>>>16&255]^_[q>>>8&255]^S[y&255]^E[P++],X=l[z>>>24]^A[q>>>16&255]^_[y>>>8&255]^S[g&255]^E[P++],b=l[q>>>24]^A[y>>>16&255]^_[g>>>8&255]^S[z&255]^E[P++];y=N,g=O,z=X,q=b}var N=(v[y>>>24]<<24|v[g>>>16&255]<<16|v[z>>>8&255]<<8|v[q&255])^E[P++],O=(v[g>>>24]<<24|v[z>>>16&255]<<16|v[q>>>8&255]<<8|v[y&255])^E[P++],X=(v[z>>>24]<<24|v[q>>>16&255]<<16|v[y>>>8&255]<<8|v[g&255])^E[P++],b=(v[q>>>24]<<24|v[y>>>16&255]<<16|v[g>>>8&255]<<8|v[z&255])^E[P++];a[i]=N,a[i+1]=O,a[i+2]=X,a[i+3]=b},keySize:256/32});n.AES=D._createHelper(t)}(),C.AES})}(Y0)),Y0.exports}var j0={exports:{}},Gx;function Tr(){return Gx||(Gx=1,function(R,T){(function(C,n,p){R.exports=n(I(),e0(),t0(),r0(),Z())})(W,function(C){return function(){var n=C,p=n.lib,D=p.WordArray,w=p.BlockCipher,B=n.algo,d=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],x=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],e=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],u=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],r=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],s=B.DES=w.extend({_doReset:function(){for(var h=this._key,t=h.words,a=[],i=0;i<56;i++){var E=d[i]-1;a[i]=t[E>>>5]>>>31-E%32&1}for(var l=this._subKeys=[],A=0;A<16;A++){for(var _=l[A]=[],S=e[A],i=0;i<24;i++)_[i/6|0]|=a[(x[i]-1+S)%28]<<31-i%6,_[4+(i/6|0)]|=a[28+(x[i+24]-1+S)%28]<<31-i%6;_[0]=_[0]<<1|_[0]>>>31;for(var i=1;i<7;i++)_[i]=_[i]>>>(i-1)*4+3;_[7]=_[7]<<5|_[7]>>>27}for(var v=this._invSubKeys=[],i=0;i<16;i++)v[i]=l[15-i]},encryptBlock:function(h,t){this._doCryptBlock(h,t,this._subKeys)},decryptBlock:function(h,t){this._doCryptBlock(h,t,this._invSubKeys)},_doCryptBlock:function(h,t,a){this._lBlock=h[t],this._rBlock=h[t+1],o.call(this,4,252645135),o.call(this,16,65535),c.call(this,2,858993459),c.call(this,8,16711935),o.call(this,1,1431655765);for(var i=0;i<16;i++){for(var E=a[i],l=this._lBlock,A=this._rBlock,_=0,S=0;S<8;S++)_|=u[S][((A^E[S])&r[S])>>>0];this._lBlock=A,this._rBlock=l^_}var v=this._lBlock;this._lBlock=this._rBlock,this._rBlock=v,o.call(this,1,1431655765),c.call(this,8,16711935),c.call(this,2,858993459),o.call(this,16,65535),o.call(this,4,252645135),h[t]=this._lBlock,h[t+1]=this._rBlock},keySize:64/32,ivSize:64/32,blockSize:64/32});function o(h,t){var a=(this._lBlock>>>h^this._rBlock)&t;this._rBlock^=a,this._lBlock^=a<>>h^this._lBlock)&t;this._lBlock^=a,this._rBlock^=a<192.");var a=t.slice(0,2),i=t.length<4?t.slice(0,2):t.slice(2,4),E=t.length<6?t.slice(0,2):t.slice(4,6);this._des1=s.createEncryptor(D.create(a)),this._des2=s.createEncryptor(D.create(i)),this._des3=s.createEncryptor(D.create(E))},encryptBlock:function(h,t){this._des1.encryptBlock(h,t),this._des2.decryptBlock(h,t),this._des3.encryptBlock(h,t)},decryptBlock:function(h,t){this._des3.decryptBlock(h,t),this._des2.encryptBlock(h,t),this._des1.decryptBlock(h,t)},keySize:192/32,ivSize:64/32,blockSize:64/32});n.TripleDES=w._createHelper(f)}(),C.TripleDES})}(j0)),j0.exports}var M0={exports:{}},Zx;function Ir(){return Zx||(Zx=1,function(R,T){(function(C,n,p){R.exports=n(I(),e0(),t0(),r0(),Z())})(W,function(C){return function(){var n=C,p=n.lib,D=p.StreamCipher,w=n.algo,B=w.RC4=D.extend({_doReset:function(){for(var e=this._key,u=e.words,r=e.sigBytes,s=this._S=[],o=0;o<256;o++)s[o]=o;for(var o=0,c=0;o<256;o++){var f=o%r,h=u[f>>>2]>>>24-f%4*8&255;c=(c+s[o]+h)%256;var t=s[o];s[o]=s[c],s[c]=t}this._i=this._j=0},_doProcessBlock:function(e,u){e[u]^=d.call(this)},keySize:256/32,ivSize:0});function d(){for(var e=this._S,u=this._i,r=this._j,s=0,o=0;o<4;o++){u=(u+1)%256,r=(r+e[u])%256;var c=e[u];e[u]=e[r],e[r]=c,s|=e[(e[u]+e[r])%256]<<24-o*8}return this._i=u,this._j=r,s}n.RC4=D._createHelper(B);var x=w.RC4Drop=B.extend({cfg:B.cfg.extend({drop:192}),_doReset:function(){B._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)d.call(this)}});n.RC4Drop=D._createHelper(x)}(),C.RC4})}(M0)),M0.exports}var V0={exports:{}},$x;function Nr(){return $x||($x=1,function(R,T){(function(C,n,p){R.exports=n(I(),e0(),t0(),r0(),Z())})(W,function(C){return function(){var n=C,p=n.lib,D=p.StreamCipher,w=n.algo,B=[],d=[],x=[],e=w.Rabbit=D.extend({_doReset:function(){for(var r=this._key.words,s=this.cfg.iv,o=0;o<4;o++)r[o]=(r[o]<<8|r[o]>>>24)&16711935|(r[o]<<24|r[o]>>>8)&4278255360;var c=this._X=[r[0],r[3]<<16|r[2]>>>16,r[1],r[0]<<16|r[3]>>>16,r[2],r[1]<<16|r[0]>>>16,r[3],r[2]<<16|r[1]>>>16],f=this._C=[r[2]<<16|r[2]>>>16,r[0]&4294901760|r[1]&65535,r[3]<<16|r[3]>>>16,r[1]&4294901760|r[2]&65535,r[0]<<16|r[0]>>>16,r[2]&4294901760|r[3]&65535,r[1]<<16|r[1]>>>16,r[3]&4294901760|r[0]&65535];this._b=0;for(var o=0;o<4;o++)u.call(this);for(var o=0;o<8;o++)f[o]^=c[o+4&7];if(s){var h=s.words,t=h[0],a=h[1],i=(t<<8|t>>>24)&16711935|(t<<24|t>>>8)&4278255360,E=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360,l=i>>>16|E&4294901760,A=E<<16|i&65535;f[0]^=i,f[1]^=l,f[2]^=E,f[3]^=A,f[4]^=i,f[5]^=l,f[6]^=E,f[7]^=A;for(var o=0;o<4;o++)u.call(this)}},_doProcessBlock:function(r,s){var o=this._X;u.call(this),B[0]=o[0]^o[5]>>>16^o[3]<<16,B[1]=o[2]^o[7]>>>16^o[5]<<16,B[2]=o[4]^o[1]>>>16^o[7]<<16,B[3]=o[6]^o[3]>>>16^o[1]<<16;for(var c=0;c<4;c++)B[c]=(B[c]<<8|B[c]>>>24)&16711935|(B[c]<<24|B[c]>>>8)&4278255360,r[s+c]^=B[c]},blockSize:128/32,ivSize:64/32});function u(){for(var r=this._X,s=this._C,o=0;o<8;o++)d[o]=s[o];s[0]=s[0]+1295307597+this._b|0,s[1]=s[1]+3545052371+(s[0]>>>0>>0?1:0)|0,s[2]=s[2]+886263092+(s[1]>>>0>>0?1:0)|0,s[3]=s[3]+1295307597+(s[2]>>>0>>0?1:0)|0,s[4]=s[4]+3545052371+(s[3]>>>0>>0?1:0)|0,s[5]=s[5]+886263092+(s[4]>>>0>>0?1:0)|0,s[6]=s[6]+1295307597+(s[5]>>>0>>0?1:0)|0,s[7]=s[7]+3545052371+(s[6]>>>0>>0?1:0)|0,this._b=s[7]>>>0>>0?1:0;for(var o=0;o<8;o++){var c=r[o]+s[o],f=c&65535,h=c>>>16,t=((f*f>>>17)+f*h>>>15)+h*h,a=((c&4294901760)*c|0)+((c&65535)*c|0);x[o]=t^a}r[0]=x[0]+(x[7]<<16|x[7]>>>16)+(x[6]<<16|x[6]>>>16)|0,r[1]=x[1]+(x[0]<<8|x[0]>>>24)+x[7]|0,r[2]=x[2]+(x[1]<<16|x[1]>>>16)+(x[0]<<16|x[0]>>>16)|0,r[3]=x[3]+(x[2]<<8|x[2]>>>24)+x[1]|0,r[4]=x[4]+(x[3]<<16|x[3]>>>16)+(x[2]<<16|x[2]>>>16)|0,r[5]=x[5]+(x[4]<<8|x[4]>>>24)+x[3]|0,r[6]=x[6]+(x[5]<<16|x[5]>>>16)+(x[4]<<16|x[4]>>>16)|0,r[7]=x[7]+(x[6]<<8|x[6]>>>24)+x[5]|0}n.Rabbit=D._createHelper(e)}(),C.Rabbit})}(V0)),V0.exports}var J0={exports:{}},Qx;function Xr(){return Qx||(Qx=1,function(R,T){(function(C,n,p){R.exports=n(I(),e0(),t0(),r0(),Z())})(W,function(C){return function(){var n=C,p=n.lib,D=p.StreamCipher,w=n.algo,B=[],d=[],x=[],e=w.RabbitLegacy=D.extend({_doReset:function(){var r=this._key.words,s=this.cfg.iv,o=this._X=[r[0],r[3]<<16|r[2]>>>16,r[1],r[0]<<16|r[3]>>>16,r[2],r[1]<<16|r[0]>>>16,r[3],r[2]<<16|r[1]>>>16],c=this._C=[r[2]<<16|r[2]>>>16,r[0]&4294901760|r[1]&65535,r[3]<<16|r[3]>>>16,r[1]&4294901760|r[2]&65535,r[0]<<16|r[0]>>>16,r[2]&4294901760|r[3]&65535,r[1]<<16|r[1]>>>16,r[3]&4294901760|r[0]&65535];this._b=0;for(var f=0;f<4;f++)u.call(this);for(var f=0;f<8;f++)c[f]^=o[f+4&7];if(s){var h=s.words,t=h[0],a=h[1],i=(t<<8|t>>>24)&16711935|(t<<24|t>>>8)&4278255360,E=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360,l=i>>>16|E&4294901760,A=E<<16|i&65535;c[0]^=i,c[1]^=l,c[2]^=E,c[3]^=A,c[4]^=i,c[5]^=l,c[6]^=E,c[7]^=A;for(var f=0;f<4;f++)u.call(this)}},_doProcessBlock:function(r,s){var o=this._X;u.call(this),B[0]=o[0]^o[5]>>>16^o[3]<<16,B[1]=o[2]^o[7]>>>16^o[5]<<16,B[2]=o[4]^o[1]>>>16^o[7]<<16,B[3]=o[6]^o[3]>>>16^o[1]<<16;for(var c=0;c<4;c++)B[c]=(B[c]<<8|B[c]>>>24)&16711935|(B[c]<<24|B[c]>>>8)&4278255360,r[s+c]^=B[c]},blockSize:128/32,ivSize:64/32});function u(){for(var r=this._X,s=this._C,o=0;o<8;o++)d[o]=s[o];s[0]=s[0]+1295307597+this._b|0,s[1]=s[1]+3545052371+(s[0]>>>0>>0?1:0)|0,s[2]=s[2]+886263092+(s[1]>>>0>>0?1:0)|0,s[3]=s[3]+1295307597+(s[2]>>>0>>0?1:0)|0,s[4]=s[4]+3545052371+(s[3]>>>0>>0?1:0)|0,s[5]=s[5]+886263092+(s[4]>>>0>>0?1:0)|0,s[6]=s[6]+1295307597+(s[5]>>>0>>0?1:0)|0,s[7]=s[7]+3545052371+(s[6]>>>0>>0?1:0)|0,this._b=s[7]>>>0>>0?1:0;for(var o=0;o<8;o++){var c=r[o]+s[o],f=c&65535,h=c>>>16,t=((f*f>>>17)+f*h>>>15)+h*h,a=((c&4294901760)*c|0)+((c&65535)*c|0);x[o]=t^a}r[0]=x[0]+(x[7]<<16|x[7]>>>16)+(x[6]<<16|x[6]>>>16)|0,r[1]=x[1]+(x[0]<<8|x[0]>>>24)+x[7]|0,r[2]=x[2]+(x[1]<<16|x[1]>>>16)+(x[0]<<16|x[0]>>>16)|0,r[3]=x[3]+(x[2]<<8|x[2]>>>24)+x[1]|0,r[4]=x[4]+(x[3]<<16|x[3]>>>16)+(x[2]<<16|x[2]>>>16)|0,r[5]=x[5]+(x[4]<<8|x[4]>>>24)+x[3]|0,r[6]=x[6]+(x[5]<<16|x[5]>>>16)+(x[4]<<16|x[4]>>>16)|0,r[7]=x[7]+(x[6]<<8|x[6]>>>24)+x[5]|0}n.RabbitLegacy=D._createHelper(e)}(),C.RabbitLegacy})}(J0)),J0.exports}var xx={exports:{}},Yx;function Or(){return Yx||(Yx=1,function(R,T){(function(C,n,p){R.exports=n(I(),e0(),t0(),r0(),Z())})(W,function(C){return function(){var n=C,p=n.lib,D=p.BlockCipher,w=n.algo;const B=16,d=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],x=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]];var e={pbox:[],sbox:[]};function u(f,h){let t=h>>24&255,a=h>>16&255,i=h>>8&255,E=h&255,l=f.sbox[0][t]+f.sbox[1][a];return l=l^f.sbox[2][i],l=l+f.sbox[3][E],l}function r(f,h,t){let a=h,i=t,E;for(let l=0;l1;--l)a=a^f.pbox[l],i=u(f,a)^i,E=a,a=i,i=E;return E=a,a=i,i=E,i=i^f.pbox[1],a=a^f.pbox[0],{left:a,right:i}}function o(f,h,t){for(let A=0;A<4;A++){f.sbox[A]=[];for(let _=0;_<256;_++)f.sbox[A][_]=x[A][_]}let a=0;for(let A=0;A=t&&(a=0);let i=0,E=0,l=0;for(let A=0;A{const s=new Date,a=s.getDay(),c=new Date(s);c.setDate(s.getDate()-a);const A=new Date(c);return A.setDate(c.getDate()+6),[c,A]}},{text:"最近三周",value:()=>{const s=new Date,a=s.getDay();let c=new Date(s);c.setDate(s.getDate()+(6-a));const A=new Date(c);return A.setDate(A.getDate()-20),[A,c]}},{text:"本月",value:()=>{const s=new Date,a=new Date(s.getFullYear(),s.getMonth(),1),c=new Date(s.getFullYear(),s.getMonth()+1,0);return[a,c]}}],weekName:["周日","周一","周二","周三","周四","周五","周六"],treeRef:null,treeProps:{children:"users",label:"name",value:"uid",isLeaf:s=>{if(s.uid)return!0}},assistanceId:"",userList:[]}),M=he(async s=>{if(!s||s.trim()===""){t.userList=[];return}try{const a=await fe(s,{search_type:"name"});t.userList=a.data||[]}catch(a){console.error("搜索用户失败:",a),t.userList=[]}},500),Y=(s,a)=>s?a.name.includes(s):!0,F=()=>{t.leftTab==1?(t.queryFrom.page=1,t.dataList=[],t.queryFrom.participant_user_uids=t.participant_user.join(","),b()):t.treeRef.filter(t.queryFrom.nickName)},O=s=>{t.leftTab==1?(t.assistanceId=s.id,x("updateDetail",s)):s.uid&&x("updateDetail",s)},X=()=>{console.log("外面的加载"),t.more&&(console.log(t.more,"state.more执行了"),t.queryFrom.page++,b())},b=async()=>{var s,a,c,A,w,B;try{t.leftListLoading=!0;let u=Ie(t.queryFrom);if((s=u.leftDatePicker)!=null&&s.length){const y=new Date(u.leftDatePicker[0]),k=new Date(u.leftDatePicker[1]);isNaN(y.getTime())?(console.error("开始时间格式无效:",u.leftDatePicker[0]),u.start_time=""):u.start_time=Math.floor(y.getTime()),isNaN(k.getTime())?(console.error("结束时间格式无效:",u.leftDatePicker[1]),u.end_time=""):u.end_time=Math.floor(k.getTime())}delete u.leftDatePicker;const h=await _e();if(!h)return;let D=await Ee(h==null?void 0:h.uid,{...u});t.dataList=(a=D.data.history)!=null&&a.length?t.dataList.concat(D.data.history):[],t.isFirst&&(x("updateDetail",(c=t.dataList)!=null&&c.length?t.dataList[0]:null),t.assistanceId=(A=t.dataList)!=null&&A.length?t.dataList[0].id:"",t.isFirst=!1),t.more=((w=t.dataList)==null?void 0:w.length){(s==null?void 0:s.level)===0?W(a,"",s==null?void 0:s.level):(s==null?void 0:s.level)>0&&(s.data.directory_uid?$(a,s.data.directory_uid,s==null?void 0:s.level):a(a))},W=async(s,a,c)=>{try{t.leftListLoading=!0;let A=await ce({level:1});A.meta.code==200&&s(A.data),t.leftListLoading=!1}catch(A){console.log(A),t.leftListLoading=!1}},$=async(s,a,c)=>{try{t.leftListLoading=!0;let A=[],w=[];const B=await ce({level:1,parent_uuid:a});B!=null&&B.data&&(w=B.data),a&&(A=(await Ce(a,{directory_uuid:a})).data),s([...w,...A]),t.leftListLoading=!1}catch(A){console.log(A),t.leftListLoading=!1}};Ae(()=>q.loading,s=>{t.loading=s}),Ae(()=>t.leftTab,s=>{x("updateTab",s),t.dataList=[],t.isFirst=!0,t.queryFrom={page_size:10,page:1,nickName:"",participant_user_uids:"",leftDatePicker:null},s==1?(t.isShow=!1,b()):z()}),we(()=>{t.dataList=[],t.isFirst=!0,b()});const{isFirst:d,leftTab:f,queryFrom:v,leftListLoading:S,loading:G,dataList:P,more:ne,isShow:ee,shortcuts:le,weekName:re,treeRef:te,treeProps:T,assistanceId:r,userList:n,participant_user:I}=pe(t);return(s,a)=>{const c=E("el-option"),A=E("el-select"),w=E("el-input"),B=E("el-date-picker"),u=E("el-empty"),h=E("el-scrollbar"),D=E("el-tree"),y=ae("infinite-scroll"),k=ae("loading");return o(),l("div",null,[K((o(),l("div",Ye,[i("div",Oe,[i("div",{class:de("list-tab-item "+(e(f)==1?"pitch-on":"")),onClick:a[0]||(a[0]=()=>f.value=1)},[e(f)==1?(o(),l("img",ze)):(o(),l("img",Ge))],2),i("div",{class:de("list-tab-item "+(e(f)==2?"pitch-on":"")),onClick:a[1]||(a[1]=()=>f.value=2)},[e(f)==2?(o(),l("img",Ze)):(o(),l("img",qe))],2)]),i("div",Xe,[e(f)==1?(o(),l("div",We,[m(A,{modelValue:e(I),"onUpdate:modelValue":a[2]||(a[2]=g=>ye(I)?I.value=g:null),multiple:"",filterable:"",clearable:"",remote:"","reserve-keyword":"",placeholder:"搜索成员","remote-method":e(M),loading:e(G),"collapse-tags":"","collapse-tags-tooltip":"",style:{width:"100%"},onChange:F},{default:C(()=>[(o(!0),l(j,null,U(e(n),g=>(o(),ie(c,{key:g.uid,label:g.name,value:g.uid},null,8,["label","value"]))),128))]),_:1},8,["modelValue","remote-method","loading"])])):_("",!0),e(f)==2?(o(),l("div",$e,[m(w,{modelValue:e(v).nickName,"onUpdate:modelValue":a[3]||(a[3]=g=>e(v).nickName=g),placeholder:"搜索成员",type:"text","prefix-icon":"Search",onChange:F},null,8,["modelValue"])])):_("",!0),e(f)==1?(o(),l("div",et,[m(B,{modelValue:e(v).leftDatePicker,"onUpdate:modelValue":a[4]||(a[4]=g=>e(v).leftDatePicker=g),type:"datetimerange",shortcuts:e(le),"range-separator":"到","start-placeholder":"开始时间","end-placeholder":"结束时间",format:"YYYY-MM-DD HH:mm","value-format":"YYYY-MM-DD HH:mm",onChange:F},null,8,["modelValue","shortcuts"])])):_("",!0),e(ee)&&e(f)==1?(o(),ie(h,{key:3,class:"left-list-scrollbar"},{default:C(()=>{var g,L;return[(g=e(P))!=null&&g.length?K((o(),l("div",tt,[(o(!0),l(j,null,U(e(P),(Q,Z)=>{var N;return o(),l("div",{key:Z,class:"content-list-item",onClick:R=>O(Q),style:ke(Q.id==e(r)?"border-color: #409EFF; ":"")},[i("div",it,[i("span",null,p(e(J)(Q.created_at,"{m}月{d}日"))+" "+p(e(re)[new Date(Q.created_at).getDay()]),1),i("span",null,p(e(J)(Q.created_at,"{y}年")),1)]),i("div",at,[i("div",ot,[i("div",nt,[(o(!0),l(j,null,U(Q.all_participants,(R,se)=>(o(),l("span",{key:se},p((R.display_name||R.user_uid)+(se+1==Q.all_participants.length?"":"、")),1))),128))]),i("span",null," 发起人:"+p(((N=Q.all_participants.find(R=>R.participant_role=="moderator"))==null?void 0:N.display_name)||""),1),i("span",null," 时间:"+p(e(J)(Q.created_at,"{h}:{i}")+" ~ "+(Q.updated_at?e(J)(Q.updated_at,"{h}:{i}"):"")),1)])])],12,st)}),128))])),[[y,X]]):_("",!0),(L=e(P))!=null&&L.length?(o(),l("div",lt,[e(ne)?(o(),l("p",rt,"Loading...")):(o(),l("p",ct,"No more"))])):(o(),l("div",At,[m(u,{description:"暂无记录"})]))]}),_:1})):_("",!0),!e(ee)&&e(f)==1?(o(),l("div",dt,[m(u,{description:"暂无记录"})])):_("",!0),e(f)==2?(o(),ie(h,{key:5,class:"left-list-scrollbar1",height:"calc(100vh - 120px)"},{default:C(()=>[m(D,{ref_key:"treeRef",ref:te,lazy:"",load:z,"filter-node-method":Y,"highlight-current":"",props:e(T),style:{width:"100%"},onNodeClick:O},{default:C(({data:g})=>[i("div",gt,p(g.name),1)]),_:1},8,["props"])]),_:1})):_("",!0)])])),[[k,e(S)||e(G)]])])}}},ut=me(mt,[["__scopeId","data-v-a5850d38"]]),pt=["element-loading-text"],It={class:"right-content"},Et={class:"right-content-title"},Ct={key:0,class:"agency-detail-massage-cont right-content-message"},ft={class:"agency-detail-cont-item"},Bt={class:"agency-detail-item-content"},Qt={class:"agency-detail-cont-item"},wt={class:"agency-detail-item-content"},ht={class:"agency-detail-cont-item"},yt={key:0,class:"agency-detail-item-content",style:{display:"flex","flex-wrap":"wrap"}},kt={class:"agency-detail-cont-item"},_t={class:"agency-detail-item-content"},vt={key:1,class:"right-content-file"},Dt={class:"content-file-video"},Lt={class:"file-video-bottom"},Rt=["src"],Mt={key:1,class:"video-null"},bt={class:"file-top"},St={class:"content-file-list"},Nt={key:0,class:"file-list-content"},Jt={class:"file-list-item-text"},Vt={class:"list-item-text text-out-of-hiding-1"},xt={key:2,class:"message-user",style:{height:"calc(100vh - 90px)"}},Ft={class:"message-user-card"},Pt={class:"user-card-nickName"},Tt=["src"],Ht={key:1,src:Ve},Kt={class:"user-card-information"},jt={class:"user-information-item"},Ut={class:"user-information-text"},Yt={class:"user-information-item"},Ot={class:"user-information-text"},zt={class:"user-information-item"},Gt={class:"user-information-text"},Zt={class:"user-card-btn"},qt={key:3,class:"message-null"},Xt={__name:"index",setup(oe){const V=Be();ve();const q=Le(),{proxy:x}=De(),t=ue({detail:{},weekName:["周日","周一","周二","周三","周四","周五","周六"],tabValue:1,isShow:!0,isShowLoading:!1,load:!1,loadText:"数据加载中",isLinkKnow:"F",socketInformation:null,inviteDialog:!1,cooperation:"skip",initiateLoading:!1}),M=ge(!1),Y=ge(null),F=r=>!r||Object.keys(r).length===0,O=async()=>{t.initiateLoading=!0;let r=null;try{try{r=JSON.parse(sessionStorage.getItem("userData"))||null}catch(I){console.error("解析 userData 失败:",I)}if(F(t.detail)){H({message:"请先选择人员",type:"warning"});return}if(t.detail.uid==r.uid){H({message:"不能邀请自己",type:"warning"});return}V.setUserUid(r.uid),V.setDetailUid(t.detail.uid),V.setDetailName(t.detail.name);const n=await be({max_participants:20});if(n.meta.code!=200){H.error(n.meta.message);return}n.data.room.uid&&await Se(n.data.room.uid,{participants:[{user_uid:t.detail.uid,display_name:t.detail.name}],participant_role:"participant"}),q.push({path:"/conferencingRoom",query:{room_uid:n.data.room.uid}})}catch(n){console.error("发起协作失败:",n),H.error("发起协作失败,请重试")}finally{t.initiateLoading=!1}},X=r=>{t.detail={},t.tabValue=r},b=async r=>{if(M.value=!0,r)if(t.detail={},t.tabValue==1)t.isShowLoading=!0,z(r);else{const n=await Me(r.uid);t.detail=n.data,M.value=!1}M.value=!1},z=async r=>{var n,I,s,a,c;try{let A=Ie(r);const[w,B]=await Promise.all([Ne(r.room_uid),Je(r.room_uid)]),u={...r,fileList:((n=w.data)==null?void 0:n.files)||[],remoteVideoFile:((s=(I=B.data)==null?void 0:I.recordings)==null?void 0:s[0])||{},initiator:((c=(a=r.all_participants)==null?void 0:a.find(h=>h.participant_role==="moderator"))==null?void 0:c.display_name)||"未知发起人"};t.detail=u,t.isShowLoading=!1}catch(A){console.error("获取文件列表失败:",A)}},W=()=>{let r=new Date(t.detail.created_at).getTime(),n=new Date(t.detail.updated_at).getTime();if(r&&n){let I=n-r;const s=Math.floor(I/(1e3*60*60)),a=Math.floor(I%(1e3*60*60)/(1e3*60)),c=Math.floor(I%(1e3*60)/1e3);return s>0?`${s}小时 ${a}分钟 ${c}秒`:a>0?`${a}分钟 ${c}秒`:`${c}秒`}else return"暂无"};function $(r){if(!r.preview_url){H.error("文件链接无效");return}Y.value.showEdit(r)}const{detail:d,weekName:f,tabValue:v,isShow:S,load:G,loadText:P,isLinkKnow:ne,socketInformation:ee,inviteDialog:le,cooperation:re,isShowLoading:te,initiateLoading:T}=pe(t);return(r,n)=>{const I=E("el-col"),s=E("View"),a=E("el-icon"),c=E("Download"),A=E("el-link"),w=E("el-scrollbar"),B=E("el-row"),u=E("el-button"),h=E("el-empty"),D=ae("loading");return o(),l("div",null,[K((o(),l("div",{class:"app-container","element-loading-text":e(P)},[m(B,{gutter:6,style:{padding:"0 10px",background:"#fefefe"}},{default:C(()=>[m(I,{xs:24,sm:24,md:8,lg:6},{default:C(()=>{var y,k;return[m(ut,{onUpdateDetail:b,onUpdateTab:X,loading:!((y=e(d))!=null&&y.appId)&&!((k=e(d))!=null&&k.userId)&&e(S)},null,8,["loading"])]}),_:1}),m(I,{xs:24,sm:24,md:16,lg:18},{default:C(()=>{var y,k;return[K((o(),l("div",It,[i("div",Et,p(e(v)==1?"协作信息":"员工信息"),1),e(S)&&e(v)==1?(o(),l("div",Ct,[i("div",ft,[n[0]||(n[0]=i("span",{class:"agency-detail-item-title"},"发起人",-1)),i("span",Bt,p(e(d).initiator),1)]),i("div",Qt,[n[1]||(n[1]=i("span",{class:"agency-detail-item-title"},"协作时间",-1)),i("span",wt,p(e(d).created_at?e(J)(e(d).created_at,"{y}年{m}月{d}日")+" "+e(f)[new Date(e(d).created_at).getDay()]+" "+e(J)(e(d).created_at,"{h}:{i}"):"暂无"),1)]),i("div",ht,[n[2]||(n[2]=i("span",{class:"agency-detail-item-title"},"成员",-1)),(k=(y=e(d))==null?void 0:y.all_participants)!=null&&k.length?(o(),l("span",yt,[(o(!0),l(j,null,U(e(d).all_participants,(g,L)=>(o(),l("span",{key:L},p((g.display_name||g.user_uid)+(L+1==e(d).all_participants.length?"":"、")),1))),128))])):_("",!0)]),i("div",kt,[n[3]||(n[3]=i("span",{class:"agency-detail-item-title"},"协作时长",-1)),i("span",_t,p(W()),1)])])):_("",!0),e(S)&&e(v)==1?(o(),l("div",vt,[m(B,{gutter:15},{default:C(()=>[m(I,{xs:24,sm:24,md:16,lg:18},{default:C(()=>{var g;return[i("div",Dt,[n[4]||(n[4]=i("div",{class:"file-top"},"协作视频",-1)),i("div",Lt,[(g=e(d).remoteVideoFile)!=null&&g.storage_url?(o(),l("video",{key:0,src:e(d).remoteVideoFile.storage_url,id:"videoPlayer",loop:"",autoplay:"",controls:""},null,8,Rt)):(o(),l("div",Mt,"暂无视频"))])])]}),_:1}),m(I,{xs:24,sm:24,md:8,lg:6},{default:C(()=>{var g,L;return[i("div",null,[i("div",bt," 附件("+p((L=(g=e(d))==null?void 0:g.fileList)!=null&&L.length?e(d).fileList.length:0)+") ",1),i("div",St,[m(w,{class:"file-list",height:"calc(100vh - 390px)"},{default:C(()=>{var Q,Z;return[(Z=(Q=e(d))==null?void 0:Q.fileList)!=null&&Z.length?(o(),l("div",Nt,[(o(!0),l(j,null,U(e(d).fileList,(N,R)=>(o(),l("div",{class:"file-list-item",key:R},[n[5]||(n[5]=i("div",{class:"file-list-item-icon"},null,-1)),i("div",Jt,[i("div",Vt,p(N.file_name),1),m(a,{size:18,color:"#0d74ff",style:{cursor:"pointer"},onClick:se=>$(N)},{default:C(()=>[m(s)]),_:2},1032,["onClick"]),m(A,{href:N.source_url,type:"primary",target:"_blank",underline:!1},{default:C(()=>[m(a,{size:18,color:"#0d74ff",style:{cursor:"pointer"}},{default:C(()=>[m(c)]),_:1})]),_:2},1032,["href"])])]))),128))])):_("",!0)]}),_:1})])])]}),_:1})]),_:1})])):e(S)&&e(v)==2?K((o(),l("div",xt,[i("div",Ft,[i("div",Pt,[e(d).avatar?(o(),l("img",{key:0,src:e(d).avatar},null,8,Tt)):(o(),l("img",Ht)),i("span",null,p(e(d).nickName||e(d).name||"暂无信息"),1)]),i("div",Kt,[n[9]||(n[9]=i("div",{class:"user-information-item"},[i("div",{class:"user-information-title"},[i("img",{src:xe,alt:""}),i("span",null,"性别")]),i("div",{class:"user-information-text"})],-1)),i("div",jt,[n[6]||(n[6]=i("div",{class:"user-information-title"},[i("img",{src:Fe,alt:""}),i("span",null,"手机号")],-1)),i("div",Ut,p(e(d).phonenumber||"暂无"),1)]),i("div",Yt,[n[7]||(n[7]=i("div",{class:"user-information-title"},[i("img",{src:Pe,alt:""}),i("span",null,"邮箱")],-1)),i("div",Ot,p(e(d).email||"暂无"),1)]),i("div",zt,[n[8]||(n[8]=i("div",{class:"user-information-title"},[i("img",{src:Te,alt:""}),i("span",null,"所属部门")],-1)),i("div",Gt,p(e(d).organization||"暂无"),1)])]),i("div",Zt,[m(u,{type:"info",onClick:O,loading:e(T),disabled:e(T)},{default:C(()=>[Re(p(e(T)?"正在发起邀请":"发起协作"),1)]),_:1},8,["loading","disabled"])])])])),[[D,M.value]]):(o(),l("div",qt,[m(h,{description:"暂无内容"})]))])),[[D,e(te)]])]}),_:1})]),_:1})],8,pt)),[[D,e(G)]]),m(Qe,{ref_key:"browseFileRef",ref:Y},null,512)])}}},ss=me(Xt,[["__scopeId","data-v-c41062bf"]]);export{ss as default}; diff --git a/dist/assets/index-DB_z42wD.js.gz b/dist/assets/index-DB_z42wD.js.gz new file mode 100644 index 0000000..6d721dd Binary files /dev/null and b/dist/assets/index-DB_z42wD.js.gz differ diff --git a/dist/assets/index-DNEs13w5.css b/dist/assets/index-DNEs13w5.css new file mode 100644 index 0000000..bfd3866 --- /dev/null +++ b/dist/assets/index-DNEs13w5.css @@ -0,0 +1 @@ +.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255, 255, 255, .5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-color-info);--el-button-active-color:var(--el-text-color-primary);display:inline-flex;justify-content:center;align-items:center;line-height:1;height:32px;white-space:nowrap;cursor:pointer;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;outline:0;transition:.1s;font-weight:var(--el-button-font-weight);-webkit-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);padding:8px 15px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-checkbox-button__inner{display:inline-block;line-height:1;font-weight:var(--el-checkbox-font-weight);white-space:nowrap;vertical-align:middle;cursor:pointer;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);border-left:0;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;transition:var(--el-transition-all);-webkit-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary);color:var(--el-checkbox-text-color);font-weight:var(--el-checkbox-font-weight);font-size:var(--el-font-size-base);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;-webkit-user-select:none;user-select:none;margin-right:30px;height:32px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-date-table{font-size:12px;-webkit-user-select:none;user-select:none}.el-time-panel{border-radius:2px;position:relative;width:180px;left:0;z-index:var(--el-index-top);-webkit-user-select:none;user-select:none;box-sizing:content-box}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;user-select:none}.el-empty__image img{-webkit-user-select:none;user-select:none;width:100%;height:100%;vertical-align:top;object-fit:contain}.el-image-viewer__btn{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;box-sizing:border-box;-webkit-user-select:none;user-select:none}.el-image-viewer__canvas{position:static;width:100%;height:100%;display:flex;justify-content:center;align-items:center;-webkit-user-select:none;user-select:none}.el-input-number__decrease,.el-input-number__increase{display:flex;justify-content:center;align-items:center;height:auto;position:absolute;z-index:1;top:1px;bottom:1px;width:32px;background:var(--el-fill-color-light);color:var(--el-text-color-regular);cursor:pointer;font-size:13px;-webkit-user-select:none;user-select:none}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;user-select:none}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:15px 19px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary);width:fit-content;max-width:calc(100% - 32px);box-sizing:border-box;border-radius:var(--el-border-radius-base);border-width:var(--el-border-width);border-style:var(--el-border-style);border-color:var(--el-message-border-color);position:fixed;left:50%;top:20px;transform:translate(-50%);background-color:var(--el-message-bg-color);transition:opacity var(--el-transition-duration),transform .4s,top .4s;padding:var(--el-message-padding);display:flex;align-items:center}.el-pager{-webkit-user-select:none;user-select:none;list-style:none;font-size:0;padding:0;margin:0;display:flex;align-items:center}.el-radio-button__inner{display:inline-block;line-height:1;white-space:nowrap;vertical-align:middle;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));border-left:0;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;cursor:pointer;transition:var(--el-transition-all);-webkit-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary);color:var(--el-radio-text-color);font-weight:var(--el-radio-font-weight);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;outline:0;font-size:var(--el-font-size-base);-webkit-user-select:none;user-select:none;margin-right:32px;height:32px}.el-select-v2__wrapper.is-disabled .is-transparent{opacity:1;-webkit-user-select:none;user-select:none}.el-select-v2__selected-item{line-height:inherit;height:inherit;-webkit-user-select:none;user-select:none;display:flex;flex-wrap:wrap}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown .el-select-dropdown__option-item.is-selected:after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-slider__button-wrapper{height:var(--el-slider-button-wrapper-size);width:var(--el-slider-button-wrapper-size);position:absolute;z-index:1;top:var(--el-slider-button-wrapper-offset);transform:translate(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;user-select:none;line-height:normal;outline:0}.el-slider__button{display:inline-block;width:var(--el-slider-button-size);height:var(--el-slider-button-size);vertical-align:middle;border:solid 2px var(--el-slider-main-bg-color);background-color:var(--el-color-white);border-radius:50%;box-sizing:border-box;transition:var(--el-transition-duration-fast);-webkit-user-select:none;user-select:none}.el-step__icon-inner{display:inline-block;-webkit-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-switch__core .el-switch__inner .is-icon,.el-switch__core .el-switch__inner .is-text{font-size:12px;color:var(--el-color-white);-webkit-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-table{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-fill-color-blank);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, .15);position:relative;overflow:hidden;box-sizing:border-box;height:fit-content;width:100%;max-width:100%;background-color:var(--el-table-bg-color);font-size:14px;color:var(--el-table-text-color)}.el-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;user-select:none}.el-table th.el-table__cell{-webkit-user-select:none;user-select:none;background-color:var(--el-table-header-bg-color)}.el-table-v2__header-cell{display:flex;align-items:center;padding:0 8px;height:100%;-webkit-user-select:none;user-select:none;overflow:hidden;background-color:var(--el-table-header-bg-color);color:var(--el-table-header-text-color);font-weight:700}.el-table-v2__expand-icon{margin:0 4px;cursor:pointer;-webkit-user-select:none;user-select:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%;object-fit:contain}.el-upload-list--picture .el-upload-list__item-thumbnail{display:inline-flex;justify-content:center;align-items:center;width:70px;height:70px;object-fit:contain;position:relative;z-index:1;background-color:var(--el-color-white)}:root{--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;color-scheme:light;--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, .04),0px 8px 20px rgba(0, 0, 0, .08);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, .12);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, .12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, .08),0px 12px 32px rgba(0, 0, 0, .12),0px 8px 16px -8px rgba(0, 0, 0, .16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0, 0, 0, .8);--el-overlay-color-light:rgba(0, 0, 0, .7);--el-overlay-color-lighter:rgba(0, 0, 0, .5);--el-mask-color:rgba(255, 255, 255, .9);--el-mask-color-extra-light:rgba(255, 255, 255, .3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-icon-loading{animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-affix--fixed{position:fixed}.el-alert{--el-alert-padding:8px 16px;--el-alert-border-radius-base:var(--el-border-radius-base);--el-alert-title-font-size:13px;--el-alert-description-font-size:12px;--el-alert-close-font-size:12px;--el-alert-close-customed-font-size:13px;--el-alert-icon-size:16px;--el-alert-icon-large-size:28px;width:100%;padding:var(--el-alert-padding);margin:0;box-sizing:border-box;border-radius:var(--el-alert-border-radius-base);position:relative;background-color:var(--el-color-white);overflow:hidden;opacity:1;display:flex;align-items:center;transition:opacity var(--el-transition-duration-fast)}.el-alert.is-light .el-alert__close-btn{color:var(--el-text-color-placeholder)}.el-alert.is-dark .el-alert__close-btn,.el-alert.is-dark .el-alert__description{color:var(--el-color-white)}.el-alert.is-center{justify-content:center}.el-alert--success{--el-alert-bg-color:var(--el-color-success-light-9)}.el-alert--success.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-success)}.el-alert--success.is-light .el-alert__description{color:var(--el-color-success)}.el-alert--success.is-dark{background-color:var(--el-color-success);color:var(--el-color-white)}.el-alert--info{--el-alert-bg-color:var(--el-color-info-light-9)}.el-alert--info.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-info)}.el-alert--info.is-light .el-alert__description{color:var(--el-color-info)}.el-alert--info.is-dark{background-color:var(--el-color-info);color:var(--el-color-white)}.el-alert--warning{--el-alert-bg-color:var(--el-color-warning-light-9)}.el-alert--warning.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-warning)}.el-alert--warning.is-light .el-alert__description{color:var(--el-color-warning)}.el-alert--warning.is-dark{background-color:var(--el-color-warning);color:var(--el-color-white)}.el-alert--error{--el-alert-bg-color:var(--el-color-error-light-9)}.el-alert--error.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-error)}.el-alert--error.is-light .el-alert__description{color:var(--el-color-error)}.el-alert--error.is-dark{background-color:var(--el-color-error);color:var(--el-color-white)}.el-alert__content{display:table-cell;padding:0 8px}.el-alert .el-alert__icon{font-size:var(--el-alert-icon-size);width:var(--el-alert-icon-size)}.el-alert .el-alert__icon.is-big{font-size:var(--el-alert-icon-large-size);width:var(--el-alert-icon-large-size)}.el-alert__title{font-size:var(--el-alert-title-font-size);line-height:18px;vertical-align:text-top}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:var(--el-alert-description-font-size);margin:5px 0 0}.el-alert .el-alert__close-btn{font-size:var(--el-alert-close-font-size);opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert .el-alert__close-btn.is-customed{font-style:normal;font-size:var(--el-alert-close-customed-font-size);top:9px}.el-alert-fade-enter-from,.el-alert-fade-leave-active{opacity:0}.el-aside{overflow:auto;box-sizing:border-box;flex-shrink:0;width:var(--el-aside-width,300px)}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-autocomplete__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-autocomplete__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-autocomplete-suggestion{border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);list-style:none;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li:hover,.el-autocomplete-suggestion li.highlighted{background-color:var(--el-fill-color-light)}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid var(--el-color-black)}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:var(--el-text-color-secondary)}.el-autocomplete-suggestion.is-loading li:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:var(--el-bg-color-overlay)}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-avatar{--el-avatar-text-color:var(--el-color-white);--el-avatar-bg-color:var(--el-text-color-disabled);--el-avatar-text-size:14px;--el-avatar-icon-size:18px;--el-avatar-border-radius:var(--el-border-radius-base);--el-avatar-size-large:56px;--el-avatar-size-small:24px;--el-avatar-size:40px;display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;text-align:center;overflow:hidden;color:var(--el-avatar-text-color);background:var(--el-avatar-bg-color);width:var(--el-avatar-size);height:var(--el-avatar-size);font-size:var(--el-avatar-text-size)}.el-avatar>img{display:block;height:100%}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:var(--el-avatar-border-radius)}.el-avatar--icon{font-size:var(--el-avatar-icon-size)}.el-avatar--small{--el-avatar-size:24px}.el-avatar--large{--el-avatar-size:56px}.el-backtop{--el-backtop-bg-color:var(--el-bg-color-overlay);--el-backtop-text-color:var(--el-color-primary);--el-backtop-hover-bg-color:var(--el-border-color-extra-light);position:fixed;background-color:var(--el-backtop-bg-color);width:40px;height:40px;border-radius:50%;color:var(--el-backtop-text-color);display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:var(--el-box-shadow-lighter);cursor:pointer;z-index:5}.el-backtop:hover{background-color:var(--el-backtop-hover-bg-color)}.el-backtop__icon{font-size:20px}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:var(--el-badge-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;justify-content:center;align-items:center;font-size:var(--el-badge-font-size);height:var(--el-badge-size);padding:0 var(--el-badge-padding);white-space:nowrap;border:1px solid var(--el-bg-color)}.el-badge__content.is-fixed{position:absolute;top:0;right:calc(1px + var(--el-badge-size)/ 2);transform:translateY(-50%) translate(100%)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:var(--el-text-color-placeholder)}.el-breadcrumb__separator.el-icon{margin:0 6px;font-weight:400}.el-breadcrumb__separator.el-icon svg{vertical-align:middle}.el-breadcrumb__item{float:left;display:flex;align-items:center}.el-breadcrumb__inner{color:var(--el-text-color-regular)}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{font-weight:700;text-decoration:none;transition:var(--el-transition-color);color:var(--el-text-color-primary)}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:var(--el-color-primary);cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{font-weight:400;color:var(--el-text-color-regular);cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table;content:""}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base);border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base)}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:var(--el-border-radius-round)}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group>.el-button.is-active{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255, 255, 255, .5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-color-info);--el-button-active-color:var(--el-text-color-primary);display:inline-flex;justify-content:center;align-items:center;line-height:1;height:32px;white-space:nowrap;cursor:pointer;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;outline:0;transition:.1s;font-weight:var(--el-button-font-weight);-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);padding:8px 15px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button:focus,.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:0}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button>span{display:inline-flex;align-items:center}.el-button+.el-button{margin-left:12px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:var(--el-mask-color-extra-light)}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{border-radius:50%;padding:8px}.el-button.is-text{color:var(--el-button-text-color);border:0 solid transparent;background-color:transparent}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important}.el-button.is-text:not(.is-disabled):focus,.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:focus,.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{border-color:transparent;color:var(--el-button-text-color);background:0 0;padding:2px;height:auto}.el-button.is-link:focus,.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button.is-link:not(.is-disabled):focus,.el-button.is-link:not(.is-disabled):hover{border-color:transparent;background-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);border-color:transparent;background-color:transparent}.el-button--text{border-color:transparent;background:0 0;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button--text:not(.is-disabled):focus,.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);border-color:transparent;background-color:transparent}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);border-color:transparent;background-color:transparent}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size:40px;height:var(--el-button-size);padding:12px 19px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size:24px;height:var(--el-button-size);padding:5px 11px;font-size:12px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px}.el-calendar{--el-calendar-border:var(--el-table-border, 1px solid var(--el-border-color-lighter));--el-calendar-header-border-bottom:var(--el-calendar-border);--el-calendar-selected-bg-color:var(--el-color-primary-light-9);--el-calendar-cell-width:85px;background-color:var(--el-fill-color-blank)}.el-calendar__header{display:flex;justify-content:space-between;padding:12px 20px;border-bottom:var(--el-calendar-header-border-bottom)}.el-calendar__title{color:var(--el-text-color);align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:var(--el-text-color-regular);font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:var(--el-text-color-placeholder)}.el-calendar-table td{border-bottom:var(--el-calendar-border);border-right:var(--el-calendar-border);vertical-align:top;transition:background-color var(--el-transition-duration-fast) ease}.el-calendar-table td.is-selected{background-color:var(--el-calendar-selected-bg-color)}.el-calendar-table td.is-today{color:var(--el-color-primary)}.el-calendar-table tr:first-child td{border-top:var(--el-calendar-border)}.el-calendar-table tr td:first-child{border-left:var(--el-calendar-border)}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;padding:8px;height:var(--el-calendar-cell-width)}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:var(--el-calendar-selected-bg-color)}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank);border-radius:var(--el-card-border-radius);border:1px solid var(--el-card-border-color);background-color:var(--el-card-bg-color);overflow:hidden;color:var(--el-text-color-primary);transition:var(--el-transition-duration)}.el-card.is-always-shadow{box-shadow:var(--el-box-shadow-light)}.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:var(--el-box-shadow-light)}.el-card__header{padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding);border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box}.el-card__body{padding:var(--el-card-padding)}.el-carousel__item{position:absolute;top:0;left:0;width:100%;height:100%;display:inline-block;overflow:hidden;z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item.is-active{z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%;transition:transform .4s ease-in-out}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:var(--el-index-normal)}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:calc(var(--el-index-normal) + 1)}.el-carousel__mask{position:absolute;width:100%;height:100%;top:0;left:0;background-color:var(--el-color-white);opacity:.24;transition:var(--el-transition-duration-fast)}.el-carousel{--el-carousel-arrow-font-size:12px;--el-carousel-arrow-size:36px;--el-carousel-arrow-background:rgba(31, 45, 61, .11);--el-carousel-arrow-hover-background:rgba(31, 45, 61, .23);--el-carousel-indicator-width:30px;--el-carousel-indicator-height:2px;--el-carousel-indicator-padding-horizontal:4px;--el-carousel-indicator-padding-vertical:12px;--el-carousel-indicator-out-color:var(--el-border-color-hover);position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:var(--el-carousel-arrow-size);width:var(--el-carousel-arrow-size);cursor:pointer;transition:var(--el-transition-duration);border-radius:50%;background-color:var(--el-carousel-arrow-background);color:#fff;position:absolute;top:50%;z-index:10;transform:translateY(-50%);text-align:center;font-size:var(--el-carousel-arrow-font-size);display:inline-flex;justify-content:center;align-items:center}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:var(--el-carousel-arrow-hover-background)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:calc(var(--el-index-normal) + 1)}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translate(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:calc(var(--el-carousel-indicator-height) + var(--el-carousel-indicator-padding-vertical) * 2);text-align:center;position:static;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:var(--el-carousel-indicator-out-color);opacity:.24}.el-carousel__indicators--labels{left:0;right:0;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px;color:#000}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:var(--el-carousel-indicator-padding-vertical) var(--el-carousel-indicator-padding-horizontal)}.el-carousel__indicator--vertical{padding:var(--el-carousel-indicator-padding-horizontal) var(--el-carousel-indicator-padding-vertical)}.el-carousel__indicator--vertical .el-carousel__button{width:var(--el-carousel-indicator-height);height:calc(var(--el-carousel-indicator-width)/ 2)}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:var(--el-carousel-indicator-width);height:var(--el-carousel-indicator-height);background-color:#fff;border:none;outline:0;padding:0;margin:0;cursor:pointer;transition:var(--el-transition-duration)}.carousel-arrow-left-enter-from,.carousel-arrow-left-leave-active{transform:translateY(-50%) translate(-10px);opacity:0}.carousel-arrow-right-enter-from,.carousel-arrow-right-leave-active{transform:translateY(-50%) translate(10px);opacity:0}.el-cascader-panel{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);display:flex;border-radius:var(--el-cascader-menu-radius);font-size:var(--el-cascader-menu-font-size)}.el-cascader-panel.is-bordered{border:var(--el-cascader-menu-border);border-radius:var(--el-cascader-menu-radius)}.el-cascader-menu{min-width:180px;box-sizing:border-box;color:var(--el-cascader-menu-text-color);border-right:var(--el-cascader-menu-border)}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap.el-scrollbar__wrap{height:204px}.el-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;box-sizing:border-box}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;color:var(--el-cascader-color-empty)}.el-cascader-menu__empty-text .is-loading{margin-right:2px}.el-cascader-node{position:relative;display:flex;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:0}.el-cascader-node.is-selectable.in-active-path{color:var(--el-cascader-menu-text-color)}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:var(--el-cascader-node-background-hover)}.el-cascader-node.is-disabled{color:var(--el-cascader-node-color-disabled);cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{flex:1;text-align:left;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-checkbox{margin-right:0}.el-cascader-node>.el-radio{margin-right:0}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-cascader{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);display:inline-block;vertical-align:middle;position:relative;font-size:var(--el-font-size-base);line-height:32px;outline:0}.el-cascader:not(.is-disabled):hover .el-input__wrapper{cursor:pointer;box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-cascader .el-input{display:flex;cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis;cursor:pointer}.el-cascader .el-input .el-input__suffix-inner .el-icon{height:calc(100% - 2px)}.el-cascader .el-input .el-input__suffix-inner .el-icon svg{vertical-align:middle}.el-cascader .el-input .icon-arrow-down{transition:transform var(--el-transition-duration);font-size:14px}.el-cascader .el-input .icon-arrow-down.is-reverse{transform:rotate(180deg)}.el-cascader .el-input .icon-circle-close:hover{color:var(--el-input-clear-hover-color,var(--el-text-color-secondary))}.el-cascader .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-cascader--large{font-size:14px;line-height:40px}.el-cascader--small{font-size:12px;line-height:24px}.el-cascader.is-disabled .el-cascader__label{z-index:calc(var(--el-index-normal) + 1);color:var(--el-disabled-text-color)}.el-cascader__dropdown{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);font-size:var(--el-cascader-menu-font-size);border-radius:var(--el-cascader-menu-radius)}.el-cascader__dropdown.el-popper{background:var(--el-cascader-menu-fill);border:var(--el-cascader-menu-border);box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__dropdown.el-popper .el-popper__arrow:before{border:var(--el-cascader-menu-border)}.el-cascader__dropdown.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-cascader__dropdown.el-popper{box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;transform:translateY(-50%);display:flex;flex-wrap:wrap;line-height:normal;text-align:left;box-sizing:border-box}.el-cascader__tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--el-cascader-tag-background)}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{flex:none;background-color:var(--el-text-color-placeholder);color:var(--el-color-white)}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__collapse-tags{white-space:normal;z-index:var(--el-index-normal)}.el-cascader__collapse-tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--el-fill-color)}.el-cascader__collapse-tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__collapse-tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__collapse-tags .el-tag .el-icon-close{flex:none;background-color:var(--el-text-color-placeholder);color:var(--el-color-white)}.el-cascader__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__suggestion-panel{border-radius:var(--el-cascader-menu-radius)}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:var(--el-font-size-base);color:var(--el-cascader-menu-text-color);text-align:center}.el-cascader__suggestion-item{display:flex;justify-content:space-between;align-items:center;height:34px;padding:0 15px;text-align:left;outline:0;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:var(--el-cascader-node-background-hover)}.el-cascader__suggestion-item.is-checked{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{margin:10px 0;color:var(--el-cascader-color-empty)}.el-cascader__search-input{flex:1;height:24px;min-width:60px;margin:2px 0 2px 11px;padding:0;color:var(--el-cascader-menu-text-color);border:none;outline:0;box-sizing:border-box;background:0 0}.el-cascader__search-input::-moz-placeholder{color:transparent}.el-cascader__search-input::placeholder{color:transparent}.el-check-tag{background-color:var(--el-color-info-light-9);border-radius:var(--el-border-radius-base);color:var(--el-color-info);cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);line-height:var(--el-font-size-base);padding:7px 15px;transition:var(--el-transition-all);font-weight:700}.el-check-tag:hover{background-color:var(--el-color-info-light-7)}.el-check-tag.is-checked{background-color:var(--el-color-primary-light-8);color:var(--el-color-primary)}.el-check-tag.is-checked:hover{background-color:var(--el-color-primary-light-7)}.el-checkbox-button{--el-checkbox-button-checked-bg-color:var(--el-color-primary);--el-checkbox-button-checked-text-color:var(--el-color-white);--el-checkbox-button-checked-border-color:var(--el-color-primary);position:relative;display:inline-block}.el-checkbox-button__inner{display:inline-block;line-height:1;font-weight:var(--el-checkbox-font-weight);white-space:nowrap;vertical-align:middle;cursor:pointer;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);border-left:0;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.el-checkbox-button__inner.is-round{padding:8px 15px}.el-checkbox-button__inner:hover{color:var(--el-color-primary)}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:var(--el-checkbox-button-checked-text-color);background-color:var(--el-checkbox-button-checked-bg-color);border-color:var(--el-checkbox-button-checked-border-color);box-shadow:-1px 0 0 0 var(--el-color-primary-light-7)}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:var(--el-button-disabled-border-color,var(--el-border-color-light))}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:var(--el-border);border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base);box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button:last-child .el-checkbox-button__inner{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base)}.el-checkbox-button--large .el-checkbox-button__inner{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-checkbox-button--large .el-checkbox-button__inner.is-round{padding:12px 19px}.el-checkbox-button--small .el-checkbox-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:5px 11px}.el-checkbox-group{font-size:0;line-height:0}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary);color:var(--el-checkbox-text-color);font-weight:var(--el-checkbox-font-weight);font-size:var(--el-font-size-base);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;margin-right:30px;height:32px}.el-checkbox.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter);cursor:not-allowed}.el-checkbox.is-bordered.el-checkbox--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:0 11px 0 7px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox input:focus-visible+.el-checkbox__inner{outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px;border-radius:var(--el-checkbox-border-radius)}.el-checkbox__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:var(--el-checkbox-disabled-icon-color)}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:var(--el-checkbox-checked-icon-color);height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;width:var(--el-checkbox-input-width);height:var(--el-checkbox-input-height);background-color:var(--el-checkbox-bg-color);z-index:var(--el-index-normal);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{box-sizing:content-box;content:"";border:1px solid var(--el-checkbox-checked-icon-color);border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in 50ms;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox__label{display:inline-block;padding-left:8px;line-height:1;font-size:var(--el-checkbox-font-size)}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{width:14px;height:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{width:12px;height:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{width:2px;height:6px}.el-checkbox:last-of-type{margin-right:0}[class*=el-col-]{box-sizing:border-box}[class*=el-col-].is-guttered{display:block;min-height:1px}.el-col-0,.el-col-0.is-guttered{display:none}.el-col-0{max-width:0%;flex:0 0 0%}.el-col-offset-0{margin-left:0}.el-col-pull-0{position:relative;right:0}.el-col-push-0{position:relative;left:0}.el-col-1{max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{position:relative;left:4.1666666667%}.el-col-2{max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{position:relative;left:8.3333333333%}.el-col-3{max-width:12.5%;flex:0 0 12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{position:relative;left:12.5%}.el-col-4{max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{position:relative;left:16.6666666667%}.el-col-5{max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{position:relative;left:20.8333333333%}.el-col-6{max-width:25%;flex:0 0 25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{position:relative;left:25%}.el-col-7{max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{position:relative;left:29.1666666667%}.el-col-8{max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{position:relative;left:33.3333333333%}.el-col-9{max-width:37.5%;flex:0 0 37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{position:relative;left:37.5%}.el-col-10{max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{position:relative;left:41.6666666667%}.el-col-11{max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{position:relative;left:45.8333333333%}.el-col-12{max-width:50%;flex:0 0 50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{position:relative;left:50%}.el-col-13{max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{position:relative;left:54.1666666667%}.el-col-14{max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{position:relative;left:58.3333333333%}.el-col-15{max-width:62.5%;flex:0 0 62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{position:relative;left:62.5%}.el-col-16{max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{position:relative;left:66.6666666667%}.el-col-17{max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{position:relative;left:70.8333333333%}.el-col-18{max-width:75%;flex:0 0 75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{position:relative;left:75%}.el-col-19{max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{position:relative;left:79.1666666667%}.el-col-20{max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{position:relative;left:83.3333333333%}.el-col-21{max-width:87.5%;flex:0 0 87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{position:relative;left:87.5%}.el-col-22{max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{position:relative;left:91.6666666667%}.el-col-23{max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{position:relative;left:95.8333333333%}.el-col-24{max-width:100%;flex:0 0 100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{position:relative;left:100%}@media only screen and (max-width:768px){.el-col-xs-0,.el-col-xs-0.is-guttered{display:none}.el-col-xs-0{max-width:0%;flex:0 0 0%}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{position:relative;left:4.1666666667%}.el-col-xs-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{position:relative;left:8.3333333333%}.el-col-xs-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{position:relative;left:16.6666666667%}.el-col-xs-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{position:relative;left:20.8333333333%}.el-col-xs-6{display:block;max-width:25%;flex:0 0 25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{position:relative;left:29.1666666667%}.el-col-xs-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{position:relative;left:33.3333333333%}.el-col-xs-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{position:relative;left:41.6666666667%}.el-col-xs-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{position:relative;left:45.8333333333%}.el-col-xs-12{display:block;max-width:50%;flex:0 0 50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{position:relative;left:54.1666666667%}.el-col-xs-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{position:relative;left:58.3333333333%}.el-col-xs-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{position:relative;left:66.6666666667%}.el-col-xs-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{position:relative;left:70.8333333333%}.el-col-xs-18{display:block;max-width:75%;flex:0 0 75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{position:relative;left:79.1666666667%}.el-col-xs-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{position:relative;left:83.3333333333%}.el-col-xs-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{position:relative;left:91.6666666667%}.el-col-xs-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{position:relative;left:95.8333333333%}.el-col-xs-24{display:block;max-width:100%;flex:0 0 100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0,.el-col-sm-0.is-guttered{display:none}.el-col-sm-0{max-width:0%;flex:0 0 0%}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{position:relative;left:4.1666666667%}.el-col-sm-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{position:relative;left:8.3333333333%}.el-col-sm-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{position:relative;left:16.6666666667%}.el-col-sm-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{position:relative;left:20.8333333333%}.el-col-sm-6{display:block;max-width:25%;flex:0 0 25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{position:relative;left:29.1666666667%}.el-col-sm-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{position:relative;left:33.3333333333%}.el-col-sm-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{position:relative;left:41.6666666667%}.el-col-sm-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{position:relative;left:45.8333333333%}.el-col-sm-12{display:block;max-width:50%;flex:0 0 50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{position:relative;left:54.1666666667%}.el-col-sm-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{position:relative;left:58.3333333333%}.el-col-sm-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{position:relative;left:66.6666666667%}.el-col-sm-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{position:relative;left:70.8333333333%}.el-col-sm-18{display:block;max-width:75%;flex:0 0 75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{position:relative;left:79.1666666667%}.el-col-sm-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{position:relative;left:83.3333333333%}.el-col-sm-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{position:relative;left:91.6666666667%}.el-col-sm-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{position:relative;left:95.8333333333%}.el-col-sm-24{display:block;max-width:100%;flex:0 0 100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0,.el-col-md-0.is-guttered{display:none}.el-col-md-0{max-width:0%;flex:0 0 0%}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{position:relative;left:4.1666666667%}.el-col-md-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{position:relative;left:8.3333333333%}.el-col-md-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{position:relative;left:16.6666666667%}.el-col-md-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{position:relative;left:20.8333333333%}.el-col-md-6{display:block;max-width:25%;flex:0 0 25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{position:relative;left:29.1666666667%}.el-col-md-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{position:relative;left:33.3333333333%}.el-col-md-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{position:relative;left:41.6666666667%}.el-col-md-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{position:relative;left:45.8333333333%}.el-col-md-12{display:block;max-width:50%;flex:0 0 50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{position:relative;left:54.1666666667%}.el-col-md-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{position:relative;left:58.3333333333%}.el-col-md-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{position:relative;left:66.6666666667%}.el-col-md-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{position:relative;left:70.8333333333%}.el-col-md-18{display:block;max-width:75%;flex:0 0 75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{position:relative;left:79.1666666667%}.el-col-md-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{position:relative;left:83.3333333333%}.el-col-md-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{position:relative;left:91.6666666667%}.el-col-md-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{position:relative;left:95.8333333333%}.el-col-md-24{display:block;max-width:100%;flex:0 0 100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0,.el-col-lg-0.is-guttered{display:none}.el-col-lg-0{max-width:0%;flex:0 0 0%}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{position:relative;left:4.1666666667%}.el-col-lg-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{position:relative;left:8.3333333333%}.el-col-lg-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{position:relative;left:16.6666666667%}.el-col-lg-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{position:relative;left:20.8333333333%}.el-col-lg-6{display:block;max-width:25%;flex:0 0 25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{position:relative;left:29.1666666667%}.el-col-lg-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{position:relative;left:33.3333333333%}.el-col-lg-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{position:relative;left:41.6666666667%}.el-col-lg-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{position:relative;left:45.8333333333%}.el-col-lg-12{display:block;max-width:50%;flex:0 0 50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{position:relative;left:54.1666666667%}.el-col-lg-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{position:relative;left:58.3333333333%}.el-col-lg-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{position:relative;left:66.6666666667%}.el-col-lg-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{position:relative;left:70.8333333333%}.el-col-lg-18{display:block;max-width:75%;flex:0 0 75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{position:relative;left:79.1666666667%}.el-col-lg-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{position:relative;left:83.3333333333%}.el-col-lg-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{position:relative;left:91.6666666667%}.el-col-lg-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{position:relative;left:95.8333333333%}.el-col-lg-24{display:block;max-width:100%;flex:0 0 100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0,.el-col-xl-0.is-guttered{display:none}.el-col-xl-0{max-width:0%;flex:0 0 0%}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{position:relative;left:4.1666666667%}.el-col-xl-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{position:relative;left:8.3333333333%}.el-col-xl-3{display:block;max-width:12.5%;flex:0 0 12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{position:relative;left:16.6666666667%}.el-col-xl-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{position:relative;left:20.8333333333%}.el-col-xl-6{display:block;max-width:25%;flex:0 0 25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{position:relative;left:29.1666666667%}.el-col-xl-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{position:relative;left:33.3333333333%}.el-col-xl-9{display:block;max-width:37.5%;flex:0 0 37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{position:relative;left:41.6666666667%}.el-col-xl-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{position:relative;left:45.8333333333%}.el-col-xl-12{display:block;max-width:50%;flex:0 0 50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{position:relative;left:54.1666666667%}.el-col-xl-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{position:relative;left:58.3333333333%}.el-col-xl-15{display:block;max-width:62.5%;flex:0 0 62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{position:relative;left:66.6666666667%}.el-col-xl-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{position:relative;left:70.8333333333%}.el-col-xl-18{display:block;max-width:75%;flex:0 0 75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{position:relative;left:79.1666666667%}.el-col-xl-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{position:relative;left:83.3333333333%}.el-col-xl-21{display:block;max-width:87.5%;flex:0 0 87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{position:relative;left:91.6666666667%}.el-col-xl-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{position:relative;left:95.8333333333%}.el-col-xl-24{display:block;max-width:100%;flex:0 0 100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}.el-collapse{--el-collapse-border-color:var(--el-border-color-lighter);--el-collapse-header-height:48px;--el-collapse-header-bg-color:var(--el-fill-color-blank);--el-collapse-header-text-color:var(--el-text-color-primary);--el-collapse-header-font-size:13px;--el-collapse-content-bg-color:var(--el-fill-color-blank);--el-collapse-content-font-size:13px;--el-collapse-content-text-color:var(--el-text-color-primary);border-top:1px solid var(--el-collapse-border-color);border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item.is-disabled .el-collapse-item__header{color:var(--el-text-color-disabled);cursor:not-allowed}.el-collapse-item__header{display:flex;align-items:center;height:var(--el-collapse-header-height);line-height:var(--el-collapse-header-height);background-color:var(--el-collapse-header-bg-color);color:var(--el-collapse-header-text-color);cursor:pointer;border-bottom:1px solid var(--el-collapse-border-color);font-size:var(--el-collapse-header-font-size);font-weight:500;transition:border-bottom-color var(--el-transition-duration);outline:0}.el-collapse-item__arrow{margin:0 8px 0 auto;transition:transform var(--el-transition-duration);font-weight:300}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:var(--el-color-primary)}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:var(--el-collapse-content-bg-color);overflow:hidden;box-sizing:border-box;border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item__content{padding-bottom:25px;font-size:var(--el-collapse-content-font-size);color:var(--el-collapse-content-text-color);line-height:1.7692307692}.el-collapse-item:last-child{margin-bottom:-1px}.el-color-predefine{display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:flex;flex:1;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px var(--el-color-primary)}.el-color-predefine__color-selector>div{display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px;float:right}.el-color-hue-slider__bar{position:relative;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--el-border-color-lighter);box-shadow:0 0 2px #0009;z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(to bottom,red 0,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:linear-gradient(to right,#fff,#fff0)}.el-color-svpanel__black{background:linear-gradient(to top,#000,#0000)}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px #0000004d,0 0 1px 2px #0006;border-radius:50%;transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.el-color-alpha-slider__bar{position:relative;background:linear-gradient(to right,rgba(255,255,255,0) 0,var(--el-bg-color) 100%);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--el-border-color-lighter);box-shadow:0 0 2px #0009;z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(to bottom,#fff0 0,#fff)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:12px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-picker{display:inline-block;position:relative;line-height:normal;outline:0}.el-color-picker:hover:not(.is-disabled) .el-color-picker__trigger{border:1px solid var(--el-border-color-hover)}.el-color-picker:focus-visible:not(.is-disabled) .el-color-picker__trigger{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--large{height:40px}.el-color-picker--large .el-color-picker__trigger{height:40px;width:40px}.el-color-picker--large .el-color-picker__mask{height:38px;width:38px}.el-color-picker--small{height:24px}.el-color-picker--small .el-color-picker__trigger{height:24px;width:24px}.el-color-picker--small .el-color-picker__mask{height:22px;width:22px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:scale(.8)}.el-color-picker__mask{height:30px;width:30px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:#ffffffb3}.el-color-picker__trigger{display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;height:32px;width:32px;padding:4px;border:1px solid var(--el-border-color);border-radius:4px;font-size:0;position:relative;cursor:pointer}.el-color-picker__color{position:relative;display:block;box-sizing:border-box;border:1px solid var(--el-text-color-secondary);border-radius:var(--el-border-radius-small);width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.el-color-picker__color-inner{display:inline-flex;justify-content:center;align-items:center;width:100%;height:100%}.el-color-picker .el-color-picker__empty{font-size:12px;color:var(--el-text-color-secondary)}.el-color-picker .el-color-picker__icon{display:inline-flex;justify-content:center;align-items:center;color:#fff;font-size:12px}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;box-sizing:content-box;background-color:#fff;border-radius:var(--el-border-radius-base);box-shadow:var(--el-box-shadow-light)}.el-color-picker__panel.el-popper{border:1px solid var(--el-border-color-lighter)}.el-color-picker,.el-color-picker__panel{--el-color-picker-alpha-bg-a:#ccc;--el-color-picker-alpha-bg-b:transparent}.dark .el-color-picker,.dark .el-color-picker__panel{--el-color-picker-alpha-bg-a:#333333}.el-container{display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.el-container.is-vertical{flex-direction:column}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:var(--el-datepicker-text-color)}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table.is-week-mode .el-date-table__row.current .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td{width:32px;height:30px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td .el-date-table-cell{height:30px;padding:3px 0;box-sizing:border-box}.el-date-table td .el-date-table-cell .el-date-table-cell__text{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;transform:translate(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:var(--el-datepicker-off-text-color)}.el-date-table td.today{position:relative}.el-date-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-date-table td.today.end-date .el-date-table-cell__text,.el-date-table td.today.start-date .el-date-table-cell__text{color:#fff}.el-date-table td.available:hover{color:var(--el-datepicker-hover-text-color)}.el-date-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.current:not(.disabled) .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-date-table td.current:not(.disabled):focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-date-table td.end-date .el-date-table-cell,.el-date-table td.start-date .el-date-table-cell{color:#fff}.el-date-table td.end-date .el-date-table-cell__text,.el-date-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color)}.el-date-table td.start-date .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled .el-date-table-cell{background-color:var(--el-fill-color-light);opacity:1;cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-date-table td.selected .el-date-table-cell{margin-left:5px;margin-right:5px;background-color:var(--el-datepicker-inrange-bg-color);border-radius:15px}.el-date-table td.selected .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.selected .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:var(--el-datepicker-header-text-color)}.el-date-table td:focus{outline:0}.el-date-table th{padding:5px;color:var(--el-datepicker-header-text-color);font-weight:400;border-bottom:solid 1px var(--el-border-color-lighter)}.el-month-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;box-sizing:border-box}.el-month-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-month-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-month-table td.in-range div{background-color:var(--el-datepicker-inrange-bg-color)}.el-month-table td.in-range div:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:var(--el-datepicker-active-color)}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-month-table td:focus-visible{outline:0}.el-month-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-year-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-year-table .el-icon{color:var(--el-datepicker-icon-color)}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-year-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-year-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-year-table td .cell{width:48px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);border-radius:18px;margin:0 auto}.el-year-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-year-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-year-table td:focus-visible{outline:0}.el-year-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:192px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper.el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:default}.el-time-spinner__arrow{font-size:12px;color:var(--el-text-color-secondary);position:absolute;left:0;width:100%;z-index:var(--el-index-normal);text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:var(--el-color-primary)}.el-time-spinner__arrow.arrow-up{top:10px}.el-time-spinner__arrow.arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner{padding:0;text-align:center}.el-time-spinner__list{padding:0;margin:0;list-style:none;text-align:center}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:var(--el-text-color-regular)}.el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:pointer}.el-time-spinner__item.is-active:not(.is-disabled){color:var(--el-text-color-primary);font-weight:700}.el-time-spinner__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-picker__popper{--el-datepicker-border-color:var(--el-disabled-border-color)}.el-picker__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-datepicker-border-color);box-shadow:var(--el-box-shadow-light)}.el-picker__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-datepicker-border-color)}.el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-date-editor{--el-date-editor-width:220px;--el-date-editor-monthrange-width:300px;--el-date-editor-daterange-width:350px;--el-date-editor-datetimerange-width:400px;--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);position:relative;display:inline-block;text-align:left}.el-date-editor.el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-date-editor.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-date-editor.el-input,.el-date-editor.el-input__wrapper{width:var(--el-date-editor-width);height:var(--el-input-height,var(--el-component-size))}.el-date-editor--monthrange{--el-date-editor-width:var(--el-date-editor-monthrange-width)}.el-date-editor--daterange,.el-date-editor--timerange{--el-date-editor-width:var(--el-date-editor-daterange-width)}.el-date-editor--datetimerange{--el-date-editor-width:var(--el-date-editor-datetimerange-width)}.el-date-editor--dates .el-input__wrapper{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .close-icon,.el-date-editor .clear-icon{cursor:pointer}.el-date-editor .clear-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__icon{height:inherit;font-size:14px;color:var(--el-text-color-placeholder);float:left}.el-date-editor .el-range__icon svg{vertical-align:middle}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;display:inline-block;height:30px;line-height:30px;margin:0;padding:0;width:39%;text-align:center;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);background-color:transparent}.el-date-editor .el-range-input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input::placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-separator{flex:1;display:inline-flex;justify-content:center;align-items:center;height:100%;padding:0 5px;margin:0;font-size:14px;word-break:keep-all;color:var(--el-text-color-primary)}.el-date-editor .el-range__close-icon{font-size:14px;color:var(--el-text-color-placeholder);height:inherit;width:unset;cursor:pointer}.el-date-editor .el-range__close-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__close-icon svg{vertical-align:middle}.el-date-editor .el-range__close-icon--hidden{opacity:0;visibility:hidden}.el-range-editor.el-input__wrapper{display:inline-flex;align-items:center;padding:0 10px}.el-range-editor.is-active,.el-range-editor.is-active:hover{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-range-editor--large{line-height:var(--el-component-size-large)}.el-range-editor--large.el-input__wrapper{height:var(--el-component-size-large)}.el-range-editor--large .el-range-separator{line-height:40px;font-size:14px}.el-range-editor--large .el-range-input{height:38px;line-height:38px;font-size:14px}.el-range-editor--small{line-height:var(--el-component-size-small)}.el-range-editor--small.el-input__wrapper{height:var(--el-component-size-small)}.el-range-editor--small .el-range-separator{line-height:24px;font-size:12px}.el-range-editor--small .el-range-input{height:22px;line-height:22px;font-size:12px}.el-range-editor.is-disabled{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:var(--el-disabled-border-color)}.el-range-editor.is-disabled input{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input::placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled .el-range-separator{color:var(--el-disabled-text-color)}.el-picker-panel{color:var(--el-text-color-regular);background:var(--el-bg-color-overlay);border-radius:var(--el-border-radius-base);line-height:30px}.el-picker-panel .el-time-panel{margin:5px 0;border:solid 1px var(--el-datepicker-border-color);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid var(--el-datepicker-inner-border-color);padding:4px 12px;text-align:right;background-color:var(--el-bg-color-overlay);position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:var(--el-datepicker-text-color);padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:var(--el-datepicker-active-color)}.el-picker-panel__btn{border:1px solid var(--el-fill-color-darker);color:var(--el-text-color-primary);line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:var(--el-text-color-disabled);cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:var(--el-datepicker-icon-color);border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn:focus-visible{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn.is-disabled{color:var(--el-text-color-disabled)}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__icon-btn .el-icon{cursor:pointer;font-size:inherit}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;padding-top:6px;background-color:var(--el-bg-color-overlay);overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-date-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary);width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:solid 1px var(--el-border-color-lighter)}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:var(--el-text-color-regular)}.el-date-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label:focus-visible{outline:0;color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.el-date-picker .el-time-panel{position:absolute}.el-date-range-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary);width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid var(--el-datepicker-inner-border-color)}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:var(--el-datepicker-icon-color)}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px;z-index:1}.el-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid var(--el-datepicker-border-color)}.el-time-panel{border-radius:2px;position:relative;width:180px;left:0;z-index:var(--el-index-top);-webkit-user-select:none;-moz-user-select:none;user-select:none;box-sizing:content-box}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-16px;height:32px;z-index:-1;left:0;right:0;box-sizing:border-box;padding-top:6px;text-align:left}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{padding-left:50%;margin-right:12%;margin-left:12%;border-top:1px solid var(--el-border-color-light);border-bottom:1px solid var(--el-border-color-light)}.el-time-panel__content.has-seconds:after{left:66.6666666667%}.el-time-panel__content.has-seconds:before{padding-left:33.3333333333%}.el-time-panel__footer{border-top:1px solid var(--el-timepicker-inner-border-color,var(--el-border-color-light));padding:4px;height:36px;line-height:25px;text-align:right;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:var(--el-text-color-primary)}.el-time-panel__btn.confirm{font-weight:800;color:var(--el-timepicker-active-color,var(--el-color-primary))}.el-descriptions{--el-descriptions-table-border:1px solid var(--el-border-color-lighter);--el-descriptions-item-bordered-label-background:var(--el-fill-color-light);box-sizing:border-box;font-size:var(--el-font-size-base);color:var(--el-text-color-primary)}.el-descriptions__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.el-descriptions__title{color:var(--el-text-color-primary);font-size:16px;font-weight:700}.el-descriptions__body{background-color:var(--el-fill-color-blank)}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions__cell{box-sizing:border-box;text-align:left;font-weight:400;line-height:23px;font-size:14px}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-right{text-align:right}.el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{border:var(--el-descriptions-table-border);padding:8px 11px}.el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:12px}.el-descriptions--large{font-size:14px}.el-descriptions--large .el-descriptions__header{margin-bottom:20px}.el-descriptions--large .el-descriptions__header .el-descriptions__title{font-size:16px}.el-descriptions--large .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:14px}.el-descriptions--large .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:12px 15px}.el-descriptions--large .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:16px}.el-descriptions--small{font-size:12px}.el-descriptions--small .el-descriptions__header{margin-bottom:12px}.el-descriptions--small .el-descriptions__header .el-descriptions__title{font-size:14px}.el-descriptions--small .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:12px}.el-descriptions--small .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:4px 7px}.el-descriptions--small .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:8px}.el-descriptions__label.el-descriptions__cell.is-bordered-label{font-weight:700;color:var(--el-text-color-regular);background:var(--el-descriptions-item-bordered-label-background)}.el-descriptions__label:not(.is-bordered-label){color:var(--el-text-color-primary);margin-right:16px}.el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:6px}.el-descriptions__content.el-descriptions__cell.is-bordered-content{color:var(--el-text-color-primary)}.el-descriptions__content:not(.is-bordered-label){color:var(--el-text-color-regular)}.el-descriptions--large .el-descriptions__label:not(.is-bordered-label){margin-right:16px}.el-descriptions--large .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:8px}.el-descriptions--small .el-descriptions__label:not(.is-bordered-label){margin-right:12px}.el-descriptions--small .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:4px}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:var(--el-popup-modal-opacity);background:var(--el-popup-modal-bg-color)}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:20px;--el-dialog-border-radius:var(--el-border-radius-small);position:relative;margin:var(--el-dialog-margin-top,15vh) auto 50px;background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:0!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-dialog__header{padding:var(--el-dialog-padding-primary);padding-bottom:10px;margin-right:16px;word-break:break-all}.el-dialog__headerbtn{position:absolute;top:6px;right:0;padding:0;width:54px;height:54px;background:0 0;border:none;outline:0;cursor:pointer;font-size:var(--el-message-close-size,16px)}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{line-height:var(--el-dialog-font-line-height);font-size:var(--el-dialog-title-font-size);color:var(--el-text-color-primary)}.el-dialog__body{padding:calc(var(--el-dialog-padding-primary) + 10px) var(--el-dialog-padding-primary);color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size);word-break:break-all}.el-dialog__footer{padding:var(--el-dialog-padding-primary);padding-top:10px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px calc(var(--el-dialog-padding-primary) + 5px) 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-overlay-dialog{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto}.dialog-fade-enter-active{animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{animation:dialog-fade-out var(--el-transition-duration)}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-divider{position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0;border-top:1px var(--el-border-color) var(--el-border-style)}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative;border-left:1px var(--el-border-color) var(--el-border-style)}.el-divider__text{position:absolute;background-color:var(--el-bg-color);padding:0 20px;font-weight:500;color:var(--el-text-color-primary);font-size:14px}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translate(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-drawer{--el-drawer-bg-color:var(--el-dialog-bg-color, var(--el-bg-color));--el-drawer-padding-primary:var(--el-dialog-padding-primary, 20px);position:absolute;box-sizing:border-box;background-color:var(--el-drawer-bg-color);display:flex;flex-direction:column;box-shadow:var(--el-box-shadow-dark);overflow:hidden;transition:all var(--el-transition-duration)}.el-drawer .rtl,.el-drawer .ltr,.el-drawer .ttb,.el-drawer .btt{transform:translate(0)}.el-drawer__sr-focus:focus{outline:0!important}.el-drawer__header{align-items:center;color:#72767b;display:flex;margin-bottom:32px;padding:var(--el-drawer-padding-primary);padding-bottom:0}.el-drawer__header>:first-child{flex:1}.el-drawer__title{margin:0;flex:1;line-height:inherit;font-size:1rem}.el-drawer__footer{padding:var(--el-drawer-padding-primary);padding-top:10px;text-align:right}.el-drawer__close-btn{display:inline-flex;border:none;cursor:pointer;font-size:var(--el-font-size-extra-large);color:inherit;background-color:transparent;outline:0}.el-drawer__close-btn:focus i,.el-drawer__close-btn:hover i{color:var(--el-color-primary)}.el-drawer__body{flex:1;padding:var(--el-drawer-padding-primary);overflow:auto}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.btt,.el-drawer.ttb{width:100%;left:0;right:0}.el-drawer.ltr{left:0}.el-drawer.rtl{right:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer-fade-enter-active,.el-drawer-fade-leave-active{transition:all var(--el-transition-duration)}.el-drawer-fade-enter-active,.el-drawer-fade-enter-from,.el-drawer-fade-enter-to,.el-drawer-fade-leave-active,.el-drawer-fade-leave-from,.el-drawer-fade-leave-to{overflow:hidden!important}.el-drawer-fade-enter-from,.el-drawer-fade-leave-to{opacity:0}.el-drawer-fade-enter-to,.el-drawer-fade-leave-from{opacity:1}.el-drawer-fade-enter-from .rtl,.el-drawer-fade-leave-to .rtl{transform:translate(100%)}.el-drawer-fade-enter-from .ltr,.el-drawer-fade-leave-to .ltr{transform:translate(-100%)}.el-drawer-fade-enter-from .ttb,.el-drawer-fade-leave-to .ttb{transform:translateY(-100%)}.el-drawer-fade-enter-from .btt,.el-drawer-fade-leave-to .btt{transform:translateY(100%)}.el-dropdown{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10;display:inline-flex;position:relative;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);line-height:1;vertical-align:top}.el-dropdown.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-dropdown__popper{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10}.el-dropdown__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-dropdown-menu-box-shadow)}.el-dropdown__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-dropdown__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-dropdown__popper .el-dropdown-menu{border:none}.el-dropdown__popper .el-dropdown__popper-selfdefine{outline:0}.el-dropdown__popper .el-scrollbar__bar{z-index:calc(var(--el-dropdown-menu-index) + 1)}.el-dropdown__popper .el-dropdown__list{list-style:none;padding:0;margin:0;box-sizing:border-box}.el-dropdown .el-dropdown__caret-button{padding-left:0;padding-right:0;display:inline-flex;justify-content:center;align-items:center;width:32px;border-left:none}.el-dropdown .el-dropdown__caret-button>span{display:inline-flex}.el-dropdown .el-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:-1px;bottom:-1px;left:0;background:var(--el-overlay-color-lighter)}.el-dropdown .el-dropdown__caret-button.el-button:before{background:var(--el-border-color);opacity:.5}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{font-size:inherit;padding-left:0}.el-dropdown .el-dropdown-selfdefine{outline:0}.el-dropdown--large .el-dropdown__caret-button{width:40px}.el-dropdown--small .el-dropdown__caret-button{width:24px}.el-dropdown-menu{position:relative;top:0;left:0;z-index:var(--el-dropdown-menu-index);padding:5px 0;margin:0;background-color:var(--el-bg-color-overlay);border:none;border-radius:var(--el-border-radius-base);box-shadow:none;list-style:none}.el-dropdown-menu__item{display:flex;align-items:center;white-space:nowrap;list-style:none;line-height:22px;padding:5px 16px;margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);cursor:pointer;outline:0}.el-dropdown-menu__item:not(.is-disabled):focus{background-color:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{margin:6px 0;border-top:1px solid var(--el-border-color-lighter)}.el-dropdown-menu__item.is-disabled{cursor:not-allowed;color:var(--el-text-color-disabled)}.el-dropdown-menu--large{padding:7px 0}.el-dropdown-menu--large .el-dropdown-menu__item{padding:7px 20px;line-height:22px;font-size:14px}.el-dropdown-menu--large .el-dropdown-menu__item--divided{margin:8px 0}.el-dropdown-menu--small{padding:3px 0}.el-dropdown-menu--small .el-dropdown-menu__item{padding:2px 12px;line-height:20px;font-size:12px}.el-dropdown-menu--small .el-dropdown-menu__item--divided{margin:4px 0}.el-empty{--el-empty-padding:40px 0;--el-empty-image-width:160px;--el-empty-description-margin-top:20px;--el-empty-bottom-margin-top:20px;--el-empty-fill-color-0:var(--el-color-white);--el-empty-fill-color-1:#fcfcfd;--el-empty-fill-color-2:#f8f9fb;--el-empty-fill-color-3:#f7f8fc;--el-empty-fill-color-4:#eeeff3;--el-empty-fill-color-5:#edeef2;--el-empty-fill-color-6:#e9ebef;--el-empty-fill-color-7:#e5e7e9;--el-empty-fill-color-8:#e0e3e9;--el-empty-fill-color-9:#d5d7de;display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--el-empty-padding)}.el-empty__image{width:var(--el-empty-image-width)}.el-empty__image img{-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;height:100%;vertical-align:top;-o-object-fit:contain;object-fit:contain}.el-empty__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:100%;height:100%;vertical-align:top}.el-empty__description{margin-top:var(--el-empty-description-margin-top)}.el-empty__description p{margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-secondary)}.el-empty__bottom{margin-top:var(--el-empty-bottom-margin-top)}.el-footer{--el-footer-padding:0 20px;--el-footer-height:60px;padding:var(--el-footer-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-footer-height)}.el-form{--el-form-label-font-size:var(--el-font-size-base)}.el-form--label-left .el-form-item__label{justify-content:flex-start}.el-form--label-top .el-form-item{display:block}.el-form--label-top .el-form-item .el-form-item__label{display:block;height:auto;text-align:left;margin-bottom:8px;line-height:22px}.el-form--inline .el-form-item{display:inline-flex;vertical-align:middle;margin-right:32px}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form--large.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:12px;line-height:22px}.el-form--default.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:8px;line-height:22px}.el-form--small.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:4px;line-height:20px}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item__label-wrap{display:flex}.el-form-item__label{display:inline-flex;justify-content:flex-end;align-items:flex-start;flex:0 0 auto;font-size:var(--el-form-label-font-size);color:var(--el-text-color-regular);height:32px;line-height:32px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{display:flex;flex-wrap:wrap;align-items:center;flex:1;line-height:32px;position:relative;font-size:var(--font-size);min-width:0}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;line-height:1;padding-top:2px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{content:"*";color:var(--el-color-danger);margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{content:"*";color:var(--el-color-danger);margin-left:4px}.el-form-item.is-error .el-select-v2__wrapper,.el-form-item.is-error .el-select-v2__wrapper:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-input-group__prepend .el-input__wrapper{box-shadow:0 0 0 1px transparent inset}.el-form-item.is-error .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}.el-header{--el-header-padding:0 20px;--el-header-height:60px;padding:var(--el-header-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-header-height)}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-image-viewer__btn .el-icon{font-size:inherit;cursor:pointer}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:40px}.el-image-viewer__canvas{position:static;width:100%;height:100%;display:flex;justify-content:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-image-viewer__actions{left:50%;bottom:30px;transform:translate(-50%);width:282px;height:44px;padding:0 23px;background-color:var(--el-text-color-regular);border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:flex;align-items:center;justify-content:space-around}.el-image-viewer__prev{top:50%;transform:translateY(-50%);left:40px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__next{top:50%;transform:translateY(-50%);right:40px;text-indent:2px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__close{width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{animation:viewer-fade-in var(--el-transition-duration)}.viewer-fade-leave-active{animation:viewer-fade-out var(--el-transition-duration)}@keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-image__error,.el-image__inner,.el-image__placeholder,.el-image__wrapper{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top;opacity:1}.el-image__inner.is-loading{opacity:0}.el-image__wrapper{position:absolute;top:0;left:0}.el-image__placeholder{background:var(--el-fill-color-light)}.el-image__error{display:flex;justify-content:center;align-items:center;font-size:14px;background:var(--el-fill-color-light);color:var(--el-text-color-placeholder);vertical-align:middle}.el-image__preview{cursor:pointer}.el-input-number{position:relative;display:inline-flex;width:150px;line-height:30px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;text-align:center;line-height:1}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.el-input-number__decrease,.el-input-number__increase{display:flex;justify-content:center;align-items:center;height:auto;position:absolute;z-index:1;top:1px;bottom:1px;width:32px;background:var(--el-fill-color-light);color:var(--el-text-color-regular);cursor:pointer;font-size:13px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input_wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input_wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;border-left:var(--el-border)}.el-input-number__decrease{left:1px;border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border)}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{width:180px;line-height:38px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{width:40px;font-size:14px}.el-input-number--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{width:120px;line-height:22px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:24px;font-size:12px}.el-input-number--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{bottom:auto;left:auto;border-radius:0 var(--el-border-radius-base) 0 0;border-bottom:var(--el-border)}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;top:auto;left:auto;border-right:none;border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:var(--el-font-size-base)}.el-textarea__inner{position:relative;display:block;resize:vertical;padding:5px 11px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;font-family:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;-webkit-appearance:none;box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);border:none}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{outline:0;box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);position:absolute;font-size:12px;line-height:14px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{border-color:var(--el-color-danger)}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-height:var(--el-component-size);position:relative;font-size:var(--el-font-size-base);display:inline-flex;width:100%;line-height:var(--el-input-height);box-sizing:border-box;vertical-align:middle}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:var(--el-text-color-disabled)}.el-input::-webkit-scrollbar-corner{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);font-size:14px;cursor:pointer}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{height:100%;display:inline-flex;align-items:center;color:var(--el-color-info);font-size:12px}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;display:inline-block;padding-left:8px}.el-input__wrapper{display:inline-flex;flex-grow:1;align-items:center;justify-content:center;padding:1px 11px;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px);width:100%;flex-grow:1;-webkit-appearance:none;color:var(--el-input-text-color,var(--el-text-color-regular));font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);padding:0;outline:0;border:none;background:0 0;box-sizing:border-box}.el-input__inner:focus{outline:0}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__prefix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__prefix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__suffix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;display:flex;justify-content:center;align-items:center;transition:all var(--el-transition-duration);margin-left:8px}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color,) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{display:inline-flex;width:100%;align-items:stretch}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:100%;border-radius:var(--el-input-border-radius);padding:0 20px;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-input__wrapper,.el-input-group__append div.el-select:hover .el-input__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-input__wrapper,.el-input-group__prepend div.el-select:hover .el-input__wrapper{border-color:transparent;background-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper{box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important;z-index:2}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper:focus{outline:0;z-index:2;box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__wrapper{z-index:1;box-shadow:1px 0 0 0 var(--el-input-hover-border-color) inset,1px 0 0 0 var(--el-input-hover-border-color),0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__wrapper{z-index:2;box-shadow:-1px 0 0 0 var(--el-input-focus-border-color),-1px 0 0 0 var(--el-input-focus-border-color) inset,0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__wrapper{z-index:1;box-shadow:-1px 0 0 0 var(--el-input-hover-border-color),-1px 0 0 0 var(--el-input-hover-border-color) inset,0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.el-link{--el-link-font-size:var(--el-font-size-base);--el-link-font-weight:var(--el-font-weight-primary);--el-link-text-color:var(--el-text-color-regular);--el-link-hover-text-color:var(--el-color-primary);--el-link-disabled-text-color:var(--el-text-color-placeholder);display:inline-flex;flex-direction:row;align-items:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;cursor:pointer;padding:0;font-size:var(--el-link-font-size);font-weight:var(--el-link-font-weight);color:var(--el-link-text-color)}.el-link:hover{color:var(--el-link-hover-text-color)}.el-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid var(--el-link-hover-text-color)}.el-link.is-disabled{color:var(--el-link-disabled-text-color);cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default:after{border-color:var(--el-link-hover-text-color)}.el-link__inner{display:inline-flex;justify-content:center;align-items:center}.el-link.el-link--primary{--el-link-text-color:var(--el-color-primary);--el-link-hover-text-color:var(--el-color-primary-light-3);--el-link-disabled-text-color:var(--el-color-primary-light-5)}.el-link.el-link--primary:after{border-color:var(--el-link-text-color)}.el-link.el-link--primary.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--success{--el-link-text-color:var(--el-color-success);--el-link-hover-text-color:var(--el-color-success-light-3);--el-link-disabled-text-color:var(--el-color-success-light-5)}.el-link.el-link--success:after{border-color:var(--el-link-text-color)}.el-link.el-link--success.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning{--el-link-text-color:var(--el-color-warning);--el-link-hover-text-color:var(--el-color-warning-light-3);--el-link-disabled-text-color:var(--el-color-warning-light-5)}.el-link.el-link--warning:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger{--el-link-text-color:var(--el-color-danger);--el-link-hover-text-color:var(--el-color-danger-light-3);--el-link-disabled-text-color:var(--el-color-danger-light-5)}.el-link.el-link--danger:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--error{--el-link-text-color:var(--el-color-error);--el-link-hover-text-color:var(--el-color-error-light-3);--el-link-disabled-text-color:var(--el-color-error-light-5)}.el-link.el-link--error:after{border-color:var(--el-link-text-color)}.el-link.el-link--error.is-underline:hover:after{border-color:var(--el-link-text-color)}.el-link.el-link--info{--el-link-text-color:var(--el-color-info);--el-link-hover-text-color:var(--el-color-info-light-3);--el-link-disabled-text-color:var(--el-color-info-light-5)}.el-link.el-link--info:after{border-color:var(--el-link-text-color)}.el-link.el-link--info.is-underline:hover:after{border-color:var(--el-link-text-color)}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:var(--el-mask-color);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity var(--el-transition-duration)}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/ 2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{top:50%;margin-top:calc((0px - var(--el-loading-spinner-size))/ 2);width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);margin:3px 0;font-size:14px}.el-loading-spinner .circular{display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size);animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--el-color-primary);stroke-linecap:round}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@keyframes loading-rotate{to{transform:rotate(360deg)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-main{--el-main-padding:20px;display:block;flex:1;flex-basis:auto;overflow:auto;box-sizing:border-box;padding:var(--el-main-padding)}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px}.el-menu{border-right:solid 1px var(--el-menu-border-color);list-style:none;position:relative;margin:0;padding-left:0;background-color:var(--el-menu-bg-color);box-sizing:border-box}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title{white-space:nowrap;padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level) * var(--el-menu-level-padding))}.el-menu--horizontal{display:flex;flex-wrap:nowrap;border-bottom:solid 1px var(--el-menu-border-color);border-right:none}.el-menu--horizontal>.el-menu-item{display:inline-flex;justify-content:center;align-items:center;height:100%;margin:0;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover{background-color:#fff}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:0}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{height:100%;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-bg-color-overlay)}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{background-color:var(--el-menu-bg-color);display:flex;align-items:center;height:var(--el-menu-horizontal-sub-item-height);padding:0 10px;color:var(--el-menu-text-color)}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:var(--el-menu-hover-text-color);background-color:var(--el-menu-hover-bg-color)}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding) * 2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{margin:0;vertical-align:middle;width:var(--el-menu-icon-width);text-align:center}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light)}.el-menu .el-icon{flex-shrink:0}.el-menu-item{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:focus,.el-menu-item:hover{outline:0}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon]{margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{position:absolute;left:0;top:0;height:100%;width:100%;display:inline-flex;align-items:center;box-sizing:border-box;padding:0 var(--el-menu-base-level-padding)}.el-sub-menu{list-style:none;margin:0;padding-left:0}.el-sub-menu__title{display:flex;align-items:center;height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);list-style:none;cursor:pointer;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap;padding-right:calc(var(--el-menu-base-level-padding) + var(--el-menu-icon-width))}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:focus,.el-sub-menu__title:hover{outline:0}.el-sub-menu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height)}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-menu-item,.el-sub-menu.is-disabled .el-sub-menu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu .el-icon{vertical-align:middle;margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{position:absolute;top:50%;right:var(--el-menu-base-level-padding);margin-top:-6px;transition:transform var(--el-transition-duration);font-size:12px;margin-right:0;width:inherit}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px var(--el-menu-base-level-padding);line-height:normal;font-size:12px;color:var(--el-text-color-secondary)}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{transition:var(--el-transition-duration-fast);opacity:0}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:15px;display:inline-block;max-width:var(--el-messagebox-width);width:100%;padding-bottom:10px;vertical-align:middle;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);border:1px solid var(--el-border-color-lighter);font-size:var(--el-messagebox-font-size);box-shadow:var(--el-box-shadow-light);text-align:left;overflow:hidden;backface-visibility:hidden}.el-message-box:focus{outline:0!important}.el-overlay.is-message-box .el-overlay-message-box{text-align:center;position:fixed;top:0;right:0;bottom:0;left:0;padding:16px;overflow:auto}.el-overlay.is-message-box .el-overlay-message-box:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-message-box__header{position:relative;padding:var(--el-messagebox-padding-primary);padding-bottom:10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:var(--el-messagebox-font-size);line-height:1;color:var(--el-messagebox-title-color)}.el-message-box__headerbtn{position:absolute;top:var(--el-messagebox-padding-primary);right:var(--el-messagebox-padding-primary);padding:0;border:none;outline:0;background:0 0;font-size:var(--el-message-close-size,16px);cursor:pointer}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{padding:10px var(--el-messagebox-padding-primary);color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input div.invalid>input{border-color:var(--el-color-error)}.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status.el-icon{position:absolute}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px;word-break:break-word}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{flex-direction:row-reverse}.el-message-box--center .el-message-box__title{position:relative;display:flex;align-items:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns{justify-content:center}.el-message-box--center .el-message-box__content{padding-left:calc(var(--el-messagebox-padding-primary) + 12px);padding-right:calc(var(--el-messagebox-padding-primary) + 12px);text-align:center}.fade-in-linear-enter-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:15px 19px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary);width:-moz-fit-content;width:fit-content;max-width:calc(100% - 32px);box-sizing:border-box;border-radius:var(--el-border-radius-base);border-width:var(--el-border-width);border-style:var(--el-border-style);border-color:var(--el-message-border-color);position:fixed;left:50%;top:20px;transform:translate(-50%);background-color:var(--el-message-bg-color);transition:opacity var(--el-transition-duration),transform .4s,top .4s;padding:var(--el-message-padding);display:flex;align-items:center}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-right:31px}.el-message p{margin:0}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:anywhere}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message__icon{margin-right:10px}.el-message .el-message__badge{position:absolute;top:-8px;right:-8px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{position:absolute;top:50%;right:19px;transform:translateY(-50%);cursor:pointer;color:var(--el-message-close-icon-color);font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translate(-50%,-100%)}.el-notification{--el-notification-width:330px;--el-notification-padding:14px 26px 14px 13px;--el-notification-radius:8px;--el-notification-shadow:var(--el-box-shadow-light);--el-notification-border-color:var(--el-border-color-lighter);--el-notification-icon-size:24px;--el-notification-close-font-size:var(--el-message-close-size, 16px);--el-notification-group-margin-left:13px;--el-notification-group-margin-right:8px;--el-notification-content-font-size:var(--el-font-size-base);--el-notification-content-color:var(--el-text-color-regular);--el-notification-title-font-size:16px;--el-notification-title-color:var(--el-text-color-primary);--el-notification-close-color:var(--el-text-color-secondary);--el-notification-close-hover-color:var(--el-text-color-regular);display:flex;width:var(--el-notification-width);padding:var(--el-notification-padding);border-radius:var(--el-notification-radius);box-sizing:border-box;border:1px solid var(--el-notification-border-color);position:fixed;background-color:var(--el-bg-color-overlay);box-shadow:var(--el-notification-shadow);transition:opacity var(--el-transition-duration),transform var(--el-transition-duration),left var(--el-transition-duration),right var(--el-transition-duration),top .4s,bottom var(--el-transition-duration);overflow-wrap:anywhere;overflow:hidden;z-index:9999}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:var(--el-notification-group-margin-left);margin-right:var(--el-notification-group-margin-right)}.el-notification__title{font-weight:700;font-size:var(--el-notification-title-font-size);line-height:var(--el-notification-icon-size);color:var(--el-notification-title-color);margin:0}.el-notification__content{font-size:var(--el-notification-content-font-size);line-height:24px;margin:6px 0 0;color:var(--el-notification-content-color);text-align:justify}.el-notification__content p{margin:0}.el-notification .el-notification__icon{height:var(--el-notification-icon-size);width:var(--el-notification-icon-size);font-size:var(--el-notification-icon-size)}.el-notification .el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:var(--el-notification-close-color);font-size:var(--el-notification-close-font-size)}.el-notification .el-notification__closeBtn:hover{color:var(--el-notification-close-hover-color)}.el-notification .el-notification--success{--el-notification-icon-color:var(--el-color-success);color:var(--el-notification-icon-color)}.el-notification .el-notification--info{--el-notification-icon-color:var(--el-color-info);color:var(--el-notification-icon-color)}.el-notification .el-notification--warning{--el-notification-icon-color:var(--el-color-warning);color:var(--el-notification-icon-color)}.el-notification .el-notification--error{--el-notification-icon-color:var(--el-color-error);color:var(--el-notification-icon-color)}.el-notification-fade-enter-from.right{right:0;transform:translate(100%)}.el-notification-fade-enter-from.left{left:0;transform:translate(-100%)}.el-notification-fade-leave-to{opacity:0}.el-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;height:100%;background-color:var(--el-overlay-color-lighter);overflow:auto}.el-overlay .el-overlay-root{height:0}.el-page-header.is-contentful .el-page-header__main{border-top:1px solid var(--el-border-color-light);margin-top:16px}.el-page-header__header{display:flex;align-items:center;justify-content:space-between;line-height:24px}.el-page-header__left{display:flex;align-items:center;margin-right:40px;position:relative}.el-page-header__back{display:flex;align-items:center;cursor:pointer}.el-page-header__left .el-divider--vertical{margin:0 16px}.el-page-header__icon{font-size:16px;margin-right:10px;display:flex;align-items:center}.el-page-header__icon .el-icon{font-size:inherit}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:var(--el-text-color-primary)}.el-page-header__breadcrumb{margin-bottom:16px}.el-pagination{--el-pagination-font-size:14px;--el-pagination-bg-color:var(--el-fill-color-blank);--el-pagination-text-color:var(--el-text-color-primary);--el-pagination-border-radius:2px;--el-pagination-button-color:var(--el-text-color-primary);--el-pagination-button-width:32px;--el-pagination-button-height:32px;--el-pagination-button-disabled-color:var(--el-text-color-placeholder);--el-pagination-button-disabled-bg-color:var(--el-fill-color-blank);--el-pagination-button-bg-color:var(--el-fill-color);--el-pagination-hover-color:var(--el-color-primary);--el-pagination-font-size-small:12px;--el-pagination-button-width-small:24px;--el-pagination-button-height-small:24px;--el-pagination-item-gap:16px;white-space:nowrap;color:var(--el-pagination-text-color);font-size:var(--el-pagination-font-size);font-weight:400;display:flex;align-items:center}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield}.el-pagination .el-select .el-input{width:128px}.el-pagination button{display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pagination button *{pointer-events:none}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:var(--el-pagination-hover-color)}.el-pagination button.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pagination button.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pagination button.is-disabled,.el-pagination button:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pagination button:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700;width:inherit}.el-pagination>.is-first{margin-left:0!important}.el-pagination>.is-last{margin-right:0!important}.el-pagination .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination__sizes,.el-pagination__total{margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__total[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__jump{display:flex;align-items:center;margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__jump[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__goto{margin-right:8px}.el-pagination__editor{text-align:center;box-sizing:border-box}.el-pagination__editor.el-input{width:56px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination__classifier{margin-left:8px}.el-pagination__rightwrapper{flex:1;display:flex;align-items:center;justify-content:flex-end}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 4px;background-color:var(--el-pagination-button-bg-color)}.el-pagination.is-background .btn-next.is-active,.el-pagination.is-background .btn-prev.is-active,.el-pagination.is-background .el-pager li.is-active{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-pagination.is-background .btn-next.is-disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.is-disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.is-disabled,.el-pagination.is-background .el-pager li:disabled{color:var(--el-text-color-placeholder);background-color:var(--el-disabled-bg-color)}.el-pagination.is-background .btn-next.is-disabled.is-active,.el-pagination.is-background .btn-next:disabled.is-active,.el-pagination.is-background .btn-prev.is-disabled.is-active,.el-pagination.is-background .btn-prev:disabled.is-active,.el-pagination.is-background .el-pager li.is-disabled.is-active,.el-pagination.is-background .el-pager li:disabled.is-active{color:var(--el-text-color-secondary);background-color:var(--el-fill-color-dark)}.el-pagination.is-background .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li{height:var(--el-pagination-button-height-small);line-height:var(--el-pagination-button-height-small);font-size:var(--el-pagination-font-size-small);min-width:var(--el-pagination-button-width-small)}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){font-size:var(--el-pagination-font-size-small)}.el-pagination--small .el-select .el-input{width:100px}.el-pager{-webkit-user-select:none;-moz-user-select:none;user-select:none;list-style:none;font-size:0;padding:0;margin:0;display:flex;align-items:center}.el-pager li{display:flex;justify-content:center;align-items:center;font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pager li *{pointer-events:none}.el-pager li:focus{outline:0}.el-pager li:hover{color:var(--el-pagination-hover-color)}.el-pager li.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pager li.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pager li.is-disabled,.el-pager li:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pager li:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-popconfirm__main{display:flex;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin-top:8px}.el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);min-width:150px;border-radius:var(--el-popover-border-radius);border:1px solid var(--el-popover-border-color);padding:var(--el-popover-padding);z-index:var(--el-index-popper);color:var(--el-text-color-regular);line-height:1.4;text-align:justify;font-size:var(--el-popover-font-size);box-shadow:var(--el-box-shadow-light);word-break:break-all;box-sizing:border-box}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);line-height:1;margin-bottom:12px}.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.el-popover.el-popper.is-dark{--el-popover-bg-color:var(--el-text-color-primary);--el-popover-border-color:var(--el-text-color-primary);--el-popover-title-text-color:var(--el-bg-color);color:var(--el-bg-color)}.el-popover.el-popper:focus,.el-popover.el-popper:focus:active{outline-width:0}.el-progress{position:relative;line-height:1;display:flex;align-items:center}.el-progress__text{font-size:14px;color:var(--el-text-color-regular);margin-left:5px;min-width:50px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{flex-grow:1;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:var(--el-border-color-lighter);overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:var(--el-color-primary);text-align:right;border-radius:100px;line-height:1;white-space:nowrap;transition:width .6s ease}.el-progress-bar__inner:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{transform:translateZ(0);animation:indeterminate 3s infinite}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light);position:relative;display:inline-block;outline:0}.el-radio-button__inner{display:inline-block;line-height:1;white-space:nowrap;vertical-align:middle;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));border-left:0;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;cursor:pointer;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:var(--el-border);border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button__original-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__original-radio:checked+.el-radio-button__inner{color:var(--el-radio-button-checked-text-color,var(--el-color-white));background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary))}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2;border-radius:var(--el-border-radius-base);box-shadow:none}.el-radio-button__original-radio:disabled+.el-radio-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-radio-group{display:inline-flex;align-items:center;flex-wrap:wrap;font-size:0}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary);color:var(--el-radio-text-color);font-weight:var(--el-radio-font-weight);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;outline:0;font-size:var(--el-font-size-base);-webkit-user-select:none;-moz-user-select:none;user-select:none;margin-right:32px;height:32px}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:var(--el-border-color-lighter)}.el-radio.is-bordered.el-radio--large{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.is-bordered.el-radio--small{padding:0 11px 0 7px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:var(--el-disabled-bg-color)}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:var(--el-color-primary);background:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);width:var(--el-radio-input-width);height:var(--el-radio-input-height);background-color:var(--el-radio-input-bg-color);position:relative;cursor:pointer;display:inline-block;box-sizing:border-box}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{width:4px;height:4px;border-radius:var(--el-radio-input-border-radius);background-color:var(--el-color-white);content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio__original:focus-visible+.el-radio__inner{outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px;border-radius:var(--el-radio-input-border-radius)}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{width:14px;height:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{width:12px;height:12px}.el-rate{--el-rate-height:20px;--el-rate-font-size:var(--el-font-size-base);--el-rate-icon-size:18px;--el-rate-icon-margin:6px;--el-rate-void-color:var(--el-border-color-darker);--el-rate-fill-color:#f7ba2a;--el-rate-disabled-void-color:var(--el-fill-color);--el-rate-text-color:var(--el-text-color-primary);display:inline-flex;align-items:center;height:32px}.el-rate:active,.el-rate:focus{outline:0}.el-rate__item{cursor:pointer;display:inline-block;position:relative;font-size:0;vertical-align:middle;color:var(--el-rate-void-color);line-height:normal}.el-rate .el-rate__icon{position:relative;display:inline-block;font-size:var(--el-rate-icon-size);margin-right:var(--el-rate-icon-margin);transition:var(--el-transition-duration)}.el-rate .el-rate__icon.hover{transform:scale(1.15)}.el-rate .el-rate__icon .path2{position:absolute;left:0;top:0}.el-rate .el-rate__icon.is-active{color:var(--el-rate-fill-color)}.el-rate__decimal{position:absolute;top:0;left:0;display:inline-block;overflow:hidden;color:var(--el-rate-fill-color)}.el-rate__text{font-size:var(--el-rate-font-size);vertical-align:middle;color:var(--el-rate-text-color)}.el-rate--large{height:40px}.el-rate--small{height:24px}.el-rate.is-disabled .el-rate__item{cursor:auto;color:var(--el-rate-disabled-void-color)}.el-result{--el-result-padding:40px 30px;--el-result-icon-font-size:64px;--el-result-title-font-size:20px;--el-result-title-margin-top:20px;--el-result-subtitle-margin-top:10px;--el-result-extra-margin-top:30px;display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--el-result-padding)}.el-result__icon svg{width:var(--el-result-icon-font-size);height:var(--el-result-icon-font-size)}.el-result__title{margin-top:var(--el-result-title-margin-top)}.el-result__title p{margin:0;font-size:var(--el-result-title-font-size);color:var(--el-text-color-primary);line-height:1.3}.el-result__subtitle{margin-top:var(--el-result-subtitle-margin-top)}.el-result__subtitle p{margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);line-height:1.3}.el-result__extra{margin-top:var(--el-result-extra-margin-top)}.el-result .icon-primary{--el-result-color:var(--el-color-primary);color:var(--el-result-color)}.el-result .icon-success{--el-result-color:var(--el-color-success);color:var(--el-result-color)}.el-result .icon-warning{--el-result-color:var(--el-color-warning);color:var(--el-result-color)}.el-result .icon-danger{--el-result-color:var(--el-color-danger);color:var(--el-result-color)}.el-result .icon-error{--el-result-color:var(--el-color-error);color:var(--el-result-color)}.el-result .icon-info{--el-result-color:var(--el-color-info);color:var(--el-result-color)}.el-row{display:flex;flex-wrap:wrap;position:relative;box-sizing:border-box}.el-row.is-justify-center{justify-content:center}.el-row.is-justify-end{justify-content:flex-end}.el-row.is-justify-space-between{justify-content:space-between}.el-row.is-justify-space-around{justify-content:space-around}.el-row.is-justify-space-evenly{justify-content:space-evenly}.el-row.is-align-middle{align-items:center}.el-row.is-align-bottom{align-items:flex-end}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary);overflow:hidden;position:relative;height:100%}.el-scrollbar__wrap{overflow:auto;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));transition:var(--el-transition-duration) background-color;opacity:var(--el-scrollbar-opacity,.3)}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-select-dropdown__option-item.is-selected:not(.is-multiple).is-disabled{color:var(--el-text-color-disabled)}.el-select-dropdown__option-item.is-selected:not(.is-multiple).is-disabled:after{background-color:var(--el-text-color-disabled)}.el-select-dropdown__option-item:hover:not(.hover){background-color:transparent}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-disabled.is-selected{color:var(--el-text-color-disabled)}.el-select-dropdown__list{list-style:none;margin:6px 0!important;padding:0!important;box-sizing:border-box}.el-select-dropdown__option-item{font-size:var(--el-select-font-size);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--el-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__option-item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown__option-item.is-disabled:hover{background-color:var(--el-bg-color)}.el-select-dropdown__option-item.is-selected{background-color:var(--el-fill-color-light);font-weight:700}.el-select-dropdown__option-item.is-selected:not(.is-multiple){color:var(--el-color-primary)}.el-select-dropdown__option-item.hover{background-color:var(--el-fill-color-light)!important}.el-select-dropdown__option-item:hover{background-color:var(--el-fill-color-light)}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay)}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected .el-icon{position:absolute;right:20px;top:0;height:inherit;font-size:12px}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected .el-icon svg{height:inherit;vertical-align:middle}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:var(--el-border-color-light)}.el-select-group__split-dash{position:absolute;left:20px;right:20px;height:1px;background:var(--el-border-color-light)}.el-select-group__title{padding-left:20px;font-size:12px;color:var(--el-color-info);line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select-v2{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px;display:inline-block;position:relative;vertical-align:middle;font-size:14px}.el-select-v2__wrapper{display:flex;align-items:center;flex-wrap:wrap;position:relative;box-sizing:border-box;cursor:pointer;padding:1px 30px 1px 0;border:1px solid var(--el-border-color);border-radius:var(--el-border-radius-base);background-color:var(--el-fill-color-blank);transition:var(--el-transition-duration)}.el-select-v2__wrapper:hover{border-color:var(--el-text-color-placeholder)}.el-select-v2__wrapper.is-filterable{cursor:text}.el-select-v2__wrapper.is-focused{border-color:var(--el-color-primary)}.el-select-v2__wrapper.is-hovering:not(.is-focused){border-color:var(--el-border-color-hover)}.el-select-v2__wrapper.is-disabled{cursor:not-allowed;background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);border-color:var(--el-select-disabled-border)}.el-select-v2__wrapper.is-disabled:hover{border-color:var(--el-select-disabled-border)}.el-select-v2__wrapper.is-disabled.is-focus{border-color:var(--el-input-focus-border-color)}.el-select-v2__wrapper.is-disabled .is-transparent{opacity:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-select-v2__wrapper.is-disabled .el-select-v2__caret,.el-select-v2__wrapper.is-disabled .el-select-v2__combobox-input{cursor:not-allowed}.el-select-v2__wrapper .el-select-v2__input-wrapper{box-sizing:border-box;position:relative;margin-inline-start:12px;max-width:100%;overflow:hidden}.el-select-v2__wrapper,.el-select-v2__wrapper .el-select-v2__input-wrapper{line-height:32px}.el-select-v2__wrapper .el-select-v2__input-wrapper input{--el-input-inner-height:calc(var(--el-component-size, 32px) - 8px);height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);min-width:4px;width:100%;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;border:none;margin:2px 0;outline:0;padding:0}.el-select-v2 .el-select-v2__tags-text{display:inline-block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select-v2__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:14px}.el-select-v2__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-select-v2__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select-v2__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select-v2--large .el-select-v2__wrapper .el-select-v2__combobox-input{height:32px}.el-select-v2--large .el-select-v2__caret,.el-select-v2--large .el-select-v2__suffix{height:40px}.el-select-v2--large .el-select-v2__placeholder{font-size:14px;line-height:40px}.el-select-v2--small .el-select-v2__wrapper .el-select-v2__combobox-input{height:16px}.el-select-v2--small .el-select-v2__caret,.el-select-v2--small .el-select-v2__suffix{height:24px}.el-select-v2--small .el-select-v2__placeholder{font-size:12px;line-height:24px}.el-select-v2 .el-select-v2__selection>span{display:inline-block}.el-select-v2:hover .el-select-v2__combobox-input{border-color:var(--el-select-border-color-hover)}.el-select-v2 .el-select__selection-text{text-overflow:ellipsis;display:inline-block;overflow-x:hidden;vertical-align:bottom}.el-select-v2 .el-select-v2__combobox-input{padding-right:35px;display:block;color:var(--el-text-color-regular)}.el-select-v2 .el-select-v2__combobox-input:focus{border-color:var(--el-select-input-focus-border-color)}.el-select-v2__input{border:none;outline:0;padding:0;margin-left:15px;color:var(--el-select-multiple-input-color);font-size:var(--el-select-font-size);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px}.el-select-v2__input.is-small{height:14px}.el-select-v2__close{cursor:pointer;position:absolute;top:8px;z-index:var(--el-index-top);right:25px;color:var(--el-select-input-color);line-height:18px;font-size:var(--el-select-input-font-size)}.el-select-v2__close:hover{color:var(--el-select-close-hover-color)}.el-select-v2__suffix{display:inline-flex;position:absolute;right:12px;height:32px;top:50%;transform:translateY(-50%);color:var(--el-input-icon-color,var(--el-text-color-placeholder))}.el-select-v2__suffix .el-input__icon{height:inherit}.el-select-v2__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:var(--el-transition-duration);transform:rotate(180deg);cursor:pointer}.el-select-v2__caret.is-reverse{transform:rotate(0)}.el-select-v2__caret.is-show-close{font-size:var(--el-select-font-size);text-align:center;transform:rotate(180deg);border-radius:var(--el-border-radius-circle);color:var(--el-select-input-color);transition:var(--el-transition-color)}.el-select-v2__caret.is-show-close:hover{color:var(--el-select-close-hover-color)}.el-select-v2__caret.el-icon{height:inherit}.el-select-v2__caret.el-icon svg{vertical-align:middle}.el-select-v2__selection{white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap}.el-select-v2__input-calculator{left:0;position:absolute;top:0;visibility:hidden;white-space:pre;z-index:999}.el-select-v2__selected-item{line-height:inherit;height:inherit;-webkit-user-select:none;-moz-user-select:none;user-select:none;display:flex;flex-wrap:wrap}.el-select-v2__placeholder{position:absolute;top:50%;transform:translateY(-50%);margin-inline-start:12px;width:calc(100% - 52px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--el-input-text-color,var(--el-text-color-regular))}.el-select-v2__placeholder.is-transparent{color:var(--el-text-color-placeholder)}.el-select-v2 .el-select-v2__selection .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:var(--el-fill-color)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;color:var(--el-color-white)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select-v2.el-select-v2--small .el-select-v2__selection .el-tag{margin:1px 0 1px 6px;height:18px}.el-select-dropdown{z-index:calc(var(--el-index-top) + 1);border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:var(--el-fill-color-light)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.is-disabled:after{background-color:var(--el-text-color-disabled)}.el-select-dropdown .el-select-dropdown__option-item.is-selected:after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown .el-select-dropdown__item.is-disabled:hover{background-color:unset}.el-select-dropdown .el-select-dropdown__item.is-disabled.selected{color:var(--el-text-color-disabled)}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:var(--el-select-font-size)}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.el-select{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px;display:inline-block;position:relative;vertical-align:middle;line-height:32px}.el-select__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-select__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent;border-left-color:transparent}.el-select__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent;border-bottom-color:transparent}.el-select__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select .el-select-tags-wrapper.has-prefix{margin-left:6px}.el-select--large{line-height:40px}.el-select--large .el-select-tags-wrapper.has-prefix{margin-left:8px}.el-select--small{line-height:24px}.el-select--small .el-select-tags-wrapper.has-prefix{margin-left:4px}.el-select .el-select__tags>span{display:inline-block}.el-select:hover:not(.el-select--disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-border-color-hover) inset}.el-select .el-select__tags-text{display:inline-block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select .el-input__wrapper{cursor:pointer}.el-select .el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select .el-input__inner{cursor:pointer}.el-select .el-input{display:flex}.el-select .el-input .el-select__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:transform var(--el-transition-duration);transform:rotate(0);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{transform:rotate(-180deg)}.el-select .el-input .el-select__caret.is-show-close{font-size:var(--el-select-font-size);text-align:center;transform:rotate(0);border-radius:var(--el-border-radius-circle);color:var(--el-select-input-color);transition:var(--el-transition-color)}.el-select .el-input .el-select__caret.is-show-close:hover{color:var(--el-select-close-hover-color)}.el-select .el-input .el-select__caret.el-icon{position:relative;height:inherit;z-index:2}.el-select .el-input.is-disabled .el-input__wrapper{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select .el-input.is-disabled .el-input__inner,.el-select .el-input.is-disabled .el-select__caret{cursor:not-allowed}.el-select .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:var(--el-select-multiple-input-color);font-size:var(--el-select-font-size);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-small{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:var(--el-index-top);right:25px;color:var(--el-select-input-color);line-height:18px;font-size:var(--el-select-input-font-size)}.el-select__close:hover{color:var(--el-select-close-hover-color)}.el-select__tags{position:absolute;line-height:normal;top:50%;transform:translateY(-50%);white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;cursor:pointer}.el-select__tags .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 6px 2px 0}.el-select__tags .el-tag:last-child{margin-right:0}.el-select__tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;top:0;color:#fff}.el-select__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select__tags .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select__tags .el-tag--info{background-color:var(--el-fill-color)}.el-select__collapse-tags{white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;cursor:pointer}.el-select__collapse-tags .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 6px 2px 0}.el-select__collapse-tags .el-tag:last-child{margin-right:0}.el-select__collapse-tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;top:0;color:#fff}.el-select__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select__collapse-tags .el-tag .el-icon-close:before{display:block;transform:translateY(.5px)}.el-select__collapse-tags .el-tag--info{background-color:var(--el-fill-color)}.el-select__collapse-tag{line-height:inherit;height:inherit;display:flex}.el-skeleton{--el-skeleton-circle-size:var(--el-avatar-size)}.el-skeleton__item{background:var(--el-skeleton-color);display:inline-block;height:16px;border-radius:var(--el-border-radius-base);width:100%}.el-skeleton__circle{border-radius:50%;width:var(--el-skeleton-circle-size);height:var(--el-skeleton-circle-size);line-height:var(--el-skeleton-circle-size)}.el-skeleton__button{height:40px;width:64px;border-radius:4px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{width:100%;height:var(--el-font-size-small)}.el-skeleton__caption{height:var(--el-font-size-extra-small)}.el-skeleton__h1{height:var(--el-font-size-extra-large)}.el-skeleton__h3{height:var(--el-font-size-large)}.el-skeleton__h5{height:var(--el-font-size-medium)}.el-skeleton__image{width:unset;display:flex;align-items:center;justify-content:center;border-radius:0}.el-skeleton__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:22%;height:22%}.el-skeleton{--el-skeleton-color:var(--el-fill-color);--el-skeleton-to-color:var(--el-fill-color-darker)}@keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{height:16px;margin-top:16px;background:var(--el-skeleton-color)}.el-skeleton.is-animated .el-skeleton__item{background:linear-gradient(90deg,var(--el-skeleton-color) 25%,var(--el-skeleton-to-color) 37%,var(--el-skeleton-color) 63%);background-size:400% 100%;animation:el-skeleton-loading 1.4s ease infinite}.el-slider{--el-slider-main-bg-color:var(--el-color-primary);--el-slider-runway-bg-color:var(--el-border-color-light);--el-slider-stop-bg-color:var(--el-color-white);--el-slider-disabled-color:var(--el-text-color-placeholder);--el-slider-border-radius:3px;--el-slider-height:6px;--el-slider-button-size:20px;--el-slider-button-wrapper-size:36px;--el-slider-button-wrapper-offset:-15px;width:100%;height:32px;display:flex;align-items:center}.el-slider__runway{flex:1;height:var(--el-slider-height);background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);position:relative;cursor:pointer}.el-slider__runway.show-input{margin-right:30px;width:auto}.el-slider__runway.is-disabled{cursor:default}.el-slider__runway.is-disabled .el-slider__bar{background-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button{border-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button-wrapper.hover,.el-slider__runway.is-disabled .el-slider__button-wrapper:hover,.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button.dragging,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{transform:scale(1)}.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover,.el-slider__runway.is-disabled .el-slider__button.dragging{cursor:not-allowed}.el-slider__input{flex-shrink:0;width:130px}.el-slider__bar{height:var(--el-slider-height);background-color:var(--el-slider-main-bg-color);border-top-left-radius:var(--el-slider-border-radius);border-bottom-left-radius:var(--el-slider-border-radius);position:absolute}.el-slider__button-wrapper{height:var(--el-slider-button-wrapper-size);width:var(--el-slider-button-wrapper-size);position:absolute;z-index:1;top:var(--el-slider-button-wrapper-offset);transform:translate(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;line-height:normal;outline:0}.el-slider__button-wrapper:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:grab}.el-slider__button-wrapper.dragging{cursor:grabbing}.el-slider__button{display:inline-block;width:var(--el-slider-button-size);height:var(--el-slider-button-size);vertical-align:middle;border:solid 2px var(--el-slider-main-bg-color);background-color:var(--el-color-white);border-radius:50%;box-sizing:border-box;transition:var(--el-transition-duration-fast);-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:grab}.el-slider__button.dragging{cursor:grabbing}.el-slider__stop{position:absolute;height:var(--el-slider-height);width:var(--el-slider-height);border-radius:var(--el-border-radius-circle);background-color:var(--el-slider-stop-bg-color);transform:translate(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;transform:translate(-50%);font-size:14px;color:var(--el-color-info);margin-top:15px;white-space:pre}.el-slider.is-vertical{position:relative;display:inline-flex;width:auto;height:100%;flex:0}.el-slider.is-vertical .el-slider__runway{width:var(--el-slider-height);height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:var(--el-slider-height);height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:var(--el-slider-button-wrapper-offset);transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;transform:translateY(50%)}.el-slider--large{height:40px}.el-slider--small{height:24px}.el-space{display:inline-flex;vertical-align:top}.el-space__item{display:flex;flex-wrap:wrap}.el-space__item>*{flex:1}.el-space--vertical{flex-direction:column}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:var(--el-border-color-lighter);stroke-linecap:round;animation:dash 1.5s ease-in-out infinite}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-step{position:relative;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{flex-basis:auto!important;flex-shrink:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:var(--el-text-color-primary);border-color:var(--el-text-color-primary)}.el-step__head.is-wait{color:var(--el-text-color-placeholder);border-color:var(--el-text-color-placeholder)}.el-step__head.is-success{color:var(--el-color-success);border-color:var(--el-color-success)}.el-step__head.is-error{color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-step__head.is-finish{color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-step__icon{position:relative;z-index:1;display:inline-flex;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:var(--el-bg-color);transition:.15s ease-out}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{display:inline-block;-webkit-user-select:none;-moz-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:var(--el-text-color-placeholder)}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;transition:.15s ease-out;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:var(--el-text-color-primary)}.el-step__title.is-wait{color:var(--el-text-color-placeholder)}.el-step__title.is-success{color:var(--el-color-success)}.el-step__title.is-error{color:var(--el-color-danger)}.el-step__title.is-finish{color:var(--el-color-primary)}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:var(--el-text-color-primary)}.el-step__description.is-wait{color:var(--el-text-color-placeholder)}.el-step__description.is-success{color:var(--el-color-success)}.el-step__description.is-error{color:var(--el-color-danger)}.el-step__description.is-finish{color:var(--el-color-primary)}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:flex;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:flex;align-items:stretch;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{flex-grow:1;display:flex;align-items:center;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{content:"";display:inline-block;position:absolute;height:15px;width:1px;background:var(--el-text-color-placeholder)}.el-step.is-simple .el-step__arrow:before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-steps{display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:var(--el-fill-color-light)}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;flex-flow:column}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color);display:inline-flex;align-items:center;position:relative;font-size:14px;line-height:20px;height:32px;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{transition:var(--el-transition-duration-fast);height:20px;display:inline-block;font-size:14px;font-weight:500;cursor:pointer;vertical-align:middle;color:var(--el-text-color-primary)}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{display:inline-flex;position:relative;align-items:center;min-width:40px;height:20px;border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));outline:0;border-radius:10px;box-sizing:border-box;background:var(--el-switch-off-color);cursor:pointer;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration)}.el-switch__core .el-switch__inner{width:100%;transition:all var(--el-transition-duration);height:16px;display:flex;justify-content:center;align-items:center;overflow:hidden;padding:0 4px 0 18px}.el-switch__core .el-switch__inner .is-icon,.el-switch__core .el-switch__inner .is-text{font-size:12px;color:var(--el-color-white);-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-switch__core .el-switch__action{position:absolute;left:1px;border-radius:var(--el-border-radius-circle);transition:all var(--el-transition-duration);width:16px;height:16px;background-color:var(--el-color-white);display:flex;justify-content:center;align-items:center;color:var(--el-switch-off-color)}.el-switch.is-checked .el-switch__core{border-color:var(--el-switch-border-color,var(--el-switch-on-color));background-color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__action{left:calc(100% - 17px);color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 18px 0 4px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{font-size:14px;line-height:24px;height:40px}.el-switch--large .el-switch__label{height:24px;font-size:14px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{min-width:50px;height:24px;border-radius:12px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 22px}.el-switch--large .el-switch__core .el-switch__action{width:20px;height:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action{left:calc(100% - 21px)}.el-switch--large.is-checked .el-switch__core .el-switch__inner{padding:0 22px 0 6px}.el-switch--small{font-size:12px;line-height:16px;height:24px}.el-switch--small .el-switch__label{height:16px;font-size:12px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{min-width:30px;height:16px;border-radius:8px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 14px}.el-switch--small .el-switch__core .el-switch__action{width:12px;height:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action{left:calc(100% - 13px)}.el-switch--small.is-checked .el-switch__core .el-switch__inner{padding:0 14px 0 2px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:solid 1px var(--el-border-color-lighter);border-radius:2px;background-color:#fff;box-shadow:var(--el-box-shadow-light);box-sizing:border-box}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:var(--el-font-size-base)}.el-table-filter__list-item:hover{background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.el-table-filter__list-item.is-active{background-color:var(--el-color-primary);color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-small);padding:0 3px}.el-table-filter__bottom button:hover{color:var(--el-color-primary)}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:flex;align-items:center;margin-right:5px;margin-bottom:12px;margin-left:5px;height:unset}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-table{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-fill-color-blank);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, .15);position:relative;overflow:hidden;box-sizing:border-box;height:-moz-fit-content;height:fit-content;width:100%;max-width:100%;background-color:var(--el-table-bg-color);font-size:14px;color:var(--el-table-text-color)}.el-table__inner-wrapper{position:relative;display:flex;flex-direction:column;height:100%}.el-table__inner-wrapper:before{left:0;bottom:0;width:100%;height:1px}.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell,.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell{border-bottom-color:transparent}.el-table__empty-block{position:sticky;left:0;min-height:60px;text-align:center;width:100%;display:flex;justify-content:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:var(--el-text-color-secondary)}.el-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-table__expand-icon{position:relative;cursor:pointer;color:var(--el-text-color-regular);font-size:12px;transition:transform var(--el-transition-duration-fast) ease-in-out;height:20px}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{font-size:12px}.el-table__expanded-cell{background-color:var(--el-table-expanded-cell-bg-color)}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table thead{color:var(--el-table-header-text-color);font-weight:500}.el-table thead.is-group th.el-table__cell{background:var(--el-fill-color-light)}.el-table .el-table__cell{padding:8px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left;z-index:1}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding:0 12px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--large{font-size:var(--el-font-size-base)}.el-table--large .el-table__cell{padding:12px 0}.el-table--large .cell{padding:0 16px}.el-table--small{font-size:12px}.el-table--small .el-table__cell{padding:4px 0}.el-table--small .cell{padding:0 8px}.el-table tr{background-color:var(--el-table-tr-bg-color)}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:var(--el-table-header-bg-color)}.el-table th.el-table__cell>.cell.highlight{color:var(--el-color-primary)}.el-table th.el-table__cell.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table__footer-wrapper{border-top:var(--el-table-border)}.el-table--border .el-table__inner-wrapper:after,.el-table--border:after,.el-table--border:before,.el-table__inner-wrapper:before{content:"";position:absolute;background-color:var(--el-table-border-color);z-index:3}.el-table--border .el-table__inner-wrapper:after{left:0;top:0;width:100%;height:1px}.el-table--border:before{top:-1px;left:0;width:1px;height:100%}.el-table--border:after{top:-1px;right:0;width:1px;height:100%}.el-table--border .el-table__inner-wrapper{border-right:none;border-bottom:none}.el-table--border .el-table__footer-wrapper{position:relative;flex-shrink:0}.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:var(--el-table-border);border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:var(--el-table-border)}.el-table--hidden{visibility:hidden}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__body-wrapper tr td.el-table-fixed-column--left,.el-table__body-wrapper tr td.el-table-fixed-column--right,.el-table__body-wrapper tr th.el-table-fixed-column--left,.el-table__body-wrapper tr th.el-table-fixed-column--right,.el-table__footer-wrapper tr td.el-table-fixed-column--left,.el-table__footer-wrapper tr td.el-table-fixed-column--right,.el-table__footer-wrapper tr th.el-table-fixed-column--left,.el-table__footer-wrapper tr th.el-table-fixed-column--right,.el-table__header-wrapper tr td.el-table-fixed-column--left,.el-table__header-wrapper tr td.el-table-fixed-column--right,.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{position:sticky!important;z-index:2;background:var(--el-bg-color)}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{content:"";position:absolute;top:0;width:10px;bottom:-1px;overflow-x:hidden;overflow-y:hidden;box-shadow:none;touch-action:none;pointer-events:none}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before{left:-10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{right:-10px;box-shadow:none}.el-table__body-wrapper tr td.el-table__fixed-right-patch,.el-table__body-wrapper tr th.el-table__fixed-right-patch,.el-table__footer-wrapper tr td.el-table__fixed-right-patch,.el-table__footer-wrapper tr th.el-table__fixed-right-patch,.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch{position:sticky!important;z-index:2;background:#fff;right:0}.el-table__header-wrapper{flex-shrink:0}.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td.el-table__cell,.el-table__header-wrapper tbody td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__body-wrapper .el-table-column--selection>.cell,.el-table__header-wrapper .el-table-column--selection>.cell{display:inline-flex;align-items:center;height:23px}.el-table__body-wrapper .el-table-column--selection .el-checkbox,.el-table__header-wrapper .el-table-column--selection .el-checkbox{height:unset}.el-table.is-scrolling-left .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-left.el-table--border .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:var(--el-table-border)}.el-table.is-scrolling-left th.el-table-fixed-column--left{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-right th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-middle .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-none .el-table-fixed-column--left.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--left.is-last-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-last-column:before{box-shadow:none}.el-table.is-scrolling-none th.el-table-fixed-column--left,.el-table.is-scrolling-none th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body-wrapper{overflow:hidden;position:relative;flex:1}.el-table__body-wrapper .el-scrollbar__bar{z-index:2}.el-table .caret-wrapper{display:inline-flex;flex-direction:column;align-items:center;height:14px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:solid 5px transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:var(--el-text-color-placeholder);top:-5px}.el-table .sort-caret.descending{border-top-color:var(--el-text-color-placeholder);bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.el-table .descending .sort-caret.descending{border-top-color:var(--el-color-primary)}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--el-fill-color-lighter)}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:var(--el-table-border);z-index:10}.el-table__column-filter-trigger{display:inline-block;cursor:pointer}.el-table__column-filter-trigger i{color:var(--el-color-info);font-size:14px;vertical-align:middle}.el-table__border-left-patch{top:0;left:0;width:1px;height:100%;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table__border-bottom-patch{left:0;height:1px;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table__border-right-patch{top:0;height:100%;width:1px;z-index:3;position:absolute;background-color:var(--el-table-border-color)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:12px;line-height:12px;height:12px;text-align:center;margin-right:8px}.el-table .el-table.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table:not(.el-table--border) .el-table__cell{border-right:none}.el-table:not(.el-table--border)>.el-table__inner-wrapper:after{content:none}.el-table-v2{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-fill-color-blank);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, .15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, .15);font-size:14px}.el-table-v2 *{box-sizing:border-box}.el-table-v2__root{position:relative}.el-table-v2__root:hover .el-table-v2__main .el-virtual-scrollbar{opacity:1}.el-table-v2__main{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);left:0}.el-table-v2__main .el-vl__horizontal,.el-table-v2__main .el-vl__vertical{z-index:2}.el-table-v2__left{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);left:0;box-shadow:2px 0 4px #0000000f}.el-table-v2__left .el-virtual-scrollbar{opacity:0}.el-table-v2__left .el-vl__horizontal,.el-table-v2__left .el-vl__vertical{z-index:-1}.el-table-v2__right{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);right:0;box-shadow:-2px 0 4px #0000000f}.el-table-v2__right .el-virtual-scrollbar{opacity:0}.el-table-v2__right .el-vl__horizontal,.el-table-v2__right .el-vl__vertical{z-index:-1}.el-table-v2__header-row,.el-table-v2__row{padding-inline-end:var(--el-table-scrollbar-size)}.el-table-v2__header-wrapper{overflow:hidden}.el-table-v2__header{position:relative;overflow:hidden}.el-table-v2__footer{position:absolute;left:0;right:0;bottom:0;overflow:hidden}.el-table-v2__empty{position:absolute;left:0}.el-table-v2__overlay{position:absolute;left:0;right:0;top:0;bottom:0;z-index:9999}.el-table-v2__header-row{display:flex;border-bottom:var(--el-table-border)}.el-table-v2__header-cell{display:flex;align-items:center;padding:0 8px;height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;background-color:var(--el-table-header-bg-color);color:var(--el-table-header-text-color);font-weight:700}.el-table-v2__header-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__header-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__header-cell.is-sortable{cursor:pointer}.el-table-v2__header-cell:hover .el-icon{display:block}.el-table-v2__sort-icon{transition:opacity,display var(--el-transition-duration);opacity:.6;display:none}.el-table-v2__sort-icon.is-sorting{display:block;opacity:1}.el-table-v2__row{border-bottom:var(--el-table-border);display:flex;align-items:center;transition:background-color var(--el-transition-duration)}.el-table-v2__row.is-hovered,.el-table-v2__row:hover{background-color:var(--el-table-row-hover-bg-color)}.el-table-v2__row-cell{height:100%;overflow:hidden;display:flex;align-items:center;padding:0 8px}.el-table-v2__row-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__row-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__expand-icon{margin:0 4px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-table-v2__expand-icon svg{transition:transform var(--el-transition-duration)}.el-table-v2__expand-icon.is-expanded svg{transform:rotate(90deg)}.el-table-v2:not(.is-dynamic) .el-table-v2__cell-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-table-v2.is-dynamic .el-table-v2__row{overflow:hidden;align-items:stretch}.el-table-v2.is-dynamic .el-table-v2__row .el-table-v2__row-cell{word-break:break-all}.el-tabs{--el-tabs-header-height:40px}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:var(--el-color-primary);z-index:1;transition:width var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),transform var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);list-style:none}.el-tabs__new-tab{display:flex;align-items:center;justify-content:center;float:right;border:1px solid var(--el-border-color);height:20px;width:20px;line-height:20px;margin:10px 0 10px 10px;border-radius:3px;text-align:center;font-size:12px;color:var(--el-text-color-primary);cursor:pointer;transition:all .15s}.el-tabs__new-tab .is-icon-plus{height:inherit;width:inherit;transform:scale(.8)}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:var(--el-border-color-light);z-index:var(--el-index-normal)}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:var(--el-text-color-secondary);width:20px;text-align:center}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;transition:transform var(--el-transition-duration);float:left;z-index:calc(var(--el-index-normal) + 1)}.el-tabs__nav.is-stretch{min-width:100%;display:flex}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:var(--el-tabs-header-height);box-sizing:border-box;line-height:var(--el-tabs-header-height);display:inline-block;list-style:none;font-size:var(--el-font-size-base);font-weight:500;color:var(--el-text-color-primary);position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item:focus-visible{box-shadow:0 0 2px 2px var(--el-color-primary) inset;border-radius:3px}.el-tabs__item .is-icon-close{border-radius:50%;text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);margin-left:5px}.el-tabs__item .is-icon-close:before{transform:scale(.9);display:inline-block}.el-tabs__item .is-icon-close:hover{background-color:var(--el-text-color-placeholder);color:#fff}.el-tabs__item .is-icon-close svg{margin-top:1px}.el-tabs__item.is-active{color:var(--el-color-primary)}.el-tabs__item:hover{color:var(--el-color-primary);cursor:pointer}.el-tabs__item.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);height:var(--el-tabs-header-height)}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid var(--el-border-color-light);border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid var(--el-border-color-light);transition:color var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),padding var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .is-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:var(--el-bg-color)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .is-icon-close{width:14px}.el-tabs--border-card{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-light);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);border:1px solid transparent;margin-top:-1px;color:var(--el-text-color-secondary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay);border-right-color:var(--el-border-color);border-left-color:var(--el-border-color)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:var(--el-disabled-text-color)}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--el-border-color)}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__active-bar.is-left{right:0;left:auto}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid var(--el-border-color-light);border-bottom:none;border-top:1px solid var(--el-border-color-light);text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid var(--el-border-color-light);border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid var(--el-border-color-light);border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid var(--el-border-color-light);border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid var(--el-border-color)}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--el-border-color-light)}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid var(--el-border-color-light);border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid var(--el-border-color-light);border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid var(--el-border-color-light);border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid var(--el-border-color)}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{position:absolute;left:0;right:0;animation:slideInRight-leave var(--el-transition-duration)}.slideInLeft-enter{animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{position:absolute;left:0;right:0;animation:slideInLeft-leave var(--el-transition-duration)}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translate(100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(100%);opacity:0}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translate(-100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(-100%);opacity:0}}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px;--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary);--el-tag-text-color:var(--el-color-primary);background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);color:var(--el-tag-text-color);display:inline-flex;justify-content:center;align-items:center;height:24px;padding:0 9px;font-size:var(--el-tag-font-size);line-height:1;border-width:1px;border-style:solid;border-radius:var(--el-tag-border-radius);box-sizing:border-box;white-space:nowrap;--el-icon-size:14px}.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{color:var(--el-tag-text-color)}.el-tag .el-tag__close:hover{color:var(--el-color-white);background-color:var(--el-tag-hover-color)}.el-tag .el-icon{border-radius:50%;cursor:pointer;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{margin-left:6px}.el-tag--dark{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3);--el-tag-text-color:var(--el-color-white)}.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning,.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info{--el-tag-text-color:var(--el-color-white)}.el-tag--plain{--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary);--el-tag-bg-color:var(--el-fill-color-blank)}.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{padding:0 11px;height:32px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{padding:0 7px;height:20px;--el-icon-size:12px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.disabled{color:var(--el-datepicker-border-color);cursor:not-allowed}.time-select-item:hover{background-color:var(--el-fill-color-light);font-weight:700;cursor:pointer}.time-select .time-select-item.selected:not(.disabled){color:var(--el-color-primary);font-weight:700}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid var(--el-timeline-node-color)}.el-timeline-item .el-timeline-item__icon{color:var(--el-color-white);font-size:var(--el-font-size-small)}.el-timeline-item__node{position:absolute;background-color:var(--el-timeline-node-color);border-color:var(--el-timeline-node-color);border-radius:50%;box-sizing:border-box;display:flex;justify-content:center;align-items:center}.el-timeline-item__node--normal{left:-1px;width:var(--el-timeline-node-size-normal);height:var(--el-timeline-node-size-normal)}.el-timeline-item__node--large{left:-2px;width:var(--el-timeline-node-size-large);height:var(--el-timeline-node-size-large)}.el-timeline-item__node.is-hollow{background:var(--el-color-white);border-style:solid;border-width:2px}.el-timeline-item__node--primary{background-color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-timeline-item__node--success{background-color:var(--el-color-success);border-color:var(--el-color-success)}.el-timeline-item__node--warning{background-color:var(--el-color-warning);border-color:var(--el-color-warning)}.el-timeline-item__node--danger{background-color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-timeline-item__node--info{background-color:var(--el-color-info);border-color:var(--el-color-info)}.el-timeline-item__dot{position:absolute;display:flex;justify-content:center;align-items:center}.el-timeline-item__content{color:var(--el-text-color-primary)}.el-timeline-item__timestamp{color:var(--el-text-color-secondary);line-height:1;font-size:var(--el-font-size-small)}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-timeline{--el-timeline-node-size-normal:12px;--el-timeline-node-size-large:14px;--el-timeline-node-color:var(--el-border-color-light);margin:0;font-size:var(--el-font-size-base);list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline .el-timeline-item__center{display:flex;align-items:center}.el-timeline .el-timeline-item__center .el-timeline-item__wrapper{width:100%}.el-timeline .el-timeline-item__center .el-timeline-item__tail{top:0}.el-timeline .el-timeline-item__center:first-child .el-timeline-item__tail{height:calc(50% + 10px);top:calc(50% - 10px)}.el-timeline .el-timeline-item__center:last-child .el-timeline-item__tail{display:block;height:calc(50% - 10px)}.el-tooltip-v2__content{--el-tooltip-v2-padding:5px 10px;--el-tooltip-v2-border-radius:4px;--el-tooltip-v2-border-color:var(--el-border-color);border-radius:var(--el-tooltip-v2-border-radius);color:var(--el-color-black);background-color:var(--el-color-white);padding:var(--el-tooltip-v2-padding);border:1px solid var(--el-border-color)}.el-tooltip-v2__arrow{position:absolute;color:var(--el-color-white);width:var(--el-tooltip-v2-arrow-width);height:var(--el-tooltip-v2-arrow-height);pointer-events:none;left:var(--el-tooltip-v2-arrow-x);top:var(--el-tooltip-v2-arrow-y)}.el-tooltip-v2__arrow:before{content:"";width:0;height:0;border:var(--el-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.el-tooltip-v2__arrow:after{content:"";width:0;height:0;border:var(--el-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow{bottom:0}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow:before{border-top-color:var(--el-color-white);border-top-width:var(--el-tooltip-v2-arrow-border-width);border-bottom:0;top:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow:after{border-top-color:var(--el-border-color);border-top-width:var(--el-tooltip-v2-arrow-border-width);border-bottom:0;top:100%;z-index:-1}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow{top:0}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow:before{border-bottom-color:var(--el-color-white);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow:after{border-bottom-color:var(--el-border-color);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:100%;z-index:-1}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow{right:0}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow:before{border-left-color:var(--el-color-white);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow:after{border-left-color:var(--el-border-color);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:100%;z-index:-1}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow{left:0}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow:before{border-right-color:var(--el-color-white);border-right-width:var(--el-tooltip-v2-arrow-border-width);border-left:0;right:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow:after{border-right-color:var(--el-border-color);border-right-width:var(--el-tooltip-v2-arrow-border-width);border-left:0;right:100%;z-index:-1}.el-tooltip-v2__content.is-dark{--el-tooltip-v2-border-color:transparent;background-color:var(--el-color-black);color:var(--el-color-white);border-color:transparent}.el-tooltip-v2__content.is-dark .el-tooltip-v2__arrow{background-color:var(--el-color-black);border-color:transparent}.el-transfer{--el-transfer-border-color:var(--el-border-color-lighter);--el-transfer-border-radius:var(--el-border-radius-base);--el-transfer-panel-width:200px;--el-transfer-panel-header-height:40px;--el-transfer-panel-header-bg-color:var(--el-fill-color-light);--el-transfer-panel-footer-height:40px;--el-transfer-panel-body-height:278px;--el-transfer-item-height:30px;--el-transfer-filter-height:32px;font-size:var(--el-font-size-base)}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{vertical-align:top}.el-transfer__button:nth-child(2){margin:0 0 0 10px}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button .el-icon+span{margin-left:0}.el-transfer-panel{overflow:hidden;background:var(--el-bg-color-overlay);display:inline-block;text-align:left;vertical-align:middle;width:var(--el-transfer-panel-width);max-height:100%;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:var(--el-transfer-panel-body-height);border-left:1px solid var(--el-transfer-border-color);border-right:1px solid var(--el-transfer-border-color);border-bottom:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius);overflow:hidden}.el-transfer-panel__body.is-with-footer{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:var(--el-transfer-panel-body-height);overflow:auto;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:calc(100% - var(--el-transfer-filter-height) - 30px);padding-top:0}.el-transfer-panel__item{height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding-left:15px;display:block!important}.el-transfer-panel__item+.el-transfer-panel__item{margin-left:0}.el-transfer-panel__item.el-checkbox{color:var(--el-text-color-regular)}.el-transfer-panel__item:hover{color:var(--el-color-primary)}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;box-sizing:border-box;padding-left:22px;line-height:var(--el-transfer-item-height)}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;box-sizing:border-box;width:auto}.el-transfer-panel__filter .el-input__inner{height:var(--el-transfer-filter-height);width:100%;font-size:12px;display:inline-block;box-sizing:border-box;border-radius:calc(var(--el-transfer-filter-height)/ 2)}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{display:flex;align-items:center;height:var(--el-transfer-panel-header-height);background:var(--el-transfer-panel-header-bg-color);margin:0;padding-left:15px;border:1px solid var(--el-transfer-border-color);border-top-left-radius:var(--el-transfer-border-radius);border-top-right-radius:var(--el-transfer-border-radius);box-sizing:border-box;color:var(--el-color-black)}.el-transfer-panel .el-transfer-panel__header .el-checkbox{position:relative;display:flex;width:100%;align-items:center}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:var(--el-text-color-primary);font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;top:50%;transform:translate3d(0,-50%,0);color:var(--el-text-color-secondary);font-size:12px;font-weight:400}.el-transfer-panel .el-transfer-panel__footer{height:var(--el-transfer-panel-footer-height);background:var(--el-bg-color-overlay);margin:0;padding:0;border:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius)}.el-transfer-panel .el-transfer-panel__footer:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:var(--el-text-color-regular)}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding:6px 15px 0;color:var(--el-text-color-secondary);text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner:after{height:6px;width:3px;left:4px}.el-tree{--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder);position:relative;cursor:default;background:var(--el-fill-color-blank);color:var(--el-tree-text-color);font-size:var(--el-font-size-base)}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--el-text-color-secondary);font-size:var(--el-font-size-base)}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:var(--el-color-primary)}.el-tree-node{white-space:nowrap;outline:0}.el-tree-node:focus>.el-tree-node__content{background-color:var(--el-tree-node-hover-bg-color)}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:var(--el-color-primary);color:#fff}.el-tree-node__content{display:flex;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px;box-sizing:content-box}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:var(--el-tree-node-hover-bg-color)}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:var(--el-tree-expand-icon-color);font-size:12px;transform:rotate(0);transition:transform var(--el-transition-duration) ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__expand-icon.is-hidden{visibility:hidden}.el-tree-node__loading-icon{margin-right:8px;font-size:var(--el-font-size-base);color:var(--el-tree-expand-icon-color)}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:var(--el-color-primary-light-9)}.el-tree-select{--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree-select__popper .el-tree-node__expand-icon{margin-left:8px}.el-tree-select__popper .el-tree-node.is-checked>.el-tree-node__content .el-select-dropdown__item.selected:after{content:none}.el-tree-select__popper .el-select-dropdown__item{flex:1;background:0 0!important;padding-left:0;height:20px;line-height:20px}.el-upload{--el-upload-dragger-padding-horizontal:40px;--el-upload-dragger-padding-vertical:10px;display:inline-flex;justify-content:center;align-items:center;cursor:pointer;outline:0}.el-upload__tip{font-size:12px;color:var(--el-text-color-regular);margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0}.el-upload--picture-card{--el-upload-picture-card-size:148px;background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);border-radius:6px;box-sizing:border-box;width:var(--el-upload-picture-card-size);height:var(--el-upload-picture-card-size);cursor:pointer;vertical-align:top;display:inline-flex;justify-content:center;align-items:center}.el-upload--picture-card i{font-size:28px;color:var(--el-text-color-secondary)}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{padding:var(--el-upload-dragger-padding-horizontal) var(--el-upload-dragger-padding-vertical);background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);border-radius:6px;box-sizing:border-box;text-align:center;cursor:pointer;position:relative;overflow:hidden}.el-upload-dragger .el-icon--upload{font-size:67px;color:var(--el-text-color-placeholder);margin-bottom:16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{padding:calc(var(--el-upload-dragger-padding-horizontal) - 1px) calc(var(--el-upload-dragger-padding-vertical) - 1px);background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary)}.el-upload-list{margin:10px 0 0;padding:0;list-style:none;position:relative}.el-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:var(--el-text-color-regular);margin-bottom:5px;position:relative;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{display:none;position:absolute;right:5px;top:50%;cursor:pointer;opacity:.75;color:var(--el-text-color-regular);transition:opacity var(--el-transition-duration);transform:translateY(-50%)}.el-upload-list__item .el-icon--close:hover{opacity:1;color:var(--el-color-primary)}.el-upload-list__item .el-icon--close-tip{display:none;position:absolute;top:1px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:var(--el-color-primary);font-style:normal}.el-upload-list__item:hover{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{display:inline-flex;justify-content:center;flex-direction:column;width:calc(100% - 30px);margin-left:4px}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon--close-tip,.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip{display:none}.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none;opacity:0}.el-upload-list.is-disabled .el-upload-list__item-status-label,.el-upload-list.is-disabled .el-upload-list__item:hover{display:block}.el-upload-list__item-name{color:var(--el-text-color-regular);display:inline-flex;text-align:center;align-items:center;padding:0 4px;transition:color var(--el-transition-duration);font-size:var(--el-font-size-base)}.el-upload-list__item-name .el-icon{margin-right:6px;color:var(--el-text-color-secondary)}.el-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none;height:100%;justify-content:center;align-items:center;transition:opacity var(--el-transition-duration)}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:var(--el-text-color-regular);display:none}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{--el-upload-list-picture-card-size:148px;display:inline-flex;flex-wrap:wrap;margin:0}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;width:var(--el-upload-list-picture-card-size);height:var(--el-upload-list-picture-card-size);margin:0 8px 8px 0;padding:0;display:inline-flex}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.el-upload-list--picture-card .el-upload-list__item-status-label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;display:inline-flex;justify-content:center;align-items:center;color:#fff;opacity:0;font-size:20px;background-color:var(--el-overlay-color-lighter);transition:opacity var(--el-transition-duration)}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:1rem}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px;display:flex;align-items:center}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{display:inline-flex;justify-content:center;align-items:center;width:70px;height:70px;-o-object-fit:contain;object-fit:contain;position:relative;z-index:1;background-color:var(--el-color-white)}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:var(--el-overlay-color-light);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;transition:var(--el-transition-md-fade);margin-top:60px}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:var(--el-text-color-primary)}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-vl__wrapper{position:relative}.el-vl__wrapper:hover .el-virtual-scrollbar,.el-vl__wrapper.always-on .el-virtual-scrollbar{opacity:1}.el-vl__window{scrollbar-width:none}.el-vl__window::-webkit-scrollbar{display:none}.el-virtual-scrollbar{opacity:0;transition:opacity .34s ease-out}.el-virtual-scrollbar.always-on{opacity:1}.el-vg__wrapper{position:relative}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius, 4px);position:absolute;border-radius:var(--el-popper-border-radius);padding:5px 11px;z-index:2000;font-size:12px;line-height:20px;min-width:10px;word-wrap:break-word;visibility:visible}.el-popper.is-dark{color:var(--el-bg-color);background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark .el-popper__arrow:before{border:1px solid var(--el-text-color-primary);background:var(--el-text-color-primary);right:0}.el-popper.is-light{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light .el-popper__arrow:before{border:1px solid var(--el-border-color-light);background:var(--el-bg-color-overlay);right:0}.el-popper.is-pure{padding:0}.el-popper__arrow{position:absolute;width:10px;height:10px;z-index:-1}.el-popper__arrow:before{position:absolute;width:10px;height:10px;z-index:-1;content:" ";transform:rotate(45deg);background:var(--el-text-color-primary);box-sizing:border-box}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-left-color:transparent!important;border-bottom-color:transparent!important}.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.el-select-dropdown__item{font-size:var(--el-font-size-base);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--el-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:var(--el-fill-color-light)}.el-select-dropdown__item.selected{color:var(--el-color-primary);font-weight:700}.el-statistic{--el-statistic-title-font-weight:400;--el-statistic-title-font-size:var(--el-font-size-extra-small);--el-statistic-title-color:var(--el-text-color-regular);--el-statistic-content-font-weight:400;--el-statistic-content-font-size:var(--el-font-size-extra-large);--el-statistic-content-color:var(--el-text-color-primary)}.el-statistic__head{font-weight:var(--el-statistic-title-font-weight);font-size:var(--el-statistic-title-font-size);color:var(--el-statistic-title-color);line-height:20px;margin-bottom:4px}.el-statistic__content{font-weight:var(--el-statistic-content-font-weight);font-size:var(--el-statistic-content-font-size);color:var(--el-statistic-content-color)}.el-statistic__value{display:inline-block}.el-statistic__prefix{margin-right:4px;display:inline-block}.el-statistic__suffix{margin-left:4px;display:inline-block}.fade-enter-active,.fade-leave-active{transition:opacity .28s}.fade-enter,.fade-leave-active{opacity:0}.fade-transform--move,.fade-transform-leave-active,.fade-transform-enter-active{transition:all .5s}.fade-transform-enter{opacity:0;transform:translate(-30px)}.fade-transform-leave-to{opacity:0;transform:translate(30px)}.breadcrumb-enter-active,.breadcrumb-leave-active{transition:all .5s}.breadcrumb-enter,.breadcrumb-leave-active{opacity:0;transform:translate(20px)}.breadcrumb-move{transition:all .5s}.breadcrumb-leave-active{position:absolute}.el-collapse .collapse__title{font-weight:600;padding:0 8px;font-size:1.2em;line-height:1.1em}.el-collapse .el-collapse-item__content{padding:0 8px}.el-divider--horizontal{margin-bottom:10px;margin-top:10px}.el-breadcrumb__inner,.el-breadcrumb__inner a{font-weight:400!important}.el-upload input[type=file]{display:none!important}.el-upload__input{display:none}.cell .el-tag{margin-right:0}.small-padding .cell{padding-left:5px;padding-right:5px}.fixed-width .el-button--mini{padding:7px 10px;width:60px}.status-col .cell{padding:0 10px;text-align:center}.status-col .cell .el-tag{margin-right:0}.el-overlay{overflow:hidden}.el-overlay .el-overlay-dialog{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.el-overlay .el-overlay-dialog .el-dialog{margin:0 auto!important}.el-overlay .el-overlay-dialog .el-dialog .el-dialog__body{padding:15px!important}.el-overlay .el-overlay-dialog .el-dialog .el-dialog__header{padding:16px 16px 8px;box-sizing:border-box;border-bottom:1px solid var(--el-color-primary);margin-right:0}.el-dialog__body{max-height:calc(90vh - 111px)!important;overflow-y:auto;overflow-x:hidden}.upload-container .el-upload{width:100%}.upload-container .el-upload .el-upload-dragger{width:100%;height:200px}.el-dropdown-menu a{display:block}.el-range-editor.el-input__inner{display:inline-flex!important}.el-range-separator{box-sizing:content-box}.el-menu--collapse>div>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-dropdown .el-dropdown-link{color:var(--el-color-primary)!important}.el-form--inline .el-form-item__label{width:68px}.el-form--inline .el-select,.el-form--inline .el-input{width:240px}#app .main-container{min-height:100%;transition:margin-left .28s;position:relative}#app .sidebarHide{margin-left:0!important}#app .sidebar-container{transition:width .28s;width:200px!important;background-color:#fff;height:100%;position:relative;font-size:0px;top:0;bottom:0;left:0;z-index:1000;overflow:hidden}#app .sidebar-container .horizontal-collapse-transition{transition:0s width ease-in-out,0s padding-left ease-in-out,0s padding-right ease-in-out}#app .sidebar-container .scrollbar-wrapper{overflow-x:hidden!important}#app .sidebar-container .el-scrollbar__bar.is-vertical{right:0}#app .sidebar-container .el-scrollbar{height:100%}#app .sidebar-container.has-logo .el-scrollbar{height:calc(100% - 50px)}#app .sidebar-container .is-horizontal{display:none}#app .sidebar-container a{display:inline-block;width:100%;overflow:hidden}#app .sidebar-container .el-menu{border:none;height:100%;width:100%!important}#app .sidebar-container .el-menu-item,#app .sidebar-container .menu-title{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}#app .sidebar-container .menu-title{margin-left:10px}#app .sidebar-container .el-menu-item .el-menu-tooltip__trigger{display:flex;align-items:center;justify-content:center}#app .sidebar-container .sub-menu-title-noDropdown:hover,#app .sidebar-container .el-sub-menu__title:hover,#app .sidebar-container .el-menu-item:hover{background-color:#e5e5e5!important}#app .sidebar-container .theme-dark .is-active>.el-sub-menu__title{color:#000!important}#app .sidebar-container .nest-menu .el-sub-menu>.el-sub-menu__title,#app .sidebar-container .el-sub-menu .el-menu-item{min-width:200px!important}#app .sidebar-container .nest-menu .el-sub-menu>.el-sub-menu__title:hover,#app .sidebar-container .el-sub-menu .el-menu-item:hover{background-color:#e5e5e5!important}#app .sidebar-container .theme-dark .nest-menu .el-sub-menu>.el-sub-menu__title,#app .sidebar-container .theme-dark .el-sub-menu .el-menu-item{background-color:#fff!important}#app .sidebar-container .theme-dark .nest-menu .el-sub-menu>.el-sub-menu__title:hover,#app .sidebar-container .theme-dark .el-sub-menu .el-menu-item:hover{background-color:#c4cbf3!important}#app .sidebar-container .theme-dark .nest-menu .el-sub-menu>.el-sub-menu__title,#app .sidebar-container .theme-dark .el-sub-menu .el-menu-item.is-active{color:#fff!important;background-color:#434343!important}#app .sidebar-container .el-menu-item.is-active{color:#fff!important;background-color:#434343!important}#app .hideSidebar .sidebar-container{height:calc(100vh - 50px);background-color:red}#app .hideSidebar .main-container{margin-left:0}#app .hideSidebar .sub-menu-title-noDropdown{padding:0!important;position:relative}#app .hideSidebar .sub-menu-title-noDropdown .el-tooltip{padding:0!important}#app .hideSidebar .sub-menu-title-noDropdown .el-tooltip .svg-icon{margin-left:20px}#app .hideSidebar .el-sub-menu{overflow:hidden}#app .hideSidebar .el-sub-menu>.el-sub-menu__title{padding:0!important}#app .hideSidebar .el-sub-menu>.el-sub-menu__title .svg-icon{margin-left:20px}#app .el-menu--collapse .el-menu .el-sub-menu{min-width:200px!important}#app .mobile .main-container{margin-left:0}#app .mobile .sidebar-container{transition:transform .28s;width:200px!important}#app .withoutAnimation .main-container,#app .withoutAnimation .sidebar-container{transition:none}.el-menu--vertical>.el-menu .svg-icon{margin-right:16px}.el-menu--vertical .nest-menu .el-sub-menu>.el-sub-menu__title:hover,.el-menu--vertical .el-menu-item:hover{background-color:FF7B5D!important}.el-menu--vertical>.el-menu--popup{max-height:100vh;overflow-y:auto}.el-menu--vertical>.el-menu--popup::-webkit-scrollbar-track-piece{background:#d3dce6}.el-menu--vertical>.el-menu--popup::-webkit-scrollbar{width:6px}.el-menu--vertical>.el-menu--popup::-webkit-scrollbar-thumb{background:#99a9bf;border-radius:20px}:export{menuColor:#000;menuLightColor:rgba(0,0,0,.7);menuColorActive:#000;menuBackground:#fff;menuLightBackground:#ffffff;subMenuBackground:#fff;subMenuHover:#c4cbf3;sideBarWidth:200px;logoTitleColor:#ffffff;logoLightTitleColor:#001529;primaryColor:#409EFF;successColor:#67C23A;dangerColor:#F56C6C;infoColor:#909399;warningColor:#E6A23C}.blue-btn{background:#324157}.blue-btn:hover{color:#324157}.blue-btn:hover:before,.blue-btn:hover:after{background:#324157}.light-blue-btn{background:#3a71a8}.light-blue-btn:hover{color:#3a71a8}.light-blue-btn:hover:before,.light-blue-btn:hover:after{background:#3a71a8}.red-btn{background:#c03639}.red-btn:hover{color:#c03639}.red-btn:hover:before,.red-btn:hover:after{background:#c03639}.pink-btn{background:#e65d6e}.pink-btn:hover{color:#e65d6e}.pink-btn:hover:before,.pink-btn:hover:after{background:#e65d6e}.green-btn{background:#30b08f}.green-btn:hover{color:#30b08f}.green-btn:hover:before,.green-btn:hover:after{background:#30b08f}.tiffany-btn{background:#4ab7bd}.tiffany-btn:hover{color:#4ab7bd}.tiffany-btn:hover:before,.tiffany-btn:hover:after{background:#4ab7bd}.yellow-btn{background:#fec171}.yellow-btn:hover{color:#fec171}.yellow-btn:hover:before,.yellow-btn:hover:after{background:#fec171}.pan-btn{font-size:14px;color:#fff;padding:14px 36px;border-radius:8px;border:none;outline:none;transition:.6s ease all;position:relative;display:inline-block}.pan-btn:hover{background:#fff}.pan-btn:hover:before,.pan-btn:hover:after{width:100%;transition:.6s ease all}.pan-btn:before,.pan-btn:after{content:"";position:absolute;top:0;right:0;height:2px;width:0;transition:.4s ease all}.pan-btn:after{right:inherit;top:inherit;left:0;bottom:0}.custom-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;color:#fff;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;padding:10px 15px;font-size:14px;border-radius:4px}.pt5{padding-top:5px}.pr5{padding-right:5px}.pb5{padding-bottom:5px}.mt5{margin-top:5px}.mr5{margin-right:5px}.mb5{margin-bottom:5px}.mb8{margin-bottom:8px}.ml5{margin-left:5px}.mt10{margin-top:10px}.mr10{margin-right:10px}.mb10{margin-bottom:10px}.ml10{margin-left:10px}.mt20{margin-top:20px}.mr20{margin-right:20px}.mb20{margin-bottom:20px}.ml20{margin-left:20px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.el-form .el-form-item__label{font-weight:700}.el-dialog:not(.is-fullscreen){margin-top:6vh!important}.el-dialog.scrollbar .el-dialog__body{overflow:auto;overflow-x:hidden;max-height:70vh;padding:10px 20px 0}.el-table .el-table__header-wrapper th,.el-table .el-table__fixed-header-wrapper th{word-break:break-word;background-color:#f8f8f9!important;color:#515a6e;height:40px!important;font-size:13px}.el-table .el-table__body-wrapper .el-button [class*=el-icon-]+span{margin-left:1px}.form-header{font-size:15px;color:#6379bb;border-bottom:1px solid #ddd;margin:8px 10px 25px;padding-bottom:5px}.pagination-container{height:25px;margin-bottom:10px;margin-top:15px;padding:10px 20px!important}.tree-border{margin-top:5px;border:1px solid #e5e6e7;background:#fff none;border-radius:4px;width:100%}.pagination-container .el-pagination{right:0;position:absolute}@media (max-width: 768px){.pagination-container .el-pagination>.el-pagination__jump{display:none!important}.pagination-container .el-pagination>.el-pagination__sizes{display:none!important}}.el-table .fixed-width .el-button--small{padding-left:0;padding-right:0;width:inherit}.el-table .el-dropdown-link{cursor:pointer;color:#409eff;margin-left:10px}.el-table .el-dropdown,.el-icon-arrow-down{font-size:12px}.el-tree-node__content>.el-checkbox{margin-right:8px}.list-group-striped>.list-group-item{border-left:0;border-right:0;border-radius:0;padding-left:0;padding-right:0}.list-group{padding-left:0;list-style:none}.list-group-item{border-bottom:1px solid #e7eaec;border-top:1px solid #e7eaec;margin-bottom:-1px;padding:11px 0;font-size:13px}.pull-right{float:right!important}.el-card__header{padding:14px 15px 7px!important;min-height:40px}.el-card__body{padding:15px 20px 20px!important}.card-box{padding-right:15px;padding-left:15px;margin-bottom:10px}.el-button--cyan.is-active,.el-button--cyan:active{background:#20b2aa;border-color:#20b2aa;color:#fff}.el-button--cyan:focus,.el-button--cyan:hover{background:#48d1cc;border-color:#48d1cc;color:#fff}.el-button--cyan{background-color:#20b2aa;border-color:#20b2aa;color:#fff}.text-navy{color:#1ab394}.text-primary{color:inherit}.text-success{color:#1c84c6}.text-info{color:#23c6c8}.text-warning{color:#f8ac59}.text-danger{color:#ed5565}.text-muted{color:#888}.img-circle{border-radius:50%}.img-lg{width:120px;height:120px}.avatar-upload-preview{position:absolute;top:50%;transform:translate(50%,-50%);width:200px;height:200px;border-radius:50%;box-shadow:0 0 4px #ccc;overflow:hidden}.sortable-ghost{opacity:.8;color:#fff!important;background:#42b983!important}.top-right-btn{margin-left:auto}body{height:100%;margin:0;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Arial,sans-serif}label{font-weight:700}html{height:100%;box-sizing:border-box}#app{height:100%}*,*:before,*:after{box-sizing:inherit}.no-padding{padding:0!important}.padding-content{padding:4px 0}a:focus,a:active{outline:none}a,a:focus,a:hover{cursor:pointer;color:inherit;text-decoration:none}div:focus{outline:none}.fr{float:right}.fl{float:left}.pr-5{padding-right:5px}.pl-5{padding-left:5px}.block{display:block}.pointer{cursor:pointer}.inlineBlock{display:block}.clearfix:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}aside{background:#eef1f6;padding:8px 24px;margin-bottom:20px;border-radius:2px;display:block;line-height:32px;font-size:16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;color:#2c3e50;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}aside a{color:#337ab7;cursor:pointer}aside a:hover{color:#20a0ff}.app-container{background-color:#fff;padding:30px;position:relative;box-shadow:var(--el-box-shadow-light)}.components-container{margin:30px 50px;position:relative}.text-center{text-align:center}.sub-navbar{height:50px;line-height:50px;position:relative;width:100%;text-align:right;padding-right:20px;transition:.6s ease position;background:linear-gradient(90deg,#20b6f9,#20b6f9 0%,#2178f1 100%,#2178f1)}.sub-navbar .subtitle{font-size:20px;color:#fff}.sub-navbar.draft,.sub-navbar.deleted{background:#d0d0d0}.link-type,.link-type:focus{color:#337ab7;cursor:pointer}.link-type:hover,.link-type:focus:hover{color:#20a0ff}.filter-container{padding-bottom:10px}.filter-container .filter-item{display:inline-block;vertical-align:middle;margin-bottom:10px}.el-form-item--default .el-form-item__label{position:relative;line-height:1.4!important;text-align:left;padding-left:10px;display:flex;align-items:center;justify-content:flex-start}.el-form-item--default .el-form-item__label:before{position:absolute;left:0}.form-100{width:100%;margin-right:0!important}.form-100 .el-select,.form-100 .el-input-number{width:100%}.form-50{width:50%;margin-right:0!important}.form-50 .el-select,.form-50 .el-input-number{width:100%}.agency-detail-massage-cont{display:flex;justify-content:space-between;flex-wrap:wrap;width:100%}.agency-detail-cont-title{width:100%;font-size:20px;color:#333;font-weight:900;margin-bottom:10px}.agency-detail-cont-item{display:flex;justify-content:space-between;align-items:center;width:50%}.agency-detail-item-title{flex:3;display:inline-flex;justify-content:flex-start;align-items:center;width:20%;height:100%;padding:15px 0 15px 23px;flex-shrink:0;color:#333;font-size:16px;font-weight:600}.agency-detail-item-content{flex:7;display:inline-flex;justify-content:flex-start;align-items:center;width:70%;height:100%;padding:8px 0 8px 23px;color:#333;font-size:16px;font-weight:400}.agency-detail-item-img{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start}.text-out-of-hiding-1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-out-of-hiding-2{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.el-table .el-table__header-wrapper th,.el-table .el-table__fixed-header-wrapper th{background-color:#ededed!important}.container-application{box-sizing:border-box;padding:0 20px 8px}.container-application .liation-checkbox{display:flex;position:absolute;left:20px;top:20px;height:34px!important;z-index:10}.container-application .application-list{line-height:0;margin-top:20px;height:auto;box-shadow:0 1px 10px -1px #999;border-radius:6px;overflow:hidden;position:relative;padding:15px 15px 0}.container-application .application-list .application-img{position:relative;width:100%}.container-application .application-list .application-img:before{content:"";display:block;padding-top:100%}.container-application .application-list .application-img-value{position:absolute;top:0;left:0;width:100%;height:100%}.container-application .application-list .application-icon{position:absolute;left:16px;top:18px;display:flex;font-size:30px;z-index:10;cursor:pointer}.container-application .application-list .application-icon .application-icon-img{display:flex;width:30px;height:30px;margin-top:2px;margin-left:4px}.container-application .application-list .list-icon{width:34px;height:34px;position:absolute;right:20px;top:20px;z-index:10;cursor:pointer}.container-application .application-list .list-text{width:100%;height:45px;margin-top:10px;line-height:45px;font-size:17px;color:#262626;font-weight:700}.container-application .application-list .list-content{width:100%;height:50px}.container-application .application-list .list-content .list-content-text{line-height:1.2;font-size:14px;color:#606266}.application-list-selectitem-icon{width:14px;height:14px;margin-right:5px}.app-main[data-v-7d08d4da]{min-height:calc(100vh - 176px);width:100%;position:relative;overflow:hidden}.fixed-header+.app-main[data-v-7d08d4da]{padding-top:50px}.hasTagsView .fixed-header+.app-main[data-v-7d08d4da]{padding-top:84px}.app-breadcrumb.el-breadcrumb[data-v-64be8a77]{display:inline-flex;align-items:center;height:56px;font-size:16px;line-height:1;margin-left:8px}.app-breadcrumb.el-breadcrumb .no-redirect[data-v-64be8a77]{color:#333;font-weight:600;cursor:text}[data-v-64be8a77] .el-breadcrumb__separator{color:#333}.topmenu-container.el-menu--horizontal>.el-menu-item{float:left;height:50px!important;line-height:50px!important;color:#999093!important;padding:0 5px!important;margin:0 10px!important}.topmenu-container.el-menu--horizontal>.el-menu-item.is-active,.el-menu--horizontal>.el-sub-menu.is-active .el-submenu__title{border-bottom:2px solid var(--theme)!important;color:#303133}.topmenu-container.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{float:left;height:50px!important;line-height:50px!important;color:#999093!important;padding:0 5px!important;margin:0 10px!important}.topmenu-container.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.topmenu-container.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover,.topmenu-container.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff!important}.topmenu-container .svg-icon{margin-right:4px}.topmenu-container .el-sub-menu .el-sub-menu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:0}.hamburger[data-v-cf79f140]{display:inline-block;vertical-align:middle;width:20px;height:20px}.hamburger.is-active[data-v-cf79f140]{transform:rotate(180deg)}.navbar[data-v-4684bfd8]{height:56px;overflow:hidden;position:relative}.navbar .hamburger-container[data-v-4684bfd8]{line-height:56px;height:100%;float:left;cursor:pointer;transition:background .3s;-webkit-tap-highlight-color:transparent}.navbar .hamburger-container[data-v-4684bfd8]:hover{background:#00000006}.navbar .breadcrumb-container[data-v-4684bfd8]{display:flex;align-content:center;float:left;height:100%}.navbar .topmenu-container[data-v-4684bfd8]{position:absolute;left:50px}.navbar .errLog-container[data-v-4684bfd8]{display:inline-block;vertical-align:top}.setting-drawer-title[data-v-864f86ae]{margin-bottom:12px;color:#000000d9;line-height:22px;font-weight:700}.setting-drawer-title .drawer-title[data-v-864f86ae]{font-size:14px}.setting-drawer-block-checbox[data-v-864f86ae]{display:flex;justify-content:flex-start;align-items:center;margin-top:10px;margin-bottom:20px}.setting-drawer-block-checbox .setting-drawer-block-checbox-item[data-v-864f86ae]{position:relative;margin-right:16px;border-radius:2px;cursor:pointer}.setting-drawer-block-checbox .setting-drawer-block-checbox-item img[data-v-864f86ae]{width:48px;height:48px}.setting-drawer-block-checbox .setting-drawer-block-checbox-item .custom-img[data-v-864f86ae]{width:48px;height:38px;border-radius:5px;box-shadow:1px 1px 2px #898484}.setting-drawer-block-checbox .setting-drawer-block-checbox-item .setting-drawer-block-checbox-selectIcon[data-v-864f86ae]{position:absolute;top:0;right:0;width:100%;height:100%;padding-top:15px;padding-left:24px;color:#1890ff;font-weight:700;font-size:14px}.drawer-item[data-v-864f86ae]{color:#000000a6;padding:12px 0;font-size:14px}.drawer-item .comp-style[data-v-864f86ae]{float:right;margin:-3px 8px 0 0}.scroll-container[data-v-eafaa10e]{white-space:nowrap;position:relative;overflow:hidden;width:100%}.scroll-container[data-v-eafaa10e] .el-scrollbar__bar{bottom:0}.scroll-container[data-v-eafaa10e] .el-scrollbar__wrap{height:39px}.tags-view-container[data-v-7905434f]{height:34px;width:100%;background:#fff;border-bottom:1px solid #d8dce5;box-shadow:0 1px 3px #0000001f,0 0 3px #0000000a}.tags-view-container .tags-view-wrapper .tags-view-item[data-v-7905434f]{display:inline-block;position:relative;cursor:pointer;height:26px;line-height:26px;border:1px solid #d8dce5;color:#495060;background:#fff;padding:0 8px;font-size:12px;margin-left:5px;margin-top:4px}.tags-view-container .tags-view-wrapper .tags-view-item[data-v-7905434f]:first-of-type{margin-left:15px}.tags-view-container .tags-view-wrapper .tags-view-item[data-v-7905434f]:last-of-type{margin-right:15px}.tags-view-container .tags-view-wrapper .tags-view-item.active[data-v-7905434f]{background-color:#42b983;color:#fff;border-color:#42b983}.tags-view-container .tags-view-wrapper .tags-view-item.active[data-v-7905434f]:before{content:"";background:#fff;display:inline-block;width:8px;height:8px;border-radius:50%;position:relative;margin-right:5px}.tags-view-container .contextmenu[data-v-7905434f]{margin:0;background:#fff;z-index:3000;position:absolute;list-style-type:none;padding:5px 0;border-radius:4px;font-size:12px;font-weight:400;color:#333;box-shadow:2px 2px 3px #0000004d}.tags-view-container .contextmenu li[data-v-7905434f]{margin:0;padding:7px 16px;cursor:pointer}.tags-view-container .contextmenu li[data-v-7905434f]:hover{background:#eee}.tags-view-wrapper .tags-view-item .el-icon-close{width:16px;height:16px;vertical-align:2px;border-radius:50%;text-align:center;transition:all .3s cubic-bezier(.645,.045,.355,1);transform-origin:100% 50%}.tags-view-wrapper .tags-view-item .el-icon-close:before{transform:scale(.6);display:inline-block;vertical-align:-3px}.tags-view-wrapper .tags-view-item .el-icon-close:hover{background-color:#b4bccc;color:#fff;width:12px!important;height:12px!important}[data-v-1d387183]:export{menuColor:#000;menuLightColor:rgba(0,0,0,.7);menuColorActive:#000;menuBackground:#fff;menuLightBackground:#ffffff;subMenuBackground:#fff;subMenuHover:#c4cbf3;sideBarWidth:200px;logoTitleColor:#ffffff;logoLightTitleColor:#001529;primaryColor:#409EFF;successColor:#67C23A;dangerColor:#F56C6C;infoColor:#909399;warningColor:#E6A23C}.tags-view[data-v-1d387183]{opacity:0;top:0;position:fixed}.main-container[data-v-1d387183]{position:relative;display:flex;height:calc(100vh - 50px);overflow-y:auto;overflow:hidden;margin:0;background-color:#fff;box-shadow:0 0 10px 4px #ece9e3}.main-container .sidebar-container[data-v-1d387183]{box-shadow:#00000026 1.95px 1.95px 2.6px;width:200px}.main-container .sidebar-right[data-v-1d387183]{width:calc(100% - 200px);position:relative;overflow:hidden;overflow-x:hidden;overflow-y:scroll}.main-container .sidebar-right .right-bar[data-v-1d387183]{width:100%;background:#f6f6f6;overflow-x:hidden}.main-container .sidebar-right[data-v-1d387183]::-webkit-scrollbar{height:0px;width:0px}.app-wrapper[data-v-1d387183]{position:relative;height:100%;width:100%;background:#f6f6f6}.app-wrapper[data-v-1d387183]:after{content:"";display:table;clear:both}.app-wrapper.mobile.openSidebar[data-v-1d387183]{position:fixed;top:0}.wrapper-content .content-nav[data-v-1d387183]{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:1111;width:100%;height:50px;box-shadow:2px 0 9px #00152959;padding:3px 20px;background-color:#434343}.wrapper-content .content-nav .nav-left[data-v-1d387183]{display:flex;align-items:center;color:#fff;box-sizing:border-box}.wrapper-content .content-nav .nav-left div[data-v-1d387183]{font-size:19px}.wrapper-content .content-nav .nav-right[data-v-1d387183]{display:flex;flex-wrap:nowrap;align-items:center;height:100%}.wrapper-content .content-nav .nav-right .screenfull[data-v-1d387183]{font-size:22px;cursor:pointer;color:#ffe565}.wrapper-content .content-nav .nav-right .avatar-wrapper[data-v-1d387183]{position:relative;display:flex;flex-wrap:nowrap;cursor:pointer;align-items:center;margin-right:30px}.wrapper-content .content-nav .nav-right .avatar-wrapper .user-avatar[data-v-1d387183]{cursor:pointer;width:50px;height:50px;border-radius:50%}.wrapper-content .content-nav .nav-right .avatar-wrapper .username[data-v-1d387183]{padding:0 13px;font-weight:700;font-size:18px;line-height:1;color:#fff}.wrapper-content .content-nav .nav-right .avatar-wrapper .nickName[data-v-1d387183]{font-weight:700;font-size:18px;color:#fff}.wrapper-content .content-nav .nav-right .avatar-wrapper i[data-v-1d387183]{cursor:pointer;margin-left:6px;font-size:20px;color:#ffe565}.drawer-bg[data-v-1d387183]{background:#000;opacity:.3;width:100%;top:0;height:100%;position:absolute;z-index:999}.fixed-header[data-v-1d387183]{position:fixed;top:0;right:0;z-index:9;width:calc(100% - 200px);transition:width .28s}.hideSidebar .fixed-header[data-v-1d387183]{width:calc(100% - 54px)}.sidebarHide .fixed-header[data-v-1d387183],.mobile .fixed-header[data-v-1d387183]{width:100%} diff --git a/dist/assets/index-DNEs13w5.css.gz b/dist/assets/index-DNEs13w5.css.gz new file mode 100644 index 0000000..6a007d5 Binary files /dev/null and b/dist/assets/index-DNEs13w5.css.gz differ diff --git a/dist/assets/index-DikBC4WP.js b/dist/assets/index-DikBC4WP.js new file mode 100644 index 0000000..9e2cc8c --- /dev/null +++ b/dist/assets/index-DikBC4WP.js @@ -0,0 +1,127 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/login-ZNL3XKVp.js","assets/index-Ba59pKR3.js","assets/login-BDn7Jzn7.css","assets/index-eGhvKdrr.js","assets/bus-C8MdfDPM.js","assets/index-NNRUZ5z2.css","assets/index-DB_z42wD.js","assets/room-BKpValiO.js","assets/room-C5nwLQie.css","assets/index-CPnqFNg3.css","assets/index-MzbCaf1h.css","assets/index-BEyUpNsD.js","assets/index-Dw4wCXlI.css","assets/404-W2OpILVy.js","assets/404-Cb2yUGol.css","assets/401-BnzQ57U8.js","assets/401-BSBdQqy4.css","assets/index-Dikrwr7L.js"])))=>i.map(i=>d[i]); +var pP=Object.defineProperty;var M3=e=>{throw TypeError(e)};var hP=(e,t,n)=>t in e?pP(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ut=(e,t,n)=>hP(e,typeof t!="symbol"?t+"":t,n),Pm=(e,t,n)=>t.has(e)||M3("Cannot "+n);var Ie=(e,t,n)=>(Pm(e,t,"read from private field"),n?n.call(e):t.get(e)),en=(e,t,n)=>t.has(e)?M3("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Mt=(e,t,n,r)=>(Pm(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),bt=(e,t,n)=>(Pm(e,t,"access private method"),n);var Sf=(e,t,n,r)=>({set _(o){Mt(e,t,o,n)},get _(){return Ie(e,t,r)}});(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const s of o)if(s.type==="childList")for(const a of s.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(o){if(o.ep)return;o.ep=!0;const s=n(o);fetch(o.href,s)}})();/** +* @vue/shared v3.5.20 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function py(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const vn={},Kl=[],Kt=()=>{},zC=()=>!1,h0=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),hy=e=>e.startsWith("onUpdate:"),jn=Object.assign,my=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},mP=Object.prototype.hasOwnProperty,Bt=(e,t)=>mP.call(e,t),Ge=Array.isArray,Gl=e=>Pu(e)==="[object Map]",m0=e=>Pu(e)==="[object Set]",Ki=e=>Pu(e)==="[object Date]",vP=e=>Pu(e)==="[object RegExp]",at=e=>typeof e=="function",ft=e=>typeof e=="string",Lo=e=>typeof e=="symbol",xt=e=>e!==null&&typeof e=="object",sd=e=>(xt(e)||at(e))&&at(e.then)&&at(e.catch),FC=Object.prototype.toString,Pu=e=>FC.call(e),op=e=>Pu(e).slice(8,-1),HC=e=>Pu(e)==="[object Object]",vy=e=>ft(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Mc=py(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),v0=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},gP=/-(\w)/g,Tr=v0(e=>e.replace(gP,(t,n)=>n?n.toUpperCase():"")),_P=/\B([A-Z])/g,sa=v0(e=>e.replace(_P,"-$1").toLowerCase()),Nu=v0(e=>e.charAt(0).toUpperCase()+e.slice(1)),Oc=v0(e=>e?`on${Nu(e)}`:""),Ya=(e,t)=>!Object.is(e,t),Yl=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},f2=e=>{const t=parseFloat(e);return isNaN(t)?e:t},yP=e=>{const t=ft(e)?Number(e):NaN;return isNaN(t)?e:t};let O3;const g0=()=>O3||(O3=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Je(e){if(Ge(e)){const t={};for(let n=0;n{if(n){const r=n.split(wP);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function W(e){let t="";if(ft(e))t=e;else if(Ge(e))for(let n=0;nsu(n,t))}const WC=e=>!!(e&&e.__v_isRef===!0),ze=e=>ft(e)?e:e==null?"":Ge(e)||xt(e)&&(e.toString===FC||!at(e.toString))?WC(e)?ze(e.value):JSON.stringify(e,qC,2):String(e),qC=(e,t)=>WC(t)?qC(e,t.value):Gl(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,o],s)=>(n[Nm(r,s)+" =>"]=o,n),{})}:m0(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Nm(n))}:Lo(t)?Nm(t):xt(t)&&!Ge(t)&&!HC(t)?String(t):t,Nm=(e,t="")=>{var n;return Lo(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.5.20 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let dr;class gy{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=dr,!t&&dr&&(this.index=(dr.scopes||(dr.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0&&(dr=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(Pc){let t=Pc;for(Pc=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Rc;){let t=Rc;for(Rc=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function YC(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function XC(e){let t,n=e.depsTail,r=n;for(;r;){const o=r.prevDep;r.version===-1?(r===n&&(n=o),Ey(r),$P(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=o}e.deps=t,e.depsTail=n}function p2(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(JC(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function JC(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===ad)||(e.globalVersion=ad,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!p2(e))))return;e.flags|=2;const t=e.dep,n=bn,r=Ro;bn=e,Ro=!0;try{YC(e);const o=e.fn(e._value);(t.version===0||Ya(o,e._value))&&(e.flags|=128,e._value=o,t.version++)}catch(o){throw t.version++,o}finally{bn=n,Ro=r,XC(e),e.flags&=-3}}function Ey(e,t=!1){const{dep:n,prevSub:r,nextSub:o}=e;if(r&&(r.nextSub=o,e.prevSub=void 0),o&&(o.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let s=n.computed.deps;s;s=s.nextDep)Ey(s,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function $P(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Ro=!0;const QC=[];function Us(){QC.push(Ro),Ro=!1}function Ws(){const e=QC.pop();Ro=e===void 0?!0:e}function R3(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=bn;bn=void 0;try{t()}finally{bn=n}}}let ad=0,xP=class{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}};class Cy{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!bn||!Ro||bn===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==bn)n=this.activeLink=new xP(bn,this),bn.deps?(n.prevDep=bn.depsTail,bn.depsTail.nextDep=n,bn.depsTail=n):bn.deps=bn.depsTail=n,ZC(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=bn.depsTail,n.nextDep=void 0,bn.depsTail.nextDep=n,bn.depsTail=n,bn.deps===n&&(bn.deps=r)}return n}trigger(t){this.version++,ad++,this.notify(t)}notify(t){wy();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Sy()}}}function ZC(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)ZC(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const gh=new WeakMap,Li=Symbol(""),h2=Symbol(""),id=Symbol("");function fr(e,t,n){if(Ro&&bn){let r=gh.get(e);r||gh.set(e,r=new Map);let o=r.get(n);o||(r.set(n,o=new Cy),o.map=r,o.key=n),o.track()}}function Os(e,t,n,r,o,s){const a=gh.get(e);if(!a){ad++;return}const i=l=>{l&&l.trigger()};if(wy(),t==="clear")a.forEach(i);else{const l=Ge(e),u=l&&vy(n);if(l&&n==="length"){const c=Number(r);a.forEach((d,f)=>{(f==="length"||f===id||!Lo(f)&&f>=c)&&i(d)})}else switch((n!==void 0||a.has(void 0))&&i(a.get(n)),u&&i(a.get(id)),t){case"add":l?u&&i(a.get("length")):(i(a.get(Li)),Gl(e)&&i(a.get(h2)));break;case"delete":l||(i(a.get(Li)),Gl(e)&&i(a.get(h2)));break;case"set":Gl(e)&&i(a.get(Li));break}}Sy()}function IP(e,t){const n=gh.get(e);return n&&n.get(t)}function vl(e){const t=Ut(e);return t===e?t:(fr(t,"iterate",id),Zr(e)?t:t.map(Zn))}function y0(e){return fr(e=Ut(e),"iterate",id),e}const AP={__proto__:null,[Symbol.iterator](){return Bm(this,Symbol.iterator,Zn)},concat(...e){return vl(this).concat(...e.map(t=>Ge(t)?vl(t):t))},entries(){return Bm(this,"entries",e=>(e[1]=Zn(e[1]),e))},every(e,t){return _s(this,"every",e,t,void 0,arguments)},filter(e,t){return _s(this,"filter",e,t,n=>n.map(Zn),arguments)},find(e,t){return _s(this,"find",e,t,Zn,arguments)},findIndex(e,t){return _s(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return _s(this,"findLast",e,t,Zn,arguments)},findLastIndex(e,t){return _s(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return _s(this,"forEach",e,t,void 0,arguments)},includes(...e){return Dm(this,"includes",e)},indexOf(...e){return Dm(this,"indexOf",e)},join(e){return vl(this).join(e)},lastIndexOf(...e){return Dm(this,"lastIndexOf",e)},map(e,t){return _s(this,"map",e,t,void 0,arguments)},pop(){return fc(this,"pop")},push(...e){return fc(this,"push",e)},reduce(e,...t){return P3(this,"reduce",e,t)},reduceRight(e,...t){return P3(this,"reduceRight",e,t)},shift(){return fc(this,"shift")},some(e,t){return _s(this,"some",e,t,void 0,arguments)},splice(...e){return fc(this,"splice",e)},toReversed(){return vl(this).toReversed()},toSorted(e){return vl(this).toSorted(e)},toSpliced(...e){return vl(this).toSpliced(...e)},unshift(...e){return fc(this,"unshift",e)},values(){return Bm(this,"values",Zn)}};function Bm(e,t,n){const r=y0(e),o=r[t]();return r!==e&&!Zr(e)&&(o._next=o.next,o.next=()=>{const s=o._next();return s.value&&(s.value=n(s.value)),s}),o}const MP=Array.prototype;function _s(e,t,n,r,o,s){const a=y0(e),i=a!==e&&!Zr(e),l=a[t];if(l!==MP[t]){const d=l.apply(e,s);return i?Zn(d):d}let u=n;a!==e&&(i?u=function(d,f){return n.call(this,Zn(d),f,e)}:n.length>2&&(u=function(d,f){return n.call(this,d,f,e)}));const c=l.call(a,u,r);return i&&o?o(c):c}function P3(e,t,n,r){const o=y0(e);let s=n;return o!==e&&(Zr(e)?n.length>3&&(s=function(a,i,l){return n.call(this,a,i,l,e)}):s=function(a,i,l){return n.call(this,a,Zn(i),l,e)}),o[t](s,...r)}function Dm(e,t,n){const r=Ut(e);fr(r,"iterate",id);const o=r[t](...n);return(o===-1||o===!1)&&E0(n[0])?(n[0]=Ut(n[0]),r[t](...n)):o}function fc(e,t,n=[]){Us(),wy();const r=Ut(e)[t].apply(e,n);return Sy(),Ws(),r}const OP=py("__proto__,__v_isRef,__isVue"),e9=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Lo));function RP(e){Lo(e)||(e=String(e));const t=Ut(this);return fr(t,"has",e),t.hasOwnProperty(e)}class t9{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const o=this._isReadonly,s=this._isShallow;if(n==="__v_isReactive")return!o;if(n==="__v_isReadonly")return o;if(n==="__v_isShallow")return s;if(n==="__v_raw")return r===(o?s?i9:a9:s?s9:o9).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const a=Ge(t);if(!o){let l;if(a&&(l=AP[n]))return l;if(n==="hasOwnProperty")return RP}const i=Reflect.get(t,n,qt(t)?t:r);return(Lo(n)?e9.has(n):OP(n))||(o||fr(t,"get",n),s)?i:qt(i)?a&&vy(n)?i:i.value:xt(i)?o?Lu(i):Ht(i):i}}class n9 extends t9{constructor(t=!1){super(!1,t)}set(t,n,r,o){let s=t[n];if(!this._isShallow){const l=qs(s);if(!Zr(r)&&!qs(r)&&(s=Ut(s),r=Ut(r)),!Ge(t)&&qt(s)&&!qt(r))return l||(s.value=r),!0}const a=Ge(t)&&vy(n)?Number(n)e,Ef=e=>Reflect.getPrototypeOf(e);function DP(e,t,n){return function(...r){const o=this.__v_raw,s=Ut(o),a=Gl(s),i=e==="entries"||e===Symbol.iterator&&a,l=e==="keys"&&a,u=o[e](...r),c=n?m2:t?_h:Zn;return!t&&fr(s,"iterate",l?h2:Li),{next(){const{value:d,done:f}=u.next();return f?{value:d,done:f}:{value:i?[c(d[0]),c(d[1])]:c(d),done:f}},[Symbol.iterator](){return this}}}}function Cf(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function zP(e,t){const n={get(o){const s=this.__v_raw,a=Ut(s),i=Ut(o);e||(Ya(o,i)&&fr(a,"get",o),fr(a,"get",i));const{has:l}=Ef(a),u=t?m2:e?_h:Zn;if(l.call(a,o))return u(s.get(o));if(l.call(a,i))return u(s.get(i));s!==a&&s.get(o)},get size(){const o=this.__v_raw;return!e&&fr(Ut(o),"iterate",Li),o.size},has(o){const s=this.__v_raw,a=Ut(s),i=Ut(o);return e||(Ya(o,i)&&fr(a,"has",o),fr(a,"has",i)),o===i?s.has(o):s.has(o)||s.has(i)},forEach(o,s){const a=this,i=a.__v_raw,l=Ut(i),u=t?m2:e?_h:Zn;return!e&&fr(l,"iterate",Li),i.forEach((c,d)=>o.call(s,u(c),u(d),a))}};return jn(n,e?{add:Cf("add"),set:Cf("set"),delete:Cf("delete"),clear:Cf("clear")}:{add(o){!t&&!Zr(o)&&!qs(o)&&(o=Ut(o));const s=Ut(this);return Ef(s).has.call(s,o)||(s.add(o),Os(s,"add",o,o)),this},set(o,s){!t&&!Zr(s)&&!qs(s)&&(s=Ut(s));const a=Ut(this),{has:i,get:l}=Ef(a);let u=i.call(a,o);u||(o=Ut(o),u=i.call(a,o));const c=l.call(a,o);return a.set(o,s),u?Ya(s,c)&&Os(a,"set",o,s):Os(a,"add",o,s),this},delete(o){const s=Ut(this),{has:a,get:i}=Ef(s);let l=a.call(s,o);l||(o=Ut(o),l=a.call(s,o)),i&&i.call(s,o);const u=s.delete(o);return l&&Os(s,"delete",o,void 0),u},clear(){const o=Ut(this),s=o.size!==0,a=o.clear();return s&&Os(o,"clear",void 0,void 0),a}}),["keys","values","entries",Symbol.iterator].forEach(o=>{n[o]=DP(o,e,t)}),n}function b0(e,t){const n=zP(e,t);return(r,o,s)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?r:Reflect.get(Bt(n,o)&&o in r?n:r,o,s)}const FP={get:b0(!1,!1)},HP={get:b0(!1,!0)},VP={get:b0(!0,!1)},jP={get:b0(!0,!0)},o9=new WeakMap,s9=new WeakMap,a9=new WeakMap,i9=new WeakMap;function UP(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function WP(e){return e.__v_skip||!Object.isExtensible(e)?0:UP(op(e))}function Ht(e){return qs(e)?e:S0(e,!1,PP,FP,o9)}function w0(e){return S0(e,!1,LP,HP,s9)}function Lu(e){return S0(e,!0,NP,VP,a9)}function qP(e){return S0(e,!0,BP,jP,i9)}function S0(e,t,n,r,o){if(!xt(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const s=WP(e);if(s===0)return e;const a=o.get(e);if(a)return a;const i=new Proxy(e,s===2?r:n);return o.set(e,i),i}function Bs(e){return qs(e)?Bs(e.__v_raw):!!(e&&e.__v_isReactive)}function qs(e){return!!(e&&e.__v_isReadonly)}function Zr(e){return!!(e&&e.__v_isShallow)}function E0(e){return e?!!e.__v_raw:!1}function Ut(e){const t=e&&e.__v_raw;return t?Ut(t):e}function Po(e){return!Bt(e,"__v_skip")&&Object.isExtensible(e)&&VC(e,"__v_skip",!0),e}const Zn=e=>xt(e)?Ht(e):e,_h=e=>xt(e)?Lu(e):e;function qt(e){return e?e.__v_isRef===!0:!1}function ee(e){return l9(e,!1)}function rn(e){return l9(e,!0)}function l9(e,t){return qt(e)?e:new KP(e,t)}class KP{constructor(t,n){this.dep=new Cy,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Ut(t),this._value=n?t:Zn(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||Zr(t)||qs(t);t=r?t:Ut(t),Ya(t,n)&&(this._rawValue=t,this._value=r?t:Zn(t),this.dep.trigger())}}function Tl(e){e.dep&&e.dep.trigger()}function h(e){return qt(e)?e.value:e}function GP(e){return at(e)?e():h(e)}const YP={get:(e,t,n)=>t==="__v_raw"?e:h(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const o=e[t];return qt(o)&&!qt(n)?(o.value=n,!0):Reflect.set(e,t,n,r)}};function ky(e){return Bs(e)?e:new Proxy(e,YP)}function On(e){const t=Ge(e)?new Array(e.length):{};for(const n in e)t[n]=u9(e,n);return t}class XP{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return IP(Ut(this._object),this._key)}}class JP{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function gn(e,t,n){return qt(e)?e:at(e)?new JP(e):xt(e)&&arguments.length>1?u9(e,t,n):ee(e)}function u9(e,t,n){const r=e[t];return qt(r)?r:new XP(e,t,n)}class QP{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Cy(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ad-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&bn!==this)return GC(this,!0),!0}get value(){const t=this.dep.track();return JC(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function c9(e,t,n=!1){let r,o;return at(e)?r=e:(r=e.get,o=e.set),new QP(r,o,n)}const kf={},yh=new WeakMap;let Si;function d9(e,t=!1,n=Si){if(n){let r=yh.get(n);r||yh.set(n,r=[]),r.push(e)}}function ZP(e,t,n=vn){const{immediate:r,deep:o,once:s,scheduler:a,augmentJob:i,call:l}=n,u=S=>o?S:Zr(S)||o===!1||o===0?Rs(S,1):Rs(S);let c,d,f,p,m=!1,v=!1;if(qt(e)?(d=()=>e.value,m=Zr(e)):Bs(e)?(d=()=>u(e),m=!0):Ge(e)?(v=!0,m=e.some(S=>Bs(S)||Zr(S)),d=()=>e.map(S=>{if(qt(S))return S.value;if(Bs(S))return u(S);if(at(S))return l?l(S,2):S()})):at(e)?t?d=l?()=>l(e,2):e:d=()=>{if(f){Us();try{f()}finally{Ws()}}const S=Si;Si=c;try{return l?l(e,3,[p]):e(p)}finally{Si=S}}:d=Kt,t&&o){const S=d,w=o===!0?1/0:o;d=()=>Rs(S(),w)}const g=_y(),b=()=>{c.stop(),g&&g.active&&my(g.effects,c)};if(s&&t){const S=t;t=(...w)=>{S(...w),b()}}let _=v?new Array(e.length).fill(kf):kf;const y=S=>{if(!(!(c.flags&1)||!c.dirty&&!S))if(t){const w=c.run();if(o||m||(v?w.some((E,T)=>Ya(E,_[T])):Ya(w,_))){f&&f();const E=Si;Si=c;try{const T=[w,_===kf?void 0:v&&_[0]===kf?[]:_,p];_=w,l?l(t,3,T):t(...T)}finally{Si=E}}}else c.run()};return i&&i(y),c=new by(d),c.scheduler=a?()=>a(y,!1):y,p=S=>d9(S,!1,c),f=c.onStop=()=>{const S=yh.get(c);if(S){if(l)l(S,4);else for(const w of S)w();yh.delete(c)}},t?r?y(!0):_=c.run():a?a(y.bind(null,!0),!0):c.run(),b.pause=c.pause.bind(c),b.resume=c.resume.bind(c),b.stop=b,b}function Rs(e,t=1/0,n){if(t<=0||!xt(e)||e.__v_skip||(n=n||new Set,n.has(e)))return e;if(n.add(e),t--,qt(e))Rs(e.value,t,n);else if(Ge(e))for(let r=0;r{Rs(r,t,n)});else if(HC(e)){for(const r in e)Rs(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Rs(e[r],t,n)}return e}/** +* @vue/runtime-core v3.5.20 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Bu(e,t,n,r){try{return r?e(...r):e()}catch(o){Ud(o,t,n)}}function vo(e,t,n,r){if(at(e)){const o=Bu(e,t,n,r);return o&&sd(o)&&o.catch(s=>{Ud(s,t,n)}),o}if(Ge(e)){const o=[];for(let s=0;s>>1,o=Sr[r],s=ld(o);s=ld(n)?Sr.push(e):Sr.splice(tN(t),0,e),e.flags|=1,p9()}}function p9(){bh||(bh=f9.then(v9))}function h9(e){Ge(e)?Xl.push(...e):za&&e.id===-1?za.splice($l+1,0,e):e.flags&1||(Xl.push(e),e.flags|=1),p9()}function N3(e,t,n=Qo+1){for(;nld(n)-ld(r));if(Xl.length=0,za){za.push(...t);return}for(za=t,$l=0;$le.id==null?e.flags&2?-1:1/0:e.id;function v9(e){try{for(Qo=0;Qo{r._d&&w2(-1);const s=wh(t);let a;try{a=e(...o)}finally{wh(s),r._d&&w2(1)}return a};return r._n=!0,r._c=!0,r._d=!0,r}function mt(e,t){if(tr===null)return e;const n=x0(tr),r=e.dirs||(e.dirs=[]);for(let o=0;oe.__isTeleport,Nc=e=>e&&(e.disabled||e.disabled===""),L3=e=>e&&(e.defer||e.defer===""),B3=e=>typeof SVGElement<"u"&&e instanceof SVGElement,D3=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,v2=(e,t)=>{const n=e&&e.to;return ft(n)?t?t(n):null:n},b9={name:"Teleport",__isTeleport:!0,process(e,t,n,r,o,s,a,i,l,u){const{mc:c,pc:d,pbc:f,o:{insert:p,querySelector:m,createText:v,createComment:g}}=u,b=Nc(t.props);let{shapeFlag:_,children:y,dynamicChildren:S}=t;if(e==null){const w=t.el=v(""),E=t.anchor=v("");p(w,n,r),p(E,n,r);const T=($,x)=>{_&16&&(o&&o.isCE&&(o.ce._teleportTarget=$),c(y,$,x,o,s,a,i,l))},C=()=>{const $=t.target=v2(t.props,m),x=w9($,t,v,p);$&&(a!=="svg"&&B3($)?a="svg":a!=="mathml"&&D3($)&&(a="mathml"),b||(T($,x),sp(t,!1)))};b&&(T(n,E),sp(t,!0)),L3(t.props)?(t.el.__isMounted=!1,Vn(()=>{C(),delete t.el.__isMounted},s)):C()}else{if(L3(t.props)&&e.el.__isMounted===!1){Vn(()=>{b9.process(e,t,n,r,o,s,a,i,l,u)},s);return}t.el=e.el,t.targetStart=e.targetStart;const w=t.anchor=e.anchor,E=t.target=e.target,T=t.targetAnchor=e.targetAnchor,C=Nc(e.props),$=C?n:E,x=C?w:T;if(a==="svg"||B3(E)?a="svg":(a==="mathml"||D3(E))&&(a="mathml"),S?(f(e.dynamicChildren,S,$,o,s,a,i),Ny(e,t,!0)):l||d(e,t,$,x,o,s,a,i,!1),b)C?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Tf(t,n,w,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const N=t.target=v2(t.props,m);N&&Tf(t,N,null,u,0)}else C&&Tf(t,E,T,u,1);sp(t,b)}},remove(e,t,n,{um:r,o:{remove:o}},s){const{shapeFlag:a,children:i,anchor:l,targetStart:u,targetAnchor:c,target:d,props:f}=e;if(d&&(o(u),o(c)),s&&o(l),a&16){const p=s||!Nc(f);for(let m=0;m{e.isMounted=!0}),fn(()=>{e.isUnmounting=!0}),e}const so=[Function,Array],xy={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:so,onEnter:so,onAfterEnter:so,onEnterCancelled:so,onBeforeLeave:so,onLeave:so,onAfterLeave:so,onLeaveCancelled:so,onBeforeAppear:so,onAppear:so,onAfterAppear:so,onAppearCancelled:so},S9=e=>{const t=e.subTree;return t.component?S9(t.component):t},rN={name:"BaseTransition",props:xy,setup(e,{slots:t}){const n=gt(),r=$y();return()=>{const o=t.default&&C0(t.default(),!0);if(!o||!o.length)return;const s=E9(o),a=Ut(e),{mode:i}=a;if(r.isLeaving)return zm(s);const l=z3(s);if(!l)return zm(s);let u=au(l,a,r,n,d=>u=d);l.type!==Rn&&Ks(l,u);let c=n.subTree&&z3(n.subTree);if(c&&c.type!==Rn&&!Wa(l,c)&&S9(n).type!==Rn){let d=au(c,a,r,n);if(Ks(c,d),i==="out-in"&&l.type!==Rn)return r.isLeaving=!0,d.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete d.afterLeave,c=void 0},zm(s);i==="in-out"&&l.type!==Rn?d.delayLeave=(f,p,m)=>{const v=k9(r,c);v[String(c.key)]=c,f[xs]=()=>{p(),f[xs]=void 0,delete u.delayedLeave,c=void 0},u.delayedLeave=()=>{m(),delete u.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return s}}};function E9(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==Rn){t=n;break}}return t}const C9=rN;function k9(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function au(e,t,n,r,o){const{appear:s,mode:a,persisted:i=!1,onBeforeEnter:l,onEnter:u,onAfterEnter:c,onEnterCancelled:d,onBeforeLeave:f,onLeave:p,onAfterLeave:m,onLeaveCancelled:v,onBeforeAppear:g,onAppear:b,onAfterAppear:_,onAppearCancelled:y}=t,S=String(e.key),w=k9(n,e),E=($,x)=>{$&&vo($,r,9,x)},T=($,x)=>{const N=x[1];E($,x),Ge($)?$.every(I=>I.length<=1)&&N():$.length<=1&&N()},C={mode:a,persisted:i,beforeEnter($){let x=l;if(!n.isMounted)if(s)x=g||l;else return;$[xs]&&$[xs](!0);const N=w[S];N&&Wa(e,N)&&N.el[xs]&&N.el[xs](),E(x,[$])},enter($){let x=u,N=c,I=d;if(!n.isMounted)if(s)x=b||u,N=_||c,I=y||d;else return;let L=!1;const F=$[$f]=B=>{L||(L=!0,B?E(I,[$]):E(N,[$]),C.delayedLeave&&C.delayedLeave(),$[$f]=void 0)};x?T(x,[$,F]):F()},leave($,x){const N=String(e.key);if($[$f]&&$[$f](!0),n.isUnmounting)return x();E(f,[$]);let I=!1;const L=$[xs]=F=>{I||(I=!0,x(),F?E(v,[$]):E(m,[$]),$[xs]=void 0,w[N]===e&&delete w[N])};w[N]=e,p?T(p,[$,L]):L()},clone($){const x=au($,t,n,r,o);return o&&o(x),x}};return C}function zm(e){if(k0(e))return e=Do(e),e.children=null,e}function z3(e){if(!k0(e))return y9(e.type)&&e.children?E9(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&at(n.default))return n.default()}}function Ks(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Ks(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function C0(e,t=!1,n){let r=[],o=0;for(let s=0;s1)for(let s=0;sLc(m,t&&(Ge(t)?t[v]:t),n,r,o));return}if(Bi(r)&&!o){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Lc(e,t,n,r.component.subTree);return}const s=r.shapeFlag&4?x0(r.component):r.el,a=o?null:s,{i,r:l}=e,u=t&&t.r,c=i.refs===vn?i.refs={}:i.refs,d=i.setupState,f=Ut(d),p=d===vn?zC:m=>Bt(f,m);if(u!=null&&u!==l){if(ft(u))c[u]=null,p(u)&&(d[u]=null);else if(qt(u)){u.value=null;const m=t;m.k&&(c[m.k]=null)}}if(at(l))Bu(l,i,12,[a,c]);else{const m=ft(l),v=qt(l);if(m||v){const g=()=>{if(e.f){const b=m?p(l)?d[l]:c[l]:l.value;if(o)Ge(b)&&my(b,s);else if(Ge(b))b.includes(s)||b.push(s);else if(m)c[l]=[s],p(l)&&(d[l]=c[l]);else{const _=[s];l.value=_,e.k&&(c[e.k]=_)}}else m?(c[l]=a,p(l)&&(d[l]=a)):v&&(l.value=a,e.k&&(c[e.k]=a))};a?(g.id=-1,Vn(g,n)):g()}}}g0().requestIdleCallback;g0().cancelIdleCallback;const Bi=e=>!!e.type.__asyncLoader,k0=e=>e.type.__isKeepAlive,oN={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=gt(),r=n.ctx;if(!r.renderer)return()=>{const _=t.default&&t.default();return _&&_.length===1?_[0]:_};const o=new Map,s=new Set;let a=null;const i=n.suspense,{renderer:{p:l,m:u,um:c,o:{createElement:d}}}=r,f=d("div");r.activate=(_,y,S,w,E)=>{const T=_.component;u(_,y,S,0,i),l(T.vnode,_,y,S,T,i,w,_.slotScopeIds,E),Vn(()=>{T.isDeactivated=!1,T.a&&Yl(T.a);const C=_.props&&_.props.onVnodeMounted;C&&lo(C,T.parent,_)},i)},r.deactivate=_=>{const y=_.component;Eh(y.m),Eh(y.a),u(_,f,null,1,i),Vn(()=>{y.da&&Yl(y.da);const S=_.props&&_.props.onVnodeUnmounted;S&&lo(S,y.parent,_),y.isDeactivated=!0},i)};function p(_){Fm(_),c(_,n,i,!0)}function m(_){o.forEach((y,S)=>{const w=E2(y.type);w&&!_(w)&&v(S)})}function v(_){const y=o.get(_);y&&(!a||!Wa(y,a))?p(y):a&&Fm(a),o.delete(_),s.delete(_)}Be(()=>[e.include,e.exclude],([_,y])=>{_&&m(S=>Sc(_,S)),y&&m(S=>!Sc(y,S))},{flush:"post",deep:!0});let g=null;const b=()=>{g!=null&&(Ch(n.subTree.type)?Vn(()=>{o.set(g,xf(n.subTree))},n.subTree.suspense):o.set(g,xf(n.subTree)))};return vt(b),Uo(b),fn(()=>{o.forEach(_=>{const{subTree:y,suspense:S}=n,w=xf(y);if(_.type===w.type&&_.key===w.key){Fm(w);const E=w.component.da;E&&Vn(E,S);return}p(_)})}),()=>{if(g=null,!t.default)return a=null;const _=t.default(),y=_[0];if(_.length>1)return a=null,_;if(!sn(y)||!(y.shapeFlag&4)&&!(y.shapeFlag&128))return a=null,y;let S=xf(y);if(S.type===Rn)return a=null,S;const w=S.type,E=E2(Bi(S)?S.type.__asyncResolved||{}:w),{include:T,exclude:C,max:$}=e;if(T&&(!E||!Sc(T,E))||C&&E&&Sc(C,E))return S.shapeFlag&=-257,a=S,y;const x=S.key==null?w:S.key,N=o.get(x);return S.el&&(S=Do(S),y.shapeFlag&128&&(y.ssContent=S)),g=x,N?(S.el=N.el,S.component=N.component,S.transition&&Ks(S,S.transition),S.shapeFlag|=512,s.delete(x),s.add(x)):(s.add(x),$&&s.size>parseInt($,10)&&v(s.values().next().value)),S.shapeFlag|=256,a=S,Ch(y.type)?y:S}}},$9=oN;function Sc(e,t){return Ge(e)?e.some(n=>Sc(n,t)):ft(e)?e.split(",").includes(t):vP(e)?(e.lastIndex=0,e.test(t)):!1}function x9(e,t){I9(e,"a",t)}function Iy(e,t){I9(e,"da",t)}function I9(e,t,n=pr){const r=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(T0(t,r,n),n){let o=n.parent;for(;o&&o.parent;)k0(o.parent.vnode)&&sN(r,t,n,o),o=o.parent}}function sN(e,t,n,r){const o=T0(t,e,r,!0);ia(()=>{my(r[t],o)},n)}function Fm(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function xf(e){return e.shapeFlag&128?e.ssContent:e}function T0(e,t,n=pr,r=!1){if(n){const o=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...a)=>{Us();const i=qd(n),l=vo(t,n,e,a);return i(),Ws(),l});return r?o.unshift(s):o.push(s),s}}const aa=e=>(t,n=pr)=>{(!cd||e==="sp")&&T0(e,(...r)=>t(...r),n)},Wd=aa("bm"),vt=aa("m"),Ay=aa("bu"),Uo=aa("u"),fn=aa("bum"),ia=aa("um"),A9=aa("sp"),M9=aa("rtg"),O9=aa("rtc");function R9(e,t=pr){T0("ec",e,t)}const My="components",aN="directives";function rt(e,t){return Oy(My,e,!0,t)||e}const P9=Symbol.for("v-ndc");function kt(e){return ft(e)?Oy(My,e,!1)||e:e||P9}function Za(e){return Oy(aN,e)}function Oy(e,t,n=!0,r=!1){const o=tr||pr;if(o){const s=o.type;if(e===My){const i=E2(s,!1);if(i&&(i===t||i===Tr(t)||i===Nu(Tr(t))))return s}const a=F3(o[e]||s[e],t)||F3(o.appContext[e],t);return!a&&r?s:a}}function F3(e,t){return e&&(e[t]||e[Tr(t)]||e[Nu(Tr(t))])}function At(e,t,n,r){let o;const s=n,a=Ge(e);if(a||ft(e)){const i=a&&Bs(e);let l=!1,u=!1;i&&(l=!Zr(e),u=qs(e),e=y0(e)),o=new Array(e.length);for(let c=0,d=e.length;ct(i,l,void 0,s));else{const i=Object.keys(e);o=new Array(i.length);for(let l=0,u=i.length;l{const s=r.fn(...o);return s&&(s.key=r.key),s}:r.fn)}return e}function Pe(e,t,n={},r,o){if(tr.ce||tr.parent&&Bi(tr.parent)&&tr.parent.ce)return t!=="default"&&(n.name=t),k(),Me(Ze,null,[me("slot",n,r&&r())],64);let s=e[t];s&&s._c&&(s._d=!1),k();const a=s&&N9(s(n)),i=n.key||a&&a.key,l=Me(Ze,{key:(i&&!Lo(i)?i:`_${t}`)+(!a&&r?"_fb":"")},a||(r?r():[]),a&&e._===1?64:-2);return l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),s&&s._c&&(s._d=!0),l}function N9(e){return e.some(t=>sn(t)?!(t.type===Rn||t.type===Ze&&!N9(t.children)):!0)?e:null}function L9(e,t){const n={};for(const r in e)n[Oc(r)]=e[r];return n}const g2=e=>e?ok(e)?x0(e):g2(e.parent):null,Bc=jn(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>g2(e.parent),$root:e=>g2(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>z9(e),$forceUpdate:e=>e.f||(e.f=()=>{Ty(e.update)}),$nextTick:e=>e.n||(e.n=Xe.bind(e.proxy)),$watch:e=>CN.bind(e)}),Hm=(e,t)=>e!==vn&&!e.__isScriptSetup&&Bt(e,t),iN={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:o,props:s,accessCache:a,type:i,appContext:l}=e;let u;if(t[0]!=="$"){const p=a[t];if(p!==void 0)switch(p){case 1:return r[t];case 2:return o[t];case 4:return n[t];case 3:return s[t]}else{if(Hm(r,t))return a[t]=1,r[t];if(o!==vn&&Bt(o,t))return a[t]=2,o[t];if((u=e.propsOptions[0])&&Bt(u,t))return a[t]=3,s[t];if(n!==vn&&Bt(n,t))return a[t]=4,n[t];_2&&(a[t]=0)}}const c=Bc[t];let d,f;if(c)return t==="$attrs"&&fr(e.attrs,"get",""),c(e);if((d=i.__cssModules)&&(d=d[t]))return d;if(n!==vn&&Bt(n,t))return a[t]=4,n[t];if(f=l.config.globalProperties,Bt(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:o,ctx:s}=e;return Hm(o,t)?(o[t]=n,!0):r!==vn&&Bt(r,t)?(r[t]=n,!0):Bt(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:o,propsOptions:s,type:a}},i){let l,u;return!!(n[i]||e!==vn&&i[0]!=="$"&&Bt(e,i)||Hm(t,i)||(l=s[0])&&Bt(l,i)||Bt(r,i)||Bt(Bc,i)||Bt(o.config.globalProperties,i)||(u=a.__cssModules)&&u[i])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Bt(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Wn(){return B9().slots}function zu(){return B9().attrs}function B9(e){const t=gt();return t.setupContext||(t.setupContext=ak(t))}function H3(e){return Ge(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let _2=!0;function lN(e){const t=z9(e),n=e.proxy,r=e.ctx;_2=!1,t.beforeCreate&&V3(t.beforeCreate,e,"bc");const{data:o,computed:s,methods:a,watch:i,provide:l,inject:u,created:c,beforeMount:d,mounted:f,beforeUpdate:p,updated:m,activated:v,deactivated:g,beforeDestroy:b,beforeUnmount:_,destroyed:y,unmounted:S,render:w,renderTracked:E,renderTriggered:T,errorCaptured:C,serverPrefetch:$,expose:x,inheritAttrs:N,components:I,directives:L,filters:F}=t;if(u&&uN(u,r,null),a)for(const P in a){const O=a[P];at(O)&&(r[P]=O.bind(n))}if(o){const P=o.call(n,n);xt(P)&&(e.data=Ht(P))}if(_2=!0,s)for(const P in s){const O=s[P],H=at(O)?O.bind(n,n):at(O.get)?O.get.bind(n,n):Kt,q=!at(O)&&at(O.set)?O.set.bind(n):Kt,te=z({get:H,set:q});Object.defineProperty(r,P,{enumerable:!0,configurable:!0,get:()=>te.value,set:V=>te.value=V})}if(i)for(const P in i)D9(i[P],r,n,P);if(l){const P=at(l)?l.call(n):l;Reflect.ownKeys(P).forEach(O=>{Ct(O,P[O])})}c&&V3(c,e,"c");function U(P,O){Ge(O)?O.forEach(H=>P(H.bind(n))):O&&P(O.bind(n))}if(U(Wd,d),U(vt,f),U(Ay,p),U(Uo,m),U(x9,v),U(Iy,g),U(R9,C),U(O9,E),U(M9,T),U(fn,_),U(ia,S),U(A9,$),Ge(x))if(x.length){const P=e.exposed||(e.exposed={});x.forEach(O=>{Object.defineProperty(P,O,{get:()=>n[O],set:H=>n[O]=H,enumerable:!0})})}else e.exposed||(e.exposed={});w&&e.render===Kt&&(e.render=w),N!=null&&(e.inheritAttrs=N),I&&(e.components=I),L&&(e.directives=L),$&&T9(e)}function uN(e,t,n=Kt){Ge(e)&&(e=y2(e));for(const r in e){const o=e[r];let s;xt(o)?"default"in o?s=Ye(o.from||r,o.default,!0):s=Ye(o.from||r):s=Ye(o),qt(s)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>s.value,set:a=>s.value=a}):t[r]=s}}function V3(e,t,n){vo(Ge(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function D9(e,t,n,r){let o=r.includes(".")?Z9(n,r):()=>n[r];if(ft(e)){const s=t[e];at(s)&&Be(o,s)}else if(at(e))Be(o,e.bind(n));else if(xt(e))if(Ge(e))e.forEach(s=>D9(s,t,n,r));else{const s=at(e.handler)?e.handler.bind(n):t[e.handler];at(s)&&Be(o,s,e)}}function z9(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:o,optionsCache:s,config:{optionMergeStrategies:a}}=e.appContext,i=s.get(t);let l;return i?l=i:!o.length&&!n&&!r?l=t:(l={},o.length&&o.forEach(u=>Sh(l,u,a,!0)),Sh(l,t,a)),xt(t)&&s.set(t,l),l}function Sh(e,t,n,r=!1){const{mixins:o,extends:s}=t;s&&Sh(e,s,n,!0),o&&o.forEach(a=>Sh(e,a,n,!0));for(const a in t)if(!(r&&a==="expose")){const i=cN[a]||n&&n[a];e[a]=i?i(e[a],t[a]):t[a]}return e}const cN={data:j3,props:U3,emits:U3,methods:Ec,computed:Ec,beforeCreate:br,created:br,beforeMount:br,mounted:br,beforeUpdate:br,updated:br,beforeDestroy:br,beforeUnmount:br,destroyed:br,unmounted:br,activated:br,deactivated:br,errorCaptured:br,serverPrefetch:br,components:Ec,directives:Ec,watch:fN,provide:j3,inject:dN};function j3(e,t){return t?e?function(){return jn(at(e)?e.call(this,this):e,at(t)?t.call(this,this):t)}:t:e}function dN(e,t){return Ec(y2(e),y2(t))}function y2(e){if(Ge(e)){const t={};for(let n=0;n1)return n&&at(t)?t.call(r&&r.proxy):t}}const H9={},V9=()=>Object.create(H9),j9=e=>Object.getPrototypeOf(e)===H9;function mN(e,t,n,r=!1){const o={},s=V9();e.propsDefaults=Object.create(null),U9(e,t,o,s);for(const a in e.propsOptions[0])a in o||(o[a]=void 0);n?e.props=r?o:w0(o):e.type.props?e.props=o:e.props=s,e.attrs=s}function vN(e,t,n,r){const{props:o,attrs:s,vnode:{patchFlag:a}}=e,i=Ut(o),[l]=e.propsOptions;let u=!1;if((r||a>0)&&!(a&16)){if(a&8){const c=e.vnode.dynamicProps;for(let d=0;d{l=!0;const[f,p]=W9(d,t,!0);jn(a,f),p&&i.push(...p)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!s&&!l)return xt(e)&&r.set(e,Kl),Kl;if(Ge(s))for(let c=0;ce==="_"||e==="_ctx"||e==="$stable",Py=e=>Ge(e)?e.map(es):[es(e)],_N=(e,t,n)=>{if(t._n)return t;const r=be((...o)=>Py(t(...o)),n);return r._c=!1,r},q9=(e,t,n)=>{const r=e._ctx;for(const o in e){if(Ry(o))continue;const s=e[o];if(at(s))t[o]=_N(o,s,r);else if(s!=null){const a=Py(s);t[o]=()=>a}}},K9=(e,t)=>{const n=Py(t);e.slots.default=()=>n},G9=(e,t,n)=>{for(const r in t)(n||!Ry(r))&&(e[r]=t[r])},yN=(e,t,n)=>{const r=e.slots=V9();if(e.vnode.shapeFlag&32){const o=t._;o?(G9(r,t,n),n&&VC(r,"_",o,!0)):q9(t,r)}else t&&K9(e,t)},bN=(e,t,n)=>{const{vnode:r,slots:o}=e;let s=!0,a=vn;if(r.shapeFlag&32){const i=t._;i?n&&i===1?s=!1:G9(o,t,n):(s=!t.$stable,q9(t,o)),a=t}else t&&(K9(e,t),a={default:1});if(s)for(const i in o)!Ry(i)&&a[i]==null&&delete o[i]},Vn=MN;function Y9(e){return wN(e)}function wN(e,t){const n=g0();n.__VUE__=!0;const{insert:r,remove:o,patchProp:s,createElement:a,createText:i,createComment:l,setText:u,setElementText:c,parentNode:d,nextSibling:f,setScopeId:p=Kt,insertStaticContent:m}=e,v=(J,ae,ce,oe=null,he=null,le=null,Ee=void 0,ye=null,pe=!!ae.dynamicChildren)=>{if(J===ae)return;J&&!Wa(J,ae)&&(oe=Y(J),V(J,he,le,!0),J=null),ae.patchFlag===-2&&(pe=!1,ae.dynamicChildren=null);const{type:re,ref:fe,shapeFlag:Te}=ae;switch(re){case sl:g(J,ae,ce,oe);break;case Rn:b(J,ae,ce,oe);break;case Dc:J==null&&_(ae,ce,oe,Ee);break;case Ze:I(J,ae,ce,oe,he,le,Ee,ye,pe);break;default:Te&1?w(J,ae,ce,oe,he,le,Ee,ye,pe):Te&6?L(J,ae,ce,oe,he,le,Ee,ye,pe):(Te&64||Te&128)&&re.process(J,ae,ce,oe,he,le,Ee,ye,pe,ne)}fe!=null&&he?Lc(fe,J&&J.ref,le,ae||J,!ae):fe==null&&J&&J.ref!=null&&Lc(J.ref,null,le,J,!0)},g=(J,ae,ce,oe)=>{if(J==null)r(ae.el=i(ae.children),ce,oe);else{const he=ae.el=J.el;ae.children!==J.children&&u(he,ae.children)}},b=(J,ae,ce,oe)=>{J==null?r(ae.el=l(ae.children||""),ce,oe):ae.el=J.el},_=(J,ae,ce,oe)=>{[J.el,J.anchor]=m(J.children,ae,ce,oe,J.el,J.anchor)},y=({el:J,anchor:ae},ce,oe)=>{let he;for(;J&&J!==ae;)he=f(J),r(J,ce,oe),J=he;r(ae,ce,oe)},S=({el:J,anchor:ae})=>{let ce;for(;J&&J!==ae;)ce=f(J),o(J),J=ce;o(ae)},w=(J,ae,ce,oe,he,le,Ee,ye,pe)=>{ae.type==="svg"?Ee="svg":ae.type==="math"&&(Ee="mathml"),J==null?E(ae,ce,oe,he,le,Ee,ye,pe):$(J,ae,he,le,Ee,ye,pe)},E=(J,ae,ce,oe,he,le,Ee,ye)=>{let pe,re;const{props:fe,shapeFlag:Te,transition:$e,dirs:Le}=J;if(pe=J.el=a(J.type,le,fe&&fe.is,fe),Te&8?c(pe,J.children):Te&16&&C(J.children,pe,null,oe,he,Vm(J,le),Ee,ye),Le&&gi(J,null,oe,"created"),T(pe,J,J.scopeId,Ee,oe),fe){for(const M in fe)M!=="value"&&!Mc(M)&&s(pe,M,null,fe[M],le,oe);"value"in fe&&s(pe,"value",null,fe.value,le),(re=fe.onVnodeBeforeMount)&&lo(re,oe,J)}Le&&gi(J,null,oe,"beforeMount");const A=SN(he,$e);A&&$e.beforeEnter(pe),r(pe,ae,ce),((re=fe&&fe.onVnodeMounted)||A||Le)&&Vn(()=>{re&&lo(re,oe,J),A&&$e.enter(pe),Le&&gi(J,null,oe,"mounted")},he)},T=(J,ae,ce,oe,he)=>{if(ce&&p(J,ce),oe)for(let le=0;le{for(let re=pe;re{const ye=ae.el=J.el;let{patchFlag:pe,dynamicChildren:re,dirs:fe}=ae;pe|=J.patchFlag&16;const Te=J.props||vn,$e=ae.props||vn;let Le;if(ce&&_i(ce,!1),(Le=$e.onVnodeBeforeUpdate)&&lo(Le,ce,ae,J),fe&&gi(ae,J,ce,"beforeUpdate"),ce&&_i(ce,!0),(Te.innerHTML&&$e.innerHTML==null||Te.textContent&&$e.textContent==null)&&c(ye,""),re?x(J.dynamicChildren,re,ye,ce,oe,Vm(ae,he),le):Ee||O(J,ae,ye,null,ce,oe,Vm(ae,he),le,!1),pe>0){if(pe&16)N(ye,Te,$e,ce,he);else if(pe&2&&Te.class!==$e.class&&s(ye,"class",null,$e.class,he),pe&4&&s(ye,"style",Te.style,$e.style,he),pe&8){const A=ae.dynamicProps;for(let M=0;M{Le&&lo(Le,ce,ae,J),fe&&gi(ae,J,ce,"updated")},oe)},x=(J,ae,ce,oe,he,le,Ee)=>{for(let ye=0;ye{if(ae!==ce){if(ae!==vn)for(const le in ae)!Mc(le)&&!(le in ce)&&s(J,le,ae[le],null,he,oe);for(const le in ce){if(Mc(le))continue;const Ee=ce[le],ye=ae[le];Ee!==ye&&le!=="value"&&s(J,le,ye,Ee,he,oe)}"value"in ce&&s(J,"value",ae.value,ce.value,he)}},I=(J,ae,ce,oe,he,le,Ee,ye,pe)=>{const re=ae.el=J?J.el:i(""),fe=ae.anchor=J?J.anchor:i("");let{patchFlag:Te,dynamicChildren:$e,slotScopeIds:Le}=ae;Le&&(ye=ye?ye.concat(Le):Le),J==null?(r(re,ce,oe),r(fe,ce,oe),C(ae.children||[],ce,fe,he,le,Ee,ye,pe)):Te>0&&Te&64&&$e&&J.dynamicChildren?(x(J.dynamicChildren,$e,ce,he,le,Ee,ye),(ae.key!=null||he&&ae===he.subTree)&&Ny(J,ae,!0)):O(J,ae,ce,fe,he,le,Ee,ye,pe)},L=(J,ae,ce,oe,he,le,Ee,ye,pe)=>{ae.slotScopeIds=ye,J==null?ae.shapeFlag&512?he.ctx.activate(ae,ce,oe,Ee,pe):F(ae,ce,oe,he,le,Ee,pe):B(J,ae,pe)},F=(J,ae,ce,oe,he,le,Ee)=>{const ye=J.component=LN(J,oe,he);if(k0(J)&&(ye.ctx.renderer=ne),BN(ye,!1,Ee),ye.asyncDep){if(he&&he.registerDep(ye,U,Ee),!J.el){const pe=ye.subTree=me(Rn);b(null,pe,ae,ce),J.placeholder=pe.el}}else U(ye,J,ae,ce,he,le,Ee)},B=(J,ae,ce)=>{const oe=ae.component=J.component;if(IN(J,ae,ce))if(oe.asyncDep&&!oe.asyncResolved){P(oe,ae,ce);return}else oe.next=ae,oe.update();else ae.el=J.el,oe.vnode=ae},U=(J,ae,ce,oe,he,le,Ee)=>{const ye=()=>{if(J.isMounted){let{next:Te,bu:$e,u:Le,parent:A,vnode:M}=J;{const X=X9(J);if(X){Te&&(Te.el=M.el,P(J,Te,Ee)),X.asyncDep.then(()=>{J.isUnmounted||ye()});return}}let j=Te,G;_i(J,!1),Te?(Te.el=M.el,P(J,Te,Ee)):Te=M,$e&&Yl($e),(G=Te.props&&Te.props.onVnodeBeforeUpdate)&&lo(G,A,Te,M),_i(J,!0);const ue=q3(J),_e=J.subTree;J.subTree=ue,v(_e,ue,d(_e.el),Y(_e),J,he,le),Te.el=ue.el,j===null&&AN(J,ue.el),Le&&Vn(Le,he),(G=Te.props&&Te.props.onVnodeUpdated)&&Vn(()=>lo(G,A,Te,M),he)}else{let Te;const{el:$e,props:Le}=ae,{bm:A,m:M,parent:j,root:G,type:ue}=J,_e=Bi(ae);_i(J,!1),A&&Yl(A),!_e&&(Te=Le&&Le.onVnodeBeforeMount)&&lo(Te,j,ae),_i(J,!0);{G.ce&&G.ce._def.shadowRoot!==!1&&G.ce._injectChildStyle(ue);const X=J.subTree=q3(J);v(null,X,ce,oe,J,he,le),ae.el=X.el}if(M&&Vn(M,he),!_e&&(Te=Le&&Le.onVnodeMounted)){const X=ae;Vn(()=>lo(Te,j,X),he)}(ae.shapeFlag&256||j&&Bi(j.vnode)&&j.vnode.shapeFlag&256)&&J.a&&Vn(J.a,he),J.isMounted=!0,ae=ce=oe=null}};J.scope.on();const pe=J.effect=new by(ye);J.scope.off();const re=J.update=pe.run.bind(pe),fe=J.job=pe.runIfDirty.bind(pe);fe.i=J,fe.id=J.uid,pe.scheduler=()=>Ty(fe),_i(J,!0),re()},P=(J,ae,ce)=>{ae.component=J;const oe=J.vnode.props;J.vnode=ae,J.next=null,vN(J,ae.props,oe,ce),bN(J,ae.children,ce),Us(),N3(J),Ws()},O=(J,ae,ce,oe,he,le,Ee,ye,pe=!1)=>{const re=J&&J.children,fe=J?J.shapeFlag:0,Te=ae.children,{patchFlag:$e,shapeFlag:Le}=ae;if($e>0){if($e&128){q(re,Te,ce,oe,he,le,Ee,ye,pe);return}else if($e&256){H(re,Te,ce,oe,he,le,Ee,ye,pe);return}}Le&8?(fe&16&&ke(re,he,le),Te!==re&&c(ce,Te)):fe&16?Le&16?q(re,Te,ce,oe,he,le,Ee,ye,pe):ke(re,he,le,!0):(fe&8&&c(ce,""),Le&16&&C(Te,ce,oe,he,le,Ee,ye,pe))},H=(J,ae,ce,oe,he,le,Ee,ye,pe)=>{J=J||Kl,ae=ae||Kl;const re=J.length,fe=ae.length,Te=Math.min(re,fe);let $e;for($e=0;$efe?ke(J,he,le,!0,!1,Te):C(ae,ce,oe,he,le,Ee,ye,pe,Te)},q=(J,ae,ce,oe,he,le,Ee,ye,pe)=>{let re=0;const fe=ae.length;let Te=J.length-1,$e=fe-1;for(;re<=Te&&re<=$e;){const Le=J[re],A=ae[re]=pe?Fa(ae[re]):es(ae[re]);if(Wa(Le,A))v(Le,A,ce,null,he,le,Ee,ye,pe);else break;re++}for(;re<=Te&&re<=$e;){const Le=J[Te],A=ae[$e]=pe?Fa(ae[$e]):es(ae[$e]);if(Wa(Le,A))v(Le,A,ce,null,he,le,Ee,ye,pe);else break;Te--,$e--}if(re>Te){if(re<=$e){const Le=$e+1,A=Le$e)for(;re<=Te;)V(J[re],he,le,!0),re++;else{const Le=re,A=re,M=new Map;for(re=A;re<=$e;re++){const Oe=ae[re]=pe?Fa(ae[re]):es(ae[re]);Oe.key!=null&&M.set(Oe.key,re)}let j,G=0;const ue=$e-A+1;let _e=!1,X=0;const Z=new Array(ue);for(re=0;re=ue){V(Oe,he,le,!0);continue}let qe;if(Oe.key!=null)qe=M.get(Oe.key);else for(j=A;j<=$e;j++)if(Z[j-A]===0&&Wa(Oe,ae[j])){qe=j;break}qe===void 0?V(Oe,he,le,!0):(Z[qe-A]=re+1,qe>=X?X=qe:_e=!0,v(Oe,ae[qe],ce,null,he,le,Ee,ye,pe),G++)}const de=_e?EN(Z):Kl;for(j=de.length-1,re=ue-1;re>=0;re--){const Oe=A+re,qe=ae[Oe],Qe=ae[Oe+1],ht=Oe+1{const{el:le,type:Ee,transition:ye,children:pe,shapeFlag:re}=J;if(re&6){te(J.component.subTree,ae,ce,oe);return}if(re&128){J.suspense.move(ae,ce,oe);return}if(re&64){Ee.move(J,ae,ce,ne);return}if(Ee===Ze){r(le,ae,ce);for(let Te=0;Teye.enter(le),he);else{const{leave:Te,delayLeave:$e,afterLeave:Le}=ye,A=()=>{J.ctx.isUnmounted?o(le):r(le,ae,ce)},M=()=>{le._isLeaving&&le[xs](!0),Te(le,()=>{A(),Le&&Le()})};$e?$e(le,A,M):M()}else r(le,ae,ce)},V=(J,ae,ce,oe=!1,he=!1)=>{const{type:le,props:Ee,ref:ye,children:pe,dynamicChildren:re,shapeFlag:fe,patchFlag:Te,dirs:$e,cacheIndex:Le}=J;if(Te===-2&&(he=!1),ye!=null&&(Us(),Lc(ye,null,ce,J,!0),Ws()),Le!=null&&(ae.renderCache[Le]=void 0),fe&256){ae.ctx.deactivate(J);return}const A=fe&1&&$e,M=!Bi(J);let j;if(M&&(j=Ee&&Ee.onVnodeBeforeUnmount)&&lo(j,ae,J),fe&6)ie(J.component,ce,oe);else{if(fe&128){J.suspense.unmount(ce,oe);return}A&&gi(J,null,ae,"beforeUnmount"),fe&64?J.type.remove(J,ae,ce,ne,oe):re&&!re.hasOnce&&(le!==Ze||Te>0&&Te&64)?ke(re,ae,ce,!1,!0):(le===Ze&&Te&384||!he&&fe&16)&&ke(pe,ae,ce),oe&&Q(J)}(M&&(j=Ee&&Ee.onVnodeUnmounted)||A)&&Vn(()=>{j&&lo(j,ae,J),A&&gi(J,null,ae,"unmounted")},ce)},Q=J=>{const{type:ae,el:ce,anchor:oe,transition:he}=J;if(ae===Ze){ge(ce,oe);return}if(ae===Dc){S(J);return}const le=()=>{o(ce),he&&!he.persisted&&he.afterLeave&&he.afterLeave()};if(J.shapeFlag&1&&he&&!he.persisted){const{leave:Ee,delayLeave:ye}=he,pe=()=>Ee(ce,le);ye?ye(J.el,le,pe):pe()}else le()},ge=(J,ae)=>{let ce;for(;J!==ae;)ce=f(J),o(J),J=ce;o(ae)},ie=(J,ae,ce)=>{const{bum:oe,scope:he,job:le,subTree:Ee,um:ye,m:pe,a:re}=J;Eh(pe),Eh(re),oe&&Yl(oe),he.stop(),le&&(le.flags|=8,V(Ee,J,ae,ce)),ye&&Vn(ye,ae),Vn(()=>{J.isUnmounted=!0},ae)},ke=(J,ae,ce,oe=!1,he=!1,le=0)=>{for(let Ee=le;Ee{if(J.shapeFlag&6)return Y(J.component.subTree);if(J.shapeFlag&128)return J.suspense.next();const ae=f(J.anchor||J.el),ce=ae&&ae[_9];return ce?f(ce):ae};let K=!1;const se=(J,ae,ce)=>{J==null?ae._vnode&&V(ae._vnode,null,null,!0):v(ae._vnode||null,J,ae,null,null,null,ce),ae._vnode=J,K||(K=!0,N3(),m9(),K=!1)},ne={p:v,um:V,m:te,r:Q,mt:F,mc:C,pc:O,pbc:x,n:Y,o:e};return{render:se,hydrate:void 0,createApp:hN(se)}}function Vm({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function _i({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function SN(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ny(e,t,n=!1){const r=e.children,o=t.children;if(Ge(r)&&Ge(o))for(let s=0;s>1,e[n[i]]0&&(t[r]=n[s-1]),n[s]=r)}}for(s=n.length,a=n[s-1];s-- >0;)n[s]=a,a=t[a];return n}function X9(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:X9(t)}function Eh(e){if(e)for(let t=0;tYe(J9);function Cr(e,t){return Ly(e,null,t)}function Be(e,t,n){return Ly(e,t,n)}function Ly(e,t,n=vn){const{immediate:r,deep:o,flush:s,once:a}=n,i=jn({},n),l=t&&r||!t&&s!=="post";let u;if(cd){if(s==="sync"){const p=Q9();u=p.__watcherHandles||(p.__watcherHandles=[])}else if(!l){const p=()=>{};return p.stop=Kt,p.resume=Kt,p.pause=Kt,p}}const c=pr;i.call=(p,m,v)=>vo(p,c,m,v);let d=!1;s==="post"?i.scheduler=p=>{Vn(p,c&&c.suspense)}:s!=="sync"&&(d=!0,i.scheduler=(p,m)=>{m?p():Ty(p)}),i.augmentJob=p=>{t&&(p.flags|=4),d&&(p.flags|=2,c&&(p.id=c.uid,p.i=c))};const f=ZP(e,t,i);return cd&&(u?u.push(f):l&&f()),f}function CN(e,t,n){const r=this.proxy,o=ft(e)?e.includes(".")?Z9(r,e):()=>r[e]:e.bind(r,r);let s;at(t)?s=t:(s=t.handler,n=t);const a=qd(this),i=Ly(o,s.bind(r),n);return a(),i}function Z9(e,t){const n=t.split(".");return()=>{let r=e;for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Tr(t)}Modifiers`]||e[`${sa(t)}Modifiers`];function TN(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||vn;let o=n;const s=t.startsWith("update:"),a=s&&kN(r,t.slice(7));a&&(a.trim&&(o=n.map(c=>ft(c)?c.trim():c)),a.number&&(o=n.map(f2)));let i,l=r[i=Oc(t)]||r[i=Oc(Tr(t))];!l&&s&&(l=r[i=Oc(sa(t))]),l&&vo(l,e,6,o);const u=r[i+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,vo(u,e,6,o)}}function ek(e,t,n=!1){const r=t.emitsCache,o=r.get(e);if(o!==void 0)return o;const s=e.emits;let a={},i=!1;if(!at(e)){const l=u=>{const c=ek(u,t,!0);c&&(i=!0,jn(a,c))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!s&&!i?(xt(e)&&r.set(e,null),null):(Ge(s)?s.forEach(l=>a[l]=null):jn(a,s),xt(e)&&r.set(e,a),a)}function $0(e,t){return!e||!h0(t)?!1:(t=t.slice(2).replace(/Once$/,""),Bt(e,t[0].toLowerCase()+t.slice(1))||Bt(e,sa(t))||Bt(e,t))}function q3(e){const{type:t,vnode:n,proxy:r,withProxy:o,propsOptions:[s],slots:a,attrs:i,emit:l,render:u,renderCache:c,props:d,data:f,setupState:p,ctx:m,inheritAttrs:v}=e,g=wh(e);let b,_;try{if(n.shapeFlag&4){const S=o||r,w=S;b=es(u.call(w,S,c,d,p,f,m)),_=i}else{const S=t;b=es(S.length>1?S(d,{attrs:i,slots:a,emit:l}):S(d,null)),_=t.props?i:$N(i)}}catch(S){zc.length=0,Ud(S,e,1),b=me(Rn)}let y=b;if(_&&v!==!1){const S=Object.keys(_),{shapeFlag:w}=y;S.length&&w&7&&(s&&S.some(hy)&&(_=xN(_,s)),y=Do(y,_,!1,!0))}return n.dirs&&(y=Do(y,null,!1,!0),y.dirs=y.dirs?y.dirs.concat(n.dirs):n.dirs),n.transition&&Ks(y,n.transition),b=y,wh(g),b}const $N=e=>{let t;for(const n in e)(n==="class"||n==="style"||h0(n))&&((t||(t={}))[n]=e[n]);return t},xN=(e,t)=>{const n={};for(const r in e)(!hy(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function IN(e,t,n){const{props:r,children:o,component:s}=e,{props:a,children:i,patchFlag:l}=t,u=s.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return r?K3(r,a,u):!!a;if(l&8){const c=t.dynamicProps;for(let d=0;de.__isSuspense;function MN(e,t){t&&t.pendingBranch?Ge(e)?t.effects.push(...e):t.effects.push(e):h9(e)}const Ze=Symbol.for("v-fgt"),sl=Symbol.for("v-txt"),Rn=Symbol.for("v-cmt"),Dc=Symbol.for("v-stc"),zc=[];let Xr=null;function k(e=!1){zc.push(Xr=e?null:[])}function ON(){zc.pop(),Xr=zc[zc.length-1]||null}let ud=1;function w2(e,t=!1){ud+=e,e<0&&Xr&&t&&(Xr.hasOnce=!0)}function tk(e){return e.dynamicChildren=ud>0?Xr||Kl:null,ON(),ud>0&&Xr&&Xr.push(e),e}function D(e,t,n,r,o,s){return tk(R(e,t,n,r,o,s,!0))}function Me(e,t,n,r,o){return tk(me(e,t,n,r,o,!0))}function sn(e){return e?e.__v_isVNode===!0:!1}function Wa(e,t){return e.type===t.type&&e.key===t.key}const nk=({key:e})=>e??null,ap=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ft(e)||qt(e)||at(e)?{i:tr,r:e,k:t,f:!!n}:e:null);function R(e,t=null,n=null,r=0,o=null,s=e===Ze?0:1,a=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&nk(t),ref:t&&ap(t),scopeId:g9,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:r,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:tr};return i?(By(l,n),s&128&&e.normalize(l)):n&&(l.shapeFlag|=ft(n)?8:16),ud>0&&!a&&Xr&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&Xr.push(l),l}const me=RN;function RN(e,t=null,n=null,r=0,o=null,s=!1){if((!e||e===P9)&&(e=Rn),sn(e)){const i=Do(e,t,!0);return n&&By(i,n),ud>0&&!s&&Xr&&(i.shapeFlag&6?Xr[Xr.indexOf(e)]=i:Xr.push(i)),i.patchFlag=-2,i}if(FN(e)&&(e=e.__vccOpts),t){t=Fu(t);let{class:i,style:l}=t;i&&!ft(i)&&(t.class=W(i)),xt(l)&&(E0(l)&&!Ge(l)&&(l=jn({},l)),t.style=Je(l))}const a=ft(e)?1:Ch(e)?128:y9(e)?64:xt(e)?4:at(e)?2:0;return R(e,t,n,r,o,a,s,!0)}function Fu(e){return e?E0(e)||j9(e)?jn({},e):e:null}function Do(e,t,n=!1,r=!1){const{props:o,ref:s,patchFlag:a,children:i,transition:l}=e,u=t?$t(o||{},t):o,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&nk(u),ref:t&&t.ref?n&&s?Ge(s)?s.concat(ap(t)):[s,ap(t)]:ap(t):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ze?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Do(e.ssContent),ssFallback:e.ssFallback&&Do(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&r&&Ks(c,l.clone(c)),c}function Ot(e=" ",t=0){return me(sl,null,e,t)}function rk(e,t){const n=me(Dc,null,e);return n.staticCount=t,n}function Ae(e="",t=!1){return t?(k(),Me(Rn,null,e)):me(Rn,null,e)}function es(e){return e==null||typeof e=="boolean"?me(Rn):Ge(e)?me(Ze,null,e.slice()):sn(e)?Fa(e):me(sl,null,String(e))}function Fa(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Do(e)}function By(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(Ge(t))n=16;else if(typeof t=="object")if(r&65){const o=t.default;o&&(o._c&&(o._d=!1),By(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!j9(t)?t._ctx=tr:o===3&&tr&&(tr.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else at(t)?(t={default:t,_ctx:tr},n=32):(t=String(t),r&64?(n=16,t=[Ot(t)]):n=8);e.children=t,e.shapeFlag|=n}function $t(...e){const t={};for(let n=0;npr||tr;let kh,S2;{const e=g0(),t=(n,r)=>{let o;return(o=e[n])||(o=e[n]=[]),o.push(r),s=>{o.length>1?o.forEach(a=>a(s)):o[0](s)}};kh=t("__VUE_INSTANCE_SETTERS__",n=>pr=n),S2=t("__VUE_SSR_SETTERS__",n=>cd=n)}const qd=e=>{const t=pr;return kh(e),e.scope.on(),()=>{e.scope.off(),kh(t)}},G3=()=>{pr&&pr.scope.off(),kh(null)};function ok(e){return e.vnode.shapeFlag&4}let cd=!1;function BN(e,t=!1,n=!1){t&&S2(t);const{props:r,children:o}=e.vnode,s=ok(e);mN(e,r,s,t),yN(e,o,n||t);const a=s?DN(e,t):void 0;return t&&S2(!1),a}function DN(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,iN);const{setup:r}=n;if(r){Us();const o=e.setupContext=r.length>1?ak(e):null,s=qd(e),a=Bu(r,e,0,[e.props,o]),i=sd(a);if(Ws(),s(),(i||e.sp)&&!Bi(e)&&T9(e),i){if(a.then(G3,G3),t)return a.then(l=>{Y3(e,l)}).catch(l=>{Ud(l,e,0)});e.asyncDep=a}else Y3(e,a)}else sk(e)}function Y3(e,t,n){at(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:xt(t)&&(e.setupState=ky(t)),sk(e)}function sk(e,t,n){const r=e.type;e.render||(e.render=r.render||Kt);{const o=qd(e);Us();try{lN(e)}finally{Ws(),o()}}}const zN={get(e,t){return fr(e,"get",""),e[t]}};function ak(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,zN),slots:e.slots,emit:e.emit,expose:t}}function x0(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ky(Po(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Bc)return Bc[n](e)},has(t,n){return n in t||n in Bc}})):e.proxy}function E2(e,t=!0){return at(e)?e.displayName||e.name:e.name||t&&e.__name}function FN(e){return at(e)&&"__vccOpts"in e}const z=(e,t)=>c9(e,t,cd);function tt(e,t,n){const r=arguments.length;return r===2?xt(t)&&!Ge(t)?sn(t)?me(e,null,[t]):me(e,t):me(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&sn(n)&&(n=[n]),me(e,t,n))}const ik="3.5.20",lk=Kt;/** +* @vue/runtime-dom v3.5.20 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let C2;const X3=typeof window<"u"&&window.trustedTypes;if(X3)try{C2=X3.createPolicy("vue",{createHTML:e=>e})}catch{}const uk=C2?e=>C2.createHTML(e):e=>e,HN="http://www.w3.org/2000/svg",VN="http://www.w3.org/1998/Math/MathML",Ts=typeof document<"u"?document:null,J3=Ts&&Ts.createElement("template"),jN={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t==="svg"?Ts.createElementNS(HN,e):t==="mathml"?Ts.createElementNS(VN,e):n?Ts.createElement(e,{is:n}):Ts.createElement(e);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>Ts.createTextNode(e),createComment:e=>Ts.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ts.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,s){const a=n?n.previousSibling:t.lastChild;if(o&&(o===s||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===s||!(o=o.nextSibling)););else{J3.innerHTML=uk(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const i=J3.content;if(r==="svg"||r==="mathml"){const l=i.firstChild;for(;l.firstChild;)i.appendChild(l.firstChild);i.removeChild(l)}t.insertBefore(i,n)}return[a?a.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Ca="transition",pc="animation",iu=Symbol("_vtc"),ck={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},dk=jn({},xy,ck),UN=e=>(e.displayName="Transition",e.props=dk,e),xn=UN((e,{slots:t})=>tt(C9,fk(e),t)),yi=(e,t=[])=>{Ge(e)?e.forEach(n=>n(...t)):e&&e(...t)},Q3=e=>e?Ge(e)?e.some(t=>t.length>1):e.length>1:!1;function fk(e){const t={};for(const I in e)I in ck||(t[I]=e[I]);if(e.css===!1)return t;const{name:n="v",type:r,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:a=`${n}-enter-active`,enterToClass:i=`${n}-enter-to`,appearFromClass:l=s,appearActiveClass:u=a,appearToClass:c=i,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,m=WN(o),v=m&&m[0],g=m&&m[1],{onBeforeEnter:b,onEnter:_,onEnterCancelled:y,onLeave:S,onLeaveCancelled:w,onBeforeAppear:E=b,onAppear:T=_,onAppearCancelled:C=y}=t,$=(I,L,F,B)=>{I._enterCancelled=B,Ia(I,L?c:i),Ia(I,L?u:a),F&&F()},x=(I,L)=>{I._isLeaving=!1,Ia(I,d),Ia(I,p),Ia(I,f),L&&L()},N=I=>(L,F)=>{const B=I?T:_,U=()=>$(L,I,F);yi(B,[L,U]),Z3(()=>{Ia(L,I?l:s),Jo(L,I?c:i),Q3(B)||e6(L,r,v,U)})};return jn(t,{onBeforeEnter(I){yi(b,[I]),Jo(I,s),Jo(I,a)},onBeforeAppear(I){yi(E,[I]),Jo(I,l),Jo(I,u)},onEnter:N(!1),onAppear:N(!0),onLeave(I,L){I._isLeaving=!0;const F=()=>x(I,L);Jo(I,d),I._enterCancelled?(Jo(I,f),k2()):(k2(),Jo(I,f)),Z3(()=>{I._isLeaving&&(Ia(I,d),Jo(I,p),Q3(S)||e6(I,r,g,F))}),yi(S,[I,F])},onEnterCancelled(I){$(I,!1,void 0,!0),yi(y,[I])},onAppearCancelled(I){$(I,!0,void 0,!0),yi(C,[I])},onLeaveCancelled(I){x(I),yi(w,[I])}})}function WN(e){if(e==null)return null;if(xt(e))return[jm(e.enter),jm(e.leave)];{const t=jm(e);return[t,t]}}function jm(e){return yP(e)}function Jo(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[iu]||(e[iu]=new Set)).add(t)}function Ia(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[iu];n&&(n.delete(t),n.size||(e[iu]=void 0))}function Z3(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let qN=0;function e6(e,t,n,r){const o=e._endId=++qN,s=()=>{o===e._endId&&r()};if(n!=null)return setTimeout(s,n);const{type:a,timeout:i,propCount:l}=pk(e,t);if(!a)return r();const u=a+"end";let c=0;const d=()=>{e.removeEventListener(u,f),s()},f=p=>{p.target===e&&++c>=l&&d()};setTimeout(()=>{c(n[m]||"").split(", "),o=r(`${Ca}Delay`),s=r(`${Ca}Duration`),a=t6(o,s),i=r(`${pc}Delay`),l=r(`${pc}Duration`),u=t6(i,l);let c=null,d=0,f=0;t===Ca?a>0&&(c=Ca,d=a,f=s.length):t===pc?u>0&&(c=pc,d=u,f=l.length):(d=Math.max(a,u),c=d>0?a>u?Ca:pc:null,f=c?c===Ca?s.length:l.length:0);const p=c===Ca&&/\b(transform|all)(,|$)/.test(r(`${Ca}Property`).toString());return{type:c,timeout:d,propCount:f,hasTransform:p}}function t6(e,t){for(;e.lengthn6(n)+n6(e[r])))}function n6(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function k2(){return document.body.offsetHeight}function KN(e,t,n){const r=e[iu];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Th=Symbol("_vod"),hk=Symbol("_vsh"),zt={name:"show",beforeMount(e,{value:t},{transition:n}){e[Th]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):hc(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),hc(e,!0),r.enter(e)):r.leave(e,()=>{hc(e,!1)}):hc(e,t))},beforeUnmount(e,{value:t}){hc(e,t)}};function hc(e,t){e.style.display=t?e[Th]:"none",e[hk]=!t}const GN=Symbol(""),YN=/(^|;)\s*display\s*:/;function XN(e,t,n){const r=e.style,o=ft(n);let s=!1;if(n&&!o){if(t)if(ft(t))for(const a of t.split(";")){const i=a.slice(0,a.indexOf(":")).trim();n[i]==null&&ip(r,i,"")}else for(const a in t)n[a]==null&&ip(r,a,"");for(const a in n)a==="display"&&(s=!0),ip(r,a,n[a])}else if(o){if(t!==n){const a=r[GN];a&&(n+=";"+a),r.cssText=n,s=YN.test(n)}}else t&&e.removeAttribute("style");Th in e&&(e[Th]=s?r.display:"",e[hk]&&(r.display="none"))}const r6=/\s*!important$/;function ip(e,t,n){if(Ge(n))n.forEach(r=>ip(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=JN(e,t);r6.test(n)?e.setProperty(sa(r),n.replace(r6,""),"important"):e[r]=n}}const o6=["Webkit","Moz","ms"],Um={};function JN(e,t){const n=Um[t];if(n)return n;let r=Tr(t);if(r!=="filter"&&r in e)return Um[t]=r;r=Nu(r);for(let o=0;oWm||(tL.then(()=>Wm=0),Wm=Date.now());function rL(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;vo(oL(r,n.value),t,5,[r])};return n.value=e,n.attached=nL(),n}function oL(e,t){if(Ge(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>o=>!o._stopped&&r&&r(o))}else return t}const c6=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,sL=(e,t,n,r,o,s)=>{const a=o==="svg";t==="class"?KN(e,r,a):t==="style"?XN(e,n,r):h0(t)?hy(t)||ZN(e,t,n,r,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):aL(e,t,r,a))?(i6(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&a6(e,t,r,a,s,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!ft(r))?i6(e,Tr(t),r,s,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),a6(e,t,r,a))};function aL(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&c6(t)&&at(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return c6(t)&&ft(n)?!1:t in e}const mk=new WeakMap,vk=new WeakMap,$h=Symbol("_moveCb"),d6=Symbol("_enterCb"),iL=e=>(delete e.props.mode,e),lL=iL({name:"TransitionGroup",props:jn({},dk,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=gt(),r=$y();let o,s;return Uo(()=>{if(!o.length)return;const a=e.moveClass||`${e.name||"v"}-move`;if(!fL(o[0].el,n.vnode.el,a)){o=[];return}o.forEach(uL),o.forEach(cL);const i=o.filter(dL);k2(),i.forEach(l=>{const u=l.el,c=u.style;Jo(u,a),c.transform=c.webkitTransform=c.transitionDuration="";const d=u[$h]=f=>{f&&f.target!==u||(!f||/transform$/.test(f.propertyName))&&(u.removeEventListener("transitionend",d),u[$h]=null,Ia(u,a))};u.addEventListener("transitionend",d)}),o=[]}),()=>{const a=Ut(e),i=fk(a);let l=a.tag||Ze;if(o=[],s)for(let u=0;u{i.split(/\s+/).forEach(l=>l&&r.classList.remove(l))}),n.split(/\s+/).forEach(i=>i&&r.classList.add(i)),r.style.display="none";const s=t.nodeType===1?t:t.parentNode;s.appendChild(r);const{hasTransform:a}=pk(r);return s.removeChild(r),a}const lu=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Ge(t)?n=>Yl(t,n):t};function pL(e){e.target.composing=!0}function f6(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ds=Symbol("_assign"),I0={created(e,{modifiers:{lazy:t,trim:n,number:r}},o){e[Ds]=lu(o);const s=r||o.props&&o.props.type==="number";qa(e,t?"change":"input",a=>{if(a.target.composing)return;let i=e.value;n&&(i=i.trim()),s&&(i=f2(i)),e[Ds](i)}),n&&qa(e,"change",()=>{e.value=e.value.trim()}),t||(qa(e,"compositionstart",pL),qa(e,"compositionend",f6),qa(e,"change",f6))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:o,number:s}},a){if(e[Ds]=lu(a),e.composing)return;const i=(s||e.type==="number")&&!/^0\d/.test(e.value)?f2(e.value):e.value,l=t??"";i!==l&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||o&&e.value.trim()===l)||(e.value=l))}},dd={deep:!0,created(e,t,n){e[Ds]=lu(n),qa(e,"change",()=>{const r=e._modelValue,o=gk(e),s=e.checked,a=e[Ds];if(Ge(r)){const i=UC(r,o),l=i!==-1;if(s&&!l)a(r.concat(o));else if(!s&&l){const u=[...r];u.splice(i,1),a(u)}}else if(m0(r)){const i=new Set(r);s?i.add(o):i.delete(o),a(i)}else a(_k(e,s))})},mounted:p6,beforeUpdate(e,t,n){e[Ds]=lu(n),p6(e,t,n)}};function p6(e,{value:t,oldValue:n},r){e._modelValue=t;let o;if(Ge(t))o=UC(t,r.props.value)>-1;else if(m0(t))o=t.has(r.props.value);else{if(t===n)return;o=su(t,_k(e,!0))}e.checked!==o&&(e.checked=o)}const zy={created(e,{value:t},n){e.checked=su(t,n.props.value),e[Ds]=lu(n),qa(e,"change",()=>{e[Ds](gk(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[Ds]=lu(r),t!==n&&(e.checked=su(t,r.props.value))}};function gk(e){return"_value"in e?e._value:e.value}function _k(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const hL=["ctrl","shift","alt","meta"],mL={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>hL.some(n=>e[`${n}Key`]&&!t.includes(n))},ct=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(o,...s)=>{for(let a=0;a{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=o=>{if(!("key"in o))return;const s=sa(o.key);if(t.some(a=>a===s||vL[a]===s))return e(o)})},gL=jn({patchProp:sL},jN);let h6;function yk(){return h6||(h6=Y9(gL))}const Gi=(...e)=>{yk().render(...e)},Fy=(...e)=>{const t=yk().createApp(...e),{mount:n}=t;return t.mount=r=>{const o=yL(r);if(!o)return;const s=t._component;!at(s)&&!s.render&&!s.template&&(s.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const a=n(o,!1,_L(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),a},t};function _L(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function yL(e){return ft(e)?document.querySelector(e):e}/** +* vue v3.5.20 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const bk=Object.freeze(Object.defineProperty({__proto__:null,BaseTransition:C9,BaseTransitionPropsValidators:xy,Comment:Rn,EffectScope:gy,Fragment:Ze,KeepAlive:$9,ReactiveEffect:by,Static:Dc,Teleport:Du,Text:sl,Transition:xn,TransitionGroup:Dy,callWithAsyncErrorHandling:vo,callWithErrorHandling:Bu,camelize:Tr,capitalize:Nu,cloneVNode:Do,computed:z,createApp:Fy,createBlock:Me,createCommentVNode:Ae,createElementBlock:D,createElementVNode:R,createRenderer:Y9,createSlots:Bo,createStaticVNode:rk,createTextVNode:Ot,createVNode:me,defineComponent:Ce,effectScope:_0,getCurrentInstance:gt,getCurrentScope:_y,getTransitionRawChildren:C0,guardReactiveProps:Fu,h:tt,handleError:Ud,inject:Ye,isProxy:E0,isReactive:Bs,isReadonly:qs,isRef:qt,isShallow:Zr,isVNode:sn,markRaw:Po,mergeProps:$t,nextTick:Xe,normalizeClass:W,normalizeProps:Yr,normalizeStyle:Je,onActivated:x9,onBeforeMount:Wd,onBeforeUnmount:fn,onBeforeUpdate:Ay,onDeactivated:Iy,onErrorCaptured:R9,onMounted:vt,onRenderTracked:O9,onRenderTriggered:M9,onScopeDispose:yy,onServerPrefetch:A9,onUnmounted:ia,onUpdated:Uo,onWatcherCleanup:d9,openBlock:k,provide:Ct,proxyRefs:ky,queuePostFlushCb:h9,reactive:Ht,readonly:Lu,ref:ee,render:Gi,renderList:At,renderSlot:Pe,resolveComponent:rt,resolveDirective:Za,resolveDynamicComponent:kt,resolveTransitionHooks:au,setBlockTracking:w2,setTransitionHooks:Ks,shallowReactive:w0,shallowReadonly:qP,shallowRef:rn,ssrContextKey:J9,toDisplayString:ze,toHandlerKey:Oc,toHandlers:L9,toRaw:Ut,toRef:gn,toRefs:On,toValue:GP,triggerRef:Tl,unref:h,useAttrs:zu,useSSRContext:Q9,useSlots:Wn,useTransitionState:$y,vModelCheckbox:dd,vModelRadio:zy,vModelText:I0,vShow:zt,version:ik,warn:lk,watch:Be,watchEffect:Cr,withCtx:be,withDirectives:mt,withKeys:Rt,withModifiers:ct},Symbol.toStringTag,{value:"Module"}));/*! + * pinia v2.0.22 + * (c) 2022 Eduardo San Martin Morote + * @license MIT + */let wk;const A0=e=>wk=e,Sk=Symbol();function T2(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Fc;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Fc||(Fc={}));function bL(){const e=_0(!0),t=e.run(()=>ee({}));let n=[],r=[];const o=Po({install(s){A0(o),o._a=s,s.provide(Sk,o),s.config.globalProperties.$pinia=o,r.forEach(a=>n.push(a)),r=[]},use(s){return this._a?n.push(s):r.push(s),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return o}const Ek=()=>{};function m6(e,t,n,r=Ek){e.push(t);const o=()=>{const s=e.indexOf(t);s>-1&&(e.splice(s,1),r())};return!n&>()&&ia(o),o}function gl(e,...t){e.slice().forEach(n=>{n(...t)})}function $2(e,t){e instanceof Map&&t instanceof Map&&t.forEach((n,r)=>e.set(r,n)),e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],o=e[n];T2(o)&&T2(r)&&e.hasOwnProperty(n)&&!qt(r)&&!Bs(r)?e[n]=$2(o,r):e[n]=r}return e}const wL=Symbol();function SL(e){return!T2(e)||!e.hasOwnProperty(wL)}const{assign:$s}=Object;function EL(e){return!!(qt(e)&&e.effect)}function CL(e,t,n,r){const{state:o,actions:s,getters:a}=t,i=n.state.value[e];let l;function u(){i||(n.state.value[e]=o?o():{});const c=On(n.state.value[e]);return $s(c,s,Object.keys(a||{}).reduce((d,f)=>(d[f]=Po(z(()=>{A0(n);const p=n._s.get(e);return a[f].call(p,p)})),d),{}))}return l=Ck(e,u,t,n,r,!0),l.$reset=function(){const d=o?o():{};this.$patch(f=>{$s(f,d)})},l}function Ck(e,t,n={},r,o,s){let a;const i=$s({actions:{}},n),l={deep:!0};let u,c,d=Po([]),f=Po([]),p;const m=r.state.value[e];!s&&!m&&(r.state.value[e]={}),ee({});let v;function g(T){let C;u=c=!1,typeof T=="function"?(T(r.state.value[e]),C={type:Fc.patchFunction,storeId:e,events:p}):($2(r.state.value[e],T),C={type:Fc.patchObject,payload:T,storeId:e,events:p});const $=v=Symbol();Xe().then(()=>{v===$&&(u=!0)}),c=!0,gl(d,C,r.state.value[e])}const b=Ek;function _(){a.stop(),d=[],f=[],r._s.delete(e)}function y(T,C){return function(){A0(r);const $=Array.from(arguments),x=[],N=[];function I(B){x.push(B)}function L(B){N.push(B)}gl(f,{args:$,name:T,store:w,after:I,onError:L});let F;try{F=C.apply(this&&this.$id===e?this:w,$)}catch(B){throw gl(N,B),B}return F instanceof Promise?F.then(B=>(gl(x,B),B)).catch(B=>(gl(N,B),Promise.reject(B))):(gl(x,F),F)}}const S={_p:r,$id:e,$onAction:m6.bind(null,f),$patch:g,$reset:b,$subscribe(T,C={}){const $=m6(d,T,C.detached,()=>x()),x=a.run(()=>Be(()=>r.state.value[e],N=>{(C.flush==="sync"?c:u)&&T({storeId:e,type:Fc.direct,events:p},N)},$s({},l,C)));return $},$dispose:_},w=Ht($s({},S));r._s.set(e,w);const E=r._e.run(()=>(a=_0(),a.run(()=>t())));for(const T in E){const C=E[T];if(qt(C)&&!EL(C)||Bs(C))s||(m&&SL(C)&&(qt(C)?C.value=m[T]:$2(C,m[T])),r.state.value[e][T]=C);else if(typeof C=="function"){const $=y(T,C);E[T]=$,i.actions[T]=C}}return $s(w,E),$s(Ut(w),E),Object.defineProperty(w,"$state",{get:()=>r.state.value[e],set:T=>{g(C=>{$s(C,T)})}}),r._p.forEach(T=>{$s(w,a.run(()=>T({store:w,app:r._a,pinia:r,options:i})))}),m&&s&&n.hydrate&&n.hydrate(w.$state,m),u=!0,c=!0,w}function Kd(e,t,n){let r,o;const s=typeof t=="function";typeof e=="string"?(r=e,o=s?n:t):(o=e,r=e.id);function a(i,l){const u=gt();return i=i||u&&Ye(Sk),i&&A0(i),i=wk,i._s.has(r)||(s?Ck(r,t,o,i):CL(r,o,i)),i._s.get(r)}return a.$id=r,a}const Tt=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,Xt=globalThis,Di="10.20.0";function al(){return M0(Xt),Xt}function M0(e){const t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||Di,t[Di]=t[Di]||{}}function Hu(e,t,n=Xt){const r=n.__SENTRY__=n.__SENTRY__||{},o=r[Di]=r[Di]||{};return o[e]||(o[e]=t())}const kL=["debug","info","warn","error","log","assert","trace"],TL="Sentry Logger ",xh={};function la(e){if(!("console"in Xt))return e();const t=Xt.console,n={},r=Object.keys(xh);r.forEach(o=>{const s=xh[o];n[o]=t[o],t[o]=s});try{return e()}finally{r.forEach(o=>{t[o]=n[o]})}}function $L(){Vy().enabled=!0}function xL(){Vy().enabled=!1}function kk(){return Vy().enabled}function IL(...e){Hy("log",...e)}function AL(...e){Hy("warn",...e)}function ML(...e){Hy("error",...e)}function Hy(e,...t){Tt&&kk()&&la(()=>{Xt.console[e](`${TL}[${e}]:`,...t)})}function Vy(){return Tt?Hu("loggerSettings",()=>({enabled:!1})):{enabled:!1}}const it={enable:$L,disable:xL,isEnabled:kk,log:IL,warn:AL,error:ML},Tk=50,Yi="?",v6=/\(error: (.*)\)/,g6=/captureMessage|captureException/;function $k(...e){const t=e.sort((n,r)=>n[0]-r[0]).map(n=>n[1]);return(n,r=0,o=0)=>{const s=[],a=n.split(` +`);for(let i=r;i1024&&(l=l.slice(0,1024));const u=v6.test(l)?l.replace(v6,"$1"):l;if(!u.match(/\S*Error: /)){for(const c of t){const d=c(u);if(d){s.push(d);break}}if(s.length>=Tk+o)break}}return RL(s.slice(o))}}function OL(e){return Array.isArray(e)?$k(...e):e}function RL(e){if(!e.length)return[];const t=Array.from(e);return/sentryWrapped/.test(If(t).function||"")&&t.pop(),t.reverse(),g6.test(If(t).function||"")&&(t.pop(),g6.test(If(t).function||"")&&t.pop()),t.slice(0,Tk).map(n=>({...n,filename:n.filename||If(t).filename,function:n.function||Yi}))}function If(e){return e[e.length-1]||{}}const qm="";function Gs(e){try{return!e||typeof e!="function"?qm:e.name||qm}catch{return qm}}function _6(e){const t=e.exception;if(t){const n=[];try{return t.values.forEach(r=>{r.stacktrace.frames&&n.push(...r.stacktrace.frames)}),n}catch{return}}}const lp={},y6={};function ii(e,t){lp[e]=lp[e]||[],lp[e].push(t)}function li(e,t){if(!y6[e]){y6[e]=!0;try{t()}catch(n){Tt&&it.error(`Error while instrumenting ${e}`,n)}}}function po(e,t){const n=e&&lp[e];if(n)for(const r of n)try{r(t)}catch(o){Tt&&it.error(`Error while triggering instrumentation handler. +Type: ${e} +Name: ${Gs(r)} +Error:`,o)}}let Km=null;function xk(e){const t="error";ii(t,e),li(t,PL)}function PL(){Km=Xt.onerror,Xt.onerror=function(e,t,n,r,o){return po("error",{column:r,error:o,line:n,msg:e,url:t}),Km?Km.apply(this,arguments):!1},Xt.onerror.__SENTRY_INSTRUMENTED__=!0}let Gm=null;function Ik(e){const t="unhandledrejection";ii(t,e),li(t,NL)}function NL(){Gm=Xt.onunhandledrejection,Xt.onunhandledrejection=function(e){return po("unhandledrejection",e),Gm?Gm.apply(this,arguments):!0},Xt.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}const Ak=Object.prototype.toString;function jy(e){switch(Ak.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return Ys(e,Error)}}function Vu(e,t){return Ak.call(e)===`[object ${t}]`}function Mk(e){return Vu(e,"ErrorEvent")}function b6(e){return Vu(e,"DOMError")}function LL(e){return Vu(e,"DOMException")}function zs(e){return Vu(e,"String")}function Uy(e){return typeof e=="object"&&e!==null&&"__sentry_template_string__"in e&&"__sentry_template_values__"in e}function uu(e){return e===null||Uy(e)||typeof e!="object"&&typeof e!="function"}function fd(e){return Vu(e,"Object")}function O0(e){return typeof Event<"u"&&Ys(e,Event)}function BL(e){return typeof Element<"u"&&Ys(e,Element)}function DL(e){return Vu(e,"RegExp")}function ju(e){return!!(e!=null&&e.then&&typeof e.then=="function")}function zL(e){return fd(e)&&"nativeEvent"in e&&"preventDefault"in e&&"stopPropagation"in e}function Ys(e,t){try{return e instanceof t}catch{return!1}}function Ok(e){return!!(typeof e=="object"&&e!==null&&(e.__isVue||e._isVue))}function Rk(e){return typeof Request<"u"&&Ys(e,Request)}const Wy=Xt,FL=80;function go(e,t={}){if(!e)return"";try{let n=e;const r=5,o=[];let s=0,a=0;const i=" > ",l=i.length;let u;const c=Array.isArray(t)?t:t.keyAttrs,d=!Array.isArray(t)&&t.maxStringLength||FL;for(;n&&s++1&&a+o.length*l+u.length>=d));)o.push(u),a+=u.length,n=n.parentNode;return o.reverse().join(i)}catch{return""}}function HL(e,t){const n=e,r=[];if(!(n!=null&&n.tagName))return"";if(Wy.HTMLElement&&n instanceof HTMLElement&&n.dataset){if(n.dataset.sentryComponent)return n.dataset.sentryComponent;if(n.dataset.sentryElement)return n.dataset.sentryElement}r.push(n.tagName.toLowerCase());const o=t!=null&&t.length?t.filter(a=>n.getAttribute(a)).map(a=>[a,n.getAttribute(a)]):null;if(o!=null&&o.length)o.forEach(a=>{r.push(`[${a[0]}="${a[1]}"]`)});else{n.id&&r.push(`#${n.id}`);const a=n.className;if(a&&zs(a)){const i=a.split(/\s+/);for(const l of i)r.push(`.${l}`)}}const s=["aria-label","type","name","title","alt"];for(const a of s){const i=n.getAttribute(a);i&&r.push(`[${a}="${i}"]`)}return r.join("")}function Uu(){try{return Wy.document.location.href}catch{return""}}function Pk(e){if(!Wy.HTMLElement)return null;let t=e;const n=5;for(let r=0;rup(e,r,n))}function Pr(e,t,n){if(!(t in e))return;const r=e[t];if(typeof r!="function")return;const o=n(r);typeof o=="function"&&Nk(o,r);try{e[t]=o}catch{Tt&&it.log(`Failed to replace method "${t}" in object`,e)}}function ro(e,t,n){try{Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0})}catch{Tt&&it.log(`Failed to add non-enumerable property "${t}" to object`,e)}}function Nk(e,t){try{const n=t.prototype||{};e.prototype=t.prototype=n,ro(e,"__sentry_original__",t)}catch{}}function qy(e){return e.__sentry_original__}function Lk(e){if(jy(e))return{message:e.message,name:e.name,stack:e.stack,...E6(e)};if(O0(e)){const t={type:e.type,target:S6(e.target),currentTarget:S6(e.currentTarget),...E6(e)};return typeof CustomEvent<"u"&&Ys(e,CustomEvent)&&(t.detail=e.detail),t}else return e}function S6(e){try{return BL(e)?go(e):Object.prototype.toString.call(e)}catch{return""}}function E6(e){if(typeof e=="object"&&e!==null){const t={};for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}else return{}}function VL(e,t=40){const n=Object.keys(Lk(e));n.sort();const r=n[0];if(!r)return"[object has no keys]";if(r.length>=t)return Ih(r,t);for(let o=n.length;o>0;o--){const s=n.slice(0,o).join(", ");if(!(s.length>t))return o===n.length?s:Ih(s,t)}return""}function jL(){const e=Xt;return e.crypto||e.msCrypto}function eo(e=jL()){let t=()=>Math.random()*16;try{if(e!=null&&e.randomUUID)return e.randomUUID().replace(/-/g,"");e!=null&&e.getRandomValues&&(t=()=>{const n=new Uint8Array(1);return e.getRandomValues(n),n[0]})}catch{}return("10000000100040008000"+1e11).replace(/[018]/g,n=>(n^(t()&15)>>n/4).toString(16))}function Bk(e){var t,n;return(n=(t=e.exception)==null?void 0:t.values)==null?void 0:n[0]}function Ei(e){const{message:t,event_id:n}=e;if(t)return t;const r=Bk(e);return r?r.type&&r.value?`${r.type}: ${r.value}`:r.type||r.value||n||"":n||""}function x2(e,t,n){const r=e.exception=e.exception||{},o=r.values=r.values||[],s=o[0]=o[0]||{};s.value||(s.value=t||""),s.type||(s.type="Error")}function cu(e,t){const n=Bk(e);if(!n)return;const r={type:"generic",handled:!0},o=n.mechanism;if(n.mechanism={...r,...o,...t},t&&"data"in t){const s={...o==null?void 0:o.data,...t.data};n.mechanism.data=s}}function C6(e){if(UL(e))return!0;try{ro(e,"__sentry_captured__",!0)}catch{}return!1}function UL(e){try{return e.__sentry_captured__}catch{}}const Dk=1e3;function il(){return Date.now()/Dk}function WL(){const{performance:e}=Xt;if(!(e!=null&&e.now)||!e.timeOrigin)return il;const t=e.timeOrigin;return()=>(t+e.now())/Dk}let k6;function Pn(){return(k6??(k6=WL()))()}let Ym;function qL(){var c;const{performance:e}=Xt;if(!(e!=null&&e.now))return[void 0,"none"];const t=3600*1e3,n=e.now(),r=Date.now(),o=e.timeOrigin?Math.abs(e.timeOrigin+n-r):t,s=oYL(n)};return e&&du(n,e),n}function du(e,t={}){if(t.user&&(!e.ipAddress&&t.user.ip_address&&(e.ipAddress=t.user.ip_address),!e.did&&!t.did&&(e.did=t.user.id||t.user.email||t.user.username)),e.timestamp=t.timestamp||Pn(),t.abnormal_mechanism&&(e.abnormal_mechanism=t.abnormal_mechanism),t.ignoreDuration&&(e.ignoreDuration=t.ignoreDuration),t.sid&&(e.sid=t.sid.length===32?t.sid:eo()),t.init!==void 0&&(e.init=t.init),!e.did&&t.did&&(e.did=`${t.did}`),typeof t.started=="number"&&(e.started=t.started),e.ignoreDuration)e.duration=void 0;else if(typeof t.duration=="number")e.duration=t.duration;else{const n=e.timestamp-e.started;e.duration=n>=0?n:0}t.release&&(e.release=t.release),t.environment&&(e.environment=t.environment),!e.ipAddress&&t.ipAddress&&(e.ipAddress=t.ipAddress),!e.userAgent&&t.userAgent&&(e.userAgent=t.userAgent),typeof t.errors=="number"&&(e.errors=t.errors),t.status&&(e.status=t.status)}function GL(e,t){let n={};e.status==="ok"&&(n={status:"exited"}),du(e,n)}function YL(e){return{sid:`${e.sid}`,init:e.init,started:new Date(e.started*1e3).toISOString(),timestamp:new Date(e.timestamp*1e3).toISOString(),status:e.status,errors:e.errors,did:typeof e.did=="number"||typeof e.did=="string"?`${e.did}`:void 0,duration:e.duration,abnormal_mechanism:e.abnormal_mechanism,attrs:{release:e.release,environment:e.environment,ip_address:e.ipAddress,user_agent:e.userAgent}}}function Gd(e,t,n=2){if(!t||typeof t!="object"||n<=0)return t;if(e&&Object.keys(t).length===0)return e;const r={...e};for(const o in t)Object.prototype.hasOwnProperty.call(t,o)&&(r[o]=Gd(r[o],t[o],n-1));return r}function Xs(){return eo()}function Hs(){return eo().substring(16)}const I2="_sentrySpan";function fu(e,t){t?ro(e,I2,t):delete e[I2]}function Ah(e){return e[I2]}const XL=100;class ds{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:Xs(),sampleRand:Math.random()}}clone(){const t=new ds;return t._breadcrumbs=[...this._breadcrumbs],t._tags={...this._tags},t._extra={...this._extra},t._contexts={...this._contexts},this._contexts.flags&&(t._contexts.flags={values:[...this._contexts.flags.values]}),t._user=this._user,t._level=this._level,t._session=this._session,t._transactionName=this._transactionName,t._fingerprint=this._fingerprint,t._eventProcessors=[...this._eventProcessors],t._attachments=[...this._attachments],t._sdkProcessingMetadata={...this._sdkProcessingMetadata},t._propagationContext={...this._propagationContext},t._client=this._client,t._lastEventId=this._lastEventId,fu(t,Ah(this)),t}setClient(t){this._client=t}setLastEventId(t){this._lastEventId=t}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(t){this._scopeListeners.push(t)}addEventProcessor(t){return this._eventProcessors.push(t),this}setUser(t){return this._user=t||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session&&du(this._session,{user:t}),this._notifyScopeListeners(),this}getUser(){return this._user}setTags(t){return this._tags={...this._tags,...t},this._notifyScopeListeners(),this}setTag(t,n){return this._tags={...this._tags,[t]:n},this._notifyScopeListeners(),this}setExtras(t){return this._extra={...this._extra,...t},this._notifyScopeListeners(),this}setExtra(t,n){return this._extra={...this._extra,[t]:n},this._notifyScopeListeners(),this}setFingerprint(t){return this._fingerprint=t,this._notifyScopeListeners(),this}setLevel(t){return this._level=t,this._notifyScopeListeners(),this}setTransactionName(t){return this._transactionName=t,this._notifyScopeListeners(),this}setContext(t,n){return n===null?delete this._contexts[t]:this._contexts[t]=n,this._notifyScopeListeners(),this}setSession(t){return t?this._session=t:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(t){if(!t)return this;const n=typeof t=="function"?t(this):t,r=n instanceof ds?n.getScopeData():fd(n)?t:void 0,{tags:o,extra:s,user:a,contexts:i,level:l,fingerprint:u=[],propagationContext:c}=r||{};return this._tags={...this._tags,...o},this._extra={...this._extra,...s},this._contexts={...this._contexts,...i},a&&Object.keys(a).length&&(this._user=a),l&&(this._level=l),u.length&&(this._fingerprint=u),c&&(this._propagationContext=c),this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,fu(this,void 0),this._attachments=[],this.setPropagationContext({traceId:Xs(),sampleRand:Math.random()}),this._notifyScopeListeners(),this}addBreadcrumb(t,n){var s;const r=typeof n=="number"?n:XL;if(r<=0)return this;const o={timestamp:il(),...t,message:t.message?Ih(t.message,2048):t.message};return this._breadcrumbs.push(o),this._breadcrumbs.length>r&&(this._breadcrumbs=this._breadcrumbs.slice(-r),(s=this._client)==null||s.recordDroppedEvent("buffer_overflow","log_item")),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(t){return this._attachments.push(t),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:Ah(this)}}setSDKProcessingMetadata(t){return this._sdkProcessingMetadata=Gd(this._sdkProcessingMetadata,t,2),this}setPropagationContext(t){return this._propagationContext=t,this}getPropagationContext(){return this._propagationContext}captureException(t,n){const r=(n==null?void 0:n.event_id)||eo();if(!this._client)return Tt&&it.warn("No client configured on scope - will not capture exception!"),r;const o=new Error("Sentry syntheticException");return this._client.captureException(t,{originalException:t,syntheticException:o,...n,event_id:r},this),r}captureMessage(t,n,r){const o=(r==null?void 0:r.event_id)||eo();if(!this._client)return Tt&&it.warn("No client configured on scope - will not capture message!"),o;const s=new Error(t);return this._client.captureMessage(t,n,{originalException:t,syntheticException:s,...r,event_id:o},this),o}captureEvent(t,n){const r=(n==null?void 0:n.event_id)||eo();return this._client?(this._client.captureEvent(t,{...n,event_id:r},this),r):(Tt&&it.warn("No client configured on scope - will not capture event!"),r)}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach(t=>{t(this)}),this._notifyingListeners=!1)}}function JL(){return Hu("defaultCurrentScope",()=>new ds)}function QL(){return Hu("defaultIsolationScope",()=>new ds)}class ZL{constructor(t,n){let r;t?r=t:r=new ds;let o;n?o=n:o=new ds,this._stack=[{scope:r}],this._isolationScope=o}withScope(t){const n=this._pushScope();let r;try{r=t(n)}catch(o){throw this._popScope(),o}return ju(r)?r.then(o=>(this._popScope(),o),o=>{throw this._popScope(),o}):(this._popScope(),r)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){const t=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:t}),t}_popScope(){return this._stack.length<=1?!1:!!this._stack.pop()}}function pu(){const e=al(),t=M0(e);return t.stack=t.stack||new ZL(JL(),QL())}function eB(e){return pu().withScope(e)}function tB(e,t){const n=pu();return n.withScope(()=>(n.getStackTop().scope=e,t(e)))}function T6(e){return pu().withScope(()=>e(pu().getIsolationScope()))}function nB(){return{withIsolationScope:T6,withScope:eB,withSetScope:tB,withSetIsolationScope:(e,t)=>T6(t),getCurrentScope:()=>pu().getScope(),getIsolationScope:()=>pu().getIsolationScope()}}function Wu(e){const t=M0(e);return t.acs?t.acs:nB()}function ln(){const e=al();return Wu(e).getCurrentScope()}function ms(){const e=al();return Wu(e).getIsolationScope()}function rB(){return Hu("globalScope",()=>new ds)}function R0(...e){const t=al(),n=Wu(t);if(e.length===2){const[r,o]=e;return r?n.withSetScope(r,o):n.withScope(o)}return n.withScope(e[0])}function Jt(){return ln().getClient()}function oB(e){const t=e.getPropagationContext(),{traceId:n,parentSpanId:r,propagationSpanId:o}=t,s={trace_id:n,span_id:o||Hs()};return r&&(s.parent_span_id=r),s}const Nr="sentry.source",Ky="sentry.sample_rate",zk="sentry.previous_trace_sample_rate",Js="sentry.op",In="sentry.origin",pd="sentry.idle_span_finish_reason",Yd="sentry.measurement_unit",Xd="sentry.measurement_value",$6="sentry.custom_span_name",Gy="sentry.profile_id",qu="sentry.exclusive_time",sB="sentry.link.type",aB=0,Fk=1,Hn=2;function iB(e){if(e<400&&e>=100)return{code:Fk};if(e>=400&&e<500)switch(e){case 401:return{code:Hn,message:"unauthenticated"};case 403:return{code:Hn,message:"permission_denied"};case 404:return{code:Hn,message:"not_found"};case 409:return{code:Hn,message:"already_exists"};case 413:return{code:Hn,message:"failed_precondition"};case 429:return{code:Hn,message:"resource_exhausted"};case 499:return{code:Hn,message:"cancelled"};default:return{code:Hn,message:"invalid_argument"}}if(e>=500&&e<600)switch(e){case 501:return{code:Hn,message:"unimplemented"};case 503:return{code:Hn,message:"unavailable"};case 504:return{code:Hn,message:"deadline_exceeded"};default:return{code:Hn,message:"internal_error"}}return{code:Hn,message:"unknown_error"}}function Hk(e,t){e.setAttribute("http.response.status_code",t);const n=iB(t);n.message!=="unknown_error"&&e.setStatus(n)}const Vk="_sentryScope",jk="_sentryIsolationScope";function lB(e){try{const t=Xt.WeakRef;if(typeof t=="function")return new t(e)}catch{}return e}function uB(e){if(e){if(typeof e=="object"&&"deref"in e&&typeof e.deref=="function")try{return e.deref()}catch{return}return e}}function cB(e,t,n){e&&(ro(e,jk,lB(n)),ro(e,Vk,t))}function Mh(e){const t=e;return{scope:t[Vk],isolationScope:uB(t[jk])}}const Yy="sentry-",dB=/^sentry-/,fB=8192;function Uk(e){const t=hB(e);if(!t)return;const n=Object.entries(t).reduce((r,[o,s])=>{if(o.match(dB)){const a=o.slice(Yy.length);r[a]=s}return r},{});if(Object.keys(n).length>0)return n}function pB(e){if(!e)return;const t=Object.entries(e).reduce((n,[r,o])=>(o&&(n[`${Yy}${r}`]=o),n),{});return mB(t)}function hB(e){if(!(!e||!zs(e)&&!Array.isArray(e)))return Array.isArray(e)?e.reduce((t,n)=>{const r=x6(n);return Object.entries(r).forEach(([o,s])=>{t[o]=s}),t},{}):x6(e)}function x6(e){return e.split(",").map(t=>{const n=t.indexOf("=");if(n===-1)return[];const r=t.slice(0,n),o=t.slice(n+1);return[r,o].map(s=>{try{return decodeURIComponent(s.trim())}catch{return}})}).reduce((t,[n,r])=>(n&&r&&(t[n]=r),t),{})}function mB(e){if(Object.keys(e).length!==0)return Object.entries(e).reduce((t,[n,r],o)=>{const s=`${encodeURIComponent(n)}=${encodeURIComponent(r)}`,a=o===0?s:`${t},${s}`;return a.length>fB?(Tt&&it.warn(`Not adding key: ${n} with val: ${r} to baggage header due to exceeding baggage size limits.`),t):a},"")}const vB=/^o(\d+)\./,gB=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;function _B(e){return e==="http"||e==="https"}function Ku(e,t=!1){const{host:n,path:r,pass:o,port:s,projectId:a,protocol:i,publicKey:l}=e;return`${i}://${l}${t&&o?`:${o}`:""}@${n}${s?`:${s}`:""}/${r&&`${r}/`}${a}`}function yB(e){const t=gB.exec(e);if(!t){la(()=>{console.error(`Invalid Sentry Dsn: ${e}`)});return}const[n,r,o="",s="",a="",i=""]=t.slice(1);let l="",u=i;const c=u.split("/");if(c.length>1&&(l=c.slice(0,-1).join("/"),u=c.pop()),u){const d=u.match(/^\d+/);d&&(u=d[0])}return Wk({host:s,pass:o,path:l,projectId:u,port:a,protocol:n,publicKey:r})}function Wk(e){return{protocol:e.protocol,publicKey:e.publicKey||"",pass:e.pass||"",host:e.host,port:e.port||"",path:e.path||"",projectId:e.projectId}}function bB(e){if(!Tt)return!0;const{port:t,projectId:n,protocol:r}=e;return["protocol","publicKey","host","projectId"].find(a=>e[a]?!1:(it.error(`Invalid Sentry Dsn: ${a} missing`),!0))?!1:n.match(/^\d+$/)?_B(r)?t&&isNaN(parseInt(t,10))?(it.error(`Invalid Sentry Dsn: Invalid port ${t}`),!1):!0:(it.error(`Invalid Sentry Dsn: Invalid protocol ${r}`),!1):(it.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),!1)}function wB(e){const t=e.match(vB);return t==null?void 0:t[1]}function SB(e){const t=e.getOptions(),{host:n}=e.getDsn()||{};let r;return t.orgId?r=String(t.orgId):n&&(r=wB(n)),r}function EB(e){const t=typeof e=="string"?yB(e):Wk(e);if(!(!t||!bB(t)))return t}function Xi(e){if(typeof e=="boolean")return Number(e);const t=typeof e=="string"?parseFloat(e):e;if(!(typeof t!="number"||isNaN(t)||t<0||t>1))return t}const qk=new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$");function CB(e){if(!e)return;const t=e.match(qk);if(!t)return;let n;return t[3]==="1"?n=!0:t[3]==="0"&&(n=!1),{traceId:t[1],parentSampled:n,parentSpanId:t[2]}}function kB(e,t){const n=CB(e),r=Uk(t);if(!(n!=null&&n.traceId))return{traceId:Xs(),sampleRand:Math.random()};const o=TB(n,r);r&&(r.sample_rand=o.toString());const{traceId:s,parentSpanId:a,parentSampled:i}=n;return{traceId:s,parentSpanId:a,sampled:i,dsc:r||{},sampleRand:o}}function Kk(e=Xs(),t=Hs(),n){let r="";return n!==void 0&&(r=n?"-1":"-0"),`${e}-${t}${r}`}function Gk(e=Xs(),t=Hs(),n){return`00-${e}-${t}-${n?"01":"00"}`}function TB(e,t){const n=Xi(t==null?void 0:t.sample_rand);if(n!==void 0)return n;const r=Xi(t==null?void 0:t.sample_rate);return r&&(e==null?void 0:e.parentSampled)!==void 0?e.parentSampled?Math.random()*r:r+Math.random()*(1-r):Math.random()}const Yk=0,Xy=1;let I6=!1;function $B(e){const{spanId:t,traceId:n}=e.spanContext(),{data:r,op:o,parent_span_id:s,status:a,origin:i,links:l}=Yt(e);return{parent_span_id:s,span_id:t,trace_id:n,data:r,op:o,status:a,origin:i,links:l}}function xB(e){const{spanId:t,traceId:n,isRemote:r}=e.spanContext(),o=r?t:Yt(e).parent_span_id,s=Mh(e).scope,a=r?(s==null?void 0:s.getPropagationContext().propagationSpanId)||Hs():t;return{parent_span_id:o,span_id:a,trace_id:n}}function IB(e){const{traceId:t,spanId:n}=e.spanContext(),r=ui(e);return Kk(t,n,r)}function AB(e){const{traceId:t,spanId:n}=e.spanContext(),r=ui(e);return Gk(t,n,r)}function Xk(e){if(e&&e.length>0)return e.map(({context:{spanId:t,traceId:n,traceFlags:r,...o},attributes:s})=>({span_id:t,trace_id:n,sampled:r===Xy,attributes:s,...o}))}function zi(e){return typeof e=="number"?A6(e):Array.isArray(e)?e[0]+e[1]/1e9:e instanceof Date?A6(e.getTime()):Pn()}function A6(e){return e>9999999999?e/1e3:e}function Yt(e){var r;if(OB(e))return e.getSpanJSON();const{spanId:t,traceId:n}=e.spanContext();if(MB(e)){const{attributes:o,startTime:s,name:a,endTime:i,status:l,links:u}=e,c="parentSpanId"in e?e.parentSpanId:"parentSpanContext"in e?(r=e.parentSpanContext)==null?void 0:r.spanId:void 0;return{span_id:t,trace_id:n,data:o,description:a,parent_span_id:c,start_timestamp:zi(s),timestamp:zi(i)||void 0,status:Jk(l),op:o[Js],origin:o[In],links:Xk(u)}}return{span_id:t,trace_id:n,start_timestamp:0,data:{}}}function MB(e){const t=e;return!!t.attributes&&!!t.startTime&&!!t.name&&!!t.endTime&&!!t.status}function OB(e){return typeof e.getSpanJSON=="function"}function ui(e){const{traceFlags:t}=e.spanContext();return t===Xy}function Jk(e){if(!(!e||e.code===aB))return e.code===Fk?"ok":e.message||"unknown_error"}const Fi="_sentryChildSpans",A2="_sentryRootSpan";function Qk(e,t){const n=e[A2]||e;ro(t,A2,n),e[Fi]?e[Fi].add(t):ro(e,Fi,new Set([t]))}function RB(e,t){e[Fi]&&e[Fi].delete(t)}function cp(e){const t=new Set;function n(r){if(!t.has(r)&&ui(r)){t.add(r);const o=r[Fi]?Array.from(r[Fi]):[];for(const s of o)n(s)}}return n(e),Array.from(t)}function nr(e){return e[A2]||e}function sr(){const e=al(),t=Wu(e);return t.getActiveSpan?t.getActiveSpan():Ah(ln())}function M2(){I6||(la(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.")}),I6=!0)}let M6=!1;function PB(){if(M6)return;function e(){const t=sr(),n=t&&nr(t);if(n){const r="internal_error";Tt&&it.log(`[Tracing] Root span: ${r} -> Global error occurred`),n.setStatus({code:Hn,message:r})}}e.tag="sentry_tracingErrorCallback",M6=!0,xk(e),Ik(e)}function ho(e){var n;if(typeof __SENTRY_TRACING__=="boolean"&&!__SENTRY_TRACING__)return!1;const t=e||((n=Jt())==null?void 0:n.getOptions());return!!t&&(t.tracesSampleRate!=null||!!t.tracesSampler)}function O6(e){it.log(`Ignoring span ${e.op} - ${e.description} because it matches \`ignoreSpans\`.`)}function Oh(e,t){if(!(t!=null&&t.length)||!e.description)return!1;for(const n of t){if(LB(n)){if(up(e.description,n))return Tt&&O6(e),!0;continue}if(!n.name&&!n.op)continue;const r=n.name?up(e.description,n.name):!0,o=n.op?e.op&&up(e.op,n.op):!0;if(r&&o)return Tt&&O6(e),!0}return!1}function NB(e,t){const n=t.parent_span_id,r=t.span_id;if(n)for(const o of e)o.parent_span_id===r&&(o.parent_span_id=n)}function LB(e){return typeof e=="string"||e instanceof RegExp}const Jy="production",Zk="_frozenDsc";function dp(e,t){ro(e,Zk,t)}function eT(e,t){const n=t.getOptions(),{publicKey:r}=t.getDsn()||{},o={environment:n.environment||Jy,release:n.release,public_key:r,trace_id:e,org_id:SB(t)};return t.emit("createDsc",o),o}function tT(e,t){const n=t.getPropagationContext();return n.dsc||eT(n.traceId,e)}function Qs(e){var m;const t=Jt();if(!t)return{};const n=nr(e),r=Yt(n),o=r.data,s=n.spanContext().traceState,a=(s==null?void 0:s.get("sentry.sample_rate"))??o[Ky]??o[zk];function i(v){return(typeof a=="number"||typeof a=="string")&&(v.sample_rate=`${a}`),v}const l=n[Zk];if(l)return i(l);const u=s==null?void 0:s.get("sentry.dsc"),c=u&&Uk(u);if(c)return i(c);const d=eT(e.spanContext().traceId,t),f=o[Nr],p=r.description;return f!=="url"&&p&&(d.transaction=p),ho()&&(d.sampled=String(ui(n)),d.sample_rand=(s==null?void 0:s.get("sentry.sample_rand"))??((m=Mh(n).scope)==null?void 0:m.getPropagationContext().sampleRand.toString())),i(d),t.emit("createDsc",d,n),d}class ei{constructor(t={}){this._traceId=t.traceId||Xs(),this._spanId=t.spanId||Hs()}spanContext(){return{spanId:this._spanId,traceId:this._traceId,traceFlags:Yk}}end(t){}setAttribute(t,n){return this}setAttributes(t){return this}setStatus(t){return this}updateName(t){return this}isRecording(){return!1}addEvent(t,n,r){return this}addLink(t){return this}addLinks(t){return this}recordException(t,n){}}function Io(e,t=100,n=1/0){try{return O2("",e,t,n)}catch(r){return{ERROR:`**non-serializable** (${r})`}}}function nT(e,t=3,n=100*1024){const r=Io(e,t);return FB(r)>n?nT(e,t-1,n):r}function O2(e,t,n=1/0,r=1/0,o=HB()){const[s,a]=o;if(t==null||["boolean","string"].includes(typeof t)||typeof t=="number"&&Number.isFinite(t))return t;const i=BB(e,t);if(!i.startsWith("[object "))return i;if(t.__sentry_skip_normalization__)return t;const l=typeof t.__sentry_override_normalization_depth__=="number"?t.__sentry_override_normalization_depth__:n;if(l===0)return i.replace("object ","");if(s(t))return"[Circular ~]";const u=t;if(u&&typeof u.toJSON=="function")try{const p=u.toJSON();return O2("",p,l-1,r,o)}catch{}const c=Array.isArray(t)?[]:{};let d=0;const f=Lk(t);for(const p in f){if(!Object.prototype.hasOwnProperty.call(f,p))continue;if(d>=r){c[p]="[MaxProperties ~]";break}const m=f[p];c[p]=O2(p,m,l-1,r,o),d++}return a(t),c}function BB(e,t){try{if(e==="domain"&&t&&typeof t=="object"&&t._events)return"[Domain]";if(e==="domainEmitter")return"[DomainEmitter]";if(typeof global<"u"&&t===global)return"[Global]";if(typeof window<"u"&&t===window)return"[Window]";if(typeof document<"u"&&t===document)return"[Document]";if(Ok(t))return"[VueViewModel]";if(zL(t))return"[SyntheticEvent]";if(typeof t=="number"&&!Number.isFinite(t))return`[${t}]`;if(typeof t=="function")return`[Function: ${Gs(t)}]`;if(typeof t=="symbol")return`[${String(t)}]`;if(typeof t=="bigint")return`[BigInt: ${String(t)}]`;const n=DB(t);return/^HTML(\w*)Element$/.test(n)?`[HTMLElement: ${n}]`:`[object ${n}]`}catch(n){return`**non-serializable** (${n})`}}function DB(e){const t=Object.getPrototypeOf(e);return t!=null&&t.constructor?t.constructor.name:"null prototype"}function zB(e){return~-encodeURI(e).split(/%..|./).length}function FB(e){return zB(JSON.stringify(e))}function HB(){const e=new WeakSet;function t(r){return e.has(r)?!0:(e.add(r),!1)}function n(r){e.delete(r)}return[t,n]}function ci(e,t=[]){return[e,t]}function VB(e,t){const[n,r]=e;return[n,[...r,t]]}function R6(e,t){const n=e[1];for(const r of n){const o=r[0].type;if(t(r,o))return!0}return!1}function R2(e){const t=M0(Xt);return t.encodePolyfill?t.encodePolyfill(e):new TextEncoder().encode(e)}function jB(e){const[t,n]=e;let r=JSON.stringify(t);function o(s){typeof r=="string"?r=typeof s=="string"?r+s:[R2(r),s]:r.push(typeof s=="string"?R2(s):s)}for(const s of n){const[a,i]=s;if(o(` +${JSON.stringify(a)} +`),typeof i=="string"||i instanceof Uint8Array)o(i);else{let l;try{l=JSON.stringify(i)}catch{l=JSON.stringify(Io(i))}o(l)}}return typeof r=="string"?r:UB(r)}function UB(e){const t=e.reduce((o,s)=>o+s.length,0),n=new Uint8Array(t);let r=0;for(const o of e)n.set(o,r),r+=o.length;return n}function WB(e){return[{type:"span"},e]}function qB(e){const t=typeof e.data=="string"?R2(e.data):e.data;return[{type:"attachment",length:t.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType},t]}const KB={session:"session",sessions:"session",attachment:"attachment",transaction:"transaction",event:"error",client_report:"internal",user_report:"default",profile:"profile",profile_chunk:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor",feedback:"feedback",span:"span",raw_security:"security",log:"log_item",metric:"metric",trace_metric:"metric"};function P6(e){return KB[e]}function Qy(e){if(!(e!=null&&e.sdk))return;const{name:t,version:n}=e.sdk;return{name:t,version:n}}function rT(e,t,n,r){var s;const o=(s=e.sdkProcessingMetadata)==null?void 0:s.dynamicSamplingContext;return{event_id:e.event_id,sent_at:new Date().toISOString(),...t&&{sdk:t},...!!n&&r&&{dsn:Ku(r)},...o&&{trace:o}}}function GB(e,t){var r,o,s,a;if(!t)return e;const n=e.sdk||{};return e.sdk={...n,name:n.name||t.name,version:n.version||t.version,integrations:[...((r=e.sdk)==null?void 0:r.integrations)||[],...t.integrations||[]],packages:[...((o=e.sdk)==null?void 0:o.packages)||[],...t.packages||[]],settings:(s=e.sdk)!=null&&s.settings||t.settings?{...(a=e.sdk)==null?void 0:a.settings,...t.settings}:void 0},e}function YB(e,t,n,r){const o=Qy(n),s={sent_at:new Date().toISOString(),...o&&{sdk:o},...!!r&&t&&{dsn:Ku(t)}},a="aggregates"in e?[{type:"sessions"},e]:[{type:"session"},e.toJSON()];return ci(s,[a])}function XB(e,t,n,r){const o=Qy(n),s=e.type&&e.type!=="replay_event"?e.type:"event";GB(e,n==null?void 0:n.sdk);const a=rT(e,o,r,t);return delete e.sdkProcessingMetadata,ci(a,[[{type:s},e]])}function JB(e,t){function n(p){return!!p.trace_id&&!!p.public_key}const r=Qs(e[0]),o=t==null?void 0:t.getDsn(),s=t==null?void 0:t.getOptions().tunnel,a={sent_at:new Date().toISOString(),...n(r)&&{trace:r},...!!s&&o&&{dsn:Ku(o)}},{beforeSendSpan:i,ignoreSpans:l}=(t==null?void 0:t.getOptions())||{},u=l!=null&&l.length?e.filter(p=>!Oh(Yt(p),l)):e,c=e.length-u.length;c&&(t==null||t.recordDroppedEvent("before_send","span",c));const d=i?p=>{const m=Yt(p),v=i(m);return v||(M2(),m)}:Yt,f=[];for(const p of u){const m=d(p);m&&f.push(WB(m))}return ci(a,f)}function QB(e){if(!Tt)return;const{description:t="< unknown name >",op:n="< unknown op >",parent_span_id:r}=Yt(e),{spanId:o}=e.spanContext(),s=ui(e),a=nr(e),i=a===e,l=`[Tracing] Starting ${s?"sampled":"unsampled"} ${i?"root ":""}span`,u=[`op: ${n}`,`name: ${t}`,`ID: ${o}`];if(r&&u.push(`parent ID: ${r}`),!i){const{op:c,description:d}=Yt(a);u.push(`root ID: ${a.spanContext().spanId}`),c&&u.push(`root op: ${c}`),d&&u.push(`root description: ${d}`)}it.log(`${l} + ${u.join(` + `)}`)}function ZB(e){if(!Tt)return;const{description:t="< unknown name >",op:n="< unknown op >"}=Yt(e),{spanId:r}=e.spanContext(),s=nr(e)===e,a=`[Tracing] Finishing "${n}" ${s?"root ":""}span "${t}" with ID ${r}`;it.log(a)}function eD(e,t,n,r=sr()){const o=r&&nr(r);o&&(Tt&&it.log(`[Measurement] Setting measurement on root span: ${e} = ${t} ${n}`),o.addEvent(e,{[Xd]:t,[Yd]:n}))}function N6(e){if(!e||e.length===0)return;const t={};return e.forEach(n=>{const r=n.attributes||{},o=r[Yd],s=r[Xd];typeof o=="string"&&typeof s=="number"&&(t[n.name]={value:s,unit:o})}),t}const L6=1e3;class P0{constructor(t={}){this._traceId=t.traceId||Xs(),this._spanId=t.spanId||Hs(),this._startTime=t.startTimestamp||Pn(),this._links=t.links,this._attributes={},this.setAttributes({[In]:"manual",[Js]:t.op,...t.attributes}),this._name=t.name,t.parentSpanId&&(this._parentSpanId=t.parentSpanId),"sampled"in t&&(this._sampled=t.sampled),t.endTimestamp&&(this._endTime=t.endTimestamp),this._events=[],this._isStandaloneSpan=t.isStandalone,this._endTime&&this._onSpanEnded()}addLink(t){return this._links?this._links.push(t):this._links=[t],this}addLinks(t){return this._links?this._links.push(...t):this._links=t,this}recordException(t,n){}spanContext(){const{_spanId:t,_traceId:n,_sampled:r}=this;return{spanId:t,traceId:n,traceFlags:r?Xy:Yk}}setAttribute(t,n){return n===void 0?delete this._attributes[t]:this._attributes[t]=n,this}setAttributes(t){return Object.keys(t).forEach(n=>this.setAttribute(n,t[n])),this}updateStartTime(t){this._startTime=zi(t)}setStatus(t){return this._status=t,this}updateName(t){return this._name=t,this.setAttribute(Nr,"custom"),this}end(t){this._endTime||(this._endTime=zi(t),ZB(this),this._onSpanEnded())}getSpanJSON(){return{data:this._attributes,description:this._name,op:this._attributes[Js],parent_span_id:this._parentSpanId,span_id:this._spanId,start_timestamp:this._startTime,status:Jk(this._status),timestamp:this._endTime,trace_id:this._traceId,origin:this._attributes[In],profile_id:this._attributes[Gy],exclusive_time:this._attributes[qu],measurements:N6(this._events),is_segment:this._isStandaloneSpan&&nr(this)===this||void 0,segment_id:this._isStandaloneSpan?nr(this).spanContext().spanId:void 0,links:Xk(this._links)}}isRecording(){return!this._endTime&&!!this._sampled}addEvent(t,n,r){Tt&&it.log("[Tracing] Adding an event to span:",t);const o=B6(n)?n:r||Pn(),s=B6(n)?{}:n||{},a={name:t,time:zi(o),attributes:s};return this._events.push(a),this}isStandaloneSpan(){return!!this._isStandaloneSpan}_onSpanEnded(){const t=Jt();if(t&&t.emit("spanEnd",this),!(this._isStandaloneSpan||this===nr(this)))return;if(this._isStandaloneSpan){this._sampled?nD(JB([this],t)):(Tt&&it.log("[Tracing] Discarding standalone span because its trace was not chosen to be sampled."),t&&t.recordDroppedEvent("sample_rate","span"));return}const r=this._convertSpanToTransaction();r&&(Mh(this).scope||ln()).captureEvent(r)}_convertSpanToTransaction(){var c;if(!D6(Yt(this)))return;this._name||(Tt&&it.warn("Transaction has no name, falling back to ``."),this._name="");const{scope:t,isolationScope:n}=Mh(this),r=(c=t==null?void 0:t.getScopeData().sdkProcessingMetadata)==null?void 0:c.normalizedRequest;if(this._sampled!==!0)return;const s=cp(this).filter(d=>d!==this&&!tD(d)).map(d=>Yt(d)).filter(D6),a=this._attributes[Nr];delete this._attributes[$6],s.forEach(d=>{delete d.data[$6]});const i={contexts:{trace:$B(this)},spans:s.length>L6?s.sort((d,f)=>d.start_timestamp-f.start_timestamp).slice(0,L6):s,start_timestamp:this._startTime,timestamp:this._endTime,transaction:this._name,type:"transaction",sdkProcessingMetadata:{capturedSpanScope:t,capturedSpanIsolationScope:n,dynamicSamplingContext:Qs(this)},request:r,...a&&{transaction_info:{source:a}}},l=N6(this._events);return l&&Object.keys(l).length&&(Tt&&it.log("[Measurements] Adding measurements to transaction event",JSON.stringify(l,void 0,2)),i.measurements=l),i}}function B6(e){return e&&typeof e=="number"||e instanceof Date||Array.isArray(e)}function D6(e){return!!e.start_timestamp&&!!e.timestamp&&!!e.span_id&&!!e.trace_id}function tD(e){return e instanceof P0&&e.isStandaloneSpan()}function nD(e){const t=Jt();if(!t)return;const n=e[1];if(!n||n.length===0){t.recordDroppedEvent("before_send","span");return}t.sendEnvelope(e)}function rD(e,t,n=()=>{},r=()=>{}){let o;try{o=e()}catch(s){throw t(s),n(),s}return oD(o,t,n,r)}function oD(e,t,n,r){return ju(e)?e.then(o=>(n(),r(o),o),o=>{throw t(o),n(),o}):(n(),r(e),e)}function sD(e,t,n){if(!ho(e))return[!1];let r,o;typeof e.tracesSampler=="function"?(o=e.tracesSampler({...t,inheritOrSampleWith:i=>typeof t.parentSampleRate=="number"?t.parentSampleRate:typeof t.parentSampled=="boolean"?Number(t.parentSampled):i}),r=!0):t.parentSampled!==void 0?o=t.parentSampled:typeof e.tracesSampleRate<"u"&&(o=e.tracesSampleRate,r=!0);const s=Xi(o);if(s===void 0)return Tt&&it.warn(`[Tracing] Discarding root span because of invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(o)} of type ${JSON.stringify(typeof o)}.`),[!1];if(!s)return Tt&&it.log(`[Tracing] Discarding transaction because ${typeof e.tracesSampler=="function"?"tracesSampler returned 0 or false":"a negative sampling decision was inherited or tracesSampleRate is set to 0"}`),[!1,s,r];const a=nlD(s)(()=>{const u=ln(),c=iT(u,s),f=e.onlyIfParent&&!c?new ei:sT({parentSpan:c,spanArguments:r,forceTransaction:o,scope:u});return fu(u,f),rD(()=>t(f),()=>{const{status:p}=Yt(f);f.isRecording()&&(!p||p==="ok")&&f.setStatus({code:Hn,message:"internal_error"})},()=>{f.end()})}))}function ti(e){const t=e4();if(t.startInactiveSpan)return t.startInactiveSpan(e);const n=aT(e),{forceTransaction:r,parentSpan:o}=e;return(e.scope?a=>R0(e.scope,a):o!==void 0?a=>Zy(o,a):a=>a())(()=>{const a=ln(),i=iT(a,o);return e.onlyIfParent&&!i?new ei:sT({parentSpan:i,spanArguments:n,forceTransaction:r,scope:a})})}function Zy(e,t){const n=e4();return n.withActiveSpan?n.withActiveSpan(e,t):R0(r=>(fu(r,e||void 0),t(r)))}function sT({parentSpan:e,spanArguments:t,forceTransaction:n,scope:r}){if(!ho()){const a=new ei;if(n||!e){const i={sampled:"false",sample_rate:"0",transaction:t.name,...Qs(a)};dp(a,i)}return a}const o=ms();let s;if(e&&!n)s=iD(e,r,t),Qk(e,s);else if(e){const a=Qs(e),{traceId:i,spanId:l}=e.spanContext(),u=ui(e);s=z6({traceId:i,parentSpanId:l,...t},r,u),dp(s,a)}else{const{traceId:a,dsc:i,parentSpanId:l,sampled:u}={...o.getPropagationContext(),...r.getPropagationContext()};s=z6({traceId:a,parentSpanId:l,...t},r,u),i&&dp(s,i)}return QB(s),cB(s,r,o),s}function aT(e){const n={isStandalone:(e.experimental||{}).standalone,...e};if(e.startTime){const r={...n};return r.startTimestamp=zi(e.startTime),delete r.startTime,r}return n}function e4(){const e=al();return Wu(e)}function z6(e,t,n){var m;const r=Jt(),o=(r==null?void 0:r.getOptions())||{},{name:s=""}=e,a={spanAttributes:{...e.attributes},spanName:s,parentSampled:n};r==null||r.emit("beforeSampling",a,{decision:!1});const i=a.parentSampled??n,l=a.spanAttributes,u=t.getPropagationContext(),[c,d,f]=t.getScopeData().sdkProcessingMetadata[oT]?[!1]:sD(o,{name:s,parentSampled:i,attributes:l,parentSampleRate:Xi((m=u.dsc)==null?void 0:m.sample_rate)},u.sampleRand),p=new P0({...e,attributes:{[Nr]:"custom",[Ky]:d!==void 0&&f?d:void 0,...l},sampled:c});return!c&&r&&(Tt&&it.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),r.recordDroppedEvent("sample_rate","transaction")),r&&r.emit("spanStart",p),p}function iD(e,t,n){const{spanId:r,traceId:o}=e.spanContext(),s=t.getScopeData().sdkProcessingMetadata[oT]?!1:ui(e),a=s?new P0({...n,parentSpanId:r,traceId:o,sampled:s}):new ei({traceId:o});Qk(e,a);const i=Jt();return i&&(i.emit("spanStart",a),n.endTimestamp&&i.emit("spanEnd",a)),a}function iT(e,t){if(t)return t;if(t===null)return;const n=Ah(e);if(!n)return;const r=Jt();return(r?r.getOptions():{}).parentSpanIsAlwaysRootSpan?nr(n):n}function lD(e){return e!==void 0?t=>Zy(e,t):t=>t()}const fp={idleTimeout:1e3,finalTimeout:3e4,childSpanTimeout:15e3},uD="heartbeatFailed",cD="idleTimeout",dD="finalTimeout",fD="externalFinish";function lT(e,t={}){const n=new Map;let r=!1,o,s=fD,a=!t.disableAutoFinish;const i=[],{idleTimeout:l=fp.idleTimeout,finalTimeout:u=fp.finalTimeout,childSpanTimeout:c=fp.childSpanTimeout,beforeSpanEnd:d,trimIdleSpanEndTimestamp:f=!0}=t,p=Jt();if(!p||!ho()){const T=new ei,C={sample_rate:"0",sampled:"false",...Qs(T)};return dp(T,C),T}const m=ln(),v=sr(),g=pD(e);g.end=new Proxy(g.end,{apply(T,C,$){if(d&&d(g),C instanceof ei)return;const[x,...N]=$,I=x||Pn(),L=zi(I),F=cp(g).filter(q=>q!==g),B=Yt(g);if(!F.length||!f)return E(L),Reflect.apply(T,C,[L,...N]);const U=p.getOptions().ignoreSpans,P=F==null?void 0:F.reduce((q,te)=>{const V=Yt(te);return!V.timestamp||U&&Oh(V,U)?q:q?Math.max(q,V.timestamp):V.timestamp},void 0),O=B.start_timestamp,H=Math.min(O?O+u/1e3:1/0,Math.max(O||-1/0,Math.min(L,P||1/0)));return E(H),Reflect.apply(T,C,[H,...N])}});function b(){o&&(clearTimeout(o),o=void 0)}function _(T){b(),o=setTimeout(()=>{!r&&n.size===0&&a&&(s=cD,g.end(T))},l)}function y(T){o=setTimeout(()=>{!r&&a&&(s=uD,g.end(T))},c)}function S(T){b(),n.set(T,!0);const C=Pn();y(C+c/1e3)}function w(T){if(n.has(T)&&n.delete(T),n.size===0){const C=Pn();_(C+l/1e3)}}function E(T){r=!0,n.clear(),i.forEach(L=>L()),fu(m,v);const C=Yt(g),{start_timestamp:$}=C;if(!$)return;C.data[pd]||g.setAttribute(pd,s),it.log(`[Tracing] Idle span "${C.op}" finished`);const N=cp(g).filter(L=>L!==g);let I=0;N.forEach(L=>{L.isRecording()&&(L.setStatus({code:Hn,message:"cancelled"}),L.end(T),Tt&&it.log("[Tracing] Cancelling span since span ended early",JSON.stringify(L,void 0,2)));const F=Yt(L),{timestamp:B=0,start_timestamp:U=0}=F,P=U<=T,O=(u+l)/1e3,H=B-U<=O;if(Tt){const q=JSON.stringify(L,void 0,2);P?H||it.log("[Tracing] Discarding span since it finished after idle span final timeout",q):it.log("[Tracing] Discarding span since it happened after idle span was finished",q)}(!H||!P)&&(RB(g,L),I++)}),I>0&&g.setAttribute("sentry.idle_span_discarded_spans",I)}return i.push(p.on("spanStart",T=>{if(r||T===g||Yt(T).timestamp||T instanceof P0&&T.isStandaloneSpan())return;cp(g).includes(T)&&S(T.spanContext().spanId)})),i.push(p.on("spanEnd",T=>{r||w(T.spanContext().spanId)})),i.push(p.on("idleSpanEnableAutoFinish",T=>{T===g&&(a=!0,_(),n.size&&y())})),t.disableAutoFinish||_(),setTimeout(()=>{r||(g.setStatus({code:Hn,message:"deadline_exceeded"}),s=dD,g.end())},u),g}function pD(e){const t=ti(e);return fu(ln(),t),Tt&&it.log("[Tracing] Started span is an idle span"),t}const Xm=0,F6=1,H6=2;function N0(e){return new hd(t=>{t(e)})}function t4(e){return new hd((t,n)=>{n(e)})}class hd{constructor(t){this._state=Xm,this._handlers=[],this._runExecutor(t)}then(t,n){return new hd((r,o)=>{this._handlers.push([!1,s=>{if(!t)r(s);else try{r(t(s))}catch(a){o(a)}},s=>{if(!n)o(s);else try{r(n(s))}catch(a){o(a)}}]),this._executeHandlers()})}catch(t){return this.then(n=>n,t)}finally(t){return new hd((n,r)=>{let o,s;return this.then(a=>{s=!1,o=a,t&&t()},a=>{s=!0,o=a,t&&t()}).then(()=>{if(s){r(o);return}n(o)})})}_executeHandlers(){if(this._state===Xm)return;const t=this._handlers.slice();this._handlers=[],t.forEach(n=>{n[0]||(this._state===F6&&n[1](this._value),this._state===H6&&n[2](this._value),n[0]=!0)})}_runExecutor(t){const n=(s,a)=>{if(this._state===Xm){if(ju(a)){a.then(r,o);return}this._state=s,this._value=a,this._executeHandlers()}},r=s=>{n(F6,s)},o=s=>{n(H6,s)};try{t(r,o)}catch(s){o(s)}}}function hD(e,t,n,r=0){try{const o=P2(t,n,e,r);return ju(o)?o:N0(o)}catch(o){return t4(o)}}function P2(e,t,n,r){const o=n[r];if(!e||!o)return e;const s=o({...e},t);return Tt&&s===null&&it.log(`Event processor "${o.id||"?"}" dropped event`),ju(s)?s.then(a=>P2(a,t,n,r+1)):P2(s,t,n,r+1)}function mD(e,t){const{fingerprint:n,span:r,breadcrumbs:o,sdkProcessingMetadata:s}=t;vD(e,t),r&&yD(e,r),bD(e,n),gD(e,o),_D(e,s)}function V6(e,t){const{extra:n,tags:r,user:o,contexts:s,level:a,sdkProcessingMetadata:i,breadcrumbs:l,fingerprint:u,eventProcessors:c,attachments:d,propagationContext:f,transactionName:p,span:m}=t;Af(e,"extra",n),Af(e,"tags",r),Af(e,"user",o),Af(e,"contexts",s),e.sdkProcessingMetadata=Gd(e.sdkProcessingMetadata,i,2),a&&(e.level=a),p&&(e.transactionName=p),m&&(e.span=m),l.length&&(e.breadcrumbs=[...e.breadcrumbs,...l]),u.length&&(e.fingerprint=[...e.fingerprint,...u]),c.length&&(e.eventProcessors=[...e.eventProcessors,...c]),d.length&&(e.attachments=[...e.attachments,...d]),e.propagationContext={...e.propagationContext,...f}}function Af(e,t,n){e[t]=Gd(e[t],n,1)}function vD(e,t){const{extra:n,tags:r,user:o,contexts:s,level:a,transactionName:i}=t;Object.keys(n).length&&(e.extra={...n,...e.extra}),Object.keys(r).length&&(e.tags={...r,...e.tags}),Object.keys(o).length&&(e.user={...o,...e.user}),Object.keys(s).length&&(e.contexts={...s,...e.contexts}),a&&(e.level=a),i&&e.type!=="transaction"&&(e.transaction=i)}function gD(e,t){const n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}function _D(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}function yD(e,t){e.contexts={trace:xB(t),...e.contexts},e.sdkProcessingMetadata={dynamicSamplingContext:Qs(t),...e.sdkProcessingMetadata};const n=nr(t),r=Yt(n).description;r&&!e.transaction&&e.type==="transaction"&&(e.transaction=r)}function bD(e,t){e.fingerprint=e.fingerprint?Array.isArray(e.fingerprint)?e.fingerprint:[e.fingerprint]:[],t&&(e.fingerprint=e.fingerprint.concat(t)),e.fingerprint.length||delete e.fingerprint}let ys,j6,U6,ka;function wD(e){const t=Xt._sentryDebugIds,n=Xt._debugIds;if(!t&&!n)return{};const r=t?Object.keys(t):[],o=n?Object.keys(n):[];if(ka&&r.length===j6&&o.length===U6)return ka;j6=r.length,U6=o.length,ka={},ys||(ys={});const s=(a,i)=>{for(const l of a){const u=i[l],c=ys==null?void 0:ys[l];if(c&&ka&&u)ka[c[0]]=u,ys&&(ys[l]=[c[0],u]);else if(u){const d=e(l);for(let f=d.length-1;f>=0;f--){const p=d[f],m=p==null?void 0:p.filename;if(m&&ka&&ys){ka[m]=u,ys[l]=[m,u];break}}}}};return t&&s(r,t),n&&s(o,n),ka}function uT(e,t,n,r,o,s){const{normalizeDepth:a=3,normalizeMaxBreadth:i=1e3}=e,l={...t,event_id:t.event_id||n.event_id||eo(),timestamp:t.timestamp||il()},u=n.integrations||e.integrations.map(g=>g.name);SD(l,e),kD(l,u),o&&o.emit("applyFrameMetadata",t),t.type===void 0&&ED(l,e.stackParser);const c=$D(r,n.captureContext);n.mechanism&&cu(l,n.mechanism);const d=o?o.getEventProcessors():[],f=rB().getScopeData();if(s){const g=s.getScopeData();V6(f,g)}if(c){const g=c.getScopeData();V6(f,g)}const p=[...n.attachments||[],...f.attachments];p.length&&(n.attachments=p),mD(l,f);const m=[...d,...f.eventProcessors];return hD(m,l,n).then(g=>(g&&CD(g),typeof a=="number"&&a>0?TD(g,a,i):g))}function SD(e,t){const{environment:n,release:r,dist:o,maxValueLength:s=250}=t;e.environment=e.environment||n||Jy,!e.release&&r&&(e.release=r),!e.dist&&o&&(e.dist=o);const a=e.request;a!=null&&a.url&&(a.url=Ih(a.url,s))}function ED(e,t){var r,o;const n=wD(t);(o=(r=e.exception)==null?void 0:r.values)==null||o.forEach(s=>{var a,i;(i=(a=s.stacktrace)==null?void 0:a.frames)==null||i.forEach(l=>{l.filename&&(l.debug_id=n[l.filename])})})}function CD(e){var r,o;const t={};if((o=(r=e.exception)==null?void 0:r.values)==null||o.forEach(s=>{var a,i;(i=(a=s.stacktrace)==null?void 0:a.frames)==null||i.forEach(l=>{l.debug_id&&(l.abs_path?t[l.abs_path]=l.debug_id:l.filename&&(t[l.filename]=l.debug_id),delete l.debug_id)})}),Object.keys(t).length===0)return;e.debug_meta=e.debug_meta||{},e.debug_meta.images=e.debug_meta.images||[];const n=e.debug_meta.images;Object.entries(t).forEach(([s,a])=>{n.push({type:"sourcemap",code_file:s,debug_id:a})})}function kD(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}function TD(e,t,n){var o,s;if(!e)return null;const r={...e,...e.breadcrumbs&&{breadcrumbs:e.breadcrumbs.map(a=>({...a,...a.data&&{data:Io(a.data,t,n)}}))},...e.user&&{user:Io(e.user,t,n)},...e.contexts&&{contexts:Io(e.contexts,t,n)},...e.extra&&{extra:Io(e.extra,t,n)}};return(o=e.contexts)!=null&&o.trace&&r.contexts&&(r.contexts.trace=e.contexts.trace,e.contexts.trace.data&&(r.contexts.trace.data=Io(e.contexts.trace.data,t,n))),e.spans&&(r.spans=e.spans.map(a=>({...a,...a.data&&{data:Io(a.data,t,n)}}))),(s=e.contexts)!=null&&s.flags&&r.contexts&&(r.contexts.flags=Io(e.contexts.flags,3,n)),r}function $D(e,t){if(!t)return e;const n=e?e.clone():new ds;return n.update(t),n}function xD(e){if(e)return ID(e)?{captureContext:e}:MD(e)?{captureContext:e}:e}function ID(e){return e instanceof ds||typeof e=="function"}const AD=["user","level","extra","contexts","tags","fingerprint","propagationContext"];function MD(e){return Object.keys(e).some(t=>AD.includes(t))}function L0(e,t){return ln().captureException(e,xD(t))}function cT(e,t){return ln().captureEvent(e,t)}function OD(e,t){ms().setContext(e,t)}function RD(){const e=Jt();return(e==null?void 0:e.getOptions().enabled)!==!1&&!!(e!=null&&e.getTransport())}function PD(e){ms().addEventProcessor(e)}function W6(e){const t=ms(),n=ln(),{userAgent:r}=Xt.navigator||{},o=KL({user:n.getUser()||t.getUser(),...r&&{userAgent:r},...e}),s=t.getSession();return(s==null?void 0:s.status)==="ok"&&du(s,{status:"exited"}),dT(),t.setSession(o),o}function dT(){const e=ms(),n=ln().getSession()||e.getSession();n&&GL(n),fT(),e.setSession()}function fT(){const e=ms(),t=Jt(),n=e.getSession();n&&t&&t.captureSession(n)}function q6(e=!1){if(e){dT();return}fT()}const ND="7";function LD(e){const t=e.protocol?`${e.protocol}:`:"",n=e.port?`:${e.port}`:"";return`${t}//${e.host}${n}${e.path?`/${e.path}`:""}/api/`}function BD(e){return`${LD(e)}${e.projectId}/envelope/`}function DD(e,t){const n={sentry_version:ND};return e.publicKey&&(n.sentry_key=e.publicKey),t&&(n.sentry_client=`${t.name}/${t.version}`),new URLSearchParams(n).toString()}function zD(e,t,n){return t||`${BD(e)}?${DD(e,n)}`}const K6=[];function FD(e){const t={};return e.forEach(n=>{const{name:r}=n,o=t[r];o&&!o.isDefaultInstance&&n.isDefaultInstance||(t[r]=n)}),Object.values(t)}function HD(e){const t=e.defaultIntegrations||[],n=e.integrations;t.forEach(o=>{o.isDefaultInstance=!0});let r;if(Array.isArray(n))r=[...t,...n];else if(typeof n=="function"){const o=n(t);r=Array.isArray(o)?o:[o]}else r=t;return FD(r)}function VD(e,t){const n={};return t.forEach(r=>{r&&pT(e,r,n)}),n}function G6(e,t){for(const n of t)n!=null&&n.afterAllSetup&&n.afterAllSetup(e)}function pT(e,t,n){if(n[t.name]){Tt&&it.log(`Integration skipped because it was already installed: ${t.name}`);return}if(n[t.name]=t,K6.indexOf(t.name)===-1&&typeof t.setupOnce=="function"&&(t.setupOnce(),K6.push(t.name)),t.setup&&typeof t.setup=="function"&&t.setup(e),typeof t.preprocessEvent=="function"){const r=t.preprocessEvent.bind(t);e.on("preprocessEvent",(o,s)=>r(o,s,e))}if(typeof t.processEvent=="function"){const r=t.processEvent.bind(t),o=Object.assign((s,a)=>r(s,a,e),{id:t.name});e.addEventProcessor(o)}Tt&&it.log(`Integration installed: ${t.name}`)}function jD(e){return[{type:"log",item_count:e.length,content_type:"application/vnd.sentry.items.log+json"},{items:e}]}function UD(e,t,n,r){const o={};return t!=null&&t.sdk&&(o.sdk={name:t.sdk.name,version:t.sdk.version}),n&&r&&(o.dsn=Ku(r)),ci(o,[jD(e)])}function hT(e,t){const n=t??WD(e)??[];if(n.length===0)return;const r=e.getOptions(),o=UD(n,r._metadata,r.tunnel,e.getDsn());mT().set(e,[]),e.emit("flushLogs"),e.sendEnvelope(o)}function WD(e){return mT().get(e)}function mT(){return Hu("clientToLogBufferMap",()=>new WeakMap)}function qD(e){return[{type:"trace_metric",item_count:e.length,content_type:"application/vnd.sentry.items.trace-metric+json"},{items:e}]}function KD(e,t,n,r){const o={};return t!=null&&t.sdk&&(o.sdk={name:t.sdk.name,version:t.sdk.version}),n&&r&&(o.dsn=Ku(r)),ci(o,[qD(e)])}function vT(e,t){const n=t??GD(e)??[];if(n.length===0)return;const r=e.getOptions(),o=KD(n,r._metadata,r.tunnel,e.getDsn());gT().set(e,[]),e.emit("flushMetrics"),e.sendEnvelope(o)}function GD(e){return gT().get(e)}function gT(){return Hu("clientToMetricBufferMap",()=>new WeakMap)}function YD(e,t,n){const r=[{type:"client_report"},{timestamp:il(),discarded_events:e}];return ci(t?{dsn:t}:{},[r])}function _T(e){const t=[];e.message&&t.push(e.message);try{const n=e.exception.values[e.exception.values.length-1];n!=null&&n.value&&(t.push(n.value),n.type&&t.push(`${n.type}: ${n.value}`))}catch{}return t}function XD(e){var l;const{trace_id:t,parent_span_id:n,span_id:r,status:o,origin:s,data:a,op:i}=((l=e.contexts)==null?void 0:l.trace)??{};return{data:a??{},description:e.transaction,op:i,parent_span_id:n,span_id:r??"",start_timestamp:e.start_timestamp??0,status:o,timestamp:e.timestamp,trace_id:t??"",origin:s,profile_id:a==null?void 0:a[Gy],exclusive_time:a==null?void 0:a[qu],measurements:e.measurements,is_segment:!0}}function JD(e){return{type:"transaction",timestamp:e.timestamp,start_timestamp:e.start_timestamp,transaction:e.description,contexts:{trace:{trace_id:e.trace_id,span_id:e.span_id,parent_span_id:e.parent_span_id,op:e.op,status:e.status,origin:e.origin,data:{...e.data,...e.profile_id&&{[Gy]:e.profile_id},...e.exclusive_time&&{[qu]:e.exclusive_time}}}},measurements:e.measurements}}const Y6="Not capturing exception because it's already been captured.",X6="Discarded session because of missing or non-string release",yT=Symbol.for("SentryInternalError"),bT=Symbol.for("SentryDoNotSendEventError"),QD=5e3;function pp(e){return{message:e,[yT]:!0}}function Jm(e){return{message:e,[bT]:!0}}function J6(e){return!!e&&typeof e=="object"&&yT in e}function Q6(e){return!!e&&typeof e=="object"&&bT in e}function Z6(e,t,n,r,o){let s=0,a;e.on(n,()=>{s=0,clearTimeout(a)}),e.on(t,i=>{s+=r(i),s>=8e5?o(e):(clearTimeout(a),a=setTimeout(()=>{o(e)},QD))}),e.on("flush",()=>{o(e)})}class ZD{constructor(t){var n;if(this._options=t,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],t.dsn?this._dsn=EB(t.dsn):Tt&&it.warn("No DSN provided, client will not send events."),this._dsn){const r=zD(this._dsn,t.tunnel,t._metadata?t._metadata.sdk:void 0);this._transport=t.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...t.transportOptions,url:r})}this._options.enableLogs&&Z6(this,"afterCaptureLog","flushLogs",rz,hT),(n=this._options._experiments)!=null&&n.enableMetrics&&Z6(this,"afterCaptureMetric","flushMetrics",nz,vT)}captureException(t,n,r){const o=eo();if(C6(t))return Tt&&it.log(Y6),o;const s={event_id:o,...n};return this._process(this.eventFromException(t,s).then(a=>this._captureEvent(a,s,r))),s.event_id}captureMessage(t,n,r,o){const s={event_id:eo(),...r},a=Uy(t)?t:String(t),i=uu(t)?this.eventFromMessage(a,n,s):this.eventFromException(t,s);return this._process(i.then(l=>this._captureEvent(l,s,o))),s.event_id}captureEvent(t,n,r){const o=eo();if(n!=null&&n.originalException&&C6(n.originalException))return Tt&&it.log(Y6),o;const s={event_id:o,...n},a=t.sdkProcessingMetadata||{},i=a.capturedSpanScope,l=a.capturedSpanIsolationScope;return this._process(this._captureEvent(t,s,i||r,l)),s.event_id}captureSession(t){this.sendSession(t),du(t,{init:!1})}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}async flush(t){const n=this._transport;if(!n)return!0;this.emit("flush");const r=await this._isClientDoneProcessing(t),o=await n.flush(t);return r&&o}async close(t){const n=await this.flush(t);return this.getOptions().enabled=!1,this.emit("close"),n}getEventProcessors(){return this._eventProcessors}addEventProcessor(t){this._eventProcessors.push(t)}init(){(this._isEnabled()||this._options.integrations.some(({name:t})=>t.startsWith("Spotlight")))&&this._setupIntegrations()}getIntegrationByName(t){return this._integrations[t]}addIntegration(t){const n=this._integrations[t.name];pT(this,t,this._integrations),n||G6(this,[t])}sendEvent(t,n={}){this.emit("beforeSendEvent",t,n);let r=XB(t,this._dsn,this._options._metadata,this._options.tunnel);for(const o of n.attachments||[])r=VB(r,qB(o));this.sendEnvelope(r).then(o=>this.emit("afterSendEvent",t,o))}sendSession(t){const{release:n,environment:r=Jy}=this._options;if("aggregates"in t){const s=t.attrs||{};if(!s.release&&!n){Tt&&it.warn(X6);return}s.release=s.release||n,s.environment=s.environment||r,t.attrs=s}else{if(!t.release&&!n){Tt&&it.warn(X6);return}t.release=t.release||n,t.environment=t.environment||r}this.emit("beforeSendSession",t);const o=YB(t,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(o)}recordDroppedEvent(t,n,r=1){if(this._options.sendClientReports){const o=`${t}:${n}`;Tt&&it.log(`Recording outcome: "${o}"${r>1?` (${r} times)`:""}`),this._outcomes[o]=(this._outcomes[o]||0)+r}}on(t,n){const r=this._hooks[t]=this._hooks[t]||new Set,o=(...s)=>n(...s);return r.add(o),()=>{r.delete(o)}}emit(t,...n){const r=this._hooks[t];r&&r.forEach(o=>o(...n))}async sendEnvelope(t){if(this.emit("beforeEnvelope",t),this._isEnabled()&&this._transport)try{return await this._transport.send(t)}catch(n){return Tt&&it.error("Error while sending envelope:",n),{}}return Tt&&it.error("Transport disabled"),{}}_setupIntegrations(){const{integrations:t}=this._options;this._integrations=VD(this,t),G6(this,t)}_updateSessionFromEvent(t,n){var l;let r=n.level==="fatal",o=!1;const s=(l=n.exception)==null?void 0:l.values;if(s){o=!0;for(const u of s){const c=u.mechanism;if((c==null?void 0:c.handled)===!1){r=!0;break}}}const a=t.status==="ok";(a&&t.errors===0||a&&r)&&(du(t,{...r&&{status:"crashed"},errors:t.errors||Number(o||r)}),this.captureSession(t))}async _isClientDoneProcessing(t){let n=0;for(;!t||nsetTimeout(r,1)),!this._numProcessing)return!0;n++}return!1}_isEnabled(){return this.getOptions().enabled!==!1&&this._transport!==void 0}_prepareEvent(t,n,r,o){const s=this.getOptions(),a=Object.keys(this._integrations);return!n.integrations&&(a!=null&&a.length)&&(n.integrations=a),this.emit("preprocessEvent",t,n),t.type||o.setLastEventId(t.event_id||n.event_id),uT(s,t,n,r,this,o).then(i=>{if(i===null)return i;this.emit("postprocessEvent",i,n),i.contexts={trace:oB(r),...i.contexts};const l=tT(this,r);return i.sdkProcessingMetadata={dynamicSamplingContext:l,...i.sdkProcessingMetadata},i})}_captureEvent(t,n={},r=ln(),o=ms()){return Tt&&N2(t)&&it.log(`Captured error event \`${_T(t)[0]||""}\``),this._processEvent(t,n,r,o).then(s=>s.event_id,s=>{Tt&&(Q6(s)?it.log(s.message):J6(s)?it.warn(s.message):it.warn(s))})}_processEvent(t,n,r,o){const s=this.getOptions(),{sampleRate:a}=s,i=wT(t),l=N2(t),u=t.type||"error",c=`before send for type \`${u}\``,d=typeof a>"u"?void 0:Xi(a);if(l&&typeof d=="number"&&Math.random()>d)return this.recordDroppedEvent("sample_rate","error"),t4(Jm(`Discarding event because it's not included in the random sample (sampling rate = ${a})`));const f=u==="replay_event"?"replay":u;return this._prepareEvent(t,n,r,o).then(p=>{if(p===null)throw this.recordDroppedEvent("event_processor",f),Jm("An event processor returned `null`, will not send event.");if(n.data&&n.data.__sentry__===!0)return p;const v=tz(this,s,p,n);return ez(v,c)}).then(p=>{var g;if(p===null){if(this.recordDroppedEvent("before_send",f),i){const _=1+(t.spans||[]).length;this.recordDroppedEvent("before_send","span",_)}throw Jm(`${c} returned \`null\`, will not send event.`)}const m=r.getSession()||o.getSession();if(l&&m&&this._updateSessionFromEvent(m,p),i){const b=((g=p.sdkProcessingMetadata)==null?void 0:g.spanCountBeforeProcessing)||0,_=p.spans?p.spans.length:0,y=b-_;y>0&&this.recordDroppedEvent("before_send","span",y)}const v=p.transaction_info;if(i&&v&&p.transaction!==t.transaction){const b="custom";p.transaction_info={...v,source:b}}return this.sendEvent(p,n),p}).then(null,p=>{throw Q6(p)||J6(p)?p:(this.captureException(p,{mechanism:{handled:!1,type:"internal"},data:{__sentry__:!0},originalException:p}),pp(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event. +Reason: ${p}`))})}_process(t){this._numProcessing++,t.then(n=>(this._numProcessing--,n),n=>(this._numProcessing--,n))}_clearOutcomes(){const t=this._outcomes;return this._outcomes={},Object.entries(t).map(([n,r])=>{const[o,s]=n.split(":");return{reason:o,category:s,quantity:r}})}_flushOutcomes(){Tt&&it.log("Flushing outcomes...");const t=this._clearOutcomes();if(t.length===0){Tt&&it.log("No outcomes to send");return}if(!this._dsn){Tt&&it.log("No dsn provided, will not send outcomes");return}Tt&&it.log("Sending outcomes:",t);const n=YD(t,this._options.tunnel&&Ku(this._dsn));this.sendEnvelope(n)}}function ez(e,t){const n=`${t} must return \`null\` or a valid event.`;if(ju(e))return e.then(r=>{if(!fd(r)&&r!==null)throw pp(n);return r},r=>{throw pp(`${t} rejected with ${r}`)});if(!fd(e)&&e!==null)throw pp(n);return e}function tz(e,t,n,r){const{beforeSend:o,beforeSendTransaction:s,beforeSendSpan:a,ignoreSpans:i}=t;let l=n;if(N2(l)&&o)return o(l,r);if(wT(l)){if(a||i){const u=XD(l);if(i!=null&&i.length&&Oh(u,i))return null;if(a){const c=a(u);c?l=Gd(n,JD(c)):M2()}if(l.spans){const c=[],d=l.spans;for(const p of d){if(i!=null&&i.length&&Oh(p,i)){NB(d,p);continue}if(a){const m=a(p);m?c.push(m):(M2(),c.push(p))}else c.push(p)}const f=l.spans.length-c.length;f&&e.recordDroppedEvent("before_send","span",f),l.spans=c}}if(s){if(l.spans){const u=l.spans.length;l.sdkProcessingMetadata={...n.sdkProcessingMetadata,spanCountBeforeProcessing:u}}return s(l,r)}}return l}function N2(e){return e.type===void 0}function wT(e){return e.type==="transaction"}function nz(e){let t=0;return e.name&&(t+=e.name.length*2),typeof e.value=="string"?t+=e.value.length*2:t+=8,t+ST(e.attributes)}function rz(e){let t=0;return e.message&&(t+=e.message.length*2),t+ST(e.attributes)}function ST(e){if(!e)return 0;let t=0;return Object.values(e).forEach(n=>{Array.isArray(n)?t+=n.length*ew(n[0]):uu(n)?t+=ew(n):t+=100}),t}function ew(e){return typeof e=="string"?e.length*2:typeof e=="number"?8:typeof e=="boolean"?4:0}function oz(e,t){t.debug===!0&&(Tt?it.enable():la(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")})),ln().update(t.initialScope);const r=new e(t);return sz(r),r.init(),r}function sz(e){ln().setClient(e)}const ET=Symbol.for("SentryBufferFullError");function az(e=100){const t=new Set;function n(){return t.sizer(i),()=>r(i)),i}function s(a){if(!t.size)return N0(!0);const i=Promise.allSettled(Array.from(t)).then(()=>!0);if(!a)return i;const l=[i,new Promise(u=>setTimeout(()=>u(!1),a))];return Promise.race(l)}return{get $(){return Array.from(t)},add:o,drain:s}}const iz=60*1e3;function lz(e,t=Date.now()){const n=parseInt(`${e}`,10);if(!isNaN(n))return n*1e3;const r=Date.parse(`${e}`);return isNaN(r)?iz:r-t}function uz(e,t){return e[t]||e.all||0}function CT(e,t,n=Date.now()){return uz(e,t)>n}function kT(e,{statusCode:t,headers:n},r=Date.now()){const o={...e},s=n==null?void 0:n["x-sentry-rate-limits"],a=n==null?void 0:n["retry-after"];if(s)for(const i of s.trim().split(",")){const[l,u,,,c]=i.split(":",5),d=parseInt(l,10),f=(isNaN(d)?60:d)*1e3;if(!u)o.all=r+f;else for(const p of u.split(";"))p==="metric_bucket"?(!c||c.split(";").includes("custom"))&&(o[p]=r+f):o[p]=r+f}else a?o.all=r+lz(a,r):t===429&&(o.all=r+60*1e3);return o}const cz=64;function dz(e,t,n=az(e.bufferSize||cz)){let r={};const o=a=>n.drain(a);function s(a){const i=[];if(R6(a,(d,f)=>{const p=P6(f);CT(r,p)?e.recordDroppedEvent("ratelimit_backoff",p):i.push(d)}),i.length===0)return Promise.resolve({});const l=ci(a[0],i),u=d=>{R6(l,(f,p)=>{e.recordDroppedEvent(d,P6(p))})},c=()=>t({body:jB(l)}).then(d=>(d.statusCode!==void 0&&(d.statusCode<200||d.statusCode>=300)&&Tt&&it.warn(`Sentry responded with status code ${d.statusCode} to sent event.`),r=kT(r,d),d),d=>{throw u("network_error"),Tt&&it.error("Encountered error running transport request:",d),d});return n.add(c).then(d=>d,d=>{if(d===ET)return Tt&&it.error("Skipped sending event because buffer is full."),u("queue_overflow"),Promise.resolve({});throw d})}return{send:s,flush:o}}const fz="thismessage:/";function n4(e){return"isRelative"in e}function r4(e,t){const n=e.indexOf("://")<=0&&e.indexOf("//")!==0,r=n?fz:void 0;try{if("canParse"in URL&&!URL.canParse(e,r))return;const o=new URL(e,r);return n?{isRelative:n,pathname:o.pathname,search:o.search,hash:o.hash}:o}catch{}}function pz(e){if(n4(e))return e.pathname;const t=new URL(e);return t.search="",t.hash="",["80","443"].includes(t.port)&&(t.port=""),t.password&&(t.password="%filtered%"),t.username&&(t.username="%filtered%"),t.toString()}function Hi(e){if(!e)return{};const t=e.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!t)return{};const n=t[6]||"",r=t[8]||"";return{host:t[4],path:t[5],protocol:t[2],search:n,hash:r,relative:t[5]+n+r}}function hz(e){return e.split(/[?#]/,1)[0]}function mz(e,t){const n=t==null?void 0:t.getDsn(),r=t==null?void 0:t.getOptions().tunnel;return gz(e,n)||vz(e,r)}function vz(e,t){return t?tw(e)===tw(t):!1}function gz(e,t){const n=r4(e);return!n||n4(n)?!1:t?n.host.includes(t.host)&&/(^|&|\?)sentry_key=/.test(n.search):!1}function tw(e){return e[e.length-1]==="/"?e.slice(0,-1):e}function _z(e){var t;"aggregates"in e?((t=e.attrs)==null?void 0:t.ip_address)===void 0&&(e.attrs={...e.attrs,ip_address:"{{auto}}"}):e.ipAddress===void 0&&(e.ipAddress="{{auto}}")}function TT(e,t,n=[t],r="npm"){const o=e._metadata||{};o.sdk||(o.sdk={name:`sentry.javascript.${t}`,packages:n.map(s=>({name:`${r}:@sentry/${s}`,version:Di})),version:Di}),e._metadata=o}function $T(e={}){const t=e.client||Jt();if(!RD()||!t)return{};const n=al(),r=Wu(n);if(r.getTraceData)return r.getTraceData(e);const o=e.scope||ln(),s=e.span||sr(),a=s?IB(s):yz(o),i=s?Qs(s):tT(t,o),l=pB(i);if(!qk.test(a))return it.warn("Invalid sentry-trace data. Cannot generate trace data"),{};const c={"sentry-trace":a,baggage:l};if(e.propagateTraceparent){const d=s?AB(s):bz(o);d&&(c.traceparent=d)}return c}function yz(e){const{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return Kk(t,r,n)}function bz(e){const{traceId:t,sampled:n,propagationSpanId:r}=e.getPropagationContext();return Gk(t,r,n)}function wz(e,t,n){let r,o,s;const a=n!=null&&n.maxWait?Math.max(n.maxWait,t):0,i=(n==null?void 0:n.setTimeoutImpl)||setTimeout;function l(){return u(),r=e(),r}function u(){o!==void 0&&clearTimeout(o),s!==void 0&&clearTimeout(s),o=s=void 0}function c(){return o!==void 0||s!==void 0?l():r}function d(){return o&&clearTimeout(o),o=i(l,t),a&&s===void 0&&(s=i(l,a)),r}return d.cancel=u,d.flush=c,d}const Sz=100;function ni(e,t){const n=Jt(),r=ms();if(!n)return;const{beforeBreadcrumb:o=null,maxBreadcrumbs:s=Sz}=n.getOptions();if(s<=0)return;const i={timestamp:il(),...e},l=o?la(()=>o(i,t)):i;l!==null&&(n.emit&&n.emit("beforeAddBreadcrumb",l,t),r.addBreadcrumb(l,s))}let nw;const Ez="FunctionToString",rw=new WeakMap,Cz=()=>({name:Ez,setupOnce(){nw=Function.prototype.toString;try{Function.prototype.toString=function(...e){const t=qy(this),n=rw.has(Jt())&&t!==void 0?t:this;return nw.apply(n,e)}}catch{}},setup(e){rw.set(e,!0)}}),kz=Cz,Tz=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,/^Can't find variable: gmo$/,/^undefined is not an object \(evaluating 'a\.[A-Z]'\)$/,`can't redefine non-configurable property "solana"`,"vv().getRestrictions is not a function. (In 'vv().getRestrictions(1,a)', 'vv().getRestrictions' is undefined)","Can't find variable: _AutofillCallbackHandler",/^Non-Error promise rejection captured with value: Object Not Found Matching Id:\d+, MethodName:simulateEvent, ParamCount:\d+$/,/^Java exception was raised during method invocation$/],$z="EventFilters",xz=(e={})=>{let t;return{name:$z,setup(n){const r=n.getOptions();t=ow(e,r)},processEvent(n,r,o){if(!t){const s=o.getOptions();t=ow(e,s)}return Az(n,t)?null:n}}},Iz=(e={})=>({...xz(e),name:"InboundFilters"});function ow(e={},t={}){return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:Tz],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[]]}}function Az(e,t){if(e.type){if(e.type==="transaction"&&Oz(e,t.ignoreTransactions))return Tt&&it.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. +Event: ${Ei(e)}`),!0}else{if(Mz(e,t.ignoreErrors))return Tt&&it.warn(`Event dropped due to being matched by \`ignoreErrors\` option. +Event: ${Ei(e)}`),!0;if(Lz(e))return Tt&&it.warn(`Event dropped due to not having an error message, error type or stacktrace. +Event: ${Ei(e)}`),!0;if(Rz(e,t.denyUrls))return Tt&&it.warn(`Event dropped due to being matched by \`denyUrls\` option. +Event: ${Ei(e)}. +Url: ${Rh(e)}`),!0;if(!Pz(e,t.allowUrls))return Tt&&it.warn(`Event dropped due to not being matched by \`allowUrls\` option. +Event: ${Ei(e)}. +Url: ${Rh(e)}`),!0}return!1}function Mz(e,t){return t!=null&&t.length?_T(e).some(n=>Fs(n,t)):!1}function Oz(e,t){if(!(t!=null&&t.length))return!1;const n=e.transaction;return n?Fs(n,t):!1}function Rz(e,t){if(!(t!=null&&t.length))return!1;const n=Rh(e);return n?Fs(n,t):!1}function Pz(e,t){if(!(t!=null&&t.length))return!0;const n=Rh(e);return n?Fs(n,t):!0}function Nz(e=[]){for(let t=e.length-1;t>=0;t--){const n=e[t];if(n&&n.filename!==""&&n.filename!=="[native code]")return n.filename||null}return null}function Rh(e){var t,n;try{const r=[...((t=e.exception)==null?void 0:t.values)??[]].reverse().find(s=>{var a,i,l;return((a=s.mechanism)==null?void 0:a.parent_id)===void 0&&((l=(i=s.stacktrace)==null?void 0:i.frames)==null?void 0:l.length)}),o=(n=r==null?void 0:r.stacktrace)==null?void 0:n.frames;return o?Nz(o):null}catch{return Tt&&it.error(`Cannot extract url for event ${Ei(e)}`),null}}function Lz(e){var t,n;return(n=(t=e.exception)==null?void 0:t.values)!=null&&n.length?!e.message&&!e.exception.values.some(r=>r.stacktrace||r.type&&r.type!=="Error"||r.value):!1}function Bz(e,t,n,r,o,s){var i;if(!((i=o.exception)!=null&&i.values)||!s||!Ys(s.originalException,Error))return;const a=o.exception.values.length>0?o.exception.values[o.exception.values.length-1]:void 0;a&&(o.exception.values=L2(e,t,r,s.originalException,n,o.exception.values,a,0))}function L2(e,t,n,r,o,s,a,i){if(s.length>=n+1)return s;let l=[...s];if(Ys(r[o],Error)){sw(a,i);const u=e(t,r[o]),c=l.length;aw(u,o,c,i),l=L2(e,t,n,r[o],o,[u,...l],u,c)}return Array.isArray(r.errors)&&r.errors.forEach((u,c)=>{if(Ys(u,Error)){sw(a,i);const d=e(t,u),f=l.length;aw(d,`errors[${c}]`,f,i),l=L2(e,t,n,u,o,[d,...l],d,f)}}),l}function sw(e,t){e.mechanism={handled:!0,type:"auto.core.linked_errors",...e.mechanism,...e.type==="AggregateError"&&{is_exception_group:!0},exception_id:t}}function aw(e,t,n,r){e.mechanism={handled:!0,...e.mechanism,type:"chained",source:t,exception_id:n,parent_id:r}}function Dz(e){const t="console";ii(t,e),li(t,zz)}function zz(){"console"in Xt&&kL.forEach(function(e){e in Xt.console&&Pr(Xt.console,e,function(t){return xh[e]=t,function(...n){po("console",{args:n,level:e});const o=xh[e];o==null||o.apply(Xt.console,n)}})})}function xT(e){return e==="warn"?"warning":["fatal","error","warning","log","info","debug"].includes(e)?e:"log"}const Fz="Dedupe",Hz=()=>{let e;return{name:Fz,processEvent(t){if(t.type)return t;try{if(jz(t,e))return Tt&&it.warn("Event dropped due to being a duplicate of previously captured event."),null}catch{}return e=t}}},Vz=Hz;function jz(e,t){return t?!!(Uz(e,t)||Wz(e,t)):!1}function Uz(e,t){const n=e.message,r=t.message;return!(!n&&!r||n&&!r||!n&&r||n!==r||!AT(e,t)||!IT(e,t))}function Wz(e,t){const n=iw(t),r=iw(e);return!(!n||!r||n.type!==r.type||n.value!==r.value||!AT(e,t)||!IT(e,t))}function IT(e,t){let n=_6(e),r=_6(t);if(!n&&!r)return!0;if(n&&!r||!n&&r||(n=n,r=r,r.length!==n.length))return!1;for(let o=0;od[0]==="sentry-trace")||u.push(["sentry-trace",s]),r&&i&&!l.find(d=>d[0]==="traceparent")&&u.push(["traceparent",i]);const c=l.find(d=>d[0]==="baggage"&&Mf(d[1]));return a&&!c&&u.push(["baggage",a]),u}else{const u="sentry-trace"in l?l["sentry-trace"]:void 0,c="traceparent"in l?l.traceparent:void 0,d="baggage"in l?l.baggage:void 0,f=d?Array.isArray(d)?[...d]:[d]:[],p=d&&(Array.isArray(d)?d.find(v=>Mf(v)):Mf(d));a&&!p&&f.push(a);const m={...l,"sentry-trace":u??s,baggage:f.length>0?f.join(","):void 0};return r&&i&&!c&&(m.traceparent=i),m}else return{...o}}function Gz(e,t){var n,r;if(t.response){Hk(e,t.response.status);const o=(r=(n=t.response)==null?void 0:n.headers)==null?void 0:r.get("content-length");if(o){const s=parseInt(o);s>0&&e.setAttribute("http.response_content_length",s)}}else t.error&&e.setStatus({code:Hn,message:"internal_error"});e.end()}function Mf(e){return e.split(",").some(t=>t.trim().startsWith(Yy))}function Yz(e){return typeof Headers<"u"&&Ys(e,Headers)}function Xz(e,t,n){const r=r4(e);return{name:r?`${t} ${pz(r)}`:t,attributes:Jz(e,r,t,n)}}function Jz(e,t,n,r){const o={url:e,type:"fetch","http.method":n,[In]:r,[Js]:"http.client"};return t&&(n4(t)||(o["http.url"]=t.href,o["server.address"]=t.host),t.search&&(o["http.query"]=t.search),t.hash&&(o["http.fragment"]=t.hash)),o}function MT(e){if(e!==void 0)return e>=400&&e<500?"warning":e>=500?"error":void 0}const md=Xt;function Qz(){return"history"in md&&!!md.history}function Zz(){if(!("fetch"in md))return!1;try{return new Headers,new Request("http://www.example.com"),new Response,!0}catch{return!1}}function B2(e){return e&&/^function\s+\w+\(\)\s+\{\s+\[native code\]\s+\}$/.test(e.toString())}function eF(){var n;if(typeof EdgeRuntime=="string")return!0;if(!Zz())return!1;if(B2(md.fetch))return!0;let e=!1;const t=md.document;if(t&&typeof t.createElement=="function")try{const r=t.createElement("iframe");r.hidden=!0,t.head.appendChild(r),(n=r.contentWindow)!=null&&n.fetch&&(e=B2(r.contentWindow.fetch)),t.head.removeChild(r)}catch(r){Tt&&it.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",r)}return e}function OT(e,t){const n="fetch";ii(n,e),li(n,()=>RT(void 0,t))}function tF(e){const t="fetch-body-resolved";ii(t,e),li(t,()=>RT(rF))}function RT(e,t=!1){t&&!eF()||Pr(Xt,"fetch",function(n){return function(...r){const o=new Error,{method:s,url:a}=oF(r),i={args:r,fetchData:{method:s,url:a},startTimestamp:Pn()*1e3,virtualError:o,headers:sF(r)};return e||po("fetch",{...i}),n.apply(Xt,r).then(async l=>(e?e(l):po("fetch",{...i,endTimestamp:Pn()*1e3,response:l}),l),l=>{if(po("fetch",{...i,endTimestamp:Pn()*1e3,error:l}),jy(l)&&l.stack===void 0&&(l.stack=o.stack,ro(l,"framesToPop",1)),l instanceof TypeError&&(l.message==="Failed to fetch"||l.message==="Load failed"||l.message==="NetworkError when attempting to fetch resource."))try{const u=new URL(i.fetchData.url);l.message=`${l.message} (${u.host})`}catch{}throw l})}})}async function nF(e,t){if(e!=null&&e.body){const n=e.body,r=n.getReader(),o=setTimeout(()=>{n.cancel().then(null,()=>{})},90*1e3);let s=!0;for(;s;){let a;try{a=setTimeout(()=>{n.cancel().then(null,()=>{})},5e3);const{done:i}=await r.read();clearTimeout(a),i&&(t(),s=!1)}catch{s=!1}finally{clearTimeout(a)}}clearTimeout(o),r.releaseLock(),n.cancel().then(null,()=>{})}}function rF(e){let t;try{t=e.clone()}catch{return}nF(t,()=>{po("fetch-body-resolved",{endTimestamp:Pn()*1e3,response:e})})}function D2(e,t){return!!e&&typeof e=="object"&&!!e[t]}function lw(e){return typeof e=="string"?e:e?D2(e,"url")?e.url:e.toString?e.toString():"":""}function oF(e){if(e.length===0)return{method:"GET",url:""};if(e.length===2){const[n,r]=e;return{url:lw(n),method:D2(r,"method")?String(r.method).toUpperCase():"GET"}}const t=e[0];return{url:lw(t),method:D2(t,"method")?String(t.method).toUpperCase():"GET"}}function sF(e){const[t,n]=e;try{if(typeof n=="object"&&n!==null&&"headers"in n&&n.headers)return new Headers(n.headers);if(Rk(t))return new Headers(t.headers)}catch{}}function aF(){return typeof __SENTRY_BROWSER_BUNDLE__<"u"&&!!__SENTRY_BROWSER_BUNDLE__}function iF(){return"npm"}function lF(){return!aF()&&Object.prototype.toString.call(typeof process<"u"?process:0)==="[object process]"}function uw(){return typeof window<"u"&&(!lF()||uF())}function uF(){const e=Xt.process;return(e==null?void 0:e.type)==="renderer"}const tn=Xt;let z2=0;function PT(){return z2>0}function cF(){z2++,setTimeout(()=>{z2--})}function hu(e,t={}){function n(o){return typeof o=="function"}if(!n(e))return e;try{const o=e.__sentry_wrapped__;if(o)return typeof o=="function"?o:e;if(qy(e))return e}catch{return e}const r=function(...o){try{const s=o.map(a=>hu(a,t));return e.apply(this,s)}catch(s){throw cF(),R0(a=>{a.addEventProcessor(i=>(t.mechanism&&(x2(i,void 0),cu(i,t.mechanism)),i.extra={...i.extra,arguments:o},i)),L0(s)}),s}};try{for(const o in e)Object.prototype.hasOwnProperty.call(e,o)&&(r[o]=e[o])}catch{}Nk(r,e),ro(e,"__sentry_wrapped__",r);try{Object.getOwnPropertyDescriptor(r,"name").configurable&&Object.defineProperty(r,"name",{get(){return e.name}})}catch{}return r}function o4(){const e=Uu(),{referrer:t}=tn.document||{},{userAgent:n}=tn.navigator||{},r={...t&&{Referer:t},...n&&{"User-Agent":n}};return{url:e,headers:r}}function s4(e,t){const n=a4(e,t),r={type:mF(t),value:vF(t)};return n.length&&(r.stacktrace={frames:n}),r.type===void 0&&r.value===""&&(r.value="Unrecoverable error caught"),r}function dF(e,t,n,r){const o=Jt(),s=o==null?void 0:o.getOptions().normalizeDepth,a=wF(t),i={__serialized__:nT(t,s)};if(a)return{exception:{values:[s4(e,a)]},extra:i};const l={exception:{values:[{type:O0(t)?t.constructor.name:r?"UnhandledRejection":"Error",value:yF(t,{isUnhandledRejection:r})}]},extra:i};if(n){const u=a4(e,n);u.length&&(l.exception.values[0].stacktrace={frames:u})}return l}function Qm(e,t){return{exception:{values:[s4(e,t)]}}}function a4(e,t){const n=t.stacktrace||t.stack||"",r=pF(t),o=hF(t);try{return e(n,r,o)}catch{}return[]}const fF=/Minified React error #\d+;/i;function pF(e){return e&&fF.test(e.message)?1:0}function hF(e){return typeof e.framesToPop=="number"?e.framesToPop:0}function NT(e){return typeof WebAssembly<"u"&&typeof WebAssembly.Exception<"u"?e instanceof WebAssembly.Exception:!1}function mF(e){const t=e==null?void 0:e.name;return!t&&NT(e)?e.message&&Array.isArray(e.message)&&e.message.length==2?e.message[0]:"WebAssembly.Exception":t}function vF(e){const t=e==null?void 0:e.message;return NT(e)?Array.isArray(e.message)&&e.message.length==2?e.message[1]:"wasm exception":t?t.error&&typeof t.error.message=="string"?t.error.message:t:"No error message"}function gF(e,t,n,r){const o=(n==null?void 0:n.syntheticException)||void 0,s=i4(e,t,o,r);return cu(s),s.level="error",n!=null&&n.event_id&&(s.event_id=n.event_id),N0(s)}function _F(e,t,n="info",r,o){const s=(r==null?void 0:r.syntheticException)||void 0,a=F2(e,t,s,o);return a.level=n,r!=null&&r.event_id&&(a.event_id=r.event_id),N0(a)}function i4(e,t,n,r,o){let s;if(Mk(t)&&t.error)return Qm(e,t.error);if(b6(t)||LL(t)){const a=t;if("stack"in t)s=Qm(e,t);else{const i=a.name||(b6(a)?"DOMError":"DOMException"),l=a.message?`${i}: ${a.message}`:i;s=F2(e,l,n,r),x2(s,l)}return"code"in a&&(s.tags={...s.tags,"DOMException.code":`${a.code}`}),s}return jy(t)?Qm(e,t):fd(t)||O0(t)?(s=dF(e,t,n,o),cu(s,{synthetic:!0}),s):(s=F2(e,t,n,r),x2(s,`${t}`),cu(s,{synthetic:!0}),s)}function F2(e,t,n,r){const o={};if(r&&n){const s=a4(e,n);s.length&&(o.exception={values:[{value:t,stacktrace:{frames:s}}]}),cu(o,{synthetic:!0})}if(Uy(t)){const{__sentry_template_string__:s,__sentry_template_values__:a}=t;return o.logentry={message:s,params:a},o}return o.message=t,o}function yF(e,{isUnhandledRejection:t}){const n=VL(e),r=t?"promise rejection":"exception";return Mk(e)?`Event \`ErrorEvent\` captured as ${r} with message \`${e.message}\``:O0(e)?`Event \`${bF(e)}\` (type=${e.type}) captured as ${r}`:`Object captured as ${r} with keys: ${n}`}function bF(e){try{const t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch{}}function wF(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)){const n=e[t];if(n instanceof Error)return n}}class SF extends ZD{constructor(t){var l;const n=EF(t),r=tn.SENTRY_SDK_SOURCE||iF();TT(n,"browser",["browser"],r),(l=n._metadata)!=null&&l.sdk&&(n._metadata.sdk.settings={infer_ip:n.sendDefaultPii?"auto":"never",...n._metadata.sdk.settings}),super(n);const{sendDefaultPii:o,sendClientReports:s,enableLogs:a,_experiments:i}=this._options;tn.document&&(s||a||i!=null&&i.enableMetrics)&&tn.document.addEventListener("visibilitychange",()=>{tn.document.visibilityState==="hidden"&&(s&&this._flushOutcomes(),a&&hT(this),i!=null&&i.enableMetrics&&vT(this))}),o&&this.on("beforeSendSession",_z)}eventFromException(t,n){return gF(this._options.stackParser,t,n,this._options.attachStacktrace)}eventFromMessage(t,n="info",r){return _F(this._options.stackParser,t,n,r,this._options.attachStacktrace)}_prepareEvent(t,n,r,o){return t.platform=t.platform||"javascript",super._prepareEvent(t,n,r,o)}}function EF(e){var t;return{release:typeof __SENTRY_RELEASE__=="string"?__SENTRY_RELEASE__:(t=tn.SENTRY_RELEASE)==null?void 0:t.id,sendClientReports:!0,parentSpanIsAlwaysRootSpan:!0,...e}}const mu=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,Dt=Xt,CF=(e,t)=>e>t[1]?"poor":e>t[0]?"needs-improvement":"good",Jd=(e,t,n,r)=>{let o,s;return a=>{t.value>=0&&(a||r)&&(s=t.value-(o??0),(s||o===void 0)&&(o=t.value,t.delta=s,t.rating=CF(t.value,n),e(t)))}},kF=()=>`v5-${Date.now()}-${Math.floor(Math.random()*(9e12-1))+1e12}`,Qd=(e=!0)=>{var n,r;const t=(r=(n=Dt.performance)==null?void 0:n.getEntriesByType)==null?void 0:r.call(n,"navigation")[0];if(!e||t&&t.responseStart>0&&t.responseStart{const e=Qd();return(e==null?void 0:e.activationStart)??0},Zd=(e,t=-1)=>{var s,a;const n=Qd();let r="navigate";return n&&((s=Dt.document)!=null&&s.prerendering||Gu()>0?r="prerender":(a=Dt.document)!=null&&a.wasDiscarded?r="restore":n.type&&(r=n.type.replace(/_/g,"-"))),{name:e,value:t,rating:"good",delta:0,entries:[],id:kF(),navigationType:r}},Zm=new WeakMap;function l4(e,t){return Zm.get(e)||Zm.set(e,new t),Zm.get(e)}class Ph{constructor(){Ph.prototype.__init.call(this),Ph.prototype.__init2.call(this)}__init(){this._sessionValue=0}__init2(){this._sessionEntries=[]}_processEntry(t){var o;if(t.hadRecentInput)return;const n=this._sessionEntries[0],r=this._sessionEntries[this._sessionEntries.length-1];this._sessionValue&&n&&r&&t.startTime-r.startTime<1e3&&t.startTime-n.startTime<5e3?(this._sessionValue+=t.value,this._sessionEntries.push(t)):(this._sessionValue=t.value,this._sessionEntries=[t]),(o=this._onAfterProcessingUnexpectedShift)==null||o.call(this,t)}}const Yu=(e,t,n={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){const r=new PerformanceObserver(o=>{Promise.resolve().then(()=>{t(o.getEntries())})});return r.observe({type:e,buffered:!0,...n}),r}}catch{}},u4=e=>{let t=!1;return()=>{t||(e(),t=!0)}};let Hc=-1;const TF=()=>{var e,t;return((e=Dt.document)==null?void 0:e.visibilityState)==="hidden"&&!((t=Dt.document)!=null&&t.prerendering)?0:1/0},Nh=e=>{Dt.document.visibilityState==="hidden"&&Hc>-1&&(Hc=e.type==="visibilitychange"?e.timeStamp:0,xF())},$F=()=>{addEventListener("visibilitychange",Nh,!0),addEventListener("prerenderingchange",Nh,!0)},xF=()=>{removeEventListener("visibilitychange",Nh,!0),removeEventListener("prerenderingchange",Nh,!0)},c4=()=>{var e;if(Dt.document&&Hc<0){const t=Gu();Hc=(Dt.document.prerendering||(e=globalThis.performance.getEntriesByType("visibility-state").filter(r=>r.name==="hidden"&&r.startTime>t)[0])==null?void 0:e.startTime)??TF(),$F()}return{get firstHiddenTime(){return Hc}}},B0=e=>{var t;(t=Dt.document)!=null&&t.prerendering?addEventListener("prerenderingchange",()=>e(),!0):e()},IF=[1800,3e3],AF=(e,t={})=>{B0(()=>{const n=c4(),r=Zd("FCP");let o;const a=Yu("paint",i=>{for(const l of i)l.name==="first-contentful-paint"&&(a.disconnect(),l.startTime{AF(u4(()=>{var i,l;const n=Zd("CLS",0);let r;const o=l4(t,Ph),s=u=>{for(const c of u)o._processEntry(c);o._sessionValue>n.value&&(n.value=o._sessionValue,n.entries=o._sessionEntries,r())},a=Yu("layout-shift",s);a&&(r=Jd(e,n,MF,t.reportAllChanges),(i=Dt.document)==null||i.addEventListener("visibilitychange",()=>{var u;((u=Dt.document)==null?void 0:u.visibilityState)==="hidden"&&(s(a.takeRecords()),r(!0))}),(l=Dt==null?void 0:Dt.setTimeout)==null||l.call(Dt,r))}))};let LT=0,ev=1/0,Of=0;const RF=e=>{e.forEach(t=>{t.interactionId&&(ev=Math.min(ev,t.interactionId),Of=Math.max(Of,t.interactionId),LT=Of?(Of-ev)/7+1:0)})};let H2;const BT=()=>H2?LT:performance.interactionCount||0,PF=()=>{"interactionCount"in performance||H2||(H2=Yu("event",RF,{type:"event",buffered:!0,durationThreshold:0}))},tv=10;let DT=0;const NF=()=>BT()-DT;class Lh{constructor(){Lh.prototype.__init.call(this),Lh.prototype.__init2.call(this)}__init(){this._longestInteractionList=[]}__init2(){this._longestInteractionMap=new Map}_resetInteractions(){DT=BT(),this._longestInteractionList.length=0,this._longestInteractionMap.clear()}_estimateP98LongestInteraction(){const t=Math.min(this._longestInteractionList.length-1,Math.floor(NF()/50));return this._longestInteractionList[t]}_processEntry(t){var o,s;if((o=this._onBeforeProcessingEntry)==null||o.call(this,t),!(t.interactionId||t.entryType==="first-input"))return;const n=this._longestInteractionList.at(-1);let r=this._longestInteractionMap.get(t.interactionId);if(r||this._longestInteractionList.lengthn._latency){if(r?t.duration>r._latency?(r.entries=[t],r._latency=t.duration):t.duration===r._latency&&t.startTime===r.entries[0].startTime&&r.entries.push(t):(r={id:t.interactionId,entries:[t],_latency:t.duration},this._longestInteractionMap.set(r.id,r),this._longestInteractionList.push(r)),this._longestInteractionList.sort((a,i)=>i._latency-a._latency),this._longestInteractionList.length>tv){const a=this._longestInteractionList.splice(tv);for(const i of a)this._longestInteractionMap.delete(i.id)}(s=this._onAfterProcessingINPCandidate)==null||s.call(this,r)}}}const d4=e=>{const t=n=>{var r;(n.type==="pagehide"||((r=Dt.document)==null?void 0:r.visibilityState)==="hidden")&&e(n)};Dt.document&&(addEventListener("visibilitychange",t,!0),addEventListener("pagehide",t,!0))},zT=e=>{var n;const t=Dt.requestIdleCallback||Dt.setTimeout;((n=Dt.document)==null?void 0:n.visibilityState)==="hidden"?e():(e=u4(e),t(e),d4(e))},LF=[200,500],BF=40,DF=(e,t={})=>{globalThis.PerformanceEventTiming&&"interactionId"in PerformanceEventTiming.prototype&&B0(()=>{PF();const n=Zd("INP");let r;const o=l4(t,Lh),s=i=>{zT(()=>{for(const u of i)o._processEntry(u);const l=o._estimateP98LongestInteraction();l&&l._latency!==n.value&&(n.value=l._latency,n.entries=l.entries,r())})},a=Yu("event",s,{durationThreshold:t.durationThreshold??BF});r=Jd(e,n,LF,t.reportAllChanges),a&&(a.observe({type:"first-input",buffered:!0}),d4(()=>{s(a.takeRecords()),r(!0)}))})};class zF{_processEntry(t){var n;(n=this._onBeforeProcessingEntry)==null||n.call(this,t)}}const FF=[2500,4e3],HF=(e,t={})=>{B0(()=>{const n=c4(),r=Zd("LCP");let o;const s=l4(t,zF),a=l=>{t.reportAllChanges||(l=l.slice(-1));for(const u of l)s._processEntry(u),u.startTime{a(i.takeRecords()),i.disconnect(),o(!0)});for(const u of["keydown","click","visibilitychange"])Dt.document&&addEventListener(u,()=>zT(l),{capture:!0,once:!0})}})},VF=[800,1800],V2=e=>{var t,n;(t=Dt.document)!=null&&t.prerendering?B0(()=>V2(e)):((n=Dt.document)==null?void 0:n.readyState)!=="complete"?addEventListener("load",()=>V2(e),!0):setTimeout(e)},jF=(e,t={})=>{const n=Zd("TTFB"),r=Jd(e,n,VF,t.reportAllChanges);V2(()=>{const o=Qd();o&&(n.value=Math.max(o.responseStart-Gu(),0),n.entries=[o],r(!0))})},Vc={},Bh={};let FT,HT,VT,jT;function f4(e,t=!1){return D0("cls",e,WF,FT,t)}function p4(e,t=!1){return D0("lcp",e,qF,HT,t)}function UF(e){return D0("ttfb",e,KF,VT)}function UT(e){return D0("inp",e,GF,jT)}function Ji(e,t){return WT(e,t),Bh[e]||(YF(e),Bh[e]=!0),qT(e,t)}function ef(e,t){const n=Vc[e];if(n!=null&&n.length)for(const r of n)try{r(t)}catch(o){mu&&it.error(`Error while triggering instrumentation handler. +Type: ${e} +Name: ${Gs(r)} +Error:`,o)}}function WF(){return OF(e=>{ef("cls",{metric:e}),FT=e},{reportAllChanges:!0})}function qF(){return HF(e=>{ef("lcp",{metric:e}),HT=e},{reportAllChanges:!0})}function KF(){return jF(e=>{ef("ttfb",{metric:e}),VT=e})}function GF(){return DF(e=>{ef("inp",{metric:e}),jT=e})}function D0(e,t,n,r,o=!1){WT(e,t);let s;return Bh[e]||(s=n(),Bh[e]=!0),r&&t({metric:r}),qT(e,t,o?s:void 0)}function YF(e){const t={};e==="event"&&(t.durationThreshold=0),Yu(e,n=>{ef(e,{entries:n})},t)}function WT(e,t){Vc[e]=Vc[e]||[],Vc[e].push(t)}function qT(e,t,n){return()=>{n&&n();const r=Vc[e];if(!r)return;const o=r.indexOf(t);o!==-1&&r.splice(o,1)}}function XF(e){return"duration"in e}function nv(e){return typeof e=="number"&&isFinite(e)}function ri(e,t,n,{...r}){const o=Yt(e).start_timestamp;return o&&o>t&&typeof e.updateStartTime=="function"&&e.updateStartTime(t),Zy(e,()=>{const s=ti({startTime:t,...r});return s&&s.end(n),s})}function h4(e){var g;const t=Jt();if(!t)return;const{name:n,transaction:r,attributes:o,startTime:s}=e,{release:a,environment:i,sendDefaultPii:l}=t.getOptions(),u=t.getIntegrationByName("Replay"),c=u==null?void 0:u.getReplayId(),d=ln(),f=d.getUser(),p=f!==void 0?f.email||f.id||f.ip_address:void 0;let m;try{m=d.getScopeData().contexts.profile.profile_id}catch{}const v={release:a,environment:i,user:p||void 0,profile_id:m||void 0,replay_id:c||void 0,transaction:r,"user_agent.original":(g=Dt.navigator)==null?void 0:g.userAgent,"client.address":l?"{{auto}}":void 0,...o};return ti({name:n,attributes:v,startTime:s,experimental:{standalone:!0}})}function tf(){return Dt.addEventListener&&Dt.performance}function Mn(e){return e/1e3}function JF(e){let t="unknown",n="unknown",r="";for(const o of e){if(o==="/"){[t,n]=e.split("/");break}if(!isNaN(Number(o))){t=r==="h"?"http":r,n=e.split(r)[1];break}r+=o}return r===e&&(t=r),{name:t,version:n}}function KT(e){try{return PerformanceObserver.supportedEntryTypes.includes(e)}catch{return!1}}function GT(e,t){let n,r=!1;function o(i){!r&&n&&t(i,n),r=!0}d4(()=>{o("pagehide")});const s=e.on("beforeStartNavigationSpan",(i,l)=>{l!=null&&l.isRedirect||(o("navigation"),s(),a())}),a=e.on("afterStartPageLoadSpan",i=>{n=i.spanContext().spanId,a()})}function QF(e){let t=0,n;if(!KT("layout-shift"))return;const r=f4(({metric:o})=>{const s=o.entries[o.entries.length-1];s&&(t=o.value,n=s)},!0);GT(e,(o,s)=>{ZF(t,n,s,o),r()})}function ZF(e,t,n,r){var u;mu&&it.log(`Sending CLS span (${e})`);const o=t?Mn((Vr()||0)+t.startTime):Pn(),s=ln().getScopeData().transactionName,a=t?go((u=t.sources[0])==null?void 0:u.node):"Layout shift",i={[In]:"auto.http.browser.cls",[Js]:"ui.webvital.cls",[qu]:0,"sentry.pageload.span_id":n,"sentry.report_event":r};t!=null&&t.sources&&t.sources.forEach((c,d)=>{i[`cls.source.${d+1}`]=go(c.node)});const l=h4({name:a,transaction:s,attributes:i,startTime:o});l&&(l.addEvent("cls",{[Yd]:"",[Xd]:e}),l.end(o))}function eH(e){let t=0,n;if(!KT("largest-contentful-paint"))return;const r=p4(({metric:o})=>{const s=o.entries[o.entries.length-1];s&&(t=o.value,n=s)},!0);GT(e,(o,s)=>{tH(t,n,s,o),r()})}function tH(e,t,n,r){mu&&it.log(`Sending LCP span (${e})`);const o=Mn((Vr()||0)+((t==null?void 0:t.startTime)||0)),s=ln().getScopeData().transactionName,a=t?go(t.element):"Largest contentful paint",i={[In]:"auto.http.browser.lcp",[Js]:"ui.webvital.lcp",[qu]:0,"sentry.pageload.span_id":n,"sentry.report_event":r};t&&(t.element&&(i["lcp.element"]=go(t.element)),t.id&&(i["lcp.id"]=t.id),t.url&&(i["lcp.url"]=t.url.trim().slice(0,200)),t.loadTime!=null&&(i["lcp.loadTime"]=t.loadTime),t.renderTime!=null&&(i["lcp.renderTime"]=t.renderTime),t.size!=null&&(i["lcp.size"]=t.size));const l=h4({name:a,transaction:s,attributes:i,startTime:o});l&&(l.addEvent("lcp",{[Yd]:"millisecond",[Xd]:e}),l.end(o))}function ao(e){return e&&((Vr()||performance.timeOrigin)+e)/1e3}function YT(e){var n;const t={};if(e.nextHopProtocol!=null){const{name:r,version:o}=JF(e.nextHopProtocol);t["network.protocol.version"]=o,t["network.protocol.name"]=r}return Vr()||(n=tf())!=null&&n.timeOrigin?nH({...t,"http.request.redirect_start":ao(e.redirectStart),"http.request.redirect_end":ao(e.redirectEnd),"http.request.worker_start":ao(e.workerStart),"http.request.fetch_start":ao(e.fetchStart),"http.request.domain_lookup_start":ao(e.domainLookupStart),"http.request.domain_lookup_end":ao(e.domainLookupEnd),"http.request.connect_start":ao(e.connectStart),"http.request.secure_connection_start":ao(e.secureConnectionStart),"http.request.connection_end":ao(e.connectEnd),"http.request.request_start":ao(e.requestStart),"http.request.response_start":ao(e.responseStart),"http.request.response_end":ao(e.responseEnd),"http.request.time_to_first_byte":e.responseStart!=null?e.responseStart/1e3:void 0}):t}function nH(e){return Object.fromEntries(Object.entries(e).filter(([,t])=>t!=null))}const rH=2147483647;let cw=0,Ao={},Rr,Dl;function oH({recordClsStandaloneSpans:e,recordLcpStandaloneSpans:t,client:n}){const r=tf();if(r&&Vr()){r.mark&&Dt.performance.mark("sentry-tracing-init");const o=t?eH(n):uH(),s=cH(),a=e?QF(n):lH();return()=>{o==null||o(),s(),a==null||a()}}return()=>{}}function sH(){Ji("longtask",({entries:e})=>{const t=sr();if(!t)return;const{op:n,start_timestamp:r}=Yt(t);for(const o of e){const s=Mn(Vr()+o.startTime),a=Mn(o.duration);n==="navigation"&&r&&s{const n=sr();if(n)for(const r of t.getEntries()){if(!r.scripts[0])continue;const o=Mn(Vr()+r.startTime),{start_timestamp:s,op:a}=Yt(n);if(a==="navigation"&&s&&o{const t=sr();if(t){for(const n of e)if(n.name==="click"){const r=Mn(Vr()+n.startTime),o=Mn(n.duration),s={name:go(n.target),op:`ui.interaction.${n.name}`,startTime:r,attributes:{[In]:"auto.ui.browser.metrics"}},a=Pk(n.target);a&&(s.attributes["ui.component_name"]=a),ri(t,r,r+o,s)}}})}function lH(){return f4(({metric:e})=>{const t=e.entries[e.entries.length-1];t&&(Ao.cls={value:e.value,unit:""},Dl=t)},!0)}function uH(){return p4(({metric:e})=>{const t=e.entries[e.entries.length-1];t&&(Ao.lcp={value:e.value,unit:"millisecond"},Rr=t)},!0)}function cH(){return UF(({metric:e})=>{e.entries[e.entries.length-1]&&(Ao.ttfb={value:e.value,unit:"millisecond"})})}function dH(e,t){const n=tf(),r=Vr();if(!(n!=null&&n.getEntries)||!r)return;const o=Mn(r),s=n.getEntries(),{op:a,start_timestamp:i}=Yt(e);s.slice(cw).forEach(l=>{const u=Mn(l.startTime),c=Mn(Math.max(0,l.duration));if(!(a==="navigation"&&i&&o+u{eD(l,u.value,u.unit)}),e.setAttribute("performance.timeOrigin",o),e.setAttribute("performance.activationStart",Gu()),bH(e,t)),Rr=void 0,Dl=void 0,Ao={}}function fH(e){if((e==null?void 0:e.entryType)==="measure")try{return e.detail.devtools.track==="Components ⚛"}catch{return}}function pH(e,t,n,r,o,s){if(fH(t)||["mark","measure"].includes(t.entryType)&&Fs(t.name,s))return;const a=Qd(!1),i=Mn(a?a.requestStart:0),l=o+Math.max(n,i),u=o+n,c=u+r,d={[In]:"auto.resource.browser.metrics"};l!==u&&(d["sentry.browser.measure_happened_before_request"]=!0,d["sentry.browser.measure_start_time"]=l),hH(d,t),l<=c&&ri(e,l,c,{name:t.name,op:t.entryType,attributes:d})}function hH(e,t){try{const n=t.detail;if(!n)return;if(typeof n=="object"){for(const[r,o]of Object.entries(n))if(o&&uu(o))e[`sentry.browser.measure.detail.${r}`]=o;else if(o!==void 0)try{e[`sentry.browser.measure.detail.${r}`]=JSON.stringify(o)}catch{}return}if(uu(n)){e["sentry.browser.measure.detail"]=n;return}try{e["sentry.browser.measure.detail"]=JSON.stringify(n)}catch{}}catch{}}function mH(e,t,n){["unloadEvent","redirect","domContentLoadedEvent","loadEvent","connect"].forEach(r=>{Rf(e,t,r,n)}),Rf(e,t,"secureConnection",n,"TLS/SSL"),Rf(e,t,"fetch",n,"cache"),Rf(e,t,"domainLookup",n,"DNS"),gH(e,t,n)}function Rf(e,t,n,r,o=n){const s=vH(n),a=t[s],i=t[`${n}Start`];!i||!a||ri(e,r+Mn(i),r+Mn(a),{op:`browser.${o}`,name:t.name,attributes:{[In]:"auto.ui.browser.metrics",...n==="redirect"&&t.redirectCount!=null?{"http.redirect_count":t.redirectCount}:{}}})}function vH(e){return e==="secureConnection"?"connectEnd":e==="fetch"?"domainLookupStart":`${e}End`}function gH(e,t,n){const r=n+Mn(t.requestStart),o=n+Mn(t.responseEnd),s=n+Mn(t.responseStart);t.responseEnd&&(ri(e,r,o,{op:"browser.request",name:t.name,attributes:{[In]:"auto.ui.browser.metrics"}}),ri(e,s,o,{op:"browser.response",name:t.name,attributes:{[In]:"auto.ui.browser.metrics"}}))}function _H(e,t,n,r,o,s,a){if(t.initiatorType==="xmlhttprequest"||t.initiatorType==="fetch")return;const i=t.initiatorType?`resource.${t.initiatorType}`:"resource.other";if(a!=null&&a.includes(i))return;const l={[In]:"auto.resource.browser.metrics"},u=Hi(n);u.protocol&&(l["url.scheme"]=u.protocol.split(":").pop()),u.host&&(l["server.address"]=u.host),l["url.same_origin"]=n.includes(Dt.location.origin),wH(t,l,[["responseStatus","http.response.status_code"],["transferSize","http.response_transfer_size"],["encodedBodySize","http.response_content_length"],["decodedBodySize","http.decoded_response_content_length"],["renderBlockingStatus","resource.render_blocking_status"],["deliveryType","http.response_delivery_type"]]);const c={...l,...YT(t)},d=s+r,f=d+o;ri(e,d,f,{name:n.replace(Dt.location.origin,""),op:i,attributes:c})}function yH(e){const t=Dt.navigator;if(!t)return;const n=t.connection;n&&(n.effectiveType&&e.setAttribute("effectiveConnectionType",n.effectiveType),n.type&&e.setAttribute("connectionType",n.type),nv(n.rtt)&&(Ao["connection.rtt"]={value:n.rtt,unit:"millisecond"})),nv(t.deviceMemory)&&e.setAttribute("deviceMemory",`${t.deviceMemory} GB`),nv(t.hardwareConcurrency)&&e.setAttribute("hardwareConcurrency",String(t.hardwareConcurrency))}function bH(e,t){Rr&&t.recordLcpOnPageloadSpan&&(Rr.element&&e.setAttribute("lcp.element",go(Rr.element)),Rr.id&&e.setAttribute("lcp.id",Rr.id),Rr.url&&e.setAttribute("lcp.url",Rr.url.trim().slice(0,200)),Rr.loadTime!=null&&e.setAttribute("lcp.loadTime",Rr.loadTime),Rr.renderTime!=null&&e.setAttribute("lcp.renderTime",Rr.renderTime),e.setAttribute("lcp.size",Rr.size)),Dl!=null&&Dl.sources&&t.recordClsOnPageloadSpan&&Dl.sources.forEach((n,r)=>e.setAttribute(`cls.source.${r+1}`,go(n.node)))}function wH(e,t,n){n.forEach(([r,o])=>{const s=e[r];s!=null&&(typeof s=="number"&&s{}}const CH=({entries:e})=>{const t=sr(),n=t?nr(t):void 0,r=n?Yt(n).description:ln().getScopeData().transactionName;e.forEach(o=>{var p,m;const s=o;if(!s.identifier)return;const a=s.name,i=s.renderTime,l=s.loadTime,[u,c]=l?[Mn(l),"load-time"]:i?[Mn(i),"render-time"]:[Pn(),"entry-emission"],d=a==="image-paint"?Mn(Math.max(0,(i??0)-(l??0))):0,f={[In]:"auto.ui.browser.elementtiming",[Js]:"ui.elementtiming",[Nr]:"component","sentry.span_start_time_source":c,"sentry.transaction_name":r,"element.id":s.id,"element.type":((m=(p=s.element)==null?void 0:p.tagName)==null?void 0:m.toLowerCase())||"unknown","element.size":s.naturalWidth&&s.naturalHeight?`${s.naturalWidth}x${s.naturalHeight}`:void 0,"element.render_time":i,"element.load_time":l,"element.url":s.url||void 0,"element.identifier":s.identifier,"element.paint_type":a};aD({name:`element[${s.identifier}]`,attributes:f,startTime:u,onlyIfParent:!0},v=>{v.end(u+d)})})},kH=1e3;let dw,j2,U2;function XT(e){const t="dom";ii(t,e),li(t,TH)}function TH(){if(!Dt.document)return;const e=po.bind(null,"dom"),t=fw(e,!0);Dt.document.addEventListener("click",t,!1),Dt.document.addEventListener("keypress",t,!1),["EventTarget","Node"].forEach(n=>{var s,a;const o=(s=Dt[n])==null?void 0:s.prototype;(a=o==null?void 0:o.hasOwnProperty)!=null&&a.call(o,"addEventListener")&&(Pr(o,"addEventListener",function(i){return function(l,u,c){if(l==="click"||l=="keypress")try{const d=this.__sentry_instrumentation_handlers__=this.__sentry_instrumentation_handlers__||{},f=d[l]=d[l]||{refCount:0};if(!f.handler){const p=fw(e);f.handler=p,i.call(this,l,p,c)}f.refCount++}catch{}return i.call(this,l,u,c)}}),Pr(o,"removeEventListener",function(i){return function(l,u,c){if(l==="click"||l=="keypress")try{const d=this.__sentry_instrumentation_handlers__||{},f=d[l];f&&(f.refCount--,f.refCount<=0&&(i.call(this,l,f.handler,c),f.handler=void 0,delete d[l]),Object.keys(d).length===0&&delete this.__sentry_instrumentation_handlers__)}catch{}return i.call(this,l,u,c)}}))})}function $H(e){if(e.type!==j2)return!1;try{if(!e.target||e.target._sentryId!==U2)return!1}catch{}return!0}function xH(e,t){return e!=="keypress"?!1:t!=null&&t.tagName?!(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.isContentEditable):!0}function fw(e,t=!1){return n=>{if(!n||n._sentryCaptured)return;const r=IH(n);if(xH(n.type,r))return;ro(n,"_sentryCaptured",!0),r&&!r._sentryId&&ro(r,"_sentryId",eo());const o=n.type==="keypress"?"input":n.type;$H(n)||(e({event:n,name:o,global:t}),j2=n.type,U2=r?r._sentryId:void 0),clearTimeout(dw),dw=Dt.setTimeout(()=>{U2=void 0,j2=void 0},kH)}}function IH(e){try{return e.target}catch{return null}}let Pf;function z0(e){const t="history";ii(t,e),li(t,AH)}function AH(){if(Dt.addEventListener("popstate",()=>{const t=Dt.location.href,n=Pf;if(Pf=t,n===t)return;po("history",{from:n,to:t})}),!Qz())return;function e(t){return function(...n){const r=n.length>2?n[2]:void 0;if(r){const o=Pf,s=MH(String(r));if(Pf=s,o===s)return t.apply(this,n);po("history",{from:o,to:s})}return t.apply(this,n)}}Pr(Dt.history,"pushState",e),Pr(Dt.history,"replaceState",e)}function MH(e){try{return new URL(e,Dt.location.origin).toString()}catch{return e}}const hp={};function JT(e){const t=hp[e];if(t)return t;let n=Dt[e];if(B2(n))return hp[e]=n.bind(Dt);const r=Dt.document;if(r&&typeof r.createElement=="function")try{const o=r.createElement("iframe");o.hidden=!0,r.head.appendChild(o);const s=o.contentWindow;s!=null&&s[e]&&(n=s[e]),r.head.removeChild(o)}catch(o){mu&&it.warn(`Could not create sandbox iframe for ${e} check, bailing to window.${e}: `,o)}return n&&(hp[e]=n.bind(Dt))}function OH(e){hp[e]=void 0}function nf(...e){return JT("setTimeout")(...e)}const Ti="__sentry_xhr_v3__";function QT(e){const t="xhr";ii(t,e),li(t,RH)}function RH(){if(!Dt.XMLHttpRequest)return;const e=XMLHttpRequest.prototype;e.open=new Proxy(e.open,{apply(t,n,r){const o=new Error,s=Pn()*1e3,a=zs(r[0])?r[0].toUpperCase():void 0,i=PH(r[1]);if(!a||!i)return t.apply(n,r);n[Ti]={method:a,url:i,request_headers:{}},a==="POST"&&i.match(/sentry_key/)&&(n.__sentry_own_request__=!0);const l=()=>{const u=n[Ti];if(u&&n.readyState===4){try{u.status_code=n.status}catch{}const c={endTimestamp:Pn()*1e3,startTimestamp:s,xhr:n,virtualError:o};po("xhr",c)}};return"onreadystatechange"in n&&typeof n.onreadystatechange=="function"?n.onreadystatechange=new Proxy(n.onreadystatechange,{apply(u,c,d){return l(),u.apply(c,d)}}):n.addEventListener("readystatechange",l),n.setRequestHeader=new Proxy(n.setRequestHeader,{apply(u,c,d){const[f,p]=d,m=c[Ti];return m&&zs(f)&&zs(p)&&(m.request_headers[f.toLowerCase()]=p),u.apply(c,d)}}),t.apply(n,r)}}),e.send=new Proxy(e.send,{apply(t,n,r){const o=n[Ti];if(!o)return t.apply(n,r);r[0]!==void 0&&(o.body=r[0]);const s={startTimestamp:Pn()*1e3,xhr:n};return po("xhr",s),t.apply(n,r)}})}function PH(e){if(zs(e))return e;try{return e.toString()}catch{}}function ZT(e){return new URLSearchParams(e).toString()}function e$(e,t=it){try{if(typeof e=="string")return[e];if(e instanceof URLSearchParams)return[e.toString()];if(e instanceof FormData)return[ZT(e)];if(!e)return[void 0]}catch(n){return mu&&t.error(n,"Failed to serialize body",e),[void 0,"BODY_PARSE_ERROR"]}return mu&&t.log("Skipping network body because of body type",e),[void 0,"UNPARSEABLE_BODY_TYPE"]}function t$(e=[]){if(!(e.length!==2||typeof e[1]!="object"))return e[1].body}const rv=[],mp=new Map,NH=60;function LH(){if(tf()&&Vr()){const t=BH();return()=>{t()}}return()=>{}}const pw={click:"click",pointerdown:"click",pointerup:"click",mousedown:"click",mouseup:"click",touchstart:"click",touchend:"click",mouseover:"hover",mouseout:"hover",mouseenter:"hover",mouseleave:"hover",pointerover:"hover",pointerout:"hover",pointerenter:"hover",pointerleave:"hover",dragstart:"drag",dragend:"drag",drag:"drag",dragenter:"drag",dragleave:"drag",dragover:"drag",drop:"drag",keydown:"press",keyup:"press",keypress:"press",input:"press"};function BH(){return UT(DH)}const DH=({metric:e})=>{if(e.value==null)return;const t=Mn(e.value);if(t>NH)return;const n=e.entries.find(m=>m.duration===e.value&&pw[m.name]);if(!n)return;const{interactionId:r}=n,o=pw[n.name],s=Mn(Vr()+n.startTime),a=sr(),i=a?nr(a):void 0,u=(r!=null?mp.get(r):void 0)||i,c=u?Yt(u).description:ln().getScopeData().transactionName,d=go(n.target),f={[In]:"auto.http.browser.inp",[Js]:`ui.interaction.${o}`,[qu]:n.duration},p=h4({name:d,transaction:c,attributes:f,startTime:s});p&&(p.addEvent("inp",{[Yd]:"millisecond",[Xd]:e.value}),p.end(s+t))};function zH(){const e=({entries:t})=>{const n=sr(),r=n&&nr(n);t.forEach(o=>{if(!XF(o)||!r)return;const s=o.interactionId;if(s!=null&&!mp.has(s)){if(rv.length>10){const a=rv.shift();mp.delete(a)}rv.push(s),mp.set(s,r)}})};Ji("event",e),Ji("first-input",e)}function FH(e,t=JT("fetch")){let n=0,r=0;async function o(s){const a=s.body.length;n+=a,r++;const i={body:s.body,method:"POST",referrerPolicy:"strict-origin",headers:e.headers,keepalive:n<=6e4&&r<15,...e.fetchOptions};try{const l=await t(e.url,i);return{statusCode:l.status,headers:{"x-sentry-rate-limits":l.headers.get("X-Sentry-Rate-Limits"),"retry-after":l.headers.get("Retry-After")}}}catch(l){throw OH("fetch"),l}finally{n-=a,r--}}return dz(e,o)}const HH=30,VH=50;function W2(e,t,n,r){const o={filename:e,function:t===""?Yi:t,in_app:!0};return n!==void 0&&(o.lineno=n),r!==void 0&&(o.colno=r),o}const jH=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,UH=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,WH=/\((\S*)(?::(\d+))(?::(\d+))\)/,qH=/at (.+?) ?\(data:(.+?),/,KH=e=>{const t=e.match(qH);if(t)return{filename:``,function:t[1]};const n=jH.exec(e);if(n){const[,o,s,a]=n;return W2(o,Yi,+s,+a)}const r=UH.exec(e);if(r){if(r[2]&&r[2].indexOf("eval")===0){const i=WH.exec(r[2]);i&&(r[2]=i[1],r[3]=i[2],r[4]=i[3])}const[s,a]=n$(r[1]||Yi,r[2]);return W2(a,s,r[3]?+r[3]:void 0,r[4]?+r[4]:void 0)}},GH=[HH,KH],YH=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,XH=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,JH=e=>{const t=YH.exec(e);if(t){if(t[3]&&t[3].indexOf(" > eval")>-1){const s=XH.exec(t[3]);s&&(t[1]=t[1]||"eval",t[3]=s[1],t[4]=s[2],t[5]="")}let r=t[3],o=t[1]||Yi;return[o,r]=n$(o,r),W2(r,o,t[4]?+t[4]:void 0,t[5]?+t[5]:void 0)}},QH=[VH,JH],ZH=[GH,QH],eV=$k(...ZH),n$=(e,t)=>{const n=e.indexOf("safari-extension")!==-1,r=e.indexOf("safari-web-extension")!==-1;return n||r?[e.indexOf("@")!==-1?e.split("@")[0]:Yi,n?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]},_o=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,Nf=1024,tV="Breadcrumbs",nV=(e={})=>{const t={console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0,...e};return{name:tV,setup(n){t.console&&Dz(aV(n)),t.dom&&XT(sV(n,t.dom)),t.xhr&&QT(iV(n)),t.fetch&&OT(lV(n)),t.history&&z0(uV(n)),t.sentry&&n.on("beforeSendEvent",oV(n))}}},rV=nV;function oV(e){return function(n){Jt()===e&&ni({category:`sentry.${n.type==="transaction"?"transaction":"event"}`,event_id:n.event_id,level:n.level,message:Ei(n)},{event:n})}}function sV(e,t){return function(r){if(Jt()!==e)return;let o,s,a=typeof t=="object"?t.serializeAttribute:void 0,i=typeof t=="object"&&typeof t.maxStringLength=="number"?t.maxStringLength:void 0;i&&i>Nf&&(_o&&it.warn(`\`dom.maxStringLength\` cannot exceed ${Nf}, but a value of ${i} was configured. Sentry will use ${Nf} instead.`),i=Nf),typeof a=="string"&&(a=[a]);try{const u=r.event,c=cV(u)?u.target:u;o=go(c,{keyAttrs:a,maxStringLength:i}),s=Pk(c)}catch{o=""}if(o.length===0)return;const l={category:`ui.${r.name}`,message:o};s&&(l.data={"ui.component_name":s}),ni(l,{event:r.event,name:r.name,global:r.global})}}function aV(e){return function(n){if(Jt()!==e)return;const r={category:"console",data:{arguments:n.args,logger:"console"},level:xT(n.level),message:w6(n.args," ")};if(n.level==="assert")if(n.args[0]===!1)r.message=`Assertion failed: ${w6(n.args.slice(1)," ")||"console.assert"}`,r.data.arguments=n.args.slice(1);else return;ni(r,{input:n.args,level:n.level})}}function iV(e){return function(n){if(Jt()!==e)return;const{startTimestamp:r,endTimestamp:o}=n,s=n.xhr[Ti];if(!r||!o||!s)return;const{method:a,url:i,status_code:l,body:u}=s,c={method:a,url:i,status_code:l},d={xhr:n.xhr,input:u,startTimestamp:r,endTimestamp:o},f={category:"xhr",data:c,type:"http",level:MT(l)};e.emit("beforeOutgoingRequestBreadcrumb",f,d),ni(f,d)}}function lV(e){return function(n){if(Jt()!==e)return;const{startTimestamp:r,endTimestamp:o}=n;if(o&&!(n.fetchData.url.match(/sentry_key/)&&n.fetchData.method==="POST"))if(n.fetchData.method,n.fetchData.url,n.error){const s=n.fetchData,a={data:n.error,input:n.args,startTimestamp:r,endTimestamp:o},i={category:"fetch",data:s,level:"error",type:"http"};e.emit("beforeOutgoingRequestBreadcrumb",i,a),ni(i,a)}else{const s=n.response,a={...n.fetchData,status_code:s==null?void 0:s.status};n.fetchData.request_body_size,n.fetchData.response_body_size,s==null||s.status;const i={input:n.args,response:s,startTimestamp:r,endTimestamp:o},l={category:"fetch",data:a,type:"http",level:MT(a.status_code)};e.emit("beforeOutgoingRequestBreadcrumb",l,i),ni(l,i)}}}function uV(e){return function(n){if(Jt()!==e)return;let r=n.from,o=n.to;const s=Hi(tn.location.href);let a=r?Hi(r):void 0;const i=Hi(o);a!=null&&a.path||(a=s),s.protocol===i.protocol&&s.host===i.host&&(o=i.relative),s.protocol===a.protocol&&s.host===a.host&&(r=a.relative),ni({category:"navigation",data:{from:r,to:o}})}}function cV(e){return!!e&&!!e.target}const dV=["EventTarget","Window","Node","ApplicationCache","AudioTrackList","BroadcastChannel","ChannelMergerNode","CryptoOperation","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","KeyOperation","MediaController","MessagePort","ModalWindow","Notification","SVGElementInstance","Screen","SharedWorker","TextTrack","TextTrackCue","TextTrackList","WebSocket","WebSocketWorker","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"],fV="BrowserApiErrors",pV=(e={})=>{const t={XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0,unregisterOriginalCallbacks:!1,...e};return{name:fV,setupOnce(){t.setTimeout&&Pr(tn,"setTimeout",hw),t.setInterval&&Pr(tn,"setInterval",hw),t.requestAnimationFrame&&Pr(tn,"requestAnimationFrame",mV),t.XMLHttpRequest&&"XMLHttpRequest"in tn&&Pr(XMLHttpRequest.prototype,"send",vV);const n=t.eventTarget;n&&(Array.isArray(n)?n:dV).forEach(o=>gV(o,t))}}},hV=pV;function hw(e){return function(...t){const n=t[0];return t[0]=hu(n,{mechanism:{handled:!1,type:`auto.browser.browserapierrors.${Gs(e)}`}}),e.apply(this,t)}}function mV(e){return function(t){return e.apply(this,[hu(t,{mechanism:{data:{handler:Gs(e)},handled:!1,type:"auto.browser.browserapierrors.requestAnimationFrame"}})])}}function vV(e){return function(...t){const n=this;return["onload","onerror","onprogress","onreadystatechange"].forEach(o=>{o in n&&typeof n[o]=="function"&&Pr(n,o,function(s){const a={mechanism:{data:{handler:Gs(s)},handled:!1,type:`auto.browser.browserapierrors.xhr.${o}`}},i=qy(s);return i&&(a.mechanism.data.handler=Gs(i)),hu(s,a)})}),e.apply(this,t)}}function gV(e,t){var o,s;const r=(o=tn[e])==null?void 0:o.prototype;(s=r==null?void 0:r.hasOwnProperty)!=null&&s.call(r,"addEventListener")&&(Pr(r,"addEventListener",function(a){return function(i,l,u){try{_V(l)&&(l.handleEvent=hu(l.handleEvent,{mechanism:{data:{handler:Gs(l),target:e},handled:!1,type:"auto.browser.browserapierrors.handleEvent"}}))}catch{}return t.unregisterOriginalCallbacks&&yV(this,i,l),a.apply(this,[i,hu(l,{mechanism:{data:{handler:Gs(l),target:e},handled:!1,type:"auto.browser.browserapierrors.addEventListener"}}),u])}}),Pr(r,"removeEventListener",function(a){return function(i,l,u){try{const c=l.__sentry_wrapped__;c&&a.call(this,i,c,u)}catch{}return a.call(this,i,l,u)}}))}function _V(e){return typeof e.handleEvent=="function"}function yV(e,t,n){e&&typeof e=="object"&&"removeEventListener"in e&&typeof e.removeEventListener=="function"&&e.removeEventListener(t,n)}const bV=()=>({name:"BrowserSession",setupOnce(){if(typeof tn.document>"u"){_o&&it.warn("Using the `browserSessionIntegration` in non-browser environments is not supported.");return}W6({ignoreDuration:!0}),q6(),z0(({from:e,to:t})=>{e!==void 0&&e!==t&&(W6({ignoreDuration:!0}),q6())})}}),wV="GlobalHandlers",SV=(e={})=>{const t={onerror:!0,onunhandledrejection:!0,...e};return{name:wV,setupOnce(){Error.stackTraceLimit=50},setup(n){t.onerror&&(CV(n),mw("onerror")),t.onunhandledrejection&&(kV(n),mw("onunhandledrejection"))}}},EV=SV;function CV(e){xk(t=>{const{stackParser:n,attachStacktrace:r}=r$();if(Jt()!==e||PT())return;const{msg:o,url:s,line:a,column:i,error:l}=t,u=xV(i4(n,l||o,void 0,r,!1),s,a,i);u.level="error",cT(u,{originalException:l,mechanism:{handled:!1,type:"auto.browser.global_handlers.onerror"}})})}function kV(e){Ik(t=>{const{stackParser:n,attachStacktrace:r}=r$();if(Jt()!==e||PT())return;const o=TV(t),s=uu(o)?$V(o):i4(n,o,void 0,r,!0);s.level="error",cT(s,{originalException:o,mechanism:{handled:!1,type:"auto.browser.global_handlers.onunhandledrejection"}})})}function TV(e){if(uu(e))return e;try{if("reason"in e)return e.reason;if("detail"in e&&"reason"in e.detail)return e.detail.reason}catch{}return e}function $V(e){return{exception:{values:[{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(e)}`}]}}}function xV(e,t,n,r){const o=e.exception=e.exception||{},s=o.values=o.values||[],a=s[0]=s[0]||{},i=a.stacktrace=a.stacktrace||{},l=i.frames=i.frames||[],u=r,c=n,d=IV(t)??Uu();return l.length===0&&l.push({colno:u,filename:d,function:Yi,in_app:!0,lineno:c}),e}function mw(e){_o&&it.log(`Global Handler attached: ${e}`)}function r$(){const e=Jt();return(e==null?void 0:e.getOptions())||{stackParser:()=>[],attachStacktrace:!1}}function IV(e){if(!(!zs(e)||e.length===0)){if(e.startsWith("data:")){const t=e.match(/^data:([^;]+)/),n=t?t[1]:"text/javascript",r=e.includes("base64,");return``}return e.slice(0,1024)}}const AV=()=>({name:"HttpContext",preprocessEvent(e){var r;if(!tn.navigator&&!tn.location&&!tn.document)return;const t=o4(),n={...t.headers,...(r=e.request)==null?void 0:r.headers};e.request={...t,...e.request,headers:n}}}),MV="cause",OV=5,RV="LinkedErrors",PV=(e={})=>{const t=e.limit||OV,n=e.key||MV;return{name:RV,preprocessEvent(r,o,s){const a=s.getOptions();Bz(s4,a.stackParser,n,t,r,o)}}},NV=PV;function LV(){return BV()?(_o&&la(()=>{console.error("[Sentry] You cannot use Sentry.init() in a browser extension, see: https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/")}),!0):!1}function BV(){var s;if(typeof tn.window>"u")return!1;const e=tn;if(e.nw)return!1;const t=e.chrome||e.browser;if(!((s=t==null?void 0:t.runtime)!=null&&s.id))return!1;const n=Uu(),r=["chrome-extension","moz-extension","ms-browser-extension","safari-web-extension"];return!(tn===tn.top&&r.some(a=>n.startsWith(`${a}://`)))}function o$(e){return[Iz(),kz(),hV(),rV(),EV(),NV(),Vz(),AV(),bV()]}function DV(e={}){const t=!e.skipBrowserExtensionCheck&&LV(),n={...e,enabled:t?!1:e.enabled,stackParser:OL(e.stackParser||eV),integrations:HD({integrations:e.integrations,defaultIntegrations:e.defaultIntegrations==null?o$():e.defaultIntegrations}),transport:e.transport||FH};return oz(SF,n)}const wn=Xt,m4="sentryReplaySession",zV="replay_event",v4="Unable to send Replay",FV=3e5,HV=9e5,VV=5e3,jV=5500,UV=6e4,WV=5e3,qV=3,vw=15e4,Lf=5e3,KV=3e3,GV=300,g4=2e7,YV=4999,XV=15e3,gw=36e5;var JV=Object.defineProperty,QV=(e,t,n)=>t in e?JV(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_w=(e,t,n)=>QV(e,typeof t!="symbol"?t+"":t,n),Bn=(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))(Bn||{});function ZV(e){return e.nodeType===e.ELEMENT_NODE}function jc(e){const t=e==null?void 0:e.host;return(t==null?void 0:t.shadowRoot)===e}function Uc(e){return Object.prototype.toString.call(e)==="[object ShadowRoot]"}function ej(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 tj(e){const{cssText:t}=e;if(t.split('"').length<3)return t;const n=["@import",`url(${JSON.stringify(e.href)})`];return e.layerName===""?n.push("layer"):e.layerName&&n.push(`layer(${e.layerName})`),e.supportsText&&n.push(`supports(${e.supportsText})`),e.media.length&&n.push(e.media.mediaText),n.join(" ")+";"}function Dh(e){try{const t=e.rules||e.cssRules;return t?ej(Array.from(t,s$).join("")):null}catch{return null}}function nj(e){let t="";for(let n=0;nthis.removeNodeFromMap(r))}has(t){return this.idNodeMap.has(t)}hasNode(t){return this.nodeMetaMap.has(t)}add(t,n){const r=n.id;this.idNodeMap.set(r,t),this.nodeMetaMap.set(t,n)}replace(t,n){const r=this.getNode(t);if(r){const o=this.nodeMetaMap.get(r);o&&this.nodeMetaMap.set(n,o)}this.idNodeMap.set(t,n)}reset(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap}}function aj(){return new a$}function F0({maskInputOptions:e,tagName:t,type:n}){return t==="OPTION"&&(t="SELECT"),!!(e[t.toLowerCase()]||n&&e[n]||n==="password"||t==="INPUT"&&!n&&e.text)}function vd({isMasked:e,element:t,value:n,maskInputFn:r}){let o=n||"";return e?(r&&(o=r(o,t)),"*".repeat(o.length)):o}function vu(e){return e.toLowerCase()}function q2(e){return e.toUpperCase()}const yw="__rrweb_original__";function ij(e){const t=e.getContext("2d");if(!t)return!0;const n=50;for(let r=0;rl!==0))return!1}return!0}function _4(e){const t=e.type;return e.hasAttribute("data-rr-is-password")?"password":t?vu(t):null}function zh(e,t,n){return t==="INPUT"&&(n==="radio"||n==="checkbox")?e.getAttribute("value")||"":e.value}function i$(e,t){let n;try{n=new URL(e,t??window.location.href)}catch{return null}const r=/\.([0-9a-z]+)(?:$)/i,o=n.pathname.match(r);return(o==null?void 0:o[1])??null}const bw={};function l$(e){const t=bw[e];if(t)return t;const n=window.document;let r=window[e];if(n&&typeof n.createElement=="function")try{const o=n.createElement("iframe");o.hidden=!0,n.head.appendChild(o);const s=o.contentWindow;s&&s[e]&&(r=s[e]),n.head.removeChild(o)}catch{}return bw[e]=r.bind(window)}function K2(...e){return l$("setTimeout")(...e)}function u$(...e){return l$("clearTimeout")(...e)}function c$(e){try{return e.contentDocument}catch{}}let lj=1;const uj=new RegExp("[^a-z0-9-_:]"),gd=-2;function y4(){return lj++}function cj(e){if(e instanceof HTMLFormElement)return"form";const t=vu(e.tagName);return uj.test(t)?"div":t}function dj(e){let t="";return e.indexOf("//")>-1?t=e.split("/").slice(0,3).join("/"):t=e.split("/")[0],t=t.split("?")[0],t}let _l,ww;const fj=/url\((?:(')([^']*)'|(")(.*?)"|([^)]*))\)/gm,pj=/^(?:[a-z+]+:)?\/\//i,hj=/^www\..*/i,mj=/^(data:)([^,]*),(.*)/i;function Fh(e,t){return(e||"").replace(fj,(n,r,o,s,a,i)=>{const l=o||a||i,u=r||s||"";if(!l)return n;if(pj.test(l)||hj.test(l))return`url(${u}${l}${u})`;if(mj.test(l))return`url(${u}${l}${u})`;if(l[0]==="/")return`url(${u}${dj(t)+l}${u})`;const c=t.split("/"),d=l.split("/");c.pop();for(const f of d)f!=="."&&(f===".."?c.pop():c.push(f));return`url(${u}${c.join("/")}${u})`})}const vj=/^[^ \t\n\r\u000c]+/,gj=/^[, \t\n\r\u000c]+/;function _j(e,t){if(t.trim()==="")return t;let n=0;function r(s){let a;const i=s.exec(t.substring(n));return i?(a=i[0],n+=a.length,a):""}const o=[];for(;r(gj),!(n>=t.length);){let s=r(vj);if(s.slice(-1)===",")s=zl(e,s.substring(0,s.length-1)),o.push(s);else{let a="";s=zl(e,s);let i=!1;for(;;){const l=t.charAt(n);if(l===""){o.push((s+a).trim());break}else if(i)l===")"&&(i=!1);else if(l===","){n+=1,o.push((s+a).trim());break}else l==="("&&(i=!0);a+=l,n+=1}}}return o.join(", ")}const Sw=new WeakMap;function zl(e,t){return!t||t.trim()===""?t:H0(e,t)}function yj(e){return!!(e.tagName==="svg"||e.ownerSVGElement)}function H0(e,t){let n=Sw.get(e);if(n||(n=e.createElement("a"),Sw.set(e,n)),!t)t="";else if(t.startsWith("blob:")||t.startsWith("data:"))return t;return n.setAttribute("href",t),n.href}function d$(e,t,n,r,o,s){return r&&(n==="src"||n==="href"&&!(t==="use"&&r[0]==="#")||n==="xlink:href"&&r[0]!=="#"||n==="background"&&(t==="table"||t==="td"||t==="th")?zl(e,r):n==="srcset"?_j(e,r):n==="style"?Fh(r,H0(e)):t==="object"&&n==="data"?zl(e,r):typeof s=="function"?s(n,r,o):r)}function f$(e,t,n){return(e==="video"||e==="audio")&&t==="autoplay"}function bj(e,t,n,r){try{if(r&&e.matches(r))return!1;if(typeof t=="string"){if(e.classList.contains(t))return!0}else for(let o=e.classList.length;o--;){const s=e.classList[o];if(t.test(s))return!0}if(n)return e.matches(n)}catch{}return!1}function wj(e,t){for(let n=e.classList.length;n--;){const r=e.classList[n];if(t.test(r))return!0}return!1}function $i(e,t,n=1/0,r=0){return!e||e.nodeType!==e.ELEMENT_NODE||r>n?-1:t(e)?r:$i(e.parentNode,t,n,r+1)}function Fl(e,t){return n=>{const r=n;if(r===null)return!1;try{if(e){if(typeof e=="string"){if(r.matches(`.${e}`))return!0}else if(wj(r,e))return!0}return!!(t&&r.matches(t))}catch{return!1}}}function gu(e,t,n,r,o,s){try{const a=e.nodeType===e.ELEMENT_NODE?e:e.parentElement;if(a===null)return!1;if(a.tagName==="INPUT"){const u=a.getAttribute("autocomplete");if(["current-password","new-password","cc-number","cc-exp","cc-exp-month","cc-exp-year","cc-csc"].includes(u))return!0}let i=-1,l=-1;if(s){if(l=$i(a,Fl(r,o)),l<0)return!0;i=$i(a,Fl(t,n),l>=0?l:1/0)}else{if(i=$i(a,Fl(t,n)),i<0)return!1;l=$i(a,Fl(r,o),i>=0?i:1/0)}return i>=0?l>=0?i<=l:!0:l>=0?!1:!!s}catch{}return!!s}function Sj(e,t,n){const r=e.contentWindow;if(!r)return;let o=!1,s;try{s=r.document.readyState}catch{return}if(s!=="complete"){const i=K2(()=>{o||(t(),o=!0)},n);e.addEventListener("load",()=>{u$(i),o=!0,t()});return}const a="about:blank";if(r.location.href!==a||e.src===a||e.src==="")return K2(t,0),e.addEventListener("load",t);e.addEventListener("load",t)}function Ej(e,t,n){let r=!1,o;try{o=e.sheet}catch{return}if(o)return;const s=K2(()=>{r||(t(),r=!0)},n);e.addEventListener("load",()=>{u$(s),r=!0,t()})}function Cj(e,t){const{doc:n,mirror:r,blockClass:o,blockSelector:s,unblockSelector:a,maskAllText:i,maskAttributeFn:l,maskTextClass:u,unmaskTextClass:c,maskTextSelector:d,unmaskTextSelector:f,inlineStylesheet:p,maskInputOptions:m={},maskTextFn:v,maskInputFn:g,dataURLOptions:b={},inlineImages:_,recordCanvas:y,keepIframeSrcFn:S,newlyAddedElement:w=!1}=t,E=kj(n,r);switch(e.nodeType){case e.DOCUMENT_NODE:return e.compatMode!=="CSS1Compat"?{type:Bn.Document,childNodes:[],compatMode:e.compatMode}:{type:Bn.Document,childNodes:[]};case e.DOCUMENT_TYPE_NODE:return{type:Bn.DocumentType,name:e.name,publicId:e.publicId,systemId:e.systemId,rootId:E};case e.ELEMENT_NODE:return $j(e,{doc:n,blockClass:o,blockSelector:s,unblockSelector:a,inlineStylesheet:p,maskAttributeFn:l,maskInputOptions:m,maskInputFn:g,dataURLOptions:b,inlineImages:_,recordCanvas:y,keepIframeSrcFn:S,newlyAddedElement:w,rootId:E,maskTextClass:u,unmaskTextClass:c,maskTextSelector:d,unmaskTextSelector:f});case e.TEXT_NODE:return Tj(e,{doc:n,maskAllText:i,maskTextClass:u,unmaskTextClass:c,maskTextSelector:d,unmaskTextSelector:f,maskTextFn:v,maskInputOptions:m,maskInputFn:g,rootId:E});case e.CDATA_SECTION_NODE:return{type:Bn.CDATA,textContent:"",rootId:E};case e.COMMENT_NODE:return{type:Bn.Comment,textContent:e.textContent||"",rootId:E};default:return!1}}function kj(e,t){if(!t.hasNode(e))return;const n=t.getId(e);return n===1?void 0:n}function Tj(e,t){var b;const{maskAllText:n,maskTextClass:r,unmaskTextClass:o,maskTextSelector:s,unmaskTextSelector:a,maskTextFn:i,maskInputOptions:l,maskInputFn:u,rootId:c}=t,d=e.parentNode&&e.parentNode.tagName;let f=e.textContent;const p=d==="STYLE"?!0:void 0,m=d==="SCRIPT"?!0:void 0,v=d==="TEXTAREA"?!0:void 0;if(p&&f){try{e.nextSibling||e.previousSibling||(b=e.parentNode.sheet)!=null&&b.cssRules&&(f=Dh(e.parentNode.sheet))}catch(_){console.warn(`Cannot get CSS styles from text's parentNode. Error: ${_}`,e)}f=Fh(f,H0(t.doc))}m&&(f="SCRIPT_PLACEHOLDER");const g=gu(e,r,s,o,a,n);if(!p&&!m&&!v&&f&&g&&(f=i?i(f,e.parentElement):f.replace(/[\S]/g,"*")),v&&f&&(l.textarea||g)&&(f=u?u(f,e.parentNode):f.replace(/[\S]/g,"*")),d==="OPTION"&&f){const _=F0({type:null,tagName:d,maskInputOptions:l});f=vd({isMasked:gu(e,r,s,o,a,_),element:e,value:f,maskInputFn:u})}return{type:Bn.Text,textContent:f||"",isStyle:p,rootId:c}}function $j(e,t){const{doc:n,blockClass:r,blockSelector:o,unblockSelector:s,inlineStylesheet:a,maskInputOptions:i={},maskAttributeFn:l,maskInputFn:u,dataURLOptions:c={},inlineImages:d,recordCanvas:f,keepIframeSrcFn:p,newlyAddedElement:m=!1,rootId:v,maskTextClass:g,unmaskTextClass:b,maskTextSelector:_,unmaskTextSelector:y}=t,S=bj(e,r,o,s),w=cj(e);let E={};const T=e.attributes.length;for(let $=0;$N.href===e.href);let x=null;$&&(x=Dh($)),x&&(E.rel=null,E.href=null,E.crossorigin=null,E._cssText=Fh(x,$.href))}if(w==="style"&&e.sheet&&!(e.innerText||e.textContent||"").trim().length){const $=Dh(e.sheet);$&&(E._cssText=Fh($,H0(n)))}if(w==="input"||w==="textarea"||w==="select"||w==="option"){const $=e,x=_4($),N=zh($,q2(w),x),I=$.checked;if(x!=="submit"&&x!=="button"&&N){const L=gu($,g,_,b,y,F0({type:x,tagName:q2(w),maskInputOptions:i}));E.value=vd({isMasked:L,element:$,value:N,maskInputFn:u})}I&&(E.checked=I)}if(w==="option"&&(e.selected&&!i.select?E.selected=!0:delete E.selected),w==="canvas"&&f){if(e.__context==="2d")ij(e)||(E.rr_dataURL=e.toDataURL(c.type,c.quality));else if(!("__context"in e)){const $=e.toDataURL(c.type,c.quality),x=n.createElement("canvas");x.width=e.width,x.height=e.height;const N=x.toDataURL(c.type,c.quality);$!==N&&(E.rr_dataURL=$)}}if(w==="img"&&d){_l||(_l=n.createElement("canvas"),ww=_l.getContext("2d"));const $=e,x=$.currentSrc||$.getAttribute("src")||"",N=$.crossOrigin,I=()=>{$.removeEventListener("load",I);try{_l.width=$.naturalWidth,_l.height=$.naturalHeight,ww.drawImage($,0,0),E.rr_dataURL=_l.toDataURL(c.type,c.quality)}catch(L){if($.crossOrigin!=="anonymous"){$.crossOrigin="anonymous",$.complete&&$.naturalWidth!==0?I():$.addEventListener("load",I);return}else console.warn(`Cannot inline img src=${x}! Error: ${L}`)}$.crossOrigin==="anonymous"&&(N?E.crossOrigin=N:$.removeAttribute("crossorigin"))};$.complete&&$.naturalWidth!==0?I():$.addEventListener("load",I)}if((w==="audio"||w==="video")&&(E.rr_mediaState=e.paused?"paused":"played",E.rr_mediaCurrentTime=e.currentTime),m||(e.scrollLeft&&(E.rr_scrollLeft=e.scrollLeft),e.scrollTop&&(E.rr_scrollTop=e.scrollTop)),S){const{width:$,height:x}=e.getBoundingClientRect();E={class:E.class,rr_width:`${$}px`,rr_height:`${x}px`}}w==="iframe"&&!p(E.src)&&(!S&&!c$(e)&&(E.rr_src=E.src),delete E.src);let C;try{customElements.get(w)&&(C=!0)}catch{}return{type:Bn.Element,tagName:w,attributes:E,childNodes:[],isSVG:yj(e)||void 0,needBlock:S,rootId:v,isCustom:C}}function _n(e){return e==null?"":e.toLowerCase()}function xj(e,t){if(t.comment&&e.type===Bn.Comment)return!0;if(e.type===Bn.Element){if(t.script&&(e.tagName==="script"||e.tagName==="link"&&(e.attributes.rel==="preload"||e.attributes.rel==="modulepreload")||e.tagName==="link"&&e.attributes.rel==="prefetch"&&typeof e.attributes.href=="string"&&i$(e.attributes.href)==="js"))return!0;if(t.headFavicon&&(e.tagName==="link"&&e.attributes.rel==="shortcut icon"||e.tagName==="meta"&&(_n(e.attributes.name).match(/^msapplication-tile(image|color)$/)||_n(e.attributes.name)==="application-name"||_n(e.attributes.rel)==="icon"||_n(e.attributes.rel)==="apple-touch-icon"||_n(e.attributes.rel)==="shortcut icon")))return!0;if(e.tagName==="meta"){if(t.headMetaDescKeywords&&_n(e.attributes.name).match(/^description|keywords$/))return!0;if(t.headMetaSocial&&(_n(e.attributes.property).match(/^(og|twitter|fb):/)||_n(e.attributes.name).match(/^(og|twitter):/)||_n(e.attributes.name)==="pinterest"))return!0;if(t.headMetaRobots&&(_n(e.attributes.name)==="robots"||_n(e.attributes.name)==="googlebot"||_n(e.attributes.name)==="bingbot"))return!0;if(t.headMetaHttpEquiv&&e.attributes["http-equiv"]!==void 0)return!0;if(t.headMetaAuthorship&&(_n(e.attributes.name)==="author"||_n(e.attributes.name)==="generator"||_n(e.attributes.name)==="framework"||_n(e.attributes.name)==="publisher"||_n(e.attributes.name)==="progid"||_n(e.attributes.property).match(/^article:/)||_n(e.attributes.property).match(/^product:/)))return!0;if(t.headMetaVerification&&(_n(e.attributes.name)==="google-site-verification"||_n(e.attributes.name)==="yandex-verification"||_n(e.attributes.name)==="csrf-token"||_n(e.attributes.name)==="p:domain_verify"||_n(e.attributes.name)==="verify-v1"||_n(e.attributes.name)==="verification"||_n(e.attributes.name)==="shopify-checkout-api-token"))return!0}}return!1}function Hl(e,t){const{doc:n,mirror:r,blockClass:o,blockSelector:s,unblockSelector:a,maskAllText:i,maskTextClass:l,unmaskTextClass:u,maskTextSelector:c,unmaskTextSelector:d,skipChild:f=!1,inlineStylesheet:p=!0,maskInputOptions:m={},maskAttributeFn:v,maskTextFn:g,maskInputFn:b,slimDOMOptions:_,dataURLOptions:y={},inlineImages:S=!1,recordCanvas:w=!1,onSerialize:E,onIframeLoad:T,iframeLoadTimeout:C=5e3,onBlockedImageLoad:$,onStylesheetLoad:x,stylesheetLoadTimeout:N=5e3,keepIframeSrcFn:I=()=>!1,newlyAddedElement:L=!1}=t;let{preserveWhiteSpace:F=!0}=t;const B=Cj(e,{doc:n,mirror:r,blockClass:o,blockSelector:s,maskAllText:i,unblockSelector:a,maskTextClass:l,unmaskTextClass:u,maskTextSelector:c,unmaskTextSelector:d,inlineStylesheet:p,maskInputOptions:m,maskAttributeFn:v,maskTextFn:g,maskInputFn:b,dataURLOptions:y,inlineImages:S,recordCanvas:w,keepIframeSrcFn:I,newlyAddedElement:L});if(!B)return console.warn(e,"not serialized"),null;let U;r.hasNode(e)?U=r.getId(e):xj(B,_)||!F&&B.type===Bn.Text&&!B.isStyle&&!B.textContent.replace(/^\s+|\s+$/gm,"").length?U=gd:U=y4();const P=Object.assign(B,{id:U});if(r.add(e,P),U===gd)return null;E&&E(e);let O=!f;if(P.type===Bn.Element){O=O&&!P.needBlock;const H=e.shadowRoot;H&&Uc(H)&&(P.isShadowHost=!0)}if((P.type===Bn.Document||P.type===Bn.Element)&&O){_.headWhitespace&&P.type===Bn.Element&&P.tagName==="head"&&(F=!1);const H={doc:n,mirror:r,blockClass:o,blockSelector:s,maskAllText:i,unblockSelector:a,maskTextClass:l,unmaskTextClass:u,maskTextSelector:c,unmaskTextSelector:d,skipChild:f,inlineStylesheet:p,maskInputOptions:m,maskAttributeFn:v,maskTextFn:g,maskInputFn:b,slimDOMOptions:_,dataURLOptions:y,inlineImages:S,recordCanvas:w,preserveWhiteSpace:F,onSerialize:E,onIframeLoad:T,iframeLoadTimeout:C,onBlockedImageLoad:$,onStylesheetLoad:x,stylesheetLoadTimeout:N,keepIframeSrcFn:I},q=e.childNodes?Array.from(e.childNodes):[];for(const te of q){const V=Hl(te,H);V&&P.childNodes.push(V)}if(ZV(e)&&e.shadowRoot)for(const te of Array.from(e.shadowRoot.childNodes)){const V=Hl(te,H);V&&(Uc(e.shadowRoot)&&(V.isShadow=!0),P.childNodes.push(V))}}if(e.parentNode&&jc(e.parentNode)&&Uc(e.parentNode)&&(P.isShadow=!0),P.type===Bn.Element&&P.tagName==="iframe"&&!P.needBlock&&Sj(e,()=>{const H=c$(e);if(H&&T){const q=Hl(H,{doc:H,mirror:r,blockClass:o,blockSelector:s,unblockSelector:a,maskAllText:i,maskTextClass:l,unmaskTextClass:u,maskTextSelector:c,unmaskTextSelector:d,skipChild:!1,inlineStylesheet:p,maskInputOptions:m,maskAttributeFn:v,maskTextFn:g,maskInputFn:b,slimDOMOptions:_,dataURLOptions:y,inlineImages:S,recordCanvas:w,preserveWhiteSpace:F,onSerialize:E,onIframeLoad:T,iframeLoadTimeout:C,onStylesheetLoad:x,stylesheetLoadTimeout:N,keepIframeSrcFn:I});q&&T(e,q)}},C),P.type===Bn.Element&&P.tagName==="img"&&!e.complete&&P.needBlock){const H=e,q=()=>{if(H.isConnected&&!H.complete&&$)try{const te=H.getBoundingClientRect();te.width>0&&te.height>0&&$(H,P,te)}catch{}H.removeEventListener("load",q)};H.isConnected&&H.addEventListener("load",q)}return P.type===Bn.Element&&P.tagName==="link"&&typeof P.attributes.rel=="string"&&(P.attributes.rel==="stylesheet"||P.attributes.rel==="preload"&&typeof P.attributes.href=="string"&&i$(P.attributes.href)==="css")&&Ej(e,()=>{if(x){const H=Hl(e,{doc:n,mirror:r,blockClass:o,blockSelector:s,unblockSelector:a,maskAllText:i,maskTextClass:l,unmaskTextClass:u,maskTextSelector:c,unmaskTextSelector:d,skipChild:!1,inlineStylesheet:p,maskInputOptions:m,maskAttributeFn:v,maskTextFn:g,maskInputFn:b,slimDOMOptions:_,dataURLOptions:y,inlineImages:S,recordCanvas:w,preserveWhiteSpace:F,onSerialize:E,onIframeLoad:T,iframeLoadTimeout:C,onStylesheetLoad:x,stylesheetLoadTimeout:N,keepIframeSrcFn:I});H&&x(e,H)}},N),P.type===Bn.Element&&delete P.needBlock,P}function Ij(e,t){const{mirror:n=new a$,blockClass:r="rr-block",blockSelector:o=null,unblockSelector:s=null,maskAllText:a=!1,maskTextClass:i="rr-mask",unmaskTextClass:l=null,maskTextSelector:u=null,unmaskTextSelector:c=null,inlineStylesheet:d=!0,inlineImages:f=!1,recordCanvas:p=!1,maskAllInputs:m=!1,maskAttributeFn:v,maskTextFn:g,maskInputFn:b,slimDOM:_=!1,dataURLOptions:y,preserveWhiteSpace:S,onSerialize:w,onIframeLoad:E,iframeLoadTimeout:T,onBlockedImageLoad:C,onStylesheetLoad:$,stylesheetLoadTimeout:x,keepIframeSrcFn:N=()=>!1}=t||{};return Hl(e,{doc:e,mirror:n,blockClass:r,blockSelector:o,unblockSelector:s,maskAllText:a,maskTextClass:i,unmaskTextClass:l,maskTextSelector:u,unmaskTextSelector:c,skipChild:!1,inlineStylesheet:d,maskInputOptions:m===!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}:m===!1?{}:m,maskAttributeFn:v,maskTextFn:g,maskInputFn:b,slimDOMOptions:_===!0||_==="all"?{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaDescKeywords:_==="all",headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaAuthorship:!0,headMetaVerification:!0}:_===!1?{}:_,dataURLOptions:y,inlineImages:f,recordCanvas:p,preserveWhiteSpace:S,onSerialize:w,onIframeLoad:E,iframeLoadTimeout:T,onBlockedImageLoad:C,onStylesheetLoad:$,stylesheetLoadTimeout:x,keepIframeSrcFn:N,newlyAddedElement:!1})}function Er(e,t,n=document){const r={capture:!0,passive:!0};return n.addEventListener(e,t,r),()=>n.removeEventListener(e,t,r)}const xl=`Please stop import mirror directly. Instead of that,\r +now you can use replayer.getMirror() to access the mirror instance of a replayer,\r +or you can use record.mirror to access the mirror instance during recording.`;let Ew={map:{},getId(){return console.error(xl),-1},getNode(){return console.error(xl),null},removeNodeFromMap(){console.error(xl)},has(){return console.error(xl),!1},reset(){console.error(xl)}};typeof window<"u"&&window.Proxy&&window.Reflect&&(Ew=new Proxy(Ew,{get(e,t,n){return t==="map"&&console.error(xl),Reflect.get(e,t,n)}}));function _d(e,t,n={}){let r=null,o=0;return function(...s){const a=Date.now();!o&&n.leading===!1&&(o=a);const i=t-(a-o),l=this;i<=0||i>t?(r&&(Lj(r),r=null),o=a,e.apply(l,s)):!r&&n.trailing!==!1&&(r=V0(()=>{o=n.leading===!1?0:Date.now(),r=null,e.apply(l,s)},i))}}function p$(e,t,n,r,o=window){const s=o.Object.getOwnPropertyDescriptor(e,t);return o.Object.defineProperty(e,t,r?n:{set(a){V0(()=>{n.set.call(this,a)},0),s&&s.set&&s.set.call(this,a)}}),()=>p$(e,t,s||{},!0)}function b4(e,t,n){try{if(!(t in e))return()=>{};const r=e[t],o=n(r);return typeof o=="function"&&(o.prototype=o.prototype||{},Object.defineProperties(o,{__rrweb_original__:{enumerable:!1,value:r}})),e[t]=o,()=>{e[t]=r}}catch{return()=>{}}}let Hh=Date.now;/[1-9][0-9]{12}/.test(Date.now().toString())||(Hh=()=>new Date().getTime());function h$(e){var n,r,o,s,a,i;const t=e.document;return{left:t.scrollingElement?t.scrollingElement.scrollLeft:e.pageXOffset!==void 0?e.pageXOffset:(t==null?void 0:t.documentElement.scrollLeft)||((r=(n=t==null?void 0:t.body)==null?void 0:n.parentElement)==null?void 0:r.scrollLeft)||((o=t==null?void 0:t.body)==null?void 0:o.scrollLeft)||0,top:t.scrollingElement?t.scrollingElement.scrollTop:e.pageYOffset!==void 0?e.pageYOffset:(t==null?void 0:t.documentElement.scrollTop)||((a=(s=t==null?void 0:t.body)==null?void 0:s.parentElement)==null?void 0:a.scrollTop)||((i=t==null?void 0:t.body)==null?void 0:i.scrollTop)||0}}function m$(){return window.innerHeight||document.documentElement&&document.documentElement.clientHeight||document.body&&document.body.clientHeight}function v$(){return window.innerWidth||document.documentElement&&document.documentElement.clientWidth||document.body&&document.body.clientWidth}function g$(e){if(!e)return null;try{return e.nodeType===e.ELEMENT_NODE?e:e.parentElement}catch{return null}}function Gr(e,t,n,r,o){if(!e)return!1;const s=g$(e);if(!s)return!1;const a=Fl(t,n);if(!o){const u=r&&s.matches(r);return a(s)&&!u}const i=$i(s,a);let l=-1;return i<0?!1:(r&&(l=$i(s,Fl(null,r))),i>-1&&l<0?!0:i{let n=t[0];if(!(0 in t))throw new TypeError("1 argument is required");do if(this===n)return!0;while(n=n&&n.parentNode);return!1})}function y$(e,t){return!!(e.nodeName==="IFRAME"&&t.getMeta(e))}function b$(e,t){return!!(e.nodeName==="LINK"&&e.nodeType===e.ELEMENT_NODE&&e.getAttribute&&e.getAttribute("rel")==="stylesheet"&&t.getMeta(e))}function Y2(e){return!!(e!=null&&e.shadowRoot)}class Oj{constructor(){this.id=1,this.styleIDMap=new WeakMap,this.idStyleMap=new Map}getId(t){return this.styleIDMap.get(t)??-1}has(t){return this.styleIDMap.has(t)}add(t,n){if(this.has(t))return this.getId(t);let r;return n===void 0?r=this.id++:r=n,this.styleIDMap.set(t,r),this.idStyleMap.set(r,t),r}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 w$(e){var n,r;let t=null;return((r=(n=e.getRootNode)==null?void 0:n.call(e))==null?void 0:r.nodeType)===Node.DOCUMENT_FRAGMENT_NODE&&e.getRootNode().host&&(t=e.getRootNode().host),t}function Rj(e){let t=e,n;for(;n=w$(t);)t=n;return t}function Pj(e){const t=e.ownerDocument;if(!t)return!1;const n=Rj(e);return t.contains(n)}function S$(e){const t=e.ownerDocument;return t?t.contains(e)||Pj(e):!1}const Cw={};function w4(e){const t=Cw[e];if(t)return t;const n=window.document;let r=window[e];if(n&&typeof n.createElement=="function")try{const o=n.createElement("iframe");o.hidden=!0,n.head.appendChild(o);const s=o.contentWindow;s&&s[e]&&(r=s[e]),n.head.removeChild(o)}catch{}return Cw[e]=r.bind(window)}function Nj(...e){return w4("requestAnimationFrame")(...e)}function V0(...e){return w4("setTimeout")(...e)}function Lj(...e){return w4("clearTimeout")(...e)}var Wt=(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))(Wt||{}),Ft=(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))(Ft||{}),wr=(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))(wr||{}),Ss=(e=>(e[e.Mouse=0]="Mouse",e[e.Pen=1]="Pen",e[e.Touch=2]="Touch",e))(Ss||{}),Il=(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))(Il||{});function S4(e){try{return e.contentDocument}catch{}}function Bj(e){try{return e.contentWindow}catch{}}function kw(e){return"__ln"in e}class Dj{constructor(){this.length=0,this.head=null,this.tail=null}get(t){if(t>=this.length)throw new Error("Position outside of list range");let n=this.head;for(let r=0;r`${e}@${t}`;class zj{constructor(){this.frozen=!1,this.locked=!1,this.texts=[],this.attributes=[],this.attributeMap=new WeakMap,this.removes=[],this.mapRemoves=[],this.movedMap={},this.addedSet=new Set,this.movedSet=new Set,this.droppedSet=new Set,this.processMutations=t=>{t.forEach(this.processMutation),this.emit()},this.emit=()=>{if(this.frozen||this.locked)return;const t=[],n=new Set,r=new Dj,o=l=>{let u=l,c=gd;for(;c===gd;)u=u&&u.nextSibling,c=u&&this.mirror.getId(u);return c},s=l=>{if(!l.parentNode||!S$(l))return;const u=jc(l.parentNode)?this.mirror.getId(w$(l)):this.mirror.getId(l.parentNode),c=o(l);if(u===-1||c===-1)return r.addNode(l);const d=Hl(l,{doc:this.doc,mirror:this.mirror,blockClass:this.blockClass,blockSelector:this.blockSelector,maskAllText:this.maskAllText,unblockSelector:this.unblockSelector,maskTextClass:this.maskTextClass,unmaskTextClass:this.unmaskTextClass,maskTextSelector:this.maskTextSelector,unmaskTextSelector:this.unmaskTextSelector,skipChild:!0,newlyAddedElement:!0,inlineStylesheet:this.inlineStylesheet,maskInputOptions:this.maskInputOptions,maskAttributeFn:this.maskAttributeFn,maskTextFn:this.maskTextFn,maskInputFn:this.maskInputFn,slimDOMOptions:this.slimDOMOptions,dataURLOptions:this.dataURLOptions,recordCanvas:this.recordCanvas,inlineImages:this.inlineImages,onSerialize:f=>{y$(f,this.mirror)&&!Gr(f,this.blockClass,this.blockSelector,this.unblockSelector,!1)&&this.iframeManager.addIframe(f),b$(f,this.mirror)&&this.stylesheetManager.trackLinkElement(f),Y2(l)&&this.shadowDomManager.addShadowRoot(l.shadowRoot,this.doc)},onIframeLoad:(f,p)=>{Gr(f,this.blockClass,this.blockSelector,this.unblockSelector,!1)||(this.iframeManager.attachIframe(f,p),f.contentWindow&&this.canvasManager.addWindow(f.contentWindow),this.shadowDomManager.observeAttachShadow(f))},onStylesheetLoad:(f,p)=>{this.stylesheetManager.attachLinkElement(f,p)},onBlockedImageLoad:(f,p,{width:m,height:v})=>{this.mutationCb({adds:[],removes:[],texts:[],attributes:[{id:p.id,attributes:{style:{width:`${m}px`,height:`${v}px`}}}]})}});d&&(t.push({parentId:u,nextId:c,node:d}),n.add(d.id))};for(;this.mapRemoves.length;)this.mirror.removeNodeFromMap(this.mapRemoves.shift());for(const l of this.movedSet)$w(this.removes,l,this.mirror)&&!this.movedSet.has(l.parentNode)||s(l);for(const l of this.addedSet)!xw(this.droppedSet,l)&&!$w(this.removes,l,this.mirror)||xw(this.movedSet,l)?s(l):this.droppedSet.add(l);let a=null;for(;r.length;){let l=null;if(a){const u=this.mirror.getId(a.value.parentNode),c=o(a.value);u!==-1&&c!==-1&&(l=a)}if(!l){let u=r.tail;for(;u;){const c=u;if(u=u.previous,c){const d=this.mirror.getId(c.value.parentNode);if(o(c.value)===-1)continue;if(d!==-1){l=c;break}else{const p=c.value;if(p.parentNode&&p.parentNode.nodeType===Node.DOCUMENT_FRAGMENT_NODE){const m=p.parentNode.host;if(this.mirror.getId(m)!==-1){l=c;break}}}}}}if(!l){for(;r.head;)r.removeNode(r.head.value);break}a=l.previous,r.removeNode(l.value),s(l.value)}const i={texts:this.texts.map(l=>({id:this.mirror.getId(l.node),value:l.value})).filter(l=>!n.has(l.id)).filter(l=>this.mirror.has(l.id)),attributes:this.attributes.map(l=>{const{attributes:u}=l;if(typeof u.style=="string"){const c=JSON.stringify(l.styleDiff),d=JSON.stringify(l._unchangedStyles);c.length!n.has(l.id)).filter(l=>this.mirror.has(l.id)),removes:this.removes,adds:t};!i.texts.length&&!i.attributes.length&&!i.removes.length&&!i.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.movedMap={},this.mutationCb(i))},this.processMutation=t=>{if(!ov(t.target,this.mirror))switch(t.type){case"characterData":{const n=t.target.textContent;!Gr(t.target,this.blockClass,this.blockSelector,this.unblockSelector,!1)&&n!==t.oldValue&&this.texts.push({value:gu(t.target,this.maskTextClass,this.maskTextSelector,this.unmaskTextClass,this.unmaskTextSelector,this.maskAllText)&&n?this.maskTextFn?this.maskTextFn(n,g$(t.target)):n.replace(/[\S]/g,"*"):n,node:t.target});break}case"attributes":{const n=t.target;let r=t.attributeName,o=t.target.getAttribute(r);if(r==="value"){const a=_4(n),i=n.tagName;o=zh(n,i,a);const l=F0({maskInputOptions:this.maskInputOptions,tagName:i,type:a}),u=gu(t.target,this.maskTextClass,this.maskTextSelector,this.unmaskTextClass,this.unmaskTextSelector,l);o=vd({isMasked:u,element:n,value:o,maskInputFn:this.maskInputFn})}if(Gr(t.target,this.blockClass,this.blockSelector,this.unblockSelector,!1)||o===t.oldValue)return;let s=this.attributeMap.get(t.target);if(n.tagName==="IFRAME"&&r==="src"&&!this.keepIframeSrcFn(o))if(!S4(n))r="rr_src";else return;if(s||(s={node:t.target,attributes:{},styleDiff:{},_unchangedStyles:{}},this.attributes.push(s),this.attributeMap.set(t.target,s)),r==="type"&&n.tagName==="INPUT"&&(t.oldValue||"").toLowerCase()==="password"&&n.setAttribute("data-rr-is-password","true"),!f$(n.tagName,r)&&(s.attributes[r]=d$(this.doc,vu(n.tagName),vu(r),o,n,this.maskAttributeFn),r==="style")){if(!this.unattachedDoc)try{this.unattachedDoc=document.implementation.createHTMLDocument()}catch{this.unattachedDoc=this.doc}const a=this.unattachedDoc.createElement("span");t.oldValue&&a.setAttribute("style",t.oldValue);for(const i of Array.from(n.style)){const l=n.style.getPropertyValue(i),u=n.style.getPropertyPriority(i);l!==a.style.getPropertyValue(i)||u!==a.style.getPropertyPriority(i)?u===""?s.styleDiff[i]=l:s.styleDiff[i]=[l,u]:s._unchangedStyles[i]=[l,u]}for(const i of Array.from(a.style))n.style.getPropertyValue(i)===""&&(s.styleDiff[i]=!1)}break}case"childList":{if(Gr(t.target,this.blockClass,this.blockSelector,this.unblockSelector,!0))return;t.addedNodes.forEach(n=>this.genAdds(n,t.target)),t.removedNodes.forEach(n=>{const r=this.mirror.getId(n),o=jc(t.target)?this.mirror.getId(t.target.host):this.mirror.getId(t.target);Gr(t.target,this.blockClass,this.blockSelector,this.unblockSelector,!1)||ov(n,this.mirror)||!Aj(n,this.mirror)||(this.addedSet.has(n)?(X2(this.addedSet,n),this.droppedSet.add(n)):this.addedSet.has(t.target)&&r===-1||_$(t.target,this.mirror)||(this.movedSet.has(n)&&this.movedMap[Tw(r,o)]?X2(this.movedSet,n):this.removes.push({parentId:o,id:r,isShadow:jc(t.target)&&Uc(t.target)?!0:void 0})),this.mapRemoves.push(n))});break}}},this.genAdds=(t,n)=>{if(!this.processedNodeManager.inOtherBuffer(t,this)&&!(this.addedSet.has(t)||this.movedSet.has(t))){if(this.mirror.hasNode(t)){if(ov(t,this.mirror))return;this.movedSet.add(t);let r=null;n&&this.mirror.hasNode(n)&&(r=this.mirror.getId(n)),r&&r!==-1&&(this.movedMap[Tw(this.mirror.getId(t),r)]=!0)}else this.addedSet.add(t),this.droppedSet.delete(t);Gr(t,this.blockClass,this.blockSelector,this.unblockSelector,!1)||(t.childNodes&&t.childNodes.forEach(r=>this.genAdds(r)),Y2(t)&&t.shadowRoot.childNodes.forEach(r=>{this.processedNodeManager.add(r,this),this.genAdds(r,t)}))}}}init(t){["mutationCb","blockClass","blockSelector","unblockSelector","maskAllText","maskTextClass","unmaskTextClass","maskTextSelector","unmaskTextSelector","inlineStylesheet","maskInputOptions","maskAttributeFn","maskTextFn","maskInputFn","keepIframeSrcFn","recordCanvas","inlineImages","slimDOMOptions","dataURLOptions","doc","mirror","iframeManager","stylesheetManager","shadowDomManager","canvasManager","processedNodeManager"].forEach(n=>{this[n]=t[n]})}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 X2(e,t){var n;e.delete(t),(n=t.childNodes)==null||n.forEach(r=>X2(e,r))}function $w(e,t,n){return e.length===0?!1:Fj(e,t,n)}function Fj(e,t,n){let r=t.parentNode;for(;r;){const o=n.getId(r);if(e.some(s=>s.id===o))return!0;r=r.parentNode}return!1}function xw(e,t){return e.size===0?!1:E$(e,t)}function E$(e,t){const{parentNode:n}=t;return n?e.has(n)?!0:E$(e,n):!1}let Wc;function Hj(e){Wc=e}function Vj(){Wc=void 0}const Qt=e=>Wc?(...n)=>{try{return e(...n)}catch(r){if(Wc&&Wc(r)===!0)return()=>{};throw r}}:e,Vl=[];function rf(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 C$(e,t){var a,i;const n=new zj;Vl.push(n),n.init(e);let r=window.MutationObserver||window.__rrMutationObserver;const o=(i=(a=window==null?void 0:window.Zone)==null?void 0:a.__symbol__)==null?void 0:i.call(a,"MutationObserver");o&&window[o]&&(r=window[o]);const s=new r(Qt(l=>{e.onMutation&&e.onMutation(l)===!1||n.processMutations.bind(n)(l)}));return s.observe(t,{attributes:!0,attributeOldValue:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),s}function jj({mousemoveCb:e,sampling:t,doc:n,mirror:r}){if(t.mousemove===!1)return()=>{};const o=typeof t.mousemove=="number"?t.mousemove:50,s=typeof t.mousemoveCallback=="number"?t.mousemoveCallback:500;let a=[],i;const l=_d(Qt(d=>{const f=Date.now()-i;e(a.map(p=>(p.timeOffset-=f,p)),d),a=[],i=null}),s),u=Qt(_d(Qt(d=>{const f=rf(d),{clientX:p,clientY:m}=G2(d)?d.changedTouches[0]:d;i||(i=Hh()),a.push({x:p,y:m,id:r.getId(f),timeOffset:Hh()-i}),l(typeof DragEvent<"u"&&d instanceof DragEvent?Ft.Drag:d instanceof MouseEvent?Ft.MouseMove:Ft.TouchMove)}),o,{trailing:!1})),c=[Er("mousemove",u,n),Er("touchmove",u,n),Er("drag",u,n)];return Qt(()=>{c.forEach(d=>d())})}function Uj({mouseInteractionCb:e,doc:t,mirror:n,blockClass:r,blockSelector:o,unblockSelector:s,sampling:a}){if(a.mouseInteraction===!1)return()=>{};const i=a.mouseInteraction===!0||a.mouseInteraction===void 0?{}:a.mouseInteraction,l=[];let u=null;const c=d=>f=>{const p=rf(f);if(Gr(p,r,o,s,!0))return;let m=null,v=d;if("pointerType"in f){switch(f.pointerType){case"mouse":m=Ss.Mouse;break;case"touch":m=Ss.Touch;break;case"pen":m=Ss.Pen;break}m===Ss.Touch?wr[d]===wr.MouseDown?v="TouchStart":wr[d]===wr.MouseUp&&(v="TouchEnd"):Ss.Pen}else G2(f)&&(m=Ss.Touch);m!==null?(u=m,(v.startsWith("Touch")&&m===Ss.Touch||v.startsWith("Mouse")&&m===Ss.Mouse)&&(m=null)):wr[d]===wr.Click&&(m=u,u=null);const g=G2(f)?f.changedTouches[0]:f;if(!g)return;const b=n.getId(p),{clientX:_,clientY:y}=g;Qt(e)({type:wr[v],id:b,x:_,y,...m!==null&&{pointerType:m}})};return Object.keys(wr).filter(d=>Number.isNaN(Number(d))&&!d.endsWith("_Departed")&&i[d]!==!1).forEach(d=>{let f=vu(d);const p=c(d);if(window.PointerEvent)switch(wr[d]){case wr.MouseDown:case wr.MouseUp:f=f.replace("mouse","pointer");break;case wr.TouchStart:case wr.TouchEnd:return}l.push(Er(f,p,t))}),Qt(()=>{l.forEach(d=>d())})}function k$({scrollCb:e,doc:t,mirror:n,blockClass:r,blockSelector:o,unblockSelector:s,sampling:a}){const i=Qt(_d(Qt(l=>{const u=rf(l);if(!u||Gr(u,r,o,s,!0))return;const c=n.getId(u);if(u===t&&t.defaultView){const d=h$(t.defaultView);e({id:c,x:d.left,y:d.top})}else e({id:c,x:u.scrollLeft,y:u.scrollTop})}),a.scroll||100));return Er("scroll",i,t)}function Wj({viewportResizeCb:e},{win:t}){let n=-1,r=-1;const o=Qt(_d(Qt(()=>{const s=m$(),a=v$();(n!==s||r!==a)&&(e({width:Number(a),height:Number(s)}),n=s,r=a)}),200));return Er("resize",o,t)}const qj=["INPUT","TEXTAREA","SELECT"],Iw=new WeakMap;function Kj({inputCb:e,doc:t,mirror:n,blockClass:r,blockSelector:o,unblockSelector:s,ignoreClass:a,ignoreSelector:i,maskInputOptions:l,maskInputFn:u,sampling:c,userTriggeredOnInput:d,maskTextClass:f,unmaskTextClass:p,maskTextSelector:m,unmaskTextSelector:v}){function g(T){let C=rf(T);const $=T.isTrusted,x=C&&q2(C.tagName);if(x==="OPTION"&&(C=C.parentElement),!C||!x||qj.indexOf(x)<0||Gr(C,r,o,s,!0))return;const N=C;if(N.classList.contains(a)||i&&N.matches(i))return;const I=_4(C);let L=zh(N,x,I),F=!1;const B=F0({maskInputOptions:l,tagName:x,type:I}),U=gu(C,f,m,p,v,B);(I==="radio"||I==="checkbox")&&(F=C.checked),L=vd({isMasked:U,element:C,value:L,maskInputFn:u}),b(C,d?{text:L,isChecked:F,userTriggered:$}:{text:L,isChecked:F});const P=C.name;I==="radio"&&P&&F&&t.querySelectorAll(`input[type="radio"][name="${P}"]`).forEach(O=>{if(O!==C){const H=vd({isMasked:U,element:O,value:zh(O,x,I),maskInputFn:u});b(O,d?{text:H,isChecked:!F,userTriggered:!1}:{text:H,isChecked:!F})}})}function b(T,C){const $=Iw.get(T);if(!$||$.text!==C.text||$.isChecked!==C.isChecked){Iw.set(T,C);const x=n.getId(T);Qt(e)({...C,id:x})}}const y=(c.input==="last"?["change"]:["input","change"]).map(T=>Er(T,Qt(g),t)),S=t.defaultView;if(!S)return()=>{y.forEach(T=>T())};const w=S.Object.getOwnPropertyDescriptor(S.HTMLInputElement.prototype,"value"),E=[[S.HTMLInputElement.prototype,"value"],[S.HTMLInputElement.prototype,"checked"],[S.HTMLSelectElement.prototype,"value"],[S.HTMLTextAreaElement.prototype,"value"],[S.HTMLSelectElement.prototype,"selectedIndex"],[S.HTMLOptionElement.prototype,"selected"]];return w&&w.set&&y.push(...E.map(T=>p$(T[0],T[1],{set(){Qt(g)({target:this,isTrusted:!1})}},!1,S))),Qt(()=>{y.forEach(T=>T())})}function Vh(e){const t=[];function n(r,o){if(Bf("CSSGroupingRule")&&r.parentRule instanceof CSSGroupingRule||Bf("CSSMediaRule")&&r.parentRule instanceof CSSMediaRule||Bf("CSSSupportsRule")&&r.parentRule instanceof CSSSupportsRule||Bf("CSSConditionRule")&&r.parentRule instanceof CSSConditionRule){const a=Array.from(r.parentRule.cssRules).indexOf(r);o.unshift(a)}else if(r.parentStyleSheet){const a=Array.from(r.parentStyleSheet.cssRules).indexOf(r);o.unshift(a)}return o}return n(e,t)}function Ha(e,t,n){let r,o;return e?(e.ownerNode?r=t.getId(e.ownerNode):o=n.getId(e),{styleId:o,id:r}):{}}function Gj({styleSheetRuleCb:e,mirror:t,stylesheetManager:n},{win:r}){if(!r.CSSStyleSheet||!r.CSSStyleSheet.prototype)return()=>{};const o=r.CSSStyleSheet.prototype.insertRule;r.CSSStyleSheet.prototype.insertRule=new Proxy(o,{apply:Qt((c,d,f)=>{const[p,m]=f,{id:v,styleId:g}=Ha(d,t,n.styleMirror);return(v&&v!==-1||g&&g!==-1)&&e({id:v,styleId:g,adds:[{rule:p,index:m}]}),c.apply(d,f)})});const s=r.CSSStyleSheet.prototype.deleteRule;r.CSSStyleSheet.prototype.deleteRule=new Proxy(s,{apply:Qt((c,d,f)=>{const[p]=f,{id:m,styleId:v}=Ha(d,t,n.styleMirror);return(m&&m!==-1||v&&v!==-1)&&e({id:m,styleId:v,removes:[{index:p}]}),c.apply(d,f)})});let a;r.CSSStyleSheet.prototype.replace&&(a=r.CSSStyleSheet.prototype.replace,r.CSSStyleSheet.prototype.replace=new Proxy(a,{apply:Qt((c,d,f)=>{const[p]=f,{id:m,styleId:v}=Ha(d,t,n.styleMirror);return(m&&m!==-1||v&&v!==-1)&&e({id:m,styleId:v,replace:p}),c.apply(d,f)})}));let i;r.CSSStyleSheet.prototype.replaceSync&&(i=r.CSSStyleSheet.prototype.replaceSync,r.CSSStyleSheet.prototype.replaceSync=new Proxy(i,{apply:Qt((c,d,f)=>{const[p]=f,{id:m,styleId:v}=Ha(d,t,n.styleMirror);return(m&&m!==-1||v&&v!==-1)&&e({id:m,styleId:v,replaceSync:p}),c.apply(d,f)})}));const l={};Df("CSSGroupingRule")?l.CSSGroupingRule=r.CSSGroupingRule:(Df("CSSMediaRule")&&(l.CSSMediaRule=r.CSSMediaRule),Df("CSSConditionRule")&&(l.CSSConditionRule=r.CSSConditionRule),Df("CSSSupportsRule")&&(l.CSSSupportsRule=r.CSSSupportsRule));const u={};return Object.entries(l).forEach(([c,d])=>{u[c]={insertRule:d.prototype.insertRule,deleteRule:d.prototype.deleteRule},d.prototype.insertRule=new Proxy(u[c].insertRule,{apply:Qt((f,p,m)=>{const[v,g]=m,{id:b,styleId:_}=Ha(p.parentStyleSheet,t,n.styleMirror);return(b&&b!==-1||_&&_!==-1)&&e({id:b,styleId:_,adds:[{rule:v,index:[...Vh(p),g||0]}]}),f.apply(p,m)})}),d.prototype.deleteRule=new Proxy(u[c].deleteRule,{apply:Qt((f,p,m)=>{const[v]=m,{id:g,styleId:b}=Ha(p.parentStyleSheet,t,n.styleMirror);return(g&&g!==-1||b&&b!==-1)&&e({id:g,styleId:b,removes:[{index:[...Vh(p),v]}]}),f.apply(p,m)})})}),Qt(()=>{r.CSSStyleSheet.prototype.insertRule=o,r.CSSStyleSheet.prototype.deleteRule=s,a&&(r.CSSStyleSheet.prototype.replace=a),i&&(r.CSSStyleSheet.prototype.replaceSync=i),Object.entries(l).forEach(([c,d])=>{d.prototype.insertRule=u[c].insertRule,d.prototype.deleteRule=u[c].deleteRule})})}function T$({mirror:e,stylesheetManager:t},n){var a,i,l;let r=null;n.nodeName==="#document"?r=e.getId(n):r=e.getId(n.host);const o=n.nodeName==="#document"?(a=n.defaultView)==null?void 0:a.Document:(l=(i=n.ownerDocument)==null?void 0:i.defaultView)==null?void 0:l.ShadowRoot,s=o!=null&&o.prototype?Object.getOwnPropertyDescriptor(o==null?void 0:o.prototype,"adoptedStyleSheets"):void 0;return r===null||r===-1||!o||!s?()=>{}:(Object.defineProperty(n,"adoptedStyleSheets",{configurable:s.configurable,enumerable:s.enumerable,get(){var u;return(u=s.get)==null?void 0:u.call(this)},set(u){var d;const c=(d=s.set)==null?void 0:d.call(this,u);if(r!==null&&r!==-1)try{t.adoptStyleSheets(u,r)}catch{}return c}}),Qt(()=>{Object.defineProperty(n,"adoptedStyleSheets",{configurable:s.configurable,enumerable:s.enumerable,get:s.get,set:s.set})}))}function Yj({styleDeclarationCb:e,mirror:t,ignoreCSSAttributes:n,stylesheetManager:r},{win:o}){const s=o.CSSStyleDeclaration.prototype.setProperty;o.CSSStyleDeclaration.prototype.setProperty=new Proxy(s,{apply:Qt((i,l,u)=>{var v;const[c,d,f]=u;if(n.has(c))return s.apply(l,[c,d,f]);const{id:p,styleId:m}=Ha((v=l.parentRule)==null?void 0:v.parentStyleSheet,t,r.styleMirror);return(p&&p!==-1||m&&m!==-1)&&e({id:p,styleId:m,set:{property:c,value:d,priority:f},index:Vh(l.parentRule)}),i.apply(l,u)})});const a=o.CSSStyleDeclaration.prototype.removeProperty;return o.CSSStyleDeclaration.prototype.removeProperty=new Proxy(a,{apply:Qt((i,l,u)=>{var p;const[c]=u;if(n.has(c))return a.apply(l,[c]);const{id:d,styleId:f}=Ha((p=l.parentRule)==null?void 0:p.parentStyleSheet,t,r.styleMirror);return(d&&d!==-1||f&&f!==-1)&&e({id:d,styleId:f,remove:{property:c},index:Vh(l.parentRule)}),i.apply(l,u)})}),Qt(()=>{o.CSSStyleDeclaration.prototype.setProperty=s,o.CSSStyleDeclaration.prototype.removeProperty=a})}function Xj({mediaInteractionCb:e,blockClass:t,blockSelector:n,unblockSelector:r,mirror:o,sampling:s,doc:a}){const i=Qt(u=>_d(Qt(c=>{const d=rf(c);if(!d||Gr(d,t,n,r,!0))return;const{currentTime:f,volume:p,muted:m,playbackRate:v}=d;e({type:u,id:o.getId(d),currentTime:f,volume:p,muted:m,playbackRate:v})}),s.media||500)),l=[Er("play",i(Il.Play),a),Er("pause",i(Il.Pause),a),Er("seeked",i(Il.Seeked),a),Er("volumechange",i(Il.VolumeChange),a),Er("ratechange",i(Il.RateChange),a)];return Qt(()=>{l.forEach(u=>u())})}function Jj({fontCb:e,doc:t}){const n=t.defaultView;if(!n)return()=>{};const r=[],o=new WeakMap,s=n.FontFace;n.FontFace=function(l,u,c){const d=new s(l,u,c);return o.set(d,{family:l,buffer:typeof u!="string",descriptors:c,fontSource:typeof u=="string"?u:JSON.stringify(Array.from(new Uint8Array(u)))}),d};const a=b4(t.fonts,"add",function(i){return function(l){return V0(Qt(()=>{const u=o.get(l);u&&(e(u),o.delete(l))}),0),i.apply(this,[l])}});return r.push(()=>{n.FontFace=s}),r.push(a),Qt(()=>{r.forEach(i=>i())})}function Qj(e){const{doc:t,mirror:n,blockClass:r,blockSelector:o,unblockSelector:s,selectionCb:a}=e;let i=!0;const l=Qt(()=>{const u=t.getSelection();if(!u||i&&(u!=null&&u.isCollapsed))return;i=u.isCollapsed||!1;const c=[],d=u.rangeCount||0;for(let f=0;f{}:b4(n.customElements,"define",function(o){return function(s,a,i){try{t({define:{name:s}})}catch{}return o.apply(this,[s,a,i])}})}function eU(e,t={}){const n=e.doc.defaultView;if(!n)return()=>{};let r;e.recordDOM&&(r=C$(e,e.doc));const o=jj(e),s=Uj(e),a=k$(e),i=Wj(e,{win:n}),l=Kj(e),u=Xj(e);let c=()=>{},d=()=>{},f=()=>{},p=()=>{};e.recordDOM&&(c=Gj(e,{win:n}),d=T$(e,e.doc),f=Yj(e,{win:n}),e.collectFonts&&(p=Jj(e)));const m=Qj(e),v=Zj(e),g=[];for(const b of e.plugins)g.push(b.observer(b.callback,n,b.options));return Qt(()=>{Vl.forEach(b=>b.reset()),r==null||r.disconnect(),o(),s(),a(),i(),l(),u(),c(),d(),f(),p(),m(),v(),g.forEach(b=>b())})}function Bf(e){return typeof window[e]<"u"}function Df(e){return!!(typeof window[e]<"u"&&window[e].prototype&&"insertRule"in window[e].prototype&&"deleteRule"in window[e].prototype)}class J2{constructor(t){this.generateIdFn=t,this.iframeIdToRemoteIdMap=new WeakMap,this.iframeRemoteIdToIdMap=new WeakMap}getId(t,n,r,o){const s=r||this.getIdToRemoteIdMap(t),a=o||this.getRemoteIdToIdMap(t);let i=s.get(n);return i||(i=this.generateIdFn(),s.set(n,i),a.set(i,n)),i}getIds(t,n){const r=this.getIdToRemoteIdMap(t),o=this.getRemoteIdToIdMap(t);return n.map(s=>this.getId(t,s,r,o))}getRemoteId(t,n,r){const o=r||this.getRemoteIdToIdMap(t);if(typeof n!="number")return n;const s=o.get(n);return s||-1}getRemoteIds(t,n){const r=this.getRemoteIdToIdMap(t);return n.map(o=>this.getRemoteId(t,o,r))}reset(t){if(!t){this.iframeIdToRemoteIdMap=new WeakMap,this.iframeRemoteIdToIdMap=new WeakMap;return}this.iframeIdToRemoteIdMap.delete(t),this.iframeRemoteIdToIdMap.delete(t)}getIdToRemoteIdMap(t){let n=this.iframeIdToRemoteIdMap.get(t);return n||(n=new Map,this.iframeIdToRemoteIdMap.set(t,n)),n}getRemoteIdToIdMap(t){let n=this.iframeRemoteIdToIdMap.get(t);return n||(n=new Map,this.iframeRemoteIdToIdMap.set(t,n)),n}}class tU{constructor(){this.crossOriginIframeMirror=new J2(y4),this.crossOriginIframeRootIdMap=new WeakMap}addIframe(){}addLoadListener(){}attachIframe(){}}class nU{constructor(t){this.iframes=new WeakMap,this.crossOriginIframeMap=new WeakMap,this.crossOriginIframeMirror=new J2(y4),this.crossOriginIframeRootIdMap=new WeakMap,this.mutationCb=t.mutationCb,this.wrappedEmit=t.wrappedEmit,this.stylesheetManager=t.stylesheetManager,this.recordCrossOriginIframes=t.recordCrossOriginIframes,this.crossOriginIframeStyleMirror=new J2(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,n){var o,s;this.mutationCb({adds:[{parentId:this.mirror.getId(t),nextId:null,node:n}],removes:[],texts:[],attributes:[],isAttachIframe:!0}),this.recordCrossOriginIframes&&((o=t.contentWindow)==null||o.addEventListener("message",this.handleMessage.bind(this))),(s=this.loadListener)==null||s.call(this,t);const r=S4(t);r&&r.adoptedStyleSheets&&r.adoptedStyleSheets.length>0&&this.stylesheetManager.adoptStyleSheets(r.adoptedStyleSheets,this.mirror.getId(r))}handleMessage(t){const n=t;if(n.data.type!=="rrweb"||n.origin!==n.data.origin||!t.source)return;const o=this.crossOriginIframeMap.get(t.source);if(!o)return;const s=this.transformCrossOriginEvent(o,n.data.event);s&&this.wrappedEmit(s,n.data.isCheckout)}transformCrossOriginEvent(t,n){var r;switch(n.type){case Wt.FullSnapshot:{this.crossOriginIframeMirror.reset(t),this.crossOriginIframeStyleMirror.reset(t),this.replaceIdOnNode(n.data.node,t);const o=n.data.node.id;return this.crossOriginIframeRootIdMap.set(t,o),this.patchRootIdOnNode(n.data.node,o),{timestamp:n.timestamp,type:Wt.IncrementalSnapshot,data:{source:Ft.Mutation,adds:[{parentId:this.mirror.getId(t),nextId:null,node:n.data.node}],removes:[],texts:[],attributes:[],isAttachIframe:!0}}}case Wt.Meta:case Wt.Load:case Wt.DomContentLoaded:return!1;case Wt.Plugin:return n;case Wt.Custom:return this.replaceIds(n.data.payload,t,["id","parentId","previousId","nextId"]),n;case Wt.IncrementalSnapshot:switch(n.data.source){case Ft.Mutation:return n.data.adds.forEach(o=>{this.replaceIds(o,t,["parentId","nextId","previousId"]),this.replaceIdOnNode(o.node,t);const s=this.crossOriginIframeRootIdMap.get(t);s&&this.patchRootIdOnNode(o.node,s)}),n.data.removes.forEach(o=>{this.replaceIds(o,t,["parentId","id"])}),n.data.attributes.forEach(o=>{this.replaceIds(o,t,["id"])}),n.data.texts.forEach(o=>{this.replaceIds(o,t,["id"])}),n;case Ft.Drag:case Ft.TouchMove:case Ft.MouseMove:return n.data.positions.forEach(o=>{this.replaceIds(o,t,["id"])}),n;case Ft.ViewportResize:return!1;case Ft.MediaInteraction:case Ft.MouseInteraction:case Ft.Scroll:case Ft.CanvasMutation:case Ft.Input:return this.replaceIds(n.data,t,["id"]),n;case Ft.StyleSheetRule:case Ft.StyleDeclaration:return this.replaceIds(n.data,t,["id"]),this.replaceStyleIds(n.data,t,["styleId"]),n;case Ft.Font:return n;case Ft.Selection:return n.data.ranges.forEach(o=>{this.replaceIds(o,t,["start","end"])}),n;case Ft.AdoptedStyleSheet:return this.replaceIds(n.data,t,["id"]),this.replaceStyleIds(n.data,t,["styleIds"]),(r=n.data.styles)==null||r.forEach(o=>{this.replaceStyleIds(o,t,["styleId"])}),n}}return!1}replace(t,n,r,o){for(const s of o)!Array.isArray(n[s])&&typeof n[s]!="number"||(Array.isArray(n[s])?n[s]=t.getIds(r,n[s]):n[s]=t.getId(r,n[s]));return n}replaceIds(t,n,r){return this.replace(this.crossOriginIframeMirror,t,n,r)}replaceStyleIds(t,n,r){return this.replace(this.crossOriginIframeStyleMirror,t,n,r)}replaceIdOnNode(t,n){this.replaceIds(t,n,["id","rootId"]),"childNodes"in t&&t.childNodes.forEach(r=>{this.replaceIdOnNode(r,n)})}patchRootIdOnNode(t,n){t.type!==Bn.Document&&!t.rootId&&(t.rootId=n),"childNodes"in t&&t.childNodes.forEach(r=>{this.patchRootIdOnNode(r,n)})}}class rU{init(){}addShadowRoot(){}observeAttachShadow(){}reset(){}}class oU{constructor(t){this.shadowDoms=new WeakSet,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,n){if(!Uc(t)||this.shadowDoms.has(t))return;this.shadowDoms.add(t),this.bypassOptions.canvasManager.addShadowRoot(t);const r=C$({...this.bypassOptions,doc:n,mutationCb:this.mutationCb,mirror:this.mirror,shadowDomManager:this},t);this.restoreHandlers.push(()=>r.disconnect()),this.restoreHandlers.push(k$({...this.bypassOptions,scrollCb:this.scrollCb,doc:t,mirror:this.mirror})),V0(()=>{t.adoptedStyleSheets&&t.adoptedStyleSheets.length>0&&this.bypassOptions.stylesheetManager.adoptStyleSheets(t.adoptedStyleSheets,this.mirror.getId(t.host)),this.restoreHandlers.push(T$({mirror:this.mirror,stylesheetManager:this.bypassOptions.stylesheetManager},t))},0)}observeAttachShadow(t){const n=S4(t),r=Bj(t);!n||!r||this.patchAttachShadow(r.Element,n)}patchAttachShadow(t,n){const r=this;this.restoreHandlers.push(b4(t.prototype,"attachShadow",function(o){return function(s){const a=o.call(this,s);return this.shadowRoot&&S$(this)&&r.addShadowRoot(this.shadowRoot,n),a}}))}reset(){this.restoreHandlers.forEach(t=>{try{t()}catch{}}),this.restoreHandlers=[],this.shadowDoms=new WeakSet,this.bypassOptions.canvasManager.resetShadowRoots()}}var Aw="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",sU=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(var zf=0;zf({rule:s$(i),index:l}))})),r.styleIds.push(a)}o.length>0&&(r.styles=o),this.adoptedStyleSheetCb(r)}reset(){this.styleMirror.reset(),this.trackedLinkElements=new WeakSet}trackStylesheetInLinkElement(t){}}class iU{constructor(){this.nodeMap=new WeakMap,this.active=!1}inOtherBuffer(t,n){const r=this.nodeMap.get(t);return r&&Array.from(r).some(o=>o!==n)}add(t,n){this.active||(this.active=!0,Nj(()=>{this.nodeMap=new WeakMap,this.active=!1})),this.nodeMap.set(t,(this.nodeMap.get(t)||new Set).add(n))}destroy(){}}let An,jh;var DC;try{if(Array.from([1],e=>e*2)[0]!==2){const e=document.createElement("iframe");document.body.appendChild(e),Array.from=((DC=e.contentWindow)==null?void 0:DC.Array.from)||Array.from,document.body.removeChild(e)}}catch(e){console.debug("Unable to override Array.from",e)}const $o=aj();function Vs(e={}){const{emit:t,checkoutEveryNms:n,checkoutEveryNth:r,blockClass:o="rr-block",blockSelector:s=null,unblockSelector:a=null,ignoreClass:i="rr-ignore",ignoreSelector:l=null,maskAllText:u=!1,maskTextClass:c="rr-mask",unmaskTextClass:d=null,maskTextSelector:f=null,unmaskTextSelector:p=null,inlineStylesheet:m=!0,maskAllInputs:v,maskInputOptions:g,slimDOMOptions:b,maskAttributeFn:_,maskInputFn:y,maskTextFn:S,maxCanvasSize:w=null,packFn:E,sampling:T={},dataURLOptions:C={},mousemoveWait:$,recordDOM:x=!0,recordCanvas:N=!1,recordCrossOriginIframes:I=!1,recordAfter:L=e.recordAfter==="DOMContentLoaded"?e.recordAfter:"load",userTriggeredOnInput:F=!1,collectFonts:B=!1,inlineImages:U=!1,plugins:P,keepIframeSrcFn:O=()=>!1,ignoreCSSAttributes:H=new Set([]),errorHandler:q,onMutation:te,getCanvasManager:V}=e;Hj(q);const Q=I?window.parent===window:!0;let ge=!1;if(!Q)try{window.parent.document&&(ge=!1)}catch{ge=!0}if(Q&&!t)throw new Error("emit function is required");if(!Q&&!ge)return()=>{};$!==void 0&&T.mousemove===void 0&&(T.mousemove=$),$o.reset();const ie=v===!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,radio:!0,checkbox:!0}:g!==void 0?g:{},ke=b===!0||b==="all"?{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaVerification:!0,headMetaAuthorship:b==="all",headMetaDescKeywords:b==="all"}:b||{};Mj();let Y,K=0;const se=pe=>{for(const re of P||[])re.eventProcessor&&(pe=re.eventProcessor(pe));return E&&!ge&&(pe=E(pe)),pe};An=(pe,re)=>{var Te;const fe=pe;if(fe.timestamp=Hh(),(Te=Vl[0])!=null&&Te.isFrozen()&&fe.type!==Wt.FullSnapshot&&!(fe.type===Wt.IncrementalSnapshot&&fe.data.source===Ft.Mutation)&&Vl.forEach($e=>$e.unfreeze()),Q)t==null||t(se(fe),re);else if(ge){const $e={type:"rrweb",event:se(fe),origin:window.location.origin,isCheckout:re};window.parent.postMessage($e,"*")}if(fe.type===Wt.FullSnapshot)Y=fe,K=0;else if(fe.type===Wt.IncrementalSnapshot){if(fe.data.source===Ft.Mutation&&fe.data.isAttachIframe)return;K++;const $e=r&&K>=r,Le=n&&Y&&fe.timestamp-Y.timestamp>n;($e||Le)&&ye(!0)}};const ne=pe=>{An({type:Wt.IncrementalSnapshot,data:{source:Ft.Mutation,...pe}})},ve=pe=>An({type:Wt.IncrementalSnapshot,data:{source:Ft.Scroll,...pe}}),J=pe=>An({type:Wt.IncrementalSnapshot,data:{source:Ft.CanvasMutation,...pe}}),ae=pe=>An({type:Wt.IncrementalSnapshot,data:{source:Ft.AdoptedStyleSheet,...pe}}),ce=new aU({mutationCb:ne,adoptedStyleSheetCb:ae}),oe=typeof __RRWEB_EXCLUDE_IFRAME__=="boolean"&&__RRWEB_EXCLUDE_IFRAME__?new tU:new nU({mirror:$o,mutationCb:ne,stylesheetManager:ce,recordCrossOriginIframes:I,wrappedEmit:An});for(const pe of P||[])pe.getMirror&&pe.getMirror({nodeMirror:$o,crossOriginIframeMirror:oe.crossOriginIframeMirror,crossOriginIframeStyleMirror:oe.crossOriginIframeStyleMirror});const he=new iU,le=uU(V,{mirror:$o,win:window,mutationCb:pe=>An({type:Wt.IncrementalSnapshot,data:{source:Ft.CanvasMutation,...pe}}),recordCanvas:N,blockClass:o,blockSelector:s,unblockSelector:a,maxCanvasSize:w,sampling:T.canvas,dataURLOptions:C,errorHandler:q}),Ee=typeof __RRWEB_EXCLUDE_SHADOW_DOM__=="boolean"&&__RRWEB_EXCLUDE_SHADOW_DOM__?new rU:new oU({mutationCb:ne,scrollCb:ve,bypassOptions:{onMutation:te,blockClass:o,blockSelector:s,unblockSelector:a,maskAllText:u,maskTextClass:c,unmaskTextClass:d,maskTextSelector:f,unmaskTextSelector:p,inlineStylesheet:m,maskInputOptions:ie,dataURLOptions:C,maskAttributeFn:_,maskTextFn:S,maskInputFn:y,recordCanvas:N,inlineImages:U,sampling:T,slimDOMOptions:ke,iframeManager:oe,stylesheetManager:ce,canvasManager:le,keepIframeSrcFn:O,processedNodeManager:he},mirror:$o}),ye=(pe=!1)=>{if(!x)return;An({type:Wt.Meta,data:{href:window.location.href,width:v$(),height:m$()}},pe),ce.reset(),Ee.init(),Vl.forEach(fe=>fe.lock());const re=Ij(document,{mirror:$o,blockClass:o,blockSelector:s,unblockSelector:a,maskAllText:u,maskTextClass:c,unmaskTextClass:d,maskTextSelector:f,unmaskTextSelector:p,inlineStylesheet:m,maskAllInputs:ie,maskAttributeFn:_,maskInputFn:y,maskTextFn:S,slimDOM:ke,dataURLOptions:C,recordCanvas:N,inlineImages:U,onSerialize:fe=>{y$(fe,$o)&&oe.addIframe(fe),b$(fe,$o)&&ce.trackLinkElement(fe),Y2(fe)&&Ee.addShadowRoot(fe.shadowRoot,document)},onIframeLoad:(fe,Te)=>{oe.attachIframe(fe,Te),fe.contentWindow&&le.addWindow(fe.contentWindow),Ee.observeAttachShadow(fe)},onStylesheetLoad:(fe,Te)=>{ce.attachLinkElement(fe,Te)},onBlockedImageLoad:(fe,Te,{width:$e,height:Le})=>{ne({adds:[],removes:[],texts:[],attributes:[{id:Te.id,attributes:{style:{width:`${$e}px`,height:`${Le}px`}}}]})},keepIframeSrcFn:O});if(!re)return console.warn("Failed to snapshot the document");An({type:Wt.FullSnapshot,data:{node:re,initialOffset:h$(window)}}),Vl.forEach(fe=>fe.unlock()),document.adoptedStyleSheets&&document.adoptedStyleSheets.length>0&&ce.adoptStyleSheets(document.adoptedStyleSheets,$o.getId(document))};jh=ye;try{const pe=[],re=Te=>{var $e;return Qt(eU)({onMutation:te,mutationCb:ne,mousemoveCb:(Le,A)=>An({type:Wt.IncrementalSnapshot,data:{source:A,positions:Le}}),mouseInteractionCb:Le=>An({type:Wt.IncrementalSnapshot,data:{source:Ft.MouseInteraction,...Le}}),scrollCb:ve,viewportResizeCb:Le=>An({type:Wt.IncrementalSnapshot,data:{source:Ft.ViewportResize,...Le}}),inputCb:Le=>An({type:Wt.IncrementalSnapshot,data:{source:Ft.Input,...Le}}),mediaInteractionCb:Le=>An({type:Wt.IncrementalSnapshot,data:{source:Ft.MediaInteraction,...Le}}),styleSheetRuleCb:Le=>An({type:Wt.IncrementalSnapshot,data:{source:Ft.StyleSheetRule,...Le}}),styleDeclarationCb:Le=>An({type:Wt.IncrementalSnapshot,data:{source:Ft.StyleDeclaration,...Le}}),canvasMutationCb:J,fontCb:Le=>An({type:Wt.IncrementalSnapshot,data:{source:Ft.Font,...Le}}),selectionCb:Le=>{An({type:Wt.IncrementalSnapshot,data:{source:Ft.Selection,...Le}})},customElementCb:Le=>{An({type:Wt.IncrementalSnapshot,data:{source:Ft.CustomElement,...Le}})},blockClass:o,ignoreClass:i,ignoreSelector:l,maskAllText:u,maskTextClass:c,unmaskTextClass:d,maskTextSelector:f,unmaskTextSelector:p,maskInputOptions:ie,inlineStylesheet:m,sampling:T,recordDOM:x,recordCanvas:N,inlineImages:U,userTriggeredOnInput:F,collectFonts:B,doc:Te,maskAttributeFn:_,maskInputFn:y,maskTextFn:S,keepIframeSrcFn:O,blockSelector:s,unblockSelector:a,slimDOMOptions:ke,dataURLOptions:C,mirror:$o,iframeManager:oe,stylesheetManager:ce,shadowDomManager:Ee,processedNodeManager:he,canvasManager:le,ignoreCSSAttributes:H,plugins:(($e=P==null?void 0:P.filter(Le=>Le.observer))==null?void 0:$e.map(Le=>({observer:Le.observer,options:Le.options,callback:A=>An({type:Wt.Plugin,data:{plugin:Le.name,payload:A}})})))||[]},{})};oe.addLoadListener(Te=>{try{pe.push(re(Te.contentDocument))}catch($e){console.warn($e)}});const fe=()=>{ye(),pe.push(re(document))};return document.readyState==="interactive"||document.readyState==="complete"?fe():(pe.push(Er("DOMContentLoaded",()=>{An({type:Wt.DomContentLoaded,data:{}}),L==="DOMContentLoaded"&&fe()})),pe.push(Er("load",()=>{An({type:Wt.Load,data:{}}),L==="load"&&fe()},window))),()=>{pe.forEach(Te=>Te()),he.destroy(),jh=void 0,Vj()}}catch(pe){console.warn(pe)}}function lU(e){if(!jh)throw new Error("please take full snapshot after start recording");jh(e)}Vs.mirror=$o;Vs.takeFullSnapshot=lU;function uU(e,t){try{return e?e(t):new Mw}catch{return console.warn("Unable to initialize CanvasManager"),new Mw}}var Ow;(function(e){e[e.NotStarted=0]="NotStarted",e[e.Running=1]="Running",e[e.Stopped=2]="Stopped"})(Ow||(Ow={}));const cU=3,dU=5;function E4(e){return e>9999999999?e:e*1e3}function sv(e){return e>9999999999?e/1e3:e}function of(e,t){t.category!=="sentry.transaction"&&(["ui.click","ui.input"].includes(t.category)?e.triggerUserActivity():e.checkAndHandleExpiredSession(),e.addUpdate(()=>(e.throttledAddEvent({type:Wt.Custom,timestamp:(t.timestamp||0)*1e3,data:{tag:"breadcrumb",payload:Io(t,10,1e3)}}),t.category==="console")))}const fU="button,a";function $$(e){return e.closest(fU)||e}function x$(e){const t=I$(e);return!t||!(t instanceof Element)?t:$$(t)}function I$(e){return pU(e)?e.target:e}function pU(e){return typeof e=="object"&&!!e&&"target"in e}let Va;function hU(e){return Va||(Va=[],mU()),Va.push(e),()=>{const t=Va?Va.indexOf(e):-1;t>-1&&Va.splice(t,1)}}function mU(){Pr(wn,"open",function(e){return function(...t){if(Va)try{Va.forEach(n=>n())}catch{}return e.apply(wn,t)}})}const vU=new Set([Ft.Mutation,Ft.StyleSheetRule,Ft.StyleDeclaration,Ft.AdoptedStyleSheet,Ft.CanvasMutation,Ft.Selection,Ft.MediaInteraction]);function gU(e,t,n){e.handleClick(t,n)}class _U{constructor(t,n,r=of){this._lastMutation=0,this._lastScroll=0,this._clicks=[],this._timeout=n.timeout/1e3,this._threshold=n.threshold/1e3,this._scrollTimeout=n.scrollTimeout/1e3,this._replay=t,this._ignoreSelector=n.ignoreSelector,this._addBreadcrumbEvent=r}addListeners(){const t=hU(()=>{this._lastMutation=Rw()});this._teardown=()=>{t(),this._clicks=[],this._lastMutation=0,this._lastScroll=0}}removeListeners(){this._teardown&&this._teardown(),this._checkClickTimeout&&clearTimeout(this._checkClickTimeout)}handleClick(t,n){if(bU(n,this._ignoreSelector)||!wU(t))return;const r={timestamp:sv(t.timestamp),clickBreadcrumb:t,clickCount:0,node:n};this._clicks.some(o=>o.node===r.node&&Math.abs(o.timestamp-r.timestamp)<1)||(this._clicks.push(r),this._clicks.length===1&&this._scheduleCheckClicks())}registerMutation(t=Date.now()){this._lastMutation=sv(t)}registerScroll(t=Date.now()){this._lastScroll=sv(t)}registerClick(t){const n=$$(t);this._handleMultiClick(n)}_handleMultiClick(t){this._getClicks(t).forEach(n=>{n.clickCount++})}_getClicks(t){return this._clicks.filter(n=>n.node===t)}_checkClicks(){const t=[],n=Rw();this._clicks.forEach(r=>{!r.mutationAfter&&this._lastMutation&&(r.mutationAfter=r.timestamp<=this._lastMutation?this._lastMutation-r.timestamp:void 0),!r.scrollAfter&&this._lastScroll&&(r.scrollAfter=r.timestamp<=this._lastScroll?this._lastScroll-r.timestamp:void 0),r.timestamp+this._timeout<=n&&t.push(r)});for(const r of t){const o=this._clicks.indexOf(r);o>-1&&(this._generateBreadcrumbs(r),this._clicks.splice(o,1))}this._clicks.length&&this._scheduleCheckClicks()}_generateBreadcrumbs(t){const n=this._replay,r=t.scrollAfter&&t.scrollAfter<=this._scrollTimeout,o=t.mutationAfter&&t.mutationAfter<=this._threshold,s=!r&&!o,{clickCount:a,clickBreadcrumb:i}=t;if(s){const l=Math.min(t.mutationAfter||this._timeout,this._timeout)*1e3,u=l1){const l={type:"default",message:i.message,timestamp:i.timestamp,category:"ui.multiClick",data:{...i.data,url:wn.location.href,route:n.getCurrentRoute(),clickCount:a,metric:!0}};this._addBreadcrumbEvent(n,l)}}_scheduleCheckClicks(){this._checkClickTimeout&&clearTimeout(this._checkClickTimeout),this._checkClickTimeout=nf(()=>this._checkClicks(),1e3)}}const yU=["A","BUTTON","INPUT"];function bU(e,t){return!!(!yU.includes(e.tagName)||e.tagName==="INPUT"&&!["submit","button"].includes(e.getAttribute("type")||"")||e.tagName==="A"&&(e.hasAttribute("download")||e.hasAttribute("target")&&e.getAttribute("target")!=="_self")||t&&e.matches(t))}function wU(e){return!!(e.data&&typeof e.data.nodeId=="number"&&e.timestamp)}function Rw(){return Date.now()/1e3}function SU(e,t){try{if(!EU(t))return;const{source:n}=t.data;if(vU.has(n)&&e.registerMutation(t.timestamp),n===Ft.Scroll&&e.registerScroll(t.timestamp),CU(t)){const{type:r,id:o}=t.data,s=Vs.mirror.getNode(o);s instanceof HTMLElement&&r===wr.Click&&e.registerClick(s)}}catch{}}function EU(e){return e.type===cU}function CU(e){return e.data.source===Ft.MouseInteraction}function ns(e){return{timestamp:Date.now()/1e3,type:"default",...e}}var C4=(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))(C4||{});const kU=new Set(["id","class","aria-label","role","name","alt","title","data-test-id","data-testid","disabled","aria-disabled","data-sentry-component"]);function TU(e){const t={};!e["data-sentry-component"]&&e["data-sentry-element"]&&(e["data-sentry-component"]=e["data-sentry-element"]);for(const n in e)if(kU.has(n)){let r=n;(n==="data-testid"||n==="data-test-id")&&(r="testId"),t[r]=e[n]}return t}const $U=e=>t=>{if(!e.isEnabled())return;const n=xU(t);if(!n)return;const r=t.name==="click",o=r?t.event:void 0;r&&e.clickDetector&&(o!=null&&o.target)&&!o.altKey&&!o.metaKey&&!o.ctrlKey&&!o.shiftKey&&gU(e.clickDetector,n,x$(t.event)),of(e,n)};function A$(e,t){const n=Vs.mirror.getId(e),r=n&&Vs.mirror.getNode(n),o=r&&Vs.mirror.getMeta(r),s=o&&AU(o)?o:null;return{message:t,data:s?{nodeId:n,node:{id:n,tagName:s.tagName,textContent:Array.from(s.childNodes).map(a=>a.type===C4.Text&&a.textContent).filter(Boolean).map(a=>a.trim()).join(""),attributes:TU(s.attributes)}}:{}}}function xU(e){const{target:t,message:n}=IU(e);return ns({category:`ui.${e.name}`,...A$(t,n)})}function IU(e){const t=e.name==="click";let n,r=null;try{r=t?x$(e.event):I$(e.event),n=go(r,{maxStringLength:200})||""}catch{n=""}return{target:r,message:n}}function AU(e){return e.type===C4.Element}function MU(e,t){if(!e.isEnabled())return;e.updateUserActivity();const n=OU(t);n&&of(e,n)}function OU(e){const{metaKey:t,shiftKey:n,ctrlKey:r,altKey:o,key:s,target:a}=e;if(!a||RU(a)||!s)return null;const i=t||r||o,l=s.length===1;if(!i&&l)return null;const u=go(a,{maxStringLength:200})||"",c=A$(a,u);return ns({category:"ui.keyDown",message:u,data:{...c.data,metaKey:t,shiftKey:n,ctrlKey:r,altKey:o,key:s}})}function RU(e){return e.tagName==="INPUT"||e.tagName==="TEXTAREA"||e.isContentEditable}const PU={resource:zU,paint:BU,navigation:DU};function av(e,t){return({metric:n})=>void t.replayPerformanceEntries.push(e(n))}function NU(e){return e.map(LU).filter(Boolean)}function LU(e){const t=PU[e.entryType];return t?t(e):null}function _u(e){return((Vr()||wn.performance.timeOrigin)+e)/1e3}function BU(e){const{duration:t,entryType:n,name:r,startTime:o}=e,s=_u(o);return{type:n,name:r,start:s,end:s+t,data:void 0}}function DU(e){const{entryType:t,name:n,decodedBodySize:r,duration:o,domComplete:s,encodedBodySize:a,domContentLoadedEventStart:i,domContentLoadedEventEnd:l,domInteractive:u,loadEventStart:c,loadEventEnd:d,redirectCount:f,startTime:p,transferSize:m,type:v}=e;return o===0?null:{type:`${t}.${v}`,start:_u(p),end:_u(s),name:n,data:{size:m,decodedBodySize:r,encodedBodySize:a,duration:o,domInteractive:u,domContentLoadedEventStart:i,domContentLoadedEventEnd:l,loadEventStart:c,loadEventEnd:d,domComplete:s,redirectCount:f}}}function zU(e){const{entryType:t,initiatorType:n,name:r,responseEnd:o,startTime:s,decodedBodySize:a,encodedBodySize:i,responseStatus:l,transferSize:u}=e;return["fetch","xmlhttprequest"].includes(n)?null:{type:`${t}.${n}`,start:_u(s),end:_u(o),name:r,data:{size:u,statusCode:l,decodedBodySize:a,encodedBodySize:i}}}function FU(e){const t=e.entries[e.entries.length-1],n=t!=null&&t.element?[t.element]:void 0;return k4(e,"largest-contentful-paint",n)}function HU(e){return e.sources!==void 0}function VU(e){const t=[],n=[];for(const r of e.entries)if(HU(r)){const o=[];for(const s of r.sources)if(s.node){n.push(s.node);const a=Vs.mirror.getId(s.node);a&&o.push(a)}t.push({value:r.value,nodeIds:o.length?o:void 0})}return k4(e,"cumulative-layout-shift",n,t)}function jU(e){const t=e.entries[e.entries.length-1],n=t!=null&&t.target?[t.target]:void 0;return k4(e,"interaction-to-next-paint",n)}function k4(e,t,n,r){const o=e.value,s=e.rating,a=_u(o);return{type:"web-vital",name:t,start:a,end:a,data:{value:o,size:o,rating:s,nodeIds:n?n.map(i=>Vs.mirror.getId(i)):void 0,attributions:r}}}function UU(e){function t(o){e.performanceEntries.includes(o)||e.performanceEntries.push(o)}function n({entries:o}){o.forEach(t)}const r=[];return["navigation","paint","resource"].forEach(o=>{r.push(Ji(o,n))}),r.push(p4(av(FU,e)),f4(av(VU,e)),UT(av(jU,e))),()=>{r.forEach(o=>o())}}const Nt=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,WU='var t=Uint8Array,n=Uint16Array,r=Int32Array,e=new t([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 t([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]),s=new t([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),a=function(t,e){for(var i=new n(31),s=0;s<31;++s)i[s]=e+=1<>1|(21845&c)<<1;v=(61680&(v=(52428&v)>>2|(13107&v)<<2))>>4|(3855&v)<<4,u[c]=((65280&v)>>8|(255&v)<<8)>>1}var d=function(t,r,e){for(var i=t.length,s=0,a=new n(r);s>f]=l}else for(o=new n(i),s=0;s>15-t[s]);return o},p=new t(288);for(c=0;c<144;++c)p[c]=8;for(c=144;c<256;++c)p[c]=9;for(c=256;c<280;++c)p[c]=7;for(c=280;c<288;++c)p[c]=8;var g=new t(32);for(c=0;c<32;++c)g[c]=5;var w=d(p,9,0),y=d(g,5,0),m=function(t){return(t+7)/8|0},b=function(n,r,e){return(null==e||e>n.length)&&(e=n.length),new t(n.subarray(r,e))},M=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],E=function(t,n,r){var e=new Error(n||M[t]);if(e.code=t,Error.captureStackTrace&&Error.captureStackTrace(e,E),!r)throw e;return e},z=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8},_=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8,t[e+2]|=r>>16},x=function(r,e){for(var i=[],s=0;sd&&(d=o[s].s);var p=new n(d+1),g=A(i[c-1],p,0);if(g>e){s=0;var w=0,y=g-e,m=1<e))break;w+=m-(1<>=y;w>0;){var M=o[s].s;p[M]=0&&w;--s){var E=o[s].s;p[E]==e&&(--p[E],++w)}g=e}return{t:new t(p),l:g}},A=function(t,n,r){return-1==t.s?Math.max(A(t.l,n,r+1),A(t.r,n,r+1)):n[t.s]=r},D=function(t){for(var r=t.length;r&&!t[--r];);for(var e=new n(++r),i=0,s=t[0],a=1,o=function(t){e[i++]=t},h=1;h<=r;++h)if(t[h]==s&&h!=r)++a;else{if(!s&&a>2){for(;a>138;a-=138)o(32754);a>2&&(o(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(o(s),--a;a>6;a-=6)o(8304);a>2&&(o(a-3<<5|8208),a=0)}for(;a--;)o(s);a=1,s=t[h]}return{c:e.subarray(0,i),n:r}},T=function(t,n){for(var r=0,e=0;e>8,t[i+2]=255^t[i],t[i+3]=255^t[i+1];for(var s=0;s4&&!H[s[K-1]];--K);var N,P,Q,R,V=v+5<<3,W=T(h,p)+T(f,g)+l,X=T(h,M)+T(f,U)+l+14+3*K+T(q,H)+2*q[16]+3*q[17]+7*q[18];if(c>=0&&V<=W&&V<=X)return k(r,m,t.subarray(c,c+v));if(z(r,m,1+(X15&&(z(r,m,tt[B]>>5&127),m+=tt[B]>>12)}}}else N=w,P=p,Q=y,R=g;for(B=0;B255){_(r,m,N[(nt=rt>>18&31)+257]),m+=P[nt+257],nt>7&&(z(r,m,rt>>23&31),m+=e[nt]);var et=31&rt;_(r,m,Q[et]),m+=R[et],et>3&&(_(r,m,rt>>5&8191),m+=i[et])}else _(r,m,N[rt]),m+=P[rt]}return _(r,m,N[256]),m+P[256]},C=new r([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),F=new t(0),I=function(){for(var t=new Int32Array(256),n=0;n<256;++n){for(var r=n,e=9;--e;)r=(1&r&&-306674912)^r>>>1;t[n]=r}return t}(),S=function(){var t=1,n=0;return{p:function(r){for(var e=t,i=n,s=0|r.length,a=0;a!=s;){for(var o=Math.min(a+2655,s);a>16),i=(65535&i)+15*(i>>16)}t=e,n=i},d:function(){return(255&(t%=65521))<<24|(65280&t)<<8|(255&(n%=65521))<<8|n>>8}}},L=function(s,a,o,h,u){if(!u&&(u={l:1},a.dictionary)){var c=a.dictionary.subarray(-32768),v=new t(c.length+s.length);v.set(c),v.set(s,c.length),s=v,u.w=c.length}return function(s,a,o,h,u,c){var v=c.z||s.length,d=new t(h+v+5*(1+Math.ceil(v/7e3))+u),p=d.subarray(h,d.length-u),g=c.l,w=7&(c.r||0);if(a){w&&(p[0]=c.r>>3);for(var y=C[a-1],M=y>>13,E=8191&y,z=(1<7e3||q>24576)&&(N>423||!g)){w=U(s,p,0,F,I,S,O,q,G,j-G,w),q=L=O=0,G=j;for(var P=0;P<286;++P)I[P]=0;for(P=0;P<30;++P)S[P]=0}var Q=2,R=0,V=E,W=J-K&32767;if(N>2&&H==T(j-W))for(var X=Math.min(M,N)-1,Y=Math.min(32767,j),Z=Math.min(258,N);W<=Y&&--V&&J!=K;){if(s[j+Q]==s[j+Q-W]){for(var $=0;$Q){if(Q=$,R=W,$>X)break;var tt=Math.min(W,$-2),nt=0;for(P=0;Pnt&&(nt=et,K=rt)}}}W+=(J=K)-(K=_[J])&32767}if(R){F[q++]=268435456|f[Q]<<18|l[R];var it=31&f[Q],st=31&l[R];O+=e[it]+i[st],++I[257+it],++S[st],B=j+Q,++L}else F[q++]=s[j],++I[s[j]]}}for(j=Math.max(j,B);j=v&&(p[w/8|0]=g,at=v),w=k(p,w+1,s.subarray(j,at))}c.i=v}return b(d,0,h+m(w)+u)}(s,null==a.level?6:a.level,null==a.mem?u.l?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(s.length)))):20:12+a.mem,o,h,u)},O=function(t,n,r){for(;r;++n)t[n]=r,r>>>=8},j=function(){function n(n,r){if("function"==typeof n&&(r=n,n={}),this.ondata=r,this.o=n||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new t(98304),this.o.dictionary){var e=this.o.dictionary.subarray(-32768);this.b.set(e,32768-e.length),this.s.i=32768-e.length}}return n.prototype.p=function(t,n){this.ondata(L(t,this.o,0,0,this.s),n)},n.prototype.push=function(n,r){this.ondata||E(5),this.s.l&&E(4);var e=n.length+this.s.z;if(e>this.b.length){if(e>2*this.b.length-32768){var i=new t(-32768&e);i.set(this.b.subarray(0,this.s.z)),this.b=i}var s=this.b.length-this.s.z;this.b.set(n.subarray(0,s),this.s.z),this.s.z=this.b.length,this.p(this.b,!1),this.b.set(this.b.subarray(-32768)),this.b.set(n.subarray(s),32768),this.s.z=n.length-s+32768,this.s.i=32766,this.s.w=32768}else this.b.set(n,this.s.z),this.s.z+=n.length;this.s.l=1&r,(this.s.z>this.s.w+8191||r)&&(this.p(this.b,r||!1),this.s.w=this.s.i,this.s.i-=2)},n.prototype.flush=function(){this.ondata||E(5),this.s.l&&E(4),this.p(this.b,!1),this.s.w=this.s.i,this.s.i-=2},n}();function q(t,n){n||(n={});var r=function(){var t=-1;return{p:function(n){for(var r=t,e=0;e>>8;t=r},d:function(){return~t}}}(),e=t.length;r.p(t);var i,s=L(t,n,10+((i=n).filename?i.filename.length+1:0),8),a=s.length;return function(t,n){var r=n.filename;if(t[0]=31,t[1]=139,t[2]=8,t[8]=n.level<2?4:9==n.level?2:0,t[9]=3,0!=n.mtime&&O(t,4,Math.floor(new Date(n.mtime||Date.now())/1e3)),r){t[3]=8;for(var e=0;e<=r.length;++e)t[e+10]=r.charCodeAt(e)}}(s,n),O(s,a-8,r.d()),O(s,a-4,e),s}var B=function(){function t(t,n){this.c=S(),this.v=1,j.call(this,t,n)}return t.prototype.push=function(t,n){this.c.p(t),j.prototype.push.call(this,t,n)},t.prototype.p=function(t,n){var r=L(t,this.o,this.v&&(this.o.dictionary?6:2),n&&4,this.s);this.v&&(function(t,n){var r=n.level,e=0==r?0:r<6?1:9==r?3:2;if(t[0]=120,t[1]=e<<6|(n.dictionary&&32),t[1]|=31-(t[0]<<8|t[1])%31,n.dictionary){var i=S();i.p(n.dictionary),O(t,2,i.d())}}(r,this.o),this.v=0),n&&O(r,r.length-4,this.c.d()),this.ondata(r,n)},t.prototype.flush=function(){j.prototype.flush.call(this)},t}(),G="undefined"!=typeof TextEncoder&&new TextEncoder,H="undefined"!=typeof TextDecoder&&new TextDecoder;try{H.decode(F,{stream:!0})}catch(t){}var J=function(){function t(t){this.ondata=t}return t.prototype.push=function(t,n){this.ondata||E(5),this.d&&E(4),this.ondata(K(t),this.d=n||!1)},t}();function K(n,r){if(G)return G.encode(n);for(var e=n.length,i=new t(n.length+(n.length>>1)),s=0,a=function(t){i[s++]=t},o=0;oi.length){var h=new t(s+8+(e-o<<1));h.set(i),i=h}var f=n.charCodeAt(o);f<128||r?a(f):f<2048?(a(192|f>>6),a(128|63&f)):f>55295&&f<57344?(a(240|(f=65536+(1047552&f)|1023&n.charCodeAt(++o))>>18),a(128|f>>12&63),a(128|f>>6&63),a(128|63&f)):(a(224|f>>12),a(128|f>>6&63),a(128|63&f))}return b(i,0,s)}const N=new class{constructor(){this._init()}clear(){this._init()}addEvent(t){if(!t)throw new Error("Adding invalid event");const n=this._hasEvents?",":"";this.stream.push(n+t),this._hasEvents=!0}finish(){this.stream.push("]",!0);const t=function(t){let n=0;for(const r of t)n+=r.length;const r=new Uint8Array(n);for(let n=0,e=0,i=t.length;n{this._deflatedData.push(t)},this.stream=new J((t,n)=>{this.deflate.push(t,n)}),this.stream.push("[")}},P={clear:()=>{N.clear()},addEvent:t=>N.addEvent(t),finish:()=>N.finish(),compress:t=>function(t){return q(K(t))}(t)};addEventListener("message",function(t){const n=t.data.method,r=t.data.id,e=t.data.arg;if(n in P&&"function"==typeof P[n])try{const t=P[n](e);postMessage({id:r,method:n,success:!0,response:t})}catch(t){postMessage({id:r,method:n,success:!1,response:t.message}),console.error(t)}}),postMessage({id:void 0,method:"init",success:!0,response:void 0});';function qU(){const e=new Blob([WU]);return URL.createObjectURL(e)}const Pw=["log","warn","error"],vp="[Replay] ";function iv(e,t="info"){ni({category:"console",data:{logger:"replay"},level:t,message:`${vp}${e}`},{level:t})}function KU(){let e=!1,t=!1;const n={exception:()=>{},infoTick:()=>{},setConfig:r=>{e=!!r.captureExceptions,t=!!r.traceInternals}};return Nt?(Pw.forEach(r=>{n[r]=(...o)=>{it[r](vp,...o),t&&iv(o.join(""),xT(r))}}),n.exception=(r,...o)=>{o.length&&n.error&&n.error(...o),it.error(vp,r),e?L0(r,{mechanism:{handled:!0,type:"auto.function.replay.debug"}}):t&&iv(r,"error")},n.infoTick=(...r)=>{it.log(vp,...r),t&&setTimeout(()=>iv(r[0]),0)}):Pw.forEach(r=>{n[r]=()=>{}}),n}const Lt=KU();class T4 extends Error{constructor(){super(`Event buffer exceeded maximum size of ${g4}.`)}}class M${constructor(){this.events=[],this._totalSize=0,this.hasCheckout=!1,this.waitForCheckout=!1}get hasEvents(){return this.events.length>0}get type(){return"sync"}destroy(){this.events=[]}async addEvent(t){const n=JSON.stringify(t).length;if(this._totalSize+=n,this._totalSize>g4)throw new T4;this.events.push(t)}finish(){return new Promise(t=>{const n=this.events;this.clear(),t(JSON.stringify(n))})}clear(){this.events=[],this._totalSize=0,this.hasCheckout=!1}getEarliestTimestamp(){const t=this.events.map(n=>n.timestamp).sort()[0];return t?E4(t):null}}class GU{constructor(t){this._worker=t,this._id=0}ensureReady(){return this._ensureReadyPromise?this._ensureReadyPromise:(this._ensureReadyPromise=new Promise((t,n)=>{this._worker.addEventListener("message",({data:r})=>{r.success?t():n()},{once:!0}),this._worker.addEventListener("error",r=>{n(r)},{once:!0})}),this._ensureReadyPromise)}destroy(){Nt&&Lt.log("Destroying compression worker"),this._worker.terminate()}postMessage(t,n){const r=this._getAndIncrementId();return new Promise((o,s)=>{const a=({data:i})=>{const l=i;if(l.method===t&&l.id===r){if(this._worker.removeEventListener("message",a),!l.success){Nt&&Lt.error("Error in compression worker: ",l.response),s(new Error("Error in compression worker"));return}o(l.response)}};this._worker.addEventListener("message",a),this._worker.postMessage({id:r,method:t,arg:n})})}_getAndIncrementId(){return this._id++}}class YU{constructor(t){this._worker=new GU(t),this._earliestTimestamp=null,this._totalSize=0,this.hasCheckout=!1,this.waitForCheckout=!1}get hasEvents(){return!!this._earliestTimestamp}get type(){return"worker"}ensureReady(){return this._worker.ensureReady()}destroy(){this._worker.destroy()}addEvent(t){const n=E4(t.timestamp);(!this._earliestTimestamp||ng4?Promise.reject(new T4):this._sendEventToWorker(r)}finish(){return this._finishRequest()}clear(){this._earliestTimestamp=null,this._totalSize=0,this.hasCheckout=!1,this._worker.postMessage("clear").then(null,t=>{Nt&&Lt.exception(t,'Sending "clear" message to worker failed',t)})}getEarliestTimestamp(){return this._earliestTimestamp}_sendEventToWorker(t){return this._worker.postMessage("addEvent",t)}async _finishRequest(){const t=await this._worker.postMessage("finish");return this._earliestTimestamp=null,this._totalSize=0,t}}class XU{constructor(t){this._fallback=new M$,this._compression=new YU(t),this._used=this._fallback,this._ensureWorkerIsLoadedPromise=this._ensureWorkerIsLoaded()}get waitForCheckout(){return this._used.waitForCheckout}get type(){return this._used.type}get hasEvents(){return this._used.hasEvents}get hasCheckout(){return this._used.hasCheckout}set hasCheckout(t){this._used.hasCheckout=t}set waitForCheckout(t){this._used.waitForCheckout=t}destroy(){this._fallback.destroy(),this._compression.destroy()}clear(){return this._used.clear()}getEarliestTimestamp(){return this._used.getEarliestTimestamp()}addEvent(t){return this._used.addEvent(t)}async finish(){return await this.ensureWorkerIsLoaded(),this._used.finish()}ensureWorkerIsLoaded(){return this._ensureWorkerIsLoadedPromise}async _ensureWorkerIsLoaded(){try{await this._compression.ensureReady()}catch(t){Nt&&Lt.exception(t,"Failed to load the compression worker, falling back to simple buffer");return}await this._switchToCompressionWorker()}async _switchToCompressionWorker(){const{events:t,hasCheckout:n,waitForCheckout:r}=this._fallback,o=[];for(const s of t)o.push(this._compression.addEvent(s));this._compression.hasCheckout=n,this._compression.waitForCheckout=r,this._used=this._compression;try{await Promise.all(o),this._fallback.clear()}catch(s){Nt&&Lt.exception(s,"Failed to add events when switching buffers.")}}}function JU({useCompression:e,workerUrl:t}){if(e&&window.Worker){const n=QU(t);if(n)return n}return Nt&&Lt.log("Using simple buffer"),new M$}function QU(e){try{const t=e||ZU();if(!t)return;Nt&&Lt.log(`Using compression worker${e?` from ${e}`:""}`);const n=new Worker(t);return new XU(n)}catch(t){Nt&&Lt.exception(t,"Failed to create compression worker")}}function ZU(){return typeof __SENTRY_EXCLUDE_REPLAY_WORKER__>"u"||!__SENTRY_EXCLUDE_REPLAY_WORKER__?qU():""}function $4(){try{return"sessionStorage"in wn&&!!wn.sessionStorage}catch{return!1}}function eW(e){tW(),e.session=void 0}function tW(){if($4())try{wn.sessionStorage.removeItem(m4)}catch{}}function O$(e){return e===void 0?!1:Math.random()e.getContext().initialTimestamp+e.getOptions().maxReplayDuration?(Nt&&Lt.infoTick(`Skipping event with timestamp ${n} because it is after maxReplayDuration`),!1):!0}function aW(e,t){try{if(typeof t=="function"&&oW(e))return t(e)}catch(n){return Nt&&Lt.exception(n,"An error occurred in the `beforeAddRecordingEvent` callback, skipping the event..."),null}return e}function A4(e){return!e.type}function Z2(e){return e.type==="transaction"}function iW(e){return e.type==="replay_event"}function Lw(e){return e.type==="feedback"}function lW(e){return(t,n)=>{if(!e.isEnabled()||!A4(t)&&!Z2(t))return;const r=n.statusCode;if(!(!r||r<200||r>=300)){if(Z2(t)){uW(e,t);return}cW(e,t)}}}function uW(e,t){var r,o;const n=e.getContext();(o=(r=t.contexts)==null?void 0:r.trace)!=null&&o.trace_id&&n.traceIds.size<100&&n.traceIds.add(t.contexts.trace.trace_id)}function cW(e,t){const n=e.getContext();if(t.event_id&&n.errorIds.size<100&&n.errorIds.add(t.event_id),e.recordingMode!=="buffer"||!t.tags||!t.tags.replayId)return;const{beforeErrorSampling:r}=e.getOptions();typeof r=="function"&&!r(t)||nf(async()=>{try{await e.sendBufferedReplayOrFlush()}catch(o){e.handleException(o)}})}function dW(e){return t=>{!e.isEnabled()||!A4(t)||fW(e,t)}}function fW(e,t){var r,o,s;const n=(s=(o=(r=t.exception)==null?void 0:r.values)==null?void 0:o[0])==null?void 0:s.value;if(typeof n=="string"&&(n.match(/(reactjs\.org\/docs\/error-decoder\.html\?invariant=|react\.dev\/errors\/)(418|419|422|423|425)/)||n.match(/(does not match server-rendered HTML|Hydration failed because)/i))){const a=ns({category:"replay.hydrate-error",data:{url:Uu()}});of(e,a)}}function pW(e){const t=Jt();t&&t.on("beforeAddBreadcrumb",n=>hW(e,n))}function hW(e,t){if(!e.isEnabled()||!D$(t))return;const n=mW(t);n&&of(e,n)}function mW(e){return!D$(e)||["fetch","xhr","sentry.event","sentry.transaction"].includes(e.category)||e.category.startsWith("ui.")?null:e.category==="console"?vW(e):ns(e)}function vW(e){var o;const t=(o=e.data)==null?void 0:o.arguments;if(!Array.isArray(t)||t.length===0)return ns(e);let n=!1;const r=t.map(s=>{if(!s)return s;if(typeof s=="string")return s.length>Lf?(n=!0,`${s.slice(0,Lf)}…`):s;if(typeof s=="object")try{const a=Io(s,7);return JSON.stringify(a).length>Lf?(n=!0,`${JSON.stringify(a,null,2).slice(0,Lf)}…`):a}catch{}return s});return ns({...e,data:{...e.data,arguments:r,...n?{_meta:{warnings:["CONSOLE_ARG_TRUNCATED"]}}:{}}})}function D$(e){return!!e.category}function gW(e,t){var n,r,o;return e.type||!((r=(n=e.exception)==null?void 0:n.values)!=null&&r.length)?!1:!!((o=t.originalException)!=null&&o.__rrweb__)}function z$(){const e=ln().getPropagationContext().dsc;e&&delete e.replay_id;const t=sr();if(t){const n=Qs(t);delete n.replay_id}}function _W(e,t){e.triggerUserActivity(),e.addUpdate(()=>t.timestamp?(e.throttledAddEvent({type:Wt.Custom,timestamp:t.timestamp*1e3,data:{tag:"breadcrumb",payload:{timestamp:t.timestamp,type:"default",category:"sentry.feedback",data:{feedbackId:t.event_id}}}}),!1):!0)}function yW(e,t){return e.recordingMode!=="buffer"||t.message===v4||!t.exception||t.type?!1:O$(e.getOptions().errorSampleRate)}function bW(e){return Object.assign((t,n)=>!e.isEnabled()||e.isPaused()?t:iW(t)?(delete t.breadcrumbs,t):!A4(t)&&!Z2(t)&&!Lw(t)?t:e.checkAndHandleExpiredSession()?Lw(t)?(e.flush(),t.contexts.feedback.replay_id=e.getSessionId(),_W(e,t),t):gW(t,n)&&!e.getOptions()._experiments.captureExceptions?(Nt&&Lt.log("Ignoring error from rrweb internals",t),null):((yW(e,t)||e.recordingMode==="session")&&(t.tags={...t.tags,replayId:e.getSessionId()}),t):(z$(),t),{id:"Replay"})}function j0(e,t){return t.map(({type:n,start:r,end:o,name:s,data:a})=>{const i=e.throttledAddEvent({type:Wt.Custom,timestamp:r,data:{tag:"performanceSpan",payload:{op:n,description:s,startTimestamp:r,endTimestamp:o,data:a}}});return typeof i=="string"?Promise.resolve(null):i})}function wW(e){const{from:t,to:n}=e,r=Date.now()/1e3;return{type:"navigation.push",start:r,end:r,name:n,data:{previous:t}}}function SW(e){return t=>{if(!e.isEnabled())return;const n=wW(t);n!==null&&(e.getContext().urls.push(n.name),e.triggerUserActivity(),e.addUpdate(()=>(j0(e,[n]),!1)))}}function EW(e,t){return Nt&&e.getOptions()._experiments.traceInternals?!1:mz(t,Jt())}function F$(e,t){e.isEnabled()&&t!==null&&(EW(e,t.name)||e.addUpdate(()=>(j0(e,[t]),!0)))}function U0(e){if(!e)return;const t=new TextEncoder;try{if(typeof e=="string")return t.encode(e).length;if(e instanceof URLSearchParams)return t.encode(e.toString()).length;if(e instanceof FormData){const n=ZT(e);return t.encode(n).length}if(e instanceof Blob)return e.size;if(e instanceof ArrayBuffer)return e.byteLength}catch{}}function H$(e){if(!e)return;const t=parseInt(e,10);return isNaN(t)?void 0:t}function Uh(e,t){if(!e)return{headers:{},size:void 0,_meta:{warnings:[t]}};const n={...e._meta},r=n.warnings||[];return n.warnings=[...r,t],e._meta=n,e}function V$(e,t){if(!t)return null;const{startTimestamp:n,endTimestamp:r,url:o,method:s,statusCode:a,request:i,response:l}=t;return{type:e,start:n/1e3,end:r/1e3,name:o,data:{method:s,statusCode:a,request:i,response:l}}}function yd(e){return{headers:{},size:e,_meta:{warnings:["URL_SKIPPED"]}}}function Xa(e,t,n){if(!t&&Object.keys(e).length===0)return;if(!t)return{headers:e};if(!n)return{headers:e,size:t};const r={headers:e,size:t},{body:o,warnings:s}=CW(n);return r.body=o,s!=null&&s.length&&(r._meta={warnings:s}),r}function e1(e,t){return Object.entries(e).reduce((n,[r,o])=>{const s=r.toLowerCase();return t.includes(s)&&e[r]&&(n[s]=o),n},{})}function CW(e){if(!e||typeof e!="string")return{body:e};const t=e.length>vw,n=kW(e);if(t){const r=e.slice(0,vw);return n?{body:r,warnings:["MAYBE_JSON_TRUNCATED"]}:{body:`${r}…`,warnings:["TEXT_TRUNCATED"]}}if(n)try{return{body:JSON.parse(e)}}catch{}return{body:e}}function kW(e){const t=e[0],n=e[e.length-1];return t==="["&&n==="]"||t==="{"&&n==="}"}function Wh(e,t){const n=TW(e);return Fs(n,t)}function TW(e,t=wn.document.baseURI){if(e.startsWith("http://")||e.startsWith("https://")||e.startsWith(wn.location.origin))return e;const n=new URL(e,t);if(n.origin!==new URL(t).origin)return e;const r=n.href;return!e.endsWith("/")&&r.endsWith("/")?r.slice(0,-1):r}async function $W(e,t,n){try{const r=await IW(e,t,n),o=V$("resource.fetch",r);F$(n.replay,o)}catch(r){Nt&&Lt.exception(r,"Failed to capture fetch breadcrumb")}}function xW(e,t){const{input:n,response:r}=t,o=n?t$(n):void 0,s=U0(o),a=r?H$(r.headers.get("content-length")):void 0;s!==void 0&&(e.data.request_body_size=s),a!==void 0&&(e.data.response_body_size=a)}async function IW(e,t,n){const r=Date.now(),{startTimestamp:o=r,endTimestamp:s=r}=t,{url:a,method:i,status_code:l=0,request_body_size:u,response_body_size:c}=e.data,d=Wh(a,n.networkDetailAllowUrls)&&!Wh(a,n.networkDetailDenyUrls),f=d?AW(n,t.input,u):yd(u),p=await MW(d,n,t.response,c);return{startTimestamp:o,endTimestamp:s,url:a,method:i,statusCode:l,request:f,response:p}}function AW({networkCaptureBodies:e,networkRequestHeaders:t},n,r){const o=n?PW(n,t):{};if(!e)return Xa(o,r,void 0);const s=t$(n),[a,i]=e$(s,Lt),l=Xa(o,r,a);return i?Uh(l,i):l}async function MW(e,{networkCaptureBodies:t,networkResponseHeaders:n},r,o){if(!e&&o!==void 0)return yd(o);const s=r?j$(r.headers,n):{};if(!r||!t&&o!==void 0)return Xa(s,o,void 0);const[a,i]=await RW(r),l=OW(a,{networkCaptureBodies:t,responseBodySize:o,captureDetails:e,headers:s});return i?Uh(l,i):l}function OW(e,{networkCaptureBodies:t,responseBodySize:n,captureDetails:r,headers:o}){try{const s=e!=null&&e.length&&n===void 0?U0(e):n;return r?t?Xa(o,s,e):Xa(o,s,void 0):yd(s)}catch(s){return Nt&&Lt.exception(s,"Failed to serialize response body"),Xa(o,n,void 0)}}async function RW(e){const t=NW(e);if(!t)return[void 0,"BODY_PARSE_ERROR"];try{return[await LW(t)]}catch(n){return n instanceof Error&&n.message.indexOf("Timeout")>-1?(Nt&&Lt.warn("Parsing text body from response timed out"),[void 0,"BODY_PARSE_TIMEOUT"]):(Nt&&Lt.exception(n,"Failed to get text body from response"),[void 0,"BODY_PARSE_ERROR"])}}function j$(e,t){const n={};return t.forEach(r=>{e.get(r)&&(n[r]=e.get(r))}),n}function PW(e,t){return e.length===1&&typeof e[0]!="string"?Bw(e[0],t):e.length===2?Bw(e[1],t):{}}function Bw(e,t){if(!e)return{};const n=e.headers;return n?n instanceof Headers?j$(n,t):Array.isArray(n)?{}:e1(n,t):{}}function NW(e){try{return e.clone()}catch(t){Nt&&Lt.exception(t,"Failed to clone response body")}}function LW(e){return new Promise((t,n)=>{const r=nf(()=>n(new Error("Timeout while trying to read response body")),500);BW(e).then(o=>t(o),o=>n(o)).finally(()=>clearTimeout(r))})}async function BW(e){return await e.text()}async function DW(e,t,n){try{const r=FW(e,t,n),o=V$("resource.xhr",r);F$(n.replay,o)}catch(r){Nt&&Lt.exception(r,"Failed to capture xhr breadcrumb")}}function zW(e,t){const{xhr:n,input:r}=t;if(!n)return;const o=U0(r),s=n.getResponseHeader("content-length")?H$(n.getResponseHeader("content-length")):UW(n.response,n.responseType);o!==void 0&&(e.data.request_body_size=o),s!==void 0&&(e.data.response_body_size=s)}function FW(e,t,n){const r=Date.now(),{startTimestamp:o=r,endTimestamp:s=r,input:a,xhr:i}=t,{url:l,method:u,status_code:c=0,request_body_size:d,response_body_size:f}=e.data;if(!l)return null;if(!i||!Wh(l,n.networkDetailAllowUrls)||Wh(l,n.networkDetailDenyUrls)){const E=yd(d),T=yd(f);return{startTimestamp:o,endTimestamp:s,url:l,method:u,statusCode:c,request:E,response:T}}const p=i[Ti],m=p?e1(p.request_headers,n.networkRequestHeaders):{},v=e1(HW(i),n.networkResponseHeaders),[g,b]=n.networkCaptureBodies?e$(a,Lt):[void 0],[_,y]=n.networkCaptureBodies?VW(i):[void 0],S=Xa(m,d,g),w=Xa(v,f,_);return{startTimestamp:o,endTimestamp:s,url:l,method:u,statusCode:c,request:b?Uh(S,b):S,response:y?Uh(w,y):w}}function HW(e){const t=e.getAllResponseHeaders();return t?t.split(`\r +`).reduce((n,r)=>{const[o,s]=r.split(": ");return s&&(n[o.toLowerCase()]=s),n},{}):{}}function VW(e){const t=[];try{return[e.responseText]}catch(n){t.push(n)}try{return jW(e.response,e.responseType)}catch(n){t.push(n)}return Nt&&Lt.warn("Failed to get xhr response body",...t),[void 0]}function jW(e,t){try{if(typeof e=="string")return[e];if(e instanceof Document)return[e.body.outerHTML];if(t==="json"&&e&&typeof e=="object")return[JSON.stringify(e)];if(!e)return[void 0]}catch(n){return Nt&&Lt.exception(n,"Failed to serialize body",e),[void 0,"BODY_PARSE_ERROR"]}return Nt&&Lt.log("Skipping network body because of body type",e),[void 0,"UNPARSEABLE_BODY_TYPE"]}function UW(e,t){try{const n=t==="json"&&e&&typeof e=="object"?JSON.stringify(e):e;return U0(n)}catch{return}}function WW(e){const t=Jt();try{const{networkDetailAllowUrls:n,networkDetailDenyUrls:r,networkCaptureBodies:o,networkRequestHeaders:s,networkResponseHeaders:a}=e.getOptions(),i={replay:e,networkDetailAllowUrls:n,networkDetailDenyUrls:r,networkCaptureBodies:o,networkRequestHeaders:s,networkResponseHeaders:a};t&&t.on("beforeAddBreadcrumb",(l,u)=>qW(i,l,u))}catch{}}function qW(e,t,n){if(t.data)try{KW(t)&&YW(n)&&(zW(t,n),DW(t,n,e)),GW(t)&&XW(n)&&(xW(t,n),$W(t,n,e))}catch(r){Nt&&Lt.exception(r,"Error when enriching network breadcrumb")}}function KW(e){return e.category==="xhr"}function GW(e){return e.category==="fetch"}function YW(e){return e==null?void 0:e.xhr}function XW(e){return e==null?void 0:e.response}function JW(e){const t=Jt();XT($U(e)),z0(SW(e)),pW(e),WW(e);const n=bW(e);PD(n),t&&(t.on("beforeSendEvent",dW(e)),t.on("afterSendEvent",lW(e)),t.on("createDsc",r=>{const o=e.getSessionId();o&&e.isEnabled()&&e.recordingMode==="session"&&e.checkAndHandleExpiredSession()&&(r.replay_id=o)}),t.on("spanStart",r=>{e.lastActiveSpan=r}),t.on("spanEnd",r=>{e.lastActiveSpan=r}),t.on("beforeSendFeedback",async(r,o)=>{var a;const s=e.getSessionId();o!=null&&o.includeReplay&&e.isEnabled()&&s&&((a=r.contexts)!=null&&a.feedback)&&(r.contexts.feedback.source==="api"&&await e.sendBufferedReplayOrFlush(),r.contexts.feedback.replay_id=s)}),t.on("openFeedbackWidget",async()=>{await e.sendBufferedReplayOrFlush()}))}async function QW(e){try{return Promise.all(j0(e,[ZW(wn.performance.memory)]))}catch{return[]}}function ZW(e){const{jsHeapSizeLimit:t,totalJSHeapSize:n,usedJSHeapSize:r}=e,o=Date.now()/1e3;return{type:"memory",name:"memory",start:o,end:o,data:{memory:{jsHeapSizeLimit:t,totalJSHeapSize:n,usedJSHeapSize:r}}}}function eq(e,t,n){return wz(e,t,{...n,setTimeoutImpl:nf})}const io=Xt.navigator;function tq(){return/iPhone|iPad|iPod/i.test((io==null?void 0:io.userAgent)??"")||/Macintosh/i.test((io==null?void 0:io.userAgent)??"")&&(io!=null&&io.maxTouchPoints)&&(io==null?void 0:io.maxTouchPoints)>1?{sampling:{mousemove:!1}}:{}}function nq(e){let t=!1;return(n,r)=>{if(!e.checkAndHandleExpiredSession()){Nt&&Lt.warn("Received replay event after session expired.");return}const o=r||!t;t=!0,e.clickDetector&&SU(e.clickDetector,n),e.addUpdate(()=>{if(e.recordingMode==="buffer"&&o&&e.setInitialState(),!I4(e,n,o))return!0;if(!o)return!1;const s=e.session;if(oq(e,o),e.recordingMode==="buffer"&&s&&e.eventBuffer){const a=e.eventBuffer.getEarliestTimestamp();a&&(Nt&&Lt.log(`Updating session start time to earliest event in buffer to ${new Date(a)}`),s.started=a,e.getOptions().stickySession&&x4(s))}return s!=null&&s.previousSessionId||e.recordingMode==="session"&&e.flush(),!0})}}function rq(e){const t=e.getOptions();return{type:Wt.Custom,timestamp:Date.now(),data:{tag:"options",payload:{shouldRecordCanvas:e.isRecordingCanvas(),sessionSampleRate:t.sessionSampleRate,errorSampleRate:t.errorSampleRate,useCompressionOption:t.useCompression,blockAllMedia:t.blockAllMedia,maskAllText:t.maskAllText,maskAllInputs:t.maskAllInputs,useCompression:e.eventBuffer?e.eventBuffer.type==="worker":!1,networkDetailHasUrls:t.networkDetailAllowUrls.length>0,networkCaptureBodies:t.networkCaptureBodies,networkRequestHasHeaders:t.networkRequestHeaders.length>0,networkResponseHasHeaders:t.networkResponseHeaders.length>0}}}}function oq(e,t){!t||!e.session||e.session.segmentId!==0||I4(e,rq(e),!1)}function sq(e){if(!e)return null;try{return e.nodeType===e.ELEMENT_NODE?e:e.parentElement}catch{return null}}function aq(e,t,n,r){return ci(rT(e,Qy(e),r,n),[[{type:"replay_event"},e],[{type:"replay_recording",length:typeof t=="string"?new TextEncoder().encode(t).length:t.length},t]])}function iq({recordingData:e,headers:t}){let n;const r=`${JSON.stringify(t)} +`;if(typeof e=="string")n=`${r}${e}`;else{const s=new TextEncoder().encode(r);n=new Uint8Array(s.length+e.length),n.set(s),n.set(e,s.length)}return n}async function lq({client:e,scope:t,replayId:n,event:r}){const o=typeof e._integrations=="object"&&e._integrations!==null&&!Array.isArray(e._integrations)?Object.keys(e._integrations):void 0,s={event_id:n,integrations:o};e.emit("preprocessEvent",r,s);const a=await uT(e.getOptions(),r,s,t,e,ms());if(!a)return null;e.emit("postprocessEvent",a,s),a.platform=a.platform||"javascript";const i=e.getSdkMetadata(),{name:l,version:u,settings:c}=(i==null?void 0:i.sdk)||{};return a.sdk={...a.sdk,name:l||"sentry.javascript.unknown",version:u||"0.0.0",settings:c},a}async function uq({recordingData:e,replayId:t,segmentId:n,eventContext:r,timestamp:o,session:s}){const a=iq({recordingData:e,headers:{segment_id:n}}),{urls:i,errorIds:l,traceIds:u,initialTimestamp:c}=r,d=Jt(),f=ln(),p=d==null?void 0:d.getTransport(),m=d==null?void 0:d.getDsn();if(!d||!p||!m||!s.sampled)return Promise.resolve({});const v={type:zV,replay_start_timestamp:c/1e3,timestamp:o/1e3,error_ids:l,trace_ids:u,urls:i,replay_id:t,segment_id:n,replay_type:s.sampled},g=await lq({scope:f,client:d,replayId:t,event:v});if(!g)return d.recordDroppedEvent("event_processor","replay"),Nt&&Lt.log("An event processor returned `null`, will not send event."),Promise.resolve({});delete g.sdkProcessingMetadata;const b=aq(g,a,m,d.getOptions().tunnel);let _;try{_=await p.send(b)}catch(S){const w=new Error(v4);try{w.cause=S}catch{}throw w}if(typeof _.statusCode=="number"&&(_.statusCode<200||_.statusCode>=300))throw new U$(_.statusCode);const y=kT({},_);if(CT(y,"replay"))throw new M4(y);return _}class U$ extends Error{constructor(t){super(`Transport returned status code ${t}`)}}class M4 extends Error{constructor(t){super("Rate limit hit"),this.rateLimits=t}}async function W$(e,t={count:0,interval:WV}){const{recordingData:n,onError:r}=e;if(n.length)try{return await uq(e),!0}catch(o){if(o instanceof U$||o instanceof M4)throw o;if(OD("Replays",{_retryCount:t.count}),r&&r(o),t.count>=qV){const s=new Error(`${v4} - max retries exceeded`);try{s.cause=o}catch{}throw s}return t.interval*=++t.count,new Promise((s,a)=>{nf(async()=>{try{await W$(e,t),s(!0)}catch(i){a(i)}},t.interval)})}}const q$="__THROTTLED",cq="__SKIPPED";function dq(e,t,n){const r=new Map,o=i=>{const l=i-n;r.forEach((u,c)=>{c[...r.values()].reduce((i,l)=>i+l,0);let a=!1;return(...i)=>{const l=Math.floor(Date.now()/1e3);if(o(l),s()>=t){const c=a;return a=!0,c?cq:q$}a=!1;const u=r.get(l)||0;return r.set(l,u+1),e(...i)}}class fq{constructor({options:t,recordingOptions:n}){this.eventBuffer=null,this.performanceEntries=[],this.replayPerformanceEntries=[],this.recordingMode="session",this.timeouts={sessionIdlePause:FV,sessionIdleExpire:HV},this._lastActivity=Date.now(),this._isEnabled=!1,this._isPaused=!1,this._requiresManualStart=!1,this._hasInitializedCoreListeners=!1,this._context={errorIds:new Set,traceIds:new Set,urls:[],initialTimestamp:Date.now(),initialUrl:""},this._recordingOptions=n,this._options=t,this._debouncedFlush=eq(()=>this._flush(),this._options.flushMinDelay,{maxWait:this._options.flushMaxDelay}),this._throttledAddEvent=dq((a,i)=>sW(this,a,i),300,5);const{slowClickTimeout:r,slowClickIgnoreSelectors:o}=this.getOptions(),s=r?{threshold:Math.min(KV,r),timeout:r,scrollTimeout:GV,ignoreSelector:o?o.join(","):""}:void 0;if(s&&(this.clickDetector=new _U(this,s)),Nt){const a=t._experiments;Lt.setConfig({captureExceptions:!!a.captureExceptions,traceInternals:!!a.traceInternals})}this._handleVisibilityChange=()=>{wn.document.visibilityState==="visible"?this._doChangeToForegroundTasks():this._doChangeToBackgroundTasks()},this._handleWindowBlur=()=>{const a=ns({category:"ui.blur"});this._doChangeToBackgroundTasks(a)},this._handleWindowFocus=()=>{const a=ns({category:"ui.focus"});this._doChangeToForegroundTasks(a)},this._handleKeyboardEvent=a=>{MU(this,a)}}getContext(){return this._context}isEnabled(){return this._isEnabled}isPaused(){return this._isPaused}isRecordingCanvas(){return!!this._canvas}getOptions(){return this._options}handleException(t){Nt&&Lt.exception(t),this._options.onError&&this._options.onError(t)}initializeSampling(t){const{errorSampleRate:n,sessionSampleRate:r}=this._options,o=n<=0&&r<=0;if(this._requiresManualStart=o,!o){if(this._initializeSessionForSampling(t),!this.session){Nt&&Lt.exception(new Error("Unable to initialize and create session"));return}this.session.sampled!==!1&&(this.recordingMode=this.session.sampled==="buffer"&&this.session.segmentId===0?"buffer":"session",Nt&&Lt.infoTick(`Starting replay in ${this.recordingMode} mode`),this._initializeRecording())}}start(){if(this._isEnabled&&this.recordingMode==="session"){Nt&&Lt.log("Recording is already in progress");return}if(this._isEnabled&&this.recordingMode==="buffer"){Nt&&Lt.log("Buffering is in progress, call `flush()` to save the replay");return}Nt&&Lt.infoTick("Starting replay in session mode"),this._updateUserActivity();const t=lv({maxReplayDuration:this._options.maxReplayDuration,sessionIdleExpire:this.timeouts.sessionIdleExpire},{stickySession:this._options.stickySession,sessionSampleRate:1,allowBuffering:!1});this.session=t,this.recordingMode="session",this._initializeRecording()}startBuffering(){if(this._isEnabled){Nt&&Lt.log("Buffering is in progress, call `flush()` to save the replay");return}Nt&&Lt.infoTick("Starting replay in buffer mode");const t=lv({sessionIdleExpire:this.timeouts.sessionIdleExpire,maxReplayDuration:this._options.maxReplayDuration},{stickySession:this._options.stickySession,sessionSampleRate:0,allowBuffering:!0});this.session=t,this.recordingMode="buffer",this._initializeRecording()}startRecording(){try{const t=this._canvas;this._stopRecording=Vs({...this._recordingOptions,...this.recordingMode==="buffer"?{checkoutEveryNms:UV}:this._options._experiments.continuousCheckout&&{checkoutEveryNms:Math.max(36e4,this._options._experiments.continuousCheckout)},emit:nq(this),...tq(),onMutation:this._onMutationHandler.bind(this),...t?{recordCanvas:t.recordCanvas,getCanvasManager:t.getCanvasManager,sampling:t.sampling,dataURLOptions:t.dataURLOptions}:{}})}catch(t){this.handleException(t)}}stopRecording(){try{return this._stopRecording&&(this._stopRecording(),this._stopRecording=void 0),!0}catch(t){return this.handleException(t),!1}}async stop({forceFlush:t=!1,reason:n}={}){var r;if(this._isEnabled){this._isEnabled=!1,this.recordingMode="buffer";try{Nt&&Lt.log(`Stopping Replay${n?` triggered by ${n}`:""}`),z$(),this._removeListeners(),this.stopRecording(),this._debouncedFlush.cancel(),t&&await this._flush({force:!0}),(r=this.eventBuffer)==null||r.destroy(),this.eventBuffer=null,eW(this)}catch(o){this.handleException(o)}}}pause(){this._isPaused||(this._isPaused=!0,this.stopRecording(),Nt&&Lt.log("Pausing replay"))}resume(){!this._isPaused||!this._checkSession()||(this._isPaused=!1,this.startRecording(),Nt&&Lt.log("Resuming replay"))}async sendBufferedReplayOrFlush({continueRecording:t=!0}={}){if(this.recordingMode==="session")return this.flushImmediate();const n=Date.now();Nt&&Lt.log("Converting buffer to session"),await this.flushImmediate();const r=this.stopRecording();!t||!r||this.recordingMode!=="session"&&(this.recordingMode="session",this.session&&(this._updateUserActivity(n),this._updateSessionActivity(n),this._maybeSaveSession()),this.startRecording())}addUpdate(t){const n=t();this.recordingMode==="buffer"||!this._isEnabled||n!==!0&&this._debouncedFlush()}triggerUserActivity(){if(this._updateUserActivity(),!this._stopRecording){if(!this._checkSession())return;this.resume();return}this.checkAndHandleExpiredSession(),this._updateSessionActivity()}updateUserActivity(){this._updateUserActivity(),this._updateSessionActivity()}conditionalFlush(){return this.recordingMode==="buffer"?Promise.resolve():this.flushImmediate()}flush(){return this._debouncedFlush()}flushImmediate(){return this._debouncedFlush(),this._debouncedFlush.flush()}cancelFlush(){this._debouncedFlush.cancel()}getSessionId(t){var n,r;if(!(t&&((n=this.session)==null?void 0:n.sampled)===!1))return(r=this.session)==null?void 0:r.id}checkAndHandleExpiredSession(){if(this._lastActivity&&Q2(this._lastActivity,this.timeouts.sessionIdlePause)&&this.session&&this.session.sampled==="session"){this.pause();return}return!!this._checkSession()}setInitialState(){const t=`${wn.location.pathname}${wn.location.hash}${wn.location.search}`,n=`${wn.location.origin}${t}`;this.performanceEntries=[],this.replayPerformanceEntries=[],this._clearContext(),this._context.initialUrl=n,this._context.initialTimestamp=Date.now(),this._context.urls.push(n)}throttledAddEvent(t,n){const r=this._throttledAddEvent(t,n);if(r===q$){const o=ns({category:"replay.throttled"});this.addUpdate(()=>!I4(this,{type:dU,timestamp:o.timestamp||0,data:{tag:"breadcrumb",payload:o,metric:!0}}))}return r}getCurrentRoute(){const t=this.lastActiveSpan||sr(),n=t&&nr(t),o=(n&&Yt(n).data||{})[Nr];if(!(!n||!o||!["route","custom"].includes(o)))return Yt(n).description}_initializeRecording(){this.setInitialState(),this._updateSessionActivity(),this.eventBuffer=JU({useCompression:this._options.useCompression,workerUrl:this._options.workerUrl}),this._removeListeners(),this._addListeners(),this._isEnabled=!0,this._isPaused=!1,this.startRecording()}_initializeSessionForSampling(t){const n=this._options.errorSampleRate>0,r=lv({sessionIdleExpire:this.timeouts.sessionIdleExpire,maxReplayDuration:this._options.maxReplayDuration,previousSessionId:t},{stickySession:this._options.stickySession,sessionSampleRate:this._options.sessionSampleRate,allowBuffering:n});this.session=r}_checkSession(){if(!this.session)return!1;const t=this.session;return N$(t,{sessionIdleExpire:this.timeouts.sessionIdleExpire,maxReplayDuration:this._options.maxReplayDuration})?(this._refreshSession(t),!1):!0}async _refreshSession(t){this._isEnabled&&(await this.stop({reason:"refresh session"}),this.initializeSampling(t.id))}_addListeners(){try{wn.document.addEventListener("visibilitychange",this._handleVisibilityChange),wn.addEventListener("blur",this._handleWindowBlur),wn.addEventListener("focus",this._handleWindowFocus),wn.addEventListener("keydown",this._handleKeyboardEvent),this.clickDetector&&this.clickDetector.addListeners(),this._hasInitializedCoreListeners||(JW(this),this._hasInitializedCoreListeners=!0)}catch(t){this.handleException(t)}this._performanceCleanupCallback=UU(this)}_removeListeners(){try{wn.document.removeEventListener("visibilitychange",this._handleVisibilityChange),wn.removeEventListener("blur",this._handleWindowBlur),wn.removeEventListener("focus",this._handleWindowFocus),wn.removeEventListener("keydown",this._handleKeyboardEvent),this.clickDetector&&this.clickDetector.removeListeners(),this._performanceCleanupCallback&&this._performanceCleanupCallback()}catch(t){this.handleException(t)}}_doChangeToBackgroundTasks(t){!this.session||P$(this.session,{maxReplayDuration:this._options.maxReplayDuration,sessionIdleExpire:this.timeouts.sessionIdleExpire})||(t&&this._createCustomBreadcrumb(t),this.conditionalFlush())}_doChangeToForegroundTasks(t){if(!this.session)return;if(!this.checkAndHandleExpiredSession()){Nt&&Lt.log("Document has become active, but session has expired");return}t&&this._createCustomBreadcrumb(t)}_updateUserActivity(t=Date.now()){this._lastActivity=t}_updateSessionActivity(t=Date.now()){this.session&&(this.session.lastActivity=t,this._maybeSaveSession())}_createCustomBreadcrumb(t){this.addUpdate(()=>{this.throttledAddEvent({type:Wt.Custom,timestamp:t.timestamp||0,data:{tag:"breadcrumb",payload:t}})})}_addPerformanceEntries(){let t=NU(this.performanceEntries).concat(this.replayPerformanceEntries);if(this.performanceEntries=[],this.replayPerformanceEntries=[],this._requiresManualStart){const n=this._context.initialTimestamp/1e3;t=t.filter(r=>r.start>=n)}return Promise.all(j0(this,t))}_clearContext(){this._context.errorIds.clear(),this._context.traceIds.clear(),this._context.urls=[]}_updateInitialTimestampFromEventBuffer(){const{session:t,eventBuffer:n}=this;if(!t||!n||this._requiresManualStart||t.segmentId)return;const r=n.getEarliestTimestamp();r&&rthis._options.maxReplayDuration+3e4)throw new Error("Session is too long, not sending replay");const o=this._popEventContext(),s=this.session.segmentId++;this._maybeSaveSession();const a=await this.eventBuffer.finish();await W$({replayId:t,recordingData:a,segmentId:s,eventContext:o,session:this.session,timestamp:r,onError:i=>this.handleException(i)})}catch(r){this.handleException(r),this.stop({reason:"sendReplay"});const o=Jt();if(o){const s=r instanceof M4?"ratelimit_backoff":"send_error";o.recordDroppedEvent(s,"replay")}}}async _flush({force:t=!1}={}){if(!this._isEnabled&&!t)return;if(!this.checkAndHandleExpiredSession()){Nt&&Lt.error("Attempting to finish replay event after session expired.");return}if(!this.session)return;const n=this.session.started,o=Date.now()-n;this._debouncedFlush.cancel();const s=othis._options.maxReplayDuration+5e3;if(s||a){Nt&&Lt.log(`Session duration (${Math.floor(o/1e3)}s) is too ${s?"short":"long"}, not sending replay.`),s&&this._debouncedFlush();return}const i=this.eventBuffer;i&&this.session.segmentId===0&&!i.hasCheckout&&Nt&&Lt.log("Flushing initial segment without checkout.");const l=!!this._flushLock;this._flushLock||(this._flushLock=this._runFlush());try{await this._flushLock}catch(u){this.handleException(u)}finally{this._flushLock=void 0,l&&this._debouncedFlush()}}_maybeSaveSession(){this.session&&this._options.stickySession&&x4(this.session)}_onMutationHandler(t){const{ignoreMutations:n}=this._options._experiments;if(n!=null&&n.length&&t.some(i=>{const l=sq(i.target),u=n.join(",");return l==null?void 0:l.matches(u)}))return!1;const r=t.length,o=this._options.mutationLimit,s=this._options.mutationBreadcrumbLimit,a=o&&r>o;if(r>s||a){const i=ns({category:"replay.mutations",data:{count:r,limit:a}});this._createCustomBreadcrumb(i)}return a?(this.stop({reason:"mutationLimit",forceFlush:this.recordingMode==="session"}),!1):!0}}function mc(e,t){return[...e,...t].join(",")}function pq({mask:e,unmask:t,block:n,unblock:r,ignore:o}){const s=["base","iframe[srcdoc]:not([src])"],a=mc(e,[".sentry-mask","[data-sentry-mask]"]),i=mc(t,[]);return{maskTextSelector:a,unmaskTextSelector:i,blockSelector:mc(n,[".sentry-block","[data-sentry-block]",...s]),unblockSelector:mc(r,[]),ignoreSelector:mc(o,[".sentry-ignore","[data-sentry-ignore]",'input[type="file"]'])}}function hq({el:e,key:t,maskAttributes:n,maskAllText:r,privacyOptions:o,value:s}){return!r||o.unmaskTextSelector&&e.matches(o.unmaskTextSelector)?s:n.includes(t)||t==="value"&&e.tagName==="INPUT"&&["submit","button"].includes(e.getAttribute("type")||"")?s.replace(/[\S]/g,"*"):s}const Dw='img,image,svg,video,object,picture,embed,map,audio,link[rel="icon"],link[rel="apple-touch-icon"]',mq=["content-length","content-type","accept"];let zw=!1;const vq=e=>new gq(e);class gq{constructor({flushMinDelay:t=VV,flushMaxDelay:n=jV,minReplayDuration:r=YV,maxReplayDuration:o=gw,stickySession:s=!0,useCompression:a=!0,workerUrl:i,_experiments:l={},maskAllText:u=!0,maskAllInputs:c=!0,blockAllMedia:d=!0,mutationBreadcrumbLimit:f=750,mutationLimit:p=1e4,slowClickTimeout:m=7e3,slowClickIgnoreSelectors:v=[],networkDetailAllowUrls:g=[],networkDetailDenyUrls:b=[],networkCaptureBodies:_=!0,networkRequestHeaders:y=[],networkResponseHeaders:S=[],mask:w=[],maskAttributes:E=["title","placeholder","aria-label"],unmask:T=[],block:C=[],unblock:$=[],ignore:x=[],maskFn:N,beforeAddRecordingEvent:I,beforeErrorSampling:L,onError:F}={}){this.name="Replay";const B=pq({mask:w,unmask:T,block:C,unblock:$,ignore:x});if(this._recordingOptions={maskAllInputs:c,maskAllText:u,maskInputOptions:{password:!0},maskTextFn:N,maskInputFn:N,maskAttributeFn:(U,P,O)=>hq({maskAttributes:E,maskAllText:u,privacyOptions:B,key:U,value:P,el:O}),...B,slimDOMOptions:"all",inlineStylesheet:!0,inlineImages:!1,collectFonts:!0,errorHandler:U=>{try{U.__rrweb__=!0}catch{}},recordCrossOriginIframes:!!l.recordCrossOriginIframes},this._initialOptions={flushMinDelay:t,flushMaxDelay:n,minReplayDuration:Math.min(r,XV),maxReplayDuration:Math.min(o,gw),stickySession:s,useCompression:a,workerUrl:i,blockAllMedia:d,maskAllInputs:c,maskAllText:u,mutationBreadcrumbLimit:f,mutationLimit:p,slowClickTimeout:m,slowClickIgnoreSelectors:v,networkDetailAllowUrls:g,networkDetailDenyUrls:b,networkCaptureBodies:_,networkRequestHeaders:Fw(y),networkResponseHeaders:Fw(S),beforeAddRecordingEvent:I,beforeErrorSampling:L,onError:F,_experiments:l},this._initialOptions.blockAllMedia&&(this._recordingOptions.blockSelector=this._recordingOptions.blockSelector?`${this._recordingOptions.blockSelector},${Dw}`:Dw),this._isInitialized&&uw())throw new Error("Multiple Sentry Session Replay instances are not supported");this._isInitialized=!0}get _isInitialized(){return zw}set _isInitialized(t){zw=t}afterAllSetup(t){!uw()||this._replay||(this._setup(t),this._initialize(t))}start(){this._replay&&this._replay.start()}startBuffering(){this._replay&&this._replay.startBuffering()}stop(){return this._replay?this._replay.stop({forceFlush:this._replay.recordingMode==="session"}):Promise.resolve()}flush(t){return this._replay?this._replay.isEnabled()?this._replay.sendBufferedReplayOrFlush(t):(this._replay.start(),Promise.resolve()):Promise.resolve()}getReplayId(t){var n;if((n=this._replay)!=null&&n.isEnabled())return this._replay.getSessionId(t)}getRecordingMode(){var t;if((t=this._replay)!=null&&t.isEnabled())return this._replay.recordingMode}_initialize(t){this._replay&&(this._maybeLoadFromReplayCanvasIntegration(t),this._replay.initializeSampling())}_setup(t){const n=_q(this._initialOptions,t);this._replay=new fq({options:n,recordingOptions:this._recordingOptions})}_maybeLoadFromReplayCanvasIntegration(t){try{const n=t.getIntegrationByName("ReplayCanvas");if(!n)return;this._replay._canvas=n.getOptions()}catch{}}}function _q(e,t){const n=t.getOptions(),r={sessionSampleRate:0,errorSampleRate:0,...e},o=Xi(n.replaysSessionSampleRate),s=Xi(n.replaysOnErrorSampleRate);return o==null&&s==null&&la(()=>{console.warn("Replay is disabled because neither `replaysSessionSampleRate` nor `replaysOnErrorSampleRate` are set.")}),o!=null&&(r.sessionSampleRate=o),s!=null&&(r.errorSampleRate=s),r}function Fw(e){return[...mq,...e.map(t=>t.toLowerCase())]}const Hw=new WeakMap,uv=new Map,K$={traceFetch:!0,traceXHR:!0,enableHTTPTimings:!0,trackFetchStreamPerformance:!1};function yq(e,t){const{traceFetch:n,traceXHR:r,trackFetchStreamPerformance:o,shouldCreateSpanForRequest:s,enableHTTPTimings:a,tracePropagationTargets:i,onRequestSpanStart:l}={...K$,...t},u=typeof s=="function"?s:p=>!0,c=p=>wq(p,i),d={},f=e.getOptions().propagateTraceparent;n&&(e.addEventProcessor(p=>(p.type==="transaction"&&p.spans&&p.spans.forEach(m=>{if(m.op==="http.client"){const v=uv.get(m.span_id);v&&(m.timestamp=v/1e3,uv.delete(m.span_id))}}),p)),o&&tF(p=>{if(p.response){const m=Hw.get(p.response);m&&p.endTimestamp&&uv.set(m,p.endTimestamp)}}),OT(p=>{const m=qz(p,u,c,d,{propagateTraceparent:f});if(p.response&&p.fetchData.__span&&Hw.set(p.response,p.fetchData.__span),m){const v=G$(p.fetchData.url),g=v?Hi(v).host:void 0;m.setAttributes({"http.url":v,"server.address":g}),a&&Vw(m),l==null||l(m,{headers:p.headers})}})),r&&QT(p=>{var v;const m=Sq(p,u,c,d,f);if(m){a&&Vw(m);let g;try{g=new Headers((v=p.xhr.__sentry_xhr_v3__)==null?void 0:v.request_headers)}catch{}l==null||l(m,{headers:g})}})}function bq(e){return e.entryType==="resource"&&"initiatorType"in e&&typeof e.nextHopProtocol=="string"&&(e.initiatorType==="fetch"||e.initiatorType==="xmlhttprequest")}function Vw(e){const{url:t}=Yt(e).data;if(!t||typeof t!="string")return;const n=Ji("resource",({entries:r})=>{r.forEach(o=>{bq(o)&&o.name.endsWith(t)&&(e.setAttributes(YT(o)),setTimeout(n))})})}function wq(e,t){const n=Uu();if(n){let r,o;try{r=new URL(e,n),o=new URL(n).origin}catch{return!1}const s=r.origin===o;return t?Fs(r.toString(),t)||s&&Fs(r.pathname,t):s}else{const r=!!e.match(/^\/(?!\/)/);return t?Fs(e,t):r}}function Sq(e,t,n,r,o){const s=e.xhr,a=s==null?void 0:s[Ti];if(!s||s.__sentry_own_request__||!a)return;const{url:i,method:l}=a,u=ho()&&t(i);if(e.endTimestamp&&u){const g=s.__sentry_xhr_span_id__;if(!g)return;const b=r[g];b&&a.status_code!==void 0&&(Hk(b,a.status_code),b.end(),delete r[g]);return}const c=G$(i),d=Hi(c||i),f=hz(i),p=!!sr(),m=u&&p?ti({name:`${l} ${f}`,attributes:{url:i,type:"xhr","http.method":l,"http.url":c,"server.address":d==null?void 0:d.host,[In]:"auto.http.browser",[Js]:"http.client",...(d==null?void 0:d.search)&&{"http.query":d==null?void 0:d.search},...(d==null?void 0:d.hash)&&{"http.fragment":d==null?void 0:d.hash}}}):new ei;s.__sentry_xhr_span_id__=m.spanContext().spanId,r[s.__sentry_xhr_span_id__]=m,n(i)&&Eq(s,ho()&&p?m:void 0,o);const v=Jt();return v&&v.emit("beforeOutgoingRequestSpan",m,e),m}function Eq(e,t,n){const{"sentry-trace":r,baggage:o,traceparent:s}=$T({span:t,propagateTraceparent:n});r&&Cq(e,r,o,s)}function Cq(e,t,n,r){var s;const o=(s=e.__sentry_xhr_v3__)==null?void 0:s.request_headers;if(!(o!=null&&o["sentry-trace"]||!e.setRequestHeader))try{if(e.setRequestHeader("sentry-trace",t),r&&!(o!=null&&o.traceparent)&&e.setRequestHeader("traceparent",r),n){const a=o==null?void 0:o.baggage;(!a||!kq(a))&&e.setRequestHeader("baggage",n)}}catch{}}function kq(e){return e.split(",").some(t=>t.trim().startsWith("sentry-"))}function G$(e){try{return new URL(e,tn.location.origin).href}catch{return}}function Tq(){tn.document?tn.document.addEventListener("visibilitychange",()=>{const e=sr();if(!e)return;const t=nr(e);if(tn.document.hidden&&t){const n="cancelled",{op:r,status:o}=Yt(t);_o&&it.log(`[Tracing] Transaction: ${n} -> since tab moved to the background, op: ${r}`),o||t.setStatus({code:Hn,message:n}),t.setAttribute("sentry.cancellation_reason","document.hidden"),t.end()}}):_o&&it.warn("[Tracing] Could not set up background tab detection due to lack of global document")}const $q=3600,Y$="sentry_previous_trace",xq="sentry.previous_trace";function Iq(e,{linkPreviousTrace:t,consistentTraceSampling:n}){const r=t==="session-storage";let o=r?Oq():void 0;e.on("spanStart",a=>{if(nr(a)!==a)return;const i=ln().getPropagationContext();o=Aq(o,a,i),r&&Mq(o)});let s=!0;n&&e.on("beforeSampling",a=>{if(!o)return;const i=ln(),l=i.getPropagationContext();if(s&&l.parentSpanId){s=!1;return}i.setPropagationContext({...l,dsc:{...l.dsc,sample_rate:String(o.sampleRate),sampled:String(t1(o.spanContext))},sampleRand:o.sampleRand}),a.parentSampled=t1(o.spanContext),a.parentSampleRate=o.sampleRate,a.spanAttributes={...a.spanAttributes,[zk]:o.sampleRate}})}function Aq(e,t,n){const r=Yt(t);function o(){var i,l;try{return Number((i=n.dsc)==null?void 0:i.sample_rate)??Number((l=r.data)==null?void 0:l[Ky])}catch{return 0}}const s={spanContext:t.spanContext(),startTimestamp:r.start_timestamp,sampleRate:o(),sampleRand:n.sampleRand};if(!e)return s;const a=e.spanContext;return a.traceId===r.trace_id?e:(Date.now()/1e3-e.startTimestamp<=$q&&(_o&&it.log(`Adding previous_trace ${a} link to span ${{op:r.op,...t.spanContext()}}`),t.addLink({context:a,attributes:{[sB]:"previous_trace"}}),t.setAttribute(xq,`${a.traceId}-${a.spanId}-${t1(a)?1:0}`)),s)}function Mq(e){try{tn.sessionStorage.setItem(Y$,JSON.stringify(e))}catch(t){_o&&it.warn("Could not store previous trace in sessionStorage",t)}}function Oq(){var e;try{const t=(e=tn.sessionStorage)==null?void 0:e.getItem(Y$);return JSON.parse(t)}catch{return}}function t1(e){return e.traceFlags===1}const Rq="BrowserTracing",Pq={...fp,instrumentNavigation:!0,instrumentPageLoad:!0,markBackgroundSpan:!0,enableLongTask:!0,enableLongAnimationFrame:!0,enableInp:!0,enableElementTiming:!0,ignoreResourceSpans:[],ignorePerformanceApiSpans:[],detectRedirects:!0,linkPreviousTrace:"in-memory",consistentTraceSampling:!1,enableReportPageLoaded:!1,_experiments:{},...K$},jw=(e={})=>{const t={name:void 0,source:void 0},n=tn.document,{enableInp:r,enableElementTiming:o,enableLongTask:s,enableLongAnimationFrame:a,_experiments:{enableInteractions:i,enableStandaloneClsSpans:l,enableStandaloneLcpSpans:u},beforeStartSpan:c,idleTimeout:d,finalTimeout:f,childSpanTimeout:p,markBackgroundSpan:m,traceFetch:v,traceXHR:g,trackFetchStreamPerformance:b,shouldCreateSpanForRequest:_,enableHTTPTimings:y,ignoreResourceSpans:S,ignorePerformanceApiSpans:w,instrumentPageLoad:E,instrumentNavigation:T,detectRedirects:C,linkPreviousTrace:$,consistentTraceSampling:x,enableReportPageLoaded:N,onRequestSpanStart:I}={...Pq,...e};let L,F,B;function U(P,O,H=!0){const q=O.op==="pageload",te=O.name,V=c?c(O):O,Q=V.attributes||{};if(te!==V.name&&(Q[Nr]="custom",V.attributes=Q),!H){const ke=il();ti({...V,startTime:ke}).end(ke);return}t.name=V.name,t.source=Q[Nr];const ge=lT(V,{idleTimeout:d,finalTimeout:f,childSpanTimeout:p,disableAutoFinish:q,beforeSpanEnd:ke=>{L==null||L(),dH(ke,{recordClsOnPageloadSpan:!l,recordLcpOnPageloadSpan:!u,ignoreResourceSpans:S,ignorePerformanceApiSpans:w}),Ww(P,void 0);const Y=ln(),K=Y.getPropagationContext();Y.setPropagationContext({...K,traceId:ge.spanContext().traceId,sampled:ui(ge),dsc:Qs(ke)}),q&&(B=void 0)},trimIdleSpanEndTimestamp:!N});q&&N&&(B=ge),Ww(P,ge);function ie(){n&&["interactive","complete"].includes(n.readyState)&&P.emit("idleSpanEnableAutoFinish",ge)}q&&!N&&n&&(n.addEventListener("readystatechange",()=>{ie()}),ie())}return{name:Rq,setup(P){if(PB(),L=oH({recordClsStandaloneSpans:l||!1,recordLcpStandaloneSpans:u||!1,client:P}),r&&LH(),o&&EH(),a&&Xt.PerformanceObserver&&PerformanceObserver.supportedEntryTypes&&PerformanceObserver.supportedEntryTypes.includes("long-animation-frame")?aH():s&&sH(),i&&iH(),C&&n){const H=()=>{F=Pn()};addEventListener("click",H,{capture:!0}),addEventListener("keydown",H,{capture:!0,passive:!0})}function O(){const H=bd(P);H&&!Yt(H).timestamp&&(_o&&it.log(`[Tracing] Finishing current active span with op: ${Yt(H).op}`),H.setAttribute(pd,"cancelled"),H.end())}P.on("startNavigationSpan",(H,q)=>{if(Jt()!==P)return;if(q!=null&&q.isRedirect){_o&&it.warn("[Tracing] Detected redirect, navigation span will not be the root span, but a child span."),U(P,{op:"navigation.redirect",...H},!1);return}F=void 0,O(),ms().setPropagationContext({traceId:Xs(),sampleRand:Math.random(),propagationSpanId:ho()?void 0:Hs()});const te=ln();te.setPropagationContext({traceId:Xs(),sampleRand:Math.random(),propagationSpanId:ho()?void 0:Hs()}),te.setSDKProcessingMetadata({normalizedRequest:void 0}),U(P,{op:"navigation",...H,parentSpan:null,forceTransaction:!0})}),P.on("startPageLoadSpan",(H,q={})=>{if(Jt()!==P)return;O();const te=q.sentryTrace||Uw("sentry-trace"),V=q.baggage||Uw("baggage"),Q=kB(te,V),ge=ln();ge.setPropagationContext(Q),ho()||(ge.getPropagationContext().propagationSpanId=Hs()),ge.setSDKProcessingMetadata({normalizedRequest:o4()}),U(P,{op:"pageload",...H})}),P.on("endPageloadSpan",()=>{N&&B&&(B.setAttribute(pd,"reportPageLoaded"),B.end())})},afterAllSetup(P){let O=Uu();if($!=="off"&&Iq(P,{linkPreviousTrace:$,consistentTraceSampling:x}),tn.location){if(E){const H=Vr();Nq(P,{name:tn.location.pathname,startTime:H?H/1e3:void 0,attributes:{[Nr]:"url",[In]:"auto.pageload.browser"}})}T&&z0(({to:H,from:q})=>{if(q===void 0&&(O==null?void 0:O.indexOf(H))!==-1){O=void 0;return}O=void 0;const te=r4(H),V=bd(P),Q=V&&C&&Bq(V,F);X$(P,{name:(te==null?void 0:te.pathname)||tn.location.pathname,attributes:{[Nr]:"url",[In]:"auto.navigation.browser"}},{url:H,isRedirect:Q})})}m&&Tq(),i&&Lq(P,d,f,p,t),r&&zH(),yq(P,{traceFetch:v,traceXHR:g,trackFetchStreamPerformance:b,tracePropagationTargets:P.getOptions().tracePropagationTargets,shouldCreateSpanForRequest:_,enableHTTPTimings:y,onRequestSpanStart:I})}}};function Nq(e,t,n){e.emit("startPageLoadSpan",t,n),ln().setTransactionName(t.name);const r=bd(e);return r&&e.emit("afterStartPageLoadSpan",r),r}function X$(e,t,n){const{url:r,isRedirect:o}=n||{};e.emit("beforeStartNavigationSpan",t,{isRedirect:o}),e.emit("startNavigationSpan",t,{isRedirect:o});const s=ln();return s.setTransactionName(t.name),r&&!o&&s.setSDKProcessingMetadata({normalizedRequest:{...o4(),url:r}}),bd(e)}function Uw(e){const t=tn.document,n=t==null?void 0:t.querySelector(`meta[name=${e}]`);return(n==null?void 0:n.getAttribute("content"))||void 0}function Lq(e,t,n,r,o){const s=tn.document;let a;const i=()=>{const l="ui.action.click",u=bd(e);if(u){const c=Yt(u).op;if(["navigation","pageload"].includes(c)){_o&&it.warn(`[Tracing] Did not create ${l} span because a pageload or navigation span is in progress.`);return}}if(a&&(a.setAttribute(pd,"interactionInterrupted"),a.end(),a=void 0),!o.name){_o&&it.warn(`[Tracing] Did not create ${l} transaction because _latestRouteName is missing.`);return}a=lT({name:o.name,op:l,attributes:{[Nr]:o.source||"url"}},{idleTimeout:t,finalTimeout:n,childSpanTimeout:r})};s&&addEventListener("click",i,{capture:!0})}const J$="_sentry_idleSpan";function bd(e){return e[J$]}function Ww(e,t){ro(e,J$,t)}const qw=1.5;function Bq(e,t){const n=Yt(e),r=il(),o=n.start_timestamp;return!(r-o>qw||t&&r-t<=qw)}const Q$=["activate","mount"],Z$=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,Dq=/(?:^|[-_])(\w)/g,zq=e=>e.replace(Dq,t=>t.toUpperCase()).replace(/[-_]/g,""),Fq="",cv="",Hq=(e,t)=>e.repeat(t),qc=(e,t)=>{if(!e)return cv;if(e.$root===e)return Fq;if(!e.$options)return cv;const n=e.$options;let r=n.name||n._componentTag||n.__name;const o=n.__file;if(!r&&o){const s=o.match(/([^/\\]+)\.vue$/);s&&(r=s[1])}return(r?`<${zq(r)}>`:cv)+(o&&t!==!1?` at ${o}`:"")},Vq=e=>{if(e&&(e._isVue||e.__isVue)&&e.$parent){const t=[];let n=0;for(;e;){if(t.length>0){const o=t[t.length-1];if(o.constructor===e.constructor){n++,e=e.$parent;continue}else n>0&&(t[t.length-1]=[o,n],n=0)}t.push(e),e=e.$parent}return` + +found in + +${t.map((o,s)=>`${(s===0?"---> ":Hq(" ",5+s*2))+(Array.isArray(o)?`${qc(o[0])}... (${o[1]} recursive calls)`:qc(o))}`).join(` +`)}`}return` + +(found in ${qc(e)})`},jq=(e,t)=>{const{errorHandler:n}=e.config;e.config.errorHandler=(r,o,s)=>{var u;const a=qc(o,!1),i=o?Vq(o):"",l={componentName:a,lifecycleHook:s,trace:i};if(t.attachProps&&o&&((u=o.$options)!=null&&u.propsData?l.propsData=o.$options.propsData:o.$props&&(l.propsData=o.$props)),setTimeout(()=>{L0(r,{captureContext:{contexts:{vue:l}},mechanism:{handled:!!n,type:"auto.function.vue.error_handler"}})}),typeof n=="function"&&e.config.errorHandler)n.call(e,r,o,s);else throw r}},Kw="ui.vue",Uq={activate:["activated","deactivated"],create:["beforeCreate","created"],unmount:["beforeUnmount","unmounted"],destroy:["beforeDestroy","destroyed"],mount:["beforeMount","mounted"],update:["beforeUpdate","updated"]};function dv(e,t,n){e.$_sentryRootComponentSpanTimer&&clearTimeout(e.$_sentryRootComponentSpanTimer),e.$_sentryRootComponentSpanTimer=setTimeout(()=>{var r;(r=e.$root)!=null&&r.$_sentryRootComponentSpan&&(e.$root.$_sentryRootComponentSpan.end(t),e.$root.$_sentryRootComponentSpan=void 0)},n)}function Wq(e,t){function n(o){return o.replace(/^<([^\s]*)>(?: at [^\s]*)?$/,"$1")}return e.some(o=>n(t)===n(o))}const qq=(e={})=>{const t=(e.hooks||[]).concat(Q$).filter((o,s,a)=>a.indexOf(o)===s),n={},r=e.timeout||2e3;for(const o of t){const s=Uq[o];if(!s){Z$&&it.warn(`Unknown hook: ${o}`);continue}for(const a of s)n[a]=function(){var f;const i=this.$root===this;i&&(this.$_sentryRootComponentSpan=this.$_sentryRootComponentSpan||ti({name:"Application Render",op:`${Kw}.render`,attributes:{[In]:"auto.ui.vue"},onlyIfParent:!0}),dv(this,Pn(),r));const l=qc(this,!1);if(!(i||(Array.isArray(e.trackComponents)?Wq(e.trackComponents,l):e.trackComponents))){dv(this,Pn(),r);return}this.$_sentryComponentSpans=this.$_sentryComponentSpans||{};const c=a===s[0],d=((f=this.$root)==null?void 0:f.$_sentryRootComponentSpan)||sr();if(c){if(d){const p=this.$_sentryComponentSpans[o];p&&p.end(),this.$_sentryComponentSpans[o]=ti({name:`Vue ${l}`,op:`${Kw}.${o}`,attributes:{[In]:"auto.ui.vue"},onlyIfParent:!0})}}else{const p=this.$_sentryComponentSpans[o];if(!p)return;p.end(),dv(this,Pn(),r)}}}return n},Kq=Xt,Gq={Vue:Kq.Vue,attachProps:!0,attachErrorHandler:!0,tracingOptions:{hooks:Q$,timeout:2e3,trackComponents:!1}},Yq="Vue",Xq=(e={})=>({name:Yq,setup(t){const n={...Gq,...t.getOptions(),...e};if(!n.Vue&&!n.app){la(()=>{console.warn("[@sentry/vue]: Misconfigured SDK. Vue specific errors will not be captured. Update your `Sentry.init` call with an appropriate config option: `app` (Application Instance - Vue 3) or `Vue` (Vue Constructor - Vue 2).")});return}n.app?(Array.isArray(n.app)?n.app:[n.app]).forEach(o=>Gw(o,n)):n.Vue&&Gw(n.Vue,n)}}),Gw=(e,t)=>{var n;Z$&&((n=e._instance)==null?void 0:n.isMounted)===!0&&la(()=>{console.warn("[@sentry/vue]: Misconfigured SDK. Vue app is already mounted. Make sure to call `app.mount()` after `Sentry.init()`.")}),t.attachErrorHandler&&jq(e,t),ho(t)&&e.mixin(qq(t.tracingOptions))};function Jq(e={}){const t={defaultIntegrations:[...o$(),Xq()],...e};return TT(t,"vue"),DV(t)}function Qq(e,t,n){let r=!1;e.onError(o=>L0(o,{mechanism:{handled:!1}})),e.beforeEach((o,s,a)=>{const i=r?void 0:Zq(),l={};for(const d of Object.keys(o.params))l[`url.path.parameter.${d}`]=o.params[d],l[`params.${d}`]=o.params[d];for(const d of Object.keys(o.query)){const f=o.query[d];f&&(l[`query.${d}`]=f)}let u=o.path,c="url";if(o.name&&t.routeLabel!=="path")u=o.name.toString(),c="custom";else if(o.matched.length>0){const d=o.matched.length-1;u=o.matched[d].path,c="route"}ln().setTransactionName(u),t.instrumentPageLoad&&i&&(Yt(i).data[Nr]!=="custom"&&(i.updateName(u),i.setAttribute(Nr,c)),i.setAttributes({...l,[In]:"auto.pageload.vue"}),r=!0),t.instrumentNavigation&&!i&&n({name:u,op:"navigation",attributes:{...l,[In]:"auto.navigation.vue",[Nr]:c}}),a&&a()})}function Zq(){const e=sr(),t=e&&nr(e);return t&&Yt(t).op==="pageload"?t:void 0}function eK(e={}){if(!e.router)return jw(e);const t=jw({...e,instrumentNavigation:!1}),{router:n,instrumentNavigation:r=!0,instrumentPageLoad:o=!0,routeLabel:s="name"}=e;return{...t,afterAllSetup(a){t.afterAllSetup(a),Qq(n,{routeLabel:s,instrumentNavigation:r,instrumentPageLoad:o},l=>{X$(a,l)})}}}(function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(r,o,s){n.o(r,o)||Object.defineProperty(r,o,{enumerable:!0,get:s})},n.r=function(r){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},n.t=function(r,o){if(1&o&&(r=n(r)),8&o||4&o&&typeof r=="object"&&r&&r.__esModule)return r;var s=Object.create(null);if(n.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:r}),2&o&&typeof r!="string")for(var a in r)n.d(s,a,(function(i){return r[i]}).bind(null,a));return s},n.n=function(r){var o=r&&r.__esModule?function(){return r.default}:function(){return r};return n.d(o,"a",o),o},n.o=function(r,o){return Object.prototype.hasOwnProperty.call(r,o)},n.p="",n(n.s=6)})([function(e,t,n){function r(i){for(var l="",u=i.length,c=i.split(".")[1],d=c?c.length:0,f=0;f="0"&&i[f]<="9"?l+=9-parseInt(i[f]):l+=i[f];return a(l,d>0?"0."+new Array(d).join("0")+"1":"1")}function o(i){var l=i.split(".");for(l[0]||(l[0]="0");l[0][0]=="0"&&l[0].length>1;)l[0]=l[0].substring(1);return l[0]+(l[1]?"."+l[1]:"")}function s(i,l){var u=i.split("."),c=l.split("."),d=u[0].length,f=c[0].length;return d>f?c[0]=new Array(Math.abs(d-f)+1).join("0")+(c[0]?c[0]:""):u[0]=new Array(Math.abs(d-f)+1).join("0")+(u[0]?u[0]:""),d=u[1]?u[1].length:0,f=c[1]?c[1].length:0,(d||f)&&(d>f?c[1]=(c[1]?c[1]:"")+new Array(Math.abs(d-f)+1).join("0"):u[1]=(u[1]?u[1]:"")+new Array(Math.abs(d-f)+1).join("0")),[i=u[0]+(u[1]?"."+u[1]:""),l=c[0]+(c[1]?"."+c[1]:"")]}function a(i,l){var u;i=(u=s(i,l))[0],l=u[1];for(var c="",d=0,f=i.length-1;f>=0;f--)if(i[f]!=="."){var p=parseInt(i[f])+parseInt(l[f])+d;c=p%10+c,d=Math.floor(p/10)}else c="."+c;return d?d.toString()+c:c}Object.defineProperty(t,"__esModule",{value:!0}),t.pad=t.trim=t.add=void 0,t.add=function(i,l){var u;l===void 0&&(l="0");var c=0,d=-1;i[0]=="-"&&(c++,d=1,(i=i.substring(1)).length),l[0]=="-"&&(c++,d=2,(l=l.substring(1)).length),i=o(i),l=o(l),i=(u=s(o(i),o(l)))[0],l=u[1],c==1&&(d==1?i=r(i):l=r(l));var f=a(i,l);return c?c==2?"-"+o(f):i.lengthc)return!0;if(a=0;u--){var c=parseInt(a[u])+i;c==10?(i=1,c=0):i=0,l+=c}return i&&(l+=i),l.split("").reverse().join("")}t.roundOff=function a(i,l,u){if(l===void 0&&(l=0),u===void 0&&(u=r.RoundingModes.HALF_EVEN),u===r.RoundingModes.UNNECESSARY)throw new Error("UNNECESSARY Rounding Mode has not yet been implemented");typeof i=="number"&&(i=i.toString());var c=!1;i[0]==="-"&&(c=!0,i=i.substring(1));var d=i.split("."),f=d[0],p=d[1];if(l<0){if(l=-l,f.length<=l)return"0";var m=f.substr(0,f.length-l);return(c?"-":"")+(m=a(i=m+"."+f.substr(f.length-l)+p,0,u))+new Array(l+1).join("0")}if(l==0)return f.length,o(d[1],f,c,u)?(c?"-":"")+s(f):(c?"-":"")+f;if(!d[1])return(c?"-":"")+f+"."+new Array(l+1).join("0");if(d[1].lengthl?s(f,parseInt(p[0]))+"."+p.substring(1):(c?"-":"")+f+"."+p}},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.RoundingModes=void 0,function(r){r[r.CEILING=0]="CEILING",r[r.DOWN=1]="DOWN",r[r.FLOOR=2]="FLOOR",r[r.HALF_DOWN=3]="HALF_DOWN",r[r.HALF_EVEN=4]="HALF_EVEN",r[r.HALF_UP=5]="HALF_UP",r[r.UNNECESSARY=6]="UNNECESSARY",r[r.UP=7]="UP"}(t.RoundingModes||(t.RoundingModes={}))},function(e,t,n){function r(o){for(;o[0]=="0";)o=o.substr(1);if(o.indexOf(".")!=-1)for(;o[o.length-1]=="0";)o=o.substr(0,o.length-1);return o==""||o=="."?o="0":o[o.length-1]=="."&&(o=o.substr(0,o.length-1)),o[0]=="."&&(o="0"+o),o}Object.defineProperty(t,"__esModule",{value:!0}),t.multiply=void 0,t.multiply=function(o,s){o=o.toString(),s=s.toString();var a=0;o[0]=="-"&&(a++,o=o.substr(1)),s[0]=="-"&&(a++,s=s.substr(1)),o=r(o),s=r(s);var i=0,l=0;o.indexOf(".")!=-1&&(i=o.length-o.indexOf(".")-1),s.indexOf(".")!=-1&&(l=s.length-s.indexOf(".")-1);var u=i+l;if(o=r(o.replace(".","")),s=r(s.replace(".","")),o.length=g&&S>=0;S--)v[S]>-1&&v[S]=d.length?new Array(f-d.length+1).join("0")+d:d).substr(0,d.length-f)+"."+d.substr(d.length-f,f))),a==1&&(b="-"+b),b}},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.divide=void 0;var r=n(0),o=n(1);t.divide=function(s,a,i){if(i===void 0&&(i=8),a==0)throw new Error("Cannot divide by 0");if(s=s.toString(),a=a.toString(),s=s.replace(/(\.\d*?[1-9])0+$/g,"$1").replace(/\.0+$/,""),a=a.replace(/(\.\d*?[1-9])0+$/g,"$1").replace(/\.0+$/,""),s==0)return"0";var l=0;a[0]=="-"&&(a=a.substring(1),l++),s[0]=="-"&&(s=s.substring(1),l++);var u=a.indexOf(".")>0?a.length-a.indexOf(".")-1:-1;if(a=r.trim(a.replace(".","")),u>=0){var c=s.indexOf(".")>0?s.length-s.indexOf(".")-1:-1;if(c==-1)s=r.trim(s+new Array(u+1).join("0"));else if(u>c)s=s.replace(".",""),s=r.trim(s+new Array(u-c+1).join("0"));else if(u-1&&s.indexOf(".")-1&&s.indexOf(".")-1){var g=v.length-v.indexOf(".")-1;p>(v=v.replace(".","")).length&&(g+=p-v.length,v+=new Array(p-v.length+1).join("0")),f=g,m="0."+new Array(g).join("0")}for(i+=2;f<=i;){for(var b=0;parseInt(v)>=parseInt(a);)v=r.add(v,"-"+a),b++;m+=b,s?(s[0]=="."&&(m+=".",f++,s=s.substring(1)),v+=s.substring(0,1),s=s.substring(1)):(f||(m+="."),f++,v+="0")}return(l==1?"-":"")+r.trim(o.roundOff(m,i-2))}},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.negate=t.subtract=void 0;var r=n(0);function o(s){return s=s[0]=="-"?s.substr(1):"-"+s}t.subtract=function(s,a){return s=s.toString(),a=o(a=a.toString()),r.add(s,a)},t.negate=o},function(e,t,n){var r=n(0),o=n(1),s=n(3),a=n(4),i=n(7),l=n(8),u=n(5),c=n(2),d=function(){function f(p){p===void 0&&(p="0"),this.value=f.validate(p)}return f.validate=function(p){if(p){if(p=p.toString(),isNaN(p))throw Error("Parameter is not a number: "+p);p[0]=="+"&&(p=p.substring(1))}else p="0";if(/e/i.test(p)){var m=p.split(/[eE]/),v=m[0],g=m[1];v=r.trim(v),g=parseInt(g)+v.indexOf("."),p=(v=v.replace(".","")).length=g&&g>0?r.trim(v.substring(0,g))+(v.length>g?"."+v.substring(g):""):"0."+new Array(1-g).join("0")+v}return p},f.prototype.getValue=function(){return this.value},f.getPrettyValue=function(p,m,v){if(m||v){if(!m||!v)throw Error("Illegal Arguments. Should pass both digits and separator or pass none")}else m=3,v=",";var g=(p=f.validate(p)).charAt(0)=="-";g&&(p=p.substring(1));for(var b=p.indexOf("."),_="",y=b=b>0?b:p.length;y>0;)y=0?v:"")+_;return(g?"-":"")+_+p.substring(b)},f.prototype.getPrettyValue=function(p,m){return f.getPrettyValue(this.value,p,m)},f.round=function(p,m,v){if(m===void 0&&(m=0),v===void 0&&(v=c.RoundingModes.HALF_EVEN),p=f.validate(p),isNaN(m))throw Error("Precision is not a number: "+m);return o.roundOff(p,m,v)},f.prototype.round=function(p,m){if(p===void 0&&(p=0),m===void 0&&(m=c.RoundingModes.HALF_EVEN),isNaN(p))throw Error("Precision is not a number: "+p);return new f(o.roundOff(this.value,p,m))},f.floor=function(p){return(p=f.validate(p)).indexOf(".")===-1?p:f.round(p,0,c.RoundingModes.FLOOR)},f.prototype.floor=function(){return this.value.indexOf(".")===-1?new f(this.value):new f(this.value).round(0,c.RoundingModes.FLOOR)},f.ceil=function(p){return(p=f.validate(p)).indexOf(".")===-1?p:f.round(p,0,c.RoundingModes.CEILING)},f.prototype.ceil=function(){return this.value.indexOf(".")===-1?new f(this.value):new f(this.value).round(0,c.RoundingModes.CEILING)},f.add=function(p,m){return p=f.validate(p),m=f.validate(m),r.add(p,m)},f.prototype.add=function(p){return new f(r.add(this.value,p.getValue()))},f.subtract=function(p,m){return p=f.validate(p),m=f.validate(m),u.subtract(p,m)},f.prototype.subtract=function(p){return new f(u.subtract(this.value,p.getValue()))},f.multiply=function(p,m){return p=f.validate(p),m=f.validate(m),s.multiply(p,m)},f.prototype.multiply=function(p){return new f(s.multiply(this.value,p.getValue()))},f.divide=function(p,m,v){return p=f.validate(p),m=f.validate(m),a.divide(p,m,v)},f.prototype.divide=function(p,m){return new f(a.divide(this.value,p.getValue(),m))},f.modulus=function(p,m){return p=f.validate(p),m=f.validate(m),i.modulus(p,m)},f.prototype.modulus=function(p){return new f(i.modulus(this.value,p.getValue()))},f.compareTo=function(p,m){return p=f.validate(p),m=f.validate(m),l.compareTo(p,m)},f.prototype.compareTo=function(p){return l.compareTo(this.value,p.getValue())},f.negate=function(p){return p=f.validate(p),u.negate(p)},f.prototype.negate=function(){return new f(u.negate(this.value))},f.RoundingModes=c.RoundingModes,f}();e.exports=d},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.modulus=void 0;var r=n(4),o=n(1),s=n(3),a=n(5),i=n(2);function l(u){if(u.indexOf(".")!=-1)throw new Error("Modulus of non-integers not supported")}t.modulus=function(u,c){if(c==0)throw new Error("Cannot divide by 0");u=u.toString(),c=c.toString(),l(u),l(c);var d="";return u[0]=="-"&&(d="-",u=u.substr(1)),c[0]=="-"&&(c=c.substr(1)),d+a.subtract(u,s.multiply(c,o.roundOff(r.divide(u,c),0,i.RoundingModes.FLOOR)))}},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.compareTo=void 0;var r=n(0);t.compareTo=function(o,s){var a,i=!1;if(o[0]=="-"&&s[0]!="-")return-1;if(o[0]!="-"&&s[0]=="-")return 1;if(o[0]=="-"&&s[0]=="-"&&(o=o.substr(1),s=s.substr(1),i=!0),o=(a=r.pad(o,s))[0],s=a[1],o.localeCompare(s)==0)return 0;for(var l=0;ls[l]?i?-1:1:i?1:-1;return 0}}]);function NQe(e,t){if(arguments.length===0||!e)return null;const n=t||"{y}-{m}-{d} {h}:{i}:{s}";let r;typeof e=="object"?r=e:(typeof e=="string"&&/^[0-9]+$/.test(e)?e=parseInt(e):typeof e=="string"&&(e=e.replace(new RegExp(/-/gm),"/").replace("T"," ").replace(new RegExp(/\.[\d]{3}/gm),"")),typeof e=="number"&&e.toString().length===10&&(e=e*1e3),r=new Date(e));const o={y:r.getFullYear(),m:r.getMonth()+1,d:r.getDate(),h:r.getHours(),i:r.getMinutes(),s:r.getSeconds(),a:r.getDay()};return n.replace(/{(y|m|d|h|i|s|a)+}/g,(a,i)=>{let l=o[i];return i==="a"?["日","一","二","三","四","五","六"][l]:(a.length>0&&l<10&&(l="0"+l),l||0)})}function tK(e){let t="";for(const o of Object.keys(e)){const s=e[o];var n=encodeURIComponent(o)+"=";if(s!==null&&s!==""&&typeof s<"u")if(typeof s=="object"){for(const a of Object.keys(s))if(s[a]!==null&&s[a]!==""&&typeof s[a]<"u"){let i=o+"["+a+"]";var r=encodeURIComponent(i)+"=";t+=r+encodeURIComponent(s[a])+"&"}}else t+=n+encodeURIComponent(s)+"&"}return t}function Yw(e){if(e.length===0||!e||e=="undefined")return e;let t=e.replace("//","/");return t[t.length-1]==="/"?t.slice(0,t.length-1):t}function Xw(e){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){const n=[];for(let r=0;r{const s=Date.now();s-r>t?(e.apply(this,o),r=s):(clearTimeout(n),n=setTimeout(()=>{e.apply(this,o),r=Date.now()},t))}}var ex=typeof global=="object"&&global&&global.Object===Object&&global,nK=typeof self=="object"&&self&&self.Object===Object&&self,Wo=ex||nK||Function("return this")(),yo=Wo.Symbol,tx=Object.prototype,rK=tx.hasOwnProperty,oK=tx.toString,vc=yo?yo.toStringTag:void 0;function sK(e){var t=rK.call(e,vc),n=e[vc];try{e[vc]=void 0;var r=!0}catch{}var o=oK.call(e);return r&&(t?e[vc]=n:delete e[vc]),o}var aK=Object.prototype,iK=aK.toString;function lK(e){return iK.call(e)}var uK="[object Null]",cK="[object Undefined]",Jw=yo?yo.toStringTag:void 0;function Xu(e){return e==null?e===void 0?cK:uK:Jw&&Jw in Object(e)?sK(e):lK(e)}function Zs(e){return e!=null&&typeof e=="object"}var dK="[object Symbol]";function W0(e){return typeof e=="symbol"||Zs(e)&&Xu(e)==dK}function nx(e,t){for(var n=-1,r=e==null?0:e.length,o=Array(r);++n0){if(++t>=FK)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function UK(e){return function(){return e}}var qh=function(){try{var e=ul(Object,"defineProperty");return e({},"",{}),e}catch{}}(),WK=qh?function(e,t){return qh(e,"toString",{configurable:!0,enumerable:!1,value:UK(t),writable:!0})}:O4,sx=jK(WK);function qK(e,t){for(var n=-1,r=e==null?0:e.length;++n-1}var QK=9007199254740991,ZK=/^(?:0|[1-9]\d*)$/;function R4(e,t){var n=typeof e;return t=t??QK,!!t&&(n=="number"||n!="symbol"&&ZK.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=rG}function sf(e){return e!=null&&L4(e.length)&&!ox(e)}var oG=Object.prototype;function B4(e){var t=e&&e.constructor,n=typeof t=="function"&&t.prototype||oG;return e===n}function sG(e,t){for(var n=-1,r=Array(e);++n-1}function pY(e,t){var n=this.__data__,r=K0(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function ua(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t0&&n(i)?t>1?uf(i,t-1,n,r,o):j4(o,i):r||(o[o.length]=i)}return o}function hx(e){var t=e==null?0:e.length;return t?uf(e,1):[]}function xY(e){return sx(ix(e,void 0,hx),e+"")}var mx=px(Object.getPrototypeOf,Object);function bu(){if(!arguments.length)return[];var e=arguments[0];return oo(e)?e:[e]}function IY(){this.__data__=new ua,this.size=0}function AY(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function MY(e){return this.__data__.get(e)}function OY(e){return this.__data__.has(e)}var RY=200;function PY(e,t){var n=this.__data__;if(n instanceof ua){var r=n.__data__;if(!Sd||r.lengthi))return!1;var u=s.get(e),c=s.get(t);if(u&&c)return u==t&&c==e;var d=-1,f=!0,p=n&pJ?new Ed:void 0;for(s.set(e,t),s.set(t,e);++d=t||T<0||d&&C>=s}function b(){var E=mv();if(g(E))return _(E);i=setTimeout(b,v(E))}function _(E){return i=void 0,f&&r?p(E):(r=o=void 0,a)}function y(){i!==void 0&&clearTimeout(i),u=0,r=l=o=i=void 0}function S(){return i===void 0?a:_(mv())}function w(){var E=mv(),T=g(E);if(r=arguments,o=this,l=E,T){if(i===void 0)return m(l);if(d)return clearTimeout(i),i=setTimeout(b,t),p(l)}return i===void 0&&(i=setTimeout(b,t)),a}return w.cancel=y,w.flush=S,w}function oQ(e){return Zs(e)&&sf(e)}function sQ(e,t){var n=-1,r=sf(e)?Array(e.length):[];return eQ(e,function(o,s,a){r[++n]=t(o,s,a)}),r}function aQ(e,t){var n=oo(e)?nx:sQ;return n(e,YJ(t))}function iQ(e,t){return uf(aQ(e,t),1)}var lQ=1/0;function uQ(e){var t=e==null?0:e.length;return t?uf(e,lQ):[]}function Ax(e){for(var t=-1,n=e==null?0:e.length,r={};++t=vQ){var u=mQ(e);if(u)return q4(u);a=!1,o=kx,l=new Ed}else l=i;e:for(;++rgetComputedStyle(e).position==="fixed"?!1:e.offsetParent!==null,x8=e=>Array.from(e.querySelectorAll(_Q)).filter(t=>bQ(t)&&yQ(t)),bQ=e=>{if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute("tabIndex")!==null)return!0;if(e.disabled)return!1;switch(e.nodeName){case"A":return!!e.href&&e.rel!=="ignore";case"INPUT":return!(e.type==="hidden"||e.type==="file");case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},gp=function(e,t,...n){let r;t.includes("mouse")||t.includes("click")?r="MouseEvents":t.includes("key")?r="KeyboardEvent":r="HTMLEvents";const o=document.createEvent(r);return o.initEvent(t,...n),e.dispatchEvent(o),e},Ox=e=>!e.getAttribute("aria-owns"),Rx=(e,t,n)=>{const{parentNode:r}=e;if(!r)return null;const o=r.querySelectorAll(n),s=Array.prototype.indexOf.call(o,e);return o[s+t]||null},_p=e=>{e&&(e.focus(),!Ox(e)&&e.click())},Sn=(e,t,{checkForDefaultPrevented:n=!0}={})=>o=>{const s=e==null?void 0:e(o);if(n===!1||!s)return t==null?void 0:t(o)},I8=e=>t=>t.pointerType==="mouse"?e(t):void 0;var wQ=Object.defineProperty,SQ=Object.defineProperties,EQ=Object.getOwnPropertyDescriptors,A8=Object.getOwnPropertySymbols,CQ=Object.prototype.hasOwnProperty,kQ=Object.prototype.propertyIsEnumerable,M8=(e,t,n)=>t in e?wQ(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,TQ=(e,t)=>{for(var n in t||(t={}))CQ.call(t,n)&&M8(e,n,t[n]);if(A8)for(var n of A8(t))kQ.call(t,n)&&M8(e,n,t[n]);return e},$Q=(e,t)=>SQ(e,EQ(t));function O8(e,t){var n;const r=rn();return Cr(()=>{r.value=e()},$Q(TQ({},t),{flush:(n=void 0)!=null?n:"sync"})),Lu(r)}var R8;const Pt=typeof window<"u",xQ=e=>typeof e<"u",Dn=e=>typeof e=="boolean",IQ=e=>typeof e=="function",dt=e=>typeof e=="number",AQ=e=>typeof e=="string",MQ=()=>{};Pt&&((R8=window==null?void 0:window.navigator)!=null&&R8.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function Zi(e){return typeof e=="function"?e():h(e)}function Px(e,t){function n(...r){e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})}return n}function OQ(e,t={}){let n,r;return s=>{const a=Zi(e),i=Zi(t.maxWait);if(n&&clearTimeout(n),a<=0||i!==void 0&&i<=0)return r&&(clearTimeout(r),r=null),s();i&&!r&&(r=setTimeout(()=>{n&&clearTimeout(n),r=null,s()},i)),n=setTimeout(()=>{r&&clearTimeout(r),r=null,s()},a)}}function RQ(e,t=!0,n=!0){let r=0,o,s=!0;const a=()=>{o&&(clearTimeout(o),o=void 0)};return l=>{const u=Zi(e),c=Date.now()-r;if(a(),u<=0)return r=Date.now(),l();c>u&&(n||!s)?(r=Date.now(),l()):t&&(o=setTimeout(()=>{r=Date.now(),s=!0,a(),l()},u-c)),!n&&!o&&(o=setTimeout(()=>s=!0,u)),s=!1}}function PQ(e){return e}function Q0(e){return _y()?(yy(e),!0):!1}function NQ(e,t=200,n={}){return Px(OQ(t,n),e)}function LQ(e,t=200,n={}){const r=ee(e.value),o=NQ(()=>{r.value=e.value},t,n);return Be(e,()=>o()),r}function Nx(e,t=200,n=!1,r=!0){return Px(RQ(t,n,r),e)}function K4(e,t=!0){gt()?vt(e):t?e():Xe(e)}function el(e,t,n={}){const{immediate:r=!0}=n,o=ee(!1);let s=null;function a(){s&&(clearTimeout(s),s=null)}function i(){o.value=!1,a()}function l(...u){a(),o.value=!0,s=setTimeout(()=>{o.value=!1,s=null,e(...u)},Zi(t))}return r&&(o.value=!0,Pt&&l()),Q0(i),{isPending:o,start:l,stop:i}}function Jr(e){var t;const n=Zi(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Ju=Pt?window:void 0,BQ=Pt?window.document:void 0;function dn(...e){let t,n,r,o;if(AQ(e[0])||Array.isArray(e[0])?([n,r,o]=e,t=Ju):[t,n,r,o]=e,!t)return MQ;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const s=[],a=()=>{s.forEach(c=>c()),s.length=0},i=(c,d,f)=>(c.addEventListener(d,f,o),()=>c.removeEventListener(d,f,o)),l=Be(()=>Jr(t),c=>{a(),c&&s.push(...n.flatMap(d=>r.map(f=>i(c,d,f))))},{immediate:!0,flush:"post"}),u=()=>{l(),a()};return Q0(u),u}function G4(e,t,n={}){const{window:r=Ju,ignore:o,capture:s=!0,detectIframe:a=!1}=n;if(!r)return;const i=ee(!0);let l;const u=p=>{r.clearTimeout(l);const m=Jr(e);!m||m===p.target||p.composedPath().includes(m)||!i.value||t(p)},c=p=>o&&o.some(m=>{const v=Jr(m);return v&&(p.target===v||p.composedPath().includes(v))}),d=[dn(r,"click",u,{passive:!0,capture:s}),dn(r,"pointerdown",p=>{const m=Jr(e);i.value=!!m&&!p.composedPath().includes(m)&&!c(p)},{passive:!0}),dn(r,"pointerup",p=>{if(p.button===0){const m=p.composedPath();p.composedPath=()=>m,l=r.setTimeout(()=>u(p),50)}},{passive:!0}),a&&dn(r,"blur",p=>{var m;const v=Jr(e);((m=r.document.activeElement)==null?void 0:m.tagName)==="IFRAME"&&!(v!=null&&v.contains(r.document.activeElement))&&t(p)})].filter(Boolean);return()=>d.forEach(p=>p())}function DQ(e,t=!1){const n=ee(),r=()=>n.value=!!e();return r(),K4(r,t),n}function zQ(e){return JSON.parse(JSON.stringify(e))}const P8=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},N8="__vueuse_ssr_handlers__";P8[N8]=P8[N8]||{};function FQ(e,t,{window:n=Ju,initialValue:r=""}={}){const o=ee(r),s=z(()=>{var a;return Jr(t)||((a=n==null?void 0:n.document)==null?void 0:a.documentElement)});return Be([s,()=>Zi(e)],([a,i])=>{var l;if(a&&n){const u=(l=n.getComputedStyle(a).getPropertyValue(i))==null?void 0:l.trim();o.value=u||r}},{immediate:!0}),Be(o,a=>{var i;(i=s.value)!=null&&i.style&&s.value.style.setProperty(Zi(e),a)}),o}function HQ({document:e=BQ}={}){if(!e)return ee("visible");const t=ee(e.visibilityState);return dn(e,"visibilitychange",()=>{t.value=e.visibilityState}),t}var L8=Object.getOwnPropertySymbols,VQ=Object.prototype.hasOwnProperty,jQ=Object.prototype.propertyIsEnumerable,UQ=(e,t)=>{var n={};for(var r in e)VQ.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&L8)for(var r of L8(e))t.indexOf(r)<0&&jQ.call(e,r)&&(n[r]=e[r]);return n};function gr(e,t,n={}){const r=n,{window:o=Ju}=r,s=UQ(r,["window"]);let a;const i=DQ(()=>o&&"ResizeObserver"in o),l=()=>{a&&(a.disconnect(),a=void 0)},u=Be(()=>Jr(e),d=>{l(),i.value&&o&&d&&(a=new ResizeObserver(t),a.observe(d,s))},{immediate:!0,flush:"post"}),c=()=>{l(),u()};return Q0(c),{isSupported:i,stop:c}}function B8(e,t={}){const{reset:n=!0,windowResize:r=!0,windowScroll:o=!0,immediate:s=!0}=t,a=ee(0),i=ee(0),l=ee(0),u=ee(0),c=ee(0),d=ee(0),f=ee(0),p=ee(0);function m(){const v=Jr(e);if(!v){n&&(a.value=0,i.value=0,l.value=0,u.value=0,c.value=0,d.value=0,f.value=0,p.value=0);return}const g=v.getBoundingClientRect();a.value=g.height,i.value=g.bottom,l.value=g.left,u.value=g.right,c.value=g.top,d.value=g.width,f.value=g.x,p.value=g.y}return gr(e,m),Be(()=>Jr(e),v=>!v&&m()),o&&dn("scroll",m,{passive:!0}),r&&dn("resize",m,{passive:!0}),K4(()=>{s&&m()}),{height:a,bottom:i,left:l,right:u,top:c,width:d,x:f,y:p,update:m}}var D8;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(D8||(D8={}));var WQ=Object.defineProperty,z8=Object.getOwnPropertySymbols,qQ=Object.prototype.hasOwnProperty,KQ=Object.prototype.propertyIsEnumerable,F8=(e,t,n)=>t in e?WQ(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,GQ=(e,t)=>{for(var n in t||(t={}))qQ.call(t,n)&&F8(e,n,t[n]);if(z8)for(var n of z8(t))KQ.call(t,n)&&F8(e,n,t[n]);return e};const YQ={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};GQ({linear:PQ},YQ);function XQ(e,t,n,r={}){var o,s,a;const{clone:i=!1,passive:l=!1,eventName:u,deep:c=!1,defaultValue:d}=r,f=gt(),p=(f==null?void 0:f.emit)||((o=f==null?void 0:f.$emit)==null?void 0:o.bind(f))||((a=(s=f==null?void 0:f.proxy)==null?void 0:s.$emit)==null?void 0:a.bind(f==null?void 0:f.proxy));let m=u;m=u||m||`update:${t.toString()}`;const v=b=>i?IQ(i)?i(b):zQ(b):b,g=()=>xQ(e[t])?v(e[t]):d;if(l){const b=g(),_=ee(b);return Be(()=>e[t],y=>_.value=v(y)),Be(_,y=>{(y!==e[t]||c)&&p(m,y)},{deep:c}),_}else return z({get(){return g()},set(b){p(m,b)}})}function JQ({window:e=Ju}={}){if(!e)return ee(!1);const t=ee(e.document.hasFocus());return dn(e,"blur",()=>{t.value=!1}),dn(e,"focus",()=>{t.value=!0}),t}function Lx(e={}){const{window:t=Ju,initialWidth:n=1/0,initialHeight:r=1/0,listenOrientation:o=!0,includeScrollbar:s=!0}=e,a=ee(n),i=ee(r),l=()=>{t&&(s?(a.value=t.innerWidth,i.value=t.innerHeight):(a.value=t.document.documentElement.clientWidth,i.value=t.document.documentElement.clientHeight))};return l(),K4(l),dn("resize",l,{passive:!0}),o&&dn("orientationchange",l,{passive:!0}),{width:a,height:i}}const QQ=(e,t)=>{if(!Pt||!e||!t)return!1;const n=e.getBoundingClientRect();let r;return t instanceof Element?r=t.getBoundingClientRect():r={top:0,right:window.innerWidth,bottom:window.innerHeight,left:0},n.topr.top&&n.right>r.left&&n.left{let t=0,n=e;for(;n;)t+=n.offsetTop,n=n.offsetParent;return t},ZQ=(e,t)=>Math.abs(H8(e)-H8(t)),Y4=e=>{let t,n;return e.type==="touchend"?(n=e.changedTouches[0].clientY,t=e.changedTouches[0].clientX):e.type.startsWith("touch")?(n=e.touches[0].clientY,t=e.touches[0].clientX):(n=e.clientY,t=e.clientX),{clientX:t,clientY:n}},Gn=e=>e===void 0,co=e=>!e&&e!==0||Ge(e)&&e.length===0||xt(e)&&!Object.keys(e).length,zo=e=>typeof Element>"u"?!1:e instanceof Element,eZ=e=>Yn(e),tZ=e=>ft(e)?!Number.isNaN(Number(e)):!1,Bx=(e="")=>e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d"),ts=e=>Nu(e),Cd=e=>Object.keys(e),nZ=e=>Object.entries(e),yp=(e,t,n)=>({get value(){return pn(e,t,n)},set value(r){fQ(e,t,r)}});class rZ extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function zn(e,t){throw new rZ(`[${e}] ${t}`)}const Dx=(e="")=>e.split(" ").filter(t=>!!t.trim()),No=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},rs=(e,t)=>{!e||!t.trim()||e.classList.add(...Dx(t))},Lr=(e,t)=>{!e||!t.trim()||e.classList.remove(...Dx(t))},Ps=(e,t)=>{var n;if(!Pt||!e||!t)return"";let r=Tr(t);r==="float"&&(r="cssFloat");try{const o=e.style[r];if(o)return o;const s=(n=document.defaultView)==null?void 0:n.getComputedStyle(e,"");return s?s[r]:""}catch{return e.style[r]}};function Nn(e,t="px"){if(!e)return"";if(dt(e)||tZ(e))return`${e}${t}`;if(ft(e))return e}const oZ=(e,t)=>{if(!Pt)return!1;const n={undefined:"overflow",true:"overflow-y",false:"overflow-x"}[String(t)],r=Ps(e,n);return["scroll","auto","overlay"].some(o=>r.includes(o))},X4=(e,t)=>{if(!Pt)return;let n=e;for(;n;){if([window,document,document.documentElement].includes(n))return window;if(oZ(n,t))return n;n=n.parentNode}return n};let Hf;const zx=e=>{var t;if(!Pt)return 0;if(Hf!==void 0)return Hf;const n=document.createElement("div");n.className=`${e}-scrollbar__wrap`,n.style.visibility="hidden",n.style.width="100px",n.style.position="absolute",n.style.top="-9999px",document.body.appendChild(n);const r=n.offsetWidth;n.style.overflow="scroll";const o=document.createElement("div");o.style.width="100%",n.appendChild(o);const s=o.offsetWidth;return(t=n.parentNode)==null||t.removeChild(n),Hf=r-s,Hf};function Fx(e,t){if(!Pt)return;if(!t){e.scrollTop=0;return}const n=[];let r=t.offsetParent;for(;r!==null&&e!==r&&e.contains(r);)n.push(r),r=r.offsetParent;const o=t.offsetTop+n.reduce((l,u)=>l+u.offsetTop,0),s=o+t.offsetHeight,a=e.scrollTop,i=a+e.clientHeight;oi&&(e.scrollTop=s-e.clientHeight)}/*! Element Plus Icons Vue v2.0.10 */var sZ={name:"AddLocation"},Se=(e,t)=>{let n=e.__vccOpts||e;for(let[r,o]of t)n[r]=o;return n},aZ={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},iZ=R("path",{fill:"currentColor",d:"M288 896h448q32 0 32 32t-32 32H288q-32 0-32-32t32-32z"},null,-1),lZ=R("path",{fill:"currentColor",d:"M800 416a288 288 0 1 0-576 0c0 118.144 94.528 272.128 288 456.576C705.472 688.128 800 534.144 800 416zM512 960C277.312 746.688 160 565.312 160 416a352 352 0 0 1 704 0c0 149.312-117.312 330.688-352 544z"},null,-1),uZ=R("path",{fill:"currentColor",d:"M544 384h96a32 32 0 1 1 0 64h-96v96a32 32 0 0 1-64 0v-96h-96a32 32 0 0 1 0-64h96v-96a32 32 0 0 1 64 0v96z"},null,-1),cZ=[iZ,lZ,uZ];function dZ(e,t,n,r,o,s){return k(),D("svg",aZ,cZ)}var fZ=Se(sZ,[["render",dZ],["__file","add-location.vue"]]),pZ={name:"Aim"},hZ={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},mZ=R("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"},null,-1),vZ=R("path",{fill:"currentColor",d:"M512 96a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V128a32 32 0 0 1 32-32zm0 576a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V704a32 32 0 0 1 32-32zM96 512a32 32 0 0 1 32-32h192a32 32 0 0 1 0 64H128a32 32 0 0 1-32-32zm576 0a32 32 0 0 1 32-32h192a32 32 0 1 1 0 64H704a32 32 0 0 1-32-32z"},null,-1),gZ=[mZ,vZ];function _Z(e,t,n,r,o,s){return k(),D("svg",hZ,gZ)}var yZ=Se(pZ,[["render",_Z],["__file","aim.vue"]]),bZ={name:"AlarmClock"},wZ={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},SZ=R("path",{fill:"currentColor",d:"M512 832a320 320 0 1 0 0-640 320 320 0 0 0 0 640zm0 64a384 384 0 1 1 0-768 384 384 0 0 1 0 768z"},null,-1),EZ=R("path",{fill:"currentColor",d:"m292.288 824.576 55.424 32-48 83.136a32 32 0 1 1-55.424-32l48-83.136zm439.424 0-55.424 32 48 83.136a32 32 0 1 0 55.424-32l-48-83.136zM512 512h160a32 32 0 1 1 0 64H480a32 32 0 0 1-32-32V320a32 32 0 0 1 64 0v192zM90.496 312.256A160 160 0 0 1 312.32 90.496l-46.848 46.848a96 96 0 0 0-128 128L90.56 312.256zm835.264 0A160 160 0 0 0 704 90.496l46.848 46.848a96 96 0 0 1 128 128l46.912 46.912z"},null,-1),CZ=[SZ,EZ];function kZ(e,t,n,r,o,s){return k(),D("svg",wZ,CZ)}var TZ=Se(bZ,[["render",kZ],["__file","alarm-clock.vue"]]),$Z={name:"Apple"},xZ={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},IZ=R("path",{fill:"currentColor",d:"M599.872 203.776a189.44 189.44 0 0 1 64.384-4.672l2.624.128c31.168 1.024 51.2 4.096 79.488 16.32 37.632 16.128 74.496 45.056 111.488 89.344 96.384 115.264 82.752 372.8-34.752 521.728-7.68 9.728-32 41.6-30.72 39.936a426.624 426.624 0 0 1-30.08 35.776c-31.232 32.576-65.28 49.216-110.08 50.048-31.36.64-53.568-5.312-84.288-18.752l-6.528-2.88c-20.992-9.216-30.592-11.904-47.296-11.904-18.112 0-28.608 2.88-51.136 12.672l-6.464 2.816c-28.416 12.224-48.32 18.048-76.16 19.2-74.112 2.752-116.928-38.08-180.672-132.16-96.64-142.08-132.608-349.312-55.04-486.4 46.272-81.92 129.92-133.632 220.672-135.04 32.832-.576 60.288 6.848 99.648 22.72 27.136 10.88 34.752 13.76 37.376 14.272 16.256-20.16 27.776-36.992 34.56-50.24 13.568-26.304 27.2-59.968 40.704-100.8a32 32 0 1 1 60.8 20.224c-12.608 37.888-25.408 70.4-38.528 97.664zm-51.52 78.08c-14.528 17.792-31.808 37.376-51.904 58.816a32 32 0 1 1-46.72-43.776l12.288-13.248c-28.032-11.2-61.248-26.688-95.68-26.112-70.4 1.088-135.296 41.6-171.648 105.792C121.6 492.608 176 684.16 247.296 788.992c34.816 51.328 76.352 108.992 130.944 106.944 52.48-2.112 72.32-34.688 135.872-34.688 63.552 0 81.28 34.688 136.96 33.536 56.448-1.088 75.776-39.04 126.848-103.872 107.904-136.768 107.904-362.752 35.776-449.088-72.192-86.272-124.672-84.096-151.68-85.12-41.472-4.288-81.6 12.544-113.664 25.152z"},null,-1),AZ=[IZ];function MZ(e,t,n,r,o,s){return k(),D("svg",xZ,AZ)}var OZ=Se($Z,[["render",MZ],["__file","apple.vue"]]),RZ={name:"ArrowDownBold"},PZ={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},NZ=R("path",{fill:"currentColor",d:"M104.704 338.752a64 64 0 0 1 90.496 0l316.8 316.8 316.8-316.8a64 64 0 0 1 90.496 90.496L557.248 791.296a64 64 0 0 1-90.496 0L104.704 429.248a64 64 0 0 1 0-90.496z"},null,-1),LZ=[NZ];function BZ(e,t,n,r,o,s){return k(),D("svg",PZ,LZ)}var DZ=Se(RZ,[["render",BZ],["__file","arrow-down-bold.vue"]]),zZ={name:"ArrowDown"},FZ={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},HZ=R("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"},null,-1),VZ=[HZ];function jZ(e,t,n,r,o,s){return k(),D("svg",FZ,VZ)}var da=Se(zZ,[["render",jZ],["__file","arrow-down.vue"]]),UZ={name:"ArrowLeftBold"},WZ={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},qZ=R("path",{fill:"currentColor",d:"M685.248 104.704a64 64 0 0 1 0 90.496L368.448 512l316.8 316.8a64 64 0 0 1-90.496 90.496L232.704 557.248a64 64 0 0 1 0-90.496l362.048-362.048a64 64 0 0 1 90.496 0z"},null,-1),KZ=[qZ];function GZ(e,t,n,r,o,s){return k(),D("svg",WZ,KZ)}var YZ=Se(UZ,[["render",GZ],["__file","arrow-left-bold.vue"]]),XZ={name:"ArrowLeft"},JZ={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},QZ=R("path",{fill:"currentColor",d:"M609.408 149.376 277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.592 30.592 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.592 30.592 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0z"},null,-1),ZZ=[QZ];function eee(e,t,n,r,o,s){return k(),D("svg",JZ,ZZ)}var ea=Se(XZ,[["render",eee],["__file","arrow-left.vue"]]),tee={name:"ArrowRightBold"},nee={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},ree=R("path",{fill:"currentColor",d:"M338.752 104.704a64 64 0 0 0 0 90.496l316.8 316.8-316.8 316.8a64 64 0 0 0 90.496 90.496l362.048-362.048a64 64 0 0 0 0-90.496L429.248 104.704a64 64 0 0 0-90.496 0z"},null,-1),oee=[ree];function see(e,t,n,r,o,s){return k(),D("svg",nee,oee)}var aee=Se(tee,[["render",see],["__file","arrow-right-bold.vue"]]),iee={name:"ArrowRight"},lee={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},uee=R("path",{fill:"currentColor",d:"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"},null,-1),cee=[uee];function dee(e,t,n,r,o,s){return k(),D("svg",lee,cee)}var vr=Se(iee,[["render",dee],["__file","arrow-right.vue"]]),fee={name:"ArrowUpBold"},pee={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},hee=R("path",{fill:"currentColor",d:"M104.704 685.248a64 64 0 0 0 90.496 0l316.8-316.8 316.8 316.8a64 64 0 0 0 90.496-90.496L557.248 232.704a64 64 0 0 0-90.496 0L104.704 594.752a64 64 0 0 0 0 90.496z"},null,-1),mee=[hee];function vee(e,t,n,r,o,s){return k(),D("svg",pee,mee)}var gee=Se(fee,[["render",vee],["__file","arrow-up-bold.vue"]]),_ee={name:"ArrowUp"},yee={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},bee=R("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0z"},null,-1),wee=[bee];function See(e,t,n,r,o,s){return k(),D("svg",yee,wee)}var cf=Se(_ee,[["render",See],["__file","arrow-up.vue"]]),Eee={name:"Avatar"},Cee={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},kee=R("path",{fill:"currentColor",d:"M628.736 528.896A416 416 0 0 1 928 928H96a415.872 415.872 0 0 1 299.264-399.104L512 704l116.736-175.104zM720 304a208 208 0 1 1-416 0 208 208 0 0 1 416 0z"},null,-1),Tee=[kee];function $ee(e,t,n,r,o,s){return k(),D("svg",Cee,Tee)}var xee=Se(Eee,[["render",$ee],["__file","avatar.vue"]]),Iee={name:"Back"},Aee={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Mee=R("path",{fill:"currentColor",d:"M224 480h640a32 32 0 1 1 0 64H224a32 32 0 0 1 0-64z"},null,-1),Oee=R("path",{fill:"currentColor",d:"m237.248 512 265.408 265.344a32 32 0 0 1-45.312 45.312l-288-288a32 32 0 0 1 0-45.312l288-288a32 32 0 1 1 45.312 45.312L237.248 512z"},null,-1),Ree=[Mee,Oee];function Pee(e,t,n,r,o,s){return k(),D("svg",Aee,Ree)}var Hx=Se(Iee,[["render",Pee],["__file","back.vue"]]),Nee={name:"Baseball"},Lee={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Bee=R("path",{fill:"currentColor",d:"M195.2 828.8a448 448 0 1 1 633.6-633.6 448 448 0 0 1-633.6 633.6zm45.248-45.248a384 384 0 1 0 543.104-543.104 384 384 0 0 0-543.104 543.104z"},null,-1),Dee=R("path",{fill:"currentColor",d:"M497.472 96.896c22.784 4.672 44.416 9.472 64.896 14.528a256.128 256.128 0 0 0 350.208 350.208c5.056 20.48 9.856 42.112 14.528 64.896A320.128 320.128 0 0 1 497.472 96.896zM108.48 491.904a320.128 320.128 0 0 1 423.616 423.68c-23.04-3.648-44.992-7.424-65.728-11.52a256.128 256.128 0 0 0-346.496-346.432 1736.64 1736.64 0 0 1-11.392-65.728z"},null,-1),zee=[Bee,Dee];function Fee(e,t,n,r,o,s){return k(),D("svg",Lee,zee)}var Hee=Se(Nee,[["render",Fee],["__file","baseball.vue"]]),Vee={name:"Basketball"},jee={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Uee=R("path",{fill:"currentColor",d:"M778.752 788.224a382.464 382.464 0 0 0 116.032-245.632 256.512 256.512 0 0 0-241.728-13.952 762.88 762.88 0 0 1 125.696 259.584zm-55.04 44.224a699.648 699.648 0 0 0-125.056-269.632 256.128 256.128 0 0 0-56.064 331.968 382.72 382.72 0 0 0 181.12-62.336zm-254.08 61.248A320.128 320.128 0 0 1 557.76 513.6a715.84 715.84 0 0 0-48.192-48.128 320.128 320.128 0 0 1-379.264 88.384 382.4 382.4 0 0 0 110.144 229.696 382.4 382.4 0 0 0 229.184 110.08zM129.28 481.088a256.128 256.128 0 0 0 331.072-56.448 699.648 699.648 0 0 0-268.8-124.352 382.656 382.656 0 0 0-62.272 180.8zm106.56-235.84a762.88 762.88 0 0 1 258.688 125.056 256.512 256.512 0 0 0-13.44-241.088A382.464 382.464 0 0 0 235.84 245.248zm318.08-114.944c40.576 89.536 37.76 193.92-8.448 281.344a779.84 779.84 0 0 1 66.176 66.112 320.832 320.832 0 0 1 282.112-8.128 382.4 382.4 0 0 0-110.144-229.12 382.4 382.4 0 0 0-229.632-110.208zM828.8 828.8a448 448 0 1 1-633.6-633.6 448 448 0 0 1 633.6 633.6z"},null,-1),Wee=[Uee];function qee(e,t,n,r,o,s){return k(),D("svg",jee,Wee)}var Kee=Se(Vee,[["render",qee],["__file","basketball.vue"]]),Gee={name:"BellFilled"},Yee={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Xee=R("path",{fill:"currentColor",d:"M640 832a128 128 0 0 1-256 0h256zm192-64H134.4a38.4 38.4 0 0 1 0-76.8H192V448c0-154.88 110.08-284.16 256.32-313.6a64 64 0 1 1 127.36 0A320.128 320.128 0 0 1 832 448v243.2h57.6a38.4 38.4 0 0 1 0 76.8H832z"},null,-1),Jee=[Xee];function Qee(e,t,n,r,o,s){return k(),D("svg",Yee,Jee)}var Zee=Se(Gee,[["render",Qee],["__file","bell-filled.vue"]]),ete={name:"Bell"},tte={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},nte=R("path",{fill:"currentColor",d:"M512 64a64 64 0 0 1 64 64v64H448v-64a64 64 0 0 1 64-64z"},null,-1),rte=R("path",{fill:"currentColor",d:"M256 768h512V448a256 256 0 1 0-512 0v320zm256-640a320 320 0 0 1 320 320v384H192V448a320 320 0 0 1 320-320z"},null,-1),ote=R("path",{fill:"currentColor",d:"M96 768h832q32 0 32 32t-32 32H96q-32 0-32-32t32-32zm352 128h128a64 64 0 0 1-128 0z"},null,-1),ste=[nte,rte,ote];function ate(e,t,n,r,o,s){return k(),D("svg",tte,ste)}var ite=Se(ete,[["render",ate],["__file","bell.vue"]]),lte={name:"Bicycle"},ute={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},cte=rk('',5),dte=[cte];function fte(e,t,n,r,o,s){return k(),D("svg",ute,dte)}var pte=Se(lte,[["render",fte],["__file","bicycle.vue"]]),hte={name:"BottomLeft"},mte={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},vte=R("path",{fill:"currentColor",d:"M256 768h416a32 32 0 1 1 0 64H224a32 32 0 0 1-32-32V352a32 32 0 0 1 64 0v416z"},null,-1),gte=R("path",{fill:"currentColor",d:"M246.656 822.656a32 32 0 0 1-45.312-45.312l544-544a32 32 0 0 1 45.312 45.312l-544 544z"},null,-1),_te=[vte,gte];function yte(e,t,n,r,o,s){return k(),D("svg",mte,_te)}var bte=Se(hte,[["render",yte],["__file","bottom-left.vue"]]),wte={name:"BottomRight"},Ste={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ete=R("path",{fill:"currentColor",d:"M352 768a32 32 0 1 0 0 64h448a32 32 0 0 0 32-32V352a32 32 0 0 0-64 0v416H352z"},null,-1),Cte=R("path",{fill:"currentColor",d:"M777.344 822.656a32 32 0 0 0 45.312-45.312l-544-544a32 32 0 0 0-45.312 45.312l544 544z"},null,-1),kte=[Ete,Cte];function Tte(e,t,n,r,o,s){return k(),D("svg",Ste,kte)}var $te=Se(wte,[["render",Tte],["__file","bottom-right.vue"]]),xte={name:"Bottom"},Ite={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ate=R("path",{fill:"currentColor",d:"M544 805.888V168a32 32 0 1 0-64 0v637.888L246.656 557.952a30.72 30.72 0 0 0-45.312 0 35.52 35.52 0 0 0 0 48.064l288 306.048a30.72 30.72 0 0 0 45.312 0l288-306.048a35.52 35.52 0 0 0 0-48 30.72 30.72 0 0 0-45.312 0L544 805.824z"},null,-1),Mte=[Ate];function Ote(e,t,n,r,o,s){return k(),D("svg",Ite,Mte)}var Rte=Se(xte,[["render",Ote],["__file","bottom.vue"]]),Pte={name:"Bowl"},Nte={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Lte=R("path",{fill:"currentColor",d:"M714.432 704a351.744 351.744 0 0 0 148.16-256H161.408a351.744 351.744 0 0 0 148.16 256h404.864zM288 766.592A415.68 415.68 0 0 1 96 416a32 32 0 0 1 32-32h768a32 32 0 0 1 32 32 415.68 415.68 0 0 1-192 350.592V832a64 64 0 0 1-64 64H352a64 64 0 0 1-64-64v-65.408zM493.248 320h-90.496l254.4-254.4a32 32 0 1 1 45.248 45.248L493.248 320zm187.328 0h-128l269.696-155.712a32 32 0 0 1 32 55.424L680.576 320zM352 768v64h320v-64H352z"},null,-1),Bte=[Lte];function Dte(e,t,n,r,o,s){return k(),D("svg",Nte,Bte)}var zte=Se(Pte,[["render",Dte],["__file","bowl.vue"]]),Fte={name:"Box"},Hte={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Vte=R("path",{fill:"currentColor",d:"M317.056 128 128 344.064V896h768V344.064L706.944 128H317.056zm-14.528-64h418.944a32 32 0 0 1 24.064 10.88l206.528 236.096A32 32 0 0 1 960 332.032V928a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V332.032a32 32 0 0 1 7.936-21.12L278.4 75.008A32 32 0 0 1 302.528 64z"},null,-1),jte=R("path",{fill:"currentColor",d:"M64 320h896v64H64z"},null,-1),Ute=R("path",{fill:"currentColor",d:"M448 327.872V640h128V327.872L526.08 128h-28.16L448 327.872zM448 64h128l64 256v352a32 32 0 0 1-32 32H416a32 32 0 0 1-32-32V320l64-256z"},null,-1),Wte=[Vte,jte,Ute];function qte(e,t,n,r,o,s){return k(),D("svg",Hte,Wte)}var Kte=Se(Fte,[["render",qte],["__file","box.vue"]]),Gte={name:"Briefcase"},Yte={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Xte=R("path",{fill:"currentColor",d:"M320 320V128h384v192h192v192H128V320h192zM128 576h768v320H128V576zm256-256h256.064V192H384v128z"},null,-1),Jte=[Xte];function Qte(e,t,n,r,o,s){return k(),D("svg",Yte,Jte)}var Zte=Se(Gte,[["render",Qte],["__file","briefcase.vue"]]),ene={name:"BrushFilled"},tne={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},nne=R("path",{fill:"currentColor",d:"M608 704v160a96 96 0 0 1-192 0V704h-96a128 128 0 0 1-128-128h640a128 128 0 0 1-128 128h-96zM192 512V128.064h640V512H192z"},null,-1),rne=[nne];function one(e,t,n,r,o,s){return k(),D("svg",tne,rne)}var sne=Se(ene,[["render",one],["__file","brush-filled.vue"]]),ane={name:"Brush"},ine={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},lne=R("path",{fill:"currentColor",d:"M896 448H128v192a64 64 0 0 0 64 64h192v192h256V704h192a64 64 0 0 0 64-64V448zm-770.752-64c0-47.552 5.248-90.24 15.552-128 14.72-54.016 42.496-107.392 83.2-160h417.28l-15.36 70.336L736 96h211.2c-24.832 42.88-41.92 96.256-51.2 160a663.872 663.872 0 0 0-6.144 128H960v256a128 128 0 0 1-128 128H704v160a32 32 0 0 1-32 32H352a32 32 0 0 1-32-32V768H192A128 128 0 0 1 64 640V384h61.248zm64 0h636.544c-2.048-45.824.256-91.584 6.848-137.216 4.48-30.848 10.688-59.776 18.688-86.784h-96.64l-221.12 141.248L561.92 160H256.512c-25.856 37.888-43.776 75.456-53.952 112.832-8.768 32.064-13.248 69.12-13.312 111.168z"},null,-1),une=[lne];function cne(e,t,n,r,o,s){return k(),D("svg",ine,une)}var dne=Se(ane,[["render",cne],["__file","brush.vue"]]),fne={name:"Burger"},pne={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},hne=R("path",{fill:"currentColor",d:"M160 512a32 32 0 0 0-32 32v64a32 32 0 0 0 30.08 32H864a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32H160zm736-58.56A96 96 0 0 1 960 544v64a96 96 0 0 1-51.968 85.312L855.36 833.6a96 96 0 0 1-89.856 62.272H258.496A96 96 0 0 1 168.64 833.6l-52.608-140.224A96 96 0 0 1 64 608v-64a96 96 0 0 1 64-90.56V448a384 384 0 1 1 768 5.44zM832 448a320 320 0 0 0-640 0h640zM512 704H188.352l40.192 107.136a32 32 0 0 0 29.952 20.736h507.008a32 32 0 0 0 29.952-20.736L835.648 704H512z"},null,-1),mne=[hne];function vne(e,t,n,r,o,s){return k(),D("svg",pne,mne)}var gne=Se(fne,[["render",vne],["__file","burger.vue"]]),_ne={name:"Calendar"},yne={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},bne=R("path",{fill:"currentColor",d:"M128 384v512h768V192H768v32a32 32 0 1 1-64 0v-32H320v32a32 32 0 0 1-64 0v-32H128v128h768v64H128zm192-256h384V96a32 32 0 1 1 64 0v32h160a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h160V96a32 32 0 0 1 64 0v32zm-32 384h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64zm0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64zm192-192h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64zm0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64zm192-192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64zm0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64z"},null,-1),wne=[bne];function Sne(e,t,n,r,o,s){return k(),D("svg",yne,wne)}var Vx=Se(_ne,[["render",Sne],["__file","calendar.vue"]]),Ene={name:"CameraFilled"},Cne={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},kne=R("path",{fill:"currentColor",d:"M160 224a64 64 0 0 0-64 64v512a64 64 0 0 0 64 64h704a64 64 0 0 0 64-64V288a64 64 0 0 0-64-64H748.416l-46.464-92.672A64 64 0 0 0 644.736 96H379.328a64 64 0 0 0-57.216 35.392L275.776 224H160zm352 435.2a115.2 115.2 0 1 0 0-230.4 115.2 115.2 0 0 0 0 230.4zm0 140.8a256 256 0 1 1 0-512 256 256 0 0 1 0 512z"},null,-1),Tne=[kne];function $ne(e,t,n,r,o,s){return k(),D("svg",Cne,Tne)}var xne=Se(Ene,[["render",$ne],["__file","camera-filled.vue"]]),Ine={name:"Camera"},Ane={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Mne=R("path",{fill:"currentColor",d:"M896 256H128v576h768V256zm-199.424-64-32.064-64h-304.96l-32 64h369.024zM96 192h160l46.336-92.608A64 64 0 0 1 359.552 64h304.96a64 64 0 0 1 57.216 35.328L768.192 192H928a32 32 0 0 1 32 32v640a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V224a32 32 0 0 1 32-32zm416 512a160 160 0 1 0 0-320 160 160 0 0 0 0 320zm0 64a224 224 0 1 1 0-448 224 224 0 0 1 0 448z"},null,-1),One=[Mne];function Rne(e,t,n,r,o,s){return k(),D("svg",Ane,One)}var Pne=Se(Ine,[["render",Rne],["__file","camera.vue"]]),Nne={name:"CaretBottom"},Lne={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Bne=R("path",{fill:"currentColor",d:"m192 384 320 384 320-384z"},null,-1),Dne=[Bne];function zne(e,t,n,r,o,s){return k(),D("svg",Lne,Dne)}var Fne=Se(Nne,[["render",zne],["__file","caret-bottom.vue"]]),Hne={name:"CaretLeft"},Vne={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},jne=R("path",{fill:"currentColor",d:"M672 192 288 511.936 672 832z"},null,-1),Une=[jne];function Wne(e,t,n,r,o,s){return k(),D("svg",Vne,Une)}var qne=Se(Hne,[["render",Wne],["__file","caret-left.vue"]]),Kne={name:"CaretRight"},Gne={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Yne=R("path",{fill:"currentColor",d:"M384 192v640l384-320.064z"},null,-1),Xne=[Yne];function Jne(e,t,n,r,o,s){return k(),D("svg",Gne,Xne)}var J4=Se(Kne,[["render",Jne],["__file","caret-right.vue"]]),Qne={name:"CaretTop"},Zne={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},ere=R("path",{fill:"currentColor",d:"M512 320 192 704h639.936z"},null,-1),tre=[ere];function nre(e,t,n,r,o,s){return k(),D("svg",Zne,tre)}var jx=Se(Qne,[["render",nre],["__file","caret-top.vue"]]),rre={name:"Cellphone"},ore={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},sre=R("path",{fill:"currentColor",d:"M256 128a64 64 0 0 0-64 64v640a64 64 0 0 0 64 64h512a64 64 0 0 0 64-64V192a64 64 0 0 0-64-64H256zm0-64h512a128 128 0 0 1 128 128v640a128 128 0 0 1-128 128H256a128 128 0 0 1-128-128V192A128 128 0 0 1 256 64zm128 128h256a32 32 0 1 1 0 64H384a32 32 0 0 1 0-64zm128 640a64 64 0 1 1 0-128 64 64 0 0 1 0 128z"},null,-1),are=[sre];function ire(e,t,n,r,o,s){return k(),D("svg",ore,are)}var lre=Se(rre,[["render",ire],["__file","cellphone.vue"]]),ure={name:"ChatDotRound"},cre={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},dre=R("path",{fill:"currentColor",d:"m174.72 855.68 135.296-45.12 23.68 11.84C388.096 849.536 448.576 864 512 864c211.84 0 384-166.784 384-352S723.84 160 512 160 128 326.784 128 512c0 69.12 24.96 139.264 70.848 199.232l22.08 28.8-46.272 115.584zm-45.248 82.56A32 32 0 0 1 89.6 896l58.368-145.92C94.72 680.32 64 596.864 64 512 64 299.904 256 96 512 96s448 203.904 448 416-192 416-448 416a461.056 461.056 0 0 1-206.912-48.384l-175.616 58.56z"},null,-1),fre=R("path",{fill:"currentColor",d:"M512 563.2a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm192 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm-384 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4z"},null,-1),pre=[dre,fre];function hre(e,t,n,r,o,s){return k(),D("svg",cre,pre)}var mre=Se(ure,[["render",hre],["__file","chat-dot-round.vue"]]),vre={name:"ChatDotSquare"},gre={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},_re=R("path",{fill:"currentColor",d:"M273.536 736H800a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64H224a64 64 0 0 0-64 64v570.88L273.536 736zM296 800 147.968 918.4A32 32 0 0 1 96 893.44V256a128 128 0 0 1 128-128h576a128 128 0 0 1 128 128v416a128 128 0 0 1-128 128H296z"},null,-1),yre=R("path",{fill:"currentColor",d:"M512 499.2a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm192 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm-384 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4z"},null,-1),bre=[_re,yre];function wre(e,t,n,r,o,s){return k(),D("svg",gre,bre)}var Sre=Se(vre,[["render",wre],["__file","chat-dot-square.vue"]]),Ere={name:"ChatLineRound"},Cre={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},kre=R("path",{fill:"currentColor",d:"m174.72 855.68 135.296-45.12 23.68 11.84C388.096 849.536 448.576 864 512 864c211.84 0 384-166.784 384-352S723.84 160 512 160 128 326.784 128 512c0 69.12 24.96 139.264 70.848 199.232l22.08 28.8-46.272 115.584zm-45.248 82.56A32 32 0 0 1 89.6 896l58.368-145.92C94.72 680.32 64 596.864 64 512 64 299.904 256 96 512 96s448 203.904 448 416-192 416-448 416a461.056 461.056 0 0 1-206.912-48.384l-175.616 58.56z"},null,-1),Tre=R("path",{fill:"currentColor",d:"M352 576h320q32 0 32 32t-32 32H352q-32 0-32-32t32-32zm32-192h256q32 0 32 32t-32 32H384q-32 0-32-32t32-32z"},null,-1),$re=[kre,Tre];function xre(e,t,n,r,o,s){return k(),D("svg",Cre,$re)}var Ire=Se(Ere,[["render",xre],["__file","chat-line-round.vue"]]),Are={name:"ChatLineSquare"},Mre={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ore=R("path",{fill:"currentColor",d:"M160 826.88 273.536 736H800a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64H224a64 64 0 0 0-64 64v570.88zM296 800 147.968 918.4A32 32 0 0 1 96 893.44V256a128 128 0 0 1 128-128h576a128 128 0 0 1 128 128v416a128 128 0 0 1-128 128H296z"},null,-1),Rre=R("path",{fill:"currentColor",d:"M352 512h320q32 0 32 32t-32 32H352q-32 0-32-32t32-32zm0-192h320q32 0 32 32t-32 32H352q-32 0-32-32t32-32z"},null,-1),Pre=[Ore,Rre];function Nre(e,t,n,r,o,s){return k(),D("svg",Mre,Pre)}var Lre=Se(Are,[["render",Nre],["__file","chat-line-square.vue"]]),Bre={name:"ChatRound"},Dre={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},zre=R("path",{fill:"currentColor",d:"m174.72 855.68 130.048-43.392 23.424 11.392C382.4 849.984 444.352 864 512 864c223.744 0 384-159.872 384-352 0-192.832-159.104-352-384-352S128 319.168 128 512a341.12 341.12 0 0 0 69.248 204.288l21.632 28.8-44.16 110.528zm-45.248 82.56A32 32 0 0 1 89.6 896l56.512-141.248A405.12 405.12 0 0 1 64 512C64 299.904 235.648 96 512 96s448 203.904 448 416-173.44 416-448 416c-79.68 0-150.848-17.152-211.712-46.72l-170.88 56.96z"},null,-1),Fre=[zre];function Hre(e,t,n,r,o,s){return k(),D("svg",Dre,Fre)}var Vre=Se(Bre,[["render",Hre],["__file","chat-round.vue"]]),jre={name:"ChatSquare"},Ure={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Wre=R("path",{fill:"currentColor",d:"M273.536 736H800a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64H224a64 64 0 0 0-64 64v570.88L273.536 736zM296 800 147.968 918.4A32 32 0 0 1 96 893.44V256a128 128 0 0 1 128-128h576a128 128 0 0 1 128 128v416a128 128 0 0 1-128 128H296z"},null,-1),qre=[Wre];function Kre(e,t,n,r,o,s){return k(),D("svg",Ure,qre)}var Gre=Se(jre,[["render",Kre],["__file","chat-square.vue"]]),Yre={name:"Check"},Xre={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Jre=R("path",{fill:"currentColor",d:"M406.656 706.944 195.84 496.256a32 32 0 1 0-45.248 45.248l256 256 512-512a32 32 0 0 0-45.248-45.248L406.592 706.944z"},null,-1),Qre=[Jre];function Zre(e,t,n,r,o,s){return k(),D("svg",Xre,Qre)}var Qu=Se(Yre,[["render",Zre],["__file","check.vue"]]),eoe={name:"Checked"},toe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},noe=R("path",{fill:"currentColor",d:"M704 192h160v736H160V192h160.064v64H704v-64zM311.616 537.28l-45.312 45.248L447.36 763.52l316.8-316.8-45.312-45.184L447.36 673.024 311.616 537.28zM384 192V96h256v96H384z"},null,-1),roe=[noe];function ooe(e,t,n,r,o,s){return k(),D("svg",toe,roe)}var soe=Se(eoe,[["render",ooe],["__file","checked.vue"]]),aoe={name:"Cherry"},ioe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},loe=R("path",{fill:"currentColor",d:"M261.056 449.6c13.824-69.696 34.88-128.96 63.36-177.728 23.744-40.832 61.12-88.64 112.256-143.872H320a32 32 0 0 1 0-64h384a32 32 0 1 1 0 64H554.752c14.912 39.168 41.344 86.592 79.552 141.76 47.36 68.48 84.8 106.752 106.304 114.304a224 224 0 1 1-84.992 14.784c-22.656-22.912-47.04-53.76-73.92-92.608-38.848-56.128-67.008-105.792-84.352-149.312-55.296 58.24-94.528 107.52-117.76 147.2-23.168 39.744-41.088 88.768-53.568 147.072a224.064 224.064 0 1 1-64.96-1.6zM288 832a160 160 0 1 0 0-320 160 160 0 0 0 0 320zm448-64a160 160 0 1 0 0-320 160 160 0 0 0 0 320z"},null,-1),uoe=[loe];function coe(e,t,n,r,o,s){return k(),D("svg",ioe,uoe)}var doe=Se(aoe,[["render",coe],["__file","cherry.vue"]]),foe={name:"Chicken"},poe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},hoe=R("path",{fill:"currentColor",d:"M349.952 716.992 478.72 588.16a106.688 106.688 0 0 1-26.176-19.072 106.688 106.688 0 0 1-19.072-26.176L304.704 671.744c.768 3.072 1.472 6.144 2.048 9.216l2.048 31.936 31.872 1.984c3.136.64 6.208 1.28 9.28 2.112zm57.344 33.152a128 128 0 1 1-216.32 114.432l-1.92-32-32-1.92a128 128 0 1 1 114.432-216.32L416.64 469.248c-2.432-101.44 58.112-239.104 149.056-330.048 107.328-107.328 231.296-85.504 316.8 0 85.44 85.44 107.328 209.408 0 316.8-91.008 90.88-228.672 151.424-330.112 149.056L407.296 750.08zm90.496-226.304c49.536 49.536 233.344-7.04 339.392-113.088 78.208-78.208 63.232-163.072 0-226.304-63.168-63.232-148.032-78.208-226.24 0C504.896 290.496 448.32 474.368 497.792 523.84zM244.864 708.928a64 64 0 1 0-59.84 59.84l56.32-3.52 3.52-56.32zm8.064 127.68a64 64 0 1 0 59.84-59.84l-56.32 3.52-3.52 56.32z"},null,-1),moe=[hoe];function voe(e,t,n,r,o,s){return k(),D("svg",poe,moe)}var goe=Se(foe,[["render",voe],["__file","chicken.vue"]]),_oe={name:"ChromeFilled"},yoe={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024",style:{"enable-background":"new 0 0 1024 1024"},"xml:space":"preserve"},boe=R("path",{d:"M938.67 512.01c0-44.59-6.82-87.6-19.54-128H682.67a212.372 212.372 0 0 1 42.67 128c.06 38.71-10.45 76.7-30.42 109.87l-182.91 316.8c235.65-.01 426.66-191.02 426.66-426.67z",fill:"currentColor"},null,-1),woe=R("path",{d:"M576.79 401.63a127.92 127.92 0 0 0-63.56-17.6c-22.36-.22-44.39 5.43-63.89 16.38s-35.79 26.82-47.25 46.02a128.005 128.005 0 0 0-2.16 127.44l1.24 2.13a127.906 127.906 0 0 0 46.36 46.61 127.907 127.907 0 0 0 63.38 17.44c22.29.2 44.24-5.43 63.68-16.33a127.94 127.94 0 0 0 47.16-45.79v-.01l1.11-1.92a127.984 127.984 0 0 0 .29-127.46 127.957 127.957 0 0 0-46.36-46.91z",fill:"currentColor"},null,-1),Soe=R("path",{d:"M394.45 333.96A213.336 213.336 0 0 1 512 298.67h369.58A426.503 426.503 0 0 0 512 85.34a425.598 425.598 0 0 0-171.74 35.98 425.644 425.644 0 0 0-142.62 102.22l118.14 204.63a213.397 213.397 0 0 1 78.67-94.21zm117.56 604.72H512zm-97.25-236.73a213.284 213.284 0 0 1-89.54-86.81L142.48 298.6c-36.35 62.81-57.13 135.68-57.13 213.42 0 203.81 142.93 374.22 333.95 416.55h.04l118.19-204.71a213.315 213.315 0 0 1-122.77-21.91z",fill:"currentColor"},null,-1),Eoe=[boe,woe,Soe];function Coe(e,t,n,r,o,s){return k(),D("svg",yoe,Eoe)}var koe=Se(_oe,[["render",Coe],["__file","chrome-filled.vue"]]),Toe={name:"CircleCheckFilled"},$oe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},xoe=R("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336L456.192 600.384z"},null,-1),Ioe=[xoe];function Aoe(e,t,n,r,o,s){return k(),D("svg",$oe,Ioe)}var Ux=Se(Toe,[["render",Aoe],["__file","circle-check-filled.vue"]]),Moe={name:"CircleCheck"},Ooe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Roe=R("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"},null,-1),Poe=R("path",{fill:"currentColor",d:"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752l265.344-265.408z"},null,-1),Noe=[Roe,Poe];function Loe(e,t,n,r,o,s){return k(),D("svg",Ooe,Noe)}var Z0=Se(Moe,[["render",Loe],["__file","circle-check.vue"]]),Boe={name:"CircleCloseFilled"},Doe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},zoe=R("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z"},null,-1),Foe=[zoe];function Hoe(e,t,n,r,o,s){return k(),D("svg",Doe,Foe)}var em=Se(Boe,[["render",Hoe],["__file","circle-close-filled.vue"]]),Voe={name:"CircleClose"},joe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Uoe=R("path",{fill:"currentColor",d:"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248L466.752 512z"},null,-1),Woe=R("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"},null,-1),qoe=[Uoe,Woe];function Koe(e,t,n,r,o,s){return k(),D("svg",joe,qoe)}var fa=Se(Voe,[["render",Koe],["__file","circle-close.vue"]]),Goe={name:"CirclePlusFilled"},Yoe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Xoe=R("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-38.4 409.6H326.4a38.4 38.4 0 1 0 0 76.8h147.2v147.2a38.4 38.4 0 0 0 76.8 0V550.4h147.2a38.4 38.4 0 0 0 0-76.8H550.4V326.4a38.4 38.4 0 1 0-76.8 0v147.2z"},null,-1),Joe=[Xoe];function Qoe(e,t,n,r,o,s){return k(),D("svg",Yoe,Joe)}var Zoe=Se(Goe,[["render",Qoe],["__file","circle-plus-filled.vue"]]),ese={name:"CirclePlus"},tse={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},nse=R("path",{fill:"currentColor",d:"M352 480h320a32 32 0 1 1 0 64H352a32 32 0 0 1 0-64z"},null,-1),rse=R("path",{fill:"currentColor",d:"M480 672V352a32 32 0 1 1 64 0v320a32 32 0 0 1-64 0z"},null,-1),ose=R("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"},null,-1),sse=[nse,rse,ose];function ase(e,t,n,r,o,s){return k(),D("svg",tse,sse)}var ise=Se(ese,[["render",ase],["__file","circle-plus.vue"]]),lse={name:"Clock"},use={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},cse=R("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"},null,-1),dse=R("path",{fill:"currentColor",d:"M480 256a32 32 0 0 1 32 32v256a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32z"},null,-1),fse=R("path",{fill:"currentColor",d:"M480 512h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32z"},null,-1),pse=[cse,dse,fse];function hse(e,t,n,r,o,s){return k(),D("svg",use,pse)}var Q4=Se(lse,[["render",hse],["__file","clock.vue"]]),mse={name:"CloseBold"},vse={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},gse=R("path",{fill:"currentColor",d:"M195.2 195.2a64 64 0 0 1 90.496 0L512 421.504 738.304 195.2a64 64 0 0 1 90.496 90.496L602.496 512 828.8 738.304a64 64 0 0 1-90.496 90.496L512 602.496 285.696 828.8a64 64 0 0 1-90.496-90.496L421.504 512 195.2 285.696a64 64 0 0 1 0-90.496z"},null,-1),_se=[gse];function yse(e,t,n,r,o,s){return k(),D("svg",vse,_se)}var bse=Se(mse,[["render",yse],["__file","close-bold.vue"]]),wse={name:"Close"},Sse={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ese=R("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"},null,-1),Cse=[Ese];function kse(e,t,n,r,o,s){return k(),D("svg",Sse,Cse)}var wo=Se(wse,[["render",kse],["__file","close.vue"]]),Tse={name:"Cloudy"},$se={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},xse=R("path",{fill:"currentColor",d:"M598.4 831.872H328.192a256 256 0 0 1-34.496-510.528A352 352 0 1 1 598.4 831.872zm-271.36-64h272.256a288 288 0 1 0-248.512-417.664L335.04 381.44l-34.816 3.584a192 192 0 0 0 26.88 382.848z"},null,-1),Ise=[xse];function Ase(e,t,n,r,o,s){return k(),D("svg",$se,Ise)}var Mse=Se(Tse,[["render",Ase],["__file","cloudy.vue"]]),Ose={name:"CoffeeCup"},Rse={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Pse=R("path",{fill:"currentColor",d:"M768 192a192 192 0 1 1-8 383.808A256.128 256.128 0 0 1 512 768H320A256 256 0 0 1 64 512V160a32 32 0 0 1 32-32h640a32 32 0 0 1 32 32v32zm0 64v256a128 128 0 1 0 0-256zM96 832h640a32 32 0 1 1 0 64H96a32 32 0 1 1 0-64zm32-640v320a192 192 0 0 0 192 192h192a192 192 0 0 0 192-192V192H128z"},null,-1),Nse=[Pse];function Lse(e,t,n,r,o,s){return k(),D("svg",Rse,Nse)}var Bse=Se(Ose,[["render",Lse],["__file","coffee-cup.vue"]]),Dse={name:"Coffee"},zse={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Fse=R("path",{fill:"currentColor",d:"M822.592 192h14.272a32 32 0 0 1 31.616 26.752l21.312 128A32 32 0 0 1 858.24 384h-49.344l-39.04 546.304A32 32 0 0 1 737.92 960H285.824a32 32 0 0 1-32-29.696L214.912 384H165.76a32 32 0 0 1-31.552-37.248l21.312-128A32 32 0 0 1 187.136 192h14.016l-6.72-93.696A32 32 0 0 1 226.368 64h571.008a32 32 0 0 1 31.936 34.304L822.592 192zm-64.128 0 4.544-64H260.736l4.544 64h493.184zm-548.16 128H820.48l-10.688-64H214.208l-10.688 64h6.784zm68.736 64 36.544 512H708.16l36.544-512H279.04z"},null,-1),Hse=[Fse];function Vse(e,t,n,r,o,s){return k(),D("svg",zse,Hse)}var jse=Se(Dse,[["render",Vse],["__file","coffee.vue"]]),Use={name:"Coin"},Wse={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},qse=R("path",{fill:"currentColor",d:"m161.92 580.736 29.888 58.88C171.328 659.776 160 681.728 160 704c0 82.304 155.328 160 352 160s352-77.696 352-160c0-22.272-11.392-44.16-31.808-64.32l30.464-58.432C903.936 615.808 928 657.664 928 704c0 129.728-188.544 224-416 224S96 833.728 96 704c0-46.592 24.32-88.576 65.92-123.264z"},null,-1),Kse=R("path",{fill:"currentColor",d:"m161.92 388.736 29.888 58.88C171.328 467.84 160 489.792 160 512c0 82.304 155.328 160 352 160s352-77.696 352-160c0-22.272-11.392-44.16-31.808-64.32l30.464-58.432C903.936 423.808 928 465.664 928 512c0 129.728-188.544 224-416 224S96 641.728 96 512c0-46.592 24.32-88.576 65.92-123.264z"},null,-1),Gse=R("path",{fill:"currentColor",d:"M512 544c-227.456 0-416-94.272-416-224S284.544 96 512 96s416 94.272 416 224-188.544 224-416 224zm0-64c196.672 0 352-77.696 352-160S708.672 160 512 160s-352 77.696-352 160 155.328 160 352 160z"},null,-1),Yse=[qse,Kse,Gse];function Xse(e,t,n,r,o,s){return k(),D("svg",Wse,Yse)}var Jse=Se(Use,[["render",Xse],["__file","coin.vue"]]),Qse={name:"ColdDrink"},Zse={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},eae=R("path",{fill:"currentColor",d:"M768 64a192 192 0 1 1-69.952 370.88L480 725.376V896h96a32 32 0 1 1 0 64H320a32 32 0 1 1 0-64h96V725.376L76.8 273.536a64 64 0 0 1-12.8-38.4v-10.688a32 32 0 0 1 32-32h71.808l-65.536-83.84a32 32 0 0 1 50.432-39.424l96.256 123.264h337.728A192.064 192.064 0 0 1 768 64zM656.896 192.448H800a32 32 0 0 1 32 32v10.624a64 64 0 0 1-12.8 38.4l-80.448 107.2a128 128 0 1 0-81.92-188.16v-.064zm-357.888 64 129.472 165.76a32 32 0 0 1-50.432 39.36l-160.256-205.12H144l304 404.928 304-404.928H299.008z"},null,-1),tae=[eae];function nae(e,t,n,r,o,s){return k(),D("svg",Zse,tae)}var rae=Se(Qse,[["render",nae],["__file","cold-drink.vue"]]),oae={name:"CollectionTag"},sae={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},aae=R("path",{fill:"currentColor",d:"M256 128v698.88l196.032-156.864a96 96 0 0 1 119.936 0L768 826.816V128H256zm-32-64h576a32 32 0 0 1 32 32v797.44a32 32 0 0 1-51.968 24.96L531.968 720a32 32 0 0 0-39.936 0L243.968 918.4A32 32 0 0 1 192 893.44V96a32 32 0 0 1 32-32z"},null,-1),iae=[aae];function lae(e,t,n,r,o,s){return k(),D("svg",sae,iae)}var uae=Se(oae,[["render",lae],["__file","collection-tag.vue"]]),cae={name:"Collection"},dae={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},fae=R("path",{fill:"currentColor",d:"M192 736h640V128H256a64 64 0 0 0-64 64v544zm64-672h608a32 32 0 0 1 32 32v672a32 32 0 0 1-32 32H160l-32 57.536V192A128 128 0 0 1 256 64z"},null,-1),pae=R("path",{fill:"currentColor",d:"M240 800a48 48 0 1 0 0 96h592v-96H240zm0-64h656v160a64 64 0 0 1-64 64H240a112 112 0 0 1 0-224zm144-608v250.88l96-76.8 96 76.8V128H384zm-64-64h320v381.44a32 32 0 0 1-51.968 24.96L480 384l-108.032 86.4A32 32 0 0 1 320 445.44V64z"},null,-1),hae=[fae,pae];function mae(e,t,n,r,o,s){return k(),D("svg",dae,hae)}var vae=Se(cae,[["render",mae],["__file","collection.vue"]]),gae={name:"Comment"},_ae={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},yae=R("path",{fill:"currentColor",d:"M736 504a56 56 0 1 1 0-112 56 56 0 0 1 0 112zm-224 0a56 56 0 1 1 0-112 56 56 0 0 1 0 112zm-224 0a56 56 0 1 1 0-112 56 56 0 0 1 0 112zM128 128v640h192v160l224-160h352V128H128z"},null,-1),bae=[yae];function wae(e,t,n,r,o,s){return k(),D("svg",_ae,bae)}var Sae=Se(gae,[["render",wae],["__file","comment.vue"]]),Eae={name:"Compass"},Cae={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},kae=R("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"},null,-1),Tae=R("path",{fill:"currentColor",d:"M725.888 315.008C676.48 428.672 624 513.28 568.576 568.64c-55.424 55.424-139.968 107.904-253.568 157.312a12.8 12.8 0 0 1-16.896-16.832c49.536-113.728 102.016-198.272 157.312-253.632 55.36-55.296 139.904-107.776 253.632-157.312a12.8 12.8 0 0 1 16.832 16.832z"},null,-1),$ae=[kae,Tae];function xae(e,t,n,r,o,s){return k(),D("svg",Cae,$ae)}var Iae=Se(Eae,[["render",xae],["__file","compass.vue"]]),Aae={name:"Connection"},Mae={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Oae=R("path",{fill:"currentColor",d:"M640 384v64H448a128 128 0 0 0-128 128v128a128 128 0 0 0 128 128h320a128 128 0 0 0 128-128V576a128 128 0 0 0-64-110.848V394.88c74.56 26.368 128 97.472 128 181.056v128a192 192 0 0 1-192 192H448a192 192 0 0 1-192-192V576a192 192 0 0 1 192-192h192z"},null,-1),Rae=R("path",{fill:"currentColor",d:"M384 640v-64h192a128 128 0 0 0 128-128V320a128 128 0 0 0-128-128H256a128 128 0 0 0-128 128v128a128 128 0 0 0 64 110.848v70.272A192.064 192.064 0 0 1 64 448V320a192 192 0 0 1 192-192h320a192 192 0 0 1 192 192v128a192 192 0 0 1-192 192H384z"},null,-1),Pae=[Oae,Rae];function Nae(e,t,n,r,o,s){return k(),D("svg",Mae,Pae)}var Lae=Se(Aae,[["render",Nae],["__file","connection.vue"]]),Bae={name:"Coordinate"},Dae={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},zae=R("path",{fill:"currentColor",d:"M480 512h64v320h-64z"},null,-1),Fae=R("path",{fill:"currentColor",d:"M192 896h640a64 64 0 0 0-64-64H256a64 64 0 0 0-64 64zm64-128h512a128 128 0 0 1 128 128v64H128v-64a128 128 0 0 1 128-128zm256-256a192 192 0 1 0 0-384 192 192 0 0 0 0 384zm0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512z"},null,-1),Hae=[zae,Fae];function Vae(e,t,n,r,o,s){return k(),D("svg",Dae,Hae)}var jae=Se(Bae,[["render",Vae],["__file","coordinate.vue"]]),Uae={name:"CopyDocument"},Wae={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},qae=R("path",{fill:"currentColor",d:"M768 832a128 128 0 0 1-128 128H192A128 128 0 0 1 64 832V384a128 128 0 0 1 128-128v64a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64h64z"},null,-1),Kae=R("path",{fill:"currentColor",d:"M384 128a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64V192a64 64 0 0 0-64-64H384zm0-64h448a128 128 0 0 1 128 128v448a128 128 0 0 1-128 128H384a128 128 0 0 1-128-128V192A128 128 0 0 1 384 64z"},null,-1),Gae=[qae,Kae];function Yae(e,t,n,r,o,s){return k(),D("svg",Wae,Gae)}var Xae=Se(Uae,[["render",Yae],["__file","copy-document.vue"]]),Jae={name:"Cpu"},Qae={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Zae=R("path",{fill:"currentColor",d:"M320 256a64 64 0 0 0-64 64v384a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V320a64 64 0 0 0-64-64H320zm0-64h384a128 128 0 0 1 128 128v384a128 128 0 0 1-128 128H320a128 128 0 0 1-128-128V320a128 128 0 0 1 128-128z"},null,-1),eie=R("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v128h-64V96a32 32 0 0 1 32-32zm160 0a32 32 0 0 1 32 32v128h-64V96a32 32 0 0 1 32-32zm-320 0a32 32 0 0 1 32 32v128h-64V96a32 32 0 0 1 32-32zm160 896a32 32 0 0 1-32-32V800h64v128a32 32 0 0 1-32 32zm160 0a32 32 0 0 1-32-32V800h64v128a32 32 0 0 1-32 32zm-320 0a32 32 0 0 1-32-32V800h64v128a32 32 0 0 1-32 32zM64 512a32 32 0 0 1 32-32h128v64H96a32 32 0 0 1-32-32zm0-160a32 32 0 0 1 32-32h128v64H96a32 32 0 0 1-32-32zm0 320a32 32 0 0 1 32-32h128v64H96a32 32 0 0 1-32-32zm896-160a32 32 0 0 1-32 32H800v-64h128a32 32 0 0 1 32 32zm0-160a32 32 0 0 1-32 32H800v-64h128a32 32 0 0 1 32 32zm0 320a32 32 0 0 1-32 32H800v-64h128a32 32 0 0 1 32 32z"},null,-1),tie=[Zae,eie];function nie(e,t,n,r,o,s){return k(),D("svg",Qae,tie)}var rie=Se(Jae,[["render",nie],["__file","cpu.vue"]]),oie={name:"CreditCard"},sie={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},aie=R("path",{fill:"currentColor",d:"M896 324.096c0-42.368-2.496-55.296-9.536-68.48a52.352 52.352 0 0 0-22.144-22.08c-13.12-7.04-26.048-9.536-68.416-9.536H228.096c-42.368 0-55.296 2.496-68.48 9.536a52.352 52.352 0 0 0-22.08 22.144c-7.04 13.12-9.536 26.048-9.536 68.416v375.808c0 42.368 2.496 55.296 9.536 68.48a52.352 52.352 0 0 0 22.144 22.08c13.12 7.04 26.048 9.536 68.416 9.536h567.808c42.368 0 55.296-2.496 68.48-9.536a52.352 52.352 0 0 0 22.08-22.144c7.04-13.12 9.536-26.048 9.536-68.416V324.096zm64 0v375.808c0 57.088-5.952 77.76-17.088 98.56-11.136 20.928-27.52 37.312-48.384 48.448-20.864 11.136-41.6 17.088-98.56 17.088H228.032c-57.088 0-77.76-5.952-98.56-17.088a116.288 116.288 0 0 1-48.448-48.384c-11.136-20.864-17.088-41.6-17.088-98.56V324.032c0-57.088 5.952-77.76 17.088-98.56 11.136-20.928 27.52-37.312 48.384-48.448 20.864-11.136 41.6-17.088 98.56-17.088H795.84c57.088 0 77.76 5.952 98.56 17.088 20.928 11.136 37.312 27.52 48.448 48.384 11.136 20.864 17.088 41.6 17.088 98.56z"},null,-1),iie=R("path",{fill:"currentColor",d:"M64 320h896v64H64v-64zm0 128h896v64H64v-64zm128 192h256v64H192z"},null,-1),lie=[aie,iie];function uie(e,t,n,r,o,s){return k(),D("svg",sie,lie)}var cie=Se(oie,[["render",uie],["__file","credit-card.vue"]]),die={name:"Crop"},fie={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},pie=R("path",{fill:"currentColor",d:"M256 768h672a32 32 0 1 1 0 64H224a32 32 0 0 1-32-32V96a32 32 0 0 1 64 0v672z"},null,-1),hie=R("path",{fill:"currentColor",d:"M832 224v704a32 32 0 1 1-64 0V256H96a32 32 0 0 1 0-64h704a32 32 0 0 1 32 32z"},null,-1),mie=[pie,hie];function vie(e,t,n,r,o,s){return k(),D("svg",fie,mie)}var gie=Se(die,[["render",vie],["__file","crop.vue"]]),_ie={name:"DArrowLeft"},yie={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},bie=R("path",{fill:"currentColor",d:"M529.408 149.376a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L259.264 511.936l311.872 319.936a30.592 30.592 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L197.76 534.272a32 32 0 0 1 0-44.672l331.648-340.224zm256 0a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L515.264 511.936l311.872 319.936a30.592 30.592 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L453.76 534.272a32 32 0 0 1 0-44.672l331.648-340.224z"},null,-1),wie=[bie];function Sie(e,t,n,r,o,s){return k(),D("svg",yie,wie)}var tl=Se(_ie,[["render",Sie],["__file","d-arrow-left.vue"]]),Eie={name:"DArrowRight"},Cie={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},kie=R("path",{fill:"currentColor",d:"M452.864 149.312a29.12 29.12 0 0 1 41.728.064L826.24 489.664a32 32 0 0 1 0 44.672L494.592 874.624a29.12 29.12 0 0 1-41.728 0 30.592 30.592 0 0 1 0-42.752L764.736 512 452.864 192a30.592 30.592 0 0 1 0-42.688zm-256 0a29.12 29.12 0 0 1 41.728.064L570.24 489.664a32 32 0 0 1 0 44.672L238.592 874.624a29.12 29.12 0 0 1-41.728 0 30.592 30.592 0 0 1 0-42.752L508.736 512 196.864 192a30.592 30.592 0 0 1 0-42.688z"},null,-1),Tie=[kie];function $ie(e,t,n,r,o,s){return k(),D("svg",Cie,Tie)}var nl=Se(Eie,[["render",$ie],["__file","d-arrow-right.vue"]]),xie={name:"DCaret"},Iie={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Aie=R("path",{fill:"currentColor",d:"m512 128 288 320H224l288-320zM224 576h576L512 896 224 576z"},null,-1),Mie=[Aie];function Oie(e,t,n,r,o,s){return k(),D("svg",Iie,Mie)}var Rie=Se(xie,[["render",Oie],["__file","d-caret.vue"]]),Pie={name:"DataAnalysis"},Nie={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Lie=R("path",{fill:"currentColor",d:"m665.216 768 110.848 192h-73.856L591.36 768H433.024L322.176 960H248.32l110.848-192H160a32 32 0 0 1-32-32V192H64a32 32 0 0 1 0-64h896a32 32 0 1 1 0 64h-64v544a32 32 0 0 1-32 32H665.216zM832 192H192v512h640V192zM352 448a32 32 0 0 1 32 32v64a32 32 0 0 1-64 0v-64a32 32 0 0 1 32-32zm160-64a32 32 0 0 1 32 32v128a32 32 0 0 1-64 0V416a32 32 0 0 1 32-32zm160-64a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V352a32 32 0 0 1 32-32z"},null,-1),Bie=[Lie];function Die(e,t,n,r,o,s){return k(),D("svg",Nie,Bie)}var zie=Se(Pie,[["render",Die],["__file","data-analysis.vue"]]),Fie={name:"DataBoard"},Hie={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Vie=R("path",{fill:"currentColor",d:"M32 128h960v64H32z"},null,-1),jie=R("path",{fill:"currentColor",d:"M192 192v512h640V192H192zm-64-64h768v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V128z"},null,-1),Uie=R("path",{fill:"currentColor",d:"M322.176 960H248.32l144.64-250.56 55.424 32L322.176 960zm453.888 0h-73.856L576 741.44l55.424-32L776.064 960z"},null,-1),Wie=[Vie,jie,Uie];function qie(e,t,n,r,o,s){return k(),D("svg",Hie,Wie)}var Kie=Se(Fie,[["render",qie],["__file","data-board.vue"]]),Gie={name:"DataLine"},Yie={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Xie=R("path",{fill:"currentColor",d:"M359.168 768H160a32 32 0 0 1-32-32V192H64a32 32 0 0 1 0-64h896a32 32 0 1 1 0 64h-64v544a32 32 0 0 1-32 32H665.216l110.848 192h-73.856L591.36 768H433.024L322.176 960H248.32l110.848-192zM832 192H192v512h640V192zM342.656 534.656a32 32 0 1 1-45.312-45.312L444.992 341.76l125.44 94.08L679.04 300.032a32 32 0 1 1 49.92 39.936L581.632 524.224 451.008 426.24 342.656 534.592z"},null,-1),Jie=[Xie];function Qie(e,t,n,r,o,s){return k(),D("svg",Yie,Jie)}var Zie=Se(Gie,[["render",Qie],["__file","data-line.vue"]]),ele={name:"DeleteFilled"},tle={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},nle=R("path",{fill:"currentColor",d:"M352 192V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64H96a32 32 0 0 1 0-64h256zm64 0h192v-64H416v64zM192 960a32 32 0 0 1-32-32V256h704v672a32 32 0 0 1-32 32H192zm224-192a32 32 0 0 0 32-32V416a32 32 0 0 0-64 0v320a32 32 0 0 0 32 32zm192 0a32 32 0 0 0 32-32V416a32 32 0 0 0-64 0v320a32 32 0 0 0 32 32z"},null,-1),rle=[nle];function ole(e,t,n,r,o,s){return k(),D("svg",tle,rle)}var sle=Se(ele,[["render",ole],["__file","delete-filled.vue"]]),ale={name:"DeleteLocation"},ile={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},lle=R("path",{fill:"currentColor",d:"M288 896h448q32 0 32 32t-32 32H288q-32 0-32-32t32-32z"},null,-1),ule=R("path",{fill:"currentColor",d:"M800 416a288 288 0 1 0-576 0c0 118.144 94.528 272.128 288 456.576C705.472 688.128 800 534.144 800 416zM512 960C277.312 746.688 160 565.312 160 416a352 352 0 0 1 704 0c0 149.312-117.312 330.688-352 544z"},null,-1),cle=R("path",{fill:"currentColor",d:"M384 384h256q32 0 32 32t-32 32H384q-32 0-32-32t32-32z"},null,-1),dle=[lle,ule,cle];function fle(e,t,n,r,o,s){return k(),D("svg",ile,dle)}var ple=Se(ale,[["render",fle],["__file","delete-location.vue"]]),hle={name:"Delete"},mle={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},vle=R("path",{fill:"currentColor",d:"M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32V256zm448-64v-64H416v64h192zM224 896h576V256H224v640zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32zm192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32z"},null,-1),gle=[vle];function _le(e,t,n,r,o,s){return k(),D("svg",mle,gle)}var Wx=Se(hle,[["render",_le],["__file","delete.vue"]]),yle={name:"Dessert"},ble={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},wle=R("path",{fill:"currentColor",d:"M128 416v-48a144 144 0 0 1 168.64-141.888 224.128 224.128 0 0 1 430.72 0A144 144 0 0 1 896 368v48a384 384 0 0 1-352 382.72V896h-64v-97.28A384 384 0 0 1 128 416zm287.104-32.064h193.792a143.808 143.808 0 0 1 58.88-132.736 160.064 160.064 0 0 0-311.552 0 143.808 143.808 0 0 1 58.88 132.8zm-72.896 0a72 72 0 1 0-140.48 0h140.48zm339.584 0h140.416a72 72 0 1 0-140.48 0zM512 736a320 320 0 0 0 318.4-288.064H193.6A320 320 0 0 0 512 736zM384 896.064h256a32 32 0 1 1 0 64H384a32 32 0 1 1 0-64z"},null,-1),Sle=[wle];function Ele(e,t,n,r,o,s){return k(),D("svg",ble,Sle)}var Cle=Se(yle,[["render",Ele],["__file","dessert.vue"]]),kle={name:"Discount"},Tle={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},$le=R("path",{fill:"currentColor",d:"M224 704h576V318.336L552.512 115.84a64 64 0 0 0-81.024 0L224 318.336V704zm0 64v128h576V768H224zM593.024 66.304l259.2 212.096A32 32 0 0 1 864 303.168V928a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32V303.168a32 32 0 0 1 11.712-24.768l259.2-212.096a128 128 0 0 1 162.112 0z"},null,-1),xle=R("path",{fill:"currentColor",d:"M512 448a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256z"},null,-1),Ile=[$le,xle];function Ale(e,t,n,r,o,s){return k(),D("svg",Tle,Ile)}var Mle=Se(kle,[["render",Ale],["__file","discount.vue"]]),Ole={name:"DishDot"},Rle={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ple=R("path",{fill:"currentColor",d:"m384.064 274.56.064-50.688A128 128 0 0 1 512.128 96c70.528 0 127.68 57.152 127.68 127.68v50.752A448.192 448.192 0 0 1 955.392 768H68.544A448.192 448.192 0 0 1 384 274.56zM96 832h832a32 32 0 1 1 0 64H96a32 32 0 1 1 0-64zm32-128h768a384 384 0 1 0-768 0zm447.808-448v-32.32a63.68 63.68 0 0 0-63.68-63.68 64 64 0 0 0-64 63.936V256h127.68z"},null,-1),Nle=[Ple];function Lle(e,t,n,r,o,s){return k(),D("svg",Rle,Nle)}var Ble=Se(Ole,[["render",Lle],["__file","dish-dot.vue"]]),Dle={name:"Dish"},zle={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Fle=R("path",{fill:"currentColor",d:"M480 257.152V192h-96a32 32 0 0 1 0-64h256a32 32 0 1 1 0 64h-96v65.152A448 448 0 0 1 955.52 768H68.48A448 448 0 0 1 480 257.152zM128 704h768a384 384 0 1 0-768 0zM96 832h832a32 32 0 1 1 0 64H96a32 32 0 1 1 0-64z"},null,-1),Hle=[Fle];function Vle(e,t,n,r,o,s){return k(),D("svg",zle,Hle)}var jle=Se(Dle,[["render",Vle],["__file","dish.vue"]]),Ule={name:"DocumentAdd"},Wle={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},qle=R("path",{fill:"currentColor",d:"M832 384H576V128H192v768h640V384zm-26.496-64L640 154.496V320h165.504zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm320 512V448h64v128h128v64H544v128h-64V640H352v-64h128z"},null,-1),Kle=[qle];function Gle(e,t,n,r,o,s){return k(),D("svg",Wle,Kle)}var Yle=Se(Ule,[["render",Gle],["__file","document-add.vue"]]),Xle={name:"DocumentChecked"},Jle={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Qle=R("path",{fill:"currentColor",d:"M805.504 320 640 154.496V320h165.504zM832 384H576V128H192v768h640V384zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm318.4 582.144 180.992-180.992L704.64 510.4 478.4 736.64 320 578.304l45.248-45.312L478.4 646.144z"},null,-1),Zle=[Qle];function eue(e,t,n,r,o,s){return k(),D("svg",Jle,Zle)}var tue=Se(Xle,[["render",eue],["__file","document-checked.vue"]]),nue={name:"DocumentCopy"},rue={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},oue=R("path",{fill:"currentColor",d:"M128 320v576h576V320H128zm-32-64h640a32 32 0 0 1 32 32v640a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V288a32 32 0 0 1 32-32zM960 96v704a32 32 0 0 1-32 32h-96v-64h64V128H384v64h-64V96a32 32 0 0 1 32-32h576a32 32 0 0 1 32 32zM256 672h320v64H256v-64zm0-192h320v64H256v-64z"},null,-1),sue=[oue];function aue(e,t,n,r,o,s){return k(),D("svg",rue,sue)}var iue=Se(nue,[["render",aue],["__file","document-copy.vue"]]),lue={name:"DocumentDelete"},uue={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},cue=R("path",{fill:"currentColor",d:"M805.504 320 640 154.496V320h165.504zM832 384H576V128H192v768h640V384zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm308.992 546.304-90.496-90.624 45.248-45.248 90.56 90.496 90.496-90.432 45.248 45.248-90.496 90.56 90.496 90.496-45.248 45.248-90.496-90.496-90.56 90.496-45.248-45.248 90.496-90.496z"},null,-1),due=[cue];function fue(e,t,n,r,o,s){return k(),D("svg",uue,due)}var pue=Se(lue,[["render",fue],["__file","document-delete.vue"]]),hue={name:"DocumentRemove"},mue={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},vue=R("path",{fill:"currentColor",d:"M805.504 320 640 154.496V320h165.504zM832 384H576V128H192v768h640V384zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm192 512h320v64H352v-64z"},null,-1),gue=[vue];function _ue(e,t,n,r,o,s){return k(),D("svg",mue,gue)}var yue=Se(hue,[["render",_ue],["__file","document-remove.vue"]]),bue={name:"Document"},wue={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Sue=R("path",{fill:"currentColor",d:"M832 384H576V128H192v768h640V384zm-26.496-64L640 154.496V320h165.504zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm160 448h384v64H320v-64zm0-192h160v64H320v-64zm0 384h384v64H320v-64z"},null,-1),Eue=[Sue];function Cue(e,t,n,r,o,s){return k(),D("svg",wue,Eue)}var qx=Se(bue,[["render",Cue],["__file","document.vue"]]),kue={name:"Download"},Tue={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},$ue=R("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64zm384-253.696 236.288-236.352 45.248 45.248L508.8 704 192 387.2l45.248-45.248L480 584.704V128h64v450.304z"},null,-1),xue=[$ue];function Iue(e,t,n,r,o,s){return k(),D("svg",Tue,xue)}var Aue=Se(kue,[["render",Iue],["__file","download.vue"]]),Mue={name:"Drizzling"},Oue={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Rue=R("path",{fill:"currentColor",d:"m739.328 291.328-35.2-6.592-12.8-33.408a192.064 192.064 0 0 0-365.952 23.232l-9.92 40.896-41.472 7.04a176.32 176.32 0 0 0-146.24 173.568c0 97.28 78.72 175.936 175.808 175.936h400a192 192 0 0 0 35.776-380.672zM959.552 480a256 256 0 0 1-256 256h-400A239.808 239.808 0 0 1 63.744 496.192a240.32 240.32 0 0 1 199.488-236.8 256.128 256.128 0 0 1 487.872-30.976A256.064 256.064 0 0 1 959.552 480zM288 800h64v64h-64v-64zm192 0h64v64h-64v-64zm-96 96h64v64h-64v-64zm192 0h64v64h-64v-64zm96-96h64v64h-64v-64z"},null,-1),Pue=[Rue];function Nue(e,t,n,r,o,s){return k(),D("svg",Oue,Pue)}var Lue=Se(Mue,[["render",Nue],["__file","drizzling.vue"]]),Bue={name:"EditPen"},Due={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},zue=R("path",{d:"m199.04 672.64 193.984 112 224-387.968-193.92-112-224 388.032zm-23.872 60.16 32.896 148.288 144.896-45.696L175.168 732.8zM455.04 229.248l193.92 112 56.704-98.112-193.984-112-56.64 98.112zM104.32 708.8l384-665.024 304.768 175.936L409.152 884.8h.064l-248.448 78.336L104.32 708.8zm384 254.272v-64h448v64h-448z",fill:"currentColor"},null,-1),Fue=[zue];function Hue(e,t,n,r,o,s){return k(),D("svg",Due,Fue)}var Vue=Se(Bue,[["render",Hue],["__file","edit-pen.vue"]]),jue={name:"Edit"},Uue={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Wue=R("path",{fill:"currentColor",d:"M832 512a32 32 0 1 1 64 0v352a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h352a32 32 0 0 1 0 64H192v640h640V512z"},null,-1),que=R("path",{fill:"currentColor",d:"m469.952 554.24 52.8-7.552L847.104 222.4a32 32 0 1 0-45.248-45.248L477.44 501.44l-7.552 52.8zm422.4-422.4a96 96 0 0 1 0 135.808l-331.84 331.84a32 32 0 0 1-18.112 9.088L436.8 623.68a32 32 0 0 1-36.224-36.224l15.104-105.6a32 32 0 0 1 9.024-18.112l331.904-331.84a96 96 0 0 1 135.744 0z"},null,-1),Kue=[Wue,que];function Gue(e,t,n,r,o,s){return k(),D("svg",Uue,Kue)}var Yue=Se(jue,[["render",Gue],["__file","edit.vue"]]),Xue={name:"ElemeFilled"},Jue={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Que=R("path",{fill:"currentColor",d:"M176 64h672c61.824 0 112 50.176 112 112v672a112 112 0 0 1-112 112H176A112 112 0 0 1 64 848V176c0-61.824 50.176-112 112-112zm150.528 173.568c-152.896 99.968-196.544 304.064-97.408 456.96a330.688 330.688 0 0 0 456.96 96.64c9.216-5.888 17.6-11.776 25.152-18.56a18.24 18.24 0 0 0 4.224-24.32L700.352 724.8a47.552 47.552 0 0 0-65.536-14.272A234.56 234.56 0 0 1 310.592 641.6C240 533.248 271.104 387.968 379.456 316.48a234.304 234.304 0 0 1 276.352 15.168c1.664.832 2.56 2.56 3.392 4.224 5.888 8.384 3.328 19.328-5.12 25.216L456.832 489.6a47.552 47.552 0 0 0-14.336 65.472l16 24.384c5.888 8.384 16.768 10.88 25.216 5.056l308.224-199.936a19.584 19.584 0 0 0 6.72-23.488v-.896c-4.992-9.216-10.048-17.6-15.104-26.88-99.968-151.168-304.064-194.88-456.96-95.744zM786.88 504.704l-62.208 40.32c-8.32 5.888-10.88 16.768-4.992 25.216L760 632.32c5.888 8.448 16.768 11.008 25.152 5.12l31.104-20.16a55.36 55.36 0 0 0 16-76.48l-20.224-31.04a19.52 19.52 0 0 0-25.152-5.12z"},null,-1),Zue=[Que];function ece(e,t,n,r,o,s){return k(),D("svg",Jue,Zue)}var tce=Se(Xue,[["render",ece],["__file","eleme-filled.vue"]]),nce={name:"Eleme"},rce={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},oce=R("path",{fill:"currentColor",d:"M300.032 188.8c174.72-113.28 408-63.36 522.24 109.44 5.76 10.56 11.52 20.16 17.28 30.72v.96a22.4 22.4 0 0 1-7.68 26.88l-352.32 228.48c-9.6 6.72-22.08 3.84-28.8-5.76l-18.24-27.84a54.336 54.336 0 0 1 16.32-74.88l225.6-146.88c9.6-6.72 12.48-19.2 5.76-28.8-.96-1.92-1.92-3.84-3.84-4.8a267.84 267.84 0 0 0-315.84-17.28c-123.84 81.6-159.36 247.68-78.72 371.52a268.096 268.096 0 0 0 370.56 78.72 54.336 54.336 0 0 1 74.88 16.32l17.28 26.88c5.76 9.6 3.84 21.12-4.8 27.84-8.64 7.68-18.24 14.4-28.8 21.12a377.92 377.92 0 0 1-522.24-110.4c-113.28-174.72-63.36-408 111.36-522.24zm526.08 305.28a22.336 22.336 0 0 1 28.8 5.76l23.04 35.52a63.232 63.232 0 0 1-18.24 87.36l-35.52 23.04c-9.6 6.72-22.08 3.84-28.8-5.76l-46.08-71.04c-6.72-9.6-3.84-22.08 5.76-28.8l71.04-46.08z"},null,-1),sce=[oce];function ace(e,t,n,r,o,s){return k(),D("svg",rce,sce)}var ice=Se(nce,[["render",ace],["__file","eleme.vue"]]),lce={name:"ElementPlus"},uce={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},cce=R("path",{d:"M839.7 734.7c0 33.3-17.9 41-17.9 41S519.7 949.8 499.2 960c-10.2 5.1-20.5 5.1-30.7 0 0 0-314.9-184.3-325.1-192-5.1-5.1-10.2-12.8-12.8-20.5V368.6c0-17.9 20.5-28.2 20.5-28.2L466 158.6c12.8-5.1 25.6-5.1 38.4 0 0 0 279 161.3 309.8 179.2 17.9 7.7 28.2 25.6 25.6 46.1-.1-5-.1 317.5-.1 350.8zM714.2 371.2c-64-35.8-217.6-125.4-217.6-125.4-7.7-5.1-20.5-5.1-30.7 0L217.6 389.1s-17.9 10.2-17.9 23v297c0 5.1 5.1 12.8 7.7 17.9 7.7 5.1 256 148.5 256 148.5 7.7 5.1 17.9 5.1 25.6 0 15.4-7.7 250.9-145.9 250.9-145.9s12.8-5.1 12.8-30.7v-74.2l-276.5 169v-64c0-17.9 7.7-30.7 20.5-46.1L745 535c5.1-7.7 10.2-20.5 10.2-30.7v-66.6l-279 169v-69.1c0-15.4 5.1-30.7 17.9-38.4l220.1-128zM919 135.7c0-5.1-5.1-7.7-7.7-7.7h-58.9V66.6c0-5.1-5.1-5.1-10.2-5.1l-30.7 5.1c-5.1 0-5.1 2.6-5.1 5.1V128h-56.3c-5.1 0-5.1 5.1-7.7 5.1v38.4h69.1v64c0 5.1 5.1 5.1 10.2 5.1l30.7-5.1c5.1 0 5.1-2.6 5.1-5.1v-56.3h64l-2.5-38.4z",fill:"currentColor"},null,-1),dce=[cce];function fce(e,t,n,r,o,s){return k(),D("svg",uce,dce)}var pce=Se(lce,[["render",fce],["__file","element-plus.vue"]]),hce={name:"Expand"},mce={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},vce=R("path",{fill:"currentColor",d:"M128 192h768v128H128V192zm0 256h512v128H128V448zm0 256h768v128H128V704zm576-352 192 160-192 128V352z"},null,-1),gce=[vce];function _ce(e,t,n,r,o,s){return k(),D("svg",mce,gce)}var yce=Se(hce,[["render",_ce],["__file","expand.vue"]]),bce={name:"Failed"},wce={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Sce=R("path",{fill:"currentColor",d:"m557.248 608 135.744-135.744-45.248-45.248-135.68 135.744-135.808-135.68-45.248 45.184L466.752 608l-135.68 135.68 45.184 45.312L512 653.248l135.744 135.744 45.248-45.248L557.312 608zM704 192h160v736H160V192h160v64h384v-64zm-320 0V96h256v96H384z"},null,-1),Ece=[Sce];function Cce(e,t,n,r,o,s){return k(),D("svg",wce,Ece)}var kce=Se(bce,[["render",Cce],["__file","failed.vue"]]),Tce={name:"Female"},$ce={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},xce=R("path",{fill:"currentColor",d:"M512 640a256 256 0 1 0 0-512 256 256 0 0 0 0 512zm0 64a320 320 0 1 1 0-640 320 320 0 0 1 0 640z"},null,-1),Ice=R("path",{fill:"currentColor",d:"M512 640q32 0 32 32v256q0 32-32 32t-32-32V672q0-32 32-32z"},null,-1),Ace=R("path",{fill:"currentColor",d:"M352 800h320q32 0 32 32t-32 32H352q-32 0-32-32t32-32z"},null,-1),Mce=[xce,Ice,Ace];function Oce(e,t,n,r,o,s){return k(),D("svg",$ce,Mce)}var Rce=Se(Tce,[["render",Oce],["__file","female.vue"]]),Pce={name:"Files"},Nce={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Lce=R("path",{fill:"currentColor",d:"M128 384v448h768V384H128zm-32-64h832a32 32 0 0 1 32 32v512a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V352a32 32 0 0 1 32-32zm64-128h704v64H160zm96-128h512v64H256z"},null,-1),Bce=[Lce];function Dce(e,t,n,r,o,s){return k(),D("svg",Nce,Bce)}var zce=Se(Pce,[["render",Dce],["__file","files.vue"]]),Fce={name:"Film"},Hce={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Vce=R("path",{fill:"currentColor",d:"M160 160v704h704V160H160zm-32-64h768a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H128a32 32 0 0 1-32-32V128a32 32 0 0 1 32-32z"},null,-1),jce=R("path",{fill:"currentColor",d:"M320 288V128h64v352h256V128h64v160h160v64H704v128h160v64H704v128h160v64H704v160h-64V544H384v352h-64V736H128v-64h192V544H128v-64h192V352H128v-64h192z"},null,-1),Uce=[Vce,jce];function Wce(e,t,n,r,o,s){return k(),D("svg",Hce,Uce)}var qce=Se(Fce,[["render",Wce],["__file","film.vue"]]),Kce={name:"Filter"},Gce={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Yce=R("path",{fill:"currentColor",d:"M384 523.392V928a32 32 0 0 0 46.336 28.608l192-96A32 32 0 0 0 640 832V523.392l280.768-343.104a32 32 0 1 0-49.536-40.576l-288 352A32 32 0 0 0 576 512v300.224l-128 64V512a32 32 0 0 0-7.232-20.288L195.52 192H704a32 32 0 1 0 0-64H128a32 32 0 0 0-24.768 52.288L384 523.392z"},null,-1),Xce=[Yce];function Jce(e,t,n,r,o,s){return k(),D("svg",Gce,Xce)}var Qce=Se(Kce,[["render",Jce],["__file","filter.vue"]]),Zce={name:"Finished"},ede={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},tde=R("path",{fill:"currentColor",d:"M280.768 753.728 691.456 167.04a32 32 0 1 1 52.416 36.672L314.24 817.472a32 32 0 0 1-45.44 7.296l-230.4-172.8a32 32 0 0 1 38.4-51.2l203.968 152.96zM736 448a32 32 0 1 1 0-64h192a32 32 0 1 1 0 64H736zM608 640a32 32 0 0 1 0-64h319.936a32 32 0 1 1 0 64H608zM480 832a32 32 0 1 1 0-64h447.936a32 32 0 1 1 0 64H480z"},null,-1),nde=[tde];function rde(e,t,n,r,o,s){return k(),D("svg",ede,nde)}var ode=Se(Zce,[["render",rde],["__file","finished.vue"]]),sde={name:"FirstAidKit"},ade={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},ide=R("path",{fill:"currentColor",d:"M192 256a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V320a64 64 0 0 0-64-64H192zm0-64h640a128 128 0 0 1 128 128v448a128 128 0 0 1-128 128H192A128 128 0 0 1 64 768V320a128 128 0 0 1 128-128z"},null,-1),lde=R("path",{fill:"currentColor",d:"M544 512h96a32 32 0 0 1 0 64h-96v96a32 32 0 0 1-64 0v-96h-96a32 32 0 0 1 0-64h96v-96a32 32 0 0 1 64 0v96zM352 128v64h320v-64H352zm-32-64h384a32 32 0 0 1 32 32v128a32 32 0 0 1-32 32H320a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32z"},null,-1),ude=[ide,lde];function cde(e,t,n,r,o,s){return k(),D("svg",ade,ude)}var dde=Se(sde,[["render",cde],["__file","first-aid-kit.vue"]]),fde={name:"Flag"},pde={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},hde=R("path",{fill:"currentColor",d:"M288 128h608L736 384l160 256H288v320h-96V64h96v64z"},null,-1),mde=[hde];function vde(e,t,n,r,o,s){return k(),D("svg",pde,mde)}var gde=Se(fde,[["render",vde],["__file","flag.vue"]]),_de={name:"Fold"},yde={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},bde=R("path",{fill:"currentColor",d:"M896 192H128v128h768V192zm0 256H384v128h512V448zm0 256H128v128h768V704zM320 384 128 512l192 128V384z"},null,-1),wde=[bde];function Sde(e,t,n,r,o,s){return k(),D("svg",yde,wde)}var Ede=Se(_de,[["render",Sde],["__file","fold.vue"]]),Cde={name:"FolderAdd"},kde={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Tde=R("path",{fill:"currentColor",d:"M128 192v640h768V320H485.76L357.504 192H128zm-32-64h287.872l128.384 128H928a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32zm384 416V416h64v128h128v64H544v128h-64V608H352v-64h128z"},null,-1),$de=[Tde];function xde(e,t,n,r,o,s){return k(),D("svg",kde,$de)}var Ide=Se(Cde,[["render",xde],["__file","folder-add.vue"]]),Ade={name:"FolderChecked"},Mde={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ode=R("path",{fill:"currentColor",d:"M128 192v640h768V320H485.76L357.504 192H128zm-32-64h287.872l128.384 128H928a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32zm414.08 502.144 180.992-180.992L736.32 494.4 510.08 720.64l-158.4-158.336 45.248-45.312L510.08 630.144z"},null,-1),Rde=[Ode];function Pde(e,t,n,r,o,s){return k(),D("svg",Mde,Rde)}var Nde=Se(Ade,[["render",Pde],["__file","folder-checked.vue"]]),Lde={name:"FolderDelete"},Bde={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Dde=R("path",{fill:"currentColor",d:"M128 192v640h768V320H485.76L357.504 192H128zm-32-64h287.872l128.384 128H928a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32zm370.752 448-90.496-90.496 45.248-45.248L512 530.752l90.496-90.496 45.248 45.248L557.248 576l90.496 90.496-45.248 45.248L512 621.248l-90.496 90.496-45.248-45.248L466.752 576z"},null,-1),zde=[Dde];function Fde(e,t,n,r,o,s){return k(),D("svg",Bde,zde)}var Hde=Se(Lde,[["render",Fde],["__file","folder-delete.vue"]]),Vde={name:"FolderOpened"},jde={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ude=R("path",{fill:"currentColor",d:"M878.08 448H241.92l-96 384h636.16l96-384zM832 384v-64H485.76L357.504 192H128v448l57.92-231.744A32 32 0 0 1 216.96 384H832zm-24.96 512H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h287.872l128.384 128H864a32 32 0 0 1 32 32v96h23.04a32 32 0 0 1 31.04 39.744l-112 448A32 32 0 0 1 807.04 896z"},null,-1),Wde=[Ude];function qde(e,t,n,r,o,s){return k(),D("svg",jde,Wde)}var Kde=Se(Vde,[["render",qde],["__file","folder-opened.vue"]]),Gde={name:"FolderRemove"},Yde={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Xde=R("path",{fill:"currentColor",d:"M128 192v640h768V320H485.76L357.504 192H128zm-32-64h287.872l128.384 128H928a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32zm256 416h320v64H352v-64z"},null,-1),Jde=[Xde];function Qde(e,t,n,r,o,s){return k(),D("svg",Yde,Jde)}var Zde=Se(Gde,[["render",Qde],["__file","folder-remove.vue"]]),efe={name:"Folder"},tfe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},nfe=R("path",{fill:"currentColor",d:"M128 192v640h768V320H485.76L357.504 192H128zm-32-64h287.872l128.384 128H928a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32z"},null,-1),rfe=[nfe];function ofe(e,t,n,r,o,s){return k(),D("svg",tfe,rfe)}var sfe=Se(efe,[["render",ofe],["__file","folder.vue"]]),afe={name:"Food"},ife={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},lfe=R("path",{fill:"currentColor",d:"M128 352.576V352a288 288 0 0 1 491.072-204.224 192 192 0 0 1 274.24 204.48 64 64 0 0 1 57.216 74.24C921.6 600.512 850.048 710.656 736 756.992V800a96 96 0 0 1-96 96H384a96 96 0 0 1-96-96v-43.008c-114.048-46.336-185.6-156.48-214.528-330.496A64 64 0 0 1 128 352.64zm64-.576h64a160 160 0 0 1 320 0h64a224 224 0 0 0-448 0zm128 0h192a96 96 0 0 0-192 0zm439.424 0h68.544A128.256 128.256 0 0 0 704 192c-15.36 0-29.952 2.688-43.52 7.616 11.328 18.176 20.672 37.76 27.84 58.304A64.128 64.128 0 0 1 759.424 352zM672 768H352v32a32 32 0 0 0 32 32h256a32 32 0 0 0 32-32v-32zm-342.528-64h365.056c101.504-32.64 165.76-124.928 192.896-288H136.576c27.136 163.072 91.392 255.36 192.896 288z"},null,-1),ufe=[lfe];function cfe(e,t,n,r,o,s){return k(),D("svg",ife,ufe)}var dfe=Se(afe,[["render",cfe],["__file","food.vue"]]),ffe={name:"Football"},pfe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},hfe=R("path",{fill:"currentColor",d:"M512 960a448 448 0 1 1 0-896 448 448 0 0 1 0 896zm0-64a384 384 0 1 0 0-768 384 384 0 0 0 0 768z"},null,-1),mfe=R("path",{fill:"currentColor",d:"M186.816 268.288c16-16.384 31.616-31.744 46.976-46.08 17.472 30.656 39.808 58.112 65.984 81.28l-32.512 56.448a385.984 385.984 0 0 1-80.448-91.648zm653.696-5.312a385.92 385.92 0 0 1-83.776 96.96l-32.512-56.384a322.923 322.923 0 0 0 68.48-85.76c15.552 14.08 31.488 29.12 47.808 45.184zM465.984 445.248l11.136-63.104a323.584 323.584 0 0 0 69.76 0l11.136 63.104a387.968 387.968 0 0 1-92.032 0zm-62.72-12.8A381.824 381.824 0 0 1 320 396.544l32-55.424a319.885 319.885 0 0 0 62.464 27.712l-11.2 63.488zm300.8-35.84a381.824 381.824 0 0 1-83.328 35.84l-11.2-63.552A319.885 319.885 0 0 0 672 341.184l32 55.424zm-520.768 364.8a385.92 385.92 0 0 1 83.968-97.28l32.512 56.32c-26.88 23.936-49.856 52.352-67.52 84.032-16-13.44-32.32-27.712-48.96-43.072zm657.536.128a1442.759 1442.759 0 0 1-49.024 43.072 321.408 321.408 0 0 0-67.584-84.16l32.512-56.32c33.216 27.456 61.696 60.352 84.096 97.408zM465.92 578.752a387.968 387.968 0 0 1 92.032 0l-11.136 63.104a323.584 323.584 0 0 0-69.76 0l-11.136-63.104zm-62.72 12.8 11.2 63.552a319.885 319.885 0 0 0-62.464 27.712L320 627.392a381.824 381.824 0 0 1 83.264-35.84zm300.8 35.84-32 55.424a318.272 318.272 0 0 0-62.528-27.712l11.2-63.488c29.44 8.64 57.28 20.736 83.264 35.776z"},null,-1),vfe=[hfe,mfe];function gfe(e,t,n,r,o,s){return k(),D("svg",pfe,vfe)}var _fe=Se(ffe,[["render",gfe],["__file","football.vue"]]),yfe={name:"ForkSpoon"},bfe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},wfe=R("path",{fill:"currentColor",d:"M256 410.304V96a32 32 0 0 1 64 0v314.304a96 96 0 0 0 64-90.56V96a32 32 0 0 1 64 0v223.744a160 160 0 0 1-128 156.8V928a32 32 0 1 1-64 0V476.544a160 160 0 0 1-128-156.8V96a32 32 0 0 1 64 0v223.744a96 96 0 0 0 64 90.56zM672 572.48C581.184 552.128 512 446.848 512 320c0-141.44 85.952-256 192-256s192 114.56 192 256c0 126.848-69.184 232.128-160 252.48V928a32 32 0 1 1-64 0V572.48zM704 512c66.048 0 128-82.56 128-192s-61.952-192-128-192-128 82.56-128 192 61.952 192 128 192z"},null,-1),Sfe=[wfe];function Efe(e,t,n,r,o,s){return k(),D("svg",bfe,Sfe)}var Cfe=Se(yfe,[["render",Efe],["__file","fork-spoon.vue"]]),kfe={name:"Fries"},Tfe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},$fe=R("path",{fill:"currentColor",d:"M608 224v-64a32 32 0 0 0-64 0v336h26.88A64 64 0 0 0 608 484.096V224zm101.12 160A64 64 0 0 0 672 395.904V384h64V224a32 32 0 1 0-64 0v160h37.12zm74.88 0a92.928 92.928 0 0 1 91.328 110.08l-60.672 323.584A96 96 0 0 1 720.32 896H303.68a96 96 0 0 1-94.336-78.336L148.672 494.08A92.928 92.928 0 0 1 240 384h-16V224a96 96 0 0 1 188.608-25.28A95.744 95.744 0 0 1 480 197.44V160a96 96 0 0 1 188.608-25.28A96 96 0 0 1 800 224v160h-16zM670.784 512a128 128 0 0 1-99.904 48H453.12a128 128 0 0 1-99.84-48H352v-1.536a128.128 128.128 0 0 1-9.984-14.976L314.88 448H240a28.928 28.928 0 0 0-28.48 34.304L241.088 640h541.824l29.568-157.696A28.928 28.928 0 0 0 784 448h-74.88l-27.136 47.488A132.405 132.405 0 0 1 672 510.464V512h-1.216zM480 288a32 32 0 0 0-64 0v196.096A64 64 0 0 0 453.12 496H480V288zm-128 96V224a32 32 0 0 0-64 0v160h64-37.12A64 64 0 0 1 352 395.904zm-98.88 320 19.072 101.888A32 32 0 0 0 303.68 832h416.64a32 32 0 0 0 31.488-26.112L770.88 704H253.12z"},null,-1),xfe=[$fe];function Ife(e,t,n,r,o,s){return k(),D("svg",Tfe,xfe)}var Afe=Se(kfe,[["render",Ife],["__file","fries.vue"]]),Mfe={name:"FullScreen"},Ofe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Rfe=R("path",{fill:"currentColor",d:"m160 96.064 192 .192a32 32 0 0 1 0 64l-192-.192V352a32 32 0 0 1-64 0V96h64v.064zm0 831.872V928H96V672a32 32 0 1 1 64 0v191.936l192-.192a32 32 0 1 1 0 64l-192 .192zM864 96.064V96h64v256a32 32 0 1 1-64 0V160.064l-192 .192a32 32 0 1 1 0-64l192-.192zm0 831.872-192-.192a32 32 0 0 1 0-64l192 .192V672a32 32 0 1 1 64 0v256h-64v-.064z"},null,-1),Pfe=[Rfe];function Nfe(e,t,n,r,o,s){return k(),D("svg",Ofe,Pfe)}var Kx=Se(Mfe,[["render",Nfe],["__file","full-screen.vue"]]),Lfe={name:"GobletFull"},Bfe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Dfe=R("path",{fill:"currentColor",d:"M256 320h512c0-78.592-12.608-142.4-36.928-192h-434.24C269.504 192.384 256 256.256 256 320zm503.936 64H264.064a256.128 256.128 0 0 0 495.872 0zM544 638.4V896h96a32 32 0 1 1 0 64H384a32 32 0 1 1 0-64h96V638.4A320 320 0 0 1 192 320c0-85.632 21.312-170.944 64-256h512c42.688 64.32 64 149.632 64 256a320 320 0 0 1-288 318.4z"},null,-1),zfe=[Dfe];function Ffe(e,t,n,r,o,s){return k(),D("svg",Bfe,zfe)}var Hfe=Se(Lfe,[["render",Ffe],["__file","goblet-full.vue"]]),Vfe={name:"GobletSquareFull"},jfe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ufe=R("path",{fill:"currentColor",d:"M256 270.912c10.048 6.72 22.464 14.912 28.992 18.624a220.16 220.16 0 0 0 114.752 30.72c30.592 0 49.408-9.472 91.072-41.152l.64-.448c52.928-40.32 82.368-55.04 132.288-54.656 55.552.448 99.584 20.8 142.72 57.408l1.536 1.28V128H256v142.912zm.96 76.288C266.368 482.176 346.88 575.872 512 576c157.44.064 237.952-85.056 253.248-209.984a952.32 952.32 0 0 1-40.192-35.712c-32.704-27.776-63.36-41.92-101.888-42.24-31.552-.256-50.624 9.28-93.12 41.6l-.576.448c-52.096 39.616-81.024 54.208-129.792 54.208-54.784 0-100.48-13.376-142.784-37.056zM480 638.848C250.624 623.424 192 442.496 192 319.68V96a32 32 0 0 1 32-32h576a32 32 0 0 1 32 32v224c0 122.816-58.624 303.68-288 318.912V896h96a32 32 0 1 1 0 64H384a32 32 0 1 1 0-64h96V638.848z"},null,-1),Wfe=[Ufe];function qfe(e,t,n,r,o,s){return k(),D("svg",jfe,Wfe)}var Kfe=Se(Vfe,[["render",qfe],["__file","goblet-square-full.vue"]]),Gfe={name:"GobletSquare"},Yfe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Xfe=R("path",{fill:"currentColor",d:"M544 638.912V896h96a32 32 0 1 1 0 64H384a32 32 0 1 1 0-64h96V638.848C250.624 623.424 192 442.496 192 319.68V96a32 32 0 0 1 32-32h576a32 32 0 0 1 32 32v224c0 122.816-58.624 303.68-288 318.912zM256 319.68c0 149.568 80 256.192 256 256.256C688.128 576 768 469.568 768 320V128H256v191.68z"},null,-1),Jfe=[Xfe];function Qfe(e,t,n,r,o,s){return k(),D("svg",Yfe,Jfe)}var Zfe=Se(Gfe,[["render",Qfe],["__file","goblet-square.vue"]]),epe={name:"Goblet"},tpe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},npe=R("path",{fill:"currentColor",d:"M544 638.4V896h96a32 32 0 1 1 0 64H384a32 32 0 1 1 0-64h96V638.4A320 320 0 0 1 192 320c0-85.632 21.312-170.944 64-256h512c42.688 64.32 64 149.632 64 256a320 320 0 0 1-288 318.4zM256 320a256 256 0 1 0 512 0c0-78.592-12.608-142.4-36.928-192h-434.24C269.504 192.384 256 256.256 256 320z"},null,-1),rpe=[npe];function ope(e,t,n,r,o,s){return k(),D("svg",tpe,rpe)}var spe=Se(epe,[["render",ope],["__file","goblet.vue"]]),ape={name:"GoldMedal"},ipe={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024",style:{"enable-background":"new 0 0 1024 1024"},"xml:space":"preserve"},lpe=R("path",{d:"m772.13 452.84 53.86-351.81c1.32-10.01-1.17-18.68-7.49-26.02S804.35 64 795.01 64H228.99v-.01h-.06c-9.33 0-17.15 3.67-23.49 11.01s-8.83 16.01-7.49 26.02l53.87 351.89C213.54 505.73 193.59 568.09 192 640c2 90.67 33.17 166.17 93.5 226.5S421.33 957.99 512 960c90.67-2 166.17-33.17 226.5-93.5 60.33-60.34 91.49-135.83 93.5-226.5-1.59-71.94-21.56-134.32-59.87-187.16zM640.01 128h117.02l-39.01 254.02c-20.75-10.64-40.74-19.73-59.94-27.28-5.92-3-11.95-5.8-18.08-8.41V128h.01zM576 128v198.76c-13.18-2.58-26.74-4.43-40.67-5.55-8.07-.8-15.85-1.2-23.33-1.2-10.54 0-21.09.66-31.64 1.96a359.844 359.844 0 0 0-32.36 4.79V128h128zm-192 0h.04v218.3c-6.22 2.66-12.34 5.5-18.36 8.56-19.13 7.54-39.02 16.6-59.66 27.16L267.01 128H384zm308.99 692.99c-48 48-108.33 73-180.99 75.01-72.66-2.01-132.99-27.01-180.99-75.01S258.01 712.66 256 640c2.01-72.66 27.01-132.99 75.01-180.99 19.67-19.67 41.41-35.47 65.22-47.41 38.33-15.04 71.15-23.92 98.44-26.65 5.07-.41 10.2-.7 15.39-.88.63-.01 1.28-.03 1.91-.03.66 0 1.35.03 2.02.04 5.11.17 10.15.46 15.13.86 27.4 2.71 60.37 11.65 98.91 26.79 23.71 11.93 45.36 27.69 64.96 47.29 48 48 73 108.33 75.01 180.99-2.01 72.65-27.01 132.98-75.01 180.98z",fill:"currentColor"},null,-1),upe=R("path",{d:"M544 480H416v64h64v192h-64v64h192v-64h-64z",fill:"currentColor"},null,-1),cpe=[lpe,upe];function dpe(e,t,n,r,o,s){return k(),D("svg",ipe,cpe)}var fpe=Se(ape,[["render",dpe],["__file","gold-medal.vue"]]),ppe={name:"GoodsFilled"},hpe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},mpe=R("path",{fill:"currentColor",d:"M192 352h640l64 544H128l64-544zm128 224h64V448h-64v128zm320 0h64V448h-64v128zM384 288h-64a192 192 0 1 1 384 0h-64a128 128 0 1 0-256 0z"},null,-1),vpe=[mpe];function gpe(e,t,n,r,o,s){return k(),D("svg",hpe,vpe)}var _pe=Se(ppe,[["render",gpe],["__file","goods-filled.vue"]]),ype={name:"Goods"},bpe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},wpe=R("path",{fill:"currentColor",d:"M320 288v-22.336C320 154.688 405.504 64 512 64s192 90.688 192 201.664v22.4h131.072a32 32 0 0 1 31.808 28.8l57.6 576a32 32 0 0 1-31.808 35.2H131.328a32 32 0 0 1-31.808-35.2l57.6-576a32 32 0 0 1 31.808-28.8H320zm64 0h256v-22.336C640 189.248 582.272 128 512 128c-70.272 0-128 61.248-128 137.664v22.4zm-64 64H217.92l-51.2 512h690.56l-51.264-512H704v96a32 32 0 1 1-64 0v-96H384v96a32 32 0 0 1-64 0v-96z"},null,-1),Spe=[wpe];function Epe(e,t,n,r,o,s){return k(),D("svg",bpe,Spe)}var Cpe=Se(ype,[["render",Epe],["__file","goods.vue"]]),kpe={name:"Grape"},Tpe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},$pe=R("path",{fill:"currentColor",d:"M544 195.2a160 160 0 0 1 96 60.8 160 160 0 1 1 146.24 254.976 160 160 0 0 1-128 224 160 160 0 1 1-292.48 0 160 160 0 0 1-128-224A160 160 0 1 1 384 256a160 160 0 0 1 96-60.8V128h-64a32 32 0 0 1 0-64h192a32 32 0 0 1 0 64h-64v67.2zM512 448a96 96 0 1 0 0-192 96 96 0 0 0 0 192zm-256 0a96 96 0 1 0 0-192 96 96 0 0 0 0 192zm128 224a96 96 0 1 0 0-192 96 96 0 0 0 0 192zm128 224a96 96 0 1 0 0-192 96 96 0 0 0 0 192zm128-224a96 96 0 1 0 0-192 96 96 0 0 0 0 192zm128-224a96 96 0 1 0 0-192 96 96 0 0 0 0 192z"},null,-1),xpe=[$pe];function Ipe(e,t,n,r,o,s){return k(),D("svg",Tpe,xpe)}var Ape=Se(kpe,[["render",Ipe],["__file","grape.vue"]]),Mpe={name:"Grid"},Ope={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Rpe=R("path",{fill:"currentColor",d:"M640 384v256H384V384h256zm64 0h192v256H704V384zm-64 512H384V704h256v192zm64 0V704h192v192H704zm-64-768v192H384V128h256zm64 0h192v192H704V128zM320 384v256H128V384h192zm0 512H128V704h192v192zm0-768v192H128V128h192z"},null,-1),Ppe=[Rpe];function Npe(e,t,n,r,o,s){return k(),D("svg",Ope,Ppe)}var Lpe=Se(Mpe,[["render",Npe],["__file","grid.vue"]]),Bpe={name:"Guide"},Dpe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},zpe=R("path",{fill:"currentColor",d:"M640 608h-64V416h64v192zm0 160v160a32 32 0 0 1-32 32H416a32 32 0 0 1-32-32V768h64v128h128V768h64zM384 608V416h64v192h-64zm256-352h-64V128H448v128h-64V96a32 32 0 0 1 32-32h192a32 32 0 0 1 32 32v160z"},null,-1),Fpe=R("path",{fill:"currentColor",d:"m220.8 256-71.232 80 71.168 80H768V256H220.8zm-14.4-64H800a32 32 0 0 1 32 32v224a32 32 0 0 1-32 32H206.4a32 32 0 0 1-23.936-10.752l-99.584-112a32 32 0 0 1 0-42.496l99.584-112A32 32 0 0 1 206.4 192zm678.784 496-71.104 80H266.816V608h547.2l71.168 80zm-56.768-144H234.88a32 32 0 0 0-32 32v224a32 32 0 0 0 32 32h593.6a32 32 0 0 0 23.936-10.752l99.584-112a32 32 0 0 0 0-42.496l-99.584-112A32 32 0 0 0 828.48 544z"},null,-1),Hpe=[zpe,Fpe];function Vpe(e,t,n,r,o,s){return k(),D("svg",Dpe,Hpe)}var jpe=Se(Bpe,[["render",Vpe],["__file","guide.vue"]]),Upe={name:"Handbag"},Wpe={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024",style:{"enable-background":"new 0 0 1024 1024"},"xml:space":"preserve"},qpe=R("path",{d:"M887.01 264.99c-6-5.99-13.67-8.99-23.01-8.99H704c-1.34-54.68-20.01-100.01-56-136s-81.32-54.66-136-56c-54.68 1.34-100.01 20.01-136 56s-54.66 81.32-56 136H160c-9.35 0-17.02 3-23.01 8.99-5.99 6-8.99 13.67-8.99 23.01v640c0 9.35 2.99 17.02 8.99 23.01S150.66 960 160 960h704c9.35 0 17.02-2.99 23.01-8.99S896 937.34 896 928V288c0-9.35-2.99-17.02-8.99-23.01zM421.5 165.5c24.32-24.34 54.49-36.84 90.5-37.5 35.99.68 66.16 13.18 90.5 37.5s36.84 54.49 37.5 90.5H384c.68-35.99 13.18-66.16 37.5-90.5zM832 896H192V320h128v128h64V320h256v128h64V320h128v576z",fill:"currentColor"},null,-1),Kpe=[qpe];function Gpe(e,t,n,r,o,s){return k(),D("svg",Wpe,Kpe)}var Ype=Se(Upe,[["render",Gpe],["__file","handbag.vue"]]),Xpe={name:"Headset"},Jpe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Qpe=R("path",{fill:"currentColor",d:"M896 529.152V512a384 384 0 1 0-768 0v17.152A128 128 0 0 1 320 640v128a128 128 0 1 1-256 0V512a448 448 0 1 1 896 0v256a128 128 0 1 1-256 0V640a128 128 0 0 1 192-110.848zM896 640a64 64 0 0 0-128 0v128a64 64 0 0 0 128 0V640zm-768 0v128a64 64 0 0 0 128 0V640a64 64 0 1 0-128 0z"},null,-1),Zpe=[Qpe];function ehe(e,t,n,r,o,s){return k(),D("svg",Jpe,Zpe)}var the=Se(Xpe,[["render",ehe],["__file","headset.vue"]]),nhe={name:"HelpFilled"},rhe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},ohe=R("path",{fill:"currentColor",d:"M926.784 480H701.312A192.512 192.512 0 0 0 544 322.688V97.216A416.064 416.064 0 0 1 926.784 480zm0 64A416.064 416.064 0 0 1 544 926.784V701.312A192.512 192.512 0 0 0 701.312 544h225.472zM97.28 544h225.472A192.512 192.512 0 0 0 480 701.312v225.472A416.064 416.064 0 0 1 97.216 544zm0-64A416.064 416.064 0 0 1 480 97.216v225.472A192.512 192.512 0 0 0 322.688 480H97.216z"},null,-1),she=[ohe];function ahe(e,t,n,r,o,s){return k(),D("svg",rhe,she)}var ihe=Se(nhe,[["render",ahe],["__file","help-filled.vue"]]),lhe={name:"Help"},uhe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},che=R("path",{fill:"currentColor",d:"m759.936 805.248-90.944-91.008A254.912 254.912 0 0 1 512 768a254.912 254.912 0 0 1-156.992-53.76l-90.944 91.008A382.464 382.464 0 0 0 512 896c94.528 0 181.12-34.176 247.936-90.752zm45.312-45.312A382.464 382.464 0 0 0 896 512c0-94.528-34.176-181.12-90.752-247.936l-91.008 90.944C747.904 398.4 768 452.864 768 512c0 59.136-20.096 113.6-53.76 156.992l91.008 90.944zm-45.312-541.184A382.464 382.464 0 0 0 512 128c-94.528 0-181.12 34.176-247.936 90.752l90.944 91.008A254.912 254.912 0 0 1 512 256c59.136 0 113.6 20.096 156.992 53.76l90.944-91.008zm-541.184 45.312A382.464 382.464 0 0 0 128 512c0 94.528 34.176 181.12 90.752 247.936l91.008-90.944A254.912 254.912 0 0 1 256 512c0-59.136 20.096-113.6 53.76-156.992l-91.008-90.944zm417.28 394.496a194.56 194.56 0 0 0 22.528-22.528C686.912 602.56 704 559.232 704 512a191.232 191.232 0 0 0-67.968-146.56A191.296 191.296 0 0 0 512 320a191.232 191.232 0 0 0-146.56 67.968C337.088 421.44 320 464.768 320 512a191.232 191.232 0 0 0 67.968 146.56C421.44 686.912 464.768 704 512 704c47.296 0 90.56-17.088 124.032-45.44zM512 960a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"},null,-1),dhe=[che];function fhe(e,t,n,r,o,s){return k(),D("svg",uhe,dhe)}var phe=Se(lhe,[["render",fhe],["__file","help.vue"]]),hhe={name:"Hide"},mhe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},vhe=R("path",{d:"M876.8 156.8c0-9.6-3.2-16-9.6-22.4-6.4-6.4-12.8-9.6-22.4-9.6-9.6 0-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176C44.8 438.4 0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4 0 9.6 3.2 16 9.6 22.4 6.4 6.4 12.8 9.6 22.4 9.6 9.6 0 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4Zm-646.4 528c-76.8-70.4-128-128-153.6-172.8 28.8-48 80-105.6 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4Zm140.8-96c-12.8-22.4-19.2-48-19.2-76.8 0-44.8 16-83.2 48-112 32-28.8 67.2-48 112-48 28.8 0 54.4 6.4 73.6 19.2L371.2 588.8ZM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6-28.8 48-80 105.6-153.6 172.8-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176C979.199 585.6 1024 528 1024 512s-48.001-73.6-134.401-176Z",fill:"currentColor"},null,-1),ghe=R("path",{d:"M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112-32 28.8-67.2 48-112 48Z",fill:"currentColor"},null,-1),_he=[vhe,ghe];function yhe(e,t,n,r,o,s){return k(),D("svg",mhe,_he)}var Gx=Se(hhe,[["render",yhe],["__file","hide.vue"]]),bhe={name:"Histogram"},whe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},She=R("path",{fill:"currentColor",d:"M416 896V128h192v768H416zm-288 0V448h192v448H128zm576 0V320h192v576H704z"},null,-1),Ehe=[She];function Che(e,t,n,r,o,s){return k(),D("svg",whe,Ehe)}var khe=Se(bhe,[["render",Che],["__file","histogram.vue"]]),The={name:"HomeFilled"},$he={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},xhe=R("path",{fill:"currentColor",d:"M512 128 128 447.936V896h255.936V640H640v256h255.936V447.936z"},null,-1),Ihe=[xhe];function Ahe(e,t,n,r,o,s){return k(),D("svg",$he,Ihe)}var Mhe=Se(The,[["render",Ahe],["__file","home-filled.vue"]]),Ohe={name:"HotWater"},Rhe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Phe=R("path",{fill:"currentColor",d:"M273.067 477.867h477.866V409.6H273.067v68.267zm0 68.266v51.2A187.733 187.733 0 0 0 460.8 785.067h102.4a187.733 187.733 0 0 0 187.733-187.734v-51.2H273.067zm-34.134-204.8h546.134a34.133 34.133 0 0 1 34.133 34.134v221.866a256 256 0 0 1-256 256H460.8a256 256 0 0 1-256-256V375.467a34.133 34.133 0 0 1 34.133-34.134zM512 34.133a34.133 34.133 0 0 1 34.133 34.134v170.666a34.133 34.133 0 0 1-68.266 0V68.267A34.133 34.133 0 0 1 512 34.133zM375.467 102.4a34.133 34.133 0 0 1 34.133 34.133v102.4a34.133 34.133 0 0 1-68.267 0v-102.4a34.133 34.133 0 0 1 34.134-34.133zm273.066 0a34.133 34.133 0 0 1 34.134 34.133v102.4a34.133 34.133 0 1 1-68.267 0v-102.4a34.133 34.133 0 0 1 34.133-34.133zM170.667 921.668h682.666a34.133 34.133 0 1 1 0 68.267H170.667a34.133 34.133 0 1 1 0-68.267z"},null,-1),Nhe=[Phe];function Lhe(e,t,n,r,o,s){return k(),D("svg",Rhe,Nhe)}var Bhe=Se(Ohe,[["render",Lhe],["__file","hot-water.vue"]]),Dhe={name:"House"},zhe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Fhe=R("path",{fill:"currentColor",d:"M192 413.952V896h640V413.952L512 147.328 192 413.952zM139.52 374.4l352-293.312a32 32 0 0 1 40.96 0l352 293.312A32 32 0 0 1 896 398.976V928a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V398.976a32 32 0 0 1 11.52-24.576z"},null,-1),Hhe=[Fhe];function Vhe(e,t,n,r,o,s){return k(),D("svg",zhe,Hhe)}var jhe=Se(Dhe,[["render",Vhe],["__file","house.vue"]]),Uhe={name:"IceCreamRound"},Whe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},qhe=R("path",{fill:"currentColor",d:"m308.352 489.344 226.304 226.304a32 32 0 0 0 45.248 0L783.552 512A192 192 0 1 0 512 240.448L308.352 444.16a32 32 0 0 0 0 45.248zm135.744 226.304L308.352 851.392a96 96 0 0 1-135.744-135.744l135.744-135.744-45.248-45.248a96 96 0 0 1 0-135.808L466.752 195.2A256 256 0 0 1 828.8 557.248L625.152 760.96a96 96 0 0 1-135.808 0l-45.248-45.248zM398.848 670.4 353.6 625.152 217.856 760.896a32 32 0 0 0 45.248 45.248L398.848 670.4zm248.96-384.64a32 32 0 0 1 0 45.248L466.624 512a32 32 0 1 1-45.184-45.248l180.992-181.056a32 32 0 0 1 45.248 0zm90.496 90.496a32 32 0 0 1 0 45.248L557.248 602.496A32 32 0 1 1 512 557.248l180.992-180.992a32 32 0 0 1 45.312 0z"},null,-1),Khe=[qhe];function Ghe(e,t,n,r,o,s){return k(),D("svg",Whe,Khe)}var Yhe=Se(Uhe,[["render",Ghe],["__file","ice-cream-round.vue"]]),Xhe={name:"IceCreamSquare"},Jhe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Qhe=R("path",{fill:"currentColor",d:"M416 640h256a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32H352a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h64zm192 64v160a96 96 0 0 1-192 0V704h-64a96 96 0 0 1-96-96V160a96 96 0 0 1 96-96h320a96 96 0 0 1 96 96v448a96 96 0 0 1-96 96h-64zm-64 0h-64v160a32 32 0 1 0 64 0V704z"},null,-1),Zhe=[Qhe];function e0e(e,t,n,r,o,s){return k(),D("svg",Jhe,Zhe)}var t0e=Se(Xhe,[["render",e0e],["__file","ice-cream-square.vue"]]),n0e={name:"IceCream"},r0e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},o0e=R("path",{fill:"currentColor",d:"M128.64 448a208 208 0 0 1 193.536-191.552 224 224 0 0 1 445.248 15.488A208.128 208.128 0 0 1 894.784 448H896L548.8 983.68a32 32 0 0 1-53.248.704L128 448h.64zm64.256 0h286.208a144 144 0 0 0-286.208 0zm351.36 0h286.272a144 144 0 0 0-286.272 0zm-294.848 64 271.808 396.608L778.24 512H249.408zM511.68 352.64a207.872 207.872 0 0 1 189.184-96.192 160 160 0 0 0-314.752 5.632c52.608 12.992 97.28 46.08 125.568 90.56z"},null,-1),s0e=[o0e];function a0e(e,t,n,r,o,s){return k(),D("svg",r0e,s0e)}var i0e=Se(n0e,[["render",a0e],["__file","ice-cream.vue"]]),l0e={name:"IceDrink"},u0e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},c0e=R("path",{fill:"currentColor",d:"M512 448v128h239.68l16.064-128H512zm-64 0H256.256l16.064 128H448V448zm64-255.36V384h247.744A256.128 256.128 0 0 0 512 192.64zm-64 8.064A256.448 256.448 0 0 0 264.256 384H448V200.704zm64-72.064A320.128 320.128 0 0 1 825.472 384H896a32 32 0 1 1 0 64h-64v1.92l-56.96 454.016A64 64 0 0 1 711.552 960H312.448a64 64 0 0 1-63.488-56.064L192 449.92V448h-64a32 32 0 0 1 0-64h70.528A320.384 320.384 0 0 1 448 135.04V96a96 96 0 0 1 96-96h128a32 32 0 1 1 0 64H544a32 32 0 0 0-32 32v32.64zM743.68 640H280.32l32.128 256h399.104l32.128-256z"},null,-1),d0e=[c0e];function f0e(e,t,n,r,o,s){return k(),D("svg",u0e,d0e)}var p0e=Se(l0e,[["render",f0e],["__file","ice-drink.vue"]]),h0e={name:"IceTea"},m0e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},v0e=R("path",{fill:"currentColor",d:"M197.696 259.648a320.128 320.128 0 0 1 628.608 0A96 96 0 0 1 896 352v64a96 96 0 0 1-71.616 92.864l-49.408 395.072A64 64 0 0 1 711.488 960H312.512a64 64 0 0 1-63.488-56.064l-49.408-395.072A96 96 0 0 1 128 416v-64a96 96 0 0 1 69.696-92.352zM264.064 256h495.872a256.128 256.128 0 0 0-495.872 0zm495.424 256H264.512l48 384h398.976l48-384zM224 448h576a32 32 0 0 0 32-32v-64a32 32 0 0 0-32-32H224a32 32 0 0 0-32 32v64a32 32 0 0 0 32 32zm160 192h64v64h-64v-64zm192 64h64v64h-64v-64zm-128 64h64v64h-64v-64zm64-192h64v64h-64v-64z"},null,-1),g0e=[v0e];function _0e(e,t,n,r,o,s){return k(),D("svg",m0e,g0e)}var y0e=Se(h0e,[["render",_0e],["__file","ice-tea.vue"]]),b0e={name:"InfoFilled"},w0e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},S0e=R("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64zm67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344zM590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"},null,-1),E0e=[S0e];function C0e(e,t,n,r,o,s){return k(),D("svg",w0e,E0e)}var tm=Se(b0e,[["render",C0e],["__file","info-filled.vue"]]),k0e={name:"Iphone"},T0e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},$0e=R("path",{fill:"currentColor",d:"M224 768v96.064a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64V768H224zm0-64h576V160a64 64 0 0 0-64-64H288a64 64 0 0 0-64 64v544zm32 288a96 96 0 0 1-96-96V128a96 96 0 0 1 96-96h512a96 96 0 0 1 96 96v768a96 96 0 0 1-96 96H256zm304-144a48 48 0 1 1-96 0 48 48 0 0 1 96 0z"},null,-1),x0e=[$0e];function I0e(e,t,n,r,o,s){return k(),D("svg",T0e,x0e)}var A0e=Se(k0e,[["render",I0e],["__file","iphone.vue"]]),M0e={name:"Key"},O0e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},R0e=R("path",{fill:"currentColor",d:"M448 456.064V96a32 32 0 0 1 32-32.064L672 64a32 32 0 0 1 0 64H512v128h160a32 32 0 0 1 0 64H512v128a256 256 0 1 1-64 8.064zM512 896a192 192 0 1 0 0-384 192 192 0 0 0 0 384z"},null,-1),P0e=[R0e];function N0e(e,t,n,r,o,s){return k(),D("svg",O0e,P0e)}var L0e=Se(M0e,[["render",N0e],["__file","key.vue"]]),B0e={name:"KnifeFork"},D0e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},z0e=R("path",{fill:"currentColor",d:"M256 410.56V96a32 32 0 0 1 64 0v314.56A96 96 0 0 0 384 320V96a32 32 0 0 1 64 0v224a160 160 0 0 1-128 156.8V928a32 32 0 1 1-64 0V476.8A160 160 0 0 1 128 320V96a32 32 0 0 1 64 0v224a96 96 0 0 0 64 90.56zm384-250.24V544h126.72c-3.328-78.72-12.928-147.968-28.608-207.744-14.336-54.528-46.848-113.344-98.112-175.872zM640 608v320a32 32 0 1 1-64 0V64h64c85.312 89.472 138.688 174.848 160 256 21.312 81.152 32 177.152 32 288H640z"},null,-1),F0e=[z0e];function H0e(e,t,n,r,o,s){return k(),D("svg",D0e,F0e)}var V0e=Se(B0e,[["render",H0e],["__file","knife-fork.vue"]]),j0e={name:"Lightning"},U0e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},W0e=R("path",{fill:"currentColor",d:"M288 671.36v64.128A239.808 239.808 0 0 1 63.744 496.192a240.32 240.32 0 0 1 199.488-236.8 256.128 256.128 0 0 1 487.872-30.976A256.064 256.064 0 0 1 736 734.016v-64.768a192 192 0 0 0 3.328-377.92l-35.2-6.592-12.8-33.408a192.064 192.064 0 0 0-365.952 23.232l-9.92 40.896-41.472 7.04a176.32 176.32 0 0 0-146.24 173.568c0 91.968 70.464 167.36 160.256 175.232z"},null,-1),q0e=R("path",{fill:"currentColor",d:"M416 736a32 32 0 0 1-27.776-47.872l128-224a32 32 0 1 1 55.552 31.744L471.168 672H608a32 32 0 0 1 27.776 47.872l-128 224a32 32 0 1 1-55.68-31.744L552.96 736H416z"},null,-1),K0e=[W0e,q0e];function G0e(e,t,n,r,o,s){return k(),D("svg",U0e,K0e)}var Y0e=Se(j0e,[["render",G0e],["__file","lightning.vue"]]),X0e={name:"Link"},J0e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Q0e=R("path",{fill:"currentColor",d:"M715.648 625.152 670.4 579.904l90.496-90.56c75.008-74.944 85.12-186.368 22.656-248.896-62.528-62.464-173.952-52.352-248.96 22.656L444.16 353.6l-45.248-45.248 90.496-90.496c100.032-99.968 251.968-110.08 339.456-22.656 87.488 87.488 77.312 239.424-22.656 339.456l-90.496 90.496zm-90.496 90.496-90.496 90.496C434.624 906.112 282.688 916.224 195.2 828.8c-87.488-87.488-77.312-239.424 22.656-339.456l90.496-90.496 45.248 45.248-90.496 90.56c-75.008 74.944-85.12 186.368-22.656 248.896 62.528 62.464 173.952 52.352 248.96-22.656l90.496-90.496 45.248 45.248zm0-362.048 45.248 45.248L398.848 670.4 353.6 625.152 625.152 353.6z"},null,-1),Z0e=[Q0e];function eme(e,t,n,r,o,s){return k(),D("svg",J0e,Z0e)}var tme=Se(X0e,[["render",eme],["__file","link.vue"]]),nme={name:"List"},rme={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},ome=R("path",{fill:"currentColor",d:"M704 192h160v736H160V192h160v64h384v-64zM288 512h448v-64H288v64zm0 256h448v-64H288v64zm96-576V96h256v96H384z"},null,-1),sme=[ome];function ame(e,t,n,r,o,s){return k(),D("svg",rme,sme)}var ime=Se(nme,[["render",ame],["__file","list.vue"]]),lme={name:"Loading"},ume={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},cme=R("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32zm0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32zm448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32zm-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32zM195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0zm-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"},null,-1),dme=[cme];function fme(e,t,n,r,o,s){return k(),D("svg",ume,dme)}var pa=Se(lme,[["render",fme],["__file","loading.vue"]]),pme={name:"LocationFilled"},hme={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},mme=R("path",{fill:"currentColor",d:"M512 928c23.936 0 117.504-68.352 192.064-153.152C803.456 661.888 864 535.808 864 416c0-189.632-155.84-320-352-320S160 226.368 160 416c0 120.32 60.544 246.4 159.936 359.232C394.432 859.84 488 928 512 928zm0-435.2a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 140.8a204.8 204.8 0 1 1 0-409.6 204.8 204.8 0 0 1 0 409.6z"},null,-1),vme=[mme];function gme(e,t,n,r,o,s){return k(),D("svg",hme,vme)}var _me=Se(pme,[["render",gme],["__file","location-filled.vue"]]),yme={name:"LocationInformation"},bme={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},wme=R("path",{fill:"currentColor",d:"M288 896h448q32 0 32 32t-32 32H288q-32 0-32-32t32-32z"},null,-1),Sme=R("path",{fill:"currentColor",d:"M800 416a288 288 0 1 0-576 0c0 118.144 94.528 272.128 288 456.576C705.472 688.128 800 534.144 800 416zM512 960C277.312 746.688 160 565.312 160 416a352 352 0 0 1 704 0c0 149.312-117.312 330.688-352 544z"},null,-1),Eme=R("path",{fill:"currentColor",d:"M512 512a96 96 0 1 0 0-192 96 96 0 0 0 0 192zm0 64a160 160 0 1 1 0-320 160 160 0 0 1 0 320z"},null,-1),Cme=[wme,Sme,Eme];function kme(e,t,n,r,o,s){return k(),D("svg",bme,Cme)}var Tme=Se(yme,[["render",kme],["__file","location-information.vue"]]),$me={name:"Location"},xme={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ime=R("path",{fill:"currentColor",d:"M800 416a288 288 0 1 0-576 0c0 118.144 94.528 272.128 288 456.576C705.472 688.128 800 534.144 800 416zM512 960C277.312 746.688 160 565.312 160 416a352 352 0 0 1 704 0c0 149.312-117.312 330.688-352 544z"},null,-1),Ame=R("path",{fill:"currentColor",d:"M512 512a96 96 0 1 0 0-192 96 96 0 0 0 0 192zm0 64a160 160 0 1 1 0-320 160 160 0 0 1 0 320z"},null,-1),Mme=[Ime,Ame];function Ome(e,t,n,r,o,s){return k(),D("svg",xme,Mme)}var Rme=Se($me,[["render",Ome],["__file","location.vue"]]),Pme={name:"Lock"},Nme={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Lme=R("path",{fill:"currentColor",d:"M224 448a32 32 0 0 0-32 32v384a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V480a32 32 0 0 0-32-32H224zm0-64h576a96 96 0 0 1 96 96v384a96 96 0 0 1-96 96H224a96 96 0 0 1-96-96V480a96 96 0 0 1 96-96z"},null,-1),Bme=R("path",{fill:"currentColor",d:"M512 544a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V576a32 32 0 0 1 32-32zm192-160v-64a192 192 0 1 0-384 0v64h384zM512 64a256 256 0 0 1 256 256v128H256V320A256 256 0 0 1 512 64z"},null,-1),Dme=[Lme,Bme];function zme(e,t,n,r,o,s){return k(),D("svg",Nme,Dme)}var Fme=Se(Pme,[["render",zme],["__file","lock.vue"]]),Hme={name:"Lollipop"},Vme={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},jme=R("path",{fill:"currentColor",d:"M513.28 448a64 64 0 1 1 76.544 49.728A96 96 0 0 0 768 448h64a160 160 0 0 1-320 0h1.28zm-126.976-29.696a256 256 0 1 0 43.52-180.48A256 256 0 0 1 832 448h-64a192 192 0 0 0-381.696-29.696zm105.664 249.472L285.696 874.048a96 96 0 0 1-135.68-135.744l206.208-206.272a320 320 0 1 1 135.744 135.744zm-54.464-36.032a321.92 321.92 0 0 1-45.248-45.248L195.2 783.552a32 32 0 1 0 45.248 45.248l197.056-197.12z"},null,-1),Ume=[jme];function Wme(e,t,n,r,o,s){return k(),D("svg",Vme,Ume)}var qme=Se(Hme,[["render",Wme],["__file","lollipop.vue"]]),Kme={name:"MagicStick"},Gme={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Yme=R("path",{fill:"currentColor",d:"M512 64h64v192h-64V64zm0 576h64v192h-64V640zM160 480v-64h192v64H160zm576 0v-64h192v64H736zM249.856 199.04l45.248-45.184L430.848 289.6 385.6 334.848 249.856 199.104zM657.152 606.4l45.248-45.248 135.744 135.744-45.248 45.248L657.152 606.4zM114.048 923.2 68.8 877.952l316.8-316.8 45.248 45.248-316.8 316.8zM702.4 334.848 657.152 289.6l135.744-135.744 45.248 45.248L702.4 334.848z"},null,-1),Xme=[Yme];function Jme(e,t,n,r,o,s){return k(),D("svg",Gme,Xme)}var Qme=Se(Kme,[["render",Jme],["__file","magic-stick.vue"]]),Zme={name:"Magnet"},eve={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},tve=R("path",{fill:"currentColor",d:"M832 320V192H704v320a192 192 0 1 1-384 0V192H192v128h128v64H192v128a320 320 0 0 0 640 0V384H704v-64h128zM640 512V128h256v384a384 384 0 1 1-768 0V128h256v384a128 128 0 1 0 256 0z"},null,-1),nve=[tve];function rve(e,t,n,r,o,s){return k(),D("svg",eve,nve)}var ove=Se(Zme,[["render",rve],["__file","magnet.vue"]]),sve={name:"Male"},ave={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},ive=R("path",{fill:"currentColor",d:"M399.5 849.5a225 225 0 1 0 0-450 225 225 0 0 0 0 450zm0 56.25a281.25 281.25 0 1 1 0-562.5 281.25 281.25 0 0 1 0 562.5zm253.125-787.5h225q28.125 0 28.125 28.125T877.625 174.5h-225q-28.125 0-28.125-28.125t28.125-28.125z"},null,-1),lve=R("path",{fill:"currentColor",d:"M877.625 118.25q28.125 0 28.125 28.125v225q0 28.125-28.125 28.125T849.5 371.375v-225q0-28.125 28.125-28.125z"},null,-1),uve=R("path",{fill:"currentColor",d:"M604.813 458.9 565.1 419.131l292.613-292.668 39.825 39.824z"},null,-1),cve=[ive,lve,uve];function dve(e,t,n,r,o,s){return k(),D("svg",ave,cve)}var fve=Se(sve,[["render",dve],["__file","male.vue"]]),pve={name:"Management"},hve={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},mve=R("path",{fill:"currentColor",d:"M576 128v288l96-96 96 96V128h128v768H320V128h256zm-448 0h128v768H128V128z"},null,-1),vve=[mve];function gve(e,t,n,r,o,s){return k(),D("svg",hve,vve)}var _ve=Se(pve,[["render",gve],["__file","management.vue"]]),yve={name:"MapLocation"},bve={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},wve=R("path",{fill:"currentColor",d:"M800 416a288 288 0 1 0-576 0c0 118.144 94.528 272.128 288 456.576C705.472 688.128 800 534.144 800 416zM512 960C277.312 746.688 160 565.312 160 416a352 352 0 0 1 704 0c0 149.312-117.312 330.688-352 544z"},null,-1),Sve=R("path",{fill:"currentColor",d:"M512 448a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256zm345.6 192L960 960H672v-64H352v64H64l102.4-256h691.2zm-68.928 0H235.328l-76.8 192h706.944l-76.8-192z"},null,-1),Eve=[wve,Sve];function Cve(e,t,n,r,o,s){return k(),D("svg",bve,Eve)}var kve=Se(yve,[["render",Cve],["__file","map-location.vue"]]),Tve={name:"Medal"},$ve={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},xve=R("path",{fill:"currentColor",d:"M512 896a256 256 0 1 0 0-512 256 256 0 0 0 0 512zm0 64a320 320 0 1 1 0-640 320 320 0 0 1 0 640z"},null,-1),Ive=R("path",{fill:"currentColor",d:"M576 128H448v200a286.72 286.72 0 0 1 64-8c19.52 0 40.832 2.688 64 8V128zm64 0v219.648c24.448 9.088 50.56 20.416 78.4 33.92L757.44 128H640zm-256 0H266.624l39.04 253.568c27.84-13.504 53.888-24.832 78.336-33.92V128zM229.312 64h565.376a32 32 0 0 1 31.616 36.864L768 480c-113.792-64-199.104-96-256-96-56.896 0-142.208 32-256 96l-58.304-379.136A32 32 0 0 1 229.312 64z"},null,-1),Ave=[xve,Ive];function Mve(e,t,n,r,o,s){return k(),D("svg",$ve,Ave)}var Ove=Se(Tve,[["render",Mve],["__file","medal.vue"]]),Rve={name:"Memo"},Pve={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024",style:{"enable-background":"new 0 0 1024 1024"},"xml:space":"preserve"},Nve=R("path",{d:"M480 320h192c21.33 0 32-10.67 32-32s-10.67-32-32-32H480c-21.33 0-32 10.67-32 32s10.67 32 32 32z",fill:"currentColor"},null,-1),Lve=R("path",{d:"M887.01 72.99C881.01 67 873.34 64 864 64H160c-9.35 0-17.02 3-23.01 8.99C131 78.99 128 86.66 128 96v832c0 9.35 2.99 17.02 8.99 23.01S150.66 960 160 960h704c9.35 0 17.02-2.99 23.01-8.99S896 937.34 896 928V96c0-9.35-3-17.02-8.99-23.01zM192 896V128h96v768h-96zm640 0H352V128h480v768z",fill:"currentColor"},null,-1),Bve=R("path",{d:"M480 512h192c21.33 0 32-10.67 32-32s-10.67-32-32-32H480c-21.33 0-32 10.67-32 32s10.67 32 32 32zm0 192h192c21.33 0 32-10.67 32-32s-10.67-32-32-32H480c-21.33 0-32 10.67-32 32s10.67 32 32 32z",fill:"currentColor"},null,-1),Dve=[Nve,Lve,Bve];function zve(e,t,n,r,o,s){return k(),D("svg",Pve,Dve)}var Fve=Se(Rve,[["render",zve],["__file","memo.vue"]]),Hve={name:"Menu"},Vve={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},jve=R("path",{fill:"currentColor",d:"M160 448a32 32 0 0 1-32-32V160.064a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V416a32 32 0 0 1-32 32H160zm448 0a32 32 0 0 1-32-32V160.064a32 32 0 0 1 32-32h255.936a32 32 0 0 1 32 32V416a32 32 0 0 1-32 32H608zM160 896a32 32 0 0 1-32-32V608a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32v256a32 32 0 0 1-32 32H160zm448 0a32 32 0 0 1-32-32V608a32 32 0 0 1 32-32h255.936a32 32 0 0 1 32 32v256a32 32 0 0 1-32 32H608z"},null,-1),Uve=[jve];function Wve(e,t,n,r,o,s){return k(),D("svg",Vve,Uve)}var qve=Se(Hve,[["render",Wve],["__file","menu.vue"]]),Kve={name:"MessageBox"},Gve={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Yve=R("path",{fill:"currentColor",d:"M288 384h448v64H288v-64zm96-128h256v64H384v-64zM131.456 512H384v128h256V512h252.544L721.856 192H302.144L131.456 512zM896 576H704v128H320V576H128v256h768V576zM275.776 128h472.448a32 32 0 0 1 28.608 17.664l179.84 359.552A32 32 0 0 1 960 519.552V864a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V519.552a32 32 0 0 1 3.392-14.336l179.776-359.552A32 32 0 0 1 275.776 128z"},null,-1),Xve=[Yve];function Jve(e,t,n,r,o,s){return k(),D("svg",Gve,Xve)}var Qve=Se(Kve,[["render",Jve],["__file","message-box.vue"]]),Zve={name:"Message"},e2e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},t2e=R("path",{fill:"currentColor",d:"M128 224v512a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V224H128zm0-64h768a64 64 0 0 1 64 64v512a128 128 0 0 1-128 128H192A128 128 0 0 1 64 736V224a64 64 0 0 1 64-64z"},null,-1),n2e=R("path",{fill:"currentColor",d:"M904 224 656.512 506.88a192 192 0 0 1-289.024 0L120 224h784zm-698.944 0 210.56 240.704a128 128 0 0 0 192.704 0L818.944 224H205.056z"},null,-1),r2e=[t2e,n2e];function o2e(e,t,n,r,o,s){return k(),D("svg",e2e,r2e)}var s2e=Se(Zve,[["render",o2e],["__file","message.vue"]]),a2e={name:"Mic"},i2e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},l2e=R("path",{fill:"currentColor",d:"M480 704h160a64 64 0 0 0 64-64v-32h-96a32 32 0 0 1 0-64h96v-96h-96a32 32 0 0 1 0-64h96v-96h-96a32 32 0 0 1 0-64h96v-32a64 64 0 0 0-64-64H384a64 64 0 0 0-64 64v32h96a32 32 0 0 1 0 64h-96v96h96a32 32 0 0 1 0 64h-96v96h96a32 32 0 0 1 0 64h-96v32a64 64 0 0 0 64 64h96zm64 64v128h192a32 32 0 1 1 0 64H288a32 32 0 1 1 0-64h192V768h-96a128 128 0 0 1-128-128V192A128 128 0 0 1 384 64h256a128 128 0 0 1 128 128v448a128 128 0 0 1-128 128h-96z"},null,-1),u2e=[l2e];function c2e(e,t,n,r,o,s){return k(),D("svg",i2e,u2e)}var d2e=Se(a2e,[["render",c2e],["__file","mic.vue"]]),f2e={name:"Microphone"},p2e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},h2e=R("path",{fill:"currentColor",d:"M512 128a128 128 0 0 0-128 128v256a128 128 0 1 0 256 0V256a128 128 0 0 0-128-128zm0-64a192 192 0 0 1 192 192v256a192 192 0 1 1-384 0V256A192 192 0 0 1 512 64zm-32 832v-64a288 288 0 0 1-288-288v-32a32 32 0 0 1 64 0v32a224 224 0 0 0 224 224h64a224 224 0 0 0 224-224v-32a32 32 0 1 1 64 0v32a288 288 0 0 1-288 288v64h64a32 32 0 1 1 0 64H416a32 32 0 1 1 0-64h64z"},null,-1),m2e=[h2e];function v2e(e,t,n,r,o,s){return k(),D("svg",p2e,m2e)}var g2e=Se(f2e,[["render",v2e],["__file","microphone.vue"]]),_2e={name:"MilkTea"},y2e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},b2e=R("path",{fill:"currentColor",d:"M416 128V96a96 96 0 0 1 96-96h128a32 32 0 1 1 0 64H512a32 32 0 0 0-32 32v32h320a96 96 0 0 1 11.712 191.296l-39.68 581.056A64 64 0 0 1 708.224 960H315.776a64 64 0 0 1-63.872-59.648l-39.616-581.056A96 96 0 0 1 224 128h192zM276.48 320l39.296 576h392.448l4.8-70.784a224.064 224.064 0 0 1 30.016-439.808L747.52 320H276.48zM224 256h576a32 32 0 1 0 0-64H224a32 32 0 0 0 0 64zm493.44 503.872 21.12-309.12a160 160 0 0 0-21.12 309.12z"},null,-1),w2e=[b2e];function S2e(e,t,n,r,o,s){return k(),D("svg",y2e,w2e)}var E2e=Se(_2e,[["render",S2e],["__file","milk-tea.vue"]]),C2e={name:"Minus"},k2e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},T2e=R("path",{fill:"currentColor",d:"M128 544h768a32 32 0 1 0 0-64H128a32 32 0 0 0 0 64z"},null,-1),$2e=[T2e];function x2e(e,t,n,r,o,s){return k(),D("svg",k2e,$2e)}var Yx=Se(C2e,[["render",x2e],["__file","minus.vue"]]),I2e={name:"Money"},A2e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},M2e=R("path",{fill:"currentColor",d:"M256 640v192h640V384H768v-64h150.976c14.272 0 19.456 1.472 24.64 4.288a29.056 29.056 0 0 1 12.16 12.096c2.752 5.184 4.224 10.368 4.224 24.64v493.952c0 14.272-1.472 19.456-4.288 24.64a29.056 29.056 0 0 1-12.096 12.16c-5.184 2.752-10.368 4.224-24.64 4.224H233.024c-14.272 0-19.456-1.472-24.64-4.288a29.056 29.056 0 0 1-12.16-12.096c-2.688-5.184-4.224-10.368-4.224-24.576V640h64z"},null,-1),O2e=R("path",{fill:"currentColor",d:"M768 192H128v448h640V192zm64-22.976v493.952c0 14.272-1.472 19.456-4.288 24.64a29.056 29.056 0 0 1-12.096 12.16c-5.184 2.752-10.368 4.224-24.64 4.224H105.024c-14.272 0-19.456-1.472-24.64-4.288a29.056 29.056 0 0 1-12.16-12.096C65.536 682.432 64 677.248 64 663.04V169.024c0-14.272 1.472-19.456 4.288-24.64a29.056 29.056 0 0 1 12.096-12.16C85.568 129.536 90.752 128 104.96 128h685.952c14.272 0 19.456 1.472 24.64 4.288a29.056 29.056 0 0 1 12.16 12.096c2.752 5.184 4.224 10.368 4.224 24.64z"},null,-1),R2e=R("path",{fill:"currentColor",d:"M448 576a160 160 0 1 1 0-320 160 160 0 0 1 0 320zm0-64a96 96 0 1 0 0-192 96 96 0 0 0 0 192z"},null,-1),P2e=[M2e,O2e,R2e];function N2e(e,t,n,r,o,s){return k(),D("svg",A2e,P2e)}var L2e=Se(I2e,[["render",N2e],["__file","money.vue"]]),B2e={name:"Monitor"},D2e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},z2e=R("path",{fill:"currentColor",d:"M544 768v128h192a32 32 0 1 1 0 64H288a32 32 0 1 1 0-64h192V768H192A128 128 0 0 1 64 640V256a128 128 0 0 1 128-128h640a128 128 0 0 1 128 128v384a128 128 0 0 1-128 128H544zM192 192a64 64 0 0 0-64 64v384a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64H192z"},null,-1),F2e=[z2e];function H2e(e,t,n,r,o,s){return k(),D("svg",D2e,F2e)}var V2e=Se(B2e,[["render",H2e],["__file","monitor.vue"]]),j2e={name:"MoonNight"},U2e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},W2e=R("path",{fill:"currentColor",d:"M384 512a448 448 0 0 1 215.872-383.296A384 384 0 0 0 213.76 640h188.8A448.256 448.256 0 0 1 384 512zM171.136 704a448 448 0 0 1 636.992-575.296A384 384 0 0 0 499.328 704h-328.32z"},null,-1),q2e=R("path",{fill:"currentColor",d:"M32 640h960q32 0 32 32t-32 32H32q-32 0-32-32t32-32zm128 128h384a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64zm160 127.68 224 .256a32 32 0 0 1 32 32V928a32 32 0 0 1-32 32l-224-.384a32 32 0 0 1-32-32v-.064a32 32 0 0 1 32-32z"},null,-1),K2e=[W2e,q2e];function G2e(e,t,n,r,o,s){return k(),D("svg",U2e,K2e)}var Y2e=Se(j2e,[["render",G2e],["__file","moon-night.vue"]]),X2e={name:"Moon"},J2e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Q2e=R("path",{fill:"currentColor",d:"M240.448 240.448a384 384 0 1 0 559.424 525.696 448 448 0 0 1-542.016-542.08 390.592 390.592 0 0 0-17.408 16.384zm181.056 362.048a384 384 0 0 0 525.632 16.384A448 448 0 1 1 405.056 76.8a384 384 0 0 0 16.448 525.696z"},null,-1),Z2e=[Q2e];function e1e(e,t,n,r,o,s){return k(),D("svg",J2e,Z2e)}var t1e=Se(X2e,[["render",e1e],["__file","moon.vue"]]),n1e={name:"MoreFilled"},r1e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},o1e=R("path",{fill:"currentColor",d:"M176 416a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224z"},null,-1),s1e=[o1e];function a1e(e,t,n,r,o,s){return k(),D("svg",r1e,s1e)}var a1=Se(n1e,[["render",a1e],["__file","more-filled.vue"]]),i1e={name:"More"},l1e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},u1e=R("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96zm336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224zm0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96z"},null,-1),c1e=[u1e];function d1e(e,t,n,r,o,s){return k(),D("svg",l1e,c1e)}var Xx=Se(i1e,[["render",d1e],["__file","more.vue"]]),f1e={name:"MostlyCloudy"},p1e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},h1e=R("path",{fill:"currentColor",d:"M737.216 357.952 704 349.824l-11.776-32a192.064 192.064 0 0 0-367.424 23.04l-8.96 39.04-39.04 8.96A192.064 192.064 0 0 0 320 768h368a207.808 207.808 0 0 0 207.808-208 208.32 208.32 0 0 0-158.592-202.048zm15.168-62.208A272.32 272.32 0 0 1 959.744 560a271.808 271.808 0 0 1-271.552 272H320a256 256 0 0 1-57.536-505.536 256.128 256.128 0 0 1 489.92-30.72z"},null,-1),m1e=[h1e];function v1e(e,t,n,r,o,s){return k(),D("svg",p1e,m1e)}var g1e=Se(f1e,[["render",v1e],["__file","mostly-cloudy.vue"]]),_1e={name:"Mouse"},y1e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},b1e=R("path",{fill:"currentColor",d:"M438.144 256c-68.352 0-92.736 4.672-117.76 18.112-20.096 10.752-35.52 26.176-46.272 46.272C260.672 345.408 256 369.792 256 438.144v275.712c0 68.352 4.672 92.736 18.112 117.76 10.752 20.096 26.176 35.52 46.272 46.272C345.408 891.328 369.792 896 438.144 896h147.712c68.352 0 92.736-4.672 117.76-18.112 20.096-10.752 35.52-26.176 46.272-46.272C763.328 806.592 768 782.208 768 713.856V438.144c0-68.352-4.672-92.736-18.112-117.76a110.464 110.464 0 0 0-46.272-46.272C678.592 260.672 654.208 256 585.856 256H438.144zm0-64h147.712c85.568 0 116.608 8.96 147.904 25.6 31.36 16.768 55.872 41.344 72.576 72.64C823.104 321.536 832 352.576 832 438.08v275.84c0 85.504-8.96 116.544-25.6 147.84a174.464 174.464 0 0 1-72.64 72.576C702.464 951.104 671.424 960 585.92 960H438.08c-85.504 0-116.544-8.96-147.84-25.6a174.464 174.464 0 0 1-72.64-72.704c-16.768-31.296-25.664-62.336-25.664-147.84v-275.84c0-85.504 8.96-116.544 25.6-147.84a174.464 174.464 0 0 1 72.768-72.576c31.232-16.704 62.272-25.6 147.776-25.6z"},null,-1),w1e=R("path",{fill:"currentColor",d:"M512 320q32 0 32 32v128q0 32-32 32t-32-32V352q0-32 32-32zm32-96a32 32 0 0 1-64 0v-64a32 32 0 0 0-32-32h-96a32 32 0 0 1 0-64h96a96 96 0 0 1 96 96v64z"},null,-1),S1e=[b1e,w1e];function E1e(e,t,n,r,o,s){return k(),D("svg",y1e,S1e)}var C1e=Se(_1e,[["render",E1e],["__file","mouse.vue"]]),k1e={name:"Mug"},T1e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},$1e=R("path",{fill:"currentColor",d:"M736 800V160H160v640a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64zm64-544h63.552a96 96 0 0 1 96 96v224a96 96 0 0 1-96 96H800v128a128 128 0 0 1-128 128H224A128 128 0 0 1 96 800V128a32 32 0 0 1 32-32h640a32 32 0 0 1 32 32v128zm0 64v288h63.552a32 32 0 0 0 32-32V352a32 32 0 0 0-32-32H800z"},null,-1),x1e=[$1e];function I1e(e,t,n,r,o,s){return k(),D("svg",T1e,x1e)}var A1e=Se(k1e,[["render",I1e],["__file","mug.vue"]]),M1e={name:"MuteNotification"},O1e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},R1e=R("path",{fill:"currentColor",d:"m241.216 832 63.616-64H768V448c0-42.368-10.24-82.304-28.48-117.504l46.912-47.232C815.36 331.392 832 387.84 832 448v320h96a32 32 0 1 1 0 64H241.216zm-90.24 0H96a32 32 0 1 1 0-64h96V448a320.128 320.128 0 0 1 256-313.6V128a64 64 0 1 1 128 0v6.4a319.552 319.552 0 0 1 171.648 97.088l-45.184 45.44A256 256 0 0 0 256 448v278.336L151.04 832zM448 896h128a64 64 0 0 1-128 0z"},null,-1),P1e=R("path",{fill:"currentColor",d:"M150.72 859.072a32 32 0 0 1-45.44-45.056l704-708.544a32 32 0 0 1 45.44 45.056l-704 708.544z"},null,-1),N1e=[R1e,P1e];function L1e(e,t,n,r,o,s){return k(),D("svg",O1e,N1e)}var B1e=Se(M1e,[["render",L1e],["__file","mute-notification.vue"]]),D1e={name:"Mute"},z1e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},F1e=R("path",{fill:"currentColor",d:"m412.16 592.128-45.44 45.44A191.232 191.232 0 0 1 320 512V256a192 192 0 1 1 384 0v44.352l-64 64V256a128 128 0 1 0-256 0v256c0 30.336 10.56 58.24 28.16 80.128zm51.968 38.592A128 128 0 0 0 640 512v-57.152l64-64V512a192 192 0 0 1-287.68 166.528l47.808-47.808zM314.88 779.968l46.144-46.08A222.976 222.976 0 0 0 480 768h64a224 224 0 0 0 224-224v-32a32 32 0 1 1 64 0v32a288 288 0 0 1-288 288v64h64a32 32 0 1 1 0 64H416a32 32 0 1 1 0-64h64v-64c-61.44 0-118.4-19.2-165.12-52.032zM266.752 737.6A286.976 286.976 0 0 1 192 544v-32a32 32 0 0 1 64 0v32c0 56.832 21.184 108.8 56.064 148.288L266.752 737.6z"},null,-1),H1e=R("path",{fill:"currentColor",d:"M150.72 859.072a32 32 0 0 1-45.44-45.056l704-708.544a32 32 0 0 1 45.44 45.056l-704 708.544z"},null,-1),V1e=[F1e,H1e];function j1e(e,t,n,r,o,s){return k(),D("svg",z1e,V1e)}var U1e=Se(D1e,[["render",j1e],["__file","mute.vue"]]),W1e={name:"NoSmoking"},q1e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},K1e=R("path",{fill:"currentColor",d:"M440.256 576H256v128h56.256l-64 64H224a32 32 0 0 1-32-32V544a32 32 0 0 1 32-32h280.256l-64 64zm143.488 128H704V583.744L775.744 512H928a32 32 0 0 1 32 32v192a32 32 0 0 1-32 32H519.744l64-64zM768 576v128h128V576H768zm-29.696-207.552 45.248 45.248-497.856 497.856-45.248-45.248zM256 64h64v320h-64zM128 192h64v192h-64zM64 512h64v256H64z"},null,-1),G1e=[K1e];function Y1e(e,t,n,r,o,s){return k(),D("svg",q1e,G1e)}var X1e=Se(W1e,[["render",Y1e],["__file","no-smoking.vue"]]),J1e={name:"Notebook"},Q1e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Z1e=R("path",{fill:"currentColor",d:"M192 128v768h640V128H192zm-32-64h704a32 32 0 0 1 32 32v832a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32z"},null,-1),ege=R("path",{fill:"currentColor",d:"M672 128h64v768h-64zM96 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32zm0 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32zm0 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32zm0 192h128q32 0 32 32t-32 32H96q-32 0-32-32t32-32z"},null,-1),tge=[Z1e,ege];function nge(e,t,n,r,o,s){return k(),D("svg",Q1e,tge)}var rge=Se(J1e,[["render",nge],["__file","notebook.vue"]]),oge={name:"Notification"},sge={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},age=R("path",{fill:"currentColor",d:"M512 128v64H256a64 64 0 0 0-64 64v512a64 64 0 0 0 64 64h512a64 64 0 0 0 64-64V512h64v256a128 128 0 0 1-128 128H256a128 128 0 0 1-128-128V256a128 128 0 0 1 128-128h256z"},null,-1),ige=R("path",{fill:"currentColor",d:"M768 384a128 128 0 1 0 0-256 128 128 0 0 0 0 256zm0 64a192 192 0 1 1 0-384 192 192 0 0 1 0 384z"},null,-1),lge=[age,ige];function uge(e,t,n,r,o,s){return k(),D("svg",sge,lge)}var cge=Se(oge,[["render",uge],["__file","notification.vue"]]),dge={name:"Odometer"},fge={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},pge=R("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"},null,-1),hge=R("path",{fill:"currentColor",d:"M192 512a320 320 0 1 1 640 0 32 32 0 1 1-64 0 256 256 0 1 0-512 0 32 32 0 0 1-64 0z"},null,-1),mge=R("path",{fill:"currentColor",d:"M570.432 627.84A96 96 0 1 1 509.568 608l60.992-187.776A32 32 0 1 1 631.424 440l-60.992 187.776zM502.08 734.464a32 32 0 1 0 19.84-60.928 32 32 0 0 0-19.84 60.928z"},null,-1),vge=[pge,hge,mge];function gge(e,t,n,r,o,s){return k(),D("svg",fge,vge)}var _ge=Se(dge,[["render",gge],["__file","odometer.vue"]]),yge={name:"OfficeBuilding"},bge={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},wge=R("path",{fill:"currentColor",d:"M192 128v704h384V128H192zm-32-64h448a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32z"},null,-1),Sge=R("path",{fill:"currentColor",d:"M256 256h256v64H256v-64zm0 192h256v64H256v-64zm0 192h256v64H256v-64zm384-128h128v64H640v-64zm0 128h128v64H640v-64zM64 832h896v64H64v-64z"},null,-1),Ege=R("path",{fill:"currentColor",d:"M640 384v448h192V384H640zm-32-64h256a32 32 0 0 1 32 32v512a32 32 0 0 1-32 32H608a32 32 0 0 1-32-32V352a32 32 0 0 1 32-32z"},null,-1),Cge=[wge,Sge,Ege];function kge(e,t,n,r,o,s){return k(),D("svg",bge,Cge)}var Tge=Se(yge,[["render",kge],["__file","office-building.vue"]]),$ge={name:"Open"},xge={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ige=R("path",{fill:"currentColor",d:"M329.956 257.138a254.862 254.862 0 0 0 0 509.724h364.088a254.862 254.862 0 0 0 0-509.724H329.956zm0-72.818h364.088a327.68 327.68 0 1 1 0 655.36H329.956a327.68 327.68 0 1 1 0-655.36z"},null,-1),Age=R("path",{fill:"currentColor",d:"M694.044 621.227a109.227 109.227 0 1 0 0-218.454 109.227 109.227 0 0 0 0 218.454zm0 72.817a182.044 182.044 0 1 1 0-364.088 182.044 182.044 0 0 1 0 364.088z"},null,-1),Mge=[Ige,Age];function Oge(e,t,n,r,o,s){return k(),D("svg",xge,Mge)}var Rge=Se($ge,[["render",Oge],["__file","open.vue"]]),Pge={name:"Operation"},Nge={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Lge=R("path",{fill:"currentColor",d:"M389.44 768a96.064 96.064 0 0 1 181.12 0H896v64H570.56a96.064 96.064 0 0 1-181.12 0H128v-64h261.44zm192-288a96.064 96.064 0 0 1 181.12 0H896v64H762.56a96.064 96.064 0 0 1-181.12 0H128v-64h453.44zm-320-288a96.064 96.064 0 0 1 181.12 0H896v64H442.56a96.064 96.064 0 0 1-181.12 0H128v-64h133.44z"},null,-1),Bge=[Lge];function Dge(e,t,n,r,o,s){return k(),D("svg",Nge,Bge)}var zge=Se(Pge,[["render",Dge],["__file","operation.vue"]]),Fge={name:"Opportunity"},Hge={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Vge=R("path",{fill:"currentColor",d:"M384 960v-64h192.064v64H384zm448-544a350.656 350.656 0 0 1-128.32 271.424C665.344 719.04 640 763.776 640 813.504V832H320v-14.336c0-48-19.392-95.36-57.216-124.992a351.552 351.552 0 0 1-128.448-344.256c25.344-136.448 133.888-248.128 269.76-276.48A352.384 352.384 0 0 1 832 416zm-544 32c0-132.288 75.904-224 192-224v-64c-154.432 0-256 122.752-256 288h64z"},null,-1),jge=[Vge];function Uge(e,t,n,r,o,s){return k(),D("svg",Hge,jge)}var Wge=Se(Fge,[["render",Uge],["__file","opportunity.vue"]]),qge={name:"Orange"},Kge={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Gge=R("path",{fill:"currentColor",d:"M544 894.72a382.336 382.336 0 0 0 215.936-89.472L577.024 622.272c-10.24 6.016-21.248 10.688-33.024 13.696v258.688zm261.248-134.784A382.336 382.336 0 0 0 894.656 544H635.968c-3.008 11.776-7.68 22.848-13.696 33.024l182.976 182.912zM894.656 480a382.336 382.336 0 0 0-89.408-215.936L622.272 446.976c6.016 10.24 10.688 21.248 13.696 33.024h258.688zm-134.72-261.248A382.336 382.336 0 0 0 544 129.344v258.688c11.776 3.008 22.848 7.68 33.024 13.696l182.912-182.976zM480 129.344a382.336 382.336 0 0 0-215.936 89.408l182.912 182.976c10.24-6.016 21.248-10.688 33.024-13.696V129.344zm-261.248 134.72A382.336 382.336 0 0 0 129.344 480h258.688c3.008-11.776 7.68-22.848 13.696-33.024L218.752 264.064zM129.344 544a382.336 382.336 0 0 0 89.408 215.936l182.976-182.912A127.232 127.232 0 0 1 388.032 544H129.344zm134.72 261.248A382.336 382.336 0 0 0 480 894.656V635.968a127.232 127.232 0 0 1-33.024-13.696L264.064 805.248zM512 960a448 448 0 1 1 0-896 448 448 0 0 1 0 896zm0-384a64 64 0 1 0 0-128 64 64 0 0 0 0 128z"},null,-1),Yge=[Gge];function Xge(e,t,n,r,o,s){return k(),D("svg",Kge,Yge)}var Jge=Se(qge,[["render",Xge],["__file","orange.vue"]]),Qge={name:"Paperclip"},Zge={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},e_e=R("path",{fill:"currentColor",d:"M602.496 240.448A192 192 0 1 1 874.048 512l-316.8 316.8A256 256 0 0 1 195.2 466.752L602.496 59.456l45.248 45.248L240.448 512A192 192 0 0 0 512 783.552l316.8-316.8a128 128 0 1 0-181.056-181.056L353.6 579.904a32 32 0 1 0 45.248 45.248l294.144-294.144 45.312 45.248L444.096 670.4a96 96 0 1 1-135.744-135.744l294.144-294.208z"},null,-1),t_e=[e_e];function n_e(e,t,n,r,o,s){return k(),D("svg",Zge,t_e)}var r_e=Se(Qge,[["render",n_e],["__file","paperclip.vue"]]),o_e={name:"PartlyCloudy"},s_e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},a_e=R("path",{fill:"currentColor",d:"M598.4 895.872H328.192a256 256 0 0 1-34.496-510.528A352 352 0 1 1 598.4 895.872zm-271.36-64h272.256a288 288 0 1 0-248.512-417.664L335.04 445.44l-34.816 3.584a192 192 0 0 0 26.88 382.848z"},null,-1),i_e=R("path",{fill:"currentColor",d:"M139.84 501.888a256 256 0 1 1 417.856-277.12c-17.728 2.176-38.208 8.448-61.504 18.816A192 192 0 1 0 189.12 460.48a6003.84 6003.84 0 0 0-49.28 41.408z"},null,-1),l_e=[a_e,i_e];function u_e(e,t,n,r,o,s){return k(),D("svg",s_e,l_e)}var c_e=Se(o_e,[["render",u_e],["__file","partly-cloudy.vue"]]),d_e={name:"Pear"},f_e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},p_e=R("path",{fill:"currentColor",d:"M542.336 258.816a443.255 443.255 0 0 0-9.024 25.088 32 32 0 1 1-60.8-20.032l1.088-3.328a162.688 162.688 0 0 0-122.048 131.392l-17.088 102.72-20.736 15.36C256.192 552.704 224 610.88 224 672c0 120.576 126.4 224 288 224s288-103.424 288-224c0-61.12-32.192-119.296-89.728-161.92l-20.736-15.424-17.088-102.72a162.688 162.688 0 0 0-130.112-133.12zm-40.128-66.56c7.936-15.552 16.576-30.08 25.92-43.776 23.296-33.92 49.408-59.776 78.528-77.12a32 32 0 1 1 32.704 55.04c-20.544 12.224-40.064 31.552-58.432 58.304a316.608 316.608 0 0 0-9.792 15.104 226.688 226.688 0 0 1 164.48 181.568l12.8 77.248C819.456 511.36 864 587.392 864 672c0 159.04-157.568 288-352 288S160 831.04 160 672c0-84.608 44.608-160.64 115.584-213.376l12.8-77.248a226.624 226.624 0 0 1 213.76-189.184z"},null,-1),h_e=[p_e];function m_e(e,t,n,r,o,s){return k(),D("svg",f_e,h_e)}var v_e=Se(d_e,[["render",m_e],["__file","pear.vue"]]),g_e={name:"PhoneFilled"},__e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},y_e=R("path",{fill:"currentColor",d:"M199.232 125.568 90.624 379.008a32 32 0 0 0 6.784 35.2l512.384 512.384a32 32 0 0 0 35.2 6.784l253.44-108.608a32 32 0 0 0 10.048-52.032L769.6 633.92a32 32 0 0 0-36.928-5.952l-130.176 65.088-271.488-271.552 65.024-130.176a32 32 0 0 0-5.952-36.928L251.2 115.52a32 32 0 0 0-51.968 10.048z"},null,-1),b_e=[y_e];function w_e(e,t,n,r,o,s){return k(),D("svg",__e,b_e)}var S_e=Se(g_e,[["render",w_e],["__file","phone-filled.vue"]]),E_e={name:"Phone"},C_e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},k_e=R("path",{fill:"currentColor",d:"M79.36 432.256 591.744 944.64a32 32 0 0 0 35.2 6.784l253.44-108.544a32 32 0 0 0 9.984-52.032l-153.856-153.92a32 32 0 0 0-36.928-6.016l-69.888 34.944L358.08 394.24l35.008-69.888a32 32 0 0 0-5.952-36.928L233.152 133.568a32 32 0 0 0-52.032 10.048L72.512 397.056a32 32 0 0 0 6.784 35.2zm60.48-29.952 81.536-190.08L325.568 316.48l-24.64 49.216-20.608 41.216 32.576 32.64 271.552 271.552 32.64 32.64 41.216-20.672 49.28-24.576 104.192 104.128-190.08 81.472L139.84 402.304zM512 320v-64a256 256 0 0 1 256 256h-64a192 192 0 0 0-192-192zm0-192V64a448 448 0 0 1 448 448h-64a384 384 0 0 0-384-384z"},null,-1),T_e=[k_e];function $_e(e,t,n,r,o,s){return k(),D("svg",C_e,T_e)}var x_e=Se(E_e,[["render",$_e],["__file","phone.vue"]]),I_e={name:"PictureFilled"},A_e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},M_e=R("path",{fill:"currentColor",d:"M96 896a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h832a32 32 0 0 1 32 32v704a32 32 0 0 1-32 32H96zm315.52-228.48-68.928-68.928a32 32 0 0 0-45.248 0L128 768.064h778.688l-242.112-290.56a32 32 0 0 0-49.216 0L458.752 665.408a32 32 0 0 1-47.232 2.112zM256 384a96 96 0 1 0 192.064-.064A96 96 0 0 0 256 384z"},null,-1),O_e=[M_e];function R_e(e,t,n,r,o,s){return k(),D("svg",A_e,O_e)}var Jx=Se(I_e,[["render",R_e],["__file","picture-filled.vue"]]),P_e={name:"PictureRounded"},N_e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},L_e=R("path",{fill:"currentColor",d:"M512 128a384 384 0 1 0 0 768 384 384 0 0 0 0-768zm0-64a448 448 0 1 1 0 896 448 448 0 0 1 0-896z"},null,-1),B_e=R("path",{fill:"currentColor",d:"M640 288q64 0 64 64t-64 64q-64 0-64-64t64-64zM214.656 790.656l-45.312-45.312 185.664-185.6a96 96 0 0 1 123.712-10.24l138.24 98.688a32 32 0 0 0 39.872-2.176L906.688 422.4l42.624 47.744L699.52 693.696a96 96 0 0 1-119.808 6.592l-138.24-98.752a32 32 0 0 0-41.152 3.456l-185.664 185.6z"},null,-1),D_e=[L_e,B_e];function z_e(e,t,n,r,o,s){return k(),D("svg",N_e,D_e)}var F_e=Se(P_e,[["render",z_e],["__file","picture-rounded.vue"]]),H_e={name:"Picture"},V_e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},j_e=R("path",{fill:"currentColor",d:"M160 160v704h704V160H160zm-32-64h768a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H128a32 32 0 0 1-32-32V128a32 32 0 0 1 32-32z"},null,-1),U_e=R("path",{fill:"currentColor",d:"M384 288q64 0 64 64t-64 64q-64 0-64-64t64-64zM185.408 876.992l-50.816-38.912L350.72 556.032a96 96 0 0 1 134.592-17.856l1.856 1.472 122.88 99.136a32 32 0 0 0 44.992-4.864l216-269.888 49.92 39.936-215.808 269.824-.256.32a96 96 0 0 1-135.04 14.464l-122.88-99.072-.64-.512a32 32 0 0 0-44.8 5.952L185.408 876.992z"},null,-1),W_e=[j_e,U_e];function q_e(e,t,n,r,o,s){return k(),D("svg",V_e,W_e)}var K_e=Se(H_e,[["render",q_e],["__file","picture.vue"]]),G_e={name:"PieChart"},Y_e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},X_e=R("path",{fill:"currentColor",d:"M448 68.48v64.832A384.128 384.128 0 0 0 512 896a384.128 384.128 0 0 0 378.688-320h64.768A448.128 448.128 0 0 1 64 512 448.128 448.128 0 0 1 448 68.48z"},null,-1),J_e=R("path",{fill:"currentColor",d:"M576 97.28V448h350.72A384.064 384.064 0 0 0 576 97.28zM512 64V33.152A448 448 0 0 1 990.848 512H512V64z"},null,-1),Q_e=[X_e,J_e];function Z_e(e,t,n,r,o,s){return k(),D("svg",Y_e,Q_e)}var eye=Se(G_e,[["render",Z_e],["__file","pie-chart.vue"]]),tye={name:"Place"},nye={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},rye=R("path",{fill:"currentColor",d:"M512 512a192 192 0 1 0 0-384 192 192 0 0 0 0 384zm0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512z"},null,-1),oye=R("path",{fill:"currentColor",d:"M512 512a32 32 0 0 1 32 32v256a32 32 0 1 1-64 0V544a32 32 0 0 1 32-32z"},null,-1),sye=R("path",{fill:"currentColor",d:"M384 649.088v64.96C269.76 732.352 192 771.904 192 800c0 37.696 139.904 96 320 96s320-58.304 320-96c0-28.16-77.76-67.648-192-85.952v-64.96C789.12 671.04 896 730.368 896 800c0 88.32-171.904 160-384 160s-384-71.68-384-160c0-69.696 106.88-128.96 256-150.912z"},null,-1),aye=[rye,oye,sye];function iye(e,t,n,r,o,s){return k(),D("svg",nye,aye)}var lye=Se(tye,[["render",iye],["__file","place.vue"]]),uye={name:"Platform"},cye={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},dye=R("path",{fill:"currentColor",d:"M448 832v-64h128v64h192v64H256v-64h192zM128 704V128h768v576H128z"},null,-1),fye=[dye];function pye(e,t,n,r,o,s){return k(),D("svg",cye,fye)}var hye=Se(uye,[["render",pye],["__file","platform.vue"]]),mye={name:"Plus"},vye={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},gye=R("path",{fill:"currentColor",d:"M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64h352z"},null,-1),_ye=[gye];function yye(e,t,n,r,o,s){return k(),D("svg",vye,_ye)}var Z4=Se(mye,[["render",yye],["__file","plus.vue"]]),bye={name:"Pointer"},wye={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Sye=R("path",{fill:"currentColor",d:"M511.552 128c-35.584 0-64.384 28.8-64.384 64.448v516.48L274.048 570.88a94.272 94.272 0 0 0-112.896-3.456 44.416 44.416 0 0 0-8.96 62.208L332.8 870.4A64 64 0 0 0 384 896h512V575.232a64 64 0 0 0-45.632-61.312l-205.952-61.76A96 96 0 0 1 576 360.192V192.448C576 156.8 547.2 128 511.552 128zM359.04 556.8l24.128 19.2V192.448a128.448 128.448 0 1 1 256.832 0v167.744a32 32 0 0 0 22.784 30.656l206.016 61.76A128 128 0 0 1 960 575.232V896a64 64 0 0 1-64 64H384a128 128 0 0 1-102.4-51.2L101.056 668.032A108.416 108.416 0 0 1 128 512.512a158.272 158.272 0 0 1 185.984 8.32L359.04 556.8z"},null,-1),Eye=[Sye];function Cye(e,t,n,r,o,s){return k(),D("svg",wye,Eye)}var kye=Se(bye,[["render",Cye],["__file","pointer.vue"]]),Tye={name:"Position"},$ye={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},xye=R("path",{fill:"currentColor",d:"m249.6 417.088 319.744 43.072 39.168 310.272L845.12 178.88 249.6 417.088zm-129.024 47.168a32 32 0 0 1-7.68-61.44l777.792-311.04a32 32 0 0 1 41.6 41.6l-310.336 775.68a32 32 0 0 1-61.44-7.808L512 516.992l-391.424-52.736z"},null,-1),Iye=[xye];function Aye(e,t,n,r,o,s){return k(),D("svg",$ye,Iye)}var Mye=Se(Tye,[["render",Aye],["__file","position.vue"]]),Oye={name:"Postcard"},Rye={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Pye=R("path",{fill:"currentColor",d:"M160 224a32 32 0 0 0-32 32v512a32 32 0 0 0 32 32h704a32 32 0 0 0 32-32V256a32 32 0 0 0-32-32H160zm0-64h704a96 96 0 0 1 96 96v512a96 96 0 0 1-96 96H160a96 96 0 0 1-96-96V256a96 96 0 0 1 96-96z"},null,-1),Nye=R("path",{fill:"currentColor",d:"M704 320a64 64 0 1 1 0 128 64 64 0 0 1 0-128zM288 448h256q32 0 32 32t-32 32H288q-32 0-32-32t32-32zm0 128h256q32 0 32 32t-32 32H288q-32 0-32-32t32-32z"},null,-1),Lye=[Pye,Nye];function Bye(e,t,n,r,o,s){return k(),D("svg",Rye,Lye)}var Dye=Se(Oye,[["render",Bye],["__file","postcard.vue"]]),zye={name:"Pouring"},Fye={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Hye=R("path",{fill:"currentColor",d:"m739.328 291.328-35.2-6.592-12.8-33.408a192.064 192.064 0 0 0-365.952 23.232l-9.92 40.896-41.472 7.04a176.32 176.32 0 0 0-146.24 173.568c0 97.28 78.72 175.936 175.808 175.936h400a192 192 0 0 0 35.776-380.672zM959.552 480a256 256 0 0 1-256 256h-400A239.808 239.808 0 0 1 63.744 496.192a240.32 240.32 0 0 1 199.488-236.8 256.128 256.128 0 0 1 487.872-30.976A256.064 256.064 0 0 1 959.552 480zM224 800a32 32 0 0 1 32 32v96a32 32 0 1 1-64 0v-96a32 32 0 0 1 32-32zm192 0a32 32 0 0 1 32 32v96a32 32 0 1 1-64 0v-96a32 32 0 0 1 32-32zm192 0a32 32 0 0 1 32 32v96a32 32 0 1 1-64 0v-96a32 32 0 0 1 32-32zm192 0a32 32 0 0 1 32 32v96a32 32 0 1 1-64 0v-96a32 32 0 0 1 32-32z"},null,-1),Vye=[Hye];function jye(e,t,n,r,o,s){return k(),D("svg",Fye,Vye)}var Uye=Se(zye,[["render",jye],["__file","pouring.vue"]]),Wye={name:"Present"},qye={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Kye=R("path",{fill:"currentColor",d:"M480 896V640H192v-64h288V320H192v576h288zm64 0h288V320H544v256h288v64H544v256zM128 256h768v672a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V256z"},null,-1),Gye=R("path",{fill:"currentColor",d:"M96 256h832q32 0 32 32t-32 32H96q-32 0-32-32t32-32z"},null,-1),Yye=R("path",{fill:"currentColor",d:"M416 256a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256z"},null,-1),Xye=R("path",{fill:"currentColor",d:"M608 256a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256z"},null,-1),Jye=[Kye,Gye,Yye,Xye];function Qye(e,t,n,r,o,s){return k(),D("svg",qye,Jye)}var Zye=Se(Wye,[["render",Qye],["__file","present.vue"]]),e4e={name:"PriceTag"},t4e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},n4e=R("path",{fill:"currentColor",d:"M224 318.336V896h576V318.336L552.512 115.84a64 64 0 0 0-81.024 0L224 318.336zM593.024 66.304l259.2 212.096A32 32 0 0 1 864 303.168V928a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32V303.168a32 32 0 0 1 11.712-24.768l259.2-212.096a128 128 0 0 1 162.112 0z"},null,-1),r4e=R("path",{fill:"currentColor",d:"M512 448a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256z"},null,-1),o4e=[n4e,r4e];function s4e(e,t,n,r,o,s){return k(),D("svg",t4e,o4e)}var a4e=Se(e4e,[["render",s4e],["__file","price-tag.vue"]]),i4e={name:"Printer"},l4e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},u4e=R("path",{fill:"currentColor",d:"M256 768H105.024c-14.272 0-19.456-1.472-24.64-4.288a29.056 29.056 0 0 1-12.16-12.096C65.536 746.432 64 741.248 64 727.04V379.072c0-42.816 4.48-58.304 12.8-73.984 8.384-15.616 20.672-27.904 36.288-36.288 15.68-8.32 31.168-12.8 73.984-12.8H256V64h512v192h68.928c42.816 0 58.304 4.48 73.984 12.8 15.616 8.384 27.904 20.672 36.288 36.288 8.32 15.68 12.8 31.168 12.8 73.984v347.904c0 14.272-1.472 19.456-4.288 24.64a29.056 29.056 0 0 1-12.096 12.16c-5.184 2.752-10.368 4.224-24.64 4.224H768v192H256V768zm64-192v320h384V576H320zm-64 128V512h512v192h128V379.072c0-29.376-1.408-36.48-5.248-43.776a23.296 23.296 0 0 0-10.048-10.048c-7.232-3.84-14.4-5.248-43.776-5.248H187.072c-29.376 0-36.48 1.408-43.776 5.248a23.296 23.296 0 0 0-10.048 10.048c-3.84 7.232-5.248 14.4-5.248 43.776V704h128zm64-448h384V128H320v128zm-64 128h64v64h-64v-64zm128 0h64v64h-64v-64z"},null,-1),c4e=[u4e];function d4e(e,t,n,r,o,s){return k(),D("svg",l4e,c4e)}var f4e=Se(i4e,[["render",d4e],["__file","printer.vue"]]),p4e={name:"Promotion"},h4e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},m4e=R("path",{fill:"currentColor",d:"m64 448 832-320-128 704-446.08-243.328L832 192 242.816 545.472 64 448zm256 512V657.024L512 768 320 960z"},null,-1),v4e=[m4e];function g4e(e,t,n,r,o,s){return k(),D("svg",h4e,v4e)}var _4e=Se(p4e,[["render",g4e],["__file","promotion.vue"]]),y4e={name:"QuartzWatch"},b4e={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024",style:{"enable-background":"new 0 0 1024 1024"},"xml:space":"preserve"},w4e=R("path",{d:"M422.02 602.01v-.03c-6.68-5.99-14.35-8.83-23.01-8.51-8.67.32-16.17 3.66-22.5 10.02-6.33 6.36-9.5 13.7-9.5 22.02s3 15.82 8.99 22.5c8.68 8.68 19.02 11.35 31.01 8s19.49-10.85 22.5-22.5c3.01-11.65.51-22.15-7.49-31.49v-.01zM384 512c0-9.35-3-17.02-8.99-23.01-6-5.99-13.66-8.99-23.01-8.99-9.35 0-17.02 3-23.01 8.99-5.99 6-8.99 13.66-8.99 23.01s3 17.02 8.99 23.01c6 5.99 13.66 8.99 23.01 8.99 9.35 0 17.02-3 23.01-8.99 5.99-6 8.99-13.67 8.99-23.01zm6.53-82.49c11.65 3.01 22.15.51 31.49-7.49h.04c5.99-6.68 8.83-14.34 8.51-23.01-.32-8.67-3.66-16.16-10.02-22.5-6.36-6.33-13.7-9.5-22.02-9.5s-15.82 3-22.5 8.99c-8.68 8.69-11.35 19.02-8 31.01 3.35 11.99 10.85 19.49 22.5 22.5zm242.94 0c11.67-3.03 19.01-10.37 22.02-22.02 3.01-11.65.51-22.15-7.49-31.49h.01c-6.68-5.99-14.18-8.99-22.5-8.99s-15.66 3.16-22.02 9.5c-6.36 6.34-9.7 13.84-10.02 22.5-.32 8.66 2.52 16.33 8.51 23.01 9.32 8.02 19.82 10.52 31.49 7.49zM512 640c-9.35 0-17.02 3-23.01 8.99-5.99 6-8.99 13.66-8.99 23.01s3 17.02 8.99 23.01c6 5.99 13.67 8.99 23.01 8.99 9.35 0 17.02-3 23.01-8.99 5.99-6 8.99-13.66 8.99-23.01s-3-17.02-8.99-23.01c-6-5.99-13.66-8.99-23.01-8.99zm183.01-151.01c-6-5.99-13.66-8.99-23.01-8.99s-17.02 3-23.01 8.99c-5.99 6-8.99 13.66-8.99 23.01s3 17.02 8.99 23.01c6 5.99 13.66 8.99 23.01 8.99s17.02-3 23.01-8.99c5.99-6 8.99-13.67 8.99-23.01 0-9.35-3-17.02-8.99-23.01z",fill:"currentColor"},null,-1),S4e=R("path",{d:"M832 512c-2-90.67-33.17-166.17-93.5-226.5-20.43-20.42-42.6-37.49-66.5-51.23V64H352v170.26c-23.9 13.74-46.07 30.81-66.5 51.24-60.33 60.33-91.49 135.83-93.5 226.5 2 90.67 33.17 166.17 93.5 226.5 20.43 20.43 42.6 37.5 66.5 51.24V960h320V789.74c23.9-13.74 46.07-30.81 66.5-51.24 60.33-60.34 91.49-135.83 93.5-226.5zM416 128h192v78.69c-29.85-9.03-61.85-13.93-96-14.69-34.15.75-66.15 5.65-96 14.68V128zm192 768H416v-78.68c29.85 9.03 61.85 13.93 96 14.68 34.15-.75 66.15-5.65 96-14.68V896zm-96-128c-72.66-2.01-132.99-27.01-180.99-75.01S258.01 584.66 256 512c2.01-72.66 27.01-132.99 75.01-180.99S439.34 258.01 512 256c72.66 2.01 132.99 27.01 180.99 75.01S765.99 439.34 768 512c-2.01 72.66-27.01 132.99-75.01 180.99S584.66 765.99 512 768z",fill:"currentColor"},null,-1),E4e=R("path",{d:"M512 320c-9.35 0-17.02 3-23.01 8.99-5.99 6-8.99 13.66-8.99 23.01 0 9.35 3 17.02 8.99 23.01 6 5.99 13.67 8.99 23.01 8.99 9.35 0 17.02-3 23.01-8.99 5.99-6 8.99-13.66 8.99-23.01 0-9.35-3-17.02-8.99-23.01-6-5.99-13.66-8.99-23.01-8.99zm112.99 273.5c-8.66-.32-16.33 2.52-23.01 8.51-7.98 9.32-10.48 19.82-7.49 31.49s10.49 19.17 22.5 22.5 22.35.66 31.01-8v.04c5.99-6.68 8.99-14.18 8.99-22.5s-3.16-15.66-9.5-22.02-13.84-9.7-22.5-10.02z",fill:"currentColor"},null,-1),C4e=[w4e,S4e,E4e];function k4e(e,t,n,r,o,s){return k(),D("svg",b4e,C4e)}var T4e=Se(y4e,[["render",k4e],["__file","quartz-watch.vue"]]),$4e={name:"QuestionFilled"},x4e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},I4e=R("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm23.744 191.488c-52.096 0-92.928 14.784-123.2 44.352-30.976 29.568-45.76 70.4-45.76 122.496h80.256c0-29.568 5.632-52.8 17.6-68.992 13.376-19.712 35.2-28.864 66.176-28.864 23.936 0 42.944 6.336 56.32 19.712 12.672 13.376 19.712 31.68 19.712 54.912 0 17.6-6.336 34.496-19.008 49.984l-8.448 9.856c-45.76 40.832-73.216 70.4-82.368 89.408-9.856 19.008-14.08 42.24-14.08 68.992v9.856h80.96v-9.856c0-16.896 3.52-31.68 10.56-45.76 6.336-12.672 15.488-24.64 28.16-35.2 33.792-29.568 54.208-48.576 60.544-55.616 16.896-22.528 26.048-51.392 26.048-86.592 0-42.944-14.08-76.736-42.24-101.376-28.16-25.344-65.472-37.312-111.232-37.312zm-12.672 406.208a54.272 54.272 0 0 0-38.72 14.784 49.408 49.408 0 0 0-15.488 38.016c0 15.488 4.928 28.16 15.488 38.016A54.848 54.848 0 0 0 523.072 768c15.488 0 28.16-4.928 38.72-14.784a51.52 51.52 0 0 0 16.192-38.72 51.968 51.968 0 0 0-15.488-38.016 55.936 55.936 0 0 0-39.424-14.784z"},null,-1),A4e=[I4e];function M4e(e,t,n,r,o,s){return k(),D("svg",x4e,A4e)}var Qx=Se($4e,[["render",M4e],["__file","question-filled.vue"]]),O4e={name:"Rank"},R4e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},P4e=R("path",{fill:"currentColor",d:"m186.496 544 41.408 41.344a32 32 0 1 1-45.248 45.312l-96-96a32 32 0 0 1 0-45.312l96-96a32 32 0 1 1 45.248 45.312L186.496 480h290.816V186.432l-41.472 41.472a32 32 0 1 1-45.248-45.184l96-96.128a32 32 0 0 1 45.312 0l96 96.064a32 32 0 0 1-45.248 45.184l-41.344-41.28V480H832l-41.344-41.344a32 32 0 0 1 45.248-45.312l96 96a32 32 0 0 1 0 45.312l-96 96a32 32 0 0 1-45.248-45.312L832 544H541.312v293.44l41.344-41.28a32 32 0 1 1 45.248 45.248l-96 96a32 32 0 0 1-45.312 0l-96-96a32 32 0 1 1 45.312-45.248l41.408 41.408V544H186.496z"},null,-1),N4e=[P4e];function L4e(e,t,n,r,o,s){return k(),D("svg",R4e,N4e)}var B4e=Se(O4e,[["render",L4e],["__file","rank.vue"]]),D4e={name:"ReadingLamp"},z4e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},F4e=R("path",{fill:"currentColor",d:"M352 896h320q32 0 32 32t-32 32H352q-32 0-32-32t32-32zm-44.672-768-99.52 448h608.384l-99.52-448H307.328zm-25.6-64h460.608a32 32 0 0 1 31.232 25.088l113.792 512A32 32 0 0 1 856.128 640H167.872a32 32 0 0 1-31.232-38.912l113.792-512A32 32 0 0 1 281.664 64z"},null,-1),H4e=R("path",{fill:"currentColor",d:"M672 576q32 0 32 32v128q0 32-32 32t-32-32V608q0-32 32-32zm-192-.064h64V960h-64z"},null,-1),V4e=[F4e,H4e];function j4e(e,t,n,r,o,s){return k(),D("svg",z4e,V4e)}var U4e=Se(D4e,[["render",j4e],["__file","reading-lamp.vue"]]),W4e={name:"Reading"},q4e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},K4e=R("path",{fill:"currentColor",d:"m512 863.36 384-54.848v-638.72L525.568 222.72a96 96 0 0 1-27.136 0L128 169.792v638.72l384 54.848zM137.024 106.432l370.432 52.928a32 32 0 0 0 9.088 0l370.432-52.928A64 64 0 0 1 960 169.792v638.72a64 64 0 0 1-54.976 63.36l-388.48 55.488a32 32 0 0 1-9.088 0l-388.48-55.488A64 64 0 0 1 64 808.512v-638.72a64 64 0 0 1 73.024-63.36z"},null,-1),G4e=R("path",{fill:"currentColor",d:"M480 192h64v704h-64z"},null,-1),Y4e=[K4e,G4e];function X4e(e,t,n,r,o,s){return k(),D("svg",q4e,Y4e)}var J4e=Se(W4e,[["render",X4e],["__file","reading.vue"]]),Q4e={name:"RefreshLeft"},Z4e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},ebe=R("path",{fill:"currentColor",d:"M289.088 296.704h92.992a32 32 0 0 1 0 64H232.96a32 32 0 0 1-32-32V179.712a32 32 0 0 1 64 0v50.56a384 384 0 0 1 643.84 282.88 384 384 0 0 1-383.936 384 384 384 0 0 1-384-384h64a320 320 0 1 0 640 0 320 320 0 0 0-555.712-216.448z"},null,-1),tbe=[ebe];function nbe(e,t,n,r,o,s){return k(),D("svg",Z4e,tbe)}var Zx=Se(Q4e,[["render",nbe],["__file","refresh-left.vue"]]),rbe={name:"RefreshRight"},obe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},sbe=R("path",{fill:"currentColor",d:"M784.512 230.272v-50.56a32 32 0 1 1 64 0v149.056a32 32 0 0 1-32 32H667.52a32 32 0 1 1 0-64h92.992A320 320 0 1 0 524.8 833.152a320 320 0 0 0 320-320h64a384 384 0 0 1-384 384 384 384 0 0 1-384-384 384 384 0 0 1 643.712-282.88z"},null,-1),abe=[sbe];function ibe(e,t,n,r,o,s){return k(),D("svg",obe,abe)}var e7=Se(rbe,[["render",ibe],["__file","refresh-right.vue"]]),lbe={name:"Refresh"},ube={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},cbe=R("path",{fill:"currentColor",d:"M771.776 794.88A384 384 0 0 1 128 512h64a320 320 0 0 0 555.712 216.448H654.72a32 32 0 1 1 0-64h149.056a32 32 0 0 1 32 32v148.928a32 32 0 1 1-64 0v-50.56zM276.288 295.616h92.992a32 32 0 0 1 0 64H220.16a32 32 0 0 1-32-32V178.56a32 32 0 0 1 64 0v50.56A384 384 0 0 1 896.128 512h-64a320 320 0 0 0-555.776-216.384z"},null,-1),dbe=[cbe];function fbe(e,t,n,r,o,s){return k(),D("svg",ube,dbe)}var pbe=Se(lbe,[["render",fbe],["__file","refresh.vue"]]),hbe={name:"Refrigerator"},mbe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},vbe=R("path",{fill:"currentColor",d:"M256 448h512V160a32 32 0 0 0-32-32H288a32 32 0 0 0-32 32v288zm0 64v352a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V512H256zm32-448h448a96 96 0 0 1 96 96v704a96 96 0 0 1-96 96H288a96 96 0 0 1-96-96V160a96 96 0 0 1 96-96zm32 224h64v96h-64v-96zm0 288h64v96h-64v-96z"},null,-1),gbe=[vbe];function _be(e,t,n,r,o,s){return k(),D("svg",mbe,gbe)}var ybe=Se(hbe,[["render",_be],["__file","refrigerator.vue"]]),bbe={name:"RemoveFilled"},wbe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Sbe=R("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zM288 512a38.4 38.4 0 0 0 38.4 38.4h371.2a38.4 38.4 0 0 0 0-76.8H326.4A38.4 38.4 0 0 0 288 512z"},null,-1),Ebe=[Sbe];function Cbe(e,t,n,r,o,s){return k(),D("svg",wbe,Ebe)}var kbe=Se(bbe,[["render",Cbe],["__file","remove-filled.vue"]]),Tbe={name:"Remove"},$be={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},xbe=R("path",{fill:"currentColor",d:"M352 480h320a32 32 0 1 1 0 64H352a32 32 0 0 1 0-64z"},null,-1),Ibe=R("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"},null,-1),Abe=[xbe,Ibe];function Mbe(e,t,n,r,o,s){return k(),D("svg",$be,Abe)}var Obe=Se(Tbe,[["render",Mbe],["__file","remove.vue"]]),Rbe={name:"Right"},Pbe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Nbe=R("path",{fill:"currentColor",d:"M754.752 480H160a32 32 0 1 0 0 64h594.752L521.344 777.344a32 32 0 0 0 45.312 45.312l288-288a32 32 0 0 0 0-45.312l-288-288a32 32 0 1 0-45.312 45.312L754.752 480z"},null,-1),Lbe=[Nbe];function Bbe(e,t,n,r,o,s){return k(),D("svg",Pbe,Lbe)}var Dbe=Se(Rbe,[["render",Bbe],["__file","right.vue"]]),zbe={name:"ScaleToOriginal"},Fbe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Hbe=R("path",{fill:"currentColor",d:"M813.176 180.706a60.235 60.235 0 0 1 60.236 60.235v481.883a60.235 60.235 0 0 1-60.236 60.235H210.824a60.235 60.235 0 0 1-60.236-60.235V240.94a60.235 60.235 0 0 1 60.236-60.235h602.352zm0-60.235H210.824A120.47 120.47 0 0 0 90.353 240.94v481.883a120.47 120.47 0 0 0 120.47 120.47h602.353a120.47 120.47 0 0 0 120.471-120.47V240.94a120.47 120.47 0 0 0-120.47-120.47zm-120.47 180.705a30.118 30.118 0 0 0-30.118 30.118v301.177a30.118 30.118 0 0 0 60.236 0V331.294a30.118 30.118 0 0 0-30.118-30.118zm-361.412 0a30.118 30.118 0 0 0-30.118 30.118v301.177a30.118 30.118 0 1 0 60.236 0V331.294a30.118 30.118 0 0 0-30.118-30.118zM512 361.412a30.118 30.118 0 0 0-30.118 30.117v30.118a30.118 30.118 0 0 0 60.236 0V391.53A30.118 30.118 0 0 0 512 361.412zM512 512a30.118 30.118 0 0 0-30.118 30.118v30.117a30.118 30.118 0 0 0 60.236 0v-30.117A30.118 30.118 0 0 0 512 512z"},null,-1),Vbe=[Hbe];function jbe(e,t,n,r,o,s){return k(),D("svg",Fbe,Vbe)}var t7=Se(zbe,[["render",jbe],["__file","scale-to-original.vue"]]),Ube={name:"School"},Wbe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},qbe=R("path",{fill:"currentColor",d:"M224 128v704h576V128H224zm-32-64h640a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32z"},null,-1),Kbe=R("path",{fill:"currentColor",d:"M64 832h896v64H64zm256-640h128v96H320z"},null,-1),Gbe=R("path",{fill:"currentColor",d:"M384 832h256v-64a128 128 0 1 0-256 0v64zm128-256a192 192 0 0 1 192 192v128H320V768a192 192 0 0 1 192-192zM320 384h128v96H320zm256-192h128v96H576zm0 192h128v96H576z"},null,-1),Ybe=[qbe,Kbe,Gbe];function Xbe(e,t,n,r,o,s){return k(),D("svg",Wbe,Ybe)}var Jbe=Se(Ube,[["render",Xbe],["__file","school.vue"]]),Qbe={name:"Scissor"},Zbe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},e3e=R("path",{fill:"currentColor",d:"m512.064 578.368-106.88 152.768a160 160 0 1 1-23.36-78.208L472.96 522.56 196.864 128.256a32 32 0 1 1 52.48-36.736l393.024 561.344a160 160 0 1 1-23.36 78.208l-106.88-152.704zm54.4-189.248 208.384-297.6a32 32 0 0 1 52.48 36.736l-221.76 316.672-39.04-55.808zm-376.32 425.856a96 96 0 1 0 110.144-157.248 96 96 0 0 0-110.08 157.248zm643.84 0a96 96 0 1 0-110.08-157.248 96 96 0 0 0 110.08 157.248z"},null,-1),t3e=[e3e];function n3e(e,t,n,r,o,s){return k(),D("svg",Zbe,t3e)}var r3e=Se(Qbe,[["render",n3e],["__file","scissor.vue"]]),o3e={name:"Search"},s3e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},a3e=R("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704z"},null,-1),i3e=[a3e];function l3e(e,t,n,r,o,s){return k(),D("svg",s3e,i3e)}var n7=Se(o3e,[["render",l3e],["__file","search.vue"]]),u3e={name:"Select"},c3e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},d3e=R("path",{fill:"currentColor",d:"M77.248 415.04a64 64 0 0 1 90.496 0l226.304 226.304L846.528 188.8a64 64 0 1 1 90.56 90.496l-543.04 543.04-316.8-316.8a64 64 0 0 1 0-90.496z"},null,-1),f3e=[d3e];function p3e(e,t,n,r,o,s){return k(),D("svg",c3e,f3e)}var h3e=Se(u3e,[["render",p3e],["__file","select.vue"]]),m3e={name:"Sell"},v3e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},g3e=R("path",{fill:"currentColor",d:"M704 288h131.072a32 32 0 0 1 31.808 28.8L886.4 512h-64.384l-16-160H704v96a32 32 0 1 1-64 0v-96H384v96a32 32 0 0 1-64 0v-96H217.92l-51.2 512H512v64H131.328a32 32 0 0 1-31.808-35.2l57.6-576a32 32 0 0 1 31.808-28.8H320v-22.336C320 154.688 405.504 64 512 64s192 90.688 192 201.664v22.4zm-64 0v-22.336C640 189.248 582.272 128 512 128c-70.272 0-128 61.248-128 137.664v22.4h256zm201.408 483.84L768 698.496V928a32 32 0 1 1-64 0V698.496l-73.344 73.344a32 32 0 1 1-45.248-45.248l128-128a32 32 0 0 1 45.248 0l128 128a32 32 0 1 1-45.248 45.248z"},null,-1),_3e=[g3e];function y3e(e,t,n,r,o,s){return k(),D("svg",v3e,_3e)}var b3e=Se(m3e,[["render",y3e],["__file","sell.vue"]]),w3e={name:"SemiSelect"},S3e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},E3e=R("path",{fill:"currentColor",d:"M128 448h768q64 0 64 64t-64 64H128q-64 0-64-64t64-64z"},null,-1),C3e=[E3e];function k3e(e,t,n,r,o,s){return k(),D("svg",S3e,C3e)}var T3e=Se(w3e,[["render",k3e],["__file","semi-select.vue"]]),$3e={name:"Service"},x3e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},I3e=R("path",{fill:"currentColor",d:"M864 409.6a192 192 0 0 1-37.888 349.44A256.064 256.064 0 0 1 576 960h-96a32 32 0 1 1 0-64h96a192.064 192.064 0 0 0 181.12-128H736a32 32 0 0 1-32-32V416a32 32 0 0 1 32-32h32c10.368 0 20.544.832 30.528 2.432a288 288 0 0 0-573.056 0A193.235 193.235 0 0 1 256 384h32a32 32 0 0 1 32 32v320a32 32 0 0 1-32 32h-32a192 192 0 0 1-96-358.4 352 352 0 0 1 704 0zM256 448a128 128 0 1 0 0 256V448zm640 128a128 128 0 0 0-128-128v256a128 128 0 0 0 128-128z"},null,-1),A3e=[I3e];function M3e(e,t,n,r,o,s){return k(),D("svg",x3e,A3e)}var O3e=Se($3e,[["render",M3e],["__file","service.vue"]]),R3e={name:"SetUp"},P3e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},N3e=R("path",{fill:"currentColor",d:"M224 160a64 64 0 0 0-64 64v576a64 64 0 0 0 64 64h576a64 64 0 0 0 64-64V224a64 64 0 0 0-64-64H224zm0-64h576a128 128 0 0 1 128 128v576a128 128 0 0 1-128 128H224A128 128 0 0 1 96 800V224A128 128 0 0 1 224 96z"},null,-1),L3e=R("path",{fill:"currentColor",d:"M384 416a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256z"},null,-1),B3e=R("path",{fill:"currentColor",d:"M480 320h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32zm160 416a64 64 0 1 0 0-128 64 64 0 0 0 0 128zm0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256z"},null,-1),D3e=R("path",{fill:"currentColor",d:"M288 640h256q32 0 32 32t-32 32H288q-32 0-32-32t32-32z"},null,-1),z3e=[N3e,L3e,B3e,D3e];function F3e(e,t,n,r,o,s){return k(),D("svg",P3e,z3e)}var H3e=Se(R3e,[["render",F3e],["__file","set-up.vue"]]),V3e={name:"Setting"},j3e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},U3e=R("path",{fill:"currentColor",d:"M600.704 64a32 32 0 0 1 30.464 22.208l35.2 109.376c14.784 7.232 28.928 15.36 42.432 24.512l112.384-24.192a32 32 0 0 1 34.432 15.36L944.32 364.8a32 32 0 0 1-4.032 37.504l-77.12 85.12a357.12 357.12 0 0 1 0 49.024l77.12 85.248a32 32 0 0 1 4.032 37.504l-88.704 153.6a32 32 0 0 1-34.432 15.296L708.8 803.904c-13.44 9.088-27.648 17.28-42.368 24.512l-35.264 109.376A32 32 0 0 1 600.704 960H423.296a32 32 0 0 1-30.464-22.208L357.696 828.48a351.616 351.616 0 0 1-42.56-24.64l-112.32 24.256a32 32 0 0 1-34.432-15.36L79.68 659.2a32 32 0 0 1 4.032-37.504l77.12-85.248a357.12 357.12 0 0 1 0-48.896l-77.12-85.248A32 32 0 0 1 79.68 364.8l88.704-153.6a32 32 0 0 1 34.432-15.296l112.32 24.256c13.568-9.152 27.776-17.408 42.56-24.64l35.2-109.312A32 32 0 0 1 423.232 64H600.64zm-23.424 64H446.72l-36.352 113.088-24.512 11.968a294.113 294.113 0 0 0-34.816 20.096l-22.656 15.36-116.224-25.088-65.28 113.152 79.68 88.192-1.92 27.136a293.12 293.12 0 0 0 0 40.192l1.92 27.136-79.808 88.192 65.344 113.152 116.224-25.024 22.656 15.296a294.113 294.113 0 0 0 34.816 20.096l24.512 11.968L446.72 896h130.688l36.48-113.152 24.448-11.904a288.282 288.282 0 0 0 34.752-20.096l22.592-15.296 116.288 25.024 65.28-113.152-79.744-88.192 1.92-27.136a293.12 293.12 0 0 0 0-40.256l-1.92-27.136 79.808-88.128-65.344-113.152-116.288 24.96-22.592-15.232a287.616 287.616 0 0 0-34.752-20.096l-24.448-11.904L577.344 128zM512 320a192 192 0 1 1 0 384 192 192 0 0 1 0-384zm0 64a128 128 0 1 0 0 256 128 128 0 0 0 0-256z"},null,-1),W3e=[U3e];function q3e(e,t,n,r,o,s){return k(),D("svg",j3e,W3e)}var K3e=Se(V3e,[["render",q3e],["__file","setting.vue"]]),G3e={name:"Share"},Y3e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},X3e=R("path",{fill:"currentColor",d:"m679.872 348.8-301.76 188.608a127.808 127.808 0 0 1 5.12 52.16l279.936 104.96a128 128 0 1 1-22.464 59.904l-279.872-104.96a128 128 0 1 1-16.64-166.272l301.696-188.608a128 128 0 1 1 33.92 54.272z"},null,-1),J3e=[X3e];function Q3e(e,t,n,r,o,s){return k(),D("svg",Y3e,J3e)}var Z3e=Se(G3e,[["render",Q3e],["__file","share.vue"]]),e6e={name:"Ship"},t6e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},n6e=R("path",{fill:"currentColor",d:"M512 386.88V448h405.568a32 32 0 0 1 30.72 40.768l-76.48 267.968A192 192 0 0 1 687.168 896H336.832a192 192 0 0 1-184.64-139.264L75.648 488.768A32 32 0 0 1 106.368 448H448V117.888a32 32 0 0 1 47.36-28.096l13.888 7.616L512 96v2.88l231.68 126.4a32 32 0 0 1-2.048 57.216L512 386.88zm0-70.272 144.768-65.792L512 171.84v144.768zM512 512H148.864l18.24 64H856.96l18.24-64H512zM185.408 640l28.352 99.2A128 128 0 0 0 336.832 832h350.336a128 128 0 0 0 123.072-92.8l28.352-99.2H185.408z"},null,-1),r6e=[n6e];function o6e(e,t,n,r,o,s){return k(),D("svg",t6e,r6e)}var s6e=Se(e6e,[["render",o6e],["__file","ship.vue"]]),a6e={name:"Shop"},i6e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},l6e=R("path",{fill:"currentColor",d:"M704 704h64v192H256V704h64v64h384v-64zm188.544-152.192C894.528 559.616 896 567.616 896 576a96 96 0 1 1-192 0 96 96 0 1 1-192 0 96 96 0 1 1-192 0 96 96 0 1 1-192 0c0-8.384 1.408-16.384 3.392-24.192L192 128h640l60.544 423.808z"},null,-1),u6e=[l6e];function c6e(e,t,n,r,o,s){return k(),D("svg",i6e,u6e)}var d6e=Se(a6e,[["render",c6e],["__file","shop.vue"]]),f6e={name:"ShoppingBag"},p6e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},h6e=R("path",{fill:"currentColor",d:"M704 320v96a32 32 0 0 1-32 32h-32V320H384v128h-32a32 32 0 0 1-32-32v-96H192v576h640V320H704zm-384-64a192 192 0 1 1 384 0h160a32 32 0 0 1 32 32v640a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V288a32 32 0 0 1 32-32h160zm64 0h256a128 128 0 1 0-256 0z"},null,-1),m6e=R("path",{fill:"currentColor",d:"M192 704h640v64H192z"},null,-1),v6e=[h6e,m6e];function g6e(e,t,n,r,o,s){return k(),D("svg",p6e,v6e)}var _6e=Se(f6e,[["render",g6e],["__file","shopping-bag.vue"]]),y6e={name:"ShoppingCartFull"},b6e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},w6e=R("path",{fill:"currentColor",d:"M432 928a48 48 0 1 1 0-96 48 48 0 0 1 0 96zm320 0a48 48 0 1 1 0-96 48 48 0 0 1 0 96zM96 128a32 32 0 0 1 0-64h160a32 32 0 0 1 31.36 25.728L320.64 256H928a32 32 0 0 1 31.296 38.72l-96 448A32 32 0 0 1 832 768H384a32 32 0 0 1-31.36-25.728L229.76 128H96zm314.24 576h395.904l82.304-384H333.44l76.8 384z"},null,-1),S6e=R("path",{fill:"currentColor",d:"M699.648 256 608 145.984 516.352 256h183.296zm-140.8-151.04a64 64 0 0 1 98.304 0L836.352 320H379.648l179.2-215.04z"},null,-1),E6e=[w6e,S6e];function C6e(e,t,n,r,o,s){return k(),D("svg",b6e,E6e)}var k6e=Se(y6e,[["render",C6e],["__file","shopping-cart-full.vue"]]),T6e={name:"ShoppingCart"},$6e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},x6e=R("path",{fill:"currentColor",d:"M432 928a48 48 0 1 1 0-96 48 48 0 0 1 0 96zm320 0a48 48 0 1 1 0-96 48 48 0 0 1 0 96zM96 128a32 32 0 0 1 0-64h160a32 32 0 0 1 31.36 25.728L320.64 256H928a32 32 0 0 1 31.296 38.72l-96 448A32 32 0 0 1 832 768H384a32 32 0 0 1-31.36-25.728L229.76 128H96zm314.24 576h395.904l82.304-384H333.44l76.8 384z"},null,-1),I6e=[x6e];function A6e(e,t,n,r,o,s){return k(),D("svg",$6e,I6e)}var M6e=Se(T6e,[["render",A6e],["__file","shopping-cart.vue"]]),O6e={name:"ShoppingTrolley"},R6e={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024",style:{"enable-background":"new 0 0 1024 1024"},"xml:space":"preserve"},P6e=R("path",{d:"M368 833c-13.3 0-24.5 4.5-33.5 13.5S321 866.7 321 880s4.5 24.5 13.5 33.5 20.2 13.8 33.5 14.5c13.3-.7 24.5-5.5 33.5-14.5S415 893.3 415 880s-4.5-24.5-13.5-33.5S381.3 833 368 833zm439-193c7.4 0 13.8-2.2 19.5-6.5S836 623.3 838 616l112-448c2-10-.2-19.2-6.5-27.5S929 128 919 128H96c-9.3 0-17 3-23 9s-9 13.7-9 23 3 17 9 23 13.7 9 23 9h96v576h672c9.3 0 17-3 23-9s9-13.7 9-23-3-17-9-23-13.7-9-23-9H256v-64h551zM256 192h622l-96 384H256V192zm432 641c-13.3 0-24.5 4.5-33.5 13.5S641 866.7 641 880s4.5 24.5 13.5 33.5 20.2 13.8 33.5 14.5c13.3-.7 24.5-5.5 33.5-14.5S735 893.3 735 880s-4.5-24.5-13.5-33.5S701.3 833 688 833z",fill:"currentColor"},null,-1),N6e=[P6e];function L6e(e,t,n,r,o,s){return k(),D("svg",R6e,N6e)}var B6e=Se(O6e,[["render",L6e],["__file","shopping-trolley.vue"]]),D6e={name:"Smoking"},z6e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},F6e=R("path",{fill:"currentColor",d:"M256 576v128h640V576H256zm-32-64h704a32 32 0 0 1 32 32v192a32 32 0 0 1-32 32H224a32 32 0 0 1-32-32V544a32 32 0 0 1 32-32z"},null,-1),H6e=R("path",{fill:"currentColor",d:"M704 576h64v128h-64zM256 64h64v320h-64zM128 192h64v192h-64zM64 512h64v256H64z"},null,-1),V6e=[F6e,H6e];function j6e(e,t,n,r,o,s){return k(),D("svg",z6e,V6e)}var U6e=Se(D6e,[["render",j6e],["__file","smoking.vue"]]),W6e={name:"Soccer"},q6e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},K6e=R("path",{fill:"currentColor",d:"M418.496 871.04 152.256 604.8c-16.512 94.016-2.368 178.624 42.944 224 44.928 44.928 129.344 58.752 223.296 42.24zm72.32-18.176a573.056 573.056 0 0 0 224.832-137.216 573.12 573.12 0 0 0 137.216-224.832L533.888 171.84a578.56 578.56 0 0 0-227.52 138.496A567.68 567.68 0 0 0 170.432 532.48l320.384 320.384zM871.04 418.496c16.512-93.952 2.688-178.368-42.24-223.296-44.544-44.544-128.704-58.048-222.592-41.536L871.04 418.496zM149.952 874.048c-112.96-112.96-88.832-408.96 111.168-608.96C461.056 65.152 760.96 36.928 874.048 149.952c113.024 113.024 86.784 411.008-113.152 610.944-199.936 199.936-497.92 226.112-610.944 113.152zm452.544-497.792 22.656-22.656a32 32 0 0 1 45.248 45.248l-22.656 22.656 45.248 45.248A32 32 0 1 1 647.744 512l-45.248-45.248L557.248 512l45.248 45.248a32 32 0 1 1-45.248 45.248L512 557.248l-45.248 45.248L512 647.744a32 32 0 1 1-45.248 45.248l-45.248-45.248-22.656 22.656a32 32 0 1 1-45.248-45.248l22.656-22.656-45.248-45.248A32 32 0 1 1 376.256 512l45.248 45.248L466.752 512l-45.248-45.248a32 32 0 1 1 45.248-45.248L512 466.752l45.248-45.248L512 376.256a32 32 0 0 1 45.248-45.248l45.248 45.248z"},null,-1),G6e=[K6e];function Y6e(e,t,n,r,o,s){return k(),D("svg",q6e,G6e)}var X6e=Se(W6e,[["render",Y6e],["__file","soccer.vue"]]),J6e={name:"SoldOut"},Q6e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Z6e=R("path",{fill:"currentColor",d:"M704 288h131.072a32 32 0 0 1 31.808 28.8L886.4 512h-64.384l-16-160H704v96a32 32 0 1 1-64 0v-96H384v96a32 32 0 0 1-64 0v-96H217.92l-51.2 512H512v64H131.328a32 32 0 0 1-31.808-35.2l57.6-576a32 32 0 0 1 31.808-28.8H320v-22.336C320 154.688 405.504 64 512 64s192 90.688 192 201.664v22.4zm-64 0v-22.336C640 189.248 582.272 128 512 128c-70.272 0-128 61.248-128 137.664v22.4h256zm201.408 476.16a32 32 0 1 1 45.248 45.184l-128 128a32 32 0 0 1-45.248 0l-128-128a32 32 0 1 1 45.248-45.248L704 837.504V608a32 32 0 1 1 64 0v229.504l73.408-73.408z"},null,-1),ewe=[Z6e];function twe(e,t,n,r,o,s){return k(),D("svg",Q6e,ewe)}var nwe=Se(J6e,[["render",twe],["__file","sold-out.vue"]]),rwe={name:"SortDown"},owe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},swe=R("path",{fill:"currentColor",d:"M576 96v709.568L333.312 562.816A32 32 0 1 0 288 608l297.408 297.344A32 32 0 0 0 640 882.688V96a32 32 0 0 0-64 0z"},null,-1),awe=[swe];function iwe(e,t,n,r,o,s){return k(),D("svg",owe,awe)}var r7=Se(rwe,[["render",iwe],["__file","sort-down.vue"]]),lwe={name:"SortUp"},uwe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},cwe=R("path",{fill:"currentColor",d:"M384 141.248V928a32 32 0 1 0 64 0V218.56l242.688 242.688A32 32 0 1 0 736 416L438.592 118.656A32 32 0 0 0 384 141.248z"},null,-1),dwe=[cwe];function fwe(e,t,n,r,o,s){return k(),D("svg",uwe,dwe)}var o7=Se(lwe,[["render",fwe],["__file","sort-up.vue"]]),pwe={name:"Sort"},hwe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},mwe=R("path",{fill:"currentColor",d:"M384 96a32 32 0 0 1 64 0v786.752a32 32 0 0 1-54.592 22.656L95.936 608a32 32 0 0 1 0-45.312h.128a32 32 0 0 1 45.184 0L384 805.632V96zm192 45.248a32 32 0 0 1 54.592-22.592L928.064 416a32 32 0 0 1 0 45.312h-.128a32 32 0 0 1-45.184 0L640 218.496V928a32 32 0 1 1-64 0V141.248z"},null,-1),vwe=[mwe];function gwe(e,t,n,r,o,s){return k(),D("svg",hwe,vwe)}var _we=Se(pwe,[["render",gwe],["__file","sort.vue"]]),ywe={name:"Stamp"},bwe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},wwe=R("path",{fill:"currentColor",d:"M624 475.968V640h144a128 128 0 0 1 128 128H128a128 128 0 0 1 128-128h144V475.968a192 192 0 1 1 224 0zM128 896v-64h768v64H128z"},null,-1),Swe=[wwe];function Ewe(e,t,n,r,o,s){return k(),D("svg",bwe,Swe)}var Cwe=Se(ywe,[["render",Ewe],["__file","stamp.vue"]]),kwe={name:"StarFilled"},Twe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},$we=R("path",{fill:"currentColor",d:"M283.84 867.84 512 747.776l228.16 119.936a6.4 6.4 0 0 0 9.28-6.72l-43.52-254.08 184.512-179.904a6.4 6.4 0 0 0-3.52-10.88l-255.104-37.12L517.76 147.904a6.4 6.4 0 0 0-11.52 0L392.192 379.072l-255.104 37.12a6.4 6.4 0 0 0-3.52 10.88L318.08 606.976l-43.584 254.08a6.4 6.4 0 0 0 9.28 6.72z"},null,-1),xwe=[$we];function Iwe(e,t,n,r,o,s){return k(),D("svg",Twe,xwe)}var Cc=Se(kwe,[["render",Iwe],["__file","star-filled.vue"]]),Awe={name:"Star"},Mwe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Owe=R("path",{fill:"currentColor",d:"m512 747.84 228.16 119.936a6.4 6.4 0 0 0 9.28-6.72l-43.52-254.08 184.512-179.904a6.4 6.4 0 0 0-3.52-10.88l-255.104-37.12L517.76 147.904a6.4 6.4 0 0 0-11.52 0L392.192 379.072l-255.104 37.12a6.4 6.4 0 0 0-3.52 10.88L318.08 606.976l-43.584 254.08a6.4 6.4 0 0 0 9.28 6.72L512 747.84zM313.6 924.48a70.4 70.4 0 0 1-102.144-74.24l37.888-220.928L88.96 472.96A70.4 70.4 0 0 1 128 352.896l221.76-32.256 99.2-200.96a70.4 70.4 0 0 1 126.208 0l99.2 200.96 221.824 32.256a70.4 70.4 0 0 1 39.04 120.064L774.72 629.376l37.888 220.928a70.4 70.4 0 0 1-102.144 74.24L512 820.096l-198.4 104.32z"},null,-1),Rwe=[Owe];function Pwe(e,t,n,r,o,s){return k(),D("svg",Mwe,Rwe)}var s7=Se(Awe,[["render",Pwe],["__file","star.vue"]]),Nwe={name:"Stopwatch"},Lwe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Bwe=R("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768zm0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896z"},null,-1),Dwe=R("path",{fill:"currentColor",d:"M672 234.88c-39.168 174.464-80 298.624-122.688 372.48-64 110.848-202.624 30.848-138.624-80C453.376 453.44 540.48 355.968 672 234.816z"},null,-1),zwe=[Bwe,Dwe];function Fwe(e,t,n,r,o,s){return k(),D("svg",Lwe,zwe)}var Hwe=Se(Nwe,[["render",Fwe],["__file","stopwatch.vue"]]),Vwe={name:"SuccessFilled"},jwe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Uwe=R("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336L456.192 600.384z"},null,-1),Wwe=[Uwe];function qwe(e,t,n,r,o,s){return k(),D("svg",jwe,Wwe)}var eb=Se(Vwe,[["render",qwe],["__file","success-filled.vue"]]),Kwe={name:"Sugar"},Gwe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ywe=R("path",{fill:"currentColor",d:"m801.728 349.184 4.48 4.48a128 128 0 0 1 0 180.992L534.656 806.144a128 128 0 0 1-181.056 0l-4.48-4.48-19.392 109.696a64 64 0 0 1-108.288 34.176L78.464 802.56a64 64 0 0 1 34.176-108.288l109.76-19.328-4.544-4.544a128 128 0 0 1 0-181.056l271.488-271.488a128 128 0 0 1 181.056 0l4.48 4.48 19.392-109.504a64 64 0 0 1 108.352-34.048l142.592 143.04a64 64 0 0 1-34.24 108.16l-109.248 19.2zm-548.8 198.72h447.168v2.24l60.8-60.8a63.808 63.808 0 0 0 18.752-44.416h-426.88l-89.664 89.728a64.064 64.064 0 0 0-10.24 13.248zm0 64c2.752 4.736 6.144 9.152 10.176 13.248l135.744 135.744a64 64 0 0 0 90.496 0L638.4 611.904H252.928zm490.048-230.976L625.152 263.104a64 64 0 0 0-90.496 0L416.768 380.928h326.208zM123.712 757.312l142.976 142.976 24.32-137.6a25.6 25.6 0 0 0-29.696-29.632l-137.6 24.256zm633.6-633.344-24.32 137.472a25.6 25.6 0 0 0 29.632 29.632l137.28-24.064-142.656-143.04z"},null,-1),Xwe=[Ywe];function Jwe(e,t,n,r,o,s){return k(),D("svg",Gwe,Xwe)}var Qwe=Se(Kwe,[["render",Jwe],["__file","sugar.vue"]]),Zwe={name:"SuitcaseLine"},e8e={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024",style:{"enable-background":"new 0 0 1024 1024"},"xml:space":"preserve"},t8e=R("path",{d:"M922.5 229.5c-24.32-24.34-54.49-36.84-90.5-37.5H704v-64c-.68-17.98-7.02-32.98-19.01-44.99S658.01 64.66 640 64H384c-17.98.68-32.98 7.02-44.99 19.01S320.66 110 320 128v64H192c-35.99.68-66.16 13.18-90.5 37.5C77.16 253.82 64.66 283.99 64 320v448c.68 35.99 13.18 66.16 37.5 90.5s54.49 36.84 90.5 37.5h640c35.99-.68 66.16-13.18 90.5-37.5s36.84-54.49 37.5-90.5V320c-.68-35.99-13.18-66.16-37.5-90.5zM384 128h256v64H384v-64zM256 832h-64c-17.98-.68-32.98-7.02-44.99-19.01S128.66 786.01 128 768V448h128v384zm448 0H320V448h384v384zm192-64c-.68 17.98-7.02 32.98-19.01 44.99S850.01 831.34 832 832h-64V448h128v320zm0-384H128v-64c.69-17.98 7.02-32.98 19.01-44.99S173.99 256.66 192 256h640c17.98.69 32.98 7.02 44.99 19.01S895.34 301.99 896 320v64z",fill:"currentColor"},null,-1),n8e=[t8e];function r8e(e,t,n,r,o,s){return k(),D("svg",e8e,n8e)}var o8e=Se(Zwe,[["render",r8e],["__file","suitcase-line.vue"]]),s8e={name:"Suitcase"},a8e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},i8e=R("path",{fill:"currentColor",d:"M128 384h768v-64a64 64 0 0 0-64-64H192a64 64 0 0 0-64 64v64zm0 64v320a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V448H128zm64-256h640a128 128 0 0 1 128 128v448a128 128 0 0 1-128 128H192A128 128 0 0 1 64 768V320a128 128 0 0 1 128-128z"},null,-1),l8e=R("path",{fill:"currentColor",d:"M384 128v64h256v-64H384zm0-64h256a64 64 0 0 1 64 64v64a64 64 0 0 1-64 64H384a64 64 0 0 1-64-64v-64a64 64 0 0 1 64-64z"},null,-1),u8e=[i8e,l8e];function c8e(e,t,n,r,o,s){return k(),D("svg",a8e,u8e)}var d8e=Se(s8e,[["render",c8e],["__file","suitcase.vue"]]),f8e={name:"Sunny"},p8e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},h8e=R("path",{fill:"currentColor",d:"M512 704a192 192 0 1 0 0-384 192 192 0 0 0 0 384zm0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512zm0-704a32 32 0 0 1 32 32v64a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32zm0 768a32 32 0 0 1 32 32v64a32 32 0 1 1-64 0v-64a32 32 0 0 1 32-32zM195.2 195.2a32 32 0 0 1 45.248 0l45.248 45.248a32 32 0 1 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm543.104 543.104a32 32 0 0 1 45.248 0l45.248 45.248a32 32 0 0 1-45.248 45.248l-45.248-45.248a32 32 0 0 1 0-45.248zM64 512a32 32 0 0 1 32-32h64a32 32 0 0 1 0 64H96a32 32 0 0 1-32-32zm768 0a32 32 0 0 1 32-32h64a32 32 0 1 1 0 64h-64a32 32 0 0 1-32-32zM195.2 828.8a32 32 0 0 1 0-45.248l45.248-45.248a32 32 0 0 1 45.248 45.248L240.448 828.8a32 32 0 0 1-45.248 0zm543.104-543.104a32 32 0 0 1 0-45.248l45.248-45.248a32 32 0 0 1 45.248 45.248l-45.248 45.248a32 32 0 0 1-45.248 0z"},null,-1),m8e=[h8e];function v8e(e,t,n,r,o,s){return k(),D("svg",p8e,m8e)}var g8e=Se(f8e,[["render",v8e],["__file","sunny.vue"]]),_8e={name:"Sunrise"},y8e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},b8e=R("path",{fill:"currentColor",d:"M32 768h960a32 32 0 1 1 0 64H32a32 32 0 1 1 0-64zm129.408-96a352 352 0 0 1 701.184 0h-64.32a288 288 0 0 0-572.544 0h-64.32zM512 128a32 32 0 0 1 32 32v96a32 32 0 0 1-64 0v-96a32 32 0 0 1 32-32zm407.296 168.704a32 32 0 0 1 0 45.248l-67.84 67.84a32 32 0 1 1-45.248-45.248l67.84-67.84a32 32 0 0 1 45.248 0zm-814.592 0a32 32 0 0 1 45.248 0l67.84 67.84a32 32 0 1 1-45.248 45.248l-67.84-67.84a32 32 0 0 1 0-45.248z"},null,-1),w8e=[b8e];function S8e(e,t,n,r,o,s){return k(),D("svg",y8e,w8e)}var E8e=Se(_8e,[["render",S8e],["__file","sunrise.vue"]]),C8e={name:"Sunset"},k8e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},T8e=R("path",{fill:"currentColor",d:"M82.56 640a448 448 0 1 1 858.88 0h-67.2a384 384 0 1 0-724.288 0H82.56zM32 704h960q32 0 32 32t-32 32H32q-32 0-32-32t32-32zm256 128h448q32 0 32 32t-32 32H288q-32 0-32-32t32-32z"},null,-1),$8e=[T8e];function x8e(e,t,n,r,o,s){return k(),D("svg",k8e,$8e)}var I8e=Se(C8e,[["render",x8e],["__file","sunset.vue"]]),A8e={name:"SwitchButton"},M8e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},O8e=R("path",{fill:"currentColor",d:"M352 159.872V230.4a352 352 0 1 0 320 0v-70.528A416.128 416.128 0 0 1 512 960a416 416 0 0 1-160-800.128z"},null,-1),R8e=R("path",{fill:"currentColor",d:"M512 64q32 0 32 32v320q0 32-32 32t-32-32V96q0-32 32-32z"},null,-1),P8e=[O8e,R8e];function N8e(e,t,n,r,o,s){return k(),D("svg",M8e,P8e)}var L8e=Se(A8e,[["render",N8e],["__file","switch-button.vue"]]),B8e={name:"SwitchFilled"},D8e={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024",style:{"enable-background":"new 0 0 1024 1024"},"xml:space":"preserve"},z8e=R("path",{d:"M247.47 358.4v.04c.07 19.17 7.72 37.53 21.27 51.09s31.92 21.2 51.09 21.27c39.86 0 72.41-32.6 72.41-72.4s-32.6-72.36-72.41-72.36-72.36 32.55-72.36 72.36z",fill:"currentColor"},null,-1),F8e=R("path",{d:"M492.38 128H324.7c-52.16 0-102.19 20.73-139.08 57.61a196.655 196.655 0 0 0-57.61 139.08V698.7c-.01 25.84 5.08 51.42 14.96 75.29s24.36 45.56 42.63 63.83 39.95 32.76 63.82 42.65a196.67 196.67 0 0 0 75.28 14.98h167.68c3.03 0 5.46-2.43 5.46-5.42V133.42c.6-2.99-1.83-5.42-5.46-5.42zm-56.11 705.88H324.7c-17.76.13-35.36-3.33-51.75-10.18s-31.22-16.94-43.61-29.67c-25.3-25.35-39.81-59.1-39.81-95.32V324.69c-.13-17.75 3.33-35.35 10.17-51.74a131.695 131.695 0 0 1 29.64-43.62c25.39-25.3 59.14-39.81 95.36-39.81h111.57v644.36zm402.12-647.67a196.655 196.655 0 0 0-139.08-57.61H580.48c-3.03 0-4.82 2.43-4.82 4.82v757.16c-.6 2.99 1.79 5.42 5.42 5.42h118.23a196.69 196.69 0 0 0 139.08-57.61A196.655 196.655 0 0 0 896 699.31V325.29a196.69 196.69 0 0 0-57.61-139.08zm-111.3 441.92c-42.83 0-77.82-34.99-77.82-77.82s34.98-77.82 77.82-77.82c42.83 0 77.82 34.99 77.82 77.82s-34.99 77.82-77.82 77.82z",fill:"currentColor"},null,-1),H8e=[z8e,F8e];function V8e(e,t,n,r,o,s){return k(),D("svg",D8e,H8e)}var j8e=Se(B8e,[["render",V8e],["__file","switch-filled.vue"]]),U8e={name:"Switch"},W8e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},q8e=R("path",{fill:"currentColor",d:"M118.656 438.656a32 32 0 0 1 0-45.248L416 96l4.48-3.776A32 32 0 0 1 461.248 96l3.712 4.48a32.064 32.064 0 0 1-3.712 40.832L218.56 384H928a32 32 0 1 1 0 64H141.248a32 32 0 0 1-22.592-9.344zM64 608a32 32 0 0 1 32-32h786.752a32 32 0 0 1 22.656 54.592L608 928l-4.48 3.776a32.064 32.064 0 0 1-40.832-49.024L805.632 640H96a32 32 0 0 1-32-32z"},null,-1),K8e=[q8e];function G8e(e,t,n,r,o,s){return k(),D("svg",W8e,K8e)}var Y8e=Se(U8e,[["render",G8e],["__file","switch.vue"]]),X8e={name:"TakeawayBox"},J8e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Q8e=R("path",{fill:"currentColor",d:"M832 384H192v448h640V384zM96 320h832V128H96v192zm800 64v480a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V384H64a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32h896a32 32 0 0 1 32 32v256a32 32 0 0 1-32 32h-64zM416 512h192a32 32 0 0 1 0 64H416a32 32 0 0 1 0-64z"},null,-1),Z8e=[Q8e];function eSe(e,t,n,r,o,s){return k(),D("svg",J8e,Z8e)}var tSe=Se(X8e,[["render",eSe],["__file","takeaway-box.vue"]]),nSe={name:"Ticket"},rSe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},oSe=R("path",{fill:"currentColor",d:"M640 832H64V640a128 128 0 1 0 0-256V192h576v160h64V192h256v192a128 128 0 1 0 0 256v192H704V672h-64v160zm0-416v192h64V416h-64z"},null,-1),sSe=[oSe];function aSe(e,t,n,r,o,s){return k(),D("svg",rSe,sSe)}var iSe=Se(nSe,[["render",aSe],["__file","ticket.vue"]]),lSe={name:"Tickets"},uSe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},cSe=R("path",{fill:"currentColor",d:"M192 128v768h640V128H192zm-32-64h704a32 32 0 0 1 32 32v832a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32zm160 448h384v64H320v-64zm0-192h192v64H320v-64zm0 384h384v64H320v-64z"},null,-1),dSe=[cSe];function fSe(e,t,n,r,o,s){return k(),D("svg",uSe,dSe)}var pSe=Se(lSe,[["render",fSe],["__file","tickets.vue"]]),hSe={name:"Timer"},mSe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},vSe=R("path",{fill:"currentColor",d:"M512 896a320 320 0 1 0 0-640 320 320 0 0 0 0 640zm0 64a384 384 0 1 1 0-768 384 384 0 0 1 0 768z"},null,-1),gSe=R("path",{fill:"currentColor",d:"M512 320a32 32 0 0 1 32 32l-.512 224a32 32 0 1 1-64 0L480 352a32 32 0 0 1 32-32z"},null,-1),_Se=R("path",{fill:"currentColor",d:"M448 576a64 64 0 1 0 128 0 64 64 0 1 0-128 0zm96-448v128h-64V128h-96a32 32 0 0 1 0-64h256a32 32 0 1 1 0 64h-96z"},null,-1),ySe=[vSe,gSe,_Se];function bSe(e,t,n,r,o,s){return k(),D("svg",mSe,ySe)}var wSe=Se(hSe,[["render",bSe],["__file","timer.vue"]]),SSe={name:"ToiletPaper"},ESe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},CSe=R("path",{fill:"currentColor",d:"M595.2 128H320a192 192 0 0 0-192 192v576h384V352c0-90.496 32.448-171.2 83.2-224zM736 64c123.712 0 224 128.96 224 288S859.712 640 736 640H576v320H64V320A256 256 0 0 1 320 64h416zM576 352v224h160c84.352 0 160-97.28 160-224s-75.648-224-160-224-160 97.28-160 224z"},null,-1),kSe=R("path",{fill:"currentColor",d:"M736 448c-35.328 0-64-43.008-64-96s28.672-96 64-96 64 43.008 64 96-28.672 96-64 96z"},null,-1),TSe=[CSe,kSe];function $Se(e,t,n,r,o,s){return k(),D("svg",ESe,TSe)}var xSe=Se(SSe,[["render",$Se],["__file","toilet-paper.vue"]]),ISe={name:"Tools"},ASe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},MSe=R("path",{fill:"currentColor",d:"M764.416 254.72a351.68 351.68 0 0 1 86.336 149.184H960v192.064H850.752a351.68 351.68 0 0 1-86.336 149.312l54.72 94.72-166.272 96-54.592-94.72a352.64 352.64 0 0 1-172.48 0L371.136 936l-166.272-96 54.72-94.72a351.68 351.68 0 0 1-86.336-149.312H64v-192h109.248a351.68 351.68 0 0 1 86.336-149.312L204.8 160l166.208-96h.192l54.656 94.592a352.64 352.64 0 0 1 172.48 0L652.8 64h.128L819.2 160l-54.72 94.72zM704 499.968a192 192 0 1 0-384 0 192 192 0 0 0 384 0z"},null,-1),OSe=[MSe];function RSe(e,t,n,r,o,s){return k(),D("svg",ASe,OSe)}var PSe=Se(ISe,[["render",RSe],["__file","tools.vue"]]),NSe={name:"TopLeft"},LSe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},BSe=R("path",{fill:"currentColor",d:"M256 256h416a32 32 0 1 0 0-64H224a32 32 0 0 0-32 32v448a32 32 0 0 0 64 0V256z"},null,-1),DSe=R("path",{fill:"currentColor",d:"M246.656 201.344a32 32 0 0 0-45.312 45.312l544 544a32 32 0 0 0 45.312-45.312l-544-544z"},null,-1),zSe=[BSe,DSe];function FSe(e,t,n,r,o,s){return k(),D("svg",LSe,zSe)}var HSe=Se(NSe,[["render",FSe],["__file","top-left.vue"]]),VSe={name:"TopRight"},jSe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},USe=R("path",{fill:"currentColor",d:"M768 256H353.6a32 32 0 1 1 0-64H800a32 32 0 0 1 32 32v448a32 32 0 0 1-64 0V256z"},null,-1),WSe=R("path",{fill:"currentColor",d:"M777.344 201.344a32 32 0 0 1 45.312 45.312l-544 544a32 32 0 0 1-45.312-45.312l544-544z"},null,-1),qSe=[USe,WSe];function KSe(e,t,n,r,o,s){return k(),D("svg",jSe,qSe)}var GSe=Se(VSe,[["render",KSe],["__file","top-right.vue"]]),YSe={name:"Top"},XSe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},JSe=R("path",{fill:"currentColor",d:"M572.235 205.282v600.365a30.118 30.118 0 1 1-60.235 0V205.282L292.382 438.633a28.913 28.913 0 0 1-42.646 0 33.43 33.43 0 0 1 0-45.236l271.058-288.045a28.913 28.913 0 0 1 42.647 0L834.5 393.397a33.43 33.43 0 0 1 0 45.176 28.913 28.913 0 0 1-42.647 0l-219.618-233.23z"},null,-1),QSe=[JSe];function ZSe(e,t,n,r,o,s){return k(),D("svg",XSe,QSe)}var e5e=Se(YSe,[["render",ZSe],["__file","top.vue"]]),t5e={name:"TrendCharts"},n5e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},r5e=R("path",{fill:"currentColor",d:"M128 896V128h768v768H128zm291.712-327.296 128 102.4 180.16-201.792-47.744-42.624-139.84 156.608-128-102.4-180.16 201.792 47.744 42.624 139.84-156.608zM816 352a48 48 0 1 0-96 0 48 48 0 0 0 96 0z"},null,-1),o5e=[r5e];function s5e(e,t,n,r,o,s){return k(),D("svg",n5e,o5e)}var a5e=Se(t5e,[["render",s5e],["__file","trend-charts.vue"]]),i5e={name:"TrophyBase"},l5e={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024",style:{"enable-background":"new 0 0 1024 1024"},"xml:space":"preserve"},u5e=R("path",{d:"M918.4 201.6c-6.4-6.4-12.8-9.6-22.4-9.6H768V96c0-9.6-3.2-16-9.6-22.4C752 67.2 745.6 64 736 64H288c-9.6 0-16 3.2-22.4 9.6C259.2 80 256 86.4 256 96v96H128c-9.6 0-16 3.2-22.4 9.6-6.4 6.4-9.6 16-9.6 22.4 3.2 108.8 25.6 185.6 64 224 34.4 34.4 77.56 55.65 127.65 61.99 10.91 20.44 24.78 39.25 41.95 56.41 40.86 40.86 91 65.47 150.4 71.9V768h-96c-9.6 0-16 3.2-22.4 9.6-6.4 6.4-9.6 12.8-9.6 22.4s3.2 16 9.6 22.4c6.4 6.4 12.8 9.6 22.4 9.6h256c9.6 0 16-3.2 22.4-9.6 6.4-6.4 9.6-12.8 9.6-22.4s-3.2-16-9.6-22.4c-6.4-6.4-12.8-9.6-22.4-9.6h-96V637.26c59.4-7.71 109.54-30.01 150.4-70.86 17.2-17.2 31.51-36.06 42.81-56.55 48.93-6.51 90.02-27.7 126.79-61.85 38.4-38.4 60.8-112 64-224 0-6.4-3.2-16-9.6-22.4zM256 438.4c-19.2-6.4-35.2-19.2-51.2-35.2-22.4-22.4-35.2-70.4-41.6-147.2H256v182.4zm390.4 80C608 553.6 566.4 576 512 576s-99.2-19.2-134.4-57.6C342.4 480 320 438.4 320 384V128h384v256c0 54.4-19.2 99.2-57.6 134.4zm172.8-115.2c-16 16-32 25.6-51.2 35.2V256h92.8c-6.4 76.8-19.2 124.8-41.6 147.2zM768 896H256c-9.6 0-16 3.2-22.4 9.6-6.4 6.4-9.6 12.8-9.6 22.4s3.2 16 9.6 22.4c6.4 6.4 12.8 9.6 22.4 9.6h512c9.6 0 16-3.2 22.4-9.6 6.4-6.4 9.6-12.8 9.6-22.4s-3.2-16-9.6-22.4c-6.4-6.4-12.8-9.6-22.4-9.6z",fill:"currentColor"},null,-1),c5e=[u5e];function d5e(e,t,n,r,o,s){return k(),D("svg",l5e,c5e)}var f5e=Se(i5e,[["render",d5e],["__file","trophy-base.vue"]]),p5e={name:"Trophy"},h5e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},m5e=R("path",{fill:"currentColor",d:"M480 896V702.08A256.256 256.256 0 0 1 264.064 512h-32.64a96 96 0 0 1-91.968-68.416L93.632 290.88a76.8 76.8 0 0 1 73.6-98.88H256V96a32 32 0 0 1 32-32h448a32 32 0 0 1 32 32v96h88.768a76.8 76.8 0 0 1 73.6 98.88L884.48 443.52A96 96 0 0 1 792.576 512h-32.64A256.256 256.256 0 0 1 544 702.08V896h128a32 32 0 1 1 0 64H352a32 32 0 1 1 0-64h128zm224-448V128H320v320a192 192 0 1 0 384 0zm64 0h24.576a32 32 0 0 0 30.656-22.784l45.824-152.768A12.8 12.8 0 0 0 856.768 256H768v192zm-512 0V256h-88.768a12.8 12.8 0 0 0-12.288 16.448l45.824 152.768A32 32 0 0 0 231.424 448H256z"},null,-1),v5e=[m5e];function g5e(e,t,n,r,o,s){return k(),D("svg",h5e,v5e)}var _5e=Se(p5e,[["render",g5e],["__file","trophy.vue"]]),y5e={name:"TurnOff"},b5e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},w5e=R("path",{fill:"currentColor",d:"M329.956 257.138a254.862 254.862 0 0 0 0 509.724h364.088a254.862 254.862 0 0 0 0-509.724H329.956zm0-72.818h364.088a327.68 327.68 0 1 1 0 655.36H329.956a327.68 327.68 0 1 1 0-655.36z"},null,-1),S5e=R("path",{fill:"currentColor",d:"M329.956 621.227a109.227 109.227 0 1 0 0-218.454 109.227 109.227 0 0 0 0 218.454zm0 72.817a182.044 182.044 0 1 1 0-364.088 182.044 182.044 0 0 1 0 364.088z"},null,-1),E5e=[w5e,S5e];function C5e(e,t,n,r,o,s){return k(),D("svg",b5e,E5e)}var k5e=Se(y5e,[["render",C5e],["__file","turn-off.vue"]]),T5e={name:"Umbrella"},$5e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},x5e=R("path",{fill:"currentColor",d:"M320 768a32 32 0 1 1 64 0 64 64 0 0 0 128 0V512H64a448 448 0 1 1 896 0H576v256a128 128 0 1 1-256 0zm570.688-320a384.128 384.128 0 0 0-757.376 0h757.376z"},null,-1),I5e=[x5e];function A5e(e,t,n,r,o,s){return k(),D("svg",$5e,I5e)}var M5e=Se(T5e,[["render",A5e],["__file","umbrella.vue"]]),O5e={name:"Unlock"},R5e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},P5e=R("path",{fill:"currentColor",d:"M224 448a32 32 0 0 0-32 32v384a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V480a32 32 0 0 0-32-32H224zm0-64h576a96 96 0 0 1 96 96v384a96 96 0 0 1-96 96H224a96 96 0 0 1-96-96V480a96 96 0 0 1 96-96z"},null,-1),N5e=R("path",{fill:"currentColor",d:"M512 544a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V576a32 32 0 0 1 32-32zm178.304-295.296A192.064 192.064 0 0 0 320 320v64h352l96 38.4V448H256V320a256 256 0 0 1 493.76-95.104l-59.456 23.808z"},null,-1),L5e=[P5e,N5e];function B5e(e,t,n,r,o,s){return k(),D("svg",R5e,L5e)}var D5e=Se(O5e,[["render",B5e],["__file","unlock.vue"]]),z5e={name:"UploadFilled"},F5e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},H5e=R("path",{fill:"currentColor",d:"M544 864V672h128L512 480 352 672h128v192H320v-1.6c-5.376.32-10.496 1.6-16 1.6A240 240 0 0 1 64 624c0-123.136 93.12-223.488 212.608-237.248A239.808 239.808 0 0 1 512 192a239.872 239.872 0 0 1 235.456 194.752c119.488 13.76 212.48 114.112 212.48 237.248a240 240 0 0 1-240 240c-5.376 0-10.56-1.28-16-1.6v1.6H544z"},null,-1),V5e=[H5e];function j5e(e,t,n,r,o,s){return k(),D("svg",F5e,V5e)}var U5e=Se(z5e,[["render",j5e],["__file","upload-filled.vue"]]),W5e={name:"Upload"},q5e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},K5e=R("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64zm384-578.304V704h-64V247.296L237.248 490.048 192 444.8 508.8 128l316.8 316.8-45.312 45.248L544 253.696z"},null,-1),G5e=[K5e];function Y5e(e,t,n,r,o,s){return k(),D("svg",q5e,G5e)}var X5e=Se(W5e,[["render",Y5e],["__file","upload.vue"]]),J5e={name:"UserFilled"},Q5e={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Z5e=R("path",{fill:"currentColor",d:"M288 320a224 224 0 1 0 448 0 224 224 0 1 0-448 0zm544 608H160a32 32 0 0 1-32-32v-96a160 160 0 0 1 160-160h448a160 160 0 0 1 160 160v96a32 32 0 0 1-32 32z"},null,-1),eEe=[Z5e];function tEe(e,t,n,r,o,s){return k(),D("svg",Q5e,eEe)}var nEe=Se(J5e,[["render",tEe],["__file","user-filled.vue"]]),rEe={name:"User"},oEe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},sEe=R("path",{fill:"currentColor",d:"M512 512a192 192 0 1 0 0-384 192 192 0 0 0 0 384zm0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512zm320 320v-96a96 96 0 0 0-96-96H288a96 96 0 0 0-96 96v96a32 32 0 1 1-64 0v-96a160 160 0 0 1 160-160h448a160 160 0 0 1 160 160v96a32 32 0 1 1-64 0z"},null,-1),aEe=[sEe];function iEe(e,t,n,r,o,s){return k(),D("svg",oEe,aEe)}var lEe=Se(rEe,[["render",iEe],["__file","user.vue"]]),uEe={name:"Van"},cEe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},dEe=R("path",{fill:"currentColor",d:"M128.896 736H96a32 32 0 0 1-32-32V224a32 32 0 0 1 32-32h576a32 32 0 0 1 32 32v96h164.544a32 32 0 0 1 31.616 27.136l54.144 352A32 32 0 0 1 922.688 736h-91.52a144 144 0 1 1-286.272 0H415.104a144 144 0 1 1-286.272 0zm23.36-64a143.872 143.872 0 0 1 239.488 0H568.32c17.088-25.6 42.24-45.376 71.744-55.808V256H128v416h24.256zm655.488 0h77.632l-19.648-128H704v64.896A144 144 0 0 1 807.744 672zm48.128-192-14.72-96H704v96h151.872zM688 832a80 80 0 1 0 0-160 80 80 0 0 0 0 160zm-416 0a80 80 0 1 0 0-160 80 80 0 0 0 0 160z"},null,-1),fEe=[dEe];function pEe(e,t,n,r,o,s){return k(),D("svg",cEe,fEe)}var hEe=Se(uEe,[["render",pEe],["__file","van.vue"]]),mEe={name:"VideoCameraFilled"},vEe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},gEe=R("path",{fill:"currentColor",d:"m768 576 192-64v320l-192-64v96a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V480a32 32 0 0 1 32-32h640a32 32 0 0 1 32 32v96zM192 768v64h384v-64H192zm192-480a160 160 0 0 1 320 0 160 160 0 0 1-320 0zm64 0a96 96 0 1 0 192.064-.064A96 96 0 0 0 448 288zm-320 32a128 128 0 1 1 256.064.064A128 128 0 0 1 128 320zm64 0a64 64 0 1 0 128 0 64 64 0 0 0-128 0z"},null,-1),_Ee=[gEe];function yEe(e,t,n,r,o,s){return k(),D("svg",vEe,_Ee)}var bEe=Se(mEe,[["render",yEe],["__file","video-camera-filled.vue"]]),wEe={name:"VideoCamera"},SEe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},EEe=R("path",{fill:"currentColor",d:"M704 768V256H128v512h576zm64-416 192-96v512l-192-96v128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V224a32 32 0 0 1 32-32h640a32 32 0 0 1 32 32v128zm0 71.552v176.896l128 64V359.552l-128 64zM192 320h192v64H192v-64z"},null,-1),CEe=[EEe];function kEe(e,t,n,r,o,s){return k(),D("svg",SEe,CEe)}var TEe=Se(wEe,[["render",kEe],["__file","video-camera.vue"]]),$Ee={name:"VideoPause"},xEe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},IEe=R("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 832a384 384 0 0 0 0-768 384 384 0 0 0 0 768zm-96-544q32 0 32 32v256q0 32-32 32t-32-32V384q0-32 32-32zm192 0q32 0 32 32v256q0 32-32 32t-32-32V384q0-32 32-32z"},null,-1),AEe=[IEe];function MEe(e,t,n,r,o,s){return k(),D("svg",xEe,AEe)}var OEe=Se($Ee,[["render",MEe],["__file","video-pause.vue"]]),REe={name:"VideoPlay"},PEe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},NEe=R("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 832a384 384 0 0 0 0-768 384 384 0 0 0 0 768zm-48-247.616L668.608 512 464 375.616v272.768zm10.624-342.656 249.472 166.336a48 48 0 0 1 0 79.872L474.624 718.272A48 48 0 0 1 400 678.336V345.6a48 48 0 0 1 74.624-39.936z"},null,-1),LEe=[NEe];function BEe(e,t,n,r,o,s){return k(),D("svg",PEe,LEe)}var DEe=Se(REe,[["render",BEe],["__file","video-play.vue"]]),zEe={name:"View"},FEe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},HEe=R("path",{fill:"currentColor",d:"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352zm0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288zm0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448zm0 64a160.192 160.192 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160z"},null,-1),VEe=[HEe];function jEe(e,t,n,r,o,s){return k(),D("svg",FEe,VEe)}var a7=Se(zEe,[["render",jEe],["__file","view.vue"]]),UEe={name:"WalletFilled"},WEe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},qEe=R("path",{fill:"currentColor",d:"M688 512a112 112 0 1 0 0 224h208v160H128V352h768v160H688zm32 160h-32a48 48 0 0 1 0-96h32a48 48 0 0 1 0 96zm-80-544 128 160H384l256-160z"},null,-1),KEe=[qEe];function GEe(e,t,n,r,o,s){return k(),D("svg",WEe,KEe)}var YEe=Se(UEe,[["render",GEe],["__file","wallet-filled.vue"]]),XEe={name:"Wallet"},JEe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},QEe=R("path",{fill:"currentColor",d:"M640 288h-64V128H128v704h384v32a32 32 0 0 0 32 32H96a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32h512a32 32 0 0 1 32 32v192z"},null,-1),ZEe=R("path",{fill:"currentColor",d:"M128 320v512h768V320H128zm-32-64h832a32 32 0 0 1 32 32v576a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V288a32 32 0 0 1 32-32z"},null,-1),eCe=R("path",{fill:"currentColor",d:"M704 640a64 64 0 1 1 0-128 64 64 0 0 1 0 128z"},null,-1),tCe=[QEe,ZEe,eCe];function nCe(e,t,n,r,o,s){return k(),D("svg",JEe,tCe)}var rCe=Se(XEe,[["render",nCe],["__file","wallet.vue"]]),oCe={name:"WarnTriangleFilled"},sCe={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024",style:{"enable-background":"new 0 0 1024 1024"},"xml:space":"preserve"},aCe=R("path",{d:"M928.99 755.83 574.6 203.25c-12.89-20.16-36.76-32.58-62.6-32.58s-49.71 12.43-62.6 32.58L95.01 755.83c-12.91 20.12-12.9 44.91.01 65.03 12.92 20.12 36.78 32.51 62.59 32.49h708.78c25.82.01 49.68-12.37 62.59-32.49 12.91-20.12 12.92-44.91.01-65.03zM554.67 768h-85.33v-85.33h85.33V768zm0-426.67v298.66h-85.33V341.32l85.33.01z",fill:"currentColor"},null,-1),iCe=[aCe];function lCe(e,t,n,r,o,s){return k(),D("svg",sCe,iCe)}var uCe=Se(oCe,[["render",lCe],["__file","warn-triangle-filled.vue"]]),cCe={name:"WarningFilled"},dCe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},fCe=R("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256zm0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4z"},null,-1),pCe=[fCe];function hCe(e,t,n,r,o,s){return k(),D("svg",dCe,pCe)}var df=Se(cCe,[["render",hCe],["__file","warning-filled.vue"]]),mCe={name:"Warning"},vCe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},gCe=R("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 832a384 384 0 0 0 0-768 384 384 0 0 0 0 768zm48-176a48 48 0 1 1-96 0 48 48 0 0 1 96 0zm-48-464a32 32 0 0 1 32 32v288a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32z"},null,-1),_Ce=[gCe];function yCe(e,t,n,r,o,s){return k(),D("svg",vCe,_Ce)}var bCe=Se(mCe,[["render",yCe],["__file","warning.vue"]]),wCe={name:"Watch"},SCe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},ECe=R("path",{fill:"currentColor",d:"M512 768a256 256 0 1 0 0-512 256 256 0 0 0 0 512zm0 64a320 320 0 1 1 0-640 320 320 0 0 1 0 640z"},null,-1),CCe=R("path",{fill:"currentColor",d:"M480 352a32 32 0 0 1 32 32v160a32 32 0 0 1-64 0V384a32 32 0 0 1 32-32z"},null,-1),kCe=R("path",{fill:"currentColor",d:"M480 512h128q32 0 32 32t-32 32H480q-32 0-32-32t32-32zm128-256V128H416v128h-64V64h320v192h-64zM416 768v128h192V768h64v192H352V768h64z"},null,-1),TCe=[ECe,CCe,kCe];function $Ce(e,t,n,r,o,s){return k(),D("svg",SCe,TCe)}var xCe=Se(wCe,[["render",$Ce],["__file","watch.vue"]]),ICe={name:"Watermelon"},ACe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},MCe=R("path",{fill:"currentColor",d:"m683.072 600.32-43.648 162.816-61.824-16.512 53.248-198.528L576 493.248l-158.4 158.4-45.248-45.248 158.4-158.4-55.616-55.616-198.528 53.248-16.512-61.824 162.816-43.648L282.752 200A384 384 0 0 0 824 741.248L683.072 600.32zm231.552 141.056a448 448 0 1 1-632-632l632 632z"},null,-1),OCe=[MCe];function RCe(e,t,n,r,o,s){return k(),D("svg",ACe,OCe)}var PCe=Se(ICe,[["render",RCe],["__file","watermelon.vue"]]),NCe={name:"WindPower"},LCe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},BCe=R("path",{fill:"currentColor",d:"M160 64q32 0 32 32v832q0 32-32 32t-32-32V96q0-32 32-32zm416 354.624 128-11.584V168.96l-128-11.52v261.12zm-64 5.824V151.552L320 134.08V160h-64V64l616.704 56.064A96 96 0 0 1 960 215.68v144.64a96 96 0 0 1-87.296 95.616L256 512V224h64v217.92l192-17.472zm256-23.232 98.88-8.96A32 32 0 0 0 896 360.32V215.68a32 32 0 0 0-29.12-31.872l-98.88-8.96v226.368z"},null,-1),DCe=[BCe];function zCe(e,t,n,r,o,s){return k(),D("svg",LCe,DCe)}var FCe=Se(NCe,[["render",zCe],["__file","wind-power.vue"]]),HCe={name:"ZoomIn"},VCe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},jCe=R("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704zm-32-384v-96a32 32 0 0 1 64 0v96h96a32 32 0 0 1 0 64h-96v96a32 32 0 0 1-64 0v-96h-96a32 32 0 0 1 0-64h96z"},null,-1),UCe=[jCe];function WCe(e,t,n,r,o,s){return k(),D("svg",VCe,UCe)}var tb=Se(HCe,[["render",WCe],["__file","zoom-in.vue"]]),qCe={name:"ZoomOut"},KCe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},GCe=R("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704zM352 448h256a32 32 0 0 1 0 64H352a32 32 0 0 1 0-64z"},null,-1),YCe=[GCe];function XCe(e,t,n,r,o,s){return k(),D("svg",KCe,YCe)}var i7=Se(qCe,[["render",XCe],["__file","zoom-out.vue"]]);const JCe=Object.freeze(Object.defineProperty({__proto__:null,AddLocation:fZ,Aim:yZ,AlarmClock:TZ,Apple:OZ,ArrowDown:da,ArrowDownBold:DZ,ArrowLeft:ea,ArrowLeftBold:YZ,ArrowRight:vr,ArrowRightBold:aee,ArrowUp:cf,ArrowUpBold:gee,Avatar:xee,Back:Hx,Baseball:Hee,Basketball:Kee,Bell:ite,BellFilled:Zee,Bicycle:pte,Bottom:Rte,BottomLeft:bte,BottomRight:$te,Bowl:zte,Box:Kte,Briefcase:Zte,Brush:dne,BrushFilled:sne,Burger:gne,Calendar:Vx,Camera:Pne,CameraFilled:xne,CaretBottom:Fne,CaretLeft:qne,CaretRight:J4,CaretTop:jx,Cellphone:lre,ChatDotRound:mre,ChatDotSquare:Sre,ChatLineRound:Ire,ChatLineSquare:Lre,ChatRound:Vre,ChatSquare:Gre,Check:Qu,Checked:soe,Cherry:doe,Chicken:goe,ChromeFilled:koe,CircleCheck:Z0,CircleCheckFilled:Ux,CircleClose:fa,CircleCloseFilled:em,CirclePlus:ise,CirclePlusFilled:Zoe,Clock:Q4,Close:wo,CloseBold:bse,Cloudy:Mse,Coffee:jse,CoffeeCup:Bse,Coin:Jse,ColdDrink:rae,Collection:vae,CollectionTag:uae,Comment:Sae,Compass:Iae,Connection:Lae,Coordinate:jae,CopyDocument:Xae,Cpu:rie,CreditCard:cie,Crop:gie,DArrowLeft:tl,DArrowRight:nl,DCaret:Rie,DataAnalysis:zie,DataBoard:Kie,DataLine:Zie,Delete:Wx,DeleteFilled:sle,DeleteLocation:ple,Dessert:Cle,Discount:Mle,Dish:jle,DishDot:Ble,Document:qx,DocumentAdd:Yle,DocumentChecked:tue,DocumentCopy:iue,DocumentDelete:pue,DocumentRemove:yue,Download:Aue,Drizzling:Lue,Edit:Yue,EditPen:Vue,Eleme:ice,ElemeFilled:tce,ElementPlus:pce,Expand:yce,Failed:kce,Female:Rce,Files:zce,Film:qce,Filter:Qce,Finished:ode,FirstAidKit:dde,Flag:gde,Fold:Ede,Folder:sfe,FolderAdd:Ide,FolderChecked:Nde,FolderDelete:Hde,FolderOpened:Kde,FolderRemove:Zde,Food:dfe,Football:_fe,ForkSpoon:Cfe,Fries:Afe,FullScreen:Kx,Goblet:spe,GobletFull:Hfe,GobletSquare:Zfe,GobletSquareFull:Kfe,GoldMedal:fpe,Goods:Cpe,GoodsFilled:_pe,Grape:Ape,Grid:Lpe,Guide:jpe,Handbag:Ype,Headset:the,Help:phe,HelpFilled:ihe,Hide:Gx,Histogram:khe,HomeFilled:Mhe,HotWater:Bhe,House:jhe,IceCream:i0e,IceCreamRound:Yhe,IceCreamSquare:t0e,IceDrink:p0e,IceTea:y0e,InfoFilled:tm,Iphone:A0e,Key:L0e,KnifeFork:V0e,Lightning:Y0e,Link:tme,List:ime,Loading:pa,Location:Rme,LocationFilled:_me,LocationInformation:Tme,Lock:Fme,Lollipop:qme,MagicStick:Qme,Magnet:ove,Male:fve,Management:_ve,MapLocation:kve,Medal:Ove,Memo:Fve,Menu:qve,Message:s2e,MessageBox:Qve,Mic:d2e,Microphone:g2e,MilkTea:E2e,Minus:Yx,Money:L2e,Monitor:V2e,Moon:t1e,MoonNight:Y2e,More:Xx,MoreFilled:a1,MostlyCloudy:g1e,Mouse:C1e,Mug:A1e,Mute:U1e,MuteNotification:B1e,NoSmoking:X1e,Notebook:rge,Notification:cge,Odometer:_ge,OfficeBuilding:Tge,Open:Rge,Operation:zge,Opportunity:Wge,Orange:Jge,Paperclip:r_e,PartlyCloudy:c_e,Pear:v_e,Phone:x_e,PhoneFilled:S_e,Picture:K_e,PictureFilled:Jx,PictureRounded:F_e,PieChart:eye,Place:lye,Platform:hye,Plus:Z4,Pointer:kye,Position:Mye,Postcard:Dye,Pouring:Uye,Present:Zye,PriceTag:a4e,Printer:f4e,Promotion:_4e,QuartzWatch:T4e,QuestionFilled:Qx,Rank:B4e,Reading:J4e,ReadingLamp:U4e,Refresh:pbe,RefreshLeft:Zx,RefreshRight:e7,Refrigerator:ybe,Remove:Obe,RemoveFilled:kbe,Right:Dbe,ScaleToOriginal:t7,School:Jbe,Scissor:r3e,Search:n7,Select:h3e,Sell:b3e,SemiSelect:T3e,Service:O3e,SetUp:H3e,Setting:K3e,Share:Z3e,Ship:s6e,Shop:d6e,ShoppingBag:_6e,ShoppingCart:M6e,ShoppingCartFull:k6e,ShoppingTrolley:B6e,Smoking:U6e,Soccer:X6e,SoldOut:nwe,Sort:_we,SortDown:r7,SortUp:o7,Stamp:Cwe,Star:s7,StarFilled:Cc,Stopwatch:Hwe,SuccessFilled:eb,Sugar:Qwe,Suitcase:d8e,SuitcaseLine:o8e,Sunny:g8e,Sunrise:E8e,Sunset:I8e,Switch:Y8e,SwitchButton:L8e,SwitchFilled:j8e,TakeawayBox:tSe,Ticket:iSe,Tickets:pSe,Timer:wSe,ToiletPaper:xSe,Tools:PSe,Top:e5e,TopLeft:HSe,TopRight:GSe,TrendCharts:a5e,Trophy:_5e,TrophyBase:f5e,TurnOff:k5e,Umbrella:M5e,Unlock:D5e,Upload:X5e,UploadFilled:U5e,User:lEe,UserFilled:nEe,Van:hEe,VideoCamera:TEe,VideoCameraFilled:bEe,VideoPause:OEe,VideoPlay:DEe,View:a7,Wallet:rCe,WalletFilled:YEe,WarnTriangleFilled:uCe,Warning:bCe,WarningFilled:df,Watch:xCe,Watermelon:PCe,WindPower:FCe,ZoomIn:tb,ZoomOut:i7},Symbol.toStringTag,{value:"Module"})),l7="__epPropKey",Re=e=>e,QCe=e=>xt(e)&&!!e[l7],qo=(e,t)=>{if(!xt(e)||QCe(e))return e;const{values:n,required:r,default:o,type:s,validator:a}=e,l={type:s,required:!!r,validator:n||a?u=>{let c=!1,d=[];if(n&&(d=Array.from(n),Bt(e,"default")&&d.push(o),c||(c=d.includes(u))),a&&(c||(c=a(u))),!c&&d.length>0){const f=[...new Set(d)].map(p=>JSON.stringify(p)).join(", ");lk(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${f}], got value ${JSON.stringify(u)}.`)}return c}:void 0,[l7]:!0};return Bt(e,"default")&&(l.default=o),l},He=e=>Ax(Object.entries(e).map(([t,n])=>[t,qo(n,t)])),on=Re([String,Object,Function]),u7={Close:wo},nb={Close:wo,SuccessFilled:eb,InfoFilled:tm,WarningFilled:df,CircleCloseFilled:em},oi={success:eb,warning:df,error:em,info:tm},c7={validating:pa,success:Z0,error:fa},St=(e,t)=>{if(e.install=n=>{for(const r of[e,...Object.values(t??{})])n.component(r.name,r)},t)for(const[n,r]of Object.entries(t))e[n]=r;return e},d7=(e,t)=>(e.install=n=>{e._context=n._context,n.config.globalProperties[t]=e},e),ZCe=(e,t)=>(e.install=n=>{n.directive(t,e)},e),En=e=>(e.install=Kt,e),nm=(...e)=>t=>{e.forEach(n=>{at(n)?n(t):n.value=t})},ot={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},e9e=["year","month","date","dates","week","datetime","datetimerange","daterange","monthrange"],gv=["sun","mon","tue","wed","thu","fri","sat"],Et="update:modelValue",un="change",kr="input",V8=Symbol("INSTALLED_KEY"),ha=["","default","small","large"],t9e={large:40,default:32,small:24},n9e=e=>t9e[e||"default"],Zu=e=>["",...ha].includes(e);var uo=(e=>(e[e.TEXT=1]="TEXT",e[e.CLASS=2]="CLASS",e[e.STYLE=4]="STYLE",e[e.PROPS=8]="PROPS",e[e.FULL_PROPS=16]="FULL_PROPS",e[e.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",e[e.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",e[e.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",e[e.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",e[e.NEED_PATCH=512]="NEED_PATCH",e[e.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",e[e.HOISTED=-1]="HOISTED",e[e.BAIL=-2]="BAIL",e))(uo||{});function i1(e){return sn(e)&&e.type===Ze}function r9e(e){return sn(e)&&e.type===Rn}function o9e(e){return sn(e)&&!i1(e)&&!r9e(e)}const s9e=e=>{if(!sn(e))return{};const t=e.props||{},n=(sn(e.type)?e.type.props:void 0)||{},r={};return Object.keys(n).forEach(o=>{Bt(n[o],"default")&&(r[o]=n[o].default)}),Object.keys(t).forEach(o=>{r[Tr(o)]=t[o]}),r},a9e=e=>{if(!Ge(e)||e.length>1)throw new Error("expect to receive a single Vue element child");return e[0]},Zl=e=>{const t=Ge(e)?e:[e],n=[];return t.forEach(r=>{var o;Ge(r)?n.push(...Zl(r)):sn(r)&&Ge(r.children)?n.push(...Zl(r.children)):(n.push(r),sn(r)&&((o=r.component)!=null&&o.subTree)&&n.push(...Zl(r.component.subTree)))}),n},j8=e=>e**3,i9e=e=>e<.5?j8(e*2)/2:1-j8((1-e)*2)/2,U8=e=>[...new Set(e)],js=e=>!e&&e!==0?[]:Array.isArray(e)?e:[e],rb=()=>Pt&&/firefox/i.test(window.navigator.userAgent),rm=e=>/([(\uAC00-\uD7AF)|(\u3130-\u318F)])+/gi.test(e),kd=e=>Pt?window.requestAnimationFrame(e):setTimeout(e,16),om=e=>Pt?window.cancelAnimationFrame(e):clearTimeout(e),sm=()=>Math.floor(Math.random()*1e4),hn=e=>e,l9e=["class","style"],u9e=/^on[A-Z]/,ob=(e={})=>{const{excludeListeners:t=!1,excludeKeys:n}=e,r=z(()=>((n==null?void 0:n.value)||[]).concat(l9e)),o=gt();return z(o?()=>{var s;return Ax(Object.entries((s=o.proxy)==null?void 0:s.$attrs).filter(([a])=>!r.value.includes(a)&&!(t&&u9e.test(a))))}:()=>({}))},f7=Symbol("breadcrumbKey"),p7=Symbol("buttonGroupContextKey"),h7=Symbol("carouselContextKey"),ec=Symbol("checkboxGroupContextKey"),m7=Symbol("collapseContextKey"),v7=Symbol(),g7=Symbol("dialogInjectionKey"),cl=Symbol("formContextKey"),fs=Symbol("formItemContextKey"),_7=Symbol("elPaginationKey"),y7=Symbol("radioGroupKey"),b7=Symbol("rowContextKey"),w7=Symbol("scrollbarContextKey"),S7=Symbol("sliderContextKey"),am=Symbol("tabsRootContextKey"),E7=Symbol("uploadContextKey"),sb=Symbol("popper"),C7=Symbol("popperContent"),im=Symbol("elTooltip"),lm=Symbol("tooltipV2"),k7=Symbol("tooltipV2Content"),_v="tooltip_v2.open",ab=Symbol(),T7=e=>{const t=gt();return z(()=>{var n,r;return(r=((n=t.proxy)==null?void 0:n.$props)[e])!=null?r:void 0})},Yh=ee();function ma(e,t=void 0){const n=gt()?Ye(v7,Yh):Yh;return e?z(()=>{var r,o;return(o=(r=n.value)==null?void 0:r[e])!=null?o:t}):n}const $7=(e,t,n=!1)=>{var r;const o=!!gt(),s=o?ma():void 0,a=(r=t==null?void 0:t.provide)!=null?r:o?Ct:void 0;if(!a)return;const i=z(()=>{const l=h(e);return s!=null&&s.value?c9e(s.value,l):l});return a(v7,i),(n||!Yh.value)&&(Yh.value=i.value),i},c9e=(e,t)=>{var n;const r=[...new Set([...Cd(e),...Cd(t)])],o={};for(const s of r)o[s]=(n=t[s])!=null?n:e[s];return o},Fr=qo({type:String,values:ha,required:!1}),Ln=(e,t={})=>{const n=ee(void 0),r=t.prop?n:T7("size"),o=t.global?n:ma("size"),s=t.form?{size:void 0}:Ye(cl,void 0),a=t.formItem?{size:void 0}:Ye(fs,void 0);return z(()=>r.value||h(e)||(a==null?void 0:a.size)||(s==null?void 0:s.size)||o.value||"")},jr=e=>{const t=T7("disabled"),n=Ye(cl,void 0);return z(()=>t.value||h(e)||(n==null?void 0:n.disabled)||!1)},ta=({from:e,replacement:t,scope:n,version:r,ref:o,type:s="API"},a)=>{Be(()=>h(a),i=>{},{immediate:!0})},x7=(e,t,n)=>{let r={offsetX:0,offsetY:0};const o=i=>{const l=i.clientX,u=i.clientY,{offsetX:c,offsetY:d}=r,f=e.value.getBoundingClientRect(),p=f.left,m=f.top,v=f.width,g=f.height,b=document.documentElement.clientWidth,_=document.documentElement.clientHeight,y=-p+c,S=-m+d,w=b-p-v+c,E=_-m-g+d,T=$=>{const x=Math.min(Math.max(c+$.clientX-l,y),w),N=Math.min(Math.max(d+$.clientY-u,S),E);r={offsetX:x,offsetY:N},e.value.style.transform=`translate(${Nn(x)}, ${Nn(N)})`},C=()=>{document.removeEventListener("mousemove",T),document.removeEventListener("mouseup",C)};document.addEventListener("mousemove",T),document.addEventListener("mouseup",C)},s=()=>{t.value&&e.value&&t.value.addEventListener("mousedown",o)},a=()=>{t.value&&e.value&&t.value.removeEventListener("mousedown",o)};vt(()=>{Cr(()=>{n.value?s():a()})}),fn(()=>{a()})},d9e=e=>({focus:()=>{var t,n;(n=(t=e.value)==null?void 0:t.focus)==null||n.call(t)}}),um="el",f9e="is-",bi=(e,t,n,r,o)=>{let s=`${e}-${t}`;return n&&(s+=`-${n}`),r&&(s+=`__${r}`),o&&(s+=`--${o}`),s},De=e=>{const t=ma("namespace",um);return{namespace:t,b:(m="")=>bi(t.value,e,m,"",""),e:m=>m?bi(t.value,e,"",m,""):"",m:m=>m?bi(t.value,e,"","",m):"",be:(m,v)=>m&&v?bi(t.value,e,m,v,""):"",em:(m,v)=>m&&v?bi(t.value,e,"",m,v):"",bm:(m,v)=>m&&v?bi(t.value,e,m,"",v):"",bem:(m,v,g)=>m&&v&&g?bi(t.value,e,m,v,g):"",is:(m,...v)=>{const g=v.length>=1?v[0]:!0;return m&&g?`${f9e}${m}`:""},cssVar:m=>{const v={};for(const g in m)m[g]&&(v[`--${t.value}-${g}`]=m[g]);return v},cssVarName:m=>`--${t.value}-${m}`,cssVarBlock:m=>{const v={};for(const g in m)m[g]&&(v[`--${t.value}-${e}-${g}`]=m[g]);return v},cssVarBlockName:m=>`--${t.value}-${e}-${m}`}},W8={prefix:Math.floor(Math.random()*1e4),current:0},p9e=Symbol("elIdInjection"),I7=()=>gt()?Ye(p9e,W8):W8,Fo=e=>{const t=I7(),n=ma("namespace",um);return z(()=>h(e)||`${n.value}-id-${t.prefix}-${t.current++}`)},xr=()=>{const e=Ye(cl,void 0),t=Ye(fs,void 0);return{form:e,formItem:t}},di=(e,{formItemContext:t,disableIdGeneration:n,disableIdManagement:r})=>{n||(n=ee(!1)),r||(r=ee(!1));const o=ee();let s;const a=z(()=>{var i;return!!(!e.label&&t&&t.inputIds&&((i=t.inputIds)==null?void 0:i.length)<=1)});return vt(()=>{s=Be([gn(e,"id"),n],([i,l])=>{const u=i??(l?void 0:Fo().value);u!==o.value&&(t!=null&&t.removeInputId&&(o.value&&t.removeInputId(o.value),!(r!=null&&r.value)&&!l&&u&&t.addInputId(u)),o.value=u)},{immediate:!0})}),ia(()=>{s&&s(),t!=null&&t.removeInputId&&o.value&&t.removeInputId(o.value)}),{isLabeledByFormItem:a,inputId:o}};var h9e={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}};const m9e=e=>(t,n)=>v9e(t,n,h(e)),v9e=(e,t,n)=>pn(n,e,e).replace(/\{(\w+)\}/g,(r,o)=>{var s;return`${(s=t==null?void 0:t[o])!=null?s:`{${o}}`}`}),g9e=e=>{const t=z(()=>h(e).name),n=qt(e)?e:ee(e);return{lang:t,locale:n,t:m9e(e)}},Vt=()=>{const e=ma("locale");return g9e(z(()=>e.value||h9e))},A7=e=>{qt(e)||zn("[useLockscreen]","You need to pass a ref param to this function");const t=De("popup"),n=c9(()=>t.bm("parent","hidden"));if(!Pt||No(document.body,n.value))return;let r=0,o=!1,s="0";const a=()=>{setTimeout(()=>{Lr(document.body,n.value),o&&(document.body.style.width=s)},200)};Be(e,i=>{if(!i){a();return}o=!No(document.body,n.value),o&&(s=document.body.style.width),r=zx(t.namespace.value);const l=document.documentElement.clientHeight0&&(l||u==="scroll")&&o&&(document.body.style.width=`calc(100% - ${r}px)`),rs(document.body,n.value)}),yy(()=>a())},_9e=qo({type:Re(Boolean),default:null}),y9e=qo({type:Re(Function)}),b9e=e=>{const t=`update:${e}`,n=`onUpdate:${e}`,r=[t],o={[e]:_9e,[n]:y9e};return{useModelToggle:({indicator:a,toggleReason:i,shouldHideWhenRouteChanges:l,shouldProceed:u,onShow:c,onHide:d})=>{const f=gt(),{emit:p}=f,m=f.props,v=z(()=>at(m[n])),g=z(()=>m[e]===null),b=T=>{a.value!==!0&&(a.value=!0,i&&(i.value=T),at(c)&&c(T))},_=T=>{a.value!==!1&&(a.value=!1,i&&(i.value=T),at(d)&&d(T))},y=T=>{if(m.disabled===!0||at(u)&&!u())return;const C=v.value&&Pt;C&&p(t,!0),(g.value||!C)&&b(T)},S=T=>{if(m.disabled===!0||!Pt)return;const C=v.value&&Pt;C&&p(t,!1),(g.value||!C)&&_(T)},w=T=>{Dn(T)&&(m.disabled&&T?v.value&&p(t,!1):a.value!==T&&(T?b():_()))},E=()=>{a.value?S():y()};return Be(()=>m[e],w),l&&f.appContext.config.globalProperties.$route!==void 0&&Be(()=>({...f.proxy.$route}),()=>{l.value&&a.value&&S()}),vt(()=>{w(m[e])}),{hide:S,show:y,toggle:E,hasUpdateHandler:v}},useModelToggleProps:o,useModelToggleEmits:r}},w9e=(e,t)=>{let n;Be(()=>e.value,r=>{var o,s;r?(n=document.activeElement,qt(t)&&((s=(o=t.value).focus)==null||s.call(o))):n.focus()})},ib=e=>{if(!e)return{onClick:Kt,onMousedown:Kt,onMouseup:Kt};let t=!1,n=!1;return{onClick:a=>{t&&n&&e(a),t=n=!1},onMousedown:a=>{t=a.target===a.currentTarget},onMouseup:a=>{n=a.target===a.currentTarget}}},S9e=(e,t=0)=>{if(t===0)return e;const n=ee(!1);let r=0;const o=()=>{r&&clearTimeout(r),r=window.setTimeout(()=>{n.value=e.value},t)};return vt(o),Be(()=>e.value,s=>{s?o():n.value=s}),n};function E9e(){let e;const t=(r,o)=>{n(),e=window.setTimeout(r,o)},n=()=>window.clearTimeout(e);return Q0(()=>n()),{registerTimeout:t,cancelTimeout:n}}let Al=[];const q8=e=>{const t=e;t.key===ot.esc&&Al.forEach(n=>n(t))},C9e=e=>{vt(()=>{Al.length===0&&document.addEventListener("keydown",q8),Pt&&Al.push(e)}),fn(()=>{Al=Al.filter(t=>t!==e),Al.length===0&&Pt&&document.removeEventListener("keydown",q8)})};let K8;const M7=()=>{const e=ma("namespace",um),t=I7(),n=z(()=>`${e.value}-popper-container-${t.prefix}`),r=z(()=>`#${n.value}`);return{id:n,selector:r}},k9e=e=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t},T9e=()=>{Wd(()=>{if(!Pt)return;const{id:e,selector:t}=M7();!K8&&!document.body.querySelector(t.value)&&(K8=k9e(e.value))})},$9e=He({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200}}),x9e=({showAfter:e,hideAfter:t,open:n,close:r})=>{const{registerTimeout:o}=E9e();return{onOpen:i=>{o(()=>{n(i)},h(e))},onClose:i=>{o(()=>{r(i)},h(t))}}},O7=Symbol("elForwardRef"),I9e=e=>{Ct(O7,{setForwardRef:n=>{e.value=n}})},A9e=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),G8=ee(0),va=()=>{const e=ma("zIndex",2e3),t=z(()=>e.value+G8.value);return{initialZIndex:e,currentZIndex:t,nextZIndex:()=>(G8.value++,t.value)}},Td=Math.min,eu=Math.max,Xh=Math.round,us=e=>({x:e,y:e});function M9e(e,t,n){return eu(e,Td(t,n))}function R7(e,t){return typeof e=="function"?e(t):e}function lb(e){return e.split("-")[0]}function ub(e){return e.split("-")[1]}function O9e(e){return e==="x"?"y":"x"}function P7(e){return e==="y"?"height":"width"}const R9e=new Set(["top","bottom"]);function cb(e){return R9e.has(lb(e))?"y":"x"}function N7(e){return O9e(cb(e))}function P9e(e){return{top:0,right:0,bottom:0,left:0,...e}}function N9e(e){return typeof e!="number"?P9e(e):{top:e,right:e,bottom:e,left:e}}function L7(e){const{x:t,y:n,width:r,height:o}=e;return{width:r,height:o,top:n,left:t,right:t+r,bottom:n+o,x:t,y:n}}function Y8(e,t,n){let{reference:r,floating:o}=e;const s=cb(t),a=N7(t),i=P7(a),l=lb(t),u=s==="y",c=r.x+r.width/2-o.width/2,d=r.y+r.height/2-o.height/2,f=r[i]/2-o[i]/2;let p;switch(l){case"top":p={x:c,y:r.y-o.height};break;case"bottom":p={x:c,y:r.y+r.height};break;case"right":p={x:r.x+r.width,y:d};break;case"left":p={x:r.x-o.width,y:d};break;default:p={x:r.x,y:r.y}}switch(ub(t)){case"start":p[a]-=f*(n&&u?-1:1);break;case"end":p[a]+=f*(n&&u?-1:1);break}return p}const L9e=async(e,t,n)=>{const{placement:r="bottom",strategy:o="absolute",middleware:s=[],platform:a}=n,i=s.filter(Boolean),l=await(a.isRTL==null?void 0:a.isRTL(t));let u=await a.getElementRects({reference:e,floating:t,strategy:o}),{x:c,y:d}=Y8(u,r,l),f=r,p={},m=0;for(let v=0;v({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:o,rects:s,platform:a,elements:i,middlewareData:l}=t,{element:u,padding:c=0}=R7(e,t)||{};if(u==null)return{};const d=N9e(c),f={x:n,y:r},p=N7(o),m=P7(p),v=await a.getDimensions(u),g=p==="y",b=g?"top":"left",_=g?"bottom":"right",y=g?"clientHeight":"clientWidth",S=s.reference[m]+s.reference[p]-f[p]-s.floating[m],w=f[p]-s.reference[p],E=await(a.getOffsetParent==null?void 0:a.getOffsetParent(u));let T=E?E[y]:0;(!T||!await(a.isElement==null?void 0:a.isElement(E)))&&(T=i.floating[y]||s.floating[m]);const C=S/2-w/2,$=T/2-v[m]/2-1,x=Td(d[b],$),N=Td(d[_],$),I=x,L=T-v[m]-N,F=T/2-v[m]/2+C,B=M9e(I,F,L),U=!l.arrow&&ub(o)!=null&&F!==B&&s.reference[m]/2-(F"u"?!1:e instanceof ShadowRoot||e instanceof no(e).ShadowRoot}const H9e=new Set(["inline","contents"]);function ff(e){const{overflow:t,overflowX:n,overflowY:r,display:o}=Vo(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!H9e.has(o)}const V9e=new Set(["table","td","th"]);function j9e(e){return V9e.has(tc(e))}const U9e=[":popover-open",":modal"];function dm(e){return U9e.some(t=>{try{return e.matches(t)}catch{return!1}})}const W9e=["transform","translate","scale","rotate","perspective"],q9e=["transform","translate","scale","rotate","perspective","filter"],K9e=["paint","layout","strict","content"];function db(e){const t=fb(),n=Ho(e)?Vo(e):e;return W9e.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||q9e.some(r=>(n.willChange||"").includes(r))||K9e.some(r=>(n.contain||"").includes(r))}function G9e(e){let t=si(e);for(;ps(t)&&!wu(t);){if(db(t))return t;if(dm(t))return null;t=si(t)}return null}function fb(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const Y9e=new Set(["html","body","#document"]);function wu(e){return Y9e.has(tc(e))}function Vo(e){return no(e).getComputedStyle(e)}function fm(e){return Ho(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function si(e){if(tc(e)==="html")return e;const t=e.assignedSlot||e.parentNode||X8(e)&&e.host||ga(e);return X8(t)?t.host:t}function D7(e){const t=si(e);return wu(t)?e.ownerDocument?e.ownerDocument.body:e.body:ps(t)&&ff(t)?t:D7(t)}function z7(e,t,n){var r;t===void 0&&(t=[]);const o=D7(e),s=o===((r=e.ownerDocument)==null?void 0:r.body),a=no(o);return s?(l1(a),t.concat(a,a.visualViewport||[],ff(o)?o:[],[])):t.concat(o,z7(o,[]))}function l1(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function F7(e){const t=Vo(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const o=ps(e),s=o?e.offsetWidth:n,a=o?e.offsetHeight:r,i=Xh(n)!==s||Xh(r)!==a;return i&&(n=s,r=a),{width:n,height:r,$:i}}function H7(e){return Ho(e)?e:e.contextElement}function tu(e){const t=H7(e);if(!ps(t))return us(1);const n=t.getBoundingClientRect(),{width:r,height:o,$:s}=F7(t);let a=(s?Xh(n.width):n.width)/r,i=(s?Xh(n.height):n.height)/o;return(!a||!Number.isFinite(a))&&(a=1),(!i||!Number.isFinite(i))&&(i=1),{x:a,y:i}}const X9e=us(0);function V7(e){const t=no(e);return!fb()||!t.visualViewport?X9e:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function J9e(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==no(e)?!1:t}function $d(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const o=e.getBoundingClientRect(),s=H7(e);let a=us(1);t&&(r?Ho(r)&&(a=tu(r)):a=tu(e));const i=J9e(s,n,r)?V7(s):us(0);let l=(o.left+i.x)/a.x,u=(o.top+i.y)/a.y,c=o.width/a.x,d=o.height/a.y;if(s){const f=no(s),p=r&&Ho(r)?no(r):r;let m=f,v=l1(m);for(;v&&r&&p!==m;){const g=tu(v),b=v.getBoundingClientRect(),_=Vo(v),y=b.left+(v.clientLeft+parseFloat(_.paddingLeft))*g.x,S=b.top+(v.clientTop+parseFloat(_.paddingTop))*g.y;l*=g.x,u*=g.y,c*=g.x,d*=g.y,l+=y,u+=S,m=no(v),v=l1(m)}}return L7({width:c,height:d,x:l,y:u})}function pm(e,t){const n=fm(e).scrollLeft;return t?t.left+n:$d(ga(e)).left+n}function j7(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-pm(e,n),o=n.top+t.scrollTop;return{x:r,y:o}}function Q9e(e){let{elements:t,rect:n,offsetParent:r,strategy:o}=e;const s=o==="fixed",a=ga(r),i=t?dm(t.floating):!1;if(r===a||i&&s)return n;let l={scrollLeft:0,scrollTop:0},u=us(1);const c=us(0),d=ps(r);if((d||!d&&!s)&&((tc(r)!=="body"||ff(a))&&(l=fm(r)),ps(r))){const p=$d(r);u=tu(r),c.x=p.x+r.clientLeft,c.y=p.y+r.clientTop}const f=a&&!d&&!s?j7(a,l):us(0);return{width:n.width*u.x,height:n.height*u.y,x:n.x*u.x-l.scrollLeft*u.x+c.x+f.x,y:n.y*u.y-l.scrollTop*u.y+c.y+f.y}}function Z9e(e){return Array.from(e.getClientRects())}function eke(e){const t=ga(e),n=fm(e),r=e.ownerDocument.body,o=eu(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),s=eu(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let a=-n.scrollLeft+pm(e);const i=-n.scrollTop;return Vo(r).direction==="rtl"&&(a+=eu(t.clientWidth,r.clientWidth)-o),{width:o,height:s,x:a,y:i}}const J8=25;function tke(e,t){const n=no(e),r=ga(e),o=n.visualViewport;let s=r.clientWidth,a=r.clientHeight,i=0,l=0;if(o){s=o.width,a=o.height;const c=fb();(!c||c&&t==="fixed")&&(i=o.offsetLeft,l=o.offsetTop)}const u=pm(r);if(u<=0){const c=r.ownerDocument,d=c.body,f=getComputedStyle(d),p=c.compatMode==="CSS1Compat"&&parseFloat(f.marginLeft)+parseFloat(f.marginRight)||0,m=Math.abs(r.clientWidth-d.clientWidth-p);m<=J8&&(s-=m)}else u<=J8&&(s+=u);return{width:s,height:a,x:i,y:l}}const nke=new Set(["absolute","fixed"]);function rke(e,t){const n=$d(e,!0,t==="fixed"),r=n.top+e.clientTop,o=n.left+e.clientLeft,s=ps(e)?tu(e):us(1),a=e.clientWidth*s.x,i=e.clientHeight*s.y,l=o*s.x,u=r*s.y;return{width:a,height:i,x:l,y:u}}function Q8(e,t,n){let r;if(t==="viewport")r=tke(e,n);else if(t==="document")r=eke(ga(e));else if(Ho(t))r=rke(t,n);else{const o=V7(e);r={x:t.x-o.x,y:t.y-o.y,width:t.width,height:t.height}}return L7(r)}function U7(e,t){const n=si(e);return n===t||!Ho(n)||wu(n)?!1:Vo(n).position==="fixed"||U7(n,t)}function oke(e,t){const n=t.get(e);if(n)return n;let r=z7(e,[]).filter(i=>Ho(i)&&tc(i)!=="body"),o=null;const s=Vo(e).position==="fixed";let a=s?si(e):e;for(;Ho(a)&&!wu(a);){const i=Vo(a),l=db(a);!l&&i.position==="fixed"&&(o=null),(s?!l&&!o:!l&&i.position==="static"&&!!o&&nke.has(o.position)||ff(a)&&!l&&U7(e,a))?r=r.filter(c=>c!==a):o=i,a=si(a)}return t.set(e,r),r}function ske(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e;const a=[...n==="clippingAncestors"?dm(t)?[]:oke(t,this._c):[].concat(n),r],i=a[0],l=a.reduce((u,c)=>{const d=Q8(t,c,o);return u.top=eu(d.top,u.top),u.right=Td(d.right,u.right),u.bottom=Td(d.bottom,u.bottom),u.left=eu(d.left,u.left),u},Q8(t,i,o));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function ake(e){const{width:t,height:n}=F7(e);return{width:t,height:n}}function ike(e,t,n){const r=ps(t),o=ga(t),s=n==="fixed",a=$d(e,!0,s,t);let i={scrollLeft:0,scrollTop:0};const l=us(0);function u(){l.x=pm(o)}if(r||!r&&!s)if((tc(t)!=="body"||ff(o))&&(i=fm(t)),r){const p=$d(t,!0,s,t);l.x=p.x+t.clientLeft,l.y=p.y+t.clientTop}else o&&u();s&&!r&&o&&u();const c=o&&!r&&!s?j7(o,i):us(0),d=a.left+i.scrollLeft-l.x-c.x,f=a.top+i.scrollTop-l.y-c.y;return{x:d,y:f,width:a.width,height:a.height}}function yv(e){return Vo(e).position==="static"}function Z8(e,t){if(!ps(e)||Vo(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return ga(e)===n&&(n=n.ownerDocument.body),n}function W7(e,t){const n=no(e);if(dm(e))return n;if(!ps(e)){let o=si(e);for(;o&&!wu(o);){if(Ho(o)&&!yv(o))return o;o=si(o)}return n}let r=Z8(e,t);for(;r&&j9e(r)&&yv(r);)r=Z8(r,t);return r&&wu(r)&&yv(r)&&!db(r)?n:r||G9e(e)||n}const lke=async function(e){const t=this.getOffsetParent||W7,n=this.getDimensions,r=await n(e.floating);return{reference:ike(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function uke(e){return Vo(e).direction==="rtl"}const cke={convertOffsetParentRelativeRectToViewportRelativeRect:Q9e,getDocumentElement:ga,getClippingRect:ske,getOffsetParent:W7,getElementRects:lke,getClientRects:Z9e,getDimensions:ake,getScale:tu,isElement:Ho,isRTL:uke},dke=F9e,fke=B9e,pke=(e,t,n)=>{const r=new Map,o={platform:cke,...n},s={...o.platform,_c:r};return L9e(e,t,{...o,platform:s})};He({});const hke=e=>{if(!Pt)return;if(!e)return e;const t=Jr(e);return t||(qt(e)?t:e)},mke=({middleware:e,placement:t,strategy:n})=>{const r=ee(),o=ee(),s=ee(),a=ee(),i=ee({}),l={x:s,y:a,placement:t,strategy:n,middlewareData:i},u=async()=>{if(!Pt)return;const c=hke(r),d=Jr(o);if(!c||!d)return;const f=await pke(c,d,{placement:h(t),strategy:h(n),middleware:h(e)});Cd(l).forEach(p=>{l[p].value=f[p]})};return vt(()=>{Cr(()=>{u()})}),{...l,update:u,referenceRef:r,contentRef:o}},vke=({arrowRef:e,padding:t})=>({name:"arrow",options:{element:e,padding:t},fn(n){const r=h(e);return r?fke({element:r,padding:t}).fn(n):{}}});function gke(e){const t=ee();function n(){if(e.value==null)return;const{selectionStart:o,selectionEnd:s,value:a}=e.value;if(o==null||s==null)return;const i=a.slice(0,Math.max(0,o)),l=a.slice(Math.max(0,s));t.value={selectionStart:o,selectionEnd:s,value:a,beforeTxt:i,afterTxt:l}}function r(){if(e.value==null||t.value==null)return;const{value:o}=e.value,{beforeTxt:s,afterTxt:a,selectionStart:i}=t.value;if(s==null||a==null||i==null)return;let l=o.length;if(o.endsWith(a))l=o.length-a.length;else if(o.startsWith(s))l=s.length;else{const u=s[i-1],c=o.indexOf(u,i-1);c!==-1&&(l=c+1)}e.value.setSelectionRange(l,l)}return[n,r]}const _ke=(e,t,n)=>Zl(e.subTree).filter(s=>{var a;return sn(s)&&((a=s.type)==null?void 0:a.name)===t&&!!s.component}).map(s=>s.component.uid).map(s=>n[s]).filter(s=>!!s),q7=(e,t)=>{const n={},r=rn([]);return{children:r,addChild:a=>{n[a.uid]=a,r.value=_ke(e,t,n)},removeChild:a=>{delete n[a],r.value=r.value.filter(i=>i.uid!==a)}}},yke="2.2.27",bke=(e=[])=>({version:yke,install:(n,r)=>{n[V8]||(n[V8]=!0,e.forEach(o=>n.use(o)),r&&$7(r,n,!0))}}),wke=He({zIndex:{type:Re([Number,String]),default:100},target:{type:String,default:""},offset:{type:Number,default:0},position:{type:String,values:["top","bottom"],default:"top"}}),Ske={scroll:({scrollTop:e,fixed:t})=>dt(e)&&Dn(t),[un]:e=>Dn(e)};var Fe=(e,t)=>{const n=e.__vccOpts||e;for(const[r,o]of t)n[r]=o;return n};const K7="ElAffix",Eke=Ce({name:K7}),Cke=Ce({...Eke,props:wke,emits:Ske,setup(e,{expose:t,emit:n}){const r=e,o=De("affix"),s=rn(),a=rn(),i=rn(),{height:l}=Lx(),{height:u,width:c,top:d,bottom:f,update:p}=B8(a,{windowScroll:!1}),m=B8(s),v=ee(!1),g=ee(0),b=ee(0),_=z(()=>({height:v.value?`${u.value}px`:"",width:v.value?`${c.value}px`:""})),y=z(()=>{if(!v.value)return{};const E=r.offset?Nn(r.offset):0;return{height:`${u.value}px`,width:`${c.value}px`,top:r.position==="top"?E:"",bottom:r.position==="bottom"?E:"",transform:b.value?`translateY(${b.value}px)`:"",zIndex:r.zIndex}}),S=()=>{if(i.value)if(g.value=i.value instanceof Window?document.documentElement.scrollTop:i.value.scrollTop||0,r.position==="top")if(r.target){const E=m.bottom.value-r.offset-u.value;v.value=r.offset>d.value&&m.bottom.value>0,b.value=E<0?E:0}else v.value=r.offset>d.value;else if(r.target){const E=l.value-m.top.value-r.offset-u.value;v.value=l.value-r.offsetm.top.value,b.value=E<0?-E:0}else v.value=l.value-r.offset{p(),n("scroll",{scrollTop:g.value,fixed:v.value})};return Be(v,E=>n("change",E)),vt(()=>{var E;r.target?(s.value=(E=document.querySelector(r.target))!=null?E:void 0,s.value||zn(K7,`Target is not existed: ${r.target}`)):s.value=document.documentElement,i.value=X4(a.value,!0),p()}),dn(i,"scroll",w),Cr(S),t({update:S,updateRoot:p}),(E,T)=>(k(),D("div",{ref_key:"root",ref:a,class:W(h(o).b()),style:Je(h(_))},[R("div",{class:W({[h(o).m("fixed")]:v.value}),style:Je(h(y))},[Pe(E.$slots,"default")],6)],6))}});var kke=Fe(Cke,[["__file","/home/runner/work/element-plus/element-plus/packages/components/affix/src/affix.vue"]]);const Tke=St(kke),$ke=He({size:{type:Re([Number,String])},color:{type:String}}),xke=Ce({name:"ElIcon",inheritAttrs:!1}),Ike=Ce({...xke,props:$ke,setup(e){const t=e,n=De("icon"),r=z(()=>{const{size:o,color:s}=t;return!o&&!s?{}:{fontSize:Gn(o)?void 0:Nn(o),"--color":s}});return(o,s)=>(k(),D("i",$t({class:h(n).b(),style:h(r)},o.$attrs),[Pe(o.$slots,"default")],16))}});var Ake=Fe(Ike,[["__file","/home/runner/work/element-plus/element-plus/packages/components/icon/src/icon.vue"]]);const et=St(Ake),Mke=["light","dark"],Oke=He({title:{type:String,default:""},description:{type:String,default:""},type:{type:String,values:Cd(oi),default:"info"},closable:{type:Boolean,default:!0},closeText:{type:String,default:""},showIcon:Boolean,center:Boolean,effect:{type:String,values:Mke,default:"light"}}),Rke={close:e=>e instanceof MouseEvent},Pke=Ce({name:"ElAlert"}),Nke=Ce({...Pke,props:Oke,emits:Rke,setup(e,{emit:t}){const n=e,{Close:r}=nb,o=Wn(),s=De("alert"),a=ee(!0),i=z(()=>oi[n.type]),l=z(()=>[s.e("icon"),{[s.is("big")]:!!n.description||!!o.default}]),u=z(()=>({[s.is("bold")]:n.description||o.default})),c=d=>{a.value=!1,t("close",d)};return(d,f)=>(k(),Me(xn,{name:h(s).b("fade"),persisted:""},{default:be(()=>[mt(R("div",{class:W([h(s).b(),h(s).m(d.type),h(s).is("center",d.center),h(s).is(d.effect)]),role:"alert"},[d.showIcon&&h(i)?(k(),Me(h(et),{key:0,class:W(h(l))},{default:be(()=>[(k(),Me(kt(h(i))))]),_:1},8,["class"])):Ae("v-if",!0),R("div",{class:W(h(s).e("content"))},[d.title||d.$slots.title?(k(),D("span",{key:0,class:W([h(s).e("title"),h(u)])},[Pe(d.$slots,"title",{},()=>[Ot(ze(d.title),1)])],2)):Ae("v-if",!0),d.$slots.default||d.description?(k(),D("p",{key:1,class:W(h(s).e("description"))},[Pe(d.$slots,"default",{},()=>[Ot(ze(d.description),1)])],2)):Ae("v-if",!0),d.closable?(k(),D(Ze,{key:2},[d.closeText?(k(),D("div",{key:0,class:W([h(s).e("close-btn"),h(s).is("customed")]),onClick:c},ze(d.closeText),3)):(k(),Me(h(et),{key:1,class:W(h(s).e("close-btn")),onClick:c},{default:be(()=>[me(h(r))]),_:1},8,["class"]))],64)):Ae("v-if",!0)],2)],2),[[zt,a.value]])]),_:3},8,["name"]))}});var Lke=Fe(Nke,[["__file","/home/runner/work/element-plus/element-plus/packages/components/alert/src/alert.vue"]]);const Bke=St(Lke);let To;const Dke=` + height:0 !important; + visibility:hidden !important; + overflow:hidden !important; + position:absolute !important; + z-index:-1000 !important; + top:0 !important; + right:0 !important; +`,zke=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"];function Fke(e){const t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing"),r=Number.parseFloat(t.getPropertyValue("padding-bottom"))+Number.parseFloat(t.getPropertyValue("padding-top")),o=Number.parseFloat(t.getPropertyValue("border-bottom-width"))+Number.parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:zke.map(a=>`${a}:${t.getPropertyValue(a)}`).join(";"),paddingSize:r,borderSize:o,boxSizing:n}}function eS(e,t=1,n){var r;To||(To=document.createElement("textarea"),document.body.appendChild(To));const{paddingSize:o,borderSize:s,boxSizing:a,contextStyle:i}=Fke(e);To.setAttribute("style",`${i};${Dke}`),To.value=e.value||e.placeholder||"";let l=To.scrollHeight;const u={};a==="border-box"?l=l+s:a==="content-box"&&(l=l-o),To.value="";const c=To.scrollHeight-o;if(dt(t)){let d=c*t;a==="border-box"&&(d=d+o+s),l=Math.max(d,l),u.minHeight=`${d}px`}if(dt(n)){let d=c*n;a==="border-box"&&(d=d+o+s),l=Math.min(d,l)}return u.height=`${l}px`,(r=To.parentNode)==null||r.removeChild(To),To=void 0,u}const Hke=He({id:{type:String,default:void 0},size:Fr,disabled:Boolean,modelValue:{type:Re([String,Number,Object]),default:""},type:{type:String,default:"text"},resize:{type:String,values:["none","both","horizontal","vertical"]},autosize:{type:Re([Boolean,Object]),default:!1},autocomplete:{type:String,default:"off"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String},readonly:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},showWordLimit:{type:Boolean,default:!1},suffixIcon:{type:on},prefixIcon:{type:on},containerRole:{type:String,default:void 0},label:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:Re([Object,Array,String]),default:()=>hn({})}}),Vke={[Et]:e=>ft(e),input:e=>ft(e),change:e=>ft(e),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0,mouseleave:e=>e instanceof MouseEvent,mouseenter:e=>e instanceof MouseEvent,keydown:e=>e instanceof Event,compositionstart:e=>e instanceof CompositionEvent,compositionupdate:e=>e instanceof CompositionEvent,compositionend:e=>e instanceof CompositionEvent},jke=["role"],Uke=["id","type","disabled","formatter","parser","readonly","autocomplete","tabindex","aria-label","placeholder","form"],Wke=["id","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form"],qke=Ce({name:"ElInput",inheritAttrs:!1}),Kke=Ce({...qke,props:Hke,emits:Vke,setup(e,{expose:t,emit:n}){const r=e,o=zu(),s=Wn(),a=z(()=>{const fe={};return r.containerRole==="combobox"&&(fe["aria-haspopup"]=o["aria-haspopup"],fe["aria-owns"]=o["aria-owns"],fe["aria-expanded"]=o["aria-expanded"]),fe}),i=z(()=>[r.type==="textarea"?g.b():v.b(),v.m(p.value),v.is("disabled",m.value),v.is("exceed",te.value),{[v.b("group")]:s.prepend||s.append,[v.bm("group","append")]:s.append,[v.bm("group","prepend")]:s.prepend,[v.m("prefix")]:s.prefix||r.prefixIcon,[v.m("suffix")]:s.suffix||r.suffixIcon||r.clearable||r.showPassword,[v.bm("suffix","password-clear")]:P.value&&O.value},o.class]),l=z(()=>[v.e("wrapper"),v.is("focus",y.value)]),u=ob({excludeKeys:z(()=>Object.keys(a.value))}),{form:c,formItem:d}=xr(),{inputId:f}=di(r,{formItemContext:d}),p=Ln(),m=jr(),v=De("input"),g=De("textarea"),b=rn(),_=rn(),y=ee(!1),S=ee(!1),w=ee(!1),E=ee(!1),T=ee(),C=rn(r.inputStyle),$=z(()=>b.value||_.value),x=z(()=>{var fe;return(fe=c==null?void 0:c.statusIcon)!=null?fe:!1}),N=z(()=>(d==null?void 0:d.validateState)||""),I=z(()=>N.value&&c7[N.value]),L=z(()=>E.value?a7:Gx),F=z(()=>[o.style,r.inputStyle]),B=z(()=>[r.inputStyle,C.value,{resize:r.resize}]),U=z(()=>Yn(r.modelValue)?"":String(r.modelValue)),P=z(()=>r.clearable&&!m.value&&!r.readonly&&!!U.value&&(y.value||S.value)),O=z(()=>r.showPassword&&!m.value&&!r.readonly&&!!U.value&&(!!U.value||y.value)),H=z(()=>r.showWordLimit&&!!u.value.maxlength&&(r.type==="text"||r.type==="textarea")&&!m.value&&!r.readonly&&!r.showPassword),q=z(()=>Array.from(U.value).length),te=z(()=>!!H.value&&q.value>Number(u.value.maxlength)),V=z(()=>!!s.suffix||!!r.suffixIcon||P.value||r.showPassword||H.value||!!N.value&&x.value),[Q,ge]=gke(b);gr(_,fe=>{if(!H.value||r.resize!=="both")return;const Te=fe[0],{width:$e}=Te.contentRect;T.value={right:`calc(100% - ${$e+15+6}px)`}});const ie=()=>{const{type:fe,autosize:Te}=r;if(!(!Pt||fe!=="textarea"))if(Te){const $e=xt(Te)?Te.minRows:void 0,Le=xt(Te)?Te.maxRows:void 0;C.value={...eS(_.value,$e,Le)}}else C.value={minHeight:eS(_.value).minHeight}},ke=()=>{const fe=$.value;!fe||fe.value===U.value||(fe.value=U.value)},Y=async fe=>{Q();let{value:Te}=fe.target;if(r.formatter&&(Te=r.parser?r.parser(Te):Te,Te=r.formatter(Te)),!w.value){if(Te===U.value){ke();return}n(Et,Te),n("input",Te),await Xe(),ke(),ge()}},K=fe=>{n("change",fe.target.value)},se=fe=>{n("compositionstart",fe),w.value=!0},ne=fe=>{var Te;n("compositionupdate",fe);const $e=(Te=fe.target)==null?void 0:Te.value,Le=$e[$e.length-1]||"";w.value=!rm(Le)},ve=fe=>{n("compositionend",fe),w.value&&(w.value=!1,Y(fe))},J=()=>{E.value=!E.value,ae()},ae=async()=>{var fe;await Xe(),(fe=$.value)==null||fe.focus()},ce=()=>{var fe;return(fe=$.value)==null?void 0:fe.blur()},oe=fe=>{y.value=!0,n("focus",fe)},he=fe=>{var Te;y.value=!1,n("blur",fe),r.validateEvent&&((Te=d==null?void 0:d.validate)==null||Te.call(d,"blur").catch($e=>void 0))},le=fe=>{S.value=!1,n("mouseleave",fe)},Ee=fe=>{S.value=!0,n("mouseenter",fe)},ye=fe=>{n("keydown",fe)},pe=()=>{var fe;(fe=$.value)==null||fe.select()},re=()=>{n(Et,""),n("change",""),n("clear"),n("input","")};return Be(()=>r.modelValue,()=>{var fe;Xe(()=>ie()),r.validateEvent&&((fe=d==null?void 0:d.validate)==null||fe.call(d,"change").catch(Te=>void 0))}),Be(U,()=>ke()),Be(()=>r.type,async()=>{await Xe(),ke(),ie()}),vt(()=>{!r.formatter&&r.parser,ke(),Xe(ie)}),t({input:b,textarea:_,ref:$,textareaStyle:B,autosize:gn(r,"autosize"),focus:ae,blur:ce,select:pe,clear:re,resizeTextarea:ie}),(fe,Te)=>mt((k(),D("div",$t(h(a),{class:h(i),style:h(F),role:fe.containerRole,onMouseenter:Ee,onMouseleave:le}),[Ae(" input "),fe.type!=="textarea"?(k(),D(Ze,{key:0},[Ae(" prepend slot "),fe.$slots.prepend?(k(),D("div",{key:0,class:W(h(v).be("group","prepend"))},[Pe(fe.$slots,"prepend")],2)):Ae("v-if",!0),R("div",{class:W(h(l))},[Ae(" prefix slot "),fe.$slots.prefix||fe.prefixIcon?(k(),D("span",{key:0,class:W(h(v).e("prefix"))},[R("span",{class:W(h(v).e("prefix-inner")),onClick:ae},[Pe(fe.$slots,"prefix"),fe.prefixIcon?(k(),Me(h(et),{key:0,class:W(h(v).e("icon"))},{default:be(()=>[(k(),Me(kt(fe.prefixIcon)))]),_:1},8,["class"])):Ae("v-if",!0)],2)],2)):Ae("v-if",!0),R("input",$t({id:h(f),ref_key:"input",ref:b,class:h(v).e("inner")},h(u),{type:fe.showPassword?E.value?"text":"password":fe.type,disabled:h(m),formatter:fe.formatter,parser:fe.parser,readonly:fe.readonly,autocomplete:fe.autocomplete,tabindex:fe.tabindex,"aria-label":fe.label,placeholder:fe.placeholder,style:fe.inputStyle,form:r.form,onCompositionstart:se,onCompositionupdate:ne,onCompositionend:ve,onInput:Y,onFocus:oe,onBlur:he,onChange:K,onKeydown:ye}),null,16,Uke),Ae(" suffix slot "),h(V)?(k(),D("span",{key:1,class:W(h(v).e("suffix"))},[R("span",{class:W(h(v).e("suffix-inner")),onClick:ae},[!h(P)||!h(O)||!h(H)?(k(),D(Ze,{key:0},[Pe(fe.$slots,"suffix"),fe.suffixIcon?(k(),Me(h(et),{key:0,class:W(h(v).e("icon"))},{default:be(()=>[(k(),Me(kt(fe.suffixIcon)))]),_:1},8,["class"])):Ae("v-if",!0)],64)):Ae("v-if",!0),h(P)?(k(),Me(h(et),{key:1,class:W([h(v).e("icon"),h(v).e("clear")]),onMousedown:ct(h(Kt),["prevent"]),onClick:re},{default:be(()=>[me(h(fa))]),_:1},8,["class","onMousedown"])):Ae("v-if",!0),h(O)?(k(),Me(h(et),{key:2,class:W([h(v).e("icon"),h(v).e("password")]),onClick:J},{default:be(()=>[(k(),Me(kt(h(L))))]),_:1},8,["class"])):Ae("v-if",!0),h(H)?(k(),D("span",{key:3,class:W(h(v).e("count"))},[R("span",{class:W(h(v).e("count-inner"))},ze(h(q))+" / "+ze(h(u).maxlength),3)],2)):Ae("v-if",!0),h(N)&&h(I)&&h(x)?(k(),Me(h(et),{key:4,class:W([h(v).e("icon"),h(v).e("validateIcon"),h(v).is("loading",h(N)==="validating")])},{default:be(()=>[(k(),Me(kt(h(I))))]),_:1},8,["class"])):Ae("v-if",!0)],2)],2)):Ae("v-if",!0)],2),Ae(" append slot "),fe.$slots.append?(k(),D("div",{key:1,class:W(h(v).be("group","append"))},[Pe(fe.$slots,"append")],2)):Ae("v-if",!0)],64)):(k(),D(Ze,{key:1},[Ae(" textarea "),R("textarea",$t({id:h(f),ref_key:"textarea",ref:_,class:h(g).e("inner")},h(u),{tabindex:fe.tabindex,disabled:h(m),readonly:fe.readonly,autocomplete:fe.autocomplete,style:h(B),"aria-label":fe.label,placeholder:fe.placeholder,form:r.form,onCompositionstart:se,onCompositionupdate:ne,onCompositionend:ve,onInput:Y,onFocus:oe,onBlur:he,onChange:K,onKeydown:ye}),null,16,Wke),h(H)?(k(),D("span",{key:0,style:Je(T.value),class:W(h(v).e("count"))},ze(h(q))+" / "+ze(h(u).maxlength),7)):Ae("v-if",!0)],64))],16,jke)),[[zt,fe.type!=="hidden"]])}});var Gke=Fe(Kke,[["__file","/home/runner/work/element-plus/element-plus/packages/components/input/src/input.vue"]]);const mr=St(Gke),jl=4,G7={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},Yke=({move:e,size:t,bar:n})=>({[n.size]:t,transform:`translate${n.axis}(${e}%)`}),Xke=He({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),Jke="Thumb",Qke=Ce({__name:"thumb",props:Xke,setup(e){const t=e,n=Ye(w7),r=De("scrollbar");n||zn(Jke,"can not inject scrollbar context");const o=ee(),s=ee(),a=ee({}),i=ee(!1);let l=!1,u=!1,c=Pt?document.onselectstart:null;const d=z(()=>G7[t.vertical?"vertical":"horizontal"]),f=z(()=>Yke({size:t.size,move:t.move,bar:d.value})),p=z(()=>o.value[d.value.offset]**2/n.wrapElement[d.value.scrollSize]/t.ratio/s.value[d.value.offset]),m=E=>{var T;if(E.stopPropagation(),E.ctrlKey||[1,2].includes(E.button))return;(T=window.getSelection())==null||T.removeAllRanges(),g(E);const C=E.currentTarget;C&&(a.value[d.value.axis]=C[d.value.offset]-(E[d.value.client]-C.getBoundingClientRect()[d.value.direction]))},v=E=>{if(!s.value||!o.value||!n.wrapElement)return;const T=Math.abs(E.target.getBoundingClientRect()[d.value.direction]-E[d.value.client]),C=s.value[d.value.offset]/2,$=(T-C)*100*p.value/o.value[d.value.offset];n.wrapElement[d.value.scroll]=$*n.wrapElement[d.value.scrollSize]/100},g=E=>{E.stopImmediatePropagation(),l=!0,document.addEventListener("mousemove",b),document.addEventListener("mouseup",_),c=document.onselectstart,document.onselectstart=()=>!1},b=E=>{if(!o.value||!s.value||l===!1)return;const T=a.value[d.value.axis];if(!T)return;const C=(o.value.getBoundingClientRect()[d.value.direction]-E[d.value.client])*-1,$=s.value[d.value.offset]-T,x=(C-$)*100*p.value/o.value[d.value.offset];n.wrapElement[d.value.scroll]=x*n.wrapElement[d.value.scrollSize]/100},_=()=>{l=!1,a.value[d.value.axis]=0,document.removeEventListener("mousemove",b),document.removeEventListener("mouseup",_),w(),u&&(i.value=!1)},y=()=>{u=!1,i.value=!!t.size},S=()=>{u=!0,i.value=l};fn(()=>{w(),document.removeEventListener("mouseup",_)});const w=()=>{document.onselectstart!==c&&(document.onselectstart=c)};return dn(gn(n,"scrollbarElement"),"mousemove",y),dn(gn(n,"scrollbarElement"),"mouseleave",S),(E,T)=>(k(),Me(xn,{name:h(r).b("fade"),persisted:""},{default:be(()=>[mt(R("div",{ref_key:"instance",ref:o,class:W([h(r).e("bar"),h(r).is(h(d).key)]),onMousedown:v},[R("div",{ref_key:"thumb",ref:s,class:W(h(r).e("thumb")),style:Je(h(f)),onMousedown:m},null,38)],34),[[zt,E.always||i.value]])]),_:1},8,["name"]))}});var tS=Fe(Qke,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/thumb.vue"]]);const Zke=He({always:{type:Boolean,default:!0},width:String,height:String,ratioX:{type:Number,default:1},ratioY:{type:Number,default:1}}),eTe=Ce({__name:"bar",props:Zke,setup(e,{expose:t}){const n=e,r=ee(0),o=ee(0);return t({handleScroll:a=>{if(a){const i=a.offsetHeight-jl,l=a.offsetWidth-jl;o.value=a.scrollTop*100/i*n.ratioY,r.value=a.scrollLeft*100/l*n.ratioX}}}),(a,i)=>(k(),D(Ze,null,[me(tS,{move:r.value,ratio:a.ratioX,size:a.width,always:a.always},null,8,["move","ratio","size","always"]),me(tS,{move:o.value,ratio:a.ratioY,size:a.height,vertical:"",always:a.always},null,8,["move","ratio","size","always"])],64))}});var tTe=Fe(eTe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/bar.vue"]]);const nTe=He({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:Re([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20}}),rTe={scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(dt)},oTe="ElScrollbar",sTe=Ce({name:oTe}),aTe=Ce({...sTe,props:nTe,emits:rTe,setup(e,{expose:t,emit:n}){const r=e,o=De("scrollbar");let s,a;const i=ee(),l=ee(),u=ee(),c=ee("0"),d=ee("0"),f=ee(),p=ee(1),m=ee(1),v=z(()=>{const T={};return r.height&&(T.height=Nn(r.height)),r.maxHeight&&(T.maxHeight=Nn(r.maxHeight)),[r.wrapStyle,T]}),g=z(()=>[r.wrapClass,o.e("wrap"),{[o.em("wrap","hidden-default")]:!r.native}]),b=z(()=>[o.e("view"),r.viewClass]),_=()=>{var T;l.value&&((T=f.value)==null||T.handleScroll(l.value),n("scroll",{scrollTop:l.value.scrollTop,scrollLeft:l.value.scrollLeft}))};function y(T,C){xt(T)?l.value.scrollTo(T):dt(T)&&dt(C)&&l.value.scrollTo(T,C)}const S=T=>{dt(T)&&(l.value.scrollTop=T)},w=T=>{dt(T)&&(l.value.scrollLeft=T)},E=()=>{if(!l.value)return;const T=l.value.offsetHeight-jl,C=l.value.offsetWidth-jl,$=T**2/l.value.scrollHeight,x=C**2/l.value.scrollWidth,N=Math.max($,r.minSize),I=Math.max(x,r.minSize);p.value=$/(T-$)/(N/(T-N)),m.value=x/(C-x)/(I/(C-I)),d.value=N+jlr.noresize,T=>{T?(s==null||s(),a==null||a()):({stop:s}=gr(u,E),a=dn("resize",E))},{immediate:!0}),Be(()=>[r.maxHeight,r.height],()=>{r.native||Xe(()=>{var T;E(),l.value&&((T=f.value)==null||T.handleScroll(l.value))})}),Ct(w7,Ht({scrollbarElement:i,wrapElement:l})),vt(()=>{r.native||Xe(()=>{E()})}),Uo(()=>E()),t({wrapRef:l,update:E,scrollTo:y,setScrollTop:S,setScrollLeft:w,handleScroll:_}),(T,C)=>(k(),D("div",{ref_key:"scrollbarRef",ref:i,class:W(h(o).b())},[R("div",{ref_key:"wrapRef",ref:l,class:W(h(g)),style:Je(h(v)),onScroll:_},[(k(),Me(kt(T.tag),{ref_key:"resizeRef",ref:u,class:W(h(b)),style:Je(T.viewStyle)},{default:be(()=>[Pe(T.$slots,"default")]),_:3},8,["class","style"]))],38),T.native?Ae("v-if",!0):(k(),Me(tTe,{key:0,ref_key:"barRef",ref:f,height:d.value,width:c.value,always:T.always,"ratio-x":m.value,"ratio-y":p.value},null,8,["height","width","always","ratio-x","ratio-y"]))],2))}});var iTe=Fe(aTe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/scrollbar.vue"]]);const _a=St(iTe),lTe=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],Y7=He({role:{type:String,values:lTe,default:"tooltip"}}),uTe=Ce({name:"ElPopperRoot",inheritAttrs:!1}),cTe=Ce({...uTe,props:Y7,setup(e,{expose:t}){const n=e,r=ee(),o=ee(),s=ee(),a=ee(),i=z(()=>n.role),l={triggerRef:r,popperInstanceRef:o,contentRef:s,referenceRef:a,role:i};return t(l),Ct(sb,l),(u,c)=>Pe(u.$slots,"default")}});var dTe=Fe(cTe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/popper.vue"]]);const X7=He({arrowOffset:{type:Number,default:5}}),fTe=Ce({name:"ElPopperArrow",inheritAttrs:!1}),pTe=Ce({...fTe,props:X7,setup(e,{expose:t}){const n=e,r=De("popper"),{arrowOffset:o,arrowRef:s}=Ye(C7,void 0);return Be(()=>n.arrowOffset,a=>{o.value=a}),fn(()=>{s.value=void 0}),t({arrowRef:s}),(a,i)=>(k(),D("span",{ref_key:"arrowRef",ref:s,class:W(h(r).e("arrow")),"data-popper-arrow":""},null,2))}});var hTe=Fe(pTe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/arrow.vue"]]);const mTe="ElOnlyChild",J7=Ce({name:mTe,setup(e,{slots:t,attrs:n}){var r;const o=Ye(O7),s=A9e((r=o==null?void 0:o.setForwardRef)!=null?r:Kt);return()=>{var a;const i=(a=t.default)==null?void 0:a.call(t,n);if(!i||i.length>1)return null;const l=Q7(i);return l?mt(Do(l,n),[[s]]):null}}});function Q7(e){if(!e)return null;const t=e;for(const n of t){if(xt(n))switch(n.type){case Rn:continue;case sl:case"svg":return nS(n);case Ze:return Q7(n.children);default:return n}return nS(n)}return null}function nS(e){const t=De("only-child");return me("span",{class:t.e("content")},[e])}const Z7=He({virtualRef:{type:Re(Object)},virtualTriggering:Boolean,onMouseenter:{type:Re(Function)},onMouseleave:{type:Re(Function)},onClick:{type:Re(Function)},onKeydown:{type:Re(Function)},onFocus:{type:Re(Function)},onBlur:{type:Re(Function)},onContextmenu:{type:Re(Function)},id:String,open:Boolean}),vTe=Ce({name:"ElPopperTrigger",inheritAttrs:!1}),gTe=Ce({...vTe,props:Z7,setup(e,{expose:t}){const n=e,{role:r,triggerRef:o}=Ye(sb,void 0);I9e(o);const s=z(()=>i.value?n.id:void 0),a=z(()=>{if(r&&r.value==="tooltip")return n.open&&n.id?n.id:void 0}),i=z(()=>{if(r&&r.value!=="tooltip")return r.value}),l=z(()=>i.value?`${n.open}`:void 0);let u;return vt(()=>{Be(()=>n.virtualRef,c=>{c&&(o.value=Jr(c))},{immediate:!0}),Be(o,(c,d)=>{u==null||u(),u=void 0,zo(c)&&(["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"].forEach(f=>{var p;const m=n[f];m&&(c.addEventListener(f.slice(2).toLowerCase(),m),(p=d==null?void 0:d.removeEventListener)==null||p.call(d,f.slice(2).toLowerCase(),m))}),u=Be([s,a,i,l],f=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((p,m)=>{Yn(f[m])?c.removeAttribute(p):c.setAttribute(p,f[m])})},{immediate:!0})),zo(d)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(f=>d.removeAttribute(f))},{immediate:!0})}),fn(()=>{u==null||u(),u=void 0}),t({triggerRef:o}),(c,d)=>c.virtualTriggering?Ae("v-if",!0):(k(),Me(h(J7),$t({key:0},c.$attrs,{"aria-controls":h(s),"aria-describedby":h(a),"aria-expanded":h(l),"aria-haspopup":h(i)}),{default:be(()=>[Pe(c.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var _Te=Fe(gTe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/trigger.vue"]]),Br="top",So="bottom",Eo="right",Dr="left",pb="auto",pf=[Br,So,Eo,Dr],Su="start",xd="end",yTe="clippingParents",eI="viewport",gc="popper",bTe="reference",rS=pf.reduce(function(e,t){return e.concat([t+"-"+Su,t+"-"+xd])},[]),dl=[].concat(pf,[pb]).reduce(function(e,t){return e.concat([t,t+"-"+Su,t+"-"+xd])},[]),wTe="beforeRead",STe="read",ETe="afterRead",CTe="beforeMain",kTe="main",TTe="afterMain",$Te="beforeWrite",xTe="write",ITe="afterWrite",ATe=[wTe,STe,ETe,CTe,kTe,TTe,$Te,xTe,ITe];function hs(e){return e?(e.nodeName||"").toLowerCase():null}function Ko(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Eu(e){var t=Ko(e).Element;return e instanceof t||e instanceof Element}function mo(e){var t=Ko(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function hb(e){if(typeof ShadowRoot>"u")return!1;var t=Ko(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function MTe(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var r=t.styles[n]||{},o=t.attributes[n]||{},s=t.elements[n];!mo(s)||!hs(s)||(Object.assign(s.style,r),Object.keys(o).forEach(function(a){var i=o[a];i===!1?s.removeAttribute(a):s.setAttribute(a,i===!0?"":i)}))})}function OTe(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(r){var o=t.elements[r],s=t.attributes[r]||{},a=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]),i=a.reduce(function(l,u){return l[u]="",l},{});!mo(o)||!hs(o)||(Object.assign(o.style,i),Object.keys(s).forEach(function(l){o.removeAttribute(l)}))})}}var tI={name:"applyStyles",enabled:!0,phase:"write",fn:MTe,effect:OTe,requires:["computeStyles"]};function cs(e){return e.split("-")[0]}var ji=Math.max,Jh=Math.min,Cu=Math.round;function ku(e,t){t===void 0&&(t=!1);var n=e.getBoundingClientRect(),r=1,o=1;if(mo(e)&&t){var s=e.offsetHeight,a=e.offsetWidth;a>0&&(r=Cu(n.width)/a||1),s>0&&(o=Cu(n.height)/s||1)}return{width:n.width/r,height:n.height/o,top:n.top/o,right:n.right/r,bottom:n.bottom/o,left:n.left/r,x:n.left/r,y:n.top/o}}function mb(e){var t=ku(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function nI(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&hb(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function na(e){return Ko(e).getComputedStyle(e)}function RTe(e){return["table","td","th"].indexOf(hs(e))>=0}function fi(e){return((Eu(e)?e.ownerDocument:e.document)||window.document).documentElement}function hm(e){return hs(e)==="html"?e:e.assignedSlot||e.parentNode||(hb(e)?e.host:null)||fi(e)}function oS(e){return!mo(e)||na(e).position==="fixed"?null:e.offsetParent}function PTe(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,n=navigator.userAgent.indexOf("Trident")!==-1;if(n&&mo(e)){var r=na(e);if(r.position==="fixed")return null}var o=hm(e);for(hb(o)&&(o=o.host);mo(o)&&["html","body"].indexOf(hs(o))<0;){var s=na(o);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||t&&s.willChange==="filter"||t&&s.filter&&s.filter!=="none")return o;o=o.parentNode}return null}function hf(e){for(var t=Ko(e),n=oS(e);n&&RTe(n)&&na(n).position==="static";)n=oS(n);return n&&(hs(n)==="html"||hs(n)==="body"&&na(n).position==="static")?t:n||PTe(e)||t}function vb(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Yc(e,t,n){return ji(e,Jh(t,n))}function NTe(e,t,n){var r=Yc(e,t,n);return r>n?n:r}function rI(){return{top:0,right:0,bottom:0,left:0}}function oI(e){return Object.assign({},rI(),e)}function sI(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var LTe=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,oI(typeof e!="number"?e:sI(e,pf))};function BTe(e){var t,n=e.state,r=e.name,o=e.options,s=n.elements.arrow,a=n.modifiersData.popperOffsets,i=cs(n.placement),l=vb(i),u=[Dr,Eo].indexOf(i)>=0,c=u?"height":"width";if(!(!s||!a)){var d=LTe(o.padding,n),f=mb(s),p=l==="y"?Br:Dr,m=l==="y"?So:Eo,v=n.rects.reference[c]+n.rects.reference[l]-a[l]-n.rects.popper[c],g=a[l]-n.rects.reference[l],b=hf(s),_=b?l==="y"?b.clientHeight||0:b.clientWidth||0:0,y=v/2-g/2,S=d[p],w=_-f[c]-d[m],E=_/2-f[c]/2+y,T=Yc(S,E,w),C=l;n.modifiersData[r]=(t={},t[C]=T,t.centerOffset=T-E,t)}}function DTe(e){var t=e.state,n=e.options,r=n.element,o=r===void 0?"[data-popper-arrow]":r;o!=null&&(typeof o=="string"&&(o=t.elements.popper.querySelector(o),!o)||!nI(t.elements.popper,o)||(t.elements.arrow=o))}var zTe={name:"arrow",enabled:!0,phase:"main",fn:BTe,effect:DTe,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Tu(e){return e.split("-")[1]}var FTe={top:"auto",right:"auto",bottom:"auto",left:"auto"};function HTe(e){var t=e.x,n=e.y,r=window,o=r.devicePixelRatio||1;return{x:Cu(t*o)/o||0,y:Cu(n*o)/o||0}}function sS(e){var t,n=e.popper,r=e.popperRect,o=e.placement,s=e.variation,a=e.offsets,i=e.position,l=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,d=e.isFixed,f=a.x,p=f===void 0?0:f,m=a.y,v=m===void 0?0:m,g=typeof c=="function"?c({x:p,y:v}):{x:p,y:v};p=g.x,v=g.y;var b=a.hasOwnProperty("x"),_=a.hasOwnProperty("y"),y=Dr,S=Br,w=window;if(u){var E=hf(n),T="clientHeight",C="clientWidth";if(E===Ko(n)&&(E=fi(n),na(E).position!=="static"&&i==="absolute"&&(T="scrollHeight",C="scrollWidth")),E=E,o===Br||(o===Dr||o===Eo)&&s===xd){S=So;var $=d&&E===w&&w.visualViewport?w.visualViewport.height:E[T];v-=$-r.height,v*=l?1:-1}if(o===Dr||(o===Br||o===So)&&s===xd){y=Eo;var x=d&&E===w&&w.visualViewport?w.visualViewport.width:E[C];p-=x-r.width,p*=l?1:-1}}var N=Object.assign({position:i},u&&FTe),I=c===!0?HTe({x:p,y:v}):{x:p,y:v};if(p=I.x,v=I.y,l){var L;return Object.assign({},N,(L={},L[S]=_?"0":"",L[y]=b?"0":"",L.transform=(w.devicePixelRatio||1)<=1?"translate("+p+"px, "+v+"px)":"translate3d("+p+"px, "+v+"px, 0)",L))}return Object.assign({},N,(t={},t[S]=_?v+"px":"",t[y]=b?p+"px":"",t.transform="",t))}function VTe(e){var t=e.state,n=e.options,r=n.gpuAcceleration,o=r===void 0?!0:r,s=n.adaptive,a=s===void 0?!0:s,i=n.roundOffsets,l=i===void 0?!0:i,u={placement:cs(t.placement),variation:Tu(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,sS(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,sS(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var aI={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:VTe,data:{}},Vf={passive:!0};function jTe(e){var t=e.state,n=e.instance,r=e.options,o=r.scroll,s=o===void 0?!0:o,a=r.resize,i=a===void 0?!0:a,l=Ko(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return s&&u.forEach(function(c){c.addEventListener("scroll",n.update,Vf)}),i&&l.addEventListener("resize",n.update,Vf),function(){s&&u.forEach(function(c){c.removeEventListener("scroll",n.update,Vf)}),i&&l.removeEventListener("resize",n.update,Vf)}}var iI={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:jTe,data:{}},UTe={left:"right",right:"left",bottom:"top",top:"bottom"};function bp(e){return e.replace(/left|right|bottom|top/g,function(t){return UTe[t]})}var WTe={start:"end",end:"start"};function aS(e){return e.replace(/start|end/g,function(t){return WTe[t]})}function gb(e){var t=Ko(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function _b(e){return ku(fi(e)).left+gb(e).scrollLeft}function qTe(e){var t=Ko(e),n=fi(e),r=t.visualViewport,o=n.clientWidth,s=n.clientHeight,a=0,i=0;return r&&(o=r.width,s=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=r.offsetLeft,i=r.offsetTop)),{width:o,height:s,x:a+_b(e),y:i}}function KTe(e){var t,n=fi(e),r=gb(e),o=(t=e.ownerDocument)==null?void 0:t.body,s=ji(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=ji(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),i=-r.scrollLeft+_b(e),l=-r.scrollTop;return na(o||n).direction==="rtl"&&(i+=ji(n.clientWidth,o?o.clientWidth:0)-s),{width:s,height:a,x:i,y:l}}function yb(e){var t=na(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function lI(e){return["html","body","#document"].indexOf(hs(e))>=0?e.ownerDocument.body:mo(e)&&yb(e)?e:lI(hm(e))}function Xc(e,t){var n;t===void 0&&(t=[]);var r=lI(e),o=r===((n=e.ownerDocument)==null?void 0:n.body),s=Ko(r),a=o?[s].concat(s.visualViewport||[],yb(r)?r:[]):r,i=t.concat(a);return o?i:i.concat(Xc(hm(a)))}function u1(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function GTe(e){var t=ku(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function iS(e,t){return t===eI?u1(qTe(e)):Eu(t)?GTe(t):u1(KTe(fi(e)))}function YTe(e){var t=Xc(hm(e)),n=["absolute","fixed"].indexOf(na(e).position)>=0,r=n&&mo(e)?hf(e):e;return Eu(r)?t.filter(function(o){return Eu(o)&&nI(o,r)&&hs(o)!=="body"}):[]}function XTe(e,t,n){var r=t==="clippingParents"?YTe(e):[].concat(t),o=[].concat(r,[n]),s=o[0],a=o.reduce(function(i,l){var u=iS(e,l);return i.top=ji(u.top,i.top),i.right=Jh(u.right,i.right),i.bottom=Jh(u.bottom,i.bottom),i.left=ji(u.left,i.left),i},iS(e,s));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function uI(e){var t=e.reference,n=e.element,r=e.placement,o=r?cs(r):null,s=r?Tu(r):null,a=t.x+t.width/2-n.width/2,i=t.y+t.height/2-n.height/2,l;switch(o){case Br:l={x:a,y:t.y-n.height};break;case So:l={x:a,y:t.y+t.height};break;case Eo:l={x:t.x+t.width,y:i};break;case Dr:l={x:t.x-n.width,y:i};break;default:l={x:t.x,y:t.y}}var u=o?vb(o):null;if(u!=null){var c=u==="y"?"height":"width";switch(s){case Su:l[u]=l[u]-(t[c]/2-n[c]/2);break;case xd:l[u]=l[u]+(t[c]/2-n[c]/2);break}}return l}function Id(e,t){t===void 0&&(t={});var n=t,r=n.placement,o=r===void 0?e.placement:r,s=n.boundary,a=s===void 0?yTe:s,i=n.rootBoundary,l=i===void 0?eI:i,u=n.elementContext,c=u===void 0?gc:u,d=n.altBoundary,f=d===void 0?!1:d,p=n.padding,m=p===void 0?0:p,v=oI(typeof m!="number"?m:sI(m,pf)),g=c===gc?bTe:gc,b=e.rects.popper,_=e.elements[f?g:c],y=XTe(Eu(_)?_:_.contextElement||fi(e.elements.popper),a,l),S=ku(e.elements.reference),w=uI({reference:S,element:b,placement:o}),E=u1(Object.assign({},b,w)),T=c===gc?E:S,C={top:y.top-T.top+v.top,bottom:T.bottom-y.bottom+v.bottom,left:y.left-T.left+v.left,right:T.right-y.right+v.right},$=e.modifiersData.offset;if(c===gc&&$){var x=$[o];Object.keys(C).forEach(function(N){var I=[Eo,So].indexOf(N)>=0?1:-1,L=[Br,So].indexOf(N)>=0?"y":"x";C[N]+=x[L]*I})}return C}function JTe(e,t){t===void 0&&(t={});var n=t,r=n.placement,o=n.boundary,s=n.rootBoundary,a=n.padding,i=n.flipVariations,l=n.allowedAutoPlacements,u=l===void 0?dl:l,c=Tu(r),d=c?i?rS:rS.filter(function(m){return Tu(m)===c}):pf,f=d.filter(function(m){return u.indexOf(m)>=0});f.length===0&&(f=d);var p=f.reduce(function(m,v){return m[v]=Id(e,{placement:v,boundary:o,rootBoundary:s,padding:a})[cs(v)],m},{});return Object.keys(p).sort(function(m,v){return p[m]-p[v]})}function QTe(e){if(cs(e)===pb)return[];var t=bp(e);return[aS(e),t,aS(t)]}function ZTe(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,s=o===void 0?!0:o,a=n.altAxis,i=a===void 0?!0:a,l=n.fallbackPlacements,u=n.padding,c=n.boundary,d=n.rootBoundary,f=n.altBoundary,p=n.flipVariations,m=p===void 0?!0:p,v=n.allowedAutoPlacements,g=t.options.placement,b=cs(g),_=b===g,y=l||(_||!m?[bp(g)]:QTe(g)),S=[g].concat(y).reduce(function(ge,ie){return ge.concat(cs(ie)===pb?JTe(t,{placement:ie,boundary:c,rootBoundary:d,padding:u,flipVariations:m,allowedAutoPlacements:v}):ie)},[]),w=t.rects.reference,E=t.rects.popper,T=new Map,C=!0,$=S[0],x=0;x=0,B=F?"width":"height",U=Id(t,{placement:N,boundary:c,rootBoundary:d,altBoundary:f,padding:u}),P=F?L?Eo:Dr:L?So:Br;w[B]>E[B]&&(P=bp(P));var O=bp(P),H=[];if(s&&H.push(U[I]<=0),i&&H.push(U[P]<=0,U[O]<=0),H.every(function(ge){return ge})){$=N,C=!1;break}T.set(N,H)}if(C)for(var q=m?3:1,te=function(ge){var ie=S.find(function(ke){var Y=T.get(ke);if(Y)return Y.slice(0,ge).every(function(K){return K})});if(ie)return $=ie,"break"},V=q;V>0;V--){var Q=te(V);if(Q==="break")break}t.placement!==$&&(t.modifiersData[r]._skip=!0,t.placement=$,t.reset=!0)}}var e$e={name:"flip",enabled:!0,phase:"main",fn:ZTe,requiresIfExists:["offset"],data:{_skip:!1}};function lS(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function uS(e){return[Br,Eo,So,Dr].some(function(t){return e[t]>=0})}function t$e(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,s=t.modifiersData.preventOverflow,a=Id(t,{elementContext:"reference"}),i=Id(t,{altBoundary:!0}),l=lS(a,r),u=lS(i,o,s),c=uS(l),d=uS(u);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}var n$e={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:t$e};function r$e(e,t,n){var r=cs(e),o=[Dr,Br].indexOf(r)>=0?-1:1,s=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,a=s[0],i=s[1];return a=a||0,i=(i||0)*o,[Dr,Eo].indexOf(r)>=0?{x:i,y:a}:{x:a,y:i}}function o$e(e){var t=e.state,n=e.options,r=e.name,o=n.offset,s=o===void 0?[0,0]:o,a=dl.reduce(function(c,d){return c[d]=r$e(d,t.rects,s),c},{}),i=a[t.placement],l=i.x,u=i.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[r]=a}var s$e={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:o$e};function a$e(e){var t=e.state,n=e.name;t.modifiersData[n]=uI({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})}var cI={name:"popperOffsets",enabled:!0,phase:"read",fn:a$e,data:{}};function i$e(e){return e==="x"?"y":"x"}function l$e(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=o===void 0?!0:o,a=n.altAxis,i=a===void 0?!1:a,l=n.boundary,u=n.rootBoundary,c=n.altBoundary,d=n.padding,f=n.tether,p=f===void 0?!0:f,m=n.tetherOffset,v=m===void 0?0:m,g=Id(t,{boundary:l,rootBoundary:u,padding:d,altBoundary:c}),b=cs(t.placement),_=Tu(t.placement),y=!_,S=vb(b),w=i$e(S),E=t.modifiersData.popperOffsets,T=t.rects.reference,C=t.rects.popper,$=typeof v=="function"?v(Object.assign({},t.rects,{placement:t.placement})):v,x=typeof $=="number"?{mainAxis:$,altAxis:$}:Object.assign({mainAxis:0,altAxis:0},$),N=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,I={x:0,y:0};if(E){if(s){var L,F=S==="y"?Br:Dr,B=S==="y"?So:Eo,U=S==="y"?"height":"width",P=E[S],O=P+g[F],H=P-g[B],q=p?-C[U]/2:0,te=_===Su?T[U]:C[U],V=_===Su?-C[U]:-T[U],Q=t.elements.arrow,ge=p&&Q?mb(Q):{width:0,height:0},ie=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:rI(),ke=ie[F],Y=ie[B],K=Yc(0,T[U],ge[U]),se=y?T[U]/2-q-K-ke-x.mainAxis:te-K-ke-x.mainAxis,ne=y?-T[U]/2+q+K+Y+x.mainAxis:V+K+Y+x.mainAxis,ve=t.elements.arrow&&hf(t.elements.arrow),J=ve?S==="y"?ve.clientTop||0:ve.clientLeft||0:0,ae=(L=N==null?void 0:N[S])!=null?L:0,ce=P+se-ae-J,oe=P+ne-ae,he=Yc(p?Jh(O,ce):O,P,p?ji(H,oe):H);E[S]=he,I[S]=he-P}if(i){var le,Ee=S==="x"?Br:Dr,ye=S==="x"?So:Eo,pe=E[w],re=w==="y"?"height":"width",fe=pe+g[Ee],Te=pe-g[ye],$e=[Br,Dr].indexOf(b)!==-1,Le=(le=N==null?void 0:N[w])!=null?le:0,A=$e?fe:pe-T[re]-C[re]-Le+x.altAxis,M=$e?pe+T[re]+C[re]-Le-x.altAxis:Te,j=p&&$e?NTe(A,pe,M):Yc(p?A:fe,pe,p?M:Te);E[w]=j,I[w]=j-pe}t.modifiersData[r]=I}}var u$e={name:"preventOverflow",enabled:!0,phase:"main",fn:l$e,requiresIfExists:["offset"]};function c$e(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function d$e(e){return e===Ko(e)||!mo(e)?gb(e):c$e(e)}function f$e(e){var t=e.getBoundingClientRect(),n=Cu(t.width)/e.offsetWidth||1,r=Cu(t.height)/e.offsetHeight||1;return n!==1||r!==1}function p$e(e,t,n){n===void 0&&(n=!1);var r=mo(t),o=mo(t)&&f$e(t),s=fi(t),a=ku(e,o),i={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(r||!r&&!n)&&((hs(t)!=="body"||yb(s))&&(i=d$e(t)),mo(t)?(l=ku(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):s&&(l.x=_b(s))),{x:a.left+i.scrollLeft-l.x,y:a.top+i.scrollTop-l.y,width:a.width,height:a.height}}function h$e(e){var t=new Map,n=new Set,r=[];e.forEach(function(s){t.set(s.name,s)});function o(s){n.add(s.name);var a=[].concat(s.requires||[],s.requiresIfExists||[]);a.forEach(function(i){if(!n.has(i)){var l=t.get(i);l&&o(l)}}),r.push(s)}return e.forEach(function(s){n.has(s.name)||o(s)}),r}function m$e(e){var t=h$e(e);return ATe.reduce(function(n,r){return n.concat(t.filter(function(o){return o.phase===r}))},[])}function v$e(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function g$e(e){var t=e.reduce(function(n,r){var o=n[r.name];return n[r.name]=o?Object.assign({},o,r,{options:Object.assign({},o.options,r.options),data:Object.assign({},o.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var cS={placement:"bottom",modifiers:[],strategy:"absolute"};function dS(){for(var e=arguments.length,t=new Array(e),n=0;n{const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0||r===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t},mS=(e,t)=>{for(const n of e)if(!S$e(n,t))return n},S$e=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},E$e=e=>{const t=fI(e),n=mS(t,e),r=mS(t.reverse(),e);return[n,r]},C$e=e=>e instanceof HTMLInputElement&&"select"in e,Aa=(e,t)=>{if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),Eb.value=window.performance.now(),e!==n&&C$e(e)&&t&&e.select()}};function vS(e,t){const n=[...e],r=e.indexOf(t);return r!==-1&&n.splice(r,1),n}const k$e=()=>{let e=[];return{push:r=>{const o=e[0];o&&r!==o&&o.pause(),e=vS(e,r),e.unshift(r)},remove:r=>{var o,s;e=vS(e,r),(s=(o=e[0])==null?void 0:o.resume)==null||s.call(o)}}},T$e=(e,t=!1)=>{const n=document.activeElement;for(const r of e)if(Aa(r,t),document.activeElement!==n)return},gS=k$e(),$$e=()=>mm.value>Eb.value,Uf=()=>{Sb.value="pointer",mm.value=window.performance.now()},_S=()=>{Sb.value="keyboard",mm.value=window.performance.now()},x$e=()=>(vt(()=>{jf===0&&(document.addEventListener("mousedown",Uf),document.addEventListener("touchstart",Uf),document.addEventListener("keydown",_S)),jf++}),fn(()=>{jf--,jf<=0&&(document.removeEventListener("mousedown",Uf),document.removeEventListener("touchstart",Uf),document.removeEventListener("keydown",_S))}),{focusReason:Sb,lastUserFocusTimestamp:mm,lastAutomatedFocusTimestamp:Eb}),Wf=e=>new CustomEvent(b$e,{...w$e,detail:e}),I$e=Ce({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[pS,hS,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const n=ee();let r,o;const{focusReason:s}=x$e();C9e(m=>{e.trapped&&!a.paused&&t("release-requested",m)});const a={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},i=m=>{if(!e.loop&&!e.trapped||a.paused)return;const{key:v,altKey:g,ctrlKey:b,metaKey:_,currentTarget:y,shiftKey:S}=m,{loop:w}=e,E=v===ot.tab&&!g&&!b&&!_,T=document.activeElement;if(E&&T){const C=y,[$,x]=E$e(C);if($&&x){if(!S&&T===x){const I=Wf({focusReason:s.value});t("focusout-prevented",I),I.defaultPrevented||(m.preventDefault(),w&&Aa($,!0))}else if(S&&[$,C].includes(T)){const I=Wf({focusReason:s.value});t("focusout-prevented",I),I.defaultPrevented||(m.preventDefault(),w&&Aa(x,!0))}}else if(T===C){const I=Wf({focusReason:s.value});t("focusout-prevented",I),I.defaultPrevented||m.preventDefault()}}};Ct(wb,{focusTrapRef:n,onKeydown:i}),Be(()=>e.focusTrapEl,m=>{m&&(n.value=m)},{immediate:!0}),Be([n],([m],[v])=>{m&&(m.addEventListener("keydown",i),m.addEventListener("focusin",c),m.addEventListener("focusout",d)),v&&(v.removeEventListener("keydown",i),v.removeEventListener("focusin",c),v.removeEventListener("focusout",d))});const l=m=>{t(pS,m)},u=m=>t(hS,m),c=m=>{const v=h(n);if(!v)return;const g=m.target,b=m.relatedTarget,_=g&&v.contains(g);e.trapped||b&&v.contains(b)||(r=b),_&&t("focusin",m),!a.paused&&e.trapped&&(_?o=g:Aa(o,!0))},d=m=>{const v=h(n);if(!(a.paused||!v))if(e.trapped){const g=m.relatedTarget;!Yn(g)&&!v.contains(g)&&setTimeout(()=>{if(!a.paused&&e.trapped){const b=Wf({focusReason:s.value});t("focusout-prevented",b),b.defaultPrevented||Aa(o,!0)}},0)}else{const g=m.target;g&&v.contains(g)||t("focusout",m)}};async function f(){await Xe();const m=h(n);if(m){gS.push(a);const v=m.contains(document.activeElement)?r:document.activeElement;if(r=v,!m.contains(v)){const b=new Event(bv,fS);m.addEventListener(bv,l),m.dispatchEvent(b),b.defaultPrevented||Xe(()=>{let _=e.focusStartEl;ft(_)||(Aa(_),document.activeElement!==_&&(_="first")),_==="first"&&T$e(fI(m),!0),(document.activeElement===v||_==="container")&&Aa(m)})}}}function p(){const m=h(n);if(m){m.removeEventListener(bv,l);const v=new CustomEvent(wv,{...fS,detail:{focusReason:s.value}});m.addEventListener(wv,u),m.dispatchEvent(v),!v.defaultPrevented&&(s.value=="keyboard"||!$$e())&&Aa(r??document.body),m.removeEventListener(wv,l),gS.remove(a)}}return vt(()=>{e.trapped&&f(),Be(()=>e.trapped,m=>{m?f():p()})}),fn(()=>{e.trapped&&p()}),{onKeydown:i}}});function A$e(e,t,n,r,o,s){return Pe(e.$slots,"default",{handleKeydown:e.onKeydown})}var vm=Fe(I$e,[["render",A$e],["__file","/home/runner/work/element-plus/element-plus/packages/components/focus-trap/src/focus-trap.vue"]]);const M$e=["fixed","absolute"],O$e=He({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:Re(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:dl,default:"bottom"},popperOptions:{type:Re(Object),default:()=>({})},strategy:{type:String,values:M$e,default:"absolute"}}),pI=He({...O$e,id:String,style:{type:Re([String,Array,Object])},className:{type:Re([String,Array,Object])},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:Re([String,Array,Object])},popperStyle:{type:Re([String,Array,Object])},referenceEl:{type:Re(Object)},triggerTargetEl:{type:Re(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0},virtualTriggering:Boolean,zIndex:Number}),R$e={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},yS=(e,t)=>{const{placement:n,strategy:r,popperOptions:o}=e,s={placement:n,strategy:r,...o,modifiers:N$e(e)};return L$e(s,t),B$e(s,o==null?void 0:o.modifiers),s},P$e=e=>{if(Pt)return Jr(e)};function N$e(e){const{offset:t,gpuAcceleration:n,fallbackPlacements:r}=e;return[{name:"offset",options:{offset:[0,t??12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:r}},{name:"computeStyles",options:{gpuAcceleration:n}}]}function L$e(e,{arrowEl:t,arrowOffset:n}){e.modifiers.push({name:"arrow",options:{element:t,padding:n??5}})}function B$e(e,t){t&&(e.modifiers=[...e.modifiers,...t??[]])}const D$e=Ce({name:"ElPopperContent"}),z$e=Ce({...D$e,props:pI,emits:R$e,setup(e,{expose:t,emit:n}){const r=e,{popperInstanceRef:o,contentRef:s,triggerRef:a,role:i}=Ye(sb,void 0),l=Ye(fs,void 0),{nextZIndex:u}=va(),c=De("popper"),d=ee(),f=ee("first"),p=ee(),m=ee();Ct(C7,{arrowRef:p,arrowOffset:m}),l&&(l.addInputId||l.removeInputId)&&Ct(fs,{...l,addInputId:Kt,removeInputId:Kt});const v=ee(r.zIndex||u()),g=ee(!1);let b;const _=z(()=>P$e(r.referenceEl)||h(a)),y=z(()=>[{zIndex:h(v)},r.popperStyle]),S=z(()=>[c.b(),c.is("pure",r.pure),c.is(r.effect),r.popperClass]),w=z(()=>i&&i.value==="dialog"?"false":void 0),E=({referenceEl:F,popperContentEl:B,arrowEl:U})=>{const P=yS(r,{arrowEl:U,arrowOffset:h(m)});return dI(F,B,P)},T=(F=!0)=>{var B;(B=h(o))==null||B.update(),F&&(v.value=r.zIndex||u())},C=()=>{var F,B;const U={name:"eventListeners",enabled:r.visible};(B=(F=h(o))==null?void 0:F.setOptions)==null||B.call(F,P=>({...P,modifiers:[...P.modifiers||[],U]})),T(!1),r.visible&&r.focusOnShow?g.value=!0:r.visible===!1&&(g.value=!1)},$=()=>{n("focus")},x=F=>{var B;((B=F.detail)==null?void 0:B.focusReason)!=="pointer"&&(f.value="first",n("blur"))},N=F=>{r.visible&&!g.value&&(F.target&&(f.value=F.target),g.value=!0)},I=F=>{r.trapping||(F.detail.focusReason==="pointer"&&F.preventDefault(),g.value=!1)},L=()=>{g.value=!1,n("close")};return vt(()=>{let F;Be(_,B=>{var U;F==null||F();const P=h(o);if((U=P==null?void 0:P.destroy)==null||U.call(P),B){const O=h(d);s.value=O,o.value=E({referenceEl:B,popperContentEl:O,arrowEl:h(p)}),F=Be(()=>B.getBoundingClientRect(),()=>T(),{immediate:!0})}else o.value=void 0},{immediate:!0}),Be(()=>r.triggerTargetEl,(B,U)=>{b==null||b(),b=void 0;const P=h(B||d.value),O=h(U||d.value);zo(P)&&(b=Be([i,()=>r.ariaLabel,w,()=>r.id],H=>{["role","aria-label","aria-modal","id"].forEach((q,te)=>{Yn(H[te])?P.removeAttribute(q):P.setAttribute(q,H[te])})},{immediate:!0})),O!==P&&zo(O)&&["role","aria-label","aria-modal","id"].forEach(H=>{O.removeAttribute(H)})},{immediate:!0}),Be(()=>r.visible,C,{immediate:!0}),Be(()=>yS(r,{arrowEl:h(p),arrowOffset:h(m)}),B=>{var U;return(U=o.value)==null?void 0:U.setOptions(B)})}),fn(()=>{b==null||b(),b=void 0}),t({popperContentRef:d,popperInstanceRef:o,updatePopper:T,contentStyle:y}),(F,B)=>(k(),D("div",{ref_key:"popperContentRef",ref:d,style:Je(h(y)),class:W(h(S)),tabindex:"-1",onMouseenter:B[0]||(B[0]=U=>F.$emit("mouseenter",U)),onMouseleave:B[1]||(B[1]=U=>F.$emit("mouseleave",U))},[me(h(vm),{trapped:g.value,"trap-on-focus-in":!0,"focus-trap-el":d.value,"focus-start-el":f.value,onFocusAfterTrapped:$,onFocusAfterReleased:x,onFocusin:N,onFocusoutPrevented:I,onReleaseRequested:L},{default:be(()=>[Pe(F.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el"])],38))}});var F$e=Fe(z$e,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popper/src/content.vue"]]);const hI=St(dTe),H$e=De("tooltip"),Kn=He({...$9e,...pI,appendTo:{type:Re([String,Object])},content:{type:String,default:""},rawContent:{type:Boolean,default:!1},persistent:Boolean,ariaLabel:String,visible:{type:Re(Boolean),default:null},transition:{type:String,default:`${H$e.namespace.value}-fade-in-linear`},teleported:{type:Boolean,default:!0},disabled:{type:Boolean}}),Ad=He({...Z7,disabled:Boolean,trigger:{type:Re([String,Array]),default:"hover"},triggerKeys:{type:Re(Array),default:()=>[ot.enter,ot.space]}}),{useModelToggleProps:V$e,useModelToggleEmits:j$e,useModelToggle:U$e}=b9e("visible"),W$e=He({...Y7,...V$e,...Kn,...Ad,...X7,showArrow:{type:Boolean,default:!0}}),q$e=[...j$e,"before-show","before-hide","show","hide","open","close"],K$e=(e,t)=>Ge(e)?e.includes(t):e===t,yl=(e,t,n)=>r=>{K$e(h(e),t)&&n(r)},G$e=Ce({name:"ElTooltipTrigger"}),Y$e=Ce({...G$e,props:Ad,setup(e,{expose:t}){const n=e,r=De("tooltip"),{controlled:o,id:s,open:a,onOpen:i,onClose:l,onToggle:u}=Ye(im,void 0),c=ee(null),d=()=>{if(h(o)||n.disabled)return!0},f=gn(n,"trigger"),p=Sn(d,yl(f,"hover",i)),m=Sn(d,yl(f,"hover",l)),v=Sn(d,yl(f,"click",S=>{S.button===0&&u(S)})),g=Sn(d,yl(f,"focus",i)),b=Sn(d,yl(f,"focus",l)),_=Sn(d,yl(f,"contextmenu",S=>{S.preventDefault(),u(S)})),y=Sn(d,S=>{const{code:w}=S;n.triggerKeys.includes(w)&&(S.preventDefault(),u(S))});return t({triggerRef:c}),(S,w)=>(k(),Me(h(_Te),{id:h(s),"virtual-ref":S.virtualRef,open:h(a),"virtual-triggering":S.virtualTriggering,class:W(h(r).e("trigger")),onBlur:h(b),onClick:h(v),onContextmenu:h(_),onFocus:h(g),onMouseenter:h(p),onMouseleave:h(m),onKeydown:h(y)},{default:be(()=>[Pe(S.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var X$e=Fe(Y$e,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/trigger.vue"]]);const J$e=Ce({name:"ElTooltipContent",inheritAttrs:!1}),Q$e=Ce({...J$e,props:Kn,setup(e,{expose:t}){const n=e,{selector:r}=M7(),o=ee(null),s=ee(!1),{controlled:a,id:i,open:l,trigger:u,onClose:c,onOpen:d,onShow:f,onHide:p,onBeforeShow:m,onBeforeHide:v}=Ye(im,void 0),g=z(()=>n.persistent);fn(()=>{s.value=!0});const b=z(()=>h(g)?!0:h(l)),_=z(()=>n.disabled?!1:h(l)),y=z(()=>n.appendTo||r.value),S=z(()=>{var B;return(B=n.style)!=null?B:{}}),w=z(()=>!h(l)),E=()=>{p()},T=()=>{if(h(a))return!0},C=Sn(T,()=>{n.enterable&&h(u)==="hover"&&d()}),$=Sn(T,()=>{h(u)==="hover"&&c()}),x=()=>{var B,U;(U=(B=o.value)==null?void 0:B.updatePopper)==null||U.call(B),m==null||m()},N=()=>{v==null||v()},I=()=>{f(),F=G4(z(()=>{var B;return(B=o.value)==null?void 0:B.popperContentRef}),()=>{if(h(a))return;h(u)!=="hover"&&c()})},L=()=>{n.virtualTriggering||c()};let F;return Be(()=>h(l),B=>{B||F==null||F()},{flush:"post"}),Be(()=>n.content,()=>{var B,U;(U=(B=o.value)==null?void 0:B.updatePopper)==null||U.call(B)}),t({contentRef:o}),(B,U)=>(k(),Me(Du,{disabled:!B.teleported,to:h(y)},[me(xn,{name:B.transition,onAfterLeave:E,onBeforeEnter:x,onAfterEnter:I,onBeforeLeave:N},{default:be(()=>[h(b)?mt((k(),Me(h(F$e),$t({key:0,id:h(i),ref_key:"contentRef",ref:o},B.$attrs,{"aria-label":B.ariaLabel,"aria-hidden":h(w),"boundaries-padding":B.boundariesPadding,"fallback-placements":B.fallbackPlacements,"gpu-acceleration":B.gpuAcceleration,offset:B.offset,placement:B.placement,"popper-options":B.popperOptions,strategy:B.strategy,effect:B.effect,enterable:B.enterable,pure:B.pure,"popper-class":B.popperClass,"popper-style":[B.popperStyle,h(S)],"reference-el":B.referenceEl,"trigger-target-el":B.triggerTargetEl,visible:h(_),"z-index":B.zIndex,onMouseenter:h(C),onMouseleave:h($),onBlur:L,onClose:h(c)}),{default:be(()=>[s.value?Ae("v-if",!0):Pe(B.$slots,"default",{key:0})]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[zt,h(_)]]):Ae("v-if",!0)]),_:3},8,["name"])],8,["disabled","to"]))}});var Z$e=Fe(Q$e,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/content.vue"]]);const exe=["innerHTML"],txe={key:1},nxe=Ce({name:"ElTooltip"}),rxe=Ce({...nxe,props:W$e,emits:q$e,setup(e,{expose:t,emit:n}){const r=e;T9e();const o=Fo(),s=ee(),a=ee(),i=()=>{var b;const _=h(s);_&&((b=_.popperInstanceRef)==null||b.update())},l=ee(!1),u=ee(),{show:c,hide:d,hasUpdateHandler:f}=U$e({indicator:l,toggleReason:u}),{onOpen:p,onClose:m}=x9e({showAfter:gn(r,"showAfter"),hideAfter:gn(r,"hideAfter"),open:c,close:d}),v=z(()=>Dn(r.visible)&&!f.value);Ct(im,{controlled:v,id:o,open:Lu(l),trigger:gn(r,"trigger"),onOpen:b=>{p(b)},onClose:b=>{m(b)},onToggle:b=>{h(l)?m(b):p(b)},onShow:()=>{n("show",u.value)},onHide:()=>{n("hide",u.value)},onBeforeShow:()=>{n("before-show",u.value)},onBeforeHide:()=>{n("before-hide",u.value)},updatePopper:i}),Be(()=>r.disabled,b=>{b&&l.value&&(l.value=!1)});const g=()=>{var b,_;const y=(_=(b=a.value)==null?void 0:b.contentRef)==null?void 0:_.popperContentRef;return y&&y.contains(document.activeElement)};return Iy(()=>l.value&&d()),t({popperRef:s,contentRef:a,isFocusInsideContent:g,updatePopper:i,onOpen:p,onClose:m,hide:d}),(b,_)=>(k(),Me(h(hI),{ref_key:"popperRef",ref:s,role:b.role},{default:be(()=>[me(X$e,{disabled:b.disabled,trigger:b.trigger,"trigger-keys":b.triggerKeys,"virtual-ref":b.virtualRef,"virtual-triggering":b.virtualTriggering},{default:be(()=>[b.$slots.default?Pe(b.$slots,"default",{key:0}):Ae("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),me(Z$e,{ref_key:"contentRef",ref:a,"aria-label":b.ariaLabel,"boundaries-padding":b.boundariesPadding,content:b.content,disabled:b.disabled,effect:b.effect,enterable:b.enterable,"fallback-placements":b.fallbackPlacements,"hide-after":b.hideAfter,"gpu-acceleration":b.gpuAcceleration,offset:b.offset,persistent:b.persistent,"popper-class":b.popperClass,"popper-style":b.popperStyle,placement:b.placement,"popper-options":b.popperOptions,pure:b.pure,"raw-content":b.rawContent,"reference-el":b.referenceEl,"trigger-target-el":b.triggerTargetEl,"show-after":b.showAfter,strategy:b.strategy,teleported:b.teleported,transition:b.transition,"virtual-triggering":b.virtualTriggering,"z-index":b.zIndex,"append-to":b.appendTo},{default:be(()=>[Pe(b.$slots,"content",{},()=>[b.rawContent?(k(),D("span",{key:0,innerHTML:b.content},null,8,exe)):(k(),D("span",txe,ze(b.content),1))]),b.showArrow?(k(),Me(h(hTe),{key:0,"arrow-offset":b.arrowOffset},null,8,["arrow-offset"])):Ae("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var oxe=Fe(rxe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/tooltip.vue"]]);const Ur=St(oxe),sxe=He({valueKey:{type:String,default:"value"},modelValue:{type:[String,Number],default:""},debounce:{type:Number,default:300},placement:{type:Re(String),values:["top","top-start","top-end","bottom","bottom-start","bottom-end"],default:"bottom-start"},fetchSuggestions:{type:Re([Function,Array]),default:Kt},popperClass:{type:String,default:""},triggerOnFocus:{type:Boolean,default:!0},selectWhenUnmatched:{type:Boolean,default:!1},hideLoading:{type:Boolean,default:!1},label:{type:String},teleported:Kn.teleported,highlightFirstItem:{type:Boolean,default:!1},fitInputWidth:{type:Boolean,default:!1}}),axe={[Et]:e=>ft(e),[kr]:e=>ft(e),[un]:e=>ft(e),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0,select:e=>xt(e)},ixe=["aria-expanded","aria-owns"],lxe={key:0},uxe=["id","aria-selected","onClick"],mI="ElAutocomplete",cxe=Ce({name:mI,inheritAttrs:!1}),dxe=Ce({...cxe,props:sxe,emits:axe,setup(e,{expose:t,emit:n}){const r=e,o=ob(),s=zu(),a=jr(),i=De("autocomplete"),l=ee(),u=ee(),c=ee(),d=ee();let f=!1,p=!1;const m=ee([]),v=ee(-1),g=ee(""),b=ee(!1),_=ee(!1),y=ee(!1),S=z(()=>i.b(String(sm()))),w=z(()=>s.style),E=z(()=>(m.value.length>0||y.value)&&b.value),T=z(()=>!r.hideLoading&&y.value),C=z(()=>l.value?Array.from(l.value.$el.querySelectorAll("input")):[]),$=async()=>{await Xe(),E.value&&(g.value=`${l.value.$el.offsetWidth}px`)},x=()=>{p=!0},N=()=>{p=!1,v.value=-1},L=$r(async Y=>{if(_.value)return;const K=se=>{y.value=!1,!_.value&&(Ge(se)?(m.value=se,v.value=r.highlightFirstItem?0:-1):zn(mI,"autocomplete suggestions must be an array"))};if(y.value=!0,Ge(r.fetchSuggestions))K(r.fetchSuggestions);else{const se=await r.fetchSuggestions(Y,K);Ge(se)&&K(se)}},r.debounce),F=Y=>{const K=!!Y;if(n(kr,Y),n(Et,Y),_.value=!1,b.value||(b.value=K),!r.triggerOnFocus&&!Y){_.value=!0,m.value=[];return}L(Y)},B=Y=>{var K;a.value||(((K=Y.target)==null?void 0:K.tagName)!=="INPUT"||C.value.includes(document.activeElement))&&(b.value=!0)},U=Y=>{n(un,Y)},P=Y=>{p||(b.value=!0,n("focus",Y),r.triggerOnFocus&&!f&&L(String(r.modelValue)))},O=Y=>{p||n("blur",Y)},H=()=>{b.value=!1,n(Et,""),n("clear")},q=async()=>{E.value&&v.value>=0&&v.value{E.value&&(Y.preventDefault(),Y.stopPropagation(),V())},V=()=>{b.value=!1},Q=()=>{var Y;(Y=l.value)==null||Y.focus()},ge=()=>{var Y;(Y=l.value)==null||Y.blur()},ie=async Y=>{n(kr,Y[r.valueKey]),n(Et,Y[r.valueKey]),n("select",Y),m.value=[],v.value=-1},ke=Y=>{if(!E.value||y.value)return;if(Y<0){v.value=-1;return}Y>=m.value.length&&(Y=m.value.length-1);const K=u.value.querySelector(`.${i.be("suggestion","wrap")}`),ne=K.querySelectorAll(`.${i.be("suggestion","list")} li`)[Y],ve=K.scrollTop,{offsetTop:J,scrollHeight:ae}=ne;J+ae>ve+K.clientHeight&&(K.scrollTop+=ae),J{E.value&&V()}),vt(()=>{l.value.ref.setAttribute("role","textbox"),l.value.ref.setAttribute("aria-autocomplete","list"),l.value.ref.setAttribute("aria-controls","id"),l.value.ref.setAttribute("aria-activedescendant",`${S.value}-item-${v.value}`),f=l.value.ref.hasAttribute("readonly")}),t({highlightedIndex:v,activated:b,loading:y,inputRef:l,popperRef:c,suggestions:m,handleSelect:ie,handleKeyEnter:q,focus:Q,blur:ge,close:V,highlight:ke}),(Y,K)=>(k(),Me(h(Ur),{ref_key:"popperRef",ref:c,visible:h(E),placement:Y.placement,"fallback-placements":["bottom-start","top-start"],"popper-class":[h(i).e("popper"),Y.popperClass],teleported:Y.teleported,"gpu-acceleration":!1,pure:"","manual-mode":"",effect:"light",trigger:"click",transition:`${h(i).namespace.value}-zoom-in-top`,persistent:"",onBeforeShow:$,onShow:x,onHide:N},{content:be(()=>[R("div",{ref_key:"regionRef",ref:u,class:W([h(i).b("suggestion"),h(i).is("loading",h(T))]),style:Je({[Y.fitInputWidth?"width":"minWidth"]:g.value,outline:"none"}),role:"region"},[me(h(_a),{id:h(S),tag:"ul","wrap-class":h(i).be("suggestion","wrap"),"view-class":h(i).be("suggestion","list"),role:"listbox"},{default:be(()=>[h(T)?(k(),D("li",lxe,[me(h(et),{class:W(h(i).is("loading"))},{default:be(()=>[me(h(pa))]),_:1},8,["class"])])):(k(!0),D(Ze,{key:1},At(m.value,(se,ne)=>(k(),D("li",{id:`${h(S)}-item-${ne}`,key:ne,class:W({highlighted:v.value===ne}),role:"option","aria-selected":v.value===ne,onClick:ve=>ie(se)},[Pe(Y.$slots,"default",{item:se},()=>[Ot(ze(se[Y.valueKey]),1)])],10,uxe))),128))]),_:3},8,["id","wrap-class","view-class"])],6)]),default:be(()=>[R("div",{ref_key:"listboxRef",ref:d,class:W([h(i).b(),Y.$attrs.class]),style:Je(h(w)),role:"combobox","aria-haspopup":"listbox","aria-expanded":h(E),"aria-owns":h(S)},[me(h(mr),$t({ref_key:"inputRef",ref:l},h(o),{"model-value":Y.modelValue,onInput:F,onChange:U,onFocus:P,onBlur:O,onClear:H,onKeydown:[K[0]||(K[0]=Rt(ct(se=>ke(v.value-1),["prevent"]),["up"])),K[1]||(K[1]=Rt(ct(se=>ke(v.value+1),["prevent"]),["down"])),Rt(q,["enter"]),Rt(V,["tab"]),Rt(te,["esc"])],onMousedown:B}),Bo({_:2},[Y.$slots.prepend?{name:"prepend",fn:be(()=>[Pe(Y.$slots,"prepend")])}:void 0,Y.$slots.append?{name:"append",fn:be(()=>[Pe(Y.$slots,"append")])}:void 0,Y.$slots.prefix?{name:"prefix",fn:be(()=>[Pe(Y.$slots,"prefix")])}:void 0,Y.$slots.suffix?{name:"suffix",fn:be(()=>[Pe(Y.$slots,"suffix")])}:void 0]),1040,["model-value","onKeydown"])],14,ixe)]),_:3},8,["visible","placement","popper-class","teleported","transition"]))}});var fxe=Fe(dxe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/autocomplete/src/autocomplete.vue"]]);const pxe=St(fxe),hxe=He({size:{type:[Number,String],values:ha,default:"",validator:e=>dt(e)},shape:{type:String,values:["circle","square"],default:"circle"},icon:{type:on},src:{type:String,default:""},alt:String,srcSet:String,fit:{type:Re(String),default:"cover"}}),mxe={error:e=>e instanceof Event},vxe=["src","alt","srcset"],gxe=Ce({name:"ElAvatar"}),_xe=Ce({...gxe,props:hxe,emits:mxe,setup(e,{emit:t}){const n=e,r=De("avatar"),o=ee(!1),s=z(()=>{const{size:u,icon:c,shape:d}=n,f=[r.b()];return ft(u)&&f.push(r.m(u)),c&&f.push(r.m("icon")),d&&f.push(r.m(d)),f}),a=z(()=>{const{size:u}=n;return dt(u)?r.cssVarBlock({size:Nn(u)||""}):void 0}),i=z(()=>({objectFit:n.fit}));Be(()=>n.src,()=>o.value=!1);function l(u){o.value=!0,t("error",u)}return(u,c)=>(k(),D("span",{class:W(h(s)),style:Je(h(a))},[(u.src||u.srcSet)&&!o.value?(k(),D("img",{key:0,src:u.src,alt:u.alt,srcset:u.srcSet,style:Je(h(i)),onError:l},null,44,vxe)):u.icon?(k(),Me(h(et),{key:1},{default:be(()=>[(k(),Me(kt(u.icon)))]),_:1})):Pe(u.$slots,"default",{key:2})],6))}});var yxe=Fe(_xe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/avatar/src/avatar.vue"]]);const bxe=St(yxe),wxe={visibilityHeight:{type:Number,default:200},target:{type:String,default:""},right:{type:Number,default:40},bottom:{type:Number,default:40}},Sxe={click:e=>e instanceof MouseEvent},Exe=(e,t,n)=>{const r=rn(),o=rn(),s=ee(!1),a=()=>{if(!r.value)return;const c=Date.now(),d=r.value.scrollTop,f=()=>{if(!r.value)return;const p=(Date.now()-c)/500;p<1?(r.value.scrollTop=d*(1-i9e(p)),requestAnimationFrame(f)):r.value.scrollTop=0};requestAnimationFrame(f)},i=()=>{r.value&&(s.value=r.value.scrollTop>=e.visibilityHeight)},l=c=>{a(),t("click",c)},u=Nx(i,300,!0);return dn(o,"scroll",u),vt(()=>{var c;o.value=document,r.value=document.documentElement,e.target&&(r.value=(c=document.querySelector(e.target))!=null?c:void 0,r.value||zn(n,`target does not exist: ${e.target}`),o.value=r.value)}),{visible:s,handleClick:l}},vI="ElBacktop",Cxe=Ce({name:vI}),kxe=Ce({...Cxe,props:wxe,emits:Sxe,setup(e,{emit:t}){const n=e,r=De("backtop"),{handleClick:o,visible:s}=Exe(n,t,vI),a=z(()=>({right:`${n.right}px`,bottom:`${n.bottom}px`}));return(i,l)=>(k(),Me(xn,{name:`${h(r).namespace.value}-fade-in`},{default:be(()=>[h(s)?(k(),D("div",{key:0,style:Je(h(a)),class:W(h(r).b()),onClick:l[0]||(l[0]=ct((...u)=>h(o)&&h(o)(...u),["stop"]))},[Pe(i.$slots,"default",{},()=>[me(h(et),{class:W(h(r).e("icon"))},{default:be(()=>[me(h(jx))]),_:1},8,["class"])])],6)):Ae("v-if",!0)]),_:3},8,["name"]))}});var Txe=Fe(kxe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/backtop/src/backtop.vue"]]);const $xe=St(Txe),xxe=He({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"}}),Ixe=["textContent"],Axe=Ce({name:"ElBadge"}),Mxe=Ce({...Axe,props:xxe,setup(e,{expose:t}){const n=e,r=De("badge"),o=z(()=>n.isDot?"":dt(n.value)&&dt(n.max)?n.max(k(),D("div",{class:W(h(r).b())},[Pe(s.$slots,"default"),me(xn,{name:`${h(r).namespace.value}-zoom-in-center`,persisted:""},{default:be(()=>[mt(R("sup",{class:W([h(r).e("content"),h(r).em("content",s.type),h(r).is("fixed",!!s.$slots.default),h(r).is("dot",s.isDot)]),textContent:ze(h(o))},null,10,Ixe),[[zt,!s.hidden&&(h(o)||s.isDot)]])]),_:1},8,["name"])],2))}});var Oxe=Fe(Mxe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue"]]);const gI=St(Oxe),Rxe=He({separator:{type:String,default:"/"},separatorIcon:{type:on}}),Pxe=Ce({name:"ElBreadcrumb"}),Nxe=Ce({...Pxe,props:Rxe,setup(e){const t=e,n=De("breadcrumb"),r=ee();return Ct(f7,t),vt(()=>{const o=r.value.querySelectorAll(`.${n.e("item")}`);o.length&&o[o.length-1].setAttribute("aria-current","page")}),(o,s)=>(k(),D("div",{ref_key:"breadcrumb",ref:r,class:W(h(n).b()),"aria-label":"Breadcrumb",role:"navigation"},[Pe(o.$slots,"default")],2))}});var Lxe=Fe(Nxe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/breadcrumb/src/breadcrumb.vue"]]);const Bxe=He({to:{type:Re([String,Object]),default:""},replace:{type:Boolean,default:!1}}),Dxe=Ce({name:"ElBreadcrumbItem"}),zxe=Ce({...Dxe,props:Bxe,setup(e){const t=e,n=gt(),r=Ye(f7,void 0),o=De("breadcrumb"),{separator:s,separatorIcon:a}=On(r),i=n.appContext.config.globalProperties.$router,l=ee(),u=()=>{!t.to||!i||(t.replace?i.replace(t.to):i.push(t.to))};return(c,d)=>(k(),D("span",{class:W(h(o).e("item"))},[R("span",{ref_key:"link",ref:l,class:W([h(o).e("inner"),h(o).is("link",!!c.to)]),role:"link",onClick:u},[Pe(c.$slots,"default")],2),h(a)?(k(),Me(h(et),{key:0,class:W(h(o).e("separator"))},{default:be(()=>[(k(),Me(kt(h(a))))]),_:1},8,["class"])):(k(),D("span",{key:1,class:W(h(o).e("separator")),role:"presentation"},ze(h(s)),3))],2))}});var _I=Fe(zxe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/breadcrumb/src/breadcrumb-item.vue"]]);const Fxe=St(Lxe,{BreadcrumbItem:_I}),Hxe=En(_I),Vxe=(e,t)=>{ta({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},z(()=>e.type==="text"));const n=Ye(p7,void 0),r=ma("button"),{form:o}=xr(),s=Ln(z(()=>n==null?void 0:n.size)),a=jr(),i=ee(),l=Wn(),u=z(()=>e.type||(n==null?void 0:n.type)||""),c=z(()=>{var p,m,v;return(v=(m=e.autoInsertSpace)!=null?m:(p=r.value)==null?void 0:p.autoInsertSpace)!=null?v:!1}),d=z(()=>{var p;const m=(p=l.default)==null?void 0:p.call(l);if(c.value&&(m==null?void 0:m.length)===1){const v=m[0];if((v==null?void 0:v.type)===sl){const g=v.children;return new RegExp("^\\p{Unified_Ideograph}{2}$","u").test(g.trim())}}return!1});return{_disabled:a,_size:s,_type:u,_ref:i,shouldAddSpace:d,handleClick:p=>{e.nativeType==="reset"&&(o==null||o.resetFields()),t("click",p)}}},c1=["default","primary","success","warning","info","danger","text",""],jxe=["button","submit","reset"],d1=He({size:Fr,disabled:Boolean,type:{type:String,values:c1,default:""},icon:{type:on},nativeType:{type:String,values:jxe,default:"button"},loading:Boolean,loadingIcon:{type:on,default:()=>pa},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0}}),Uxe={click:e=>e instanceof MouseEvent};function rr(e,t){Wxe(e)&&(e="100%");var n=qxe(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function qf(e){return Math.min(1,Math.max(0,e))}function Wxe(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function qxe(e){return typeof e=="string"&&e.indexOf("%")!==-1}function yI(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Kf(e){return e<=1?"".concat(Number(e)*100,"%"):e}function xi(e){return e.length===1?"0"+e:String(e)}function Kxe(e,t,n){return{r:rr(e,255)*255,g:rr(t,255)*255,b:rr(n,255)*255}}function bS(e,t,n){e=rr(e,255),t=rr(t,255),n=rr(n,255);var r=Math.max(e,t,n),o=Math.min(e,t,n),s=0,a=0,i=(r+o)/2;if(r===o)a=0,s=0;else{var l=r-o;switch(a=i>.5?l/(2-r-o):l/(r+o),r){case e:s=(t-n)/l+(t1&&(n-=1),n<1/6?e+(t-e)*(6*n):n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Gxe(e,t,n){var r,o,s;if(e=rr(e,360),t=rr(t,100),n=rr(n,100),t===0)o=n,s=n,r=n;else{var a=n<.5?n*(1+t):n+t-n*t,i=2*n-a;r=Sv(i,a,e+1/3),o=Sv(i,a,e),s=Sv(i,a,e-1/3)}return{r:r*255,g:o*255,b:s*255}}function wS(e,t,n){e=rr(e,255),t=rr(t,255),n=rr(n,255);var r=Math.max(e,t,n),o=Math.min(e,t,n),s=0,a=r,i=r-o,l=r===0?0:i/r;if(r===o)s=0;else{switch(r){case e:s=(t-n)/i+(t>16,g:(e&65280)>>8,b:e&255}}var f1={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function Zxe(e){var t={r:0,g:0,b:0},n=1,r=null,o=null,s=null,a=!1,i=!1;return typeof e=="string"&&(e=n7e(e)),typeof e=="object"&&(bs(e.r)&&bs(e.g)&&bs(e.b)?(t=Kxe(e.r,e.g,e.b),a=!0,i=String(e.r).substr(-1)==="%"?"prgb":"rgb"):bs(e.h)&&bs(e.s)&&bs(e.v)?(r=Kf(e.s),o=Kf(e.v),t=Yxe(e.h,r,o),a=!0,i="hsv"):bs(e.h)&&bs(e.s)&&bs(e.l)&&(r=Kf(e.s),s=Kf(e.l),t=Gxe(e.h,r,s),a=!0,i="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(n=e.a)),n=yI(n),{ok:a,format:e.format||i,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}var e7e="[-\\+]?\\d+%?",t7e="[-\\+]?\\d*\\.\\d+%?",Ka="(?:".concat(t7e,")|(?:").concat(e7e,")"),Ev="[\\s|\\(]+(".concat(Ka,")[,|\\s]+(").concat(Ka,")[,|\\s]+(").concat(Ka,")\\s*\\)?"),Cv="[\\s|\\(]+(".concat(Ka,")[,|\\s]+(").concat(Ka,")[,|\\s]+(").concat(Ka,")[,|\\s]+(").concat(Ka,")\\s*\\)?"),xo={CSS_UNIT:new RegExp(Ka),rgb:new RegExp("rgb"+Ev),rgba:new RegExp("rgba"+Cv),hsl:new RegExp("hsl"+Ev),hsla:new RegExp("hsla"+Cv),hsv:new RegExp("hsv"+Ev),hsva:new RegExp("hsva"+Cv),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function n7e(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(f1[e])e=f1[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var n=xo.rgb.exec(e);return n?{r:n[1],g:n[2],b:n[3]}:(n=xo.rgba.exec(e),n?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=xo.hsl.exec(e),n?{h:n[1],s:n[2],l:n[3]}:(n=xo.hsla.exec(e),n?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=xo.hsv.exec(e),n?{h:n[1],s:n[2],v:n[3]}:(n=xo.hsva.exec(e),n?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=xo.hex8.exec(e),n?{r:Kr(n[1]),g:Kr(n[2]),b:Kr(n[3]),a:ES(n[4]),format:t?"name":"hex8"}:(n=xo.hex6.exec(e),n?{r:Kr(n[1]),g:Kr(n[2]),b:Kr(n[3]),format:t?"name":"hex"}:(n=xo.hex4.exec(e),n?{r:Kr(n[1]+n[1]),g:Kr(n[2]+n[2]),b:Kr(n[3]+n[3]),a:ES(n[4]+n[4]),format:t?"name":"hex8"}:(n=xo.hex3.exec(e),n?{r:Kr(n[1]+n[1]),g:Kr(n[2]+n[2]),b:Kr(n[3]+n[3]),format:t?"name":"hex"}:!1)))))))))}function bs(e){return!!xo.CSS_UNIT.exec(String(e))}var bI=function(){function e(t,n){t===void 0&&(t=""),n===void 0&&(n={});var r;if(t instanceof e)return t;typeof t=="number"&&(t=Qxe(t)),this.originalInput=t;var o=Zxe(t);this.originalInput=t,this.r=o.r,this.g=o.g,this.b=o.b,this.a=o.a,this.roundA=Math.round(100*this.a)/100,this.format=(r=n.format)!==null&&r!==void 0?r:o.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=o.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),n,r,o,s=t.r/255,a=t.g/255,i=t.b/255;return s<=.03928?n=s/12.92:n=Math.pow((s+.055)/1.055,2.4),a<=.03928?r=a/12.92:r=Math.pow((a+.055)/1.055,2.4),i<=.03928?o=i/12.92:o=Math.pow((i+.055)/1.055,2.4),.2126*n+.7152*r+.0722*o},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=yI(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=wS(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=wS(this.r,this.g,this.b),n=Math.round(t.h*360),r=Math.round(t.s*100),o=Math.round(t.v*100);return this.a===1?"hsv(".concat(n,", ").concat(r,"%, ").concat(o,"%)"):"hsva(".concat(n,", ").concat(r,"%, ").concat(o,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=bS(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=bS(this.r,this.g,this.b),n=Math.round(t.h*360),r=Math.round(t.s*100),o=Math.round(t.l*100);return this.a===1?"hsl(".concat(n,", ").concat(r,"%, ").concat(o,"%)"):"hsla(".concat(n,", ").concat(r,"%, ").concat(o,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),SS(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),Xxe(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toHexShortString=function(t){return t===void 0&&(t=!1),this.a===1?this.toHexString(t):this.toHex8String(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),n=Math.round(this.g),r=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(n,", ").concat(r,")"):"rgba(".concat(t,", ").concat(n,", ").concat(r,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(n){return"".concat(Math.round(rr(n,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(n){return Math.round(rr(n,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+SS(this.r,this.g,this.b,!1),n=0,r=Object.entries(f1);n=0,s=!n&&o&&(t.startsWith("hex")||t==="name");return s?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(r=this.toRgbString()),t==="prgb"&&(r=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(r=this.toHexString()),t==="hex3"&&(r=this.toHexString(!0)),t==="hex4"&&(r=this.toHex8String(!0)),t==="hex8"&&(r=this.toHex8String()),t==="name"&&(r=this.toName()),t==="hsl"&&(r=this.toHslString()),t==="hsv"&&(r=this.toHsvString()),r||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=qf(n.l),new e(n)},e.prototype.brighten=function(t){t===void 0&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),new e(n)},e.prototype.darken=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=qf(n.l),new e(n)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=qf(n.s),new e(n)},e.prototype.saturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=qf(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),r=(n.h+t)%360;return n.h=r<0?360+r:r,new e(n)},e.prototype.mix=function(t,n){n===void 0&&(n=50);var r=this.toRgb(),o=new e(t).toRgb(),s=n/100,a={r:(o.r-r.r)*s+r.r,g:(o.g-r.g)*s+r.g,b:(o.b-r.b)*s+r.b,a:(o.a-r.a)*s+r.a};return new e(a)},e.prototype.analogous=function(t,n){t===void 0&&(t=6),n===void 0&&(n=30);var r=this.toHsl(),o=360/n,s=[this];for(r.h=(r.h-(o*t>>1)+720)%360;--t;)r.h=(r.h+o)%360,s.push(new e(r));return s},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var n=this.toHsv(),r=n.h,o=n.s,s=n.v,a=[],i=1/t;t--;)a.push(new e({h:r,s:o,v:s})),s=(s+i)%1;return a},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),r=new e(t).toRgb(),o=n.a+r.a*(1-n.a);return new e({r:(n.r*n.a+r.r*r.a*(1-n.a))/o,g:(n.g*n.a+r.g*r.a*(1-n.a))/o,b:(n.b*n.a+r.b*r.a*(1-n.a))/o,a:o})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),r=n.h,o=[this],s=360/t,a=1;a{let r={};const o=e.color;if(o){const s=new bI(o),a=e.dark?s.tint(20).toString():Ta(s,20);if(e.plain)r=n.cssVarBlock({"bg-color":e.dark?Ta(s,90):s.tint(90).toString(),"text-color":o,"border-color":e.dark?Ta(s,50):s.tint(50).toString(),"hover-text-color":`var(${n.cssVarName("color-white")})`,"hover-bg-color":o,"hover-border-color":o,"active-bg-color":a,"active-text-color":`var(${n.cssVarName("color-white")})`,"active-border-color":a}),t.value&&(r[n.cssVarBlockName("disabled-bg-color")]=e.dark?Ta(s,90):s.tint(90).toString(),r[n.cssVarBlockName("disabled-text-color")]=e.dark?Ta(s,50):s.tint(50).toString(),r[n.cssVarBlockName("disabled-border-color")]=e.dark?Ta(s,80):s.tint(80).toString());else{const i=e.dark?Ta(s,30):s.tint(30).toString(),l=s.isDark()?`var(${n.cssVarName("color-white")})`:`var(${n.cssVarName("color-black")})`;if(r=n.cssVarBlock({"bg-color":o,"text-color":l,"border-color":o,"hover-bg-color":i,"hover-text-color":l,"hover-border-color":i,"active-bg-color":a,"active-border-color":a}),t.value){const u=e.dark?Ta(s,50):s.tint(50).toString();r[n.cssVarBlockName("disabled-bg-color")]=u,r[n.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${n.cssVarName("color-white")})`,r[n.cssVarBlockName("disabled-border-color")]=u}}}return r})}const o7e=["aria-disabled","disabled","autofocus","type"],s7e=Ce({name:"ElButton"}),a7e=Ce({...s7e,props:d1,emits:Uxe,setup(e,{expose:t,emit:n}){const r=e,o=r7e(r),s=De("button"),{_ref:a,_size:i,_type:l,_disabled:u,shouldAddSpace:c,handleClick:d}=Vxe(r,n);return t({ref:a,size:i,type:l,disabled:u,shouldAddSpace:c}),(f,p)=>(k(),D("button",{ref_key:"_ref",ref:a,class:W([h(s).b(),h(s).m(h(l)),h(s).m(h(i)),h(s).is("disabled",h(u)),h(s).is("loading",f.loading),h(s).is("plain",f.plain),h(s).is("round",f.round),h(s).is("circle",f.circle),h(s).is("text",f.text),h(s).is("link",f.link),h(s).is("has-bg",f.bg)]),"aria-disabled":h(u)||f.loading,disabled:h(u)||f.loading,autofocus:f.autofocus,type:f.nativeType,style:Je(h(o)),onClick:p[0]||(p[0]=(...m)=>h(d)&&h(d)(...m))},[f.loading?(k(),D(Ze,{key:0},[f.$slots.loading?Pe(f.$slots,"loading",{key:0}):(k(),Me(h(et),{key:1,class:W(h(s).is("loading"))},{default:be(()=>[(k(),Me(kt(f.loadingIcon)))]),_:1},8,["class"]))],64)):f.icon||f.$slots.icon?(k(),Me(h(et),{key:1},{default:be(()=>[f.icon?(k(),Me(kt(f.icon),{key:0})):Pe(f.$slots,"icon",{key:1})]),_:3})):Ae("v-if",!0),f.$slots.default?(k(),D("span",{key:2,class:W({[h(s).em("text","expand")]:h(c)})},[Pe(f.$slots,"default")],2)):Ae("v-if",!0)],14,o7e))}});var i7e=Fe(a7e,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button.vue"]]);const l7e={size:d1.size,type:d1.type},u7e=Ce({name:"ElButtonGroup"}),c7e=Ce({...u7e,props:l7e,setup(e){const t=e;Ct(p7,Ht({size:gn(t,"size"),type:gn(t,"type")}));const n=De("button");return(r,o)=>(k(),D("div",{class:W(`${h(n).b("group")}`)},[Pe(r.$slots,"default")],2))}});var wI=Fe(c7e,[["__file","/home/runner/work/element-plus/element-plus/packages/components/button/src/button-group.vue"]]);const or=St(i7e,{ButtonGroup:wI}),SI=En(wI);var ya=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Go(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function BQe(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}),n}var EI={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(ya,function(){var n=1e3,r=6e4,o=36e5,s="millisecond",a="second",i="minute",l="hour",u="day",c="week",d="month",f="quarter",p="year",m="date",v="Invalid Date",g=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,b=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,_={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(F){var B=["th","st","nd","rd"],U=F%100;return"["+F+(B[(U-20)%10]||B[U]||B[0])+"]"}},y=function(F,B,U){var P=String(F);return!P||P.length>=B?F:""+Array(B+1-P.length).join(U)+F},S={s:y,z:function(F){var B=-F.utcOffset(),U=Math.abs(B),P=Math.floor(U/60),O=U%60;return(B<=0?"+":"-")+y(P,2,"0")+":"+y(O,2,"0")},m:function F(B,U){if(B.date()1)return F(q[0])}else{var te=B.name;E[te]=B,O=te}return!P&&O&&(w=O),O||!P&&w},x=function(F,B){if(C(F))return F.clone();var U=typeof B=="object"?B:{};return U.date=F,U.args=arguments,new I(U)},N=S;N.l=$,N.i=C,N.w=function(F,B){return x(F,{locale:B.$L,utc:B.$u,x:B.$x,$offset:B.$offset})};var I=function(){function F(U){this.$L=$(U.locale,null,!0),this.parse(U),this.$x=this.$x||U.x||{},this[T]=!0}var B=F.prototype;return B.parse=function(U){this.$d=function(P){var O=P.date,H=P.utc;if(O===null)return new Date(NaN);if(N.u(O))return new Date;if(O instanceof Date)return new Date(O);if(typeof O=="string"&&!/Z$/i.test(O)){var q=O.match(g);if(q){var te=q[2]-1||0,V=(q[7]||"0").substring(0,3);return H?new Date(Date.UTC(q[1],te,q[3]||1,q[4]||0,q[5]||0,q[6]||0,V)):new Date(q[1],te,q[3]||1,q[4]||0,q[5]||0,q[6]||0,V)}}return new Date(O)}(U),this.init()},B.init=function(){var U=this.$d;this.$y=U.getFullYear(),this.$M=U.getMonth(),this.$D=U.getDate(),this.$W=U.getDay(),this.$H=U.getHours(),this.$m=U.getMinutes(),this.$s=U.getSeconds(),this.$ms=U.getMilliseconds()},B.$utils=function(){return N},B.isValid=function(){return this.$d.toString()!==v},B.isSame=function(U,P){var O=x(U);return this.startOf(P)<=O&&O<=this.endOf(P)},B.isAfter=function(U,P){return x(U)68?1900:2e3)},c=function(g){return function(b){this[g]=+b}},d=[/[+-]\d\d:?(\d\d)?|Z/,function(g){(this.zone||(this.zone={})).offset=function(b){if(!b||b==="Z")return 0;var _=b.match(/([+-]|\d\d)/g),y=60*_[1]+(+_[2]||0);return y===0?0:_[0]==="+"?-y:y}(g)}],f=function(g){var b=l[g];return b&&(b.indexOf?b:b.s.concat(b.f))},p=function(g,b){var _,y=l.meridiem;if(y){for(var S=1;S<=24;S+=1)if(g.indexOf(y(S,0,b))>-1){_=S>12;break}}else _=g===(b?"pm":"PM");return _},m={A:[i,function(g){this.afternoon=p(g,!1)}],a:[i,function(g){this.afternoon=p(g,!0)}],Q:[o,function(g){this.month=3*(g-1)+1}],S:[o,function(g){this.milliseconds=100*+g}],SS:[s,function(g){this.milliseconds=10*+g}],SSS:[/\d{3}/,function(g){this.milliseconds=+g}],s:[a,c("seconds")],ss:[a,c("seconds")],m:[a,c("minutes")],mm:[a,c("minutes")],H:[a,c("hours")],h:[a,c("hours")],HH:[a,c("hours")],hh:[a,c("hours")],D:[a,c("day")],DD:[s,c("day")],Do:[i,function(g){var b=l.ordinal,_=g.match(/\d+/);if(this.day=_[0],b)for(var y=1;y<=31;y+=1)b(y).replace(/\[|\]/g,"")===g&&(this.day=y)}],w:[a,c("week")],ww:[s,c("week")],M:[a,c("month")],MM:[s,c("month")],MMM:[i,function(g){var b=f("months"),_=(f("monthsShort")||b.map(function(y){return y.slice(0,3)})).indexOf(g)+1;if(_<1)throw new Error;this.month=_%12||_}],MMMM:[i,function(g){var b=f("months").indexOf(g)+1;if(b<1)throw new Error;this.month=b%12||b}],Y:[/[+-]?\d+/,c("year")],YY:[s,function(g){this.year=u(g)}],YYYY:[/\d{4}/,c("year")],Z:d,ZZ:d};function v(g){var b,_;b=g,_=l&&l.formats;for(var y=(g=b.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(x,N,I){var L=I&&I.toUpperCase();return N||_[I]||n[I]||_[L].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(F,B,U){return B||U.slice(1)})})).match(r),S=y.length,w=0;w-1)return new Date((O==="X"?1e3:1)*P);var te=v(O)(P),V=te.year,Q=te.month,ge=te.day,ie=te.hours,ke=te.minutes,Y=te.seconds,K=te.milliseconds,se=te.zone,ne=te.week,ve=new Date,J=ge||(V||Q?1:ve.getDate()),ae=V||ve.getFullYear(),ce=0;V&&!Q||(ce=Q>0?Q-1:ve.getMonth());var oe,he=ie||0,le=ke||0,Ee=Y||0,ye=K||0;return se?new Date(Date.UTC(ae,ce,J,he,le,Ee,ye+60*se.offset*1e3)):H?new Date(Date.UTC(ae,ce,J,he,le,Ee,ye)):(oe=new Date(ae,ce,J,he,le,Ee,ye),ne&&(oe=q(oe).week(ne).toDate()),oe)}catch{return new Date("")}}(E,$,T,_),this.init(),L&&L!==!0&&(this.$L=this.locale(L).$L),I&&E!=this.format($)&&(this.$d=new Date("")),l={}}else if($ instanceof Array)for(var F=$.length,B=1;B<=F;B+=1){C[1]=$[B-1];var U=_.apply(this,C);if(U.isValid()){this.$d=U.$d,this.$L=U.$L,this.init();break}B===F&&(this.$d=new Date(""))}else S.call(this,w)}}})})(CI);var f7e=CI.exports;const Cb=Go(f7e),CS=["hours","minutes","seconds"],p1="HH:mm:ss",Ml="YYYY-MM-DD",p7e={date:Ml,dates:Ml,week:"gggg[w]ww",year:"YYYY",month:"YYYY-MM",datetime:`${Ml} ${p1}`,monthrange:"YYYY-MM",daterange:Ml,datetimerange:`${Ml} ${p1}`},kv=(e,t)=>[e>0?e-1:void 0,e,eArray.from(Array.from({length:e}).keys()),kI=e=>e.replace(/\W?m{1,2}|\W?ZZ/g,"").replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi,"").trim(),TI=e=>e.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?Y{2,4}/g,"").trim(),kS=function(e,t){const n=Ki(e),r=Ki(t);return n&&r?e.getTime()===t.getTime():!n&&!r?e===t:!1},TS=function(e,t){const n=Ge(e),r=Ge(t);return n&&r?e.length!==t.length?!1:e.every((o,s)=>kS(o,t[s])):!n&&!r?kS(e,t):!1},$S=function(e,t,n){const r=co(t)||t==="x"?wt(e).locale(n):wt(e,t).locale(n);return r.isValid()?r:void 0},xS=function(e,t,n){return co(t)?e:t==="x"?+e:wt(e).locale(n).format(t)},Tv=(e,t)=>{var n;const r=[],o=t==null?void 0:t();for(let s=0;s({})},modelValue:{type:Re([Date,Array,String,Number]),default:""},rangeSeparator:{type:String,default:"-"},startPlaceholder:String,endPlaceholder:String,defaultValue:{type:Re([Date,Array])},defaultTime:{type:Re([Date,Array])},isRange:{type:Boolean,default:!1},...$I,disabledDate:{type:Function},cellClassName:{type:Function},shortcuts:{type:Array,default:()=>[]},arrowControl:{type:Boolean,default:!1},label:{type:String,default:void 0},tabindex:{type:Re([String,Number]),default:0},validateEvent:{type:Boolean,default:!0},unlinkPanels:Boolean}),h7e=["id","name","placeholder","value","disabled","readonly"],m7e=["id","name","placeholder","value","disabled","readonly"],v7e=Ce({name:"Picker"}),g7e=Ce({...v7e,props:kb,emits:["update:modelValue","change","focus","blur","calendar-change","panel-change","visible-change","keydown"],setup(e,{expose:t,emit:n}){const r=e,{lang:o}=Vt(),s=De("date"),a=De("input"),i=De("range"),{form:l,formItem:u}=xr(),c=Ye("ElPopperOptions",{}),d=ee(),f=ee(),p=ee(!1),m=ee(!1),v=ee(null);let g=!1,b=!1;Be(p,X=>{X?Xe(()=>{X&&(v.value=r.modelValue)}):(le.value=null,Xe(()=>{_(r.modelValue)}))});const _=(X,Z)=>{(Z||!TS(X,v.value))&&(n("change",X),r.validateEvent&&(u==null||u.validate("change").catch(de=>void 0)))},y=X=>{if(!TS(r.modelValue,X)){let Z;Ge(X)?Z=X.map(de=>xS(de,r.valueFormat,o.value)):X&&(Z=xS(X,r.valueFormat,o.value)),n("update:modelValue",X&&Z,o.value)}},S=X=>{n("keydown",X)},w=z(()=>{if(f.value){const X=ae.value?f.value:f.value.$el;return Array.from(X.querySelectorAll("input"))}return[]}),E=(X,Z,de)=>{const Oe=w.value;Oe.length&&(!de||de==="min"?(Oe[0].setSelectionRange(X,Z),Oe[0].focus()):de==="max"&&(Oe[1].setSelectionRange(X,Z),Oe[1].focus()))},T=()=>{B(!0,!0),Xe(()=>{b=!1})},C=(X="",Z=!1)=>{Z||(b=!0),p.value=Z;let de;Ge(X)?de=X.map(Oe=>Oe.toDate()):de=X&&X.toDate(),le.value=null,y(de)},$=()=>{m.value=!0},x=()=>{n("visible-change",!0)},N=X=>{(X==null?void 0:X.key)===ot.esc&&B(!0,!0)},I=()=>{m.value=!1,p.value=!1,b=!1,n("visible-change",!1)},L=()=>{p.value=!0},F=()=>{p.value=!1},B=(X=!0,Z=!1)=>{b=Z;const[de,Oe]=h(w);let qe=de;!X&&ae.value&&(qe=Oe),qe&&qe.focus()},U=X=>{r.readonly||H.value||p.value||b||(p.value=!0,n("focus",X))};let P;const O=X=>{const Z=async()=>{setTimeout(()=>{var de;P===Z&&(!((de=d.value)!=null&&de.isFocusInsideContent()&&!g)&&w.value.filter(Oe=>Oe.contains(document.activeElement)).length===0&&(Ee(),p.value=!1,n("blur",X),r.validateEvent&&(u==null||u.validate("blur").catch(Oe=>void 0))),g=!1)},0)};P=Z,Z()},H=z(()=>r.disabled||(l==null?void 0:l.disabled)),q=z(()=>{let X;if(K.value?j.value.getDefaultValue&&(X=j.value.getDefaultValue()):Ge(r.modelValue)?X=r.modelValue.map(Z=>$S(Z,r.valueFormat,o.value)):X=$S(r.modelValue,r.valueFormat,o.value),j.value.getRangeAvailableTime){const Z=j.value.getRangeAvailableTime(X);to(Z,X)||(X=Z,y(Ge(X)?X.map(de=>de.toDate()):X.toDate()))}return Ge(X)&&X.some(Z=>!Z)&&(X=[]),X}),te=z(()=>{if(!j.value.panelReady)return"";const X=pe(q.value);return Ge(le.value)?[le.value[0]||X&&X[0]||"",le.value[1]||X&&X[1]||""]:le.value!==null?le.value:!Q.value&&K.value||!p.value&&K.value?"":X?ge.value?X.join(", "):X:""}),V=z(()=>r.type.includes("time")),Q=z(()=>r.type.startsWith("time")),ge=z(()=>r.type==="dates"),ie=z(()=>r.prefixIcon||(V.value?Q4:Vx)),ke=ee(!1),Y=X=>{r.readonly||H.value||ke.value&&(X.stopPropagation(),T(),y(null),_(null,!0),ke.value=!1,p.value=!1,j.value.handleClear&&j.value.handleClear())},K=z(()=>{const{modelValue:X}=r;return!X||Ge(X)&&!X.filter(Boolean).length}),se=async X=>{var Z;r.readonly||H.value||(((Z=X.target)==null?void 0:Z.tagName)!=="INPUT"||w.value.includes(document.activeElement))&&(p.value=!0)},ne=()=>{r.readonly||H.value||!K.value&&r.clearable&&(ke.value=!0)},ve=()=>{ke.value=!1},J=X=>{var Z;r.readonly||H.value||(((Z=X.touches[0].target)==null?void 0:Z.tagName)!=="INPUT"||w.value.includes(document.activeElement))&&(p.value=!0)},ae=z(()=>r.type.includes("range")),ce=Ln(),oe=z(()=>{var X,Z;return(Z=(X=h(d))==null?void 0:X.popperRef)==null?void 0:Z.contentRef}),he=z(()=>{var X;return h(ae)?h(f):(X=h(f))==null?void 0:X.$el});G4(he,X=>{const Z=h(oe),de=h(he);Z&&(X.target===Z||X.composedPath().includes(Z))||X.target===de||X.composedPath().includes(de)||(p.value=!1)});const le=ee(null),Ee=()=>{if(le.value){const X=ye(te.value);X&&re(X)&&(y(Ge(X)?X.map(Z=>Z.toDate()):X.toDate()),le.value=null)}le.value===""&&(y(null),_(null),le.value=null)},ye=X=>X?j.value.parseUserInput(X):null,pe=X=>X?j.value.formatToString(X):null,re=X=>j.value.isValidValue(X),fe=async X=>{if(r.readonly||H.value)return;const{code:Z}=X;if(S(X),Z===ot.esc){p.value===!0&&(p.value=!1,X.preventDefault(),X.stopPropagation());return}if(Z===ot.down&&(j.value.handleFocusPicker&&(X.preventDefault(),X.stopPropagation()),p.value===!1&&(p.value=!0,await Xe()),j.value.handleFocusPicker)){j.value.handleFocusPicker();return}if(Z===ot.tab){g=!0;return}if(Z===ot.enter||Z===ot.numpadEnter){(le.value===null||le.value===""||re(ye(te.value)))&&(Ee(),p.value=!1),X.stopPropagation();return}if(le.value){X.stopPropagation();return}j.value.handleKeydownInput&&j.value.handleKeydownInput(X)},Te=X=>{le.value=X,p.value||(p.value=!0)},$e=X=>{const Z=X.target;le.value?le.value=[Z.value,le.value[1]]:le.value=[Z.value,null]},Le=X=>{const Z=X.target;le.value?le.value=[le.value[0],Z.value]:le.value=[null,Z.value]},A=()=>{var X;const Z=le.value,de=ye(Z&&Z[0]),Oe=h(q);if(de&&de.isValid()){le.value=[pe(de),((X=te.value)==null?void 0:X[1])||null];const qe=[de,Oe&&(Oe[1]||null)];re(qe)&&(y(qe),le.value=null)}},M=()=>{var X;const Z=h(le),de=ye(Z&&Z[1]),Oe=h(q);if(de&&de.isValid()){le.value=[((X=h(te))==null?void 0:X[0])||null,pe(de)];const qe=[Oe&&Oe[0],de];re(qe)&&(y(qe),le.value=null)}},j=ee({}),G=X=>{j.value[X[0]]=X[1],j.value.panelReady=!0},ue=X=>{n("calendar-change",X)},_e=(X,Z,de)=>{n("panel-change",X,Z,de)};return Ct("EP_PICKER_BASE",{props:r}),t({focus:B,handleFocusInput:U,handleBlurInput:O,handleOpen:L,handleClose:F,onPick:C}),(X,Z)=>(k(),Me(h(Ur),$t({ref_key:"refPopper",ref:d,visible:p.value,effect:"light",pure:"",trigger:"click"},X.$attrs,{role:"dialog",teleported:"",transition:`${h(s).namespace.value}-zoom-in-top`,"popper-class":[`${h(s).namespace.value}-picker__popper`,X.popperClass],"popper-options":h(c),"fallback-placements":["bottom","top","right","left"],"gpu-acceleration":!1,"stop-popper-mouse-event":!1,"hide-after":0,persistent:"",onBeforeShow:$,onShow:x,onHide:I}),{default:be(()=>[h(ae)?(k(),D("div",{key:1,ref_key:"inputRef",ref:f,class:W([h(s).b("editor"),h(s).bm("editor",X.type),h(a).e("wrapper"),h(s).is("disabled",h(H)),h(s).is("active",p.value),h(i).b("editor"),h(ce)?h(i).bm("editor",h(ce)):"",X.$attrs.class]),style:Je(X.$attrs.style),onClick:U,onMouseenter:ne,onMouseleave:ve,onTouchstart:J,onKeydown:fe},[h(ie)?(k(),Me(h(et),{key:0,class:W([h(a).e("icon"),h(i).e("icon")]),onMousedown:ct(se,["prevent"]),onTouchstart:J},{default:be(()=>[(k(),Me(kt(h(ie))))]),_:1},8,["class","onMousedown"])):Ae("v-if",!0),R("input",{id:X.id&&X.id[0],autocomplete:"off",name:X.name&&X.name[0],placeholder:X.startPlaceholder,value:h(te)&&h(te)[0],disabled:h(H),readonly:!X.editable||X.readonly,class:W(h(i).b("input")),onMousedown:se,onInput:$e,onChange:A,onFocus:U,onBlur:O},null,42,h7e),Pe(X.$slots,"range-separator",{},()=>[R("span",{class:W(h(i).b("separator"))},ze(X.rangeSeparator),3)]),R("input",{id:X.id&&X.id[1],autocomplete:"off",name:X.name&&X.name[1],placeholder:X.endPlaceholder,value:h(te)&&h(te)[1],disabled:h(H),readonly:!X.editable||X.readonly,class:W(h(i).b("input")),onMousedown:se,onFocus:U,onBlur:O,onInput:Le,onChange:M},null,42,m7e),X.clearIcon?(k(),Me(h(et),{key:1,class:W([h(a).e("icon"),h(i).e("close-icon"),{[h(i).e("close-icon--hidden")]:!ke.value}]),onClick:Y},{default:be(()=>[(k(),Me(kt(X.clearIcon)))]),_:1},8,["class"])):Ae("v-if",!0)],38)):(k(),Me(h(mr),{key:0,id:X.id,ref_key:"inputRef",ref:f,"container-role":"combobox","model-value":h(te),name:X.name,size:h(ce),disabled:h(H),placeholder:X.placeholder,class:W([h(s).b("editor"),h(s).bm("editor",X.type),X.$attrs.class]),style:Je(X.$attrs.style),readonly:!X.editable||X.readonly||h(ge)||X.type==="week",label:X.label,tabindex:X.tabindex,"validate-event":!1,onInput:Te,onFocus:U,onBlur:O,onKeydown:fe,onChange:Ee,onMousedown:se,onMouseenter:ne,onMouseleave:ve,onTouchstart:J,onClick:Z[0]||(Z[0]=ct(()=>{},["stop"]))},{prefix:be(()=>[h(ie)?(k(),Me(h(et),{key:0,class:W(h(a).e("icon")),onMousedown:ct(se,["prevent"]),onTouchstart:J},{default:be(()=>[(k(),Me(kt(h(ie))))]),_:1},8,["class","onMousedown"])):Ae("v-if",!0)]),suffix:be(()=>[ke.value&&X.clearIcon?(k(),Me(h(et),{key:0,class:W(`${h(a).e("icon")} clear-icon`),onClick:ct(Y,["stop"])},{default:be(()=>[(k(),Me(kt(X.clearIcon)))]),_:1},8,["class","onClick"])):Ae("v-if",!0)]),_:1},8,["id","model-value","name","size","disabled","placeholder","class","style","readonly","label","tabindex","onKeydown"]))]),content:be(()=>[Pe(X.$slots,"default",{visible:p.value,actualVisible:m.value,parsedValue:h(q),format:X.format,unlinkPanels:X.unlinkPanels,type:X.type,defaultValue:X.defaultValue,onPick:C,onSelectRange:E,onSetPickerOption:G,onCalendarChange:ue,onPanelChange:_e,onKeydown:N,onMousedown:Z[1]||(Z[1]=ct(()=>{},["stop"]))})]),_:3},16,["visible","transition","popper-class","popper-options"]))}});var II=Fe(g7e,[["__file","/home/runner/work/element-plus/element-plus/packages/components/time-picker/src/common/picker.vue"]]);const _7e=He({...xI,datetimeRole:String,parsedValue:{type:Re(Object)}}),AI=({getAvailableHours:e,getAvailableMinutes:t,getAvailableSeconds:n})=>{const r=(a,i,l,u)=>{const c={hour:e,minute:t,second:n};let d=a;return["hour","minute","second"].forEach(f=>{if(c[f]){let p;const m=c[f];switch(f){case"minute":{p=m(d.hour(),i,u);break}case"second":{p=m(d.hour(),d.minute(),i,u);break}default:{p=m(i,u);break}}if(p!=null&&p.length&&!p.includes(d[f]())){const v=l?0:p.length-1;d=d[f](p[v])}}}),d},o={};return{timePickerOptions:o,getAvailableTime:r,onSetOption:([a,i])=>{o[a]=i}}},$v=e=>{const t=(r,o)=>r||o,n=r=>r!==!0;return e.map(t).filter(n)},MI=(e,t,n)=>({getHoursList:(a,i)=>Tv(24,e&&(()=>e==null?void 0:e(a,i))),getMinutesList:(a,i,l)=>Tv(60,t&&(()=>t==null?void 0:t(a,i,l))),getSecondsList:(a,i,l,u)=>Tv(60,n&&(()=>n==null?void 0:n(a,i,l,u)))}),OI=(e,t,n)=>{const{getHoursList:r,getMinutesList:o,getSecondsList:s}=MI(e,t,n);return{getAvailableHours:(u,c)=>$v(r(u,c)),getAvailableMinutes:(u,c,d)=>$v(o(u,c,d)),getAvailableSeconds:(u,c,d,f)=>$v(s(u,c,d,f))}},RI=e=>{const t=ee(e.parsedValue);return Be(()=>e.visible,n=>{n||(t.value=e.parsedValue)}),t},Ma=new Map;let IS;Pt&&(document.addEventListener("mousedown",e=>IS=e),document.addEventListener("mouseup",e=>{for(const t of Ma.values())for(const{documentHandler:n}of t)n(e,IS)}));function AS(e,t){let n=[];return Array.isArray(t.arg)?n=t.arg:zo(t.arg)&&n.push(t.arg),function(r,o){const s=t.instance.popperRef,a=r.target,i=o==null?void 0:o.target,l=!t||!t.instance,u=!a||!i,c=e.contains(a)||e.contains(i),d=e===a,f=n.length&&n.some(m=>m==null?void 0:m.contains(a))||n.length&&n.includes(i),p=s&&(s.contains(a)||s.contains(i));l||u||c||d||f||p||t.value(r,o)}}const ai={beforeMount(e,t){Ma.has(e)||Ma.set(e,[]),Ma.get(e).push({documentHandler:AS(e,t),bindingFn:t.value})},updated(e,t){Ma.has(e)||Ma.set(e,[]);const n=Ma.get(e),r=n.findIndex(s=>s.bindingFn===t.oldValue),o={documentHandler:AS(e,t),bindingFn:t.value};r>=0?n.splice(r,1,o):n.push(o)},unmounted(e){Ma.delete(e)}},y7e=100,b7e=600,Qh={beforeMount(e,t){const n=t.value,{interval:r=y7e,delay:o=b7e}=at(n)?{}:n;let s,a;const i=()=>at(n)?n():n.handler(),l=()=>{a&&(clearTimeout(a),a=void 0),s&&(clearInterval(s),s=void 0)};e.addEventListener("mousedown",u=>{u.button===0&&(l(),i(),document.addEventListener("mouseup",()=>l(),{once:!0}),a=setTimeout(()=>{s=setInterval(()=>{i()},r)},o))})}},h1="_trap-focus-children",Ii=[],MS=e=>{if(Ii.length===0)return;const t=Ii[Ii.length-1][h1];if(t.length>0&&e.code===ot.tab){if(t.length===1){e.preventDefault(),document.activeElement!==t[0]&&t[0].focus();return}const n=e.shiftKey,r=e.target===t[0],o=e.target===t[t.length-1];r&&n&&(e.preventDefault(),t[t.length-1].focus()),o&&!n&&(e.preventDefault(),t[0].focus())}},w7e={beforeMount(e){e[h1]=x8(e),Ii.push(e),Ii.length<=1&&document.addEventListener("keydown",MS)},updated(e){Xe(()=>{e[h1]=x8(e)})},unmounted(){Ii.shift(),Ii.length===0&&document.removeEventListener("keydown",MS)}};var OS=!1,Ci,m1,v1,wp,Sp,PI,Ep,g1,_1,y1,NI,b1,w1,LI,BI;function Ar(){if(!OS){OS=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),n=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(b1=/\b(iPhone|iP[ao]d)/.exec(e),w1=/\b(iP[ao]d)/.exec(e),y1=/Android/i.exec(e),LI=/FBAN\/\w+;/i.exec(e),BI=/Mobile/i.exec(e),NI=!!/Win64/.exec(e),t){Ci=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,Ci&&document&&document.documentMode&&(Ci=document.documentMode);var r=/(?:Trident\/(\d+.\d+))/.exec(e);PI=r?parseFloat(r[1])+4:Ci,m1=t[2]?parseFloat(t[2]):NaN,v1=t[3]?parseFloat(t[3]):NaN,wp=t[4]?parseFloat(t[4]):NaN,wp?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),Sp=t&&t[1]?parseFloat(t[1]):NaN):Sp=NaN}else Ci=m1=v1=Sp=wp=NaN;if(n){if(n[1]){var o=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);Ep=o?parseFloat(o[1].replace("_",".")):!0}else Ep=!1;g1=!!n[2],_1=!!n[3]}else Ep=g1=_1=!1}}var S1={ie:function(){return Ar()||Ci},ieCompatibilityMode:function(){return Ar()||PI>Ci},ie64:function(){return S1.ie()&&NI},firefox:function(){return Ar()||m1},opera:function(){return Ar()||v1},webkit:function(){return Ar()||wp},safari:function(){return S1.webkit()},chrome:function(){return Ar()||Sp},windows:function(){return Ar()||g1},osx:function(){return Ar()||Ep},linux:function(){return Ar()||_1},iphone:function(){return Ar()||b1},mobile:function(){return Ar()||b1||w1||y1||BI},nativeApp:function(){return Ar()||LI},android:function(){return Ar()||y1},ipad:function(){return Ar()||w1}},S7e=S1,E7e=!!(typeof window<"u"&&window.document&&window.document.createElement),C7e={canUseDOM:E7e},DI=C7e,zI;DI.canUseDOM&&(zI=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0);function k7e(e,t){if(!DI.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;if(!r){var o=document.createElement("div");o.setAttribute(n,"return;"),r=typeof o[n]=="function"}return!r&&zI&&e==="wheel"&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var T7e=k7e,RS=10,PS=40,NS=800;function FI(e){var t=0,n=0,r=0,o=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),r=t*RS,o=n*RS,"deltaY"in e&&(o=e.deltaY),"deltaX"in e&&(r=e.deltaX),(r||o)&&e.deltaMode&&(e.deltaMode==1?(r*=PS,o*=PS):(r*=NS,o*=NS)),r&&!t&&(t=r<1?-1:1),o&&!n&&(n=o<1?-1:1),{spinX:t,spinY:n,pixelX:r,pixelY:o}}FI.getEventType=function(){return S7e.firefox()?"DOMMouseScroll":T7e("wheel")?"wheel":"mousewheel"};var $7e=FI;/** +* Checks if an event is supported in the current execution environment. +* +* NOTE: This will not work correctly for non-generic events such as `change`, +* `reset`, `load`, `error`, and `select`. +* +* Borrows from Modernizr. +* +* @param {string} eventNameSuffix Event name, e.g. "click". +* @param {?boolean} capture Check if the capture phase is supported. +* @return {boolean} True if the event is supported. +* @internal +* @license Modernizr 3.0.0pre (Custom Build) | MIT +*/const x7e=function(e,t){if(e&&e.addEventListener){const n=function(r){const o=$7e(r);t&&Reflect.apply(t,this,[r,o])};e.addEventListener("wheel",n,{passive:!0})}},I7e={beforeMount(e,t){x7e(e,t.value)}},A7e=He({role:{type:String,required:!0},spinnerDate:{type:Re(Object),required:!0},showSeconds:{type:Boolean,default:!0},arrowControl:Boolean,amPmMode:{type:Re(String),default:""},...$I}),M7e=["onClick"],O7e=["onMouseenter"],R7e=Ce({__name:"basic-time-spinner",props:A7e,emits:["change","select-range","set-option"],setup(e,{emit:t}){const n=e,r=De("time"),{getHoursList:o,getMinutesList:s,getSecondsList:a}=MI(n.disabledHours,n.disabledMinutes,n.disabledSeconds);let i=!1;const l=ee(),u=ee(),c=ee(),d=ee(),f={hours:u,minutes:c,seconds:d},p=z(()=>n.showSeconds?CS:CS.slice(0,2)),m=z(()=>{const{spinnerDate:H}=n,q=H.hour(),te=H.minute(),V=H.second();return{hours:q,minutes:te,seconds:V}}),v=z(()=>{const{hours:H,minutes:q}=h(m);return{hours:o(n.role),minutes:s(H,n.role),seconds:a(H,q,n.role)}}),g=z(()=>{const{hours:H,minutes:q,seconds:te}=h(m);return{hours:kv(H,23),minutes:kv(q,59),seconds:kv(te,59)}}),b=$r(H=>{i=!1,S(H)},200),_=H=>{if(!!!n.amPmMode)return"";const te=n.amPmMode==="A";let V=H<12?" am":" pm";return te&&(V=V.toUpperCase()),V},y=H=>{let q;switch(H){case"hours":q=[0,2];break;case"minutes":q=[3,5];break;case"seconds":q=[6,8];break}const[te,V]=q;t("select-range",te,V),l.value=H},S=H=>{T(H,h(m)[H])},w=()=>{S("hours"),S("minutes"),S("seconds")},E=H=>H.querySelector(`.${r.namespace.value}-scrollbar__wrap`),T=(H,q)=>{if(n.arrowControl)return;const te=h(f[H]);te&&te.$el&&(E(te.$el).scrollTop=Math.max(0,q*C(H)))},C=H=>{const q=h(f[H]);return(q==null?void 0:q.$el.querySelector("li").offsetHeight)||0},$=()=>{N(1)},x=()=>{N(-1)},N=H=>{l.value||y("hours");const q=l.value,te=h(m)[q],V=l.value==="hours"?24:60,Q=I(q,te,H,V);L(q,Q),T(q,Q),Xe(()=>y(q))},I=(H,q,te,V)=>{let Q=(q+te+V)%V;const ge=h(v)[H];for(;ge[Q]&&Q!==q;)Q=(Q+te+V)%V;return Q},L=(H,q)=>{if(h(v)[H][q])return;const{hours:Q,minutes:ge,seconds:ie}=h(m);let ke;switch(H){case"hours":ke=n.spinnerDate.hour(q).minute(ge).second(ie);break;case"minutes":ke=n.spinnerDate.hour(Q).minute(q).second(ie);break;case"seconds":ke=n.spinnerDate.hour(Q).minute(ge).second(q);break}t("change",ke)},F=(H,{value:q,disabled:te})=>{te||(L(H,q),y(H),T(H,q))},B=H=>{i=!0,b(H);const q=Math.min(Math.round((E(h(f[H]).$el).scrollTop-(U(H)*.5-10)/C(H)+3)/C(H)),H==="hours"?23:59);L(H,q)},U=H=>h(f[H]).$el.offsetHeight,P=()=>{const H=q=>{const te=h(f[q]);te&&te.$el&&(E(te.$el).onscroll=()=>{B(q)})};H("hours"),H("minutes"),H("seconds")};vt(()=>{Xe(()=>{!n.arrowControl&&P(),w(),n.role==="start"&&y("hours")})});const O=(H,q)=>{f[q].value=H};return t("set-option",[`${n.role}_scrollDown`,N]),t("set-option",[`${n.role}_emitSelectRange`,y]),Be(()=>n.spinnerDate,()=>{i||w()}),(H,q)=>(k(),D("div",{class:W([h(r).b("spinner"),{"has-seconds":H.showSeconds}])},[H.arrowControl?Ae("v-if",!0):(k(!0),D(Ze,{key:0},At(h(p),te=>(k(),Me(h(_a),{key:te,ref_for:!0,ref:V=>O(V,te),class:W(h(r).be("spinner","wrapper")),"wrap-style":"max-height: inherit;","view-class":h(r).be("spinner","list"),noresize:"",tag:"ul",onMouseenter:V=>y(te),onMousemove:V=>S(te)},{default:be(()=>[(k(!0),D(Ze,null,At(h(v)[te],(V,Q)=>(k(),D("li",{key:Q,class:W([h(r).be("spinner","item"),h(r).is("active",Q===h(m)[te]),h(r).is("disabled",V)]),onClick:ge=>F(te,{value:Q,disabled:V})},[te==="hours"?(k(),D(Ze,{key:0},[Ot(ze(("0"+(H.amPmMode?Q%12||12:Q)).slice(-2))+ze(_(Q)),1)],64)):(k(),D(Ze,{key:1},[Ot(ze(("0"+Q).slice(-2)),1)],64))],10,M7e))),128))]),_:2},1032,["class","view-class","onMouseenter","onMousemove"]))),128)),H.arrowControl?(k(!0),D(Ze,{key:1},At(h(p),te=>(k(),D("div",{key:te,class:W([h(r).be("spinner","wrapper"),h(r).is("arrow")]),onMouseenter:V=>y(te)},[mt((k(),Me(h(et),{class:W(["arrow-up",h(r).be("spinner","arrow")])},{default:be(()=>[me(h(cf))]),_:1},8,["class"])),[[h(Qh),x]]),mt((k(),Me(h(et),{class:W(["arrow-down",h(r).be("spinner","arrow")])},{default:be(()=>[me(h(da))]),_:1},8,["class"])),[[h(Qh),$]]),R("ul",{class:W(h(r).be("spinner","list"))},[(k(!0),D(Ze,null,At(h(g)[te],(V,Q)=>(k(),D("li",{key:Q,class:W([h(r).be("spinner","item"),h(r).is("active",V===h(m)[te]),h(r).is("disabled",h(v)[te][V])])},[typeof V=="number"?(k(),D(Ze,{key:0},[te==="hours"?(k(),D(Ze,{key:0},[Ot(ze(("0"+(H.amPmMode?V%12||12:V)).slice(-2))+ze(_(V)),1)],64)):(k(),D(Ze,{key:1},[Ot(ze(("0"+V).slice(-2)),1)],64))],64)):Ae("v-if",!0)],2))),128))],2)],42,O7e))),128)):Ae("v-if",!0)],2))}});var E1=Fe(R7e,[["__file","/home/runner/work/element-plus/element-plus/packages/components/time-picker/src/time-picker-com/basic-time-spinner.vue"]]);const P7e=Ce({__name:"panel-time-pick",props:_7e,emits:["pick","select-range","set-picker-option"],setup(e,{emit:t}){const n=e,r=Ye("EP_PICKER_BASE"),{arrowControl:o,disabledHours:s,disabledMinutes:a,disabledSeconds:i,defaultValue:l}=r.props,{getAvailableHours:u,getAvailableMinutes:c,getAvailableSeconds:d}=OI(s,a,i),f=De("time"),{t:p,lang:m}=Vt(),v=ee([0,2]),g=RI(n),b=z(()=>Gn(n.actualVisible)?`${f.namespace.value}-zoom-in-top`:""),_=z(()=>n.format.includes("ss")),y=z(()=>n.format.includes("A")?"A":n.format.includes("a")?"a":""),S=O=>{const H=wt(O).locale(m.value),q=F(H);return H.isSame(q)},w=()=>{t("pick",g.value,!1)},E=(O=!1,H=!1)=>{H||t("pick",n.parsedValue,O)},T=O=>{if(!n.visible)return;const H=F(O).millisecond(0);t("pick",H,!0)},C=(O,H)=>{t("select-range",O,H),v.value=[O,H]},$=O=>{const H=[0,3].concat(_.value?[6]:[]),q=["hours","minutes"].concat(_.value?["seconds"]:[]),V=(H.indexOf(v.value[0])+O+H.length)%H.length;N.start_emitSelectRange(q[V])},x=O=>{const H=O.code,{left:q,right:te,up:V,down:Q}=ot;if([q,te].includes(H)){$(H===q?-1:1),O.preventDefault();return}if([V,Q].includes(H)){const ge=H===V?-1:1;N.start_scrollDown(ge),O.preventDefault();return}},{timePickerOptions:N,onSetOption:I,getAvailableTime:L}=AI({getAvailableHours:u,getAvailableMinutes:c,getAvailableSeconds:d}),F=O=>L(O,n.datetimeRole||"",!0),B=O=>O?wt(O,n.format).locale(m.value):null,U=O=>O?O.format(n.format):null,P=()=>wt(l).locale(m.value);return t("set-picker-option",["isValidValue",S]),t("set-picker-option",["formatToString",U]),t("set-picker-option",["parseUserInput",B]),t("set-picker-option",["handleKeydownInput",x]),t("set-picker-option",["getRangeAvailableTime",F]),t("set-picker-option",["getDefaultValue",P]),(O,H)=>(k(),Me(xn,{name:h(b)},{default:be(()=>[O.actualVisible||O.visible?(k(),D("div",{key:0,class:W(h(f).b("panel"))},[R("div",{class:W([h(f).be("panel","content"),{"has-seconds":h(_)}])},[me(E1,{ref:"spinner",role:O.datetimeRole||"start","arrow-control":h(o),"show-seconds":h(_),"am-pm-mode":h(y),"spinner-date":O.parsedValue,"disabled-hours":h(s),"disabled-minutes":h(a),"disabled-seconds":h(i),onChange:T,onSetOption:h(I),onSelectRange:C},null,8,["role","arrow-control","show-seconds","am-pm-mode","spinner-date","disabled-hours","disabled-minutes","disabled-seconds","onSetOption"])],2),R("div",{class:W(h(f).be("panel","footer"))},[R("button",{type:"button",class:W([h(f).be("panel","btn"),"cancel"]),onClick:w},ze(h(p)("el.datepicker.cancel")),3),R("button",{type:"button",class:W([h(f).be("panel","btn"),"confirm"]),onClick:H[0]||(H[0]=q=>E())},ze(h(p)("el.datepicker.confirm")),3)],2)],2)):Ae("v-if",!0)]),_:1},8,["name"]))}});var Zh=Fe(P7e,[["__file","/home/runner/work/element-plus/element-plus/packages/components/time-picker/src/time-picker-com/panel-time-pick.vue"]]);const N7e=He({...xI,parsedValue:{type:Re(Array)}}),L7e=["disabled"],B7e=Ce({__name:"panel-time-range",props:N7e,emits:["pick","select-range","set-picker-option"],setup(e,{emit:t}){const n=e,r=(se,ne)=>{const ve=[];for(let J=se;J<=ne;J++)ve.push(J);return ve},{t:o,lang:s}=Vt(),a=De("time"),i=De("picker"),l=Ye("EP_PICKER_BASE"),{arrowControl:u,disabledHours:c,disabledMinutes:d,disabledSeconds:f,defaultValue:p}=l.props,m=z(()=>n.parsedValue[0]),v=z(()=>n.parsedValue[1]),g=RI(n),b=()=>{t("pick",g.value,!1)},_=z(()=>n.format.includes("ss")),y=z(()=>n.format.includes("A")?"A":n.format.includes("a")?"a":""),S=(se=!1)=>{t("pick",[m.value,v.value],se)},w=se=>{C(se.millisecond(0),v.value)},E=se=>{C(m.value,se.millisecond(0))},T=se=>{const ne=se.map(J=>wt(J).locale(s.value)),ve=H(ne);return ne[0].isSame(ve[0])&&ne[1].isSame(ve[1])},C=(se,ne)=>{t("pick",[se,ne],!0)},$=z(()=>m.value>v.value),x=ee([0,2]),N=(se,ne)=>{t("select-range",se,ne,"min"),x.value=[se,ne]},I=z(()=>_.value?11:8),L=(se,ne)=>{t("select-range",se,ne,"max");const ve=h(I);x.value=[se+ve,ne+ve]},F=se=>{const ne=_.value?[0,3,6,11,14,17]:[0,3,8,11],ve=["hours","minutes"].concat(_.value?["seconds"]:[]),ae=(ne.indexOf(x.value[0])+se+ne.length)%ne.length,ce=ne.length/2;ae{const ne=se.code,{left:ve,right:J,up:ae,down:ce}=ot;if([ve,J].includes(ne)){F(ne===ve?-1:1),se.preventDefault();return}if([ae,ce].includes(ne)){const oe=ne===ae?-1:1,he=x.value[0]{const ve=c?c(se):[],J=se==="start",ce=(ne||(J?v.value:m.value)).hour(),oe=J?r(ce+1,23):r(0,ce-1);return vv(ve,oe)},P=(se,ne,ve)=>{const J=d?d(se,ne):[],ae=ne==="start",ce=ve||(ae?v.value:m.value),oe=ce.hour();if(se!==oe)return J;const he=ce.minute(),le=ae?r(he+1,59):r(0,he-1);return vv(J,le)},O=(se,ne,ve,J)=>{const ae=f?f(se,ne,ve):[],ce=ve==="start",oe=J||(ce?v.value:m.value),he=oe.hour(),le=oe.minute();if(se!==he||ne!==le)return ae;const Ee=oe.second(),ye=ce?r(Ee+1,59):r(0,Ee-1);return vv(ae,ye)},H=([se,ne])=>[ge(se,"start",!0,ne),ge(ne,"end",!1,se)],{getAvailableHours:q,getAvailableMinutes:te,getAvailableSeconds:V}=OI(U,P,O),{timePickerOptions:Q,getAvailableTime:ge,onSetOption:ie}=AI({getAvailableHours:q,getAvailableMinutes:te,getAvailableSeconds:V}),ke=se=>se?Ge(se)?se.map(ne=>wt(ne,n.format).locale(s.value)):wt(se,n.format).locale(s.value):null,Y=se=>se?Ge(se)?se.map(ne=>ne.format(n.format)):se.format(n.format):null,K=()=>{if(Ge(p))return p.map(ne=>wt(ne).locale(s.value));const se=wt(p).locale(s.value);return[se,se.add(60,"m")]};return t("set-picker-option",["formatToString",Y]),t("set-picker-option",["parseUserInput",ke]),t("set-picker-option",["isValidValue",T]),t("set-picker-option",["handleKeydownInput",B]),t("set-picker-option",["getDefaultValue",K]),t("set-picker-option",["getRangeAvailableTime",H]),(se,ne)=>se.actualVisible?(k(),D("div",{key:0,class:W([h(a).b("range-picker"),h(i).b("panel")])},[R("div",{class:W(h(a).be("range-picker","content"))},[R("div",{class:W(h(a).be("range-picker","cell"))},[R("div",{class:W(h(a).be("range-picker","header"))},ze(h(o)("el.datepicker.startTime")),3),R("div",{class:W([h(a).be("range-picker","body"),h(a).be("panel","content"),h(a).is("arrow",h(u)),{"has-seconds":h(_)}])},[me(E1,{ref:"minSpinner",role:"start","show-seconds":h(_),"am-pm-mode":h(y),"arrow-control":h(u),"spinner-date":h(m),"disabled-hours":U,"disabled-minutes":P,"disabled-seconds":O,onChange:w,onSetOption:h(ie),onSelectRange:N},null,8,["show-seconds","am-pm-mode","arrow-control","spinner-date","onSetOption"])],2)],2),R("div",{class:W(h(a).be("range-picker","cell"))},[R("div",{class:W(h(a).be("range-picker","header"))},ze(h(o)("el.datepicker.endTime")),3),R("div",{class:W([h(a).be("range-picker","body"),h(a).be("panel","content"),h(a).is("arrow",h(u)),{"has-seconds":h(_)}])},[me(E1,{ref:"maxSpinner",role:"end","show-seconds":h(_),"am-pm-mode":h(y),"arrow-control":h(u),"spinner-date":h(v),"disabled-hours":U,"disabled-minutes":P,"disabled-seconds":O,onChange:E,onSetOption:h(ie),onSelectRange:L},null,8,["show-seconds","am-pm-mode","arrow-control","spinner-date","onSetOption"])],2)],2)],2),R("div",{class:W(h(a).be("panel","footer"))},[R("button",{type:"button",class:W([h(a).be("panel","btn"),"cancel"]),onClick:ne[0]||(ne[0]=ve=>b())},ze(h(o)("el.datepicker.cancel")),3),R("button",{type:"button",class:W([h(a).be("panel","btn"),"confirm"]),disabled:h($),onClick:ne[1]||(ne[1]=ve=>S())},ze(h(o)("el.datepicker.confirm")),11,L7e)],2)],2)):Ae("v-if",!0)}});var D7e=Fe(B7e,[["__file","/home/runner/work/element-plus/element-plus/packages/components/time-picker/src/time-picker-com/panel-time-range.vue"]]);wt.extend(Cb);var z7e=Ce({name:"ElTimePicker",install:null,props:{...kb,isRange:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(e,t){const n=ee(),[r,o]=e.isRange?["timerange",D7e]:["time",Zh],s=a=>t.emit("update:modelValue",a);return Ct("ElPopperOptions",e.popperOptions),t.expose({focus:a=>{var i;(i=n.value)==null||i.handleFocusInput(a)},blur:a=>{var i;(i=n.value)==null||i.handleBlurInput(a)},handleOpen:()=>{var a;(a=n.value)==null||a.handleOpen()},handleClose:()=>{var a;(a=n.value)==null||a.handleClose()}}),()=>{var a;const i=(a=e.format)!=null?a:p1;return me(II,$t(e,{ref:n,type:r,format:i,"onUpdate:modelValue":s}),{default:l=>me(o,l,null)})}}});const Cp=z7e;Cp.install=e=>{e.component(Cp.name,Cp)};const F7e=Cp,H7e=(e,t)=>{const n=e.subtract(1,"month").endOf("month").date();return Ja(t).map((r,o)=>n-(t-o-1))},V7e=e=>{const t=e.daysInMonth();return Ja(t).map((n,r)=>r+1)},j7e=e=>Ja(e.length/7).map(t=>{const n=t*7;return e.slice(n,n+7)}),U7e=He({selectedDay:{type:Re(Object)},range:{type:Re(Array)},date:{type:Re(Object),required:!0},hideHeader:{type:Boolean}}),W7e={pick:e=>xt(e)};var HI={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(ya,function(){return function(n,r,o){var s=r.prototype,a=function(d){return d&&(d.indexOf?d:d.s)},i=function(d,f,p,m,v){var g=d.name?d:d.$locale(),b=a(g[f]),_=a(g[p]),y=b||_.map(function(w){return w.slice(0,m)});if(!v)return y;var S=g.weekStart;return y.map(function(w,E){return y[(E+(S||0))%7]})},l=function(){return o.Ls[o.locale()]},u=function(d,f){return d.formats[f]||function(p){return p.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(m,v,g){return v||g.slice(1)})}(d.formats[f.toUpperCase()])},c=function(){var d=this;return{months:function(f){return f?f.format("MMMM"):i(d,"months")},monthsShort:function(f){return f?f.format("MMM"):i(d,"monthsShort","months",3)},firstDayOfWeek:function(){return d.$locale().weekStart||0},weekdays:function(f){return f?f.format("dddd"):i(d,"weekdays")},weekdaysMin:function(f){return f?f.format("dd"):i(d,"weekdaysMin","weekdays",2)},weekdaysShort:function(f){return f?f.format("ddd"):i(d,"weekdaysShort","weekdays",3)},longDateFormat:function(f){return u(d.$locale(),f)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};s.localeData=function(){return c.bind(this)()},o.localeData=function(){var d=l();return{firstDayOfWeek:function(){return d.weekStart||0},weekdays:function(){return o.weekdays()},weekdaysShort:function(){return o.weekdaysShort()},weekdaysMin:function(){return o.weekdaysMin()},months:function(){return o.months()},monthsShort:function(){return o.monthsShort()},longDateFormat:function(f){return u(d,f)},meridiem:d.meridiem,ordinal:d.ordinal}},o.months=function(){return i(l(),"months")},o.monthsShort=function(){return i(l(),"monthsShort","months",3)},o.weekdays=function(d){return i(l(),"weekdays",null,null,d)},o.weekdaysShort=function(d){return i(l(),"weekdaysShort","weekdays",3,d)},o.weekdaysMin=function(d){return i(l(),"weekdaysMin","weekdays",2,d)}}})})(HI);var q7e=HI.exports;const VI=Go(q7e),K7e=(e,t)=>{wt.extend(VI);const n=wt.localeData().firstDayOfWeek(),{t:r,lang:o}=Vt(),s=wt().locale(o.value),a=z(()=>!!e.range&&!!e.range.length),i=z(()=>{let f=[];if(a.value){const[p,m]=e.range,v=Ja(m.date()-p.date()+1).map(_=>({text:p.date()+_,type:"current"}));let g=v.length%7;g=g===0?0:7-g;const b=Ja(g).map((_,y)=>({text:y+1,type:"next"}));f=v.concat(b)}else{const p=e.date.startOf("month").day(),m=H7e(e.date,(p-n+7)%7).map(_=>({text:_,type:"prev"})),v=V7e(e.date).map(_=>({text:_,type:"current"}));f=[...m,...v];const g=7-(f.length%7||7),b=Ja(g).map((_,y)=>({text:y+1,type:"next"}));f=f.concat(b)}return j7e(f)}),l=z(()=>{const f=n;return f===0?gv.map(p=>r(`el.datepicker.weeks.${p}`)):gv.slice(f).concat(gv.slice(0,f)).map(p=>r(`el.datepicker.weeks.${p}`))}),u=(f,p)=>{switch(p){case"prev":return e.date.startOf("month").subtract(1,"month").date(f);case"next":return e.date.startOf("month").add(1,"month").date(f);case"current":return e.date.date(f)}};return{now:s,isInRange:a,rows:i,weekDays:l,getFormattedDate:u,handlePickDay:({text:f,type:p})=>{const m=u(f,p);t("pick",m)},getSlotData:({text:f,type:p})=>{const m=u(f,p);return{isSelected:m.isSame(e.selectedDay),type:`${p}-month`,day:m.format("YYYY-MM-DD"),date:m.toDate()}}}},G7e={key:0},Y7e=["onClick"],X7e=Ce({name:"DateTable"}),J7e=Ce({...X7e,props:U7e,emits:W7e,setup(e,{expose:t,emit:n}){const r=e,{isInRange:o,now:s,rows:a,weekDays:i,getFormattedDate:l,handlePickDay:u,getSlotData:c}=K7e(r,n),d=De("calendar-table"),f=De("calendar-day"),p=({text:m,type:v})=>{const g=[v];if(v==="current"){const b=l(m,v);b.isSame(r.selectedDay,"day")&&g.push(f.is("selected")),b.isSame(s,"day")&&g.push(f.is("today"))}return g};return t({getFormattedDate:l}),(m,v)=>(k(),D("table",{class:W([h(d).b(),h(d).is("range",h(o))]),cellspacing:"0",cellpadding:"0"},[m.hideHeader?Ae("v-if",!0):(k(),D("thead",G7e,[(k(!0),D(Ze,null,At(h(i),g=>(k(),D("th",{key:g},ze(g),1))),128))])),R("tbody",null,[(k(!0),D(Ze,null,At(h(a),(g,b)=>(k(),D("tr",{key:b,class:W({[h(d).e("row")]:!0,[h(d).em("row","hide-border")]:b===0&&m.hideHeader})},[(k(!0),D(Ze,null,At(g,(_,y)=>(k(),D("td",{key:y,class:W(p(_)),onClick:S=>h(u)(_)},[R("div",{class:W(h(f).b())},[Pe(m.$slots,"date-cell",{data:h(c)(_)},()=>[R("span",null,ze(_.text),1)])],2)],10,Y7e))),128))],2))),128))])],2))}});var LS=Fe(J7e,[["__file","/home/runner/work/element-plus/element-plus/packages/components/calendar/src/date-table.vue"]]);const Q7e=(e,t)=>{const n=e.endOf("month"),r=t.startOf("month"),s=n.isSame(r,"week")?r.add(1,"week"):r;return[[e,n],[s.startOf("week"),t]]},Z7e=(e,t)=>{const n=e.endOf("month"),r=e.add(1,"month").startOf("month"),o=n.isSame(r,"week")?r.add(1,"week"):r,s=o.endOf("month"),a=t.startOf("month"),i=s.isSame(a,"week")?a.add(1,"week"):a;return[[e,n],[o.startOf("week"),s],[i.startOf("week"),t]]},eIe=(e,t,n)=>{const r=Wn(),{lang:o}=Vt(),s=ee(),a=wt().locale(o.value),i=z({get(){return e.modelValue?u.value:s.value},set(b){if(!b)return;s.value=b;const _=b.toDate();t(kr,_),t(Et,_)}}),l=z(()=>{if(!e.range)return[];const b=e.range.map(S=>wt(S).locale(o.value)),[_,y]=b;return _.isAfter(y)?[]:_.isSame(y,"month")?m(_,y):_.add(1,"month").month()!==y.month()?[]:m(_,y)}),u=z(()=>e.modelValue?wt(e.modelValue).locale(o.value):i.value||(l.value.length?l.value[0][0]:a)),c=z(()=>u.value.subtract(1,"month").date(1)),d=z(()=>u.value.add(1,"month").date(1)),f=z(()=>u.value.subtract(1,"year").date(1)),p=z(()=>u.value.add(1,"year").date(1)),m=(b,_)=>{const y=b.startOf("week"),S=_.endOf("week"),w=y.get("month"),E=S.get("month");return w===E?[[y,S]]:(w+1)%12===E?Q7e(y,S):w+2===E||(w+1)%11===E?Z7e(y,S):[]},v=b=>{i.value=b},g=b=>{const y={"prev-month":c.value,"next-month":d.value,"prev-year":f.value,"next-year":p.value,today:a}[b];y.isSame(u.value,"day")||v(y)};return ta({from:'"dateCell"',replacement:'"date-cell"',scope:"ElCalendar",version:"2.3.0",ref:"https://element-plus.org/en-US/component/calendar.html#slots",type:"Slot"},z(()=>!!r.dateCell)),{calculateValidatedDateRange:m,date:u,realSelectedDay:i,pickDay:v,selectDate:g,validatedRange:l}},tIe=e=>Ge(e)&&e.length===2&&e.every(t=>Ki(t)),nIe=He({modelValue:{type:Date},range:{type:Re(Array),validator:tIe}}),rIe={[Et]:e=>Ki(e),[kr]:e=>Ki(e)},oIe="ElCalendar",sIe=Ce({name:oIe}),aIe=Ce({...sIe,props:nIe,emits:rIe,setup(e,{expose:t,emit:n}){const r=e,o=De("calendar"),{calculateValidatedDateRange:s,date:a,pickDay:i,realSelectedDay:l,selectDate:u,validatedRange:c}=eIe(r,n),{t:d}=Vt(),f=z(()=>{const p=`el.datepicker.month${a.value.format("M")}`;return`${a.value.year()} ${d("el.datepicker.year")} ${d(p)}`});return t({selectedDay:l,pickDay:i,selectDate:u,calculateValidatedDateRange:s}),(p,m)=>(k(),D("div",{class:W(h(o).b())},[R("div",{class:W(h(o).e("header"))},[Pe(p.$slots,"header",{date:h(f)},()=>[R("div",{class:W(h(o).e("title"))},ze(h(f)),3),h(c).length===0?(k(),D("div",{key:0,class:W(h(o).e("button-group"))},[me(h(SI),null,{default:be(()=>[me(h(or),{size:"small",onClick:m[0]||(m[0]=v=>h(u)("prev-month"))},{default:be(()=>[Ot(ze(h(d)("el.datepicker.prevMonth")),1)]),_:1}),me(h(or),{size:"small",onClick:m[1]||(m[1]=v=>h(u)("today"))},{default:be(()=>[Ot(ze(h(d)("el.datepicker.today")),1)]),_:1}),me(h(or),{size:"small",onClick:m[2]||(m[2]=v=>h(u)("next-month"))},{default:be(()=>[Ot(ze(h(d)("el.datepicker.nextMonth")),1)]),_:1})]),_:1})],2)):Ae("v-if",!0)])],2),h(c).length===0?(k(),D("div",{key:0,class:W(h(o).e("body"))},[me(LS,{date:h(a),"selected-day":h(l),onPick:h(i)},Bo({_:2},[p.$slots["date-cell"]||p.$slots.dateCell?{name:"date-cell",fn:be(v=>[p.$slots["date-cell"]?Pe(p.$slots,"date-cell",Yr($t({key:0},v))):Pe(p.$slots,"dateCell",Yr($t({key:1},v)))])}:void 0]),1032,["date","selected-day","onPick"])],2)):(k(),D("div",{key:1,class:W(h(o).e("body"))},[(k(!0),D(Ze,null,At(h(c),(v,g)=>(k(),Me(LS,{key:g,date:v[0],"selected-day":h(l),range:v,"hide-header":g!==0,onPick:h(i)},Bo({_:2},[p.$slots["date-cell"]||p.$slots.dateCell?{name:"date-cell",fn:be(b=>[p.$slots["date-cell"]?Pe(p.$slots,"date-cell",Yr($t({key:0},b))):Pe(p.$slots,"dateCell",Yr($t({key:1},b)))])}:void 0]),1032,["date","selected-day","range","hide-header","onPick"]))),128))],2))],2))}});var iIe=Fe(aIe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/calendar/src/calendar.vue"]]);const lIe=St(iIe),uIe=He({header:{type:String,default:""},bodyStyle:{type:Re([String,Object,Array]),default:""},shadow:{type:String,values:["always","hover","never"],default:"always"}}),cIe=Ce({name:"ElCard"}),dIe=Ce({...cIe,props:uIe,setup(e){const t=De("card");return(n,r)=>(k(),D("div",{class:W([h(t).b(),h(t).is(`${n.shadow}-shadow`)])},[n.$slots.header||n.header?(k(),D("div",{key:0,class:W(h(t).e("header"))},[Pe(n.$slots,"header",{},()=>[Ot(ze(n.header),1)])],2)):Ae("v-if",!0),R("div",{class:W(h(t).e("body")),style:Je(n.bodyStyle)},[Pe(n.$slots,"default")],6)],2))}});var fIe=Fe(dIe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/card/src/card.vue"]]);const pIe=St(fIe),hIe=He({initialIndex:{type:Number,default:0},height:{type:String,default:""},trigger:{type:String,values:["hover","click"],default:"hover"},autoplay:{type:Boolean,default:!0},interval:{type:Number,default:3e3},indicatorPosition:{type:String,values:["","none","outside"],default:""},indicator:{type:Boolean,default:!0},arrow:{type:String,values:["always","hover","never"],default:"hover"},type:{type:String,values:["","card"],default:""},loop:{type:Boolean,default:!0},direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},pauseOnHover:{type:Boolean,default:!0}}),mIe={change:(e,t)=>[e,t].every(dt)},BS=300,vIe=(e,t,n)=>{const{children:r,addChild:o,removeChild:s}=q7(gt(),"ElCarouselItem"),a=ee(-1),i=ee(null),l=ee(!1),u=ee(),c=z(()=>e.arrow!=="never"&&!h(p)),d=z(()=>r.value.some(U=>U.props.label.toString().length>0)),f=z(()=>e.type==="card"),p=z(()=>e.direction==="vertical"),m=Vi(U=>{y(U)},BS,{trailing:!0}),v=Vi(U=>{N(U)},BS);function g(){i.value&&(clearInterval(i.value),i.value=null)}function b(){e.interval<=0||!e.autoplay||i.value||(i.value=setInterval(()=>_(),e.interval))}const _=()=>{a.valueq.props.name===U);H.length>0&&(U=r.value.indexOf(H[0]))}if(U=Number(U),Number.isNaN(U)||U!==Math.floor(U))return;const P=r.value.length,O=a.value;U<0?a.value=e.loop?P-1:0:U>=P?a.value=e.loop?0:P-1:a.value=U,O===a.value&&S(O),F()}function S(U){r.value.forEach((P,O)=>{P.translateItem(O,a.value,U)})}function w(U,P){var O,H,q,te;const V=h(r),Q=V.length;if(Q===0||!U.states.inStage)return!1;const ge=P+1,ie=P-1,ke=Q-1,Y=V[ke].states.active,K=V[0].states.active,se=(H=(O=V[ge])==null?void 0:O.states)==null?void 0:H.active,ne=(te=(q=V[ie])==null?void 0:q.states)==null?void 0:te.active;return P===ke&&K||se?"left":P===0&&Y||ne?"right":!1}function E(){l.value=!0,e.pauseOnHover&&g()}function T(){l.value=!1,b()}function C(U){h(p)||r.value.forEach((P,O)=>{U===w(P,O)&&(P.states.hover=!0)})}function $(){h(p)||r.value.forEach(U=>{U.states.hover=!1})}function x(U){a.value=U}function N(U){e.trigger==="hover"&&U!==a.value&&(a.value=U)}function I(){y(a.value-1)}function L(){y(a.value+1)}function F(){g(),b()}Be(()=>a.value,(U,P)=>{S(P),P>-1&&t("change",U,P)}),Be(()=>e.autoplay,U=>{U?b():g()}),Be(()=>e.loop,()=>{y(a.value)}),Be(()=>e.interval,()=>{F()}),Be(()=>r.value,()=>{r.value.length>0&&y(e.initialIndex)});const B=rn();return vt(()=>{B.value=gr(u.value,()=>{S()}),b()}),fn(()=>{g(),u.value&&B.value&&B.value.stop()}),Ct(h7,{root:u,isCardType:f,isVertical:p,items:r,loop:e.loop,addItem:o,removeItem:s,setActiveItem:y}),{root:u,activeIndex:a,arrowDisplay:c,hasLabel:d,hover:l,isCardType:f,items:r,handleButtonEnter:C,handleButtonLeave:$,handleIndicatorClick:x,handleMouseEnter:E,handleMouseLeave:T,setActiveItem:y,prev:I,next:L,throttledArrowClick:m,throttledIndicatorHover:v}},gIe=["onMouseenter","onClick"],_Ie={key:0},yIe="ElCarousel",bIe=Ce({name:yIe}),wIe=Ce({...bIe,props:hIe,emits:mIe,setup(e,{expose:t,emit:n}){const r=e,{root:o,activeIndex:s,arrowDisplay:a,hasLabel:i,hover:l,isCardType:u,items:c,handleButtonEnter:d,handleButtonLeave:f,handleIndicatorClick:p,handleMouseEnter:m,handleMouseLeave:v,setActiveItem:g,prev:b,next:_,throttledArrowClick:y,throttledIndicatorHover:S}=vIe(r,n),w=De("carousel"),E=z(()=>{const C=[w.b(),w.m(r.direction)];return h(u)&&C.push(w.m("card")),C}),T=z(()=>{const C=[w.e("indicators"),w.em("indicators",r.direction)];return h(i)&&C.push(w.em("indicators","labels")),(r.indicatorPosition==="outside"||h(u))&&C.push(w.em("indicators","outside")),C});return t({setActiveItem:g,prev:b,next:_}),(C,$)=>(k(),D("div",{ref_key:"root",ref:o,class:W(h(E)),onMouseenter:$[6]||($[6]=ct((...x)=>h(m)&&h(m)(...x),["stop"])),onMouseleave:$[7]||($[7]=ct((...x)=>h(v)&&h(v)(...x),["stop"]))},[R("div",{class:W(h(w).e("container")),style:Je({height:C.height})},[h(a)?(k(),Me(xn,{key:0,name:"carousel-arrow-left",persisted:""},{default:be(()=>[mt(R("button",{type:"button",class:W([h(w).e("arrow"),h(w).em("arrow","left")]),onMouseenter:$[0]||($[0]=x=>h(d)("left")),onMouseleave:$[1]||($[1]=(...x)=>h(f)&&h(f)(...x)),onClick:$[2]||($[2]=ct(x=>h(y)(h(s)-1),["stop"]))},[me(h(et),null,{default:be(()=>[me(h(ea))]),_:1})],34),[[zt,(C.arrow==="always"||h(l))&&(r.loop||h(s)>0)]])]),_:1})):Ae("v-if",!0),h(a)?(k(),Me(xn,{key:1,name:"carousel-arrow-right",persisted:""},{default:be(()=>[mt(R("button",{type:"button",class:W([h(w).e("arrow"),h(w).em("arrow","right")]),onMouseenter:$[3]||($[3]=x=>h(d)("right")),onMouseleave:$[4]||($[4]=(...x)=>h(f)&&h(f)(...x)),onClick:$[5]||($[5]=ct(x=>h(y)(h(s)+1),["stop"]))},[me(h(et),null,{default:be(()=>[me(h(vr))]),_:1})],34),[[zt,(C.arrow==="always"||h(l))&&(r.loop||h(s)(k(),D("li",{key:N,class:W([h(w).e("indicator"),h(w).em("indicator",C.direction),h(w).is("active",N===h(s))]),onMouseenter:I=>h(S)(N),onClick:ct(I=>h(p)(N),["stop"])},[R("button",{class:W(h(w).e("button"))},[h(i)?(k(),D("span",_Ie,ze(x.props.label),1)):Ae("v-if",!0)],2)],42,gIe))),128))],2)):Ae("v-if",!0)],34))}});var SIe=Fe(wIe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/carousel/src/carousel.vue"]]);const EIe=He({name:{type:String,default:""},label:{type:[String,Number],default:""}}),CIe=(e,t)=>{const n=Ye(h7),r=gt(),o=.83,s=ee(!1),a=ee(0),i=ee(1),l=ee(!1),u=ee(!1),c=ee(!1),d=ee(!1),{isCardType:f,isVertical:p}=n;function m(y,S,w){const E=w-1,T=S-1,C=S+1,$=w/2;return S===0&&y===E?-1:S===E&&y===0?w:y=$?w+1:y>C&&y-S>=$?-2:y}function v(y,S){var w;const E=((w=n.root.value)==null?void 0:w.offsetWidth)||0;return c.value?E*((2-o)*(y-S)+1)/4:y{var E;const T=h(f),C=(E=n.items.value.length)!=null?E:Number.NaN,$=y===S;!T&&!Gn(w)&&(d.value=$||y===w),!$&&C>2&&n.loop&&(y=m(y,S,C));const x=h(p);l.value=$,T?(c.value=Math.round(Math.abs(y-S))<=1,a.value=v(y,S),i.value=h(l)?1:o):a.value=g(y,S,x),u.value=!0};function _(){if(n&&h(f)){const y=n.items.value.findIndex(({uid:S})=>S===r.uid);n.setActiveItem(y)}}return vt(()=>{n.addItem({props:e,states:Ht({hover:s,translate:a,scale:i,active:l,ready:u,inStage:c,animating:d}),uid:r.uid,translateItem:b})}),ia(()=>{n.removeItem(r.uid)}),{active:l,animating:d,hover:s,inStage:c,isVertical:p,translate:a,isCardType:f,scale:i,ready:u,handleItemClick:_}},kIe=Ce({name:"ElCarouselItem"}),TIe=Ce({...kIe,props:EIe,setup(e){const t=e,n=De("carousel"),{active:r,animating:o,hover:s,inStage:a,isVertical:i,translate:l,isCardType:u,scale:c,ready:d,handleItemClick:f}=CIe(t),p=z(()=>{const v=`${`translate${h(i)?"Y":"X"}`}(${h(l)}px)`,g=`scale(${h(c)})`;return{transform:[v,g].join(" ")}});return(m,v)=>mt((k(),D("div",{class:W([h(n).e("item"),h(n).is("active",h(r)),h(n).is("in-stage",h(a)),h(n).is("hover",h(s)),h(n).is("animating",h(o)),{[h(n).em("item","card")]:h(u)}]),style:Je(h(p)),onClick:v[0]||(v[0]=(...g)=>h(f)&&h(f)(...g))},[h(u)?mt((k(),D("div",{key:0,class:W(h(n).e("mask"))},null,2)),[[zt,!h(r)]]):Ae("v-if",!0),Pe(m.$slots,"default")],6)),[[zt,h(d)]])}});var jI=Fe(TIe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/carousel/src/carousel-item.vue"]]);const $Ie=St(SIe,{CarouselItem:jI}),xIe=En(jI),UI={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object]},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},controls:{type:String,default:void 0},border:Boolean,size:Fr,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0}},WI={[Et]:e=>ft(e)||dt(e)||Dn(e),change:e=>ft(e)||dt(e)||Dn(e)},IIe=({model:e,isChecked:t})=>{const n=Ye(ec,void 0),r=z(()=>{var s,a;const i=(s=n==null?void 0:n.max)==null?void 0:s.value,l=(a=n==null?void 0:n.min)==null?void 0:a.value;return!Gn(i)&&e.value.length>=i&&!t.value||!Gn(l)&&e.value.length<=l&&t.value});return{isDisabled:jr(z(()=>(n==null?void 0:n.disabled.value)||r.value)),isLimitDisabled:r}},AIe=(e,{model:t,isLimitExceeded:n,hasOwnLabel:r,isDisabled:o,isLabeledByFormItem:s})=>{const a=Ye(ec,void 0),{formItem:i}=xr(),{emit:l}=gt();function u(m){var v,g;return m===e.trueLabel||m===!0?(v=e.trueLabel)!=null?v:!0:(g=e.falseLabel)!=null?g:!1}function c(m,v){l("change",u(m),v)}function d(m){if(n.value)return;const v=m.target;l("change",u(v.checked),m)}async function f(m){n.value||!r.value&&!o.value&&s.value&&(m.composedPath().some(b=>b.tagName==="LABEL")||(t.value=u([!1,e.falseLabel].includes(t.value)),await Xe(),c(t.value,m)))}const p=z(()=>(a==null?void 0:a.validateEvent)||e.validateEvent);return Be(()=>e.modelValue,()=>{p.value&&(i==null||i.validate("change").catch(m=>void 0))}),{handleChange:d,onClickRoot:f}},MIe=e=>{const t=ee(!1),{emit:n}=gt(),r=Ye(ec,void 0),o=z(()=>Gn(r)===!1),s=ee(!1);return{model:z({get(){var i,l;return o.value?(i=r==null?void 0:r.modelValue)==null?void 0:i.value:(l=e.modelValue)!=null?l:t.value},set(i){var l,u;o.value&&Ge(i)?(s.value=((l=r==null?void 0:r.max)==null?void 0:l.value)!==void 0&&i.length>(r==null?void 0:r.max.value),s.value===!1&&((u=r==null?void 0:r.changeEvent)==null||u.call(r,i))):(n(Et,i),t.value=i)}}),isGroup:o,isLimitExceeded:s}},OIe=(e,t,{model:n})=>{const r=Ye(ec,void 0),o=ee(!1),s=z(()=>{const u=n.value;return Dn(u)?u:Ge(u)?xt(e.label)?u.map(Ut).some(c=>to(c,e.label)):u.map(Ut).includes(e.label):u!=null?u===e.trueLabel:!!u}),a=Ln(z(()=>{var u;return(u=r==null?void 0:r.size)==null?void 0:u.value}),{prop:!0}),i=Ln(z(()=>{var u;return(u=r==null?void 0:r.size)==null?void 0:u.value})),l=z(()=>!!(t.default||e.label));return{checkboxButtonSize:a,isChecked:s,isFocused:o,checkboxSize:i,hasOwnLabel:l}},RIe=(e,{model:t})=>{function n(){Ge(t.value)&&!t.value.includes(e.label)?t.value.push(e.label):t.value=e.trueLabel||!0}e.checked&&n()},qI=(e,t)=>{const{formItem:n}=xr(),{model:r,isGroup:o,isLimitExceeded:s}=MIe(e),{isFocused:a,isChecked:i,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:c}=OIe(e,t,{model:r}),{isDisabled:d}=IIe({model:r,isChecked:i}),{inputId:f,isLabeledByFormItem:p}=di(e,{formItemContext:n,disableIdGeneration:c,disableIdManagement:o}),{handleChange:m,onClickRoot:v}=AIe(e,{model:r,isLimitExceeded:s,hasOwnLabel:c,isDisabled:d,isLabeledByFormItem:p});return RIe(e,{model:r}),{inputId:f,isLabeledByFormItem:p,isChecked:i,isDisabled:d,isFocused:a,checkboxButtonSize:l,checkboxSize:u,hasOwnLabel:c,model:r,handleChange:m,onClickRoot:v}},PIe=["tabindex","role","aria-checked"],NIe=["id","aria-hidden","name","tabindex","disabled","true-value","false-value"],LIe=["id","aria-hidden","disabled","value","name","tabindex"],BIe=Ce({name:"ElCheckbox"}),DIe=Ce({...BIe,props:UI,emits:WI,setup(e){const t=e,n=Wn(),{inputId:r,isLabeledByFormItem:o,isChecked:s,isDisabled:a,isFocused:i,checkboxSize:l,hasOwnLabel:u,model:c,handleChange:d,onClickRoot:f}=qI(t,n),p=De("checkbox"),m=z(()=>[p.b(),p.m(l.value),p.is("disabled",a.value),p.is("bordered",t.border),p.is("checked",s.value)]),v=z(()=>[p.e("input"),p.is("disabled",a.value),p.is("checked",s.value),p.is("indeterminate",t.indeterminate),p.is("focus",i.value)]);return(g,b)=>(k(),Me(kt(!h(u)&&h(o)?"span":"label"),{class:W(h(m)),"aria-controls":g.indeterminate?g.controls:null,onClick:h(f)},{default:be(()=>[R("span",{class:W(h(v)),tabindex:g.indeterminate?0:void 0,role:g.indeterminate?"checkbox":void 0,"aria-checked":g.indeterminate?"mixed":void 0},[g.trueLabel||g.falseLabel?mt((k(),D("input",{key:0,id:h(r),"onUpdate:modelValue":b[0]||(b[0]=_=>qt(c)?c.value=_:null),class:W(h(p).e("original")),type:"checkbox","aria-hidden":g.indeterminate?"true":"false",name:g.name,tabindex:g.tabindex,disabled:h(a),"true-value":g.trueLabel,"false-value":g.falseLabel,onChange:b[1]||(b[1]=(..._)=>h(d)&&h(d)(..._)),onFocus:b[2]||(b[2]=_=>i.value=!0),onBlur:b[3]||(b[3]=_=>i.value=!1)},null,42,NIe)),[[dd,h(c)]]):mt((k(),D("input",{key:1,id:h(r),"onUpdate:modelValue":b[4]||(b[4]=_=>qt(c)?c.value=_:null),class:W(h(p).e("original")),type:"checkbox","aria-hidden":g.indeterminate?"true":"false",disabled:h(a),value:g.label,name:g.name,tabindex:g.tabindex,onChange:b[5]||(b[5]=(..._)=>h(d)&&h(d)(..._)),onFocus:b[6]||(b[6]=_=>i.value=!0),onBlur:b[7]||(b[7]=_=>i.value=!1)},null,42,LIe)),[[dd,h(c)]]),R("span",{class:W(h(p).e("inner"))},null,2)],10,PIe),h(u)?(k(),D("span",{key:0,class:W(h(p).e("label"))},[Pe(g.$slots,"default"),g.$slots.default?Ae("v-if",!0):(k(),D(Ze,{key:0},[Ot(ze(g.label),1)],64))],2)):Ae("v-if",!0)]),_:3},8,["class","aria-controls","onClick"]))}});var zIe=Fe(DIe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox.vue"]]);const FIe=["name","tabindex","disabled","true-value","false-value"],HIe=["name","tabindex","disabled","value"],VIe=Ce({name:"ElCheckboxButton"}),jIe=Ce({...VIe,props:UI,emits:WI,setup(e){const t=e,n=Wn(),{isFocused:r,isChecked:o,isDisabled:s,checkboxButtonSize:a,model:i,handleChange:l}=qI(t,n),u=Ye(ec,void 0),c=De("checkbox"),d=z(()=>{var p,m,v,g;const b=(m=(p=u==null?void 0:u.fill)==null?void 0:p.value)!=null?m:"";return{backgroundColor:b,borderColor:b,color:(g=(v=u==null?void 0:u.textColor)==null?void 0:v.value)!=null?g:"",boxShadow:b?`-1px 0 0 0 ${b}`:void 0}}),f=z(()=>[c.b("button"),c.bm("button",a.value),c.is("disabled",s.value),c.is("checked",o.value),c.is("focus",r.value)]);return(p,m)=>(k(),D("label",{class:W(h(f))},[p.trueLabel||p.falseLabel?mt((k(),D("input",{key:0,"onUpdate:modelValue":m[0]||(m[0]=v=>qt(i)?i.value=v:null),class:W(h(c).be("button","original")),type:"checkbox",name:p.name,tabindex:p.tabindex,disabled:h(s),"true-value":p.trueLabel,"false-value":p.falseLabel,onChange:m[1]||(m[1]=(...v)=>h(l)&&h(l)(...v)),onFocus:m[2]||(m[2]=v=>r.value=!0),onBlur:m[3]||(m[3]=v=>r.value=!1)},null,42,FIe)),[[dd,h(i)]]):mt((k(),D("input",{key:1,"onUpdate:modelValue":m[4]||(m[4]=v=>qt(i)?i.value=v:null),class:W(h(c).be("button","original")),type:"checkbox",name:p.name,tabindex:p.tabindex,disabled:h(s),value:p.label,onChange:m[5]||(m[5]=(...v)=>h(l)&&h(l)(...v)),onFocus:m[6]||(m[6]=v=>r.value=!0),onBlur:m[7]||(m[7]=v=>r.value=!1)},null,42,HIe)),[[dd,h(i)]]),p.$slots.default||p.label?(k(),D("span",{key:2,class:W(h(c).be("button","inner")),style:Je(h(o)?h(d):void 0)},[Pe(p.$slots,"default",{},()=>[Ot(ze(p.label),1)])],6)):Ae("v-if",!0)],2))}});var KI=Fe(jIe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-button.vue"]]);const UIe=He({modelValue:{type:Re(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:Fr,label:String,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0}}),WIe={[Et]:e=>Ge(e),change:e=>Ge(e)},qIe=Ce({name:"ElCheckboxGroup"}),KIe=Ce({...qIe,props:UIe,emits:WIe,setup(e,{emit:t}){const n=e,r=De("checkbox"),{formItem:o}=xr(),{inputId:s,isLabeledByFormItem:a}=di(n,{formItemContext:o}),i=async u=>{t(Et,u),await Xe(),t("change",u)},l=z({get(){return n.modelValue},set(u){i(u)}});return Ct(ec,{...Ls(On(n),["size","min","max","disabled","validateEvent","fill","textColor"]),modelValue:l,changeEvent:i}),Be(()=>n.modelValue,()=>{n.validateEvent&&(o==null||o.validate("change").catch(u=>void 0))}),(u,c)=>{var d;return k(),Me(kt(u.tag),{id:h(s),class:W(h(r).b("group")),role:"group","aria-label":h(a)?void 0:u.label||"checkbox-group","aria-labelledby":h(a)?(d=h(o))==null?void 0:d.labelId:void 0},{default:be(()=>[Pe(u.$slots,"default")]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var GI=Fe(KIe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/checkbox/src/checkbox-group.vue"]]);const Co=St(zIe,{CheckboxButton:KI,CheckboxGroup:GI}),GIe=En(KI),YI=En(GI),XI=He({size:Fr,disabled:Boolean,label:{type:[String,Number,Boolean],default:""}}),YIe=He({...XI,modelValue:{type:[String,Number,Boolean],default:""},name:{type:String,default:""},border:Boolean}),JI={[Et]:e=>ft(e)||dt(e)||Dn(e),[un]:e=>ft(e)||dt(e)||Dn(e)},QI=(e,t)=>{const n=ee(),r=Ye(y7,void 0),o=z(()=>!!r),s=z({get(){return o.value?r.modelValue:e.modelValue},set(c){o.value?r.changeEvent(c):t&&t(Et,c),n.value.checked=e.modelValue===e.label}}),a=Ln(z(()=>r==null?void 0:r.size)),i=jr(z(()=>r==null?void 0:r.disabled)),l=ee(!1),u=z(()=>i.value||o.value&&s.value!==e.label?-1:0);return{radioRef:n,isGroup:o,radioGroup:r,focus:l,size:a,disabled:i,tabIndex:u,modelValue:s}},XIe=["value","name","disabled"],JIe=Ce({name:"ElRadio"}),QIe=Ce({...JIe,props:YIe,emits:JI,setup(e,{emit:t}){const n=e,r=De("radio"),{radioRef:o,radioGroup:s,focus:a,size:i,disabled:l,modelValue:u}=QI(n,t);function c(){Xe(()=>t("change",u.value))}return(d,f)=>{var p;return k(),D("label",{class:W([h(r).b(),h(r).is("disabled",h(l)),h(r).is("focus",h(a)),h(r).is("bordered",d.border),h(r).is("checked",h(u)===d.label),h(r).m(h(i))])},[R("span",{class:W([h(r).e("input"),h(r).is("disabled",h(l)),h(r).is("checked",h(u)===d.label)])},[mt(R("input",{ref_key:"radioRef",ref:o,"onUpdate:modelValue":f[0]||(f[0]=m=>qt(u)?u.value=m:null),class:W(h(r).e("original")),value:d.label,name:d.name||((p=h(s))==null?void 0:p.name),disabled:h(l),type:"radio",onFocus:f[1]||(f[1]=m=>a.value=!0),onBlur:f[2]||(f[2]=m=>a.value=!1),onChange:c},null,42,XIe),[[zy,h(u)]]),R("span",{class:W(h(r).e("inner"))},null,2)],2),R("span",{class:W(h(r).e("label")),onKeydown:f[3]||(f[3]=ct(()=>{},["stop"]))},[Pe(d.$slots,"default",{},()=>[Ot(ze(d.label),1)])],34)],2)}}});var ZIe=Fe(QIe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio.vue"]]);const eAe=He({...XI,name:{type:String,default:""}}),tAe=["value","name","disabled"],nAe=Ce({name:"ElRadioButton"}),rAe=Ce({...nAe,props:eAe,setup(e){const t=e,n=De("radio"),{radioRef:r,focus:o,size:s,disabled:a,modelValue:i,radioGroup:l}=QI(t),u=z(()=>({backgroundColor:(l==null?void 0:l.fill)||"",borderColor:(l==null?void 0:l.fill)||"",boxShadow:l!=null&&l.fill?`-1px 0 0 0 ${l.fill}`:"",color:(l==null?void 0:l.textColor)||""}));return(c,d)=>{var f;return k(),D("label",{class:W([h(n).b("button"),h(n).is("active",h(i)===c.label),h(n).is("disabled",h(a)),h(n).is("focus",h(o)),h(n).bm("button",h(s))])},[mt(R("input",{ref_key:"radioRef",ref:r,"onUpdate:modelValue":d[0]||(d[0]=p=>qt(i)?i.value=p:null),class:W(h(n).be("button","original-radio")),value:c.label,type:"radio",name:c.name||((f=h(l))==null?void 0:f.name),disabled:h(a),onFocus:d[1]||(d[1]=p=>o.value=!0),onBlur:d[2]||(d[2]=p=>o.value=!1)},null,42,tAe),[[zy,h(i)]]),R("span",{class:W(h(n).be("button","inner")),style:Je(h(i)===c.label?h(u):{}),onKeydown:d[3]||(d[3]=ct(()=>{},["stop"]))},[Pe(c.$slots,"default",{},()=>[Ot(ze(c.label),1)])],38)],2)}}});var ZI=Fe(rAe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio-button.vue"]]);const oAe=He({id:{type:String,default:void 0},size:Fr,disabled:Boolean,modelValue:{type:[String,Number,Boolean],default:""},fill:{type:String,default:""},label:{type:String,default:void 0},textColor:{type:String,default:""},name:{type:String,default:void 0},validateEvent:{type:Boolean,default:!0}}),sAe=JI,aAe=["id","aria-label","aria-labelledby"],iAe=Ce({name:"ElRadioGroup"}),lAe=Ce({...iAe,props:oAe,emits:sAe,setup(e,{emit:t}){const n=e,r=De("radio"),o=Fo(),s=ee(),{formItem:a}=xr(),{inputId:i,isLabeledByFormItem:l}=di(n,{formItemContext:a}),u=d=>{t(Et,d),Xe(()=>t("change",d))};vt(()=>{const d=s.value.querySelectorAll("[type=radio]"),f=d[0];!Array.from(d).some(p=>p.checked)&&f&&(f.tabIndex=0)});const c=z(()=>n.name||o.value);return Ct(y7,Ht({...On(n),changeEvent:u,name:c})),Be(()=>n.modelValue,()=>{n.validateEvent&&(a==null||a.validate("change").catch(d=>void 0))}),(d,f)=>(k(),D("div",{id:h(i),ref_key:"radioGroupRef",ref:s,class:W(h(r).b("group")),role:"radiogroup","aria-label":h(l)?void 0:d.label||"radio-group","aria-labelledby":h(l)?h(a).labelId:void 0},[Pe(d.$slots,"default")],10,aAe))}});var eA=Fe(lAe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio-group.vue"]]);const tA=St(ZIe,{RadioButton:ZI,RadioGroup:eA}),uAe=En(eA),cAe=En(ZI);var dAe=Ce({name:"NodeContent",setup(){return{ns:De("cascader-node")}},render(){const{ns:e}=this,{node:t,panel:n}=this.$parent,{data:r,label:o}=t,{renderLabelFn:s}=n;return tt("span",{class:e.e("label")},s?s({node:t,data:r}):o)}});const Tb=Symbol(),fAe=Ce({name:"ElCascaderNode",components:{ElCheckbox:Co,ElRadio:tA,NodeContent:dAe,ElIcon:et,Check:Qu,Loading:pa,ArrowRight:vr},props:{node:{type:Object,required:!0},menuId:String},emits:["expand"],setup(e,{emit:t}){const n=Ye(Tb),r=De("cascader-node"),o=z(()=>n.isHoverMenu),s=z(()=>n.config.multiple),a=z(()=>n.config.checkStrictly),i=z(()=>{var E;return(E=n.checkedNodes[0])==null?void 0:E.uid}),l=z(()=>e.node.isDisabled),u=z(()=>e.node.isLeaf),c=z(()=>a.value&&!u.value||!l.value),d=z(()=>p(n.expandingNode)),f=z(()=>a.value&&n.checkedNodes.some(p)),p=E=>{var T;const{level:C,uid:$}=e.node;return((T=E==null?void 0:E.pathNodes[C-1])==null?void 0:T.uid)===$},m=()=>{d.value||n.expandNode(e.node)},v=E=>{const{node:T}=e;E!==T.checked&&n.handleCheckChange(T,E)},g=()=>{n.lazyLoad(e.node,()=>{u.value||m()})},b=E=>{o.value&&(_(),!u.value&&t("expand",E))},_=()=>{const{node:E}=e;!c.value||E.loading||(E.loaded?m():g())},y=()=>{o.value&&!u.value||(u.value&&!l.value&&!a.value&&!s.value?w(!0):_())},S=E=>{a.value?(v(E),e.node.loaded&&m()):w(E)},w=E=>{e.node.loaded?(v(E),!a.value&&m()):g()};return{panel:n,isHoverMenu:o,multiple:s,checkStrictly:a,checkedNodeId:i,isDisabled:l,isLeaf:u,expandable:c,inExpandingPath:d,inCheckedPath:f,ns:r,handleHoverExpand:b,handleExpand:_,handleClick:y,handleCheck:w,handleSelectCheck:S}}}),pAe=["id","aria-haspopup","aria-owns","aria-expanded","tabindex"],hAe=R("span",null,null,-1);function mAe(e,t,n,r,o,s){const a=rt("el-checkbox"),i=rt("el-radio"),l=rt("check"),u=rt("el-icon"),c=rt("node-content"),d=rt("loading"),f=rt("arrow-right");return k(),D("li",{id:`${e.menuId}-${e.node.uid}`,role:"menuitem","aria-haspopup":!e.isLeaf,"aria-owns":e.isLeaf?null:e.menuId,"aria-expanded":e.inExpandingPath,tabindex:e.expandable?-1:void 0,class:W([e.ns.b(),e.ns.is("selectable",e.checkStrictly),e.ns.is("active",e.node.checked),e.ns.is("disabled",!e.expandable),e.inExpandingPath&&"in-active-path",e.inCheckedPath&&"in-checked-path"]),onMouseenter:t[2]||(t[2]=(...p)=>e.handleHoverExpand&&e.handleHoverExpand(...p)),onFocus:t[3]||(t[3]=(...p)=>e.handleHoverExpand&&e.handleHoverExpand(...p)),onClick:t[4]||(t[4]=(...p)=>e.handleClick&&e.handleClick(...p))},[Ae(" prefix "),e.multiple?(k(),Me(a,{key:0,"model-value":e.node.checked,indeterminate:e.node.indeterminate,disabled:e.isDisabled,onClick:t[0]||(t[0]=ct(()=>{},["stop"])),"onUpdate:modelValue":e.handleSelectCheck},null,8,["model-value","indeterminate","disabled","onUpdate:modelValue"])):e.checkStrictly?(k(),Me(i,{key:1,"model-value":e.checkedNodeId,label:e.node.uid,disabled:e.isDisabled,"onUpdate:modelValue":e.handleSelectCheck,onClick:t[1]||(t[1]=ct(()=>{},["stop"]))},{default:be(()=>[Ae(` + Add an empty element to avoid render label, + do not use empty fragment here for https://github.com/vuejs/vue-next/pull/2485 + `),hAe]),_:1},8,["model-value","label","disabled","onUpdate:modelValue"])):e.isLeaf&&e.node.checked?(k(),Me(u,{key:2,class:W(e.ns.e("prefix"))},{default:be(()=>[me(l)]),_:1},8,["class"])):Ae("v-if",!0),Ae(" content "),me(c),Ae(" postfix "),e.isLeaf?Ae("v-if",!0):(k(),D(Ze,{key:3},[e.node.loading?(k(),Me(u,{key:0,class:W([e.ns.is("loading"),e.ns.e("postfix")])},{default:be(()=>[me(d)]),_:1},8,["class"])):(k(),Me(u,{key:1,class:W(["arrow-right",e.ns.e("postfix")])},{default:be(()=>[me(f)]),_:1},8,["class"]))],64))],42,pAe)}var vAe=Fe(fAe,[["render",mAe],["__file","/home/runner/work/element-plus/element-plus/packages/components/cascader-panel/src/node.vue"]]);const gAe=Ce({name:"ElCascaderMenu",components:{Loading:pa,ElIcon:et,ElScrollbar:_a,ElCascaderNode:vAe},props:{nodes:{type:Array,required:!0},index:{type:Number,required:!0}},setup(e){const t=gt(),n=De("cascader-menu"),{t:r}=Vt(),o=sm();let s=null,a=null;const i=Ye(Tb),l=ee(null),u=z(()=>!e.nodes.length),c=z(()=>!i.initialLoaded),d=z(()=>`cascader-menu-${o}-${e.index}`),f=g=>{s=g.target},p=g=>{if(!(!i.isHoverMenu||!s||!l.value))if(s.contains(g.target)){m();const b=t.vnode.el,{left:_}=b.getBoundingClientRect(),{offsetWidth:y,offsetHeight:S}=b,w=g.clientX-_,E=s.offsetTop,T=E+s.offsetHeight;l.value.innerHTML=` + + + `}else a||(a=window.setTimeout(v,i.config.hoverThreshold))},m=()=>{a&&(clearTimeout(a),a=null)},v=()=>{l.value&&(l.value.innerHTML="",m())};return{ns:n,panel:i,hoverZone:l,isEmpty:u,isLoading:c,menuId:d,t:r,handleExpand:f,handleMouseMove:p,clearHoverZone:v}}});function _Ae(e,t,n,r,o,s){const a=rt("el-cascader-node"),i=rt("loading"),l=rt("el-icon"),u=rt("el-scrollbar");return k(),Me(u,{key:e.menuId,tag:"ul",role:"menu",class:W(e.ns.b()),"wrap-class":e.ns.e("wrap"),"view-class":[e.ns.e("list"),e.ns.is("empty",e.isEmpty)],onMousemove:e.handleMouseMove,onMouseleave:e.clearHoverZone},{default:be(()=>{var c;return[(k(!0),D(Ze,null,At(e.nodes,d=>(k(),Me(a,{key:d.uid,node:d,"menu-id":e.menuId,onExpand:e.handleExpand},null,8,["node","menu-id","onExpand"]))),128)),e.isLoading?(k(),D("div",{key:0,class:W(e.ns.e("empty-text"))},[me(l,{size:"14",class:W(e.ns.is("loading"))},{default:be(()=>[me(i)]),_:1},8,["class"]),Ot(" "+ze(e.t("el.cascader.loading")),1)],2)):e.isEmpty?(k(),D("div",{key:1,class:W(e.ns.e("empty-text"))},ze(e.t("el.cascader.noData")),3)):(c=e.panel)!=null&&c.isHoverMenu?(k(),D("svg",{key:2,ref:"hoverZone",class:W(e.ns.e("hover-zone"))},null,2)):Ae("v-if",!0)]}),_:1},8,["class","wrap-class","view-class","onMousemove","onMouseleave"])}var yAe=Fe(gAe,[["render",_Ae],["__file","/home/runner/work/element-plus/element-plus/packages/components/cascader-panel/src/menu.vue"]]);let bAe=0;const wAe=e=>{const t=[e];let{parent:n}=e;for(;n;)t.unshift(n),n=n.parent;return t};let C1=class k1{constructor(t,n,r,o=!1){this.data=t,this.config=n,this.parent=r,this.root=o,this.uid=bAe++,this.checked=!1,this.indeterminate=!1,this.loading=!1;const{value:s,label:a,children:i}=n,l=t[i],u=wAe(this);this.level=o?0:r?r.level+1:1,this.value=t[s],this.label=t[a],this.pathNodes=u,this.pathValues=u.map(c=>c.value),this.pathLabels=u.map(c=>c.label),this.childrenData=l,this.children=(l||[]).map(c=>new k1(c,n,this)),this.loaded=!n.lazy||this.isLeaf||!co(l)}get isDisabled(){const{data:t,parent:n,config:r}=this,{disabled:o,checkStrictly:s}=r;return(at(o)?o(t,this):!!t[o])||!s&&(n==null?void 0:n.isDisabled)}get isLeaf(){const{data:t,config:n,childrenData:r,loaded:o}=this,{lazy:s,leaf:a}=n,i=at(a)?a(t,this):t[a];return Gn(i)?s&&!o?!1:!(Array.isArray(r)&&r.length):!!i}get valueByOption(){return this.config.emitPath?this.pathValues:this.value}appendChild(t){const{childrenData:n,children:r}=this,o=new k1(t,this.config,this);return Array.isArray(n)?n.push(t):this.childrenData=[t],r.push(o),o}calcText(t,n){const r=t?this.pathLabels.join(n):this.label;return this.text=r,r}broadcast(t,...n){const r=`onParent${ts(t)}`;this.children.forEach(o=>{o&&(o.broadcast(t,...n),o[r]&&o[r](...n))})}emit(t,...n){const{parent:r}=this,o=`onChild${ts(t)}`;r&&(r[o]&&r[o](...n),r.emit(t,...n))}onParentCheck(t){this.isDisabled||this.setCheckState(t)}onChildCheck(){const{children:t}=this,n=t.filter(o=>!o.isDisabled),r=n.length?n.every(o=>o.checked):!1;this.setCheckState(r)}setCheckState(t){const n=this.children.length,r=this.children.reduce((o,s)=>{const a=s.checked?1:s.indeterminate?.5:0;return o+a},0);this.checked=this.loaded&&this.children.filter(o=>!o.isDisabled).every(o=>o.loaded&&o.checked)&&t,this.indeterminate=this.loaded&&r!==n&&r>0}doCheck(t){if(this.checked===t)return;const{checkStrictly:n,multiple:r}=this.config;n||!r?this.checked=t:(this.broadcast("check",t),this.setCheckState(t),this.emit("check"))}};const T1=(e,t)=>e.reduce((n,r)=>(r.isLeaf?n.push(r):(!t&&n.push(r),n=n.concat(T1(r.children,t))),n),[]);class DS{constructor(t,n){this.config=n;const r=(t||[]).map(o=>new C1(o,this.config));this.nodes=r,this.allNodes=T1(r,!1),this.leafNodes=T1(r,!0)}getNodes(){return this.nodes}getFlattedNodes(t){return t?this.leafNodes:this.allNodes}appendNode(t,n){const r=n?n.appendChild(t):new C1(t,this.config);n||this.nodes.push(r),this.allNodes.push(r),r.isLeaf&&this.leafNodes.push(r)}appendNodes(t,n){t.forEach(r=>this.appendNode(r,n))}getNodeByValue(t,n=!1){return!t&&t!==0?null:this.getFlattedNodes(n).find(o=>to(o.value,t)||to(o.pathValues,t))||null}getSameNode(t){return t&&this.getFlattedNodes(!1).find(({value:r,level:o})=>to(t.value,r)&&t.level===o)||null}}const nA={modelValue:[Number,String,Array],options:{type:Array,default:()=>[]},props:{type:Object,default:()=>({})}},SAe={expandTrigger:"click",multiple:!1,checkStrictly:!1,emitPath:!0,lazy:!1,lazyLoad:Kt,value:"value",label:"label",children:"children",leaf:"leaf",disabled:"disabled",hoverThreshold:500},EAe=e=>z(()=>({...SAe,...e.props})),zS=e=>{if(!e)return 0;const t=e.id.split("-");return Number(t[t.length-2])},CAe=e=>{if(!e)return;const t=e.querySelector("input");t?t.click():Ox(e)&&e.click()},kAe=(e,t)=>{const n=t.slice(0),r=n.map(s=>s.uid),o=e.reduce((s,a)=>{const i=r.indexOf(a.uid);return i>-1&&(s.push(a),n.splice(i,1),r.splice(i,1)),s},[]);return o.push(...n),o},TAe=Ce({name:"ElCascaderPanel",components:{ElCascaderMenu:yAe},props:{...nA,border:{type:Boolean,default:!0},renderLabel:Function},emits:[Et,un,"close","expand-change"],setup(e,{emit:t,slots:n}){let r=!1;const o=De("cascader"),s=EAe(e);let a=null;const i=ee(!0),l=ee([]),u=ee(null),c=ee([]),d=ee(null),f=ee([]),p=z(()=>s.value.expandTrigger==="hover"),m=z(()=>e.renderLabel||n.default),v=()=>{const{options:I}=e,L=s.value;r=!1,a=new DS(I,L),c.value=[a.getNodes()],L.lazy&&co(e.options)?(i.value=!1,g(void 0,F=>{F&&(a=new DS(F,L),c.value=[a.getNodes()]),i.value=!0,C(!1,!0)})):C(!1,!0)},g=(I,L)=>{const F=s.value;I=I||new C1({},F,void 0,!0),I.loading=!0;const B=U=>{const P=I,O=P.root?null:P;U&&(a==null||a.appendNodes(U,O)),P.loading=!1,P.loaded=!0,P.childrenData=P.childrenData||[],L&&L(U)};F.lazyLoad(I,B)},b=(I,L)=>{var F;const{level:B}=I,U=c.value.slice(0,B);let P;I.isLeaf?P=I.pathNodes[B-2]:(P=I,U.push(I.children)),((F=d.value)==null?void 0:F.uid)!==(P==null?void 0:P.uid)&&(d.value=I,c.value=U,!L&&t("expand-change",(I==null?void 0:I.pathValues)||[]))},_=(I,L,F=!0)=>{const{checkStrictly:B,multiple:U}=s.value,P=f.value[0];r=!0,!U&&(P==null||P.doCheck(!1)),I.doCheck(L),T(),F&&!U&&!B&&t("close"),!F&&!U&&!B&&y(I)},y=I=>{I&&(I=I.parent,y(I),I&&b(I))},S=I=>a==null?void 0:a.getFlattedNodes(I),w=I=>{var L;return(L=S(I))==null?void 0:L.filter(F=>F.checked!==!1)},E=()=>{f.value.forEach(I=>I.doCheck(!1)),T()},T=()=>{var I;const{checkStrictly:L,multiple:F}=s.value,B=f.value,U=w(!L),P=kAe(B,U),O=P.map(H=>H.valueByOption);f.value=P,u.value=F?O:(I=O[0])!=null?I:null},C=(I=!1,L=!1)=>{const{modelValue:F}=e,{lazy:B,multiple:U,checkStrictly:P}=s.value,O=!P;if(!(!i.value||r||!L&&to(F,u.value)))if(B&&!I){const q=U8(uQ(js(F))).map(te=>a==null?void 0:a.getNodeByValue(te)).filter(te=>!!te&&!te.loaded&&!te.loading);q.length?q.forEach(te=>{g(te,()=>C(!1,L))}):C(!0,L)}else{const H=U?js(F):[F],q=U8(H.map(te=>a==null?void 0:a.getNodeByValue(te,O)));$(q,L),u.value=Cx(F)}},$=(I,L=!0)=>{const{checkStrictly:F}=s.value,B=f.value,U=I.filter(H=>!!H&&(F||H.isLeaf)),P=a==null?void 0:a.getSameNode(d.value),O=L&&P||U[0];O?O.pathNodes.forEach(H=>b(H,!0)):d.value=null,B.forEach(H=>H.doCheck(!1)),U.forEach(H=>H.doCheck(!0)),f.value=U,Xe(x)},x=()=>{Pt&&l.value.forEach(I=>{const L=I==null?void 0:I.$el;if(L){const F=L.querySelector(`.${o.namespace.value}-scrollbar__wrap`),B=L.querySelector(`.${o.b("node")}.${o.is("active")}`)||L.querySelector(`.${o.b("node")}.in-active-path`);Fx(F,B)}})},N=I=>{const L=I.target,{code:F}=I;switch(F){case ot.up:case ot.down:{I.preventDefault();const B=F===ot.up?-1:1;_p(Rx(L,B,`.${o.b("node")}[tabindex="-1"]`));break}case ot.left:{I.preventDefault();const B=l.value[zS(L)-1],U=B==null?void 0:B.$el.querySelector(`.${o.b("node")}[aria-expanded="true"]`);_p(U);break}case ot.right:{I.preventDefault();const B=l.value[zS(L)+1],U=B==null?void 0:B.$el.querySelector(`.${o.b("node")}[tabindex="-1"]`);_p(U);break}case ot.enter:CAe(L);break}};return Ct(Tb,Ht({config:s,expandingNode:d,checkedNodes:f,isHoverMenu:p,initialLoaded:i,renderLabelFn:m,lazyLoad:g,expandNode:b,handleCheckChange:_})),Be([s,()=>e.options],v,{deep:!0,immediate:!0}),Be(()=>e.modelValue,()=>{r=!1,C()},{deep:!0}),Be(()=>u.value,I=>{to(I,e.modelValue)||(t(Et,I),t(un,I))}),Ay(()=>l.value=[]),vt(()=>!co(e.modelValue)&&C()),{ns:o,menuList:l,menus:c,checkedNodes:f,handleKeyDown:N,handleCheckChange:_,getFlattedNodes:S,getCheckedNodes:w,clearCheckedNodes:E,calculateCheckedValue:T,scrollToExpandingNode:x}}});function $Ae(e,t,n,r,o,s){const a=rt("el-cascader-menu");return k(),D("div",{class:W([e.ns.b("panel"),e.ns.is("bordered",e.border)]),onKeydown:t[0]||(t[0]=(...i)=>e.handleKeyDown&&e.handleKeyDown(...i))},[(k(!0),D(Ze,null,At(e.menus,(i,l)=>(k(),Me(a,{key:l,ref_for:!0,ref:u=>e.menuList[l]=u,index:l,nodes:[...i]},null,8,["index","nodes"]))),128))],34)}var kp=Fe(TAe,[["render",$Ae],["__file","/home/runner/work/element-plus/element-plus/packages/components/cascader-panel/src/index.vue"]]);kp.install=e=>{e.component(kp.name,kp)};const rA=kp,xAe=rA,$b=He({closable:Boolean,type:{type:String,values:["success","info","warning","danger",""],default:""},hit:Boolean,disableTransitions:Boolean,color:{type:String,default:""},size:{type:String,values:ha,default:""},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),IAe={close:e=>e instanceof MouseEvent,click:e=>e instanceof MouseEvent},AAe=Ce({name:"ElTag"}),MAe=Ce({...AAe,props:$b,emits:IAe,setup(e,{emit:t}){const n=e,r=Ln(),o=De("tag"),s=z(()=>{const{type:l,hit:u,effect:c,closable:d,round:f}=n;return[o.b(),o.is("closable",d),o.m(l),o.m(r.value),o.m(c),o.is("hit",u),o.is("round",f)]}),a=l=>{t("close",l)},i=l=>{t("click",l)};return(l,u)=>l.disableTransitions?(k(),D("span",{key:0,class:W(h(s)),style:Je({backgroundColor:l.color}),onClick:i},[R("span",{class:W(h(o).e("content"))},[Pe(l.$slots,"default")],2),l.closable?(k(),Me(h(et),{key:0,class:W(h(o).e("close")),onClick:ct(a,["stop"])},{default:be(()=>[me(h(wo))]),_:1},8,["class","onClick"])):Ae("v-if",!0)],6)):(k(),Me(xn,{key:1,name:`${h(o).namespace.value}-zoom-in-center`,appear:""},{default:be(()=>[R("span",{class:W(h(s)),style:Je({backgroundColor:l.color}),onClick:i},[R("span",{class:W(h(o).e("content"))},[Pe(l.$slots,"default")],2),l.closable?(k(),Me(h(et),{key:0,class:W(h(o).e("close")),onClick:ct(a,["stop"])},{default:be(()=>[me(h(wo))]),_:1},8,["class","onClick"])):Ae("v-if",!0)],6)]),_:3},8,["name"]))}});var OAe=Fe(MAe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tag/src/tag.vue"]]);const gm=St(OAe),RAe={modifiers:[{name:"arrowPosition",enabled:!0,phase:"main",fn:({state:e})=>{const{modifiersData:t,placement:n}=e;["right","left","bottom","top"].includes(n)||(t.arrow.x=35)},requires:["arrow"]}]},PAe="ElCascader",NAe=Ce({name:PAe,components:{ElCascaderPanel:rA,ElInput:mr,ElTooltip:Ur,ElScrollbar:_a,ElTag:gm,ElIcon:et,CircleClose:fa,Check:Qu,ArrowDown:da},directives:{Clickoutside:ai},props:{...nA,size:{type:String,validator:Zu},placeholder:{type:String},disabled:Boolean,clearable:Boolean,filterable:Boolean,filterMethod:{type:Function,default:(e,t)=>e.text.includes(t)},separator:{type:String,default:" / "},showAllLevels:{type:Boolean,default:!0},collapseTags:Boolean,collapseTagsTooltip:{type:Boolean,default:!1},debounce:{type:Number,default:300},beforeFilter:{type:Function,default:()=>!0},popperClass:{type:String,default:""},teleported:Kn.teleported,tagType:{...$b.type,default:"info"},validateEvent:{type:Boolean,default:!0}},emits:[Et,un,"focus","blur","visible-change","expand-change","remove-tag"],setup(e,{emit:t}){let n=0,r=0;const o=De("cascader"),s=De("input"),{t:a}=Vt(),{form:i,formItem:l}=xr(),u=ee(null),c=ee(null),d=ee(null),f=ee(null),p=ee(null),m=ee(!1),v=ee(!1),g=ee(!1),b=ee(""),_=ee(""),y=ee([]),S=ee([]),w=ee([]),E=ee(!1),T=z(()=>e.disabled||(i==null?void 0:i.disabled)),C=z(()=>e.placeholder||a("el.cascader.placeholder")),$=z(()=>_.value||y.value.length>0?"":C.value),x=Ln(),N=z(()=>["small"].includes(x.value)?"small":"default"),I=z(()=>!!e.props.multiple),L=z(()=>!e.filterable||I.value),F=z(()=>I.value?_.value:b.value),B=z(()=>{var pe;return((pe=f.value)==null?void 0:pe.checkedNodes)||[]}),U=z(()=>!e.clearable||T.value||g.value||!v.value?!1:!!B.value.length),P=z(()=>{const{showAllLevels:pe,separator:re}=e,fe=B.value;return fe.length?I.value?"":fe[0].calcText(pe,re):""}),O=z({get(){return Cx(e.modelValue)},set(pe){t(Et,pe),t(un,pe),e.validateEvent&&(l==null||l.validate("change").catch(re=>void 0))}}),H=z(()=>{var pe,re;return(re=(pe=u.value)==null?void 0:pe.popperRef)==null?void 0:re.contentRef}),q=pe=>{var re,fe,Te;T.value||(pe=pe??!m.value,pe!==m.value&&(m.value=pe,(fe=(re=c.value)==null?void 0:re.input)==null||fe.setAttribute("aria-expanded",`${pe}`),pe?(te(),Xe((Te=f.value)==null?void 0:Te.scrollToExpandingNode)):e.filterable&&ce(),t("visible-change",pe)))},te=()=>{Xe(()=>{var pe;(pe=u.value)==null||pe.updatePopper()})},V=()=>{g.value=!1},Q=pe=>{const{showAllLevels:re,separator:fe}=e;return{node:pe,key:pe.uid,text:pe.calcText(re,fe),hitState:!1,closable:!T.value&&!pe.isDisabled,isCollapseTag:!1}},ge=pe=>{var re;const fe=pe.node;fe.doCheck(!1),(re=f.value)==null||re.calculateCheckedValue(),t("remove-tag",fe.valueByOption)},ie=()=>{if(!I.value)return;const pe=B.value,re=[],fe=[];if(pe.forEach(Te=>fe.push(Q(Te))),S.value=fe,pe.length){const[Te,...$e]=pe,Le=$e.length;re.push(Q(Te)),Le&&(e.collapseTags?re.push({key:-1,text:`+ ${Le}`,closable:!1,isCollapseTag:!0}):$e.forEach(A=>re.push(Q(A))))}y.value=re},ke=()=>{var pe,re;const{filterMethod:fe,showAllLevels:Te,separator:$e}=e,Le=(re=(pe=f.value)==null?void 0:pe.getFlattedNodes(!e.props.checkStrictly))==null?void 0:re.filter(A=>A.isDisabled?!1:(A.calcText(Te,$e),fe(A,F.value)));I.value&&(y.value.forEach(A=>{A.hitState=!1}),S.value.forEach(A=>{A.hitState=!1})),g.value=!0,w.value=Le,te()},Y=()=>{var pe;let re;g.value&&p.value?re=p.value.$el.querySelector(`.${o.e("suggestion-item")}`):re=(pe=f.value)==null?void 0:pe.$el.querySelector(`.${o.b("node")}[tabindex="-1"]`),re&&(re.focus(),!g.value&&re.click())},K=()=>{var pe,re;const fe=(pe=c.value)==null?void 0:pe.input,Te=d.value,$e=(re=p.value)==null?void 0:re.$el;if(!(!Pt||!fe)){if($e){const Le=$e.querySelector(`.${o.e("suggestion-list")}`);Le.style.minWidth=`${fe.offsetWidth}px`}if(Te){const{offsetHeight:Le}=Te,A=y.value.length>0?`${Math.max(Le+6,n)}px`:`${n}px`;fe.style.height=A,te()}}},se=pe=>{var re;return(re=f.value)==null?void 0:re.getCheckedNodes(pe)},ne=pe=>{te(),t("expand-change",pe)},ve=pe=>{var re;const fe=(re=pe.target)==null?void 0:re.value;if(pe.type==="compositionend")E.value=!1,Xe(()=>ye(fe));else{const Te=fe[fe.length-1]||"";E.value=!rm(Te)}},J=pe=>{if(!E.value)switch(pe.code){case ot.enter:q();break;case ot.down:q(!0),Xe(Y),pe.preventDefault();break;case ot.esc:m.value===!0&&(pe.preventDefault(),pe.stopPropagation(),q(!1));break;case ot.tab:q(!1);break}},ae=()=>{var pe;(pe=f.value)==null||pe.clearCheckedNodes(),!m.value&&e.filterable&&ce(),q(!1)},ce=()=>{const{value:pe}=P;b.value=pe,_.value=pe},oe=pe=>{var re,fe;const{checked:Te}=pe;I.value?(re=f.value)==null||re.handleCheckChange(pe,!Te,!1):(!Te&&((fe=f.value)==null||fe.handleCheckChange(pe,!0,!1)),q(!1))},he=pe=>{const re=pe.target,{code:fe}=pe;switch(fe){case ot.up:case ot.down:{const Te=fe===ot.up?-1:1;_p(Rx(re,Te,`.${o.e("suggestion-item")}[tabindex="-1"]`));break}case ot.enter:re.click();break}},le=()=>{const pe=y.value,re=pe[pe.length-1];r=_.value?0:r+1,!(!re||!r||e.collapseTags&&pe.length>1)&&(re.hitState?ge(re):re.hitState=!0)},Ee=$r(()=>{const{value:pe}=F;if(!pe)return;const re=e.beforeFilter(pe);sd(re)?re.then(ke).catch(()=>{}):re!==!1?ke():V()},e.debounce),ye=(pe,re)=>{!m.value&&q(!0),!(re!=null&&re.isComposing)&&(pe?Ee():V())};return Be(g,te),Be([B,T],ie),Be(y,()=>{Xe(()=>K())}),Be(P,ce,{immediate:!0}),vt(()=>{const pe=c.value.input,re=Number.parseFloat(FQ(s.cssVarName("input-height"),pe).value)-2;n=pe.offsetHeight||re,gr(pe,K)}),{popperOptions:RAe,tooltipRef:u,popperPaneRef:H,input:c,tagWrapper:d,panel:f,suggestionPanel:p,popperVisible:m,inputHover:v,inputPlaceholder:C,currentPlaceholder:$,filtering:g,presentText:P,checkedValue:O,inputValue:b,searchInputValue:_,presentTags:y,allPresentTags:S,suggestions:w,isDisabled:T,isOnComposition:E,realSize:x,tagSize:N,multiple:I,readonly:L,clearBtnVisible:U,nsCascader:o,nsInput:s,t:a,togglePopperVisible:q,hideSuggestionPanel:V,deleteTag:ge,focusFirstNode:Y,getCheckedNodes:se,handleExpandChange:ne,handleKeyDown:J,handleComposition:ve,handleClear:ae,handleSuggestionClick:oe,handleSuggestionKeyDown:he,handleDelete:le,handleInput:ye}}}),LAe={key:0},BAe=["placeholder"],DAe=["onClick"];function zAe(e,t,n,r,o,s){const a=rt("circle-close"),i=rt("el-icon"),l=rt("arrow-down"),u=rt("el-input"),c=rt("el-tag"),d=rt("el-tooltip"),f=rt("el-cascader-panel"),p=rt("check"),m=rt("el-scrollbar"),v=Za("clickoutside");return k(),Me(d,{ref:"tooltipRef",visible:e.popperVisible,teleported:e.teleported,"popper-class":[e.nsCascader.e("dropdown"),e.popperClass],"popper-options":e.popperOptions,"fallback-placements":["bottom-start","bottom","top-start","top","right","left"],"stop-popper-mouse-event":!1,"gpu-acceleration":!1,placement:"bottom-start",transition:`${e.nsCascader.namespace.value}-zoom-in-top`,effect:"light",pure:"",persistent:"",onHide:e.hideSuggestionPanel},{default:be(()=>[mt((k(),D("div",{class:W([e.nsCascader.b(),e.nsCascader.m(e.realSize),e.nsCascader.is("disabled",e.isDisabled),e.$attrs.class]),style:Je(e.$attrs.style),onClick:t[11]||(t[11]=()=>e.togglePopperVisible(e.readonly?void 0:!0)),onKeydown:t[12]||(t[12]=(...g)=>e.handleKeyDown&&e.handleKeyDown(...g)),onMouseenter:t[13]||(t[13]=g=>e.inputHover=!0),onMouseleave:t[14]||(t[14]=g=>e.inputHover=!1)},[me(u,{ref:"input",modelValue:e.inputValue,"onUpdate:modelValue":t[1]||(t[1]=g=>e.inputValue=g),placeholder:e.currentPlaceholder,readonly:e.readonly,disabled:e.isDisabled,"validate-event":!1,size:e.realSize,class:W(e.nsCascader.is("focus",e.popperVisible)),onCompositionstart:e.handleComposition,onCompositionupdate:e.handleComposition,onCompositionend:e.handleComposition,onFocus:t[2]||(t[2]=g=>e.$emit("focus",g)),onBlur:t[3]||(t[3]=g=>e.$emit("blur",g)),onInput:e.handleInput},{suffix:be(()=>[e.clearBtnVisible?(k(),Me(i,{key:"clear",class:W([e.nsInput.e("icon"),"icon-circle-close"]),onClick:ct(e.handleClear,["stop"])},{default:be(()=>[me(a)]),_:1},8,["class","onClick"])):(k(),Me(i,{key:"arrow-down",class:W([e.nsInput.e("icon"),"icon-arrow-down",e.nsCascader.is("reverse",e.popperVisible)]),onClick:t[0]||(t[0]=ct(g=>e.togglePopperVisible(),["stop"]))},{default:be(()=>[me(l)]),_:1},8,["class"]))]),_:1},8,["modelValue","placeholder","readonly","disabled","size","class","onCompositionstart","onCompositionupdate","onCompositionend","onInput"]),e.multiple?(k(),D("div",{key:0,ref:"tagWrapper",class:W(e.nsCascader.e("tags"))},[(k(!0),D(Ze,null,At(e.presentTags,g=>(k(),Me(c,{key:g.key,type:e.tagType,size:e.tagSize,hit:g.hitState,closable:g.closable,"disable-transitions":"",onClose:b=>e.deleteTag(g)},{default:be(()=>[g.isCollapseTag===!1?(k(),D("span",LAe,ze(g.text),1)):(k(),Me(d,{key:1,disabled:e.popperVisible||!e.collapseTagsTooltip,"fallback-placements":["bottom","top","right","left"],placement:"bottom",effect:"light"},{default:be(()=>[R("span",null,ze(g.text),1)]),content:be(()=>[R("div",{class:W(e.nsCascader.e("collapse-tags"))},[(k(!0),D(Ze,null,At(e.allPresentTags.slice(1),(b,_)=>(k(),D("div",{key:_,class:W(e.nsCascader.e("collapse-tag"))},[(k(),Me(c,{key:b.key,class:"in-tooltip",type:e.tagType,size:e.tagSize,hit:b.hitState,closable:b.closable,"disable-transitions":"",onClose:y=>e.deleteTag(b)},{default:be(()=>[R("span",null,ze(b.text),1)]),_:2},1032,["type","size","hit","closable","onClose"]))],2))),128))],2)]),_:2},1032,["disabled"]))]),_:2},1032,["type","size","hit","closable","onClose"]))),128)),e.filterable&&!e.isDisabled?mt((k(),D("input",{key:0,"onUpdate:modelValue":t[4]||(t[4]=g=>e.searchInputValue=g),type:"text",class:W(e.nsCascader.e("search-input")),placeholder:e.presentText?"":e.inputPlaceholder,onInput:t[5]||(t[5]=g=>e.handleInput(e.searchInputValue,g)),onClick:t[6]||(t[6]=ct(g=>e.togglePopperVisible(!0),["stop"])),onKeydown:t[7]||(t[7]=Rt((...g)=>e.handleDelete&&e.handleDelete(...g),["delete"])),onCompositionstart:t[8]||(t[8]=(...g)=>e.handleComposition&&e.handleComposition(...g)),onCompositionupdate:t[9]||(t[9]=(...g)=>e.handleComposition&&e.handleComposition(...g)),onCompositionend:t[10]||(t[10]=(...g)=>e.handleComposition&&e.handleComposition(...g))},null,42,BAe)),[[I0,e.searchInputValue]]):Ae("v-if",!0)],2)):Ae("v-if",!0)],38)),[[v,()=>e.togglePopperVisible(!1),e.popperPaneRef]])]),content:be(()=>[mt(me(f,{ref:"panel",modelValue:e.checkedValue,"onUpdate:modelValue":t[15]||(t[15]=g=>e.checkedValue=g),options:e.options,props:e.props,border:!1,"render-label":e.$slots.default,onExpandChange:e.handleExpandChange,onClose:t[16]||(t[16]=g=>e.$nextTick(()=>e.togglePopperVisible(!1)))},null,8,["modelValue","options","props","render-label","onExpandChange"]),[[zt,!e.filtering]]),e.filterable?mt((k(),Me(m,{key:0,ref:"suggestionPanel",tag:"ul",class:W(e.nsCascader.e("suggestion-panel")),"view-class":e.nsCascader.e("suggestion-list"),onKeydown:e.handleSuggestionKeyDown},{default:be(()=>[e.suggestions.length?(k(!0),D(Ze,{key:0},At(e.suggestions,g=>(k(),D("li",{key:g.uid,class:W([e.nsCascader.e("suggestion-item"),e.nsCascader.is("checked",g.checked)]),tabindex:-1,onClick:b=>e.handleSuggestionClick(g)},[R("span",null,ze(g.text),1),g.checked?(k(),Me(i,{key:0},{default:be(()=>[me(p)]),_:1})):Ae("v-if",!0)],10,DAe))),128)):Pe(e.$slots,"empty",{key:1},()=>[R("li",{class:W(e.nsCascader.e("empty-text"))},ze(e.t("el.cascader.noMatch")),3)])]),_:3},8,["class","view-class","onKeydown"])),[[zt,e.filtering]]):Ae("v-if",!0)]),_:3},8,["visible","teleported","popper-class","popper-options","transition","onHide"])}var Tp=Fe(NAe,[["render",zAe],["__file","/home/runner/work/element-plus/element-plus/packages/components/cascader/src/index.vue"]]);Tp.install=e=>{e.component(Tp.name,Tp)};const FAe=Tp,HAe=FAe,VAe=He({checked:{type:Boolean,default:!1}}),jAe={"update:checked":e=>Dn(e),[un]:e=>Dn(e)},UAe=Ce({name:"ElCheckTag"}),WAe=Ce({...UAe,props:VAe,emits:jAe,setup(e,{emit:t}){const n=e,r=De("check-tag"),o=()=>{const s=!n.checked;t(un,s),t("update:checked",s)};return(s,a)=>(k(),D("span",{class:W([h(r).b(),h(r).is("checked",s.checked)]),onClick:o},[Pe(s.$slots,"default")],2))}});var qAe=Fe(WAe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/check-tag/src/check-tag.vue"]]);const KAe=St(qAe),GAe=He({tag:{type:String,default:"div"},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:Re([Number,Object]),default:()=>hn({})},sm:{type:Re([Number,Object]),default:()=>hn({})},md:{type:Re([Number,Object]),default:()=>hn({})},lg:{type:Re([Number,Object]),default:()=>hn({})},xl:{type:Re([Number,Object]),default:()=>hn({})}}),YAe=Ce({name:"ElCol"}),XAe=Ce({...YAe,props:GAe,setup(e){const t=e,{gutter:n}=Ye(b7,{gutter:z(()=>0)}),r=De("col"),o=z(()=>{const a={};return n.value&&(a.paddingLeft=a.paddingRight=`${n.value/2}px`),a}),s=z(()=>{const a=[];return["span","offset","pull","push"].forEach(u=>{const c=t[u];dt(c)&&(u==="span"?a.push(r.b(`${t[u]}`)):c>0&&a.push(r.b(`${u}-${t[u]}`)))}),["xs","sm","md","lg","xl"].forEach(u=>{dt(t[u])?a.push(r.b(`${u}-${t[u]}`)):xt(t[u])&&Object.entries(t[u]).forEach(([c,d])=>{a.push(c!=="span"?r.b(`${u}-${c}-${d}`):r.b(`${u}-${d}`))})}),n.value&&a.push(r.is("guttered")),[r.b(),a]});return(a,i)=>(k(),Me(kt(a.tag),{class:W(h(s)),style:Je(h(o))},{default:be(()=>[Pe(a.$slots,"default")]),_:3},8,["class","style"]))}});var JAe=Fe(XAe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/col/src/col.vue"]]);const QAe=St(JAe),FS=e=>typeof dt(e),ZAe=He({accordion:Boolean,modelValue:{type:Re([Array,String,Number]),default:()=>hn([])}}),eMe={[Et]:FS,[un]:FS},tMe=(e,t)=>{const n=ee(bu(e.modelValue)),r=s=>{n.value=s;const a=e.accordion?n.value[0]:n.value;t(Et,a),t(un,a)},o=s=>{if(e.accordion)r([n.value[0]===s?"":s]);else{const a=[...n.value],i=a.indexOf(s);i>-1?a.splice(i,1):a.push(s),r(a)}};return Be(()=>e.modelValue,()=>n.value=bu(e.modelValue),{deep:!0}),Ct(m7,{activeNames:n,handleItemClick:o}),{activeNames:n,setActiveNames:r}},nMe=()=>{const e=De("collapse");return{rootKls:z(()=>e.b())}},rMe=Ce({name:"ElCollapse"}),oMe=Ce({...rMe,props:ZAe,emits:eMe,setup(e,{expose:t,emit:n}){const r=e,{activeNames:o,setActiveNames:s}=tMe(r,n),{rootKls:a}=nMe();return t({activeNames:o,setActiveNames:s}),(i,l)=>(k(),D("div",{class:W(h(a)),role:"tablist","aria-multiselectable":"true"},[Pe(i.$slots,"default")],2))}});var sMe=Fe(oMe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/collapse/src/collapse.vue"]]);const aMe=Ce({name:"ElCollapseTransition"}),iMe=Ce({...aMe,setup(e){const t=De("collapse-transition"),n={beforeEnter(r){r.dataset||(r.dataset={}),r.dataset.oldPaddingTop=r.style.paddingTop,r.dataset.oldPaddingBottom=r.style.paddingBottom,r.style.maxHeight=0,r.style.paddingTop=0,r.style.paddingBottom=0},enter(r){r.dataset.oldOverflow=r.style.overflow,r.scrollHeight!==0?(r.style.maxHeight=`${r.scrollHeight}px`,r.style.paddingTop=r.dataset.oldPaddingTop,r.style.paddingBottom=r.dataset.oldPaddingBottom):(r.style.maxHeight=0,r.style.paddingTop=r.dataset.oldPaddingTop,r.style.paddingBottom=r.dataset.oldPaddingBottom),r.style.overflow="hidden"},afterEnter(r){r.style.maxHeight="",r.style.overflow=r.dataset.oldOverflow},beforeLeave(r){r.dataset||(r.dataset={}),r.dataset.oldPaddingTop=r.style.paddingTop,r.dataset.oldPaddingBottom=r.style.paddingBottom,r.dataset.oldOverflow=r.style.overflow,r.style.maxHeight=`${r.scrollHeight}px`,r.style.overflow="hidden"},leave(r){r.scrollHeight!==0&&(r.style.maxHeight=0,r.style.paddingTop=0,r.style.paddingBottom=0)},afterLeave(r){r.style.maxHeight="",r.style.overflow=r.dataset.oldOverflow,r.style.paddingTop=r.dataset.oldPaddingTop,r.style.paddingBottom=r.dataset.oldPaddingBottom}};return(r,o)=>(k(),Me(xn,$t({name:h(t).b()},L9(n)),{default:be(()=>[Pe(r.$slots,"default")]),_:3},16,["name"]))}});var $p=Fe(iMe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/collapse-transition/src/collapse-transition.vue"]]);$p.install=e=>{e.component($p.name,$p)};const _m=$p,lMe=_m,uMe=He({title:{type:String,default:""},name:{type:Re([String,Number]),default:()=>sm()},disabled:Boolean}),cMe=e=>{const t=Ye(m7),n=ee(!1),r=ee(!1),o=ee(sm()),s=z(()=>t==null?void 0:t.activeNames.value.includes(e.name));return{focusing:n,id:o,isActive:s,handleFocus:()=>{setTimeout(()=>{r.value?r.value=!1:n.value=!0},50)},handleHeaderClick:()=>{e.disabled||(t==null||t.handleItemClick(e.name),n.value=!1,r.value=!0)},handleEnterClick:()=>{t==null||t.handleItemClick(e.name)}}},dMe=(e,{focusing:t,isActive:n,id:r})=>{const o=De("collapse"),s=z(()=>[o.b("item"),o.is("active",h(n)),o.is("disabled",e.disabled)]),a=z(()=>[o.be("item","header"),o.is("active",h(n)),{focusing:h(t)&&!e.disabled}]),i=z(()=>[o.be("item","arrow"),o.is("active",h(n))]),l=z(()=>o.be("item","wrap")),u=z(()=>o.be("item","content")),c=z(()=>o.b(`content-${h(r)}`)),d=z(()=>o.b(`head-${h(r)}`));return{arrowKls:i,headKls:a,rootKls:s,itemWrapperKls:l,itemContentKls:u,scopedContentId:c,scopedHeadId:d}},fMe=["aria-expanded","aria-controls","aria-describedby"],pMe=["id","tabindex"],hMe=["id","aria-hidden","aria-labelledby"],mMe=Ce({name:"ElCollapseItem"}),vMe=Ce({...mMe,props:uMe,setup(e,{expose:t}){const n=e,{focusing:r,id:o,isActive:s,handleFocus:a,handleHeaderClick:i,handleEnterClick:l}=cMe(n),{arrowKls:u,headKls:c,rootKls:d,itemWrapperKls:f,itemContentKls:p,scopedContentId:m,scopedHeadId:v}=dMe(n,{focusing:r,isActive:s,id:o});return t({isActive:s}),(g,b)=>(k(),D("div",{class:W(h(d))},[R("div",{role:"tab","aria-expanded":h(s),"aria-controls":h(m),"aria-describedby":h(m)},[R("div",{id:h(v),class:W(h(c)),role:"button",tabindex:g.disabled?-1:0,onClick:b[0]||(b[0]=(..._)=>h(i)&&h(i)(..._)),onKeypress:b[1]||(b[1]=Rt(ct((..._)=>h(l)&&h(l)(..._),["stop","prevent"]),["space","enter"])),onFocus:b[2]||(b[2]=(..._)=>h(a)&&h(a)(..._)),onBlur:b[3]||(b[3]=_=>r.value=!1)},[Pe(g.$slots,"title",{},()=>[Ot(ze(g.title),1)]),me(h(et),{class:W(h(u))},{default:be(()=>[me(h(vr))]),_:1},8,["class"])],42,pMe)],8,fMe),me(h(_m),null,{default:be(()=>[mt(R("div",{id:h(m),class:W(h(f)),role:"tabpanel","aria-hidden":!h(s),"aria-labelledby":h(v)},[R("div",{class:W(h(p))},[Pe(g.$slots,"default")],2)],10,hMe),[[zt,h(s)]])]),_:3})],2))}});var oA=Fe(vMe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/collapse/src/collapse-item.vue"]]);const gMe=St(sMe,{CollapseItem:oA}),_Me=En(oA);let xv=!1;function Md(e,t){if(!Pt)return;const n=function(s){var a;(a=t.drag)==null||a.call(t,s)},r=function(s){var a;document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",r),document.removeEventListener("touchmove",n),document.removeEventListener("touchend",r),document.onselectstart=null,document.ondragstart=null,xv=!1,(a=t.end)==null||a.call(t,s)},o=function(s){var a;xv||(s.preventDefault(),document.onselectstart=()=>!1,document.ondragstart=()=>!1,document.addEventListener("mousemove",n),document.addEventListener("mouseup",r),document.addEventListener("touchmove",n),document.addEventListener("touchend",r),xv=!0,(a=t.start)==null||a.call(t,s))};e.addEventListener("mousedown",o),e.addEventListener("touchstart",o)}const yMe=Ce({name:"ElColorAlphaSlider",props:{color:{type:Object,required:!0},vertical:{type:Boolean,default:!1}},setup(e){const t=De("color-alpha-slider"),n=gt(),r=rn(),o=rn(),s=ee(0),a=ee(0),i=ee();Be(()=>e.color.get("alpha"),()=>{p()}),Be(()=>e.color.value,()=>{p()});function l(){if(!r.value||e.vertical)return 0;const m=n.vnode.el,v=e.color.get("alpha");return m?Math.round(v*(m.offsetWidth-r.value.offsetWidth/2)/100):0}function u(){if(!r.value)return 0;const m=n.vnode.el;if(!e.vertical)return 0;const v=e.color.get("alpha");return m?Math.round(v*(m.offsetHeight-r.value.offsetHeight/2)/100):0}function c(){if(e.color&&e.color.value){const{r:m,g:v,b:g}=e.color.toRgb();return`linear-gradient(to right, rgba(${m}, ${v}, ${g}, 0) 0%, rgba(${m}, ${v}, ${g}, 1) 100%)`}return""}function d(m){m.target!==r.value&&f(m)}function f(m){if(!o.value||!r.value)return;const g=n.vnode.el.getBoundingClientRect(),{clientX:b,clientY:_}=Y4(m);if(e.vertical){let y=_-g.top;y=Math.max(r.value.offsetHeight/2,y),y=Math.min(y,g.height-r.value.offsetHeight/2),e.color.set("alpha",Math.round((y-r.value.offsetHeight/2)/(g.height-r.value.offsetHeight)*100))}else{let y=b-g.left;y=Math.max(r.value.offsetWidth/2,y),y=Math.min(y,g.width-r.value.offsetWidth/2),e.color.set("alpha",Math.round((y-r.value.offsetWidth/2)/(g.width-r.value.offsetWidth)*100))}}function p(){s.value=l(),a.value=u(),i.value=c()}return vt(()=>{if(!o.value||!r.value)return;const m={drag:v=>{f(v)},end:v=>{f(v)}};Md(o.value,m),Md(r.value,m),p()}),{thumb:r,bar:o,thumbLeft:s,thumbTop:a,background:i,handleClick:d,update:p,ns:t}}});function bMe(e,t,n,r,o,s){return k(),D("div",{class:W([e.ns.b(),e.ns.is("vertical",e.vertical)])},[R("div",{ref:"bar",class:W(e.ns.e("bar")),style:Je({background:e.background}),onClick:t[0]||(t[0]=(...a)=>e.handleClick&&e.handleClick(...a))},null,6),R("div",{ref:"thumb",class:W(e.ns.e("thumb")),style:Je({left:e.thumbLeft+"px",top:e.thumbTop+"px"})},null,6)],2)}var wMe=Fe(yMe,[["render",bMe],["__file","/home/runner/work/element-plus/element-plus/packages/components/color-picker/src/components/alpha-slider.vue"]]);const SMe=Ce({name:"ElColorHueSlider",props:{color:{type:Object,required:!0},vertical:Boolean},setup(e){const t=De("color-hue-slider"),n=gt(),r=ee(),o=ee(),s=ee(0),a=ee(0),i=z(()=>e.color.get("hue"));Be(()=>i.value,()=>{f()});function l(p){p.target!==r.value&&u(p)}function u(p){if(!o.value||!r.value)return;const v=n.vnode.el.getBoundingClientRect(),{clientX:g,clientY:b}=Y4(p);let _;if(e.vertical){let y=b-v.top;y=Math.min(y,v.height-r.value.offsetHeight/2),y=Math.max(r.value.offsetHeight/2,y),_=Math.round((y-r.value.offsetHeight/2)/(v.height-r.value.offsetHeight)*360)}else{let y=g-v.left;y=Math.min(y,v.width-r.value.offsetWidth/2),y=Math.max(r.value.offsetWidth/2,y),_=Math.round((y-r.value.offsetWidth/2)/(v.width-r.value.offsetWidth)*360)}e.color.set("hue",_)}function c(){if(!r.value)return 0;const p=n.vnode.el;if(e.vertical)return 0;const m=e.color.get("hue");return p?Math.round(m*(p.offsetWidth-r.value.offsetWidth/2)/360):0}function d(){if(!r.value)return 0;const p=n.vnode.el;if(!e.vertical)return 0;const m=e.color.get("hue");return p?Math.round(m*(p.offsetHeight-r.value.offsetHeight/2)/360):0}function f(){s.value=c(),a.value=d()}return vt(()=>{if(!o.value||!r.value)return;const p={drag:m=>{u(m)},end:m=>{u(m)}};Md(o.value,p),Md(r.value,p),f()}),{bar:o,thumb:r,thumbLeft:s,thumbTop:a,hueValue:i,handleClick:l,update:f,ns:t}}});function EMe(e,t,n,r,o,s){return k(),D("div",{class:W([e.ns.b(),e.ns.is("vertical",e.vertical)])},[R("div",{ref:"bar",class:W(e.ns.e("bar")),onClick:t[0]||(t[0]=(...a)=>e.handleClick&&e.handleClick(...a))},null,2),R("div",{ref:"thumb",class:W(e.ns.e("thumb")),style:Je({left:e.thumbLeft+"px",top:e.thumbTop+"px"})},null,6)],2)}var CMe=Fe(SMe,[["render",EMe],["__file","/home/runner/work/element-plus/element-plus/packages/components/color-picker/src/components/hue-slider.vue"]]);const kMe=He({modelValue:String,id:String,showAlpha:Boolean,colorFormat:String,disabled:Boolean,size:Fr,popperClass:{type:String,default:""},label:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},predefine:{type:Re(Array)},validateEvent:{type:Boolean,default:!0}}),TMe={[Et]:e=>ft(e)||Yn(e),[un]:e=>ft(e)||Yn(e),activeChange:e=>ft(e)||Yn(e)},sA=Symbol("colorPickerContextKey"),HS=function(e,t,n){return[e,t*n/((e=(2-t)*n)<1?e:2-e)||0,e/2]},$Me=function(e){return typeof e=="string"&&e.includes(".")&&Number.parseFloat(e)===1},xMe=function(e){return typeof e=="string"&&e.includes("%")},nu=function(e,t){$Me(e)&&(e="100%");const n=xMe(e);return e=Math.min(t,Math.max(0,Number.parseFloat(`${e}`))),n&&(e=Number.parseInt(`${e*t}`,10)/100),Math.abs(e-t)<1e-6?1:e%t/Number.parseFloat(t)},VS={10:"A",11:"B",12:"C",13:"D",14:"E",15:"F"},xp=e=>{e=Math.min(Math.round(e),255);const t=Math.floor(e/16),n=e%16;return`${VS[t]||t}${VS[n]||n}`},jS=function({r:e,g:t,b:n}){return Number.isNaN(+e)||Number.isNaN(+t)||Number.isNaN(+n)?"":`#${xp(e)}${xp(t)}${xp(n)}`},Iv={A:10,B:11,C:12,D:13,E:14,F:15},wi=function(e){return e.length===2?(Iv[e[0].toUpperCase()]||+e[0])*16+(Iv[e[1].toUpperCase()]||+e[1]):Iv[e[1].toUpperCase()]||+e[1]},IMe=function(e,t,n){t=t/100,n=n/100;let r=t;const o=Math.max(n,.01);n*=2,t*=n<=1?n:2-n,r*=o<=1?o:2-o;const s=(n+t)/2,a=n===0?2*r/(o+r):2*t/(n+t);return{h:e,s:a*100,v:s*100}},US=(e,t,n)=>{e=nu(e,255),t=nu(t,255),n=nu(n,255);const r=Math.max(e,t,n),o=Math.min(e,t,n);let s;const a=r,i=r-o,l=r===0?0:i/r;if(r===o)s=0;else{switch(r){case e:{s=(t-n)/i+(t{this._hue=Math.max(0,Math.min(360,r)),this._saturation=Math.max(0,Math.min(100,o)),this._value=Math.max(0,Math.min(100,s)),this.doOnChange()};if(t.includes("hsl")){const r=t.replace(/hsla|hsl|\(|\)/gm,"").split(/\s|,/g).filter(o=>o!=="").map((o,s)=>s>2?Number.parseFloat(o):Number.parseInt(o,10));if(r.length===4?this._alpha=Number.parseFloat(r[3])*100:r.length===3&&(this._alpha=100),r.length>=3){const{h:o,s,v:a}=IMe(r[0],r[1],r[2]);n(o,s,a)}}else if(t.includes("hsv")){const r=t.replace(/hsva|hsv|\(|\)/gm,"").split(/\s|,/g).filter(o=>o!=="").map((o,s)=>s>2?Number.parseFloat(o):Number.parseInt(o,10));r.length===4?this._alpha=Number.parseFloat(r[3])*100:r.length===3&&(this._alpha=100),r.length>=3&&n(r[0],r[1],r[2])}else if(t.includes("rgb")){const r=t.replace(/rgba|rgb|\(|\)/gm,"").split(/\s|,/g).filter(o=>o!=="").map((o,s)=>s>2?Number.parseFloat(o):Number.parseInt(o,10));if(r.length===4?this._alpha=Number.parseFloat(r[3])*100:r.length===3&&(this._alpha=100),r.length>=3){const{h:o,s,v:a}=US(r[0],r[1],r[2]);n(o,s,a)}}else if(t.includes("#")){const r=t.replace("#","").trim();if(!/^[0-9a-fA-F]{3}$|^[0-9a-fA-F]{6}$|^[0-9a-fA-F]{8}$/.test(r))return;let o,s,a;r.length===3?(o=wi(r[0]+r[0]),s=wi(r[1]+r[1]),a=wi(r[2]+r[2])):(r.length===6||r.length===8)&&(o=wi(r.slice(0,2)),s=wi(r.slice(2,4)),a=wi(r.slice(4,6))),r.length===8?this._alpha=wi(r.slice(6))/255*100:(r.length===3||r.length===6)&&(this._alpha=100);const{h:i,s:l,v:u}=US(o,s,a);n(i,l,u)}}compare(t){return Math.abs(t._hue-this._hue)<2&&Math.abs(t._saturation-this._saturation)<1&&Math.abs(t._value-this._value)<1&&Math.abs(t._alpha-this._alpha)<1}doOnChange(){const{_hue:t,_saturation:n,_value:r,_alpha:o,format:s}=this;if(this.enableAlpha)switch(s){case"hsl":{const a=HS(t,n/100,r/100);this.value=`hsla(${t}, ${Math.round(a[1]*100)}%, ${Math.round(a[2]*100)}%, ${this.get("alpha")/100})`;break}case"hsv":{this.value=`hsva(${t}, ${Math.round(n)}%, ${Math.round(r)}%, ${this.get("alpha")/100})`;break}case"hex":{this.value=`${jS(_c(t,n,r))}${xp(o*255/100)}`;break}default:{const{r:a,g:i,b:l}=_c(t,n,r);this.value=`rgba(${a}, ${i}, ${l}, ${this.get("alpha")/100})`}}else switch(s){case"hsl":{const a=HS(t,n/100,r/100);this.value=`hsl(${t}, ${Math.round(a[1]*100)}%, ${Math.round(a[2]*100)}%)`;break}case"hsv":{this.value=`hsv(${t}, ${Math.round(n)}%, ${Math.round(r)}%)`;break}case"rgb":{const{r:a,g:i,b:l}=_c(t,n,r);this.value=`rgb(${a}, ${i}, ${l})`;break}default:this.value=jS(_c(t,n,r))}}}const AMe=Ce({props:{colors:{type:Array,required:!0},color:{type:Object,required:!0}},setup(e){const t=De("color-predefine"),{currentColor:n}=Ye(sA),r=ee(s(e.colors,e.color));Be(()=>n.value,a=>{const i=new Jc;i.fromString(a),r.value.forEach(l=>{l.selected=i.compare(l)})}),Cr(()=>{r.value=s(e.colors,e.color)});function o(a){e.color.fromString(e.colors[a])}function s(a,i){return a.map(l=>{const u=new Jc;return u.enableAlpha=!0,u.format="rgba",u.fromString(l),u.selected=u.value===i.value,u})}return{rgbaColors:r,handleSelect:o,ns:t}}}),MMe=["onClick"];function OMe(e,t,n,r,o,s){return k(),D("div",{class:W(e.ns.b())},[R("div",{class:W(e.ns.e("colors"))},[(k(!0),D(Ze,null,At(e.rgbaColors,(a,i)=>(k(),D("div",{key:e.colors[i],class:W([e.ns.e("color-selector"),e.ns.is("alpha",a._alpha<100),{selected:a.selected}]),onClick:l=>e.handleSelect(i)},[R("div",{style:Je({backgroundColor:a.value})},null,4)],10,MMe))),128))],2)],2)}var RMe=Fe(AMe,[["render",OMe],["__file","/home/runner/work/element-plus/element-plus/packages/components/color-picker/src/components/predefine.vue"]]);const PMe=Ce({name:"ElSlPanel",props:{color:{type:Object,required:!0}},setup(e){const t=De("color-svpanel"),n=gt(),r=ee(0),o=ee(0),s=ee("hsl(0, 100%, 50%)"),a=z(()=>{const u=e.color.get("hue"),c=e.color.get("value");return{hue:u,value:c}});function i(){const u=e.color.get("saturation"),c=e.color.get("value"),d=n.vnode.el,{clientWidth:f,clientHeight:p}=d;o.value=u*f/100,r.value=(100-c)*p/100,s.value=`hsl(${e.color.get("hue")}, 100%, 50%)`}function l(u){const d=n.vnode.el.getBoundingClientRect(),{clientX:f,clientY:p}=Y4(u);let m=f-d.left,v=p-d.top;m=Math.max(0,m),m=Math.min(m,d.width),v=Math.max(0,v),v=Math.min(v,d.height),o.value=m,r.value=v,e.color.set({saturation:m/d.width*100,value:100-v/d.height*100})}return Be(()=>a.value,()=>{i()}),vt(()=>{Md(n.vnode.el,{drag:u=>{l(u)},end:u=>{l(u)}}),i()}),{cursorTop:r,cursorLeft:o,background:s,colorValue:a,handleDrag:l,update:i,ns:t}}}),NMe=R("div",null,null,-1),LMe=[NMe];function BMe(e,t,n,r,o,s){return k(),D("div",{class:W(e.ns.b()),style:Je({backgroundColor:e.background})},[R("div",{class:W(e.ns.e("white"))},null,2),R("div",{class:W(e.ns.e("black"))},null,2),R("div",{class:W(e.ns.e("cursor")),style:Je({top:e.cursorTop+"px",left:e.cursorLeft+"px"})},LMe,6)],6)}var DMe=Fe(PMe,[["render",BMe],["__file","/home/runner/work/element-plus/element-plus/packages/components/color-picker/src/components/sv-panel.vue"]]);const zMe=["id","aria-label","aria-labelledby","aria-description","tabindex","onKeydown"],FMe=Ce({name:"ElColorPicker"}),HMe=Ce({...FMe,props:kMe,emits:TMe,setup(e,{expose:t,emit:n}){const r=e,{t:o}=Vt(),s=De("color"),{formItem:a}=xr(),i=Ln(),l=jr(),{inputId:u,isLabeledByFormItem:c}=di(r,{formItemContext:a}),d=ee(),f=ee(),p=ee(),m=ee();let v=!0;const g=Ht(new Jc({enableAlpha:r.showAlpha,format:r.colorFormat||"",value:r.modelValue})),b=ee(!1),_=ee(!1),y=ee(""),S=z(()=>!r.modelValue&&!_.value?"transparent":$(g,r.showAlpha)),w=z(()=>!r.modelValue&&!_.value?"":g.value),E=z(()=>c.value?void 0:r.label||o("el.colorpicker.defaultLabel")),T=z(()=>c.value?a==null?void 0:a.labelId:void 0),C=z(()=>[s.b("picker"),s.is("disabled",l.value),s.bm("picker",i.value)]);function $(O,H){if(!(O instanceof Jc))throw new TypeError("color should be instance of _color Class");const{r:q,g:te,b:V}=O.toRgb();return H?`rgba(${q}, ${te}, ${V}, ${O.get("alpha")/100})`:`rgb(${q}, ${te}, ${V})`}function x(O){b.value=O}const N=$r(x,100);function I(){N(!1),L()}function L(){Xe(()=>{r.modelValue?g.fromString(r.modelValue):(g.value="",Xe(()=>{_.value=!1}))})}function F(){l.value||N(!b.value)}function B(){g.fromString(y.value)}function U(){const O=g.value;n(Et,O),n("change",O),r.validateEvent&&(a==null||a.validate("change").catch(H=>void 0)),N(!1),Xe(()=>{const H=new Jc({enableAlpha:r.showAlpha,format:r.colorFormat||"",value:r.modelValue});g.compare(H)||L()})}function P(){N(!1),n(Et,null),n("change",null),r.modelValue!==null&&r.validateEvent&&(a==null||a.validate("change").catch(O=>void 0)),L()}return vt(()=>{r.modelValue&&(y.value=w.value)}),Be(()=>r.modelValue,O=>{O?O&&O!==g.value&&(v=!1,g.fromString(O)):_.value=!1}),Be(()=>w.value,O=>{y.value=O,v&&n("activeChange",O),v=!0}),Be(()=>g.value,()=>{!r.modelValue&&!_.value&&(_.value=!0)}),Be(()=>b.value,()=>{Xe(()=>{var O,H,q;(O=d.value)==null||O.update(),(H=f.value)==null||H.update(),(q=p.value)==null||q.update()})}),Ct(sA,{currentColor:w}),t({color:g}),(O,H)=>(k(),Me(h(Ur),{ref_key:"popper",ref:m,visible:b.value,"show-arrow":!1,"fallback-placements":["bottom","top","right","left"],offset:0,"gpu-acceleration":!1,"popper-class":[h(s).be("picker","panel"),h(s).b("dropdown"),O.popperClass],"stop-popper-mouse-event":!1,effect:"light",trigger:"click",transition:`${h(s).namespace.value}-zoom-in-top`,persistent:""},{content:be(()=>[mt((k(),D("div",null,[R("div",{class:W(h(s).be("dropdown","main-wrapper"))},[me(CMe,{ref_key:"hue",ref:d,class:"hue-slider",color:h(g),vertical:""},null,8,["color"]),me(DMe,{ref:"svPanel",color:h(g)},null,8,["color"])],2),O.showAlpha?(k(),Me(wMe,{key:0,ref_key:"alpha",ref:p,color:h(g)},null,8,["color"])):Ae("v-if",!0),O.predefine?(k(),Me(RMe,{key:1,ref:"predefine",color:h(g),colors:O.predefine},null,8,["color","colors"])):Ae("v-if",!0),R("div",{class:W(h(s).be("dropdown","btns"))},[R("span",{class:W(h(s).be("dropdown","value"))},[me(h(mr),{modelValue:y.value,"onUpdate:modelValue":H[0]||(H[0]=q=>y.value=q),"validate-event":!1,size:"small",onKeyup:Rt(B,["enter"]),onBlur:B},null,8,["modelValue","onKeyup"])],2),me(h(or),{class:W(h(s).be("dropdown","link-btn")),text:"",size:"small",onClick:P},{default:be(()=>[Ot(ze(h(o)("el.colorpicker.clear")),1)]),_:1},8,["class"]),me(h(or),{plain:"",size:"small",class:W(h(s).be("dropdown","btn")),onClick:U},{default:be(()=>[Ot(ze(h(o)("el.colorpicker.confirm")),1)]),_:1},8,["class"])],2)])),[[h(ai),I]])]),default:be(()=>[R("div",{id:h(u),class:W(h(C)),role:"button","aria-label":h(E),"aria-labelledby":h(T),"aria-description":h(o)("el.colorpicker.description",{color:O.modelValue||""}),tabindex:O.tabindex,onKeydown:Rt(F,["enter"])},[h(l)?(k(),D("div",{key:0,class:W(h(s).be("picker","mask"))},null,2)):Ae("v-if",!0),R("div",{class:W(h(s).be("picker","trigger")),onClick:F},[R("span",{class:W([h(s).be("picker","color"),h(s).is("alpha",O.showAlpha)])},[R("span",{class:W(h(s).be("picker","color-inner")),style:Je({backgroundColor:h(S)})},[mt(me(h(et),{class:W([h(s).be("picker","icon"),h(s).is("icon-arrow-down")])},{default:be(()=>[me(h(da))]),_:1},8,["class"]),[[zt,O.modelValue||_.value]]),!O.modelValue&&!_.value?(k(),Me(h(et),{key:0,class:W([h(s).be("picker","empty"),h(s).is("icon-close")])},{default:be(()=>[me(h(wo))]),_:1},8,["class"])):Ae("v-if",!0)],6)],2)],2)],42,zMe)]),_:1},8,["visible","popper-class","transition"]))}});var VMe=Fe(HMe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/color-picker/src/color-picker.vue"]]);const jMe=St(VMe),$1={},UMe=He({a11y:{type:Boolean,default:!0},locale:{type:Re(Object)},size:Fr,button:{type:Re(Object)},experimentalFeatures:{type:Re(Object)},keyboardNavigation:{type:Boolean,default:!0},message:{type:Re(Object)},zIndex:Number,namespace:{type:String,default:"el"}}),WMe=Ce({name:"ElConfigProvider",props:UMe,setup(e,{slots:t}){Be(()=>e.message,r=>{Object.assign($1,r??{})},{immediate:!0,deep:!0});const n=$7(e);return()=>Pe(t,"default",{config:n==null?void 0:n.value})}}),qMe=St(WMe),KMe=Ce({name:"ElContainer"}),GMe=Ce({...KMe,props:{direction:{type:String}},setup(e){const t=e,n=Wn(),r=De("container"),o=z(()=>t.direction==="vertical"?!0:t.direction==="horizontal"?!1:n&&n.default?n.default().some(a=>{const i=a.type.name;return i==="ElHeader"||i==="ElFooter"}):!1);return(s,a)=>(k(),D("section",{class:W([h(r).b(),h(r).is("vertical",h(o))])},[Pe(s.$slots,"default")],2))}});var YMe=Fe(GMe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/container/src/container.vue"]]);const XMe=Ce({name:"ElAside"}),JMe=Ce({...XMe,props:{width:{type:String,default:null}},setup(e){const t=e,n=De("aside"),r=z(()=>t.width?n.cssVarBlock({width:t.width}):{});return(o,s)=>(k(),D("aside",{class:W(h(n).b()),style:Je(h(r))},[Pe(o.$slots,"default")],6))}});var aA=Fe(JMe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/container/src/aside.vue"]]);const QMe=Ce({name:"ElFooter"}),ZMe=Ce({...QMe,props:{height:{type:String,default:null}},setup(e){const t=e,n=De("footer"),r=z(()=>t.height?n.cssVarBlock({height:t.height}):{});return(o,s)=>(k(),D("footer",{class:W(h(n).b()),style:Je(h(r))},[Pe(o.$slots,"default")],6))}});var iA=Fe(ZMe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/container/src/footer.vue"]]);const eOe=Ce({name:"ElHeader"}),tOe=Ce({...eOe,props:{height:{type:String,default:null}},setup(e){const t=e,n=De("header"),r=z(()=>t.height?n.cssVarBlock({height:t.height}):{});return(o,s)=>(k(),D("header",{class:W(h(n).b()),style:Je(h(r))},[Pe(o.$slots,"default")],6))}});var lA=Fe(tOe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/container/src/header.vue"]]);const nOe=Ce({name:"ElMain"}),rOe=Ce({...nOe,setup(e){const t=De("main");return(n,r)=>(k(),D("main",{class:W(h(t).b())},[Pe(n.$slots,"default")],2))}});var uA=Fe(rOe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/container/src/main.vue"]]);const oOe=St(YMe,{Aside:aA,Footer:iA,Header:lA,Main:uA}),sOe=En(aA),aOe=En(iA),iOe=En(lA),lOe=En(uA);var cA={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(ya,function(){return function(n,r){var o=r.prototype,s=o.format;o.format=function(a){var i=this,l=this.$locale();if(!this.isValid())return s.bind(this)(a);var u=this.$utils(),c=(a||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(d){switch(d){case"Q":return Math.ceil((i.$M+1)/3);case"Do":return l.ordinal(i.$D);case"gggg":return i.weekYear();case"GGGG":return i.isoWeekYear();case"wo":return l.ordinal(i.week(),"W");case"w":case"ww":return u.s(i.week(),d==="w"?1:2,"0");case"W":case"WW":return u.s(i.isoWeek(),d==="W"?1:2,"0");case"k":case"kk":return u.s(String(i.$H===0?24:i.$H),d==="k"?1:2,"0");case"X":return Math.floor(i.$d.getTime()/1e3);case"x":return i.$d.getTime();case"z":return"["+i.offsetName()+"]";case"zzz":return"["+i.offsetName("long")+"]";default:return d}});return s.bind(this)(c)}}})})(cA);var uOe=cA.exports;const cOe=Go(uOe);var dA={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(ya,function(){var n="week",r="year";return function(o,s,a){var i=s.prototype;i.week=function(l){if(l===void 0&&(l=null),l!==null)return this.add(7*(l-this.week()),"day");var u=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var c=a(this).startOf(r).add(1,r).date(u),d=a(this).endOf(n);if(c.isBefore(d))return 1}var f=a(this).startOf(r).date(u).startOf(n).subtract(1,"millisecond"),p=this.diff(f,n,!0);return p<0?a(this).startOf("week").week():Math.ceil(p)},i.weeks=function(l){return l===void 0&&(l=null),this.week(l)}}})})(dA);var dOe=dA.exports;const fOe=Go(dOe);var fA={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(ya,function(){return function(n,r){r.prototype.weekYear=function(){var o=this.month(),s=this.week(),a=this.year();return s===1&&o===11?a+1:o===0&&s>=52?a-1:a}}})})(fA);var pOe=fA.exports;const hOe=Go(pOe);var pA={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(ya,function(){return function(n,r,o){r.prototype.dayOfYear=function(s){var a=Math.round((o(this).startOf("day")-o(this).startOf("year"))/864e5)+1;return s==null?a:this.add(s-a,"day")}}})})(pA);var mOe=pA.exports;const vOe=Go(mOe);var hA={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(ya,function(){return function(n,r){r.prototype.isSameOrAfter=function(o,s){return this.isSame(o,s)||this.isAfter(o,s)}}})})(hA);var gOe=hA.exports;const _Oe=Go(gOe);var mA={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(ya,function(){return function(n,r){r.prototype.isSameOrBefore=function(o,s){return this.isSame(o,s)||this.isBefore(o,s)}}})})(mA);var yOe=mA.exports;const bOe=Go(yOe),wOe=He({type:{type:Re(String),default:"date"}}),SOe=["date","dates","year","month","week","range"],xb=He({disabledDate:{type:Re(Function)},date:{type:Re(Object),required:!0},minDate:{type:Re(Object)},maxDate:{type:Re(Object)},parsedValue:{type:Re([Object,Array])},rangeState:{type:Re(Object),default:()=>({endDate:null,selecting:!1})}}),vA=He({type:{type:Re(String),required:!0,values:e9e}}),gA=He({unlinkPanels:Boolean,parsedValue:{type:Re(Array)}}),_A=e=>({type:String,values:SOe,default:e}),EOe=He({...vA,parsedValue:{type:Re([Object,Array])},visible:{type:Boolean},format:{type:String,default:""}}),COe=He({...xb,cellClassName:{type:Re(Function)},showWeekNumber:Boolean,selectionMode:_A("date")}),x1=e=>{if(!Ge(e))return!1;const[t,n]=e;return wt.isDayjs(t)&&wt.isDayjs(n)&&t.isSameOrBefore(n)},yA=(e,{lang:t,unit:n,unlinkPanels:r})=>{let o;if(Ge(e)){let[s,a]=e.map(i=>wt(i).locale(t));return r||(a=s.add(1,n)),[s,a]}else e?o=wt(e):o=wt();return o=o.locale(t),[o,o.add(1,n)]},kOe=(e,t,{columnIndexOffset:n,startDate:r,nextEndDate:o,now:s,unit:a,relativeDateGetter:i,setCellMetadata:l,setRowMetadata:u})=>{for(let c=0;c{const{cell:r}=e;if(n.default){const o=n.default(r).filter(s=>s.patchFlag!==-2&&s.type.toString()!=="Symbol(Comment)");if(o.length)return o}return me("div",{class:t.b()},[me("span",{class:t.e("text")},[r==null?void 0:r.text])])}}});const xOe=["aria-label","onMousedown"],IOe={key:0,scope:"col"},AOe=["aria-label"],MOe=["aria-current","aria-selected","tabindex"],OOe=Ce({__name:"basic-date-table",props:COe,emits:["changerange","pick","select"],setup(e,{expose:t,emit:n}){const r=e,o=De("date-table"),{t:s,lang:a}=Vt(),i=ee(),l=ee(),u=ee(),c=ee(),d=ee([[],[],[],[],[],[]]);let f=!1;const p=r.date.$locale().weekStart||7,m=r.date.locale("en").localeData().weekdaysShort().map(V=>V.toLowerCase()),v=z(()=>p>3?7-p:-p),g=z(()=>{const V=r.date.startOf("month");return V.subtract(V.day()||7,"day")}),b=z(()=>m.concat(m).slice(p,p+7)),_=z(()=>hx(C.value).some(V=>V.isCurrent)),y=z(()=>{const V=r.date.startOf("month"),Q=V.day()||7,ge=V.daysInMonth(),ie=V.subtract(1,"month").daysInMonth();return{startOfMonthDay:Q,dateCountOfMonth:ge,dateCountOfLastMonth:ie}}),S=z(()=>r.selectionMode==="dates"?js(r.parsedValue):[]),w=(V,{count:Q,rowIndex:ge,columnIndex:ie})=>{const{startOfMonthDay:ke,dateCountOfMonth:Y,dateCountOfLastMonth:K}=h(y),se=h(v);if(ge>=0&&ge<=1){const ne=ke+se<0?7+ke+se:ke+se;if(ie+ge*7>=ne)return V.text=Q,!0;V.text=K-(ne-ie%7)+1+ge*7,V.type="prev-month"}else return Q<=Y?V.text=Q:(V.text=Q-Y,V.type="next-month"),!0;return!1},E=(V,{columnIndex:Q,rowIndex:ge},ie)=>{const{disabledDate:ke,cellClassName:Y}=r,K=h(S),se=w(V,{count:ie,rowIndex:ge,columnIndex:Q}),ne=V.dayjs.toDate();return V.selected=K.find(ve=>ve.valueOf()===V.dayjs.valueOf()),V.isSelected=!!V.selected,V.isCurrent=N(V),V.disabled=ke==null?void 0:ke(ne),V.customClass=Y==null?void 0:Y(ne),se},T=V=>{if(r.selectionMode==="week"){const[Q,ge]=r.showWeekNumber?[1,7]:[0,6],ie=te(V[Q+1]);V[Q].inRange=ie,V[Q].start=ie,V[ge].inRange=ie,V[ge].end=ie}},C=z(()=>{const{minDate:V,maxDate:Q,rangeState:ge,showWeekNumber:ie}=r,ke=v.value,Y=d.value,K="day";let se=1;if(ie)for(let ne=0;ne<6;ne++)Y[ne][0]||(Y[ne][0]={type:"week",text:g.value.add(ne*7+1,K).week()});return kOe({row:6,column:7},Y,{startDate:V,columnIndexOffset:ie?1:0,nextEndDate:ge.endDate||Q||ge.selecting&&V||null,now:wt().locale(h(a)).startOf(K),unit:K,relativeDateGetter:ne=>g.value.add(ne-ke,K),setCellMetadata:(...ne)=>{E(...ne,se)&&(se+=1)},setRowMetadata:T}),Y});Be(()=>r.date,async()=>{var V,Q;(V=i.value)!=null&&V.contains(document.activeElement)&&(await Xe(),(Q=l.value)==null||Q.focus())});const $=async()=>{var V;(V=l.value)==null||V.focus()},x=(V="")=>["normal","today"].includes(V),N=V=>r.selectionMode==="date"&&x(V.type)&&I(V,r.parsedValue),I=(V,Q)=>Q?wt(Q).locale(a.value).isSame(r.date.date(Number(V.text)),"day"):!1,L=V=>{const Q=[];return x(V.type)&&!V.disabled?(Q.push("available"),V.type==="today"&&Q.push("today")):Q.push(V.type),N(V)&&Q.push("current"),V.inRange&&(x(V.type)||r.selectionMode==="week")&&(Q.push("in-range"),V.start&&Q.push("start-date"),V.end&&Q.push("end-date")),V.disabled&&Q.push("disabled"),V.selected&&Q.push("selected"),V.customClass&&Q.push(V.customClass),Q.join(" ")},F=(V,Q)=>{const ge=V*7+(Q-(r.showWeekNumber?1:0))-v.value;return g.value.add(ge,"day")},B=V=>{var Q;if(!r.rangeState.selecting)return;let ge=V.target;if(ge.tagName==="SPAN"&&(ge=(Q=ge.parentNode)==null?void 0:Q.parentNode),ge.tagName==="DIV"&&(ge=ge.parentNode),ge.tagName!=="TD")return;const ie=ge.parentNode.rowIndex-1,ke=ge.cellIndex;C.value[ie][ke].disabled||(ie!==u.value||ke!==c.value)&&(u.value=ie,c.value=ke,n("changerange",{selecting:!0,endDate:F(ie,ke)}))},U=V=>!_.value&&(V==null?void 0:V.text)===1&&V.type==="normal"||V.isCurrent,P=V=>{f||_.value||r.selectionMode!=="date"||q(V,!0)},O=V=>{V.target.closest("td")&&(f=!0)},H=V=>{V.target.closest("td")&&(f=!1)},q=(V,Q=!1)=>{const ge=V.target.closest("td");if(!ge)return;const ie=ge.parentNode.rowIndex-1,ke=ge.cellIndex,Y=C.value[ie][ke];if(Y.disabled||Y.type==="week")return;const K=F(ie,ke);if(r.selectionMode==="range")!r.rangeState.selecting||!r.minDate?(n("pick",{minDate:K,maxDate:null}),n("select",!0)):(K>=r.minDate?n("pick",{minDate:r.minDate,maxDate:K}):n("pick",{minDate:K,maxDate:r.minDate}),n("select",!1));else if(r.selectionMode==="date")n("pick",K,Q);else if(r.selectionMode==="week"){const se=K.week(),ne=`${K.year()}w${se}`;n("pick",{year:K.year(),week:se,value:ne,date:K.startOf("week")})}else if(r.selectionMode==="dates"){const se=Y.selected?js(r.parsedValue).filter(ne=>(ne==null?void 0:ne.valueOf())!==K.valueOf()):js(r.parsedValue).concat([K]);n("pick",se)}},te=V=>{if(r.selectionMode!=="week")return!1;let Q=r.date.startOf("day");if(V.type==="prev-month"&&(Q=Q.subtract(1,"month")),V.type==="next-month"&&(Q=Q.add(1,"month")),Q=Q.date(Number.parseInt(V.text,10)),r.parsedValue&&!Array.isArray(r.parsedValue)){const ge=(r.parsedValue.day()-p+7)%7-1;return r.parsedValue.subtract(ge,"day").isSame(Q,"day")}return!1};return t({focus:$}),(V,Q)=>(k(),D("table",{role:"grid","aria-label":h(s)("el.datepicker.dateTablePrompt"),cellspacing:"0",cellpadding:"0",class:W([h(o).b(),{"is-week-mode":V.selectionMode==="week"}]),onClick:q,onMousemove:B,onMousedown:ct(O,["prevent"]),onMouseup:H},[R("tbody",{ref_key:"tbodyRef",ref:i},[R("tr",null,[V.showWeekNumber?(k(),D("th",IOe,ze(h(s)("el.datepicker.week")),1)):Ae("v-if",!0),(k(!0),D(Ze,null,At(h(b),(ge,ie)=>(k(),D("th",{key:ie,scope:"col","aria-label":h(s)("el.datepicker.weeksFull."+ge)},ze(h(s)("el.datepicker.weeks."+ge)),9,AOe))),128))]),(k(!0),D(Ze,null,At(h(C),(ge,ie)=>(k(),D("tr",{key:ie,class:W([h(o).e("row"),{current:te(ge[1])}])},[(k(!0),D(Ze,null,At(ge,(ke,Y)=>(k(),D("td",{key:`${ie}.${Y}`,ref_for:!0,ref:K=>U(ke)&&(l.value=K),class:W(L(ke)),"aria-current":ke.isCurrent?"date":void 0,"aria-selected":ke.isCurrent,tabindex:U(ke)?0:-1,onFocus:P},[me(h($Oe),{cell:ke},null,8,["cell"])],42,MOe))),128))],2))),128))],512)],42,xOe))}});var I1=Fe(OOe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/date-picker/src/date-picker-com/basic-date-table.vue"]]);const ROe=He({...xb,selectionMode:_A("month")}),POe=["aria-label"],NOe=["aria-selected","aria-label","tabindex","onKeydown"],LOe={class:"cell"},BOe=Ce({__name:"basic-month-table",props:ROe,emits:["changerange","pick","select"],setup(e,{expose:t,emit:n}){const r=e,o=(S,w,E)=>{const T=wt().locale(E).startOf("month").month(w).year(S),C=T.daysInMonth();return Ja(C).map($=>T.add($,"day").toDate())},s=De("month-table"),{t:a,lang:i}=Vt(),l=ee(),u=ee(),c=ee(r.date.locale("en").localeData().monthsShort().map(S=>S.toLowerCase())),d=ee([[],[],[]]),f=ee(),p=ee(),m=z(()=>{var S,w;const E=d.value,T=wt().locale(i.value).startOf("month");for(let C=0;C<3;C++){const $=E[C];for(let x=0;x<4;x++){const N=$[x]||($[x]={row:C,column:x,type:"normal",inRange:!1,start:!1,end:!1,text:-1,disabled:!1});N.type="normal";const I=C*4+x,L=r.date.startOf("year").month(I),F=r.rangeState.endDate||r.maxDate||r.rangeState.selecting&&r.minDate||null;N.inRange=!!(r.minDate&&L.isSameOrAfter(r.minDate,"month")&&F&&L.isSameOrBefore(F,"month"))||!!(r.minDate&&L.isSameOrBefore(r.minDate,"month")&&F&&L.isSameOrAfter(F,"month")),(S=r.minDate)!=null&&S.isSameOrAfter(F)?(N.start=!!(F&&L.isSame(F,"month")),N.end=r.minDate&&L.isSame(r.minDate,"month")):(N.start=!!(r.minDate&&L.isSame(r.minDate,"month")),N.end=!!(F&&L.isSame(F,"month"))),T.isSame(L)&&(N.type="today"),N.text=I,N.disabled=((w=r.disabledDate)==null?void 0:w.call(r,L.toDate()))||!1}}return E}),v=()=>{var S;(S=u.value)==null||S.focus()},g=S=>{const w={},E=r.date.year(),T=new Date,C=S.text;return w.disabled=r.disabledDate?o(E,C,i.value).every(r.disabledDate):!1,w.current=js(r.parsedValue).findIndex($=>wt.isDayjs($)&&$.year()===E&&$.month()===C)>=0,w.today=T.getFullYear()===E&&T.getMonth()===C,S.inRange&&(w["in-range"]=!0,S.start&&(w["start-date"]=!0),S.end&&(w["end-date"]=!0)),w},b=S=>{const w=r.date.year(),E=S.text;return js(r.date).findIndex(T=>T.year()===w&&T.month()===E)>=0},_=S=>{var w;if(!r.rangeState.selecting)return;let E=S.target;if(E.tagName==="A"&&(E=(w=E.parentNode)==null?void 0:w.parentNode),E.tagName==="DIV"&&(E=E.parentNode),E.tagName!=="TD")return;const T=E.parentNode.rowIndex,C=E.cellIndex;m.value[T][C].disabled||(T!==f.value||C!==p.value)&&(f.value=T,p.value=C,n("changerange",{selecting:!0,endDate:r.date.startOf("year").month(T*4+C)}))},y=S=>{var w;const E=(w=S.target)==null?void 0:w.closest("td");if((E==null?void 0:E.tagName)!=="TD"||No(E,"disabled"))return;const T=E.cellIndex,$=E.parentNode.rowIndex*4+T,x=r.date.startOf("year").month($);r.selectionMode==="range"?r.rangeState.selecting?(r.minDate&&x>=r.minDate?n("pick",{minDate:r.minDate,maxDate:x}):n("pick",{minDate:x,maxDate:r.minDate}),n("select",!1)):(n("pick",{minDate:x,maxDate:null}),n("select",!0)):n("pick",$)};return Be(()=>r.date,async()=>{var S,w;(S=l.value)!=null&&S.contains(document.activeElement)&&(await Xe(),(w=u.value)==null||w.focus())}),t({focus:v}),(S,w)=>(k(),D("table",{role:"grid","aria-label":h(a)("el.datepicker.monthTablePrompt"),class:W(h(s).b()),onClick:y,onMousemove:_},[R("tbody",{ref_key:"tbodyRef",ref:l},[(k(!0),D(Ze,null,At(h(m),(E,T)=>(k(),D("tr",{key:T},[(k(!0),D(Ze,null,At(E,(C,$)=>(k(),D("td",{key:$,ref_for:!0,ref:x=>b(C)&&(u.value=x),class:W(g(C)),"aria-selected":`${b(C)}`,"aria-label":h(a)(`el.datepicker.month${+C.text+1}`),tabindex:b(C)?0:-1,onKeydown:[Rt(ct(y,["prevent","stop"]),["space"]),Rt(ct(y,["prevent","stop"]),["enter"])]},[R("div",null,[R("span",LOe,ze(h(a)("el.datepicker.months."+c.value[C.text])),1)])],42,NOe))),128))]))),128))],512)],42,POe))}});var A1=Fe(BOe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/date-picker/src/date-picker-com/basic-month-table.vue"]]);const{date:DOe,disabledDate:zOe,parsedValue:FOe}=xb,HOe=He({date:DOe,disabledDate:zOe,parsedValue:FOe}),VOe=["aria-label"],jOe=["aria-selected","tabindex","onKeydown"],UOe={class:"cell"},WOe={key:1},qOe=Ce({__name:"basic-year-table",props:HOe,emits:["pick"],setup(e,{expose:t,emit:n}){const r=e,o=(v,g)=>{const b=wt(String(v)).locale(g).startOf("year"),y=b.endOf("year").dayOfYear();return Ja(y).map(S=>b.add(S,"day").toDate())},s=De("year-table"),{t:a,lang:i}=Vt(),l=ee(),u=ee(),c=z(()=>Math.floor(r.date.year()/10)*10),d=()=>{var v;(v=u.value)==null||v.focus()},f=v=>{const g={},b=wt().locale(i.value);return g.disabled=r.disabledDate?o(v,i.value).every(r.disabledDate):!1,g.current=js(r.parsedValue).findIndex(_=>_.year()===v)>=0,g.today=b.year()===v,g},p=v=>v===c.value&&r.date.year()c.value+9||js(r.date).findIndex(g=>g.year()===v)>=0,m=v=>{const b=v.target.closest("td");if(b&&b.textContent){if(No(b,"disabled"))return;const _=b.textContent||b.innerText;n("pick",Number(_))}};return Be(()=>r.date,async()=>{var v,g;(v=l.value)!=null&&v.contains(document.activeElement)&&(await Xe(),(g=u.value)==null||g.focus())}),t({focus:d}),(v,g)=>(k(),D("table",{role:"grid","aria-label":h(a)("el.datepicker.yearTablePrompt"),class:W(h(s).b()),onClick:m},[R("tbody",{ref_key:"tbodyRef",ref:l},[(k(),D(Ze,null,At(3,(b,_)=>R("tr",{key:_},[(k(),D(Ze,null,At(4,(y,S)=>(k(),D(Ze,{key:_+"_"+S},[_*4+S<10?(k(),D("td",{key:0,ref_for:!0,ref:w=>p(h(c)+_*4+S)&&(u.value=w),class:W(["available",f(h(c)+_*4+S)]),"aria-selected":`${p(h(c)+_*4+S)}`,tabindex:p(h(c)+_*4+S)?0:-1,onKeydown:[Rt(ct(m,["prevent","stop"]),["space"]),Rt(ct(m,["prevent","stop"]),["enter"])]},[R("span",UOe,ze(h(c)+_*4+S),1)],42,jOe)):(k(),D("td",WOe))],64))),64))])),64))],512)],10,VOe))}});var KOe=Fe(qOe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/date-picker/src/date-picker-com/basic-year-table.vue"]]);const GOe=["onClick"],YOe=["aria-label"],XOe=["aria-label"],JOe=["aria-label"],QOe=["aria-label"],ZOe=Ce({__name:"panel-date-pick",props:EOe,emits:["pick","set-picker-option","panel-change"],setup(e,{emit:t}){const n=e,r=(G,ue,_e)=>!0,o=De("picker-panel"),s=De("date-picker"),a=zu(),i=Wn(),{t:l,lang:u}=Vt(),c=Ye("EP_PICKER_BASE"),d=Ye(im),{shortcuts:f,disabledDate:p,cellClassName:m,defaultTime:v,arrowControl:g}=c.props,b=gn(c.props,"defaultValue"),_=ee(),y=ee(wt().locale(u.value)),S=ee(!1),w=z(()=>wt(v).locale(u.value)),E=z(()=>y.value.month()),T=z(()=>y.value.year()),C=ee([]),$=ee(null),x=ee(null),N=G=>C.value.length>0?r(G,C.value,n.format||"HH:mm:ss"):!0,I=G=>v&&!J.value&&!S.value?w.value.year(G.year()).month(G.month()).date(G.date()):ke.value?G.millisecond(0):G.startOf("day"),L=(G,...ue)=>{if(!G)t("pick",G,...ue);else if(Ge(G)){const _e=G.map(I);t("pick",_e,...ue)}else t("pick",I(G),...ue);$.value=null,x.value=null,S.value=!1},F=(G,ue)=>{if(q.value==="date"){G=G;let _e=n.parsedValue?n.parsedValue.year(G.year()).month(G.month()).date(G.date()):G;N(_e),y.value=_e,L(_e,ke.value||ue)}else q.value==="week"?L(G.date):q.value==="dates"&&L(G,!0)},B=G=>{const ue=G?"add":"subtract";y.value=y.value[ue](1,"month"),j("month")},U=G=>{const ue=y.value,_e=G?"add":"subtract";y.value=P.value==="year"?ue[_e](10,"year"):ue[_e](1,"year"),j("year")},P=ee("date"),O=z(()=>{const G=l("el.datepicker.year");if(P.value==="year"){const ue=Math.floor(T.value/10)*10;return G?`${ue} ${G} - ${ue+9} ${G}`:`${ue} - ${ue+9}`}return`${T.value} ${G}`}),H=G=>{const ue=at(G.value)?G.value():G.value;if(ue){L(wt(ue).locale(u.value));return}G.onClick&&G.onClick({attrs:a,slots:i,emit:t})},q=z(()=>{const{type:G}=n;return["week","month","year","dates"].includes(G)?G:"date"}),te=z(()=>q.value==="date"?P.value:q.value),V=z(()=>!!f.length),Q=async G=>{y.value=y.value.startOf("month").month(G),q.value==="month"?L(y.value,!1):(P.value="date",["month","year","date","week"].includes(q.value)&&(L(y.value,!0),await Xe(),Le())),j("month")},ge=async G=>{q.value==="year"?(y.value=y.value.startOf("year").year(G),L(y.value,!1)):(y.value=y.value.year(G),P.value="month",["month","year","date","week"].includes(q.value)&&(L(y.value,!0),await Xe(),Le())),j("year")},ie=async G=>{P.value=G,await Xe(),Le()},ke=z(()=>n.type==="datetime"||n.type==="datetimerange"),Y=z(()=>ke.value||q.value==="dates"),K=()=>{if(q.value==="dates")L(n.parsedValue);else{let G=n.parsedValue;if(!G){const ue=wt(v).locale(u.value),_e=$e();G=ue.year(_e.year()).month(_e.month()).date(_e.date())}y.value=G,L(G)}},se=()=>{const ue=wt().locale(u.value).toDate();S.value=!0,(!p||!p(ue))&&N(ue)&&(y.value=wt().locale(u.value),L(y.value))},ne=z(()=>TI(n.format)),ve=z(()=>kI(n.format)),J=z(()=>{if(x.value)return x.value;if(!(!n.parsedValue&&!b.value))return(n.parsedValue||y.value).format(ne.value)}),ae=z(()=>{if($.value)return $.value;if(!(!n.parsedValue&&!b.value))return(n.parsedValue||y.value).format(ve.value)}),ce=ee(!1),oe=()=>{ce.value=!0},he=()=>{ce.value=!1},le=G=>({hour:G.hour(),minute:G.minute(),second:G.second(),year:G.year(),month:G.month(),date:G.date()}),Ee=(G,ue,_e)=>{const{hour:X,minute:Z,second:de}=le(G),Oe=n.parsedValue?n.parsedValue.hour(X).minute(Z).second(de):G;y.value=Oe,L(y.value,!0),_e||(ce.value=ue)},ye=G=>{const ue=wt(G,ne.value).locale(u.value);if(ue.isValid()&&N(ue)){const{year:_e,month:X,date:Z}=le(y.value);y.value=ue.year(_e).month(X).date(Z),x.value=null,ce.value=!1,L(y.value,!0)}},pe=G=>{const ue=wt(G,ve.value).locale(u.value);if(ue.isValid()){if(p&&p(ue.toDate()))return;const{hour:_e,minute:X,second:Z}=le(y.value);y.value=ue.hour(_e).minute(X).second(Z),$.value=null,L(y.value,!0)}},re=G=>wt.isDayjs(G)&&G.isValid()&&(p?!p(G.toDate()):!0),fe=G=>q.value==="dates"?G.map(ue=>ue.format(n.format)):G.format(n.format),Te=G=>wt(G,n.format).locale(u.value),$e=()=>{const G=wt(b.value).locale(u.value);if(!b.value){const ue=w.value;return wt().hour(ue.hour()).minute(ue.minute()).second(ue.second()).locale(u.value)}return G},Le=async()=>{var G;["week","month","year","date"].includes(q.value)&&((G=_.value)==null||G.focus(),q.value==="week"&&M(ot.down))},A=G=>{const{code:ue}=G;[ot.up,ot.down,ot.left,ot.right,ot.home,ot.end,ot.pageUp,ot.pageDown].includes(ue)&&(M(ue),G.stopPropagation(),G.preventDefault()),[ot.enter,ot.space].includes(ue)&&$.value===null&&x.value===null&&(G.preventDefault(),L(y.value,!1))},M=G=>{var ue;const{up:_e,down:X,left:Z,right:de,home:Oe,end:qe,pageUp:Qe,pageDown:ht}=ot,jt={year:{[_e]:-4,[X]:4,[Z]:-1,[de]:1,offset:(lt,Ne)=>lt.setFullYear(lt.getFullYear()+Ne)},month:{[_e]:-4,[X]:4,[Z]:-1,[de]:1,offset:(lt,Ne)=>lt.setMonth(lt.getMonth()+Ne)},week:{[_e]:-1,[X]:1,[Z]:-1,[de]:1,offset:(lt,Ne)=>lt.setDate(lt.getDate()+Ne*7)},date:{[_e]:-7,[X]:7,[Z]:-1,[de]:1,[Oe]:lt=>-lt.getDay(),[qe]:lt=>-lt.getDay()+6,[Qe]:lt=>-new Date(lt.getFullYear(),lt.getMonth(),0).getDate(),[ht]:lt=>new Date(lt.getFullYear(),lt.getMonth()+1,0).getDate(),offset:(lt,Ne)=>lt.setDate(lt.getDate()+Ne)}},It=y.value.toDate();for(;Math.abs(y.value.diff(It,"year",!0))<1;){const lt=jt[te.value];if(!lt)return;if(lt.offset(It,at(lt[G])?lt[G](It):(ue=lt[G])!=null?ue:0),p&&p(It))break;const Ne=wt(It).locale(u.value);y.value=Ne,t("pick",Ne,!0);break}},j=G=>{t("panel-change",y.value.toDate(),G,P.value)};return Be(()=>q.value,G=>{if(["month","year"].includes(G)){P.value=G;return}P.value="date"},{immediate:!0}),Be(()=>P.value,()=>{d==null||d.updatePopper()}),Be(()=>b.value,G=>{G&&(y.value=$e())},{immediate:!0}),Be(()=>n.parsedValue,G=>{if(G){if(q.value==="dates"||Array.isArray(G))return;y.value=G}else y.value=$e()},{immediate:!0}),t("set-picker-option",["isValidValue",re]),t("set-picker-option",["formatToString",fe]),t("set-picker-option",["parseUserInput",Te]),t("set-picker-option",["handleFocusPicker",Le]),(G,ue)=>(k(),D("div",{class:W([h(o).b(),h(s).b(),{"has-sidebar":G.$slots.sidebar||h(V),"has-time":h(ke)}])},[R("div",{class:W(h(o).e("body-wrapper"))},[Pe(G.$slots,"sidebar",{class:W(h(o).e("sidebar"))}),h(V)?(k(),D("div",{key:0,class:W(h(o).e("sidebar"))},[(k(!0),D(Ze,null,At(h(f),(_e,X)=>(k(),D("button",{key:X,type:"button",class:W(h(o).e("shortcut")),onClick:Z=>H(_e)},ze(_e.text),11,GOe))),128))],2)):Ae("v-if",!0),R("div",{class:W(h(o).e("body"))},[h(ke)?(k(),D("div",{key:0,class:W(h(s).e("time-header"))},[R("span",{class:W(h(s).e("editor-wrap"))},[me(h(mr),{placeholder:h(l)("el.datepicker.selectDate"),"model-value":h(ae),size:"small","validate-event":!1,onInput:ue[0]||(ue[0]=_e=>$.value=_e),onChange:pe},null,8,["placeholder","model-value"])],2),mt((k(),D("span",{class:W(h(s).e("editor-wrap"))},[me(h(mr),{placeholder:h(l)("el.datepicker.selectTime"),"model-value":h(J),size:"small","validate-event":!1,onFocus:oe,onInput:ue[1]||(ue[1]=_e=>x.value=_e),onChange:ye},null,8,["placeholder","model-value"]),me(h(Zh),{visible:ce.value,format:h(ne),"time-arrow-control":h(g),"parsed-value":y.value,onPick:Ee},null,8,["visible","format","time-arrow-control","parsed-value"])],2)),[[h(ai),he]])],2)):Ae("v-if",!0),mt(R("div",{class:W([h(s).e("header"),(P.value==="year"||P.value==="month")&&h(s).e("header--bordered")])},[R("span",{class:W(h(s).e("prev-btn"))},[R("button",{type:"button","aria-label":h(l)("el.datepicker.prevYear"),class:W(["d-arrow-left",h(o).e("icon-btn")]),onClick:ue[2]||(ue[2]=_e=>U(!1))},[me(h(et),null,{default:be(()=>[me(h(tl))]),_:1})],10,YOe),mt(R("button",{type:"button","aria-label":h(l)("el.datepicker.prevMonth"),class:W([h(o).e("icon-btn"),"arrow-left"]),onClick:ue[3]||(ue[3]=_e=>B(!1))},[me(h(et),null,{default:be(()=>[me(h(ea))]),_:1})],10,XOe),[[zt,P.value==="date"]])],2),R("span",{role:"button",class:W(h(s).e("header-label")),"aria-live":"polite",tabindex:"0",onKeydown:ue[4]||(ue[4]=Rt(_e=>ie("year"),["enter"])),onClick:ue[5]||(ue[5]=_e=>ie("year"))},ze(h(O)),35),mt(R("span",{role:"button","aria-live":"polite",tabindex:"0",class:W([h(s).e("header-label"),{active:P.value==="month"}]),onKeydown:ue[6]||(ue[6]=Rt(_e=>ie("month"),["enter"])),onClick:ue[7]||(ue[7]=_e=>ie("month"))},ze(h(l)(`el.datepicker.month${h(E)+1}`)),35),[[zt,P.value==="date"]]),R("span",{class:W(h(s).e("next-btn"))},[mt(R("button",{type:"button","aria-label":h(l)("el.datepicker.nextMonth"),class:W([h(o).e("icon-btn"),"arrow-right"]),onClick:ue[8]||(ue[8]=_e=>B(!0))},[me(h(et),null,{default:be(()=>[me(h(vr))]),_:1})],10,JOe),[[zt,P.value==="date"]]),R("button",{type:"button","aria-label":h(l)("el.datepicker.nextYear"),class:W([h(o).e("icon-btn"),"d-arrow-right"]),onClick:ue[9]||(ue[9]=_e=>U(!0))},[me(h(et),null,{default:be(()=>[me(h(nl))]),_:1})],10,QOe)],2)],2),[[zt,P.value!=="time"]]),R("div",{class:W(h(o).e("content")),onKeydown:A},[P.value==="date"?(k(),Me(I1,{key:0,ref_key:"currentViewRef",ref:_,"selection-mode":h(q),date:y.value,"parsed-value":G.parsedValue,"disabled-date":h(p),"cell-class-name":h(m),onPick:F},null,8,["selection-mode","date","parsed-value","disabled-date","cell-class-name"])):Ae("v-if",!0),P.value==="year"?(k(),Me(KOe,{key:1,ref_key:"currentViewRef",ref:_,date:y.value,"disabled-date":h(p),"parsed-value":G.parsedValue,onPick:ge},null,8,["date","disabled-date","parsed-value"])):Ae("v-if",!0),P.value==="month"?(k(),Me(A1,{key:2,ref_key:"currentViewRef",ref:_,date:y.value,"parsed-value":G.parsedValue,"disabled-date":h(p),onPick:Q},null,8,["date","parsed-value","disabled-date"])):Ae("v-if",!0)],34)],2)],2),mt(R("div",{class:W(h(o).e("footer"))},[mt(me(h(or),{text:"",size:"small",class:W(h(o).e("link-btn")),onClick:se},{default:be(()=>[Ot(ze(h(l)("el.datepicker.now")),1)]),_:1},8,["class"]),[[zt,h(q)!=="dates"]]),me(h(or),{plain:"",size:"small",class:W(h(o).e("link-btn")),onClick:K},{default:be(()=>[Ot(ze(h(l)("el.datepicker.confirm")),1)]),_:1},8,["class"])],2),[[zt,h(Y)&&P.value==="date"]])],2))}});var eRe=Fe(ZOe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/date-picker/src/date-picker-com/panel-date-pick.vue"]]);const tRe=He({...vA,...gA}),nRe=e=>{const{emit:t}=gt(),n=zu(),r=Wn();return s=>{const a=at(s.value)?s.value():s.value;if(a){t("pick",[wt(a[0]).locale(e.value),wt(a[1]).locale(e.value)]);return}s.onClick&&s.onClick({attrs:n,slots:r,emit:t})}},bA=(e,{defaultValue:t,leftDate:n,rightDate:r,unit:o,onParsedValueChanged:s})=>{const{emit:a}=gt(),{pickerNs:i}=Ye(ab),l=De("date-range-picker"),{t:u,lang:c}=Vt(),d=nRe(c),f=ee(),p=ee(),m=ee({endDate:null,selecting:!1}),v=y=>{m.value=y},g=(y=!1)=>{const S=h(f),w=h(p);x1([S,w])&&a("pick",[S,w],y)},b=y=>{m.value.selecting=y,y||(m.value.endDate=null)},_=()=>{const[y,S]=yA(h(t),{lang:h(c),unit:o,unlinkPanels:e.unlinkPanels});f.value=void 0,p.value=void 0,n.value=y,r.value=S};return Be(t,y=>{y&&_()},{immediate:!0}),Be(()=>e.parsedValue,y=>{if(Ge(y)&&y.length===2){const[S,w]=y;f.value=S,n.value=S,p.value=w,s(h(f),h(p))}else _()},{immediate:!0}),{minDate:f,maxDate:p,rangeState:m,lang:c,ppNs:i,drpNs:l,handleChangeRange:v,handleRangeConfirm:g,handleShortcutClick:d,onSelect:b,t:u}},rRe=["onClick"],oRe=["disabled"],sRe=["disabled"],aRe=["disabled"],iRe=["disabled"],Gf="month",lRe=Ce({__name:"panel-date-range",props:tRe,emits:["pick","set-picker-option","calendar-change","panel-change"],setup(e,{emit:t}){const n=e,r=Ye("EP_PICKER_BASE"),{disabledDate:o,cellClassName:s,format:a,defaultTime:i,arrowControl:l,clearable:u}=r.props,c=gn(r.props,"shortcuts"),d=gn(r.props,"defaultValue"),{lang:f}=Vt(),p=ee(wt().locale(f.value)),m=ee(wt().locale(f.value).add(1,Gf)),{minDate:v,maxDate:g,rangeState:b,ppNs:_,drpNs:y,handleChangeRange:S,handleRangeConfirm:w,handleShortcutClick:E,onSelect:T,t:C}=bA(n,{defaultValue:d,leftDate:p,rightDate:m,unit:Gf,onParsedValueChanged:X}),$=ee({min:null,max:null}),x=ee({min:null,max:null}),N=z(()=>`${p.value.year()} ${C("el.datepicker.year")} ${C(`el.datepicker.month${p.value.month()+1}`)}`),I=z(()=>`${m.value.year()} ${C("el.datepicker.year")} ${C(`el.datepicker.month${m.value.month()+1}`)}`),L=z(()=>p.value.year()),F=z(()=>p.value.month()),B=z(()=>m.value.year()),U=z(()=>m.value.month()),P=z(()=>!!c.value.length),O=z(()=>$.value.min!==null?$.value.min:v.value?v.value.format(Q.value):""),H=z(()=>$.value.max!==null?$.value.max:g.value||v.value?(g.value||v.value).format(Q.value):""),q=z(()=>x.value.min!==null?x.value.min:v.value?v.value.format(V.value):""),te=z(()=>x.value.max!==null?x.value.max:g.value||v.value?(g.value||v.value).format(V.value):""),V=z(()=>TI(a)),Q=z(()=>kI(a)),ge=()=>{p.value=p.value.subtract(1,"year"),n.unlinkPanels||(m.value=p.value.add(1,"month")),J("year")},ie=()=>{p.value=p.value.subtract(1,"month"),n.unlinkPanels||(m.value=p.value.add(1,"month")),J("month")},ke=()=>{n.unlinkPanels?m.value=m.value.add(1,"year"):(p.value=p.value.add(1,"year"),m.value=p.value.add(1,"month")),J("year")},Y=()=>{n.unlinkPanels?m.value=m.value.add(1,"month"):(p.value=p.value.add(1,"month"),m.value=p.value.add(1,"month")),J("month")},K=()=>{p.value=p.value.add(1,"year"),J("year")},se=()=>{p.value=p.value.add(1,"month"),J("month")},ne=()=>{m.value=m.value.subtract(1,"year"),J("year")},ve=()=>{m.value=m.value.subtract(1,"month"),J("month")},J=Z=>{t("panel-change",[p.value.toDate(),m.value.toDate()],Z)},ae=z(()=>{const Z=(F.value+1)%12,de=F.value+1>=12?1:0;return n.unlinkPanels&&new Date(L.value+de,Z)n.unlinkPanels&&B.value*12+U.value-(L.value*12+F.value+1)>=12),oe=z(()=>!(v.value&&g.value&&!b.value.selecting&&x1([v.value,g.value]))),he=z(()=>n.type==="datetime"||n.type==="datetimerange"),le=(Z,de)=>{if(Z)return i?wt(i[de]||i).locale(f.value).year(Z.year()).month(Z.month()).date(Z.date()):Z},Ee=(Z,de=!0)=>{const Oe=Z.minDate,qe=Z.maxDate,Qe=le(Oe,0),ht=le(qe,1);g.value===ht&&v.value===Qe||(t("calendar-change",[Oe.toDate(),qe&&qe.toDate()]),g.value=ht,v.value=Qe,!(!de||he.value)&&w())},ye=ee(!1),pe=ee(!1),re=()=>{ye.value=!1},fe=()=>{pe.value=!1},Te=(Z,de)=>{$.value[de]=Z;const Oe=wt(Z,Q.value).locale(f.value);if(Oe.isValid()){if(o&&o(Oe.toDate()))return;de==="min"?(p.value=Oe,v.value=(v.value||p.value).year(Oe.year()).month(Oe.month()).date(Oe.date()),n.unlinkPanels||(m.value=Oe.add(1,"month"),g.value=v.value.add(1,"month"))):(m.value=Oe,g.value=(g.value||m.value).year(Oe.year()).month(Oe.month()).date(Oe.date()),n.unlinkPanels||(p.value=Oe.subtract(1,"month"),v.value=g.value.subtract(1,"month")))}},$e=(Z,de)=>{$.value[de]=null},Le=(Z,de)=>{x.value[de]=Z;const Oe=wt(Z,V.value).locale(f.value);Oe.isValid()&&(de==="min"?(ye.value=!0,v.value=(v.value||p.value).hour(Oe.hour()).minute(Oe.minute()).second(Oe.second()),(!g.value||g.value.isBefore(v.value))&&(g.value=v.value)):(pe.value=!0,g.value=(g.value||m.value).hour(Oe.hour()).minute(Oe.minute()).second(Oe.second()),m.value=g.value,g.value&&g.value.isBefore(v.value)&&(v.value=g.value)))},A=(Z,de)=>{x.value[de]=null,de==="min"?(p.value=v.value,ye.value=!1):(m.value=g.value,pe.value=!1)},M=(Z,de,Oe)=>{x.value.min||(Z&&(p.value=Z,v.value=(v.value||p.value).hour(Z.hour()).minute(Z.minute()).second(Z.second())),Oe||(ye.value=de),(!g.value||g.value.isBefore(v.value))&&(g.value=v.value,m.value=Z))},j=(Z,de,Oe)=>{x.value.max||(Z&&(m.value=Z,g.value=(g.value||m.value).hour(Z.hour()).minute(Z.minute()).second(Z.second())),Oe||(pe.value=de),g.value&&g.value.isBefore(v.value)&&(v.value=g.value))},G=()=>{p.value=yA(h(d),{lang:h(f),unit:"month",unlinkPanels:n.unlinkPanels})[0],m.value=p.value.add(1,"month"),t("pick",null)},ue=Z=>Ge(Z)?Z.map(de=>de.format(a)):Z.format(a),_e=Z=>Ge(Z)?Z.map(de=>wt(de,a).locale(f.value)):wt(Z,a).locale(f.value);function X(Z,de){if(n.unlinkPanels&&de){const Oe=(Z==null?void 0:Z.year())||0,qe=(Z==null?void 0:Z.month())||0,Qe=de.year(),ht=de.month();m.value=Oe===Qe&&qe===ht?de.add(1,Gf):de}else m.value=p.value.add(1,Gf),de&&(m.value=m.value.hour(de.hour()).minute(de.minute()).second(de.second()))}return t("set-picker-option",["isValidValue",x1]),t("set-picker-option",["parseUserInput",_e]),t("set-picker-option",["formatToString",ue]),t("set-picker-option",["handleClear",G]),(Z,de)=>(k(),D("div",{class:W([h(_).b(),h(y).b(),{"has-sidebar":Z.$slots.sidebar||h(P),"has-time":h(he)}])},[R("div",{class:W(h(_).e("body-wrapper"))},[Pe(Z.$slots,"sidebar",{class:W(h(_).e("sidebar"))}),h(P)?(k(),D("div",{key:0,class:W(h(_).e("sidebar"))},[(k(!0),D(Ze,null,At(h(c),(Oe,qe)=>(k(),D("button",{key:qe,type:"button",class:W(h(_).e("shortcut")),onClick:Qe=>h(E)(Oe)},ze(Oe.text),11,rRe))),128))],2)):Ae("v-if",!0),R("div",{class:W(h(_).e("body"))},[h(he)?(k(),D("div",{key:0,class:W(h(y).e("time-header"))},[R("span",{class:W(h(y).e("editors-wrap"))},[R("span",{class:W(h(y).e("time-picker-wrap"))},[me(h(mr),{size:"small",disabled:h(b).selecting,placeholder:h(C)("el.datepicker.startDate"),class:W(h(y).e("editor")),"model-value":h(O),"validate-event":!1,onInput:de[0]||(de[0]=Oe=>Te(Oe,"min")),onChange:de[1]||(de[1]=Oe=>$e(Oe,"min"))},null,8,["disabled","placeholder","class","model-value"])],2),mt((k(),D("span",{class:W(h(y).e("time-picker-wrap"))},[me(h(mr),{size:"small",class:W(h(y).e("editor")),disabled:h(b).selecting,placeholder:h(C)("el.datepicker.startTime"),"model-value":h(q),"validate-event":!1,onFocus:de[2]||(de[2]=Oe=>ye.value=!0),onInput:de[3]||(de[3]=Oe=>Le(Oe,"min")),onChange:de[4]||(de[4]=Oe=>A(Oe,"min"))},null,8,["class","disabled","placeholder","model-value"]),me(h(Zh),{visible:ye.value,format:h(V),"datetime-role":"start","time-arrow-control":h(l),"parsed-value":p.value,onPick:M},null,8,["visible","format","time-arrow-control","parsed-value"])],2)),[[h(ai),re]])],2),R("span",null,[me(h(et),null,{default:be(()=>[me(h(vr))]),_:1})]),R("span",{class:W([h(y).e("editors-wrap"),"is-right"])},[R("span",{class:W(h(y).e("time-picker-wrap"))},[me(h(mr),{size:"small",class:W(h(y).e("editor")),disabled:h(b).selecting,placeholder:h(C)("el.datepicker.endDate"),"model-value":h(H),readonly:!h(v),"validate-event":!1,onInput:de[5]||(de[5]=Oe=>Te(Oe,"max")),onChange:de[6]||(de[6]=Oe=>$e(Oe,"max"))},null,8,["class","disabled","placeholder","model-value","readonly"])],2),mt((k(),D("span",{class:W(h(y).e("time-picker-wrap"))},[me(h(mr),{size:"small",class:W(h(y).e("editor")),disabled:h(b).selecting,placeholder:h(C)("el.datepicker.endTime"),"model-value":h(te),readonly:!h(v),"validate-event":!1,onFocus:de[7]||(de[7]=Oe=>h(v)&&(pe.value=!0)),onInput:de[8]||(de[8]=Oe=>Le(Oe,"max")),onChange:de[9]||(de[9]=Oe=>A(Oe,"max"))},null,8,["class","disabled","placeholder","model-value","readonly"]),me(h(Zh),{"datetime-role":"end",visible:pe.value,format:h(V),"time-arrow-control":h(l),"parsed-value":m.value,onPick:j},null,8,["visible","format","time-arrow-control","parsed-value"])],2)),[[h(ai),fe]])],2)],2)):Ae("v-if",!0),R("div",{class:W([[h(_).e("content"),h(y).e("content")],"is-left"])},[R("div",{class:W(h(y).e("header"))},[R("button",{type:"button",class:W([h(_).e("icon-btn"),"d-arrow-left"]),onClick:ge},[me(h(et),null,{default:be(()=>[me(h(tl))]),_:1})],2),R("button",{type:"button",class:W([h(_).e("icon-btn"),"arrow-left"]),onClick:ie},[me(h(et),null,{default:be(()=>[me(h(ea))]),_:1})],2),Z.unlinkPanels?(k(),D("button",{key:0,type:"button",disabled:!h(ce),class:W([[h(_).e("icon-btn"),{"is-disabled":!h(ce)}],"d-arrow-right"]),onClick:K},[me(h(et),null,{default:be(()=>[me(h(nl))]),_:1})],10,oRe)):Ae("v-if",!0),Z.unlinkPanels?(k(),D("button",{key:1,type:"button",disabled:!h(ae),class:W([[h(_).e("icon-btn"),{"is-disabled":!h(ae)}],"arrow-right"]),onClick:se},[me(h(et),null,{default:be(()=>[me(h(vr))]),_:1})],10,sRe)):Ae("v-if",!0),R("div",null,ze(h(N)),1)],2),me(I1,{"selection-mode":"range",date:p.value,"min-date":h(v),"max-date":h(g),"range-state":h(b),"disabled-date":h(o),"cell-class-name":h(s),onChangerange:h(S),onPick:Ee,onSelect:h(T)},null,8,["date","min-date","max-date","range-state","disabled-date","cell-class-name","onChangerange","onSelect"])],2),R("div",{class:W([[h(_).e("content"),h(y).e("content")],"is-right"])},[R("div",{class:W(h(y).e("header"))},[Z.unlinkPanels?(k(),D("button",{key:0,type:"button",disabled:!h(ce),class:W([[h(_).e("icon-btn"),{"is-disabled":!h(ce)}],"d-arrow-left"]),onClick:ne},[me(h(et),null,{default:be(()=>[me(h(tl))]),_:1})],10,aRe)):Ae("v-if",!0),Z.unlinkPanels?(k(),D("button",{key:1,type:"button",disabled:!h(ae),class:W([[h(_).e("icon-btn"),{"is-disabled":!h(ae)}],"arrow-left"]),onClick:ve},[me(h(et),null,{default:be(()=>[me(h(ea))]),_:1})],10,iRe)):Ae("v-if",!0),R("button",{type:"button",class:W([h(_).e("icon-btn"),"d-arrow-right"]),onClick:ke},[me(h(et),null,{default:be(()=>[me(h(nl))]),_:1})],2),R("button",{type:"button",class:W([h(_).e("icon-btn"),"arrow-right"]),onClick:Y},[me(h(et),null,{default:be(()=>[me(h(vr))]),_:1})],2),R("div",null,ze(h(I)),1)],2),me(I1,{"selection-mode":"range",date:m.value,"min-date":h(v),"max-date":h(g),"range-state":h(b),"disabled-date":h(o),"cell-class-name":h(s),onChangerange:h(S),onPick:Ee,onSelect:h(T)},null,8,["date","min-date","max-date","range-state","disabled-date","cell-class-name","onChangerange","onSelect"])],2)],2)],2),h(he)?(k(),D("div",{key:0,class:W(h(_).e("footer"))},[h(u)?(k(),Me(h(or),{key:0,text:"",size:"small",class:W(h(_).e("link-btn")),onClick:G},{default:be(()=>[Ot(ze(h(C)("el.datepicker.clear")),1)]),_:1},8,["class"])):Ae("v-if",!0),me(h(or),{plain:"",size:"small",class:W(h(_).e("link-btn")),disabled:h(oe),onClick:de[10]||(de[10]=Oe=>h(w)(!1))},{default:be(()=>[Ot(ze(h(C)("el.datepicker.confirm")),1)]),_:1},8,["class","disabled"])],2)):Ae("v-if",!0)],2))}});var uRe=Fe(lRe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/date-picker/src/date-picker-com/panel-date-range.vue"]]);const cRe=He({...gA}),dRe=["pick","set-picker-option"],fRe=({unlinkPanels:e,leftDate:t,rightDate:n})=>{const{t:r}=Vt(),o=()=>{t.value=t.value.subtract(1,"year"),e.value||(n.value=n.value.subtract(1,"year"))},s=()=>{e.value||(t.value=t.value.add(1,"year")),n.value=n.value.add(1,"year")},a=()=>{t.value=t.value.add(1,"year")},i=()=>{n.value=n.value.subtract(1,"year")},l=z(()=>`${t.value.year()} ${r("el.datepicker.year")}`),u=z(()=>`${n.value.year()} ${r("el.datepicker.year")}`),c=z(()=>t.value.year()),d=z(()=>n.value.year()===t.value.year()?t.value.year()+1:n.value.year());return{leftPrevYear:o,rightNextYear:s,leftNextYear:a,rightPrevYear:i,leftLabel:l,rightLabel:u,leftYear:c,rightYear:d}},pRe=["onClick"],hRe=["disabled"],mRe=["disabled"],Yf="year",vRe=Ce({name:"DatePickerMonthRange"}),gRe=Ce({...vRe,props:cRe,emits:dRe,setup(e,{emit:t}){const n=e,{lang:r}=Vt(),o=Ye("EP_PICKER_BASE"),{shortcuts:s,disabledDate:a,format:i}=o.props,l=gn(o.props,"defaultValue"),u=ee(wt().locale(r.value)),c=ee(wt().locale(r.value).add(1,Yf)),{minDate:d,maxDate:f,rangeState:p,ppNs:m,drpNs:v,handleChangeRange:g,handleRangeConfirm:b,handleShortcutClick:_,onSelect:y}=bA(n,{defaultValue:l,leftDate:u,rightDate:c,unit:Yf,onParsedValueChanged:U}),S=z(()=>!!s.length),{leftPrevYear:w,rightNextYear:E,leftNextYear:T,rightPrevYear:C,leftLabel:$,rightLabel:x,leftYear:N,rightYear:I}=fRe({unlinkPanels:gn(n,"unlinkPanels"),leftDate:u,rightDate:c}),L=z(()=>n.unlinkPanels&&I.value>N.value+1),F=(P,O=!0)=>{const H=P.minDate,q=P.maxDate;f.value===q&&d.value===H||(f.value=q,d.value=H,O&&b())},B=P=>P.map(O=>O.format(i));function U(P,O){if(n.unlinkPanels&&O){const H=(P==null?void 0:P.year())||0,q=O.year();c.value=H===q?O.add(1,Yf):O}else c.value=u.value.add(1,Yf)}return t("set-picker-option",["formatToString",B]),(P,O)=>(k(),D("div",{class:W([h(m).b(),h(v).b(),{"has-sidebar":!!P.$slots.sidebar||h(S)}])},[R("div",{class:W(h(m).e("body-wrapper"))},[Pe(P.$slots,"sidebar",{class:W(h(m).e("sidebar"))}),h(S)?(k(),D("div",{key:0,class:W(h(m).e("sidebar"))},[(k(!0),D(Ze,null,At(h(s),(H,q)=>(k(),D("button",{key:q,type:"button",class:W(h(m).e("shortcut")),onClick:te=>h(_)(H)},ze(H.text),11,pRe))),128))],2)):Ae("v-if",!0),R("div",{class:W(h(m).e("body"))},[R("div",{class:W([[h(m).e("content"),h(v).e("content")],"is-left"])},[R("div",{class:W(h(v).e("header"))},[R("button",{type:"button",class:W([h(m).e("icon-btn"),"d-arrow-left"]),onClick:O[0]||(O[0]=(...H)=>h(w)&&h(w)(...H))},[me(h(et),null,{default:be(()=>[me(h(tl))]),_:1})],2),P.unlinkPanels?(k(),D("button",{key:0,type:"button",disabled:!h(L),class:W([[h(m).e("icon-btn"),{[h(m).is("disabled")]:!h(L)}],"d-arrow-right"]),onClick:O[1]||(O[1]=(...H)=>h(T)&&h(T)(...H))},[me(h(et),null,{default:be(()=>[me(h(nl))]),_:1})],10,hRe)):Ae("v-if",!0),R("div",null,ze(h($)),1)],2),me(A1,{"selection-mode":"range",date:u.value,"min-date":h(d),"max-date":h(f),"range-state":h(p),"disabled-date":h(a),onChangerange:h(g),onPick:F,onSelect:h(y)},null,8,["date","min-date","max-date","range-state","disabled-date","onChangerange","onSelect"])],2),R("div",{class:W([[h(m).e("content"),h(v).e("content")],"is-right"])},[R("div",{class:W(h(v).e("header"))},[P.unlinkPanels?(k(),D("button",{key:0,type:"button",disabled:!h(L),class:W([[h(m).e("icon-btn"),{"is-disabled":!h(L)}],"d-arrow-left"]),onClick:O[2]||(O[2]=(...H)=>h(C)&&h(C)(...H))},[me(h(et),null,{default:be(()=>[me(h(tl))]),_:1})],10,mRe)):Ae("v-if",!0),R("button",{type:"button",class:W([h(m).e("icon-btn"),"d-arrow-right"]),onClick:O[3]||(O[3]=(...H)=>h(E)&&h(E)(...H))},[me(h(et),null,{default:be(()=>[me(h(nl))]),_:1})],2),R("div",null,ze(h(x)),1)],2),me(A1,{"selection-mode":"range",date:c.value,"min-date":h(d),"max-date":h(f),"range-state":h(p),"disabled-date":h(a),onChangerange:h(g),onPick:F,onSelect:h(y)},null,8,["date","min-date","max-date","range-state","disabled-date","onChangerange","onSelect"])],2)],2)],2)],2))}});var _Re=Fe(gRe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/date-picker/src/date-picker-com/panel-month-range.vue"]]);const yRe=function(e){switch(e){case"daterange":case"datetimerange":return uRe;case"monthrange":return _Re;default:return eRe}};wt.extend(VI);wt.extend(cOe);wt.extend(Cb);wt.extend(fOe);wt.extend(hOe);wt.extend(vOe);wt.extend(_Oe);wt.extend(bOe);var bRe=Ce({name:"ElDatePicker",install:null,props:{...kb,...wOe},emits:["update:modelValue"],setup(e,{expose:t,emit:n,slots:r}){const o=De("picker-panel");Ct("ElPopperOptions",Ht(gn(e,"popperOptions"))),Ct(ab,{slots:r,pickerNs:o});const s=ee();t({focus:(l=!0)=>{var u;(u=s.value)==null||u.focus(l)},handleOpen:()=>{var l;(l=s.value)==null||l.handleOpen()},handleClose:()=>{var l;(l=s.value)==null||l.handleClose()}});const i=l=>{n("update:modelValue",l)};return()=>{var l;const u=(l=e.format)!=null?l:p7e[e.type]||Ml,c=yRe(e.type);return me(II,$t(e,{format:u,type:e.type,ref:s,"onUpdate:modelValue":i}),{default:d=>me(c,d,null),"range-separator":r["range-separator"]})}}});const Ip=bRe;Ip.install=e=>{e.component(Ip.name,Ip)};const wRe=Ip,Ib="elDescriptions";var yc=Ce({name:"ElDescriptionsCell",props:{cell:{type:Object},tag:{type:String},type:{type:String}},setup(){return{descriptions:Ye(Ib,{})}},render(){var e,t,n,r,o,s;const a=s9e(this.cell),{border:i,direction:l}=this.descriptions,u=l==="vertical",c=((n=(t=(e=this.cell)==null?void 0:e.children)==null?void 0:t.label)==null?void 0:n.call(t))||a.label,d=(s=(o=(r=this.cell)==null?void 0:r.children)==null?void 0:o.default)==null?void 0:s.call(o),f=a.span,p=a.align?`is-${a.align}`:"",m=a.labelAlign?`is-${a.labelAlign}`:p,v=a.className,g=a.labelClassName,b={width:Nn(a.width),minWidth:Nn(a.minWidth)},_=De("descriptions");switch(this.type){case"label":return tt(this.tag,{style:b,class:[_.e("cell"),_.e("label"),_.is("bordered-label",i),_.is("vertical-label",u),m,g],colSpan:u?f:1},c);case"content":return tt(this.tag,{style:b,class:[_.e("cell"),_.e("content"),_.is("bordered-content",i),_.is("vertical-content",u),p,v],colSpan:u?f:f*2-1},d);default:return tt("td",{style:b,class:[_.e("cell"),p],colSpan:f},[tt("span",{class:[_.e("label"),g]},c),tt("span",{class:[_.e("content"),v]},d)])}}});const SRe=He({row:{type:Array,default:()=>[]}}),ERe={key:1},CRe=Ce({name:"ElDescriptionsRow"}),kRe=Ce({...CRe,props:SRe,setup(e){const t=Ye(Ib,{});return(n,r)=>h(t).direction==="vertical"?(k(),D(Ze,{key:0},[R("tr",null,[(k(!0),D(Ze,null,At(n.row,(o,s)=>(k(),Me(h(yc),{key:`tr1-${s}`,cell:o,tag:"th",type:"label"},null,8,["cell"]))),128))]),R("tr",null,[(k(!0),D(Ze,null,At(n.row,(o,s)=>(k(),Me(h(yc),{key:`tr2-${s}`,cell:o,tag:"td",type:"content"},null,8,["cell"]))),128))])],64)):(k(),D("tr",ERe,[(k(!0),D(Ze,null,At(n.row,(o,s)=>(k(),D(Ze,{key:`tr3-${s}`},[h(t).border?(k(),D(Ze,{key:0},[me(h(yc),{cell:o,tag:"td",type:"label"},null,8,["cell"]),me(h(yc),{cell:o,tag:"td",type:"content"},null,8,["cell"])],64)):(k(),Me(h(yc),{key:1,cell:o,tag:"td",type:"both"},null,8,["cell"]))],64))),128))]))}});var TRe=Fe(kRe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/descriptions/src/descriptions-row.vue"]]);const $Re=He({border:{type:Boolean,default:!1},column:{type:Number,default:3},direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},size:Fr,title:{type:String,default:""},extra:{type:String,default:""}}),xRe=Ce({name:"ElDescriptions"}),IRe=Ce({...xRe,props:$Re,setup(e){const t=e,n=De("descriptions"),r=Ln(),o=Wn();Ct(Ib,t);const s=z(()=>[n.b(),n.m(r.value)]),a=(l,u,c,d=!1)=>(l.props||(l.props={}),u>c&&(l.props.span=c),d&&(l.props.span=u),l),i=()=>{var l;const u=Zl((l=o.default)==null?void 0:l.call(o)).filter(m=>{var v;return((v=m==null?void 0:m.type)==null?void 0:v.name)==="ElDescriptionsItem"}),c=[];let d=[],f=t.column,p=0;return u.forEach((m,v)=>{var g;const b=((g=m.props)==null?void 0:g.span)||1;if(vf?f:b),v===u.length-1){const _=t.column-p%t.column;d.push(a(m,_,f,!0)),c.push(d);return}b(k(),D("div",{class:W(h(s))},[l.title||l.extra||l.$slots.title||l.$slots.extra?(k(),D("div",{key:0,class:W(h(n).e("header"))},[R("div",{class:W(h(n).e("title"))},[Pe(l.$slots,"title",{},()=>[Ot(ze(l.title),1)])],2),R("div",{class:W(h(n).e("extra"))},[Pe(l.$slots,"extra",{},()=>[Ot(ze(l.extra),1)])],2)],2)):Ae("v-if",!0),R("div",{class:W(h(n).e("body"))},[R("table",{class:W([h(n).e("table"),h(n).is("bordered",l.border)])},[R("tbody",null,[(k(!0),D(Ze,null,At(i(),(c,d)=>(k(),Me(TRe,{key:d,row:c},null,8,["row"]))),128))])],2)],2)],2))}});var ARe=Fe(IRe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/descriptions/src/description.vue"]]),wA=Ce({name:"ElDescriptionsItem",props:{label:{type:String,default:""},span:{type:Number,default:1},width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},align:{type:String,default:"left"},labelAlign:{type:String,default:""},className:{type:String,default:""},labelClassName:{type:String,default:""}}});const MRe=St(ARe,{DescriptionsItem:wA}),ORe=En(wA),RRe=He({mask:{type:Boolean,default:!0},customMaskEvent:{type:Boolean,default:!1},overlayClass:{type:Re([String,Array,Object])},zIndex:{type:Re([String,Number])}}),PRe={click:e=>e instanceof MouseEvent};var NRe=Ce({name:"ElOverlay",props:RRe,emits:PRe,setup(e,{slots:t,emit:n}){const r=De("overlay"),o=l=>{n("click",l)},{onClick:s,onMousedown:a,onMouseup:i}=ib(e.customMaskEvent?void 0:o);return()=>e.mask?me("div",{class:[r.b(),e.overlayClass],style:{zIndex:e.zIndex},onClick:s,onMousedown:a,onMouseup:i},[Pe(t,"default")],uo.STYLE|uo.CLASS|uo.PROPS,["onClick","onMouseup","onMousedown"]):tt("div",{class:e.overlayClass,style:{zIndex:e.zIndex,position:"fixed",top:"0px",right:"0px",bottom:"0px",left:"0px"}},[Pe(t,"default")])}});const Ab=NRe,SA=He({center:{type:Boolean,default:!1},alignCenter:{type:Boolean,default:!1},closeIcon:{type:on},customClass:{type:String,default:""},draggable:{type:Boolean,default:!1},fullscreen:{type:Boolean,default:!1},showClose:{type:Boolean,default:!0},title:{type:String,default:""}}),LRe={close:()=>!0},BRe=["aria-label"],DRe=["id"],zRe=Ce({name:"ElDialogContent"}),FRe=Ce({...zRe,props:SA,emits:LRe,setup(e){const t=e,{t:n}=Vt(),{Close:r}=u7,{dialogRef:o,headerRef:s,bodyId:a,ns:i,style:l}=Ye(g7),{focusTrapRef:u}=Ye(wb),c=nm(u,o),d=z(()=>t.draggable);return x7(o,s,d),(f,p)=>(k(),D("div",{ref:h(c),class:W([h(i).b(),h(i).is("fullscreen",f.fullscreen),h(i).is("draggable",h(d)),h(i).is("align-center",f.alignCenter),{[h(i).m("center")]:f.center},f.customClass]),style:Je(h(l)),tabindex:"-1"},[R("header",{ref_key:"headerRef",ref:s,class:W(h(i).e("header"))},[Pe(f.$slots,"header",{},()=>[R("span",{role:"heading",class:W(h(i).e("title"))},ze(f.title),3)]),f.showClose?(k(),D("button",{key:0,"aria-label":h(n)("el.dialog.close"),class:W(h(i).e("headerbtn")),type:"button",onClick:p[0]||(p[0]=m=>f.$emit("close"))},[me(h(et),{class:W(h(i).e("close"))},{default:be(()=>[(k(),Me(kt(f.closeIcon||h(r))))]),_:1},8,["class"])],10,BRe)):Ae("v-if",!0)],2),R("div",{id:h(a),class:W(h(i).e("body"))},[Pe(f.$slots,"default")],10,DRe),f.$slots.footer?(k(),D("footer",{key:0,class:W(h(i).e("footer"))},[Pe(f.$slots,"footer")],2)):Ae("v-if",!0)],6))}});var HRe=Fe(FRe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/dialog/src/dialog-content.vue"]]);const EA=He({...SA,appendToBody:{type:Boolean,default:!1},beforeClose:{type:Re(Function)},destroyOnClose:{type:Boolean,default:!1},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},modal:{type:Boolean,default:!0},openDelay:{type:Number,default:0},closeDelay:{type:Number,default:0},top:{type:String},modelValue:{type:Boolean,default:!1},modalClass:String,width:{type:[String,Number]},zIndex:{type:Number},trapFocus:{type:Boolean,default:!1}}),CA={open:()=>!0,opened:()=>!0,close:()=>!0,closed:()=>!0,[Et]:e=>Dn(e),openAutoFocus:()=>!0,closeAutoFocus:()=>!0},kA=(e,t)=>{const r=gt().emit,{nextZIndex:o}=va();let s="";const a=Fo(),i=Fo(),l=ee(!1),u=ee(!1),c=ee(!1),d=ee(e.zIndex||o());let f,p;const m=ma("namespace",um),v=z(()=>{const F={},B=`--${m.value}-dialog`;return e.fullscreen||(e.top&&(F[`${B}-margin-top`]=e.top),e.width&&(F[`${B}-width`]=Nn(e.width))),F}),g=z(()=>e.alignCenter?{display:"flex"}:{});function b(){r("opened")}function _(){r("closed"),r(Et,!1),e.destroyOnClose&&(c.value=!1)}function y(){r("close")}function S(){p==null||p(),f==null||f(),e.openDelay&&e.openDelay>0?{stop:f}=el(()=>C(),e.openDelay):C()}function w(){f==null||f(),p==null||p(),e.closeDelay&&e.closeDelay>0?{stop:p}=el(()=>$(),e.closeDelay):$()}function E(){function F(B){B||(u.value=!0,l.value=!1)}e.beforeClose?e.beforeClose(F):w()}function T(){e.closeOnClickModal&&E()}function C(){Pt&&(l.value=!0)}function $(){l.value=!1}function x(){r("openAutoFocus")}function N(){r("closeAutoFocus")}function I(F){var B;((B=F.detail)==null?void 0:B.focusReason)==="pointer"&&F.preventDefault()}e.lockScroll&&A7(l);function L(){e.closeOnPressEscape&&E()}return Be(()=>e.modelValue,F=>{F?(u.value=!1,S(),c.value=!0,d.value=e.zIndex?d.value++:o(),Xe(()=>{r("open"),t.value&&(t.value.scrollTop=0)})):l.value&&w()}),Be(()=>e.fullscreen,F=>{t.value&&(F?(s=t.value.style.transform,t.value.style.transform=""):t.value.style.transform=s)}),vt(()=>{e.modelValue&&(l.value=!0,c.value=!0,S())}),{afterEnter:b,afterLeave:_,beforeLeave:y,handleClose:E,onModalClick:T,close:w,doClose:$,onOpenAutoFocus:x,onCloseAutoFocus:N,onCloseRequested:L,onFocusoutPrevented:I,titleId:a,bodyId:i,closed:u,style:v,overlayDialogStyle:g,rendered:c,visible:l,zIndex:d}},VRe=["aria-label","aria-labelledby","aria-describedby"],jRe=Ce({name:"ElDialog",inheritAttrs:!1}),URe=Ce({...jRe,props:EA,emits:CA,setup(e,{expose:t}){const n=e,r=Wn();ta({scope:"el-dialog",from:"the title slot",replacement:"the header slot",version:"3.0.0",ref:"https://element-plus.org/en-US/component/dialog.html#slots"},z(()=>!!r.title)),ta({scope:"el-dialog",from:"custom-class",replacement:"class",version:"2.3.0",ref:"https://element-plus.org/en-US/component/dialog.html#attributes",type:"Attribute"},z(()=>!!n.customClass));const o=De("dialog"),s=ee(),a=ee(),i=ee(),{visible:l,titleId:u,bodyId:c,style:d,overlayDialogStyle:f,rendered:p,zIndex:m,afterEnter:v,afterLeave:g,beforeLeave:b,handleClose:_,onModalClick:y,onOpenAutoFocus:S,onCloseAutoFocus:w,onCloseRequested:E,onFocusoutPrevented:T}=kA(n,s);Ct(g7,{dialogRef:s,headerRef:a,bodyId:c,ns:o,rendered:p,style:d});const C=ib(y),$=z(()=>n.draggable&&!n.fullscreen);return t({visible:l,dialogContentRef:i}),(x,N)=>(k(),Me(Du,{to:"body",disabled:!x.appendToBody},[me(xn,{name:"dialog-fade",onAfterEnter:h(v),onAfterLeave:h(g),onBeforeLeave:h(b),persisted:""},{default:be(()=>[mt(me(h(Ab),{"custom-mask-event":"",mask:x.modal,"overlay-class":x.modalClass,"z-index":h(m)},{default:be(()=>[R("div",{role:"dialog","aria-modal":"true","aria-label":x.title||void 0,"aria-labelledby":x.title?void 0:h(u),"aria-describedby":h(c),class:W(`${h(o).namespace.value}-overlay-dialog`),style:Je(h(f)),onClick:N[0]||(N[0]=(...I)=>h(C).onClick&&h(C).onClick(...I)),onMousedown:N[1]||(N[1]=(...I)=>h(C).onMousedown&&h(C).onMousedown(...I)),onMouseup:N[2]||(N[2]=(...I)=>h(C).onMouseup&&h(C).onMouseup(...I))},[me(h(vm),{loop:"",trapped:h(l),"focus-start-el":"container",onFocusAfterTrapped:h(S),onFocusAfterReleased:h(w),onFocusoutPrevented:h(T),onReleaseRequested:h(E)},{default:be(()=>[h(p)?(k(),Me(HRe,$t({key:0,ref_key:"dialogContentRef",ref:i},x.$attrs,{"custom-class":x.customClass,center:x.center,"align-center":x.alignCenter,"close-icon":x.closeIcon,draggable:h($),fullscreen:x.fullscreen,"show-close":x.showClose,title:x.title,onClose:h(_)}),Bo({header:be(()=>[x.$slots.title?Pe(x.$slots,"title",{key:1}):Pe(x.$slots,"header",{key:0,close:h(_),titleId:h(u),titleClass:h(o).e("title")})]),default:be(()=>[Pe(x.$slots,"default")]),_:2},[x.$slots.footer?{name:"footer",fn:be(()=>[Pe(x.$slots,"footer")])}:void 0]),1040,["custom-class","center","align-center","close-icon","draggable","fullscreen","show-close","title","onClose"])):Ae("v-if",!0)]),_:3},8,["trapped","onFocusAfterTrapped","onFocusAfterReleased","onFocusoutPrevented","onReleaseRequested"])],46,VRe)]),_:3},8,["mask","overlay-class","z-index"]),[[zt,h(l)]])]),_:3},8,["onAfterEnter","onAfterLeave","onBeforeLeave"])],8,["disabled"]))}});var WRe=Fe(URe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/dialog/src/dialog.vue"]]);const qRe=St(WRe),KRe=He({direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},contentPosition:{type:String,values:["left","center","right"],default:"center"},borderStyle:{type:Re(String),default:"solid"}}),GRe=Ce({name:"ElDivider"}),YRe=Ce({...GRe,props:KRe,setup(e){const t=e,n=De("divider"),r=z(()=>n.cssVar({"border-style":t.borderStyle}));return(o,s)=>(k(),D("div",{class:W([h(n).b(),h(n).m(o.direction)]),style:Je(h(r)),role:"separator"},[o.$slots.default&&o.direction!=="vertical"?(k(),D("div",{key:0,class:W([h(n).e("text"),h(n).is(o.contentPosition)])},[Pe(o.$slots,"default")],2)):Ae("v-if",!0)],6))}});var XRe=Fe(YRe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/divider/src/divider.vue"]]);const TA=St(XRe),JRe=He({...EA,direction:{type:String,default:"rtl",values:["ltr","rtl","ttb","btt"]},size:{type:[String,Number],default:"30%"},withHeader:{type:Boolean,default:!0},modalFade:{type:Boolean,default:!0}}),QRe=CA,ZRe=Ce({name:"ElDrawer",components:{ElOverlay:Ab,ElFocusTrap:vm,ElIcon:et,Close:wo},inheritAttrs:!1,props:JRe,emits:QRe,setup(e,{slots:t}){ta({scope:"el-drawer",from:"the title slot",replacement:"the header slot",version:"3.0.0",ref:"https://element-plus.org/en-US/component/drawer.html#slots"},z(()=>!!t.title)),ta({scope:"el-drawer",from:"custom-class",replacement:"class",version:"2.3.0",ref:"https://element-plus.org/en-US/component/drawer.html#attributes",type:"Attribute"},z(()=>!!e.customClass));const n=ee(),r=ee(),o=De("drawer"),{t:s}=Vt(),a=z(()=>e.direction==="rtl"||e.direction==="ltr"),i=z(()=>Nn(e.size));return{...kA(e,n),drawerRef:n,focusStartRef:r,isHorizontal:a,drawerSize:i,ns:o,t:s}}}),ePe=["aria-label","aria-labelledby","aria-describedby"],tPe=["id"],nPe=["aria-label"],rPe=["id"];function oPe(e,t,n,r,o,s){const a=rt("close"),i=rt("el-icon"),l=rt("el-focus-trap"),u=rt("el-overlay");return k(),Me(Du,{to:"body",disabled:!e.appendToBody},[me(xn,{name:e.ns.b("fade"),onAfterEnter:e.afterEnter,onAfterLeave:e.afterLeave,onBeforeLeave:e.beforeLeave,persisted:""},{default:be(()=>[mt(me(u,{mask:e.modal,"overlay-class":e.modalClass,"z-index":e.zIndex,onClick:e.onModalClick},{default:be(()=>[me(l,{loop:"",trapped:e.visible,"focus-trap-el":e.drawerRef,"focus-start-el":e.focusStartRef,onReleaseRequested:e.onCloseRequested},{default:be(()=>[R("div",$t({ref:"drawerRef","aria-modal":"true","aria-label":e.title||void 0,"aria-labelledby":e.title?void 0:e.titleId,"aria-describedby":e.bodyId},e.$attrs,{class:[e.ns.b(),e.direction,e.visible&&"open",e.customClass],style:e.isHorizontal?"width: "+e.drawerSize:"height: "+e.drawerSize,role:"dialog",onClick:t[1]||(t[1]=ct(()=>{},["stop"]))}),[R("span",{ref:"focusStartRef",class:W(e.ns.e("sr-focus")),tabindex:"-1"},null,2),e.withHeader?(k(),D("header",{key:0,class:W(e.ns.e("header"))},[e.$slots.title?Pe(e.$slots,"title",{key:1},()=>[Ae(" DEPRECATED SLOT ")]):Pe(e.$slots,"header",{key:0,close:e.handleClose,titleId:e.titleId,titleClass:e.ns.e("title")},()=>[e.$slots.title?Ae("v-if",!0):(k(),D("span",{key:0,id:e.titleId,role:"heading",class:W(e.ns.e("title"))},ze(e.title),11,tPe))]),e.showClose?(k(),D("button",{key:2,"aria-label":e.t("el.drawer.close"),class:W(e.ns.e("close-btn")),type:"button",onClick:t[0]||(t[0]=(...c)=>e.handleClose&&e.handleClose(...c))},[me(i,{class:W(e.ns.e("close"))},{default:be(()=>[me(a)]),_:1},8,["class"])],10,nPe)):Ae("v-if",!0)],2)):Ae("v-if",!0),e.rendered?(k(),D("div",{key:1,id:e.bodyId,class:W(e.ns.e("body"))},[Pe(e.$slots,"default")],10,rPe)):Ae("v-if",!0),e.$slots.footer?(k(),D("div",{key:2,class:W(e.ns.e("footer"))},[Pe(e.$slots,"footer")],2)):Ae("v-if",!0)],16,ePe)]),_:3},8,["trapped","focus-trap-el","focus-start-el","onReleaseRequested"])]),_:3},8,["mask","overlay-class","z-index","onClick"]),[[zt,e.visible]])]),_:3},8,["name","onAfterEnter","onAfterLeave","onBeforeLeave"])],8,["disabled"])}var sPe=Fe(ZRe,[["render",oPe],["__file","/home/runner/work/element-plus/element-plus/packages/components/drawer/src/drawer.vue"]]);const aPe=St(sPe),iPe=Ce({inheritAttrs:!1});function lPe(e,t,n,r,o,s){return Pe(e.$slots,"default")}var uPe=Fe(iPe,[["render",lPe],["__file","/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection.vue"]]);const cPe=Ce({name:"ElCollectionItem",inheritAttrs:!1});function dPe(e,t,n,r,o,s){return Pe(e.$slots,"default")}var fPe=Fe(cPe,[["render",dPe],["__file","/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection-item.vue"]]);const $A="data-el-collection-item",xA=e=>{const t=`El${e}Collection`,n=`${t}Item`,r=Symbol(t),o=Symbol(n),s={...uPe,name:t,setup(){const i=ee(null),l=new Map;Ct(r,{itemMap:l,getItems:()=>{const c=h(i);if(!c)return[];const d=Array.from(c.querySelectorAll(`[${$A}]`));return[...l.values()].sort((p,m)=>d.indexOf(p.ref)-d.indexOf(m.ref))},collectionRef:i})}},a={...fPe,name:n,setup(i,{attrs:l}){const u=ee(null),c=Ye(r,void 0);Ct(o,{collectionItemRef:u}),vt(()=>{const d=h(u);d&&c.itemMap.set(d,{ref:d,...l})}),fn(()=>{const d=h(u);c.itemMap.delete(d)})}};return{COLLECTION_INJECTION_KEY:r,COLLECTION_ITEM_INJECTION_KEY:o,ElCollection:s,ElCollectionItem:a}},pPe=He({style:{type:Re([String,Array,Object])},currentTabId:{type:Re(String)},defaultCurrentTabId:String,loop:Boolean,dir:{type:String,values:["ltr","rtl"],default:"ltr"},orientation:{type:Re(String)},onBlur:Function,onFocus:Function,onMousedown:Function}),{ElCollection:hPe,ElCollectionItem:mPe,COLLECTION_INJECTION_KEY:Mb,COLLECTION_ITEM_INJECTION_KEY:vPe}=xA("RovingFocusGroup"),Ob=Symbol("elRovingFocusGroup"),IA=Symbol("elRovingFocusGroupItem"),gPe={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"},_Pe=(e,t)=>e,yPe=(e,t,n)=>{const r=_Pe(e.key);return gPe[r]},bPe=(e,t)=>e.map((n,r)=>e[(r+t)%e.length]),Rb=e=>{const{activeElement:t}=document;for(const n of e)if(n===t||(n.focus(),t!==document.activeElement))return},WS="currentTabIdChange",qS="rovingFocusGroup.entryFocus",wPe={bubbles:!1,cancelable:!0},SPe=Ce({name:"ElRovingFocusGroupImpl",inheritAttrs:!1,props:pPe,emits:[WS,"entryFocus"],setup(e,{emit:t}){var n;const r=ee((n=e.currentTabId||e.defaultCurrentTabId)!=null?n:null),o=ee(!1),s=ee(!1),a=ee(null),{getItems:i}=Ye(Mb,void 0),l=z(()=>[{outline:"none"},e.style]),u=v=>{t(WS,v)},c=()=>{o.value=!0},d=Sn(v=>{var g;(g=e.onMousedown)==null||g.call(e,v)},()=>{s.value=!0}),f=Sn(v=>{var g;(g=e.onFocus)==null||g.call(e,v)},v=>{const g=!h(s),{target:b,currentTarget:_}=v;if(b===_&&g&&!h(o)){const y=new Event(qS,wPe);if(_==null||_.dispatchEvent(y),!y.defaultPrevented){const S=i().filter($=>$.focusable),w=S.find($=>$.active),E=S.find($=>$.id===h(r)),C=[w,E,...S].filter(Boolean).map($=>$.ref);Rb(C)}}s.value=!1}),p=Sn(v=>{var g;(g=e.onBlur)==null||g.call(e,v)},()=>{o.value=!1}),m=(...v)=>{t("entryFocus",...v)};Ct(Ob,{currentTabbedId:Lu(r),loop:gn(e,"loop"),tabIndex:z(()=>h(o)?-1:0),rovingFocusGroupRef:a,rovingFocusGroupRootStyle:l,orientation:gn(e,"orientation"),dir:gn(e,"dir"),onItemFocus:u,onItemShiftTab:c,onBlur:p,onFocus:f,onMousedown:d}),Be(()=>e.currentTabId,v=>{r.value=v??null}),dn(a,qS,m)}});function EPe(e,t,n,r,o,s){return Pe(e.$slots,"default")}var CPe=Fe(SPe,[["render",EPe],["__file","/home/runner/work/element-plus/element-plus/packages/components/roving-focus-group/src/roving-focus-group-impl.vue"]]);const kPe=Ce({name:"ElRovingFocusGroup",components:{ElFocusGroupCollection:hPe,ElRovingFocusGroupImpl:CPe}});function TPe(e,t,n,r,o,s){const a=rt("el-roving-focus-group-impl"),i=rt("el-focus-group-collection");return k(),Me(i,null,{default:be(()=>[me(a,Yr(Fu(e.$attrs)),{default:be(()=>[Pe(e.$slots,"default")]),_:3},16)]),_:3})}var $Pe=Fe(kPe,[["render",TPe],["__file","/home/runner/work/element-plus/element-plus/packages/components/roving-focus-group/src/roving-focus-group.vue"]]);const xPe=Ce({components:{ElRovingFocusCollectionItem:mPe},props:{focusable:{type:Boolean,default:!0},active:{type:Boolean,default:!1}},emits:["mousedown","focus","keydown"],setup(e,{emit:t}){const{currentTabbedId:n,loop:r,onItemFocus:o,onItemShiftTab:s}=Ye(Ob,void 0),{getItems:a}=Ye(Mb,void 0),i=Fo(),l=ee(null),u=Sn(p=>{t("mousedown",p)},p=>{e.focusable?o(h(i)):p.preventDefault()}),c=Sn(p=>{t("focus",p)},()=>{o(h(i))}),d=Sn(p=>{t("keydown",p)},p=>{const{key:m,shiftKey:v,target:g,currentTarget:b}=p;if(m===ot.tab&&v){s();return}if(g!==b)return;const _=yPe(p);if(_){p.preventDefault();let S=a().filter(w=>w.focusable).map(w=>w.ref);switch(_){case"last":{S.reverse();break}case"prev":case"next":{_==="prev"&&S.reverse();const w=S.indexOf(b);S=r.value?bPe(S,w+1):S.slice(w+1);break}}Xe(()=>{Rb(S)})}}),f=z(()=>n.value===h(i));return Ct(IA,{rovingFocusGroupItemRef:l,tabIndex:z(()=>h(f)?0:-1),handleMousedown:u,handleFocus:c,handleKeydown:d}),{id:i,handleKeydown:d,handleFocus:c,handleMousedown:u}}});function IPe(e,t,n,r,o,s){const a=rt("el-roving-focus-collection-item");return k(),Me(a,{id:e.id,focusable:e.focusable,active:e.active},{default:be(()=>[Pe(e.$slots,"default")]),_:3},8,["id","focusable","active"])}var APe=Fe(xPe,[["render",IPe],["__file","/home/runner/work/element-plus/element-plus/packages/components/roving-focus-group/src/roving-focus-item.vue"]]);const Ap=He({trigger:Ad.trigger,effect:{...Kn.effect,default:"light"},type:{type:Re(String)},placement:{type:Re(String),default:"bottom"},popperOptions:{type:Re(Object),default:()=>({})},id:String,size:{type:String,default:""},splitButton:Boolean,hideOnClick:{type:Boolean,default:!0},loop:{type:Boolean,default:!0},showTimeout:{type:Number,default:150},hideTimeout:{type:Number,default:150},tabindex:{type:Re([Number,String]),default:0},maxHeight:{type:Re([Number,String]),default:""},popperClass:{type:String,default:""},disabled:{type:Boolean,default:!1},role:{type:String,default:"menu"},buttonProps:{type:Re(Object)},teleported:Kn.teleported}),AA=He({command:{type:[Object,String,Number],default:()=>({})},disabled:Boolean,divided:Boolean,textValue:String,icon:{type:on}}),MPe=He({onKeydown:{type:Re(Function)}}),OPe=[ot.down,ot.pageDown,ot.home],MA=[ot.up,ot.pageUp,ot.end],RPe=[...OPe,...MA],{ElCollection:PPe,ElCollectionItem:NPe,COLLECTION_INJECTION_KEY:LPe,COLLECTION_ITEM_INJECTION_KEY:BPe}=xA("Dropdown"),ym=Symbol("elDropdown"),{ButtonGroup:DPe}=or,zPe=Ce({name:"ElDropdown",components:{ElButton:or,ElButtonGroup:DPe,ElScrollbar:_a,ElDropdownCollection:PPe,ElTooltip:Ur,ElRovingFocusGroup:$Pe,ElOnlyChild:J7,ElIcon:et,ArrowDown:da},props:Ap,emits:["visible-change","click","command"],setup(e,{emit:t}){const n=gt(),r=De("dropdown"),{t:o}=Vt(),s=ee(),a=ee(),i=ee(null),l=ee(null),u=ee(null),c=ee(null),d=ee(!1),f=[ot.enter,ot.space,ot.down],p=z(()=>({maxHeight:Nn(e.maxHeight)})),m=z(()=>[r.m(S.value)]),v=Fo().value,g=z(()=>e.id||v);function b(){_()}function _(){var B;(B=i.value)==null||B.onClose()}function y(){var B;(B=i.value)==null||B.onOpen()}const S=Ln();function w(...B){t("command",...B)}function E(){}function T(){const B=h(l);B==null||B.focus(),c.value=null}function C(B){c.value=B}function $(B){d.value||(B.preventDefault(),B.stopImmediatePropagation())}function x(){t("visible-change",!0)}function N(B){(B==null?void 0:B.type)==="keydown"&&l.value.focus()}function I(){t("visible-change",!1)}return Ct(ym,{contentRef:l,role:z(()=>e.role),triggerId:g,isUsingKeyboard:d,onItemEnter:E,onItemLeave:T}),Ct("elDropdown",{instance:n,dropdownSize:S,handleClick:b,commandHandler:w,trigger:gn(e,"trigger"),hideOnClick:gn(e,"hideOnClick")}),{t:o,ns:r,scrollbar:u,wrapStyle:p,dropdownTriggerKls:m,dropdownSize:S,triggerId:g,triggerKeys:f,currentTabId:c,handleCurrentTabIdChange:C,handlerMainButtonClick:B=>{t("click",B)},handleEntryFocus:$,handleClose:_,handleOpen:y,handleBeforeShowTooltip:x,handleShowTooltip:N,handleBeforeHideTooltip:I,onFocusAfterTrapped:B=>{var U,P;B.preventDefault(),(P=(U=l.value)==null?void 0:U.focus)==null||P.call(U,{preventScroll:!0})},popperRef:i,contentRef:l,triggeringElementRef:s,referenceElementRef:a}}});function FPe(e,t,n,r,o,s){var a;const i=rt("el-dropdown-collection"),l=rt("el-roving-focus-group"),u=rt("el-scrollbar"),c=rt("el-only-child"),d=rt("el-tooltip"),f=rt("el-button"),p=rt("arrow-down"),m=rt("el-icon"),v=rt("el-button-group");return k(),D("div",{class:W([e.ns.b(),e.ns.is("disabled",e.disabled)])},[me(d,{ref:"popperRef",role:e.role,effect:e.effect,"fallback-placements":["bottom","top"],"popper-options":e.popperOptions,"gpu-acceleration":!1,"hide-after":e.trigger==="hover"?e.hideTimeout:0,"manual-mode":!0,placement:e.placement,"popper-class":[e.ns.e("popper"),e.popperClass],"reference-element":(a=e.referenceElementRef)==null?void 0:a.$el,trigger:e.trigger,"trigger-keys":e.triggerKeys,"trigger-target-el":e.contentRef,"show-after":e.trigger==="hover"?e.showTimeout:0,"stop-popper-mouse-event":!1,"virtual-ref":e.triggeringElementRef,"virtual-triggering":e.splitButton,disabled:e.disabled,transition:`${e.ns.namespace.value}-zoom-in-top`,teleported:e.teleported,pure:"",persistent:"",onBeforeShow:e.handleBeforeShowTooltip,onShow:e.handleShowTooltip,onBeforeHide:e.handleBeforeHideTooltip},Bo({content:be(()=>[me(u,{ref:"scrollbar","wrap-style":e.wrapStyle,tag:"div","view-class":e.ns.e("list")},{default:be(()=>[me(l,{loop:e.loop,"current-tab-id":e.currentTabId,orientation:"horizontal",onCurrentTabIdChange:e.handleCurrentTabIdChange,onEntryFocus:e.handleEntryFocus},{default:be(()=>[me(i,null,{default:be(()=>[Pe(e.$slots,"dropdown")]),_:3})]),_:3},8,["loop","current-tab-id","onCurrentTabIdChange","onEntryFocus"])]),_:3},8,["wrap-style","view-class"])]),_:2},[e.splitButton?void 0:{name:"default",fn:be(()=>[me(c,{id:e.triggerId,role:"button",tabindex:e.tabindex},{default:be(()=>[Pe(e.$slots,"default")]),_:3},8,["id","tabindex"])])}]),1032,["role","effect","popper-options","hide-after","placement","popper-class","reference-element","trigger","trigger-keys","trigger-target-el","show-after","virtual-ref","virtual-triggering","disabled","transition","teleported","onBeforeShow","onShow","onBeforeHide"]),e.splitButton?(k(),Me(v,{key:0},{default:be(()=>[me(f,$t({ref:"referenceElementRef"},e.buttonProps,{size:e.dropdownSize,type:e.type,disabled:e.disabled,tabindex:e.tabindex,onClick:e.handlerMainButtonClick}),{default:be(()=>[Pe(e.$slots,"default")]),_:3},16,["size","type","disabled","tabindex","onClick"]),me(f,$t({id:e.triggerId,ref:"triggeringElementRef"},e.buttonProps,{role:"button",size:e.dropdownSize,type:e.type,class:e.ns.e("caret-button"),disabled:e.disabled,tabindex:e.tabindex,"aria-label":e.t("el.dropdown.toggleDropdown")}),{default:be(()=>[me(m,{class:W(e.ns.e("icon"))},{default:be(()=>[me(p)]),_:1},8,["class"])]),_:1},16,["id","size","type","class","disabled","tabindex","aria-label"])]),_:3})):Ae("v-if",!0)],2)}var HPe=Fe(zPe,[["render",FPe],["__file","/home/runner/work/element-plus/element-plus/packages/components/dropdown/src/dropdown.vue"]]);const VPe=Ce({name:"DropdownItemImpl",components:{ElIcon:et},props:AA,emits:["pointermove","pointerleave","click","clickimpl"],setup(e,{emit:t}){const n=De("dropdown"),{role:r}=Ye(ym,void 0),{collectionItemRef:o}=Ye(BPe,void 0),{collectionItemRef:s}=Ye(vPe,void 0),{rovingFocusGroupItemRef:a,tabIndex:i,handleFocus:l,handleKeydown:u,handleMousedown:c}=Ye(IA,void 0),d=nm(o,s,a),f=z(()=>r.value==="menu"?"menuitem":r.value==="navigation"?"link":"button"),p=Sn(m=>{const{code:v}=m;if(v===ot.enter||v===ot.space)return m.preventDefault(),m.stopImmediatePropagation(),t("clickimpl",m),!0},u);return{ns:n,itemRef:d,dataset:{[$A]:""},role:f,tabIndex:i,handleFocus:l,handleKeydown:p,handleMousedown:c}}}),jPe=["aria-disabled","tabindex","role"];function UPe(e,t,n,r,o,s){const a=rt("el-icon");return k(),D(Ze,null,[e.divided?(k(),D("li",$t({key:0,role:"separator",class:e.ns.bem("menu","item","divided")},e.$attrs),null,16)):Ae("v-if",!0),R("li",$t({ref:e.itemRef},{...e.dataset,...e.$attrs},{"aria-disabled":e.disabled,class:[e.ns.be("menu","item"),e.ns.is("disabled",e.disabled)],tabindex:e.tabIndex,role:e.role,onClick:t[0]||(t[0]=i=>e.$emit("clickimpl",i)),onFocus:t[1]||(t[1]=(...i)=>e.handleFocus&&e.handleFocus(...i)),onKeydown:t[2]||(t[2]=(...i)=>e.handleKeydown&&e.handleKeydown(...i)),onMousedown:t[3]||(t[3]=(...i)=>e.handleMousedown&&e.handleMousedown(...i)),onPointermove:t[4]||(t[4]=i=>e.$emit("pointermove",i)),onPointerleave:t[5]||(t[5]=i=>e.$emit("pointerleave",i))}),[e.icon?(k(),Me(a,{key:0},{default:be(()=>[(k(),Me(kt(e.icon)))]),_:1})):Ae("v-if",!0),Pe(e.$slots,"default")],16,jPe)],64)}var WPe=Fe(VPe,[["render",UPe],["__file","/home/runner/work/element-plus/element-plus/packages/components/dropdown/src/dropdown-item-impl.vue"]]);const OA=()=>{const e=Ye("elDropdown",{}),t=z(()=>e==null?void 0:e.dropdownSize);return{elDropdown:e,_elDropdownSize:t}},qPe=Ce({name:"ElDropdownItem",components:{ElDropdownCollectionItem:NPe,ElRovingFocusItem:APe,ElDropdownItemImpl:WPe},inheritAttrs:!1,props:AA,emits:["pointermove","pointerleave","click"],setup(e,{emit:t,attrs:n}){const{elDropdown:r}=OA(),o=gt(),s=ee(null),a=z(()=>{var p,m;return(m=(p=h(s))==null?void 0:p.textContent)!=null?m:""}),{onItemEnter:i,onItemLeave:l}=Ye(ym,void 0),u=Sn(p=>(t("pointermove",p),p.defaultPrevented),I8(p=>{var m;e.disabled?l(p):(i(p),p.defaultPrevented||(m=p.currentTarget)==null||m.focus())})),c=Sn(p=>(t("pointerleave",p),p.defaultPrevented),I8(p=>{l(p)})),d=Sn(p=>{if(!e.disabled)return t("click",p),p.type!=="keydown"&&p.defaultPrevented},p=>{var m,v,g;if(e.disabled){p.stopImmediatePropagation();return}(m=r==null?void 0:r.hideOnClick)!=null&&m.value&&((v=r.handleClick)==null||v.call(r)),(g=r.commandHandler)==null||g.call(r,e.command,o,p)}),f=z(()=>({...e,...n}));return{handleClick:d,handlePointerMove:u,handlePointerLeave:c,textContent:a,propsAndAttrs:f}}});function KPe(e,t,n,r,o,s){var a;const i=rt("el-dropdown-item-impl"),l=rt("el-roving-focus-item"),u=rt("el-dropdown-collection-item");return k(),Me(u,{disabled:e.disabled,"text-value":(a=e.textValue)!=null?a:e.textContent},{default:be(()=>[me(l,{focusable:!e.disabled},{default:be(()=>[me(i,$t(e.propsAndAttrs,{onPointerleave:e.handlePointerLeave,onPointermove:e.handlePointerMove,onClickimpl:e.handleClick}),{default:be(()=>[Pe(e.$slots,"default")]),_:3},16,["onPointerleave","onPointermove","onClickimpl"])]),_:3},8,["focusable"])]),_:3},8,["disabled","text-value"])}var RA=Fe(qPe,[["render",KPe],["__file","/home/runner/work/element-plus/element-plus/packages/components/dropdown/src/dropdown-item.vue"]]);const GPe=Ce({name:"ElDropdownMenu",props:MPe,setup(e){const t=De("dropdown"),{_elDropdownSize:n}=OA(),r=n.value,{focusTrapRef:o,onKeydown:s}=Ye(wb,void 0),{contentRef:a,role:i,triggerId:l}=Ye(ym,void 0),{collectionRef:u,getItems:c}=Ye(LPe,void 0),{rovingFocusGroupRef:d,rovingFocusGroupRootStyle:f,tabIndex:p,onBlur:m,onFocus:v,onMousedown:g}=Ye(Ob,void 0),{collectionRef:b}=Ye(Mb,void 0),_=z(()=>[t.b("menu"),t.bm("menu",r==null?void 0:r.value)]),y=nm(a,u,o,d,b),S=Sn(E=>{var T;(T=e.onKeydown)==null||T.call(e,E)},E=>{const{currentTarget:T,code:C,target:$}=E;if(T.contains($),ot.tab===C&&E.stopImmediatePropagation(),E.preventDefault(),$!==h(a)||!RPe.includes(C))return;const N=c().filter(I=>!I.disabled).map(I=>I.ref);MA.includes(C)&&N.reverse(),Rb(N)});return{size:r,rovingFocusGroupRootStyle:f,tabIndex:p,dropdownKls:_,role:i,triggerId:l,dropdownListWrapperRef:y,handleKeydown:E=>{S(E),s(E)},onBlur:m,onFocus:v,onMousedown:g}}}),YPe=["role","aria-labelledby"];function XPe(e,t,n,r,o,s){return k(),D("ul",{ref:e.dropdownListWrapperRef,class:W(e.dropdownKls),style:Je(e.rovingFocusGroupRootStyle),tabindex:-1,role:e.role,"aria-labelledby":e.triggerId,onBlur:t[0]||(t[0]=(...a)=>e.onBlur&&e.onBlur(...a)),onFocus:t[1]||(t[1]=(...a)=>e.onFocus&&e.onFocus(...a)),onKeydown:t[2]||(t[2]=(...a)=>e.handleKeydown&&e.handleKeydown(...a)),onMousedown:t[3]||(t[3]=(...a)=>e.onMousedown&&e.onMousedown(...a))},[Pe(e.$slots,"default")],46,YPe)}var PA=Fe(GPe,[["render",XPe],["__file","/home/runner/work/element-plus/element-plus/packages/components/dropdown/src/dropdown-menu.vue"]]);const JPe=St(HPe,{DropdownItem:RA,DropdownMenu:PA}),QPe=En(RA),ZPe=En(PA);let eNe=0;const tNe=Ce({name:"ImgEmpty",setup(){return{ns:De("empty"),id:++eNe}}}),nNe={viewBox:"0 0 79 86",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},rNe=["id"],oNe=["stop-color"],sNe=["stop-color"],aNe=["id"],iNe=["stop-color"],lNe=["stop-color"],uNe=["id"],cNe={id:"Illustrations",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},dNe={id:"B-type",transform:"translate(-1268.000000, -535.000000)"},fNe={id:"Group-2",transform:"translate(1268.000000, 535.000000)"},pNe=["fill"],hNe=["fill"],mNe={id:"Group-Copy",transform:"translate(34.500000, 31.500000) scale(-1, 1) rotate(-25.000000) translate(-34.500000, -31.500000) translate(7.000000, 10.000000)"},vNe=["fill"],gNe=["fill"],_Ne=["fill"],yNe=["fill"],bNe=["fill"],wNe={id:"Rectangle-Copy-17",transform:"translate(53.000000, 45.000000)"},SNe=["fill","xlink:href"],ENe=["fill","mask"],CNe=["fill"];function kNe(e,t,n,r,o,s){return k(),D("svg",nNe,[R("defs",null,[R("linearGradient",{id:`linearGradient-1-${e.id}`,x1:"38.8503086%",y1:"0%",x2:"61.1496914%",y2:"100%"},[R("stop",{"stop-color":`var(${e.ns.cssVarBlockName("fill-color-1")})`,offset:"0%"},null,8,oNe),R("stop",{"stop-color":`var(${e.ns.cssVarBlockName("fill-color-4")})`,offset:"100%"},null,8,sNe)],8,rNe),R("linearGradient",{id:`linearGradient-2-${e.id}`,x1:"0%",y1:"9.5%",x2:"100%",y2:"90.5%"},[R("stop",{"stop-color":`var(${e.ns.cssVarBlockName("fill-color-1")})`,offset:"0%"},null,8,iNe),R("stop",{"stop-color":`var(${e.ns.cssVarBlockName("fill-color-6")})`,offset:"100%"},null,8,lNe)],8,aNe),R("rect",{id:`path-3-${e.id}`,x:"0",y:"0",width:"17",height:"36"},null,8,uNe)]),R("g",cNe,[R("g",dNe,[R("g",fNe,[R("path",{id:"Oval-Copy-2",d:"M39.5,86 C61.3152476,86 79,83.9106622 79,81.3333333 C79,78.7560045 57.3152476,78 35.5,78 C13.6847524,78 0,78.7560045 0,81.3333333 C0,83.9106622 17.6847524,86 39.5,86 Z",fill:`var(${e.ns.cssVarBlockName("fill-color-3")})`},null,8,pNe),R("polygon",{id:"Rectangle-Copy-14",fill:`var(${e.ns.cssVarBlockName("fill-color-7")})`,transform:"translate(27.500000, 51.500000) scale(1, -1) translate(-27.500000, -51.500000) ",points:"13 58 53 58 42 45 2 45"},null,8,hNe),R("g",mNe,[R("polygon",{id:"Rectangle-Copy-10",fill:`var(${e.ns.cssVarBlockName("fill-color-7")})`,transform:"translate(11.500000, 5.000000) scale(1, -1) translate(-11.500000, -5.000000) ",points:"2.84078316e-14 3 18 3 23 7 5 7"},null,8,vNe),R("polygon",{id:"Rectangle-Copy-11",fill:`var(${e.ns.cssVarBlockName("fill-color-5")})`,points:"-3.69149156e-15 7 38 7 38 43 -3.69149156e-15 43"},null,8,gNe),R("rect",{id:"Rectangle-Copy-12",fill:`url(#linearGradient-1-${e.id})`,transform:"translate(46.500000, 25.000000) scale(-1, 1) translate(-46.500000, -25.000000) ",x:"38",y:"7",width:"17",height:"36"},null,8,_Ne),R("polygon",{id:"Rectangle-Copy-13",fill:`var(${e.ns.cssVarBlockName("fill-color-2")})`,transform:"translate(39.500000, 3.500000) scale(-1, 1) translate(-39.500000, -3.500000) ",points:"24 7 41 7 55 -3.63806207e-12 38 -3.63806207e-12"},null,8,yNe)]),R("rect",{id:"Rectangle-Copy-15",fill:`url(#linearGradient-2-${e.id})`,x:"13",y:"45",width:"40",height:"36"},null,8,bNe),R("g",wNe,[R("use",{id:"Mask",fill:`var(${e.ns.cssVarBlockName("fill-color-8")})`,transform:"translate(8.500000, 18.000000) scale(-1, 1) translate(-8.500000, -18.000000) ","xlink:href":`#path-3-${e.id}`},null,8,SNe),R("polygon",{id:"Rectangle-Copy",fill:`var(${e.ns.cssVarBlockName("fill-color-9")})`,mask:`url(#mask-4-${e.id})`,transform:"translate(12.000000, 9.000000) scale(-1, 1) translate(-12.000000, -9.000000) ",points:"7 0 24 0 20 18 7 16.5"},null,8,ENe)]),R("polygon",{id:"Rectangle-Copy-18",fill:`var(${e.ns.cssVarBlockName("fill-color-2")})`,transform:"translate(66.000000, 51.500000) scale(-1, 1) translate(-66.000000, -51.500000) ",points:"62 45 79 45 70 58 53 58"},null,8,CNe)])])])])}var TNe=Fe(tNe,[["render",kNe],["__file","/home/runner/work/element-plus/element-plus/packages/components/empty/src/img-empty.vue"]]);const $Ne={image:{type:String,default:""},imageSize:Number,description:{type:String,default:""}},xNe=["src"],INe={key:1},ANe=Ce({name:"ElEmpty"}),MNe=Ce({...ANe,props:$Ne,setup(e){const t=e,{t:n}=Vt(),r=De("empty"),o=z(()=>t.description||n("el.table.emptyText")),s=z(()=>({width:t.imageSize?`${t.imageSize}px`:""}));return(a,i)=>(k(),D("div",{class:W(h(r).b())},[R("div",{class:W(h(r).e("image")),style:Je(h(s))},[a.image?(k(),D("img",{key:0,src:a.image,ondragstart:"return false"},null,8,xNe)):Pe(a.$slots,"image",{key:1},()=>[me(TNe)])],6),R("div",{class:W(h(r).e("description"))},[a.$slots.description?Pe(a.$slots,"description",{key:0}):(k(),D("p",INe,ze(h(o)),1))],2),a.$slots.default?(k(),D("div",{key:0,class:W(h(r).e("bottom"))},[Pe(a.$slots,"default")],2)):Ae("v-if",!0)],2))}});var ONe=Fe(MNe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/empty/src/empty.vue"]]);const NA=St(ONe),RNe=He({model:Object,rules:{type:Re(Object)},labelPosition:{type:String,values:["left","right","top"],default:"right"},requireAsteriskPosition:{type:String,values:["left","right"],default:"left"},labelWidth:{type:[String,Number],default:""},labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},size:{type:String,values:ha},disabled:Boolean,validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1},scrollToError:Boolean}),PNe={validate:(e,t,n)=>(Ge(e)||ft(e))&&Dn(t)&&ft(n)};function NNe(){const e=ee([]),t=z(()=>{if(!e.value.length)return"0";const s=Math.max(...e.value);return s?`${s}px`:""});function n(s){const a=e.value.indexOf(s);return a===-1&&t.value,a}function r(s,a){if(s&&a){const i=n(a);e.value.splice(i,1,s)}else s&&e.value.push(s)}function o(s){const a=n(s);a>-1&&e.value.splice(a,1)}return{autoLabelWidth:t,registerLabelWidth:r,deregisterLabelWidth:o}}const Xf=(e,t)=>{const n=bu(t);return n.length>0?e.filter(r=>r.prop&&n.includes(r.prop)):e},LNe="ElForm",BNe=Ce({name:LNe}),DNe=Ce({...BNe,props:RNe,emits:PNe,setup(e,{expose:t,emit:n}){const r=e,o=[],s=Ln(),a=De("form"),i=z(()=>{const{labelPosition:_,inline:y}=r;return[a.b(),a.m(s.value||"default"),{[a.m(`label-${_}`)]:_,[a.m("inline")]:y}]}),l=_=>{o.push(_)},u=_=>{_.prop&&o.splice(o.indexOf(_),1)},c=(_=[])=>{r.model&&Xf(o,_).forEach(y=>y.resetField())},d=(_=[])=>{Xf(o,_).forEach(y=>y.clearValidate())},f=z(()=>!!r.model),p=_=>{if(o.length===0)return[];const y=Xf(o,_);return y.length?y:[]},m=async _=>g(void 0,_),v=async(_=[])=>{if(!f.value)return!1;const y=p(_);if(y.length===0)return!0;let S={};for(const w of y)try{await w.validate("")}catch(E){S={...S,...E}}return Object.keys(S).length===0?!0:Promise.reject(S)},g=async(_=[],y)=>{const S=!at(y);try{const w=await v(_);return w===!0&&(y==null||y(w)),w}catch(w){if(w instanceof Error)throw w;const E=w;return r.scrollToError&&b(Object.keys(E)[0]),y==null||y(!1,E),S&&Promise.reject(E)}},b=_=>{var y;const S=Xf(o,_)[0];S&&((y=S.$el)==null||y.scrollIntoView())};return Be(()=>r.rules,()=>{r.validateOnRuleChange&&m().catch(_=>void 0)},{deep:!0}),Ct(cl,Ht({...On(r),emit:n,resetFields:c,clearValidate:d,validateField:g,addField:l,removeField:u,...NNe()})),t({validate:m,validateField:g,resetFields:c,clearValidate:d,scrollToField:b}),(_,y)=>(k(),D("form",{class:W(h(i))},[Pe(_.$slots,"default")],2))}});var zNe=Fe(DNe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form.vue"]]);function Ai(){return Ai=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Mp(e,t,n){return HNe()?Mp=Reflect.construct.bind():Mp=function(o,s,a){var i=[null];i.push.apply(i,s);var l=Function.bind.apply(o,i),u=new l;return a&&Od(u,a.prototype),u},Mp.apply(null,arguments)}function VNe(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function O1(e){var t=typeof Map=="function"?new Map:void 0;return O1=function(r){if(r===null||!VNe(r))return r;if(typeof r!="function")throw new TypeError("Super expression must either be null or a function");if(typeof t<"u"){if(t.has(r))return t.get(r);t.set(r,o)}function o(){return Mp(r,arguments,M1(this).constructor)}return o.prototype=Object.create(r.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),Od(o,r)},O1(e)}var jNe=/%[sdj%]/g,UNe=function(){};function R1(e){if(!e||!e.length)return null;var t={};return e.forEach(function(n){var r=n.field;t[r]=t[r]||[],t[r].push(n)}),t}function Qr(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r=s)return i;switch(i){case"%s":return String(n[o++]);case"%d":return Number(n[o++]);case"%j":try{return JSON.stringify(n[o++])}catch{return"[Circular]"}break;default:return i}});return a}return e}function WNe(e){return e==="string"||e==="url"||e==="hex"||e==="email"||e==="date"||e==="pattern"}function Un(e,t){return!!(e==null||t==="array"&&Array.isArray(e)&&!e.length||WNe(t)&&typeof e=="string"&&!e)}function qNe(e,t,n){var r=[],o=0,s=e.length;function a(i){r.push.apply(r,i||[]),o++,o===s&&n(r)}e.forEach(function(i){t(i,a)})}function KS(e,t,n){var r=0,o=e.length;function s(a){if(a&&a.length){n(a);return}var i=r;r=r+1,i()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},kc={integer:function(t){return kc.number(t)&&parseInt(t,10)===t},float:function(t){return kc.number(t)&&!kc.integer(t)},array:function(t){return Array.isArray(t)},regexp:function(t){if(t instanceof RegExp)return!0;try{return!!new RegExp(t)}catch{return!1}},date:function(t){return typeof t.getTime=="function"&&typeof t.getMonth=="function"&&typeof t.getYear=="function"&&!isNaN(t.getTime())},number:function(t){return isNaN(t)?!1:typeof t=="number"},object:function(t){return typeof t=="object"&&!kc.array(t)},method:function(t){return typeof t=="function"},email:function(t){return typeof t=="string"&&t.length<=320&&!!t.match(JS.email)},url:function(t){return typeof t=="string"&&t.length<=2048&&!!t.match(QNe())},hex:function(t){return typeof t=="string"&&!!t.match(JS.hex)}},ZNe=function(t,n,r,o,s){if(t.required&&n===void 0){LA(t,n,r,o,s);return}var a=["integer","float","array","regexp","object","method","email","number","date","url","hex"],i=t.type;a.indexOf(i)>-1?kc[i](n)||o.push(Qr(s.messages.types[i],t.fullField,t.type)):i&&typeof n!==t.type&&o.push(Qr(s.messages.types[i],t.fullField,t.type))},eLe=function(t,n,r,o,s){var a=typeof t.len=="number",i=typeof t.min=="number",l=typeof t.max=="number",u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=n,d=null,f=typeof n=="number",p=typeof n=="string",m=Array.isArray(n);if(f?d="number":p?d="string":m&&(d="array"),!d)return!1;m&&(c=n.length),p&&(c=n.replace(u,"_").length),a?c!==t.len&&o.push(Qr(s.messages[d].len,t.fullField,t.len)):i&&!l&&ct.max?o.push(Qr(s.messages[d].max,t.fullField,t.max)):i&&l&&(ct.max)&&o.push(Qr(s.messages[d].range,t.fullField,t.min,t.max))},bl="enum",tLe=function(t,n,r,o,s){t[bl]=Array.isArray(t[bl])?t[bl]:[],t[bl].indexOf(n)===-1&&o.push(Qr(s.messages[bl],t.fullField,t[bl].join(", ")))},nLe=function(t,n,r,o,s){if(t.pattern){if(t.pattern instanceof RegExp)t.pattern.lastIndex=0,t.pattern.test(n)||o.push(Qr(s.messages.pattern.mismatch,t.fullField,n,t.pattern));else if(typeof t.pattern=="string"){var a=new RegExp(t.pattern);a.test(n)||o.push(Qr(s.messages.pattern.mismatch,t.fullField,n,t.pattern))}}},Gt={required:LA,whitespace:JNe,type:ZNe,range:eLe,enum:tLe,pattern:nLe},rLe=function(t,n,r,o,s){var a=[],i=t.required||!t.required&&o.hasOwnProperty(t.field);if(i){if(Un(n,"string")&&!t.required)return r();Gt.required(t,n,o,a,s,"string"),Un(n,"string")||(Gt.type(t,n,o,a,s),Gt.range(t,n,o,a,s),Gt.pattern(t,n,o,a,s),t.whitespace===!0&&Gt.whitespace(t,n,o,a,s))}r(a)},oLe=function(t,n,r,o,s){var a=[],i=t.required||!t.required&&o.hasOwnProperty(t.field);if(i){if(Un(n)&&!t.required)return r();Gt.required(t,n,o,a,s),n!==void 0&&Gt.type(t,n,o,a,s)}r(a)},sLe=function(t,n,r,o,s){var a=[],i=t.required||!t.required&&o.hasOwnProperty(t.field);if(i){if(n===""&&(n=void 0),Un(n)&&!t.required)return r();Gt.required(t,n,o,a,s),n!==void 0&&(Gt.type(t,n,o,a,s),Gt.range(t,n,o,a,s))}r(a)},aLe=function(t,n,r,o,s){var a=[],i=t.required||!t.required&&o.hasOwnProperty(t.field);if(i){if(Un(n)&&!t.required)return r();Gt.required(t,n,o,a,s),n!==void 0&&Gt.type(t,n,o,a,s)}r(a)},iLe=function(t,n,r,o,s){var a=[],i=t.required||!t.required&&o.hasOwnProperty(t.field);if(i){if(Un(n)&&!t.required)return r();Gt.required(t,n,o,a,s),Un(n)||Gt.type(t,n,o,a,s)}r(a)},lLe=function(t,n,r,o,s){var a=[],i=t.required||!t.required&&o.hasOwnProperty(t.field);if(i){if(Un(n)&&!t.required)return r();Gt.required(t,n,o,a,s),n!==void 0&&(Gt.type(t,n,o,a,s),Gt.range(t,n,o,a,s))}r(a)},uLe=function(t,n,r,o,s){var a=[],i=t.required||!t.required&&o.hasOwnProperty(t.field);if(i){if(Un(n)&&!t.required)return r();Gt.required(t,n,o,a,s),n!==void 0&&(Gt.type(t,n,o,a,s),Gt.range(t,n,o,a,s))}r(a)},cLe=function(t,n,r,o,s){var a=[],i=t.required||!t.required&&o.hasOwnProperty(t.field);if(i){if(n==null&&!t.required)return r();Gt.required(t,n,o,a,s,"array"),n!=null&&(Gt.type(t,n,o,a,s),Gt.range(t,n,o,a,s))}r(a)},dLe=function(t,n,r,o,s){var a=[],i=t.required||!t.required&&o.hasOwnProperty(t.field);if(i){if(Un(n)&&!t.required)return r();Gt.required(t,n,o,a,s),n!==void 0&&Gt.type(t,n,o,a,s)}r(a)},fLe="enum",pLe=function(t,n,r,o,s){var a=[],i=t.required||!t.required&&o.hasOwnProperty(t.field);if(i){if(Un(n)&&!t.required)return r();Gt.required(t,n,o,a,s),n!==void 0&&Gt[fLe](t,n,o,a,s)}r(a)},hLe=function(t,n,r,o,s){var a=[],i=t.required||!t.required&&o.hasOwnProperty(t.field);if(i){if(Un(n,"string")&&!t.required)return r();Gt.required(t,n,o,a,s),Un(n,"string")||Gt.pattern(t,n,o,a,s)}r(a)},mLe=function(t,n,r,o,s){var a=[],i=t.required||!t.required&&o.hasOwnProperty(t.field);if(i){if(Un(n,"date")&&!t.required)return r();if(Gt.required(t,n,o,a,s),!Un(n,"date")){var l;n instanceof Date?l=n:l=new Date(n),Gt.type(t,l,o,a,s),l&&Gt.range(t,l.getTime(),o,a,s)}}r(a)},vLe=function(t,n,r,o,s){var a=[],i=Array.isArray(n)?"array":typeof n;Gt.required(t,n,o,a,s,i),r(a)},Av=function(t,n,r,o,s){var a=t.type,i=[],l=t.required||!t.required&&o.hasOwnProperty(t.field);if(l){if(Un(n,a)&&!t.required)return r();Gt.required(t,n,o,i,s,a),Un(n,a)||Gt.type(t,n,o,i,s)}r(i)},gLe=function(t,n,r,o,s){var a=[],i=t.required||!t.required&&o.hasOwnProperty(t.field);if(i){if(Un(n)&&!t.required)return r();Gt.required(t,n,o,a,s)}r(a)},Qc={string:rLe,method:oLe,number:sLe,boolean:aLe,regexp:iLe,integer:lLe,float:uLe,array:cLe,object:dLe,enum:pLe,pattern:hLe,date:mLe,url:Av,hex:Av,email:Av,required:vLe,any:gLe};function P1(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var t=JSON.parse(JSON.stringify(this));return t.clone=this.clone,t}}}var N1=P1(),mf=function(){function e(n){this.rules=null,this._messages=N1,this.define(n)}var t=e.prototype;return t.define=function(r){var o=this;if(!r)throw new Error("Cannot configure a schema with no rules");if(typeof r!="object"||Array.isArray(r))throw new Error("Rules must be an object");this.rules={},Object.keys(r).forEach(function(s){var a=r[s];o.rules[s]=Array.isArray(a)?a:[a]})},t.messages=function(r){return r&&(this._messages=XS(P1(),r)),this._messages},t.validate=function(r,o,s){var a=this;o===void 0&&(o={}),s===void 0&&(s=function(){});var i=r,l=o,u=s;if(typeof l=="function"&&(u=l,l={}),!this.rules||Object.keys(this.rules).length===0)return u&&u(null,i),Promise.resolve(i);function c(v){var g=[],b={};function _(S){if(Array.isArray(S)){var w;g=(w=g).concat.apply(w,S)}else g.push(S)}for(var y=0;y");const o=De("form"),s=ee(),a=ee(0),i=()=>{var c;if((c=s.value)!=null&&c.firstElementChild){const d=window.getComputedStyle(s.value.firstElementChild).width;return Math.ceil(Number.parseFloat(d))}else return 0},l=(c="update")=>{Xe(()=>{t.default&&e.isAutoWidth&&(c==="update"?a.value=i():c==="remove"&&(n==null||n.deregisterLabelWidth(a.value)))})},u=()=>l("update");return vt(()=>{u()}),fn(()=>{l("remove")}),Uo(()=>u()),Be(a,(c,d)=>{e.updateAll&&(n==null||n.registerLabelWidth(c,d))}),gr(z(()=>{var c,d;return(d=(c=s.value)==null?void 0:c.firstElementChild)!=null?d:null}),u),()=>{var c,d;if(!t)return null;const{isAutoWidth:f}=e;if(f){const p=n==null?void 0:n.autoLabelWidth,m=r==null?void 0:r.hasLabel,v={};if(m&&p&&p!=="auto"){const g=Math.max(0,Number.parseInt(p,10)-a.value),b=n.labelPosition==="left"?"marginRight":"marginLeft";g&&(v[b]=`${g}px`)}return me("div",{ref:s,class:[o.be("item","label-wrap")],style:v},[(c=t.default)==null?void 0:c.call(t)])}else return me(Ze,{ref:s},[(d=t.default)==null?void 0:d.call(t)])}}});const wLe=["role","aria-labelledby"],SLe=Ce({name:"ElFormItem"}),ELe=Ce({...SLe,props:yLe,setup(e,{expose:t}){const n=e,r=Wn(),o=Ye(cl,void 0),s=Ye(fs,void 0),a=Ln(void 0,{formItem:!1}),i=De("form-item"),l=Fo().value,u=ee([]),c=ee(""),d=LQ(c,100),f=ee(""),p=ee();let m,v=!1;const g=z(()=>{if((o==null?void 0:o.labelPosition)==="top")return{};const Y=Nn(n.labelWidth||(o==null?void 0:o.labelWidth)||"");return Y?{width:Y}:{}}),b=z(()=>{if((o==null?void 0:o.labelPosition)==="top"||o!=null&&o.inline)return{};if(!n.label&&!n.labelWidth&&$)return{};const Y=Nn(n.labelWidth||(o==null?void 0:o.labelWidth)||"");return!n.label&&!r.label?{marginLeft:Y}:{}}),_=z(()=>[i.b(),i.m(a.value),i.is("error",c.value==="error"),i.is("validating",c.value==="validating"),i.is("success",c.value==="success"),i.is("required",F.value||n.required),i.is("no-asterisk",o==null?void 0:o.hideRequiredAsterisk),(o==null?void 0:o.requireAsteriskPosition)==="right"?"asterisk-right":"asterisk-left",{[i.m("feedback")]:o==null?void 0:o.statusIcon}]),y=z(()=>Dn(n.inlineMessage)?n.inlineMessage:(o==null?void 0:o.inlineMessage)||!1),S=z(()=>[i.e("error"),{[i.em("error","inline")]:y.value}]),w=z(()=>n.prop?ft(n.prop)?n.prop:n.prop.join("."):""),E=z(()=>!!(n.label||r.label)),T=z(()=>n.for||u.value.length===1?u.value[0]:void 0),C=z(()=>!T.value&&E.value),$=!!s,x=z(()=>{const Y=o==null?void 0:o.model;if(!(!Y||!n.prop))return yp(Y,n.prop).value}),N=z(()=>{const{required:Y}=n,K=[];n.rules&&K.push(...bu(n.rules));const se=o==null?void 0:o.rules;if(se&&n.prop){const ne=yp(se,n.prop).value;ne&&K.push(...bu(ne))}if(Y!==void 0){const ne=K.map((ve,J)=>[ve,J]).filter(([ve])=>Object.keys(ve).includes("required"));if(ne.length>0)for(const[ve,J]of ne)ve.required!==Y&&(K[J]={...ve,required:Y});else K.push({required:Y})}return K}),I=z(()=>N.value.length>0),L=Y=>N.value.filter(se=>!se.trigger||!Y?!0:Array.isArray(se.trigger)?se.trigger.includes(Y):se.trigger===Y).map(({trigger:se,...ne})=>ne),F=z(()=>N.value.some(Y=>Y.required)),B=z(()=>{var Y;return d.value==="error"&&n.showMessage&&((Y=o==null?void 0:o.showMessage)!=null?Y:!0)}),U=z(()=>`${n.label||""}${(o==null?void 0:o.labelSuffix)||""}`),P=Y=>{c.value=Y},O=Y=>{var K,se;const{errors:ne,fields:ve}=Y;(!ne||!ve)&&console.error(Y),P("error"),f.value=ne?(se=(K=ne==null?void 0:ne[0])==null?void 0:K.message)!=null?se:`${n.prop} is required`:"",o==null||o.emit("validate",n.prop,!1,f.value)},H=()=>{P("success"),o==null||o.emit("validate",n.prop,!0,"")},q=async Y=>{const K=w.value;return new mf({[K]:Y}).validate({[K]:x.value},{firstFields:!0}).then(()=>(H(),!0)).catch(ne=>(O(ne),Promise.reject(ne)))},te=async(Y,K)=>{if(v||!n.prop)return!1;const se=at(K);if(!I.value)return K==null||K(!1),!1;const ne=L(Y);return ne.length===0?(K==null||K(!0),!0):(P("validating"),q(ne).then(()=>(K==null||K(!0),!0)).catch(ve=>{const{fields:J}=ve;return K==null||K(!1,J),se?!1:Promise.reject(J)}))},V=()=>{P(""),f.value="",v=!1},Q=async()=>{const Y=o==null?void 0:o.model;if(!Y||!n.prop)return;const K=yp(Y,n.prop);v=!0,K.value=E8(m),await Xe(),V(),v=!1},ge=Y=>{u.value.includes(Y)||u.value.push(Y)},ie=Y=>{u.value=u.value.filter(K=>K!==Y)};Be(()=>n.error,Y=>{f.value=Y||"",P(Y?"error":"")},{immediate:!0}),Be(()=>n.validateStatus,Y=>P(Y||""));const ke=Ht({...On(n),$el:p,size:a,validateState:c,labelId:l,inputIds:u,isGroup:C,hasLabel:E,addInputId:ge,removeInputId:ie,resetField:Q,clearValidate:V,validate:te});return Ct(fs,ke),vt(()=>{n.prop&&(o==null||o.addField(ke),m=E8(x.value))}),fn(()=>{o==null||o.removeField(ke)}),t({size:a,validateMessage:f,validateState:c,validate:te,clearValidate:V,resetField:Q}),(Y,K)=>{var se;return k(),D("div",{ref_key:"formItemRef",ref:p,class:W(h(_)),role:h(C)?"group":void 0,"aria-labelledby":h(C)?h(l):void 0},[me(h(bLe),{"is-auto-width":h(g).width==="auto","update-all":((se=h(o))==null?void 0:se.labelWidth)==="auto"},{default:be(()=>[h(E)?(k(),Me(kt(h(T)?"label":"div"),{key:0,id:h(l),for:h(T),class:W(h(i).e("label")),style:Je(h(g))},{default:be(()=>[Pe(Y.$slots,"label",{label:h(U)},()=>[Ot(ze(h(U)),1)])]),_:3},8,["id","for","class","style"])):Ae("v-if",!0)]),_:3},8,["is-auto-width","update-all"]),R("div",{class:W(h(i).e("content")),style:Je(h(b))},[Pe(Y.$slots,"default"),me(xn,{name:`${h(i).namespace.value}-zoom-in-top`},{default:be(()=>[h(B)?Pe(Y.$slots,"error",{key:0,error:f.value},()=>[R("div",{class:W(h(S))},ze(f.value),3)]):Ae("v-if",!0)]),_:3},8,["name"])],6)],10,wLe)}}});var BA=Fe(ELe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/form/src/form-item.vue"]]);const CLe=St(zNe,{FormItem:BA}),kLe=En(BA),TLe=He({urlList:{type:Re(Array),default:()=>hn([])},zIndex:{type:Number},initialIndex:{type:Number,default:0},infinite:{type:Boolean,default:!0},hideOnClickModal:{type:Boolean,default:!1},teleported:{type:Boolean,default:!1},closeOnPressEscape:{type:Boolean,default:!0},zoomRate:{type:Number,default:1.2}}),$Le={close:()=>!0,switch:e=>dt(e)},xLe=["src"],ILe=Ce({name:"ElImageViewer"}),ALe=Ce({...ILe,props:TLe,emits:$Le,setup(e,{expose:t,emit:n}){const r=e,o={CONTAIN:{name:"contain",icon:Po(Kx)},ORIGINAL:{name:"original",icon:Po(t7)}},s=rb()?"DOMMouseScroll":"mousewheel",{t:a}=Vt(),i=De("image-viewer"),{nextZIndex:l}=va(),u=ee(),c=ee([]),d=_0(),f=ee(!0),p=ee(r.initialIndex),m=rn(o.CONTAIN),v=ee({scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1}),g=z(()=>{const{urlList:O}=r;return O.length<=1}),b=z(()=>p.value===0),_=z(()=>p.value===r.urlList.length-1),y=z(()=>r.urlList[p.value]),S=z(()=>{const{scale:O,deg:H,offsetX:q,offsetY:te,enableTransition:V}=v.value;let Q=q/O,ge=te/O;switch(H%360){case 90:case-270:[Q,ge]=[ge,-Q];break;case 180:case-180:[Q,ge]=[-Q,-ge];break;case 270:case-90:[Q,ge]=[-ge,Q];break}const ie={transform:`scale(${O}) rotate(${H}deg) translate(${Q}px, ${ge}px)`,transition:V?"transform .3s":""};return m.value.name===o.CONTAIN.name&&(ie.maxWidth=ie.maxHeight="100%"),ie}),w=z(()=>dt(r.zIndex)?r.zIndex:l());function E(){C(),n("close")}function T(){const O=Vi(q=>{switch(q.code){case ot.esc:r.closeOnPressEscape&&E();break;case ot.space:L();break;case ot.left:B();break;case ot.up:P("zoomIn");break;case ot.right:U();break;case ot.down:P("zoomOut");break}}),H=Vi(q=>{(q.wheelDelta?q.wheelDelta:-q.detail)>0?P("zoomIn",{zoomRate:r.zoomRate,enableTransition:!1}):P("zoomOut",{zoomRate:r.zoomRate,enableTransition:!1})});d.run(()=>{dn(document,"keydown",O),dn(document,s,H)})}function C(){d.stop()}function $(){f.value=!1}function x(O){f.value=!1,O.target.alt=a("el.image.error")}function N(O){if(f.value||O.button!==0||!u.value)return;v.value.enableTransition=!1;const{offsetX:H,offsetY:q}=v.value,te=O.pageX,V=O.pageY,Q=Vi(ie=>{v.value={...v.value,offsetX:H+ie.pageX-te,offsetY:q+ie.pageY-V}}),ge=dn(document,"mousemove",Q);dn(document,"mouseup",()=>{ge()}),O.preventDefault()}function I(){v.value={scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1}}function L(){if(f.value)return;const O=Cd(o),H=Object.values(o),q=m.value.name,V=(H.findIndex(Q=>Q.name===q)+1)%O.length;m.value=o[O[V]],I()}function F(O){const H=r.urlList.length;p.value=(O+H)%H}function B(){b.value&&!r.infinite||F(p.value-1)}function U(){_.value&&!r.infinite||F(p.value+1)}function P(O,H={}){if(f.value)return;const{zoomRate:q,rotateDeg:te,enableTransition:V}={zoomRate:r.zoomRate,rotateDeg:90,enableTransition:!0,...H};switch(O){case"zoomOut":v.value.scale>.2&&(v.value.scale=Number.parseFloat((v.value.scale/q).toFixed(3)));break;case"zoomIn":v.value.scale<7&&(v.value.scale=Number.parseFloat((v.value.scale*q).toFixed(3)));break;case"clockwise":v.value.deg+=te;break;case"anticlockwise":v.value.deg-=te;break}v.value.enableTransition=V}return Be(y,()=>{Xe(()=>{const O=c.value[0];O!=null&&O.complete||(f.value=!0)})}),Be(p,O=>{I(),n("switch",O)}),vt(()=>{var O,H;T(),(H=(O=u.value)==null?void 0:O.focus)==null||H.call(O)}),t({setActiveItem:F}),(O,H)=>(k(),Me(Du,{to:"body",disabled:!O.teleported},[me(xn,{name:"viewer-fade",appear:""},{default:be(()=>[R("div",{ref_key:"wrapper",ref:u,tabindex:-1,class:W(h(i).e("wrapper")),style:Je({zIndex:h(w)})},[R("div",{class:W(h(i).e("mask")),onClick:H[0]||(H[0]=ct(q=>O.hideOnClickModal&&E(),["self"]))},null,2),Ae(" CLOSE "),R("span",{class:W([h(i).e("btn"),h(i).e("close")]),onClick:E},[me(h(et),null,{default:be(()=>[me(h(wo))]),_:1})],2),Ae(" ARROW "),h(g)?Ae("v-if",!0):(k(),D(Ze,{key:0},[R("span",{class:W([h(i).e("btn"),h(i).e("prev"),h(i).is("disabled",!O.infinite&&h(b))]),onClick:B},[me(h(et),null,{default:be(()=>[me(h(ea))]),_:1})],2),R("span",{class:W([h(i).e("btn"),h(i).e("next"),h(i).is("disabled",!O.infinite&&h(_))]),onClick:U},[me(h(et),null,{default:be(()=>[me(h(vr))]),_:1})],2)],64)),Ae(" ACTIONS "),R("div",{class:W([h(i).e("btn"),h(i).e("actions")])},[R("div",{class:W(h(i).e("actions__inner"))},[me(h(et),{onClick:H[1]||(H[1]=q=>P("zoomOut"))},{default:be(()=>[me(h(i7))]),_:1}),me(h(et),{onClick:H[2]||(H[2]=q=>P("zoomIn"))},{default:be(()=>[me(h(tb))]),_:1}),R("i",{class:W(h(i).e("actions__divider"))},null,2),me(h(et),{onClick:L},{default:be(()=>[(k(),Me(kt(h(m).icon)))]),_:1}),R("i",{class:W(h(i).e("actions__divider"))},null,2),me(h(et),{onClick:H[3]||(H[3]=q=>P("anticlockwise"))},{default:be(()=>[me(h(Zx))]),_:1}),me(h(et),{onClick:H[4]||(H[4]=q=>P("clockwise"))},{default:be(()=>[me(h(e7))]),_:1})],2)],2),Ae(" CANVAS "),R("div",{class:W(h(i).e("canvas"))},[(k(!0),D(Ze,null,At(O.urlList,(q,te)=>mt((k(),D("img",{ref_for:!0,ref:V=>c.value[te]=V,key:q,src:q,style:Je(h(S)),class:W(h(i).e("img")),onLoad:$,onError:x,onMousedown:N},null,46,xLe)),[[zt,te===p.value]])),128))],2),Pe(O.$slots,"default")],6)]),_:3})],8,["disabled"]))}});var MLe=Fe(ALe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/image-viewer/src/image-viewer.vue"]]);const DA=St(MLe),OLe=He({hideOnClickModal:{type:Boolean,default:!1},src:{type:String,default:""},fit:{type:String,values:["","contain","cover","fill","none","scale-down"],default:""},loading:{type:String,values:["eager","lazy"]},lazy:{type:Boolean,default:!1},scrollContainer:{type:Re([String,Object])},previewSrcList:{type:Re(Array),default:()=>hn([])},previewTeleported:{type:Boolean,default:!1},zIndex:{type:Number},initialIndex:{type:Number,default:0},infinite:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},zoomRate:{type:Number,default:1.2}}),RLe={load:e=>e instanceof Event,error:e=>e instanceof Event,switch:e=>dt(e),close:()=>!0,show:()=>!0},PLe=["src","loading"],NLe={key:0},LLe=Ce({name:"ElImage",inheritAttrs:!1}),BLe=Ce({...LLe,props:OLe,emits:RLe,setup(e,{emit:t}){const n=e;let r="";const{t:o}=Vt(),s=De("image"),a=zu(),i=ob(),l=ee(),u=ee(!1),c=ee(!0),d=ee(!1),f=ee(),p=ee(),m=Pt&&"loading"in HTMLImageElement.prototype;let v,g;const b=z(()=>a.style),_=z(()=>{const{fit:P}=n;return Pt&&P?{objectFit:P}:{}}),y=z(()=>{const{previewSrcList:P}=n;return Array.isArray(P)&&P.length>0}),S=z(()=>{const{previewSrcList:P,initialIndex:O}=n;let H=O;return O>P.length-1&&(H=0),H}),w=z(()=>n.loading==="eager"?!1:!m&&n.loading==="lazy"||n.lazy),E=()=>{Pt&&(c.value=!0,u.value=!1,l.value=n.src)};function T(P){c.value=!1,u.value=!1,t("load",P)}function C(P){c.value=!1,u.value=!0,t("error",P)}function $(){QQ(f.value,p.value)&&(E(),I())}const x=Nx($,200);async function N(){var P;if(!Pt)return;await Xe();const{scrollContainer:O}=n;zo(O)?p.value=O:ft(O)&&O!==""?p.value=(P=document.querySelector(O))!=null?P:void 0:f.value&&(p.value=X4(f.value)),p.value&&(v=dn(p,"scroll",x),setTimeout(()=>$(),100))}function I(){!Pt||!p.value||!x||(v==null||v(),p.value=void 0)}function L(P){if(P.ctrlKey){if(P.deltaY<0)return P.preventDefault(),!1;if(P.deltaY>0)return P.preventDefault(),!1}}function F(){y.value&&(g=dn("wheel",L,{passive:!1}),r=document.body.style.overflow,document.body.style.overflow="hidden",d.value=!0,t("show"))}function B(){g==null||g(),document.body.style.overflow=r,d.value=!1,t("close")}function U(P){t("switch",P)}return Be(()=>n.src,()=>{w.value?(c.value=!0,u.value=!1,I(),N()):E()}),vt(()=>{w.value?N():E()}),(P,O)=>(k(),D("div",{ref_key:"container",ref:f,class:W([h(s).b(),P.$attrs.class]),style:Je(h(b))},[l.value!==void 0&&!u.value?(k(),D("img",$t({key:0},h(i),{src:l.value,loading:P.loading,style:h(_),class:[h(s).e("inner"),h(y)&&h(s).e("preview"),c.value&&h(s).is("loading")],onClick:F,onLoad:T,onError:C}),null,16,PLe)):Ae("v-if",!0),c.value||u.value?(k(),D("div",{key:1,class:W(h(s).e("wrapper"))},[c.value?Pe(P.$slots,"placeholder",{key:0},()=>[R("div",{class:W(h(s).e("placeholder"))},null,2)]):u.value?Pe(P.$slots,"error",{key:1},()=>[R("div",{class:W(h(s).e("error"))},ze(h(o)("el.image.error")),3)]):Ae("v-if",!0)],2)):Ae("v-if",!0),h(y)?(k(),D(Ze,{key:2},[d.value?(k(),Me(h(DA),{key:0,"z-index":P.zIndex,"initial-index":h(S),infinite:P.infinite,"zoom-rate":P.zoomRate,"url-list":P.previewSrcList,"hide-on-click-modal":P.hideOnClickModal,teleported:P.previewTeleported,"close-on-press-escape":P.closeOnPressEscape,onClose:B,onSwitch:U},{default:be(()=>[P.$slots.viewer?(k(),D("div",NLe,[Pe(P.$slots,"viewer")])):Ae("v-if",!0)]),_:3},8,["z-index","initial-index","infinite","zoom-rate","url-list","hide-on-click-modal","teleported","close-on-press-escape"])):Ae("v-if",!0)],64)):Ae("v-if",!0)],6))}});var DLe=Fe(BLe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/image/src/image.vue"]]);const zLe=St(DLe),FLe=He({id:{type:String,default:void 0},step:{type:Number,default:1},stepStrictly:Boolean,max:{type:Number,default:Number.POSITIVE_INFINITY},min:{type:Number,default:Number.NEGATIVE_INFINITY},modelValue:Number,readonly:Boolean,disabled:Boolean,size:Fr,controls:{type:Boolean,default:!0},controlsPosition:{type:String,default:"",values:["","right"]},valueOnClear:{type:[String,Number,null],validator:e=>e===null||dt(e)||["min","max"].includes(e),default:null},name:String,label:String,placeholder:String,precision:{type:Number,validator:e=>e>=0&&e===Number.parseInt(`${e}`,10)},validateEvent:{type:Boolean,default:!0}}),HLe={[un]:(e,t)=>e!==t,blur:e=>e instanceof FocusEvent,focus:e=>e instanceof FocusEvent,[kr]:e=>dt(e)||Yn(e),[Et]:e=>dt(e)||Yn(e)},VLe=["aria-label","onKeydown"],jLe=["aria-label","onKeydown"],ULe=Ce({name:"ElInputNumber"}),WLe=Ce({...ULe,props:FLe,emits:HLe,setup(e,{expose:t,emit:n}){const r=e,{t:o}=Vt(),s=De("input-number"),a=ee(),i=Ht({currentValue:r.modelValue,userInput:null}),{formItem:l}=xr(),u=z(()=>dt(r.modelValue)&&r.modelValue<=r.min),c=z(()=>dt(r.modelValue)&&r.modelValue>=r.max),d=z(()=>{const L=b(r.step);return Gn(r.precision)?Math.max(b(r.modelValue),L):(L>r.precision,r.precision)}),f=z(()=>r.controls&&r.controlsPosition==="right"),p=Ln(),m=jr(),v=z(()=>{if(i.userInput!==null)return i.userInput;let L=i.currentValue;if(Yn(L))return"";if(dt(L)){if(Number.isNaN(L))return"";Gn(r.precision)||(L=L.toFixed(r.precision))}return L}),g=(L,F)=>{if(Gn(F)&&(F=d.value),F===0)return Math.round(L);let B=String(L);const U=B.indexOf(".");if(U===-1||!B.replace(".","").split("")[U+F])return L;const H=B.length;return B.charAt(H-1)==="5"&&(B=`${B.slice(0,Math.max(0,H-1))}6`),Number.parseFloat(Number(B).toFixed(F))},b=L=>{if(Yn(L))return 0;const F=L.toString(),B=F.indexOf(".");let U=0;return B!==-1&&(U=F.length-B-1),U},_=(L,F=1)=>dt(L)?g(L+r.step*F):i.currentValue,y=()=>{if(r.readonly||m.value||c.value)return;const L=Number(v.value)||0,F=_(L);E(F),n(kr,i.currentValue)},S=()=>{if(r.readonly||m.value||u.value)return;const L=Number(v.value)||0,F=_(L,-1);E(F),n(kr,i.currentValue)},w=(L,F)=>{const{max:B,min:U,step:P,precision:O,stepStrictly:H,valueOnClear:q}=r;let te=Number(L);if(Yn(L)||Number.isNaN(te))return null;if(L===""){if(q===null)return null;te=ft(q)?{min:U,max:B}[q]:q}return H&&(te=g(Math.round(te/P)*P,O)),Gn(O)||(te=g(te,O)),(te>B||teB?B:U,F&&n(Et,te)),te},E=(L,F=!0)=>{var B;const U=i.currentValue,P=w(L);if(U!==P){if(!F){n(Et,P);return}i.userInput=null,n(Et,P),n(un,P,U),r.validateEvent&&((B=l==null?void 0:l.validate)==null||B.call(l,"change").catch(O=>void 0)),i.currentValue=P}},T=L=>{i.userInput=L;const F=L===""?null:Number(L);n(kr,F),E(F,!1)},C=L=>{const F=L!==""?Number(L):"";(dt(F)&&!Number.isNaN(F)||L==="")&&E(F),i.userInput=null},$=()=>{var L,F;(F=(L=a.value)==null?void 0:L.focus)==null||F.call(L)},x=()=>{var L,F;(F=(L=a.value)==null?void 0:L.blur)==null||F.call(L)},N=L=>{n("focus",L)},I=L=>{var F;n("blur",L),r.validateEvent&&((F=l==null?void 0:l.validate)==null||F.call(l,"blur").catch(B=>void 0))};return Be(()=>r.modelValue,L=>{const F=w(i.userInput),B=w(L,!0);!dt(F)&&(!F||F!==B)&&(i.currentValue=B,i.userInput=null)},{immediate:!0}),vt(()=>{var L;const{min:F,max:B,modelValue:U}=r,P=(L=a.value)==null?void 0:L.input;if(P.setAttribute("role","spinbutton"),Number.isFinite(B)?P.setAttribute("aria-valuemax",String(B)):P.removeAttribute("aria-valuemax"),Number.isFinite(F)?P.setAttribute("aria-valuemin",String(F)):P.removeAttribute("aria-valuemin"),P.setAttribute("aria-valuenow",String(i.currentValue)),P.setAttribute("aria-disabled",String(m.value)),!dt(U)&&U!=null){let O=Number(U);Number.isNaN(O)&&(O=null),n(Et,O)}}),Uo(()=>{var L;const F=(L=a.value)==null?void 0:L.input;F==null||F.setAttribute("aria-valuenow",`${i.currentValue}`)}),t({focus:$,blur:x}),(L,F)=>(k(),D("div",{class:W([h(s).b(),h(s).m(h(p)),h(s).is("disabled",h(m)),h(s).is("without-controls",!L.controls),h(s).is("controls-right",h(f))]),onDragstart:F[0]||(F[0]=ct(()=>{},["prevent"]))},[L.controls?mt((k(),D("span",{key:0,role:"button","aria-label":h(o)("el.inputNumber.decrease"),class:W([h(s).e("decrease"),h(s).is("disabled",h(u))]),onKeydown:Rt(S,["enter"])},[me(h(et),null,{default:be(()=>[h(f)?(k(),Me(h(da),{key:0})):(k(),Me(h(Yx),{key:1}))]),_:1})],42,VLe)),[[h(Qh),S]]):Ae("v-if",!0),L.controls?mt((k(),D("span",{key:1,role:"button","aria-label":h(o)("el.inputNumber.increase"),class:W([h(s).e("increase"),h(s).is("disabled",h(c))]),onKeydown:Rt(y,["enter"])},[me(h(et),null,{default:be(()=>[h(f)?(k(),Me(h(cf),{key:0})):(k(),Me(h(Z4),{key:1}))]),_:1})],42,jLe)),[[h(Qh),y]]):Ae("v-if",!0),me(h(mr),{id:L.id,ref_key:"input",ref:a,type:"number",step:L.step,"model-value":h(v),placeholder:L.placeholder,readonly:L.readonly,disabled:h(m),size:h(p),max:L.max,min:L.min,name:L.name,label:L.label,"validate-event":!1,onKeydown:[Rt(ct(y,["prevent"]),["up"]),Rt(ct(S,["prevent"]),["down"])],onBlur:I,onFocus:N,onInput:T,onChange:C},null,8,["id","step","model-value","placeholder","readonly","disabled","size","max","min","name","label","onKeydown"])],34))}});var qLe=Fe(WLe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/input-number/src/input-number.vue"]]);const zA=St(qLe),KLe=He({type:{type:String,values:["primary","success","warning","info","danger","default"],default:"default"},underline:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},href:{type:String,default:""},icon:{type:on}}),GLe={click:e=>e instanceof MouseEvent},YLe=["href"],XLe=Ce({name:"ElLink"}),JLe=Ce({...XLe,props:KLe,emits:GLe,setup(e,{emit:t}){const n=e,r=De("link"),o=z(()=>[r.b(),r.m(n.type),r.is("disabled",n.disabled),r.is("underline",n.underline&&!n.disabled)]);function s(a){n.disabled||t("click",a)}return(a,i)=>(k(),D("a",{class:W(h(o)),href:a.disabled||!a.href?void 0:a.href,onClick:s},[a.icon?(k(),Me(h(et),{key:0},{default:be(()=>[(k(),Me(kt(a.icon)))]),_:1})):Ae("v-if",!0),a.$slots.default?(k(),D("span",{key:1,class:W(h(r).e("inner"))},[Pe(a.$slots,"default")],2)):Ae("v-if",!0),a.$slots.icon?Pe(a.$slots,"icon",{key:2}):Ae("v-if",!0)],10,YLe))}});var QLe=Fe(JLe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/link/src/link.vue"]]);const ZLe=St(QLe);let eBe=class{constructor(t,n){this.parent=t,this.domNode=n,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(t){t===this.subMenuItems.length?t=0:t<0&&(t=this.subMenuItems.length-1),this.subMenuItems[t].focus(),this.subIndex=t}addListeners(){const t=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,n=>{n.addEventListener("keydown",r=>{let o=!1;switch(r.code){case ot.down:{this.gotoSubIndex(this.subIndex+1),o=!0;break}case ot.up:{this.gotoSubIndex(this.subIndex-1),o=!0;break}case ot.tab:{gp(t,"mouseleave");break}case ot.enter:case ot.space:{o=!0,r.currentTarget.click();break}}return o&&(r.preventDefault(),r.stopPropagation()),!1})})}},tBe=class{constructor(t,n){this.domNode=t,this.submenu=null,this.submenu=null,this.init(n)}init(t){this.domNode.setAttribute("tabindex","0");const n=this.domNode.querySelector(`.${t}-menu`);n&&(this.submenu=new eBe(this,n)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",t=>{let n=!1;switch(t.code){case ot.down:{gp(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),n=!0;break}case ot.up:{gp(t.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),n=!0;break}case ot.tab:{gp(t.currentTarget,"mouseleave");break}case ot.enter:case ot.space:{n=!0,t.currentTarget.click();break}}n&&t.preventDefault()})}},nBe=class{constructor(t,n){this.domNode=t,this.init(n)}init(t){const n=this.domNode.childNodes;Array.from(n).forEach(r=>{r.nodeType===1&&new tBe(r,t)})}};const rBe=Ce({name:"ElMenuCollapseTransition",setup(){const e=De("menu");return{listeners:{onBeforeEnter:n=>n.style.opacity="0.2",onEnter(n,r){rs(n,`${e.namespace.value}-opacity-transition`),n.style.opacity="1",r()},onAfterEnter(n){Lr(n,`${e.namespace.value}-opacity-transition`),n.style.opacity=""},onBeforeLeave(n){n.dataset||(n.dataset={}),No(n,e.m("collapse"))?(Lr(n,e.m("collapse")),n.dataset.oldOverflow=n.style.overflow,n.dataset.scrollWidth=n.clientWidth.toString(),rs(n,e.m("collapse"))):(rs(n,e.m("collapse")),n.dataset.oldOverflow=n.style.overflow,n.dataset.scrollWidth=n.clientWidth.toString(),Lr(n,e.m("collapse"))),n.style.width=`${n.scrollWidth}px`,n.style.overflow="hidden"},onLeave(n){rs(n,"horizontal-collapse-transition"),n.style.width=`${n.dataset.scrollWidth}px`}}}}});function oBe(e,t,n,r,o,s){return k(),Me(xn,$t({mode:"out-in"},e.listeners),{default:be(()=>[Pe(e.$slots,"default")]),_:3},16)}var sBe=Fe(rBe,[["render",oBe],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-collapse-transition.vue"]]);function FA(e,t){const n=z(()=>{let o=e.parent;const s=[t.value];for(;o.type.name!=="ElMenu";)o.props.index&&s.unshift(o.props.index),o=o.parent;return s});return{parentMenu:z(()=>{let o=e.parent;for(;o&&!["ElMenu","ElSubMenu"].includes(o.type.name);)o=o.parent;return o}),indexPath:n}}function aBe(e){return z(()=>{const n=e.backgroundColor;return n?new bI(n).shade(20).toString():""})}const HA=(e,t)=>{const n=De("menu");return z(()=>n.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":aBe(e).value||"","active-color":e.activeTextColor||"",level:`${t}`}))},iBe=He({index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0},popperOffset:{type:Number,default:6},expandCloseIcon:{type:on},expandOpenIcon:{type:on},collapseCloseIcon:{type:on},collapseOpenIcon:{type:on}}),Mv="ElSubMenu";var Pb=Ce({name:Mv,props:iBe,setup(e,{slots:t,expose:n}){const r=gt(),{indexPath:o,parentMenu:s}=FA(r,z(()=>e.index)),a=De("menu"),i=De("sub-menu"),l=Ye("rootMenu");l||zn(Mv,"can not inject root menu");const u=Ye(`subMenu:${s.value.uid}`);u||zn(Mv,"can not inject sub menu");const c=ee({}),d=ee({});let f;const p=ee(!1),m=ee(),v=ee(null),g=z(()=>N.value==="horizontal"&&_.value?"bottom-start":"right-start"),b=z(()=>N.value==="horizontal"&&_.value||N.value==="vertical"&&!l.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?E.value?e.expandOpenIcon:e.expandCloseIcon:da:e.collapseCloseIcon&&e.collapseOpenIcon?E.value?e.collapseOpenIcon:e.collapseCloseIcon:vr),_=z(()=>u.level===0),y=z(()=>e.popperAppendToBody===void 0?_.value:!!e.popperAppendToBody),S=z(()=>l.props.collapse?`${a.namespace.value}-zoom-in-left`:`${a.namespace.value}-zoom-in-top`),w=z(()=>N.value==="horizontal"&&_.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","left-start","bottom-start","bottom-end","top-start","top-end"]),E=z(()=>l.openedMenus.includes(e.index)),T=z(()=>{let H=!1;return Object.values(c.value).forEach(q=>{q.active&&(H=!0)}),Object.values(d.value).forEach(q=>{q.active&&(H=!0)}),H}),C=z(()=>l.props.backgroundColor||""),$=z(()=>l.props.activeTextColor||""),x=z(()=>l.props.textColor||""),N=z(()=>l.props.mode),I=Ht({index:e.index,indexPath:o,active:T}),L=z(()=>N.value!=="horizontal"?{color:x.value}:{borderBottomColor:T.value?l.props.activeTextColor?$.value:"":"transparent",color:T.value?$.value:x.value}),F=()=>{var H,q,te;return(te=(q=(H=v.value)==null?void 0:H.popperRef)==null?void 0:q.popperInstanceRef)==null?void 0:te.destroy()},B=H=>{H||F()},U=()=>{l.props.menuTrigger==="hover"&&l.props.mode==="horizontal"||l.props.collapse&&l.props.mode==="vertical"||e.disabled||l.handleSubMenuClick({index:e.index,indexPath:o.value,active:T.value})},P=(H,q=e.showTimeout)=>{var te;H.type!=="focus"&&(l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||e.disabled||(u.mouseInChild.value=!0,f==null||f(),{stop:f}=el(()=>{l.openMenu(e.index,o.value)},q),y.value&&((te=s.value.vnode.el)==null||te.dispatchEvent(new MouseEvent("mouseenter")))))},O=(H=!1)=>{var q,te;l.props.menuTrigger==="click"&&l.props.mode==="horizontal"||!l.props.collapse&&l.props.mode==="vertical"||(f==null||f(),u.mouseInChild.value=!1,{stop:f}=el(()=>!p.value&&l.closeMenu(e.index,o.value),e.hideTimeout),y.value&&H&&((q=r.parent)==null?void 0:q.type.name)==="ElSubMenu"&&((te=u.handleMouseleave)==null||te.call(u,!0)))};Be(()=>l.props.collapse,H=>B(!!H));{const H=te=>{d.value[te.index]=te},q=te=>{delete d.value[te.index]};Ct(`subMenu:${r.uid}`,{addSubMenu:H,removeSubMenu:q,handleMouseleave:O,mouseInChild:p,level:u.level+1})}return n({opened:E}),vt(()=>{l.addSubMenu(I),u.addSubMenu(I)}),fn(()=>{u.removeSubMenu(I),l.removeSubMenu(I)}),()=>{var H;const q=[(H=t.title)==null?void 0:H.call(t),tt(et,{class:i.e("icon-arrow"),style:{transform:E.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&l.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>ft(b.value)?tt(r.appContext.components[b.value]):tt(b.value)})],te=HA(l.props,u.level+1),V=l.isMenuPopup?tt(Ur,{ref:v,visible:E.value,effect:"light",pure:!0,offset:e.popperOffset,showArrow:!1,persistent:!0,popperClass:e.popperClass,placement:g.value,teleported:y.value,fallbackPlacements:w.value,transition:S.value,gpuAcceleration:!1},{content:()=>{var Q;return tt("div",{class:[a.m(N.value),a.m("popup-container"),e.popperClass],onMouseenter:ge=>P(ge,100),onMouseleave:()=>O(!0),onFocus:ge=>P(ge,100)},[tt("ul",{class:[a.b(),a.m("popup"),a.m(`popup-${g.value}`)],style:te.value},[(Q=t.default)==null?void 0:Q.call(t)])])},default:()=>tt("div",{class:i.e("title"),style:[L.value,{backgroundColor:C.value}],onClick:U},q)}):tt(Ze,{},[tt("div",{class:i.e("title"),style:[L.value,{backgroundColor:C.value}],ref:m,onClick:U},q),tt(_m,{},{default:()=>{var Q;return mt(tt("ul",{role:"menu",class:[a.b(),a.m("inline")],style:te.value},[(Q=t.default)==null?void 0:Q.call(t)]),[[zt,E.value]])}})]);return tt("li",{class:[i.b(),i.is("active",T.value),i.is("opened",E.value),i.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:E.value,onMouseenter:P,onMouseleave:()=>O(!0),onFocus:P},[V])}}});const lBe=He({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:Re(Array),default:()=>hn([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperEffect:{type:String,values:["dark","light"],default:"dark"}}),Ov=e=>Array.isArray(e)&&e.every(t=>ft(t)),uBe={close:(e,t)=>ft(e)&&Ov(t),open:(e,t)=>ft(e)&&Ov(t),select:(e,t,n,r)=>ft(e)&&Ov(t)&&xt(n)&&(r===void 0||r instanceof Promise)};var cBe=Ce({name:"ElMenu",props:lBe,emits:uBe,setup(e,{emit:t,slots:n,expose:r}){const o=gt(),s=o.appContext.config.globalProperties.$router,a=ee(),i=De("menu"),l=De("sub-menu"),u=ee(-1),c=ee(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),d=ee(e.defaultActive),f=ee({}),p=ee({}),m=z(()=>e.mode==="horizontal"||e.mode==="vertical"&&e.collapse),v=()=>{const x=d.value&&f.value[d.value];if(!x||e.mode==="horizontal"||e.collapse)return;x.indexPath.forEach(I=>{const L=p.value[I];L&&g(I,L.indexPath)})},g=(x,N)=>{c.value.includes(x)||(e.uniqueOpened&&(c.value=c.value.filter(I=>N.includes(I))),c.value.push(x),t("open",x,N))},b=(x,N)=>{const I=c.value.indexOf(x);I!==-1&&c.value.splice(I,1),t("close",x,N)},_=({index:x,indexPath:N})=>{c.value.includes(x)?b(x,N):g(x,N)},y=x=>{(e.mode==="horizontal"||e.collapse)&&(c.value=[]);const{index:N,indexPath:I}=x;if(!(N===void 0||I===void 0))if(e.router&&s){const L=x.route||N,F=s.push(L).then(B=>(B||(d.value=N),B));t("select",N,I,{index:N,indexPath:I,route:L},F)}else d.value=N,t("select",N,I,{index:N,indexPath:I})},S=x=>{const N=f.value,I=N[x]||d.value&&N[d.value]||N[e.defaultActive];I?d.value=I.index:d.value=x},w=()=>{var x,N;if(!a.value)return-1;const I=Array.from((N=(x=a.value)==null?void 0:x.childNodes)!=null?N:[]).filter(H=>H.nodeName!=="#text"||H.nodeValue),L=64,F=Number.parseInt(getComputedStyle(a.value).paddingLeft,10),B=Number.parseInt(getComputedStyle(a.value).paddingRight,10),U=a.value.clientWidth-F-B;let P=0,O=0;return I.forEach((H,q)=>{P+=H.offsetWidth||0,P<=U-L&&(O=q+1)}),O===I.length?-1:O},E=(x,N=33.34)=>{let I;return()=>{I&&clearTimeout(I),I=setTimeout(()=>{x()},N)}};let T=!0;const C=()=>{const x=()=>{u.value=-1,Xe(()=>{u.value=w()})};T?x():E(x)(),T=!1};Be(()=>e.defaultActive,x=>{f.value[x]||(d.value=""),S(x)}),Be(()=>e.collapse,x=>{x&&(c.value=[])}),Be(f.value,v);let $;Cr(()=>{e.mode==="horizontal"&&e.ellipsis?$=gr(a,C).stop:$==null||$()});{const x=F=>{p.value[F.index]=F},N=F=>{delete p.value[F.index]};Ct("rootMenu",Ht({props:e,openedMenus:c,items:f,subMenus:p,activeIndex:d,isMenuPopup:m,addMenuItem:F=>{f.value[F.index]=F},removeMenuItem:F=>{delete f.value[F.index]},addSubMenu:x,removeSubMenu:N,openMenu:g,closeMenu:b,handleMenuItemClick:y,handleSubMenuClick:_})),Ct(`subMenu:${o.uid}`,{addSubMenu:x,removeSubMenu:N,mouseInChild:ee(!1),level:0})}return vt(()=>{e.mode==="horizontal"&&new nBe(o.vnode.el,i.namespace.value)}),r({open:N=>{const{indexPath:I}=p.value[N];I.forEach(L=>g(L,I))},close:b,handleResize:C}),()=>{var x,N;let I=(N=(x=n.default)==null?void 0:x.call(n))!=null?N:[];const L=[];if(e.mode==="horizontal"&&a.value){const U=Zl(I),P=u.value===-1?U:U.slice(0,u.value),O=u.value===-1?[]:U.slice(u.value);O!=null&&O.length&&e.ellipsis&&(I=P,L.push(tt(Pb,{index:"sub-menu-more",class:l.e("hide-arrow")},{title:()=>tt(et,{class:l.e("icon-more")},{default:()=>tt(Xx)}),default:()=>O})))}const F=HA(e,0),B=tt("ul",{key:String(e.collapse),role:"menubar",ref:a,style:F.value,class:{[i.b()]:!0,[i.m(e.mode)]:!0,[i.m("collapse")]:e.collapse}},[...I,...L]);return e.collapseTransition&&e.mode==="vertical"?tt(sBe,()=>B):B}}});const dBe=He({index:{type:Re([String,null]),default:null},route:{type:Re([String,Object])},disabled:Boolean}),fBe={click:e=>ft(e.index)&&Array.isArray(e.indexPath)},Rv="ElMenuItem",pBe=Ce({name:Rv,components:{ElTooltip:Ur},props:dBe,emits:fBe,setup(e,{emit:t}){const n=gt(),r=Ye("rootMenu"),o=De("menu"),s=De("menu-item");r||zn(Rv,"can not inject root menu");const{parentMenu:a,indexPath:i}=FA(n,gn(e,"index")),l=Ye(`subMenu:${a.value.uid}`);l||zn(Rv,"can not inject sub menu");const u=z(()=>e.index===r.activeIndex),c=Ht({index:e.index,indexPath:i,active:u}),d=()=>{e.disabled||(r.handleMenuItemClick({index:e.index,indexPath:i.value,route:e.route}),t("click",c))};return vt(()=>{l.addSubMenu(c),r.addMenuItem(c)}),fn(()=>{l.removeSubMenu(c),r.removeMenuItem(c)}),{parentMenu:a,rootMenu:r,active:u,nsMenu:o,nsMenuItem:s,handleClick:d}}});function hBe(e,t,n,r,o,s){const a=rt("el-tooltip");return k(),D("li",{class:W([e.nsMenuItem.b(),e.nsMenuItem.is("active",e.active),e.nsMenuItem.is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:t[0]||(t[0]=(...i)=>e.handleClick&&e.handleClick(...i))},[e.parentMenu.type.name==="ElMenu"&&e.rootMenu.props.collapse&&e.$slots.title?(k(),Me(a,{key:0,effect:e.rootMenu.props.popperEffect,placement:"right","fallback-placements":["left"],persistent:""},{content:be(()=>[Pe(e.$slots,"title")]),default:be(()=>[R("div",{class:W(e.nsMenu.be("tooltip","trigger"))},[Pe(e.$slots,"default")],2)]),_:3},8,["effect"])):(k(),D(Ze,{key:1},[Pe(e.$slots,"default"),Pe(e.$slots,"title")],64))],2)}var VA=Fe(pBe,[["render",hBe],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item.vue"]]);const mBe={title:String},vBe="ElMenuItemGroup",gBe=Ce({name:vBe,props:mBe,setup(){return{ns:De("menu-item-group")}}});function _Be(e,t,n,r,o,s){return k(),D("li",{class:W(e.ns.b())},[R("div",{class:W(e.ns.e("title"))},[e.$slots.title?Pe(e.$slots,"title",{key:1}):(k(),D(Ze,{key:0},[Ot(ze(e.title),1)],64))],2),R("ul",null,[Pe(e.$slots,"default")])],2)}var jA=Fe(gBe,[["render",_Be],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item-group.vue"]]);const yBe=St(cBe,{MenuItem:VA,MenuItemGroup:jA,SubMenu:Pb}),bBe=En(VA),wBe=En(jA);En(Pb);const SBe=He({icon:{type:on,default:()=>Hx},title:String,content:{type:String,default:""}}),EBe={back:()=>!0},CBe=["aria-label"],kBe=Ce({name:"ElPageHeader"}),TBe=Ce({...kBe,props:SBe,emits:EBe,setup(e,{emit:t}){const n=Wn(),{t:r}=Vt(),o=De("page-header"),s=z(()=>[o.b(),{[o.m("has-breadcrumb")]:!!n.breadcrumb,[o.m("has-extra")]:!!n.extra,[o.is("contentful")]:!!n.default}]);function a(){t("back")}return(i,l)=>(k(),D("div",{class:W(h(s))},[i.$slots.breadcrumb?(k(),D("div",{key:0,class:W(h(o).e("breadcrumb"))},[Pe(i.$slots,"breadcrumb")],2)):Ae("v-if",!0),R("div",{class:W(h(o).e("header"))},[R("div",{class:W(h(o).e("left"))},[R("div",{class:W(h(o).e("back")),role:"button",tabindex:"0",onClick:a},[i.icon||i.$slots.icon?(k(),D("div",{key:0,"aria-label":i.title||h(r)("el.pageHeader.title"),class:W(h(o).e("icon"))},[Pe(i.$slots,"icon",{},()=>[i.icon?(k(),Me(h(et),{key:0},{default:be(()=>[(k(),Me(kt(i.icon)))]),_:1})):Ae("v-if",!0)])],10,CBe)):Ae("v-if",!0),R("div",{class:W(h(o).e("title"))},[Pe(i.$slots,"title",{},()=>[Ot(ze(i.title||h(r)("el.pageHeader.title")),1)])],2)],2),me(h(TA),{direction:"vertical"}),R("div",{class:W(h(o).e("content"))},[Pe(i.$slots,"content",{},()=>[Ot(ze(i.content),1)])],2)],2),i.$slots.extra?(k(),D("div",{key:0,class:W(h(o).e("extra"))},[Pe(i.$slots,"extra")],2)):Ae("v-if",!0)],2),i.$slots.default?(k(),D("div",{key:1,class:W(h(o).e("main"))},[Pe(i.$slots,"default")],2)):Ae("v-if",!0)],2))}});var $Be=Fe(TBe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/page-header/src/page-header.vue"]]);const xBe=St($Be),IBe=He({disabled:Boolean,currentPage:{type:Number,default:1},prevText:{type:String},prevIcon:{type:on}}),ABe={click:e=>e instanceof MouseEvent},MBe=["disabled","aria-disabled"],OBe={key:0},RBe=Ce({name:"ElPaginationPrev"}),PBe=Ce({...RBe,props:IBe,emits:ABe,setup(e){const t=e,n=z(()=>t.disabled||t.currentPage<=1);return(r,o)=>(k(),D("button",{type:"button",class:"btn-prev",disabled:h(n),"aria-disabled":h(n),onClick:o[0]||(o[0]=s=>r.$emit("click",s))},[r.prevText?(k(),D("span",OBe,ze(r.prevText),1)):(k(),Me(h(et),{key:1},{default:be(()=>[(k(),Me(kt(r.prevIcon)))]),_:1}))],8,MBe))}});var NBe=Fe(PBe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/pagination/src/components/prev.vue"]]);const LBe=He({disabled:Boolean,currentPage:{type:Number,default:1},pageCount:{type:Number,default:50},nextText:{type:String},nextIcon:{type:on}}),BBe=["disabled","aria-disabled"],DBe={key:0},zBe=Ce({name:"ElPaginationNext"}),FBe=Ce({...zBe,props:LBe,emits:["click"],setup(e){const t=e,n=z(()=>t.disabled||t.currentPage===t.pageCount||t.pageCount===0);return(r,o)=>(k(),D("button",{type:"button",class:"btn-next",disabled:h(n),"aria-disabled":h(n),onClick:o[0]||(o[0]=s=>r.$emit("click",s))},[r.nextText?(k(),D("span",DBe,ze(r.nextText),1)):(k(),Me(h(et),{key:1},{default:be(()=>[(k(),Me(kt(r.nextIcon)))]),_:1}))],8,BBe))}});var HBe=Fe(FBe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/pagination/src/components/next.vue"]]);const UA="ElSelectGroup",vf="ElSelect";function VBe(e,t){const n=Ye(vf),r=Ye(UA,{disabled:!1}),o=z(()=>Object.prototype.toString.call(e.value).toLowerCase()==="[object object]"),s=z(()=>n.props.multiple?d(n.props.modelValue,e.value):f(e.value,n.props.modelValue)),a=z(()=>{if(n.props.multiple){const v=n.props.modelValue||[];return!s.value&&v.length>=n.props.multipleLimit&&n.props.multipleLimit>0}else return!1}),i=z(()=>e.label||(o.value?"":e.value)),l=z(()=>e.value||e.label||""),u=z(()=>e.disabled||t.groupDisabled||a.value),c=gt(),d=(v=[],g)=>{if(o.value){const b=n.props.valueKey;return v&&v.some(_=>Ut(pn(_,b))===pn(g,b))}else return v&&v.includes(g)},f=(v,g)=>{if(o.value){const{valueKey:b}=n.props;return pn(v,b)===pn(g,b)}else return v===g},p=()=>{!e.disabled&&!r.disabled&&(n.hoverIndex=n.optionsArray.indexOf(c.proxy))};Be(()=>i.value,()=>{!e.created&&!n.props.remote&&n.setSelected()}),Be(()=>e.value,(v,g)=>{const{remote:b,valueKey:_}=n.props;if(Object.is(v,g)||(n.onOptionDestroy(g,c.proxy),n.onOptionCreate(c.proxy)),!e.created&&!b){if(_&&typeof v=="object"&&typeof g=="object"&&v[_]===g[_])return;n.setSelected()}}),Be(()=>r.disabled,()=>{t.groupDisabled=r.disabled},{immediate:!0});const{queryChange:m}=Ut(n);return Be(m,v=>{const{query:g}=h(v),b=new RegExp(Bx(g),"i");t.visible=b.test(i.value)||e.created,t.visible||n.filteredOptionsCount--}),{select:n,currentLabel:i,currentValue:l,itemSelected:s,isDisabled:u,hoverItem:p}}const jBe=Ce({name:"ElOption",componentName:"ElOption",props:{value:{required:!0,type:[String,Number,Boolean,Object]},label:[String,Number],created:Boolean,disabled:{type:Boolean,default:!1}},setup(e){const t=De("select"),n=Ht({index:-1,groupDisabled:!1,visible:!0,hitState:!1,hover:!1}),{currentLabel:r,itemSelected:o,isDisabled:s,select:a,hoverItem:i}=VBe(e,n),{visible:l,hover:u}=On(n),c=gt().proxy;a.onOptionCreate(c),fn(()=>{const f=c.value,{selected:p}=a,v=(a.props.multiple?p:[p]).some(g=>g.value===c.value);Xe(()=>{a.cachedOptions.get(f)===c&&!v&&a.cachedOptions.delete(f)}),a.onOptionDestroy(f,c)});function d(){e.disabled!==!0&&n.groupDisabled!==!0&&a.handleOptionSelect(c,!0)}return{ns:t,currentLabel:r,itemSelected:o,isDisabled:s,select:a,hoverItem:i,visible:l,hover:u,selectOptionClick:d,states:n}}});function UBe(e,t,n,r,o,s){return mt((k(),D("li",{class:W([e.ns.be("dropdown","item"),e.ns.is("disabled",e.isDisabled),{selected:e.itemSelected,hover:e.hover}]),onMouseenter:t[0]||(t[0]=(...a)=>e.hoverItem&&e.hoverItem(...a)),onClick:t[1]||(t[1]=ct((...a)=>e.selectOptionClick&&e.selectOptionClick(...a),["stop"]))},[Pe(e.$slots,"default",{},()=>[R("span",null,ze(e.currentLabel),1)])],34)),[[zt,e.visible]])}var Nb=Fe(jBe,[["render",UBe],["__file","/home/runner/work/element-plus/element-plus/packages/components/select/src/option.vue"]]);const WBe=Ce({name:"ElSelectDropdown",componentName:"ElSelectDropdown",setup(){const e=Ye(vf),t=De("select"),n=z(()=>e.props.popperClass),r=z(()=>e.props.multiple),o=z(()=>e.props.fitInputWidth),s=ee("");function a(){var i;s.value=`${(i=e.selectWrapper)==null?void 0:i.offsetWidth}px`}return vt(()=>{a(),gr(e.selectWrapper,a)}),{ns:t,minWidth:s,popperClass:n,isMultiple:r,isFitInputWidth:o}}});function qBe(e,t,n,r,o,s){return k(),D("div",{class:W([e.ns.b("dropdown"),e.ns.is("multiple",e.isMultiple),e.popperClass]),style:Je({[e.isFitInputWidth?"width":"minWidth"]:e.minWidth})},[Pe(e.$slots,"default")],6)}var KBe=Fe(WBe,[["render",qBe],["__file","/home/runner/work/element-plus/element-plus/packages/components/select/src/select-dropdown.vue"]]);function GBe(e){const{t}=Vt();return Ht({options:new Map,cachedOptions:new Map,createdLabel:null,createdSelected:!1,selected:e.multiple?[]:{},inputLength:20,inputWidth:0,optionsCount:0,filteredOptionsCount:0,visible:!1,softFocus:!1,selectedLabel:"",hoverIndex:-1,query:"",previousQuery:null,inputHovering:!1,cachedPlaceHolder:"",currentPlaceholder:t("el.select.placeholder"),menuVisibleOnFocus:!1,isOnComposition:!1,isSilentBlur:!1,prefixWidth:11,tagInMultiLine:!1,mouseEnter:!1})}const YBe=(e,t,n)=>{const{t:r}=Vt(),o=De("select");ta({from:"suffixTransition",replacement:"override style scheme",version:"2.3.0",scope:"props",ref:"https://element-plus.org/en-US/component/select.html#select-attributes"},z(()=>e.suffixTransition===!1));const s=ee(null),a=ee(null),i=ee(null),l=ee(null),u=ee(null),c=ee(null),d=ee(-1),f=rn({query:""}),p=rn(""),{form:m,formItem:v}=xr(),g=z(()=>!e.filterable||e.multiple||!t.visible),b=z(()=>e.disabled||(m==null?void 0:m.disabled)),_=z(()=>{const X=e.multiple?Array.isArray(e.modelValue)&&e.modelValue.length>0:e.modelValue!==void 0&&e.modelValue!==null&&e.modelValue!=="";return e.clearable&&!b.value&&t.inputHovering&&X}),y=z(()=>e.remote&&e.filterable&&!e.remoteShowSuffix?"":e.suffixIcon),S=z(()=>o.is("reverse",y.value&&t.visible&&e.suffixTransition)),w=z(()=>e.remote?300:0),E=z(()=>e.loading?e.loadingText||r("el.select.loading"):e.remote&&t.query===""&&t.options.size===0?!1:e.filterable&&t.query&&t.options.size>0&&t.filteredOptionsCount===0?e.noMatchText||r("el.select.noMatch"):t.options.size===0?e.noDataText||r("el.select.noData"):null),T=z(()=>Array.from(t.options.values())),C=z(()=>Array.from(t.cachedOptions.values())),$=z(()=>{const X=T.value.filter(Z=>!Z.created).some(Z=>Z.currentLabel===t.query);return e.filterable&&e.allowCreate&&t.query!==""&&!X}),x=Ln(),N=z(()=>["small"].includes(x.value)?"small":"default"),I=z({get(){return t.visible&&E.value!==!1},set(X){t.visible=X}});Be([()=>b.value,()=>x.value,()=>m==null?void 0:m.size],()=>{Xe(()=>{L()})}),Be(()=>e.placeholder,X=>{t.cachedPlaceHolder=t.currentPlaceholder=X}),Be(()=>e.modelValue,(X,Z)=>{e.multiple&&(L(),X&&X.length>0||a.value&&t.query!==""?t.currentPlaceholder="":t.currentPlaceholder=t.cachedPlaceHolder,e.filterable&&!e.reserveKeyword&&(t.query="",F(t.query))),P(),e.filterable&&!e.multiple&&(t.inputLength=20),!to(X,Z)&&e.validateEvent&&(v==null||v.validate("change").catch(de=>void 0))},{flush:"post",deep:!0}),Be(()=>t.visible,X=>{var Z,de,Oe;X?((de=(Z=i.value)==null?void 0:Z.updatePopper)==null||de.call(Z),e.filterable&&(t.filteredOptionsCount=t.optionsCount,t.query=e.remote?"":t.selectedLabel,e.multiple?(Oe=a.value)==null||Oe.focus():t.selectedLabel&&(t.currentPlaceholder=`${t.selectedLabel}`,t.selectedLabel=""),F(t.query),!e.multiple&&!e.remote&&(f.value.query="",Tl(f),Tl(p)))):(e.filterable&&(at(e.filterMethod)&&e.filterMethod(""),at(e.remoteMethod)&&e.remoteMethod("")),a.value&&a.value.blur(),t.query="",t.previousQuery=null,t.selectedLabel="",t.inputLength=20,t.menuVisibleOnFocus=!1,H(),Xe(()=>{a.value&&a.value.value===""&&t.selected.length===0&&(t.currentPlaceholder=t.cachedPlaceHolder)}),e.multiple||(t.selected&&(e.filterable&&e.allowCreate&&t.createdSelected&&t.createdLabel?t.selectedLabel=t.createdLabel:t.selectedLabel=t.selected.currentLabel,e.filterable&&(t.query=t.selectedLabel)),e.filterable&&(t.currentPlaceholder=t.cachedPlaceHolder))),n.emit("visible-change",X)}),Be(()=>t.options.entries(),()=>{var X,Z,de;if(!Pt)return;(Z=(X=i.value)==null?void 0:X.updatePopper)==null||Z.call(X),e.multiple&&L();const Oe=((de=u.value)==null?void 0:de.querySelectorAll("input"))||[];Array.from(Oe).includes(document.activeElement)||P(),e.defaultFirstOption&&(e.filterable||e.remote)&&t.filteredOptionsCount&&U()},{flush:"post"}),Be(()=>t.hoverIndex,X=>{dt(X)&&X>-1?d.value=T.value[X]||{}:d.value={},T.value.forEach(Z=>{Z.hover=d.value===Z})});const L=()=>{e.collapseTags&&!e.filterable||Xe(()=>{var X,Z;if(!s.value)return;const de=s.value.$el.querySelector("input"),Oe=l.value,qe=n9e(x.value||(m==null?void 0:m.size));de.style.height=`${(t.selected.length===0?qe:Math.max(Oe?Oe.clientHeight+(Oe.clientHeight>qe?6:0):0,qe))-2}px`,t.tagInMultiLine=Number.parseFloat(de.style.height)>=qe,t.visible&&E.value!==!1&&((Z=(X=i.value)==null?void 0:X.updatePopper)==null||Z.call(X))})},F=async X=>{if(!(t.previousQuery===X||t.isOnComposition)){if(t.previousQuery===null&&(at(e.filterMethod)||at(e.remoteMethod))){t.previousQuery=X;return}t.previousQuery=X,Xe(()=>{var Z,de;t.visible&&((de=(Z=i.value)==null?void 0:Z.updatePopper)==null||de.call(Z))}),t.hoverIndex=-1,e.multiple&&e.filterable&&Xe(()=>{const Z=a.value.value.length*15+20;t.inputLength=e.collapseTags?Math.min(50,Z):Z,B(),L()}),e.remote&&at(e.remoteMethod)?(t.hoverIndex=-1,e.remoteMethod(X)):at(e.filterMethod)?(e.filterMethod(X),Tl(p)):(t.filteredOptionsCount=t.optionsCount,f.value.query=X,Tl(f),Tl(p)),e.defaultFirstOption&&(e.filterable||e.remote)&&t.filteredOptionsCount&&(await Xe(),U())}},B=()=>{t.currentPlaceholder!==""&&(t.currentPlaceholder=a.value.value?"":t.cachedPlaceHolder)},U=()=>{const X=T.value.filter(Oe=>Oe.visible&&!Oe.disabled&&!Oe.states.groupDisabled),Z=X.find(Oe=>Oe.created),de=X[0];t.hoverIndex=ne(T.value,Z||de)},P=()=>{var X;if(e.multiple)t.selectedLabel="";else{const de=O(e.modelValue);(X=de.props)!=null&&X.created?(t.createdLabel=de.props.value,t.createdSelected=!0):t.createdSelected=!1,t.selectedLabel=de.currentLabel,t.selected=de,e.filterable&&(t.query=t.selectedLabel);return}const Z=[];Array.isArray(e.modelValue)&&e.modelValue.forEach(de=>{Z.push(O(de))}),t.selected=Z,Xe(()=>{L()})},O=X=>{let Z;const de=op(X).toLowerCase()==="object",Oe=op(X).toLowerCase()==="null",qe=op(X).toLowerCase()==="undefined";for(let jt=t.cachedOptions.size-1;jt>=0;jt--){const It=C.value[jt];if(de?pn(It.value,e.valueKey)===pn(X,e.valueKey):It.value===X){Z={value:X,currentLabel:It.currentLabel,isDisabled:It.isDisabled};break}}if(Z)return Z;const Qe=de?X.label:!Oe&&!qe?X:"",ht={value:X,currentLabel:Qe};return e.multiple&&(ht.hitState=!1),ht},H=()=>{setTimeout(()=>{const X=e.valueKey;e.multiple?t.selected.length>0?t.hoverIndex=Math.min.apply(null,t.selected.map(Z=>T.value.findIndex(de=>pn(de,X)===pn(Z,X)))):t.hoverIndex=-1:t.hoverIndex=T.value.findIndex(Z=>M(Z)===M(t.selected))},300)},q=()=>{var X,Z;te(),(Z=(X=i.value)==null?void 0:X.updatePopper)==null||Z.call(X),e.multiple&&!e.filterable&&L()},te=()=>{var X;t.inputWidth=(X=s.value)==null?void 0:X.$el.getBoundingClientRect().width},V=()=>{e.filterable&&t.query!==t.selectedLabel&&(t.query=t.selectedLabel,F(t.query))},Q=$r(()=>{V()},w.value),ge=$r(X=>{F(X.target.value)},w.value),ie=X=>{to(e.modelValue,X)||n.emit(un,X)},ke=X=>{if(X.target.value.length<=0&&!he()){const Z=e.modelValue.slice();Z.pop(),n.emit(Et,Z),ie(Z)}X.target.value.length===1&&e.modelValue.length===0&&(t.currentPlaceholder=t.cachedPlaceHolder)},Y=(X,Z)=>{const de=t.selected.indexOf(Z);if(de>-1&&!b.value){const Oe=e.modelValue.slice();Oe.splice(de,1),n.emit(Et,Oe),ie(Oe),n.emit("remove-tag",Z.value)}X.stopPropagation()},K=X=>{X.stopPropagation();const Z=e.multiple?[]:"";if(!ft(Z))for(const de of t.selected)de.isDisabled&&Z.push(de.value);n.emit(Et,Z),ie(Z),t.hoverIndex=-1,t.visible=!1,n.emit("clear")},se=(X,Z)=>{var de;if(e.multiple){const Oe=(e.modelValue||[]).slice(),qe=ne(Oe,X.value);qe>-1?Oe.splice(qe,1):(e.multipleLimit<=0||Oe.length{J(X)})},ne=(X=[],Z)=>{if(!xt(Z))return X.indexOf(Z);const de=e.valueKey;let Oe=-1;return X.some((qe,Qe)=>Ut(pn(qe,de))===pn(Z,de)?(Oe=Qe,!0):!1),Oe},ve=()=>{t.softFocus=!0;const X=a.value||s.value;X&&(X==null||X.focus())},J=X=>{var Z,de,Oe,qe,Qe;const ht=Array.isArray(X)?X[0]:X;let jt=null;if(ht!=null&&ht.value){const It=T.value.filter(lt=>lt.value===ht.value);It.length>0&&(jt=It[0].$el)}if(i.value&&jt){const It=(qe=(Oe=(de=(Z=i.value)==null?void 0:Z.popperRef)==null?void 0:de.contentRef)==null?void 0:Oe.querySelector)==null?void 0:qe.call(Oe,`.${o.be("dropdown","wrap")}`);It&&Fx(It,jt)}(Qe=c.value)==null||Qe.handleScroll()},ae=X=>{t.optionsCount++,t.filteredOptionsCount++,t.options.set(X.value,X),t.cachedOptions.set(X.value,X)},ce=(X,Z)=>{t.options.get(X)===Z&&(t.optionsCount--,t.filteredOptionsCount--,t.options.delete(X))},oe=X=>{X.code!==ot.backspace&&he(!1),t.inputLength=a.value.value.length*15+20,L()},he=X=>{if(!Array.isArray(t.selected))return;const Z=t.selected[t.selected.length-1];if(Z)return X===!0||X===!1?(Z.hitState=X,X):(Z.hitState=!Z.hitState,Z.hitState)},le=X=>{const Z=X.target.value;if(X.type==="compositionend")t.isOnComposition=!1,Xe(()=>F(Z));else{const de=Z[Z.length-1]||"";t.isOnComposition=!rm(de)}},Ee=()=>{Xe(()=>J(t.selected))},ye=X=>{t.softFocus?t.softFocus=!1:((e.automaticDropdown||e.filterable)&&(e.filterable&&!t.visible&&(t.menuVisibleOnFocus=!0),t.visible=!0),n.emit("focus",X))},pe=()=>{var X;t.visible=!1,(X=s.value)==null||X.blur()},re=X=>{Xe(()=>{t.isSilentBlur?t.isSilentBlur=!1:n.emit("blur",X)}),t.softFocus=!1},fe=X=>{K(X)},Te=()=>{t.visible=!1},$e=X=>{t.visible&&(X.preventDefault(),X.stopPropagation(),t.visible=!1)},Le=X=>{var Z;X&&!t.mouseEnter||b.value||(t.menuVisibleOnFocus?t.menuVisibleOnFocus=!1:(!i.value||!i.value.isFocusInsideContent())&&(t.visible=!t.visible),t.visible&&((Z=a.value||s.value)==null||Z.focus()))},A=()=>{t.visible?T.value[t.hoverIndex]&&se(T.value[t.hoverIndex],void 0):Le()},M=X=>xt(X.value)?pn(X.value,e.valueKey):X.value,j=z(()=>T.value.filter(X=>X.visible).every(X=>X.disabled)),G=X=>{if(!t.visible){t.visible=!0;return}if(!(t.options.size===0||t.filteredOptionsCount===0)&&!t.isOnComposition&&!j.value){X==="next"?(t.hoverIndex++,t.hoverIndex===t.options.size&&(t.hoverIndex=0)):X==="prev"&&(t.hoverIndex--,t.hoverIndex<0&&(t.hoverIndex=t.options.size-1));const Z=T.value[t.hoverIndex];(Z.disabled===!0||Z.states.groupDisabled===!0||!Z.visible)&&G(X),Xe(()=>J(d.value))}};return{optionsArray:T,selectSize:x,handleResize:q,debouncedOnInputChange:Q,debouncedQueryChange:ge,deletePrevTag:ke,deleteTag:Y,deleteSelected:K,handleOptionSelect:se,scrollToOption:J,readonly:g,resetInputHeight:L,showClose:_,iconComponent:y,iconReverse:S,showNewOption:$,collapseTagSize:N,setSelected:P,managePlaceholder:B,selectDisabled:b,emptyText:E,toggleLastOptionHitState:he,resetInputState:oe,handleComposition:le,onOptionCreate:ae,onOptionDestroy:ce,handleMenuEnter:Ee,handleFocus:ye,blur:pe,handleBlur:re,handleClearClick:fe,handleClose:Te,handleKeydownEscape:$e,toggleMenu:Le,selectOption:A,getValueKey:M,navigateOptions:G,dropMenuVisible:I,queryChange:f,groupQueryChange:p,reference:s,input:a,tooltipRef:i,tags:l,selectWrapper:u,scrollbar:c,handleMouseEnter:()=>{t.mouseEnter=!0},handleMouseLeave:()=>{t.mouseEnter=!1}}},ZS="ElSelect",XBe=Ce({name:ZS,componentName:ZS,components:{ElInput:mr,ElSelectMenu:KBe,ElOption:Nb,ElTag:gm,ElScrollbar:_a,ElTooltip:Ur,ElIcon:et},directives:{ClickOutside:ai},props:{name:String,id:String,modelValue:{type:[Array,String,Number,Boolean,Object],default:void 0},autocomplete:{type:String,default:"off"},automaticDropdown:Boolean,size:{type:String,validator:Zu},effect:{type:String,default:"light"},disabled:Boolean,clearable:Boolean,filterable:Boolean,allowCreate:Boolean,loading:Boolean,popperClass:{type:String,default:""},remote:Boolean,loadingText:String,noMatchText:String,noDataText:String,remoteMethod:Function,filterMethod:Function,multiple:Boolean,multipleLimit:{type:Number,default:0},placeholder:{type:String},defaultFirstOption:Boolean,reserveKeyword:{type:Boolean,default:!0},valueKey:{type:String,default:"value"},collapseTags:Boolean,collapseTagsTooltip:{type:Boolean,default:!1},teleported:Kn.teleported,persistent:{type:Boolean,default:!0},clearIcon:{type:on,default:fa},fitInputWidth:{type:Boolean,default:!1},suffixIcon:{type:on,default:da},tagType:{...$b.type,default:"info"},validateEvent:{type:Boolean,default:!0},remoteShowSuffix:{type:Boolean,default:!1},suffixTransition:{type:Boolean,default:!0},placement:{type:String,values:dl,default:"bottom-start"}},emits:[Et,un,"remove-tag","clear","visible-change","focus","blur"],setup(e,t){const n=De("select"),r=De("input"),{t:o}=Vt(),s=GBe(e),{optionsArray:a,selectSize:i,readonly:l,handleResize:u,collapseTagSize:c,debouncedOnInputChange:d,debouncedQueryChange:f,deletePrevTag:p,deleteTag:m,deleteSelected:v,handleOptionSelect:g,scrollToOption:b,setSelected:_,resetInputHeight:y,managePlaceholder:S,showClose:w,selectDisabled:E,iconComponent:T,iconReverse:C,showNewOption:$,emptyText:x,toggleLastOptionHitState:N,resetInputState:I,handleComposition:L,onOptionCreate:F,onOptionDestroy:B,handleMenuEnter:U,handleFocus:P,blur:O,handleBlur:H,handleClearClick:q,handleClose:te,handleKeydownEscape:V,toggleMenu:Q,selectOption:ge,getValueKey:ie,navigateOptions:ke,dropMenuVisible:Y,reference:K,input:se,tooltipRef:ne,tags:ve,selectWrapper:J,scrollbar:ae,queryChange:ce,groupQueryChange:oe,handleMouseEnter:he,handleMouseLeave:le}=YBe(e,s,t),{focus:Ee}=d9e(K),{inputWidth:ye,selected:pe,inputLength:re,filteredOptionsCount:fe,visible:Te,softFocus:$e,selectedLabel:Le,hoverIndex:A,query:M,inputHovering:j,currentPlaceholder:G,menuVisibleOnFocus:ue,isOnComposition:_e,isSilentBlur:X,options:Z,cachedOptions:de,optionsCount:Oe,prefixWidth:qe,tagInMultiLine:Qe}=On(s),ht=z(()=>{const Ne=[n.b()],Ve=h(i);return Ve&&Ne.push(n.m(Ve)),e.disabled&&Ne.push(n.m("disabled")),Ne}),jt=z(()=>({maxWidth:`${h(ye)-32}px`,width:"100%"})),It=z(()=>({maxWidth:`${h(ye)>123?h(ye)-123:h(ye)-75}px`}));Ct(vf,Ht({props:e,options:Z,optionsArray:a,cachedOptions:de,optionsCount:Oe,filteredOptionsCount:fe,hoverIndex:A,handleOptionSelect:g,onOptionCreate:F,onOptionDestroy:B,selectWrapper:J,selected:pe,setSelected:_,queryChange:ce,groupQueryChange:oe})),vt(()=>{s.cachedPlaceHolder=G.value=e.placeholder||o("el.select.placeholder"),e.multiple&&Array.isArray(e.modelValue)&&e.modelValue.length>0&&(G.value=""),gr(J,u),e.remote&&e.multiple&&y(),Xe(()=>{const Ne=K.value&&K.value.$el;if(Ne&&(ye.value=Ne.getBoundingClientRect().width,t.slots.prefix)){const Ve=Ne.querySelector(`.${r.e("prefix")}`);qe.value=Math.max(Ve.getBoundingClientRect().width+5,30)}}),_()}),e.multiple&&!Array.isArray(e.modelValue)&&t.emit(Et,[]),!e.multiple&&Array.isArray(e.modelValue)&&t.emit(Et,"");const lt=z(()=>{var Ne,Ve;return(Ve=(Ne=ne.value)==null?void 0:Ne.popperRef)==null?void 0:Ve.contentRef});return{tagInMultiLine:Qe,prefixWidth:qe,selectSize:i,readonly:l,handleResize:u,collapseTagSize:c,debouncedOnInputChange:d,debouncedQueryChange:f,deletePrevTag:p,deleteTag:m,deleteSelected:v,handleOptionSelect:g,scrollToOption:b,inputWidth:ye,selected:pe,inputLength:re,filteredOptionsCount:fe,visible:Te,softFocus:$e,selectedLabel:Le,hoverIndex:A,query:M,inputHovering:j,currentPlaceholder:G,menuVisibleOnFocus:ue,isOnComposition:_e,isSilentBlur:X,options:Z,resetInputHeight:y,managePlaceholder:S,showClose:w,selectDisabled:E,iconComponent:T,iconReverse:C,showNewOption:$,emptyText:x,toggleLastOptionHitState:N,resetInputState:I,handleComposition:L,handleMenuEnter:U,handleFocus:P,blur:O,handleBlur:H,handleClearClick:q,handleClose:te,handleKeydownEscape:V,toggleMenu:Q,selectOption:ge,getValueKey:ie,navigateOptions:ke,dropMenuVisible:Y,focus:Ee,reference:K,input:se,tooltipRef:ne,popperPaneRef:lt,tags:ve,selectWrapper:J,scrollbar:ae,wrapperKls:ht,selectTagsStyle:jt,nsSelect:n,tagTextStyle:It,handleMouseEnter:he,handleMouseLeave:le}}}),JBe=["disabled","autocomplete"],QBe={style:{height:"100%",display:"flex","justify-content":"center","align-items":"center"}};function ZBe(e,t,n,r,o,s){const a=rt("el-tag"),i=rt("el-tooltip"),l=rt("el-icon"),u=rt("el-input"),c=rt("el-option"),d=rt("el-scrollbar"),f=rt("el-select-menu"),p=Za("click-outside");return mt((k(),D("div",{ref:"selectWrapper",class:W(e.wrapperKls),onMouseenter:t[22]||(t[22]=(...m)=>e.handleMouseEnter&&e.handleMouseEnter(...m)),onMouseleave:t[23]||(t[23]=(...m)=>e.handleMouseLeave&&e.handleMouseLeave(...m)),onClick:t[24]||(t[24]=ct((...m)=>e.toggleMenu&&e.toggleMenu(...m),["stop"]))},[me(i,{ref:"tooltipRef",visible:e.dropMenuVisible,placement:e.placement,teleported:e.teleported,"popper-class":[e.nsSelect.e("popper"),e.popperClass],"fallback-placements":["bottom-start","top-start","right","left"],effect:e.effect,pure:"",trigger:"click",transition:`${e.nsSelect.namespace.value}-zoom-in-top`,"stop-popper-mouse-event":!1,"gpu-acceleration":!1,persistent:e.persistent,onShow:e.handleMenuEnter},{default:be(()=>[R("div",{class:"select-trigger",onMouseenter:t[20]||(t[20]=m=>e.inputHovering=!0),onMouseleave:t[21]||(t[21]=m=>e.inputHovering=!1)},[e.multiple?(k(),D("div",{key:0,ref:"tags",class:W(e.nsSelect.e("tags")),style:Je(e.selectTagsStyle)},[e.collapseTags&&e.selected.length?(k(),D("span",{key:0,class:W([e.nsSelect.b("tags-wrapper"),{"has-prefix":e.prefixWidth&&e.selected.length}])},[me(a,{closable:!e.selectDisabled&&!e.selected[0].isDisabled,size:e.collapseTagSize,hit:e.selected[0].hitState,type:e.tagType,"disable-transitions":"",onClose:t[0]||(t[0]=m=>e.deleteTag(m,e.selected[0]))},{default:be(()=>[R("span",{class:W(e.nsSelect.e("tags-text")),style:Je(e.tagTextStyle)},ze(e.selected[0].currentLabel),7)]),_:1},8,["closable","size","hit","type"]),e.selected.length>1?(k(),Me(a,{key:0,closable:!1,size:e.collapseTagSize,type:e.tagType,"disable-transitions":""},{default:be(()=>[e.collapseTagsTooltip?(k(),Me(i,{key:0,disabled:e.dropMenuVisible,"fallback-placements":["bottom","top","right","left"],effect:e.effect,placement:"bottom",teleported:e.teleported},{default:be(()=>[R("span",{class:W(e.nsSelect.e("tags-text"))},"+ "+ze(e.selected.length-1),3)]),content:be(()=>[R("div",{class:W(e.nsSelect.e("collapse-tags"))},[(k(!0),D(Ze,null,At(e.selected.slice(1),(m,v)=>(k(),D("div",{key:v,class:W(e.nsSelect.e("collapse-tag"))},[(k(),Me(a,{key:e.getValueKey(m),class:"in-tooltip",closable:!e.selectDisabled&&!m.isDisabled,size:e.collapseTagSize,hit:m.hitState,type:e.tagType,"disable-transitions":"",style:{margin:"2px"},onClose:g=>e.deleteTag(g,m)},{default:be(()=>[R("span",{class:W(e.nsSelect.e("tags-text")),style:Je({maxWidth:e.inputWidth-75+"px"})},ze(m.currentLabel),7)]),_:2},1032,["closable","size","hit","type","onClose"]))],2))),128))],2)]),_:1},8,["disabled","effect","teleported"])):(k(),D("span",{key:1,class:W(e.nsSelect.e("tags-text"))},"+ "+ze(e.selected.length-1),3))]),_:1},8,["size","type"])):Ae("v-if",!0)],2)):Ae("v-if",!0),Ae("
"),e.collapseTags?Ae("v-if",!0):(k(),Me(xn,{key:1,onAfterLeave:e.resetInputHeight},{default:be(()=>[R("span",{class:W([e.nsSelect.b("tags-wrapper"),{"has-prefix":e.prefixWidth&&e.selected.length}])},[(k(!0),D(Ze,null,At(e.selected,m=>(k(),Me(a,{key:e.getValueKey(m),closable:!e.selectDisabled&&!m.isDisabled,size:e.collapseTagSize,hit:m.hitState,type:e.tagType,"disable-transitions":"",onClose:v=>e.deleteTag(v,m)},{default:be(()=>[R("span",{class:W(e.nsSelect.e("tags-text")),style:Je({maxWidth:e.inputWidth-75+"px"})},ze(m.currentLabel),7)]),_:2},1032,["closable","size","hit","type","onClose"]))),128))],2)]),_:1},8,["onAfterLeave"])),Ae("
"),e.filterable?mt((k(),D("input",{key:2,ref:"input","onUpdate:modelValue":t[1]||(t[1]=m=>e.query=m),type:"text",class:W([e.nsSelect.e("input"),e.nsSelect.is(e.selectSize)]),disabled:e.selectDisabled,autocomplete:e.autocomplete,style:Je({marginLeft:e.prefixWidth&&!e.selected.length||e.tagInMultiLine?`${e.prefixWidth}px`:"",flexGrow:1,width:`${e.inputLength/(e.inputWidth-32)}%`,maxWidth:`${e.inputWidth-42}px`}),onFocus:t[2]||(t[2]=(...m)=>e.handleFocus&&e.handleFocus(...m)),onBlur:t[3]||(t[3]=(...m)=>e.handleBlur&&e.handleBlur(...m)),onKeyup:t[4]||(t[4]=(...m)=>e.managePlaceholder&&e.managePlaceholder(...m)),onKeydown:[t[5]||(t[5]=(...m)=>e.resetInputState&&e.resetInputState(...m)),t[6]||(t[6]=Rt(ct(m=>e.navigateOptions("next"),["prevent"]),["down"])),t[7]||(t[7]=Rt(ct(m=>e.navigateOptions("prev"),["prevent"]),["up"])),t[8]||(t[8]=Rt((...m)=>e.handleKeydownEscape&&e.handleKeydownEscape(...m),["esc"])),t[9]||(t[9]=Rt(ct((...m)=>e.selectOption&&e.selectOption(...m),["stop","prevent"]),["enter"])),t[10]||(t[10]=Rt((...m)=>e.deletePrevTag&&e.deletePrevTag(...m),["delete"])),t[11]||(t[11]=Rt(m=>e.visible=!1,["tab"]))],onCompositionstart:t[12]||(t[12]=(...m)=>e.handleComposition&&e.handleComposition(...m)),onCompositionupdate:t[13]||(t[13]=(...m)=>e.handleComposition&&e.handleComposition(...m)),onCompositionend:t[14]||(t[14]=(...m)=>e.handleComposition&&e.handleComposition(...m)),onInput:t[15]||(t[15]=(...m)=>e.debouncedQueryChange&&e.debouncedQueryChange(...m))},null,46,JBe)),[[I0,e.query]]):Ae("v-if",!0)],6)):Ae("v-if",!0),me(u,{id:e.id,ref:"reference",modelValue:e.selectedLabel,"onUpdate:modelValue":t[16]||(t[16]=m=>e.selectedLabel=m),type:"text",placeholder:e.currentPlaceholder,name:e.name,autocomplete:e.autocomplete,size:e.selectSize,disabled:e.selectDisabled,readonly:e.readonly,"validate-event":!1,class:W([e.nsSelect.is("focus",e.visible)]),tabindex:e.multiple&&e.filterable?-1:void 0,onFocus:e.handleFocus,onBlur:e.handleBlur,onInput:e.debouncedOnInputChange,onPaste:e.debouncedOnInputChange,onCompositionstart:e.handleComposition,onCompositionupdate:e.handleComposition,onCompositionend:e.handleComposition,onKeydown:[t[17]||(t[17]=Rt(ct(m=>e.navigateOptions("next"),["stop","prevent"]),["down"])),t[18]||(t[18]=Rt(ct(m=>e.navigateOptions("prev"),["stop","prevent"]),["up"])),Rt(ct(e.selectOption,["stop","prevent"]),["enter"]),Rt(e.handleKeydownEscape,["esc"]),t[19]||(t[19]=Rt(m=>e.visible=!1,["tab"]))]},Bo({suffix:be(()=>[e.iconComponent&&!e.showClose?(k(),Me(l,{key:0,class:W([e.nsSelect.e("caret"),e.nsSelect.e("icon"),e.iconReverse])},{default:be(()=>[(k(),Me(kt(e.iconComponent)))]),_:1},8,["class"])):Ae("v-if",!0),e.showClose&&e.clearIcon?(k(),Me(l,{key:1,class:W([e.nsSelect.e("caret"),e.nsSelect.e("icon")]),onClick:e.handleClearClick},{default:be(()=>[(k(),Me(kt(e.clearIcon)))]),_:1},8,["class","onClick"])):Ae("v-if",!0)]),_:2},[e.$slots.prefix?{name:"prefix",fn:be(()=>[R("div",QBe,[Pe(e.$slots,"prefix")])])}:void 0]),1032,["id","modelValue","placeholder","name","autocomplete","size","disabled","readonly","class","tabindex","onFocus","onBlur","onInput","onPaste","onCompositionstart","onCompositionupdate","onCompositionend","onKeydown"])],32)]),content:be(()=>[me(f,null,{default:be(()=>[mt(me(d,{ref:"scrollbar",tag:"ul","wrap-class":e.nsSelect.be("dropdown","wrap"),"view-class":e.nsSelect.be("dropdown","list"),class:W([e.nsSelect.is("empty",!e.allowCreate&&!!e.query&&e.filteredOptionsCount===0)])},{default:be(()=>[e.showNewOption?(k(),Me(c,{key:0,value:e.query,created:!0},null,8,["value"])):Ae("v-if",!0),Pe(e.$slots,"default")]),_:3},8,["wrap-class","view-class","class"]),[[zt,e.options.size>0&&!e.loading]]),e.emptyText&&(!e.allowCreate||e.loading||e.allowCreate&&e.options.size===0)?(k(),D(Ze,{key:0},[e.$slots.empty?Pe(e.$slots,"empty",{key:0}):(k(),D("p",{key:1,class:W(e.nsSelect.be("dropdown","empty"))},ze(e.emptyText),3))],64)):Ae("v-if",!0)]),_:3})]),_:3},8,["visible","placement","teleported","popper-class","effect","transition","persistent","onShow"])],34)),[[p,e.handleClose,e.popperPaneRef]])}var eDe=Fe(XBe,[["render",ZBe],["__file","/home/runner/work/element-plus/element-plus/packages/components/select/src/select.vue"]]);const tDe=Ce({name:"ElOptionGroup",componentName:"ElOptionGroup",props:{label:String,disabled:{type:Boolean,default:!1}},setup(e){const t=De("select"),n=ee(!0),r=gt(),o=ee([]);Ct(UA,Ht({...On(e)}));const s=Ye(vf);vt(()=>{o.value=a(r.subTree)});const a=l=>{const u=[];return Array.isArray(l.children)&&l.children.forEach(c=>{var d;c.type&&c.type.name==="ElOption"&&c.component&&c.component.proxy?u.push(c.component.proxy):(d=c.children)!=null&&d.length&&u.push(...a(c))}),u},{groupQueryChange:i}=Ut(s);return Be(i,()=>{n.value=o.value.some(l=>l.visible===!0)},{flush:"post"}),{visible:n,ns:t}}});function nDe(e,t,n,r,o,s){return mt((k(),D("ul",{class:W(e.ns.be("group","wrap"))},[R("li",{class:W(e.ns.be("group","title"))},ze(e.label),3),R("li",null,[R("ul",{class:W(e.ns.b("group"))},[Pe(e.$slots,"default")],2)])],2)),[[zt,e.visible]])}var WA=Fe(tDe,[["render",nDe],["__file","/home/runner/work/element-plus/element-plus/packages/components/select/src/option-group.vue"]]);const rl=St(eDe,{Option:Nb,OptionGroup:WA}),e0=En(Nb),rDe=En(WA),Lb=()=>Ye(_7,{}),oDe=He({pageSize:{type:Number,required:!0},pageSizes:{type:Re(Array),default:()=>hn([10,20,30,40,50,100])},popperClass:{type:String},disabled:Boolean,size:{type:String,values:ha}}),sDe=Ce({name:"ElPaginationSizes"}),aDe=Ce({...sDe,props:oDe,emits:["page-size-change"],setup(e,{emit:t}){const n=e,{t:r}=Vt(),o=De("pagination"),s=Lb(),a=ee(n.pageSize);Be(()=>n.pageSizes,(u,c)=>{if(!to(u,c)&&Array.isArray(u)){const d=u.includes(n.pageSize)?n.pageSize:n.pageSizes[0];t("page-size-change",d)}}),Be(()=>n.pageSize,u=>{a.value=u});const i=z(()=>n.pageSizes);function l(u){var c;u!==a.value&&(a.value=u,(c=s.handleSizeChange)==null||c.call(s,Number(u)))}return(u,c)=>(k(),D("span",{class:W(h(o).e("sizes"))},[me(h(rl),{"model-value":a.value,disabled:u.disabled,"popper-class":u.popperClass,size:u.size,"validate-event":!1,onChange:l},{default:be(()=>[(k(!0),D(Ze,null,At(h(i),d=>(k(),Me(h(e0),{key:d,value:d,label:d+h(r)("el.pagination.pagesize")},null,8,["value","label"]))),128))]),_:1},8,["model-value","disabled","popper-class","size"])],2))}});var iDe=Fe(aDe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/pagination/src/components/sizes.vue"]]);const lDe=He({size:{type:String,values:ha}}),uDe=["disabled"],cDe=Ce({name:"ElPaginationJumper"}),dDe=Ce({...cDe,props:lDe,setup(e){const{t}=Vt(),n=De("pagination"),{pageCount:r,disabled:o,currentPage:s,changeEvent:a}=Lb(),i=ee(),l=z(()=>{var d;return(d=i.value)!=null?d:s==null?void 0:s.value});function u(d){i.value=+d}function c(d){d=Math.trunc(+d),a==null||a(+d),i.value=void 0}return(d,f)=>(k(),D("span",{class:W(h(n).e("jump")),disabled:h(o)},[R("span",{class:W([h(n).e("goto")])},ze(h(t)("el.pagination.goto")),3),me(h(mr),{size:d.size,class:W([h(n).e("editor"),h(n).is("in-pagination")]),min:1,max:h(r),disabled:h(o),"model-value":h(l),"validate-event":!1,type:"number","onUpdate:modelValue":u,onChange:c},null,8,["size","class","max","disabled","model-value"]),R("span",{class:W([h(n).e("classifier")])},ze(h(t)("el.pagination.pageClassifier")),3)],10,uDe))}});var fDe=Fe(dDe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/pagination/src/components/jumper.vue"]]);const pDe=He({total:{type:Number,default:1e3}}),hDe=["disabled"],mDe=Ce({name:"ElPaginationTotal"}),vDe=Ce({...mDe,props:pDe,setup(e){const{t}=Vt(),n=De("pagination"),{disabled:r}=Lb();return(o,s)=>(k(),D("span",{class:W(h(n).e("total")),disabled:h(r)},ze(h(t)("el.pagination.total",{total:o.total})),11,hDe))}});var gDe=Fe(vDe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/pagination/src/components/total.vue"]]);const _De=He({currentPage:{type:Number,default:1},pageCount:{type:Number,required:!0},pagerCount:{type:Number,default:7},disabled:Boolean}),yDe=["onKeyup"],bDe=["aria-current","tabindex"],wDe=["tabindex"],SDe=["aria-current","tabindex"],EDe=["tabindex"],CDe=["aria-current","tabindex"],kDe=Ce({name:"ElPaginationPager"}),TDe=Ce({...kDe,props:_De,emits:["change"],setup(e,{emit:t}){const n=e,r=De("pager"),o=De("icon"),s=ee(!1),a=ee(!1),i=ee(!1),l=ee(!1),u=ee(!1),c=ee(!1),d=z(()=>{const b=n.pagerCount,_=(b-1)/2,y=Number(n.currentPage),S=Number(n.pageCount);let w=!1,E=!1;S>b&&(y>b-_&&(w=!0),yn.disabled?-1:0);Cr(()=>{const b=(n.pagerCount-1)/2;s.value=!1,a.value=!1,n.pageCount>n.pagerCount&&(n.currentPage>n.pagerCount-b&&(s.value=!0),n.currentPageS&&(y=S)),y!==w&&t("change",y)}return(b,_)=>(k(),D("ul",{class:W(h(r).b()),onClick:g,onKeyup:Rt(v,["enter"])},[b.pageCount>0?(k(),D("li",{key:0,class:W([[h(r).is("active",b.currentPage===1),h(r).is("disabled",b.disabled)],"number"]),"aria-current":b.currentPage===1,tabindex:h(f)}," 1 ",10,bDe)):Ae("v-if",!0),s.value?(k(),D("li",{key:1,class:W(["more","btn-quickprev",h(o).b(),h(r).is("disabled",b.disabled)]),tabindex:h(f),onMouseenter:_[0]||(_[0]=y=>p(!0)),onMouseleave:_[1]||(_[1]=y=>i.value=!1),onFocus:_[2]||(_[2]=y=>m(!0)),onBlur:_[3]||(_[3]=y=>u.value=!1)},[(i.value||u.value)&&!b.disabled?(k(),Me(h(tl),{key:0})):(k(),Me(h(a1),{key:1}))],42,wDe)):Ae("v-if",!0),(k(!0),D(Ze,null,At(h(d),y=>(k(),D("li",{key:y,class:W([[h(r).is("active",b.currentPage===y),h(r).is("disabled",b.disabled)],"number"]),"aria-current":b.currentPage===y,tabindex:h(f)},ze(y),11,SDe))),128)),a.value?(k(),D("li",{key:2,class:W(["more","btn-quicknext",h(o).b(),h(r).is("disabled",b.disabled)]),tabindex:h(f),onMouseenter:_[4]||(_[4]=y=>p()),onMouseleave:_[5]||(_[5]=y=>l.value=!1),onFocus:_[6]||(_[6]=y=>m()),onBlur:_[7]||(_[7]=y=>c.value=!1)},[(l.value||c.value)&&!b.disabled?(k(),Me(h(nl),{key:0})):(k(),Me(h(a1),{key:1}))],42,EDe)):Ae("v-if",!0),b.pageCount>1?(k(),D("li",{key:3,class:W([[h(r).is("active",b.currentPage===b.pageCount),h(r).is("disabled",b.disabled)],"number"]),"aria-current":b.currentPage===b.pageCount,tabindex:h(f)},ze(b.pageCount),11,CDe)):Ae("v-if",!0)],42,yDe))}});var $De=Fe(TDe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/pagination/src/components/pager.vue"]]);const yr=e=>typeof e!="number",xDe=He({total:Number,pageSize:Number,defaultPageSize:Number,currentPage:Number,defaultCurrentPage:Number,pageCount:Number,pagerCount:{type:Number,validator:e=>dt(e)&&Math.trunc(e)===e&&e>4&&e<22&&e%2===1,default:7},layout:{type:String,default:["prev","pager","next","jumper","->","total"].join(", ")},pageSizes:{type:Re(Array),default:()=>hn([10,20,30,40,50,100])},popperClass:{type:String,default:""},prevText:{type:String,default:""},prevIcon:{type:on,default:()=>ea},nextText:{type:String,default:""},nextIcon:{type:on,default:()=>vr},small:Boolean,background:Boolean,disabled:Boolean,hideOnSinglePage:Boolean}),IDe={"update:current-page":e=>dt(e),"update:page-size":e=>dt(e),"size-change":e=>dt(e),"current-change":e=>dt(e),"prev-click":e=>dt(e),"next-click":e=>dt(e)},e5="ElPagination";var ADe=Ce({name:e5,props:xDe,emits:IDe,setup(e,{emit:t,slots:n}){const{t:r}=Vt(),o=De("pagination"),s=gt().vnode.props||{},a="onUpdate:currentPage"in s||"onUpdate:current-page"in s||"onCurrentChange"in s,i="onUpdate:pageSize"in s||"onUpdate:page-size"in s||"onSizeChange"in s,l=z(()=>{if(yr(e.total)&&yr(e.pageCount)||!yr(e.currentPage)&&!a)return!1;if(e.layout.includes("sizes")){if(yr(e.pageCount)){if(!yr(e.total)&&!yr(e.pageSize)&&!i)return!1}else if(!i)return!1}return!0}),u=ee(yr(e.defaultPageSize)?10:e.defaultPageSize),c=ee(yr(e.defaultCurrentPage)?1:e.defaultCurrentPage),d=z({get(){return yr(e.pageSize)?u.value:e.pageSize},set(y){yr(e.pageSize)&&(u.value=y),i&&(t("update:page-size",y),t("size-change",y))}}),f=z(()=>{let y=0;return yr(e.pageCount)?yr(e.total)||(y=Math.max(1,Math.ceil(e.total/d.value))):y=e.pageCount,y}),p=z({get(){return yr(e.currentPage)?c.value:e.currentPage},set(y){let S=y;y<1?S=1:y>f.value&&(S=f.value),yr(e.currentPage)&&(c.value=S),a&&(t("update:current-page",S),t("current-change",S))}});Be(f,y=>{p.value>y&&(p.value=y)});function m(y){p.value=y}function v(y){d.value=y;const S=f.value;p.value>S&&(p.value=S)}function g(){e.disabled||(p.value-=1,t("prev-click",p.value))}function b(){e.disabled||(p.value+=1,t("next-click",p.value))}function _(y,S){y&&(y.props||(y.props={}),y.props.class=[y.props.class,S].join(" "))}return Ct(_7,{pageCount:f,disabled:z(()=>e.disabled),currentPage:p,changeEvent:m,handleSizeChange:v}),()=>{var y,S;if(!l.value)return r("el.pagination.deprecationWarning"),null;if(!e.layout||e.hideOnSinglePage&&f.value<=1)return null;const w=[],E=[],T=tt("div",{class:o.e("rightwrapper")},E),C={prev:tt(NBe,{disabled:e.disabled,currentPage:p.value,prevText:e.prevText,prevIcon:e.prevIcon,onClick:g}),jumper:tt(fDe,{size:e.small?"small":"default"}),pager:tt($De,{currentPage:p.value,pageCount:f.value,pagerCount:e.pagerCount,onChange:m,disabled:e.disabled}),next:tt(HBe,{disabled:e.disabled,currentPage:p.value,pageCount:f.value,nextText:e.nextText,nextIcon:e.nextIcon,onClick:b}),sizes:tt(iDe,{pageSize:d.value,pageSizes:e.pageSizes,popperClass:e.popperClass,disabled:e.disabled,size:e.small?"small":"default"}),slot:(S=(y=n==null?void 0:n.default)==null?void 0:y.call(n))!=null?S:null,total:tt(gDe,{total:yr(e.total)?0:e.total})},$=e.layout.split(",").map(N=>N.trim());let x=!1;return $.forEach(N=>{if(N==="->"){x=!0;return}x?E.push(C[N]):w.push(C[N])}),_(w[0],o.is("first")),_(w[w.length-1],o.is("last")),x&&E.length>0&&(_(E[0],o.is("first")),_(E[E.length-1],o.is("last")),w.push(T)),tt("div",{role:"pagination","aria-label":"pagination",class:[o.b(),o.is("background",e.background),{[o.m("small")]:e.small}]},w)}}});const MDe=St(ADe),ODe=He({title:String,confirmButtonText:String,cancelButtonText:String,confirmButtonType:{type:String,values:c1,default:"primary"},cancelButtonType:{type:String,values:c1,default:"text"},icon:{type:on,default:()=>Qx},iconColor:{type:String,default:"#f90"},hideIcon:{type:Boolean,default:!1},hideAfter:{type:Number,default:200},onConfirm:{type:Re(Function)},onCancel:{type:Re(Function)},teleported:Kn.teleported,persistent:Kn.persistent,width:{type:[String,Number],default:150}}),RDe=Ce({name:"ElPopconfirm"}),PDe=Ce({...RDe,props:ODe,setup(e){const t=e,{t:n}=Vt(),r=De("popconfirm"),o=ee(),s=()=>{var d,f;(f=(d=o.value)==null?void 0:d.onClose)==null||f.call(d)},a=z(()=>({width:Nn(t.width)})),i=d=>{var f;(f=t.onConfirm)==null||f.call(t,d),s()},l=d=>{var f;(f=t.onCancel)==null||f.call(t,d),s()},u=z(()=>t.confirmButtonText||n("el.popconfirm.confirmButtonText")),c=z(()=>t.cancelButtonText||n("el.popconfirm.cancelButtonText"));return(d,f)=>(k(),Me(h(Ur),$t({ref_key:"tooltipRef",ref:o,trigger:"click",effect:"light"},d.$attrs,{"popper-class":`${h(r).namespace.value}-popover`,"popper-style":h(a),teleported:d.teleported,"fallback-placements":["bottom","top","right","left"],"hide-after":d.hideAfter,persistent:d.persistent}),{content:be(()=>[R("div",{class:W(h(r).b())},[R("div",{class:W(h(r).e("main"))},[!d.hideIcon&&d.icon?(k(),Me(h(et),{key:0,class:W(h(r).e("icon")),style:Je({color:d.iconColor})},{default:be(()=>[(k(),Me(kt(d.icon)))]),_:1},8,["class","style"])):Ae("v-if",!0),Ot(" "+ze(d.title),1)],2),R("div",{class:W(h(r).e("action"))},[me(h(or),{size:"small",type:d.cancelButtonType==="text"?"":d.cancelButtonType,text:d.cancelButtonType==="text",onClick:l},{default:be(()=>[Ot(ze(h(c)),1)]),_:1},8,["type","text"]),me(h(or),{size:"small",type:d.confirmButtonType==="text"?"":d.confirmButtonType,text:d.confirmButtonType==="text",onClick:i},{default:be(()=>[Ot(ze(h(u)),1)]),_:1},8,["type","text"])],2)],2)]),default:be(()=>[d.$slots.reference?Pe(d.$slots,"reference",{key:0}):Ae("v-if",!0)]),_:3},16,["popper-class","popper-style","teleported","hide-after","persistent"]))}});var NDe=Fe(PDe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popconfirm/src/popconfirm.vue"]]);const LDe=St(NDe),BDe=He({trigger:Ad.trigger,placement:Ap.placement,disabled:Ad.disabled,visible:Kn.visible,transition:Kn.transition,popperOptions:Ap.popperOptions,tabindex:Ap.tabindex,content:Kn.content,popperStyle:Kn.popperStyle,popperClass:Kn.popperClass,enterable:{...Kn.enterable,default:!0},effect:{...Kn.effect,default:"light"},teleported:Kn.teleported,title:String,width:{type:[String,Number],default:150},offset:{type:Number,default:void 0},showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0},showArrow:{type:Boolean,default:!0},persistent:{type:Boolean,default:!0},"onUpdate:visible":{type:Function}}),DDe={"update:visible":e=>Dn(e),"before-enter":()=>!0,"before-leave":()=>!0,"after-enter":()=>!0,"after-leave":()=>!0},zDe="onUpdate:visible",FDe=Ce({name:"ElPopover"}),HDe=Ce({...FDe,props:BDe,emits:DDe,setup(e,{expose:t,emit:n}){const r=e,o=z(()=>r[zDe]),s=De("popover"),a=ee(),i=z(()=>{var g;return(g=h(a))==null?void 0:g.popperRef}),l=z(()=>[{width:Nn(r.width)},r.popperStyle]),u=z(()=>[s.b(),r.popperClass,{[s.m("plain")]:!!r.content}]),c=z(()=>r.transition===`${s.namespace.value}-fade-in-linear`),d=()=>{var g;(g=a.value)==null||g.hide()},f=()=>{n("before-enter")},p=()=>{n("before-leave")},m=()=>{n("after-enter")},v=()=>{n("update:visible",!1),n("after-leave")};return t({popperRef:i,hide:d}),(g,b)=>(k(),Me(h(Ur),$t({ref_key:"tooltipRef",ref:a},g.$attrs,{trigger:g.trigger,placement:g.placement,disabled:g.disabled,visible:g.visible,transition:g.transition,"popper-options":g.popperOptions,tabindex:g.tabindex,content:g.content,offset:g.offset,"show-after":g.showAfter,"hide-after":g.hideAfter,"auto-close":g.autoClose,"show-arrow":g.showArrow,"aria-label":g.title,effect:g.effect,enterable:g.enterable,"popper-class":h(u),"popper-style":h(l),teleported:g.teleported,persistent:g.persistent,"gpu-acceleration":h(c),"onUpdate:visible":h(o),onBeforeShow:f,onBeforeHide:p,onShow:m,onHide:v}),{content:be(()=>[g.title?(k(),D("div",{key:0,class:W(h(s).e("title")),role:"title"},ze(g.title),3)):Ae("v-if",!0),Pe(g.$slots,"default",{},()=>[Ot(ze(g.content),1)])]),default:be(()=>[g.$slots.reference?Pe(g.$slots,"reference",{key:0}):Ae("v-if",!0)]),_:3},16,["trigger","placement","disabled","visible","transition","popper-options","tabindex","content","offset","show-after","hide-after","auto-close","show-arrow","aria-label","effect","enterable","popper-class","popper-style","teleported","persistent","gpu-acceleration","onUpdate:visible"]))}});var VDe=Fe(HDe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/popover/src/popover.vue"]]);const t5=(e,t)=>{const n=t.arg||t.value,r=n==null?void 0:n.popperRef;r&&(r.triggerRef=e)};var jDe={mounted(e,t){t5(e,t)},updated(e,t){t5(e,t)}};const UDe="popover",qA=ZCe(jDe,UDe),WDe=St(VDe,{directive:qA}),qDe=He({type:{type:String,default:"line",values:["line","circle","dashboard"]},percentage:{type:Number,default:0,validator:e=>e>=0&&e<=100},status:{type:String,default:"",values:["","success","exception","warning"]},indeterminate:{type:Boolean,default:!1},duration:{type:Number,default:3},strokeWidth:{type:Number,default:6},strokeLinecap:{type:Re(String),default:"round"},textInside:{type:Boolean,default:!1},width:{type:Number,default:126},showText:{type:Boolean,default:!0},color:{type:Re([String,Array,Function]),default:""},format:{type:Re(Function),default:e=>`${e}%`}}),KDe=["aria-valuenow"],GDe={viewBox:"0 0 100 100"},YDe=["d","stroke","stroke-width"],XDe=["d","stroke","opacity","stroke-linecap","stroke-width"],JDe={key:0},QDe=Ce({name:"ElProgress"}),ZDe=Ce({...QDe,props:qDe,setup(e){const t=e,n={success:"#13ce66",exception:"#ff4949",warning:"#e6a23c",default:"#20a0ff"},r=De("progress"),o=z(()=>({width:`${t.percentage}%`,animationDuration:`${t.duration}s`,backgroundColor:_(t.percentage)})),s=z(()=>(t.strokeWidth/t.width*100).toFixed(1)),a=z(()=>["circle","dashboard"].includes(t.type)?Number.parseInt(`${50-Number.parseFloat(s.value)/2}`,10):0),i=z(()=>{const y=a.value,S=t.type==="dashboard";return` + M 50 50 + m 0 ${S?"":"-"}${y} + a ${y} ${y} 0 1 1 0 ${S?"-":""}${y*2} + a ${y} ${y} 0 1 1 0 ${S?"":"-"}${y*2} + `}),l=z(()=>2*Math.PI*a.value),u=z(()=>t.type==="dashboard"?.75:1),c=z(()=>`${-1*l.value*(1-u.value)/2}px`),d=z(()=>({strokeDasharray:`${l.value*u.value}px, ${l.value}px`,strokeDashoffset:c.value})),f=z(()=>({strokeDasharray:`${l.value*u.value*(t.percentage/100)}px, ${l.value}px`,strokeDashoffset:c.value,transition:"stroke-dasharray 0.6s ease 0s, stroke 0.6s ease, opacity ease 0.6s"})),p=z(()=>{let y;return t.color?y=_(t.percentage):y=n[t.status]||n.default,y}),m=z(()=>t.status==="warning"?df:t.type==="line"?t.status==="success"?Z0:fa:t.status==="success"?Qu:wo),v=z(()=>t.type==="line"?12+t.strokeWidth*.4:t.width*.111111+2),g=z(()=>t.format(t.percentage));function b(y){const S=100/y.length;return y.map((E,T)=>ft(E)?{color:E,percentage:(T+1)*S}:E).sort((E,T)=>E.percentage-T.percentage)}const _=y=>{var S;const{color:w}=t;if(at(w))return w(y);if(ft(w))return w;{const E=b(w);for(const T of E)if(T.percentage>y)return T.color;return(S=E[E.length-1])==null?void 0:S.color}};return(y,S)=>(k(),D("div",{class:W([h(r).b(),h(r).m(y.type),h(r).is(y.status),{[h(r).m("without-text")]:!y.showText,[h(r).m("text-inside")]:y.textInside}]),role:"progressbar","aria-valuenow":y.percentage,"aria-valuemin":"0","aria-valuemax":"100"},[y.type==="line"?(k(),D("div",{key:0,class:W(h(r).b("bar"))},[R("div",{class:W(h(r).be("bar","outer")),style:Je({height:`${y.strokeWidth}px`})},[R("div",{class:W([h(r).be("bar","inner"),{[h(r).bem("bar","inner","indeterminate")]:y.indeterminate}]),style:Je(h(o))},[(y.showText||y.$slots.default)&&y.textInside?(k(),D("div",{key:0,class:W(h(r).be("bar","innerText"))},[Pe(y.$slots,"default",{percentage:y.percentage},()=>[R("span",null,ze(h(g)),1)])],2)):Ae("v-if",!0)],6)],6)],2)):(k(),D("div",{key:1,class:W(h(r).b("circle")),style:Je({height:`${y.width}px`,width:`${y.width}px`})},[(k(),D("svg",GDe,[R("path",{class:W(h(r).be("circle","track")),d:h(i),stroke:`var(${h(r).cssVarName("fill-color-light")}, #e5e9f2)`,"stroke-width":h(s),fill:"none",style:Je(h(d))},null,14,YDe),R("path",{class:W(h(r).be("circle","path")),d:h(i),stroke:h(p),fill:"none",opacity:y.percentage?1:0,"stroke-linecap":y.strokeLinecap,"stroke-width":h(s),style:Je(h(f))},null,14,XDe)]))],6)),(y.showText||y.$slots.default)&&!y.textInside?(k(),D("div",{key:2,class:W(h(r).e("text")),style:Je({fontSize:`${h(v)}px`})},[Pe(y.$slots,"default",{percentage:y.percentage},()=>[y.status?(k(),Me(h(et),{key:1},{default:be(()=>[(k(),Me(kt(h(m))))]),_:1})):(k(),D("span",JDe,ze(h(g)),1))])],6)):Ae("v-if",!0)],10,KDe))}});var eze=Fe(ZDe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/progress/src/progress.vue"]]);const KA=St(eze),tze=He({modelValue:{type:Number,default:0},id:{type:String,default:void 0},lowThreshold:{type:Number,default:2},highThreshold:{type:Number,default:4},max:{type:Number,default:5},colors:{type:Re([Array,Object]),default:()=>hn(["","",""])},voidColor:{type:String,default:""},disabledVoidColor:{type:String,default:""},icons:{type:Re([Array,Object]),default:()=>[Cc,Cc,Cc]},voidIcon:{type:on,default:()=>s7},disabledVoidIcon:{type:on,default:()=>Cc},disabled:{type:Boolean},allowHalf:{type:Boolean},showText:{type:Boolean},showScore:{type:Boolean},textColor:{type:String,default:""},texts:{type:Re(Array),default:()=>hn(["Extremely bad","Disappointed","Fair","Satisfied","Surprise"])},scoreTemplate:{type:String,default:"{value}"},size:{type:String,validator:Zu},label:{type:String,default:void 0},clearable:{type:Boolean,default:!1}}),nze={[un]:e=>dt(e),[Et]:e=>dt(e)},rze=["id","aria-label","aria-labelledby","aria-valuenow","aria-valuetext","aria-valuemax"],oze=["onMousemove","onClick"],sze=Ce({name:"ElRate"}),aze=Ce({...sze,props:tze,emits:nze,setup(e,{expose:t,emit:n}){const r=e;function o(U,P){const O=te=>xt(te),H=Object.keys(P).map(te=>+te).filter(te=>{const V=P[te];return(O(V)?V.excluded:!1)?Ute-V),q=P[H[0]];return O(q)&&q.value||q}const s=Ye(cl,void 0),a=Ye(fs,void 0),i=Ln(),l=De("rate"),{inputId:u,isLabeledByFormItem:c}=di(r,{formItemContext:a}),d=ee(r.modelValue),f=ee(-1),p=ee(!0),m=z(()=>[l.b(),l.m(i.value)]),v=z(()=>r.disabled||(s==null?void 0:s.disabled)),g=z(()=>l.cssVarBlock({"void-color":r.voidColor,"disabled-void-color":r.disabledVoidColor,"fill-color":S.value})),b=z(()=>{let U="";return r.showScore?U=r.scoreTemplate.replace(/\{\s*value\s*\}/,v.value?`${r.modelValue}`:`${d.value}`):r.showText&&(U=r.texts[Math.ceil(d.value)-1]),U}),_=z(()=>r.modelValue*100-Math.floor(r.modelValue)*100),y=z(()=>Ge(r.colors)?{[r.lowThreshold]:r.colors[0],[r.highThreshold]:{value:r.colors[1],excluded:!0},[r.max]:r.colors[2]}:r.colors),S=z(()=>{const U=o(d.value,y.value);return xt(U)?"":U}),w=z(()=>{let U="";return v.value?U=`${_.value}%`:r.allowHalf&&(U="50%"),{color:S.value,width:U}}),E=z(()=>{let U=Ge(r.icons)?[...r.icons]:{...r.icons};return U=Po(U),Ge(U)?{[r.lowThreshold]:U[0],[r.highThreshold]:{value:U[1],excluded:!0},[r.max]:U[2]}:U}),T=z(()=>o(r.modelValue,E.value)),C=z(()=>v.value?ft(r.disabledVoidIcon)?r.disabledVoidIcon:Po(r.disabledVoidIcon):ft(r.voidIcon)?r.voidIcon:Po(r.voidIcon)),$=z(()=>o(d.value,E.value));function x(U){const P=v.value&&_.value>0&&U-1r.modelValue,O=r.allowHalf&&p.value&&U-.5<=d.value&&U>d.value;return P||O}function N(U){r.clearable&&U===r.modelValue&&(U=0),n(Et,U),r.modelValue!==U&&n("change",U)}function I(U){v.value||(r.allowHalf&&p.value?N(d.value):N(U))}function L(U){if(v.value)return;let P=d.value;const O=U.code;return O===ot.up||O===ot.right?(r.allowHalf?P+=.5:P+=1,U.stopPropagation(),U.preventDefault()):(O===ot.left||O===ot.down)&&(r.allowHalf?P-=.5:P-=1,U.stopPropagation(),U.preventDefault()),P=P<0?0:P,P=P>r.max?r.max:P,n(Et,P),n("change",P),P}function F(U,P){if(!v.value){if(r.allowHalf){let O=P.target;No(O,l.e("item"))&&(O=O.querySelector(`.${l.e("icon")}`)),(O.clientWidth===0||No(O,l.e("decimal")))&&(O=O.parentNode),p.value=P.offsetX*2<=O.clientWidth,d.value=p.value?U-.5:U}else d.value=U;f.value=U}}function B(){v.value||(r.allowHalf&&(p.value=r.modelValue!==Math.floor(r.modelValue)),d.value=r.modelValue,f.value=-1)}return Be(()=>r.modelValue,U=>{d.value=U,p.value=r.modelValue!==Math.floor(r.modelValue)}),r.modelValue||n(Et,0),t({setCurrentValue:F,resetCurrentValue:B}),(U,P)=>{var O;return k(),D("div",{id:h(u),class:W([h(m),h(l).is("disabled",h(v))]),role:"slider","aria-label":h(c)?void 0:U.label||"rating","aria-labelledby":h(c)?(O=h(a))==null?void 0:O.labelId:void 0,"aria-valuenow":d.value,"aria-valuetext":h(b)||void 0,"aria-valuemin":"0","aria-valuemax":U.max,tabindex:"0",style:Je(h(g)),onKeydown:L},[(k(!0),D(Ze,null,At(U.max,(H,q)=>(k(),D("span",{key:q,class:W(h(l).e("item")),onMousemove:te=>F(H,te),onMouseleave:B,onClick:te=>I(H)},[me(h(et),{class:W([h(l).e("icon"),{hover:f.value===H},h(l).is("active",H<=d.value)])},{default:be(()=>[x(H)?Ae("v-if",!0):(k(),D(Ze,{key:0},[mt((k(),Me(kt(h($)),null,null,512)),[[zt,H<=d.value]]),mt((k(),Me(kt(h(C)),null,null,512)),[[zt,!(H<=d.value)]])],64)),x(H)?(k(),Me(h(et),{key:1,style:Je(h(w)),class:W([h(l).e("icon"),h(l).e("decimal")])},{default:be(()=>[(k(),Me(kt(h(T))))]),_:1},8,["style","class"])):Ae("v-if",!0)]),_:2},1032,["class"])],42,oze))),128)),U.showText||U.showScore?(k(),D("span",{key:0,class:W(h(l).e("text"))},ze(h(b)),3)):Ae("v-if",!0)],46,rze)}}});var ize=Fe(aze,[["__file","/home/runner/work/element-plus/element-plus/packages/components/rate/src/rate.vue"]]);const lze=St(ize),Ul={success:"icon-success",warning:"icon-warning",error:"icon-error",info:"icon-info"},n5={[Ul.success]:Ux,[Ul.warning]:df,[Ul.error]:em,[Ul.info]:tm},uze=He({title:{type:String,default:""},subTitle:{type:String,default:""},icon:{type:String,values:["success","warning","info","error"],default:"info"}}),cze=Ce({name:"ElResult"}),dze=Ce({...cze,props:uze,setup(e){const t=e,n=De("result"),r=z(()=>{const o=t.icon,s=o&&Ul[o]?Ul[o]:"icon-info",a=n5[s]||n5["icon-info"];return{class:s,component:a}});return(o,s)=>(k(),D("div",{class:W(h(n).b())},[R("div",{class:W(h(n).e("icon"))},[Pe(o.$slots,"icon",{},()=>[h(r).component?(k(),Me(kt(h(r).component),{key:0,class:W(h(r).class)},null,8,["class"])):Ae("v-if",!0)])],2),o.title||o.$slots.title?(k(),D("div",{key:0,class:W(h(n).e("title"))},[Pe(o.$slots,"title",{},()=>[R("p",null,ze(o.title),1)])],2)):Ae("v-if",!0),o.subTitle||o.$slots["sub-title"]?(k(),D("div",{key:1,class:W(h(n).e("subtitle"))},[Pe(o.$slots,"sub-title",{},()=>[R("p",null,ze(o.subTitle),1)])],2)):Ae("v-if",!0),o.$slots.extra?(k(),D("div",{key:2,class:W(h(n).e("extra"))},[Pe(o.$slots,"extra")],2)):Ae("v-if",!0)],2))}});var fze=Fe(dze,[["__file","/home/runner/work/element-plus/element-plus/packages/components/result/src/result.vue"]]);const pze=St(fze),hze=["start","center","end","space-around","space-between","space-evenly"],mze=["top","middle","bottom"],vze=He({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:hze,default:"start"},align:{type:String,values:mze,default:"top"}}),gze=Ce({name:"ElRow"}),_ze=Ce({...gze,props:vze,setup(e){const t=e,n=De("row"),r=z(()=>t.gutter);Ct(b7,{gutter:r});const o=z(()=>{const a={};return t.gutter&&(a.marginRight=a.marginLeft=`-${t.gutter/2}px`),a}),s=z(()=>[n.b(),n.is(`justify-${t.justify}`,t.justify!=="start"),n.is(`align-${t.align}`,t.align!=="top")]);return(a,i)=>(k(),Me(kt(a.tag),{class:W(h(s)),style:Je(h(o))},{default:be(()=>[Pe(a.$slots,"default")]),_:3},8,["class","style"]))}});var yze=Fe(_ze,[["__file","/home/runner/work/element-plus/element-plus/packages/components/row/src/row.vue"]]);const bze=St(yze);var r5=Number.isNaN||function(t){return typeof t=="number"&&t!==t};function wze(e,t){return!!(e===t||r5(e)&&r5(t))}function Sze(e,t){if(e.length!==t.length)return!1;for(var n=0;n{const t=gt().proxy.$props;return z(()=>{const n=(r,o,s)=>({});return t.perfMode?Y0(n):Eze(n)})},L1=50,t0="itemRendered",n0="scroll",Wl="forward",r0="backward",fo="auto",bm="smart",Rd="start",os="center",Pd="end",$u="horizontal",Bb="vertical",Cze="ltr",ru="rtl",Nd="negative",Db="positive-ascending",zb="positive-descending",kze={[$u]:"left",[Bb]:"top"},Tze=20,$ze={[$u]:"deltaX",[Bb]:"deltaY"},xze=({atEndEdge:e,atStartEdge:t,layout:n},r)=>{let o,s=0;const a=l=>l<0&&t.value||l>0&&e.value;return{hasReachedEdge:a,onWheel:l=>{om(o);const u=l[$ze[n.value]];a(s)&&a(s+u)||(s+=u,rb()||l.preventDefault(),o=kd(()=>{r(s),s=0}))}}},B1=qo({type:Re([Number,Function]),required:!0}),D1=qo({type:Number}),z1=qo({type:Number,default:2}),Ize=qo({type:String,values:["ltr","rtl"],default:"ltr"}),F1=qo({type:Number,default:0}),o0=qo({type:Number,required:!0}),YA=qo({type:String,values:["horizontal","vertical"],default:Bb}),XA=He({className:{type:String,default:""},containerElement:{type:Re([String,Object]),default:"div"},data:{type:Re(Array),default:()=>hn([])},direction:Ize,height:{type:[String,Number],required:!0},innerElement:{type:[String,Object],default:"div"},style:{type:Re([Object,String,Array])},useIsScrolling:{type:Boolean,default:!1},width:{type:[Number,String],required:!1},perfMode:{type:Boolean,default:!0},scrollbarAlwaysOn:{type:Boolean,default:!1}}),JA=He({cache:z1,estimatedItemSize:D1,layout:YA,initScrollOffset:F1,total:o0,itemSize:B1,...XA}),H1={type:Number,default:6},QA={type:Number,default:0},ZA={type:Number,default:2},Ui=He({columnCache:z1,columnWidth:B1,estimatedColumnWidth:D1,estimatedRowHeight:D1,initScrollLeft:F1,initScrollTop:F1,itemKey:{type:Re(Function),default:({columnIndex:e,rowIndex:t})=>`${t}:${e}`},rowCache:z1,rowHeight:B1,totalColumn:o0,totalRow:o0,hScrollbarSize:H1,vScrollbarSize:H1,scrollbarStartGap:QA,scrollbarEndGap:ZA,...XA}),eM=He({alwaysOn:Boolean,class:String,layout:YA,total:o0,ratio:{type:Number,required:!0},clientSize:{type:Number,required:!0},scrollFrom:{type:Number,required:!0},scrollbarSize:H1,startGap:QA,endGap:ZA,visible:Boolean}),Mi=(e,t)=>ee===Cze||e===ru||e===$u,o5=e=>e===ru;let wl=null;function s0(e=!1){if(wl===null||e){const t=document.createElement("div"),n=t.style;n.width="50px",n.height="50px",n.overflow="scroll",n.direction="rtl";const r=document.createElement("div"),o=r.style;return o.width="100px",o.height="100px",t.appendChild(r),document.body.appendChild(t),t.scrollLeft>0?wl=zb:(t.scrollLeft=1,t.scrollLeft===0?wl=Nd:wl=Db),document.body.removeChild(t),wl}return wl}function Aze({move:e,size:t,bar:n},r){const o={},s=`translate${n.axis}(${e}px)`;return o[n.size]=t,o.transform=s,o.msTransform=s,o.webkitTransform=s,r==="horizontal"?o.height="100%":o.width="100%",o}const V1=Ce({name:"ElVirtualScrollBar",props:eM,emits:["scroll","start-move","stop-move"],setup(e,{emit:t}){const n=z(()=>e.startGap+e.endGap),r=De("virtual-scrollbar"),o=De("scrollbar"),s=ee(),a=ee();let i=null,l=null;const u=Ht({isDragging:!1,traveled:0}),c=z(()=>G7[e.layout]),d=z(()=>e.clientSize-h(n)),f=z(()=>({position:"absolute",width:`${$u===e.layout?d.value:e.scrollbarSize}px`,height:`${$u===e.layout?e.scrollbarSize:d.value}px`,[kze[e.layout]]:"2px",right:"2px",bottom:"2px",borderRadius:"4px"})),p=z(()=>{const E=e.ratio,T=e.clientSize;if(E>=100)return Number.POSITIVE_INFINITY;if(E>=50)return E*T/100;const C=T/3;return Math.floor(Math.min(Math.max(E*T,Tze),C))}),m=z(()=>{if(!Number.isFinite(p.value))return{display:"none"};const E=`${p.value}px`;return Aze({bar:c.value,size:E,move:u.traveled},e.layout)}),v=z(()=>Math.floor(e.clientSize-p.value-h(n))),g=()=>{window.addEventListener("mousemove",S),window.addEventListener("mouseup",y);const E=h(a);E&&(l=document.onselectstart,document.onselectstart=()=>!1,E.addEventListener("touchmove",S),E.addEventListener("touchend",y))},b=()=>{window.removeEventListener("mousemove",S),window.removeEventListener("mouseup",y),document.onselectstart=l,l=null;const E=h(a);E&&(E.removeEventListener("touchmove",S),E.removeEventListener("touchend",y))},_=E=>{E.stopImmediatePropagation(),!(E.ctrlKey||[1,2].includes(E.button))&&(u.isDragging=!0,u[c.value.axis]=E.currentTarget[c.value.offset]-(E[c.value.client]-E.currentTarget.getBoundingClientRect()[c.value.direction]),t("start-move"),g())},y=()=>{u.isDragging=!1,u[c.value.axis]=0,t("stop-move"),b()},S=E=>{const{isDragging:T}=u;if(!T||!a.value||!s.value)return;const C=u[c.value.axis];if(!C)return;om(i);const $=(s.value.getBoundingClientRect()[c.value.direction]-E[c.value.client])*-1,x=a.value[c.value.offset]-C,N=$-x;i=kd(()=>{u.traveled=Math.max(e.startGap,Math.min(N,v.value)),t("scroll",N,v.value)})},w=E=>{const T=Math.abs(E.target.getBoundingClientRect()[c.value.direction]-E[c.value.client]),C=a.value[c.value.offset]/2,$=T-C;u.traveled=Math.max(0,Math.min($,v.value)),t("scroll",$,v.value)};return Be(()=>e.scrollFrom,E=>{u.isDragging||(u.traveled=Math.ceil(E*v.value))}),fn(()=>{b()}),()=>tt("div",{role:"presentation",ref:s,class:[r.b(),e.class,(e.alwaysOn||u.isDragging)&&"always-on"],style:f.value,onMousedown:ct(w,["stop","prevent"]),onTouchstartPrevent:_},tt("div",{ref:a,class:o.e("thumb"),style:m.value,onMousedown:_},[]))}}),tM=({name:e,getOffset:t,getItemSize:n,getItemOffset:r,getEstimatedTotalSize:o,getStartIndexForOffset:s,getStopIndexForStartIndex:a,initCache:i,clearCache:l,validateProps:u})=>Ce({name:e??"ElVirtualList",props:JA,emits:[t0,n0],setup(c,{emit:d,expose:f}){u(c);const p=gt(),m=De("vl"),v=ee(i(c,p)),g=GA(),b=ee(),_=ee(),y=ee(),S=ee({isScrolling:!1,scrollDir:"forward",scrollOffset:dt(c.initScrollOffset)?c.initScrollOffset:0,updateRequested:!1,isScrollbarDragging:!1,scrollbarAlwaysOn:c.scrollbarAlwaysOn}),w=z(()=>{const{total:Q,cache:ge}=c,{isScrolling:ie,scrollDir:ke,scrollOffset:Y}=h(S);if(Q===0)return[0,0,0,0];const K=s(c,Y,h(v)),se=a(c,K,Y,h(v)),ne=!ie||ke===r0?Math.max(1,ge):1,ve=!ie||ke===Wl?Math.max(1,ge):1;return[Math.max(0,K-ne),Math.max(0,Math.min(Q-1,se+ve)),K,se]}),E=z(()=>o(c,h(v))),T=z(()=>Ld(c.layout)),C=z(()=>[{position:"relative",[`overflow-${T.value?"x":"y"}`]:"scroll",WebkitOverflowScrolling:"touch",willChange:"transform"},{direction:c.direction,height:dt(c.height)?`${c.height}px`:c.height,width:dt(c.width)?`${c.width}px`:c.width},c.style]),$=z(()=>{const Q=h(E),ge=h(T);return{height:ge?"100%":`${Q}px`,pointerEvents:h(S).isScrolling?"none":void 0,width:ge?`${Q}px`:"100%"}}),x=z(()=>T.value?c.width:c.height),{onWheel:N}=xze({atStartEdge:z(()=>S.value.scrollOffset<=0),atEndEdge:z(()=>S.value.scrollOffset>=E.value),layout:z(()=>c.layout)},Q=>{var ge,ie;(ie=(ge=y.value).onMouseUp)==null||ie.call(ge),P(Math.min(S.value.scrollOffset+Q,E.value-x.value))}),I=()=>{const{total:Q}=c;if(Q>0){const[Y,K,se,ne]=h(w);d(t0,Y,K,se,ne)}const{scrollDir:ge,scrollOffset:ie,updateRequested:ke}=h(S);d(n0,ge,ie,ke)},L=Q=>{const{clientHeight:ge,scrollHeight:ie,scrollTop:ke}=Q.currentTarget,Y=h(S);if(Y.scrollOffset===ke)return;const K=Math.max(0,Math.min(ke,ie-ge));S.value={...Y,isScrolling:!0,scrollDir:Mi(Y.scrollOffset,K),scrollOffset:K,updateRequested:!1},Xe(q)},F=Q=>{const{clientWidth:ge,scrollLeft:ie,scrollWidth:ke}=Q.currentTarget,Y=h(S);if(Y.scrollOffset===ie)return;const{direction:K}=c;let se=ie;if(K===ru)switch(s0()){case Nd:{se=-ie;break}case zb:{se=ke-ge-ie;break}}se=Math.max(0,Math.min(se,ke-ge)),S.value={...Y,isScrolling:!0,scrollDir:Mi(Y.scrollOffset,se),scrollOffset:se,updateRequested:!1},Xe(q)},B=Q=>{h(T)?F(Q):L(Q),I()},U=(Q,ge)=>{const ie=(E.value-x.value)/ge*Q;P(Math.min(E.value-x.value,ie))},P=Q=>{Q=Math.max(Q,0),Q!==h(S).scrollOffset&&(S.value={...h(S),scrollOffset:Q,scrollDir:Mi(h(S).scrollOffset,Q),updateRequested:!0},Xe(q))},O=(Q,ge=fo)=>{const{scrollOffset:ie}=h(S);Q=Math.max(0,Math.min(Q,c.total-1)),P(t(c,Q,ge,ie,h(v)))},H=Q=>{const{direction:ge,itemSize:ie,layout:ke}=c,Y=g.value(l&&ie,l&&ke,l&&ge);let K;if(Bt(Y,String(Q)))K=Y[Q];else{const se=r(c,Q,h(v)),ne=n(c,Q,h(v)),ve=h(T),J=ge===ru,ae=ve?se:0;Y[Q]=K={position:"absolute",left:J?void 0:`${ae}px`,right:J?`${ae}px`:void 0,top:ve?0:`${se}px`,height:ve?"100%":`${ne}px`,width:ve?`${ne}px`:"100%"}}return K},q=()=>{S.value.isScrolling=!1,Xe(()=>{g.value(-1,null,null)})},te=()=>{const Q=b.value;Q&&(Q.scrollTop=0)};vt(()=>{if(!Pt)return;const{initScrollOffset:Q}=c,ge=h(b);dt(Q)&&ge&&(h(T)?ge.scrollLeft=Q:ge.scrollTop=Q),I()}),Uo(()=>{const{direction:Q,layout:ge}=c,{scrollOffset:ie,updateRequested:ke}=h(S),Y=h(b);if(ke&&Y)if(ge===$u)if(Q===ru)switch(s0()){case Nd:{Y.scrollLeft=-ie;break}case Db:{Y.scrollLeft=ie;break}default:{const{clientWidth:K,scrollWidth:se}=Y;Y.scrollLeft=se-K-ie;break}}else Y.scrollLeft=ie;else Y.scrollTop=ie});const V={ns:m,clientSize:x,estimatedTotalSize:E,windowStyle:C,windowRef:b,innerRef:_,innerStyle:$,itemsToRender:w,scrollbarRef:y,states:S,getItemStyle:H,onScroll:B,onScrollbarScroll:U,onWheel:N,scrollTo:P,scrollToItem:O,resetScrollTop:te};return f({windowRef:b,innerRef:_,getItemStyleCache:g,scrollTo:P,scrollToItem:O,resetScrollTop:te,states:S}),V},render(c){var d;const{$slots:f,className:p,clientSize:m,containerElement:v,data:g,getItemStyle:b,innerElement:_,itemsToRender:y,innerStyle:S,layout:w,total:E,onScroll:T,onScrollbarScroll:C,onWheel:$,states:x,useIsScrolling:N,windowStyle:I,ns:L}=c,[F,B]=y,U=kt(v),P=kt(_),O=[];if(E>0)for(let V=F;V<=B;V++)O.push((d=f.default)==null?void 0:d.call(f,{data:g,key:V,index:V,isScrolling:N?x.isScrolling:void 0,style:b(V)}));const H=[tt(P,{style:S,ref:"innerRef"},ft(P)?O:{default:()=>O})],q=tt(V1,{ref:"scrollbarRef",clientSize:m,layout:w,onScroll:C,ratio:m*100/this.estimatedTotalSize,scrollFrom:x.scrollOffset/(this.estimatedTotalSize-m),total:E}),te=tt(U,{class:[L.e("window"),p],style:I,onScroll:T,onWheel:$,ref:"windowRef",key:0},ft(U)?[H]:{default:()=>[H]});return tt("div",{key:0,class:[L.e("wrapper"),x.scrollbarAlwaysOn?"always-on":""]},[te,q])}}),nM=tM({name:"ElFixedSizeList",getItemOffset:({itemSize:e},t)=>t*e,getItemSize:({itemSize:e})=>e,getEstimatedTotalSize:({total:e,itemSize:t})=>t*e,getOffset:({height:e,total:t,itemSize:n,layout:r,width:o},s,a,i)=>{const l=Ld(r)?o:e,u=Math.max(0,t*n-l),c=Math.min(u,s*n),d=Math.max(0,(s+1)*n-l);switch(a===bm&&(i>=d-l&&i<=c+l?a=fo:a=os),a){case Rd:return c;case Pd:return d;case os:{const f=Math.round(d+(c-d)/2);return fu+Math.floor(l/2)?u:f}case fo:default:return i>=d&&i<=c?i:iMath.max(0,Math.min(e-1,Math.floor(n/t))),getStopIndexForStartIndex:({height:e,total:t,itemSize:n,layout:r,width:o},s,a)=>{const i=s*n,l=Ld(r)?o:e,u=Math.ceil((l+a-i)/n);return Math.max(0,Math.min(t-1,s+u-1))},initCache(){},clearCache:!0,validateProps(){}}),ql=(e,t,n)=>{const{itemSize:r}=e,{items:o,lastVisitedIndex:s}=n;if(t>s){let a=0;if(s>=0){const i=o[s];a=i.offset+i.size}for(let i=s+1;i<=t;i++){const l=r(i);o[i]={offset:a,size:l},a+=l}n.lastVisitedIndex=t}return o[t]},Mze=(e,t,n)=>{const{items:r,lastVisitedIndex:o}=t;return(o>0?r[o].offset:0)>=n?rM(e,t,0,o,n):Oze(e,t,Math.max(0,o),n)},rM=(e,t,n,r,o)=>{for(;n<=r;){const s=n+Math.floor((r-n)/2),a=ql(e,s,t).offset;if(a===o)return s;ao&&(r=s-1)}return Math.max(0,n-1)},Oze=(e,t,n,r)=>{const{total:o}=e;let s=1;for(;n{let o=0;if(r>=e&&(r=e-1),r>=0){const i=t[r];o=i.offset+i.size}const a=(e-r-1)*n;return o+a},Rze=tM({name:"ElDynamicSizeList",getItemOffset:(e,t,n)=>ql(e,t,n).offset,getItemSize:(e,t,{items:n})=>n[t].size,getEstimatedTotalSize:s5,getOffset:(e,t,n,r,o)=>{const{height:s,layout:a,width:i}=e,l=Ld(a)?i:s,u=ql(e,t,o),c=s5(e,o),d=Math.max(0,Math.min(c-l,u.offset)),f=Math.max(0,u.offset-l+u.size);switch(n===bm&&(r>=f-l&&r<=d+l?n=fo:n=os),n){case Rd:return d;case Pd:return f;case os:return Math.round(f+(d-f)/2);case fo:default:return r>=f&&r<=d?r:rMze(e,n,t),getStopIndexForStartIndex:(e,t,n,r)=>{const{height:o,total:s,layout:a,width:i}=e,l=Ld(a)?i:o,u=ql(e,t,r),c=n+l;let d=u.offset+u.size,f=t;for(;f{var s,a;n.lastVisitedIndex=Math.min(n.lastVisitedIndex,r-1),(s=t.exposed)==null||s.getItemStyleCache(-1),o&&((a=t.proxy)==null||a.$forceUpdate())},n},clearCache:!1,validateProps:({itemSize:e})=>{}}),Pze=({atXEndEdge:e,atXStartEdge:t,atYEndEdge:n,atYStartEdge:r},o)=>{let s=null,a=0,i=0;const l=(c,d)=>{const f=c<0&&t.value||c>0&&e.value,p=d<0&&r.value||d>0&&n.value;return f&&p};return{hasReachedEdge:l,onWheel:c=>{om(s);let d=c.deltaX,f=c.deltaY;Math.abs(d)>Math.abs(f)?f=0:d=0,c.shiftKey&&f!==0&&(d=f,f=0),!(l(a,i)&&l(a+d,i+f))&&(a+=d,i+=f,rb()||c.preventDefault(),s=kd(()=>{o(a,i),a=0,i=0}))}}},oM=({name:e,clearCache:t,getColumnPosition:n,getColumnStartIndexForOffset:r,getColumnStopIndexForStartIndex:o,getEstimatedTotalHeight:s,getEstimatedTotalWidth:a,getColumnOffset:i,getRowOffset:l,getRowPosition:u,getRowStartIndexForOffset:c,getRowStopIndexForStartIndex:d,initCache:f,injectToInstance:p,validateProps:m})=>Ce({name:e??"ElVirtualList",props:Ui,emits:[t0,n0],setup(v,{emit:g,expose:b,slots:_}){const y=De("vl");m(v);const S=gt(),w=ee(f(v,S));p==null||p(S,w);const E=ee(),T=ee(),C=ee(),$=ee(null),x=ee({isScrolling:!1,scrollLeft:dt(v.initScrollLeft)?v.initScrollLeft:0,scrollTop:dt(v.initScrollTop)?v.initScrollTop:0,updateRequested:!1,xAxisScrollDir:Wl,yAxisScrollDir:Wl}),N=GA(),I=z(()=>Number.parseInt(`${v.height}`,10)),L=z(()=>Number.parseInt(`${v.width}`,10)),F=z(()=>{const{totalColumn:le,totalRow:Ee,columnCache:ye}=v,{isScrolling:pe,xAxisScrollDir:re,scrollLeft:fe}=h(x);if(le===0||Ee===0)return[0,0,0,0];const Te=r(v,fe,h(w)),$e=o(v,Te,fe,h(w)),Le=!pe||re===r0?Math.max(1,ye):1,A=!pe||re===Wl?Math.max(1,ye):1;return[Math.max(0,Te-Le),Math.max(0,Math.min(le-1,$e+A)),Te,$e]}),B=z(()=>{const{totalColumn:le,totalRow:Ee,rowCache:ye}=v,{isScrolling:pe,yAxisScrollDir:re,scrollTop:fe}=h(x);if(le===0||Ee===0)return[0,0,0,0];const Te=c(v,fe,h(w)),$e=d(v,Te,fe,h(w)),Le=!pe||re===r0?Math.max(1,ye):1,A=!pe||re===Wl?Math.max(1,ye):1;return[Math.max(0,Te-Le),Math.max(0,Math.min(Ee-1,$e+A)),Te,$e]}),U=z(()=>s(v,h(w))),P=z(()=>a(v,h(w))),O=z(()=>{var le;return[{position:"relative",overflow:"hidden",WebkitOverflowScrolling:"touch",willChange:"transform"},{direction:v.direction,height:dt(v.height)?`${v.height}px`:v.height,width:dt(v.width)?`${v.width}px`:v.width},(le=v.style)!=null?le:{}]}),H=z(()=>{const le=`${h(P)}px`;return{height:`${h(U)}px`,pointerEvents:h(x).isScrolling?"none":void 0,width:le}}),q=()=>{const{totalColumn:le,totalRow:Ee}=v;if(le>0&&Ee>0){const[$e,Le,A,M]=h(F),[j,G,ue,_e]=h(B);g(t0,{columnCacheStart:$e,columnCacheEnd:Le,rowCacheStart:j,rowCacheEnd:G,columnVisibleStart:A,columnVisibleEnd:M,rowVisibleStart:ue,rowVisibleEnd:_e})}const{scrollLeft:ye,scrollTop:pe,updateRequested:re,xAxisScrollDir:fe,yAxisScrollDir:Te}=h(x);g(n0,{xAxisScrollDir:fe,scrollLeft:ye,yAxisScrollDir:Te,scrollTop:pe,updateRequested:re})},te=le=>{const{clientHeight:Ee,clientWidth:ye,scrollHeight:pe,scrollLeft:re,scrollTop:fe,scrollWidth:Te}=le.currentTarget,$e=h(x);if($e.scrollTop===fe&&$e.scrollLeft===re)return;let Le=re;if(o5(v.direction))switch(s0()){case Nd:Le=-re;break;case zb:Le=Te-ye-re;break}x.value={...$e,isScrolling:!0,scrollLeft:Le,scrollTop:Math.max(0,Math.min(fe,pe-Ee)),updateRequested:!0,xAxisScrollDir:Mi($e.scrollLeft,Le),yAxisScrollDir:Mi($e.scrollTop,fe)},Xe(()=>K()),se(),q()},V=(le,Ee)=>{const ye=h(I),pe=(U.value-ye)/Ee*le;ie({scrollTop:Math.min(U.value-ye,pe)})},Q=(le,Ee)=>{const ye=h(L),pe=(P.value-ye)/Ee*le;ie({scrollLeft:Math.min(P.value-ye,pe)})},{onWheel:ge}=Pze({atXStartEdge:z(()=>x.value.scrollLeft<=0),atXEndEdge:z(()=>x.value.scrollLeft>=P.value),atYStartEdge:z(()=>x.value.scrollTop<=0),atYEndEdge:z(()=>x.value.scrollTop>=U.value)},(le,Ee)=>{var ye,pe,re,fe;(pe=(ye=T.value)==null?void 0:ye.onMouseUp)==null||pe.call(ye),(fe=(re=T.value)==null?void 0:re.onMouseUp)==null||fe.call(re);const Te=h(L),$e=h(I);ie({scrollLeft:Math.min(x.value.scrollLeft+le,P.value-Te),scrollTop:Math.min(x.value.scrollTop+Ee,U.value-$e)})}),ie=({scrollLeft:le=x.value.scrollLeft,scrollTop:Ee=x.value.scrollTop})=>{le=Math.max(le,0),Ee=Math.max(Ee,0);const ye=h(x);Ee===ye.scrollTop&&le===ye.scrollLeft||(x.value={...ye,xAxisScrollDir:Mi(ye.scrollLeft,le),yAxisScrollDir:Mi(ye.scrollTop,Ee),scrollLeft:le,scrollTop:Ee,updateRequested:!0},Xe(()=>K()),se(),q())},ke=(le=0,Ee=0,ye=fo)=>{const pe=h(x);Ee=Math.max(0,Math.min(Ee,v.totalColumn-1)),le=Math.max(0,Math.min(le,v.totalRow-1));const re=zx(y.namespace.value),fe=h(w),Te=s(v,fe),$e=a(v,fe);ie({scrollLeft:i(v,Ee,ye,pe.scrollLeft,fe,$e>v.width?re:0),scrollTop:l(v,le,ye,pe.scrollTop,fe,Te>v.height?re:0)})},Y=(le,Ee)=>{const{columnWidth:ye,direction:pe,rowHeight:re}=v,fe=N.value(t&&ye,t&&re,t&&pe),Te=`${le},${Ee}`;if(Bt(fe,Te))return fe[Te];{const[,$e]=n(v,Ee,h(w)),Le=h(w),A=o5(pe),[M,j]=u(v,le,Le),[G]=n(v,Ee,Le);return fe[Te]={position:"absolute",left:A?void 0:`${$e}px`,right:A?`${$e}px`:void 0,top:`${j}px`,height:`${M}px`,width:`${G}px`},fe[Te]}},K=()=>{x.value.isScrolling=!1,Xe(()=>{N.value(-1,null,null)})};vt(()=>{if(!Pt)return;const{initScrollLeft:le,initScrollTop:Ee}=v,ye=h(E);ye&&(dt(le)&&(ye.scrollLeft=le),dt(Ee)&&(ye.scrollTop=Ee)),q()});const se=()=>{const{direction:le}=v,{scrollLeft:Ee,scrollTop:ye,updateRequested:pe}=h(x),re=h(E);if(pe&&re){if(le===ru)switch(s0()){case Nd:{re.scrollLeft=-Ee;break}case Db:{re.scrollLeft=Ee;break}default:{const{clientWidth:fe,scrollWidth:Te}=re;re.scrollLeft=Te-fe-Ee;break}}else re.scrollLeft=Math.max(0,Ee);re.scrollTop=Math.max(0,ye)}},{resetAfterColumnIndex:ne,resetAfterRowIndex:ve,resetAfter:J}=S.proxy;b({windowRef:E,innerRef:$,getItemStyleCache:N,scrollTo:ie,scrollToItem:ke,states:x,resetAfterColumnIndex:ne,resetAfterRowIndex:ve,resetAfter:J});const ae=()=>{const{scrollbarAlwaysOn:le,scrollbarStartGap:Ee,scrollbarEndGap:ye,totalColumn:pe,totalRow:re}=v,fe=h(L),Te=h(I),$e=h(P),Le=h(U),{scrollLeft:A,scrollTop:M}=h(x),j=tt(V1,{ref:T,alwaysOn:le,startGap:Ee,endGap:ye,class:y.e("horizontal"),clientSize:fe,layout:"horizontal",onScroll:Q,ratio:fe*100/$e,scrollFrom:A/($e-fe),total:re,visible:!0}),G=tt(V1,{ref:C,alwaysOn:le,startGap:Ee,endGap:ye,class:y.e("vertical"),clientSize:Te,layout:"vertical",onScroll:V,ratio:Te*100/Le,scrollFrom:M/(Le-Te),total:pe,visible:!0});return{horizontalScrollbar:j,verticalScrollbar:G}},ce=()=>{var le;const[Ee,ye]=h(F),[pe,re]=h(B),{data:fe,totalColumn:Te,totalRow:$e,useIsScrolling:Le,itemKey:A}=v,M=[];if($e>0&&Te>0)for(let j=pe;j<=re;j++)for(let G=Ee;G<=ye;G++)M.push((le=_.default)==null?void 0:le.call(_,{columnIndex:G,data:fe,key:A({columnIndex:G,data:fe,rowIndex:j}),isScrolling:Le?h(x).isScrolling:void 0,style:Y(j,G),rowIndex:j}));return M},oe=()=>{const le=kt(v.innerElement),Ee=ce();return[tt(le,{style:h(H),ref:$},ft(le)?Ee:{default:()=>Ee})]};return()=>{const le=kt(v.containerElement),{horizontalScrollbar:Ee,verticalScrollbar:ye}=ae(),pe=oe();return tt("div",{key:0,class:y.e("wrapper")},[tt(le,{class:v.className,style:h(O),onScroll:te,onWheel:ge,ref:E},ft(le)?pe:{default:()=>pe}),Ee,ye])}}}),Nze=oM({name:"ElFixedSizeGrid",getColumnPosition:({columnWidth:e},t)=>[e,t*e],getRowPosition:({rowHeight:e},t)=>[e,t*e],getEstimatedTotalHeight:({totalRow:e,rowHeight:t})=>t*e,getEstimatedTotalWidth:({totalColumn:e,columnWidth:t})=>t*e,getColumnOffset:({totalColumn:e,columnWidth:t,width:n},r,o,s,a,i)=>{n=Number(n);const l=Math.max(0,e*t-n),u=Math.min(l,r*t),c=Math.max(0,r*t-n+i+t);switch(o==="smart"&&(s>=c-n&&s<=u+n?o=fo:o=os),o){case Rd:return u;case Pd:return c;case os:{const d=Math.round(c+(u-c)/2);return dl+Math.floor(n/2)?l:d}case fo:default:return s>=c&&s<=u?s:c>u||s{t=Number(t);const l=Math.max(0,n*e-t),u=Math.min(l,r*e),c=Math.max(0,r*e-t+i+e);switch(o===bm&&(s>=c-t&&s<=u+t?o=fo:o=os),o){case Rd:return u;case Pd:return c;case os:{const d=Math.round(c+(u-c)/2);return dl+Math.floor(t/2)?l:d}case fo:default:return s>=c&&s<=u?s:c>u||sMath.max(0,Math.min(t-1,Math.floor(n/e))),getColumnStopIndexForStartIndex:({columnWidth:e,totalColumn:t,width:n},r,o)=>{const s=r*e,a=Math.ceil((n+o-s)/e);return Math.max(0,Math.min(t-1,r+a-1))},getRowStartIndexForOffset:({rowHeight:e,totalRow:t},n)=>Math.max(0,Math.min(t-1,Math.floor(n/e))),getRowStopIndexForStartIndex:({rowHeight:e,totalRow:t,height:n},r,o)=>{const s=r*e,a=Math.ceil((n+o-s)/e);return Math.max(0,Math.min(t-1,r+a-1))},initCache:()=>{},clearCache:!0,validateProps:({columnWidth:e,rowHeight:t})=>{}}),{max:a0,min:sM,floor:aM}=Math,Lze={column:"columnWidth",row:"rowHeight"},j1={column:"lastVisitedColumnIndex",row:"lastVisitedRowIndex"},Is=(e,t,n,r)=>{const[o,s,a]=[n[r],e[Lze[r]],n[j1[r]]];if(t>a){let i=0;if(a>=0){const l=o[a];i=l.offset+l.size}for(let l=a+1;l<=t;l++){const u=s(l);o[l]={offset:i,size:u},i+=u}n[j1[r]]=t}return o[t]},iM=(e,t,n,r,o,s)=>{for(;n<=r;){const a=n+aM((r-n)/2),i=Is(e,a,t,s).offset;if(i===o)return a;i{const s=o==="column"?e.totalColumn:e.totalRow;let a=1;for(;n{const[o,s]=[t[r],t[j1[r]]];return(s>0?o[s].offset:0)>=n?iM(e,t,0,s,n,r):Bze(e,t,a0(0,s),n,r)},lM=({totalRow:e},{estimatedRowHeight:t,lastVisitedRowIndex:n,row:r})=>{let o=0;if(n>=e&&(n=e-1),n>=0){const i=r[n];o=i.offset+i.size}const a=(e-n-1)*t;return o+a},uM=({totalColumn:e},{column:t,estimatedColumnWidth:n,lastVisitedColumnIndex:r})=>{let o=0;if(r>e&&(r=e-1),r>=0){const i=t[r];o=i.offset+i.size}const a=(e-r-1)*n;return o+a},Dze={column:uM,row:lM},i5=(e,t,n,r,o,s,a)=>{const[i,l]=[s==="row"?e.height:e.width,Dze[s]],u=Is(e,t,o,s),c=l(e,o),d=a0(0,sM(c-i,u.offset)),f=a0(0,u.offset-i+a+u.size);switch(n===bm&&(r>=f-i&&r<=d+i?n=fo:n=os),n){case Rd:return d;case Pd:return f;case os:return Math.round(f+(d-f)/2);case fo:default:return r>=f&&r<=d?r:f>d||r{const r=Is(e,t,n,"column");return[r.size,r.offset]},getRowPosition:(e,t,n)=>{const r=Is(e,t,n,"row");return[r.size,r.offset]},getColumnOffset:(e,t,n,r,o,s)=>i5(e,t,n,r,o,"column",s),getRowOffset:(e,t,n,r,o,s)=>i5(e,t,n,r,o,"row",s),getColumnStartIndexForOffset:(e,t,n)=>a5(e,n,t,"column"),getColumnStopIndexForStartIndex:(e,t,n,r)=>{const o=Is(e,t,r,"column"),s=n+e.width;let a=o.offset+o.size,i=t;for(;ia5(e,n,t,"row"),getRowStopIndexForStartIndex:(e,t,n,r)=>{const{totalRow:o,height:s}=e,a=Is(e,t,r,"row"),i=n+s;let l=a.size+a.offset,u=t;for(;u{const n=({columnIndex:s,rowIndex:a},i)=>{var l,u;i=Gn(i)?!0:i,dt(s)&&(t.value.lastVisitedColumnIndex=Math.min(t.value.lastVisitedColumnIndex,s-1)),dt(a)&&(t.value.lastVisitedRowIndex=Math.min(t.value.lastVisitedRowIndex,a-1)),(l=e.exposed)==null||l.getItemStyleCache.value(-1,null,null),i&&((u=e.proxy)==null||u.$forceUpdate())},r=(s,a)=>{n({columnIndex:s},a)},o=(s,a)=>{n({rowIndex:s},a)};Object.assign(e.proxy,{resetAfterColumnIndex:r,resetAfterRowIndex:o,resetAfter:n})},initCache:({estimatedColumnWidth:e=L1,estimatedRowHeight:t=L1})=>({column:{},estimatedColumnWidth:e,estimatedRowHeight:t,lastVisitedColumnIndex:-1,lastVisitedRowIndex:-1,row:{}}),clearCache:!1,validateProps:({columnWidth:e,rowHeight:t})=>{}}),Fze=Ce({props:{item:{type:Object,required:!0},style:Object,height:Number},setup(){return{ns:De("select")}}});function Hze(e,t,n,r,o,s){return e.item.isTitle?(k(),D("div",{key:0,class:W(e.ns.be("group","title")),style:Je([e.style,{lineHeight:`${e.height}px`}])},ze(e.item.label),7)):(k(),D("div",{key:1,class:W(e.ns.be("group","split")),style:Je(e.style)},[R("span",{class:W(e.ns.be("group","split-dash")),style:Je({top:`${e.height/2}px`})},null,6)],6))}var Vze=Fe(Fze,[["render",Hze],["__file","/home/runner/work/element-plus/element-plus/packages/components/select-v2/src/group-item.vue"]]);function jze(e,{emit:t}){return{hoverItem:()=>{e.disabled||t("hover",e.index)},selectOptionClick:()=>{e.disabled||t("select",e.item,e.index)}}}const Uze={allowCreate:Boolean,autocomplete:{type:String,default:"none"},automaticDropdown:Boolean,clearable:Boolean,clearIcon:{type:[String,Object],default:fa},effect:{type:String,default:"light"},collapseTags:Boolean,collapseTagsTooltip:{type:Boolean,default:!1},defaultFirstOption:Boolean,disabled:Boolean,estimatedOptionHeight:{type:Number,default:void 0},filterable:Boolean,filterMethod:Function,height:{type:Number,default:170},itemHeight:{type:Number,default:34},id:String,loading:Boolean,loadingText:String,label:String,modelValue:[Array,String,Number,Boolean,Object],multiple:Boolean,multipleLimit:{type:Number,default:0},name:String,noDataText:String,noMatchText:String,remoteMethod:Function,reserveKeyword:{type:Boolean,default:!0},options:{type:Array,required:!0},placeholder:{type:String},teleported:Kn.teleported,persistent:{type:Boolean,default:!0},popperClass:{type:String,default:""},popperOptions:{type:Object,default:()=>({})},remote:Boolean,size:{type:String,validator:Zu},valueKey:{type:String,default:"value"},scrollbarAlwaysOn:{type:Boolean,default:!1},validateEvent:{type:Boolean,default:!0},placement:{type:Re(String),values:dl,default:"bottom-start"}},Wze={data:Array,disabled:Boolean,hovering:Boolean,item:Object,index:Number,style:Object,selected:Boolean,created:Boolean},qze=Ce({props:Wze,emits:["select","hover"],setup(e,{emit:t}){const n=De("select"),{hoverItem:r,selectOptionClick:o}=jze(e,{emit:t});return{ns:n,hoverItem:r,selectOptionClick:o}}}),Kze=["aria-selected"];function Gze(e,t,n,r,o,s){return k(),D("li",{"aria-selected":e.selected,style:Je(e.style),class:W([e.ns.be("dropdown","option-item"),e.ns.is("selected",e.selected),e.ns.is("disabled",e.disabled),e.ns.is("created",e.created),{hover:e.hovering}]),onMouseenter:t[0]||(t[0]=(...a)=>e.hoverItem&&e.hoverItem(...a)),onClick:t[1]||(t[1]=ct((...a)=>e.selectOptionClick&&e.selectOptionClick(...a),["stop"]))},[Pe(e.$slots,"default",{item:e.item,index:e.index,disabled:e.disabled},()=>[R("span",null,ze(e.item.label),1)])],46,Kze)}var Yze=Fe(qze,[["render",Gze],["__file","/home/runner/work/element-plus/element-plus/packages/components/select-v2/src/option-item.vue"]]);const cM="ElSelectV2Injection";var Xze=Ce({name:"ElSelectDropdown",props:{data:{type:Array,required:!0},hoveringIndex:Number,width:Number},setup(e,{slots:t,expose:n}){const r=Ye(cM),o=De("select"),s=ee([]),a=ee(),i=z(()=>e.data.length);Be(()=>i.value,()=>{var C,$;($=(C=r.popper.value).updatePopper)==null||$.call(C)});const l=z(()=>Gn(r.props.estimatedOptionHeight)),u=z(()=>l.value?{itemSize:r.props.itemHeight}:{estimatedSize:r.props.estimatedOptionHeight,itemSize:C=>s.value[C]}),c=(C=[],$)=>{const{props:{valueKey:x}}=r;return xt($)?C&&C.some(N=>pn(N,x)===pn($,x)):C.includes($)},d=(C,$)=>{if(xt($)){const{valueKey:x}=r.props;return pn(C,x)===pn($,x)}else return C===$},f=(C,$)=>{const{valueKey:x}=r.props;return r.props.multiple?c(C,pn($,x)):d(C,pn($,x))},p=(C,$)=>{const{disabled:x,multiple:N,multipleLimit:I}=r.props;return x||!$&&(N?I>0&&C.length>=I:!1)},m=C=>e.hoveringIndex===C;n({listRef:a,isSized:l,isItemDisabled:p,isItemHovering:m,isItemSelected:f,scrollToItem:C=>{const $=a.value;$&&$.scrollToItem(C)},resetScrollTop:()=>{const C=a.value;C&&C.resetScrollTop()}});const b=C=>{const{index:$,data:x,style:N}=C,I=h(l),{itemSize:L,estimatedSize:F}=h(u),{modelValue:B}=r.props,{onSelect:U,onHover:P}=r,O=x[$];if(O.type==="Group")return me(Vze,{item:O,style:N,height:I?L:F},null);const H=f(B,O),q=p(B,H),te=m($);return me(Yze,$t(C,{selected:H,disabled:O.disabled||q,created:!!O.created,hovering:te,item:O,onSelect:U,onHover:P}),{default:V=>{var Q;return((Q=t.default)==null?void 0:Q.call(t,V))||me("span",null,[O.label])}})},{onKeyboardNavigate:_,onKeyboardSelect:y}=r,S=()=>{_("forward")},w=()=>{_("backward")},E=()=>{r.expanded=!1},T=C=>{const{code:$}=C,{tab:x,esc:N,down:I,up:L,enter:F}=ot;switch($!==x&&(C.preventDefault(),C.stopPropagation()),$){case x:case N:{E();break}case I:{S();break}case L:{w();break}case F:{y();break}}};return()=>{var C;const{data:$,width:x}=e,{height:N,multiple:I,scrollbarAlwaysOn:L}=r.props;if($.length===0)return me("div",{class:o.b("dropdown"),style:{width:`${x}px`}},[(C=t.empty)==null?void 0:C.call(t)]);const F=h(l)?nM:Rze;return me("div",{class:[o.b("dropdown"),o.is("multiple",I)]},[me(F,$t({ref:a},h(u),{className:o.be("dropdown","list"),scrollbarAlwaysOn:L,data:$,height:N,width:x,total:$.length,onKeydown:T}),{default:B=>me(b,B,null)})])}}});function Jze(e,t){const n=ee(0),r=ee(null),o=z(()=>e.allowCreate&&e.filterable);function s(c){const d=f=>f.value===c;return e.options&&e.options.some(d)||t.createdOptions.some(d)}function a(c){o.value&&(e.multiple&&c.created?n.value++:r.value=c)}function i(c){if(o.value)if(c&&c.length>0&&!s(c)){const d={value:c,label:c,created:!0,disabled:!1};t.createdOptions.length>=n.value?t.createdOptions[n.value]=d:t.createdOptions.push(d)}else if(e.multiple)t.createdOptions.length=n.value;else{const d=r.value;t.createdOptions.length=0,d&&d.created&&t.createdOptions.push(d)}}function l(c){if(!o.value||!c||!c.created||c.created&&e.reserveKeyword&&t.inputValue===c.label)return;const d=t.createdOptions.findIndex(f=>f.value===c.value);~d&&(t.createdOptions.splice(d,1),n.value--)}function u(){o.value&&(t.createdOptions.length=0,n.value=0)}return{createNewOption:i,removeNewOption:l,selectNewOption:a,clearAllNewOption:u}}const Qze=e=>{const t=[];return e.forEach(n=>{Ge(n.options)?(t.push({label:n.label,isTitle:!0,type:"Group"}),n.options.forEach(r=>{t.push(r)}),t.push({type:"Group"})):t.push(n)}),t};function Zze(e){const t=ee(!1);return{handleCompositionStart:()=>{t.value=!0},handleCompositionUpdate:s=>{const a=s.target.value,i=a[a.length-1]||"";t.value=!rm(i)},handleCompositionEnd:s=>{t.value&&(t.value=!1,at(e)&&e(s))}}}const l5="",u5=11,eFe={larget:51,default:42,small:33},tFe=(e,t)=>{const{t:n}=Vt(),r=De("select-v2"),o=De("input"),{form:s,formItem:a}=xr(),i=Ht({inputValue:l5,displayInputValue:l5,calculatedWidth:0,cachedPlaceholder:"",cachedOptions:[],createdOptions:[],createdLabel:"",createdSelected:!1,currentPlaceholder:"",hoveringIndex:-1,comboBoxHovering:!1,isOnComposition:!1,isSilentBlur:!1,isComposing:!1,inputLength:20,selectWidth:200,initialInputHeight:0,previousQuery:null,previousValue:void 0,query:"",selectedLabel:"",softFocus:!1,tagInMultiLine:!1}),l=ee(-1),u=ee(-1),c=ee(null),d=ee(null),f=ee(null),p=ee(null),m=ee(null),v=ee(null),g=ee(null),b=ee(!1),_=z(()=>e.disabled||(s==null?void 0:s.disabled)),y=z(()=>{const Ne=I.value.length*34;return Ne>e.height?e.height:Ne}),S=z(()=>!Yn(e.modelValue)),w=z(()=>{const Ne=e.multiple?Array.isArray(e.modelValue)&&e.modelValue.length>0:S.value;return e.clearable&&!_.value&&i.comboBoxHovering&&Ne}),E=z(()=>e.remote&&e.filterable?"":cf),T=z(()=>E.value&&r.is("reverse",b.value)),C=z(()=>(a==null?void 0:a.validateState)||""),$=z(()=>c7[C.value]),x=z(()=>e.remote?300:0),N=z(()=>{const Ne=I.value;return e.loading?e.loadingText||n("el.select.loading"):e.remote&&i.inputValue===""&&Ne.length===0?!1:e.filterable&&i.inputValue&&Ne.length>0?e.noMatchText||n("el.select.noMatch"):Ne.length===0?e.noDataText||n("el.select.noData"):null}),I=z(()=>{const Ne=Ve=>{const st=i.inputValue,_t=new RegExp(Bx(st),"i");return st?_t.test(Ve.label||""):!0};return e.loading?[]:Qze(e.options.concat(i.createdOptions).map(Ve=>{if(Ge(Ve.options)){const st=Ve.options.filter(Ne);if(st.length>0)return{...Ve,options:st}}else if(e.remote||Ne(Ve))return Ve;return null}).filter(Ve=>Ve!==null))}),L=z(()=>I.value.every(Ne=>Ne.disabled)),F=Ln(),B=z(()=>F.value==="small"?"small":"default"),U=z(()=>{const Ne=v.value,Ve=B.value||"default",st=Ne?Number.parseInt(getComputedStyle(Ne).paddingLeft):0,_t=Ne?Number.parseInt(getComputedStyle(Ne).paddingRight):0;return i.selectWidth-_t-st-eFe[Ve]}),P=()=>{var Ne;u.value=((Ne=m.value)==null?void 0:Ne.offsetWidth)||200},O=z(()=>({width:`${i.calculatedWidth===0?u5:Math.ceil(i.calculatedWidth)+u5}px`})),H=z(()=>Ge(e.modelValue)?e.modelValue.length===0&&!i.displayInputValue:e.filterable?i.displayInputValue.length===0:!0),q=z(()=>{const Ne=e.placeholder||n("el.select.placeholder");return e.multiple||Yn(e.modelValue)?Ne:i.selectedLabel}),te=z(()=>{var Ne,Ve;return(Ve=(Ne=p.value)==null?void 0:Ne.popperRef)==null?void 0:Ve.contentRef}),V=z(()=>{if(e.multiple){const Ne=e.modelValue.length;if(e.modelValue.length>0)return I.value.findIndex(Ve=>Ve.value===e.modelValue[Ne-1])}else if(e.modelValue)return I.value.findIndex(Ne=>Ne.value===e.modelValue);return-1}),Q=z({get(){return b.value&&N.value!==!1},set(Ne){b.value=Ne}}),{createNewOption:ge,removeNewOption:ie,selectNewOption:ke,clearAllNewOption:Y}=Jze(e,i),{handleCompositionStart:K,handleCompositionUpdate:se,handleCompositionEnd:ne}=Zze(Ne=>Qe(Ne)),ve=()=>{var Ne,Ve,st;(Ve=(Ne=d.value).focus)==null||Ve.call(Ne),(st=p.value)==null||st.updatePopper()},J=()=>{if(!e.automaticDropdown&&!_.value)return i.isComposing&&(i.softFocus=!0),Xe(()=>{var Ne,Ve;b.value=!b.value,(Ve=(Ne=d.value)==null?void 0:Ne.focus)==null||Ve.call(Ne)})},ae=()=>(e.filterable&&i.inputValue!==i.selectedLabel&&(i.query=i.selectedLabel),oe(i.inputValue),Xe(()=>{ge(i.inputValue)})),ce=$r(ae,x.value),oe=Ne=>{i.previousQuery!==Ne&&(i.previousQuery=Ne,e.filterable&&at(e.filterMethod)?e.filterMethod(Ne):e.filterable&&e.remote&&at(e.remoteMethod)&&e.remoteMethod(Ne))},he=Ne=>{to(e.modelValue,Ne)||t(un,Ne)},le=Ne=>{t(Et,Ne),he(Ne),i.previousValue=Ne==null?void 0:Ne.toString()},Ee=(Ne=[],Ve)=>{if(!xt(Ve))return Ne.indexOf(Ve);const st=e.valueKey;let _t=-1;return Ne.some((Zt,cn)=>pn(Zt,st)===pn(Ve,st)?(_t=cn,!0):!1),_t},ye=Ne=>xt(Ne)?pn(Ne,e.valueKey):Ne,pe=Ne=>xt(Ne)?Ne.label:Ne,re=()=>{if(!(e.collapseTags&&!e.filterable))return Xe(()=>{var Ne,Ve;if(!d.value)return;const st=v.value;m.value.height=st.offsetHeight,b.value&&N.value!==!1&&((Ve=(Ne=p.value)==null?void 0:Ne.updatePopper)==null||Ve.call(Ne))})},fe=()=>{var Ne,Ve;if(Te(),P(),(Ve=(Ne=p.value)==null?void 0:Ne.updatePopper)==null||Ve.call(Ne),e.multiple)return re()},Te=()=>{const Ne=v.value;Ne&&(i.selectWidth=Ne.getBoundingClientRect().width)},$e=(Ne,Ve,st=!0)=>{var _t,Zt;if(e.multiple){let cn=e.modelValue.slice();const ir=Ee(cn,ye(Ne));ir>-1?(cn=[...cn.slice(0,ir),...cn.slice(ir+1)],i.cachedOptions.splice(ir,1),ie(Ne)):(e.multipleLimit<=0||cn.length{const{valueKey:st}=e,_t=e.modelValue.indexOf(pn(Ve,st));if(_t>-1&&!_.value){const Zt=[...e.modelValue.slice(0,_t),...e.modelValue.slice(_t+1)];return i.cachedOptions.splice(_t,1),le(Zt),t("remove-tag",pn(Ve,st)),i.softFocus=!0,ie(Ve),Xe(ve)}Ne.stopPropagation()},A=Ne=>{const Ve=i.isComposing;i.isComposing=!0,i.softFocus?i.softFocus=!1:Ve||t("focus",Ne)},M=Ne=>(i.softFocus=!1,Xe(()=>{var Ve,st;(st=(Ve=d.value)==null?void 0:Ve.blur)==null||st.call(Ve),g.value&&(i.calculatedWidth=g.value.getBoundingClientRect().width),i.isSilentBlur?i.isSilentBlur=!1:i.isComposing&&t("blur",Ne),i.isComposing=!1})),j=()=>{i.displayInputValue.length>0?_e(""):b.value=!1},G=Ne=>{if(i.displayInputValue.length===0){Ne.preventDefault();const Ve=e.modelValue.slice();Ve.pop(),ie(i.cachedOptions.pop()),le(Ve)}},ue=()=>{let Ne;return Ge(e.modelValue)?Ne=[]:Ne=void 0,i.softFocus=!0,e.multiple?i.cachedOptions=[]:i.selectedLabel="",b.value=!1,le(Ne),t("clear"),Y(),Xe(ve)},_e=Ne=>{i.displayInputValue=Ne,i.inputValue=Ne},X=(Ne,Ve=void 0)=>{const st=I.value;if(!["forward","backward"].includes(Ne)||_.value||st.length<=0||L.value)return;if(!b.value)return J();Ve===void 0&&(Ve=i.hoveringIndex);let _t=-1;Ne==="forward"?(_t=Ve+1,_t>=st.length&&(_t=0)):Ne==="backward"&&(_t=Ve-1,(_t<0||_t>=st.length)&&(_t=st.length-1));const Zt=st[_t];if(Zt.disabled||Zt.type==="Group")return X(Ne,_t);de(_t),It(_t)},Z=()=>{if(b.value)~i.hoveringIndex&&I.value[i.hoveringIndex]&&$e(I.value[i.hoveringIndex],i.hoveringIndex,!1);else return J()},de=Ne=>{i.hoveringIndex=Ne},Oe=()=>{i.hoveringIndex=-1},qe=()=>{var Ne;const Ve=d.value;Ve&&((Ne=Ve.focus)==null||Ne.call(Ve))},Qe=Ne=>{const Ve=Ne.target.value;if(_e(Ve),i.displayInputValue.length>0&&!b.value&&(b.value=!0),i.calculatedWidth=g.value.getBoundingClientRect().width,e.multiple&&re(),e.remote)ce();else return ae()},ht=()=>(b.value=!1,M()),jt=()=>(i.inputValue=i.displayInputValue,Xe(()=>{~V.value&&(de(V.value),It(i.hoveringIndex))})),It=Ne=>{f.value.scrollToItem(Ne)},lt=()=>{if(Oe(),e.multiple)if(e.modelValue.length>0){let Ne=!1;i.cachedOptions.length=0,i.previousValue=e.modelValue.toString(),e.modelValue.forEach(Ve=>{const st=I.value.findIndex(_t=>ye(_t)===Ve);~st&&(i.cachedOptions.push(I.value[st]),Ne||de(st),Ne=!0)})}else i.cachedOptions=[],i.previousValue=void 0;else if(S.value){i.previousValue=e.modelValue;const Ne=I.value,Ve=Ne.findIndex(st=>ye(st)===ye(e.modelValue));~Ve?(i.selectedLabel=Ne[Ve].label,de(Ve)):i.selectedLabel=`${e.modelValue}`}else i.selectedLabel="",i.previousValue=void 0;Y(),P()};return Be(b,Ne=>{var Ve,st;t("visible-change",Ne),Ne?(st=(Ve=p.value).update)==null||st.call(Ve):(i.displayInputValue="",i.previousQuery=null,ge(""))}),Be(()=>e.modelValue,(Ne,Ve)=>{var st;(!Ne||Ne.toString()!==i.previousValue)&<(),!to(Ne,Ve)&&e.validateEvent&&((st=a==null?void 0:a.validate)==null||st.call(a,"change").catch(_t=>void 0))},{deep:!0}),Be(()=>e.options,()=>{const Ne=d.value;(!Ne||Ne&&document.activeElement!==Ne)&<()},{deep:!0}),Be(I,()=>Xe(f.value.resetScrollTop)),vt(()=>{lt()}),gr(m,fe),{collapseTagSize:B,currentPlaceholder:q,expanded:b,emptyText:N,popupHeight:y,debounce:x,filteredOptions:I,iconComponent:E,iconReverse:T,inputWrapperStyle:O,popperSize:u,dropdownMenuVisible:Q,hasModelValue:S,shouldShowPlaceholder:H,selectDisabled:_,selectSize:F,showClearBtn:w,states:i,tagMaxWidth:U,nsSelectV2:r,nsInput:o,calculatorRef:g,controlRef:c,inputRef:d,menuRef:f,popper:p,selectRef:m,selectionRef:v,popperRef:te,validateState:C,validateIcon:$,debouncedOnInputChange:ce,deleteTag:Le,getLabel:pe,getValueKey:ye,handleBlur:M,handleClear:ue,handleClickOutside:ht,handleDel:G,handleEsc:j,handleFocus:A,handleMenuEnter:jt,handleResize:fe,toggleMenu:J,scrollTo:It,onInput:Qe,onKeyboardNavigate:X,onKeyboardSelect:Z,onSelect:$e,onHover:de,onUpdateInputValue:_e,handleCompositionStart:K,handleCompositionEnd:ne,handleCompositionUpdate:se}},nFe=Ce({name:"ElSelectV2",components:{ElSelectMenu:Xze,ElTag:gm,ElTooltip:Ur,ElIcon:et},directives:{ClickOutside:ai,ModelText:I0},props:Uze,emits:[Et,un,"remove-tag","clear","visible-change","focus","blur"],setup(e,{emit:t}){const n=z(()=>{const{modelValue:o,multiple:s}=e,a=s?[]:void 0;return Ge(o)?s?o:a:s?a:o}),r=tFe(Ht({...On(e),modelValue:n}),t);return Ct(cM,{props:Ht({...On(e),height:r.popupHeight,modelValue:n}),popper:r.popper,onSelect:r.onSelect,onHover:r.onHover,onKeyboardNavigate:r.onKeyboardNavigate,onKeyboardSelect:r.onKeyboardSelect}),{...r,modelValue:n}}}),rFe={key:0},oFe=["id","autocomplete","aria-expanded","aria-labelledby","disabled","readonly","name","unselectable"],sFe=["textContent"],aFe=["id","aria-labelledby","aria-expanded","autocomplete","disabled","name","readonly","unselectable"],iFe=["textContent"];function lFe(e,t,n,r,o,s){const a=rt("el-tag"),i=rt("el-tooltip"),l=rt("el-icon"),u=rt("el-select-menu"),c=Za("model-text"),d=Za("click-outside");return mt((k(),D("div",{ref:"selectRef",class:W([e.nsSelectV2.b(),e.nsSelectV2.m(e.selectSize)]),onClick:t[25]||(t[25]=ct((...f)=>e.toggleMenu&&e.toggleMenu(...f),["stop"])),onMouseenter:t[26]||(t[26]=f=>e.states.comboBoxHovering=!0),onMouseleave:t[27]||(t[27]=f=>e.states.comboBoxHovering=!1)},[me(i,{ref:"popper",visible:e.dropdownMenuVisible,teleported:e.teleported,"popper-class":[e.nsSelectV2.e("popper"),e.popperClass],"gpu-acceleration":!1,"stop-popper-mouse-event":!1,"popper-options":e.popperOptions,"fallback-placements":["bottom-start","top-start","right","left"],effect:e.effect,placement:e.placement,pure:"",transition:`${e.nsSelectV2.namespace.value}-zoom-in-top`,trigger:"click",persistent:e.persistent,onBeforeShow:e.handleMenuEnter,onHide:t[24]||(t[24]=f=>e.states.inputValue=e.states.displayInputValue)},{default:be(()=>{var f;return[R("div",{ref:"selectionRef",class:W([e.nsSelectV2.e("wrapper"),e.nsSelectV2.is("focused",e.states.isComposing||e.expanded),e.nsSelectV2.is("hovering",e.states.comboBoxHovering),e.nsSelectV2.is("filterable",e.filterable),e.nsSelectV2.is("disabled",e.selectDisabled)])},[e.$slots.prefix?(k(),D("div",rFe,[Pe(e.$slots,"prefix")])):Ae("v-if",!0),e.multiple?(k(),D("div",{key:1,class:W(e.nsSelectV2.e("selection"))},[e.collapseTags&&e.modelValue.length>0?(k(),D("div",{key:0,class:W(e.nsSelectV2.e("selected-item"))},[me(a,{closable:!e.selectDisabled&&!((f=e.states.cachedOptions[0])!=null&&f.disable),size:e.collapseTagSize,type:"info","disable-transitions":"",onClose:t[0]||(t[0]=p=>e.deleteTag(p,e.states.cachedOptions[0]))},{default:be(()=>{var p;return[R("span",{class:W(e.nsSelectV2.e("tags-text")),style:Je({maxWidth:`${e.tagMaxWidth}px`})},ze((p=e.states.cachedOptions[0])==null?void 0:p.label),7)]}),_:1},8,["closable","size"]),e.modelValue.length>1?(k(),Me(a,{key:0,closable:!1,size:e.collapseTagSize,type:"info","disable-transitions":""},{default:be(()=>[e.collapseTagsTooltip?(k(),Me(i,{key:0,disabled:e.dropdownMenuVisible,"fallback-placements":["bottom","top","right","left"],effect:e.effect,placement:"bottom",teleported:!1},{default:be(()=>[R("span",{class:W(e.nsSelectV2.e("tags-text")),style:Je({maxWidth:`${e.tagMaxWidth}px`})},"+ "+ze(e.modelValue.length-1),7)]),content:be(()=>[R("div",{class:W(e.nsSelectV2.e("selection"))},[(k(!0),D(Ze,null,At(e.states.cachedOptions.slice(1),(p,m)=>(k(),D("div",{key:m,class:W(e.nsSelectV2.e("selected-item"))},[(k(),Me(a,{key:e.getValueKey(p),closable:!e.selectDisabled&&!p.disabled,size:e.collapseTagSize,class:"in-tooltip",type:"info","disable-transitions":"",onClose:v=>e.deleteTag(v,p)},{default:be(()=>[R("span",{class:W(e.nsSelectV2.e("tags-text")),style:Je({maxWidth:`${e.tagMaxWidth}px`})},ze(e.getLabel(p)),7)]),_:2},1032,["closable","size","onClose"]))],2))),128))],2)]),_:1},8,["disabled","effect"])):(k(),D("span",{key:1,class:W(e.nsSelectV2.e("tags-text")),style:Je({maxWidth:`${e.tagMaxWidth}px`})},"+ "+ze(e.modelValue.length-1),7))]),_:1},8,["size"])):Ae("v-if",!0)],2)):(k(!0),D(Ze,{key:1},At(e.states.cachedOptions,(p,m)=>(k(),D("div",{key:m,class:W(e.nsSelectV2.e("selected-item"))},[(k(),Me(a,{key:e.getValueKey(p),closable:!e.selectDisabled&&!p.disabled,size:e.collapseTagSize,type:"info","disable-transitions":"",onClose:v=>e.deleteTag(v,p)},{default:be(()=>[R("span",{class:W(e.nsSelectV2.e("tags-text")),style:Je({maxWidth:`${e.tagMaxWidth}px`})},ze(e.getLabel(p)),7)]),_:2},1032,["closable","size","onClose"]))],2))),128)),R("div",{class:W([e.nsSelectV2.e("selected-item"),e.nsSelectV2.e("input-wrapper")]),style:Je(e.inputWrapperStyle)},[mt(R("input",{id:e.id,ref:"inputRef",autocomplete:e.autocomplete,"aria-autocomplete":"list","aria-haspopup":"listbox",autocapitalize:"off","aria-expanded":e.expanded,"aria-labelledby":e.label,class:W([e.nsSelectV2.is(e.selectSize),e.nsSelectV2.e("combobox-input")]),disabled:e.disabled,role:"combobox",readonly:!e.filterable,spellcheck:"false",type:"text",name:e.name,unselectable:e.expanded?"on":void 0,"onUpdate:modelValue":t[1]||(t[1]=(...p)=>e.onUpdateInputValue&&e.onUpdateInputValue(...p)),onFocus:t[2]||(t[2]=(...p)=>e.handleFocus&&e.handleFocus(...p)),onBlur:t[3]||(t[3]=(...p)=>e.handleBlur&&e.handleBlur(...p)),onInput:t[4]||(t[4]=(...p)=>e.onInput&&e.onInput(...p)),onCompositionstart:t[5]||(t[5]=(...p)=>e.handleCompositionStart&&e.handleCompositionStart(...p)),onCompositionupdate:t[6]||(t[6]=(...p)=>e.handleCompositionUpdate&&e.handleCompositionUpdate(...p)),onCompositionend:t[7]||(t[7]=(...p)=>e.handleCompositionEnd&&e.handleCompositionEnd(...p)),onKeydown:[t[8]||(t[8]=Rt(ct(p=>e.onKeyboardNavigate("backward"),["stop","prevent"]),["up"])),t[9]||(t[9]=Rt(ct(p=>e.onKeyboardNavigate("forward"),["stop","prevent"]),["down"])),t[10]||(t[10]=Rt(ct((...p)=>e.onKeyboardSelect&&e.onKeyboardSelect(...p),["stop","prevent"]),["enter"])),t[11]||(t[11]=Rt(ct((...p)=>e.handleEsc&&e.handleEsc(...p),["stop","prevent"]),["esc"])),t[12]||(t[12]=Rt(ct((...p)=>e.handleDel&&e.handleDel(...p),["stop"]),["delete"]))]},null,42,oFe),[[c,e.states.displayInputValue]]),e.filterable?(k(),D("span",{key:0,ref:"calculatorRef","aria-hidden":"true",class:W(e.nsSelectV2.e("input-calculator")),textContent:ze(e.states.displayInputValue)},null,10,sFe)):Ae("v-if",!0)],6)],2)):(k(),D(Ze,{key:2},[R("div",{class:W([e.nsSelectV2.e("selected-item"),e.nsSelectV2.e("input-wrapper")])},[mt(R("input",{id:e.id,ref:"inputRef","aria-autocomplete":"list","aria-haspopup":"listbox","aria-labelledby":e.label,"aria-expanded":e.expanded,autocapitalize:"off",autocomplete:e.autocomplete,class:W(e.nsSelectV2.e("combobox-input")),disabled:e.disabled,name:e.name,role:"combobox",readonly:!e.filterable,spellcheck:"false",type:"text",unselectable:e.expanded?"on":void 0,onCompositionstart:t[13]||(t[13]=(...p)=>e.handleCompositionStart&&e.handleCompositionStart(...p)),onCompositionupdate:t[14]||(t[14]=(...p)=>e.handleCompositionUpdate&&e.handleCompositionUpdate(...p)),onCompositionend:t[15]||(t[15]=(...p)=>e.handleCompositionEnd&&e.handleCompositionEnd(...p)),onFocus:t[16]||(t[16]=(...p)=>e.handleFocus&&e.handleFocus(...p)),onBlur:t[17]||(t[17]=(...p)=>e.handleBlur&&e.handleBlur(...p)),onInput:t[18]||(t[18]=(...p)=>e.onInput&&e.onInput(...p)),onKeydown:[t[19]||(t[19]=Rt(ct(p=>e.onKeyboardNavigate("backward"),["stop","prevent"]),["up"])),t[20]||(t[20]=Rt(ct(p=>e.onKeyboardNavigate("forward"),["stop","prevent"]),["down"])),t[21]||(t[21]=Rt(ct((...p)=>e.onKeyboardSelect&&e.onKeyboardSelect(...p),["stop","prevent"]),["enter"])),t[22]||(t[22]=Rt(ct((...p)=>e.handleEsc&&e.handleEsc(...p),["stop","prevent"]),["esc"]))],"onUpdate:modelValue":t[23]||(t[23]=(...p)=>e.onUpdateInputValue&&e.onUpdateInputValue(...p))},null,42,aFe),[[c,e.states.displayInputValue]])],2),e.filterable?(k(),D("span",{key:0,ref:"calculatorRef","aria-hidden":"true",class:W([e.nsSelectV2.e("selected-item"),e.nsSelectV2.e("input-calculator")]),textContent:ze(e.states.displayInputValue)},null,10,iFe)):Ae("v-if",!0)],64)),e.shouldShowPlaceholder?(k(),D("span",{key:3,class:W([e.nsSelectV2.e("placeholder"),e.nsSelectV2.is("transparent",e.multiple?e.modelValue.length===0:!e.hasModelValue)])},ze(e.currentPlaceholder),3)):Ae("v-if",!0),R("span",{class:W(e.nsSelectV2.e("suffix"))},[e.iconComponent?mt((k(),Me(l,{key:0,class:W([e.nsSelectV2.e("caret"),e.nsInput.e("icon"),e.iconReverse])},{default:be(()=>[(k(),Me(kt(e.iconComponent)))]),_:1},8,["class"])),[[zt,!e.showClearBtn]]):Ae("v-if",!0),e.showClearBtn&&e.clearIcon?(k(),Me(l,{key:1,class:W([e.nsSelectV2.e("caret"),e.nsInput.e("icon")]),onClick:ct(e.handleClear,["prevent","stop"])},{default:be(()=>[(k(),Me(kt(e.clearIcon)))]),_:1},8,["class","onClick"])):Ae("v-if",!0),e.validateState&&e.validateIcon?(k(),Me(l,{key:2,class:W([e.nsInput.e("icon"),e.nsInput.e("validateIcon")])},{default:be(()=>[(k(),Me(kt(e.validateIcon)))]),_:1},8,["class"])):Ae("v-if",!0)],2)],2)]}),content:be(()=>[me(u,{ref:"menuRef",data:e.filteredOptions,width:e.popperSize,"hovering-index":e.states.hoveringIndex,"scrollbar-always-on":e.scrollbarAlwaysOn},{default:be(f=>[Pe(e.$slots,"default",Yr(Fu(f)))]),empty:be(()=>[Pe(e.$slots,"empty",{},()=>[R("p",{class:W(e.nsSelectV2.e("empty"))},ze(e.emptyText?e.emptyText:""),3)])]),_:3},8,["data","width","hovering-index","scrollbar-always-on"])]),_:3},8,["visible","teleported","popper-class","popper-options","effect","placement","transition","persistent","onBeforeShow"])],34)),[[d,e.handleClickOutside,e.popperRef]])}var Op=Fe(nFe,[["render",lFe],["__file","/home/runner/work/element-plus/element-plus/packages/components/select-v2/src/select.vue"]]);Op.install=e=>{e.component(Op.name,Op)};const uFe=Op,cFe=uFe,dFe=He({animated:{type:Boolean,default:!1},count:{type:Number,default:1},rows:{type:Number,default:3},loading:{type:Boolean,default:!0},throttle:{type:Number}}),fFe=He({variant:{type:String,values:["circle","rect","h1","h3","text","caption","p","image","button"],default:"text"}}),pFe=Ce({name:"ElSkeletonItem"}),hFe=Ce({...pFe,props:fFe,setup(e){const t=De("skeleton");return(n,r)=>(k(),D("div",{class:W([h(t).e("item"),h(t).e(n.variant)])},[n.variant==="image"?(k(),Me(h(Jx),{key:0})):Ae("v-if",!0)],2))}});var i0=Fe(hFe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/skeleton/src/skeleton-item.vue"]]);const mFe=Ce({name:"ElSkeleton"}),vFe=Ce({...mFe,props:dFe,setup(e,{expose:t}){const n=e,r=De("skeleton"),o=S9e(gn(n,"loading"),n.throttle);return t({uiLoading:o}),(s,a)=>h(o)?(k(),D("div",$t({key:0,class:[h(r).b(),h(r).is("animated",s.animated)]},s.$attrs),[(k(!0),D(Ze,null,At(s.count,i=>(k(),D(Ze,{key:i},[s.loading?Pe(s.$slots,"template",{key:i},()=>[me(i0,{class:W(h(r).is("first")),variant:"p"},null,8,["class"]),(k(!0),D(Ze,null,At(s.rows,l=>(k(),Me(i0,{key:l,class:W([h(r).e("paragraph"),h(r).is("last",l===s.rows&&s.rows>1)]),variant:"p"},null,8,["class"]))),128))]):Ae("v-if",!0)],64))),128))],16)):Pe(s.$slots,"default",Yr($t({key:1},s.$attrs)))}});var gFe=Fe(vFe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/skeleton/src/skeleton.vue"]]);const _Fe=St(gFe,{SkeletonItem:i0}),yFe=En(i0),bFe=He({modelValue:{type:Re([Number,Array]),default:0},id:{type:String,default:void 0},min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},showInput:Boolean,showInputControls:{type:Boolean,default:!0},size:Fr,inputSize:Fr,showStops:Boolean,showTooltip:{type:Boolean,default:!0},formatTooltip:{type:Re(Function),default:void 0},disabled:Boolean,range:Boolean,vertical:Boolean,height:String,debounce:{type:Number,default:300},label:{type:String,default:void 0},rangeStartLabel:{type:String,default:void 0},rangeEndLabel:{type:String,default:void 0},formatValueText:{type:Re(Function),default:void 0},tooltipClass:{type:String,default:void 0},placement:{type:String,values:dl,default:"top"},marks:{type:Re(Object)},validateEvent:{type:Boolean,default:!0}}),Pv=e=>dt(e)||Ge(e)&&e.every(dt),wFe={[Et]:Pv,[kr]:Pv,[un]:Pv},SFe=(e,t,n)=>{const r=ee();return vt(async()=>{e.range?(Array.isArray(e.modelValue)?(t.firstValue=Math.max(e.min,e.modelValue[0]),t.secondValue=Math.min(e.max,e.modelValue[1])):(t.firstValue=e.min,t.secondValue=e.max),t.oldValue=[t.firstValue,t.secondValue]):(typeof e.modelValue!="number"||Number.isNaN(e.modelValue)?t.firstValue=e.min:t.firstValue=Math.min(e.max,Math.max(e.min,e.modelValue)),t.oldValue=t.firstValue),dn(window,"resize",n),await Xe(),n()}),{sliderWrapper:r}},EFe=e=>z(()=>e.marks?Object.keys(e.marks).map(Number.parseFloat).sort((n,r)=>n-r).filter(n=>n<=e.max&&n>=e.min).map(n=>({point:n,position:(n-e.min)*100/(e.max-e.min),mark:e.marks[n]})):[]),CFe=(e,t,n)=>{const{form:r,formItem:o}=xr(),s=rn(),a=ee(),i=ee(),l={firstButton:a,secondButton:i},u=z(()=>e.disabled||(r==null?void 0:r.disabled)||!1),c=z(()=>Math.min(t.firstValue,t.secondValue)),d=z(()=>Math.max(t.firstValue,t.secondValue)),f=z(()=>e.range?`${100*(d.value-c.value)/(e.max-e.min)}%`:`${100*(t.firstValue-e.min)/(e.max-e.min)}%`),p=z(()=>e.range?`${100*(c.value-e.min)/(e.max-e.min)}%`:"0%"),m=z(()=>e.vertical?{height:e.height}:{}),v=z(()=>e.vertical?{height:f.value,bottom:p.value}:{width:f.value,left:p.value}),g=()=>{s.value&&(t.sliderSize=s.value[`client${e.vertical?"Height":"Width"}`])},b=N=>{const I=e.min+N*(e.max-e.min)/100;if(!e.range)return a;let L;return Math.abs(c.value-I)t.secondValue?"firstButton":"secondButton",l[L]},_=N=>{const I=b(N);return I.value.setPosition(N),I},y=N=>{t.firstValue=N,w(e.range?[c.value,d.value]:N)},S=N=>{t.secondValue=N,e.range&&w([c.value,d.value])},w=N=>{n(Et,N),n(kr,N)},E=async()=>{await Xe(),n(un,e.range?[c.value,d.value]:e.modelValue)},T=N=>{var I,L,F,B,U,P;if(u.value||t.dragging)return;g();let O=0;if(e.vertical){const H=(F=(L=(I=N.touches)==null?void 0:I.item(0))==null?void 0:L.clientY)!=null?F:N.clientY;O=(s.value.getBoundingClientRect().bottom-H)/t.sliderSize*100}else{const H=(P=(U=(B=N.touches)==null?void 0:B.item(0))==null?void 0:U.clientX)!=null?P:N.clientX,q=s.value.getBoundingClientRect().left;O=(H-q)/t.sliderSize*100}if(!(O<0||O>100))return _(O)};return{elFormItem:o,slider:s,firstButton:a,secondButton:i,sliderDisabled:u,minValue:c,maxValue:d,runwayStyle:m,barStyle:v,resetSize:g,setPosition:_,emitChange:E,onSliderWrapperPrevent:N=>{var I,L;((I=l.firstButton.value)!=null&&I.dragging||(L=l.secondButton.value)!=null&&L.dragging)&&N.preventDefault()},onSliderClick:N=>{T(N)&&E()},onSliderDown:async N=>{const I=T(N);I&&(await Xe(),I.value.onButtonDown(N))},setFirstValue:y,setSecondValue:S}},{left:kFe,down:TFe,right:$Fe,up:xFe,home:IFe,end:AFe,pageUp:MFe,pageDown:OFe}=ot,RFe=(e,t,n)=>{const r=ee(),o=ee(!1),s=z(()=>t.value instanceof Function),a=z(()=>s.value&&t.value(e.modelValue)||e.modelValue),i=$r(()=>{n.value&&(o.value=!0)},50),l=$r(()=>{n.value&&(o.value=!1)},50);return{tooltip:r,tooltipVisible:o,formatValue:a,displayTooltip:i,hideTooltip:l}},PFe=(e,t,n)=>{const{disabled:r,min:o,max:s,step:a,showTooltip:i,precision:l,sliderSize:u,formatTooltip:c,emitChange:d,resetSize:f,updateDragging:p}=Ye(S7),{tooltip:m,tooltipVisible:v,formatValue:g,displayTooltip:b,hideTooltip:_}=RFe(e,c,i),y=ee(),S=z(()=>`${(e.modelValue-o.value)/(s.value-o.value)*100}%`),w=z(()=>e.vertical?{bottom:S.value}:{left:S.value}),E=()=>{t.hovering=!0,b()},T=()=>{t.hovering=!1,t.dragging||_()},C=V=>{r.value||(V.preventDefault(),O(V),window.addEventListener("mousemove",H),window.addEventListener("touchmove",H),window.addEventListener("mouseup",q),window.addEventListener("touchend",q),window.addEventListener("contextmenu",q),y.value.focus())},$=V=>{r.value||(t.newPosition=Number.parseFloat(S.value)+V/(s.value-o.value)*100,te(t.newPosition),d())},x=()=>{$(-a.value)},N=()=>{$(a.value)},I=()=>{$(-a.value*4)},L=()=>{$(a.value*4)},F=()=>{r.value||(te(0),d())},B=()=>{r.value||(te(100),d())},U=V=>{let Q=!0;[kFe,TFe].includes(V.key)?x():[$Fe,xFe].includes(V.key)?N():V.key===IFe?F():V.key===AFe?B():V.key===OFe?I():V.key===MFe?L():Q=!1,Q&&V.preventDefault()},P=V=>{let Q,ge;return V.type.startsWith("touch")?(ge=V.touches[0].clientY,Q=V.touches[0].clientX):(ge=V.clientY,Q=V.clientX),{clientX:Q,clientY:ge}},O=V=>{t.dragging=!0,t.isClick=!0;const{clientX:Q,clientY:ge}=P(V);e.vertical?t.startY=ge:t.startX=Q,t.startPosition=Number.parseFloat(S.value),t.newPosition=t.startPosition},H=V=>{if(t.dragging){t.isClick=!1,b(),f();let Q;const{clientX:ge,clientY:ie}=P(V);e.vertical?(t.currentY=ie,Q=(t.startY-t.currentY)/u.value*100):(t.currentX=ge,Q=(t.currentX-t.startX)/u.value*100),t.newPosition=t.startPosition+Q,te(t.newPosition)}},q=()=>{t.dragging&&(setTimeout(()=>{t.dragging=!1,t.hovering||_(),t.isClick||te(t.newPosition),d()},0),window.removeEventListener("mousemove",H),window.removeEventListener("touchmove",H),window.removeEventListener("mouseup",q),window.removeEventListener("touchend",q),window.removeEventListener("contextmenu",q))},te=async V=>{if(V===null||Number.isNaN(+V))return;V<0?V=0:V>100&&(V=100);const Q=100/((s.value-o.value)/a.value);let ie=Math.round(V/Q)*Q*(s.value-o.value)*.01+o.value;ie=Number.parseFloat(ie.toFixed(l.value)),ie!==e.modelValue&&n(Et,ie),!t.dragging&&e.modelValue!==t.oldValue&&(t.oldValue=e.modelValue),await Xe(),t.dragging&&b(),m.value.updatePopper()};return Be(()=>t.dragging,V=>{p(V)}),{disabled:r,button:y,tooltip:m,tooltipVisible:v,showTooltip:i,wrapperStyle:w,formatValue:g,handleMouseEnter:E,handleMouseLeave:T,onButtonDown:C,onKeyDown:U,setPosition:te}},NFe=(e,t,n,r)=>({stops:z(()=>{if(!e.showStops||e.min>e.max)return[];if(e.step===0)return[];const a=(e.max-e.min)/e.step,i=100*e.step/(e.max-e.min),l=Array.from({length:a-1}).map((u,c)=>(c+1)*i);return e.range?l.filter(u=>u<100*(n.value-e.min)/(e.max-e.min)||u>100*(r.value-e.min)/(e.max-e.min)):l.filter(u=>u>100*(t.firstValue-e.min)/(e.max-e.min))}),getStopStyle:a=>e.vertical?{bottom:`${a}%`}:{left:`${a}%`}}),LFe=(e,t,n,r,o,s)=>{const a=u=>{o(Et,u),o(kr,u)},i=()=>e.range?![n.value,r.value].every((u,c)=>u===t.oldValue[c]):e.modelValue!==t.oldValue,l=()=>{var u,c;if(e.min>e.max){zn("Slider","min should not be greater than max.");return}const d=e.modelValue;e.range&&Array.isArray(d)?d[1]e.max?a([e.max,e.max]):d[0]e.max?a([d[0],e.max]):(t.firstValue=d[0],t.secondValue=d[1],i()&&(e.validateEvent&&((u=s==null?void 0:s.validate)==null||u.call(s,"change").catch(f=>void 0)),t.oldValue=d.slice())):!e.range&&typeof d=="number"&&!Number.isNaN(d)&&(de.max?a(e.max):(t.firstValue=d,i()&&(e.validateEvent&&((c=s==null?void 0:s.validate)==null||c.call(s,"change").catch(f=>void 0)),t.oldValue=d)))};l(),Be(()=>t.dragging,u=>{u||l()}),Be(()=>e.modelValue,(u,c)=>{t.dragging||Array.isArray(u)&&Array.isArray(c)&&u.every((d,f)=>d===c[f])&&t.firstValue===u[0]&&t.secondValue===u[1]||l()},{deep:!0}),Be(()=>[e.min,e.max],()=>{l()})},BFe=He({modelValue:{type:Number,default:0},vertical:Boolean,tooltipClass:String,placement:{type:String,values:dl,default:"top"}}),DFe={[Et]:e=>dt(e)},zFe=["tabindex"],FFe=Ce({name:"ElSliderButton"}),HFe=Ce({...FFe,props:BFe,emits:DFe,setup(e,{expose:t,emit:n}){const r=e,o=De("slider"),s=Ht({hovering:!1,dragging:!1,isClick:!1,startX:0,currentX:0,startY:0,currentY:0,startPosition:0,newPosition:0,oldValue:r.modelValue}),{disabled:a,button:i,tooltip:l,showTooltip:u,tooltipVisible:c,wrapperStyle:d,formatValue:f,handleMouseEnter:p,handleMouseLeave:m,onButtonDown:v,onKeyDown:g,setPosition:b}=PFe(r,s,n),{hovering:_,dragging:y}=On(s);return t({onButtonDown:v,onKeyDown:g,setPosition:b,hovering:_,dragging:y}),(S,w)=>(k(),D("div",{ref_key:"button",ref:i,class:W([h(o).e("button-wrapper"),{hover:h(_),dragging:h(y)}]),style:Je(h(d)),tabindex:h(a)?-1:0,onMouseenter:w[0]||(w[0]=(...E)=>h(p)&&h(p)(...E)),onMouseleave:w[1]||(w[1]=(...E)=>h(m)&&h(m)(...E)),onMousedown:w[2]||(w[2]=(...E)=>h(v)&&h(v)(...E)),onTouchstart:w[3]||(w[3]=(...E)=>h(v)&&h(v)(...E)),onFocus:w[4]||(w[4]=(...E)=>h(p)&&h(p)(...E)),onBlur:w[5]||(w[5]=(...E)=>h(m)&&h(m)(...E)),onKeydown:w[6]||(w[6]=(...E)=>h(g)&&h(g)(...E))},[me(h(Ur),{ref_key:"tooltip",ref:l,visible:h(c),placement:S.placement,"fallback-placements":["top","bottom","right","left"],"stop-popper-mouse-event":!1,"popper-class":S.tooltipClass,disabled:!h(u),persistent:""},{content:be(()=>[R("span",null,ze(h(f)),1)]),default:be(()=>[R("div",{class:W([h(o).e("button"),{hover:h(_),dragging:h(y)}])},null,2)]),_:1},8,["visible","placement","popper-class","disabled"])],46,zFe))}});var c5=Fe(HFe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/slider/src/button.vue"]]);const VFe=He({mark:{type:Re([String,Object]),default:void 0}});var jFe=Ce({name:"ElSliderMarker",props:VFe,setup(e){const t=De("slider"),n=z(()=>ft(e.mark)?e.mark:e.mark.label),r=z(()=>ft(e.mark)?void 0:e.mark.style);return()=>tt("div",{class:t.e("marks-text"),style:r.value},n.value)}});const UFe=["id","role","aria-label","aria-labelledby"],WFe={key:1},qFe=Ce({name:"ElSlider"}),KFe=Ce({...qFe,props:bFe,emits:wFe,setup(e,{expose:t,emit:n}){const r=e,o=De("slider"),{t:s}=Vt(),a=Ht({firstValue:0,secondValue:0,oldValue:0,dragging:!1,sliderSize:1}),{elFormItem:i,slider:l,firstButton:u,secondButton:c,sliderDisabled:d,minValue:f,maxValue:p,runwayStyle:m,barStyle:v,resetSize:g,emitChange:b,onSliderWrapperPrevent:_,onSliderClick:y,onSliderDown:S,setFirstValue:w,setSecondValue:E}=CFe(r,a,n),{stops:T,getStopStyle:C}=NFe(r,a,f,p),{inputId:$,isLabeledByFormItem:x}=di(r,{formItemContext:i}),N=Ln(),I=z(()=>r.inputSize||N.value),L=z(()=>r.label||s("el.slider.defaultLabel",{min:r.min,max:r.max})),F=z(()=>r.range?r.rangeStartLabel||s("el.slider.defaultRangeStartLabel"):L.value),B=z(()=>r.formatValueText?r.formatValueText(V.value):`${V.value}`),U=z(()=>r.rangeEndLabel||s("el.slider.defaultRangeEndLabel")),P=z(()=>r.formatValueText?r.formatValueText(Q.value):`${Q.value}`),O=z(()=>[o.b(),o.m(N.value),o.is("vertical",r.vertical),{[o.m("with-input")]:r.showInput}]),H=EFe(r);LFe(r,a,f,p,n,i);const q=z(()=>{const ke=[r.min,r.max,r.step].map(Y=>{const K=`${Y}`.split(".")[1];return K?K.length:0});return Math.max.apply(null,ke)}),{sliderWrapper:te}=SFe(r,a,g),{firstValue:V,secondValue:Q,sliderSize:ge}=On(a),ie=ke=>{a.dragging=ke};return Ct(S7,{...On(r),sliderSize:ge,disabled:d,precision:q,emitChange:b,resetSize:g,updateDragging:ie}),t({onSliderClick:y}),(ke,Y)=>{var K,se;return k(),D("div",{id:ke.range?h($):void 0,ref_key:"sliderWrapper",ref:te,class:W(h(O)),role:ke.range?"group":void 0,"aria-label":ke.range&&!h(x)?h(L):void 0,"aria-labelledby":ke.range&&h(x)?(K=h(i))==null?void 0:K.labelId:void 0,onTouchstart:Y[2]||(Y[2]=(...ne)=>h(_)&&h(_)(...ne)),onTouchmove:Y[3]||(Y[3]=(...ne)=>h(_)&&h(_)(...ne))},[R("div",{ref_key:"slider",ref:l,class:W([h(o).e("runway"),{"show-input":ke.showInput&&!ke.range},h(o).is("disabled",h(d))]),style:Je(h(m)),onMousedown:Y[0]||(Y[0]=(...ne)=>h(S)&&h(S)(...ne)),onTouchstart:Y[1]||(Y[1]=(...ne)=>h(S)&&h(S)(...ne))},[R("div",{class:W(h(o).e("bar")),style:Je(h(v))},null,6),me(c5,{id:ke.range?void 0:h($),ref_key:"firstButton",ref:u,"model-value":h(V),vertical:ke.vertical,"tooltip-class":ke.tooltipClass,placement:ke.placement,role:"slider","aria-label":ke.range||!h(x)?h(F):void 0,"aria-labelledby":!ke.range&&h(x)?(se=h(i))==null?void 0:se.labelId:void 0,"aria-valuemin":ke.min,"aria-valuemax":ke.range?h(Q):ke.max,"aria-valuenow":h(V),"aria-valuetext":h(B),"aria-orientation":ke.vertical?"vertical":"horizontal","aria-disabled":h(d),"onUpdate:modelValue":h(w)},null,8,["id","model-value","vertical","tooltip-class","placement","aria-label","aria-labelledby","aria-valuemin","aria-valuemax","aria-valuenow","aria-valuetext","aria-orientation","aria-disabled","onUpdate:modelValue"]),ke.range?(k(),Me(c5,{key:0,ref_key:"secondButton",ref:c,"model-value":h(Q),vertical:ke.vertical,"tooltip-class":ke.tooltipClass,placement:ke.placement,role:"slider","aria-label":h(U),"aria-valuemin":h(V),"aria-valuemax":ke.max,"aria-valuenow":h(Q),"aria-valuetext":h(P),"aria-orientation":ke.vertical?"vertical":"horizontal","aria-disabled":h(d),"onUpdate:modelValue":h(E)},null,8,["model-value","vertical","tooltip-class","placement","aria-label","aria-valuemin","aria-valuemax","aria-valuenow","aria-valuetext","aria-orientation","aria-disabled","onUpdate:modelValue"])):Ae("v-if",!0),ke.showStops?(k(),D("div",WFe,[(k(!0),D(Ze,null,At(h(T),(ne,ve)=>(k(),D("div",{key:ve,class:W(h(o).e("stop")),style:Je(h(C)(ne))},null,6))),128))])):Ae("v-if",!0),h(H).length>0?(k(),D(Ze,{key:2},[R("div",null,[(k(!0),D(Ze,null,At(h(H),(ne,ve)=>(k(),D("div",{key:ve,style:Je(h(C)(ne.position)),class:W([h(o).e("stop"),h(o).e("marks-stop")])},null,6))),128))]),R("div",{class:W(h(o).e("marks"))},[(k(!0),D(Ze,null,At(h(H),(ne,ve)=>(k(),Me(h(jFe),{key:ve,mark:ne.mark,style:Je(h(C)(ne.position))},null,8,["mark","style"]))),128))],2)],64)):Ae("v-if",!0)],38),ke.showInput&&!ke.range?(k(),Me(h(zA),{key:0,ref:"input","model-value":h(V),class:W(h(o).e("input")),step:ke.step,disabled:h(d),controls:ke.showInputControls,min:ke.min,max:ke.max,debounce:ke.debounce,size:h(I),"onUpdate:modelValue":h(w),onChange:h(b)},null,8,["model-value","class","step","disabled","controls","min","max","debounce","size","onUpdate:modelValue","onChange"])):Ae("v-if",!0)],42,UFe)}}});var GFe=Fe(KFe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/slider/src/slider.vue"]]);const YFe=St(GFe),XFe=He({prefixCls:{type:String}}),d5=Ce({name:"ElSpaceItem",props:XFe,setup(e,{slots:t}){const n=De("space"),r=z(()=>`${e.prefixCls||n.b()}__item`);return()=>tt("div",{class:r.value},Pe(t,"default"))}}),f5={small:8,default:12,large:16};function JFe(e){const t=De("space"),n=z(()=>[t.b(),t.m(e.direction),e.class]),r=ee(0),o=ee(0),s=z(()=>{const i=e.wrap||e.fill?{flexWrap:"wrap",marginBottom:`-${o.value}px`}:{},l={alignItems:e.alignment};return[i,l,e.style]}),a=z(()=>{const i={paddingBottom:`${o.value}px`,marginRight:`${r.value}px`},l=e.fill?{flexGrow:1,minWidth:`${e.fillRatio}%`}:{};return[i,l]});return Cr(()=>{const{size:i="small",wrap:l,direction:u,fill:c}=e;if(Ge(i)){const[d=0,f=0]=i;r.value=d,o.value=f}else{let d;dt(i)?d=i:d=f5[i||"small"]||f5.small,(l||c)&&u==="horizontal"?r.value=o.value=d:u==="horizontal"?(r.value=d,o.value=0):(o.value=d,r.value=0)}}),{classes:n,containerStyle:s,itemStyle:a}}const QFe=He({direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},class:{type:Re([String,Object,Array]),default:""},style:{type:Re([String,Array,Object]),default:""},alignment:{type:Re(String),default:"center"},prefixCls:{type:String},spacer:{type:Re([Object,String,Number,Array]),default:null,validator:e=>sn(e)||dt(e)||ft(e)},wrap:Boolean,fill:Boolean,fillRatio:{type:Number,default:100},size:{type:[String,Array,Number],values:ha,validator:e=>dt(e)||Ge(e)&&e.length===2&&e.every(dt)}}),ZFe=Ce({name:"ElSpace",props:QFe,setup(e,{slots:t}){const{classes:n,containerStyle:r,itemStyle:o}=JFe(e);function s(a,i="",l=[]){const{prefixCls:u}=e;return a.forEach((c,d)=>{i1(c)?Ge(c.children)&&c.children.forEach((f,p)=>{i1(f)&&Ge(f.children)?s(f.children,`${i+p}-`,l):l.push(me(d5,{style:o.value,prefixCls:u,key:`nested-${i+p}`},{default:()=>[f]},uo.PROPS|uo.STYLE,["style","prefixCls"]))}):o9e(c)&&l.push(me(d5,{style:o.value,prefixCls:u,key:`LoopKey${i+d}`},{default:()=>[c]},uo.PROPS|uo.STYLE,["style","prefixCls"]))}),l}return()=>{var a;const{spacer:i,direction:l}=e,u=Pe(t,"default",{key:0},()=>[]);if(((a=u.children)!=null?a:[]).length===0)return null;if(Ge(u.children)){let c=s(u.children);if(i){const d=c.length-1;c=c.reduce((f,p,m)=>{const v=[...f,p];return m!==d&&v.push(me("span",{style:[o.value,l==="vertical"?"width: 100%":null],key:m},[sn(i)?i:Ot(i,uo.TEXT)],uo.STYLE)),v},[])}return me("div",{class:n.value,style:r.value},c,uo.STYLE|uo.CLASS)}return u.children}}}),eHe=St(ZFe),tHe=He({decimalSeparator:{type:String,default:"."},groupSeparator:{type:String,default:","},precision:{type:Number,default:0},formatter:Function,value:{type:Re([Number,Object]),default:0},prefix:String,suffix:String,title:String,valueStyle:{type:Re([String,Object,Array])}}),nHe=Ce({name:"ElStatistic"}),rHe=Ce({...nHe,props:tHe,setup(e,{expose:t}){const n=e,r=De("statistic"),o=z(()=>{const{value:s,formatter:a,precision:i,decimalSeparator:l,groupSeparator:u}=n;if(at(a))return a(s);if(!dt(s))return s;let[c,d=""]=String(s).split(".");return d=d.padEnd(i,"0").slice(0,i>0?i:0),c=c.replace(/\B(?=(\d{3})+(?!\d))/g,u),[c,d].join(d?l:"")});return t({displayValue:o}),(s,a)=>(k(),D("div",{class:W(h(r).b())},[s.$slots.title||s.title?(k(),D("div",{key:0,class:W(h(r).e("head"))},[Pe(s.$slots,"title",{},()=>[Ot(ze(s.title),1)])],2)):Ae("v-if",!0),R("div",{class:W(h(r).e("content"))},[s.$slots.prefix||s.prefix?(k(),D("div",{key:0,class:W(h(r).e("prefix"))},[Pe(s.$slots,"prefix",{},()=>[R("span",null,ze(s.prefix),1)])],2)):Ae("v-if",!0),R("span",{class:W(h(r).e("number")),style:Je(s.valueStyle)},ze(h(o)),7),s.$slots.suffix||s.suffix?(k(),D("div",{key:1,class:W(h(r).e("suffix"))},[Pe(s.$slots,"suffix",{},()=>[R("span",null,ze(s.suffix),1)])],2)):Ae("v-if",!0)],2)],2))}});var oHe=Fe(rHe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/statistic/src/statistic.vue"]]);const dM=St(oHe),sHe=He({format:{type:String,default:"HH:mm:ss"},prefix:String,suffix:String,title:String,value:{type:Re([Number,Object]),default:0},valueStyle:{type:Re([String,Object,Array])}}),aHe={finish:()=>!0,[un]:e=>dt(e)},iHe=[["Y",1e3*60*60*24*365],["M",1e3*60*60*24*30],["D",1e3*60*60*24],["H",1e3*60*60],["m",1e3*60],["s",1e3],["S",1]],p5=e=>dt(e)?new Date(e).getTime():e.valueOf(),h5=(e,t)=>{let n=e;const r=/\[([^\]]*)]/g;return iHe.reduce((s,[a,i])=>{const l=new RegExp(`${a}+(?![^\\[\\]]*\\])`,"g");if(l.test(s)){const u=Math.floor(n/i);return n-=u*i,s.replace(l,c=>String(u).padStart(c.length,"0"))}return s},t).replace(r,"$1")},lHe=Ce({name:"ElCountdown"}),uHe=Ce({...lHe,props:sHe,emits:aHe,setup(e,{expose:t,emit:n}){const r=e;let o;const s=ee(p5(r.value)-Date.now()),a=z(()=>h5(s.value,r.format)),i=c=>h5(c,r.format),l=()=>{o&&(om(o),o=void 0)},u=()=>{const c=p5(r.value),d=()=>{let f=c-Date.now();n("change",f),f<=0?(f=0,l(),n("finish")):o=kd(d),s.value=f};o=kd(d)};return Be(()=>[r.value,r.format],()=>{l(),u()},{immediate:!0}),fn(()=>{l()}),t({displayValue:a}),(c,d)=>(k(),Me(h(dM),{value:s.value,title:c.title,prefix:c.prefix,suffix:c.suffix,"value-style":c.valueStyle,formatter:i},Bo({_:2},[At(c.$slots,(f,p)=>({name:p,fn:be(()=>[Pe(c.$slots,p)])}))]),1032,["value","title","prefix","suffix","value-style"]))}});var cHe=Fe(uHe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/countdown/src/countdown.vue"]]);const dHe=St(cHe),fHe=He({space:{type:[Number,String],default:""},active:{type:Number,default:0},direction:{type:String,default:"horizontal",values:["horizontal","vertical"]},alignCenter:{type:Boolean},simple:{type:Boolean},finishStatus:{type:String,values:["wait","process","finish","error","success"],default:"finish"},processStatus:{type:String,values:["wait","process","finish","error","success"],default:"process"}}),pHe={[un]:(e,t)=>[e,t].every(dt)},hHe=Ce({name:"ElSteps"}),mHe=Ce({...hHe,props:fHe,emits:pHe,setup(e,{emit:t}){const n=e,r=De("steps"),o=ee([]);return Be(o,()=>{o.value.forEach((s,a)=>{s.setIndex(a)})}),Ct("ElSteps",{props:n,steps:o}),Be(()=>n.active,(s,a)=>{t(un,s,a)}),(s,a)=>(k(),D("div",{class:W([h(r).b(),h(r).m(s.simple?"simple":s.direction)])},[Pe(s.$slots,"default")],2))}});var vHe=Fe(mHe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/steps/src/steps.vue"]]);const gHe=He({title:{type:String,default:""},icon:{type:on},description:{type:String,default:""},status:{type:String,values:["","wait","process","finish","error","success"],default:""}}),_He=Ce({name:"ElStep"}),yHe=Ce({..._He,props:gHe,setup(e){const t=e,n=De("step"),r=ee(-1),o=ee({}),s=ee(""),a=Ye("ElSteps"),i=gt();vt(()=>{Be([()=>a.props.active,()=>a.props.processStatus,()=>a.props.finishStatus],([w])=>{y(w)},{immediate:!0})}),fn(()=>{a.steps.value=a.steps.value.filter(w=>w.uid!==(i==null?void 0:i.uid))});const l=z(()=>t.status||s.value),u=z(()=>{const w=a.steps.value[r.value-1];return w?w.currentStatus:"wait"}),c=z(()=>a.props.alignCenter),d=z(()=>a.props.direction==="vertical"),f=z(()=>a.props.simple),p=z(()=>a.steps.value.length),m=z(()=>{var w;return((w=a.steps.value[p.value-1])==null?void 0:w.uid)===(i==null?void 0:i.uid)}),v=z(()=>f.value?"":a.props.space),g=z(()=>{const w={flexBasis:typeof v.value=="number"?`${v.value}px`:v.value?v.value:`${100/(p.value-(c.value?0:1))}%`};return d.value||m.value&&(w.maxWidth=`${100/p.value}%`),w}),b=w=>{r.value=w},_=w=>{let E=100;const T={};T.transitionDelay=`${150*r.value}ms`,w===a.props.processStatus?E=0:w==="wait"&&(E=0,T.transitionDelay=`${-150*r.value}ms`),T.borderWidth=E&&!f.value?"1px":0,T[a.props.direction==="vertical"?"height":"width"]=`${E}%`,o.value=T},y=w=>{w>r.value?s.value=a.props.finishStatus:w===r.value&&u.value!=="error"?s.value=a.props.processStatus:s.value="wait";const E=a.steps.value[r.value-1];E&&E.calcProgress(s.value)},S=Ht({uid:z(()=>i==null?void 0:i.uid),currentStatus:l,setIndex:b,calcProgress:_});return a.steps.value=[...a.steps.value,S],(w,E)=>(k(),D("div",{style:Je(h(g)),class:W([h(n).b(),h(n).is(h(f)?"simple":h(a).props.direction),h(n).is("flex",h(m)&&!h(v)&&!h(c)),h(n).is("center",h(c)&&!h(d)&&!h(f))])},[Ae(" icon & line "),R("div",{class:W([h(n).e("head"),h(n).is(h(l))])},[h(f)?Ae("v-if",!0):(k(),D("div",{key:0,class:W(h(n).e("line"))},[R("i",{class:W(h(n).e("line-inner")),style:Je(o.value)},null,6)],2)),R("div",{class:W([h(n).e("icon"),h(n).is(w.icon||w.$slots.icon?"icon":"text")])},[Pe(w.$slots,"icon",{},()=>[w.icon?(k(),Me(h(et),{key:0,class:W(h(n).e("icon-inner"))},{default:be(()=>[(k(),Me(kt(w.icon)))]),_:1},8,["class"])):h(l)==="success"?(k(),Me(h(et),{key:1,class:W([h(n).e("icon-inner"),h(n).is("status")])},{default:be(()=>[me(h(Qu))]),_:1},8,["class"])):h(l)==="error"?(k(),Me(h(et),{key:2,class:W([h(n).e("icon-inner"),h(n).is("status")])},{default:be(()=>[me(h(wo))]),_:1},8,["class"])):h(f)?Ae("v-if",!0):(k(),D("div",{key:3,class:W(h(n).e("icon-inner"))},ze(r.value+1),3))])],2)],2),Ae(" title & description "),R("div",{class:W(h(n).e("main"))},[R("div",{class:W([h(n).e("title"),h(n).is(h(l))])},[Pe(w.$slots,"title",{},()=>[Ot(ze(w.title),1)])],2),h(f)?(k(),D("div",{key:0,class:W(h(n).e("arrow"))},null,2)):(k(),D("div",{key:1,class:W([h(n).e("description"),h(n).is(h(l))])},[Pe(w.$slots,"description",{},()=>[Ot(ze(w.description),1)])],2))],2)],6))}});var fM=Fe(yHe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/steps/src/item.vue"]]);const bHe=St(vHe,{Step:fM}),wHe=En(fM),SHe=He({modelValue:{type:[Boolean,String,Number],default:!1},value:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},width:{type:[String,Number],default:""},inlinePrompt:{type:Boolean,default:!1},activeIcon:{type:on},inactiveIcon:{type:on},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeColor:{type:String,default:""},inactiveColor:{type:String,default:""},borderColor:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},id:String,loading:{type:Boolean,default:!1},beforeChange:{type:Re(Function)},size:{type:String,validator:Zu},tabindex:{type:[String,Number]}}),EHe={[Et]:e=>Dn(e)||ft(e)||dt(e),[un]:e=>Dn(e)||ft(e)||dt(e),[kr]:e=>Dn(e)||ft(e)||dt(e)},CHe=["onClick"],kHe=["id","aria-checked","aria-disabled","name","true-value","false-value","disabled","tabindex","onKeydown"],THe=["aria-hidden"],$He=["aria-hidden"],xHe=["aria-hidden"],U1="ElSwitch",IHe=Ce({name:U1}),AHe=Ce({...IHe,props:SHe,emits:EHe,setup(e,{expose:t,emit:n}){const r=e,o=gt(),{formItem:s}=xr(),a=Ln(),i=De("switch");ta({from:'"value"',replacement:'"model-value" or "v-model"',scope:U1,version:"2.3.0",ref:"https://element-plus.org/en-US/component/switch.html#attributes",type:"Attribute"},z(()=>{var w;return!!((w=o.vnode.props)!=null&&w.value)}));const{inputId:l}=di(r,{formItemContext:s}),u=jr(z(()=>r.loading)),c=ee(r.modelValue!==!1),d=ee(),f=ee(),p=z(()=>[i.b(),i.m(a.value),i.is("disabled",u.value),i.is("checked",g.value)]),m=z(()=>({width:Nn(r.width)}));Be(()=>r.modelValue,()=>{c.value=!0}),Be(()=>r.value,()=>{c.value=!1});const v=z(()=>c.value?r.modelValue:r.value),g=z(()=>v.value===r.activeValue);[r.activeValue,r.inactiveValue].includes(v.value)||(n(Et,r.inactiveValue),n(un,r.inactiveValue),n(kr,r.inactiveValue)),Be(g,w=>{var E;d.value.checked=w,r.validateEvent&&((E=s==null?void 0:s.validate)==null||E.call(s,"change").catch(T=>void 0))});const b=()=>{const w=g.value?r.inactiveValue:r.activeValue;n(Et,w),n(un,w),n(kr,w),Xe(()=>{d.value.checked=g.value})},_=()=>{if(u.value)return;const{beforeChange:w}=r;if(!w){b();return}const E=w();[sd(E),Dn(E)].includes(!0)||zn(U1,"beforeChange must return type `Promise` or `boolean`"),sd(E)?E.then(C=>{C&&b()}).catch(C=>{}):E&&b()},y=z(()=>i.cssVarBlock({...r.activeColor?{"on-color":r.activeColor}:null,...r.inactiveColor?{"off-color":r.inactiveColor}:null,...r.borderColor?{"border-color":r.borderColor}:null})),S=()=>{var w,E;(E=(w=d.value)==null?void 0:w.focus)==null||E.call(w)};return vt(()=>{d.value.checked=g.value}),t({focus:S,checked:g}),(w,E)=>(k(),D("div",{class:W(h(p)),style:Je(h(y)),onClick:ct(_,["prevent"])},[R("input",{id:h(l),ref_key:"input",ref:d,class:W(h(i).e("input")),type:"checkbox",role:"switch","aria-checked":h(g),"aria-disabled":h(u),name:w.name,"true-value":w.activeValue,"false-value":w.inactiveValue,disabled:h(u),tabindex:w.tabindex,onChange:b,onKeydown:Rt(_,["enter"])},null,42,kHe),!w.inlinePrompt&&(w.inactiveIcon||w.inactiveText)?(k(),D("span",{key:0,class:W([h(i).e("label"),h(i).em("label","left"),h(i).is("active",!h(g))])},[w.inactiveIcon?(k(),Me(h(et),{key:0},{default:be(()=>[(k(),Me(kt(w.inactiveIcon)))]),_:1})):Ae("v-if",!0),!w.inactiveIcon&&w.inactiveText?(k(),D("span",{key:1,"aria-hidden":h(g)},ze(w.inactiveText),9,THe)):Ae("v-if",!0)],2)):Ae("v-if",!0),R("span",{ref_key:"core",ref:f,class:W(h(i).e("core")),style:Je(h(m))},[w.inlinePrompt?(k(),D("div",{key:0,class:W(h(i).e("inner"))},[w.activeIcon||w.inactiveIcon?(k(),Me(h(et),{key:0,class:W(h(i).is("icon"))},{default:be(()=>[(k(),Me(kt(h(g)?w.activeIcon:w.inactiveIcon)))]),_:1},8,["class"])):w.activeText||w.inactiveText?(k(),D("span",{key:1,class:W(h(i).is("text")),"aria-hidden":!h(g)},ze(h(g)?w.activeText:w.inactiveText),11,$He)):Ae("v-if",!0)],2)):Ae("v-if",!0),R("div",{class:W(h(i).e("action"))},[w.loading?(k(),Me(h(et),{key:0,class:W(h(i).is("loading"))},{default:be(()=>[me(h(pa))]),_:1},8,["class"])):Ae("v-if",!0)],2)],6),!w.inlinePrompt&&(w.activeIcon||w.activeText)?(k(),D("span",{key:1,class:W([h(i).e("label"),h(i).em("label","right"),h(i).is("active",h(g))])},[w.activeIcon?(k(),Me(h(et),{key:0},{default:be(()=>[(k(),Me(kt(w.activeIcon)))]),_:1})):Ae("v-if",!0),!w.activeIcon&&w.activeText?(k(),D("span",{key:1,"aria-hidden":!h(g)},ze(w.activeText),9,xHe)):Ae("v-if",!0)],2)):Ae("v-if",!0)],14,CHe))}});var MHe=Fe(AHe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/switch/src/switch.vue"]]);const OHe=St(MHe);/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var RHe=/["'&<>]/,PHe=NHe;function NHe(e){var t=""+e,n=RHe.exec(t);if(!n)return t;var r,o="",s=0,a=0;for(s=n.index;stypeof u=="string"?pn(i,u):u(i,l,e))):(t!=="$key"&&m5(i)&&"$value"in i&&(i=i.$value),[m5(i)?pn(i,t):i])},a=function(i,l){if(r)return r(i.value,l.value);for(let u=0,c=i.key.length;ul.key[u])return 1}return 0};return e.map((i,l)=>({value:i,index:l,key:s?s(i,l):null})).sort((i,l)=>{let u=a(i,l);return u||(u=i.index-l.index),u*+n}).map(i=>i.value)},pM=function(e,t){let n=null;return e.columns.forEach(r=>{r.id===t&&(n=r)}),n},DHe=function(e,t){let n=null;for(let r=0;r{if(!e)throw new Error("Row is required when get row identity");if(typeof t=="string"){if(!t.includes("."))return`${e[t]}`;const n=t.split(".");let r=e;for(const o of n)r=r[o];return`${r}`}else if(typeof t=="function")return t.call(null,e)},Oi=function(e,t){const n={};return(e||[]).forEach((r,o)=>{n[er(r,t)]={row:r,index:o}}),n};function zHe(e,t){const n={};let r;for(r in e)n[r]=e[r];for(r in t)if(Bt(t,r)){const o=t[r];typeof o<"u"&&(n[r]=o)}return n}function Fb(e){return e===""||e!==void 0&&(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function hM(e){return e===""||e!==void 0&&(e=Fb(e),Number.isNaN(e)&&(e=80)),e}function FHe(e){return typeof e=="number"?e:typeof e=="string"?/^\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function HHe(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,n)=>(...r)=>t(n(...r)))}function Zc(e,t,n){let r=!1;const o=e.indexOf(t),s=o!==-1,a=i=>{i==="add"?e.push(t):e.splice(o,1),r=!0,Ge(t.children)&&t.children.forEach(l=>{Zc(e,l,n??!s)})};return Dn(n)?n&&!s?a("add"):!n&&s&&a("remove"):a(s?"remove":"add"),r}function VHe(e,t,n="children",r="hasChildren"){const o=a=>!(Array.isArray(a)&&a.length);function s(a,i,l){t(a,i,l),i.forEach(u=>{if(u[r]){t(u,null,l+1);return}const c=u[n];o(c)||s(u,c,l+1)})}e.forEach(a=>{if(a[r]){t(a,null,0);return}const i=a[n];o(i)||s(a,i,0)})}let Es;function jHe(e,t,n,r,o){const{nextZIndex:s}=va(),a=e==null?void 0:e.dataset.prefix,i=e==null?void 0:e.querySelector(`.${a}-scrollbar__wrap`);function l(){const m=o==="light",v=document.createElement("div");return v.className=`${a}-popper ${m?"is-light":"is-dark"}`,n=LHe(n),v.innerHTML=n,v.style.zIndex=String(s()),e==null||e.appendChild(v),v}function u(){const m=document.createElement("div");return m.className=`${a}-popper__arrow`,m}function c(){d&&d.update()}Es==null||Es(),Es=()=>{try{d&&d.destroy(),f&&(e==null||e.removeChild(f)),t.removeEventListener("mouseenter",c),t.removeEventListener("mouseleave",Es),i==null||i.removeEventListener("scroll",Es),Es=void 0}catch{}};let d=null;const f=l(),p=u();return f.appendChild(p),d=dI(t,f,{strategy:"absolute",modifiers:[{name:"offset",options:{offset:[0,8]}},{name:"arrow",options:{element:p,padding:10}}],...r}),t.addEventListener("mouseenter",c),t.addEventListener("mouseleave",Es),i==null||i.addEventListener("scroll",Es),d}function mM(e){return e.children?iQ(e.children,mM):[e]}function g5(e,t){return e+t.colSpan}const vM=(e,t,n,r)=>{let o=0,s=e;const a=n.states.columns.value;if(r){const l=mM(r[e]);o=a.slice(0,a.indexOf(l[0])).reduce(g5,0),s=o+l.reduce(g5,0)-1}else o=e;let i;switch(t){case"left":s=a.length-n.states.rightFixedLeafColumnsLength.value&&(i="right");break;default:s=a.length-n.states.rightFixedLeafColumnsLength.value&&(i="right")}return i?{direction:i,start:o,after:s}:{}},Hb=(e,t,n,r,o,s=0)=>{const a=[],{direction:i,start:l,after:u}=vM(t,n,r,o);if(i){const c=i==="left";a.push(`${e}-fixed-column--${i}`),c&&u+s===r.states.fixedLeafColumnsLength.value-1?a.push("is-last-column"):!c&&l-s===r.states.columns.value.length-r.states.rightFixedLeafColumnsLength.value&&a.push("is-first-column")}return a};function _5(e,t){return e+(t.realWidth===null||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const Vb=(e,t,n,r)=>{const{direction:o,start:s=0,after:a=0}=vM(e,t,n,r);if(!o)return;const i={},l=o==="left",u=n.states.columns.value;return l?i.left=u.slice(0,s).reduce(_5,0):i.right=u.slice(a+1).reverse().reduce(_5,0),i},xu=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function UHe(e){const t=gt(),n=ee(!1),r=ee([]);return{updateExpandRows:()=>{const l=e.data.value||[],u=e.rowKey.value;if(n.value)r.value=l.slice();else if(u){const c=Oi(r.value,u);r.value=l.reduce((d,f)=>{const p=er(f,u);return c[p]&&d.push(f),d},[])}else r.value=[]},toggleRowExpansion:(l,u)=>{Zc(r.value,l,u)&&t.emit("expand-change",l,r.value.slice())},setExpandRowKeys:l=>{t.store.assertRowKey();const u=e.data.value||[],c=e.rowKey.value,d=Oi(u,c);r.value=l.reduce((f,p)=>{const m=d[p];return m&&f.push(m.row),f},[])},isRowExpanded:l=>{const u=e.rowKey.value;return u?!!Oi(r.value,u)[er(l,u)]:r.value.includes(l)},states:{expandRows:r,defaultExpandAll:n}}}function WHe(e){const t=gt(),n=ee(null),r=ee(null),o=u=>{t.store.assertRowKey(),n.value=u,a(u)},s=()=>{n.value=null},a=u=>{const{data:c,rowKey:d}=e;let f=null;d.value&&(f=(h(c)||[]).find(p=>er(p,d.value)===u)),r.value=f,t.emit("current-change",r.value,null)};return{setCurrentRowKey:o,restoreCurrentRowKey:s,setCurrentRowByKey:a,updateCurrentRow:u=>{const c=r.value;if(u&&u!==c){r.value=u,t.emit("current-change",r.value,c);return}!u&&c&&(r.value=null,t.emit("current-change",null,c))},updateCurrentRowData:()=>{const u=e.rowKey.value,c=e.data.value||[],d=r.value;if(!c.includes(d)&&d){if(u){const f=er(d,u);a(f)}else r.value=null;r.value===null&&t.emit("current-change",null,d)}else n.value&&(a(n.value),s())},states:{_currentRowKey:n,currentRow:r}}}function qHe(e){const t=ee([]),n=ee({}),r=ee(16),o=ee(!1),s=ee({}),a=ee("hasChildren"),i=ee("children"),l=gt(),u=z(()=>{if(!e.rowKey.value)return{};const b=e.data.value||[];return d(b)}),c=z(()=>{const b=e.rowKey.value,_=Object.keys(s.value),y={};return _.length&&_.forEach(S=>{if(s.value[S].length){const w={children:[]};s.value[S].forEach(E=>{const T=er(E,b);w.children.push(T),E[a.value]&&!y[T]&&(y[T]={children:[]})}),y[S]=w}}),y}),d=b=>{const _=e.rowKey.value,y={};return VHe(b,(S,w,E)=>{const T=er(S,_);Array.isArray(w)?y[T]={children:w.map(C=>er(C,_)),level:E}:o.value&&(y[T]={children:[],lazy:!0,level:E})},i.value,a.value),y},f=(b=!1,_=(y=>(y=l.store)==null?void 0:y.states.defaultExpandAll.value)())=>{var y;const S=u.value,w=c.value,E=Object.keys(S),T={};if(E.length){const C=h(n),$=[],x=(I,L)=>{if(b)return t.value?_||t.value.includes(L):!!(_||I!=null&&I.expanded);{const F=_||t.value&&t.value.includes(L);return!!(I!=null&&I.expanded||F)}};E.forEach(I=>{const L=C[I],F={...S[I]};if(F.expanded=x(L,I),F.lazy){const{loaded:B=!1,loading:U=!1}=L||{};F.loaded=!!B,F.loading=!!U,$.push(I)}T[I]=F});const N=Object.keys(w);o.value&&N.length&&$.length&&N.forEach(I=>{const L=C[I],F=w[I].children;if($.includes(I)){if(T[I].children.length!==0)throw new Error("[ElTable]children must be an empty array.");T[I].children=F}else{const{loaded:B=!1,loading:U=!1}=L||{};T[I]={lazy:!0,loaded:!!B,loading:!!U,expanded:x(L,I),children:F,level:""}}})}n.value=T,(y=l.store)==null||y.updateTableScrollY()};Be(()=>t.value,()=>{f(!0)}),Be(()=>u.value,()=>{f()}),Be(()=>c.value,()=>{f()});const p=b=>{t.value=b,f()},m=(b,_)=>{l.store.assertRowKey();const y=e.rowKey.value,S=er(b,y),w=S&&n.value[S];if(S&&w&&"expanded"in w){const E=w.expanded;_=typeof _>"u"?!w.expanded:_,n.value[S].expanded=_,E!==_&&l.emit("expand-change",b,_),l.store.updateTableScrollY()}},v=b=>{l.store.assertRowKey();const _=e.rowKey.value,y=er(b,_),S=n.value[y];o.value&&S&&"loaded"in S&&!S.loaded?g(b,y,S):m(b,void 0)},g=(b,_,y)=>{const{load:S}=l.props;S&&!n.value[_].loaded&&(n.value[_].loading=!0,S(b,y,w=>{if(!Array.isArray(w))throw new TypeError("[ElTable] data must be an array");n.value[_].loading=!1,n.value[_].loaded=!0,n.value[_].expanded=!0,w.length&&(s.value[_]=w),l.emit("expand-change",b,!0)}))};return{loadData:g,loadOrToggle:v,toggleTreeExpansion:m,updateTreeExpandKeys:p,updateTreeData:f,normalize:d,states:{expandRowKeys:t,treeData:n,indent:r,lazy:o,lazyTreeNodeMap:s,lazyColumnIdentifier:a,childrenColumnName:i}}}const KHe=(e,t)=>{const n=t.sortingColumn;return!n||typeof n.sortable=="string"?e:BHe(e,t.sortProp,t.sortOrder,n.sortMethod,n.sortBy)},Rp=e=>{const t=[];return e.forEach(n=>{n.children?t.push.apply(t,Rp(n.children)):t.push(n)}),t};function GHe(){var e;const t=gt(),{size:n}=On((e=t.proxy)==null?void 0:e.$props),r=ee(null),o=ee([]),s=ee([]),a=ee(!1),i=ee([]),l=ee([]),u=ee([]),c=ee([]),d=ee([]),f=ee([]),p=ee([]),m=ee([]),v=ee(0),g=ee(0),b=ee(0),_=ee(!1),y=ee([]),S=ee(!1),w=ee(!1),E=ee(null),T=ee({}),C=ee(null),$=ee(null),x=ee(null),N=ee(null),I=ee(null);Be(o,()=>t.state&&U(!1),{deep:!0});const L=()=>{if(!r.value)throw new Error("[ElTable] prop row-key is required")},F=G=>{var ue;(ue=G.children)==null||ue.forEach(_e=>{_e.fixed=G.fixed,F(_e)})},B=()=>{i.value.forEach(Z=>{F(Z)}),c.value=i.value.filter(Z=>Z.fixed===!0||Z.fixed==="left"),d.value=i.value.filter(Z=>Z.fixed==="right"),c.value.length>0&&i.value[0]&&i.value[0].type==="selection"&&!i.value[0].fixed&&(i.value[0].fixed=!0,c.value.unshift(i.value[0]));const G=i.value.filter(Z=>!Z.fixed);l.value=[].concat(c.value).concat(G).concat(d.value);const ue=Rp(G),_e=Rp(c.value),X=Rp(d.value);v.value=ue.length,g.value=_e.length,b.value=X.length,u.value=[].concat(_e).concat(ue).concat(X),a.value=c.value.length>0||d.value.length>0},U=(G,ue=!1)=>{G&&B(),ue?t.state.doLayout():t.state.debouncedUpdateLayout()},P=G=>y.value.includes(G),O=()=>{_.value=!1,y.value.length&&(y.value=[],t.emit("selection-change",[]))},H=()=>{let G;if(r.value){G=[];const ue=Oi(y.value,r.value),_e=Oi(o.value,r.value);for(const X in ue)Bt(ue,X)&&!_e[X]&&G.push(ue[X].row)}else G=y.value.filter(ue=>!o.value.includes(ue));if(G.length){const ue=y.value.filter(_e=>!G.includes(_e));y.value=ue,t.emit("selection-change",ue.slice())}},q=()=>(y.value||[]).slice(),te=(G,ue=void 0,_e=!0)=>{if(Zc(y.value,G,ue)){const Z=(y.value||[]).slice();_e&&t.emit("select",Z,G),t.emit("selection-change",Z)}},V=()=>{var G,ue;const _e=w.value?!_.value:!(_.value||y.value.length);_.value=_e;let X=!1,Z=0;const de=(ue=(G=t==null?void 0:t.store)==null?void 0:G.states)==null?void 0:ue.rowKey.value;o.value.forEach((Oe,qe)=>{const Qe=qe+Z;E.value?E.value.call(null,Oe,Qe)&&Zc(y.value,Oe,_e)&&(X=!0):Zc(y.value,Oe,_e)&&(X=!0),Z+=ie(er(Oe,de))}),X&&t.emit("selection-change",y.value?y.value.slice():[]),t.emit("select-all",y.value)},Q=()=>{const G=Oi(y.value,r.value);o.value.forEach(ue=>{const _e=er(ue,r.value),X=G[_e];X&&(y.value[X.index]=ue)})},ge=()=>{var G,ue,_e;if(((G=o.value)==null?void 0:G.length)===0){_.value=!1;return}let X;r.value&&(X=Oi(y.value,r.value));const Z=function(Qe){return X?!!X[er(Qe,r.value)]:y.value.includes(Qe)};let de=!0,Oe=0,qe=0;for(let Qe=0,ht=(o.value||[]).length;Qe{var ue;if(!t||!t.store)return 0;const{treeData:_e}=t.store.states;let X=0;const Z=(ue=_e.value[G])==null?void 0:ue.children;return Z&&(X+=Z.length,Z.forEach(de=>{X+=ie(de)})),X},ke=(G,ue)=>{Array.isArray(G)||(G=[G]);const _e={};return G.forEach(X=>{T.value[X.id]=ue,_e[X.columnKey||X.id]=ue}),_e},Y=(G,ue,_e)=>{$.value&&$.value!==G&&($.value.order=null),$.value=G,x.value=ue,N.value=_e},K=()=>{let G=h(s);Object.keys(T.value).forEach(ue=>{const _e=T.value[ue];if(!_e||_e.length===0)return;const X=pM({columns:u.value},ue);X&&X.filterMethod&&(G=G.filter(Z=>_e.some(de=>X.filterMethod.call(null,de,Z,X))))}),C.value=G},se=()=>{o.value=KHe(C.value,{sortingColumn:$.value,sortProp:x.value,sortOrder:N.value})},ne=(G=void 0)=>{G&&G.filter||K(),se()},ve=G=>{const{tableHeaderRef:ue}=t.refs;if(!ue)return;const _e=Object.assign({},ue.filterPanels),X=Object.keys(_e);if(X.length)if(typeof G=="string"&&(G=[G]),Array.isArray(G)){const Z=G.map(de=>DHe({columns:u.value},de));X.forEach(de=>{const Oe=Z.find(qe=>qe.id===de);Oe&&(Oe.filteredValue=[])}),t.store.commit("filterChange",{column:Z,values:[],silent:!0,multi:!0})}else X.forEach(Z=>{const de=u.value.find(Oe=>Oe.id===Z);de&&(de.filteredValue=[])}),T.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},J=()=>{$.value&&(Y(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},{setExpandRowKeys:ae,toggleRowExpansion:ce,updateExpandRows:oe,states:he,isRowExpanded:le}=UHe({data:o,rowKey:r}),{updateTreeExpandKeys:Ee,toggleTreeExpansion:ye,updateTreeData:pe,loadOrToggle:re,states:fe}=qHe({data:o,rowKey:r}),{updateCurrentRowData:Te,updateCurrentRow:$e,setCurrentRowKey:Le,states:A}=WHe({data:o,rowKey:r});return{assertRowKey:L,updateColumns:B,scheduleLayout:U,isSelected:P,clearSelection:O,cleanSelection:H,getSelectionRows:q,toggleRowSelection:te,_toggleAllSelection:V,toggleAllSelection:null,updateSelectionByRowKey:Q,updateAllSelected:ge,updateFilters:ke,updateCurrentRow:$e,updateSort:Y,execFilter:K,execSort:se,execQuery:ne,clearFilter:ve,clearSort:J,toggleRowExpansion:ce,setExpandRowKeysAdapter:G=>{ae(G),Ee(G)},setCurrentRowKey:Le,toggleRowExpansionAdapter:(G,ue)=>{u.value.some(({type:X})=>X==="expand")?ce(G,ue):ye(G,ue)},isRowExpanded:le,updateExpandRows:oe,updateCurrentRowData:Te,loadOrToggle:re,updateTreeData:pe,states:{tableSize:n,rowKey:r,data:o,_data:s,isComplex:a,_columns:i,originColumns:l,columns:u,fixedColumns:c,rightFixedColumns:d,leafColumns:f,fixedLeafColumns:p,rightFixedLeafColumns:m,leafColumnsLength:v,fixedLeafColumnsLength:g,rightFixedLeafColumnsLength:b,isAllSelected:_,selection:y,reserveSelection:S,selectOnIndeterminate:w,selectable:E,filters:T,filteredData:C,sortingColumn:$,sortProp:x,sortOrder:N,hoverRow:I,...he,...fe,...A}}}function W1(e,t){return e.map(n=>{var r;return n.id===t.id?t:((r=n.children)!=null&&r.length&&(n.children=W1(n.children,t)),n)})}function gM(e){e.forEach(t=>{var n,r;t.no=(n=t.getColumnIndex)==null?void 0:n.call(t),(r=t.children)!=null&&r.length&&gM(t.children)}),e.sort((t,n)=>t.no-n.no)}function YHe(){const e=gt(),t=GHe();return{ns:De("table"),...t,mutations:{setData(a,i){const l=h(a._data)!==i;a.data.value=i,a._data.value=i,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),h(a.reserveSelection)?(e.store.assertRowKey(),e.store.updateSelectionByRowKey()):l?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(a,i,l){const u=h(a._columns);let c=[];l?(l&&!l.children&&(l.children=[]),l.children.push(i),c=W1(u,l)):(u.push(i),c=u),gM(c),a._columns.value=c,i.type==="selection"&&(a.selectable.value=i.selectable,a.reserveSelection.value=i.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},removeColumn(a,i,l){const u=h(a._columns)||[];if(l)l.children.splice(l.children.findIndex(c=>c.id===i.id),1),Xe(()=>{var c;((c=l.children)==null?void 0:c.length)===0&&delete l.children}),a._columns.value=W1(u,l);else{const c=u.indexOf(i);c>-1&&(u.splice(c,1),a._columns.value=u)}e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(a,i){const{prop:l,order:u,init:c}=i;if(l){const d=h(a.columns).find(f=>f.property===l);d&&(d.order=u,e.store.updateSort(d,l,u),e.store.commit("changeSortCondition",{init:c}))}},changeSortCondition(a,i){const{sortingColumn:l,sortProp:u,sortOrder:c}=a,d=h(l),f=h(u),p=h(c);p===null&&(a.sortingColumn.value=null,a.sortProp.value=null);const m={filter:!0};e.store.execQuery(m),(!i||!(i.silent||i.init))&&e.emit("sort-change",{column:d,prop:f,order:p}),e.store.updateTableScrollY()},filterChange(a,i){const{column:l,values:u,silent:c}=i,d=e.store.updateFilters(l,u);e.store.execQuery(),c||e.emit("filter-change",d),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection()},rowSelectedChanged(a,i){e.store.toggleRowSelection(i),e.store.updateAllSelected()},setHoverRow(a,i){a.hoverRow.value=i},setCurrentRow(a,i){e.store.updateCurrentRow(i)}},commit:function(a,...i){const l=e.store.mutations;if(l[a])l[a].apply(e,[e.store.states].concat(i));else throw new Error(`Action not found: ${a}`)},updateTableScrollY:function(){Xe(()=>e.layout.updateScrollY.apply(e.layout))}}}const ed={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy",data:"data","treeProps.hasChildren":{key:"lazyColumnIdentifier",default:"hasChildren"},"treeProps.children":{key:"childrenColumnName",default:"children"}};function XHe(e,t){if(!e)throw new Error("Table is required.");const n=YHe();return n.toggleAllSelection=$r(n._toggleAllSelection,10),Object.keys(ed).forEach(r=>{_M(yM(t,r),r,n)}),JHe(n,t),n}function JHe(e,t){Object.keys(ed).forEach(n=>{Be(()=>yM(t,n),r=>{_M(r,n,e)})})}function _M(e,t,n){let r=e,o=ed[t];typeof ed[t]=="object"&&(o=o.key,r=r||ed[t].default),n.states[o].value=r}function yM(e,t){if(t.includes(".")){const n=t.split(".");let r=e;return n.forEach(o=>{r=r[o]}),r}else return e[t]}class QHe{constructor(t){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=ee(null),this.scrollX=ee(!1),this.scrollY=ee(!1),this.bodyWidth=ee(null),this.fixedWidth=ee(null),this.rightFixedWidth=ee(null),this.gutterWidth=0;for(const n in t)Bt(t,n)&&(qt(this[n])?this[n].value=t[n]:this[n]=t[n]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(this.height.value===null)return!1;const n=this.table.refs.scrollBarRef;if(this.table.vnode.el&&n){let r=!0;const o=this.scrollY.value;return r=n.wrapRef.scrollHeight>n.wrapRef.clientHeight,this.scrollY.value=r,o!==r}return!1}setHeight(t,n="height"){if(!Pt)return;const r=this.table.vnode.el;if(t=FHe(t),this.height.value=Number(t),!r&&(t||t===0))return Xe(()=>this.setHeight(t,n));typeof t=="number"?(r.style[n]=`${t}px`,this.updateElsHeight()):typeof t=="string"&&(r.style[n]=t,this.updateElsHeight())}setMaxHeight(t){this.setHeight(t,"max-height")}getFlattenColumns(){const t=[];return this.table.store.states.columns.value.forEach(r=>{r.isColumnGroup?t.push.apply(t,r.columns):t.push(r)}),t}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(t){if(!t)return!0;let n=t;for(;n.tagName!=="DIV";){if(getComputedStyle(n).display==="none")return!0;n=n.parentElement}return!1}updateColumnsWidth(){if(!Pt)return;const t=this.fit,n=this.table.vnode.el.clientWidth;let r=0;const o=this.getFlattenColumns(),s=o.filter(l=>typeof l.width!="number");if(o.forEach(l=>{typeof l.width=="number"&&l.realWidth&&(l.realWidth=null)}),s.length>0&&t){if(o.forEach(l=>{r+=Number(l.width||l.minWidth||80)}),r<=n){this.scrollX.value=!1;const l=n-r;if(s.length===1)s[0].realWidth=Number(s[0].minWidth||80)+l;else{const u=s.reduce((f,p)=>f+Number(p.minWidth||80),0),c=l/u;let d=0;s.forEach((f,p)=>{if(p===0)return;const m=Math.floor(Number(f.minWidth||80)*c);d+=m,f.realWidth=Number(f.minWidth||80)+m}),s[0].realWidth=Number(s[0].minWidth||80)+l-d}}else this.scrollX.value=!0,s.forEach(l=>{l.realWidth=Number(l.minWidth)});this.bodyWidth.value=Math.max(r,n),this.table.state.resizeState.value.width=this.bodyWidth.value}else o.forEach(l=>{!l.width&&!l.minWidth?l.realWidth=80:l.realWidth=Number(l.width||l.minWidth),r+=l.realWidth}),this.scrollX.value=r>n,this.bodyWidth.value=r;const a=this.store.states.fixedColumns.value;if(a.length>0){let l=0;a.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.fixedWidth.value=l}const i=this.store.states.rightFixedColumns.value;if(i.length>0){let l=0;i.forEach(u=>{l+=Number(u.realWidth||u.width)}),this.rightFixedWidth.value=l}this.notifyObservers("columns")}addObserver(t){this.observers.push(t)}removeObserver(t){const n=this.observers.indexOf(t);n!==-1&&this.observers.splice(n,1)}notifyObservers(t){this.observers.forEach(r=>{var o,s;switch(t){case"columns":(o=r.state)==null||o.onColumnsChange(this);break;case"scrollable":(s=r.state)==null||s.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${t}.`)}})}}const{CheckboxGroup:ZHe}=Co,eVe=Ce({name:"ElTableFilterPanel",components:{ElCheckbox:Co,ElCheckboxGroup:ZHe,ElScrollbar:_a,ElTooltip:Ur,ElIcon:et,ArrowDown:da,ArrowUp:cf},directives:{ClickOutside:ai},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(e){const t=gt(),{t:n}=Vt(),r=De("table-filter"),o=t==null?void 0:t.parent;o.filterPanels.value[e.column.id]||(o.filterPanels.value[e.column.id]=t);const s=ee(!1),a=ee(null),i=z(()=>e.column&&e.column.filters),l=z({get:()=>{var S;return(((S=e.column)==null?void 0:S.filteredValue)||[])[0]},set:S=>{u.value&&(typeof S<"u"&&S!==null?u.value.splice(0,1,S):u.value.splice(0,1))}}),u=z({get(){return e.column?e.column.filteredValue||[]:[]},set(S){e.column&&e.upDataColumn("filteredValue",S)}}),c=z(()=>e.column?e.column.filterMultiple:!0),d=S=>S.value===l.value,f=()=>{s.value=!1},p=S=>{S.stopPropagation(),s.value=!s.value},m=()=>{s.value=!1},v=()=>{_(u.value),f()},g=()=>{u.value=[],_(u.value),f()},b=S=>{l.value=S,_(typeof S<"u"&&S!==null?u.value:[]),f()},_=S=>{e.store.commit("filterChange",{column:e.column,values:S}),e.store.updateAllSelected()};Be(s,S=>{e.column&&e.upDataColumn("filterOpened",S)},{immediate:!0});const y=z(()=>{var S,w;return(w=(S=a.value)==null?void 0:S.popperRef)==null?void 0:w.contentRef});return{tooltipVisible:s,multiple:c,filteredValue:u,filterValue:l,filters:i,handleConfirm:v,handleReset:g,handleSelect:b,isActive:d,t:n,ns:r,showFilterPanel:p,hideFilterPanel:m,popperPaneRef:y,tooltip:a}}}),tVe={key:0},nVe=["disabled"],rVe=["label","onClick"];function oVe(e,t,n,r,o,s){const a=rt("el-checkbox"),i=rt("el-checkbox-group"),l=rt("el-scrollbar"),u=rt("arrow-up"),c=rt("arrow-down"),d=rt("el-icon"),f=rt("el-tooltip"),p=Za("click-outside");return k(),Me(f,{ref:"tooltip",visible:e.tooltipVisible,offset:0,placement:e.placement,"show-arrow":!1,"stop-popper-mouse-event":!1,teleported:"",effect:"light",pure:"","popper-class":e.ns.b(),persistent:""},{content:be(()=>[e.multiple?(k(),D("div",tVe,[R("div",{class:W(e.ns.e("content"))},[me(l,{"wrap-class":e.ns.e("wrap")},{default:be(()=>[me(i,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||(t[0]=m=>e.filteredValue=m),class:W(e.ns.e("checkbox-group"))},{default:be(()=>[(k(!0),D(Ze,null,At(e.filters,m=>(k(),Me(a,{key:m.value,label:m.value},{default:be(()=>[Ot(ze(m.text),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),R("div",{class:W(e.ns.e("bottom"))},[R("button",{class:W({[e.ns.is("disabled")]:e.filteredValue.length===0}),disabled:e.filteredValue.length===0,type:"button",onClick:t[1]||(t[1]=(...m)=>e.handleConfirm&&e.handleConfirm(...m))},ze(e.t("el.table.confirmFilter")),11,nVe),R("button",{type:"button",onClick:t[2]||(t[2]=(...m)=>e.handleReset&&e.handleReset(...m))},ze(e.t("el.table.resetFilter")),1)],2)])):(k(),D("ul",{key:1,class:W(e.ns.e("list"))},[R("li",{class:W([e.ns.e("list-item"),{[e.ns.is("active")]:e.filterValue===void 0||e.filterValue===null}]),onClick:t[3]||(t[3]=m=>e.handleSelect(null))},ze(e.t("el.table.clearFilter")),3),(k(!0),D(Ze,null,At(e.filters,m=>(k(),D("li",{key:m.value,class:W([e.ns.e("list-item"),e.ns.is("active",e.isActive(m))]),label:m.value,onClick:v=>e.handleSelect(m.value)},ze(m.text),11,rVe))),128))],2))]),default:be(()=>[mt((k(),D("span",{class:W([`${e.ns.namespace.value}-table__column-filter-trigger`,`${e.ns.namespace.value}-none-outline`]),onClick:t[4]||(t[4]=(...m)=>e.showFilterPanel&&e.showFilterPanel(...m))},[me(d,null,{default:be(()=>[e.column.filterOpened?(k(),Me(u,{key:0})):(k(),Me(c,{key:1}))]),_:1})],2)),[[p,e.hideFilterPanel,e.popperPaneRef]])]),_:1},8,["visible","placement","popper-class"])}var sVe=Fe(eVe,[["render",oVe],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/filter-panel.vue"]]);function bM(e){const t=gt();Wd(()=>{n.value.addObserver(t)}),vt(()=>{r(n.value),o(n.value)}),Uo(()=>{r(n.value),o(n.value)}),ia(()=>{n.value.removeObserver(t)});const n=z(()=>{const s=e.layout;if(!s)throw new Error("Can not find table layout.");return s}),r=s=>{var a;const i=((a=e.vnode.el)==null?void 0:a.querySelectorAll("colgroup > col"))||[];if(!i.length)return;const l=s.getFlattenColumns(),u={};l.forEach(c=>{u[c.id]=c});for(let c=0,d=i.length;c{var a,i;const l=((a=e.vnode.el)==null?void 0:a.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let c=0,d=l.length;c{v.stopPropagation()},s=(v,g)=>{!g.filters&&g.sortable?m(v,g,!1):g.filterable&&!g.sortable&&o(v),r==null||r.emit("header-click",g,v)},a=(v,g)=>{r==null||r.emit("header-contextmenu",g,v)},i=ee(null),l=ee(!1),u=ee({}),c=(v,g)=>{if(Pt&&!(g.children&&g.children.length>0)&&i.value&&e.border){l.value=!0;const b=r;t("set-drag-visible",!0);const y=(b==null?void 0:b.vnode.el).getBoundingClientRect().left,S=n.vnode.el.querySelector(`th.${g.id}`),w=S.getBoundingClientRect(),E=w.left-y+30;rs(S,"noclick"),u.value={startMouseLeft:v.clientX,startLeft:w.right-y,startColumnLeft:w.left-y,tableLeft:y};const T=b==null?void 0:b.refs.resizeProxy;T.style.left=`${u.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const C=x=>{const N=x.clientX-u.value.startMouseLeft,I=u.value.startLeft+N;T.style.left=`${Math.max(E,I)}px`},$=()=>{if(l.value){const{startColumnLeft:x,startLeft:N}=u.value,L=Number.parseInt(T.style.left,10)-x;g.width=g.realWidth=L,b==null||b.emit("header-dragend",g.width,N-x,g,v),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",l.value=!1,i.value=null,u.value={},t("set-drag-visible",!1)}document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",$),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{Lr(S,"noclick")},0)};document.addEventListener("mousemove",C),document.addEventListener("mouseup",$)}},d=(v,g)=>{var b;if(g.children&&g.children.length>0)return;const _=(b=v.target)==null?void 0:b.closest("th");if(!(!g||!g.resizable)&&!l.value&&e.border){const y=_.getBoundingClientRect(),S=document.body.style;y.width>12&&y.right-v.pageX<8?(S.cursor="col-resize",No(_,"is-sortable")&&(_.style.cursor="col-resize"),i.value=g):l.value||(S.cursor="",No(_,"is-sortable")&&(_.style.cursor="pointer"),i.value=null)}},f=()=>{Pt&&(document.body.style.cursor="")},p=({order:v,sortOrders:g})=>{if(v==="")return g[0];const b=g.indexOf(v||null);return g[b>g.length-2?0:b+1]},m=(v,g,b)=>{var _;v.stopPropagation();const y=g.order===b?null:b||p(g),S=(_=v.target)==null?void 0:_.closest("th");if(S&&No(S,"noclick")){Lr(S,"noclick");return}if(!g.sortable)return;const w=e.store.states;let E=w.sortProp.value,T;const C=w.sortingColumn.value;(C!==g||C===g&&C.order===null)&&(C&&(C.order=null),w.sortingColumn.value=g,E=g.property),y?T=g.order=y:T=g.order=null,w.sortProp.value=E,w.sortOrder.value=T,r==null||r.store.commit("changeSortCondition")};return{handleHeaderClick:s,handleHeaderContextMenu:a,handleMouseDown:c,handleMouseMove:d,handleMouseOut:f,handleSortClick:m,handleFilterClick:o}}function iVe(e){const t=Ye(vs),n=De("table");return{getHeaderRowStyle:i=>{const l=t==null?void 0:t.props.headerRowStyle;return typeof l=="function"?l.call(null,{rowIndex:i}):l},getHeaderRowClass:i=>{const l=[],u=t==null?void 0:t.props.headerRowClassName;return typeof u=="string"?l.push(u):typeof u=="function"&&l.push(u.call(null,{rowIndex:i})),l.join(" ")},getHeaderCellStyle:(i,l,u,c)=>{var d;let f=(d=t==null?void 0:t.props.headerCellStyle)!=null?d:{};typeof f=="function"&&(f=f.call(null,{rowIndex:i,columnIndex:l,row:u,column:c}));const p=Vb(l,c.fixed,e.store,u);return xu(p,"left"),xu(p,"right"),Object.assign({},f,p)},getHeaderCellClass:(i,l,u,c)=>{const d=Hb(n.b(),l,c.fixed,e.store,u),f=[c.id,c.order,c.headerAlign,c.className,c.labelClassName,...d];c.children||f.push("is-leaf"),c.sortable&&f.push("is-sortable");const p=t==null?void 0:t.props.headerCellClassName;return typeof p=="string"?f.push(p):typeof p=="function"&&f.push(p.call(null,{rowIndex:i,columnIndex:l,row:u,column:c})),f.push(n.e("cell")),f.filter(m=>!!m).join(" ")}}}const wM=e=>{const t=[];return e.forEach(n=>{n.children?(t.push(n),t.push.apply(t,wM(n.children))):t.push(n)}),t},lVe=e=>{let t=1;const n=(s,a)=>{if(a&&(s.level=a.level+1,t{n(l,s),i+=l.colSpan}),s.colSpan=i}else s.colSpan=1};e.forEach(s=>{s.level=1,n(s,void 0)});const r=[];for(let s=0;s{s.children?(s.rowSpan=1,s.children.forEach(a=>a.isSubColumn=!0)):s.rowSpan=t-s.level+1,r[s.level-1].push(s)}),r};function uVe(e){const t=Ye(vs),n=z(()=>lVe(e.store.states.originColumns.value));return{isGroup:z(()=>{const s=n.value.length>1;return s&&t&&(t.state.isGroup.value=!0),s}),toggleAllSelection:s=>{s.stopPropagation(),t==null||t.store.commit("toggleAllSelection")},columnRows:n}}var cVe=Ce({name:"ElTableHeader",components:{ElCheckbox:Co},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e,{emit:t}){const n=gt(),r=Ye(vs),o=De("table"),s=ee({}),{onColumnsChange:a,onScrollableChange:i}=bM(r);vt(async()=>{await Xe(),await Xe();const{prop:E,order:T}=e.defaultSort;r==null||r.store.commit("sort",{prop:E,order:T,init:!0})});const{handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:d,handleMouseOut:f,handleSortClick:p,handleFilterClick:m}=aVe(e,t),{getHeaderRowStyle:v,getHeaderRowClass:g,getHeaderCellStyle:b,getHeaderCellClass:_}=iVe(e),{isGroup:y,toggleAllSelection:S,columnRows:w}=uVe(e);return n.state={onColumnsChange:a,onScrollableChange:i},n.filterPanels=s,{ns:o,filterPanels:s,onColumnsChange:a,onScrollableChange:i,columnRows:w,getHeaderRowClass:g,getHeaderRowStyle:v,getHeaderCellClass:_,getHeaderCellStyle:b,handleHeaderClick:l,handleHeaderContextMenu:u,handleMouseDown:c,handleMouseMove:d,handleMouseOut:f,handleSortClick:p,handleFilterClick:m,isGroup:y,toggleAllSelection:S}},render(){const{ns:e,isGroup:t,columnRows:n,getHeaderCellStyle:r,getHeaderCellClass:o,getHeaderRowClass:s,getHeaderRowStyle:a,handleHeaderClick:i,handleHeaderContextMenu:l,handleMouseDown:u,handleMouseMove:c,handleSortClick:d,handleMouseOut:f,store:p,$parent:m}=this;let v=1;return tt("thead",{class:{[e.is("group")]:t}},n.map((g,b)=>tt("tr",{class:s(b),key:b,style:a(b)},g.map((_,y)=>(_.rowSpan>v&&(v=_.rowSpan),tt("th",{class:o(b,y,g,_),colspan:_.colSpan,key:`${_.id}-thead`,rowspan:_.rowSpan,style:r(b,y,g,_),onClick:S=>i(S,_),onContextmenu:S=>l(S,_),onMousedown:S=>u(S,_),onMousemove:S=>c(S,_),onMouseout:f},[tt("div",{class:["cell",_.filteredValue&&_.filteredValue.length>0?"highlight":""]},[_.renderHeader?_.renderHeader({column:_,$index:y,store:p,_self:m}):_.label,_.sortable&&tt("span",{onClick:S=>d(S,_),class:"caret-wrapper"},[tt("i",{onClick:S=>d(S,_,"ascending"),class:"sort-caret ascending"}),tt("i",{onClick:S=>d(S,_,"descending"),class:"sort-caret descending"})]),_.filterable&&tt(sVe,{store:p,placement:_.filterPlacement||"bottom-start",column:_,upDataColumn:(S,w)=>{_[S]=w}})])]))))))}});function dVe(e){const t=Ye(vs),n=ee(""),r=ee(tt("div")),o=(f,p,m)=>{var v;const g=t,b=Nv(f);let _;const y=(v=g==null?void 0:g.vnode.el)==null?void 0:v.dataset.prefix;b&&(_=v5({columns:e.store.states.columns.value},b,y),_&&(g==null||g.emit(`cell-${m}`,p,_,b,f))),g==null||g.emit(`row-${m}`,p,_,f)},s=(f,p)=>{o(f,p,"dblclick")},a=(f,p)=>{e.store.commit("setCurrentRow",p),o(f,p,"click")},i=(f,p)=>{o(f,p,"contextmenu")},l=$r(f=>{e.store.commit("setHoverRow",f)},30),u=$r(()=>{e.store.commit("setHoverRow",null)},30);return{handleDoubleClick:s,handleClick:a,handleContextMenu:i,handleMouseEnter:l,handleMouseLeave:u,handleCellMouseEnter:(f,p,m)=>{var v;const g=t,b=Nv(f),_=(v=g==null?void 0:g.vnode.el)==null?void 0:v.dataset.prefix;if(b){const T=v5({columns:e.store.states.columns.value},b,_),C=g.hoverState={cell:b,column:T,row:p};g==null||g.emit("cell-mouse-enter",C.row,C.column,C.cell,f)}const y=f.target.querySelector(".cell");if(!(No(y,`${_}-tooltip`)&&y.childNodes.length))return;const S=document.createRange();S.setStart(y,0),S.setEnd(y,y.childNodes.length);const w=Math.round(S.getBoundingClientRect().width),E=(Number.parseInt(Ps(y,"paddingLeft"),10)||0)+(Number.parseInt(Ps(y,"paddingRight"),10)||0);(w+E>y.offsetWidth||y.scrollWidth>y.offsetWidth)&&jHe(t==null?void 0:t.refs.tableWrapper,b,b.innerText||b.textContent,{placement:"top",strategy:"fixed"},m)},handleCellMouseLeave:f=>{if(!Nv(f))return;const m=t==null?void 0:t.hoverState;t==null||t.emit("cell-mouse-leave",m==null?void 0:m.row,m==null?void 0:m.column,m==null?void 0:m.cell,f)},tooltipContent:n,tooltipTrigger:r}}function fVe(e){const t=Ye(vs),n=De("table");return{getRowStyle:(u,c)=>{const d=t==null?void 0:t.props.rowStyle;return typeof d=="function"?d.call(null,{row:u,rowIndex:c}):d||null},getRowClass:(u,c)=>{const d=[n.e("row")];t!=null&&t.props.highlightCurrentRow&&u===e.store.states.currentRow.value&&d.push("current-row"),e.stripe&&c%2===1&&d.push(n.em("row","striped"));const f=t==null?void 0:t.props.rowClassName;return typeof f=="string"?d.push(f):typeof f=="function"&&d.push(f.call(null,{row:u,rowIndex:c})),d},getCellStyle:(u,c,d,f)=>{const p=t==null?void 0:t.props.cellStyle;let m=p??{};typeof p=="function"&&(m=p.call(null,{rowIndex:u,columnIndex:c,row:d,column:f}));const v=Vb(c,e==null?void 0:e.fixed,e.store);return xu(v,"left"),xu(v,"right"),Object.assign({},m,v)},getCellClass:(u,c,d,f,p)=>{const m=Hb(n.b(),c,e==null?void 0:e.fixed,e.store,void 0,p),v=[f.id,f.align,f.className,...m],g=t==null?void 0:t.props.cellClassName;return typeof g=="string"?v.push(g):typeof g=="function"&&v.push(g.call(null,{rowIndex:u,columnIndex:c,row:d,column:f})),v.push(n.e("cell")),v.filter(b=>!!b).join(" ")},getSpan:(u,c,d,f)=>{let p=1,m=1;const v=t==null?void 0:t.props.spanMethod;if(typeof v=="function"){const g=v({row:u,column:c,rowIndex:d,columnIndex:f});Array.isArray(g)?(p=g[0],m=g[1]):typeof g=="object"&&(p=g.rowspan,m=g.colspan)}return{rowspan:p,colspan:m}},getColspanRealWidth:(u,c,d)=>{if(c<1)return u[d].realWidth;const f=u.map(({realWidth:p,width:m})=>p||m).slice(d,d+c);return Number(f.reduce((p,m)=>Number(p)+Number(m),-1))}}}function pVe(e){const t=Ye(vs),n=De("table"),{handleDoubleClick:r,handleClick:o,handleContextMenu:s,handleMouseEnter:a,handleMouseLeave:i,handleCellMouseEnter:l,handleCellMouseLeave:u,tooltipContent:c,tooltipTrigger:d}=dVe(e),{getRowStyle:f,getRowClass:p,getCellStyle:m,getCellClass:v,getSpan:g,getColspanRealWidth:b}=fVe(e),_=z(()=>e.store.states.columns.value.findIndex(({type:T})=>T==="default")),y=(T,C)=>{const $=t.props.rowKey;return $?er(T,$):C},S=(T,C,$,x=!1)=>{const{tooltipEffect:N,store:I}=e,{indent:L,columns:F}=I.states,B=p(T,C);let U=!0;return $&&(B.push(n.em("row",`level-${$.level}`)),U=$.display),tt("tr",{style:[U?null:{display:"none"},f(T,C)],class:B,key:y(T,C),onDblclick:O=>r(O,T),onClick:O=>o(O,T),onContextmenu:O=>s(O,T),onMouseenter:()=>a(C),onMouseleave:i},F.value.map((O,H)=>{const{rowspan:q,colspan:te}=g(T,O,C,H);if(!q||!te)return null;const V={...O};V.realWidth=b(F.value,te,H);const Q={store:e.store,_self:e.context||t,column:V,row:T,$index:C,cellIndex:H,expanded:x};H===_.value&&$&&(Q.treeNode={indent:$.level*L.value,level:$.level},typeof $.expanded=="boolean"&&(Q.treeNode.expanded=$.expanded,"loading"in $&&(Q.treeNode.loading=$.loading),"noLazyChildren"in $&&(Q.treeNode.noLazyChildren=$.noLazyChildren)));const ge=`${C},${H}`,ie=V.columnKey||V.rawColumnKey||"",ke=w(H,O,Q);return tt("td",{style:m(C,H,T,O),class:v(C,H,T,O,te-1),key:`${ie}${ge}`,rowspan:q,colspan:te,onMouseenter:Y=>l(Y,T,N),onMouseleave:u},[ke])}))},w=(T,C,$)=>C.renderCell($);return{wrappedRowRender:(T,C)=>{const $=e.store,{isRowExpanded:x,assertRowKey:N}=$,{treeData:I,lazyTreeNodeMap:L,childrenColumnName:F,rowKey:B}=$.states,U=$.states.columns.value;if(U.some(({type:O})=>O==="expand")){const O=x(T),H=S(T,C,void 0,O),q=t.renderExpanded;return O?q?[[H,tt("tr",{key:`expanded-row__${H.key}`},[tt("td",{colspan:U.length,class:`${n.e("cell")} ${n.e("expanded-cell")}`},[q({row:T,$index:C,store:$,expanded:O})])])]]:(console.error("[Element Error]renderExpanded is required."),H):[[H]]}else if(Object.keys(I.value).length){N();const O=er(T,B.value);let H=I.value[O],q=null;H&&(q={expanded:H.expanded,level:H.level,display:!0},typeof H.lazy=="boolean"&&(typeof H.loaded=="boolean"&&H.loaded&&(q.noLazyChildren=!(H.children&&H.children.length)),q.loading=H.loading));const te=[S(T,C,q)];if(H){let V=0;const Q=(ie,ke)=>{ie&&ie.length&&ke&&ie.forEach(Y=>{const K={display:ke.display&&ke.expanded,level:ke.level+1,expanded:!1,noLazyChildren:!1,loading:!1},se=er(Y,B.value);if(se==null)throw new Error("For nested data item, row-key is required.");if(H={...I.value[se]},H&&(K.expanded=H.expanded,H.level=H.level||K.level,H.display=!!(H.expanded&&K.display),typeof H.lazy=="boolean"&&(typeof H.loaded=="boolean"&&H.loaded&&(K.noLazyChildren=!(H.children&&H.children.length)),K.loading=H.loading)),V++,te.push(S(Y,C+V,K)),H){const ne=L.value[se]||Y[F.value];Q(ne,H)}})};H.display=!0;const ge=L.value[O]||T[F.value];Q(ge,H)}return te}else return S(T,C,void 0)},tooltipContent:c,tooltipTrigger:d}}const hVe={store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean};var mVe=Ce({name:"ElTableBody",props:hVe,setup(e){const t=gt(),n=Ye(vs),r=De("table"),{wrappedRowRender:o,tooltipContent:s,tooltipTrigger:a}=pVe(e),{onColumnsChange:i,onScrollableChange:l}=bM(n);return Be(e.store.states.hoverRow,(u,c)=>{if(!e.store.states.isComplex.value||!Pt)return;let d=window.requestAnimationFrame;d||(d=f=>window.setTimeout(f,16)),d(()=>{const f=t==null?void 0:t.vnode.el,p=Array.from((f==null?void 0:f.children)||[]).filter(g=>g==null?void 0:g.classList.contains(`${r.e("row")}`)),m=p[c],v=p[u];m&&Lr(m,"hover-row"),v&&rs(v,"hover-row")})}),ia(()=>{var u;(u=Es)==null||u()}),{ns:r,onColumnsChange:i,onScrollableChange:l,wrappedRowRender:o,tooltipContent:s,tooltipTrigger:a}},render(){const{wrappedRowRender:e,store:t}=this,n=t.states.data.value||[];return tt("tbody",{},[n.reduce((r,o)=>r.concat(e(o,r.length)),[])])}});function jb(e){const t=e.tableLayout==="auto";let n=e.columns||[];t&&n.every(o=>o.width===void 0)&&(n=[]);const r=o=>{const s={key:`${e.tableLayout}_${o.id}`,style:{},name:void 0};return t?s.style={width:`${o.width}px`}:s.name=o.id,s};return tt("colgroup",{},n.map(o=>tt("col",r(o))))}jb.props=["columns","tableLayout"];function vVe(){const e=Ye(vs),t=e==null?void 0:e.store,n=z(()=>t.states.fixedLeafColumnsLength.value),r=z(()=>t.states.rightFixedColumns.value.length),o=z(()=>t.states.columns.value.length),s=z(()=>t.states.fixedColumns.value.length),a=z(()=>t.states.rightFixedColumns.value.length);return{leftFixedLeafCount:n,rightFixedLeafCount:r,columnsCount:o,leftFixedCount:s,rightFixedCount:a,columns:t.states.columns}}function gVe(e){const{columns:t}=vVe(),n=De("table");return{getCellClasses:(s,a)=>{const i=s[a],l=[n.e("cell"),i.id,i.align,i.labelClassName,...Hb(n.b(),a,i.fixed,e.store)];return i.className&&l.push(i.className),i.children||l.push(n.is("leaf")),l},getCellStyles:(s,a)=>{const i=Vb(a,s.fixed,e.store);return xu(i,"left"),xu(i,"right"),i},columns:t}}var _Ve=Ce({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const{getCellClasses:t,getCellStyles:n,columns:r}=gVe(e);return{ns:De("table"),getCellClasses:t,getCellStyles:n,columns:r}},render(){const{columns:e,getCellStyles:t,getCellClasses:n,summaryMethod:r,sumText:o,ns:s}=this,a=this.store.states.data.value;let i=[];return r?i=r({columns:e,data:a}):e.forEach((l,u)=>{if(u===0){i[u]=o;return}const c=a.map(m=>Number(m[l.property])),d=[];let f=!0;c.forEach(m=>{if(!Number.isNaN(+m)){f=!1;const v=`${m}`.split(".")[1];d.push(v?v.length:0)}});const p=Math.max.apply(null,d);f?i[u]="":i[u]=c.reduce((m,v)=>{const g=Number(v);return Number.isNaN(+g)?m:Number.parseFloat((m+v).toFixed(Math.min(p,20)))},0)}),tt("table",{class:s.e("footer"),cellspacing:"0",cellpadding:"0",border:"0"},[jb({columns:e}),tt("tbody",[tt("tr",{},[...e.map((l,u)=>tt("td",{key:u,colspan:l.colSpan,rowspan:l.rowSpan,class:n(e,u),style:t(l,u)},[tt("div",{class:["cell",l.labelClassName]},[i[u]])]))])])])}});function yVe(e){return{setCurrentRow:c=>{e.commit("setCurrentRow",c)},getSelectionRows:()=>e.getSelectionRows(),toggleRowSelection:(c,d)=>{e.toggleRowSelection(c,d,!1),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:c=>{e.clearFilter(c)},toggleAllSelection:()=>{e.commit("toggleAllSelection")},toggleRowExpansion:(c,d)=>{e.toggleRowExpansionAdapter(c,d)},clearSort:()=>{e.clearSort()},sort:(c,d)=>{e.commit("sort",{prop:c,order:d})}}}function bVe(e,t,n,r){const o=ee(!1),s=ee(null),a=ee(!1),i=O=>{a.value=O},l=ee({width:null,height:null,headerHeight:null}),u=ee(!1),c={display:"inline-block",verticalAlign:"middle"},d=ee(),f=ee(0),p=ee(0),m=ee(0),v=ee(0);Cr(()=>{t.setHeight(e.height)}),Cr(()=>{t.setMaxHeight(e.maxHeight)}),Be(()=>[e.currentRowKey,n.states.rowKey],([O,H])=>{!h(H)||!h(O)||n.setCurrentRowKey(`${O}`)},{immediate:!0}),Be(()=>e.data,O=>{r.store.commit("setData",O)},{immediate:!0,deep:!0}),Cr(()=>{e.expandRowKeys&&n.setExpandRowKeysAdapter(e.expandRowKeys)});const g=()=>{r.store.commit("setHoverRow",null),r.hoverState&&(r.hoverState=null)},b=(O,H)=>{const{pixelX:q,pixelY:te}=H;Math.abs(q)>=Math.abs(te)&&(r.refs.bodyWrapper.scrollLeft+=H.pixelX/5)},_=z(()=>e.height||e.maxHeight||n.states.fixedColumns.value.length>0||n.states.rightFixedColumns.value.length>0),y=z(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),S=()=>{_.value&&t.updateElsHeight(),t.updateColumnsWidth(),requestAnimationFrame(C)};vt(async()=>{await Xe(),n.updateColumns(),$(),requestAnimationFrame(S);const O=r.vnode.el,H=r.refs.headerWrapper;e.flexible&&O&&O.parentElement&&(O.parentElement.style.minWidth="0"),l.value={width:d.value=O.offsetWidth,height:O.offsetHeight,headerHeight:e.showHeader&&H?H.offsetHeight:null},n.states.columns.value.forEach(q=>{q.filteredValue&&q.filteredValue.length&&r.store.commit("filterChange",{column:q,values:q.filteredValue,silent:!0})}),r.$ready=!0});const w=(O,H)=>{if(!O)return;const q=Array.from(O.classList).filter(te=>!te.startsWith("is-scrolling-"));q.push(t.scrollX.value?H:"is-scrolling-none"),O.className=q.join(" ")},E=O=>{const{tableWrapper:H}=r.refs;w(H,O)},T=O=>{const{tableWrapper:H}=r.refs;return!!(H&&H.classList.contains(O))},C=function(){if(!r.refs.scrollBarRef)return;if(!t.scrollX.value){const ie="is-scrolling-none";T(ie)||E(ie);return}const O=r.refs.scrollBarRef.wrapRef;if(!O)return;const{scrollLeft:H,offsetWidth:q,scrollWidth:te}=O,{headerWrapper:V,footerWrapper:Q}=r.refs;V&&(V.scrollLeft=H),Q&&(Q.scrollLeft=H);const ge=te-q-1;H>=ge?E("is-scrolling-right"):E(H===0?"is-scrolling-left":"is-scrolling-middle")},$=()=>{r.refs.scrollBarRef&&(r.refs.scrollBarRef.wrapRef&&dn(r.refs.scrollBarRef.wrapRef,"scroll",C,{passive:!0}),e.fit?gr(r.vnode.el,x):dn(window,"resize",x),gr(r.refs.bodyWrapper,()=>{var O,H;x(),(H=(O=r.refs)==null?void 0:O.scrollBarRef)==null||H.update()}))},x=()=>{var O,H,q;const te=r.vnode.el;if(!r.$ready||!te)return;let V=!1;const{width:Q,height:ge,headerHeight:ie}=l.value,ke=d.value=te.offsetWidth;Q!==ke&&(V=!0);const Y=te.offsetHeight;(e.height||_.value)&&ge!==Y&&(V=!0);const K=e.tableLayout==="fixed"?r.refs.headerWrapper:(O=r.refs.tableHeaderRef)==null?void 0:O.$el;e.showHeader&&(K==null?void 0:K.offsetHeight)!==ie&&(V=!0),f.value=((H=r.refs.tableWrapper)==null?void 0:H.scrollHeight)||0,m.value=(K==null?void 0:K.scrollHeight)||0,v.value=((q=r.refs.footerWrapper)==null?void 0:q.offsetHeight)||0,p.value=f.value-m.value-v.value,V&&(l.value={width:ke,height:Y,headerHeight:e.showHeader&&(K==null?void 0:K.offsetHeight)||0},S())},N=Ln(),I=z(()=>{const{bodyWidth:O,scrollY:H,gutterWidth:q}=t;return O.value?`${O.value-(H.value?q:0)}px`:""}),L=z(()=>e.maxHeight?"fixed":e.tableLayout),F=z(()=>{if(e.data&&e.data.length)return null;let O="100%";e.height&&p.value&&(O=`${p.value}px`);const H=d.value;return{width:H?`${H}px`:"",height:O}}),B=z(()=>e.height?{height:Number.isNaN(Number(e.height))?e.height:`${e.height}px`}:e.maxHeight?{maxHeight:Number.isNaN(Number(e.maxHeight))?e.maxHeight:`${e.maxHeight}px`}:{}),U=z(()=>{if(e.height)return{height:"100%"};if(e.maxHeight){if(Number.isNaN(Number(e.maxHeight)))return{maxHeight:`calc(${e.maxHeight} - ${m.value+v.value}px)`};{const O=e.maxHeight;if(f.value>=Number(O))return{maxHeight:`${f.value-m.value-v.value}px`}}}return{}});return{isHidden:o,renderExpanded:s,setDragVisible:i,isGroup:u,handleMouseLeave:g,handleHeaderFooterMousewheel:b,tableSize:N,emptyBlockStyle:F,handleFixedMousewheel:(O,H)=>{const q=r.refs.bodyWrapper;if(Math.abs(H.spinY)>0){const te=q.scrollTop;H.pixelY<0&&te!==0&&O.preventDefault(),H.pixelY>0&&q.scrollHeight-q.clientHeight>te&&O.preventDefault(),q.scrollTop+=Math.ceil(H.pixelY/5)}else q.scrollLeft+=Math.ceil(H.pixelX/5)},resizeProxyVisible:a,bodyWidth:I,resizeState:l,doLayout:S,tableBodyStyles:y,tableLayout:L,scrollbarViewStyle:c,tableInnerStyle:B,scrollbarStyle:U}}var wVe={data:{type:Array,default:()=>[]},size:String,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children"})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:{type:Boolean,default:!1},flexible:Boolean};const SVe=()=>{const e=ee(),t=(s,a)=>{const i=e.value;i&&i.scrollTo(s,a)},n=(s,a)=>{const i=e.value;i&&dt(a)&&["Top","Left"].includes(s)&&i[`setScroll${s}`](a)};return{scrollBarRef:e,scrollTo:t,setScrollTop:s=>n("Top",s),setScrollLeft:s=>n("Left",s)}};let EVe=1;const CVe=Ce({name:"ElTable",directives:{Mousewheel:I7e},components:{TableHeader:cVe,TableBody:mVe,TableFooter:_Ve,ElScrollbar:_a,hColgroup:jb},props:wVe,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change"],setup(e){const{t}=Vt(),n=De("table"),r=gt();Ct(vs,r);const o=XHe(r,e);r.store=o;const s=new QHe({store:r.store,table:r,fit:e.fit,showHeader:e.showHeader});r.layout=s;const a=z(()=>(o.states.data.value||[]).length===0),{setCurrentRow:i,getSelectionRows:l,toggleRowSelection:u,clearSelection:c,clearFilter:d,toggleAllSelection:f,toggleRowExpansion:p,clearSort:m,sort:v}=yVe(o),{isHidden:g,renderExpanded:b,setDragVisible:_,isGroup:y,handleMouseLeave:S,handleHeaderFooterMousewheel:w,tableSize:E,emptyBlockStyle:T,handleFixedMousewheel:C,resizeProxyVisible:$,bodyWidth:x,resizeState:N,doLayout:I,tableBodyStyles:L,tableLayout:F,scrollbarViewStyle:B,tableInnerStyle:U,scrollbarStyle:P}=bVe(e,s,o,r),{scrollBarRef:O,scrollTo:H,setScrollLeft:q,setScrollTop:te}=SVe(),V=$r(I,50),Q=`${n.namespace.value}-table_${EVe++}`;r.tableId=Q,r.state={isGroup:y,resizeState:N,doLayout:I,debouncedUpdateLayout:V};const ge=z(()=>e.sumText||t("el.table.sumText")),ie=z(()=>e.emptyText||t("el.table.emptyText"));return{ns:n,layout:s,store:o,handleHeaderFooterMousewheel:w,handleMouseLeave:S,tableId:Q,tableSize:E,isHidden:g,isEmpty:a,renderExpanded:b,resizeProxyVisible:$,resizeState:N,isGroup:y,bodyWidth:x,tableBodyStyles:L,emptyBlockStyle:T,debouncedUpdateLayout:V,handleFixedMousewheel:C,setCurrentRow:i,getSelectionRows:l,toggleRowSelection:u,clearSelection:c,clearFilter:d,toggleAllSelection:f,toggleRowExpansion:p,clearSort:m,doLayout:I,sort:v,t,setDragVisible:_,context:r,computedSumText:ge,computedEmptyText:ie,tableLayout:F,scrollbarViewStyle:B,tableInnerStyle:U,scrollbarStyle:P,scrollBarRef:O,scrollTo:H,setScrollLeft:q,setScrollTop:te}}}),kVe=["data-prefix"],TVe={ref:"hiddenColumns",class:"hidden-columns"};function $Ve(e,t,n,r,o,s){const a=rt("hColgroup"),i=rt("table-header"),l=rt("table-body"),u=rt("el-scrollbar"),c=rt("table-footer"),d=Za("mousewheel");return k(),D("div",{ref:"tableWrapper",class:W([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:(e.store.states.data.value||[]).length!==0&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:Je(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:t[0]||(t[0]=f=>e.handleMouseLeave())},[R("div",{class:W(e.ns.e("inner-wrapper")),style:Je(e.tableInnerStyle)},[R("div",TVe,[Pe(e.$slots,"default")],512),e.showHeader&&e.tableLayout==="fixed"?mt((k(),D("div",{key:0,ref:"headerWrapper",class:W(e.ns.e("header-wrapper"))},[R("table",{ref:"tableHeader",class:W(e.ns.e("header")),style:Je(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[me(a,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),me(i,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])],6)],2)),[[d,e.handleHeaderFooterMousewheel]]):Ae("v-if",!0),R("div",{ref:"bodyWrapper",class:W(e.ns.e("body-wrapper"))},[me(u,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn},{default:be(()=>[R("table",{ref:"tableBody",class:W(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:Je({width:e.bodyWidth,tableLayout:e.tableLayout})},[me(a,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&e.tableLayout==="auto"?(k(),Me(i,{key:0,ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])):Ae("v-if",!0),me(l,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","row-style","store","stripe"])],6),e.isEmpty?(k(),D("div",{key:0,ref:"emptyBlock",style:Je(e.emptyBlockStyle),class:W(e.ns.e("empty-block"))},[R("span",{class:W(e.ns.e("empty-text"))},[Pe(e.$slots,"empty",{},()=>[Ot(ze(e.computedEmptyText),1)])],2)],6)):Ae("v-if",!0),e.$slots.append?(k(),D("div",{key:1,ref:"appendWrapper",class:W(e.ns.e("append-wrapper"))},[Pe(e.$slots,"append")],2)):Ae("v-if",!0)]),_:3},8,["view-style","wrap-style","always"])],2),e.showSummary?mt((k(),D("div",{key:1,ref:"footerWrapper",class:W(e.ns.e("footer-wrapper"))},[me(c,{border:e.border,"default-sort":e.defaultSort,store:e.store,style:Je(e.tableBodyStyles),"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","style","sum-text","summary-method"])],2)),[[zt,!e.isEmpty],[d,e.handleHeaderFooterMousewheel]]):Ae("v-if",!0),e.border||e.isGroup?(k(),D("div",{key:2,class:W(e.ns.e("border-left-patch"))},null,2)):Ae("v-if",!0)],6),mt(R("div",{ref:"resizeProxy",class:W(e.ns.e("column-resize-proxy"))},null,2),[[zt,e.resizeProxyVisible]])],46,kVe)}var xVe=Fe(CVe,[["render",$Ve],["__file","/home/runner/work/element-plus/element-plus/packages/components/table/src/table.vue"]]);const IVe={selection:"table-column--selection",expand:"table__expand-column"},AVe={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},MVe=e=>IVe[e]||"",OVe={selection:{renderHeader({store:e}){function t(){return e.states.data.value&&e.states.data.value.length===0}return tt(Co,{disabled:t(),size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":e.toggleAllSelection,modelValue:e.states.isAllSelected.value})},renderCell({row:e,column:t,store:n,$index:r}){return tt(Co,{disabled:t.selectable?!t.selectable.call(null,e,r):!1,size:n.states.tableSize.value,onChange:()=>{n.commit("rowSelectedChanged",e)},onClick:o=>o.stopPropagation(),modelValue:n.isSelected(e)})},sortable:!1,resizable:!1},index:{renderHeader({column:e}){return e.label||"#"},renderCell({column:e,$index:t}){let n=t+1;const r=e.index;return typeof r=="number"?n=t+r:typeof r=="function"&&(n=r(t)),tt("div",{},[n])},sortable:!1},expand:{renderHeader({column:e}){return e.label||""},renderCell({row:e,store:t,expanded:n}){const{ns:r}=t,o=[r.e("expand-icon")];return n&&o.push(r.em("expand-icon","expanded")),tt("div",{class:o,onClick:function(a){a.stopPropagation(),t.toggleRowExpansion(e)}},{default:()=>[tt(et,null,{default:()=>[tt(vr)]})]})},sortable:!1,resizable:!1}};function RVe({row:e,column:t,$index:n}){var r;const o=t.property,s=o&&yp(e,o).value;return t&&t.formatter?t.formatter(e,t,s,n):((r=s==null?void 0:s.toString)==null?void 0:r.call(s))||""}function PVe({row:e,treeNode:t,store:n},r=!1){const{ns:o}=n;if(!t)return r?[tt("span",{class:o.e("placeholder")})]:null;const s=[],a=function(i){i.stopPropagation(),!t.loading&&n.loadOrToggle(e)};if(t.indent&&s.push(tt("span",{class:o.e("indent"),style:{"padding-left":`${t.indent}px`}})),typeof t.expanded=="boolean"&&!t.noLazyChildren){const i=[o.e("expand-icon"),t.expanded?o.em("expand-icon","expanded"):""];let l=vr;t.loading&&(l=pa),s.push(tt("div",{class:i,onClick:a},{default:()=>[tt(et,{class:{[o.is("loading")]:t.loading}},{default:()=>[tt(l)]})]}))}else s.push(tt("span",{class:o.e("placeholder")}));return s}function y5(e,t){return e.reduce((n,r)=>(n[r]=r,n),t)}function NVe(e,t){const n=gt();return{registerComplexWatchers:()=>{const s=["fixed"],a={realWidth:"width",realMinWidth:"minWidth"},i=y5(s,a);Object.keys(i).forEach(l=>{const u=a[l];Bt(t,u)&&Be(()=>t[u],c=>{let d=c;u==="width"&&l==="realWidth"&&(d=Fb(c)),u==="minWidth"&&l==="realMinWidth"&&(d=hM(c)),n.columnConfig.value[u]=d,n.columnConfig.value[l]=d;const f=u==="fixed";e.value.store.scheduleLayout(f)})})},registerNormalWatchers:()=>{const s=["label","filters","filterMultiple","sortable","index","formatter","className","labelClassName","showOverflowTooltip"],a={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},i=y5(s,a);Object.keys(i).forEach(l=>{const u=a[l];Bt(t,u)&&Be(()=>t[u],c=>{n.columnConfig.value[l]=c})})}}}function LVe(e,t,n){const r=gt(),o=ee(""),s=ee(!1),a=ee(),i=ee(),l=De("table");Cr(()=>{a.value=e.align?`is-${e.align}`:null,a.value}),Cr(()=>{i.value=e.headerAlign?`is-${e.headerAlign}`:a.value,i.value});const u=z(()=>{let y=r.vnode.vParent||r.parent;for(;y&&!y.tableId&&!y.columnId;)y=y.vnode.vParent||y.parent;return y}),c=z(()=>{const{store:y}=r.parent;if(!y)return!1;const{treeData:S}=y.states,w=S.value;return w&&Object.keys(w).length>0}),d=ee(Fb(e.width)),f=ee(hM(e.minWidth)),p=y=>(d.value&&(y.width=d.value),f.value&&(y.minWidth=f.value),!d.value&&f.value&&(y.width=void 0),y.minWidth||(y.minWidth=80),y.realWidth=Number(y.width===void 0?y.minWidth:y.width),y),m=y=>{const S=y.type,w=OVe[S]||{};Object.keys(w).forEach(T=>{const C=w[T];T!=="className"&&C!==void 0&&(y[T]=C)});const E=MVe(S);if(E){const T=`${h(l.namespace)}-${E}`;y.className=y.className?`${y.className} ${T}`:T}return y},v=y=>{Array.isArray(y)?y.forEach(w=>S(w)):S(y);function S(w){var E;((E=w==null?void 0:w.type)==null?void 0:E.name)==="ElTableColumn"&&(w.vParent=r)}};return{columnId:o,realAlign:a,isSubColumn:s,realHeaderAlign:i,columnOrTableParent:u,setColumnWidth:p,setColumnForcedProps:m,setColumnRenders:y=>{e.renderHeader||y.type!=="selection"&&(y.renderHeader=w=>{r.columnConfig.value.label;const E=t.header;return E?E(w):y.label});let S=y.renderCell;return y.type==="expand"?(y.renderCell=w=>tt("div",{class:"cell"},[S(w)]),n.value.renderExpanded=w=>t.default?t.default(w):t.default):(S=S||RVe,y.renderCell=w=>{let E=null;if(t.default){const x=t.default(w);E=x.some(N=>N.type!==Rn)?x:S(w)}else E=S(w);const T=c.value&&w.cellIndex===0&&w.column.type!=="selection",C=PVe(w,T),$={class:"cell",style:{}};return y.showOverflowTooltip&&($.class=`${$.class} ${h(l.namespace)}-tooltip`,$.style={width:`${(w.column.realWidth||Number(w.column.width))-1}px`}),v(E),tt("div",$,[C,E])}),y},getPropsData:(...y)=>y.reduce((S,w)=>(Array.isArray(w)&&w.forEach(E=>{S[E]=e[E]}),S),{}),getColumnElIndex:(y,S)=>Array.prototype.indexOf.call(y,S)}}var BVe={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showTooltipWhenOverflow:Boolean,showOverflowTooltip:Boolean,fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(t=>["ascending","descending",null].includes(t))}};let DVe=1;var SM=Ce({name:"ElTableColumn",components:{ElCheckbox:Co},props:BVe,setup(e,{slots:t}){const n=gt(),r=ee({}),o=z(()=>{let _=n.parent;for(;_&&!_.tableId;)_=_.parent;return _}),{registerNormalWatchers:s,registerComplexWatchers:a}=NVe(o,e),{columnId:i,isSubColumn:l,realHeaderAlign:u,columnOrTableParent:c,setColumnWidth:d,setColumnForcedProps:f,setColumnRenders:p,getPropsData:m,getColumnElIndex:v,realAlign:g}=LVe(e,t,o),b=c.value;i.value=`${b.tableId||b.columnId}_column_${DVe++}`,Wd(()=>{l.value=o.value!==b;const _=e.type||"default",y=e.sortable===""?!0:e.sortable,S={...AVe[_],id:i.value,type:_,property:e.prop||e.property,align:g,headerAlign:u,showOverflowTooltip:e.showOverflowTooltip||e.showTooltipWhenOverflow,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:y,index:e.index,rawColumnKey:n.vnode.key};let $=m(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement"]);$=zHe(S,$),$=HHe(p,d,f)($),r.value=$,s(),a()}),vt(()=>{var _;const y=c.value,S=l.value?y.vnode.el.children:(_=y.refs.hiddenColumns)==null?void 0:_.children,w=()=>v(S||[],n.vnode.el);r.value.getColumnIndex=w,w()>-1&&o.value.store.commit("insertColumn",r.value,l.value?y.columnConfig.value:null)}),fn(()=>{o.value.store.commit("removeColumn",r.value,l.value?b.columnConfig.value:null)}),n.columnId=i.value,n.columnConfig=r},render(){var e,t,n;try{const r=(t=(e=this.$slots).default)==null?void 0:t.call(e,{row:{},column:{},$index:-1}),o=[];if(Array.isArray(r))for(const a of r)((n=a.type)==null?void 0:n.name)==="ElTableColumn"||a.shapeFlag&2?o.push(a):a.type===Ze&&Array.isArray(a.children)&&a.children.forEach(i=>{(i==null?void 0:i.patchFlag)!==1024&&!ft(i==null?void 0:i.children)&&o.push(i)});return tt("div",o)}catch{return tt("div",[])}}});const zVe=St(xVe,{TableColumn:SM}),FVe=En(SM);var Bd=(e=>(e.ASC="asc",e.DESC="desc",e))(Bd||{}),Dd=(e=>(e.CENTER="center",e.RIGHT="right",e))(Dd||{}),EM=(e=>(e.LEFT="left",e.RIGHT="right",e))(EM||{});const q1={asc:"desc",desc:"asc"},zd=Symbol("placeholder"),HVe=(e,t,n)=>{var r;const o={flexGrow:0,flexShrink:0,...n?{}:{flexGrow:e.flexGrow||0,flexShrink:e.flexShrink||1}};n||(o.flexShrink=1);const s={...(r=e.style)!=null?r:{},...o,flexBasis:"auto",width:e.width};return t||(e.maxWidth&&(s.maxWidth=e.maxWidth),e.minWidth&&(s.minWidth=e.minWidth)),s};function VVe(e,t,n){const r=z(()=>h(t).filter(v=>!v.hidden)),o=z(()=>h(r).filter(v=>v.fixed==="left"||v.fixed===!0)),s=z(()=>h(r).filter(v=>v.fixed==="right")),a=z(()=>h(r).filter(v=>!v.fixed)),i=z(()=>{const v=[];return h(o).forEach(g=>{v.push({...g,placeholderSign:zd})}),h(a).forEach(g=>{v.push(g)}),h(s).forEach(g=>{v.push({...g,placeholderSign:zd})}),v}),l=z(()=>h(o).length||h(s).length),u=z(()=>h(t).reduce((g,b)=>(g[b.key]=HVe(b,h(n),e.fixed),g),{})),c=z(()=>h(r).reduce((v,g)=>v+g.width,0)),d=v=>h(t).find(g=>g.key===v),f=v=>h(u)[v],p=(v,g)=>{v.width=g};function m(v){var g;const{key:b}=v.currentTarget.dataset;if(!b)return;const{sortState:_,sortBy:y}=e;let S=Bd.ASC;xt(_)?S=q1[_[b]]:S=q1[y.order],(g=e.onColumnSort)==null||g.call(e,{column:d(b),key:b,order:S})}return{columns:t,columnsStyles:u,columnsTotalWidth:c,fixedColumnsOnLeft:o,fixedColumnsOnRight:s,hasFixedColumns:l,mainColumns:i,normalColumns:a,visibleColumns:r,getColumn:d,getColumnStyle:f,updateColumnWidth:p,onColumnSorted:m}}const jVe=(e,{mainTableRef:t,leftTableRef:n,rightTableRef:r,onMaybeEndReached:o})=>{const s=ee({scrollLeft:0,scrollTop:0});function a(p){var m,v,g;const{scrollTop:b}=p;(m=t.value)==null||m.scrollTo(p),(v=n.value)==null||v.scrollToTop(b),(g=r.value)==null||g.scrollToTop(b)}function i(p){s.value=p,a(p)}function l(p){s.value.scrollTop=p,a(h(s))}function u(p){var m,v;s.value.scrollLeft=p,(v=(m=t.value)==null?void 0:m.scrollTo)==null||v.call(m,h(s))}function c(p){var m;i(p),(m=e.onScroll)==null||m.call(e,p)}function d({scrollTop:p}){const{scrollTop:m}=h(s);p!==m&&l(p)}function f(p,m="auto"){var v;(v=t.value)==null||v.scrollToRow(p,m)}return Be(()=>h(s).scrollTop,(p,m)=>{p>m&&o()}),{scrollPos:s,scrollTo:i,scrollToLeft:u,scrollToTop:l,scrollToRow:f,onScroll:c,onVerticalScroll:d}},UVe=(e,{mainTableRef:t,leftTableRef:n,rightTableRef:r,onMaybeEndReached:o})=>{const s=gt(),{emit:a}=s,i=rn(!1),l=rn(null),u=ee(e.defaultExpandedRowKeys||[]),c=ee(-1),d=rn(null),f=ee({}),p=ee({}),m=rn({}),v=rn({}),g=rn({}),b=z(()=>dt(e.estimatedRowHeight));function _($){var x;(x=e.onRowsRendered)==null||x.call(e,$),$.rowCacheEnd>h(c)&&(c.value=$.rowCacheEnd)}function y({hovered:$,rowKey:x}){l.value=$?x:null}function S({expanded:$,rowData:x,rowIndex:N,rowKey:I}){var L,F;const B=[...h(u)],U=B.indexOf(I);$?U===-1&&B.push(I):U>-1&&B.splice(U,1),u.value=B,a("update:expandedRowKeys",B),(L=e.onRowExpand)==null||L.call(e,{expanded:$,rowData:x,rowIndex:N,rowKey:I}),(F=e.onExpandedRowsChange)==null||F.call(e,B)}const w=$r(()=>{var $,x,N,I;i.value=!0,f.value={...h(f),...h(p)},E(h(d),!1),p.value={},d.value=null,($=t.value)==null||$.forceUpdate(),(x=n.value)==null||x.forceUpdate(),(N=r.value)==null||N.forceUpdate(),(I=s.proxy)==null||I.$forceUpdate(),i.value=!1},0);function E($,x=!1){h(b)&&[t,n,r].forEach(N=>{const I=h(N);I&&I.resetAfterRowIndex($,x)})}function T($,x,N){const I=h(d);(I===null||I>N)&&(d.value=N),p.value[$]=x}function C({rowKey:$,height:x,rowIndex:N},I){I?I===EM.RIGHT?g.value[$]=x:m.value[$]=x:v.value[$]=x;const L=Math.max(...[m,g,v].map(F=>F.value[$]||0));h(f)[$]!==L&&(T($,L,N),w())}return Be(c,()=>o()),{hoveringRowKey:l,expandedRowKeys:u,lastRenderedRowIndex:c,isDynamic:b,isResetting:i,rowHeights:f,resetAfterIndex:E,onRowExpanded:S,onRowHovered:y,onRowsRendered:_,onRowHeightChange:C}},WVe=(e,{expandedRowKeys:t,lastRenderedRowIndex:n,resetAfterIndex:r})=>{const o=ee({}),s=z(()=>{const i={},{data:l,rowKey:u}=e,c=h(t);if(!c||!c.length)return l;const d=[],f=new Set;c.forEach(m=>f.add(m));let p=l.slice();for(p.forEach(m=>i[m[u]]=0);p.length>0;){const m=p.shift();d.push(m),f.has(m[u])&&Array.isArray(m.children)&&m.children.length>0&&(p=[...m.children,...p],m.children.forEach(v=>i[v[u]]=i[m[u]]+1))}return o.value=i,d}),a=z(()=>{const{data:i,expandColumnKey:l}=e;return l?h(s):i});return Be(a,(i,l)=>{i!==l&&(n.value=-1,r(0,!0))}),{data:a,depthMap:o}},qVe=(e,t)=>e+t,Pp=e=>Ge(e)?e.reduce(qVe,0):e,ol=(e,t,n={})=>at(e)?e(t):e??n,Ga=e=>(["width","maxWidth","minWidth","height"].forEach(t=>{e[t]=Nn(e[t])}),e),CM=e=>sn(e)?t=>tt(e,t):e,KVe=(e,{columnsTotalWidth:t,data:n,fixedColumnsOnLeft:r,fixedColumnsOnRight:o})=>{const s=z(()=>{const{fixed:y,width:S,vScrollbarSize:w}=e,E=S-w;return y?Math.max(Math.round(h(t)),E):E}),a=z(()=>h(s)+(e.fixed?e.vScrollbarSize:0)),i=z(()=>{const{height:y=0,maxHeight:S=0,footerHeight:w,hScrollbarSize:E}=e;if(S>0){const T=h(m),C=h(l),x=h(p)+T+C+E;return Math.min(x,S-w)}return y-w}),l=z(()=>{const{rowHeight:y,estimatedRowHeight:S}=e,w=h(n);return dt(S)?w.length*S:w.length*y}),u=z(()=>{const{maxHeight:y}=e,S=h(i);if(dt(y)&&y>0)return S;const w=h(l)+h(p)+h(m);return Math.min(S,w)}),c=y=>y.width,d=z(()=>Pp(h(r).map(c))),f=z(()=>Pp(h(o).map(c))),p=z(()=>Pp(e.headerHeight)),m=z(()=>{var y;return(((y=e.fixedData)==null?void 0:y.length)||0)*e.rowHeight}),v=z(()=>h(i)-h(p)-h(m)),g=z(()=>{const{style:y={},height:S,width:w}=e;return Ga({...y,height:S,width:w})}),b=z(()=>Ga({height:e.footerHeight})),_=z(()=>({top:Nn(h(p)),bottom:Nn(e.footerHeight),width:Nn(e.width)}));return{bodyWidth:s,fixedTableHeight:u,mainTableHeight:i,leftTableWidth:d,rightTableWidth:f,headerWidth:a,rowsHeight:l,windowHeight:v,footerHeight:b,emptyStyle:_,rootStyle:g,headerHeight:p}},GVe=e=>{const t=ee(),n=ee(0),r=ee(0);let o;return vt(()=>{o=gr(t,([s])=>{const{width:a,height:i}=s.contentRect,{paddingLeft:l,paddingRight:u,paddingTop:c,paddingBottom:d}=getComputedStyle(s.target),f=Number.parseInt(l)||0,p=Number.parseInt(u)||0,m=Number.parseInt(c)||0,v=Number.parseInt(d)||0;n.value=a-f-p,r.value=i-m-v}).stop}),fn(()=>{o==null||o()}),Be([n,r],([s,a])=>{var i;(i=e.onResize)==null||i.call(e,{width:s,height:a})}),{sizer:t,width:n,height:r}};function YVe(e){const t=ee(),n=ee(),r=ee(),{columns:o,columnsStyles:s,columnsTotalWidth:a,fixedColumnsOnLeft:i,fixedColumnsOnRight:l,hasFixedColumns:u,mainColumns:c,onColumnSorted:d}=VVe(e,gn(e,"columns"),gn(e,"fixed")),{scrollTo:f,scrollToLeft:p,scrollToTop:m,scrollToRow:v,onScroll:g,onVerticalScroll:b,scrollPos:_}=jVe(e,{mainTableRef:t,leftTableRef:n,rightTableRef:r,onMaybeEndReached:J}),{expandedRowKeys:y,hoveringRowKey:S,lastRenderedRowIndex:w,isDynamic:E,isResetting:T,rowHeights:C,resetAfterIndex:$,onRowExpanded:x,onRowHeightChange:N,onRowHovered:I,onRowsRendered:L}=UVe(e,{mainTableRef:t,leftTableRef:n,rightTableRef:r,onMaybeEndReached:J}),{data:F,depthMap:B}=WVe(e,{expandedRowKeys:y,lastRenderedRowIndex:w,resetAfterIndex:$}),{bodyWidth:U,fixedTableHeight:P,mainTableHeight:O,leftTableWidth:H,rightTableWidth:q,headerWidth:te,rowsHeight:V,windowHeight:Q,footerHeight:ge,emptyStyle:ie,rootStyle:ke,headerHeight:Y}=KVe(e,{columnsTotalWidth:a,data:F,fixedColumnsOnLeft:i,fixedColumnsOnRight:l}),K=rn(!1),se=ee(),ne=z(()=>{const ae=h(F).length===0;return Ge(e.fixedData)?e.fixedData.length===0&&ae:ae});function ve(ae){const{estimatedRowHeight:ce,rowHeight:oe,rowKey:he}=e;return ce?h(C)[h(F)[ae][he]]||ce:oe}function J(){const{onEndReached:ae}=e;if(!ae)return;const{scrollTop:ce}=h(_),oe=h(V),he=h(Q),le=oe-(ce+he)+e.hScrollbarSize;h(w)>=0&&oe===ce+h(O)-h(Y)&&ae(le)}return Be(()=>e.expandedRowKeys,ae=>y.value=ae,{deep:!0}),{columns:o,containerRef:se,mainTableRef:t,leftTableRef:n,rightTableRef:r,isDynamic:E,isResetting:T,isScrolling:K,hoveringRowKey:S,hasFixedColumns:u,columnsStyles:s,columnsTotalWidth:a,data:F,expandedRowKeys:y,depthMap:B,fixedColumnsOnLeft:i,fixedColumnsOnRight:l,mainColumns:c,bodyWidth:U,emptyStyle:ie,rootStyle:ke,headerWidth:te,footerHeight:ge,mainTableHeight:O,fixedTableHeight:P,leftTableWidth:H,rightTableWidth:q,showEmpty:ne,getRowHeight:ve,onColumnSorted:d,onRowHovered:I,onRowExpanded:x,onRowsRendered:L,onRowHeightChange:N,scrollTo:f,scrollToLeft:p,scrollToTop:m,scrollToRow:v,onScroll:g,onVerticalScroll:b}}const Ub=Symbol("tableV2"),kM=String,gf={type:Re(Array),required:!0},Wb={type:Re(Array)},TM={...Wb,required:!0},XVe=String,b5={type:Re(Array),default:()=>hn([])},ki={type:Number,required:!0},$M={type:Re([String,Number,Symbol]),default:"id"},w5={type:Re(Object)},Ri=He({class:String,columns:gf,columnsStyles:{type:Re(Object),required:!0},depth:Number,expandColumnKey:XVe,estimatedRowHeight:{...Ui.estimatedRowHeight,default:void 0},isScrolling:Boolean,onRowExpand:{type:Re(Function)},onRowHover:{type:Re(Function)},onRowHeightChange:{type:Re(Function)},rowData:{type:Re(Object),required:!0},rowEventHandlers:{type:Re(Object)},rowIndex:{type:Number,required:!0},rowKey:$M,style:{type:Re(Object)}}),Lv={type:Number,required:!0},qb=He({class:String,columns:gf,fixedHeaderData:{type:Re(Array)},headerData:{type:Re(Array),required:!0},headerHeight:{type:Re([Number,Array]),default:50},rowWidth:Lv,rowHeight:{type:Number,default:50},height:Lv,width:Lv}),Np=He({columns:gf,data:TM,fixedData:Wb,estimatedRowHeight:Ri.estimatedRowHeight,width:ki,height:ki,headerWidth:ki,headerHeight:qb.headerHeight,bodyWidth:ki,rowHeight:ki,cache:JA.cache,useIsScrolling:Boolean,scrollbarAlwaysOn:Ui.scrollbarAlwaysOn,scrollbarStartGap:Ui.scrollbarStartGap,scrollbarEndGap:Ui.scrollbarEndGap,class:kM,style:w5,containerStyle:w5,getRowHeight:{type:Re(Function),required:!0},rowKey:Ri.rowKey,onRowsRendered:{type:Re(Function)},onScroll:{type:Re(Function)}}),JVe=He({cache:Np.cache,estimatedRowHeight:Ri.estimatedRowHeight,rowKey:$M,headerClass:{type:Re([String,Function])},headerProps:{type:Re([Object,Function])},headerCellProps:{type:Re([Object,Function])},headerHeight:qb.headerHeight,footerHeight:{type:Number,default:0},rowClass:{type:Re([String,Function])},rowProps:{type:Re([Object,Function])},rowHeight:{type:Number,default:50},cellProps:{type:Re([Object,Function])},columns:gf,data:TM,dataGetter:{type:Re(Function)},fixedData:Wb,expandColumnKey:Ri.expandColumnKey,expandedRowKeys:b5,defaultExpandedRowKeys:b5,class:kM,fixed:Boolean,style:{type:Re(Object)},width:ki,height:ki,maxHeight:Number,useIsScrolling:Boolean,indentSize:{type:Number,default:12},iconSize:{type:Number,default:12},hScrollbarSize:Ui.hScrollbarSize,vScrollbarSize:Ui.vScrollbarSize,scrollbarAlwaysOn:eM.alwaysOn,sortBy:{type:Re(Object),default:()=>({})},sortState:{type:Re(Object),default:void 0},onColumnSort:{type:Re(Function)},onExpandedRowsChange:{type:Re(Function)},onEndReached:{type:Re(Function)},onRowExpand:Ri.onRowExpand,onScroll:Np.onScroll,onRowsRendered:Np.onRowsRendered,rowEventHandlers:Ri.rowEventHandlers}),Kb=(e,{slots:t})=>{var n;const{cellData:r,style:o}=e,s=((n=r==null?void 0:r.toString)==null?void 0:n.call(r))||"";return me("div",{class:e.class,title:s,style:o},[t.default?t.default(e):s])};Kb.displayName="ElTableV2Cell";Kb.inheritAttrs=!1;const Gb=(e,{slots:t})=>{var n,r;return t.default?t.default(e):me("div",{class:e.class,title:(n=e.column)==null?void 0:n.title},[(r=e.column)==null?void 0:r.title])};Gb.displayName="ElTableV2HeaderCell";Gb.inheritAttrs=!1;const QVe=He({class:String,columns:gf,columnsStyles:{type:Re(Object),required:!0},headerIndex:Number,style:{type:Re(Object)}}),ZVe=Ce({name:"ElTableV2HeaderRow",props:QVe,setup(e,{slots:t}){return()=>{const{columns:n,columnsStyles:r,headerIndex:o,style:s}=e;let a=n.map((i,l)=>t.cell({columns:n,column:i,columnIndex:l,headerIndex:o,style:r[i.key]}));return t.header&&(a=t.header({cells:a.map(i=>Ge(i)&&i.length===1?i[0]:i),columns:n,headerIndex:o})),me("div",{class:e.class,style:s},[a])}}}),eje="ElTableV2Header",tje=Ce({name:eje,props:qb,setup(e,{slots:t,expose:n}){const r=De("table-v2"),o=ee(),s=z(()=>Ga({width:e.width,height:e.height})),a=z(()=>Ga({width:e.rowWidth,height:e.height})),i=z(()=>bu(h(e.headerHeight))),l=d=>{const f=h(o);Xe(()=>{f!=null&&f.scroll&&f.scroll({left:d})})},u=()=>{const d=r.e("fixed-header-row"),{columns:f,fixedHeaderData:p,rowHeight:m}=e;return p==null?void 0:p.map((v,g)=>{var b;const _=Ga({height:m,width:"100%"});return(b=t.fixed)==null?void 0:b.call(t,{class:d,columns:f,rowData:v,rowIndex:-(g+1),style:_})})},c=()=>{const d=r.e("dynamic-header-row"),{columns:f}=e;return h(i).map((p,m)=>{var v;const g=Ga({width:"100%",height:p});return(v=t.dynamic)==null?void 0:v.call(t,{class:d,columns:f,headerIndex:m,style:g})})};return n({scrollToLeft:l}),()=>{if(!(e.height<=0))return me("div",{ref:o,class:e.class,style:h(s)},[me("div",{style:h(a),class:r.e("header")},[c(),u()])])}}}),nje=e=>{const{isScrolling:t}=Ye(Ub),n=ee(!1),r=ee(),o=z(()=>dt(e.estimatedRowHeight)&&e.rowIndex>=0),s=(l=!1)=>{const u=h(r);if(!u)return;const{columns:c,onRowHeightChange:d,rowKey:f,rowIndex:p,style:m}=e,{height:v}=u.getBoundingClientRect();n.value=!0,Xe(()=>{if(l||v!==Number.parseInt(m.height)){const g=c[0],b=(g==null?void 0:g.placeholderSign)===zd;d==null||d({rowKey:f,height:v,rowIndex:p},g&&!b&&g.fixed)}})},a=z(()=>{const{rowData:l,rowIndex:u,rowKey:c,onRowHover:d}=e,f=e.rowEventHandlers||{},p={};return Object.entries(f).forEach(([m,v])=>{at(v)&&(p[m]=g=>{v({event:g,rowData:l,rowIndex:u,rowKey:c})})}),d&&[{name:"onMouseleave",hovered:!1},{name:"onMouseenter",hovered:!0}].forEach(({name:m,hovered:v})=>{const g=p[m];p[m]=b=>{d({event:b,hovered:v,rowData:l,rowIndex:u,rowKey:c}),g==null||g(b)}}),p}),i=l=>{const{onRowExpand:u,rowData:c,rowIndex:d,rowKey:f}=e;u==null||u({expanded:l,rowData:c,rowIndex:d,rowKey:f})};return vt(()=>{h(o)&&s(!0)}),{isScrolling:t,measurable:o,measured:n,rowRef:r,eventHandlers:a,onExpand:i}},rje="ElTableV2TableRow",oje=Ce({name:rje,props:Ri,setup(e,{expose:t,slots:n,attrs:r}){const{eventHandlers:o,isScrolling:s,measurable:a,measured:i,rowRef:l,onExpand:u}=nje(e);return t({onExpand:u}),()=>{const{columns:c,columnsStyles:d,expandColumnKey:f,depth:p,rowData:m,rowIndex:v,style:g}=e;let b=c.map((_,y)=>{const S=Ge(m.children)&&m.children.length>0&&_.key===f;return n.cell({column:_,columns:c,columnIndex:y,depth:p,style:d[_.key],rowData:m,rowIndex:v,isScrolling:h(s),expandIconProps:S?{rowData:m,rowIndex:v,onExpand:u}:void 0})});if(n.row&&(b=n.row({cells:b.map(_=>Ge(_)&&_.length===1?_[0]:_),style:g,columns:c,depth:p,rowData:m,rowIndex:v,isScrolling:h(s)})),h(a)){const{height:_,...y}=g||{},S=h(i);return me("div",$t({ref:l,class:e.class,style:S?g:y},r,h(o)),[b])}return me("div",$t(r,{ref:l,class:e.class,style:g},h(o)),[b])}}}),sje=e=>{const{sortOrder:t}=e;return me(et,{size:14,class:e.class},{default:()=>[t===Bd.ASC?me(o7,null,null):me(r7,null,null)]})},aje=e=>{const{expanded:t,expandable:n,onExpand:r,style:o,size:s}=e,a={onClick:n?()=>r(!t):void 0,class:e.class};return me(et,$t(a,{size:s,style:o}),{default:()=>[me(vr,null,null)]})},ije="ElTableV2Grid",lje=e=>{const t=ee(),n=ee(),r=z(()=>{const{data:v,rowHeight:g,estimatedRowHeight:b}=e;if(!b)return v.length*g}),o=z(()=>{const{fixedData:v,rowHeight:g}=e;return((v==null?void 0:v.length)||0)*g}),s=z(()=>Pp(e.headerHeight)),a=z(()=>{const{height:v}=e;return Math.max(0,v-h(s)-h(o))}),i=z(()=>h(s)+h(o)>0),l=({data:v,rowIndex:g})=>v[g][e.rowKey];function u({rowCacheStart:v,rowCacheEnd:g,rowVisibleStart:b,rowVisibleEnd:_}){var y;(y=e.onRowsRendered)==null||y.call(e,{rowCacheStart:v,rowCacheEnd:g,rowVisibleStart:b,rowVisibleEnd:_})}function c(v,g){var b;(b=n.value)==null||b.resetAfterRowIndex(v,g)}function d(v,g){const b=h(t),_=h(n);!b||!_||(xt(v)?(b.scrollToLeft(v.scrollLeft),_.scrollTo(v)):(b.scrollToLeft(v),_.scrollTo({scrollLeft:v,scrollTop:g})))}function f(v){var g;(g=h(n))==null||g.scrollTo({scrollTop:v})}function p(v,g){var b;(b=h(n))==null||b.scrollToItem(v,1,g)}function m(){var v,g;(v=h(n))==null||v.$forceUpdate(),(g=h(t))==null||g.$forceUpdate()}return{bodyRef:n,forceUpdate:m,fixedRowHeight:o,gridHeight:a,hasHeader:i,headerHeight:s,headerRef:t,totalHeight:r,itemKey:l,onItemRendered:u,resetAfterRowIndex:c,scrollTo:d,scrollToTop:f,scrollToRow:p}},Yb=Ce({name:ije,props:Np,setup(e,{slots:t,expose:n}){const{ns:r}=Ye(Ub),{bodyRef:o,fixedRowHeight:s,gridHeight:a,hasHeader:i,headerRef:l,headerHeight:u,totalHeight:c,forceUpdate:d,itemKey:f,onItemRendered:p,resetAfterRowIndex:m,scrollTo:v,scrollToTop:g,scrollToRow:b}=lje(e);n({forceUpdate:d,totalHeight:c,scrollTo:v,scrollToTop:g,scrollToRow:b,resetAfterRowIndex:m});const _=()=>e.bodyWidth;return()=>{const{cache:y,columns:S,data:w,fixedData:E,useIsScrolling:T,scrollbarAlwaysOn:C,scrollbarEndGap:$,scrollbarStartGap:x,style:N,rowHeight:I,bodyWidth:L,estimatedRowHeight:F,headerWidth:B,height:U,width:P,getRowHeight:O,onScroll:H}=e,q=dt(F),te=q?zze:Nze,V=h(u);return me("div",{role:"table",class:[r.e("table"),e.class],style:N},[me(te,{ref:o,data:w,useIsScrolling:T,itemKey:f,columnCache:0,columnWidth:q?_:L,totalColumn:1,totalRow:w.length,rowCache:y,rowHeight:q?O:I,width:P,height:h(a),class:r.e("body"),scrollbarStartGap:x,scrollbarEndGap:$,scrollbarAlwaysOn:C,onScroll:H,onItemRendered:p,perfMode:!1},{default:Q=>{var ge;const ie=w[Q.rowIndex];return(ge=t.row)==null?void 0:ge.call(t,{...Q,columns:S,rowData:ie})}}),h(i)&&me(tje,{ref:l,class:r.e("header-wrapper"),columns:S,headerData:w,headerHeight:e.headerHeight,fixedHeaderData:E,rowWidth:B,rowHeight:I,width:P,height:Math.min(V+h(s),U)},{dynamic:t.header,fixed:t.row})])}}});function uje(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!sn(e)}const cje=(e,{slots:t})=>{const{mainTableRef:n,...r}=e;return me(Yb,$t({ref:n},r),uje(t)?t:{default:()=>[t]})};function dje(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!sn(e)}const fje=(e,{slots:t})=>{if(!e.columns.length)return;const{leftTableRef:n,...r}=e;return me(Yb,$t({ref:n},r),dje(t)?t:{default:()=>[t]})};function pje(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!sn(e)}const hje=(e,{slots:t})=>{if(!e.columns.length)return;const{rightTableRef:n,...r}=e;return me(Yb,$t({ref:n},r),pje(t)?t:{default:()=>[t]})};function mje(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!sn(e)}const vje=(e,{slots:t})=>{const{columns:n,columnsStyles:r,depthMap:o,expandColumnKey:s,expandedRowKeys:a,estimatedRowHeight:i,hasFixedColumns:l,hoveringRowKey:u,rowData:c,rowIndex:d,style:f,isScrolling:p,rowProps:m,rowClass:v,rowKey:g,rowEventHandlers:b,ns:_,onRowHovered:y,onRowExpanded:S}=e,w=ol(v,{columns:n,rowData:c,rowIndex:d},""),E=ol(m,{columns:n,rowData:c,rowIndex:d}),T=c[g],C=o[T]||0,$=!!s,x=d<0,N=[_.e("row"),w,{[_.e(`row-depth-${C}`)]:$&&d>=0,[_.is("expanded")]:$&&a.includes(T),[_.is("hovered")]:!p&&T===u,[_.is("fixed")]:!C&&x,[_.is("customized")]:!!t.row}],I=l?y:void 0,L={...E,columns:n,columnsStyles:r,class:N,depth:C,expandColumnKey:s,estimatedRowHeight:x?void 0:i,isScrolling:p,rowIndex:d,rowData:c,rowKey:T,rowEventHandlers:b,style:f};return me(oje,$t(L,{onRowHover:I,onRowExpand:S}),mje(t)?t:{default:()=>[t]})},K1=({columns:e,column:t,columnIndex:n,depth:r,expandIconProps:o,isScrolling:s,rowData:a,rowIndex:i,style:l,expandedRowKeys:u,ns:c,cellProps:d,expandColumnKey:f,indentSize:p,iconSize:m,rowKey:v},{slots:g})=>{const b=Ga(l);if(t.placeholderSign===zd)return me("div",{class:c.em("row-cell","placeholder"),style:b},null);const{cellRenderer:_,dataKey:y,dataGetter:S}=t,E=CM(_)||g.default||(U=>me(Kb,U,null)),T=at(S)?S({columns:e,column:t,columnIndex:n,rowData:a,rowIndex:i}):pn(a,y??""),C=ol(d,{cellData:T,columns:e,column:t,columnIndex:n,rowIndex:i,rowData:a}),$={class:c.e("cell-text"),columns:e,column:t,columnIndex:n,cellData:T,isScrolling:s,rowData:a,rowIndex:i},x=E($),N=[c.e("row-cell"),t.align===Dd.CENTER&&c.is("align-center"),t.align===Dd.RIGHT&&c.is("align-right")],I=i>=0&&t.key===f,L=i>=0&&u.includes(a[v]);let F;const B=`margin-inline-start: ${r*p}px;`;return I&&(xt(o)?F=me(aje,$t(o,{class:[c.e("expand-icon"),c.is("expanded",L)],size:m,expanded:L,style:B,expandable:!0}),null):F=me("div",{style:[B,`width: ${m}px; height: ${m}px;`].join(" ")},null)),me("div",$t({class:N,style:b},C),[F,x])};K1.inheritAttrs=!1;function gje(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!sn(e)}const _je=({columns:e,columnsStyles:t,headerIndex:n,style:r,headerClass:o,headerProps:s,ns:a},{slots:i})=>{const l={columns:e,headerIndex:n},u=[a.e("header-row"),ol(o,l,""),{[a.is("customized")]:!!i.header}],c={...ol(s,l),columnsStyles:t,class:u,columns:e,headerIndex:n,style:r};return me(ZVe,c,gje(i)?i:{default:()=>[i]})},S5=(e,{slots:t})=>{const{column:n,ns:r,style:o,onColumnSorted:s}=e,a=Ga(o);if(n.placeholderSign===zd)return me("div",{class:r.em("header-row-cell","placeholder"),style:a},null);const{headerCellRenderer:i,headerClass:l,sortable:u}=n,c={...e,class:r.e("header-cell-text")},f=(CM(i)||t.default||(S=>me(Gb,S,null)))(c),{sortBy:p,sortState:m,headerCellProps:v}=e;let g,b;if(m){const S=m[n.key];g=!!q1[S],b=g?S:Bd.ASC}else g=n.key===p.key,b=g?p.order:Bd.ASC;const _=[r.e("header-cell"),ol(l,e,""),n.align===Dd.CENTER&&r.is("align-center"),n.align===Dd.RIGHT&&r.is("align-right"),u&&r.is("sortable")],y={...ol(v,e),onClick:n.sortable?s:void 0,class:_,style:a,"data-key":n.key};return me("div",y,[f,u&&me(sje,{class:[r.e("sort-icon"),g&&r.is("sorting")],sortOrder:b},null)])},xM=(e,{slots:t})=>{var n;return me("div",{class:e.class,style:e.style},[(n=t.default)==null?void 0:n.call(t)])};xM.displayName="ElTableV2Footer";const IM=(e,{slots:t})=>me("div",{class:e.class,style:e.style},[t.default?t.default():me(NA,null,null)]);IM.displayName="ElTableV2Empty";const AM=(e,{slots:t})=>{var n;return me("div",{class:e.class,style:e.style},[(n=t.default)==null?void 0:n.call(t)])};AM.displayName="ElTableV2Overlay";function bc(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!sn(e)}const yje="ElTableV2",bje=Ce({name:yje,props:JVe,setup(e,{slots:t,expose:n}){const r=De("table-v2"),{columnsStyles:o,fixedColumnsOnLeft:s,fixedColumnsOnRight:a,mainColumns:i,mainTableHeight:l,fixedTableHeight:u,leftTableWidth:c,rightTableWidth:d,data:f,depthMap:p,expandedRowKeys:m,hasFixedColumns:v,hoveringRowKey:g,mainTableRef:b,leftTableRef:_,rightTableRef:y,isDynamic:S,isResetting:w,isScrolling:E,bodyWidth:T,emptyStyle:C,rootStyle:$,headerWidth:x,footerHeight:N,showEmpty:I,scrollTo:L,scrollToLeft:F,scrollToTop:B,scrollToRow:U,getRowHeight:P,onColumnSorted:O,onRowHeightChange:H,onRowHovered:q,onRowExpanded:te,onRowsRendered:V,onScroll:Q,onVerticalScroll:ge}=YVe(e);return n({scrollTo:L,scrollToLeft:F,scrollToTop:B,scrollToRow:U}),Ct(Ub,{ns:r,isResetting:w,hoveringRowKey:g,isScrolling:E}),()=>{const{cache:ie,cellProps:ke,estimatedRowHeight:Y,expandColumnKey:K,fixedData:se,headerHeight:ne,headerClass:ve,headerProps:J,headerCellProps:ae,sortBy:ce,sortState:oe,rowHeight:he,rowClass:le,rowEventHandlers:Ee,rowKey:ye,rowProps:pe,scrollbarAlwaysOn:re,indentSize:fe,iconSize:Te,useIsScrolling:$e,vScrollbarSize:Le,width:A}=e,M=h(f),j={cache:ie,class:r.e("main"),columns:h(i),data:M,fixedData:se,estimatedRowHeight:Y,bodyWidth:h(T),headerHeight:ne,headerWidth:h(x),height:h(l),mainTableRef:b,rowKey:ye,rowHeight:he,scrollbarAlwaysOn:re,scrollbarStartGap:2,scrollbarEndGap:Le,useIsScrolling:$e,width:A,getRowHeight:P,onRowsRendered:V,onScroll:Q},G=h(c),ue=h(u),_e={cache:ie,class:r.e("left"),columns:h(s),data:M,estimatedRowHeight:Y,leftTableRef:_,rowHeight:he,bodyWidth:G,headerWidth:G,headerHeight:ne,height:ue,rowKey:ye,scrollbarAlwaysOn:re,scrollbarStartGap:2,scrollbarEndGap:Le,useIsScrolling:$e,width:G,getRowHeight:P,onScroll:ge},Z=h(d)+Le,de={cache:ie,class:r.e("right"),columns:h(a),data:M,estimatedRowHeight:Y,rightTableRef:y,rowHeight:he,bodyWidth:Z,headerWidth:Z,headerHeight:ne,height:ue,rowKey:ye,scrollbarAlwaysOn:re,scrollbarStartGap:2,scrollbarEndGap:Le,width:Z,style:`--${h(r.namespace)}-table-scrollbar-size: ${Le}px`,useIsScrolling:$e,getRowHeight:P,onScroll:ge},Oe=h(o),qe={ns:r,depthMap:h(p),columnsStyles:Oe,expandColumnKey:K,expandedRowKeys:h(m),estimatedRowHeight:Y,hasFixedColumns:h(v),hoveringRowKey:h(g),rowProps:pe,rowClass:le,rowKey:ye,rowEventHandlers:Ee,onRowHovered:q,onRowExpanded:te,onRowHeightChange:H},Qe={cellProps:ke,expandColumnKey:K,indentSize:fe,iconSize:Te,rowKey:ye,expandedRowKeys:h(m),ns:r},ht={ns:r,headerClass:ve,headerProps:J,columnsStyles:Oe},jt={ns:r,sortBy:ce,sortState:oe,headerCellProps:ae,onColumnSorted:O},It={row:Ve=>me(vje,$t(Ve,qe),{row:t.row,cell:st=>{let _t;return t.cell?me(K1,$t(st,Qe,{style:Oe[st.column.key]}),bc(_t=t.cell(st))?_t:{default:()=>[_t]}):me(K1,$t(st,Qe,{style:Oe[st.column.key]}),null)}}),header:Ve=>me(_je,$t(Ve,ht),{header:t.header,cell:st=>{let _t;return t["header-cell"]?me(S5,$t(st,jt,{style:Oe[st.column.key]}),bc(_t=t["header-cell"](st))?_t:{default:()=>[_t]}):me(S5,$t(st,jt,{style:Oe[st.column.key]}),null)}})},lt=[e.class,r.b(),r.e("root"),{[r.is("dynamic")]:h(S)}],Ne={class:r.e("footer"),style:h(N)};return me("div",{class:lt,style:h($)},[me(cje,j,bc(It)?It:{default:()=>[It]}),me(fje,_e,bc(It)?It:{default:()=>[It]}),me(hje,de,bc(It)?It:{default:()=>[It]}),t.footer&&me(xM,Ne,{default:t.footer}),h(I)&&me(IM,{class:r.e("empty"),style:h(C)},{default:t.empty}),t.overlay&&me(AM,{class:r.e("overlay")},{default:t.overlay})])}}}),wje=He({disableWidth:Boolean,disableHeight:Boolean,onResize:{type:Re(Function)}}),Sje=Ce({name:"ElAutoResizer",props:wje,setup(e,{slots:t}){const n=De("auto-resizer"),{height:r,width:o,sizer:s}=GVe(e),a={width:"100%",height:"100%"};return()=>{var i;return me("div",{ref:s,class:n.b(),style:a},[(i=t.default)==null?void 0:i.call(t,{height:r.value,width:o.value})])}}}),Eje=St(bje),Cje=St(Sje),kje=He({tabs:{type:Re(Array),default:()=>hn([])}}),MM="ElTabBar",Tje=Ce({name:MM}),$je=Ce({...Tje,props:kje,setup(e,{expose:t}){const n=e,r=gt(),o=Ye(am);o||zn(MM,"");const s=De("tabs"),a=ee(),i=ee(),l=()=>{let c=0,d=0;const f=["top","bottom"].includes(o.props.tabPosition)?"width":"height",p=f==="width"?"x":"y",m=p==="x"?"left":"top";return n.tabs.every(v=>{var g,b;const _=(b=(g=r.parent)==null?void 0:g.refs)==null?void 0:b[`tab-${v.uid}`];if(!_)return!1;if(!v.active)return!0;c=_[`offset${ts(m)}`],d=_[`client${ts(f)}`];const y=window.getComputedStyle(_);return f==="width"&&(n.tabs.length>1&&(d-=Number.parseFloat(y.paddingLeft)+Number.parseFloat(y.paddingRight)),c+=Number.parseFloat(y.paddingLeft)),!1}),{[f]:`${d}px`,transform:`translate${ts(p)}(${c}px)`}},u=()=>i.value=l();return Be(()=>n.tabs,async()=>{await Xe(),u()},{immediate:!0}),gr(a,()=>u()),t({ref:a,update:u}),(c,d)=>(k(),D("div",{ref_key:"barRef",ref:a,class:W([h(s).e("active-bar"),h(s).is(h(o).props.tabPosition)]),style:Je(i.value)},null,6))}});var xje=Fe($je,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tabs/src/tab-bar.vue"]]);const Ije=He({panes:{type:Re(Array),default:()=>hn([])},currentName:{type:[String,Number],default:""},editable:Boolean,type:{type:String,values:["card","border-card",""],default:""},stretch:Boolean}),Aje={tabClick:(e,t,n)=>n instanceof Event,tabRemove:(e,t)=>t instanceof Event},E5="ElTabNav",Mje=Ce({name:E5,props:Ije,emits:Aje,setup(e,{expose:t,emit:n}){const r=gt(),o=Ye(am);o||zn(E5,"");const s=De("tabs"),a=HQ(),i=JQ(),l=ee(),u=ee(),c=ee(),d=ee(!1),f=ee(0),p=ee(!1),m=ee(!0),v=z(()=>["top","bottom"].includes(o.props.tabPosition)?"width":"height"),g=z(()=>({transform:`translate${v.value==="width"?"X":"Y"}(-${f.value}px)`})),b=()=>{if(!l.value)return;const C=l.value[`offset${ts(v.value)}`],$=f.value;if(!$)return;const x=$>C?$-C:0;f.value=x},_=()=>{if(!l.value||!u.value)return;const C=u.value[`offset${ts(v.value)}`],$=l.value[`offset${ts(v.value)}`],x=f.value;if(C-x<=$)return;const N=C-x>$*2?x+$:C-$;f.value=N},y=async()=>{const C=u.value;if(!d.value||!c.value||!l.value||!C)return;await Xe();const $=c.value.querySelector(".is-active");if(!$)return;const x=l.value,N=["top","bottom"].includes(o.props.tabPosition),I=$.getBoundingClientRect(),L=x.getBoundingClientRect(),F=N?C.offsetWidth-L.width:C.offsetHeight-L.height,B=f.value;let U=B;N?(I.leftL.right&&(U=B+I.right-L.right)):(I.topL.bottom&&(U=B+(I.bottom-L.bottom))),U=Math.max(U,0),f.value=Math.min(U,F)},S=()=>{if(!u.value||!l.value)return;const C=u.value[`offset${ts(v.value)}`],$=l.value[`offset${ts(v.value)}`],x=f.value;if($0&&(f.value=0)},w=C=>{const $=C.code,{up:x,down:N,left:I,right:L}=ot;if(![x,N,I,L].includes($))return;const F=Array.from(C.currentTarget.querySelectorAll("[role=tab]:not(.is-disabled)")),B=F.indexOf(C.target);let U;$===I||$===x?B===0?U=F.length-1:U=B-1:B{m.value&&(p.value=!0)},T=()=>p.value=!1;return Be(a,C=>{C==="hidden"?m.value=!1:C==="visible"&&setTimeout(()=>m.value=!0,50)}),Be(i,C=>{C?setTimeout(()=>m.value=!0,50):m.value=!1}),gr(c,S),vt(()=>setTimeout(()=>y(),0)),Uo(()=>S()),t({scrollToActiveTab:y,removeFocus:T}),Be(()=>e.panes,()=>r.update(),{flush:"post"}),()=>{const C=d.value?[me("span",{class:[s.e("nav-prev"),s.is("disabled",!d.value.prev)],onClick:b},[me(et,null,{default:()=>[me(ea,null,null)]})]),me("span",{class:[s.e("nav-next"),s.is("disabled",!d.value.next)],onClick:_},[me(et,null,{default:()=>[me(vr,null,null)]})])]:null,$=e.panes.map((x,N)=>{var I,L,F,B;const U=x.uid,P=x.props.disabled,O=(L=(I=x.props.name)!=null?I:x.index)!=null?L:`${N}`,H=!P&&(x.isClosable||e.editable);x.index=`${N}`;const q=H?me(et,{class:"is-icon-close",onClick:Q=>n("tabRemove",x,Q)},{default:()=>[me(wo,null,null)]}):null,te=((B=(F=x.slots).label)==null?void 0:B.call(F))||x.props.label,V=!P&&x.active?0:-1;return me("div",{ref:`tab-${U}`,class:[s.e("item"),s.is(o.props.tabPosition),s.is("active",x.active),s.is("disabled",P),s.is("closable",H),s.is("focus",p.value)],id:`tab-${O}`,key:`tab-${U}`,"aria-controls":`pane-${O}`,role:"tab","aria-selected":x.active,tabindex:V,onFocus:()=>E(),onBlur:()=>T(),onClick:Q=>{T(),n("tabClick",x,O,Q)},onKeydown:Q=>{H&&(Q.code===ot.delete||Q.code===ot.backspace)&&n("tabRemove",x,Q)}},[te,q])});return me("div",{ref:c,class:[s.e("nav-wrap"),s.is("scrollable",!!d.value),s.is(o.props.tabPosition)]},[C,me("div",{class:s.e("nav-scroll"),ref:l},[me("div",{class:[s.e("nav"),s.is(o.props.tabPosition),s.is("stretch",e.stretch&&["top","bottom"].includes(o.props.tabPosition))],ref:u,style:g.value,role:"tablist",onKeydown:w},[e.type?null:me(xje,{tabs:[...e.panes]},null),$])])])}}}),Oje=He({type:{type:String,values:["card","border-card",""],default:""},activeName:{type:[String,Number]},closable:Boolean,addable:Boolean,modelValue:{type:[String,Number]},editable:Boolean,tabPosition:{type:String,values:["top","right","bottom","left"],default:"top"},beforeLeave:{type:Re(Function),default:()=>!0},stretch:Boolean}),Bv=e=>ft(e)||dt(e),Rje={[Et]:e=>Bv(e),tabClick:(e,t)=>t instanceof Event,tabChange:e=>Bv(e),edit:(e,t)=>["remove","add"].includes(t),tabRemove:e=>Bv(e),tabAdd:()=>!0};var Pje=Ce({name:"ElTabs",props:Oje,emits:Rje,setup(e,{emit:t,slots:n,expose:r}){var o,s;const a=De("tabs"),{children:i,addChild:l,removeChild:u}=q7(gt(),"ElTabPane"),c=ee(),d=ee((s=(o=e.modelValue)!=null?o:e.activeName)!=null?s:"0"),f=b=>{d.value=b,t(Et,b),t("tabChange",b)},p=async b=>{var _,y,S;if(!(d.value===b||Gn(b)))try{await((_=e.beforeLeave)==null?void 0:_.call(e,b,d.value))!==!1&&(f(b),(S=(y=c.value)==null?void 0:y.removeFocus)==null||S.call(y))}catch{}},m=(b,_,y)=>{b.props.disabled||(p(_),t("tabClick",b,y))},v=(b,_)=>{b.props.disabled||Gn(b.props.name)||(_.stopPropagation(),t("edit",b.props.name,"remove"),t("tabRemove",b.props.name))},g=()=>{t("edit",void 0,"add"),t("tabAdd")};return ta({from:'"activeName"',replacement:'"model-value" or "v-model"',scope:"ElTabs",version:"2.3.0",ref:"https://element-plus.org/en-US/component/tabs.html#attributes",type:"Attribute"},z(()=>!!e.activeName)),Be(()=>e.activeName,b=>p(b)),Be(()=>e.modelValue,b=>p(b)),Be(d,async()=>{var b;await Xe(),(b=c.value)==null||b.scrollToActiveTab()}),Ct(am,{props:e,currentName:d,registerPane:l,unregisterPane:u}),r({currentName:d}),()=>{const b=e.editable||e.addable?me("span",{class:a.e("new-tab"),tabindex:"0",onClick:g,onKeydown:S=>{S.code===ot.enter&&g()}},[me(et,{class:a.is("icon-plus")},{default:()=>[me(Z4,null,null)]})]):null,_=me("div",{class:[a.e("header"),a.is(e.tabPosition)]},[b,me(Mje,{ref:c,currentName:d.value,editable:e.editable,type:e.type,panes:i.value,stretch:e.stretch,onTabClick:m,onTabRemove:v},null)]),y=me("div",{class:a.e("content")},[Pe(n,"default")]);return me("div",{class:[a.b(),a.m(e.tabPosition),{[a.m("card")]:e.type==="card",[a.m("border-card")]:e.type==="border-card"}]},[...e.tabPosition!=="bottom"?[_,y]:[y,_]])}}});const Nje=He({label:{type:String,default:""},name:{type:[String,Number]},closable:Boolean,disabled:Boolean,lazy:Boolean}),Lje=["id","aria-hidden","aria-labelledby"],OM="ElTabPane",Bje=Ce({name:OM}),Dje=Ce({...Bje,props:Nje,setup(e){const t=e,n=gt(),r=Wn(),o=Ye(am);o||zn(OM,"usage: ");const s=De("tab-pane"),a=ee(),i=z(()=>t.closable||o.props.closable),l=O8(()=>{var p;return o.currentName.value===((p=t.name)!=null?p:a.value)}),u=ee(l.value),c=z(()=>{var p;return(p=t.name)!=null?p:a.value}),d=O8(()=>!t.lazy||u.value||l.value);Be(l,p=>{p&&(u.value=!0)});const f=Ht({uid:n.uid,slots:r,props:t,paneName:c,active:l,index:a,isClosable:i});return vt(()=>{o.registerPane(f)}),ia(()=>{o.unregisterPane(f.uid)}),(p,m)=>h(d)?mt((k(),D("div",{key:0,id:`pane-${h(c)}`,class:W(h(s).b()),role:"tabpanel","aria-hidden":!h(l),"aria-labelledby":`tab-${h(c)}`},[Pe(p.$slots,"default")],10,Lje)),[[zt,h(l)]]):Ae("v-if",!0)}});var RM=Fe(Dje,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tabs/src/tab-pane.vue"]]);const zje=St(Pje,{TabPane:RM}),Fje=En(RM),Hje=He({format:{type:String,default:"HH:mm"},modelValue:String,disabled:Boolean,editable:{type:Boolean,default:!0},effect:{type:String,default:"light"},clearable:{type:Boolean,default:!0},size:Fr,placeholder:String,start:{type:String,default:"09:00"},end:{type:String,default:"18:00"},step:{type:String,default:"00:30"},minTime:String,maxTime:String,name:String,prefixIcon:{type:Re([String,Object]),default:()=>Q4},clearIcon:{type:Re([String,Object]),default:()=>fa}}),Ns=e=>{const t=(e||"").split(":");if(t.length>=2){let n=Number.parseInt(t[0],10);const r=Number.parseInt(t[1],10),o=e.toUpperCase();return o.includes("AM")&&n===12?n=0:o.includes("PM")&&n!==12&&(n+=12),{hours:n,minutes:r}}return null},Dv=(e,t)=>{const n=Ns(e);if(!n)return-1;const r=Ns(t);if(!r)return-1;const o=n.minutes+n.hours*60,s=r.minutes+r.hours*60;return o===s?0:o>s?1:-1},C5=e=>`${e}`.padStart(2,"0"),Ol=e=>`${C5(e.hours)}:${C5(e.minutes)}`,Vje=(e,t)=>{const n=Ns(e);if(!n)return"";const r=Ns(t);if(!r)return"";const o={hours:n.hours,minutes:n.minutes};return o.minutes+=r.minutes,o.hours+=r.hours,o.hours+=Math.floor(o.minutes/60),o.minutes=o.minutes%60,Ol(o)},jje=Ce({name:"ElTimeSelect"}),Uje=Ce({...jje,props:Hje,emits:["change","blur","focus","update:modelValue"],setup(e,{expose:t}){const n=e;wt.extend(Cb);const{Option:r}=rl,o=De("input"),s=ee(),a=jr(),i=z(()=>n.modelValue),l=z(()=>{const g=Ns(n.start);return g?Ol(g):null}),u=z(()=>{const g=Ns(n.end);return g?Ol(g):null}),c=z(()=>{const g=Ns(n.step);return g?Ol(g):null}),d=z(()=>{const g=Ns(n.minTime||"");return g?Ol(g):null}),f=z(()=>{const g=Ns(n.maxTime||"");return g?Ol(g):null}),p=z(()=>{const g=[];if(n.start&&n.end&&n.step){let b=l.value,_;for(;b&&u.value&&Dv(b,u.value)<=0;)_=wt(b,"HH:mm").format(n.format),g.push({value:_,disabled:Dv(b,d.value||"-1:-1")<=0||Dv(b,f.value||"100:100")>=0}),b=Vje(b,c.value)}return g});return t({blur:()=>{var g,b;(b=(g=s.value)==null?void 0:g.blur)==null||b.call(g)},focus:()=>{var g,b;(b=(g=s.value)==null?void 0:g.focus)==null||b.call(g)}}),(g,b)=>(k(),Me(h(rl),{ref_key:"select",ref:s,"model-value":h(i),disabled:h(a),clearable:g.clearable,"clear-icon":g.clearIcon,size:g.size,effect:g.effect,placeholder:g.placeholder,"default-first-option":"",filterable:g.editable,"onUpdate:modelValue":b[0]||(b[0]=_=>g.$emit("update:modelValue",_)),onChange:b[1]||(b[1]=_=>g.$emit("change",_)),onBlur:b[2]||(b[2]=_=>g.$emit("blur",_)),onFocus:b[3]||(b[3]=_=>g.$emit("focus",_))},{prefix:be(()=>[g.prefixIcon?(k(),Me(h(et),{key:0,class:W(h(o).e("prefix-icon"))},{default:be(()=>[(k(),Me(kt(g.prefixIcon)))]),_:1},8,["class"])):Ae("v-if",!0)]),default:be(()=>[(k(!0),D(Ze,null,At(h(p),_=>(k(),Me(h(r),{key:_.value,label:_.value,value:_.value,disabled:_.disabled},null,8,["label","value","disabled"]))),128))]),_:1},8,["model-value","disabled","clearable","clear-icon","size","effect","placeholder","filterable"]))}});var Lp=Fe(Uje,[["__file","/home/runner/work/element-plus/element-plus/packages/components/time-select/src/time-select.vue"]]);Lp.install=e=>{e.component(Lp.name,Lp)};const Wje=Lp,qje=Wje,Kje=Ce({name:"ElTimeline",setup(e,{slots:t}){const n=De("timeline");return Ct("timeline",t),()=>tt("ul",{class:[n.b()]},[Pe(t,"default")])}}),Gje=He({timestamp:{type:String,default:""},hideTimestamp:{type:Boolean,default:!1},center:{type:Boolean,default:!1},placement:{type:String,values:["top","bottom"],default:"bottom"},type:{type:String,values:["primary","success","warning","danger","info"],default:""},color:{type:String,default:""},size:{type:String,values:["normal","large"],default:"normal"},icon:{type:on},hollow:{type:Boolean,default:!1}}),Yje=Ce({name:"ElTimelineItem"}),Xje=Ce({...Yje,props:Gje,setup(e){const t=De("timeline-item");return(n,r)=>(k(),D("li",{class:W([h(t).b(),{[h(t).e("center")]:n.center}])},[R("div",{class:W(h(t).e("tail"))},null,2),n.$slots.dot?Ae("v-if",!0):(k(),D("div",{key:0,class:W([h(t).e("node"),h(t).em("node",n.size||""),h(t).em("node",n.type||""),h(t).is("hollow",n.hollow)]),style:Je({backgroundColor:n.color})},[n.icon?(k(),Me(h(et),{key:0,class:W(h(t).e("icon"))},{default:be(()=>[(k(),Me(kt(n.icon)))]),_:1},8,["class"])):Ae("v-if",!0)],6)),n.$slots.dot?(k(),D("div",{key:1,class:W(h(t).e("dot"))},[Pe(n.$slots,"dot")],2)):Ae("v-if",!0),R("div",{class:W(h(t).e("wrapper"))},[!n.hideTimestamp&&n.placement==="top"?(k(),D("div",{key:0,class:W([h(t).e("timestamp"),h(t).is("top")])},ze(n.timestamp),3)):Ae("v-if",!0),R("div",{class:W(h(t).e("content"))},[Pe(n.$slots,"default")],2),!n.hideTimestamp&&n.placement==="bottom"?(k(),D("div",{key:1,class:W([h(t).e("timestamp"),h(t).is("bottom")])},ze(n.timestamp),3)):Ae("v-if",!0)],2)],2))}});var PM=Fe(Xje,[["__file","/home/runner/work/element-plus/element-plus/packages/components/timeline/src/timeline-item.vue"]]);const Jje=St(Kje,{TimelineItem:PM}),Qje=En(PM),NM=He({nowrap:Boolean});var LM=(e=>(e.top="top",e.bottom="bottom",e.left="left",e.right="right",e))(LM||{});const Zje=Object.values(LM),Xb=He({width:{type:Number,default:10},height:{type:Number,default:10},style:{type:Re(Object),default:null}}),eUe=He({side:{type:Re(String),values:Zje,required:!0}}),tUe=["absolute","fixed"],nUe=["top-start","top-end","top","bottom-start","bottom-end","bottom","left-start","left-end","left","right-start","right-end","right"],Jb=He({ariaLabel:String,arrowPadding:{type:Re(Number),default:5},effect:{type:String,default:""},contentClass:String,placement:{type:Re(String),values:nUe,default:"bottom"},reference:{type:Re(Object),default:null},offset:{type:Number,default:8},strategy:{type:Re(String),values:tUe,default:"absolute"},showArrow:{type:Boolean,default:!1}}),Qb=He({delayDuration:{type:Number,default:300},defaultOpen:Boolean,open:{type:Boolean,default:void 0},onOpenChange:{type:Re(Function)},"onUpdate:open":{type:Re(Function)}}),Sl={type:Re(Function)},Zb=He({onBlur:Sl,onClick:Sl,onFocus:Sl,onMouseDown:Sl,onMouseEnter:Sl,onMouseLeave:Sl}),rUe=He({...Qb,...Xb,...Zb,...Jb,alwaysOn:Boolean,fullTransition:Boolean,transitionProps:{type:Re(Object),default:null},teleported:Boolean,to:{type:Re(String),default:"body"}}),oUe=Ce({name:"ElTooltipV2Root"}),sUe=Ce({...oUe,props:Qb,setup(e,{expose:t}){const n=e,r=ee(n.defaultOpen),o=ee(null),s=z({get:()=>eZ(n.open)?r.value:n.open,set:g=>{var b;r.value=g,(b=n["onUpdate:open"])==null||b.call(n,g)}}),a=z(()=>dt(n.delayDuration)&&n.delayDuration>0),{start:i,stop:l}=el(()=>{s.value=!0},z(()=>n.delayDuration),{immediate:!1}),u=De("tooltip-v2"),c=Fo(),d=()=>{l(),s.value=!0},f=()=>{h(a)?i():d()},p=d,m=()=>{l(),s.value=!1};return Be(s,g=>{var b;g&&(document.dispatchEvent(new CustomEvent(_v)),p()),(b=n.onOpenChange)==null||b.call(n,g)}),vt(()=>{document.addEventListener(_v,m)}),fn(()=>{l(),document.removeEventListener(_v,m)}),Ct(lm,{contentId:c,triggerRef:o,ns:u,onClose:m,onDelayOpen:f,onOpen:p}),t({onOpen:p,onClose:m}),(g,b)=>Pe(g.$slots,"default",{open:h(s)})}});var aUe=Fe(sUe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip-v2/src/root.vue"]]);const iUe=Ce({name:"ElTooltipV2Arrow"}),lUe=Ce({...iUe,props:{...Xb,...eUe},setup(e){const t=e,{ns:n}=Ye(lm),{arrowRef:r}=Ye(k7),o=z(()=>{const{style:s,width:a,height:i}=t,l=n.namespace.value;return{[`--${l}-tooltip-v2-arrow-width`]:`${a}px`,[`--${l}-tooltip-v2-arrow-height`]:`${i}px`,[`--${l}-tooltip-v2-arrow-border-width`]:`${a/2}px`,[`--${l}-tooltip-v2-arrow-cover-width`]:a/2-1,...s||{}}});return(s,a)=>(k(),D("span",{ref_key:"arrowRef",ref:r,style:Je(h(o)),class:W(h(n).e("arrow"))},null,6))}});var k5=Fe(lUe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip-v2/src/arrow.vue"]]);const uUe=He({style:{type:Re([String,Object,Array]),default:()=>({})}}),cUe=Ce({name:"ElVisuallyHidden"}),dUe=Ce({...cUe,props:uUe,setup(e){const t=e,n=z(()=>[t.style,{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}]);return(r,o)=>(k(),D("span",$t(r.$attrs,{style:h(n)}),[Pe(r.$slots,"default")],16))}});var fUe=Fe(dUe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/visual-hidden/src/visual-hidden.vue"]]);const pUe=["data-side"],hUe=Ce({name:"ElTooltipV2Content"}),mUe=Ce({...hUe,props:{...Jb,...NM},setup(e){const t=e,{triggerRef:n,contentId:r}=Ye(lm),o=ee(t.placement),s=ee(t.strategy),a=ee(null),{referenceRef:i,contentRef:l,middlewareData:u,x:c,y:d,update:f}=mke({placement:o,strategy:s,middleware:z(()=>{const y=[dke(t.offset)];return t.showArrow&&y.push(vke({arrowRef:a})),y})}),p=va().nextZIndex(),m=De("tooltip-v2"),v=z(()=>o.value.split("-")[0]),g=z(()=>({position:h(s),top:`${h(d)||0}px`,left:`${h(c)||0}px`,zIndex:p})),b=z(()=>{if(!t.showArrow)return{};const{arrow:y}=h(u);return{[`--${m.namespace.value}-tooltip-v2-arrow-x`]:`${y==null?void 0:y.x}px`||"",[`--${m.namespace.value}-tooltip-v2-arrow-y`]:`${y==null?void 0:y.y}px`||""}}),_=z(()=>[m.e("content"),m.is("dark",t.effect==="dark"),m.is(h(s)),t.contentClass]);return Be(a,()=>f()),Be(()=>t.placement,y=>o.value=y),vt(()=>{Be(()=>t.reference||n.value,y=>{i.value=y||void 0},{immediate:!0})}),Ct(k7,{arrowRef:a}),(y,S)=>(k(),D("div",{ref_key:"contentRef",ref:l,style:Je(h(g)),"data-tooltip-v2-root":""},[y.nowrap?Ae("v-if",!0):(k(),D("div",{key:0,"data-side":h(v),class:W(h(_))},[Pe(y.$slots,"default",{contentStyle:h(g),contentClass:h(_)}),me(h(fUe),{id:h(r),role:"tooltip"},{default:be(()=>[y.ariaLabel?(k(),D(Ze,{key:0},[Ot(ze(y.ariaLabel),1)],64)):Pe(y.$slots,"default",{key:1})]),_:3},8,["id"]),Pe(y.$slots,"arrow",{style:Je(h(b)),side:h(v)})],10,pUe))],4))}});var T5=Fe(mUe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip-v2/src/content.vue"]]);const vUe=He({setRef:{type:Re(Function),required:!0},onlyChild:Boolean});var gUe=Ce({props:vUe,setup(e,{slots:t}){const n=ee(),r=nm(n,o=>{o?e.setRef(o.nextElementSibling):e.setRef(null)});return()=>{var o;const[s]=((o=t.default)==null?void 0:o.call(t))||[],a=e.onlyChild?a9e(s.children):s.children;return me(Ze,{ref:r},[a])}}});const _Ue=Ce({name:"ElTooltipV2Trigger"}),yUe=Ce({..._Ue,props:{...NM,...Zb},setup(e){const t=e,{onClose:n,onOpen:r,onDelayOpen:o,triggerRef:s,contentId:a}=Ye(lm);let i=!1;const l=_=>{s.value=_},u=()=>{i=!1},c=Sn(t.onMouseEnter,o),d=Sn(t.onMouseLeave,n),f=Sn(t.onMouseDown,()=>{n(),i=!0,document.addEventListener("mouseup",u,{once:!0})}),p=Sn(t.onFocus,()=>{i||r()}),m=Sn(t.onBlur,n),v=Sn(t.onClick,_=>{_.detail===0&&n()}),g={blur:m,click:v,focus:p,mousedown:f,mouseenter:c,mouseleave:d},b=(_,y,S)=>{_&&Object.entries(y).forEach(([w,E])=>{_[S](w,E)})};return Be(s,(_,y)=>{b(_,g,"addEventListener"),b(y,g,"removeEventListener"),_&&_.setAttribute("aria-describedby",a.value)}),fn(()=>{b(s.value,g,"removeEventListener"),document.removeEventListener("mouseup",u)}),(_,y)=>_.nowrap?(k(),Me(h(gUe),{key:0,"set-ref":l,"only-child":""},{default:be(()=>[Pe(_.$slots,"default")]),_:3})):(k(),D("button",$t({key:1,ref_key:"triggerRef",ref:s},_.$attrs),[Pe(_.$slots,"default")],16))}});var bUe=Fe(yUe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip-v2/src/trigger.vue"]]);const wUe=Ce({name:"ElTooltipV2"}),SUe=Ce({...wUe,props:rUe,setup(e){const n=On(e),r=Ht(Ls(n,Object.keys(Xb))),o=Ht(Ls(n,Object.keys(Jb))),s=Ht(Ls(n,Object.keys(Qb))),a=Ht(Ls(n,Object.keys(Zb)));return(i,l)=>(k(),Me(aUe,Yr(Fu(s)),{default:be(({open:u})=>[me(bUe,$t(a,{nowrap:""}),{default:be(()=>[Pe(i.$slots,"trigger")]),_:3},16),(k(),Me(Du,{to:i.to,disabled:!i.teleported},[i.fullTransition?(k(),Me(xn,Yr($t({key:0},i.transitionProps)),{default:be(()=>[i.alwaysOn||u?(k(),Me(T5,Yr($t({key:0},o)),{arrow:be(({style:c,side:d})=>[i.showArrow?(k(),Me(k5,$t({key:0},r,{style:c,side:d}),null,16,["style","side"])):Ae("v-if",!0)]),default:be(()=>[Pe(i.$slots,"default")]),_:3},16)):Ae("v-if",!0)]),_:2},1040)):(k(),D(Ze,{key:1},[i.alwaysOn||u?(k(),Me(T5,Yr($t({key:0},o)),{arrow:be(({style:c,side:d})=>[i.showArrow?(k(),Me(k5,$t({key:0},r,{style:c,side:d}),null,16,["style","side"])):Ae("v-if",!0)]),default:be(()=>[Pe(i.$slots,"default")]),_:3},16)):Ae("v-if",!0)],64))],8,["to","disabled"]))]),_:3},16))}});var EUe=Fe(SUe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tooltip-v2/src/tooltip.vue"]]);const CUe=St(EUe),BM="left-check-change",DM="right-check-change",Rl=He({data:{type:Re(Array),default:()=>[]},titles:{type:Re(Array),default:()=>[]},buttonTexts:{type:Re(Array),default:()=>[]},filterPlaceholder:String,filterMethod:{type:Re(Function)},leftDefaultChecked:{type:Re(Array),default:()=>[]},rightDefaultChecked:{type:Re(Array),default:()=>[]},renderContent:{type:Re(Function)},modelValue:{type:Re(Array),default:()=>[]},format:{type:Re(Object),default:()=>({})},filterable:Boolean,props:{type:Re(Object),default:()=>hn({label:"label",key:"key",disabled:"disabled"})},targetOrder:{type:String,values:["original","push","unshift"],default:"original"},validateEvent:{type:Boolean,default:!0}}),G1=(e,t)=>[e,t].every(Ge)||Ge(e)&&Yn(t),kUe={[un]:(e,t,n)=>[e,n].every(Ge)&&["left","right"].includes(t),[Et]:e=>Ge(e),[BM]:G1,[DM]:G1},Y1="checked-change",TUe=He({data:Rl.data,optionRender:{type:Re(Function)},placeholder:String,title:String,filterable:Boolean,format:Rl.format,filterMethod:Rl.filterMethod,defaultChecked:Rl.leftDefaultChecked,props:Rl.props}),$Ue={[Y1]:G1},_f=e=>{const t={label:"label",key:"key",disabled:"disabled"};return z(()=>({...t,...e.props}))},xUe=(e,t,n)=>{const r=_f(e),o=z(()=>e.data.filter(c=>at(e.filterMethod)?e.filterMethod(t.query,c):String(c[r.value.label]||c[r.value.key]).toLowerCase().includes(t.query.toLowerCase()))),s=z(()=>o.value.filter(c=>!c[r.value.disabled])),a=z(()=>{const c=t.checked.length,d=e.data.length,{noChecked:f,hasChecked:p}=e.format;return f&&p?c>0?p.replace(/\${checked}/g,c.toString()).replace(/\${total}/g,d.toString()):f.replace(/\${total}/g,d.toString()):`${c}/${d}`}),i=z(()=>{const c=t.checked.length;return c>0&&c{const c=s.value.map(d=>d[r.value.key]);t.allChecked=c.length>0&&c.every(d=>t.checked.includes(d))},u=c=>{t.checked=c?s.value.map(d=>d[r.value.key]):[]};return Be(()=>t.checked,(c,d)=>{if(l(),t.checkChangeByUser){const f=c.concat(d).filter(p=>!c.includes(p)||!d.includes(p));n(Y1,c,f)}else n(Y1,c),t.checkChangeByUser=!0}),Be(s,()=>{l()}),Be(()=>e.data,()=>{const c=[],d=o.value.map(f=>f[r.value.key]);t.checked.forEach(f=>{d.includes(f)&&c.push(f)}),t.checkChangeByUser=!1,t.checked=c}),Be(()=>e.defaultChecked,(c,d)=>{if(d&&c.length===d.length&&c.every(m=>d.includes(m)))return;const f=[],p=s.value.map(m=>m[r.value.key]);c.forEach(m=>{p.includes(m)&&f.push(m)}),t.checkChangeByUser=!1,t.checked=f},{immediate:!0}),{filteredData:o,checkableData:s,checkedSummary:a,isIndeterminate:i,updateAllChecked:l,handleAllCheckedChange:u}},IUe=(e,t)=>({onSourceCheckedChange:(o,s)=>{e.leftChecked=o,s&&t(BM,o,s)},onTargetCheckedChange:(o,s)=>{e.rightChecked=o,s&&t(DM,o,s)}}),AUe=e=>{const t=_f(e),n=z(()=>e.data.reduce((s,a)=>(s[a[t.value.key]]=a)&&s,{})),r=z(()=>e.data.filter(s=>!e.modelValue.includes(s[t.value.key]))),o=z(()=>e.targetOrder==="original"?e.data.filter(s=>e.modelValue.includes(s[t.value.key])):e.modelValue.reduce((s,a)=>{const i=n.value[a];return i&&s.push(i),s},[]));return{sourceData:r,targetData:o}},MUe=(e,t,n)=>{const r=_f(e),o=(i,l,u)=>{n(Et,i),n(un,i,l,u)};return{addToLeft:()=>{const i=e.modelValue.slice();t.rightChecked.forEach(l=>{const u=i.indexOf(l);u>-1&&i.splice(u,1)}),o(i,"left",t.rightChecked)},addToRight:()=>{let i=e.modelValue.slice();const l=e.data.filter(u=>{const c=u[r.value.key];return t.leftChecked.includes(c)&&!e.modelValue.includes(c)}).map(u=>u[r.value.key]);i=e.targetOrder==="unshift"?l.concat(i):i.concat(l),e.targetOrder==="original"&&(i=e.data.filter(u=>i.includes(u[r.value.key])).map(u=>u[r.value.key])),o(i,"right",t.leftChecked)}}},OUe=Ce({name:"ElTransferPanel"}),RUe=Ce({...OUe,props:TUe,emits:$Ue,setup(e,{expose:t,emit:n}){const r=e,o=Wn(),s=({option:y})=>y,{t:a}=Vt(),i=De("transfer"),l=Ht({checked:[],allChecked:!1,query:"",checkChangeByUser:!0}),u=_f(r),{filteredData:c,checkedSummary:d,isIndeterminate:f,handleAllCheckedChange:p}=xUe(r,l,n),m=z(()=>!co(l.query)&&co(c.value)),v=z(()=>!co(o.default()[0].children)),{checked:g,allChecked:b,query:_}=On(l);return t({query:_}),(y,S)=>(k(),D("div",{class:W(h(i).b("panel"))},[R("p",{class:W(h(i).be("panel","header"))},[me(h(Co),{modelValue:h(b),"onUpdate:modelValue":S[0]||(S[0]=w=>qt(b)?b.value=w:null),indeterminate:h(f),"validate-event":!1,onChange:h(p)},{default:be(()=>[Ot(ze(y.title)+" ",1),R("span",null,ze(h(d)),1)]),_:1},8,["modelValue","indeterminate","onChange"])],2),R("div",{class:W([h(i).be("panel","body"),h(i).is("with-footer",h(v))])},[y.filterable?(k(),Me(h(mr),{key:0,modelValue:h(_),"onUpdate:modelValue":S[1]||(S[1]=w=>qt(_)?_.value=w:null),class:W(h(i).be("panel","filter")),size:"default",placeholder:y.placeholder,"prefix-icon":h(n7),clearable:"","validate-event":!1},null,8,["modelValue","class","placeholder","prefix-icon"])):Ae("v-if",!0),mt(me(h(YI),{modelValue:h(g),"onUpdate:modelValue":S[2]||(S[2]=w=>qt(g)?g.value=w:null),"validate-event":!1,class:W([h(i).is("filterable",y.filterable),h(i).be("panel","list")])},{default:be(()=>[(k(!0),D(Ze,null,At(h(c),w=>(k(),Me(h(Co),{key:w[h(u).key],class:W(h(i).be("panel","item")),label:w[h(u).key],disabled:w[h(u).disabled],"validate-event":!1},{default:be(()=>{var E;return[me(s,{option:(E=y.optionRender)==null?void 0:E.call(y,w)},null,8,["option"])]}),_:2},1032,["class","label","disabled"]))),128))]),_:1},8,["modelValue","class"]),[[zt,!h(m)&&!h(co)(y.data)]]),mt(R("p",{class:W(h(i).be("panel","empty"))},ze(h(m)?h(a)("el.transfer.noMatch"):h(a)("el.transfer.noData")),3),[[zt,h(m)||h(co)(y.data)]])],2),h(v)?(k(),D("p",{key:0,class:W(h(i).be("panel","footer"))},[Pe(y.$slots,"default")],2)):Ae("v-if",!0)],2))}});var $5=Fe(RUe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/transfer/src/transfer-panel.vue"]]);const PUe={key:0},NUe={key:0},LUe=Ce({name:"ElTransfer"}),BUe=Ce({...LUe,props:Rl,emits:kUe,setup(e,{expose:t,emit:n}){const r=e,o=Wn(),{t:s}=Vt(),a=De("transfer"),{formItem:i}=xr(),l=Ht({leftChecked:[],rightChecked:[]}),u=_f(r),{sourceData:c,targetData:d}=AUe(r),{onSourceCheckedChange:f,onTargetCheckedChange:p}=IUe(l,n),{addToLeft:m,addToRight:v}=MUe(r,l,n),g=ee(),b=ee(),_=C=>{switch(C){case"left":g.value.query="";break;case"right":b.value.query="";break}},y=z(()=>r.buttonTexts.length===2),S=z(()=>r.titles[0]||s("el.transfer.titles.0")),w=z(()=>r.titles[1]||s("el.transfer.titles.1")),E=z(()=>r.filterPlaceholder||s("el.transfer.filterPlaceholder"));Be(()=>r.modelValue,()=>{var C;r.validateEvent&&((C=i==null?void 0:i.validate)==null||C.call(i,"change").catch($=>void 0))});const T=z(()=>C=>r.renderContent?r.renderContent(tt,C):o.default?o.default({option:C}):tt("span",C[u.value.label]||C[u.value.key]));return t({clearQuery:_,leftPanel:g,rightPanel:b}),(C,$)=>(k(),D("div",{class:W(h(a).b())},[me($5,{ref_key:"leftPanel",ref:g,data:h(c),"option-render":h(T),placeholder:h(E),title:h(S),filterable:C.filterable,format:C.format,"filter-method":C.filterMethod,"default-checked":C.leftDefaultChecked,props:r.props,onCheckedChange:h(f)},{default:be(()=>[Pe(C.$slots,"left-footer")]),_:3},8,["data","option-render","placeholder","title","filterable","format","filter-method","default-checked","props","onCheckedChange"]),R("div",{class:W(h(a).e("buttons"))},[me(h(or),{type:"primary",class:W([h(a).e("button"),h(a).is("with-texts",h(y))]),disabled:h(co)(l.rightChecked),onClick:h(m)},{default:be(()=>[me(h(et),null,{default:be(()=>[me(h(ea))]),_:1}),h(Gn)(C.buttonTexts[0])?Ae("v-if",!0):(k(),D("span",PUe,ze(C.buttonTexts[0]),1))]),_:1},8,["class","disabled","onClick"]),me(h(or),{type:"primary",class:W([h(a).e("button"),h(a).is("with-texts",h(y))]),disabled:h(co)(l.leftChecked),onClick:h(v)},{default:be(()=>[h(Gn)(C.buttonTexts[1])?Ae("v-if",!0):(k(),D("span",NUe,ze(C.buttonTexts[1]),1)),me(h(et),null,{default:be(()=>[me(h(vr))]),_:1})]),_:1},8,["class","disabled","onClick"])],2),me($5,{ref_key:"rightPanel",ref:b,data:h(d),"option-render":h(T),placeholder:h(E),filterable:C.filterable,format:C.format,"filter-method":C.filterMethod,title:h(w),"default-checked":C.rightDefaultChecked,props:r.props,onCheckedChange:h(p)},{default:be(()=>[Pe(C.$slots,"right-footer")]),_:3},8,["data","option-render","placeholder","filterable","format","filter-method","title","default-checked","props","onCheckedChange"])],2))}});var DUe=Fe(BUe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/transfer/src/transfer.vue"]]);const zUe=St(DUe),ou="$treeNodeId",x5=function(e,t){!t||t[ou]||Object.defineProperty(t,ou,{value:e.id,enumerable:!1,configurable:!1,writable:!1})},e3=function(e,t){return e?t[e]:t[ou]},X1=(e,t,n)=>{const r=e.value.currentNode;n();const o=e.value.currentNode;r!==o&&t("current-change",o?o.data:null,o)},J1=e=>{let t=!0,n=!0,r=!0;for(let o=0,s=e.length;o"u"){const s=r[t];return s===void 0?"":s}};let FUe=0,Q1=class Dp{constructor(t){this.id=FUe++,this.text=null,this.checked=!1,this.indeterminate=!1,this.data=null,this.expanded=!1,this.parent=null,this.visible=!0,this.isCurrent=!1,this.canFocus=!1;for(const n in t)Bt(t,n)&&(this[n]=t[n]);this.level=0,this.loaded=!1,this.childNodes=[],this.loading=!1,this.parent&&(this.level=this.parent.level+1)}initialize(){const t=this.store;if(!t)throw new Error("[Node]store is required!");t.registerNode(this);const n=t.props;if(n&&typeof n.isLeaf<"u"){const s=Qf(this,"isLeaf");typeof s=="boolean"&&(this.isLeafByUser=s)}if(t.lazy!==!0&&this.data?(this.setData(this.data),t.defaultExpandAll&&(this.expanded=!0,this.canFocus=!0)):this.level>0&&t.lazy&&t.defaultExpandAll&&this.expand(),Array.isArray(this.data)||x5(this,this.data),!this.data)return;const r=t.defaultExpandedKeys,o=t.key;o&&r&&r.includes(this.key)&&this.expand(null,t.autoExpandParent),o&&t.currentNodeKey!==void 0&&this.key===t.currentNodeKey&&(t.currentNode=this,t.currentNode.isCurrent=!0),t.lazy&&t._initDefaultCheckedNode(this),this.updateLeafState(),this.parent&&(this.level===1||this.parent.expanded===!0)&&(this.canFocus=!0)}setData(t){Array.isArray(t)||x5(this,t),this.data=t,this.childNodes=[];let n;this.level===0&&Array.isArray(this.data)?n=this.data:n=Qf(this,"children")||[];for(let r=0,o=n.length;r-1)return t.childNodes[n+1]}return null}get previousSibling(){const t=this.parent;if(t){const n=t.childNodes.indexOf(this);if(n>-1)return n>0?t.childNodes[n-1]:null}return null}contains(t,n=!0){return(this.childNodes||[]).some(r=>r===t||n&&r.contains(t))}remove(){const t=this.parent;t&&t.removeChild(this)}insertChild(t,n,r){if(!t)throw new Error("InsertChild error: child is required.");if(!(t instanceof Dp)){if(!r){const o=this.getChildren(!0);o.includes(t.data)||(typeof n>"u"||n<0?o.push(t.data):o.splice(n,0,t.data))}Object.assign(t,{parent:this,store:this.store}),t=Ht(new Dp(t)),t instanceof Dp&&t.initialize()}t.level=this.level+1,typeof n>"u"||n<0?this.childNodes.push(t):this.childNodes.splice(n,0,t),this.updateLeafState()}insertBefore(t,n){let r;n&&(r=this.childNodes.indexOf(n)),this.insertChild(t,r)}insertAfter(t,n){let r;n&&(r=this.childNodes.indexOf(n),r!==-1&&(r+=1)),this.insertChild(t,r)}removeChild(t){const n=this.getChildren()||[],r=n.indexOf(t.data);r>-1&&n.splice(r,1);const o=this.childNodes.indexOf(t);o>-1&&(this.store&&this.store.deregisterNode(t),t.parent=null,this.childNodes.splice(o,1)),this.updateLeafState()}removeChildByData(t){let n=null;for(let r=0;r{if(n){let o=this.parent;for(;o.level>0;)o.expanded=!0,o=o.parent}this.expanded=!0,t&&t(),this.childNodes.forEach(o=>{o.canFocus=!0})};this.shouldLoadData()?this.loadData(o=>{Array.isArray(o)&&(this.checked?this.setChecked(!0,!0):this.store.checkStrictly||Bp(this),r())}):r()}doCreateChildren(t,n={}){t.forEach(r=>{this.insertChild(Object.assign({data:r},n),void 0,!0)})}collapse(){this.expanded=!1,this.childNodes.forEach(t=>{t.canFocus=!1})}shouldLoadData(){return this.store.lazy===!0&&this.store.load&&!this.loaded}updateLeafState(){if(this.store.lazy===!0&&this.loaded!==!0&&typeof this.isLeafByUser<"u"){this.isLeaf=this.isLeafByUser;return}const t=this.childNodes;if(!this.store.lazy||this.store.lazy===!0&&this.loaded===!0){this.isLeaf=!t||t.length===0;return}this.isLeaf=!1}setChecked(t,n,r,o){if(this.indeterminate=t==="half",this.checked=t===!0,this.store.checkStrictly)return;if(!(this.shouldLoadData()&&!this.store.checkDescendants)){const{all:a,allWithoutDisable:i}=J1(this.childNodes);!this.isLeaf&&!a&&i&&(this.checked=!1,t=!1);const l=()=>{if(n){const u=this.childNodes;for(let f=0,p=u.length;f{l(),Bp(this)},{checked:t!==!1});return}else l()}const s=this.parent;!s||s.level===0||r||Bp(s)}getChildren(t=!1){if(this.level===0)return this.data;const n=this.data;if(!n)return null;const r=this.store.props;let o="children";return r&&(o=r.children||"children"),n[o]===void 0&&(n[o]=null),t&&!n[o]&&(n[o]=[]),n[o]}updateChildren(){const t=this.getChildren()||[],n=this.childNodes.map(s=>s.data),r={},o=[];t.forEach((s,a)=>{const i=s[ou];!!i&&n.findIndex(u=>u[ou]===i)>=0?r[i]={index:a,data:s}:o.push({index:a,data:s})}),this.store.lazy||n.forEach(s=>{r[s[ou]]||this.removeChildByData(s)}),o.forEach(({index:s,data:a})=>{this.insertChild({data:a},s)}),this.updateLeafState()}loadData(t,n={}){if(this.store.lazy===!0&&this.store.load&&!this.loaded&&(!this.loading||Object.keys(n).length)){this.loading=!0;const r=o=>{this.childNodes=[],this.doCreateChildren(o,n),this.loaded=!0,this.loading=!1,this.updateLeafState(),t&&t.call(this,o)};this.store.load(this,r)}else t&&t.call(this)}};class HUe{constructor(t){this.currentNode=null,this.currentNodeKey=null;for(const n in t)Bt(t,n)&&(this[n]=t[n]);this.nodesMap={}}initialize(){if(this.root=new Q1({data:this.data,store:this}),this.root.initialize(),this.lazy&&this.load){const t=this.load;t(this.root,n=>{this.root.doCreateChildren(n),this._initDefaultCheckedNodes()})}else this._initDefaultCheckedNodes()}filter(t){const n=this.filterNodeMethod,r=this.lazy,o=function(s){const a=s.root?s.root.childNodes:s.childNodes;if(a.forEach(i=>{i.visible=n.call(i,t,i.data,i),o(i)}),!s.visible&&a.length){let i=!0;i=!a.some(l=>l.visible),s.root?s.root.visible=i===!1:s.visible=i===!1}t&&s.visible&&!s.isLeaf&&!r&&s.expand()};o(this)}setData(t){t!==this.root.data?(this.root.setData(t),this._initDefaultCheckedNodes()):this.root.updateChildren()}getNode(t){if(t instanceof Q1)return t;const n=xt(t)?e3(this.key,t):t;return this.nodesMap[n]||null}insertBefore(t,n){const r=this.getNode(n);r.parent.insertBefore({data:t},r)}insertAfter(t,n){const r=this.getNode(n);r.parent.insertAfter({data:t},r)}remove(t){const n=this.getNode(t);n&&n.parent&&(n===this.currentNode&&(this.currentNode=null),n.parent.removeChild(n))}append(t,n){const r=n?this.getNode(n):this.root;r&&r.insertChild({data:t})}_initDefaultCheckedNodes(){const t=this.defaultCheckedKeys||[],n=this.nodesMap;t.forEach(r=>{const o=n[r];o&&o.setChecked(!0,!this.checkStrictly)})}_initDefaultCheckedNode(t){(this.defaultCheckedKeys||[]).includes(t.key)&&t.setChecked(!0,!this.checkStrictly)}setDefaultCheckedKey(t){t!==this.defaultCheckedKeys&&(this.defaultCheckedKeys=t,this._initDefaultCheckedNodes())}registerNode(t){const n=this.key;!t||!t.data||(n?t.key!==void 0&&(this.nodesMap[t.key]=t):this.nodesMap[t.id]=t)}deregisterNode(t){!this.key||!t||!t.data||(t.childNodes.forEach(r=>{this.deregisterNode(r)}),delete this.nodesMap[t.key])}getCheckedNodes(t=!1,n=!1){const r=[],o=function(s){(s.root?s.root.childNodes:s.childNodes).forEach(i=>{(i.checked||n&&i.indeterminate)&&(!t||t&&i.isLeaf)&&r.push(i.data),o(i)})};return o(this),r}getCheckedKeys(t=!1){return this.getCheckedNodes(t).map(n=>(n||{})[this.key])}getHalfCheckedNodes(){const t=[],n=function(r){(r.root?r.root.childNodes:r.childNodes).forEach(s=>{s.indeterminate&&t.push(s.data),n(s)})};return n(this),t}getHalfCheckedKeys(){return this.getHalfCheckedNodes().map(t=>(t||{})[this.key])}_getAllNodes(){const t=[],n=this.nodesMap;for(const r in n)Bt(n,r)&&t.push(n[r]);return t}updateChildren(t,n){const r=this.nodesMap[t];if(!r)return;const o=r.childNodes;for(let s=o.length-1;s>=0;s--){const a=o[s];this.remove(a.data)}for(let s=0,a=n.length;sl.level-i.level),s=Object.create(null),a=Object.keys(r);o.forEach(i=>i.setChecked(!1,!1));for(let i=0,l=o.length;i0;)s[f.data[t]]=!0,f=f.parent;if(u.isLeaf||this.checkStrictly){u.setChecked(!0,!1);continue}if(u.setChecked(!0,!0),n){u.setChecked(!1,!1);const p=function(m){m.childNodes.forEach(g=>{g.isLeaf||g.setChecked(!1,!1),p(g)})};p(u)}}}setCheckedNodes(t,n=!1){const r=this.key,o={};t.forEach(s=>{o[(s||{})[r]]=!0}),this._setCheckedKeys(r,n,o)}setCheckedKeys(t,n=!1){this.defaultCheckedKeys=t;const r=this.key,o={};t.forEach(s=>{o[s]=!0}),this._setCheckedKeys(r,n,o)}setDefaultExpandedKeys(t){t=t||[],this.defaultExpandedKeys=t,t.forEach(n=>{const r=this.getNode(n);r&&r.expand(null,this.autoExpandParent)})}setChecked(t,n,r){const o=this.getNode(t);o&&o.setChecked(!!n,r)}getCurrentNode(){return this.currentNode}setCurrentNode(t){const n=this.currentNode;n&&(n.isCurrent=!1),this.currentNode=t,this.currentNode.isCurrent=!0}setUserCurrentNode(t,n=!0){const r=t[this.key],o=this.nodesMap[r];this.setCurrentNode(o),n&&this.currentNode.level>1&&this.currentNode.parent.expand(null,!0)}setCurrentNodeKey(t,n=!0){if(t==null){this.currentNode&&(this.currentNode.isCurrent=!1),this.currentNode=null;return}const r=this.getNode(t);r&&(this.setCurrentNode(r),n&&this.currentNode.level>1&&this.currentNode.parent.expand(null,!0))}}const VUe=Ce({name:"ElTreeNodeContent",props:{node:{type:Object,required:!0},renderContent:Function},setup(e){const t=De("tree"),n=Ye("NodeInstance"),r=Ye("RootTree");return()=>{const o=e.node,{data:s,store:a}=o;return e.renderContent?e.renderContent(tt,{_self:n,node:o,data:s,store:a}):r.ctx.slots.default?r.ctx.slots.default({node:o,data:s}):tt("span",{class:t.be("node","label")},[o.label])}}});var jUe=Fe(VUe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tree/src/tree-node-content.vue"]]);function zM(e){const t=Ye("TreeNodeMap",null),n={treeNodeExpand:r=>{e.node!==r&&e.node.collapse()},children:[]};return t&&t.children.push(n),Ct("TreeNodeMap",n),{broadcastExpanded:r=>{if(e.accordion)for(const o of n.children)o.treeNodeExpand(r)}}}const FM=Symbol("dragEvents");function UUe({props:e,ctx:t,el$:n,dropIndicator$:r,store:o}){const s=De("tree"),a=ee({showDropIndicator:!1,draggingNode:null,dropNode:null,allowDrop:!0,dropType:null});return Ct(FM,{treeNodeDragStart:({event:c,treeNode:d})=>{if(typeof e.allowDrag=="function"&&!e.allowDrag(d.node))return c.preventDefault(),!1;c.dataTransfer.effectAllowed="move";try{c.dataTransfer.setData("text/plain","")}catch{}a.value.draggingNode=d,t.emit("node-drag-start",d.node,c)},treeNodeDragOver:({event:c,treeNode:d})=>{const f=d,p=a.value.dropNode;p&&p!==f&&Lr(p.$el,s.is("drop-inner"));const m=a.value.draggingNode;if(!m||!f)return;let v=!0,g=!0,b=!0,_=!0;typeof e.allowDrop=="function"&&(v=e.allowDrop(m.node,f.node,"prev"),_=g=e.allowDrop(m.node,f.node,"inner"),b=e.allowDrop(m.node,f.node,"next")),c.dataTransfer.dropEffect=g||v||b?"move":"none",(v||g||b)&&p!==f&&(p&&t.emit("node-drag-leave",m.node,p.node,c),t.emit("node-drag-enter",m.node,f.node,c)),(v||g||b)&&(a.value.dropNode=f),f.node.nextSibling===m.node&&(b=!1),f.node.previousSibling===m.node&&(v=!1),f.node.contains(m.node,!1)&&(g=!1),(m.node===f.node||m.node.contains(f.node))&&(v=!1,g=!1,b=!1);const y=f.$el.getBoundingClientRect(),S=n.value.getBoundingClientRect();let w;const E=v?g?.25:b?.45:1:-1,T=b?g?.75:v?.55:0:1;let C=-9999;const $=c.clientY-y.top;$y.height*T?w="after":g?w="inner":w="none";const x=f.$el.querySelector(`.${s.be("node","expand-icon")}`).getBoundingClientRect(),N=r.value;w==="before"?C=x.top-S.top:w==="after"&&(C=x.bottom-S.top),N.style.top=`${C}px`,N.style.left=`${x.right-S.left}px`,w==="inner"?rs(f.$el,s.is("drop-inner")):Lr(f.$el,s.is("drop-inner")),a.value.showDropIndicator=w==="before"||w==="after",a.value.allowDrop=a.value.showDropIndicator||_,a.value.dropType=w,t.emit("node-drag-over",m.node,f.node,c)},treeNodeDragEnd:c=>{const{draggingNode:d,dropType:f,dropNode:p}=a.value;if(c.preventDefault(),c.dataTransfer.dropEffect="move",d&&p){const m={data:d.node.data};f!=="none"&&d.node.remove(),f==="before"?p.node.parent.insertBefore(m,p.node):f==="after"?p.node.parent.insertAfter(m,p.node):f==="inner"&&p.node.insertChild(m),f!=="none"&&o.value.registerNode(m),Lr(p.$el,s.is("drop-inner")),t.emit("node-drag-end",d.node,p.node,f,c),f!=="none"&&t.emit("node-drop",d.node,p.node,f,c)}d&&!p&&t.emit("node-drag-end",d.node,null,f,c),a.value.showDropIndicator=!1,a.value.draggingNode=null,a.value.dropNode=null,a.value.allowDrop=!0}}),{dragState:a}}const WUe=Ce({name:"ElTreeNode",components:{ElCollapseTransition:_m,ElCheckbox:Co,NodeContent:jUe,ElIcon:et,Loading:pa},props:{node:{type:Q1,default:()=>({})},props:{type:Object,default:()=>({})},accordion:Boolean,renderContent:Function,renderAfterExpand:Boolean,showCheckbox:{type:Boolean,default:!1}},emits:["node-expand"],setup(e,t){const n=De("tree"),{broadcastExpanded:r}=zM(e),o=Ye("RootTree"),s=ee(!1),a=ee(!1),i=ee(null),l=ee(null),u=ee(null),c=Ye(FM),d=gt();Ct("NodeInstance",d),e.node.expanded&&(s.value=!0,a.value=!0);const f=o.props.children||"children";Be(()=>{const $=e.node.data[f];return $&&[...$]},()=>{e.node.updateChildren()}),Be(()=>e.node.indeterminate,$=>{v(e.node.checked,$)}),Be(()=>e.node.checked,$=>{v($,e.node.indeterminate)}),Be(()=>e.node.expanded,$=>{Xe(()=>s.value=$),$&&(a.value=!0)});const p=$=>e3(o.props.nodeKey,$.data),m=$=>{const x=e.props.class;if(!x)return{};let N;if(at(x)){const{data:I}=$;N=x(I,$)}else N=x;return ft(N)?{[N]:!0}:N},v=($,x)=>{(i.value!==$||l.value!==x)&&o.ctx.emit("check-change",e.node.data,$,x),i.value=$,l.value=x},g=$=>{X1(o.store,o.ctx.emit,()=>o.store.value.setCurrentNode(e.node)),o.currentNode.value=e.node,o.props.expandOnClickNode&&_(),o.props.checkOnClickNode&&!e.node.disabled&&y(null,{target:{checked:!e.node.checked}}),o.ctx.emit("node-click",e.node.data,e.node,d,$)},b=$=>{o.instance.vnode.props.onNodeContextmenu&&($.stopPropagation(),$.preventDefault()),o.ctx.emit("node-contextmenu",$,e.node.data,e.node,d)},_=()=>{e.node.isLeaf||(s.value?(o.ctx.emit("node-collapse",e.node.data,e.node,d),e.node.collapse()):(e.node.expand(),t.emit("node-expand",e.node.data,e.node,d)))},y=($,x)=>{e.node.setChecked(x.target.checked,!o.props.checkStrictly),Xe(()=>{const N=o.store.value;o.ctx.emit("check",e.node.data,{checkedNodes:N.getCheckedNodes(),checkedKeys:N.getCheckedKeys(),halfCheckedNodes:N.getHalfCheckedNodes(),halfCheckedKeys:N.getHalfCheckedKeys()})})};return{ns:n,node$:u,tree:o,expanded:s,childNodeRendered:a,oldChecked:i,oldIndeterminate:l,getNodeKey:p,getNodeClass:m,handleSelectChange:v,handleClick:g,handleContextMenu:b,handleExpandIconClick:_,handleCheckChange:y,handleChildNodeExpand:($,x,N)=>{r(x),o.ctx.emit("node-expand",$,x,N)},handleDragStart:$=>{o.props.draggable&&c.treeNodeDragStart({event:$,treeNode:e})},handleDragOver:$=>{$.preventDefault(),o.props.draggable&&c.treeNodeDragOver({event:$,treeNode:{$el:u.value,node:e.node}})},handleDrop:$=>{$.preventDefault()},handleDragEnd:$=>{o.props.draggable&&c.treeNodeDragEnd($)},CaretRight:J4}}}),qUe=["aria-expanded","aria-disabled","aria-checked","draggable","data-key"],KUe=["aria-expanded"];function GUe(e,t,n,r,o,s){const a=rt("el-icon"),i=rt("el-checkbox"),l=rt("loading"),u=rt("node-content"),c=rt("el-tree-node"),d=rt("el-collapse-transition");return mt((k(),D("div",{ref:"node$",class:W([e.ns.b("node"),e.ns.is("expanded",e.expanded),e.ns.is("current",e.node.isCurrent),e.ns.is("hidden",!e.node.visible),e.ns.is("focusable",!e.node.disabled),e.ns.is("checked",!e.node.disabled&&e.node.checked),e.getNodeClass(e.node)]),role:"treeitem",tabindex:"-1","aria-expanded":e.expanded,"aria-disabled":e.node.disabled,"aria-checked":e.node.checked,draggable:e.tree.props.draggable,"data-key":e.getNodeKey(e.node),onClick:t[1]||(t[1]=ct((...f)=>e.handleClick&&e.handleClick(...f),["stop"])),onContextmenu:t[2]||(t[2]=(...f)=>e.handleContextMenu&&e.handleContextMenu(...f)),onDragstart:t[3]||(t[3]=ct((...f)=>e.handleDragStart&&e.handleDragStart(...f),["stop"])),onDragover:t[4]||(t[4]=ct((...f)=>e.handleDragOver&&e.handleDragOver(...f),["stop"])),onDragend:t[5]||(t[5]=ct((...f)=>e.handleDragEnd&&e.handleDragEnd(...f),["stop"])),onDrop:t[6]||(t[6]=ct((...f)=>e.handleDrop&&e.handleDrop(...f),["stop"]))},[R("div",{class:W(e.ns.be("node","content")),style:Je({paddingLeft:(e.node.level-1)*e.tree.props.indent+"px"})},[e.tree.props.icon||e.CaretRight?(k(),Me(a,{key:0,class:W([e.ns.be("node","expand-icon"),e.ns.is("leaf",e.node.isLeaf),{expanded:!e.node.isLeaf&&e.expanded}]),onClick:ct(e.handleExpandIconClick,["stop"])},{default:be(()=>[(k(),Me(kt(e.tree.props.icon||e.CaretRight)))]),_:1},8,["class","onClick"])):Ae("v-if",!0),e.showCheckbox?(k(),Me(i,{key:1,"model-value":e.node.checked,indeterminate:e.node.indeterminate,disabled:!!e.node.disabled,onClick:t[0]||(t[0]=ct(()=>{},["stop"])),onChange:e.handleCheckChange},null,8,["model-value","indeterminate","disabled","onChange"])):Ae("v-if",!0),e.node.loading?(k(),Me(a,{key:2,class:W([e.ns.be("node","loading-icon"),e.ns.is("loading")])},{default:be(()=>[me(l)]),_:1},8,["class"])):Ae("v-if",!0),me(u,{node:e.node,"render-content":e.renderContent},null,8,["node","render-content"])],6),me(d,null,{default:be(()=>[!e.renderAfterExpand||e.childNodeRendered?mt((k(),D("div",{key:0,class:W(e.ns.be("node","children")),role:"group","aria-expanded":e.expanded},[(k(!0),D(Ze,null,At(e.node.childNodes,f=>(k(),Me(c,{key:e.getNodeKey(f),"render-content":e.renderContent,"render-after-expand":e.renderAfterExpand,"show-checkbox":e.showCheckbox,node:f,accordion:e.accordion,props:e.props,onNodeExpand:e.handleChildNodeExpand},null,8,["render-content","render-after-expand","show-checkbox","node","accordion","props","onNodeExpand"]))),128))],10,KUe)),[[zt,e.expanded]]):Ae("v-if",!0)]),_:1})],42,qUe)),[[zt,e.node.visible]])}var YUe=Fe(WUe,[["render",GUe],["__file","/home/runner/work/element-plus/element-plus/packages/components/tree/src/tree-node.vue"]]);function XUe({el$:e},t){const n=De("tree"),r=rn([]),o=rn([]);vt(()=>{a()}),Uo(()=>{r.value=Array.from(e.value.querySelectorAll("[role=treeitem]")),o.value=Array.from(e.value.querySelectorAll("input[type=checkbox]"))}),Be(o,i=>{i.forEach(l=>{l.setAttribute("tabindex","-1")})}),dn(e,"keydown",i=>{const l=i.target;if(!l.className.includes(n.b("node")))return;const u=i.code;r.value=Array.from(e.value.querySelectorAll(`.${n.is("focusable")}[role=treeitem]`));const c=r.value.indexOf(l);let d;if([ot.up,ot.down].includes(u)){if(i.preventDefault(),u===ot.up){d=c===-1?0:c!==0?c-1:r.value.length-1;const p=d;for(;!t.value.getNode(r.value[d].dataset.key).canFocus;){if(d--,d===p){d=-1;break}d<0&&(d=r.value.length-1)}}else{d=c===-1?0:c=r.value.length&&(d=0)}}d!==-1&&r.value[d].focus()}[ot.left,ot.right].includes(u)&&(i.preventDefault(),l.click());const f=l.querySelector('[type="checkbox"]');[ot.enter,ot.space].includes(u)&&f&&(i.preventDefault(),f.click())});const a=()=>{var i;r.value=Array.from(e.value.querySelectorAll(`.${n.is("focusable")}[role=treeitem]`)),o.value=Array.from(e.value.querySelectorAll("input[type=checkbox]"));const l=e.value.querySelectorAll(`.${n.is("checked")}[role=treeitem]`);if(l.length){l[0].setAttribute("tabindex","0");return}(i=r.value[0])==null||i.setAttribute("tabindex","0")}}const JUe=Ce({name:"ElTree",components:{ElTreeNode:YUe},props:{data:{type:Array,default:()=>[]},emptyText:{type:String},renderAfterExpand:{type:Boolean,default:!0},nodeKey:String,checkStrictly:Boolean,defaultExpandAll:Boolean,expandOnClickNode:{type:Boolean,default:!0},checkOnClickNode:Boolean,checkDescendants:{type:Boolean,default:!1},autoExpandParent:{type:Boolean,default:!0},defaultCheckedKeys:Array,defaultExpandedKeys:Array,currentNodeKey:[String,Number],renderContent:Function,showCheckbox:{type:Boolean,default:!1},draggable:{type:Boolean,default:!1},allowDrag:Function,allowDrop:Function,props:{type:Object,default:()=>({children:"children",label:"label",disabled:"disabled"})},lazy:{type:Boolean,default:!1},highlightCurrent:Boolean,load:Function,filterNodeMethod:Function,accordion:Boolean,indent:{type:Number,default:18},icon:{type:on}},emits:["check-change","current-change","node-click","node-contextmenu","node-collapse","node-expand","check","node-drag-start","node-drag-end","node-drop","node-drag-leave","node-drag-enter","node-drag-over"],setup(e,t){const{t:n}=Vt(),r=De("tree"),o=ee(new HUe({key:e.nodeKey,data:e.data,lazy:e.lazy,props:e.props,load:e.load,currentNodeKey:e.currentNodeKey,checkStrictly:e.checkStrictly,checkDescendants:e.checkDescendants,defaultCheckedKeys:e.defaultCheckedKeys,defaultExpandedKeys:e.defaultExpandedKeys,autoExpandParent:e.autoExpandParent,defaultExpandAll:e.defaultExpandAll,filterNodeMethod:e.filterNodeMethod}));o.value.initialize();const s=ee(o.value.root),a=ee(null),i=ee(null),l=ee(null),{broadcastExpanded:u}=zM(e),{dragState:c}=UUe({props:e,ctx:t,el$:i,dropIndicator$:l,store:o});XUe({el$:i},o);const d=z(()=>{const{childNodes:P}=s.value;return!P||P.length===0||P.every(({visible:O})=>!O)});Be(()=>e.currentNodeKey,P=>{o.value.setCurrentNodeKey(P)}),Be(()=>e.defaultCheckedKeys,P=>{o.value.setDefaultCheckedKey(P)}),Be(()=>e.defaultExpandedKeys,P=>{o.value.setDefaultExpandedKeys(P)}),Be(()=>e.data,P=>{o.value.setData(P)},{deep:!0}),Be(()=>e.checkStrictly,P=>{o.value.checkStrictly=P});const f=P=>{if(!e.filterNodeMethod)throw new Error("[Tree] filterNodeMethod is required when filter");o.value.filter(P)},p=P=>e3(e.nodeKey,P.data),m=P=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in getNodePath");const O=o.value.getNode(P);if(!O)return[];const H=[O.data];let q=O.parent;for(;q&&q!==s.value;)H.push(q.data),q=q.parent;return H.reverse()},v=(P,O)=>o.value.getCheckedNodes(P,O),g=P=>o.value.getCheckedKeys(P),b=()=>{const P=o.value.getCurrentNode();return P?P.data:null},_=()=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in getCurrentKey");const P=b();return P?P[e.nodeKey]:null},y=(P,O)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedNodes");o.value.setCheckedNodes(P,O)},S=(P,O)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedKeys");o.value.setCheckedKeys(P,O)},w=(P,O,H)=>{o.value.setChecked(P,O,H)},E=()=>o.value.getHalfCheckedNodes(),T=()=>o.value.getHalfCheckedKeys(),C=(P,O=!0)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentNode");X1(o,t.emit,()=>o.value.setUserCurrentNode(P,O))},$=(P,O=!0)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentKey");X1(o,t.emit,()=>o.value.setCurrentNodeKey(P,O))},x=P=>o.value.getNode(P),N=P=>{o.value.remove(P)},I=(P,O)=>{o.value.append(P,O)},L=(P,O)=>{o.value.insertBefore(P,O)},F=(P,O)=>{o.value.insertAfter(P,O)},B=(P,O,H)=>{u(O),t.emit("node-expand",P,O,H)},U=(P,O)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in updateKeyChild");o.value.updateChildren(P,O)};return Ct("RootTree",{ctx:t,props:e,store:o,root:s,currentNode:a,instance:gt()}),Ct(fs,void 0),{ns:r,store:o,root:s,currentNode:a,dragState:c,el$:i,dropIndicator$:l,isEmpty:d,filter:f,getNodeKey:p,getNodePath:m,getCheckedNodes:v,getCheckedKeys:g,getCurrentNode:b,getCurrentKey:_,setCheckedNodes:y,setCheckedKeys:S,setChecked:w,getHalfCheckedNodes:E,getHalfCheckedKeys:T,setCurrentNode:C,setCurrentKey:$,t:n,getNode:x,remove:N,append:I,insertBefore:L,insertAfter:F,handleNodeExpand:B,updateKeyChildren:U}}});function QUe(e,t,n,r,o,s){var a;const i=rt("el-tree-node");return k(),D("div",{ref:"el$",class:W([e.ns.b(),e.ns.is("dragging",!!e.dragState.draggingNode),e.ns.is("drop-not-allow",!e.dragState.allowDrop),e.ns.is("drop-inner",e.dragState.dropType==="inner"),{[e.ns.m("highlight-current")]:e.highlightCurrent}]),role:"tree"},[(k(!0),D(Ze,null,At(e.root.childNodes,l=>(k(),Me(i,{key:e.getNodeKey(l),node:l,props:e.props,accordion:e.accordion,"render-after-expand":e.renderAfterExpand,"show-checkbox":e.showCheckbox,"render-content":e.renderContent,onNodeExpand:e.handleNodeExpand},null,8,["node","props","accordion","render-after-expand","show-checkbox","render-content","onNodeExpand"]))),128)),e.isEmpty?(k(),D("div",{key:0,class:W(e.ns.e("empty-block"))},[R("span",{class:W(e.ns.e("empty-text"))},ze((a=e.emptyText)!=null?a:e.t("el.tree.emptyText")),3)],2)):Ae("v-if",!0),mt(R("div",{ref:"dropIndicator$",class:W(e.ns.e("drop-indicator"))},null,2),[[zt,e.dragState.showDropIndicator]])],2)}var zp=Fe(JUe,[["render",QUe],["__file","/home/runner/work/element-plus/element-plus/packages/components/tree/src/tree.vue"]]);zp.install=e=>{e.component(zp.name,zp)};const l0=zp,ZUe=l0,eWe=(e,{attrs:t},{tree:n,key:r})=>{const o=De("tree-select"),s={...Ls(On(e),Object.keys(rl.props)),...t,valueKey:r,popperClass:z(()=>{const a=[o.e("popper")];return e.popperClass&&a.push(e.popperClass),a.join(" ")}),filterMethod:(a="")=>{e.filterMethod&&e.filterMethod(a),Xe(()=>{var i;(i=n.value)==null||i.filter(a)})},onVisibleChange:a=>{var i;(i=t.onVisibleChange)==null||i.call(t,a),e.filterable&&a&&s.filterMethod()}};return s},tWe=Ce({extends:e0,setup(e,t){const n=e0.setup(e,t);delete n.selectOptionClick;const r=gt().proxy;return Xe(()=>{n.select.cachedOptions.get(r.value)||n.select.onOptionCreate(r)}),n},methods:{selectOptionClick(){this.$el.parentElement.click()}}});function Z1(e){return e||e===0}function t3(e){return Array.isArray(e)&&e.length}function zv(e){return Array.isArray(e)?e:Z1(e)?[e]:[]}function Fp(e,t,n,r,o){for(let s=0;s{Be(()=>e.modelValue,()=>{e.showCheckbox&&Xe(()=>{const d=s.value;d&&!to(d.getCheckedKeys(),zv(e.modelValue))&&d.setCheckedKeys(zv(e.modelValue))})},{immediate:!0,deep:!0});const i=z(()=>({value:a.value,...e.props})),l=(d,f)=>{var p;const m=i.value[d];return at(m)?m(f,(p=s.value)==null?void 0:p.getNode(l("value",f))):f[m]},u=zv(e.modelValue).map(d=>Fp(e.data||[],f=>l("value",f)===d,f=>l("children",f),(f,p,m,v)=>v&&l("value",v))).filter(d=>Z1(d)),c=z(()=>{if(!e.renderAfterExpand&&!e.lazy)return[];const d=[];return HM(e.data.concat(e.cacheData),f=>{const p=l("value",f);d.push({value:p,currentLabel:l("label",f),isDisabled:l("disabled",f)})},f=>l("children",f)),d});return{...Ls(On(e),Object.keys(l0.props)),...t,nodeKey:a,expandOnClickNode:z(()=>!e.checkStrictly&&e.expandOnClickNode),defaultExpandedKeys:z(()=>e.defaultExpandedKeys?e.defaultExpandedKeys.concat(u):u),renderContent:(d,{node:f,data:p,store:m})=>d(tWe,{value:l("value",p),label:l("label",p),disabled:l("disabled",p)},e.renderContent?()=>e.renderContent(d,{node:f,data:p,store:m}):n.default?()=>n.default({node:f,data:p,store:m}):void 0),filterNodeMethod:(d,f,p)=>{var m;return e.filterNodeMethod?e.filterNodeMethod(d,f,p):d?(m=l("label",f))==null?void 0:m.includes(d):!0},onNodeClick:(d,f,p)=>{var m,v,g;if((m=t.onNodeClick)==null||m.call(t,d,f,p),!(e.showCheckbox&&e.checkOnClickNode))if(!e.showCheckbox&&(e.checkStrictly||f.isLeaf)){if(!l("disabled",d)){const b=(v=o.value)==null?void 0:v.options.get(l("value",d));(g=o.value)==null||g.handleOptionSelect(b,!0)}}else e.expandOnClickNode&&p.proxy.handleExpandIconClick()},onCheck:(d,f)=>{var p;(p=t.onCheck)==null||p.call(t,d,f);const m=l("value",d);if(e.checkStrictly)r(Et,e.multiple?f.checkedKeys:f.checkedKeys.includes(m)?m:void 0);else if(e.multiple)r(Et,s.value.getCheckedKeys(!0));else{const v=Fp([d],_=>!t3(l("children",_))&&!l("disabled",_),_=>l("children",_)),g=v?l("value",v):void 0,b=Z1(e.modelValue)&&!!Fp([d],_=>l("value",_)===e.modelValue,_=>l("children",_));r(Et,g===e.modelValue||b?void 0:g)}},cacheOptions:c}};var rWe=Ce({props:{data:{type:Array,default:()=>[]}},setup(e){const t=Ye(vf);return Be(()=>e.data,()=>{e.data.forEach(n=>{t.cachedOptions.has(n.value)||t.cachedOptions.set(n.value,n)}),t.setSelected()},{immediate:!0,deep:!0}),()=>{}}});const oWe=Ce({name:"ElTreeSelect",inheritAttrs:!1,props:{...rl.props,...l0.props,cacheData:{type:Array,default:()=>[]}},setup(e,t){const{slots:n,expose:r}=t,o=ee(),s=ee(),a=z(()=>e.nodeKey||e.valueKey||"value"),i=eWe(e,t,{tree:s,key:a}),{cacheOptions:l,...u}=nWe(e,t,{select:o,tree:s,key:a}),c=Ht({});return r(c),vt(()=>{Object.assign(c,{...Ls(s.value,["filter","updateKeyChildren","getCheckedNodes","setCheckedNodes","getCheckedKeys","setCheckedKeys","setChecked","getHalfCheckedNodes","getHalfCheckedKeys","getCurrentKey","getCurrentNode","setCurrentKey","setCurrentNode","getNode","remove","append","insertBefore","insertAfter"]),...Ls(o.value,["focus","blur"])})}),()=>tt(rl,Ht({...i,ref:d=>o.value=d}),{...n,default:()=>[tt(rWe,{data:l.value}),tt(l0,Ht({...u,ref:d=>s.value=d}))]})}});var Hp=Fe(oWe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tree-select/src/tree-select.vue"]]);Hp.install=e=>{e.component(Hp.name,Hp)};const sWe=Hp,aWe=sWe,n3=Symbol(),iWe={key:-1,level:-1,data:{}};var Tc=(e=>(e.KEY="id",e.LABEL="label",e.CHILDREN="children",e.DISABLED="disabled",e))(Tc||{}),eg=(e=>(e.ADD="add",e.DELETE="delete",e))(eg||{});const lWe=He({data:{type:Re(Array),default:()=>hn([])},emptyText:{type:String},height:{type:Number,default:200},props:{type:Re(Object),default:()=>hn({children:"children",label:"label",disabled:"disabled",value:"id"})},highlightCurrent:{type:Boolean,default:!1},showCheckbox:{type:Boolean,default:!1},defaultCheckedKeys:{type:Re(Array),default:()=>hn([])},checkStrictly:{type:Boolean,default:!1},defaultExpandedKeys:{type:Re(Array),default:()=>hn([])},indent:{type:Number,default:16},icon:{type:on},expandOnClickNode:{type:Boolean,default:!0},checkOnClickNode:{type:Boolean,default:!1},currentNodeKey:{type:Re([String,Number])},accordion:{type:Boolean,default:!1},filterMethod:{type:Re(Function)},perfMode:{type:Boolean,default:!0}}),uWe=He({node:{type:Re(Object),default:()=>hn(iWe)},expanded:{type:Boolean,default:!1},checked:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},showCheckbox:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},current:{type:Boolean,default:!1},hiddenExpandIcon:{type:Boolean,default:!1}}),cWe=He({node:{type:Re(Object),required:!0}}),VM="node-click",jM="node-expand",UM="node-collapse",WM="current-change",qM="check",KM="check-change",GM="node-contextmenu",dWe={[VM]:(e,t,n)=>e&&t&&n,[jM]:(e,t)=>e&&t,[UM]:(e,t)=>e&&t,[WM]:(e,t)=>e&&t,[qM]:(e,t)=>e&&t,[KM]:(e,t)=>e&&typeof t=="boolean",[GM]:(e,t,n)=>e&&t&&n},fWe={click:(e,t)=>!!(e&&t),toggle:e=>!!e,check:(e,t)=>e&&typeof t=="boolean"};function pWe(e,t){const n=ee(new Set),r=ee(new Set),{emit:o}=gt();Be([()=>t.value,()=>e.defaultCheckedKeys],()=>Xe(()=>{_(e.defaultCheckedKeys)}),{immediate:!0});const s=()=>{if(!t.value||!e.showCheckbox||e.checkStrictly)return;const{levelTreeNodeMap:y,maxLevel:S}=t.value,w=n.value,E=new Set;for(let T=S-1;T>=1;--T){const C=y.get(T);C&&C.forEach($=>{const x=$.children;if(x){let N=!0,I=!1;for(const L of x){const F=L.key;if(w.has(F))I=!0;else if(E.has(F)){N=!1,I=!0;break}else N=!1}N?w.add($.key):I?(E.add($.key),w.delete($.key)):(w.delete($.key),E.delete($.key))}})}r.value=E},a=y=>n.value.has(y.key),i=y=>r.value.has(y.key),l=(y,S,w=!0)=>{const E=n.value,T=(C,$)=>{E[$?eg.ADD:eg.DELETE](C.key);const x=C.children;!e.checkStrictly&&x&&x.forEach(N=>{N.disabled||T(N,$)})};T(y,S),s(),w&&u(y,S)},u=(y,S)=>{const{checkedNodes:w,checkedKeys:E}=m(),{halfCheckedNodes:T,halfCheckedKeys:C}=v();o(qM,y.data,{checkedKeys:E,checkedNodes:w,halfCheckedKeys:C,halfCheckedNodes:T}),o(KM,y.data,S)};function c(y=!1){return m(y).checkedKeys}function d(y=!1){return m(y).checkedNodes}function f(){return v().halfCheckedKeys}function p(){return v().halfCheckedNodes}function m(y=!1){const S=[],w=[];if(t!=null&&t.value&&e.showCheckbox){const{treeNodeMap:E}=t.value;n.value.forEach(T=>{const C=E.get(T);C&&(!y||y&&C.isLeaf)&&(w.push(T),S.push(C.data))})}return{checkedKeys:w,checkedNodes:S}}function v(){const y=[],S=[];if(t!=null&&t.value&&e.showCheckbox){const{treeNodeMap:w}=t.value;r.value.forEach(E=>{const T=w.get(E);T&&(S.push(E),y.push(T.data))})}return{halfCheckedNodes:y,halfCheckedKeys:S}}function g(y){n.value.clear(),r.value.clear(),_(y)}function b(y,S){if(t!=null&&t.value&&e.showCheckbox){const w=t.value.treeNodeMap.get(y);w&&l(w,S,!1)}}function _(y){if(t!=null&&t.value){const{treeNodeMap:S}=t.value;if(e.showCheckbox&&S&&y)for(const w of y){const E=S.get(w);E&&!a(E)&&l(E,!0,!1)}}}return{updateCheckedKeys:s,toggleCheckbox:l,isChecked:a,isIndeterminate:i,getCheckedKeys:c,getCheckedNodes:d,getHalfCheckedKeys:f,getHalfCheckedNodes:p,setChecked:b,setCheckedKeys:g}}function hWe(e,t){const n=ee(new Set([])),r=ee(new Set([])),o=z(()=>at(e.filterMethod));function s(i){var l;if(!o.value)return;const u=new Set,c=r.value,d=n.value,f=[],p=((l=t.value)==null?void 0:l.treeNodes)||[],m=e.filterMethod;d.clear();function v(g){g.forEach(b=>{f.push(b),m!=null&&m(i,b.data)?f.forEach(y=>{u.add(y.key)}):b.isLeaf&&d.add(b.key);const _=b.children;if(_&&v(_),!b.isLeaf){if(!u.has(b.key))d.add(b.key);else if(_){let y=!0;for(const S of _)if(!d.has(S.key)){y=!1;break}y?c.add(b.key):c.delete(b.key)}}f.pop()})}return v(p),u}function a(i){return r.value.has(i.key)}return{hiddenExpandIconKeySet:r,hiddenNodeKeySet:n,doFilter:s,isForceHiddenExpandIcon:a}}function mWe(e,t){const n=ee(new Set(e.defaultExpandedKeys)),r=ee(),o=rn();Be(()=>e.currentNodeKey,K=>{r.value=K},{immediate:!0}),Be(()=>e.data,K=>{ke(K)},{immediate:!0});const{isIndeterminate:s,isChecked:a,toggleCheckbox:i,getCheckedKeys:l,getCheckedNodes:u,getHalfCheckedKeys:c,getHalfCheckedNodes:d,setChecked:f,setCheckedKeys:p}=pWe(e,o),{doFilter:m,hiddenNodeKeySet:v,isForceHiddenExpandIcon:g}=hWe(e,o),b=z(()=>{var K;return((K=e.props)==null?void 0:K.value)||Tc.KEY}),_=z(()=>{var K;return((K=e.props)==null?void 0:K.children)||Tc.CHILDREN}),y=z(()=>{var K;return((K=e.props)==null?void 0:K.disabled)||Tc.DISABLED}),S=z(()=>{var K;return((K=e.props)==null?void 0:K.label)||Tc.LABEL}),w=z(()=>{const K=n.value,se=v.value,ne=[],ve=o.value&&o.value.treeNodes||[];function J(){const ae=[];for(let ce=ve.length-1;ce>=0;--ce)ae.push(ve[ce]);for(;ae.length;){const ce=ae.pop();if(ce&&(se.has(ce.key)||ne.push(ce),K.has(ce.key))){const oe=ce.children;if(oe){const he=oe.length;for(let le=he-1;le>=0;--le)ae.push(oe[le])}}}}return J(),ne}),E=z(()=>w.value.length>0);function T(K){const se=new Map,ne=new Map;let ve=1;function J(ce,oe=1,he=void 0){var le;const Ee=[];for(const ye of ce){const pe=x(ye),re={level:oe,key:pe,data:ye};re.label=I(ye),re.parent=he;const fe=$(ye);re.disabled=N(ye),re.isLeaf=!fe||fe.length===0,fe&&fe.length&&(re.children=J(fe,oe+1,re)),Ee.push(re),se.set(pe,re),ne.has(oe)||ne.set(oe,[]),(le=ne.get(oe))==null||le.push(re)}return oe>ve&&(ve=oe),Ee}const ae=J(K);return{treeNodeMap:se,levelTreeNodeMap:ne,maxLevel:ve,treeNodes:ae}}function C(K){const se=m(K);se&&(n.value=se)}function $(K){return K[_.value]}function x(K){return K?K[b.value]:""}function N(K){return K[y.value]}function I(K){return K[S.value]}function L(K){n.value.has(K.key)?H(K):O(K)}function F(K){n.value=new Set(K)}function B(K,se){t(VM,K.data,K,se),U(K),e.expandOnClickNode&&L(K),e.showCheckbox&&e.checkOnClickNode&&!K.disabled&&i(K,!a(K),!0)}function U(K){V(K)||(r.value=K.key,t(WM,K.data,K))}function P(K,se){i(K,se)}function O(K){const se=n.value;if(o.value&&e.accordion){const{treeNodeMap:ne}=o.value;se.forEach(ve=>{const J=ne.get(ve);K&&K.level===(J==null?void 0:J.level)&&se.delete(ve)})}se.add(K.key),t(jM,K.data,K)}function H(K){n.value.delete(K.key),t(UM,K.data,K)}function q(K){return n.value.has(K.key)}function te(K){return!!K.disabled}function V(K){const se=r.value;return!!se&&se===K.key}function Q(){var K,se;if(r.value)return(se=(K=o.value)==null?void 0:K.treeNodeMap.get(r.value))==null?void 0:se.data}function ge(){return r.value}function ie(K){r.value=K}function ke(K){Xe(()=>o.value=T(K))}function Y(K){var se;const ne=xt(K)?x(K):K;return(se=o.value)==null?void 0:se.treeNodeMap.get(ne)}return{tree:o,flattenTree:w,isNotEmpty:E,getKey:x,getChildren:$,toggleExpand:L,toggleCheckbox:i,isExpanded:q,isChecked:a,isIndeterminate:s,isDisabled:te,isCurrent:V,isForceHiddenExpandIcon:g,handleNodeClick:B,handleNodeCheck:P,getCurrentNode:Q,getCurrentKey:ge,setCurrentKey:ie,getCheckedKeys:l,getCheckedNodes:u,getHalfCheckedKeys:c,getHalfCheckedNodes:d,setChecked:f,setCheckedKeys:p,filter:C,setData:ke,getNode:Y,expandNode:O,collapseNode:H,setExpandedKeys:F}}var vWe=Ce({name:"ElTreeNodeContent",props:cWe,setup(e){const t=Ye(n3),n=De("tree");return()=>{const r=e.node,{data:o}=r;return t!=null&&t.ctx.slots.default?t.ctx.slots.default({node:r,data:o}):tt("span",{class:n.be("node","label")},[r==null?void 0:r.label])}}});const gWe=["aria-expanded","aria-disabled","aria-checked","data-key","onClick"],_We=Ce({name:"ElTreeNode"}),yWe=Ce({..._We,props:uWe,emits:fWe,setup(e,{emit:t}){const n=e,r=Ye(n3),o=De("tree"),s=z(()=>{var d;return(d=r==null?void 0:r.props.indent)!=null?d:16}),a=z(()=>{var d;return(d=r==null?void 0:r.props.icon)!=null?d:J4}),i=d=>{t("click",n.node,d)},l=()=>{t("toggle",n.node)},u=d=>{t("check",n.node,d)},c=d=>{var f,p,m,v;(m=(p=(f=r==null?void 0:r.instance)==null?void 0:f.vnode)==null?void 0:p.props)!=null&&m.onNodeContextmenu&&(d.stopPropagation(),d.preventDefault()),r==null||r.ctx.emit(GM,d,(v=n.node)==null?void 0:v.data,n.node)};return(d,f)=>{var p,m,v;return k(),D("div",{ref:"node$",class:W([h(o).b("node"),h(o).is("expanded",d.expanded),h(o).is("current",d.current),h(o).is("focusable",!d.disabled),h(o).is("checked",!d.disabled&&d.checked)]),role:"treeitem",tabindex:"-1","aria-expanded":d.expanded,"aria-disabled":d.disabled,"aria-checked":d.checked,"data-key":(p=d.node)==null?void 0:p.key,onClick:ct(i,["stop"]),onContextmenu:c},[R("div",{class:W(h(o).be("node","content")),style:Je({paddingLeft:`${(d.node.level-1)*h(s)}px`})},[h(a)?(k(),Me(h(et),{key:0,class:W([h(o).is("leaf",!!((m=d.node)!=null&&m.isLeaf)),h(o).is("hidden",d.hiddenExpandIcon),{expanded:!((v=d.node)!=null&&v.isLeaf)&&d.expanded},h(o).be("node","expand-icon")]),onClick:ct(l,["stop"])},{default:be(()=>[(k(),Me(kt(h(a))))]),_:1},8,["class","onClick"])):Ae("v-if",!0),d.showCheckbox?(k(),Me(h(Co),{key:1,"model-value":d.checked,indeterminate:d.indeterminate,disabled:d.disabled,onChange:u,onClick:f[0]||(f[0]=ct(()=>{},["stop"]))},null,8,["model-value","indeterminate","disabled"])):Ae("v-if",!0),me(h(vWe),{node:d.node},null,8,["node"])],6)],42,gWe)}}});var bWe=Fe(yWe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tree-v2/src/tree-node.vue"]]);const wWe=26,SWe=Ce({name:"ElTreeV2"}),EWe=Ce({...SWe,props:lWe,emits:dWe,setup(e,{expose:t,emit:n}){const r=e,o=Wn();Ct(n3,{ctx:{emit:n,slots:o},props:r,instance:gt()}),Ct(fs,void 0);const{t:s}=Vt(),a=De("tree"),{flattenTree:i,isNotEmpty:l,toggleExpand:u,isExpanded:c,isIndeterminate:d,isChecked:f,isDisabled:p,isCurrent:m,isForceHiddenExpandIcon:v,handleNodeClick:g,handleNodeCheck:b,toggleCheckbox:_,getCurrentNode:y,getCurrentKey:S,setCurrentKey:w,getCheckedKeys:E,getCheckedNodes:T,getHalfCheckedKeys:C,getHalfCheckedNodes:$,setChecked:x,setCheckedKeys:N,filter:I,setData:L,getNode:F,expandNode:B,collapseNode:U,setExpandedKeys:P}=mWe(r,n);return t({toggleCheckbox:_,getCurrentNode:y,getCurrentKey:S,setCurrentKey:w,getCheckedKeys:E,getCheckedNodes:T,getHalfCheckedKeys:C,getHalfCheckedNodes:$,setChecked:x,setCheckedKeys:N,filter:I,setData:L,getNode:F,expandNode:B,collapseNode:U,setExpandedKeys:P}),(O,H)=>{var q;return k(),D("div",{class:W([h(a).b(),{[h(a).m("highlight-current")]:O.highlightCurrent}]),role:"tree"},[h(l)?(k(),Me(h(nM),{key:0,"class-name":h(a).b("virtual-list"),data:h(i),total:h(i).length,height:O.height,"item-size":wWe,"perf-mode":O.perfMode},{default:be(({data:te,index:V,style:Q})=>[(k(),Me(bWe,{key:te[V].key,style:Je(Q),node:te[V],expanded:h(c)(te[V]),"show-checkbox":O.showCheckbox,checked:h(f)(te[V]),indeterminate:h(d)(te[V]),disabled:h(p)(te[V]),current:h(m)(te[V]),"hidden-expand-icon":h(v)(te[V]),onClick:h(g),onToggle:h(u),onCheck:h(b)},null,8,["style","node","expanded","show-checkbox","checked","indeterminate","disabled","current","hidden-expand-icon","onClick","onToggle","onCheck"]))]),_:1},8,["class-name","data","total","height","perf-mode"])):(k(),D("div",{key:1,class:W(h(a).e("empty-block"))},[R("span",{class:W(h(a).e("empty-text"))},ze((q=O.emptyText)!=null?q:h(s)("el.tree.emptyText")),3)],2))],2)}}});var CWe=Fe(EWe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tree-v2/src/tree.vue"]]);const kWe=St(CWe),TWe="ElUpload";class $We extends Error{constructor(t,n,r,o){super(t),this.name="UploadAjaxError",this.status=n,this.method=r,this.url=o}}function I5(e,t,n){let r;return n.response?r=`${n.response.error||n.response}`:n.responseText?r=`${n.responseText}`:r=`fail to ${t.method} ${e} ${n.status}`,new $We(r,n.status,t.method,e)}function xWe(e){const t=e.responseText||e.response;if(!t)return t;try{return JSON.parse(t)}catch{return t}}const IWe=e=>{typeof XMLHttpRequest>"u"&&zn(TWe,"XMLHttpRequest is undefined");const t=new XMLHttpRequest,n=e.action;t.upload&&t.upload.addEventListener("progress",s=>{const a=s;a.percent=s.total>0?s.loaded/s.total*100:0,e.onProgress(a)});const r=new FormData;if(e.data)for(const[s,a]of Object.entries(e.data))Array.isArray(a)?r.append(s,...a):r.append(s,a);r.append(e.filename,e.file,e.file.name),t.addEventListener("error",()=>{e.onError(I5(n,e,t))}),t.addEventListener("load",()=>{if(t.status<200||t.status>=300)return e.onError(I5(n,e,t));e.onSuccess(xWe(t))}),t.open(e.method,n,!0),e.withCredentials&&"withCredentials"in t&&(t.withCredentials=!0);const o=e.headers||{};if(o instanceof Headers)o.forEach((s,a)=>t.setRequestHeader(a,s));else for(const[s,a]of Object.entries(o))Yn(a)||t.setRequestHeader(s,String(a));return t.send(r),t},YM=["text","picture","picture-card"];let AWe=1;const tg=()=>Date.now()+AWe++,XM=He({action:{type:String,default:"#"},headers:{type:Re(Object)},method:{type:String,default:"post"},data:{type:Object,default:()=>hn({})},multiple:{type:Boolean,default:!1},name:{type:String,default:"file"},drag:{type:Boolean,default:!1},withCredentials:Boolean,showFileList:{type:Boolean,default:!0},accept:{type:String,default:""},type:{type:String,default:"select"},fileList:{type:Re(Array),default:()=>hn([])},autoUpload:{type:Boolean,default:!0},listType:{type:String,values:YM,default:"text"},httpRequest:{type:Re(Function),default:IWe},disabled:Boolean,limit:Number}),MWe=He({...XM,beforeUpload:{type:Re(Function),default:Kt},beforeRemove:{type:Re(Function)},onRemove:{type:Re(Function),default:Kt},onChange:{type:Re(Function),default:Kt},onPreview:{type:Re(Function),default:Kt},onSuccess:{type:Re(Function),default:Kt},onProgress:{type:Re(Function),default:Kt},onError:{type:Re(Function),default:Kt},onExceed:{type:Re(Function),default:Kt}}),OWe=He({files:{type:Re(Array),default:()=>hn([])},disabled:{type:Boolean,default:!1},handlePreview:{type:Re(Function),default:Kt},listType:{type:String,values:YM,default:"text"}}),RWe={remove:e=>!!e},PWe=["onKeydown"],NWe=["src"],LWe=["onClick"],BWe=["onClick"],DWe=["onClick"],zWe=Ce({name:"ElUploadList"}),FWe=Ce({...zWe,props:OWe,emits:RWe,setup(e,{emit:t}){const{t:n}=Vt(),r=De("upload"),o=De("icon"),s=De("list"),a=jr(),i=ee(!1),l=u=>{t("remove",u)};return(u,c)=>(k(),Me(Dy,{tag:"ul",class:W([h(r).b("list"),h(r).bm("list",u.listType),h(r).is("disabled",h(a))]),name:h(s).b()},{default:be(()=>[(k(!0),D(Ze,null,At(u.files,d=>(k(),D("li",{key:d.uid||d.name,class:W([h(r).be("list","item"),h(r).is(d.status),{focusing:i.value}]),tabindex:"0",onKeydown:Rt(f=>!h(a)&&l(d),["delete"]),onFocus:c[0]||(c[0]=f=>i.value=!0),onBlur:c[1]||(c[1]=f=>i.value=!1),onClick:c[2]||(c[2]=f=>i.value=!1)},[Pe(u.$slots,"default",{file:d},()=>[u.listType==="picture"||d.status!=="uploading"&&u.listType==="picture-card"?(k(),D("img",{key:0,class:W(h(r).be("list","item-thumbnail")),src:d.url,alt:""},null,10,NWe)):Ae("v-if",!0),d.status==="uploading"||u.listType!=="picture-card"?(k(),D("div",{key:1,class:W(h(r).be("list","item-info"))},[R("a",{class:W(h(r).be("list","item-name")),onClick:ct(f=>u.handlePreview(d),["prevent"])},[me(h(et),{class:W(h(o).m("document"))},{default:be(()=>[me(h(qx))]),_:1},8,["class"]),R("span",{class:W(h(r).be("list","item-file-name"))},ze(d.name),3)],10,LWe),d.status==="uploading"?(k(),Me(h(KA),{key:0,type:u.listType==="picture-card"?"circle":"line","stroke-width":u.listType==="picture-card"?6:2,percentage:Number(d.percentage),style:Je(u.listType==="picture-card"?"":"margin-top: 0.5rem")},null,8,["type","stroke-width","percentage","style"])):Ae("v-if",!0)],2)):Ae("v-if",!0),R("label",{class:W(h(r).be("list","item-status-label"))},[u.listType==="text"?(k(),Me(h(et),{key:0,class:W([h(o).m("upload-success"),h(o).m("circle-check")])},{default:be(()=>[me(h(Z0))]),_:1},8,["class"])):["picture-card","picture"].includes(u.listType)?(k(),Me(h(et),{key:1,class:W([h(o).m("upload-success"),h(o).m("check")])},{default:be(()=>[me(h(Qu))]),_:1},8,["class"])):Ae("v-if",!0)],2),h(a)?Ae("v-if",!0):(k(),Me(h(et),{key:2,class:W(h(o).m("close")),onClick:f=>l(d)},{default:be(()=>[me(h(wo))]),_:2},1032,["class","onClick"])),Ae(" Due to close btn only appears when li gets focused disappears after li gets blurred, thus keyboard navigation can never reach close btn"),Ae(" This is a bug which needs to be fixed "),Ae(" TODO: Fix the incorrect navigation interaction "),h(a)?Ae("v-if",!0):(k(),D("i",{key:3,class:W(h(o).m("close-tip"))},ze(h(n)("el.upload.deleteTip")),3)),u.listType==="picture-card"?(k(),D("span",{key:4,class:W(h(r).be("list","item-actions"))},[R("span",{class:W(h(r).be("list","item-preview")),onClick:f=>u.handlePreview(d)},[me(h(et),{class:W(h(o).m("zoom-in"))},{default:be(()=>[me(h(tb))]),_:1},8,["class"])],10,BWe),h(a)?Ae("v-if",!0):(k(),D("span",{key:0,class:W(h(r).be("list","item-delete")),onClick:f=>l(d)},[me(h(et),{class:W(h(o).m("delete"))},{default:be(()=>[me(h(Wx))]),_:1},8,["class"])],10,DWe))],2)):Ae("v-if",!0)])],42,PWe))),128)),Pe(u.$slots,"append")]),_:3},8,["class","name"]))}});var A5=Fe(FWe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/upload/src/upload-list.vue"]]);const HWe=He({disabled:{type:Boolean,default:!1}}),VWe={file:e=>Ge(e)},jWe=["onDrop","onDragover"],JM="ElUploadDrag",UWe=Ce({name:JM}),WWe=Ce({...UWe,props:HWe,emits:VWe,setup(e,{emit:t}){const n=Ye(E7);n||zn(JM,"usage: ");const r=De("upload"),o=ee(!1),s=jr(),a=l=>{if(s.value)return;o.value=!1;const u=Array.from(l.dataTransfer.files),c=n.accept.value;if(!c){t("file",u);return}const d=u.filter(f=>{const{type:p,name:m}=f,v=m.includes(".")?`.${m.split(".").pop()}`:"",g=p.replace(/\/.*$/,"");return c.split(",").map(b=>b.trim()).filter(b=>b).some(b=>b.startsWith(".")?v===b:/\/\*$/.test(b)?g===b.replace(/\/\*$/,""):/^[^/]+\/[^/]+$/.test(b)?p===b:!1)});t("file",d)},i=()=>{s.value||(o.value=!0)};return(l,u)=>(k(),D("div",{class:W([h(r).b("dragger"),h(r).is("dragover",o.value)]),onDrop:ct(a,["prevent"]),onDragover:ct(i,["prevent"]),onDragleave:u[0]||(u[0]=ct(c=>o.value=!1,["prevent"]))},[Pe(l.$slots,"default")],42,jWe))}});var qWe=Fe(WWe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/upload/src/upload-dragger.vue"]]);const KWe=He({...XM,beforeUpload:{type:Re(Function),default:Kt},onRemove:{type:Re(Function),default:Kt},onStart:{type:Re(Function),default:Kt},onSuccess:{type:Re(Function),default:Kt},onProgress:{type:Re(Function),default:Kt},onError:{type:Re(Function),default:Kt},onExceed:{type:Re(Function),default:Kt}}),GWe=["onKeydown"],YWe=["name","multiple","accept"],XWe=Ce({name:"ElUploadContent",inheritAttrs:!1}),JWe=Ce({...XWe,props:KWe,setup(e,{expose:t}){const n=e,r=De("upload"),o=jr(),s=rn({}),a=rn(),i=m=>{if(m.length===0)return;const{autoUpload:v,limit:g,fileList:b,multiple:_,onStart:y,onExceed:S}=n;if(g&&b.length+m.length>g){S(m,b);return}_||(m=m.slice(0,1));for(const w of m){const E=w;E.uid=tg(),y(E),v&&l(E)}},l=async m=>{if(a.value.value="",!n.beforeUpload)return u(m);let v;try{v=await n.beforeUpload(m)}catch{v=!1}if(v===!1){n.onRemove(m);return}let g=m;v instanceof Blob&&(v instanceof File?g=v:g=new File([v],m.name,{type:m.type})),u(Object.assign(g,{uid:m.uid}))},u=m=>{const{headers:v,data:g,method:b,withCredentials:_,name:y,action:S,onProgress:w,onSuccess:E,onError:T,httpRequest:C}=n,{uid:$}=m,x={headers:v||{},withCredentials:_,file:m,data:g,method:b,filename:y,action:S,onProgress:I=>{w(I,m)},onSuccess:I=>{E(I,m),delete s.value[$]},onError:I=>{T(I,m),delete s.value[$]}},N=C(x);s.value[$]=N,N instanceof Promise&&N.then(x.onSuccess,x.onError)},c=m=>{const v=m.target.files;v&&i(Array.from(v))},d=()=>{o.value||(a.value.value="",a.value.click())},f=()=>{d()};return t({abort:m=>{nZ(s.value).filter(m?([g])=>String(m.uid)===g:()=>!0).forEach(([g,b])=>{b instanceof XMLHttpRequest&&b.abort(),delete s.value[g]})},upload:l}),(m,v)=>(k(),D("div",{class:W([h(r).b(),h(r).m(m.listType),h(r).is("drag",m.drag)]),tabindex:"0",onClick:d,onKeydown:Rt(ct(f,["self"]),["enter","space"])},[m.drag?(k(),Me(qWe,{key:0,disabled:h(o),onFile:i},{default:be(()=>[Pe(m.$slots,"default")]),_:3},8,["disabled"])):Pe(m.$slots,"default",{key:1}),R("input",{ref_key:"inputRef",ref:a,class:W(h(r).e("input")),name:m.name,multiple:m.multiple,accept:m.accept,type:"file",onChange:c,onClick:v[0]||(v[0]=ct(()=>{},["stop"]))},null,42,YWe)],42,GWe))}});var M5=Fe(JWe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/upload/src/upload-content.vue"]]);const O5="ElUpload",QWe=e=>{var t;(t=e.url)!=null&&t.startsWith("blob:")&&URL.revokeObjectURL(e.url)},ZWe=(e,t)=>{const n=XQ(e,"fileList",void 0,{passive:!0}),r=f=>n.value.find(p=>p.uid===f.uid);function o(f){var p;(p=t.value)==null||p.abort(f)}function s(f=["ready","uploading","success","fail"]){n.value=n.value.filter(p=>!f.includes(p.status))}const a=(f,p)=>{const m=r(p);m&&(console.error(f),m.status="fail",n.value.splice(n.value.indexOf(m),1),e.onError(f,m,n.value),e.onChange(m,n.value))},i=(f,p)=>{const m=r(p);m&&(e.onProgress(f,m,n.value),m.status="uploading",m.percentage=Math.round(f.percent))},l=(f,p)=>{const m=r(p);m&&(m.status="success",m.response=f,e.onSuccess(f,m,n.value),e.onChange(m,n.value))},u=f=>{Yn(f.uid)&&(f.uid=tg());const p={name:f.name,percentage:0,status:"ready",size:f.size,raw:f,uid:f.uid};if(e.listType==="picture-card"||e.listType==="picture")try{p.url=URL.createObjectURL(f)}catch(m){m.message,e.onError(m,p,n.value)}n.value=[...n.value,p],e.onChange(p,n.value)},c=async f=>{const p=f instanceof File?r(f):f;p||zn(O5,"file to be removed not found");const m=v=>{o(v);const g=n.value;g.splice(g.indexOf(v),1),e.onRemove(v,g),QWe(v)};e.beforeRemove?await e.beforeRemove(p,n.value)!==!1&&m(p):m(p)};function d(){n.value.filter(({status:f})=>f==="ready").forEach(({raw:f})=>{var p;return f&&((p=t.value)==null?void 0:p.upload(f))})}return Be(()=>e.listType,f=>{f!=="picture-card"&&f!=="picture"||(n.value=n.value.map(p=>{const{raw:m,url:v}=p;if(!v&&m)try{p.url=URL.createObjectURL(m)}catch(g){e.onError(g,p,n.value)}return p}))}),Be(n,f=>{for(const p of f)p.uid||(p.uid=tg()),p.status||(p.status="success")},{immediate:!0,deep:!0}),{uploadFiles:n,abort:o,clearFiles:s,handleError:a,handleProgress:i,handleStart:u,handleSuccess:l,handleRemove:c,submit:d}},eqe=Ce({name:"ElUpload"}),tqe=Ce({...eqe,props:MWe,setup(e,{expose:t}){const n=e,r=Wn(),o=jr(),s=rn(),{abort:a,submit:i,clearFiles:l,uploadFiles:u,handleStart:c,handleError:d,handleRemove:f,handleSuccess:p,handleProgress:m}=ZWe(n,s),v=z(()=>n.listType==="picture-card"),g=z(()=>({...n,fileList:u.value,onStart:c,onProgress:m,onSuccess:p,onError:d,onRemove:f}));return fn(()=>{u.value.forEach(({url:b})=>{b!=null&&b.startsWith("blob:")&&URL.revokeObjectURL(b)})}),Ct(E7,{accept:gn(n,"accept")}),t({abort:a,submit:i,clearFiles:l,handleStart:c,handleRemove:f}),(b,_)=>(k(),D("div",null,[h(v)&&b.showFileList?(k(),Me(A5,{key:0,disabled:h(o),"list-type":b.listType,files:h(u),"handle-preview":b.onPreview,onRemove:h(f)},Bo({append:be(()=>[me(M5,$t({ref_key:"uploadRef",ref:s},h(g)),{default:be(()=>[h(r).trigger?Pe(b.$slots,"trigger",{key:0}):Ae("v-if",!0),!h(r).trigger&&h(r).default?Pe(b.$slots,"default",{key:1}):Ae("v-if",!0)]),_:3},16)]),_:2},[b.$slots.file?{name:"default",fn:be(({file:y})=>[Pe(b.$slots,"file",{file:y})])}:void 0]),1032,["disabled","list-type","files","handle-preview","onRemove"])):Ae("v-if",!0),!h(v)||h(v)&&!b.showFileList?(k(),Me(M5,$t({key:1,ref_key:"uploadRef",ref:s},h(g)),{default:be(()=>[h(r).trigger?Pe(b.$slots,"trigger",{key:0}):Ae("v-if",!0),!h(r).trigger&&h(r).default?Pe(b.$slots,"default",{key:1}):Ae("v-if",!0)]),_:3},16)):Ae("v-if",!0),b.$slots.trigger?Pe(b.$slots,"default",{key:2}):Ae("v-if",!0),Pe(b.$slots,"tip"),!h(v)&&b.showFileList?(k(),Me(A5,{key:3,disabled:h(o),"list-type":b.listType,files:h(u),"handle-preview":b.onPreview,onRemove:h(f)},Bo({_:2},[b.$slots.file?{name:"default",fn:be(({file:y})=>[Pe(b.$slots,"file",{file:y})])}:void 0]),1032,["disabled","list-type","files","handle-preview","onRemove"])):Ae("v-if",!0)]))}});var nqe=Fe(tqe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/upload/src/upload.vue"]]);const rqe=St(nqe);var oqe=[Tke,Bke,pxe,Cje,bxe,$xe,gI,Fxe,Hxe,or,SI,lIe,pIe,$Ie,xIe,HAe,xAe,KAe,Co,GIe,YI,QAe,gMe,_Me,lMe,jMe,qMe,oOe,sOe,aOe,iOe,lOe,wRe,MRe,ORe,qRe,TA,aPe,JPe,QPe,ZPe,NA,CLe,kLe,et,zLe,DA,mr,zA,ZLe,yBe,bBe,wBe,xBe,MDe,LDe,WDe,hI,KA,tA,cAe,uAe,lze,pze,bze,_a,rl,e0,rDe,cFe,_Fe,yFe,YFe,eHe,dM,dHe,bHe,wHe,OHe,zVe,FVe,Eje,zje,Fje,gm,F7e,qje,Jje,Qje,Ur,CUe,zUe,ZUe,aWe,kWe,rqe];const Oo="ElInfiniteScroll",sqe=50,aqe=200,iqe=0,lqe={delay:{type:Number,default:aqe},distance:{type:Number,default:iqe},disabled:{type:Boolean,default:!1},immediate:{type:Boolean,default:!0}},r3=(e,t)=>Object.entries(lqe).reduce((n,[r,o])=>{var s,a;const{type:i,default:l}=o,u=e.getAttribute(`infinite-scroll-${r}`);let c=(a=(s=t[u])!=null?s:u)!=null?a:l;return c=c==="false"?!1:c,c=i(c),n[r]=Number.isNaN(c)?l:c,n},{}),QM=e=>{const{observer:t}=e[Oo];t&&(t.disconnect(),delete e[Oo].observer)},uqe=(e,t)=>{const{container:n,containerEl:r,instance:o,observer:s,lastScrollTop:a}=e[Oo],{disabled:i,distance:l}=r3(e,o),{clientHeight:u,scrollHeight:c,scrollTop:d}=r,f=d-a;if(e[Oo].lastScrollTop=d,s||i||f<0)return;let p=!1;if(n===e)p=c-(u+d)<=l;else{const{clientTop:m,scrollHeight:v}=e,g=ZQ(e,r);p=d+u>=g+m+v-l}p&&t.call(o)};function Fv(e,t){const{containerEl:n,instance:r}=e[Oo],{disabled:o}=r3(e,r);o||n.clientHeight===0||(n.scrollHeight<=n.clientHeight?t.call(r):QM(e))}const cqe={async mounted(e,t){const{instance:n,value:r}=t;at(r)||zn(Oo,"'v-infinite-scroll' binding value must be a function"),await Xe();const{delay:o,immediate:s}=r3(e,n),a=X4(e,!0),i=a===window?document.documentElement:a,l=Vi(uqe.bind(null,e,r),o);if(a){if(e[Oo]={instance:n,container:a,containerEl:i,delay:o,cb:r,onScroll:l,lastScrollTop:i.scrollTop},s){const u=new MutationObserver(Vi(Fv.bind(null,e,r),sqe));e[Oo].observer=u,u.observe(e,{childList:!0,subtree:!0}),Fv(e,r)}a.addEventListener("scroll",l)}},unmounted(e){const{container:t,onScroll:n}=e[Oo];t==null||t.removeEventListener("scroll",n),QM(e)},async updated(e){e[Oo]||await Xe();const{containerEl:t,cb:n,observer:r}=e[Oo];t.clientHeight&&r&&Fv(e,n)}},ng=cqe;ng.install=e=>{e.directive("InfiniteScroll",ng)};const dqe=ng;function fqe(e){let t;const n=De("loading"),r=ee(!1),o=Ht({...e,originalPosition:"",originalOverflow:"",visible:!1});function s(p){o.text=p}function a(){const p=o.parent;if(!p.vLoadingAddClassList){let m=p.getAttribute("loading-number");m=Number.parseInt(m)-1,m?p.setAttribute("loading-number",m.toString()):(Lr(p,n.bm("parent","relative")),p.removeAttribute("loading-number")),Lr(p,n.bm("parent","hidden"))}i(),d.unmount()}function i(){var p,m;(m=(p=f.$el)==null?void 0:p.parentNode)==null||m.removeChild(f.$el)}function l(){var p;e.beforeClose&&!e.beforeClose()||(r.value=!0,clearTimeout(t),t=window.setTimeout(u,400),o.visible=!1,(p=e.closed)==null||p.call(e))}function u(){if(!r.value)return;const p=o.parent;r.value=!1,p.vLoadingAddClassList=void 0,a()}const d=Fy({name:"ElLoading",setup(){return()=>{const p=o.spinner||o.svg,m=tt("svg",{class:"circular",viewBox:o.svgViewBox?o.svgViewBox:"0 0 50 50",...p?{innerHTML:p}:{}},[tt("circle",{class:"path",cx:"25",cy:"25",r:"20",fill:"none"})]),v=o.text?tt("p",{class:n.b("text")},[o.text]):void 0;return tt(xn,{name:n.b("fade"),onAfterLeave:u},{default:be(()=>[mt(me("div",{style:{backgroundColor:o.background||""},class:[n.b("mask"),o.customClass,o.fullscreen?"is-fullscreen":""]},[tt("div",{class:n.b("spinner")},[m,v])]),[[zt,o.visible]])])})}}}),f=d.mount(document.createElement("div"));return{...On(o),setText:s,removeElLoadingChild:i,close:l,handleAfterLeave:u,vm:f,get $el(){return f.$el}}}let Zf;const rg=function(e={}){if(!Pt)return;const t=pqe(e);if(t.fullscreen&&Zf)return Zf;const n=fqe({...t,closed:()=>{var o;(o=t.closed)==null||o.call(t),t.fullscreen&&(Zf=void 0)}});hqe(t,t.parent,n),R5(t,t.parent,n),t.parent.vLoadingAddClassList=()=>R5(t,t.parent,n);let r=t.parent.getAttribute("loading-number");return r?r=`${Number.parseInt(r)+1}`:r="1",t.parent.setAttribute("loading-number",r),t.parent.appendChild(n.$el),Xe(()=>n.visible.value=t.visible),t.fullscreen&&(Zf=n),n},pqe=e=>{var t,n,r,o;let s;return ft(e.target)?s=(t=document.querySelector(e.target))!=null?t:document.body:s=e.target||document.body,{parent:s===document.body||e.body?document.body:s,background:e.background||"",svg:e.svg||"",svgViewBox:e.svgViewBox||"",spinner:e.spinner||!1,text:e.text||"",fullscreen:s===document.body&&((n=e.fullscreen)!=null?n:!0),lock:(r=e.lock)!=null?r:!1,customClass:e.customClass||"",visible:(o=e.visible)!=null?o:!0,target:s}},hqe=async(e,t,n)=>{const{nextZIndex:r}=va(),o={};if(e.fullscreen)n.originalPosition.value=Ps(document.body,"position"),n.originalOverflow.value=Ps(document.body,"overflow"),o.zIndex=r();else if(e.parent===document.body){n.originalPosition.value=Ps(document.body,"position"),await Xe();for(const s of["top","left"]){const a=s==="top"?"scrollTop":"scrollLeft";o[s]=`${e.target.getBoundingClientRect()[s]+document.body[a]+document.documentElement[a]-Number.parseInt(Ps(document.body,`margin-${s}`),10)}px`}for(const s of["height","width"])o[s]=`${e.target.getBoundingClientRect()[s]}px`}else n.originalPosition.value=Ps(t,"position");for(const[s,a]of Object.entries(o))n.$el.style[s]=a},R5=(e,t,n)=>{const r=De("loading");["absolute","fixed","sticky"].includes(n.originalPosition.value)?Lr(t,r.bm("parent","relative")):rs(t,r.bm("parent","relative")),e.fullscreen&&e.lock?rs(t,r.bm("parent","hidden")):Lr(t,r.bm("parent","hidden"))},og=Symbol("ElLoading"),P5=(e,t)=>{var n,r,o,s;const a=t.instance,i=f=>xt(t.value)?t.value[f]:void 0,l=f=>{const p=ft(f)&&(a==null?void 0:a[f])||f;return p&&ee(p)},u=f=>l(i(f)||e.getAttribute(`element-loading-${sa(f)}`)),c=(n=i("fullscreen"))!=null?n:t.modifiers.fullscreen,d={text:u("text"),svg:u("svg"),svgViewBox:u("svgViewBox"),spinner:u("spinner"),background:u("background"),customClass:u("customClass"),fullscreen:c,target:(r=i("target"))!=null?r:c?void 0:e,body:(o=i("body"))!=null?o:t.modifiers.body,lock:(s=i("lock"))!=null?s:t.modifiers.lock};e[og]={options:d,instance:rg(d)}},mqe=(e,t)=>{for(const n of Object.keys(t))qt(t[n])&&(t[n].value=e[n])},N5={mounted(e,t){t.value&&P5(e,t)},updated(e,t){const n=e[og];t.oldValue!==t.value&&(t.value&&!t.oldValue?P5(e,t):t.value&&t.oldValue?xt(t.value)&&mqe(t.value,n.options):n==null||n.instance.close())},unmounted(e){var t;(t=e[og])==null||t.instance.close()}},vqe={install(e){e.directive("loading",N5),e.config.globalProperties.$loading=rg},directive:N5,service:rg},ZM=["success","info","warning","error"],Or=hn({customClass:"",center:!1,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:Pt?document.body:void 0}),gqe=He({customClass:{type:String,default:Or.customClass},center:{type:Boolean,default:Or.center},dangerouslyUseHTMLString:{type:Boolean,default:Or.dangerouslyUseHTMLString},duration:{type:Number,default:Or.duration},icon:{type:on,default:Or.icon},id:{type:String,default:Or.id},message:{type:Re([String,Object,Function]),default:Or.message},onClose:{type:Re(Function),required:!1},showClose:{type:Boolean,default:Or.showClose},type:{type:String,values:ZM,default:Or.type},offset:{type:Number,default:Or.offset},zIndex:{type:Number,default:Or.zIndex},grouping:{type:Boolean,default:Or.grouping},repeatNum:{type:Number,default:Or.repeatNum}}),_qe={destroy:()=>!0},ss=w0([]),yqe=e=>{const t=ss.findIndex(o=>o.id===e),n=ss[t];let r;return t>0&&(r=ss[t-1]),{current:n,prev:r}},bqe=e=>{const{prev:t}=yqe(e);return t?t.vm.exposed.bottom.value:0},wqe=["id"],Sqe=["innerHTML"],Eqe=Ce({name:"ElMessage"}),Cqe=Ce({...Eqe,props:gqe,emits:_qe,setup(e,{expose:t}){const n=e,{Close:r}=nb,o=De("message"),s=ee(),a=ee(!1),i=ee(0);let l;const u=z(()=>n.type?n.type==="error"?"danger":n.type:"info"),c=z(()=>{const S=n.type;return{[o.bm("icon",S)]:S&&oi[S]}}),d=z(()=>n.icon||oi[n.type]||""),f=z(()=>bqe(n.id)),p=z(()=>n.offset+f.value),m=z(()=>i.value+p.value),v=z(()=>({top:`${p.value}px`,zIndex:n.zIndex}));function g(){n.duration!==0&&({stop:l}=el(()=>{_()},n.duration))}function b(){l==null||l()}function _(){a.value=!1}function y({code:S}){S===ot.esc&&_()}return vt(()=>{g(),a.value=!0}),Be(()=>n.repeatNum,()=>{b(),g()}),dn(document,"keydown",y),gr(s,()=>{i.value=s.value.getBoundingClientRect().height}),t({visible:a,bottom:m,close:_}),(S,w)=>(k(),Me(xn,{name:h(o).b("fade"),onBeforeLeave:S.onClose,onAfterLeave:w[0]||(w[0]=E=>S.$emit("destroy")),persisted:""},{default:be(()=>[mt(R("div",{id:S.id,ref_key:"messageRef",ref:s,class:W([h(o).b(),{[h(o).m(S.type)]:S.type&&!S.icon},h(o).is("center",S.center),h(o).is("closable",S.showClose),S.customClass]),style:Je(h(v)),role:"alert",onMouseenter:b,onMouseleave:g},[S.repeatNum>1?(k(),Me(h(gI),{key:0,value:S.repeatNum,type:h(u),class:W(h(o).e("badge"))},null,8,["value","type","class"])):Ae("v-if",!0),h(d)?(k(),Me(h(et),{key:1,class:W([h(o).e("icon"),h(c)])},{default:be(()=>[(k(),Me(kt(h(d))))]),_:1},8,["class"])):Ae("v-if",!0),Pe(S.$slots,"default",{},()=>[S.dangerouslyUseHTMLString?(k(),D(Ze,{key:1},[Ae(" Caution here, message could've been compromised, never use user's input as message "),R("p",{class:W(h(o).e("content")),innerHTML:S.message},null,10,Sqe)],2112)):(k(),D("p",{key:0,class:W(h(o).e("content"))},ze(S.message),3))]),S.showClose?(k(),Me(h(et),{key:2,class:W(h(o).e("closeBtn")),onClick:ct(_,["stop"])},{default:be(()=>[me(h(r))]),_:1},8,["class","onClick"])):Ae("v-if",!0)],46,wqe),[[zt,a.value]])]),_:3},8,["name","onBeforeLeave"]))}});var kqe=Fe(Cqe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue"]]);let Tqe=1;const eO=e=>{const t=!e||ft(e)||sn(e)||at(e)?{message:e}:e,n={...Or,...t};if(!n.appendTo)n.appendTo=document.body;else if(ft(n.appendTo)){let r=document.querySelector(n.appendTo);zo(r)||(r=document.body),n.appendTo=r}return n},$qe=e=>{const t=ss.indexOf(e);if(t===-1)return;ss.splice(t,1);const{handler:n}=e;n.close()},xqe=({appendTo:e,...t},n)=>{const{nextZIndex:r}=va(),o=`message_${Tqe++}`,s=t.onClose,a=document.createElement("div"),i={...t,zIndex:r()+t.zIndex,id:o,onClose:()=>{s==null||s(),$qe(d)},onDestroy:()=>{Gi(null,a)}},l=me(kqe,i,at(i.message)||sn(i.message)?{default:at(i.message)?i.message:()=>i.message}:null);l.appContext=n||Iu._context,Gi(l,a),e.appendChild(a.firstElementChild);const u=l.component,d={id:o,vnode:l,vm:u,handler:{close:()=>{u.exposed.visible.value=!1}},props:l.component.props};return d},Iu=(e={},t)=>{if(!Pt)return{close:()=>{}};if(dt($1.max)&&ss.length>=$1.max)return{close:()=>{}};const n=eO(e);if(n.grouping&&ss.length){const o=ss.find(({vnode:s})=>{var a;return((a=s.props)==null?void 0:a.message)===n.message});if(o)return o.props.repeatNum+=1,o.props.type=n.type,o.handler}const r=xqe(n,t);return ss.push(r),r.handler};ZM.forEach(e=>{Iu[e]=(t={},n)=>{const r=eO(t);return Iu({...r,type:e},n)}});function Iqe(e){for(const t of ss)(!e||e===t.props.type)&&t.handler.close()}Iu.closeAll=Iqe;Iu._context=null;const hr=d7(Iu,"$message"),Aqe=Ce({name:"ElMessageBox",directives:{TrapFocus:w7e},components:{ElButton:or,ElFocusTrap:vm,ElInput:mr,ElOverlay:Ab,ElIcon:et,...nb},inheritAttrs:!1,props:{buttonSize:{type:String,validator:Zu},modal:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},closeOnHashChange:{type:Boolean,default:!0},center:Boolean,draggable:Boolean,roundButton:{default:!1,type:Boolean},container:{type:String,default:"body"},boxType:{type:String,default:""}},emits:["vanish","action"],setup(e,{emit:t}){const{t:n}=Vt(),r=De("message-box"),o=ee(!1),{nextZIndex:s}=va(),a=Ht({autofocus:!0,beforeClose:null,callback:null,cancelButtonText:"",cancelButtonClass:"",confirmButtonText:"",confirmButtonClass:"",customClass:"",customStyle:{},dangerouslyUseHTMLString:!1,distinguishCancelAndClose:!1,icon:"",inputPattern:null,inputPlaceholder:"",inputType:"text",inputValue:null,inputValidator:null,inputErrorMessage:"",message:null,modalFade:!0,modalClass:"",showCancelButton:!1,showConfirmButton:!0,type:"",title:void 0,showInput:!1,action:"",confirmButtonLoading:!1,cancelButtonLoading:!1,confirmButtonDisabled:!1,editorErrorMessage:"",validateError:!1,zIndex:s()}),i=z(()=>{const L=a.type;return{[r.bm("icon",L)]:L&&oi[L]}}),l=Fo(),u=Fo(),c=Ln(z(()=>e.buttonSize),{prop:!0,form:!0,formItem:!0}),d=z(()=>a.icon||oi[a.type]||""),f=z(()=>!!a.message),p=ee(),m=ee(),v=ee(),g=ee(),b=ee(),_=z(()=>a.confirmButtonClass);Be(()=>a.inputValue,async L=>{await Xe(),e.boxType==="prompt"&&L!==null&&$()},{immediate:!0}),Be(()=>o.value,L=>{var F,B;L&&(e.boxType!=="prompt"&&(a.autofocus?v.value=(B=(F=b.value)==null?void 0:F.$el)!=null?B:p.value:v.value=p.value),a.zIndex=s()),e.boxType==="prompt"&&(L?Xe().then(()=>{var U;g.value&&g.value.$el&&(a.autofocus?v.value=(U=x())!=null?U:p.value:v.value=p.value)}):(a.editorErrorMessage="",a.validateError=!1))});const y=z(()=>e.draggable);x7(p,m,y),vt(async()=>{await Xe(),e.closeOnHashChange&&window.addEventListener("hashchange",S)}),fn(()=>{e.closeOnHashChange&&window.removeEventListener("hashchange",S)});function S(){o.value&&(o.value=!1,Xe(()=>{a.action&&t("action",a.action)}))}const w=()=>{e.closeOnClickModal&&C(a.distinguishCancelAndClose?"close":"cancel")},E=ib(w),T=L=>{if(a.inputType!=="textarea")return L.preventDefault(),C("confirm")},C=L=>{var F;e.boxType==="prompt"&&L==="confirm"&&!$()||(a.action=L,a.beforeClose?(F=a.beforeClose)==null||F.call(a,L,a,S):S())},$=()=>{if(e.boxType==="prompt"){const L=a.inputPattern;if(L&&!L.test(a.inputValue||""))return a.editorErrorMessage=a.inputErrorMessage||n("el.messagebox.error"),a.validateError=!0,!1;const F=a.inputValidator;if(typeof F=="function"){const B=F(a.inputValue);if(B===!1)return a.editorErrorMessage=a.inputErrorMessage||n("el.messagebox.error"),a.validateError=!0,!1;if(typeof B=="string")return a.editorErrorMessage=B,a.validateError=!0,!1}}return a.editorErrorMessage="",a.validateError=!1,!0},x=()=>{const L=g.value.$refs;return L.input||L.textarea},N=()=>{C("close")},I=()=>{e.closeOnPressEscape&&N()};return e.lockScroll&&A7(o),w9e(o),{...On(a),ns:r,overlayEvent:E,visible:o,hasMessage:f,typeClass:i,contentId:l,inputId:u,btnSize:c,iconComponent:d,confirmButtonClasses:_,rootRef:p,focusStartRef:v,headerRef:m,inputRef:g,confirmRef:b,doClose:S,handleClose:N,onCloseRequested:I,handleWrapperClick:w,handleInputEnter:T,handleAction:C,t:n}}}),Mqe=["aria-label","aria-describedby"],Oqe=["aria-label"],Rqe=["id"];function Pqe(e,t,n,r,o,s){const a=rt("el-icon"),i=rt("close"),l=rt("el-input"),u=rt("el-button"),c=rt("el-focus-trap"),d=rt("el-overlay");return k(),Me(xn,{name:"fade-in-linear",onAfterLeave:t[11]||(t[11]=f=>e.$emit("vanish")),persisted:""},{default:be(()=>[mt(me(d,{"z-index":e.zIndex,"overlay-class":[e.ns.is("message-box"),e.modalClass],mask:e.modal},{default:be(()=>[R("div",{role:"dialog","aria-label":e.title,"aria-modal":"true","aria-describedby":e.showInput?void 0:e.contentId,class:W(`${e.ns.namespace.value}-overlay-message-box`),onClick:t[8]||(t[8]=(...f)=>e.overlayEvent.onClick&&e.overlayEvent.onClick(...f)),onMousedown:t[9]||(t[9]=(...f)=>e.overlayEvent.onMousedown&&e.overlayEvent.onMousedown(...f)),onMouseup:t[10]||(t[10]=(...f)=>e.overlayEvent.onMouseup&&e.overlayEvent.onMouseup(...f))},[me(c,{loop:"",trapped:e.visible,"focus-trap-el":e.rootRef,"focus-start-el":e.focusStartRef,onReleaseRequested:e.onCloseRequested},{default:be(()=>[R("div",{ref:"rootRef",class:W([e.ns.b(),e.customClass,e.ns.is("draggable",e.draggable),{[e.ns.m("center")]:e.center}]),style:Je(e.customStyle),tabindex:"-1",onClick:t[7]||(t[7]=ct(()=>{},["stop"]))},[e.title!==null&&e.title!==void 0?(k(),D("div",{key:0,ref:"headerRef",class:W(e.ns.e("header"))},[R("div",{class:W(e.ns.e("title"))},[e.iconComponent&&e.center?(k(),Me(a,{key:0,class:W([e.ns.e("status"),e.typeClass])},{default:be(()=>[(k(),Me(kt(e.iconComponent)))]),_:1},8,["class"])):Ae("v-if",!0),R("span",null,ze(e.title),1)],2),e.showClose?(k(),D("button",{key:0,type:"button",class:W(e.ns.e("headerbtn")),"aria-label":e.t("el.messagebox.close"),onClick:t[0]||(t[0]=f=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel")),onKeydown:t[1]||(t[1]=Rt(ct(f=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel"),["prevent"]),["enter"]))},[me(a,{class:W(e.ns.e("close"))},{default:be(()=>[me(i)]),_:1},8,["class"])],42,Oqe)):Ae("v-if",!0)],2)):Ae("v-if",!0),R("div",{id:e.contentId,class:W(e.ns.e("content"))},[R("div",{class:W(e.ns.e("container"))},[e.iconComponent&&!e.center&&e.hasMessage?(k(),Me(a,{key:0,class:W([e.ns.e("status"),e.typeClass])},{default:be(()=>[(k(),Me(kt(e.iconComponent)))]),_:1},8,["class"])):Ae("v-if",!0),e.hasMessage?(k(),D("div",{key:1,class:W(e.ns.e("message"))},[Pe(e.$slots,"default",{},()=>[e.dangerouslyUseHTMLString?(k(),Me(kt(e.showInput?"label":"p"),{key:1,for:e.showInput?e.inputId:void 0,innerHTML:e.message},null,8,["for","innerHTML"])):(k(),Me(kt(e.showInput?"label":"p"),{key:0,for:e.showInput?e.inputId:void 0},{default:be(()=>[Ot(ze(e.dangerouslyUseHTMLString?"":e.message),1)]),_:1},8,["for"]))])],2)):Ae("v-if",!0)],2),mt(R("div",{class:W(e.ns.e("input"))},[me(l,{id:e.inputId,ref:"inputRef",modelValue:e.inputValue,"onUpdate:modelValue":t[2]||(t[2]=f=>e.inputValue=f),type:e.inputType,placeholder:e.inputPlaceholder,"aria-invalid":e.validateError,class:W({invalid:e.validateError}),onKeydown:Rt(e.handleInputEnter,["enter"])},null,8,["id","modelValue","type","placeholder","aria-invalid","class","onKeydown"]),R("div",{class:W(e.ns.e("errormsg")),style:Je({visibility:e.editorErrorMessage?"visible":"hidden"})},ze(e.editorErrorMessage),7)],2),[[zt,e.showInput]])],10,Rqe),R("div",{class:W(e.ns.e("btns"))},[e.showCancelButton?(k(),Me(u,{key:0,loading:e.cancelButtonLoading,class:W([e.cancelButtonClass]),round:e.roundButton,size:e.btnSize,onClick:t[3]||(t[3]=f=>e.handleAction("cancel")),onKeydown:t[4]||(t[4]=Rt(ct(f=>e.handleAction("cancel"),["prevent"]),["enter"]))},{default:be(()=>[Ot(ze(e.cancelButtonText||e.t("el.messagebox.cancel")),1)]),_:1},8,["loading","class","round","size"])):Ae("v-if",!0),mt(me(u,{ref:"confirmRef",type:"primary",loading:e.confirmButtonLoading,class:W([e.confirmButtonClasses]),round:e.roundButton,disabled:e.confirmButtonDisabled,size:e.btnSize,onClick:t[5]||(t[5]=f=>e.handleAction("confirm")),onKeydown:t[6]||(t[6]=Rt(ct(f=>e.handleAction("confirm"),["prevent"]),["enter"]))},{default:be(()=>[Ot(ze(e.confirmButtonText||e.t("el.messagebox.confirm")),1)]),_:1},8,["loading","class","round","disabled","size"]),[[zt,e.showConfirmButton]])],2)],6)]),_:3},8,["trapped","focus-trap-el","focus-start-el","onReleaseRequested"])],42,Mqe)]),_:3},8,["z-index","overlay-class","mask"]),[[zt,e.visible]])]),_:3})}var Nqe=Fe(Aqe,[["render",Pqe],["__file","/home/runner/work/element-plus/element-plus/packages/components/message-box/src/index.vue"]]);const Fd=new Map,Lqe=e=>{let t=document.body;return e.appendTo&&(ft(e.appendTo)&&(t=document.querySelector(e.appendTo)),zo(e.appendTo)&&(t=e.appendTo),zo(t)||(t=document.body)),t},Bqe=(e,t,n=null)=>{const r=me(Nqe,e,at(e.message)||sn(e.message)?{default:at(e.message)?e.message:()=>e.message}:null);return r.appContext=n,Gi(r,t),Lqe(e).appendChild(t.firstElementChild),r.component},Dqe=()=>document.createElement("div"),zqe=(e,t)=>{const n=Dqe();e.onVanish=()=>{Gi(null,n),Fd.delete(o)},e.onAction=s=>{const a=Fd.get(o);let i;e.showInput?i={value:o.inputValue,action:s}:i=s,e.callback?e.callback(i,r.proxy):s==="cancel"||s==="close"?e.distinguishCancelAndClose&&s!=="cancel"?a.reject("close"):a.reject("cancel"):a.resolve(i)};const r=Bqe(e,n,t),o=r.proxy;for(const s in e)Bt(e,s)&&!Bt(o.$props,s)&&(o[s]=e[s]);return o.visible=!0,o};function nc(e,t=null){if(!Pt)return Promise.reject();let n;return ft(e)||sn(e)?e={message:e}:n=e.callback,new Promise((r,o)=>{const s=zqe(e,t??nc._context);Fd.set(s,{options:e,callback:n,resolve:r,reject:o})})}const Fqe=["alert","confirm","prompt"],Hqe={alert:{closeOnPressEscape:!1,closeOnClickModal:!1},confirm:{showCancelButton:!0},prompt:{showCancelButton:!0,showInput:!0}};Fqe.forEach(e=>{nc[e]=Vqe(e)});function Vqe(e){return(t,n,r,o)=>{let s="";return xt(n)?(r=n,s=""):Gn(n)?s="":s=n,nc(Object.assign({title:s,message:t,type:"",...Hqe[e]},r,{boxType:e}),o)}}nc.close=()=>{Fd.forEach((e,t)=>{t.doClose()}),Fd.clear()};nc._context=null;const Oa=nc;Oa.install=e=>{Oa._context=e._context,e.config.globalProperties.$msgbox=Oa,e.config.globalProperties.$messageBox=Oa,e.config.globalProperties.$alert=Oa.alert,e.config.globalProperties.$confirm=Oa.confirm,e.config.globalProperties.$prompt=Oa.prompt};const tO=Oa,nO=["success","info","warning","error"],jqe=He({customClass:{type:String,default:""},dangerouslyUseHTMLString:{type:Boolean,default:!1},duration:{type:Number,default:4500},icon:{type:on},id:{type:String,default:""},message:{type:Re([String,Object]),default:""},offset:{type:Number,default:0},onClick:{type:Re(Function),default:()=>{}},onClose:{type:Re(Function),required:!0},position:{type:String,values:["top-right","top-left","bottom-right","bottom-left"],default:"top-right"},showClose:{type:Boolean,default:!0},title:{type:String,default:""},type:{type:String,values:[...nO,""],default:""},zIndex:{type:Number,default:0}}),Uqe={destroy:()=>!0},Wqe=["id"],qqe=["textContent"],Kqe={key:0},Gqe=["innerHTML"],Yqe=Ce({name:"ElNotification"}),Xqe=Ce({...Yqe,props:jqe,emits:Uqe,setup(e,{expose:t}){const n=e,r=De("notification"),{Close:o}=u7,s=ee(!1);let a;const i=z(()=>{const g=n.type;return g&&oi[n.type]?r.m(g):""}),l=z(()=>n.type&&oi[n.type]||n.icon),u=z(()=>n.position.endsWith("right")?"right":"left"),c=z(()=>n.position.startsWith("top")?"top":"bottom"),d=z(()=>({[c.value]:`${n.offset}px`,zIndex:n.zIndex}));function f(){n.duration>0&&({stop:a}=el(()=>{s.value&&m()},n.duration))}function p(){a==null||a()}function m(){s.value=!1}function v({code:g}){g===ot.delete||g===ot.backspace?p():g===ot.esc?s.value&&m():f()}return vt(()=>{f(),s.value=!0}),dn(document,"keydown",v),t({visible:s,close:m}),(g,b)=>(k(),Me(xn,{name:h(r).b("fade"),onBeforeLeave:g.onClose,onAfterLeave:b[1]||(b[1]=_=>g.$emit("destroy")),persisted:""},{default:be(()=>[mt(R("div",{id:g.id,class:W([h(r).b(),g.customClass,h(u)]),style:Je(h(d)),role:"alert",onMouseenter:p,onMouseleave:f,onClick:b[0]||(b[0]=(..._)=>g.onClick&&g.onClick(..._))},[h(l)?(k(),Me(h(et),{key:0,class:W([h(r).e("icon"),h(i)])},{default:be(()=>[(k(),Me(kt(h(l))))]),_:1},8,["class"])):Ae("v-if",!0),R("div",{class:W(h(r).e("group"))},[R("h2",{class:W(h(r).e("title")),textContent:ze(g.title)},null,10,qqe),mt(R("div",{class:W(h(r).e("content")),style:Je(g.title?void 0:{margin:0})},[Pe(g.$slots,"default",{},()=>[g.dangerouslyUseHTMLString?(k(),D(Ze,{key:1},[Ae(" Caution here, message could've been compromised, never use user's input as message "),R("p",{innerHTML:g.message},null,8,Gqe)],2112)):(k(),D("p",Kqe,ze(g.message),1))])],6),[[zt,g.message]]),g.showClose?(k(),Me(h(et),{key:0,class:W(h(r).e("closeBtn")),onClick:ct(m,["stop"])},{default:be(()=>[me(h(o))]),_:1},8,["class","onClick"])):Ae("v-if",!0)],2)],46,Wqe),[[zt,s.value]])]),_:3},8,["name","onBeforeLeave"]))}});var Jqe=Fe(Xqe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/notification/src/notification.vue"]]);const u0={"top-left":[],"top-right":[],"bottom-left":[],"bottom-right":[]},sg=16;let Qqe=1;const Au=function(e={},t=null){if(!Pt)return{close:()=>{}};(typeof e=="string"||sn(e))&&(e={message:e});const n=e.position||"top-right";let r=e.offset||0;u0[n].forEach(({vm:d})=>{var f;r+=(((f=d.el)==null?void 0:f.offsetHeight)||0)+sg}),r+=sg;const{nextZIndex:o}=va(),s=`notification_${Qqe++}`,a=e.onClose,i={zIndex:o(),...e,offset:r,id:s,onClose:()=>{Zqe(s,n,a)}};let l=document.body;zo(e.appendTo)?l=e.appendTo:ft(e.appendTo)&&(l=document.querySelector(e.appendTo)),zo(l)||(l=document.body);const u=document.createElement("div"),c=me(Jqe,i,sn(i.message)?{default:()=>i.message}:null);return c.appContext=t??Au._context,c.props.onDestroy=()=>{Gi(null,u)},Gi(c,u),u0[n].push({vm:c}),l.appendChild(u.firstElementChild),{close:()=>{c.component.exposed.visible.value=!1}}};nO.forEach(e=>{Au[e]=(t={})=>((typeof t=="string"||sn(t))&&(t={message:t}),Au({...t,type:e}))});function Zqe(e,t,n){const r=u0[t],o=r.findIndex(({vm:u})=>{var c;return((c=u.component)==null?void 0:c.props.id)===e});if(o===-1)return;const{vm:s}=r[o];if(!s)return;n==null||n(s);const a=s.el.offsetHeight,i=t.split("-")[0];r.splice(o,1);const l=r.length;if(!(l<1))for(let u=o;u{t.component.exposed.visible.value=!1})}Au.closeAll=eKe;Au._context=null;const rO=d7(Au,"$notify");var tKe=[dqe,vqe,hr,tO,rO,qA],nKe=bke([...oqe,...tKe]),rKe={name:"zh-cn",el:{colorpicker:{confirm:"确定",clear:"清空"},datepicker:{now:"此刻",today:"今天",cancel:"取消",clear:"清空",confirm:"确定",selectDate:"选择日期",selectTime:"选择时间",startDate:"开始日期",startTime:"开始时间",endDate:"结束日期",endTime:"结束时间",prevYear:"前一年",nextYear:"后一年",prevMonth:"上个月",nextMonth:"下个月",year:"年",month1:"1 月",month2:"2 月",month3:"3 月",month4:"4 月",month5:"5 月",month6:"6 月",month7:"7 月",month8:"8 月",month9:"9 月",month10:"10 月",month11:"11 月",month12:"12 月",weeks:{sun:"日",mon:"一",tue:"二",wed:"三",thu:"四",fri:"五",sat:"六"},months:{jan:"一月",feb:"二月",mar:"三月",apr:"四月",may:"五月",jun:"六月",jul:"七月",aug:"八月",sep:"九月",oct:"十月",nov:"十一月",dec:"十二月"}},select:{loading:"加载中",noMatch:"无匹配数据",noData:"无数据",placeholder:"请选择"},cascader:{noMatch:"无匹配数据",loading:"加载中",placeholder:"请选择",noData:"暂无数据"},pagination:{goto:"前往",pagesize:"条/页",total:"共 {total} 条",pageClassifier:"页",deprecationWarning:"你使用了一些已被废弃的用法,请参考 el-pagination 的官方文档"},messagebox:{title:"提示",confirm:"确定",cancel:"取消",error:"输入的数据不合法!"},upload:{deleteTip:"按 delete 键可删除",delete:"删除",preview:"查看图片",continue:"继续上传"},table:{emptyText:"暂无数据",confirmFilter:"筛选",resetFilter:"重置",clearFilter:"全部",sumText:"合计"},tree:{emptyText:"暂无数据"},transfer:{noMatch:"无匹配数据",noData:"无数据",titles:["列表 1","列表 2"],filterPlaceholder:"请输入搜索内容",noCheckedFormat:"共 {total} 项",hasCheckedFormat:"已选 {checked}/{total} 项"},image:{error:"加载失败"},pageHeader:{title:"返回"},popconfirm:{confirmButtonText:"确定",cancelButtonText:"取消"}}};/*! + * vue-router v4.5.1 + * (c) 2025 Eduardo San Martin Morote + * @license MIT + */const Pl=typeof document<"u";function oO(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function oKe(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&oO(e.default)}const an=Object.assign;function Hv(e,t){const n={};for(const r in t){const o=t[r];n[r]=jo(o)?o.map(e):e(o)}return n}const td=()=>{},jo=Array.isArray,sO=/#/g,sKe=/&/g,aKe=/\//g,iKe=/=/g,lKe=/\?/g,aO=/\+/g,uKe=/%5B/g,cKe=/%5D/g,iO=/%5E/g,dKe=/%60/g,lO=/%7B/g,fKe=/%7C/g,uO=/%7D/g,pKe=/%20/g;function o3(e){return encodeURI(""+e).replace(fKe,"|").replace(uKe,"[").replace(cKe,"]")}function hKe(e){return o3(e).replace(lO,"{").replace(uO,"}").replace(iO,"^")}function ag(e){return o3(e).replace(aO,"%2B").replace(pKe,"+").replace(sO,"%23").replace(sKe,"%26").replace(dKe,"`").replace(lO,"{").replace(uO,"}").replace(iO,"^")}function mKe(e){return ag(e).replace(iKe,"%3D")}function vKe(e){return o3(e).replace(sO,"%23").replace(lKe,"%3F")}function gKe(e){return e==null?"":vKe(e).replace(aKe,"%2F")}function Hd(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const _Ke=/\/$/,yKe=e=>e.replace(_Ke,"");function Vv(e,t,n="/"){let r,o={},s="",a="";const i=t.indexOf("#");let l=t.indexOf("?");return i=0&&(l=-1),l>-1&&(r=t.slice(0,l),s=t.slice(l+1,i>-1?i:t.length),o=e(s)),i>-1&&(r=r||t.slice(0,i),a=t.slice(i,t.length)),r=EKe(r??t,n),{fullPath:r+(s&&"?")+s+a,path:r,query:o,hash:Hd(a)}}function bKe(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function L5(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function wKe(e,t,n){const r=t.matched.length-1,o=n.matched.length-1;return r>-1&&r===o&&Mu(t.matched[r],n.matched[o])&&cO(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Mu(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function cO(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!SKe(e[n],t[n]))return!1;return!0}function SKe(e,t){return jo(e)?B5(e,t):jo(t)?B5(t,e):e===t}function B5(e,t){return jo(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function EKe(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),o=r[r.length-1];(o===".."||o===".")&&r.push("");let s=n.length-1,a,i;for(a=0;a1&&s--;else break;return n.slice(0,s).join("/")+"/"+r.slice(a).join("/")}const $a={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var Vd;(function(e){e.pop="pop",e.push="push"})(Vd||(Vd={}));var nd;(function(e){e.back="back",e.forward="forward",e.unknown=""})(nd||(nd={}));function CKe(e){if(!e)if(Pl){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),yKe(e)}const kKe=/^[^#]+#/;function TKe(e,t){return e.replace(kKe,"#")+t}function $Ke(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const wm=()=>({left:window.scrollX,top:window.scrollY});function xKe(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),o=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!o)return;t=$Ke(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function D5(e,t){return(history.state?history.state.position-t:-1)+e}const ig=new Map;function IKe(e,t){ig.set(e,t)}function AKe(e){const t=ig.get(e);return ig.delete(e),t}let MKe=()=>location.protocol+"//"+location.host;function dO(e,t){const{pathname:n,search:r,hash:o}=t,s=e.indexOf("#");if(s>-1){let i=o.includes(e.slice(s))?e.slice(s).length:1,l=o.slice(i);return l[0]!=="/"&&(l="/"+l),L5(l,"")}return L5(n,e)+r+o}function OKe(e,t,n,r){let o=[],s=[],a=null;const i=({state:f})=>{const p=dO(e,location),m=n.value,v=t.value;let g=0;if(f){if(n.value=p,t.value=f,a&&a===m){a=null;return}g=v?f.position-v.position:0}else r(p);o.forEach(b=>{b(n.value,m,{delta:g,type:Vd.pop,direction:g?g>0?nd.forward:nd.back:nd.unknown})})};function l(){a=n.value}function u(f){o.push(f);const p=()=>{const m=o.indexOf(f);m>-1&&o.splice(m,1)};return s.push(p),p}function c(){const{history:f}=window;f.state&&f.replaceState(an({},f.state,{scroll:wm()}),"")}function d(){for(const f of s)f();s=[],window.removeEventListener("popstate",i),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",i),window.addEventListener("beforeunload",c,{passive:!0}),{pauseListeners:l,listen:u,destroy:d}}function z5(e,t,n,r=!1,o=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:o?wm():null}}function RKe(e){const{history:t,location:n}=window,r={value:dO(e,n)},o={value:t.state};o.value||s(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function s(l,u,c){const d=e.indexOf("#"),f=d>-1?(n.host&&document.querySelector("base")?e:e.slice(d))+l:MKe()+e+l;try{t[c?"replaceState":"pushState"](u,"",f),o.value=u}catch(p){console.error(p),n[c?"replace":"assign"](f)}}function a(l,u){const c=an({},t.state,z5(o.value.back,l,o.value.forward,!0),u,{position:o.value.position});s(l,c,!0),r.value=l}function i(l,u){const c=an({},o.value,t.state,{forward:l,scroll:wm()});s(c.current,c,!0);const d=an({},z5(r.value,l,null),{position:c.position+1},u);s(l,d,!1),r.value=l}return{location:r,state:o,push:i,replace:a}}function PKe(e){e=CKe(e);const t=RKe(e),n=OKe(e,t.state,t.location,t.replace);function r(s,a=!0){a||n.pauseListeners(),history.go(s)}const o=an({location:"",base:e,go:r,createHref:TKe.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}function NKe(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),PKe(e)}function LKe(e){return typeof e=="string"||e&&typeof e=="object"}function fO(e){return typeof e=="string"||typeof e=="symbol"}const pO=Symbol("");var F5;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(F5||(F5={}));function Ou(e,t){return an(new Error,{type:e,[pO]:!0},t)}function ws(e,t){return e instanceof Error&&pO in e&&(t==null||!!(e.type&t))}const H5="[^/]+?",BKe={sensitive:!1,strict:!1,start:!0,end:!0},DKe=/[.+*?^${}()[\]/\\]/g;function zKe(e,t){const n=an({},BKe,t),r=[];let o=n.start?"^":"";const s=[];for(const u of e){const c=u.length?[]:[90];n.strict&&!u.length&&(o+="/");for(let d=0;dt.length?t.length===1&&t[0]===80?1:-1:0}function hO(e,t){let n=0;const r=e.score,o=t.score;for(;n0&&t[t.length-1]<0}const HKe={type:0,value:""},VKe=/[a-zA-Z0-9_]/;function jKe(e){if(!e)return[[]];if(e==="/")return[[HKe]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(p){throw new Error(`ERR (${n})/"${u}": ${p}`)}let n=0,r=n;const o=[];let s;function a(){s&&o.push(s),s=[]}let i=0,l,u="",c="";function d(){u&&(n===0?s.push({type:0,value:u}):n===1||n===2||n===3?(s.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),s.push({type:1,value:u,regexp:c,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function f(){u+=l}for(;i{a(y)}:td}function a(d){if(fO(d)){const f=r.get(d);f&&(r.delete(d),n.splice(n.indexOf(f),1),f.children.forEach(a),f.alias.forEach(a))}else{const f=n.indexOf(d);f>-1&&(n.splice(f,1),d.record.name&&r.delete(d.record.name),d.children.forEach(a),d.alias.forEach(a))}}function i(){return n}function l(d){const f=GKe(d,n);n.splice(f,0,d),d.record.name&&!W5(d)&&r.set(d.record.name,d)}function u(d,f){let p,m={},v,g;if("name"in d&&d.name){if(p=r.get(d.name),!p)throw Ou(1,{location:d});g=p.record.name,m=an(j5(f.params,p.keys.filter(y=>!y.optional).concat(p.parent?p.parent.keys.filter(y=>y.optional):[]).map(y=>y.name)),d.params&&j5(d.params,p.keys.map(y=>y.name))),v=p.stringify(m)}else if(d.path!=null)v=d.path,p=n.find(y=>y.re.test(v)),p&&(m=p.parse(v),g=p.record.name);else{if(p=f.name?r.get(f.name):n.find(y=>y.re.test(f.path)),!p)throw Ou(1,{location:d,currentLocation:f});g=p.record.name,m=an({},f.params,d.params),v=p.stringify(m)}const b=[];let _=p;for(;_;)b.unshift(_.record),_=_.parent;return{name:g,path:v,params:m,matched:b,meta:KKe(b)}}e.forEach(d=>s(d));function c(){n.length=0,r.clear()}return{addRoute:s,resolve:u,removeRoute:a,clearRoutes:c,getRoutes:i,getRecordMatcher:o}}function j5(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function U5(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:qKe(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function qKe(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function W5(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function KKe(e){return e.reduce((t,n)=>an(t,n.meta),{})}function q5(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function GKe(e,t){let n=0,r=t.length;for(;n!==r;){const s=n+r>>1;hO(e,t[s])<0?r=s:n=s+1}const o=YKe(e);return o&&(r=t.lastIndexOf(o,r-1)),r}function YKe(e){let t=e;for(;t=t.parent;)if(mO(t)&&hO(e,t)===0)return t}function mO({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function XKe(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let o=0;os&&ag(s)):[r&&ag(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function JKe(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=jo(r)?r.map(o=>o==null?null:""+o):r==null?r:""+r)}return t}const QKe=Symbol(""),G5=Symbol(""),Sm=Symbol(""),s3=Symbol(""),lg=Symbol("");function wc(){let e=[];function t(r){return e.push(r),()=>{const o=e.indexOf(r);o>-1&&e.splice(o,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function ja(e,t,n,r,o,s=a=>a()){const a=r&&(r.enterCallbacks[o]=r.enterCallbacks[o]||[]);return()=>new Promise((i,l)=>{const u=f=>{f===!1?l(Ou(4,{from:n,to:t})):f instanceof Error?l(f):LKe(f)?l(Ou(2,{from:t,to:f})):(a&&r.enterCallbacks[o]===a&&typeof f=="function"&&a.push(f),i())},c=s(()=>e.call(r&&r.instances[o],t,n,u));let d=Promise.resolve(c);e.length<3&&(d=d.then(u)),d.catch(f=>l(f))})}function jv(e,t,n,r,o=s=>s()){const s=[];for(const a of e)for(const i in a.components){let l=a.components[i];if(!(t!=="beforeRouteEnter"&&!a.instances[i]))if(oO(l)){const c=(l.__vccOpts||l)[t];c&&s.push(ja(c,n,r,a,i,o))}else{let u=l();s.push(()=>u.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${i}" at "${a.path}"`);const d=oKe(c)?c.default:c;a.mods[i]=c,a.components[i]=d;const p=(d.__vccOpts||d)[t];return p&&ja(p,n,r,a,i,o)()}))}}return s}function Y5(e){const t=Ye(Sm),n=Ye(s3),r=z(()=>{const l=h(e.to);return t.resolve(l)}),o=z(()=>{const{matched:l}=r.value,{length:u}=l,c=l[u-1],d=n.matched;if(!c||!d.length)return-1;const f=d.findIndex(Mu.bind(null,c));if(f>-1)return f;const p=X5(l[u-2]);return u>1&&X5(c)===p&&d[d.length-1].path!==p?d.findIndex(Mu.bind(null,l[u-2])):f}),s=z(()=>o.value>-1&&rGe(n.params,r.value.params)),a=z(()=>o.value>-1&&o.value===n.matched.length-1&&cO(n.params,r.value.params));function i(l={}){if(nGe(l)){const u=t[h(e.replace)?"replace":"push"](h(e.to)).catch(td);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:z(()=>r.value.href),isActive:s,isExactActive:a,navigate:i}}function ZKe(e){return e.length===1?e[0]:e}const eGe=Ce({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Y5,setup(e,{slots:t}){const n=Ht(Y5(e)),{options:r}=Ye(Sm),o=z(()=>({[J5(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[J5(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const s=t.default&&ZKe(t.default(n));return e.custom?s:tt("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:o.value},s)}}}),tGe=eGe;function nGe(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function rGe(e,t){for(const n in t){const r=t[n],o=e[n];if(typeof r=="string"){if(r!==o)return!1}else if(!jo(o)||o.length!==r.length||r.some((s,a)=>s!==o[a]))return!1}return!0}function X5(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const J5=(e,t,n)=>e??t??n,oGe=Ce({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Ye(lg),o=z(()=>e.route||r.value),s=Ye(G5,0),a=z(()=>{let u=h(s);const{matched:c}=o.value;let d;for(;(d=c[u])&&!d.components;)u++;return u}),i=z(()=>o.value.matched[a.value]);Ct(G5,z(()=>a.value+1)),Ct(QKe,i),Ct(lg,o);const l=ee();return Be(()=>[l.value,i.value,e.name],([u,c,d],[f,p,m])=>{c&&(c.instances[d]=u,p&&p!==c&&u&&u===f&&(c.leaveGuards.size||(c.leaveGuards=p.leaveGuards),c.updateGuards.size||(c.updateGuards=p.updateGuards))),u&&c&&(!p||!Mu(c,p)||!f)&&(c.enterCallbacks[d]||[]).forEach(v=>v(u))},{flush:"post"}),()=>{const u=o.value,c=e.name,d=i.value,f=d&&d.components[c];if(!f)return Q5(n.default,{Component:f,route:u});const p=d.props[c],m=p?p===!0?u.params:typeof p=="function"?p(u):p:null,g=tt(f,an({},m,t,{onVnodeUnmounted:b=>{b.component.isUnmounted&&(d.instances[c]=null)},ref:l}));return Q5(n.default,{Component:g,route:u})||g}}});function Q5(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const vO=oGe;function sGe(e){const t=WKe(e.routes,e),n=e.parseQuery||XKe,r=e.stringifyQuery||K5,o=e.history,s=wc(),a=wc(),i=wc(),l=rn($a);let u=$a;Pl&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=Hv.bind(null,Y=>""+Y),d=Hv.bind(null,gKe),f=Hv.bind(null,Hd);function p(Y,K){let se,ne;return fO(Y)?(se=t.getRecordMatcher(Y),ne=K):ne=Y,t.addRoute(ne,se)}function m(Y){const K=t.getRecordMatcher(Y);K&&t.removeRoute(K)}function v(){return t.getRoutes().map(Y=>Y.record)}function g(Y){return!!t.getRecordMatcher(Y)}function b(Y,K){if(K=an({},K||l.value),typeof Y=="string"){const ce=Vv(n,Y,K.path),oe=t.resolve({path:ce.path},K),he=o.createHref(ce.fullPath);return an(ce,oe,{params:f(oe.params),hash:Hd(ce.hash),redirectedFrom:void 0,href:he})}let se;if(Y.path!=null)se=an({},Y,{path:Vv(n,Y.path,K.path).path});else{const ce=an({},Y.params);for(const oe in ce)ce[oe]==null&&delete ce[oe];se=an({},Y,{params:d(ce)}),K.params=d(K.params)}const ne=t.resolve(se,K),ve=Y.hash||"";ne.params=c(f(ne.params));const J=bKe(r,an({},Y,{hash:hKe(ve),path:ne.path})),ae=o.createHref(J);return an({fullPath:J,hash:ve,query:r===K5?JKe(Y.query):Y.query||{}},ne,{redirectedFrom:void 0,href:ae})}function _(Y){return typeof Y=="string"?Vv(n,Y,l.value.path):an({},Y)}function y(Y,K){if(u!==Y)return Ou(8,{from:K,to:Y})}function S(Y){return T(Y)}function w(Y){return S(an(_(Y),{replace:!0}))}function E(Y){const K=Y.matched[Y.matched.length-1];if(K&&K.redirect){const{redirect:se}=K;let ne=typeof se=="function"?se(Y):se;return typeof ne=="string"&&(ne=ne.includes("?")||ne.includes("#")?ne=_(ne):{path:ne},ne.params={}),an({query:Y.query,hash:Y.hash,params:ne.path!=null?{}:Y.params},ne)}}function T(Y,K){const se=u=b(Y),ne=l.value,ve=Y.state,J=Y.force,ae=Y.replace===!0,ce=E(se);if(ce)return T(an(_(ce),{state:typeof ce=="object"?an({},ve,ce.state):ve,force:J,replace:ae}),K||se);const oe=se;oe.redirectedFrom=K;let he;return!J&&wKe(r,ne,se)&&(he=Ou(16,{to:oe,from:ne}),te(ne,ne,!0,!1)),(he?Promise.resolve(he):x(oe,ne)).catch(le=>ws(le)?ws(le,2)?le:q(le):O(le,oe,ne)).then(le=>{if(le){if(ws(le,2))return T(an({replace:ae},_(le.to),{state:typeof le.to=="object"?an({},ve,le.to.state):ve,force:J}),K||oe)}else le=I(oe,ne,!0,ae,ve);return N(oe,ne,le),le})}function C(Y,K){const se=y(Y,K);return se?Promise.reject(se):Promise.resolve()}function $(Y){const K=ge.values().next().value;return K&&typeof K.runWithContext=="function"?K.runWithContext(Y):Y()}function x(Y,K){let se;const[ne,ve,J]=aGe(Y,K);se=jv(ne.reverse(),"beforeRouteLeave",Y,K);for(const ce of ne)ce.leaveGuards.forEach(oe=>{se.push(ja(oe,Y,K))});const ae=C.bind(null,Y,K);return se.push(ae),ke(se).then(()=>{se=[];for(const ce of s.list())se.push(ja(ce,Y,K));return se.push(ae),ke(se)}).then(()=>{se=jv(ve,"beforeRouteUpdate",Y,K);for(const ce of ve)ce.updateGuards.forEach(oe=>{se.push(ja(oe,Y,K))});return se.push(ae),ke(se)}).then(()=>{se=[];for(const ce of J)if(ce.beforeEnter)if(jo(ce.beforeEnter))for(const oe of ce.beforeEnter)se.push(ja(oe,Y,K));else se.push(ja(ce.beforeEnter,Y,K));return se.push(ae),ke(se)}).then(()=>(Y.matched.forEach(ce=>ce.enterCallbacks={}),se=jv(J,"beforeRouteEnter",Y,K,$),se.push(ae),ke(se))).then(()=>{se=[];for(const ce of a.list())se.push(ja(ce,Y,K));return se.push(ae),ke(se)}).catch(ce=>ws(ce,8)?ce:Promise.reject(ce))}function N(Y,K,se){i.list().forEach(ne=>$(()=>ne(Y,K,se)))}function I(Y,K,se,ne,ve){const J=y(Y,K);if(J)return J;const ae=K===$a,ce=Pl?history.state:{};se&&(ne||ae?o.replace(Y.fullPath,an({scroll:ae&&ce&&ce.scroll},ve)):o.push(Y.fullPath,ve)),l.value=Y,te(Y,K,se,ae),q()}let L;function F(){L||(L=o.listen((Y,K,se)=>{if(!ie.listening)return;const ne=b(Y),ve=E(ne);if(ve){T(an(ve,{replace:!0,force:!0}),ne).catch(td);return}u=ne;const J=l.value;Pl&&IKe(D5(J.fullPath,se.delta),wm()),x(ne,J).catch(ae=>ws(ae,12)?ae:ws(ae,2)?(T(an(_(ae.to),{force:!0}),ne).then(ce=>{ws(ce,20)&&!se.delta&&se.type===Vd.pop&&o.go(-1,!1)}).catch(td),Promise.reject()):(se.delta&&o.go(-se.delta,!1),O(ae,ne,J))).then(ae=>{ae=ae||I(ne,J,!1),ae&&(se.delta&&!ws(ae,8)?o.go(-se.delta,!1):se.type===Vd.pop&&ws(ae,20)&&o.go(-1,!1)),N(ne,J,ae)}).catch(td)}))}let B=wc(),U=wc(),P;function O(Y,K,se){q(Y);const ne=U.list();return ne.length?ne.forEach(ve=>ve(Y,K,se)):console.error(Y),Promise.reject(Y)}function H(){return P&&l.value!==$a?Promise.resolve():new Promise((Y,K)=>{B.add([Y,K])})}function q(Y){return P||(P=!Y,F(),B.list().forEach(([K,se])=>Y?se(Y):K()),B.reset()),Y}function te(Y,K,se,ne){const{scrollBehavior:ve}=e;if(!Pl||!ve)return Promise.resolve();const J=!se&&AKe(D5(Y.fullPath,0))||(ne||!se)&&history.state&&history.state.scroll||null;return Xe().then(()=>ve(Y,K,J)).then(ae=>ae&&xKe(ae)).catch(ae=>O(ae,Y,K))}const V=Y=>o.go(Y);let Q;const ge=new Set,ie={currentRoute:l,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:v,resolve:b,options:e,push:S,replace:w,go:V,back:()=>V(-1),forward:()=>V(1),beforeEach:s.add,beforeResolve:a.add,afterEach:i.add,onError:U.add,isReady:H,install(Y){const K=this;Y.component("RouterLink",tGe),Y.component("RouterView",vO),Y.config.globalProperties.$router=K,Object.defineProperty(Y.config.globalProperties,"$route",{enumerable:!0,get:()=>h(l)}),Pl&&!Q&&l.value===$a&&(Q=!0,S(o.location).catch(ve=>{}));const se={};for(const ve in $a)Object.defineProperty(se,ve,{get:()=>l.value[ve],enumerable:!0});Y.provide(Sm,K),Y.provide(s3,w0(se)),Y.provide(lg,l);const ne=Y.unmount;ge.add(Y),Y.unmount=function(){ge.delete(Y),ge.size<1&&(u=$a,L&&L(),L=null,l.value=$a,Q=!1,P=!1),ne()}}};function ke(Y){return Y.reduce((K,se)=>K.then(()=>$(se)),Promise.resolve())}return ie}function aGe(e,t){const n=[],r=[],o=[],s=Math.max(t.matched.length,e.matched.length);for(let a=0;aMu(u,i))?r.push(i):n.push(i));const l=e.matched[a];l&&(t.matched.find(u=>Mu(u,l))||o.push(l))}return[n,r,o]}function gO(){return Ye(Sm)}function _O(e){return Ye(s3)}const iGe="modulepreload",lGe=function(e){return"/"+e},Z5={},Zo=function(t,n,r){let o=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),i=(a==null?void 0:a.nonce)||(a==null?void 0:a.getAttribute("nonce"));o=Promise.allSettled(n.map(l=>{if(l=lGe(l),l in Z5)return;Z5[l]=!0;const u=l.endsWith(".css"),c=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${c}`))return;const d=document.createElement("link");if(d.rel=u?"stylesheet":iGe,u||(d.as="script"),d.crossOrigin="",d.href=l,i&&d.setAttribute("nonce",i),document.head.appendChild(d),u)return new Promise((f,p)=>{d.addEventListener("load",f),d.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${l}`)))})}))}function s(a){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=a,window.dispatchEvent(i),!i.defaultPrevented)throw a}return o.then(a=>{for(const i of a||[])i.status==="rejected"&&s(i.reason);return t().catch(s)})};var a3={exports:{}},yO=function(t,n){return function(){for(var o=new Array(arguments.length),s=0;s"u"}function cGe(e){return e!==null&&!c0(e)&&e.constructor!==null&&!c0(e.constructor)&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}var bO=fl("ArrayBuffer");function dGe(e){var t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&bO(e.buffer),t}function fGe(e){return typeof e=="string"}function pGe(e){return typeof e=="number"}function wO(e){return e!==null&&typeof e=="object"}function Vp(e){if(l3(e)!=="object")return!1;var t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}var hGe=fl("Date"),mGe=fl("File"),vGe=fl("Blob"),gGe=fl("FileList");function c3(e){return i3.call(e)==="[object Function]"}function _Ge(e){return wO(e)&&c3(e.pipe)}function yGe(e){var t="[object FormData]";return e&&(typeof FormData=="function"&&e instanceof FormData||i3.call(e)===t||c3(e.toString)&&e.toString()===t)}var bGe=fl("URLSearchParams");function wGe(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function SGe(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function d3(e,t){if(!(e===null||typeof e>"u"))if(typeof e!="object"&&(e=[e]),u3(e))for(var n=0,r=e.length;n0;)s=r[o],a[s]||(t[s]=e[s],a[s]=!0);e=Object.getPrototypeOf(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t}function $Ge(e,t,n){e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;var r=e.indexOf(t,n);return r!==-1&&r===n}function xGe(e){if(!e)return null;var t=e.length;if(c0(t))return null;for(var n=new Array(t);t-- >0;)n[t]=e[t];return n}var IGe=function(e){return function(t){return e&&t instanceof e}}(typeof Uint8Array<"u"&&Object.getPrototypeOf(Uint8Array)),ar={isArray:u3,isArrayBuffer:bO,isBuffer:cGe,isFormData:yGe,isArrayBufferView:dGe,isString:fGe,isNumber:pGe,isObject:wO,isPlainObject:Vp,isUndefined:c0,isDate:hGe,isFile:mGe,isBlob:vGe,isFunction:c3,isStream:_Ge,isURLSearchParams:bGe,isStandardBrowserEnv:SGe,forEach:d3,merge:ug,extend:EGe,trim:wGe,stripBOM:CGe,inherits:kGe,toFlatObject:TGe,kindOf:l3,kindOfTest:fl,endsWith:$Ge,toArray:xGe,isTypedArray:IGe,isFileList:gGe},El=ar;function eE(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var SO=function(t,n,r){if(!n)return t;var o;if(r)o=r(n);else if(El.isURLSearchParams(n))o=n.toString();else{var s=[];El.forEach(n,function(l,u){l===null||typeof l>"u"||(El.isArray(l)?u=u+"[]":l=[l],El.forEach(l,function(d){El.isDate(d)?d=d.toISOString():El.isObject(d)&&(d=JSON.stringify(d)),s.push(eE(u)+"="+eE(d))}))}),o=s.join("&")}if(o){var a=t.indexOf("#");a!==-1&&(t=t.slice(0,a)),t+=(t.indexOf("?")===-1?"?":"&")+o}return t},AGe=ar;function Em(){this.handlers=[]}Em.prototype.use=function(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1};Em.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)};Em.prototype.forEach=function(t){AGe.forEach(this.handlers,function(r){r!==null&&t(r)})};var MGe=Em,OGe=ar,RGe=function(t,n){OGe.forEach(t,function(o,s){s!==n&&s.toUpperCase()===n.toUpperCase()&&(t[n]=o,delete t[s])})},Uv,tE;function rc(){if(tE)return Uv;tE=1;var e=ar;function t(o,s,a,i,l){Error.call(this),this.message=o,this.name="AxiosError",s&&(this.code=s),a&&(this.config=a),i&&(this.request=i),l&&(this.response=l)}e.inherits(t,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}}});var n=t.prototype,r={};return["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED"].forEach(function(o){r[o]={value:o}}),Object.defineProperties(t,r),Object.defineProperty(n,"isAxiosError",{value:!0}),t.from=function(o,s,a,i,l,u){var c=Object.create(n);return e.toFlatObject(o,c,function(f){return f!==Error.prototype}),t.call(c,o.message,s,a,i,l),c.name=o.name,u&&Object.assign(c,u),c},Uv=t,Uv}var EO={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Wv,nE;function CO(){if(nE)return Wv;nE=1;var e=ar;function t(n,r){r=r||new FormData;var o=[];function s(i){return i===null?"":e.isDate(i)?i.toISOString():e.isArrayBuffer(i)||e.isTypedArray(i)?typeof Blob=="function"?new Blob([i]):Buffer.from(i):i}function a(i,l){if(e.isPlainObject(i)||e.isArray(i)){if(o.indexOf(i)!==-1)throw Error("Circular reference detected in "+l);o.push(i),e.forEach(i,function(c,d){if(!e.isUndefined(c)){var f=l?l+"."+d:d,p;if(c&&!l&&typeof c=="object"){if(e.endsWith(d,"{}"))c=JSON.stringify(c);else if(e.endsWith(d,"[]")&&(p=e.toArray(c))){p.forEach(function(m){!e.isUndefined(m)&&r.append(f,s(m))});return}}a(c,f)}}),o.pop()}else r.append(l,s(i))}return a(n),r}return Wv=t,Wv}var qv,rE;function PGe(){if(rE)return qv;rE=1;var e=rc();return qv=function(n,r,o){var s=o.config.validateStatus;!o.status||!s||s(o.status)?n(o):r(new e("Request failed with status code "+o.status,[e.ERR_BAD_REQUEST,e.ERR_BAD_RESPONSE][Math.floor(o.status/100)-4],o.config,o.request,o))},qv}var Kv,oE;function NGe(){if(oE)return Kv;oE=1;var e=ar;return Kv=e.isStandardBrowserEnv()?function(){return{write:function(r,o,s,a,i,l){var u=[];u.push(r+"="+encodeURIComponent(o)),e.isNumber(s)&&u.push("expires="+new Date(s).toGMTString()),e.isString(a)&&u.push("path="+a),e.isString(i)&&u.push("domain="+i),l===!0&&u.push("secure"),document.cookie=u.join("; ")},read:function(r){var o=document.cookie.match(new RegExp("(^|;\\s*)("+r+")=([^;]*)"));return o?decodeURIComponent(o[3]):null},remove:function(r){this.write(r,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}(),Kv}var LGe=function(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)},BGe=function(t,n){return n?t.replace(/\/+$/,"")+"/"+n.replace(/^\/+/,""):t},DGe=LGe,zGe=BGe,kO=function(t,n){return t&&!DGe(n)?zGe(t,n):n},Gv,sE;function FGe(){if(sE)return Gv;sE=1;var e=ar,t=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];return Gv=function(r){var o={},s,a,i;return r&&e.forEach(r.split(` +`),function(u){if(i=u.indexOf(":"),s=e.trim(u.substr(0,i)).toLowerCase(),a=e.trim(u.substr(i+1)),s){if(o[s]&&t.indexOf(s)>=0)return;s==="set-cookie"?o[s]=(o[s]?o[s]:[]).concat([a]):o[s]=o[s]?o[s]+", "+a:a}}),o},Gv}var Yv,aE;function HGe(){if(aE)return Yv;aE=1;var e=ar;return Yv=e.isStandardBrowserEnv()?function(){var n=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a"),o;function s(a){var i=a;return n&&(r.setAttribute("href",i),i=r.href),r.setAttribute("href",i),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:r.pathname.charAt(0)==="/"?r.pathname:"/"+r.pathname}}return o=s(window.location.href),function(i){var l=e.isString(i)?s(i):i;return l.protocol===o.protocol&&l.host===o.host}}():function(){return function(){return!0}}(),Yv}var Xv,iE;function Cm(){if(iE)return Xv;iE=1;var e=rc(),t=ar;function n(r){e.call(this,r??"canceled",e.ERR_CANCELED),this.name="CanceledError"}return t.inherits(n,e,{__CANCEL__:!0}),Xv=n,Xv}var Jv,lE;function VGe(){return lE||(lE=1,Jv=function(t){var n=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return n&&n[1]||""}),Jv}var Qv,uE;function cE(){if(uE)return Qv;uE=1;var e=ar,t=PGe(),n=NGe(),r=SO,o=kO,s=FGe(),a=HGe(),i=EO,l=rc(),u=Cm(),c=VGe();return Qv=function(f){return new Promise(function(m,v){var g=f.data,b=f.headers,_=f.responseType,y;function S(){f.cancelToken&&f.cancelToken.unsubscribe(y),f.signal&&f.signal.removeEventListener("abort",y)}e.isFormData(g)&&e.isStandardBrowserEnv()&&delete b["Content-Type"];var w=new XMLHttpRequest;if(f.auth){var E=f.auth.username||"",T=f.auth.password?unescape(encodeURIComponent(f.auth.password)):"";b.Authorization="Basic "+btoa(E+":"+T)}var C=o(f.baseURL,f.url);w.open(f.method.toUpperCase(),r(C,f.params,f.paramsSerializer),!0),w.timeout=f.timeout;function $(){if(w){var I="getAllResponseHeaders"in w?s(w.getAllResponseHeaders()):null,L=!_||_==="text"||_==="json"?w.responseText:w.response,F={data:L,status:w.status,statusText:w.statusText,headers:I,config:f,request:w};t(function(U){m(U),S()},function(U){v(U),S()},F),w=null}}if("onloadend"in w?w.onloadend=$:w.onreadystatechange=function(){!w||w.readyState!==4||w.status===0&&!(w.responseURL&&w.responseURL.indexOf("file:")===0)||setTimeout($)},w.onabort=function(){w&&(v(new l("Request aborted",l.ECONNABORTED,f,w)),w=null)},w.onerror=function(){v(new l("Network Error",l.ERR_NETWORK,f,w,w)),w=null},w.ontimeout=function(){var L=f.timeout?"timeout of "+f.timeout+"ms exceeded":"timeout exceeded",F=f.transitional||i;f.timeoutErrorMessage&&(L=f.timeoutErrorMessage),v(new l(L,F.clarifyTimeoutError?l.ETIMEDOUT:l.ECONNABORTED,f,w)),w=null},e.isStandardBrowserEnv()){var x=(f.withCredentials||a(C))&&f.xsrfCookieName?n.read(f.xsrfCookieName):void 0;x&&(b[f.xsrfHeaderName]=x)}"setRequestHeader"in w&&e.forEach(b,function(L,F){typeof g>"u"&&F.toLowerCase()==="content-type"?delete b[F]:w.setRequestHeader(F,L)}),e.isUndefined(f.withCredentials)||(w.withCredentials=!!f.withCredentials),_&&_!=="json"&&(w.responseType=f.responseType),typeof f.onDownloadProgress=="function"&&w.addEventListener("progress",f.onDownloadProgress),typeof f.onUploadProgress=="function"&&w.upload&&w.upload.addEventListener("progress",f.onUploadProgress),(f.cancelToken||f.signal)&&(y=function(I){w&&(v(!I||I&&I.type?new u:I),w.abort(),w=null)},f.cancelToken&&f.cancelToken.subscribe(y),f.signal&&(f.signal.aborted?y():f.signal.addEventListener("abort",y))),g||(g=null);var N=c(C);if(N&&["http","https","file"].indexOf(N)===-1){v(new l("Unsupported protocol "+N+":",l.ERR_BAD_REQUEST,f));return}w.send(g)})},Qv}var Zv,dE;function jGe(){return dE||(dE=1,Zv=null),Zv}var qn=ar,fE=RGe,pE=rc(),UGe=EO,WGe=CO(),qGe={"Content-Type":"application/x-www-form-urlencoded"};function hE(e,t){!qn.isUndefined(e)&&qn.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function KGe(){var e;return(typeof XMLHttpRequest<"u"||typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]")&&(e=cE()),e}function GGe(e,t,n){if(qn.isString(e))try{return(t||JSON.parse)(e),qn.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}var km={transitional:UGe,adapter:KGe(),transformRequest:[function(t,n){if(fE(n,"Accept"),fE(n,"Content-Type"),qn.isFormData(t)||qn.isArrayBuffer(t)||qn.isBuffer(t)||qn.isStream(t)||qn.isFile(t)||qn.isBlob(t))return t;if(qn.isArrayBufferView(t))return t.buffer;if(qn.isURLSearchParams(t))return hE(n,"application/x-www-form-urlencoded;charset=utf-8"),t.toString();var r=qn.isObject(t),o=n&&n["Content-Type"],s;if((s=qn.isFileList(t))||r&&o==="multipart/form-data"){var a=this.env&&this.env.FormData;return WGe(s?{"files[]":t}:t,a&&new a)}else if(r||o==="application/json")return hE(n,"application/json"),GGe(t);return t}],transformResponse:[function(t){var n=this.transitional||km.transitional,r=n&&n.silentJSONParsing,o=n&&n.forcedJSONParsing,s=!r&&this.responseType==="json";if(s||o&&qn.isString(t)&&t.length)try{return JSON.parse(t)}catch(a){if(s)throw a.name==="SyntaxError"?pE.from(a,pE.ERR_BAD_RESPONSE,this,null,this.response):a}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:jGe()},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};qn.forEach(["delete","get","head"],function(t){km.headers[t]={}});qn.forEach(["post","put","patch"],function(t){km.headers[t]=qn.merge(qGe)});var f3=km,YGe=ar,XGe=f3,JGe=function(t,n,r){var o=this||XGe;return YGe.forEach(r,function(a){t=a.call(o,t,n)}),t},e2,mE;function TO(){return mE||(mE=1,e2=function(t){return!!(t&&t.__CANCEL__)}),e2}var vE=ar,t2=JGe,QGe=TO(),ZGe=f3,eYe=Cm();function n2(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new eYe}var tYe=function(t){n2(t),t.headers=t.headers||{},t.data=t2.call(t,t.data,t.headers,t.transformRequest),t.headers=vE.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),vE.forEach(["delete","get","head","post","put","patch","common"],function(o){delete t.headers[o]});var n=t.adapter||ZGe.adapter;return n(t).then(function(o){return n2(t),o.data=t2.call(t,o.data,o.headers,t.transformResponse),o},function(o){return QGe(o)||(n2(t),o&&o.response&&(o.response.data=t2.call(t,o.response.data,o.response.headers,t.transformResponse))),Promise.reject(o)})},qr=ar,$O=function(t,n){n=n||{};var r={};function o(c,d){return qr.isPlainObject(c)&&qr.isPlainObject(d)?qr.merge(c,d):qr.isPlainObject(d)?qr.merge({},d):qr.isArray(d)?d.slice():d}function s(c){if(qr.isUndefined(n[c])){if(!qr.isUndefined(t[c]))return o(void 0,t[c])}else return o(t[c],n[c])}function a(c){if(!qr.isUndefined(n[c]))return o(void 0,n[c])}function i(c){if(qr.isUndefined(n[c])){if(!qr.isUndefined(t[c]))return o(void 0,t[c])}else return o(void 0,n[c])}function l(c){if(c in n)return o(t[c],n[c]);if(c in t)return o(void 0,t[c])}var u={url:a,method:a,data:a,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:l};return qr.forEach(Object.keys(t).concat(Object.keys(n)),function(d){var f=u[d]||s,p=f(d);qr.isUndefined(p)&&f!==l||(r[d]=p)}),r},r2,gE;function xO(){return gE||(gE=1,r2={version:"0.27.2"}),r2}var nYe=xO().version,Ua=rc(),p3={};["object","boolean","number","function","string","symbol"].forEach(function(e,t){p3[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});var _E={};p3.transitional=function(t,n,r){function o(s,a){return"[Axios v"+nYe+"] Transitional option '"+s+"'"+a+(r?". "+r:"")}return function(s,a,i){if(t===!1)throw new Ua(o(a," has been removed"+(n?" in "+n:"")),Ua.ERR_DEPRECATED);return n&&!_E[a]&&(_E[a]=!0,console.warn(o(a," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(s,a,i):!0}};function rYe(e,t,n){if(typeof e!="object")throw new Ua("options must be an object",Ua.ERR_BAD_OPTION_VALUE);for(var r=Object.keys(e),o=r.length;o-- >0;){var s=r[o],a=t[s];if(a){var i=e[s],l=i===void 0||a(i,s,e);if(l!==!0)throw new Ua("option "+s+" must be "+l,Ua.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Ua("Unknown option "+s,Ua.ERR_BAD_OPTION)}}var oYe={assertOptions:rYe,validators:p3},IO=ar,sYe=SO,yE=MGe,bE=tYe,Tm=$O,aYe=kO,AO=oYe,Cl=AO.validators;function Ru(e){this.defaults=e,this.interceptors={request:new yE,response:new yE}}Ru.prototype.request=function(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Tm(this.defaults,n),n.method?n.method=n.method.toLowerCase():this.defaults.method?n.method=this.defaults.method.toLowerCase():n.method="get";var r=n.transitional;r!==void 0&&AO.assertOptions(r,{silentJSONParsing:Cl.transitional(Cl.boolean),forcedJSONParsing:Cl.transitional(Cl.boolean),clarifyTimeoutError:Cl.transitional(Cl.boolean)},!1);var o=[],s=!0;this.interceptors.request.forEach(function(p){typeof p.runWhen=="function"&&p.runWhen(n)===!1||(s=s&&p.synchronous,o.unshift(p.fulfilled,p.rejected))});var a=[];this.interceptors.response.forEach(function(p){a.push(p.fulfilled,p.rejected)});var i;if(!s){var l=[bE,void 0];for(Array.prototype.unshift.apply(l,o),l=l.concat(a),i=Promise.resolve(n);l.length;)i=i.then(l.shift(),l.shift());return i}for(var u=n;o.length;){var c=o.shift(),d=o.shift();try{u=c(u)}catch(f){d(f);break}}try{i=bE(u)}catch(f){return Promise.reject(f)}for(;a.length;)i=i.then(a.shift(),a.shift());return i};Ru.prototype.getUri=function(t){t=Tm(this.defaults,t);var n=aYe(t.baseURL,t.url);return sYe(n,t.params,t.paramsSerializer)};IO.forEach(["delete","get","head","options"],function(t){Ru.prototype[t]=function(n,r){return this.request(Tm(r||{},{method:t,url:n,data:(r||{}).data}))}});IO.forEach(["post","put","patch"],function(t){function n(r){return function(s,a,i){return this.request(Tm(i||{},{method:t,headers:r?{"Content-Type":"multipart/form-data"}:{},url:s,data:a}))}}Ru.prototype[t]=n(),Ru.prototype[t+"Form"]=n(!0)});var iYe=Ru,o2,wE;function lYe(){if(wE)return o2;wE=1;var e=Cm();function t(n){if(typeof n!="function")throw new TypeError("executor must be a function.");var r;this.promise=new Promise(function(a){r=a});var o=this;this.promise.then(function(s){if(o._listeners){var a,i=o._listeners.length;for(a=0;a"u")){a=ep({},t,a),typeof a.expires=="number"&&(a.expires=new Date(Date.now()+a.expires*864e5)),a.expires&&(a.expires=a.expires.toUTCString()),o=encodeURIComponent(o).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var i="";for(var l in a)a[l]&&(i+="; "+l,a[l]!==!0&&(i+="="+a[l].split(";")[0]));return document.cookie=o+"="+e.write(s,o)+i}}function r(o){if(!(typeof document>"u"||arguments.length&&!o)){for(var s=document.cookie?document.cookie.split("; "):[],a={},i=0;idg(t.to)),r=z(()=>n.value?"a":"router-link");function o(){return n.value?{href:t.to,target:"_blank",rel:"noopener"}:{to:t.to}}return(s,a)=>(k(),Me(kt(h(r)),Yr(Fu(o())),{default:be(()=>[Pe(s.$slots,"default")]),_:3},16))}},yYe={key:0},bYe=["title"],wYe=["title"],SYe={__name:"SidebarItem",props:{item:{type:Object,required:!0},isNest:{type:Boolean,default:!1},basePath:{type:String,default:""}},setup(e){const t=e,n=ee({});function r(a=[],i){a||(a=[]);const l=a.filter(u=>u.hidden?!1:(n.value=u,!0));return l.length===1?!0:l.length===0?(n.value={...i,path:"",noShowingChildren:!0},!0):!1}function o(a,i){if(dg(a))return a;if(dg(t.basePath))return t.basePath;if(i){let l=JSON.parse(i);return{path:Yw(t.basePath+"/"+a),query:l}}return Yw(t.basePath+"/"+a)}function s(a){return a.length>5?a:""}return(a,i)=>{const l=rt("el-menu-item"),u=rt("sidebar-item",!0),c=rt("el-sub-menu");return e.item.hidden?Ae("",!0):(k(),D("div",yYe,[r(e.item.children,e.item)&&(!h(n).children||h(n).noShowingChildren)&&!e.item.alwaysShow?(k(),D(Ze,{key:0},[h(n).meta?(k(),Me(_Ye,{key:0,to:o(h(n).path,h(n).query)},{default:be(()=>[me(l,{index:o(h(n).path),class:W({"submenu-title-noDropdown":!e.isNest})},{default:be(()=>[R("span",{class:"menu-title",title:s(h(n).meta.title)},ze(h(n).meta.title),9,bYe)]),_:1},8,["index","class"])]),_:1},8,["to"])):Ae("",!0)],64)):(k(),Me(c,{key:1,ref:"subMenu",index:o(e.item.path),"popper-append-to-body":""},Bo({default:be(()=>[(k(!0),D(Ze,null,At(e.item.children,d=>(k(),Me(u,{key:d.path,"is-nest":!0,item:d,"base-path":o(d.path),class:"nest-menu"},null,8,["item","base-path"]))),128))]),_:2},[e.item.meta?{name:"title",fn:be(()=>[R("span",{class:"menu-title",title:s(e.item.meta.title)},ze(e.item.meta.title),9,wYe)]),key:"0"}:void 0]),1032,["index"]))]))}}},EYe="#000",CYe="rgba(0, 0, 0, 0.7)",kYe="#000",TYe="#fff",$Ye="#ffffff",xYe="#fff",IYe="#c4cbf3",AYe="200px",MYe="#ffffff",OYe="#001529",RYe="#409EFF",PYe="#67C23A",NYe="#F56C6C",LYe="#909399",BYe="#E6A23C",kl={menuColor:EYe,menuLightColor:CYe,menuColorActive:kYe,menuBackground:TYe,menuLightBackground:$Ye,subMenuBackground:xYe,subMenuHover:IYe,sideBarWidth:AYe,logoTitleColor:MYe,logoLightTitleColor:OYe,primaryColor:RYe,successColor:PYe,dangerColor:NYe,infoColor:LYe,warningColor:BYe},RO=Kd("app",{state:()=>({sidebar:{opened:tp.get("sidebarStatus")?!!+tp.get("sidebarStatus"):!0,withoutAnimation:!1,hide:!1},device:"desktop",size:tp.get("size")||"default"}),actions:{toggleSideBar(e){if(this.sidebar.hide)return!1;this.sidebar.opened=!this.sidebar.opened,this.sidebar.withoutAnimation=e,this.sidebar.opened},closeSideBar({withoutAnimation:e}){this.sidebar.opened=!1,this.sidebar.withoutAnimation=e},toggleDevice(e){this.device=e},setSize(e){this.size=e,tp.set("size",e)},toggleSideBarHide(e){this.sidebar.hide=e}}}),fg={title:void 0,sideTheme:"theme-dark",showSettings:!0,topNav:!1,tagsView:!0,fixedHeader:!1,sidebarLogo:!1,dynamicTitle:!1};function DYe(){const e=h3();e.dynamicTitle?document.title=e.title+" - "+fg.title:document.title=fg.title}const{sideTheme:zYe,showSettings:FYe,topNav:HYe,tagsView:VYe,fixedHeader:jYe,sidebarLogo:UYe,dynamicTitle:WYe}=fg,Mr=JSON.parse(localStorage.getItem("layout-setting"))||"",h3=Kd("settings",{state:()=>({title:"",theme:Mr.theme===void 0?"#434343":Mr.theme,sideTheme:Mr.sideTheme===void 0?zYe:Mr.sideTheme,showSettings:FYe,topNav:Mr.topNav===void 0?HYe:Mr.topNav,tagsView:Mr.tagsView===void 0?VYe:Mr.tagsView,fixedHeader:Mr.fixedHeader===void 0?jYe:Mr.fixedHeader,sidebarLogo:Mr.sidebarLogo===void 0?UYe:Mr.sidebarLogo,dynamicTitle:Mr.dynamicTitle===void 0?WYe:Mr.dynamicTitle}),actions:{changeSetting(e){const{key:t,value:n}=e;this.hasOwnProperty(t)&&(this[t]=n)},setTitle(e){this.title=e,DYe()}}}),qYe={__name:"index",setup(e){const t=_O(),n=RO(),r=h3(),o=z(()=>r.sidebarLogo),s=z(()=>r.sideTheme),a=z(()=>r.theme);z(()=>!n.sidebar.opened);const i=z(()=>{const{meta:l,path:u}=t;return l.activeMenu?l.activeMenu:u});return(l,u)=>{const c=rt("el-menu"),d=rt("el-scrollbar");return k(),D("div",{class:W({"has-logo":h(o)}),style:Je({backgroundColor:h(s)==="theme-dark"?h(kl).menuBackground:h(kl).menuLightBackground})},[me(d,{class:W(h(s)),"wrap-class":"scrollbar-wrapper"},{default:be(()=>[me(c,{"default-active":h(i),collapse:!1,"background-color":h(s)==="theme-dark"?h(kl).menuBackground:h(kl).menuLightBackground,"text-color":h(s)==="theme-dark"?h(kl).menuColor:h(kl).menuLightColor,"unique-opened":!0,"active-text-color":h(a),"collapse-transition":!1,mode:"vertical"},{default:be(()=>[(k(!0),D(Ze,null,At(h(fP),(f,p)=>(k(),Me(SYe,{key:f.path+p,item:f,"base-path":f.path},null,8,["item","base-path"]))),128))]),_:1},8,["default-active","background-color","text-color","active-text-color"])]),_:1},8,["class"])],6)}}},KYe=["id","src"],GYe={__name:"index",props:{src:{type:String,default:"/"},iframeId:{type:String}},setup(e){const t=ee(document.documentElement.clientHeight-94.5+"px");return(n,r)=>(k(),D("div",{style:Je("height:"+h(t))},[R("iframe",{id:e.iframeId,style:{width:"100%",height:"100%"},src:e.src,frameborder:"no"},null,8,KYe)],4))}},PO=Kd("tags-view",{state:()=>({visitedViews:[],cachedViews:[],iframeViews:[]}),actions:{addView(e){this.addVisitedView(e),this.addCachedView(e)},addIframeView(e){this.iframeViews.some(t=>t.path===e.path)||this.iframeViews.push(Object.assign({},e,{title:e.meta.title||"no-name"}))},addVisitedView(e){this.visitedViews.some(t=>t.path===e.path)||this.visitedViews.push(Object.assign({},e,{title:e.meta.title||"no-name"}))},addCachedView(e){this.cachedViews.includes(e.name)||e.meta.noCache||this.cachedViews.push(e.name)},delView(e){return new Promise(t=>{this.delVisitedView(e),this.delCachedView(e),t({visitedViews:[...this.visitedViews],cachedViews:[...this.cachedViews]})})},delVisitedView(e){return new Promise(t=>{for(const[n,r]of this.visitedViews.entries())if(r.path===e.path){this.visitedViews.splice(n,1);break}this.iframeViews=this.iframeViews.filter(n=>n.path!==e.path),t([...this.visitedViews])})},delIframeView(e){return new Promise(t=>{this.iframeViews=this.iframeViews.filter(n=>n.path!==e.path),t([...this.iframeViews])})},delCachedView(e){return new Promise(t=>{const n=this.cachedViews.indexOf(e.name);n>-1&&this.cachedViews.splice(n,1),t([...this.cachedViews])})},delOthersViews(e){return new Promise(t=>{this.delOthersVisitedViews(e),this.delOthersCachedViews(e),t({visitedViews:[...this.visitedViews],cachedViews:[...this.cachedViews]})})},delOthersVisitedViews(e){return new Promise(t=>{this.visitedViews=this.visitedViews.filter(n=>n.meta.affix||n.path===e.path),this.iframeViews=this.iframeViews.filter(n=>n.path===e.path),t([...this.visitedViews])})},delOthersCachedViews(e){return new Promise(t=>{const n=this.cachedViews.indexOf(e.name);n>-1?this.cachedViews=this.cachedViews.slice(n,n+1):this.cachedViews=[],t([...this.cachedViews])})},delAllViews(e){return new Promise(t=>{this.delAllVisitedViews(e),this.delAllCachedViews(e),t({visitedViews:[...this.visitedViews],cachedViews:[...this.cachedViews]})})},delAllVisitedViews(e){return new Promise(t=>{const n=this.visitedViews.filter(r=>r.meta.affix);this.visitedViews=n,this.iframeViews=[],t([...this.visitedViews])})},delAllCachedViews(e){return new Promise(t=>{this.cachedViews=[],t([...this.cachedViews])})},updateVisitedView(e){for(let t of this.visitedViews)if(t.path===e.path){t=Object.assign(t,e);break}},delRightTags(e){return new Promise(t=>{const n=this.visitedViews.findIndex(r=>r.path===e.path);n!==-1&&(this.visitedViews=this.visitedViews.filter((r,o)=>{if(o<=n||r.meta&&r.meta.affix)return!0;const s=this.cachedViews.indexOf(r.name);if(s>-1&&this.cachedViews.splice(s,1),r.meta.link){const a=this.iframeViews.findIndex(i=>i.path===r.path);this.iframeViews.splice(a,1)}return!1}),t([...this.visitedViews]))})},delLeftTags(e){return new Promise(t=>{const n=this.visitedViews.findIndex(r=>r.path===e.path);n!==-1&&(this.visitedViews=this.visitedViews.filter((r,o)=>{if(o>=n||r.meta&&r.meta.affix)return!0;const s=this.cachedViews.indexOf(r.name);if(s>-1&&this.cachedViews.splice(s,1),r.meta.link){const a=this.iframeViews.findIndex(i=>i.path===r.path);this.iframeViews.splice(a,1)}return!1}),t([...this.visitedViews]))})}}}),YYe={__name:"index",setup(e){const t=_O(),n=PO();return(r,o)=>(k(),Me(Dy,{name:"fade-transform",mode:"out-in"},{default:be(()=>[(k(!0),D(Ze,null,At(h(n).iframeViews,(s,a)=>mt((k(),Me(GYe,{key:s.path,iframeId:"iframe"+a,src:s.meta.link},null,8,["iframeId","src"])),[[zt,h(t).path===s.path]])),128))]),_:1}))}},NO=(e,t)=>{const n=e.__vccOpts||e;for(const[r,o]of t)n[r]=o;return n},XYe={class:"app-main"},JYe={__name:"AppMain",setup(e){const t=PO();return(n,r)=>{const o=rt("router-view");return k(),D("section",XYe,[me(o,null,{default:be(({Component:s,route:a})=>[me(xn,{name:"fade-transform",mode:"out-in"},{default:be(()=>[(k(),Me($9,{include:h(t).cachedViews},[a.meta.link?Ae("",!0):(k(),Me(kt(s),{key:a.path}))],1032,["include"]))]),_:2},1024)]),_:1}),me(YYe)])}}},QYe=NO(JYe,[["__scopeId","data-v-7d08d4da"]]),ZYe={__name:"index",setup(e,{expose:t}){const{proxy:n}=gt(),r=Rm(),o=ee(!1),s=ee(!1),a=async(p,m,v)=>{var b;const g=await BC(i.newPassword);if(g.meta.code!==200){hr.error(((b=g.meta)==null?void 0:b.message)||"密码强度校验失败");return}else if(!g.data.is_strong){v(new Error(g.data.suggestions.join(", ")||"密码强度校验失败"));return}},i=Ht({oldPassword:void 0,newPassword:void 0,confirmPassword:void 0}),u=ee({oldPassword:[{required:!0,message:"旧密码不能为空",trigger:"blur"}],newPassword:[{required:!0,message:"新密码不能为空",trigger:"blur"},{required:!0,validator:a,trigger:"blur"}],confirmPassword:[{required:!0,message:"确认密码不能为空",trigger:"blur"},{required:!0,validator:(p,m,v)=>{i.newPassword!==m?v(new Error("两次输入的密码不一致")):v()},trigger:"blur"}]});async function c(){var p,m;s.value=!0;try{if(!await n.$refs.pwdRef.validate())return;const g=await BC(i.newPassword);if(g.meta.code!==200){hr.error(((p=g.meta)==null?void 0:p.message)||"密码强度校验失败");return}else if(!g.data.is_strong){hr.error(g.data.suggestions.join(", ")||"密码强度校验失败");return}const b=await AQe(i.oldPassword,i.newPassword);if(b.meta.code!==200){hr.error(((m=b.meta)==null?void 0:m.message)||"密码修改失败");return}else hr.success("密码修改成功,请重新登录");await r.logOut(),location.href="/"}catch(v){console.log(v,"error")}finally{s.value=!1}}function d(){o.value=!1,n.$refs.pwdRef.resetFields()}function f(){o.value=!0}return t({open:f}),(p,m)=>{const v=rt("el-input"),g=rt("el-form-item"),b=rt("el-button"),_=rt("el-form"),y=rt("el-dialog"),S=Za("loading");return k(),D("div",null,[me(y,{modelValue:o.value,"onUpdate:modelValue":m[3]||(m[3]=w=>o.value=w),title:"修改密码",width:"500","show-close":!1,"close-on-click-modal":!1},{default:be(()=>[mt((k(),D("div",null,[me(_,{ref:"pwdRef",model:i,rules:u.value,"label-width":"100px"},{default:be(()=>[me(g,{label:"旧密码",prop:"oldPassword"},{default:be(()=>[me(v,{modelValue:i.oldPassword,"onUpdate:modelValue":m[0]||(m[0]=w=>i.oldPassword=w),placeholder:"请输入旧密码",type:"password","show-password":""},null,8,["modelValue"])]),_:1}),me(g,{label:"新密码",prop:"newPassword"},{default:be(()=>[me(v,{modelValue:i.newPassword,"onUpdate:modelValue":m[1]||(m[1]=w=>i.newPassword=w),placeholder:"请输入新密码",type:"password","show-password":""},null,8,["modelValue"])]),_:1}),me(g,{label:"确认密码",prop:"confirmPassword"},{default:be(()=>[me(v,{modelValue:i.confirmPassword,"onUpdate:modelValue":m[2]||(m[2]=w=>i.confirmPassword=w),placeholder:"请确认新密码",type:"password","show-password":""},null,8,["modelValue"])]),_:1}),me(g,null,{default:be(()=>[me(b,{type:"primary",onClick:c},{default:be(()=>[...m[4]||(m[4]=[Ot("保存",-1)])]),_:1}),me(b,{type:"danger",onClick:d},{default:be(()=>[...m[5]||(m[5]=[Ot("关闭",-1)])]),_:1})]),_:1})]),_:1},8,["model","rules"])])),[[S,s.value]])]),_:1},8,["modelValue"])])}}};function HQe(e){return Qn({url:"/api/v1/rooms/create",method:"post",data:e})}function VQe(e,t){return Qn({url:`/api/v1/meeting/${e}/invite`,method:"post",data:t})}function kE(e,t){return Qn({url:`/api/v1/meeting/${e}/status`,method:"post",data:t})}function jQe(e){return Qn({url:`/api/v1/meeting/${e}/token`,method:"get"})}function UQe(e){return Qn({url:`/api/v1/conversion/${e}/files`,method:"get"})}function WQe(e){return Qn({url:"/api/file/token",method:"post",data:e})}function qQe(e,t){return Qn({url:`/api/file/${e}/upload`,method:"post",data:t,headers:{"Content-Type":"multipart/form-data"}})}function KQe(e,t){return Qn({url:`/api/v1/conversion/${t}/convert`,method:"post",data:e})}function GQe(e,t){return Qn({url:`/api/v1/conversion/${t}/status/${e}`,method:"get"})}function YQe(e){return Qn({url:`/api/v1/meeting/${e}/participants`,method:"get"})}function XQe(e){return Qn({url:`/api/v1/room/${e}/recordings`,method:"get"})}var m3=Object.defineProperty,eXe=Object.getOwnPropertyDescriptor,tXe=Object.getOwnPropertyNames,nXe=Object.prototype.hasOwnProperty,Wr=(e,t)=>()=>(e&&(t=e(e=0)),t),Ke=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),oc=(e,t)=>{for(var n in t)m3(e,n,{get:t[n],enumerable:!0})},rXe=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of tXe(t))!nXe.call(e,o)&&o!==n&&m3(e,o,{get:()=>t[o],enumerable:!(r=eXe(t,o))||r.enumerable});return e},mn=e=>rXe(m3({},"__esModule",{value:!0}),e),je=Wr(()=>{}),nn={};oc(nn,{_debugEnd:()=>qg,_debugProcess:()=>Wg,_events:()=>i_,_eventsCount:()=>l_,_exiting:()=>Mg,_fatalExceptions:()=>Vg,_getActiveHandles:()=>VO,_getActiveRequests:()=>HO,_kill:()=>Pg,_linkedBinding:()=>zO,_maxListeners:()=>a_,_preload_modules:()=>o_,_rawDebug:()=>xg,_startProfilerIdleNotifier:()=>Kg,_stopProfilerIdleNotifier:()=>Gg,_tickCallback:()=>Ug,abort:()=>Qg,addListener:()=>u_,allowedNodeEnvironmentFlags:()=>Fg,arch:()=>hg,argv:()=>gg,argv0:()=>r_,assert:()=>jO,binding:()=>Sg,browser:()=>$g,chdir:()=>kg,config:()=>Og,cpuUsage:()=>$c,cwd:()=>Cg,debugPort:()=>n_,default:()=>g3,dlopen:()=>FO,domain:()=>Ag,emit:()=>h_,emitWarning:()=>wg,env:()=>vg,execArgv:()=>_g,execPath:()=>t_,exit:()=>Dg,features:()=>Hg,hasUncaughtExceptionCaptureCallback:()=>UO,hrtime:()=>Up,kill:()=>Bg,listeners:()=>qO,memoryUsage:()=>Lg,moduleLoadList:()=>Ig,nextTick:()=>BO,off:()=>d_,on:()=>Cs,once:()=>c_,openStdin:()=>zg,pid:()=>Zg,platform:()=>mg,ppid:()=>e_,prependListener:()=>m_,prependOnceListener:()=>v_,reallyExit:()=>Rg,release:()=>Tg,removeAllListeners:()=>p_,removeListener:()=>f_,resourceUsage:()=>Ng,setSourceMapsEnabled:()=>s_,setUncaughtExceptionCaptureCallback:()=>jg,stderr:()=>Xg,stdin:()=>Jg,stdout:()=>Yg,title:()=>pg,umask:()=>Eg,uptime:()=>WO,version:()=>yg,versions:()=>bg});function v3(e){throw new Error("Node.js process "+e+" is not supported by JSPM core outside of Node.js")}function oXe(){!Wi||!Pi||(Wi=!1,Pi.length?as=Pi.concat(as):rd=-1,as.length&&LO())}function LO(){if(!Wi){var e=setTimeout(oXe,0);Wi=!0;for(var t=as.length;t;){for(Pi=as,as=[];++rd1)for(var n=1;n{je(),We(),Ue(),as=[],Wi=!1,rd=-1,DO.prototype.run=function(){this.fun.apply(null,this.array)},pg="browser",hg="x64",mg="browser",vg={PATH:"/usr/bin",LANG:typeof navigator<"u"?navigator.language+".UTF-8":void 0,PWD:"/",HOME:"/home",TMP:"/tmp"},gg=["/usr/bin/node"],_g=[],yg="v16.8.0",bg={},wg=function(e,t){console.warn((t?t+": ":"")+e)},Sg=function(e){v3("binding")},Eg=function(e){return 0},Cg=function(){return"/"},kg=function(e){},Tg={name:"node",sourceUrl:"",headersUrl:"",libUrl:""},$g=!0,xg=lr,Ig=[],Ag={},Mg=!1,Og={},Rg=lr,Pg=lr,$c=function(){return{}},Ng=$c,Lg=$c,Bg=lr,Dg=lr,zg=lr,Fg={},Hg={inspector:!1,debug:!1,uv:!1,ipv6:!1,tls_alpn:!1,tls_sni:!1,tls_ocsp:!1,tls:!1,cached_builtins:!0},Vg=lr,jg=lr,Ug=lr,Wg=lr,qg=lr,Kg=lr,Gg=lr,Yg=void 0,Xg=void 0,Jg=void 0,Qg=lr,Zg=2,e_=1,t_="/bin/usr/node",n_=9229,r_="node",o_=[],s_=lr,As={now:typeof performance<"u"?performance.now.bind(performance):void 0,timing:typeof performance<"u"?performance.timing:void 0},As.now===void 0&&(l2=Date.now(),As.timing&&As.timing.navigationStart&&(l2=As.timing.navigationStart),As.now=()=>Date.now()-l2),Wp=1e9,Up.bigint=function(e){var t=Up(e);return typeof BigInt>"u"?t[0]*Wp+t[1]:BigInt(t[0]*Wp)+BigInt(t[1])},a_=10,i_={},l_=0,u_=Cs,c_=Cs,d_=Cs,f_=Cs,p_=Cs,h_=lr,m_=Cs,v_=Cs,g3={version:yg,versions:bg,arch:hg,platform:mg,browser:$g,release:Tg,_rawDebug:xg,moduleLoadList:Ig,binding:Sg,_linkedBinding:zO,_events:i_,_eventsCount:l_,_maxListeners:a_,on:Cs,addListener:u_,once:c_,off:d_,removeListener:f_,removeAllListeners:p_,emit:h_,prependListener:m_,prependOnceListener:v_,listeners:qO,domain:Ag,_exiting:Mg,config:Og,dlopen:FO,uptime:WO,_getActiveRequests:HO,_getActiveHandles:VO,reallyExit:Rg,_kill:Pg,cpuUsage:$c,resourceUsage:Ng,memoryUsage:Lg,kill:Bg,exit:Dg,openStdin:zg,allowedNodeEnvironmentFlags:Fg,assert:jO,features:Hg,_fatalExceptions:Vg,setUncaughtExceptionCaptureCallback:jg,hasUncaughtExceptionCaptureCallback:UO,emitWarning:wg,nextTick:BO,_tickCallback:Ug,_debugProcess:Wg,_debugEnd:qg,_startProfilerIdleNotifier:Kg,_stopProfilerIdleNotifier:Gg,stdout:Yg,stdin:Jg,stderr:Xg,abort:Qg,umask:Eg,chdir:kg,cwd:Cg,env:vg,title:pg,argv:gg,execArgv:_g,pid:Zg,ppid:e_,execPath:t_,debugPort:n_,hrtime:Up,argv0:r_,_preload_modules:o_,setSourceMapsEnabled:s_}}),Ue=Wr(()=>{sXe()});function aXe(){if(g_)return Nl;g_=!0,Nl.byteLength=i,Nl.toByteArray=u,Nl.fromByteArray=f;for(var e=[],t=[],n=typeof Uint8Array<"u"?Uint8Array:Array,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0,s=r.length;o0)throw new Error("Invalid string. Length must be a multiple of 4");var v=p.indexOf("=");v===-1&&(v=m);var g=v===m?0:4-v%4;return[v,g]}function i(p){var m=a(p),v=m[0],g=m[1];return(v+g)*3/4-g}function l(p,m,v){return(m+v)*3/4-v}function u(p){var m,v=a(p),g=v[0],b=v[1],_=new n(l(p,g,b)),y=0,S=b>0?g-4:g,w;for(w=0;w>16&255,_[y++]=m>>8&255,_[y++]=m&255;return b===2&&(m=t[p.charCodeAt(w)]<<2|t[p.charCodeAt(w+1)]>>4,_[y++]=m&255),b===1&&(m=t[p.charCodeAt(w)]<<10|t[p.charCodeAt(w+1)]<<4|t[p.charCodeAt(w+2)]>>2,_[y++]=m>>8&255,_[y++]=m&255),_}function c(p){return e[p>>18&63]+e[p>>12&63]+e[p>>6&63]+e[p&63]}function d(p,m,v){for(var g,b=[],_=m;_S?S:y+_));return g===1?(m=p[v-1],b.push(e[m>>2]+e[m<<4&63]+"==")):g===2&&(m=(p[v-2]<<8)+p[v-1],b.push(e[m>>10]+e[m>>4&63]+e[m<<2&63]+"=")),b.join("")}return Nl}function iXe(){return __?xc:(__=!0,xc.read=function(e,t,n,r,o){var s,a,i=o*8-r-1,l=(1<>1,c=-7,d=n?o-1:0,f=n?-1:1,p=e[t+d];for(d+=f,s=p&(1<<-c)-1,p>>=-c,c+=i;c>0;s=s*256+e[t+d],d+=f,c-=8);for(a=s&(1<<-c)-1,s>>=-c,c+=r;c>0;a=a*256+e[t+d],d+=f,c-=8);if(s===0)s=1-u;else{if(s===l)return a?NaN:(p?-1:1)*(1/0);a=a+Math.pow(2,r),s=s-u}return(p?-1:1)*a*Math.pow(2,s-r)},xc.write=function(e,t,n,r,o,s){var a,i,l,u=s*8-o-1,c=(1<>1,f=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:s-1,m=r?1:-1,v=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(i=isNaN(t)?1:0,a=c):(a=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-a))<1&&(a--,l*=2),a+d>=1?t+=f/l:t+=f*Math.pow(2,1-d),t*l>=2&&(a++,l/=2),a+d>=c?(i=0,a=c):a+d>=1?(i=(t*l-1)*Math.pow(2,o),a=a+d):(i=t*Math.pow(2,d-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=i&255,p+=m,i/=256,o-=8);for(a=a<0;e[n+p]=a&255,p+=m,a/=256,u-=8);e[n+p-m]|=v*128},xc)}function lXe(){if(y_)return Ra;y_=!0;let e=aXe(),t=iXe(),n=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Ra.Buffer=a,Ra.SlowBuffer=b,Ra.INSPECT_MAX_BYTES=50;let r=2147483647;Ra.kMaxLength=r,a.TYPED_ARRAY_SUPPORT=o(),!a.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function o(){try{let A=new Uint8Array(1),M={foo:function(){return 42}};return Object.setPrototypeOf(M,Uint8Array.prototype),Object.setPrototypeOf(A,M),A.foo()===42}catch{return!1}}Object.defineProperty(a.prototype,"parent",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.buffer}}),Object.defineProperty(a.prototype,"offset",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.byteOffset}});function s(A){if(A>r)throw new RangeError('The value "'+A+'" is invalid for option "size"');let M=new Uint8Array(A);return Object.setPrototypeOf(M,a.prototype),M}function a(A,M,j){if(typeof A=="number"){if(typeof M=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return c(A)}return i(A,M,j)}a.poolSize=8192;function i(A,M,j){if(typeof A=="string")return d(A,M);if(ArrayBuffer.isView(A))return p(A);if(A==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof A);if(re(A,ArrayBuffer)||A&&re(A.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(re(A,SharedArrayBuffer)||A&&re(A.buffer,SharedArrayBuffer)))return m(A,M,j);if(typeof A=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let G=A.valueOf&&A.valueOf();if(G!=null&&G!==A)return a.from(G,M,j);let ue=v(A);if(ue)return ue;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof A[Symbol.toPrimitive]=="function")return a.from(A[Symbol.toPrimitive]("string"),M,j);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof A)}a.from=function(A,M,j){return i(A,M,j)},Object.setPrototypeOf(a.prototype,Uint8Array.prototype),Object.setPrototypeOf(a,Uint8Array);function l(A){if(typeof A!="number")throw new TypeError('"size" argument must be of type number');if(A<0)throw new RangeError('The value "'+A+'" is invalid for option "size"')}function u(A,M,j){return l(A),A<=0?s(A):M!==void 0?typeof j=="string"?s(A).fill(M,j):s(A).fill(M):s(A)}a.alloc=function(A,M,j){return u(A,M,j)};function c(A){return l(A),s(A<0?0:g(A)|0)}a.allocUnsafe=function(A){return c(A)},a.allocUnsafeSlow=function(A){return c(A)};function d(A,M){if((typeof M!="string"||M==="")&&(M="utf8"),!a.isEncoding(M))throw new TypeError("Unknown encoding: "+M);let j=_(A,M)|0,G=s(j),ue=G.write(A,M);return ue!==j&&(G=G.slice(0,ue)),G}function f(A){let M=A.length<0?0:g(A.length)|0,j=s(M);for(let G=0;G=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return A|0}function b(A){return+A!=A&&(A=0),a.alloc(+A)}a.isBuffer=function(A){return A!=null&&A._isBuffer===!0&&A!==a.prototype},a.compare=function(A,M){if(re(A,Uint8Array)&&(A=a.from(A,A.offset,A.byteLength)),re(M,Uint8Array)&&(M=a.from(M,M.offset,M.byteLength)),!a.isBuffer(A)||!a.isBuffer(M))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(A===M)return 0;let j=A.length,G=M.length;for(let ue=0,_e=Math.min(j,G);ue<_e;++ue)if(A[ue]!==M[ue]){j=A[ue],G=M[ue];break}return jG.length?(a.isBuffer(_e)||(_e=a.from(_e)),_e.copy(G,ue)):Uint8Array.prototype.set.call(G,_e,ue);else if(a.isBuffer(_e))_e.copy(G,ue);else throw new TypeError('"list" argument must be an Array of Buffers');ue+=_e.length}return G};function _(A,M){if(a.isBuffer(A))return A.length;if(ArrayBuffer.isView(A)||re(A,ArrayBuffer))return A.byteLength;if(typeof A!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof A);let j=A.length,G=arguments.length>2&&arguments[2]===!0;if(!G&&j===0)return 0;let ue=!1;for(;;)switch(M){case"ascii":case"latin1":case"binary":return j;case"utf8":case"utf-8":return he(A).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return j*2;case"hex":return j>>>1;case"base64":return ye(A).length;default:if(ue)return G?-1:he(A).length;M=(""+M).toLowerCase(),ue=!0}}a.byteLength=_;function y(A,M,j){let G=!1;if((M===void 0||M<0)&&(M=0),M>this.length||((j===void 0||j>this.length)&&(j=this.length),j<=0)||(j>>>=0,M>>>=0,j<=M))return"";for(A||(A="utf8");;)switch(A){case"hex":return O(this,M,j);case"utf8":case"utf-8":return L(this,M,j);case"ascii":return U(this,M,j);case"latin1":case"binary":return P(this,M,j);case"base64":return I(this,M,j);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return H(this,M,j);default:if(G)throw new TypeError("Unknown encoding: "+A);A=(A+"").toLowerCase(),G=!0}}a.prototype._isBuffer=!0;function S(A,M,j){let G=A[M];A[M]=A[j],A[j]=G}a.prototype.swap16=function(){let A=this.length;if(A%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let M=0;MM&&(A+=" ... "),""},n&&(a.prototype[n]=a.prototype.inspect),a.prototype.compare=function(A,M,j,G,ue){if(re(A,Uint8Array)&&(A=a.from(A,A.offset,A.byteLength)),!a.isBuffer(A))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof A);if(M===void 0&&(M=0),j===void 0&&(j=A?A.length:0),G===void 0&&(G=0),ue===void 0&&(ue=this.length),M<0||j>A.length||G<0||ue>this.length)throw new RangeError("out of range index");if(G>=ue&&M>=j)return 0;if(G>=ue)return-1;if(M>=j)return 1;if(M>>>=0,j>>>=0,G>>>=0,ue>>>=0,this===A)return 0;let _e=ue-G,X=j-M,Z=Math.min(_e,X),de=this.slice(G,ue),Oe=A.slice(M,j);for(let qe=0;qe2147483647?j=2147483647:j<-2147483648&&(j=-2147483648),j=+j,fe(j)&&(j=ue?0:A.length-1),j<0&&(j=A.length+j),j>=A.length){if(ue)return-1;j=A.length-1}else if(j<0)if(ue)j=0;else return-1;if(typeof M=="string"&&(M=a.from(M,G)),a.isBuffer(M))return M.length===0?-1:E(A,M,j,G,ue);if(typeof M=="number")return M=M&255,typeof Uint8Array.prototype.indexOf=="function"?ue?Uint8Array.prototype.indexOf.call(A,M,j):Uint8Array.prototype.lastIndexOf.call(A,M,j):E(A,[M],j,G,ue);throw new TypeError("val must be string, number or Buffer")}function E(A,M,j,G,ue){let _e=1,X=A.length,Z=M.length;if(G!==void 0&&(G=String(G).toLowerCase(),G==="ucs2"||G==="ucs-2"||G==="utf16le"||G==="utf-16le")){if(A.length<2||M.length<2)return-1;_e=2,X/=2,Z/=2,j/=2}function de(qe,Qe){return _e===1?qe[Qe]:qe.readUInt16BE(Qe*_e)}let Oe;if(ue){let qe=-1;for(Oe=j;OeX&&(j=X-Z),Oe=j;Oe>=0;Oe--){let qe=!0;for(let Qe=0;Qeue&&(G=ue)):G=ue;let _e=M.length;G>_e/2&&(G=_e/2);let X;for(X=0;X>>0,isFinite(j)?(j=j>>>0,G===void 0&&(G="utf8")):(G=j,j=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let ue=this.length-M;if((j===void 0||j>ue)&&(j=ue),A.length>0&&(j<0||M<0)||M>this.length)throw new RangeError("Attempt to write outside buffer bounds");G||(G="utf8");let _e=!1;for(;;)switch(G){case"hex":return T(this,A,M,j);case"utf8":case"utf-8":return C(this,A,M,j);case"ascii":case"latin1":case"binary":return $(this,A,M,j);case"base64":return x(this,A,M,j);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,A,M,j);default:if(_e)throw new TypeError("Unknown encoding: "+G);G=(""+G).toLowerCase(),_e=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function I(A,M,j){return M===0&&j===A.length?e.fromByteArray(A):e.fromByteArray(A.slice(M,j))}function L(A,M,j){j=Math.min(A.length,j);let G=[],ue=M;for(;ue239?4:_e>223?3:_e>191?2:1;if(ue+Z<=j){let de,Oe,qe,Qe;switch(Z){case 1:_e<128&&(X=_e);break;case 2:de=A[ue+1],(de&192)===128&&(Qe=(_e&31)<<6|de&63,Qe>127&&(X=Qe));break;case 3:de=A[ue+1],Oe=A[ue+2],(de&192)===128&&(Oe&192)===128&&(Qe=(_e&15)<<12|(de&63)<<6|Oe&63,Qe>2047&&(Qe<55296||Qe>57343)&&(X=Qe));break;case 4:de=A[ue+1],Oe=A[ue+2],qe=A[ue+3],(de&192)===128&&(Oe&192)===128&&(qe&192)===128&&(Qe=(_e&15)<<18|(de&63)<<12|(Oe&63)<<6|qe&63,Qe>65535&&Qe<1114112&&(X=Qe))}}X===null?(X=65533,Z=1):X>65535&&(X-=65536,G.push(X>>>10&1023|55296),X=56320|X&1023),G.push(X),ue+=Z}return B(G)}let F=4096;function B(A){let M=A.length;if(M<=F)return String.fromCharCode.apply(String,A);let j="",G=0;for(;GG)&&(j=G);let ue="";for(let _e=M;_ej&&(A=j),M<0?(M+=j,M<0&&(M=0)):M>j&&(M=j),Mj)throw new RangeError("Trying to access beyond buffer length")}a.prototype.readUintLE=a.prototype.readUIntLE=function(A,M,j){A=A>>>0,M=M>>>0,j||q(A,M,this.length);let G=this[A],ue=1,_e=0;for(;++_e>>0,M=M>>>0,j||q(A,M,this.length);let G=this[A+--M],ue=1;for(;M>0&&(ue*=256);)G+=this[A+--M]*ue;return G},a.prototype.readUint8=a.prototype.readUInt8=function(A,M){return A=A>>>0,M||q(A,1,this.length),this[A]},a.prototype.readUint16LE=a.prototype.readUInt16LE=function(A,M){return A=A>>>0,M||q(A,2,this.length),this[A]|this[A+1]<<8},a.prototype.readUint16BE=a.prototype.readUInt16BE=function(A,M){return A=A>>>0,M||q(A,2,this.length),this[A]<<8|this[A+1]},a.prototype.readUint32LE=a.prototype.readUInt32LE=function(A,M){return A=A>>>0,M||q(A,4,this.length),(this[A]|this[A+1]<<8|this[A+2]<<16)+this[A+3]*16777216},a.prototype.readUint32BE=a.prototype.readUInt32BE=function(A,M){return A=A>>>0,M||q(A,4,this.length),this[A]*16777216+(this[A+1]<<16|this[A+2]<<8|this[A+3])},a.prototype.readBigUInt64LE=$e(function(A){A=A>>>0,J(A,"offset");let M=this[A],j=this[A+7];(M===void 0||j===void 0)&&ae(A,this.length-8);let G=M+this[++A]*2**8+this[++A]*2**16+this[++A]*2**24,ue=this[++A]+this[++A]*2**8+this[++A]*2**16+j*2**24;return BigInt(G)+(BigInt(ue)<>>0,J(A,"offset");let M=this[A],j=this[A+7];(M===void 0||j===void 0)&&ae(A,this.length-8);let G=M*2**24+this[++A]*2**16+this[++A]*2**8+this[++A],ue=this[++A]*2**24+this[++A]*2**16+this[++A]*2**8+j;return(BigInt(G)<>>0,M=M>>>0,j||q(A,M,this.length);let G=this[A],ue=1,_e=0;for(;++_e=ue&&(G-=Math.pow(2,8*M)),G},a.prototype.readIntBE=function(A,M,j){A=A>>>0,M=M>>>0,j||q(A,M,this.length);let G=M,ue=1,_e=this[A+--G];for(;G>0&&(ue*=256);)_e+=this[A+--G]*ue;return ue*=128,_e>=ue&&(_e-=Math.pow(2,8*M)),_e},a.prototype.readInt8=function(A,M){return A=A>>>0,M||q(A,1,this.length),this[A]&128?(255-this[A]+1)*-1:this[A]},a.prototype.readInt16LE=function(A,M){A=A>>>0,M||q(A,2,this.length);let j=this[A]|this[A+1]<<8;return j&32768?j|4294901760:j},a.prototype.readInt16BE=function(A,M){A=A>>>0,M||q(A,2,this.length);let j=this[A+1]|this[A]<<8;return j&32768?j|4294901760:j},a.prototype.readInt32LE=function(A,M){return A=A>>>0,M||q(A,4,this.length),this[A]|this[A+1]<<8|this[A+2]<<16|this[A+3]<<24},a.prototype.readInt32BE=function(A,M){return A=A>>>0,M||q(A,4,this.length),this[A]<<24|this[A+1]<<16|this[A+2]<<8|this[A+3]},a.prototype.readBigInt64LE=$e(function(A){A=A>>>0,J(A,"offset");let M=this[A],j=this[A+7];(M===void 0||j===void 0)&&ae(A,this.length-8);let G=this[A+4]+this[A+5]*2**8+this[A+6]*2**16+(j<<24);return(BigInt(G)<>>0,J(A,"offset");let M=this[A],j=this[A+7];(M===void 0||j===void 0)&&ae(A,this.length-8);let G=(M<<24)+this[++A]*2**16+this[++A]*2**8+this[++A];return(BigInt(G)<>>0,M||q(A,4,this.length),t.read(this,A,!0,23,4)},a.prototype.readFloatBE=function(A,M){return A=A>>>0,M||q(A,4,this.length),t.read(this,A,!1,23,4)},a.prototype.readDoubleLE=function(A,M){return A=A>>>0,M||q(A,8,this.length),t.read(this,A,!0,52,8)},a.prototype.readDoubleBE=function(A,M){return A=A>>>0,M||q(A,8,this.length),t.read(this,A,!1,52,8)};function te(A,M,j,G,ue,_e){if(!a.isBuffer(A))throw new TypeError('"buffer" argument must be a Buffer instance');if(M>ue||M<_e)throw new RangeError('"value" argument is out of bounds');if(j+G>A.length)throw new RangeError("Index out of range")}a.prototype.writeUintLE=a.prototype.writeUIntLE=function(A,M,j,G){if(A=+A,M=M>>>0,j=j>>>0,!G){let X=Math.pow(2,8*j)-1;te(this,A,M,j,X,0)}let ue=1,_e=0;for(this[M]=A&255;++_e>>0,j=j>>>0,!G){let X=Math.pow(2,8*j)-1;te(this,A,M,j,X,0)}let ue=j-1,_e=1;for(this[M+ue]=A&255;--ue>=0&&(_e*=256);)this[M+ue]=A/_e&255;return M+j},a.prototype.writeUint8=a.prototype.writeUInt8=function(A,M,j){return A=+A,M=M>>>0,j||te(this,A,M,1,255,0),this[M]=A&255,M+1},a.prototype.writeUint16LE=a.prototype.writeUInt16LE=function(A,M,j){return A=+A,M=M>>>0,j||te(this,A,M,2,65535,0),this[M]=A&255,this[M+1]=A>>>8,M+2},a.prototype.writeUint16BE=a.prototype.writeUInt16BE=function(A,M,j){return A=+A,M=M>>>0,j||te(this,A,M,2,65535,0),this[M]=A>>>8,this[M+1]=A&255,M+2},a.prototype.writeUint32LE=a.prototype.writeUInt32LE=function(A,M,j){return A=+A,M=M>>>0,j||te(this,A,M,4,4294967295,0),this[M+3]=A>>>24,this[M+2]=A>>>16,this[M+1]=A>>>8,this[M]=A&255,M+4},a.prototype.writeUint32BE=a.prototype.writeUInt32BE=function(A,M,j){return A=+A,M=M>>>0,j||te(this,A,M,4,4294967295,0),this[M]=A>>>24,this[M+1]=A>>>16,this[M+2]=A>>>8,this[M+3]=A&255,M+4};function V(A,M,j,G,ue){ve(M,G,ue,A,j,7);let _e=Number(M&BigInt(4294967295));A[j++]=_e,_e=_e>>8,A[j++]=_e,_e=_e>>8,A[j++]=_e,_e=_e>>8,A[j++]=_e;let X=Number(M>>BigInt(32)&BigInt(4294967295));return A[j++]=X,X=X>>8,A[j++]=X,X=X>>8,A[j++]=X,X=X>>8,A[j++]=X,j}function Q(A,M,j,G,ue){ve(M,G,ue,A,j,7);let _e=Number(M&BigInt(4294967295));A[j+7]=_e,_e=_e>>8,A[j+6]=_e,_e=_e>>8,A[j+5]=_e,_e=_e>>8,A[j+4]=_e;let X=Number(M>>BigInt(32)&BigInt(4294967295));return A[j+3]=X,X=X>>8,A[j+2]=X,X=X>>8,A[j+1]=X,X=X>>8,A[j]=X,j+8}a.prototype.writeBigUInt64LE=$e(function(A,M=0){return V(this,A,M,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeBigUInt64BE=$e(function(A,M=0){return Q(this,A,M,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeIntLE=function(A,M,j,G){if(A=+A,M=M>>>0,!G){let Z=Math.pow(2,8*j-1);te(this,A,M,j,Z-1,-Z)}let ue=0,_e=1,X=0;for(this[M]=A&255;++ue>0)-X&255;return M+j},a.prototype.writeIntBE=function(A,M,j,G){if(A=+A,M=M>>>0,!G){let Z=Math.pow(2,8*j-1);te(this,A,M,j,Z-1,-Z)}let ue=j-1,_e=1,X=0;for(this[M+ue]=A&255;--ue>=0&&(_e*=256);)A<0&&X===0&&this[M+ue+1]!==0&&(X=1),this[M+ue]=(A/_e>>0)-X&255;return M+j},a.prototype.writeInt8=function(A,M,j){return A=+A,M=M>>>0,j||te(this,A,M,1,127,-128),A<0&&(A=255+A+1),this[M]=A&255,M+1},a.prototype.writeInt16LE=function(A,M,j){return A=+A,M=M>>>0,j||te(this,A,M,2,32767,-32768),this[M]=A&255,this[M+1]=A>>>8,M+2},a.prototype.writeInt16BE=function(A,M,j){return A=+A,M=M>>>0,j||te(this,A,M,2,32767,-32768),this[M]=A>>>8,this[M+1]=A&255,M+2},a.prototype.writeInt32LE=function(A,M,j){return A=+A,M=M>>>0,j||te(this,A,M,4,2147483647,-2147483648),this[M]=A&255,this[M+1]=A>>>8,this[M+2]=A>>>16,this[M+3]=A>>>24,M+4},a.prototype.writeInt32BE=function(A,M,j){return A=+A,M=M>>>0,j||te(this,A,M,4,2147483647,-2147483648),A<0&&(A=4294967295+A+1),this[M]=A>>>24,this[M+1]=A>>>16,this[M+2]=A>>>8,this[M+3]=A&255,M+4},a.prototype.writeBigInt64LE=$e(function(A,M=0){return V(this,A,M,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),a.prototype.writeBigInt64BE=$e(function(A,M=0){return Q(this,A,M,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function ge(A,M,j,G,ue,_e){if(j+G>A.length)throw new RangeError("Index out of range");if(j<0)throw new RangeError("Index out of range")}function ie(A,M,j,G,ue){return M=+M,j=j>>>0,ue||ge(A,M,j,4),t.write(A,M,j,G,23,4),j+4}a.prototype.writeFloatLE=function(A,M,j){return ie(this,A,M,!0,j)},a.prototype.writeFloatBE=function(A,M,j){return ie(this,A,M,!1,j)};function ke(A,M,j,G,ue){return M=+M,j=j>>>0,ue||ge(A,M,j,8),t.write(A,M,j,G,52,8),j+8}a.prototype.writeDoubleLE=function(A,M,j){return ke(this,A,M,!0,j)},a.prototype.writeDoubleBE=function(A,M,j){return ke(this,A,M,!1,j)},a.prototype.copy=function(A,M,j,G){if(!a.isBuffer(A))throw new TypeError("argument should be a Buffer");if(j||(j=0),!G&&G!==0&&(G=this.length),M>=A.length&&(M=A.length),M||(M=0),G>0&&G=this.length)throw new RangeError("Index out of range");if(G<0)throw new RangeError("sourceEnd out of bounds");G>this.length&&(G=this.length),A.length-M>>0,j=j===void 0?this.length:j>>>0,A||(A=0);let ue;if(typeof A=="number")for(ue=M;ue2**32?ue=se(String(j)):typeof j=="bigint"&&(ue=String(j),(j>BigInt(2)**BigInt(32)||j<-(BigInt(2)**BigInt(32)))&&(ue=se(ue)),ue+="n"),G+=` It must be ${M}. Received ${ue}`,G},RangeError);function se(A){let M="",j=A.length,G=A[0]==="-"?1:0;for(;j>=G+4;j-=3)M=`_${A.slice(j-3,j)}${M}`;return`${A.slice(0,j)}${M}`}function ne(A,M,j){J(M,"offset"),(A[M]===void 0||A[M+j]===void 0)&&ae(M,A.length-(j+1))}function ve(A,M,j,G,ue,_e){if(A>j||A= 0${X} and < 2${X} ** ${(_e+1)*8}${X}`:Z=`>= -(2${X} ** ${(_e+1)*8-1}${X}) and < 2 ** ${(_e+1)*8-1}${X}`,new Y.ERR_OUT_OF_RANGE("value",Z,A)}ne(G,ue,_e)}function J(A,M){if(typeof A!="number")throw new Y.ERR_INVALID_ARG_TYPE(M,"number",A)}function ae(A,M,j){throw Math.floor(A)!==A?(J(A,j),new Y.ERR_OUT_OF_RANGE("offset","an integer",A)):M<0?new Y.ERR_BUFFER_OUT_OF_BOUNDS:new Y.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${M}`,A)}let ce=/[^+/0-9A-Za-z-_]/g;function oe(A){if(A=A.split("=")[0],A=A.trim().replace(ce,""),A.length<2)return"";for(;A.length%4!==0;)A=A+"=";return A}function he(A,M){M=M||1/0;let j,G=A.length,ue=null,_e=[];for(let X=0;X55295&&j<57344){if(!ue){if(j>56319){(M-=3)>-1&&_e.push(239,191,189);continue}else if(X+1===G){(M-=3)>-1&&_e.push(239,191,189);continue}ue=j;continue}if(j<56320){(M-=3)>-1&&_e.push(239,191,189),ue=j;continue}j=(ue-55296<<10|j-56320)+65536}else ue&&(M-=3)>-1&&_e.push(239,191,189);if(ue=null,j<128){if((M-=1)<0)break;_e.push(j)}else if(j<2048){if((M-=2)<0)break;_e.push(j>>6|192,j&63|128)}else if(j<65536){if((M-=3)<0)break;_e.push(j>>12|224,j>>6&63|128,j&63|128)}else if(j<1114112){if((M-=4)<0)break;_e.push(j>>18|240,j>>12&63|128,j>>6&63|128,j&63|128)}else throw new Error("Invalid code point")}return _e}function le(A){let M=[];for(let j=0;j>8,ue=j%256,_e.push(ue),_e.push(G);return _e}function ye(A){return e.toByteArray(oe(A))}function pe(A,M,j,G){let ue;for(ue=0;ue=M.length||ue>=A.length);++ue)M[ue+j]=A[ue];return ue}function re(A,M){return A instanceof M||A!=null&&A.constructor!=null&&A.constructor.name!=null&&A.constructor.name===M.name}function fe(A){return A!==A}let Te=function(){let A="0123456789abcdef",M=new Array(256);for(let j=0;j<16;++j){let G=j*16;for(let ue=0;ue<16;++ue)M[G+ue]=A[j]+A[ue]}return M}();function $e(A){return typeof BigInt>"u"?Le:A}function Le(){throw new Error("BigInt not supported")}return Ra}var Nl,g_,xc,__,Ra,y_,uXe=Wr(()=>{je(),We(),Ue(),Nl={},g_=!1,xc={},__=!1,Ra={},y_=!1}),Xn={};oc(Xn,{Buffer:()=>d0,INSPECT_MAX_BYTES:()=>KO,default:()=>ks,kMaxLength:()=>GO});var ks,d0,KO,GO,Jn=Wr(()=>{je(),We(),Ue(),uXe(),ks=lXe(),ks.Buffer,ks.SlowBuffer,ks.INSPECT_MAX_BYTES,ks.kMaxLength,d0=ks.Buffer,KO=ks.INSPECT_MAX_BYTES,GO=ks.kMaxLength}),We=Wr(()=>{Jn()}),$n=Ke((e,t)=>{je(),We(),Ue();var n=class extends Error{constructor(r){if(!Array.isArray(r))throw new TypeError(`Expected input to be an Array, got ${typeof r}`);let o="";for(let s=0;s{je(),We(),Ue(),t.exports={format(n,...r){return n.replace(/%([sdifj])/g,function(...[o,s]){let a=r.shift();return s==="f"?a.toFixed(6):s==="j"?JSON.stringify(a):s==="s"&&typeof a=="object"?`${a.constructor!==Object?a.constructor.name:""} {}`.trim():a.toString()})},inspect(n){switch(typeof n){case"string":if(n.includes("'"))if(n.includes('"')){if(!n.includes("`")&&!n.includes("${"))return`\`${n}\``}else return`"${n}"`;return`'${n}'`;case"number":return isNaN(n)?"NaN":Object.is(n,-0)?String(n):n;case"bigint":return`${String(n)}n`;case"boolean":case"undefined":return String(n);case"object":return"{}"}}}}),Ir=Ke((e,t)=>{je(),We(),Ue();var{format:n,inspect:r}=YO(),{AggregateError:o}=$n(),s=globalThis.AggregateError||o,a=Symbol("kIsNodeError"),i=["string","function","number","object","Function","Object","boolean","bigint","symbol"],l=/^([A-Z][a-z0-9]*)+$/,u="__node_internal_",c={};function d(_,y){if(!_)throw new c.ERR_INTERNAL_ASSERTION(y)}function f(_){let y="",S=_.length,w=_[0]==="-"?1:0;for(;S>=w+4;S-=3)y=`_${_.slice(S-3,S)}${y}`;return`${_.slice(0,S)}${y}`}function p(_,y,S){if(typeof y=="function")return d(y.length<=S.length,`Code: ${_}; The provided arguments length (${S.length}) does not match the required ones (${y.length}).`),y(...S);let w=(y.match(/%[dfijoOs]/g)||[]).length;return d(w===S.length,`Code: ${_}; The provided arguments length (${S.length}) does not match the required ones (${w}).`),S.length===0?y:n(y,...S)}function m(_,y,S){S||(S=Error);class w extends S{constructor(...T){super(p(_,y,T))}toString(){return`${this.name} [${_}]: ${this.message}`}}Object.defineProperties(w.prototype,{name:{value:S.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${_}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),w.prototype.code=_,w.prototype[a]=!0,c[_]=w}function v(_){let y=u+_.name;return Object.defineProperty(_,"name",{value:y}),_}function g(_,y){if(_&&y&&_!==y){if(Array.isArray(y.errors))return y.errors.push(_),y;let S=new s([y,_],y.message);return S.code=y.code,S}return _||y}var b=class extends Error{constructor(_="The operation was aborted",y=void 0){if(y!==void 0&&typeof y!="object")throw new c.ERR_INVALID_ARG_TYPE("options","Object",y);super(_,y),this.code="ABORT_ERR",this.name="AbortError"}};m("ERR_ASSERTION","%s",Error),m("ERR_INVALID_ARG_TYPE",(_,y,S)=>{d(typeof _=="string","'name' must be a string"),Array.isArray(y)||(y=[y]);let w="The ";_.endsWith(" argument")?w+=`${_} `:w+=`"${_}" ${_.includes(".")?"property":"argument"} `,w+="must be ";let E=[],T=[],C=[];for(let x of y)d(typeof x=="string","All expected entries have to be of type string"),i.includes(x)?E.push(x.toLowerCase()):l.test(x)?T.push(x):(d(x!=="object",'The value "object" should be written as "Object"'),C.push(x));if(T.length>0){let x=E.indexOf("object");x!==-1&&(E.splice(E,x,1),T.push("Object"))}if(E.length>0){switch(E.length){case 1:w+=`of type ${E[0]}`;break;case 2:w+=`one of type ${E[0]} or ${E[1]}`;break;default:{let x=E.pop();w+=`one of type ${E.join(", ")}, or ${x}`}}(T.length>0||C.length>0)&&(w+=" or ")}if(T.length>0){switch(T.length){case 1:w+=`an instance of ${T[0]}`;break;case 2:w+=`an instance of ${T[0]} or ${T[1]}`;break;default:{let x=T.pop();w+=`an instance of ${T.join(", ")}, or ${x}`}}C.length>0&&(w+=" or ")}switch(C.length){case 0:break;case 1:C[0].toLowerCase()!==C[0]&&(w+="an "),w+=`${C[0]}`;break;case 2:w+=`one of ${C[0]} or ${C[1]}`;break;default:{let x=C.pop();w+=`one of ${C.join(", ")}, or ${x}`}}if(S==null)w+=`. Received ${S}`;else if(typeof S=="function"&&S.name)w+=`. Received function ${S.name}`;else if(typeof S=="object"){var $;if(($=S.constructor)!==null&&$!==void 0&&$.name)w+=`. Received an instance of ${S.constructor.name}`;else{let x=r(S,{depth:-1});w+=`. Received ${x}`}}else{let x=r(S,{colors:!1});x.length>25&&(x=`${x.slice(0,25)}...`),w+=`. Received type ${typeof S} (${x})`}return w},TypeError),m("ERR_INVALID_ARG_VALUE",(_,y,S="is invalid")=>{let w=r(y);return w.length>128&&(w=w.slice(0,128)+"..."),`The ${_.includes(".")?"property":"argument"} '${_}' ${S}. Received ${w}`},TypeError),m("ERR_INVALID_RETURN_VALUE",(_,y,S)=>{var w;let E=S!=null&&(w=S.constructor)!==null&&w!==void 0&&w.name?`instance of ${S.constructor.name}`:`type ${typeof S}`;return`Expected ${_} to be returned from the "${y}" function but got ${E}.`},TypeError),m("ERR_MISSING_ARGS",(..._)=>{d(_.length>0,"At least one arg needs to be specified");let y,S=_.length;switch(_=(Array.isArray(_)?_:[_]).map(w=>`"${w}"`).join(" or "),S){case 1:y+=`The ${_[0]} argument`;break;case 2:y+=`The ${_[0]} and ${_[1]} arguments`;break;default:{let w=_.pop();y+=`The ${_.join(", ")}, and ${w} arguments`}break}return`${y} must be specified`},TypeError),m("ERR_OUT_OF_RANGE",(_,y,S)=>{d(y,'Missing "range" argument');let w;if(Number.isInteger(S)&&Math.abs(S)>2**32)w=f(String(S));else if(typeof S=="bigint"){w=String(S);let E=BigInt(2)**BigInt(32);(S>E||S<-E)&&(w=f(w)),w+="n"}else w=r(S);return`The value of "${_}" is out of range. It must be ${y}. Received ${w}`},RangeError),m("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),m("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),m("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),m("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),m("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),m("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),m("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),m("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),m("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),m("ERR_STREAM_WRITE_AFTER_END","write after end",Error),m("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),t.exports={AbortError:b,aggregateTwoErrors:v(g),hideStackFrames:v,codes:c}}),jd=Ke((e,t)=>{je(),We(),Ue();var{AbortController:n,AbortSignal:r}=typeof self<"u"?self:typeof window<"u"?window:void 0;t.exports=n,t.exports.AbortSignal=r,t.exports.default=n}),pi={};oc(pi,{EventEmitter:()=>XO,default:()=>Ll,defaultMaxListeners:()=>JO,init:()=>QO,listenerCount:()=>ZO,on:()=>eR,once:()=>tR});function cXe(){if(b_)return Ic;b_=!0;var e=typeof Reflect=="object"?Reflect:null,t=e&&typeof e.apply=="function"?e.apply:function(S,w,E){return Function.prototype.apply.call(S,w,E)},n;e&&typeof e.ownKeys=="function"?n=e.ownKeys:Object.getOwnPropertySymbols?n=function(S){return Object.getOwnPropertyNames(S).concat(Object.getOwnPropertySymbols(S))}:n=function(S){return Object.getOwnPropertyNames(S)};function r(S){console&&console.warn&&console.warn(S)}var o=Number.isNaN||function(S){return S!==S};function s(){s.init.call(this)}Ic=s,Ic.once=b,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var a=10;function i(S){if(typeof S!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof S)}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return a},set:function(S){if(typeof S!="number"||S<0||o(S))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+S+".");a=S}}),s.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(S){if(typeof S!="number"||S<0||o(S))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+S+".");return this._maxListeners=S,this};function l(S){return S._maxListeners===void 0?s.defaultMaxListeners:S._maxListeners}s.prototype.getMaxListeners=function(){return l(this)},s.prototype.emit=function(S){for(var w=[],E=1;E0&&($=w[0]),$ instanceof Error)throw $;var x=new Error("Unhandled error."+($?" ("+$.message+")":""));throw x.context=$,x}var N=C[S];if(N===void 0)return!1;if(typeof N=="function")t(N,this,w);else for(var I=N.length,L=m(N,I),E=0;E0&&x.length>C&&!x.warned){x.warned=!0;var N=new Error("Possible EventEmitter memory leak detected. "+x.length+" "+String(w)+" listeners added. Use emitter.setMaxListeners() to increase limit");N.name="MaxListenersExceededWarning",N.emitter=S,N.type=w,N.count=x.length,r(N)}return S}s.prototype.addListener=function(S,w){return u(this,S,w,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(S,w){return u(this,S,w,!0)};function c(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(S,w,E){var T={fired:!1,wrapFn:void 0,target:S,type:w,listener:E},C=c.bind(T);return C.listener=E,T.wrapFn=C,C}s.prototype.once=function(S,w){return i(w),this.on(S,d(this,S,w)),this},s.prototype.prependOnceListener=function(S,w){return i(w),this.prependListener(S,d(this,S,w)),this},s.prototype.removeListener=function(S,w){var E,T,C,$,x;if(i(w),T=this._events,T===void 0)return this;if(E=T[S],E===void 0)return this;if(E===w||E.listener===w)--this._eventsCount===0?this._events=Object.create(null):(delete T[S],T.removeListener&&this.emit("removeListener",S,E.listener||w));else if(typeof E!="function"){for(C=-1,$=E.length-1;$>=0;$--)if(E[$]===w||E[$].listener===w){x=E[$].listener,C=$;break}if(C<0)return this;C===0?E.shift():v(E,C),E.length===1&&(T[S]=E[0]),T.removeListener!==void 0&&this.emit("removeListener",S,x||w)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(S){var w,E,T;if(E=this._events,E===void 0)return this;if(E.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):E[S]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete E[S]),this;if(arguments.length===0){var C=Object.keys(E),$;for(T=0;T=0;T--)this.removeListener(S,w[T]);return this};function f(S,w,E){var T=S._events;if(T===void 0)return[];var C=T[w];return C===void 0?[]:typeof C=="function"?E?[C.listener||C]:[C]:E?g(C):m(C,C.length)}s.prototype.listeners=function(S){return f(this,S,!0)},s.prototype.rawListeners=function(S){return f(this,S,!1)},s.listenerCount=function(S,w){return typeof S.listenerCount=="function"?S.listenerCount(w):p.call(S,w)},s.prototype.listenerCount=p;function p(S){var w=this._events;if(w!==void 0){var E=w[S];if(typeof E=="function")return 1;if(E!==void 0)return E.length}return 0}s.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]};function m(S,w){for(var E=new Array(w),T=0;T{je(),We(),Ue(),Ic={},b_=!1,Ll=cXe(),Ll.once,Ll.once=function(e,t){return new Promise((n,r)=>{function o(...a){s!==void 0&&e.removeListener("error",s),n(a)}let s;t!=="error"&&(s=a=>{e.removeListener(name,o),r(a)},e.once("error",s)),e.once(t,o)})},Ll.on=function(e,t){let n=[],r=[],o=null,s=!1,a={async next(){let u=n.shift();if(u)return createIterResult(u,!1);if(o){let c=Promise.reject(o);return o=null,c}return s?createIterResult(void 0,!0):new Promise((c,d)=>r.push({resolve:c,reject:d}))},async return(){e.removeListener(t,i),e.removeListener("error",l),s=!0;for(let u of r)u.resolve(createIterResult(void 0,!0));return createIterResult(void 0,!0)},throw(u){o=u,e.removeListener(t,i),e.removeListener("error",l)},[Symbol.asyncIterator](){return this}};return e.on(t,i),e.on("error",l),a;function i(...u){let c=r.shift();c?c.resolve(createIterResult(u,!1)):n.push(u)}function l(u){s=!0;let c=r.shift();c?c.reject(u):o=u,a.return()}},{EventEmitter:XO,defaultMaxListeners:JO,init:QO,listenerCount:ZO,on:eR,once:tR}=Ll}),zr=Ke((e,t)=>{je(),We(),Ue();var n=(Jn(),mn(Xn)),{format:r,inspect:o}=YO(),{codes:{ERR_INVALID_ARG_TYPE:s}}=Ir(),{kResistStopPropagation:a,AggregateError:i,SymbolDispose:l}=$n(),u=globalThis.AbortSignal||jd().AbortSignal,c=globalThis.AbortController||jd().AbortController,d=Object.getPrototypeOf(async function(){}).constructor,f=globalThis.Blob||n.Blob,p=typeof f<"u"?function(g){return g instanceof f}:function(g){return!1},m=(g,b)=>{if(g!==void 0&&(g===null||typeof g!="object"||!("aborted"in g)))throw new s(b,"AbortSignal",g)},v=(g,b)=>{if(typeof g!="function")throw new s(b,"Function",g)};t.exports={AggregateError:i,kEmptyObject:Object.freeze({}),once(g){let b=!1;return function(..._){b||(b=!0,g.apply(this,_))}},createDeferredPromise:function(){let g,b;return{promise:new Promise((_,y)=>{g=_,b=y}),resolve:g,reject:b}},promisify(g){return new Promise((b,_)=>{g((y,...S)=>y?_(y):b(...S))})},debuglog(){return function(){}},format:r,inspect:o,types:{isAsyncFunction(g){return g instanceof d},isArrayBufferView(g){return ArrayBuffer.isView(g)}},isBlob:p,deprecate(g,b){return g},addAbortListener:(pl(),mn(pi)).addAbortListener||function(g,b){if(g===void 0)throw new s("signal","AbortSignal",g);m(g,"signal"),v(b,"listener");let _;return g.aborted?queueMicrotask(()=>b()):(g.addEventListener("abort",b,{__proto__:null,once:!0,[a]:!0}),_=()=>{g.removeEventListener("abort",b)}),{__proto__:null,[l](){var y;(y=_)===null||y===void 0||y()}}},AbortSignalAny:u.any||function(g){if(g.length===1)return g[0];let b=new c,_=()=>b.abort();return g.forEach(y=>{m(y,"signals"),y.addEventListener("abort",_,{once:!0})}),b.signal.addEventListener("abort",()=>{g.forEach(y=>y.removeEventListener("abort",_))},{once:!0}),b.signal}},t.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")}),yf=Ke((e,t)=>{je(),We(),Ue();var{ArrayIsArray:n,ArrayPrototypeIncludes:r,ArrayPrototypeJoin:o,ArrayPrototypeMap:s,NumberIsInteger:a,NumberIsNaN:i,NumberMAX_SAFE_INTEGER:l,NumberMIN_SAFE_INTEGER:u,NumberParseInt:c,ObjectPrototypeHasOwnProperty:d,RegExpPrototypeExec:f,String:p,StringPrototypeToUpperCase:m,StringPrototypeTrim:v}=$n(),{hideStackFrames:g,codes:{ERR_SOCKET_BAD_PORT:b,ERR_INVALID_ARG_TYPE:_,ERR_INVALID_ARG_VALUE:y,ERR_OUT_OF_RANGE:S,ERR_UNKNOWN_SIGNAL:w}}=Ir(),{normalizeEncoding:E}=zr(),{isAsyncFunction:T,isArrayBufferView:C}=zr().types,$={};function x(re){return re===(re|0)}function N(re){return re===re>>>0}var I=/^[0-7]+$/,L="must be a 32-bit unsigned integer or an octal string";function F(re,fe,Te){if(typeof re>"u"&&(re=Te),typeof re=="string"){if(f(I,re)===null)throw new y(fe,re,L);re=c(re,8)}return P(re,fe),re}var B=g((re,fe,Te=u,$e=l)=>{if(typeof re!="number")throw new _(fe,"number",re);if(!a(re))throw new S(fe,"an integer",re);if(re$e)throw new S(fe,`>= ${Te} && <= ${$e}`,re)}),U=g((re,fe,Te=-2147483648,$e=2147483647)=>{if(typeof re!="number")throw new _(fe,"number",re);if(!a(re))throw new S(fe,"an integer",re);if(re$e)throw new S(fe,`>= ${Te} && <= ${$e}`,re)}),P=g((re,fe,Te=!1)=>{if(typeof re!="number")throw new _(fe,"number",re);if(!a(re))throw new S(fe,"an integer",re);let $e=Te?1:0,Le=4294967295;if(re<$e||re>Le)throw new S(fe,`>= ${$e} && <= ${Le}`,re)});function O(re,fe){if(typeof re!="string")throw new _(fe,"string",re)}function H(re,fe,Te=void 0,$e){if(typeof re!="number")throw new _(fe,"number",re);if(Te!=null&&re$e||(Te!=null||$e!=null)&&i(re))throw new S(fe,`${Te!=null?`>= ${Te}`:""}${Te!=null&&$e!=null?" && ":""}${$e!=null?`<= ${$e}`:""}`,re)}var q=g((re,fe,Te)=>{if(!r(Te,re)){let $e="must be one of: "+o(s(Te,Le=>typeof Le=="string"?`'${Le}'`:p(Le)),", ");throw new y(fe,re,$e)}});function te(re,fe){if(typeof re!="boolean")throw new _(fe,"boolean",re)}function V(re,fe,Te){return re==null||!d(re,fe)?Te:re[fe]}var Q=g((re,fe,Te=null)=>{let $e=V(Te,"allowArray",!1),Le=V(Te,"allowFunction",!1);if(!V(Te,"nullable",!1)&&re===null||!$e&&n(re)||typeof re!="object"&&(!Le||typeof re!="function"))throw new _(fe,"Object",re)}),ge=g((re,fe)=>{if(re!=null&&typeof re!="object"&&typeof re!="function")throw new _(fe,"a dictionary",re)}),ie=g((re,fe,Te=0)=>{if(!n(re))throw new _(fe,"Array",re);if(re.length{if(!C(re))throw new _(fe,["Buffer","TypedArray","DataView"],re)});function ve(re,fe){let Te=E(fe),$e=re.length;if(Te==="hex"&&$e%2!==0)throw new y("encoding",fe,`is invalid for data of length ${$e}`)}function J(re,fe="Port",Te=!0){if(typeof re!="number"&&typeof re!="string"||typeof re=="string"&&v(re).length===0||+re!==+re>>>0||re>65535||re===0&&!Te)throw new b(fe,re,Te);return re|0}var ae=g((re,fe)=>{if(re!==void 0&&(re===null||typeof re!="object"||!("aborted"in re)))throw new _(fe,"AbortSignal",re)}),ce=g((re,fe)=>{if(typeof re!="function")throw new _(fe,"Function",re)}),oe=g((re,fe)=>{if(typeof re!="function"||T(re))throw new _(fe,"Function",re)}),he=g((re,fe)=>{if(re!==void 0)throw new _(fe,"undefined",re)});function le(re,fe,Te){if(!r(Te,re))throw new _(fe,`('${o(Te,"|")}')`,re)}var Ee=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function ye(re,fe){if(typeof re>"u"||!f(Ee,re))throw new y(fe,re,'must be an array or string of format "; rel=preload; as=style"')}function pe(re){if(typeof re=="string")return ye(re,"hints"),re;if(n(re)){let fe=re.length,Te="";if(fe===0)return Te;for(let $e=0;$e; rel=preload; as=style"')}t.exports={isInt32:x,isUint32:N,parseFileMode:F,validateArray:ie,validateStringArray:ke,validateBooleanArray:Y,validateAbortSignalArray:K,validateBoolean:te,validateBuffer:ne,validateDictionary:ge,validateEncoding:ve,validateFunction:ce,validateInt32:U,validateInteger:B,validateNumber:H,validateObject:Q,validateOneOf:q,validatePlainFunction:oe,validatePort:J,validateSignalName:se,validateString:O,validateUint32:P,validateUndefined:he,validateUnion:le,validateAbortSignal:ae,validateLinkHeaderValue:pe}}),hl=Ke((e,t)=>{je(),We(),Ue();var n=t.exports={},r,o;function s(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?r=setTimeout:r=s}catch{r=s}try{typeof clearTimeout=="function"?o=clearTimeout:o=a}catch{o=a}})();function i(b){if(r===setTimeout)return setTimeout(b,0);if((r===s||!r)&&setTimeout)return r=setTimeout,setTimeout(b,0);try{return r(b,0)}catch{try{return r.call(null,b,0)}catch{return r.call(this,b,0)}}}function l(b){if(o===clearTimeout)return clearTimeout(b);if((o===a||!o)&&clearTimeout)return o=clearTimeout,clearTimeout(b);try{return o(b)}catch{try{return o.call(null,b)}catch{return o.call(this,b)}}}var u=[],c=!1,d,f=-1;function p(){!c||!d||(c=!1,d.length?u=d.concat(u):f=-1,u.length&&m())}function m(){if(!c){var b=i(p);c=!0;for(var _=u.length;_;){for(d=u,u=[];++f<_;)d&&d[f].run();f=-1,_=u.length}d=null,c=!1,l(b)}}n.nextTick=function(b){var _=new Array(arguments.length-1);if(arguments.length>1)for(var y=1;y{je(),We(),Ue();var{SymbolAsyncIterator:n,SymbolIterator:r,SymbolFor:o}=$n(),s=o("nodejs.stream.destroyed"),a=o("nodejs.stream.errored"),i=o("nodejs.stream.readable"),l=o("nodejs.stream.writable"),u=o("nodejs.stream.disturbed"),c=o("nodejs.webstream.isClosedPromise"),d=o("nodejs.webstream.controllerErrorFunction");function f(V,Q=!1){var ge;return!!(V&&typeof V.pipe=="function"&&typeof V.on=="function"&&(!Q||typeof V.pause=="function"&&typeof V.resume=="function")&&(!V._writableState||((ge=V._readableState)===null||ge===void 0?void 0:ge.readable)!==!1)&&(!V._writableState||V._readableState))}function p(V){var Q;return!!(V&&typeof V.write=="function"&&typeof V.on=="function"&&(!V._readableState||((Q=V._writableState)===null||Q===void 0?void 0:Q.writable)!==!1))}function m(V){return!!(V&&typeof V.pipe=="function"&&V._readableState&&typeof V.on=="function"&&typeof V.write=="function")}function v(V){return V&&(V._readableState||V._writableState||typeof V.write=="function"&&typeof V.on=="function"||typeof V.pipe=="function"&&typeof V.on=="function")}function g(V){return!!(V&&!v(V)&&typeof V.pipeThrough=="function"&&typeof V.getReader=="function"&&typeof V.cancel=="function")}function b(V){return!!(V&&!v(V)&&typeof V.getWriter=="function"&&typeof V.abort=="function")}function _(V){return!!(V&&!v(V)&&typeof V.readable=="object"&&typeof V.writable=="object")}function y(V){return g(V)||b(V)||_(V)}function S(V,Q){return V==null?!1:Q===!0?typeof V[n]=="function":Q===!1?typeof V[r]=="function":typeof V[n]=="function"||typeof V[r]=="function"}function w(V){if(!v(V))return null;let Q=V._writableState,ge=V._readableState,ie=Q||ge;return!!(V.destroyed||V[s]||ie!=null&&ie.destroyed)}function E(V){if(!p(V))return null;if(V.writableEnded===!0)return!0;let Q=V._writableState;return Q!=null&&Q.errored?!1:typeof(Q==null?void 0:Q.ended)!="boolean"?null:Q.ended}function T(V,Q){if(!p(V))return null;if(V.writableFinished===!0)return!0;let ge=V._writableState;return ge!=null&&ge.errored?!1:typeof(ge==null?void 0:ge.finished)!="boolean"?null:!!(ge.finished||Q===!1&&ge.ended===!0&&ge.length===0)}function C(V){if(!f(V))return null;if(V.readableEnded===!0)return!0;let Q=V._readableState;return!Q||Q.errored?!1:typeof(Q==null?void 0:Q.ended)!="boolean"?null:Q.ended}function $(V,Q){if(!f(V))return null;let ge=V._readableState;return ge!=null&&ge.errored?!1:typeof(ge==null?void 0:ge.endEmitted)!="boolean"?null:!!(ge.endEmitted||Q===!1&&ge.ended===!0&&ge.length===0)}function x(V){return V&&V[i]!=null?V[i]:typeof(V==null?void 0:V.readable)!="boolean"?null:w(V)?!1:f(V)&&V.readable&&!$(V)}function N(V){return V&&V[l]!=null?V[l]:typeof(V==null?void 0:V.writable)!="boolean"?null:w(V)?!1:p(V)&&V.writable&&!E(V)}function I(V,Q){return v(V)?w(V)?!0:!((Q==null?void 0:Q.readable)!==!1&&x(V)||(Q==null?void 0:Q.writable)!==!1&&N(V)):null}function L(V){var Q,ge;return v(V)?V.writableErrored?V.writableErrored:(Q=(ge=V._writableState)===null||ge===void 0?void 0:ge.errored)!==null&&Q!==void 0?Q:null:null}function F(V){var Q,ge;return v(V)?V.readableErrored?V.readableErrored:(Q=(ge=V._readableState)===null||ge===void 0?void 0:ge.errored)!==null&&Q!==void 0?Q:null:null}function B(V){if(!v(V))return null;if(typeof V.closed=="boolean")return V.closed;let Q=V._writableState,ge=V._readableState;return typeof(Q==null?void 0:Q.closed)=="boolean"||typeof(ge==null?void 0:ge.closed)=="boolean"?(Q==null?void 0:Q.closed)||(ge==null?void 0:ge.closed):typeof V._closed=="boolean"&&U(V)?V._closed:null}function U(V){return typeof V._closed=="boolean"&&typeof V._defaultKeepAlive=="boolean"&&typeof V._removedConnection=="boolean"&&typeof V._removedContLen=="boolean"}function P(V){return typeof V._sent100=="boolean"&&U(V)}function O(V){var Q;return typeof V._consuming=="boolean"&&typeof V._dumped=="boolean"&&((Q=V.req)===null||Q===void 0?void 0:Q.upgradeOrConnect)===void 0}function H(V){if(!v(V))return null;let Q=V._writableState,ge=V._readableState,ie=Q||ge;return!ie&&P(V)||!!(ie&&ie.autoDestroy&&ie.emitClose&&ie.closed===!1)}function q(V){var Q;return!!(V&&((Q=V[u])!==null&&Q!==void 0?Q:V.readableDidRead||V.readableAborted))}function te(V){var Q,ge,ie,ke,Y,K,se,ne,ve,J;return!!(V&&((Q=(ge=(ie=(ke=(Y=(K=V[a])!==null&&K!==void 0?K:V.readableErrored)!==null&&Y!==void 0?Y:V.writableErrored)!==null&&ke!==void 0?ke:(se=V._readableState)===null||se===void 0?void 0:se.errorEmitted)!==null&&ie!==void 0?ie:(ne=V._writableState)===null||ne===void 0?void 0:ne.errorEmitted)!==null&&ge!==void 0?ge:(ve=V._readableState)===null||ve===void 0?void 0:ve.errored)!==null&&Q!==void 0?Q:!((J=V._writableState)===null||J===void 0)&&J.errored))}t.exports={isDestroyed:w,kIsDestroyed:s,isDisturbed:q,kIsDisturbed:u,isErrored:te,kIsErrored:a,isReadable:x,kIsReadable:i,kIsClosedPromise:c,kControllerErrorFunction:d,kIsWritable:l,isClosed:B,isDuplexNodeStream:m,isFinished:I,isIterable:S,isReadableNodeStream:f,isReadableStream:g,isReadableEnded:C,isReadableFinished:$,isReadableErrored:F,isNodeStream:v,isWebStream:y,isWritable:N,isWritableNodeStream:p,isWritableStream:b,isWritableEnded:E,isWritableFinished:T,isWritableErrored:L,isServerRequest:O,isServerResponse:P,willEmitClose:H,isTransformStream:_}}),hi=Ke((e,t)=>{je(),We(),Ue();var n=hl(),{AbortError:r,codes:o}=Ir(),{ERR_INVALID_ARG_TYPE:s,ERR_STREAM_PREMATURE_CLOSE:a}=o,{kEmptyObject:i,once:l}=zr(),{validateAbortSignal:u,validateFunction:c,validateObject:d,validateBoolean:f}=yf(),{Promise:p,PromisePrototypeThen:m,SymbolDispose:v}=$n(),{isClosed:g,isReadable:b,isReadableNodeStream:_,isReadableStream:y,isReadableFinished:S,isReadableErrored:w,isWritable:E,isWritableNodeStream:T,isWritableStream:C,isWritableFinished:$,isWritableErrored:x,isNodeStream:N,willEmitClose:I,kIsClosedPromise:L}=ba(),F;function B(q){return q.setHeader&&typeof q.abort=="function"}var U=()=>{};function P(q,te,V){var Q,ge;if(arguments.length===2?(V=te,te=i):te==null?te=i:d(te,"options"),c(V,"callback"),u(te.signal,"options.signal"),V=l(V),y(q)||C(q))return O(q,te,V);if(!N(q))throw new s("stream",["ReadableStream","WritableStream","Stream"],q);let ie=(Q=te.readable)!==null&&Q!==void 0?Q:_(q),ke=(ge=te.writable)!==null&&ge!==void 0?ge:T(q),Y=q._writableState,K=q._readableState,se=()=>{q.writable||J()},ne=I(q)&&_(q)===ie&&T(q)===ke,ve=$(q,!1),J=()=>{ve=!0,q.destroyed&&(ne=!1),!(ne&&(!q.readable||ie))&&(!ie||ae)&&V.call(q)},ae=S(q,!1),ce=()=>{ae=!0,q.destroyed&&(ne=!1),!(ne&&(!q.writable||ke))&&(!ke||ve)&&V.call(q)},oe=re=>{V.call(q,re)},he=g(q),le=()=>{he=!0;let re=x(q)||w(q);if(re&&typeof re!="boolean")return V.call(q,re);if(ie&&!ae&&_(q,!0)&&!S(q,!1))return V.call(q,new a);if(ke&&!ve&&!$(q,!1))return V.call(q,new a);V.call(q)},Ee=()=>{he=!0;let re=x(q)||w(q);if(re&&typeof re!="boolean")return V.call(q,re);V.call(q)},ye=()=>{q.req.on("finish",J)};B(q)?(q.on("complete",J),ne||q.on("abort",le),q.req?ye():q.on("request",ye)):ke&&!Y&&(q.on("end",se),q.on("close",se)),!ne&&typeof q.aborted=="boolean"&&q.on("aborted",le),q.on("end",ce),q.on("finish",J),te.error!==!1&&q.on("error",oe),q.on("close",le),he?n.nextTick(le):Y!=null&&Y.errorEmitted||K!=null&&K.errorEmitted?ne||n.nextTick(Ee):(!ie&&(!ne||b(q))&&(ve||E(q)===!1)||!ke&&(!ne||E(q))&&(ae||b(q)===!1)||K&&q.req&&q.aborted)&&n.nextTick(Ee);let pe=()=>{V=U,q.removeListener("aborted",le),q.removeListener("complete",J),q.removeListener("abort",le),q.removeListener("request",ye),q.req&&q.req.removeListener("finish",J),q.removeListener("end",se),q.removeListener("close",se),q.removeListener("finish",J),q.removeListener("end",ce),q.removeListener("error",oe),q.removeListener("close",le)};if(te.signal&&!he){let re=()=>{let fe=V;pe(),fe.call(q,new r(void 0,{cause:te.signal.reason}))};if(te.signal.aborted)n.nextTick(re);else{F=F||zr().addAbortListener;let fe=F(te.signal,re),Te=V;V=l((...$e)=>{fe[v](),Te.apply(q,$e)})}}return pe}function O(q,te,V){let Q=!1,ge=U;if(te.signal)if(ge=()=>{Q=!0,V.call(q,new r(void 0,{cause:te.signal.reason}))},te.signal.aborted)n.nextTick(ge);else{F=F||zr().addAbortListener;let ke=F(te.signal,ge),Y=V;V=l((...K)=>{ke[v](),Y.apply(q,K)})}let ie=(...ke)=>{Q||n.nextTick(()=>V.apply(q,ke))};return m(q[L].promise,ie,ie),U}function H(q,te){var V;let Q=!1;return te===null&&(te=i),(V=te)!==null&&V!==void 0&&V.cleanup&&(f(te.cleanup,"cleanup"),Q=te.cleanup),new p((ge,ie)=>{let ke=P(q,te,Y=>{Q&&ke(),Y?ie(Y):ge()})})}t.exports=P,t.exports.finished=H}),sc=Ke((e,t)=>{je(),We(),Ue();var n=hl(),{aggregateTwoErrors:r,codes:{ERR_MULTIPLE_CALLBACK:o},AbortError:s}=Ir(),{Symbol:a}=$n(),{kIsDestroyed:i,isDestroyed:l,isFinished:u,isServerRequest:c}=ba(),d=a("kDestroy"),f=a("kConstruct");function p(I,L,F){I&&(I.stack,L&&!L.errored&&(L.errored=I),F&&!F.errored&&(F.errored=I))}function m(I,L){let F=this._readableState,B=this._writableState,U=B||F;return B!=null&&B.destroyed||F!=null&&F.destroyed?(typeof L=="function"&&L(),this):(p(I,B,F),B&&(B.destroyed=!0),F&&(F.destroyed=!0),U.constructed?v(this,I,L):this.once(d,function(P){v(this,r(P,I),L)}),this)}function v(I,L,F){let B=!1;function U(P){if(B)return;B=!0;let O=I._readableState,H=I._writableState;p(P,H,O),H&&(H.closed=!0),O&&(O.closed=!0),typeof F=="function"&&F(P),P?n.nextTick(g,I,P):n.nextTick(b,I)}try{I._destroy(L||null,U)}catch(P){U(P)}}function g(I,L){_(I,L),b(I)}function b(I){let L=I._readableState,F=I._writableState;F&&(F.closeEmitted=!0),L&&(L.closeEmitted=!0),(F!=null&&F.emitClose||L!=null&&L.emitClose)&&I.emit("close")}function _(I,L){let F=I._readableState,B=I._writableState;B!=null&&B.errorEmitted||F!=null&&F.errorEmitted||(B&&(B.errorEmitted=!0),F&&(F.errorEmitted=!0),I.emit("error",L))}function y(){let I=this._readableState,L=this._writableState;I&&(I.constructed=!0,I.closed=!1,I.closeEmitted=!1,I.destroyed=!1,I.errored=null,I.errorEmitted=!1,I.reading=!1,I.ended=I.readable===!1,I.endEmitted=I.readable===!1),L&&(L.constructed=!0,L.destroyed=!1,L.closed=!1,L.closeEmitted=!1,L.errored=null,L.errorEmitted=!1,L.finalCalled=!1,L.prefinished=!1,L.ended=L.writable===!1,L.ending=L.writable===!1,L.finished=L.writable===!1)}function S(I,L,F){let B=I._readableState,U=I._writableState;if(U!=null&&U.destroyed||B!=null&&B.destroyed)return this;B!=null&&B.autoDestroy||U!=null&&U.autoDestroy?I.destroy(L):L&&(L.stack,U&&!U.errored&&(U.errored=L),B&&!B.errored&&(B.errored=L),F?n.nextTick(_,I,L):_(I,L))}function w(I,L){if(typeof I._construct!="function")return;let F=I._readableState,B=I._writableState;F&&(F.constructed=!1),B&&(B.constructed=!1),I.once(f,L),!(I.listenerCount(f)>1)&&n.nextTick(E,I)}function E(I){let L=!1;function F(B){if(L){S(I,B??new o);return}L=!0;let U=I._readableState,P=I._writableState,O=P||U;U&&(U.constructed=!0),P&&(P.constructed=!0),O.destroyed?I.emit(d,B):B?S(I,B,!0):n.nextTick(T,I)}try{I._construct(B=>{n.nextTick(F,B)})}catch(B){n.nextTick(F,B)}}function T(I){I.emit(f)}function C(I){return(I==null?void 0:I.setHeader)&&typeof I.abort=="function"}function $(I){I.emit("close")}function x(I,L){I.emit("error",L),n.nextTick($,I)}function N(I,L){!I||l(I)||(!L&&!u(I)&&(L=new s),c(I)?(I.socket=null,I.destroy(L)):C(I)?I.abort():C(I.req)?I.req.abort():typeof I.destroy=="function"?I.destroy(L):typeof I.close=="function"?I.close():L?n.nextTick(x,I,L):n.nextTick($,I),I.destroyed||(I[i]=!0))}t.exports={construct:w,destroyer:N,destroy:m,undestroy:y,errorOrDestroy:S}}),_3=Ke((e,t)=>{je(),We(),Ue();var{ArrayIsArray:n,ObjectSetPrototypeOf:r}=$n(),{EventEmitter:o}=(pl(),mn(pi));function s(i){o.call(this,i)}r(s.prototype,o.prototype),r(s,o),s.prototype.pipe=function(i,l){let u=this;function c(b){i.writable&&i.write(b)===!1&&u.pause&&u.pause()}u.on("data",c);function d(){u.readable&&u.resume&&u.resume()}i.on("drain",d),!i._isStdio&&(!l||l.end!==!1)&&(u.on("end",p),u.on("close",m));let f=!1;function p(){f||(f=!0,i.end())}function m(){f||(f=!0,typeof i.destroy=="function"&&i.destroy())}function v(b){g(),o.listenerCount(this,"error")===0&&this.emit("error",b)}a(u,"error",v),a(i,"error",v);function g(){u.removeListener("data",c),i.removeListener("drain",d),u.removeListener("end",p),u.removeListener("close",m),u.removeListener("error",v),i.removeListener("error",v),u.removeListener("end",g),u.removeListener("close",g),i.removeListener("close",g)}return u.on("end",g),u.on("close",g),i.on("close",g),i.emit("pipe",u),i};function a(i,l,u){if(typeof i.prependListener=="function")return i.prependListener(l,u);!i._events||!i._events[l]?i.on(l,u):n(i._events[l])?i._events[l].unshift(u):i._events[l]=[u,i._events[l]]}t.exports={Stream:s,prependListener:a}}),$m=Ke((e,t)=>{je(),We(),Ue();var{SymbolDispose:n}=$n(),{AbortError:r,codes:o}=Ir(),{isNodeStream:s,isWebStream:a,kControllerErrorFunction:i}=ba(),l=hi(),{ERR_INVALID_ARG_TYPE:u}=o,c,d=(f,p)=>{if(typeof f!="object"||!("aborted"in f))throw new u(p,"AbortSignal",f)};t.exports.addAbortSignal=function(f,p){if(d(f,"signal"),!s(p)&&!a(p))throw new u("stream",["ReadableStream","WritableStream","Stream"],p);return t.exports.addAbortSignalNoValidate(f,p)},t.exports.addAbortSignalNoValidate=function(f,p){if(typeof f!="object"||!("aborted"in f))return p;let m=s(p)?()=>{p.destroy(new r(void 0,{cause:f.reason}))}:()=>{p[i](new r(void 0,{cause:f.reason}))};if(f.aborted)m();else{c=c||zr().addAbortListener;let v=c(f,m);l(p,v[n])}return p}}),dXe=Ke((e,t)=>{je(),We(),Ue();var{StringPrototypeSlice:n,SymbolIterator:r,TypedArrayPrototypeSet:o,Uint8Array:s}=$n(),{Buffer:a}=(Jn(),mn(Xn)),{inspect:i}=zr();t.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(l){let u={data:l,next:null};this.length>0?this.tail.next=u:this.head=u,this.tail=u,++this.length}unshift(l){let u={data:l,next:this.head};this.length===0&&(this.tail=u),this.head=u,++this.length}shift(){if(this.length===0)return;let l=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,l}clear(){this.head=this.tail=null,this.length=0}join(l){if(this.length===0)return"";let u=this.head,c=""+u.data;for(;(u=u.next)!==null;)c+=l+u.data;return c}concat(l){if(this.length===0)return a.alloc(0);let u=a.allocUnsafe(l>>>0),c=this.head,d=0;for(;c;)o(u,c.data,d),d+=c.data.length,c=c.next;return u}consume(l,u){let c=this.head.data;if(lf.length)u+=f,l-=f.length;else{l===f.length?(u+=f,++d,c.next?this.head=c.next:this.head=this.tail=null):(u+=n(f,0,l),this.head=c,c.data=n(f,l));break}++d}while((c=c.next)!==null);return this.length-=d,u}_getBuffer(l){let u=a.allocUnsafe(l),c=l,d=this.head,f=0;do{let p=d.data;if(l>p.length)o(u,p,c-l),l-=p.length;else{l===p.length?(o(u,p,c-l),++f,d.next?this.head=d.next:this.head=this.tail=null):(o(u,new s(p.buffer,p.byteOffset,l),c-l),this.head=d,d.data=p.slice(l));break}++f}while((d=d.next)!==null);return this.length-=f,u}[Symbol.for("nodejs.util.inspect.custom")](l,u){return i(this,{...u,depth:0,customInspect:!1})}}}),xm=Ke((e,t)=>{je(),We(),Ue();var{MathFloor:n,NumberIsInteger:r}=$n(),{validateInteger:o}=yf(),{ERR_INVALID_ARG_VALUE:s}=Ir().codes,a=16*1024,i=16;function l(f,p,m){return f.highWaterMark!=null?f.highWaterMark:p?f[m]:null}function u(f){return f?i:a}function c(f,p){o(p,"value",0),f?i=p:a=p}function d(f,p,m,v){let g=l(p,v,m);if(g!=null){if(!r(g)||g<0){let b=v?`options.${m}`:"options.highWaterMark";throw new s(b,g)}return n(g)}return u(f.objectMode)}t.exports={getHighWaterMark:d,getDefaultHighWaterMark:u,setDefaultHighWaterMark:c}}),fXe=Ke((e,t)=>{je(),We(),Ue();var n=(Jn(),mn(Xn)),r=n.Buffer;function o(a,i){for(var l in a)i[l]=a[l]}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?t.exports=n:(o(n,e),e.Buffer=s);function s(a,i,l){return r(a,i,l)}s.prototype=Object.create(r.prototype),o(r,s),s.from=function(a,i,l){if(typeof a=="number")throw new TypeError("Argument must not be a number");return r(a,i,l)},s.alloc=function(a,i,l){if(typeof a!="number")throw new TypeError("Argument must be a number");var u=r(a);return i!==void 0?typeof l=="string"?u.fill(i,l):u.fill(i):u.fill(0),u},s.allocUnsafe=function(a){if(typeof a!="number")throw new TypeError("Argument must be a number");return r(a)},s.allocUnsafeSlow=function(a){if(typeof a!="number")throw new TypeError("Argument must be a number");return n.SlowBuffer(a)}}),pXe=Ke(e=>{je(),We(),Ue();var t=fXe().Buffer,n=t.isEncoding||function(_){switch(_=""+_,_&&_.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function r(_){if(!_)return"utf8";for(var y;;)switch(_){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return _;default:if(y)return;_=(""+_).toLowerCase(),y=!0}}function o(_){var y=r(_);if(typeof y!="string"&&(t.isEncoding===n||!n(_)))throw new Error("Unknown encoding: "+_);return y||_}e.StringDecoder=s;function s(_){this.encoding=o(_);var y;switch(this.encoding){case"utf16le":this.text=f,this.end=p,y=4;break;case"utf8":this.fillLast=u,y=4;break;case"base64":this.text=m,this.end=v,y=3;break;default:this.write=g,this.end=b;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=t.allocUnsafe(y)}s.prototype.write=function(_){if(_.length===0)return"";var y,S;if(this.lastNeed){if(y=this.fillLast(_),y===void 0)return"";S=this.lastNeed,this.lastNeed=0}else S=0;return S<_.length?y?y+this.text(_,S):this.text(_,S):y||""},s.prototype.end=d,s.prototype.text=c,s.prototype.fillLast=function(_){if(this.lastNeed<=_.length)return _.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);_.copy(this.lastChar,this.lastTotal-this.lastNeed,0,_.length),this.lastNeed-=_.length};function a(_){return _<=127?0:_>>5===6?2:_>>4===14?3:_>>3===30?4:_>>6===2?-1:-2}function i(_,y,S){var w=y.length-1;if(w=0?(E>0&&(_.lastNeed=E-1),E):--w=0?(E>0&&(_.lastNeed=E-2),E):--w=0?(E>0&&(E===2?E=0:_.lastNeed=E-3),E):0))}function l(_,y,S){if((y[0]&192)!==128)return _.lastNeed=0,"�";if(_.lastNeed>1&&y.length>1){if((y[1]&192)!==128)return _.lastNeed=1,"�";if(_.lastNeed>2&&y.length>2&&(y[2]&192)!==128)return _.lastNeed=2,"�"}}function u(_){var y=this.lastTotal-this.lastNeed,S=l(this,_);if(S!==void 0)return S;if(this.lastNeed<=_.length)return _.copy(this.lastChar,y,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);_.copy(this.lastChar,y,0,_.length),this.lastNeed-=_.length}function c(_,y){var S=i(this,_,y);if(!this.lastNeed)return _.toString("utf8",y);this.lastTotal=S;var w=_.length-(S-this.lastNeed);return _.copy(this.lastChar,0,w),_.toString("utf8",y,w)}function d(_){var y=_&&_.length?this.write(_):"";return this.lastNeed?y+"�":y}function f(_,y){if((_.length-y)%2===0){var S=_.toString("utf16le",y);if(S){var w=S.charCodeAt(S.length-1);if(w>=55296&&w<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=_[_.length-2],this.lastChar[1]=_[_.length-1],S.slice(0,-1)}return S}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=_[_.length-1],_.toString("utf16le",y,_.length-1)}function p(_){var y=_&&_.length?this.write(_):"";if(this.lastNeed){var S=this.lastTotal-this.lastNeed;return y+this.lastChar.toString("utf16le",0,S)}return y}function m(_,y){var S=(_.length-y)%3;return S===0?_.toString("base64",y):(this.lastNeed=3-S,this.lastTotal=3,S===1?this.lastChar[0]=_[_.length-1]:(this.lastChar[0]=_[_.length-2],this.lastChar[1]=_[_.length-1]),_.toString("base64",y,_.length-S))}function v(_){var y=_&&_.length?this.write(_):"";return this.lastNeed?y+this.lastChar.toString("base64",0,3-this.lastNeed):y}function g(_){return _.toString(this.encoding)}function b(_){return _&&_.length?this.write(_):""}}),nR=Ke((e,t)=>{je(),We(),Ue();var n=hl(),{PromisePrototypeThen:r,SymbolAsyncIterator:o,SymbolIterator:s}=$n(),{Buffer:a}=(Jn(),mn(Xn)),{ERR_INVALID_ARG_TYPE:i,ERR_STREAM_NULL_VALUES:l}=Ir().codes;function u(c,d,f){let p;if(typeof d=="string"||d instanceof a)return new c({objectMode:!0,...f,read(){this.push(d),this.push(null)}});let m;if(d&&d[o])m=!0,p=d[o]();else if(d&&d[s])m=!1,p=d[s]();else throw new i("iterable",["Iterable"],d);let v=new c({objectMode:!0,highWaterMark:1,...f}),g=!1;v._read=function(){g||(g=!0,_())},v._destroy=function(y,S){r(b(y),()=>n.nextTick(S,y),w=>n.nextTick(S,w||y))};async function b(y){let S=y!=null,w=typeof p.throw=="function";if(S&&w){let{value:E,done:T}=await p.throw(y);if(await E,T)return}if(typeof p.return=="function"){let{value:E}=await p.return();await E}}async function _(){for(;;){try{let{value:y,done:S}=m?await p.next():p.next();if(S)v.push(null);else{let w=y&&typeof y.then=="function"?await y:y;if(w===null)throw g=!1,new l;if(v.push(w))continue;g=!1}}catch(y){v.destroy(y)}break}}return v}t.exports=u}),Im=Ke((e,t)=>{je(),We(),Ue();var n=hl(),{ArrayPrototypeIndexOf:r,NumberIsInteger:o,NumberIsNaN:s,NumberParseInt:a,ObjectDefineProperties:i,ObjectKeys:l,ObjectSetPrototypeOf:u,Promise:c,SafeSet:d,SymbolAsyncDispose:f,SymbolAsyncIterator:p,Symbol:m}=$n();t.exports=$e,$e.ReadableState=Te;var{EventEmitter:v}=(pl(),mn(pi)),{Stream:g,prependListener:b}=_3(),{Buffer:_}=(Jn(),mn(Xn)),{addAbortSignal:y}=$m(),S=hi(),w=zr().debuglog("stream",we=>{w=we}),E=dXe(),T=sc(),{getHighWaterMark:C,getDefaultHighWaterMark:$}=xm(),{aggregateTwoErrors:x,codes:{ERR_INVALID_ARG_TYPE:N,ERR_METHOD_NOT_IMPLEMENTED:I,ERR_OUT_OF_RANGE:L,ERR_STREAM_PUSH_AFTER_EOF:F,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:B},AbortError:U}=Ir(),{validateObject:P}=yf(),O=m("kPaused"),{StringDecoder:H}=pXe(),q=nR();u($e.prototype,g.prototype),u($e,g);var te=()=>{},{errorOrDestroy:V}=T,Q=1,ge=2,ie=4,ke=8,Y=16,K=32,se=64,ne=128,ve=256,J=512,ae=1024,ce=2048,oe=4096,he=8192,le=16384,Ee=32768,ye=65536,pe=1<<17,re=1<<18;function fe(we){return{enumerable:!1,get(){return(this.state&we)!==0},set(xe){xe?this.state|=we:this.state&=~we}}}i(Te.prototype,{objectMode:fe(Q),ended:fe(ge),endEmitted:fe(ie),reading:fe(ke),constructed:fe(Y),sync:fe(K),needReadable:fe(se),emittedReadable:fe(ne),readableListening:fe(ve),resumeScheduled:fe(J),errorEmitted:fe(ae),emitClose:fe(ce),autoDestroy:fe(oe),destroyed:fe(he),closed:fe(le),closeEmitted:fe(Ee),multiAwaitDrain:fe(ye),readingMore:fe(pe),dataEmitted:fe(re)});function Te(we,xe,nt){typeof nt!="boolean"&&(nt=xe instanceof ra()),this.state=ce|oe|Y|K,we&&we.objectMode&&(this.state|=Q),nt&&we&&we.readableObjectMode&&(this.state|=Q),this.highWaterMark=we?C(this,we,"readableHighWaterMark",nt):$(!1),this.buffer=new E,this.length=0,this.pipes=[],this.flowing=null,this[O]=null,we&&we.emitClose===!1&&(this.state&=~ce),we&&we.autoDestroy===!1&&(this.state&=~oe),this.errored=null,this.defaultEncoding=we&&we.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.decoder=null,this.encoding=null,we&&we.encoding&&(this.decoder=new H(we.encoding),this.encoding=we.encoding)}function $e(we){if(!(this instanceof $e))return new $e(we);let xe=this instanceof ra();this._readableState=new Te(we,this,xe),we&&(typeof we.read=="function"&&(this._read=we.read),typeof we.destroy=="function"&&(this._destroy=we.destroy),typeof we.construct=="function"&&(this._construct=we.construct),we.signal&&!xe&&y(we.signal,this)),g.call(this,we),T.construct(this,()=>{this._readableState.needReadable&&Z(this,this._readableState)})}$e.prototype.destroy=T.destroy,$e.prototype._undestroy=T.undestroy,$e.prototype._destroy=function(we,xe){xe(we)},$e.prototype[v.captureRejectionSymbol]=function(we){this.destroy(we)},$e.prototype[f]=function(){let we;return this.destroyed||(we=this.readableEnded?null:new U,this.destroy(we)),new c((xe,nt)=>S(this,pt=>pt&&pt!==we?nt(pt):xe(null)))},$e.prototype.push=function(we,xe){return Le(this,we,xe,!1)},$e.prototype.unshift=function(we,xe){return Le(this,we,xe,!0)};function Le(we,xe,nt,pt){w("readableAddChunk",xe);let yt=we._readableState,Fn;if(!(yt.state&Q)&&(typeof xe=="string"?(nt=nt||yt.defaultEncoding,yt.encoding!==nt&&(pt&&yt.encoding?xe=_.from(xe,nt).toString(yt.encoding):(xe=_.from(xe,nt),nt=""))):xe instanceof _?nt="":g._isUint8Array(xe)?(xe=g._uint8ArrayToBuffer(xe),nt=""):xe!=null&&(Fn=new N("chunk",["string","Buffer","Uint8Array"],xe))),Fn)V(we,Fn);else if(xe===null)yt.state&=~ke,ue(we,yt);else if(yt.state&Q||xe&&xe.length>0)if(pt)if(yt.state&ie)V(we,new B);else{if(yt.destroyed||yt.errored)return!1;A(we,yt,xe,!0)}else if(yt.ended)V(we,new F);else{if(yt.destroyed||yt.errored)return!1;yt.state&=~ke,yt.decoder&&!nt?(xe=yt.decoder.write(xe),yt.objectMode||xe.length!==0?A(we,yt,xe,!1):Z(we,yt)):A(we,yt,xe,!1)}else pt||(yt.state&=~ke,Z(we,yt));return!yt.ended&&(yt.length0?(xe.state&ye?xe.awaitDrainWriters.clear():xe.awaitDrainWriters=null,xe.dataEmitted=!0,we.emit("data",nt)):(xe.length+=xe.objectMode?1:nt.length,pt?xe.buffer.unshift(nt):xe.buffer.push(nt),xe.state&se&&_e(we)),Z(we,xe)}$e.prototype.isPaused=function(){let we=this._readableState;return we[O]===!0||we.flowing===!1},$e.prototype.setEncoding=function(we){let xe=new H(we);this._readableState.decoder=xe,this._readableState.encoding=this._readableState.decoder.encoding;let nt=this._readableState.buffer,pt="";for(let yt of nt)pt+=xe.write(yt);return nt.clear(),pt!==""&&nt.push(pt),this._readableState.length=pt.length,this};var M=1073741824;function j(we){if(we>M)throw new L("size","<= 1GiB",we);return we--,we|=we>>>1,we|=we>>>2,we|=we>>>4,we|=we>>>8,we|=we>>>16,we++,we}function G(we,xe){return we<=0||xe.length===0&&xe.ended?0:xe.state&Q?1:s(we)?xe.flowing&&xe.length?xe.buffer.first().length:xe.length:we<=xe.length?we:xe.ended?xe.length:0}$e.prototype.read=function(we){w("read",we),we===void 0?we=NaN:o(we)||(we=a(we,10));let xe=this._readableState,nt=we;if(we>xe.highWaterMark&&(xe.highWaterMark=j(we)),we!==0&&(xe.state&=~ne),we===0&&xe.needReadable&&((xe.highWaterMark!==0?xe.length>=xe.highWaterMark:xe.length>0)||xe.ended))return w("read: emitReadable",xe.length,xe.ended),xe.length===0&&xe.ended?st(this):_e(this),null;if(we=G(we,xe),we===0&&xe.ended)return xe.length===0&&st(this),null;let pt=(xe.state&se)!==0;if(w("need readable",pt),(xe.length===0||xe.length-we0?yt=Ve(we,xe):yt=null,yt===null?(xe.needReadable=xe.length<=xe.highWaterMark,we=0):(xe.length-=we,xe.multiAwaitDrain?xe.awaitDrainWriters.clear():xe.awaitDrainWriters=null),xe.length===0&&(xe.ended||(xe.needReadable=!0),nt!==we&&xe.ended&&st(this)),yt!==null&&!xe.errorEmitted&&!xe.closeEmitted&&(xe.dataEmitted=!0,this.emit("data",yt)),yt};function ue(we,xe){if(w("onEofChunk"),!xe.ended){if(xe.decoder){let nt=xe.decoder.end();nt&&nt.length&&(xe.buffer.push(nt),xe.length+=xe.objectMode?1:nt.length)}xe.ended=!0,xe.sync?_e(we):(xe.needReadable=!1,xe.emittedReadable=!0,X(we))}}function _e(we){let xe=we._readableState;w("emitReadable",xe.needReadable,xe.emittedReadable),xe.needReadable=!1,xe.emittedReadable||(w("emitReadable",xe.flowing),xe.emittedReadable=!0,n.nextTick(X,we))}function X(we){let xe=we._readableState;w("emitReadable_",xe.destroyed,xe.length,xe.ended),!xe.destroyed&&!xe.errored&&(xe.length||xe.ended)&&(we.emit("readable"),xe.emittedReadable=!1),xe.needReadable=!xe.flowing&&!xe.ended&&xe.length<=xe.highWaterMark,It(we)}function Z(we,xe){!xe.readingMore&&xe.constructed&&(xe.readingMore=!0,n.nextTick(de,we,xe))}function de(we,xe){for(;!xe.reading&&!xe.ended&&(xe.length1&&pt.pipes.includes(we)&&(w("false write response, pause",pt.awaitDrainWriters.size),pt.awaitDrainWriters.add(we)),nt.pause()),ko||(ko=Oe(nt,we),we.on("drain",ko))}nt.on("data",wf);function wf(Xo){w("ondata");let gs=we.write(Xo);w("dest.write",gs),gs===!1&&dc()}function mi(Xo){if(w("onerror",Xo),vi(),we.removeListener("error",mi),we.listenerCount("error")===0){let gs=we._writableState||we._readableState;gs&&!gs.errorEmitted?V(we,Xo):we.emit("error",Xo)}}b(we,"error",mi);function Yo(){we.removeListener("finish",Ea),vi()}we.once("close",Yo);function Ea(){w("onfinish"),we.removeListener("close",Yo),vi()}we.once("finish",Ea);function vi(){w("unpipe"),nt.unpipe(we)}return we.emit("pipe",nt),we.writableNeedDrain===!0?dc():pt.flowing||(w("pipe resume"),nt.resume()),we};function Oe(we,xe){return function(){let nt=we._readableState;nt.awaitDrainWriters===xe?(w("pipeOnDrain",1),nt.awaitDrainWriters=null):nt.multiAwaitDrain&&(w("pipeOnDrain",nt.awaitDrainWriters.size),nt.awaitDrainWriters.delete(xe)),(!nt.awaitDrainWriters||nt.awaitDrainWriters.size===0)&&we.listenerCount("data")&&we.resume()}}$e.prototype.unpipe=function(we){let xe=this._readableState,nt={hasUnpiped:!1};if(xe.pipes.length===0)return this;if(!we){let yt=xe.pipes;xe.pipes=[],this.pause();for(let Fn=0;Fn0,pt.flowing!==!1&&this.resume()):we==="readable"&&!pt.endEmitted&&!pt.readableListening&&(pt.readableListening=pt.needReadable=!0,pt.flowing=!1,pt.emittedReadable=!1,w("on readable",pt.length,pt.reading),pt.length?_e(this):pt.reading||n.nextTick(Qe,this)),nt},$e.prototype.addListener=$e.prototype.on,$e.prototype.removeListener=function(we,xe){let nt=g.prototype.removeListener.call(this,we,xe);return we==="readable"&&n.nextTick(qe,this),nt},$e.prototype.off=$e.prototype.removeListener,$e.prototype.removeAllListeners=function(we){let xe=g.prototype.removeAllListeners.apply(this,arguments);return(we==="readable"||we===void 0)&&n.nextTick(qe,this),xe};function qe(we){let xe=we._readableState;xe.readableListening=we.listenerCount("readable")>0,xe.resumeScheduled&&xe[O]===!1?xe.flowing=!0:we.listenerCount("data")>0?we.resume():xe.readableListening||(xe.flowing=null)}function Qe(we){w("readable nexttick read 0"),we.read(0)}$e.prototype.resume=function(){let we=this._readableState;return we.flowing||(w("resume"),we.flowing=!we.readableListening,ht(this,we)),we[O]=!1,this};function ht(we,xe){xe.resumeScheduled||(xe.resumeScheduled=!0,n.nextTick(jt,we,xe))}function jt(we,xe){w("resume",xe.reading),xe.reading||we.read(0),xe.resumeScheduled=!1,we.emit("resume"),It(we),xe.flowing&&!xe.reading&&we.read(0)}$e.prototype.pause=function(){return w("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(w("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[O]=!0,this};function It(we){let xe=we._readableState;for(w("flow",xe.flowing);xe.flowing&&we.read()!==null;);}$e.prototype.wrap=function(we){let xe=!1;we.on("data",pt=>{!this.push(pt)&&we.pause&&(xe=!0,we.pause())}),we.on("end",()=>{this.push(null)}),we.on("error",pt=>{V(this,pt)}),we.on("close",()=>{this.destroy()}),we.on("destroy",()=>{this.destroy()}),this._read=()=>{xe&&we.resume&&(xe=!1,we.resume())};let nt=l(we);for(let pt=1;pt{yt=_r?x(yt,_r):null,nt(),nt=te});try{for(;;){let _r=we.destroyed?null:we.read();if(_r!==null)yield _r;else{if(yt)throw yt;if(yt===null)return;await new c(pt)}}}catch(_r){throw yt=x(yt,_r),yt}finally{(yt||(xe==null?void 0:xe.destroyOnReturn)!==!1)&&(yt===void 0||we._readableState.autoDestroy)?T.destroyer(we,null):(we.off("readable",pt),Fn())}}i($e.prototype,{readable:{__proto__:null,get(){let we=this._readableState;return!!we&&we.readable!==!1&&!we.destroyed&&!we.errorEmitted&&!we.endEmitted},set(we){this._readableState&&(this._readableState.readable=!!we)}},readableDidRead:{__proto__:null,enumerable:!1,get:function(){return this._readableState.dataEmitted}},readableAborted:{__proto__:null,enumerable:!1,get:function(){return!!(this._readableState.readable!==!1&&(this._readableState.destroyed||this._readableState.errored)&&!this._readableState.endEmitted)}},readableHighWaterMark:{__proto__:null,enumerable:!1,get:function(){return this._readableState.highWaterMark}},readableBuffer:{__proto__:null,enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}},readableFlowing:{__proto__:null,enumerable:!1,get:function(){return this._readableState.flowing},set:function(we){this._readableState&&(this._readableState.flowing=we)}},readableLength:{__proto__:null,enumerable:!1,get(){return this._readableState.length}},readableObjectMode:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.objectMode:!1}},readableEncoding:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.encoding:null}},errored:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.errored:null}},closed:{__proto__:null,get(){return this._readableState?this._readableState.closed:!1}},destroyed:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.destroyed:!1},set(we){this._readableState&&(this._readableState.destroyed=we)}},readableEnded:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.endEmitted:!1}}}),i(Te.prototype,{pipesCount:{__proto__:null,get(){return this.pipes.length}},paused:{__proto__:null,get(){return this[O]!==!1},set(we){this[O]=!!we}}}),$e._fromList=Ve;function Ve(we,xe){if(xe.length===0)return null;let nt;return xe.objectMode?nt=xe.buffer.shift():!we||we>=xe.length?(xe.decoder?nt=xe.buffer.join(""):xe.buffer.length===1?nt=xe.buffer.first():nt=xe.buffer.concat(xe.length),xe.buffer.clear()):nt=xe.buffer.consume(we,xe.decoder),nt}function st(we){let xe=we._readableState;w("endReadable",xe.endEmitted),xe.endEmitted||(xe.ended=!0,n.nextTick(_t,xe,we))}function _t(we,xe){if(w("endReadableNT",we.endEmitted,we.length),!we.errored&&!we.closeEmitted&&!we.endEmitted&&we.length===0){if(we.endEmitted=!0,xe.emit("end"),xe.writable&&xe.allowHalfOpen===!1)n.nextTick(Zt,xe);else if(we.autoDestroy){let nt=xe._writableState;(!nt||nt.autoDestroy&&(nt.finished||nt.writable===!1))&&xe.destroy()}}}function Zt(we){we.writable&&!we.writableEnded&&!we.destroyed&&we.end()}$e.from=function(we,xe){return q($e,we,xe)};var cn;function ir(){return cn===void 0&&(cn={}),cn}$e.fromWeb=function(we,xe){return ir().newStreamReadableFromReadableStream(we,xe)},$e.toWeb=function(we,xe){return ir().newReadableStreamFromStreamReadable(we,xe)},$e.wrap=function(we,xe){var nt,pt;return new $e({objectMode:(nt=(pt=we.readableObjectMode)!==null&&pt!==void 0?pt:we.objectMode)!==null&&nt!==void 0?nt:!0,...xe,destroy(yt,Fn){T.destroyer(we,yt),Fn(yt)}}).wrap(we)}}),y3=Ke((e,t)=>{je(),We(),Ue();var n=hl(),{ArrayPrototypeSlice:r,Error:o,FunctionPrototypeSymbolHasInstance:s,ObjectDefineProperty:a,ObjectDefineProperties:i,ObjectSetPrototypeOf:l,StringPrototypeToLowerCase:u,Symbol:c,SymbolHasInstance:d}=$n();t.exports=P,P.WritableState=B;var{EventEmitter:f}=(pl(),mn(pi)),p=_3().Stream,{Buffer:m}=(Jn(),mn(Xn)),v=sc(),{addAbortSignal:g}=$m(),{getHighWaterMark:b,getDefaultHighWaterMark:_}=xm(),{ERR_INVALID_ARG_TYPE:y,ERR_METHOD_NOT_IMPLEMENTED:S,ERR_MULTIPLE_CALLBACK:w,ERR_STREAM_CANNOT_PIPE:E,ERR_STREAM_DESTROYED:T,ERR_STREAM_ALREADY_FINISHED:C,ERR_STREAM_NULL_VALUES:$,ERR_STREAM_WRITE_AFTER_END:x,ERR_UNKNOWN_ENCODING:N}=Ir().codes,{errorOrDestroy:I}=v;l(P.prototype,p.prototype),l(P,p);function L(){}var F=c("kOnFinished");function B(oe,he,le){typeof le!="boolean"&&(le=he instanceof ra()),this.objectMode=!!(oe&&oe.objectMode),le&&(this.objectMode=this.objectMode||!!(oe&&oe.writableObjectMode)),this.highWaterMark=oe?b(this,oe,"writableHighWaterMark",le):_(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;let Ee=!!(oe&&oe.decodeStrings===!1);this.decodeStrings=!Ee,this.defaultEncoding=oe&&oe.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=V.bind(void 0,he),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,U(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!oe||oe.emitClose!==!1,this.autoDestroy=!oe||oe.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[F]=[]}function U(oe){oe.buffered=[],oe.bufferedIndex=0,oe.allBuffers=!0,oe.allNoop=!0}B.prototype.getBuffer=function(){return r(this.buffered,this.bufferedIndex)},a(B.prototype,"bufferedRequestCount",{__proto__:null,get(){return this.buffered.length-this.bufferedIndex}});function P(oe){let he=this instanceof ra();if(!he&&!s(P,this))return new P(oe);this._writableState=new B(oe,this,he),oe&&(typeof oe.write=="function"&&(this._write=oe.write),typeof oe.writev=="function"&&(this._writev=oe.writev),typeof oe.destroy=="function"&&(this._destroy=oe.destroy),typeof oe.final=="function"&&(this._final=oe.final),typeof oe.construct=="function"&&(this._construct=oe.construct),oe.signal&&g(oe.signal,this)),p.call(this,oe),v.construct(this,()=>{let le=this._writableState;le.writing||ke(this,le),ne(this,le)})}a(P,d,{__proto__:null,value:function(oe){return s(this,oe)?!0:this!==P?!1:oe&&oe._writableState instanceof B}}),P.prototype.pipe=function(){I(this,new E)};function O(oe,he,le,Ee){let ye=oe._writableState;if(typeof le=="function")Ee=le,le=ye.defaultEncoding;else{if(!le)le=ye.defaultEncoding;else if(le!=="buffer"&&!m.isEncoding(le))throw new N(le);typeof Ee!="function"&&(Ee=L)}if(he===null)throw new $;if(!ye.objectMode)if(typeof he=="string")ye.decodeStrings!==!1&&(he=m.from(he,le),le="buffer");else if(he instanceof m)le="buffer";else if(p._isUint8Array(he))he=p._uint8ArrayToBuffer(he),le="buffer";else throw new y("chunk",["string","Buffer","Uint8Array"],he);let pe;return ye.ending?pe=new x:ye.destroyed&&(pe=new T("write")),pe?(n.nextTick(Ee,pe),I(oe,pe,!0),pe):(ye.pendingcb++,H(oe,ye,he,le,Ee))}P.prototype.write=function(oe,he,le){return O(this,oe,he,le)===!0},P.prototype.cork=function(){this._writableState.corked++},P.prototype.uncork=function(){let oe=this._writableState;oe.corked&&(oe.corked--,oe.writing||ke(this,oe))},P.prototype.setDefaultEncoding=function(oe){if(typeof oe=="string"&&(oe=u(oe)),!m.isEncoding(oe))throw new N(oe);return this._writableState.defaultEncoding=oe,this};function H(oe,he,le,Ee,ye){let pe=he.objectMode?1:le.length;he.length+=pe;let re=he.lengthle.bufferedIndex&&ke(oe,le),Ee?le.afterWriteTickInfo!==null&&le.afterWriteTickInfo.cb===ye?le.afterWriteTickInfo.count++:(le.afterWriteTickInfo={count:1,cb:ye,stream:oe,state:le},n.nextTick(Q,le.afterWriteTickInfo)):ge(oe,le,1,ye))}function Q({stream:oe,state:he,count:le,cb:Ee}){return he.afterWriteTickInfo=null,ge(oe,he,le,Ee)}function ge(oe,he,le,Ee){for(!he.ending&&!oe.destroyed&&he.length===0&&he.needDrain&&(he.needDrain=!1,oe.emit("drain"));le-- >0;)he.pendingcb--,Ee();he.destroyed&&ie(he),ne(oe,he)}function ie(oe){if(oe.writing)return;for(let ye=oe.bufferedIndex;ye1&&oe._writev){he.pendingcb-=pe-1;let fe=he.allNoop?L:$e=>{for(let Le=re;Le256?(le.splice(0,re),he.bufferedIndex=0):he.bufferedIndex=re}he.bufferProcessing=!1}P.prototype._write=function(oe,he,le){if(this._writev)this._writev([{chunk:oe,encoding:he}],le);else throw new S("_write()")},P.prototype._writev=null,P.prototype.end=function(oe,he,le){let Ee=this._writableState;typeof oe=="function"?(le=oe,oe=null,he=null):typeof he=="function"&&(le=he,he=null);let ye;if(oe!=null){let pe=O(this,oe,he);pe instanceof o&&(ye=pe)}return Ee.corked&&(Ee.corked=1,this.uncork()),ye||(!Ee.errored&&!Ee.ending?(Ee.ending=!0,ne(this,Ee,!0),Ee.ended=!0):Ee.finished?ye=new C("end"):Ee.destroyed&&(ye=new T("end"))),typeof le=="function"&&(ye||Ee.finished?n.nextTick(le,ye):Ee[F].push(le)),this};function Y(oe){return oe.ending&&!oe.destroyed&&oe.constructed&&oe.length===0&&!oe.errored&&oe.buffered.length===0&&!oe.finished&&!oe.writing&&!oe.errorEmitted&&!oe.closeEmitted}function K(oe,he){let le=!1;function Ee(ye){if(le){I(oe,ye??w());return}if(le=!0,he.pendingcb--,ye){let pe=he[F].splice(0);for(let re=0;re{Y(ye)?ve(Ee,ye):ye.pendingcb--},oe,he)):Y(he)&&(he.pendingcb++,ve(oe,he))))}function ve(oe,he){he.pendingcb--,he.finished=!0;let le=he[F].splice(0);for(let Ee=0;Ee{je(),We(),Ue();var n=hl(),r=(Jn(),mn(Xn)),{isReadable:o,isWritable:s,isIterable:a,isNodeStream:i,isReadableNodeStream:l,isWritableNodeStream:u,isDuplexNodeStream:c,isReadableStream:d,isWritableStream:f}=ba(),p=hi(),{AbortError:m,codes:{ERR_INVALID_ARG_TYPE:v,ERR_INVALID_RETURN_VALUE:g}}=Ir(),{destroyer:b}=sc(),_=ra(),y=Im(),S=y3(),{createDeferredPromise:w}=zr(),E=nR(),T=globalThis.Blob||r.Blob,C=typeof T<"u"?function(F){return F instanceof T}:function(F){return!1},$=globalThis.AbortController||jd().AbortController,{FunctionPrototypeCall:x}=$n(),N=class extends _{constructor(F){super(F),(F==null?void 0:F.readable)===!1&&(this._readableState.readable=!1,this._readableState.ended=!0,this._readableState.endEmitted=!0),(F==null?void 0:F.writable)===!1&&(this._writableState.writable=!1,this._writableState.ending=!0,this._writableState.ended=!0,this._writableState.finished=!0)}};t.exports=function F(B,U){if(c(B))return B;if(l(B))return L({readable:B});if(u(B))return L({writable:B});if(i(B))return L({writable:!1,readable:!1});if(d(B))return L({readable:y.fromWeb(B)});if(f(B))return L({writable:S.fromWeb(B)});if(typeof B=="function"){let{value:O,write:H,final:q,destroy:te}=I(B);if(a(O))return E(N,O,{objectMode:!0,write:H,final:q,destroy:te});let V=O==null?void 0:O.then;if(typeof V=="function"){let Q,ge=x(V,O,ie=>{if(ie!=null)throw new g("nully","body",ie)},ie=>{b(Q,ie)});return Q=new N({objectMode:!0,readable:!1,write:H,final(ie){q(async()=>{try{await ge,n.nextTick(ie,null)}catch(ke){n.nextTick(ie,ke)}})},destroy:te})}throw new g("Iterable, AsyncIterable or AsyncFunction",U,O)}if(C(B))return F(B.arrayBuffer());if(a(B))return E(N,B,{objectMode:!0,writable:!1});if(d(B==null?void 0:B.readable)&&f(B==null?void 0:B.writable))return N.fromWeb(B);if(typeof(B==null?void 0:B.writable)=="object"||typeof(B==null?void 0:B.readable)=="object"){let O=B!=null&&B.readable?l(B==null?void 0:B.readable)?B==null?void 0:B.readable:F(B.readable):void 0,H=B!=null&&B.writable?u(B==null?void 0:B.writable)?B==null?void 0:B.writable:F(B.writable):void 0;return L({readable:O,writable:H})}let P=B==null?void 0:B.then;if(typeof P=="function"){let O;return x(P,B,H=>{H!=null&&O.push(H),O.push(null)},H=>{b(O,H)}),O=new N({objectMode:!0,writable:!1,read(){}})}throw new v(U,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],B)};function I(F){let{promise:B,resolve:U}=w(),P=new $,O=P.signal;return{value:F(async function*(){for(;;){let H=B;B=null;let{chunk:q,done:te,cb:V}=await H;if(n.nextTick(V),te)return;if(O.aborted)throw new m(void 0,{cause:O.reason});({promise:B,resolve:U}=w()),yield q}}(),{signal:O}),write(H,q,te){let V=U;U=null,V({chunk:H,done:!1,cb:te})},final(H){let q=U;U=null,q({done:!0,cb:H})},destroy(H,q){P.abort(),q(H)}}}function L(F){let B=F.readable&&typeof F.readable.read!="function"?y.wrap(F.readable):F.readable,U=F.writable,P=!!o(B),O=!!s(U),H,q,te,V,Q;function ge(ie){let ke=V;V=null,ke?ke(ie):ie&&Q.destroy(ie)}return Q=new N({readableObjectMode:!!(B!=null&&B.readableObjectMode),writableObjectMode:!!(U!=null&&U.writableObjectMode),readable:P,writable:O}),O&&(p(U,ie=>{O=!1,ie&&b(B,ie),ge(ie)}),Q._write=function(ie,ke,Y){U.write(ie,ke)?Y():H=Y},Q._final=function(ie){U.end(),q=ie},U.on("drain",function(){if(H){let ie=H;H=null,ie()}}),U.on("finish",function(){if(q){let ie=q;q=null,ie()}})),P&&(p(B,ie=>{P=!1,ie&&b(B,ie),ge(ie)}),B.on("readable",function(){if(te){let ie=te;te=null,ie()}}),B.on("end",function(){Q.push(null)}),Q._read=function(){for(;;){let ie=B.read();if(ie===null){te=Q._read;return}if(!Q.push(ie))return}}),Q._destroy=function(ie,ke){!ie&&V!==null&&(ie=new m),te=null,H=null,q=null,V===null?ke(ie):(V=ke,b(U,ie),b(B,ie))},Q}}),ra=Ke((e,t)=>{je(),We(),Ue();var{ObjectDefineProperties:n,ObjectGetOwnPropertyDescriptor:r,ObjectKeys:o,ObjectSetPrototypeOf:s}=$n();t.exports=l;var a=Im(),i=y3();s(l.prototype,a.prototype),s(l,a);{let f=o(i.prototype);for(let p=0;p{je(),We(),Ue();var{ObjectSetPrototypeOf:n,Symbol:r}=$n();t.exports=l;var{ERR_METHOD_NOT_IMPLEMENTED:o}=Ir().codes,s=ra(),{getHighWaterMark:a}=xm();n(l.prototype,s.prototype),n(l,s);var i=r("kCallback");function l(d){if(!(this instanceof l))return new l(d);let f=d?a(this,d,"readableHighWaterMark",!0):null;f===0&&(d={...d,highWaterMark:null,readableHighWaterMark:f,writableHighWaterMark:d.writableHighWaterMark||0}),s.call(this,d),this._readableState.sync=!1,this[i]=null,d&&(typeof d.transform=="function"&&(this._transform=d.transform),typeof d.flush=="function"&&(this._flush=d.flush)),this.on("prefinish",c)}function u(d){typeof this._flush=="function"&&!this.destroyed?this._flush((f,p)=>{if(f){d?d(f):this.destroy(f);return}p!=null&&this.push(p),this.push(null),d&&d()}):(this.push(null),d&&d())}function c(){this._final!==u&&u.call(this)}l.prototype._final=u,l.prototype._transform=function(d,f,p){throw new o("_transform()")},l.prototype._write=function(d,f,p){let m=this._readableState,v=this._writableState,g=m.length;this._transform(d,f,(b,_)=>{if(b){p(b);return}_!=null&&this.push(_),v.ended||g===m.length||m.length{je(),We(),Ue();var{ObjectSetPrototypeOf:n}=$n();t.exports=o;var r=rR();n(o.prototype,r.prototype),n(o,r);function o(s){if(!(this instanceof o))return new o(s);r.call(this,s)}o.prototype._transform=function(s,a,i){i(null,s)}}),b3=Ke((e,t)=>{je(),We(),Ue();var n=hl(),{ArrayIsArray:r,Promise:o,SymbolAsyncIterator:s,SymbolDispose:a}=$n(),i=hi(),{once:l}=zr(),u=sc(),c=ra(),{aggregateTwoErrors:d,codes:{ERR_INVALID_ARG_TYPE:f,ERR_INVALID_RETURN_VALUE:p,ERR_MISSING_ARGS:m,ERR_STREAM_DESTROYED:v,ERR_STREAM_PREMATURE_CLOSE:g},AbortError:b}=Ir(),{validateFunction:_,validateAbortSignal:y}=yf(),{isIterable:S,isReadable:w,isReadableNodeStream:E,isNodeStream:T,isTransformStream:C,isWebStream:$,isReadableStream:x,isReadableFinished:N}=ba(),I=globalThis.AbortController||jd().AbortController,L,F,B;function U(ie,ke,Y){let K=!1;ie.on("close",()=>{K=!0});let se=i(ie,{readable:ke,writable:Y},ne=>{K=!ne});return{destroy:ne=>{K||(K=!0,u.destroyer(ie,ne||new v("pipe")))},cleanup:se}}function P(ie){return _(ie[ie.length-1],"streams[stream.length - 1]"),ie.pop()}function O(ie){if(S(ie))return ie;if(E(ie))return H(ie);throw new f("val",["Readable","Iterable","AsyncIterable"],ie)}async function*H(ie){F||(F=Im()),yield*F.prototype[s].call(ie)}async function q(ie,ke,Y,{end:K}){let se,ne=null,ve=ce=>{if(ce&&(se=ce),ne){let oe=ne;ne=null,oe()}},J=()=>new o((ce,oe)=>{se?oe(se):ne=()=>{se?oe(se):ce()}});ke.on("drain",ve);let ae=i(ke,{readable:!1},ve);try{ke.writableNeedDrain&&await J();for await(let ce of ie)ke.write(ce)||await J();K&&(ke.end(),await J()),Y()}catch(ce){Y(se!==ce?d(se,ce):ce)}finally{ae(),ke.off("drain",ve)}}async function te(ie,ke,Y,{end:K}){C(ke)&&(ke=ke.writable);let se=ke.getWriter();try{for await(let ne of ie)await se.ready,se.write(ne).catch(()=>{});await se.ready,K&&await se.close(),Y()}catch(ne){try{await se.abort(ne),Y(ne)}catch(ve){Y(ve)}}}function V(...ie){return Q(ie,l(P(ie)))}function Q(ie,ke,Y){if(ie.length===1&&r(ie[0])&&(ie=ie[0]),ie.length<2)throw new m("streams");let K=new I,se=K.signal,ne=Y==null?void 0:Y.signal,ve=[];y(ne,"options.signal");function J(){ye(new b)}B=B||zr().addAbortListener;let ae;ne&&(ae=B(ne,J));let ce,oe,he=[],le=0;function Ee(Te){ye(Te,--le===0)}function ye(Te,$e){var Le;if(Te&&(!ce||ce.code==="ERR_STREAM_PREMATURE_CLOSE")&&(ce=Te),!(!ce&&!$e)){for(;he.length;)he.shift()(ce);(Le=ae)===null||Le===void 0||Le[a](),K.abort(),$e&&(ce||ve.forEach(A=>A()),n.nextTick(ke,ce,oe))}}let pe;for(let Te=0;Te0,M=Le||(Y==null?void 0:Y.end)!==!1,j=Te===ie.length-1;if(T($e)){let G=function(ue){ue&&ue.name!=="AbortError"&&ue.code!=="ERR_STREAM_PREMATURE_CLOSE"&&Ee(ue)};if(M){let{destroy:ue,cleanup:_e}=U($e,Le,A);he.push(ue),w($e)&&j&&ve.push(_e)}$e.on("error",G),w($e)&&j&&ve.push(()=>{$e.removeListener("error",G)})}if(Te===0)if(typeof $e=="function"){if(pe=$e({signal:se}),!S(pe))throw new p("Iterable, AsyncIterable or Stream","source",pe)}else S($e)||E($e)||C($e)?pe=$e:pe=c.from($e);else if(typeof $e=="function"){if(C(pe)){var re;pe=O((re=pe)===null||re===void 0?void 0:re.readable)}else pe=O(pe);if(pe=$e(pe,{signal:se}),Le){if(!S(pe,!0))throw new p("AsyncIterable",`transform[${Te-1}]`,pe)}else{var fe;L||(L=oR());let G=new L({objectMode:!0}),ue=(fe=pe)===null||fe===void 0?void 0:fe.then;if(typeof ue=="function")le++,ue.call(pe,Z=>{oe=Z,Z!=null&&G.write(Z),M&&G.end(),n.nextTick(Ee)},Z=>{G.destroy(Z),n.nextTick(Ee,Z)});else if(S(pe,!0))le++,q(pe,G,Ee,{end:M});else if(x(pe)||C(pe)){let Z=pe.readable||pe;le++,q(Z,G,Ee,{end:M})}else throw new p("AsyncIterable or Promise","destination",pe);pe=G;let{destroy:_e,cleanup:X}=U(pe,!1,!0);he.push(_e),j&&ve.push(X)}}else if(T($e)){if(E(pe)){le+=2;let G=ge(pe,$e,Ee,{end:M});w($e)&&j&&ve.push(G)}else if(C(pe)||x(pe)){let G=pe.readable||pe;le++,q(G,$e,Ee,{end:M})}else if(S(pe))le++,q(pe,$e,Ee,{end:M});else throw new f("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],pe);pe=$e}else if($($e)){if(E(pe))le++,te(O(pe),$e,Ee,{end:M});else if(x(pe)||S(pe))le++,te(pe,$e,Ee,{end:M});else if(C(pe))le++,te(pe.readable,$e,Ee,{end:M});else throw new f("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],pe);pe=$e}else pe=c.from($e)}return(se!=null&&se.aborted||ne!=null&&ne.aborted)&&n.nextTick(J),pe}function ge(ie,ke,Y,{end:K}){let se=!1;if(ke.on("close",()=>{se||Y(new g)}),ie.pipe(ke,{end:!1}),K){let ne=function(){se=!0,ke.end()};N(ie)?n.nextTick(ne):ie.once("end",ne)}else Y();return i(ie,{readable:!0,writable:!1},ne=>{let ve=ie._readableState;ne&&ne.code==="ERR_STREAM_PREMATURE_CLOSE"&&ve&&ve.ended&&!ve.errored&&!ve.errorEmitted?ie.once("end",Y).once("error",Y):Y(ne)}),i(ke,{readable:!1,writable:!0},Y)}t.exports={pipelineImpl:Q,pipeline:V}}),sR=Ke((e,t)=>{je(),We(),Ue();var{pipeline:n}=b3(),r=ra(),{destroyer:o}=sc(),{isNodeStream:s,isReadable:a,isWritable:i,isWebStream:l,isTransformStream:u,isWritableStream:c,isReadableStream:d}=ba(),{AbortError:f,codes:{ERR_INVALID_ARG_VALUE:p,ERR_MISSING_ARGS:m}}=Ir(),v=hi();t.exports=function(...g){if(g.length===0)throw new m("streams");if(g.length===1)return r.from(g[0]);let b=[...g];if(typeof g[0]=="function"&&(g[0]=r.from(g[0])),typeof g[g.length-1]=="function"){let I=g.length-1;g[I]=r.from(g[I])}for(let I=0;I0&&!(i(g[I])||c(g[I])||u(g[I])))throw new p(`streams[${I}]`,b[I],"must be writable")}let _,y,S,w,E;function T(I){let L=w;w=null,L?L(I):I?E.destroy(I):!N&&!x&&E.destroy()}let C=g[0],$=n(g,T),x=!!(i(C)||c(C)||u(C)),N=!!(a($)||d($)||u($));if(E=new r({writableObjectMode:!!(C!=null&&C.writableObjectMode),readableObjectMode:!!($!=null&&$.readableObjectMode),writable:x,readable:N}),x){if(s(C))E._write=function(L,F,B){C.write(L,F)?B():_=B},E._final=function(L){C.end(),y=L},C.on("drain",function(){if(_){let L=_;_=null,L()}});else if(l(C)){let L=(u(C)?C.writable:C).getWriter();E._write=async function(F,B,U){try{await L.ready,L.write(F).catch(()=>{}),U()}catch(P){U(P)}},E._final=async function(F){try{await L.ready,L.close().catch(()=>{}),y=F}catch(B){F(B)}}}let I=u($)?$.readable:$;v(I,()=>{if(y){let L=y;y=null,L()}})}if(N){if(s($))$.on("readable",function(){if(S){let I=S;S=null,I()}}),$.on("end",function(){E.push(null)}),E._read=function(){for(;;){let I=$.read();if(I===null){S=E._read;return}if(!E.push(I))return}};else if(l($)){let I=(u($)?$.readable:$).getReader();E._read=async function(){for(;;)try{let{value:L,done:F}=await I.read();if(!E.push(L))return;if(F){E.push(null);return}}catch{return}}}}return E._destroy=function(I,L){!I&&w!==null&&(I=new f),S=null,_=null,y=null,w===null?L(I):(w=L,s($)&&o($,I))},E}}),mXe=Ke((e,t)=>{je(),We(),Ue();var n=globalThis.AbortController||jd().AbortController,{codes:{ERR_INVALID_ARG_VALUE:r,ERR_INVALID_ARG_TYPE:o,ERR_MISSING_ARGS:s,ERR_OUT_OF_RANGE:a},AbortError:i}=Ir(),{validateAbortSignal:l,validateInteger:u,validateObject:c}=yf(),d=$n().Symbol("kWeak"),f=$n().Symbol("kResistStopPropagation"),{finished:p}=hi(),m=sR(),{addAbortSignalNoValidate:v}=$m(),{isWritable:g,isNodeStream:b}=ba(),{deprecate:_}=zr(),{ArrayPrototypePush:y,Boolean:S,MathFloor:w,Number:E,NumberIsNaN:T,Promise:C,PromiseReject:$,PromiseResolve:x,PromisePrototypeThen:N,Symbol:I}=$n(),L=I("kEmpty"),F=I("kEof");function B(ne,ve){if(ve!=null&&c(ve,"options"),(ve==null?void 0:ve.signal)!=null&&l(ve.signal,"options.signal"),b(ne)&&!g(ne))throw new r("stream",ne,"must be writable");let J=m(this,ne);return ve!=null&&ve.signal&&v(ve.signal,J),J}function U(ne,ve){if(typeof ne!="function")throw new o("fn",["Function","AsyncFunction"],ne);ve!=null&&c(ve,"options"),(ve==null?void 0:ve.signal)!=null&&l(ve.signal,"options.signal");let J=1;(ve==null?void 0:ve.concurrency)!=null&&(J=w(ve.concurrency));let ae=J-1;return(ve==null?void 0:ve.highWaterMark)!=null&&(ae=w(ve.highWaterMark)),u(J,"options.concurrency",1),u(ae,"options.highWaterMark",0),ae+=J,(async function*(){let ce=zr().AbortSignalAny([ve==null?void 0:ve.signal].filter(S)),oe=this,he=[],le={signal:ce},Ee,ye,pe=!1,re=0;function fe(){pe=!0,Te()}function Te(){re-=1,$e()}function $e(){ye&&!pe&&re=ae||re>=J)&&await new C(M=>{ye=M})}he.push(F)}catch(A){let M=$(A);N(M,Te,fe),he.push(M)}finally{pe=!0,Ee&&(Ee(),Ee=null)}}Le();try{for(;;){for(;he.length>0;){let A=await he[0];if(A===F)return;if(ce.aborted)throw new i;A!==L&&(yield A),he.shift(),$e()}await new C(A=>{Ee=A})}}finally{pe=!0,ye&&(ye(),ye=null)}}).call(this)}function P(ne=void 0){return ne!=null&&c(ne,"options"),(ne==null?void 0:ne.signal)!=null&&l(ne.signal,"options.signal"),(async function*(){let ve=0;for await(let ae of this){var J;if(ne!=null&&(J=ne.signal)!==null&&J!==void 0&&J.aborted)throw new i({cause:ne.signal.reason});yield[ve++,ae]}}).call(this)}async function O(ne,ve=void 0){for await(let J of V.call(this,ne,ve))return!0;return!1}async function H(ne,ve=void 0){if(typeof ne!="function")throw new o("fn",["Function","AsyncFunction"],ne);return!await O.call(this,async(...J)=>!await ne(...J),ve)}async function q(ne,ve){for await(let J of V.call(this,ne,ve))return J}async function te(ne,ve){if(typeof ne!="function")throw new o("fn",["Function","AsyncFunction"],ne);async function J(ae,ce){return await ne(ae,ce),L}for await(let ae of U.call(this,J,ve));}function V(ne,ve){if(typeof ne!="function")throw new o("fn",["Function","AsyncFunction"],ne);async function J(ae,ce){return await ne(ae,ce)?ae:L}return U.call(this,J,ve)}var Q=class extends s{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}};async function ge(ne,ve,J){var ae;if(typeof ne!="function")throw new o("reducer",["Function","AsyncFunction"],ne);J!=null&&c(J,"options"),(J==null?void 0:J.signal)!=null&&l(J.signal,"options.signal");let ce=arguments.length>1;if(J!=null&&(ae=J.signal)!==null&&ae!==void 0&&ae.aborted){let ye=new i(void 0,{cause:J.signal.reason});throw this.once("error",()=>{}),await p(this.destroy(ye)),ye}let oe=new n,he=oe.signal;if(J!=null&&J.signal){let ye={once:!0,[d]:this,[f]:!0};J.signal.addEventListener("abort",()=>oe.abort(),ye)}let le=!1;try{for await(let ye of this){var Ee;if(le=!0,J!=null&&(Ee=J.signal)!==null&&Ee!==void 0&&Ee.aborted)throw new i;ce?ve=await ne(ve,ye,{signal:he}):(ve=ye,ce=!0)}if(!le&&!ce)throw new Q}finally{oe.abort()}return ve}async function ie(ne){ne!=null&&c(ne,"options"),(ne==null?void 0:ne.signal)!=null&&l(ne.signal,"options.signal");let ve=[];for await(let ae of this){var J;if(ne!=null&&(J=ne.signal)!==null&&J!==void 0&&J.aborted)throw new i(void 0,{cause:ne.signal.reason});y(ve,ae)}return ve}function ke(ne,ve){let J=U.call(this,ne,ve);return(async function*(){for await(let ae of J)yield*ae}).call(this)}function Y(ne){if(ne=E(ne),T(ne))return 0;if(ne<0)throw new a("number",">= 0",ne);return ne}function K(ne,ve=void 0){return ve!=null&&c(ve,"options"),(ve==null?void 0:ve.signal)!=null&&l(ve.signal,"options.signal"),ne=Y(ne),(async function*(){var J;if(ve!=null&&(J=ve.signal)!==null&&J!==void 0&&J.aborted)throw new i;for await(let ce of this){var ae;if(ve!=null&&(ae=ve.signal)!==null&&ae!==void 0&&ae.aborted)throw new i;ne--<=0&&(yield ce)}}).call(this)}function se(ne,ve=void 0){return ve!=null&&c(ve,"options"),(ve==null?void 0:ve.signal)!=null&&l(ve.signal,"options.signal"),ne=Y(ne),(async function*(){var J;if(ve!=null&&(J=ve.signal)!==null&&J!==void 0&&J.aborted)throw new i;for await(let ce of this){var ae;if(ve!=null&&(ae=ve.signal)!==null&&ae!==void 0&&ae.aborted)throw new i;if(ne-- >0&&(yield ce),ne<=0)return}}).call(this)}t.exports.streamReturningOperators={asIndexedPairs:_(P,"readable.asIndexedPairs will be removed in a future version."),drop:K,filter:V,flatMap:ke,map:U,take:se,compose:B},t.exports.promiseReturningOperators={every:H,forEach:te,reduce:ge,toArray:ie,some:O,find:q}}),aR=Ke((e,t)=>{je(),We(),Ue();var{ArrayPrototypePop:n,Promise:r}=$n(),{isIterable:o,isNodeStream:s,isWebStream:a}=ba(),{pipelineImpl:i}=b3(),{finished:l}=hi();iR();function u(...c){return new r((d,f)=>{let p,m,v=c[c.length-1];if(v&&typeof v=="object"&&!s(v)&&!o(v)&&!a(v)){let g=n(c);p=g.signal,m=g.end}i(c,(g,b)=>{g?f(g):d(b)},{signal:p,end:m})})}t.exports={finished:l,pipeline:u}}),iR=Ke((e,t)=>{je(),We(),Ue();var{Buffer:n}=(Jn(),mn(Xn)),{ObjectDefineProperty:r,ObjectKeys:o,ReflectApply:s}=$n(),{promisify:{custom:a}}=zr(),{streamReturningOperators:i,promiseReturningOperators:l}=mXe(),{codes:{ERR_ILLEGAL_CONSTRUCTOR:u}}=Ir(),c=sR(),{setDefaultHighWaterMark:d,getDefaultHighWaterMark:f}=xm(),{pipeline:p}=b3(),{destroyer:m}=sc(),v=hi(),g=aR(),b=ba(),_=t.exports=_3().Stream;_.isDestroyed=b.isDestroyed,_.isDisturbed=b.isDisturbed,_.isErrored=b.isErrored,_.isReadable=b.isReadable,_.isWritable=b.isWritable,_.Readable=Im();for(let S of o(i)){let w=function(...T){if(new.target)throw u();return _.Readable.from(s(E,this,T))},E=i[S];r(w,"name",{__proto__:null,value:E.name}),r(w,"length",{__proto__:null,value:E.length}),r(_.Readable.prototype,S,{__proto__:null,value:w,enumerable:!1,configurable:!0,writable:!0})}for(let S of o(l)){let w=function(...T){if(new.target)throw u();return s(E,this,T)},E=l[S];r(w,"name",{__proto__:null,value:E.name}),r(w,"length",{__proto__:null,value:E.length}),r(_.Readable.prototype,S,{__proto__:null,value:w,enumerable:!1,configurable:!0,writable:!0})}_.Writable=y3(),_.Duplex=ra(),_.Transform=rR(),_.PassThrough=oR(),_.pipeline=p;var{addAbortSignal:y}=$m();_.addAbortSignal=y,_.finished=v,_.destroy=m,_.compose=c,_.setDefaultHighWaterMark=d,_.getDefaultHighWaterMark=f,r(_,"promises",{__proto__:null,configurable:!0,enumerable:!0,get(){return g}}),r(p,a,{__proto__:null,enumerable:!0,get(){return g.pipeline}}),r(v,a,{__proto__:null,enumerable:!0,get(){return g.finished}}),_.Stream=_,_._isUint8Array=function(S){return S instanceof Uint8Array},_._uint8ArrayToBuffer=function(S){return n.from(S.buffer,S.byteOffset,S.byteLength)}}),ml=Ke((e,t)=>{je(),We(),Ue();var n=iR(),r=aR(),o=n.Readable.destroy;t.exports=n.Readable,t.exports._uint8ArrayToBuffer=n._uint8ArrayToBuffer,t.exports._isUint8Array=n._isUint8Array,t.exports.isDisturbed=n.isDisturbed,t.exports.isErrored=n.isErrored,t.exports.isReadable=n.isReadable,t.exports.Readable=n.Readable,t.exports.Writable=n.Writable,t.exports.Duplex=n.Duplex,t.exports.Transform=n.Transform,t.exports.PassThrough=n.PassThrough,t.exports.addAbortSignal=n.addAbortSignal,t.exports.finished=n.finished,t.exports.destroy=n.destroy,t.exports.destroy=o,t.exports.pipeline=n.pipeline,t.exports.compose=n.compose,Object.defineProperty(n,"promises",{configurable:!0,enumerable:!0,get(){return r}}),t.exports.Stream=n.Stream,t.exports.default=t.exports}),vXe=Ke((e,t)=>{je(),We(),Ue(),typeof Object.create=="function"?t.exports=function(n,r){r&&(n.super_=r,n.prototype=Object.create(r.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(n,r){if(r){n.super_=r;var o=function(){};o.prototype=r.prototype,n.prototype=new o,n.prototype.constructor=n}}}),gXe=Ke((e,t)=>{je(),We(),Ue();var{Buffer:n}=(Jn(),mn(Xn)),r=Symbol.for("BufferList");function o(s){if(!(this instanceof o))return new o(s);o._init.call(this,s)}o._init=function(s){Object.defineProperty(this,r,{value:!0}),this._bufs=[],this.length=0,s&&this.append(s)},o.prototype._new=function(s){return new o(s)},o.prototype._offset=function(s){if(s===0)return[0,0];let a=0;for(let i=0;ithis.length||s<0)return;let a=this._offset(s);return this._bufs[a[0]][a[1]]},o.prototype.slice=function(s,a){return typeof s=="number"&&s<0&&(s+=this.length),typeof a=="number"&&a<0&&(a+=this.length),this.copy(null,0,s,a)},o.prototype.copy=function(s,a,i,l){if((typeof i!="number"||i<0)&&(i=0),(typeof l!="number"||l>this.length)&&(l=this.length),i>=this.length||l<=0)return s||n.alloc(0);let u=!!s,c=this._offset(i),d=l-i,f=d,p=u&&a||0,m=c[1];if(i===0&&l===this.length){if(!u)return this._bufs.length===1?this._bufs[0]:n.concat(this._bufs,this.length);for(let v=0;vg)this._bufs[v].copy(s,p,m),p+=g;else{this._bufs[v].copy(s,p,m,m+f),p+=g;break}f-=g,m&&(m=0)}return s.length>p?s.slice(0,p):s},o.prototype.shallowSlice=function(s,a){if(s=s||0,a=typeof a!="number"?this.length:a,s<0&&(s+=this.length),a<0&&(a+=this.length),s===a)return this._new();let i=this._offset(s),l=this._offset(a),u=this._bufs.slice(i[0],l[0]+1);return l[1]===0?u.pop():u[u.length-1]=u[u.length-1].slice(0,l[1]),i[1]!==0&&(u[0]=u[0].slice(i[1])),this._new(u)},o.prototype.toString=function(s,a,i){return this.slice(a,i).toString(s)},o.prototype.consume=function(s){if(s=Math.trunc(s),Number.isNaN(s)||s<=0)return this;for(;this._bufs.length;)if(s>=this._bufs[0].length)s-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(s),this.length-=s;break}return this},o.prototype.duplicate=function(){let s=this._new();for(let a=0;a=0&&c=0&&cthis.length?this.length:a;let l=this._offset(a),u=l[0],c=l[1];for(;u=s.length){let f=d.indexOf(s,c);if(f!==-1)return this._reverseOffset([u,f]);c=d.length-s.length+1}else{let f=this._reverseOffset([u,c]);if(this._match(f,s))return f;c++}c=0}return-1},o.prototype._match=function(s,a){if(this.length-s{je(),We(),Ue();var n=ml().Duplex,r=vXe(),o=gXe();function s(a){if(!(this instanceof s))return new s(a);if(typeof a=="function"){this._callback=a;let i=(function(l){this._callback&&(this._callback(l),this._callback=null)}).bind(this);this.on("pipe",function(l){l.on("error",i)}),this.on("unpipe",function(l){l.removeListener("error",i)}),a=null}o._init.call(this,a),n.call(this)}r(s,n),Object.assign(s.prototype,o.prototype),s.prototype._new=function(a){return new s(a)},s.prototype._write=function(a,i,l){this._appendBuffer(a),typeof l=="function"&&l()},s.prototype._read=function(a){if(!this.length)return this.push(null);a=Math.min(a,this.length),this.push(this.slice(0,a)),this.consume(a)},s.prototype.end=function(a){n.prototype.end.call(this,a),this._callback&&(this._callback(null,this.slice()),this._callback=null)},s.prototype._destroy=function(a,i){this._bufs.length=0,this.length=0,i(a)},s.prototype._isBufferList=function(a){return a instanceof s||a instanceof o||s.isBufferList(a)},s.isBufferList=o.isBufferList,t.exports=s,t.exports.BufferListStream=s,t.exports.BufferList=o}),yXe=Ke((e,t)=>{je(),We(),Ue();var n=class{constructor(){this.cmd=null,this.retain=!1,this.qos=0,this.dup=!1,this.length=-1,this.topic=null,this.payload=null}};t.exports=n}),lR=Ke((e,t)=>{je(),We(),Ue();var n=t.exports,{Buffer:r}=(Jn(),mn(Xn));n.types={0:"reserved",1:"connect",2:"connack",3:"publish",4:"puback",5:"pubrec",6:"pubrel",7:"pubcomp",8:"subscribe",9:"suback",10:"unsubscribe",11:"unsuback",12:"pingreq",13:"pingresp",14:"disconnect",15:"auth"},n.requiredHeaderFlags={1:0,2:0,4:0,5:0,6:2,7:0,8:2,9:0,10:2,11:0,12:0,13:0,14:0,15:0},n.requiredHeaderFlagsErrors={};for(let s in n.requiredHeaderFlags){let a=n.requiredHeaderFlags[s];n.requiredHeaderFlagsErrors[s]="Invalid header flag bits, must be 0x"+a.toString(16)+" for "+n.types[s]+" packet"}n.codes={};for(let s in n.types){let a=n.types[s];n.codes[a]=s}n.CMD_SHIFT=4,n.CMD_MASK=240,n.DUP_MASK=8,n.QOS_MASK=3,n.QOS_SHIFT=1,n.RETAIN_MASK=1,n.VARBYTEINT_MASK=127,n.VARBYTEINT_FIN_MASK=128,n.VARBYTEINT_MAX=268435455,n.SESSIONPRESENT_MASK=1,n.SESSIONPRESENT_HEADER=r.from([n.SESSIONPRESENT_MASK]),n.CONNACK_HEADER=r.from([n.codes.connack<[0,1].map(i=>[0,1].map(l=>{let u=r.alloc(1);return u.writeUInt8(n.codes[s]<r.from([s])),n.EMPTY={pingreq:r.from([n.codes.pingreq<<4,0]),pingresp:r.from([n.codes.pingresp<<4,0]),disconnect:r.from([n.codes.disconnect<<4,0])},n.MQTT5_PUBACK_PUBREC_CODES={0:"Success",16:"No matching subscribers",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",144:"Topic Name invalid",145:"Packet identifier in use",151:"Quota exceeded",153:"Payload format invalid"},n.MQTT5_PUBREL_PUBCOMP_CODES={0:"Success",146:"Packet Identifier not found"},n.MQTT5_SUBACK_CODES={0:"Granted QoS 0",1:"Granted QoS 1",2:"Granted QoS 2",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use",151:"Quota exceeded",158:"Shared Subscriptions not supported",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},n.MQTT5_UNSUBACK_CODES={0:"Success",17:"No subscription existed",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use"},n.MQTT5_DISCONNECT_CODES={0:"Normal disconnection",4:"Disconnect with Will Message",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",135:"Not authorized",137:"Server busy",139:"Server shutting down",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},n.MQTT5_AUTH_CODES={0:"Success",24:"Continue authentication",25:"Re-authenticate"}}),bXe=Ke((e,t)=>{je(),We(),Ue();var n=1e3,r=n*60,o=r*60,s=o*24,a=s*7,i=s*365.25;t.exports=function(f,p){p=p||{};var m=typeof f;if(m==="string"&&f.length>0)return l(f);if(m==="number"&&isFinite(f))return p.long?c(f):u(f);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(f))};function l(f){if(f=String(f),!(f.length>100)){var p=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(f);if(p){var m=parseFloat(p[1]),v=(p[2]||"ms").toLowerCase();switch(v){case"years":case"year":case"yrs":case"yr":case"y":return m*i;case"weeks":case"week":case"w":return m*a;case"days":case"day":case"d":return m*s;case"hours":case"hour":case"hrs":case"hr":case"h":return m*o;case"minutes":case"minute":case"mins":case"min":case"m":return m*r;case"seconds":case"second":case"secs":case"sec":case"s":return m*n;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return m;default:return}}}}function u(f){var p=Math.abs(f);return p>=s?Math.round(f/s)+"d":p>=o?Math.round(f/o)+"h":p>=r?Math.round(f/r)+"m":p>=n?Math.round(f/n)+"s":f+"ms"}function c(f){var p=Math.abs(f);return p>=s?d(f,p,s,"day"):p>=o?d(f,p,o,"hour"):p>=r?d(f,p,r,"minute"):p>=n?d(f,p,n,"second"):f+" ms"}function d(f,p,m,v){var g=p>=m*1.5;return Math.round(f/m)+" "+v+(g?"s":"")}}),wXe=Ke((e,t)=>{je(),We(),Ue();function n(r){s.debug=s,s.default=s,s.coerce=d,s.disable=u,s.enable=i,s.enabled=c,s.humanize=bXe(),s.destroy=f,Object.keys(r).forEach(p=>{s[p]=r[p]}),s.names=[],s.skips=[],s.formatters={};function o(p){let m=0;for(let v=0;v{if(C==="%%")return"%";T++;let x=s.formatters[$];if(typeof x=="function"){let N=y[T];C=x.call(S,N),y.splice(T,1),T--}return C}),s.formatArgs.call(S,y),(S.log||s.log).apply(S,y)}return _.namespace=p,_.useColors=s.useColors(),_.color=s.selectColor(p),_.extend=a,_.destroy=s.destroy,Object.defineProperty(_,"enabled",{enumerable:!0,configurable:!1,get:()=>v!==null?v:(g!==s.namespaces&&(g=s.namespaces,b=s.enabled(p)),b),set:y=>{v=y}}),typeof s.init=="function"&&s.init(_),_}function a(p,m){let v=s(this.namespace+(typeof m>"u"?":":m)+p);return v.log=this.log,v}function i(p){s.save(p),s.namespaces=p,s.names=[],s.skips=[];let m=(typeof p=="string"?p:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let v of m)v[0]==="-"?s.skips.push(v.slice(1)):s.names.push(v)}function l(p,m){let v=0,g=0,b=-1,_=0;for(;v"-"+m)].join(",");return s.enable(""),p}function c(p){for(let m of s.skips)if(l(p,m))return!1;for(let m of s.names)if(l(p,m))return!0;return!1}function d(p){return p instanceof Error?p.stack||p.message:p}function f(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return s.enable(s.load()),s}t.exports=n}),oa=Ke((e,t)=>{je(),We(),Ue(),e.formatArgs=r,e.save=o,e.load=s,e.useColors=n,e.storage=a(),e.destroy=(()=>{let l=!1;return()=>{l||(l=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),e.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function n(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let l;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(l=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(l[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function r(l){if(l[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+l[0]+(this.useColors?"%c ":" ")+"+"+t.exports.humanize(this.diff),!this.useColors)return;let u="color: "+this.color;l.splice(1,0,u,"color: inherit");let c=0,d=0;l[0].replace(/%[a-zA-Z%]/g,f=>{f!=="%%"&&(c++,f==="%c"&&(d=c))}),l.splice(d,0,u)}e.log=console.debug||console.log||(()=>{});function o(l){try{l?e.storage.setItem("debug",l):e.storage.removeItem("debug")}catch{}}function s(){let l;try{l=e.storage.getItem("debug")||e.storage.getItem("DEBUG")}catch{}return!l&&typeof nn<"u"&&"env"in nn&&(l=nn.env.DEBUG),l}function a(){try{return localStorage}catch{}}t.exports=wXe()(e);var{formatters:i}=t.exports;i.j=function(l){try{return JSON.stringify(l)}catch(u){return"[UnexpectedJSONParseError]: "+u.message}}}),SXe=Ke((e,t)=>{je(),We(),Ue();var n=_Xe(),{EventEmitter:r}=(pl(),mn(pi)),o=yXe(),s=lR(),a=oa()("mqtt-packet:parser"),i=class w_ extends r{constructor(){super(),this.parser=this.constructor.parser}static parser(u){return this instanceof w_?(this.settings=u||{},this._states=["_parseHeader","_parseLength","_parsePayload","_newPacket"],this._resetState(),this):new w_().parser(u)}_resetState(){a("_resetState: resetting packet, error, _list, and _stateCounter"),this.packet=new o,this.error=null,this._list=n(),this._stateCounter=0}parse(u){for(this.error&&this._resetState(),this._list.append(u),a("parse: current state: %s",this._states[this._stateCounter]);(this.packet.length!==-1||this._list.length>0)&&this[this._states[this._stateCounter]]()&&!this.error;)this._stateCounter++,a("parse: state complete. _stateCounter is now: %d",this._stateCounter),a("parse: packet.length: %d, buffer list length: %d",this.packet.length,this._list.length),this._stateCounter>=this._states.length&&(this._stateCounter=0);return a("parse: exited while loop. packet: %d, buffer list length: %d",this.packet.length,this._list.length),this._list.length}_parseHeader(){let u=this._list.readUInt8(0),c=u>>s.CMD_SHIFT;this.packet.cmd=s.types[c];let d=u&15,f=s.requiredHeaderFlags[c];return f!=null&&d!==f?this._emitError(new Error(s.requiredHeaderFlagsErrors[c])):(this.packet.retain=(u&s.RETAIN_MASK)!==0,this.packet.qos=u>>s.QOS_SHIFT&s.QOS_MASK,this.packet.qos>2?this._emitError(new Error("Packet must not have both QoS bits set to 1")):(this.packet.dup=(u&s.DUP_MASK)!==0,a("_parseHeader: packet: %o",this.packet),this._list.consume(1),!0))}_parseLength(){let u=this._parseVarByteNum(!0);return u&&(this.packet.length=u.value,this._list.consume(u.bytes)),a("_parseLength %d",u.value),!!u}_parsePayload(){a("_parsePayload: payload %O",this._list);let u=!1;if(this.packet.length===0||this._list.length>=this.packet.length){switch(this._pos=0,this.packet.cmd){case"connect":this._parseConnect();break;case"connack":this._parseConnack();break;case"publish":this._parsePublish();break;case"puback":case"pubrec":case"pubrel":case"pubcomp":this._parseConfirmation();break;case"subscribe":this._parseSubscribe();break;case"suback":this._parseSuback();break;case"unsubscribe":this._parseUnsubscribe();break;case"unsuback":this._parseUnsuback();break;case"pingreq":case"pingresp":break;case"disconnect":this._parseDisconnect();break;case"auth":this._parseAuth();break;default:this._emitError(new Error("Not supported"))}u=!0}return a("_parsePayload complete result: %s",u),u}_parseConnect(){a("_parseConnect");let u,c,d,f,p={},m=this.packet,v=this._parseString();if(v===null)return this._emitError(new Error("Cannot parse protocolId"));if(v!=="MQTT"&&v!=="MQIsdp")return this._emitError(new Error("Invalid protocolId"));if(m.protocolId=v,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(m.protocolVersion=this._list.readUInt8(this._pos),m.protocolVersion>=128&&(m.bridgeMode=!0,m.protocolVersion=m.protocolVersion-128),m.protocolVersion!==3&&m.protocolVersion!==4&&m.protocolVersion!==5)return this._emitError(new Error("Invalid protocol version"));if(this._pos++,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(this._list.readUInt8(this._pos)&1)return this._emitError(new Error("Connect flag bit 0 must be 0, but got 1"));p.username=this._list.readUInt8(this._pos)&s.USERNAME_MASK,p.password=this._list.readUInt8(this._pos)&s.PASSWORD_MASK,p.will=this._list.readUInt8(this._pos)&s.WILL_FLAG_MASK;let g=!!(this._list.readUInt8(this._pos)&s.WILL_RETAIN_MASK),b=(this._list.readUInt8(this._pos)&s.WILL_QOS_MASK)>>s.WILL_QOS_SHIFT;if(p.will)m.will={},m.will.retain=g,m.will.qos=b;else{if(g)return this._emitError(new Error("Will Retain Flag must be set to zero when Will Flag is set to 0"));if(b)return this._emitError(new Error("Will QoS must be set to zero when Will Flag is set to 0"))}if(m.clean=(this._list.readUInt8(this._pos)&s.CLEAN_SESSION_MASK)!==0,this._pos++,m.keepalive=this._parseNum(),m.keepalive===-1)return this._emitError(new Error("Packet too short"));if(m.protocolVersion===5){let y=this._parseProperties();Object.getOwnPropertyNames(y).length&&(m.properties=y)}let _=this._parseString();if(_===null)return this._emitError(new Error("Packet too short"));if(m.clientId=_,a("_parseConnect: packet.clientId: %s",m.clientId),p.will){if(m.protocolVersion===5){let y=this._parseProperties();Object.getOwnPropertyNames(y).length&&(m.will.properties=y)}if(u=this._parseString(),u===null)return this._emitError(new Error("Cannot parse will topic"));if(m.will.topic=u,a("_parseConnect: packet.will.topic: %s",m.will.topic),c=this._parseBuffer(),c===null)return this._emitError(new Error("Cannot parse will payload"));m.will.payload=c,a("_parseConnect: packet.will.paylaod: %s",m.will.payload)}if(p.username){if(f=this._parseString(),f===null)return this._emitError(new Error("Cannot parse username"));m.username=f,a("_parseConnect: packet.username: %s",m.username)}if(p.password){if(d=this._parseBuffer(),d===null)return this._emitError(new Error("Cannot parse password"));m.password=d}return this.settings=m,a("_parseConnect: complete"),m}_parseConnack(){a("_parseConnack");let u=this.packet;if(this._list.length<1)return null;let c=this._list.readUInt8(this._pos++);if(c>1)return this._emitError(new Error("Invalid connack flags, bits 7-1 must be set to 0"));if(u.sessionPresent=!!(c&s.SESSIONPRESENT_MASK),this.settings.protocolVersion===5)this._list.length>=2?u.reasonCode=this._list.readUInt8(this._pos++):u.reasonCode=0;else{if(this._list.length<2)return null;u.returnCode=this._list.readUInt8(this._pos++)}if(u.returnCode===-1||u.reasonCode===-1)return this._emitError(new Error("Cannot parse return code"));if(this.settings.protocolVersion===5){let d=this._parseProperties();Object.getOwnPropertyNames(d).length&&(u.properties=d)}a("_parseConnack: complete")}_parsePublish(){a("_parsePublish");let u=this.packet;if(u.topic=this._parseString(),u.topic===null)return this._emitError(new Error("Cannot parse topic"));if(!(u.qos>0&&!this._parseMessageId())){if(this.settings.protocolVersion===5){let c=this._parseProperties();Object.getOwnPropertyNames(c).length&&(u.properties=c)}u.payload=this._list.slice(this._pos,u.length),a("_parsePublish: payload from buffer list: %o",u.payload)}}_parseSubscribe(){a("_parseSubscribe");let u=this.packet,c,d,f,p,m,v,g;if(u.subscriptions=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){let b=this._parseProperties();Object.getOwnPropertyNames(b).length&&(u.properties=b)}if(u.length<=0)return this._emitError(new Error("Malformed subscribe, no payload specified"));for(;this._pos=u.length)return this._emitError(new Error("Malformed Subscribe Payload"));if(d=this._parseByte(),this.settings.protocolVersion===5){if(d&192)return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-6 must be 0"))}else if(d&252)return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-2 must be 0"));if(f=d&s.SUBSCRIBE_OPTIONS_QOS_MASK,f>2)return this._emitError(new Error("Invalid subscribe QoS, must be <= 2"));if(v=(d>>s.SUBSCRIBE_OPTIONS_NL_SHIFT&s.SUBSCRIBE_OPTIONS_NL_MASK)!==0,m=(d>>s.SUBSCRIBE_OPTIONS_RAP_SHIFT&s.SUBSCRIBE_OPTIONS_RAP_MASK)!==0,p=d>>s.SUBSCRIBE_OPTIONS_RH_SHIFT&s.SUBSCRIBE_OPTIONS_RH_MASK,p>2)return this._emitError(new Error("Invalid retain handling, must be <= 2"));g={topic:c,qos:f},this.settings.protocolVersion===5?(g.nl=v,g.rap=m,g.rh=p):this.settings.bridgeMode&&(g.rh=0,g.rap=!0,g.nl=!0),a("_parseSubscribe: push subscription `%s` to subscription",g),u.subscriptions.push(g)}}}_parseSuback(){a("_parseSuback");let u=this.packet;if(this.packet.granted=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){let c=this._parseProperties();Object.getOwnPropertyNames(c).length&&(u.properties=c)}if(u.length<=0)return this._emitError(new Error("Malformed suback, no payload specified"));for(;this._pos2&&c!==128)return this._emitError(new Error("Invalid suback QoS, must be 0, 1, 2 or 128"));this.packet.granted.push(c)}}}_parseUnsubscribe(){a("_parseUnsubscribe");let u=this.packet;if(u.unsubscriptions=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){let c=this._parseProperties();Object.getOwnPropertyNames(c).length&&(u.properties=c)}if(u.length<=0)return this._emitError(new Error("Malformed unsubscribe, no payload specified"));for(;this._pos2){switch(u.reasonCode=this._parseByte(),this.packet.cmd){case"puback":case"pubrec":if(!s.MQTT5_PUBACK_PUBREC_CODES[u.reasonCode])return this._emitError(new Error("Invalid "+this.packet.cmd+" reason code"));break;case"pubrel":case"pubcomp":if(!s.MQTT5_PUBREL_PUBCOMP_CODES[u.reasonCode])return this._emitError(new Error("Invalid "+this.packet.cmd+" reason code"));break}a("_parseConfirmation: packet.reasonCode `%d`",u.reasonCode)}else u.reasonCode=0;if(u.length>3){let c=this._parseProperties();Object.getOwnPropertyNames(c).length&&(u.properties=c)}}return!0}_parseDisconnect(){let u=this.packet;if(a("_parseDisconnect"),this.settings.protocolVersion===5){this._list.length>0?(u.reasonCode=this._parseByte(),s.MQTT5_DISCONNECT_CODES[u.reasonCode]||this._emitError(new Error("Invalid disconnect reason code"))):u.reasonCode=0;let c=this._parseProperties();Object.getOwnPropertyNames(c).length&&(u.properties=c)}return a("_parseDisconnect result: true"),!0}_parseAuth(){a("_parseAuth");let u=this.packet;if(this.settings.protocolVersion!==5)return this._emitError(new Error("Not supported auth packet for this version MQTT"));if(u.reasonCode=this._parseByte(),!s.MQTT5_AUTH_CODES[u.reasonCode])return this._emitError(new Error("Invalid auth reason code"));let c=this._parseProperties();return Object.getOwnPropertyNames(c).length&&(u.properties=c),a("_parseAuth: result: true"),!0}_parseMessageId(){let u=this.packet;return u.messageId=this._parseNum(),u.messageId===null?(this._emitError(new Error("Cannot parse messageId")),!1):(a("_parseMessageId: packet.messageId %d",u.messageId),!0)}_parseString(u){let c=this._parseNum(),d=c+this._pos;if(c===-1||d>this._list.length||d>this.packet.length)return null;let f=this._list.toString("utf8",this._pos,d);return this._pos+=c,a("_parseString: result: %s",f),f}_parseStringPair(){return a("_parseStringPair"),{name:this._parseString(),value:this._parseString()}}_parseBuffer(){let u=this._parseNum(),c=u+this._pos;if(u===-1||c>this._list.length||c>this.packet.length)return null;let d=this._list.slice(this._pos,c);return this._pos+=u,a("_parseBuffer: result: %o",d),d}_parseNum(){if(this._list.length-this._pos<2)return-1;let u=this._list.readUInt16BE(this._pos);return this._pos+=2,a("_parseNum: result: %s",u),u}_parse4ByteNum(){if(this._list.length-this._pos<4)return-1;let u=this._list.readUInt32BE(this._pos);return this._pos+=4,a("_parse4ByteNum: result: %s",u),u}_parseVarByteNum(u){a("_parseVarByteNum");let c=4,d=0,f=1,p=0,m=!1,v,g=this._pos?this._pos:0;for(;d=d&&this._emitError(new Error("Invalid variable byte integer")),g&&(this._pos+=d),m?u?m={bytes:d,value:p}:m=p:m=!1,a("_parseVarByteNum: result: %o",m),m}_parseByte(){let u;return this._pos{je(),We(),Ue();var{Buffer:n}=(Jn(),mn(Xn)),r=65536,o={},s=n.isBuffer(n.from([1,2]).subarray(0,1));function a(c){let d=n.allocUnsafe(2);return d.writeUInt8(c>>8,0),d.writeUInt8(c&255,1),d}function i(){for(let c=0;c0&&(d=d|128),p.writeUInt8(d,f++);while(c>0&&f<4);return c>0&&(f=0),s?p.subarray(0,f):p.slice(0,f)}function u(c){let d=n.allocUnsafe(4);return d.writeUInt32BE(c,0),d}t.exports={cache:o,generateCache:i,generateNumber:a,genBufVariableByteInt:l,generate4ByteBuffer:u}}),CXe=Ke((e,t)=>{je(),We(),Ue(),typeof nn>"u"||!nn.version||nn.version.indexOf("v0.")===0||nn.version.indexOf("v1.")===0&&nn.version.indexOf("v1.8.")!==0?t.exports={nextTick:n}:t.exports=nn;function n(r,o,s,a){if(typeof r!="function")throw new TypeError('"callback" argument must be a function');var i=arguments.length,l,u;switch(i){case 0:case 1:return nn.nextTick(r);case 2:return nn.nextTick(function(){r.call(null,o)});case 3:return nn.nextTick(function(){r.call(null,o,s)});case 4:return nn.nextTick(function(){r.call(null,o,s,a)});default:for(l=new Array(i-1),u=0;u{je(),We(),Ue();var n=lR(),{Buffer:r}=(Jn(),mn(Xn)),o=r.allocUnsafe(0),s=r.from([0]),a=EXe(),i=CXe().nextTick,l=oa()("mqtt-packet:writeToStream"),u=a.cache,c=a.generateNumber,d=a.generateCache,f=a.genBufVariableByteInt,p=a.generate4ByteBuffer,m=P,v=!0;function g(Y,K,se){switch(l("generate called"),K.cork&&(K.cork(),i(b,K)),v&&(v=!1,d()),l("generate: packet.cmd: %s",Y.cmd),Y.cmd){case"connect":return _(Y,K);case"connack":return y(Y,K,se);case"publish":return S(Y,K,se);case"puback":case"pubrec":case"pubrel":case"pubcomp":return w(Y,K,se);case"subscribe":return E(Y,K,se);case"suback":return T(Y,K,se);case"unsubscribe":return C(Y,K,se);case"unsuback":return $(Y,K,se);case"pingreq":case"pingresp":return x(Y,K);case"disconnect":return N(Y,K,se);case"auth":return I(Y,K,se);default:return K.destroy(new Error("Unknown command")),!1}}Object.defineProperty(g,"cacheNumbers",{get(){return m===P},set(Y){Y?((!u||Object.keys(u).length===0)&&(v=!0),m=P):(v=!1,m=O)}});function b(Y){Y.uncork()}function _(Y,K,se){let ne=Y||{},ve=ne.protocolId||"MQTT",J=ne.protocolVersion||4,ae=ne.will,ce=ne.clean,oe=ne.keepalive||0,he=ne.clientId||"",le=ne.username,Ee=ne.password,ye=ne.properties;ce===void 0&&(ce=!0);let pe=0;if(typeof ve!="string"&&!r.isBuffer(ve))return K.destroy(new Error("Invalid protocolId")),!1;if(pe+=ve.length+2,J!==3&&J!==4&&J!==5)return K.destroy(new Error("Invalid protocol version")),!1;if(pe+=1,(typeof he=="string"||r.isBuffer(he))&&(he||J>=4)&&(he||ce))pe+=r.byteLength(he)+2;else{if(J<4)return K.destroy(new Error("clientId must be supplied before 3.1.1")),!1;if(ce*1===0)return K.destroy(new Error("clientId must be given if cleanSession set to 0")),!1}if(typeof oe!="number"||oe<0||oe>65535||oe%1!==0)return K.destroy(new Error("Invalid keepalive")),!1;pe+=2,pe+=1;let re,fe;if(J===5){if(re=te(K,ye),!re)return!1;pe+=re.length}if(ae){if(typeof ae!="object")return K.destroy(new Error("Invalid will")),!1;if(!ae.topic||typeof ae.topic!="string")return K.destroy(new Error("Invalid will topic")),!1;if(pe+=r.byteLength(ae.topic)+2,pe+=2,ae.payload)if(ae.payload.length>=0)typeof ae.payload=="string"?pe+=r.byteLength(ae.payload):pe+=ae.payload.length;else return K.destroy(new Error("Invalid will payload")),!1;if(fe={},J===5){if(fe=te(K,ae.properties),!fe)return!1;pe+=fe.length}}let Te=!1;if(le!=null)if(ke(le))Te=!0,pe+=r.byteLength(le)+2;else return K.destroy(new Error("Invalid username")),!1;if(Ee!=null){if(!Te)return K.destroy(new Error("Username is required to use password")),!1;if(ke(Ee))pe+=ie(Ee)+2;else return K.destroy(new Error("Invalid password")),!1}K.write(n.CONNECT_HEADER),F(K,pe),q(K,ve),ne.bridgeMode&&(J+=128),K.write(J===131?n.VERSION131:J===132?n.VERSION132:J===4?n.VERSION4:J===5?n.VERSION5:n.VERSION3);let $e=0;return $e|=le!=null?n.USERNAME_MASK:0,$e|=Ee!=null?n.PASSWORD_MASK:0,$e|=ae&&ae.retain?n.WILL_RETAIN_MASK:0,$e|=ae&&ae.qos?ae.qos<0&&m(K,he),ye==null||ye.write(),l("publish: payload: %o",oe),K.write(oe)}function w(Y,K,se){let ne=se?se.protocolVersion:4,ve=Y||{},J=ve.cmd||"puback",ae=ve.messageId,ce=ve.dup&&J==="pubrel"?n.DUP_MASK:0,oe=0,he=ve.reasonCode,le=ve.properties,Ee=ne===5?3:2;if(J==="pubrel"&&(oe=1),typeof ae!="number")return K.destroy(new Error("Invalid messageId")),!1;let ye=null;if(ne===5&&typeof le=="object"){if(ye=V(K,le,se,Ee),!ye)return!1;Ee+=ye.length}return K.write(n.ACKS[J][oe][ce][0]),Ee===3&&(Ee+=he!==0?1:-1),F(K,Ee),m(K,ae),ne===5&&Ee!==2&&K.write(r.from([he])),ye!==null?ye.write():Ee===4&&K.write(r.from([0])),!0}function E(Y,K,se){l("subscribe: packet: ");let ne=se?se.protocolVersion:4,ve=Y||{},J=ve.dup?n.DUP_MASK:0,ae=ve.messageId,ce=ve.subscriptions,oe=ve.properties,he=0;if(typeof ae!="number")return K.destroy(new Error("Invalid messageId")),!1;he+=2;let le=null;if(ne===5){if(le=te(K,oe),!le)return!1;he+=le.length}if(typeof ce=="object"&&ce.length)for(let ye=0;ye2)return K.destroy(new Error("Invalid subscriptions - invalid Retain Handling")),!1}he+=r.byteLength(pe)+2+1}else return K.destroy(new Error("Invalid subscriptions")),!1;l("subscribe: writing to stream: %o",n.SUBSCRIBE_HEADER),K.write(n.SUBSCRIBE_HEADER[1][J?1:0][0]),F(K,he),m(K,ae),le!==null&&le.write();let Ee=!0;for(let ye of ce){let pe=ye.topic,re=ye.qos,fe=+ye.nl,Te=+ye.rap,$e=ye.rh,Le;B(K,pe),Le=n.SUBSCRIBE_OPTIONS_QOS[re],ne===5&&(Le|=fe?n.SUBSCRIBE_OPTIONS_NL:0,Le|=Te?n.SUBSCRIBE_OPTIONS_RAP:0,Le|=$e?n.SUBSCRIBE_OPTIONS_RH[$e]:0),Ee=K.write(r.from([Le]))}return Ee}function T(Y,K,se){let ne=se?se.protocolVersion:4,ve=Y||{},J=ve.messageId,ae=ve.granted,ce=ve.properties,oe=0;if(typeof J!="number")return K.destroy(new Error("Invalid messageId")),!1;if(oe+=2,typeof ae=="object"&&ae.length)for(let le=0;len.VARBYTEINT_MAX)return Y.destroy(new Error(`Invalid variable byte integer: ${K}`)),!1;let se=L[K];return se||(se=f(K),K<16384&&(L[K]=se)),l("writeVarByteInt: writing to stream: %o",se),Y.write(se)}function B(Y,K){let se=r.byteLength(K);return m(Y,se),l("writeString: %s",K),Y.write(K,"utf8")}function U(Y,K,se){B(Y,K),B(Y,se)}function P(Y,K){return l("writeNumberCached: number: %d",K),l("writeNumberCached: %o",u[K]),Y.write(u[K])}function O(Y,K){let se=c(K);return l("writeNumberGenerated: %o",se),Y.write(se)}function H(Y,K){let se=p(K);return l("write4ByteNumber: %o",se),Y.write(se)}function q(Y,K){typeof K=="string"?B(Y,K):K?(m(Y,K.length),Y.write(K)):m(Y,0)}function te(Y,K){if(typeof K!="object"||K.length!=null)return{length:1,write(){ge(Y,{},0)}};let se=0;function ne(ve,J){let ae=n.propertiesTypes[ve],ce=0;switch(ae){case"byte":{if(typeof J!="boolean")return Y.destroy(new Error(`Invalid ${ve}: ${J}`)),!1;ce+=2;break}case"int8":{if(typeof J!="number"||J<0||J>255)return Y.destroy(new Error(`Invalid ${ve}: ${J}`)),!1;ce+=2;break}case"binary":{if(J&&J===null)return Y.destroy(new Error(`Invalid ${ve}: ${J}`)),!1;ce+=1+r.byteLength(J)+2;break}case"int16":{if(typeof J!="number"||J<0||J>65535)return Y.destroy(new Error(`Invalid ${ve}: ${J}`)),!1;ce+=3;break}case"int32":{if(typeof J!="number"||J<0||J>4294967295)return Y.destroy(new Error(`Invalid ${ve}: ${J}`)),!1;ce+=5;break}case"var":{if(typeof J!="number"||J<0||J>268435455)return Y.destroy(new Error(`Invalid ${ve}: ${J}`)),!1;ce+=1+r.byteLength(f(J));break}case"string":{if(typeof J!="string")return Y.destroy(new Error(`Invalid ${ve}: ${J}`)),!1;ce+=3+r.byteLength(J.toString());break}case"pair":{if(typeof J!="object")return Y.destroy(new Error(`Invalid ${ve}: ${J}`)),!1;ce+=Object.getOwnPropertyNames(J).reduce((oe,he)=>{let le=J[he];return Array.isArray(le)?oe+=le.reduce((Ee,ye)=>(Ee+=3+r.byteLength(he.toString())+2+r.byteLength(ye.toString()),Ee),0):oe+=3+r.byteLength(he.toString())+2+r.byteLength(J[he].toString()),oe},0);break}default:return Y.destroy(new Error(`Invalid property ${ve}: ${J}`)),!1}return ce}if(K)for(let ve in K){let J=0,ae=0,ce=K[ve];if(ce!==void 0){if(Array.isArray(ce))for(let oe=0;oeJ;){let ce=ve.shift();if(ce&&K[ce])delete K[ce],ae=te(Y,K);else return!1}return ae}function Q(Y,K,se){switch(n.propertiesTypes[K]){case"byte":{Y.write(r.from([n.properties[K]])),Y.write(r.from([+se]));break}case"int8":{Y.write(r.from([n.properties[K]])),Y.write(r.from([se]));break}case"binary":{Y.write(r.from([n.properties[K]])),q(Y,se);break}case"int16":{Y.write(r.from([n.properties[K]])),m(Y,se);break}case"int32":{Y.write(r.from([n.properties[K]])),H(Y,se);break}case"var":{Y.write(r.from([n.properties[K]])),F(Y,se);break}case"string":{Y.write(r.from([n.properties[K]])),B(Y,se);break}case"pair":{Object.getOwnPropertyNames(se).forEach(ne=>{let ve=se[ne];Array.isArray(ve)?ve.forEach(J=>{Y.write(r.from([n.properties[K]])),U(Y,ne.toString(),J.toString())}):(Y.write(r.from([n.properties[K]])),U(Y,ne.toString(),ve.toString()))});break}default:return Y.destroy(new Error(`Invalid property ${K} value: ${se}`)),!1}}function ge(Y,K,se){F(Y,se);for(let ne in K)if(Object.prototype.hasOwnProperty.call(K,ne)&&K[ne]!=null){let ve=K[ne];if(Array.isArray(ve))for(let J=0;J{je(),We(),Ue();var n=uR(),{EventEmitter:r}=(pl(),mn(pi)),{Buffer:o}=(Jn(),mn(Xn));function s(i,l){let u=new a;return n(i,u,l),u.concat()}var a=class extends r{constructor(){super(),this._array=new Array(20),this._i=0}write(i){return this._array[this._i++]=i,!0}concat(){let i=0,l=new Array(this._array.length),u=this._array,c=0,d;for(d=0;d{je(),We(),Ue(),e.parser=SXe().parser,e.generate=kXe(),e.writeToStream=uR()}),$Xe=Ke((e,t)=>{je(),We(),Ue(),t.exports=r;function n(s){return s instanceof d0?d0.from(s):new s.constructor(s.buffer.slice(),s.byteOffset,s.length)}function r(s){if(s=s||{},s.circles)return o(s);let a=new Map;if(a.set(Date,d=>new Date(d)),a.set(Map,(d,f)=>new Map(l(Array.from(d),f))),a.set(Set,(d,f)=>new Set(l(Array.from(d),f))),s.constructorHandlers)for(let d of s.constructorHandlers)a.set(d[0],d[1]);let i=null;return s.proto?c:u;function l(d,f){let p=Object.keys(d),m=new Array(p.length);for(let v=0;vnew Date(p)),l.set(Map,(p,m)=>new Map(c(Array.from(p),m))),l.set(Set,(p,m)=>new Set(c(Array.from(p),m))),s.constructorHandlers)for(let p of s.constructorHandlers)l.set(p[0],p[1]);let u=null;return s.proto?f:d;function c(p,m){let v=Object.keys(p),g=new Array(v.length);for(let b=0;b{je(),We(),Ue(),t.exports=$Xe()()}),IXe=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"__esModule",{value:!0}),e.validateTopic=t,e.validateTopics=n;function t(r){let o=r.split("/");for(let s=0;s{je(),We(),Ue(),Object.defineProperty(e,"__esModule",{value:!0});var t=ml(),n={objectMode:!0},r={clean:!0},o=class{constructor(s){ut(this,"options");ut(this,"_inflights");this.options=s||{},this.options={...r,...s},this._inflights=new Map}put(s,a){return this._inflights.set(s.messageId,s),a&&a(),this}createStream(){let s=new t.Readable(n),a=[],i=!1,l=0;return this._inflights.forEach((u,c)=>{a.push(u)}),s._read=()=>{!i&&l{if(!i)return i=!0,setTimeout(()=>{s.emit("close")},0),s},s}del(s,a){let i=this._inflights.get(s.messageId);return i?(this._inflights.delete(s.messageId),a(null,i)):a&&a(new Error("missing packet")),this}get(s,a){let i=this._inflights.get(s.messageId);return i?a(null,i):a&&a(new Error("missing packet")),this}close(s){this.options.clean&&(this._inflights=null),s&&s()}};e.default=o}),AXe=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"__esModule",{value:!0});var t=[0,16,128,131,135,144,145,151,153],n=(r,o,s)=>{r.log("handlePublish: packet %o",o),s=typeof s<"u"?s:r.noop;let a=o.topic.toString(),i=o.payload,{qos:l}=o,{messageId:u}=o,{options:c}=r;if(r.options.protocolVersion===5){let d;if(o.properties&&(d=o.properties.topicAlias),typeof d<"u")if(a.length===0)if(d>0&&d<=65535){let f=r.topicAliasRecv.getTopicByAlias(d);if(f)a=f,r.log("handlePublish :: topic complemented by alias. topic: %s - alias: %d",a,d);else{r.log("handlePublish :: unregistered topic alias. alias: %d",d),r.emit("error",new Error("Received unregistered Topic Alias"));return}}else{r.log("handlePublish :: topic alias out of range. alias: %d",d),r.emit("error",new Error("Received Topic Alias is out of range"));return}else if(r.topicAliasRecv.put(a,d))r.log("handlePublish :: registered topic: %s - alias: %d",a,d);else{r.log("handlePublish :: topic alias out of range. alias: %d",d),r.emit("error",new Error("Received Topic Alias is out of range"));return}}switch(r.log("handlePublish: qos %d",l),l){case 2:{c.customHandleAcks(a,i,o,(d,f)=>{if(typeof d=="number"&&(f=d,d=null),d)return r.emit("error",d);if(t.indexOf(f)===-1)return r.emit("error",new Error("Wrong reason code for pubrec"));f?r._sendPacket({cmd:"pubrec",messageId:u,reasonCode:f},s):r.incomingStore.put(o,()=>{r._sendPacket({cmd:"pubrec",messageId:u},s)})});break}case 1:{c.customHandleAcks(a,i,o,(d,f)=>{if(typeof d=="number"&&(f=d,d=null),d)return r.emit("error",d);if(t.indexOf(f)===-1)return r.emit("error",new Error("Wrong reason code for puback"));f||r.emit("message",a,i,o),r.handleMessage(o,p=>{if(p)return s&&s(p);r._sendPacket({cmd:"puback",messageId:u,reasonCode:f},s)})});break}case 0:r.emit("message",a,i,o),r.handleMessage(o,s);break;default:r.log("handlePublish: unknown QoS. Doing nothing.");break}};e.default=n}),MXe=Ke((e,t)=>{t.exports={version:"5.14.0"}}),ac=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"__esModule",{value:!0}),e.MQTTJS_VERSION=e.nextTick=e.ErrorWithSubackPacket=e.ErrorWithReasonCode=void 0,e.applyMixin=r;var t=class dR extends Error{constructor(a,i){super(a);ut(this,"code");this.code=i,Object.setPrototypeOf(this,dR.prototype),Object.getPrototypeOf(this).name="ErrorWithReasonCode"}};e.ErrorWithReasonCode=t;var n=class fR extends Error{constructor(a,i){super(a);ut(this,"packet");this.packet=i,Object.setPrototypeOf(this,fR.prototype),Object.getPrototypeOf(this).name="ErrorWithSubackPacket"}};e.ErrorWithSubackPacket=n;function r(o,s,a=!1){let i=[s];for(;;){let l=i[0],u=Object.getPrototypeOf(l);if(u!=null&&u.prototype)i.unshift(u);else break}for(let l of i)for(let u of Object.getOwnPropertyNames(l.prototype))(a||u!=="constructor")&&Object.defineProperty(o.prototype,u,Object.getOwnPropertyDescriptor(l.prototype,u)??Object.create(null))}e.nextTick=typeof(nn==null?void 0:nn.nextTick)=="function"?nn.nextTick:o=>{setTimeout(o,0)},e.MQTTJS_VERSION=MXe().version}),Am=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"__esModule",{value:!0}),e.ReasonCodes=void 0;var t=ac();e.ReasonCodes={0:"",1:"Unacceptable protocol version",2:"Identifier rejected",3:"Server unavailable",4:"Bad username or password",5:"Not authorized",16:"No matching subscribers",17:"No subscription existed",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",132:"Unsupported Protocol Version",133:"Client Identifier not valid",134:"Bad User Name or Password",135:"Not authorized",136:"Server unavailable",137:"Server busy",138:"Banned",139:"Server shutting down",140:"Bad authentication method",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",145:"Packet identifier in use",146:"Packet Identifier not found",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"};var n=(r,o)=>{let{messageId:s}=o,a=o.cmd,i=null,l=r.outgoing[s]?r.outgoing[s].cb:null,u=null;if(!l){r.log("_handleAck :: Server sent an ack in error. Ignoring.");return}switch(r.log("_handleAck :: packet type",a),a){case"pubcomp":case"puback":{let c=o.reasonCode;c&&c>0&&c!==16?(u=new t.ErrorWithReasonCode(`Publish error: ${e.ReasonCodes[c]}`,c),r._removeOutgoingAndStoreMessage(s,()=>{l(u,o)})):r._removeOutgoingAndStoreMessage(s,l);break}case"pubrec":{i={cmd:"pubrel",qos:2,messageId:s};let c=o.reasonCode;c&&c>0&&c!==16?(u=new t.ErrorWithReasonCode(`Publish error: ${e.ReasonCodes[c]}`,c),r._removeOutgoingAndStoreMessage(s,()=>{l(u,o)})):r._sendPacket(i);break}case"suback":{delete r.outgoing[s],r.messageIdProvider.deallocate(s);let c=o.granted;for(let d=0;d{delete r._resubscribeTopics[m]})}}delete r.messageIdToTopic[s],r._invokeStoreProcessingQueue(),l(u,o);break}case"unsuback":{delete r.outgoing[s],r.messageIdProvider.deallocate(s),r._invokeStoreProcessingQueue(),l(null,o);break}default:r.emit("error",new Error("unrecognized packet type"))}r.disconnecting&&Object.keys(r.outgoing).length===0&&r.emit("outgoingEmpty")};e.default=n}),OXe=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"__esModule",{value:!0});var t=ac(),n=Am(),r=(o,s)=>{let{options:a}=o,i=a.protocolVersion,l=i===5?s.reasonCode:s.returnCode;if(i!==5){let u=new t.ErrorWithReasonCode(`Protocol error: Auth packets are only supported in MQTT 5. Your version:${i}`,l);o.emit("error",u);return}o.handleAuth(s,(u,c)=>{if(u){o.emit("error",u);return}if(l===24)o.reconnecting=!1,o._sendPacket(c);else{let d=new t.ErrorWithReasonCode(`Connection refused: ${n.ReasonCodes[l]}`,l);o.emit("error",d)}})};e.default=r}),RXe=Ke(e=>{var p,m,v,g,b,_,y,S,w,E,T,C,$,x,N,I,L,F,B,U,P,O,H,q,te,V,Q,ge,ie,S_,Y,K,se,ne,pR,J,ae,ce,Pa,Na,E_,qp,Kp,Cn,C_,Ac,La,k_,Le;je(),We(),Ue(),Object.defineProperty(e,"__esModule",{value:!0}),e.LRUCache=void 0;var t=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,n=new Set,r=typeof nn=="object"&&nn?nn:{},o=(A,M,j,G)=>{typeof r.emitWarning=="function"?r.emitWarning(A,M,j,G):console.error(`[${j}] ${M}: ${A}`)},s=globalThis.AbortController,a=globalThis.AbortSignal;if(typeof s>"u"){a=class{constructor(){ut(this,"onabort");ut(this,"_onabort",[]);ut(this,"reason");ut(this,"aborted",!1)}addEventListener(j,G){this._onabort.push(G)}},s=class{constructor(){ut(this,"signal",new a);M()}abort(j){var G,ue;if(!this.signal.aborted){this.signal.reason=j,this.signal.aborted=!0;for(let _e of this.signal._onabort)_e(j);(ue=(G=this.signal).onabort)==null||ue.call(G,j)}}};let A=((p=r.env)==null?void 0:p.LRU_CACHE_IGNORE_AC_WARNING)!=="1",M=()=>{A&&(A=!1,o("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",M))}}var i=A=>!n.has(A),l=A=>A&&A===Math.floor(A)&&A>0&&isFinite(A),u=A=>l(A)?A<=Math.pow(2,8)?Uint8Array:A<=Math.pow(2,16)?Uint16Array:A<=Math.pow(2,32)?Uint32Array:A<=Number.MAX_SAFE_INTEGER?c:null:null,c=class extends Array{constructor(A){super(A),this.fill(0)}},d=(m=class{constructor(M,j){ut(this,"heap");ut(this,"length");if(!Ie(m,v))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new j(M),this.length=0}static create(M){let j=u(M);if(!j)return[];Mt(m,v,!0);let G=new m(M,j);return Mt(m,v,!1),G}push(M){this.heap[this.length++]=M}pop(){return this.heap[--this.length]}},v=new WeakMap,en(m,v,!1),m),f=(Le=class{constructor(M){en(this,ie);en(this,_);en(this,y);en(this,S);en(this,w);en(this,E);en(this,T);ut(this,"ttl");ut(this,"ttlResolution");ut(this,"ttlAutopurge");ut(this,"updateAgeOnGet");ut(this,"updateAgeOnHas");ut(this,"allowStale");ut(this,"noDisposeOnSet");ut(this,"noUpdateTTL");ut(this,"maxEntrySize");ut(this,"sizeCalculation");ut(this,"noDeleteOnFetchRejection");ut(this,"noDeleteOnStaleGet");ut(this,"allowStaleOnFetchAbort");ut(this,"allowStaleOnFetchRejection");ut(this,"ignoreFetchAbort");en(this,C);en(this,$);en(this,x);en(this,N);en(this,I);en(this,L);en(this,F);en(this,B);en(this,U);en(this,P);en(this,O);en(this,H);en(this,q);en(this,te);en(this,V);en(this,Q);en(this,ge);en(this,Y,()=>{});en(this,K,()=>{});en(this,se,()=>{});en(this,ne,()=>!1);en(this,J,M=>{});en(this,ae,(M,j,G)=>{});en(this,ce,(M,j,G,ue)=>{if(G||ue)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});ut(this,g,"LRUCache");let{max:j=0,ttl:G,ttlResolution:ue=1,ttlAutopurge:_e,updateAgeOnGet:X,updateAgeOnHas:Z,allowStale:de,dispose:Oe,disposeAfter:qe,noDisposeOnSet:Qe,noUpdateTTL:ht,maxSize:jt=0,maxEntrySize:It=0,sizeCalculation:lt,fetchMethod:Ne,memoMethod:Ve,noDeleteOnFetchRejection:st,noDeleteOnStaleGet:_t,allowStaleOnFetchRejection:Zt,allowStaleOnFetchAbort:cn,ignoreFetchAbort:ir}=M;if(j!==0&&!l(j))throw new TypeError("max option must be a nonnegative integer");let we=j?u(j):Array;if(!we)throw new Error("invalid max value: "+j);if(Mt(this,_,j),Mt(this,y,jt),this.maxEntrySize=It||Ie(this,y),this.sizeCalculation=lt,this.sizeCalculation){if(!Ie(this,y)&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(Ve!==void 0&&typeof Ve!="function")throw new TypeError("memoMethod must be a function if defined");if(Mt(this,T,Ve),Ne!==void 0&&typeof Ne!="function")throw new TypeError("fetchMethod must be a function if specified");if(Mt(this,E,Ne),Mt(this,Q,!!Ne),Mt(this,x,new Map),Mt(this,N,new Array(j).fill(void 0)),Mt(this,I,new Array(j).fill(void 0)),Mt(this,L,new we(j)),Mt(this,F,new we(j)),Mt(this,B,0),Mt(this,U,0),Mt(this,P,d.create(j)),Mt(this,C,0),Mt(this,$,0),typeof Oe=="function"&&Mt(this,S,Oe),typeof qe=="function"?(Mt(this,w,qe),Mt(this,O,[])):(Mt(this,w,void 0),Mt(this,O,void 0)),Mt(this,V,!!Ie(this,S)),Mt(this,ge,!!Ie(this,w)),this.noDisposeOnSet=!!Qe,this.noUpdateTTL=!!ht,this.noDeleteOnFetchRejection=!!st,this.allowStaleOnFetchRejection=!!Zt,this.allowStaleOnFetchAbort=!!cn,this.ignoreFetchAbort=!!ir,this.maxEntrySize!==0){if(Ie(this,y)!==0&&!l(Ie(this,y)))throw new TypeError("maxSize must be a positive integer if specified");if(!l(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");bt(this,ie,pR).call(this)}if(this.allowStale=!!de,this.noDeleteOnStaleGet=!!_t,this.updateAgeOnGet=!!X,this.updateAgeOnHas=!!Z,this.ttlResolution=l(ue)||ue===0?ue:1,this.ttlAutopurge=!!_e,this.ttl=G||0,this.ttl){if(!l(this.ttl))throw new TypeError("ttl must be a positive integer if specified");bt(this,ie,S_).call(this)}if(Ie(this,_)===0&&this.ttl===0&&Ie(this,y)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!Ie(this,_)&&!Ie(this,y)){let xe="LRU_CACHE_UNBOUNDED";i(xe)&&(n.add(xe),o("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",xe,Le))}}static unsafeExposeInternals(M){return{starts:Ie(M,q),ttls:Ie(M,te),sizes:Ie(M,H),keyMap:Ie(M,x),keyList:Ie(M,N),valList:Ie(M,I),next:Ie(M,L),prev:Ie(M,F),get head(){return Ie(M,B)},get tail(){return Ie(M,U)},free:Ie(M,P),isBackgroundFetch:j=>{var G;return bt(G=M,ie,Cn).call(G,j)},backgroundFetch:(j,G,ue,_e)=>{var X;return bt(X=M,ie,Kp).call(X,j,G,ue,_e)},moveToTail:j=>{var G;return bt(G=M,ie,Ac).call(G,j)},indexes:j=>{var G;return bt(G=M,ie,Pa).call(G,j)},rindexes:j=>{var G;return bt(G=M,ie,Na).call(G,j)},isStale:j=>{var G;return Ie(G=M,ne).call(G,j)}}}get max(){return Ie(this,_)}get maxSize(){return Ie(this,y)}get calculatedSize(){return Ie(this,$)}get size(){return Ie(this,C)}get fetchMethod(){return Ie(this,E)}get memoMethod(){return Ie(this,T)}get dispose(){return Ie(this,S)}get disposeAfter(){return Ie(this,w)}getRemainingTTL(M){return Ie(this,x).has(M)?1/0:0}*entries(){for(let M of bt(this,ie,Pa).call(this))Ie(this,I)[M]!==void 0&&Ie(this,N)[M]!==void 0&&!bt(this,ie,Cn).call(this,Ie(this,I)[M])&&(yield[Ie(this,N)[M],Ie(this,I)[M]])}*rentries(){for(let M of bt(this,ie,Na).call(this))Ie(this,I)[M]!==void 0&&Ie(this,N)[M]!==void 0&&!bt(this,ie,Cn).call(this,Ie(this,I)[M])&&(yield[Ie(this,N)[M],Ie(this,I)[M]])}*keys(){for(let M of bt(this,ie,Pa).call(this)){let j=Ie(this,N)[M];j!==void 0&&!bt(this,ie,Cn).call(this,Ie(this,I)[M])&&(yield j)}}*rkeys(){for(let M of bt(this,ie,Na).call(this)){let j=Ie(this,N)[M];j!==void 0&&!bt(this,ie,Cn).call(this,Ie(this,I)[M])&&(yield j)}}*values(){for(let M of bt(this,ie,Pa).call(this))Ie(this,I)[M]!==void 0&&!bt(this,ie,Cn).call(this,Ie(this,I)[M])&&(yield Ie(this,I)[M])}*rvalues(){for(let M of bt(this,ie,Na).call(this))Ie(this,I)[M]!==void 0&&!bt(this,ie,Cn).call(this,Ie(this,I)[M])&&(yield Ie(this,I)[M])}[(b=Symbol.iterator,g=Symbol.toStringTag,b)](){return this.entries()}find(M,j={}){for(let G of bt(this,ie,Pa).call(this)){let ue=Ie(this,I)[G],_e=bt(this,ie,Cn).call(this,ue)?ue.__staleWhileFetching:ue;if(_e!==void 0&&M(_e,Ie(this,N)[G],this))return this.get(Ie(this,N)[G],j)}}forEach(M,j=this){for(let G of bt(this,ie,Pa).call(this)){let ue=Ie(this,I)[G],_e=bt(this,ie,Cn).call(this,ue)?ue.__staleWhileFetching:ue;_e!==void 0&&M.call(j,_e,Ie(this,N)[G],this)}}rforEach(M,j=this){for(let G of bt(this,ie,Na).call(this)){let ue=Ie(this,I)[G],_e=bt(this,ie,Cn).call(this,ue)?ue.__staleWhileFetching:ue;_e!==void 0&&M.call(j,_e,Ie(this,N)[G],this)}}purgeStale(){let M=!1;for(let j of bt(this,ie,Na).call(this,{allowStale:!0}))Ie(this,ne).call(this,j)&&(bt(this,ie,La).call(this,Ie(this,N)[j],"expire"),M=!0);return M}info(M){let j=Ie(this,x).get(M);if(j===void 0)return;let G=Ie(this,I)[j],ue=bt(this,ie,Cn).call(this,G)?G.__staleWhileFetching:G;if(ue===void 0)return;let _e={value:ue};if(Ie(this,te)&&Ie(this,q)){let X=Ie(this,te)[j],Z=Ie(this,q)[j];if(X&&Z){let de=X-(t.now()-Z);_e.ttl=de,_e.start=Date.now()}}return Ie(this,H)&&(_e.size=Ie(this,H)[j]),_e}dump(){let M=[];for(let j of bt(this,ie,Pa).call(this,{allowStale:!0})){let G=Ie(this,N)[j],ue=Ie(this,I)[j],_e=bt(this,ie,Cn).call(this,ue)?ue.__staleWhileFetching:ue;if(_e===void 0||G===void 0)continue;let X={value:_e};if(Ie(this,te)&&Ie(this,q)){X.ttl=Ie(this,te)[j];let Z=t.now()-Ie(this,q)[j];X.start=Math.floor(Date.now()-Z)}Ie(this,H)&&(X.size=Ie(this,H)[j]),M.unshift([G,X])}return M}load(M){this.clear();for(let[j,G]of M){if(G.start){let ue=Date.now()-G.start;G.start=t.now()-ue}this.set(j,G.value,G)}}set(M,j,G={}){var ht,jt,It,lt,Ne;if(j===void 0)return this.delete(M),this;let{ttl:ue=this.ttl,start:_e,noDisposeOnSet:X=this.noDisposeOnSet,sizeCalculation:Z=this.sizeCalculation,status:de}=G,{noUpdateTTL:Oe=this.noUpdateTTL}=G,qe=Ie(this,ce).call(this,M,j,G.size||0,Z);if(this.maxEntrySize&&qe>this.maxEntrySize)return de&&(de.set="miss",de.maxEntrySizeExceeded=!0),bt(this,ie,La).call(this,M,"set"),this;let Qe=Ie(this,C)===0?void 0:Ie(this,x).get(M);if(Qe===void 0)Qe=Ie(this,C)===0?Ie(this,U):Ie(this,P).length!==0?Ie(this,P).pop():Ie(this,C)===Ie(this,_)?bt(this,ie,qp).call(this,!1):Ie(this,C),Ie(this,N)[Qe]=M,Ie(this,I)[Qe]=j,Ie(this,x).set(M,Qe),Ie(this,L)[Ie(this,U)]=Qe,Ie(this,F)[Qe]=Ie(this,U),Mt(this,U,Qe),Sf(this,C)._++,Ie(this,ae).call(this,Qe,qe,de),de&&(de.set="add"),Oe=!1;else{bt(this,ie,Ac).call(this,Qe);let Ve=Ie(this,I)[Qe];if(j!==Ve){if(Ie(this,Q)&&bt(this,ie,Cn).call(this,Ve)){Ve.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:st}=Ve;st!==void 0&&!X&&(Ie(this,V)&&((ht=Ie(this,S))==null||ht.call(this,st,M,"set")),Ie(this,ge)&&((jt=Ie(this,O))==null||jt.push([st,M,"set"])))}else X||(Ie(this,V)&&((It=Ie(this,S))==null||It.call(this,Ve,M,"set")),Ie(this,ge)&&((lt=Ie(this,O))==null||lt.push([Ve,M,"set"])));if(Ie(this,J).call(this,Qe),Ie(this,ae).call(this,Qe,qe,de),Ie(this,I)[Qe]=j,de){de.set="replace";let st=Ve&&bt(this,ie,Cn).call(this,Ve)?Ve.__staleWhileFetching:Ve;st!==void 0&&(de.oldValue=st)}}else de&&(de.set="update")}if(ue!==0&&!Ie(this,te)&&bt(this,ie,S_).call(this),Ie(this,te)&&(Oe||Ie(this,se).call(this,Qe,ue,_e),de&&Ie(this,K).call(this,de,Qe)),!X&&Ie(this,ge)&&Ie(this,O)){let Ve=Ie(this,O),st;for(;st=Ve==null?void 0:Ve.shift();)(Ne=Ie(this,w))==null||Ne.call(this,...st)}return this}pop(){var M;try{for(;Ie(this,C);){let j=Ie(this,I)[Ie(this,B)];if(bt(this,ie,qp).call(this,!0),bt(this,ie,Cn).call(this,j)){if(j.__staleWhileFetching)return j.__staleWhileFetching}else if(j!==void 0)return j}}finally{if(Ie(this,ge)&&Ie(this,O)){let j=Ie(this,O),G;for(;G=j==null?void 0:j.shift();)(M=Ie(this,w))==null||M.call(this,...G)}}}has(M,j={}){let{updateAgeOnHas:G=this.updateAgeOnHas,status:ue}=j,_e=Ie(this,x).get(M);if(_e!==void 0){let X=Ie(this,I)[_e];if(bt(this,ie,Cn).call(this,X)&&X.__staleWhileFetching===void 0)return!1;if(Ie(this,ne).call(this,_e))ue&&(ue.has="stale",Ie(this,K).call(this,ue,_e));else return G&&Ie(this,Y).call(this,_e),ue&&(ue.has="hit",Ie(this,K).call(this,ue,_e)),!0}else ue&&(ue.has="miss");return!1}peek(M,j={}){let{allowStale:G=this.allowStale}=j,ue=Ie(this,x).get(M);if(ue===void 0||!G&&Ie(this,ne).call(this,ue))return;let _e=Ie(this,I)[ue];return bt(this,ie,Cn).call(this,_e)?_e.__staleWhileFetching:_e}async fetch(M,j={}){let{allowStale:G=this.allowStale,updateAgeOnGet:ue=this.updateAgeOnGet,noDeleteOnStaleGet:_e=this.noDeleteOnStaleGet,ttl:X=this.ttl,noDisposeOnSet:Z=this.noDisposeOnSet,size:de=0,sizeCalculation:Oe=this.sizeCalculation,noUpdateTTL:qe=this.noUpdateTTL,noDeleteOnFetchRejection:Qe=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:ht=this.allowStaleOnFetchRejection,ignoreFetchAbort:jt=this.ignoreFetchAbort,allowStaleOnFetchAbort:It=this.allowStaleOnFetchAbort,context:lt,forceRefresh:Ne=!1,status:Ve,signal:st}=j;if(!Ie(this,Q))return Ve&&(Ve.fetch="get"),this.get(M,{allowStale:G,updateAgeOnGet:ue,noDeleteOnStaleGet:_e,status:Ve});let _t={allowStale:G,updateAgeOnGet:ue,noDeleteOnStaleGet:_e,ttl:X,noDisposeOnSet:Z,size:de,sizeCalculation:Oe,noUpdateTTL:qe,noDeleteOnFetchRejection:Qe,allowStaleOnFetchRejection:ht,allowStaleOnFetchAbort:It,ignoreFetchAbort:jt,status:Ve,signal:st},Zt=Ie(this,x).get(M);if(Zt===void 0){Ve&&(Ve.fetch="miss");let cn=bt(this,ie,Kp).call(this,M,Zt,_t,lt);return cn.__returned=cn}else{let cn=Ie(this,I)[Zt];if(bt(this,ie,Cn).call(this,cn)){let nt=G&&cn.__staleWhileFetching!==void 0;return Ve&&(Ve.fetch="inflight",nt&&(Ve.returnedStale=!0)),nt?cn.__staleWhileFetching:cn.__returned=cn}let ir=Ie(this,ne).call(this,Zt);if(!Ne&&!ir)return Ve&&(Ve.fetch="hit"),bt(this,ie,Ac).call(this,Zt),ue&&Ie(this,Y).call(this,Zt),Ve&&Ie(this,K).call(this,Ve,Zt),cn;let we=bt(this,ie,Kp).call(this,M,Zt,_t,lt),xe=we.__staleWhileFetching!==void 0&&G;return Ve&&(Ve.fetch=ir?"stale":"refresh",xe&&ir&&(Ve.returnedStale=!0)),xe?we.__staleWhileFetching:we.__returned=we}}async forceFetch(M,j={}){let G=await this.fetch(M,j);if(G===void 0)throw new Error("fetch() returned undefined");return G}memo(M,j={}){let G=Ie(this,T);if(!G)throw new Error("no memoMethod provided to constructor");let{context:ue,forceRefresh:_e,...X}=j,Z=this.get(M,X);if(!_e&&Z!==void 0)return Z;let de=G(M,Z,{options:X,context:ue});return this.set(M,de,X),de}get(M,j={}){let{allowStale:G=this.allowStale,updateAgeOnGet:ue=this.updateAgeOnGet,noDeleteOnStaleGet:_e=this.noDeleteOnStaleGet,status:X}=j,Z=Ie(this,x).get(M);if(Z!==void 0){let de=Ie(this,I)[Z],Oe=bt(this,ie,Cn).call(this,de);return X&&Ie(this,K).call(this,X,Z),Ie(this,ne).call(this,Z)?(X&&(X.get="stale"),Oe?(X&&G&&de.__staleWhileFetching!==void 0&&(X.returnedStale=!0),G?de.__staleWhileFetching:void 0):(_e||bt(this,ie,La).call(this,M,"expire"),X&&G&&(X.returnedStale=!0),G?de:void 0)):(X&&(X.get="hit"),Oe?de.__staleWhileFetching:(bt(this,ie,Ac).call(this,Z),ue&&Ie(this,Y).call(this,Z),de))}else X&&(X.get="miss")}delete(M){return bt(this,ie,La).call(this,M,"delete")}clear(){return bt(this,ie,k_).call(this,"delete")}},_=new WeakMap,y=new WeakMap,S=new WeakMap,w=new WeakMap,E=new WeakMap,T=new WeakMap,C=new WeakMap,$=new WeakMap,x=new WeakMap,N=new WeakMap,I=new WeakMap,L=new WeakMap,F=new WeakMap,B=new WeakMap,U=new WeakMap,P=new WeakMap,O=new WeakMap,H=new WeakMap,q=new WeakMap,te=new WeakMap,V=new WeakMap,Q=new WeakMap,ge=new WeakMap,ie=new WeakSet,S_=function(){let M=new c(Ie(this,_)),j=new c(Ie(this,_));Mt(this,te,M),Mt(this,q,j),Mt(this,se,(_e,X,Z=t.now())=>{if(j[_e]=X!==0?Z:0,M[_e]=X,X!==0&&this.ttlAutopurge){let de=setTimeout(()=>{Ie(this,ne).call(this,_e)&&bt(this,ie,La).call(this,Ie(this,N)[_e],"expire")},X+1);de.unref&&de.unref()}}),Mt(this,Y,_e=>{j[_e]=M[_e]!==0?t.now():0}),Mt(this,K,(_e,X)=>{if(M[X]){let Z=M[X],de=j[X];if(!Z||!de)return;_e.ttl=Z,_e.start=de,_e.now=G||ue();let Oe=_e.now-de;_e.remainingTTL=Z-Oe}});let G=0,ue=()=>{let _e=t.now();if(this.ttlResolution>0){G=_e;let X=setTimeout(()=>G=0,this.ttlResolution);X.unref&&X.unref()}return _e};this.getRemainingTTL=_e=>{let X=Ie(this,x).get(_e);if(X===void 0)return 0;let Z=M[X],de=j[X];if(!Z||!de)return 1/0;let Oe=(G||ue())-de;return Z-Oe},Mt(this,ne,_e=>{let X=j[_e],Z=M[_e];return!!Z&&!!X&&(G||ue())-X>Z})},Y=new WeakMap,K=new WeakMap,se=new WeakMap,ne=new WeakMap,pR=function(){let M=new c(Ie(this,_));Mt(this,$,0),Mt(this,H,M),Mt(this,J,j=>{Mt(this,$,Ie(this,$)-M[j]),M[j]=0}),Mt(this,ce,(j,G,ue,_e)=>{if(bt(this,ie,Cn).call(this,G))return 0;if(!l(ue))if(_e){if(typeof _e!="function")throw new TypeError("sizeCalculation must be a function");if(ue=_e(G,j),!l(ue))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return ue}),Mt(this,ae,(j,G,ue)=>{if(M[j]=G,Ie(this,y)){let _e=Ie(this,y)-M[j];for(;Ie(this,$)>_e;)bt(this,ie,qp).call(this,!0)}Mt(this,$,Ie(this,$)+M[j]),ue&&(ue.entrySize=G,ue.totalCalculatedSize=Ie(this,$))})},J=new WeakMap,ae=new WeakMap,ce=new WeakMap,Pa=function*({allowStale:M=this.allowStale}={}){if(Ie(this,C))for(let j=Ie(this,U);!(!bt(this,ie,E_).call(this,j)||((M||!Ie(this,ne).call(this,j))&&(yield j),j===Ie(this,B)));)j=Ie(this,F)[j]},Na=function*({allowStale:M=this.allowStale}={}){if(Ie(this,C))for(let j=Ie(this,B);!(!bt(this,ie,E_).call(this,j)||((M||!Ie(this,ne).call(this,j))&&(yield j),j===Ie(this,U)));)j=Ie(this,L)[j]},E_=function(M){return M!==void 0&&Ie(this,x).get(Ie(this,N)[M])===M},qp=function(M){var _e,X;let j=Ie(this,B),G=Ie(this,N)[j],ue=Ie(this,I)[j];return Ie(this,Q)&&bt(this,ie,Cn).call(this,ue)?ue.__abortController.abort(new Error("evicted")):(Ie(this,V)||Ie(this,ge))&&(Ie(this,V)&&((_e=Ie(this,S))==null||_e.call(this,ue,G,"evict")),Ie(this,ge)&&((X=Ie(this,O))==null||X.push([ue,G,"evict"]))),Ie(this,J).call(this,j),M&&(Ie(this,N)[j]=void 0,Ie(this,I)[j]=void 0,Ie(this,P).push(j)),Ie(this,C)===1?(Mt(this,B,Mt(this,U,0)),Ie(this,P).length=0):Mt(this,B,Ie(this,L)[j]),Ie(this,x).delete(G),Sf(this,C)._--,j},Kp=function(M,j,G,ue){let _e=j===void 0?void 0:Ie(this,I)[j];if(bt(this,ie,Cn).call(this,_e))return _e;let X=new s,{signal:Z}=G;Z==null||Z.addEventListener("abort",()=>X.abort(Z.reason),{signal:X.signal});let de={signal:X.signal,options:G,context:ue},Oe=(lt,Ne=!1)=>{let{aborted:Ve}=X.signal,st=G.ignoreFetchAbort&<!==void 0;if(G.status&&(Ve&&!Ne?(G.status.fetchAborted=!0,G.status.fetchError=X.signal.reason,st&&(G.status.fetchAbortIgnored=!0)):G.status.fetchResolved=!0),Ve&&!st&&!Ne)return Qe(X.signal.reason);let _t=jt;return Ie(this,I)[j]===jt&&(lt===void 0?_t.__staleWhileFetching?Ie(this,I)[j]=_t.__staleWhileFetching:bt(this,ie,La).call(this,M,"fetch"):(G.status&&(G.status.fetchUpdated=!0),this.set(M,lt,de.options))),lt},qe=lt=>(G.status&&(G.status.fetchRejected=!0,G.status.fetchError=lt),Qe(lt)),Qe=lt=>{let{aborted:Ne}=X.signal,Ve=Ne&&G.allowStaleOnFetchAbort,st=Ve||G.allowStaleOnFetchRejection,_t=st||G.noDeleteOnFetchRejection,Zt=jt;if(Ie(this,I)[j]===jt&&(!_t||Zt.__staleWhileFetching===void 0?bt(this,ie,La).call(this,M,"fetch"):Ve||(Ie(this,I)[j]=Zt.__staleWhileFetching)),st)return G.status&&Zt.__staleWhileFetching!==void 0&&(G.status.returnedStale=!0),Zt.__staleWhileFetching;if(Zt.__returned===Zt)throw lt},ht=(lt,Ne)=>{var st;let Ve=(st=Ie(this,E))==null?void 0:st.call(this,M,_e,de);Ve&&Ve instanceof Promise&&Ve.then(_t=>lt(_t===void 0?void 0:_t),Ne),X.signal.addEventListener("abort",()=>{(!G.ignoreFetchAbort||G.allowStaleOnFetchAbort)&&(lt(void 0),G.allowStaleOnFetchAbort&&(lt=_t=>Oe(_t,!0)))})};G.status&&(G.status.fetchDispatched=!0);let jt=new Promise(ht).then(Oe,qe),It=Object.assign(jt,{__abortController:X,__staleWhileFetching:_e,__returned:void 0});return j===void 0?(this.set(M,It,{...de.options,status:void 0}),j=Ie(this,x).get(M)):Ie(this,I)[j]=It,It},Cn=function(M){if(!Ie(this,Q))return!1;let j=M;return!!j&&j instanceof Promise&&j.hasOwnProperty("__staleWhileFetching")&&j.__abortController instanceof s},C_=function(M,j){Ie(this,F)[j]=M,Ie(this,L)[M]=j},Ac=function(M){M!==Ie(this,U)&&(M===Ie(this,B)?Mt(this,B,Ie(this,L)[M]):bt(this,ie,C_).call(this,Ie(this,F)[M],Ie(this,L)[M]),bt(this,ie,C_).call(this,Ie(this,U),M),Mt(this,U,M))},La=function(M,j){var ue,_e,X,Z;let G=!1;if(Ie(this,C)!==0){let de=Ie(this,x).get(M);if(de!==void 0)if(G=!0,Ie(this,C)===1)bt(this,ie,k_).call(this,j);else{Ie(this,J).call(this,de);let Oe=Ie(this,I)[de];if(bt(this,ie,Cn).call(this,Oe)?Oe.__abortController.abort(new Error("deleted")):(Ie(this,V)||Ie(this,ge))&&(Ie(this,V)&&((ue=Ie(this,S))==null||ue.call(this,Oe,M,j)),Ie(this,ge)&&((_e=Ie(this,O))==null||_e.push([Oe,M,j]))),Ie(this,x).delete(M),Ie(this,N)[de]=void 0,Ie(this,I)[de]=void 0,de===Ie(this,U))Mt(this,U,Ie(this,F)[de]);else if(de===Ie(this,B))Mt(this,B,Ie(this,L)[de]);else{let qe=Ie(this,F)[de];Ie(this,L)[qe]=Ie(this,L)[de];let Qe=Ie(this,L)[de];Ie(this,F)[Qe]=Ie(this,F)[de]}Sf(this,C)._--,Ie(this,P).push(de)}}if(Ie(this,ge)&&((X=Ie(this,O))!=null&&X.length)){let de=Ie(this,O),Oe;for(;Oe=de==null?void 0:de.shift();)(Z=Ie(this,w))==null||Z.call(this,...Oe)}return G},k_=function(M){var j,G,ue;for(let _e of bt(this,ie,Na).call(this,{allowStale:!0})){let X=Ie(this,I)[_e];if(bt(this,ie,Cn).call(this,X))X.__abortController.abort(new Error("deleted"));else{let Z=Ie(this,N)[_e];Ie(this,V)&&((j=Ie(this,S))==null||j.call(this,X,Z,M)),Ie(this,ge)&&((G=Ie(this,O))==null||G.push([X,Z,M]))}}if(Ie(this,x).clear(),Ie(this,I).fill(void 0),Ie(this,N).fill(void 0),Ie(this,te)&&Ie(this,q)&&(Ie(this,te).fill(0),Ie(this,q).fill(0)),Ie(this,H)&&Ie(this,H).fill(0),Mt(this,B,0),Mt(this,U,0),Ie(this,P).length=0,Mt(this,$,0),Mt(this,C,0),Ie(this,ge)&&Ie(this,O)){let _e=Ie(this,O),X;for(;X=_e==null?void 0:_e.shift();)(ue=Ie(this,w))==null||ue.call(this,...X)}},Le);e.LRUCache=f}),wa=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"t",{value:!0}),e.ContainerIterator=e.Container=e.Base=void 0;var t=class{constructor(o=0){this.iteratorType=o}equals(o){return this.o===o.o}};e.ContainerIterator=t;var n=class{constructor(){this.i=0}get length(){return this.i}size(){return this.i}empty(){return this.i===0}};e.Base=n;var r=class extends n{};e.Container=r}),PXe=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"t",{value:!0}),e.default=void 0;var t=wa(),n=class extends t.Base{constructor(o=[]){super(),this.S=[];let s=this;o.forEach(function(a){s.push(a)})}clear(){this.i=0,this.S=[]}push(o){return this.S.push(o),this.i+=1,this.i}pop(){if(this.i!==0)return this.i-=1,this.S.pop()}top(){return this.S[this.i-1]}},r=n;e.default=r}),NXe=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"t",{value:!0}),e.default=void 0;var t=wa(),n=class extends t.Base{constructor(o=[]){super(),this.j=0,this.q=[];let s=this;o.forEach(function(a){s.push(a)})}clear(){this.q=[],this.i=this.j=0}push(o){let s=this.q.length;if(this.j/s>.5&&this.j+this.i>=s&&s>4096){let a=this.i;for(let i=0;i{je(),We(),Ue(),Object.defineProperty(e,"t",{value:!0}),e.default=void 0;var t=wa(),n=class extends t.Base{constructor(o=[],s=function(i,l){return i>l?-1:i>1;for(let l=this.i-1>>1;l>=0;--l)this.k(l,i)}m(o){let s=this.C[o];for(;o>0;){let a=o-1>>1,i=this.C[a];if(this.v(i,s)<=0)break;this.C[o]=i,o=a}this.C[o]=s}k(o,s){let a=this.C[o];for(;o0&&(i=l,u=this.C[l]),this.v(u,a)>=0)break;this.C[o]=u,o=i}this.C[o]=a}clear(){this.i=0,this.C.length=0}push(o){this.C.push(o),this.m(this.i),this.i+=1}pop(){if(this.i===0)return;let o=this.C[0],s=this.C.pop();return this.i-=1,this.i&&(this.C[0]=s,this.k(0,this.i>>1)),o}top(){return this.C[0]}find(o){return this.C.indexOf(o)>=0}remove(o){let s=this.C.indexOf(o);return s<0?!1:(s===0?this.pop():s===this.i-1?(this.C.pop(),this.i-=1):(this.C.splice(s,1,this.C.pop()),this.i-=1,this.m(s),this.k(s,this.i>>1)),!0)}updateItem(o){let s=this.C.indexOf(o);return s<0?!1:(this.m(s),this.k(s,this.i>>1),!0)}toArray(){return[...this.C]}},r=n;e.default=r}),w3=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"t",{value:!0}),e.default=void 0;var t=wa(),n=class extends t.Container{},r=n;e.default=r}),Sa=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"t",{value:!0}),e.throwIteratorAccessError=t;function t(){throw new RangeError("Iterator access denied!")}}),hR=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"t",{value:!0}),e.RandomIterator=void 0;var t=wa(),n=Sa(),r=class extends t.ContainerIterator{constructor(o,s){super(s),this.o=o,this.iteratorType===0?(this.pre=function(){return this.o===0&&(0,n.throwIteratorAccessError)(),this.o-=1,this},this.next=function(){return this.o===this.container.size()&&(0,n.throwIteratorAccessError)(),this.o+=1,this}):(this.pre=function(){return this.o===this.container.size()-1&&(0,n.throwIteratorAccessError)(),this.o+=1,this},this.next=function(){return this.o===-1&&(0,n.throwIteratorAccessError)(),this.o-=1,this})}get pointer(){return this.container.getElementByPos(this.o)}set pointer(o){this.container.setElementByPos(this.o,o)}};e.RandomIterator=r}),BXe=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"t",{value:!0}),e.default=void 0;var t=r(w3()),n=hR();function r(i){return i&&i.t?i:{default:i}}var o=class mR extends n.RandomIterator{constructor(l,u,c){super(l,c),this.container=u}copy(){return new mR(this.o,this.container,this.iteratorType)}},s=class extends t.default{constructor(i=[],l=!0){if(super(),Array.isArray(i))this.J=l?[...i]:i,this.i=i.length;else{this.J=[];let u=this;i.forEach(function(c){u.pushBack(c)})}}clear(){this.i=0,this.J.length=0}begin(){return new o(0,this)}end(){return new o(this.i,this)}rBegin(){return new o(this.i-1,this,1)}rEnd(){return new o(-1,this,1)}front(){return this.J[0]}back(){return this.J[this.i-1]}getElementByPos(i){if(i<0||i>this.i-1)throw new RangeError;return this.J[i]}eraseElementByPos(i){if(i<0||i>this.i-1)throw new RangeError;return this.J.splice(i,1),this.i-=1,this.i}eraseElementByValue(i){let l=0;for(let u=0;uthis.i-1)throw new RangeError;this.J[i]=l}insert(i,l,u=1){if(i<0||i>this.i)throw new RangeError;return this.J.splice(i,0,...new Array(u).fill(l)),this.i+=u,this.i}find(i){for(let l=0;l{je(),We(),Ue(),Object.defineProperty(e,"t",{value:!0}),e.default=void 0;var t=o(w3()),n=wa(),r=Sa();function o(l){return l&&l.t?l:{default:l}}var s=class vR extends n.ContainerIterator{constructor(u,c,d,f){super(f),this.o=u,this.h=c,this.container=d,this.iteratorType===0?(this.pre=function(){return this.o.L===this.h&&(0,r.throwIteratorAccessError)(),this.o=this.o.L,this},this.next=function(){return this.o===this.h&&(0,r.throwIteratorAccessError)(),this.o=this.o.B,this}):(this.pre=function(){return this.o.B===this.h&&(0,r.throwIteratorAccessError)(),this.o=this.o.B,this},this.next=function(){return this.o===this.h&&(0,r.throwIteratorAccessError)(),this.o=this.o.L,this})}get pointer(){return this.o===this.h&&(0,r.throwIteratorAccessError)(),this.o.l}set pointer(u){this.o===this.h&&(0,r.throwIteratorAccessError)(),this.o.l=u}copy(){return new vR(this.o,this.h,this.container,this.iteratorType)}},a=class extends t.default{constructor(l=[]){super(),this.h={},this.p=this._=this.h.L=this.h.B=this.h;let u=this;l.forEach(function(c){u.pushBack(c)})}V(l){let{L:u,B:c}=l;u.B=c,c.L=u,l===this.p&&(this.p=c),l===this._&&(this._=u),this.i-=1}G(l,u){let c=u.B,d={l,L:u,B:c};u.B=d,c.L=d,u===this.h&&(this.p=d),c===this.h&&(this._=d),this.i+=1}clear(){this.i=0,this.p=this._=this.h.L=this.h.B=this.h}begin(){return new s(this.p,this.h,this)}end(){return new s(this.h,this.h,this)}rBegin(){return new s(this._,this.h,this,1)}rEnd(){return new s(this.h,this.h,this,1)}front(){return this.p.l}back(){return this._.l}getElementByPos(l){if(l<0||l>this.i-1)throw new RangeError;let u=this.p;for(;l--;)u=u.B;return u.l}eraseElementByPos(l){if(l<0||l>this.i-1)throw new RangeError;let u=this.p;for(;l--;)u=u.B;return this.V(u),this.i}eraseElementByValue(l){let u=this.p;for(;u!==this.h;)u.l===l&&this.V(u),u=u.B;return this.i}eraseElementByIterator(l){let u=l.o;return u===this.h&&(0,r.throwIteratorAccessError)(),l=l.next(),this.V(u),l}pushBack(l){return this.G(l,this._),this.i}popBack(){if(this.i===0)return;let l=this._.l;return this.V(this._),l}pushFront(l){return this.G(l,this.h),this.i}popFront(){if(this.i===0)return;let l=this.p.l;return this.V(this.p),l}setElementByPos(l,u){if(l<0||l>this.i-1)throw new RangeError;let c=this.p;for(;l--;)c=c.B;c.l=u}insert(l,u,c=1){if(l<0||l>this.i)throw new RangeError;if(c<=0)return this.i;if(l===0)for(;c--;)this.pushFront(u);else if(l===this.i)for(;c--;)this.pushBack(u);else{let d=this.p;for(let p=1;p{je(),We(),Ue(),Object.defineProperty(e,"t",{value:!0}),e.default=void 0;var t=r(w3()),n=hR();function r(i){return i&&i.t?i:{default:i}}var o=class gR extends n.RandomIterator{constructor(l,u,c){super(l,c),this.container=u}copy(){return new gR(this.o,this.container,this.iteratorType)}},s=class extends t.default{constructor(i=[],l=4096){super(),this.j=0,this.D=0,this.R=0,this.N=0,this.P=0,this.A=[];let u=(()=>{if(typeof i.length=="number")return i.length;if(typeof i.size=="number")return i.size;if(typeof i.size=="function")return i.size();throw new TypeError("Cannot get the length or size of the container")})();this.F=l,this.P=Math.max(Math.ceil(u/this.F),1);for(let f=0;f>1)-(c>>1),this.D=this.N=this.F-u%this.F>>1;let d=this;i.forEach(function(f){d.pushBack(f)})}T(){let i=[],l=Math.max(this.P>>1,1);for(let u=0;u>1}begin(){return new o(0,this)}end(){return new o(this.i,this)}rBegin(){return new o(this.i-1,this,1)}rEnd(){return new o(-1,this,1)}front(){if(this.i!==0)return this.A[this.j][this.D]}back(){if(this.i!==0)return this.A[this.R][this.N]}pushBack(i){return this.i&&(this.N0?this.N-=1:this.R>0?(this.R-=1,this.N=this.F-1):(this.R=this.P-1,this.N=this.F-1)),this.i-=1,i}pushFront(i){return this.i&&(this.D>0?this.D-=1:this.j>0?(this.j-=1,this.D=this.F-1):(this.j=this.P-1,this.D=this.F-1),this.j===this.R&&this.D===this.N&&this.T()),this.i+=1,this.A[this.j][this.D]=i,this.i}popFront(){if(this.i===0)return;let i=this.A[this.j][this.D];return this.i!==1&&(this.Dthis.i-1)throw new RangeError;let{curNodeBucketIndex:l,curNodePointerIndex:u}=this.O(i);return this.A[l][u]}setElementByPos(i,l){if(i<0||i>this.i-1)throw new RangeError;let{curNodeBucketIndex:u,curNodePointerIndex:c}=this.O(i);this.A[u][c]=l}insert(i,l,u=1){if(i<0||i>this.i)throw new RangeError;if(i===0)for(;u--;)this.pushFront(l);else if(i===this.i)for(;u--;)this.pushBack(l);else{let c=[];for(let d=i;dthis.i-1)throw new RangeError;if(i===0)this.popFront();else if(i===this.i-1)this.popBack();else{let l=[];for(let c=i+1;ci;)this.popBack();return this.i}sort(i){let l=[];for(let u=0;u{je(),We(),Ue(),Object.defineProperty(e,"t",{value:!0}),e.TreeNodeEnableIndex=e.TreeNode=void 0;var t=class{constructor(r,o){this.ee=1,this.u=void 0,this.l=void 0,this.U=void 0,this.W=void 0,this.tt=void 0,this.u=r,this.l=o}L(){let r=this;if(r.ee===1&&r.tt.tt===r)r=r.W;else if(r.U)for(r=r.U;r.W;)r=r.W;else{let o=r.tt;for(;o.U===r;)r=o,o=r.tt;r=o}return r}B(){let r=this;if(r.W){for(r=r.W;r.U;)r=r.U;return r}else{let o=r.tt;for(;o.W===r;)r=o,o=r.tt;return r.W!==o?o:r}}te(){let r=this.tt,o=this.W,s=o.U;return r.tt===this?r.tt=o:r.U===this?r.U=o:r.W=o,o.tt=r,o.U=this,this.tt=o,this.W=s,s&&(s.tt=this),o}se(){let r=this.tt,o=this.U,s=o.W;return r.tt===this?r.tt=o:r.U===this?r.U=o:r.W=o,o.tt=r,o.W=this,this.tt=o,this.U=s,s&&(s.tt=this),o}};e.TreeNode=t;var n=class extends t{constructor(){super(...arguments),this.rt=1}te(){let r=super.te();return this.ie(),r.ie(),r}se(){let r=super.se();return this.ie(),r.ie(),r}ie(){this.rt=1,this.U&&(this.rt+=this.U.rt),this.W&&(this.rt+=this.W.rt)}};e.TreeNodeEnableIndex=n}),_R=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"t",{value:!0}),e.default=void 0;var t=FXe(),n=wa(),r=Sa(),o=class extends n.Container{constructor(a=function(l,u){return lu?1:0},i=!1){super(),this.Y=void 0,this.v=a,i?(this.re=t.TreeNodeEnableIndex,this.M=function(l,u,c){let d=this.ne(l,u,c);if(d){let f=d.tt;for(;f!==this.h;)f.rt+=1,f=f.tt;let p=this.he(d);if(p){let{parentNode:m,grandParent:v,curNode:g}=p;m.ie(),v.ie(),g.ie()}}return this.i},this.V=function(l){let u=this.fe(l);for(;u!==this.h;)u.rt-=1,u=u.tt}):(this.re=t.TreeNode,this.M=function(l,u,c){let d=this.ne(l,u,c);return d&&this.he(d),this.i},this.V=this.fe),this.h=new this.re}X(a,i){let l=this.h;for(;a;){let u=this.v(a.u,i);if(u<0)a=a.W;else if(u>0)l=a,a=a.U;else return a}return l}Z(a,i){let l=this.h;for(;a;)this.v(a.u,i)<=0?a=a.W:(l=a,a=a.U);return l}$(a,i){let l=this.h;for(;a;){let u=this.v(a.u,i);if(u<0)l=a,a=a.W;else if(u>0)a=a.U;else return a}return l}rr(a,i){let l=this.h;for(;a;)this.v(a.u,i)<0?(l=a,a=a.W):a=a.U;return l}ue(a){for(;;){let i=a.tt;if(i===this.h)return;if(a.ee===1){a.ee=0;return}if(a===i.U){let l=i.W;if(l.ee===1)l.ee=0,i.ee=1,i===this.Y?this.Y=i.te():i.te();else if(l.W&&l.W.ee===1){l.ee=i.ee,i.ee=0,l.W.ee=0,i===this.Y?this.Y=i.te():i.te();return}else l.U&&l.U.ee===1?(l.ee=1,l.U.ee=0,l.se()):(l.ee=1,a=i)}else{let l=i.U;if(l.ee===1)l.ee=0,i.ee=1,i===this.Y?this.Y=i.se():i.se();else if(l.U&&l.U.ee===1){l.ee=i.ee,i.ee=0,l.U.ee=0,i===this.Y?this.Y=i.se():i.se();return}else l.W&&l.W.ee===1?(l.ee=1,l.W.ee=0,l.te()):(l.ee=1,a=i)}}}fe(a){if(this.i===1)return this.clear(),this.h;let i=a;for(;i.U||i.W;){if(i.W)for(i=i.W;i.U;)i=i.U;else i=i.U;[a.u,i.u]=[i.u,a.u],[a.l,i.l]=[i.l,a.l],a=i}this.h.U===i?this.h.U=i.tt:this.h.W===i&&(this.h.W=i.tt),this.ue(i);let l=i.tt;return i===l.U?l.U=void 0:l.W=void 0,this.i-=1,this.Y.ee=0,l}oe(a,i){return a===void 0?!1:this.oe(a.U,i)||i(a)?!0:this.oe(a.W,i)}he(a){for(;;){let i=a.tt;if(i.ee===0)return;let l=i.tt;if(i===l.U){let u=l.W;if(u&&u.ee===1){if(u.ee=i.ee=0,l===this.Y)return;l.ee=1,a=l;continue}else if(a===i.W){if(a.ee=0,a.U&&(a.U.tt=i),a.W&&(a.W.tt=l),i.W=a.U,l.U=a.W,a.U=i,a.W=l,l===this.Y)this.Y=a,this.h.tt=a;else{let c=l.tt;c.U===l?c.U=a:c.W=a}return a.tt=l.tt,i.tt=a,l.tt=a,l.ee=1,{parentNode:i,grandParent:l,curNode:a}}else i.ee=0,l===this.Y?this.Y=l.se():l.se(),l.ee=1}else{let u=l.U;if(u&&u.ee===1){if(u.ee=i.ee=0,l===this.Y)return;l.ee=1,a=l;continue}else if(a===i.U){if(a.ee=0,a.U&&(a.U.tt=l),a.W&&(a.W.tt=i),l.W=a.U,i.U=a.W,a.U=l,a.W=i,l===this.Y)this.Y=a,this.h.tt=a;else{let c=l.tt;c.U===l?c.U=a:c.W=a}return a.tt=l.tt,i.tt=a,l.tt=a,l.ee=1,{parentNode:i,grandParent:l,curNode:a}}else i.ee=0,l===this.Y?this.Y=l.te():l.te(),l.ee=1}return}}ne(a,i,l){if(this.Y===void 0){this.i+=1,this.Y=new this.re(a,i),this.Y.ee=0,this.Y.tt=this.h,this.h.tt=this.Y,this.h.U=this.Y,this.h.W=this.Y;return}let u,c=this.h.U,d=this.v(c.u,a);if(d===0){c.l=i;return}else if(d>0)c.U=new this.re(a,i),c.U.tt=c,u=c.U,this.h.U=u;else{let f=this.h.W,p=this.v(f.u,a);if(p===0){f.l=i;return}else if(p<0)f.W=new this.re(a,i),f.W.tt=f,u=f.W,this.h.W=u;else{if(l!==void 0){let m=l.o;if(m!==this.h){let v=this.v(m.u,a);if(v===0){m.l=i;return}else if(v>0){let g=m.L(),b=this.v(g.u,a);if(b===0){g.l=i;return}else b<0&&(u=new this.re(a,i),g.W===void 0?(g.W=u,u.tt=g):(m.U=u,u.tt=m))}}}if(u===void 0)for(u=this.Y;;){let m=this.v(u.u,a);if(m>0){if(u.U===void 0){u.U=new this.re(a,i),u.U.tt=u,u=u.U;break}u=u.U}else if(m<0){if(u.W===void 0){u.W=new this.re(a,i),u.W.tt=u,u=u.W;break}u=u.W}else{u.l=i;return}}}}return this.i+=1,u}I(a,i){for(;a;){let l=this.v(a.u,i);if(l<0)a=a.W;else if(l>0)a=a.U;else return a}return a||this.h}clear(){this.i=0,this.Y=void 0,this.h.tt=void 0,this.h.U=this.h.W=void 0}updateKeyByIterator(a,i){let l=a.o;if(l===this.h&&(0,r.throwIteratorAccessError)(),this.i===1)return l.u=i,!0;if(l===this.h.U)return this.v(l.B().u,i)>0?(l.u=i,!0):!1;if(l===this.h.W)return this.v(l.L().u,i)<0?(l.u=i,!0):!1;let u=l.L().u;if(this.v(u,i)>=0)return!1;let c=l.B().u;return this.v(c,i)<=0?!1:(l.u=i,!0)}eraseElementByPos(a){if(a<0||a>this.i-1)throw new RangeError;let i=0,l=this;return this.oe(this.Y,function(u){return a===i?(l.V(u),!0):(i+=1,!1)}),this.i}eraseElementByKey(a){if(this.i===0)return!1;let i=this.I(this.Y,a);return i===this.h?!1:(this.V(i),!0)}eraseElementByIterator(a){let i=a.o;i===this.h&&(0,r.throwIteratorAccessError)();let l=i.W===void 0;return a.iteratorType===0?l&&a.next():(!l||i.U===void 0)&&a.next(),this.V(i),a}forEach(a){let i=0;for(let l of this)a(l,i++,this)}getElementByPos(a){if(a<0||a>this.i-1)throw new RangeError;let i,l=0;for(let u of this){if(l===a){i=u;break}l+=1}return i}getHeight(){if(this.i===0)return 0;let a=function(i){return i?Math.max(a(i.U),a(i.W))+1:0};return a(this.Y)}},s=o;e.default=s}),yR=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"t",{value:!0}),e.default=void 0;var t=wa(),n=Sa(),r=class extends t.ContainerIterator{constructor(s,a,i){super(i),this.o=s,this.h=a,this.iteratorType===0?(this.pre=function(){return this.o===this.h.U&&(0,n.throwIteratorAccessError)(),this.o=this.o.L(),this},this.next=function(){return this.o===this.h&&(0,n.throwIteratorAccessError)(),this.o=this.o.B(),this}):(this.pre=function(){return this.o===this.h.W&&(0,n.throwIteratorAccessError)(),this.o=this.o.B(),this},this.next=function(){return this.o===this.h&&(0,n.throwIteratorAccessError)(),this.o=this.o.L(),this})}get index(){let s=this.o,a=this.h.tt;if(s===this.h)return a?a.rt-1:0;let i=0;for(s.U&&(i+=s.U.rt);s!==a;){let l=s.tt;s===l.W&&(i+=1,l.U&&(i+=l.U.rt)),s=l}return i}},o=r;e.default=o}),HXe=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"t",{value:!0}),e.default=void 0;var t=o(_R()),n=o(yR()),r=Sa();function o(l){return l&&l.t?l:{default:l}}var s=class bR extends n.default{constructor(u,c,d,f){super(u,c,f),this.container=d}get pointer(){return this.o===this.h&&(0,r.throwIteratorAccessError)(),this.o.u}copy(){return new bR(this.o,this.h,this.container,this.iteratorType)}},a=class extends t.default{constructor(l=[],u,c){super(u,c);let d=this;l.forEach(function(f){d.insert(f)})}*K(l){l!==void 0&&(yield*this.K(l.U),yield l.u,yield*this.K(l.W))}begin(){return new s(this.h.U||this.h,this.h,this)}end(){return new s(this.h,this.h,this)}rBegin(){return new s(this.h.W||this.h,this.h,this,1)}rEnd(){return new s(this.h,this.h,this,1)}front(){return this.h.U?this.h.U.u:void 0}back(){return this.h.W?this.h.W.u:void 0}insert(l,u){return this.M(l,void 0,u)}find(l){let u=this.I(this.Y,l);return new s(u,this.h,this)}lowerBound(l){let u=this.X(this.Y,l);return new s(u,this.h,this)}upperBound(l){let u=this.Z(this.Y,l);return new s(u,this.h,this)}reverseLowerBound(l){let u=this.$(this.Y,l);return new s(u,this.h,this)}reverseUpperBound(l){let u=this.rr(this.Y,l);return new s(u,this.h,this)}union(l){let u=this;return l.forEach(function(c){u.insert(c)}),this.i}[Symbol.iterator](){return this.K(this.Y)}},i=a;e.default=i}),VXe=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"t",{value:!0}),e.default=void 0;var t=o(_R()),n=o(yR()),r=Sa();function o(l){return l&&l.t?l:{default:l}}var s=class wR extends n.default{constructor(u,c,d,f){super(u,c,f),this.container=d}get pointer(){this.o===this.h&&(0,r.throwIteratorAccessError)();let u=this;return new Proxy([],{get(c,d){if(d==="0")return u.o.u;if(d==="1")return u.o.l},set(c,d,f){if(d!=="1")throw new TypeError("props must be 1");return u.o.l=f,!0}})}copy(){return new wR(this.o,this.h,this.container,this.iteratorType)}},a=class extends t.default{constructor(l=[],u,c){super(u,c);let d=this;l.forEach(function(f){d.setElement(f[0],f[1])})}*K(l){l!==void 0&&(yield*this.K(l.U),yield[l.u,l.l],yield*this.K(l.W))}begin(){return new s(this.h.U||this.h,this.h,this)}end(){return new s(this.h,this.h,this)}rBegin(){return new s(this.h.W||this.h,this.h,this,1)}rEnd(){return new s(this.h,this.h,this,1)}front(){if(this.i===0)return;let l=this.h.U;return[l.u,l.l]}back(){if(this.i===0)return;let l=this.h.W;return[l.u,l.l]}lowerBound(l){let u=this.X(this.Y,l);return new s(u,this.h,this)}upperBound(l){let u=this.Z(this.Y,l);return new s(u,this.h,this)}reverseLowerBound(l){let u=this.$(this.Y,l);return new s(u,this.h,this)}reverseUpperBound(l){let u=this.rr(this.Y,l);return new s(u,this.h,this)}setElement(l,u,c){return this.M(l,u,c)}find(l){let u=this.I(this.Y,l);return new s(u,this.h,this)}getElementByKey(l){return this.I(this.Y,l).l}union(l){let u=this;return l.forEach(function(c){u.setElement(c[0],c[1])}),this.i}[Symbol.iterator](){return this.K(this.Y)}},i=a;e.default=i}),SR=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"t",{value:!0}),e.default=t;function t(n){let r=typeof n;return r==="object"&&n!==null||r==="function"}}),ER=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"t",{value:!0}),e.HashContainerIterator=e.HashContainer=void 0;var t=wa(),n=o(SR()),r=Sa();function o(i){return i&&i.t?i:{default:i}}var s=class extends t.ContainerIterator{constructor(i,l,u){super(u),this.o=i,this.h=l,this.iteratorType===0?(this.pre=function(){return this.o.L===this.h&&(0,r.throwIteratorAccessError)(),this.o=this.o.L,this},this.next=function(){return this.o===this.h&&(0,r.throwIteratorAccessError)(),this.o=this.o.B,this}):(this.pre=function(){return this.o.B===this.h&&(0,r.throwIteratorAccessError)(),this.o=this.o.B,this},this.next=function(){return this.o===this.h&&(0,r.throwIteratorAccessError)(),this.o=this.o.L,this})}};e.HashContainerIterator=s;var a=class extends t.Container{constructor(){super(),this.H=[],this.g={},this.HASH_TAG=Symbol("@@HASH_TAG"),Object.setPrototypeOf(this.g,null),this.h={},this.h.L=this.h.B=this.p=this._=this.h}V(i){let{L:l,B:u}=i;l.B=u,u.L=l,i===this.p&&(this.p=u),i===this._&&(this._=l),this.i-=1}M(i,l,u){u===void 0&&(u=(0,n.default)(i));let c;if(u){let d=i[this.HASH_TAG];if(d!==void 0)return this.H[d].l=l,this.i;Object.defineProperty(i,this.HASH_TAG,{value:this.H.length,configurable:!0}),c={u:i,l,L:this._,B:this.h},this.H.push(c)}else{let d=this.g[i];if(d)return d.l=l,this.i;c={u:i,l,L:this._,B:this.h},this.g[i]=c}return this.i===0?(this.p=c,this.h.B=c):this._.B=c,this._=c,this.h.L=c,++this.i}I(i,l){if(l===void 0&&(l=(0,n.default)(i)),l){let u=i[this.HASH_TAG];return u===void 0?this.h:this.H[u]}else return this.g[i]||this.h}clear(){let i=this.HASH_TAG;this.H.forEach(function(l){delete l.u[i]}),this.H=[],this.g={},Object.setPrototypeOf(this.g,null),this.i=0,this.p=this._=this.h.L=this.h.B=this.h}eraseElementByKey(i,l){let u;if(l===void 0&&(l=(0,n.default)(i)),l){let c=i[this.HASH_TAG];if(c===void 0)return!1;delete i[this.HASH_TAG],u=this.H[c],delete this.H[c]}else{if(u=this.g[i],u===void 0)return!1;delete this.g[i]}return this.V(u),!0}eraseElementByIterator(i){let l=i.o;return l===this.h&&(0,r.throwIteratorAccessError)(),this.V(l),i.next()}eraseElementByPos(i){if(i<0||i>this.i-1)throw new RangeError;let l=this.p;for(;i--;)l=l.B;return this.V(l),this.i}};e.HashContainer=a}),jXe=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"t",{value:!0}),e.default=void 0;var t=ER(),n=Sa(),r=class CR extends t.HashContainerIterator{constructor(i,l,u,c){super(i,l,c),this.container=u}get pointer(){return this.o===this.h&&(0,n.throwIteratorAccessError)(),this.o.u}copy(){return new CR(this.o,this.h,this.container,this.iteratorType)}},o=class extends t.HashContainer{constructor(a=[]){super();let i=this;a.forEach(function(l){i.insert(l)})}begin(){return new r(this.p,this.h,this)}end(){return new r(this.h,this.h,this)}rBegin(){return new r(this._,this.h,this,1)}rEnd(){return new r(this.h,this.h,this,1)}front(){return this.p.u}back(){return this._.u}insert(a,i){return this.M(a,void 0,i)}getElementByPos(a){if(a<0||a>this.i-1)throw new RangeError;let i=this.p;for(;a--;)i=i.B;return i.u}find(a,i){let l=this.I(a,i);return new r(l,this.h,this)}forEach(a){let i=0,l=this.p;for(;l!==this.h;)a(l.u,i++,this),l=l.B}[Symbol.iterator](){return(function*(){let a=this.p;for(;a!==this.h;)yield a.u,a=a.B}).bind(this)()}},s=o;e.default=s}),UXe=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"t",{value:!0}),e.default=void 0;var t=ER(),n=o(SR()),r=Sa();function o(l){return l&&l.t?l:{default:l}}var s=class kR extends t.HashContainerIterator{constructor(u,c,d,f){super(u,c,f),this.container=d}get pointer(){this.o===this.h&&(0,r.throwIteratorAccessError)();let u=this;return new Proxy([],{get(c,d){if(d==="0")return u.o.u;if(d==="1")return u.o.l},set(c,d,f){if(d!=="1")throw new TypeError("props must be 1");return u.o.l=f,!0}})}copy(){return new kR(this.o,this.h,this.container,this.iteratorType)}},a=class extends t.HashContainer{constructor(l=[]){super();let u=this;l.forEach(function(c){u.setElement(c[0],c[1])})}begin(){return new s(this.p,this.h,this)}end(){return new s(this.h,this.h,this)}rBegin(){return new s(this._,this.h,this,1)}rEnd(){return new s(this.h,this.h,this,1)}front(){if(this.i!==0)return[this.p.u,this.p.l]}back(){if(this.i!==0)return[this._.u,this._.l]}setElement(l,u,c){return this.M(l,u,c)}getElementByKey(l,u){if(u===void 0&&(u=(0,n.default)(l)),u){let d=l[this.HASH_TAG];return d!==void 0?this.H[d].l:void 0}let c=this.g[l];return c?c.l:void 0}getElementByPos(l){if(l<0||l>this.i-1)throw new RangeError;let u=this.p;for(;l--;)u=u.B;return[u.u,u.l]}find(l,u){let c=this.I(l,u);return new s(c,this.h,this)}forEach(l){let u=0,c=this.p;for(;c!==this.h;)l([c.u,c.l],u++,this),c=c.B}[Symbol.iterator](){return(function*(){let l=this.p;for(;l!==this.h;)yield[l.u,l.l],l=l.B}).bind(this)()}},i=a;e.default=i}),WXe=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"t",{value:!0}),Object.defineProperty(e,"Deque",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(e,"HashMap",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(e,"HashSet",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(e,"LinkList",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(e,"OrderedMap",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(e,"OrderedSet",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(e,"PriorityQueue",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,"Queue",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"Stack",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"Vector",{enumerable:!0,get:function(){return o.default}});var t=d(PXe()),n=d(NXe()),r=d(LXe()),o=d(BXe()),s=d(DXe()),a=d(zXe()),i=d(HXe()),l=d(VXe()),u=d(jXe()),c=d(UXe());function d(f){return f&&f.t?f:{default:f}}}),qXe=Ke((e,t)=>{je(),We(),Ue();var n=WXe().OrderedSet,r=oa()("number-allocator:trace"),o=oa()("number-allocator:error");function s(i,l){this.low=i,this.high=l}s.prototype.equals=function(i){return this.low===i.low&&this.high===i.high},s.prototype.compare=function(i){return this.lowu.compare(c)),r("Create"),this.clear()}a.prototype.firstVacant=function(){return this.ss.size()===0?null:this.ss.front().low},a.prototype.alloc=function(){if(this.ss.size()===0)return r("alloc():empty"),null;let i=this.ss.begin(),l=i.pointer.low,u=i.pointer.high,c=l;return c+1<=u?this.ss.updateKeyByIterator(i,new s(l+1,u)):this.ss.eraseElementByPos(0),r("alloc():"+c),c},a.prototype.use=function(i){let l=new s(i,i),u=this.ss.lowerBound(l);if(!u.equals(this.ss.end())){let c=u.pointer.low,d=u.pointer.high;return u.pointer.equals(l)?(this.ss.eraseElementByIterator(u),r("use():"+i),!0):c>i?!1:c===i?(this.ss.updateKeyByIterator(u,new s(c+1,d)),r("use():"+i),!0):d===i?(this.ss.updateKeyByIterator(u,new s(c,d-1)),r("use():"+i),!0):(this.ss.updateKeyByIterator(u,new s(i+1,d)),this.ss.insert(new s(c,i-1)),r("use():"+i),!0)}return r("use():failed"),!1},a.prototype.free=function(i){if(ithis.max){o("free():"+i+" is out of range");return}let l=new s(i,i),u=this.ss.upperBound(l);if(u.equals(this.ss.end())){if(u.equals(this.ss.begin())){this.ss.insert(l);return}u.pre();let c=u.pointer.high;u.pointer.high+1===i?this.ss.updateKeyByIterator(u,new s(c,i)):this.ss.insert(l)}else if(u.equals(this.ss.begin()))if(i+1===u.pointer.low){let c=u.pointer.high;this.ss.updateKeyByIterator(u,new s(i,c))}else this.ss.insert(l);else{let c=u.pointer.low,d=u.pointer.high;u.pre();let f=u.pointer.low;u.pointer.high+1===i?i+1===c?(this.ss.eraseElementByIterator(u),this.ss.updateKeyByIterator(u,new s(f,d))):this.ss.updateKeyByIterator(u,new s(f,i)):i+1===c?(this.ss.eraseElementByIterator(u.next()),this.ss.insert(new s(i,d))):this.ss.insert(l)}r("free():"+i)},a.prototype.clear=function(){r("clear()"),this.ss.clear(),this.ss.insert(new s(this.min,this.max))},a.prototype.intervalCount=function(){return this.ss.size()},a.prototype.dump=function(){console.log("length:"+this.ss.size());for(let i of this.ss)console.log(i)},t.exports=a}),TR=Ke((e,t)=>{je(),We(),Ue();var n=qXe();t.exports.NumberAllocator=n}),KXe=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"__esModule",{value:!0});var t=RXe(),n=TR(),r=class{constructor(o){ut(this,"aliasToTopic");ut(this,"topicToAlias");ut(this,"max");ut(this,"numberAllocator");ut(this,"length");o>0&&(this.aliasToTopic=new t.LRUCache({max:o}),this.topicToAlias={},this.numberAllocator=new n.NumberAllocator(1,o),this.max=o,this.length=0)}put(o,s){if(s===0||s>this.max)return!1;let a=this.aliasToTopic.get(s);return a&&delete this.topicToAlias[a],this.aliasToTopic.set(s,o),this.topicToAlias[o]=s,this.numberAllocator.use(s),this.length=this.aliasToTopic.size,!0}getTopicByAlias(o){return this.aliasToTopic.get(o)}getAliasByTopic(o){let s=this.topicToAlias[o];return typeof s<"u"&&this.aliasToTopic.get(s),s}clear(){this.aliasToTopic.clear(),this.topicToAlias={},this.numberAllocator.clear(),this.length=0}getLruAlias(){return this.numberAllocator.firstVacant()||[...this.aliasToTopic.keys()][this.aliasToTopic.size-1]}};e.default=r}),GXe=Ke(e=>{je(),We(),Ue();var t=e&&e.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(e,"__esModule",{value:!0});var n=Am(),r=t(KXe()),o=ac(),s=(a,i)=>{a.log("_handleConnack");let{options:l}=a,u=l.protocolVersion===5?i.reasonCode:i.returnCode;if(clearTimeout(a.connackTimer),delete a.topicAliasSend,i.properties){if(i.properties.topicAliasMaximum){if(i.properties.topicAliasMaximum>65535){a.emit("error",new Error("topicAliasMaximum from broker is out of range"));return}i.properties.topicAliasMaximum>0&&(a.topicAliasSend=new r.default(i.properties.topicAliasMaximum))}i.properties.serverKeepAlive&&l.keepalive&&(l.keepalive=i.properties.serverKeepAlive),i.properties.maximumPacketSize&&(l.properties||(l.properties={}),l.properties.maximumPacketSize=i.properties.maximumPacketSize)}if(u===0)a.reconnecting=!1,a._onConnect(i);else if(u>0){let c=new o.ErrorWithReasonCode(`Connection refused: ${n.ReasonCodes[u]}`,u);a.emit("error",c),a.options.reconnectOnConnackError&&a._cleanUp(!0)}};e.default=s}),YXe=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"__esModule",{value:!0});var t=(n,r,o)=>{n.log("handling pubrel packet");let s=typeof o<"u"?o:n.noop,{messageId:a}=r,i={cmd:"pubcomp",messageId:a};n.incomingStore.get(r,(l,u)=>{l?n._sendPacket(i,s):(n.emit("message",u.topic,u.payload,u),n.handleMessage(u,c=>{if(c)return s(c);n.incomingStore.del(u,n.noop),n._sendPacket(i,s)}))})};e.default=t}),XXe=Ke(e=>{je(),We(),Ue();var t=e&&e.__importDefault||function(l){return l&&l.__esModule?l:{default:l}};Object.defineProperty(e,"__esModule",{value:!0});var n=t(AXe()),r=t(OXe()),o=t(GXe()),s=t(Am()),a=t(YXe()),i=(l,u,c)=>{let{options:d}=l;if(d.protocolVersion===5&&d.properties&&d.properties.maximumPacketSize&&d.properties.maximumPacketSize{je(),We(),Ue(),Object.defineProperty(e,"__esModule",{value:!0});var t=class{constructor(){ut(this,"nextId");this.nextId=Math.max(1,Math.floor(Math.random()*65535))}allocate(){let n=this.nextId++;return this.nextId===65536&&(this.nextId=1),n}getLastAllocated(){return this.nextId===1?65535:this.nextId-1}register(n){return!0}deallocate(n){}clear(){}};e.default=t}),JXe=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"__esModule",{value:!0});var t=class{constructor(n){ut(this,"aliasToTopic");ut(this,"max");ut(this,"length");this.aliasToTopic={},this.max=n}put(n,r){return r===0||r>this.max?!1:(this.aliasToTopic[r]=n,this.length=Object.keys(this.aliasToTopic).length,!0)}getTopicByAlias(n){return this.aliasToTopic[n]}clear(){this.aliasToTopic={}}};e.default=t}),QXe=Ke(e=>{je(),We(),Ue();var t=e&&e.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(e,"__esModule",{value:!0}),e.TypedEventEmitter=void 0;var n=t((pl(),mn(pi))),r=ac(),o=class{};e.TypedEventEmitter=o,(0,r.applyMixin)(o,n.default)}),Mm=Ke((e,t)=>{je(),We(),Ue();function n(r){"@babel/helpers - typeof";return t.exports=n=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(o){return typeof o}:function(o){return o&&typeof Symbol=="function"&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},t.exports.__esModule=!0,t.exports.default=t.exports,n(r)}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports}),ZXe=Ke((e,t)=>{je(),We(),Ue();var n=Mm().default;function r(o,s){if(n(o)!="object"||!o)return o;var a=o[Symbol.toPrimitive];if(a!==void 0){var i=a.call(o,s||"default");if(n(i)!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(o)}t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports}),eJe=Ke((e,t)=>{je(),We(),Ue();var n=Mm().default,r=ZXe();function o(s){var a=r(s,"string");return n(a)=="symbol"?a:a+""}t.exports=o,t.exports.__esModule=!0,t.exports.default=t.exports}),tJe=Ke((e,t)=>{je(),We(),Ue();var n=eJe();function r(o,s,a){return(s=n(s))in o?Object.defineProperty(o,s,{value:a,enumerable:!0,configurable:!0,writable:!0}):o[s]=a,o}t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports}),nJe=Ke((e,t)=>{je(),We(),Ue();function n(r){if(Array.isArray(r))return r}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports}),rJe=Ke((e,t)=>{je(),We(),Ue();function n(r,o){var s=r==null?null:typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(s!=null){var a,i,l,u,c=[],d=!0,f=!1;try{if(l=(s=s.call(r)).next,o===0){if(Object(s)!==s)return;d=!1}else for(;!(d=(a=l.call(s)).done)&&(c.push(a.value),c.length!==o);d=!0);}catch(p){f=!0,i=p}finally{try{if(!d&&s.return!=null&&(u=s.return(),Object(u)!==u))return}finally{if(f)throw i}}return c}}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports}),oJe=Ke((e,t)=>{je(),We(),Ue();function n(r,o){(o==null||o>r.length)&&(o=r.length);for(var s=0,a=Array(o);s{je(),We(),Ue();var n=oJe();function r(o,s){if(o){if(typeof o=="string")return n(o,s);var a={}.toString.call(o).slice(8,-1);return a==="Object"&&o.constructor&&(a=o.constructor.name),a==="Map"||a==="Set"?Array.from(o):a==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?n(o,s):void 0}}t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports}),aJe=Ke((e,t)=>{je(),We(),Ue();function n(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports}),iJe=Ke((e,t)=>{je(),We(),Ue();var n=nJe(),r=rJe(),o=sJe(),s=aJe();function a(i,l){return n(i)||r(i,l)||o(i,l)||s()}t.exports=a,t.exports.__esModule=!0,t.exports.default=t.exports}),xR=Ke((e,t)=>{je(),We(),Ue(),function(n,r){typeof e=="object"&&typeof t<"u"?r(e):typeof define=="function"&&define.amd?define(["exports"],r):(n=typeof globalThis<"u"?globalThis:n||self,r(n.fastUniqueNumbers={}))}(e,function(n){var r=function(p){return function(m){var v=p(m);return m.add(v),v}},o=function(p){return function(m,v){return p.set(m,v),v}},s=Number.MAX_SAFE_INTEGER===void 0?9007199254740991:Number.MAX_SAFE_INTEGER,a=536870912,i=a*2,l=function(p,m){return function(v){var g=m.get(v),b=g===void 0?v.size:gs)throw new Error("Congratulations, you created a collection of unique numbers which uses all available integers!");for(;v.has(b);)b=Math.floor(Math.random()*s);return p(v,b)}},u=new WeakMap,c=o(u),d=l(c,u),f=r(d);n.addUniqueNumber=f,n.generateUniqueNumber=d})}),lJe=Ke((e,t)=>{je(),We(),Ue();function n(o,s,a,i,l,u,c){try{var d=o[u](c),f=d.value}catch(p){return void a(p)}d.done?s(f):Promise.resolve(f).then(i,l)}function r(o){return function(){var s=this,a=arguments;return new Promise(function(i,l){var u=o.apply(s,a);function c(f){n(u,i,l,c,d,"next",f)}function d(f){n(u,i,l,c,d,"throw",f)}c(void 0)})}}t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports}),IR=Ke((e,t)=>{je(),We(),Ue();function n(r,o){this.v=r,this.k=o}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports}),AR=Ke((e,t)=>{je(),We(),Ue();function n(r,o,s,a){var i=Object.defineProperty;try{i({},"",{})}catch{i=0}t.exports=n=function(l,u,c,d){function f(p,m){n(l,p,function(v){return this._invoke(p,m,v)})}u?i?i(l,u,{value:c,enumerable:!d,configurable:!d,writable:!d}):l[u]=c:(f("next",0),f("throw",1),f("return",2))},t.exports.__esModule=!0,t.exports.default=t.exports,n(r,o,s,a)}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports}),MR=Ke((e,t)=>{je(),We(),Ue();var n=AR();function r(){var o,s,a=typeof Symbol=="function"?Symbol:{},i=a.iterator||"@@iterator",l=a.toStringTag||"@@toStringTag";function u(b,_,y,S){var w=_&&_.prototype instanceof d?_:d,E=Object.create(w.prototype);return n(E,"_invoke",function(T,C,$){var x,N,I,L=0,F=$||[],B=!1,U={p:0,n:0,v:o,a:P,f:P.bind(o,4),d:function(O,H){return x=O,N=0,I=o,U.n=H,c}};function P(O,H){for(N=O,I=H,s=0;!B&&L&&!q&&s3?(q=Q===H)&&(I=te[(N=te[4])?5:(N=3,3)],te[4]=te[5]=o):te[0]<=V&&((q=O<2&&VH||H>Q)&&(te[4]=O,te[5]=H,U.n=Q,N=0))}if(q||O>1)return c;throw B=!0,H}return function(O,H,q){if(L>1)throw TypeError("Generator is already running");for(B&&H===1&&P(H,q),N=H,I=q;(s=N<2?o:I)||!B;){x||(N?N<3?(N>1&&(U.n=-1),P(N,I)):U.n=I:U.v=I);try{if(L=2,x){if(N||(O="next"),s=x[O]){if(!(s=s.call(x,I)))throw TypeError("iterator result is not an object");if(!s.done)return s;I=s.value,N<2&&(N=0)}else N===1&&(s=x.return)&&s.call(x),N<2&&(I=TypeError("The iterator does not provide a '"+O+"' method"),N=1);x=o}else if((s=(B=U.n<0)?I:T.call(C,U))!==c)break}catch(te){x=o,N=1,I=te}finally{L=1}}return{value:s,done:B}}}(b,y,S),!0),E}var c={};function d(){}function f(){}function p(){}s=Object.getPrototypeOf;var m=[][i]?s(s([][i]())):(n(s={},i,function(){return this}),s),v=p.prototype=d.prototype=Object.create(m);function g(b){return Object.setPrototypeOf?Object.setPrototypeOf(b,p):(b.__proto__=p,n(b,l,"GeneratorFunction")),b.prototype=Object.create(v),b}return f.prototype=p,n(v,"constructor",p),n(p,"constructor",f),f.displayName="GeneratorFunction",n(p,l,"GeneratorFunction"),n(v),n(v,l,"Generator"),n(v,i,function(){return this}),n(v,"toString",function(){return"[object Generator]"}),(t.exports=r=function(){return{w:u,m:g}},t.exports.__esModule=!0,t.exports.default=t.exports)()}t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports}),OR=Ke((e,t)=>{je(),We(),Ue();var n=IR(),r=AR();function o(s,a){function i(u,c,d,f){try{var p=s[u](c),m=p.value;return m instanceof n?a.resolve(m.v).then(function(v){i("next",v,d,f)},function(v){i("throw",v,d,f)}):a.resolve(m).then(function(v){p.value=v,d(p)},function(v){return i("throw",v,d,f)})}catch(v){f(v)}}var l;this.next||(r(o.prototype),r(o.prototype,typeof Symbol=="function"&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),r(this,"_invoke",function(u,c,d){function f(){return new a(function(p,m){i(u,d,p,m)})}return l=l?l.then(f,f):f()},!0)}t.exports=o,t.exports.__esModule=!0,t.exports.default=t.exports}),RR=Ke((e,t)=>{je(),We(),Ue();var n=MR(),r=OR();function o(s,a,i,l,u){return new r(n().w(s,a,i,l),u||Promise)}t.exports=o,t.exports.__esModule=!0,t.exports.default=t.exports}),uJe=Ke((e,t)=>{je(),We(),Ue();var n=RR();function r(o,s,a,i,l){var u=n(o,s,a,i,l);return u.next().then(function(c){return c.done?c.value:u.next()})}t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports}),cJe=Ke((e,t)=>{je(),We(),Ue();function n(r){var o=Object(r),s=[];for(var a in o)s.unshift(a);return function i(){for(;s.length;)if((a=s.pop())in o)return i.value=a,i.done=!1,i;return i.done=!0,i}}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports}),dJe=Ke((e,t)=>{je(),We(),Ue();var n=Mm().default;function r(o){if(o!=null){var s=o[typeof Symbol=="function"&&Symbol.iterator||"@@iterator"],a=0;if(s)return s.call(o);if(typeof o.next=="function")return o;if(!isNaN(o.length))return{next:function(){return o&&a>=o.length&&(o=void 0),{value:o&&o[a++],done:!o}}}}throw new TypeError(n(o)+" is not iterable")}t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports}),fJe=Ke((e,t)=>{je(),We(),Ue();var n=IR(),r=MR(),o=uJe(),s=RR(),a=OR(),i=cJe(),l=dJe();function u(){var c=r(),d=c.m(u),f=(Object.getPrototypeOf?Object.getPrototypeOf(d):d.__proto__).constructor;function p(g){var b=typeof g=="function"&&g.constructor;return!!b&&(b===f||(b.displayName||b.name)==="GeneratorFunction")}var m={throw:1,return:2,break:3,continue:3};function v(g){var b,_;return function(y){b||(b={stop:function(){return _(y.a,2)},catch:function(){return y.v},abrupt:function(S,w){return _(y.a,m[S],w)},delegateYield:function(S,w,E){return b.resultName=w,_(y.d,l(S),E)},finish:function(S){return _(y.f,S)}},_=function(S,w,E){y.p=b.prev,y.n=b.next;try{return S(w,E)}finally{b.next=y.n}}),b.resultName&&(b[b.resultName]=y.v,b.resultName=void 0),b.sent=y.v,b.next=y.n;try{return g.call(this,b)}finally{y.p=b.prev,y.n=b.next}}}return(t.exports=u=function(){return{wrap:function(g,b,_,y){return c.w(v(g),b,_,y&&y.reverse())},isGeneratorFunction:p,mark:c.m,awrap:function(g,b){return new n(g,b)},AsyncIterator:a,async:function(g,b,_,y,S){return(p(b)?s:o)(v(g),b,_,y,S)},keys:i,values:l}},t.exports.__esModule=!0,t.exports.default=t.exports)()}t.exports=u,t.exports.__esModule=!0,t.exports.default=t.exports}),pJe=Ke((e,t)=>{je(),We(),Ue();var n=fJe()();t.exports=n;try{regeneratorRuntime=n}catch{typeof globalThis=="object"?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}}),hJe=Ke((e,t)=>{je(),We(),Ue(),function(n,r){typeof e=="object"&&typeof t<"u"?r(e,tJe(),iJe(),xR(),lJe(),pJe()):typeof define=="function"&&define.amd?define(["exports","@babel/runtime/helpers/defineProperty","@babel/runtime/helpers/slicedToArray","fast-unique-numbers","@babel/runtime/helpers/asyncToGenerator","@babel/runtime/regenerator"],r):(n=typeof globalThis<"u"?globalThis:n||self,r(n.brokerFactory={},n._defineProperty,n._slicedToArray,n.fastUniqueNumbers,n._asyncToGenerator,n._regeneratorRuntime))}(e,function(n,r,o,s,a,i){var l=function(_){return typeof _.start=="function"},u=new WeakMap;function c(_,y){var S=Object.keys(_);if(Object.getOwnPropertySymbols){var w=Object.getOwnPropertySymbols(_);y&&(w=w.filter(function(E){return Object.getOwnPropertyDescriptor(_,E).enumerable})),S.push.apply(S,w)}return S}function d(_){for(var y=1;y1&&arguments[1]!==void 0?arguments[1]:null,U=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return new Promise(function(P,O){var H=s.generateUniqueNumber(w);w.set(H,{reject:O,resolve:P}),B===null?S.postMessage({id:H,method:F},U):S.postMessage({id:H,method:F,params:B},U)})},T=function(F,B){var U=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];S.postMessage({id:null,method:F,params:B},U)},C={},$=0,x=Object.entries(y);${je(),We(),Ue(),function(n,r){typeof e=="object"&&typeof t<"u"?r(e,Mm(),hJe(),xR()):typeof define=="function"&&define.amd?define(["exports","@babel/runtime/helpers/typeof","broker-factory","fast-unique-numbers"],r):(n=typeof globalThis<"u"?globalThis:n||self,r(n.workerTimersBroker={},n._typeof,n.brokerFactory,n.fastUniqueNumbers))}(e,function(n,r,o,s){var a=new Map([[0,null]]),i=new Map([[0,null]]),l=o.createBroker({clearInterval:function(c){var d=c.call;return function(f){r(a.get(f))==="symbol"&&(a.set(f,null),d("clear",{timerId:f,timerType:"interval"}).then(function(){a.delete(f)}))}},clearTimeout:function(c){var d=c.call;return function(f){r(i.get(f))==="symbol"&&(i.set(f,null),d("clear",{timerId:f,timerType:"timeout"}).then(function(){i.delete(f)}))}},setInterval:function(c){var d=c.call;return function(f){for(var p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,m=arguments.length,v=new Array(m>2?m-2:0),g=2;g1&&arguments[1]!==void 0?arguments[1]:0,m=arguments.length,v=new Array(m>2?m-2:0),g=2;g{je(),We(),Ue(),function(n,r){typeof e=="object"&&typeof t<"u"?r(e,mJe()):typeof define=="function"&&define.amd?define(["exports","worker-timers-broker"],r):(n=typeof globalThis<"u"?globalThis:n||self,r(n.workerTimers={},n.workerTimersBroker))}(e,function(n,r){var o=function(d,f){var p=null;return function(){if(p!==null)return p;var m=new Blob([f],{type:"application/javascript; charset=utf-8"}),v=URL.createObjectURL(m);return p=d(v),setTimeout(function(){return URL.revokeObjectURL(v)}),p}},s=`(()=>{var e={45:(e,t,r)=>{var n=r(738).default;e.exports=function(e,t){if("object"!=n(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)},e.exports.__esModule=!0,e.exports.default=e.exports},79:e=>{e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var n=r(79);e.exports=function(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}},e.exports.__esModule=!0,e.exports.default=e.exports},156:e=>{e.exports=function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,u,a,i=[],s=!0,c=!1;try{if(u=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=u.call(r)).done)&&(i.push(n.value),i.length!==t);s=!0);}catch(e){c=!0,o=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return i}},e.exports.__esModule=!0,e.exports.default=e.exports},172:e=>{e.exports=function(e,t){this.v=e,this.k=t},e.exports.__esModule=!0,e.exports.default=e.exports},293:e=>{function t(e,t,r,n,o,u,a){try{var i=e[u](a),s=i.value}catch(e){return void r(e)}i.done?t(s):Promise.resolve(s).then(n,o)}e.exports=function(e){return function(){var r=this,n=arguments;return new Promise((function(o,u){var a=e.apply(r,n);function i(e){t(a,o,u,i,s,"next",e)}function s(e){t(a,o,u,i,s,"throw",e)}i(void 0)}))}},e.exports.__esModule=!0,e.exports.default=e.exports},373:e=>{e.exports=function(e){var t=Object(e),r=[];for(var n in t)r.unshift(n);return function e(){for(;r.length;)if((n=r.pop())in t)return e.value=n,e.done=!1,e;return e.done=!0,e}},e.exports.__esModule=!0,e.exports.default=e.exports},389:function(e,t){!function(e){"use strict";var t=function(e){return function(t){var r=e(t);return t.add(r),r}},r=function(e){return function(t,r){return e.set(t,r),r}},n=void 0===Number.MAX_SAFE_INTEGER?9007199254740991:Number.MAX_SAFE_INTEGER,o=536870912,u=2*o,a=function(e,t){return function(r){var a=t.get(r),i=void 0===a?r.size:an)throw new Error("Congratulations, you created a collection of unique numbers which uses all available integers!");for(;r.has(i);)i=Math.floor(Math.random()*n);return e(r,i)}},i=new WeakMap,s=r(i),c=a(s,i),f=t(c);e.addUniqueNumber=f,e.generateUniqueNumber=c}(t)},472:function(e,t,r){!function(e,t,r,n){"use strict";var o=function(e,t){return function(r){var o=t.get(r);if(void 0===o)return Promise.resolve(!1);var u=n(o,2),a=u[0],i=u[1];return e(a),t.delete(r),i(!1),Promise.resolve(!0)}},u=function(e,t){var r=function(n,o,u,a){var i=n-e.now();i>0?o.set(a,[t(r,i,n,o,u,a),u]):(o.delete(a),u(!0))};return r},a=function(e,t,r,n){return function(o,u,a){var i=o+u-t.timeOrigin,s=i-t.now();return new Promise((function(t){e.set(a,[r(n,s,i,e,t,a),t])}))}},i=new Map,s=o(globalThis.clearTimeout,i),c=new Map,f=o(globalThis.clearTimeout,c),l=u(performance,globalThis.setTimeout),p=a(i,performance,globalThis.setTimeout,l),d=a(c,performance,globalThis.setTimeout,l);r.createWorker(self,{clear:function(){var r=e(t.mark((function e(r){var n,o,u;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.timerId,o=r.timerType,e.next=1,"interval"===o?s(n):f(n);case 1:return u=e.sent,e.abrupt("return",{result:u});case 2:case"end":return e.stop()}}),e)})));function n(e){return r.apply(this,arguments)}return n}(),set:function(){var r=e(t.mark((function e(r){var n,o,u,a,i;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.delay,o=r.now,u=r.timerId,a=r.timerType,e.next=1,("interval"===a?p:d)(n,o,u);case 1:return i=e.sent,e.abrupt("return",{result:i});case 2:case"end":return e.stop()}}),e)})));function n(e){return r.apply(this,arguments)}return n}()})}(r(293),r(756),r(623),r(715))},546:e=>{function t(r,n,o,u){var a=Object.defineProperty;try{a({},"",{})}catch(r){a=0}e.exports=t=function(e,r,n,o){if(r)a?a(e,r,{value:n,enumerable:!o,configurable:!o,writable:!o}):e[r]=n;else{var u=function(r,n){t(e,r,(function(e){return this._invoke(r,n,e)}))};u("next",0),u("throw",1),u("return",2)}},e.exports.__esModule=!0,e.exports.default=e.exports,t(r,n,o,u)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},579:(e,t,r)=>{var n=r(738).default;e.exports=function(e){if(null!=e){var t=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],r=0;if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}throw new TypeError(n(e)+" is not iterable")},e.exports.__esModule=!0,e.exports.default=e.exports},623:function(e,t,r){!function(e,t,r,n,o){"use strict";var u={INTERNAL_ERROR:-32603,INVALID_PARAMS:-32602,METHOD_NOT_FOUND:-32601},a=function(e,t){return Object.assign(new Error(e),{status:t})},i=function(e){return a('The requested method called "'.concat(e,'" is not supported.'),u.METHOD_NOT_FOUND)},s=function(e){return a('The handler of the method called "'.concat(e,'" returned no required result.'),u.INTERNAL_ERROR)},c=function(e){return a('The handler of the method called "'.concat(e,'" returned an unexpected result.'),u.INTERNAL_ERROR)},f=function(e){return a('The specified parameter called "portId" with the given value "'.concat(e,'" does not identify a port connected to this worker.'),u.INVALID_PARAMS)},l=function(e,n){return function(){var o=t(r.mark((function t(o){var u,a,f,l,p,d,v,x,y,b,h,m,_,g,w;return r.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(u=o.data,a=u.id,f=u.method,l=u.params,p=n[f],t.prev=1,void 0!==p){t.next=2;break}throw i(f);case 2:if(void 0!==(d=void 0===l?p():p(l))){t.next=3;break}throw s(f);case 3:if(!(d instanceof Promise)){t.next=5;break}return t.next=4,d;case 4:g=t.sent,t.next=6;break;case 5:g=d;case 6:if(v=g,null!==a){t.next=8;break}if(void 0===v.result){t.next=7;break}throw c(f);case 7:t.next=10;break;case 8:if(void 0!==v.result){t.next=9;break}throw c(f);case 9:x=v.result,y=v.transferables,b=void 0===y?[]:y,e.postMessage({id:a,result:x},b);case 10:t.next=12;break;case 11:t.prev=11,w=t.catch(1),h=w.message,m=w.status,_=void 0===m?-32603:m,e.postMessage({error:{code:_,message:h},id:a});case 12:case"end":return t.stop()}}),t,null,[[1,11]])})));return function(e){return o.apply(this,arguments)}}()},p=function(){return new Promise((function(e){var t=new ArrayBuffer(0),r=new MessageChannel,n=r.port1,o=r.port2;n.onmessage=function(t){var r=t.data;return e(null!==r)},o.postMessage(t,[t])}))};function d(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function v(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:function(){return!0}),n=l(e,r);return e.addEventListener("message",n),function(){return e.removeEventListener("message",n)}};e.createWorker=b,e.isSupported=p}(t,r(293),r(756),r(693),r(389))},633:(e,t,r)=>{var n=r(172),o=r(993),u=r(869),a=r(887),i=r(791),s=r(373),c=r(579);function f(){"use strict";var t=o(),r=t.m(f),l=(Object.getPrototypeOf?Object.getPrototypeOf(r):r.__proto__).constructor;function p(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===l||"GeneratorFunction"===(t.displayName||t.name))}var d={throw:1,return:2,break:3,continue:3};function v(e){var t,r;return function(n){t||(t={stop:function(){return r(n.a,2)},catch:function(){return n.v},abrupt:function(e,t){return r(n.a,d[e],t)},delegateYield:function(e,o,u){return t.resultName=o,r(n.d,c(e),u)},finish:function(e){return r(n.f,e)}},r=function(e,r,o){n.p=t.prev,n.n=t.next;try{return e(r,o)}finally{t.next=n.n}}),t.resultName&&(t[t.resultName]=n.v,t.resultName=void 0),t.sent=n.v,t.next=n.n;try{return e.call(this,t)}finally{n.p=t.prev,n.n=t.next}}}return(e.exports=f=function(){return{wrap:function(e,r,n,o){return t.w(v(e),r,n,o&&o.reverse())},isGeneratorFunction:p,mark:t.m,awrap:function(e,t){return new n(e,t)},AsyncIterator:i,async:function(e,t,r,n,o){return(p(t)?a:u)(v(e),t,r,n,o)},keys:s,values:c}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=f,e.exports.__esModule=!0,e.exports.default=e.exports},693:(e,t,r)=>{var n=r(736);e.exports=function(e,t,r){return(t=n(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e},e.exports.__esModule=!0,e.exports.default=e.exports},715:(e,t,r)=>{var n=r(987),o=r(156),u=r(122),a=r(752);e.exports=function(e,t){return n(e)||o(e,t)||u(e,t)||a()},e.exports.__esModule=!0,e.exports.default=e.exports},736:(e,t,r)=>{var n=r(738).default,o=r(45);e.exports=function(e){var t=o(e,"string");return"symbol"==n(t)?t:t+""},e.exports.__esModule=!0,e.exports.default=e.exports},738:e=>{function t(r){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},752:e=>{e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.__esModule=!0,e.exports.default=e.exports},756:(e,t,r)=>{var n=r(633)();e.exports=n;try{regeneratorRuntime=n}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}},791:(e,t,r)=>{var n=r(172),o=r(546);e.exports=function e(t,r){function u(e,o,a,i){try{var s=t[e](o),c=s.value;return c instanceof n?r.resolve(c.v).then((function(e){u("next",e,a,i)}),(function(e){u("throw",e,a,i)})):r.resolve(c).then((function(e){s.value=e,a(s)}),(function(e){return u("throw",e,a,i)}))}catch(e){i(e)}}var a;this.next||(o(e.prototype),o(e.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",(function(){return this}))),o(this,"_invoke",(function(e,t,n){function o(){return new r((function(t,r){u(e,n,t,r)}))}return a=a?a.then(o,o):o()}),!0)},e.exports.__esModule=!0,e.exports.default=e.exports},869:(e,t,r)=>{var n=r(887);e.exports=function(e,t,r,o,u){var a=n(e,t,r,o,u);return a.next().then((function(e){return e.done?e.value:a.next()}))},e.exports.__esModule=!0,e.exports.default=e.exports},887:(e,t,r)=>{var n=r(993),o=r(791);e.exports=function(e,t,r,u,a){return new o(n().w(e,t,r,u),a||Promise)},e.exports.__esModule=!0,e.exports.default=e.exports},987:e=>{e.exports=function(e){if(Array.isArray(e))return e},e.exports.__esModule=!0,e.exports.default=e.exports},993:(e,t,r)=>{var n=r(546);function o(){var t,r,u="function"==typeof Symbol?Symbol:{},a=u.iterator||"@@iterator",i=u.toStringTag||"@@toStringTag";function s(e,o,u,a){var i=o&&o.prototype instanceof f?o:f,s=Object.create(i.prototype);return n(s,"_invoke",function(e,n,o){var u,a,i,s=0,f=o||[],l=!1,p={p:0,n:0,v:t,a:d,f:d.bind(t,4),d:function(e,r){return u=e,a=0,i=t,p.n=r,c}};function d(e,n){for(a=e,i=n,r=0;!l&&s&&!o&&r3?(o=v===n)&&(i=u[(a=u[4])?5:(a=3,3)],u[4]=u[5]=t):u[0]<=d&&((o=e<2&&dn||n>v)&&(u[4]=e,u[5]=n,p.n=v,a=0))}if(o||e>1)return c;throw l=!0,n}return function(o,f,v){if(s>1)throw TypeError("Generator is already running");for(l&&1===f&&d(f,v),a=f,i=v;(r=a<2?t:i)||!l;){u||(a?a<3?(a>1&&(p.n=-1),d(a,i)):p.n=i:p.v=i);try{if(s=2,u){if(a||(o="next"),r=u[o]){if(!(r=r.call(u,i)))throw TypeError("iterator result is not an object");if(!r.done)return r;i=r.value,a<2&&(a=0)}else 1===a&&(r=u.return)&&r.call(u),a<2&&(i=TypeError("The iterator does not provide a '"+o+"' method"),a=1);u=t}else if((r=(l=p.n<0)?i:e.call(n,p))!==c)break}catch(e){u=t,a=1,i=e}finally{s=1}}return{value:r,done:l}}}(e,u,a),!0),s}var c={};function f(){}function l(){}function p(){}r=Object.getPrototypeOf;var d=[][a]?r(r([][a]())):(n(r={},a,(function(){return this})),r),v=p.prototype=f.prototype=Object.create(d);function x(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,n(e,i,"GeneratorFunction")),e.prototype=Object.create(v),e}return l.prototype=p,n(v,"constructor",p),n(p,"constructor",l),l.displayName="GeneratorFunction",n(p,i,"GeneratorFunction"),n(v),n(v,i,"Generator"),n(v,a,(function(){return this})),n(v,"toString",(function(){return"[object Generator]"})),(e.exports=o=function(){return{w:s,m:x}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var u=t[n]={exports:{}};return e[n].call(u.exports,u,u.exports,r),u.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";r(472)})()})();`,a=o(r.load,s),i=function(d){return a().clearInterval(d)},l=function(d){return a().clearTimeout(d)},u=function(){var d;return(d=a()).setInterval.apply(d,arguments)},c=function(){var d;return(d=a()).setTimeout.apply(d,arguments)};n.clearInterval=i,n.clearTimeout=l,n.setInterval=u,n.setTimeout=c})}),Om=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"__esModule",{value:!0}),e.isReactNativeBrowser=e.isWebWorker=void 0;var t=()=>{var s;return typeof window<"u"?typeof navigator<"u"&&((s=navigator.userAgent)==null?void 0:s.toLowerCase().indexOf(" electron/"))>-1&&(nn!=null&&nn.versions)?!Object.prototype.hasOwnProperty.call(nn.versions,"electron"):typeof window.document<"u":!1},n=()=>{var s,a;return!!(typeof self=="object"&&((a=(s=self==null?void 0:self.constructor)==null?void 0:s.name)!=null&&a.includes("WorkerGlobalScope")))},r=()=>typeof navigator<"u"&&navigator.product==="ReactNative",o=t()||n()||r();e.isWebWorker=n(),e.isReactNativeBrowser=r(),e.default=o}),gJe=Ke(e=>{je(),We(),Ue();var t=e&&e.__createBinding||(Object.create?function(u,c,d,f){f===void 0&&(f=d);var p=Object.getOwnPropertyDescriptor(c,d);(!p||("get"in p?!c.__esModule:p.writable||p.configurable))&&(p={enumerable:!0,get:function(){return c[d]}}),Object.defineProperty(u,f,p)}:function(u,c,d,f){f===void 0&&(f=d),u[f]=c[d]}),n=e&&e.__setModuleDefault||(Object.create?function(u,c){Object.defineProperty(u,"default",{enumerable:!0,value:c})}:function(u,c){u.default=c}),r=e&&e.__importStar||function(){var u=function(c){return u=Object.getOwnPropertyNames||function(d){var f=[];for(var p in d)Object.prototype.hasOwnProperty.call(d,p)&&(f[f.length]=p);return f},u(c)};return function(c){if(c&&c.__esModule)return c;var d={};if(c!=null)for(var f=u(c),p=0;psetInterval(u,c),clear:u=>clearInterval(u)},l=u=>{switch(u){case"native":return i;case"worker":return a;case"auto":default:return s.default&&!s.isWebWorker&&!s.isReactNativeBrowser?a:i}};e.default=l}),PR=Ke(e=>{je(),We(),Ue();var t=e&&e.__importDefault||function(o){return o&&o.__esModule?o:{default:o}};Object.defineProperty(e,"__esModule",{value:!0});var n=t(gJe()),r=class{constructor(o,s){ut(this,"_keepalive");ut(this,"timerId");ut(this,"timer");ut(this,"destroyed",!1);ut(this,"counter");ut(this,"client");ut(this,"_keepaliveTimeoutTimestamp");ut(this,"_intervalEvery");this.client=o,this.timer=typeof s=="object"&&"set"in s&&"clear"in s?s:(0,n.default)(s),this.setKeepalive(o.options.keepalive)}get keepaliveTimeoutTimestamp(){return this._keepaliveTimeoutTimestamp}get intervalEvery(){return this._intervalEvery}get keepalive(){return this._keepalive}clear(){this.timerId&&(this.timer.clear(this.timerId),this.timerId=null)}setKeepalive(o){if(o*=1e3,isNaN(o)||o<=0||o>2147483647)throw new Error(`Keepalive value must be an integer between 0 and 2147483647. Provided value is ${o}`);this._keepalive=o,this.reschedule(),this.client.log(`KeepaliveManager: set keepalive to ${o}ms`)}destroy(){this.clear(),this.destroyed=!0}reschedule(){if(this.destroyed)return;this.clear(),this.counter=0;let o=Math.ceil(this._keepalive*1.5);this._keepaliveTimeoutTimestamp=Date.now()+o,this._intervalEvery=Math.ceil(this._keepalive/2),this.timerId=this.timer.set(()=>{this.destroyed||(this.counter+=1,this.counter===2?this.client.sendPing():this.counter>2&&this.client.onKeepaliveTimeout())},this._intervalEvery)}};e.default=r}),T_=Ke(e=>{var w;je(),We(),Ue();var t=e&&e.__createBinding||(Object.create?function(E,T,C,$){$===void 0&&($=C);var x=Object.getOwnPropertyDescriptor(T,C);(!x||("get"in x?!T.__esModule:x.writable||x.configurable))&&(x={enumerable:!0,get:function(){return T[C]}}),Object.defineProperty(E,$,x)}:function(E,T,C,$){$===void 0&&($=C),E[$]=T[C]}),n=e&&e.__setModuleDefault||(Object.create?function(E,T){Object.defineProperty(E,"default",{enumerable:!0,value:T})}:function(E,T){E.default=T}),r=e&&e.__importStar||function(){var E=function(T){return E=Object.getOwnPropertyNames||function(C){var $=[];for(var x in C)Object.prototype.hasOwnProperty.call(C,x)&&($[$.length]=x);return $},E(T)};return function(T){if(T&&T.__esModule)return T;var C={};if(T!=null)for(var $=E(T),x=0;x<$.length;x++)$[x]!=="default"&&t(C,T,$[x]);return n(C,T),C}}(),o=e&&e.__importDefault||function(E){return E&&E.__esModule?E:{default:E}};Object.defineProperty(e,"__esModule",{value:!0});var s=o(TXe()),a=ml(),i=o(xXe()),l=o(oa()),u=r(IXe()),c=o(cR()),d=o(XXe()),f=o($R()),p=o(JXe()),m=ac(),v=QXe(),g=o(PR()),b=r(Om()),_=globalThis.setImmediate||((...E)=>{let T=E.shift();(0,m.nextTick)(()=>{T(...E)})}),y={keepalive:60,reschedulePings:!0,protocolId:"MQTT",protocolVersion:4,reconnectPeriod:1e3,connectTimeout:30*1e3,clean:!0,resubscribe:!0,subscribeBatchSize:null,writeCache:!0,timerVariant:"auto"},S=(w=class extends v.TypedEventEmitter{constructor(C,$){super();ut(this,"connected");ut(this,"disconnecting");ut(this,"disconnected");ut(this,"reconnecting");ut(this,"incomingStore");ut(this,"outgoingStore");ut(this,"options");ut(this,"queueQoSZero");ut(this,"_reconnectCount");ut(this,"log");ut(this,"messageIdProvider");ut(this,"outgoing");ut(this,"messageIdToTopic");ut(this,"noop");ut(this,"keepaliveManager");ut(this,"stream");ut(this,"queue");ut(this,"streamBuilder");ut(this,"_resubscribeTopics");ut(this,"connackTimer");ut(this,"reconnectTimer");ut(this,"_storeProcessing");ut(this,"_packetIdsDuringStoreProcessing");ut(this,"_storeProcessingQueue");ut(this,"_firstConnection");ut(this,"topicAliasRecv");ut(this,"topicAliasSend");ut(this,"_deferredReconnect");ut(this,"connackPacket");this.options=$||{};for(let x in y)typeof this.options[x]>"u"?this.options[x]=y[x]:this.options[x]=$[x];this.log=this.options.log||(0,l.default)("mqttjs:client"),this.noop=this._noop.bind(this),this.log("MqttClient :: version:",w.VERSION),b.isWebWorker?this.log("MqttClient :: environment","webworker"):this.log("MqttClient :: environment",b.default?"browser":"node"),this.log("MqttClient :: options.protocol",$.protocol),this.log("MqttClient :: options.protocolVersion",$.protocolVersion),this.log("MqttClient :: options.username",$.username),this.log("MqttClient :: options.keepalive",$.keepalive),this.log("MqttClient :: options.reconnectPeriod",$.reconnectPeriod),this.log("MqttClient :: options.rejectUnauthorized",$.rejectUnauthorized),this.log("MqttClient :: options.properties.topicAliasMaximum",$.properties?$.properties.topicAliasMaximum:void 0),this.options.clientId=typeof $.clientId=="string"?$.clientId:w.defaultId(),this.log("MqttClient :: clientId",this.options.clientId),this.options.customHandleAcks=$.protocolVersion===5&&$.customHandleAcks?$.customHandleAcks:(...x)=>{x[3](null,0)},this.options.writeCache||(s.default.writeToStream.cacheNumbers=!1),this.streamBuilder=C,this.messageIdProvider=typeof this.options.messageIdProvider>"u"?new f.default:this.options.messageIdProvider,this.outgoingStore=$.outgoingStore||new c.default,this.incomingStore=$.incomingStore||new c.default,this.queueQoSZero=$.queueQoSZero===void 0?!0:$.queueQoSZero,this._resubscribeTopics={},this.messageIdToTopic={},this.keepaliveManager=null,this.connected=!1,this.disconnecting=!1,this.reconnecting=!1,this.queue=[],this.connackTimer=null,this.reconnectTimer=null,this._storeProcessing=!1,this._packetIdsDuringStoreProcessing={},this._storeProcessingQueue=[],this.outgoing={},this._firstConnection=!0,$.properties&&$.properties.topicAliasMaximum>0&&($.properties.topicAliasMaximum>65535?this.log("MqttClient :: options.properties.topicAliasMaximum is out of range"):this.topicAliasRecv=new p.default($.properties.topicAliasMaximum)),this.on("connect",()=>{let{queue:x}=this,N=()=>{let I=x.shift();this.log("deliver :: entry %o",I);let L=null;if(!I){this._resubscribe();return}L=I.packet,this.log("deliver :: call _sendPacket for %o",L);let F=!0;L.messageId&&L.messageId!==0&&(this.messageIdProvider.register(L.messageId)||(F=!1)),F?this._sendPacket(L,B=>{I.cb&&I.cb(B),N()}):(this.log("messageId: %d has already used. The message is skipped and removed.",L.messageId),N())};this.log("connect :: sending queued packets"),N()}),this.on("close",()=>{this.log("close :: connected set to `false`"),this.connected=!1,this.log("close :: clearing connackTimer"),clearTimeout(this.connackTimer),this._destroyKeepaliveManager(),this.topicAliasRecv&&this.topicAliasRecv.clear(),this.log("close :: calling _setupReconnect"),this._setupReconnect()}),this.options.manualConnect||(this.log("MqttClient :: setting up stream"),this.connect())}static defaultId(){return`mqttjs_${Math.random().toString(16).substr(2,8)}`}handleAuth(C,$){$()}handleMessage(C,$){$()}_nextId(){return this.messageIdProvider.allocate()}getLastMessageId(){return this.messageIdProvider.getLastAllocated()}connect(){var U;let C=new a.Writable,$=s.default.parser(this.options),x=null,N=[];this.log("connect :: calling method to clear reconnect"),this._clearReconnect(),this.disconnected&&!this.reconnecting&&(this.incomingStore=this.options.incomingStore||new c.default,this.outgoingStore=this.options.outgoingStore||new c.default,this.disconnecting=!1,this.disconnected=!1),this.log("connect :: using streamBuilder provided to client to create stream"),this.stream=this.streamBuilder(this),$.on("packet",P=>{this.log("parser :: on packet push to packets array."),N.push(P)});let I=()=>{this.log("work :: getting next packet in queue");let P=N.shift();if(P)this.log("work :: packet pulled from queue"),(0,d.default)(this,P,L);else{this.log("work :: no packets in queue");let O=x;x=null,this.log("work :: done flag is %s",!!O),O&&O()}},L=()=>{if(N.length)(0,m.nextTick)(I);else{let P=x;x=null,P()}};C._write=(P,O,H)=>{x=H,this.log("writable stream :: parsing buffer"),$.parse(P),I()};let F=P=>{this.log("streamErrorHandler :: error",P.message),P.code?(this.log("streamErrorHandler :: emitting error"),this.emit("error",P)):this.noop(P)};this.log("connect :: pipe stream to writable stream"),this.stream.pipe(C),this.stream.on("error",F),this.stream.on("close",()=>{this.log("(%s)stream :: on close",this.options.clientId),this._flushVolatile(),this.log("stream: emit close to MqttClient"),this.emit("close")}),this.log("connect: sending packet `connect`");let B={cmd:"connect",protocolId:this.options.protocolId,protocolVersion:this.options.protocolVersion,clean:this.options.clean,clientId:this.options.clientId,keepalive:this.options.keepalive,username:this.options.username,password:this.options.password,properties:this.options.properties};if(this.options.will&&(B.will={...this.options.will,payload:(U=this.options.will)==null?void 0:U.payload}),this.topicAliasRecv&&(B.properties||(B.properties={}),this.topicAliasRecv&&(B.properties.topicAliasMaximum=this.topicAliasRecv.max)),this._writePacket(B),$.on("error",this.emit.bind(this,"error")),this.options.properties){if(!this.options.properties.authenticationMethod&&this.options.properties.authenticationData)return this.end(()=>this.emit("error",new Error("Packet has no Authentication Method"))),this;if(this.options.properties.authenticationMethod&&this.options.authPacket&&typeof this.options.authPacket=="object"){let P={cmd:"auth",reasonCode:0,...this.options.authPacket};this._writePacket(P)}}return this.stream.setMaxListeners(1e3),clearTimeout(this.connackTimer),this.connackTimer=setTimeout(()=>{this.log("!!connectTimeout hit!! Calling _cleanUp with force `true`"),this.emit("error",new Error("connack timeout")),this._cleanUp(!0)},this.options.connectTimeout),this}publish(C,$,x,N){this.log("publish :: message `%s` to topic `%s`",$,C);let{options:I}=this;typeof x=="function"&&(N=x,x=null),x=x||{},x={qos:0,retain:!1,dup:!1,...x};let{qos:L,retain:F,dup:B,properties:U,cbStorePut:P}=x;if(this._checkDisconnecting(N))return this;let O=()=>{let H=0;if((L===1||L===2)&&(H=this._nextId(),H===null))return this.log("No messageId left"),!1;let q={cmd:"publish",topic:C,payload:$,qos:L,retain:F,messageId:H,dup:B};switch(I.protocolVersion===5&&(q.properties=U),this.log("publish :: qos",L),L){case 1:case 2:this.outgoing[q.messageId]={volatile:!1,cb:N||this.noop},this.log("MqttClient:publish: packet cmd: %s",q.cmd),this._sendPacket(q,void 0,P);break;default:this.log("MqttClient:publish: packet cmd: %s",q.cmd),this._sendPacket(q,N,P);break}return!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!O())&&this._storeProcessingQueue.push({invoke:O,cbStorePut:x.cbStorePut,callback:N}),this}publishAsync(C,$,x){return new Promise((N,I)=>{this.publish(C,$,x,(L,F)=>{L?I(L):N(F)})})}subscribe(C,$,x){let N=this.options.protocolVersion;typeof $=="function"&&(x=$),x=x||this.noop;let I=!1,L=[];typeof C=="string"?(C=[C],L=C):Array.isArray(C)?L=C:typeof C=="object"&&(I=C.resubscribe,delete C.resubscribe,L=Object.keys(C));let F=u.validateTopics(L);if(F!==null)return _(x,new Error(`Invalid topic ${F}`)),this;if(this._checkDisconnecting(x))return this.log("subscribe: discconecting true"),this;let B={qos:0};N===5&&(B.nl=!1,B.rap=!1,B.rh=0),$={...B,...$};let{properties:U}=$,P=[],O=(te,V)=>{if(V=V||$,!Object.prototype.hasOwnProperty.call(this._resubscribeTopics,te)||this._resubscribeTopics[te].qos{this.log("subscribe: array topic %s",te),O(te)}):Object.keys(C).forEach(te=>{this.log("subscribe: object topic %s, %o",te,C[te]),O(te,C[te])}),!P.length)return x(null,[]),this;let H=(te,V)=>{let Q={cmd:"subscribe",subscriptions:te,messageId:V};if(U&&(Q.properties=U),this.options.resubscribe){this.log("subscribe :: resubscribe true");let ie=[];te.forEach(ke=>{if(this.options.reconnectPeriod>0){let Y={qos:ke.qos};N===5&&(Y.nl=ke.nl||!1,Y.rap=ke.rap||!1,Y.rh=ke.rh||0,Y.properties=ke.properties),this._resubscribeTopics[ke.topic]=Y,ie.push(ke.topic)}}),this.messageIdToTopic[Q.messageId]=ie}let ge=new Promise((ie,ke)=>{this.outgoing[Q.messageId]={volatile:!0,cb(Y,K){if(!Y){let{granted:se}=K;for(let ne=0;ne{let te=this.options.subscribeBatchSize??P.length,V=[];for(let Q=0;Q{x(null,P,Q.at(-1))}).catch(Q=>{x(Q,P,Q.packet)}),!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!q())&&this._storeProcessingQueue.push({invoke:q,callback:x}),this}subscribeAsync(C,$){return new Promise((x,N)=>{this.subscribe(C,$,(I,L)=>{I?N(I):x(L)})})}unsubscribe(C,$,x){typeof C=="string"&&(C=[C]),typeof $=="function"&&(x=$),x=x||this.noop;let N=u.validateTopics(C);if(N!==null)return _(x,new Error(`Invalid topic ${N}`)),this;if(this._checkDisconnecting(x))return this;let I=()=>{let L=this._nextId();if(L===null)return this.log("No messageId left"),!1;let F={cmd:"unsubscribe",messageId:L,unsubscriptions:[]};return typeof C=="string"?F.unsubscriptions=[C]:Array.isArray(C)&&(F.unsubscriptions=C),this.options.resubscribe&&F.unsubscriptions.forEach(B=>{delete this._resubscribeTopics[B]}),typeof $=="object"&&$.properties&&(F.properties=$.properties),this.outgoing[F.messageId]={volatile:!0,cb:x},this.log("unsubscribe: call _sendPacket"),this._sendPacket(F),!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!I())&&this._storeProcessingQueue.push({invoke:I,callback:x}),this}unsubscribeAsync(C,$){return new Promise((x,N)=>{this.unsubscribe(C,$,(I,L)=>{I?N(I):x(L)})})}end(C,$,x){this.log("end :: (%s)",this.options.clientId),(C==null||typeof C!="boolean")&&(x=x||$,$=C,C=!1),typeof $!="object"&&(x=x||$,$=null),this.log("end :: cb? %s",!!x),(!x||typeof x!="function")&&(x=this.noop);let N=()=>{this.log("end :: closeStores: closing incoming and outgoing stores"),this.disconnected=!0,this.incomingStore.close(L=>{this.outgoingStore.close(F=>{if(this.log("end :: closeStores: emitting end"),this.emit("end"),x){let B=L||F;this.log("end :: closeStores: invoking callback with args"),x(B)}})}),this._deferredReconnect?this._deferredReconnect():(this.options.reconnectPeriod===0||this.options.manualConnect)&&(this.disconnecting=!1)},I=()=>{this.log("end :: (%s) :: finish :: calling _cleanUp with force %s",this.options.clientId,C),this._cleanUp(C,()=>{this.log("end :: finish :: calling process.nextTick on closeStores"),(0,m.nextTick)(N)},$)};return this.disconnecting?(x(),this):(this._clearReconnect(),this.disconnecting=!0,!C&&Object.keys(this.outgoing).length>0?(this.log("end :: (%s) :: calling finish in 10ms once outgoing is empty",this.options.clientId),this.once("outgoingEmpty",setTimeout.bind(null,I,10))):(this.log("end :: (%s) :: immediately calling finish",this.options.clientId),I()),this)}endAsync(C,$){return new Promise((x,N)=>{this.end(C,$,I=>{I?N(I):x()})})}removeOutgoingMessage(C){if(this.outgoing[C]){let{cb:$}=this.outgoing[C];this._removeOutgoingAndStoreMessage(C,()=>{$(new Error("Message removed"))})}return this}reconnect(C){this.log("client reconnect");let $=()=>{C?(this.options.incomingStore=C.incomingStore,this.options.outgoingStore=C.outgoingStore):(this.options.incomingStore=null,this.options.outgoingStore=null),this.incomingStore=this.options.incomingStore||new c.default,this.outgoingStore=this.options.outgoingStore||new c.default,this.disconnecting=!1,this.disconnected=!1,this._deferredReconnect=null,this._reconnect()};return this.disconnecting&&!this.disconnected?this._deferredReconnect=$:$(),this}_flushVolatile(){this.outgoing&&(this.log("_flushVolatile :: deleting volatile messages from the queue and setting their callbacks as error function"),Object.keys(this.outgoing).forEach(C=>{this.outgoing[C].volatile&&typeof this.outgoing[C].cb=="function"&&(this.outgoing[C].cb(new Error("Connection closed")),delete this.outgoing[C])}))}_flush(){this.outgoing&&(this.log("_flush: queue exists? %b",!!this.outgoing),Object.keys(this.outgoing).forEach(C=>{typeof this.outgoing[C].cb=="function"&&(this.outgoing[C].cb(new Error("Connection closed")),delete this.outgoing[C])}))}_removeTopicAliasAndRecoverTopicName(C){let $;C.properties&&($=C.properties.topicAlias);let x=C.topic.toString();if(this.log("_removeTopicAliasAndRecoverTopicName :: alias %d, topic %o",$,x),x.length===0){if(typeof $>"u")return new Error("Unregistered Topic Alias");if(x=this.topicAliasSend.getTopicByAlias($),typeof x>"u")return new Error("Unregistered Topic Alias");C.topic=x}$&&delete C.properties.topicAlias}_checkDisconnecting(C){return this.disconnecting&&(C&&C!==this.noop?C(new Error("client disconnecting")):this.emit("error",new Error("client disconnecting"))),this.disconnecting}_reconnect(){this.log("_reconnect: emitting reconnect to client"),this.emit("reconnect"),this.connected?(this.end(()=>{this.connect()}),this.log("client already connected. disconnecting first.")):(this.log("_reconnect: calling connect"),this.connect())}_setupReconnect(){!this.disconnecting&&!this.reconnectTimer&&this.options.reconnectPeriod>0?(this.reconnecting||(this.log("_setupReconnect :: emit `offline` state"),this.emit("offline"),this.log("_setupReconnect :: set `reconnecting` to `true`"),this.reconnecting=!0),this.log("_setupReconnect :: setting reconnectTimer for %d ms",this.options.reconnectPeriod),this.reconnectTimer=setInterval(()=>{this.log("reconnectTimer :: reconnect triggered!"),this._reconnect()},this.options.reconnectPeriod)):this.log("_setupReconnect :: doing nothing...")}_clearReconnect(){this.log("_clearReconnect : clearing reconnect timer"),this.reconnectTimer&&(clearInterval(this.reconnectTimer),this.reconnectTimer=null)}_cleanUp(C,$,x={}){if($&&(this.log("_cleanUp :: done callback provided for on stream close"),this.stream.on("close",$)),this.log("_cleanUp :: forced? %s",C),C)this.options.reconnectPeriod===0&&this.options.clean&&this._flush(),this.log("_cleanUp :: (%s) :: destroying stream",this.options.clientId),this.stream.destroy();else{let N={cmd:"disconnect",...x};this.log("_cleanUp :: (%s) :: call _sendPacket with disconnect packet",this.options.clientId),this._sendPacket(N,()=>{this.log("_cleanUp :: (%s) :: destroying stream",this.options.clientId),_(()=>{this.stream.end(()=>{this.log("_cleanUp :: (%s) :: stream destroyed",this.options.clientId)})})})}!this.disconnecting&&!this.reconnecting&&(this.log("_cleanUp :: client not disconnecting/reconnecting. Clearing and resetting reconnect."),this._clearReconnect(),this._setupReconnect()),this._destroyKeepaliveManager(),$&&!this.connected&&(this.log("_cleanUp :: (%s) :: removing stream `done` callback `close` listener",this.options.clientId),this.stream.removeListener("close",$),$())}_storeAndSend(C,$,x){this.log("storeAndSend :: store packet with cmd %s to outgoingStore",C.cmd);let N=C,I;if(N.cmd==="publish"&&(N=(0,i.default)(C),I=this._removeTopicAliasAndRecoverTopicName(N),I))return $&&$(I);this.outgoingStore.put(N,L=>{if(L)return $&&$(L);x(),this._writePacket(C,$)})}_applyTopicAlias(C){if(this.options.protocolVersion===5&&C.cmd==="publish"){let $;C.properties&&($=C.properties.topicAlias);let x=C.topic.toString();if(this.topicAliasSend)if($){if(x.length!==0&&(this.log("applyTopicAlias :: register topic: %s - alias: %d",x,$),!this.topicAliasSend.put(x,$)))return this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d",x,$),new Error("Sending Topic Alias out of range")}else x.length!==0&&(this.options.autoAssignTopicAlias?($=this.topicAliasSend.getAliasByTopic(x),$?(C.topic="",C.properties={...C.properties,topicAlias:$},this.log("applyTopicAlias :: auto assign(use) topic: %s - alias: %d",x,$)):($=this.topicAliasSend.getLruAlias(),this.topicAliasSend.put(x,$),C.properties={...C.properties,topicAlias:$},this.log("applyTopicAlias :: auto assign topic: %s - alias: %d",x,$))):this.options.autoUseTopicAlias&&($=this.topicAliasSend.getAliasByTopic(x),$&&(C.topic="",C.properties={...C.properties,topicAlias:$},this.log("applyTopicAlias :: auto use topic: %s - alias: %d",x,$))));else if($)return this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d",x,$),new Error("Sending Topic Alias out of range")}}_noop(C){this.log("noop ::",C)}_writePacket(C,$){this.log("_writePacket :: packet: %O",C),this.log("_writePacket :: emitting `packetsend`"),this.emit("packetsend",C),this.log("_writePacket :: writing to stream");let x=s.default.writeToStream(C,this.stream,this.options);this.log("_writePacket :: writeToStream result %s",x),!x&&$&&$!==this.noop?(this.log("_writePacket :: handle events on `drain` once through callback."),this.stream.once("drain",$)):$&&(this.log("_writePacket :: invoking cb"),$())}_sendPacket(C,$,x,N){this.log("_sendPacket :: (%s) :: start",this.options.clientId),x=x||this.noop,$=$||this.noop;let I=this._applyTopicAlias(C);if(I){$(I);return}if(!this.connected){if(C.cmd==="auth"){this._writePacket(C,$);return}this.log("_sendPacket :: client not connected. Storing packet offline."),this._storePacket(C,$,x);return}if(N){this._writePacket(C,$);return}switch(C.cmd){case"publish":break;case"pubrel":this._storeAndSend(C,$,x);return;default:this._writePacket(C,$);return}switch(C.qos){case 2:case 1:this._storeAndSend(C,$,x);break;case 0:default:this._writePacket(C,$);break}this.log("_sendPacket :: (%s) :: end",this.options.clientId)}_storePacket(C,$,x){this.log("_storePacket :: packet: %o",C),this.log("_storePacket :: cb? %s",!!$),x=x||this.noop;let N=C;if(N.cmd==="publish"){N=(0,i.default)(C);let L=this._removeTopicAliasAndRecoverTopicName(N);if(L)return $&&$(L)}let I=N.qos||0;I===0&&this.queueQoSZero||N.cmd!=="publish"?this.queue.push({packet:N,cb:$}):I>0?($=this.outgoing[N.messageId]?this.outgoing[N.messageId].cb:null,this.outgoingStore.put(N,L=>{if(L)return $&&$(L);x()})):$&&$(new Error("No connection to broker"))}_setupKeepaliveManager(){this.log("_setupKeepaliveManager :: keepalive %d (seconds)",this.options.keepalive),!this.keepaliveManager&&this.options.keepalive&&(this.keepaliveManager=new g.default(this,this.options.timerVariant))}_destroyKeepaliveManager(){this.keepaliveManager&&(this.log("_destroyKeepaliveManager :: destroying keepalive manager"),this.keepaliveManager.destroy(),this.keepaliveManager=null)}reschedulePing(C=!1){this.keepaliveManager&&this.options.keepalive&&(C||this.options.reschedulePings)&&this._reschedulePing()}_reschedulePing(){this.log("_reschedulePing :: rescheduling ping"),this.keepaliveManager.reschedule()}sendPing(){this.log("_sendPing :: sending pingreq"),this._sendPacket({cmd:"pingreq"})}onKeepaliveTimeout(){this.emit("error",new Error("Keepalive timeout")),this.log("onKeepaliveTimeout :: calling _cleanUp with force true"),this._cleanUp(!0)}_resubscribe(){this.log("_resubscribe");let C=Object.keys(this._resubscribeTopics);if(!this._firstConnection&&(this.options.clean||this.options.protocolVersion>=4&&!this.connackPacket.sessionPresent)&&C.length>0)if(this.options.resubscribe)if(this.options.protocolVersion===5){this.log("_resubscribe: protocolVersion 5");for(let $=0;${let x=this.outgoingStore.createStream(),N=()=>{x.destroy(),x=null,this._flushStoreProcessingQueue(),I()},I=()=>{this._storeProcessing=!1,this._packetIdsDuringStoreProcessing={}};this.once("close",N),x.on("error",F=>{I(),this._flushStoreProcessingQueue(),this.removeListener("close",N),this.emit("error",F)});let L=()=>{if(!x)return;let F=x.read(1),B;if(!F){x.once("readable",L);return}if(this._storeProcessing=!0,this._packetIdsDuringStoreProcessing[F.messageId]){L();return}!this.disconnecting&&!this.reconnectTimer?(B=this.outgoing[F.messageId]?this.outgoing[F.messageId].cb:null,this.outgoing[F.messageId]={volatile:!1,cb(U,P){B&&B(U,P),L()}},this._packetIdsDuringStoreProcessing[F.messageId]=!0,this.messageIdProvider.register(F.messageId)?this._sendPacket(F,void 0,void 0,!0):this.log("messageId: %d has already used.",F.messageId)):x.destroy&&x.destroy()};x.on("end",()=>{let F=!0;for(let B in this._packetIdsDuringStoreProcessing)if(!this._packetIdsDuringStoreProcessing[B]){F=!1;break}this.removeListener("close",N),F?(I(),this._invokeAllStoreProcessingQueue(),this.emit("connect",C)):$()}),L()};$()}_invokeStoreProcessingQueue(){if(!this._storeProcessing&&this._storeProcessingQueue.length>0){let C=this._storeProcessingQueue[0];if(C&&C.invoke())return this._storeProcessingQueue.shift(),!0}return!1}_invokeAllStoreProcessingQueue(){for(;this._invokeStoreProcessingQueue(););}_flushStoreProcessingQueue(){for(let C of this._storeProcessingQueue)C.cbStorePut&&C.cbStorePut(new Error("Connection closed")),C.callback&&C.callback(new Error("Connection closed"));this._storeProcessingQueue.splice(0)}_removeOutgoingAndStoreMessage(C,$){delete this.outgoing[C],this.outgoingStore.del({messageId:C},(x,N)=>{$(x,N),this.messageIdProvider.deallocate(C),this._invokeStoreProcessingQueue()})}},ut(w,"VERSION",m.MQTTJS_VERSION),w);e.default=S}),_Je=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"__esModule",{value:!0});var t=TR(),n=class{constructor(){ut(this,"numberAllocator");ut(this,"lastId");this.numberAllocator=new t.NumberAllocator(1,65535)}allocate(){return this.lastId=this.numberAllocator.alloc(),this.lastId}getLastAllocated(){return this.lastId}register(r){return this.numberAllocator.use(r)}deallocate(r){this.numberAllocator.free(r)}clear(){this.numberAllocator.clear()}};e.default=n});function yJe(){if($_)return Gp;$_=!0;let e=2147483647,t=36,n=1,r=26,o=38,s=700,a=72,i=128,l="-",u=/^xn--/,c=/[^\0-\x7F]/,d=/[\x2E\u3002\uFF0E\uFF61]/g,f={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},p=t-n,m=Math.floor,v=String.fromCharCode;function g(x){throw new RangeError(f[x])}function b(x,N){let I=[],L=x.length;for(;L--;)I[L]=N(x[L]);return I}function _(x,N){let I=x.split("@"),L="";I.length>1&&(L=I[0]+"@",x=I[1]),x=x.replace(d,".");let F=x.split("."),B=b(F,N).join(".");return L+B}function y(x){let N=[],I=0,L=x.length;for(;I=55296&&F<=56319&&IString.fromCodePoint(...x),w=function(x){return x>=48&&x<58?26+(x-48):x>=65&&x<91?x-65:x>=97&&x<123?x-97:t},E=function(x,N){return x+22+75*(x<26)-((N!=0)<<5)},T=function(x,N,I){let L=0;for(x=I?m(x/s):x>>1,x+=m(x/N);x>p*r>>1;L+=t)x=m(x/p);return m(L+(p+1)*x/(x+o))},C=function(x){let N=[],I=x.length,L=0,F=i,B=a,U=x.lastIndexOf(l);U<0&&(U=0);for(let P=0;P=128&&g("not-basic"),N.push(x.charCodeAt(P));for(let P=U>0?U+1:0;P=I&&g("invalid-input");let V=w(x.charCodeAt(P++));V>=t&&g("invalid-input"),V>m((e-L)/q)&&g("overflow"),L+=V*q;let Q=te<=B?n:te>=B+r?r:te-B;if(Vm(e/ge)&&g("overflow"),q*=ge}let H=N.length+1;B=T(L-O,H,O==0),m(L/H)>e-F&&g("overflow"),F+=m(L/H),L%=H,N.splice(L++,0,F)}return String.fromCodePoint(...N)},$=function(x){let N=[];x=y(x);let I=x.length,L=i,F=0,B=a;for(let O of x)O<128&&N.push(v(O));let U=N.length,P=U;for(U&&N.push(l);P=L&&qm((e-F)/H)&&g("overflow"),F+=(O-L)*H,L=O;for(let q of x)if(qe&&g("overflow"),q===L){let te=F;for(let V=t;;V+=t){let Q=V<=B?n:V>=B+r?r:V-B;if(te{je(),We(),Ue(),Gp={},$_=!1,Ba=yJe(),Ba.decode,Ba.encode,Ba.toASCII,Ba.toUnicode,Ba.ucs2,Ba.version});function wJe(){return I_||(I_=!0,x_=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var e={},t=Symbol("test"),n=Object(t);if(typeof t=="string"||Object.prototype.toString.call(t)!=="[object Symbol]"||Object.prototype.toString.call(n)!=="[object Symbol]")return!1;var r=42;e[t]=r;for(t in e)return!1;if(typeof Object.keys=="function"&&Object.keys(e).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(e).length!==0)return!1;var o=Object.getOwnPropertySymbols(e);if(o.length!==1||o[0]!==t||!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var s=Object.getOwnPropertyDescriptor(e,t);if(s.value!==r||s.enumerable!==!0)return!1}return!0}),x_}function SJe(){return M_||(M_=!0,A_=Error),A_}function EJe(){return R_||(R_=!0,O_=EvalError),O_}function CJe(){return N_||(N_=!0,P_=RangeError),P_}function kJe(){return B_||(B_=!0,L_=ReferenceError),L_}function NR(){return z_||(z_=!0,D_=SyntaxError),D_}function bf(){return H_||(H_=!0,F_=TypeError),F_}function TJe(){return j_||(j_=!0,V_=URIError),V_}function $Je(){if(U_)return Yp;U_=!0;var e=typeof Symbol<"u"&&Symbol,t=wJe();return Yp=function(){return typeof e!="function"||typeof Symbol!="function"||typeof e("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:t()},Yp}function xJe(){if(W_)return Xp;W_=!0;var e={__proto__:null,foo:{}},t=Object;return Xp=function(){return{__proto__:e}.foo===e.foo&&!(e instanceof t)},Xp}function IJe(){if(q_)return Jp;q_=!0;var e="Function.prototype.bind called on incompatible ",t=Object.prototype.toString,n=Math.max,r="[object Function]",o=function(i,l){for(var u=[],c=0;c"u"||!v?e:v(Uint8Array),_={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?e:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?e:ArrayBuffer,"%ArrayIteratorPrototype%":p&&v?v([][Symbol.iterator]()):e,"%AsyncFromSyncIteratorPrototype%":e,"%AsyncFunction%":g,"%AsyncGenerator%":g,"%AsyncGeneratorFunction%":g,"%AsyncIteratorPrototype%":g,"%Atomics%":typeof Atomics>"u"?e:Atomics,"%BigInt%":typeof BigInt>"u"?e:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?e:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?e:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?e:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":t,"%eval%":eval,"%EvalError%":n,"%Float32Array%":typeof Float32Array>"u"?e:Float32Array,"%Float64Array%":typeof Float64Array>"u"?e:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?e:FinalizationRegistry,"%Function%":l,"%GeneratorFunction%":g,"%Int8Array%":typeof Int8Array>"u"?e:Int8Array,"%Int16Array%":typeof Int16Array>"u"?e:Int16Array,"%Int32Array%":typeof Int32Array>"u"?e:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":p&&v?v(v([][Symbol.iterator]())):e,"%JSON%":typeof JSON=="object"?JSON:e,"%Map%":typeof Map>"u"?e:Map,"%MapIteratorPrototype%":typeof Map>"u"||!p||!v?e:v(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?e:Promise,"%Proxy%":typeof Proxy>"u"?e:Proxy,"%RangeError%":r,"%ReferenceError%":o,"%Reflect%":typeof Reflect>"u"?e:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?e:Set,"%SetIteratorPrototype%":typeof Set>"u"||!p||!v?e:v(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?e:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":p&&v?v(""[Symbol.iterator]()):e,"%Symbol%":p?Symbol:e,"%SyntaxError%":s,"%ThrowTypeError%":f,"%TypedArray%":b,"%TypeError%":a,"%Uint8Array%":typeof Uint8Array>"u"?e:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?e:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?e:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?e:Uint32Array,"%URIError%":i,"%WeakMap%":typeof WeakMap>"u"?e:WeakMap,"%WeakRef%":typeof WeakRef>"u"?e:WeakRef,"%WeakSet%":typeof WeakSet>"u"?e:WeakSet};if(v)try{null.error}catch(P){var y=v(v(P));_["%Error.prototype%"]=y}var S=function P(O){var H;if(O==="%AsyncFunction%")H=u("async function () {}");else if(O==="%GeneratorFunction%")H=u("function* () {}");else if(O==="%AsyncGeneratorFunction%")H=u("async function* () {}");else if(O==="%AsyncGenerator%"){var q=P("%AsyncGeneratorFunction%");q&&(H=q.prototype)}else if(O==="%AsyncIteratorPrototype%"){var te=P("%AsyncGenerator%");te&&v&&(H=v(te.prototype))}return _[O]=H,H},w={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},E=S3(),T=AJe(),C=E.call(Function.call,Array.prototype.concat),$=E.call(Function.apply,Array.prototype.splice),x=E.call(Function.call,String.prototype.replace),N=E.call(Function.call,String.prototype.slice),I=E.call(Function.call,RegExp.prototype.exec),L=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,F=/\\(\\)?/g,B=function(P){var O=N(P,0,1),H=N(P,-1);if(O==="%"&&H!=="%")throw new s("invalid intrinsic syntax, expected closing `%`");if(H==="%"&&O!=="%")throw new s("invalid intrinsic syntax, expected opening `%`");var q=[];return x(P,L,function(te,V,Q,ge){q[q.length]=Q?x(ge,F,"$1"):V||te}),q},U=function(P,O){var H=P,q;if(T(w,H)&&(q=w[H],H="%"+q[0]+"%"),T(_,H)){var te=_[H];if(te===g&&(te=S(H)),typeof te>"u"&&!O)throw new a("intrinsic "+P+" exists, but is not available. Please file an issue!");return{alias:q,name:H,value:te}}throw new s("intrinsic "+P+" does not exist!")};return eh=function(P,O){if(typeof P!="string"||P.length===0)throw new a("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof O!="boolean")throw new a('"allowMissing" argument must be a boolean');if(I(/^%?[^%]*%?$/,P)===null)throw new s("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var H=B(P),q=H.length>0?H[0]:"",te=U("%"+q+"%",O),V=te.name,Q=te.value,ge=!1,ie=te.alias;ie&&(q=ie[0],$(H,C([0,1],ie)));for(var ke=1,Y=!0;ke=H.length){var ve=c(Q,K);Y=!!ve,Y&&"get"in ve&&!("originalValue"in ve.get)?Q=ve.get:Q=Q[K]}else Y=T(Q,K),Q=Q[K];Y&&!ge&&(_[V]=Q)}}return Q},eh}function E3(){if(X_)return th;X_=!0;var e=ic(),t=e("%Object.defineProperty%",!0)||!1;if(t)try{t({},"a",{value:1})}catch{t=!1}return th=t,th}function LR(){if(J_)return nh;J_=!0;var e=ic(),t=e("%Object.getOwnPropertyDescriptor%",!0);if(t)try{t([],"length")}catch{t=null}return nh=t,nh}function MJe(){if(Q_)return rh;Q_=!0;var e=E3(),t=NR(),n=bf(),r=LR();return rh=function(o,s,a){if(!o||typeof o!="object"&&typeof o!="function")throw new n("`obj` must be an object or a function`");if(typeof s!="string"&&typeof s!="symbol")throw new n("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new n("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new n("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new n("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new n("`loose`, if provided, must be a boolean");var i=arguments.length>3?arguments[3]:null,l=arguments.length>4?arguments[4]:null,u=arguments.length>5?arguments[5]:null,c=arguments.length>6?arguments[6]:!1,d=!!r&&r(o,s);if(e)e(o,s,{configurable:u===null&&d?d.configurable:!u,enumerable:i===null&&d?d.enumerable:!i,value:a,writable:l===null&&d?d.writable:!l});else if(c||!i&&!l&&!u)o[s]=a;else throw new t("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},rh}function OJe(){if(Z_)return oh;Z_=!0;var e=E3(),t=function(){return!!e};return t.hasArrayLengthDefineBug=function(){if(!e)return null;try{return e([],"length",{value:1}).length!==1}catch{return!0}},oh=t,oh}function RJe(){if(ey)return sh;ey=!0;var e=ic(),t=MJe(),n=OJe()(),r=LR(),o=bf(),s=e("%Math.floor%");return sh=function(a,i){if(typeof a!="function")throw new o("`fn` is not a function");if(typeof i!="number"||i<0||i>4294967295||s(i)!==i)throw new o("`length` must be a positive 32-bit integer");var l=arguments.length>2&&!!arguments[2],u=!0,c=!0;if("length"in a&&r){var d=r(a,"length");d&&!d.configurable&&(u=!1),d&&!d.writable&&(c=!1)}return(u||c||!l)&&(n?t(a,"length",i,!0,!0):t(a,"length",i)),a},sh}function PJe(){if(ty)return Bl;ty=!0;var e=S3(),t=ic(),n=RJe(),r=bf(),o=t("%Function.prototype.apply%"),s=t("%Function.prototype.call%"),a=t("%Reflect.apply%",!0)||e.call(s,o),i=E3(),l=t("%Math.max%");Bl=function(c){if(typeof c!="function")throw new r("a function is required");var d=a(e,s,arguments);return n(d,1+l(0,c.length-(arguments.length-1)),!0)};var u=function(){return a(e,o,arguments)};return i?i(Bl,"apply",{value:u}):Bl.apply=u,Bl}function NJe(){if(ny)return ah;ny=!0;var e=ic(),t=PJe(),n=t(e("String.prototype.indexOf"));return ah=function(r,o){var s=e(r,!!o);return typeof s=="function"&&n(r,".prototype.")>-1?t(s):s},ah}var x_,I_,A_,M_,O_,R_,P_,N_,L_,B_,D_,z_,F_,H_,V_,j_,Yp,U_,Xp,W_,Jp,q_,Qp,K_,Zp,G_,eh,Y_,th,X_,nh,J_,rh,Q_,oh,Z_,sh,ey,Bl,ty,ah,ny,LJe=Wr(()=>{je(),We(),Ue(),x_={},I_=!1,A_={},M_=!1,O_={},R_=!1,P_={},N_=!1,L_={},B_=!1,D_={},z_=!1,F_={},H_=!1,V_={},j_=!1,Yp={},U_=!1,Xp={},W_=!1,Jp={},q_=!1,Qp={},K_=!1,Zp={},G_=!1,eh={},Y_=!1,th={},X_=!1,nh={},J_=!1,rh={},Q_=!1,oh={},Z_=!1,sh={},ey=!1,Bl={},ty=!1,ah={},ny=!1});function C3(e){throw new Error("Node.js process "+e+" is not supported by JSPM core outside of Node.js")}function BJe(){!qi||!Ni||(qi=!1,Ni.length?is=Ni.concat(is):od=-1,is.length&&BR())}function BR(){if(!qi){var e=setTimeout(BJe,0);qi=!0;for(var t=is.length;t;){for(Ni=is,is=[];++od1)for(var n=1;n{je(),We(),Ue(),is=[],qi=!1,od=-1,DR.prototype.run=function(){this.fun.apply(null,this.array)},TE="browser",$E="x64",xE="browser",IE={PATH:"/usr/bin",LANG:navigator.language+".UTF-8",PWD:"/",HOME:"/home",TMP:"/tmp"},AE=["/usr/bin/node"],ME=[],OE="v16.8.0",RE={},PE=function(e,t){console.warn((t?t+": ":"")+e)},NE=function(e){C3("binding")},LE=function(e){return 0},BE=function(){return"/"},DE=function(e){},zE={name:"node",sourceUrl:"",headersUrl:"",libUrl:""},FE=ur,HE=[],VE={},jE=!1,UE={},WE=ur,qE=ur,np=function(){return{}},KE=np,GE=np,YE=ur,XE=ur,JE=ur,QE={},ZE={inspector:!1,debug:!1,uv:!1,ipv6:!1,tls_alpn:!1,tls_sni:!1,tls_ocsp:!1,tls:!1,cached_builtins:!0},eC=ur,tC=ur,nC=ur,rC=ur,oC=ur,sC=ur,aC=ur,iC=void 0,lC=void 0,uC=void 0,cC=ur,dC=2,fC=1,pC="/bin/usr/node",hC=9229,mC="node",vC=[],gC=ur,Ms={now:typeof performance<"u"?performance.now.bind(performance):void 0,timing:typeof performance<"u"?performance.timing:void 0},Ms.now===void 0&&(c2=Date.now(),Ms.timing&&Ms.timing.navigationStart&&(c2=Ms.timing.navigationStart),Ms.now=()=>Date.now()-c2),ih=1e9,u2.bigint=function(e){var t=u2(e);return typeof BigInt>"u"?t[0]*ih+t[1]:BigInt(t[0]*ih)+BigInt(t[1])},_C=10,yC={},bC=0,wC=xa,SC=xa,EC=xa,CC=xa,kC=xa,TC=ur,$C=xa,xC=xa,k3={version:OE,versions:RE,arch:$E,platform:xE,release:zE,_rawDebug:FE,moduleLoadList:HE,binding:NE,_linkedBinding:zJe,_events:yC,_eventsCount:bC,_maxListeners:_C,on:xa,addListener:wC,once:SC,off:EC,removeListener:CC,removeAllListeners:kC,emit:TC,prependListener:$C,prependOnceListener:xC,listeners:qJe,domain:VE,_exiting:jE,config:UE,dlopen:FJe,uptime:WJe,_getActiveRequests:HJe,_getActiveHandles:VJe,reallyExit:WE,_kill:qE,cpuUsage:np,resourceUsage:KE,memoryUsage:GE,kill:YE,exit:XE,openStdin:JE,allowedNodeEnvironmentFlags:QE,assert:jJe,features:ZE,_fatalExceptions:eC,setUncaughtExceptionCaptureCallback:tC,hasUncaughtExceptionCaptureCallback:UJe,emitWarning:PE,nextTick:DJe,_tickCallback:nC,_debugProcess:rC,_debugEnd:oC,_startProfilerIdleNotifier:sC,_stopProfilerIdleNotifier:aC,stdout:iC,stdin:uC,stderr:lC,abort:cC,umask:LE,chdir:DE,cwd:BE,env:IE,title:TE,argv:AE,execArgv:ME,pid:dC,ppid:fC,execPath:pC,debugPort:hC,hrtime:u2,argv0:mC,_preload_modules:vC,setSourceMapsEnabled:gC}});function KJe(){if(ry)return lh;ry=!0;var e=k3;function t(s){if(typeof s!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(s))}function n(s,a){for(var i="",l=0,u=-1,c=0,d,f=0;f<=s.length;++f){if(f2){var p=i.lastIndexOf("/");if(p!==i.length-1){p===-1?(i="",l=0):(i=i.slice(0,p),l=i.length-1-i.lastIndexOf("/")),u=f,c=0;continue}}else if(i.length===2||i.length===1){i="",l=0,u=f,c=0;continue}}a&&(i.length>0?i+="/..":i="..",l=2)}else i.length>0?i+="/"+s.slice(u+1,f):i=s.slice(u+1,f),l=f-u-1;u=f,c=0}else d===46&&c!==-1?++c:c=-1}return i}function r(s,a){var i=a.dir||a.root,l=a.base||(a.name||"")+(a.ext||"");return i?i===a.root?i+l:i+s+l:l}var o={resolve:function(){for(var s="",a=!1,i,l=arguments.length-1;l>=-1&&!a;l--){var u;l>=0?u=arguments[l]:(i===void 0&&(i=e.cwd()),u=i),t(u),u.length!==0&&(s=u+"/"+s,a=u.charCodeAt(0)===47)}return s=n(s,!a),a?s.length>0?"/"+s:"/":s.length>0?s:"."},normalize:function(s){if(t(s),s.length===0)return".";var a=s.charCodeAt(0)===47,i=s.charCodeAt(s.length-1)===47;return s=n(s,!a),s.length===0&&!a&&(s="."),s.length>0&&i&&(s+="/"),a?"/"+s:s},isAbsolute:function(s){return t(s),s.length>0&&s.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var s,a=0;a0&&(s===void 0?s=i:s+="/"+i)}return s===void 0?".":o.normalize(s)},relative:function(s,a){if(t(s),t(a),s===a||(s=o.resolve(s),a=o.resolve(a),s===a))return"";for(var i=1;ip){if(a.charCodeAt(c+v)===47)return a.slice(c+v+1);if(v===0)return a.slice(c+v)}else u>p&&(s.charCodeAt(i+v)===47?m=v:v===0&&(m=0));break}var g=s.charCodeAt(i+v),b=a.charCodeAt(c+v);if(g!==b)break;g===47&&(m=v)}var _="";for(v=i+m+1;v<=l;++v)(v===l||s.charCodeAt(v)===47)&&(_.length===0?_+="..":_+="/..");return _.length>0?_+a.slice(c+m):(c+=m,a.charCodeAt(c)===47&&++c,a.slice(c))},_makeLong:function(s){return s},dirname:function(s){if(t(s),s.length===0)return".";for(var a=s.charCodeAt(0),i=a===47,l=-1,u=!0,c=s.length-1;c>=1;--c)if(a=s.charCodeAt(c),a===47){if(!u){l=c;break}}else u=!1;return l===-1?i?"/":".":i&&l===1?"//":s.slice(0,l)},basename:function(s,a){if(a!==void 0&&typeof a!="string")throw new TypeError('"ext" argument must be a string');t(s);var i=0,l=-1,u=!0,c;if(a!==void 0&&a.length>0&&a.length<=s.length){if(a.length===s.length&&a===s)return"";var d=a.length-1,f=-1;for(c=s.length-1;c>=0;--c){var p=s.charCodeAt(c);if(p===47){if(!u){i=c+1;break}}else f===-1&&(u=!1,f=c+1),d>=0&&(p===a.charCodeAt(d)?--d===-1&&(l=c):(d=-1,l=f))}return i===l?l=f:l===-1&&(l=s.length),s.slice(i,l)}else{for(c=s.length-1;c>=0;--c)if(s.charCodeAt(c)===47){if(!u){i=c+1;break}}else l===-1&&(u=!1,l=c+1);return l===-1?"":s.slice(i,l)}},extname:function(s){t(s);for(var a=-1,i=0,l=-1,u=!0,c=0,d=s.length-1;d>=0;--d){var f=s.charCodeAt(d);if(f===47){if(!u){i=d+1;break}continue}l===-1&&(u=!1,l=d+1),f===46?a===-1?a=d:c!==1&&(c=1):a!==-1&&(c=-1)}return a===-1||l===-1||c===0||c===1&&a===l-1&&a===i+1?"":s.slice(a,l)},format:function(s){if(s===null||typeof s!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof s);return r("/",s)},parse:function(s){t(s);var a={root:"",dir:"",base:"",ext:"",name:""};if(s.length===0)return a;var i=s.charCodeAt(0),l=i===47,u;l?(a.root="/",u=1):u=0;for(var c=-1,d=0,f=-1,p=!0,m=s.length-1,v=0;m>=u;--m){if(i=s.charCodeAt(m),i===47){if(!p){d=m+1;break}continue}f===-1&&(p=!1,f=m+1),i===46?c===-1?c=m:v!==1&&(v=1):c!==-1&&(v=-1)}return c===-1||f===-1||v===0||v===1&&c===f-1&&c===d+1?f!==-1&&(d===0&&l?a.base=a.name=s.slice(1,f):a.base=a.name=s.slice(d,f)):(d===0&&l?(a.name=s.slice(1,c),a.base=s.slice(1,f)):(a.name=s.slice(d,c),a.base=s.slice(d,f)),a.ext=s.slice(c,f)),d>0?a.dir=s.slice(0,d-1):l&&(a.dir="/"),a},sep:"/",delimiter:":",win32:null,posix:null};return o.posix=o,lh=o,lh}var lh,ry,oy,GJe=Wr(()=>{je(),We(),Ue(),zR(),lh={},ry=!1,oy=KJe()}),FR={};oc(FR,{URL:()=>XR,Url:()=>WR,default:()=>cr,fileURLToPath:()=>VR,format:()=>qR,parse:()=>YR,pathToFileURL:()=>jR,resolve:()=>KR,resolveObject:()=>GR});function YJe(){if(sy)return uh;sy=!0;var e=typeof Map=="function"&&Map.prototype,t=Object.getOwnPropertyDescriptor&&e?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,n=e&&t&&typeof t.get=="function"?t.get:null,r=e&&Map.prototype.forEach,o=typeof Set=="function"&&Set.prototype,s=Object.getOwnPropertyDescriptor&&o?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,a=o&&s&&typeof s.get=="function"?s.get:null,i=o&&Set.prototype.forEach,l=typeof WeakMap=="function"&&WeakMap.prototype,u=l?WeakMap.prototype.has:null,c=typeof WeakSet=="function"&&WeakSet.prototype,d=c?WeakSet.prototype.has:null,f=typeof WeakRef=="function"&&WeakRef.prototype,p=f?WeakRef.prototype.deref:null,m=Boolean.prototype.valueOf,v=Object.prototype.toString,g=Function.prototype.toString,b=String.prototype.match,_=String.prototype.slice,y=String.prototype.replace,S=String.prototype.toUpperCase,w=String.prototype.toLowerCase,E=RegExp.prototype.test,T=Array.prototype.concat,C=Array.prototype.join,$=Array.prototype.slice,x=Math.floor,N=typeof BigInt=="function"?BigInt.prototype.valueOf:null,I=Object.getOwnPropertySymbols,L=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,F=typeof Symbol=="function"&&typeof Symbol.iterator=="object",B=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===F||!0)?Symbol.toStringTag:null,U=Object.prototype.propertyIsEnumerable,P=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(Z){return Z.__proto__}:null);function O(Z,de){if(Z===1/0||Z===-1/0||Z!==Z||Z&&Z>-1e3&&Z<1e3||E.call(/e/,de))return de;var Oe=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof Z=="number"){var qe=Z<0?-x(-Z):x(Z);if(qe!==Z){var Qe=String(qe),ht=_.call(de,Qe.length+1);return y.call(Qe,Oe,"$&_")+"."+y.call(y.call(ht,/([0-9]{3})/g,"$&_"),/_$/,"")}}return y.call(de,Oe,"$&_")}var H=UR,q=H.custom,te=ve(q)?q:null;uh=function Z(de,Oe,qe,Qe){var ht=Oe||{};if(ce(ht,"quoteStyle")&&ht.quoteStyle!=="single"&&ht.quoteStyle!=="double")throw new TypeError('option "quoteStyle" must be "single" or "double"');if(ce(ht,"maxStringLength")&&(typeof ht.maxStringLength=="number"?ht.maxStringLength<0&&ht.maxStringLength!==1/0:ht.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var jt=ce(ht,"customInspect")?ht.customInspect:!0;if(typeof jt!="boolean"&&jt!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(ce(ht,"indent")&&ht.indent!==null&&ht.indent!==" "&&!(parseInt(ht.indent,10)===ht.indent&&ht.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(ce(ht,"numericSeparator")&&typeof ht.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var It=ht.numericSeparator;if(typeof de>"u")return"undefined";if(de===null)return"null";if(typeof de=="boolean")return de?"true":"false";if(typeof de=="string")return $e(de,ht);if(typeof de=="number"){if(de===0)return 1/0/de>0?"0":"-0";var lt=String(de);return It?O(de,lt):lt}if(typeof de=="bigint"){var Ne=String(de)+"n";return It?O(de,Ne):Ne}var Ve=typeof ht.depth>"u"?5:ht.depth;if(typeof qe>"u"&&(qe=0),qe>=Ve&&Ve>0&&typeof de=="object")return ge(de)?"[Array]":"[Object]";var st=ue(ht,qe);if(typeof Qe>"u")Qe=[];else if(le(Qe,de)>=0)return"[Circular]";function _t(Yo,Ea,vi){if(Ea&&(Qe=$.call(Qe),Qe.push(Ea)),vi){var Xo={depth:ht.depth};return ce(ht,"quoteStyle")&&(Xo.quoteStyle=ht.quoteStyle),Z(Yo,Xo,qe+1,Qe)}return Z(Yo,ht,qe+1,Qe)}if(typeof de=="function"&&!ke(de)){var Zt=he(de),cn=X(de,_t);return"[Function"+(Zt?": "+Zt:" (anonymous)")+"]"+(cn.length>0?" { "+C.call(cn,", ")+" }":"")}if(ve(de)){var ir=F?y.call(String(de),/^(Symbol\(.*\))_[^)]*$/,"$1"):L.call(de);return typeof de=="object"&&!F?A(ir):ir}if(Te(de)){for(var we="<"+w.call(String(de.nodeName)),xe=de.attributes||[],nt=0;nt",we}if(ge(de)){if(de.length===0)return"[]";var pt=X(de,_t);return st&&!G(pt)?"["+_e(pt,st)+"]":"[ "+C.call(pt,", ")+" ]"}if(Y(de)){var yt=X(de,_t);return!("cause"in Error.prototype)&&"cause"in de&&!U.call(de,"cause")?"{ ["+String(de)+"] "+C.call(T.call("[cause]: "+_t(de.cause),yt),", ")+" }":yt.length===0?"["+String(de)+"]":"{ ["+String(de)+"] "+C.call(yt,", ")+" }"}if(typeof de=="object"&&jt){if(te&&typeof de[te]=="function"&&H)return H(de,{depth:Ve-qe});if(jt!=="symbol"&&typeof de.inspect=="function")return de.inspect()}if(Ee(de)){var Fn=[];return r&&r.call(de,function(Yo,Ea){Fn.push(_t(Ea,de,!0)+" => "+_t(Yo,de))}),j("Map",n.call(de),Fn,st)}if(re(de)){var _r=[];return i&&i.call(de,function(Yo){_r.push(_t(Yo,de))}),j("Set",a.call(de),_r,st)}if(ye(de))return M("WeakMap");if(fe(de))return M("WeakSet");if(pe(de))return M("WeakRef");if(se(de))return A(_t(Number(de)));if(J(de))return A(_t(N.call(de)));if(ne(de))return A(m.call(de));if(K(de))return A(_t(String(de)));if(typeof window<"u"&&de===window)return"{ [object Window] }";if(typeof globalThis<"u"&&de===globalThis||typeof ch<"u"&&de===ch)return"{ [object globalThis] }";if(!ie(de)&&!ke(de)){var ko=X(de,_t),uc=P?P(de)===Object.prototype:de instanceof Object||de.constructor===Object,cc=de instanceof Object?"":"null prototype",dc=!uc&&B&&Object(de)===de&&B in de?_.call(oe(de),8,-1):cc?"Object":"",wf=uc||typeof de.constructor!="function"?"":de.constructor.name?de.constructor.name+" ":"",mi=wf+(dc||cc?"["+C.call(T.call([],dc||[],cc||[]),": ")+"] ":"");return ko.length===0?mi+"{}":st?mi+"{"+_e(ko,st)+"}":mi+"{ "+C.call(ko,", ")+" }"}return String(de)};function V(Z,de,Oe){var qe=(Oe.quoteStyle||de)==="double"?'"':"'";return qe+Z+qe}function Q(Z){return y.call(String(Z),/"/g,""")}function ge(Z){return oe(Z)==="[object Array]"&&(!B||!(typeof Z=="object"&&B in Z))}function ie(Z){return oe(Z)==="[object Date]"&&(!B||!(typeof Z=="object"&&B in Z))}function ke(Z){return oe(Z)==="[object RegExp]"&&(!B||!(typeof Z=="object"&&B in Z))}function Y(Z){return oe(Z)==="[object Error]"&&(!B||!(typeof Z=="object"&&B in Z))}function K(Z){return oe(Z)==="[object String]"&&(!B||!(typeof Z=="object"&&B in Z))}function se(Z){return oe(Z)==="[object Number]"&&(!B||!(typeof Z=="object"&&B in Z))}function ne(Z){return oe(Z)==="[object Boolean]"&&(!B||!(typeof Z=="object"&&B in Z))}function ve(Z){if(F)return Z&&typeof Z=="object"&&Z instanceof Symbol;if(typeof Z=="symbol")return!0;if(!Z||typeof Z!="object"||!L)return!1;try{return L.call(Z),!0}catch{}return!1}function J(Z){if(!Z||typeof Z!="object"||!N)return!1;try{return N.call(Z),!0}catch{}return!1}var ae=Object.prototype.hasOwnProperty||function(Z){return Z in(this||ch)};function ce(Z,de){return ae.call(Z,de)}function oe(Z){return v.call(Z)}function he(Z){if(Z.name)return Z.name;var de=b.call(g.call(Z),/^function\s*([\w$]+)/);return de?de[1]:null}function le(Z,de){if(Z.indexOf)return Z.indexOf(de);for(var Oe=0,qe=Z.length;Oede.maxStringLength){var Oe=Z.length-de.maxStringLength,qe="... "+Oe+" more character"+(Oe>1?"s":"");return $e(_.call(Z,0,de.maxStringLength),de)+qe}var Qe=y.call(y.call(Z,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,Le);return V(Qe,"single",de)}function Le(Z){var de=Z.charCodeAt(0),Oe={8:"b",9:"t",10:"n",12:"f",13:"r"}[de];return Oe?"\\"+Oe:"\\x"+(de<16?"0":"")+S.call(de.toString(16))}function A(Z){return"Object("+Z+")"}function M(Z){return Z+" { ? }"}function j(Z,de,Oe,qe){var Qe=qe?_e(Oe,qe):C.call(Oe,", ");return Z+" ("+de+") {"+Qe+"}"}function G(Z){for(var de=0;de=0)return!1;return!0}function ue(Z,de){var Oe;if(Z.indent===" ")Oe=" ";else if(typeof Z.indent=="number"&&Z.indent>0)Oe=C.call(Array(Z.indent+1)," ");else return null;return{base:Oe,prev:C.call(Array(de+1),Oe)}}function _e(Z,de){if(Z.length===0)return"";var Oe=` +`+de.prev+de.base;return Oe+C.call(Z,","+Oe)+` +`+de.prev}function X(Z,de){var Oe=ge(Z),qe=[];if(Oe){qe.length=Z.length;for(var Qe=0;Qe1;){var b=g.pop(),_=b.obj[b.prop];if(n(_)){for(var y=[],S=0;S<_.length;++S)typeof _[S]<"u"&&y.push(_[S]);b.obj[b.prop]=y}}},s=function(g,b){for(var _=b&&b.plainObjects?Object.create(null):{},y=0;y=u?w.slice(T,T+u):w,$=[],x=0;x=48&&N<=57||N>=65&&N<=90||N>=97&&N<=122||S===e.RFC1738&&(N===40||N===41)){$[$.length]=C.charAt(x);continue}if(N<128){$[$.length]=r[N];continue}if(N<2048){$[$.length]=r[192|N>>6]+r[128|N&63];continue}if(N<55296||N>=57344){$[$.length]=r[224|N>>12]+r[128|N>>6&63]+r[128|N&63];continue}x+=1,N=65536+((N&1023)<<10|C.charCodeAt(x)&1023),$[$.length]=r[240|N>>18]+r[128|N>>12&63]+r[128|N>>6&63]+r[128|N&63]}E+=$.join("")}return E},d=function(g){for(var b=[{obj:{o:g},prop:"o"}],_=[],y=0;y"u"&&(q=0)}if(typeof $=="function"?O=$(b,O):O instanceof Date?O=I(O):_==="comma"&&s(O)&&(O=t.maybeMap(O,function(oe){return oe instanceof Date?I(oe):oe})),O===null){if(w)return C&&!B?C(b,c.encoder,U,"key",L):b;O=""}if(d(O)||t.isBuffer(O)){if(C){var Q=B?b:C(b,c.encoder,U,"key",L);return[F(Q)+"="+F(C(O,c.encoder,U,"value",L))]}return[F(b)+"="+F(String(O))]}var ge=[];if(typeof O>"u")return ge;var ie;if(_==="comma"&&s(O))B&&C&&(O=t.maybeMap(O,C)),ie=[{value:O.length>0?O.join(",")||null:void 0}];else if(s($))ie=$;else{var ke=Object.keys(O);ie=x?ke.sort(x):ke}var Y=T?b.replace(/\./g,"%2E"):b,K=y&&s(O)&&O.length===1?Y+"[]":Y;if(S&&s(O)&&O.length===0)return K+"[]";for(var se=0;se"u"?v.encodeDotInKeys===!0?!0:c.allowDots:!!v.allowDots;return{addQueryPrefix:typeof v.addQueryPrefix=="boolean"?v.addQueryPrefix:c.addQueryPrefix,allowDots:w,allowEmptyArrays:typeof v.allowEmptyArrays=="boolean"?!!v.allowEmptyArrays:c.allowEmptyArrays,arrayFormat:S,charset:g,charsetSentinel:typeof v.charsetSentinel=="boolean"?v.charsetSentinel:c.charsetSentinel,commaRoundTrip:v.commaRoundTrip,delimiter:typeof v.delimiter>"u"?c.delimiter:v.delimiter,encode:typeof v.encode=="boolean"?v.encode:c.encode,encodeDotInKeys:typeof v.encodeDotInKeys=="boolean"?v.encodeDotInKeys:c.encodeDotInKeys,encoder:typeof v.encoder=="function"?v.encoder:c.encoder,encodeValuesOnly:typeof v.encodeValuesOnly=="boolean"?v.encodeValuesOnly:c.encodeValuesOnly,filter:y,format:b,formatter:_,serializeDate:typeof v.serializeDate=="function"?v.serializeDate:c.serializeDate,skipNulls:typeof v.skipNulls=="boolean"?v.skipNulls:c.skipNulls,sort:typeof v.sort=="function"?v.sort:null,strictNullHandling:typeof v.strictNullHandling=="boolean"?v.strictNullHandling:c.strictNullHandling}};return hh=function(v,g){var b=v,_=m(g),y,S;typeof _.filter=="function"?(S=_.filter,b=S("",b)):s(_.filter)&&(S=_.filter,y=S);var w=[];if(typeof b!="object"||b===null)return"";var E=o[_.arrayFormat],T=E==="comma"&&_.commaRoundTrip;y||(y=Object.keys(b)),_.sort&&y.sort(_.sort);for(var C=e(),$=0;$0?I+N:""},hh}function QJe(){if(cy)return mh;cy=!0;var e=HR(),t=Object.prototype.hasOwnProperty,n=Array.isArray,r={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:e.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1},o=function(f){return f.replace(/&#(\d+);/g,function(p,m){return String.fromCharCode(parseInt(m,10))})},s=function(f,p){return f&&typeof f=="string"&&p.comma&&f.indexOf(",")>-1?f.split(","):f},a="utf8=%26%2310003%3B",i="utf8=%E2%9C%93",l=function(f,p){var m={__proto__:null},v=p.ignoreQueryPrefix?f.replace(/^\?/,""):f;v=v.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var g=p.parameterLimit===1/0?void 0:p.parameterLimit,b=v.split(p.delimiter,g),_=-1,y,S=p.charset;if(p.charsetSentinel)for(y=0;y-1&&($=n($)?[$]:$);var x=t.call(m,C);x&&p.duplicates==="combine"?m[C]=e.combine(m[C],$):(!x||p.duplicates==="last")&&(m[C]=$)}return m},u=function(f,p,m,v){for(var g=v?p:s(p,m),b=f.length-1;b>=0;--b){var _,y=f[b];if(y==="[]"&&m.parseArrays)_=m.allowEmptyArrays&&(g===""||m.strictNullHandling&&g===null)?[]:[].concat(g);else{_=m.plainObjects?Object.create(null):{};var S=y.charAt(0)==="["&&y.charAt(y.length-1)==="]"?y.slice(1,-1):y,w=m.decodeDotInKeys?S.replace(/%2E/g,"."):S,E=parseInt(w,10);!m.parseArrays&&w===""?_={0:g}:!isNaN(E)&&y!==w&&String(E)===w&&E>=0&&m.parseArrays&&E<=m.arrayLimit?(_=[],_[E]=g):w!=="__proto__"&&(_[w]=g)}g=_}return g},c=function(f,p,m,v){if(f){var g=m.allowDots?f.replace(/\.([^.[]+)/g,"[$1]"):f,b=/(\[[^[\]]*])/,_=/(\[[^[\]]*])/g,y=m.depth>0&&b.exec(g),S=y?g.slice(0,y.index):g,w=[];if(S){if(!m.plainObjects&&t.call(Object.prototype,S)&&!m.allowPrototypes)return;w.push(S)}for(var E=0;m.depth>0&&(y=_.exec(g))!==null&&E"u"?r.charset:f.charset,m=typeof f.duplicates>"u"?r.duplicates:f.duplicates;if(m!=="combine"&&m!=="first"&&m!=="last")throw new TypeError("The duplicates option must be either combine, first, or last");var v=typeof f.allowDots>"u"?f.decodeDotInKeys===!0?!0:r.allowDots:!!f.allowDots;return{allowDots:v,allowEmptyArrays:typeof f.allowEmptyArrays=="boolean"?!!f.allowEmptyArrays:r.allowEmptyArrays,allowPrototypes:typeof f.allowPrototypes=="boolean"?f.allowPrototypes:r.allowPrototypes,allowSparse:typeof f.allowSparse=="boolean"?f.allowSparse:r.allowSparse,arrayLimit:typeof f.arrayLimit=="number"?f.arrayLimit:r.arrayLimit,charset:p,charsetSentinel:typeof f.charsetSentinel=="boolean"?f.charsetSentinel:r.charsetSentinel,comma:typeof f.comma=="boolean"?f.comma:r.comma,decodeDotInKeys:typeof f.decodeDotInKeys=="boolean"?f.decodeDotInKeys:r.decodeDotInKeys,decoder:typeof f.decoder=="function"?f.decoder:r.decoder,delimiter:typeof f.delimiter=="string"||e.isRegExp(f.delimiter)?f.delimiter:r.delimiter,depth:typeof f.depth=="number"||f.depth===!1?+f.depth:r.depth,duplicates:m,ignoreQueryPrefix:f.ignoreQueryPrefix===!0,interpretNumericEntities:typeof f.interpretNumericEntities=="boolean"?f.interpretNumericEntities:r.interpretNumericEntities,parameterLimit:typeof f.parameterLimit=="number"?f.parameterLimit:r.parameterLimit,parseArrays:f.parseArrays!==!1,plainObjects:typeof f.plainObjects=="boolean"?f.plainObjects:r.plainObjects,strictDepth:typeof f.strictDepth=="boolean"?!!f.strictDepth:r.strictDepth,strictNullHandling:typeof f.strictNullHandling=="boolean"?f.strictNullHandling:r.strictNullHandling}};return mh=function(f,p){var m=d(p);if(f===""||f===null||typeof f>"u")return m.plainObjects?Object.create(null):{};for(var v=typeof f=="string"?l(f,m):f,g=m.plainObjects?Object.create(null):{},b=Object.keys(v),_=0;_",'"',"`"," ","\r",` +`," "],a=["{","}","|","\\","^","`"].concat(s),i=["'"].concat(a),l=["%","/","?",";","#"].concat(i),u=["/","?","#"],c=255,d=/^[+a-z0-9A-Z_-]{0,63}$/,f=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,p={javascript:!0,"javascript:":!0},m={javascript:!0,"javascript:":!0},v={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},g=ZJe();function b(w,E,T){if(w&&typeof w=="object"&&w instanceof t)return w;var C=new t;return C.parse(w,E,T),C}t.prototype.parse=function(w,E,T){if(typeof w!="string")throw new TypeError("Parameter 'url' must be a string, not "+typeof w);var C=w.indexOf("?"),$=C!==-1&&C127?ke+="x":ke+=ie[Y];if(!ke.match(d)){var se=Q.slice(0,O),ne=Q.slice(O+1),ve=ie.match(f);ve&&(se.push(ve[1]),ne.unshift(ve[2])),ne.length&&(I="/"+ne.join(".")+I),this.hostname=se.join(".");break}}}this.hostname.length>c?this.hostname="":this.hostname=this.hostname.toLowerCase(),V||(this.hostname=e.toASCII(this.hostname));var J=this.port?":"+this.port:"",ae=this.hostname||"";this.host=ae+J,this.href+=this.host,V&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),I[0]!=="/"&&(I="/"+I))}if(!p[B])for(var O=0,ge=i.length;O0?T.host.split("@"):!1;ke&&(T.auth=ke.shift(),T.hostname=ke.shift(),T.host=T.hostname)}return T.search=w.search,T.query=w.query,(T.pathname!==null||T.search!==null)&&(T.path=(T.pathname?T.pathname:"")+(T.search?T.search:"")),T.href=T.format(),T}if(!Q.length)return T.pathname=null,T.search?T.path="/"+T.search:T.path=null,T.href=T.format(),T;for(var Y=Q.slice(-1)[0],K=(T.host||w.host||Q.length>1)&&(Y==="."||Y==="..")||Y==="",se=0,ne=Q.length;ne>=0;ne--)Y=Q[ne],Y==="."?Q.splice(ne,1):Y===".."?(Q.splice(ne,1),se++):se&&(Q.splice(ne,1),se--);if(!te&&!V)for(;se--;se)Q.unshift("..");te&&Q[0]!==""&&(!Q[0]||Q[0].charAt(0)!=="/")&&Q.unshift(""),K&&Q.join("/").substr(-1)!=="/"&&Q.push("");var ve=Q[0]===""||Q[0]&&Q[0].charAt(0)==="/";if(ie){T.hostname=ve?"":Q.length?Q.shift():"",T.host=T.hostname;var ke=T.host&&T.host.indexOf("@")>0?T.host.split("@"):!1;ke&&(T.auth=ke.shift(),T.hostname=ke.shift(),T.host=T.hostname)}return te=te||T.host&&Q.length,te&&!ve&&Q.unshift(""),Q.length>0?T.pathname=Q.join("/"):(T.pathname=null,T.path=null),(T.pathname!==null||T.search!==null)&&(T.path=(T.pathname?T.pathname:"")+(T.search?T.search:"")),T.auth=w.auth||T.auth,T.slashes=T.slashes||w.slashes,T.href=T.format(),T},t.prototype.parseHost=function(){var w=this.host,E=r.exec(w);E&&(E=E[0],E!==":"&&(this.port=E.substr(1)),w=w.substr(0,w.length-E.length)),w&&(this.hostname=w)},Da.parse=b,Da.resolve=y,Da.resolveObject=S,Da.format=_,Da.Url=t,Da}function VR(e){if(typeof e=="string")e=new URL(e);else if(!(e instanceof URL))throw new Deno.errors.InvalidData("invalid argument path , must be a string or URL");if(e.protocol!=="file:")throw new Deno.errors.InvalidData("invalid url scheme");return f0?tQe(e):nQe(e)}function tQe(e){let t=e.hostname,n=e.pathname;for(let r=0;reP||o!==":")throw new Deno.errors.InvalidData("file url path must be absolute");return n.slice(1)}}function nQe(e){if(e.hostname!=="")throw new Deno.errors.InvalidData("invalid file url hostname");let t=e.pathname;for(let n=0;n{je(),We(),Ue(),bJe(),LJe(),GJe(),zR(),UR=Object.freeze(Object.create(null)),uh={},sy=!1,ch=typeof globalThis<"u"?globalThis:typeof self<"u"?self:global,dh={},ay=!1,fh={},iy=!1,ph={},ly=!1,hh={},uy=!1,mh={},cy=!1,vh={},dy=!1,Da={},fy=!1,cr=eQe(),cr.parse,cr.resolve,cr.resolveObject,cr.format,cr.Url,IC=typeof Deno<"u"?Deno.build.os==="windows"?"win32":Deno.build.os:void 0,cr.URL=typeof URL<"u"?URL:null,cr.pathToFileURL=jR,cr.fileURLToPath=VR,WR=cr.Url,qR=cr.format,KR=cr.resolve,GR=cr.resolveObject,YR=cr.parse,XR=cr.URL,JR=92,QR=47,ZR=97,eP=122,f0=IC==="win32",tP=/\//g,nP=/%/g,rP=/\\/g,oP=/\n/g,sP=/\r/g,aP=/\t/g}),oQe=Ke((e,t)=>{je(),We(),Ue(),t.exports=function(){throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")}}),$3=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"__esModule",{value:!0}),e.BufferedDuplex=void 0,e.writev=r;var t=ml(),n=(Jn(),mn(Xn));function r(s,a){let i=new Array(s.length);for(let l=0;l{!this.destroyed&&this.readable&&this.push(u)})}_read(a){this.proxy.read(a)}_write(a,i,l){this.isSocketOpen?this.writeToProxy(a,i,l):this.writeQueue.push({chunk:a,encoding:i,cb:l})}_final(a){this.writeQueue=[],this.proxy.end(a)}_destroy(a,i){this.writeQueue=[],this.proxy.destroy(),i(a)}socketReady(){this.emit("connect"),this.isSocketOpen=!0,this.processWriteQueue()}writeToProxy(a,i,l){this.proxy.write(a,i)===!1?this.proxy.once("drain",l):l()}processWriteQueue(){for(;this.writeQueue.length>0;){let{chunk:a,encoding:i,cb:l}=this.writeQueue.shift();this.writeToProxy(a,i,l)}}};e.BufferedDuplex=o}),rp=Ke(e=>{je(),We(),Ue();var t=e&&e.__importDefault||function(b){return b&&b.__esModule?b:{default:b}};Object.defineProperty(e,"__esModule",{value:!0}),e.streamBuilder=e.browserStreamBuilder=void 0;var n=(Jn(),mn(Xn)),r=t(oQe()),o=t(oa()),s=ml(),a=t(Om()),i=$3(),l=(0,o.default)("mqttjs:ws"),u=["rejectUnauthorized","ca","cert","key","pfx","passphrase"];function c(b,_){let y=`${b.protocol}://${b.hostname}:${b.port}${b.path}`;return typeof b.transformWsUrl=="function"&&(y=b.transformWsUrl(y,b,_)),y}function d(b){let _=b;return b.port||(b.protocol==="wss"?_.port=443:_.port=80),b.path||(_.path="/"),b.wsOptions||(_.wsOptions={}),!a.default&&!b.forceNativeWebSocket&&b.protocol==="wss"&&u.forEach(y=>{Object.prototype.hasOwnProperty.call(b,y)&&!Object.prototype.hasOwnProperty.call(b.wsOptions,y)&&(_.wsOptions[y]=b[y])}),_}function f(b){let _=d(b);if(_.hostname||(_.hostname=_.host),!_.hostname){if(typeof document>"u")throw new Error("Could not determine host. Specify host manually.");let y=new URL(document.URL);_.hostname=y.hostname,_.port||(_.port=Number(y.port))}return _.objectMode===void 0&&(_.objectMode=!(_.binary===!0||_.binary===void 0)),_}function p(b,_,y){l("createWebSocket"),l(`protocol: ${y.protocolId} ${y.protocolVersion}`);let S=y.protocolId==="MQIsdp"&&y.protocolVersion===3?"mqttv3.1":"mqtt";l(`creating new Websocket for url: ${_} and protocol: ${S}`);let w;return y.createWebsocket?w=y.createWebsocket(_,[S],y):w=new r.default(_,[S],y.wsOptions),w}function m(b,_){let y=_.protocolId==="MQIsdp"&&_.protocolVersion===3?"mqttv3.1":"mqtt",S=c(_,b),w;return _.createWebsocket?w=_.createWebsocket(S,[y],_):w=new WebSocket(S,[y]),w.binaryType="arraybuffer",w}var v=(b,_)=>{l("streamBuilder");let y=d(_);y.hostname=y.hostname||y.host||"localhost";let S=c(y,b),w=p(b,S,y),E=r.default.createWebSocketStream(w,y.wsOptions);return E.url=S,w.on("close",()=>{E.destroy()}),E};e.streamBuilder=v;var g=(b,_)=>{l("browserStreamBuilder");let y,S=f(_).browserBufferSize||1024*512,w=_.browserBufferTimeout||1e3,E=!_.objectMode,T=m(b,_),C=x(_,B,U);_.objectMode||(C._writev=i.writev.bind(C)),C.on("close",()=>{T.close()});let $=typeof T.addEventListener<"u";T.readyState===T.OPEN?(y=C,y.socket=T):(y=new i.BufferedDuplex(_,C,T),$?T.addEventListener("open",N):T.onopen=N),$?(T.addEventListener("close",I),T.addEventListener("error",L),T.addEventListener("message",F)):(T.onclose=I,T.onerror=L,T.onmessage=F);function x(P,O,H){let q=new s.Transform({objectMode:P.objectMode});return q._write=O,q._flush=H,q}function N(){l("WebSocket onOpen"),y instanceof i.BufferedDuplex&&y.socketReady()}function I(P){l("WebSocket onClose",P),y.end(),y.destroy()}function L(P){l("WebSocket onError",P);let O=new Error("WebSocket error");O.event=P,y.destroy(O)}async function F(P){if(!C||C.destroyed||!C.readable)return;let{data:O}=P;O instanceof ArrayBuffer?O=n.Buffer.from(O):O instanceof Blob?O=n.Buffer.from(await new Response(O).arrayBuffer()):O=n.Buffer.from(O,"utf8"),C.push(O)}function B(P,O,H){if(T.bufferedAmount>S){setTimeout(B,w,P,O,H);return}E&&typeof P=="string"&&(P=n.Buffer.from(P,"utf8"));try{T.send(P)}catch(q){return H(q)}H()}function U(P){T.close(),P()}return y};e.browserStreamBuilder=g}),x3={};oc(x3,{Server:()=>Tn,Socket:()=>Tn,Stream:()=>Tn,_createServerHandle:()=>Tn,_normalizeArgs:()=>Tn,_setSimultaneousAccepts:()=>Tn,connect:()=>Tn,createConnection:()=>Tn,createServer:()=>Tn,default:()=>iP,isIP:()=>Tn,isIPv4:()=>Tn,isIPv6:()=>Tn});function Tn(){throw new Error("Node.js net module is not supported by JSPM core outside of Node.js")}var iP,lP=Wr(()=>{je(),We(),Ue(),iP={_createServerHandle:Tn,_normalizeArgs:Tn,_setSimultaneousAccepts:Tn,connect:Tn,createConnection:Tn,createServer:Tn,isIP:Tn,isIPv4:Tn,isIPv6:Tn,Server:Tn,Socket:Tn,Stream:Tn}}),uP=Ke((e,t)=>{je(),We(),Ue(),t.exports={}}),AC=Ke(e=>{je(),We(),Ue();var t=e&&e.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(e,"__esModule",{value:!0});var n=t((lP(),mn(x3))),r=t(oa()),o=t(uP()),s=(0,r.default)("mqttjs:tcp"),a=(i,l)=>{if(l.port=l.port||1883,l.hostname=l.hostname||l.host||"localhost",l.socksProxy)return(0,o.default)(l.hostname,l.port,l.socksProxy,{timeout:l.socksTimeout});let{port:u,path:c}=l,d=l.hostname;return s("port %d and host %s",u,d),n.default.createConnection({port:u,host:d,path:c})};e.default=a}),cP={};oc(cP,{default:()=>dP});var dP,sQe=Wr(()=>{je(),We(),Ue(),dP={}}),MC=Ke(e=>{je(),We(),Ue();var t=e&&e.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(e,"__esModule",{value:!0});var n=(sQe(),mn(cP)),r=t((lP(),mn(x3))),o=t(oa()),s=t(uP()),a=(0,o.default)("mqttjs:tls");function i(u){let{host:c,port:d,socksProxy:f,...p}=u;if(f!==void 0){let m=(0,s.default)(c,d,f,{timeout:u.socksTimeout});return(0,n.connect)({...p,socket:m})}return(0,n.connect)(u)}var l=(u,c)=>{c.port=c.port||8883,c.host=c.hostname||c.host||"localhost",r.default.isIP(c.host)===0&&(c.servername=c.host),c.rejectUnauthorized=c.rejectUnauthorized!==!1,delete c.path,a("port %d host %s rejectUnauthorized %b",c.port,c.host,c.rejectUnauthorized);let d=i(c);d.on("secureConnect",()=>{c.rejectUnauthorized&&!d.authorized?d.emit("error",new Error("TLS not authorized")):d.removeListener("error",f)});function f(p){c.rejectUnauthorized&&u.emit("error",p),d.end()}return d.on("error",f),d};e.default=l}),OC=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"__esModule",{value:!0});var t=(Jn(),mn(Xn)),n=ml(),r=$3(),o,s,a;function i(){let f=new n.Transform;return f._write=(p,m,v)=>{o.send({data:p.buffer,success(){v()},fail(g){v(new Error(g))}})},f._flush=p=>{o.close({success(){p()}})},f}function l(f){f.hostname||(f.hostname="localhost"),f.path||(f.path="/"),f.wsOptions||(f.wsOptions={})}function u(f,p){let m=f.protocol==="wxs"?"wss":"ws",v=`${m}://${f.hostname}${f.path}`;return f.port&&f.port!==80&&f.port!==443&&(v=`${m}://${f.hostname}:${f.port}${f.path}`),typeof f.transformWsUrl=="function"&&(v=f.transformWsUrl(v,f,p)),v}function c(){o.onOpen(()=>{a.socketReady()}),o.onMessage(f=>{let{data:p}=f;p instanceof ArrayBuffer?p=t.Buffer.from(p):p=t.Buffer.from(p,"utf8"),s.push(p)}),o.onClose(()=>{a.emit("close"),a.end(),a.destroy()}),o.onError(f=>{let p=new Error(f.errMsg);a.destroy(p)})}var d=(f,p)=>{if(p.hostname=p.hostname||p.host,!p.hostname)throw new Error("Could not determine host. Specify host manually.");let m=p.protocolId==="MQIsdp"&&p.protocolVersion===3?"mqttv3.1":"mqtt";l(p);let v=u(p,f);o=wx.connectSocket({url:v,protocols:[m]}),s=i(),a=new r.BufferedDuplex(p,s,o),a._destroy=(b,_)=>{o.close({success(){_&&_(b)}})};let g=a.destroy;return a.destroy=(b,_)=>(a.destroy=g,setTimeout(()=>{o.close({fail(){a._destroy(b,_)}})},0),a),c(),a};e.default=d}),RC=Ke(e=>{je(),We(),Ue(),Object.defineProperty(e,"__esModule",{value:!0});var t=(Jn(),mn(Xn)),n=ml(),r=$3(),o,s,a,i=!1;function l(){let p=new n.Transform;return p._write=(m,v,g)=>{o.sendSocketMessage({data:m.buffer,success(){g()},fail(){g(new Error)}})},p._flush=m=>{o.closeSocket({success(){m()}})},p}function u(p){p.hostname||(p.hostname="localhost"),p.path||(p.path="/"),p.wsOptions||(p.wsOptions={})}function c(p,m){let v=p.protocol==="alis"?"wss":"ws",g=`${v}://${p.hostname}${p.path}`;return p.port&&p.port!==80&&p.port!==443&&(g=`${v}://${p.hostname}:${p.port}${p.path}`),typeof p.transformWsUrl=="function"&&(g=p.transformWsUrl(g,p,m)),g}function d(){i||(i=!0,o.onSocketOpen(()=>{a.socketReady()}),o.onSocketMessage(p=>{if(typeof p.data=="string"){let m=t.Buffer.from(p.data,"base64");s.push(m)}else{let m=new FileReader;m.addEventListener("load",()=>{if(m.result instanceof ArrayBuffer){s.push(t.Buffer.from(m.result));return}s.push(t.Buffer.from(m.result,"utf-8"))}),m.readAsArrayBuffer(p.data)}}),o.onSocketClose(()=>{a.end(),a.destroy()}),o.onSocketError(p=>{a.destroy(p)}))}var f=(p,m)=>{if(m.hostname=m.hostname||m.host,!m.hostname)throw new Error("Could not determine host. Specify host manually.");let v=m.protocolId==="MQIsdp"&&m.protocolVersion===3?"mqttv3.1":"mqtt";u(m);let g=c(m,p);return o=m.my,o.connectSocket({url:g,protocols:v}),s=l(),a=new r.BufferedDuplex(m,s,o),d(),a};e.default=f}),aQe=Ke(e=>{je(),We(),Ue();var t=e&&e.__importDefault||function(d){return d&&d.__esModule?d:{default:d}};Object.defineProperty(e,"__esModule",{value:!0}),e.connectAsync=c;var n=t(oa()),r=t((rQe(),mn(FR))),o=t(T_()),s=t(Om());typeof(nn==null?void 0:nn.nextTick)!="function"&&(nn.nextTick=setImmediate);var a=(0,n.default)("mqttjs"),i=null;function l(d){let f;if(d.auth)if(f=d.auth.match(/^(.+):(.+)$/),f){let[,p,m]=f;d.username=p,d.password=m}else d.username=d.auth}function u(d,f){var v,g,b;if(a("connecting to an MQTT broker..."),typeof d=="object"&&!f&&(f=d,d=""),f=f||{},d&&typeof d=="string"){let _=r.default.parse(d,!0),y={};if(_.port!=null&&(y.port=Number(_.port)),y.host=_.hostname,y.query=_.query,y.auth=_.auth,y.protocol=_.protocol,y.path=_.path,f={...y,...f},!f.protocol)throw new Error("Missing protocol");f.protocol=f.protocol.replace(/:$/,"")}if(f.unixSocket=f.unixSocket||((v=f.protocol)==null?void 0:v.includes("+unix")),f.unixSocket?f.protocol=f.protocol.replace("+unix",""):!((g=f.protocol)!=null&&g.startsWith("ws"))&&!((b=f.protocol)!=null&&b.startsWith("wx"))&&delete f.path,l(f),f.query&&typeof f.query.clientId=="string"&&(f.clientId=f.query.clientId),s.default||f.unixSocket?f.socksProxy=void 0:f.socksProxy===void 0&&typeof nn<"u"&&(f.socksProxy=nn.env.MQTTJS_SOCKS_PROXY),f.cert&&f.key)if(f.protocol){if(["mqtts","wss","wxs","alis"].indexOf(f.protocol)===-1)switch(f.protocol){case"mqtt":f.protocol="mqtts";break;case"ws":f.protocol="wss";break;case"wx":f.protocol="wxs";break;case"ali":f.protocol="alis";break;default:throw new Error(`Unknown protocol for secure connection: "${f.protocol}"!`)}}else throw new Error("Missing secure protocol key");if(i||(i={},!s.default&&!f.forceNativeWebSocket?(i.ws=rp().streamBuilder,i.wss=rp().streamBuilder,i.mqtt=AC().default,i.tcp=AC().default,i.ssl=MC().default,i.tls=i.ssl,i.mqtts=MC().default):(i.ws=rp().browserStreamBuilder,i.wss=rp().browserStreamBuilder,i.wx=OC().default,i.wxs=OC().default,i.ali=RC().default,i.alis=RC().default)),!i[f.protocol]){let _=["mqtts","wss"].indexOf(f.protocol)!==-1;f.protocol=["mqtt","mqtts","ws","wss","wx","wxs","ali","alis"].filter((y,S)=>_&&S%2===0?!1:typeof i[y]=="function")[0]}if(f.clean===!1&&!f.clientId)throw new Error("Missing clientId for unclean clients");f.protocol&&(f.defaultProtocol=f.protocol);function p(_){return f.servers&&((!_._reconnectCount||_._reconnectCount===f.servers.length)&&(_._reconnectCount=0),f.host=f.servers[_._reconnectCount].host,f.port=f.servers[_._reconnectCount].port,f.protocol=f.servers[_._reconnectCount].protocol?f.servers[_._reconnectCount].protocol:f.defaultProtocol,f.hostname=f.host,_._reconnectCount++),a("calling streambuilder for",f.protocol),i[f.protocol](_,f)}let m=new o.default(p,f);return m.on("error",()=>{}),m}function c(d,f,p=!0){return new Promise((m,v)=>{let g=u(d,f),b={connect:y=>{_(),m(g)},end:()=>{_(),m(g)},error:y=>{_(),g.end(),v(y)}};p===!1&&(b.close=()=>{b.error(new Error("Couldn't connect to server"))});function _(){Object.keys(b).forEach(y=>{g.off(y,b[y])})}Object.keys(b).forEach(y=>{g.on(y,b[y])})})}e.default=u}),PC=Ke(e=>{je(),We(),Ue();var t=e&&e.__createBinding||(Object.create?function(p,m,v,g){g===void 0&&(g=v);var b=Object.getOwnPropertyDescriptor(m,v);(!b||("get"in b?!m.__esModule:b.writable||b.configurable))&&(b={enumerable:!0,get:function(){return m[v]}}),Object.defineProperty(p,g,b)}:function(p,m,v,g){g===void 0&&(g=v),p[g]=m[v]}),n=e&&e.__setModuleDefault||(Object.create?function(p,m){Object.defineProperty(p,"default",{enumerable:!0,value:m})}:function(p,m){p.default=m}),r=e&&e.__importStar||function(){var p=function(m){return p=Object.getOwnPropertyNames||function(v){var g=[];for(var b in v)Object.prototype.hasOwnProperty.call(v,b)&&(g[g.length]=b);return g},p(m)};return function(m){if(m&&m.__esModule)return m;var v={};if(m!=null)for(var g=p(m),b=0;b{je(),We(),Ue();var t=e&&e.__createBinding||(Object.create?function(a,i,l,u){u===void 0&&(u=l);var c=Object.getOwnPropertyDescriptor(i,l);(!c||("get"in c?!i.__esModule:c.writable||c.configurable))&&(c={enumerable:!0,get:function(){return i[l]}}),Object.defineProperty(a,u,c)}:function(a,i,l,u){u===void 0&&(u=l),a[u]=i[l]}),n=e&&e.__setModuleDefault||(Object.create?function(a,i){Object.defineProperty(a,"default",{enumerable:!0,value:i})}:function(a,i){a.default=i}),r=e&&e.__importStar||function(){var a=function(i){return a=Object.getOwnPropertyNames||function(l){var u=[];for(var c in l)Object.prototype.hasOwnProperty.call(l,c)&&(u[u.length]=c);return u},a(i)};return function(i){if(i&&i.__esModule)return i;var l={};if(i!=null)for(var u=a(i),c=0;c *) + +safe-buffer/index.js: + (*! safe-buffer. MIT License. Feross Aboukhadijeh *) + +@babel/runtime/helpers/regenerator.js: + (*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE *) +*/const uQe={clean:!0,connectTimeout:4e3,reconnectPeriod:1e3,qos:1},cQe="wss://push.cnsdt.com:443/mqtt";class dQe{constructor(){this.client=null,this.subscriptions=new Set,this.messageHandlers=new Map}connect(t){return this.client&&this.client.connected?Promise.resolve():new Promise((n,r)=>{this.client=lQe.connect(cQe,{...uQe,clientId:t||`client_${Math.random().toString(16).substr(2,8)}`}),this.client.on("connect",()=>n()),this.client.on("error",o=>r(o)),this.client.on("message",(o,s)=>{try{this.messageHandlers.forEach((a,i)=>{this.topicMatch(i,o)&&a.forEach(l=>l(s,o))})}catch(a){console.error("MQTT message parse error:",a)}})})}disconnect(){this.client&&(this.client.end(),this.client=null,this.subscriptions.clear(),this.messageHandlers.clear())}subscribe(t,n){if(!this.client||!this.client.connected){console.error("MQTT client not connected");return}this.subscriptions.has(t)||this.client.subscribe(t,{qos:1},o=>{o?console.error("Subscription error:",o):this.subscriptions.add(t)});const r=this.messageHandlers.get(t)||[];r.push(n),this.messageHandlers.set(t,r)}unsubscribe(t,n){if(this.subscriptions.has(t))if(n){const r=this.messageHandlers.get(t)||[],o=r.indexOf(n);o!==-1&&(r.splice(o,1),this.messageHandlers.set(t,r))}else this.client.unsubscribe(t),this.subscriptions.delete(t),this.messageHandlers.delete(t)}publish(t,n){if(!this.client||!this.client.connected){console.error("MQTT client not connected");return}this.client.publish(t,JSON.stringify(n),{qos:1})}topicMatch(t,n){const r=t.split("/"),o=n.split("/");for(let s=0;s{try{(await kE(o.value.room_uid,{status:5})).meta.code==200&&(hr({message:"已拒绝加入该协作",type:"error"}),r.value=!1)}catch(u){console.log(u,"error"),r.value=!1}finally{r.value=!1}},a=async()=>{(await kE(o.value.room_uid,{status:1})).meta.code==200&&(hr({message:"成功加入该协作",type:"success"}),r.value=!1,n.push({path:"/conferencingRoom",query:{room_uid:o.value.room_uid}})),r.value=!1},i=u=>{"Notification"in window&&Notification.requestPermission().then(c=>{if(c==="granted"){const d=new Notification("协作邀请",{body:"远程协作有新的邀请"});d.onclick=()=>{a()}}})};return t({processingSocket:u=>{const c=JSON.parse(u);console.log(c,"收到用户信息 邀请"),c!=null&&c.status?c.status==5&&hr({message:`${c==null?void 0:c.display_name}拒绝加入该协作`,type:"error"}):(o.value=c,r.value=!0,i(o.value))}}),(u,c)=>{const d=rt("el-button"),f=rt("el-dialog");return k(),Me(f,{modelValue:r.value,"onUpdate:modelValue":c[0]||(c[0]=p=>r.value=p),title:"远程协作",width:"400px","close-on-press-escape":!1,"close-on-click-modal":!1,"show-close":!1},{default:be(()=>[R("div",fQe,' " '+ze(o.value.room_name?o.value.room_name:"")+' " 邀请您参加远程协作 ',1),R("div",pQe,[me(d,{size:"large",type:"danger",style:{"font-size":"16px"},onClick:s},{default:be(()=>[...c[1]||(c[1]=[Ot(" 拒 绝 ",-1)])]),_:1}),me(d,{size:"large",type:"primary",style:{"font-size":"16px"},onClick:a},{default:be(()=>[...c[2]||(c[2]=[Ot(" 加 入 ",-1)])]),_:1})])]),_:1},8,["modelValue"])}}},mQe={class:"wrapper-content"},vQe={class:"content-nav"},gQe={class:"nav-right"},_Qe={class:"avatar-wrapper"},yQe={class:"username"},bQe={class:"sidebar-right"},wQe=992,SQe={__name:"index",setup(e){const t=h3(),n=Rm(),r=RO();gO();const o=ee(null),s=z(()=>t.theme),a=z(()=>r.sidebar),i=z(()=>r.device),l=z(()=>t.tagsView),u=z(()=>{if(n.name)return n.name;try{const g=sessionStorage.getItem("userData");if(g)return JSON.parse(g).name||""}catch(g){console.error("解析 userData 失败:",g)}return""}),c=z(()=>({hideSidebar:!a.value.opened,openSidebar:a.value.opened,withoutAnimation:a.value.withoutAnimation,mobile:i.value==="mobile"})),d=ee(null),{width:f}=Lx();Cr(()=>{i.value==="mobile"&&a.value.opened&&r.closeSideBar({withoutAnimation:!1}),f.value-1{n.logOut().then(()=>{location.href="/"})}).catch(()=>{hr({type:"info",message:"取消注销"})})}function v(){r.closeSideBar({withoutAnimation:!1})}return vt(async()=>{await NC.connect(`room${Math.random().toString(16).substr(2,8)}`);const b=`xSynergy/ROOM/+/rooms/${(await n.getInfo()).uid}`;NC.subscribe(b,async _=>{o.value&&o.value.processingSocket(_.toString())})}),(g,b)=>{const _=rt("el-dropdown-item"),y=rt("el-dropdown-menu"),S=rt("el-dropdown");return k(),D("div",mQe,[R("div",vQe,[b[2]||(b[2]=R("div",{class:"nav-left"},[R("div",null,"xSynergy远程协作系统")],-1)),R("div",gQe,[me(S,{trigger:"click",onCommand:p},{dropdown:be(()=>[me(y,null,{default:be(()=>[me(_,{command:"changePassword"},{default:be(()=>[...b[0]||(b[0]=[R("span",null,"修改密码",-1)])]),_:1}),me(_,{command:"logout",divided:""},{default:be(()=>[...b[1]||(b[1]=[R("span",null,"退出登录",-1)])]),_:1})]),_:1})]),default:be(()=>[R("div",_Qe,[R("span",yQe,ze(h(u)),1)])]),_:1})])]),R("div",{class:W([h(c),"app-wrapper"]),style:Je({"--current-color":h(s)})},[h(i)==="mobile"&&h(a).opened?(k(),D("div",{key:0,class:"drawer-bg",onClick:v})):Ae("",!0),R("div",{class:W(["main-container",{hasTagsView:h(l),sidebarHide:h(a).hide}])},[h(a).hide?Ae("",!0):(k(),Me(qYe,{key:0,class:"sidebar-container"})),R("div",bQe,[me(h(QYe))])],2)],6),me(h(ZYe),{ref_key:"resetPwdRef",ref:d},null,512),me(h(hQe),{ref_key:"inviteJoinRef",ref:o},null,512)])}}},LC=NO(SQe,[["__scopeId","data-v-1d387183"]]),fP=[{path:"/redirect",component:LC,hidden:!0,children:[{path:"/redirect/:path(.*)",component:()=>Zo(()=>import("./index-FyyzhRyL.js"),[])}]},{path:"/",redirect:"/login",hidden:!0},{path:"/login",component:()=>Zo(()=>import("./login-ZNL3XKVp.js"),__vite__mapDeps([0,1,2])),meta:{title:"登录"},hidden:!0},{path:"/whiteboard",component:()=>Zo(()=>import("./index-eGhvKdrr.js"),__vite__mapDeps([3,4,5])),meta:{title:"白板"},hidden:!0},{path:"/coordinate",redirect:"/coordinate/CoordinatePage",component:LC,children:[{path:"CoordinatePage",name:"Coordinate",component:()=>Zo(()=>import("./index-DB_z42wD.js"),__vite__mapDeps([6,7,4,8,9,10])),meta:{title:"远程协作",icon:"client",affix:!0}}]},{path:"/conferencingRoom",hidden:!0,children:[{path:"",name:"ConferencingRoom",component:()=>Zo(()=>import("./index-BEyUpNsD.js"),__vite__mapDeps([11,7,4,8,3,5,1,12])),meta:{title:"会议房间",icon:"client",affix:!0}}]},{path:"/:pathMatch(.*)*",component:()=>Zo(()=>import("./404-W2OpILVy.js"),__vite__mapDeps([13,14])),hidden:!0},{path:"/401",component:()=>Zo(()=>import("./401-BnzQ57U8.js"),__vite__mapDeps([15,16])),hidden:!0,meta:{title:"401未授权"}},{path:"/assistWx",component:()=>Zo(()=>import("./index-Dikrwr7L.js"),__vite__mapDeps([17,10])),meta:{title:"白板"},hidden:!0}],Qa=sGe({history:NKe("/"),routes:fP,scrollBehavior(e,t,n){return n||{top:0}}}),I3="token";function p0(){return sessionStorage.getItem(I3)}function EQe(e){return sessionStorage.setItem(I3,e)}function A3(){return sessionStorage.removeItem(I3)}function JQe(){try{const e=sessionStorage.getItem("userData");if(!e)return d2(),null;try{return JSON.parse(e)}catch(t){return console.error("用户数据格式错误,无法解析JSON:",t),sessionStorage.removeItem("userData"),d2(),null}}catch(e){return console.error("获取用户信息时发生错误:",e),d2(),null}}function d2(){A3(),Zo(async()=>{const{nextTick:e}=await Promise.resolve().then(()=>bk);return{nextTick:e}},void 0).then(({nextTick:e})=>{e(()=>{const t=Qa.currentRoute.value.fullPath;Qa.currentRoute.value.path!=="/login"?Qa.push({path:"/login",query:{redirect:t!=="/login"?t:void 0}}):window.location.reload()})})}function CQe(){var e=new Date().getTime(),t=typeof performance<"u"&&performance.now&&performance.now()*1e3||0;return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(n){var r=Math.random()*16;return e>0?(r=(e+r)%16|0,e=Math.floor(e/16)):(r=(t+r)%16|0,t=Math.floor(t/16)),(n==="x"?r:r&3|8).toString(16)})}const kQe=Kd("meter",{state:()=>({udid:""}),actions:{initUdid(){var e=window.localStorage.getItem("UDID");e||(e=CQe(),window.localStorage.setItem("UDID",e)),this.setUdid(e)},setUdid(e){this.udid=e},getUdid(){return this.udid},getSudid(){var e=new Uint8Array(this.udid.match(/[\da-f]{2}/gi).map(function(n){return parseInt(n,16)}));return btoa(String.fromCharCode.apply(null,e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}}});OO.defaults.headers["Content-Type"]="application/json;charset=utf-8";const TQe=()=>"",Qn=OO.create({baseURL:TQe()});Qn.interceptors.request.use(e=>{let t="";try{const o=kQe();o.udid||o.initUdid(),t=o.getSudid()}catch(o){console.warn("MeterStore 初始化失败:",o)}const n=(e.headers||{}).isToken===!1;p0()&&!n&&(e.headers.Authorization="Bearer "+p0());const r=(e.headers||{}).repeatSubmit===!1;if(t&&(e.headers["X-User-Agent"]=`gxtech/web 1.0.0: c=GxTech, udid=${t}, sv=15.4.1, app=stt`),e.method==="get"&&e.params){let o=e.url+"?"+tK(e.params);o=o.slice(0,-1),e.params={},e.url=o}if(!r&&(e.method==="post"||e.method==="put")){const o={url:e.url,data:typeof e.data=="object"?JSON.stringify(e.data):e.data,time:new Date().getTime()},s=Object.keys(JSON.stringify(o)).length,a=5*1024*1024;if(s>=a)return console.warn(`[${e.url}]: 请求数据大小超出允许的5M限制,无法进行防重复提交验证。`),e;const i=i2.session.getJSON("sessionObj");if(i==null||i==="")i2.session.setJSON("sessionObj",o);else{const l=i.url,u=i.data,c=i.time;if(u===o.data&&o.time-c<1e3&&l===o.url){const f="数据正在处理,请勿重复提交";return console.warn(`[${l}]: `+f),Promise.reject(new Error(f))}else i2.session.setJSON("sessionObj",o)}}return e},e=>{Promise.reject(e)});Qn.interceptors.response.use(e=>{var o,s,a;if(!e)return hr.error("无响应数据"),Promise.reject(new Error("无响应数据"));const t=e.data||{},n=e.status,r=((o=t.meta)==null?void 0:o.code)||n;if(e.request.responseType==="blob"||e.request.responseType==="arraybuffer")return t;switch(r){case 200:case 201:return Promise.resolve(t);case 401:return $Qe();case 500:const i=((s=t.meta)==null?void 0:s.message)||"服务器内部错误";return hr({message:i,type:"error"}),Promise.reject({code:500,message:i});default:const l=((a=t.meta)==null?void 0:a.message)||`业务错误 (${r})`;return rO.error({title:l}),Promise.reject({code:r,message:l})}},e=>{var r;let{message:t}=e,n=((r=e==null?void 0:e.response)==null?void 0:r.status)||-1;return t=="Network Error"?(t="后端接口连接异常",hr({message:t,type:"error",duration:5*1e3})):t.includes("timeout")?(t="系统接口请求超时",hr({message:t,type:"error",duration:5*1e3})):t.includes("Request failed with status code"),Promise.reject({code:n,message:t,raw:e})});function $Qe(){A3(),Zo(async()=>{const{nextTick:e}=await Promise.resolve().then(()=>bk);return{nextTick:e}},void 0).then(({nextTick:e})=>{e(()=>{const t=Qa.currentRoute.value.fullPath;Qa.currentRoute.value.path!=="/login"?Qa.push({path:"/login",query:{redirect:t!=="/login"?t:void 0}}):window.location.reload()})})}function xQe(e,t){return Qn({url:"/api/v1/auth/login",headers:{isToken:!1},method:"post",data:{username:e,password:t}})}function QQe(e){return Qn({url:`/api/v1/auth/users/${e}`,method:"get"})}function IQe(){return Qn({url:"/api/v1/auth/logout",method:"post"})}function AQe(e,t){return Qn({url:"/api/v1/auth/change-password",method:"post",data:{old_password:e,new_password:t}})}function BC(e){return Qn({url:"/api/v1/auth/check-password-strength",method:"post",data:{password:e}})}const Rm=Kd("user",{state:()=>({token:p0(),name:"",avatar:"",roles:""}),actions:{async login(e){var t;try{const{username:n,password:r}=e,o=n.trim(),s=await xQe(o,r);if(s.meta.code!==200)return hr({message:((t=s.meta)==null?void 0:t.message)||"登录失败",type:"error"}),Promise.reject(s);const{token:a,user:i}=s.data;this.name=i.name,sessionStorage.setItem("userData",JSON.stringify(i)),EQe(a),this.token=a}catch(n){throw console.error("登录失败:",n),n}},getInfo(){return new Promise((e,t)=>{try{const n=sessionStorage.getItem("userData");if(!n)return t(new Error("未找到用户数据"));const r=JSON.parse(n);if(!r)return t(new Error("用户数据格式无效"));e(r)}catch(n){console.error("获取用户信息失败:",n),t(n instanceof Error?n:new Error("解析用户数据失败"))}})},async logOut(){var e;try{const t=await IQe();if(t.meta.code!==200){hr({message:((e=t.meta)==null?void 0:e.message)||"退出登录失败",type:"error"});return}this.token="",this.roles="",sessionStorage.removeItem("userData"),A3()}catch(t){throw console.error("退出登录失败:",t),t}},checkLogin(){return!!p0()}}}),MQe={__name:"App",setup(e){return vt(()=>{try{const t=Rm()}catch(t){console.warn("App.vue: Pinia 初始化中...",t)}}),(t,n)=>(k(),Me(h(vO)))}},OQe=bL(),lc=Fy(MQe);Jq({app:lc,dsn:"https://34a0d76174a64db09d31d13a8042560b@sentry.cnsdt.com/2",integrations:[eK({router:Qa}),vq({maskAllText:!1,blockAllMedia:!1})],tracesSampleRate:1,replaysSessionSampleRate:.1,replaysOnErrorSampleRate:1,environment:"production",enabled:!0});for(const[e,t]of Object.entries(JCe))lc.component(e,t);lc.use(OQe);lc.use(Qa);lc.use(nKe,{locale:rKe});lc.mount("#app");export{qt as $,fn as A,At as B,Pe as C,Ae as D,hr as E,Ze as F,Je as G,Cr as H,GP as I,NC as J,tO as K,Xe as L,GQe as M,ia as N,pa as O,fa as P,ea as Q,vr as R,qx as S,Kd as T,Ht as U,On as V,Za as W,mt as X,W as Y,LQe as Z,NO as _,gO as a,NQe as a0,Xw as a1,JQe as a2,QQe as a3,HQe as a4,VQe as a5,UQe as a6,XQe as a7,YQe as a8,WQe as a9,qQe as aa,KQe as ab,X5e as ac,jQe as ad,da as ae,Qu as af,pbe as ag,vqe as ah,BQe as ai,ya as aj,Go as ak,z as b,D as c,me as d,rt as e,R as f,Me as g,Ot as h,Rm as i,gt as j,kQe as k,Be as l,vt as m,Rt as n,k as o,ct as p,rk as q,ee as r,h as s,ze as t,_O as u,Qn as v,be as w,Ce as x,rn as y,gn as z}; diff --git a/dist/assets/index-DikBC4WP.js.gz b/dist/assets/index-DikBC4WP.js.gz new file mode 100644 index 0000000..a4a17e1 Binary files /dev/null and b/dist/assets/index-DikBC4WP.js.gz differ diff --git a/dist/assets/index-Dikrwr7L.js b/dist/assets/index-Dikrwr7L.js new file mode 100644 index 0000000..35324ae --- /dev/null +++ b/dist/assets/index-Dikrwr7L.js @@ -0,0 +1 @@ +/* empty css */import{_ as S,r as f,b as B,c as u,d as i,w as l,e as v,o as s,f as a,t as m,F as g,g as _,h as r,E as d}from"./index-DikBC4WP.js";const E={class:"call-wrapper"},F={class:"avatar-section"},U=["src"],T={class:"user-name"},D={class:"status-text"},I={class:"control-section"},M={__name:"index",props:{mode:{type:String,default:"call"},avatarUrl:{type:String,default:"https://cdn-icons-png.flaticon.com/512/1946/1946429.png"},userName:{type:String,default:"对方用户"}},setup(o,{expose:y}){const k=o,n=f(!1),t=f("calling"),b=B(()=>k.mode==="call"?t.value==="calling"?"正在呼叫对方...":t.value==="active"?"通话中":"通话结束":t.value==="active"?"通话中":"对方来电...");function x(){t.value="active",d.success("开始通话")}function C(){t.value="active",d.success("已接听")}function p(){t.value="ended",d.error("通话已结束")}function h(){n.value=!1}function V(){n.value=!0}return y({show:V}),(j,e)=>{const c=v("el-button"),w=v("el-dialog");return s(),u("div",null,[i(w,{modelValue:n.value,"onUpdate:modelValue":e[0]||(e[0]=N=>n.value=N),width:"80%","show-close":!1,"destroy-on-close":!0,modal:!1,"lock-scroll":!0,"before-close":h,class:"call-dialog"},{default:l(()=>[a("div",E,[a("div",F,[a("img",{class:"avatar",src:o.avatarUrl,alt:"头像"},null,8,U),a("div",T,m(o.userName),1),a("div",D,m(b.value),1)]),a("div",I,[o.mode==="call"?(s(),u(g,{key:0},[t.value==="calling"?(s(),_(c,{key:0,type:"danger",round:"",class:"control-btn hangup",onClick:p},{default:l(()=>[...e[1]||(e[1]=[r(" 挂断 ",-1)])]),_:1})):(s(),_(c,{key:1,type:"primary",round:"",class:"control-btn call",onClick:x},{default:l(()=>[...e[2]||(e[2]=[r(" 呼叫中... ",-1)])]),_:1}))],64)):(s(),u(g,{key:1},[i(c,{type:"success",round:"",class:"control-btn accept",onClick:C},{default:l(()=>[...e[3]||(e[3]=[r(" 接听 ",-1)])]),_:1}),i(c,{type:"danger",round:"",class:"control-btn hangup",onClick:p},{default:l(()=>[...e[4]||(e[4]=[r(" 挂断 ",-1)])]),_:1})],64))])])]),_:1},8,["modelValue"])])}}},A=S(M,[["__scopeId","data-v-6baeba6a"]]);export{A as default}; diff --git a/dist/assets/index-Dikrwr7L.js.gz b/dist/assets/index-Dikrwr7L.js.gz new file mode 100644 index 0000000..c6d3dfb Binary files /dev/null and b/dist/assets/index-Dikrwr7L.js.gz differ diff --git a/dist/assets/index-Dw4wCXlI.css b/dist/assets/index-Dw4wCXlI.css new file mode 100644 index 0000000..bb195be --- /dev/null +++ b/dist/assets/index-Dw4wCXlI.css @@ -0,0 +1 @@ +.wrapper-content[data-v-aa0dd888]{display:flex;justify-content:center;align-items:center;height:calc(100vh - 60px);padding:0 40px;background:linear-gradient(135deg,#f5f7fa,#eef1f6)}.login-form[data-v-aa0dd888]{width:100%;max-width:520px;background:#fff;border-radius:20px;box-shadow:0 6px 20px #00000014;padding:60px 50px;display:flex;flex-direction:column;align-items:stretch;position:relative}.login-form .form-info[data-v-aa0dd888]{width:100%}.login-form .form-info .title[data-v-aa0dd888]{font-size:28px;font-weight:600;color:#051435;margin-bottom:40px}.login-form .form-info .el-form-item[data-v-aa0dd888]{margin-bottom:28px}.login-form .form-info[data-v-aa0dd888] .el-input__wrapper{border-radius:40px;background:#f8f9fb;border:1px solid #dbe1ec;padding:0 22px;transition:border-color .25s ease}.login-form .form-info[data-v-aa0dd888] .el-input__wrapper input{height:48px;font-size:16px;color:#051435}.login-form .form-info[data-v-aa0dd888] .el-input__wrapper:hover,.login-form .form-info[data-v-aa0dd888] .el-input__wrapper.is-focus{border-color:#00c8c4;box-shadow:0 0 0 2px #00c8c426}.login-form .form-info[data-v-aa0dd888] .el-form-item__error{font-size:13px;margin-top:6px;color:#f56c6c}.login-form .form-info .button-login[data-v-aa0dd888]{width:100%;height:50px;margin-top:10px;border-radius:35px;font-size:18px;font-weight:500;background:linear-gradient(135deg,#00c8c4,#00a5a1);border:none;color:#fff;letter-spacing:1px;transition:background .3s ease,transform .2s ease}.login-form .form-info .button-login[data-v-aa0dd888]:hover{background:linear-gradient(135deg,#00a5a1,#008f8b);transform:translateY(-2px)}.login-form .form-info .button-login[data-v-aa0dd888]:active{transform:translateY(0)}@media screen and (max-width: 768px){.wrapper-content[data-v-aa0dd888]{padding:20px}.login-form[data-v-aa0dd888]{padding:40px 25px;max-width:100%}.login-form .form-info .title[data-v-aa0dd888]{font-size:22px;margin-bottom:30px}.login-form .form-info .button-login[data-v-aa0dd888]{height:44px;font-size:16px}.login-form .form-info[data-v-aa0dd888] .el-input__wrapper{padding:0 18px}.login-form .form-info[data-v-aa0dd888] .el-input__wrapper input{height:42px;font-size:15px}}.drawer-content[data-v-082d2e76]{padding:0 10px}.search-section[data-v-082d2e76]{margin-bottom:16px}.selected-section[data-v-082d2e76]{margin-bottom:16px;padding:12px;background-color:#f5f7fa;border-radius:4px}.selected-header[data-v-082d2e76]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:14px;color:#606266}.selected-tags[data-v-082d2e76]{display:flex;flex-wrap:wrap;gap:8px}.selected-tag[data-v-082d2e76]{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-item[data-v-082d2e76]{display:flex;align-items:center;height:36px;font-size:14px}.tree-item .tree-item-content[data-v-082d2e76]{display:flex;align-items:center;width:100%}.tree-item .user-icon[data-v-082d2e76],.tree-item .dept-icon[data-v-082d2e76]{margin-right:8px;font-size:16px}.tree-item .tree-item-text[data-v-082d2e76]{color:#333;font-weight:500}.tree-item .user-count[data-v-082d2e76]{margin-left:6px;color:#999;font-size:12px}.footer-actions[data-v-082d2e76]{display:flex;justify-content:flex-end;gap:12px}[data-v-082d2e76] .el-tree-node__content{height:40px}[data-v-082d2e76] .el-tree-node.is-current>.el-tree-node__content{background-color:#f0f7ff}.avatar-uploader .el-upload{width:345px;height:180px}.avatar-uploader .el-upload-list__item-thumbnail{height:180px}@media (max-width: 765px){.el-dialog{width:80%!important}}.drawer-content[data-v-071490ec]{padding:0 10px;height:100%;display:flex;flex-direction:column}.upload-section[data-v-071490ec]{padding:15px 0;border-bottom:1px solid #e8e8e8;margin-bottom:15px}.file-list[data-v-071490ec]{flex:1;overflow-y:auto}.file-item[data-v-071490ec]{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #f0f0f0}.file-item[data-v-071490ec]:last-child{border-bottom:none}.file-info[data-v-071490ec]{display:flex;align-items:center;flex:1;min-width:0}.file-icon[data-v-071490ec]{margin-right:12px;flex-shrink:0}.file-icon-img[data-v-071490ec]{width:40px;height:40px;-o-object-fit:contain;object-fit:contain}.file-details[data-v-071490ec]{flex:1;min-width:0;overflow:hidden}.file-name[data-v-071490ec]{font-weight:500;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-meta[data-v-071490ec]{font-size:12px;color:#909399}.file-actions[data-v-071490ec]{display:flex;gap:8px;flex-shrink:0;margin-left:10px}.empty-state[data-v-071490ec]{display:flex;justify-content:center;align-items:center;height:200px}.loading-state[data-v-071490ec]{padding:10px 0}.loading-container[data-v-42ecdcb9]{position:fixed;top:0;left:0;width:100%;height:100%;background:#0f0f1af2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:9999}.loading-content[data-v-42ecdcb9]{text-align:center;color:#fff}.loading-icon[data-v-42ecdcb9]{font-size:48px;color:#409eff;margin-bottom:16px;animation:spin-42ecdcb9 1s linear infinite}.loading-content p[data-v-42ecdcb9]{margin:0;font-size:16px;color:#a0a0b0}@keyframes spin-42ecdcb9{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.content-layers-container[data-v-42ecdcb9]{position:relative;width:100%;height:100%}.content-layer[data-v-42ecdcb9]{position:absolute;top:0;left:0;width:100%;height:100%;transition:all .3s ease;z-index:1}.content-layer.active-layer[data-v-42ecdcb9]{z-index:10}.screen-video-layer .enlarged-video-wrapper[data-v-42ecdcb9],.screen-video-layer .screen-share-wrapper[data-v-42ecdcb9]{width:100%;height:95%}.screen-video-layer .enlarged-video-element[data-v-42ecdcb9],.screen-video-layer .screen-share-element[data-v-42ecdcb9]{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;background:#000;border-radius:8px}.whiteboard-layer .whiteboard-component[data-v-42ecdcb9]{width:100%;height:100%}.content-layer[data-v-42ecdcb9]:not(.active-layer){opacity:0;pointer-events:none;visibility:hidden}.content-layer.active-layer[data-v-42ecdcb9]{opacity:1;visibility:visible}.laser-pointer-canvas[data-v-42ecdcb9]{position:absolute;top:0;left:0;z-index:20;pointer-events:auto;cursor:crosshair}.enlarged-laser-canvas[data-v-42ecdcb9]{position:absolute;top:0;left:0;z-index:10;pointer-events:none}.enlarged-laser-canvas.active[data-v-42ecdcb9]{pointer-events:auto;cursor:crosshair}.enlarged-video-container[data-v-42ecdcb9],.enlarged-video-wrapper[data-v-42ecdcb9]{position:relative;width:100%;height:100%}.enlarged-video-element[data-v-42ecdcb9]{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.audio-on[data-v-42ecdcb9]{color:#67c23a}.audio-off[data-v-42ecdcb9]{color:#f56c6c}.status-indicator .el-icon[data-v-42ecdcb9]{margin-right:4px;font-size:18px}.participant-actions[data-v-42ecdcb9]{display:flex;gap:4px}.enlarge-btn[data-v-42ecdcb9]{padding:4px;color:#a0a0b0;transition:all .3s ease}.enlarge-btn[data-v-42ecdcb9]:hover{color:#409eff;background:#409eff1a}.close-enlarge-btn[data-v-42ecdcb9]{margin-left:auto}.enlarged-video-container[data-v-42ecdcb9]{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.enlarged-video-wrapper[data-v-42ecdcb9]{width:100%;height:100%;max-width:100%;max-height:100%;position:relative}.laser-pointer-indicator[data-v-42ecdcb9]{color:red;font-size:12px;display:flex;align-items:center;gap:4px;margin-left:12px}.laser-pointer-indicator i[data-v-42ecdcb9]{font-size:14px;animation:pulse-42ecdcb9 1.5s infinite}.screen-share-wrapper[data-v-42ecdcb9]{position:relative}.whiteboard-container[data-v-42ecdcb9]{width:100%;height:100%;background:#f8f9fa;border-radius:8px;overflow:hidden}.whiteboard-component[data-v-42ecdcb9]{width:100%;height:100%}.audio-indicator[data-v-42ecdcb9]{margin-left:8px;font-size:12px}.audio-indicator.muted[data-v-42ecdcb9]{color:#f56c6c}.audio-indicator[data-v-42ecdcb9]:not(.muted){color:#67c23a}@keyframes pulse-42ecdcb9{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.audio-element[data-v-42ecdcb9],.participant-audio[data-v-42ecdcb9]{display:none}.control-dropdown[data-v-42ecdcb9]{margin:0}.control-dropdown .el-button[data-v-42ecdcb9]{display:flex;align-items:center;gap:4px}.selected-device[data-v-42ecdcb9]{background-color:#f0f9ff;color:#409eff;font-weight:500}.check-icon[data-v-42ecdcb9]{margin-left:auto;color:#67c23a}[data-v-42ecdcb9]{box-sizing:border-box}body[data-v-42ecdcb9]{margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#0f0f1a;color:#e0e0e0}.livekit-container[data-v-42ecdcb9]{min-height:100vh;padding:20px;background:linear-gradient(135deg,#0f0f1a,#1a1a2e)}.meeting-container[data-v-42ecdcb9]{width:calc(100vw - 42px);margin:0 auto;padding:20px}.video-layout[data-v-42ecdcb9]{display:flex;flex-direction:column;gap:20px;height:calc(100vh - 80px)}.video-layout.screen-sharing-active[data-v-42ecdcb9]{flex-direction:row;gap:20px}.screen-share-area[data-v-42ecdcb9]{flex:3;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;border:1px solid rgba(255,255,255,.1);overflow:hidden;display:flex;flex-direction:column}.screen-share-header[data-v-42ecdcb9]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:#0003;border-bottom:1px solid rgba(255,255,255,.05)}.screen-share-header h3[data-v-42ecdcb9]{margin:0;font-size:18px;font-weight:600;color:#fff}.sharing-user[data-v-42ecdcb9]{color:#a0a0b0;font-size:14px}.screen-share-video[data-v-42ecdcb9]{flex:1;display:flex;align-items:center;justify-content:center;padding:20px}.screen-share-wrapper[data-v-42ecdcb9]{width:100%;height:calc(100% - 36px);max-height:100%}.screen-share-element[data-v-42ecdcb9]{width:100%;height:96%;-o-object-fit:contain;object-fit:contain;background:#000;border-radius:8px}.participants-area[data-v-42ecdcb9]{flex:1;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;border:1px solid rgba(255,255,255,.1);overflow:hidden;display:flex;flex-direction:column}.participants-area.with-screen-share[data-v-42ecdcb9]{max-width:400px}.participants-header[data-v-42ecdcb9]{padding:16px 20px;background:#0003;border-bottom:1px solid rgba(255,255,255,.05)}.participants-header h3[data-v-42ecdcb9]{margin:0;font-size:18px;font-weight:600;color:#fff}.video-grid[data-v-42ecdcb9]{flex:1;display:flex;flex-direction:column;gap:16px;padding:16px;overflow-y:auto;max-height:calc(100vh - 200px);margin-bottom:80px}.video-grid.grid-layout[data-v-42ecdcb9]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;align-items:start}.participant-card[data-v-42ecdcb9]{background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;border:1px solid rgba(255,255,255,.1);overflow:hidden;transition:all .3s ease;box-shadow:0 4px 20px #0003;display:flex;flex-direction:column;min-height:280px}.video-grid.grid-layout .video-wrapper[data-v-42ecdcb9]{height:200px}.participant-card[data-v-42ecdcb9]:hover{transform:translateY(-2px);box-shadow:0 6px 24px #0000004d}.local-participant[data-v-42ecdcb9]{border:2px solid rgba(74,108,247,.5)}.participant-header[data-v-42ecdcb9]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#0003;border-bottom:1px solid rgba(255,255,255,.05)}.participant-header h3[data-v-42ecdcb9]{margin:0;font-size:14px;font-weight:600;color:#fff}.status-indicator[data-v-42ecdcb9]{display:flex;align-items:center;gap:6px;font-size:12px;color:#a0a0b0}.video-wrapper[data-v-42ecdcb9]{position:relative;width:100%;height:calc(100% - 36px);overflow:hidden;background:#000;border-radius:8px}.video-element[data-v-42ecdcb9]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;background:#000}.video-overlay[data-v-42ecdcb9]{position:absolute;bottom:0;left:0;right:0;padding:8px 12px;background:linear-gradient(transparent,#000000b3);color:#fff;display:flex;justify-content:space-between;align-items:center;z-index:2}.participant-name[data-v-42ecdcb9]{font-size:12px;font-weight:500}.video-placeholder[data-v-42ecdcb9]{width:100%;height:100%;background:linear-gradient(135deg,#2a2a3a,#1a1a2a);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#a0a0b0;font-size:14px;position:absolute;top:0;left:0}.video-placeholder i[data-v-42ecdcb9]{font-size:32px;margin-bottom:8px;color:#4a4a5a}.fixed-controls[data-v-42ecdcb9]{position:fixed;bottom:0;left:0;right:0;background:#0f0f1af2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid rgba(255,255,255,.1);padding:16px 20px;z-index:1000}.controls-container[data-v-42ecdcb9]{display:flex;justify-content:center;align-items:center;gap:16px;max-width:1200px;margin:0 auto}.control-btn[data-v-42ecdcb9]{border-radius:12px;border:none;font-weight:600;transition:all .3s ease;padding:12px 24px;font-size:14px;box-shadow:0 4px 12px #0003}.control-btn[data-v-42ecdcb9]:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0000004d}.control-btn i[data-v-42ecdcb9]{margin-right:8px;font-size:16px}.dropdown-btn[data-v-42ecdcb9]{width:40px;height:40px;display:flex;align-items:center;justify-content:center}.selected-device[data-v-42ecdcb9]{background-color:#f0f7ff;color:#409eff}.check-icon[data-v-42ecdcb9]{margin-left:8px;color:#67c23a}.microphone-control-group[data-v-42ecdcb9]{display:flex;align-items:center;background:#ffffff0d;border-radius:12px;overflow:hidden;box-shadow:0 4px 12px #0003;border:1px solid rgba(255,255,255,.1)}.microphone-control-group .microphone-btn[data-v-42ecdcb9]{border-radius:12px 0 0 12px;border:none;box-shadow:none;margin:0}.microphone-control-group .microphone-dropdown[data-v-42ecdcb9]{margin:0}.microphone-control-group .dropdown-btn[data-v-42ecdcb9]{border-radius:0 12px 12px 0;border:none;border-left:1px solid rgba(255,255,255,.1);box-shadow:none;width:44px;height:40px;display:flex;align-items:center;justify-content:center}.microphone-control-group[data-v-42ecdcb9]:hover{border-color:#fff3;box-shadow:0 6px 16px #0000004d}.microphone-control-group .control-btn[data-v-42ecdcb9]:hover{transform:none}@media (max-width: 768px){.microphone-control-group[data-v-42ecdcb9]{flex:1;min-width:160px}.microphone-control-group .microphone-btn[data-v-42ecdcb9]{flex:1}.microphone-control-group .dropdown-btn[data-v-42ecdcb9]{width:40px;height:40px}.whiteboard-container[data-v-42ecdcb9]{height:300px}.video-layout.screen-sharing-active[data-v-42ecdcb9]{flex-direction:column}.participants-area.with-screen-share[data-v-42ecdcb9]{max-width:100%}.video-grid.grid-layout[data-v-42ecdcb9]{grid-template-columns:1fr}.fixed-controls[data-v-42ecdcb9]{padding:12px 16px}.controls-container[data-v-42ecdcb9]{gap:8px;flex-wrap:wrap}.control-btn[data-v-42ecdcb9]{padding:10px 16px;font-size:12px;flex:1;min-width:120px}.control-btn i[data-v-42ecdcb9]{margin-right:6px;font-size:14px}}@media (min-width: 769px) and (max-width: 1200px){.video-grid.grid-layout[data-v-42ecdcb9]{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}@media (min-width: 1201px){.video-grid.grid-layout[data-v-42ecdcb9]{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}@media (max-width: 480px){.microphone-control-group[data-v-42ecdcb9]{min-width:140px}.microphone-control-group .microphone-btn[data-v-42ecdcb9]{font-size:11px;padding:8px 10px}.microphone-control-group .dropdown-btn[data-v-42ecdcb9]{width:36px;height:40px}.controls-container[data-v-42ecdcb9]{gap:6px}.control-btn[data-v-42ecdcb9]{padding:8px 12px;font-size:11px;min-width:100px}.control-btn i[data-v-42ecdcb9]{margin-right:4px;font-size:12px}} diff --git a/dist/assets/index-Dw4wCXlI.css.gz b/dist/assets/index-Dw4wCXlI.css.gz new file mode 100644 index 0000000..51946cf Binary files /dev/null and b/dist/assets/index-Dw4wCXlI.css.gz differ diff --git a/dist/assets/index-FyyzhRyL.js b/dist/assets/index-FyyzhRyL.js new file mode 100644 index 0000000..51d4577 --- /dev/null +++ b/dist/assets/index-FyyzhRyL.js @@ -0,0 +1 @@ +import{u as s,a as c,c as n,o as u}from"./index-DikBC4WP.js";const i={__name:"index",setup(p){const e=s(),t=c(),{params:o,query:a}=e,{path:r}=o;return t.replace({path:"/"+r,query:a}),(_,m)=>(u(),n("div"))}};export{i as default}; diff --git a/dist/assets/index-MzbCaf1h.css b/dist/assets/index-MzbCaf1h.css new file mode 100644 index 0000000..f801b31 --- /dev/null +++ b/dist/assets/index-MzbCaf1h.css @@ -0,0 +1 @@ +.call-dialog[data-v-6baeba6a] .el-dialog{background:transparent;box-shadow:none;padding:0;margin:0;border-radius:0;height:70vh;width:100%;max-width:none;display:flex;align-items:center;justify-content:center}.call-dialog[data-v-6baeba6a] .el-dialog__body{padding:0;height:100%}.call-wrapper[data-v-6baeba6a]{display:flex;flex-direction:column;justify-content:space-between;align-items:center;height:70vh;width:100%;background:linear-gradient(180deg,#0f2027,#203a43,#2c5364);color:#fff;box-sizing:border-box;padding:80px 0;position:relative}.avatar-section[data-v-6baeba6a]{display:flex;flex-direction:column;align-items:center}.avatar[data-v-6baeba6a]{width:180px;height:180px;border-radius:50%;border:6px solid rgba(255,255,255,.25);box-shadow:0 0 40px #0006;-o-object-fit:cover;object-fit:cover;transition:transform .3s ease}.avatar[data-v-6baeba6a]:hover{transform:scale(1.05)}.user-name[data-v-6baeba6a]{margin-top:24px;font-size:26px;font-weight:600;color:#fff}.status-text[data-v-6baeba6a]{margin-top:12px;font-size:18px;opacity:.8}.control-section[data-v-6baeba6a]{display:flex;justify-content:center;align-items:center;gap:80px}.control-btn[data-v-6baeba6a]{width:160px;height:60px;font-size:18px;font-weight:500;letter-spacing:1px;transition:all .3s ease}.control-btn[data-v-6baeba6a]:hover{transform:scale(1.05)}.control-btn.accept[data-v-6baeba6a]{background:linear-gradient(135deg,#00c853,#4caf50);color:#fff;border:none}.control-btn.hangup[data-v-6baeba6a]{background:linear-gradient(135deg,#ff1744,#d50000);color:#fff;border:none}.control-btn.call[data-v-6baeba6a]{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff;border:none} diff --git a/dist/assets/index-MzbCaf1h.css.gz b/dist/assets/index-MzbCaf1h.css.gz new file mode 100644 index 0000000..e6203a9 Binary files /dev/null and b/dist/assets/index-MzbCaf1h.css.gz differ diff --git a/dist/assets/index-NNRUZ5z2.css b/dist/assets/index-NNRUZ5z2.css new file mode 100644 index 0000000..f56ee16 --- /dev/null +++ b/dist/assets/index-NNRUZ5z2.css @@ -0,0 +1 @@ +.tool-mid-box-left[data-v-d6b920d5]{width:40px;display:flex;border-radius:4px;background-color:#fff;justify-content:flex-start;align-items:center;flex-direction:column;padding:4px 0;box-shadow:0 8px 24px #0000001a}.tool-box-cell[data-v-d6b920d5]{width:24px;height:24px;display:flex;justify-content:center;align-items:center;cursor:pointer;position:relative}.tool-box-cell-box-left[data-v-d6b920d5]{width:32px;height:32px;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;display:flex;justify-content:center;align-items:center;border-radius:2px;position:relative}.tool-box-cell-box-left[data-v-d6b920d5]:hover{background:#2123241a}.tool-popup[data-v-d6b920d5]{position:absolute;left:40px;top:50%;transform:translateY(-50%);background:#fff;padding:6px;border-radius:4px;box-shadow:0 4px 12px #00000026;z-index:1000}.wrapper-content[data-v-119f18fe]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;background:#fff;position:relative}.login-button-container[data-v-119f18fe]{display:flex;justify-content:center;align-items:center}.whiteboard-wrapper[data-v-119f18fe]{position:relative;width:72vw;height:69vh;box-sizing:border-box;display:flex;justify-content:center;align-items:center;overflow:hidden}.whiteboard-canvas[data-v-119f18fe]{width:100%;height:100%;display:block}.toolbox[data-v-119f18fe]{position:absolute;top:50%;left:40px;transform:translateY(-50%);z-index:1000} diff --git a/dist/assets/index-NNRUZ5z2.css.gz b/dist/assets/index-NNRUZ5z2.css.gz new file mode 100644 index 0000000..d730d98 Binary files /dev/null and b/dist/assets/index-NNRUZ5z2.css.gz differ diff --git a/dist/assets/index-eGhvKdrr.js b/dist/assets/index-eGhvKdrr.js new file mode 100644 index 0000000..b4cefd3 --- /dev/null +++ b/dist/assets/index-eGhvKdrr.js @@ -0,0 +1 @@ +import{v as R,J as C,k as Z,E as y,_ as I,r as g,m as V,A as G,c as m,F as D,B,e as f,o as p,d as k,D as _,w as L,f as b,L as z,N as K,g as X,ah as Y,u as ee,h as te}from"./index-DikBC4WP.js";import{e as se,m as ie}from"./bus-C8MdfDPM.js";const h=[];for(let i=0;i<256;++i)h.push((i+256).toString(16).slice(1));function ne(i,e=0){return(h[i[e+0]]+h[i[e+1]]+h[i[e+2]]+h[i[e+3]]+"-"+h[i[e+4]]+h[i[e+5]]+"-"+h[i[e+6]]+h[i[e+7]]+"-"+h[i[e+8]]+h[i[e+9]]+"-"+h[i[e+10]]+h[i[e+11]]+h[i[e+12]]+h[i[e+13]]+h[i[e+14]]+h[i[e+15]]).toLowerCase()}let S;const oe=new Uint8Array(16);function ae(){if(!S){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");S=crypto.getRandomValues.bind(crypto)}return S(oe)}const re=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),F={randomUUID:re};function ce(i,e,t){var s;if(F.randomUUID&&!i)return F.randomUUID();i=i||{};const n=i.random??((s=i.rng)==null?void 0:s.call(i))??ae();if(n.length<16)throw new Error("Random bytes length must be >= 16");return n[6]=n[6]&15|64,n[8]=n[8]&63|128,ne(n)}const le=(i,e)=>R({url:`/api/v1/whiteboard/rooms/${e}/shapes`,method:"put",data:i}),A=(i,e)=>R({url:`/api/v1/whiteboard/rooms/${e}/history`,method:"get",params:i}),P=Z();P.initUdid();let T=!1,M=null;function he(){const i=sessionStorage.getItem("userData");if(!i)return null;try{return JSON.parse(i)}catch(e){return console.error("解析 userData 失败:",e),null}}const de={async init(i,e){if(!i||!e)return;M=i;const t=he(),n=t==null?void 0:t.uid;try{await C.connect(P.getSudid());const s=await A({after_timestamp:0},e);s.meta.code===200&&s.data.shapes.length>0?M.addShape(s.data.shapes):s.meta.code===401&&se.emit("whiteboardFailed",!0);const o=`xSynergy/ROOM/${e}/whiteboard/#`;C.subscribe(o,async c=>{const r=JSON.parse(c.toString());try{if(T=!0,r.user_uid===n)return;const a=await A({after_timestamp:r.created_at},e);a.meta.code===200?M.addShape(a.data.shapes):(y.error("获取历史数据失败"),console.error("获取历史数据失败"))}catch(a){console.error("处理MQTT数据失败:",a)}finally{T=!1}})}catch(s){console.log("初始化多人同步失败:",s)}i.on("drawingEnd",async s=>{if(!(T||!["pencil","line","rectangle","circle","eraser"].includes(s.type))&&!(s.user_uid&&s.user_uid===n)){s.room_uid=e;try{await le(s,e)}catch(o){y.error("提交形状失败"),console.error("提交形状失败:",o)}}}),i.on("clear",async()=>{})}},ue="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='24px'%20height='24px'%20viewBox='0%200%2024%2024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3efollow备份%203%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cg%20id='切图'%20transform='translate(-8.000000,%20-44.000000)'%20stroke='%23444E60'%3e%3cg%20id='folder备份'%20transform='translate(8.000000,%2044.000000)'%3e%3cpath%20d='M15.2700286,11.5822879%20L9.44305056,17.4092659%20C9.06480988,17.7875066%208.55180543,18%208.01689232,18%20L6,18%20L6,18%20L6,15.9831077%20C6,15.4481946%206.2124934,14.9351901%206.59073408,14.5569494%20L14.5569494,6.59073408%20C15.3445949,5.80308864%2016.6216205,5.80308864%2017.4092659,6.59073408%20C18.1969114,7.37837953%2018.1969114,8.65540512%2017.4092659,9.44305056%20L17.4092659,9.44305056%20L17.4092659,9.44305056%20C18.1969114,10.230696%2018.1969114,11.5077216%2017.4092659,12.295367%20L14.5569494,15.1476835%20L14.5569494,15.1476835'%20id='路径'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",ge="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='24px'%20height='24px'%20viewBox='0%200%2024%2024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3efollow备份%203%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cg%20id='切图'%20transform='translate(-48.000000,%20-44.000000)'%20stroke='%233381FF'%3e%3cg%20id='folder备份'%20transform='translate(48.000000,%2044.000000)'%3e%3cpath%20d='M15.2700286,11.5822879%20L9.44305056,17.4092659%20C9.06480988,17.7875066%208.55180543,18%208.01689232,18%20L6,18%20L6,18%20L6,15.9831077%20C6,15.4481946%206.2124934,14.9351901%206.59073408,14.5569494%20L14.5569494,6.59073408%20C15.3445949,5.80308864%2016.6216205,5.80308864%2017.4092659,6.59073408%20C18.1969114,7.37837953%2018.1969114,8.65540512%2017.4092659,9.44305056%20L17.4092659,9.44305056%20L17.4092659,9.44305056%20C18.1969114,10.230696%2018.1969114,11.5077216%2017.4092659,12.295367%20L14.5569494,15.1476835%20L14.5569494,15.1476835'%20id='路径'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",ve="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='24px'%20height='24px'%20viewBox='0%200%2024%2024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3e矩形备份%2025%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%3e%3cg%20id='切图'%20transform='translate(-8.000000,%20-116.000000)'%20stroke='%23444E60'%3e%3cg%20id='编组-3'%20transform='translate(8.000000,%20116.000000)'%3e%3cline%20x1='11'%20y1='8'%20x2='16'%20y2='13'%20id='路径-26'%3e%3c/line%3e%3cpath%20d='M15.5,6.16666667%20L17.8333333,8.5%20C18.4776655,9.14433221%2018.4776655,10.1890011%2017.8333333,10.8333333%20L12,16.6666667%20C10.7113356,17.9553311%208.62199775,17.9553311%207.33333333,16.6666667%20L6.16666667,15.5%20C5.52233446,14.8556678%205.52233446,13.8109989%206.16666667,13.1666667%20L13.1666667,6.16666667%20C13.8109989,5.52233446%2014.8556678,5.52233446%2015.5,6.16666667%20Z'%20id='矩形'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",we="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='24px'%20height='24px'%20viewBox='0%200%2024%2024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3e矩形备份%2025%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%3e%3cg%20id='切图'%20transform='translate(-48.000000,%20-116.000000)'%20stroke='%233381FF'%3e%3cg%20id='编组-3'%20transform='translate(48.000000,%20116.000000)'%3e%3cline%20x1='11'%20y1='8'%20x2='16'%20y2='13'%20id='路径-26'%3e%3c/line%3e%3cpath%20d='M15.5,6.16666667%20L17.8333333,8.5%20C18.4776655,9.14433221%2018.4776655,10.1890011%2017.8333333,10.8333333%20L12,16.6666667%20C10.7113356,17.9553311%208.62199775,17.9553311%207.33333333,16.6666667%20L6.16666667,15.5%20C5.52233446,14.8556678%205.52233446,13.8109989%206.16666667,13.1666667%20L13.1666667,6.16666667%20C13.8109989,5.52233446%2014.8556678,5.52233446%2015.5,6.16666667%20Z'%20id='矩形'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",pe="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='24px'%20height='24px'%20viewBox='0%200%2024%2024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3efolder备份%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%20stroke-linejoin='round'%3e%3cg%20id='切图'%20transform='translate(-8.000000,%20-368.000000)'%20stroke='%23444E60'%3e%3cg%20id='folder备份'%20transform='translate(8.000000,%20368.000000)'%3e%3crect%20id='矩形'%20x='6'%20y='6'%20width='12'%20height='12'%20rx='6'%3e%3c/rect%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",xe="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='24px'%20height='24px'%20viewBox='0%200%2024%2024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3efolder备份%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%20stroke-linejoin='round'%3e%3cg%20id='切图'%20transform='translate(-48.000000,%20-368.000000)'%20stroke='%233381FF'%3e%3cg%20id='folder备份'%20transform='translate(48.000000,%20368.000000)'%3e%3crect%20id='矩形'%20x='6'%20y='6'%20width='12'%20height='12'%20rx='6'%3e%3c/rect%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",me="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='24px'%20height='24px'%20viewBox='0%200%2024%2024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3efolder备份%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%20stroke-linejoin='round'%3e%3cg%20id='切图'%20transform='translate(-8.000000,%20-332.000000)'%20stroke='%23444E60'%3e%3cg%20id='folder备份'%20transform='translate(8.000000,%20332.000000)'%3e%3crect%20id='矩形'%20x='6'%20y='6'%20width='12'%20height='12'%20rx='2'%3e%3c/rect%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",fe="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='24px'%20height='24px'%20viewBox='0%200%2024%2024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3efolder备份%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%20stroke-linejoin='round'%3e%3cg%20id='切图'%20transform='translate(-48.000000,%20-332.000000)'%20stroke='%233381FF'%3e%3cg%20id='folder备份'%20transform='translate(48.000000,%20332.000000)'%3e%3crect%20id='矩形'%20x='6'%20y='6'%20width='12'%20height='12'%20rx='2'%3e%3c/rect%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",ke="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='24px'%20height='24px'%20viewBox='0%200%2024%2024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3efollow备份%205%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cg%20id='切图'%20transform='translate(-8.000000,%20-404.000000)'%20stroke='%23444E60'%3e%3cg%20id='folder备份-2'%20transform='translate(8.000000,%20404.000000)'%3e%3cline%20x1='6'%20y1='18'%20x2='18'%20y2='6'%20id='路径-2'%3e%3c/line%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",ye="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='24px'%20height='24px'%20viewBox='0%200%2024%2024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3efollow备份%207%3c/title%3e%3cg%20id='页面-1'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cg%20id='切图'%20transform='translate(-48.000000,%20-404.000000)'%20stroke='%233381FF'%3e%3cg%20id='folder备份-2'%20transform='translate(48.000000,%20404.000000)'%3e%3cline%20x1='6'%20y1='18'%20x2='18'%20y2='6'%20id='路径-2'%3e%3c/line%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",be="/assets/brushSize-BKGQxoQG.svg",Se="/assets/brushSize-active-BDmIZAig.svg",Te="data:image/svg+xml,%3csvg%20t='1757644652588'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='8843'%20width='18'%20height='18'%3e%3cpath%20d='M512%2085.3248c235.5968%200%20426.6752%20169.728%20426.6752%20379.264a237.1328%20237.1328%200%200%201-237.056%20237.0304H617.728a71.0656%2071.0656%200%200%200-71.1168%2071.1168c0%2017.9968%207.1168%2034.6112%2017.9968%2046.9248a71.68%2071.68%200%200%201%2018.5088%2047.872c0%2039.3984-32.7168%2071.1424-71.1168%2071.1424-235.5968%200-426.6752-191.0784-426.6752-426.6752%200-235.5968%20191.0784-426.6752%20426.6752-426.6752z%20m-50.7392%20687.4112a156.3136%20156.3136%200%200%201%20156.4672-156.4672h83.8912a151.808%20151.808%200%200%200%20151.7056-151.6288c0-160.0512-150.6816-293.9648-341.3248-293.9648a341.3504%20341.3504%200%200%200-28.8512%20681.472%20155.648%20155.648%200%200%201-21.888-79.36v-0.0512zM320%20512a64%2064%200%201%201%200-128%2064%2064%200%200%201%200%20128z%20m384%200a64%2064%200%201%201%200-128%2064%2064%200%200%201%200%20128zM512%20384a64%2064%200%201%201%200-128%2064%2064%200%200%201%200%20128z'%20p-id='8844'%20fill='%23444e60'%3e%3c/path%3e%3c/svg%3e",Me="data:image/svg+xml,%3csvg%20t='1757644652588'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='8843'%20width='18'%20height='18'%3e%3cpath%20d='M512%2085.3248c235.5968%200%20426.6752%20169.728%20426.6752%20379.264a237.1328%20237.1328%200%200%201-237.056%20237.0304H617.728a71.0656%2071.0656%200%200%200-71.1168%2071.1168c0%2017.9968%207.1168%2034.6112%2017.9968%2046.9248a71.68%2071.68%200%200%201%2018.5088%2047.872c0%2039.3984-32.7168%2071.1424-71.1168%2071.1424-235.5968%200-426.6752-191.0784-426.6752-426.6752%200-235.5968%20191.0784-426.6752%20426.6752-426.6752z%20m-50.7392%20687.4112a156.3136%20156.3136%200%200%201%20156.4672-156.4672h83.8912a151.808%20151.808%200%200%200%20151.7056-151.6288c0-160.0512-150.6816-293.9648-341.3248-293.9648a341.3504%20341.3504%200%200%200-28.8512%20681.472%20155.648%20155.648%200%200%201-21.888-79.36v-0.0512zM320%20512a64%2064%200%201%201%200-128%2064%2064%200%200%201%200%20128z%20m384%200a64%2064%200%201%201%200-128%2064%2064%200%200%201%200%20128zM512%20384a64%2064%200%201%201%200-128%2064%2064%200%200%201%200%20128z'%20p-id='8844'%20fill='%233381ff'%3e%3c/path%3e%3c/svg%3e",Ce={class:"tool-mid-box-left"},_e=["onClick"],Le=["src","alt"],ze={key:0,class:"tool-popup"},Ee={key:1,class:"tool-popup"},Ue={__name:"index",props:{canvas:{type:Object,required:!0,validator:i=>i&&typeof i.setDrawingTool=="function"}},setup(i){const e=i,t=g([{name:"笔",icon:ue,iconActive:ge,shapeType:"pencil"},{name:"圆形",icon:pe,iconActive:xe,shapeType:"circle"},{name:"矩形",icon:me,iconActive:fe,shapeType:"rectangle"},{name:"直线",icon:ke,iconActive:ye,shapeType:"line"},{name:"选色器",icon:Te,iconActive:Me,shapeType:"colorSelector"},{name:"画笔大小",icon:be,iconActive:Se,shapeType:"brushSize"},{name:"橡皮擦",icon:ve,iconActive:we,shapeType:"eraser"}]),n=g("#ffcc00"),s=g(2),o=[1,2,4,8,16],c=g(!1),r=g(!1),a=g(!1),u=g(!1),x=g("pencil"),E=g("pencil"),j=g(),W=g(),O=d=>{var l;(l=e.canvas)==null||l.setColor(d),c.value=!1,a.value=!1},$=d=>{var l;(l=e.canvas)==null||l.setThickness(d),r.value=!1,u.value=!1};function N(d){var l;if(x.value===d){d==="colorSelector"?(c.value=!c.value,a.value=c.value):d==="brushSize"&&(r.value=!r.value,u.value=r.value);return}x.value=d,E.value=d,d==="colorSelector"?(c.value=!0,r.value=!1,z(()=>{a.value=!0})):d==="brushSize"?(r.value=!0,c.value=!1,z(()=>{u.value=!0})):(c.value=!1,r.value=!1,a.value=!1,u.value=!1,(l=e.canvas)==null||l.setDrawingTool(d))}function U(d){document.querySelector(".tool-mid-box-left").contains(d.target)||(r.value=!1,u.value=!1)}return V(()=>{(!e.canvas||typeof e.canvas.setDrawingTool!="function")&&console.error("Invalid canvas prop passed to ToolBox"),document.addEventListener("click",U)}),G(()=>{document.removeEventListener("click",U)}),(d,l)=>{const q=f("el-tooltip"),H=f("el-color-picker"),J=f("el-option"),Q=f("el-select");return p(),m("div",Ce,[(p(!0),m(D,null,B(t.value,w=>(p(),m("div",{class:"tool-box-cell-box-left",key:w.shapeType},[k(q,{content:w.name,placement:"top-end"},{default:L(()=>[b("div",{class:"tool-box-cell",onClick:v=>N(w.shapeType)},[b("img",{src:w.shapeType===x.value||["colorSelector","brushSize"].includes(x.value)&&w.shapeType===E.value?w.iconActive:w.icon,alt:w.name},null,8,Le)],8,_e)]),_:2},1032,["content"]),w.shapeType==="colorSelector"&&x.value==="colorSelector"&&c.value?(p(),m("div",ze,[k(H,{ref_for:!0,ref_key:"colorPickerRef",ref:j,modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=v=>n.value=v),visible:a.value,"onUpdate:visible":l[1]||(l[1]=v=>a.value=v),"show-alpha":"",onChange:O},null,8,["modelValue","visible"])])):_("",!0),w.shapeType==="brushSize"&&x.value==="brushSize"&&r.value?(p(),m("div",Ee,[k(Q,{ref_for:!0,ref_key:"brushSizeRef",ref:W,modelValue:s.value,"onUpdate:modelValue":l[2]||(l[2]=v=>s.value=v),placeholder:"画笔粗细",size:"small",onChange:$,visible:u.value,"onUpdate:visible":l[3]||(l[3]=v=>u.value=v),style:{width:"60px"}},{default:L(()=>[(p(),m(D,null,B(o,v=>k(J,{key:v,label:v+"px",value:v},null,8,["label","value"])),64))]),_:1},8,["modelValue","visible"])])):_("",!0)]))),128))])}}},De=I(Ue,[["__scopeId","data-v-d6b920d5"]]);class Be{constructor(){this.emitter=ie()}on(e,t){this.emitter.on(e,t)}off(e,t){this.emitter.off(e,t)}emit(e,t){this.emitter.emit(e,t)}removeAllListeners(){this.emitter.all.clear()}}class Fe extends Be{constructor(e){if(super(),this.canvas=document.getElementById(e),!this.canvas)throw new Error(`Canvas element with id ${e} not found`);this.ctx=this.canvas.getContext("2d"),this.shapes=[],this.currentShape=null,this.isDrawing=!1,this.drawingTool="pencil",this.pathOptimizationEnabled=!0,this.optimizationThreshold=.005,this.currentColor="#ffcc00",this.currentThickness=2,this.resize(),this.handleMouseDown=this.handleMouseDown.bind(this),this.handleMouseMove=this.handleMouseMove.bind(this),this.handleMouseUp=this.handleMouseUp.bind(this),this.handleMouseLeave=this.handleMouseLeave.bind(this),this.canvas.addEventListener("mousedown",this.handleMouseDown),this.canvas.addEventListener("mousemove",this.handleMouseMove),this.canvas.addEventListener("mouseup",this.handleMouseUp),this.canvas.addEventListener("mouseleave",this.handleMouseLeave),window.addEventListener("resize",()=>this.resize())}resize(){const e=this.canvas.parentElement;if(!e)return;const t=e.offsetWidth-150,n=e.offsetHeight;let s=t,o=Math.floor(s*9/16);o>n&&(o=n,s=Math.floor(o*16/9)),!(this.canvas.width===s&&this.canvas.height===o)&&(this.canvas.width=s,this.canvas.height=o,this.canvas.style.width=s+"px",this.canvas.style.height=o+"px",this.render())}setDrawingTool(e){this.drawingTool=e}setColor(e){this.currentColor=e}setThickness(e){this.currentThickness=e}setPathOptimization(e){this.pathOptimizationEnabled=e}setOptimizationThreshold(e){this.optimizationThreshold=e}getShapes(){return this.shapes}setShapes(e){this.shapes=e,this.render()}getMouseCoordinates(e){const t=this.canvas.getBoundingClientRect();return{x:((e.clientX-t.left)/this.canvas.width).toFixed(4),y:((e.clientY-t.top)/this.canvas.height).toFixed(4)}}handleMouseDown(e){this.isDrawing=!0;const t=this.getMouseCoordinates(e);this.drawingTool==="pencil"?this.currentShape={type:"pencil",data:{color:this.currentColor,path:[t],thickness:this.currentThickness}}:this.drawingTool==="line"?this.currentShape={type:"line",data:{color:this.currentColor,start:t,end:t,thickness:this.currentThickness}}:this.drawingTool==="rectangle"?this.currentShape={type:"rectangle",data:{color:this.currentColor,start:t,end:t,thickness:this.currentThickness,fill:!1}}:this.drawingTool==="circle"?this.currentShape={type:"circle",data:{color:this.currentColor,start:t,end:t,thickness:this.currentThickness,fill:!1}}:this.drawingTool==="eraser"&&(this.currentShape={type:"eraser",data:{color:"#ffffff",start:t,end:t,thickness:3}}),this.emit("drawingStart",this.currentShape)}handleMouseMove(e){if(!this.isDrawing||!this.currentShape)return;const t=this.getMouseCoordinates(e);this.drawingTool==="pencil"?this.currentShape.data.path.push(t):this.currentShape.data.end=t,this.render(),this.emit("drawingUpdate",this.currentShape)}handleMouseUp(e){if(!this.isDrawing||!this.currentShape)return;this.isDrawing=!1;const t=this.getMouseCoordinates(e);this.drawingTool==="pencil"&&this.pathOptimizationEnabled&&this.currentShape.data.path.length>10?this.currentShape.data.path=this.optimizePath(this.currentShape.data.path):this.currentShape.data.end=t,this.shapes.push({...this.currentShape}),this.emit("drawingEnd",this.currentShape),this.currentShape=null,this.render()}handleMouseLeave(e){this.isDrawing&&this.handleMouseUp(e)}optimizePath(e){if(e.length<3)return e;const t=[e[0]];for(let n=1;nthis.drawShape(e)),this.currentShape&&this.drawShape(this.currentShape),this.ctx.save(),this.ctx.strokeStyle="#000",this.ctx.lineWidth=2,this.ctx.strokeRect(0,0,this.canvas.width,this.canvas.height),this.ctx.restore()}drawShape(e){switch(e.type){case"pencil":this.drawPencil(e.data);break;case"line":this.drawLine(e.data);break;case"rectangle":this.drawRectangle(e.data);break;case"circle":this.drawCircle(e.data);break;case"eraser":this.drawEraser(e.data,e);break}}drawPencil(e){if(e.path.length<2)return;const t=e.path.map(n=>({x:n.x*this.canvas.width,y:n.y*this.canvas.height}));this.ctx.beginPath(),this.ctx.strokeStyle=e.color,this.ctx.lineWidth=e.thickness,this.ctx.lineCap="round",this.ctx.lineJoin="round",this.drawSmoothCurve(this.ctx,t),this.ctx.stroke()}drawSmoothCurve(e,t){if(t.length<3){e.moveTo(t[0].x,t[0].y);for(let s=1;s{o()}),K(()=>{n.value&&n.value.destroy()}),(r,a)=>{const u=f("el-button");return p(),m("div",Ae,[b("div",null,[t.value?(p(),m("div",Ie,[n.value?(p(),X(De,{key:0,class:"toolbox",canvas:n.value},null,8,["canvas"])):_("",!0),a[1]||(a[1]=b("canvas",{id:"whiteboard",class:"whiteboard-canvas"},null,-1))])):(p(),m("div",Re,[k(u,{type:"primary",size:"large",link:"",onClick:o},{default:L(()=>[...a[0]||(a[0]=[te(" 正在进入互动画板。。。 ",-1)])]),_:1})]))])])}}},We=I(Ve,[["__scopeId","data-v-119f18fe"]]);export{We as default}; diff --git a/dist/assets/index-eGhvKdrr.js.gz b/dist/assets/index-eGhvKdrr.js.gz new file mode 100644 index 0000000..530ec75 Binary files /dev/null and b/dist/assets/index-eGhvKdrr.js.gz differ diff --git a/dist/assets/login-BDn7Jzn7.css b/dist/assets/login-BDn7Jzn7.css new file mode 100644 index 0000000..d531ad5 --- /dev/null +++ b/dist/assets/login-BDn7Jzn7.css @@ -0,0 +1 @@ +.loginView[data-v-aec6e781]{width:100vw;height:100vh}.wrapper-content[data-v-aec6e781]{display:flex;justify-content:center;align-items:center;height:100%;background-image:url(/assets/loginBg-BZpWbmau.png);background-size:cover;padding:0 50px}.wrapper-content .content-nav[data-v-aec6e781]{display:flex;justify-content:space-between;align-items:center;position:fixed;top:0;z-index:1111;width:100%;height:60px;box-shadow:0 2px 5px #9993;padding:0 35px;background-color:#fff}.wrapper-content .content-nav .nav-left[data-v-aec6e781]{display:flex;align-items:center;color:#fff;box-sizing:border-box}.wrapper-content .content-nav .nav-left img[data-v-aec6e781]{width:40px;height:40px;border-radius:8px}.wrapper-content .content-nav .nav-left div[data-v-aec6e781]{padding-left:12px;font-size:22px;color:#051435}[data-v-aec6e781] .el-input__wrapper{border-radius:35px;background:#f5f7fa;font-size:18px;border:1px solid #c9d4e6;color:#051435;padding:0 30px}[data-v-aec6e781] .el-input__wrapper input{height:50px;color:#051435}[data-v-aec6e781] .el-form-item__error{font-size:15px;font-weight:20px}.login-form[data-v-aec6e781]{border-radius:20px;width:600px;height:600px;background-color:#ffffff4d;background-size:cover;display:flex;align-items:center;justify-content:flex-end;position:relative}.login-form .selected-rectangle[data-v-aec6e781]{width:24px;height:20px;border:4px solid white;border-radius:4px;position:absolute;top:-11px;left:290px;animation:floatRotate-aec6e781 2s ease-in-out infinite;transform-origin:center center}@keyframes floatRotate-aec6e781{0%{transform:rotate(0)}25%{transform:rotate(90deg)}50%{transform:rotate(180deg)}75%{transform:rotate(270deg)}to{transform:rotate(360deg)}}.login-form .el-login-footer[data-v-aec6e781]{position:absolute;bottom:-30px;left:-5%;width:110%;text-align:center;color:#687898;font-family:Arial;font-size:16px;letter-spacing:1px}.login-form .form-info[data-v-aec6e781]{margin-right:50px;width:550px;height:530px;border-radius:25px;padding:75px 50px;box-sizing:border-box}.login-form .form-info .el-form-item[data-v-aec6e781]{margin-bottom:0}.login-form .form-info .title[data-v-aec6e781]{position:relative;text-align:left;margin:0 auto;font-size:32px;font-weight:600;color:#051435;line-height:32px}.login-form .form-info .button-login[data-v-aec6e781]{width:100%;height:50px;margin-top:35px;border-radius:35px;font-size:22px;background:#00c8c4;color:#fff;border:none}.login-form .form-info .button-ok[data-v-aec6e781]{width:100%;margin-top:35px;display:flex;align-items:center;color:#fff;height:30px;cursor:pointer}.login-form .form-info .button-ok img[data-v-aec6e781]{width:20px}.login-form .form-info .button-ok span[data-v-aec6e781]{margin-left:13px;font-size:16px;color:#687898}.login-form .form-info[data-v-aec6e781] .el-input{height:70px;display:flex;align-items:center;margin-top:40px}.login-form .form-info .input-icon[data-v-aec6e781]{height:40px;width:32px;margin-left:0;margin-bottom:2px}@media screen and (max-width: 765px){.wrapper-content[data-v-aec6e781]{padding:0 20px}.wrapper-content .content-nav[data-v-aec6e781]{height:60px;padding:0 15px}.wrapper-content .content-nav .nav-left img[data-v-aec6e781]{width:40px;height:40px}.wrapper-content .content-nav .nav-left div[data-v-aec6e781]{padding-left:10px;font-size:16px}[data-v-aec6e781] .el-input__wrapper{padding:0 30px}[data-v-aec6e781] .el-input__wrapper input{height:40px;color:#051435;font-size:16px}.login-form[data-v-aec6e781]{width:100%;justify-content:center;padding:60px 30px;height:auto}.login-form .selected-rectangle[data-v-aec6e781]{width:24px;height:20px;border:4px solid white;border-radius:4px;position:absolute;top:-11px;left:170px;animation:floatRotate-aec6e781 2s ease-in-out infinite;transform-origin:center center}.login-form .el-login-footer[data-v-aec6e781]{font-size:14px}.login-form .form-info[data-v-aec6e781]{margin-right:0;width:300px;height:400px;background:#fff;padding:25px;height:auto}.login-form .form-info .el-form-item[data-v-aec6e781]{margin-bottom:0}.login-form .form-info .title[data-v-aec6e781]{position:relative;text-align:left;margin:0 auto;font-size:20px;font-weight:600;color:#051435;line-height:32px}.login-form .form-info .button-login[data-v-aec6e781]{height:40px;margin-top:20px;font-size:16px}.login-form .form-info .button-ok[data-v-aec6e781]{width:100%;margin-top:20px;display:flex;align-items:center;color:#fff;height:30px;cursor:pointer}.login-form .form-info .button-ok img[data-v-aec6e781]{width:16px}.login-form .form-info .button-ok span[data-v-aec6e781]{margin-left:10px;font-size:14px}.login-form .form-info[data-v-aec6e781] .el-input{height:40px;display:flex;align-items:center;margin-top:20px}.login-form .form-info .input-icon[data-v-aec6e781]{height:40px;width:32px;margin-left:0;margin-bottom:2px}}.home-link.modern[data-v-aec6e781]{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;color:#606266;font-size:14px;cursor:pointer;border-radius:4px;transition:all .3s cubic-bezier(.645,.045,.355,1)}.home-link.modern[data-v-aec6e781]:hover{color:#409eff;background-color:#409eff1a}.home-link.modern i[data-v-aec6e781]{font-size:16px;transition:transform .3s}.home-link.modern:hover i[data-v-aec6e781]{transform:translate(-2px)} diff --git a/dist/assets/login-BDn7Jzn7.css.gz b/dist/assets/login-BDn7Jzn7.css.gz new file mode 100644 index 0000000..ef12ce3 Binary files /dev/null and b/dist/assets/login-BDn7Jzn7.css.gz differ diff --git a/dist/assets/login-ZNL3XKVp.js b/dist/assets/login-ZNL3XKVp.js new file mode 100644 index 0000000..7d6aa37 --- /dev/null +++ b/dist/assets/login-ZNL3XKVp.js @@ -0,0 +1 @@ +import{_ as q,i as M,j as N,k as U,r as d,l as b,m as D,c as _,f as m,d as a,w as u,e as p,a as R,u as B,o as h,n as z,p as E,E as K}from"./index-DikBC4WP.js";import{C as L}from"./index-Ba59pKR3.js";const A={class:"loginView"},J={class:"wrapper-content"},P={class:"login-form"},$={key:0},j={key:1},F={__name:"login",setup(G){const w=M(),r=R(),y=B(),{proxy:S}=N(),C=U(),l=d(void 0);d(!0),b(()=>y,o=>{l.value=o.query&&o.query.redirect},{immediate:!0});const t=d({username:"",password:""}),V={username:[{required:!0,trigger:"blur",message:"请输入用户名"}],password:[{required:!0,trigger:"blur",message:"请输入密码"}]},i=d(!1);function v(){S.$refs.loginRef.validate(o=>{if(o){if(i.value=!0,!(localStorage!=null&&localStorage.getItem("UDID"))){K({message:"服务错误,请刷新页面",type:"warning"});return}const e=(t.value.username+(localStorage==null?void 0:localStorage.getItem("UDID"))).toLowerCase().replaceAll("-",""),s=`Gx${I(6)}${t.value.password}`,f=L.Blowfish.encrypt(s,e).toString();w.login({password:f,username:t.value.username}).then(async c=>{JSON.parse(sessionStorage.getItem("userData")),await x()}).catch(c=>{console.log("登录失败",c),i.value=!1})}}),k()}async function x(){try{if(l.value&&l.value!=="/login")try{r.resolve(l.value).matched.length>0?await r.push(l.value):(console.warn("重定向路径无效,跳转到默认页面"),await r.push("/coordinate"))}catch(o){console.warn("重定向跳转失败,跳转到默认页面:",o),await r.push("/coordinate")}else await r.push("/coordinate")}catch(o){console.error("登录跳转异常:",o),await r.push("/coordinate")}finally{i.value=!1}}function I(o){const e="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let n="";for(let s=0;s{}):console.log("浏览器不支持通知")}return D(async()=>{C.initUdid()}),(o,e)=>{const n=p("el-input"),s=p("el-form-item"),f=p("el-button"),c=p("el-form");return h(),_("div",A,[m("div",J,[m("div",P,[e[3]||(e[3]=m("div",{class:"selected-rectangle"},null,-1)),a(c,{ref:"loginRef",class:"form-info",model:t.value,rules:V},{default:u(()=>[e[2]||(e[2]=m("h3",{class:"title"},"欢迎登录",-1)),a(s,{prop:"username"},{default:u(()=>[a(n,{modelValue:t.value.username,"onUpdate:modelValue":e[0]||(e[0]=g=>t.value.username=g),"auto-complete":"off",placeholder:"请输入您的账号",size:"large",type:"text"},null,8,["modelValue"])]),_:1}),a(s,{prop:"password"},{default:u(()=>[a(n,{modelValue:t.value.password,"onUpdate:modelValue":e[1]||(e[1]=g=>t.value.password=g),"auto-complete":"off",placeholder:"请输入密码",size:"large",type:"password",onKeyup:z(v,["enter"])},null,8,["modelValue"])]),_:1}),a(s,null,{default:u(()=>[a(f,{loading:i.value,size:"large",class:"button-login",type:"primary",onClick:E(v,["prevent"])},{default:u(()=>[i.value?(h(),_("span",j,"登录中...")):(h(),_("span",$,"登 录"))]),_:1},8,["loading"])]),_:1})]),_:1},8,["model"])])])])}}},Q=q(F,[["__scopeId","data-v-aec6e781"]]);export{Q as default}; diff --git a/dist/assets/login-ZNL3XKVp.js.gz b/dist/assets/login-ZNL3XKVp.js.gz new file mode 100644 index 0000000..d7b03f5 Binary files /dev/null and b/dist/assets/login-ZNL3XKVp.js.gz differ diff --git a/dist/assets/loginBg-BZpWbmau.png b/dist/assets/loginBg-BZpWbmau.png new file mode 100644 index 0000000..3736dff Binary files /dev/null and b/dist/assets/loginBg-BZpWbmau.png differ diff --git a/dist/assets/profile-BkLdKdgI.jpg b/dist/assets/profile-BkLdKdgI.jpg new file mode 100644 index 0000000..996f640 Binary files /dev/null and b/dist/assets/profile-BkLdKdgI.jpg differ diff --git a/dist/assets/room-BKpValiO.js b/dist/assets/room-BKpValiO.js new file mode 100644 index 0000000..df77fb4 --- /dev/null +++ b/dist/assets/room-BKpValiO.js @@ -0,0 +1,372 @@ +import{v as $V,x as pm,y as GV,r as Ll,z as um,b as HZ,c as jl,l as Vi,A as Oh,o as Ol,F as Ym,B as Bm,C as HR,f as Hl,D as _a,G as om,H as ym,I as PR,_ as km,j as zm,m as Lm,J as fR,K as Im,E as xW,L as Tc,M as Dm,N as Em,d as al,w as kl,e as jW,s as cU,O as OW,t as IU,P as wm,h as EZ,Q as AR,R as _R,S as Cm,T as rm}from"./index-DikBC4WP.js";import{e as gW}from"./bus-C8MdfDPM.js";function FT(U){return $V({url:"/api/v1/auth/directories",method:"get",params:U})}function cT(U,l){return $V({url:`/api/v1/auth/directories/${U}/users`,method:"get",params:l})}function aT(U,l){return $V({url:`/api/v1/rooms/${U}/participants/history`,method:"get",params:l})}function WT(U,l){return $V({url:`/api/v1/auth/users/${U}`,method:"get",params:l})}var xm=Object.defineProperty,gh=U=>{throw TypeError(U)},jm=(U,l,d)=>l in U?xm(U,l,{enumerable:!0,configurable:!0,writable:!0,value:d}):U[l]=d,f=(U,l,d)=>jm(U,typeof l!="symbol"?l+"":l,d),zR=(U,l,d)=>l.has(U)||gh("Cannot "+d),a=(U,l,d)=>(zR(U,l,"read from private field"),d?d.call(U):l.get(U)),b=(U,l,d)=>l.has(U)?gh("Cannot add the same private member more than once"):l instanceof WeakSet?l.add(U):l.set(U,d),R=(U,l,d,Z)=>(zR(U,l,"write to private field"),l.set(U,d),d),h=(U,l,d)=>(zR(U,l,"access private method"),d),Ld=(U,l,d,Z)=>({set _(t){R(U,l,t)},get _(){return a(U,l,Z)}}),Om={9306:(U,l,d)=>{var Z=d(4901),t=d(6823),F=TypeError;U.exports=function(c){if(Z(c))return c;throw new F(t(c)+" is not a function")}},3506:(U,l,d)=>{var Z=d(3925),t=String,F=TypeError;U.exports=function(c){if(Z(c))return c;throw new F("Can't set "+t(c)+" as a prototype")}},7080:(U,l,d)=>{var Z=d(4402).has;U.exports=function(t){return Z(t),t}},679:(U,l,d)=>{var Z=d(1625),t=TypeError;U.exports=function(F,c){if(Z(c,F))return F;throw new t("Incorrect invocation")}},8551:(U,l,d)=>{var Z=d(34),t=String,F=TypeError;U.exports=function(c){if(Z(c))return c;throw new F(t(c)+" is not an object")}},7811:U=>{U.exports=typeof ArrayBuffer<"u"&&typeof DataView<"u"},7394:(U,l,d)=>{var Z=d(4576),t=d(6706),F=d(2195),c=Z.ArrayBuffer,W=Z.TypeError;U.exports=c&&t(c.prototype,"byteLength","get")||function(s){if(F(s)!=="ArrayBuffer")throw new W("ArrayBuffer expected");return s.byteLength}},3238:(U,l,d)=>{var Z=d(4576),t=d(7476),F=d(7394),c=Z.ArrayBuffer,W=c&&c.prototype,s=W&&t(W.slice);U.exports=function(n){if(F(n)!==0||!s)return!1;try{return s(n,0,0),!1}catch{return!0}}},5169:(U,l,d)=>{var Z=d(3238),t=TypeError;U.exports=function(F){if(Z(F))throw new t("ArrayBuffer is detached");return F}},5636:(U,l,d)=>{var Z=d(4576),t=d(9504),F=d(6706),c=d(7696),W=d(5169),s=d(7394),n=d(4483),V=d(1548),Q=Z.structuredClone,i=Z.ArrayBuffer,N=Z.DataView,e=Math.min,m=i.prototype,M=N.prototype,J=t(m.slice),S=F(m,"resizable","get"),G=F(m,"maxByteLength","get"),T=t(M.getInt8),p=t(M.setInt8);U.exports=(V||n)&&function(u,Y,o){var X=s(u),B=Y===void 0?X:c(Y),y=!S||!S(u),E;if(W(u),V&&(u=Q(u,{transfer:[u]}),X===B&&(o||y)))return u;if(X>=B&&(!o||y))E=J(u,0,B);else{var D=o&&!y&&G?{maxByteLength:G(u)}:void 0;E=new i(B,D);for(var w=new N(u),I=new N(E),L=e(B,X),g=0;g{var Z=d(7811),t=d(3724),F=d(4576),c=d(4901),W=d(34),s=d(9297),n=d(6955),V=d(6823),Q=d(6699),i=d(6840),N=d(2106),e=d(1625),m=d(2787),M=d(2967),J=d(8227),S=d(3392),G=d(1181),T=G.enforce,p=G.get,u=F.Int8Array,Y=u&&u.prototype,o=F.Uint8ClampedArray,X=o&&o.prototype,B=u&&m(u),y=Y&&m(Y),E=Object.prototype,D=F.TypeError,w=J("toStringTag"),I=S("TYPED_ARRAY_TAG"),L="TypedArrayConstructor",g=Z&&!!M&&n(F.opera)!=="Opera",A=!1,Vl,Sl,Tl,Rl={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},bl={BigInt64Array:8,BigUint64Array:8},FU=function(_){if(!W(_))return!1;var Xl=n(_);return Xl==="DataView"||s(Rl,Xl)||s(bl,Xl)},gd=function(_){var Xl=m(_);if(W(Xl)){var rl=p(Xl);return rl&&s(rl,L)?rl[L]:gd(Xl)}},C=function(_){if(!W(_))return!1;var Xl=n(_);return s(Rl,Xl)||s(bl,Xl)},z=function(_){if(C(_))return _;throw new D("Target is not a typed array")},r=function(_){if(c(_)&&(!M||e(B,_)))return _;throw new D(V(_)+" is not a typed array constructor")},ll=function(_,Xl,rl,Kd){if(t){if(rl)for(var ad in Rl){var ul=F[ad];if(ul&&s(ul.prototype,_))try{delete ul.prototype[_]}catch{try{ul.prototype[_]=Xl}catch{}}}(!y[_]||rl)&&i(y,_,rl?Xl:g&&Y[_]||Xl,Kd)}},hl=function(_,Xl,rl){var Kd,ad;if(t){if(M){if(rl){for(Kd in Rl)if(ad=F[Kd],ad&&s(ad,_))try{delete ad[_]}catch{}}if(!B[_]||rl)try{return i(B,_,rl?Xl:g&&B[_]||Xl)}catch{}else return}for(Kd in Rl)ad=F[Kd],ad&&(!ad[_]||rl)&&i(ad,_,Xl)}};for(Vl in Rl)Sl=F[Vl],Tl=Sl&&Sl.prototype,Tl?T(Tl)[L]=Sl:g=!1;for(Vl in bl)Sl=F[Vl],Tl=Sl&&Sl.prototype,Tl&&(T(Tl)[L]=Sl);if((!g||!c(B)||B===Function.prototype)&&(B=function(){throw new D("Incorrect invocation")},g))for(Vl in Rl)F[Vl]&&M(F[Vl],B);if((!g||!y||y===E)&&(y=B.prototype,g))for(Vl in Rl)F[Vl]&&M(F[Vl].prototype,y);if(g&&m(X)!==y&&M(X,y),t&&!s(y,w)){A=!0,N(y,w,{configurable:!0,get:function(){return W(this)?this[I]:void 0}});for(Vl in Rl)F[Vl]&&Q(F[Vl],I,Vl)}U.exports={NATIVE_ARRAY_BUFFER_VIEWS:g,TYPED_ARRAY_TAG:A&&I,aTypedArray:z,aTypedArrayConstructor:r,exportTypedArrayMethod:ll,exportTypedArrayStaticMethod:hl,getTypedArrayConstructor:gd,isView:FU,isTypedArray:C,TypedArray:B,TypedArrayPrototype:y}},5370:(U,l,d)=>{var Z=d(6198);U.exports=function(t,F,c){for(var W=0,s=arguments.length>2?c:Z(F),n=new t(s);s>W;)n[W]=F[W++];return n}},9617:(U,l,d)=>{var Z=d(5397),t=d(5610),F=d(6198),c=function(W){return function(s,n,V){var Q=Z(s),i=F(Q);if(i===0)return!W&&-1;var N=t(V,i),e;if(W&&n!==n){for(;i>N;)if(e=Q[N++],e!==e)return!0}else for(;i>N;N++)if((W||N in Q)&&Q[N]===n)return W||N||0;return!W&&-1}};U.exports={includes:c(!0),indexOf:c(!1)}},4527:(U,l,d)=>{var Z=d(3724),t=d(4376),F=TypeError,c=Object.getOwnPropertyDescriptor,W=Z&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(s){return s instanceof TypeError}}();U.exports=W?function(s,n){if(t(s)&&!c(s,"length").writable)throw new F("Cannot set read only .length");return s.length=n}:function(s,n){return s.length=n}},7680:(U,l,d)=>{var Z=d(9504);U.exports=Z([].slice)},7628:(U,l,d)=>{var Z=d(6198);U.exports=function(t,F){for(var c=Z(t),W=new F(c),s=0;s{var Z=d(6198),t=d(1291),F=RangeError;U.exports=function(c,W,s,n){var V=Z(c),Q=t(s),i=Q<0?V+Q:Q;if(i>=V||i<0)throw new F("Incorrect index");for(var N=new W(V),e=0;e{var Z=d(8551),t=d(9539);U.exports=function(F,c,W,s){try{return s?c(Z(W)[0],W[1]):c(W)}catch(n){t(F,"throw",n)}}},2195:(U,l,d)=>{var Z=d(9504),t=Z({}.toString),F=Z("".slice);U.exports=function(c){return F(t(c),8,-1)}},6955:(U,l,d)=>{var Z=d(2140),t=d(4901),F=d(2195),c=d(8227),W=c("toStringTag"),s=Object,n=F(function(){return arguments}())==="Arguments",V=function(Q,i){try{return Q[i]}catch{}};U.exports=Z?F:function(Q){var i,N,e;return Q===void 0?"Undefined":Q===null?"Null":typeof(N=V(i=s(Q),W))=="string"?N:n?F(i):(e=F(i))==="Object"&&t(i.callee)?"Arguments":e}},7740:(U,l,d)=>{var Z=d(9297),t=d(5031),F=d(7347),c=d(4913);U.exports=function(W,s,n){for(var V=t(s),Q=c.f,i=F.f,N=0;N{var Z=d(9039);U.exports=!Z(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype})},2529:U=>{U.exports=function(l,d){return{value:l,done:d}}},6699:(U,l,d)=>{var Z=d(3724),t=d(4913),F=d(6980);U.exports=Z?function(c,W,s){return t.f(c,W,F(1,s))}:function(c,W,s){return c[W]=s,c}},6980:U=>{U.exports=function(l,d){return{enumerable:!(l&1),configurable:!(l&2),writable:!(l&4),value:d}}},4659:(U,l,d)=>{var Z=d(3724),t=d(4913),F=d(6980);U.exports=function(c,W,s){Z?t.f(c,W,F(0,s)):c[W]=s}},2106:(U,l,d)=>{var Z=d(283),t=d(4913);U.exports=function(F,c,W){return W.get&&Z(W.get,c,{getter:!0}),W.set&&Z(W.set,c,{setter:!0}),t.f(F,c,W)}},6840:(U,l,d)=>{var Z=d(4901),t=d(4913),F=d(283),c=d(9433);U.exports=function(W,s,n,V){V||(V={});var Q=V.enumerable,i=V.name!==void 0?V.name:s;if(Z(n)&&F(n,i,V),V.global)Q?W[s]=n:c(s,n);else{try{V.unsafe?W[s]&&(Q=!0):delete W[s]}catch{}Q?W[s]=n:t.f(W,s,{value:n,enumerable:!1,configurable:!V.nonConfigurable,writable:!V.nonWritable})}return W}},6279:(U,l,d)=>{var Z=d(6840);U.exports=function(t,F,c){for(var W in F)Z(t,W,F[W],c);return t}},9433:(U,l,d)=>{var Z=d(4576),t=Object.defineProperty;U.exports=function(F,c){try{t(Z,F,{value:c,configurable:!0,writable:!0})}catch{Z[F]=c}return c}},3724:(U,l,d)=>{var Z=d(9039);U.exports=!Z(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})},4483:(U,l,d)=>{var Z=d(4576),t=d(9429),F=d(1548),c=Z.structuredClone,W=Z.ArrayBuffer,s=Z.MessageChannel,n=!1,V,Q,i,N;if(F)n=function(e){c(e,{transfer:[e]})};else if(W)try{s||(V=t("worker_threads"),V&&(s=V.MessageChannel)),s&&(Q=new s,i=new W(2),N=function(e){Q.port1.postMessage(null,[e])},i.byteLength===2&&(N(i),i.byteLength===0&&(n=N)))}catch{}U.exports=n},4055:(U,l,d)=>{var Z=d(4576),t=d(34),F=Z.document,c=t(F)&&t(F.createElement);U.exports=function(W){return c?F.createElement(W):{}}},6837:U=>{var l=TypeError,d=9007199254740991;U.exports=function(Z){if(Z>d)throw l("Maximum allowed index exceeded");return Z}},5002:U=>{U.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}},8727:U=>{U.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},6193:(U,l,d)=>{var Z=d(4215);U.exports=Z==="NODE"},2839:(U,l,d)=>{var Z=d(4576),t=Z.navigator,F=t&&t.userAgent;U.exports=F?String(F):""},9519:(U,l,d)=>{var Z=d(4576),t=d(2839),F=Z.process,c=Z.Deno,W=F&&F.versions||c&&c.version,s=W&&W.v8,n,V;s&&(n=s.split("."),V=n[0]>0&&n[0]<4?1:+(n[0]+n[1])),!V&&t&&(n=t.match(/Edge\/(\d+)/),(!n||n[1]>=74)&&(n=t.match(/Chrome\/(\d+)/),n&&(V=+n[1]))),U.exports=V},4215:(U,l,d)=>{var Z=d(4576),t=d(2839),F=d(2195),c=function(W){return t.slice(0,W.length)===W};U.exports=function(){return c("Bun/")?"BUN":c("Cloudflare-Workers")?"CLOUDFLARE":c("Deno/")?"DENO":c("Node.js/")?"NODE":Z.Bun&&typeof Bun.version=="string"?"BUN":Z.Deno&&typeof Deno.version=="object"?"DENO":F(Z.process)==="process"?"NODE":Z.window&&Z.document?"BROWSER":"REST"}()},8574:(U,l,d)=>{var Z=d(9504),t=Error,F=Z("".replace),c=function(n){return String(new t(n).stack)}("zxcasd"),W=/\n\s*at [^:]*:[^\n]*/,s=W.test(c);U.exports=function(n,V){if(s&&typeof n=="string"&&!t.prepareStackTrace)for(;V--;)n=F(n,W,"");return n}},6518:(U,l,d)=>{var Z=d(4576),t=d(7347).f,F=d(6699),c=d(6840),W=d(9433),s=d(7740),n=d(2796);U.exports=function(V,Q){var i=V.target,N=V.global,e=V.stat,m,M,J,S,G,T;if(N?M=Z:e?M=Z[i]||W(i,{}):M=Z[i]&&Z[i].prototype,M)for(J in Q){if(G=Q[J],V.dontCallGetSet?(T=t(M,J),S=T&&T.value):S=M[J],m=n(N?J:i+(e?".":"#")+J,V.forced),!m&&S!==void 0){if(typeof G==typeof S)continue;s(G,S)}(V.sham||S&&S.sham)&&F(G,"sham",!0),c(M,J,G,V)}}},9039:U=>{U.exports=function(l){try{return!!l()}catch{return!0}}},8745:(U,l,d)=>{var Z=d(616),t=Function.prototype,F=t.apply,c=t.call;U.exports=typeof Reflect=="object"&&Reflect.apply||(Z?c.bind(F):function(){return c.apply(F,arguments)})},6080:(U,l,d)=>{var Z=d(7476),t=d(9306),F=d(616),c=Z(Z.bind);U.exports=function(W,s){return t(W),s===void 0?W:F?c(W,s):function(){return W.apply(s,arguments)}}},616:(U,l,d)=>{var Z=d(9039);U.exports=!Z(function(){var t=(function(){}).bind();return typeof t!="function"||t.hasOwnProperty("prototype")})},9565:(U,l,d)=>{var Z=d(616),t=Function.prototype.call;U.exports=Z?t.bind(t):function(){return t.apply(t,arguments)}},350:(U,l,d)=>{var Z=d(3724),t=d(9297),F=Function.prototype,c=Z&&Object.getOwnPropertyDescriptor,W=t(F,"name"),s=W&&(function(){}).name==="something",n=W&&(!Z||Z&&c(F,"name").configurable);U.exports={EXISTS:W,PROPER:s,CONFIGURABLE:n}},6706:(U,l,d)=>{var Z=d(9504),t=d(9306);U.exports=function(F,c,W){try{return Z(t(Object.getOwnPropertyDescriptor(F,c)[W]))}catch{}}},7476:(U,l,d)=>{var Z=d(2195),t=d(9504);U.exports=function(F){if(Z(F)==="Function")return t(F)}},9504:(U,l,d)=>{var Z=d(616),t=Function.prototype,F=t.call,c=Z&&t.bind.bind(F,F);U.exports=Z?c:function(W){return function(){return F.apply(W,arguments)}}},9429:(U,l,d)=>{var Z=d(4576),t=d(6193);U.exports=function(F){if(t){try{return Z.process.getBuiltinModule(F)}catch{}try{return Function('return require("'+F+'")')()}catch{}}}},7751:(U,l,d)=>{var Z=d(4576),t=d(4901),F=function(c){return t(c)?c:void 0};U.exports=function(c,W){return arguments.length<2?F(Z[c]):Z[c]&&Z[c][W]}},1767:U=>{U.exports=function(l){return{iterator:l,next:l.next,done:!1}}},8646:(U,l,d)=>{var Z=d(9565),t=d(8551),F=d(1767),c=d(851);U.exports=function(W,s){(!s||typeof W!="string")&&t(W);var n=c(W);return F(t(n!==void 0?Z(n,W):W))}},851:(U,l,d)=>{var Z=d(6955),t=d(5966),F=d(4117),c=d(6269),W=d(8227),s=W("iterator");U.exports=function(n){if(!F(n))return t(n,s)||t(n,"@@iterator")||c[Z(n)]}},81:(U,l,d)=>{var Z=d(9565),t=d(9306),F=d(8551),c=d(6823),W=d(851),s=TypeError;U.exports=function(n,V){var Q=arguments.length<2?W(n):V;if(t(Q))return F(Z(Q,n));throw new s(c(n)+" is not iterable")}},5966:(U,l,d)=>{var Z=d(9306),t=d(4117);U.exports=function(F,c){var W=F[c];return t(W)?void 0:Z(W)}},3789:(U,l,d)=>{var Z=d(9306),t=d(8551),F=d(9565),c=d(1291),W=d(1767),s="Invalid size",n=RangeError,V=TypeError,Q=Math.max,i=function(N,e){this.set=N,this.size=Q(e,0),this.has=Z(N.has),this.keys=Z(N.keys)};i.prototype={getIterator:function(){return W(t(F(this.keys,this.set)))},includes:function(N){return F(this.has,this.set,N)}},U.exports=function(N){t(N);var e=+N.size;if(e!==e)throw new V(s);var m=c(e);if(m<0)throw new n(s);return new i(N,m)}},4576:function(U){var l=function(d){return d&&d.Math===Math&&d};U.exports=l(typeof globalThis=="object"&&globalThis)||l(typeof window=="object"&&window)||l(typeof self=="object"&&self)||l(typeof global=="object"&&global)||l(typeof this=="object"&&this)||function(){return this}()||Function("return this")()},9297:(U,l,d)=>{var Z=d(9504),t=d(8981),F=Z({}.hasOwnProperty);U.exports=Object.hasOwn||function(c,W){return F(t(c),W)}},421:U=>{U.exports={}},397:(U,l,d)=>{var Z=d(7751);U.exports=Z("document","documentElement")},5917:(U,l,d)=>{var Z=d(3724),t=d(9039),F=d(4055);U.exports=!Z&&!t(function(){return Object.defineProperty(F("div"),"a",{get:function(){return 7}}).a!==7})},7055:(U,l,d)=>{var Z=d(9504),t=d(9039),F=d(2195),c=Object,W=Z("".split);U.exports=t(function(){return!c("z").propertyIsEnumerable(0)})?function(s){return F(s)==="String"?W(s,""):c(s)}:c},3167:(U,l,d)=>{var Z=d(4901),t=d(34),F=d(2967);U.exports=function(c,W,s){var n,V;return F&&Z(n=W.constructor)&&n!==s&&t(V=n.prototype)&&V!==s.prototype&&F(c,V),c}},3706:(U,l,d)=>{var Z=d(9504),t=d(4901),F=d(7629),c=Z(Function.toString);t(F.inspectSource)||(F.inspectSource=function(W){return c(W)}),U.exports=F.inspectSource},1181:(U,l,d)=>{var Z=d(8622),t=d(4576),F=d(34),c=d(6699),W=d(9297),s=d(7629),n=d(6119),V=d(421),Q="Object already initialized",i=t.TypeError,N=t.WeakMap,e,m,M,J=function(p){return M(p)?m(p):e(p,{})},S=function(p){return function(u){var Y;if(!F(u)||(Y=m(u)).type!==p)throw new i("Incompatible receiver, "+p+" required");return Y}};if(Z||s.state){var G=s.state||(s.state=new N);G.get=G.get,G.has=G.has,G.set=G.set,e=function(p,u){if(G.has(p))throw new i(Q);return u.facade=p,G.set(p,u),u},m=function(p){return G.get(p)||{}},M=function(p){return G.has(p)}}else{var T=n("state");V[T]=!0,e=function(p,u){if(W(p,T))throw new i(Q);return u.facade=p,c(p,T,u),u},m=function(p){return W(p,T)?p[T]:{}},M=function(p){return W(p,T)}}U.exports={set:e,get:m,has:M,enforce:J,getterFor:S}},4209:(U,l,d)=>{var Z=d(8227),t=d(6269),F=Z("iterator"),c=Array.prototype;U.exports=function(W){return W!==void 0&&(t.Array===W||c[F]===W)}},4376:(U,l,d)=>{var Z=d(2195);U.exports=Array.isArray||function(t){return Z(t)==="Array"}},1108:(U,l,d)=>{var Z=d(6955);U.exports=function(t){var F=Z(t);return F==="BigInt64Array"||F==="BigUint64Array"}},4901:U=>{var l=typeof document=="object"&&document.all;U.exports=typeof l>"u"&&l!==void 0?function(d){return typeof d=="function"||d===l}:function(d){return typeof d=="function"}},2796:(U,l,d)=>{var Z=d(9039),t=d(4901),F=/#|\.prototype\./,c=function(Q,i){var N=s[W(Q)];return N===V?!0:N===n?!1:t(i)?Z(i):!!i},W=c.normalize=function(Q){return String(Q).replace(F,".").toLowerCase()},s=c.data={},n=c.NATIVE="N",V=c.POLYFILL="P";U.exports=c},4117:U=>{U.exports=function(l){return l==null}},34:(U,l,d)=>{var Z=d(4901);U.exports=function(t){return typeof t=="object"?t!==null:Z(t)}},3925:(U,l,d)=>{var Z=d(34);U.exports=function(t){return Z(t)||t===null}},6395:U=>{U.exports=!1},757:(U,l,d)=>{var Z=d(7751),t=d(4901),F=d(1625),c=d(7040),W=Object;U.exports=c?function(s){return typeof s=="symbol"}:function(s){var n=Z("Symbol");return t(n)&&F(n.prototype,W(s))}},507:(U,l,d)=>{var Z=d(9565);U.exports=function(t,F,c){for(var W=c?t:t.iterator,s=t.next,n,V;!(n=Z(s,W)).done;)if(V=F(n.value),V!==void 0)return V}},2652:(U,l,d)=>{var Z=d(6080),t=d(9565),F=d(8551),c=d(6823),W=d(4209),s=d(6198),n=d(1625),V=d(81),Q=d(851),i=d(9539),N=TypeError,e=function(M,J){this.stopped=M,this.result=J},m=e.prototype;U.exports=function(M,J,S){var G=S&&S.that,T=!!(S&&S.AS_ENTRIES),p=!!(S&&S.IS_RECORD),u=!!(S&&S.IS_ITERATOR),Y=!!(S&&S.INTERRUPTED),o=Z(J,G),X,B,y,E,D,w,I,L=function(A){return X&&i(X,"normal",A),new e(!0,A)},g=function(A){return T?(F(A),Y?o(A[0],A[1],L):o(A[0],A[1])):Y?o(A,L):o(A)};if(p)X=M.iterator;else if(u)X=M;else{if(B=Q(M),!B)throw new N(c(M)+" is not iterable");if(W(B)){for(y=0,E=s(M);E>y;y++)if(D=g(M[y]),D&&n(m,D))return D;return new e(!1)}X=V(M,B)}for(w=p?M.next:X.next;!(I=t(w,X)).done;){try{D=g(I.value)}catch(A){i(X,"throw",A)}if(typeof D=="object"&&D&&n(m,D))return D}return new e(!1)}},9539:(U,l,d)=>{var Z=d(9565),t=d(8551),F=d(5966);U.exports=function(c,W,s){var n,V;t(c);try{if(n=F(c,"return"),!n){if(W==="throw")throw s;return s}n=Z(n,c)}catch(Q){V=!0,n=Q}if(W==="throw")throw s;if(V)throw n;return t(n),s}},9462:(U,l,d)=>{var Z=d(9565),t=d(2360),F=d(6699),c=d(6279),W=d(8227),s=d(1181),n=d(5966),V=d(7657).IteratorPrototype,Q=d(2529),i=d(9539),N=W("toStringTag"),e="IteratorHelper",m="WrapForValidIterator",M=s.set,J=function(T){var p=s.getterFor(T?m:e);return c(t(V),{next:function(){var u=p(this);if(T)return u.nextHandler();try{var Y=u.done?void 0:u.nextHandler();return Q(Y,u.done)}catch(o){throw u.done=!0,o}},return:function(){var u=p(this),Y=u.iterator;if(u.done=!0,T){var o=n(Y,"return");return o?Z(o,Y):Q(void 0,!0)}if(u.inner)try{i(u.inner.iterator,"normal")}catch(X){return i(Y,"throw",X)}return Y&&i(Y,"normal"),Q(void 0,!0)}})},S=J(!0),G=J(!1);F(G,N,"Iterator Helper"),U.exports=function(T,p){var u=function(Y,o){o?(o.iterator=Y.iterator,o.next=Y.next):o=Y,o.type=p?m:e,o.nextHandler=T,o.counter=0,o.done=!1,M(this,o)};return u.prototype=p?S:G,u}},713:(U,l,d)=>{var Z=d(9565),t=d(9306),F=d(8551),c=d(1767),W=d(9462),s=d(6319),n=W(function(){var V=this.iterator,Q=F(Z(this.next,V)),i=this.done=!!Q.done;if(!i)return s(V,this.mapper,[Q.value,this.counter++],!0)});U.exports=function(V){return F(this),t(V),new n(c(this),{mapper:V})}},7657:(U,l,d)=>{var Z=d(9039),t=d(4901),F=d(34),c=d(2360),W=d(2787),s=d(6840),n=d(8227),V=d(6395),Q=n("iterator"),i=!1,N,e,m;[].keys&&(m=[].keys(),"next"in m?(e=W(W(m)),e!==Object.prototype&&(N=e)):i=!0);var M=!F(N)||Z(function(){var J={};return N[Q].call(J)!==J});M?N={}:V&&(N=c(N)),t(N[Q])||s(N,Q,function(){return this}),U.exports={IteratorPrototype:N,BUGGY_SAFARI_ITERATORS:i}},6269:U=>{U.exports={}},6198:(U,l,d)=>{var Z=d(8014);U.exports=function(t){return Z(t.length)}},283:(U,l,d)=>{var Z=d(9504),t=d(9039),F=d(4901),c=d(9297),W=d(3724),s=d(350).CONFIGURABLE,n=d(3706),V=d(1181),Q=V.enforce,i=V.get,N=String,e=Object.defineProperty,m=Z("".slice),M=Z("".replace),J=Z([].join),S=W&&!t(function(){return e(function(){},"length",{value:8}).length!==8}),G=String(String).split("String"),T=U.exports=function(p,u,Y){m(N(u),0,7)==="Symbol("&&(u="["+M(N(u),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),Y&&Y.getter&&(u="get "+u),Y&&Y.setter&&(u="set "+u),(!c(p,"name")||s&&p.name!==u)&&(W?e(p,"name",{value:u,configurable:!0}):p.name=u),S&&Y&&c(Y,"arity")&&p.length!==Y.arity&&e(p,"length",{value:Y.arity});try{Y&&c(Y,"constructor")&&Y.constructor?W&&e(p,"prototype",{writable:!1}):p.prototype&&(p.prototype=void 0)}catch{}var o=Q(p);return c(o,"source")||(o.source=J(G,typeof u=="string"?u:"")),p};Function.prototype.toString=T(function(){return F(this)&&i(this).source||n(this)},"toString")},741:U=>{var l=Math.ceil,d=Math.floor;U.exports=Math.trunc||function(Z){var t=+Z;return(t>0?d:l)(t)}},6043:(U,l,d)=>{var Z=d(9306),t=TypeError,F=function(c){var W,s;this.promise=new c(function(n,V){if(W!==void 0||s!==void 0)throw new t("Bad Promise constructor");W=n,s=V}),this.resolve=Z(W),this.reject=Z(s)};U.exports.f=function(c){return new F(c)}},2603:(U,l,d)=>{var Z=d(655);U.exports=function(t,F){return t===void 0?arguments.length<2?"":F:Z(t)}},4149:U=>{var l=RangeError;U.exports=function(d){if(d===d)return d;throw new l("NaN is not allowed")}},2360:(U,l,d)=>{var Z=d(8551),t=d(6801),F=d(8727),c=d(421),W=d(397),s=d(4055),n=d(6119),V=">",Q="<",i="prototype",N="script",e=n("IE_PROTO"),m=function(){},M=function(p){return Q+N+V+p+Q+"/"+N+V},J=function(p){p.write(M("")),p.close();var u=p.parentWindow.Object;return p=null,u},S=function(){var p=s("iframe"),u="java"+N+":",Y;return p.style.display="none",W.appendChild(p),p.src=String(u),Y=p.contentWindow.document,Y.open(),Y.write(M("document.F=Object")),Y.close(),Y.F},G,T=function(){try{G=new ActiveXObject("htmlfile")}catch{}T=typeof document<"u"?document.domain&&G?J(G):S():J(G);for(var p=F.length;p--;)delete T[i][F[p]];return T()};c[e]=!0,U.exports=Object.create||function(p,u){var Y;return p!==null?(m[i]=Z(p),Y=new m,m[i]=null,Y[e]=p):Y=T(),u===void 0?Y:t.f(Y,u)}},6801:(U,l,d)=>{var Z=d(3724),t=d(8686),F=d(4913),c=d(8551),W=d(5397),s=d(1072);l.f=Z&&!t?Object.defineProperties:function(n,V){c(n);for(var Q=W(V),i=s(V),N=i.length,e=0,m;N>e;)F.f(n,m=i[e++],Q[m]);return n}},4913:(U,l,d)=>{var Z=d(3724),t=d(5917),F=d(8686),c=d(8551),W=d(6969),s=TypeError,n=Object.defineProperty,V=Object.getOwnPropertyDescriptor,Q="enumerable",i="configurable",N="writable";l.f=Z?F?function(e,m,M){if(c(e),m=W(m),c(M),typeof e=="function"&&m==="prototype"&&"value"in M&&N in M&&!M[N]){var J=V(e,m);J&&J[N]&&(e[m]=M.value,M={configurable:i in M?M[i]:J[i],enumerable:Q in M?M[Q]:J[Q],writable:!1})}return n(e,m,M)}:n:function(e,m,M){if(c(e),m=W(m),c(M),t)try{return n(e,m,M)}catch{}if("get"in M||"set"in M)throw new s("Accessors not supported");return"value"in M&&(e[m]=M.value),e}},7347:(U,l,d)=>{var Z=d(3724),t=d(9565),F=d(8773),c=d(6980),W=d(5397),s=d(6969),n=d(9297),V=d(5917),Q=Object.getOwnPropertyDescriptor;l.f=Z?Q:function(i,N){if(i=W(i),N=s(N),V)try{return Q(i,N)}catch{}if(n(i,N))return c(!t(F.f,i,N),i[N])}},8480:(U,l,d)=>{var Z=d(1828),t=d(8727),F=t.concat("length","prototype");l.f=Object.getOwnPropertyNames||function(c){return Z(c,F)}},3717:(U,l)=>{l.f=Object.getOwnPropertySymbols},2787:(U,l,d)=>{var Z=d(9297),t=d(4901),F=d(8981),c=d(6119),W=d(2211),s=c("IE_PROTO"),n=Object,V=n.prototype;U.exports=W?n.getPrototypeOf:function(Q){var i=F(Q);if(Z(i,s))return i[s];var N=i.constructor;return t(N)&&i instanceof N?N.prototype:i instanceof n?V:null}},1625:(U,l,d)=>{var Z=d(9504);U.exports=Z({}.isPrototypeOf)},1828:(U,l,d)=>{var Z=d(9504),t=d(9297),F=d(5397),c=d(9617).indexOf,W=d(421),s=Z([].push);U.exports=function(n,V){var Q=F(n),i=0,N=[],e;for(e in Q)!t(W,e)&&t(Q,e)&&s(N,e);for(;V.length>i;)t(Q,e=V[i++])&&(~c(N,e)||s(N,e));return N}},1072:(U,l,d)=>{var Z=d(1828),t=d(8727);U.exports=Object.keys||function(F){return Z(F,t)}},8773:(U,l)=>{var d={}.propertyIsEnumerable,Z=Object.getOwnPropertyDescriptor,t=Z&&!d.call({1:2},1);l.f=t?function(F){var c=Z(this,F);return!!c&&c.enumerable}:d},2967:(U,l,d)=>{var Z=d(6706),t=d(34),F=d(7750),c=d(3506);U.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var W=!1,s={},n;try{n=Z(Object.prototype,"__proto__","set"),n(s,[]),W=s instanceof Array}catch{}return function(V,Q){return F(V),c(Q),t(V)&&(W?n(V,Q):V.__proto__=Q),V}}():void 0)},4270:(U,l,d)=>{var Z=d(9565),t=d(4901),F=d(34),c=TypeError;U.exports=function(W,s){var n,V;if(s==="string"&&t(n=W.toString)&&!F(V=Z(n,W))||t(n=W.valueOf)&&!F(V=Z(n,W))||s!=="string"&&t(n=W.toString)&&!F(V=Z(n,W)))return V;throw new c("Can't convert object to primitive value")}},5031:(U,l,d)=>{var Z=d(7751),t=d(9504),F=d(8480),c=d(3717),W=d(8551),s=t([].concat);U.exports=Z("Reflect","ownKeys")||function(n){var V=F.f(W(n)),Q=c.f;return Q?s(V,Q(n)):V}},8235:(U,l,d)=>{var Z=d(9504),t=d(9297),F=SyntaxError,c=parseInt,W=String.fromCharCode,s=Z("".charAt),n=Z("".slice),V=Z(/./.exec),Q={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":` +`,"\\r":"\r","\\t":" "},i=/^[\da-f]{4}$/i,N=/^[\u0000-\u001F]$/;U.exports=function(e,m){for(var M=!0,J="";m{U.exports=function(l){try{return{error:!1,value:l()}}catch(d){return{error:!0,value:d}}}},7750:(U,l,d)=>{var Z=d(4117),t=TypeError;U.exports=function(F){if(Z(F))throw new t("Can't call method on "+F);return F}},9286:(U,l,d)=>{var Z=d(4402),t=d(8469),F=Z.Set,c=Z.add;U.exports=function(W){var s=new F;return t(W,function(n){c(s,n)}),s}},3440:(U,l,d)=>{var Z=d(7080),t=d(4402),F=d(9286),c=d(5170),W=d(3789),s=d(8469),n=d(507),V=t.has,Q=t.remove;U.exports=function(i){var N=Z(this),e=W(i),m=F(N);return c(N)<=e.size?s(N,function(M){e.includes(M)&&Q(m,M)}):n(e.getIterator(),function(M){V(N,M)&&Q(m,M)}),m}},4402:(U,l,d)=>{var Z=d(9504),t=Set.prototype;U.exports={Set,add:Z(t.add),has:Z(t.has),remove:Z(t.delete),proto:t}},8750:(U,l,d)=>{var Z=d(7080),t=d(4402),F=d(5170),c=d(3789),W=d(8469),s=d(507),n=t.Set,V=t.add,Q=t.has;U.exports=function(i){var N=Z(this),e=c(i),m=new n;return F(N)>e.size?s(e.getIterator(),function(M){Q(N,M)&&V(m,M)}):W(N,function(M){e.includes(M)&&V(m,M)}),m}},4449:(U,l,d)=>{var Z=d(7080),t=d(4402).has,F=d(5170),c=d(3789),W=d(8469),s=d(507),n=d(9539);U.exports=function(V){var Q=Z(this),i=c(V);if(F(Q)<=i.size)return W(Q,function(e){if(i.includes(e))return!1},!0)!==!1;var N=i.getIterator();return s(N,function(e){if(t(Q,e))return n(N,"normal",!1)})!==!1}},3838:(U,l,d)=>{var Z=d(7080),t=d(5170),F=d(8469),c=d(3789);U.exports=function(W){var s=Z(this),n=c(W);return t(s)>n.size?!1:F(s,function(V){if(!n.includes(V))return!1},!0)!==!1}},8527:(U,l,d)=>{var Z=d(7080),t=d(4402).has,F=d(5170),c=d(3789),W=d(507),s=d(9539);U.exports=function(n){var V=Z(this),Q=c(n);if(F(V){var Z=d(9504),t=d(507),F=d(4402),c=F.Set,W=F.proto,s=Z(W.forEach),n=Z(W.keys),V=n(new c).next;U.exports=function(Q,i,N){return N?t({iterator:n(Q),next:V},i):s(Q,i)}},4916:(U,l,d)=>{var Z=d(7751),t=function(F){return{size:F,has:function(){return!1},keys:function(){return{next:function(){return{done:!0}}}}}};U.exports=function(F){var c=Z("Set");try{new c()[F](t(0));try{return new c()[F](t(-1)),!1}catch{return!0}}catch{return!1}}},5170:(U,l,d)=>{var Z=d(6706),t=d(4402);U.exports=Z(t.proto,"size","get")||function(F){return F.size}},3650:(U,l,d)=>{var Z=d(7080),t=d(4402),F=d(9286),c=d(3789),W=d(507),s=t.add,n=t.has,V=t.remove;U.exports=function(Q){var i=Z(this),N=c(Q).getIterator(),e=F(i);return W(N,function(m){n(i,m)?V(e,m):s(e,m)}),e}},4204:(U,l,d)=>{var Z=d(7080),t=d(4402).add,F=d(9286),c=d(3789),W=d(507);U.exports=function(s){var n=Z(this),V=c(s).getIterator(),Q=F(n);return W(V,function(i){t(Q,i)}),Q}},6119:(U,l,d)=>{var Z=d(5745),t=d(3392),F=Z("keys");U.exports=function(c){return F[c]||(F[c]=t(c))}},7629:(U,l,d)=>{var Z=d(6395),t=d(4576),F=d(9433),c="__core-js_shared__",W=U.exports=t[c]||F(c,{});(W.versions||(W.versions=[])).push({version:"3.39.0",mode:Z?"pure":"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.39.0/LICENSE",source:"https://github.com/zloirock/core-js"})},5745:(U,l,d)=>{var Z=d(7629);U.exports=function(t,F){return Z[t]||(Z[t]=F||{})}},1548:(U,l,d)=>{var Z=d(4576),t=d(9039),F=d(9519),c=d(4215),W=Z.structuredClone;U.exports=!!W&&!t(function(){if(c==="DENO"&&F>92||c==="NODE"&&F>94||c==="BROWSER"&&F>97)return!1;var s=new ArrayBuffer(8),n=W(s,{transfer:[s]});return s.byteLength!==0||n.byteLength!==8})},4495:(U,l,d)=>{var Z=d(9519),t=d(9039),F=d(4576),c=F.String;U.exports=!!Object.getOwnPropertySymbols&&!t(function(){var W=Symbol("symbol detection");return!c(W)||!(Object(W)instanceof Symbol)||!Symbol.sham&&Z&&Z<41})},5610:(U,l,d)=>{var Z=d(1291),t=Math.max,F=Math.min;U.exports=function(c,W){var s=Z(c);return s<0?t(s+W,0):F(s,W)}},5854:(U,l,d)=>{var Z=d(2777),t=TypeError;U.exports=function(F){var c=Z(F,"number");if(typeof c=="number")throw new t("Can't convert number to bigint");return BigInt(c)}},7696:(U,l,d)=>{var Z=d(1291),t=d(8014),F=RangeError;U.exports=function(c){if(c===void 0)return 0;var W=Z(c),s=t(W);if(W!==s)throw new F("Wrong length or index");return s}},5397:(U,l,d)=>{var Z=d(7055),t=d(7750);U.exports=function(F){return Z(t(F))}},1291:(U,l,d)=>{var Z=d(741);U.exports=function(t){var F=+t;return F!==F||F===0?0:Z(F)}},8014:(U,l,d)=>{var Z=d(1291),t=Math.min;U.exports=function(F){var c=Z(F);return c>0?t(c,9007199254740991):0}},8981:(U,l,d)=>{var Z=d(7750),t=Object;U.exports=function(F){return t(Z(F))}},9590:(U,l,d)=>{var Z=d(1291),t=RangeError;U.exports=function(F){var c=Z(F);if(c<0)throw new t("The argument can't be less than 0");return c}},2777:(U,l,d)=>{var Z=d(9565),t=d(34),F=d(757),c=d(5966),W=d(4270),s=d(8227),n=TypeError,V=s("toPrimitive");U.exports=function(Q,i){if(!t(Q)||F(Q))return Q;var N=c(Q,V),e;if(N){if(i===void 0&&(i="default"),e=Z(N,Q,i),!t(e)||F(e))return e;throw new n("Can't convert object to primitive value")}return i===void 0&&(i="number"),W(Q,i)}},6969:(U,l,d)=>{var Z=d(2777),t=d(757);U.exports=function(F){var c=Z(F,"string");return t(c)?c:c+""}},2140:(U,l,d)=>{var Z=d(8227),t=Z("toStringTag"),F={};F[t]="z",U.exports=String(F)==="[object z]"},655:(U,l,d)=>{var Z=d(6955),t=String;U.exports=function(F){if(Z(F)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return t(F)}},6823:U=>{var l=String;U.exports=function(d){try{return l(d)}catch{return"Object"}}},3392:(U,l,d)=>{var Z=d(9504),t=0,F=Math.random(),c=Z(1 .toString);U.exports=function(W){return"Symbol("+(W===void 0?"":W)+")_"+c(++t+F,36)}},7040:(U,l,d)=>{var Z=d(4495);U.exports=Z&&!Symbol.sham&&typeof Symbol.iterator=="symbol"},8686:(U,l,d)=>{var Z=d(3724),t=d(9039);U.exports=Z&&t(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})},2812:U=>{var l=TypeError;U.exports=function(d,Z){if(d{var Z=d(4576),t=d(4901),F=Z.WeakMap;U.exports=t(F)&&/native code/.test(String(F))},8227:(U,l,d)=>{var Z=d(4576),t=d(5745),F=d(9297),c=d(3392),W=d(4495),s=d(7040),n=Z.Symbol,V=t("wks"),Q=s?n.for||n:n&&n.withoutSetter||c;U.exports=function(i){return F(V,i)||(V[i]=W&&F(n,i)?n[i]:Q("Symbol."+i)),V[i]}},6573:(U,l,d)=>{var Z=d(3724),t=d(2106),F=d(3238),c=ArrayBuffer.prototype;Z&&!("detached"in c)&&t(c,"detached",{configurable:!0,get:function(){return F(this)}})},7936:(U,l,d)=>{var Z=d(6518),t=d(5636);t&&Z({target:"ArrayBuffer",proto:!0},{transferToFixedLength:function(){return t(this,arguments.length?arguments[0]:void 0,!1)}})},8100:(U,l,d)=>{var Z=d(6518),t=d(5636);t&&Z({target:"ArrayBuffer",proto:!0},{transfer:function(){return t(this,arguments.length?arguments[0]:void 0,!0)}})},4114:(U,l,d)=>{var Z=d(6518),t=d(8981),F=d(6198),c=d(4527),W=d(6837),s=d(9039),n=s(function(){return[].push.call({length:4294967296},1)!==4294967297}),V=function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(i){return i instanceof TypeError}},Q=n||!V();Z({target:"Array",proto:!0,arity:1,forced:Q},{push:function(i){var N=t(this),e=F(N),m=arguments.length;W(e+m);for(var M=0;M{var Z=d(6518),t=d(4576),F=d(679),c=d(8551),W=d(4901),s=d(2787),n=d(2106),V=d(4659),Q=d(9039),i=d(9297),N=d(8227),e=d(7657).IteratorPrototype,m=d(3724),M=d(6395),J="constructor",S="Iterator",G=N("toStringTag"),T=TypeError,p=t[S],u=M||!W(p)||p.prototype!==e||!Q(function(){p({})}),Y=function(){if(F(this,e),s(this)===e)throw new T("Abstract class Iterator not directly constructable")},o=function(X,B){m?n(e,X,{configurable:!0,get:function(){return B},set:function(y){if(c(this),this===e)throw new T("You can't redefine this property");i(this,X)?this[X]=y:V(this,X,y)}}):e[X]=B};i(e,G)||o(G,S),(u||!i(e,J)||e[J]===Object)&&o(J,Y),Y.prototype=e,Z({global:!0,constructor:!0,forced:u},{Iterator:Y})},9314:(U,l,d)=>{var Z=d(6518),t=d(9565),F=d(8551),c=d(1767),W=d(4149),s=d(9590),n=d(9462),V=d(6395),Q=n(function(){for(var i=this.iterator,N=this.next,e,m;this.remaining;)if(this.remaining--,e=F(t(N,i)),m=this.done=!!e.done,m)return;if(e=F(t(N,i)),m=this.done=!!e.done,!m)return e.value});Z({target:"Iterator",proto:!0,real:!0,forced:V},{drop:function(i){F(this);var N=s(W(+i));return new Q(c(this),{remaining:N})}})},1148:(U,l,d)=>{var Z=d(6518),t=d(2652),F=d(9306),c=d(8551),W=d(1767);Z({target:"Iterator",proto:!0,real:!0},{every:function(s){c(this),F(s);var n=W(this),V=0;return!t(n,function(Q,i){if(!s(Q,V++))return i()},{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})},2489:(U,l,d)=>{var Z=d(6518),t=d(9565),F=d(9306),c=d(8551),W=d(1767),s=d(9462),n=d(6319),V=d(6395),Q=s(function(){for(var i=this.iterator,N=this.predicate,e=this.next,m,M,J;;){if(m=c(t(e,i)),M=this.done=!!m.done,M)return;if(J=m.value,n(i,N,[J,this.counter++],!0))return J}});Z({target:"Iterator",proto:!0,real:!0,forced:V},{filter:function(i){return c(this),F(i),new Q(W(this),{predicate:i})}})},531:(U,l,d)=>{var Z=d(6518),t=d(9565),F=d(9306),c=d(8551),W=d(1767),s=d(8646),n=d(9462),V=d(9539),Q=d(6395),i=n(function(){for(var N=this.iterator,e=this.mapper,m,M;;){if(M=this.inner)try{if(m=c(t(M.next,M.iterator)),!m.done)return m.value;this.inner=null}catch(J){V(N,"throw",J)}if(m=c(t(this.next,N)),this.done=!!m.done)return;try{this.inner=s(e(m.value,this.counter++),!1)}catch(J){V(N,"throw",J)}}});Z({target:"Iterator",proto:!0,real:!0,forced:Q},{flatMap:function(N){return c(this),F(N),new i(W(this),{mapper:N,inner:null})}})},1701:(U,l,d)=>{var Z=d(6518),t=d(713),F=d(6395);Z({target:"Iterator",proto:!0,real:!0,forced:F},{map:t})},3579:(U,l,d)=>{var Z=d(6518),t=d(2652),F=d(9306),c=d(8551),W=d(1767);Z({target:"Iterator",proto:!0,real:!0},{some:function(s){c(this),F(s);var n=W(this),V=0;return t(n,function(Q,i){if(s(Q,V++))return i()},{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})},1689:(U,l,d)=>{var Z=d(6518),t=d(4576),F=d(8745),c=d(7680),W=d(6043),s=d(9306),n=d(1103),V=t.Promise,Q=!1,i=!V||!V.try||n(function(){V.try(function(N){Q=N===8},8)}).error||!Q;Z({target:"Promise",stat:!0,forced:i},{try:function(N){var e=arguments.length>1?c(arguments,1):[],m=W.f(this),M=n(function(){return F(s(N),void 0,e)});return(M.error?m.reject:m.resolve)(M.value),m.promise}})},4628:(U,l,d)=>{var Z=d(6518),t=d(6043);Z({target:"Promise",stat:!0},{withResolvers:function(){var F=t.f(this);return{promise:F.promise,resolve:F.resolve,reject:F.reject}}})},7642:(U,l,d)=>{var Z=d(6518),t=d(3440),F=d(4916);Z({target:"Set",proto:!0,real:!0,forced:!F("difference")},{difference:t})},8004:(U,l,d)=>{var Z=d(6518),t=d(9039),F=d(8750),c=d(4916),W=!c("intersection")||t(function(){return String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))!=="3,2"});Z({target:"Set",proto:!0,real:!0,forced:W},{intersection:F})},3853:(U,l,d)=>{var Z=d(6518),t=d(4449),F=d(4916);Z({target:"Set",proto:!0,real:!0,forced:!F("isDisjointFrom")},{isDisjointFrom:t})},5876:(U,l,d)=>{var Z=d(6518),t=d(3838),F=d(4916);Z({target:"Set",proto:!0,real:!0,forced:!F("isSubsetOf")},{isSubsetOf:t})},2475:(U,l,d)=>{var Z=d(6518),t=d(8527),F=d(4916);Z({target:"Set",proto:!0,real:!0,forced:!F("isSupersetOf")},{isSupersetOf:t})},5024:(U,l,d)=>{var Z=d(6518),t=d(3650),F=d(4916);Z({target:"Set",proto:!0,real:!0,forced:!F("symmetricDifference")},{symmetricDifference:t})},1698:(U,l,d)=>{var Z=d(6518),t=d(4204),F=d(4916);Z({target:"Set",proto:!0,real:!0,forced:!F("union")},{union:t})},7467:(U,l,d)=>{var Z=d(7628),t=d(4644),F=t.aTypedArray,c=t.exportTypedArrayMethod,W=t.getTypedArrayConstructor;c("toReversed",function(){return Z(F(this),W(this))})},4732:(U,l,d)=>{var Z=d(4644),t=d(9504),F=d(9306),c=d(5370),W=Z.aTypedArray,s=Z.getTypedArrayConstructor,n=Z.exportTypedArrayMethod,V=t(Z.TypedArrayPrototype.sort);n("toSorted",function(Q){Q!==void 0&&F(Q);var i=W(this),N=c(s(i),i);return V(N,Q)})},9577:(U,l,d)=>{var Z=d(9928),t=d(4644),F=d(1108),c=d(1291),W=d(5854),s=t.aTypedArray,n=t.getTypedArrayConstructor,V=t.exportTypedArrayMethod,Q=!!function(){try{new Int8Array(1).with(2,{valueOf:function(){throw 8}})}catch(i){return i===8}}();V("with",function(i,N){var e=s(this),m=c(i),M=F(e)?W(N):+N;return Z(e,n(e),m,M)},!Q)},8992:(U,l,d)=>{d(8111)},4743:(U,l,d)=>{d(9314)},3215:(U,l,d)=>{d(1148)},4520:(U,l,d)=>{d(2489)},670:(U,l,d)=>{d(531)},1454:(U,l,d)=>{d(1701)},7550:(U,l,d)=>{d(3579)},8335:(U,l,d)=>{var Z=d(6518),t=d(3724),F=d(4576),c=d(7751),W=d(9504),s=d(9565),n=d(4901),V=d(34),Q=d(4376),i=d(9297),N=d(655),e=d(6198),m=d(4659),M=d(9039),J=d(8235),S=d(4495),G=F.JSON,T=F.Number,p=F.SyntaxError,u=G&&G.parse,Y=c("Object","keys"),o=Object.getOwnPropertyDescriptor,X=W("".charAt),B=W("".slice),y=W(/./.exec),E=W([].push),D=/^\d$/,w=/^[1-9]$/,I=/^[\d-]$/,L=/^[\t\n\r ]$/,g=0,A=1,Vl=function(C,z){C=N(C);var r=new bl(C,0),ll=r.parse(),hl=ll.value,_=r.skip(L,ll.end);if(_{d(1689)},4979:(U,l,d)=>{var Z=d(6518),t=d(4576),F=d(7751),c=d(6980),W=d(4913).f,s=d(9297),n=d(679),V=d(3167),Q=d(2603),i=d(5002),N=d(8574),e=d(3724),m=d(6395),M="DOMException",J=F("Error"),S=F(M),G=function(){n(this,T);var I=arguments.length,L=Q(I<1?void 0:arguments[0]),g=Q(I<2?void 0:arguments[1],"Error"),A=new S(L,g),Vl=new J(L);return Vl.name=M,W(A,"stack",c(1,N(Vl.stack,1))),V(A,this,G),A},T=G.prototype=S.prototype,p="stack"in new J(M),u="stack"in new S(1,2),Y=S&&e&&Object.getOwnPropertyDescriptor(t,M),o=!!Y&&!(Y.writable&&Y.configurable),X=p&&!o&&!u;Z({global:!0,constructor:!0,forced:m||X},{DOMException:X?G:S});var B=F(M),y=B.prototype;if(y.constructor!==B){m||W(y,"constructor",c(1,B));for(var E in i)if(s(i,E)){var D=i[E],w=D.s;s(B,w)||W(B,w,c(6,D.c))}}},4603:(U,l,d)=>{var Z=d(6840),t=d(9504),F=d(655),c=d(2812),W=URLSearchParams,s=W.prototype,n=t(s.append),V=t(s.delete),Q=t(s.forEach),i=t([].push),N=new W("a=1&a=2&b=3");N.delete("a",1),N.delete("b",void 0),N+""!="a=2"&&Z(s,"delete",function(e){var m=arguments.length,M=m<2?void 0:arguments[1];if(m&&M===void 0)return V(this,e);var J=[];Q(this,function(X,B){i(J,{key:B,value:X})}),c(m,1);for(var S=F(e),G=F(M),T=0,p=0,u=!1,Y=J.length,o;T{var Z=d(6840),t=d(9504),F=d(655),c=d(2812),W=URLSearchParams,s=W.prototype,n=t(s.getAll),V=t(s.has),Q=new W("a=1");(Q.has("a",2)||!Q.has("a",void 0))&&Z(s,"has",function(i){var N=arguments.length,e=N<2?void 0:arguments[1];if(N&&e===void 0)return V(this,i);var m=n(this,i);c(N,1);for(var M=F(e),J=0;J{var Z=d(3724),t=d(9504),F=d(2106),c=URLSearchParams.prototype,W=t(c.forEach);Z&&!("size"in c)&&F(c,"size",{get:function(){var s=0;return W(this,function(){s++}),s},configurable:!0,enumerable:!0})}},qR={};function nl(U){var l=qR[U];if(l!==void 0)return l.exports;var d=qR[U]={exports:{}};return Om[U].call(d.exports,d,d.exports,nl),d.exports}nl.d=(U,l)=>{for(var d in l)nl.o(l,d)&&!nl.o(U,d)&&Object.defineProperty(U,d,{enumerable:!0,get:l[d]})};nl.o=(U,l)=>Object.prototype.hasOwnProperty.call(U,l);var $=globalThis.pdfjsLib={};nl.d($,{AbortException:()=>Bt,AnnotationEditorLayer:()=>tJ,AnnotationEditorParamsType:()=>cl,AnnotationEditorType:()=>Zl,AnnotationEditorUIManager:()=>LW,AnnotationLayer:()=>vM,AnnotationMode:()=>Rt,ColorPicker:()=>Qb,DOMSVGFactory:()=>jR,DrawLayer:()=>FJ,FeatureTest:()=>Id,GlobalWorkerOptions:()=>f0,ImageKind:()=>gs,InvalidPDFException:()=>ii,MissingPDFException:()=>zW,OPS:()=>yU,OutputScale:()=>CR,PDFDataRangeTransport:()=>Le,PDFDateString:()=>Hh,PDFWorker:()=>sn,PasswordResponses:()=>Hm,PermissionFlag:()=>vm,PixelsPerInch:()=>Gc,RenderingCancelledException:()=>DR,TextLayer:()=>Li,TouchManager:()=>Ue,UnexpectedResponseException:()=>SV,Util:()=>O,VerbosityLevel:()=>lQ,XfaLayer:()=>Ee,build:()=>XM,createValidAbsoluteUrl:()=>_m,fetchData:()=>tQ,getDocument:()=>RM,getFilenameFromUrl:()=>c2,getPdfFilenameFromUrl:()=>a2,getXfaPageViewport:()=>W2,isDataScheme:()=>FQ,isPdfFile:()=>ER,noContextMenu:()=>LU,normalizeUnicode:()=>Z2,setLayerDimensions:()=>wF,shadow:()=>tl,stopEvent:()=>tU,version:()=>TM});nl(4114);nl(6573);nl(8100);nl(7936);nl(7467);nl(4732);nl(9577);nl(5247);nl(4979);nl(4603);nl(7566);nl(8721);const Bd=typeof process=="object"&&process+""=="[object process]"&&!process.versions.nw&&!(process.versions.electron&&process.type&&process.type!=="browser"),Kh=[1,0,0,1,0,0],Qi=[.001,0,0,.001,0,0],gm=1e7,VQ=1.35,dU={ANY:1,DISPLAY:2,PRINT:4,ANNOTATIONS_FORMS:16,ANNOTATIONS_STORAGE:32,ANNOTATIONS_DISABLE:64,IS_EDITING:128,OPLIST:256},Rt={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3},Km="pdfjs_internal_editor_",Zl={DISABLE:-1,NONE:0,FREETEXT:3,HIGHLIGHT:9,STAMP:13,INK:15},cl={RESIZE:1,CREATE:2,FREETEXT_SIZE:11,FREETEXT_COLOR:12,FREETEXT_OPACITY:13,INK_COLOR:21,INK_THICKNESS:22,INK_OPACITY:23,HIGHLIGHT_COLOR:31,HIGHLIGHT_DEFAULT_COLOR:32,HIGHLIGHT_THICKNESS:33,HIGHLIGHT_FREE:34,HIGHLIGHT_SHOW_ALL:35,DRAW_STEP:41},vm={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048},Md={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4},gs={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3},ld={TEXT:1,LINK:2,FREETEXT:3,LINE:4,SQUARE:5,CIRCLE:6,POLYGON:7,POLYLINE:8,HIGHLIGHT:9,UNDERLINE:10,SQUIGGLY:11,STRIKEOUT:12,STAMP:13,CARET:14,INK:15,POPUP:16,FILEATTACHMENT:17,WIDGET:20},Xc={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5},lQ={ERRORS:0,WARNINGS:1,INFOS:5},yU={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotation:80,endAnnotation:81,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91,setStrokeTransparent:92,setFillTransparent:93},Hm={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};let dQ=lQ.WARNINGS;function Pm(U){Number.isInteger(U)&&(dQ=U)}function fm(){return dQ}function UQ(U){dQ>=lQ.INFOS&&console.log(`Info: ${U}`)}function dl(U){dQ>=lQ.WARNINGS&&console.log(`Warning: ${U}`)}function Gl(U){throw new Error(U)}function Al(U,l){U||Gl(l)}function Am(U){switch(U==null?void 0:U.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}function _m(U,l=null,d=null){if(!U)return null;try{if(d&&typeof U=="string"){if(d.addDefaultProtocol&&U.startsWith("www.")){const t=U.match(/\./g);(t==null?void 0:t.length)>=2&&(U=`http://${U}`)}if(d.tryConvertEncoding)try{U=U2(U)}catch{}}const Z=l?new URL(U,l):new URL(U);if(Am(Z))return Z}catch{}return null}function tl(U,l,d,Z=!1){return Object.defineProperty(U,l,{value:d,enumerable:!Z,configurable:!0,writable:!1}),d}const yt=function(){function U(l,d){this.message=l,this.name=d}return U.prototype=new Error,U.constructor=U,U}();class $R extends yt{constructor(l,d){super(l,"PasswordException"),this.code=d}}class QQ extends yt{constructor(l,d){super(l,"UnknownErrorException"),this.details=d}}let ii=class extends yt{constructor(U){super(U,"InvalidPDFException")}},zW=class extends yt{constructor(U){super(U,"MissingPDFException")}},SV=class extends yt{constructor(U,l){super(U,"UnexpectedResponseException"),this.status=l}};class qm extends yt{constructor(l){super(l,"FormatError")}}let Bt=class extends yt{constructor(U){super(U,"AbortException")}};function vh(U){(typeof U!="object"||(U==null?void 0:U.length)===void 0)&&Gl("Invalid argument for bytesToString");const l=U.length,d=8192;if(l>24&255,U>>16&255,U>>8&255,U&255)}function LR(U){const l=Object.create(null);for(const[d,Z]of U)l[d]=Z;return l}function l2(){const U=new Uint8Array(4);return U[0]=1,new Uint32Array(U.buffer,0,1)[0]===1}function d2(){try{return new Function(""),!0}catch{return!1}}class Id{static get isLittleEndian(){return tl(this,"isLittleEndian",l2())}static get isEvalSupported(){return tl(this,"isEvalSupported",d2())}static get isOffscreenCanvasSupported(){return tl(this,"isOffscreenCanvasSupported",typeof OffscreenCanvas<"u")}static get isImageDecoderSupported(){return tl(this,"isImageDecoderSupported",typeof ImageDecoder<"u")}static get platform(){return typeof navigator<"u"&&typeof(navigator==null?void 0:navigator.platform)=="string"?tl(this,"platform",{isMac:navigator.platform.includes("Mac"),isWindows:navigator.platform.includes("Win"),isFirefox:typeof(navigator==null?void 0:navigator.userAgent)=="string"&&navigator.userAgent.includes("Firefox")}):tl(this,"platform",{isMac:!1,isWindows:!1,isFirefox:!1})}static get isCSSRoundSupported(){var l,d;return tl(this,"isCSSRoundSupported",(d=(l=globalThis.CSS)==null?void 0:l.supports)==null?void 0:d.call(l,"width: round(1.5px, 1px)"))}}const iQ=Array.from(Array(256).keys(),U=>U.toString(16).padStart(2,"0"));var zt,RQ,KW,NQ;let O=(RQ=class{static makeHexColor(U,l,d){return`#${iQ[U]}${iQ[l]}${iQ[d]}`}static scaleMinMax(U,l){let d;U[0]?(U[0]<0&&(d=l[0],l[0]=l[2],l[2]=d),l[0]*=U[0],l[2]*=U[0],U[3]<0&&(d=l[1],l[1]=l[3],l[3]=d),l[1]*=U[3],l[3]*=U[3]):(d=l[0],l[0]=l[1],l[1]=d,d=l[2],l[2]=l[3],l[3]=d,U[1]<0&&(d=l[1],l[1]=l[3],l[3]=d),l[1]*=U[1],l[3]*=U[1],U[2]<0&&(d=l[0],l[0]=l[2],l[2]=d),l[0]*=U[2],l[2]*=U[2]),l[0]+=U[4],l[1]+=U[5],l[2]+=U[4],l[3]+=U[5]}static transform(U,l){return[U[0]*l[0]+U[2]*l[1],U[1]*l[0]+U[3]*l[1],U[0]*l[2]+U[2]*l[3],U[1]*l[2]+U[3]*l[3],U[0]*l[4]+U[2]*l[5]+U[4],U[1]*l[4]+U[3]*l[5]+U[5]]}static applyTransform(U,l){const d=U[0]*l[0]+U[1]*l[2]+l[4],Z=U[0]*l[1]+U[1]*l[3]+l[5];return[d,Z]}static applyInverseTransform(U,l){const d=l[0]*l[3]-l[1]*l[2],Z=(U[0]*l[3]-U[1]*l[2]+l[2]*l[5]-l[4]*l[3])/d,t=(-U[0]*l[1]+U[1]*l[0]+l[4]*l[1]-l[5]*l[0])/d;return[Z,t]}static getAxialAlignedBoundingBox(U,l){const d=this.applyTransform(U,l),Z=this.applyTransform(U.slice(2,4),l),t=this.applyTransform([U[0],U[3]],l),F=this.applyTransform([U[2],U[1]],l);return[Math.min(d[0],Z[0],t[0],F[0]),Math.min(d[1],Z[1],t[1],F[1]),Math.max(d[0],Z[0],t[0],F[0]),Math.max(d[1],Z[1],t[1],F[1])]}static inverseTransform(U){const l=U[0]*U[3]-U[1]*U[2];return[U[3]/l,-U[1]/l,-U[2]/l,U[0]/l,(U[2]*U[5]-U[4]*U[3])/l,(U[4]*U[1]-U[5]*U[0])/l]}static singularValueDecompose2dScale(U){const l=[U[0],U[2],U[1],U[3]],d=U[0]*l[0]+U[1]*l[2],Z=U[0]*l[1]+U[1]*l[3],t=U[2]*l[0]+U[3]*l[2],F=U[2]*l[1]+U[3]*l[3],c=(d+F)/2,W=Math.sqrt((d+F)**2-4*(d*F-t*Z))/2,s=c+W||1,n=c-W||1;return[Math.sqrt(s),Math.sqrt(n)]}static normalizeRect(U){const l=U.slice(0);return U[0]>U[2]&&(l[0]=U[2],l[2]=U[0]),U[1]>U[3]&&(l[1]=U[3],l[3]=U[1]),l}static intersect(U,l){const d=Math.max(Math.min(U[0],U[2]),Math.min(l[0],l[2])),Z=Math.min(Math.max(U[0],U[2]),Math.max(l[0],l[2]));if(d>Z)return null;const t=Math.max(Math.min(U[1],U[3]),Math.min(l[1],l[3])),F=Math.min(Math.max(U[1],U[3]),Math.max(l[1],l[3]));return t>F?null:[d,t,Z,F]}static bezierBoundingBox(U,l,d,Z,t,F,c,W,s){return s?(s[0]=Math.min(s[0],U,c),s[1]=Math.min(s[1],l,W),s[2]=Math.max(s[2],U,c),s[3]=Math.max(s[3],l,W)):s=[Math.min(U,c),Math.min(l,W),Math.max(U,c),Math.max(l,W)],h(this,zt,NQ).call(this,U,d,t,c,l,Z,F,W,3*(-U+3*(d-t)+c),6*(U-2*d+t),3*(d-U),s),h(this,zt,NQ).call(this,U,d,t,c,l,Z,F,W,3*(-l+3*(Z-F)+W),6*(l-2*Z+F),3*(Z-l),s),s}},zt=new WeakSet,KW=function(U,l,d,Z,t,F,c,W,s,n){if(s<=0||s>=1)return;const V=1-s,Q=s*s,i=Q*s,N=V*(V*(V*U+3*s*l)+3*Q*d)+i*Z,e=V*(V*(V*t+3*s*F)+3*Q*c)+i*W;n[0]=Math.min(n[0],N),n[1]=Math.min(n[1],e),n[2]=Math.max(n[2],N),n[3]=Math.max(n[3],e)},NQ=function(U,l,d,Z,t,F,c,W,s,n,V,Q){if(Math.abs(s)<1e-12){Math.abs(n)>=1e-12&&h(this,zt,KW).call(this,U,l,d,Z,t,F,c,W,-V/n,Q);return}const i=n**2-4*V*s;if(i<0)return;const N=Math.sqrt(i),e=2*s;h(this,zt,KW).call(this,U,l,d,Z,t,F,c,W,(-n+N)/e,Q),h(this,zt,KW).call(this,U,l,d,Z,t,F,c,W,(-n-N)/e,Q)},b(RQ,zt),RQ);function U2(U){return decodeURIComponent(escape(U))}let hQ=null,lN=null;function Z2(U){return hQ||(hQ=/([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu,lN=new Map([["ſt","ſt"]])),U.replaceAll(hQ,(l,d,Z)=>d?d.normalize("NFKC"):lN.get(Z))}function t2(){if(typeof crypto.randomUUID=="function")return crypto.randomUUID();const U=new Uint8Array(32);return crypto.getRandomValues(U),vh(U)}const IR="pdfjs_internal_id_";function F2(U){return Uint8Array.prototype.toBase64?U.toBase64():btoa(vh(U))}nl(4628);nl(7642);nl(8004);nl(3853);nl(5876);nl(2475);nl(5024);nl(1698);nl(1454);nl(8992);nl(4743);nl(3215);nl(7550);nl(8335);const VZ="http://www.w3.org/2000/svg";var Lt;let Gc=(Lt=class{},f(Lt,"CSS",96),f(Lt,"PDF",72),f(Lt,"PDF_TO_CSS_UNITS",Lt.CSS/Lt.PDF),Lt);async function tQ(U,l="text"){if(Fa(U,document.baseURI)){const d=await fetch(U);if(!d.ok)throw new Error(d.statusText);switch(l){case"arraybuffer":return d.arrayBuffer();case"blob":return d.blob();case"json":return d.json()}return d.text()}return new Promise((d,Z)=>{const t=new XMLHttpRequest;t.open("GET",U,!0),t.responseType=l,t.onreadystatechange=()=>{if(t.readyState===XMLHttpRequest.DONE){if(t.status===200||t.status===0){switch(l){case"arraybuffer":case"blob":case"json":d(t.response);return}d(t.responseText);return}Z(new Error(t.statusText))}},t.send(null)})}class wW{constructor({viewBox:l,userUnit:d,scale:Z,rotation:t,offsetX:F=0,offsetY:c=0,dontFlip:W=!1}){this.viewBox=l,this.userUnit=d,this.scale=Z,this.rotation=t,this.offsetX=F,this.offsetY=c,Z*=d;const s=(l[2]+l[0])/2,n=(l[3]+l[1])/2;let V,Q,i,N;switch(t%=360,t<0&&(t+=360),t){case 180:V=-1,Q=0,i=0,N=1;break;case 90:V=0,Q=1,i=1,N=0;break;case 270:V=0,Q=-1,i=-1,N=0;break;case 0:V=1,Q=0,i=0,N=-1;break;default:throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.")}W&&(i=-i,N=-N);let e,m,M,J;V===0?(e=Math.abs(n-l[1])*Z+F,m=Math.abs(s-l[0])*Z+c,M=(l[3]-l[1])*Z,J=(l[2]-l[0])*Z):(e=Math.abs(s-l[0])*Z+F,m=Math.abs(n-l[1])*Z+c,M=(l[2]-l[0])*Z,J=(l[3]-l[1])*Z),this.transform=[V*Z,Q*Z,i*Z,N*Z,e-V*Z*s-i*Z*n,m-Q*Z*s-N*Z*n],this.width=M,this.height=J}get rawDims(){const{userUnit:l,viewBox:d}=this,Z=d.map(t=>t*l);return tl(this,"rawDims",{pageWidth:Z[2]-Z[0],pageHeight:Z[3]-Z[1],pageX:Z[0],pageY:Z[1]})}clone({scale:l=this.scale,rotation:d=this.rotation,offsetX:Z=this.offsetX,offsetY:t=this.offsetY,dontFlip:F=!1}={}){return new wW({viewBox:this.viewBox.slice(),userUnit:this.userUnit,scale:l,rotation:d,offsetX:Z,offsetY:t,dontFlip:F})}convertToViewportPoint(l,d){return O.applyTransform([l,d],this.transform)}convertToViewportRectangle(l){const d=O.applyTransform([l[0],l[1]],this.transform),Z=O.applyTransform([l[2],l[3]],this.transform);return[d[0],d[1],Z[0],Z[1]]}convertToPdfPoint(l,d){return O.applyInverseTransform([l,d],this.transform)}}let DR=class extends yt{constructor(U,l=0){super(U,"RenderingCancelledException"),this.extraDelay=l}};function FQ(U){const l=U.length;let d=0;for(;d=1&&Z<=12?Z-1:0;let t=parseInt(l[3],10);t=t>=1&&t<=31?t:1;let F=parseInt(l[4],10);F=F>=0&&F<=23?F:0;let c=parseInt(l[5],10);c=c>=0&&c<=59?c:0;let W=parseInt(l[6],10);W=W>=0&&W<=59?W:0;const s=l[7]||"Z";let n=parseInt(l[8],10);n=n>=0&&n<=23?n:0;let V=parseInt(l[9],10)||0;return V=V>=0&&V<=59?V:0,s==="-"?(F+=n,c+=V):s==="+"&&(F-=n,c-=V),new Date(Date.UTC(d,Z,t,F,c,W))}},pc=new WeakMap,b(eQ,pc),eQ);function W2(U,{scale:l=1,rotation:d=0}){const{width:Z,height:t}=U.attributes.style,F=[0,0,parseInt(Z),parseInt(t)];return new wW({viewBox:F,userUnit:1,scale:l,rotation:d})}function wR(U){if(U.startsWith("#")){const l=parseInt(U.slice(1),16);return[(l&16711680)>>16,(l&65280)>>8,l&255]}return U.startsWith("rgb(")?U.slice(4,-1).split(",").map(l=>parseInt(l)):U.startsWith("rgba(")?U.slice(5,-1).split(",").map(l=>parseInt(l)).slice(0,3):(dl(`Not a valid color format: "${U}"`),[0,0,0])}function s2(U){const l=document.createElement("span");l.style.visibility="hidden",document.body.append(l);for(const d of U.keys()){l.style.color=d;const Z=window.getComputedStyle(l).color;U.set(d,wR(Z))}l.remove()}function Bl(U){const{a:l,b:d,c:Z,d:t,e:F,f:c}=U.getTransform();return[l,d,Z,t,F,c]}function DU(U){const{a:l,b:d,c:Z,d:t,e:F,f:c}=U.getTransform().invertSelf();return[l,d,Z,t,F,c]}function wF(U,l,d=!1,Z=!0){if(l instanceof wW){const{pageWidth:t,pageHeight:F}=l.rawDims,{style:c}=U,W=Id.isCSSRoundSupported,s=`var(--scale-factor) * ${t}px`,n=`var(--scale-factor) * ${F}px`,V=W?`round(down, ${s}, var(--scale-round-x, 1px))`:`calc(${s})`,Q=W?`round(down, ${n}, var(--scale-round-y, 1px))`:`calc(${n})`;!d||l.rotation%180===0?(c.width=V,c.height=Q):(c.width=Q,c.height=V)}Z&&U.setAttribute("data-main-rotation",l.rotation)}let CR=class{constructor(){const U=window.devicePixelRatio||1;this.sx=U,this.sy=U}get scaled(){return this.sx!==1||this.sy!==1}get symmetric(){return this.sx===this.sy}};var lF,R0,UZ,K0,Ks,qa,Ri,Ph,lZ,UN,ZN,TV,fh,Ni;const vs=class Hs{constructor(l){b(this,lZ),b(this,lF,null),b(this,R0,null),b(this,UZ),b(this,K0,null),b(this,Ks,null),R(this,UZ,l),a(Hs,qa)||R(Hs,qa,Object.freeze({freetext:"pdfjs-editor-remove-freetext-button",highlight:"pdfjs-editor-remove-highlight-button",ink:"pdfjs-editor-remove-ink-button",stamp:"pdfjs-editor-remove-stamp-button"}))}render(){const l=R(this,lF,document.createElement("div"));l.classList.add("editToolbar","hidden"),l.setAttribute("role","toolbar");const d=a(this,UZ)._uiManager._signal;l.addEventListener("contextmenu",LU,{signal:d}),l.addEventListener("pointerdown",h(Hs,Ri,Ph),{signal:d});const Z=R(this,K0,document.createElement("div"));Z.className="buttons",l.append(Z);const t=a(this,UZ).toolbarPosition;if(t){const{style:F}=l,c=a(this,UZ)._uiManager.direction==="ltr"?1-t[0]:t[0];F.insetInlineEnd=`${100*c}%`,F.top=`calc(${100*t[1]}% + var(--editor-toolbar-vert-offset))`}return h(this,lZ,fh).call(this),l}get div(){return a(this,lF)}hide(){var l;a(this,lF).classList.add("hidden"),(l=a(this,R0))==null||l.hideDropdown()}show(){var l;a(this,lF).classList.remove("hidden"),(l=a(this,Ks))==null||l.shown()}async addAltText(l){const d=await l.render();h(this,lZ,TV).call(this,d),a(this,K0).prepend(d,a(this,lZ,Ni)),R(this,Ks,l)}addColorPicker(l){R(this,R0,l);const d=l.renderButton();h(this,lZ,TV).call(this,d),a(this,K0).prepend(d,a(this,lZ,Ni))}remove(){var l;a(this,lF).remove(),(l=a(this,R0))==null||l.destroy(),R(this,R0,null)}};lF=new WeakMap,R0=new WeakMap,UZ=new WeakMap,K0=new WeakMap,Ks=new WeakMap,qa=new WeakMap,Ri=new WeakSet,Ph=function(U){U.stopPropagation()},lZ=new WeakSet,UN=function(U){a(this,UZ)._focusEventsAllowed=!1,tU(U)},ZN=function(U){a(this,UZ)._focusEventsAllowed=!0,tU(U)},TV=function(U){const l=a(this,UZ)._uiManager._signal;U.addEventListener("focusin",h(this,lZ,UN).bind(this),{capture:!0,signal:l}),U.addEventListener("focusout",h(this,lZ,ZN).bind(this),{capture:!0,signal:l}),U.addEventListener("contextmenu",LU,{signal:l})},fh=function(){const{editorType:U,_uiManager:l}=a(this,UZ),d=document.createElement("button");d.className="delete",d.tabIndex=0,d.setAttribute("data-l10n-id",a(vs,qa)[U]),h(this,lZ,TV).call(this,d),d.addEventListener("click",Z=>{l.delete()},{signal:l._signal}),a(this,K0).append(d)},Ni=function(){const U=document.createElement("div");return U.className="divider",U},b(vs,Ri),b(vs,qa,null);let n2=vs;var Ps,XF,v0,$a,Ah,_h,tN;class V2{constructor(l){b(this,$a),b(this,Ps,null),b(this,XF,null),b(this,v0),R(this,v0,l)}show(l,d,Z){const[t,F]=h(this,$a,_h).call(this,d,Z),{style:c}=a(this,XF)||R(this,XF,h(this,$a,Ah).call(this));l.append(a(this,XF)),c.insetInlineEnd=`${100*t}%`,c.top=`calc(${100*F}% + var(--editor-toolbar-vert-offset))`}hide(){a(this,XF).remove()}}Ps=new WeakMap,XF=new WeakMap,v0=new WeakMap,$a=new WeakSet,Ah=function(){const U=R(this,XF,document.createElement("div"));U.className="editToolbar",U.setAttribute("role","toolbar"),U.addEventListener("contextmenu",LU,{signal:a(this,v0)._signal});const l=R(this,Ps,document.createElement("div"));return l.className="buttons",U.append(l),h(this,$a,tN).call(this),U},_h=function(U,l){let d=0,Z=0;for(const t of U){const F=t.y+t.height;if(Fd){Z=c,d=F;continue}l?c>Z&&(Z=c):c{a(this,v0).highlightSelection("floating_button")},{signal:d}),a(this,Ps).append(U)};function XV(U,l,d){for(const Z of d)l.addEventListener(Z,U[Z].bind(U))}var hi;class Q2{constructor(){b(this,hi,0)}get id(){return`${Km}${Ld(this,hi)._++}`}}hi=new WeakMap;var lW,pV,dd,ca,fs;const qh=class{constructor(){b(this,ca),b(this,lW,t2()),b(this,pV,0),b(this,dd,null)}static get _isSVGFittingCanvas(){const l='data:image/svg+xml;charset=UTF-8,',d=new OffscreenCanvas(1,3).getContext("2d",{willReadFrequently:!0}),Z=new Image;Z.src=l;const t=Z.decode().then(()=>(d.drawImage(Z,0,0,1,1,0,0,1,3),new Uint32Array(d.getImageData(0,0,1,1).data.buffer)[0]===0));return tl(this,"_isSVGFittingCanvas",t)}async getFromFile(l){const{lastModified:d,name:Z,size:t,type:F}=l;return h(this,ca,fs).call(this,`${d}_${Z}_${t}_${F}`,l)}async getFromUrl(l){return h(this,ca,fs).call(this,l,l)}async getFromBlob(l,d){const Z=await d;return h(this,ca,fs).call(this,l,Z)}async getFromId(l){a(this,dd)||R(this,dd,new Map);const d=a(this,dd).get(l);if(!d)return null;if(d.bitmap)return d.refCounter+=1,d;if(d.file)return this.getFromFile(d.file);if(d.blobPromise){const{blobPromise:Z}=d;return delete d.blobPromise,this.getFromBlob(d.id,Z)}return this.getFromUrl(d.url)}getFromCanvas(l,d){a(this,dd)||R(this,dd,new Map);let Z=a(this,dd).get(l);if(Z!=null&&Z.bitmap)return Z.refCounter+=1,Z;const t=new OffscreenCanvas(d.width,d.height);return t.getContext("2d").drawImage(d,0,0),Z={bitmap:t.transferToImageBitmap(),id:`image_${a(this,lW)}_${Ld(this,pV)._++}`,refCounter:1,isSvg:!1},a(this,dd).set(l,Z),a(this,dd).set(Z.id,Z),Z}getSvgUrl(l){const d=a(this,dd).get(l);return d!=null&&d.isSvg?d.svgUrl:null}deleteId(l){var d;a(this,dd)||R(this,dd,new Map);const Z=a(this,dd).get(l);if(!Z||(Z.refCounter-=1,Z.refCounter!==0))return;const{bitmap:t}=Z;if(!Z.url&&!Z.file){const F=new OffscreenCanvas(t.width,t.height);F.getContext("bitmaprenderer").transferFromImageBitmap(t),Z.blobPromise=F.convertToBlob()}(d=t.close)==null||d.call(t),Z.bitmap=null}isValidId(l){return l.startsWith(`image_${a(this,lW)}_`)}};lW=new WeakMap,pV=new WeakMap,dd=new WeakMap,ca=new WeakSet,fs=async function(U,l){a(this,dd)||R(this,dd,new Map);let d=a(this,dd).get(U);if(d===null)return null;if(d!=null&&d.bitmap)return d.refCounter+=1,d;try{d||(d={bitmap:null,id:`image_${a(this,lW)}_${Ld(this,pV)._++}`,refCounter:0,isSvg:!1});let Z;if(typeof l=="string"?(d.url=l,Z=await tQ(l,"blob")):l instanceof File?Z=d.file=l:l instanceof Blob&&(Z=l),Z.type==="image/svg+xml"){const t=qh._isSVGFittingCanvas,F=new FileReader,c=new Image,W=new Promise((s,n)=>{c.onload=()=>{d.bitmap=c,d.isSvg=!0,s()},F.onload=async()=>{const V=d.svgUrl=F.result;c.src=await t?`${V}#svgView(preserveAspectRatio(none))`:V},c.onerror=F.onerror=n});F.readAsDataURL(Z),await W}else d.bitmap=await createImageBitmap(Z);d.refCounter=1}catch(Z){dl(Z),d=null}return a(this,dd).set(U,d),d&&a(this,dd).set(d.id,d),d};let i2=qh;var vl,dF,As,Yl;class R2{constructor(l=128){b(this,vl,[]),b(this,dF,!1),b(this,As),b(this,Yl,-1),R(this,As,l)}add({cmd:l,undo:d,post:Z,mustExec:t,type:F=NaN,overwriteIfSameType:c=!1,keepUndo:W=!1}){if(t&&l(),a(this,dF))return;const s={cmd:l,undo:d,post:Z,type:F};if(a(this,Yl)===-1){a(this,vl).length>0&&(a(this,vl).length=0),R(this,Yl,0),a(this,vl).push(s);return}if(c&&a(this,vl)[a(this,Yl)].type===F){W&&(s.undo=a(this,vl)[a(this,Yl)].undo),a(this,vl)[a(this,Yl)]=s;return}const n=a(this,Yl)+1;n===a(this,As)?a(this,vl).splice(0,1):(R(this,Yl,n),n=0;d--)if(a(this,vl)[d].type!==l){a(this,vl).splice(d+1,a(this,Yl)-d),R(this,Yl,d);return}a(this,vl).length=0,R(this,Yl,-1)}}destroy(){R(this,vl,null)}}vl=new WeakMap,dF=new WeakMap,As=new WeakMap,Yl=new WeakMap;var ei,$h;class CW{constructor(l){b(this,ei),this.buffer=[],this.callbacks=new Map,this.allKeys=new Set;const{isMac:d}=Id.platform;for(const[Z,t,F={}]of l)for(const c of Z){const W=c.startsWith("mac+");d&&W?(this.callbacks.set(c.slice(4),{callback:t,options:F}),this.allKeys.add(c.split("+").at(-1))):!d&&!W&&(this.callbacks.set(c,{callback:t,options:F}),this.allKeys.add(c.split("+").at(-1)))}}exec(l,d){if(!this.allKeys.has(d.key))return;const Z=this.callbacks.get(h(this,ei,$h).call(this,d));if(!Z)return;const{callback:t,options:{bubbles:F=!1,args:c=[],checker:W=null}}=Z;W&&!W(l,d)||(t.bind(l,...c,d)(),F||tU(d))}}ei=new WeakSet,$h=function(U){U.altKey&&this.buffer.push("alt"),U.ctrlKey&&this.buffer.push("ctrl"),U.metaKey&&this.buffer.push("meta"),U.shiftKey&&this.buffer.push("shift"),this.buffer.push(U.key);const l=this.buffer.join("+");return this.buffer.length=0,l};const le=class de{get _colors(){const l=new Map([["CanvasText",null],["Canvas",null]]);return s2(l),tl(this,"_colors",l)}convert(l){const d=wR(l);if(!window.matchMedia("(forced-colors: active)").matches)return d;for(const[Z,t]of this._colors)if(t.every((F,c)=>F===d[c]))return de._colorsMapping.get(Z);return d}getHexCode(l){const d=this._colors.get(l);return d?O.makeHexColor(...d):l}};f(le,"_colorsMapping",new Map([["CanvasText",[0,0,0]],["Canvas",[255,255,255]]]));let N2=le;var uc,aU,td,bd,Yc,wZ,KF,SU,It,vF,Bc,HF,FZ,EU,PF,vW,HW,oc,PW,cZ,Dt,yc,Et,wU,bQ,wt,fW,Ct,fF,AW,_W,Wd,Ml,CZ,AF,kc,qW,rt,aZ,rZ,$W,TU,_F,K,ls,mQ,FN,cN,ds,aN,WN,sN,MQ,nN,JQ,GQ,VN,od,WZ,QN,iN,SQ,RN,zc,TQ;let LW=(_F=class{constructor(U,l,d,Z,t,F,c,W,s,n,V,Q,i){b(this,K),b(this,uc,new AbortController),b(this,aU,null),b(this,td,new Map),b(this,bd,new Map),b(this,Yc,null),b(this,wZ,null),b(this,KF,null),b(this,SU,new R2),b(this,It,null),b(this,vF,null),b(this,Bc,0),b(this,HF,new Set),b(this,FZ,null),b(this,EU,null),b(this,PF,new Set),f(this,"_editorUndoBar",null),b(this,vW,!1),b(this,HW,!1),b(this,oc,!1),b(this,PW,null),b(this,cZ,null),b(this,Dt,null),b(this,yc,null),b(this,Et,!1),b(this,wU,null),b(this,bQ,new Q2),b(this,wt,!1),b(this,fW,!1),b(this,Ct,null),b(this,fF,null),b(this,AW,null),b(this,_W,null),b(this,Wd,Zl.NONE),b(this,Ml,new Set),b(this,CZ,null),b(this,AF,null),b(this,kc,null),b(this,qW,{isEditing:!1,isEmpty:!0,hasSomethingToUndo:!1,hasSomethingToRedo:!1,hasSelectedEditor:!1,hasSelectedText:!1}),b(this,rt,[0,0]),b(this,aZ,null),b(this,rZ,null),b(this,$W,null),b(this,TU,null);const N=this._signal=a(this,uc).signal;R(this,rZ,U),R(this,$W,l),R(this,Yc,d),this._eventBus=Z,Z._on("editingaction",this.onEditingAction.bind(this),{signal:N}),Z._on("pagechanging",this.onPageChanging.bind(this),{signal:N}),Z._on("scalechanging",this.onScaleChanging.bind(this),{signal:N}),Z._on("rotationchanging",this.onRotationChanging.bind(this),{signal:N}),Z._on("setpreference",this.onSetPreference.bind(this),{signal:N}),Z._on("switchannotationeditorparams",e=>this.updateParams(e.type,e.value),{signal:N}),h(this,K,aN).call(this),h(this,K,VN).call(this),h(this,K,MQ).call(this),R(this,wZ,t.annotationStorage),R(this,PW,t.filterFactory),R(this,AF,F),R(this,yc,c||null),R(this,vW,W),R(this,HW,s),R(this,oc,n),R(this,_W,V||null),this.viewParameters={realScale:Gc.PDF_TO_CSS_UNITS,rotation:0},this.isShiftKeyDown=!1,this._editorUndoBar=Q||null,this._supportsPinchToZoom=i!==!1}static get _keyboardManager(){const U=_F.prototype,l=F=>a(F,rZ).contains(document.activeElement)&&document.activeElement.tagName!=="BUTTON"&&F.hasSomethingToControl(),d=(F,{target:c})=>{if(c instanceof HTMLInputElement){const{type:W}=c;return W!=="text"&&W!=="number"}return!0},Z=this.TRANSLATE_SMALL,t=this.TRANSLATE_BIG;return tl(this,"_keyboardManager",new CW([[["ctrl+a","mac+meta+a"],U.selectAll,{checker:d}],[["ctrl+z","mac+meta+z"],U.undo,{checker:d}],[["ctrl+y","ctrl+shift+z","mac+meta+shift+z","ctrl+shift+Z","mac+meta+shift+Z"],U.redo,{checker:d}],[["Backspace","alt+Backspace","ctrl+Backspace","shift+Backspace","mac+Backspace","mac+alt+Backspace","mac+ctrl+Backspace","Delete","ctrl+Delete","shift+Delete","mac+Delete"],U.delete,{checker:d}],[["Enter","mac+Enter"],U.addNewEditorFromKeyboard,{checker:(F,{target:c})=>!(c instanceof HTMLButtonElement)&&a(F,rZ).contains(c)&&!F.isEnterHandled}],[[" ","mac+ "],U.addNewEditorFromKeyboard,{checker:(F,{target:c})=>!(c instanceof HTMLButtonElement)&&a(F,rZ).contains(document.activeElement)}],[["Escape","mac+Escape"],U.unselectAll],[["ArrowLeft","mac+ArrowLeft"],U.translateSelectedEditors,{args:[-Z,0],checker:l}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],U.translateSelectedEditors,{args:[-t,0],checker:l}],[["ArrowRight","mac+ArrowRight"],U.translateSelectedEditors,{args:[Z,0],checker:l}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],U.translateSelectedEditors,{args:[t,0],checker:l}],[["ArrowUp","mac+ArrowUp"],U.translateSelectedEditors,{args:[0,-Z],checker:l}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],U.translateSelectedEditors,{args:[0,-t],checker:l}],[["ArrowDown","mac+ArrowDown"],U.translateSelectedEditors,{args:[0,Z],checker:l}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],U.translateSelectedEditors,{args:[0,t],checker:l}]]))}destroy(){var U,l,d,Z,t;(U=a(this,TU))==null||U.resolve(),R(this,TU,null),(l=a(this,uc))==null||l.abort(),R(this,uc,null),this._signal=null;for(const F of a(this,bd).values())F.destroy();a(this,bd).clear(),a(this,td).clear(),a(this,PF).clear(),R(this,aU,null),a(this,Ml).clear(),a(this,SU).destroy(),(d=a(this,Yc))==null||d.destroy(),(Z=a(this,wU))==null||Z.hide(),R(this,wU,null),a(this,cZ)&&(clearTimeout(a(this,cZ)),R(this,cZ,null)),a(this,aZ)&&(clearTimeout(a(this,aZ)),R(this,aZ,null)),(t=this._editorUndoBar)==null||t.destroy()}combinedSignal(U){return AbortSignal.any([this._signal,U.signal])}get mlManager(){return a(this,_W)}get useNewAltTextFlow(){return a(this,HW)}get useNewAltTextWhenAddingImage(){return a(this,oc)}get hcmFilter(){return tl(this,"hcmFilter",a(this,AF)?a(this,PW).addHCMFilter(a(this,AF).foreground,a(this,AF).background):"none")}get direction(){return tl(this,"direction",getComputedStyle(a(this,rZ)).direction)}get highlightColors(){return tl(this,"highlightColors",a(this,yc)?new Map(a(this,yc).split(",").map(U=>U.split("=").map(l=>l.trim()))):null)}get highlightColorNames(){return tl(this,"highlightColorNames",this.highlightColors?new Map(Array.from(this.highlightColors,U=>U.reverse())):null)}setCurrentDrawingSession(U){U?(this.unselectAll(),this.disableUserSelect(!0)):this.disableUserSelect(!1),R(this,vF,U)}setMainHighlightColorPicker(U){R(this,AW,U)}editAltText(U,l=!1){var d;(d=a(this,Yc))==null||d.editAltText(this,U,l)}switchToMode(U,l){this._eventBus.on("annotationeditormodechanged",l,{once:!0,signal:this._signal}),this._eventBus.dispatch("showannotationeditorui",{source:this,mode:U})}setPreference(U,l){this._eventBus.dispatch("setpreference",{source:this,name:U,value:l})}onSetPreference({name:U,value:l}){switch(U){case"enableNewAltTextWhenAddingImage":R(this,oc,l);break}}onPageChanging({pageNumber:U}){R(this,Bc,U-1)}focusMainContainer(){a(this,rZ).focus()}findParent(U,l){for(const d of a(this,bd).values()){const{x:Z,y:t,width:F,height:c}=d.div.getBoundingClientRect();if(U>=Z&&U<=Z+F&&l>=t&&l<=t+c)return d}return null}disableUserSelect(U=!1){a(this,$W).classList.toggle("noUserSelect",U)}addShouldRescale(U){a(this,PF).add(U)}removeShouldRescale(U){a(this,PF).delete(U)}onScaleChanging({scale:U}){var l;this.commitOrRemove(),this.viewParameters.realScale=U*Gc.PDF_TO_CSS_UNITS;for(const d of a(this,PF))d.onScaleChanging();(l=a(this,vF))==null||l.onScaleChanging()}onRotationChanging({pagesRotation:U}){this.commitOrRemove(),this.viewParameters.rotation=U}highlightSelection(U=""){const l=document.getSelection();if(!l||l.isCollapsed)return;const{anchorNode:d,anchorOffset:Z,focusNode:t,focusOffset:F}=l,c=l.toString(),W=h(this,K,ls).call(this,l).closest(".textLayer"),s=this.getSelectionBoxes(W);if(!s)return;l.empty();const n=h(this,K,mQ).call(this,W),V=a(this,Wd)===Zl.NONE,Q=()=>{n==null||n.createAndAddNewEditor({x:0,y:0},!1,{methodOfCreation:U,boxes:s,anchorNode:d,anchorOffset:Z,focusNode:t,focusOffset:F,text:c}),V&&this.showAllEditors("highlight",!0,!0)};if(V){this.switchToMode(Zl.HIGHLIGHT,Q);return}Q()}addToAnnotationStorage(U){!U.isEmpty()&&a(this,wZ)&&!a(this,wZ).has(U.id)&&a(this,wZ).setValue(U.id,U)}blur(){if(this.isShiftKeyDown=!1,a(this,Et)&&(R(this,Et,!1),h(this,K,ds).call(this,"main_toolbar")),!this.hasSelection)return;const{activeElement:U}=document;for(const l of a(this,Ml))if(l.div.contains(U)){R(this,fF,[l,U]),l._focusEventsAllowed=!1;break}}focus(){if(!a(this,fF))return;const[U,l]=a(this,fF);R(this,fF,null),l.addEventListener("focusin",()=>{U._focusEventsAllowed=!0},{once:!0,signal:this._signal}),l.focus()}addEditListeners(){h(this,K,MQ).call(this),h(this,K,JQ).call(this)}removeEditListeners(){h(this,K,nN).call(this),h(this,K,GQ).call(this)}dragOver(U){for(const{type:l}of U.dataTransfer.items)for(const d of a(this,EU))if(d.isHandlingMimeForPasting(l)){U.dataTransfer.dropEffect="copy",U.preventDefault();return}}drop(U){for(const l of U.dataTransfer.items)for(const d of a(this,EU))if(d.isHandlingMimeForPasting(l.type)){d.paste(l,this.currentLayer),U.preventDefault();return}}copy(U){var l;if(U.preventDefault(),(l=a(this,aU))==null||l.commitOrRemove(),!this.hasSelection)return;const d=[];for(const Z of a(this,Ml)){const t=Z.serialize(!0);t&&d.push(t)}d.length!==0&&U.clipboardData.setData("application/pdfjs",JSON.stringify(d))}cut(U){this.copy(U),this.delete()}async paste(U){U.preventDefault();const{clipboardData:l}=U;for(const t of l.items)for(const F of a(this,EU))if(F.isHandlingMimeForPasting(t.type)){F.paste(t,this.currentLayer);return}let d=l.getData("application/pdfjs");if(!d)return;try{d=JSON.parse(d)}catch(t){dl(`paste: "${t.message}".`);return}if(!Array.isArray(d))return;this.unselectAll();const Z=this.currentLayer;try{const t=[];for(const W of d){const s=await Z.deserialize(W);if(!s)return;t.push(s)}const F=()=>{for(const W of t)h(this,K,SQ).call(this,W);h(this,K,TQ).call(this,t)},c=()=>{for(const W of t)W.remove()};this.addCommands({cmd:F,undo:c,mustExec:!0})}catch(t){dl(`paste: "${t.message}".`)}}keydown(U){!this.isShiftKeyDown&&U.key==="Shift"&&(this.isShiftKeyDown=!0),a(this,Wd)!==Zl.NONE&&!this.isEditorHandlingKeyboard&&_F._keyboardManager.exec(this,U)}keyup(U){this.isShiftKeyDown&&U.key==="Shift"&&(this.isShiftKeyDown=!1,a(this,Et)&&(R(this,Et,!1),h(this,K,ds).call(this,"main_toolbar")))}onEditingAction({name:U}){switch(U){case"undo":case"redo":case"delete":case"selectAll":this[U]();break;case"highlightSelection":this.highlightSelection("context_menu");break}}setEditingState(U){U?(h(this,K,WN).call(this),h(this,K,JQ).call(this),h(this,K,od).call(this,{isEditing:a(this,Wd)!==Zl.NONE,isEmpty:h(this,K,zc).call(this),hasSomethingToUndo:a(this,SU).hasSomethingToUndo(),hasSomethingToRedo:a(this,SU).hasSomethingToRedo(),hasSelectedEditor:!1})):(h(this,K,sN).call(this),h(this,K,GQ).call(this),h(this,K,od).call(this,{isEditing:!1}),this.disableUserSelect(!1))}registerEditorTypes(U){if(!a(this,EU)){R(this,EU,U);for(const l of a(this,EU))h(this,K,WZ).call(this,l.defaultPropertiesToUpdate)}}getId(){return a(this,bQ).id}get currentLayer(){return a(this,bd).get(a(this,Bc))}getLayer(U){return a(this,bd).get(U)}get currentPageIndex(){return a(this,Bc)}addLayer(U){a(this,bd).set(U.pageIndex,U),a(this,wt)?U.enable():U.disable()}removeLayer(U){a(this,bd).delete(U.pageIndex)}async updateMode(U,l=null,d=!1){var Z;if(a(this,Wd)!==U&&!(a(this,TU)&&(await a(this,TU).promise,!a(this,TU)))){if(R(this,TU,Promise.withResolvers()),R(this,Wd,U),U===Zl.NONE){this.setEditingState(!1),h(this,K,iN).call(this),(Z=this._editorUndoBar)==null||Z.hide(),a(this,TU).resolve();return}this.setEditingState(!0),await h(this,K,QN).call(this),this.unselectAll();for(const t of a(this,bd).values())t.updateMode(U);if(!l){d&&this.addNewEditorFromKeyboard(),a(this,TU).resolve();return}for(const t of a(this,td).values())t.annotationElementId===l?(this.setSelected(t),t.enterInEditMode()):t.unselect();a(this,TU).resolve()}}addNewEditorFromKeyboard(){this.currentLayer.canCreateNewEmptyEditor()&&this.currentLayer.addNewEditor()}updateToolbar(U){U!==a(this,Wd)&&this._eventBus.dispatch("switchannotationeditormode",{source:this,mode:U})}updateParams(U,l){var d;if(a(this,EU)){switch(U){case cl.CREATE:this.currentLayer.addNewEditor();return;case cl.HIGHLIGHT_DEFAULT_COLOR:(d=a(this,AW))==null||d.updateColor(l);break;case cl.HIGHLIGHT_SHOW_ALL:this._eventBus.dispatch("reporttelemetry",{source:this,details:{type:"editing",data:{type:"highlight",action:"toggle_visibility"}}}),(a(this,kc)||R(this,kc,new Map)).set(U,l),this.showAllEditors("highlight",l);break}for(const Z of a(this,Ml))Z.updateParams(U,l);for(const Z of a(this,EU))Z.updateDefaultParams(U,l)}}showAllEditors(U,l,d=!1){var Z;for(const t of a(this,td).values())t.editorType===U&&t.show(l);(((Z=a(this,kc))==null?void 0:Z.get(cl.HIGHLIGHT_SHOW_ALL))??!0)!==l&&h(this,K,WZ).call(this,[[cl.HIGHLIGHT_SHOW_ALL,l]])}enableWaiting(U=!1){if(a(this,fW)!==U){R(this,fW,U);for(const l of a(this,bd).values())U?l.disableClick():l.enableClick(),l.div.classList.toggle("waiting",U)}}getEditors(U){const l=[];for(const d of a(this,td).values())d.pageIndex===U&&l.push(d);return l}getEditor(U){return a(this,td).get(U)}addEditor(U){a(this,td).set(U.id,U)}removeEditor(U){var l;U.div.contains(document.activeElement)&&(a(this,cZ)&&clearTimeout(a(this,cZ)),R(this,cZ,setTimeout(()=>{this.focusMainContainer(),R(this,cZ,null)},0))),a(this,td).delete(U.id),this.unselect(U),(!U.annotationElementId||!a(this,HF).has(U.annotationElementId))&&((l=a(this,wZ))==null||l.remove(U.id))}addDeletedAnnotationElement(U){a(this,HF).add(U.annotationElementId),this.addChangedExistingAnnotation(U),U.deleted=!0}isDeletedAnnotationElement(U){return a(this,HF).has(U)}removeDeletedAnnotationElement(U){a(this,HF).delete(U.annotationElementId),this.removeChangedExistingAnnotation(U),U.deleted=!1}setActiveEditor(U){a(this,aU)!==U&&(R(this,aU,U),U&&h(this,K,WZ).call(this,U.propertiesToUpdate))}updateUI(U){a(this,K,RN)===U&&h(this,K,WZ).call(this,U.propertiesToUpdate)}updateUIForDefaultProperties(U){h(this,K,WZ).call(this,U.defaultPropertiesToUpdate)}toggleSelected(U){if(a(this,Ml).has(U)){a(this,Ml).delete(U),U.unselect(),h(this,K,od).call(this,{hasSelectedEditor:this.hasSelection});return}a(this,Ml).add(U),U.select(),h(this,K,WZ).call(this,U.propertiesToUpdate),h(this,K,od).call(this,{hasSelectedEditor:!0})}setSelected(U){var l;(l=a(this,vF))==null||l.commitOrRemove();for(const d of a(this,Ml))d!==U&&d.unselect();a(this,Ml).clear(),a(this,Ml).add(U),U.select(),h(this,K,WZ).call(this,U.propertiesToUpdate),h(this,K,od).call(this,{hasSelectedEditor:!0})}isSelected(U){return a(this,Ml).has(U)}get firstSelectedEditor(){return a(this,Ml).values().next().value}unselect(U){U.unselect(),a(this,Ml).delete(U),h(this,K,od).call(this,{hasSelectedEditor:this.hasSelection})}get hasSelection(){return a(this,Ml).size!==0}get isEnterHandled(){return a(this,Ml).size===1&&this.firstSelectedEditor.isEnterHandled}undo(){var U;a(this,SU).undo(),h(this,K,od).call(this,{hasSomethingToUndo:a(this,SU).hasSomethingToUndo(),hasSomethingToRedo:!0,isEmpty:h(this,K,zc).call(this)}),(U=this._editorUndoBar)==null||U.hide()}redo(){a(this,SU).redo(),h(this,K,od).call(this,{hasSomethingToUndo:!0,hasSomethingToRedo:a(this,SU).hasSomethingToRedo(),isEmpty:h(this,K,zc).call(this)})}addCommands(U){a(this,SU).add(U),h(this,K,od).call(this,{hasSomethingToUndo:!0,hasSomethingToRedo:!1,isEmpty:h(this,K,zc).call(this)})}cleanUndoStack(U){a(this,SU).cleanType(U)}delete(){var U;this.commitOrRemove();const l=(U=this.currentLayer)==null?void 0:U.endDrawingSession(!0);if(!this.hasSelection&&!l)return;const d=l?[l]:[...a(this,Ml)],Z=()=>{var F;(F=this._editorUndoBar)==null||F.show(t,d.length===1?d[0].editorType:d.length);for(const c of d)c.remove()},t=()=>{for(const F of d)h(this,K,SQ).call(this,F)};this.addCommands({cmd:Z,undo:t,mustExec:!0})}commitOrRemove(){var U;(U=a(this,aU))==null||U.commitOrRemove()}hasSomethingToControl(){return a(this,aU)||this.hasSelection}selectAll(){for(const U of a(this,Ml))U.commit();h(this,K,TQ).call(this,a(this,td).values())}unselectAll(){var U;if(!(a(this,aU)&&(a(this,aU).commitOrRemove(),a(this,Wd)!==Zl.NONE))&&!((U=a(this,vF))!=null&&U.commitOrRemove())&&this.hasSelection){for(const l of a(this,Ml))l.unselect();a(this,Ml).clear(),h(this,K,od).call(this,{hasSelectedEditor:!1})}}translateSelectedEditors(U,l,d=!1){if(d||this.commitOrRemove(),!this.hasSelection)return;a(this,rt)[0]+=U,a(this,rt)[1]+=l;const[Z,t]=a(this,rt),F=[...a(this,Ml)];a(this,aZ)&&clearTimeout(a(this,aZ)),R(this,aZ,setTimeout(()=>{R(this,aZ,null),a(this,rt)[0]=a(this,rt)[1]=0,this.addCommands({cmd:()=>{for(const W of F)a(this,td).has(W.id)&&W.translateInPage(Z,t)},undo:()=>{for(const W of F)a(this,td).has(W.id)&&W.translateInPage(-Z,-t)},mustExec:!1})},1e3));for(const W of F)W.translateInPage(U,l)}setUpDragSession(){if(this.hasSelection){this.disableUserSelect(!0),R(this,FZ,new Map);for(const U of a(this,Ml))a(this,FZ).set(U,{savedX:U.x,savedY:U.y,savedPageIndex:U.pageIndex,newX:0,newY:0,newPageIndex:-1})}}endDragSession(){if(!a(this,FZ))return!1;this.disableUserSelect(!1);const U=a(this,FZ);R(this,FZ,null);let l=!1;for(const[{x:Z,y:t,pageIndex:F},c]of U)c.newX=Z,c.newY=t,c.newPageIndex=F,l||(l=Z!==c.savedX||t!==c.savedY||F!==c.savedPageIndex);if(!l)return!1;const d=(Z,t,F,c)=>{if(a(this,td).has(Z.id)){const W=a(this,bd).get(c);W?Z._setParentAndPosition(W,t,F):(Z.pageIndex=c,Z.x=t,Z.y=F)}};return this.addCommands({cmd:()=>{for(const[Z,{newX:t,newY:F,newPageIndex:c}]of U)d(Z,t,F,c)},undo:()=>{for(const[Z,{savedX:t,savedY:F,savedPageIndex:c}]of U)d(Z,t,F,c)},mustExec:!0}),!0}dragSelectedEditors(U,l){if(a(this,FZ))for(const d of a(this,FZ).keys())d.drag(U,l)}rebuild(U){if(U.parent===null){const l=this.getLayer(U.pageIndex);l?(l.changeParent(U),l.addOrRebuild(U)):(this.addEditor(U),this.addToAnnotationStorage(U),U.rebuild())}else U.parent.addOrRebuild(U)}get isEditorHandlingKeyboard(){var U;return((U=this.getActive())==null?void 0:U.shouldGetKeyboardEvents())||a(this,Ml).size===1&&this.firstSelectedEditor.shouldGetKeyboardEvents()}isActive(U){return a(this,aU)===U}getActive(){return a(this,aU)}getMode(){return a(this,Wd)}get imageManager(){return tl(this,"imageManager",new i2)}getSelectionBoxes(U){if(!U)return null;const l=document.getSelection();for(let s=0,n=l.rangeCount;s({x:(n-Z)/F,y:1-(s+V-d)/t,width:Q/F,height:V/t});break;case"180":c=(s,n,V,Q)=>({x:1-(s+V-d)/t,y:1-(n+Q-Z)/F,width:V/t,height:Q/F});break;case"270":c=(s,n,V,Q)=>({x:1-(n+Q-Z)/F,y:(s-d)/t,width:Q/F,height:V/t});break;default:c=(s,n,V,Q)=>({x:(s-d)/t,y:(n-Z)/F,width:V/t,height:Q/F});break}const W=[];for(let s=0,n=l.rangeCount;s{V.type==="pointerup"&&V.button!==0||(W.abort(),c==null||c.toggleDrawing(!0),V.type==="pointerup"&&h(this,K,ds).call(this,"main_toolbar"))};window.addEventListener("pointerup",n,{signal:s}),window.addEventListener("blur",n,{signal:s})}},ds=function(U=""){a(this,Wd)===Zl.HIGHLIGHT?this.highlightSelection(U):a(this,vW)&&h(this,K,FN).call(this)},aN=function(){document.addEventListener("selectionchange",h(this,K,cN).bind(this),{signal:this._signal})},WN=function(){if(a(this,Dt))return;R(this,Dt,new AbortController);const U=this.combinedSignal(a(this,Dt));window.addEventListener("focus",this.focus.bind(this),{signal:U}),window.addEventListener("blur",this.blur.bind(this),{signal:U})},sN=function(){var U;(U=a(this,Dt))==null||U.abort(),R(this,Dt,null)},MQ=function(){if(a(this,Ct))return;R(this,Ct,new AbortController);const U=this.combinedSignal(a(this,Ct));window.addEventListener("keydown",this.keydown.bind(this),{signal:U}),window.addEventListener("keyup",this.keyup.bind(this),{signal:U})},nN=function(){var U;(U=a(this,Ct))==null||U.abort(),R(this,Ct,null)},JQ=function(){if(a(this,It))return;R(this,It,new AbortController);const U=this.combinedSignal(a(this,It));document.addEventListener("copy",this.copy.bind(this),{signal:U}),document.addEventListener("cut",this.cut.bind(this),{signal:U}),document.addEventListener("paste",this.paste.bind(this),{signal:U})},GQ=function(){var U;(U=a(this,It))==null||U.abort(),R(this,It,null)},VN=function(){const U=this._signal;document.addEventListener("dragover",this.dragOver.bind(this),{signal:U}),document.addEventListener("drop",this.drop.bind(this),{signal:U})},od=function(U){Object.entries(U).some(([l,d])=>a(this,qW)[l]!==d)&&(this._eventBus.dispatch("annotationeditorstateschanged",{source:this,details:Object.assign(a(this,qW),U)}),a(this,Wd)===Zl.HIGHLIGHT&&U.hasSelectedEditor===!1&&h(this,K,WZ).call(this,[[cl.HIGHLIGHT_FREE,!0]]))},WZ=function(U){this._eventBus.dispatch("annotationeditorparamschanged",{source:this,details:U})},QN=async function(){if(!a(this,wt)){R(this,wt,!0);const U=[];for(const l of a(this,bd).values())U.push(l.enable());await Promise.all(U);for(const l of a(this,td).values())l.enable()}},iN=function(){if(this.unselectAll(),a(this,wt)){R(this,wt,!1);for(const U of a(this,bd).values())U.disable();for(const U of a(this,td).values())U.disable()}},SQ=function(U){const l=a(this,bd).get(U.pageIndex);l?l.addOrRebuild(U):(this.addEditor(U),this.addToAnnotationStorage(U))},RN=function(){let U=null;for(U of a(this,Ml));return U},zc=function(){if(a(this,td).size===0)return!0;if(a(this,td).size===1)for(const U of a(this,td).values())return U.isEmpty();return!1},TQ=function(U){for(const l of a(this,Ml))l.unselect();a(this,Ml).clear();for(const l of U)l.isEmpty()||(a(this,Ml).add(l),l.select());h(this,K,od).call(this,{hasSelectedEditor:this.hasSelection})},f(_F,"TRANSLATE_SMALL",1),f(_F,"TRANSLATE_BIG",10),_F);var ed,pZ,HU,dW,GZ,eU,aa,QZ,UU,PZ,N0,SZ,Tt,uZ,UW,_s;const Wa=class fZ{constructor(l){b(this,uZ),b(this,ed,null),b(this,pZ,!1),b(this,HU,null),b(this,dW,null),b(this,GZ,null),b(this,eU,null),b(this,aa,!1),b(this,QZ,null),b(this,UU,null),b(this,PZ,null),b(this,N0,null),b(this,SZ,!1),R(this,UU,l),R(this,SZ,l._uiManager.useNewAltTextFlow),a(fZ,Tt)||R(fZ,Tt,Object.freeze({added:"pdfjs-editor-new-alt-text-added-button","added-label":"pdfjs-editor-new-alt-text-added-button-label",missing:"pdfjs-editor-new-alt-text-missing-button","missing-label":"pdfjs-editor-new-alt-text-missing-button-label",review:"pdfjs-editor-new-alt-text-to-review-button","review-label":"pdfjs-editor-new-alt-text-to-review-button-label"}))}static initialize(l){fZ._l10n??(fZ._l10n=l)}async render(){const l=R(this,HU,document.createElement("button"));l.className="altText",l.tabIndex="0";const d=R(this,dW,document.createElement("span"));l.append(d),a(this,SZ)?(l.classList.add("new"),l.setAttribute("data-l10n-id",a(fZ,Tt).missing),d.setAttribute("data-l10n-id",a(fZ,Tt)["missing-label"])):(l.setAttribute("data-l10n-id","pdfjs-editor-alt-text-button"),d.setAttribute("data-l10n-id","pdfjs-editor-alt-text-button-label"));const Z=a(this,UU)._uiManager._signal;l.addEventListener("contextmenu",LU,{signal:Z}),l.addEventListener("pointerdown",F=>F.stopPropagation(),{signal:Z});const t=F=>{F.preventDefault(),a(this,UU)._uiManager.editAltText(a(this,UU)),a(this,SZ)&&a(this,UU)._reportTelemetry({action:"pdfjs.image.alt_text.image_status_label_clicked",data:{label:a(this,uZ,UW)}})};return l.addEventListener("click",t,{capture:!0,signal:Z}),l.addEventListener("keydown",F=>{F.target===l&&F.key==="Enter"&&(R(this,aa,!0),t(F))},{signal:Z}),await h(this,uZ,_s).call(this),l}finish(){a(this,HU)&&(a(this,HU).focus({focusVisible:a(this,aa)}),R(this,aa,!1))}isEmpty(){return a(this,SZ)?a(this,ed)===null:!a(this,ed)&&!a(this,pZ)}hasData(){return a(this,SZ)?a(this,ed)!==null||!!a(this,PZ):this.isEmpty()}get guessedText(){return a(this,PZ)}async setGuessedText(l){a(this,ed)===null&&(R(this,PZ,l),R(this,N0,await fZ._l10n.get("pdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer",{generatedAltText:l})),h(this,uZ,_s).call(this))}toggleAltTextBadge(l=!1){var d;if(!a(this,SZ)||a(this,ed)){(d=a(this,QZ))==null||d.remove(),R(this,QZ,null);return}if(!a(this,QZ)){const Z=R(this,QZ,document.createElement("div"));Z.className="noAltTextBadge",a(this,UU).div.append(Z)}a(this,QZ).classList.toggle("hidden",!l)}serialize(l){let d=a(this,ed);return!l&&a(this,PZ)===d&&(d=a(this,N0)),{altText:d,decorative:a(this,pZ),guessedText:a(this,PZ),textWithDisclaimer:a(this,N0)}}get data(){return{altText:a(this,ed),decorative:a(this,pZ)}}set data({altText:l,decorative:d,guessedText:Z,textWithDisclaimer:t,cancel:F=!1}){Z&&(R(this,PZ,Z),R(this,N0,t)),!(a(this,ed)===l&&a(this,pZ)===d)&&(F||(R(this,ed,l),R(this,pZ,d)),h(this,uZ,_s).call(this))}toggle(l=!1){a(this,HU)&&(!l&&a(this,eU)&&(clearTimeout(a(this,eU)),R(this,eU,null)),a(this,HU).disabled=!l)}shown(){a(this,UU)._reportTelemetry({action:"pdfjs.image.alt_text.image_status_label_displayed",data:{label:a(this,uZ,UW)}})}destroy(){var l,d;(l=a(this,HU))==null||l.remove(),R(this,HU,null),R(this,dW,null),R(this,GZ,null),(d=a(this,QZ))==null||d.remove(),R(this,QZ,null)}};ed=new WeakMap,pZ=new WeakMap,HU=new WeakMap,dW=new WeakMap,GZ=new WeakMap,eU=new WeakMap,aa=new WeakMap,QZ=new WeakMap,UU=new WeakMap,PZ=new WeakMap,N0=new WeakMap,SZ=new WeakMap,Tt=new WeakMap,uZ=new WeakSet,UW=function(){return a(this,ed)&&"added"||a(this,ed)===null&&this.guessedText&&"review"||"missing"},_s=async function(){var U,l,d;const Z=a(this,HU);if(!Z)return;if(a(this,SZ)){if(Z.classList.toggle("done",!!a(this,ed)),Z.setAttribute("data-l10n-id",a(Wa,Tt)[a(this,uZ,UW)]),(U=a(this,dW))==null||U.setAttribute("data-l10n-id",a(Wa,Tt)[`${a(this,uZ,UW)}-label`]),!a(this,ed)){(l=a(this,GZ))==null||l.remove();return}}else{if(!a(this,ed)&&!a(this,pZ)){Z.classList.remove("done"),(d=a(this,GZ))==null||d.remove();return}Z.classList.add("done"),Z.setAttribute("data-l10n-id","pdfjs-editor-alt-text-edit-button")}let t=a(this,GZ);if(!t){R(this,GZ,t=document.createElement("span")),t.className="tooltip",t.setAttribute("role","tooltip"),t.id=`alt-text-tooltip-${a(this,UU).id}`;const c=100,W=a(this,UU)._uiManager._signal;W.addEventListener("abort",()=>{clearTimeout(a(this,eU)),R(this,eU,null)},{once:!0}),Z.addEventListener("mouseenter",()=>{R(this,eU,setTimeout(()=>{R(this,eU,null),a(this,GZ).classList.add("show"),a(this,UU)._reportTelemetry({action:"alt_text_tooltip"})},c))},{signal:W}),Z.addEventListener("mouseleave",()=>{var s;a(this,eU)&&(clearTimeout(a(this,eU)),R(this,eU,null)),(s=a(this,GZ))==null||s.classList.remove("show")},{signal:W})}a(this,pZ)?t.setAttribute("data-l10n-id","pdfjs-editor-alt-text-decorative-tooltip"):(t.removeAttribute("data-l10n-id"),t.textContent=a(this,ed)),t.parentNode||Z.append(t);const F=a(this,UU).getImageForAltText();F==null||F.setAttribute("aria-describedby",t.id)},b(Wa,Tt,null),f(Wa,"_l10n",null);let NN=Wa;var Us,qF,Zs,ts,Fs,cs,as,Lc,xZ,$F,xt,l0,hN,eN,XQ,pQ;let Ue=(pQ=class{constructor({container:U,isPinchingDisabled:l=null,isPinchingStopped:d=null,onPinchStart:Z=null,onPinching:t=null,onPinchEnd:F=null,signal:c}){b(this,l0),b(this,Us),b(this,qF,!1),b(this,Zs,null),b(this,ts),b(this,Fs),b(this,cs),b(this,as),b(this,Lc),b(this,xZ,null),b(this,$F),b(this,xt,null),R(this,Us,U),R(this,Zs,d),R(this,ts,l),R(this,Fs,Z),R(this,cs,t),R(this,as,F),R(this,$F,new AbortController),R(this,Lc,AbortSignal.any([c,a(this,$F).signal])),U.addEventListener("touchstart",h(this,l0,hN).bind(this),{passive:!1,signal:a(this,Lc)})}get MIN_TOUCH_DISTANCE_TO_PINCH(){return tl(this,"MIN_TOUCH_DISTANCE_TO_PINCH",35/(window.devicePixelRatio||1))}destroy(){var U;(U=a(this,$F))==null||U.abort(),R(this,$F,null)}},Us=new WeakMap,qF=new WeakMap,Zs=new WeakMap,ts=new WeakMap,Fs=new WeakMap,cs=new WeakMap,as=new WeakMap,Lc=new WeakMap,xZ=new WeakMap,$F=new WeakMap,xt=new WeakMap,l0=new WeakSet,hN=function(U){var l,d,Z;if((l=a(this,ts))!=null&&l.call(this)||U.touches.length<2)return;if(!a(this,xt)){R(this,xt,new AbortController);const c=AbortSignal.any([a(this,Lc),a(this,xt).signal]),W=a(this,Us),s={signal:c,passive:!1};W.addEventListener("touchmove",h(this,l0,eN).bind(this),s),W.addEventListener("touchend",h(this,l0,XQ).bind(this),s),W.addEventListener("touchcancel",h(this,l0,XQ).bind(this),s),(d=a(this,Fs))==null||d.call(this)}if(tU(U),U.touches.length!==2||(Z=a(this,Zs))!=null&&Z.call(this)){R(this,xZ,null);return}let[t,F]=U.touches;t.identifier>F.identifier&&([t,F]=[F,t]),R(this,xZ,{touch0X:t.screenX,touch0Y:t.screenY,touch1X:F.screenX,touch1Y:F.screenY})},eN=function(U){var l;if(!a(this,xZ)||U.touches.length!==2)return;let[d,Z]=U.touches;d.identifier>Z.identifier&&([d,Z]=[Z,d]);const{screenX:t,screenY:F}=d,{screenX:c,screenY:W}=Z,s=a(this,xZ),{touch0X:n,touch0Y:V,touch1X:Q,touch1Y:i}=s,N=Q-n,e=i-V,m=c-t,M=W-F,J=Math.hypot(m,M)||1,S=Math.hypot(N,e)||1;if(!a(this,qF)&&Math.abs(S-J)<=pQ.MIN_TOUCH_DISTANCE_TO_PINCH)return;if(s.touch0X=t,s.touch0Y=F,s.touch1X=c,s.touch1Y=W,U.preventDefault(),!a(this,qF)){R(this,qF,!0);return}const G=[(t+c)/2,(F+W)/2];(l=a(this,cs))==null||l.call(this,G,S,J)},XQ=function(U){var l;a(this,xt).abort(),R(this,xt,null),(l=a(this,as))==null||l.call(this),a(this,xZ)&&(U.preventDefault(),R(this,xZ,null),R(this,qF,!1))},pQ);var h0,fU,ol,sa,UF,qs,e0,Xd,b0,Ft,oF,uV,H0,Sd,$s,m0,Xt,iZ,na,Va,sU,pF,ln,bi,il,mi,YV,Mi,Ws,Ze,bN,uQ,ss,Ji,te,Fe,ce,Gi,ae,Si,We,se,ne,Ti,ZW;const xl=class sd{constructor(l){b(this,il),b(this,h0,null),b(this,fU,null),b(this,ol,null),b(this,sa,!1),b(this,UF,null),b(this,qs,""),b(this,e0,!1),b(this,Xd,null),b(this,b0,null),b(this,Ft,null),b(this,oF,null),b(this,uV,""),b(this,H0,!1),b(this,Sd,null),b(this,$s,!1),b(this,m0,!1),b(this,Xt,!1),b(this,iZ,null),b(this,na,0),b(this,Va,0),b(this,sU,null),b(this,pF,null),f(this,"_editToolbar",null),f(this,"_initialOptions",Object.create(null)),f(this,"_initialData",null),f(this,"_isVisible",!0),f(this,"_uiManager",null),f(this,"_focusEventsAllowed",!0),b(this,ln,!1),b(this,bi,sd._zIndex++),this.parent=l.parent,this.id=l.id,this.width=this.height=null,this.pageIndex=l.parent.pageIndex,this.name=l.name,this.div=null,this._uiManager=l.uiManager,this.annotationElementId=null,this._willKeepAspectRatio=!1,this._initialOptions.isCentered=l.isCentered,this._structTreeParentId=null;const{rotation:d,rawDims:{pageWidth:Z,pageHeight:t,pageX:F,pageY:c}}=this.parent.viewport;this.rotation=d,this.pageRotation=(360+d-this._uiManager.viewParameters.rotation)%360,this.pageDimensions=[Z,t],this.pageTranslation=[F,c];const[W,s]=this.parentDimensions;this.x=l.x/W,this.y=l.y/s,this.isAttachedToDOM=!1,this.deleted=!1}static get _resizerKeyboardManager(){const l=sd.prototype._resizeWithKeyboard,d=LW.TRANSLATE_SMALL,Z=LW.TRANSLATE_BIG;return tl(this,"_resizerKeyboardManager",new CW([[["ArrowLeft","mac+ArrowLeft"],l,{args:[-d,0]}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],l,{args:[-Z,0]}],[["ArrowRight","mac+ArrowRight"],l,{args:[d,0]}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],l,{args:[Z,0]}],[["ArrowUp","mac+ArrowUp"],l,{args:[0,-d]}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],l,{args:[0,-Z]}],[["ArrowDown","mac+ArrowDown"],l,{args:[0,d]}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],l,{args:[0,Z]}],[["Escape","mac+Escape"],sd.prototype._stopResizingWithKeyboard]]))}get editorType(){return Object.getPrototypeOf(this).constructor._type}static get isDrawer(){return!1}static get _defaultLineColor(){return tl(this,"_defaultLineColor",this._colorManager.getHexCode("CanvasText"))}static deleteAnnotationElement(l){const d=new h2({id:l.parent.getNextId(),parent:l.parent,uiManager:l._uiManager});d.annotationElementId=l.annotationElementId,d.deleted=!0,d._uiManager.addToAnnotationStorage(d)}static initialize(l,d){if(sd._l10n??(sd._l10n=l),sd._l10nResizer||(sd._l10nResizer=Object.freeze({topLeft:"pdfjs-editor-resizer-top-left",topMiddle:"pdfjs-editor-resizer-top-middle",topRight:"pdfjs-editor-resizer-top-right",middleRight:"pdfjs-editor-resizer-middle-right",bottomRight:"pdfjs-editor-resizer-bottom-right",bottomMiddle:"pdfjs-editor-resizer-bottom-middle",bottomLeft:"pdfjs-editor-resizer-bottom-left",middleLeft:"pdfjs-editor-resizer-middle-left"})),sd._borderLineWidth!==-1)return;const Z=getComputedStyle(document.documentElement);sd._borderLineWidth=parseFloat(Z.getPropertyValue("--outline-width"))||0}static updateDefaultParams(l,d){}static get defaultPropertiesToUpdate(){return[]}static isHandlingMimeForPasting(l){return!1}static paste(l,d){Gl("Not implemented")}get propertiesToUpdate(){return[]}get _isDraggable(){return a(this,ln)}set _isDraggable(l){var d;R(this,ln,l),(d=this.div)==null||d.classList.toggle("draggable",l)}get isEnterHandled(){return!0}center(){const[l,d]=this.pageDimensions;switch(this.parentRotation){case 90:this.x-=this.height*d/(l*2),this.y+=this.width*l/(d*2);break;case 180:this.x+=this.width/2,this.y+=this.height/2;break;case 270:this.x+=this.height*d/(l*2),this.y-=this.width*l/(d*2);break;default:this.x-=this.width/2,this.y-=this.height/2;break}this.fixAndSetPosition()}addCommands(l){this._uiManager.addCommands(l)}get currentLayer(){return this._uiManager.currentLayer}setInBackground(){this.div.style.zIndex=0}setInForeground(){this.div.style.zIndex=a(this,bi)}setParent(l){l!==null?(this.pageIndex=l.pageIndex,this.pageDimensions=l.pageDimensions):h(this,il,ZW).call(this),this.parent=l}focusin(l){this._focusEventsAllowed&&(a(this,H0)?R(this,H0,!1):this.parent.setSelected(this))}focusout(l){var d;if(!this._focusEventsAllowed||!this.isAttachedToDOM)return;const Z=l.relatedTarget;Z!=null&&Z.closest(`#${this.id}`)||(l.preventDefault(),(d=this.parent)!=null&&d.isMultipleSelection||this.commitOrRemove())}commitOrRemove(){this.isEmpty()?this.remove():this.commit()}commit(){this.addToAnnotationStorage()}addToAnnotationStorage(){this._uiManager.addToAnnotationStorage(this)}setAt(l,d,Z,t){const[F,c]=this.parentDimensions;[Z,t]=this.screenToPageTranslation(Z,t),this.x=(l+Z)/F,this.y=(d+t)/c,this.fixAndSetPosition()}translate(l,d){h(this,il,mi).call(this,this.parentDimensions,l,d)}translateInPage(l,d){a(this,Sd)||R(this,Sd,[this.x,this.y,this.width,this.height]),h(this,il,mi).call(this,this.pageDimensions,l,d),this.div.scrollIntoView({block:"nearest"})}drag(l,d){a(this,Sd)||R(this,Sd,[this.x,this.y,this.width,this.height]);const{div:Z,parentDimensions:[t,F]}=this;if(this.x+=l/t,this.y+=d/F,this.parent&&(this.x<0||this.x>1||this.y<0||this.y>1)){const{x:Q,y:i}=this.div.getBoundingClientRect();this.parent.findNewParent(this,Q,i)&&(this.x-=Math.floor(this.x),this.y-=Math.floor(this.y))}let{x:c,y:W}=this;const[s,n]=this.getBaseTranslation();c+=s,W+=n;const{style:V}=Z;V.left=`${(100*c).toFixed(2)}%`,V.top=`${(100*W).toFixed(2)}%`,this._onTranslating(c,W),Z.scrollIntoView({block:"nearest"})}_onTranslating(l,d){}_onTranslated(l,d){}get _hasBeenMoved(){return!!a(this,Sd)&&(a(this,Sd)[0]!==this.x||a(this,Sd)[1]!==this.y)}get _hasBeenResized(){return!!a(this,Sd)&&(a(this,Sd)[2]!==this.width||a(this,Sd)[3]!==this.height)}getBaseTranslation(){const[l,d]=this.parentDimensions,{_borderLineWidth:Z}=sd,t=Z/l,F=Z/d;switch(this.rotation){case 90:return[-t,F];case 180:return[t,F];case 270:return[t,-F];default:return[-t,-F]}}get _mustFixPosition(){return!0}fixAndSetPosition(l=this.rotation){const{div:{style:d},pageDimensions:[Z,t]}=this;let{x:F,y:c,width:W,height:s}=this;if(W*=Z,s*=t,F*=Z,c*=t,this._mustFixPosition)switch(l){case 0:F=Math.max(0,Math.min(Z-W,F)),c=Math.max(0,Math.min(t-s,c));break;case 90:F=Math.max(0,Math.min(Z-s,F)),c=Math.min(t,Math.max(W,c));break;case 180:F=Math.min(Z,Math.max(W,F)),c=Math.min(t,Math.max(s,c));break;case 270:F=Math.min(Z,Math.max(s,F)),c=Math.max(0,Math.min(t-W,c));break}this.x=F/=Z,this.y=c/=t;const[n,V]=this.getBaseTranslation();F+=n,c+=V,d.left=`${(100*F).toFixed(2)}%`,d.top=`${(100*c).toFixed(2)}%`,this.moveInDOM()}screenToPageTranslation(l,d){var Z;return h(Z=sd,YV,Mi).call(Z,l,d,this.parentRotation)}pageTranslationToScreen(l,d){var Z;return h(Z=sd,YV,Mi).call(Z,l,d,360-this.parentRotation)}get parentScale(){return this._uiManager.viewParameters.realScale}get parentRotation(){return(this._uiManager.viewParameters.rotation+this.pageRotation)%360}get parentDimensions(){const{parentScale:l,pageDimensions:[d,Z]}=this;return[d*l,Z*l]}setDims(l,d){const[Z,t]=this.parentDimensions,{style:F}=this.div;F.width=`${(100*l/Z).toFixed(2)}%`,a(this,e0)||(F.height=`${(100*d/t).toFixed(2)}%`)}fixDims(){const{style:l}=this.div,{height:d,width:Z}=l,t=Z.endsWith("%"),F=!a(this,e0)&&d.endsWith("%");if(t&&F)return;const[c,W]=this.parentDimensions;t||(l.width=`${(100*parseFloat(Z)/c).toFixed(2)}%`),!a(this,e0)&&!F&&(l.height=`${(100*parseFloat(d)/W).toFixed(2)}%`)}getInitialTranslation(){return[0,0]}_onResized(){}static _round(l){return Math.round(l*1e4)/1e4}_onResizing(){}altTextFinish(){var l;(l=a(this,ol))==null||l.finish()}async addEditToolbar(){return this._editToolbar||a(this,m0)?this._editToolbar:(this._editToolbar=new n2(this),this.div.append(this._editToolbar.render()),a(this,ol)&&await this._editToolbar.addAltText(a(this,ol)),this._editToolbar)}removeEditToolbar(){var l;this._editToolbar&&(this._editToolbar.remove(),this._editToolbar=null,(l=a(this,ol))==null||l.destroy())}addContainer(l){var d;const Z=(d=this._editToolbar)==null?void 0:d.div;Z?Z.before(l):this.div.append(l)}getClientDimensions(){return this.div.getBoundingClientRect()}async addAltTextButton(){a(this,ol)||(NN.initialize(sd._l10n),R(this,ol,new NN(this)),a(this,h0)&&(a(this,ol).data=a(this,h0),R(this,h0,null)),await this.addEditToolbar())}get altTextData(){var l;return(l=a(this,ol))==null?void 0:l.data}set altTextData(l){a(this,ol)&&(a(this,ol).data=l)}get guessedAltText(){var l;return(l=a(this,ol))==null?void 0:l.guessedText}async setGuessedAltText(l){var d;await((d=a(this,ol))==null?void 0:d.setGuessedText(l))}serializeAltText(l){var d;return(d=a(this,ol))==null?void 0:d.serialize(l)}hasAltText(){return!!a(this,ol)&&!a(this,ol).isEmpty()}hasAltTextData(){var l;return((l=a(this,ol))==null?void 0:l.hasData())??!1}render(){var l;this.div=document.createElement("div"),this.div.setAttribute("data-editor-rotation",(360-this.rotation)%360),this.div.className=this.name,this.div.setAttribute("id",this.id),this.div.tabIndex=a(this,sa)?-1:0,this._isVisible||this.div.classList.add("hidden"),this.setInForeground(),h(this,il,Si).call(this);const[d,Z]=this.parentDimensions;this.parentRotation%180!==0&&(this.div.style.maxWidth=`${(100*Z/d).toFixed(2)}%`,this.div.style.maxHeight=`${(100*d/Z).toFixed(2)}%`);const[t,F]=this.getInitialTranslation();return this.translate(t,F),XV(this,this.div,["pointerdown"]),this.isResizable&&this._uiManager._supportsPinchToZoom&&(a(this,pF)||R(this,pF,new Ue({container:this.div,isPinchingDisabled:()=>!this.isSelected,onPinchStart:h(this,il,te).bind(this),onPinching:h(this,il,Fe).bind(this),onPinchEnd:h(this,il,ce).bind(this),signal:this._uiManager._signal}))),(l=this._uiManager._editorUndoBar)==null||l.hide(),this.div}pointerdown(l){const{isMac:d}=Id.platform;if(l.button!==0||l.ctrlKey&&d){l.preventDefault();return}if(R(this,H0,!0),this._isDraggable){h(this,il,ae).call(this,l);return}h(this,il,Gi).call(this,l)}get isSelected(){return this._uiManager.isSelected(this)}_onStartDragging(){}_onStopDragging(){}moveInDOM(){a(this,iZ)&&clearTimeout(a(this,iZ)),R(this,iZ,setTimeout(()=>{var l;R(this,iZ,null),(l=this.parent)==null||l.moveEditorInDOM(this)},0))}_setParentAndPosition(l,d,Z){l.changeParent(this),this.x=d,this.y=Z,this.fixAndSetPosition(),this._onTranslated()}getRect(l,d,Z=this.rotation){const t=this.parentScale,[F,c]=this.pageDimensions,[W,s]=this.pageTranslation,n=l/t,V=d/t,Q=this.x*F,i=this.y*c,N=this.width*F,e=this.height*c;switch(Z){case 0:return[Q+n+W,c-i-V-e+s,Q+n+N+W,c-i-V+s];case 90:return[Q+V+W,c-i+n+s,Q+V+e+W,c-i+n+N+s];case 180:return[Q-n-N+W,c-i+V+s,Q-n+W,c-i+V+e+s];case 270:return[Q-V-e+W,c-i-n-N+s,Q-V+W,c-i-n+s];default:throw new Error("Invalid rotation")}}getRectInCurrentCoords(l,d){const[Z,t,F,c]=l,W=F-Z,s=c-t;switch(this.rotation){case 0:return[Z,d-c,W,s];case 90:return[Z,d-t,s,W];case 180:return[F,d-t,W,s];case 270:return[F,d-c,s,W];default:throw new Error("Invalid rotation")}}onceAdded(l){}isEmpty(){return!1}enableEditMode(){R(this,m0,!0)}disableEditMode(){R(this,m0,!1)}isInEditMode(){return a(this,m0)}shouldGetKeyboardEvents(){return a(this,Xt)}needsToBeRebuilt(){return this.div&&!this.isAttachedToDOM}get isOnScreen(){const{top:l,left:d,bottom:Z,right:t}=this.getClientDimensions(),{innerHeight:F,innerWidth:c}=window;return d0&&l0}rebuild(){h(this,il,Si).call(this)}rotate(l){}resize(){}serializeDeleted(){var l;return{id:this.annotationElementId,deleted:!0,pageIndex:this.pageIndex,popupRef:((l=this._initialData)==null?void 0:l.popupRef)||""}}serialize(l=!1,d=null){Gl("An editor must be serializable")}static async deserialize(l,d,Z){const t=new this.prototype.constructor({parent:d,id:d.getNextId(),uiManager:Z});t.rotation=l.rotation,R(t,h0,l.accessibilityData);const[F,c]=t.pageDimensions,[W,s,n,V]=t.getRectInCurrentCoords(l.rect,c);return t.x=W/F,t.y=s/c,t.width=n/F,t.height=V/c,t}get hasBeenModified(){return!!this.annotationElementId&&(this.deleted||this.serialize()!==null)}remove(){var l,d;if((l=a(this,oF))==null||l.abort(),R(this,oF,null),this.isEmpty()||this.commit(),this.parent?this.parent.remove(this):this._uiManager.removeEditor(this),a(this,iZ)&&(clearTimeout(a(this,iZ)),R(this,iZ,null)),h(this,il,ZW).call(this),this.removeEditToolbar(),a(this,sU)){for(const Z of a(this,sU).values())clearTimeout(Z);R(this,sU,null)}this.parent=null,(d=a(this,pF))==null||d.destroy(),R(this,pF,null)}get isResizable(){return!1}makeResizable(){this.isResizable&&(h(this,il,Ze).call(this),a(this,Xd).classList.remove("hidden"),XV(this,this.div,["keydown"]))}get toolbarPosition(){return null}keydown(l){if(!this.isResizable||l.target!==this.div||l.key!=="Enter")return;this._uiManager.setSelected(this),R(this,Ft,{savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height});const d=a(this,Xd).children;if(!a(this,fU)){R(this,fU,Array.from(d));const c=h(this,il,We).bind(this),W=h(this,il,se).bind(this),s=this._uiManager._signal;for(const n of a(this,fU)){const V=n.getAttribute("data-resizer-name");n.setAttribute("role","spinbutton"),n.addEventListener("keydown",c,{signal:s}),n.addEventListener("blur",W,{signal:s}),n.addEventListener("focus",h(this,il,ne).bind(this,V),{signal:s}),n.setAttribute("data-l10n-id",sd._l10nResizer[V])}}const Z=a(this,fU)[0];let t=0;for(const c of d){if(c===Z)break;t++}const F=(360-this.rotation+this.parentRotation)%360/90*(a(this,fU).length/4);if(F!==t){if(Ft)for(let W=0;W{var t,F;(t=this.div)!=null&&t.classList.contains("selectedEditor")&&((F=this._editToolbar)==null||F.show())});return}(d=this._editToolbar)==null||d.show(),(Z=a(this,ol))==null||Z.toggleAltTextBadge(!1)}unselect(){var l,d,Z,t,F;(l=a(this,Xd))==null||l.classList.add("hidden"),(d=this.div)==null||d.classList.remove("selectedEditor"),(Z=this.div)!=null&&Z.contains(document.activeElement)&&this._uiManager.currentLayer.div.focus({preventScroll:!0}),(t=this._editToolbar)==null||t.hide(),(F=a(this,ol))==null||F.toggleAltTextBadge(!0)}updateParams(l,d){}disableEditing(){}enableEditing(){}enterInEditMode(){}getImageForAltText(){return null}get contentDiv(){return this.div}get isEditing(){return a(this,$s)}set isEditing(l){R(this,$s,l),this.parent&&(l?(this.parent.setSelected(this),this.parent.setActiveEditor(this)):this.parent.setActiveEditor(null))}setAspectRatio(l,d){R(this,e0,!0);const Z=l/d,{style:t}=this.div;t.aspectRatio=Z,t.height="auto"}static get MIN_SIZE(){return 16}static canCreateNewEmptyEditor(){return!0}get telemetryInitialData(){return{action:"added"}}get telemetryFinalData(){return null}_reportTelemetry(l,d=!1){if(d){a(this,sU)||R(this,sU,new Map);const{action:Z}=l;let t=a(this,sU).get(Z);t&&clearTimeout(t),t=setTimeout(()=>{this._reportTelemetry(l),a(this,sU).delete(Z),a(this,sU).size===0&&R(this,sU,null)},sd._telemetryTimeout),a(this,sU).set(Z,t);return}l.type||(l.type=this.editorType),this._uiManager._eventBus.dispatch("reporttelemetry",{source:this,details:{type:"editing",data:l}})}show(l=this._isVisible){this.div.classList.toggle("hidden",!l),this._isVisible=l}enable(){this.div&&(this.div.tabIndex=0),R(this,sa,!1)}disable(){this.div&&(this.div.tabIndex=-1),R(this,sa,!0)}renderAnnotationElement(l){let d=l.container.querySelector(".annotationContent");if(!d)d=document.createElement("div"),d.classList.add("annotationContent",this.editorType),l.container.prepend(d);else if(d.nodeName==="CANVAS"){const Z=d;d=document.createElement("div"),d.classList.add("annotationContent",this.editorType),Z.before(d)}return d}resetAnnotationElement(l){const{firstChild:d}=l.container;(d==null?void 0:d.nodeName)==="DIV"&&d.classList.contains("annotationContent")&&d.remove()}};h0=new WeakMap,fU=new WeakMap,ol=new WeakMap,sa=new WeakMap,UF=new WeakMap,qs=new WeakMap,e0=new WeakMap,Xd=new WeakMap,b0=new WeakMap,Ft=new WeakMap,oF=new WeakMap,uV=new WeakMap,H0=new WeakMap,Sd=new WeakMap,$s=new WeakMap,m0=new WeakMap,Xt=new WeakMap,iZ=new WeakMap,na=new WeakMap,Va=new WeakMap,sU=new WeakMap,pF=new WeakMap,ln=new WeakMap,bi=new WeakMap,il=new WeakSet,mi=function([U,l],d,Z){[d,Z]=this.screenToPageTranslation(d,Z),this.x+=d/U,this.y+=Z/l,this._onTranslating(this.x,this.y),this.fixAndSetPosition()},YV=new WeakSet,Mi=function(U,l,d){switch(d){case 90:return[l,-U];case 180:return[-U,-l];case 270:return[-l,U];default:return[U,l]}},Ws=function(U){switch(U){case 90:{const[l,d]=this.pageDimensions;return[0,-l/d,d/l,0]}case 180:return[-1,0,0,-1];case 270:{const[l,d]=this.pageDimensions;return[0,l/d,-d/l,0]}default:return[1,0,0,1]}},Ze=function(){if(a(this,Xd))return;R(this,Xd,document.createElement("div")),a(this,Xd).classList.add("resizers");const U=this._willKeepAspectRatio?["topLeft","topRight","bottomRight","bottomLeft"]:["topLeft","topMiddle","topRight","middleRight","bottomRight","bottomMiddle","bottomLeft","middleLeft"],l=this._uiManager._signal;for(const d of U){const Z=document.createElement("div");a(this,Xd).append(Z),Z.classList.add("resizer",d),Z.setAttribute("data-resizer-name",d),Z.addEventListener("pointerdown",h(this,il,bN).bind(this,d),{signal:l}),Z.addEventListener("contextmenu",LU,{signal:l}),Z.tabIndex=-1}this.div.prepend(a(this,Xd))},bN=function(U,l){var d;l.preventDefault();const{isMac:Z}=Id.platform;if(l.button!==0||l.ctrlKey&&Z)return;(d=a(this,ol))==null||d.toggle(!1);const t=this._isDraggable;this._isDraggable=!1,R(this,b0,[l.screenX,l.screenY]);const F=new AbortController,c=this._uiManager.combinedSignal(F);this.parent.togglePointerEvents(!1),window.addEventListener("pointermove",h(this,il,Ji).bind(this,U),{passive:!0,capture:!0,signal:c}),window.addEventListener("touchmove",tU,{passive:!1,signal:c}),window.addEventListener("contextmenu",LU,{signal:c}),R(this,Ft,{savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height});const W=this.parent.div.style.cursor,s=this.div.style.cursor;this.div.style.cursor=this.parent.div.style.cursor=window.getComputedStyle(l.target).cursor;const n=()=>{var V;F.abort(),this.parent.togglePointerEvents(!0),(V=a(this,ol))==null||V.toggle(!0),this._isDraggable=t,this.parent.div.style.cursor=W,this.div.style.cursor=s,h(this,il,ss).call(this)};window.addEventListener("pointerup",n,{signal:c}),window.addEventListener("blur",n,{signal:c})},uQ=function(U,l,d,Z){this.width=d,this.height=Z,this.x=U,this.y=l;const[t,F]=this.parentDimensions;this.setDims(t*d,F*Z),this.fixAndSetPosition(),this._onResized()},ss=function(){if(!a(this,Ft))return;const{savedX:U,savedY:l,savedWidth:d,savedHeight:Z}=a(this,Ft);R(this,Ft,null);const t=this.x,F=this.y,c=this.width,W=this.height;t===U&&F===l&&c===d&&W===Z||this.addCommands({cmd:h(this,il,uQ).bind(this,t,F,c,W),undo:h(this,il,uQ).bind(this,U,l,d,Z),mustExec:!0})},Ji=function(U,l){const[d,Z]=this.parentDimensions,t=this.x,F=this.y,c=this.width,W=this.height,s=xl.MIN_SIZE/d,n=xl.MIN_SIZE/Z,V=h(this,il,Ws).call(this,this.rotation),Q=(I,L)=>[V[0]*I+V[2]*L,V[1]*I+V[3]*L],i=h(this,il,Ws).call(this,360-this.rotation),N=(I,L)=>[i[0]*I+i[2]*L,i[1]*I+i[3]*L];let e,m,M=!1,J=!1;switch(U){case"topLeft":M=!0,e=(I,L)=>[0,0],m=(I,L)=>[I,L];break;case"topMiddle":e=(I,L)=>[I/2,0],m=(I,L)=>[I/2,L];break;case"topRight":M=!0,e=(I,L)=>[I,0],m=(I,L)=>[0,L];break;case"middleRight":J=!0,e=(I,L)=>[I,L/2],m=(I,L)=>[0,L/2];break;case"bottomRight":M=!0,e=(I,L)=>[I,L],m=(I,L)=>[0,0];break;case"bottomMiddle":e=(I,L)=>[I/2,L],m=(I,L)=>[I/2,0];break;case"bottomLeft":M=!0,e=(I,L)=>[0,L],m=(I,L)=>[I,0];break;case"middleLeft":J=!0,e=(I,L)=>[0,L/2],m=(I,L)=>[I,L/2];break}const S=e(c,W),G=m(c,W);let T=Q(...G);const p=xl._round(t+T[0]),u=xl._round(F+T[1]);let Y=1,o=1,X,B;if(l.fromKeyboard)({deltaX:X,deltaY:B}=l);else{const{screenX:I,screenY:L}=l,[g,A]=a(this,b0);[X,B]=this.screenToPageTranslation(I-g,L-A),a(this,b0)[0]=I,a(this,b0)[1]=L}if([X,B]=N(X/d,B/Z),M){const I=Math.hypot(c,W);Y=o=Math.max(Math.min(Math.hypot(G[0]-S[0]-X,G[1]-S[1]-B)/I,1/c,1/W),s/c,n/W)}else J?Y=Math.max(s,Math.min(1,Math.abs(G[0]-S[0]-X)))/c:o=Math.max(n,Math.min(1,Math.abs(G[1]-S[1]-B)))/W;const y=xl._round(c*Y),E=xl._round(W*o);T=Q(...m(y,E));const D=p-T[0],w=u-T[1];a(this,Sd)||R(this,Sd,[this.x,this.y,this.width,this.height]),this.width=y,this.height=E,this.x=D,this.y=w,this.setDims(d*y,Z*E),this.fixAndSetPosition(),this._onResizing()},te=function(){var U;R(this,Ft,{savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height}),(U=a(this,ol))==null||U.toggle(!1),this.parent.togglePointerEvents(!1)},Fe=function(U,l,d){let Z=.7*(d/l)+1-.7;if(Z===1)return;const t=h(this,il,Ws).call(this,this.rotation),F=(T,p)=>[t[0]*T+t[2]*p,t[1]*T+t[3]*p],[c,W]=this.parentDimensions,s=this.x,n=this.y,V=this.width,Q=this.height,i=xl.MIN_SIZE/c,N=xl.MIN_SIZE/W;Z=Math.max(Math.min(Z,1/V,1/Q),i/V,N/Q);const e=xl._round(V*Z),m=xl._round(Q*Z);if(e===V&&m===Q)return;a(this,Sd)||R(this,Sd,[s,n,V,Q]);const M=F(V/2,Q/2),J=xl._round(s+M[0]),S=xl._round(n+M[1]),G=F(e/2,m/2);this.x=J-G[0],this.y=S-G[1],this.width=e,this.height=m,this.setDims(c*e,W*m),this.fixAndSetPosition(),this._onResizing()},ce=function(){var U;(U=a(this,ol))==null||U.toggle(!0),this.parent.togglePointerEvents(!0),h(this,il,ss).call(this)},Gi=function(U){const{isMac:l}=Id.platform;U.ctrlKey&&!l||U.shiftKey||U.metaKey&&l?this.parent.toggleSelected(this):this.parent.setSelected(this)},ae=function(U){const{isSelected:l}=this;this._uiManager.setUpDragSession();let d=!1;const Z=new AbortController,t=this._uiManager.combinedSignal(Z),F={capture:!0,passive:!1,signal:t},c=s=>{Z.abort(),R(this,UF,null),R(this,H0,!1),this._uiManager.endDragSession()||h(this,il,Gi).call(this,s),d&&this._onStopDragging()};l&&(R(this,na,U.clientX),R(this,Va,U.clientY),R(this,UF,U.pointerId),R(this,qs,U.pointerType),window.addEventListener("pointermove",s=>{d||(d=!0,this._onStartDragging());const{clientX:n,clientY:V,pointerId:Q}=s;if(Q!==a(this,UF)){tU(s);return}const[i,N]=this.screenToPageTranslation(n-a(this,na),V-a(this,Va));R(this,na,n),R(this,Va,V),this._uiManager.dragSelectedEditors(i,N)},F),window.addEventListener("touchmove",tU,F),window.addEventListener("pointerdown",s=>{s.pointerType===a(this,qs)&&(a(this,pF)||s.isPrimary)&&c(s),tU(s)},F));const W=s=>{if(!a(this,UF)||a(this,UF)===s.pointerId){c(s);return}tU(s)};window.addEventListener("pointerup",W,{signal:t}),window.addEventListener("blur",W,{signal:t})},Si=function(){if(a(this,oF)||!this.div)return;R(this,oF,new AbortController);const U=this._uiManager.combinedSignal(a(this,oF));this.div.addEventListener("focusin",this.focusin.bind(this),{signal:U}),this.div.addEventListener("focusout",this.focusout.bind(this),{signal:U})},We=function(U){xl._resizerKeyboardManager.exec(this,U)},se=function(U){var l;a(this,Xt)&&((l=U.relatedTarget)==null?void 0:l.parentNode)!==a(this,Xd)&&h(this,il,ZW).call(this)},ne=function(U){R(this,uV,a(this,Xt)?U:"")},Ti=function(U){if(a(this,fU))for(const l of a(this,fU))l.tabIndex=U},ZW=function(){R(this,Xt,!1),h(this,il,Ti).call(this,-1),h(this,il,ss).call(this)},b(xl,YV),f(xl,"_l10n",null),f(xl,"_l10nResizer",null),f(xl,"_borderLineWidth",-1),f(xl,"_colorManager",new N2),f(xl,"_zIndex",1),f(xl,"_telemetryTimeout",1e3);let Kl=xl;class h2 extends Kl{constructor(l){super(l),this.annotationElementId=l.annotationElementId,this.deleted=!0}serialize(){return this.serializeDeleted()}}const mN=3285377520,WU=4294901760,CU=65535;class Ve{constructor(l){this.h1=l?l&4294967295:mN,this.h2=l?l&4294967295:mN}update(l){let d,Z;if(typeof l=="string"){d=new Uint8Array(l.length*2),Z=0;for(let m=0,M=l.length;m>>8,d[Z++]=J&255)}}else if(ArrayBuffer.isView(l))d=l.slice(),Z=d.byteLength;else throw new Error("Invalid data format, must be a string or TypedArray.");const t=Z>>2,F=Z-t*4,c=new Uint32Array(d.buffer,0,t);let W=0,s=0,n=this.h1,V=this.h2;const Q=3432918353,i=461845907,N=Q&CU,e=i&CU;for(let m=0;m>>17,W=W*i&WU|W*e&CU,n^=W,n=n<<13|n>>>19,n=n*5+3864292196):(s=c[m],s=s*Q&WU|s*N&CU,s=s<<15|s>>>17,s=s*i&WU|s*e&CU,V^=s,V=V<<13|V>>>19,V=V*5+3864292196);switch(W=0,F){case 3:W^=d[t*4+2]<<16;case 2:W^=d[t*4+1]<<8;case 1:W^=d[t*4],W=W*Q&WU|W*N&CU,W=W<<15|W>>>17,W=W*i&WU|W*e&CU,t&1?n^=W:V^=W}this.h1=n,this.h2=V}hexdigest(){let l=this.h1,d=this.h2;return l^=d>>>1,l=l*3981806797&WU|l*36045&CU,d=d*4283543511&WU|((d<<16|l>>>16)*2950163797&WU)>>>16,l^=d>>>1,l=l*444984403&WU|l*60499&CU,d=d*3301882366&WU|((d<<16|l>>>16)*3120437893&WU)>>>16,l^=d>>>1,(l>>>0).toString(16).padStart(8,"0")+(d>>>0).toString(16).padStart(8,"0")}}const Xi=Object.freeze({map:null,hash:"",transfer:void 0});var nc,M0,nd,pi,Qe;class rR{constructor(){b(this,pi),b(this,nc,!1),b(this,M0,null),b(this,nd,new Map),this.onSetModified=null,this.onResetModified=null,this.onAnnotationEditor=null}getValue(l,d){const Z=a(this,nd).get(l);return Z===void 0?d:Object.assign(d,Z)}getRawValue(l){return a(this,nd).get(l)}remove(l){if(a(this,nd).delete(l),a(this,nd).size===0&&this.resetModified(),typeof this.onAnnotationEditor=="function"){for(const d of a(this,nd).values())if(d instanceof Kl)return;this.onAnnotationEditor(null)}}setValue(l,d){const Z=a(this,nd).get(l);let t=!1;if(Z!==void 0)for(const[F,c]of Object.entries(d))Z[F]!==c&&(t=!0,Z[F]=c);else t=!0,a(this,nd).set(l,d);t&&h(this,pi,Qe).call(this),d instanceof Kl&&typeof this.onAnnotationEditor=="function"&&this.onAnnotationEditor(d.constructor._type)}has(l){return a(this,nd).has(l)}getAll(){return a(this,nd).size>0?LR(a(this,nd)):null}setAll(l){for(const[d,Z]of Object.entries(l))this.setValue(d,Z)}get size(){return a(this,nd).size}resetModified(){a(this,nc)&&(R(this,nc,!1),typeof this.onResetModified=="function"&&this.onResetModified())}get print(){return new ie(this)}get serializable(){if(a(this,nd).size===0)return Xi;const l=new Map,d=new Ve,Z=[],t=Object.create(null);let F=!1;for(const[c,W]of a(this,nd)){const s=W instanceof Kl?W.serialize(!1,t):W;s&&(l.set(c,s),d.update(`${c}:${JSON.stringify(s)}`),F||(F=!!s.bitmap))}if(F)for(const c of l.values())c.bitmap&&Z.push(c.bitmap);return l.size>0?{map:l,hash:d.hexdigest(),transfer:Z}:Xi}get editorStats(){let l=null;const d=new Map;for(const Z of a(this,nd).values()){if(!(Z instanceof Kl))continue;const t=Z.telemetryFinalData;if(!t)continue;const{type:F}=t;d.has(F)||d.set(F,Object.getPrototypeOf(Z).constructor),l||(l=Object.create(null));const c=l[F]||(l[F]=new Map);for(const[W,s]of Object.entries(t)){if(W==="type")continue;let n=c.get(W);n||(n=new Map,c.set(W,n));const V=n.get(s)??0;n.set(s,V+1)}}for(const[Z,t]of d)l[Z]=t.computeTelemetryFinalData(l[Z]);return l}resetModifiedIds(){R(this,M0,null)}get modifiedIds(){if(a(this,M0))return a(this,M0);const l=[];for(const d of a(this,nd).values())!(d instanceof Kl)||!d.annotationElementId||!d.serialize()||l.push(d.annotationElementId);return R(this,M0,{ids:new Set(l),hash:l.join(",")})}}nc=new WeakMap,M0=new WeakMap,nd=new WeakMap,pi=new WeakSet,Qe=function(){a(this,nc)||(R(this,nc,!0),typeof this.onSetModified=="function"&&this.onSetModified())};var dn;class ie extends rR{constructor(l){super(),b(this,dn);const{map:d,hash:Z,transfer:t}=l.serializable,F=structuredClone(d,t?{transfer:t}:null);R(this,dn,{map:F,hash:Z,transfer:t})}get print(){Gl("Should not call PrintAnnotationStorage.print")}get serializable(){return a(this,dn)}get modifiedIds(){return tl(this,"modifiedIds",{ids:new Set,hash:""})}}dn=new WeakMap;var Qa;class e2{constructor({ownerDocument:l=globalThis.document,styleElement:d=null}){b(this,Qa,new Set),this._document=l,this.nativeFontFaces=new Set,this.styleElement=null,this.loadingRequests=[],this.loadTestFontId=0}addNativeFontFace(l){this.nativeFontFaces.add(l),this._document.fonts.add(l)}removeNativeFontFace(l){this.nativeFontFaces.delete(l),this._document.fonts.delete(l)}insertRule(l){this.styleElement||(this.styleElement=this._document.createElement("style"),this._document.documentElement.getElementsByTagName("head")[0].append(this.styleElement));const d=this.styleElement.sheet;d.insertRule(l,d.cssRules.length)}clear(){for(const l of this.nativeFontFaces)this._document.fonts.delete(l);this.nativeFontFaces.clear(),a(this,Qa).clear(),this.styleElement&&(this.styleElement.remove(),this.styleElement=null)}async loadSystemFont({systemFontInfo:l,_inspectFont:d}){if(!(!l||a(this,Qa).has(l.loadedName))){if(Al(!this.disableFontFace,"loadSystemFont shouldn't be called when `disableFontFace` is set."),this.isFontLoadingAPISupported){const{loadedName:Z,src:t,style:F}=l,c=new FontFace(Z,t,F);this.addNativeFontFace(c);try{await c.load(),a(this,Qa).add(Z),d==null||d(l)}catch{dl(`Cannot load system font: ${l.baseFontName}, installing it could help to improve PDF rendering.`),this.removeNativeFontFace(c)}return}Gl("Not implemented: loadSystemFont without the Font Loading API.")}}async bind(l){if(l.attached||l.missingFile&&!l.systemFontInfo)return;if(l.attached=!0,l.systemFontInfo){await this.loadSystemFont(l);return}if(this.isFontLoadingAPISupported){const Z=l.createNativeFontFace();if(Z){this.addNativeFontFace(Z);try{await Z.loaded}catch(t){throw dl(`Failed to load font '${Z.family}': '${t}'.`),l.disableFontFace=!0,t}}return}const d=l.createFontFaceRule();if(d){if(this.insertRule(d),this.isSyncFontLoadingSupported)return;await new Promise(Z=>{const t=this._queueLoadingCallback(Z);this._prepareFontLoadEvent(l,t)})}}get isFontLoadingAPISupported(){var l;const d=!!((l=this._document)!=null&&l.fonts);return tl(this,"isFontLoadingAPISupported",d)}get isSyncFontLoadingSupported(){let l=!1;return(Bd||typeof navigator<"u"&&typeof(navigator==null?void 0:navigator.userAgent)=="string"&&/Mozilla\/5.0.*?rv:\d+.*? Gecko/.test(navigator.userAgent))&&(l=!0),tl(this,"isSyncFontLoadingSupported",l)}_queueLoadingCallback(l){function d(){for(Al(!t.done,"completeRequest() cannot be called twice."),t.done=!0;Z.length>0&&Z[0].done;){const F=Z.shift();setTimeout(F.callback,0)}}const{loadingRequests:Z}=this,t={done:!1,complete:d,callback:l};return Z.push(t),t}get _loadTestFont(){const l=atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==");return tl(this,"_loadTestFont",l)}_prepareFontLoadEvent(l,d){function Z(G,T){return G.charCodeAt(T)<<24|G.charCodeAt(T+1)<<16|G.charCodeAt(T+2)<<8|G.charCodeAt(T+3)&255}function t(G,T,p,u){const Y=G.substring(0,T),o=G.substring(T+p);return Y+u+o}let F,c;const W=this._document.createElement("canvas");W.width=1,W.height=1;const s=W.getContext("2d");let n=0;function V(G,T){if(++n>30){dl("Load test font never loaded."),T();return}if(s.font="30px "+G,s.fillText(".",0,20),s.getImageData(0,0,1,1).data[3]>0){T();return}setTimeout(V.bind(null,G,T))}const Q=`lt${Date.now()}${this.loadTestFontId++}`;let i=this._loadTestFont;i=t(i,976,Q.length,Q);const N=16,e=1482184792;let m=Z(i,N);for(F=0,c=Q.length-3;F{S.remove(),d.complete()})}}Qa=new WeakMap;class b2{constructor(l,{disableFontFace:d=!1,fontExtraProperties:Z=!1,inspectFont:t=null}){this.compiledGlyphs=Object.create(null);for(const F in l)this[F]=l[F];this.disableFontFace=d===!0,this.fontExtraProperties=Z===!0,this._inspectFont=t}createNativeFontFace(){var l;if(!this.data||this.disableFontFace)return null;let d;if(!this.cssFontInfo)d=new FontFace(this.loadedName,this.data,{});else{const Z={weight:this.cssFontInfo.fontWeight};this.cssFontInfo.italicAngle&&(Z.style=`oblique ${this.cssFontInfo.italicAngle}deg`),d=new FontFace(this.cssFontInfo.fontFamily,this.data,Z)}return(l=this._inspectFont)==null||l.call(this,this),d}createFontFaceRule(){var l;if(!this.data||this.disableFontFace)return null;const d=`url(data:${this.mimetype};base64,${F2(this.data)});`;let Z;if(!this.cssFontInfo)Z=`@font-face {font-family:"${this.loadedName}";src:${d}}`;else{let t=`font-weight: ${this.cssFontInfo.fontWeight};`;this.cssFontInfo.italicAngle&&(t+=`font-style: oblique ${this.cssFontInfo.italicAngle}deg;`),Z=`@font-face {font-family:"${this.cssFontInfo.fontFamily}";${t}src:${d}}`}return(l=this._inspectFont)==null||l.call(this,this,d),Z}getPathGenerator(l,d){if(this.compiledGlyphs[d]!==void 0)return this.compiledGlyphs[d];const Z=this.loadedName+"_path_"+d;let t;try{t=l.get(Z)}catch(c){dl(`getPathGenerator - ignoring character: "${c}".`)}const F=new Path2D(t||"");return this.fontExtraProperties||l.delete(Z),this.compiledGlyphs[d]=F}}const ns={DATA:1,ERROR:2},Pl={CANCEL:1,CANCEL_COMPLETE:2,CLOSE:3,ENQUEUE:4,ERROR:5,PULL:6,PULL_COMPLETE:7,START_COMPLETE:8};function MN(){}function rd(U){if(U instanceof Bt||U instanceof ii||U instanceof zW||U instanceof $R||U instanceof SV||U instanceof QQ)return U;switch(U instanceof Error||typeof U=="object"&&U!==null||Gl('wrapReason: Expected "reason" to be a (possibly cloned) Error.'),U.name){case"AbortException":return new Bt(U.message);case"InvalidPDFException":return new ii(U.message);case"MissingPDFException":return new zW(U.message);case"PasswordException":return new $R(U.message,U.code);case"UnexpectedResponseException":return new SV(U.message,U.status);case"UnknownErrorException":return new QQ(U.message,U.details)}return new QQ(U.message,U.toString())}var ia,ct,Re,JN,GN,Vs;class Ra{constructor(l,d,Z){b(this,ct),b(this,ia,new AbortController),this.sourceName=l,this.targetName=d,this.comObj=Z,this.callbackId=1,this.streamId=1,this.streamSinks=Object.create(null),this.streamControllers=Object.create(null),this.callbackCapabilities=Object.create(null),this.actionHandler=Object.create(null),Z.addEventListener("message",h(this,ct,Re).bind(this),{signal:a(this,ia).signal})}on(l,d){const Z=this.actionHandler;if(Z[l])throw new Error(`There is already an actionName called "${l}"`);Z[l]=d}send(l,d,Z){this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:l,data:d},Z)}sendWithPromise(l,d,Z){const t=this.callbackId++,F=Promise.withResolvers();this.callbackCapabilities[t]=F;try{this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:l,callbackId:t,data:d},Z)}catch(c){F.reject(c)}return F.promise}sendWithStream(l,d,Z,t){const F=this.streamId++,c=this.sourceName,W=this.targetName,s=this.comObj;return new ReadableStream({start:n=>{const V=Promise.withResolvers();return this.streamControllers[F]={controller:n,startCall:V,pullCall:null,cancelCall:null,isClosed:!1},s.postMessage({sourceName:c,targetName:W,action:l,streamId:F,data:d,desiredSize:n.desiredSize},t),V.promise},pull:n=>{const V=Promise.withResolvers();return this.streamControllers[F].pullCall=V,s.postMessage({sourceName:c,targetName:W,stream:Pl.PULL,streamId:F,desiredSize:n.desiredSize}),V.promise},cancel:n=>{Al(n instanceof Error,"cancel must have a valid reason");const V=Promise.withResolvers();return this.streamControllers[F].cancelCall=V,this.streamControllers[F].isClosed=!0,s.postMessage({sourceName:c,targetName:W,stream:Pl.CANCEL,streamId:F,reason:rd(n)}),V.promise}},Z)}destroy(){var l;(l=a(this,ia))==null||l.abort(),R(this,ia,null)}}ia=new WeakMap,ct=new WeakSet,Re=function({data:U}){if(U.targetName!==this.sourceName)return;if(U.stream){h(this,ct,GN).call(this,U);return}if(U.callback){const d=U.callbackId,Z=this.callbackCapabilities[d];if(!Z)throw new Error(`Cannot resolve callback ${d}`);if(delete this.callbackCapabilities[d],U.callback===ns.DATA)Z.resolve(U.data);else if(U.callback===ns.ERROR)Z.reject(rd(U.reason));else throw new Error("Unexpected callback case");return}const l=this.actionHandler[U.action];if(!l)throw new Error(`Unknown action from worker: ${U.action}`);if(U.callbackId){const d=this.sourceName,Z=U.sourceName,t=this.comObj;Promise.try(l,U.data).then(function(F){t.postMessage({sourceName:d,targetName:Z,callback:ns.DATA,callbackId:U.callbackId,data:F})},function(F){t.postMessage({sourceName:d,targetName:Z,callback:ns.ERROR,callbackId:U.callbackId,reason:rd(F)})});return}if(U.streamId){h(this,ct,JN).call(this,U);return}l(U.data)},JN=function(U){const l=U.streamId,d=this.sourceName,Z=U.sourceName,t=this.comObj,F=this,c=this.actionHandler[U.action],W={enqueue(s,n=1,V){if(this.isCancelled)return;const Q=this.desiredSize;this.desiredSize-=n,Q>0&&this.desiredSize<=0&&(this.sinkCapability=Promise.withResolvers(),this.ready=this.sinkCapability.promise),t.postMessage({sourceName:d,targetName:Z,stream:Pl.ENQUEUE,streamId:l,chunk:s},V)},close(){this.isCancelled||(this.isCancelled=!0,t.postMessage({sourceName:d,targetName:Z,stream:Pl.CLOSE,streamId:l}),delete F.streamSinks[l])},error(s){Al(s instanceof Error,"error must have a valid reason"),!this.isCancelled&&(this.isCancelled=!0,t.postMessage({sourceName:d,targetName:Z,stream:Pl.ERROR,streamId:l,reason:rd(s)}))},sinkCapability:Promise.withResolvers(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:U.desiredSize,ready:null};W.sinkCapability.resolve(),W.ready=W.sinkCapability.promise,this.streamSinks[l]=W,Promise.try(c,U.data,W).then(function(){t.postMessage({sourceName:d,targetName:Z,stream:Pl.START_COMPLETE,streamId:l,success:!0})},function(s){t.postMessage({sourceName:d,targetName:Z,stream:Pl.START_COMPLETE,streamId:l,reason:rd(s)})})},GN=function(U){const l=U.streamId,d=this.sourceName,Z=U.sourceName,t=this.comObj,F=this.streamControllers[l],c=this.streamSinks[l];switch(U.stream){case Pl.START_COMPLETE:U.success?F.startCall.resolve():F.startCall.reject(rd(U.reason));break;case Pl.PULL_COMPLETE:U.success?F.pullCall.resolve():F.pullCall.reject(rd(U.reason));break;case Pl.PULL:if(!c){t.postMessage({sourceName:d,targetName:Z,stream:Pl.PULL_COMPLETE,streamId:l,success:!0});break}c.desiredSize<=0&&U.desiredSize>0&&c.sinkCapability.resolve(),c.desiredSize=U.desiredSize,Promise.try(c.onPull||MN).then(function(){t.postMessage({sourceName:d,targetName:Z,stream:Pl.PULL_COMPLETE,streamId:l,success:!0})},function(s){t.postMessage({sourceName:d,targetName:Z,stream:Pl.PULL_COMPLETE,streamId:l,reason:rd(s)})});break;case Pl.ENQUEUE:if(Al(F,"enqueue should have stream controller"),F.isClosed)break;F.controller.enqueue(U.chunk);break;case Pl.CLOSE:if(Al(F,"close should have stream controller"),F.isClosed)break;F.isClosed=!0,F.controller.close(),h(this,ct,Vs).call(this,F,l);break;case Pl.ERROR:Al(F,"error should have stream controller"),F.controller.error(rd(U.reason)),h(this,ct,Vs).call(this,F,l);break;case Pl.CANCEL_COMPLETE:U.success?F.cancelCall.resolve():F.cancelCall.reject(rd(U.reason)),h(this,ct,Vs).call(this,F,l);break;case Pl.CANCEL:if(!c)break;const W=rd(U.reason);Promise.try(c.onCancel||MN,W).then(function(){t.postMessage({sourceName:d,targetName:Z,stream:Pl.CANCEL_COMPLETE,streamId:l,success:!0})},function(s){t.postMessage({sourceName:d,targetName:Z,stream:Pl.CANCEL_COMPLETE,streamId:l,reason:rd(s)})}),c.sinkCapability.reject(W),c.isCancelled=!0,delete this.streamSinks[l];break;default:throw new Error("Unexpected stream case")}},Vs=async function(U,l){var d,Z,t;await Promise.allSettled([(d=U.startCall)==null?void 0:d.promise,(Z=U.pullCall)==null?void 0:Z.promise,(t=U.cancelCall)==null?void 0:t.promise]),delete this.streamControllers[l]};var Un;class Ne{constructor({enableHWA:l=!1}){b(this,Un,!1),R(this,Un,l)}create(l,d){if(l<=0||d<=0)throw new Error("Invalid canvas size");const Z=this._createCanvas(l,d);return{canvas:Z,context:Z.getContext("2d",{willReadFrequently:!a(this,Un)})}}reset(l,d,Z){if(!l.canvas)throw new Error("Canvas is not specified");if(d<=0||Z<=0)throw new Error("Invalid canvas size");l.canvas.width=d,l.canvas.height=Z}destroy(l){if(!l.canvas)throw new Error("Canvas is not specified");l.canvas.width=0,l.canvas.height=0,l.canvas=null,l.context=null}_createCanvas(l,d){Gl("Abstract method `_createCanvas` called.")}}Un=new WeakMap;class m2 extends Ne{constructor({ownerDocument:l=globalThis.document,enableHWA:d=!1}){super({enableHWA:d}),this._document=l}_createCanvas(l,d){const Z=this._document.createElement("canvas");return Z.width=l,Z.height=d,Z}}class he{constructor({baseUrl:l=null,isCompressed:d=!0}){this.baseUrl=l,this.isCompressed=d}async fetch({name:l}){if(!this.baseUrl)throw new Error("Ensure that the `cMapUrl` and `cMapPacked` API parameters are provided.");if(!l)throw new Error("CMap name must be specified.");const d=this.baseUrl+l+(this.isCompressed?".bcmap":"");return this._fetch(d).then(Z=>({cMapData:Z,isCompressed:this.isCompressed})).catch(Z=>{throw new Error(`Unable to load ${this.isCompressed?"binary ":""}CMap at: ${d}`)})}async _fetch(l){Gl("Abstract method `_fetch` called.")}}class ee extends he{async _fetch(l){const d=await tQ(l,this.isCompressed?"arraybuffer":"text");return d instanceof ArrayBuffer?new Uint8Array(d):ZQ(d)}}nl(4520);class be{addFilter(l){return"none"}addHCMFilter(l,d){return"none"}addAlphaFilter(l){return"none"}addLuminosityFilter(l){return"none"}addHighlightHCMFilter(l,d,Z,t,F){return"none"}destroy(l=!1){}}var J0,Vc,Nt,AZ,kd,yF,G0,v,Jd,Na,P0,Zn,S0,me,ui,T0,Ic,ha,Yi,ea;class M2 extends be{constructor({docId:l,ownerDocument:d=globalThis.document}){super(),b(this,v),b(this,J0),b(this,Vc),b(this,Nt),b(this,AZ),b(this,kd),b(this,yF),b(this,G0,0),R(this,AZ,l),R(this,kd,d)}addFilter(l){if(!l)return"none";let d=a(this,v,Jd).get(l);if(d)return d;const[Z,t,F]=h(this,v,Zn).call(this,l),c=l.length===1?Z:`${Z}${t}${F}`;if(d=a(this,v,Jd).get(c),d)return a(this,v,Jd).set(l,d),d;const W=`g_${a(this,AZ)}_transfer_map_${Ld(this,G0)._++}`,s=h(this,v,S0).call(this,W);a(this,v,Jd).set(l,s),a(this,v,Jd).set(c,s);const n=h(this,v,T0).call(this,W);return h(this,v,ha).call(this,Z,t,F,n),s}addHCMFilter(l,d){var Z;const t=`${l}-${d}`,F="base";let c=a(this,v,Na).get(F);if((c==null?void 0:c.key)===t||(c?((Z=c.filter)==null||Z.remove(),c.key=t,c.url="none",c.filter=null):(c={key:t,url:"none",filter:null},a(this,v,Na).set(F,c)),!l||!d))return c.url;const W=h(this,v,ea).call(this,l);l=O.makeHexColor(...W);const s=h(this,v,ea).call(this,d);if(d=O.makeHexColor(...s),a(this,v,P0).style.color="",l==="#000000"&&d==="#ffffff"||l===d)return c.url;const n=new Array(256);for(let e=0;e<=255;e++){const m=e/255;n[e]=m<=.03928?m/12.92:((m+.055)/1.055)**2.4}const V=n.join(","),Q=`g_${a(this,AZ)}_hcm_filter`,i=c.filter=h(this,v,T0).call(this,Q);h(this,v,ha).call(this,V,V,V,i),h(this,v,ui).call(this,i);const N=(e,m)=>{const M=W[e]/255,J=s[e]/255,S=new Array(m+1);for(let G=0;G<=m;G++)S[G]=M+G/m*(J-M);return S.join(",")};return h(this,v,ha).call(this,N(0,5),N(1,5),N(2,5),i),c.url=h(this,v,S0).call(this,Q),c.url}addAlphaFilter(l){let d=a(this,v,Jd).get(l);if(d)return d;const[Z]=h(this,v,Zn).call(this,[l]),t=`alpha_${Z}`;if(d=a(this,v,Jd).get(t),d)return a(this,v,Jd).set(l,d),d;const F=`g_${a(this,AZ)}_alpha_map_${Ld(this,G0)._++}`,c=h(this,v,S0).call(this,F);a(this,v,Jd).set(l,c),a(this,v,Jd).set(t,c);const W=h(this,v,T0).call(this,F);return h(this,v,Yi).call(this,Z,W),c}addLuminosityFilter(l){let d=a(this,v,Jd).get(l||"luminosity");if(d)return d;let Z,t;if(l?([Z]=h(this,v,Zn).call(this,[l]),t=`luminosity_${Z}`):t="luminosity",d=a(this,v,Jd).get(t),d)return a(this,v,Jd).set(l,d),d;const F=`g_${a(this,AZ)}_luminosity_map_${Ld(this,G0)._++}`,c=h(this,v,S0).call(this,F);a(this,v,Jd).set(l,c),a(this,v,Jd).set(t,c);const W=h(this,v,T0).call(this,F);return h(this,v,me).call(this,W),l&&h(this,v,Yi).call(this,Z,W),c}addHighlightHCMFilter(l,d,Z,t,F){var c;const W=`${d}-${Z}-${t}-${F}`;let s=a(this,v,Na).get(l);if((s==null?void 0:s.key)===W||(s?((c=s.filter)==null||c.remove(),s.key=W,s.url="none",s.filter=null):(s={key:W,url:"none",filter:null},a(this,v,Na).set(l,s)),!d||!Z))return s.url;const[n,V]=[d,Z].map(h(this,v,ea).bind(this));let Q=Math.round(.2126*n[0]+.7152*n[1]+.0722*n[2]),i=Math.round(.2126*V[0]+.7152*V[1]+.0722*V[2]),[N,e]=[t,F].map(h(this,v,ea).bind(this));i{const p=new Array(256),u=(i-Q)/T,Y=S/255,o=(G-S)/(255*T);let X=0;for(let B=0;B<=T;B++){const y=Math.round(Q+B*u),E=Y+B*o;for(let D=X;D<=y;D++)p[D]=E;X=y+1}for(let B=X;B<256;B++)p[B]=p[X-1];return p.join(",")},M=`g_${a(this,AZ)}_hcm_${l}_filter`,J=s.filter=h(this,v,T0).call(this,M);return h(this,v,ui).call(this,J),h(this,v,ha).call(this,m(N[0],e[0],5),m(N[1],e[1],5),m(N[2],e[2],5),J),s.url=h(this,v,S0).call(this,M),s.url}destroy(l=!1){var d,Z,t,F;l&&(d=a(this,yF))!=null&&d.size||((Z=a(this,Nt))==null||Z.parentNode.parentNode.remove(),R(this,Nt,null),(t=a(this,Vc))==null||t.clear(),R(this,Vc,null),(F=a(this,yF))==null||F.clear(),R(this,yF,null),R(this,G0,0))}}J0=new WeakMap,Vc=new WeakMap,Nt=new WeakMap,AZ=new WeakMap,kd=new WeakMap,yF=new WeakMap,G0=new WeakMap,v=new WeakSet,Jd=function(){return a(this,Vc)||R(this,Vc,new Map)},Na=function(){return a(this,yF)||R(this,yF,new Map)},P0=function(){if(!a(this,Nt)){const U=a(this,kd).createElement("div"),{style:l}=U;l.visibility="hidden",l.contain="strict",l.width=l.height=0,l.position="absolute",l.top=l.left=0,l.zIndex=-1;const d=a(this,kd).createElementNS(VZ,"svg");d.setAttribute("width",0),d.setAttribute("height",0),R(this,Nt,a(this,kd).createElementNS(VZ,"defs")),U.append(d),d.append(a(this,Nt)),a(this,kd).body.append(U)}return a(this,Nt)},Zn=function(U){if(U.length===1){const W=U[0],s=new Array(256);for(let V=0;V<256;V++)s[V]=W[V]/255;const n=s.join(",");return[n,n,n]}const[l,d,Z]=U,t=new Array(256),F=new Array(256),c=new Array(256);for(let W=0;W<256;W++)t[W]=l[W]/255,F[W]=d[W]/255,c[W]=Z[W]/255;return[t.join(","),F.join(","),c.join(",")]},S0=function(U){if(a(this,J0)===void 0){R(this,J0,"");const l=a(this,kd).URL;l!==a(this,kd).baseURI&&(FQ(l)?dl('#createUrl: ignore "data:"-URL for performance reasons.'):R(this,J0,l.split("#",1)[0]))}return`url(${a(this,J0)}#${U})`},me=function(U){const l=a(this,kd).createElementNS(VZ,"feColorMatrix");l.setAttribute("type","matrix"),l.setAttribute("values","0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.59 0.11 0 0"),U.append(l)},ui=function(U){const l=a(this,kd).createElementNS(VZ,"feColorMatrix");l.setAttribute("type","matrix"),l.setAttribute("values","0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0"),U.append(l)},T0=function(U){const l=a(this,kd).createElementNS(VZ,"filter");return l.setAttribute("color-interpolation-filters","sRGB"),l.setAttribute("id",U),a(this,v,P0).append(l),l},Ic=function(U,l,d){const Z=a(this,kd).createElementNS(VZ,l);Z.setAttribute("type","discrete"),Z.setAttribute("tableValues",d),U.append(Z)},ha=function(U,l,d,Z){const t=a(this,kd).createElementNS(VZ,"feComponentTransfer");Z.append(t),h(this,v,Ic).call(this,t,"feFuncR",U),h(this,v,Ic).call(this,t,"feFuncG",l),h(this,v,Ic).call(this,t,"feFuncB",d)},Yi=function(U,l){const d=a(this,kd).createElementNS(VZ,"feComponentTransfer");l.append(d),h(this,v,Ic).call(this,d,"feFuncA",U)},ea=function(U){return a(this,v,P0).style.color=U,wR(getComputedStyle(a(this,v,P0)).getPropertyValue("color"))};class Me{constructor({baseUrl:l=null}){this.baseUrl=l}async fetch({filename:l}){if(!this.baseUrl)throw new Error("Ensure that the `standardFontDataUrl` API parameter is provided.");if(!l)throw new Error("Font filename must be specified.");const d=`${this.baseUrl}${l}`;return this._fetch(d).catch(Z=>{throw new Error(`Unable to load font data at: ${d}`)})}async _fetch(l){Gl("Abstract method `_fetch` called.")}}class Je extends Me{async _fetch(l){const d=await tQ(l,"arraybuffer");return new Uint8Array(d)}}if(Bd){let U;try{const l=process.getBuiltinModule("module").createRequire(import.meta.url);try{U=l("@napi-rs/canvas")}catch(d){dl(`Cannot load "@napi-rs/canvas" package: "${d}".`)}}catch(l){dl(`Cannot access the \`require\` function: "${l}".`)}globalThis.DOMMatrix||(U!=null&&U.DOMMatrix?globalThis.DOMMatrix=U.DOMMatrix:dl("Cannot polyfill `DOMMatrix`, rendering may be broken.")),globalThis.ImageData||(U!=null&&U.ImageData?globalThis.ImageData=U.ImageData:dl("Cannot polyfill `ImageData`, rendering may be broken.")),globalThis.Path2D||(U!=null&&U.Path2D?globalThis.Path2D=U.Path2D:dl("Cannot polyfill `Path2D`, rendering may be broken."))}async function Ge(U){const l=await process.getBuiltinModule("fs").promises.readFile(U);return new Uint8Array(l)}class J2 extends be{}class G2 extends Ne{_createCanvas(l,d){return process.getBuiltinModule("module").createRequire(import.meta.url)("@napi-rs/canvas").createCanvas(l,d)}}class S2 extends he{async _fetch(l){return Ge(l)}}class T2 extends Me{async _fetch(l){return Ge(l)}}const ud={FILL:"Fill",STROKE:"Stroke",SHADING:"Shading"};function Bi(U,l){if(!l)return;const d=l[2]-l[0],Z=l[3]-l[1],t=new Path2D;t.rect(l[0],l[1],d,Z),U.clip(t)}class xR{getPattern(){Gl("Abstract method `getPattern` called.")}}class X2 extends xR{constructor(l){super(),this._type=l[1],this._bbox=l[2],this._colorStops=l[3],this._p0=l[4],this._p1=l[5],this._r0=l[6],this._r1=l[7],this.matrix=null}_createGradient(l){let d;this._type==="axial"?d=l.createLinearGradient(this._p0[0],this._p0[1],this._p1[0],this._p1[1]):this._type==="radial"&&(d=l.createRadialGradient(this._p0[0],this._p0[1],this._r0,this._p1[0],this._p1[1],this._r1));for(const Z of this._colorStops)d.addColorStop(Z[0],Z[1]);return d}getPattern(l,d,Z,t){let F;if(t===ud.STROKE||t===ud.FILL){const c=d.current.getClippedPathBoundingBox(t,Bl(l))||[0,0,0,0],W=Math.ceil(c[2]-c[0])||1,s=Math.ceil(c[3]-c[1])||1,n=d.cachedCanvases.getCanvas("pattern",W,s),V=n.context;V.clearRect(0,0,V.canvas.width,V.canvas.height),V.beginPath(),V.rect(0,0,V.canvas.width,V.canvas.height),V.translate(-c[0],-c[1]),Z=O.transform(Z,[1,0,0,1,c[0],c[1]]),V.transform(...d.baseTransform),this.matrix&&V.transform(...this.matrix),Bi(V,this._bbox),V.fillStyle=this._createGradient(V),V.fill(),F=l.createPattern(n.canvas,"no-repeat");const Q=new DOMMatrix(Z);F.setTransform(Q)}else Bi(l,this._bbox),F=this._createGradient(l);return F}}function YQ(U,l,d,Z,t,F,c,W){const s=l.coords,n=l.colors,V=U.data,Q=U.width*4;let i;s[d+1]>s[Z+1]&&(i=d,d=Z,Z=i,i=F,F=c,c=i),s[Z+1]>s[t+1]&&(i=Z,Z=t,t=i,i=c,c=W,W=i),s[d+1]>s[Z+1]&&(i=d,d=Z,Z=i,i=F,F=c,c=i);const N=(s[d]+l.offsetX)*l.scaleX,e=(s[d+1]+l.offsetY)*l.scaleY,m=(s[Z]+l.offsetX)*l.scaleX,M=(s[Z+1]+l.offsetY)*l.scaleY,J=(s[t]+l.offsetX)*l.scaleX,S=(s[t+1]+l.offsetY)*l.scaleY;if(e>=S)return;const G=n[F],T=n[F+1],p=n[F+2],u=n[c],Y=n[c+1],o=n[c+2],X=n[W],B=n[W+1],y=n[W+2],E=Math.round(e),D=Math.round(S);let w,I,L,g,A,Vl,Sl,Tl;for(let Rl=E;Rl<=D;Rl++){if(RlS?z=1:M===S?z=0:z=(M-Rl)/(M-S),w=m-(m-J)*z,I=u-(u-X)*z,L=Y-(Y-B)*z,g=o-(o-y)*z}let bl;RlS?bl=1:bl=(e-Rl)/(e-S),A=N-(N-J)*bl,Vl=G-(G-X)*bl,Sl=T-(T-B)*bl,Tl=p-(p-y)*bl;const FU=Math.round(Math.min(w,A)),gd=Math.round(Math.max(w,A));let C=Q*Rl+FU*4;for(let z=FU;z<=gd;z++)bl=(w-z)/(w-A),bl<0?bl=0:bl>1&&(bl=1),V[C++]=I-(I-Vl)*bl|0,V[C++]=L-(L-Sl)*bl|0,V[C++]=g-(g-Tl)*bl|0,V[C++]=255}}function p2(U,l,d){const Z=l.coords,t=l.colors;let F,c;switch(l.type){case"lattice":const W=l.verticesPerRow,s=Math.floor(Z.length/W)-1,n=W-1;for(F=0;F=B?T=s:u=!0,X>=y?p=n:Y=!0;const E=this.getSizeAndScale(T,this.ctx.canvas.width,S),D=this.getSizeAndScale(p,this.ctx.canvas.height,G),w=l.cachedCanvases.getCanvas("pattern",E.size,D.size),I=w.context,L=W.createCanvasGraphics(I);if(L.groupLevel=l.groupLevel,this.setFillAndStrokeStyleToContext(L,t,c),I.translate(-E.scale*V,-D.scale*Q),L.transform(E.scale,0,0,D.scale,0,0),I.save(),this.clipBbox(L,V,Q,i,N),L.baseTransform=Bl(L.ctx),L.executeOperatorList(Z),L.endDrawing(),I.restore(),u||Y){const g=w.canvas;u&&(T=s),Y&&(p=n);const A=this.getSizeAndScale(T,this.ctx.canvas.width,S),Vl=this.getSizeAndScale(p,this.ctx.canvas.height,G),Sl=A.size,Tl=Vl.size,Rl=l.cachedCanvases.getCanvas("pattern-workaround",Sl,Tl),bl=Rl.context,FU=u?Math.floor(e/s):0,gd=Y?Math.floor(m/n):0;for(let C=0;C<=FU;C++)for(let z=0;z<=gd;z++)bl.drawImage(g,Sl*C,Tl*z,Sl,Tl,0,0,Sl,Tl);return{canvas:Rl.canvas,scaleX:A.scale,scaleY:Vl.scale,offsetX:V,offsetY:Q}}return{canvas:w.canvas,scaleX:E.scale,scaleY:D.scale,offsetX:V,offsetY:Q}}getSizeAndScale(l,d,Z){const t=Math.max(Te.MAX_PATTERN_SIZE,d);let F=Math.ceil(l*Z);return F>=t?F=t:Z=F/l,{scale:Z,size:F}}clipBbox(l,d,Z,t,F){const c=t-d,W=F-Z;l.ctx.rect(d,Z,c,W),l.current.updateRectMinMax(Bl(l.ctx),[d,Z,t,F]),l.clip(),l.endPath()}setFillAndStrokeStyleToContext(l,d,Z){const t=l.ctx,F=l.current;switch(d){case SN.COLORED:const c=this.ctx;t.fillStyle=c.fillStyle,t.strokeStyle=c.strokeStyle,F.fillColor=c.fillStyle,F.strokeColor=c.strokeStyle;break;case SN.UNCOLORED:const W=O.makeHexColor(Z[0],Z[1],Z[2]);t.fillStyle=W,t.strokeStyle=W,F.fillColor=W,F.strokeColor=W;break;default:throw new qm(`Unsupported paint type: ${d}`)}}getPattern(l,d,Z,t){let F=Z;t!==ud.SHADING&&(F=O.transform(F,d.baseTransform),this.matrix&&(F=O.transform(F,this.matrix)));const c=this.createPatternCanvas(d);let W=new DOMMatrix(F);W=W.translate(c.offsetX,c.offsetY),W=W.scale(1/c.scaleX,1/c.scaleY);const s=l.createPattern(c.canvas,"repeat");return s.setTransform(W),s}};f(Se,"MAX_PATTERN_SIZE",3e3);let o2=Se;function y2({src:U,srcPos:l=0,dest:d,width:Z,height:t,nonBlackColor:F=4294967295,inverseDecode:c=!1}){const W=Id.isLittleEndian?4278190080:255,[s,n]=c?[F,W]:[W,F],V=Z>>3,Q=Z&7,i=U.length;d=new Uint32Array(d.buffer);let N=0;for(let e=0;e{U.save=U.__originalSave,U.restore=U.__originalRestore,U.rotate=U.__originalRotate,U.scale=U.__originalScale,U.translate=U.__originalTranslate,U.transform=U.__originalTransform,U.setTransform=U.__originalSetTransform,U.resetTransform=U.__originalResetTransform,U.clip=U.__originalClip,U.moveTo=U.__originalMoveTo,U.lineTo=U.__originalLineTo,U.bezierCurveTo=U.__originalBezierCurveTo,U.rect=U.__originalRect,U.closePath=U.__originalClosePath,U.beginPath=U.__originalBeginPath,delete U._removeMirroring},U.save=function(){l.save(),this.__originalSave()},U.restore=function(){l.restore(),this.__originalRestore()},U.translate=function(d,Z){l.translate(d,Z),this.__originalTranslate(d,Z)},U.scale=function(d,Z){l.scale(d,Z),this.__originalScale(d,Z)},U.transform=function(d,Z,t,F,c,W){l.transform(d,Z,t,F,c,W),this.__originalTransform(d,Z,t,F,c,W)},U.setTransform=function(d,Z,t,F,c,W){l.setTransform(d,Z,t,F,c,W),this.__originalSetTransform(d,Z,t,F,c,W)},U.resetTransform=function(){l.resetTransform(),this.__originalResetTransform()},U.rotate=function(d){l.rotate(d),this.__originalRotate(d)},U.clip=function(d){l.clip(d),this.__originalClip(d)},U.moveTo=function(d,Z){l.moveTo(d,Z),this.__originalMoveTo(d,Z)},U.lineTo=function(d,Z){l.lineTo(d,Z),this.__originalLineTo(d,Z)},U.bezierCurveTo=function(d,Z,t,F,c,W){l.bezierCurveTo(d,Z,t,F,c,W),this.__originalBezierCurveTo(d,Z,t,F,c,W)},U.rect=function(d,Z,t,F){l.rect(d,Z,t,F),this.__originalRect(d,Z,t,F)},U.closePath=function(){l.closePath(),this.__originalClosePath()},U.beginPath=function(){l.beginPath(),this.__originalBeginPath()}}class L2{constructor(l){this.canvasFactory=l,this.cache=Object.create(null)}getCanvas(l,d,Z){let t;return this.cache[l]!==void 0?(t=this.cache[l],this.canvasFactory.reset(t,d,Z)):(t=this.canvasFactory.create(d,Z),this.cache[l]=t),t}delete(l){delete this.cache[l]}clear(){for(const l in this.cache){const d=this.cache[l];this.canvasFactory.destroy(d),delete this.cache[l]}}}function Qs(U,l,d,Z,t,F,c,W,s,n){const[V,Q,i,N,e,m]=Bl(U);if(Q===0&&i===0){const S=c*V+e,G=Math.round(S),T=W*N+m,p=Math.round(T),u=(c+s)*V+e,Y=Math.abs(Math.round(u)-G)||1,o=(W+n)*N+m,X=Math.abs(Math.round(o)-p)||1;return U.setTransform(Math.sign(V),0,0,Math.sign(N),G,p),U.drawImage(l,d,Z,t,F,0,0,Y,X),U.setTransform(V,Q,i,N,e,m),[Y,X]}if(V===0&&N===0){const S=W*i+e,G=Math.round(S),T=c*Q+m,p=Math.round(T),u=(W+n)*i+e,Y=Math.abs(Math.round(u)-G)||1,o=(c+s)*Q+m,X=Math.abs(Math.round(o)-p)||1;return U.setTransform(0,Math.sign(Q),Math.sign(i),0,G,p),U.drawImage(l,d,Z,t,F,0,0,X,Y),U.setTransform(V,Q,i,N,e,m),[X,Y]}U.drawImage(l,d,Z,t,F,c,W,s,n);const M=Math.hypot(V,Q),J=Math.hypot(i,N);return[M*s,J*n]}function I2(U){const{width:l,height:d}=U;if(l>uN||d>uN)return null;const Z=1e3,t=new Uint8Array([0,2,4,0,1,0,5,4,8,10,0,8,0,2,1,0]),F=l+1;let c=new Uint8Array(F*(d+1)),W,s,n;const V=l+7&-8;let Q=new Uint8Array(V*d),i=0;for(const M of U.data){let J=128;for(;J>0;)Q[i++]=M&J?0:255,J>>=1}let N=0;for(i=0,Q[i]!==0&&(c[0]=1,++N),s=1;s>2)+(Q[i+1]?4:0)+(Q[i-V+1]?8:0),t[M]&&(c[n+s]=t[M],++N),i++;if(Q[i-V]!==Q[i]&&(c[n+s]=Q[i]?2:4,++N),N>Z)return null}for(i=V*(d-1),n=W*F,Q[i]!==0&&(c[n]=8,++N),s=1;sZ)return null;const e=new Int32Array([0,F,-1,0,-F,0,0,0,1]),m=new Path2D;for(W=0;N&&W<=d;W++){let M=W*F;const J=M+l;for(;M>4,c[M]&=G>>2|G<<2),m.lineTo(M%F,M/F|0),c[M]||--N}while(S!==M);--W}return Q=null,c=null,function(M){M.save(),M.scale(1/l,-1/d),M.translate(0,-d),M.fill(m),M.beginPath(),M.restore()}}class YN{constructor(l,d){this.alphaIsShape=!1,this.fontSize=0,this.fontSizeScale=1,this.textMatrix=Kh,this.textMatrixScale=1,this.fontMatrix=Qi,this.leading=0,this.x=0,this.y=0,this.lineX=0,this.lineY=0,this.charSpacing=0,this.wordSpacing=0,this.textHScale=1,this.textRenderingMode=Md.FILL,this.textRise=0,this.fillColor="#000000",this.strokeColor="#000000",this.patternFill=!1,this.patternStroke=!1,this.fillAlpha=1,this.strokeAlpha=1,this.lineWidth=1,this.activeSMask=null,this.transferMaps="none",this.startNewPathAndClipBox([0,0,l,d])}clone(){const l=Object.create(this);return l.clipBox=this.clipBox.slice(),l}setCurrentPoint(l,d){this.x=l,this.y=d}updatePathMinMax(l,d,Z){[d,Z]=O.applyTransform([d,Z],l),this.minX=Math.min(this.minX,d),this.minY=Math.min(this.minY,Z),this.maxX=Math.max(this.maxX,d),this.maxY=Math.max(this.maxY,Z)}updateRectMinMax(l,d){const Z=O.applyTransform(d,l),t=O.applyTransform(d.slice(2),l),F=O.applyTransform([d[0],d[3]],l),c=O.applyTransform([d[2],d[1]],l);this.minX=Math.min(this.minX,Z[0],t[0],F[0],c[0]),this.minY=Math.min(this.minY,Z[1],t[1],F[1],c[1]),this.maxX=Math.max(this.maxX,Z[0],t[0],F[0],c[0]),this.maxY=Math.max(this.maxY,Z[1],t[1],F[1],c[1])}updateScalingPathMinMax(l,d){O.scaleMinMax(l,d),this.minX=Math.min(this.minX,d[0]),this.minY=Math.min(this.minY,d[1]),this.maxX=Math.max(this.maxX,d[2]),this.maxY=Math.max(this.maxY,d[3])}updateCurvePathMinMax(l,d,Z,t,F,c,W,s,n,V){const Q=O.bezierBoundingBox(d,Z,t,F,c,W,s,n,V);V||this.updateRectMinMax(l,Q)}getPathBoundingBox(l=ud.FILL,d=null){const Z=[this.minX,this.minY,this.maxX,this.maxY];if(l===ud.STROKE){d||Gl("Stroke bounding box must include transform.");const t=O.singularValueDecompose2dScale(d),F=t[0]*this.lineWidth/2,c=t[1]*this.lineWidth/2;Z[0]-=F,Z[1]-=c,Z[2]+=F,Z[3]+=c}return Z}updateClipFromPath(){const l=O.intersect(this.clipBox,this.getPathBoundingBox());this.startNewPathAndClipBox(l||[0,0,0,0])}isEmptyClip(){return this.minX===1/0}startNewPathAndClipBox(l){this.clipBox=l,this.minX=1/0,this.minY=1/0,this.maxX=0,this.maxY=0}getClippedPathBoundingBox(l=ud.FILL,d=null){return O.intersect(this.clipBox,this.getPathBoundingBox(l,d))}}function BN(U,l){if(l instanceof ImageData){U.putImageData(l,0,0);return}const d=l.height,Z=l.width,t=d%jd,F=(d-t)/jd,c=t===0?F:F+1,W=U.createImageData(Z,jd);let s=0,n;const V=l.data,Q=W.data;let i,N,e,m;if(l.kind===gs.GRAYSCALE_1BPP){const M=V.byteLength,J=new Uint32Array(Q.buffer,0,Q.byteLength>>2),S=J.length,G=Z+7>>3,T=4294967295,p=Id.isLittleEndian?4278190080:255;for(i=0;iG?Z:u*8-7,X=o&-8;let B=0,y=0;for(;Y>=1}for(;n=F&&(e=t,m=Z*e),n=0,N=m;N--;)Q[n++]=V[s++],Q[n++]=V[s++],Q[n++]=V[s++],Q[n++]=255;U.putImageData(W,0,i*jd)}else throw new Error(`bad image kind: ${l.kind}`)}function oN(U,l){if(l.bitmap){U.drawImage(l.bitmap,0,0);return}const d=l.height,Z=l.width,t=d%jd,F=(d-t)/jd,c=t===0?F:F+1,W=U.createImageData(Z,jd);let s=0;const n=l.data,V=W.data;for(let Q=0;QpN&&typeof Z=="function",V=n?Date.now()+k2:0;let Q=0;const i=this.commonObjs,N=this.objs;let e;for(;;){if(t!==void 0&&W===t.nextBreakPoint)return t.breakIt(W,Z),W;if(e=c[W],e!==yU.dependency)this[e].apply(this,F[W]);else for(const m of F[W]){const M=m.startsWith("g_")?i:N;if(!M.has(m))return M.get(m,Z),W}if(W++,W===s)return W;if(n&&++Q>pN){if(Date.now()>V)return Z(),W;Q=0}}}endDrawing(){h(this,_Z,oi).call(this),this.cachedCanvases.clear(),this.cachedPatterns.clear();for(const l of this._cachedBitmapsMap.values()){for(const d of l.values())typeof HTMLCanvasElement<"u"&&d instanceof HTMLCanvasElement&&(d.width=d.height=0);l.clear()}this._cachedBitmapsMap.clear(),h(this,_Z,yi).call(this)}_scaleImage(l,d){const Z=l.width??l.displayWidth,t=l.height??l.displayHeight;let F=Math.max(Math.hypot(d[0],d[1]),1),c=Math.max(Math.hypot(d[2],d[3]),1),W=Z,s=t,n="prescale1",V,Q;for(;F>2&&W>1||c>2&&s>1;){let i=W,N=s;F>2&&W>1&&(i=W>=16384?Math.floor(W/2)-1||1:Math.ceil(W/2),F/=W/i),c>2&&s>1&&(N=s>=16384?Math.floor(s/2)-1||1:Math.ceil(s)/2,c/=s/N),V=this.cachedCanvases.getCanvas(n,i,N),Q=V.context,Q.clearRect(0,0,i,N),Q.drawImage(l,0,0,W,s,0,0,i,N),l=V.canvas,W=i,s=N,n=n==="prescale1"?"prescale2":"prescale1"}return{img:l,paintWidth:W,paintHeight:s}}_createMaskCanvas(l){const d=this.ctx,{width:Z,height:t}=l,F=this.current.fillColor,c=this.current.patternFill,W=Bl(d);let s,n,V,Q;if((l.bitmap||l.data)&&l.count>1){const o=l.bitmap||l.data.buffer;n=JSON.stringify(c?W:[W.slice(0,4),F]),s=this._cachedBitmapsMap.get(o),s||(s=new Map,this._cachedBitmapsMap.set(o,s));const X=s.get(n);if(X&&!c){const B=Math.round(Math.min(W[0],W[2])+W[4]),y=Math.round(Math.min(W[1],W[3])+W[5]);return{canvas:X,offsetX:B,offsetY:y}}V=X}V||(Q=this.cachedCanvases.getCanvas("maskCanvas",Z,t),oN(Q.context,l));let i=O.transform(W,[1/Z,0,0,-1/t,0,0]);i=O.transform(i,[1,0,0,1,0,-t]);const[N,e,m,M]=O.getAxialAlignedBoundingBox([0,0,Z,t],i),J=Math.round(m-N)||1,S=Math.round(M-e)||1,G=this.cachedCanvases.getCanvas("fillCanvas",J,S),T=G.context,p=N,u=e;T.translate(-p,-u),T.transform(...i),V||(V=this._scaleImage(Q.canvas,DU(T)),V=V.img,s&&c&&s.set(n,V)),T.imageSmoothingEnabled=yN(Bl(T),l.interpolate),Qs(T,V,0,0,V.width,V.height,0,0,Z,t),T.globalCompositeOperation="source-in";const Y=O.transform(DU(T),[1,0,0,1,-p,-u]);return T.fillStyle=c?F.getPattern(d,this,Y,ud.FILL):F,T.fillRect(0,0,Z,t),s&&!c&&(this.cachedCanvases.delete("fillCanvas"),s.set(n,G.canvas)),{canvas:G.canvas,offsetX:Math.round(p),offsetY:Math.round(u)}}setLineWidth(l){l!==this.current.lineWidth&&(this._cachedScaleForStroking[0]=-1),this.current.lineWidth=l,this.ctx.lineWidth=l}setLineCap(l){this.ctx.lineCap=D2[l]}setLineJoin(l){this.ctx.lineJoin=E2[l]}setMiterLimit(l){this.ctx.miterLimit=l}setDash(l,d){const Z=this.ctx;Z.setLineDash!==void 0&&(Z.setLineDash(l),Z.lineDashOffset=d)}setRenderingIntent(l){}setFlatness(l){}setGState(l){for(const[d,Z]of l)switch(d){case"LW":this.setLineWidth(Z);break;case"LC":this.setLineCap(Z);break;case"LJ":this.setLineJoin(Z);break;case"ML":this.setMiterLimit(Z);break;case"D":this.setDash(Z[0],Z[1]);break;case"RI":this.setRenderingIntent(Z);break;case"FL":this.setFlatness(Z);break;case"Font":this.setFont(Z[0],Z[1]);break;case"CA":this.current.strokeAlpha=Z;break;case"ca":this.current.fillAlpha=Z,this.ctx.globalAlpha=Z;break;case"BM":this.ctx.globalCompositeOperation=Z;break;case"SMask":this.current.activeSMask=Z?this.tempSMask:null,this.tempSMask=null,this.checkSMaskState();break;case"TR":this.ctx.filter=this.current.transferMaps=this.filterFactory.addFilter(Z);break}}get inSMaskMode(){return!!this.suspendedCtx}checkSMaskState(){const l=this.inSMaskMode;this.current.activeSMask&&!l?this.beginSMaskMode():!this.current.activeSMask&&l&&this.endSMaskMode()}beginSMaskMode(){if(this.inSMaskMode)throw new Error("beginSMaskMode called while already in smask mode");const l=this.ctx.canvas.width,d=this.ctx.canvas.height,Z="smaskGroupAt"+this.groupLevel,t=this.cachedCanvases.getCanvas(Z,l,d);this.suspendedCtx=this.ctx,this.ctx=t.context;const F=this.ctx;F.setTransform(...Bl(this.suspendedCtx)),Dc(this.suspendedCtx,F),z2(F,this.suspendedCtx),this.setGState([["BM","source-over"],["ca",1],["CA",1]])}endSMaskMode(){if(!this.inSMaskMode)throw new Error("endSMaskMode called while not in smask mode");this.ctx._removeMirroring(),Dc(this.ctx,this.suspendedCtx),this.ctx=this.suspendedCtx,this.suspendedCtx=null}compose(l){if(!this.current.activeSMask)return;l?(l[0]=Math.floor(l[0]),l[1]=Math.floor(l[1]),l[2]=Math.ceil(l[2]),l[3]=Math.ceil(l[3])):l=[0,0,this.ctx.canvas.width,this.ctx.canvas.height];const d=this.current.activeSMask,Z=this.suspendedCtx;this.composeSMask(Z,d,this.ctx,l),this.ctx.save(),this.ctx.setTransform(1,0,0,1,0,0),this.ctx.clearRect(0,0,this.ctx.canvas.width,this.ctx.canvas.height),this.ctx.restore()}composeSMask(l,d,Z,t){const F=t[0],c=t[1],W=t[2]-F,s=t[3]-c;W===0||s===0||(this.genericComposeSMask(d.context,Z,W,s,d.subtype,d.backdrop,d.transferMap,F,c,d.offsetX,d.offsetY),l.save(),l.globalAlpha=1,l.globalCompositeOperation="source-over",l.setTransform(1,0,0,1,0,0),l.drawImage(Z.canvas,0,0),l.restore())}genericComposeSMask(l,d,Z,t,F,c,W,s,n,V,Q){let i=l.canvas,N=s-V,e=n-Q;if(c){const M=O.makeHexColor(...c);if(N<0||e<0||N+Z>i.width||e+t>i.height){const J=this.cachedCanvases.getCanvas("maskExtension",Z,t),S=J.context;S.drawImage(i,-N,-e),S.globalCompositeOperation="destination-atop",S.fillStyle=M,S.fillRect(0,0,Z,t),S.globalCompositeOperation="source-over",i=J.canvas,N=e=0}else{l.save(),l.globalAlpha=1,l.setTransform(1,0,0,1,0,0);const J=new Path2D;J.rect(N,e,Z,t),l.clip(J),l.globalCompositeOperation="destination-atop",l.fillStyle=M,l.fillRect(N,e,Z,t),l.restore()}}d.save(),d.globalAlpha=1,d.setTransform(1,0,0,1,0,0),F==="Alpha"&&W?d.filter=this.filterFactory.addAlphaFilter(W):F==="Luminosity"&&(d.filter=this.filterFactory.addLuminosityFilter(W));const m=new Path2D;m.rect(s,n,Z,t),d.clip(m),d.globalCompositeOperation="destination-in",d.drawImage(i,N,e,Z,t,s,n,Z,t),d.restore()}save(){this.inSMaskMode?(Dc(this.ctx,this.suspendedCtx),this.suspendedCtx.save()):this.ctx.save();const l=this.current;this.stateStack.push(l),this.current=l.clone()}restore(){this.stateStack.length===0&&this.inSMaskMode&&this.endSMaskMode(),this.stateStack.length!==0&&(this.current=this.stateStack.pop(),this.inSMaskMode?(this.suspendedCtx.restore(),Dc(this.suspendedCtx,this.ctx)):this.ctx.restore(),this.checkSMaskState(),this.pendingClip=null,this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null)}transform(l,d,Z,t,F,c){this.ctx.transform(l,d,Z,t,F,c),this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null}constructPath(l,d,Z){const t=this.ctx,F=this.current;let c=F.x,W=F.y,s,n;const V=Bl(t),Q=V[0]===0&&V[3]===0||V[1]===0&&V[2]===0,i=Q?Z.slice(0):null;for(let N=0,e=0,m=l.length;NXN&&(V=XN),this.current.fontSizeScale=d/V,this.ctx.font=`${n} ${s} ${V}px ${W}`}setTextRenderingMode(l){this.current.textRenderingMode=l}setTextRise(l){this.current.textRise=l}moveText(l,d){this.current.x=this.current.lineX+=l,this.current.y=this.current.lineY+=d}setLeadingMoveText(l,d){this.setLeading(-d),this.moveText(l,d)}setTextMatrix(l,d,Z,t,F,c){this.current.textMatrix=[l,d,Z,t,F,c],this.current.textMatrixScale=Math.hypot(l,d),this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0}nextLine(){this.moveText(0,this.current.leading)}paintChar(l,d,Z,t,F){const c=this.ctx,W=this.current,s=W.font,n=W.textRenderingMode,V=W.fontSize/W.fontSizeScale,Q=n&Md.FILL_STROKE_MASK,i=!!(n&Md.ADD_TO_PATH_FLAG),N=W.patternFill&&!s.missingFile,e=W.patternStroke&&!s.missingFile;let m;if((s.disableFontFace||i||N||e)&&(m=s.getPathGenerator(this.commonObjs,l)),s.disableFontFace||N||e){if(c.save(),c.translate(d,Z),c.scale(V,-V),Q===Md.FILL||Q===Md.FILL_STROKE)if(t){const M=c.getTransform();c.setTransform(...t),c.fill(h(this,_Z,ki).call(this,m,M,t))}else c.fill(m);if(Q===Md.STROKE||Q===Md.FILL_STROKE)if(F){const M=c.getTransform();c.setTransform(...F),c.stroke(h(this,_Z,ki).call(this,m,M,F))}else c.lineWidth/=V,c.stroke(m);c.restore()}else(Q===Md.FILL||Q===Md.FILL_STROKE)&&c.fillText(l,d,Z),(Q===Md.STROKE||Q===Md.FILL_STROKE)&&c.strokeText(l,d,Z);i&&(this.pendingTextPaths||(this.pendingTextPaths=[])).push({transform:Bl(c),x:d,y:Z,fontSize:V,path:m})}get isFontSubpixelAAEnabled(){const{context:l}=this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled",10,10);l.scale(1.5,1),l.fillText("I",0,10);const d=l.getImageData(0,0,10,10).data;let Z=!1;for(let t=3;t0&&d[t]<255){Z=!0;break}return tl(this,"isFontSubpixelAAEnabled",Z)}showText(l){const d=this.current,Z=d.font;if(Z.isType3Font)return this.showType3Text(l);const t=d.fontSize;if(t===0)return;const F=this.ctx,c=d.fontSizeScale,W=d.charSpacing,s=d.wordSpacing,n=d.fontDirection,V=d.textHScale*n,Q=l.length,i=Z.vertical,N=i?1:-1,e=Z.defaultVMetrics,m=t*d.fontMatrix[0],M=d.textRenderingMode===Md.FILL&&!Z.disableFontFace&&!d.patternFill;F.save(),F.transform(...d.textMatrix),F.translate(d.x,d.y+d.textRise),n>0?F.scale(V,-1):F.scale(V,1);let J,S;if(d.patternFill){F.save();const Y=d.fillColor.getPattern(F,this,DU(F),ud.FILL);J=Bl(F),F.restore(),F.fillStyle=Y}if(d.patternStroke){F.save();const Y=d.strokeColor.getPattern(F,this,DU(F),ud.STROKE);S=Bl(F),F.restore(),F.strokeStyle=Y}let G=d.lineWidth;const T=d.textMatrixScale;if(T===0||G===0){const Y=d.textRenderingMode&Md.FILL_STROKE_MASK;(Y===Md.STROKE||Y===Md.FILL_STROKE)&&(G=this.getSinglePixelWidth())}else G/=T;if(c!==1&&(F.scale(c,c),G/=c),F.lineWidth=G,Z.isInvalidPDFjsFont){const Y=[];let o=0;for(const X of l)Y.push(X.unicode),o+=X.width;F.fillText(Y.join(""),0,0),d.x+=o*m*V,F.restore(),this.compose();return}let p=0,u;for(u=0;u0){const L=F.measureText(B).width*1e3/t*c;if(wnew Xe(c,this.commonObjs,this.objs,this.canvasFactory,this.filterFactory,{optionalContentConfig:this.optionalContentConfig,markedContentStack:this.markedContentStack})};d=new o2(l,Z,this.ctx,F,t)}else d=this._getPattern(l[1],l[2]);return d}setStrokeColorN(){this.current.strokeColor=this.getColorN_Pattern(arguments),this.current.patternStroke=!0}setFillColorN(){this.current.fillColor=this.getColorN_Pattern(arguments),this.current.patternFill=!0}setStrokeRGBColor(l,d,Z){this.ctx.strokeStyle=this.current.strokeColor=O.makeHexColor(l,d,Z),this.current.patternStroke=!1}setStrokeTransparent(){this.ctx.strokeStyle=this.current.strokeColor="transparent",this.current.patternStroke=!1}setFillRGBColor(l,d,Z){this.ctx.fillStyle=this.current.fillColor=O.makeHexColor(l,d,Z),this.current.patternFill=!1}setFillTransparent(){this.ctx.fillStyle=this.current.fillColor="transparent",this.current.patternFill=!1}_getPattern(l,d=null){let Z;return this.cachedPatterns.has(l)?Z=this.cachedPatterns.get(l):(Z=B2(this.getObject(l)),this.cachedPatterns.set(l,Z)),d&&(Z.matrix=d),Z}shadingFill(l){if(!this.contentVisible)return;const d=this.ctx;this.save();const Z=this._getPattern(l);d.fillStyle=Z.getPattern(d,this,DU(d),ud.SHADING);const t=DU(d);if(t){const{width:F,height:c}=d.canvas,[W,s,n,V]=O.getAxialAlignedBoundingBox([0,0,F,c],t);this.ctx.fillRect(W,s,n-W,V-s)}else this.ctx.fillRect(-1e10,-1e10,2e10,2e10);this.compose(this.current.getClippedPathBoundingBox()),this.restore()}beginInlineImage(){Gl("Should not call beginInlineImage")}beginImageData(){Gl("Should not call beginImageData")}paintFormXObjectBegin(l,d){if(this.contentVisible&&(this.save(),this.baseTransformStack.push(this.baseTransform),l&&this.transform(...l),this.baseTransform=Bl(this.ctx),d)){const Z=d[2]-d[0],t=d[3]-d[1];this.ctx.rect(d[0],d[1],Z,t),this.current.updateRectMinMax(Bl(this.ctx),d),this.clip(),this.endPath()}}paintFormXObjectEnd(){this.contentVisible&&(this.restore(),this.baseTransform=this.baseTransformStack.pop())}beginGroup(l){if(!this.contentVisible)return;this.save(),this.inSMaskMode&&(this.endSMaskMode(),this.current.activeSMask=null);const d=this.ctx;l.isolated||UQ("TODO: Support non-isolated groups."),l.knockout&&dl("Knockout groups not supported.");const Z=Bl(d);if(l.matrix&&d.transform(...l.matrix),!l.bbox)throw new Error("Bounding box is required.");let t=O.getAxialAlignedBoundingBox(l.bbox,Bl(d));const F=[0,0,d.canvas.width,d.canvas.height];t=O.intersect(t,F)||[0,0,0,0];const c=Math.floor(t[0]),W=Math.floor(t[1]),s=Math.max(Math.ceil(t[2])-c,1),n=Math.max(Math.ceil(t[3])-W,1);this.current.startNewPathAndClipBox([0,0,s,n]);let V="groupAt"+this.groupLevel;l.smask&&(V+="_smask_"+this.smaskCounter++%2);const Q=this.cachedCanvases.getCanvas(V,s,n),i=Q.context;i.translate(-c,-W),i.transform(...Z),l.smask?this.smaskStack.push({canvas:Q.canvas,context:i,offsetX:c,offsetY:W,subtype:l.smask.subtype,backdrop:l.smask.backdrop,transferMap:l.smask.transferMap||null,startTransformInverse:null}):(d.setTransform(1,0,0,1,0,0),d.translate(c,W),d.save()),Dc(d,i),this.ctx=i,this.setGState([["BM","source-over"],["ca",1],["CA",1]]),this.groupStack.push(d),this.groupLevel++}endGroup(l){if(!this.contentVisible)return;this.groupLevel--;const d=this.ctx,Z=this.groupStack.pop();if(this.ctx=Z,this.ctx.imageSmoothingEnabled=!1,l.smask)this.tempSMask=this.smaskStack.pop(),this.restore();else{this.ctx.restore();const t=Bl(this.ctx);this.restore(),this.ctx.save(),this.ctx.setTransform(...t);const F=O.getAxialAlignedBoundingBox([0,0,d.canvas.width,d.canvas.height],t);this.ctx.drawImage(d.canvas,0,0),this.ctx.restore(),this.compose(F)}}beginAnnotation(l,d,Z,t,F){if(h(this,_Z,oi).call(this),is(this.ctx),this.ctx.save(),this.save(),this.baseTransform&&this.ctx.setTransform(...this.baseTransform),d){const c=d[2]-d[0],W=d[3]-d[1];if(F&&this.annotationCanvasMap){Z=Z.slice(),Z[4]-=d[0],Z[5]-=d[1],d=d.slice(),d[0]=d[1]=0,d[2]=c,d[3]=W;const[s,n]=O.singularValueDecompose2dScale(Bl(this.ctx)),{viewportScale:V}=this,Q=Math.ceil(c*this.outputScaleX*V),i=Math.ceil(W*this.outputScaleY*V);this.annotationCanvas=this.canvasFactory.create(Q,i);const{canvas:N,context:e}=this.annotationCanvas;this.annotationCanvasMap.set(l,N),this.annotationCanvas.savedCtx=this.ctx,this.ctx=e,this.ctx.save(),this.ctx.setTransform(s,0,0,-n,0,W*n),is(this.ctx)}else is(this.ctx),this.endPath(),this.ctx.rect(d[0],d[1],c,W),this.ctx.clip(),this.ctx.beginPath()}this.current=new YN(this.ctx.canvas.width,this.ctx.canvas.height),this.transform(...Z),this.transform(...t)}endAnnotation(){this.annotationCanvas&&(this.ctx.restore(),h(this,_Z,yi).call(this),this.ctx=this.annotationCanvas.savedCtx,delete this.annotationCanvas.savedCtx,delete this.annotationCanvas)}paintImageMaskXObject(l){if(!this.contentVisible)return;const d=l.count;l=this.getObject(l.data,l),l.count=d;const Z=this.ctx,t=this.processingType3;if(t&&(t.compiled===void 0&&(t.compiled=I2(l)),t.compiled)){t.compiled(Z);return}const F=this._createMaskCanvas(l),c=F.canvas;Z.save(),Z.setTransform(1,0,0,1,0,0),Z.drawImage(c,F.offsetX,F.offsetY),Z.restore(),this.compose()}paintImageMaskXObjectRepeat(l,d,Z=0,t=0,F,c){if(!this.contentVisible)return;l=this.getObject(l.data,l);const W=this.ctx;W.save();const s=Bl(W);W.transform(d,Z,t,F,0,0);const n=this._createMaskCanvas(l);W.setTransform(1,0,0,1,n.offsetX-s[4],n.offsetY-s[5]);for(let V=0,Q=c.length;VQ?V/Q:1,W=n>Q?n/Q:1}}this._cachedScaleForStroking[0]=c,this._cachedScaleForStroking[1]=W}return this._cachedScaleForStroking}rescaleAndStroke(l){const{ctx:d}=this,{lineWidth:Z}=this.current,[t,F]=this.getScaleForStroking();if(d.lineWidth=Z||1,t===1&&F===1){d.stroke();return}const c=d.getLineDash();if(l&&d.save(),d.scale(t,F),c.length>0){const W=Math.max(t,F);d.setLineDash(c.map(s=>s/W)),d.lineDashOffset/=W}d.stroke(),l&&d.restore()}isContentVisible(){for(let l=this.markedContentStack.length-1;l>=0;l--)if(!this.markedContentStack[l].visible)return!1;return!0}};_Z=new WeakSet,oi=function(){for(;this.stateStack.length||this.inSMaskMode;)this.restore();this.current.activeSMask=null,this.ctx.restore(),this.transparentCanvas&&(this.ctx=this.compositeCtx,this.ctx.save(),this.ctx.setTransform(1,0,0,1,0,0),this.ctx.drawImage(this.transparentCanvas,0,0),this.ctx.restore(),this.transparentCanvas=null)},yi=function(){if(this.pageColors){const U=this.filterFactory.addHCMFilter(this.pageColors.foreground,this.pageColors.background);if(U!=="none"){const l=this.ctx.filter;this.ctx.filter=U,this.ctx.drawImage(this.ctx.canvas,0,0),this.ctx.filter=l}}},ki=function(U,l,d){const Z=new Path2D;return Z.addPath(U,new DOMMatrix(d).invertSelf().multiplySelf(l)),Z};let tn=C2;for(const U in yU)tn.prototype[U]!==void 0&&(tn.prototype[yU[U]]=tn.prototype[U]);var Rs,Ns,hs;let f0=(Rs=class{static get workerPort(){return a(this,Ns)}static set workerPort(U){if(!(typeof Worker<"u"&&U instanceof Worker)&&U!==null)throw new Error("Invalid `workerPort` type.");R(this,Ns,U)}static get workerSrc(){return a(this,hs)}static set workerSrc(U){if(typeof U!="string")throw new Error("Invalid `workerSrc` type.");R(this,hs,U)}},Ns=new WeakMap,hs=new WeakMap,b(Rs,Ns,null),b(Rs,hs,""),Rs);var X0,Fn;class r2{constructor({parsedData:l,rawData:d}){b(this,X0),b(this,Fn),R(this,X0,l),R(this,Fn,d)}getRaw(){return a(this,Fn)}get(l){return a(this,X0).get(l)??null}getAll(){return LR(a(this,X0))}has(l){return a(this,X0).has(l)}}X0=new WeakMap,Fn=new WeakMap;const p0=Symbol("INTERNAL");var cn,an,Wn,ba;class x2{constructor(l,{name:d,intent:Z,usage:t,rbGroups:F}){b(this,cn,!1),b(this,an,!1),b(this,Wn,!1),b(this,ba,!0),R(this,cn,!!(l&dU.DISPLAY)),R(this,an,!!(l&dU.PRINT)),this.name=d,this.intent=Z,this.usage=t,this.rbGroups=F}get visible(){if(a(this,Wn))return a(this,ba);if(!a(this,ba))return!1;const{print:l,view:d}=this.usage;return a(this,cn)?(d==null?void 0:d.viewState)!=="OFF":a(this,an)?(l==null?void 0:l.printState)!=="OFF":!0}_setVisible(l,d,Z=!1){l!==p0&&Gl("Internal method `_setVisible` called."),R(this,Wn,Z),R(this,ba,d)}}cn=new WeakMap,an=new WeakMap,Wn=new WeakMap,ba=new WeakMap;var ZF,Jl,ma,Ma,BV,zi;class j2{constructor(l,d=dU.DISPLAY){if(b(this,BV),b(this,ZF,null),b(this,Jl,new Map),b(this,ma,null),b(this,Ma,null),this.renderingIntent=d,this.name=null,this.creator=null,l!==null){this.name=l.name,this.creator=l.creator,R(this,Ma,l.order);for(const Z of l.groups)a(this,Jl).set(Z.id,new x2(d,Z));if(l.baseState==="OFF")for(const Z of a(this,Jl).values())Z._setVisible(p0,!1);for(const Z of l.on)a(this,Jl).get(Z)._setVisible(p0,!0);for(const Z of l.off)a(this,Jl).get(Z)._setVisible(p0,!1);R(this,ma,this.getHash())}}isVisible(l){if(a(this,Jl).size===0)return!0;if(!l)return UQ("Optional content group not defined."),!0;if(l.type==="OCG")return a(this,Jl).has(l.id)?a(this,Jl).get(l.id).visible:(dl(`Optional content group not found: ${l.id}`),!0);if(l.type==="OCMD"){if(l.expression)return h(this,BV,zi).call(this,l.expression);if(!l.policy||l.policy==="AnyOn"){for(const d of l.ids){if(!a(this,Jl).has(d))return dl(`Optional content group not found: ${d}`),!0;if(a(this,Jl).get(d).visible)return!0}return!1}else if(l.policy==="AllOn"){for(const d of l.ids){if(!a(this,Jl).has(d))return dl(`Optional content group not found: ${d}`),!0;if(!a(this,Jl).get(d).visible)return!1}return!0}else if(l.policy==="AnyOff"){for(const d of l.ids){if(!a(this,Jl).has(d))return dl(`Optional content group not found: ${d}`),!0;if(!a(this,Jl).get(d).visible)return!0}return!1}else if(l.policy==="AllOff"){for(const d of l.ids){if(!a(this,Jl).has(d))return dl(`Optional content group not found: ${d}`),!0;if(a(this,Jl).get(d).visible)return!1}return!0}return dl(`Unknown optional content policy ${l.policy}.`),!0}return dl(`Unknown group type ${l.type}.`),!0}setVisibility(l,d=!0,Z=!0){var t;const F=a(this,Jl).get(l);if(!F){dl(`Optional content group not found: ${l}`);return}if(Z&&d&&F.rbGroups.length)for(const c of F.rbGroups)for(const W of c)W!==l&&((t=a(this,Jl).get(W))==null||t._setVisible(p0,!1,!0));F._setVisible(p0,!!d,!0),R(this,ZF,null)}setOCGState({state:l,preserveRB:d}){let Z;for(const t of l){switch(t){case"ON":case"OFF":case"Toggle":Z=t;continue}const F=a(this,Jl).get(t);if(F)switch(Z){case"ON":this.setVisibility(t,!0,d);break;case"OFF":this.setVisibility(t,!1,d);break;case"Toggle":this.setVisibility(t,!F.visible,d);break}}R(this,ZF,null)}get hasInitialVisibility(){return a(this,ma)===null||this.getHash()===a(this,ma)}getOrder(){return a(this,Jl).size?a(this,Ma)?a(this,Ma).slice():[...a(this,Jl).keys()]:null}getGroups(){return a(this,Jl).size>0?LR(a(this,Jl)):null}getGroup(l){return a(this,Jl).get(l)||null}getHash(){if(a(this,ZF)!==null)return a(this,ZF);const l=new Ve;for(const[d,Z]of a(this,Jl))l.update(`${d}:${Z.visible}`);return R(this,ZF,l.hexdigest())}}ZF=new WeakMap,Jl=new WeakMap,ma=new WeakMap,Ma=new WeakMap,BV=new WeakSet,zi=function(U){const l=U.length;if(l<2)return!0;const d=U[0];for(let Z=1;Z0){const s=F instanceof Uint8Array&&F.byteLength===F.buffer.byteLength?F.buffer:new Uint8Array(F).buffer;this._queuedChunks.push(s)}this._pdfDataRangeTransport=l,this._isStreamingSupported=!Z,this._isRangeSupported=!d,this._contentLength=t,this._fullRequestReader=null,this._rangeReaders=[],l.addRangeListener((s,n)=>{this._onReceiveData({begin:s,chunk:n})}),l.addProgressListener((s,n)=>{this._onProgress({loaded:s,total:n})}),l.addProgressiveReadListener(s=>{this._onReceiveData({chunk:s})}),l.addProgressiveDoneListener(()=>{this._onProgressiveDone()}),l.transportReady()}_onReceiveData({begin:l,chunk:d}){const Z=d instanceof Uint8Array&&d.byteLength===d.buffer.byteLength?d.buffer:new Uint8Array(d).buffer;if(l===void 0)this._fullRequestReader?this._fullRequestReader._enqueue(Z):this._queuedChunks.push(Z);else{const t=this._rangeReaders.some(function(F){return F._begin!==l?!1:(F._enqueue(Z),!0)});Al(t,"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.")}}get _progressiveDataLength(){var l;return((l=this._fullRequestReader)==null?void 0:l._loaded)??0}_onProgress(l){var d,Z,t,F;l.total===void 0?(Z=(d=this._rangeReaders[0])==null?void 0:d.onProgress)==null||Z.call(d,{loaded:l.loaded}):(F=(t=this._fullRequestReader)==null?void 0:t.onProgress)==null||F.call(t,{loaded:l.loaded,total:l.total})}_onProgressiveDone(){var l;(l=this._fullRequestReader)==null||l.progressiveDone(),this._progressiveDone=!0}_removeRangeReader(l){const d=this._rangeReaders.indexOf(l);d>=0&&this._rangeReaders.splice(d,1)}getFullReader(){Al(!this._fullRequestReader,"PDFDataTransportStream.getFullReader can only be called once.");const l=this._queuedChunks;return this._queuedChunks=null,new g2(this,l,this._progressiveDone,this._contentDispositionFilename)}getRangeReader(l,d){if(d<=this._progressiveDataLength)return null;const Z=new K2(this,l,d);return this._pdfDataRangeTransport.requestDataRange(l,d),this._rangeReaders.push(Z),Z}cancelAllRequests(l){var d;(d=this._fullRequestReader)==null||d.cancel(l);for(const Z of this._rangeReaders.slice(0))Z.cancel(l);this._pdfDataRangeTransport.abort()}}class g2{constructor(l,d,Z=!1,t=null){this._stream=l,this._done=Z||!1,this._filename=ER(t)?t:null,this._queuedChunks=d||[],this._loaded=0;for(const F of this._queuedChunks)this._loaded+=F.byteLength;this._requests=[],this._headersReady=Promise.resolve(),l._fullRequestReader=this,this.onProgress=null}_enqueue(l){this._done||(this._requests.length>0?this._requests.shift().resolve({value:l,done:!1}):this._queuedChunks.push(l),this._loaded+=l.byteLength)}get headersReady(){return this._headersReady}get filename(){return this._filename}get isRangeSupported(){return this._stream._isRangeSupported}get isStreamingSupported(){return this._stream._isStreamingSupported}get contentLength(){return this._stream._contentLength}async read(){if(this._queuedChunks.length>0)return{value:this._queuedChunks.shift(),done:!1};if(this._done)return{value:void 0,done:!0};const l=Promise.withResolvers();return this._requests.push(l),l.promise}cancel(l){this._done=!0;for(const d of this._requests)d.resolve({value:void 0,done:!0});this._requests.length=0}progressiveDone(){this._done||(this._done=!0)}}class K2{constructor(l,d,Z){this._stream=l,this._begin=d,this._end=Z,this._queuedChunk=null,this._requests=[],this._done=!1,this.onProgress=null}_enqueue(l){if(!this._done){if(this._requests.length===0)this._queuedChunk=l;else{this._requests.shift().resolve({value:l,done:!1});for(const d of this._requests)d.resolve({value:void 0,done:!0});this._requests.length=0}this._done=!0,this._stream._removeRangeReader(this)}}get isStreamingSupported(){return!1}async read(){if(this._queuedChunk){const d=this._queuedChunk;return this._queuedChunk=null,{value:d,done:!1}}if(this._done)return{value:void 0,done:!0};const l=Promise.withResolvers();return this._requests.push(l),l.promise}cancel(l){this._done=!0;for(const d of this._requests)d.resolve({value:void 0,done:!0});this._requests.length=0,this._stream._removeRangeReader(this)}}function v2(U){let l=!0,d=Z("filename\\*","i").exec(U);if(d){d=d[1];let V=W(d);return V=unescape(V),V=s(V),V=n(V),F(V)}if(d=c(U),d){const V=n(d);return F(V)}if(d=Z("filename","i").exec(U),d){d=d[1];let V=W(d);return V=n(V),F(V)}function Z(V,Q){return new RegExp("(?:^|;)\\s*"+V+'\\s*=\\s*([^";\\s][^;\\s]*|"(?:[^"\\\\]|\\\\"?)+"?)',Q)}function t(V,Q){if(V){if(!/^[\x00-\xFF]+$/.test(Q))return Q;try{const i=new TextDecoder(V,{fatal:!0}),N=ZQ(Q);Q=i.decode(N),l=!1}catch{}}return Q}function F(V){return l&&/[\x80-\xff]/.test(V)&&(V=t("utf-8",V),l&&(V=t("iso-8859-1",V))),V}function c(V){const Q=[];let i;const N=Z("filename\\*((?!0\\d)\\d+)(\\*?)","ig");for(;(i=N.exec(V))!==null;){let[,m,M,J]=i;if(m=parseInt(m,10),m in Q){if(m===0)break;continue}Q[m]=[M,J]}const e=[];for(let m=0;m{if(l._responseOrigin=cQ(F.url),!Be(F.status))throw aQ(F.status,t);this._reader=F.body.getReader(),this._headersCapability.resolve();const c=F.headers,{allowRangeRequests:W,suggestedLength:s}=ue({responseHeaders:c,isHttp:l.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});this._isRangeSupported=W,this._contentLength=s||this._contentLength,this._filename=Ye(c),!this._isStreamingSupported&&this._isRangeSupported&&this.cancel(new Bt("Streaming is disabled."))}).catch(this._headersCapability.reject),this.onProgress=null}get headersReady(){return this._headersCapability.promise}get filename(){return this._filename}get contentLength(){return this._contentLength}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}async read(){var l;await this._headersCapability.promise;const{value:d,done:Z}=await this._reader.read();return Z?{value:d,done:Z}:(this._loaded+=d.byteLength,(l=this.onProgress)==null||l.call(this,{loaded:this._loaded,total:this._contentLength}),{value:ye(d),done:!1})}cancel(l){var d;(d=this._reader)==null||d.cancel(l),this._abortController.abort()}}class P2{constructor(l,d,Z){this._stream=l,this._reader=null,this._loaded=0;const t=l.source;this._withCredentials=t.withCredentials||!1,this._readCapability=Promise.withResolvers(),this._isStreamingSupported=!t.disableStream,this._abortController=new AbortController;const F=new Headers(l.headers);F.append("Range",`bytes=${d}-${Z-1}`);const c=t.url;fetch(c,oe(F,this._withCredentials,this._abortController)).then(W=>{const s=cQ(W.url);if(s!==l._responseOrigin)throw new Error(`Expected range response-origin "${s}" to match "${l._responseOrigin}".`);if(!Be(W.status))throw aQ(W.status,c);this._readCapability.resolve(),this._reader=W.body.getReader()}).catch(this._readCapability.reject),this.onProgress=null}get isStreamingSupported(){return this._isStreamingSupported}async read(){var l;await this._readCapability.promise;const{value:d,done:Z}=await this._reader.read();return Z?{value:d,done:Z}:(this._loaded+=d.byteLength,(l=this.onProgress)==null||l.call(this,{loaded:this._loaded}),{value:ye(d),done:!1})}cancel(l){var d;(d=this._reader)==null||d.cancel(l),this._abortController.abort()}}const BQ=200,oQ=206;function f2(U){const l=U.response;return typeof l!="string"?l:ZQ(l).buffer}class A2{constructor({url:l,httpHeaders:d,withCredentials:Z}){f(this,"_responseOrigin",null),this.url=l,this.isHttp=/^https?:/i.test(l),this.headers=pe(this.isHttp,d),this.withCredentials=Z||!1,this.currXhrId=0,this.pendingRequests=Object.create(null)}request(l){const d=new XMLHttpRequest,Z=this.currXhrId++,t=this.pendingRequests[Z]={xhr:d};d.open("GET",this.url),d.withCredentials=this.withCredentials;for(const[F,c]of this.headers)d.setRequestHeader(F,c);return this.isHttp&&"begin"in l&&"end"in l?(d.setRequestHeader("Range",`bytes=${l.begin}-${l.end-1}`),t.expectedStatus=oQ):t.expectedStatus=BQ,d.responseType="arraybuffer",Al(l.onError,"Expected `onError` callback to be provided."),d.onerror=()=>{l.onError(d.status)},d.onreadystatechange=this.onStateChange.bind(this,Z),d.onprogress=this.onProgress.bind(this,Z),t.onHeadersReceived=l.onHeadersReceived,t.onDone=l.onDone,t.onError=l.onError,t.onProgress=l.onProgress,d.send(null),Z}onProgress(l,d){var Z;const t=this.pendingRequests[l];t&&((Z=t.onProgress)==null||Z.call(t,d))}onStateChange(l,d){const Z=this.pendingRequests[l];if(!Z)return;const t=Z.xhr;if(t.readyState>=2&&Z.onHeadersReceived&&(Z.onHeadersReceived(),delete Z.onHeadersReceived),t.readyState!==4||!(l in this.pendingRequests))return;if(delete this.pendingRequests[l],t.status===0&&this.isHttp){Z.onError(t.status);return}const F=t.status||BQ;if(!(F===BQ&&Z.expectedStatus===oQ)&&F!==Z.expectedStatus){Z.onError(t.status);return}const c=f2(t);if(F===oQ){const W=t.getResponseHeader("Content-Range"),s=/bytes (\d+)-(\d+)\/(\d+)/.exec(W);s?Z.onDone({begin:parseInt(s[1],10),chunk:c}):(dl('Missing or invalid "Content-Range" header.'),Z.onError(0))}else c?Z.onDone({begin:0,chunk:c}):Z.onError(t.status)}getRequestXhr(l){return this.pendingRequests[l].xhr}isPendingRequest(l){return l in this.pendingRequests}abortRequest(l){const d=this.pendingRequests[l].xhr;delete this.pendingRequests[l],d.abort()}}class _2{constructor(l){this._source=l,this._manager=new A2(l),this._rangeChunkSize=l.rangeChunkSize,this._fullRequestReader=null,this._rangeRequestReaders=[]}_onRangeRequestReaderClosed(l){const d=this._rangeRequestReaders.indexOf(l);d>=0&&this._rangeRequestReaders.splice(d,1)}getFullReader(){return Al(!this._fullRequestReader,"PDFNetworkStream.getFullReader can only be called once."),this._fullRequestReader=new q2(this._manager,this._source),this._fullRequestReader}getRangeReader(l,d){const Z=new $2(this._manager,l,d);return Z.onClosed=this._onRangeRequestReaderClosed.bind(this),this._rangeRequestReaders.push(Z),Z}cancelAllRequests(l){var d;(d=this._fullRequestReader)==null||d.cancel(l);for(const Z of this._rangeRequestReaders.slice(0))Z.cancel(l)}}class q2{constructor(l,d){this._manager=l,this._url=d.url,this._fullRequestId=l.request({onHeadersReceived:this._onHeadersReceived.bind(this),onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)}),this._headersCapability=Promise.withResolvers(),this._disableRange=d.disableRange||!1,this._contentLength=d.length,this._rangeChunkSize=d.rangeChunkSize,!this._rangeChunkSize&&!this._disableRange&&(this._disableRange=!0),this._isStreamingSupported=!1,this._isRangeSupported=!1,this._cachedChunks=[],this._requests=[],this._done=!1,this._storedError=void 0,this._filename=null,this.onProgress=null}_onHeadersReceived(){const l=this._fullRequestId,d=this._manager.getRequestXhr(l);this._manager._responseOrigin=cQ(d.responseURL);const Z=d.getAllResponseHeaders(),t=new Headers(Z?Z.trimStart().replace(/[^\S ]+$/,"").split(/[\r\n]+/).map(W=>{const[s,...n]=W.split(": ");return[s,n.join(": ")]}):[]),{allowRangeRequests:F,suggestedLength:c}=ue({responseHeaders:t,isHttp:this._manager.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});F&&(this._isRangeSupported=!0),this._contentLength=c||this._contentLength,this._filename=Ye(t),this._isRangeSupported&&this._manager.abortRequest(l),this._headersCapability.resolve()}_onDone(l){if(l&&(this._requests.length>0?this._requests.shift().resolve({value:l.chunk,done:!1}):this._cachedChunks.push(l.chunk)),this._done=!0,!(this._cachedChunks.length>0)){for(const d of this._requests)d.resolve({value:void 0,done:!0});this._requests.length=0}}_onError(l){this._storedError=aQ(l,this._url),this._headersCapability.reject(this._storedError);for(const d of this._requests)d.reject(this._storedError);this._requests.length=0,this._cachedChunks.length=0}_onProgress(l){var d;(d=this.onProgress)==null||d.call(this,{loaded:l.loaded,total:l.lengthComputable?l.total:this._contentLength})}get filename(){return this._filename}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}get contentLength(){return this._contentLength}get headersReady(){return this._headersCapability.promise}async read(){if(await this._headersCapability.promise,this._storedError)throw this._storedError;if(this._cachedChunks.length>0)return{value:this._cachedChunks.shift(),done:!1};if(this._done)return{value:void 0,done:!0};const l=Promise.withResolvers();return this._requests.push(l),l.promise}cancel(l){this._done=!0,this._headersCapability.reject(l);for(const d of this._requests)d.resolve({value:void 0,done:!0});this._requests.length=0,this._manager.isPendingRequest(this._fullRequestId)&&this._manager.abortRequest(this._fullRequestId),this._fullRequestReader=null}}class $2{constructor(l,d,Z){this._manager=l,this._url=l.url,this._requestId=l.request({begin:d,end:Z,onHeadersReceived:this._onHeadersReceived.bind(this),onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)}),this._requests=[],this._queuedChunk=null,this._done=!1,this._storedError=void 0,this.onProgress=null,this.onClosed=null}_onHeadersReceived(){var l;const d=cQ((l=this._manager.getRequestXhr(this._requestId))==null?void 0:l.responseURL);d!==this._manager._responseOrigin&&(this._storedError=new Error(`Expected range response-origin "${d}" to match "${this._manager._responseOrigin}".`),this._onError(0))}_close(){var l;(l=this.onClosed)==null||l.call(this,this)}_onDone(l){const d=l.chunk;this._requests.length>0?this._requests.shift().resolve({value:d,done:!1}):this._queuedChunk=d,this._done=!0;for(const Z of this._requests)Z.resolve({value:void 0,done:!0});this._requests.length=0,this._close()}_onError(l){this._storedError??(this._storedError=aQ(l,this._url));for(const d of this._requests)d.reject(this._storedError);this._requests.length=0,this._queuedChunk=null}_onProgress(l){var d;this.isStreamingSupported||(d=this.onProgress)==null||d.call(this,{loaded:l.loaded})}get isStreamingSupported(){return!1}async read(){if(this._storedError)throw this._storedError;if(this._queuedChunk!==null){const d=this._queuedChunk;return this._queuedChunk=null,{value:d,done:!1}}if(this._done)return{value:void 0,done:!0};const l=Promise.withResolvers();return this._requests.push(l),l.promise}cancel(l){this._done=!0;for(const d of this._requests)d.resolve({value:void 0,done:!0});this._requests.length=0,this._manager.isPendingRequest(this._requestId)&&this._manager.abortRequest(this._requestId),this._close()}}const lM=/^[a-z][a-z0-9\-+.]+:/i;function dM(U){if(lM.test(U))return new URL(U);const l=process.getBuiltinModule("url");return new URL(l.pathToFileURL(U))}class UM{constructor(l){this.source=l,this.url=dM(l.url),Al(this.url.protocol==="file:","PDFNodeStream only supports file:// URLs."),this._fullRequestReader=null,this._rangeRequestReaders=[]}get _progressiveDataLength(){var l;return((l=this._fullRequestReader)==null?void 0:l._loaded)??0}getFullReader(){return Al(!this._fullRequestReader,"PDFNodeStream.getFullReader can only be called once."),this._fullRequestReader=new ZM(this),this._fullRequestReader}getRangeReader(l,d){if(d<=this._progressiveDataLength)return null;const Z=new tM(this,l,d);return this._rangeRequestReaders.push(Z),Z}cancelAllRequests(l){var d;(d=this._fullRequestReader)==null||d.cancel(l);for(const Z of this._rangeRequestReaders.slice(0))Z.cancel(l)}}class ZM{constructor(l){this._url=l.url,this._done=!1,this._storedError=null,this.onProgress=null;const d=l.source;this._contentLength=d.length,this._loaded=0,this._filename=null,this._disableRange=d.disableRange||!1,this._rangeChunkSize=d.rangeChunkSize,!this._rangeChunkSize&&!this._disableRange&&(this._disableRange=!0),this._isStreamingSupported=!d.disableStream,this._isRangeSupported=!d.disableRange,this._readableStream=null,this._readCapability=Promise.withResolvers(),this._headersCapability=Promise.withResolvers();const Z=process.getBuiltinModule("fs");Z.promises.lstat(this._url).then(t=>{this._contentLength=t.size,this._setReadableStream(Z.createReadStream(this._url)),this._headersCapability.resolve()},t=>{t.code==="ENOENT"&&(t=new zW(`Missing PDF "${this._url}".`)),this._storedError=t,this._headersCapability.reject(t)})}get headersReady(){return this._headersCapability.promise}get filename(){return this._filename}get contentLength(){return this._contentLength}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}async read(){var l;if(await this._readCapability.promise,this._done)return{value:void 0,done:!0};if(this._storedError)throw this._storedError;const d=this._readableStream.read();return d===null?(this._readCapability=Promise.withResolvers(),this.read()):(this._loaded+=d.length,(l=this.onProgress)==null||l.call(this,{loaded:this._loaded,total:this._contentLength}),{value:new Uint8Array(d).buffer,done:!1})}cancel(l){if(!this._readableStream){this._error(l);return}this._readableStream.destroy(l)}_error(l){this._storedError=l,this._readCapability.resolve()}_setReadableStream(l){this._readableStream=l,l.on("readable",()=>{this._readCapability.resolve()}),l.on("end",()=>{l.destroy(),this._done=!0,this._readCapability.resolve()}),l.on("error",d=>{this._error(d)}),!this._isStreamingSupported&&this._isRangeSupported&&this._error(new Bt("streaming is disabled")),this._storedError&&this._readableStream.destroy(this._storedError)}}class tM{constructor(l,d,Z){this._url=l.url,this._done=!1,this._storedError=null,this.onProgress=null,this._loaded=0,this._readableStream=null,this._readCapability=Promise.withResolvers();const t=l.source;this._isStreamingSupported=!t.disableStream;const F=process.getBuiltinModule("fs");this._setReadableStream(F.createReadStream(this._url,{start:d,end:Z-1}))}get isStreamingSupported(){return this._isStreamingSupported}async read(){var l;if(await this._readCapability.promise,this._done)return{value:void 0,done:!0};if(this._storedError)throw this._storedError;const d=this._readableStream.read();return d===null?(this._readCapability=Promise.withResolvers(),this.read()):(this._loaded+=d.length,(l=this.onProgress)==null||l.call(this,{loaded:this._loaded}),{value:new Uint8Array(d).buffer,done:!1})}cancel(l){if(!this._readableStream){this._error(l);return}this._readableStream.destroy(l)}_error(l){this._storedError=l,this._readCapability.resolve()}_setReadableStream(l){this._readableStream=l,l.on("readable",()=>{this._readCapability.resolve()}),l.on("end",()=>{l.destroy(),this._done=!0,this._readCapability.resolve()}),l.on("error",d=>{this._error(d)}),this._storedError&&this._readableStream.destroy(this._storedError)}}const FM=1e5,Dd=30,cM=.8;var LN,jt,Hd,es,bs,Ot,jZ,ms,Ms,d0,Ec,wc,gt,Cc,Js,rc,U0,Gs,Ss,ql,Z0,t0,Ts,Kt,xc,F0,IN,DN,yQ,sZ,Xs,kQ,EN,wN;let Li=(ql=class{constructor({textContentSource:U,container:l,viewport:d}){b(this,F0),b(this,jt,Promise.withResolvers()),b(this,Hd,null),b(this,es,!1),b(this,bs,!!((LN=globalThis.FontInspector)!=null&&LN.enabled)),b(this,Ot,null),b(this,jZ,null),b(this,ms,0),b(this,Ms,0),b(this,d0,null),b(this,Ec,null),b(this,wc,0),b(this,gt,0),b(this,Cc,Object.create(null)),b(this,Js,[]),b(this,rc,null),b(this,U0,[]),b(this,Gs,new WeakMap),b(this,Ss,null);var Z;if(U instanceof ReadableStream)R(this,rc,U);else if(typeof U=="object")R(this,rc,new ReadableStream({start(s){s.enqueue(U),s.close()}}));else throw new Error('No "textContentSource" parameter specified.');R(this,Hd,R(this,Ec,l)),R(this,gt,d.scale*(globalThis.devicePixelRatio||1)),R(this,wc,d.rotation),R(this,jZ,{div:null,properties:null,ctx:null});const{pageWidth:t,pageHeight:F,pageX:c,pageY:W}=d.rawDims;R(this,Ss,[1,0,0,-1,-c,W+F]),R(this,Ms,t),R(this,ms,F),h(Z=ql,sZ,EN).call(Z),wF(l,d),a(this,jt).promise.finally(()=>{a(ql,xc).delete(this),R(this,jZ,null),R(this,Cc,null)}).catch(()=>{})}static get fontFamilyMap(){const{isWindows:U,isFirefox:l}=Id.platform;return tl(this,"fontFamilyMap",new Map([["sans-serif",`${U&&l?"Calibri, ":""}sans-serif`],["monospace",`${U&&l?"Lucida Console, ":""}monospace`]]))}render(){const U=()=>{a(this,d0).read().then(({value:l,done:d})=>{if(d){a(this,jt).resolve();return}a(this,Ot)??R(this,Ot,l.lang),Object.assign(a(this,Cc),l.styles),h(this,F0,IN).call(this,l.items),U()},a(this,jt).reject)};return R(this,d0,a(this,rc).getReader()),a(ql,xc).add(this),U(),a(this,jt).promise}update({viewport:U,onBefore:l=null}){var d;const Z=U.scale*(globalThis.devicePixelRatio||1),t=U.rotation;if(t!==a(this,wc)&&(l==null||l(),R(this,wc,t),wF(a(this,Ec),{rotation:t})),Z!==a(this,gt)){l==null||l(),R(this,gt,Z);const F={div:null,properties:null,ctx:h(d=ql,sZ,Xs).call(d,a(this,Ot))};for(const c of a(this,U0))F.properties=a(this,Gs).get(c),F.div=c,h(this,F0,yQ).call(this,F)}}cancel(){var U;const l=new Bt("TextLayer task cancelled.");(U=a(this,d0))==null||U.cancel(l).catch(()=>{}),R(this,d0,null),a(this,jt).reject(l)}get textDivs(){return a(this,U0)}get textContentItemsStr(){return a(this,Js)}static cleanup(){if(!(a(this,xc).size>0)){a(this,Z0).clear();for(const{canvas:U}of a(this,t0).values())U.remove();a(this,t0).clear()}}},jt=new WeakMap,Hd=new WeakMap,es=new WeakMap,bs=new WeakMap,Ot=new WeakMap,jZ=new WeakMap,ms=new WeakMap,Ms=new WeakMap,d0=new WeakMap,Ec=new WeakMap,wc=new WeakMap,gt=new WeakMap,Cc=new WeakMap,Js=new WeakMap,rc=new WeakMap,U0=new WeakMap,Gs=new WeakMap,Ss=new WeakMap,Z0=new WeakMap,t0=new WeakMap,Ts=new WeakMap,Kt=new WeakMap,xc=new WeakMap,F0=new WeakSet,IN=function(U){var l,d;if(a(this,es))return;(d=a(this,jZ)).ctx??(d.ctx=h(l=ql,sZ,Xs).call(l,a(this,Ot)));const Z=a(this,U0),t=a(this,Js);for(const F of U){if(Z.length>FM){dl("Ignoring additional textDivs for performance reasons."),R(this,es,!0);return}if(F.str===void 0){if(F.type==="beginMarkedContentProps"||F.type==="beginMarkedContent"){const c=a(this,Hd);R(this,Hd,document.createElement("span")),a(this,Hd).classList.add("markedContent"),F.id!==null&&a(this,Hd).setAttribute("id",`${F.id}`),c.append(a(this,Hd))}else F.type==="endMarkedContent"&&R(this,Hd,a(this,Hd).parentNode);continue}t.push(F.str),h(this,F0,DN).call(this,F)}},DN=function(U){var l;const d=document.createElement("span"),Z={angle:0,canvasWidth:0,hasText:U.str!=="",hasEOL:U.hasEOL,fontSize:0};a(this,U0).push(d);const t=O.transform(a(this,Ss),U.transform);let F=Math.atan2(t[1],t[0]);const c=a(this,Cc)[U.fontName];c.vertical&&(F+=Math.PI/2);let W=a(this,bs)&&c.fontSubstitution||c.fontFamily;W=ql.fontFamilyMap.get(W)||W;const s=Math.hypot(t[2],t[3]),n=s*h(l=ql,sZ,wN).call(l,W,a(this,Ot));let V,Q;F===0?(V=t[4],Q=t[5]-n):(V=t[4]+n*Math.sin(F),Q=t[5]-n*Math.cos(F));const i="calc(var(--scale-factor)*",N=d.style;a(this,Hd)===a(this,Ec)?(N.left=`${(100*V/a(this,Ms)).toFixed(2)}%`,N.top=`${(100*Q/a(this,ms)).toFixed(2)}%`):(N.left=`${i}${V.toFixed(2)}px)`,N.top=`${i}${Q.toFixed(2)}px)`),N.fontSize=`${i}${(a(ql,Kt)*s).toFixed(2)}px)`,N.fontFamily=W,Z.fontSize=s,d.setAttribute("role","presentation"),d.textContent=U.str,d.dir=U.dir,a(this,bs)&&(d.dataset.fontName=c.fontSubstitutionLoadedName||U.fontName),F!==0&&(Z.angle=F*(180/Math.PI));let e=!1;if(U.str.length>1)e=!0;else if(U.str!==" "&&U.transform[0]!==U.transform[3]){const m=Math.abs(U.transform[0]),M=Math.abs(U.transform[3]);m!==M&&Math.max(m,M)/Math.min(m,M)>1.5&&(e=!0)}if(e&&(Z.canvasWidth=c.vertical?U.height:U.width),a(this,Gs).set(d,Z),a(this,jZ).div=d,a(this,jZ).properties=Z,h(this,F0,yQ).call(this,a(this,jZ)),Z.hasText&&a(this,Hd).append(d),Z.hasEOL){const m=document.createElement("br");m.setAttribute("role","presentation"),a(this,Hd).append(m)}},yQ=function(U){var l;const{div:d,properties:Z,ctx:t}=U,{style:F}=d;let c="";if(a(ql,Kt)>1&&(c=`scale(${1/a(ql,Kt)})`),Z.canvasWidth!==0&&Z.hasText){const{fontFamily:W}=F,{canvasWidth:s,fontSize:n}=Z;h(l=ql,sZ,kQ).call(l,t,n*a(this,gt),W);const{width:V}=t.measureText(d.textContent);V>0&&(c=`scaleX(${s*a(this,gt)/V}) ${c}`)}Z.angle!==0&&(c=`rotate(${Z.angle}deg) ${c}`),c.length>0&&(F.transform=c)},sZ=new WeakSet,Xs=function(U=null){let l=a(this,t0).get(U||(U=""));if(!l){const d=document.createElement("canvas");d.className="hiddenCanvasElement",d.lang=U,document.body.append(d),l=d.getContext("2d",{alpha:!1,willReadFrequently:!0}),a(this,t0).set(U,l),a(this,Ts).set(l,{size:0,family:""})}return l},kQ=function(U,l,d){const Z=a(this,Ts).get(U);l===Z.size&&d===Z.family||(U.font=`${l}px ${d}`,Z.size=l,Z.family=d)},EN=function(){if(a(this,Kt)!==null)return;const U=document.createElement("div");U.style.opacity=0,U.style.lineHeight=1,U.style.fontSize="1px",U.style.position="absolute",U.textContent="X",document.body.append(U),R(this,Kt,U.getBoundingClientRect().height),U.remove()},wN=function(U,l){const d=a(this,Z0).get(U);if(d)return d;const Z=h(this,sZ,Xs).call(this,l);Z.canvas.width=Z.canvas.height=Dd,h(this,sZ,kQ).call(this,Z,Dd,U);const t=Z.measureText("");let F=t.fontBoundingBoxAscent,c=Math.abs(t.fontBoundingBoxDescent);if(F){const n=F/(F+c);return a(this,Z0).set(U,n),Z.canvas.width=Z.canvas.height=0,n}Z.strokeStyle="red",Z.clearRect(0,0,Dd,Dd),Z.strokeText("g",0,0);let W=Z.getImageData(0,0,Dd,Dd).data;c=0;for(let n=W.length-1-3;n>=0;n-=4)if(W[n]>0){c=Math.ceil(n/4/Dd);break}Z.clearRect(0,0,Dd,Dd),Z.strokeText("A",0,Dd),W=Z.getImageData(0,0,Dd,Dd).data,F=0;for(let n=0,V=W.length;n0){F=Dd-Math.floor(n/4/Dd);break}Z.canvas.width=Z.canvas.height=0;const s=F?F/(F+c):cM;return a(this,Z0).set(U,s),s},b(ql,sZ),b(ql,Z0,new Map),b(ql,t0,new Map),b(ql,Ts,new WeakMap),b(ql,Kt,null),b(ql,xc,new Set),ql);class IW{static textContent(l){const d=[],Z={items:d,styles:Object.create(null)};function t(F){var c;if(!F)return;let W=null;const s=F.name;if(s==="#text")W=F.value;else if(IW.shouldBuildText(s))(c=F==null?void 0:F.attributes)!=null&&c.textContent?W=F.attributes.textContent:F.value&&(W=F.value);else return;if(W!==null&&d.push({str:W}),!!F.children)for(const n of F.children)t(n)}return t(l),Z}static shouldBuildText(l){return!(l==="textarea"||l==="input"||l==="option"||l==="select")}}const aM=65536,WM=100,sM=5e3,nM=Bd?G2:m2,VM=Bd?S2:ee,QM=Bd?J2:M2,iM=Bd?T2:Je;function RM(U={}){typeof U=="string"||U instanceof URL?U={url:U}:(U instanceof ArrayBuffer||ArrayBuffer.isView(U))&&(U={data:U});const l=new eM,{docId:d}=l,Z=U.url?NM(U.url):null,t=U.data?hM(U.data):null,F=U.httpHeaders||null,c=U.withCredentials===!0,W=U.password??null,s=U.range instanceof Le?U.range:null,n=Number.isInteger(U.rangeChunkSize)&&U.rangeChunkSize>0?U.rangeChunkSize:aM;let V=U.worker instanceof sn?U.worker:null;const Q=U.verbosity,i=typeof U.docBaseUrl=="string"&&!FQ(U.docBaseUrl)?U.docBaseUrl:null,N=typeof U.cMapUrl=="string"?U.cMapUrl:null,e=U.cMapPacked!==!1,m=U.CMapReaderFactory||VM,M=typeof U.standardFontDataUrl=="string"?U.standardFontDataUrl:null,J=U.StandardFontDataFactory||iM,S=U.stopAtErrors!==!0,G=Number.isInteger(U.maxImageSize)&&U.maxImageSize>-1?U.maxImageSize:-1,T=U.isEvalSupported!==!1,p=typeof U.isOffscreenCanvasSupported=="boolean"?U.isOffscreenCanvasSupported:!Bd,u=typeof U.isImageDecoderSupported=="boolean"?U.isImageDecoderSupported:!Bd&&(Id.platform.isFirefox||!globalThis.chrome),Y=Number.isInteger(U.canvasMaxAreaInBytes)?U.canvasMaxAreaInBytes:-1,o=typeof U.disableFontFace=="boolean"?U.disableFontFace:Bd,X=U.fontExtraProperties===!0,B=U.enableXfa===!0,y=U.ownerDocument||globalThis.document,E=U.disableRange===!0,D=U.disableStream===!0,w=U.disableAutoFetch===!0,I=U.pdfBug===!0,L=U.CanvasFactory||nM,g=U.FilterFactory||QM,A=U.enableHWA===!0,Vl=s?s.length:U.length??NaN,Sl=typeof U.useSystemFonts=="boolean"?U.useSystemFonts:!Bd&&!o,Tl=typeof U.useWorkerFetch=="boolean"?U.useWorkerFetch:m===ee&&J===Je&&N&&M&&Fa(N,document.baseURI)&&Fa(M,document.baseURI),Rl=null;Pm(Q);const bl={canvasFactory:new L({ownerDocument:y,enableHWA:A}),filterFactory:new g({docId:d,ownerDocument:y}),cMapReaderFactory:Tl?null:new m({baseUrl:N,isCompressed:e}),standardFontDataFactory:Tl?null:new J({baseUrl:M})};if(!V){const C={verbosity:Q,port:f0.workerPort};V=C.port?sn.fromPort(C):new sn(C),l._worker=V}const FU={docId:d,apiVersion:"4.10.38",data:t,password:W,disableAutoFetch:w,rangeChunkSize:n,length:Vl,docBaseUrl:i,enableXfa:B,evaluatorOptions:{maxImageSize:G,disableFontFace:o,ignoreErrors:S,isEvalSupported:T,isOffscreenCanvasSupported:p,isImageDecoderSupported:u,canvasMaxAreaInBytes:Y,fontExtraProperties:X,useSystemFonts:Sl,cMapUrl:Tl?N:null,standardFontDataUrl:Tl?M:null}},gd={disableFontFace:o,fontExtraProperties:X,ownerDocument:y,pdfBug:I,styleElement:Rl,loadingParams:{disableAutoFetch:w,enableXfa:B}};return V.promise.then(function(){if(l.destroyed)throw new Error("Loading aborted");if(V.destroyed)throw new Error("Worker was destroyed");const C=V.messageHandler.sendWithPromise("GetDocRequest",FU,t?[t.buffer]:null);let z;if(s)z=new O2(s,{disableRange:E,disableStream:D});else if(!t){if(!Z)throw new Error("getDocument - no `url` parameter provided.");let r;if(Bd)if(Fa(Z)){if(typeof fetch>"u"||typeof Response>"u"||!("body"in Response.prototype))throw new Error("getDocument - the Fetch API was disabled in Node.js, see `--no-experimental-fetch`.");r=zN}else r=UM;else r=Fa(Z)?zN:_2;z=new r({url:Z,length:Vl,httpHeaders:F,withCredentials:c,rangeChunkSize:n,disableRange:E,disableStream:D})}return C.then(r=>{if(l.destroyed)throw new Error("Loading aborted");if(V.destroyed)throw new Error("Worker was destroyed");const ll=new Ra(d,r,V.port),hl=new JM(ll,l,z,gd,bl);l._transport=hl,ll.send("Ready",null)})}).catch(l._capability.reject),l}function NM(U){if(U instanceof URL)return U.href;try{return new URL(U,window.location).href}catch{if(Bd&&typeof U=="string")return U}throw new Error("Invalid PDF url data: either string or URL-object is expected in the url property.")}function hM(U){if(Bd&&typeof Buffer<"u"&&U instanceof Buffer)throw new Error("Please provide binary data as `Uint8Array`, rather than `Buffer`.");if(U instanceof Uint8Array&&U.byteLength===U.buffer.byteLength)return U;if(typeof U=="string")return ZQ(U);if(U instanceof ArrayBuffer||ArrayBuffer.isView(U)||typeof U=="object"&&!isNaN(U==null?void 0:U.length))return new Uint8Array(U);throw new Error("Invalid PDF binary data: either TypedArray, string, or array-like object is expected in the data property.")}function CN(U){return typeof U=="object"&&Number.isInteger(U==null?void 0:U.num)&&U.num>=0&&Number.isInteger(U==null?void 0:U.gen)&&U.gen>=0}var Ii;const ke=class ze{constructor(){this._capability=Promise.withResolvers(),this._transport=null,this._worker=null,this.docId=`d${Ld(ze,Ii)._++}`,this.destroyed=!1,this.onPassword=null,this.onProgress=null}get promise(){return this._capability.promise}async destroy(){var l,d,Z,t;this.destroyed=!0;try{(l=this._worker)!=null&&l.port&&(this._worker._pendingDestroy=!0),await((d=this._transport)==null?void 0:d.destroy())}catch(F){throw(Z=this._worker)!=null&&Z.port&&delete this._worker._pendingDestroy,F}this._transport=null,(t=this._worker)==null||t.destroy(),this._worker=null}};Ii=new WeakMap,b(ke,Ii,0);let eM=ke,Le=class{constructor(U,l,d=!1,Z=null){this.length=U,this.initialData=l,this.progressiveDone=d,this.contentDispositionFilename=Z,this._rangeListeners=[],this._progressListeners=[],this._progressiveReadListeners=[],this._progressiveDoneListeners=[],this._readyCapability=Promise.withResolvers()}addRangeListener(U){this._rangeListeners.push(U)}addProgressListener(U){this._progressListeners.push(U)}addProgressiveReadListener(U){this._progressiveReadListeners.push(U)}addProgressiveDoneListener(U){this._progressiveDoneListeners.push(U)}onDataRange(U,l){for(const d of this._rangeListeners)d(U,l)}onDataProgress(U,l){this._readyCapability.promise.then(()=>{for(const d of this._progressListeners)d(U,l)})}onDataProgressiveRead(U){this._readyCapability.promise.then(()=>{for(const l of this._progressiveReadListeners)l(U)})}onDataProgressiveDone(){this._readyCapability.promise.then(()=>{for(const U of this._progressiveDoneListeners)U()})}transportReady(){this._readyCapability.resolve()}requestDataRange(U,l){Gl("Abstract method PDFDataRangeTransport.requestDataRange")}abort(){}};class bM{constructor(l,d){this._pdfInfo=l,this._transport=d}get annotationStorage(){return this._transport.annotationStorage}get canvasFactory(){return this._transport.canvasFactory}get filterFactory(){return this._transport.filterFactory}get numPages(){return this._pdfInfo.numPages}get fingerprints(){return this._pdfInfo.fingerprints}get isPureXfa(){return tl(this,"isPureXfa",!!this._transport._htmlForXfa)}get allXfaHtml(){return this._transport._htmlForXfa}getPage(l){return this._transport.getPage(l)}getPageIndex(l){return this._transport.getPageIndex(l)}getDestinations(){return this._transport.getDestinations()}getDestination(l){return this._transport.getDestination(l)}getPageLabels(){return this._transport.getPageLabels()}getPageLayout(){return this._transport.getPageLayout()}getPageMode(){return this._transport.getPageMode()}getViewerPreferences(){return this._transport.getViewerPreferences()}getOpenAction(){return this._transport.getOpenAction()}getAttachments(){return this._transport.getAttachments()}getJSActions(){return this._transport.getDocJSActions()}getOutline(){return this._transport.getOutline()}getOptionalContentConfig({intent:l="display"}={}){const{renderingIntent:d}=this._transport.getRenderingIntent(l);return this._transport.getOptionalContentConfig(d)}getPermissions(){return this._transport.getPermissions()}getMetadata(){return this._transport.getMetadata()}getMarkInfo(){return this._transport.getMarkInfo()}getData(){return this._transport.getData()}saveDocument(){return this._transport.saveDocument()}getDownloadInfo(){return this._transport.downloadInfoCapability.promise}cleanup(l=!1){return this._transport.startCleanup(l||this.isPureXfa)}destroy(){return this.loadingTask.destroy()}cachedPageNumber(l){return this._transport.cachedPageNumber(l)}get loadingParams(){return this._transport.loadingParams}get loadingTask(){return this._transport.loadingTask}getFieldObjects(){return this._transport.getFieldObjects()}hasJSActions(){return this._transport.hasJSActions()}getCalculationOrderIds(){return this._transport.getCalculationOrderIds()}}var tF,ht,AU,A0,oV;class mM{constructor(l,d,Z,t=!1){b(this,AU),b(this,tF,null),b(this,ht,!1),this._pageIndex=l,this._pageInfo=d,this._transport=Z,this._stats=t?new dN:null,this._pdfBug=t,this.commonObjs=Z.commonObjs,this.objs=new Ie,this._maybeCleanupAfterRender=!1,this._intentStates=new Map,this.destroyed=!1}get pageNumber(){return this._pageIndex+1}get rotate(){return this._pageInfo.rotate}get ref(){return this._pageInfo.ref}get userUnit(){return this._pageInfo.userUnit}get view(){return this._pageInfo.view}getViewport({scale:l,rotation:d=this.rotate,offsetX:Z=0,offsetY:t=0,dontFlip:F=!1}={}){return new wW({viewBox:this.view,userUnit:this.userUnit,scale:l,rotation:d,offsetX:Z,offsetY:t,dontFlip:F})}getAnnotations({intent:l="display"}={}){const{renderingIntent:d}=this._transport.getRenderingIntent(l);return this._transport.getAnnotations(this._pageIndex,d)}getJSActions(){return this._transport.getPageJSActions(this._pageIndex)}get filterFactory(){return this._transport.filterFactory}get isPureXfa(){return tl(this,"isPureXfa",!!this._transport._htmlForXfa)}async getXfa(){var l;return((l=this._transport._htmlForXfa)==null?void 0:l.children[this._pageIndex])||null}render({canvasContext:l,viewport:d,intent:Z="display",annotationMode:t=Rt.ENABLE,transform:F=null,background:c=null,optionalContentConfigPromise:W=null,annotationCanvasMap:s=null,pageColors:n=null,printAnnotationStorage:V=null,isEditing:Q=!1}){var i,N;(i=this._stats)==null||i.time("Overall");const e=this._transport.getRenderingIntent(Z,t,V,Q),{renderingIntent:m,cacheKey:M}=e;R(this,ht,!1),h(this,AU,oV).call(this),W||(W=this._transport.getOptionalContentConfig(m));let J=this._intentStates.get(M);J||(J=Object.create(null),this._intentStates.set(M,J)),J.streamReaderCancelTimeout&&(clearTimeout(J.streamReaderCancelTimeout),J.streamReaderCancelTimeout=null);const S=!!(m&dU.PRINT);J.displayReadyCapability||(J.displayReadyCapability=Promise.withResolvers(),J.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null},(N=this._stats)==null||N.time("Page Request"),this._pumpOperatorList(e));const G=u=>{var Y;J.renderTasks.delete(T),(this._maybeCleanupAfterRender||S)&&R(this,ht,!0),h(this,AU,A0).call(this,!S),u?(T.capability.reject(u),this._abortOperatorList({intentState:J,reason:u instanceof Error?u:new Error(u)})):T.capability.resolve(),this._stats&&(this._stats.timeEnd("Rendering"),this._stats.timeEnd("Overall"),(Y=globalThis.Stats)!=null&&Y.enabled&&globalThis.Stats.add(this.pageNumber,this._stats))},T=new SM({callback:G,params:{canvasContext:l,viewport:d,transform:F,background:c},objs:this.objs,commonObjs:this.commonObjs,annotationCanvasMap:s,operatorList:J.operatorList,pageIndex:this._pageIndex,canvasFactory:this._transport.canvasFactory,filterFactory:this._transport.filterFactory,useRequestAnimationFrame:!S,pdfBug:this._pdfBug,pageColors:n});(J.renderTasks||(J.renderTasks=new Set)).add(T);const p=T.task;return Promise.all([J.displayReadyCapability.promise,W]).then(([u,Y])=>{var o;if(this.destroyed){G();return}if((o=this._stats)==null||o.time("Rendering"),!(Y.renderingIntent&m))throw new Error("Must use the same `intent`-argument when calling the `PDFPageProxy.render` and `PDFDocumentProxy.getOptionalContentConfig` methods.");T.initializeGraphics({transparency:u,optionalContentConfig:Y}),T.operatorListChanged()}).catch(G),p}getOperatorList({intent:l="display",annotationMode:d=Rt.ENABLE,printAnnotationStorage:Z=null,isEditing:t=!1}={}){var F;function c(){s.operatorList.lastChunk&&(s.opListReadCapability.resolve(s.operatorList),s.renderTasks.delete(n))}const W=this._transport.getRenderingIntent(l,d,Z,t,!0);let s=this._intentStates.get(W.cacheKey);s||(s=Object.create(null),this._intentStates.set(W.cacheKey,s));let n;return s.opListReadCapability||(n=Object.create(null),n.operatorListChanged=c,s.opListReadCapability=Promise.withResolvers(),(s.renderTasks||(s.renderTasks=new Set)).add(n),s.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null},(F=this._stats)==null||F.time("Page Request"),this._pumpOperatorList(W)),s.opListReadCapability.promise}streamTextContent({includeMarkedContent:l=!1,disableNormalization:d=!1}={}){return this._transport.messageHandler.sendWithStream("GetTextContent",{pageIndex:this._pageIndex,includeMarkedContent:l===!0,disableNormalization:d===!0},{highWaterMark:100,size(Z){return Z.items.length}})}getTextContent(l={}){if(this._transport._htmlForXfa)return this.getXfa().then(Z=>IW.textContent(Z));const d=this.streamTextContent(l);return new Promise(function(Z,t){function F(){c.read().then(function({value:s,done:n}){if(n){Z(W);return}W.lang??(W.lang=s.lang),Object.assign(W.styles,s.styles),W.items.push(...s.items),F()},t)}const c=d.getReader(),W={items:[],styles:Object.create(null),lang:null};F()})}getStructTree(){return this._transport.getStructTree(this._pageIndex)}_destroy(){this.destroyed=!0;const l=[];for(const d of this._intentStates.values())if(this._abortOperatorList({intentState:d,reason:new Error("Page was destroyed."),force:!0}),!d.opListReadCapability)for(const Z of d.renderTasks)l.push(Z.completed),Z.cancel();return this.objs.clear(),R(this,ht,!1),h(this,AU,oV).call(this),Promise.all(l)}cleanup(l=!1){R(this,ht,!0);const d=h(this,AU,A0).call(this,!1);return l&&d&&this._stats&&(this._stats=new dN),d}_startRenderPage(l,d){var Z,t;const F=this._intentStates.get(d);F&&((Z=this._stats)==null||Z.timeEnd("Page Request"),(t=F.displayReadyCapability)==null||t.resolve(l))}_renderPageChunk(l,d){for(let Z=0,t=l.length;Z{W.read().then(({value:V,done:Q})=>{if(Q){s.streamReader=null;return}this._transport.destroyed||(this._renderPageChunk(V,s),n())},V=>{if(s.streamReader=null,!this._transport.destroyed){if(s.operatorList){s.operatorList.lastChunk=!0;for(const Q of s.renderTasks)Q.operatorListChanged();h(this,AU,A0).call(this,!0)}if(s.displayReadyCapability)s.displayReadyCapability.reject(V);else if(s.opListReadCapability)s.opListReadCapability.reject(V);else throw V}})};n()}_abortOperatorList({intentState:l,reason:d,force:Z=!1}){if(l.streamReader){if(l.streamReaderCancelTimeout&&(clearTimeout(l.streamReaderCancelTimeout),l.streamReaderCancelTimeout=null),!Z){if(l.renderTasks.size>0)return;if(d instanceof DR){let t=WM;d.extraDelay>0&&d.extraDelay<1e3&&(t+=d.extraDelay),l.streamReaderCancelTimeout=setTimeout(()=>{l.streamReaderCancelTimeout=null,this._abortOperatorList({intentState:l,reason:d,force:!0})},t);return}}if(l.streamReader.cancel(new Bt(d.message)).catch(()=>{}),l.streamReader=null,!this._transport.destroyed){for(const[t,F]of this._intentStates)if(F===l){this._intentStates.delete(t);break}this.cleanup()}}}get stats(){return this._stats}}tF=new WeakMap,ht=new WeakMap,AU=new WeakSet,A0=function(U=!1){if(h(this,AU,oV).call(this),!a(this,ht)||this.destroyed)return!1;if(U)return R(this,tF,setTimeout(()=>{R(this,tF,null),h(this,AU,A0).call(this,!1)},sM)),!1;for(const{renderTasks:l,operatorList:d}of this._intentStates.values())if(l.size>0||!d.lastChunk)return!1;return this._intentStates.clear(),this.objs.clear(),R(this,ht,!1),!0},oV=function(){a(this,tF)&&(clearTimeout(a(this,tF)),R(this,tF,null))};var qZ,Di;class MM{constructor(){b(this,qZ,new Map),b(this,Di,Promise.resolve())}postMessage(l,d){const Z={data:structuredClone(l,d?{transfer:d}:null)};a(this,Di).then(()=>{for(const[t]of a(this,qZ))t.call(this,Z)})}addEventListener(l,d,Z=null){let t=null;if((Z==null?void 0:Z.signal)instanceof AbortSignal){const{signal:F}=Z;if(F.aborted){dl("LoopbackPort - cannot use an `aborted` signal.");return}const c=()=>this.removeEventListener(l,d);t=()=>F.removeEventListener("abort",c),F.addEventListener("abort",c)}a(this,qZ).set(d,t)}removeEventListener(l,d){const Z=a(this,qZ).get(d);Z==null||Z(),a(this,qZ).delete(d)}terminate(){for(const[,l]of a(this,qZ))l==null||l();a(this,qZ).clear()}}qZ=new WeakMap,Di=new WeakMap;var zl,zQ,c0,vt,jc,ps,Oc,us;let sn=(zl=class{constructor({name:U=null,port:l=null,verbosity:d=fm()}={}){b(this,jc);var Z;if(this.name=U,this.destroyed=!1,this.verbosity=d,this._readyCapability=Promise.withResolvers(),this._port=null,this._webWorker=null,this._messageHandler=null,l){if((Z=a(zl,vt))!=null&&Z.has(l))throw new Error("Cannot use more than one PDFWorker per port.");(a(zl,vt)||R(zl,vt,new WeakMap)).set(l,this),this._initializeFromPort(l);return}this._initialize()}get promise(){return this._readyCapability.promise}get port(){return this._port}get messageHandler(){return this._messageHandler}_initializeFromPort(U){this._port=U,this._messageHandler=new Ra("main","worker",U),this._messageHandler.on("ready",function(){}),h(this,jc,ps).call(this)}_initialize(){if(a(zl,c0)||a(zl,Oc,us)){this._setupFakeWorker();return}let{workerSrc:U}=zl;try{zl._isSameOrigin(window.location.href,U)||(U=zl._createCDNWrapper(new URL(U,window.location).href));const l=new Worker(U,{type:"module"}),d=new Ra("main","worker",l),Z=()=>{t.abort(),d.destroy(),l.terminate(),this.destroyed?this._readyCapability.reject(new Error("Worker was destroyed")):this._setupFakeWorker()},t=new AbortController;l.addEventListener("error",()=>{this._webWorker||Z()},{signal:t.signal}),d.on("test",c=>{if(t.abort(),this.destroyed||!c){Z();return}this._messageHandler=d,this._port=l,this._webWorker=l,h(this,jc,ps).call(this)}),d.on("ready",c=>{if(t.abort(),this.destroyed){Z();return}try{F()}catch{this._setupFakeWorker()}});const F=()=>{const c=new Uint8Array;d.send("test",c,[c.buffer])};F();return}catch{UQ("The worker has been disabled.")}this._setupFakeWorker()}_setupFakeWorker(){a(zl,c0)||(dl("Setting up fake worker."),R(zl,c0,!0)),zl._setupFakeWorkerGlobal.then(U=>{if(this.destroyed){this._readyCapability.reject(new Error("Worker was destroyed"));return}const l=new MM;this._port=l;const d=`fake${Ld(zl,zQ)._++}`,Z=new Ra(d+"_worker",d,l);U.setup(Z,l),this._messageHandler=new Ra(d,d+"_worker",l),h(this,jc,ps).call(this)}).catch(U=>{this._readyCapability.reject(new Error(`Setting up fake worker failed: "${U.message}".`))})}destroy(){var U,l,d;this.destroyed=!0,(U=this._webWorker)==null||U.terminate(),this._webWorker=null,(l=a(zl,vt))==null||l.delete(this._port),this._port=null,(d=this._messageHandler)==null||d.destroy(),this._messageHandler=null}static fromPort(U){var l;if(!(U!=null&&U.port))throw new Error("PDFWorker.fromPort - invalid method signature.");const d=(l=a(this,vt))==null?void 0:l.get(U.port);if(d){if(d._pendingDestroy)throw new Error("PDFWorker.fromPort - the worker is being destroyed.\nPlease remember to await `PDFDocumentLoadingTask.destroy()`-calls.");return d}return new zl(U)}static get workerSrc(){if(f0.workerSrc)return f0.workerSrc;throw new Error('No "GlobalWorkerOptions.workerSrc" specified.')}static get _setupFakeWorkerGlobal(){return tl(this,"_setupFakeWorkerGlobal",(async()=>a(this,Oc,us)?a(this,Oc,us):(await import(this.workerSrc)).WorkerMessageHandler)())}},zQ=new WeakMap,c0=new WeakMap,vt=new WeakMap,jc=new WeakSet,ps=function(){this._readyCapability.resolve(),this._messageHandler.send("configure",{verbosity:this.verbosity})},Oc=new WeakSet,us=function(){var U;try{return((U=globalThis.pdfjsWorker)==null?void 0:U.WorkerMessageHandler)||null}catch{return null}},b(zl,Oc),b(zl,zQ,0),b(zl,c0,!1),b(zl,vt),Bd&&(R(zl,c0,!0),f0.workerSrc||(f0.workerSrc="./pdf.worker.mjs")),zl._isSameOrigin=(U,l)=>{let d;try{if(d=new URL(U),!d.origin||d.origin==="null")return!1}catch{return!1}const Z=new URL(l,d);return d.origin===Z.origin},zl._createCDNWrapper=U=>{const l=`await import("${U}");`;return URL.createObjectURL(new Blob([l],{type:"text/javascript"}))},zl);var et,RZ,Ja,Ga,$Z,u0,Sa;class JM{constructor(l,d,Z,t,F){b(this,u0),b(this,et,new Map),b(this,RZ,new Map),b(this,Ja,new Map),b(this,Ga,new Map),b(this,$Z,null),this.messageHandler=l,this.loadingTask=d,this.commonObjs=new Ie,this.fontLoader=new e2({ownerDocument:t.ownerDocument,styleElement:t.styleElement}),this.loadingParams=t.loadingParams,this._params=t,this.canvasFactory=F.canvasFactory,this.filterFactory=F.filterFactory,this.cMapReaderFactory=F.cMapReaderFactory,this.standardFontDataFactory=F.standardFontDataFactory,this.destroyed=!1,this.destroyCapability=null,this._networkStream=Z,this._fullReader=null,this._lastProgress=null,this.downloadInfoCapability=Promise.withResolvers(),this.setupMessageHandler()}get annotationStorage(){return tl(this,"annotationStorage",new rR)}getRenderingIntent(l,d=Rt.ENABLE,Z=null,t=!1,F=!1){let c=dU.DISPLAY,W=Xi;switch(l){case"any":c=dU.ANY;break;case"display":break;case"print":c=dU.PRINT;break;default:dl(`getRenderingIntent - invalid intent: ${l}`)}const s=c&dU.PRINT&&Z instanceof ie?Z:this.annotationStorage;switch(d){case Rt.DISABLE:c+=dU.ANNOTATIONS_DISABLE;break;case Rt.ENABLE:break;case Rt.ENABLE_FORMS:c+=dU.ANNOTATIONS_FORMS;break;case Rt.ENABLE_STORAGE:c+=dU.ANNOTATIONS_STORAGE,W=s.serializable;break;default:dl(`getRenderingIntent - invalid annotationMode: ${d}`)}t&&(c+=dU.IS_EDITING),F&&(c+=dU.OPLIST);const{ids:n,hash:V}=s.modifiedIds,Q=[c,W.hash,V];return{renderingIntent:c,cacheKey:Q.join("_"),annotationStorageSerializable:W,modifiedIds:n}}destroy(){var l;if(this.destroyCapability)return this.destroyCapability.promise;this.destroyed=!0,this.destroyCapability=Promise.withResolvers(),(l=a(this,$Z))==null||l.reject(new Error("Worker was destroyed during onPassword callback"));const d=[];for(const t of a(this,RZ).values())d.push(t._destroy());a(this,RZ).clear(),a(this,Ja).clear(),a(this,Ga).clear(),this.hasOwnProperty("annotationStorage")&&this.annotationStorage.resetModified();const Z=this.messageHandler.sendWithPromise("Terminate",null);return d.push(Z),Promise.all(d).then(()=>{var t,F;this.commonObjs.clear(),this.fontLoader.clear(),a(this,et).clear(),this.filterFactory.destroy(),Li.cleanup(),(t=this._networkStream)==null||t.cancelAllRequests(new Bt("Worker was terminated.")),(F=this.messageHandler)==null||F.destroy(),this.messageHandler=null,this.destroyCapability.resolve()},this.destroyCapability.reject),this.destroyCapability.promise}setupMessageHandler(){const{messageHandler:l,loadingTask:d}=this;l.on("GetReader",(Z,t)=>{Al(this._networkStream,"GetReader - no `IPDFStream` instance available."),this._fullReader=this._networkStream.getFullReader(),this._fullReader.onProgress=F=>{this._lastProgress={loaded:F.loaded,total:F.total}},t.onPull=()=>{this._fullReader.read().then(function({value:F,done:c}){if(c){t.close();return}Al(F instanceof ArrayBuffer,"GetReader - expected an ArrayBuffer."),t.enqueue(new Uint8Array(F),1,[F])}).catch(F=>{t.error(F)})},t.onCancel=F=>{this._fullReader.cancel(F),t.ready.catch(c=>{if(!this.destroyed)throw c})}}),l.on("ReaderHeadersReady",async Z=>{var t;await this._fullReader.headersReady;const{isStreamingSupported:F,isRangeSupported:c,contentLength:W}=this._fullReader;return(!F||!c)&&(this._lastProgress&&((t=d.onProgress)==null||t.call(d,this._lastProgress)),this._fullReader.onProgress=s=>{var n;(n=d.onProgress)==null||n.call(d,{loaded:s.loaded,total:s.total})}),{isStreamingSupported:F,isRangeSupported:c,contentLength:W}}),l.on("GetRangeReader",(Z,t)=>{Al(this._networkStream,"GetRangeReader - no `IPDFStream` instance available.");const F=this._networkStream.getRangeReader(Z.begin,Z.end);if(!F){t.close();return}t.onPull=()=>{F.read().then(function({value:c,done:W}){if(W){t.close();return}Al(c instanceof ArrayBuffer,"GetRangeReader - expected an ArrayBuffer."),t.enqueue(new Uint8Array(c),1,[c])}).catch(c=>{t.error(c)})},t.onCancel=c=>{F.cancel(c),t.ready.catch(W=>{if(!this.destroyed)throw W})}}),l.on("GetDoc",({pdfInfo:Z})=>{this._numPages=Z.numPages,this._htmlForXfa=Z.htmlForXfa,delete Z.htmlForXfa,d._capability.resolve(new bM(Z,this))}),l.on("DocException",Z=>{d._capability.reject(rd(Z))}),l.on("PasswordRequest",Z=>{R(this,$Z,Promise.withResolvers());try{if(!d.onPassword)throw rd(Z);const t=F=>{F instanceof Error?a(this,$Z).reject(F):a(this,$Z).resolve({password:F})};d.onPassword(t,Z.code)}catch(t){a(this,$Z).reject(t)}return a(this,$Z).promise}),l.on("DataLoaded",Z=>{var t;(t=d.onProgress)==null||t.call(d,{loaded:Z.length,total:Z.length}),this.downloadInfoCapability.resolve(Z)}),l.on("StartRenderPage",Z=>{this.destroyed||a(this,RZ).get(Z.pageIndex)._startRenderPage(Z.transparency,Z.cacheKey)}),l.on("commonobj",([Z,t,F])=>{var c;if(this.destroyed||this.commonObjs.has(Z))return null;switch(t){case"Font":const{disableFontFace:W,fontExtraProperties:s,pdfBug:n}=this._params;if("error"in F){const N=F.error;dl(`Error during font loading: ${N}`),this.commonObjs.resolve(Z,N);break}const V=n&&(c=globalThis.FontInspector)!=null&&c.enabled?(N,e)=>globalThis.FontInspector.fontAdded(N,e):null,Q=new b2(F,{disableFontFace:W,fontExtraProperties:s,inspectFont:V});this.fontLoader.bind(Q).catch(()=>l.sendWithPromise("FontFallback",{id:Z})).finally(()=>{!s&&Q.data&&(Q.data=null),this.commonObjs.resolve(Z,Q)});break;case"CopyLocalImage":const{imageRef:i}=F;Al(i,"The imageRef must be defined.");for(const N of a(this,RZ).values())for(const[,e]of N.objs)if((e==null?void 0:e.ref)===i)return e.dataLen?(this.commonObjs.resolve(Z,structuredClone(e)),e.dataLen):null;break;case"FontPath":case"Image":case"Pattern":this.commonObjs.resolve(Z,F);break;default:throw new Error(`Got unknown common object type ${t}`)}return null}),l.on("obj",([Z,t,F,c])=>{var W;if(this.destroyed)return;const s=a(this,RZ).get(t);if(!s.objs.has(Z)){if(s._intentStates.size===0){(W=c==null?void 0:c.bitmap)==null||W.close();return}switch(F){case"Image":s.objs.resolve(Z,c),(c==null?void 0:c.dataLen)>gm&&(s._maybeCleanupAfterRender=!0);break;case"Pattern":s.objs.resolve(Z,c);break;default:throw new Error(`Got unknown object type ${F}`)}}}),l.on("DocProgress",Z=>{var t;this.destroyed||(t=d.onProgress)==null||t.call(d,{loaded:Z.loaded,total:Z.total})}),l.on("FetchBuiltInCMap",async Z=>{if(this.destroyed)throw new Error("Worker was destroyed.");if(!this.cMapReaderFactory)throw new Error("CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.");return this.cMapReaderFactory.fetch(Z)}),l.on("FetchStandardFontData",async Z=>{if(this.destroyed)throw new Error("Worker was destroyed.");if(!this.standardFontDataFactory)throw new Error("StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.");return this.standardFontDataFactory.fetch(Z)})}getData(){return this.messageHandler.sendWithPromise("GetData",null)}saveDocument(){var l;this.annotationStorage.size<=0&&dl("saveDocument called while `annotationStorage` is empty, please use the getData-method instead.");const{map:d,transfer:Z}=this.annotationStorage.serializable;return this.messageHandler.sendWithPromise("SaveDocument",{isPureXfa:!!this._htmlForXfa,numPages:this._numPages,annotationStorage:d,filename:((l=this._fullReader)==null?void 0:l.filename)??null},Z).finally(()=>{this.annotationStorage.resetModified()})}getPage(l){if(!Number.isInteger(l)||l<=0||l>this._numPages)return Promise.reject(new Error("Invalid page request."));const d=l-1,Z=a(this,Ja).get(d);if(Z)return Z;const t=this.messageHandler.sendWithPromise("GetPage",{pageIndex:d}).then(F=>{if(this.destroyed)throw new Error("Transport destroyed");F.refStr&&a(this,Ga).set(F.refStr,l);const c=new mM(d,F,this,this._params.pdfBug);return a(this,RZ).set(d,c),c});return a(this,Ja).set(d,t),t}getPageIndex(l){return CN(l)?this.messageHandler.sendWithPromise("GetPageIndex",{num:l.num,gen:l.gen}):Promise.reject(new Error("Invalid pageIndex request."))}getAnnotations(l,d){return this.messageHandler.sendWithPromise("GetAnnotations",{pageIndex:l,intent:d})}getFieldObjects(){return h(this,u0,Sa).call(this,"GetFieldObjects")}hasJSActions(){return h(this,u0,Sa).call(this,"HasJSActions")}getCalculationOrderIds(){return this.messageHandler.sendWithPromise("GetCalculationOrderIds",null)}getDestinations(){return this.messageHandler.sendWithPromise("GetDestinations",null)}getDestination(l){return typeof l!="string"?Promise.reject(new Error("Invalid destination request.")):this.messageHandler.sendWithPromise("GetDestination",{id:l})}getPageLabels(){return this.messageHandler.sendWithPromise("GetPageLabels",null)}getPageLayout(){return this.messageHandler.sendWithPromise("GetPageLayout",null)}getPageMode(){return this.messageHandler.sendWithPromise("GetPageMode",null)}getViewerPreferences(){return this.messageHandler.sendWithPromise("GetViewerPreferences",null)}getOpenAction(){return this.messageHandler.sendWithPromise("GetOpenAction",null)}getAttachments(){return this.messageHandler.sendWithPromise("GetAttachments",null)}getDocJSActions(){return h(this,u0,Sa).call(this,"GetDocJSActions")}getPageJSActions(l){return this.messageHandler.sendWithPromise("GetPageJSActions",{pageIndex:l})}getStructTree(l){return this.messageHandler.sendWithPromise("GetStructTree",{pageIndex:l})}getOutline(){return this.messageHandler.sendWithPromise("GetOutline",null)}getOptionalContentConfig(l){return h(this,u0,Sa).call(this,"GetOptionalContentConfig").then(d=>new j2(d,l))}getPermissions(){return this.messageHandler.sendWithPromise("GetPermissions",null)}getMetadata(){const l="GetMetadata",d=a(this,et).get(l);if(d)return d;const Z=this.messageHandler.sendWithPromise(l,null).then(t=>{var F,c;return{info:t[0],metadata:t[1]?new r2(t[1]):null,contentDispositionFilename:((F=this._fullReader)==null?void 0:F.filename)??null,contentLength:((c=this._fullReader)==null?void 0:c.contentLength)??null}});return a(this,et).set(l,Z),Z}getMarkInfo(){return this.messageHandler.sendWithPromise("GetMarkInfo",null)}async startCleanup(l=!1){if(!this.destroyed){await this.messageHandler.sendWithPromise("Cleanup",null);for(const d of a(this,RZ).values())if(!d.cleanup())throw new Error(`startCleanup: Page ${d.pageNumber} is currently rendering.`);this.commonObjs.clear(),l||this.fontLoader.clear(),a(this,et).clear(),this.filterFactory.destroy(!0),Li.cleanup()}}cachedPageNumber(l){if(!CN(l))return null;const d=l.gen===0?`${l.num}R`:`${l.num}R${l.gen}`;return a(this,Ga).get(d)??null}}et=new WeakMap,RZ=new WeakMap,Ja=new WeakMap,Ga=new WeakMap,$Z=new WeakMap,u0=new WeakSet,Sa=function(U,l=null){const d=a(this,et).get(U);if(d)return d;const Z=this.messageHandler.sendWithPromise(U,l);return a(this,et).set(U,Z),Z};const Ta=Symbol("INITIAL_DATA");var iU,nn,Ei;class Ie{constructor(){b(this,nn),b(this,iU,Object.create(null))}get(l,d=null){if(d){const t=h(this,nn,Ei).call(this,l);return t.promise.then(()=>d(t.data)),null}const Z=a(this,iU)[l];if(!Z||Z.data===Ta)throw new Error(`Requesting object that isn't resolved yet ${l}.`);return Z.data}has(l){const d=a(this,iU)[l];return!!d&&d.data!==Ta}delete(l){const d=a(this,iU)[l];return!d||d.data===Ta?!1:(delete a(this,iU)[l],!0)}resolve(l,d=null){const Z=h(this,nn,Ei).call(this,l);Z.data=d,Z.resolve()}clear(){var l;for(const d in a(this,iU)){const{data:Z}=a(this,iU)[d];(l=Z==null?void 0:Z.bitmap)==null||l.close()}R(this,iU,Object.create(null))}*[Symbol.iterator](){for(const l in a(this,iU)){const{data:d}=a(this,iU)[l];d!==Ta&&(yield[l,d])}}}iU=new WeakMap,nn=new WeakSet,Ei=function(U){var l;return(l=a(this,iU))[U]||(l[U]={...Promise.withResolvers(),data:Ta})};var FF;class GM{constructor(l){b(this,FF,null),R(this,FF,l),this.onContinue=null}get promise(){return a(this,FF).capability.promise}cancel(l=0){a(this,FF).cancel(null,l)}get separateAnnots(){const{separateAnnots:l}=a(this,FF).operatorList;if(!l)return!1;const{annotationCanvasMap:d}=a(this,FF);return l.form||l.canvas&&(d==null?void 0:d.size)>0}}FF=new WeakMap;var cF,_0;const De=class Xa{constructor({callback:l,params:d,objs:Z,commonObjs:t,annotationCanvasMap:F,operatorList:c,pageIndex:W,canvasFactory:s,filterFactory:n,useRequestAnimationFrame:V=!1,pdfBug:Q=!1,pageColors:i=null}){b(this,cF,null),this.callback=l,this.params=d,this.objs=Z,this.commonObjs=t,this.annotationCanvasMap=F,this.operatorListIdx=null,this.operatorList=c,this._pageIndex=W,this.canvasFactory=s,this.filterFactory=n,this._pdfBug=Q,this.pageColors=i,this.running=!1,this.graphicsReadyCallback=null,this.graphicsReady=!1,this._useRequestAnimationFrame=V===!0&&typeof window<"u",this.cancelled=!1,this.capability=Promise.withResolvers(),this.task=new GM(this),this._cancelBound=this.cancel.bind(this),this._continueBound=this._continue.bind(this),this._scheduleNextBound=this._scheduleNext.bind(this),this._nextBound=this._next.bind(this),this._canvas=d.canvasContext.canvas}get completed(){return this.capability.promise.catch(function(){})}initializeGraphics({transparency:l=!1,optionalContentConfig:d}){var Z,t;if(this.cancelled)return;if(this._canvas){if(a(Xa,_0).has(this._canvas))throw new Error("Cannot use the same canvas during multiple render() operations. Use different canvas or ensure previous operations were cancelled or completed.");a(Xa,_0).add(this._canvas)}this._pdfBug&&(Z=globalThis.StepperManager)!=null&&Z.enabled&&(this.stepper=globalThis.StepperManager.create(this._pageIndex),this.stepper.init(this.operatorList),this.stepper.nextBreakPoint=this.stepper.getNextBreakPoint());const{canvasContext:F,viewport:c,transform:W,background:s}=this.params;this.gfx=new tn(F,this.commonObjs,this.objs,this.canvasFactory,this.filterFactory,{optionalContentConfig:d},this.annotationCanvasMap,this.pageColors),this.gfx.beginDrawing({transform:W,viewport:c,transparency:l,background:s}),this.operatorListIdx=0,this.graphicsReady=!0,(t=this.graphicsReadyCallback)==null||t.call(this)}cancel(l=null,d=0){var Z;this.running=!1,this.cancelled=!0,(Z=this.gfx)==null||Z.endDrawing(),a(this,cF)&&(window.cancelAnimationFrame(a(this,cF)),R(this,cF,null)),a(Xa,_0).delete(this._canvas),this.callback(l||new DR(`Rendering cancelled, page ${this._pageIndex+1}`,d))}operatorListChanged(){var l;if(!this.graphicsReady){this.graphicsReadyCallback||(this.graphicsReadyCallback=this._continueBound);return}(l=this.stepper)==null||l.updateOperatorList(this.operatorList),!this.running&&this._continue()}_continue(){this.running=!0,!this.cancelled&&(this.task.onContinue?this.task.onContinue(this._scheduleNextBound):this._scheduleNext())}_scheduleNext(){this._useRequestAnimationFrame?R(this,cF,window.requestAnimationFrame(()=>{R(this,cF,null),this._nextBound().catch(this._cancelBound)})):Promise.resolve().then(this._nextBound).catch(this._cancelBound)}async _next(){this.cancelled||(this.operatorListIdx=this.gfx.executeOperatorList(this.operatorList,this.operatorListIdx,this._continueBound,this.stepper),this.operatorListIdx===this.operatorList.argsArray.length&&(this.running=!1,this.operatorList.lastChunk&&(this.gfx.endDrawing(),a(Xa,_0).delete(this._canvas),this.callback())))}};cF=new WeakMap,_0=new WeakMap,b(De,_0,new WeakSet);let SM=De;const TM="4.10.38",XM="f9bea397f";nl(670);function rN(U){return Math.floor(Math.max(0,Math.min(1,U))*255).toString(16).padStart(2,"0")}function gc(U){return Math.max(0,Math.min(255,255*U))}class xN{static CMYK_G([l,d,Z,t]){return["G",1-Math.min(1,.3*l+.59*Z+.11*d+t)]}static G_CMYK([l]){return["CMYK",0,0,0,1-l]}static G_RGB([l]){return["RGB",l,l,l]}static G_rgb([l]){return l=gc(l),[l,l,l]}static G_HTML([l]){const d=rN(l);return`#${d}${d}${d}`}static RGB_G([l,d,Z]){return["G",.3*l+.59*d+.11*Z]}static RGB_rgb(l){return l.map(gc)}static RGB_HTML(l){return`#${l.map(rN).join("")}`}static T_HTML(){return"#00000000"}static T_rgb(){return[null]}static CMYK_RGB([l,d,Z,t]){return["RGB",1-Math.min(1,l+t),1-Math.min(1,Z+t),1-Math.min(1,d+t)]}static CMYK_rgb([l,d,Z,t]){return[gc(1-Math.min(1,l+t)),gc(1-Math.min(1,Z+t)),gc(1-Math.min(1,d+t))]}static CMYK_HTML(l){const d=this.CMYK_RGB(l).slice(1);return this.RGB_HTML(d)}static RGB_CMYK([l,d,Z]){const t=1-l,F=1-d,c=1-Z,W=Math.min(t,F,c);return["CMYK",t,F,c,W]}}class pM{create(l,d,Z=!1){if(l<=0||d<=0)throw new Error("Invalid SVG dimensions");const t=this._createSVG("svg:svg");return t.setAttribute("version","1.1"),Z||(t.setAttribute("width",`${l}px`),t.setAttribute("height",`${d}px`)),t.setAttribute("preserveAspectRatio","none"),t.setAttribute("viewBox",`0 0 ${l} ${d}`),t}createElement(l){if(typeof l!="string")throw new Error("Invalid SVG element type");return this._createSVG(l)}_createSVG(l){Gl("Abstract method `_createSVG` called.")}}let jR=class extends pM{_createSVG(U){return document.createElementNS(VZ,U)}},Ee=class{static setupStorage(U,l,d,Z,t){const F=Z.getValue(l,{value:null});switch(d.name){case"textarea":if(F.value!==null&&(U.textContent=F.value),t==="print")break;U.addEventListener("input",c=>{Z.setValue(l,{value:c.target.value})});break;case"input":if(d.attributes.type==="radio"||d.attributes.type==="checkbox"){if(F.value===d.attributes.xfaOn?U.setAttribute("checked",!0):F.value===d.attributes.xfaOff&&U.removeAttribute("checked"),t==="print")break;U.addEventListener("change",c=>{Z.setValue(l,{value:c.target.checked?c.target.getAttribute("xfaOn"):c.target.getAttribute("xfaOff")})})}else{if(F.value!==null&&U.setAttribute("value",F.value),t==="print")break;U.addEventListener("input",c=>{Z.setValue(l,{value:c.target.value})})}break;case"select":if(F.value!==null){U.setAttribute("value",F.value);for(const c of d.children)c.attributes.value===F.value?c.attributes.selected=!0:c.attributes.hasOwnProperty("selected")&&delete c.attributes.selected}U.addEventListener("input",c=>{const W=c.target.options,s=W.selectedIndex===-1?"":W[W.selectedIndex].value;Z.setValue(l,{value:s})});break}}static setAttributes({html:U,element:l,storage:d=null,intent:Z,linkService:t}){const{attributes:F}=l,c=U instanceof HTMLAnchorElement;F.type==="radio"&&(F.name=`${F.name}-${Z}`);for(const[W,s]of Object.entries(F))if(s!=null)switch(W){case"class":s.length&&U.setAttribute(W,s.join(" "));break;case"dataId":break;case"id":U.setAttribute("data-element-id",s);break;case"style":Object.assign(U.style,s);break;case"textContent":U.textContent=s;break;default:(!c||W!=="href"&&W!=="newWindow")&&U.setAttribute(W,s)}c&&t.addLinkAttributes(U,F.href,F.newWindow),d&&F.dataId&&this.setupStorage(U,F.dataId,l,d)}static render(U){var l,d;const Z=U.annotationStorage,t=U.linkService,F=U.xfaHtml,c=U.intent||"display",W=document.createElement(F.name);F.attributes&&this.setAttributes({html:W,element:F,intent:c,linkService:t});const s=c!=="richText",n=U.div;if(n.append(W),U.viewport){const i=`matrix(${U.viewport.transform.join(",")})`;n.style.transform=i}s&&n.setAttribute("class","xfaLayer xfaFont");const V=[];if(F.children.length===0){if(F.value){const i=document.createTextNode(F.value);W.append(i),s&&IW.shouldBuildText(F.name)&&V.push(i)}return{textDivs:V}}const Q=[[F,-1,W]];for(;Q.length>0;){const[i,N,e]=Q.at(-1);if(N+1===i.children.length){Q.pop();continue}const m=i.children[++Q.at(-1)[1]];if(m===null)continue;const{name:M}=m;if(M==="#text"){const S=document.createTextNode(m.value);V.push(S),e.append(S);continue}const J=(l=m==null?void 0:m.attributes)!=null&&l.xmlns?document.createElementNS(m.attributes.xmlns,M):document.createElement(M);if(e.append(J),m.attributes&&this.setAttributes({html:J,element:m,storage:Z,intent:c,linkService:t}),((d=m.children)==null?void 0:d.length)>0)Q.push([m,-1,J]);else if(m.value){const S=document.createTextNode(m.value);s&&IW.shouldBuildText(M)&&V.push(S),J.append(S)}}for(const i of n.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea"))i.setAttribute("readOnly",!0);return{textDivs:V}}static update(U){const l=`matrix(${U.viewport.transform.join(",")})`;U.div.style.transform=l,U.div.hidden=!1}};const rW=1e3,uM=9,CF=new WeakSet;function ot(U){return{width:U[2]-U[0],height:U[3]-U[1]}}class YM{static create(l){switch(l.data.annotationType){case ld.LINK:return new xe(l);case ld.TEXT:return new oM(l);case ld.WIDGET:switch(l.data.fieldType){case"Tx":return new yM(l);case"Btn":return l.data.radioButton?new je(l):l.data.checkBox?new zM(l):new LM(l);case"Ch":return new IM(l);case"Sig":return new kM(l)}return new rF(l);case ld.POPUP:return new Ci(l);case ld.FREETEXT:return new Ke(l);case ld.LINE:return new EM(l);case ld.SQUARE:return new wM(l);case ld.CIRCLE:return new CM(l);case ld.POLYLINE:return new ve(l);case ld.CARET:return new xM(l);case ld.INK:return new OR(l);case ld.POLYGON:return new rM(l);case ld.HIGHLIGHT:return new He(l);case ld.UNDERLINE:return new jM(l);case ld.SQUIGGLY:return new OM(l);case ld.STRIKEOUT:return new gM(l);case ld.STAMP:return new Pe(l);case ld.FILEATTACHMENT:return new KM(l);default:return new Zd(l)}}}var aF,pa,ua,Vn,wi;const BM=class we{constructor(l,{isRenderable:d=!1,ignoreBorder:Z=!1,createQuadrilaterals:t=!1}={}){b(this,Vn),b(this,aF,null),b(this,pa,!1),b(this,ua,null),this.isRenderable=d,this.data=l.data,this.layer=l.layer,this.linkService=l.linkService,this.downloadManager=l.downloadManager,this.imageResourcesPath=l.imageResourcesPath,this.renderForms=l.renderForms,this.svgFactory=l.svgFactory,this.annotationStorage=l.annotationStorage,this.enableScripting=l.enableScripting,this.hasJSActions=l.hasJSActions,this._fieldObjects=l.fieldObjects,this.parent=l.parent,d&&(this.container=this._createContainer(Z)),t&&this._createQuadrilaterals()}static _hasPopupData({titleObj:l,contentsObj:d,richText:Z}){return!!(l!=null&&l.str||d!=null&&d.str||Z!=null&&Z.str)}get _isEditable(){return this.data.isEditable}get hasPopupData(){return we._hasPopupData(this.data)}updateEdited(l){var d;if(!this.container)return;a(this,aF)||R(this,aF,{rect:this.data.rect.slice(0)});const{rect:Z}=l;Z&&h(this,Vn,wi).call(this,Z),(d=a(this,ua))==null||d.popup.updateEdited(l)}resetEdited(){var l;a(this,aF)&&(h(this,Vn,wi).call(this,a(this,aF).rect),(l=a(this,ua))==null||l.popup.resetEdited(),R(this,aF,null))}_createContainer(l){const{data:d,parent:{page:Z,viewport:t}}=this,F=document.createElement("section");F.setAttribute("data-annotation-id",d.id),this instanceof rF||(F.tabIndex=rW);const{style:c}=F;if(c.zIndex=this.parent.zIndex++,d.alternativeText&&(F.title=d.alternativeText),d.noRotate&&F.classList.add("norotate"),!d.rect||this instanceof Ci){const{rotation:m}=d;return!d.hasOwnCanvas&&m!==0&&this.setRotation(m,F),F}const{width:W,height:s}=ot(d.rect);if(!l&&d.borderStyle.width>0){c.borderWidth=`${d.borderStyle.width}px`;const m=d.borderStyle.horizontalCornerRadius,M=d.borderStyle.verticalCornerRadius;if(m>0||M>0){const S=`calc(${m}px * var(--scale-factor)) / calc(${M}px * var(--scale-factor))`;c.borderRadius=S}else if(this instanceof je){const S=`calc(${W}px * var(--scale-factor)) / calc(${s}px * var(--scale-factor))`;c.borderRadius=S}switch(d.borderStyle.style){case Xc.SOLID:c.borderStyle="solid";break;case Xc.DASHED:c.borderStyle="dashed";break;case Xc.BEVELED:dl("Unimplemented border style: beveled");break;case Xc.INSET:dl("Unimplemented border style: inset");break;case Xc.UNDERLINE:c.borderBottomStyle="solid";break}const J=d.borderColor||null;J?(R(this,pa,!0),c.borderColor=O.makeHexColor(J[0]|0,J[1]|0,J[2]|0)):c.borderWidth=0}const n=O.normalizeRect([d.rect[0],Z.view[3]-d.rect[1]+Z.view[1],d.rect[2],Z.view[3]-d.rect[3]+Z.view[1]]),{pageWidth:V,pageHeight:Q,pageX:i,pageY:N}=t.rawDims;c.left=`${100*(n[0]-i)/V}%`,c.top=`${100*(n[1]-N)/Q}%`;const{rotation:e}=d;return d.hasOwnCanvas||e===0?(c.width=`${100*W/V}%`,c.height=`${100*s/Q}%`):this.setRotation(e,F),F}setRotation(l,d=this.container){if(!this.data.rect)return;const{pageWidth:Z,pageHeight:t}=this.parent.viewport.rawDims,{width:F,height:c}=ot(this.data.rect);let W,s;l%180===0?(W=100*F/Z,s=100*c/t):(W=100*c/Z,s=100*F/t),d.style.width=`${W}%`,d.style.height=`${s}%`,d.setAttribute("data-main-rotation",(360-l)%360)}get _commonActions(){const l=(d,Z,t)=>{const F=t.detail[d],c=F[0],W=F.slice(1);t.target.style[Z]=xN[`${c}_HTML`](W),this.annotationStorage.setValue(this.data.id,{[Z]:xN[`${c}_rgb`](W)})};return tl(this,"_commonActions",{display:d=>{const{display:Z}=d.detail,t=Z%2===1;this.container.style.visibility=t?"hidden":"visible",this.annotationStorage.setValue(this.data.id,{noView:t,noPrint:Z===1||Z===2})},print:d=>{this.annotationStorage.setValue(this.data.id,{noPrint:!d.detail.print})},hidden:d=>{const{hidden:Z}=d.detail;this.container.style.visibility=Z?"hidden":"visible",this.annotationStorage.setValue(this.data.id,{noPrint:Z,noView:Z})},focus:d=>{setTimeout(()=>d.target.focus({preventScroll:!1}),0)},userName:d=>{d.target.title=d.detail.userName},readonly:d=>{d.target.disabled=d.detail.readonly},required:d=>{this._setRequired(d.target,d.detail.required)},bgColor:d=>{l("bgColor","backgroundColor",d)},fillColor:d=>{l("fillColor","backgroundColor",d)},fgColor:d=>{l("fgColor","color",d)},textColor:d=>{l("textColor","color",d)},borderColor:d=>{l("borderColor","borderColor",d)},strokeColor:d=>{l("strokeColor","borderColor",d)},rotation:d=>{const Z=d.detail.rotation;this.setRotation(Z),this.annotationStorage.setValue(this.data.id,{rotation:Z})}})}_dispatchEventFromSandbox(l,d){const Z=this._commonActions;for(const t of Object.keys(d.detail)){const F=l[t]||Z[t];F==null||F(d)}}_setDefaultPropertiesFromJS(l){if(!this.enableScripting)return;const d=this.annotationStorage.getRawValue(this.data.id);if(!d)return;const Z=this._commonActions;for(const[t,F]of Object.entries(d)){const c=Z[t];if(c){const W={detail:{[t]:F},target:l};c(W),delete d[t]}}}_createQuadrilaterals(){if(!this.container)return;const{quadPoints:l}=this.data;if(!l)return;const[d,Z,t,F]=this.data.rect.map(m=>Math.fround(m));if(l.length===8){const[m,M,J,S]=l.subarray(2,6);if(t===m&&F===M&&d===J&&Z===S)return}const{style:c}=this.container;let W;if(a(this,pa)){const{borderColor:m,borderWidth:M}=c;c.borderWidth=0,W=["url('data:image/svg+xml;utf8,",'',``],this.container.classList.add("hasBorder")}const s=t-d,n=F-Z,{svgFactory:V}=this,Q=V.createElement("svg");Q.classList.add("quadrilateralsContainer"),Q.setAttribute("width",0),Q.setAttribute("height",0);const i=V.createElement("defs");Q.append(i);const N=V.createElement("clipPath"),e=`clippath_${this.data.id}`;N.setAttribute("id",e),N.setAttribute("clipPathUnits","objectBoundingBox"),i.append(N);for(let m=2,M=l.length;m`)}a(this,pa)&&(W.push("')"),c.backgroundImage=W.join("")),this.container.append(Q),this.container.style.clipPath=`url(#${e})`}_createPopup(){const{data:l}=this,d=R(this,ua,new Ci({data:{color:l.color,titleObj:l.titleObj,modificationDate:l.modificationDate,contentsObj:l.contentsObj,richText:l.richText,parentRect:l.rect,borderStyle:0,id:`popup_${l.id}`,rotation:l.rotation},parent:this.parent,elements:[this]}));this.parent.div.append(d.render())}render(){Gl("Abstract method `AnnotationElement.render` called")}_getElementsByName(l,d=null){const Z=[];if(this._fieldObjects){const t=this._fieldObjects[l];if(t)for(const{page:F,id:c,exportValues:W}of t){if(F===-1||c===d)continue;const s=typeof W=="string"?W:null,n=document.querySelector(`[data-element-id="${c}"]`);if(n&&!CF.has(n)){dl(`_getElementsByName - element not allowed: ${c}`);continue}Z.push({id:c,exportValue:s,domElement:n})}return Z}for(const t of document.getElementsByName(l)){const{exportValue:F}=t,c=t.getAttribute("data-element-id");c!==d&&CF.has(t)&&Z.push({id:c,exportValue:F,domElement:t})}return Z}show(){var l;this.container&&(this.container.hidden=!1),(l=this.popup)==null||l.maybeShow()}hide(){var l;this.container&&(this.container.hidden=!0),(l=this.popup)==null||l.forceHide()}getElementsToTriggerPopup(){return this.container}addHighlightArea(){const l=this.getElementsToTriggerPopup();if(Array.isArray(l))for(const d of l)d.classList.add("highlightArea");else l.classList.add("highlightArea")}_editOnDoubleClick(){if(!this._isEditable)return;const{annotationEditorType:l,data:{id:d}}=this;this.container.addEventListener("dblclick",()=>{var Z;(Z=this.linkService.eventBus)==null||Z.dispatch("switchannotationeditormode",{source:this,mode:l,editId:d})})}};aF=new WeakMap,pa=new WeakMap,ua=new WeakMap,Vn=new WeakSet,wi=function(U){const{container:{style:l},data:{rect:d,rotation:Z},parent:{viewport:{rawDims:{pageWidth:t,pageHeight:F,pageX:c,pageY:W}}}}=this;d==null||d.splice(0,4,...U);const{width:s,height:n}=ot(U);l.left=`${100*(U[0]-c)/t}%`,l.top=`${100*(F-U[3]+W)/F}%`,Z===0?(l.width=`${100*s/t}%`,l.height=`${100*n/F}%`):this.setRotation(Z)};let Zd=BM;var _U,kF,Ce,re;class xe extends Zd{constructor(l,d=null){super(l,{isRenderable:!0,ignoreBorder:!!(d!=null&&d.ignoreBorder),createQuadrilaterals:!0}),b(this,_U),this.isTooltipOnly=l.data.isTooltipOnly}render(){const{data:l,linkService:d}=this,Z=document.createElement("a");Z.setAttribute("data-element-id",l.id);let t=!1;return l.url?(d.addLinkAttributes(Z,l.url,l.newWindow),t=!0):l.action?(this._bindNamedAction(Z,l.action),t=!0):l.attachment?(h(this,_U,Ce).call(this,Z,l.attachment,l.attachmentDest),t=!0):l.setOCGState?(h(this,_U,re).call(this,Z,l.setOCGState),t=!0):l.dest?(this._bindLink(Z,l.dest),t=!0):(l.actions&&(l.actions.Action||l.actions["Mouse Up"]||l.actions["Mouse Down"])&&this.enableScripting&&this.hasJSActions&&(this._bindJSAction(Z,l),t=!0),l.resetForm?(this._bindResetFormAction(Z,l.resetForm),t=!0):this.isTooltipOnly&&!t&&(this._bindLink(Z,""),t=!0)),this.container.classList.add("linkAnnotation"),t&&this.container.append(Z),this.container}_bindLink(l,d){l.href=this.linkService.getDestinationHash(d),l.onclick=()=>(d&&this.linkService.goToDestination(d),!1),(d||d==="")&&h(this,_U,kF).call(this)}_bindNamedAction(l,d){l.href=this.linkService.getAnchorUrl(""),l.onclick=()=>(this.linkService.executeNamedAction(d),!1),h(this,_U,kF).call(this)}_bindJSAction(l,d){l.href=this.linkService.getAnchorUrl("");const Z=new Map([["Action","onclick"],["Mouse Up","onmouseup"],["Mouse Down","onmousedown"]]);for(const t of Object.keys(d.actions)){const F=Z.get(t);F&&(l[F]=()=>{var c;return(c=this.linkService.eventBus)==null||c.dispatch("dispatcheventinsandbox",{source:this,detail:{id:d.id,name:t}}),!1})}l.onclick||(l.onclick=()=>!1),h(this,_U,kF).call(this)}_bindResetFormAction(l,d){const Z=l.onclick;if(Z||(l.href=this.linkService.getAnchorUrl("")),h(this,_U,kF).call(this),!this._fieldObjects){dl('_bindResetFormAction - "resetForm" action not supported, ensure that the `fieldObjects` parameter is provided.'),Z||(l.onclick=()=>!1);return}l.onclick=()=>{var t;Z==null||Z();const{fields:F,refs:c,include:W}=d,s=[];if(F.length!==0||c.length!==0){const Q=new Set(c);for(const i of F){const N=this._fieldObjects[i]||[];for(const{id:e}of N)Q.add(e)}for(const i of Object.values(this._fieldObjects))for(const N of i)Q.has(N.id)===W&&s.push(N)}else for(const Q of Object.values(this._fieldObjects))s.push(...Q);const n=this.annotationStorage,V=[];for(const Q of s){const{id:i}=Q;switch(V.push(i),Q.type){case"text":{const e=Q.defaultValue||"";n.setValue(i,{value:e});break}case"checkbox":case"radiobutton":{const e=Q.defaultValue===Q.exportValues;n.setValue(i,{value:e});break}case"combobox":case"listbox":{const e=Q.defaultValue||"";n.setValue(i,{value:e});break}default:continue}const N=document.querySelector(`[data-element-id="${i}"]`);if(N){if(!CF.has(N)){dl(`_bindResetFormAction - element not allowed: ${i}`);continue}}else continue;N.dispatchEvent(new Event("resetform"))}return this.enableScripting&&((t=this.linkService.eventBus)==null||t.dispatch("dispatcheventinsandbox",{source:this,detail:{id:"app",ids:V,name:"ResetForm"}})),!1}}}_U=new WeakSet,kF=function(){this.container.setAttribute("data-internal-link","")},Ce=function(U,l,d=null){U.href=this.linkService.getAnchorUrl(""),l.description&&(U.title=l.description),U.onclick=()=>{var Z;return(Z=this.downloadManager)==null||Z.openOrDownloadData(l.content,l.filename,d),!1},h(this,_U,kF).call(this)},re=function(U,l){U.href=this.linkService.getAnchorUrl(""),U.onclick=()=>(this.linkService.executeSetOCGState(l),!1),h(this,_U,kF).call(this)};class oM extends Zd{constructor(l){super(l,{isRenderable:!0})}render(){this.container.classList.add("textAnnotation");const l=document.createElement("img");return l.src=this.imageResourcesPath+"annotation-"+this.data.name.toLowerCase()+".svg",l.setAttribute("data-l10n-id","pdfjs-text-annotation-type"),l.setAttribute("data-l10n-args",JSON.stringify({type:this.data.name})),!this.data.popupRef&&this.hasPopupData&&this._createPopup(),this.container.append(l),this.container}}class rF extends Zd{render(){return this.container}showElementAndHideCanvas(l){var d;this.data.hasOwnCanvas&&(((d=l.previousSibling)==null?void 0:d.nodeName)==="CANVAS"&&(l.previousSibling.hidden=!0),l.hidden=!1)}_getKeyModifier(l){return Id.platform.isMac?l.metaKey:l.ctrlKey}_setEventListener(l,d,Z,t,F){Z.includes("mouse")?l.addEventListener(Z,c=>{var W;(W=this.linkService.eventBus)==null||W.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:t,value:F(c),shift:c.shiftKey,modifier:this._getKeyModifier(c)}})}):l.addEventListener(Z,c=>{var W;if(Z==="blur"){if(!d.focused||!c.relatedTarget)return;d.focused=!1}else if(Z==="focus"){if(d.focused)return;d.focused=!0}F&&((W=this.linkService.eventBus)==null||W.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:t,value:F(c)}}))})}_setEventListeners(l,d,Z,t){var F,c,W;for(const[s,n]of Z)(n==="Action"||(F=this.data.actions)!=null&&F[n])&&((n==="Focus"||n==="Blur")&&(d||(d={focused:!1})),this._setEventListener(l,d,s,n,t),n==="Focus"&&!((c=this.data.actions)!=null&&c.Blur)?this._setEventListener(l,d,"blur","Blur",null):n==="Blur"&&!((W=this.data.actions)!=null&&W.Focus)&&this._setEventListener(l,d,"focus","Focus",null))}_setBackgroundColor(l){const d=this.data.backgroundColor||null;l.style.backgroundColor=d===null?"transparent":O.makeHexColor(d[0],d[1],d[2])}_setTextStyle(l){const d=["left","center","right"],{fontColor:Z}=this.data.defaultAppearanceData,t=this.data.defaultAppearanceData.fontSize||uM,F=l.style;let c;const W=2,s=n=>Math.round(10*n)/10;if(this.data.multiLine){const n=Math.abs(this.data.rect[3]-this.data.rect[1]-W),V=Math.round(n/(VQ*t))||1,Q=n/V;c=Math.min(t,s(Q/VQ))}else{const n=Math.abs(this.data.rect[3]-this.data.rect[1]-W);c=Math.min(t,s(n/VQ))}F.fontSize=`calc(${c}px * var(--scale-factor))`,F.color=O.makeHexColor(Z[0],Z[1],Z[2]),this.data.textAlignment!==null&&(F.textAlign=d[this.data.textAlignment])}_setRequired(l,d){d?l.setAttribute("required",!0):l.removeAttribute("required"),l.setAttribute("aria-required",d)}}class yM extends rF{constructor(l){const d=l.renderForms||l.data.hasOwnCanvas||!l.data.hasAppearance&&!!l.data.fieldValue;super(l,{isRenderable:d})}setPropertyOnSiblings(l,d,Z,t){const F=this.annotationStorage;for(const c of this._getElementsByName(l.name,l.id))c.domElement&&(c.domElement[d]=Z),F.setValue(c.id,{[t]:Z})}render(){var l,d;const Z=this.annotationStorage,t=this.data.id;this.container.classList.add("textWidgetAnnotation");let F=null;if(this.renderForms){const c=Z.getValue(t,{value:this.data.fieldValue});let W=c.value||"";const s=Z.getValue(t,{charLimit:this.data.maxLen}).charLimit;s&&W.length>s&&(W=W.slice(0,s));let n=c.formattedValue||((l=this.data.textContent)==null?void 0:l.join(` +`))||null;n&&this.data.comb&&(n=n.replaceAll(/\s+/g,""));const V={userValue:W,formattedValue:n,lastCommittedValue:null,commitKey:1,focused:!1};this.data.multiLine?(F=document.createElement("textarea"),F.textContent=n??W,this.data.doNotScroll&&(F.style.overflowY="hidden")):(F=document.createElement("input"),F.type="text",F.setAttribute("value",n??W),this.data.doNotScroll&&(F.style.overflowX="hidden")),this.data.hasOwnCanvas&&(F.hidden=!0),CF.add(F),F.setAttribute("data-element-id",t),F.disabled=this.data.readOnly,F.name=this.data.fieldName,F.tabIndex=rW,this._setRequired(F,this.data.required),s&&(F.maxLength=s),F.addEventListener("input",i=>{Z.setValue(t,{value:i.target.value}),this.setPropertyOnSiblings(F,"value",i.target.value,"value"),V.formattedValue=null}),F.addEventListener("resetform",i=>{const N=this.data.defaultFieldValue??"";F.value=V.userValue=N,V.formattedValue=null});let Q=i=>{const{formattedValue:N}=V;N!=null&&(i.target.value=N),i.target.scrollLeft=0};if(this.enableScripting&&this.hasJSActions){F.addEventListener("focus",N=>{var e;if(V.focused)return;const{target:m}=N;V.userValue&&(m.value=V.userValue),V.lastCommittedValue=m.value,V.commitKey=1,(e=this.data.actions)!=null&&e.Focus||(V.focused=!0)}),F.addEventListener("updatefromsandbox",N=>{this.showElementAndHideCanvas(N.target);const e={value(m){V.userValue=m.detail.value??"",Z.setValue(t,{value:V.userValue.toString()}),m.target.value=V.userValue},formattedValue(m){const{formattedValue:M}=m.detail;V.formattedValue=M,M!=null&&m.target!==document.activeElement&&(m.target.value=M),Z.setValue(t,{formattedValue:M})},selRange(m){m.target.setSelectionRange(...m.detail.selRange)},charLimit:m=>{var M;const{charLimit:J}=m.detail,{target:S}=m;if(J===0){S.removeAttribute("maxLength");return}S.setAttribute("maxLength",J);let G=V.userValue;!G||G.length<=J||(G=G.slice(0,J),S.value=V.userValue=G,Z.setValue(t,{value:G}),(M=this.linkService.eventBus)==null||M.dispatch("dispatcheventinsandbox",{source:this,detail:{id:t,name:"Keystroke",value:G,willCommit:!0,commitKey:1,selStart:S.selectionStart,selEnd:S.selectionEnd}}))}};this._dispatchEventFromSandbox(e,N)}),F.addEventListener("keydown",N=>{var e;V.commitKey=1;let m=-1;if(N.key==="Escape"?m=0:N.key==="Enter"&&!this.data.multiLine?m=2:N.key==="Tab"&&(V.commitKey=3),m===-1)return;const{value:M}=N.target;V.lastCommittedValue!==M&&(V.lastCommittedValue=M,V.userValue=M,(e=this.linkService.eventBus)==null||e.dispatch("dispatcheventinsandbox",{source:this,detail:{id:t,name:"Keystroke",value:M,willCommit:!0,commitKey:m,selStart:N.target.selectionStart,selEnd:N.target.selectionEnd}}))});const i=Q;Q=null,F.addEventListener("blur",N=>{var e,m;if(!V.focused||!N.relatedTarget)return;(e=this.data.actions)!=null&&e.Blur||(V.focused=!1);const{value:M}=N.target;V.userValue=M,V.lastCommittedValue!==M&&((m=this.linkService.eventBus)==null||m.dispatch("dispatcheventinsandbox",{source:this,detail:{id:t,name:"Keystroke",value:M,willCommit:!0,commitKey:V.commitKey,selStart:N.target.selectionStart,selEnd:N.target.selectionEnd}})),i(N)}),(d=this.data.actions)!=null&&d.Keystroke&&F.addEventListener("beforeinput",N=>{var e;V.lastCommittedValue=null;const{data:m,target:M}=N,{value:J,selectionStart:S,selectionEnd:G}=M;let T=S,p=G;switch(N.inputType){case"deleteWordBackward":{const u=J.substring(0,S).match(/\w*[^\w]*$/);u&&(T-=u[0].length);break}case"deleteWordForward":{const u=J.substring(S).match(/^[^\w]*\w*/);u&&(p+=u[0].length);break}case"deleteContentBackward":S===G&&(T-=1);break;case"deleteContentForward":S===G&&(p+=1);break}N.preventDefault(),(e=this.linkService.eventBus)==null||e.dispatch("dispatcheventinsandbox",{source:this,detail:{id:t,name:"Keystroke",value:J,change:m||"",willCommit:!1,selStart:T,selEnd:p}})}),this._setEventListeners(F,V,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],N=>N.target.value)}if(Q&&F.addEventListener("blur",Q),this.data.comb){const i=(this.data.rect[2]-this.data.rect[0])/s;F.classList.add("comb"),F.style.letterSpacing=`calc(${i}px * var(--scale-factor) - 1ch)`}}else F=document.createElement("div"),F.textContent=this.data.fieldValue,F.style.verticalAlign="middle",F.style.display="table-cell",this.data.hasOwnCanvas&&(F.hidden=!0);return this._setTextStyle(F),this._setBackgroundColor(F),this._setDefaultPropertiesFromJS(F),this.container.append(F),this.container}}class kM extends rF{constructor(l){super(l,{isRenderable:!!l.data.hasOwnCanvas})}}class zM extends rF{constructor(l){super(l,{isRenderable:l.renderForms})}render(){const l=this.annotationStorage,d=this.data,Z=d.id;let t=l.getValue(Z,{value:d.exportValue===d.fieldValue}).value;typeof t=="string"&&(t=t!=="Off",l.setValue(Z,{value:t})),this.container.classList.add("buttonWidgetAnnotation","checkBox");const F=document.createElement("input");return CF.add(F),F.setAttribute("data-element-id",Z),F.disabled=d.readOnly,this._setRequired(F,this.data.required),F.type="checkbox",F.name=d.fieldName,t&&F.setAttribute("checked",!0),F.setAttribute("exportValue",d.exportValue),F.tabIndex=rW,F.addEventListener("change",c=>{const{name:W,checked:s}=c.target;for(const n of this._getElementsByName(W,Z)){const V=s&&n.exportValue===d.exportValue;n.domElement&&(n.domElement.checked=V),l.setValue(n.id,{value:V})}l.setValue(Z,{value:s})}),F.addEventListener("resetform",c=>{const W=d.defaultFieldValue||"Off";c.target.checked=W===d.exportValue}),this.enableScripting&&this.hasJSActions&&(F.addEventListener("updatefromsandbox",c=>{const W={value(s){s.target.checked=s.detail.value!=="Off",l.setValue(Z,{value:s.target.checked})}};this._dispatchEventFromSandbox(W,c)}),this._setEventListeners(F,null,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],c=>c.target.checked)),this._setBackgroundColor(F),this._setDefaultPropertiesFromJS(F),this.container.append(F),this.container}}class je extends rF{constructor(l){super(l,{isRenderable:l.renderForms})}render(){this.container.classList.add("buttonWidgetAnnotation","radioButton");const l=this.annotationStorage,d=this.data,Z=d.id;let t=l.getValue(Z,{value:d.fieldValue===d.buttonValue}).value;if(typeof t=="string"&&(t=t!==d.buttonValue,l.setValue(Z,{value:t})),t)for(const c of this._getElementsByName(d.fieldName,Z))l.setValue(c.id,{value:!1});const F=document.createElement("input");if(CF.add(F),F.setAttribute("data-element-id",Z),F.disabled=d.readOnly,this._setRequired(F,this.data.required),F.type="radio",F.name=d.fieldName,t&&F.setAttribute("checked",!0),F.tabIndex=rW,F.addEventListener("change",c=>{const{name:W,checked:s}=c.target;for(const n of this._getElementsByName(W,Z))l.setValue(n.id,{value:!1});l.setValue(Z,{value:s})}),F.addEventListener("resetform",c=>{const W=d.defaultFieldValue;c.target.checked=W!=null&&W===d.buttonValue}),this.enableScripting&&this.hasJSActions){const c=d.buttonValue;F.addEventListener("updatefromsandbox",W=>{const s={value:n=>{const V=c===n.detail.value;for(const Q of this._getElementsByName(n.target.name)){const i=V&&Q.id===Z;Q.domElement&&(Q.domElement.checked=i),l.setValue(Q.id,{value:i})}}};this._dispatchEventFromSandbox(s,W)}),this._setEventListeners(F,null,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],W=>W.target.checked)}return this._setBackgroundColor(F),this._setDefaultPropertiesFromJS(F),this.container.append(F),this.container}}class LM extends xe{constructor(l){super(l,{ignoreBorder:l.data.hasAppearance})}render(){const l=super.render();l.classList.add("buttonWidgetAnnotation","pushButton");const d=l.lastChild;return this.enableScripting&&this.hasJSActions&&d&&(this._setDefaultPropertiesFromJS(d),d.addEventListener("updatefromsandbox",Z=>{this._dispatchEventFromSandbox({},Z)})),l}}class IM extends rF{constructor(l){super(l,{isRenderable:l.renderForms})}render(){this.container.classList.add("choiceWidgetAnnotation");const l=this.annotationStorage,d=this.data.id,Z=l.getValue(d,{value:this.data.fieldValue}),t=document.createElement("select");CF.add(t),t.setAttribute("data-element-id",d),t.disabled=this.data.readOnly,this._setRequired(t,this.data.required),t.name=this.data.fieldName,t.tabIndex=rW;let F=this.data.combo&&this.data.options.length>0;this.data.combo||(t.size=this.data.options.length,this.data.multiSelect&&(t.multiple=!0)),t.addEventListener("resetform",V=>{const Q=this.data.defaultFieldValue;for(const i of t.options)i.selected=i.value===Q});for(const V of this.data.options){const Q=document.createElement("option");Q.textContent=V.displayValue,Q.value=V.exportValue,Z.value.includes(V.exportValue)&&(Q.setAttribute("selected",!0),F=!1),t.append(Q)}let c=null;if(F){const V=document.createElement("option");V.value=" ",V.setAttribute("hidden",!0),V.setAttribute("selected",!0),t.prepend(V),c=()=>{V.remove(),t.removeEventListener("input",c),c=null},t.addEventListener("input",c)}const W=V=>{const Q=V?"value":"textContent",{options:i,multiple:N}=t;return N?Array.prototype.filter.call(i,e=>e.selected).map(e=>e[Q]):i.selectedIndex===-1?null:i[i.selectedIndex][Q]};let s=W(!1);const n=V=>{const Q=V.target.options;return Array.prototype.map.call(Q,i=>({displayValue:i.textContent,exportValue:i.value}))};return this.enableScripting&&this.hasJSActions?(t.addEventListener("updatefromsandbox",V=>{const Q={value(i){c==null||c();const N=i.detail.value,e=new Set(Array.isArray(N)?N:[N]);for(const m of t.options)m.selected=e.has(m.value);l.setValue(d,{value:W(!0)}),s=W(!1)},multipleSelection(i){t.multiple=!0},remove(i){const N=t.options,e=i.detail.remove;N[e].selected=!1,t.remove(e),N.length>0&&Array.prototype.findIndex.call(N,m=>m.selected)===-1&&(N[0].selected=!0),l.setValue(d,{value:W(!0),items:n(i)}),s=W(!1)},clear(i){for(;t.length!==0;)t.remove(0);l.setValue(d,{value:null,items:[]}),s=W(!1)},insert(i){const{index:N,displayValue:e,exportValue:m}=i.detail.insert,M=t.children[N],J=document.createElement("option");J.textContent=e,J.value=m,M?M.before(J):t.append(J),l.setValue(d,{value:W(!0),items:n(i)}),s=W(!1)},items(i){const{items:N}=i.detail;for(;t.length!==0;)t.remove(0);for(const e of N){const{displayValue:m,exportValue:M}=e,J=document.createElement("option");J.textContent=m,J.value=M,t.append(J)}t.options.length>0&&(t.options[0].selected=!0),l.setValue(d,{value:W(!0),items:n(i)}),s=W(!1)},indices(i){const N=new Set(i.detail.indices);for(const e of i.target.options)e.selected=N.has(e.index);l.setValue(d,{value:W(!0)}),s=W(!1)},editable(i){i.target.disabled=!i.detail.editable}};this._dispatchEventFromSandbox(Q,V)}),t.addEventListener("input",V=>{var Q;const i=W(!0),N=W(!1);l.setValue(d,{value:i}),V.preventDefault(),(Q=this.linkService.eventBus)==null||Q.dispatch("dispatcheventinsandbox",{source:this,detail:{id:d,name:"Keystroke",value:s,change:N,changeEx:i,willCommit:!1,commitKey:1,keyDown:!1}})}),this._setEventListeners(t,null,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"],["input","Action"],["input","Validate"]],V=>V.target.value)):t.addEventListener("input",function(V){l.setValue(d,{value:W(!0)})}),this.data.combo&&this._setTextStyle(t),this._setBackgroundColor(t),this._setDefaultPropertiesFromJS(t),this.container.append(t),this.container}}class Ci extends Zd{constructor(l){const{data:d,elements:Z}=l;super(l,{isRenderable:Zd._hasPopupData(d)}),this.elements=Z,this.popup=null}render(){this.container.classList.add("popupAnnotation");const l=this.popup=new DM({container:this.container,color:this.data.color,titleObj:this.data.titleObj,modificationDate:this.data.modificationDate,contentsObj:this.data.contentsObj,richText:this.data.richText,rect:this.data.rect,parentRect:this.data.parentRect||null,parent:this.parent,elements:this.elements,open:this.data.open}),d=[];for(const Z of this.elements)Z.popup=l,Z.container.ariaHasPopup="dialog",d.push(Z.data.id),Z.addHighlightArea();return this.container.setAttribute("aria-controls",d.map(Z=>`${IR}${Z}`).join(",")),this.container}}var tW,ri,xi,FW,Y0,gl,at,Ya,yV,kV,cW,lt,PU,bt,zV,mt,Qn,WF,B0,Ud,Rn,LQ,jN,Oe,ge,ON,LV,IV,ji;class DM{constructor({container:l,color:d,elements:Z,titleObj:t,modificationDate:F,contentsObj:c,richText:W,parent:s,rect:n,parentRect:V,open:Q}){b(this,Ud),b(this,tW,h(this,Ud,ge).bind(this)),b(this,ri,h(this,Ud,ji).bind(this)),b(this,xi,h(this,Ud,IV).bind(this)),b(this,FW,h(this,Ud,LV).bind(this)),b(this,Y0,null),b(this,gl,null),b(this,at,null),b(this,Ya,null),b(this,yV,null),b(this,kV,null),b(this,cW,null),b(this,lt,!1),b(this,PU,null),b(this,bt,null),b(this,zV,null),b(this,mt,null),b(this,Qn,null),b(this,WF,null),b(this,B0,!1);var i;R(this,gl,l),R(this,Qn,t),R(this,at,c),R(this,mt,W),R(this,kV,s),R(this,Y0,d),R(this,zV,n),R(this,cW,V),R(this,yV,Z),R(this,Ya,Hh.toDateObject(F)),this.trigger=Z.flatMap(N=>N.getElementsToTriggerPopup());for(const N of this.trigger)N.addEventListener("click",a(this,FW)),N.addEventListener("mouseenter",a(this,xi)),N.addEventListener("mouseleave",a(this,ri)),N.classList.add("popupTriggerArea");for(const N of Z)(i=N.container)==null||i.addEventListener("keydown",a(this,tW));a(this,gl).hidden=!0,Q&&h(this,Ud,LV).call(this)}render(){if(a(this,PU))return;const l=R(this,PU,document.createElement("div"));if(l.className="popup",a(this,Y0)){const F=l.style.outlineColor=O.makeHexColor(...a(this,Y0));CSS.supports("background-color","color-mix(in srgb, red 30%, white)")?l.style.backgroundColor=`color-mix(in srgb, ${F} 30%, white)`:l.style.backgroundColor=O.makeHexColor(...a(this,Y0).map(c=>Math.floor(.7*(255-c)+c)))}const d=document.createElement("span");d.className="header";const Z=document.createElement("h1");if(d.append(Z),{dir:Z.dir,str:Z.textContent}=a(this,Qn),l.append(d),a(this,Ya)){const F=document.createElement("span");F.classList.add("popupDate"),F.setAttribute("data-l10n-id","pdfjs-annotation-date-time-string"),F.setAttribute("data-l10n-args",JSON.stringify({dateObj:a(this,Ya).valueOf()})),d.append(F)}const t=a(this,Ud,Rn);if(t)Ee.render({xfaHtml:t,intent:"richText",div:l}),l.lastChild.classList.add("richText","popupContent");else{const F=this._formatContents(a(this,at));l.append(F)}a(this,gl).append(l)}_formatContents({str:l,dir:d}){const Z=document.createElement("p");Z.classList.add("popupContent"),Z.dir=d;const t=l.split(/(?:\r\n?|\n)/);for(let F=0,c=t.length;F=0&&F.setAttribute("stroke-width",d||1),Z)for(let c=0,W=a(this,o0).length;c{F.key==="Enter"&&(t?F.metaKey:F.ctrlKey)&&h(this,Gn,gi).call(this)}),!d.popupRef&&this.hasPopupData?this._createPopup():Z.classList.add("popupTriggerArea"),l.append(Z),l}getElementsToTriggerPopup(){return a(this,Jn)}addHighlightArea(){this.container.classList.add("highlightArea")}}Jn=new WeakMap,Gn=new WeakSet,gi=function(){var U;(U=this.downloadManager)==null||U.openOrDownloadData(this.content,this.filename)};var Ys,a0,W0,Bs,Kc,gN,IQ,KN;let vM=(KN=class{constructor({div:U,accessibilityManager:l,annotationCanvasMap:d,annotationEditorUIManager:Z,page:t,viewport:F,structTreeLayer:c}){b(this,Kc),b(this,Ys,null),b(this,a0,null),b(this,W0,new Map),b(this,Bs,null),this.div=U,R(this,Ys,l),R(this,a0,d),R(this,Bs,c||null),this.page=t,this.viewport=F,this.zIndex=0,this._annotationEditorUIManager=Z}hasEditableAnnotations(){return a(this,W0).size>0}async render(U){var l;const{annotations:d}=U,Z=this.div;wF(Z,this.viewport);const t=new Map,F={data:null,layer:Z,linkService:U.linkService,downloadManager:U.downloadManager,imageResourcesPath:U.imageResourcesPath||"",renderForms:U.renderForms!==!1,svgFactory:new jR,annotationStorage:U.annotationStorage||new rR,enableScripting:U.enableScripting===!0,hasJSActions:U.hasJSActions,fieldObjects:U.fieldObjects,parent:this,elements:null};for(const c of d){if(c.noHTML)continue;const W=c.annotationType===ld.POPUP;if(W){const V=t.get(c.id);if(!V)continue;F.elements=V}else{const{width:V,height:Q}=ot(c.rect);if(V<=0||Q<=0)continue}F.data=c;const s=YM.create(F);if(!s.isRenderable)continue;if(!W&&c.popupRef){const V=t.get(c.popupRef);V?V.push(s):t.set(c.popupRef,[s])}const n=s.render();c.hidden&&(n.style.visibility="hidden"),await h(this,Kc,gN).call(this,n,c.id),s._isEditable&&(a(this,W0).set(s.data.id,s),(l=this._annotationEditorUIManager)==null||l.renderAnnotationElement(s))}h(this,Kc,IQ).call(this)}update({viewport:U}){const l=this.div;this.viewport=U,wF(l,{rotation:U.rotation}),h(this,Kc,IQ).call(this),l.hidden=!1}getEditableAnnotations(){return Array.from(a(this,W0).values())}getEditableAnnotation(U){return a(this,W0).get(U)}},Ys=new WeakMap,a0=new WeakMap,W0=new WeakMap,Bs=new WeakMap,Kc=new WeakSet,gN=async function(U,l){var d,Z;const t=U.firstChild||U,F=t.id=`${IR}${l}`,c=await((d=a(this,Bs))==null?void 0:d.getAriaAttributes(F));if(c)for(const[W,s]of c)t.setAttribute(W,s);this.div.append(U),(Z=a(this,Ys))==null||Z.moveElementInDOM(this.div,U,t,!1)},IQ=function(){if(!a(this,a0))return;const U=this.div;for(const[l,d]of a(this,a0)){const Z=U.querySelector(`[data-annotation-id="${l}"]`);if(!Z)continue;d.className="annotationContent";const{firstChild:t}=Z;t?t.nodeName==="CANVAS"?t.replaceWith(d):t.classList.contains("annotationContent")?t.after(d):t.before(d):Z.append(d)}a(this,a0).clear()},KN);const Sn=/\r\n?|\n/g;var qU,bU,Tn,y0,mU,qd,fe,Ae,_e,DV,zF,EV,Xn,qe,Ki,$e;const NZ=class Vd extends Kl{constructor(l){super({...l,name:"freeTextEditor"}),b(this,qd),b(this,qU),b(this,bU,""),b(this,Tn,`${this.id}-editor`),b(this,y0,null),b(this,mU),R(this,qU,l.color||Vd._defaultColor||Kl._defaultLineColor),R(this,mU,l.fontSize||Vd._defaultFontSize)}static get _keyboardManager(){const l=Vd.prototype,d=F=>F.isEmpty(),Z=LW.TRANSLATE_SMALL,t=LW.TRANSLATE_BIG;return tl(this,"_keyboardManager",new CW([[["ctrl+s","mac+meta+s","ctrl+p","mac+meta+p"],l.commitOrRemove,{bubbles:!0}],[["ctrl+Enter","mac+meta+Enter","Escape","mac+Escape"],l.commitOrRemove],[["ArrowLeft","mac+ArrowLeft"],l._translateEmpty,{args:[-Z,0],checker:d}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],l._translateEmpty,{args:[-t,0],checker:d}],[["ArrowRight","mac+ArrowRight"],l._translateEmpty,{args:[Z,0],checker:d}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],l._translateEmpty,{args:[t,0],checker:d}],[["ArrowUp","mac+ArrowUp"],l._translateEmpty,{args:[0,-Z],checker:d}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],l._translateEmpty,{args:[0,-t],checker:d}],[["ArrowDown","mac+ArrowDown"],l._translateEmpty,{args:[0,Z],checker:d}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],l._translateEmpty,{args:[0,t],checker:d}]]))}static initialize(l,d){Kl.initialize(l,d);const Z=getComputedStyle(document.documentElement);this._internalPadding=parseFloat(Z.getPropertyValue("--freetext-padding"))}static updateDefaultParams(l,d){switch(l){case cl.FREETEXT_SIZE:Vd._defaultFontSize=d;break;case cl.FREETEXT_COLOR:Vd._defaultColor=d;break}}updateParams(l,d){switch(l){case cl.FREETEXT_SIZE:h(this,qd,fe).call(this,d);break;case cl.FREETEXT_COLOR:h(this,qd,Ae).call(this,d);break}}static get defaultPropertiesToUpdate(){return[[cl.FREETEXT_SIZE,Vd._defaultFontSize],[cl.FREETEXT_COLOR,Vd._defaultColor||Kl._defaultLineColor]]}get propertiesToUpdate(){return[[cl.FREETEXT_SIZE,a(this,mU)],[cl.FREETEXT_COLOR,a(this,qU)]]}_translateEmpty(l,d){this._uiManager.translateSelectedEditors(l,d,!0)}getInitialTranslation(){const l=this.parentScale;return[-Vd._internalPadding*l,-(Vd._internalPadding+a(this,mU))*l]}rebuild(){this.parent&&(super.rebuild(),this.div!==null&&(this.isAttachedToDOM||this.parent.add(this)))}enableEditMode(){if(this.isInEditMode())return;this.parent.setEditingState(!1),this.parent.updateToolbar(Zl.FREETEXT),super.enableEditMode(),this.overlayDiv.classList.remove("enabled"),this.editorDiv.contentEditable=!0,this._isDraggable=!1,this.div.removeAttribute("aria-activedescendant"),R(this,y0,new AbortController);const l=this._uiManager.combinedSignal(a(this,y0));this.editorDiv.addEventListener("keydown",this.editorDivKeydown.bind(this),{signal:l}),this.editorDiv.addEventListener("focus",this.editorDivFocus.bind(this),{signal:l}),this.editorDiv.addEventListener("blur",this.editorDivBlur.bind(this),{signal:l}),this.editorDiv.addEventListener("input",this.editorDivInput.bind(this),{signal:l}),this.editorDiv.addEventListener("paste",this.editorDivPaste.bind(this),{signal:l})}disableEditMode(){var l;this.isInEditMode()&&(this.parent.setEditingState(!0),super.disableEditMode(),this.overlayDiv.classList.add("enabled"),this.editorDiv.contentEditable=!1,this.div.setAttribute("aria-activedescendant",a(this,Tn)),this._isDraggable=!0,(l=a(this,y0))==null||l.abort(),R(this,y0,null),this.div.focus({preventScroll:!0}),this.isEditing=!1,this.parent.div.classList.add("freetextEditing"))}focusin(l){this._focusEventsAllowed&&(super.focusin(l),l.target!==this.editorDiv&&this.editorDiv.focus())}onceAdded(l){var d;this.width||(this.enableEditMode(),l&&this.editorDiv.focus(),(d=this._initialOptions)!=null&&d.isCentered&&this.center(),this._initialOptions=null)}isEmpty(){return!this.editorDiv||this.editorDiv.innerText.trim()===""}remove(){this.isEditing=!1,this.parent&&(this.parent.setEditingState(!0),this.parent.div.classList.add("freetextEditing")),super.remove()}commit(){if(!this.isInEditMode())return;super.commit(),this.disableEditMode();const l=a(this,bU),d=R(this,bU,h(this,qd,_e).call(this).trimEnd());if(l===d)return;const Z=t=>{if(R(this,bU,t),!t){this.remove();return}h(this,qd,Xn).call(this),this._uiManager.rebuild(this),h(this,qd,DV).call(this)};this.addCommands({cmd:()=>{Z(d)},undo:()=>{Z(l)},mustExec:!1}),h(this,qd,DV).call(this)}shouldGetKeyboardEvents(){return this.isInEditMode()}enterInEditMode(){this.enableEditMode(),this.editorDiv.focus()}dblclick(l){this.enterInEditMode()}keydown(l){l.target===this.div&&l.key==="Enter"&&(this.enterInEditMode(),l.preventDefault())}editorDivKeydown(l){Vd._keyboardManager.exec(this,l)}editorDivFocus(l){this.isEditing=!0}editorDivBlur(l){this.isEditing=!1}editorDivInput(l){this.parent.div.classList.toggle("freetextEditing",this.isEmpty())}disableEditing(){this.editorDiv.setAttribute("role","comment"),this.editorDiv.removeAttribute("aria-multiline")}enableEditing(){this.editorDiv.setAttribute("role","textbox"),this.editorDiv.setAttribute("aria-multiline",!0)}render(){if(this.div)return this.div;let l,d;this.width&&(l=this.x,d=this.y),super.render(),this.editorDiv=document.createElement("div"),this.editorDiv.className="internal",this.editorDiv.setAttribute("id",a(this,Tn)),this.editorDiv.setAttribute("data-l10n-id","pdfjs-free-text2"),this.editorDiv.setAttribute("data-l10n-attrs","default-content"),this.enableEditing(),this.editorDiv.contentEditable=!0;const{style:Z}=this.editorDiv;if(Z.fontSize=`calc(${a(this,mU)}px * var(--scale-factor))`,Z.color=a(this,qU),this.div.append(this.editorDiv),this.overlayDiv=document.createElement("div"),this.overlayDiv.classList.add("overlay","enabled"),this.div.append(this.overlayDiv),XV(this,this.div,["dblclick","keydown"]),this.width){const[t,F]=this.parentDimensions;if(this.annotationElementId){const{position:c}=this._initialData;let[W,s]=this.getInitialTranslation();[W,s]=this.pageTranslationToScreen(W,s);const[n,V]=this.pageDimensions,[Q,i]=this.pageTranslation;let N,e;switch(this.rotation){case 0:N=l+(c[0]-Q)/n,e=d+this.height-(c[1]-i)/V;break;case 90:N=l+(c[0]-Q)/n,e=d-(c[1]-i)/V,[W,s]=[s,-W];break;case 180:N=l-this.width+(c[0]-Q)/n,e=d-(c[1]-i)/V,[W,s]=[-W,-s];break;case 270:N=l+(c[0]-Q-this.height*V)/n,e=d+(c[1]-i-this.width*n)/V,[W,s]=[-s,W];break}this.setAt(N*t,e*F,W,s)}else this.setAt(l*t,d*F,this.width*t,this.height*F);h(this,qd,Xn).call(this),this._isDraggable=!0,this.editorDiv.contentEditable=!1}else this._isDraggable=!1,this.editorDiv.contentEditable=!0;return this.div}editorDivPaste(l){var d,Z,t;const F=l.clipboardData||window.clipboardData,{types:c}=F;if(c.length===1&&c[0]==="text/plain")return;l.preventDefault();const W=h(d=Vd,zF,Ki).call(d,F.getData("text")||"").replaceAll(Sn,` +`);if(!W)return;const s=window.getSelection();if(!s.rangeCount)return;this.editorDiv.normalize(),s.deleteFromDocument();const n=s.getRangeAt(0);if(!W.includes(` +`)){n.insertNode(document.createTextNode(W)),this.editorDiv.normalize(),s.collapseToStart();return}const{startContainer:V,startOffset:Q}=n,i=[],N=[];if(V.nodeType===Node.TEXT_NODE){const M=V.parentElement;if(N.push(V.nodeValue.slice(Q).replaceAll(Sn,"")),M!==this.editorDiv){let J=i;for(const S of this.editorDiv.childNodes){if(S===M){J=N;continue}J.push(h(Z=Vd,zF,EV).call(Z,S))}}i.push(V.nodeValue.slice(0,Q).replaceAll(Sn,""))}else if(V===this.editorDiv){let M=i,J=0;for(const S of this.editorDiv.childNodes)J++===Q&&(M=N),M.push(h(t=Vd,zF,EV).call(t,S))}R(this,bU,`${i.join(` +`)}${W}${N.join(` +`)}`),h(this,qd,Xn).call(this);const e=new Range;let m=i.reduce((M,J)=>M+J.length,0);for(const{firstChild:M}of this.editorDiv.childNodes)if(M.nodeType===Node.TEXT_NODE){const J=M.nodeValue.length;if(m<=J){e.setStart(M,m),e.setEnd(M,m);break}m-=J}s.removeAllRanges(),s.addRange(e)}get contentDiv(){return this.editorDiv}static async deserialize(l,d,Z){var t;let F=null;if(l instanceof Ke){const{data:{defaultAppearanceData:{fontSize:W,fontColor:s},rect:n,rotation:V,id:Q,popupRef:i},textContent:N,textPosition:e,parent:{page:{pageNumber:m}}}=l;if(!N||N.length===0)return null;F=l={annotationType:Zl.FREETEXT,color:Array.from(s),fontSize:W,value:N.join(` +`),position:e,pageIndex:m-1,rect:n.slice(0),rotation:V,id:Q,deleted:!1,popupRef:i}}const c=await super.deserialize(l,d,Z);return R(c,mU,l.fontSize),R(c,qU,O.makeHexColor(...l.color)),R(c,bU,h(t=Vd,zF,Ki).call(t,l.value)),c.annotationElementId=l.id||null,c._initialData=F,c}serialize(l=!1){if(this.isEmpty())return null;if(this.deleted)return this.serializeDeleted();const d=Vd._internalPadding*this.parentScale,Z=this.getRect(d,d),t=Kl._colorManager.convert(this.isAttachedToDOM?getComputedStyle(this.editorDiv).color:a(this,qU)),F={annotationType:Zl.FREETEXT,color:t,fontSize:a(this,mU),value:h(this,qd,qe).call(this),pageIndex:this.pageIndex,rect:Z,rotation:this.rotation,structTreeParentId:this._structTreeParentId};return l?F:this.annotationElementId&&!h(this,qd,$e).call(this,F)?null:(F.id=this.annotationElementId,F)}renderAnnotationElement(l){const d=super.renderAnnotationElement(l);if(this.deleted)return d;const{style:Z}=d;Z.fontSize=`calc(${a(this,mU)}px * var(--scale-factor))`,Z.color=a(this,qU),d.replaceChildren();for(const F of a(this,bU).split(` +`)){const c=document.createElement("div");c.append(F?document.createTextNode(F):document.createElement("br")),d.append(c)}const t=Vd._internalPadding*this.parentScale;return l.updateEdited({rect:this.getRect(t,t),popupContent:a(this,bU)}),d}resetAnnotationElement(l){super.resetAnnotationElement(l),l.resetEdited()}};qU=new WeakMap,bU=new WeakMap,Tn=new WeakMap,y0=new WeakMap,mU=new WeakMap,qd=new WeakSet,fe=function(U){const l=Z=>{this.editorDiv.style.fontSize=`calc(${Z}px * var(--scale-factor))`,this.translate(0,-(Z-a(this,mU))*this.parentScale),R(this,mU,Z),h(this,qd,DV).call(this)},d=a(this,mU);this.addCommands({cmd:l.bind(this,U),undo:l.bind(this,d),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:cl.FREETEXT_SIZE,overwriteIfSameType:!0,keepUndo:!0})},Ae=function(U){const l=Z=>{R(this,qU,this.editorDiv.style.color=Z)},d=a(this,qU);this.addCommands({cmd:l.bind(this,U),undo:l.bind(this,d),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:cl.FREETEXT_COLOR,overwriteIfSameType:!0,keepUndo:!0})},_e=function(){var U;const l=[];this.editorDiv.normalize();let d=null;for(const Z of this.editorDiv.childNodes)(d==null?void 0:d.nodeType)===Node.TEXT_NODE&&Z.nodeName==="BR"||(l.push(h(U=NZ,zF,EV).call(U,Z)),d=Z);return l.join(` +`)},DV=function(){const[U,l]=this.parentDimensions;let d;if(this.isAttachedToDOM)d=this.div.getBoundingClientRect();else{const{currentLayer:Z,div:t}=this,F=t.style.display,c=t.classList.contains("hidden");t.classList.remove("hidden"),t.style.display="hidden",Z.div.append(this.div),d=t.getBoundingClientRect(),t.remove(),t.style.display=F,t.classList.toggle("hidden",c)}this.rotation%180===this.parentRotation%180?(this.width=d.width/U,this.height=d.height/l):(this.width=d.height/U,this.height=d.width/l),this.fixAndSetPosition()},zF=new WeakSet,EV=function(U){return(U.nodeType===Node.TEXT_NODE?U.nodeValue:U.innerText).replaceAll(Sn,"")},Xn=function(){if(this.editorDiv.replaceChildren(),!!a(this,bU))for(const U of a(this,bU).split(` +`)){const l=document.createElement("div");l.append(U?document.createTextNode(U):document.createElement("br")),this.editorDiv.append(l)}},qe=function(){return a(this,bU).replaceAll(" "," ")},Ki=function(U){return U.replaceAll(" "," ")},$e=function(U){const{value:l,fontSize:d,color:Z,pageIndex:t}=this._initialData;return this._hasBeenMoved||U.value!==l||U.fontSize!==d||U.color.some((F,c)=>F!==Z[c])||U.pageIndex!==t},b(NZ,zF),f(NZ,"_freeTextDefaultContent",""),f(NZ,"_internalPadding",0),f(NZ,"_defaultColor",null),f(NZ,"_defaultFontSize",10),f(NZ,"_type","freetext"),f(NZ,"_editorType",Zl.FREETEXT);let HM=NZ;class x{toSVGPath(){Gl("Abstract method `toSVGPath` must be implemented.")}get box(){Gl("Abstract getter `box` must be implemented.")}serialize(l,d){Gl("Abstract method `serialize` must be implemented.")}static _rescale(l,d,Z,t,F,c){c||(c=new Float32Array(l.length));for(let W=0,s=l.length;W=6;t-=6)isNaN(d[t])?Z.push(`L${d[t+4]} ${d[t+5]}`):Z.push(`C${d[t]} ${d[t+1]} ${d[t+2]} ${d[t+3]} ${d[t+4]} ${d[t+5]}`);return h(this,JU,db).call(this,Z),Z.join(" ")}newFreeDrawOutline(l,d,Z,t,F,c){return new Wb(l,d,Z,t,F,c)}getOutlines(){var l;const d=a(this,hZ),Z=a(this,$U),t=a(this,Fl),[F,c,W,s]=a(this,MU),n=new Float32Array((((l=a(this,sF))==null?void 0:l.length)??0)+2);for(let i=0,N=n.length-2;i=6;i-=6)for(let N=0;N<6;N+=2){if(isNaN(Z[i+N])){V[Q]=V[Q+1]=NaN,Q+=2;continue}V[Q]=Z[i+N],V[Q+1]=Z[i+N+1],Q+=2}return h(this,JU,tb).call(this,V,Q),this.newFreeDrawOutline(V,n,a(this,MU),a(this,sW),a(this,aW),a(this,WW))}};MU=new WeakMap,$U=new WeakMap,aW=new WeakMap,WW=new WeakMap,hZ=new WeakMap,Fl=new WeakMap,Qc=new WeakMap,ic=new WeakMap,pn=new WeakMap,un=new WeakMap,sW=new WeakMap,Ba=new WeakMap,sF=new WeakMap,Yn=new WeakMap,DQ=new WeakMap,vi=new WeakMap,JU=new WeakSet,vc=function(){const U=a(this,Fl).subarray(4,6),l=a(this,Fl).subarray(16,18),[d,Z,t,F]=a(this,MU);return[(a(this,Qc)+(U[0]-l[0])/2-d)/t,(a(this,ic)+(U[1]-l[1])/2-Z)/F,(a(this,Qc)+(l[0]-U[0])/2-d)/t,(a(this,ic)+(l[1]-U[1])/2-Z)/F]},lb=function(){const[U,l,d,Z]=a(this,MU),[t,F,c,W]=h(this,JU,vc).call(this);return`M${(a(this,Fl)[2]-U)/d} ${(a(this,Fl)[3]-l)/Z} L${(a(this,Fl)[4]-U)/d} ${(a(this,Fl)[5]-l)/Z} L${t} ${F} L${c} ${W} L${(a(this,Fl)[16]-U)/d} ${(a(this,Fl)[17]-l)/Z} L${(a(this,Fl)[14]-U)/d} ${(a(this,Fl)[15]-l)/Z} Z`},db=function(U){const l=a(this,$U);U.push(`L${l[4]} ${l[5]} Z`)},Ub=function(U){const[l,d,Z,t]=a(this,MU),F=a(this,Fl).subarray(4,6),c=a(this,Fl).subarray(16,18),[W,s,n,V]=h(this,JU,vc).call(this);U.push(`L${(F[0]-l)/Z} ${(F[1]-d)/t} L${W} ${s} L${n} ${V} L${(c[0]-l)/Z} ${(c[1]-d)/t}`)},Zb=function(U){const l=a(this,Fl),[d,Z,t,F]=a(this,MU),[c,W,s,n]=h(this,JU,vc).call(this),V=new Float32Array(36);return V.set([NaN,NaN,NaN,NaN,(l[2]-d)/t,(l[3]-Z)/F,NaN,NaN,NaN,NaN,(l[4]-d)/t,(l[5]-Z)/F,NaN,NaN,NaN,NaN,c,W,NaN,NaN,NaN,NaN,s,n,NaN,NaN,NaN,NaN,(l[16]-d)/t,(l[17]-Z)/F,NaN,NaN,NaN,NaN,(l[14]-d)/t,(l[15]-Z)/F],0),this.newFreeDrawOutline(V,U,a(this,MU),a(this,sW),a(this,aW),a(this,WW))},tb=function(U,l){const d=a(this,$U);return U.set([NaN,NaN,NaN,NaN,d[4],d[5]],l),l+=6},Fb=function(U,l){const d=a(this,Fl).subarray(4,6),Z=a(this,Fl).subarray(16,18),[t,F,c,W]=a(this,MU),[s,n,V,Q]=h(this,JU,vc).call(this);return U.set([NaN,NaN,NaN,NaN,(d[0]-t)/c,(d[1]-F)/W,NaN,NaN,NaN,NaN,s,n,NaN,NaN,NaN,NaN,V,Q,NaN,NaN,NaN,NaN,(Z[0]-t)/c,(Z[1]-F)/W],l),l+=24},b(k0,Yn,8),b(k0,DQ,2),b(k0,vi,a(k0,Yn)+a(k0,DQ));let cb=k0;var oa,q0,Mt,Bn,nU,on,fl,Pi,ab;class Wb extends x{constructor(l,d,Z,t,F,c){super(),b(this,Pi),b(this,oa),b(this,q0,new Float32Array(4)),b(this,Mt),b(this,Bn),b(this,nU),b(this,on),b(this,fl),R(this,fl,l),R(this,nU,d),R(this,oa,Z),R(this,on,t),R(this,Mt,F),R(this,Bn,c),this.lastPoint=[NaN,NaN],h(this,Pi,ab).call(this,c);const[W,s,n,V]=a(this,q0);for(let Q=0,i=l.length;Qd[0]-Z[0]||d[1]-Z[1]||d[2]-Z[2]);const l=[];for(const d of a(this,nF))d[3]?(l.push(...h(this,dZ,fi).call(this,d)),h(this,dZ,nb).call(this,d)):(h(this,dZ,Vb).call(this,d),l.push(...h(this,dZ,fi).call(this,d)));return h(this,dZ,sb).call(this,l)}}wV=new WeakMap,CV=new WeakMap,nF=new WeakMap,KU=new WeakMap,dZ=new WeakSet,sb=function(U){const l=[],d=new Set;for(const F of U){const[c,W,s]=F;l.push([c,W,F],[c,s,F])}l.sort((F,c)=>F[1]-c[1]||F[0]-c[0]);for(let F=0,c=l.length;F0;){const F=d.values().next().value;let[c,W,s,n,V]=F;d.delete(F);let Q=c,i=W;for(t=[c,s],Z.push(t);;){let N;if(d.has(n))N=n;else if(d.has(V))N=V;else break;d.delete(N),[c,W,s,n,V]=N,Q!==c&&(t.push(Q,i,c,i===W?W:s),Q=c),i=i===W?s:W}t.push(Q,i)}return new PM(Z,a(this,wV),a(this,CV))},os=function(U){const l=a(this,KU);let d=0,Z=l.length-1;for(;d<=Z;){const t=d+Z>>1,F=l[t][0];if(F===U)return t;F=0;Z--){const[t,F]=a(this,KU)[Z];if(t!==U)break;if(t===U&&F===l){a(this,KU).splice(Z,1);return}}},fi=function(U){const[l,d,Z]=U,t=[[l,d,Z]],F=h(this,dZ,os).call(this,Z);for(let c=0;c=W){if(i>s)t[n][1]=s;else{if(V===1)return[];t.splice(n,1),n--,V--}continue}t[n][2]=W,i>s&&t.push([l,s,i])}}}return t};var yn,ya;class PM extends x{constructor(l,d,Z){super(),b(this,yn),b(this,ya),R(this,ya,l),R(this,yn,d),this.lastPoint=Z}toSVGPath(){const l=[];for(const d of a(this,ya)){let[Z,t]=d;l.push(`M${Z} ${t}`);for(let F=2;F-1?(R(this,pd,!0),h(this,ml,OV).call(this,l),h(this,ml,VF).call(this)):a(this,pt)&&(R(this,nW,l.anchorNode),R(this,rV,l.anchorOffset),R(this,xV,l.focusNode),R(this,jV,l.focusOffset),h(this,ml,qi).call(this),h(this,ml,VF).call(this),this.rotate(this.rotation))}static get _keyboardManager(){const l=Gd.prototype;return tl(this,"_keyboardManager",new CW([[["ArrowLeft","mac+ArrowLeft"],l._moveCaret,{args:[0]}],[["ArrowRight","mac+ArrowRight"],l._moveCaret,{args:[1]}],[["ArrowUp","mac+ArrowUp"],l._moveCaret,{args:[2]}],[["ArrowDown","mac+ArrowDown"],l._moveCaret,{args:[3]}]]))}get telemetryInitialData(){return{action:"added",type:a(this,pd)?"free_highlight":"highlight",color:this._uiManager.highlightColorNames.get(this.color),thickness:a(this,kU),methodOfCreation:a(this,kn)}}get telemetryFinalData(){return{type:"highlight",color:this._uiManager.highlightColorNames.get(this.color)}}static computeTelemetryFinalData(l){return{numberOfColors:l.get("color").size}}static initialize(l,d){var Z;Kl.initialize(l,d),Gd._defaultColor||(Gd._defaultColor=((Z=d.highlightColors)==null?void 0:Z.values().next().value)||"#fff066")}static updateDefaultParams(l,d){switch(l){case cl.HIGHLIGHT_DEFAULT_COLOR:Gd._defaultColor=d;break;case cl.HIGHLIGHT_THICKNESS:Gd._defaultThickness=d;break}}translateInPage(l,d){}get toolbarPosition(){return a(this,QW)}updateParams(l,d){switch(l){case cl.HIGHLIGHT_COLOR:h(this,ml,ib).call(this,d);break;case cl.HIGHLIGHT_THICKNESS:h(this,ml,Rb).call(this,d);break}}static get defaultPropertiesToUpdate(){return[[cl.HIGHLIGHT_DEFAULT_COLOR,Gd._defaultColor],[cl.HIGHLIGHT_THICKNESS,Gd._defaultThickness]]}get propertiesToUpdate(){return[[cl.HIGHLIGHT_COLOR,this.color||Gd._defaultColor],[cl.HIGHLIGHT_THICKNESS,a(this,kU)||Gd._defaultThickness],[cl.HIGHLIGHT_FREE,a(this,pd)]]}async addEditToolbar(){const l=await super.addEditToolbar();return l?(this._uiManager.highlightColors&&(R(this,VW,new Qb({editor:this})),l.addColorPicker(a(this,VW))),l):null}disableEditing(){super.disableEditing(),this.div.classList.toggle("disabled",!0)}enableEditing(){super.enableEditing(),this.div.classList.toggle("disabled",!1)}fixAndSetPosition(){return super.fixAndSetPosition(h(this,ml,iW).call(this))}getBaseTranslation(){return[0,0]}getRect(l,d){return super.getRect(l,d,h(this,ml,iW).call(this))}onceAdded(l){this.annotationElementId||this.parent.addUndoableEditor(this),l&&this.div.focus()}remove(){h(this,ml,$i).call(this),this._reportTelemetry({action:"deleted"}),super.remove()}rebuild(){this.parent&&(super.rebuild(),this.div!==null&&(h(this,ml,VF).call(this),this.isAttachedToDOM||this.parent.add(this)))}setParent(l){var d;let Z=!1;this.parent&&!l?h(this,ml,$i).call(this):l&&(h(this,ml,VF).call(this,l),Z=!this.parent&&((d=this.div)==null?void 0:d.classList.contains("selectedEditor"))),super.setParent(l),this.show(this._isVisible),Z&&this.select()}rotate(l){var d,Z,t;const{drawLayer:F}=this.parent;let c;a(this,pd)?(l=(l-this.rotation+360)%360,c=h(d=Gd,oZ,Nc).call(d,a(this,oU).box,l)):c=h(Z=Gd,oZ,Nc).call(Z,[this.x,this.y,this.width,this.height],l),F.updateProperties(a(this,NU),{bbox:c,root:{"data-main-rotation":l}}),F.updateProperties(a(this,zd),{bbox:h(t=Gd,oZ,Nc).call(t,a(this,$d).box,l),root:{"data-main-rotation":l}})}render(){if(this.div)return this.div;const l=super.render();a(this,ka)&&(l.setAttribute("aria-label",a(this,ka)),l.setAttribute("role","mark")),a(this,pd)?l.classList.add("free"):this.div.addEventListener("keydown",h(this,ml,Nb).bind(this),{signal:this._uiManager._signal});const d=R(this,Rc,document.createElement("div"));l.append(d),d.setAttribute("aria-hidden","true"),d.className="internal",d.style.clipPath=a(this,$0);const[Z,t]=this.parentDimensions;return this.setDims(this.width*Z,this.height*t),XV(this,a(this,Rc),["pointerover","pointerleave"]),this.enableEditing(),l}pointerover(){var l;this.isSelected||(l=this.parent)==null||l.drawLayer.updateProperties(a(this,zd),{rootClass:{hovered:!0}})}pointerleave(){var l;this.isSelected||(l=this.parent)==null||l.drawLayer.updateProperties(a(this,zd),{rootClass:{hovered:!1}})}_moveCaret(l){switch(this.parent.unselect(this),l){case 0:case 2:h(this,ml,zn).call(this,!0);break;case 1:case 3:h(this,ml,zn).call(this,!1);break}}select(){var l;super.select(),a(this,zd)&&((l=this.parent)==null||l.drawLayer.updateProperties(a(this,zd),{rootClass:{hovered:!1,selected:!0}}))}unselect(){var l;super.unselect(),a(this,zd)&&((l=this.parent)==null||l.drawLayer.updateProperties(a(this,zd),{rootClass:{selected:!1}}),a(this,pd)||h(this,ml,zn).call(this,!1))}get _mustFixPosition(){return!a(this,pd)}show(l=this._isVisible){super.show(l),this.parent&&(this.parent.drawLayer.updateProperties(a(this,NU),{rootClass:{hidden:!l}}),this.parent.drawLayer.updateProperties(a(this,zd),{rootClass:{hidden:!l}}))}static startHighlighting(l,d,{target:Z,x:t,y:F}){const{x:c,y:W,width:s,height:n}=Z.getBoundingClientRect(),V=new AbortController,Q=l.combinedSignal(V),i=N=>{V.abort(),h(this,oZ,mb).call(this,l,N)};window.addEventListener("blur",i,{signal:Q}),window.addEventListener("pointerup",i,{signal:Q}),window.addEventListener("pointerdown",tU,{capture:!0,passive:!1,signal:Q}),window.addEventListener("contextmenu",LU,{signal:Q}),Z.addEventListener("pointermove",h(this,oZ,bb).bind(this,l),{signal:Q}),this._freeHighlight=new _i({x:t,y:F},[c,W,s,n],l.scale,this._defaultThickness/2,d,.001),{id:this._freeHighlightId,clipPathId:this._freeHighlightClipId}=l.drawLayer.draw({bbox:[0,0,1,1],root:{viewBox:"0 0 1 1",fill:this._defaultColor,"fill-opacity":this._defaultOpacity},rootClass:{highlight:!0,free:!0},path:{d:this._freeHighlight.toSVGPath()}},!0,!0)}static async deserialize(l,d,Z){var t,F,c,W;let s=null;if(l instanceof He){const{data:{quadPoints:S,rect:G,rotation:T,id:p,color:u,opacity:Y,popupRef:o},parent:{page:{pageNumber:X}}}=l;s=l={annotationType:Zl.HIGHLIGHT,color:Array.from(u),opacity:Y,quadPoints:S,boxes:null,pageIndex:X-1,rect:G.slice(0),rotation:T,id:p,deleted:!1,popupRef:o}}else if(l instanceof OR){const{data:{inkLists:S,rect:G,rotation:T,id:p,color:u,borderStyle:{rawWidth:Y},popupRef:o},parent:{page:{pageNumber:X}}}=l;s=l={annotationType:Zl.HIGHLIGHT,color:Array.from(u),thickness:Y,inkLists:S,boxes:null,pageIndex:X-1,rect:G.slice(0),rotation:T,id:p,deleted:!1,popupRef:o}}const{color:n,quadPoints:V,inkLists:Q,opacity:i}=l,N=await super.deserialize(l,d,Z);N.color=O.makeHexColor(...n),R(N,ut,i||1),Q&&R(N,kU,l.thickness),N.annotationElementId=l.id||null,N._initialData=s;const[e,m]=N.pageDimensions,[M,J]=N.pageTranslation;if(V){const S=R(N,pt,[]);for(let G=0;G=0)R(this,NU,l),R(this,$0,d),this.parent.drawLayer.finalizeDraw(l,{bbox:U.box,path:{d:U.toSVGPath()}}),R(this,zd,this.parent.drawLayer.drawOutline({rootClass:{highlightOutline:!0,free:!0},bbox:a(this,$d).box,path:{d:a(this,$d).toSVGPath()}},!0));else if(this.parent){const V=this.parent.viewport.rotation;this.parent.drawLayer.updateProperties(a(this,NU),{bbox:h(Z=wd,oZ,Nc).call(Z,a(this,oU).box,(V-this.rotation+360)%360),path:{d:U.toSVGPath()}}),this.parent.drawLayer.updateProperties(a(this,zd),{bbox:h(t=wd,oZ,Nc).call(t,a(this,$d).box,V),path:{d:a(this,$d).toSVGPath()}})}const[F,c,W,s]=U.box;switch(this.rotation){case 0:this.x=F,this.y=c,this.width=W,this.height=s;break;case 90:{const[V,Q]=this.parentDimensions;this.x=c,this.y=1-F,this.width=W*Q/V,this.height=s*V/Q;break}case 180:this.x=1-F,this.y=1-c,this.width=W,this.height=s;break;case 270:{const[V,Q]=this.parentDimensions;this.x=1-c,this.y=F,this.width=W*Q/V,this.height=s*V/Q;break}}const{lastPoint:n}=a(this,$d);R(this,QW,[(n[0]-F)/W,(n[1]-c)/s])},ib=function(U){const l=(t,F)=>{var c,W;this.color=t,R(this,ut,F),(c=this.parent)==null||c.drawLayer.updateProperties(a(this,NU),{root:{fill:t,"fill-opacity":F}}),(W=a(this,VW))==null||W.updateColor(t)},d=this.color,Z=a(this,ut);this.addCommands({cmd:l.bind(this,U,wd._defaultOpacity),undo:l.bind(this,d,Z),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:cl.HIGHLIGHT_COLOR,overwriteIfSameType:!0,keepUndo:!0}),this._reportTelemetry({action:"color_changed",color:this._uiManager.highlightColorNames.get(U)},!0)},Rb=function(U){const l=a(this,kU),d=Z=>{R(this,kU,Z),h(this,ml,HN).call(this,Z)};this.addCommands({cmd:d.bind(this,U),undo:d.bind(this,l),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:cl.INK_THICKNESS,overwriteIfSameType:!0,keepUndo:!0}),this._reportTelemetry({action:"thickness_changed",thickness:U},!0)},HN=function(U){if(!a(this,pd))return;h(this,ml,OV).call(this,{highlightOutlines:a(this,oU).getNewOutline(U/2)}),this.fixAndSetPosition();const[l,d]=this.parentDimensions;this.setDims(this.width*l,this.height*d)},$i=function(){a(this,NU)===null||!this.parent||(this.parent.drawLayer.remove(a(this,NU)),R(this,NU,null),this.parent.drawLayer.remove(a(this,zd)),R(this,zd,null))},VF=function(U=this.parent){a(this,NU)===null&&({id:Ld(this,NU)._,clipPathId:Ld(this,$0)._}=U.drawLayer.draw({bbox:a(this,oU).box,root:{viewBox:"0 0 1 1",fill:this.color,"fill-opacity":a(this,ut)},rootClass:{highlight:!0,free:a(this,pd)},path:{d:a(this,oU).toSVGPath()}},!1,!0),R(this,zd,U.drawLayer.drawOutline({rootClass:{highlightOutline:!0,free:a(this,pd)},bbox:a(this,$d).box,path:{d:a(this,$d).toSVGPath()}},a(this,pd))),a(this,Rc)&&(a(this,Rc).style.clipPath=a(this,$0)))},oZ=new WeakSet,Nc=function([U,l,d,Z],t){switch(t){case 90:return[1-l-Z,U,Z,d];case 180:return[1-U-d,1-l-Z,d,Z];case 270:return[l,1-U-d,Z,d]}return[U,l,d,Z]},Nb=function(U){wd._keyboardManager.exec(this,U)},zn=function(U){if(!a(this,nW))return;const l=window.getSelection();U?l.setPosition(a(this,nW),a(this,rV)):l.setPosition(a(this,xV),a(this,jV))},iW=function(){return a(this,pd)?this.rotation:0},hb=function(){if(a(this,pd))return null;const[U,l]=this.pageDimensions,[d,Z]=this.pageTranslation,t=a(this,pt),F=new Float32Array(t.length*8);let c=0;for(const{x:W,y:s,width:n,height:V}of t){const Q=W*U+d,i=(1-s)*l+Z;F[c]=F[c+4]=Q,F[c+1]=F[c+3]=i,F[c+2]=F[c+6]=Q+n*U,F[c+5]=F[c+7]=i-V*l,c+=8}return F},eb=function(U){return a(this,oU).serialize(U,h(this,ml,iW).call(this))},bb=function(U,l){this._freeHighlight.add(l)&&U.drawLayer.updateProperties(this._freeHighlightId,{path:{d:this._freeHighlight.toSVGPath()}})},mb=function(U,l){this._freeHighlight.isEmpty()?U.drawLayer.remove(this._freeHighlightId):U.createAndAddNewEditor(l,!1,{highlightId:this._freeHighlightId,highlightOutlines:this._freeHighlight.getOutlines(),clipPathId:this._freeHighlightClipId,methodOfCreation:"main_toolbar"}),this._freeHighlightId=-1,this._freeHighlight=null,this._freeHighlightClipId=""},Mb=function(U){const{color:l}=this._initialData;return U.color.some((d,Z)=>d!==l[Z])},b(wd,oZ),f(wd,"_defaultColor",null),f(wd,"_defaultOpacity",1),f(wd,"_defaultThickness",12),f(wd,"_type","highlight"),f(wd,"_editorType",Zl.HIGHLIGHT),f(wd,"_freeHighlightId",-1),f(wd,"_freeHighlight",null),f(wd,"_freeHighlightClipId","");let PN=wd;var z0;class AM{constructor(){b(this,z0,Object.create(null))}updateProperty(l,d){this[l]=d,this.updateSVGProperty(l,d)}updateProperties(l){if(l)for(const[d,Z]of Object.entries(l))this.updateProperty(d,Z)}updateSVGProperty(l,d){a(this,z0)[l]=d}toSVGProperties(){const l=a(this,z0);return R(this,z0,Object.create(null)),{root:l}}reset(){R(this,z0,Object.create(null))}updateAll(l=this){this.updateProperties(l)}clone(){Gl("Not implemented")}}z0=new WeakMap;var hU,za,Nd,lc,dc,Wt,st,nt,Uc,pl,lR,rQ,dR,La,fN,Ln,RW,L0;const VU=class q extends Kl{constructor(l){super(l),b(this,pl),b(this,hU,null),b(this,za),f(this,"_drawId",null),R(this,za,l.mustBeCommitted||!1),l.drawOutlines&&(h(this,pl,lR).call(this,l),h(this,pl,La).call(this))}static _mergeSVGProperties(l,d){const Z=new Set(Object.keys(l));for(const[t,F]of Object.entries(d))Z.has(t)?Object.assign(l[t],F):l[t]=F;return l}static getDefaultDrawingOptions(l){Gl("Not implemented")}static get typesMap(){Gl("Not implemented")}static get isDrawer(){return!0}static get supportMultipleDrawings(){return!1}static updateDefaultParams(l,d){const Z=this.typesMap.get(l);Z&&this._defaultDrawingOptions.updateProperty(Z,d),this._currentParent&&(a(q,Nd).updateProperty(Z,d),this._currentParent.drawLayer.updateProperties(this._currentDrawId,this._defaultDrawingOptions.toSVGProperties()))}updateParams(l,d){const Z=this.constructor.typesMap.get(l);Z&&this._updateProperty(l,Z,d)}static get defaultPropertiesToUpdate(){const l=[],d=this._defaultDrawingOptions;for(const[Z,t]of this.typesMap)l.push([Z,d[t]]);return l}get propertiesToUpdate(){const l=[],{_drawingOptions:d}=this;for(const[Z,t]of this.constructor.typesMap)l.push([Z,d[t]]);return l}_updateProperty(l,d,Z){const t=this._drawingOptions,F=t[d],c=W=>{var s;t.updateProperty(d,W);const n=a(this,hU).updateProperty(d,W);n&&h(this,pl,RW).call(this,n),(s=this.parent)==null||s.drawLayer.updateProperties(this._drawId,t.toSVGProperties())};this.addCommands({cmd:c.bind(this,Z),undo:c.bind(this,F),post:this._uiManager.updateUI.bind(this._uiManager,this),mustExec:!0,type:l,overwriteIfSameType:!0,keepUndo:!0})}_onResizing(){var l;(l=this.parent)==null||l.drawLayer.updateProperties(this._drawId,q._mergeSVGProperties(a(this,hU).getPathResizingSVGProperties(h(this,pl,Ln).call(this)),{bbox:h(this,pl,L0).call(this)}))}_onResized(){var l;(l=this.parent)==null||l.drawLayer.updateProperties(this._drawId,q._mergeSVGProperties(a(this,hU).getPathResizedSVGProperties(h(this,pl,Ln).call(this)),{bbox:h(this,pl,L0).call(this)}))}_onTranslating(l,d){var Z;(Z=this.parent)==null||Z.drawLayer.updateProperties(this._drawId,{bbox:h(this,pl,L0).call(this,l,d)})}_onTranslated(){var l;(l=this.parent)==null||l.drawLayer.updateProperties(this._drawId,q._mergeSVGProperties(a(this,hU).getPathTranslatedSVGProperties(h(this,pl,Ln).call(this),this.parentDimensions),{bbox:h(this,pl,L0).call(this)}))}_onStartDragging(){var l;(l=this.parent)==null||l.drawLayer.updateProperties(this._drawId,{rootClass:{moving:!0}})}_onStopDragging(){var l;(l=this.parent)==null||l.drawLayer.updateProperties(this._drawId,{rootClass:{moving:!1}})}commit(){super.commit(),this.disableEditMode(),this.disableEditing()}disableEditing(){super.disableEditing(),this.div.classList.toggle("disabled",!0)}enableEditing(){super.enableEditing(),this.div.classList.toggle("disabled",!1)}getBaseTranslation(){return[0,0]}get isResizable(){return!0}onceAdded(l){this.annotationElementId||this.parent.addUndoableEditor(this),this._isDraggable=!0,a(this,za)&&(R(this,za,!1),this.commit(),this.parent.setSelected(this),l&&this.isOnScreen&&this.div.focus())}remove(){h(this,pl,dR).call(this),super.remove()}rebuild(){this.parent&&(super.rebuild(),this.div!==null&&(h(this,pl,La).call(this),h(this,pl,RW).call(this,a(this,hU).box),this.isAttachedToDOM||this.parent.add(this)))}setParent(l){var d;let Z=!1;this.parent&&!l?(this._uiManager.removeShouldRescale(this),h(this,pl,dR).call(this)):l&&(this._uiManager.addShouldRescale(this),h(this,pl,La).call(this,l),Z=!this.parent&&((d=this.div)==null?void 0:d.classList.contains("selectedEditor"))),super.setParent(l),Z&&this.select()}rotate(){this.parent&&this.parent.drawLayer.updateProperties(this._drawId,q._mergeSVGProperties({bbox:h(this,pl,L0).call(this)},a(this,hU).updateRotation((this.parentRotation-this.rotation+360)%360)))}onScaleChanging(){this.parent&&h(this,pl,RW).call(this,a(this,hU).updateParentDimensions(this.parentDimensions,this.parent.scale))}static onScaleChangingWhenDrawing(){}render(){if(this.div)return this.div;const l=super.render();l.classList.add("draw");const d=document.createElement("div");l.append(d),d.setAttribute("aria-hidden","true"),d.className="internal";const[Z,t]=this.parentDimensions;return this.setDims(this.width*Z,this.height*t),this._uiManager.addShouldRescale(this),this.disableEditing(),l}static createDrawerInstance(l,d,Z,t,F){Gl("Not implemented")}static startDrawing(l,d,Z,t){var F;const{target:c,offsetX:W,offsetY:s,pointerId:n,pointerType:V}=t;if(a(q,st)&&a(q,st)!==V)return;const{viewport:{rotation:Q}}=l,{width:i,height:N}=c.getBoundingClientRect(),e=R(q,lc,new AbortController),m=l.combinedSignal(e);if(a(q,Wt)||R(q,Wt,n),a(q,st)??R(q,st,V),window.addEventListener("pointerup",M=>{var J;a(q,Wt)===M.pointerId?this._endDraw(M):(J=a(q,nt))==null||J.delete(M.pointerId)},{signal:m}),window.addEventListener("pointercancel",M=>{var J;a(q,Wt)===M.pointerId?this._currentParent.endDrawingSession():(J=a(q,nt))==null||J.delete(M.pointerId)},{signal:m}),window.addEventListener("pointerdown",M=>{a(q,st)===M.pointerType&&((a(q,nt)||R(q,nt,new Set)).add(M.pointerId),a(q,Nd).isCancellable()&&(a(q,Nd).removeLastElement(),a(q,Nd).isEmpty()?this._currentParent.endDrawingSession(!0):this._endDraw(null)))},{capture:!0,passive:!1,signal:m}),window.addEventListener("contextmenu",LU,{signal:m}),c.addEventListener("pointermove",this._drawMove.bind(this),{signal:m}),c.addEventListener("touchmove",M=>{M.timeStamp===a(q,Uc)&&tU(M)},{signal:m}),l.toggleDrawing(),(F=d._editorUndoBar)==null||F.hide(),a(q,Nd)){l.drawLayer.updateProperties(this._currentDrawId,a(q,Nd).startNew(W,s,i,N,Q));return}d.updateUIForDefaultProperties(this),R(q,Nd,this.createDrawerInstance(W,s,i,N,Q)),R(q,dc,this.getDefaultDrawingOptions()),this._currentParent=l,{id:this._currentDrawId}=l.drawLayer.draw(this._mergeSVGProperties(a(q,dc).toSVGProperties(),a(q,Nd).defaultSVGProperties),!0,!1)}static _drawMove(l){var d;if(R(q,Uc,-1),!a(q,Nd))return;const{offsetX:Z,offsetY:t,pointerId:F}=l;if(a(q,Wt)===F){if(((d=a(q,nt))==null?void 0:d.size)>=1){this._endDraw(l);return}this._currentParent.drawLayer.updateProperties(this._currentDrawId,a(q,Nd).add(Z,t)),R(q,Uc,l.timeStamp),tU(l)}}static _cleanup(l){l&&(this._currentDrawId=-1,this._currentParent=null,R(q,Nd,null),R(q,dc,null),R(q,st,null),R(q,Uc,NaN)),a(q,lc)&&(a(q,lc).abort(),R(q,lc,null),R(q,Wt,NaN),R(q,nt,null))}static _endDraw(l){const d=this._currentParent;if(d){if(d.toggleDrawing(!0),this._cleanup(!1),l&&d.drawLayer.updateProperties(this._currentDrawId,a(q,Nd).end(l.offsetX,l.offsetY)),this.supportMultipleDrawings){const Z=a(q,Nd),t=this._currentDrawId,F=Z.getLastElement();d.addCommands({cmd:()=>{d.drawLayer.updateProperties(t,Z.setLastElement(F))},undo:()=>{d.drawLayer.updateProperties(t,Z.removeLastElement())},mustExec:!1,type:cl.DRAW_STEP});return}this.endDrawing(!1)}}static endDrawing(l){const d=this._currentParent;if(!d)return null;if(d.toggleDrawing(!0),d.cleanUndoStack(cl.DRAW_STEP),!a(q,Nd).isEmpty()){const{pageDimensions:[Z,t],scale:F}=d,c=d.createAndAddNewEditor({offsetX:0,offsetY:0},!1,{drawId:this._currentDrawId,drawOutlines:a(q,Nd).getOutlines(Z*F,t*F,F,this._INNER_MARGIN),drawingOptions:a(q,dc),mustBeCommitted:!l});return this._cleanup(!0),c}return d.drawLayer.remove(this._currentDrawId),this._cleanup(!0),null}createDrawingOptions(l){}static deserializeDraw(l,d,Z,t,F,c){Gl("Not implemented")}static async deserialize(l,d,Z){var t,F;const{rawDims:{pageWidth:c,pageHeight:W,pageX:s,pageY:n}}=d.viewport,V=this.deserializeDraw(s,n,c,W,this._INNER_MARGIN,l),Q=await super.deserialize(l,d,Z);return Q.createDrawingOptions(l),h(t=Q,pl,lR).call(t,{drawOutlines:V}),h(F=Q,pl,La).call(F),Q.onScaleChanging(),Q.rotate(),Q}serializeDraw(l){const[d,Z]=this.pageTranslation,[t,F]=this.pageDimensions;return a(this,hU).serialize([d,Z,t,F],l)}renderAnnotationElement(l){return l.updateEdited({rect:this.getRect(0,0)}),null}static canCreateNewEmptyEditor(){return!1}};hU=new WeakMap,za=new WeakMap,Nd=new WeakMap,lc=new WeakMap,dc=new WeakMap,Wt=new WeakMap,st=new WeakMap,nt=new WeakMap,Uc=new WeakMap,pl=new WeakSet,lR=function({drawOutlines:U,drawId:l,drawingOptions:d}){R(this,hU,U),this._drawingOptions||(this._drawingOptions=d),l>=0?(this._drawId=l,this.parent.drawLayer.finalizeDraw(l,U.defaultProperties)):this._drawId=h(this,pl,rQ).call(this,U,this.parent),h(this,pl,RW).call(this,U.box)},rQ=function(U,l){const{id:d}=l.drawLayer.draw(VU._mergeSVGProperties(this._drawingOptions.toSVGProperties(),U.defaultSVGProperties),!1,!1);return d},dR=function(){this._drawId===null||!this.parent||(this.parent.drawLayer.remove(this._drawId),this._drawId=null,this._drawingOptions.reset())},La=function(U=this.parent){if(!(this._drawId!==null&&this.parent===U)){if(this._drawId!==null){this.parent.drawLayer.updateParent(this._drawId,U.drawLayer);return}this._drawingOptions.updateAll(),this._drawId=h(this,pl,rQ).call(this,a(this,hU),U)}},fN=function([U,l,d,Z]){const{parentDimensions:[t,F],rotation:c}=this;switch(c){case 90:return[l,1-U,d*(F/t),Z*(t/F)];case 180:return[1-U,1-l,d,Z];case 270:return[1-l,U,d*(F/t),Z*(t/F)];default:return[U,l,d,Z]}},Ln=function(){const{x:U,y:l,width:d,height:Z,parentDimensions:[t,F],rotation:c}=this;switch(c){case 90:return[1-l,U,d*(t/F),Z*(F/t)];case 180:return[1-U,1-l,d,Z];case 270:return[l,1-U,d*(t/F),Z*(F/t)];default:return[U,l,d,Z]}},RW=function(U){if([this.x,this.y,this.width,this.height]=h(this,pl,fN).call(this,U),this.div){this.fixAndSetPosition();const[l,d]=this.parentDimensions;this.setDims(this.width*l,this.height*d)}this._onResized()},L0=function(){const{x:U,y:l,width:d,height:Z,rotation:t,parentRotation:F,parentDimensions:[c,W]}=this;switch((t*4+F)/90){case 1:return[1-l-Z,U,Z,d];case 2:return[1-U-d,1-l-Z,d,Z];case 3:return[l,1-U-d,Z,d];case 4:return[U,l-d*(c/W),Z*(W/c),d*(c/W)];case 5:return[1-l,U,d*(c/W),Z*(W/c)];case 6:return[1-U-Z*(W/c),1-l,Z*(W/c),d*(c/W)];case 7:return[l-d*(c/W),1-U-Z*(W/c),d*(c/W),Z*(W/c)];case 8:return[U-d,l-Z,d,Z];case 9:return[1-l,U-d,Z,d];case 10:return[1-U,1-l,d,Z];case 11:return[l-Z,1-U,Z,d];case 12:return[U-Z*(W/c),l,Z*(W/c),d*(c/W)];case 13:return[1-l-d*(c/W),U-Z*(W/c),d*(c/W),Z*(W/c)];case 14:return[1-U,1-l-d*(c/W),Z*(W/c),d*(c/W)];case 15:return[l,1-U,d*(c/W),Z*(W/c)];default:return[U,l,d,Z]}},f(VU,"_currentDrawId",-1),f(VU,"_currentParent",null),b(VU,Nd,null),b(VU,lc,null),b(VU,dc,null),b(VU,Wt,NaN),b(VU,st,null),b(VU,nt,null),b(VU,Uc,NaN),f(VU,"_INNER_MARGIN",3);let _M=VU;var eZ,Qd,id,Zc,Ia,Cd,Rd,YU,I0,tc,Fc,Da,In;class qM{constructor(l,d,Z,t,F,c){b(this,Da),b(this,eZ,new Float64Array(6)),b(this,Qd),b(this,id),b(this,Zc),b(this,Ia),b(this,Cd),b(this,Rd,""),b(this,YU,0),b(this,I0,new Xb),b(this,tc),b(this,Fc),R(this,tc,Z),R(this,Fc,t),R(this,Zc,F),R(this,Ia,c),[l,d]=h(this,Da,In).call(this,l,d);const W=R(this,Qd,[NaN,NaN,NaN,NaN,l,d]);R(this,Cd,[l,d]),R(this,id,[{line:W,points:a(this,Cd)}]),a(this,eZ).set(W,0)}updateProperty(l,d){l==="stroke-width"&&R(this,Ia,d)}isEmpty(){return!a(this,id)||a(this,id).length===0}isCancellable(){return a(this,Cd).length<=10}add(l,d){[l,d]=h(this,Da,In).call(this,l,d);const[Z,t,F,c]=a(this,eZ).subarray(2,6),W=l-F,s=d-c;return Math.hypot(a(this,tc)*W,a(this,Fc)*s)<=2?null:(a(this,Cd).push(l,d),isNaN(Z)?(a(this,eZ).set([F,c,l,d],2),a(this,Qd).push(NaN,NaN,NaN,NaN,l,d),{path:{d:this.toSVGPath()}}):(isNaN(a(this,eZ)[0])&&a(this,Qd).splice(6,6),a(this,eZ).set([Z,t,F,c,l,d],0),a(this,Qd).push(...x.createBezierPoints(Z,t,F,c,l,d)),{path:{d:this.toSVGPath()}}))}end(l,d){return this.add(l,d)||(a(this,Cd).length===2?{path:{d:this.toSVGPath()}}:null)}startNew(l,d,Z,t,F){R(this,tc,Z),R(this,Fc,t),R(this,Zc,F),[l,d]=h(this,Da,In).call(this,l,d);const c=R(this,Qd,[NaN,NaN,NaN,NaN,l,d]);R(this,Cd,[l,d]);const W=a(this,id).at(-1);return W&&(W.line=new Float32Array(W.line),W.points=new Float32Array(W.points)),a(this,id).push({line:c,points:a(this,Cd)}),a(this,eZ).set(c,0),R(this,YU,0),this.toSVGPath(),null}getLastElement(){return a(this,id).at(-1)}setLastElement(l){return a(this,id)?(a(this,id).push(l),R(this,Qd,l.line),R(this,Cd,l.points),R(this,YU,0),{path:{d:this.toSVGPath()}}):a(this,I0).setLastElement(l)}removeLastElement(){if(!a(this,id))return a(this,I0).removeLastElement();a(this,id).pop(),R(this,Rd,"");for(let l=0,d=a(this,id).length;lG??NaN),Q,i,N,e),points:m(W[J].map(G=>G??NaN),Q,i,N,e)});const M=new Tb;return M.build(V,Z,t,1,s,n,F),M}get box(){return a(this,xd)}updateProperty(l,d){return l==="stroke-width"?h(this,ZU,Sb).call(this,d):null}updateParentDimensions([l,d],Z){const[t,F]=h(this,ZU,yZ).call(this);R(this,YZ,l),R(this,BZ,d),R(this,NW,Z);const[c,W]=h(this,ZU,yZ).call(this),s=c-t,n=W-F,V=a(this,xd);return V[0]-=s,V[1]-=n,V[2]+=2*s,V[3]+=2*n,V}updateRotation(l){return R(this,Dn,l),{path:{transform:this.rotationTransform}}}get viewBox(){return a(this,xd).map(x.svgRound).join(" ")}get defaultProperties(){const[l,d]=a(this,xd);return{root:{viewBox:this.viewBox},path:{"transform-origin":`${x.svgRound(l)} ${x.svgRound(d)}`}}}get rotationTransform(){const[,,l,d]=a(this,xd);let Z=0,t=0,F=0,c=0,W=0,s=0;switch(a(this,Dn)){case 90:t=d/l,F=-l/d,W=l;break;case 180:Z=-1,c=-1,W=l,s=d;break;case 270:t=-d/l,F=l/d,s=d;break;default:return""}return`matrix(${Z} ${t} ${F} ${c} ${x.svgRound(W)} ${x.svgRound(s)})`}getPathResizingSVGProperties([l,d,Z,t]){const[F,c]=h(this,ZU,yZ).call(this),[W,s,n,V]=a(this,xd);if(Math.abs(n-F)<=x.PRECISION||Math.abs(V-c)<=x.PRECISION){const m=l+Z/2-(W+n/2),M=d+t/2-(s+V/2);return{path:{"transform-origin":`${x.svgRound(l)} ${x.svgRound(d)}`,transform:`${this.rotationTransform} translate(${m} ${M})`}}}const Q=(Z-2*F)/(n-2*F),i=(t-2*c)/(V-2*c),N=n/Z,e=V/t;return{path:{"transform-origin":`${x.svgRound(W)} ${x.svgRound(s)}`,transform:`${this.rotationTransform} scale(${N} ${e}) translate(${x.svgRound(F)} ${x.svgRound(c)}) scale(${Q} ${i}) translate(${x.svgRound(-F)} ${x.svgRound(-c)})`}}}getPathResizedSVGProperties([l,d,Z,t]){const[F,c]=h(this,ZU,yZ).call(this),W=a(this,xd),[s,n,V,Q]=W;if(W[0]=l,W[1]=d,W[2]=Z,W[3]=t,Math.abs(V-F)<=x.PRECISION||Math.abs(Q-c)<=x.PRECISION){const M=l+Z/2-(s+V/2),J=d+t/2-(n+Q/2);for(const{line:S,points:G}of a(this,RU))x._translate(S,M,J,S),x._translate(G,M,J,G);return{root:{viewBox:this.viewBox},path:{"transform-origin":`${x.svgRound(l)} ${x.svgRound(d)}`,transform:this.rotationTransform||null,d:this.toSVGPath()}}}const i=(Z-2*F)/(V-2*F),N=(t-2*c)/(Q-2*c),e=-i*(s+F)+l+F,m=-N*(n+c)+d+c;if(i!==1||N!==1||e!==0||m!==0)for(const{line:M,points:J}of a(this,RU))x._rescale(M,e,m,i,N,M),x._rescale(J,e,m,i,N,J);return{root:{viewBox:this.viewBox},path:{"transform-origin":`${x.svgRound(l)} ${x.svgRound(d)}`,transform:this.rotationTransform||null,d:this.toSVGPath()}}}getPathTranslatedSVGProperties([l,d],Z){const[t,F]=Z,c=a(this,xd),W=l-c[0],s=d-c[1];if(a(this,YZ)===t&&a(this,BZ)===F)for(const{line:n,points:V}of a(this,RU))x._translate(n,W,s,n),x._translate(V,W,s,V);else{const n=a(this,YZ)/t,V=a(this,BZ)/F;R(this,YZ,t),R(this,BZ,F);for(const{line:Q,points:i}of a(this,RU))x._rescale(Q,W,s,n,V,Q),x._rescale(i,W,s,n,V,i);c[2]*=n,c[3]*=V}return c[0]=l,c[1]=d,{root:{viewBox:this.viewBox},path:{d:this.toSVGPath(),"transform-origin":`${x.svgRound(l)} ${x.svgRound(d)}`}}}get defaultSVGProperties(){const l=a(this,xd);return{root:{viewBox:this.viewBox},rootClass:{draw:!0},path:{d:this.toSVGPath(),"transform-origin":`${x.svgRound(l[0])} ${x.svgRound(l[1])}`,transform:this.rotationTransform||null},bbox:l}}};xd=new WeakMap,Dn=new WeakMap,gV=new WeakMap,RU=new WeakMap,YZ=new WeakMap,BZ=new WeakMap,NW=new WeakMap,hW=new WeakMap,eW=new WeakMap,ZU=new WeakSet,yZ=function(U=a(this,eW)){const l=a(this,gV)+U/2*a(this,NW);return a(this,hW)%180===0?[l/a(this,YZ),l/a(this,BZ)]:[l/a(this,BZ),l/a(this,YZ)]},Jb=function(){const[U,l,d,Z]=a(this,xd),[t,F]=h(this,ZU,yZ).call(this,0);return[U+t,l+F,d-2*t,Z-2*F]},Gb=function(){const U=R(this,xd,new Float32Array([1/0,1/0,-1/0,-1/0]));for(const{line:Z}of a(this,RU)){if(Z.length<=12){for(let c=4,W=Z.length;cF!==l[c])||U.thickness!==d||U.opacity!==Z||U.pageIndex!==t},f(En,"_type","ink"),f(En,"_editorType",Zl.INK),f(En,"_defaultDrawingOptions",null);let UJ=En;var wl,Td,uF,Yt,LF,wa,kZ,bZ,GU,bW,yl,_c,qc,wn,ZR,KV,tR,Cn,Bb;const rn=class extends Kl{constructor(l){super({...l,name:"stampEditor"}),b(this,yl),b(this,wl,null),b(this,Td,null),b(this,uF,null),b(this,Yt,null),b(this,LF,null),b(this,wa,""),b(this,kZ,null),b(this,bZ,null),b(this,GU,!1),b(this,bW,!1),R(this,Yt,l.bitmapUrl),R(this,LF,l.bitmapFile)}static initialize(l,d){Kl.initialize(l,d)}static get supportedTypes(){return tl(this,"supportedTypes",["apng","avif","bmp","gif","jpeg","png","svg+xml","webp","x-icon"].map(l=>`image/${l}`))}static get supportedTypesStr(){return tl(this,"supportedTypesStr",this.supportedTypes.join(","))}static isHandlingMimeForPasting(l){return this.supportedTypes.includes(l)}static paste(l,d){d.pasteEditor(Zl.STAMP,{bitmapFile:l.getAsFile()})}altTextFinish(){this._uiManager.useNewAltTextFlow&&(this.div.hidden=!1),super.altTextFinish()}get telemetryFinalData(){var l;return{type:"stamp",hasAltText:!!((l=this.altTextData)!=null&&l.altText)}}static computeTelemetryFinalData(l){const d=l.get("hasAltText");return{hasAltText:d.get(!0)??0,hasNoAltText:d.get(!1)??0}}async mlGuessAltText(l=null,d=!0){if(this.hasAltTextData())return null;const{mlManager:Z}=this._uiManager;if(!Z)throw new Error("No ML.");if(!await Z.isEnabledFor("altText"))throw new Error("ML isn't enabled for alt text.");const{data:t,width:F,height:c}=l||this.copyCanvas(null,null,!0).imageData,W=await Z.guess({name:"altText",request:{data:t,width:F,height:c,channels:t.length/(F*c)}});if(!W)throw new Error("No response from the AI service.");if(W.error)throw new Error("Error from the AI service.");if(W.cancel)return null;if(!W.output)throw new Error("No valid response from the AI service.");const s=W.output;return await this.setGuessedAltText(s),d&&!this.hasAltTextData()&&(this.altTextData={alt:s,decorative:!1}),s}remove(){var l;a(this,Td)&&(R(this,wl,null),this._uiManager.imageManager.deleteId(a(this,Td)),(l=a(this,kZ))==null||l.remove(),R(this,kZ,null),a(this,bZ)&&(clearTimeout(a(this,bZ)),R(this,bZ,null))),super.remove()}rebuild(){if(!this.parent){a(this,Td)&&h(this,yl,wn).call(this);return}super.rebuild(),this.div!==null&&(a(this,Td)&&a(this,kZ)===null&&h(this,yl,wn).call(this),this.isAttachedToDOM||this.parent.add(this))}onceAdded(l){this._isDraggable=!0,l&&this.div.focus()}isEmpty(){return!(a(this,uF)||a(this,wl)||a(this,Yt)||a(this,LF)||a(this,Td))}get isResizable(){return!0}render(){if(this.div)return this.div;let l,d;if(this.width&&(l=this.x,d=this.y),super.render(),this.div.hidden=!0,this.div.setAttribute("role","figure"),this.addAltTextButton(),a(this,wl)?h(this,yl,ZR).call(this):h(this,yl,wn).call(this),this.width&&!this.annotationElementId){const[Z,t]=this.parentDimensions;this.setAt(l*Z,d*t,this.width*Z,this.height*t)}return this._uiManager.addShouldRescale(this),this.div}_onResized(){this.onScaleChanging()}onScaleChanging(){this.parent&&(a(this,bZ)!==null&&clearTimeout(a(this,bZ)),R(this,bZ,setTimeout(()=>{R(this,bZ,null),h(this,yl,tR).call(this)},200)))}copyCanvas(l,d,Z=!1){var t;l||(l=224);const{width:F,height:c}=a(this,wl),W=new CR;let s=a(this,wl),n=F,V=c,Q=null;if(d){if(F>d||c>d){const Y=Math.min(d/F,d/c);n=Math.floor(F*Y),V=Math.floor(c*Y)}Q=document.createElement("canvas");const N=Q.width=Math.ceil(n*W.sx),e=Q.height=Math.ceil(V*W.sy);a(this,GU)||(s=h(this,yl,KV).call(this,N,e));const m=Q.getContext("2d");m.filter=this._uiManager.hcmFilter;let M="white",J="#cfcfd8";this._uiManager.hcmFilter!=="none"?J="black":(t=window.matchMedia)!=null&&t.call(window,"(prefers-color-scheme: dark)").matches&&(M="#8f8f9d",J="#42414d");const S=15,G=S*W.sx,T=S*W.sy,p=new OffscreenCanvas(G*2,T*2),u=p.getContext("2d");u.fillStyle=M,u.fillRect(0,0,G*2,T*2),u.fillStyle=J,u.fillRect(0,0,G,T),u.fillRect(G,T,G,T),m.fillStyle=m.createPattern(p,"repeat"),m.fillRect(0,0,N,e),m.drawImage(s,0,0,s.width,s.height,0,0,N,e)}let i=null;if(Z){let N,e;if(W.symmetric&&s.widthl||c>l){const M=Math.min(l/F,l/c);N=Math.floor(F*M),e=Math.floor(c*M),a(this,GU)||(s=h(this,yl,KV).call(this,N,e))}const m=new OffscreenCanvas(N,e).getContext("2d",{willReadFrequently:!0});m.drawImage(s,0,0,s.width,s.height,0,0,N,e),i={width:N,height:e,data:m.getImageData(0,0,N,e).data}}return{canvas:Q,width:n,height:V,imageData:i}}getImageForAltText(){return a(this,kZ)}static async deserialize(l,d,Z){var t;let F=null;if(l instanceof Pe){const{data:{rect:m,rotation:M,id:J,structParent:S,popupRef:G},container:T,parent:{page:{pageNumber:p}}}=l,u=T.querySelector("canvas"),Y=Z.imageManager.getFromCanvas(T.id,u);u.remove();const o=((t=await d._structTree.getAriaAttributes(`${IR}${J}`))==null?void 0:t.get("aria-label"))||"";F=l={annotationType:Zl.STAMP,bitmapId:Y.id,bitmap:Y.bitmap,pageIndex:p-1,rect:m.slice(0),rotation:M,id:J,deleted:!1,accessibilityData:{decorative:!1,altText:o},isSvg:!1,structParent:S,popupRef:G}}const c=await super.deserialize(l,d,Z),{rect:W,bitmap:s,bitmapUrl:n,bitmapId:V,isSvg:Q,accessibilityData:i}=l;V&&Z.imageManager.isValidId(V)?(R(c,Td,V),s&&R(c,wl,s)):R(c,Yt,n),R(c,GU,Q);const[N,e]=c.pageDimensions;return c.width=(W[2]-W[0])/N,c.height=(W[3]-W[1])/e,c.annotationElementId=l.id||null,i&&(c.altTextData=i),c._initialData=F,R(c,bW,!!F),c}serialize(l=!1,d=null){if(this.isEmpty())return null;if(this.deleted)return this.serializeDeleted();const Z={annotationType:Zl.STAMP,bitmapId:a(this,Td),pageIndex:this.pageIndex,rect:this.getRect(0,0),rotation:this.rotation,isSvg:a(this,GU),structTreeParentId:this._structTreeParentId};if(l)return Z.bitmapUrl=h(this,yl,Cn).call(this,!0),Z.accessibilityData=this.serializeAltText(!0),Z;const{decorative:t,altText:F}=this.serializeAltText(!1);if(!t&&F&&(Z.accessibilityData={type:"Figure",alt:F}),this.annotationElementId){const W=h(this,yl,Bb).call(this,Z);if(W.isSame)return null;W.isSameAltText?delete Z.accessibilityData:Z.accessibilityData.structParent=this._initialData.structParent??-1}if(Z.id=this.annotationElementId,d===null)return Z;d.stamps||(d.stamps=new Map);const c=a(this,GU)?(Z.rect[2]-Z.rect[0])*(Z.rect[3]-Z.rect[1]):null;if(!d.stamps.has(a(this,Td)))d.stamps.set(a(this,Td),{area:c,serialized:Z}),Z.bitmap=h(this,yl,Cn).call(this,!1);else if(a(this,GU)){const W=d.stamps.get(a(this,Td));c>W.area&&(W.area=c,W.serialized.bitmap.close(),W.serialized.bitmap=h(this,yl,Cn).call(this,!1))}return Z}renderAnnotationElement(l){return l.updateEdited({rect:this.getRect(0,0)}),null}};wl=new WeakMap,Td=new WeakMap,uF=new WeakMap,Yt=new WeakMap,LF=new WeakMap,wa=new WeakMap,kZ=new WeakMap,bZ=new WeakMap,GU=new WeakMap,bW=new WeakMap,yl=new WeakSet,_c=function(U,l=!1){if(!U){this.remove();return}R(this,wl,U.bitmap),l||(R(this,Td,U.id),R(this,GU,U.isSvg)),U.file&&R(this,wa,U.file.name),h(this,yl,ZR).call(this)},qc=function(){if(R(this,uF,null),this._uiManager.enableWaiting(!1),!!a(this,kZ)){if(this._uiManager.useNewAltTextWhenAddingImage&&this._uiManager.useNewAltTextFlow&&a(this,wl)){this._editToolbar.hide(),this._uiManager.editAltText(this,!0);return}if(!this._uiManager.useNewAltTextWhenAddingImage&&this._uiManager.useNewAltTextFlow&&a(this,wl)){this._reportTelemetry({action:"pdfjs.image.image_added",data:{alt_text_modal:!1,alt_text_type:"empty"}});try{this.mlGuessAltText()}catch{}}this.div.focus()}},wn=function(){if(a(this,Td)){this._uiManager.enableWaiting(!0),this._uiManager.imageManager.getFromId(a(this,Td)).then(d=>h(this,yl,_c).call(this,d,!0)).finally(()=>h(this,yl,qc).call(this));return}if(a(this,Yt)){const d=a(this,Yt);R(this,Yt,null),this._uiManager.enableWaiting(!0),R(this,uF,this._uiManager.imageManager.getFromUrl(d).then(Z=>h(this,yl,_c).call(this,Z)).finally(()=>h(this,yl,qc).call(this)));return}if(a(this,LF)){const d=a(this,LF);R(this,LF,null),this._uiManager.enableWaiting(!0),R(this,uF,this._uiManager.imageManager.getFromFile(d).then(Z=>h(this,yl,_c).call(this,Z)).finally(()=>h(this,yl,qc).call(this)));return}const U=document.createElement("input");U.type="file",U.accept=rn.supportedTypesStr;const l=this._uiManager._signal;R(this,uF,new Promise(d=>{U.addEventListener("change",async()=>{if(!U.files||U.files.length===0)this.remove();else{this._uiManager.enableWaiting(!0);const Z=await this._uiManager.imageManager.getFromFile(U.files[0]);this._reportTelemetry({action:"pdfjs.image.image_selected",data:{alt_text_modal:this._uiManager.useNewAltTextFlow}}),h(this,yl,_c).call(this,Z)}d()},{signal:l}),U.addEventListener("cancel",()=>{this.remove(),d()},{signal:l})}).finally(()=>h(this,yl,qc).call(this))),U.click()},ZR=function(){var U;const{div:l}=this;let{width:d,height:Z}=a(this,wl);const[t,F]=this.pageDimensions,c=.75;if(this.width)d=this.width*t,Z=this.height*F;else if(d>c*t||Z>c*F){const V=Math.min(c*t/d,c*F/Z);d*=V,Z*=V}const[W,s]=this.parentDimensions;this.setDims(d*W/t,Z*s/F),this._uiManager.enableWaiting(!1);const n=R(this,kZ,document.createElement("canvas"));n.setAttribute("role","img"),this.addContainer(n),this.width=d/t,this.height=Z/F,(U=this._initialOptions)!=null&&U.isCentered?this.center():this.fixAndSetPosition(),this._initialOptions=null,(!this._uiManager.useNewAltTextWhenAddingImage||!this._uiManager.useNewAltTextFlow||this.annotationElementId)&&(l.hidden=!1),h(this,yl,tR).call(this),a(this,bW)||(this.parent.addUndoableEditor(this),R(this,bW,!0)),this._reportTelemetry({action:"inserted_image"}),a(this,wa)&&n.setAttribute("aria-label",a(this,wa))},KV=function(U,l){const{width:d,height:Z}=a(this,wl);let t=d,F=Z,c=a(this,wl);for(;t>2*U||F>2*l;){const W=t,s=F;t>2*U&&(t=t>=16384?Math.floor(t/2)-1:Math.ceil(t/2)),F>2*l&&(F=F>=16384?Math.floor(F/2)-1:Math.ceil(F/2));const n=new OffscreenCanvas(t,F);n.getContext("2d").drawImage(c,0,0,W,s,0,0,t,F),c=n.transferToImageBitmap()}return c},tR=function(){const[U,l]=this.parentDimensions,{width:d,height:Z}=this,t=new CR,F=Math.ceil(d*U*t.sx),c=Math.ceil(Z*l*t.sy),W=a(this,kZ);if(!W||W.width===F&&W.height===c)return;W.width=F,W.height=c;const s=a(this,GU)?a(this,wl):h(this,yl,KV).call(this,F,c),n=W.getContext("2d");n.filter=this._uiManager.hcmFilter,n.drawImage(s,0,0,s.width,s.height,0,0,F,c)},Cn=function(U){if(U){if(a(this,GU)){const d=this._uiManager.imageManager.getSvgUrl(a(this,Td));if(d)return d}const l=document.createElement("canvas");return{width:l.width,height:l.height}=a(this,wl),l.getContext("2d").drawImage(a(this,wl),0,0),l.toDataURL()}if(a(this,GU)){const[l,d]=this.pageDimensions,Z=Math.round(this.width*l*Gc.PDF_TO_CSS_UNITS),t=Math.round(this.height*d*Gc.PDF_TO_CSS_UNITS),F=new OffscreenCanvas(Z,t);return F.getContext("2d").drawImage(a(this,wl),0,0,a(this,wl).width,a(this,wl).height,0,0,Z,t),F.transferToImageBitmap()}return structuredClone(a(this,wl))},Bb=function(U){var l;const{pageIndex:d,accessibilityData:{altText:Z}}=this._initialData,t=U.pageIndex===d,F=(((l=U.accessibilityData)==null?void 0:l.alt)||"")===Z;return{isSame:!this._hasBeenMoved&&!this._hasBeenResized&&t&&F,isSameAltText:F}},f(rn,"_type","stamp"),f(rn,"_editorType",Zl.STAMP);let ZJ=rn;var n0,$c,nZ,ft,gZ,XU,At,la,V0,jU,KZ,yd,vZ,j,pU,_t,$l,AN,OU,xQ,jQ,Ls;let tJ=(pU=class{constructor({uiManager:U,pageIndex:l,div:d,structTreeLayer:Z,accessibilityManager:t,annotationLayer:F,drawLayer:c,textLayer:W,viewport:s,l10n:n}){b(this,$l),b(this,n0),b(this,$c,!1),b(this,nZ,null),b(this,ft,null),b(this,gZ,null),b(this,XU,new Map),b(this,At,!1),b(this,la,!1),b(this,V0,!1),b(this,jU,null),b(this,KZ,null),b(this,yd,null),b(this,vZ,null),b(this,j);const V=[...a(pU,_t).values()];if(!pU._initialized){pU._initialized=!0;for(const Q of V)Q.initialize(n,U)}U.registerEditorTypes(V),R(this,j,U),this.pageIndex=l,this.div=d,R(this,n0,t),R(this,nZ,F),this.viewport=s,R(this,yd,W),this.drawLayer=c,this._structTree=Z,a(this,j).addLayer(this)}get isEmpty(){return a(this,XU).size===0}get isInvisible(){return this.isEmpty&&a(this,j).getMode()===Zl.NONE}updateToolbar(U){a(this,j).updateToolbar(U)}updateMode(U=a(this,j).getMode()){switch(h(this,$l,Ls).call(this),U){case Zl.NONE:this.disableTextSelection(),this.togglePointerEvents(!1),this.toggleAnnotationLayerPointerEvents(!0),this.disableClick();return;case Zl.INK:this.disableTextSelection(),this.togglePointerEvents(!0),this.enableClick();break;case Zl.HIGHLIGHT:this.enableTextSelection(),this.togglePointerEvents(!1),this.disableClick();break;default:this.disableTextSelection(),this.togglePointerEvents(!0),this.enableClick()}this.toggleAnnotationLayerPointerEvents(!1);const{classList:l}=this.div;for(const d of a(pU,_t).values())l.toggle(`${d._type}Editing`,U===d._editorType);this.div.hidden=!1}hasTextLayer(U){var l;return U===((l=a(this,yd))==null?void 0:l.div)}setEditingState(U){a(this,j).setEditingState(U)}addCommands(U){a(this,j).addCommands(U)}cleanUndoStack(U){a(this,j).cleanUndoStack(U)}toggleDrawing(U=!1){this.div.classList.toggle("drawing",!U)}togglePointerEvents(U=!1){this.div.classList.toggle("disabled",!U)}toggleAnnotationLayerPointerEvents(U=!1){var l;(l=a(this,nZ))==null||l.div.classList.toggle("disabled",!U)}async enable(){R(this,V0,!0),this.div.tabIndex=0,this.togglePointerEvents(!0);const U=new Set;for(const d of a(this,XU).values())d.enableEditing(),d.show(!0),d.annotationElementId&&(a(this,j).removeChangedExistingAnnotation(d),U.add(d.annotationElementId));if(!a(this,nZ)){R(this,V0,!1);return}const l=a(this,nZ).getEditableAnnotations();for(const d of l){if(d.hide(),a(this,j).isDeletedAnnotationElement(d.data.id)||U.has(d.data.id))continue;const Z=await this.deserialize(d);Z&&(this.addOrRebuild(Z),Z.enableEditing())}R(this,V0,!1)}disable(){var U;R(this,la,!0),this.div.tabIndex=-1,this.togglePointerEvents(!1);const l=new Map,d=new Map;for(const t of a(this,XU).values())if(t.disableEditing(),!!t.annotationElementId){if(t.serialize()!==null){l.set(t.annotationElementId,t);continue}else d.set(t.annotationElementId,t);(U=this.getEditableAnnotation(t.annotationElementId))==null||U.show(),t.remove()}if(a(this,nZ)){const t=a(this,nZ).getEditableAnnotations();for(const F of t){const{id:c}=F.data;if(a(this,j).isDeletedAnnotationElement(c))continue;let W=d.get(c);if(W){W.resetAnnotationElement(F),W.show(!1),F.show();continue}W=l.get(c),W&&(a(this,j).addChangedExistingAnnotation(W),W.renderAnnotationElement(F)&&W.show(!1)),F.show()}}h(this,$l,Ls).call(this),this.isEmpty&&(this.div.hidden=!0);const{classList:Z}=this.div;for(const t of a(pU,_t).values())Z.remove(`${t._type}Editing`);this.disableTextSelection(),this.toggleAnnotationLayerPointerEvents(!0),R(this,la,!1)}getEditableAnnotation(U){var l;return((l=a(this,nZ))==null?void 0:l.getEditableAnnotation(U))||null}setActiveEditor(U){a(this,j).getActive()!==U&&a(this,j).setActiveEditor(U)}enableTextSelection(){var U;if(this.div.tabIndex=-1,(U=a(this,yd))!=null&&U.div&&!a(this,vZ)){R(this,vZ,new AbortController);const l=a(this,j).combinedSignal(a(this,vZ));a(this,yd).div.addEventListener("pointerdown",h(this,$l,AN).bind(this),{signal:l}),a(this,yd).div.classList.add("highlighting")}}disableTextSelection(){var U;this.div.tabIndex=0,(U=a(this,yd))!=null&&U.div&&a(this,vZ)&&(a(this,vZ).abort(),R(this,vZ,null),a(this,yd).div.classList.remove("highlighting"))}enableClick(){if(a(this,ft))return;R(this,ft,new AbortController);const U=a(this,j).combinedSignal(a(this,ft));this.div.addEventListener("pointerdown",this.pointerdown.bind(this),{signal:U});const l=this.pointerup.bind(this);this.div.addEventListener("pointerup",l,{signal:U}),this.div.addEventListener("pointercancel",l,{signal:U})}disableClick(){var U;(U=a(this,ft))==null||U.abort(),R(this,ft,null)}attach(U){a(this,XU).set(U.id,U);const{annotationElementId:l}=U;l&&a(this,j).isDeletedAnnotationElement(l)&&a(this,j).removeDeletedAnnotationElement(U)}detach(U){var l;a(this,XU).delete(U.id),(l=a(this,n0))==null||l.removePointerInTextLayer(U.contentDiv),!a(this,la)&&U.annotationElementId&&a(this,j).addDeletedAnnotationElement(U)}remove(U){this.detach(U),a(this,j).removeEditor(U),U.div.remove(),U.isAttachedToDOM=!1}changeParent(U){var l;U.parent!==this&&(U.parent&&U.annotationElementId&&(a(this,j).addDeletedAnnotationElement(U.annotationElementId),Kl.deleteAnnotationElement(U),U.annotationElementId=null),this.attach(U),(l=U.parent)==null||l.detach(U),U.setParent(this),U.div&&U.isAttachedToDOM&&(U.div.remove(),this.div.append(U.div)))}add(U){if(!(U.parent===this&&U.isAttachedToDOM)){if(this.changeParent(U),a(this,j).addEditor(U),this.attach(U),!U.isAttachedToDOM){const l=U.render();this.div.append(l),U.isAttachedToDOM=!0}U.fixAndSetPosition(),U.onceAdded(!a(this,V0)),a(this,j).addToAnnotationStorage(U),U._reportTelemetry(U.telemetryInitialData)}}moveEditorInDOM(U){var l;if(!U.isAttachedToDOM)return;const{activeElement:d}=document;U.div.contains(d)&&!a(this,gZ)&&(U._focusEventsAllowed=!1,R(this,gZ,setTimeout(()=>{R(this,gZ,null),U.div.contains(document.activeElement)?U._focusEventsAllowed=!0:(U.div.addEventListener("focusin",()=>{U._focusEventsAllowed=!0},{once:!0,signal:a(this,j)._signal}),d.focus())},0))),U._structTreeParentId=(l=a(this,n0))==null?void 0:l.moveElementInDOM(this.div,U.div,U.contentDiv,!0)}addOrRebuild(U){U.needsToBeRebuilt()?(U.parent||(U.parent=this),U.rebuild(),U.show()):this.add(U)}addUndoableEditor(U){const l=()=>U._uiManager.rebuild(U),d=()=>{U.remove()};this.addCommands({cmd:l,undo:d,mustExec:!1})}getNextId(){return a(this,j).getId()}combinedSignal(U){return a(this,j).combinedSignal(U)}canCreateNewEmptyEditor(){var U;return(U=a(this,$l,OU))==null?void 0:U.canCreateNewEmptyEditor()}pasteEditor(U,l){a(this,j).updateToolbar(U),a(this,j).updateMode(U);const{offsetX:d,offsetY:Z}=h(this,$l,jQ).call(this),t=this.getNextId(),F=h(this,$l,xQ).call(this,{parent:this,id:t,x:d,y:Z,uiManager:a(this,j),isCentered:!0,...l});F&&this.add(F)}async deserialize(U){var l;return await((l=a(pU,_t).get(U.annotationType??U.annotationEditorType))==null?void 0:l.deserialize(U,this,a(this,j)))||null}createAndAddNewEditor(U,l,d={}){const Z=this.getNextId(),t=h(this,$l,xQ).call(this,{parent:this,id:Z,x:U.offsetX,y:U.offsetY,uiManager:a(this,j),isCentered:l,...d});return t&&this.add(t),t}addNewEditor(){this.createAndAddNewEditor(h(this,$l,jQ).call(this),!0)}setSelected(U){a(this,j).setSelected(U)}toggleSelected(U){a(this,j).toggleSelected(U)}unselect(U){a(this,j).unselect(U)}pointerup(U){var l;const{isMac:d}=Id.platform;if(!(U.button!==0||U.ctrlKey&&d)&&U.target===this.div&&a(this,At)&&(R(this,At,!1),!((l=a(this,$l,OU))!=null&&l.isDrawer&&a(this,$l,OU).supportMultipleDrawings))){if(!a(this,$c)){R(this,$c,!0);return}if(a(this,j).getMode()===Zl.STAMP){a(this,j).unselectAll();return}this.createAndAddNewEditor(U,!1)}}pointerdown(U){var l;if(a(this,j).getMode()===Zl.HIGHLIGHT&&this.enableTextSelection(),a(this,At)){R(this,At,!1);return}const{isMac:d}=Id.platform;if(U.button!==0||U.ctrlKey&&d||U.target!==this.div)return;if(R(this,At,!0),(l=a(this,$l,OU))!=null&&l.isDrawer){this.startDrawingSession(U);return}const Z=a(this,j).getActive();R(this,$c,!Z||Z.isEmpty())}startDrawingSession(U){if(this.div.focus(),a(this,jU)){a(this,$l,OU).startDrawing(this,a(this,j),!1,U);return}a(this,j).setCurrentDrawingSession(this),R(this,jU,new AbortController);const l=a(this,j).combinedSignal(a(this,jU));this.div.addEventListener("blur",({relatedTarget:d})=>{d&&!this.div.contains(d)&&(R(this,KZ,null),this.commitOrRemove())},{signal:l}),a(this,$l,OU).startDrawing(this,a(this,j),!1,U)}pause(U){if(U){const{activeElement:l}=document;this.div.contains(l)&&R(this,KZ,l);return}a(this,KZ)&&setTimeout(()=>{var l;(l=a(this,KZ))==null||l.focus(),R(this,KZ,null)},0)}endDrawingSession(U=!1){return a(this,jU)?(a(this,j).setCurrentDrawingSession(null),a(this,jU).abort(),R(this,jU,null),R(this,KZ,null),a(this,$l,OU).endDrawing(U)):null}findNewParent(U,l,d){const Z=a(this,j).findParent(l,d);return Z===null||Z===this?!1:(Z.changeParent(U),!0)}commitOrRemove(){return a(this,jU)?(this.endDrawingSession(),!0):!1}onScaleChanging(){a(this,jU)&&a(this,$l,OU).onScaleChangingWhenDrawing(this)}destroy(){var U,l;this.commitOrRemove(),((U=a(this,j).getActive())==null?void 0:U.parent)===this&&(a(this,j).commitOrRemove(),a(this,j).setActiveEditor(null)),a(this,gZ)&&(clearTimeout(a(this,gZ)),R(this,gZ,null));for(const d of a(this,XU).values())(l=a(this,n0))==null||l.removePointerInTextLayer(d.contentDiv),d.setParent(null),d.isAttachedToDOM=!1,d.div.remove();this.div=null,a(this,XU).clear(),a(this,j).removeLayer(this)}render({viewport:U}){this.viewport=U,wF(this.div,U);for(const l of a(this,j).getEditors(this.pageIndex))this.add(l),l.rebuild();this.updateMode()}update({viewport:U}){a(this,j).commitOrRemove(),h(this,$l,Ls).call(this);const l=this.viewport.rotation,d=U.rotation;if(this.viewport=U,wF(this.div,{rotation:d}),l!==d)for(const Z of a(this,XU).values())Z.rotate(d)}get pageDimensions(){const{pageWidth:U,pageHeight:l}=this.viewport.rawDims;return[U,l]}get scale(){return a(this,j).viewParameters.realScale}},n0=new WeakMap,$c=new WeakMap,nZ=new WeakMap,ft=new WeakMap,gZ=new WeakMap,XU=new WeakMap,At=new WeakMap,la=new WeakMap,V0=new WeakMap,jU=new WeakMap,KZ=new WeakMap,yd=new WeakMap,vZ=new WeakMap,j=new WeakMap,_t=new WeakMap,$l=new WeakSet,AN=function(U){a(this,j).unselectAll();const{target:l}=U;if(l===a(this,yd).div||(l.getAttribute("role")==="img"||l.classList.contains("endOfContent"))&&a(this,yd).div.contains(l)){const{isMac:d}=Id.platform;if(U.button!==0||U.ctrlKey&&d)return;a(this,j).showAllEditors("highlight",!0,!0),a(this,yd).div.classList.add("free"),this.toggleDrawing(),PN.startHighlighting(this,a(this,j).direction==="ltr",{target:a(this,yd).div,x:U.x,y:U.y}),a(this,yd).div.addEventListener("pointerup",()=>{a(this,yd).div.classList.remove("free"),this.toggleDrawing(!0)},{once:!0,signal:a(this,j)._signal}),U.preventDefault()}},OU=function(){return a(pU,_t).get(a(this,j).getMode())},xQ=function(U){const l=a(this,$l,OU);return l?new l.prototype.constructor(U):null},jQ=function(){const{x:U,y:l,width:d,height:Z}=this.div.getBoundingClientRect(),t=Math.max(0,U),F=Math.max(0,l),c=Math.min(window.innerWidth,U+d),W=Math.min(window.innerHeight,l+Z),s=(t+c)/2-U,n=(F+W)/2-l,[V,Q]=this.viewport.rotation%180===0?[s,n]:[n,s];return{offsetX:V,offsetY:Q}},Ls=function(){for(const U of a(this,XU).values())U.isEmpty()&&U.remove()},f(pU,"_initialized",!1),b(pU,_t,new Map([HM,UJ,ZJ,PN].map(U=>[U._editorType,U]))),pU);var gU,Is,Ed,Q0,OQ,md,_N,qt,gQ,qN,KQ;let FJ=(md=class{constructor({pageIndex:U}){b(this,qt),b(this,gU,null),b(this,Is,0),b(this,Ed,new Map),b(this,Q0,new Map),this.pageIndex=U}setParent(U){if(!a(this,gU)){R(this,gU,U);return}if(a(this,gU)!==U){if(a(this,Ed).size>0)for(const l of a(this,Ed).values())l.remove(),U.append(l);R(this,gU,U)}}static get _svgFactory(){return tl(this,"_svgFactory",new jR)}draw(U,l=!1,d=!1){const Z=Ld(this,Is)._++,t=h(this,qt,gQ).call(this),F=md._svgFactory.createElement("defs");t.append(F);const c=md._svgFactory.createElement("path");F.append(c);const W=`path_p${this.pageIndex}_${Z}`;c.setAttribute("id",W),c.setAttribute("vector-effect","non-scaling-stroke"),l&&a(this,Q0).set(Z,c);const s=d?h(this,qt,qN).call(this,F,W):null,n=md._svgFactory.createElement("use");return t.append(n),n.setAttribute("href",`#${W}`),this.updateProperties(t,U),a(this,Ed).set(Z,t),{id:Z,clipPathId:`url(#${s})`}}drawOutline(U,l){const d=Ld(this,Is)._++,Z=h(this,qt,gQ).call(this),t=md._svgFactory.createElement("defs");Z.append(t);const F=md._svgFactory.createElement("path");t.append(F);const c=`path_p${this.pageIndex}_${d}`;F.setAttribute("id",c),F.setAttribute("vector-effect","non-scaling-stroke");let W;if(l){const V=md._svgFactory.createElement("mask");t.append(V),W=`mask_p${this.pageIndex}_${d}`,V.setAttribute("id",W),V.setAttribute("maskUnits","objectBoundingBox");const Q=md._svgFactory.createElement("rect");V.append(Q),Q.setAttribute("width","1"),Q.setAttribute("height","1"),Q.setAttribute("fill","white");const i=md._svgFactory.createElement("use");V.append(i),i.setAttribute("href",`#${c}`),i.setAttribute("stroke","none"),i.setAttribute("fill","black"),i.setAttribute("fill-rule","nonzero"),i.classList.add("mask")}const s=md._svgFactory.createElement("use");Z.append(s),s.setAttribute("href",`#${c}`),W&&s.setAttribute("mask",`url(#${W})`);const n=s.cloneNode();return Z.append(n),s.classList.add("mainOutline"),n.classList.add("secondaryOutline"),this.updateProperties(Z,U),a(this,Ed).set(d,Z),d}finalizeDraw(U,l){a(this,Q0).delete(U),this.updateProperties(U,l)}updateProperties(U,l){var d;if(!l)return;const{root:Z,bbox:t,rootClass:F,path:c}=l,W=typeof U=="number"?a(this,Ed).get(U):U;if(W){if(Z&&h(this,qt,KQ).call(this,W,Z),t&&h(d=md,OQ,_N).call(d,W,t),F){const{classList:s}=W;for(const[n,V]of Object.entries(F))s.toggle(n,V)}if(c){const s=W.firstChild.firstChild;h(this,qt,KQ).call(this,s,c)}}}updateParent(U,l){if(l===this)return;const d=a(this,Ed).get(U);d&&(a(l,gU).append(d),a(this,Ed).delete(U),a(l,Ed).set(U,d))}remove(U){a(this,Q0).delete(U),a(this,gU)!==null&&(a(this,Ed).get(U).remove(),a(this,Ed).delete(U))}destroy(){R(this,gU,null);for(const U of a(this,Ed).values())U.remove();a(this,Ed).clear(),a(this,Q0).clear()}},gU=new WeakMap,Is=new WeakMap,Ed=new WeakMap,Q0=new WeakMap,OQ=new WeakSet,_N=function(U,[l,d,Z,t]){const{style:F}=U;F.top=`${100*d}%`,F.left=`${100*l}%`,F.width=`${100*Z}%`,F.height=`${100*t}%`},qt=new WeakSet,gQ=function(){const U=md._svgFactory.create(1,1,!0);return a(this,gU).append(U),U.setAttribute("aria-hidden",!0),U},qN=function(U,l){const d=md._svgFactory.createElement("clipPath");U.append(d);const Z=`clip_${l}`;d.setAttribute("id",Z),d.setAttribute("clipPathUnits","objectBoundingBox");const t=md._svgFactory.createElement("use");return d.append(t),t.setAttribute("href",`#${l}`),t.classList.add("clip"),Z},KQ=function(U,l){for(const[d,Z]of Object.entries(l))Z===null?U.removeAttribute(d):U.setAttribute(d,Z)},b(md,OQ),md);globalThis.pdfjsTestingUtils={HighlightOutliner:Ai};$.AbortException;$.AnnotationEditorLayer;$.AnnotationEditorParamsType;$.AnnotationEditorType;$.AnnotationEditorUIManager;var cJ=$.AnnotationLayer;$.AnnotationMode;$.ColorPicker;$.DOMSVGFactory;$.DrawLayer;$.FeatureTest;var vQ=$.GlobalWorkerOptions;$.ImageKind;$.InvalidPDFException;$.MissingPDFException;$.OPS;$.OutputScale;$.PDFDataRangeTransport;$.PDFDateString;$.PDFWorker;var aJ=$.PasswordResponses;$.PermissionFlag;$.PixelsPerInch;$.RenderingCancelledException;var WJ=$.TextLayer;$.TouchManager;$.UnexpectedResponseException;$.Util;$.VerbosityLevel;$.XfaLayer;$.build;$.createValidAbsoluteUrl;$.fetchData;var sJ=$.getDocument;$.getFilenameFromUrl;$.getPdfFilenameFromUrl;$.getXfaPageViewport;$.isDataScheme;$.isPdfFile;$.noContextMenu;$.normalizeUnicode;$.setLayerDimensions;$.shadow;$.stopEvent;$.version;const nJ="data:text/javascript;base64,LyoqCiAqIEBsaWNzdGFydCBUaGUgZm9sbG93aW5nIGlzIHRoZSBlbnRpcmUgbGljZW5zZSBub3RpY2UgZm9yIHRoZQogKiBKYXZhU2NyaXB0IGNvZGUgaW4gdGhpcyBwYWdlCiAqCiAqIENvcHlyaWdodCAyMDI0IE1vemlsbGEgRm91bmRhdGlvbgogKgogKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKICoKICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogKgogKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgogKgogKiBAbGljZW5kIFRoZSBhYm92ZSBpcyB0aGUgZW50aXJlIGxpY2Vuc2Ugbm90aWNlIGZvciB0aGUKICogSmF2YVNjcmlwdCBjb2RlIGluIHRoaXMgcGFnZQogKi92YXIgZT17OTMwNjooZSx0LGkpPT57dmFyIGE9aSg0OTAxKSxyPWkoNjgyMykscz1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKGEoZSkpcmV0dXJuIGU7dGhyb3cgbmV3IHMocihlKSsiIGlzIG5vdCBhIGZ1bmN0aW9uIil9fSwzNTA2OihlLHQsaSk9Pnt2YXIgYT1pKDM5MjUpLHI9U3RyaW5nLHM9VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihhKGUpKXJldHVybiBlO3Rocm93IG5ldyBzKCJDYW4ndCBzZXQgIityKGUpKyIgYXMgYSBwcm90b3R5cGUiKX19LDcwODA6KGUsdCxpKT0+e3ZhciBhPWkoNDQwMikuaGFzO2UuZXhwb3J0cz1mdW5jdGlvbihlKXthKGUpO3JldHVybiBlfX0sNjc5OihlLHQsaSk9Pnt2YXIgYT1pKDE2MjUpLHI9VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKGEodCxlKSlyZXR1cm4gZTt0aHJvdyBuZXcgcigiSW5jb3JyZWN0IGludm9jYXRpb24iKX19LDg1NTE6KGUsdCxpKT0+e3ZhciBhPWkoMzQpLHI9U3RyaW5nLHM9VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihhKGUpKXJldHVybiBlO3Rocm93IG5ldyBzKHIoZSkrIiBpcyBub3QgYW4gb2JqZWN0Iil9fSw3ODExOmU9PntlLmV4cG9ydHM9InVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmInVuZGVmaW5lZCIhPXR5cGVvZiBEYXRhVmlld30sNzM5NDooZSx0LGkpPT57dmFyIGE9aSg0NTc2KSxyPWkoNjcwNikscz1pKDIxOTUpLG49YS5BcnJheUJ1ZmZlcixvPWEuVHlwZUVycm9yO2UuZXhwb3J0cz1uJiZyKG4ucHJvdG90eXBlLCJieXRlTGVuZ3RoIiwiZ2V0Iil8fGZ1bmN0aW9uKGUpe2lmKCJBcnJheUJ1ZmZlciIhPT1zKGUpKXRocm93IG5ldyBvKCJBcnJheUJ1ZmZlciBleHBlY3RlZCIpO3JldHVybiBlLmJ5dGVMZW5ndGh9fSwzMjM4OihlLHQsaSk9Pnt2YXIgYT1pKDQ1NzYpLHI9aSg3NDc2KSxzPWkoNzM5NCksbj1hLkFycmF5QnVmZmVyLG89biYmbi5wcm90b3R5cGUsZz1vJiZyKG8uc2xpY2UpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZigwIT09cyhlKSlyZXR1cm4hMTtpZighZylyZXR1cm4hMTt0cnl7ZyhlLDAsMCk7cmV0dXJuITF9Y2F0Y2goZSl7cmV0dXJuITB9fX0sNTE2OTooZSx0LGkpPT57dmFyIGE9aSgzMjM4KSxyPVR5cGVFcnJvcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoYShlKSl0aHJvdyBuZXcgcigiQXJyYXlCdWZmZXIgaXMgZGV0YWNoZWQiKTtyZXR1cm4gZX19LDU2MzY6KGUsdCxpKT0+e3ZhciBhPWkoNDU3Nikscj1pKDk1MDQpLHM9aSg2NzA2KSxuPWkoNzY5Niksbz1pKDUxNjkpLGc9aSg3Mzk0KSxjPWkoNDQ4MyksbD1pKDE1NDgpLGg9YS5zdHJ1Y3R1cmVkQ2xvbmUsQz1hLkFycmF5QnVmZmVyLFE9YS5EYXRhVmlldyxFPU1hdGgubWluLHU9Qy5wcm90b3R5cGUsZD1RLnByb3RvdHlwZSxmPXIodS5zbGljZSkscD1zKHUsInJlc2l6YWJsZSIsImdldCIpLG09cyh1LCJtYXhCeXRlTGVuZ3RoIiwiZ2V0IikseT1yKGQuZ2V0SW50OCksdz1yKGQuc2V0SW50OCk7ZS5leHBvcnRzPShsfHxjKSYmZnVuY3Rpb24oZSx0LGkpe3ZhciBhLHI9ZyhlKSxzPXZvaWQgMD09PXQ/cjpuKHQpLHU9IXB8fCFwKGUpO28oZSk7aWYobCl7ZT1oKGUse3RyYW5zZmVyOltlXX0pO2lmKHI9PT1zJiYoaXx8dSkpcmV0dXJuIGV9aWYocj49cyYmKCFpfHx1KSlhPWYoZSwwLHMpO2Vsc2V7dmFyIGQ9aSYmIXUmJm0/e21heEJ5dGVMZW5ndGg6bShlKX06dm9pZCAwO2E9bmV3IEMocyxkKTtmb3IodmFyIGI9bmV3IFEoZSksRD1uZXcgUShhKSxTPUUocyxyKSxrPTA7azxTO2srKyl3KEQsayx5KGIsaykpfWx8fGMoZSk7cmV0dXJuIGF9fSw0NjQ0OihlLHQsaSk9Pnt2YXIgYSxyLHMsbj1pKDc4MTEpLG89aSgzNzI0KSxnPWkoNDU3NiksYz1pKDQ5MDEpLGw9aSgzNCksaD1pKDkyOTcpLEM9aSg2OTU1KSxRPWkoNjgyMyksRT1pKDY2OTkpLHU9aSg2ODQwKSxkPWkoMjEwNiksZj1pKDE2MjUpLHA9aSgyNzg3KSxtPWkoMjk2NykseT1pKDgyMjcpLHc9aSgzMzkyKSxiPWkoMTE4MSksRD1iLmVuZm9yY2UsUz1iLmdldCxrPWcuSW50OEFycmF5LFI9ayYmay5wcm90b3R5cGUsTj1nLlVpbnQ4Q2xhbXBlZEFycmF5LEc9TiYmTi5wcm90b3R5cGUsTT1rJiZwKGspLFU9UiYmcChSKSx4PU9iamVjdC5wcm90b3R5cGUsTD1nLlR5cGVFcnJvcixIPXkoInRvU3RyaW5nVGFnIiksSj13KCJUWVBFRF9BUlJBWV9UQUciKSx2PSJUeXBlZEFycmF5Q29uc3RydWN0b3IiLFk9biYmISFtJiYiT3BlcmEiIT09QyhnLm9wZXJhKSxLPSExLFQ9e0ludDhBcnJheToxLFVpbnQ4QXJyYXk6MSxVaW50OENsYW1wZWRBcnJheToxLEludDE2QXJyYXk6MixVaW50MTZBcnJheToyLEludDMyQXJyYXk6NCxVaW50MzJBcnJheTo0LEZsb2F0MzJBcnJheTo0LEZsb2F0NjRBcnJheTo4fSxxPXtCaWdJbnQ2NEFycmF5OjgsQmlnVWludDY0QXJyYXk6OH0sZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yPWZ1bmN0aW9uKGUpe3ZhciB0PXAoZSk7aWYobCh0KSl7dmFyIGk9Uyh0KTtyZXR1cm4gaSYmaChpLHYpP2lbdl06Z2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yKHQpfX0saXNUeXBlZEFycmF5PWZ1bmN0aW9uKGUpe2lmKCFsKGUpKXJldHVybiExO3ZhciB0PUMoZSk7cmV0dXJuIGgoVCx0KXx8aChxLHQpfTtmb3IoYSBpbiBUKShzPShyPWdbYV0pJiZyLnByb3RvdHlwZSk/RChzKVt2XT1yOlk9ITE7Zm9yKGEgaW4gcSkocz0ocj1nW2FdKSYmci5wcm90b3R5cGUpJiYoRChzKVt2XT1yKTtpZighWXx8IWMoTSl8fE09PT1GdW5jdGlvbi5wcm90b3R5cGUpe009ZnVuY3Rpb24gVHlwZWRBcnJheSgpe3Rocm93IG5ldyBMKCJJbmNvcnJlY3QgaW52b2NhdGlvbiIpfTtpZihZKWZvcihhIGluIFQpZ1thXSYmbShnW2FdLE0pfWlmKCFZfHwhVXx8VT09PXgpe1U9TS5wcm90b3R5cGU7aWYoWSlmb3IoYSBpbiBUKWdbYV0mJm0oZ1thXS5wcm90b3R5cGUsVSl9WSYmcChHKSE9PVUmJm0oRyxVKTtpZihvJiYhaChVLEgpKXtLPSEwO2QoVSxILHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGwodGhpcyk/dGhpc1tKXTp2b2lkIDB9fSk7Zm9yKGEgaW4gVClnW2FdJiZFKGdbYV0sSixhKX1lLmV4cG9ydHM9e05BVElWRV9BUlJBWV9CVUZGRVJfVklFV1M6WSxUWVBFRF9BUlJBWV9UQUc6SyYmSixhVHlwZWRBcnJheTpmdW5jdGlvbihlKXtpZihpc1R5cGVkQXJyYXkoZSkpcmV0dXJuIGU7dGhyb3cgbmV3IEwoIlRhcmdldCBpcyBub3QgYSB0eXBlZCBhcnJheSIpfSxhVHlwZWRBcnJheUNvbnN0cnVjdG9yOmZ1bmN0aW9uKGUpe2lmKGMoZSkmJighbXx8ZihNLGUpKSlyZXR1cm4gZTt0aHJvdyBuZXcgTChRKGUpKyIgaXMgbm90IGEgdHlwZWQgYXJyYXkgY29uc3RydWN0b3IiKX0sZXhwb3J0VHlwZWRBcnJheU1ldGhvZDpmdW5jdGlvbihlLHQsaSxhKXtpZihvKXtpZihpKWZvcih2YXIgciBpbiBUKXt2YXIgcz1nW3JdO2lmKHMmJmgocy5wcm90b3R5cGUsZSkpdHJ5e2RlbGV0ZSBzLnByb3RvdHlwZVtlXX1jYXRjaChpKXt0cnl7cy5wcm90b3R5cGVbZV09dH1jYXRjaChlKXt9fX1VW2VdJiYhaXx8dShVLGUsaT90OlkmJlJbZV18fHQsYSl9fSxleHBvcnRUeXBlZEFycmF5U3RhdGljTWV0aG9kOmZ1bmN0aW9uKGUsdCxpKXt2YXIgYSxyO2lmKG8pe2lmKG0pe2lmKGkpZm9yKGEgaW4gVClpZigocj1nW2FdKSYmaChyLGUpKXRyeXtkZWxldGUgcltlXX1jYXRjaChlKXt9aWYoTVtlXSYmIWkpcmV0dXJuO3RyeXtyZXR1cm4gdShNLGUsaT90OlkmJk1bZV18fHQpfWNhdGNoKGUpe319Zm9yKGEgaW4gVCkhKHI9Z1thXSl8fHJbZV0mJiFpfHx1KHIsZSx0KX19LGdldFR5cGVkQXJyYXlDb25zdHJ1Y3Rvcixpc1ZpZXc6ZnVuY3Rpb24gaXNWaWV3KGUpe2lmKCFsKGUpKXJldHVybiExO3ZhciB0PUMoZSk7cmV0dXJuIkRhdGFWaWV3Ij09PXR8fGgoVCx0KXx8aChxLHQpfSxpc1R5cGVkQXJyYXksVHlwZWRBcnJheTpNLFR5cGVkQXJyYXlQcm90b3R5cGU6VX19LDUzNzA6KGUsdCxpKT0+e3ZhciBhPWkoNjE5OCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxpKXtmb3IodmFyIHI9MCxzPWFyZ3VtZW50cy5sZW5ndGg+Mj9pOmEodCksbj1uZXcgZShzKTtzPnI7KW5bcl09dFtyKytdO3JldHVybiBufX0sOTYxNzooZSx0LGkpPT57dmFyIGE9aSg1Mzk3KSxyPWkoNTYxMCkscz1pKDYxOTgpLGNyZWF0ZU1ldGhvZD1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxpLG4pe3ZhciBvPWEodCksZz1zKG8pO2lmKDA9PT1nKXJldHVybiFlJiYtMTt2YXIgYyxsPXIobixnKTtpZihlJiZpIT1pKXtmb3IoO2c+bDspaWYoKGM9b1tsKytdKSE9YylyZXR1cm4hMH1lbHNlIGZvcig7Zz5sO2wrKylpZigoZXx8bCBpbiBvKSYmb1tsXT09PWkpcmV0dXJuIGV8fGx8fDA7cmV0dXJuIWUmJi0xfX07ZS5leHBvcnRzPXtpbmNsdWRlczpjcmVhdGVNZXRob2QoITApLGluZGV4T2Y6Y3JlYXRlTWV0aG9kKCExKX19LDQ1Mjc6KGUsdCxpKT0+e3ZhciBhPWkoMzcyNCkscj1pKDQzNzYpLHM9VHlwZUVycm9yLG49T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixvPWEmJiFmdW5jdGlvbigpe2lmKHZvaWQgMCE9PXRoaXMpcmV0dXJuITA7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShbXSwibGVuZ3RoIix7d3JpdGFibGU6ITF9KS5sZW5ndGg9MX1jYXRjaChlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIFR5cGVFcnJvcn19KCk7ZS5leHBvcnRzPW8/ZnVuY3Rpb24oZSx0KXtpZihyKGUpJiYhbihlLCJsZW5ndGgiKS53cml0YWJsZSl0aHJvdyBuZXcgcygiQ2Fubm90IHNldCByZWFkIG9ubHkgLmxlbmd0aCIpO3JldHVybiBlLmxlbmd0aD10fTpmdW5jdGlvbihlLHQpe3JldHVybiBlLmxlbmd0aD10fX0sNzY4MDooZSx0LGkpPT57dmFyIGE9aSg5NTA0KTtlLmV4cG9ydHM9YShbXS5zbGljZSl9LDc2Mjg6KGUsdCxpKT0+e3ZhciBhPWkoNjE5OCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBpPWEoZSkscj1uZXcgdChpKSxzPTA7czxpO3MrKylyW3NdPWVbaS1zLTFdO3JldHVybiByfX0sOTkyODooZSx0LGkpPT57dmFyIGE9aSg2MTk4KSxyPWkoMTI5MSkscz1SYW5nZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsaSxuKXt2YXIgbz1hKGUpLGc9cihpKSxjPWc8MD9vK2c6ZztpZihjPj1vfHxjPDApdGhyb3cgbmV3IHMoIkluY29ycmVjdCBpbmRleCIpO2Zvcih2YXIgbD1uZXcgdChvKSxoPTA7aDxvO2grKylsW2hdPWg9PT1jP246ZVtoXTtyZXR1cm4gbH19LDYzMTk6KGUsdCxpKT0+e3ZhciBhPWkoODU1MSkscj1pKDk1MzkpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsaSxzKXt0cnl7cmV0dXJuIHM/dChhKGkpWzBdLGlbMV0pOnQoaSl9Y2F0Y2godCl7cihlLCJ0aHJvdyIsdCl9fX0sMjE5NTooZSx0LGkpPT57dmFyIGE9aSg5NTA0KSxyPWEoe30udG9TdHJpbmcpLHM9YSgiIi5zbGljZSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBzKHIoZSksOCwtMSl9fSw2OTU1OihlLHQsaSk9Pnt2YXIgYT1pKDIxNDApLHI9aSg0OTAxKSxzPWkoMjE5NSksbj1pKDgyMjcpKCJ0b1N0cmluZ1RhZyIpLG89T2JqZWN0LGc9IkFyZ3VtZW50cyI9PT1zKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk7ZS5leHBvcnRzPWE/czpmdW5jdGlvbihlKXt2YXIgdCxpLGE7cmV0dXJuIHZvaWQgMD09PWU/IlVuZGVmaW5lZCI6bnVsbD09PWU/Ik51bGwiOiJzdHJpbmciPT10eXBlb2YoaT1mdW5jdGlvbihlLHQpe3RyeXtyZXR1cm4gZVt0XX1jYXRjaChlKXt9fSh0PW8oZSksbikpP2k6Zz9zKHQpOiJPYmplY3QiPT09KGE9cyh0KSkmJnIodC5jYWxsZWUpPyJBcmd1bWVudHMiOmF9fSw3NzQwOihlLHQsaSk9Pnt2YXIgYT1pKDkyOTcpLHI9aSg1MDMxKSxzPWkoNzM0Nyksbj1pKDQ5MTMpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsaSl7Zm9yKHZhciBvPXIodCksZz1uLmYsYz1zLmYsbD0wO2w8by5sZW5ndGg7bCsrKXt2YXIgaD1vW2xdO2EoZSxoKXx8aSYmYShpLGgpfHxnKGUsaCxjKHQsaCkpfX19LDIyMTE6KGUsdCxpKT0+e3ZhciBhPWkoOTAzOSk7ZS5leHBvcnRzPSFhKChmdW5jdGlvbigpe2Z1bmN0aW9uIEYoKXt9Ri5wcm90b3R5cGUuY29uc3RydWN0b3I9bnVsbDtyZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBGKSE9PUYucHJvdG90eXBlfSkpfSwyNTI5OmU9PntlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm57dmFsdWU6ZSxkb25lOnR9fX0sNjY5OTooZSx0LGkpPT57dmFyIGE9aSgzNzI0KSxyPWkoNDkxMykscz1pKDY5ODApO2UuZXhwb3J0cz1hP2Z1bmN0aW9uKGUsdCxpKXtyZXR1cm4gci5mKGUsdCxzKDEsaSkpfTpmdW5jdGlvbihlLHQsaSl7ZVt0XT1pO3JldHVybiBlfX0sNjk4MDplPT57ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJue2VudW1lcmFibGU6ISgxJmUpLGNvbmZpZ3VyYWJsZTohKDImZSksd3JpdGFibGU6ISg0JmUpLHZhbHVlOnR9fX0sNDY1OTooZSx0LGkpPT57dmFyIGE9aSgzNzI0KSxyPWkoNDkxMykscz1pKDY5ODApO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsaSl7YT9yLmYoZSx0LHMoMCxpKSk6ZVt0XT1pfX0sMjEwNjooZSx0LGkpPT57dmFyIGE9aSgyODMpLHI9aSg0OTEzKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LGkpe2kuZ2V0JiZhKGkuZ2V0LHQse2dldHRlcjohMH0pO2kuc2V0JiZhKGkuc2V0LHQse3NldHRlcjohMH0pO3JldHVybiByLmYoZSx0LGkpfX0sNjg0MDooZSx0LGkpPT57dmFyIGE9aSg0OTAxKSxyPWkoNDkxMykscz1pKDI4Myksbj1pKDk0MzMpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsaSxvKXtvfHwobz17fSk7dmFyIGc9by5lbnVtZXJhYmxlLGM9dm9pZCAwIT09by5uYW1lP28ubmFtZTp0O2EoaSkmJnMoaSxjLG8pO2lmKG8uZ2xvYmFsKWc/ZVt0XT1pOm4odCxpKTtlbHNle3RyeXtvLnVuc2FmZT9lW3RdJiYoZz0hMCk6ZGVsZXRlIGVbdF19Y2F0Y2goZSl7fWc/ZVt0XT1pOnIuZihlLHQse3ZhbHVlOmksZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6IW8ubm9uQ29uZmlndXJhYmxlLHdyaXRhYmxlOiFvLm5vbldyaXRhYmxlfSl9cmV0dXJuIGV9fSw2Mjc5OihlLHQsaSk9Pnt2YXIgYT1pKDY4NDApO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsaSl7Zm9yKHZhciByIGluIHQpYShlLHIsdFtyXSxpKTtyZXR1cm4gZX19LDk0MzM6KGUsdCxpKT0+e3ZhciBhPWkoNDU3Nikscj1PYmplY3QuZGVmaW5lUHJvcGVydHk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dHJ5e3IoYSxlLHt2YWx1ZTp0LGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pfWNhdGNoKGkpe2FbZV09dH1yZXR1cm4gdH19LDM3MjQ6KGUsdCxpKT0+e3ZhciBhPWkoOTAzOSk7ZS5leHBvcnRzPSFhKChmdW5jdGlvbigpe3JldHVybiA3IT09T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LDEse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pWzFdfSkpfSw0NDgzOihlLHQsaSk9Pnt2YXIgYSxyLHMsbixvPWkoNDU3NiksZz1pKDk0MjkpLGM9aSgxNTQ4KSxsPW8uc3RydWN0dXJlZENsb25lLGg9by5BcnJheUJ1ZmZlcixDPW8uTWVzc2FnZUNoYW5uZWwsUT0hMTtpZihjKVE9ZnVuY3Rpb24oZSl7bChlLHt0cmFuc2ZlcjpbZV19KX07ZWxzZSBpZihoKXRyeXtDfHwoYT1nKCJ3b3JrZXJfdGhyZWFkcyIpKSYmKEM9YS5NZXNzYWdlQ2hhbm5lbCk7aWYoQyl7cj1uZXcgQztzPW5ldyBoKDIpO249ZnVuY3Rpb24oZSl7ci5wb3J0MS5wb3N0TWVzc2FnZShudWxsLFtlXSl9O2lmKDI9PT1zLmJ5dGVMZW5ndGgpe24ocyk7MD09PXMuYnl0ZUxlbmd0aCYmKFE9bil9fX1jYXRjaChlKXt9ZS5leHBvcnRzPVF9LDQwNTU6KGUsdCxpKT0+e3ZhciBhPWkoNDU3Nikscj1pKDM0KSxzPWEuZG9jdW1lbnQsbj1yKHMpJiZyKHMuY3JlYXRlRWxlbWVudCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBuP3MuY3JlYXRlRWxlbWVudChlKTp7fX19LDY4Mzc6ZT0+e3ZhciB0PVR5cGVFcnJvcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoZT45MDA3MTk5MjU0NzQwOTkxKXRocm93IHQoIk1heGltdW0gYWxsb3dlZCBpbmRleCBleGNlZWRlZCIpO3JldHVybiBlfX0sNTAwMjplPT57ZS5leHBvcnRzPXtJbmRleFNpemVFcnJvcjp7czoiSU5ERVhfU0laRV9FUlIiLGM6MSxtOjF9LERPTVN0cmluZ1NpemVFcnJvcjp7czoiRE9NU1RSSU5HX1NJWkVfRVJSIixjOjIsbTowfSxIaWVyYXJjaHlSZXF1ZXN0RXJyb3I6e3M6IkhJRVJBUkNIWV9SRVFVRVNUX0VSUiIsYzozLG06MX0sV3JvbmdEb2N1bWVudEVycm9yOntzOiJXUk9OR19ET0NVTUVOVF9FUlIiLGM6NCxtOjF9LEludmFsaWRDaGFyYWN0ZXJFcnJvcjp7czoiSU5WQUxJRF9DSEFSQUNURVJfRVJSIixjOjUsbToxfSxOb0RhdGFBbGxvd2VkRXJyb3I6e3M6Ik5PX0RBVEFfQUxMT1dFRF9FUlIiLGM6NixtOjB9LE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yOntzOiJOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIiLGM6NyxtOjF9LE5vdEZvdW5kRXJyb3I6e3M6Ik5PVF9GT1VORF9FUlIiLGM6OCxtOjF9LE5vdFN1cHBvcnRlZEVycm9yOntzOiJOT1RfU1VQUE9SVEVEX0VSUiIsYzo5LG06MX0sSW5Vc2VBdHRyaWJ1dGVFcnJvcjp7czoiSU5VU0VfQVRUUklCVVRFX0VSUiIsYzoxMCxtOjF9LEludmFsaWRTdGF0ZUVycm9yOntzOiJJTlZBTElEX1NUQVRFX0VSUiIsYzoxMSxtOjF9LFN5bnRheEVycm9yOntzOiJTWU5UQVhfRVJSIixjOjEyLG06MX0sSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yOntzOiJJTlZBTElEX01PRElGSUNBVElPTl9FUlIiLGM6MTMsbToxfSxOYW1lc3BhY2VFcnJvcjp7czoiTkFNRVNQQUNFX0VSUiIsYzoxNCxtOjF9LEludmFsaWRBY2Nlc3NFcnJvcjp7czoiSU5WQUxJRF9BQ0NFU1NfRVJSIixjOjE1LG06MX0sVmFsaWRhdGlvbkVycm9yOntzOiJWQUxJREFUSU9OX0VSUiIsYzoxNixtOjB9LFR5cGVNaXNtYXRjaEVycm9yOntzOiJUWVBFX01JU01BVENIX0VSUiIsYzoxNyxtOjF9LFNlY3VyaXR5RXJyb3I6e3M6IlNFQ1VSSVRZX0VSUiIsYzoxOCxtOjF9LE5ldHdvcmtFcnJvcjp7czoiTkVUV09SS19FUlIiLGM6MTksbToxfSxBYm9ydEVycm9yOntzOiJBQk9SVF9FUlIiLGM6MjAsbToxfSxVUkxNaXNtYXRjaEVycm9yOntzOiJVUkxfTUlTTUFUQ0hfRVJSIixjOjIxLG06MX0sUXVvdGFFeGNlZWRlZEVycm9yOntzOiJRVU9UQV9FWENFRURFRF9FUlIiLGM6MjIsbToxfSxUaW1lb3V0RXJyb3I6e3M6IlRJTUVPVVRfRVJSIixjOjIzLG06MX0sSW52YWxpZE5vZGVUeXBlRXJyb3I6e3M6IklOVkFMSURfTk9ERV9UWVBFX0VSUiIsYzoyNCxtOjF9LERhdGFDbG9uZUVycm9yOntzOiJEQVRBX0NMT05FX0VSUiIsYzoyNSxtOjF9fX0sODcyNzplPT57ZS5leHBvcnRzPVsiY29uc3RydWN0b3IiLCJoYXNPd25Qcm9wZXJ0eSIsImlzUHJvdG90eXBlT2YiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInRvTG9jYWxlU3RyaW5nIiwidG9TdHJpbmciLCJ2YWx1ZU9mIl19LDYxOTM6KGUsdCxpKT0+e3ZhciBhPWkoNDIxNSk7ZS5leHBvcnRzPSJOT0RFIj09PWF9LDI4Mzk6KGUsdCxpKT0+e3ZhciBhPWkoNDU3NikubmF2aWdhdG9yLHI9YSYmYS51c2VyQWdlbnQ7ZS5leHBvcnRzPXI/U3RyaW5nKHIpOiIifSw5NTE5OihlLHQsaSk9Pnt2YXIgYSxyLHM9aSg0NTc2KSxuPWkoMjgzOSksbz1zLnByb2Nlc3MsZz1zLkRlbm8sYz1vJiZvLnZlcnNpb25zfHxnJiZnLnZlcnNpb24sbD1jJiZjLnY4O2wmJihyPShhPWwuc3BsaXQoIi4iKSlbMF0+MCYmYVswXTw0PzE6KyhhWzBdK2FbMV0pKTshciYmbiYmKCEoYT1uLm1hdGNoKC9FZGdlXC8oXGQrKS8pKXx8YVsxXT49NzQpJiYoYT1uLm1hdGNoKC9DaHJvbWVcLyhcZCspLykpJiYocj0rYVsxXSk7ZS5leHBvcnRzPXJ9LDQyMTU6KGUsdCxpKT0+e3ZhciBhPWkoNDU3Nikscj1pKDI4MzkpLHM9aSgyMTk1KSx1c2VyQWdlbnRTdGFydHNXaXRoPWZ1bmN0aW9uKGUpe3JldHVybiByLnNsaWNlKDAsZS5sZW5ndGgpPT09ZX07ZS5leHBvcnRzPXVzZXJBZ2VudFN0YXJ0c1dpdGgoIkJ1bi8iKT8iQlVOIjp1c2VyQWdlbnRTdGFydHNXaXRoKCJDbG91ZGZsYXJlLVdvcmtlcnMiKT8iQ0xPVURGTEFSRSI6dXNlckFnZW50U3RhcnRzV2l0aCgiRGVuby8iKT8iREVOTyI6dXNlckFnZW50U3RhcnRzV2l0aCgiTm9kZS5qcy8iKT8iTk9ERSI6YS5CdW4mJiJzdHJpbmciPT10eXBlb2YgQnVuLnZlcnNpb24/IkJVTiI6YS5EZW5vJiYib2JqZWN0Ij09dHlwZW9mIERlbm8udmVyc2lvbj8iREVOTyI6InByb2Nlc3MiPT09cyhhLnByb2Nlc3MpPyJOT0RFIjphLndpbmRvdyYmYS5kb2N1bWVudD8iQlJPV1NFUiI6IlJFU1QifSw4NTc0OihlLHQsaSk9Pnt2YXIgYT1pKDk1MDQpLHI9RXJyb3Iscz1hKCIiLnJlcGxhY2UpLG49U3RyaW5nKG5ldyByKCJ6eGNhc2QiKS5zdGFjayksbz0vXG5ccyphdCBbXjpdKjpbXlxuXSovLGc9by50ZXN0KG4pO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKGcmJiJzdHJpbmciPT10eXBlb2YgZSYmIXIucHJlcGFyZVN0YWNrVHJhY2UpZm9yKDt0LS07KWU9cyhlLG8sIiIpO3JldHVybiBlfX0sNjUxODooZSx0LGkpPT57dmFyIGE9aSg0NTc2KSxyPWkoNzM0NykuZixzPWkoNjY5OSksbj1pKDY4NDApLG89aSg5NDMzKSxnPWkoNzc0MCksYz1pKDI3OTYpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBpLGwsaCxDLFEsRT1lLnRhcmdldCx1PWUuZ2xvYmFsLGQ9ZS5zdGF0O2lmKGk9dT9hOmQ/YVtFXXx8byhFLHt9KTphW0VdJiZhW0VdLnByb3RvdHlwZSlmb3IobCBpbiB0KXtDPXRbbF07aD1lLmRvbnRDYWxsR2V0U2V0PyhRPXIoaSxsKSkmJlEudmFsdWU6aVtsXTtpZighYyh1P2w6RSsoZD8iLiI6IiMiKStsLGUuZm9yY2VkKSYmdm9pZCAwIT09aCl7aWYodHlwZW9mIEM9PXR5cGVvZiBoKWNvbnRpbnVlO2coQyxoKX0oZS5zaGFtfHxoJiZoLnNoYW0pJiZzKEMsInNoYW0iLCEwKTtuKGksbCxDLGUpfX19LDkwMzk6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlKXt0cnl7cmV0dXJuISFlKCl9Y2F0Y2goZSl7cmV0dXJuITB9fX0sODc0NTooZSx0LGkpPT57dmFyIGE9aSg2MTYpLHI9RnVuY3Rpb24ucHJvdG90eXBlLHM9ci5hcHBseSxuPXIuY2FsbDtlLmV4cG9ydHM9Im9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmFwcGx5fHwoYT9uLmJpbmQocyk6ZnVuY3Rpb24oKXtyZXR1cm4gbi5hcHBseShzLGFyZ3VtZW50cyl9KX0sNjA4MDooZSx0LGkpPT57dmFyIGE9aSg3NDc2KSxyPWkoOTMwNikscz1pKDYxNiksbj1hKGEuYmluZCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cihlKTtyZXR1cm4gdm9pZCAwPT09dD9lOnM/bihlLHQpOmZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkodCxhcmd1bWVudHMpfX19LDYxNjooZSx0LGkpPT57dmFyIGE9aSg5MDM5KTtlLmV4cG9ydHM9IWEoKGZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24oKXt9LmJpbmQoKTtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgZXx8ZS5oYXNPd25Qcm9wZXJ0eSgicHJvdG90eXBlIil9KSl9LDk1NjU6KGUsdCxpKT0+e3ZhciBhPWkoNjE2KSxyPUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsO2UuZXhwb3J0cz1hP3IuYmluZChyKTpmdW5jdGlvbigpe3JldHVybiByLmFwcGx5KHIsYXJndW1lbnRzKX19LDM1MDooZSx0LGkpPT57dmFyIGE9aSgzNzI0KSxyPWkoOTI5Nykscz1GdW5jdGlvbi5wcm90b3R5cGUsbj1hJiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLG89cihzLCJuYW1lIiksZz1vJiYic29tZXRoaW5nIj09PWZ1bmN0aW9uIHNvbWV0aGluZygpe30ubmFtZSxjPW8mJighYXx8YSYmbihzLCJuYW1lIikuY29uZmlndXJhYmxlKTtlLmV4cG9ydHM9e0VYSVNUUzpvLFBST1BFUjpnLENPTkZJR1VSQUJMRTpjfX0sNjcwNjooZSx0LGkpPT57dmFyIGE9aSg5NTA0KSxyPWkoOTMwNik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxpKXt0cnl7cmV0dXJuIGEocihPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdClbaV0pKX1jYXRjaChlKXt9fX0sNzQ3NjooZSx0LGkpPT57dmFyIGE9aSgyMTk1KSxyPWkoOTUwNCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKCJGdW5jdGlvbiI9PT1hKGUpKXJldHVybiByKGUpfX0sOTUwNDooZSx0LGkpPT57dmFyIGE9aSg2MTYpLHI9RnVuY3Rpb24ucHJvdG90eXBlLHM9ci5jYWxsLG49YSYmci5iaW5kLmJpbmQocyxzKTtlLmV4cG9ydHM9YT9uOmZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBzLmFwcGx5KGUsYXJndW1lbnRzKX19fSw5NDI5OihlLHQsaSk9Pnt2YXIgYT1pKDQ1NzYpLHI9aSg2MTkzKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYocil7dHJ5e3JldHVybiBhLnByb2Nlc3MuZ2V0QnVpbHRpbk1vZHVsZShlKX1jYXRjaChlKXt9dHJ5e3JldHVybiBGdW5jdGlvbigncmV0dXJuIHJlcXVpcmUoIicrZSsnIiknKSgpfWNhdGNoKGUpe319fX0sNzc1MTooZSx0LGkpPT57dmFyIGE9aSg0NTc2KSxyPWkoNDkwMSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj8oaT1hW2VdLHIoaSk/aTp2b2lkIDApOmFbZV0mJmFbZV1bdF07dmFyIGl9fSwxNzY3OmU9PntlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJue2l0ZXJhdG9yOmUsbmV4dDplLm5leHQsZG9uZTohMX19fSw4NTE6KGUsdCxpKT0+e3ZhciBhPWkoNjk1NSkscj1pKDU5NjYpLHM9aSg0MTE3KSxuPWkoNjI2OSksbz1pKDgyMjcpKCJpdGVyYXRvciIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZighcyhlKSlyZXR1cm4gcihlLG8pfHxyKGUsIkBAaXRlcmF0b3IiKXx8blthKGUpXX19LDgxOihlLHQsaSk9Pnt2YXIgYT1pKDk1NjUpLHI9aSg5MzA2KSxzPWkoODU1MSksbj1pKDY4MjMpLG89aSg4NTEpLGc9VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBpPWFyZ3VtZW50cy5sZW5ndGg8Mj9vKGUpOnQ7aWYocihpKSlyZXR1cm4gcyhhKGksZSkpO3Rocm93IG5ldyBnKG4oZSkrIiBpcyBub3QgaXRlcmFibGUiKX19LDU5NjY6KGUsdCxpKT0+e3ZhciBhPWkoOTMwNikscj1pKDQxMTcpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBpPWVbdF07cmV0dXJuIHIoaSk/dm9pZCAwOmEoaSl9fSwzNzg5OihlLHQsaSk9Pnt2YXIgYT1pKDkzMDYpLHI9aSg4NTUxKSxzPWkoOTU2NSksbj1pKDEyOTEpLG89aSgxNzY3KSxnPSJJbnZhbGlkIHNpemUiLGM9UmFuZ2VFcnJvcixsPVR5cGVFcnJvcixoPU1hdGgubWF4LFNldFJlY29yZD1mdW5jdGlvbihlLHQpe3RoaXMuc2V0PWU7dGhpcy5zaXplPWgodCwwKTt0aGlzLmhhcz1hKGUuaGFzKTt0aGlzLmtleXM9YShlLmtleXMpfTtTZXRSZWNvcmQucHJvdG90eXBlPXtnZXRJdGVyYXRvcjpmdW5jdGlvbigpe3JldHVybiBvKHIocyh0aGlzLmtleXMsdGhpcy5zZXQpKSl9LGluY2x1ZGVzOmZ1bmN0aW9uKGUpe3JldHVybiBzKHRoaXMuaGFzLHRoaXMuc2V0LGUpfX07ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3IoZSk7dmFyIHQ9K2Uuc2l6ZTtpZih0IT10KXRocm93IG5ldyBsKGcpO3ZhciBpPW4odCk7aWYoaTwwKXRocm93IG5ldyBjKGcpO3JldHVybiBuZXcgU2V0UmVjb3JkKGUsaSl9fSw0NTc2OmZ1bmN0aW9uKGUpe3ZhciBjaGVjaz1mdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5NYXRoPT09TWF0aCYmZX07ZS5leHBvcnRzPWNoZWNrKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyl8fGNoZWNrKCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cpfHxjaGVjaygib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYpfHxjaGVjaygib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsKXx8Y2hlY2soIm9iamVjdCI9PXR5cGVvZiB0aGlzJiZ0aGlzKXx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKX0sOTI5NzooZSx0LGkpPT57dmFyIGE9aSg5NTA0KSxyPWkoODk4MSkscz1hKHt9Lmhhc093blByb3BlcnR5KTtlLmV4cG9ydHM9T2JqZWN0Lmhhc093bnx8ZnVuY3Rpb24gaGFzT3duKGUsdCl7cmV0dXJuIHMocihlKSx0KX19LDQyMTplPT57ZS5leHBvcnRzPXt9fSwzOTc6KGUsdCxpKT0+e3ZhciBhPWkoNzc1MSk7ZS5leHBvcnRzPWEoImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50Iil9LDU5MTc6KGUsdCxpKT0+e3ZhciBhPWkoMzcyNCkscj1pKDkwMzkpLHM9aSg0MDU1KTtlLmV4cG9ydHM9IWEmJiFyKChmdW5jdGlvbigpe3JldHVybiA3IT09T2JqZWN0LmRlZmluZVByb3BlcnR5KHMoImRpdiIpLCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pKX0sNzA1NTooZSx0LGkpPT57dmFyIGE9aSg5NTA0KSxyPWkoOTAzOSkscz1pKDIxOTUpLG49T2JqZWN0LG89YSgiIi5zcGxpdCk7ZS5leHBvcnRzPXIoKGZ1bmN0aW9uKCl7cmV0dXJuIW4oInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pKT9mdW5jdGlvbihlKXtyZXR1cm4iU3RyaW5nIj09PXMoZSk/byhlLCIiKTpuKGUpfTpufSwzMTY3OihlLHQsaSk9Pnt2YXIgYT1pKDQ5MDEpLHI9aSgzNCkscz1pKDI5NjcpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsaSl7dmFyIG4sbztzJiZhKG49dC5jb25zdHJ1Y3RvcikmJm4hPT1pJiZyKG89bi5wcm90b3R5cGUpJiZvIT09aS5wcm90b3R5cGUmJnMoZSxvKTtyZXR1cm4gZX19LDM3MDY6KGUsdCxpKT0+e3ZhciBhPWkoOTUwNCkscj1pKDQ5MDEpLHM9aSg3NjI5KSxuPWEoRnVuY3Rpb24udG9TdHJpbmcpO3Iocy5pbnNwZWN0U291cmNlKXx8KHMuaW5zcGVjdFNvdXJjZT1mdW5jdGlvbihlKXtyZXR1cm4gbihlKX0pO2UuZXhwb3J0cz1zLmluc3BlY3RTb3VyY2V9LDExODE6KGUsdCxpKT0+e3ZhciBhLHIscyxuPWkoODYyMiksbz1pKDQ1NzYpLGc9aSgzNCksYz1pKDY2OTkpLGw9aSg5Mjk3KSxoPWkoNzYyOSksQz1pKDYxMTkpLFE9aSg0MjEpLEU9Ik9iamVjdCBhbHJlYWR5IGluaXRpYWxpemVkIix1PW8uVHlwZUVycm9yLGQ9by5XZWFrTWFwO2lmKG58fGguc3RhdGUpe3ZhciBmPWguc3RhdGV8fChoLnN0YXRlPW5ldyBkKTtmLmdldD1mLmdldDtmLmhhcz1mLmhhcztmLnNldD1mLnNldDthPWZ1bmN0aW9uKGUsdCl7aWYoZi5oYXMoZSkpdGhyb3cgbmV3IHUoRSk7dC5mYWNhZGU9ZTtmLnNldChlLHQpO3JldHVybiB0fTtyPWZ1bmN0aW9uKGUpe3JldHVybiBmLmdldChlKXx8e319O3M9ZnVuY3Rpb24oZSl7cmV0dXJuIGYuaGFzKGUpfX1lbHNle3ZhciBwPUMoInN0YXRlIik7UVtwXT0hMDthPWZ1bmN0aW9uKGUsdCl7aWYobChlLHApKXRocm93IG5ldyB1KEUpO3QuZmFjYWRlPWU7YyhlLHAsdCk7cmV0dXJuIHR9O3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGwoZSxwKT9lW3BdOnt9fTtzPWZ1bmN0aW9uKGUpe3JldHVybiBsKGUscCl9fWUuZXhwb3J0cz17c2V0OmEsZ2V0OnIsaGFzOnMsZW5mb3JjZTpmdW5jdGlvbihlKXtyZXR1cm4gcyhlKT9yKGUpOmEoZSx7fSl9LGdldHRlckZvcjpmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGk7aWYoIWcodCl8fChpPXIodCkpLnR5cGUhPT1lKXRocm93IG5ldyB1KCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICIrZSsiIHJlcXVpcmVkIik7cmV0dXJuIGl9fX19LDQyMDk6KGUsdCxpKT0+e3ZhciBhPWkoODIyNykscj1pKDYyNjkpLHM9YSgiaXRlcmF0b3IiKSxuPUFycmF5LnByb3RvdHlwZTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PWUmJihyLkFycmF5PT09ZXx8bltzXT09PWUpfX0sNDM3NjooZSx0LGkpPT57dmFyIGE9aSgyMTk1KTtlLmV4cG9ydHM9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24gaXNBcnJheShlKXtyZXR1cm4iQXJyYXkiPT09YShlKX19LDExMDg6KGUsdCxpKT0+e3ZhciBhPWkoNjk1NSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PWEoZSk7cmV0dXJuIkJpZ0ludDY0QXJyYXkiPT09dHx8IkJpZ1VpbnQ2NEFycmF5Ij09PXR9fSw0OTAxOmU9Pnt2YXIgdD0ib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50JiZkb2N1bWVudC5hbGw7ZS5leHBvcnRzPXZvaWQgMD09PXQmJnZvaWQgMCE9PXQ/ZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGV8fGU9PT10fTpmdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZX19LDI3OTY6KGUsdCxpKT0+e3ZhciBhPWkoOTAzOSkscj1pKDQ5MDEpLHM9LyN8XC5wcm90b3R5cGVcLi8saXNGb3JjZWQ9ZnVuY3Rpb24oZSx0KXt2YXIgaT1vW24oZSldO3JldHVybiBpPT09Y3x8aSE9PWcmJihyKHQpP2EodCk6ISF0KX0sbj1pc0ZvcmNlZC5ub3JtYWxpemU9ZnVuY3Rpb24oZSl7cmV0dXJuIFN0cmluZyhlKS5yZXBsYWNlKHMsIi4iKS50b0xvd2VyQ2FzZSgpfSxvPWlzRm9yY2VkLmRhdGE9e30sZz1pc0ZvcmNlZC5OQVRJVkU9Ik4iLGM9aXNGb3JjZWQuUE9MWUZJTEw9IlAiO2UuZXhwb3J0cz1pc0ZvcmNlZH0sNDExNzplPT57ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lfX0sMzQ6KGUsdCxpKT0+e3ZhciBhPWkoNDkwMSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZT9udWxsIT09ZTphKGUpfX0sMzkyNTooZSx0LGkpPT57dmFyIGE9aSgzNCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBhKGUpfHxudWxsPT09ZX19LDYzOTU6ZT0+e2UuZXhwb3J0cz0hMX0sNzU3OihlLHQsaSk9Pnt2YXIgYT1pKDc3NTEpLHI9aSg0OTAxKSxzPWkoMTYyNSksbj1pKDcwNDApLG89T2JqZWN0O2UuZXhwb3J0cz1uP2Z1bmN0aW9uKGUpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgZX06ZnVuY3Rpb24oZSl7dmFyIHQ9YSgiU3ltYm9sIik7cmV0dXJuIHIodCkmJnModC5wcm90b3R5cGUsbyhlKSl9fSw1MDc6KGUsdCxpKT0+e3ZhciBhPWkoOTU2NSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxpKXtmb3IodmFyIHIscyxuPWk/ZTplLml0ZXJhdG9yLG89ZS5uZXh0OyEocj1hKG8sbikpLmRvbmU7KWlmKHZvaWQgMCE9PShzPXQoci52YWx1ZSkpKXJldHVybiBzfX0sMjY1MjooZSx0LGkpPT57dmFyIGE9aSg2MDgwKSxyPWkoOTU2NSkscz1pKDg1NTEpLG49aSg2ODIzKSxvPWkoNDIwOSksZz1pKDYxOTgpLGM9aSgxNjI1KSxsPWkoODEpLGg9aSg4NTEpLEM9aSg5NTM5KSxRPVR5cGVFcnJvcixSZXN1bHQ9ZnVuY3Rpb24oZSx0KXt0aGlzLnN0b3BwZWQ9ZTt0aGlzLnJlc3VsdD10fSxFPVJlc3VsdC5wcm90b3R5cGU7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxpKXt2YXIgdSxkLGYscCxtLHksdyxiPWkmJmkudGhhdCxEPSEoIWl8fCFpLkFTX0VOVFJJRVMpLFM9ISghaXx8IWkuSVNfUkVDT1JEKSxrPSEoIWl8fCFpLklTX0lURVJBVE9SKSxSPSEoIWl8fCFpLklOVEVSUlVQVEVEKSxOPWEodCxiKSxzdG9wPWZ1bmN0aW9uKGUpe3UmJkModSwibm9ybWFsIixlKTtyZXR1cm4gbmV3IFJlc3VsdCghMCxlKX0sY2FsbEZuPWZ1bmN0aW9uKGUpe2lmKEQpe3MoZSk7cmV0dXJuIFI/TihlWzBdLGVbMV0sc3RvcCk6TihlWzBdLGVbMV0pfXJldHVybiBSP04oZSxzdG9wKTpOKGUpfTtpZihTKXU9ZS5pdGVyYXRvcjtlbHNlIGlmKGspdT1lO2Vsc2V7aWYoIShkPWgoZSkpKXRocm93IG5ldyBRKG4oZSkrIiBpcyBub3QgaXRlcmFibGUiKTtpZihvKGQpKXtmb3IoZj0wLHA9ZyhlKTtwPmY7ZisrKWlmKChtPWNhbGxGbihlW2ZdKSkmJmMoRSxtKSlyZXR1cm4gbTtyZXR1cm4gbmV3IFJlc3VsdCghMSl9dT1sKGUsZCl9eT1TP2UubmV4dDp1Lm5leHQ7Zm9yKDshKHc9cih5LHUpKS5kb25lOyl7dHJ5e209Y2FsbEZuKHcudmFsdWUpfWNhdGNoKGUpe0ModSwidGhyb3ciLGUpfWlmKCJvYmplY3QiPT10eXBlb2YgbSYmbSYmYyhFLG0pKXJldHVybiBtfXJldHVybiBuZXcgUmVzdWx0KCExKX19LDk1Mzk6KGUsdCxpKT0+e3ZhciBhPWkoOTU2NSkscj1pKDg1NTEpLHM9aSg1OTY2KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LGkpe3ZhciBuLG87cihlKTt0cnl7aWYoIShuPXMoZSwicmV0dXJuIikpKXtpZigidGhyb3ciPT09dCl0aHJvdyBpO3JldHVybiBpfW49YShuLGUpfWNhdGNoKGUpe289ITA7bj1lfWlmKCJ0aHJvdyI9PT10KXRocm93IGk7aWYobyl0aHJvdyBuO3Iobik7cmV0dXJuIGl9fSw5NDYyOihlLHQsaSk9Pnt2YXIgYT1pKDk1NjUpLHI9aSgyMzYwKSxzPWkoNjY5OSksbj1pKDYyNzkpLG89aSg4MjI3KSxnPWkoMTE4MSksYz1pKDU5NjYpLGw9aSg3NjU3KS5JdGVyYXRvclByb3RvdHlwZSxoPWkoMjUyOSksQz1pKDk1MzkpLFE9bygidG9TdHJpbmdUYWciKSxFPSJJdGVyYXRvckhlbHBlciIsdT0iV3JhcEZvclZhbGlkSXRlcmF0b3IiLGQ9Zy5zZXQsY3JlYXRlSXRlcmF0b3JQcm94eVByb3RvdHlwZT1mdW5jdGlvbihlKXt2YXIgdD1nLmdldHRlckZvcihlP3U6RSk7cmV0dXJuIG4ocihsKSx7bmV4dDpmdW5jdGlvbiBuZXh0KCl7dmFyIGk9dCh0aGlzKTtpZihlKXJldHVybiBpLm5leHRIYW5kbGVyKCk7dHJ5e3ZhciBhPWkuZG9uZT92b2lkIDA6aS5uZXh0SGFuZGxlcigpO3JldHVybiBoKGEsaS5kb25lKX1jYXRjaChlKXtpLmRvbmU9ITA7dGhyb3cgZX19LHJldHVybjpmdW5jdGlvbigpe3ZhciBpPXQodGhpcykscj1pLml0ZXJhdG9yO2kuZG9uZT0hMDtpZihlKXt2YXIgcz1jKHIsInJldHVybiIpO3JldHVybiBzP2EocyxyKTpoKHZvaWQgMCwhMCl9aWYoaS5pbm5lcil0cnl7QyhpLmlubmVyLml0ZXJhdG9yLCJub3JtYWwiKX1jYXRjaChlKXtyZXR1cm4gQyhyLCJ0aHJvdyIsZSl9ciYmQyhyLCJub3JtYWwiKTtyZXR1cm4gaCh2b2lkIDAsITApfX0pfSxmPWNyZWF0ZUl0ZXJhdG9yUHJveHlQcm90b3R5cGUoITApLHA9Y3JlYXRlSXRlcmF0b3JQcm94eVByb3RvdHlwZSghMSk7cyhwLFEsIkl0ZXJhdG9yIEhlbHBlciIpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBpPWZ1bmN0aW9uIEl0ZXJhdG9yKGksYSl7aWYoYSl7YS5pdGVyYXRvcj1pLml0ZXJhdG9yO2EubmV4dD1pLm5leHR9ZWxzZSBhPWk7YS50eXBlPXQ/dTpFO2EubmV4dEhhbmRsZXI9ZTthLmNvdW50ZXI9MDthLmRvbmU9ITE7ZCh0aGlzLGEpfTtpLnByb3RvdHlwZT10P2Y6cDtyZXR1cm4gaX19LDcxMzooZSx0LGkpPT57dmFyIGE9aSg5NTY1KSxyPWkoOTMwNikscz1pKDg1NTEpLG49aSgxNzY3KSxvPWkoOTQ2MiksZz1pKDYzMTkpLGM9bygoZnVuY3Rpb24oKXt2YXIgZT10aGlzLml0ZXJhdG9yLHQ9cyhhKHRoaXMubmV4dCxlKSk7aWYoISh0aGlzLmRvbmU9ISF0LmRvbmUpKXJldHVybiBnKGUsdGhpcy5tYXBwZXIsW3QudmFsdWUsdGhpcy5jb3VudGVyKytdLCEwKX0pKTtlLmV4cG9ydHM9ZnVuY3Rpb24gbWFwKGUpe3ModGhpcyk7cihlKTtyZXR1cm4gbmV3IGMobih0aGlzKSx7bWFwcGVyOmV9KX19LDc2NTc6KGUsdCxpKT0+e3ZhciBhLHIscyxuPWkoOTAzOSksbz1pKDQ5MDEpLGc9aSgzNCksYz1pKDIzNjApLGw9aSgyNzg3KSxoPWkoNjg0MCksQz1pKDgyMjcpLFE9aSg2Mzk1KSxFPUMoIml0ZXJhdG9yIiksdT0hMTtbXS5rZXlzJiYoIm5leHQiaW4ocz1bXS5rZXlzKCkpPyhyPWwobChzKSkpIT09T2JqZWN0LnByb3RvdHlwZSYmKGE9cik6dT0hMCk7IWcoYSl8fG4oKGZ1bmN0aW9uKCl7dmFyIGU9e307cmV0dXJuIGFbRV0uY2FsbChlKSE9PWV9KSk/YT17fTpRJiYoYT1jKGEpKTtvKGFbRV0pfHxoKGEsRSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKTtlLmV4cG9ydHM9e0l0ZXJhdG9yUHJvdG90eXBlOmEsQlVHR1lfU0FGQVJJX0lURVJBVE9SUzp1fX0sNjI2OTplPT57ZS5leHBvcnRzPXt9fSw2MTk4OihlLHQsaSk9Pnt2YXIgYT1pKDgwMTQpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gYShlLmxlbmd0aCl9fSwyODM6KGUsdCxpKT0+e3ZhciBhPWkoOTUwNCkscj1pKDkwMzkpLHM9aSg0OTAxKSxuPWkoOTI5Nyksbz1pKDM3MjQpLGc9aSgzNTApLkNPTkZJR1VSQUJMRSxjPWkoMzcwNiksbD1pKDExODEpLGg9bC5lbmZvcmNlLEM9bC5nZXQsUT1TdHJpbmcsRT1PYmplY3QuZGVmaW5lUHJvcGVydHksdT1hKCIiLnNsaWNlKSxkPWEoIiIucmVwbGFjZSksZj1hKFtdLmpvaW4pLHA9byYmIXIoKGZ1bmN0aW9uKCl7cmV0dXJuIDghPT1FKChmdW5jdGlvbigpe30pLCJsZW5ndGgiLHt2YWx1ZTo4fSkubGVuZ3RofSkpLG09U3RyaW5nKFN0cmluZykuc3BsaXQoIlN0cmluZyIpLHk9ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxpKXsiU3ltYm9sKCI9PT11KFEodCksMCw3KSYmKHQ9IlsiK2QoUSh0KSwvXlN5bWJvbFwoKFteKV0qKVwpLiokLywiJDEiKSsiXSIpO2kmJmkuZ2V0dGVyJiYodD0iZ2V0ICIrdCk7aSYmaS5zZXR0ZXImJih0PSJzZXQgIit0KTsoIW4oZSwibmFtZSIpfHxnJiZlLm5hbWUhPT10KSYmKG8/RShlLCJuYW1lIix7dmFsdWU6dCxjb25maWd1cmFibGU6ITB9KTplLm5hbWU9dCk7cCYmaSYmbihpLCJhcml0eSIpJiZlLmxlbmd0aCE9PWkuYXJpdHkmJkUoZSwibGVuZ3RoIix7dmFsdWU6aS5hcml0eX0pO3RyeXtpJiZuKGksImNvbnN0cnVjdG9yIikmJmkuY29uc3RydWN0b3I/byYmRShlLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pOmUucHJvdG90eXBlJiYoZS5wcm90b3R5cGU9dm9pZCAwKX1jYXRjaChlKXt9dmFyIGE9aChlKTtuKGEsInNvdXJjZSIpfHwoYS5zb3VyY2U9ZihtLCJzdHJpbmciPT10eXBlb2YgdD90OiIiKSk7cmV0dXJuIGV9O0Z1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZz15KChmdW5jdGlvbiB0b1N0cmluZygpe3JldHVybiBzKHRoaXMpJiZDKHRoaXMpLnNvdXJjZXx8Yyh0aGlzKX0pLCJ0b1N0cmluZyIpfSw3NDE6ZT0+e3ZhciB0PU1hdGguY2VpbCxpPU1hdGguZmxvb3I7ZS5leHBvcnRzPU1hdGgudHJ1bmN8fGZ1bmN0aW9uIHRydW5jKGUpe3ZhciBhPStlO3JldHVybihhPjA/aTp0KShhKX19LDYwNDM6KGUsdCxpKT0+e3ZhciBhPWkoOTMwNikscj1UeXBlRXJyb3IsUHJvbWlzZUNhcGFiaWxpdHk9ZnVuY3Rpb24oZSl7dmFyIHQsaTt0aGlzLnByb21pc2U9bmV3IGUoKGZ1bmN0aW9uKGUsYSl7aWYodm9pZCAwIT09dHx8dm9pZCAwIT09aSl0aHJvdyBuZXcgcigiQmFkIFByb21pc2UgY29uc3RydWN0b3IiKTt0PWU7aT1hfSkpO3RoaXMucmVzb2x2ZT1hKHQpO3RoaXMucmVqZWN0PWEoaSl9O2UuZXhwb3J0cy5mPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgUHJvbWlzZUNhcGFiaWxpdHkoZSl9fSwyNjAzOihlLHQsaSk9Pnt2YXIgYT1pKDY1NSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PWU/YXJndW1lbnRzLmxlbmd0aDwyPyIiOnQ6YShlKX19LDIzNjA6KGUsdCxpKT0+e3ZhciBhLHI9aSg4NTUxKSxzPWkoNjgwMSksbj1pKDg3MjcpLG89aSg0MjEpLGc9aSgzOTcpLGM9aSg0MDU1KSxsPWkoNjExOSksaD0icHJvdG90eXBlIixDPSJzY3JpcHQiLFE9bCgiSUVfUFJPVE8iKSxFbXB0eUNvbnN0cnVjdG9yPWZ1bmN0aW9uKCl7fSxzY3JpcHRUYWc9ZnVuY3Rpb24oZSl7cmV0dXJuIjwiK0MrIj4iK2UrIjwvIitDKyI+In0sTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWD1mdW5jdGlvbihlKXtlLndyaXRlKHNjcmlwdFRhZygiIikpO2UuY2xvc2UoKTt2YXIgdD1lLnBhcmVudFdpbmRvdy5PYmplY3Q7ZT1udWxsO3JldHVybiB0fSxOdWxsUHJvdG9PYmplY3Q9ZnVuY3Rpb24oKXt0cnl7YT1uZXcgQWN0aXZlWE9iamVjdCgiaHRtbGZpbGUiKX1jYXRjaChlKXt9TnVsbFByb3RvT2JqZWN0PSJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQuZG9tYWluJiZhP051bGxQcm90b09iamVjdFZpYUFjdGl2ZVgoYSk6ZnVuY3Rpb24oKXt2YXIgZSx0PWMoImlmcmFtZSIpLGk9ImphdmEiK0MrIjoiO3Quc3R5bGUuZGlzcGxheT0ibm9uZSI7Zy5hcHBlbmRDaGlsZCh0KTt0LnNyYz1TdHJpbmcoaSk7KGU9dC5jb250ZW50V2luZG93LmRvY3VtZW50KS5vcGVuKCk7ZS53cml0ZShzY3JpcHRUYWcoImRvY3VtZW50LkY9T2JqZWN0IikpO2UuY2xvc2UoKTtyZXR1cm4gZS5GfSgpOk51bGxQcm90b09iamVjdFZpYUFjdGl2ZVgoYSk7Zm9yKHZhciBlPW4ubGVuZ3RoO2UtLTspZGVsZXRlIE51bGxQcm90b09iamVjdFtoXVtuW2VdXTtyZXR1cm4gTnVsbFByb3RvT2JqZWN0KCl9O29bUV09ITA7ZS5leHBvcnRzPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uIGNyZWF0ZShlLHQpe3ZhciBpO2lmKG51bGwhPT1lKXtFbXB0eUNvbnN0cnVjdG9yW2hdPXIoZSk7aT1uZXcgRW1wdHlDb25zdHJ1Y3RvcjtFbXB0eUNvbnN0cnVjdG9yW2hdPW51bGw7aVtRXT1lfWVsc2UgaT1OdWxsUHJvdG9PYmplY3QoKTtyZXR1cm4gdm9pZCAwPT09dD9pOnMuZihpLHQpfX0sNjgwMTooZSx0LGkpPT57dmFyIGE9aSgzNzI0KSxyPWkoODY4Nikscz1pKDQ5MTMpLG49aSg4NTUxKSxvPWkoNTM5NyksZz1pKDEwNzIpO3QuZj1hJiYhcj9PYmplY3QuZGVmaW5lUHJvcGVydGllczpmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKGUsdCl7bihlKTtmb3IodmFyIGksYT1vKHQpLHI9Zyh0KSxjPXIubGVuZ3RoLGw9MDtjPmw7KXMuZihlLGk9cltsKytdLGFbaV0pO3JldHVybiBlfX0sNDkxMzooZSx0LGkpPT57dmFyIGE9aSgzNzI0KSxyPWkoNTkxNykscz1pKDg2ODYpLG49aSg4NTUxKSxvPWkoNjk2OSksZz1UeXBlRXJyb3IsYz1PYmplY3QuZGVmaW5lUHJvcGVydHksbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGg9ImVudW1lcmFibGUiLEM9ImNvbmZpZ3VyYWJsZSIsUT0id3JpdGFibGUiO3QuZj1hP3M/ZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoZSx0LGkpe24oZSk7dD1vKHQpO24oaSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUmJiJwcm90b3R5cGUiPT09dCYmInZhbHVlImluIGkmJlEgaW4gaSYmIWlbUV0pe3ZhciBhPWwoZSx0KTtpZihhJiZhW1FdKXtlW3RdPWkudmFsdWU7aT17Y29uZmlndXJhYmxlOkMgaW4gaT9pW0NdOmFbQ10sZW51bWVyYWJsZTpoIGluIGk/aVtoXTphW2hdLHdyaXRhYmxlOiExfX19cmV0dXJuIGMoZSx0LGkpfTpjOmZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KGUsdCxpKXtuKGUpO3Q9byh0KTtuKGkpO2lmKHIpdHJ5e3JldHVybiBjKGUsdCxpKX1jYXRjaChlKXt9aWYoImdldCJpbiBpfHwic2V0ImluIGkpdGhyb3cgbmV3IGcoIkFjY2Vzc29ycyBub3Qgc3VwcG9ydGVkIik7InZhbHVlImluIGkmJihlW3RdPWkudmFsdWUpO3JldHVybiBlfX0sNzM0NzooZSx0LGkpPT57dmFyIGE9aSgzNzI0KSxyPWkoOTU2NSkscz1pKDg3NzMpLG49aSg2OTgwKSxvPWkoNTM5NyksZz1pKDY5NjkpLGM9aSg5Mjk3KSxsPWkoNTkxNyksaD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3QuZj1hP2g6ZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCl7ZT1vKGUpO3Q9Zyh0KTtpZihsKXRyeXtyZXR1cm4gaChlLHQpfWNhdGNoKGUpe31pZihjKGUsdCkpcmV0dXJuIG4oIXIocy5mLGUsdCksZVt0XSl9fSw4NDgwOihlLHQsaSk9Pnt2YXIgYT1pKDE4MjgpLHI9aSg4NzI3KS5jb25jYXQoImxlbmd0aCIsInByb3RvdHlwZSIpO3QuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc3x8ZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhlKXtyZXR1cm4gYShlLHIpfX0sMzcxNzooZSx0KT0+e3QuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzfSwyNzg3OihlLHQsaSk9Pnt2YXIgYT1pKDkyOTcpLHI9aSg0OTAxKSxzPWkoODk4MSksbj1pKDYxMTkpLG89aSgyMjExKSxnPW4oIklFX1BST1RPIiksYz1PYmplY3QsbD1jLnByb3RvdHlwZTtlLmV4cG9ydHM9bz9jLmdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKGUpe3ZhciB0PXMoZSk7aWYoYSh0LGcpKXJldHVybiB0W2ddO3ZhciBpPXQuY29uc3RydWN0b3I7cmV0dXJuIHIoaSkmJnQgaW5zdGFuY2VvZiBpP2kucHJvdG90eXBlOnQgaW5zdGFuY2VvZiBjP2w6bnVsbH19LDE2MjU6KGUsdCxpKT0+e3ZhciBhPWkoOTUwNCk7ZS5leHBvcnRzPWEoe30uaXNQcm90b3R5cGVPZil9LDE4Mjg6KGUsdCxpKT0+e3ZhciBhPWkoOTUwNCkscj1pKDkyOTcpLHM9aSg1Mzk3KSxuPWkoOTYxNykuaW5kZXhPZixvPWkoNDIxKSxnPWEoW10ucHVzaCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIGksYT1zKGUpLGM9MCxsPVtdO2ZvcihpIGluIGEpIXIobyxpKSYmcihhLGkpJiZnKGwsaSk7Zm9yKDt0Lmxlbmd0aD5jOylyKGEsaT10W2MrK10pJiYofm4obCxpKXx8ZyhsLGkpKTtyZXR1cm4gbH19LDEwNzI6KGUsdCxpKT0+e3ZhciBhPWkoMTgyOCkscj1pKDg3MjcpO2UuZXhwb3J0cz1PYmplY3Qua2V5c3x8ZnVuY3Rpb24ga2V5cyhlKXtyZXR1cm4gYShlLHIpfX0sODc3MzooZSx0KT0+e3ZhciBpPXt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLGE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixyPWEmJiFpLmNhbGwoezE6Mn0sMSk7dC5mPXI/ZnVuY3Rpb24gcHJvcGVydHlJc0VudW1lcmFibGUoZSl7dmFyIHQ9YSh0aGlzLGUpO3JldHVybiEhdCYmdC5lbnVtZXJhYmxlfTppfSwyOTY3OihlLHQsaSk9Pnt2YXIgYT1pKDY3MDYpLHI9aSgzNCkscz1pKDc3NTApLG49aSgzNTA2KTtlLmV4cG9ydHM9T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoIl9fcHJvdG9fXyJpbnt9P2Z1bmN0aW9uKCl7dmFyIGUsdD0hMSxpPXt9O3RyeXsoZT1hKE9iamVjdC5wcm90b3R5cGUsIl9fcHJvdG9fXyIsInNldCIpKShpLFtdKTt0PWkgaW5zdGFuY2VvZiBBcnJheX1jYXRjaChlKXt9cmV0dXJuIGZ1bmN0aW9uIHNldFByb3RvdHlwZU9mKGksYSl7cyhpKTtuKGEpO2lmKCFyKGkpKXJldHVybiBpO3Q/ZShpLGEpOmkuX19wcm90b19fPWE7cmV0dXJuIGl9fSgpOnZvaWQgMCl9LDQyNzA6KGUsdCxpKT0+e3ZhciBhPWkoOTU2NSkscj1pKDQ5MDEpLHM9aSgzNCksbj1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIGksbztpZigic3RyaW5nIj09PXQmJnIoaT1lLnRvU3RyaW5nKSYmIXMobz1hKGksZSkpKXJldHVybiBvO2lmKHIoaT1lLnZhbHVlT2YpJiYhcyhvPWEoaSxlKSkpcmV0dXJuIG87aWYoInN0cmluZyIhPT10JiZyKGk9ZS50b1N0cmluZykmJiFzKG89YShpLGUpKSlyZXR1cm4gbzt0aHJvdyBuZXcgbigiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlIil9fSw1MDMxOihlLHQsaSk9Pnt2YXIgYT1pKDc3NTEpLHI9aSg5NTA0KSxzPWkoODQ4MCksbj1pKDM3MTcpLG89aSg4NTUxKSxnPXIoW10uY29uY2F0KTtlLmV4cG9ydHM9YSgiUmVmbGVjdCIsIm93bktleXMiKXx8ZnVuY3Rpb24gb3duS2V5cyhlKXt2YXIgdD1zLmYobyhlKSksaT1uLmY7cmV0dXJuIGk/Zyh0LGkoZSkpOnR9fSwxMTAzOmU9PntlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybntlcnJvcjohMSx2YWx1ZTplKCl9fWNhdGNoKGUpe3JldHVybntlcnJvcjohMCx2YWx1ZTplfX19fSw3OTc5OihlLHQsaSk9Pnt2YXIgYT1pKDg1NTEpO2UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciBlPWEodGhpcyksdD0iIjtlLmhhc0luZGljZXMmJih0Kz0iZCIpO2UuZ2xvYmFsJiYodCs9ImciKTtlLmlnbm9yZUNhc2UmJih0Kz0iaSIpO2UubXVsdGlsaW5lJiYodCs9Im0iKTtlLmRvdEFsbCYmKHQrPSJzIik7ZS51bmljb2RlJiYodCs9InUiKTtlLnVuaWNvZGVTZXRzJiYodCs9InYiKTtlLnN0aWNreSYmKHQrPSJ5Iik7cmV0dXJuIHR9fSw3NzUwOihlLHQsaSk9Pnt2YXIgYT1pKDQxMTcpLHI9VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihhKGUpKXRocm93IG5ldyByKCJDYW4ndCBjYWxsIG1ldGhvZCBvbiAiK2UpO3JldHVybiBlfX0sOTI4NjooZSx0LGkpPT57dmFyIGE9aSg0NDAyKSxyPWkoODQ2OSkscz1hLlNldCxuPWEuYWRkO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD1uZXcgcztyKGUsKGZ1bmN0aW9uKGUpe24odCxlKX0pKTtyZXR1cm4gdH19LDM0NDA6KGUsdCxpKT0+e3ZhciBhPWkoNzA4MCkscj1pKDQ0MDIpLHM9aSg5Mjg2KSxuPWkoNTE3MCksbz1pKDM3ODkpLGc9aSg4NDY5KSxjPWkoNTA3KSxsPXIuaGFzLGg9ci5yZW1vdmU7ZS5leHBvcnRzPWZ1bmN0aW9uIGRpZmZlcmVuY2UoZSl7dmFyIHQ9YSh0aGlzKSxpPW8oZSkscj1zKHQpO24odCk8PWkuc2l6ZT9nKHQsKGZ1bmN0aW9uKGUpe2kuaW5jbHVkZXMoZSkmJmgocixlKX0pKTpjKGkuZ2V0SXRlcmF0b3IoKSwoZnVuY3Rpb24oZSl7bCh0LGUpJiZoKHIsZSl9KSk7cmV0dXJuIHJ9fSw0NDAyOihlLHQsaSk9Pnt2YXIgYT1pKDk1MDQpLHI9U2V0LnByb3RvdHlwZTtlLmV4cG9ydHM9e1NldCxhZGQ6YShyLmFkZCksaGFzOmEoci5oYXMpLHJlbW92ZTphKHIuZGVsZXRlKSxwcm90bzpyfX0sODc1MDooZSx0LGkpPT57dmFyIGE9aSg3MDgwKSxyPWkoNDQwMikscz1pKDUxNzApLG49aSgzNzg5KSxvPWkoODQ2OSksZz1pKDUwNyksYz1yLlNldCxsPXIuYWRkLGg9ci5oYXM7ZS5leHBvcnRzPWZ1bmN0aW9uIGludGVyc2VjdGlvbihlKXt2YXIgdD1hKHRoaXMpLGk9bihlKSxyPW5ldyBjO3ModCk+aS5zaXplP2coaS5nZXRJdGVyYXRvcigpLChmdW5jdGlvbihlKXtoKHQsZSkmJmwocixlKX0pKTpvKHQsKGZ1bmN0aW9uKGUpe2kuaW5jbHVkZXMoZSkmJmwocixlKX0pKTtyZXR1cm4gcn19LDQ0NDk6KGUsdCxpKT0+e3ZhciBhPWkoNzA4MCkscj1pKDQ0MDIpLmhhcyxzPWkoNTE3MCksbj1pKDM3ODkpLG89aSg4NDY5KSxnPWkoNTA3KSxjPWkoOTUzOSk7ZS5leHBvcnRzPWZ1bmN0aW9uIGlzRGlzam9pbnRGcm9tKGUpe3ZhciB0PWEodGhpcyksaT1uKGUpO2lmKHModCk8PWkuc2l6ZSlyZXR1cm4hMSE9PW8odCwoZnVuY3Rpb24oZSl7aWYoaS5pbmNsdWRlcyhlKSlyZXR1cm4hMX0pLCEwKTt2YXIgbD1pLmdldEl0ZXJhdG9yKCk7cmV0dXJuITEhPT1nKGwsKGZ1bmN0aW9uKGUpe2lmKHIodCxlKSlyZXR1cm4gYyhsLCJub3JtYWwiLCExKX0pKX19LDM4Mzg6KGUsdCxpKT0+e3ZhciBhPWkoNzA4MCkscj1pKDUxNzApLHM9aSg4NDY5KSxuPWkoMzc4OSk7ZS5leHBvcnRzPWZ1bmN0aW9uIGlzU3Vic2V0T2YoZSl7dmFyIHQ9YSh0aGlzKSxpPW4oZSk7cmV0dXJuIShyKHQpPmkuc2l6ZSkmJiExIT09cyh0LChmdW5jdGlvbihlKXtpZighaS5pbmNsdWRlcyhlKSlyZXR1cm4hMX0pLCEwKX19LDg1Mjc6KGUsdCxpKT0+e3ZhciBhPWkoNzA4MCkscj1pKDQ0MDIpLmhhcyxzPWkoNTE3MCksbj1pKDM3ODkpLG89aSg1MDcpLGc9aSg5NTM5KTtlLmV4cG9ydHM9ZnVuY3Rpb24gaXNTdXBlcnNldE9mKGUpe3ZhciB0PWEodGhpcyksaT1uKGUpO2lmKHModCk8aS5zaXplKXJldHVybiExO3ZhciBjPWkuZ2V0SXRlcmF0b3IoKTtyZXR1cm4hMSE9PW8oYywoZnVuY3Rpb24oZSl7aWYoIXIodCxlKSlyZXR1cm4gZyhjLCJub3JtYWwiLCExKX0pKX19LDg0Njk6KGUsdCxpKT0+e3ZhciBhPWkoOTUwNCkscj1pKDUwNykscz1pKDQ0MDIpLG49cy5TZXQsbz1zLnByb3RvLGc9YShvLmZvckVhY2gpLGM9YShvLmtleXMpLGw9YyhuZXcgbikubmV4dDtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LGkpe3JldHVybiBpP3Ioe2l0ZXJhdG9yOmMoZSksbmV4dDpsfSx0KTpnKGUsdCl9fSw0OTE2OihlLHQsaSk9Pnt2YXIgYT1pKDc3NTEpLGNyZWF0ZVNldExpa2U9ZnVuY3Rpb24oZSl7cmV0dXJue3NpemU6ZSxoYXM6ZnVuY3Rpb24oKXtyZXR1cm4hMX0sa2V5czpmdW5jdGlvbigpe3JldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6ITB9fX19fX07ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PWEoIlNldCIpO3RyeXsobmV3IHQpW2VdKGNyZWF0ZVNldExpa2UoMCkpO3RyeXsobmV3IHQpW2VdKGNyZWF0ZVNldExpa2UoLTEpKTtyZXR1cm4hMX1jYXRjaChlKXtyZXR1cm4hMH19Y2F0Y2goZSl7cmV0dXJuITF9fX0sNTE3MDooZSx0LGkpPT57dmFyIGE9aSg2NzA2KSxyPWkoNDQwMik7ZS5leHBvcnRzPWEoci5wcm90bywic2l6ZSIsImdldCIpfHxmdW5jdGlvbihlKXtyZXR1cm4gZS5zaXplfX0sMzY1MDooZSx0LGkpPT57dmFyIGE9aSg3MDgwKSxyPWkoNDQwMikscz1pKDkyODYpLG49aSgzNzg5KSxvPWkoNTA3KSxnPXIuYWRkLGM9ci5oYXMsbD1yLnJlbW92ZTtlLmV4cG9ydHM9ZnVuY3Rpb24gc3ltbWV0cmljRGlmZmVyZW5jZShlKXt2YXIgdD1hKHRoaXMpLGk9bihlKS5nZXRJdGVyYXRvcigpLHI9cyh0KTtvKGksKGZ1bmN0aW9uKGUpe2ModCxlKT9sKHIsZSk6ZyhyLGUpfSkpO3JldHVybiByfX0sNDIwNDooZSx0LGkpPT57dmFyIGE9aSg3MDgwKSxyPWkoNDQwMikuYWRkLHM9aSg5Mjg2KSxuPWkoMzc4OSksbz1pKDUwNyk7ZS5leHBvcnRzPWZ1bmN0aW9uIHVuaW9uKGUpe3ZhciB0PWEodGhpcyksaT1uKGUpLmdldEl0ZXJhdG9yKCksZz1zKHQpO28oaSwoZnVuY3Rpb24oZSl7cihnLGUpfSkpO3JldHVybiBnfX0sNjExOTooZSx0LGkpPT57dmFyIGE9aSg1NzQ1KSxyPWkoMzM5Mikscz1hKCJrZXlzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBzW2VdfHwoc1tlXT1yKGUpKX19LDc2Mjk6KGUsdCxpKT0+e3ZhciBhPWkoNjM5NSkscj1pKDQ1NzYpLHM9aSg5NDMzKSxuPSJfX2NvcmUtanNfc2hhcmVkX18iLG89ZS5leHBvcnRzPXJbbl18fHMobix7fSk7KG8udmVyc2lvbnN8fChvLnZlcnNpb25zPVtdKSkucHVzaCh7dmVyc2lvbjoiMy4zOS4wIixtb2RlOmE/InB1cmUiOiJnbG9iYWwiLGNvcHlyaWdodDoiwqkgMjAxNC0yMDI0IERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpIixsaWNlbnNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9ibG9iL3YzLjM5LjAvTElDRU5TRSIsc291cmNlOiJodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcyJ9KX0sNTc0NTooZSx0LGkpPT57dmFyIGE9aSg3NjI5KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYVtlXXx8KGFbZV09dHx8e30pfX0sMTU0ODooZSx0LGkpPT57dmFyIGE9aSg0NTc2KSxyPWkoOTAzOSkscz1pKDk1MTkpLG49aSg0MjE1KSxvPWEuc3RydWN0dXJlZENsb25lO2UuZXhwb3J0cz0hIW8mJiFyKChmdW5jdGlvbigpe2lmKCJERU5PIj09PW4mJnM+OTJ8fCJOT0RFIj09PW4mJnM+OTR8fCJCUk9XU0VSIj09PW4mJnM+OTcpcmV0dXJuITE7dmFyIGU9bmV3IEFycmF5QnVmZmVyKDgpLHQ9byhlLHt0cmFuc2ZlcjpbZV19KTtyZXR1cm4gMCE9PWUuYnl0ZUxlbmd0aHx8OCE9PXQuYnl0ZUxlbmd0aH0pKX0sNDQ5NTooZSx0LGkpPT57dmFyIGE9aSg5NTE5KSxyPWkoOTAzOSkscz1pKDQ1NzYpLlN0cmluZztlLmV4cG9ydHM9ISFPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYhcigoZnVuY3Rpb24oKXt2YXIgZT1TeW1ib2woInN5bWJvbCBkZXRlY3Rpb24iKTtyZXR1cm4hcyhlKXx8IShPYmplY3QoZSlpbnN0YW5jZW9mIFN5bWJvbCl8fCFTeW1ib2wuc2hhbSYmYSYmYTw0MX0pKX0sNTYxMDooZSx0LGkpPT57dmFyIGE9aSgxMjkxKSxyPU1hdGgubWF4LHM9TWF0aC5taW47ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIGk9YShlKTtyZXR1cm4gaTwwP3IoaSt0LDApOnMoaSx0KX19LDU4NTQ6KGUsdCxpKT0+e3ZhciBhPWkoMjc3Nykscj1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PWEoZSwibnVtYmVyIik7aWYoIm51bWJlciI9PXR5cGVvZiB0KXRocm93IG5ldyByKCJDYW4ndCBjb252ZXJ0IG51bWJlciB0byBiaWdpbnQiKTtyZXR1cm4gQmlnSW50KHQpfX0sNzY5NjooZSx0LGkpPT57dmFyIGE9aSgxMjkxKSxyPWkoODAxNCkscz1SYW5nZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZih2b2lkIDA9PT1lKXJldHVybiAwO3ZhciB0PWEoZSksaT1yKHQpO2lmKHQhPT1pKXRocm93IG5ldyBzKCJXcm9uZyBsZW5ndGggb3IgaW5kZXgiKTtyZXR1cm4gaX19LDUzOTc6KGUsdCxpKT0+e3ZhciBhPWkoNzA1NSkscj1pKDc3NTApO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gYShyKGUpKX19LDEyOTE6KGUsdCxpKT0+e3ZhciBhPWkoNzQxKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9K2U7cmV0dXJuIHQhPXR8fDA9PT10PzA6YSh0KX19LDgwMTQ6KGUsdCxpKT0+e3ZhciBhPWkoMTI5MSkscj1NYXRoLm1pbjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9YShlKTtyZXR1cm4gdD4wP3IodCw5MDA3MTk5MjU0NzQwOTkxKTowfX0sODk4MTooZSx0LGkpPT57dmFyIGE9aSg3NzUwKSxyPU9iamVjdDtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHIoYShlKSl9fSwyNzc3OihlLHQsaSk9Pnt2YXIgYT1pKDk1NjUpLHI9aSgzNCkscz1pKDc1Nyksbj1pKDU5NjYpLG89aSg0MjcwKSxnPWkoODIyNyksYz1UeXBlRXJyb3IsbD1nKCJ0b1ByaW1pdGl2ZSIpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKCFyKGUpfHxzKGUpKXJldHVybiBlO3ZhciBpLGc9bihlLGwpO2lmKGcpe3ZvaWQgMD09PXQmJih0PSJkZWZhdWx0Iik7aT1hKGcsZSx0KTtpZighcihpKXx8cyhpKSlyZXR1cm4gaTt0aHJvdyBuZXcgYygiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlIil9dm9pZCAwPT09dCYmKHQ9Im51bWJlciIpO3JldHVybiBvKGUsdCl9fSw2OTY5OihlLHQsaSk9Pnt2YXIgYT1pKDI3NzcpLHI9aSg3NTcpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD1hKGUsInN0cmluZyIpO3JldHVybiByKHQpP3Q6dCsiIn19LDIxNDA6KGUsdCxpKT0+e3ZhciBhPXt9O2FbaSg4MjI3KSgidG9TdHJpbmdUYWciKV09InoiO2UuZXhwb3J0cz0iW29iamVjdCB6XSI9PT1TdHJpbmcoYSl9LDY1NTooZSx0LGkpPT57dmFyIGE9aSg2OTU1KSxyPVN0cmluZztlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoIlN5bWJvbCI9PT1hKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0IGEgU3ltYm9sIHZhbHVlIHRvIGEgc3RyaW5nIik7cmV0dXJuIHIoZSl9fSw2ODIzOmU9Pnt2YXIgdD1TdHJpbmc7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gdChlKX1jYXRjaChlKXtyZXR1cm4iT2JqZWN0In19fSwzMzkyOihlLHQsaSk9Pnt2YXIgYT1pKDk1MDQpLHI9MCxzPU1hdGgucmFuZG9tKCksbj1hKDEuLnRvU3RyaW5nKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIlN5bWJvbCgiKyh2b2lkIDA9PT1lPyIiOmUpKyIpXyIrbigrK3IrcywzNil9fSw3MDQwOihlLHQsaSk9Pnt2YXIgYT1pKDQ0OTUpO2UuZXhwb3J0cz1hJiYhU3ltYm9sLnNoYW0mJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yfSw4Njg2OihlLHQsaSk9Pnt2YXIgYT1pKDM3MjQpLHI9aSg5MDM5KTtlLmV4cG9ydHM9YSYmcigoZnVuY3Rpb24oKXtyZXR1cm4gNDIhPT1PYmplY3QuZGVmaW5lUHJvcGVydHkoKGZ1bmN0aW9uKCl7fSksInByb3RvdHlwZSIse3ZhbHVlOjQyLHdyaXRhYmxlOiExfSkucHJvdG90eXBlfSkpfSwyODEyOmU9Pnt2YXIgdD1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsaSl7aWYoZTxpKXRocm93IG5ldyB0KCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpO3JldHVybiBlfX0sODYyMjooZSx0LGkpPT57dmFyIGE9aSg0NTc2KSxyPWkoNDkwMSkscz1hLldlYWtNYXA7ZS5leHBvcnRzPXIocykmJi9uYXRpdmUgY29kZS8udGVzdChTdHJpbmcocykpfSw4MjI3OihlLHQsaSk9Pnt2YXIgYT1pKDQ1NzYpLHI9aSg1NzQ1KSxzPWkoOTI5Nyksbj1pKDMzOTIpLG89aSg0NDk1KSxnPWkoNzA0MCksYz1hLlN5bWJvbCxsPXIoIndrcyIpLGg9Zz9jLmZvcnx8YzpjJiZjLndpdGhvdXRTZXR0ZXJ8fG47ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3MobCxlKXx8KGxbZV09byYmcyhjLGUpP2NbZV06aCgiU3ltYm9sLiIrZSkpO3JldHVybiBsW2VdfX0sNjU3MzooZSx0LGkpPT57dmFyIGE9aSgzNzI0KSxyPWkoMjEwNikscz1pKDMyMzgpLG49QXJyYXlCdWZmZXIucHJvdG90eXBlO2EmJiEoImRldGFjaGVkImluIG4pJiZyKG4sImRldGFjaGVkIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbiBkZXRhY2hlZCgpe3JldHVybiBzKHRoaXMpfX0pfSw3OTM2OihlLHQsaSk9Pnt2YXIgYT1pKDY1MTgpLHI9aSg1NjM2KTtyJiZhKHt0YXJnZXQ6IkFycmF5QnVmZmVyIixwcm90bzohMH0se3RyYW5zZmVyVG9GaXhlZExlbmd0aDpmdW5jdGlvbiB0cmFuc2ZlclRvRml4ZWRMZW5ndGgoKXtyZXR1cm4gcih0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCwhMSl9fSl9LDgxMDA6KGUsdCxpKT0+e3ZhciBhPWkoNjUxOCkscj1pKDU2MzYpO3ImJmEoe3RhcmdldDoiQXJyYXlCdWZmZXIiLHByb3RvOiEwfSx7dHJhbnNmZXI6ZnVuY3Rpb24gdHJhbnNmZXIoKXtyZXR1cm4gcih0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCwhMCl9fSl9LDQxMTQ6KGUsdCxpKT0+e3ZhciBhPWkoNjUxOCkscj1pKDg5ODEpLHM9aSg2MTk4KSxuPWkoNDUyNyksbz1pKDY4MzcpO2Eoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGFyaXR5OjEsZm9yY2VkOmkoOTAzOSkoKGZ1bmN0aW9uKCl7cmV0dXJuIDQyOTQ5NjcyOTchPT1bXS5wdXNoLmNhbGwoe2xlbmd0aDo0Mjk0OTY3Mjk2fSwxKX0pKXx8IWZ1bmN0aW9uKCl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShbXSwibGVuZ3RoIix7d3JpdGFibGU6ITF9KS5wdXNoKCl9Y2F0Y2goZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBUeXBlRXJyb3J9fSgpfSx7cHVzaDpmdW5jdGlvbiBwdXNoKGUpe3ZhciB0PXIodGhpcyksaT1zKHQpLGE9YXJndW1lbnRzLmxlbmd0aDtvKGkrYSk7Zm9yKHZhciBnPTA7ZzxhO2crKyl7dFtpXT1hcmd1bWVudHNbZ107aSsrfW4odCxpKTtyZXR1cm4gaX19KX0sODExMTooZSx0LGkpPT57dmFyIGE9aSg2NTE4KSxyPWkoNDU3Nikscz1pKDY3OSksbj1pKDg1NTEpLG89aSg0OTAxKSxnPWkoMjc4NyksYz1pKDIxMDYpLGw9aSg0NjU5KSxoPWkoOTAzOSksQz1pKDkyOTcpLFE9aSg4MjI3KSxFPWkoNzY1NykuSXRlcmF0b3JQcm90b3R5cGUsdT1pKDM3MjQpLGQ9aSg2Mzk1KSxmPSJjb25zdHJ1Y3RvciIscD0iSXRlcmF0b3IiLG09USgidG9TdHJpbmdUYWciKSx5PVR5cGVFcnJvcix3PXJbcF0sYj1kfHwhbyh3KXx8dy5wcm90b3R5cGUhPT1FfHwhaCgoZnVuY3Rpb24oKXt3KHt9KX0pKSxEPWZ1bmN0aW9uIEl0ZXJhdG9yKCl7cyh0aGlzLEUpO2lmKGcodGhpcyk9PT1FKXRocm93IG5ldyB5KCJBYnN0cmFjdCBjbGFzcyBJdGVyYXRvciBub3QgZGlyZWN0bHkgY29uc3RydWN0YWJsZSIpfSxkZWZpbmVJdGVyYXRvclByb3RvdHlwZUFjY2Vzc29yPWZ1bmN0aW9uKGUsdCl7dT9jKEUsZSx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0fSxzZXQ6ZnVuY3Rpb24odCl7bih0aGlzKTtpZih0aGlzPT09RSl0aHJvdyBuZXcgeSgiWW91IGNhbid0IHJlZGVmaW5lIHRoaXMgcHJvcGVydHkiKTtDKHRoaXMsZSk/dGhpc1tlXT10OmwodGhpcyxlLHQpfX0pOkVbZV09dH07QyhFLG0pfHxkZWZpbmVJdGVyYXRvclByb3RvdHlwZUFjY2Vzc29yKG0scCk7IWImJkMoRSxmKSYmRVtmXSE9PU9iamVjdHx8ZGVmaW5lSXRlcmF0b3JQcm90b3R5cGVBY2Nlc3NvcihmLEQpO0QucHJvdG90eXBlPUU7YSh7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLGZvcmNlZDpifSx7SXRlcmF0b3I6RH0pfSwxMTQ4OihlLHQsaSk9Pnt2YXIgYT1pKDY1MTgpLHI9aSgyNjUyKSxzPWkoOTMwNiksbj1pKDg1NTEpLG89aSgxNzY3KTthKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7ZXZlcnk6ZnVuY3Rpb24gZXZlcnkoZSl7bih0aGlzKTtzKGUpO3ZhciB0PW8odGhpcyksaT0wO3JldHVybiFyKHQsKGZ1bmN0aW9uKHQsYSl7aWYoIWUodCxpKyspKXJldHVybiBhKCl9KSx7SVNfUkVDT1JEOiEwLElOVEVSUlVQVEVEOiEwfSkuc3RvcHBlZH19KX0sMjQ4OTooZSx0LGkpPT57dmFyIGE9aSg2NTE4KSxyPWkoOTU2NSkscz1pKDkzMDYpLG49aSg4NTUxKSxvPWkoMTc2NyksZz1pKDk0NjIpLGM9aSg2MzE5KSxsPWkoNjM5NSksaD1nKChmdW5jdGlvbigpe2Zvcih2YXIgZSx0LGk9dGhpcy5pdGVyYXRvcixhPXRoaXMucHJlZGljYXRlLHM9dGhpcy5uZXh0Ozspe2U9bihyKHMsaSkpO2lmKHRoaXMuZG9uZT0hIWUuZG9uZSlyZXR1cm47dD1lLnZhbHVlO2lmKGMoaSxhLFt0LHRoaXMuY291bnRlcisrXSwhMCkpcmV0dXJuIHR9fSkpO2Eoe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOmx9LHtmaWx0ZXI6ZnVuY3Rpb24gZmlsdGVyKGUpe24odGhpcyk7cyhlKTtyZXR1cm4gbmV3IGgobyh0aGlzKSx7cHJlZGljYXRlOmV9KX19KX0sMTE2OihlLHQsaSk9Pnt2YXIgYT1pKDY1MTgpLHI9aSgyNjUyKSxzPWkoOTMwNiksbj1pKDg1NTEpLG89aSgxNzY3KTthKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7ZmluZDpmdW5jdGlvbiBmaW5kKGUpe24odGhpcyk7cyhlKTt2YXIgdD1vKHRoaXMpLGk9MDtyZXR1cm4gcih0LChmdW5jdGlvbih0LGEpe2lmKGUodCxpKyspKXJldHVybiBhKHQpfSkse0lTX1JFQ09SRDohMCxJTlRFUlJVUFRFRDohMH0pLnJlc3VsdH19KX0sNzU4ODooZSx0LGkpPT57dmFyIGE9aSg2NTE4KSxyPWkoMjY1Mikscz1pKDkzMDYpLG49aSg4NTUxKSxvPWkoMTc2Nyk7YSh7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMH0se2ZvckVhY2g6ZnVuY3Rpb24gZm9yRWFjaChlKXtuKHRoaXMpO3MoZSk7dmFyIHQ9byh0aGlzKSxpPTA7cih0LChmdW5jdGlvbih0KXtlKHQsaSsrKX0pLHtJU19SRUNPUkQ6ITB9KX19KX0sMTcwMTooZSx0LGkpPT57dmFyIGE9aSg2NTE4KSxyPWkoNzEzKTthKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDppKDYzOTUpfSx7bWFwOnJ9KX0sODIzNzooZSx0LGkpPT57dmFyIGE9aSg2NTE4KSxyPWkoMjY1Mikscz1pKDkzMDYpLG49aSg4NTUxKSxvPWkoMTc2NyksZz1UeXBlRXJyb3I7YSh7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMH0se3JlZHVjZTpmdW5jdGlvbiByZWR1Y2UoZSl7bih0aGlzKTtzKGUpO3ZhciB0PW8odGhpcyksaT1hcmd1bWVudHMubGVuZ3RoPDIsYT1pP3ZvaWQgMDphcmd1bWVudHNbMV0sYz0wO3IodCwoZnVuY3Rpb24odCl7aWYoaSl7aT0hMTthPXR9ZWxzZSBhPWUoYSx0LGMpO2MrK30pLHtJU19SRUNPUkQ6ITB9KTtpZihpKXRocm93IG5ldyBnKCJSZWR1Y2Ugb2YgZW1wdHkgaXRlcmF0b3Igd2l0aCBubyBpbml0aWFsIHZhbHVlIik7cmV0dXJuIGF9fSl9LDM1Nzk6KGUsdCxpKT0+e3ZhciBhPWkoNjUxOCkscj1pKDI2NTIpLHM9aSg5MzA2KSxuPWkoODU1MSksbz1pKDE3NjcpO2Eoe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITB9LHtzb21lOmZ1bmN0aW9uIHNvbWUoZSl7bih0aGlzKTtzKGUpO3ZhciB0PW8odGhpcyksaT0wO3JldHVybiByKHQsKGZ1bmN0aW9uKHQsYSl7aWYoZSh0LGkrKykpcmV0dXJuIGEoKX0pLHtJU19SRUNPUkQ6ITAsSU5URVJSVVBURUQ6ITB9KS5zdG9wcGVkfX0pfSwxODA2OihlLHQsaSk9Pnt2YXIgYT1pKDY1MTgpLHI9aSg4NTUxKSxzPWkoMjY1Miksbj1pKDE3NjcpLG89W10ucHVzaDthKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7dG9BcnJheTpmdW5jdGlvbiB0b0FycmF5KCl7dmFyIGU9W107cyhuKHIodGhpcykpLG8se3RoYXQ6ZSxJU19SRUNPUkQ6ITB9KTtyZXR1cm4gZX19KX0sMTY4OTooZSx0LGkpPT57dmFyIGE9aSg2NTE4KSxyPWkoNDU3Nikscz1pKDg3NDUpLG49aSg3NjgwKSxvPWkoNjA0MyksZz1pKDkzMDYpLGM9aSgxMTAzKSxsPXIuUHJvbWlzZSxoPSExO2Eoe3RhcmdldDoiUHJvbWlzZSIsc3RhdDohMCxmb3JjZWQ6IWx8fCFsLnRyeXx8YygoZnVuY3Rpb24oKXtsLnRyeSgoZnVuY3Rpb24oZSl7aD04PT09ZX0pLDgpfSkpLmVycm9yfHwhaH0se3RyeTpmdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjE/bihhcmd1bWVudHMsMSk6W10saT1vLmYodGhpcyksYT1jKChmdW5jdGlvbigpe3JldHVybiBzKGcoZSksdm9pZCAwLHQpfSkpOyhhLmVycm9yP2kucmVqZWN0OmkucmVzb2x2ZSkoYS52YWx1ZSk7cmV0dXJuIGkucHJvbWlzZX19KX0sNDYyODooZSx0LGkpPT57dmFyIGE9aSg2NTE4KSxyPWkoNjA0Myk7YSh7dGFyZ2V0OiJQcm9taXNlIixzdGF0OiEwfSx7d2l0aFJlc29sdmVyczpmdW5jdGlvbiB3aXRoUmVzb2x2ZXJzKCl7dmFyIGU9ci5mKHRoaXMpO3JldHVybntwcm9taXNlOmUucHJvbWlzZSxyZXNvbHZlOmUucmVzb2x2ZSxyZWplY3Q6ZS5yZWplY3R9fX0pfSw5NDc5OihlLHQsaSk9Pnt2YXIgYT1pKDQ1NzYpLHI9aSgzNzI0KSxzPWkoMjEwNiksbj1pKDc5NzkpLG89aSg5MDM5KSxnPWEuUmVnRXhwLGM9Zy5wcm90b3R5cGU7ciYmbygoZnVuY3Rpb24oKXt2YXIgZT0hMDt0cnl7ZygiLiIsImQiKX1jYXRjaCh0KXtlPSExfXZhciB0PXt9LGk9IiIsYT1lPyJkZ2ltc3kiOiJnaW1zeSIsYWRkR2V0dGVyPWZ1bmN0aW9uKGUsYSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7Z2V0OmZ1bmN0aW9uKCl7aSs9YTtyZXR1cm4hMH19KX0scj17ZG90QWxsOiJzIixnbG9iYWw6ImciLGlnbm9yZUNhc2U6ImkiLG11bHRpbGluZToibSIsc3RpY2t5OiJ5In07ZSYmKHIuaGFzSW5kaWNlcz0iZCIpO2Zvcih2YXIgcyBpbiByKWFkZEdldHRlcihzLHJbc10pO3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGMsImZsYWdzIikuZ2V0LmNhbGwodCkhPT1hfHxpIT09YX0pKSYmcyhjLCJmbGFncyIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6bn0pfSw3NjQyOihlLHQsaSk9Pnt2YXIgYT1pKDY1MTgpLHI9aSgzNDQwKTthKHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6IWkoNDkxNikoImRpZmZlcmVuY2UiKX0se2RpZmZlcmVuY2U6cn0pfSw4MDA0OihlLHQsaSk9Pnt2YXIgYT1pKDY1MTgpLHI9aSg5MDM5KSxzPWkoODc1MCk7YSh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiFpKDQ5MTYpKCJpbnRlcnNlY3Rpb24iKXx8cigoZnVuY3Rpb24oKXtyZXR1cm4iMywyIiE9PVN0cmluZyhBcnJheS5mcm9tKG5ldyBTZXQoWzEsMiwzXSkuaW50ZXJzZWN0aW9uKG5ldyBTZXQoWzMsMl0pKSkpfSkpfSx7aW50ZXJzZWN0aW9uOnN9KX0sMzg1MzooZSx0LGkpPT57dmFyIGE9aSg2NTE4KSxyPWkoNDQ0OSk7YSh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiFpKDQ5MTYpKCJpc0Rpc2pvaW50RnJvbSIpfSx7aXNEaXNqb2ludEZyb206cn0pfSw1ODc2OihlLHQsaSk9Pnt2YXIgYT1pKDY1MTgpLHI9aSgzODM4KTthKHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6IWkoNDkxNikoImlzU3Vic2V0T2YiKX0se2lzU3Vic2V0T2Y6cn0pfSwyNDc1OihlLHQsaSk9Pnt2YXIgYT1pKDY1MTgpLHI9aSg4NTI3KTthKHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6IWkoNDkxNikoImlzU3VwZXJzZXRPZiIpfSx7aXNTdXBlcnNldE9mOnJ9KX0sNTAyNDooZSx0LGkpPT57dmFyIGE9aSg2NTE4KSxyPWkoMzY1MCk7YSh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiFpKDQ5MTYpKCJzeW1tZXRyaWNEaWZmZXJlbmNlIil9LHtzeW1tZXRyaWNEaWZmZXJlbmNlOnJ9KX0sMTY5ODooZSx0LGkpPT57dmFyIGE9aSg2NTE4KSxyPWkoNDIwNCk7YSh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiFpKDQ5MTYpKCJ1bmlvbiIpfSx7dW5pb246cn0pfSw3NDY3OihlLHQsaSk9Pnt2YXIgYT1pKDc2MjgpLHI9aSg0NjQ0KSxzPXIuYVR5cGVkQXJyYXksbj1yLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Qsbz1yLmdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcjtuKCJ0b1JldmVyc2VkIiwoZnVuY3Rpb24gdG9SZXZlcnNlZCgpe3JldHVybiBhKHModGhpcyksbyh0aGlzKSl9KSl9LDQ3MzI6KGUsdCxpKT0+e3ZhciBhPWkoNDY0NCkscj1pKDk1MDQpLHM9aSg5MzA2KSxuPWkoNTM3MCksbz1hLmFUeXBlZEFycmF5LGc9YS5nZXRUeXBlZEFycmF5Q29uc3RydWN0b3IsYz1hLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QsbD1yKGEuVHlwZWRBcnJheVByb3RvdHlwZS5zb3J0KTtjKCJ0b1NvcnRlZCIsKGZ1bmN0aW9uIHRvU29ydGVkKGUpe3ZvaWQgMCE9PWUmJnMoZSk7dmFyIHQ9byh0aGlzKSxpPW4oZyh0KSx0KTtyZXR1cm4gbChpLGUpfSkpfSw5NTc3OihlLHQsaSk9Pnt2YXIgYT1pKDk5MjgpLHI9aSg0NjQ0KSxzPWkoMTEwOCksbj1pKDEyOTEpLG89aSg1ODU0KSxnPXIuYVR5cGVkQXJyYXksYz1yLmdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcixsPXIuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxoPSEhZnVuY3Rpb24oKXt0cnl7bmV3IEludDhBcnJheSgxKS53aXRoKDIse3ZhbHVlT2Y6ZnVuY3Rpb24oKXt0aHJvdyA4fX0pfWNhdGNoKGUpe3JldHVybiA4PT09ZX19KCk7bCgid2l0aCIse3dpdGg6ZnVuY3Rpb24oZSx0KXt2YXIgaT1nKHRoaXMpLHI9bihlKSxsPXMoaSk/byh0KTordDtyZXR1cm4gYShpLGMoaSkscixsKX19LndpdGgsIWgpfSw4OTkyOihlLHQsaSk9PntpKDgxMTEpfSwzMjE1OihlLHQsaSk9PntpKDExNDgpfSw0NTIwOihlLHQsaSk9PntpKDI0ODkpfSwyNTc3OihlLHQsaSk9PntpKDExNil9LDM5NDk6KGUsdCxpKT0+e2koNzU4OCl9LDE0NTQ6KGUsdCxpKT0+e2koMTcwMSl9LDg4NzI6KGUsdCxpKT0+e2koODIzNyl9LDc1NTA6KGUsdCxpKT0+e2koMzU3OSl9LDE3OTU6KGUsdCxpKT0+e2koMTgwNil9LDUyNDc6KGUsdCxpKT0+e2koMTY4OSl9LDQ5Nzk6KGUsdCxpKT0+e3ZhciBhPWkoNjUxOCkscj1pKDQ1NzYpLHM9aSg3NzUxKSxuPWkoNjk4MCksbz1pKDQ5MTMpLmYsZz1pKDkyOTcpLGM9aSg2NzkpLGw9aSgzMTY3KSxoPWkoMjYwMyksQz1pKDUwMDIpLFE9aSg4NTc0KSxFPWkoMzcyNCksdT1pKDYzOTUpLGQ9IkRPTUV4Y2VwdGlvbiIsZj1zKCJFcnJvciIpLHA9cyhkKSxtPWZ1bmN0aW9uIERPTUV4Y2VwdGlvbigpe2ModGhpcyx5KTt2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9aChlPDE/dm9pZCAwOmFyZ3VtZW50c1swXSksaT1oKGU8Mj92b2lkIDA6YXJndW1lbnRzWzFdLCJFcnJvciIpLGE9bmV3IHAodCxpKSxyPW5ldyBmKHQpO3IubmFtZT1kO28oYSwic3RhY2siLG4oMSxRKHIuc3RhY2ssMSkpKTtsKGEsdGhpcyxtKTtyZXR1cm4gYX0seT1tLnByb3RvdHlwZT1wLnByb3RvdHlwZSx3PSJzdGFjayJpbiBuZXcgZihkKSxiPSJzdGFjayJpbiBuZXcgcCgxLDIpLEQ9cCYmRSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLGQpLFM9ISghRHx8RC53cml0YWJsZSYmRC5jb25maWd1cmFibGUpLGs9dyYmIVMmJiFiO2Eoe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6dXx8a30se0RPTUV4Y2VwdGlvbjprP206cH0pO3ZhciBSPXMoZCksTj1SLnByb3RvdHlwZTtpZihOLmNvbnN0cnVjdG9yIT09Uil7dXx8byhOLCJjb25zdHJ1Y3RvciIsbigxLFIpKTtmb3IodmFyIEcgaW4gQylpZihnKEMsRykpe3ZhciBNPUNbR10sVT1NLnM7ZyhSLFUpfHxvKFIsVSxuKDYsTS5jKSl9fX0sMzYxMTooZSx0LGkpPT57dmFyIGE9aSg2NTE4KSxyPWkoNDU3Nikscz1pKDIxMDYpLG49aSgzNzI0KSxvPVR5cGVFcnJvcixnPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxjPXIuc2VsZiE9PXI7dHJ5e2lmKG4pe3ZhciBsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iociwic2VsZiIpOyFjJiZsJiZsLmdldCYmbC5lbnVtZXJhYmxlfHxzKHIsInNlbGYiLHtnZXQ6ZnVuY3Rpb24gc2VsZigpe3JldHVybiByfSxzZXQ6ZnVuY3Rpb24gc2VsZihlKXtpZih0aGlzIT09cil0aHJvdyBuZXcgbygiSWxsZWdhbCBpbnZvY2F0aW9uIik7ZyhyLCJzZWxmIix7dmFsdWU6ZSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH0pfSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH0pfWVsc2UgYSh7Z2xvYmFsOiEwLHNpbXBsZTohMCxmb3JjZWQ6Y30se3NlbGY6cn0pfWNhdGNoKGUpe319LDQ2MDM6KGUsdCxpKT0+e3ZhciBhPWkoNjg0MCkscj1pKDk1MDQpLHM9aSg2NTUpLG49aSgyODEyKSxvPVVSTFNlYXJjaFBhcmFtcyxnPW8ucHJvdG90eXBlLGM9cihnLmFwcGVuZCksbD1yKGcuZGVsZXRlKSxoPXIoZy5mb3JFYWNoKSxDPXIoW10ucHVzaCksUT1uZXcgbygiYT0xJmE9MiZiPTMiKTtRLmRlbGV0ZSgiYSIsMSk7US5kZWxldGUoImIiLHZvaWQgMCk7USsiIiE9ImE9MiImJmEoZywiZGVsZXRlIiwoZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aCxpPXQ8Mj92b2lkIDA6YXJndW1lbnRzWzFdO2lmKHQmJnZvaWQgMD09PWkpcmV0dXJuIGwodGhpcyxlKTt2YXIgYT1bXTtoKHRoaXMsKGZ1bmN0aW9uKGUsdCl7QyhhLHtrZXk6dCx2YWx1ZTplfSl9KSk7bih0LDEpO2Zvcih2YXIgcixvPXMoZSksZz1zKGkpLFE9MCxFPTAsdT0hMSxkPWEubGVuZ3RoO1E8ZDspe3I9YVtRKytdO2lmKHV8fHIua2V5PT09byl7dT0hMDtsKHRoaXMsci5rZXkpfWVsc2UgRSsrfWZvcig7RTxkOykocj1hW0UrK10pLmtleT09PW8mJnIudmFsdWU9PT1nfHxjKHRoaXMsci5rZXksci52YWx1ZSl9KSx7ZW51bWVyYWJsZTohMCx1bnNhZmU6ITB9KX0sNzU2NjooZSx0LGkpPT57dmFyIGE9aSg2ODQwKSxyPWkoOTUwNCkscz1pKDY1NSksbj1pKDI4MTIpLG89VVJMU2VhcmNoUGFyYW1zLGc9by5wcm90b3R5cGUsYz1yKGcuZ2V0QWxsKSxsPXIoZy5oYXMpLGg9bmV3IG8oImE9MSIpOyFoLmhhcygiYSIsMikmJmguaGFzKCJhIix2b2lkIDApfHxhKGcsImhhcyIsKGZ1bmN0aW9uIGhhcyhlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoLGk9dDwyP3ZvaWQgMDphcmd1bWVudHNbMV07aWYodCYmdm9pZCAwPT09aSlyZXR1cm4gbCh0aGlzLGUpO3ZhciBhPWModGhpcyxlKTtuKHQsMSk7Zm9yKHZhciByPXMoaSksbz0wO288YS5sZW5ndGg7KWlmKGFbbysrXT09PXIpcmV0dXJuITA7cmV0dXJuITF9KSx7ZW51bWVyYWJsZTohMCx1bnNhZmU6ITB9KX0sODcyMTooZSx0LGkpPT57dmFyIGE9aSgzNzI0KSxyPWkoOTUwNCkscz1pKDIxMDYpLG49VVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZSxvPXIobi5mb3JFYWNoKTthJiYhKCJzaXplImluIG4pJiZzKG4sInNpemUiLHtnZXQ6ZnVuY3Rpb24gc2l6ZSgpe3ZhciBlPTA7byh0aGlzLChmdW5jdGlvbigpe2UrK30pKTtyZXR1cm4gZX0sY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITB9KX19LHQ9e307ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhpKXt2YXIgYT10W2ldO2lmKHZvaWQgMCE9PWEpcmV0dXJuIGEuZXhwb3J0czt2YXIgcj10W2ldPXtleHBvcnRzOnt9fTtlW2ldLmNhbGwoci5leHBvcnRzLHIsci5leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pO3JldHVybiByLmV4cG9ydHN9X193ZWJwYWNrX3JlcXVpcmVfXy5kPShlLHQpPT57Zm9yKHZhciBpIGluIHQpX193ZWJwYWNrX3JlcXVpcmVfXy5vKHQsaSkmJiFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZSxpKSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaSx7ZW51bWVyYWJsZTohMCxnZXQ6dFtpXX0pfTtfX3dlYnBhY2tfcmVxdWlyZV9fLm89KGUsdCk9Pk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpO3ZhciBfX3dlYnBhY2tfZXhwb3J0c19fID0gZ2xvYmFsVGhpcy5wZGZqc1dvcmtlciA9IHt9O19fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtXb3JrZXJNZXNzYWdlSGFuZGxlcjooKT0+V29ya2VyTWVzc2FnZUhhbmRsZXJ9KTtfX3dlYnBhY2tfcmVxdWlyZV9fKDQxMTQpLF9fd2VicGFja19yZXF1aXJlX18oNjU3MyksX193ZWJwYWNrX3JlcXVpcmVfXyg4MTAwKSxfX3dlYnBhY2tfcmVxdWlyZV9fKDc5MzYpLF9fd2VicGFja19yZXF1aXJlX18oNDYyOCksX193ZWJwYWNrX3JlcXVpcmVfXyg3NjQyKSxfX3dlYnBhY2tfcmVxdWlyZV9fKDgwMDQpLF9fd2VicGFja19yZXF1aXJlX18oMzg1MyksX193ZWJwYWNrX3JlcXVpcmVfXyg1ODc2KSxfX3dlYnBhY2tfcmVxdWlyZV9fKDI0NzUpLF9fd2VicGFja19yZXF1aXJlX18oNTAyNCksX193ZWJwYWNrX3JlcXVpcmVfXygxNjk4KSxfX3dlYnBhY2tfcmVxdWlyZV9fKDc0NjcpLF9fd2VicGFja19yZXF1aXJlX18oNDczMiksX193ZWJwYWNrX3JlcXVpcmVfXyg5NTc3KSxfX3dlYnBhY2tfcmVxdWlyZV9fKDg5OTIpLF9fd2VicGFja19yZXF1aXJlX18oMTQ1NCksX193ZWJwYWNrX3JlcXVpcmVfXyg3NTUwKSxfX3dlYnBhY2tfcmVxdWlyZV9fKDM2MTEpLF9fd2VicGFja19yZXF1aXJlX18oNTI0NyksX193ZWJwYWNrX3JlcXVpcmVfXyg0OTc5KSxfX3dlYnBhY2tfcmVxdWlyZV9fKDQ2MDMpLF9fd2VicGFja19yZXF1aXJlX18oNzU2NiksX193ZWJwYWNrX3JlcXVpcmVfXyg4NzIxKTtjb25zdCBpPSEoIm9iamVjdCIhPXR5cGVvZiBwcm9jZXNzfHxwcm9jZXNzKyIiIT0iW29iamVjdCBwcm9jZXNzXSJ8fHByb2Nlc3MudmVyc2lvbnMubnd8fHByb2Nlc3MudmVyc2lvbnMuZWxlY3Ryb24mJnByb2Nlc3MudHlwZSYmImJyb3dzZXIiIT09cHJvY2Vzcy50eXBlKSxhPVsxLDAsMCwxLDAsMF0scj1bLjAwMSwwLDAsLjAwMSwwLDBdLHM9MS4zNSxuPS4zNSxvPS4yNTkyNTkyNTkyNTkyNTkyNCxnPTEsYz0yLGw9NCxoPTgsQz0xNixRPTY0LEU9MTI4LHU9MjU2LGQ9InBkZmpzX2ludGVybmFsX2VkaXRvcl8iLGY9MyxwPTksbT0xMyx5PTE1LHc9e1BSSU5UOjQsTU9ESUZZX0NPTlRFTlRTOjgsQ09QWToxNixNT0RJRllfQU5OT1RBVElPTlM6MzIsRklMTF9JTlRFUkFDVElWRV9GT1JNUzoyNTYsQ09QWV9GT1JfQUNDRVNTSUJJTElUWTo1MTIsQVNTRU1CTEU6MTAyNCxQUklOVF9ISUdIX1FVQUxJVFk6MjA0OH0sYj0wLEQ9NCxTPTEsaz0yLFI9MyxOPTEsRz0yLE09MyxVPTQseD01LEw9NixIPTcsSj04LHY9OSxZPTEwLEs9MTEsVD0xMixxPTEzLE89MTQsVz0xNSxqPTE2LFg9MTcsVj0yMCxaPSJHcm91cCIsXz0iUiIsej0xLCQ9MixBQT00LGVBPTE2LHRBPTMyLGlBPTEyOCxhQT01MTIsckE9MSxzQT0yLG5BPTQwOTYsb0E9ODE5MixnQT0zMjc2OCxJQT02NTUzNixjQT0xMzEwNzIsbEE9MTA0ODU3NixoQT0yMDk3MTUyLENBPTgzODg2MDgsQkE9MTY3NzcyMTYsUUE9MSxFQT0yLHVBPTMsZEE9NCxmQT01LHBBPXtFOiJNb3VzZSBFbnRlciIsWDoiTW91c2UgRXhpdCIsRDoiTW91c2UgRG93biIsVToiTW91c2UgVXAiLEZvOiJGb2N1cyIsQmw6IkJsdXIiLFBPOiJQYWdlT3BlbiIsUEM6IlBhZ2VDbG9zZSIsUFY6IlBhZ2VWaXNpYmxlIixQSToiUGFnZUludmlzaWJsZSIsSzoiS2V5c3Ryb2tlIixGOiJGb3JtYXQiLFY6IlZhbGlkYXRlIixDOiJDYWxjdWxhdGUifSxtQT17V0M6IldpbGxDbG9zZSIsV1M6IldpbGxTYXZlIixEUzoiRGlkU2F2ZSIsV1A6IldpbGxQcmludCIsRFA6IkRpZFByaW50In0seUE9e086IlBhZ2VPcGVuIixDOiJQYWdlQ2xvc2UifSx3QT0xLGJBPTUsREE9MSxGQT0yLFNBPTMsa0E9NCxSQT01LE5BPTYsR0E9NyxNQT04LFVBPTkseEE9MTAsTEE9MTEsSEE9MTIsSkE9MTMsdkE9MTQsWUE9MTUsS0E9MTYsVEE9MTcscUE9MTgsT0E9MTksUEE9MjAsV0E9MjEsakE9MjIsWEE9MjMsVkE9MjQsWkE9MjUsX0E9MjYsekE9MjcsJEE9MjgsQWU9MjksZWU9MzAsdGU9MzEsaWU9MzIsYWU9MzMscmU9MzQsc2U9MzUsbmU9MzYsb2U9MzcsZ2U9MzgsSWU9MzksY2U9NDAsbGU9NDEsaGU9NDIsQ2U9NDMsQmU9NDQsUWU9NDUsRWU9NDYsdWU9NDcsZGU9NDgsZmU9NDkscGU9NTAsbWU9NTEseWU9NTIsd2U9NTMsYmU9NTQsRGU9NTUsRmU9NTYsU2U9NTcsa2U9NTgsUmU9NTksTmU9NjAsR2U9NjEsTWU9NjIsVWU9NjMseGU9NjQsTGU9NjUsSGU9NjYsSmU9NjcsdmU9NjgsWWU9NjksS2U9NzAsVGU9NzEscWU9NzIsT2U9NzMsUGU9NzQsV2U9NzUsamU9NzYsWGU9NzcsVmU9ODAsWmU9ODEsX2U9ODMsemU9ODQsJGU9ODUsQXQ9ODYsZXQ9ODcsdHQ9ODgsaXQ9ODksYXQ9OTAscnQ9OTEsc3Q9OTIsbnQ9OTMsb3Q9MSxndD0yO2xldCBJdD13QTtmdW5jdGlvbiBnZXRWZXJib3NpdHlMZXZlbCgpe3JldHVybiBJdH1mdW5jdGlvbiBpbmZvKGUpe0l0Pj1iQSYmY29uc29sZS5sb2coYEluZm86ICR7ZX1gKX1mdW5jdGlvbiB3YXJuKGUpe0l0Pj13QSYmY29uc29sZS5sb2coYFdhcm5pbmc6ICR7ZX1gKX1mdW5jdGlvbiB1bnJlYWNoYWJsZShlKXt0aHJvdyBuZXcgRXJyb3IoZSl9ZnVuY3Rpb24gYXNzZXJ0KGUsdCl7ZXx8dW5yZWFjaGFibGUodCl9ZnVuY3Rpb24gY3JlYXRlVmFsaWRBYnNvbHV0ZVVybChlLHQ9bnVsbCxpPW51bGwpe2lmKCFlKXJldHVybiBudWxsO3RyeXtpZihpJiYic3RyaW5nIj09dHlwZW9mIGUpe2lmKGkuYWRkRGVmYXVsdFByb3RvY29sJiZlLnN0YXJ0c1dpdGgoInd3dy4iKSl7Y29uc3QgdD1lLm1hdGNoKC9cLi9nKTt0Py5sZW5ndGg+PTImJihlPWBodHRwOi8vJHtlfWApfWlmKGkudHJ5Q29udmVydEVuY29kaW5nKXRyeXtlPXN0cmluZ1RvVVRGOFN0cmluZyhlKX1jYXRjaHt9fWNvbnN0IGE9dD9uZXcgVVJMKGUsdCk6bmV3IFVSTChlKTtpZihmdW5jdGlvbiBfaXNWYWxpZFByb3RvY29sKGUpe3N3aXRjaChlPy5wcm90b2NvbCl7Y2FzZSJodHRwOiI6Y2FzZSJodHRwczoiOmNhc2UiZnRwOiI6Y2FzZSJtYWlsdG86IjpjYXNlInRlbDoiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fShhKSlyZXR1cm4gYX1jYXRjaHt9cmV0dXJuIG51bGx9ZnVuY3Rpb24gc2hhZG93KGUsdCxpLGE9ITEpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOmksZW51bWVyYWJsZTohYSxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITF9KTtyZXR1cm4gaX1jb25zdCBjdD1mdW5jdGlvbiBCYXNlRXhjZXB0aW9uQ2xvc3VyZSgpe2Z1bmN0aW9uIEJhc2VFeGNlcHRpb24oZSx0KXt0aGlzLm1lc3NhZ2U9ZTt0aGlzLm5hbWU9dH1CYXNlRXhjZXB0aW9uLnByb3RvdHlwZT1uZXcgRXJyb3I7QmFzZUV4Y2VwdGlvbi5jb25zdHJ1Y3Rvcj1CYXNlRXhjZXB0aW9uO3JldHVybiBCYXNlRXhjZXB0aW9ufSgpO2NsYXNzIFBhc3N3b3JkRXhjZXB0aW9uIGV4dGVuZHMgY3R7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLCJQYXNzd29yZEV4Y2VwdGlvbiIpO3RoaXMuY29kZT10fX1jbGFzcyBVbmtub3duRXJyb3JFeGNlcHRpb24gZXh0ZW5kcyBjdHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsIlVua25vd25FcnJvckV4Y2VwdGlvbiIpO3RoaXMuZGV0YWlscz10fX1jbGFzcyBJbnZhbGlkUERGRXhjZXB0aW9uIGV4dGVuZHMgY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwiSW52YWxpZFBERkV4Y2VwdGlvbiIpfX1jbGFzcyBNaXNzaW5nUERGRXhjZXB0aW9uIGV4dGVuZHMgY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwiTWlzc2luZ1BERkV4Y2VwdGlvbiIpfX1jbGFzcyBVbmV4cGVjdGVkUmVzcG9uc2VFeGNlcHRpb24gZXh0ZW5kcyBjdHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsIlVuZXhwZWN0ZWRSZXNwb25zZUV4Y2VwdGlvbiIpO3RoaXMuc3RhdHVzPXR9fWNsYXNzIEZvcm1hdEVycm9yIGV4dGVuZHMgY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwiRm9ybWF0RXJyb3IiKX19Y2xhc3MgQWJvcnRFeGNlcHRpb24gZXh0ZW5kcyBjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlLCJBYm9ydEV4Y2VwdGlvbiIpfX1mdW5jdGlvbiBieXRlc1RvU3RyaW5nKGUpeyJvYmplY3QiPT10eXBlb2YgZSYmdm9pZCAwIT09ZT8ubGVuZ3RofHx1bnJlYWNoYWJsZSgiSW52YWxpZCBhcmd1bWVudCBmb3IgYnl0ZXNUb1N0cmluZyIpO2NvbnN0IHQ9ZS5sZW5ndGgsaT04MTkyO2lmKHQ8aSlyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGUpO2NvbnN0IGE9W107Zm9yKGxldCByPTA7cjx0O3IrPWkpe2NvbnN0IHM9TWF0aC5taW4ocitpLHQpLG49ZS5zdWJhcnJheShyLHMpO2EucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsbikpfXJldHVybiBhLmpvaW4oIiIpfWZ1bmN0aW9uIHN0cmluZ1RvQnl0ZXMoZSl7InN0cmluZyIhPXR5cGVvZiBlJiZ1bnJlYWNoYWJsZSgiSW52YWxpZCBhcmd1bWVudCBmb3Igc3RyaW5nVG9CeXRlcyIpO2NvbnN0IHQ9ZS5sZW5ndGgsaT1uZXcgVWludDhBcnJheSh0KTtmb3IobGV0IGE9MDthPHQ7KythKWlbYV09MjU1JmUuY2hhckNvZGVBdChhKTtyZXR1cm4gaX1mdW5jdGlvbiBzdHJpbmczMihlKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShlPj4yNCYyNTUsZT4+MTYmMjU1LGU+PjgmMjU1LDI1NSZlKX1mdW5jdGlvbiBvYmplY3RTaXplKGUpe3JldHVybiBPYmplY3Qua2V5cyhlKS5sZW5ndGh9Y2xhc3MgRmVhdHVyZVRlc3R7c3RhdGljIGdldCBpc0xpdHRsZUVuZGlhbigpe3JldHVybiBzaGFkb3codGhpcywiaXNMaXR0bGVFbmRpYW4iLGZ1bmN0aW9uIGlzTGl0dGxlRW5kaWFuKCl7Y29uc3QgZT1uZXcgVWludDhBcnJheSg0KTtlWzBdPTE7cmV0dXJuIDE9PT1uZXcgVWludDMyQXJyYXkoZS5idWZmZXIsMCwxKVswXX0oKSl9c3RhdGljIGdldCBpc0V2YWxTdXBwb3J0ZWQoKXtyZXR1cm4gc2hhZG93KHRoaXMsImlzRXZhbFN1cHBvcnRlZCIsZnVuY3Rpb24gaXNFdmFsU3VwcG9ydGVkKCl7dHJ5e25ldyBGdW5jdGlvbigiIik7cmV0dXJuITB9Y2F0Y2h7cmV0dXJuITF9fSgpKX1zdGF0aWMgZ2V0IGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJpc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZCIsInVuZGVmaW5lZCIhPXR5cGVvZiBPZmZzY3JlZW5DYW52YXMpfXN0YXRpYyBnZXQgaXNJbWFnZURlY29kZXJTdXBwb3J0ZWQoKXtyZXR1cm4gc2hhZG93KHRoaXMsImlzSW1hZ2VEZWNvZGVyU3VwcG9ydGVkIiwidW5kZWZpbmVkIiE9dHlwZW9mIEltYWdlRGVjb2Rlcil9c3RhdGljIGdldCBwbGF0Zm9ybSgpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yJiYic3RyaW5nIj09dHlwZW9mIG5hdmlnYXRvcj8ucGxhdGZvcm0/c2hhZG93KHRoaXMsInBsYXRmb3JtIix7aXNNYWM6bmF2aWdhdG9yLnBsYXRmb3JtLmluY2x1ZGVzKCJNYWMiKSxpc1dpbmRvd3M6bmF2aWdhdG9yLnBsYXRmb3JtLmluY2x1ZGVzKCJXaW4iKSxpc0ZpcmVmb3g6InN0cmluZyI9PXR5cGVvZiBuYXZpZ2F0b3I/LnVzZXJBZ2VudCYmbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygiRmlyZWZveCIpfSk6c2hhZG93KHRoaXMsInBsYXRmb3JtIix7aXNNYWM6ITEsaXNXaW5kb3dzOiExLGlzRmlyZWZveDohMX0pfXN0YXRpYyBnZXQgaXNDU1NSb3VuZFN1cHBvcnRlZCgpe3JldHVybiBzaGFkb3codGhpcywiaXNDU1NSb3VuZFN1cHBvcnRlZCIsZ2xvYmFsVGhpcy5DU1M/LnN1cHBvcnRzPy4oIndpZHRoOiByb3VuZCgxLjVweCwgMXB4KSIpKX19Y29uc3QgbHQ9QXJyYXkuZnJvbShBcnJheSgyNTYpLmtleXMoKSwoZT0+ZS50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpKSk7Y2xhc3MgVXRpbHtzdGF0aWMgbWFrZUhleENvbG9yKGUsdCxpKXtyZXR1cm5gIyR7bHRbZV19JHtsdFt0XX0ke2x0W2ldfWB9c3RhdGljIHNjYWxlTWluTWF4KGUsdCl7bGV0IGk7aWYoZVswXSl7aWYoZVswXTwwKXtpPXRbMF07dFswXT10WzJdO3RbMl09aX10WzBdKj1lWzBdO3RbMl0qPWVbMF07aWYoZVszXTwwKXtpPXRbMV07dFsxXT10WzNdO3RbM109aX10WzFdKj1lWzNdO3RbM10qPWVbM119ZWxzZXtpPXRbMF07dFswXT10WzFdO3RbMV09aTtpPXRbMl07dFsyXT10WzNdO3RbM109aTtpZihlWzFdPDApe2k9dFsxXTt0WzFdPXRbM107dFszXT1pfXRbMV0qPWVbMV07dFszXSo9ZVsxXTtpZihlWzJdPDApe2k9dFswXTt0WzBdPXRbMl07dFsyXT1pfXRbMF0qPWVbMl07dFsyXSo9ZVsyXX10WzBdKz1lWzRdO3RbMV0rPWVbNV07dFsyXSs9ZVs0XTt0WzNdKz1lWzVdfXN0YXRpYyB0cmFuc2Zvcm0oZSx0KXtyZXR1cm5bZVswXSp0WzBdK2VbMl0qdFsxXSxlWzFdKnRbMF0rZVszXSp0WzFdLGVbMF0qdFsyXStlWzJdKnRbM10sZVsxXSp0WzJdK2VbM10qdFszXSxlWzBdKnRbNF0rZVsyXSp0WzVdK2VbNF0sZVsxXSp0WzRdK2VbM10qdFs1XStlWzVdXX1zdGF0aWMgYXBwbHlUcmFuc2Zvcm0oZSx0KXtyZXR1cm5bZVswXSp0WzBdK2VbMV0qdFsyXSt0WzRdLGVbMF0qdFsxXStlWzFdKnRbM10rdFs1XV19c3RhdGljIGFwcGx5SW52ZXJzZVRyYW5zZm9ybShlLHQpe2NvbnN0IGk9dFswXSp0WzNdLXRbMV0qdFsyXTtyZXR1cm5bKGVbMF0qdFszXS1lWzFdKnRbMl0rdFsyXSp0WzVdLXRbNF0qdFszXSkvaSwoLWVbMF0qdFsxXStlWzFdKnRbMF0rdFs0XSp0WzFdLXRbNV0qdFswXSkvaV19c3RhdGljIGdldEF4aWFsQWxpZ25lZEJvdW5kaW5nQm94KGUsdCl7Y29uc3QgaT10aGlzLmFwcGx5VHJhbnNmb3JtKGUsdCksYT10aGlzLmFwcGx5VHJhbnNmb3JtKGUuc2xpY2UoMiw0KSx0KSxyPXRoaXMuYXBwbHlUcmFuc2Zvcm0oW2VbMF0sZVszXV0sdCkscz10aGlzLmFwcGx5VHJhbnNmb3JtKFtlWzJdLGVbMV1dLHQpO3JldHVybltNYXRoLm1pbihpWzBdLGFbMF0sclswXSxzWzBdKSxNYXRoLm1pbihpWzFdLGFbMV0sclsxXSxzWzFdKSxNYXRoLm1heChpWzBdLGFbMF0sclswXSxzWzBdKSxNYXRoLm1heChpWzFdLGFbMV0sclsxXSxzWzFdKV19c3RhdGljIGludmVyc2VUcmFuc2Zvcm0oZSl7Y29uc3QgdD1lWzBdKmVbM10tZVsxXSplWzJdO3JldHVybltlWzNdL3QsLWVbMV0vdCwtZVsyXS90LGVbMF0vdCwoZVsyXSplWzVdLWVbNF0qZVszXSkvdCwoZVs0XSplWzFdLWVbNV0qZVswXSkvdF19c3RhdGljIHNpbmd1bGFyVmFsdWVEZWNvbXBvc2UyZFNjYWxlKGUpe2NvbnN0IHQ9W2VbMF0sZVsyXSxlWzFdLGVbM11dLGk9ZVswXSp0WzBdK2VbMV0qdFsyXSxhPWVbMF0qdFsxXStlWzFdKnRbM10scj1lWzJdKnRbMF0rZVszXSp0WzJdLHM9ZVsyXSp0WzFdK2VbM10qdFszXSxuPShpK3MpLzIsbz1NYXRoLnNxcnQoKGkrcykqKjItNCooaSpzLXIqYSkpLzIsZz1uK298fDEsYz1uLW98fDE7cmV0dXJuW01hdGguc3FydChnKSxNYXRoLnNxcnQoYyldfXN0YXRpYyBub3JtYWxpemVSZWN0KGUpe2NvbnN0IHQ9ZS5zbGljZSgwKTtpZihlWzBdPmVbMl0pe3RbMF09ZVsyXTt0WzJdPWVbMF19aWYoZVsxXT5lWzNdKXt0WzFdPWVbM107dFszXT1lWzFdfXJldHVybiB0fXN0YXRpYyBpbnRlcnNlY3QoZSx0KXtjb25zdCBpPU1hdGgubWF4KE1hdGgubWluKGVbMF0sZVsyXSksTWF0aC5taW4odFswXSx0WzJdKSksYT1NYXRoLm1pbihNYXRoLm1heChlWzBdLGVbMl0pLE1hdGgubWF4KHRbMF0sdFsyXSkpO2lmKGk+YSlyZXR1cm4gbnVsbDtjb25zdCByPU1hdGgubWF4KE1hdGgubWluKGVbMV0sZVszXSksTWF0aC5taW4odFsxXSx0WzNdKSkscz1NYXRoLm1pbihNYXRoLm1heChlWzFdLGVbM10pLE1hdGgubWF4KHRbMV0sdFszXSkpO3JldHVybiByPnM/bnVsbDpbaSxyLGEsc119c3RhdGljI0EoZSx0LGksYSxyLHMsbixvLGcsYyl7aWYoZzw9MHx8Zz49MSlyZXR1cm47Y29uc3QgbD0xLWcsaD1nKmcsQz1oKmcsUT1sKihsKihsKmUrMypnKnQpKzMqaCppKStDKmEsRT1sKihsKihsKnIrMypnKnMpKzMqaCpuKStDKm87Y1swXT1NYXRoLm1pbihjWzBdLFEpO2NbMV09TWF0aC5taW4oY1sxXSxFKTtjWzJdPU1hdGgubWF4KGNbMl0sUSk7Y1szXT1NYXRoLm1heChjWzNdLEUpfXN0YXRpYyNlKGUsdCxpLGEscixzLG4sbyxnLGMsbCxoKXtpZihNYXRoLmFicyhnKTwxZS0xMil7TWF0aC5hYnMoYyk+PTFlLTEyJiZ0aGlzLiNBKGUsdCxpLGEscixzLG4sbywtbC9jLGgpO3JldHVybn1jb25zdCBDPWMqKjItNCpsKmc7aWYoQzwwKXJldHVybjtjb25zdCBRPU1hdGguc3FydChDKSxFPTIqZzt0aGlzLiNBKGUsdCxpLGEscixzLG4sbywoLWMrUSkvRSxoKTt0aGlzLiNBKGUsdCxpLGEscixzLG4sbywoLWMtUSkvRSxoKX1zdGF0aWMgYmV6aWVyQm91bmRpbmdCb3goZSx0LGksYSxyLHMsbixvLGcpe2lmKGcpe2dbMF09TWF0aC5taW4oZ1swXSxlLG4pO2dbMV09TWF0aC5taW4oZ1sxXSx0LG8pO2dbMl09TWF0aC5tYXgoZ1syXSxlLG4pO2dbM109TWF0aC5tYXgoZ1szXSx0LG8pfWVsc2UgZz1bTWF0aC5taW4oZSxuKSxNYXRoLm1pbih0LG8pLE1hdGgubWF4KGUsbiksTWF0aC5tYXgodCxvKV07dGhpcy4jZShlLGkscixuLHQsYSxzLG8sMyooMyooaS1yKS1lK24pLDYqKGUtMippK3IpLDMqKGktZSksZyk7dGhpcy4jZShlLGkscixuLHQsYSxzLG8sMyooMyooYS1zKS10K28pLDYqKHQtMiphK3MpLDMqKGEtdCksZyk7cmV0dXJuIGd9fWNvbnN0IGh0PVswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw3MjgsNzExLDcxMCw3MjksNzMzLDczMSw3MzAsNzMyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDgyMjYsODIyNCw4MjI1LDgyMzAsODIxMiw4MjExLDQwMiw4MjYwLDgyNDksODI1MCw4NzIyLDgyNDAsODIyMiw4MjIwLDgyMjEsODIxNiw4MjE3LDgyMTgsODQ4Miw2NDI1Nyw2NDI1OCwzMjEsMzM4LDM1MiwzNzYsMzgxLDMwNSwzMjIsMzM5LDM1MywzODIsMCw4MzY0XTtmdW5jdGlvbiBzdHJpbmdUb1BERlN0cmluZyhlKXtpZihlWzBdPj0iw68iKXtsZXQgdDtpZigiw74iPT09ZVswXSYmIsO/Ij09PWVbMV0pe3Q9InV0Zi0xNmJlIjtlLmxlbmd0aCUyPT0xJiYoZT1lLnNsaWNlKDAsLTEpKX1lbHNlIGlmKCLDvyI9PT1lWzBdJiYiw74iPT09ZVsxXSl7dD0idXRmLTE2bGUiO2UubGVuZ3RoJTI9PTEmJihlPWUuc2xpY2UoMCwtMSkpfWVsc2Uiw68iPT09ZVswXSYmIsK7Ij09PWVbMV0mJiLCvyI9PT1lWzJdJiYodD0idXRmLTgiKTtpZih0KXRyeXtjb25zdCBpPW5ldyBUZXh0RGVjb2Rlcih0LHtmYXRhbDohMH0pLGE9c3RyaW5nVG9CeXRlcyhlKSxyPWkuZGVjb2RlKGEpO3JldHVybiByLmluY2x1ZGVzKCIbIik/ci5yZXBsYWNlQWxsKC9ceDFiW15ceDFiXSooPzpceDFifCQpL2csIiIpOnJ9Y2F0Y2goZSl7d2Fybihgc3RyaW5nVG9QREZTdHJpbmc6ICIke2V9Ii5gKX19Y29uc3QgdD1bXTtmb3IobGV0IGk9MCxhPWUubGVuZ3RoO2k8YTtpKyspe2NvbnN0IHI9ZS5jaGFyQ29kZUF0KGkpO2lmKDI3PT09cil7Zm9yKDsrK2k8YSYmMjchPT1lLmNoYXJDb2RlQXQoaSk7KTtjb250aW51ZX1jb25zdCBzPWh0W3JdO3QucHVzaChzP1N0cmluZy5mcm9tQ2hhckNvZGUocyk6ZS5jaGFyQXQoaSkpfXJldHVybiB0LmpvaW4oIiIpfWZ1bmN0aW9uIHN0cmluZ1RvVVRGOFN0cmluZyhlKXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZShlKSl9ZnVuY3Rpb24gdXRmOFN0cmluZ1RvU3RyaW5nKGUpe3JldHVybiB1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoZSkpfWZ1bmN0aW9uIGlzQXJyYXlFcXVhbChlLHQpe2lmKGUubGVuZ3RoIT09dC5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBpPTAsYT1lLmxlbmd0aDtpPGE7aSsrKWlmKGVbaV0hPT10W2ldKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGdldE1vZGlmaWNhdGlvbkRhdGUoZT1uZXcgRGF0ZSl7cmV0dXJuW2UuZ2V0VVRDRnVsbFllYXIoKS50b1N0cmluZygpLChlLmdldFVUQ01vbnRoKCkrMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksZS5nZXRVVENEYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksZS5nZXRVVENIb3VycygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpLGUuZ2V0VVRDTWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpLGUuZ2V0VVRDU2Vjb25kcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpXS5qb2luKCIiKX1sZXQgQ3Q9bnVsbCxCdD1udWxsO2Z1bmN0aW9uIHRvSGV4VXRpbChlKXtyZXR1cm4gVWludDhBcnJheS5wcm90b3R5cGUudG9IZXg/ZS50b0hleCgpOkFycmF5LmZyb20oZSwoZT0+bHRbZV0pKS5qb2luKCIiKX1fX3dlYnBhY2tfcmVxdWlyZV9fKDMyMTUpO2NvbnN0IFF0PVN5bWJvbCgiQ0lSQ1VMQVJfUkVGIiksRXQ9U3ltYm9sKCJFT0YiKTtsZXQgdXQ9T2JqZWN0LmNyZWF0ZShudWxsKSxkdD1PYmplY3QuY3JlYXRlKG51bGwpLGZ0PU9iamVjdC5jcmVhdGUobnVsbCk7Y2xhc3MgTmFtZXtjb25zdHJ1Y3RvcihlKXt0aGlzLm5hbWU9ZX1zdGF0aWMgZ2V0KGUpe3JldHVybiBkdFtlXXx8PW5ldyBOYW1lKGUpfX1jbGFzcyBDbWR7Y29uc3RydWN0b3IoZSl7dGhpcy5jbWQ9ZX1zdGF0aWMgZ2V0KGUpe3JldHVybiB1dFtlXXx8PW5ldyBDbWQoZSl9fWNvbnN0IHB0PWZ1bmN0aW9uIG5vblNlcmlhbGl6YWJsZUNsb3N1cmUoKXtyZXR1cm4gcHR9O2NsYXNzIERpY3R7Y29uc3RydWN0b3IoZT1udWxsKXt0aGlzLl9tYXA9bmV3IE1hcDt0aGlzLnhyZWY9ZTt0aGlzLm9iaklkPW51bGw7dGhpcy5zdXBwcmVzc0VuY3J5cHRpb249ITE7dGhpcy5fX25vblNlcmlhbGl6YWJsZV9fPXB0fWFzc2lnblhyZWYoZSl7dGhpcy54cmVmPWV9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy5fbWFwLnNpemV9Z2V0KGUsdCxpKXtsZXQgYT10aGlzLl9tYXAuZ2V0KGUpO2lmKHZvaWQgMD09PWEmJnZvaWQgMCE9PXQpe2E9dGhpcy5fbWFwLmdldCh0KTt2b2lkIDA9PT1hJiZ2b2lkIDAhPT1pJiYoYT10aGlzLl9tYXAuZ2V0KGkpKX1yZXR1cm4gYSBpbnN0YW5jZW9mIFJlZiYmdGhpcy54cmVmP3RoaXMueHJlZi5mZXRjaChhLHRoaXMuc3VwcHJlc3NFbmNyeXB0aW9uKTphfWFzeW5jIGdldEFzeW5jKGUsdCxpKXtsZXQgYT10aGlzLl9tYXAuZ2V0KGUpO2lmKHZvaWQgMD09PWEmJnZvaWQgMCE9PXQpe2E9dGhpcy5fbWFwLmdldCh0KTt2b2lkIDA9PT1hJiZ2b2lkIDAhPT1pJiYoYT10aGlzLl9tYXAuZ2V0KGkpKX1yZXR1cm4gYSBpbnN0YW5jZW9mIFJlZiYmdGhpcy54cmVmP3RoaXMueHJlZi5mZXRjaEFzeW5jKGEsdGhpcy5zdXBwcmVzc0VuY3J5cHRpb24pOmF9Z2V0QXJyYXkoZSx0LGkpe2xldCBhPXRoaXMuX21hcC5nZXQoZSk7aWYodm9pZCAwPT09YSYmdm9pZCAwIT09dCl7YT10aGlzLl9tYXAuZ2V0KHQpO3ZvaWQgMD09PWEmJnZvaWQgMCE9PWkmJihhPXRoaXMuX21hcC5nZXQoaSkpfWEgaW5zdGFuY2VvZiBSZWYmJnRoaXMueHJlZiYmKGE9dGhpcy54cmVmLmZldGNoKGEsdGhpcy5zdXBwcmVzc0VuY3J5cHRpb24pKTtpZihBcnJheS5pc0FycmF5KGEpKXthPWEuc2xpY2UoKTtmb3IobGV0IGU9MCx0PWEubGVuZ3RoO2U8dDtlKyspYVtlXWluc3RhbmNlb2YgUmVmJiZ0aGlzLnhyZWYmJihhW2VdPXRoaXMueHJlZi5mZXRjaChhW2VdLHRoaXMuc3VwcHJlc3NFbmNyeXB0aW9uKSl9cmV0dXJuIGF9Z2V0UmF3KGUpe3JldHVybiB0aGlzLl9tYXAuZ2V0KGUpfWdldEtleXMoKXtyZXR1cm5bLi4udGhpcy5fbWFwLmtleXMoKV19Z2V0UmF3VmFsdWVzKCl7cmV0dXJuWy4uLnRoaXMuX21hcC52YWx1ZXMoKV19c2V0KGUsdCl7dGhpcy5fbWFwLnNldChlLHQpfWhhcyhlKXtyZXR1cm4gdGhpcy5fbWFwLmhhcyhlKX0qW1N5bWJvbC5pdGVyYXRvcl0oKXtmb3IoY29uc3RbZSx0XW9mIHRoaXMuX21hcCl5aWVsZFtlLHQgaW5zdGFuY2VvZiBSZWYmJnRoaXMueHJlZj90aGlzLnhyZWYuZmV0Y2godCx0aGlzLnN1cHByZXNzRW5jcnlwdGlvbik6dF19c3RhdGljIGdldCBlbXB0eSgpe2NvbnN0IGU9bmV3IERpY3QobnVsbCk7ZS5zZXQ9KGUsdCk9Pnt1bnJlYWNoYWJsZSgiU2hvdWxkIG5vdCBjYWxsIGBzZXRgIG9uIHRoZSBlbXB0eSBkaWN0aW9uYXJ5LiIpfTtyZXR1cm4gc2hhZG93KHRoaXMsImVtcHR5IixlKX1zdGF0aWMgbWVyZ2Uoe3hyZWY6ZSxkaWN0QXJyYXk6dCxtZXJnZVN1YkRpY3RzOmk9ITF9KXtjb25zdCBhPW5ldyBEaWN0KGUpLHI9bmV3IE1hcDtmb3IoY29uc3QgZSBvZiB0KWlmKGUgaW5zdGFuY2VvZiBEaWN0KWZvcihjb25zdFt0LGFdb2YgZS5fbWFwKXtsZXQgZT1yLmdldCh0KTtpZih2b2lkIDA9PT1lKXtlPVtdO3Iuc2V0KHQsZSl9ZWxzZSBpZighKGkmJmEgaW5zdGFuY2VvZiBEaWN0KSljb250aW51ZTtlLnB1c2goYSl9Zm9yKGNvbnN0W3QsaV1vZiByKXtpZigxPT09aS5sZW5ndGh8fCEoaVswXWluc3RhbmNlb2YgRGljdCkpe2EuX21hcC5zZXQodCxpWzBdKTtjb250aW51ZX1jb25zdCByPW5ldyBEaWN0KGUpO2Zvcihjb25zdCBlIG9mIGkpZm9yKGNvbnN0W3QsaV1vZiBlLl9tYXApci5fbWFwLmhhcyh0KXx8ci5fbWFwLnNldCh0LGkpO3Iuc2l6ZT4wJiZhLl9tYXAuc2V0KHQscil9ci5jbGVhcigpO3JldHVybiBhLnNpemU+MD9hOkRpY3QuZW1wdHl9Y2xvbmUoKXtjb25zdCBlPW5ldyBEaWN0KHRoaXMueHJlZik7Zm9yKGNvbnN0IHQgb2YgdGhpcy5nZXRLZXlzKCkpZS5zZXQodCx0aGlzLmdldFJhdyh0KSk7cmV0dXJuIGV9ZGVsZXRlKGUpe2RlbGV0ZSB0aGlzLl9tYXBbZV19fWNsYXNzIFJlZntjb25zdHJ1Y3RvcihlLHQpe3RoaXMubnVtPWU7dGhpcy5nZW49dH10b1N0cmluZygpe3JldHVybiAwPT09dGhpcy5nZW4/YCR7dGhpcy5udW19UmA6YCR7dGhpcy5udW19UiR7dGhpcy5nZW59YH1zdGF0aWMgZnJvbVN0cmluZyhlKXtjb25zdCB0PWZ0W2VdO2lmKHQpcmV0dXJuIHQ7Y29uc3QgaT0vXihcZCspUihcZCopJC8uZXhlYyhlKTtyZXR1cm4gaSYmIjAiIT09aVsxXT9mdFtlXT1uZXcgUmVmKHBhcnNlSW50KGlbMV0pLGlbMl0/cGFyc2VJbnQoaVsyXSk6MCk6bnVsbH1zdGF0aWMgZ2V0KGUsdCl7Y29uc3QgaT0wPT09dD9gJHtlfVJgOmAke2V9UiR7dH1gO3JldHVybiBmdFtpXXx8PW5ldyBSZWYoZSx0KX19Y2xhc3MgUmVmU2V0e2NvbnN0cnVjdG9yKGU9bnVsbCl7dGhpcy5fc2V0PW5ldyBTZXQoZT8uX3NldCl9aGFzKGUpe3JldHVybiB0aGlzLl9zZXQuaGFzKGUudG9TdHJpbmcoKSl9cHV0KGUpe3RoaXMuX3NldC5hZGQoZS50b1N0cmluZygpKX1yZW1vdmUoZSl7dGhpcy5fc2V0LmRlbGV0ZShlLnRvU3RyaW5nKCkpfVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIHRoaXMuX3NldC52YWx1ZXMoKX1jbGVhcigpe3RoaXMuX3NldC5jbGVhcigpfX1jbGFzcyBSZWZTZXRDYWNoZXtjb25zdHJ1Y3Rvcigpe3RoaXMuX21hcD1uZXcgTWFwfWdldCBzaXplKCl7cmV0dXJuIHRoaXMuX21hcC5zaXplfWdldChlKXtyZXR1cm4gdGhpcy5fbWFwLmdldChlLnRvU3RyaW5nKCkpfWhhcyhlKXtyZXR1cm4gdGhpcy5fbWFwLmhhcyhlLnRvU3RyaW5nKCkpfXB1dChlLHQpe3RoaXMuX21hcC5zZXQoZS50b1N0cmluZygpLHQpfXB1dEFsaWFzKGUsdCl7dGhpcy5fbWFwLnNldChlLnRvU3RyaW5nKCksdGhpcy5nZXQodCkpfVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIHRoaXMuX21hcC52YWx1ZXMoKX1jbGVhcigpe3RoaXMuX21hcC5jbGVhcigpfSp2YWx1ZXMoKXt5aWVsZCp0aGlzLl9tYXAudmFsdWVzKCl9Kml0ZW1zKCl7Zm9yKGNvbnN0W2UsdF1vZiB0aGlzLl9tYXApeWllbGRbUmVmLmZyb21TdHJpbmcoZSksdF19fWZ1bmN0aW9uIGlzTmFtZShlLHQpe3JldHVybiBlIGluc3RhbmNlb2YgTmFtZSYmKHZvaWQgMD09PXR8fGUubmFtZT09PXQpfWZ1bmN0aW9uIGlzQ21kKGUsdCl7cmV0dXJuIGUgaW5zdGFuY2VvZiBDbWQmJih2b2lkIDA9PT10fHxlLmNtZD09PXQpfWZ1bmN0aW9uIGlzRGljdChlLHQpe3JldHVybiBlIGluc3RhbmNlb2YgRGljdCYmKHZvaWQgMD09PXR8fGlzTmFtZShlLmdldCgiVHlwZSIpLHQpKX1mdW5jdGlvbiBpc1JlZnNFcXVhbChlLHQpe3JldHVybiBlLm51bT09PXQubnVtJiZlLmdlbj09PXQuZ2VufWNsYXNzIEJhc2VTdHJlYW17Z2V0IGxlbmd0aCgpe3VucmVhY2hhYmxlKCJBYnN0cmFjdCBnZXR0ZXIgYGxlbmd0aGAgYWNjZXNzZWQiKX1nZXQgaXNFbXB0eSgpe3VucmVhY2hhYmxlKCJBYnN0cmFjdCBnZXR0ZXIgYGlzRW1wdHlgIGFjY2Vzc2VkIil9Z2V0IGlzRGF0YUxvYWRlZCgpe3JldHVybiBzaGFkb3codGhpcywiaXNEYXRhTG9hZGVkIiwhMCl9Z2V0Qnl0ZSgpe3VucmVhY2hhYmxlKCJBYnN0cmFjdCBtZXRob2QgYGdldEJ5dGVgIGNhbGxlZCIpfWdldEJ5dGVzKGUpe3VucmVhY2hhYmxlKCJBYnN0cmFjdCBtZXRob2QgYGdldEJ5dGVzYCBjYWxsZWQiKX1hc3luYyBnZXRJbWFnZURhdGEoZSx0KXtyZXR1cm4gdGhpcy5nZXRCeXRlcyhlLHQpfWFzeW5jIGFzeW5jR2V0Qnl0ZXMoKXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgbWV0aG9kIGBhc3luY0dldEJ5dGVzYCBjYWxsZWQiKX1nZXQgaXNBc3luYygpe3JldHVybiExfWdldCBjYW5Bc3luY0RlY29kZUltYWdlRnJvbUJ1ZmZlcigpe3JldHVybiExfWFzeW5jIGdldFRyYW5zZmVyYWJsZUltYWdlKCl7cmV0dXJuIG51bGx9cGVla0J5dGUoKXtjb25zdCBlPXRoaXMuZ2V0Qnl0ZSgpOy0xIT09ZSYmdGhpcy5wb3MtLTtyZXR1cm4gZX1wZWVrQnl0ZXMoZSl7Y29uc3QgdD10aGlzLmdldEJ5dGVzKGUpO3RoaXMucG9zLT10Lmxlbmd0aDtyZXR1cm4gdH1nZXRVaW50MTYoKXtjb25zdCBlPXRoaXMuZ2V0Qnl0ZSgpLHQ9dGhpcy5nZXRCeXRlKCk7cmV0dXJuLTE9PT1lfHwtMT09PXQ/LTE6KGU8PDgpK3R9Z2V0SW50MzIoKXtyZXR1cm4odGhpcy5nZXRCeXRlKCk8PDI0KSsodGhpcy5nZXRCeXRlKCk8PDE2KSsodGhpcy5nZXRCeXRlKCk8PDgpK3RoaXMuZ2V0Qnl0ZSgpfWdldEJ5dGVSYW5nZShlLHQpe3VucmVhY2hhYmxlKCJBYnN0cmFjdCBtZXRob2QgYGdldEJ5dGVSYW5nZWAgY2FsbGVkIil9Z2V0U3RyaW5nKGUpe3JldHVybiBieXRlc1RvU3RyaW5nKHRoaXMuZ2V0Qnl0ZXMoZSkpfXNraXAoZSl7dGhpcy5wb3MrPWV8fDF9cmVzZXQoKXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgbWV0aG9kIGByZXNldGAgY2FsbGVkIil9bW92ZVN0YXJ0KCl7dW5yZWFjaGFibGUoIkFic3RyYWN0IG1ldGhvZCBgbW92ZVN0YXJ0YCBjYWxsZWQiKX1tYWtlU3ViU3RyZWFtKGUsdCxpPW51bGwpe3VucmVhY2hhYmxlKCJBYnN0cmFjdCBtZXRob2QgYG1ha2VTdWJTdHJlYW1gIGNhbGxlZCIpfWdldEJhc2VTdHJlYW1zKCl7cmV0dXJuIG51bGx9fWNvbnN0IG10PS9eWzEtOV1cLlxkJC8seXQ9MioqMzEtMTtmdW5jdGlvbiBnZXRMb29rdXBUYWJsZUZhY3RvcnkoZSl7bGV0IHQ7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoZSl7dD1PYmplY3QuY3JlYXRlKG51bGwpO2UodCk7ZT1udWxsfXJldHVybiB0fX1jbGFzcyBNaXNzaW5nRGF0YUV4Y2VwdGlvbiBleHRlbmRzIGN0e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoYE1pc3NpbmcgZGF0YSBbJHtlfSwgJHt0fSlgLCJNaXNzaW5nRGF0YUV4Y2VwdGlvbiIpO3RoaXMuYmVnaW49ZTt0aGlzLmVuZD10fX1jbGFzcyBQYXJzZXJFT0ZFeGNlcHRpb24gZXh0ZW5kcyBjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlLCJQYXJzZXJFT0ZFeGNlcHRpb24iKX19Y2xhc3MgWFJlZkVudHJ5RXhjZXB0aW9uIGV4dGVuZHMgY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwiWFJlZkVudHJ5RXhjZXB0aW9uIil9fWNsYXNzIFhSZWZQYXJzZUV4Y2VwdGlvbiBleHRlbmRzIGN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsIlhSZWZQYXJzZUV4Y2VwdGlvbiIpfX1mdW5jdGlvbiBhcnJheUJ1ZmZlcnNUb0J5dGVzKGUpe2NvbnN0IHQ9ZS5sZW5ndGg7aWYoMD09PXQpcmV0dXJuIG5ldyBVaW50OEFycmF5KDApO2lmKDE9PT10KXJldHVybiBuZXcgVWludDhBcnJheShlWzBdKTtsZXQgaT0wO2ZvcihsZXQgYT0wO2E8dDthKyspaSs9ZVthXS5ieXRlTGVuZ3RoO2NvbnN0IGE9bmV3IFVpbnQ4QXJyYXkoaSk7bGV0IHI9MDtmb3IobGV0IGk9MDtpPHQ7aSsrKXtjb25zdCB0PW5ldyBVaW50OEFycmF5KGVbaV0pO2Euc2V0KHQscik7cis9dC5ieXRlTGVuZ3RofXJldHVybiBhfWZ1bmN0aW9uIGdldEluaGVyaXRhYmxlUHJvcGVydHkoe2RpY3Q6ZSxrZXk6dCxnZXRBcnJheTppPSExLHN0b3BXaGVuRm91bmQ6YT0hMH0pe2xldCByO2NvbnN0IHM9bmV3IFJlZlNldDtmb3IoO2UgaW5zdGFuY2VvZiBEaWN0JiYoIWUub2JqSWR8fCFzLmhhcyhlLm9iaklkKSk7KXtlLm9iaklkJiZzLnB1dChlLm9iaklkKTtjb25zdCBuPWk/ZS5nZXRBcnJheSh0KTplLmdldCh0KTtpZih2b2lkIDAhPT1uKXtpZihhKXJldHVybiBuOyhyfHw9W10pLnB1c2gobil9ZT1lLmdldCgiUGFyZW50Iil9cmV0dXJuIHJ9Y29uc3Qgd3Q9WyIiLCJDIiwiQ0MiLCJDQ0MiLCJDRCIsIkQiLCJEQyIsIkRDQyIsIkRDQ0MiLCJDTSIsIiIsIlgiLCJYWCIsIlhYWCIsIlhMIiwiTCIsIkxYIiwiTFhYIiwiTFhYWCIsIlhDIiwiIiwiSSIsIklJIiwiSUlJIiwiSVYiLCJWIiwiVkkiLCJWSUkiLCJWSUlJIiwiSVgiXTtmdW5jdGlvbiB0b1JvbWFuTnVtZXJhbHMoZSx0PSExKXthc3NlcnQoTnVtYmVyLmlzSW50ZWdlcihlKSYmZT4wLCJUaGUgbnVtYmVyIHNob3VsZCBiZSBhIHBvc2l0aXZlIGludGVnZXIuIik7Y29uc3QgaT0iTSIucmVwZWF0KGUvMWUzfDApK3d0W2UlMWUzLzEwMHwwXSt3dFsxMCsoZSUxMDAvMTB8MCldK3d0WzIwK2UlMTBdO3JldHVybiB0P2kudG9Mb3dlckNhc2UoKTppfWZ1bmN0aW9uIGxvZzIoZSl7cmV0dXJuIGU+MD9NYXRoLmNlaWwoTWF0aC5sb2cyKGUpKTowfWZ1bmN0aW9uIHJlYWRJbnQ4KGUsdCl7cmV0dXJuIGVbdF08PDI0Pj4yNH1mdW5jdGlvbiByZWFkVWludDE2KGUsdCl7cmV0dXJuIGVbdF08PDh8ZVt0KzFdfWZ1bmN0aW9uIHJlYWRVaW50MzIoZSx0KXtyZXR1cm4oZVt0XTw8MjR8ZVt0KzFdPDwxNnxlW3QrMl08PDh8ZVt0KzNdKT4+PjB9ZnVuY3Rpb24gaXNXaGl0ZVNwYWNlKGUpe3JldHVybiAzMj09PWV8fDk9PT1lfHwxMz09PWV8fDEwPT09ZX1mdW5jdGlvbiBpc051bWJlckFycmF5KGUsdCl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/KG51bGw9PT10fHxlLmxlbmd0aD09PXQpJiZlLmV2ZXJ5KChlPT4ibnVtYmVyIj09dHlwZW9mIGUpKTpBcnJheUJ1ZmZlci5pc1ZpZXcoZSkmJigwPT09ZS5sZW5ndGh8fCJudW1iZXIiPT10eXBlb2YgZVswXSkmJihudWxsPT09dHx8ZS5sZW5ndGg9PT10KX1mdW5jdGlvbiBsb29rdXBNYXRyaXgoZSx0KXtyZXR1cm4gaXNOdW1iZXJBcnJheShlLDYpP2U6dH1mdW5jdGlvbiBsb29rdXBSZWN0KGUsdCl7cmV0dXJuIGlzTnVtYmVyQXJyYXkoZSw0KT9lOnR9ZnVuY3Rpb24gbG9va3VwTm9ybWFsUmVjdChlLHQpe3JldHVybiBpc051bWJlckFycmF5KGUsNCk/VXRpbC5ub3JtYWxpemVSZWN0KGUpOnR9ZnVuY3Rpb24gcGFyc2VYRkFQYXRoKGUpe2NvbnN0IHQ9LyguKylcWyhcZCspXF0kLztyZXR1cm4gZS5zcGxpdCgiLiIpLm1hcCgoZT0+e2NvbnN0IGk9ZS5tYXRjaCh0KTtyZXR1cm4gaT97bmFtZTppWzFdLHBvczpwYXJzZUludChpWzJdLDEwKX06e25hbWU6ZSxwb3M6MH19KSl9ZnVuY3Rpb24gZXNjYXBlUERGTmFtZShlKXtjb25zdCB0PVtdO2xldCBpPTA7Zm9yKGxldCBhPTAscj1lLmxlbmd0aDthPHI7YSsrKXtjb25zdCByPWUuY2hhckNvZGVBdChhKTtpZihyPDMzfHxyPjEyNnx8MzU9PT1yfHw0MD09PXJ8fDQxPT09cnx8NjA9PT1yfHw2Mj09PXJ8fDkxPT09cnx8OTM9PT1yfHwxMjM9PT1yfHwxMjU9PT1yfHw0Nz09PXJ8fDM3PT09cil7aTxhJiZ0LnB1c2goZS5zdWJzdHJpbmcoaSxhKSk7dC5wdXNoKGAjJHtyLnRvU3RyaW5nKDE2KX1gKTtpPWErMX19aWYoMD09PXQubGVuZ3RoKXJldHVybiBlO2k8ZS5sZW5ndGgmJnQucHVzaChlLnN1YnN0cmluZyhpLGUubGVuZ3RoKSk7cmV0dXJuIHQuam9pbigiIil9ZnVuY3Rpb24gZXNjYXBlU3RyaW5nKGUpe3JldHVybiBlLnJlcGxhY2VBbGwoLyhbKClcXFxuXHJdKS9nLChlPT4iXG4iPT09ZT8iXFxuIjoiXHIiPT09ZT8iXFxyIjpgXFwke2V9YCkpfWZ1bmN0aW9uIF9jb2xsZWN0SlMoZSx0LGksYSl7aWYoIWUpcmV0dXJuO2xldCByPW51bGw7aWYoZSBpbnN0YW5jZW9mIFJlZil7aWYoYS5oYXMoZSkpcmV0dXJuO3I9ZTthLnB1dChyKTtlPXQuZmV0Y2goZSl9aWYoQXJyYXkuaXNBcnJheShlKSlmb3IoY29uc3QgciBvZiBlKV9jb2xsZWN0SlMocix0LGksYSk7ZWxzZSBpZihlIGluc3RhbmNlb2YgRGljdCl7aWYoaXNOYW1lKGUuZ2V0KCJTIiksIkphdmFTY3JpcHQiKSl7Y29uc3QgdD1lLmdldCgiSlMiKTtsZXQgYTt0IGluc3RhbmNlb2YgQmFzZVN0cmVhbT9hPXQuZ2V0U3RyaW5nKCk6InN0cmluZyI9PXR5cGVvZiB0JiYoYT10KTthJiY9c3RyaW5nVG9QREZTdHJpbmcoYSkucmVwbGFjZUFsbCgiXDAiLCIiKTthJiZpLnB1c2goYSl9X2NvbGxlY3RKUyhlLmdldFJhdygiTmV4dCIpLHQsaSxhKX1yJiZhLnJlbW92ZShyKX1mdW5jdGlvbiBjb2xsZWN0QWN0aW9ucyhlLHQsaSl7Y29uc3QgYT1PYmplY3QuY3JlYXRlKG51bGwpLHI9Z2V0SW5oZXJpdGFibGVQcm9wZXJ0eSh7ZGljdDp0LGtleToiQUEiLHN0b3BXaGVuRm91bmQ6ITF9KTtpZihyKWZvcihsZXQgdD1yLmxlbmd0aC0xO3Q+PTA7dC0tKXtjb25zdCBzPXJbdF07aWYocyBpbnN0YW5jZW9mIERpY3QpZm9yKGNvbnN0IHQgb2Ygcy5nZXRLZXlzKCkpe2NvbnN0IHI9aVt0XTtpZighciljb250aW51ZTtjb25zdCBuPVtdO19jb2xsZWN0SlMocy5nZXRSYXcodCksZSxuLG5ldyBSZWZTZXQpO24ubGVuZ3RoPjAmJihhW3JdPW4pfX1pZih0LmhhcygiQSIpKXtjb25zdCBpPVtdO19jb2xsZWN0SlModC5nZXQoIkEiKSxlLGksbmV3IFJlZlNldCk7aS5sZW5ndGg+MCYmKGEuQWN0aW9uPWkpfXJldHVybiBvYmplY3RTaXplKGEpPjA/YTpudWxsfWNvbnN0IGJ0PXs2MDoiJmx0OyIsNjI6IiZndDsiLDM4OiImYW1wOyIsMzQ6IiZxdW90OyIsMzk6IiZhcG9zOyJ9O2Z1bmN0aW9uKmNvZGVQb2ludEl0ZXIoZSl7Zm9yKGxldCB0PTAsaT1lLmxlbmd0aDt0PGk7dCsrKXtjb25zdCBpPWUuY29kZVBvaW50QXQodCk7aT41NTI5NSYmKGk8NTczNDR8fGk+NjU1MzMpJiZ0Kys7eWllbGQgaX19ZnVuY3Rpb24gZW5jb2RlVG9YbWxTdHJpbmcoZSl7Y29uc3QgdD1bXTtsZXQgaT0wO2ZvcihsZXQgYT0wLHI9ZS5sZW5ndGg7YTxyO2ErKyl7Y29uc3Qgcj1lLmNvZGVQb2ludEF0KGEpO2lmKDMyPD1yJiZyPD0xMjYpe2NvbnN0IHM9YnRbcl07aWYocyl7aTxhJiZ0LnB1c2goZS5zdWJzdHJpbmcoaSxhKSk7dC5wdXNoKHMpO2k9YSsxfX1lbHNle2k8YSYmdC5wdXNoKGUuc3Vic3RyaW5nKGksYSkpO3QucHVzaChgJiN4JHtyLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfTtgKTtyPjU1Mjk1JiYocjw1NzM0NHx8cj42NTUzMykmJmErKztpPWErMX19aWYoMD09PXQubGVuZ3RoKXJldHVybiBlO2k8ZS5sZW5ndGgmJnQucHVzaChlLnN1YnN0cmluZyhpLGUubGVuZ3RoKSk7cmV0dXJuIHQuam9pbigiIil9ZnVuY3Rpb24gdmFsaWRhdGVGb250TmFtZShlLHQ9ITEpe2NvbnN0IGk9L14oInwnKS4qKCJ8JykkLy5leGVjKGUpO2lmKGkmJmlbMV09PT1pWzJdKXtpZihuZXcgUmVnRXhwKGBbXlxcXFxdJHtpWzFdfWApLnRlc3QoZS5zbGljZSgxLC0xKSkpe3QmJndhcm4oYEZvbnRGYW1pbHkgY29udGFpbnMgdW5lc2NhcGVkICR7aVsxXX06ICR7ZX0uYCk7cmV0dXJuITF9fWVsc2UgZm9yKGNvbnN0IGkgb2YgZS5zcGxpdCgvWyBcdF0rLykpaWYoL14oXGR8KC0oXGR8LSkpKS8udGVzdChpKXx8IS9eW1x3LVxcXSskLy50ZXN0KGkpKXt0JiZ3YXJuKGBGb250RmFtaWx5IGNvbnRhaW5zIGludmFsaWQgPGN1c3RvbS1pZGVudD46ICR7ZX0uYCk7cmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gdmFsaWRhdGVDU1NGb250KGUpe2NvbnN0IHQ9bmV3IFNldChbIjEwMCIsIjIwMCIsIjMwMCIsIjQwMCIsIjUwMCIsIjYwMCIsIjcwMCIsIjgwMCIsIjkwMCIsIjEwMDAiLCJub3JtYWwiLCJib2xkIiwiYm9sZGVyIiwibGlnaHRlciJdKSx7Zm9udEZhbWlseTppLGZvbnRXZWlnaHQ6YSxpdGFsaWNBbmdsZTpyfT1lO2lmKCF2YWxpZGF0ZUZvbnROYW1lKGksITApKXJldHVybiExO2NvbnN0IHM9YT9hLnRvU3RyaW5nKCk6IiI7ZS5mb250V2VpZ2h0PXQuaGFzKHMpP3M6IjQwMCI7Y29uc3Qgbj1wYXJzZUZsb2F0KHIpO2UuaXRhbGljQW5nbGU9aXNOYU4obil8fG48LTkwfHxuPjkwPyIxNCI6ci50b1N0cmluZygpO3JldHVybiEwfWZ1bmN0aW9uIHJlY292ZXJKc1VSTChlKXtjb25zdCB0PW5ldyBSZWdFeHAoIl5cXHMqKCIrWyJhcHAubGF1bmNoVVJMIiwid2luZG93Lm9wZW4iLCJ4ZmEuaG9zdC5nb3RvVVJMIl0uam9pbigifCIpLnJlcGxhY2VBbGwoIi4iLCJcXC4iKSsiKVxcKCg/Oid8XCIpKFteJ1wiXSopKD86J3xcIikoPzosXFxzKihcXHcrKVxcKXxcXCkpIiwiaSIpLmV4ZWMoZSk7cmV0dXJuIHQ/LlsyXT97dXJsOnRbMl0sbmV3V2luZG93OiJhcHAubGF1bmNoVVJMIj09PXRbMV0mJiJ0cnVlIj09PXRbM119Om51bGx9ZnVuY3Rpb24gbnVtYmVyVG9TdHJpbmcoZSl7aWYoTnVtYmVyLmlzSW50ZWdlcihlKSlyZXR1cm4gZS50b1N0cmluZygpO2NvbnN0IHQ9TWF0aC5yb3VuZCgxMDAqZSk7cmV0dXJuIHQlMTAwPT0wPyh0LzEwMCkudG9TdHJpbmcoKTp0JTEwPT0wP2UudG9GaXhlZCgxKTplLnRvRml4ZWQoMil9ZnVuY3Rpb24gZ2V0TmV3QW5ub3RhdGlvbnNNYXAoZSl7aWYoIWUpcmV0dXJuIG51bGw7Y29uc3QgdD1uZXcgTWFwO2Zvcihjb25zdFtpLGFdb2YgZSl7aWYoIWkuc3RhcnRzV2l0aChkKSljb250aW51ZTtsZXQgZT10LmdldChhLnBhZ2VJbmRleCk7aWYoIWUpe2U9W107dC5zZXQoYS5wYWdlSW5kZXgsZSl9ZS5wdXNoKGEpfXJldHVybiB0LnNpemU+MD90Om51bGx9ZnVuY3Rpb24gc3RyaW5nVG9Bc2NpaU9yVVRGMTZCRShlKXtyZXR1cm4gZnVuY3Rpb24gaXNBc2NpaShlKXtyZXR1cm4vXltceDAwLVx4N0ZdKiQvLnRlc3QoZSl9KGUpP2U6c3RyaW5nVG9VVEYxNlN0cmluZyhlLCEwKX1mdW5jdGlvbiBzdHJpbmdUb1VURjE2SGV4U3RyaW5nKGUpe2NvbnN0IHQ9W107Zm9yKGxldCBpPTAsYT1lLmxlbmd0aDtpPGE7aSsrKXtjb25zdCBhPWUuY2hhckNvZGVBdChpKTt0LnB1c2gobHRbYT4+OCYyNTVdLGx0WzI1NSZhXSl9cmV0dXJuIHQuam9pbigiIil9ZnVuY3Rpb24gc3RyaW5nVG9VVEYxNlN0cmluZyhlLHQ9ITEpe2NvbnN0IGk9W107dCYmaS5wdXNoKCLDvsO/Iik7Zm9yKGxldCB0PTAsYT1lLmxlbmd0aDt0PGE7dCsrKXtjb25zdCBhPWUuY2hhckNvZGVBdCh0KTtpLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShhPj44JjI1NSksU3RyaW5nLmZyb21DaGFyQ29kZSgyNTUmYSkpfXJldHVybiBpLmpvaW4oIiIpfWZ1bmN0aW9uIGdldFJvdGF0aW9uTWF0cml4KGUsdCxpKXtzd2l0Y2goZSl7Y2FzZSA5MDpyZXR1cm5bMCwxLC0xLDAsdCwwXTtjYXNlIDE4MDpyZXR1cm5bLTEsMCwwLC0xLHQsaV07Y2FzZSAyNzA6cmV0dXJuWzAsLTEsMSwwLDAsaV07ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgcm90YXRpb24iKX19ZnVuY3Rpb24gZ2V0U2l6ZUluQnl0ZXMoZSl7cmV0dXJuIE1hdGguY2VpbChNYXRoLmNlaWwoTWF0aC5sb2cyKDErZSkpLzgpfWNsYXNzIFN0cmVhbSBleHRlbmRzIEJhc2VTdHJlYW17Y29uc3RydWN0b3IoZSx0LGksYSl7c3VwZXIoKTt0aGlzLmJ5dGVzPWUgaW5zdGFuY2VvZiBVaW50OEFycmF5P2U6bmV3IFVpbnQ4QXJyYXkoZSk7dGhpcy5zdGFydD10fHwwO3RoaXMucG9zPXRoaXMuc3RhcnQ7dGhpcy5lbmQ9dCtpfHx0aGlzLmJ5dGVzLmxlbmd0aDt0aGlzLmRpY3Q9YX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuZW5kLXRoaXMuc3RhcnR9Z2V0IGlzRW1wdHkoKXtyZXR1cm4gMD09PXRoaXMubGVuZ3RofWdldEJ5dGUoKXtyZXR1cm4gdGhpcy5wb3M+PXRoaXMuZW5kPy0xOnRoaXMuYnl0ZXNbdGhpcy5wb3MrK119Z2V0Qnl0ZXMoZSl7Y29uc3QgdD10aGlzLmJ5dGVzLGk9dGhpcy5wb3MsYT10aGlzLmVuZDtpZighZSlyZXR1cm4gdC5zdWJhcnJheShpLGEpO2xldCByPWkrZTtyPmEmJihyPWEpO3RoaXMucG9zPXI7cmV0dXJuIHQuc3ViYXJyYXkoaSxyKX1nZXRCeXRlUmFuZ2UoZSx0KXtlPDAmJihlPTApO3Q+dGhpcy5lbmQmJih0PXRoaXMuZW5kKTtyZXR1cm4gdGhpcy5ieXRlcy5zdWJhcnJheShlLHQpfXJlc2V0KCl7dGhpcy5wb3M9dGhpcy5zdGFydH1tb3ZlU3RhcnQoKXt0aGlzLnN0YXJ0PXRoaXMucG9zfW1ha2VTdWJTdHJlYW0oZSx0LGk9bnVsbCl7cmV0dXJuIG5ldyBTdHJlYW0odGhpcy5ieXRlcy5idWZmZXIsZSx0LGkpfX1jbGFzcyBTdHJpbmdTdHJlYW0gZXh0ZW5kcyBTdHJlYW17Y29uc3RydWN0b3IoZSl7c3VwZXIoc3RyaW5nVG9CeXRlcyhlKSl9fWNsYXNzIE51bGxTdHJlYW0gZXh0ZW5kcyBTdHJlYW17Y29uc3RydWN0b3IoKXtzdXBlcihuZXcgVWludDhBcnJheSgwKSl9fWNsYXNzIENodW5rZWRTdHJlYW0gZXh0ZW5kcyBTdHJlYW17Y29uc3RydWN0b3IoZSx0LGkpe3N1cGVyKG5ldyBVaW50OEFycmF5KGUpLDAsZSxudWxsKTt0aGlzLmNodW5rU2l6ZT10O3RoaXMuX2xvYWRlZENodW5rcz1uZXcgU2V0O3RoaXMubnVtQ2h1bmtzPU1hdGguY2VpbChlL3QpO3RoaXMubWFuYWdlcj1pO3RoaXMucHJvZ3Jlc3NpdmVEYXRhTGVuZ3RoPTA7dGhpcy5sYXN0U3VjY2Vzc2Z1bEVuc3VyZUJ5dGVDaHVuaz0tMX1nZXRNaXNzaW5nQ2h1bmtzKCl7Y29uc3QgZT1bXTtmb3IobGV0IHQ9MCxpPXRoaXMubnVtQ2h1bmtzO3Q8aTsrK3QpdGhpcy5fbG9hZGVkQ2h1bmtzLmhhcyh0KXx8ZS5wdXNoKHQpO3JldHVybiBlfWdldCBudW1DaHVua3NMb2FkZWQoKXtyZXR1cm4gdGhpcy5fbG9hZGVkQ2h1bmtzLnNpemV9Z2V0IGlzRGF0YUxvYWRlZCgpe3JldHVybiB0aGlzLm51bUNodW5rc0xvYWRlZD09PXRoaXMubnVtQ2h1bmtzfW9uUmVjZWl2ZURhdGEoZSx0KXtjb25zdCBpPXRoaXMuY2h1bmtTaXplO2lmKGUlaSE9MCl0aHJvdyBuZXcgRXJyb3IoYEJhZCBiZWdpbiBvZmZzZXQ6ICR7ZX1gKTtjb25zdCBhPWUrdC5ieXRlTGVuZ3RoO2lmKGElaSE9MCYmYSE9PXRoaXMuYnl0ZXMubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgQmFkIGVuZCBvZmZzZXQ6ICR7YX1gKTt0aGlzLmJ5dGVzLnNldChuZXcgVWludDhBcnJheSh0KSxlKTtjb25zdCByPU1hdGguZmxvb3IoZS9pKSxzPU1hdGguZmxvb3IoKGEtMSkvaSkrMTtmb3IobGV0IGU9cjtlPHM7KytlKXRoaXMuX2xvYWRlZENodW5rcy5hZGQoZSl9b25SZWNlaXZlUHJvZ3Jlc3NpdmVEYXRhKGUpe2xldCB0PXRoaXMucHJvZ3Jlc3NpdmVEYXRhTGVuZ3RoO2NvbnN0IGk9TWF0aC5mbG9vcih0L3RoaXMuY2h1bmtTaXplKTt0aGlzLmJ5dGVzLnNldChuZXcgVWludDhBcnJheShlKSx0KTt0Kz1lLmJ5dGVMZW5ndGg7dGhpcy5wcm9ncmVzc2l2ZURhdGFMZW5ndGg9dDtjb25zdCBhPXQ+PXRoaXMuZW5kP3RoaXMubnVtQ2h1bmtzOk1hdGguZmxvb3IodC90aGlzLmNodW5rU2l6ZSk7Zm9yKGxldCBlPWk7ZTxhOysrZSl0aGlzLl9sb2FkZWRDaHVua3MuYWRkKGUpfWVuc3VyZUJ5dGUoZSl7aWYoZTx0aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aClyZXR1cm47Y29uc3QgdD1NYXRoLmZsb29yKGUvdGhpcy5jaHVua1NpemUpO2lmKCEodD50aGlzLm51bUNodW5rcykmJnQhPT10aGlzLmxhc3RTdWNjZXNzZnVsRW5zdXJlQnl0ZUNodW5rKXtpZighdGhpcy5fbG9hZGVkQ2h1bmtzLmhhcyh0KSl0aHJvdyBuZXcgTWlzc2luZ0RhdGFFeGNlcHRpb24oZSxlKzEpO3RoaXMubGFzdFN1Y2Nlc3NmdWxFbnN1cmVCeXRlQ2h1bms9dH19ZW5zdXJlUmFuZ2UoZSx0KXtpZihlPj10KXJldHVybjtpZih0PD10aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aClyZXR1cm47Y29uc3QgaT1NYXRoLmZsb29yKGUvdGhpcy5jaHVua1NpemUpO2lmKGk+dGhpcy5udW1DaHVua3MpcmV0dXJuO2NvbnN0IGE9TWF0aC5taW4oTWF0aC5mbG9vcigodC0xKS90aGlzLmNodW5rU2l6ZSkrMSx0aGlzLm51bUNodW5rcyk7Zm9yKGxldCByPWk7cjxhOysrcilpZighdGhpcy5fbG9hZGVkQ2h1bmtzLmhhcyhyKSl0aHJvdyBuZXcgTWlzc2luZ0RhdGFFeGNlcHRpb24oZSx0KX1uZXh0RW1wdHlDaHVuayhlKXtjb25zdCB0PXRoaXMubnVtQ2h1bmtzO2ZvcihsZXQgaT0wO2k8dDsrK2kpe2NvbnN0IGE9KGUraSkldDtpZighdGhpcy5fbG9hZGVkQ2h1bmtzLmhhcyhhKSlyZXR1cm4gYX1yZXR1cm4gbnVsbH1oYXNDaHVuayhlKXtyZXR1cm4gdGhpcy5fbG9hZGVkQ2h1bmtzLmhhcyhlKX1nZXRCeXRlKCl7Y29uc3QgZT10aGlzLnBvcztpZihlPj10aGlzLmVuZClyZXR1cm4tMTtlPj10aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aCYmdGhpcy5lbnN1cmVCeXRlKGUpO3JldHVybiB0aGlzLmJ5dGVzW3RoaXMucG9zKytdfWdldEJ5dGVzKGUpe2NvbnN0IHQ9dGhpcy5ieXRlcyxpPXRoaXMucG9zLGE9dGhpcy5lbmQ7aWYoIWUpe2E+dGhpcy5wcm9ncmVzc2l2ZURhdGFMZW5ndGgmJnRoaXMuZW5zdXJlUmFuZ2UoaSxhKTtyZXR1cm4gdC5zdWJhcnJheShpLGEpfWxldCByPWkrZTtyPmEmJihyPWEpO3I+dGhpcy5wcm9ncmVzc2l2ZURhdGFMZW5ndGgmJnRoaXMuZW5zdXJlUmFuZ2UoaSxyKTt0aGlzLnBvcz1yO3JldHVybiB0LnN1YmFycmF5KGkscil9Z2V0Qnl0ZVJhbmdlKGUsdCl7ZTwwJiYoZT0wKTt0PnRoaXMuZW5kJiYodD10aGlzLmVuZCk7dD50aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aCYmdGhpcy5lbnN1cmVSYW5nZShlLHQpO3JldHVybiB0aGlzLmJ5dGVzLnN1YmFycmF5KGUsdCl9bWFrZVN1YlN0cmVhbShlLHQsaT1udWxsKXt0P2UrdD50aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aCYmdGhpcy5lbnN1cmVSYW5nZShlLGUrdCk6ZT49dGhpcy5wcm9ncmVzc2l2ZURhdGFMZW5ndGgmJnRoaXMuZW5zdXJlQnl0ZShlKTtmdW5jdGlvbiBDaHVua2VkU3RyZWFtU3Vic3RyZWFtKCl7fUNodW5rZWRTdHJlYW1TdWJzdHJlYW0ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodGhpcyk7Q2h1bmtlZFN0cmVhbVN1YnN0cmVhbS5wcm90b3R5cGUuZ2V0TWlzc2luZ0NodW5rcz1mdW5jdGlvbigpe2NvbnN0IGU9dGhpcy5jaHVua1NpemUsdD1NYXRoLmZsb29yKHRoaXMuc3RhcnQvZSksaT1NYXRoLmZsb29yKCh0aGlzLmVuZC0xKS9lKSsxLGE9W107Zm9yKGxldCBlPXQ7ZTxpOysrZSl0aGlzLl9sb2FkZWRDaHVua3MuaGFzKGUpfHxhLnB1c2goZSk7cmV0dXJuIGF9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShDaHVua2VkU3RyZWFtU3Vic3RyZWFtLnByb3RvdHlwZSwiaXNEYXRhTG9hZGVkIix7Z2V0KCl7cmV0dXJuIHRoaXMubnVtQ2h1bmtzTG9hZGVkPT09dGhpcy5udW1DaHVua3N8fDA9PT10aGlzLmdldE1pc3NpbmdDaHVua3MoKS5sZW5ndGh9LGNvbmZpZ3VyYWJsZTohMH0pO2NvbnN0IGE9bmV3IENodW5rZWRTdHJlYW1TdWJzdHJlYW07YS5wb3M9YS5zdGFydD1lO2EuZW5kPWUrdHx8dGhpcy5lbmQ7YS5kaWN0PWk7cmV0dXJuIGF9Z2V0QmFzZVN0cmVhbXMoKXtyZXR1cm5bdGhpc119fWNsYXNzIENodW5rZWRTdHJlYW1NYW5hZ2Vye2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5sZW5ndGg9dC5sZW5ndGg7dGhpcy5jaHVua1NpemU9dC5yYW5nZUNodW5rU2l6ZTt0aGlzLnN0cmVhbT1uZXcgQ2h1bmtlZFN0cmVhbSh0aGlzLmxlbmd0aCx0aGlzLmNodW5rU2l6ZSx0aGlzKTt0aGlzLnBkZk5ldHdvcmtTdHJlYW09ZTt0aGlzLmRpc2FibGVBdXRvRmV0Y2g9dC5kaXNhYmxlQXV0b0ZldGNoO3RoaXMubXNnSGFuZGxlcj10Lm1zZ0hhbmRsZXI7dGhpcy5jdXJyUmVxdWVzdElkPTA7dGhpcy5fY2h1bmtzTmVlZGVkQnlSZXF1ZXN0PW5ldyBNYXA7dGhpcy5fcmVxdWVzdHNCeUNodW5rPW5ldyBNYXA7dGhpcy5fcHJvbWlzZXNCeVJlcXVlc3Q9bmV3IE1hcDt0aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aD0wO3RoaXMuYWJvcnRlZD0hMTt0aGlzLl9sb2FkZWRTdHJlYW1DYXBhYmlsaXR5PVByb21pc2Uud2l0aFJlc29sdmVycygpfXNlbmRSZXF1ZXN0KGUsdCl7Y29uc3QgaT10aGlzLnBkZk5ldHdvcmtTdHJlYW0uZ2V0UmFuZ2VSZWFkZXIoZSx0KTtpLmlzU3RyZWFtaW5nU3VwcG9ydGVkfHwoaS5vblByb2dyZXNzPXRoaXMub25Qcm9ncmVzcy5iaW5kKHRoaXMpKTtsZXQgYT1bXSxyPTA7cmV0dXJuIG5ldyBQcm9taXNlKCgoZSx0KT0+e2NvbnN0IHJlYWRDaHVuaz0oe3ZhbHVlOnMsZG9uZTpufSk9Pnt0cnl7aWYobil7Y29uc3QgdD1hcnJheUJ1ZmZlcnNUb0J5dGVzKGEpO2E9bnVsbDtlKHQpO3JldHVybn1yKz1zLmJ5dGVMZW5ndGg7aS5pc1N0cmVhbWluZ1N1cHBvcnRlZCYmdGhpcy5vblByb2dyZXNzKHtsb2FkZWQ6cn0pO2EucHVzaChzKTtpLnJlYWQoKS50aGVuKHJlYWRDaHVuayx0KX1jYXRjaChlKXt0KGUpfX07aS5yZWFkKCkudGhlbihyZWFkQ2h1bmssdCl9KSkudGhlbigodD0+e3RoaXMuYWJvcnRlZHx8dGhpcy5vblJlY2VpdmVEYXRhKHtjaHVuazp0LGJlZ2luOmV9KX0pKX1yZXF1ZXN0QWxsQ2h1bmtzKGU9ITEpe2lmKCFlKXtjb25zdCBlPXRoaXMuc3RyZWFtLmdldE1pc3NpbmdDaHVua3MoKTt0aGlzLl9yZXF1ZXN0Q2h1bmtzKGUpfXJldHVybiB0aGlzLl9sb2FkZWRTdHJlYW1DYXBhYmlsaXR5LnByb21pc2V9X3JlcXVlc3RDaHVua3MoZSl7Y29uc3QgdD10aGlzLmN1cnJSZXF1ZXN0SWQrKyxpPW5ldyBTZXQ7dGhpcy5fY2h1bmtzTmVlZGVkQnlSZXF1ZXN0LnNldCh0LGkpO2Zvcihjb25zdCB0IG9mIGUpdGhpcy5zdHJlYW0uaGFzQ2h1bmsodCl8fGkuYWRkKHQpO2lmKDA9PT1pLnNpemUpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO2NvbnN0IGE9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7dGhpcy5fcHJvbWlzZXNCeVJlcXVlc3Quc2V0KHQsYSk7Y29uc3Qgcj1bXTtmb3IoY29uc3QgZSBvZiBpKXtsZXQgaT10aGlzLl9yZXF1ZXN0c0J5Q2h1bmsuZ2V0KGUpO2lmKCFpKXtpPVtdO3RoaXMuX3JlcXVlc3RzQnlDaHVuay5zZXQoZSxpKTtyLnB1c2goZSl9aS5wdXNoKHQpfWlmKHIubGVuZ3RoPjApe2NvbnN0IGU9dGhpcy5ncm91cENodW5rcyhyKTtmb3IoY29uc3QgdCBvZiBlKXtjb25zdCBlPXQuYmVnaW5DaHVuayp0aGlzLmNodW5rU2l6ZSxpPU1hdGgubWluKHQuZW5kQ2h1bmsqdGhpcy5jaHVua1NpemUsdGhpcy5sZW5ndGgpO3RoaXMuc2VuZFJlcXVlc3QoZSxpKS5jYXRjaChhLnJlamVjdCl9fXJldHVybiBhLnByb21pc2UuY2F0Y2goKGU9PntpZighdGhpcy5hYm9ydGVkKXRocm93IGV9KSl9Z2V0U3RyZWFtKCl7cmV0dXJuIHRoaXMuc3RyZWFtfXJlcXVlc3RSYW5nZShlLHQpe3Q9TWF0aC5taW4odCx0aGlzLmxlbmd0aCk7Y29uc3QgaT10aGlzLmdldEJlZ2luQ2h1bmsoZSksYT10aGlzLmdldEVuZENodW5rKHQpLHI9W107Zm9yKGxldCBlPWk7ZTxhOysrZSlyLnB1c2goZSk7cmV0dXJuIHRoaXMuX3JlcXVlc3RDaHVua3Mocil9cmVxdWVzdFJhbmdlcyhlPVtdKXtjb25zdCB0PVtdO2Zvcihjb25zdCBpIG9mIGUpe2NvbnN0IGU9dGhpcy5nZXRCZWdpbkNodW5rKGkuYmVnaW4pLGE9dGhpcy5nZXRFbmRDaHVuayhpLmVuZCk7Zm9yKGxldCBpPWU7aTxhOysraSl0LmluY2x1ZGVzKGkpfHx0LnB1c2goaSl9dC5zb3J0KChmdW5jdGlvbihlLHQpe3JldHVybiBlLXR9KSk7cmV0dXJuIHRoaXMuX3JlcXVlc3RDaHVua3ModCl9Z3JvdXBDaHVua3MoZSl7Y29uc3QgdD1bXTtsZXQgaT0tMSxhPS0xO2ZvcihsZXQgcj0wLHM9ZS5sZW5ndGg7cjxzOysrcil7Y29uc3Qgcz1lW3JdO2k8MCYmKGk9cyk7aWYoYT49MCYmYSsxIT09cyl7dC5wdXNoKHtiZWdpbkNodW5rOmksZW5kQ2h1bms6YSsxfSk7aT1zfXIrMT09PWUubGVuZ3RoJiZ0LnB1c2goe2JlZ2luQ2h1bms6aSxlbmRDaHVuazpzKzF9KTthPXN9cmV0dXJuIHR9b25Qcm9ncmVzcyhlKXt0aGlzLm1zZ0hhbmRsZXIuc2VuZCgiRG9jUHJvZ3Jlc3MiLHtsb2FkZWQ6dGhpcy5zdHJlYW0ubnVtQ2h1bmtzTG9hZGVkKnRoaXMuY2h1bmtTaXplK2UubG9hZGVkLHRvdGFsOnRoaXMubGVuZ3RofSl9b25SZWNlaXZlRGF0YShlKXtjb25zdCB0PWUuY2h1bmssaT12b2lkIDA9PT1lLmJlZ2luLGE9aT90aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aDplLmJlZ2luLHI9YSt0LmJ5dGVMZW5ndGgscz1NYXRoLmZsb29yKGEvdGhpcy5jaHVua1NpemUpLG49cjx0aGlzLmxlbmd0aD9NYXRoLmZsb29yKHIvdGhpcy5jaHVua1NpemUpOk1hdGguY2VpbChyL3RoaXMuY2h1bmtTaXplKTtpZihpKXt0aGlzLnN0cmVhbS5vblJlY2VpdmVQcm9ncmVzc2l2ZURhdGEodCk7dGhpcy5wcm9ncmVzc2l2ZURhdGFMZW5ndGg9cn1lbHNlIHRoaXMuc3RyZWFtLm9uUmVjZWl2ZURhdGEoYSx0KTt0aGlzLnN0cmVhbS5pc0RhdGFMb2FkZWQmJnRoaXMuX2xvYWRlZFN0cmVhbUNhcGFiaWxpdHkucmVzb2x2ZSh0aGlzLnN0cmVhbSk7Y29uc3Qgbz1bXTtmb3IobGV0IGU9cztlPG47KytlKXtjb25zdCB0PXRoaXMuX3JlcXVlc3RzQnlDaHVuay5nZXQoZSk7aWYodCl7dGhpcy5fcmVxdWVzdHNCeUNodW5rLmRlbGV0ZShlKTtmb3IoY29uc3QgaSBvZiB0KXtjb25zdCB0PXRoaXMuX2NodW5rc05lZWRlZEJ5UmVxdWVzdC5nZXQoaSk7dC5oYXMoZSkmJnQuZGVsZXRlKGUpO3Quc2l6ZT4wfHxvLnB1c2goaSl9fX1pZighdGhpcy5kaXNhYmxlQXV0b0ZldGNoJiYwPT09dGhpcy5fcmVxdWVzdHNCeUNodW5rLnNpemUpe2xldCBlO2lmKDE9PT10aGlzLnN0cmVhbS5udW1DaHVua3NMb2FkZWQpe2NvbnN0IHQ9dGhpcy5zdHJlYW0ubnVtQ2h1bmtzLTE7dGhpcy5zdHJlYW0uaGFzQ2h1bmsodCl8fChlPXQpfWVsc2UgZT10aGlzLnN0cmVhbS5uZXh0RW1wdHlDaHVuayhuKTtOdW1iZXIuaXNJbnRlZ2VyKGUpJiZ0aGlzLl9yZXF1ZXN0Q2h1bmtzKFtlXSl9Zm9yKGNvbnN0IGUgb2Ygbyl7Y29uc3QgdD10aGlzLl9wcm9taXNlc0J5UmVxdWVzdC5nZXQoZSk7dGhpcy5fcHJvbWlzZXNCeVJlcXVlc3QuZGVsZXRlKGUpO3QucmVzb2x2ZSgpfXRoaXMubXNnSGFuZGxlci5zZW5kKCJEb2NQcm9ncmVzcyIse2xvYWRlZDp0aGlzLnN0cmVhbS5udW1DaHVua3NMb2FkZWQqdGhpcy5jaHVua1NpemUsdG90YWw6dGhpcy5sZW5ndGh9KX1vbkVycm9yKGUpe3RoaXMuX2xvYWRlZFN0cmVhbUNhcGFiaWxpdHkucmVqZWN0KGUpfWdldEJlZ2luQ2h1bmsoZSl7cmV0dXJuIE1hdGguZmxvb3IoZS90aGlzLmNodW5rU2l6ZSl9Z2V0RW5kQ2h1bmsoZSl7cmV0dXJuIE1hdGguZmxvb3IoKGUtMSkvdGhpcy5jaHVua1NpemUpKzF9YWJvcnQoZSl7dGhpcy5hYm9ydGVkPSEwO3RoaXMucGRmTmV0d29ya1N0cmVhbT8uY2FuY2VsQWxsUmVxdWVzdHMoZSk7Zm9yKGNvbnN0IHQgb2YgdGhpcy5fcHJvbWlzZXNCeVJlcXVlc3QudmFsdWVzKCkpdC5yZWplY3QoZSl9fV9fd2VicGFja19yZXF1aXJlX18oNDUyMCksX193ZWJwYWNrX3JlcXVpcmVfXyg5NDc5KSxfX3dlYnBhY2tfcmVxdWlyZV9fKDI1NzcpLF9fd2VicGFja19yZXF1aXJlX18oODg3Mik7Y2xhc3MgQ29sb3JTcGFjZXtjb25zdHJ1Y3RvcihlLHQpe3RoaXMubmFtZT1lO3RoaXMubnVtQ29tcHM9dH1nZXRSZ2IoZSx0KXtjb25zdCBpPW5ldyBVaW50OENsYW1wZWRBcnJheSgzKTt0aGlzLmdldFJnYkl0ZW0oZSx0LGksMCk7cmV0dXJuIGl9Z2V0UmdiSXRlbShlLHQsaSxhKXt1bnJlYWNoYWJsZSgiU2hvdWxkIG5vdCBjYWxsIENvbG9yU3BhY2UuZ2V0UmdiSXRlbSIpfWdldFJnYkJ1ZmZlcihlLHQsaSxhLHIscyxuKXt1bnJlYWNoYWJsZSgiU2hvdWxkIG5vdCBjYWxsIENvbG9yU3BhY2UuZ2V0UmdiQnVmZmVyIil9Z2V0T3V0cHV0TGVuZ3RoKGUsdCl7dW5yZWFjaGFibGUoIlNob3VsZCBub3QgY2FsbCBDb2xvclNwYWNlLmdldE91dHB1dExlbmd0aCIpfWlzUGFzc3Rocm91Z2goZSl7cmV0dXJuITF9aXNEZWZhdWx0RGVjb2RlKGUsdCl7cmV0dXJuIENvbG9yU3BhY2UuaXNEZWZhdWx0RGVjb2RlKGUsdGhpcy5udW1Db21wcyl9ZmlsbFJnYihlLHQsaSxhLHIscyxuLG8sZyl7Y29uc3QgYz10Kmk7bGV0IGw9bnVsbDtjb25zdCBoPTE8PG4sQz1pIT09cnx8dCE9PWE7aWYodGhpcy5pc1Bhc3N0aHJvdWdoKG4pKWw9bztlbHNlIGlmKDE9PT10aGlzLm51bUNvbXBzJiZjPmgmJiJEZXZpY2VHcmF5IiE9PXRoaXMubmFtZSYmIkRldmljZVJHQiIhPT10aGlzLm5hbWUpe2NvbnN0IHQ9bjw9OD9uZXcgVWludDhBcnJheShoKTpuZXcgVWludDE2QXJyYXkoaCk7Zm9yKGxldCBlPTA7ZTxoO2UrKyl0W2VdPWU7Y29uc3QgaT1uZXcgVWludDhDbGFtcGVkQXJyYXkoMypoKTt0aGlzLmdldFJnYkJ1ZmZlcih0LDAsaCxpLDAsbiwwKTtpZihDKXtsPW5ldyBVaW50OEFycmF5KDMqYyk7bGV0IGU9MDtmb3IobGV0IHQ9MDt0PGM7Kyt0KXtjb25zdCBhPTMqb1t0XTtsW2UrK109aVthXTtsW2UrK109aVthKzFdO2xbZSsrXT1pW2ErMl19fWVsc2V7bGV0IHQ9MDtmb3IobGV0IGE9MDthPGM7KythKXtjb25zdCByPTMqb1thXTtlW3QrK109aVtyXTtlW3QrK109aVtyKzFdO2VbdCsrXT1pW3IrMl07dCs9Z319fWVsc2UgaWYoQyl7bD1uZXcgVWludDhDbGFtcGVkQXJyYXkoMypjKTt0aGlzLmdldFJnYkJ1ZmZlcihvLDAsYyxsLDAsbiwwKX1lbHNlIHRoaXMuZ2V0UmdiQnVmZmVyKG8sMCxhKnMsZSwwLG4sZyk7aWYobClpZihDKSFmdW5jdGlvbiByZXNpemVSZ2JJbWFnZShlLHQsaSxhLHIscyxuKXtuPTEhPT1uPzA6bjtjb25zdCBvPWkvcixnPWEvcztsZXQgYyxsPTA7Y29uc3QgaD1uZXcgVWludDE2QXJyYXkociksQz0zKmk7Zm9yKGxldCBlPTA7ZTxyO2UrKyloW2VdPTMqTWF0aC5mbG9vcihlKm8pO2ZvcihsZXQgaT0wO2k8cztpKyspe2NvbnN0IGE9TWF0aC5mbG9vcihpKmcpKkM7Zm9yKGxldCBpPTA7aTxyO2krKyl7Yz1hK2hbaV07dFtsKytdPWVbYysrXTt0W2wrK109ZVtjKytdO3RbbCsrXT1lW2MrK107bCs9bn19fShsLGUsdCxpLGEscixnKTtlbHNle2xldCB0PTAsaT0wO2ZvcihsZXQgcj0wLG49YSpzO3I8bjtyKyspe2VbdCsrXT1sW2krK107ZVt0KytdPWxbaSsrXTtlW3QrK109bFtpKytdO3QrPWd9fX1nZXQgdXNlc1plcm9Ub09uZVJhbmdlKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJ1c2VzWmVyb1RvT25lUmFuZ2UiLCEwKX1zdGF0aWMgX2NhY2hlKGUsdCxpLGEpe2lmKCFpKXRocm93IG5ldyBFcnJvcignQ29sb3JTcGFjZS5fY2FjaGUgLSBleHBlY3RlZCAibG9jYWxDb2xvclNwYWNlQ2FjaGUiIGFyZ3VtZW50LicpO2lmKCFhKXRocm93IG5ldyBFcnJvcignQ29sb3JTcGFjZS5fY2FjaGUgLSBleHBlY3RlZCAicGFyc2VkQ29sb3JTcGFjZSIgYXJndW1lbnQuJyk7bGV0IHIscztpZihlIGluc3RhbmNlb2YgUmVmKXtzPWU7ZT10LmZldGNoKGUpfWUgaW5zdGFuY2VvZiBOYW1lJiYocj1lLm5hbWUpOyhyfHxzKSYmaS5zZXQocixzLGEpfXN0YXRpYyBnZXRDYWNoZWQoZSx0LGkpe2lmKCFpKXRocm93IG5ldyBFcnJvcignQ29sb3JTcGFjZS5nZXRDYWNoZWQgLSBleHBlY3RlZCAibG9jYWxDb2xvclNwYWNlQ2FjaGUiIGFyZ3VtZW50LicpO2lmKGUgaW5zdGFuY2VvZiBSZWYpe2NvbnN0IGE9aS5nZXRCeVJlZihlKTtpZihhKXJldHVybiBhO3RyeXtlPXQuZmV0Y2goZSl9Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIE1pc3NpbmdEYXRhRXhjZXB0aW9uKXRocm93IGV9fWlmKGUgaW5zdGFuY2VvZiBOYW1lKXtjb25zdCB0PWkuZ2V0QnlOYW1lKGUubmFtZSk7aWYodClyZXR1cm4gdH1yZXR1cm4gbnVsbH1zdGF0aWMgYXN5bmMgcGFyc2VBc3luYyh7Y3M6ZSx4cmVmOnQscmVzb3VyY2VzOmk9bnVsbCxwZGZGdW5jdGlvbkZhY3Rvcnk6YSxsb2NhbENvbG9yU3BhY2VDYWNoZTpyfSl7Y29uc3Qgcz10aGlzLl9wYXJzZShlLHQsaSxhKTt0aGlzLl9jYWNoZShlLHQscixzKTtyZXR1cm4gc31zdGF0aWMgcGFyc2Uoe2NzOmUseHJlZjp0LHJlc291cmNlczppPW51bGwscGRmRnVuY3Rpb25GYWN0b3J5OmEsbG9jYWxDb2xvclNwYWNlQ2FjaGU6cn0pe2NvbnN0IHM9dGhpcy5nZXRDYWNoZWQoZSx0LHIpO2lmKHMpcmV0dXJuIHM7Y29uc3Qgbj10aGlzLl9wYXJzZShlLHQsaSxhKTt0aGlzLl9jYWNoZShlLHQscixuKTtyZXR1cm4gbn1zdGF0aWMgX3BhcnNlKGUsdCxpPW51bGwsYSl7aWYoKGU9dC5mZXRjaElmUmVmKGUpKWluc3RhbmNlb2YgTmFtZSlzd2l0Y2goZS5uYW1lKXtjYXNlIkciOmNhc2UiRGV2aWNlR3JheSI6cmV0dXJuIHRoaXMuc2luZ2xldG9ucy5ncmF5O2Nhc2UiUkdCIjpjYXNlIkRldmljZVJHQiI6cmV0dXJuIHRoaXMuc2luZ2xldG9ucy5yZ2I7Y2FzZSJEZXZpY2VSR0JBIjpyZXR1cm4gdGhpcy5zaW5nbGV0b25zLnJnYmE7Y2FzZSJDTVlLIjpjYXNlIkRldmljZUNNWUsiOnJldHVybiB0aGlzLnNpbmdsZXRvbnMuY215aztjYXNlIlBhdHRlcm4iOnJldHVybiBuZXcgUGF0dGVybkNTKG51bGwpO2RlZmF1bHQ6aWYoaSBpbnN0YW5jZW9mIERpY3Qpe2NvbnN0IHI9aS5nZXQoIkNvbG9yU3BhY2UiKTtpZihyIGluc3RhbmNlb2YgRGljdCl7Y29uc3Qgcz1yLmdldChlLm5hbWUpO2lmKHMpe2lmKHMgaW5zdGFuY2VvZiBOYW1lKXJldHVybiB0aGlzLl9wYXJzZShzLHQsaSxhKTtlPXM7YnJlYWt9fX13YXJuKGBVbnJlY29nbml6ZWQgQ29sb3JTcGFjZTogJHtlLm5hbWV9YCk7cmV0dXJuIHRoaXMuc2luZ2xldG9ucy5ncmF5fWlmKEFycmF5LmlzQXJyYXkoZSkpe2NvbnN0IHI9dC5mZXRjaElmUmVmKGVbMF0pLm5hbWU7bGV0IHMsbixvLGcsYyxsO3N3aXRjaChyKXtjYXNlIkciOmNhc2UiRGV2aWNlR3JheSI6cmV0dXJuIHRoaXMuc2luZ2xldG9ucy5ncmF5O2Nhc2UiUkdCIjpjYXNlIkRldmljZVJHQiI6cmV0dXJuIHRoaXMuc2luZ2xldG9ucy5yZ2I7Y2FzZSJDTVlLIjpjYXNlIkRldmljZUNNWUsiOnJldHVybiB0aGlzLnNpbmdsZXRvbnMuY215aztjYXNlIkNhbEdyYXkiOnM9dC5mZXRjaElmUmVmKGVbMV0pO2c9cy5nZXRBcnJheSgiV2hpdGVQb2ludCIpO2M9cy5nZXRBcnJheSgiQmxhY2tQb2ludCIpO2w9cy5nZXQoIkdhbW1hIik7cmV0dXJuIG5ldyBDYWxHcmF5Q1MoZyxjLGwpO2Nhc2UiQ2FsUkdCIjpzPXQuZmV0Y2hJZlJlZihlWzFdKTtnPXMuZ2V0QXJyYXkoIldoaXRlUG9pbnQiKTtjPXMuZ2V0QXJyYXkoIkJsYWNrUG9pbnQiKTtsPXMuZ2V0QXJyYXkoIkdhbW1hIik7Y29uc3QgaD1zLmdldEFycmF5KCJNYXRyaXgiKTtyZXR1cm4gbmV3IENhbFJHQkNTKGcsYyxsLGgpO2Nhc2UiSUNDQmFzZWQiOmNvbnN0IEM9dC5mZXRjaElmUmVmKGVbMV0pLmRpY3Q7bj1DLmdldCgiTiIpO2NvbnN0IFE9Qy5nZXQoIkFsdGVybmF0ZSIpO2lmKFEpe2NvbnN0IGU9dGhpcy5fcGFyc2UoUSx0LGksYSk7aWYoZS5udW1Db21wcz09PW4pcmV0dXJuIGU7d2FybigiSUNDQmFzZWQgY29sb3Igc3BhY2U6IElnbm9yaW5nIGluY29ycmVjdCAvQWx0ZXJuYXRlIGVudHJ5LiIpfWlmKDE9PT1uKXJldHVybiB0aGlzLnNpbmdsZXRvbnMuZ3JheTtpZigzPT09bilyZXR1cm4gdGhpcy5zaW5nbGV0b25zLnJnYjtpZig0PT09bilyZXR1cm4gdGhpcy5zaW5nbGV0b25zLmNteWs7YnJlYWs7Y2FzZSJQYXR0ZXJuIjpvPWVbMV18fG51bGw7byYmKG89dGhpcy5fcGFyc2Uobyx0LGksYSkpO3JldHVybiBuZXcgUGF0dGVybkNTKG8pO2Nhc2UiSSI6Y2FzZSJJbmRleGVkIjpvPXRoaXMuX3BhcnNlKGVbMV0sdCxpLGEpO2NvbnN0IEU9TWF0aC5tYXgoMCxNYXRoLm1pbih0LmZldGNoSWZSZWYoZVsyXSksMjU1KSksdT10LmZldGNoSWZSZWYoZVszXSk7cmV0dXJuIG5ldyBJbmRleGVkQ1MobyxFLHUpO2Nhc2UiU2VwYXJhdGlvbiI6Y2FzZSJEZXZpY2VOIjpjb25zdCBkPXQuZmV0Y2hJZlJlZihlWzFdKTtuPUFycmF5LmlzQXJyYXkoZCk/ZC5sZW5ndGg6MTtvPXRoaXMuX3BhcnNlKGVbMl0sdCxpLGEpO2NvbnN0IGY9YS5jcmVhdGUoZVszXSk7cmV0dXJuIG5ldyBBbHRlcm5hdGVDUyhuLG8sZik7Y2FzZSJMYWIiOnM9dC5mZXRjaElmUmVmKGVbMV0pO2c9cy5nZXRBcnJheSgiV2hpdGVQb2ludCIpO2M9cy5nZXRBcnJheSgiQmxhY2tQb2ludCIpO2NvbnN0IHA9cy5nZXRBcnJheSgiUmFuZ2UiKTtyZXR1cm4gbmV3IExhYkNTKGcsYyxwKTtkZWZhdWx0Ondhcm4oYFVuaW1wbGVtZW50ZWQgQ29sb3JTcGFjZSBvYmplY3Q6ICR7cn1gKTtyZXR1cm4gdGhpcy5zaW5nbGV0b25zLmdyYXl9fXdhcm4oYFVucmVjb2duaXplZCBDb2xvclNwYWNlIG9iamVjdDogJHtlfWApO3JldHVybiB0aGlzLnNpbmdsZXRvbnMuZ3JheX1zdGF0aWMgaXNEZWZhdWx0RGVjb2RlKGUsdCl7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuITA7aWYoMip0IT09ZS5sZW5ndGgpe3dhcm4oIlRoZSBkZWNvZGUgbWFwIGlzIG5vdCB0aGUgY29ycmVjdCBsZW5ndGgiKTtyZXR1cm4hMH1mb3IobGV0IHQ9MCxpPWUubGVuZ3RoO3Q8aTt0Kz0yKWlmKDAhPT1lW3RdfHwxIT09ZVt0KzFdKXJldHVybiExO3JldHVybiEwfXN0YXRpYyBnZXQgc2luZ2xldG9ucygpe3JldHVybiBzaGFkb3codGhpcywic2luZ2xldG9ucyIse2dldCBncmF5KCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJncmF5IixuZXcgRGV2aWNlR3JheUNTKX0sZ2V0IHJnYigpe3JldHVybiBzaGFkb3codGhpcywicmdiIixuZXcgRGV2aWNlUmdiQ1MpfSxnZXQgcmdiYSgpe3JldHVybiBzaGFkb3codGhpcywicmdiYSIsbmV3IERldmljZVJnYmFDUyl9LGdldCBjbXlrKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJjbXlrIixuZXcgRGV2aWNlQ215a0NTKX19KX19Y2xhc3MgQWx0ZXJuYXRlQ1MgZXh0ZW5kcyBDb2xvclNwYWNle2NvbnN0cnVjdG9yKGUsdCxpKXtzdXBlcigiQWx0ZXJuYXRlIixlKTt0aGlzLmJhc2U9dDt0aGlzLnRpbnRGbj1pO3RoaXMudG1wQnVmPW5ldyBGbG9hdDMyQXJyYXkodC5udW1Db21wcyl9Z2V0UmdiSXRlbShlLHQsaSxhKXtjb25zdCByPXRoaXMudG1wQnVmO3RoaXMudGludEZuKGUsdCxyLDApO3RoaXMuYmFzZS5nZXRSZ2JJdGVtKHIsMCxpLGEpfWdldFJnYkJ1ZmZlcihlLHQsaSxhLHIscyxuKXtjb25zdCBvPXRoaXMudGludEZuLGc9dGhpcy5iYXNlLGM9MS8oKDE8PHMpLTEpLGw9Zy5udW1Db21wcyxoPWcudXNlc1plcm9Ub09uZVJhbmdlLEM9KGcuaXNQYXNzdGhyb3VnaCg4KXx8IWgpJiYwPT09bjtsZXQgUT1DP3I6MDtjb25zdCBFPUM/YTpuZXcgVWludDhDbGFtcGVkQXJyYXkobCppKSx1PXRoaXMubnVtQ29tcHMsZD1uZXcgRmxvYXQzMkFycmF5KHUpLGY9bmV3IEZsb2F0MzJBcnJheShsKTtsZXQgcCxtO2ZvcihwPTA7cDxpO3ArKyl7Zm9yKG09MDttPHU7bSsrKWRbbV09ZVt0KytdKmM7byhkLDAsZiwwKTtpZihoKWZvcihtPTA7bTxsO20rKylFW1ErK109MjU1KmZbbV07ZWxzZXtnLmdldFJnYkl0ZW0oZiwwLEUsUSk7USs9bH19Q3x8Zy5nZXRSZ2JCdWZmZXIoRSwwLGksYSxyLDgsbil9Z2V0T3V0cHV0TGVuZ3RoKGUsdCl7cmV0dXJuIHRoaXMuYmFzZS5nZXRPdXRwdXRMZW5ndGgoZSp0aGlzLmJhc2UubnVtQ29tcHMvdGhpcy5udW1Db21wcyx0KX19Y2xhc3MgUGF0dGVybkNTIGV4dGVuZHMgQ29sb3JTcGFjZXtjb25zdHJ1Y3RvcihlKXtzdXBlcigiUGF0dGVybiIsbnVsbCk7dGhpcy5iYXNlPWV9aXNEZWZhdWx0RGVjb2RlKGUsdCl7dW5yZWFjaGFibGUoIlNob3VsZCBub3QgY2FsbCBQYXR0ZXJuQ1MuaXNEZWZhdWx0RGVjb2RlIil9fWNsYXNzIEluZGV4ZWRDUyBleHRlbmRzIENvbG9yU3BhY2V7Y29uc3RydWN0b3IoZSx0LGkpe3N1cGVyKCJJbmRleGVkIiwxKTt0aGlzLmJhc2U9ZTtjb25zdCBhPWUubnVtQ29tcHMqKHQrMSk7dGhpcy5sb29rdXA9bmV3IFVpbnQ4QXJyYXkoYSk7aWYoaSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pe2NvbnN0IGU9aS5nZXRCeXRlcyhhKTt0aGlzLmxvb2t1cC5zZXQoZSl9ZWxzZXtpZigic3RyaW5nIiE9dHlwZW9mIGkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBJbmRleGVkQ1MgLSB1bnJlY29nbml6ZWQgbG9va3VwIHRhYmxlOiAke2l9YCk7Zm9yKGxldCBlPTA7ZTxhOysrZSl0aGlzLmxvb2t1cFtlXT0yNTUmaS5jaGFyQ29kZUF0KGUpfX1nZXRSZ2JJdGVtKGUsdCxpLGEpe2NvbnN0IHI9dGhpcy5iYXNlLm51bUNvbXBzLHM9ZVt0XSpyO3RoaXMuYmFzZS5nZXRSZ2JCdWZmZXIodGhpcy5sb29rdXAscywxLGksYSw4LDApfWdldFJnYkJ1ZmZlcihlLHQsaSxhLHIscyxuKXtjb25zdCBvPXRoaXMuYmFzZSxnPW8ubnVtQ29tcHMsYz1vLmdldE91dHB1dExlbmd0aChnLG4pLGw9dGhpcy5sb29rdXA7Zm9yKGxldCBzPTA7czxpOysrcyl7Y29uc3QgaT1lW3QrK10qZztvLmdldFJnYkJ1ZmZlcihsLGksMSxhLHIsOCxuKTtyKz1jfX1nZXRPdXRwdXRMZW5ndGgoZSx0KXtyZXR1cm4gdGhpcy5iYXNlLmdldE91dHB1dExlbmd0aChlKnRoaXMuYmFzZS5udW1Db21wcyx0KX1pc0RlZmF1bHREZWNvZGUoZSx0KXtpZighQXJyYXkuaXNBcnJheShlKSlyZXR1cm4hMDtpZigyIT09ZS5sZW5ndGgpe3dhcm4oIkRlY29kZSBtYXAgbGVuZ3RoIGlzIG5vdCBjb3JyZWN0Iik7cmV0dXJuITB9aWYoIU51bWJlci5pc0ludGVnZXIodCl8fHQ8MSl7d2FybigiQml0cyBwZXIgY29tcG9uZW50IGlzIG5vdCBjb3JyZWN0Iik7cmV0dXJuITB9cmV0dXJuIDA9PT1lWzBdJiZlWzFdPT09KDE8PHQpLTF9fWNsYXNzIERldmljZUdyYXlDUyBleHRlbmRzIENvbG9yU3BhY2V7Y29uc3RydWN0b3IoKXtzdXBlcigiRGV2aWNlR3JheSIsMSl9Z2V0UmdiSXRlbShlLHQsaSxhKXtjb25zdCByPTI1NSplW3RdO2lbYV09aVthKzFdPWlbYSsyXT1yfWdldFJnYkJ1ZmZlcihlLHQsaSxhLHIscyxuKXtjb25zdCBvPTI1NS8oKDE8PHMpLTEpO2xldCBnPXQsYz1yO2ZvcihsZXQgdD0wO3Q8aTsrK3Qpe2NvbnN0IHQ9byplW2crK107YVtjKytdPXQ7YVtjKytdPXQ7YVtjKytdPXQ7Yys9bn19Z2V0T3V0cHV0TGVuZ3RoKGUsdCl7cmV0dXJuIGUqKDMrdCl9fWNsYXNzIERldmljZVJnYkNTIGV4dGVuZHMgQ29sb3JTcGFjZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCJEZXZpY2VSR0IiLDMpfWdldFJnYkl0ZW0oZSx0LGksYSl7aVthXT0yNTUqZVt0XTtpW2ErMV09MjU1KmVbdCsxXTtpW2ErMl09MjU1KmVbdCsyXX1nZXRSZ2JCdWZmZXIoZSx0LGksYSxyLHMsbil7aWYoOD09PXMmJjA9PT1uKXthLnNldChlLnN1YmFycmF5KHQsdCszKmkpLHIpO3JldHVybn1jb25zdCBvPTI1NS8oKDE8PHMpLTEpO2xldCBnPXQsYz1yO2ZvcihsZXQgdD0wO3Q8aTsrK3Qpe2FbYysrXT1vKmVbZysrXTthW2MrK109byplW2crK107YVtjKytdPW8qZVtnKytdO2MrPW59fWdldE91dHB1dExlbmd0aChlLHQpe3JldHVybiBlKigzK3QpLzN8MH1pc1Bhc3N0aHJvdWdoKGUpe3JldHVybiA4PT09ZX19Y2xhc3MgRGV2aWNlUmdiYUNTIGV4dGVuZHMgQ29sb3JTcGFjZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCJEZXZpY2VSR0JBIiw0KX1nZXRPdXRwdXRMZW5ndGgoZSx0KXtyZXR1cm4gNCplfWlzUGFzc3Rocm91Z2goZSl7cmV0dXJuIDg9PT1lfWZpbGxSZ2IoZSx0LGksYSxyLHMsbixvLGcpe2khPT1yfHx0IT09YT9mdW5jdGlvbiByZXNpemVSZ2JhSW1hZ2UoZSx0LGksYSxyLHMsbil7Y29uc3Qgbz1pL3IsZz1hL3M7bGV0IGM9MDtjb25zdCBsPW5ldyBVaW50MTZBcnJheShyKTtpZigxPT09bil7Zm9yKGxldCBlPTA7ZTxyO2UrKylsW2VdPU1hdGguZmxvb3IoZSpvKTtjb25zdCBhPW5ldyBVaW50MzJBcnJheShlLmJ1ZmZlciksbj1uZXcgVWludDMyQXJyYXkodC5idWZmZXIpLGg9RmVhdHVyZVRlc3QuaXNMaXR0bGVFbmRpYW4/MTY3NzcyMTU6NDI5NDk2NzA0MDtmb3IobGV0IGU9MDtlPHM7ZSsrKXtjb25zdCB0PWEuc3ViYXJyYXkoTWF0aC5mbG9vcihlKmcpKmkpO2ZvcihsZXQgZT0wO2U8cjtlKyspbltjKytdfD10W2xbZV1dJmh9fWVsc2V7Y29uc3QgYT00LG49aSphO2ZvcihsZXQgZT0wO2U8cjtlKyspbFtlXT1NYXRoLmZsb29yKGUqbykqYTtmb3IobGV0IGk9MDtpPHM7aSsrKXtjb25zdCBhPWUuc3ViYXJyYXkoTWF0aC5mbG9vcihpKmcpKm4pO2ZvcihsZXQgZT0wO2U8cjtlKyspe2NvbnN0IGk9bFtlXTt0W2MrK109YVtpXTt0W2MrK109YVtpKzFdO3RbYysrXT1hW2krMl19fX19KG8sZSx0LGksYSxyLGcpOmZ1bmN0aW9uIGNvcHlSZ2JhSW1hZ2UoZSx0LGkpe2lmKDE9PT1pKXtjb25zdCBpPW5ldyBVaW50MzJBcnJheShlLmJ1ZmZlciksYT1uZXcgVWludDMyQXJyYXkodC5idWZmZXIpLHI9RmVhdHVyZVRlc3QuaXNMaXR0bGVFbmRpYW4/MTY3NzcyMTU6NDI5NDk2NzA0MDtmb3IobGV0IGU9MCx0PWkubGVuZ3RoO2U8dDtlKyspYVtlXXw9aVtlXSZyfWVsc2V7bGV0IGk9MDtmb3IobGV0IGE9MCxyPWUubGVuZ3RoO2E8cjthKz00KXt0W2krK109ZVthXTt0W2krK109ZVthKzFdO3RbaSsrXT1lW2ErMl19fX0obyxlLGcpfX1jbGFzcyBEZXZpY2VDbXlrQ1MgZXh0ZW5kcyBDb2xvclNwYWNle2NvbnN0cnVjdG9yKCl7c3VwZXIoIkRldmljZUNNWUsiLDQpfSN0KGUsdCxpLGEscil7Y29uc3Qgcz1lW3RdKmksbj1lW3QrMV0qaSxvPWVbdCsyXSppLGc9ZVt0KzNdKmk7YVtyXT0yNTUrcyooLTQuMzg3MzMyMzg0NjA5OTg4KnMrNTQuNDg2MTUxOTQxODkxNzYqbisxOC44MjI5MDUwMjE2NTMwMipvKzIxMi4yNTY2MjQ1MTYzOTU4NSpnLTI4NS4yMzMxMDI2MTM3MDA0KStuKigxLjcxNDk3NjM0NzczNjIxMzQqbi01LjYwOTY3MzY5MDQwNDczMTUqbystMTcuODczODcwODYxNDE1NDQ0KmctNS40OTcwMDY0MjcxOTYzNjYpK28qKC0yLjUyMTczNDAxMzE2ODMwMzMqby0yMS4yNDg5MjMzMzczNTMwNzMqZysxNy41MTE5MjcwODQxODEzKStnKigtMjEuODYxMjIxNDc0NjM2MDUqZy0xODkuNDgxODA4MzU5MjI3NDcpO2FbcisxXT0yNTUrcyooOC44NDEwNDE0MjIwMzYxNDkqcys2MC4xMTgwMjcwNDU1OTczNjYqbis2Ljg3MTQyNTU5MjA0OTAwNypvKzMxLjE1OTEwMDEzMDA1NTkyMipnLTc5LjI5NzA4NDQ4MTY1NDgpK24qKC0xNS4zMTAzNjEzMDY5Njc4MTcqbisxNy41NzUyNTEyNjExMDk0ODIqbysxMzEuMzUyNTA5MTI0OTM5NzYqZy0xOTAuOTQ1MzMwMjU4ODk1MSkrbyooNC40NDQzMzkxMDI4NTI3Mzkqbys5Ljg2MzI4NjE0OTM0MDUqZy0yNC44Njc0MTU4MjU1NTg3OCkrZyooLTIwLjczNzMyNTQ3MTE4MTAzNCpnLTE4Ny44MDQ1MzcwOTcxOTU3OCk7YVtyKzJdPTI1NStzKiguODg0MjUyMjQzMDAwMzI5NipzKzguMDc4Njc3NTAzMTEyOTI4Km4rMzAuODk5NzgzMDk3MDM3Mjkqby0uMjM4ODMyMzg2ODkxNzg5MzQqZy0xNC4xODM1NzY3OTk2NzMyODYpK24qKDEwLjQ5NTkzMjczNDMyMDcyKm4rNjMuMDIzNzg0OTQ3NTQwNTIqbys1MC42MDY5NTc2NTYzNjA3MzQqZy0xMTIuMjM4ODQyNTM3MTkyNDgpK28qKC4wMzI5NjA0MTExNDg3MzIxNypvKzExNS42MDM4NDQ0OTY0NjY0MSpnLTE5My41ODIwOTM1Njg2MTUwNSkrZyooLTIyLjMzODE2ODA3MzA5ODg2KmctMTgwLjEyNjEzOTc0NzA4MzY3KX1nZXRSZ2JJdGVtKGUsdCxpLGEpe3RoaXMuI3QoZSx0LDEsaSxhKX1nZXRSZ2JCdWZmZXIoZSx0LGksYSxyLHMsbil7Y29uc3Qgbz0xLygoMTw8cyktMSk7Zm9yKGxldCBzPTA7czxpO3MrKyl7dGhpcy4jdChlLHQsbyxhLHIpO3QrPTQ7cis9MytufX1nZXRPdXRwdXRMZW5ndGgoZSx0KXtyZXR1cm4gZS80KigzK3QpfDB9fWNsYXNzIENhbEdyYXlDUyBleHRlbmRzIENvbG9yU3BhY2V7Y29uc3RydWN0b3IoZSx0LGkpe3N1cGVyKCJDYWxHcmF5IiwxKTtpZighZSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIldoaXRlUG9pbnQgbWlzc2luZyAtIHJlcXVpcmVkIGZvciBjb2xvciBzcGFjZSBDYWxHcmF5Iik7W3RoaXMuWFcsdGhpcy5ZVyx0aGlzLlpXXT1lO1t0aGlzLlhCLHRoaXMuWUIsdGhpcy5aQl09dHx8WzAsMCwwXTt0aGlzLkc9aXx8MTtpZih0aGlzLlhXPDB8fHRoaXMuWlc8MHx8MSE9PXRoaXMuWVcpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBJbnZhbGlkIFdoaXRlUG9pbnQgY29tcG9uZW50cyBmb3IgJHt0aGlzLm5hbWV9LCBubyBmYWxsYmFjayBhdmFpbGFibGVgKTtpZih0aGlzLlhCPDB8fHRoaXMuWUI8MHx8dGhpcy5aQjwwKXtpbmZvKGBJbnZhbGlkIEJsYWNrUG9pbnQgZm9yICR7dGhpcy5uYW1lfSwgZmFsbGluZyBiYWNrIHRvIGRlZmF1bHQuYCk7dGhpcy5YQj10aGlzLllCPXRoaXMuWkI9MH0wPT09dGhpcy5YQiYmMD09PXRoaXMuWUImJjA9PT10aGlzLlpCfHx3YXJuKGAke3RoaXMubmFtZX0sIEJsYWNrUG9pbnQ6IFhCOiAke3RoaXMuWEJ9LCBZQjogJHt0aGlzLllCfSwgWkI6ICR7dGhpcy5aQn0sIG9ubHkgZGVmYXVsdCB2YWx1ZXMgYXJlIHN1cHBvcnRlZC5gKTtpZih0aGlzLkc8MSl7aW5mbyhgSW52YWxpZCBHYW1tYTogJHt0aGlzLkd9IGZvciAke3RoaXMubmFtZX0sIGZhbGxpbmcgYmFjayB0byBkZWZhdWx0LmApO3RoaXMuRz0xfX0jdChlLHQsaSxhLHIpe2NvbnN0IHM9KGVbdF0qcikqKnRoaXMuRyxuPXRoaXMuWVcqcyxvPU1hdGgubWF4KDI5NS44Km4qKi4zMzMzMzMzMzMzMzMzMzMzLTQwLjgsMCk7aVthXT1vO2lbYSsxXT1vO2lbYSsyXT1vfWdldFJnYkl0ZW0oZSx0LGksYSl7dGhpcy4jdChlLHQsaSxhLDEpfWdldFJnYkJ1ZmZlcihlLHQsaSxhLHIscyxuKXtjb25zdCBvPTEvKCgxPDxzKS0xKTtmb3IobGV0IHM9MDtzPGk7KytzKXt0aGlzLiN0KGUsdCxhLHIsbyk7dCs9MTtyKz0zK259fWdldE91dHB1dExlbmd0aChlLHQpe3JldHVybiBlKigzK3QpfX1jbGFzcyBDYWxSR0JDUyBleHRlbmRzIENvbG9yU3BhY2V7c3RhdGljI2k9bmV3IEZsb2F0MzJBcnJheShbLjg5NTEsLjI2NjQsLS4xNjE0LC0uNzUwMiwxLjcxMzUsLjAzNjcsLjAzODksLS4wNjg1LDEuMDI5Nl0pO3N0YXRpYyNhPW5ldyBGbG9hdDMyQXJyYXkoWy45ODY5OTI5LC0uMTQ3MDU0MywuMTU5OTYyNywuNDMyMzA1MywuNTE4MzYwMywuMDQ5MjkxMiwtLjAwODUyODcsLjA0MDA0MjgsLjk2ODQ4NjddKTtzdGF0aWMjcj1uZXcgRmxvYXQzMkFycmF5KFszLjI0MDQ1NDIsLTEuNTM3MTM4NSwtLjQ5ODUzMTQsLS45NjkyNjYsMS44NzYwMTA4LC4wNDE1NTYsLjA1NTY0MzQsLS4yMDQwMjU5LDEuMDU3MjI1Ml0pO3N0YXRpYyNzPW5ldyBGbG9hdDMyQXJyYXkoWzEsMSwxXSk7c3RhdGljI249bmV3IEZsb2F0MzJBcnJheSgzKTtzdGF0aWMjbz1uZXcgRmxvYXQzMkFycmF5KDMpO3N0YXRpYyNnPW5ldyBGbG9hdDMyQXJyYXkoMyk7c3RhdGljI0k9KDI0LzExNikqKjMvODtjb25zdHJ1Y3RvcihlLHQsaSxhKXtzdXBlcigiQ2FsUkdCIiwzKTtpZighZSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIldoaXRlUG9pbnQgbWlzc2luZyAtIHJlcXVpcmVkIGZvciBjb2xvciBzcGFjZSBDYWxSR0IiKTtjb25zdFtyLHMsbl09dGhpcy53aGl0ZVBvaW50PWUsW28sZyxjXT10aGlzLmJsYWNrUG9pbnQ9dHx8bmV3IEZsb2F0MzJBcnJheSgzKTtbdGhpcy5HUix0aGlzLkdHLHRoaXMuR0JdPWl8fG5ldyBGbG9hdDMyQXJyYXkoWzEsMSwxXSk7W3RoaXMuTVhBLHRoaXMuTVlBLHRoaXMuTVpBLHRoaXMuTVhCLHRoaXMuTVlCLHRoaXMuTVpCLHRoaXMuTVhDLHRoaXMuTVlDLHRoaXMuTVpDXT1hfHxuZXcgRmxvYXQzMkFycmF5KFsxLDAsMCwwLDEsMCwwLDAsMV0pO2lmKHI8MHx8bjwwfHwxIT09cyl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYEludmFsaWQgV2hpdGVQb2ludCBjb21wb25lbnRzIGZvciAke3RoaXMubmFtZX0sIG5vIGZhbGxiYWNrIGF2YWlsYWJsZWApO2lmKG88MHx8ZzwwfHxjPDApe2luZm8oYEludmFsaWQgQmxhY2tQb2ludCBmb3IgJHt0aGlzLm5hbWV9IFske299LCAke2d9LCAke2N9XSwgZmFsbGluZyBiYWNrIHRvIGRlZmF1bHQuYCk7dGhpcy5ibGFja1BvaW50PW5ldyBGbG9hdDMyQXJyYXkoMyl9aWYodGhpcy5HUjwwfHx0aGlzLkdHPDB8fHRoaXMuR0I8MCl7aW5mbyhgSW52YWxpZCBHYW1tYSBbJHt0aGlzLkdSfSwgJHt0aGlzLkdHfSwgJHt0aGlzLkdCfV0gZm9yICR7dGhpcy5uYW1lfSwgZmFsbGluZyBiYWNrIHRvIGRlZmF1bHQuYCk7dGhpcy5HUj10aGlzLkdHPXRoaXMuR0I9MX19I2MoZSx0LGkpe2lbMF09ZVswXSp0WzBdK2VbMV0qdFsxXStlWzJdKnRbMl07aVsxXT1lWzNdKnRbMF0rZVs0XSp0WzFdK2VbNV0qdFsyXTtpWzJdPWVbNl0qdFswXStlWzddKnRbMV0rZVs4XSp0WzJdfSNsKGUsdCxpKXtpWzBdPTEqdFswXS9lWzBdO2lbMV09MSp0WzFdL2VbMV07aVsyXT0xKnRbMl0vZVsyXX0jaChlLHQsaSl7aVswXT0uOTUwNDcqdFswXS9lWzBdO2lbMV09MSp0WzFdL2VbMV07aVsyXT0xLjA4ODgzKnRbMl0vZVsyXX0jQyhlKXtyZXR1cm4gZTw9LjAwMzEzMDg/dGhpcy4jQigwLDEsMTIuOTIqZSk6ZT49Ljk5NTU0NTI1PzE6dGhpcy4jQigwLDEsMS4wNTUqZSoqKDEvMi40KS0uMDU1KX0jQihlLHQsaSl7cmV0dXJuIE1hdGgubWF4KGUsTWF0aC5taW4odCxpKSl9I1EoZSl7cmV0dXJuIGU8MD8tdGhpcy4jUSgtZSk6ZT44PygoZSsxNikvMTE2KSoqMzplKkNhbFJHQkNTLiNJfSNFKGUsdCxpKXtpZigwPT09ZVswXSYmMD09PWVbMV0mJjA9PT1lWzJdKXtpWzBdPXRbMF07aVsxXT10WzFdO2lbMl09dFsyXTtyZXR1cm59Y29uc3QgYT10aGlzLiNRKDApLHI9KDEtYSkvKDEtdGhpcy4jUShlWzBdKSkscz0xLXIsbj0oMS1hKS8oMS10aGlzLiNRKGVbMV0pKSxvPTEtbixnPSgxLWEpLygxLXRoaXMuI1EoZVsyXSkpLGM9MS1nO2lbMF09dFswXSpyK3M7aVsxXT10WzFdKm4rbztpWzJdPXRbMl0qZytjfSN1KGUsdCxpKXtpZigxPT09ZVswXSYmMT09PWVbMl0pe2lbMF09dFswXTtpWzFdPXRbMV07aVsyXT10WzJdO3JldHVybn1jb25zdCBhPWk7dGhpcy4jYyhDYWxSR0JDUy4jaSx0LGEpO2NvbnN0IHI9Q2FsUkdCQ1MuI247dGhpcy4jbChlLGEscik7dGhpcy4jYyhDYWxSR0JDUy4jYSxyLGkpfSNkKGUsdCxpKXtjb25zdCBhPWk7dGhpcy4jYyhDYWxSR0JDUy4jaSx0LGEpO2NvbnN0IHI9Q2FsUkdCQ1MuI247dGhpcy4jaChlLGEscik7dGhpcy4jYyhDYWxSR0JDUy4jYSxyLGkpfSN0KGUsdCxpLGEscil7Y29uc3Qgcz10aGlzLiNCKDAsMSxlW3RdKnIpLG49dGhpcy4jQigwLDEsZVt0KzFdKnIpLG89dGhpcy4jQigwLDEsZVt0KzJdKnIpLGc9MT09PXM/MTpzKip0aGlzLkdSLGM9MT09PW4/MTpuKip0aGlzLkdHLGw9MT09PW8/MTpvKip0aGlzLkdCLGg9dGhpcy5NWEEqZyt0aGlzLk1YQipjK3RoaXMuTVhDKmwsQz10aGlzLk1ZQSpnK3RoaXMuTVlCKmMrdGhpcy5NWUMqbCxRPXRoaXMuTVpBKmcrdGhpcy5NWkIqYyt0aGlzLk1aQypsLEU9Q2FsUkdCQ1MuI287RVswXT1oO0VbMV09QztFWzJdPVE7Y29uc3QgdT1DYWxSR0JDUy4jZzt0aGlzLiN1KHRoaXMud2hpdGVQb2ludCxFLHUpO2NvbnN0IGQ9Q2FsUkdCQ1MuI287dGhpcy4jRSh0aGlzLmJsYWNrUG9pbnQsdSxkKTtjb25zdCBmPUNhbFJHQkNTLiNnO3RoaXMuI2QoQ2FsUkdCQ1MuI3MsZCxmKTtjb25zdCBwPUNhbFJHQkNTLiNvO3RoaXMuI2MoQ2FsUkdCQ1MuI3IsZixwKTtpW2FdPTI1NSp0aGlzLiNDKHBbMF0pO2lbYSsxXT0yNTUqdGhpcy4jQyhwWzFdKTtpW2ErMl09MjU1KnRoaXMuI0MocFsyXSl9Z2V0UmdiSXRlbShlLHQsaSxhKXt0aGlzLiN0KGUsdCxpLGEsMSl9Z2V0UmdiQnVmZmVyKGUsdCxpLGEscixzLG4pe2NvbnN0IG89MS8oKDE8PHMpLTEpO2ZvcihsZXQgcz0wO3M8aTsrK3Mpe3RoaXMuI3QoZSx0LGEscixvKTt0Kz0zO3IrPTMrbn19Z2V0T3V0cHV0TGVuZ3RoKGUsdCl7cmV0dXJuIGUqKDMrdCkvM3wwfX1jbGFzcyBMYWJDUyBleHRlbmRzIENvbG9yU3BhY2V7Y29uc3RydWN0b3IoZSx0LGkpe3N1cGVyKCJMYWIiLDMpO2lmKCFlKXRocm93IG5ldyBGb3JtYXRFcnJvcigiV2hpdGVQb2ludCBtaXNzaW5nIC0gcmVxdWlyZWQgZm9yIGNvbG9yIHNwYWNlIExhYiIpO1t0aGlzLlhXLHRoaXMuWVcsdGhpcy5aV109ZTtbdGhpcy5hbWluLHRoaXMuYW1heCx0aGlzLmJtaW4sdGhpcy5ibWF4XT1pfHxbLTEwMCwxMDAsLTEwMCwxMDBdO1t0aGlzLlhCLHRoaXMuWUIsdGhpcy5aQl09dHx8WzAsMCwwXTtpZih0aGlzLlhXPDB8fHRoaXMuWlc8MHx8MSE9PXRoaXMuWVcpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIFdoaXRlUG9pbnQgY29tcG9uZW50cywgbm8gZmFsbGJhY2sgYXZhaWxhYmxlIik7aWYodGhpcy5YQjwwfHx0aGlzLllCPDB8fHRoaXMuWkI8MCl7aW5mbygiSW52YWxpZCBCbGFja1BvaW50LCBmYWxsaW5nIGJhY2sgdG8gZGVmYXVsdCIpO3RoaXMuWEI9dGhpcy5ZQj10aGlzLlpCPTB9aWYodGhpcy5hbWluPnRoaXMuYW1heHx8dGhpcy5ibWluPnRoaXMuYm1heCl7aW5mbygiSW52YWxpZCBSYW5nZSwgZmFsbGluZyBiYWNrIHRvIGRlZmF1bHRzIik7dGhpcy5hbWluPS0xMDA7dGhpcy5hbWF4PTEwMDt0aGlzLmJtaW49LTEwMDt0aGlzLmJtYXg9MTAwfX0jZihlKXtyZXR1cm4gZT49Ni8yOT9lKiozOjEwOC84NDEqKGUtNC8yOSl9I3AoZSx0LGksYSl7cmV0dXJuIGkrZSooYS1pKS90fSN0KGUsdCxpLGEscil7bGV0IHM9ZVt0XSxuPWVbdCsxXSxvPWVbdCsyXTtpZighMSE9PWkpe3M9dGhpcy4jcChzLGksMCwxMDApO249dGhpcy4jcChuLGksdGhpcy5hbWluLHRoaXMuYW1heCk7bz10aGlzLiNwKG8saSx0aGlzLmJtaW4sdGhpcy5ibWF4KX1uPnRoaXMuYW1heD9uPXRoaXMuYW1heDpuPHRoaXMuYW1pbiYmKG49dGhpcy5hbWluKTtvPnRoaXMuYm1heD9vPXRoaXMuYm1heDpvPHRoaXMuYm1pbiYmKG89dGhpcy5ibWluKTtjb25zdCBnPShzKzE2KS8xMTYsYz1nK24vNTAwLGw9Zy1vLzIwMCxoPXRoaXMuWFcqdGhpcy4jZihjKSxDPXRoaXMuWVcqdGhpcy4jZihnKSxRPXRoaXMuWlcqdGhpcy4jZihsKTtsZXQgRSx1LGQ7aWYodGhpcy5aVzwxKXtFPTMuMTMzOSpoKy0xLjYxNypDKy0uNDkwNipRO3U9LS45Nzg1KmgrMS45MTYqQysuMDMzMypRO2Q9LjA3MipoKy0uMjI5KkMrMS40MDU3KlF9ZWxzZXtFPTMuMjQwNipoKy0xLjUzNzIqQystLjQ5ODYqUTt1PS0uOTY4OSpoKzEuODc1OCpDKy4wNDE1KlE7ZD0uMDU1NypoKy0uMjA0KkMrMS4wNTcqUX1hW3JdPTI1NSpNYXRoLnNxcnQoRSk7YVtyKzFdPTI1NSpNYXRoLnNxcnQodSk7YVtyKzJdPTI1NSpNYXRoLnNxcnQoZCl9Z2V0UmdiSXRlbShlLHQsaSxhKXt0aGlzLiN0KGUsdCwhMSxpLGEpfWdldFJnYkJ1ZmZlcihlLHQsaSxhLHIscyxuKXtjb25zdCBvPSgxPDxzKS0xO2ZvcihsZXQgcz0wO3M8aTtzKyspe3RoaXMuI3QoZSx0LG8sYSxyKTt0Kz0zO3IrPTMrbn19Z2V0T3V0cHV0TGVuZ3RoKGUsdCl7cmV0dXJuIGUqKDMrdCkvM3wwfWlzRGVmYXVsdERlY29kZShlLHQpe3JldHVybiEwfWdldCB1c2VzWmVyb1RvT25lUmFuZ2UoKXtyZXR1cm4gc2hhZG93KHRoaXMsInVzZXNaZXJvVG9PbmVSYW5nZSIsITEpfX1fX3dlYnBhY2tfcmVxdWlyZV9fKDM5NDkpO2Z1bmN0aW9uIGhleFRvSW50KGUsdCl7bGV0IGk9MDtmb3IobGV0IGE9MDthPD10O2ErKylpPWk8PDh8ZVthXTtyZXR1cm4gaT4+PjB9ZnVuY3Rpb24gaGV4VG9TdHIoZSx0KXtyZXR1cm4gMT09PXQ/U3RyaW5nLmZyb21DaGFyQ29kZShlWzBdLGVbMV0pOjM9PT10P1N0cmluZy5mcm9tQ2hhckNvZGUoZVswXSxlWzFdLGVbMl0sZVszXSk6U3RyaW5nLmZyb21DaGFyQ29kZSguLi5lLnN1YmFycmF5KDAsdCsxKSl9ZnVuY3Rpb24gYWRkSGV4KGUsdCxpKXtsZXQgYT0wO2ZvcihsZXQgcj1pO3I+PTA7ci0tKXthKz1lW3JdK3Rbcl07ZVtyXT0yNTUmYTthPj49OH19ZnVuY3Rpb24gaW5jSGV4KGUsdCl7bGV0IGk9MTtmb3IobGV0IGE9dDthPj0wJiZpPjA7YS0tKXtpKz1lW2FdO2VbYV09MjU1Jmk7aT4+PTh9fWNvbnN0IER0PTE2O2NsYXNzIEJpbmFyeUNNYXBTdHJlYW17Y29uc3RydWN0b3IoZSl7dGhpcy5idWZmZXI9ZTt0aGlzLnBvcz0wO3RoaXMuZW5kPWUubGVuZ3RoO3RoaXMudG1wQnVmPW5ldyBVaW50OEFycmF5KDE5KX1yZWFkQnl0ZSgpe3JldHVybiB0aGlzLnBvcz49dGhpcy5lbmQ/LTE6dGhpcy5idWZmZXJbdGhpcy5wb3MrK119cmVhZE51bWJlcigpe2xldCBlLHQ9MDtkb3tjb25zdCBpPXRoaXMucmVhZEJ5dGUoKTtpZihpPDApdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJ1bmV4cGVjdGVkIEVPRiBpbiBiY21hcCIpO2U9ISgxMjgmaSk7dD10PDw3fDEyNyZpfXdoaWxlKCFlKTtyZXR1cm4gdH1yZWFkU2lnbmVkKCl7Y29uc3QgZT10aGlzLnJlYWROdW1iZXIoKTtyZXR1cm4gMSZlP34oZT4+PjEpOmU+Pj4xfXJlYWRIZXgoZSx0KXtlLnNldCh0aGlzLmJ1ZmZlci5zdWJhcnJheSh0aGlzLnBvcyx0aGlzLnBvcyt0KzEpKTt0aGlzLnBvcys9dCsxfXJlYWRIZXhOdW1iZXIoZSx0KXtsZXQgaTtjb25zdCBhPXRoaXMudG1wQnVmO2xldCByPTA7ZG97Y29uc3QgZT10aGlzLnJlYWRCeXRlKCk7aWYoZTwwKXRocm93IG5ldyBGb3JtYXRFcnJvcigidW5leHBlY3RlZCBFT0YgaW4gYmNtYXAiKTtpPSEoMTI4JmUpO2FbcisrXT0xMjcmZX13aGlsZSghaSk7bGV0IHM9dCxuPTAsbz0wO2Zvcig7cz49MDspe2Zvcig7bzw4JiZhLmxlbmd0aD4wOyl7bnw9YVstLXJdPDxvO28rPTd9ZVtzXT0yNTUmbjtzLS07bj4+PTg7by09OH19cmVhZEhleFNpZ25lZChlLHQpe3RoaXMucmVhZEhleE51bWJlcihlLHQpO2NvbnN0IGk9MSZlW3RdPzI1NTowO2xldCBhPTA7Zm9yKGxldCByPTA7cjw9dDtyKyspe2E9KDEmYSk8PDh8ZVtyXTtlW3JdPWE+PjFeaX19cmVhZFN0cmluZygpe2NvbnN0IGU9dGhpcy5yZWFkTnVtYmVyKCksdD1uZXcgQXJyYXkoZSk7Zm9yKGxldCBpPTA7aTxlO2krKyl0W2ldPXRoaXMucmVhZE51bWJlcigpO3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKC4uLnQpfX1jbGFzcyBCaW5hcnlDTWFwUmVhZGVye2FzeW5jIHByb2Nlc3MoZSx0LGkpe2NvbnN0IGE9bmV3IEJpbmFyeUNNYXBTdHJlYW0oZSkscj1hLnJlYWRCeXRlKCk7dC52ZXJ0aWNhbD0hISgxJnIpO2xldCBzPW51bGw7Y29uc3Qgbj1uZXcgVWludDhBcnJheShEdCksbz1uZXcgVWludDhBcnJheShEdCksZz1uZXcgVWludDhBcnJheShEdCksYz1uZXcgVWludDhBcnJheShEdCksbD1uZXcgVWludDhBcnJheShEdCk7bGV0IGgsQztmb3IoOyhDPWEucmVhZEJ5dGUoKSk+PTA7KXtjb25zdCBlPUM+PjU7aWYoNz09PWUpe3N3aXRjaCgzMSZDKXtjYXNlIDA6YS5yZWFkU3RyaW5nKCk7YnJlYWs7Y2FzZSAxOnM9YS5yZWFkU3RyaW5nKCl9Y29udGludWV9Y29uc3QgaT0hISgxNiZDKSxyPTE1JkM7aWYocisxPkR0KXRocm93IG5ldyBFcnJvcigiQmluYXJ5Q01hcFJlYWRlci5wcm9jZXNzOiBJbnZhbGlkIGRhdGFTaXplLiIpO2NvbnN0IFE9MSxFPWEucmVhZE51bWJlcigpO3N3aXRjaChlKXtjYXNlIDA6YS5yZWFkSGV4KG4scik7YS5yZWFkSGV4TnVtYmVyKG8scik7YWRkSGV4KG8sbixyKTt0LmFkZENvZGVzcGFjZVJhbmdlKHIrMSxoZXhUb0ludChuLHIpLGhleFRvSW50KG8scikpO2ZvcihsZXQgZT0xO2U8RTtlKyspe2luY0hleChvLHIpO2EucmVhZEhleE51bWJlcihuLHIpO2FkZEhleChuLG8scik7YS5yZWFkSGV4TnVtYmVyKG8scik7YWRkSGV4KG8sbixyKTt0LmFkZENvZGVzcGFjZVJhbmdlKHIrMSxoZXhUb0ludChuLHIpLGhleFRvSW50KG8scikpfWJyZWFrO2Nhc2UgMTphLnJlYWRIZXgobixyKTthLnJlYWRIZXhOdW1iZXIobyxyKTthZGRIZXgobyxuLHIpO2EucmVhZE51bWJlcigpO2ZvcihsZXQgZT0xO2U8RTtlKyspe2luY0hleChvLHIpO2EucmVhZEhleE51bWJlcihuLHIpO2FkZEhleChuLG8scik7YS5yZWFkSGV4TnVtYmVyKG8scik7YWRkSGV4KG8sbixyKTthLnJlYWROdW1iZXIoKX1icmVhaztjYXNlIDI6YS5yZWFkSGV4KGcscik7aD1hLnJlYWROdW1iZXIoKTt0Lm1hcE9uZShoZXhUb0ludChnLHIpLGgpO2ZvcihsZXQgZT0xO2U8RTtlKyspe2luY0hleChnLHIpO2lmKCFpKXthLnJlYWRIZXhOdW1iZXIobCxyKTthZGRIZXgoZyxsLHIpfWg9YS5yZWFkU2lnbmVkKCkrKGgrMSk7dC5tYXBPbmUoaGV4VG9JbnQoZyxyKSxoKX1icmVhaztjYXNlIDM6YS5yZWFkSGV4KG4scik7YS5yZWFkSGV4TnVtYmVyKG8scik7YWRkSGV4KG8sbixyKTtoPWEucmVhZE51bWJlcigpO3QubWFwQ2lkUmFuZ2UoaGV4VG9JbnQobixyKSxoZXhUb0ludChvLHIpLGgpO2ZvcihsZXQgZT0xO2U8RTtlKyspe2luY0hleChvLHIpO2lmKGkpbi5zZXQobyk7ZWxzZXthLnJlYWRIZXhOdW1iZXIobixyKTthZGRIZXgobixvLHIpfWEucmVhZEhleE51bWJlcihvLHIpO2FkZEhleChvLG4scik7aD1hLnJlYWROdW1iZXIoKTt0Lm1hcENpZFJhbmdlKGhleFRvSW50KG4sciksaGV4VG9JbnQobyxyKSxoKX1icmVhaztjYXNlIDQ6YS5yZWFkSGV4KGcsUSk7YS5yZWFkSGV4KGMscik7dC5tYXBPbmUoaGV4VG9JbnQoZyxRKSxoZXhUb1N0cihjLHIpKTtmb3IobGV0IGU9MTtlPEU7ZSsrKXtpbmNIZXgoZyxRKTtpZighaSl7YS5yZWFkSGV4TnVtYmVyKGwsUSk7YWRkSGV4KGcsbCxRKX1pbmNIZXgoYyxyKTthLnJlYWRIZXhTaWduZWQobCxyKTthZGRIZXgoYyxsLHIpO3QubWFwT25lKGhleFRvSW50KGcsUSksaGV4VG9TdHIoYyxyKSl9YnJlYWs7Y2FzZSA1OmEucmVhZEhleChuLFEpO2EucmVhZEhleE51bWJlcihvLFEpO2FkZEhleChvLG4sUSk7YS5yZWFkSGV4KGMscik7dC5tYXBCZlJhbmdlKGhleFRvSW50KG4sUSksaGV4VG9JbnQobyxRKSxoZXhUb1N0cihjLHIpKTtmb3IobGV0IGU9MTtlPEU7ZSsrKXtpbmNIZXgobyxRKTtpZihpKW4uc2V0KG8pO2Vsc2V7YS5yZWFkSGV4TnVtYmVyKG4sUSk7YWRkSGV4KG4sbyxRKX1hLnJlYWRIZXhOdW1iZXIobyxRKTthZGRIZXgobyxuLFEpO2EucmVhZEhleChjLHIpO3QubWFwQmZSYW5nZShoZXhUb0ludChuLFEpLGhleFRvSW50KG8sUSksaGV4VG9TdHIoYyxyKSl9YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYEJpbmFyeUNNYXBSZWFkZXIucHJvY2VzcyAtIHVua25vd24gdHlwZTogJHtlfWApfX1yZXR1cm4gcz9pKHMpOnR9fWNvbnN0IEZ0PW5ldyBVaW50OEFycmF5KDApO2NsYXNzIERlY29kZVN0cmVhbSBleHRlbmRzIEJhc2VTdHJlYW17Y29uc3RydWN0b3IoZSl7c3VwZXIoKTt0aGlzLl9yYXdNaW5CdWZmZXJMZW5ndGg9ZXx8MDt0aGlzLnBvcz0wO3RoaXMuYnVmZmVyTGVuZ3RoPTA7dGhpcy5lb2Y9ITE7dGhpcy5idWZmZXI9RnQ7dGhpcy5taW5CdWZmZXJMZW5ndGg9NTEyO2lmKGUpZm9yKDt0aGlzLm1pbkJ1ZmZlckxlbmd0aDxlOyl0aGlzLm1pbkJ1ZmZlckxlbmd0aCo9Mn1nZXQgaXNFbXB0eSgpe2Zvcig7IXRoaXMuZW9mJiYwPT09dGhpcy5idWZmZXJMZW5ndGg7KXRoaXMucmVhZEJsb2NrKCk7cmV0dXJuIDA9PT10aGlzLmJ1ZmZlckxlbmd0aH1lbnN1cmVCdWZmZXIoZSl7Y29uc3QgdD10aGlzLmJ1ZmZlcjtpZihlPD10LmJ5dGVMZW5ndGgpcmV0dXJuIHQ7bGV0IGk9dGhpcy5taW5CdWZmZXJMZW5ndGg7Zm9yKDtpPGU7KWkqPTI7Y29uc3QgYT1uZXcgVWludDhBcnJheShpKTthLnNldCh0KTtyZXR1cm4gdGhpcy5idWZmZXI9YX1nZXRCeXRlKCl7Y29uc3QgZT10aGlzLnBvcztmb3IoO3RoaXMuYnVmZmVyTGVuZ3RoPD1lOyl7aWYodGhpcy5lb2YpcmV0dXJuLTE7dGhpcy5yZWFkQmxvY2soKX1yZXR1cm4gdGhpcy5idWZmZXJbdGhpcy5wb3MrK119Z2V0Qnl0ZXMoZSx0PW51bGwpe2NvbnN0IGk9dGhpcy5wb3M7bGV0IGE7aWYoZSl7dGhpcy5lbnN1cmVCdWZmZXIoaStlKTthPWkrZTtmb3IoOyF0aGlzLmVvZiYmdGhpcy5idWZmZXJMZW5ndGg8YTspdGhpcy5yZWFkQmxvY2sodCk7Y29uc3Qgcj10aGlzLmJ1ZmZlckxlbmd0aDthPnImJihhPXIpfWVsc2V7Zm9yKDshdGhpcy5lb2Y7KXRoaXMucmVhZEJsb2NrKHQpO2E9dGhpcy5idWZmZXJMZW5ndGh9dGhpcy5wb3M9YTtyZXR1cm4gdGhpcy5idWZmZXIuc3ViYXJyYXkoaSxhKX1hc3luYyBnZXRJbWFnZURhdGEoZSx0PW51bGwpe2lmKCF0aGlzLmNhbkFzeW5jRGVjb2RlSW1hZ2VGcm9tQnVmZmVyKXJldHVybiB0aGlzLmdldEJ5dGVzKGUsdCk7Y29uc3QgaT1hd2FpdCB0aGlzLnN0cmVhbS5hc3luY0dldEJ5dGVzKCk7cmV0dXJuIHRoaXMuZGVjb2RlSW1hZ2UoaSx0KX1yZXNldCgpe3RoaXMucG9zPTB9bWFrZVN1YlN0cmVhbShlLHQsaT1udWxsKXtpZih2b2lkIDA9PT10KWZvcig7IXRoaXMuZW9mOyl0aGlzLnJlYWRCbG9jaygpO2Vsc2V7Y29uc3QgaT1lK3Q7Zm9yKDt0aGlzLmJ1ZmZlckxlbmd0aDw9aSYmIXRoaXMuZW9mOyl0aGlzLnJlYWRCbG9jaygpfXJldHVybiBuZXcgU3RyZWFtKHRoaXMuYnVmZmVyLGUsdCxpKX1nZXRCYXNlU3RyZWFtcygpe3JldHVybiB0aGlzLnN0cj90aGlzLnN0ci5nZXRCYXNlU3RyZWFtcygpOm51bGx9fWNsYXNzIFN0cmVhbXNTZXF1ZW5jZVN0cmVhbSBleHRlbmRzIERlY29kZVN0cmVhbXtjb25zdHJ1Y3RvcihlLHQ9bnVsbCl7ZT1lLmZpbHRlcigoZT0+ZSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pKTtsZXQgaT0wO2Zvcihjb25zdCB0IG9mIGUpaSs9dCBpbnN0YW5jZW9mIERlY29kZVN0cmVhbT90Ll9yYXdNaW5CdWZmZXJMZW5ndGg6dC5sZW5ndGg7c3VwZXIoaSk7dGhpcy5zdHJlYW1zPWU7dGhpcy5fb25FcnJvcj10fXJlYWRCbG9jaygpe2NvbnN0IGU9dGhpcy5zdHJlYW1zO2lmKDA9PT1lLmxlbmd0aCl7dGhpcy5lb2Y9ITA7cmV0dXJufWNvbnN0IHQ9ZS5zaGlmdCgpO2xldCBpO3RyeXtpPXQuZ2V0Qnl0ZXMoKX1jYXRjaChlKXtpZih0aGlzLl9vbkVycm9yKXt0aGlzLl9vbkVycm9yKGUsdC5kaWN0Py5vYmpJZCk7cmV0dXJufXRocm93IGV9Y29uc3QgYT10aGlzLmJ1ZmZlckxlbmd0aCxyPWEraS5sZW5ndGg7dGhpcy5lbnN1cmVCdWZmZXIocikuc2V0KGksYSk7dGhpcy5idWZmZXJMZW5ndGg9cn1nZXRCYXNlU3RyZWFtcygpe2NvbnN0IGU9W107Zm9yKGNvbnN0IHQgb2YgdGhpcy5zdHJlYW1zKXtjb25zdCBpPXQuZ2V0QmFzZVN0cmVhbXMoKTtpJiZlLnB1c2goLi4uaSl9cmV0dXJuIGUubGVuZ3RoPjA/ZTpudWxsfX1jbGFzcyBBc2NpaTg1U3RyZWFtIGV4dGVuZHMgRGVjb2RlU3RyZWFte2NvbnN0cnVjdG9yKGUsdCl7dCYmKHQqPS44KTtzdXBlcih0KTt0aGlzLnN0cj1lO3RoaXMuZGljdD1lLmRpY3Q7dGhpcy5pbnB1dD1uZXcgVWludDhBcnJheSg1KX1yZWFkQmxvY2soKXtjb25zdCBlPXRoaXMuc3RyO2xldCB0PWUuZ2V0Qnl0ZSgpO2Zvcig7aXNXaGl0ZVNwYWNlKHQpOyl0PWUuZ2V0Qnl0ZSgpO2lmKC0xPT09dHx8MTI2PT09dCl7dGhpcy5lb2Y9ITA7cmV0dXJufWNvbnN0IGk9dGhpcy5idWZmZXJMZW5ndGg7bGV0IGEscjtpZigxMjI9PT10KXthPXRoaXMuZW5zdXJlQnVmZmVyKGkrNCk7Zm9yKHI9MDtyPDQ7KytyKWFbaStyXT0wO3RoaXMuYnVmZmVyTGVuZ3RoKz00fWVsc2V7Y29uc3Qgcz10aGlzLmlucHV0O3NbMF09dDtmb3Iocj0xO3I8NTsrK3Ipe3Q9ZS5nZXRCeXRlKCk7Zm9yKDtpc1doaXRlU3BhY2UodCk7KXQ9ZS5nZXRCeXRlKCk7c1tyXT10O2lmKC0xPT09dHx8MTI2PT09dClicmVha31hPXRoaXMuZW5zdXJlQnVmZmVyKGkrci0xKTt0aGlzLmJ1ZmZlckxlbmd0aCs9ci0xO2lmKHI8NSl7Zm9yKDtyPDU7KytyKXNbcl09MTE3O3RoaXMuZW9mPSEwfWxldCBuPTA7Zm9yKHI9MDtyPDU7KytyKW49ODUqbisoc1tyXS0zMyk7Zm9yKHI9MztyPj0wOy0tcil7YVtpK3JdPTI1NSZuO24+Pj04fX19fWNsYXNzIEFzY2lpSGV4U3RyZWFtIGV4dGVuZHMgRGVjb2RlU3RyZWFte2NvbnN0cnVjdG9yKGUsdCl7dCYmKHQqPS41KTtzdXBlcih0KTt0aGlzLnN0cj1lO3RoaXMuZGljdD1lLmRpY3Q7dGhpcy5maXJzdERpZ2l0PS0xfXJlYWRCbG9jaygpe2NvbnN0IGU9dGhpcy5zdHIuZ2V0Qnl0ZXMoOGUzKTtpZighZS5sZW5ndGgpe3RoaXMuZW9mPSEwO3JldHVybn1jb25zdCB0PWUubGVuZ3RoKzE+PjEsaT10aGlzLmVuc3VyZUJ1ZmZlcih0aGlzLmJ1ZmZlckxlbmd0aCt0KTtsZXQgYT10aGlzLmJ1ZmZlckxlbmd0aCxyPXRoaXMuZmlyc3REaWdpdDtmb3IoY29uc3QgdCBvZiBlKXtsZXQgZTtpZih0Pj00OCYmdDw9NTcpZT0xNSZ0O2Vsc2V7aWYoISh0Pj02NSYmdDw9NzB8fHQ+PTk3JiZ0PD0xMDIpKXtpZig2Mj09PXQpe3RoaXMuZW9mPSEwO2JyZWFrfWNvbnRpbnVlfWU9OSsoMTUmdCl9aWYocjwwKXI9ZTtlbHNle2lbYSsrXT1yPDw0fGU7cj0tMX19aWYocj49MCYmdGhpcy5lb2Ype2lbYSsrXT1yPDw0O3I9LTF9dGhpcy5maXJzdERpZ2l0PXI7dGhpcy5idWZmZXJMZW5ndGg9YX19Y29uc3QgU3Q9LTEsa3Q9W1stMSwtMV0sWy0xLC0xXSxbNyw4XSxbNyw3XSxbNiw2XSxbNiw2XSxbNiw1XSxbNiw1XSxbNCwwXSxbNCwwXSxbNCwwXSxbNCwwXSxbNCwwXSxbNCwwXSxbNCwwXSxbNCwwXSxbMywxXSxbMywxXSxbMywxXSxbMywxXSxbMywxXSxbMywxXSxbMywxXSxbMywxXSxbMywxXSxbMywxXSxbMywxXSxbMywxXSxbMywxXSxbMywxXSxbMywxXSxbMywxXSxbMyw0XSxbMyw0XSxbMyw0XSxbMyw0XSxbMyw0XSxbMyw0XSxbMyw0XSxbMyw0XSxbMyw0XSxbMyw0XSxbMyw0XSxbMyw0XSxbMyw0XSxbMyw0XSxbMyw0XSxbMyw0XSxbMywzXSxbMywzXSxbMywzXSxbMywzXSxbMywzXSxbMywzXSxbMywzXSxbMywzXSxbMywzXSxbMywzXSxbMywzXSxbMywzXSxbMywzXSxbMywzXSxbMywzXSxbMywzXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXSxbMSwyXV0sUnQ9W1stMSwtMV0sWzEyLC0yXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWzExLDE3OTJdLFsxMSwxNzkyXSxbMTIsMTk4NF0sWzEyLDIwNDhdLFsxMiwyMTEyXSxbMTIsMjE3Nl0sWzEyLDIyNDBdLFsxMiwyMzA0XSxbMTEsMTg1Nl0sWzExLDE4NTZdLFsxMSwxOTIwXSxbMTEsMTkyMF0sWzEyLDIzNjhdLFsxMiwyNDMyXSxbMTIsMjQ5Nl0sWzEyLDI1NjBdXSxOdD1bWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbOCwyOV0sWzgsMjldLFs4LDMwXSxbOCwzMF0sWzgsNDVdLFs4LDQ1XSxbOCw0Nl0sWzgsNDZdLFs3LDIyXSxbNywyMl0sWzcsMjJdLFs3LDIyXSxbNywyM10sWzcsMjNdLFs3LDIzXSxbNywyM10sWzgsNDddLFs4LDQ3XSxbOCw0OF0sWzgsNDhdLFs2LDEzXSxbNiwxM10sWzYsMTNdLFs2LDEzXSxbNiwxM10sWzYsMTNdLFs2LDEzXSxbNiwxM10sWzcsMjBdLFs3LDIwXSxbNywyMF0sWzcsMjBdLFs4LDMzXSxbOCwzM10sWzgsMzRdLFs4LDM0XSxbOCwzNV0sWzgsMzVdLFs4LDM2XSxbOCwzNl0sWzgsMzddLFs4LDM3XSxbOCwzOF0sWzgsMzhdLFs3LDE5XSxbNywxOV0sWzcsMTldLFs3LDE5XSxbOCwzMV0sWzgsMzFdLFs4LDMyXSxbOCwzMl0sWzYsMV0sWzYsMV0sWzYsMV0sWzYsMV0sWzYsMV0sWzYsMV0sWzYsMV0sWzYsMV0sWzYsMTJdLFs2LDEyXSxbNiwxMl0sWzYsMTJdLFs2LDEyXSxbNiwxMl0sWzYsMTJdLFs2LDEyXSxbOCw1M10sWzgsNTNdLFs4LDU0XSxbOCw1NF0sWzcsMjZdLFs3LDI2XSxbNywyNl0sWzcsMjZdLFs4LDM5XSxbOCwzOV0sWzgsNDBdLFs4LDQwXSxbOCw0MV0sWzgsNDFdLFs4LDQyXSxbOCw0Ml0sWzgsNDNdLFs4LDQzXSxbOCw0NF0sWzgsNDRdLFs3LDIxXSxbNywyMV0sWzcsMjFdLFs3LDIxXSxbNywyOF0sWzcsMjhdLFs3LDI4XSxbNywyOF0sWzgsNjFdLFs4LDYxXSxbOCw2Ml0sWzgsNjJdLFs4LDYzXSxbOCw2M10sWzgsMF0sWzgsMF0sWzgsMzIwXSxbOCwzMjBdLFs4LDM4NF0sWzgsMzg0XSxbNSwxMF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTFdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs3LDI3XSxbNywyN10sWzcsMjddLFs3LDI3XSxbOCw1OV0sWzgsNTldLFs4LDYwXSxbOCw2MF0sWzksMTQ3Ml0sWzksMTUzNl0sWzksMTYwMF0sWzksMTcyOF0sWzcsMThdLFs3LDE4XSxbNywxOF0sWzcsMThdLFs3LDI0XSxbNywyNF0sWzcsMjRdLFs3LDI0XSxbOCw0OV0sWzgsNDldLFs4LDUwXSxbOCw1MF0sWzgsNTFdLFs4LDUxXSxbOCw1Ml0sWzgsNTJdLFs3LDI1XSxbNywyNV0sWzcsMjVdLFs3LDI1XSxbOCw1NV0sWzgsNTVdLFs4LDU2XSxbOCw1Nl0sWzgsNTddLFs4LDU3XSxbOCw1OF0sWzgsNThdLFs2LDE5Ml0sWzYsMTkyXSxbNiwxOTJdLFs2LDE5Ml0sWzYsMTkyXSxbNiwxOTJdLFs2LDE5Ml0sWzYsMTkyXSxbNiwxNjY0XSxbNiwxNjY0XSxbNiwxNjY0XSxbNiwxNjY0XSxbNiwxNjY0XSxbNiwxNjY0XSxbNiwxNjY0XSxbNiwxNjY0XSxbOCw0NDhdLFs4LDQ0OF0sWzgsNTEyXSxbOCw1MTJdLFs5LDcwNF0sWzksNzY4XSxbOCw2NDBdLFs4LDY0MF0sWzgsNTc2XSxbOCw1NzZdLFs5LDgzMl0sWzksODk2XSxbOSw5NjBdLFs5LDEwMjRdLFs5LDEwODhdLFs5LDExNTJdLFs5LDEyMTZdLFs5LDEyODBdLFs5LDEzNDRdLFs5LDE0MDhdLFs3LDI1Nl0sWzcsMjU2XSxbNywyNTZdLFs3LDI1Nl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsMl0sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzQsM10sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsMTI4XSxbNSw4XSxbNSw4XSxbNSw4XSxbNSw4XSxbNSw4XSxbNSw4XSxbNSw4XSxbNSw4XSxbNSw4XSxbNSw4XSxbNSw4XSxbNSw4XSxbNSw4XSxbNSw4XSxbNSw4XSxbNSw4XSxbNSw5XSxbNSw5XSxbNSw5XSxbNSw5XSxbNSw5XSxbNSw5XSxbNSw5XSxbNSw5XSxbNSw5XSxbNSw5XSxbNSw5XSxbNSw5XSxbNSw5XSxbNSw5XSxbNSw5XSxbNSw5XSxbNiwxNl0sWzYsMTZdLFs2LDE2XSxbNiwxNl0sWzYsMTZdLFs2LDE2XSxbNiwxNl0sWzYsMTZdLFs2LDE3XSxbNiwxN10sWzYsMTddLFs2LDE3XSxbNiwxN10sWzYsMTddLFs2LDE3XSxbNiwxN10sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNF0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzYsMTRdLFs2LDE0XSxbNiwxNF0sWzYsMTRdLFs2LDE0XSxbNiwxNF0sWzYsMTRdLFs2LDE0XSxbNiwxNV0sWzYsMTVdLFs2LDE1XSxbNiwxNV0sWzYsMTVdLFs2LDE1XSxbNiwxNV0sWzYsMTVdLFs1LDY0XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XSxbNCw3XV0sR3Q9W1stMSwtMV0sWy0xLC0xXSxbMTIsLTJdLFsxMiwtMl0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbMTEsMTc5Ml0sWzExLDE3OTJdLFsxMSwxNzkyXSxbMTEsMTc5Ml0sWzEyLDE5ODRdLFsxMiwxOTg0XSxbMTIsMjA0OF0sWzEyLDIwNDhdLFsxMiwyMTEyXSxbMTIsMjExMl0sWzEyLDIxNzZdLFsxMiwyMTc2XSxbMTIsMjI0MF0sWzEyLDIyNDBdLFsxMiwyMzA0XSxbMTIsMjMwNF0sWzExLDE4NTZdLFsxMSwxODU2XSxbMTEsMTg1Nl0sWzExLDE4NTZdLFsxMSwxOTIwXSxbMTEsMTkyMF0sWzExLDE5MjBdLFsxMSwxOTIwXSxbMTIsMjM2OF0sWzEyLDIzNjhdLFsxMiwyNDMyXSxbMTIsMjQzMl0sWzEyLDI0OTZdLFsxMiwyNDk2XSxbMTIsMjU2MF0sWzEyLDI1NjBdLFsxMCwxOF0sWzEwLDE4XSxbMTAsMThdLFsxMCwxOF0sWzEwLDE4XSxbMTAsMThdLFsxMCwxOF0sWzEwLDE4XSxbMTIsNTJdLFsxMiw1Ml0sWzEzLDY0MF0sWzEzLDcwNF0sWzEzLDc2OF0sWzEzLDgzMl0sWzEyLDU1XSxbMTIsNTVdLFsxMiw1Nl0sWzEyLDU2XSxbMTMsMTI4MF0sWzEzLDEzNDRdLFsxMywxNDA4XSxbMTMsMTQ3Ml0sWzEyLDU5XSxbMTIsNTldLFsxMiw2MF0sWzEyLDYwXSxbMTMsMTUzNl0sWzEzLDE2MDBdLFsxMSwyNF0sWzExLDI0XSxbMTEsMjRdLFsxMSwyNF0sWzExLDI1XSxbMTEsMjVdLFsxMSwyNV0sWzExLDI1XSxbMTMsMTY2NF0sWzEzLDE3MjhdLFsxMiwzMjBdLFsxMiwzMjBdLFsxMiwzODRdLFsxMiwzODRdLFsxMiw0NDhdLFsxMiw0NDhdLFsxMyw1MTJdLFsxMyw1NzZdLFsxMiw1M10sWzEyLDUzXSxbMTIsNTRdLFsxMiw1NF0sWzEzLDg5Nl0sWzEzLDk2MF0sWzEzLDEwMjRdLFsxMywxMDg4XSxbMTMsMTE1Ml0sWzEzLDEyMTZdLFsxMCw2NF0sWzEwLDY0XSxbMTAsNjRdLFsxMCw2NF0sWzEwLDY0XSxbMTAsNjRdLFsxMCw2NF0sWzEwLDY0XV0sTXQ9W1s4LDEzXSxbOCwxM10sWzgsMTNdLFs4LDEzXSxbOCwxM10sWzgsMTNdLFs4LDEzXSxbOCwxM10sWzgsMTNdLFs4LDEzXSxbOCwxM10sWzgsMTNdLFs4LDEzXSxbOCwxM10sWzgsMTNdLFs4LDEzXSxbMTEsMjNdLFsxMSwyM10sWzEyLDUwXSxbMTIsNTFdLFsxMiw0NF0sWzEyLDQ1XSxbMTIsNDZdLFsxMiw0N10sWzEyLDU3XSxbMTIsNThdLFsxMiw2MV0sWzEyLDI1Nl0sWzEwLDE2XSxbMTAsMTZdLFsxMCwxNl0sWzEwLDE2XSxbMTAsMTddLFsxMCwxN10sWzEwLDE3XSxbMTAsMTddLFsxMiw0OF0sWzEyLDQ5XSxbMTIsNjJdLFsxMiw2M10sWzEyLDMwXSxbMTIsMzFdLFsxMiwzMl0sWzEyLDMzXSxbMTIsNDBdLFsxMiw0MV0sWzExLDIyXSxbMTEsMjJdLFs4LDE0XSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzksMTVdLFs5LDE1XSxbOSwxNV0sWzksMTVdLFs5LDE1XSxbOSwxNV0sWzksMTVdLFs5LDE1XSxbMTIsMTI4XSxbMTIsMTkyXSxbMTIsMjZdLFsxMiwyN10sWzEyLDI4XSxbMTIsMjldLFsxMSwxOV0sWzExLDE5XSxbMTEsMjBdLFsxMSwyMF0sWzEyLDM0XSxbMTIsMzVdLFsxMiwzNl0sWzEyLDM3XSxbMTIsMzhdLFsxMiwzOV0sWzExLDIxXSxbMTEsMjFdLFsxMiw0Ml0sWzEyLDQzXSxbMTAsMF0sWzEwLDBdLFsxMCwwXSxbMTAsMF0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXV0sVXQ9W1stMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWzYsOV0sWzYsOF0sWzUsN10sWzUsN10sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNl0sWzQsNV0sWzQsNV0sWzQsNV0sWzQsNV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsMV0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzMsNF0sWzIsM10sWzIsM10sWzIsM10sWzIsM10sWzIsM10sWzIsM10sWzIsM10sWzIsM10sWzIsM10sWzIsM10sWzIsM10sWzIsM10sWzIsM10sWzIsM10sWzIsM10sWzIsM10sWzIsMl0sWzIsMl0sWzIsMl0sWzIsMl0sWzIsMl0sWzIsMl0sWzIsMl0sWzIsMl0sWzIsMl0sWzIsMl0sWzIsMl0sWzIsMl0sWzIsMl0sWzIsMl0sWzIsMl0sWzIsMl1dO2NsYXNzIENDSVRURmF4RGVjb2Rlcntjb25zdHJ1Y3RvcihlLHQ9e30pe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlPy5uZXh0KXRocm93IG5ldyBFcnJvcignQ0NJVFRGYXhEZWNvZGVyIC0gaW52YWxpZCAic291cmNlIiBwYXJhbWV0ZXIuJyk7dGhpcy5zb3VyY2U9ZTt0aGlzLmVvZj0hMTt0aGlzLmVuY29kaW5nPXQuS3x8MDt0aGlzLmVvbGluZT10LkVuZE9mTGluZXx8ITE7dGhpcy5ieXRlQWxpZ249dC5FbmNvZGVkQnl0ZUFsaWdufHwhMTt0aGlzLmNvbHVtbnM9dC5Db2x1bW5zfHwxNzI4O3RoaXMucm93cz10LlJvd3N8fDA7dGhpcy5lb2Jsb2NrPXQuRW5kT2ZCbG9jaz8/ITA7dGhpcy5ibGFjaz10LkJsYWNrSXMxfHwhMTt0aGlzLmNvZGluZ0xpbmU9bmV3IFVpbnQzMkFycmF5KHRoaXMuY29sdW1ucysxKTt0aGlzLnJlZkxpbmU9bmV3IFVpbnQzMkFycmF5KHRoaXMuY29sdW1ucysyKTt0aGlzLmNvZGluZ0xpbmVbMF09dGhpcy5jb2x1bW5zO3RoaXMuY29kaW5nUG9zPTA7dGhpcy5yb3c9MDt0aGlzLm5leHRMaW5lMkQ9dGhpcy5lbmNvZGluZzwwO3RoaXMuaW5wdXRCaXRzPTA7dGhpcy5pbnB1dEJ1Zj0wO3RoaXMub3V0cHV0Qml0cz0wO3RoaXMucm93c0RvbmU9ITE7bGV0IGk7Zm9yKDswPT09KGk9dGhpcy5fbG9va0JpdHMoMTIpKTspdGhpcy5fZWF0Qml0cygxKTsxPT09aSYmdGhpcy5fZWF0Qml0cygxMik7aWYodGhpcy5lbmNvZGluZz4wKXt0aGlzLm5leHRMaW5lMkQ9IXRoaXMuX2xvb2tCaXRzKDEpO3RoaXMuX2VhdEJpdHMoMSl9fXJlYWROZXh0Q2hhcigpe2lmKHRoaXMuZW9mKXJldHVybi0xO2NvbnN0IGU9dGhpcy5yZWZMaW5lLHQ9dGhpcy5jb2RpbmdMaW5lLGk9dGhpcy5jb2x1bW5zO2xldCBhLHIscyxuLG87aWYoMD09PXRoaXMub3V0cHV0Qml0cyl7dGhpcy5yb3dzRG9uZSYmKHRoaXMuZW9mPSEwKTtpZih0aGlzLmVvZilyZXR1cm4tMTt0aGlzLmVycj0hMTtsZXQgcyxvLGc7aWYodGhpcy5uZXh0TGluZTJEKXtmb3Iobj0wO3Rbbl08aTsrK24pZVtuXT10W25dO2VbbisrXT1pO2Vbbl09aTt0WzBdPTA7dGhpcy5jb2RpbmdQb3M9MDthPTA7cj0wO2Zvcig7dFt0aGlzLmNvZGluZ1Bvc108aTspe3M9dGhpcy5fZ2V0VHdvRGltQ29kZSgpO3N3aXRjaChzKXtjYXNlIDA6dGhpcy5fYWRkUGl4ZWxzKGVbYSsxXSxyKTtlW2ErMV08aSYmKGErPTIpO2JyZWFrO2Nhc2UgMTpzPW89MDtpZihyKXtkb3tzKz1nPXRoaXMuX2dldEJsYWNrQ29kZSgpfXdoaWxlKGc+PTY0KTtkb3tvKz1nPXRoaXMuX2dldFdoaXRlQ29kZSgpfXdoaWxlKGc+PTY0KX1lbHNle2Rve3MrPWc9dGhpcy5fZ2V0V2hpdGVDb2RlKCl9d2hpbGUoZz49NjQpO2Rve28rPWc9dGhpcy5fZ2V0QmxhY2tDb2RlKCl9d2hpbGUoZz49NjQpfXRoaXMuX2FkZFBpeGVscyh0W3RoaXMuY29kaW5nUG9zXStzLHIpO3RbdGhpcy5jb2RpbmdQb3NdPGkmJnRoaXMuX2FkZFBpeGVscyh0W3RoaXMuY29kaW5nUG9zXStvLDFecik7Zm9yKDtlW2FdPD10W3RoaXMuY29kaW5nUG9zXSYmZVthXTxpOylhKz0yO2JyZWFrO2Nhc2UgNzp0aGlzLl9hZGRQaXhlbHMoZVthXSszLHIpO3JePTE7aWYodFt0aGlzLmNvZGluZ1Bvc108aSl7KythO2Zvcig7ZVthXTw9dFt0aGlzLmNvZGluZ1Bvc10mJmVbYV08aTspYSs9Mn1icmVhaztjYXNlIDU6dGhpcy5fYWRkUGl4ZWxzKGVbYV0rMixyKTtyXj0xO2lmKHRbdGhpcy5jb2RpbmdQb3NdPGkpeysrYTtmb3IoO2VbYV08PXRbdGhpcy5jb2RpbmdQb3NdJiZlW2FdPGk7KWErPTJ9YnJlYWs7Y2FzZSAzOnRoaXMuX2FkZFBpeGVscyhlW2FdKzEscik7cl49MTtpZih0W3RoaXMuY29kaW5nUG9zXTxpKXsrK2E7Zm9yKDtlW2FdPD10W3RoaXMuY29kaW5nUG9zXSYmZVthXTxpOylhKz0yfWJyZWFrO2Nhc2UgMjp0aGlzLl9hZGRQaXhlbHMoZVthXSxyKTtyXj0xO2lmKHRbdGhpcy5jb2RpbmdQb3NdPGkpeysrYTtmb3IoO2VbYV08PXRbdGhpcy5jb2RpbmdQb3NdJiZlW2FdPGk7KWErPTJ9YnJlYWs7Y2FzZSA4OnRoaXMuX2FkZFBpeGVsc05lZyhlW2FdLTMscik7cl49MTtpZih0W3RoaXMuY29kaW5nUG9zXTxpKXthPjA/LS1hOisrYTtmb3IoO2VbYV08PXRbdGhpcy5jb2RpbmdQb3NdJiZlW2FdPGk7KWErPTJ9YnJlYWs7Y2FzZSA2OnRoaXMuX2FkZFBpeGVsc05lZyhlW2FdLTIscik7cl49MTtpZih0W3RoaXMuY29kaW5nUG9zXTxpKXthPjA/LS1hOisrYTtmb3IoO2VbYV08PXRbdGhpcy5jb2RpbmdQb3NdJiZlW2FdPGk7KWErPTJ9YnJlYWs7Y2FzZSA0OnRoaXMuX2FkZFBpeGVsc05lZyhlW2FdLTEscik7cl49MTtpZih0W3RoaXMuY29kaW5nUG9zXTxpKXthPjA/LS1hOisrYTtmb3IoO2VbYV08PXRbdGhpcy5jb2RpbmdQb3NdJiZlW2FdPGk7KWErPTJ9YnJlYWs7Y2FzZSBTdDp0aGlzLl9hZGRQaXhlbHMoaSwwKTt0aGlzLmVvZj0hMDticmVhaztkZWZhdWx0OmluZm8oImJhZCAyZCBjb2RlIik7dGhpcy5fYWRkUGl4ZWxzKGksMCk7dGhpcy5lcnI9ITB9fX1lbHNle3RbMF09MDt0aGlzLmNvZGluZ1Bvcz0wO3I9MDtmb3IoO3RbdGhpcy5jb2RpbmdQb3NdPGk7KXtzPTA7aWYocilkb3tzKz1nPXRoaXMuX2dldEJsYWNrQ29kZSgpfXdoaWxlKGc+PTY0KTtlbHNlIGRve3MrPWc9dGhpcy5fZ2V0V2hpdGVDb2RlKCl9d2hpbGUoZz49NjQpO3RoaXMuX2FkZFBpeGVscyh0W3RoaXMuY29kaW5nUG9zXStzLHIpO3JePTF9fWxldCBjPSExO3RoaXMuYnl0ZUFsaWduJiYodGhpcy5pbnB1dEJpdHMmPS04KTtpZih0aGlzLmVvYmxvY2t8fHRoaXMucm93IT09dGhpcy5yb3dzLTEpe3M9dGhpcy5fbG9va0JpdHMoMTIpO2lmKHRoaXMuZW9saW5lKWZvcig7cyE9PVN0JiYxIT09czspe3RoaXMuX2VhdEJpdHMoMSk7cz10aGlzLl9sb29rQml0cygxMil9ZWxzZSBmb3IoOzA9PT1zOyl7dGhpcy5fZWF0Qml0cygxKTtzPXRoaXMuX2xvb2tCaXRzKDEyKX1pZigxPT09cyl7dGhpcy5fZWF0Qml0cygxMik7Yz0hMH1lbHNlIHM9PT1TdCYmKHRoaXMuZW9mPSEwKX1lbHNlIHRoaXMucm93c0RvbmU9ITA7aWYoIXRoaXMuZW9mJiZ0aGlzLmVuY29kaW5nPjAmJiF0aGlzLnJvd3NEb25lKXt0aGlzLm5leHRMaW5lMkQ9IXRoaXMuX2xvb2tCaXRzKDEpO3RoaXMuX2VhdEJpdHMoMSl9aWYodGhpcy5lb2Jsb2NrJiZjJiZ0aGlzLmJ5dGVBbGlnbil7cz10aGlzLl9sb29rQml0cygxMik7aWYoMT09PXMpe3RoaXMuX2VhdEJpdHMoMTIpO2lmKHRoaXMuZW5jb2Rpbmc+MCl7dGhpcy5fbG9va0JpdHMoMSk7dGhpcy5fZWF0Qml0cygxKX1pZih0aGlzLmVuY29kaW5nPj0wKWZvcihuPTA7bjw0Oysrbil7cz10aGlzLl9sb29rQml0cygxMik7MSE9PXMmJmluZm8oImJhZCBydGMgY29kZTogIitzKTt0aGlzLl9lYXRCaXRzKDEyKTtpZih0aGlzLmVuY29kaW5nPjApe3RoaXMuX2xvb2tCaXRzKDEpO3RoaXMuX2VhdEJpdHMoMSl9fXRoaXMuZW9mPSEwfX1lbHNlIGlmKHRoaXMuZXJyJiZ0aGlzLmVvbGluZSl7Zm9yKDs7KXtzPXRoaXMuX2xvb2tCaXRzKDEzKTtpZihzPT09U3Qpe3RoaXMuZW9mPSEwO3JldHVybi0xfWlmKHM+PjE9PTEpYnJlYWs7dGhpcy5fZWF0Qml0cygxKX10aGlzLl9lYXRCaXRzKDEyKTtpZih0aGlzLmVuY29kaW5nPjApe3RoaXMuX2VhdEJpdHMoMSk7dGhpcy5uZXh0TGluZTJEPSEoMSZzKX19dGhpcy5vdXRwdXRCaXRzPXRbMF0+MD90W3RoaXMuY29kaW5nUG9zPTBdOnRbdGhpcy5jb2RpbmdQb3M9MV07dGhpcy5yb3crK31pZih0aGlzLm91dHB1dEJpdHM+PTgpe289MSZ0aGlzLmNvZGluZ1Bvcz8wOjI1NTt0aGlzLm91dHB1dEJpdHMtPTg7aWYoMD09PXRoaXMub3V0cHV0Qml0cyYmdFt0aGlzLmNvZGluZ1Bvc108aSl7dGhpcy5jb2RpbmdQb3MrKzt0aGlzLm91dHB1dEJpdHM9dFt0aGlzLmNvZGluZ1Bvc10tdFt0aGlzLmNvZGluZ1Bvcy0xXX19ZWxzZXtzPTg7bz0wO2Rve2lmKCJudW1iZXIiIT10eXBlb2YgdGhpcy5vdXRwdXRCaXRzKXRocm93IG5ldyBGb3JtYXRFcnJvcignSW52YWxpZCAvQ0NJVFRGYXhEZWNvZGUgZGF0YSwgIm91dHB1dEJpdHMiIG11c3QgYmUgYSBudW1iZXIuJyk7aWYodGhpcy5vdXRwdXRCaXRzPnMpe288PD1zOzEmdGhpcy5jb2RpbmdQb3N8fChvfD0yNTU+Pjgtcyk7dGhpcy5vdXRwdXRCaXRzLT1zO3M9MH1lbHNle288PD10aGlzLm91dHB1dEJpdHM7MSZ0aGlzLmNvZGluZ1Bvc3x8KG98PTI1NT4+OC10aGlzLm91dHB1dEJpdHMpO3MtPXRoaXMub3V0cHV0Qml0czt0aGlzLm91dHB1dEJpdHM9MDtpZih0W3RoaXMuY29kaW5nUG9zXTxpKXt0aGlzLmNvZGluZ1BvcysrO3RoaXMub3V0cHV0Qml0cz10W3RoaXMuY29kaW5nUG9zXS10W3RoaXMuY29kaW5nUG9zLTFdfWVsc2UgaWYocz4wKXtvPDw9cztzPTB9fX13aGlsZShzKX10aGlzLmJsYWNrJiYob149MjU1KTtyZXR1cm4gb31fYWRkUGl4ZWxzKGUsdCl7Y29uc3QgaT10aGlzLmNvZGluZ0xpbmU7bGV0IGE9dGhpcy5jb2RpbmdQb3M7aWYoZT5pW2FdKXtpZihlPnRoaXMuY29sdW1ucyl7aW5mbygicm93IGlzIHdyb25nIGxlbmd0aCIpO3RoaXMuZXJyPSEwO2U9dGhpcy5jb2x1bW5zfTEmYV50JiYrK2E7aVthXT1lfXRoaXMuY29kaW5nUG9zPWF9X2FkZFBpeGVsc05lZyhlLHQpe2NvbnN0IGk9dGhpcy5jb2RpbmdMaW5lO2xldCBhPXRoaXMuY29kaW5nUG9zO2lmKGU+aVthXSl7aWYoZT50aGlzLmNvbHVtbnMpe2luZm8oInJvdyBpcyB3cm9uZyBsZW5ndGgiKTt0aGlzLmVycj0hMDtlPXRoaXMuY29sdW1uc30xJmFedCYmKythO2lbYV09ZX1lbHNlIGlmKGU8aVthXSl7aWYoZTwwKXtpbmZvKCJpbnZhbGlkIGNvZGUiKTt0aGlzLmVycj0hMDtlPTB9Zm9yKDthPjAmJmU8aVthLTFdOyktLWE7aVthXT1lfXRoaXMuY29kaW5nUG9zPWF9X2ZpbmRUYWJsZUNvZGUoZSx0LGksYSl7Y29uc3Qgcj1hfHwwO2ZvcihsZXQgYT1lO2E8PXQ7KythKXtsZXQgZT10aGlzLl9sb29rQml0cyhhKTtpZihlPT09U3QpcmV0dXJuWyEwLDEsITFdO2E8dCYmKGU8PD10LWEpO2lmKCFyfHxlPj1yKXtjb25zdCB0PWlbZS1yXTtpZih0WzBdPT09YSl7dGhpcy5fZWF0Qml0cyhhKTtyZXR1cm5bITAsdFsxXSwhMF19fX1yZXR1cm5bITEsMCwhMV19X2dldFR3b0RpbUNvZGUoKXtsZXQgZSx0PTA7aWYodGhpcy5lb2Jsb2NrKXt0PXRoaXMuX2xvb2tCaXRzKDcpO2U9a3RbdF07aWYoZT8uWzBdPjApe3RoaXMuX2VhdEJpdHMoZVswXSk7cmV0dXJuIGVbMV19fWVsc2V7Y29uc3QgZT10aGlzLl9maW5kVGFibGVDb2RlKDEsNyxrdCk7aWYoZVswXSYmZVsyXSlyZXR1cm4gZVsxXX1pbmZvKCJCYWQgdHdvIGRpbSBjb2RlIik7cmV0dXJuIFN0fV9nZXRXaGl0ZUNvZGUoKXtsZXQgZSx0PTA7aWYodGhpcy5lb2Jsb2NrKXt0PXRoaXMuX2xvb2tCaXRzKDEyKTtpZih0PT09U3QpcmV0dXJuIDE7ZT10Pj41P050W3Q+PjNdOlJ0W3RdO2lmKGVbMF0+MCl7dGhpcy5fZWF0Qml0cyhlWzBdKTtyZXR1cm4gZVsxXX19ZWxzZXtsZXQgZT10aGlzLl9maW5kVGFibGVDb2RlKDEsOSxOdCk7aWYoZVswXSlyZXR1cm4gZVsxXTtlPXRoaXMuX2ZpbmRUYWJsZUNvZGUoMTEsMTIsUnQpO2lmKGVbMF0pcmV0dXJuIGVbMV19aW5mbygiYmFkIHdoaXRlIGNvZGUiKTt0aGlzLl9lYXRCaXRzKDEpO3JldHVybiAxfV9nZXRCbGFja0NvZGUoKXtsZXQgZSx0O2lmKHRoaXMuZW9ibG9jayl7ZT10aGlzLl9sb29rQml0cygxMyk7aWYoZT09PVN0KXJldHVybiAxO3Q9ZT4+Nz8hKGU+PjkpJiZlPj43P010WyhlPj4xKS02NF06VXRbZT4+N106R3RbZV07aWYodFswXT4wKXt0aGlzLl9lYXRCaXRzKHRbMF0pO3JldHVybiB0WzFdfX1lbHNle2xldCBlPXRoaXMuX2ZpbmRUYWJsZUNvZGUoMiw2LFV0KTtpZihlWzBdKXJldHVybiBlWzFdO2U9dGhpcy5fZmluZFRhYmxlQ29kZSg3LDEyLE10LDY0KTtpZihlWzBdKXJldHVybiBlWzFdO2U9dGhpcy5fZmluZFRhYmxlQ29kZSgxMCwxMyxHdCk7aWYoZVswXSlyZXR1cm4gZVsxXX1pbmZvKCJiYWQgYmxhY2sgY29kZSIpO3RoaXMuX2VhdEJpdHMoMSk7cmV0dXJuIDF9X2xvb2tCaXRzKGUpe2xldCB0O2Zvcig7dGhpcy5pbnB1dEJpdHM8ZTspe2lmKC0xPT09KHQ9dGhpcy5zb3VyY2UubmV4dCgpKSlyZXR1cm4gMD09PXRoaXMuaW5wdXRCaXRzP1N0OnRoaXMuaW5wdXRCdWY8PGUtdGhpcy5pbnB1dEJpdHMmNjU1MzU+PjE2LWU7dGhpcy5pbnB1dEJ1Zj10aGlzLmlucHV0QnVmPDw4fHQ7dGhpcy5pbnB1dEJpdHMrPTh9cmV0dXJuIHRoaXMuaW5wdXRCdWY+PnRoaXMuaW5wdXRCaXRzLWUmNjU1MzU+PjE2LWV9X2VhdEJpdHMoZSl7KHRoaXMuaW5wdXRCaXRzLT1lKTwwJiYodGhpcy5pbnB1dEJpdHM9MCl9fWNsYXNzIENDSVRURmF4U3RyZWFtIGV4dGVuZHMgRGVjb2RlU3RyZWFte2NvbnN0cnVjdG9yKGUsdCxpKXtzdXBlcih0KTt0aGlzLnN0cj1lO3RoaXMuZGljdD1lLmRpY3Q7aSBpbnN0YW5jZW9mIERpY3R8fChpPURpY3QuZW1wdHkpO2NvbnN0IGE9e25leHQ6KCk9PmUuZ2V0Qnl0ZSgpfTt0aGlzLmNjaXR0RmF4RGVjb2Rlcj1uZXcgQ0NJVFRGYXhEZWNvZGVyKGEse0s6aS5nZXQoIksiKSxFbmRPZkxpbmU6aS5nZXQoIkVuZE9mTGluZSIpLEVuY29kZWRCeXRlQWxpZ246aS5nZXQoIkVuY29kZWRCeXRlQWxpZ24iKSxDb2x1bW5zOmkuZ2V0KCJDb2x1bW5zIiksUm93czppLmdldCgiUm93cyIpLEVuZE9mQmxvY2s6aS5nZXQoIkVuZE9mQmxvY2siKSxCbGFja0lzMTppLmdldCgiQmxhY2tJczEiKX0pfXJlYWRCbG9jaygpe2Zvcig7IXRoaXMuZW9mOyl7Y29uc3QgZT10aGlzLmNjaXR0RmF4RGVjb2Rlci5yZWFkTmV4dENoYXIoKTtpZigtMT09PWUpe3RoaXMuZW9mPSEwO3JldHVybn10aGlzLmVuc3VyZUJ1ZmZlcih0aGlzLmJ1ZmZlckxlbmd0aCsxKTt0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlckxlbmd0aCsrXT1lfX19Y29uc3QgeHQ9bmV3IEludDMyQXJyYXkoWzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdKSxMdD1uZXcgSW50MzJBcnJheShbMyw0LDUsNiw3LDgsOSwxMCw2NTU0Nyw2NTU0OSw2NTU1MSw2NTU1MywxMzEwOTEsMTMxMDk1LDEzMTA5OSwxMzExMDMsMTk2NjQzLDE5NjY1MSwxOTY2NTksMTk2NjY3LDI2MjIxMSwyNjIyMjcsMjYyMjQzLDI2MjI1OSwzMjc4MTEsMzI3ODQzLDMyNzg3NSwzMjc5MDcsMjU4LDI1OCwyNThdKSxIdD1uZXcgSW50MzJBcnJheShbMSwyLDMsNCw2NTU0MSw2NTU0MywxMzEwODEsMTMxMDg1LDE5NjYyNSwxOTY2MzMsMjYyMTc3LDI2MjE5MywzMjc3NDUsMzI3Nzc3LDM5MzM0NSwzOTM0MDksNDU5MDA5LDQ1OTEzNyw1MjQ4MDEsNTI1MDU3LDU5MDg0OSw1OTEzNjEsNjU3NDA5LDY1ODQzMyw3MjQ5OTMsNzI3MDQxLDc5NDYyNSw3OTg3MjEsODY4MzUzLDg3NjU0NV0pLEp0PVtuZXcgSW50MzJBcnJheShbNDU5MDA4LDUyNDM2OCw1MjQzMDQsNTI0NTY4LDQ1OTAyNCw1MjQ0MDAsNTI0MzM2LDU5MDAxNiw0NTkwMTYsNTI0Mzg0LDUyNDMyMCw1ODk5ODQsNTI0Mjg4LDUyNDQxNiw1MjQzNTIsNTkwMDQ4LDQ1OTAxMiw1MjQzNzYsNTI0MzEyLDU4OTk2OCw0NTkwMjgsNTI0NDA4LDUyNDM0NCw1OTAwMzIsNDU5MDIwLDUyNDM5Miw1MjQzMjgsNTllNCw1MjQyOTYsNTI0NDI0LDUyNDM2MCw1OTAwNjQsNDU5MDEwLDUyNDM3Miw1MjQzMDgsNTI0NTcyLDQ1OTAyNiw1MjQ0MDQsNTI0MzQwLDU5MDAyNCw0NTkwMTgsNTI0Mzg4LDUyNDMyNCw1ODk5OTIsNTI0MjkyLDUyNDQyMCw1MjQzNTYsNTkwMDU2LDQ1OTAxNCw1MjQzODAsNTI0MzE2LDU4OTk3Niw0NTkwMzAsNTI0NDEyLDUyNDM0OCw1OTAwNDAsNDU5MDIyLDUyNDM5Niw1MjQzMzIsNTkwMDA4LDUyNDMwMCw1MjQ0MjgsNTI0MzY0LDU5MDA3Miw0NTkwMDksNTI0MzcwLDUyNDMwNiw1MjQ1NzAsNDU5MDI1LDUyNDQwMiw1MjQzMzgsNTkwMDIwLDQ1OTAxNyw1MjQzODYsNTI0MzIyLDU4OTk4OCw1MjQyOTAsNTI0NDE4LDUyNDM1NCw1OTAwNTIsNDU5MDEzLDUyNDM3OCw1MjQzMTQsNTg5OTcyLDQ1OTAyOSw1MjQ0MTAsNTI0MzQ2LDU5MDAzNiw0NTkwMjEsNTI0Mzk0LDUyNDMzMCw1OTAwMDQsNTI0Mjk4LDUyNDQyNiw1MjQzNjIsNTkwMDY4LDQ1OTAxMSw1MjQzNzQsNTI0MzEwLDUyNDU3NCw0NTkwMjcsNTI0NDA2LDUyNDM0Miw1OTAwMjgsNDU5MDE5LDUyNDM5MCw1MjQzMjYsNTg5OTk2LDUyNDI5NCw1MjQ0MjIsNTI0MzU4LDU5MDA2MCw0NTkwMTUsNTI0MzgyLDUyNDMxOCw1ODk5ODAsNDU5MDMxLDUyNDQxNCw1MjQzNTAsNTkwMDQ0LDQ1OTAyMyw1MjQzOTgsNTI0MzM0LDU5MDAxMiw1MjQzMDIsNTI0NDMwLDUyNDM2Niw1OTAwNzYsNDU5MDA4LDUyNDM2OSw1MjQzMDUsNTI0NTY5LDQ1OTAyNCw1MjQ0MDEsNTI0MzM3LDU5MDAxOCw0NTkwMTYsNTI0Mzg1LDUyNDMyMSw1ODk5ODYsNTI0Mjg5LDUyNDQxNyw1MjQzNTMsNTkwMDUwLDQ1OTAxMiw1MjQzNzcsNTI0MzEzLDU4OTk3MCw0NTkwMjgsNTI0NDA5LDUyNDM0NSw1OTAwMzQsNDU5MDIwLDUyNDM5Myw1MjQzMjksNTkwMDAyLDUyNDI5Nyw1MjQ0MjUsNTI0MzYxLDU5MDA2Niw0NTkwMTAsNTI0MzczLDUyNDMwOSw1MjQ1NzMsNDU5MDI2LDUyNDQwNSw1MjQzNDEsNTkwMDI2LDQ1OTAxOCw1MjQzODksNTI0MzI1LDU4OTk5NCw1MjQyOTMsNTI0NDIxLDUyNDM1Nyw1OTAwNTgsNDU5MDE0LDUyNDM4MSw1MjQzMTcsNTg5OTc4LDQ1OTAzMCw1MjQ0MTMsNTI0MzQ5LDU5MDA0Miw0NTkwMjIsNTI0Mzk3LDUyNDMzMyw1OTAwMTAsNTI0MzAxLDUyNDQyOSw1MjQzNjUsNTkwMDc0LDQ1OTAwOSw1MjQzNzEsNTI0MzA3LDUyNDU3MSw0NTkwMjUsNTI0NDAzLDUyNDMzOSw1OTAwMjIsNDU5MDE3LDUyNDM4Nyw1MjQzMjMsNTg5OTkwLDUyNDI5MSw1MjQ0MTksNTI0MzU1LDU5MDA1NCw0NTkwMTMsNTI0Mzc5LDUyNDMxNSw1ODk5NzQsNDU5MDI5LDUyNDQxMSw1MjQzNDcsNTkwMDM4LDQ1OTAyMSw1MjQzOTUsNTI0MzMxLDU5MDAwNiw1MjQyOTksNTI0NDI3LDUyNDM2Myw1OTAwNzAsNDU5MDExLDUyNDM3NSw1MjQzMTEsNTI0NTc1LDQ1OTAyNyw1MjQ0MDcsNTI0MzQzLDU5MDAzMCw0NTkwMTksNTI0MzkxLDUyNDMyNyw1ODk5OTgsNTI0Mjk1LDUyNDQyMyw1MjQzNTksNTkwMDYyLDQ1OTAxNSw1MjQzODMsNTI0MzE5LDU4OTk4Miw0NTkwMzEsNTI0NDE1LDUyNDM1MSw1OTAwNDYsNDU5MDIzLDUyNDM5OSw1MjQzMzUsNTkwMDE0LDUyNDMwMyw1MjQ0MzEsNTI0MzY3LDU5MDA3OCw0NTkwMDgsNTI0MzY4LDUyNDMwNCw1MjQ1NjgsNDU5MDI0LDUyNDQwMCw1MjQzMzYsNTkwMDE3LDQ1OTAxNiw1MjQzODQsNTI0MzIwLDU4OTk4NSw1MjQyODgsNTI0NDE2LDUyNDM1Miw1OTAwNDksNDU5MDEyLDUyNDM3Niw1MjQzMTIsNTg5OTY5LDQ1OTAyOCw1MjQ0MDgsNTI0MzQ0LDU5MDAzMyw0NTkwMjAsNTI0MzkyLDUyNDMyOCw1OTAwMDEsNTI0Mjk2LDUyNDQyNCw1MjQzNjAsNTkwMDY1LDQ1OTAxMCw1MjQzNzIsNTI0MzA4LDUyNDU3Miw0NTkwMjYsNTI0NDA0LDUyNDM0MCw1OTAwMjUsNDU5MDE4LDUyNDM4OCw1MjQzMjQsNTg5OTkzLDUyNDI5Miw1MjQ0MjAsNTI0MzU2LDU5MDA1Nyw0NTkwMTQsNTI0MzgwLDUyNDMxNiw1ODk5NzcsNDU5MDMwLDUyNDQxMiw1MjQzNDgsNTkwMDQxLDQ1OTAyMiw1MjQzOTYsNTI0MzMyLDU5MDAwOSw1MjQzMDAsNTI0NDI4LDUyNDM2NCw1OTAwNzMsNDU5MDA5LDUyNDM3MCw1MjQzMDYsNTI0NTcwLDQ1OTAyNSw1MjQ0MDIsNTI0MzM4LDU5MDAyMSw0NTkwMTcsNTI0Mzg2LDUyNDMyMiw1ODk5ODksNTI0MjkwLDUyNDQxOCw1MjQzNTQsNTkwMDUzLDQ1OTAxMyw1MjQzNzgsNTI0MzE0LDU4OTk3Myw0NTkwMjksNTI0NDEwLDUyNDM0Niw1OTAwMzcsNDU5MDIxLDUyNDM5NCw1MjQzMzAsNTkwMDA1LDUyNDI5OCw1MjQ0MjYsNTI0MzYyLDU5MDA2OSw0NTkwMTEsNTI0Mzc0LDUyNDMxMCw1MjQ1NzQsNDU5MDI3LDUyNDQwNiw1MjQzNDIsNTkwMDI5LDQ1OTAxOSw1MjQzOTAsNTI0MzI2LDU4OTk5Nyw1MjQyOTQsNTI0NDIyLDUyNDM1OCw1OTAwNjEsNDU5MDE1LDUyNDM4Miw1MjQzMTgsNTg5OTgxLDQ1OTAzMSw1MjQ0MTQsNTI0MzUwLDU5MDA0NSw0NTkwMjMsNTI0Mzk4LDUyNDMzNCw1OTAwMTMsNTI0MzAyLDUyNDQzMCw1MjQzNjYsNTkwMDc3LDQ1OTAwOCw1MjQzNjksNTI0MzA1LDUyNDU2OSw0NTkwMjQsNTI0NDAxLDUyNDMzNyw1OTAwMTksNDU5MDE2LDUyNDM4NSw1MjQzMjEsNTg5OTg3LDUyNDI4OSw1MjQ0MTcsNTI0MzUzLDU5MDA1MSw0NTkwMTIsNTI0Mzc3LDUyNDMxMyw1ODk5NzEsNDU5MDI4LDUyNDQwOSw1MjQzNDUsNTkwMDM1LDQ1OTAyMCw1MjQzOTMsNTI0MzI5LDU5MDAwMyw1MjQyOTcsNTI0NDI1LDUyNDM2MSw1OTAwNjcsNDU5MDEwLDUyNDM3Myw1MjQzMDksNTI0NTczLDQ1OTAyNiw1MjQ0MDUsNTI0MzQxLDU5MDAyNyw0NTkwMTgsNTI0Mzg5LDUyNDMyNSw1ODk5OTUsNTI0MjkzLDUyNDQyMSw1MjQzNTcsNTkwMDU5LDQ1OTAxNCw1MjQzODEsNTI0MzE3LDU4OTk3OSw0NTkwMzAsNTI0NDEzLDUyNDM0OSw1OTAwNDMsNDU5MDIyLDUyNDM5Nyw1MjQzMzMsNTkwMDExLDUyNDMwMSw1MjQ0MjksNTI0MzY1LDU5MDA3NSw0NTkwMDksNTI0MzcxLDUyNDMwNyw1MjQ1NzEsNDU5MDI1LDUyNDQwMyw1MjQzMzksNTkwMDIzLDQ1OTAxNyw1MjQzODcsNTI0MzIzLDU4OTk5MSw1MjQyOTEsNTI0NDE5LDUyNDM1NSw1OTAwNTUsNDU5MDEzLDUyNDM3OSw1MjQzMTUsNTg5OTc1LDQ1OTAyOSw1MjQ0MTEsNTI0MzQ3LDU5MDAzOSw0NTkwMjEsNTI0Mzk1LDUyNDMzMSw1OTAwMDcsNTI0Mjk5LDUyNDQyNyw1MjQzNjMsNTkwMDcxLDQ1OTAxMSw1MjQzNzUsNTI0MzExLDUyNDU3NSw0NTkwMjcsNTI0NDA3LDUyNDM0Myw1OTAwMzEsNDU5MDE5LDUyNDM5MSw1MjQzMjcsNTg5OTk5LDUyNDI5NSw1MjQ0MjMsNTI0MzU5LDU5MDA2Myw0NTkwMTUsNTI0MzgzLDUyNDMxOSw1ODk5ODMsNDU5MDMxLDUyNDQxNSw1MjQzNTEsNTkwMDQ3LDQ1OTAyMyw1MjQzOTksNTI0MzM1LDU5MDAxNSw1MjQzMDMsNTI0NDMxLDUyNDM2Nyw1OTAwNzldKSw5XSx2dD1bbmV3IEludDMyQXJyYXkoWzMyNzY4MCwzMjc2OTYsMzI3Njg4LDMyNzcwNCwzMjc2ODQsMzI3NzAwLDMyNzY5MiwzMjc3MDgsMzI3NjgyLDMyNzY5OCwzMjc2OTAsMzI3NzA2LDMyNzY4NiwzMjc3MDIsMzI3Njk0LDAsMzI3NjgxLDMyNzY5NywzMjc2ODksMzI3NzA1LDMyNzY4NSwzMjc3MDEsMzI3NjkzLDMyNzcwOSwzMjc2ODMsMzI3Njk5LDMyNzY5MSwzMjc3MDcsMzI3Njg3LDMyNzcwMywzMjc2OTUsMF0pLDVdO2NsYXNzIEZsYXRlU3RyZWFtIGV4dGVuZHMgRGVjb2RlU3RyZWFte2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIodCk7dGhpcy5zdHI9ZTt0aGlzLmRpY3Q9ZS5kaWN0O2NvbnN0IGk9ZS5nZXRCeXRlKCksYT1lLmdldEJ5dGUoKTtpZigtMT09PWl8fC0xPT09YSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYEludmFsaWQgaGVhZGVyIGluIGZsYXRlIHN0cmVhbTogJHtpfSwgJHthfWApO2lmKDghPSgxNSZpKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYFVua25vd24gY29tcHJlc3Npb24gbWV0aG9kIGluIGZsYXRlIHN0cmVhbTogJHtpfSwgJHthfWApO2lmKCgoaTw8OCkrYSklMzEhPTApdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBCYWQgRkNIRUNLIGluIGZsYXRlIHN0cmVhbTogJHtpfSwgJHthfWApO2lmKDMyJmEpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBGRElDVCBiaXQgc2V0IGluIGZsYXRlIHN0cmVhbTogJHtpfSwgJHthfWApO3RoaXMuY29kZVNpemU9MDt0aGlzLmNvZGVCdWY9MH1hc3luYyBnZXRJbWFnZURhdGEoZSx0KXtjb25zdCBpPWF3YWl0IHRoaXMuYXN5bmNHZXRCeXRlcygpO3JldHVybiBpPy5zdWJhcnJheSgwLGUpfHx0aGlzLmdldEJ5dGVzKGUpfWFzeW5jIGFzeW5jR2V0Qnl0ZXMoKXt0aGlzLnN0ci5yZXNldCgpO2NvbnN0IGU9dGhpcy5zdHIuZ2V0Qnl0ZXMoKTt0cnl7Y29uc3R7cmVhZGFibGU6dCx3cml0YWJsZTppfT1uZXcgRGVjb21wcmVzc2lvblN0cmVhbSgiZGVmbGF0ZSIpLGE9aS5nZXRXcml0ZXIoKTthd2FpdCBhLnJlYWR5O2Eud3JpdGUoZSkudGhlbigoYXN5bmMoKT0+e2F3YWl0IGEucmVhZHk7YXdhaXQgYS5jbG9zZSgpfSkpLmNhdGNoKCgoKT0+e30pKTtjb25zdCByPVtdO2xldCBzPTA7Zm9yIGF3YWl0KGNvbnN0IGUgb2YgdCl7ci5wdXNoKGUpO3MrPWUuYnl0ZUxlbmd0aH1jb25zdCBuPW5ldyBVaW50OEFycmF5KHMpO2xldCBvPTA7Zm9yKGNvbnN0IGUgb2Ygcil7bi5zZXQoZSxvKTtvKz1lLmJ5dGVMZW5ndGh9cmV0dXJuIG59Y2F0Y2h7dGhpcy5zdHI9bmV3IFN0cmVhbShlLDIsZS5sZW5ndGgsdGhpcy5zdHIuZGljdCk7dGhpcy5yZXNldCgpO3JldHVybiBudWxsfX1nZXQgaXNBc3luYygpe3JldHVybiEwfWdldEJpdHMoZSl7Y29uc3QgdD10aGlzLnN0cjtsZXQgaSxhPXRoaXMuY29kZVNpemUscj10aGlzLmNvZGVCdWY7Zm9yKDthPGU7KXtpZigtMT09PShpPXQuZ2V0Qnl0ZSgpKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkJhZCBlbmNvZGluZyBpbiBmbGF0ZSBzdHJlYW0iKTtyfD1pPDxhO2ErPTh9aT1yJigxPDxlKS0xO3RoaXMuY29kZUJ1Zj1yPj5lO3RoaXMuY29kZVNpemU9YS09ZTtyZXR1cm4gaX1nZXRDb2RlKGUpe2NvbnN0IHQ9dGhpcy5zdHIsaT1lWzBdLGE9ZVsxXTtsZXQgcixzPXRoaXMuY29kZVNpemUsbj10aGlzLmNvZGVCdWY7Zm9yKDtzPGEmJi0xIT09KHI9dC5nZXRCeXRlKCkpOyl7bnw9cjw8cztzKz04fWNvbnN0IG89aVtuJigxPDxhKS0xXSxnPW8+PjE2LGM9NjU1MzUmbztpZihnPDF8fHM8Zyl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkJhZCBlbmNvZGluZyBpbiBmbGF0ZSBzdHJlYW0iKTt0aGlzLmNvZGVCdWY9bj4+Zzt0aGlzLmNvZGVTaXplPXMtZztyZXR1cm4gY31nZW5lcmF0ZUh1ZmZtYW5UYWJsZShlKXtjb25zdCB0PWUubGVuZ3RoO2xldCBpLGE9MDtmb3IoaT0wO2k8dDsrK2kpZVtpXT5hJiYoYT1lW2ldKTtjb25zdCByPTE8PGEscz1uZXcgSW50MzJBcnJheShyKTtmb3IobGV0IG49MSxvPTAsZz0yO248PWE7KytuLG88PD0xLGc8PD0xKWZvcihsZXQgYT0wO2E8dDsrK2EpaWYoZVthXT09PW4pe2xldCBlPTAsdD1vO2ZvcihpPTA7aTxuOysraSl7ZT1lPDwxfDEmdDt0Pj49MX1mb3IoaT1lO2k8cjtpKz1nKXNbaV09bjw8MTZ8YTsrK299cmV0dXJuW3MsYV19I20oZSl7aW5mbyhlKTt0aGlzLmVvZj0hMH1yZWFkQmxvY2soKXtsZXQgZSx0LGk7Y29uc3QgYT10aGlzLnN0cjt0cnl7dD10aGlzLmdldEJpdHMoMyl9Y2F0Y2goZSl7dGhpcy4jbShlLm1lc3NhZ2UpO3JldHVybn0xJnQmJih0aGlzLmVvZj0hMCk7dD4+PTE7aWYoMD09PXQpe2xldCB0O2lmKC0xPT09KHQ9YS5nZXRCeXRlKCkpKXt0aGlzLiNtKCJCYWQgYmxvY2sgaGVhZGVyIGluIGZsYXRlIHN0cmVhbSIpO3JldHVybn1sZXQgaT10O2lmKC0xPT09KHQ9YS5nZXRCeXRlKCkpKXt0aGlzLiNtKCJCYWQgYmxvY2sgaGVhZGVyIGluIGZsYXRlIHN0cmVhbSIpO3JldHVybn1pfD10PDw4O2lmKC0xPT09KHQ9YS5nZXRCeXRlKCkpKXt0aGlzLiNtKCJCYWQgYmxvY2sgaGVhZGVyIGluIGZsYXRlIHN0cmVhbSIpO3JldHVybn1sZXQgcj10O2lmKC0xPT09KHQ9YS5nZXRCeXRlKCkpKXt0aGlzLiNtKCJCYWQgYmxvY2sgaGVhZGVyIGluIGZsYXRlIHN0cmVhbSIpO3JldHVybn1yfD10PDw4O2lmKHIhPT0oNjU1MzUmfmkpJiYoMCE9PWl8fDAhPT1yKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkJhZCB1bmNvbXByZXNzZWQgYmxvY2sgbGVuZ3RoIGluIGZsYXRlIHN0cmVhbSIpO3RoaXMuY29kZUJ1Zj0wO3RoaXMuY29kZVNpemU9MDtjb25zdCBzPXRoaXMuYnVmZmVyTGVuZ3RoLG49cytpO2U9dGhpcy5lbnN1cmVCdWZmZXIobik7dGhpcy5idWZmZXJMZW5ndGg9bjtpZigwPT09aSktMT09PWEucGVla0J5dGUoKSYmKHRoaXMuZW9mPSEwKTtlbHNle2NvbnN0IHQ9YS5nZXRCeXRlcyhpKTtlLnNldCh0LHMpO3QubGVuZ3RoPGkmJih0aGlzLmVvZj0hMCl9cmV0dXJufWxldCByLHM7aWYoMT09PXQpe3I9SnQ7cz12dH1lbHNle2lmKDIhPT10KXRocm93IG5ldyBGb3JtYXRFcnJvcigiVW5rbm93biBibG9jayB0eXBlIGluIGZsYXRlIHN0cmVhbSIpO3tjb25zdCBlPXRoaXMuZ2V0Qml0cyg1KSsyNTcsdD10aGlzLmdldEJpdHMoNSkrMSxhPXRoaXMuZ2V0Qml0cyg0KSs0LG49bmV3IFVpbnQ4QXJyYXkoeHQubGVuZ3RoKTtsZXQgbztmb3Iobz0wO288YTsrK28pblt4dFtvXV09dGhpcy5nZXRCaXRzKDMpO2NvbnN0IGc9dGhpcy5nZW5lcmF0ZUh1ZmZtYW5UYWJsZShuKTtpPTA7bz0wO2NvbnN0IGM9ZSt0LGw9bmV3IFVpbnQ4QXJyYXkoYyk7bGV0IGgsQyxRO2Zvcig7bzxjOyl7Y29uc3QgZT10aGlzLmdldENvZGUoZyk7aWYoMTY9PT1lKXtoPTI7Qz0zO1E9aX1lbHNlIGlmKDE3PT09ZSl7aD0zO0M9MztRPWk9MH1lbHNle2lmKDE4IT09ZSl7bFtvKytdPWk9ZTtjb250aW51ZX1oPTc7Qz0xMTtRPWk9MH1sZXQgdD10aGlzLmdldEJpdHMoaCkrQztmb3IoO3QtLSA+MDspbFtvKytdPVF9cj10aGlzLmdlbmVyYXRlSHVmZm1hblRhYmxlKGwuc3ViYXJyYXkoMCxlKSk7cz10aGlzLmdlbmVyYXRlSHVmZm1hblRhYmxlKGwuc3ViYXJyYXkoZSxjKSl9fWU9dGhpcy5idWZmZXI7bGV0IG49ZT9lLmxlbmd0aDowLG89dGhpcy5idWZmZXJMZW5ndGg7Zm9yKDs7KXtsZXQgdD10aGlzLmdldENvZGUocik7aWYodDwyNTYpe2lmKG8rMT49bil7ZT10aGlzLmVuc3VyZUJ1ZmZlcihvKzEpO249ZS5sZW5ndGh9ZVtvKytdPXQ7Y29udGludWV9aWYoMjU2PT09dCl7dGhpcy5idWZmZXJMZW5ndGg9bztyZXR1cm59dC09MjU3O3Q9THRbdF07bGV0IGE9dD4+MTY7YT4wJiYoYT10aGlzLmdldEJpdHMoYSkpO2k9KDY1NTM1JnQpK2E7dD10aGlzLmdldENvZGUocyk7dD1IdFt0XTthPXQ+PjE2O2E+MCYmKGE9dGhpcy5nZXRCaXRzKGEpKTtjb25zdCBnPSg2NTUzNSZ0KSthO2lmKG8raT49bil7ZT10aGlzLmVuc3VyZUJ1ZmZlcihvK2kpO249ZS5sZW5ndGh9Zm9yKGxldCB0PTA7dDxpOysrdCwrK28pZVtvXT1lW28tZ119fX1jb25zdCBZdD1be3FlOjIyMDE3LG5tcHM6MSxubHBzOjEsc3dpdGNoRmxhZzoxfSx7cWU6MTMzMTMsbm1wczoyLG5scHM6Nixzd2l0Y2hGbGFnOjB9LHtxZTo2MTQ1LG5tcHM6MyxubHBzOjksc3dpdGNoRmxhZzowfSx7cWU6Mjc1MyxubXBzOjQsbmxwczoxMixzd2l0Y2hGbGFnOjB9LHtxZToxMzEzLG5tcHM6NSxubHBzOjI5LHN3aXRjaEZsYWc6MH0se3FlOjU0NSxubXBzOjM4LG5scHM6MzMsc3dpdGNoRmxhZzowfSx7cWU6MjIwMTcsbm1wczo3LG5scHM6Nixzd2l0Y2hGbGFnOjF9LHtxZToyMTUwNSxubXBzOjgsbmxwczoxNCxzd2l0Y2hGbGFnOjB9LHtxZToxODQzMyxubXBzOjksbmxwczoxNCxzd2l0Y2hGbGFnOjB9LHtxZToxNDMzNyxubXBzOjEwLG5scHM6MTQsc3dpdGNoRmxhZzowfSx7cWU6MTIyODksbm1wczoxMSxubHBzOjE3LHN3aXRjaEZsYWc6MH0se3FlOjkyMTcsbm1wczoxMixubHBzOjE4LHN3aXRjaEZsYWc6MH0se3FlOjcxNjksbm1wczoxMyxubHBzOjIwLHN3aXRjaEZsYWc6MH0se3FlOjU2MzMsbm1wczoyOSxubHBzOjIxLHN3aXRjaEZsYWc6MH0se3FlOjIyMDE3LG5tcHM6MTUsbmxwczoxNCxzd2l0Y2hGbGFnOjF9LHtxZToyMTUwNSxubXBzOjE2LG5scHM6MTQsc3dpdGNoRmxhZzowfSx7cWU6MjA3Mzcsbm1wczoxNyxubHBzOjE1LHN3aXRjaEZsYWc6MH0se3FlOjE4NDMzLG5tcHM6MTgsbmxwczoxNixzd2l0Y2hGbGFnOjB9LHtxZToxNDMzNyxubXBzOjE5LG5scHM6MTcsc3dpdGNoRmxhZzowfSx7cWU6MTMzMTMsbm1wczoyMCxubHBzOjE4LHN3aXRjaEZsYWc6MH0se3FlOjEyMjg5LG5tcHM6MjEsbmxwczoxOSxzd2l0Y2hGbGFnOjB9LHtxZToxMDI0MSxubXBzOjIyLG5scHM6MTksc3dpdGNoRmxhZzowfSx7cWU6OTIxNyxubXBzOjIzLG5scHM6MjAsc3dpdGNoRmxhZzowfSx7cWU6ODcwNSxubXBzOjI0LG5scHM6MjEsc3dpdGNoRmxhZzowfSx7cWU6NzE2OSxubXBzOjI1LG5scHM6MjIsc3dpdGNoRmxhZzowfSx7cWU6NjE0NSxubXBzOjI2LG5scHM6MjMsc3dpdGNoRmxhZzowfSx7cWU6NTYzMyxubXBzOjI3LG5scHM6MjQsc3dpdGNoRmxhZzowfSx7cWU6NTEyMSxubXBzOjI4LG5scHM6MjUsc3dpdGNoRmxhZzowfSx7cWU6NDYwOSxubXBzOjI5LG5scHM6MjYsc3dpdGNoRmxhZzowfSx7cWU6NDM1MyxubXBzOjMwLG5scHM6Mjcsc3dpdGNoRmxhZzowfSx7cWU6Mjc1MyxubXBzOjMxLG5scHM6Mjgsc3dpdGNoRmxhZzowfSx7cWU6MjQ5NyxubXBzOjMyLG5scHM6Mjksc3dpdGNoRmxhZzowfSx7cWU6MjIwOSxubXBzOjMzLG5scHM6MzAsc3dpdGNoRmxhZzowfSx7cWU6MTMxMyxubXBzOjM0LG5scHM6MzEsc3dpdGNoRmxhZzowfSx7cWU6MTA4OSxubXBzOjM1LG5scHM6MzIsc3dpdGNoRmxhZzowfSx7cWU6NjczLG5tcHM6MzYsbmxwczozMyxzd2l0Y2hGbGFnOjB9LHtxZTo1NDUsbm1wczozNyxubHBzOjM0LHN3aXRjaEZsYWc6MH0se3FlOjMyMSxubXBzOjM4LG5scHM6MzUsc3dpdGNoRmxhZzowfSx7cWU6MjczLG5tcHM6MzksbmxwczozNixzd2l0Y2hGbGFnOjB9LHtxZToxMzMsbm1wczo0MCxubHBzOjM3LHN3aXRjaEZsYWc6MH0se3FlOjczLG5tcHM6NDEsbmxwczozOCxzd2l0Y2hGbGFnOjB9LHtxZTozNyxubXBzOjQyLG5scHM6Mzksc3dpdGNoRmxhZzowfSx7cWU6MjEsbm1wczo0MyxubHBzOjQwLHN3aXRjaEZsYWc6MH0se3FlOjksbm1wczo0NCxubHBzOjQxLHN3aXRjaEZsYWc6MH0se3FlOjUsbm1wczo0NSxubHBzOjQyLHN3aXRjaEZsYWc6MH0se3FlOjEsbm1wczo0NSxubHBzOjQzLHN3aXRjaEZsYWc6MH0se3FlOjIyMDE3LG5tcHM6NDYsbmxwczo0Nixzd2l0Y2hGbGFnOjB9XTtjbGFzcyBBcml0aG1ldGljRGVjb2Rlcntjb25zdHJ1Y3RvcihlLHQsaSl7dGhpcy5kYXRhPWU7dGhpcy5icD10O3RoaXMuZGF0YUVuZD1pO3RoaXMuY2hpZ2g9ZVt0XTt0aGlzLmNsb3c9MDt0aGlzLmJ5dGVJbigpO3RoaXMuY2hpZ2g9dGhpcy5jaGlnaDw8NyY2NTUzNXx0aGlzLmNsb3c+PjkmMTI3O3RoaXMuY2xvdz10aGlzLmNsb3c8PDcmNjU1MzU7dGhpcy5jdC09Nzt0aGlzLmE9MzI3Njh9Ynl0ZUluKCl7Y29uc3QgZT10aGlzLmRhdGE7bGV0IHQ9dGhpcy5icDtpZigyNTU9PT1lW3RdKWlmKGVbdCsxXT4xNDMpe3RoaXMuY2xvdys9NjUyODA7dGhpcy5jdD04fWVsc2V7dCsrO3RoaXMuY2xvdys9ZVt0XTw8OTt0aGlzLmN0PTc7dGhpcy5icD10fWVsc2V7dCsrO3RoaXMuY2xvdys9dDx0aGlzLmRhdGFFbmQ/ZVt0XTw8ODo2NTI4MDt0aGlzLmN0PTg7dGhpcy5icD10fWlmKHRoaXMuY2xvdz42NTUzNSl7dGhpcy5jaGlnaCs9dGhpcy5jbG93Pj4xNjt0aGlzLmNsb3cmPTY1NTM1fX1yZWFkQml0KGUsdCl7bGV0IGk9ZVt0XT4+MSxhPTEmZVt0XTtjb25zdCByPVl0W2ldLHM9ci5xZTtsZXQgbixvPXRoaXMuYS1zO2lmKHRoaXMuY2hpZ2g8cylpZihvPHMpe289cztuPWE7aT1yLm5tcHN9ZWxzZXtvPXM7bj0xXmE7MT09PXIuc3dpdGNoRmxhZyYmKGE9bik7aT1yLm5scHN9ZWxzZXt0aGlzLmNoaWdoLT1zO2lmKDMyNzY4Jm8pe3RoaXMuYT1vO3JldHVybiBhfWlmKG88cyl7bj0xXmE7MT09PXIuc3dpdGNoRmxhZyYmKGE9bik7aT1yLm5scHN9ZWxzZXtuPWE7aT1yLm5tcHN9fWRvezA9PT10aGlzLmN0JiZ0aGlzLmJ5dGVJbigpO288PD0xO3RoaXMuY2hpZ2g9dGhpcy5jaGlnaDw8MSY2NTUzNXx0aGlzLmNsb3c+PjE1JjE7dGhpcy5jbG93PXRoaXMuY2xvdzw8MSY2NTUzNTt0aGlzLmN0LS19d2hpbGUoISgzMjc2OCZvKSk7dGhpcy5hPW87ZVt0XT1pPDwxfGE7cmV0dXJuIG59fWNsYXNzIEpiaWcyRXJyb3IgZXh0ZW5kcyBjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlLCJKYmlnMkVycm9yIil9fWNsYXNzIENvbnRleHRDYWNoZXtnZXRDb250ZXh0cyhlKXtyZXR1cm4gZSBpbiB0aGlzP3RoaXNbZV06dGhpc1tlXT1uZXcgSW50OEFycmF5KDY1NTM2KX19Y2xhc3MgRGVjb2RpbmdDb250ZXh0e2NvbnN0cnVjdG9yKGUsdCxpKXt0aGlzLmRhdGE9ZTt0aGlzLnN0YXJ0PXQ7dGhpcy5lbmQ9aX1nZXQgZGVjb2Rlcigpe3JldHVybiBzaGFkb3codGhpcywiZGVjb2RlciIsbmV3IEFyaXRobWV0aWNEZWNvZGVyKHRoaXMuZGF0YSx0aGlzLnN0YXJ0LHRoaXMuZW5kKSl9Z2V0IGNvbnRleHRDYWNoZSgpe3JldHVybiBzaGFkb3codGhpcywiY29udGV4dENhY2hlIixuZXcgQ29udGV4dENhY2hlKX19ZnVuY3Rpb24gZGVjb2RlSW50ZWdlcihlLHQsaSl7Y29uc3QgYT1lLmdldENvbnRleHRzKHQpO2xldCByPTE7ZnVuY3Rpb24gcmVhZEJpdHMoZSl7bGV0IHQ9MDtmb3IobGV0IHM9MDtzPGU7cysrKXtjb25zdCBlPWkucmVhZEJpdChhLHIpO3I9cjwyNTY/cjw8MXxlOjUxMSYocjw8MXxlKXwyNTY7dD10PDwxfGV9cmV0dXJuIHQ+Pj4wfWNvbnN0IHM9cmVhZEJpdHMoMSksbj1yZWFkQml0cygxKT9yZWFkQml0cygxKT9yZWFkQml0cygxKT9yZWFkQml0cygxKT9yZWFkQml0cygxKT9yZWFkQml0cygzMikrNDQzNjpyZWFkQml0cygxMikrMzQwOnJlYWRCaXRzKDgpKzg0OnJlYWRCaXRzKDYpKzIwOnJlYWRCaXRzKDQpKzQ6cmVhZEJpdHMoMik7bGV0IG87MD09PXM/bz1uOm4+MCYmKG89LW4pO3JldHVybiBvPj0tMjE0NzQ4MzY0OCYmbzw9eXQ/bzpudWxsfWZ1bmN0aW9uIGRlY29kZUlBSUQoZSx0LGkpe2NvbnN0IGE9ZS5nZXRDb250ZXh0cygiSUFJRCIpO2xldCByPTE7Zm9yKGxldCBlPTA7ZTxpO2UrKyl7cj1yPDwxfHQucmVhZEJpdChhLHIpfXJldHVybiBpPDMxP3ImKDE8PGkpLTE6MjE0NzQ4MzY0NyZyfWNvbnN0IEt0PVsiU3ltYm9sRGljdGlvbmFyeSIsbnVsbCxudWxsLG51bGwsIkludGVybWVkaWF0ZVRleHRSZWdpb24iLG51bGwsIkltbWVkaWF0ZVRleHRSZWdpb24iLCJJbW1lZGlhdGVMb3NzbGVzc1RleHRSZWdpb24iLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwiUGF0dGVybkRpY3Rpb25hcnkiLG51bGwsbnVsbCxudWxsLCJJbnRlcm1lZGlhdGVIYWxmdG9uZVJlZ2lvbiIsbnVsbCwiSW1tZWRpYXRlSGFsZnRvbmVSZWdpb24iLCJJbW1lZGlhdGVMb3NzbGVzc0hhbGZ0b25lUmVnaW9uIixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwiSW50ZXJtZWRpYXRlR2VuZXJpY1JlZ2lvbiIsbnVsbCwiSW1tZWRpYXRlR2VuZXJpY1JlZ2lvbiIsIkltbWVkaWF0ZUxvc3NsZXNzR2VuZXJpY1JlZ2lvbiIsIkludGVybWVkaWF0ZUdlbmVyaWNSZWZpbmVtZW50UmVnaW9uIixudWxsLCJJbW1lZGlhdGVHZW5lcmljUmVmaW5lbWVudFJlZ2lvbiIsIkltbWVkaWF0ZUxvc3NsZXNzR2VuZXJpY1JlZmluZW1lbnRSZWdpb24iLG51bGwsbnVsbCxudWxsLG51bGwsIlBhZ2VJbmZvcm1hdGlvbiIsIkVuZE9mUGFnZSIsIkVuZE9mU3RyaXBlIiwiRW5kT2ZGaWxlIiwiUHJvZmlsZXMiLCJUYWJsZXMiLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwiRXh0ZW5zaW9uIl0sVHQ9W1t7eDotMSx5Oi0yfSx7eDowLHk6LTJ9LHt4OjEseTotMn0se3g6LTIseTotMX0se3g6LTEseTotMX0se3g6MCx5Oi0xfSx7eDoxLHk6LTF9LHt4OjIseTotMX0se3g6LTQseTowfSx7eDotMyx5OjB9LHt4Oi0yLHk6MH0se3g6LTEseTowfV0sW3t4Oi0xLHk6LTJ9LHt4OjAseTotMn0se3g6MSx5Oi0yfSx7eDoyLHk6LTJ9LHt4Oi0yLHk6LTF9LHt4Oi0xLHk6LTF9LHt4OjAseTotMX0se3g6MSx5Oi0xfSx7eDoyLHk6LTF9LHt4Oi0zLHk6MH0se3g6LTIseTowfSx7eDotMSx5OjB9XSxbe3g6LTEseTotMn0se3g6MCx5Oi0yfSx7eDoxLHk6LTJ9LHt4Oi0yLHk6LTF9LHt4Oi0xLHk6LTF9LHt4OjAseTotMX0se3g6MSx5Oi0xfSx7eDotMix5OjB9LHt4Oi0xLHk6MH1dLFt7eDotMyx5Oi0xfSx7eDotMix5Oi0xfSx7eDotMSx5Oi0xfSx7eDowLHk6LTF9LHt4OjEseTotMX0se3g6LTQseTowfSx7eDotMyx5OjB9LHt4Oi0yLHk6MH0se3g6LTEseTowfV1dLHF0PVt7Y29kaW5nOlt7eDowLHk6LTF9LHt4OjEseTotMX0se3g6LTEseTowfV0scmVmZXJlbmNlOlt7eDowLHk6LTF9LHt4OjEseTotMX0se3g6LTEseTowfSx7eDowLHk6MH0se3g6MSx5OjB9LHt4Oi0xLHk6MX0se3g6MCx5OjF9LHt4OjEseToxfV19LHtjb2Rpbmc6W3t4Oi0xLHk6LTF9LHt4OjAseTotMX0se3g6MSx5Oi0xfSx7eDotMSx5OjB9XSxyZWZlcmVuY2U6W3t4OjAseTotMX0se3g6LTEseTowfSx7eDowLHk6MH0se3g6MSx5OjB9LHt4OjAseToxfSx7eDoxLHk6MX1dfV0sT3Q9WzM5NzE3LDE5NDEsMjI5LDQwNV0sUHQ9WzMyLDhdO2Z1bmN0aW9uIGRlY29kZUJpdG1hcChlLHQsaSxhLHIscyxuLG8pe2lmKGUpe3JldHVybiBkZWNvZGVNTVJCaXRtYXAobmV3IFJlYWRlcihvLmRhdGEsby5zdGFydCxvLmVuZCksdCxpLCExKX1pZigwPT09YSYmIXMmJiFyJiY0PT09bi5sZW5ndGgmJjM9PT1uWzBdLngmJi0xPT09blswXS55JiYtMz09PW5bMV0ueCYmLTE9PT1uWzFdLnkmJjI9PT1uWzJdLngmJi0yPT09blsyXS55JiYtMj09PW5bM10ueCYmLTI9PT1uWzNdLnkpcmV0dXJuIGZ1bmN0aW9uIGRlY29kZUJpdG1hcFRlbXBsYXRlMChlLHQsaSl7Y29uc3QgYT1pLmRlY29kZXIscj1pLmNvbnRleHRDYWNoZS5nZXRDb250ZXh0cygiR0IiKSxzPVtdO2xldCBuLG8sZyxjLGwsaCxDO2ZvcihvPTA7bzx0O28rKyl7bD1zW29dPW5ldyBVaW50OEFycmF5KGUpO2g9bzwxP2w6c1tvLTFdO0M9bzwyP2w6c1tvLTJdO249Q1swXTw8MTN8Q1sxXTw8MTJ8Q1syXTw8MTF8aFswXTw8N3xoWzFdPDw2fGhbMl08PDV8aFszXTw8NDtmb3IoZz0wO2c8ZTtnKyspe2xbZ109Yz1hLnJlYWRCaXQocixuKTtuPSgzMTczNSZuKTw8MXwoZyszPGU/Q1tnKzNdPDwxMTowKXwoZys0PGU/aFtnKzRdPDw0OjApfGN9fXJldHVybiBzfSh0LGksbyk7Y29uc3QgZz0hIXMsYz1UdFthXS5jb25jYXQobik7Yy5zb3J0KChmdW5jdGlvbihlLHQpe3JldHVybiBlLnktdC55fHxlLngtdC54fSkpO2NvbnN0IGw9Yy5sZW5ndGgsaD1uZXcgSW50OEFycmF5KGwpLEM9bmV3IEludDhBcnJheShsKSxRPVtdO2xldCBFLHUsZD0wLGY9MCxwPTAsbT0wO2Zvcih1PTA7dTxsO3UrKyl7aFt1XT1jW3VdLng7Q1t1XT1jW3VdLnk7Zj1NYXRoLm1pbihmLGNbdV0ueCk7cD1NYXRoLm1heChwLGNbdV0ueCk7bT1NYXRoLm1pbihtLGNbdV0ueSk7dTxsLTEmJmNbdV0ueT09PWNbdSsxXS55JiZjW3VdLng9PT1jW3UrMV0ueC0xP2R8PTE8PGwtMS11OlEucHVzaCh1KX1jb25zdCB5PVEubGVuZ3RoLHc9bmV3IEludDhBcnJheSh5KSxiPW5ldyBJbnQ4QXJyYXkoeSksRD1uZXcgVWludDE2QXJyYXkoeSk7Zm9yKEU9MDtFPHk7RSsrKXt1PVFbRV07d1tFXT1jW3VdLng7YltFXT1jW3VdLnk7RFtFXT0xPDxsLTEtdX1jb25zdCBTPS1mLGs9LW0sUj10LXAsTj1PdFthXTtsZXQgRz1uZXcgVWludDhBcnJheSh0KTtjb25zdCBNPVtdLFU9by5kZWNvZGVyLHg9by5jb250ZXh0Q2FjaGUuZ2V0Q29udGV4dHMoIkdCIik7bGV0IEwsSCxKLHYsWSxLPTAsVD0wO2ZvcihsZXQgZT0wO2U8aTtlKyspe2lmKHIpe0tePVUucmVhZEJpdCh4LE4pO2lmKEspe00ucHVzaChHKTtjb250aW51ZX19Rz1uZXcgVWludDhBcnJheShHKTtNLnB1c2goRyk7Zm9yKEw9MDtMPHQ7TCsrKXtpZihnJiZzW2VdW0xdKXtHW0xdPTA7Y29udGludWV9aWYoTD49UyYmTDxSJiZlPj1rKXtUPVQ8PDEmZDtmb3IodT0wO3U8eTt1Kyspe0g9ZStiW3VdO0o9TCt3W3VdO3Y9TVtIXVtKXTtpZih2KXt2PURbdV07VHw9dn19fWVsc2V7VD0wO1k9bC0xO2Zvcih1PTA7dTxsO3UrKyxZLS0pe0o9TCtoW3VdO2lmKEo+PTAmJko8dCl7SD1lK0NbdV07aWYoSD49MCl7dj1NW0hdW0pdO3YmJihUfD12PDxZKX19fX1jb25zdCBpPVUucmVhZEJpdCh4LFQpO0dbTF09aX19cmV0dXJuIE19ZnVuY3Rpb24gZGVjb2RlUmVmaW5lbWVudChlLHQsaSxhLHIscyxuLG8sZyl7bGV0IGM9cXRbaV0uY29kaW5nOzA9PT1pJiYoYz1jLmNvbmNhdChbb1swXV0pKTtjb25zdCBsPWMubGVuZ3RoLGg9bmV3IEludDMyQXJyYXkobCksQz1uZXcgSW50MzJBcnJheShsKTtsZXQgUTtmb3IoUT0wO1E8bDtRKyspe2hbUV09Y1tRXS54O0NbUV09Y1tRXS55fWxldCBFPXF0W2ldLnJlZmVyZW5jZTswPT09aSYmKEU9RS5jb25jYXQoW29bMV1dKSk7Y29uc3QgdT1FLmxlbmd0aCxkPW5ldyBJbnQzMkFycmF5KHUpLGY9bmV3IEludDMyQXJyYXkodSk7Zm9yKFE9MDtRPHU7USsrKXtkW1FdPUVbUV0ueDtmW1FdPUVbUV0ueX1jb25zdCBwPWFbMF0ubGVuZ3RoLG09YS5sZW5ndGgseT1QdFtpXSx3PVtdLGI9Zy5kZWNvZGVyLEQ9Zy5jb250ZXh0Q2FjaGUuZ2V0Q29udGV4dHMoIkdSIik7bGV0IFM9MDtmb3IobGV0IGk9MDtpPHQ7aSsrKXtpZihuKXtTXj1iLnJlYWRCaXQoRCx5KTtpZihTKXRocm93IG5ldyBKYmlnMkVycm9yKCJwcmVkaWN0aW9uIGlzIG5vdCBzdXBwb3J0ZWQiKX1jb25zdCB0PW5ldyBVaW50OEFycmF5KGUpO3cucHVzaCh0KTtmb3IobGV0IG49MDtuPGU7bisrKXtsZXQgbyxnLGM9MDtmb3IoUT0wO1E8bDtRKyspe289aStDW1FdO2c9bitoW1FdO288MHx8ZzwwfHxnPj1lP2M8PD0xOmM9Yzw8MXx3W29dW2ddfWZvcihRPTA7UTx1O1ErKyl7bz1pK2ZbUV0tcztnPW4rZFtRXS1yO288MHx8bz49bXx8ZzwwfHxnPj1wP2M8PD0xOmM9Yzw8MXxhW29dW2ddfWNvbnN0IEU9Yi5yZWFkQml0KEQsYyk7dFtuXT1FfX1yZXR1cm4gd31mdW5jdGlvbiBkZWNvZGVUZXh0UmVnaW9uKGUsdCxpLGEscixzLG4sbyxnLGMsbCxoLEMsUSxFLHUsZCxmLHApe2lmKGUmJnQpdGhyb3cgbmV3IEpiaWcyRXJyb3IoInJlZmluZW1lbnQgd2l0aCBIdWZmbWFuIGlzIG5vdCBzdXBwb3J0ZWQiKTtjb25zdCBtPVtdO2xldCB5LHc7Zm9yKHk9MDt5PGE7eSsrKXt3PW5ldyBVaW50OEFycmF5KGkpO2lmKHIpZm9yKGxldCBlPTA7ZTxpO2UrKyl3W2VdPXI7bS5wdXNoKHcpfWNvbnN0IGI9ZC5kZWNvZGVyLEQ9ZC5jb250ZXh0Q2FjaGU7bGV0IFM9ZT8tUS50YWJsZURlbHRhVC5kZWNvZGUocCk6LWRlY29kZUludGVnZXIoRCwiSUFEVCIsYiksaz0wO3k9MDtmb3IoO3k8czspe1MrPWU/US50YWJsZURlbHRhVC5kZWNvZGUocCk6ZGVjb2RlSW50ZWdlcihELCJJQURUIixiKTtrKz1lP1EudGFibGVGaXJzdFMuZGVjb2RlKHApOmRlY29kZUludGVnZXIoRCwiSUFGUyIsYik7bGV0IGE9aztmb3IoOzspe2xldCByPTA7bj4xJiYocj1lP3AucmVhZEJpdHMoZik6ZGVjb2RlSW50ZWdlcihELCJJQUlUIixiKSk7Y29uc3Qgcz1uKlMrcixrPWU/US5zeW1ib2xJRFRhYmxlLmRlY29kZShwKTpkZWNvZGVJQUlEKEQsYixnKSxSPXQmJihlP3AucmVhZEJpdCgpOmRlY29kZUludGVnZXIoRCwiSUFSSSIsYikpO2xldCBOPW9ba10sRz1OWzBdLmxlbmd0aCxNPU4ubGVuZ3RoO2lmKFIpe2NvbnN0IGU9ZGVjb2RlSW50ZWdlcihELCJJQVJEVyIsYiksdD1kZWNvZGVJbnRlZ2VyKEQsIklBUkRIIixiKTtHKz1lO00rPXQ7Tj1kZWNvZGVSZWZpbmVtZW50KEcsTSxFLE4sKGU+PjEpK2RlY29kZUludGVnZXIoRCwiSUFSRFgiLGIpLCh0Pj4xKStkZWNvZGVJbnRlZ2VyKEQsIklBUkRZIixiKSwhMSx1LGQpfWxldCBVPTA7Yz8xJmg/VT1NLTE6YSs9TS0xOmg+MT9hKz1HLTE6VT1HLTE7Y29uc3QgeD1zLSgxJmg/MDpNLTEpLEw9YS0oMiZoP0ctMTowKTtsZXQgSCxKLHY7aWYoYylmb3IoSD0wO0g8TTtIKyspe3c9bVtMK0hdO2lmKCF3KWNvbnRpbnVlO3Y9TltIXTtjb25zdCBlPU1hdGgubWluKGkteCxHKTtzd2l0Y2goQyl7Y2FzZSAwOmZvcihKPTA7SjxlO0orKyl3W3grSl18PXZbSl07YnJlYWs7Y2FzZSAyOmZvcihKPTA7SjxlO0orKyl3W3grSl1ePXZbSl07YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgSmJpZzJFcnJvcihgb3BlcmF0b3IgJHtDfSBpcyBub3Qgc3VwcG9ydGVkYCl9fWVsc2UgZm9yKEo9MDtKPE07SisrKXt3PW1beCtKXTtpZih3KXt2PU5bSl07c3dpdGNoKEMpe2Nhc2UgMDpmb3IoSD0wO0g8RztIKyspd1tMK0hdfD12W0hdO2JyZWFrO2Nhc2UgMjpmb3IoSD0wO0g8RztIKyspd1tMK0hdXj12W0hdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEpiaWcyRXJyb3IoYG9wZXJhdG9yICR7Q30gaXMgbm90IHN1cHBvcnRlZGApfX19eSsrO2NvbnN0IFk9ZT9RLnRhYmxlRGVsdGFTLmRlY29kZShwKTpkZWNvZGVJbnRlZ2VyKEQsIklBRFMiLGIpO2lmKG51bGw9PT1ZKWJyZWFrO2ErPVUrWStsfX1yZXR1cm4gbX1mdW5jdGlvbiByZWFkU2VnbWVudEhlYWRlcihlLHQpe2NvbnN0IGk9e307aS5udW1iZXI9cmVhZFVpbnQzMihlLHQpO2NvbnN0IGE9ZVt0KzRdLHI9NjMmYTtpZighS3Rbcl0pdGhyb3cgbmV3IEpiaWcyRXJyb3IoImludmFsaWQgc2VnbWVudCB0eXBlOiAiK3IpO2kudHlwZT1yO2kudHlwZU5hbWU9S3Rbcl07aS5kZWZlcnJlZE5vblJldGFpbj0hISgxMjgmYSk7Y29uc3Qgcz0hISg2NCZhKSxuPWVbdCs1XTtsZXQgbz1uPj41Jjc7Y29uc3QgZz1bMzEmbl07bGV0IGM9dCs2O2lmKDc9PT1uKXtvPTUzNjg3MDkxMSZyZWFkVWludDMyKGUsYy0xKTtjKz0zO2xldCB0PW8rNz4+MztnWzBdPWVbYysrXTtmb3IoOy0tdD4wOylnLnB1c2goZVtjKytdKX1lbHNlIGlmKDU9PT1ufHw2PT09bil0aHJvdyBuZXcgSmJpZzJFcnJvcigiaW52YWxpZCByZWZlcnJlZC10byBmbGFncyIpO2kucmV0YWluQml0cz1nO2xldCBsPTQ7aS5udW1iZXI8PTI1Nj9sPTE6aS5udW1iZXI8PTY1NTM2JiYobD0yKTtjb25zdCBoPVtdO2xldCBDLFE7Zm9yKEM9MDtDPG87QysrKXtsZXQgdDt0PTE9PT1sP2VbY106Mj09PWw/cmVhZFVpbnQxNihlLGMpOnJlYWRVaW50MzIoZSxjKTtoLnB1c2godCk7Yys9bH1pLnJlZmVycmVkVG89aDtpZihzKXtpLnBhZ2VBc3NvY2lhdGlvbj1yZWFkVWludDMyKGUsYyk7Yys9NH1lbHNlIGkucGFnZUFzc29jaWF0aW9uPWVbYysrXTtpLmxlbmd0aD1yZWFkVWludDMyKGUsYyk7Yys9NDtpZig0Mjk0OTY3Mjk1PT09aS5sZW5ndGgpe2lmKDM4IT09cil0aHJvdyBuZXcgSmJpZzJFcnJvcigiaW52YWxpZCB1bmtub3duIHNlZ21lbnQgbGVuZ3RoIik7e2NvbnN0IHQ9cmVhZFJlZ2lvblNlZ21lbnRJbmZvcm1hdGlvbihlLGMpLGE9ISEoMSZlW2MrV3RdKSxyPTYscz1uZXcgVWludDhBcnJheShyKTtpZighYSl7c1swXT0yNTU7c1sxXT0xNzJ9c1syXT10LmhlaWdodD4+PjI0JjI1NTtzWzNdPXQuaGVpZ2h0Pj4xNiYyNTU7c1s0XT10LmhlaWdodD4+OCYyNTU7c1s1XT0yNTUmdC5oZWlnaHQ7Zm9yKEM9YyxRPWUubGVuZ3RoO0M8UTtDKyspe2xldCB0PTA7Zm9yKDt0PHImJnNbdF09PT1lW0MrdF07KXQrKztpZih0PT09cil7aS5sZW5ndGg9QytyO2JyZWFrfX1pZig0Mjk0OTY3Mjk1PT09aS5sZW5ndGgpdGhyb3cgbmV3IEpiaWcyRXJyb3IoInNlZ21lbnQgZW5kIHdhcyBub3QgZm91bmQiKX19aS5oZWFkZXJFbmQ9YztyZXR1cm4gaX1mdW5jdGlvbiByZWFkU2VnbWVudHMoZSx0LGksYSl7Y29uc3Qgcj1bXTtsZXQgcz1pO2Zvcig7czxhOyl7Y29uc3QgaT1yZWFkU2VnbWVudEhlYWRlcih0LHMpO3M9aS5oZWFkZXJFbmQ7Y29uc3QgYT17aGVhZGVyOmksZGF0YTp0fTtpZighZS5yYW5kb21BY2Nlc3Mpe2Euc3RhcnQ9cztzKz1pLmxlbmd0aDthLmVuZD1zfXIucHVzaChhKTtpZig1MT09PWkudHlwZSlicmVha31pZihlLnJhbmRvbUFjY2Vzcylmb3IobGV0IGU9MCx0PXIubGVuZ3RoO2U8dDtlKyspe3JbZV0uc3RhcnQ9cztzKz1yW2VdLmhlYWRlci5sZW5ndGg7cltlXS5lbmQ9c31yZXR1cm4gcn1mdW5jdGlvbiByZWFkUmVnaW9uU2VnbWVudEluZm9ybWF0aW9uKGUsdCl7cmV0dXJue3dpZHRoOnJlYWRVaW50MzIoZSx0KSxoZWlnaHQ6cmVhZFVpbnQzMihlLHQrNCkseDpyZWFkVWludDMyKGUsdCs4KSx5OnJlYWRVaW50MzIoZSx0KzEyKSxjb21iaW5hdGlvbk9wZXJhdG9yOjcmZVt0KzE2XX19Y29uc3QgV3Q9MTc7ZnVuY3Rpb24gcHJvY2Vzc1NlZ21lbnQoZSx0KXtjb25zdCBpPWUuaGVhZGVyLGE9ZS5kYXRhLHI9ZS5lbmQ7bGV0IHMsbixvLGcsYz1lLnN0YXJ0O3N3aXRjaChpLnR5cGUpe2Nhc2UgMDpjb25zdCBlPXt9LHQ9cmVhZFVpbnQxNihhLGMpO2UuaHVmZm1hbj0hISgxJnQpO2UucmVmaW5lbWVudD0hISgyJnQpO2UuaHVmZm1hbkRIU2VsZWN0b3I9dD4+MiYzO2UuaHVmZm1hbkRXU2VsZWN0b3I9dD4+NCYzO2UuYml0bWFwU2l6ZVNlbGVjdG9yPXQ+PjYmMTtlLmFnZ3JlZ2F0aW9uSW5zdGFuY2VzU2VsZWN0b3I9dD4+NyYxO2UuYml0bWFwQ29kaW5nQ29udGV4dFVzZWQ9ISEoMjU2JnQpO2UuYml0bWFwQ29kaW5nQ29udGV4dFJldGFpbmVkPSEhKDUxMiZ0KTtlLnRlbXBsYXRlPXQ+PjEwJjM7ZS5yZWZpbmVtZW50VGVtcGxhdGU9dD4+MTImMTtjKz0yO2lmKCFlLmh1ZmZtYW4pe2c9MD09PWUudGVtcGxhdGU/NDoxO249W107Zm9yKG89MDtvPGc7bysrKXtuLnB1c2goe3g6cmVhZEludDgoYSxjKSx5OnJlYWRJbnQ4KGEsYysxKX0pO2MrPTJ9ZS5hdD1ufWlmKGUucmVmaW5lbWVudCYmIWUucmVmaW5lbWVudFRlbXBsYXRlKXtuPVtdO2ZvcihvPTA7bzwyO28rKyl7bi5wdXNoKHt4OnJlYWRJbnQ4KGEsYykseTpyZWFkSW50OChhLGMrMSl9KTtjKz0yfWUucmVmaW5lbWVudEF0PW59ZS5udW1iZXJPZkV4cG9ydGVkU3ltYm9scz1yZWFkVWludDMyKGEsYyk7Yys9NDtlLm51bWJlck9mTmV3U3ltYm9scz1yZWFkVWludDMyKGEsYyk7Yys9NDtzPVtlLGkubnVtYmVyLGkucmVmZXJyZWRUbyxhLGMscl07YnJlYWs7Y2FzZSA2OmNhc2UgNzpjb25zdCBsPXt9O2wuaW5mbz1yZWFkUmVnaW9uU2VnbWVudEluZm9ybWF0aW9uKGEsYyk7Yys9V3Q7Y29uc3QgaD1yZWFkVWludDE2KGEsYyk7Yys9MjtsLmh1ZmZtYW49ISEoMSZoKTtsLnJlZmluZW1lbnQ9ISEoMiZoKTtsLmxvZ1N0cmlwU2l6ZT1oPj4yJjM7bC5zdHJpcFNpemU9MTw8bC5sb2dTdHJpcFNpemU7bC5yZWZlcmVuY2VDb3JuZXI9aD4+NCYzO2wudHJhbnNwb3NlZD0hISg2NCZoKTtsLmNvbWJpbmF0aW9uT3BlcmF0b3I9aD4+NyYzO2wuZGVmYXVsdFBpeGVsVmFsdWU9aD4+OSYxO2wuZHNPZmZzZXQ9aDw8MTc+PjI3O2wucmVmaW5lbWVudFRlbXBsYXRlPWg+PjE1JjE7aWYobC5odWZmbWFuKXtjb25zdCBlPXJlYWRVaW50MTYoYSxjKTtjKz0yO2wuaHVmZm1hbkZTPTMmZTtsLmh1ZmZtYW5EUz1lPj4yJjM7bC5odWZmbWFuRFQ9ZT4+NCYzO2wuaHVmZm1hblJlZmluZW1lbnREVz1lPj42JjM7bC5odWZmbWFuUmVmaW5lbWVudERIPWU+PjgmMztsLmh1ZmZtYW5SZWZpbmVtZW50RFg9ZT4+MTAmMztsLmh1ZmZtYW5SZWZpbmVtZW50RFk9ZT4+MTImMztsLmh1ZmZtYW5SZWZpbmVtZW50U2l6ZVNlbGVjdG9yPSEhKDE2Mzg0JmUpfWlmKGwucmVmaW5lbWVudCYmIWwucmVmaW5lbWVudFRlbXBsYXRlKXtuPVtdO2ZvcihvPTA7bzwyO28rKyl7bi5wdXNoKHt4OnJlYWRJbnQ4KGEsYykseTpyZWFkSW50OChhLGMrMSl9KTtjKz0yfWwucmVmaW5lbWVudEF0PW59bC5udW1iZXJPZlN5bWJvbEluc3RhbmNlcz1yZWFkVWludDMyKGEsYyk7Yys9NDtzPVtsLGkucmVmZXJyZWRUbyxhLGMscl07YnJlYWs7Y2FzZSAxNjpjb25zdCBDPXt9LFE9YVtjKytdO0MubW1yPSEhKDEmUSk7Qy50ZW1wbGF0ZT1RPj4xJjM7Qy5wYXR0ZXJuV2lkdGg9YVtjKytdO0MucGF0dGVybkhlaWdodD1hW2MrK107Qy5tYXhQYXR0ZXJuSW5kZXg9cmVhZFVpbnQzMihhLGMpO2MrPTQ7cz1bQyxpLm51bWJlcixhLGMscl07YnJlYWs7Y2FzZSAyMjpjYXNlIDIzOmNvbnN0IEU9e307RS5pbmZvPXJlYWRSZWdpb25TZWdtZW50SW5mb3JtYXRpb24oYSxjKTtjKz1XdDtjb25zdCB1PWFbYysrXTtFLm1tcj0hISgxJnUpO0UudGVtcGxhdGU9dT4+MSYzO0UuZW5hYmxlU2tpcD0hISg4JnUpO0UuY29tYmluYXRpb25PcGVyYXRvcj11Pj40Jjc7RS5kZWZhdWx0UGl4ZWxWYWx1ZT11Pj43JjE7RS5ncmlkV2lkdGg9cmVhZFVpbnQzMihhLGMpO2MrPTQ7RS5ncmlkSGVpZ2h0PXJlYWRVaW50MzIoYSxjKTtjKz00O0UuZ3JpZE9mZnNldFg9NDI5NDk2NzI5NSZyZWFkVWludDMyKGEsYyk7Yys9NDtFLmdyaWRPZmZzZXRZPTQyOTQ5NjcyOTUmcmVhZFVpbnQzMihhLGMpO2MrPTQ7RS5ncmlkVmVjdG9yWD1yZWFkVWludDE2KGEsYyk7Yys9MjtFLmdyaWRWZWN0b3JZPXJlYWRVaW50MTYoYSxjKTtjKz0yO3M9W0UsaS5yZWZlcnJlZFRvLGEsYyxyXTticmVhaztjYXNlIDM4OmNhc2UgMzk6Y29uc3QgZD17fTtkLmluZm89cmVhZFJlZ2lvblNlZ21lbnRJbmZvcm1hdGlvbihhLGMpO2MrPVd0O2NvbnN0IGY9YVtjKytdO2QubW1yPSEhKDEmZik7ZC50ZW1wbGF0ZT1mPj4xJjM7ZC5wcmVkaWN0aW9uPSEhKDgmZik7aWYoIWQubW1yKXtnPTA9PT1kLnRlbXBsYXRlPzQ6MTtuPVtdO2ZvcihvPTA7bzxnO28rKyl7bi5wdXNoKHt4OnJlYWRJbnQ4KGEsYykseTpyZWFkSW50OChhLGMrMSl9KTtjKz0yfWQuYXQ9bn1zPVtkLGEsYyxyXTticmVhaztjYXNlIDQ4OmNvbnN0IHA9e3dpZHRoOnJlYWRVaW50MzIoYSxjKSxoZWlnaHQ6cmVhZFVpbnQzMihhLGMrNCkscmVzb2x1dGlvblg6cmVhZFVpbnQzMihhLGMrOCkscmVzb2x1dGlvblk6cmVhZFVpbnQzMihhLGMrMTIpfTs0Mjk0OTY3Mjk1PT09cC5oZWlnaHQmJmRlbGV0ZSBwLmhlaWdodDtjb25zdCBtPWFbYysxNl07cmVhZFVpbnQxNihhLGMrMTcpO3AubG9zc2xlc3M9ISEoMSZtKTtwLnJlZmluZW1lbnQ9ISEoMiZtKTtwLmRlZmF1bHRQaXhlbFZhbHVlPW0+PjImMTtwLmNvbWJpbmF0aW9uT3BlcmF0b3I9bT4+MyYzO3AucmVxdWlyZXNCdWZmZXI9ISEoMzImbSk7cC5jb21iaW5hdGlvbk9wZXJhdG9yT3ZlcnJpZGU9ISEoNjQmbSk7cz1bcF07YnJlYWs7Y2FzZSA0OTpjYXNlIDUwOmNhc2UgNTE6Y2FzZSA2MjpicmVhaztjYXNlIDUzOnM9W2kubnVtYmVyLGEsYyxyXTticmVhaztkZWZhdWx0OnRocm93IG5ldyBKYmlnMkVycm9yKGBzZWdtZW50IHR5cGUgJHtpLnR5cGVOYW1lfSgke2kudHlwZX0pIGlzIG5vdCBpbXBsZW1lbnRlZGApfWNvbnN0IGw9Im9uIitpLnR5cGVOYW1lO2wgaW4gdCYmdFtsXS5hcHBseSh0LHMpfWZ1bmN0aW9uIHByb2Nlc3NTZWdtZW50cyhlLHQpe2ZvcihsZXQgaT0wLGE9ZS5sZW5ndGg7aTxhO2krKylwcm9jZXNzU2VnbWVudChlW2ldLHQpfWNsYXNzIFNpbXBsZVNlZ21lbnRWaXNpdG9ye29uUGFnZUluZm9ybWF0aW9uKGUpe3RoaXMuY3VycmVudFBhZ2VJbmZvPWU7Y29uc3QgdD1lLndpZHRoKzc+PjMsaT1uZXcgVWludDhDbGFtcGVkQXJyYXkodCplLmhlaWdodCk7ZS5kZWZhdWx0UGl4ZWxWYWx1ZSYmaS5maWxsKDI1NSk7dGhpcy5idWZmZXI9aX1kcmF3Qml0bWFwKGUsdCl7Y29uc3QgaT10aGlzLmN1cnJlbnRQYWdlSW5mbyxhPWUud2lkdGgscj1lLmhlaWdodCxzPWkud2lkdGgrNz4+MyxuPWkuY29tYmluYXRpb25PcGVyYXRvck92ZXJyaWRlP2UuY29tYmluYXRpb25PcGVyYXRvcjppLmNvbWJpbmF0aW9uT3BlcmF0b3Isbz10aGlzLmJ1ZmZlcixnPTEyOD4+KDcmZS54KTtsZXQgYyxsLGgsQyxRPWUueSpzKyhlLng+PjMpO3N3aXRjaChuKXtjYXNlIDA6Zm9yKGM9MDtjPHI7YysrKXtoPWc7Qz1RO2ZvcihsPTA7bDxhO2wrKyl7dFtjXVtsXSYmKG9bQ118PWgpO2g+Pj0xO2lmKCFoKXtoPTEyODtDKyt9fVErPXN9YnJlYWs7Y2FzZSAyOmZvcihjPTA7YzxyO2MrKyl7aD1nO0M9UTtmb3IobD0wO2w8YTtsKyspe3RbY11bbF0mJihvW0NdXj1oKTtoPj49MTtpZighaCl7aD0xMjg7QysrfX1RKz1zfWJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEpiaWcyRXJyb3IoYG9wZXJhdG9yICR7bn0gaXMgbm90IHN1cHBvcnRlZGApfX1vbkltbWVkaWF0ZUdlbmVyaWNSZWdpb24oZSx0LGksYSl7Y29uc3Qgcj1lLmluZm8scz1uZXcgRGVjb2RpbmdDb250ZXh0KHQsaSxhKSxuPWRlY29kZUJpdG1hcChlLm1tcixyLndpZHRoLHIuaGVpZ2h0LGUudGVtcGxhdGUsZS5wcmVkaWN0aW9uLG51bGwsZS5hdCxzKTt0aGlzLmRyYXdCaXRtYXAocixuKX1vbkltbWVkaWF0ZUxvc3NsZXNzR2VuZXJpY1JlZ2lvbigpe3RoaXMub25JbW1lZGlhdGVHZW5lcmljUmVnaW9uKC4uLmFyZ3VtZW50cyl9b25TeW1ib2xEaWN0aW9uYXJ5KGUsdCxpLGEscixzKXtsZXQgbixvO2lmKGUuaHVmZm1hbil7bj1mdW5jdGlvbiBnZXRTeW1ib2xEaWN0aW9uYXJ5SHVmZm1hblRhYmxlcyhlLHQsaSl7bGV0IGEscixzLG4sbz0wO3N3aXRjaChlLmh1ZmZtYW5ESFNlbGVjdG9yKXtjYXNlIDA6Y2FzZSAxOmE9Z2V0U3RhbmRhcmRUYWJsZShlLmh1ZmZtYW5ESFNlbGVjdG9yKzQpO2JyZWFrO2Nhc2UgMzphPWdldEN1c3RvbUh1ZmZtYW5UYWJsZShvLHQsaSk7bysrO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEpiaWcyRXJyb3IoImludmFsaWQgSHVmZm1hbiBESCBzZWxlY3RvciIpfXN3aXRjaChlLmh1ZmZtYW5EV1NlbGVjdG9yKXtjYXNlIDA6Y2FzZSAxOnI9Z2V0U3RhbmRhcmRUYWJsZShlLmh1ZmZtYW5EV1NlbGVjdG9yKzIpO2JyZWFrO2Nhc2UgMzpyPWdldEN1c3RvbUh1ZmZtYW5UYWJsZShvLHQsaSk7bysrO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEpiaWcyRXJyb3IoImludmFsaWQgSHVmZm1hbiBEVyBzZWxlY3RvciIpfWlmKGUuYml0bWFwU2l6ZVNlbGVjdG9yKXtzPWdldEN1c3RvbUh1ZmZtYW5UYWJsZShvLHQsaSk7bysrfWVsc2Ugcz1nZXRTdGFuZGFyZFRhYmxlKDEpO249ZS5hZ2dyZWdhdGlvbkluc3RhbmNlc1NlbGVjdG9yP2dldEN1c3RvbUh1ZmZtYW5UYWJsZShvLHQsaSk6Z2V0U3RhbmRhcmRUYWJsZSgxKTtyZXR1cm57dGFibGVEZWx0YUhlaWdodDphLHRhYmxlRGVsdGFXaWR0aDpyLHRhYmxlQml0bWFwU2l6ZTpzLHRhYmxlQWdncmVnYXRlSW5zdGFuY2VzOm59fShlLGksdGhpcy5jdXN0b21UYWJsZXMpO289bmV3IFJlYWRlcihhLHIscyl9bGV0IGc9dGhpcy5zeW1ib2xzO2d8fCh0aGlzLnN5bWJvbHM9Zz17fSk7Y29uc3QgYz1bXTtmb3IoY29uc3QgZSBvZiBpKXtjb25zdCB0PWdbZV07dCYmYy5wdXNoKC4uLnQpfWNvbnN0IGw9bmV3IERlY29kaW5nQ29udGV4dChhLHIscyk7Z1t0XT1mdW5jdGlvbiBkZWNvZGVTeW1ib2xEaWN0aW9uYXJ5KGUsdCxpLGEscixzLG4sbyxnLGMsbCxoKXtpZihlJiZ0KXRocm93IG5ldyBKYmlnMkVycm9yKCJzeW1ib2wgcmVmaW5lbWVudCB3aXRoIEh1ZmZtYW4gaXMgbm90IHN1cHBvcnRlZCIpO2NvbnN0IEM9W107bGV0IFE9MCxFPWxvZzIoaS5sZW5ndGgrYSk7Y29uc3QgdT1sLmRlY29kZXIsZD1sLmNvbnRleHRDYWNoZTtsZXQgZixwO2lmKGUpe2Y9Z2V0U3RhbmRhcmRUYWJsZSgxKTtwPVtdO0U9TWF0aC5tYXgoRSwxKX1mb3IoO0MubGVuZ3RoPGE7KXtRKz1lP3MudGFibGVEZWx0YUhlaWdodC5kZWNvZGUoaCk6ZGVjb2RlSW50ZWdlcihkLCJJQURIIix1KTtsZXQgYT0wLHI9MDtjb25zdCBmPWU/cC5sZW5ndGg6MDtmb3IoOzspe2NvbnN0IGY9ZT9zLnRhYmxlRGVsdGFXaWR0aC5kZWNvZGUoaCk6ZGVjb2RlSW50ZWdlcihkLCJJQURXIix1KTtpZihudWxsPT09ZilicmVhazthKz1mO3IrPWE7bGV0IG07aWYodCl7Y29uc3Qgcj1kZWNvZGVJbnRlZ2VyKGQsIklBQUkiLHUpO2lmKHI+MSltPWRlY29kZVRleHRSZWdpb24oZSx0LGEsUSwwLHIsMSxpLmNvbmNhdChDKSxFLDAsMCwxLDAscyxnLGMsbCwwLGgpO2Vsc2V7Y29uc3QgZT1kZWNvZGVJQUlEKGQsdSxFKSx0PWRlY29kZUludGVnZXIoZCwiSUFSRFgiLHUpLHI9ZGVjb2RlSW50ZWdlcihkLCJJQVJEWSIsdSk7bT1kZWNvZGVSZWZpbmVtZW50KGEsUSxnLGU8aS5sZW5ndGg/aVtlXTpDW2UtaS5sZW5ndGhdLHQsciwhMSxjLGwpfUMucHVzaChtKX1lbHNlIGlmKGUpcC5wdXNoKGEpO2Vsc2V7bT1kZWNvZGVCaXRtYXAoITEsYSxRLG4sITEsbnVsbCxvLGwpO0MucHVzaChtKX19aWYoZSYmIXQpe2NvbnN0IGU9cy50YWJsZUJpdG1hcFNpemUuZGVjb2RlKGgpO2guYnl0ZUFsaWduKCk7bGV0IHQ7aWYoMD09PWUpdD1yZWFkVW5jb21wcmVzc2VkQml0bWFwKGgscixRKTtlbHNle2NvbnN0IGk9aC5lbmQsYT1oLnBvc2l0aW9uK2U7aC5lbmQ9YTt0PWRlY29kZU1NUkJpdG1hcChoLHIsUSwhMSk7aC5lbmQ9aTtoLnBvc2l0aW9uPWF9Y29uc3QgaT1wLmxlbmd0aDtpZihmPT09aS0xKUMucHVzaCh0KTtlbHNle2xldCBlLGEscixzLG4sbz0wO2ZvcihlPWY7ZTxpO2UrKyl7cz1wW2VdO3I9bytzO249W107Zm9yKGE9MDthPFE7YSsrKW4ucHVzaCh0W2FdLnN1YmFycmF5KG8scikpO0MucHVzaChuKTtvPXJ9fX19Y29uc3QgbT1bXSx5PVtdO2xldCB3LGIsRD0hMTtjb25zdCBTPWkubGVuZ3RoK2E7Zm9yKDt5Lmxlbmd0aDxTOyl7bGV0IHQ9ZT9mLmRlY29kZShoKTpkZWNvZGVJbnRlZ2VyKGQsIklBRVgiLHUpO2Zvcig7dC0tOyl5LnB1c2goRCk7RD0hRH1mb3Iodz0wLGI9aS5sZW5ndGg7dzxiO3crKyl5W3ddJiZtLnB1c2goaVt3XSk7Zm9yKGxldCBlPTA7ZTxhO3crKyxlKyspeVt3XSYmbS5wdXNoKENbZV0pO3JldHVybiBtfShlLmh1ZmZtYW4sZS5yZWZpbmVtZW50LGMsZS5udW1iZXJPZk5ld1N5bWJvbHMsZS5udW1iZXJPZkV4cG9ydGVkU3ltYm9scyxuLGUudGVtcGxhdGUsZS5hdCxlLnJlZmluZW1lbnRUZW1wbGF0ZSxlLnJlZmluZW1lbnRBdCxsLG8pfW9uSW1tZWRpYXRlVGV4dFJlZ2lvbihlLHQsaSxhLHIpe2NvbnN0IHM9ZS5pbmZvO2xldCBuLG87Y29uc3QgZz10aGlzLnN5bWJvbHMsYz1bXTtmb3IoY29uc3QgZSBvZiB0KXtjb25zdCB0PWdbZV07dCYmYy5wdXNoKC4uLnQpfWNvbnN0IGw9bG9nMihjLmxlbmd0aCk7aWYoZS5odWZmbWFuKXtvPW5ldyBSZWFkZXIoaSxhLHIpO249ZnVuY3Rpb24gZ2V0VGV4dFJlZ2lvbkh1ZmZtYW5UYWJsZXMoZSx0LGksYSxyKXtjb25zdCBzPVtdO2ZvcihsZXQgZT0wO2U8PTM0O2UrKyl7Y29uc3QgdD1yLnJlYWRCaXRzKDQpO3MucHVzaChuZXcgSHVmZm1hbkxpbmUoW2UsdCwwLDBdKSl9Y29uc3Qgbj1uZXcgSHVmZm1hblRhYmxlKHMsITEpO3MubGVuZ3RoPTA7Zm9yKGxldCBlPTA7ZTxhOyl7Y29uc3QgdD1uLmRlY29kZShyKTtpZih0Pj0zMil7bGV0IGksYSxuO3N3aXRjaCh0KXtjYXNlIDMyOmlmKDA9PT1lKXRocm93IG5ldyBKYmlnMkVycm9yKCJubyBwcmV2aW91cyB2YWx1ZSBpbiBzeW1ib2wgSUQgdGFibGUiKTthPXIucmVhZEJpdHMoMikrMztpPXNbZS0xXS5wcmVmaXhMZW5ndGg7YnJlYWs7Y2FzZSAzMzphPXIucmVhZEJpdHMoMykrMztpPTA7YnJlYWs7Y2FzZSAzNDphPXIucmVhZEJpdHMoNykrMTE7aT0wO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEpiaWcyRXJyb3IoImludmFsaWQgY29kZSBsZW5ndGggaW4gc3ltYm9sIElEIHRhYmxlIil9Zm9yKG49MDtuPGE7bisrKXtzLnB1c2gobmV3IEh1ZmZtYW5MaW5lKFtlLGksMCwwXSkpO2UrK319ZWxzZXtzLnB1c2gobmV3IEh1ZmZtYW5MaW5lKFtlLHQsMCwwXSkpO2UrK319ci5ieXRlQWxpZ24oKTtjb25zdCBvPW5ldyBIdWZmbWFuVGFibGUocywhMSk7bGV0IGcsYyxsLGg9MDtzd2l0Y2goZS5odWZmbWFuRlMpe2Nhc2UgMDpjYXNlIDE6Zz1nZXRTdGFuZGFyZFRhYmxlKGUuaHVmZm1hbkZTKzYpO2JyZWFrO2Nhc2UgMzpnPWdldEN1c3RvbUh1ZmZtYW5UYWJsZShoLHQsaSk7aCsrO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEpiaWcyRXJyb3IoImludmFsaWQgSHVmZm1hbiBGUyBzZWxlY3RvciIpfXN3aXRjaChlLmh1ZmZtYW5EUyl7Y2FzZSAwOmNhc2UgMTpjYXNlIDI6Yz1nZXRTdGFuZGFyZFRhYmxlKGUuaHVmZm1hbkRTKzgpO2JyZWFrO2Nhc2UgMzpjPWdldEN1c3RvbUh1ZmZtYW5UYWJsZShoLHQsaSk7aCsrO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEpiaWcyRXJyb3IoImludmFsaWQgSHVmZm1hbiBEUyBzZWxlY3RvciIpfXN3aXRjaChlLmh1ZmZtYW5EVCl7Y2FzZSAwOmNhc2UgMTpjYXNlIDI6bD1nZXRTdGFuZGFyZFRhYmxlKGUuaHVmZm1hbkRUKzExKTticmVhaztjYXNlIDM6bD1nZXRDdXN0b21IdWZmbWFuVGFibGUoaCx0LGkpO2grKzticmVhaztkZWZhdWx0OnRocm93IG5ldyBKYmlnMkVycm9yKCJpbnZhbGlkIEh1ZmZtYW4gRFQgc2VsZWN0b3IiKX1pZihlLnJlZmluZW1lbnQpdGhyb3cgbmV3IEpiaWcyRXJyb3IoInJlZmluZW1lbnQgd2l0aCBIdWZmbWFuIGlzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm57c3ltYm9sSURUYWJsZTpvLHRhYmxlRmlyc3RTOmcsdGFibGVEZWx0YVM6Yyx0YWJsZURlbHRhVDpsfX0oZSx0LHRoaXMuY3VzdG9tVGFibGVzLGMubGVuZ3RoLG8pfWNvbnN0IGg9bmV3IERlY29kaW5nQ29udGV4dChpLGEsciksQz1kZWNvZGVUZXh0UmVnaW9uKGUuaHVmZm1hbixlLnJlZmluZW1lbnQscy53aWR0aCxzLmhlaWdodCxlLmRlZmF1bHRQaXhlbFZhbHVlLGUubnVtYmVyT2ZTeW1ib2xJbnN0YW5jZXMsZS5zdHJpcFNpemUsYyxsLGUudHJhbnNwb3NlZCxlLmRzT2Zmc2V0LGUucmVmZXJlbmNlQ29ybmVyLGUuY29tYmluYXRpb25PcGVyYXRvcixuLGUucmVmaW5lbWVudFRlbXBsYXRlLGUucmVmaW5lbWVudEF0LGgsZS5sb2dTdHJpcFNpemUsbyk7dGhpcy5kcmF3Qml0bWFwKHMsQyl9b25JbW1lZGlhdGVMb3NzbGVzc1RleHRSZWdpb24oKXt0aGlzLm9uSW1tZWRpYXRlVGV4dFJlZ2lvbiguLi5hcmd1bWVudHMpfW9uUGF0dGVybkRpY3Rpb25hcnkoZSx0LGksYSxyKXtsZXQgcz10aGlzLnBhdHRlcm5zO3N8fCh0aGlzLnBhdHRlcm5zPXM9e30pO2NvbnN0IG49bmV3IERlY29kaW5nQ29udGV4dChpLGEscik7c1t0XT1mdW5jdGlvbiBkZWNvZGVQYXR0ZXJuRGljdGlvbmFyeShlLHQsaSxhLHIscyl7Y29uc3Qgbj1bXTtpZighZSl7bi5wdXNoKHt4Oi10LHk6MH0pOzA9PT1yJiZuLnB1c2goe3g6LTMseTotMX0se3g6Mix5Oi0yfSx7eDotMix5Oi0yfSl9Y29uc3Qgbz1kZWNvZGVCaXRtYXAoZSwoYSsxKSp0LGksciwhMSxudWxsLG4scyksZz1bXTtmb3IobGV0IGU9MDtlPD1hO2UrKyl7Y29uc3QgYT1bXSxyPXQqZSxzPXIrdDtmb3IobGV0IGU9MDtlPGk7ZSsrKWEucHVzaChvW2VdLnN1YmFycmF5KHIscykpO2cucHVzaChhKX1yZXR1cm4gZ30oZS5tbXIsZS5wYXR0ZXJuV2lkdGgsZS5wYXR0ZXJuSGVpZ2h0LGUubWF4UGF0dGVybkluZGV4LGUudGVtcGxhdGUsbil9b25JbW1lZGlhdGVIYWxmdG9uZVJlZ2lvbihlLHQsaSxhLHIpe2NvbnN0IHM9dGhpcy5wYXR0ZXJuc1t0WzBdXSxuPWUuaW5mbyxvPW5ldyBEZWNvZGluZ0NvbnRleHQoaSxhLHIpLGc9ZnVuY3Rpb24gZGVjb2RlSGFsZnRvbmVSZWdpb24oZSx0LGksYSxyLHMsbixvLGcsYyxsLGgsQyxRLEUpe2lmKG4pdGhyb3cgbmV3IEpiaWcyRXJyb3IoInNraXAgaXMgbm90IHN1cHBvcnRlZCIpO2lmKDAhPT1vKXRocm93IG5ldyBKYmlnMkVycm9yKGBvcGVyYXRvciAiJHtvfSIgaXMgbm90IHN1cHBvcnRlZCBpbiBoYWxmdG9uZSByZWdpb25gKTtjb25zdCB1PVtdO2xldCBkLGYscDtmb3IoZD0wO2Q8cjtkKyspe3A9bmV3IFVpbnQ4QXJyYXkoYSk7aWYocylmb3IoZj0wO2Y8YTtmKyspcFtmXT1zO3UucHVzaChwKX1jb25zdCBtPXQubGVuZ3RoLHk9dFswXSx3PXlbMF0ubGVuZ3RoLGI9eS5sZW5ndGgsRD1sb2cyKG0pLFM9W107aWYoIWUpe1MucHVzaCh7eDppPD0xPzM6Mix5Oi0xfSk7MD09PWkmJlMucHVzaCh7eDotMyx5Oi0xfSx7eDoyLHk6LTJ9LHt4Oi0yLHk6LTJ9KX1jb25zdCBrPVtdO2xldCBSLE4sRyxNLFUseCxMLEgsSix2LFk7ZSYmKFI9bmV3IFJlYWRlcihFLmRhdGEsRS5zdGFydCxFLmVuZCkpO2ZvcihkPUQtMTtkPj0wO2QtLSl7Tj1lP2RlY29kZU1NUkJpdG1hcChSLGcsYywhMCk6ZGVjb2RlQml0bWFwKCExLGcsYyxpLCExLG51bGwsUyxFKTtrW2RdPU59Zm9yKEc9MDtHPGM7RysrKWZvcihNPTA7TTxnO00rKyl7VT0wO3g9MDtmb3IoZj1ELTE7Zj49MDtmLS0pe1VePWtbZl1bR11bTV07eHw9VTw8Zn1MPXRbeF07SD1sK0cqUStNKkM+Pjg7Sj1oK0cqQy1NKlE+Pjg7aWYoSD49MCYmSCt3PD1hJiZKPj0wJiZKK2I8PXIpZm9yKGQ9MDtkPGI7ZCsrKXtZPXVbSitkXTt2PUxbZF07Zm9yKGY9MDtmPHc7ZisrKVlbSCtmXXw9dltmXX1lbHNle2xldCBlLHQ7Zm9yKGQ9MDtkPGI7ZCsrKXt0PUorZDtpZighKHQ8MHx8dD49cikpe1k9dVt0XTt2PUxbZF07Zm9yKGY9MDtmPHc7ZisrKXtlPUgrZjtlPj0wJiZlPGEmJihZW2VdfD12W2ZdKX19fX19cmV0dXJuIHV9KGUubW1yLHMsZS50ZW1wbGF0ZSxuLndpZHRoLG4uaGVpZ2h0LGUuZGVmYXVsdFBpeGVsVmFsdWUsZS5lbmFibGVTa2lwLGUuY29tYmluYXRpb25PcGVyYXRvcixlLmdyaWRXaWR0aCxlLmdyaWRIZWlnaHQsZS5ncmlkT2Zmc2V0WCxlLmdyaWRPZmZzZXRZLGUuZ3JpZFZlY3RvclgsZS5ncmlkVmVjdG9yWSxvKTt0aGlzLmRyYXdCaXRtYXAobixnKX1vbkltbWVkaWF0ZUxvc3NsZXNzSGFsZnRvbmVSZWdpb24oKXt0aGlzLm9uSW1tZWRpYXRlSGFsZnRvbmVSZWdpb24oLi4uYXJndW1lbnRzKX1vblRhYmxlcyhlLHQsaSxhKXtsZXQgcj10aGlzLmN1c3RvbVRhYmxlcztyfHwodGhpcy5jdXN0b21UYWJsZXM9cj17fSk7cltlXT1mdW5jdGlvbiBkZWNvZGVUYWJsZXNTZWdtZW50KGUsdCxpKXtjb25zdCBhPWVbdF0scj00Mjk0OTY3Mjk1JnJlYWRVaW50MzIoZSx0KzEpLHM9NDI5NDk2NzI5NSZyZWFkVWludDMyKGUsdCs1KSxuPW5ldyBSZWFkZXIoZSx0KzksaSksbz0xKyhhPj4xJjcpLGc9MSsoYT4+NCY3KSxjPVtdO2xldCBsLGgsQz1yO2Rve2w9bi5yZWFkQml0cyhvKTtoPW4ucmVhZEJpdHMoZyk7Yy5wdXNoKG5ldyBIdWZmbWFuTGluZShbQyxsLGgsMF0pKTtDKz0xPDxofXdoaWxlKEM8cyk7bD1uLnJlYWRCaXRzKG8pO2MucHVzaChuZXcgSHVmZm1hbkxpbmUoW3ItMSxsLDMyLDAsImxvd2VyIl0pKTtsPW4ucmVhZEJpdHMobyk7Yy5wdXNoKG5ldyBIdWZmbWFuTGluZShbcyxsLDMyLDBdKSk7aWYoMSZhKXtsPW4ucmVhZEJpdHMobyk7Yy5wdXNoKG5ldyBIdWZmbWFuTGluZShbbCwwXSkpfXJldHVybiBuZXcgSHVmZm1hblRhYmxlKGMsITEpfSh0LGksYSl9fWNsYXNzIEh1ZmZtYW5MaW5le2NvbnN0cnVjdG9yKGUpe2lmKDI9PT1lLmxlbmd0aCl7dGhpcy5pc09PQj0hMDt0aGlzLnJhbmdlTG93PTA7dGhpcy5wcmVmaXhMZW5ndGg9ZVswXTt0aGlzLnJhbmdlTGVuZ3RoPTA7dGhpcy5wcmVmaXhDb2RlPWVbMV07dGhpcy5pc0xvd2VyUmFuZ2U9ITF9ZWxzZXt0aGlzLmlzT09CPSExO3RoaXMucmFuZ2VMb3c9ZVswXTt0aGlzLnByZWZpeExlbmd0aD1lWzFdO3RoaXMucmFuZ2VMZW5ndGg9ZVsyXTt0aGlzLnByZWZpeENvZGU9ZVszXTt0aGlzLmlzTG93ZXJSYW5nZT0ibG93ZXIiPT09ZVs0XX19fWNsYXNzIEh1ZmZtYW5UcmVlTm9kZXtjb25zdHJ1Y3RvcihlKXt0aGlzLmNoaWxkcmVuPVtdO2lmKGUpe3RoaXMuaXNMZWFmPSEwO3RoaXMucmFuZ2VMZW5ndGg9ZS5yYW5nZUxlbmd0aDt0aGlzLnJhbmdlTG93PWUucmFuZ2VMb3c7dGhpcy5pc0xvd2VyUmFuZ2U9ZS5pc0xvd2VyUmFuZ2U7dGhpcy5pc09PQj1lLmlzT09CfWVsc2UgdGhpcy5pc0xlYWY9ITF9YnVpbGRUcmVlKGUsdCl7Y29uc3QgaT1lLnByZWZpeENvZGU+PnQmMTtpZih0PD0wKXRoaXMuY2hpbGRyZW5baV09bmV3IEh1ZmZtYW5UcmVlTm9kZShlKTtlbHNle2xldCBhPXRoaXMuY2hpbGRyZW5baV07YXx8KHRoaXMuY2hpbGRyZW5baV09YT1uZXcgSHVmZm1hblRyZWVOb2RlKG51bGwpKTthLmJ1aWxkVHJlZShlLHQtMSl9fWRlY29kZU5vZGUoZSl7aWYodGhpcy5pc0xlYWYpe2lmKHRoaXMuaXNPT0IpcmV0dXJuIG51bGw7Y29uc3QgdD1lLnJlYWRCaXRzKHRoaXMucmFuZ2VMZW5ndGgpO3JldHVybiB0aGlzLnJhbmdlTG93Kyh0aGlzLmlzTG93ZXJSYW5nZT8tdDp0KX1jb25zdCB0PXRoaXMuY2hpbGRyZW5bZS5yZWFkQml0KCldO2lmKCF0KXRocm93IG5ldyBKYmlnMkVycm9yKCJpbnZhbGlkIEh1ZmZtYW4gZGF0YSIpO3JldHVybiB0LmRlY29kZU5vZGUoZSl9fWNsYXNzIEh1ZmZtYW5UYWJsZXtjb25zdHJ1Y3RvcihlLHQpe3R8fHRoaXMuYXNzaWduUHJlZml4Q29kZXMoZSk7dGhpcy5yb290Tm9kZT1uZXcgSHVmZm1hblRyZWVOb2RlKG51bGwpO2ZvcihsZXQgdD0wLGk9ZS5sZW5ndGg7dDxpO3QrKyl7Y29uc3QgaT1lW3RdO2kucHJlZml4TGVuZ3RoPjAmJnRoaXMucm9vdE5vZGUuYnVpbGRUcmVlKGksaS5wcmVmaXhMZW5ndGgtMSl9fWRlY29kZShlKXtyZXR1cm4gdGhpcy5yb290Tm9kZS5kZWNvZGVOb2RlKGUpfWFzc2lnblByZWZpeENvZGVzKGUpe2NvbnN0IHQ9ZS5sZW5ndGg7bGV0IGk9MDtmb3IobGV0IGE9MDthPHQ7YSsrKWk9TWF0aC5tYXgoaSxlW2FdLnByZWZpeExlbmd0aCk7Y29uc3QgYT1uZXcgVWludDMyQXJyYXkoaSsxKTtmb3IobGV0IGk9MDtpPHQ7aSsrKWFbZVtpXS5wcmVmaXhMZW5ndGhdKys7bGV0IHIscyxuLG89MSxnPTA7YVswXT0wO2Zvcig7bzw9aTspe2c9ZythW28tMV08PDE7cj1nO3M9MDtmb3IoO3M8dDspe249ZVtzXTtpZihuLnByZWZpeExlbmd0aD09PW8pe24ucHJlZml4Q29kZT1yO3IrK31zKyt9bysrfX19Y29uc3QganQ9e307ZnVuY3Rpb24gZ2V0U3RhbmRhcmRUYWJsZShlKXtsZXQgdCxpPWp0W2VdO2lmKGkpcmV0dXJuIGk7c3dpdGNoKGUpe2Nhc2UgMTp0PVtbMCwxLDQsMF0sWzE2LDIsOCwyXSxbMjcyLDMsMTYsNl0sWzY1ODA4LDMsMzIsN11dO2JyZWFrO2Nhc2UgMjp0PVtbMCwxLDAsMF0sWzEsMiwwLDJdLFsyLDMsMCw2XSxbMyw0LDMsMTRdLFsxMSw1LDYsMzBdLFs3NSw2LDMyLDYyXSxbNiw2M11dO2JyZWFrO2Nhc2UgMzp0PVtbLTI1Niw4LDgsMjU0XSxbMCwxLDAsMF0sWzEsMiwwLDJdLFsyLDMsMCw2XSxbMyw0LDMsMTRdLFsxMSw1LDYsMzBdLFstMjU3LDgsMzIsMjU1LCJsb3dlciJdLFs3NSw3LDMyLDEyNl0sWzYsNjJdXTticmVhaztjYXNlIDQ6dD1bWzEsMSwwLDBdLFsyLDIsMCwyXSxbMywzLDAsNl0sWzQsNCwzLDE0XSxbMTIsNSw2LDMwXSxbNzYsNSwzMiwzMV1dO2JyZWFrO2Nhc2UgNTp0PVtbLTI1NSw3LDgsMTI2XSxbMSwxLDAsMF0sWzIsMiwwLDJdLFszLDMsMCw2XSxbNCw0LDMsMTRdLFsxMiw1LDYsMzBdLFstMjU2LDcsMzIsMTI3LCJsb3dlciJdLFs3Niw2LDMyLDYyXV07YnJlYWs7Y2FzZSA2OnQ9W1stMjA0OCw1LDEwLDI4XSxbLTEwMjQsNCw5LDhdLFstNTEyLDQsOCw5XSxbLTI1Niw0LDcsMTBdLFstMTI4LDUsNiwyOV0sWy02NCw1LDUsMzBdLFstMzIsNCw1LDExXSxbMCwyLDcsMF0sWzEyOCwzLDcsMl0sWzI1NiwzLDgsM10sWzUxMiw0LDksMTJdLFsxMDI0LDQsMTAsMTNdLFstMjA0OSw2LDMyLDYyLCJsb3dlciJdLFsyMDQ4LDYsMzIsNjNdXTticmVhaztjYXNlIDc6dD1bWy0xMDI0LDQsOSw4XSxbLTUxMiwzLDgsMF0sWy0yNTYsNCw3LDldLFstMTI4LDUsNiwyNl0sWy02NCw1LDUsMjddLFstMzIsNCw1LDEwXSxbMCw0LDUsMTFdLFszMiw1LDUsMjhdLFs2NCw1LDYsMjldLFsxMjgsNCw3LDEyXSxbMjU2LDMsOCwxXSxbNTEyLDMsOSwyXSxbMTAyNCwzLDEwLDNdLFstMTAyNSw1LDMyLDMwLCJsb3dlciJdLFsyMDQ4LDUsMzIsMzFdXTticmVhaztjYXNlIDg6dD1bWy0xNSw4LDMsMjUyXSxbLTcsOSwxLDUwOF0sWy01LDgsMSwyNTNdLFstMyw5LDAsNTA5XSxbLTIsNywwLDEyNF0sWy0xLDQsMCwxMF0sWzAsMiwxLDBdLFsyLDUsMCwyNl0sWzMsNiwwLDU4XSxbNCwzLDQsNF0sWzIwLDYsMSw1OV0sWzIyLDQsNCwxMV0sWzM4LDQsNSwxMl0sWzcwLDUsNiwyN10sWzEzNCw1LDcsMjhdLFsyNjIsNiw3LDYwXSxbMzkwLDcsOCwxMjVdLFs2NDYsNiwxMCw2MV0sWy0xNiw5LDMyLDUxMCwibG93ZXIiXSxbMTY3MCw5LDMyLDUxMV0sWzIsMV1dO2JyZWFrO2Nhc2UgOTp0PVtbLTMxLDgsNCwyNTJdLFstMTUsOSwyLDUwOF0sWy0xMSw4LDIsMjUzXSxbLTcsOSwxLDUwOV0sWy01LDcsMSwxMjRdLFstMyw0LDEsMTBdLFstMSwzLDEsMl0sWzEsMywxLDNdLFszLDUsMSwyNl0sWzUsNiwxLDU4XSxbNywzLDUsNF0sWzM5LDYsMiw1OV0sWzQzLDQsNSwxMV0sWzc1LDQsNiwxMl0sWzEzOSw1LDcsMjddLFsyNjcsNSw4LDI4XSxbNTIzLDYsOCw2MF0sWzc3OSw3LDksMTI1XSxbMTI5MSw2LDExLDYxXSxbLTMyLDksMzIsNTEwLCJsb3dlciJdLFszMzM5LDksMzIsNTExXSxbMiwwXV07YnJlYWs7Y2FzZSAxMDp0PVtbLTIxLDcsNCwxMjJdLFstNSw4LDAsMjUyXSxbLTQsNywwLDEyM10sWy0zLDUsMCwyNF0sWy0yLDIsMiwwXSxbMiw1LDAsMjVdLFszLDYsMCw1NF0sWzQsNywwLDEyNF0sWzUsOCwwLDI1M10sWzYsMiw2LDFdLFs3MCw1LDUsMjZdLFsxMDIsNiw1LDU1XSxbMTM0LDYsNiw1Nl0sWzE5OCw2LDcsNTddLFszMjYsNiw4LDU4XSxbNTgyLDYsOSw1OV0sWzEwOTQsNiwxMCw2MF0sWzIxMTgsNywxMSwxMjVdLFstMjIsOCwzMiwyNTQsImxvd2VyIl0sWzQxNjYsOCwzMiwyNTVdLFsyLDJdXTticmVhaztjYXNlIDExOnQ9W1sxLDEsMCwwXSxbMiwyLDEsMl0sWzQsNCwwLDEyXSxbNSw0LDEsMTNdLFs3LDUsMSwyOF0sWzksNSwyLDI5XSxbMTMsNiwyLDYwXSxbMTcsNywyLDEyMl0sWzIxLDcsMywxMjNdLFsyOSw3LDQsMTI0XSxbNDUsNyw1LDEyNV0sWzc3LDcsNiwxMjZdLFsxNDEsNywzMiwxMjddXTticmVhaztjYXNlIDEyOnQ9W1sxLDEsMCwwXSxbMiwyLDAsMl0sWzMsMywxLDZdLFs1LDUsMCwyOF0sWzYsNSwxLDI5XSxbOCw2LDEsNjBdLFsxMCw3LDAsMTIyXSxbMTEsNywxLDEyM10sWzEzLDcsMiwxMjRdLFsxNyw3LDMsMTI1XSxbMjUsNyw0LDEyNl0sWzQxLDgsNSwyNTRdLFs3Myw4LDMyLDI1NV1dO2JyZWFrO2Nhc2UgMTM6dD1bWzEsMSwwLDBdLFsyLDMsMCw0XSxbMyw0LDAsMTJdLFs0LDUsMCwyOF0sWzUsNCwxLDEzXSxbNywzLDMsNV0sWzE1LDYsMSw1OF0sWzE3LDYsMiw1OV0sWzIxLDYsMyw2MF0sWzI5LDYsNCw2MV0sWzQ1LDYsNSw2Ml0sWzc3LDcsNiwxMjZdLFsxNDEsNywzMiwxMjddXTticmVhaztjYXNlIDE0OnQ9W1stMiwzLDAsNF0sWy0xLDMsMCw1XSxbMCwxLDAsMF0sWzEsMywwLDZdLFsyLDMsMCw3XV07YnJlYWs7Y2FzZSAxNTp0PVtbLTI0LDcsNCwxMjRdLFstOCw2LDIsNjBdLFstNCw1LDEsMjhdLFstMiw0LDAsMTJdLFstMSwzLDAsNF0sWzAsMSwwLDBdLFsxLDMsMCw1XSxbMiw0LDAsMTNdLFszLDUsMSwyOV0sWzUsNiwyLDYxXSxbOSw3LDQsMTI1XSxbLTI1LDcsMzIsMTI2LCJsb3dlciJdLFsyNSw3LDMyLDEyN11dO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEpiaWcyRXJyb3IoYHN0YW5kYXJkIHRhYmxlIEIuJHtlfSBkb2VzIG5vdCBleGlzdGApfWZvcihsZXQgZT0wLGk9dC5sZW5ndGg7ZTxpO2UrKyl0W2VdPW5ldyBIdWZmbWFuTGluZSh0W2VdKTtpPW5ldyBIdWZmbWFuVGFibGUodCwhMCk7anRbZV09aTtyZXR1cm4gaX1jbGFzcyBSZWFkZXJ7Y29uc3RydWN0b3IoZSx0LGkpe3RoaXMuZGF0YT1lO3RoaXMuc3RhcnQ9dDt0aGlzLmVuZD1pO3RoaXMucG9zaXRpb249dDt0aGlzLnNoaWZ0PS0xO3RoaXMuY3VycmVudEJ5dGU9MH1yZWFkQml0KCl7aWYodGhpcy5zaGlmdDwwKXtpZih0aGlzLnBvc2l0aW9uPj10aGlzLmVuZCl0aHJvdyBuZXcgSmJpZzJFcnJvcigiZW5kIG9mIGRhdGEgd2hpbGUgcmVhZGluZyBiaXQiKTt0aGlzLmN1cnJlbnRCeXRlPXRoaXMuZGF0YVt0aGlzLnBvc2l0aW9uKytdO3RoaXMuc2hpZnQ9N31jb25zdCBlPXRoaXMuY3VycmVudEJ5dGU+PnRoaXMuc2hpZnQmMTt0aGlzLnNoaWZ0LS07cmV0dXJuIGV9cmVhZEJpdHMoZSl7bGV0IHQsaT0wO2Zvcih0PWUtMTt0Pj0wO3QtLSlpfD10aGlzLnJlYWRCaXQoKTw8dDtyZXR1cm4gaX1ieXRlQWxpZ24oKXt0aGlzLnNoaWZ0PS0xfW5leHQoKXtyZXR1cm4gdGhpcy5wb3NpdGlvbj49dGhpcy5lbmQ/LTE6dGhpcy5kYXRhW3RoaXMucG9zaXRpb24rK119fWZ1bmN0aW9uIGdldEN1c3RvbUh1ZmZtYW5UYWJsZShlLHQsaSl7bGV0IGE9MDtmb3IobGV0IHI9MCxzPXQubGVuZ3RoO3I8cztyKyspe2NvbnN0IHM9aVt0W3JdXTtpZihzKXtpZihlPT09YSlyZXR1cm4gczthKyt9fXRocm93IG5ldyBKYmlnMkVycm9yKCJjYW4ndCBmaW5kIGN1c3RvbSBIdWZmbWFuIHRhYmxlIil9ZnVuY3Rpb24gcmVhZFVuY29tcHJlc3NlZEJpdG1hcChlLHQsaSl7Y29uc3QgYT1bXTtmb3IobGV0IHI9MDtyPGk7cisrKXtjb25zdCBpPW5ldyBVaW50OEFycmF5KHQpO2EucHVzaChpKTtmb3IobGV0IGE9MDthPHQ7YSsrKWlbYV09ZS5yZWFkQml0KCk7ZS5ieXRlQWxpZ24oKX1yZXR1cm4gYX1mdW5jdGlvbiBkZWNvZGVNTVJCaXRtYXAoZSx0LGksYSl7Y29uc3Qgcj1uZXcgQ0NJVFRGYXhEZWNvZGVyKGUse0s6LTEsQ29sdW1uczp0LFJvd3M6aSxCbGFja0lzMTohMCxFbmRPZkJsb2NrOmF9KSxzPVtdO2xldCBuLG89ITE7Zm9yKGxldCBlPTA7ZTxpO2UrKyl7Y29uc3QgZT1uZXcgVWludDhBcnJheSh0KTtzLnB1c2goZSk7bGV0IGk9LTE7Zm9yKGxldCBhPTA7YTx0O2ErKyl7aWYoaTwwKXtuPXIucmVhZE5leHRDaGFyKCk7aWYoLTE9PT1uKXtuPTA7bz0hMH1pPTd9ZVthXT1uPj5pJjE7aS0tfX1pZihhJiYhbyl7Y29uc3QgZT01O2ZvcihsZXQgdD0wO3Q8ZSYmLTEhPT1yLnJlYWROZXh0Q2hhcigpO3QrKyk7fXJldHVybiBzfWNsYXNzIEpiaWcySW1hZ2V7cGFyc2VDaHVua3MoZSl7cmV0dXJuIGZ1bmN0aW9uIHBhcnNlSmJpZzJDaHVua3MoZSl7Y29uc3QgdD1uZXcgU2ltcGxlU2VnbWVudFZpc2l0b3I7Zm9yKGxldCBpPTAsYT1lLmxlbmd0aDtpPGE7aSsrKXtjb25zdCBhPWVbaV07cHJvY2Vzc1NlZ21lbnRzKHJlYWRTZWdtZW50cyh7fSxhLmRhdGEsYS5zdGFydCxhLmVuZCksdCl9cmV0dXJuIHQuYnVmZmVyfShlKX1wYXJzZShlKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZDogSmJpZzJJbWFnZS5wYXJzZSIpfX1jbGFzcyBKYmlnMlN0cmVhbSBleHRlbmRzIERlY29kZVN0cmVhbXtjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIodCk7dGhpcy5zdHJlYW09ZTt0aGlzLmRpY3Q9ZS5kaWN0O3RoaXMubWF5YmVMZW5ndGg9dDt0aGlzLnBhcmFtcz1pfWdldCBieXRlcygpe3JldHVybiBzaGFkb3codGhpcywiYnl0ZXMiLHRoaXMuc3RyZWFtLmdldEJ5dGVzKHRoaXMubWF5YmVMZW5ndGgpKX1lbnN1cmVCdWZmZXIoZSl7fXJlYWRCbG9jaygpe3RoaXMuZGVjb2RlSW1hZ2UoKX1kZWNvZGVJbWFnZShlKXtpZih0aGlzLmVvZilyZXR1cm4gdGhpcy5idWZmZXI7ZXx8PXRoaXMuYnl0ZXM7Y29uc3QgdD1uZXcgSmJpZzJJbWFnZSxpPVtdO2lmKHRoaXMucGFyYW1zIGluc3RhbmNlb2YgRGljdCl7Y29uc3QgZT10aGlzLnBhcmFtcy5nZXQoIkpCSUcyR2xvYmFscyIpO2lmKGUgaW5zdGFuY2VvZiBCYXNlU3RyZWFtKXtjb25zdCB0PWUuZ2V0Qnl0ZXMoKTtpLnB1c2goe2RhdGE6dCxzdGFydDowLGVuZDp0Lmxlbmd0aH0pfX1pLnB1c2goe2RhdGE6ZSxzdGFydDowLGVuZDplLmxlbmd0aH0pO2NvbnN0IGE9dC5wYXJzZUNodW5rcyhpKSxyPWEubGVuZ3RoO2ZvcihsZXQgZT0wO2U8cjtlKyspYVtlXV49MjU1O3RoaXMuYnVmZmVyPWE7dGhpcy5idWZmZXJMZW5ndGg9cjt0aGlzLmVvZj0hMDtyZXR1cm4gdGhpcy5idWZmZXJ9Z2V0IGNhbkFzeW5jRGVjb2RlSW1hZ2VGcm9tQnVmZmVyKCl7cmV0dXJuIHRoaXMuc3RyZWFtLmlzQXN5bmN9fWZ1bmN0aW9uIGNvbnZlcnRUb1JHQkEoZSl7c3dpdGNoKGUua2luZCl7Y2FzZSBTOnJldHVybiBjb252ZXJ0QmxhY2tBbmRXaGl0ZVRvUkdCQShlKTtjYXNlIGs6cmV0dXJuIGZ1bmN0aW9uIGNvbnZlcnRSR0JUb1JHQkEoe3NyYzplLHNyY1Bvczp0PTAsZGVzdDppLGRlc3RQb3M6YT0wLHdpZHRoOnIsaGVpZ2h0OnN9KXtsZXQgbj0wO2NvbnN0IG89cipzKjMsZz1vPj4yLGM9bmV3IFVpbnQzMkFycmF5KGUuYnVmZmVyLHQsZyk7aWYoRmVhdHVyZVRlc3QuaXNMaXR0bGVFbmRpYW4pe2Zvcig7bjxnLTI7bis9MyxhKz00KXtjb25zdCBlPWNbbl0sdD1jW24rMV0scj1jW24rMl07aVthXT00Mjc4MTkwMDgwfGU7aVthKzFdPWU+Pj4yNHx0PDw4fDQyNzgxOTAwODA7aVthKzJdPXQ+Pj4xNnxyPDwxNnw0Mjc4MTkwMDgwO2lbYSszXT1yPj4+OHw0Mjc4MTkwMDgwfWZvcihsZXQgcj00Km4scz10K287cjxzO3IrPTMpaVthKytdPWVbcl18ZVtyKzFdPDw4fGVbcisyXTw8MTZ8NDI3ODE5MDA4MH1lbHNle2Zvcig7bjxnLTI7bis9MyxhKz00KXtjb25zdCBlPWNbbl0sdD1jW24rMV0scj1jW24rMl07aVthXT0yNTV8ZTtpW2ErMV09ZTw8MjR8dD4+Pjh8MjU1O2lbYSsyXT10PDwxNnxyPj4+MTZ8MjU1O2lbYSszXT1yPDw4fDI1NX1mb3IobGV0IHI9NCpuLHM9dCtvO3I8cztyKz0zKWlbYSsrXT1lW3JdPDwyNHxlW3IrMV08PDE2fGVbcisyXTw8OHwyNTV9cmV0dXJue3NyY1Bvczp0K28sZGVzdFBvczphfX0oZSl9cmV0dXJuIG51bGx9ZnVuY3Rpb24gY29udmVydEJsYWNrQW5kV2hpdGVUb1JHQkEoe3NyYzplLHNyY1Bvczp0PTAsZGVzdDppLHdpZHRoOmEsaGVpZ2h0OnIsbm9uQmxhY2tDb2xvcjpzPTQyOTQ5NjcyOTUsaW52ZXJzZURlY29kZTpuPSExfSl7Y29uc3Qgbz1GZWF0dXJlVGVzdC5pc0xpdHRsZUVuZGlhbj80Mjc4MTkwMDgwOjI1NSxbZyxjXT1uP1tzLG9dOltvLHNdLGw9YT4+MyxoPTcmYSxDPWUubGVuZ3RoO2k9bmV3IFVpbnQzMkFycmF5KGkuYnVmZmVyKTtsZXQgUT0wO2ZvcihsZXQgYT0wO2E8cjthKyspe2Zvcihjb25zdCBhPXQrbDt0PGE7dCsrKXtjb25zdCBhPXQ8Qz9lW3RdOjI1NTtpW1ErK109MTI4JmE/YzpnO2lbUSsrXT02NCZhP2M6ZztpW1ErK109MzImYT9jOmc7aVtRKytdPTE2JmE/YzpnO2lbUSsrXT04JmE/YzpnO2lbUSsrXT00JmE/YzpnO2lbUSsrXT0yJmE/YzpnO2lbUSsrXT0xJmE/YzpnfWlmKDA9PT1oKWNvbnRpbnVlO2NvbnN0IGE9dDxDP2VbdCsrXToyNTU7Zm9yKGxldCBlPTA7ZTxoO2UrKylpW1ErK109YSYxPDw3LWU/YzpnfXJldHVybntzcmNQb3M6dCxkZXN0UG9zOlF9fWNsYXNzIEpwZWdFcnJvciBleHRlbmRzIGN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsIkpwZWdFcnJvciIpfX1jbGFzcyBETkxNYXJrZXJFcnJvciBleHRlbmRzIGN0e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSwiRE5MTWFya2VyRXJyb3IiKTt0aGlzLnNjYW5MaW5lcz10fX1jbGFzcyBFT0lNYXJrZXJFcnJvciBleHRlbmRzIGN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsIkVPSU1hcmtlckVycm9yIil9fWNvbnN0IFh0PW5ldyBVaW50OEFycmF5KFswLDEsOCwxNiw5LDIsMywxMCwxNywyNCwzMiwyNSwxOCwxMSw0LDUsMTIsMTksMjYsMzMsNDAsNDgsNDEsMzQsMjcsMjAsMTMsNiw3LDE0LDIxLDI4LDM1LDQyLDQ5LDU2LDU3LDUwLDQzLDM2LDI5LDIyLDE1LDIzLDMwLDM3LDQ0LDUxLDU4LDU5LDUyLDQ1LDM4LDMxLDM5LDQ2LDUzLDYwLDYxLDU0LDQ3LDU1LDYyLDYzXSksVnQ9NDAxNyxadD03OTksX3Q9MzQwNix6dD0yMjc2LCR0PTE1NjcsQWk9Mzc4NCxlaT01NzkzLHRpPTI4OTY7ZnVuY3Rpb24gYnVpbGRIdWZmbWFuVGFibGUoZSx0KXtsZXQgaSxhLHI9MCxzPTE2O2Zvcig7cz4wJiYhZVtzLTFdOylzLS07Y29uc3Qgbj1be2NoaWxkcmVuOltdLGluZGV4OjB9XTtsZXQgbyxnPW5bMF07Zm9yKGk9MDtpPHM7aSsrKXtmb3IoYT0wO2E8ZVtpXTthKyspe2c9bi5wb3AoKTtnLmNoaWxkcmVuW2cuaW5kZXhdPXRbcl07Zm9yKDtnLmluZGV4PjA7KWc9bi5wb3AoKTtnLmluZGV4Kys7bi5wdXNoKGcpO2Zvcig7bi5sZW5ndGg8PWk7KXtuLnB1c2gobz17Y2hpbGRyZW46W10saW5kZXg6MH0pO2cuY2hpbGRyZW5bZy5pbmRleF09by5jaGlsZHJlbjtnPW99cisrfWlmKGkrMTxzKXtuLnB1c2gobz17Y2hpbGRyZW46W10saW5kZXg6MH0pO2cuY2hpbGRyZW5bZy5pbmRleF09by5jaGlsZHJlbjtnPW99fXJldHVybiBuWzBdLmNoaWxkcmVufWZ1bmN0aW9uIGdldEJsb2NrQnVmZmVyT2Zmc2V0KGUsdCxpKXtyZXR1cm4gNjQqKChlLmJsb2Nrc1BlckxpbmUrMSkqdCtpKX1mdW5jdGlvbiBkZWNvZGVTY2FuKGUsdCxpLGEscixzLG4sbyxnLGM9ITEpe2NvbnN0IGw9aS5tY3VzUGVyTGluZSxoPWkucHJvZ3Jlc3NpdmUsQz10O2xldCBRPTAsRT0wO2Z1bmN0aW9uIHJlYWRCaXQoKXtpZihFPjApe0UtLTtyZXR1cm4gUT4+RSYxfVE9ZVt0KytdO2lmKDI1NT09PVEpe2NvbnN0IGE9ZVt0KytdO2lmKGEpe2lmKDIyMD09PWEmJmMpe2NvbnN0IGE9cmVhZFVpbnQxNihlLHQrPTIpO3QrPTI7aWYoYT4wJiZhIT09aS5zY2FuTGluZXMpdGhyb3cgbmV3IEROTE1hcmtlckVycm9yKCJGb3VuZCBETkwgbWFya2VyICgweEZGREMpIHdoaWxlIHBhcnNpbmcgc2NhbiBkYXRhIixhKX1lbHNlIGlmKDIxNz09PWEpe2lmKGMpe2NvbnN0IGU9cCooOD09PWkucHJlY2lzaW9uPzg6MCk7aWYoZT4wJiZNYXRoLnJvdW5kKGkuc2NhbkxpbmVzL2UpPj01KXRocm93IG5ldyBETkxNYXJrZXJFcnJvcigiRm91bmQgRU9JIG1hcmtlciAoMHhGRkQ5KSB3aGlsZSBwYXJzaW5nIHNjYW4gZGF0YSwgcG9zc2libHkgY2F1c2VkIGJ5IGluY29ycmVjdCBgc2NhbkxpbmVzYCBwYXJhbWV0ZXIiLGUpfXRocm93IG5ldyBFT0lNYXJrZXJFcnJvcigiRm91bmQgRU9JIG1hcmtlciAoMHhGRkQ5KSB3aGlsZSBwYXJzaW5nIHNjYW4gZGF0YSIpfXRocm93IG5ldyBKcGVnRXJyb3IoYHVuZXhwZWN0ZWQgbWFya2VyICR7KFE8PDh8YSkudG9TdHJpbmcoMTYpfWApfX1FPTc7cmV0dXJuIFE+Pj43fWZ1bmN0aW9uIGRlY29kZUh1ZmZtYW4oZSl7bGV0IHQ9ZTtmb3IoOzspe3Q9dFtyZWFkQml0KCldO3N3aXRjaCh0eXBlb2YgdCl7Y2FzZSJudW1iZXIiOnJldHVybiB0O2Nhc2Uib2JqZWN0Ijpjb250aW51ZX10aHJvdyBuZXcgSnBlZ0Vycm9yKCJpbnZhbGlkIGh1ZmZtYW4gc2VxdWVuY2UiKX19ZnVuY3Rpb24gcmVjZWl2ZShlKXtsZXQgdD0wO2Zvcig7ZT4wOyl7dD10PDwxfHJlYWRCaXQoKTtlLS19cmV0dXJuIHR9ZnVuY3Rpb24gcmVjZWl2ZUFuZEV4dGVuZChlKXtpZigxPT09ZSlyZXR1cm4gMT09PXJlYWRCaXQoKT8xOi0xO2NvbnN0IHQ9cmVjZWl2ZShlKTtyZXR1cm4gdD49MTw8ZS0xP3Q6dCsoLTE8PGUpKzF9bGV0IHU9MDtsZXQgZCxmPTA7bGV0IHA9MDtmdW5jdGlvbiBkZWNvZGVNY3UoZSx0LGksYSxyKXtjb25zdCBzPWklbDtwPShpL2x8MCkqZS52K2E7Y29uc3Qgbj1zKmUuaCtyO3QoZSxnZXRCbG9ja0J1ZmZlck9mZnNldChlLHAsbikpfWZ1bmN0aW9uIGRlY29kZUJsb2NrKGUsdCxpKXtwPWkvZS5ibG9ja3NQZXJMaW5lfDA7Y29uc3QgYT1pJWUuYmxvY2tzUGVyTGluZTt0KGUsZ2V0QmxvY2tCdWZmZXJPZmZzZXQoZSxwLGEpKX1jb25zdCBtPWEubGVuZ3RoO2xldCB5LHcsYixELFMsaztrPWg/MD09PXM/MD09PW8/ZnVuY3Rpb24gZGVjb2RlRENGaXJzdChlLHQpe2NvbnN0IGk9ZGVjb2RlSHVmZm1hbihlLmh1ZmZtYW5UYWJsZURDKSxhPTA9PT1pPzA6cmVjZWl2ZUFuZEV4dGVuZChpKTw8ZztlLmJsb2NrRGF0YVt0XT1lLnByZWQrPWF9OmZ1bmN0aW9uIGRlY29kZURDU3VjY2Vzc2l2ZShlLHQpe2UuYmxvY2tEYXRhW3RdfD1yZWFkQml0KCk8PGd9OjA9PT1vP2Z1bmN0aW9uIGRlY29kZUFDRmlyc3QoZSx0KXtpZih1PjApe3UtLTtyZXR1cm59bGV0IGk9cztjb25zdCBhPW47Zm9yKDtpPD1hOyl7Y29uc3QgYT1kZWNvZGVIdWZmbWFuKGUuaHVmZm1hblRhYmxlQUMpLHI9MTUmYSxzPWE+PjQ7aWYoMD09PXIpe2lmKHM8MTUpe3U9cmVjZWl2ZShzKSsoMTw8cyktMTticmVha31pKz0xNjtjb250aW51ZX1pKz1zO2NvbnN0IG49WHRbaV07ZS5ibG9ja0RhdGFbdCtuXT1yZWNlaXZlQW5kRXh0ZW5kKHIpKigxPDxnKTtpKyt9fTpmdW5jdGlvbiBkZWNvZGVBQ1N1Y2Nlc3NpdmUoZSx0KXtsZXQgaT1zO2NvbnN0IGE9bjtsZXQgcixvLGM9MDtmb3IoO2k8PWE7KXtjb25zdCBhPXQrWHRbaV0scz1lLmJsb2NrRGF0YVthXTwwPy0xOjE7c3dpdGNoKGYpe2Nhc2UgMDpvPWRlY29kZUh1ZmZtYW4oZS5odWZmbWFuVGFibGVBQyk7cj0xNSZvO2M9bz4+NDtpZigwPT09cilpZihjPDE1KXt1PXJlY2VpdmUoYykrKDE8PGMpO2Y9NH1lbHNle2M9MTY7Zj0xfWVsc2V7aWYoMSE9PXIpdGhyb3cgbmV3IEpwZWdFcnJvcigiaW52YWxpZCBBQ24gZW5jb2RpbmciKTtkPXJlY2VpdmVBbmRFeHRlbmQocik7Zj1jPzI6M31jb250aW51ZTtjYXNlIDE6Y2FzZSAyOmlmKGUuYmxvY2tEYXRhW2FdKWUuYmxvY2tEYXRhW2FdKz1zKihyZWFkQml0KCk8PGcpO2Vsc2V7Yy0tOzA9PT1jJiYoZj0yPT09Zj8zOjApfWJyZWFrO2Nhc2UgMzppZihlLmJsb2NrRGF0YVthXSllLmJsb2NrRGF0YVthXSs9cyoocmVhZEJpdCgpPDxnKTtlbHNle2UuYmxvY2tEYXRhW2FdPWQ8PGc7Zj0wfWJyZWFrO2Nhc2UgNDplLmJsb2NrRGF0YVthXSYmKGUuYmxvY2tEYXRhW2FdKz1zKihyZWFkQml0KCk8PGcpKX1pKyt9aWYoND09PWYpe3UtLTswPT09dSYmKGY9MCl9fTpmdW5jdGlvbiBkZWNvZGVCYXNlbGluZShlLHQpe2NvbnN0IGk9ZGVjb2RlSHVmZm1hbihlLmh1ZmZtYW5UYWJsZURDKSxhPTA9PT1pPzA6cmVjZWl2ZUFuZEV4dGVuZChpKTtlLmJsb2NrRGF0YVt0XT1lLnByZWQrPWE7bGV0IHI9MTtmb3IoO3I8NjQ7KXtjb25zdCBpPWRlY29kZUh1ZmZtYW4oZS5odWZmbWFuVGFibGVBQyksYT0xNSZpLHM9aT4+NDtpZigwPT09YSl7aWYoczwxNSlicmVhaztyKz0xNjtjb250aW51ZX1yKz1zO2NvbnN0IG49WHRbcl07ZS5ibG9ja0RhdGFbdCtuXT1yZWNlaXZlQW5kRXh0ZW5kKGEpO3IrK319O2xldCBSLE49MDtjb25zdCBHPTE9PT1tP2FbMF0uYmxvY2tzUGVyTGluZSphWzBdLmJsb2Nrc1BlckNvbHVtbjpsKmkubWN1c1BlckNvbHVtbjtsZXQgTSxVO2Zvcig7Tjw9Rzspe2NvbnN0IGk9cj9NYXRoLm1pbihHLU4scik6RztpZihpPjApe2Zvcih3PTA7dzxtO3crKylhW3ddLnByZWQ9MDt1PTA7aWYoMT09PW0pe3k9YVswXTtmb3IoUz0wO1M8aTtTKyspe2RlY29kZUJsb2NrKHksayxOKTtOKyt9fWVsc2UgZm9yKFM9MDtTPGk7UysrKXtmb3Iodz0wO3c8bTt3Kyspe3k9YVt3XTtNPXkuaDtVPXkudjtmb3IoYj0wO2I8VTtiKyspZm9yKEQ9MDtEPE07RCsrKWRlY29kZU1jdSh5LGssTixiLEQpfU4rK319RT0wO1I9ZmluZE5leHRGaWxlTWFya2VyKGUsdCk7aWYoIVIpYnJlYWs7aWYoUi5pbnZhbGlkKXt3YXJuKGBkZWNvZGVTY2FuIC0gJHtpPjA/InVuZXhwZWN0ZWQiOiJleGNlc3NpdmUifSBNQ1UgZGF0YSwgY3VycmVudCBtYXJrZXIgaXM6ICR7Ui5pbnZhbGlkfWApO3Q9Ui5vZmZzZXR9aWYoIShSLm1hcmtlcj49NjU0ODgmJlIubWFya2VyPD02NTQ5NSkpYnJlYWs7dCs9Mn1yZXR1cm4gdC1DfWZ1bmN0aW9uIHF1YW50aXplQW5kSW52ZXJzZShlLHQsaSl7Y29uc3QgYT1lLnF1YW50aXphdGlvblRhYmxlLHI9ZS5ibG9ja0RhdGE7bGV0IHMsbixvLGcsYyxsLGgsQyxRLEUsdSxkLGYscCxtLHksdztpZighYSl0aHJvdyBuZXcgSnBlZ0Vycm9yKCJtaXNzaW5nIHJlcXVpcmVkIFF1YW50aXphdGlvbiBUYWJsZS4iKTtmb3IobGV0IGU9MDtlPDY0O2UrPTgpe1E9clt0K2VdO0U9clt0K2UrMV07dT1yW3QrZSsyXTtkPXJbdCtlKzNdO2Y9clt0K2UrNF07cD1yW3QrZSs1XTttPXJbdCtlKzZdO3k9clt0K2UrN107USo9YVtlXTtpZihFfHV8ZHxmfHB8bXx5KXtFKj1hW2UrMV07dSo9YVtlKzJdO2QqPWFbZSszXTtmKj1hW2UrNF07cCo9YVtlKzVdO20qPWFbZSs2XTt5Kj1hW2UrN107cz1laSpRKzEyOD4+ODtuPWVpKmYrMTI4Pj44O289dTtnPW07Yz10aSooRS15KSsxMjg+Pjg7Qz10aSooRSt5KSsxMjg+Pjg7bD1kPDw0O2g9cDw8NDtzPXMrbisxPj4xO249cy1uO3c9bypBaStnKiR0KzEyOD4+ODtvPW8qJHQtZypBaSsxMjg+Pjg7Zz13O2M9YytoKzE+PjE7aD1jLWg7Qz1DK2wrMT4+MTtsPUMtbDtzPXMrZysxPj4xO2c9cy1nO249bitvKzE+PjE7bz1uLW87dz1jKnp0K0MqX3QrMjA0OD4+MTI7Yz1jKl90LUMqenQrMjA0OD4+MTI7Qz13O3c9bCpadCtoKlZ0KzIwNDg+PjEyO2w9bCpWdC1oKlp0KzIwNDg+PjEyO2g9dztpW2VdPXMrQztpW2UrN109cy1DO2lbZSsxXT1uK2g7aVtlKzZdPW4taDtpW2UrMl09bytsO2lbZSs1XT1vLWw7aVtlKzNdPWcrYztpW2UrNF09Zy1jfWVsc2V7dz1laSpRKzUxMj4+MTA7aVtlXT13O2lbZSsxXT13O2lbZSsyXT13O2lbZSszXT13O2lbZSs0XT13O2lbZSs1XT13O2lbZSs2XT13O2lbZSs3XT13fX1mb3IobGV0IGU9MDtlPDg7KytlKXtRPWlbZV07RT1pW2UrOF07dT1pW2UrMTZdO2Q9aVtlKzI0XTtmPWlbZSszMl07cD1pW2UrNDBdO209aVtlKzQ4XTt5PWlbZSs1Nl07aWYoRXx1fGR8ZnxwfG18eSl7cz1laSpRKzIwNDg+PjEyO249ZWkqZisyMDQ4Pj4xMjtvPXU7Zz1tO2M9dGkqKEUteSkrMjA0OD4+MTI7Qz10aSooRSt5KSsyMDQ4Pj4xMjtsPWQ7aD1wO3M9NDExMisocytuKzE+PjEpO249cy1uO3c9bypBaStnKiR0KzIwNDg+PjEyO289byokdC1nKkFpKzIwNDg+PjEyO2c9dztjPWMraCsxPj4xO2g9Yy1oO0M9QytsKzE+PjE7bD1DLWw7cz1zK2crMT4+MTtnPXMtZztuPW4rbysxPj4xO289bi1vO3c9Yyp6dCtDKl90KzIwNDg+PjEyO2M9YypfdC1DKnp0KzIwNDg+PjEyO0M9dzt3PWwqWnQraCpWdCsyMDQ4Pj4xMjtsPWwqVnQtaCpadCsyMDQ4Pj4xMjtoPXc7UT1zK0M7eT1zLUM7RT1uK2g7bT1uLWg7dT1vK2w7cD1vLWw7ZD1nK2M7Zj1nLWM7UTwxNj9RPTA6UT49NDA4MD9RPTI1NTpRPj49NDtFPDE2P0U9MDpFPj00MDgwP0U9MjU1OkU+Pj00O3U8MTY/dT0wOnU+PTQwODA/dT0yNTU6dT4+PTQ7ZDwxNj9kPTA6ZD49NDA4MD9kPTI1NTpkPj49NDtmPDE2P2Y9MDpmPj00MDgwP2Y9MjU1OmY+Pj00O3A8MTY/cD0wOnA+PTQwODA/cD0yNTU6cD4+PTQ7bTwxNj9tPTA6bT49NDA4MD9tPTI1NTptPj49NDt5PDE2P3k9MDp5Pj00MDgwP3k9MjU1Onk+Pj00O3JbdCtlXT1RO3JbdCtlKzhdPUU7clt0K2UrMTZdPXU7clt0K2UrMjRdPWQ7clt0K2UrMzJdPWY7clt0K2UrNDBdPXA7clt0K2UrNDhdPW07clt0K2UrNTZdPXl9ZWxzZXt3PWVpKlErODE5Mj4+MTQ7dz13PC0yMDQwPzA6dz49MjAyND8yNTU6dysyMDU2Pj40O3JbdCtlXT13O3JbdCtlKzhdPXc7clt0K2UrMTZdPXc7clt0K2UrMjRdPXc7clt0K2UrMzJdPXc7clt0K2UrNDBdPXc7clt0K2UrNDhdPXc7clt0K2UrNTZdPXd9fX1mdW5jdGlvbiBidWlsZENvbXBvbmVudERhdGEoZSx0KXtjb25zdCBpPXQuYmxvY2tzUGVyTGluZSxhPXQuYmxvY2tzUGVyQ29sdW1uLHI9bmV3IEludDE2QXJyYXkoNjQpO2ZvcihsZXQgZT0wO2U8YTtlKyspZm9yKGxldCBhPTA7YTxpO2ErKyl7cXVhbnRpemVBbmRJbnZlcnNlKHQsZ2V0QmxvY2tCdWZmZXJPZmZzZXQodCxlLGEpLHIpfXJldHVybiB0LmJsb2NrRGF0YX1mdW5jdGlvbiBmaW5kTmV4dEZpbGVNYXJrZXIoZSx0LGk9dCl7Y29uc3QgYT1lLmxlbmd0aC0xO2xldCByPWk8dD9pOnQ7aWYodD49YSlyZXR1cm4gbnVsbDtjb25zdCBzPXJlYWRVaW50MTYoZSx0KTtpZihzPj02NTQ3MiYmczw9NjU1MzQpcmV0dXJue2ludmFsaWQ6bnVsbCxtYXJrZXI6cyxvZmZzZXQ6dH07bGV0IG49cmVhZFVpbnQxNihlLHIpO2Zvcig7IShuPj02NTQ3MiYmbjw9NjU1MzQpOyl7aWYoKytyPj1hKXJldHVybiBudWxsO249cmVhZFVpbnQxNihlLHIpfXJldHVybntpbnZhbGlkOnMudG9TdHJpbmcoMTYpLG1hcmtlcjpuLG9mZnNldDpyfX1mdW5jdGlvbiBwcmVwYXJlQ29tcG9uZW50cyhlKXtjb25zdCB0PU1hdGguY2VpbChlLnNhbXBsZXNQZXJMaW5lLzgvZS5tYXhIKSxpPU1hdGguY2VpbChlLnNjYW5MaW5lcy84L2UubWF4Vik7Zm9yKGNvbnN0IGEgb2YgZS5jb21wb25lbnRzKXtjb25zdCByPU1hdGguY2VpbChNYXRoLmNlaWwoZS5zYW1wbGVzUGVyTGluZS84KSphLmgvZS5tYXhIKSxzPU1hdGguY2VpbChNYXRoLmNlaWwoZS5zY2FuTGluZXMvOCkqYS52L2UubWF4Viksbj10KmEuaCxvPTY0KihpKmEudikqKG4rMSk7YS5ibG9ja0RhdGE9bmV3IEludDE2QXJyYXkobyk7YS5ibG9ja3NQZXJMaW5lPXI7YS5ibG9ja3NQZXJDb2x1bW49c31lLm1jdXNQZXJMaW5lPXQ7ZS5tY3VzUGVyQ29sdW1uPWl9ZnVuY3Rpb24gcmVhZERhdGFCbG9jayhlLHQpe2NvbnN0IGk9cmVhZFVpbnQxNihlLHQpO2xldCBhPSh0Kz0yKStpLTI7Y29uc3Qgcj1maW5kTmV4dEZpbGVNYXJrZXIoZSxhLHQpO2lmKHI/LmludmFsaWQpe3dhcm4oInJlYWREYXRhQmxvY2sgLSBpbmNvcnJlY3QgbGVuZ3RoLCBjdXJyZW50IG1hcmtlciBpczogIityLmludmFsaWQpO2E9ci5vZmZzZXR9Y29uc3Qgcz1lLnN1YmFycmF5KHQsYSk7cmV0dXJue2FwcERhdGE6cyxuZXdPZmZzZXQ6dCs9cy5sZW5ndGh9fWZ1bmN0aW9uIHNraXBEYXRhKGUsdCl7Y29uc3QgaT1yZWFkVWludDE2KGUsdCksYT0odCs9MikraS0yLHI9ZmluZE5leHRGaWxlTWFya2VyKGUsYSx0KTtyZXR1cm4gcj8uaW52YWxpZD9yLm9mZnNldDphfWNsYXNzIEpwZWdJbWFnZXtjb25zdHJ1Y3Rvcih7ZGVjb2RlVHJhbnNmb3JtOmU9bnVsbCxjb2xvclRyYW5zZm9ybTp0PS0xfT17fSl7dGhpcy5fZGVjb2RlVHJhbnNmb3JtPWU7dGhpcy5fY29sb3JUcmFuc2Zvcm09dH1zdGF0aWMgY2FuVXNlSW1hZ2VEZWNvZGVyKGUsdD0tMSl7bGV0IGk9MCxhPW51bGwscj1yZWFkVWludDE2KGUsaSk7aSs9MjtpZig2NTQ5NiE9PXIpdGhyb3cgbmV3IEpwZWdFcnJvcigiU09JIG5vdCBmb3VuZCIpO3I9cmVhZFVpbnQxNihlLGkpO2krPTI7QTpmb3IoOzY1NDk3IT09cjspe3N3aXRjaChyKXtjYXNlIDY1NDcyOmNhc2UgNjU0NzM6Y2FzZSA2NTQ3NDphPWVbaSs3XTticmVhayBBO2Nhc2UgNjU1MzU6MjU1IT09ZVtpXSYmaS0tfWk9c2tpcERhdGEoZSxpKTtyPXJlYWRVaW50MTYoZSxpKTtpKz0yfXJldHVybiA0IT09YSYmKDMhPT1hfHwwIT09dCl9cGFyc2UoZSx7ZG5sU2NhbkxpbmVzOnQ9bnVsbH09e30pe2xldCBpLGEscj0wLHM9bnVsbCxuPW51bGwsbz0wO2NvbnN0IGc9W10sYz1bXSxsPVtdO2xldCBoPXJlYWRVaW50MTYoZSxyKTtyKz0yO2lmKDY1NDk2IT09aCl0aHJvdyBuZXcgSnBlZ0Vycm9yKCJTT0kgbm90IGZvdW5kIik7aD1yZWFkVWludDE2KGUscik7cis9MjtBOmZvcig7NjU0OTchPT1oOyl7bGV0IEMsUSxFO3N3aXRjaChoKXtjYXNlIDY1NTA0OmNhc2UgNjU1MDU6Y2FzZSA2NTUwNjpjYXNlIDY1NTA3OmNhc2UgNjU1MDg6Y2FzZSA2NTUwOTpjYXNlIDY1NTEwOmNhc2UgNjU1MTE6Y2FzZSA2NTUxMjpjYXNlIDY1NTEzOmNhc2UgNjU1MTQ6Y2FzZSA2NTUxNTpjYXNlIDY1NTE2OmNhc2UgNjU1MTc6Y2FzZSA2NTUxODpjYXNlIDY1NTE5OmNhc2UgNjU1MzQ6Y29uc3R7YXBwRGF0YTp1LG5ld09mZnNldDpkfT1yZWFkRGF0YUJsb2NrKGUscik7cj1kOzY1NTA0PT09aCYmNzQ9PT11WzBdJiY3MD09PXVbMV0mJjczPT09dVsyXSYmNzA9PT11WzNdJiYwPT09dVs0XSYmKHM9e3ZlcnNpb246e21ham9yOnVbNV0sbWlub3I6dVs2XX0sZGVuc2l0eVVuaXRzOnVbN10seERlbnNpdHk6dVs4XTw8OHx1WzldLHlEZW5zaXR5OnVbMTBdPDw4fHVbMTFdLHRodW1iV2lkdGg6dVsxMl0sdGh1bWJIZWlnaHQ6dVsxM10sdGh1bWJEYXRhOnUuc3ViYXJyYXkoMTQsMTQrMyp1WzEyXSp1WzEzXSl9KTs2NTUxOD09PWgmJjY1PT09dVswXSYmMTAwPT09dVsxXSYmMTExPT09dVsyXSYmOTg9PT11WzNdJiYxMDE9PT11WzRdJiYobj17dmVyc2lvbjp1WzVdPDw4fHVbNl0sZmxhZ3MwOnVbN108PDh8dVs4XSxmbGFnczE6dVs5XTw8OHx1WzEwXSx0cmFuc2Zvcm1Db2RlOnVbMTFdfSk7YnJlYWs7Y2FzZSA2NTQ5OTpjb25zdCBmPXJlYWRVaW50MTYoZSxyKTtyKz0yO2NvbnN0IHA9ZityLTI7bGV0IG07Zm9yKDtyPHA7KXtjb25zdCB0PWVbcisrXSxpPW5ldyBVaW50MTZBcnJheSg2NCk7aWYodD4+NCl7aWYodD4+NCE9MSl0aHJvdyBuZXcgSnBlZ0Vycm9yKCJEUVQgLSBpbnZhbGlkIHRhYmxlIHNwZWMiKTtmb3IoUT0wO1E8NjQ7USsrKXttPVh0W1FdO2lbbV09cmVhZFVpbnQxNihlLHIpO3IrPTJ9fWVsc2UgZm9yKFE9MDtRPDY0O1ErKyl7bT1YdFtRXTtpW21dPWVbcisrXX1nWzE1JnRdPWl9YnJlYWs7Y2FzZSA2NTQ3MjpjYXNlIDY1NDczOmNhc2UgNjU0NzQ6aWYoaSl0aHJvdyBuZXcgSnBlZ0Vycm9yKCJPbmx5IHNpbmdsZSBmcmFtZSBKUEVHcyBzdXBwb3J0ZWQiKTtyKz0yO2k9e307aS5leHRlbmRlZD02NTQ3Mz09PWg7aS5wcm9ncmVzc2l2ZT02NTQ3ND09PWg7aS5wcmVjaXNpb249ZVtyKytdO2NvbnN0IHk9cmVhZFVpbnQxNihlLHIpO3IrPTI7aS5zY2FuTGluZXM9dHx8eTtpLnNhbXBsZXNQZXJMaW5lPXJlYWRVaW50MTYoZSxyKTtyKz0yO2kuY29tcG9uZW50cz1bXTtpLmNvbXBvbmVudElkcz17fTtjb25zdCB3PWVbcisrXTtsZXQgYj0wLEQ9MDtmb3IoQz0wO0M8dztDKyspe2NvbnN0IHQ9ZVtyXSxhPWVbcisxXT4+NCxzPTE1JmVbcisxXTtiPGEmJihiPWEpO0Q8cyYmKEQ9cyk7Y29uc3Qgbj1lW3IrMl07RT1pLmNvbXBvbmVudHMucHVzaCh7aDphLHY6cyxxdWFudGl6YXRpb25JZDpuLHF1YW50aXphdGlvblRhYmxlOm51bGx9KTtpLmNvbXBvbmVudElkc1t0XT1FLTE7cis9M31pLm1heEg9YjtpLm1heFY9RDtwcmVwYXJlQ29tcG9uZW50cyhpKTticmVhaztjYXNlIDY1NDc2OmNvbnN0IFM9cmVhZFVpbnQxNihlLHIpO3IrPTI7Zm9yKEM9MjtDPFM7KXtjb25zdCB0PWVbcisrXSxpPW5ldyBVaW50OEFycmF5KDE2KTtsZXQgYT0wO2ZvcihRPTA7UTwxNjtRKysscisrKWErPWlbUV09ZVtyXTtjb25zdCBzPW5ldyBVaW50OEFycmF5KGEpO2ZvcihRPTA7UTxhO1ErKyxyKyspc1tRXT1lW3JdO0MrPTE3K2E7KHQ+PjQ/YzpsKVsxNSZ0XT1idWlsZEh1ZmZtYW5UYWJsZShpLHMpfWJyZWFrO2Nhc2UgNjU1MDE6cis9MjthPXJlYWRVaW50MTYoZSxyKTtyKz0yO2JyZWFrO2Nhc2UgNjU0OTg6Y29uc3Qgaz0xPT0rK28mJiF0O3IrPTI7Y29uc3QgUj1lW3IrK10sTj1bXTtmb3IoQz0wO0M8UjtDKyspe2NvbnN0IHQ9ZVtyKytdLGE9aS5jb21wb25lbnRJZHNbdF0scz1pLmNvbXBvbmVudHNbYV07cy5pbmRleD10O2NvbnN0IG49ZVtyKytdO3MuaHVmZm1hblRhYmxlREM9bFtuPj40XTtzLmh1ZmZtYW5UYWJsZUFDPWNbMTUmbl07Ti5wdXNoKHMpfWNvbnN0IEc9ZVtyKytdLE09ZVtyKytdLFU9ZVtyKytdO3RyeXtyKz1kZWNvZGVTY2FuKGUscixpLE4sYSxHLE0sVT4+NCwxNSZVLGspfWNhdGNoKHQpe2lmKHQgaW5zdGFuY2VvZiBETkxNYXJrZXJFcnJvcil7d2FybihgJHt0Lm1lc3NhZ2V9IC0tIGF0dGVtcHRpbmcgdG8gcmUtcGFyc2UgdGhlIEpQRUcgaW1hZ2UuYCk7cmV0dXJuIHRoaXMucGFyc2UoZSx7ZG5sU2NhbkxpbmVzOnQuc2NhbkxpbmVzfSl9aWYodCBpbnN0YW5jZW9mIEVPSU1hcmtlckVycm9yKXt3YXJuKGAke3QubWVzc2FnZX0gLS0gaWdub3JpbmcgdGhlIHJlc3Qgb2YgdGhlIGltYWdlIGRhdGEuYCk7YnJlYWsgQX10aHJvdyB0fWJyZWFrO2Nhc2UgNjU1MDA6cis9NDticmVhaztjYXNlIDY1NTM1OjI1NSE9PWVbcl0mJnItLTticmVhaztkZWZhdWx0OmNvbnN0IHg9ZmluZE5leHRGaWxlTWFya2VyKGUsci0yLHItMyk7aWYoeD8uaW52YWxpZCl7d2FybigiSnBlZ0ltYWdlLnBhcnNlIC0gdW5leHBlY3RlZCBkYXRhLCBjdXJyZW50IG1hcmtlciBpczogIit4LmludmFsaWQpO3I9eC5vZmZzZXQ7YnJlYWt9aWYoIXh8fHI+PWUubGVuZ3RoLTEpe3dhcm4oIkpwZWdJbWFnZS5wYXJzZSAtIHJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgaW1hZ2UgZGF0YSB3aXRob3V0IGZpbmRpbmcgYW4gRU9JIG1hcmtlciAoMHhGRkQ5KS4iKTticmVhayBBfXRocm93IG5ldyBKcGVnRXJyb3IoIkpwZWdJbWFnZS5wYXJzZSAtIHVua25vd24gbWFya2VyOiAiK2gudG9TdHJpbmcoMTYpKX1oPXJlYWRVaW50MTYoZSxyKTtyKz0yfWlmKCFpKXRocm93IG5ldyBKcGVnRXJyb3IoIkpwZWdJbWFnZS5wYXJzZSAtIG5vIGZyYW1lIGRhdGEgZm91bmQuIik7dGhpcy53aWR0aD1pLnNhbXBsZXNQZXJMaW5lO3RoaXMuaGVpZ2h0PWkuc2NhbkxpbmVzO3RoaXMuamZpZj1zO3RoaXMuYWRvYmU9bjt0aGlzLmNvbXBvbmVudHM9W107Zm9yKGNvbnN0IGUgb2YgaS5jb21wb25lbnRzKXtjb25zdCB0PWdbZS5xdWFudGl6YXRpb25JZF07dCYmKGUucXVhbnRpemF0aW9uVGFibGU9dCk7dGhpcy5jb21wb25lbnRzLnB1c2goe2luZGV4OmUuaW5kZXgsb3V0cHV0OmJ1aWxkQ29tcG9uZW50RGF0YSgwLGUpLHNjYWxlWDplLmgvaS5tYXhILHNjYWxlWTplLnYvaS5tYXhWLGJsb2Nrc1BlckxpbmU6ZS5ibG9ja3NQZXJMaW5lLGJsb2Nrc1BlckNvbHVtbjplLmJsb2Nrc1BlckNvbHVtbn0pfXRoaXMubnVtQ29tcG9uZW50cz10aGlzLmNvbXBvbmVudHMubGVuZ3RofV9nZXRMaW5lYXJpemVkQmxvY2tEYXRhKGUsdCxpPSExKXtjb25zdCBhPXRoaXMud2lkdGgvZSxyPXRoaXMuaGVpZ2h0L3Q7bGV0IHMsbixvLGcsYyxsLGgsQyxRLEUsdSxkPTA7Y29uc3QgZj10aGlzLmNvbXBvbmVudHMubGVuZ3RoLHA9ZSp0KmYsbT1uZXcgVWludDhDbGFtcGVkQXJyYXkocCkseT1uZXcgVWludDMyQXJyYXkoZSksdz00Mjk0OTY3Mjg4O2xldCBiO2ZvcihoPTA7aDxmO2grKyl7cz10aGlzLmNvbXBvbmVudHNbaF07bj1zLnNjYWxlWCphO289cy5zY2FsZVkqcjtkPWg7dT1zLm91dHB1dDtnPXMuYmxvY2tzUGVyTGluZSsxPDwzO2lmKG4hPT1iKXtmb3IoYz0wO2M8ZTtjKyspe0M9MHxjKm47eVtjXT0oQyZ3KTw8M3w3JkN9Yj1ufWZvcihsPTA7bDx0O2wrKyl7Qz0wfGwqbztFPWcqKEMmdyl8KDcmQyk8PDM7Zm9yKGM9MDtjPGU7YysrKXttW2RdPXVbRSt5W2NdXTtkKz1mfX19bGV0IEQ9dGhpcy5fZGVjb2RlVHJhbnNmb3JtO2l8fDQhPT1mfHxEfHwoRD1uZXcgSW50MzJBcnJheShbLTI1NiwyNTUsLTI1NiwyNTUsLTI1NiwyNTUsLTI1NiwyNTVdKSk7aWYoRClmb3IoaD0wO2g8cDspZm9yKEM9MCxRPTA7QzxmO0MrKyxoKyssUSs9MiltW2hdPShtW2hdKkRbUV0+PjgpK0RbUSsxXTtyZXR1cm4gbX1nZXQgX2lzQ29sb3JDb252ZXJzaW9uTmVlZGVkKCl7cmV0dXJuIHRoaXMuYWRvYmU/ISF0aGlzLmFkb2JlLnRyYW5zZm9ybUNvZGU6Mz09PXRoaXMubnVtQ29tcG9uZW50cz8wIT09dGhpcy5fY29sb3JUcmFuc2Zvcm0mJig4MiE9PXRoaXMuY29tcG9uZW50c1swXS5pbmRleHx8NzEhPT10aGlzLmNvbXBvbmVudHNbMV0uaW5kZXh8fDY2IT09dGhpcy5jb21wb25lbnRzWzJdLmluZGV4KToxPT09dGhpcy5fY29sb3JUcmFuc2Zvcm19X2NvbnZlcnRZY2NUb1JnYihlKXtsZXQgdCxpLGE7Zm9yKGxldCByPTAscz1lLmxlbmd0aDtyPHM7cis9Myl7dD1lW3JdO2k9ZVtyKzFdO2E9ZVtyKzJdO2Vbcl09dC0xNzkuNDU2KzEuNDAyKmE7ZVtyKzFdPXQrMTM1LjQ1OS0uMzQ0KmktLjcxNCphO2VbcisyXT10LTIyNi44MTYrMS43NzIqaX1yZXR1cm4gZX1fY29udmVydFljY1RvUmdiYShlLHQpe2ZvcihsZXQgaT0wLGE9MCxyPWUubGVuZ3RoO2k8cjtpKz0zLGErPTQpe2NvbnN0IHI9ZVtpXSxzPWVbaSsxXSxuPWVbaSsyXTt0W2FdPXItMTc5LjQ1NisxLjQwMipuO3RbYSsxXT1yKzEzNS40NTktLjM0NCpzLS43MTQqbjt0W2ErMl09ci0yMjYuODE2KzEuNzcyKnM7dFthKzNdPTI1NX1yZXR1cm4gdH1fY29udmVydFljY2tUb1JnYihlKXtsZXQgdCxpLGEscixzPTA7Zm9yKGxldCBuPTAsbz1lLmxlbmd0aDtuPG87bis9NCl7dD1lW25dO2k9ZVtuKzFdO2E9ZVtuKzJdO3I9ZVtuKzNdO2VbcysrXT1pKigtNjYwNjM1NjY5NDIwMzY0ZS0xOSppKy4wMDA0MzcxMzA0NzU5MjYyMzIqYS01NDA4MDYxMDA2NDU5OWUtMTgqdCsuMDAwNDg0NDk3OTcxMjAyODEqci0uMTU0MzYyMTUxODcxMTI2KS0xMjIuNjcxOTU0MDY4OTQrYSooLS4wMDA5NTc5NjQzNzg0NDU3NzMqYSsuMDAwODE3MDc2OTExMzQ2NjI1KnQtLjAwNDc3MjcxNDA1NDA4NzQ3KnIrMS41MzM4MDI1MzIyMTczNCkrdCooLjAwMDk2MTI1MDE4NDEzMDY4OCp0LS4wMDI2NjI1NzMzMjI4MzkzMypyKy40ODM1NzA4ODQ1MTI2NSkrciooLS4wMDAzMzYxOTcxNzc2MTgzOTQqcisuNDg0NzkxNTYxNDkwNzc2KTtlW3MrK109MTA3LjI2ODAzOTM5NzcyNCtpKigyMTk5MjcxMDQ1MjU3NDFlLTE5KmktLjAwMDY0MDk5MjAxODI5Nzk0NSphKy4wMDA2NTkzOTcwMDEyNDU1NzcqdCsuMDAwNDI2MTA1NjUyOTM4ODM3KnItLjE3NjQ5MTc5MjQ2Mjg3NSkrYSooLS4wMDA3NzgyNjk5NDE1MTM2ODMqYSsuMDAxMzA4NzIyNjE0MDgyNzUqdCsuMDAwNzcwNDgyNjMxODAxMTMyKnItLjE1MTA1MTQ5Mjc3NTU2MikrdCooLjAwMTI2OTM1MzY4MTE0ODQzKnQtLjAwMjY1MDkwMTg5MDEwODk4KnIrLjI1ODAyOTEwMjA2ODQ1KStyKigtLjAwMDMxODkxMzExNzU4ODMyOCpyLS4yMTM3NDI0MDAzMjM2NjUpO2VbcysrXT1pKigtLjAwMDU3MDExNTE5Njk3MzY3NyppLTI2MzQwOTA1MTAwNDU4OWUtMTkqYSsuMDAyMDc0MTA4ODExNTAxMip0LS4wMDI4ODI2MDIzNjg1MzQ0MipyKy44MTQyNzI5NjgzNTkyOTUpLTIwLjgxMDAxMjU0Njk0NythKigtMTUzNDk2MDU3NDQwOTc1ZS0xOSphLS4wMDAxMzI2ODkwNDM5NjE0NDYqdCsuMDAwNTYwODMzNjkxMjQyODEyKnItLjE5NTE1MjAyNzUzNDA0OSkrdCooLjAwMTc0NDE4MTMyOTI3NTgyKnQtLjAwMjU1MjQzMzIxNDM5MzQ3KnIrLjExNjkzNTAyMDQ2NTE0NSkrciooLS4wMDAzNDM1MzE5OTY1MTA1NTUqcisuMjQxNjUyNjAyMzI0MDcpfXJldHVybiBlLnN1YmFycmF5KDAscyl9X2NvbnZlcnRZY2NrVG9SZ2JhKGUpe2ZvcihsZXQgdD0wLGk9ZS5sZW5ndGg7dDxpO3QrPTQpe2NvbnN0IGk9ZVt0XSxhPWVbdCsxXSxyPWVbdCsyXSxzPWVbdCszXTtlW3RdPWEqKC02NjA2MzU2Njk0MjAzNjRlLTE5KmErLjAwMDQzNzEzMDQ3NTkyNjIzMipyLTU0MDgwNjEwMDY0NTk5ZS0xOCppKy4wMDA0ODQ0OTc5NzEyMDI4MSpzLS4xNTQzNjIxNTE4NzExMjYpLTEyMi42NzE5NTQwNjg5NCtyKigtLjAwMDk1Nzk2NDM3ODQ0NTc3MypyKy4wMDA4MTcwNzY5MTEzNDY2MjUqaS0uMDA0NzcyNzE0MDU0MDg3NDcqcysxLjUzMzgwMjUzMjIxNzM0KStpKiguMDAwOTYxMjUwMTg0MTMwNjg4KmktLjAwMjY2MjU3MzMyMjgzOTMzKnMrLjQ4MzU3MDg4NDUxMjY1KStzKigtLjAwMDMzNjE5NzE3NzYxODM5NCpzKy40ODQ3OTE1NjE0OTA3NzYpO2VbdCsxXT0xMDcuMjY4MDM5Mzk3NzI0K2EqKDIxOTkyNzEwNDUyNTc0MWUtMTkqYS0uMDAwNjQwOTkyMDE4Mjk3OTQ1KnIrLjAwMDY1OTM5NzAwMTI0NTU3NyppKy4wMDA0MjYxMDU2NTI5Mzg4Mzcqcy0uMTc2NDkxNzkyNDYyODc1KStyKigtLjAwMDc3ODI2OTk0MTUxMzY4MypyKy4wMDEzMDg3MjI2MTQwODI3NSppKy4wMDA3NzA0ODI2MzE4MDExMzIqcy0uMTUxMDUxNDkyNzc1NTYyKStpKiguMDAxMjY5MzUzNjgxMTQ4NDMqaS0uMDAyNjUwOTAxODkwMTA4OTgqcysuMjU4MDI5MTAyMDY4NDUpK3MqKC0uMDAwMzE4OTEzMTE3NTg4MzI4KnMtLjIxMzc0MjQwMDMyMzY2NSk7ZVt0KzJdPWEqKC0uMDAwNTcwMTE1MTk2OTczNjc3KmEtMjYzNDA5MDUxMDA0NTg5ZS0xOSpyKy4wMDIwNzQxMDg4MTE1MDEyKmktLjAwMjg4MjYwMjM2ODUzNDQyKnMrLjgxNDI3Mjk2ODM1OTI5NSktMjAuODEwMDEyNTQ2OTQ3K3IqKC0xNTM0OTYwNTc0NDA5NzVlLTE5KnItLjAwMDEzMjY4OTA0Mzk2MTQ0NippKy4wMDA1NjA4MzM2OTEyNDI4MTIqcy0uMTk1MTUyMDI3NTM0MDQ5KStpKiguMDAxNzQ0MTgxMzI5Mjc1ODIqaS0uMDAyNTUyNDMzMjE0MzkzNDcqcysuMTE2OTM1MDIwNDY1MTQ1KStzKigtLjAwMDM0MzUzMTk5NjUxMDU1NSpzKy4yNDE2NTI2MDIzMjQwNyk7ZVt0KzNdPTI1NX1yZXR1cm4gZX1fY29udmVydFljY2tUb0NteWsoZSl7bGV0IHQsaSxhO2ZvcihsZXQgcj0wLHM9ZS5sZW5ndGg7cjxzO3IrPTQpe3Q9ZVtyXTtpPWVbcisxXTthPWVbcisyXTtlW3JdPTQzNC40NTYtdC0xLjQwMiphO2VbcisxXT0xMTkuNTQxLXQrLjM0NCppKy43MTQqYTtlW3IrMl09NDgxLjgxNi10LTEuNzcyKml9cmV0dXJuIGV9X2NvbnZlcnRDbXlrVG9SZ2IoZSl7bGV0IHQsaSxhLHIscz0wO2ZvcihsZXQgbj0wLG89ZS5sZW5ndGg7bjxvO24rPTQpe3Q9ZVtuXTtpPWVbbisxXTthPWVbbisyXTtyPWVbbiszXTtlW3MrK109MjU1K3QqKC02NzQ3MTQ3MDczNjAyNDQxZS0yMCp0Ky4wMDA4Mzc5MjYyMTIxMDEzNzI3KmkrLjAwMDI4OTQ3MTgxODg2NDMyOTQqYSsuMDAzMjY0MjMxMDU3NTM3ODA2KnItMS4xMTg1NjExODY3MjAzOTM3KStpKigyNjM3NDEwNzYxNjA4OTQwNWUtMjEqaS04NjI2OTQ5MTU4NjM4NTcyZS0yMCphLS4wMDAyNzQ4NzY5MDY3NDk5NDkxKnItLjAyMTU1Njg4Nzk0OTc4OTY3KSthKigtMzg3ODA5OTIxMjg2OTM2M2UtMjAqYS0uMDAwMzI2NzgwODI3OTQ4NTI4NipyKy4wNjg2NzQyMjM4NTk1MzQ1KS1yKiguMDAwMzM2MTk3MTc3NjE4MzkzNypyKy43NDMwNjU5MTUxMzQyMjU0KTtlW3MrK109MjU1K3QqKC4wMDAxMzU5NjM3MjgxMzU4ODg0OCp0Ky4wMDA5MjQ1MzcxMzI1NzM1ODUqaSsuMDAwMTA1NjczNTk2MTg2ODM1OTMqYSsuMDAwNDc5MTg2NDY4NzQzNjUxMipyLS4zMTA5Njg5NTg3NTE1ODc1KStpKigtLjAwMDIzNTQ1MzQ2MTA4MzcwMzQ0KmkrLjAwMDI3MDI4NDUyNTM1MzQ3MTQqYSsuMDAyMDIwMDMwODk3NzMwNzE1NipyLS43NDg4MDUyMTY3MDE1NDk0KSthKig2ODM0ODE1OTk4MjM1NjYyZS0yMCphKy4wMDAxNTE2ODQ1MjM2MzQ2MDk3MypyLS4wOTc1MTkyNzc3NDcyODkzMyktciooLjAwMDMxODkxMzExNzU4ODMyODEqcisuNzM2NDg4MzgwNzczMzE2OCk7ZVtzKytdPTI1NSt0KigxMzU5ODY1MDQxMTM4NTMwN2UtMjEqdCsuMDAwMTI0MjM5NTYxNzU0OTA4NTEqaSsuMDAwNDc1MTk4NTA5NzU4MzU4OSphLTM2NzI5MzE3NDc2NjMwNDIyZS0yMipyLS4wNTU2MjE4Njk4MDI2NDAzNCkraSooLjAwMDE2MTQxMzgwNTk4NzI0Njc2KmkrLjAwMDk2OTIyMzkxMzA3MjUxODYqYSsuMDAwNzc4MjY5MjQ1MDAzNjI1MypyLS40NDAxNTIzMjM2NzUyNjQ2MykrYSooNS4wNjg4ODI5MTQwNjg3NjllLTcqYSsuMDAxNzc3ODM2OTAxMTM3NTA3MSpyLS43NTkxNDU0NjQ5NzQ5NjA5KS1yKiguMDAwMzQzNTMxOTk2NTEwNTU1MypyKy43MDYzNzcwMTg2MTYwMTQ0KX1yZXR1cm4gZS5zdWJhcnJheSgwLHMpfV9jb252ZXJ0Q215a1RvUmdiYShlKXtmb3IobGV0IHQ9MCxpPWUubGVuZ3RoO3Q8aTt0Kz00KXtjb25zdCBpPWVbdF0sYT1lW3QrMV0scj1lW3QrMl0scz1lW3QrM107ZVt0XT0yNTUraSooLTY3NDcxNDcwNzM2MDI0NDFlLTIwKmkrLjAwMDgzNzkyNjIxMjEwMTM3MjcqYSsuMDAwMjg5NDcxODE4ODY0MzI5NCpyKy4wMDMyNjQyMzEwNTc1Mzc4MDYqcy0xLjExODU2MTE4NjcyMDM5MzcpK2EqKDI2Mzc0MTA3NjE2MDg5NDA1ZS0yMSphLTg2MjY5NDkxNTg2Mzg1NzJlLTIwKnItLjAwMDI3NDg3NjkwNjc0OTk0OTEqcy0uMDIxNTU2ODg3OTQ5Nzg5NjcpK3IqKC0zODc4MDk5MjEyODY5MzYzZS0yMCpyLS4wMDAzMjY3ODA4Mjc5NDg1Mjg2KnMrLjA2ODY3NDIyMzg1OTUzNDUpLXMqKC4wMDAzMzYxOTcxNzc2MTgzOTM3KnMrLjc0MzA2NTkxNTEzNDIyNTQpO2VbdCsxXT0yNTUraSooLjAwMDEzNTk2MzcyODEzNTg4ODQ4KmkrLjAwMDkyNDUzNzEzMjU3MzU4NSphKy4wMDAxMDU2NzM1OTYxODY4MzU5MypyKy4wMDA0NzkxODY0Njg3NDM2NTEyKnMtLjMxMDk2ODk1ODc1MTU4NzUpK2EqKC0uMDAwMjM1NDUzNDYxMDgzNzAzNDQqYSsuMDAwMjcwMjg0NTI1MzUzNDcxNCpyKy4wMDIwMjAwMzA4OTc3MzA3MTU2KnMtLjc0ODgwNTIxNjcwMTU0OTQpK3IqKDY4MzQ4MTU5OTgyMzU2NjJlLTIwKnIrLjAwMDE1MTY4NDUyMzYzNDYwOTczKnMtLjA5NzUxOTI3Nzc0NzI4OTMzKS1zKiguMDAwMzE4OTEzMTE3NTg4MzI4MSpzKy43MzY0ODgzODA3NzMzMTY4KTtlW3QrMl09MjU1K2kqKDEzNTk4NjUwNDExMzg1MzA3ZS0yMSppKy4wMDAxMjQyMzk1NjE3NTQ5MDg1MSphKy4wMDA0NzUxOTg1MDk3NTgzNTg5KnItMzY3MjkzMTc0NzY2MzA0MjJlLTIyKnMtLjA1NTYyMTg2OTgwMjY0MDM0KSthKiguMDAwMTYxNDEzODA1OTg3MjQ2NzYqYSsuMDAwOTY5MjIzOTEzMDcyNTE4NipyKy4wMDA3NzgyNjkyNDUwMDM2MjUzKnMtLjQ0MDE1MjMyMzY3NTI2NDYzKStyKig1LjA2ODg4MjkxNDA2ODc2OWUtNypyKy4wMDE3Nzc4MzY5MDExMzc1MDcxKnMtLjc1OTE0NTQ2NDk3NDk2MDkpLXMqKC4wMDAzNDM1MzE5OTY1MTA1NTUzKnMrLjcwNjM3NzAxODYxNjAxNDQpO2VbdCszXT0yNTV9cmV0dXJuIGV9Z2V0RGF0YSh7d2lkdGg6ZSxoZWlnaHQ6dCxmb3JjZVJHQkE6aT0hMSxmb3JjZVJHQjphPSExLGlzU291cmNlUERGOnI9ITF9KXtpZih0aGlzLm51bUNvbXBvbmVudHM+NCl0aHJvdyBuZXcgSnBlZ0Vycm9yKCJVbnN1cHBvcnRlZCBjb2xvciBtb2RlIik7Y29uc3Qgcz10aGlzLl9nZXRMaW5lYXJpemVkQmxvY2tEYXRhKGUsdCxyKTtpZigxPT09dGhpcy5udW1Db21wb25lbnRzJiYoaXx8YSkpe2NvbnN0IGU9cy5sZW5ndGgqKGk/NDozKSx0PW5ldyBVaW50OENsYW1wZWRBcnJheShlKTtsZXQgYT0wO2lmKGkpIWZ1bmN0aW9uIGdyYXlUb1JHQkEoZSx0KXtpZihGZWF0dXJlVGVzdC5pc0xpdHRsZUVuZGlhbilmb3IobGV0IGk9MCxhPWUubGVuZ3RoO2k8YTtpKyspdFtpXT02NTc5MyplW2ldfDQyNzgxOTAwODA7ZWxzZSBmb3IobGV0IGk9MCxhPWUubGVuZ3RoO2k8YTtpKyspdFtpXT0xNjg0MzAwOCplW2ldfDI1NX0ocyxuZXcgVWludDMyQXJyYXkodC5idWZmZXIpKTtlbHNlIGZvcihjb25zdCBlIG9mIHMpe3RbYSsrXT1lO3RbYSsrXT1lO3RbYSsrXT1lfXJldHVybiB0fWlmKDM9PT10aGlzLm51bUNvbXBvbmVudHMmJnRoaXMuX2lzQ29sb3JDb252ZXJzaW9uTmVlZGVkKXtpZihpKXtjb25zdCBlPW5ldyBVaW50OENsYW1wZWRBcnJheShzLmxlbmd0aC8zKjQpO3JldHVybiB0aGlzLl9jb252ZXJ0WWNjVG9SZ2JhKHMsZSl9cmV0dXJuIHRoaXMuX2NvbnZlcnRZY2NUb1JnYihzKX1pZig0PT09dGhpcy5udW1Db21wb25lbnRzKXtpZih0aGlzLl9pc0NvbG9yQ29udmVyc2lvbk5lZWRlZClyZXR1cm4gaT90aGlzLl9jb252ZXJ0WWNja1RvUmdiYShzKTphP3RoaXMuX2NvbnZlcnRZY2NrVG9SZ2Iocyk6dGhpcy5fY29udmVydFljY2tUb0NteWsocyk7aWYoaSlyZXR1cm4gdGhpcy5fY29udmVydENteWtUb1JnYmEocyk7aWYoYSlyZXR1cm4gdGhpcy5fY29udmVydENteWtUb1JnYihzKX1yZXR1cm4gc319Y2xhc3MgSnBlZ1N0cmVhbSBleHRlbmRzIERlY29kZVN0cmVhbXtzdGF0aWMjeT1GZWF0dXJlVGVzdC5pc0ltYWdlRGVjb2RlclN1cHBvcnRlZDtjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIodCk7dGhpcy5zdHJlYW09ZTt0aGlzLmRpY3Q9ZS5kaWN0O3RoaXMubWF5YmVMZW5ndGg9dDt0aGlzLnBhcmFtcz1pfXN0YXRpYyBnZXQgY2FuVXNlSW1hZ2VEZWNvZGVyKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJjYW5Vc2VJbWFnZURlY29kZXIiLHRoaXMuI3k/SW1hZ2VEZWNvZGVyLmlzVHlwZVN1cHBvcnRlZCgiaW1hZ2UvanBlZyIpOlByb21pc2UucmVzb2x2ZSghMSkpfXN0YXRpYyBzZXRPcHRpb25zKHtpc0ltYWdlRGVjb2RlclN1cHBvcnRlZDplPSExfSl7dGhpcy4jeT1lfWdldCBieXRlcygpe3JldHVybiBzaGFkb3codGhpcywiYnl0ZXMiLHRoaXMuc3RyZWFtLmdldEJ5dGVzKHRoaXMubWF5YmVMZW5ndGgpKX1lbnN1cmVCdWZmZXIoZSl7fXJlYWRCbG9jaygpe3RoaXMuZGVjb2RlSW1hZ2UoKX1nZXQganBlZ09wdGlvbnMoKXtjb25zdCBlPXtkZWNvZGVUcmFuc2Zvcm06dm9pZCAwLGNvbG9yVHJhbnNmb3JtOnZvaWQgMH0sdD10aGlzLmRpY3QuZ2V0QXJyYXkoIkQiLCJEZWNvZGUiKTtpZigodGhpcy5mb3JjZVJHQkF8fHRoaXMuZm9yY2VSR0IpJiZBcnJheS5pc0FycmF5KHQpKXtjb25zdCBpPXRoaXMuZGljdC5nZXQoIkJQQyIsIkJpdHNQZXJDb21wb25lbnQiKXx8OCxhPXQubGVuZ3RoLHI9bmV3IEludDMyQXJyYXkoYSk7bGV0IHM9ITE7Y29uc3Qgbj0oMTw8aSktMTtmb3IobGV0IGU9MDtlPGE7ZSs9Mil7cltlXT0yNTYqKHRbZSsxXS10W2VdKXwwO3JbZSsxXT10W2VdKm58MDsyNTY9PT1yW2VdJiYwPT09cltlKzFdfHwocz0hMCl9cyYmKGUuZGVjb2RlVHJhbnNmb3JtPXIpfWlmKHRoaXMucGFyYW1zIGluc3RhbmNlb2YgRGljdCl7Y29uc3QgdD10aGlzLnBhcmFtcy5nZXQoIkNvbG9yVHJhbnNmb3JtIik7TnVtYmVyLmlzSW50ZWdlcih0KSYmKGUuY29sb3JUcmFuc2Zvcm09dCl9cmV0dXJuIHNoYWRvdyh0aGlzLCJqcGVnT3B0aW9ucyIsZSl9I3coZSl7Zm9yKGxldCB0PTAsaT1lLmxlbmd0aC0xO3Q8aTt0KyspaWYoMjU1PT09ZVt0XSYmMjE2PT09ZVt0KzFdKXt0PjAmJihlPWUuc3ViYXJyYXkodCkpO2JyZWFrfXJldHVybiBlfWRlY29kZUltYWdlKGUpe2lmKHRoaXMuZW9mKXJldHVybiB0aGlzLmJ1ZmZlcjtlPXRoaXMuI3coZXx8dGhpcy5ieXRlcyk7Y29uc3QgdD1uZXcgSnBlZ0ltYWdlKHRoaXMuanBlZ09wdGlvbnMpO3QucGFyc2UoZSk7Y29uc3QgaT10LmdldERhdGEoe3dpZHRoOnRoaXMuZHJhd1dpZHRoLGhlaWdodDp0aGlzLmRyYXdIZWlnaHQsZm9yY2VSR0JBOnRoaXMuZm9yY2VSR0JBLGZvcmNlUkdCOnRoaXMuZm9yY2VSR0IsaXNTb3VyY2VQREY6ITB9KTt0aGlzLmJ1ZmZlcj1pO3RoaXMuYnVmZmVyTGVuZ3RoPWkubGVuZ3RoO3RoaXMuZW9mPSEwO3JldHVybiB0aGlzLmJ1ZmZlcn1nZXQgY2FuQXN5bmNEZWNvZGVJbWFnZUZyb21CdWZmZXIoKXtyZXR1cm4gdGhpcy5zdHJlYW0uaXNBc3luY31hc3luYyBnZXRUcmFuc2ZlcmFibGVJbWFnZSgpe2lmKCFhd2FpdCBKcGVnU3RyZWFtLmNhblVzZUltYWdlRGVjb2RlcilyZXR1cm4gbnVsbDtjb25zdCBlPXRoaXMuanBlZ09wdGlvbnM7aWYoZS5kZWNvZGVUcmFuc2Zvcm0pcmV0dXJuIG51bGw7bGV0IHQ7dHJ5e2NvbnN0IGk9dGhpcy5jYW5Bc3luY0RlY29kZUltYWdlRnJvbUJ1ZmZlciYmYXdhaXQgdGhpcy5zdHJlYW0uYXN5bmNHZXRCeXRlcygpfHx0aGlzLmJ5dGVzO2lmKCFpKXJldHVybiBudWxsO2NvbnN0IGE9dGhpcy4jdyhpKTtpZighSnBlZ0ltYWdlLmNhblVzZUltYWdlRGVjb2RlcihhLGUuY29sb3JUcmFuc2Zvcm0pKXJldHVybiBudWxsO3Q9bmV3IEltYWdlRGVjb2Rlcih7ZGF0YTphLHR5cGU6ImltYWdlL2pwZWciLHByZWZlckFuaW1hdGlvbjohMX0pO3JldHVybihhd2FpdCB0LmRlY29kZSgpKS5pbWFnZX1jYXRjaChlKXt3YXJuKGBnZXRUcmFuc2ZlcmFibGVJbWFnZSAtIGZhaWxlZDogIiR7ZX0iLmApO3JldHVybiBudWxsfWZpbmFsbHl7dD8uY2xvc2UoKX19fXZhciBpaSxhaT0oaWk9InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudC5jdXJyZW50U2NyaXB0Py5zcmM6dm9pZCAwLGZ1bmN0aW9uKGU9e30pe3ZhciB0LGksYT1lO25ldyBQcm9taXNlKCgoZSxhKT0+e3Q9ZTtpPWF9KSk7YS5kZWNvZGU9ZnVuY3Rpb24oZSx7bnVtQ29tcG9uZW50czp0PTQsaXNJbmRleGVkQ29sb3JtYXA6aT0hMSxzbWFza0luRGF0YTpyPSExfSl7Y29uc3Qgcz1lLmxlbmd0aCxuPWEuX21hbGxvYyhzKTthLkhFQVBVOC5zZXQoZSxuKTtjb25zdCBvPWEuX2pwMl9kZWNvZGUobixzLHQ+MD90OjAsISFpLCEhcik7YS5fZnJlZShuKTtpZihvKXtjb25zdHtlcnJvck1lc3NhZ2VzOmV9PWE7aWYoZSl7ZGVsZXRlIGEuZXJyb3JNZXNzYWdlcztyZXR1cm4gZX1yZXR1cm4iVW5rbm93biBlcnJvciJ9Y29uc3R7aW1hZ2VEYXRhOmd9PWE7YS5pbWFnZURhdGE9bnVsbDtyZXR1cm4gZ307dmFyIHI9T2JqZWN0LmFzc2lnbih7fSxhKSxzPSIuL3RoaXMucHJvZ3JhbSIscXVpdF89KGUsdCk9Pnt0aHJvdyB0fSxuPSIiOyJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50LmN1cnJlbnRTY3JpcHQmJihuPWRvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjKTtpaSYmKG49aWkpO249bi5zdGFydHNXaXRoKCJibG9iOiIpPyIiOm4uc3Vic3RyKDAsbi5yZXBsYWNlKC9bPyNdLiovLCIiKS5sYXN0SW5kZXhPZigiLyIpKzEpO3ZhciBvPWEucHJpbnR8fGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSksZz1hLnByaW50RXJyfHxjb25zb2xlLmVycm9yLmJpbmQoY29uc29sZSk7T2JqZWN0LmFzc2lnbihhLHIpO3I9bnVsbDthLmFyZ3VtZW50cyYmYS5hcmd1bWVudHM7YS50aGlzUHJvZ3JhbSYmKHM9YS50aGlzUHJvZ3JhbSk7dmFyIGMsbD1hLndhc21CaW5hcnk7ZnVuY3Rpb24gdHJ5UGFyc2VBc0RhdGFVUkkoZSl7aWYoaXNEYXRhVVJJKGUpKXJldHVybiBmdW5jdGlvbiBpbnRBcnJheUZyb21CYXNlNjQoZSl7Zm9yKHZhciB0PWF0b2IoZSksaT1uZXcgVWludDhBcnJheSh0Lmxlbmd0aCksYT0wO2E8dC5sZW5ndGg7KythKWlbYV09dC5jaGFyQ29kZUF0KGEpO3JldHVybiBpfShlLnNsaWNlKEQubGVuZ3RoKSl9dmFyIGgsQyxRLEUsdT0hMTtmdW5jdGlvbiB1cGRhdGVNZW1vcnlWaWV3cygpe3ZhciBlPWMuYnVmZmVyO2EuSEVBUDg9Qz1uZXcgSW50OEFycmF5KGUpO2EuSEVBUDE2PW5ldyBJbnQxNkFycmF5KGUpO2EuSEVBUFU4PVE9bmV3IFVpbnQ4QXJyYXkoZSk7YS5IRUFQVTE2PW5ldyBVaW50MTZBcnJheShlKTthLkhFQVAzMj1uZXcgSW50MzJBcnJheShlKTthLkhFQVBVMzI9RT1uZXcgVWludDMyQXJyYXkoZSk7YS5IRUFQRjMyPW5ldyBGbG9hdDMyQXJyYXkoZSk7YS5IRUFQRjY0PW5ldyBGbG9hdDY0QXJyYXkoZSl9dmFyIGQsZj1bXSxwPVtdLG09W10seT0wLHc9bnVsbCxiPW51bGwsRD0iZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LCIsaXNEYXRhVVJJPWU9PmUuc3RhcnRzV2l0aChEKTtmdW5jdGlvbiBpbnN0YW50aWF0ZVN5bmMoZSx0KXt2YXIgaSxhPWZ1bmN0aW9uIGdldEJpbmFyeVN5bmMoZSl7aWYoZT09ZCYmbClyZXR1cm4gbmV3IFVpbnQ4QXJyYXkobCk7dmFyIHQ9dHJ5UGFyc2VBc0RhdGFVUkkoZSk7aWYodClyZXR1cm4gdDt0aHJvdydzeW5jIGZldGNoaW5nIG9mIHRoZSB3YXNtIGZhaWxlZDogeW91IGNhbiBwcmVsb2FkIGl0IHRvIE1vZHVsZVsid2FzbUJpbmFyeSJdIG1hbnVhbGx5LCBvciBlbWNjLnB5IHdpbGwgZG8gdGhhdCBmb3IgeW91IHdoZW4gZ2VuZXJhdGluZyBIVE1MIChidXQgbm90IEpTKSd9KGUpO2k9bmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShhKTtyZXR1cm5bbmV3IFdlYkFzc2VtYmx5Lkluc3RhbmNlKGksdCksaV19Y2xhc3MgRXhpdFN0YXR1c3tuYW1lPSJFeGl0U3RhdHVzIjtjb25zdHJ1Y3RvcihlKXt0aGlzLm1lc3NhZ2U9YFByb2dyYW0gdGVybWluYXRlZCB3aXRoIGV4aXQoJHtlfSlgO3RoaXMuc3RhdHVzPWV9fXZhciBTLGNhbGxSdW50aW1lQ2FsbGJhY2tzPWU9Pntmb3IoO2UubGVuZ3RoPjA7KWUuc2hpZnQoKShhKX0saz1hLm5vRXhpdFJ1bnRpbWV8fCEwLFI9MCxOPXt9LGhhbmRsZUV4Y2VwdGlvbj1lPT57aWYoZSBpbnN0YW5jZW9mIEV4aXRTdGF0dXN8fCJ1bndpbmQiPT1lKXJldHVybiBoO3F1aXRfKDAsZSl9LGtlZXBSdW50aW1lQWxpdmU9KCk9Pmt8fFI+MCxfcHJvY19leGl0PWU9PntoPWU7aWYoIWtlZXBSdW50aW1lQWxpdmUoKSl7YS5vbkV4aXQ/LihlKTt1PSEwfXF1aXRfKDAsbmV3IEV4aXRTdGF0dXMoZSkpfSxfZXhpdD0oZSx0KT0+e2g9ZTtfcHJvY19leGl0KGUpfSxjYWxsVXNlckNhbGxiYWNrPWU9PntpZighdSl0cnl7ZSgpOygoKT0+e2lmKCFrZWVwUnVudGltZUFsaXZlKCkpdHJ5e19leGl0KGgpfWNhdGNoKGUpe2hhbmRsZUV4Y2VwdGlvbihlKX19KSgpfWNhdGNoKGUpe2hhbmRsZUV4Y2VwdGlvbihlKX19LGdyb3dNZW1vcnk9ZT0+e3ZhciB0PShlLWMuYnVmZmVyLmJ5dGVMZW5ndGgrNjU1MzUpLzY1NTM2fDA7dHJ5e2MuZ3Jvdyh0KTt1cGRhdGVNZW1vcnlWaWV3cygpO3JldHVybiAxfWNhdGNoKGUpe319LEc9e30sZ2V0RW52U3RyaW5ncz0oKT0+e2lmKCFnZXRFbnZTdHJpbmdzLnN0cmluZ3Mpe3ZhciBlPXtVU0VSOiJ3ZWJfdXNlciIsTE9HTkFNRToid2ViX3VzZXIiLFBBVEg6Ii8iLFBXRDoiLyIsSE9NRToiL2hvbWUvd2ViX3VzZXIiLExBTkc6KCJvYmplY3QiPT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzWzBdfHwiQyIpLnJlcGxhY2UoIi0iLCJfIikrIi5VVEYtOCIsXzpzfHwiLi90aGlzLnByb2dyYW0ifTtmb3IodmFyIHQgaW4gRyl2b2lkIDA9PT1HW3RdP2RlbGV0ZSBlW3RdOmVbdF09R1t0XTt2YXIgaT1bXTtmb3IodmFyIHQgaW4gZSlpLnB1c2goYCR7dH09JHtlW3RdfWApO2dldEVudlN0cmluZ3Muc3RyaW5ncz1pfXJldHVybiBnZXRFbnZTdHJpbmdzLnN0cmluZ3N9LE09W251bGwsW10sW11dLFU9InVuZGVmaW5lZCIhPXR5cGVvZiBUZXh0RGVjb2Rlcj9uZXcgVGV4dERlY29kZXI6dm9pZCAwLFVURjhBcnJheVRvU3RyaW5nPShlLHQ9MCxpPU5hTik9Pntmb3IodmFyIGE9dCtpLHI9dDtlW3JdJiYhKHI+PWEpOykrK3I7aWYoci10PjE2JiZlLmJ1ZmZlciYmVSlyZXR1cm4gVS5kZWNvZGUoZS5zdWJhcnJheSh0LHIpKTtmb3IodmFyIHM9IiI7dDxyOyl7dmFyIG49ZVt0KytdO2lmKDEyOCZuKXt2YXIgbz02MyZlW3QrK107aWYoMTkyIT0oMjI0Jm4pKXt2YXIgZz02MyZlW3QrK107aWYoKG49MjI0PT0oMjQwJm4pPygxNSZuKTw8MTJ8bzw8NnxnOig3Jm4pPDwxOHxvPDwxMnxnPDw2fDYzJmVbdCsrXSk8NjU1MzYpcys9U3RyaW5nLmZyb21DaGFyQ29kZShuKTtlbHNle3ZhciBjPW4tNjU1MzY7cys9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NnxjPj4xMCw1NjMyMHwxMDIzJmMpfX1lbHNlIHMrPVN0cmluZy5mcm9tQ2hhckNvZGUoKDMxJm4pPDw2fG8pfWVsc2Ugcys9U3RyaW5nLmZyb21DaGFyQ29kZShuKX1yZXR1cm4gc30scHJpbnRDaGFyPShlLHQpPT57dmFyIGk9TVtlXTtpZigwPT09dHx8MTA9PT10KXsoMT09PWU/bzpnKShVVEY4QXJyYXlUb1N0cmluZyhpKSk7aS5sZW5ndGg9MH1lbHNlIGkucHVzaCh0KX0sVVRGOFRvU3RyaW5nPShlLHQpPT5lP1VURjhBcnJheVRvU3RyaW5nKFEsZSx0KToiIix4PXttOigpPT5mdW5jdGlvbiBhYm9ydChlKXthLm9uQWJvcnQ/LihlKTtnKGU9IkFib3J0ZWQoIitlKyIpIik7dT0hMDtlKz0iLiBCdWlsZCB3aXRoIC1zQVNTRVJUSU9OUyBmb3IgbW9yZSBpbmZvLiI7dmFyIHQ9bmV3IFdlYkFzc2VtYmx5LlJ1bnRpbWVFcnJvcihlKTtpKHQpO3Rocm93IHR9KCIiKSxjOihlLHQsaSk9PlEuY29weVdpdGhpbihlLHQsdCtpKSxsOigpPT57az0hMTtSPTB9LG46KGUsdCk9PntpZihOW2VdKXtjbGVhclRpbWVvdXQoTltlXS5pZCk7ZGVsZXRlIE5bZV19aWYoIXQpcmV0dXJuIDA7dmFyIGk9c2V0VGltZW91dCgoKCk9PntkZWxldGUgTltlXTtjYWxsVXNlckNhbGxiYWNrKCgoKT0+SChlLHBlcmZvcm1hbmNlLm5vdygpKSkpfSksdCk7TltlXT17aWQ6aSx0aW1lb3V0X21zOnR9O3JldHVybiAwfSxnOmZ1bmN0aW9uIF9jb3B5X3BpeGVsc18xKGUsdCl7ZT4+PTI7Y29uc3QgaT1hLmltYWdlRGF0YT1uZXcgVWludDhDbGFtcGVkQXJyYXkodCkscj1hLkhFQVAzMi5zdWJhcnJheShlLGUrdCk7aS5zZXQocil9LGY6ZnVuY3Rpb24gX2NvcHlfcGl4ZWxzXzMoZSx0LGkscil7ZT4+PTI7dD4+PTI7aT4+PTI7Y29uc3Qgcz1hLmltYWdlRGF0YT1uZXcgVWludDhDbGFtcGVkQXJyYXkoMypyKSxuPWEuSEVBUDMyLnN1YmFycmF5KGUsZStyKSxvPWEuSEVBUDMyLnN1YmFycmF5KHQsdCtyKSxnPWEuSEVBUDMyLnN1YmFycmF5KGksaStyKTtmb3IobGV0IGU9MDtlPHI7ZSsrKXtzWzMqZV09bltlXTtzWzMqZSsxXT1vW2VdO3NbMyplKzJdPWdbZV19fSxlOmZ1bmN0aW9uIF9jb3B5X3BpeGVsc180KGUsdCxpLHIscyl7ZT4+PTI7dD4+PTI7aT4+PTI7cj4+PTI7Y29uc3Qgbj1hLmltYWdlRGF0YT1uZXcgVWludDhDbGFtcGVkQXJyYXkoNCpzKSxvPWEuSEVBUDMyLnN1YmFycmF5KGUsZStzKSxnPWEuSEVBUDMyLnN1YmFycmF5KHQsdCtzKSxjPWEuSEVBUDMyLnN1YmFycmF5KGksaStzKSxsPWEuSEVBUDMyLnN1YmFycmF5KHIscitzKTtmb3IobGV0IGU9MDtlPHM7ZSsrKXtuWzQqZV09b1tlXTtuWzQqZSsxXT1nW2VdO25bNCplKzJdPWNbZV07bls0KmUrM109bFtlXX19LG86ZT0+e3ZhciB0LGksYT1RLmxlbmd0aCxyPTIxNDc0ODM2NDg7aWYoKGU+Pj49MCk+cilyZXR1cm4hMTtmb3IodmFyIHM9MTtzPD00O3MqPTIpe3ZhciBuPWEqKDErLjIvcyk7bj1NYXRoLm1pbihuLGUrMTAwNjYzMjk2KTt2YXIgbz1NYXRoLm1pbihyLCh0PU1hdGgubWF4KGUsbiksaT02NTUzNixNYXRoLmNlaWwodC9pKSppKSk7aWYoZ3Jvd01lbW9yeShvKSlyZXR1cm4hMH1yZXR1cm4hMX0scDooZSx0KT0+e3ZhciBpPTA7Z2V0RW52U3RyaW5ncygpLmZvckVhY2goKChhLHIpPT57dmFyIHM9dCtpO0VbZSs0KnI+PjJdPXM7KChlLHQpPT57Zm9yKHZhciBpPTA7aTxlLmxlbmd0aDsrK2kpQ1t0KytdPWUuY2hhckNvZGVBdChpKTtDW3RdPTB9KShhLHMpO2krPWEubGVuZ3RoKzF9KSk7cmV0dXJuIDB9LHE6KGUsdCk9Pnt2YXIgaT1nZXRFbnZTdHJpbmdzKCk7RVtlPj4yXT1pLmxlbmd0aDt2YXIgYT0wO2kuZm9yRWFjaCgoZT0+YSs9ZS5sZW5ndGgrMSkpO0VbdD4+Ml09YTtyZXR1cm4gMH0scjplPT41MixqOmZ1bmN0aW9uIF9mZF9zZWVrKGUsdCxpLGEscil7cmV0dXJuIDcwfSxiOihlLHQsaSxhKT0+e2Zvcih2YXIgcj0wLHM9MDtzPGk7cysrKXt2YXIgbj1FW3Q+PjJdLG89RVt0KzQ+PjJdO3QrPTg7Zm9yKHZhciBnPTA7ZzxvO2crKylwcmludENoYXIoZSxRW24rZ10pO3IrPW99RVthPj4yXT1yO3JldHVybiAwfSxzOmZ1bmN0aW9uIF9ncmF5X3RvX3JnYmEoZSx0KXtlPj49Mjtjb25zdCBpPWEuaW1hZ2VEYXRhPW5ldyBVaW50OENsYW1wZWRBcnJheSg0KnQpLHI9YS5IRUFQMzIuc3ViYXJyYXkoZSxlK3QpO2ZvcihsZXQgZT0wO2U8dDtlKyspe2lbNCplXT1pWzQqZSsxXT1pWzQqZSsyXT1yW2VdO2lbNCplKzNdPTI1NX19LGk6ZnVuY3Rpb24gX2dyYXlhX3RvX3JnYmEoZSx0LGkpe2U+Pj0yO3Q+Pj0yO2NvbnN0IHI9YS5pbWFnZURhdGE9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDQqaSkscz1hLkhFQVAzMi5zdWJhcnJheShlLGUraSksbj1hLkhFQVAzMi5zdWJhcnJheSh0LHQraSk7Zm9yKGxldCBlPTA7ZTxpO2UrKyl7cls0KmVdPXJbNCplKzFdPXJbNCplKzJdPXNbZV07cls0KmUrM109bltlXX19LGQ6ZnVuY3Rpb24gX2pzUHJpbnRXYXJuaW5nKGUpe2NvbnN0IHQ9VVRGOFRvU3RyaW5nKGUpOyhhLndhcm58fGNvbnNvbGUud2FybikoYE9wZW5KUEVHOiAke3R9YCl9LGs6X3Byb2NfZXhpdCxoOmZ1bmN0aW9uIF9yZ2JfdG9fcmdiYShlLHQsaSxyKXtlPj49Mjt0Pj49MjtpPj49Mjtjb25zdCBzPWEuaW1hZ2VEYXRhPW5ldyBVaW50OENsYW1wZWRBcnJheSg0KnIpLG49YS5IRUFQMzIuc3ViYXJyYXkoZSxlK3IpLG89YS5IRUFQMzIuc3ViYXJyYXkodCx0K3IpLGc9YS5IRUFQMzIuc3ViYXJyYXkoaSxpK3IpO2ZvcihsZXQgZT0wO2U8cjtlKyspe3NbNCplXT1uW2VdO3NbNCplKzFdPW9bZV07c1s0KmUrMl09Z1tlXTtzWzQqZSszXT0yNTV9fSxhOmZ1bmN0aW9uIF9zdG9yZUVycm9yTWVzc2FnZShlKXtjb25zdCB0PVVURjhUb1N0cmluZyhlKTthLmVycm9yTWVzc2FnZXM/YS5lcnJvck1lc3NhZ2VzKz0iXG4iK3Q6YS5lcnJvck1lc3NhZ2VzPXR9fSxMPWZ1bmN0aW9uIGNyZWF0ZVdhc20oKXtmdW5jdGlvbiByZWNlaXZlSW5zdGFuY2UoZSx0KXtMPWUuZXhwb3J0cztjPUwudDt1cGRhdGVNZW1vcnlWaWV3cygpOyFmdW5jdGlvbiBhZGRPbkluaXQoZSl7cC51bnNoaWZ0KGUpfShMLnUpOyFmdW5jdGlvbiByZW1vdmVSdW5EZXBlbmRlbmN5KGUpe3ktLTthLm1vbml0b3JSdW5EZXBlbmRlbmNpZXM/Lih5KTtpZigwPT15KXtpZihudWxsIT09dyl7Y2xlYXJJbnRlcnZhbCh3KTt3PW51bGx9aWYoYil7dmFyIHQ9YjtiPW51bGw7dCgpfX19KCk7cmV0dXJuIEx9IWZ1bmN0aW9uIGFkZFJ1bkRlcGVuZGVuY3koZSl7eSsrO2EubW9uaXRvclJ1bkRlcGVuZGVuY2llcz8uKHkpfSgpO3ZhciBlPWZ1bmN0aW9uIGdldFdhc21JbXBvcnRzKCl7cmV0dXJue2E6eH19KCk7aWYoYS5pbnN0YW50aWF0ZVdhc20pdHJ5e3JldHVybiBhLmluc3RhbnRpYXRlV2FzbShlLHJlY2VpdmVJbnN0YW5jZSl9Y2F0Y2goZSl7ZyhgTW9kdWxlLmluc3RhbnRpYXRlV2FzbSBjYWxsYmFjayBmYWlsZWQgd2l0aCBlcnJvcjogJHtlfWApO2koZSl9ZD8/PSJkYXRhOmFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtiYXNlNjQsQUdGemJRRUFBQUFCMlFFY1lBTi9mMzhCZjJBRWYzOS9md0YvWUFGL0FHQUNmMzhBWUFGL0FYOWdBMzkvZndCZ0FuOS9BWDlnQkg5L2YzOEFZQU4vZm44QmZtQUZmMzkvZjM4QmYyQUFBR0FDZm44QmYyQURmMzUvQVg5Z0FuNS9BWDVnQlg5L2YzOS9BR0FIZjM5L2YzOS9md0YvWUFsL2YzOS9mMzkvZjM4QmYyQUxmMzkvZjM5L2YzOS9mMzhCZjJBR2YzOS9mMzkvQVg5Z0FBRi9ZQVovZjM5L2YzOEFZQVovZkg5L2YzOEJmMkFDZjN3QmYyQUlmMzkvZjM5L2YzOEFZQWgvZjM5L2YzOS9md0YvWUFkL2YzOS9mMzkvQUdBQ2ZIOEJmR0FDZjN3QUFuTVRBV0VCWVFBQ0FXRUJZZ0FCQVdFQll3QUZBV0VCWkFBQ0FXRUJaUUFPQVdFQlpnQUhBV0VCWndBREFXRUJhQUFIQVdFQmFRQUZBV0VCYWdBSkFXRUJhd0FDQVdFQmJBQUtBV0VCYlFBS0FXRUJiZ0FXQVdFQmJ3QUVBV0VCY0FBR0FXRUJjUUFHQVdFQmNnQUVBV0VCY3dBREE4MEJ5d0VIQWdVQUJnUUFCUVlFQVFVRURnVVhCZ0lDQWdJQUJoQUdFUVFDQ3d3U0FnVUNCQWNFQWhNREZBTUNBZ1lDR0FNSEJRQUFCQU1CQ2drSkF3QUpCZ0VFQkFVRkV3OEJBUU1BQXdZQ0VBUVVHUUlIQmdNSEJ3RUJBZ0FFQ2dZYUJ3UUVEdzREQmdRQUJBSUNBZ0FHQmdBQkFRRUJBUUVCQVFBQUFBQUFCZ01DQWdJREF3TURBd29LQWdJYkFBTVZDQVFFQUFnREF3a0VDQXNOQUFnQUFRRUJBUUVCQVFFQkRBQUVCQVVKRHdFU0VRRUFBQVlEQXdFRkJRVUZCUVVGQlFFTkFRRUJBUUVCQVFFQkN3UUZBWEFCY25JRkJ3RUJnZ0tBZ0FJR0NBRi9BVUhRNEFVTEJ5QUhBWFFDQUFGMUFFb0JkZ0NwQVFGM0FCUUJlQUVBQVhrQXFBRUJlZ0NkQVFuUkFRRUFRUUVMY1ZyZEFkTUJnUUdCQVRDNUFhNEJxZ0dZQVpjQmxnR1ZBWlFCa3dHU0FaRUJXNDRCalFHTUFZc0JLNG9CaVFHSUFZY0JoZ0dGQVlRQmd3R0NBZHdCMndIYUFka0IyQUhYQVVuV0FkVUJTVW5VQWRJQjBRSFFBYzhCemdITkFjd0J5d0hLQWNRQnVBRzNBYllCdFFHMEFiTUJzZ0d4QWJBQnJ3R3RBYXdCcXdGU1UxVmJVWkFCWEVCWmp3RllUazlYTVN5OEFic0J2UUhGQWNrQnhnSEFBYm9CdmdHL0FjY0J5QUY5d1FIQ0FjTUJXcWNCcGdHZUFhQUJud0dhQWFNQnBBR2xBYUlCb1FHYkFad0JDc210RHNzQmdnSUJBMzhqQUVHUUJHc2lCQ1FBQWtBZ0FFVU5BQUpBQWtBQ1FBSkFJQUZCQVdzT0JBQUJCQUlFQ3lBQVFReHFJUUVNQWdzZ0FFRVFhaUVCSUFCQkJHb2hBQXdCQ3lBQVFSUnFJUUVnQUVFSWFpRUFDeUFCS0FJQUlnVkZEUUFnQWtVTkFDQUFLQUlBSVFZZ0JFRUFRWUFFRUJraUFTQUROZ0tNQkNNQVFhQUJheUlBSkFBZ0FDQUJOZ0tVQVNBQVFmOEROZ0tZQVNBQVFRQkJrQUVRR1NJQVFYODJBa3dnQUVIbkFEWUNKQ0FBUVg4MkFsQWdBQ0FBUVo4QmFqWUNMQ0FBSUFCQmxBRnFOZ0pVSUFGQkFEb0FBQ0FBSUFJZ0EwSG9BRUhwQUJCMUlBQkJvQUZxSkFBZ0FVRUFPZ0QvQXlBQklBWWdCUkVEQUFzZ0JFR1FCR29rQUF2UUFnRUZmeUFBQkVBZ0FFRUVheUlES0FJQUlnUWhBU0FESVFJZ0FFRUlheWdDQUNJQUlBQkJmbkVpQUVjRVFDQUNJQUJySWdJb0FnUWlBU0FDS0FJSUlnVTJBZ2dnQlNBQk5nSUVJQUFnQkdvaEFRc2dBeUFFYWlJQUtBSUFJZ01nQUNBRGFrRUVheWdDQUVjRVFDQUFLQUlFSWdRZ0FDZ0NDQ0lBTmdJSUlBQWdCRFlDQkNBQklBTnFJUUVMSUFJZ0FUWUNBQ0FDSUFGQmZIRnFRUVJySUFGQkFYSTJBZ0FnQWdKL0lBSW9BZ0JCQ0dzaUFFSC9BRTBFUUNBQVFRTjJRUUZyREFFTElBQm5JUU1nQUVFZElBTnJka0VFY3lBRFFRSjBhMEh1QUdvZ0FFSC9IMDBOQUJwQlB5QUFRUjRnQTJ0MlFRSnpJQU5CQVhSclFjY0FhaUlBSUFCQlAwOGJDeUlCUVFSMElnQkI0TTBCYWpZQ0JDQUNJQUJCNk0wQmFpSUFLQUlBTmdJSUlBQWdBallDQUNBQ0tBSUlJQUkyQWdSQjZOVUJRZWpWQVNrREFFSUJJQUd0aG9RM0F3QUxDOGtDQVFSL0lBRkJBRFlDQUFKQUlBSkZEUUFnQVNBQ2FpRURBa0FnQWtFUVNRUkFJQUFoQVF3QkN3SkFJQUVnQUNBQ2FrOE5BQ0FBSUFOUERRQWdBQ0VCREFFTElBTkJFR3NoQmlBQUlBSkJjSEVpQldvaEFTQURJQVZySVFNRFFDQUdJQVJySUFBZ0JHcjlBQUFBL1F3QUFBQUFBQUFBQUFBQUFBQUFBQUFBL1EwUERnME1Dd29KQ0FjR0JRUURBZ0VBL1FzQUFDQUVRUkJxSWdRZ0JVY05BQXNnQWlBRlJnMEJDd0pBSUFKQkEzRWlCa1VFUUNBRklRUU1BUXRCQUNFQUlBVWhCQU5BSUFOQkFXc2lBeUFCTFFBQU9nQUFJQVJCQVdvaEJDQUJRUUZxSVFFZ0FFRUJhaUlBSUFaSERRQUxDeUFGSUFKclFYeExEUUFEUUNBRFFRRnJJQUV0QUFBNkFBQWdBMEVDYXlBQkxRQUJPZ0FBSUFOQkEyc2dBUzBBQWpvQUFDQURRUVJySWdNZ0FTMEFBem9BQUNBQlFRUnFJUUVnQkVFRWFpSUVJQUpIRFFBTEN3dUNCQUVEZnlBQ1FZQUVUd1JBSUFBZ0FTQUNFQUlnQUE4TElBQWdBbW9oQXdKQUlBQWdBWE5CQTNGRkJFQUNRQ0FBUVFOeFJRUkFJQUFoQWd3QkN5QUNSUVJBSUFBaEFnd0JDeUFBSVFJRFFDQUNJQUV0QUFBNkFBQWdBVUVCYWlFQklBSkJBV29pQWtFRGNVVU5BU0FDSUFOSkRRQUxDeUFEUVh4eElRUUNRQ0FEUWNBQVNRMEFJQUlnQkVGQWFpSUZTdzBBQTBBZ0FpQUJLQUlBTmdJQUlBSWdBU2dDQkRZQ0JDQUNJQUVvQWdnMkFnZ2dBaUFCS0FJTU5nSU1JQUlnQVNnQ0VEWUNFQ0FDSUFFb0FoUTJBaFFnQWlBQktBSVlOZ0lZSUFJZ0FTZ0NIRFlDSENBQ0lBRW9BaUEyQWlBZ0FpQUJLQUlrTmdJa0lBSWdBU2dDS0RZQ0tDQUNJQUVvQWl3MkFpd2dBaUFCS0FJd05nSXdJQUlnQVNnQ05EWUNOQ0FDSUFFb0FqZzJBamdnQWlBQktBSThOZ0k4SUFGQlFHc2hBU0FDUVVCcklnSWdCVTBOQUFzTElBSWdCRThOQVFOQUlBSWdBU2dDQURZQ0FDQUJRUVJxSVFFZ0FrRUVhaUlDSUFSSkRRQUxEQUVMSUFOQkJFa0VRQ0FBSVFJTUFRc2dBMEVFYXlJRUlBQkpCRUFnQUNFQ0RBRUxJQUFoQWdOQUlBSWdBUzBBQURvQUFDQUNJQUV0QUFFNkFBRWdBaUFCTFFBQ09nQUNJQUlnQVMwQUF6b0FBeUFCUVFScUlRRWdBa0VFYWlJQ0lBUk5EUUFMQ3lBQ0lBTkpCRUFEUUNBQ0lBRXRBQUE2QUFBZ0FVRUJhaUVCSUFKQkFXb2lBaUFEUncwQUN3c2dBQXN3QVFGL0FrQWdBRVVOQUNBQlJRMEFRUWdnQUNBQmJDSUJFQ2tpQUFSQUlBQkJBQ0FCRUJrYUN5QUFJUUlMSUFJTEVRQWdBRVVFUUVFQUR3dEJDQ0FBRUNrTDhnSUNBbjhCZmdKQUlBSkZEUUFnQUNBQk9nQUFJQUFnQW1vaUEwRUJheUFCT2dBQUlBSkJBMGtOQUNBQUlBRTZBQUlnQUNBQk9nQUJJQU5CQTJzZ0FUb0FBQ0FEUVFKcklBRTZBQUFnQWtFSFNRMEFJQUFnQVRvQUF5QURRUVJySUFFNkFBQWdBa0VKU1EwQUlBQkJBQ0FBYTBFRGNTSUVhaUlESUFGQi93RnhRWUdDaEFoc0lnRTJBZ0FnQXlBQ0lBUnJRWHh4SWdScUlnSkJCR3NnQVRZQ0FDQUVRUWxKRFFBZ0F5QUJOZ0lJSUFNZ0FUWUNCQ0FDUVFocklBRTJBZ0FnQWtFTWF5QUJOZ0lBSUFSQkdVa05BQ0FESUFFMkFoZ2dBeUFCTmdJVUlBTWdBVFlDRUNBRElBRTJBZ3dnQWtFUWF5QUJOZ0lBSUFKQkZHc2dBVFlDQUNBQ1FSaHJJQUUyQWdBZ0FrRWNheUFCTmdJQUlBUWdBMEVFY1VFWWNpSUVheUlDUVNCSkRRQWdBYTFDZ1lDQWdCQitJUVVnQXlBRWFpRUJBMEFnQVNBRk53TVlJQUVnQlRjREVDQUJJQVUzQXdnZ0FTQUZOd01BSUFGQklHb2hBU0FDUVNCcklnSkJIMHNOQUFzTElBQUxKd0VCZnlNQVFSQnJJZ01rQUNBRElBSTJBZ3dnQUNBQklBSkJBRUVBRUhVZ0EwRVFhaVFBQytnRkFRbC9JQUZGQkVCQkFBOExBbjhnQUVVRVFFRUlJQUVRS1F3QkN5QUJSUVJBSUFBUUZFRUFEQUVMQWtBZ0FVRkhTdzBBSUFBQ2YwRUlJQUZCQTJwQmZIRWdBVUVJVFJzaUIwRUlhaUVCQWtBQ2Z3SkFJQUJCQkdzaUNpSUVLQUlBSWdVZ0JHb2lBaWdDQUNJSklBSWdDV29pQ0VFRWF5Z0NBRWNFUUNBSUlBRWdCR29pQTBFUWFrOEVRQ0FDS0FJRUlnVWdBaWdDQ0NJQ05nSUlJQUlnQlRZQ0JDQURJQWdnQTJzaUFqWUNBQ0FESUFKQmZIRnFRUVJySUFKQkFYSTJBZ0FnQXdKL0lBTW9BZ0JCQ0dzaUFrSC9BRTBFUUNBQ1FRTjJRUUZyREFFTElBSkJIU0FDWnlJRmEzWkJCSE1nQlVFQ2RHdEI3Z0JxSUFKQi94OU5EUUFhUVQ4Z0FrRWVJQVZyZGtFQ2N5QUZRUUYwYTBISEFHb2lBaUFDUVQ5UEd3c2lBa0VFZENJRlFlRE5BV28yQWdRZ0F5QUZRZWpOQVdvaUJTZ0NBRFlDQ0NBRklBTTJBZ0FnQXlnQ0NDQUROZ0lFUWVqVkFVSG8xUUVwQXdCQ0FTQUNyWWFFTndNQUlBUWdBVFlDQUF3RUN5QURJQWhMRFFFZ0FpZ0NCQ0lCSUFJb0FnZ2lBellDQ0NBRElBRTJBZ1FnQkNBRklBbHFJZ0UyQWdBTUF3c2dCU0FCUVJCcVR3UkFJQVFnQVRZQ0FDQUVJQUZCZkhGcVFRUnJJQUUyQWdBZ0FTQUVhaUlESUFVZ0FXc2lBVFlDQUNBRElBRkJmSEZxUVFScklBRkJBWEkyQWdBZ0F3Si9JQU1vQWdCQkNHc2lBVUgvQUUwRVFDQUJRUU4yUVFGckRBRUxJQUZCSFNBQlp5SUVhM1pCQkhNZ0JFRUNkR3RCN2dCcUlBRkIveDlORFFBYVFUOGdBVUVlSUFScmRrRUNjeUFFUVFGMGEwSEhBR29pQVNBQlFUOVBHd3NpQVVFRWRDSUVRZUROQVdvMkFnUWdBeUFFUWVqTkFXb2lCQ2dDQURZQ0NDQUVJQU0yQWdBZ0F5Z0NDQ0FETmdJRVFlalZBVUhvMVFFcEF3QkNBU0FCcllhRU53TUFRUUVNQkF0QkFTQUJJQVZORFFFYUMwRUFDd3dCQ3lBRUlBRkJmSEZxUVFScklBRTJBZ0JCQVFzTkFScEJDQ0FIRUNraUFVVU5BQ0FCSUFBZ0J5QUtLQUlBUVFocklnWWdCaUFIU3hzUUZob2dBQkFVSUFFaEJnc2dCZ3NMTXdFQmZ5TUFRUkJySWdFa0FDQUFCSDhnQVVFTWFrRVFJQUFRZVNFQVFRQWdBU2dDRENBQUd3VkJBQXNnQVVFUWFpUUFDN3dFQVFWL0lBSWdBQ2dDTUNJRlRRUkFJQUVnQUNnQ0pDQUNFQllhSUFBZ0FDZ0NKQ0FDYWpZQ0pDQUFJQUFvQWpBZ0FtczJBakFnQUNBQUtRTTRJQUt0ZkRjRE9DQUNEd3NnQUMwQVJFRUVjUVJBSUFFZ0FDZ0NKQ0FGRUJZYUlBQW9BakFoQVNBQVFRQTJBakFnQUNBQklBQW9BaVJxTmdJa0lBQWdBQ2tET0NBQnJYdzNBemdnQlVGL0lBVWJEd3NDUUNBRkJFQWdBU0FBS0FJa0lBVVFGaUVFSUFBZ0FDZ0NJQ0lITmdJa0lBQW9BakFoQVNBQVFRQTJBakFnQUNBQUtRTTRJQUd0ZkRjRE9DQUNJQUZySVFJZ0FTQUVhaUVCREFFTElBQWdBQ2dDSUNJSE5nSWtDd0pBQWtBRFFBSkFJQUFvQWdBaEJDQUFLQUlRSVFZQ1FDQUFLQUpBSWdnZ0Frc0VRQ0FBSUFjZ0NDQUVJQVlSQUFBaUJqWUNNQ0FHUVg5R0JFQU1CZ3NnQWlBR1RRMENJQUVnQUNnQ0pDQUdFQllhSUFBZ0FDZ0NJQ0lITmdJa0lBQW9BakFoQkF3QkN5QUFJQUVnQWlBRUlBWVJBQUFpQkRZQ01DQUVRWDlHQkVBTUJRc2dBaUFFVFEwRElBQWdBQ2dDSUNJSE5nSWtJQVFoQmdzZ0FFRUFOZ0l3SUFBZ0FDa0RPQ0FFclh3M0F6Z2dBU0FFYWlFQklBSWdCR3NoQWlBRklBWnFJUVVNQVFzTElBRWdBQ2dDSkNBQ0VCWWFJQUFnQUNnQ0pDQUNhallDSkNBQUlBQW9BakFnQW1zMkFqQWdBQ0FBS1FNNElBS3RmRGNET0NBQ0lBVnFEd3NnQUVFQU5nSXdJQUFnQUNnQ0lEWUNKQ0FBSUFBcEF6Z2dCSzE4TndNNElBUWdCV29QQ3lBRFFRUkI2ZmtBUVFBUUV5QUFRUUEyQWpBZ0FDQUFLQUpFUVFSeU5nSkVJQVZCZnlBRkd3c1hBQ0FBTFFBQVFTQnhSUVJBSUFFZ0FpQUFFRVlhQ3d1REJ3SUxmd0YrSUFBb0FoQWlCMEVnVHdSQUlBQXBBd2luRHdzQ1FDQUFLQUlZSWdKQkJFNEVRQ0FBS0FJQUlnRW9BZ0FoQkNBQUlBSkJCR3NpQlRZQ0dDQUFJQUZCQkdvMkFnQU1BUXRCZjBFQUlBQW9BaHdiSVFRZ0FrRUFUQVJBSUFJaEJRd0JDeUFDUVFGeElBQW9BZ0FoQVFKQUlBSkJBVVlFUUNBQklRWU1BUXNnQWtIKy8vLy9CM0VoQ2dOQUlBQWdBVUVCYWpZQ0FDQUJMUUFBSVFrZ0FDQUJRUUpxSWdZMkFnQWdBQ0FDUVFGck5nSVlJQUV0QUFFaEFTQUFJQUpCQW1zaUFqWUNHQ0FFUWY4QklBTjBRWDl6Y1NBSklBTjBja0dBL2dNZ0EzUkJmM054SUFFZ0EwRUljblJ5SVFRZ0EwRVFhaUVESUFZaEFTQUZRUUpxSWdVZ0NrY05BQXNMUVFBaEJVVU5BQ0FBSUFaQkFXbzJBZ0FnQmkwQUFDRUJJQUFnQWtFQmF6WUNHQ0FFUWY4QklBTjBRWDl6Y1NBQklBTjBjaUVFQ3lBQUtBSVVJUUVnQUNBRVFSaDJJZ3BCL3dGR05nSVVJQUJCQjBFSUlBRWJJZ0ZCQjBFSUlBUkIvd0Z4SWdaQi93RkdHMm9pQWtFSFFRZ2dCRUVJZGtIL0FYRWlBMEgvQVVZYmFpSUpRUWRCQ0NBRVFSQjJRZjhCY1NJRVFmOEJSaHNnQjJwcUlnZzJBaEFnQUNBQUtRTUlJQU1nQVhRZ0JDQUNkSElnQ2lBSmRISWdCbkt0SUFldGhvUWlERGNEQ0NBSVFSOU5CRUFDUUNBRlFRUk9CRUFnQUNnQ0FDSUJLQUlBSVFJZ0FDQUZRUVJyTmdJWUlBQWdBVUVFYWpZQ0FBd0JDMEVBSVFOQmYwRUFJQUFvQWh3YklRSWdCVUVBVEEwQUlBVkJBWEVnQUNnQ0FDRUJBa0FnQlVFQlJnUkFJQUVoQkF3QkN5QUZRZjcvLy84SGNTRUpRUUFoQmdOQUlBQWdBVUVCYWpZQ0FDQUJMUUFBSVFzZ0FDQUJRUUpxSWdRMkFnQWdBQ0FGUVFGck5nSVlJQUV0QUFFaEFTQUFJQVZCQW1zaUJUWUNHQ0FDUWY4QklBTjBRWDl6Y1NBTElBTjBja0dBL2dNZ0EzUkJmM054SUFFZ0EwRUljblJ5SVFJZ0EwRVFhaUVESUFRaEFTQUdRUUpxSWdZZ0NVY05BQXNMUlEwQUlBQWdCRUVCYWpZQ0FDQUVMUUFBSVFFZ0FDQUZRUUZyTmdJWUlBSkIvd0VnQTNSQmYzTnhJQUVnQTNSeUlRSUxJQUFnQWtFWWRpSUJRZjhCUmpZQ0ZDQUFRUWRCQ0NBS1FmOEJSaHNpQkVFSFFRZ2dBa0gvQVhFaUJrSC9BVVliYWlJRlFRZEJDQ0FDUVFoMlFmOEJjU0lEUWY4QlJodHFJZ2RCQjBFSUlBSkJFSFpCL3dGeElnSkIvd0ZHR3lBSWFtbzJBaEFnQUNBRElBUjBJQUlnQlhSeUlBRWdCM1J5SUFaeXJTQUlyWVlnRElRaUREY0RDQXNnREtjTGF3RUJmeU1BUVlBQ2F5SUZKQUFDUUNBQ0lBTk1EUUFnQkVHQXdBUnhEUUFnQlNBQklBSWdBMnNpQTBHQUFpQURRWUFDU1NJQkd4QVpHaUFCUlFSQUEwQWdBQ0FGUVlBQ0VCNGdBMEdBQW1zaUEwSC9BVXNOQUFzTElBQWdCU0FERUI0TElBVkJnQUpxSkFBTE1RQWdBUUovSUFJb0FreEJBRWdFUUNBQUlBRWdBaEJHREFFTElBQWdBU0FDRUVZTElnQkdCRUFQQ3lBQUlBRnVHZ3NYQUNBQUlBRWdBaUFESUFRZ0JTQUdJQWRCQVJBcUdndWhBUUVFZnlBQlFRQk1CRUJCQUE4TElBQW9BZ3doQWlBQUtBSVFJUU1EUUNBQklRVUNRQ0FERFFBZ0FDQUNRUWgwUVlEK0EzRWlBallDRENBQVFRZEJDQ0FDUVlEK0EwWWJJZ00yQWhBZ0FDZ0NDQ0lCSUFBb0FnUlBEUUFnQUNBQlFRRnFOZ0lJSUFBZ0FpQUJMUUFBY2lJQ05nSU1DeUFBSUFOQkFXc2lBellDRUNBQ0lBTjJRUUZ4SUFWQkFXc2lBWFFnQkhJaEJDQUZRUUZMRFFBTElBUUxIZ0FnQUNnQ0RBUkFJQUJCQURZQ0tBTkFJQUFvQWhoQkFFb05BQXNMQzJvQkEzOGdBQVJBSUFBb0FoZ2lBUVJBSUFBb0FoQWlBZ1IvUVFBaEFRTkFJQUFvQWhnZ0FVRTBiR29vQWl3aUF3UkFJQU1RRkNBQUtBSVFJUUlMSUFGQkFXb2lBU0FDU1EwQUN5QUFLQUlZQlNBQkN4QVVDeUFBS0FJY0lnRUVRQ0FCRUJRTElBQVFGQXNMa2hVQkQzOENRQUpBSUFBb0FneEZCRUJCQVNFUElBQW9BZ1JCQUVvTkFTQUFLQUlJUVFGS0RRRU1BZ3RCQVNFTklBQW9BZ2hCQUVvTkFDQUFLQUlFUVFKSURRRUxJQUFvQWdBaUNDQU5RUVYwYWlFRUFrQWdBQ2dDRUNJSElBQW9BaFFpQ2s4TkFDQUVJQWRCQm5ScUlRRUNRQ0FLSUFkclFRTnhJZ1pGQkVBZ0J5RUNEQUVMSUFjaEFnTkFJQUVnQWYwQUJBRDlERmgyblQ5WWRwMC9XSGFkUDFoMm5ULzk1Z0g5Q3dRQUlBRWdBZjBBQkJEOURGaDJuVDlZZHAwL1dIYWRQMWgyblQvOTVnSDlDd1FRSUFGQlFHc2hBU0FDUVFGcUlRSWdBMEVCYWlJRElBWkhEUUFMQ3lBSElBcHJRWHhMRFFBRFFDQUJJQUg5QUFRQS9ReFlkcDAvV0hhZFAxaDJuVDlZZHAwLy9lWUIvUXNFQUNBQklBSDlBQVFRL1F4WWRwMC9XSGFkUDFoMm5UOVlkcDAvL2VZQi9Rc0VFQ0FCSUFIOUFBUkEvUXhZZHAwL1dIYWRQMWgyblQ5WWRwMC8vZVlCL1FzRVFDQUJJQUg5QUFSUS9ReFlkcDAvV0hhZFAxaDJuVDlZZHAwLy9lWUIvUXNFVUNBQklBSDlBQVNBQWYwTVdIYWRQMWgyblQ5WWRwMC9XSGFkUC8zbUFmMExCSUFCSUFFZ0FmMEFCSkFCL1F4WWRwMC9XSGFkUDFoMm5UOVlkcDAvL2VZQi9Rc0VrQUVnQVNBQi9RQUV3QUg5REZoMm5UOVlkcDAvV0hhZFAxaDJuVC85NWdIOUN3VEFBU0FCSUFIOUFBVFFBZjBNV0hhZFAxaDJuVDlZZHAwL1dIYWRQLzNtQWYwTEJOQUJJQUZCZ0FKcUlRRWdBa0VFYWlJQ0lBcEhEUUFMQ3lBSUlBOUJCWFJxSVFVQ1FDQUFLQUlZSWdZZ0FDZ0NIQ0lMVHcwQUlBVWdCa0VHZEdvaEFRSkFJQXNnQm10QkEzRWlDRVVFUUNBR0lRSU1BUXRCQUNFRElBWWhBZ05BSUFFZ0FmMEFCQUQ5REFBWTBEOEFHTkEvQUJqUVB3QVkwRC85NWdIOUN3UUFJQUVnQWYwQUJCRDlEQUFZMEQ4QUdOQS9BQmpRUHdBWTBELzk1Z0g5Q3dRUUlBRkJRR3NoQVNBQ1FRRnFJUUlnQTBFQmFpSURJQWhIRFFBTEN5QUdJQXRyUVh4TERRQURRQ0FCSUFIOUFBUUEvUXdBR05BL0FCalFQd0FZMEQ4QUdOQS8vZVlCL1FzRUFDQUJJQUg5QUFRUS9Rd0FHTkEvQUJqUVB3QVkwRDhBR05BLy9lWUIvUXNFRUNBQklBSDlBQVJBL1F3QUdOQS9BQmpRUHdBWTBEOEFHTkEvL2VZQi9Rc0VRQ0FCSUFIOUFBUlEvUXdBR05BL0FCalFQd0FZMEQ4QUdOQS8vZVlCL1FzRVVDQUJJQUg5QUFTQUFmME1BQmpRUHdBWTBEOEFHTkEvQUJqUVAvM21BZjBMQklBQklBRWdBZjBBQkpBQi9Rd0FHTkEvQUJqUVB3QVkwRDhBR05BLy9lWUIvUXNFa0FFZ0FTQUIvUUFFd0FIOURBQVkwRDhBR05BL0FCalFQd0FZMEQvOTVnSDlDd1RBQVNBQklBSDlBQVRRQWYwTUFCalFQd0FZMEQ4QUdOQS9BQmpRUC8zbUFmMExCTkFCSUFGQmdBSnFJUUVnQWtFRWFpSUNJQXRIRFFBTEN5QUtJQUFvQWdnaUNTQUFLQUlFSWc0Z0RXc2lBQ0FBSUFsS0d5SUlJQWdnQ2tzYklRd2dCRUVnYWlFQkFuOGdCMFVFUUNBTVJRUkFRUUFoQXlBQkRBSUxJQVFnQlAwQUJBQWdCZjBBQkFBZ0JQMEFCQ0Q5NUFIOURGVVQ0ejVWRStNK1ZSUGpQbFVUNHo3OTVnSDk1UUg5Q3dRQUlBUWdCUDBBQkJBZ0JmMEFCQkFnQlAwQUJERDk1QUg5REZVVDR6NVZFK00rVlJQalBsVVQ0ejc5NWdIOTVRSDlDd1FRUVFFaEF5QUVRZUFBYWd3QkN5QUJJQWNpQTBFR2RHb0xJUUlnQXlBTVNRUkFBMEFnQWtFZ2F5SUFJQUQ5QUFRQUlBSkJRR3I5QUFRQUlBTDlBQVFBL2VRQi9ReFZFK00rVlJQalBsVVQ0ejVWRStNKy9lWUIvZVVCL1FzRUFDQUNRUkJySWdBZ0FQMEFCQUFnQWtFd2EvMEFCQUFnQXYwQUJCRDk1QUg5REZVVDR6NVZFK00rVlJQalBsVVQ0ejc5NWdIOTVRSDlDd1FBSUFKQlFHc2hBaUFEUVFGcUlnTWdERWNOQUFzTElBZ2dDazhpRFVVRVFDQUNRU0JySWdBZ0FQMEFCQUFnQWtGQWF2MEFCQUQ5REZVVFl6OVZFMk0vVlJOalAxVVRZei85NWdIOTVRSDlDd1FBSUFKQkVHc2lBQ0FBL1FBRUFDQUNRVEJyL1FBRUFQME1WUk5qUDFVVFl6OVZFMk0vVlJOalAvM21BZjNsQWYwTEJBQUxJQXNnRGlBSklBOXJJZ0FnQUNBT1Noc2lEaUFMSUE1Skd5RUpJQVZCSUdvaEFpQUpBbjhnQmtVRVFDQUpSUVJBSUFJaEEwRUFEQUlMSUFVZ0JmMEFCQUFnQlAwQUJBQWdCZjBBQkNEOTVBSDlESFlHWWo5MkJtSS9kZ1ppUDNZR1lqLzk1Z0g5NVFIOUN3UUFJQVVnQmYwQUJCQWdCUDBBQkJBZ0JmMEFCREQ5NUFIOURIWUdZajkyQm1JL2RnWmlQM1lHWWovOTVnSDk1UUg5Q3dRUUlBVkI0QUJxSVFOQkFRd0JDeUFDSUFaQkJuUnFJUU1nQmdzaUFFc0VRQU5BSUFOQklHc2lDQ0FJL1FBRUFDQURRVUJxL1FBRUFDQUQvUUFFQVAza0FmME1kZ1ppUDNZR1lqOTJCbUkvZGdaaVAvM21BZjNsQWYwTEJBQWdBMEVRYXlJSUlBajlBQVFBSUFOQk1HdjlBQVFBSUFQOUFBUVEvZVFCL1F4MkJtSS9kZ1ppUDNZR1lqOTJCbUkvL2VZQi9lVUIvUXNFQUNBRFFVQnJJUU1nQUVFQmFpSUFJQWxIRFFBTEN5QUxJQTVOSWdoRkJFQWdBMEVnYXlJQUlBRDlBQVFBSUFOQlFHcjlBQVFBL1F4MkJ1SS9kZ2JpUDNZRzRqOTJCdUkvL2VZQi9lVUIvUXNFQUNBRFFSQnJJZ0FnQVAwQUJBQWdBMEV3YS8wQUJBRDlESFlHNGo5MkJ1SS9kZ2JpUDNZRzRqLzk1Z0g5NVFIOUN3UUFDd0pBSUFkRkJFQWdERVVFUUVFQUlRY01BZ3NnQkNBRS9RQUVBQ0FGL1FBRUFDQUUvUUFFSVAza0FmME1yZ0ZaUGE0QldUMnVBVms5cmdGWlBmM21BZjNrQWYwTEJBQWdCQ0FFL1FBRUVDQUYvUUFFRUNBRS9RQUVNUDNrQWYwTXJnRlpQYTRCV1QydUFWazlyZ0ZaUGYzbUFmM2tBZjBMQkJBZ0JFSGdBR29oQVVFQklRY01BUXNnQVNBSFFRWjBhaUVCQ3lBSElBeEpCRUFEUUNBQlFTQnJJZ0FnQVAwQUJBQWdBVUZBYXYwQUJBQWdBZjBBQkFEOTVBSDlESzRCV1QydUFWazlyZ0ZaUGE0QldUMzk1Z0g5NUFIOUN3UUFJQUZCRUdzaUFDQUEvUUFFQUNBQlFUQnIvUUFFQUNBQi9RQUVFUDNrQWYwTXJnRlpQYTRCV1QydUFWazlyZ0ZaUGYzbUFmM2tBZjBMQkFBZ0FVRkFheUVCSUFkQkFXb2lCeUFNUncwQUN3c2dEVVVFUUNBQlFTQnJJZ0FnQVAwQUJBQWdBVUZBYXYwQUJBRDlESzRCMlQydUFkazlyZ0haUGE0QjJUMzk1Z0g5NUFIOUN3UUFJQUZCRUdzaUFDQUEvUUFFQUNBQlFUQnIvUUFFQVAwTXJnSFpQYTRCMlQydUFkazlyZ0haUGYzbUFmM2tBZjBMQkFBTEFrQWdCa1VFUUNBSlJRUkFRUUFoQmd3Q0N5QUZJQVg5QUFRQUlBVDlBQVFBSUFYOUFBUWcvZVFCL1F4ekJzcy9jd2JMUDNNR3l6OXpCc3MvL2VZQi9lUUIvUXNFQUNBRklBWDlBQVFRSUFUOUFBUVFJQVg5QUFRdy9lUUIvUXh6QnNzL2N3YkxQM01HeXo5ekJzcy8vZVlCL2VRQi9Rc0VFQ0FGUWVBQWFpRUNRUUVoQmd3QkN5QUNJQVpCQm5ScUlRSUxJQVlnQ1VrRVFBTkFJQUpCSUdzaUFDQUEvUUFFQUNBQ1FVQnEvUUFFQUNBQy9RQUVBUDNrQWYwTWN3YkxQM01HeXo5ekJzcy9jd2JMUC8zbUFmM2tBZjBMQkFBZ0FrRVFheUlBSUFEOUFBUUFJQUpCTUd2OUFBUUFJQUw5QUFRUS9lUUIvUXh6QnNzL2N3YkxQM01HeXo5ekJzcy8vZVlCL2VRQi9Rc0VBQ0FDUVVCcklRSWdCa0VCYWlJR0lBbEhEUUFMQ3lBSURRQWdBa0VnYXlJQUlBRDlBQVFBSUFKQlFHcjlBQVFBL1F4ekJrdEFjd1pMUUhNR1MwQnpCa3RBL2VZQi9lUUIvUXNFQUNBQ1FSQnJJZ0FnQVAwQUJBQWdBa0V3YS8wQUJBRDlESE1HUzBCekJrdEFjd1pMUUhNR1MwRDk1Z0g5NUFIOUN3UUFDd3RkQVFSL0lBQUVRQ0FBS0FJVUlnRWdBQ2dDRUNJQ2JBUkFBMEFnQUNnQ0dDQURRUUowYWlnQ0FDSUVCRUFnQkJBVUlBQW9BaEFoQWlBQUtBSVVJUUVMSUFOQkFXb2lBeUFCSUFKc1NRMEFDd3NnQUNnQ0dCQVVJQUFRRkFzTGhRRUJBbjhDUUFKQUlBQW9BZ1FpQXlBQUtBSUFJZ1JIQkVBZ0FDZ0NDQ0VEREFFTElBQWdBMEVLYWlJRU5nSUVJQUFvQWdnZ0JFRUNkQkFiSWdORkRRRWdBQ0FETmdJSUlBQW9BZ0FoQkFzZ0F5QUVRUUowYWlBQk5nSUFJQUFnQkVFQmFqWUNBRUVCRHdzZ0FDZ0NDQkFVSUFCQ0FEY0NBQ0FDUVFGQnhpOUJBQkFUUVFBTGt3UUNCbjhDZmdKQUFrQURRQ0FBSUFCQkFXdHhEUUVnQVVGSFN3MEJJQUJCQ0NBQVFRaExJZ2NiSVFCQjZOVUJLUU1BSWdnQ2YwRUlJQUZCQTJwQmZIRWdBVUVJVFJzaUFVSC9BRTBFUUNBQlFRTjJRUUZyREFFTElBRm5JUU1nQVVFZElBTnJka0VFY3lBRFFRSjBhMEh1QUdvZ0FVSC9IMDBOQUJwQlB5QUJRUjRnQTJ0MlFRSnpJQU5CQVhSclFjY0FhaUlESUFOQlAwOGJDeUlEcllnaUNVSUFVZ1JBQTBBZ0NTQUplaUlJaUNFSkFuNGdBeUFJcDJvaUEwRUVkQ0lFUWVqTkFXb29BZ0FpQWlBRVFlRE5BV29pQlVjRVFDQUNJQUFnQVJCRklnUU5CaUFDS0FJRUlnUWdBaWdDQ0NJR05nSUlJQVlnQkRZQ0JDQUNJQVUyQWdnZ0FpQUZLQUlFTmdJRUlBVWdBallDQkNBQ0tBSUVJQUkyQWdnZ0EwRUJhaUVESUFsQ0FZZ01BUXRCNk5VQlFlalZBU2tEQUVKK0lBT3RpWU0zQXdBZ0NVSUJoUXNpQ1VJQVVnMEFDMEhvMVFFcEF3QWhDQXRCUHlBSWVhZHJJUVVDUUNBSVVBUkFRUUFoQWd3QkN5QUZRUVIwSWdSQjZNMEJhaWdDQUNFQ0lBaENnSUNBZ0FSVURRQkI0d0FoQXlBQ0lBUkI0TTBCYWlJR1JnMEFBMEFnQTBVTkFTQUNJQUFnQVJCRklnUU5CQ0FEUVFGcklRTWdBaWdDQ0NJQ0lBWkhEUUFMQ3lBQklBQkJNR3BCTUNBSEcyb1FlZzBBQ3lBQ1JRMEFJQUlnQlVFRWRFSGd6UUZxSWdOR0RRQURRQ0FDSUFBZ0FSQkZJZ1FOQWlBQ0tBSUlJZ0lnQTBjTkFBc0xRUUFoQkFzZ0JBdVdJd0luZndON0FrQWdBeUFBS0FJQUlnbExEUUFnQVNBRFR3MEFJQUVnQ1U4TkFDQUVJQUFvQWdRaUNVc05BQ0FDSUFSUERRQWdBaUFKVHcwQUlBVkJIR3NoSnlBQUtBSUlJaGxCQW5RaEVTQUhRUUowSVE4Z0JrRUNkQ0VmSUFWQkJHc2hLQ0FDSUFBb0FneHVJUjRnR1NBWklBRWdHVzRpS1d3Z0FXdHFJU29nQmtFSVJ5RWpJQUloSFFOQUlBQW9BZ3dpQ1NFS0lBSWdIVVlFUUNBSklBSWdDWEJySVFvTElBb2dCQ0FkYXlJTUlBb2dERWtiSWhOQmZIRWhHeUFUUVFOeElSWWdFMEY0Y1NFcklCTkJCM0VoSkNBVFFRRnJJUm9nR1NBSlFRSjBJQXBCQW5SclFRUnFiQ0VnSUFaQkFrWWdFMEVCUm5FaExDQUpJQXBySUJsc0lTVWdKeUFQSUIwZ0Ftc2lER3dpQ1dvaEppQUpJQ2hxSVMwZ0JTQUphaUV1SUFVZ0J5QU1iRUVDZEdvaEhDQXBJU0VnQVNFWUEwQWdLaUFaSUFFZ0dFWWJJZ3dnQXlBWWF5SUpJQWtnREVzYklSQWdHU0FNYXlFSklDRkJBblFpRFNBQUtBSVlJQUFvQWhBZ0hteEJBblJxYWlnQ0FDRVNBa0FDUUNBSUJFQUNRQUpBQWtBQ1FBSkFJQklFUUNBU0lDVkJBblJxSUFsQkFuUnFJUW9nR0NBQmF5RU5JQVpCQVVZTkJDQWNJQVlnRFd4QkFuUnFJUXNnRUVFQlJnMERJQ3dOQWlBakRRRWdFRUVIVFEwQklCTkZEUWdnSmlBTklCOXNhaUFRUVFWMGFpRVZJQklnSUNBUVFRSjBhaUFNUVFKMGEyb2hJaUFRUVh4eElRMUJBQ0VTREFVTElBWkJBVWNFUUNBVFJRMElJQkJCZkhFaERTQVFRUU54SVF3Z0hDQVlJQUZySUFac1FRSjBhaUVMUVFBaEVpQVFRUUZyUVFOSklSUURRQUpBSUJCRkRRQkJBQ0VKUVFBaENrRUFJUTRnRkVVRVFBTkFJQXNnQmlBS2JFRUNkR3BCQURZQ0FDQUxJQXBCQVhJZ0JteEJBblJxUVFBMkFnQWdDeUFLUVFKeUlBWnNRUUowYWtFQU5nSUFJQXNnQ2tFRGNpQUdiRUVDZEdwQkFEWUNBQ0FLUVFScUlRb2dEa0VFYWlJT0lBMUhEUUFMQ3lBTVJRMEFBMEFnQ3lBR0lBcHNRUUowYWtFQU5nSUFJQXBCQVdvaENpQUpRUUZxSWdrZ0RFY05BQXNMSUFzZ0Qyb2hDeUFUSUJKQkFXb2lFa2NOQUFzTUNBc2dFMFVOQnlBUVFRSjBJUXdnSENBWUlBRnJRUUowYWlFTFFRQWhDU0FhUVFkUEJFQURRQ0FMUVFBZ0RCQVpJQTlxUVFBZ0RCQVpJQTlxUVFBZ0RCQVpJQTlxUVFBZ0RCQVpJQTlxUVFBZ0RCQVpJQTlxUVFBZ0RCQVpJQTlxUVFBZ0RCQVpJQTlxUVFBZ0RCQVpJQTlxSVFzZ0NVRUlhaUlKSUN0SERRQUxDMEVBSVFrZ0pFVU5Cd05BSUF0QkFDQU1FQmtnRDJvaEN5QUpRUUZxSWdrZ0pFY05BQXNNQndzZ0UwVU5CaUFRUVh4eElSUWdFRUVEY1NFU1FRQWhEU0FRUVFGclFRTkpJUmNNQlF0QkFDRUpJQkJCZkhFaURnUkFBMEFnQ3lBSlFRTjBhaUFLSUFsQkFuUnFLQUlBTmdJQUlBc2dDVUVCY2lJVVFRTjBhaUFLSUJSQkFuUnFLQUlBTmdJQUlBc2dDVUVDY2lJVVFRTjBhaUFLSUJSQkFuUnFLQUlBTmdJQUlBc2dDVUVEY2lJVVFRTjBhaUFLSUJSQkFuUnFLQUlBTmdJQUlBbEJCR29pQ1NBT1NRMEFDd3NnQ1NBUVR3MEZBa0FnRUNBSmF5SVVRUTlORFFBZ0xpQU5JQjlzSWcxcUlBbEJBM1JxSUJJZ0lHb2lEaUFRSUF4clFRSjBha2tFUUNBT0lBa2dER3RCQW5ScUlBMGdMV29nRUVFRGRHcEpEUUVMSUFvZ0NVRUNkR29oRFNBSi9SSDlEQUFBQUFBQkFBQUFBZ0FBQUFNQUFBRDlyZ0VoTUNBSklCUkJmSEVpREdvaENVRUFJUTREUUNBTElEQkJBLzJyQVNJeC9Sc0FhaUFOSUE1QkFuUnEvUUFDQUNJeS9Wb0NBQUFnQ3lBeC9Sc0JhaUF5L1ZvQ0FBRWdDeUF4L1JzQ2FpQXkvVm9DQUFJZ0N5QXgvUnNEYWlBeS9Wb0NBQU1nTVAwTUJBQUFBQVFBQUFBRUFBQUFCQUFBQVAydUFTRXdJQTVCQkdvaURpQU1SdzBBQ3lBTUlCUkdEUVlMUVFBaERDQUpJUTRnRUNBSmEwRURjU0lOQkVBRFFDQUxJQTVCQTNScUlBb2dEa0VDZEdvb0FnQTJBZ0FnRGtFQmFpRU9JQXhCQVdvaURDQU5SdzBBQ3dzZ0NTQVFhMEY4U3cwRkEwQWdDeUFPUVFOMGFpQUtJQTVCQW5ScUtBSUFOZ0lBSUFzZ0RrRUJhaUlKUVFOMGFpQUtJQWxCQW5ScUtBSUFOZ0lBSUFzZ0RrRUNhaUlKUVFOMGFpQUtJQWxCQW5ScUtBSUFOZ0lBSUFzZ0RrRURhaUlKUVFOMGFpQUtJQWxCQW5ScUtBSUFOZ0lBSUE1QkJHb2lEaUFRUncwQUN3d0ZDeUFUUlEwRVFRQWhDU0FhUVFOUEJFQURRQ0FMSUFvb0FnQTJBZ0FnQ3lBUGFpSU1JQW9nRVdvaURTZ0NBRFlDQUNBTUlBOXFJZ3dnRFNBUmFpSU5LQUlBTmdJQUlBd2dEMm9pRENBTklCRnFJZzBvQWdBMkFnQWdEU0FSYWlFS0lBd2dEMm9oQ3lBSlFRUnFJZ2tnRzBjTkFBc0xRUUFoQ1NBV1JRMEVBMEFnQ3lBS0tBSUFOZ0lBSUFvZ0VXb2hDaUFMSUE5cUlRc2dDVUVCYWlJSklCWkhEUUFMREFRTElCd2dEVUVDZEdvaEN5QVFRUVJIQkVBZ0UwVU5CQ0FRUVFKMElRbEJBQ0VPSUJwQkEwOEVRQU5BSUFzZ0NpQUpFQllnQ2lBUmFpSU5JQkZxSWdzZ0VXb2lFaUFSYWlFS0lBOXFJQTBnQ1JBV0lBOXFJQXNnQ1JBV0lBOXFJQklnQ1JBV0lBOXFJUXNnRGtFRWFpSU9JQnRIRFFBTEMwRUFJUTRnRmtVTkJBTkFJQXNnQ2lBSkVCWWdDaUFSYWlFS0lBOXFJUXNnRGtFQmFpSU9JQlpIRFFBTERBUUxJQk5GRFFOQkFDRUpJQnBCQTA4RVFBTkFJQXNnQ3YwQUFnRDlDd0lBSUFzZ0Qyb2lEQ0FLSUJGcUlnMzlBQUlBL1FzQ0FDQU1JQTlxSWd3Z0RTQVJhaUlOL1FBQ0FQMExBZ0FnRENBUGFpSU1JQTBnRVdvaURmMEFBZ0Q5Q3dJQUlBMGdFV29oQ2lBTUlBOXFJUXNnQ1VFRWFpSUpJQnRIRFFBTEMwRUFJUWtnRmtVTkF3TkFJQXNnQ3YwQUFnRDlDd0lBSUFvZ0VXb2hDaUFMSUE5cUlRc2dDVUVCYWlJSklCWkhEUUFMREFNTEEwQkJBQ0VKSUEwRVFBTkFJQXNnQ1VFRmRHb2dDaUFKUVFKMGFpZ0NBRFlDQUNBTElBbEJBWElpREVFRmRHb2dDaUFNUVFKMGFpZ0NBRFlDQUNBTElBbEJBbklpREVFRmRHb2dDaUFNUVFKMGFpZ0NBRFlDQUNBTElBbEJBM0lpREVFRmRHb2dDaUFNUVFKMGFpZ0NBRFlDQUNBSlFRUnFJZ2tnRFVrTkFBc0xBa0FnQ1NBUVR3MEFBa0FDUUNBUUlBbHJJaFJCQjAwTkFDQUxJQWxCQlhScUlDSWdFU0FTYkdwSkJFQWdDaUFKUVFKMGFpQVZJQThnRW14cVNRMEJDeUFKL1JIOURBQUFBQUFCQUFBQUFnQUFBQU1BQUFEOXJnRWhNQ0FKSUJSQmZIRWlGMm9oREVFQUlRNERRQ0FMSURCQkJmMnJBU0l4L1JzQWFpQUtJQWtnRG1wQkFuUnEvUUFDQUNJeS9Wb0NBQUFnQ3lBeC9Sc0JhaUF5L1ZvQ0FBRWdDeUF4L1JzQ2FpQXkvVm9DQUFJZ0N5QXgvUnNEYWlBeS9Wb0NBQU1nTVAwTUJBQUFBQVFBQUFBRUFBQUFCQUFBQVAydUFTRXdJQTVCQkdvaURpQVhSdzBBQ3lBVUlCZEhEUUVNQWdzZ0NTRU1DMEVBSVE0Z0VDQU1JZ2xyUVFOeEloUUVRQU5BSUFzZ0NVRUZkR29nQ2lBSlFRSjBhaWdDQURZQ0FDQUpRUUZxSVFrZ0RrRUJhaUlPSUJSSERRQUxDeUFNSUJCclFYeExEUUFEUUNBTElBbEJCWFJxSUFvZ0NVRUNkR29vQWdBMkFnQWdDeUFKUVFGcUlneEJCWFJxSUFvZ0RFRUNkR29vQWdBMkFnQWdDeUFKUVFKcUlneEJCWFJxSUFvZ0RFRUNkR29vQWdBMkFnQWdDeUFKUVFOcUlneEJCWFJxSUFvZ0RFRUNkR29vQWdBMkFnQWdDVUVFYWlJSklCQkhEUUFMQ3lBS0lCRnFJUW9nQ3lBUGFpRUxJQk1nRWtFQmFpSVNSdzBBQ3d3Q0N5QVNSUVJBUVFFZ0FDZ0NDQ0FBS0FJTWJFRUNkQkFYSWhKRkJFQkJBQThMSUFBb0FoZ2dBQ2dDRUNBZWJFRUNkR29nRFdvZ0VqWUNBQXNnRWlBbFFRSjBhaUFKUVFKMGFpRUxJQmdnQVdzaENRSkFJQVpCQVVjRVFDQWNJQVlnQ1d4QkFuUnFJUW9nRUVFQlJ3UkFBa0FnSXcwQUlCQkJCMDBOQUNBVFJRMEZJQ1lnQ1NBZmJHb2dFRUVGZEdvaElpQWdJQkJCQW5ScUlBeEJBblJySVM4Z0VFRjhjU0VVUVFBaERBTkFRUUFoQ1NBVUJFQURRQ0FMSUFsQkFuUnFJQW9nQ1VFRmRHb29BZ0EyQWdBZ0N5QUpRUUZ5SWcxQkFuUnFJQW9nRFVFRmRHb29BZ0EyQWdBZ0N5QUpRUUp5SWcxQkFuUnFJQW9nRFVFRmRHb29BZ0EyQWdBZ0N5QUpRUU55SWcxQkFuUnFJQW9nRFVFRmRHb29BZ0EyQWdBZ0NVRUVhaUlKSUJSSkRRQUxDd0pBSUFrZ0VFOE5BQUpBQWtBZ0VDQUpheUlYUVFkTkRRQWdDeUFKUVFKMGFpQWlJQXdnRDJ4cVNRUkFJQW9nQ1VFRmRHb2dFaUF2SUF3Z0VXeHFha2tOQVFzZ0NmMFIvUXdBQUFBQUFRQUFBQUlBQUFBREFBQUEvYTRCSVRBZ0NTQVhRWHh4SWhWcUlRMUJBQ0VPQTBBZ0N5QUpJQTVxUVFKMGFpQUtJREJCQmYyckFTSXgvUnNEYWlBS0lESDlHd0pxSUFvZ01mMGJBV29nQ2lBeC9Sc0FhdjFjQWdEOVZnSUFBZjFXQWdBQy9WWUNBQVA5Q3dJQUlERDlEQVFBQUFBRUFBQUFCQUFBQUFRQUFBRDlyZ0VoTUNBT1FRUnFJZzRnRlVjTkFBc2dGU0FYUncwQkRBSUxJQWtoRFF0QkFDRU9JQkFnRFNJSmEwRURjU0lYQkVBRFFDQUxJQWxCQW5ScUlBb2dDVUVGZEdvb0FnQTJBZ0FnQ1VFQmFpRUpJQTVCQVdvaURpQVhSdzBBQ3dzZ0RTQVFhMEY4U3cwQUEwQWdDeUFKUVFKMGFpQUtJQWxCQlhScUtBSUFOZ0lBSUFzZ0NVRUJhaUlOUVFKMGFpQUtJQTFCQlhScUtBSUFOZ0lBSUFzZ0NVRUNhaUlOUVFKMGFpQUtJQTFCQlhScUtBSUFOZ0lBSUFzZ0NVRURhaUlOUVFKMGFpQUtJQTFCQlhScUtBSUFOZ0lBSUFsQkJHb2lDU0FRUncwQUN3c2dDeUFSYWlFTElBb2dEMm9oQ2lBVElBeEJBV29pREVjTkFBc01CUXNnRTBVTkJDQVFRWHh4SVJRZ0VFRURjU0VTUVFBaERTQVFRUUZyUVFOSklSY01BZ3NnRTBVTkEwRUFJUWtnR2tFRFR3UkFBMEFnQ3lBS0tBSUFOZ0lBSUFzZ0VXb2lEQ0FLSUE5cUlnMG9BZ0EyQWdBZ0RDQVJhaUlNSUEwZ0Qyb2lEU2dDQURZQ0FDQU1JQkZxSWd3Z0RTQVBhaUlOS0FJQU5nSUFJQXdnRVdvaEN5QU5JQTlxSVFvZ0NVRUVhaUlKSUJ0SERRQUxDMEVBSVFrZ0ZrVU5Bd05BSUFzZ0NpZ0NBRFlDQUNBTElCRnFJUXNnQ2lBUGFpRUtJQWxCQVdvaUNTQVdSdzBBQ3d3REN5QWNJQWxCQW5ScUlRb2dFRUVFUndSQUlCTkZEUU1nRUVFQ2RDRUpRUUFoRGlBYVFRTlBCRUFEUUNBTElBb2dDUkFXSUFvZ0Qyb2lEU0FQYWlJTElBOXFJaElnRDJvaENpQVJhaUFOSUFrUUZpQVJhaUFMSUFrUUZpQVJhaUFTSUFrUUZpQVJhaUVMSUE1QkJHb2lEaUFiUncwQUN3dEJBQ0VPSUJaRkRRTURRQ0FMSUFvZ0NSQVdJQW9nRDJvaENpQVJhaUVMSUE1QkFXb2lEaUFXUncwQUN3d0RDeUFUUlEwQ1FRQWhDU0FhUVFOUEJFQURRQ0FMSUFyOUFBSUEvUXNDQUNBTElCRnFJZ3dnQ2lBUGFpSU4vUUFDQVAwTEFnQWdEQ0FSYWlJTUlBMGdEMm9pRGYwQUFnRDlDd0lBSUF3Z0VXb2lEQ0FOSUE5cUlnMzlBQUlBL1FzQ0FDQU5JQTlxSVFvZ0RDQVJhaUVMSUFsQkJHb2lDU0FiUncwQUN3dEJBQ0VKSUJaRkRRSURRQ0FMSUFyOUFBSUEvUXNDQUNBS0lBOXFJUW9nQ3lBUmFpRUxJQWxCQVdvaUNTQVdSdzBBQ3d3Q0N3TkFBa0FnRUVVTkFFRUFJUTVCQUNFSlFRQWhEQ0FYUlFSQUEwQWdDeUFKUVFKMGFpQUtJQVlnQ1d4QkFuUnFLQUlBTmdJQUlBc2dDVUVCY2lJVlFRSjBhaUFLSUFZZ0ZXeEJBblJxS0FJQU5nSUFJQXNnQ1VFQ2NpSVZRUUowYWlBS0lBWWdGV3hCQW5ScUtBSUFOZ0lBSUFzZ0NVRURjaUlWUVFKMGFpQUtJQVlnRld4QkFuUnFLQUlBTmdJQUlBbEJCR29oQ1NBTVFRUnFJZ3dnRkVjTkFBc0xJQkpGRFFBRFFDQUxJQWxCQW5ScUlBb2dCaUFKYkVFQ2RHb29BZ0EyQWdBZ0NVRUJhaUVKSUE1QkFXb2lEaUFTUncwQUN3c2dDeUFSYWlFTElBb2dEMm9oQ2lBVElBMUJBV29pRFVjTkFBc01BUXNEUUFKQUlCQkZEUUJCQUNFT1FRQWhDVUVBSVF3Z0YwVUVRQU5BSUFzZ0JpQUpiRUVDZEdvZ0NpQUpRUUowYWlnQ0FEWUNBQ0FMSUFsQkFYSWlGU0FHYkVFQ2RHb2dDaUFWUVFKMGFpZ0NBRFlDQUNBTElBbEJBbklpRlNBR2JFRUNkR29nQ2lBVlFRSjBhaWdDQURZQ0FDQUxJQWxCQTNJaUZTQUdiRUVDZEdvZ0NpQVZRUUowYWlnQ0FEWUNBQ0FKUVFScUlRa2dERUVFYWlJTUlCUkhEUUFMQ3lBU1JRMEFBMEFnQ3lBR0lBbHNRUUowYWlBS0lBbEJBblJxS0FJQU5nSUFJQWxCQVdvaENTQU9RUUZxSWc0Z0VrY05BQXNMSUFvZ0VXb2hDaUFMSUE5cUlRc2dEVUVCYWlJTklCTkhEUUFMQ3lBaFFRRnFJU0VnRUNBWWFpSVlJQU5KRFFBTElCNUJBV29oSGlBVElCMXFJaDBnQkVrTkFBc0xRUUVMR1FFQ2ZpQUFLUU1BSWdJZ0FTa0RBQ0lEVlNBQ0lBTlRhd3UwTmdVbmZ3OStBWHNCZlFGOEl3QkIwQUJySWc4a0FDQVBRWkQvQXpZQ0tDQUFLQUtFQVNBQUtBS0FBV3doR0FKL0FrQUNRQUpBSUFBb0FnZ2lDMEVJUndSQVFRQWdDMEdBQWtjTkJCb2dEMEhaL3dNMkFpZ01BUXNnQUMwQVhFRUJjUTBBSUJoQmZIRWhEU0FQUWMwQWFpRW9JQTlCekFCcUlTa2dEMEhJQUdvaE1FR1Evd01oQ3dKQUFrQURRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQWdBQ2dDVkNJTVJRMEFJQXdnQUNnQ1VDSU9UUTBBSUFBb0FsZ2dEa0VEZEdvcEF3QWhNaUFBSUE1QkFXbzJBbEFnQ1NBeUlBb1FNRVVFUUNBS1FRRkJteXBCQUJBVFFRQU1Ed3NnQ1NBQUtBSVFRUUlnQ2hBZFFRSkhCRUFnQ2tFQlFZTVRRUUFRRTBFQURBOExJQUFvQWhBZ0QwRW9ha0VDRUJVZ0R5Z0NLRUdRL3dOR0RRRWdDa0VCUWNRZlFRQVFFMEVBREE0TElBdEJrLzhEUmcwQkN3TkFJQWtwQXdnaU1sQUVma0lBQlNBeUlBa3BBemg5QzFBRVFDQUFRY0FBTmdJSURBSUxJQWtnQUNnQ0VFRUNJQW9RSFVFQ1J3UkFJQXBCQVVHREUwRUFFQk5CQUF3T0N5QUFLQUlRSUE5QkpHcEJBaEFWSUE4b0FpUkJBVTBFUUNBS1FRRkIreTVCQUJBVFFRQU1EZ3NDUUNBUEtBSW9RWUNCQWtjTkFDQUpLUU1JSWpKUUJINUNBQVVnTWlBSktRTTRmUXRDQUZJTkFDQUFRY0FBTmdJSURBSUxBa0FnQUNnQ0NDSVRRUkJ4UlFSQUlBOG9BaVFoQ3d3QkN5QVBLQUlrSVFzZ0FDZ0NHQ0lPUlEwQUlBdEJBbW9pRENBT1N3UkFJQXBCQVVHTndRQkJBQkFUUVFBTUR3c2dBQ0FPSUF4ck5nSVlDeUFQSUF0QkFtc2lFRFlDSkVHZ3dnRWhEQ0FQS0FJb0lRNERRQ0FNSWdzb0FnQWlHd1JBSUF0QkRHb2hEQ0FPSUJ0SERRRUxDeUFMS0FJRUlCTnhSUVJBSUFwQkFVSHdLVUVBRUJOQkFBd09Dd0pBSUFBb0FoUWdFRThFUUNBQUtBSVFJUXdNQVFzZ0NTa0RDQ0l5VUFSK1FnQUZJRElnQ1NrRE9IMExJQkN0VXdSQUlBcEJBVUdBTFVFQUVCTkJBQXdQQ3lBQUtBSVFJQThvQWlRUUd5SU1SUVJBSUFBb0FoQVFGQ0FBUWdBM0F4QWdDa0VCUWNnbVFRQVFFMEVBREE4TElBQWdERFlDRUNBQUlBOG9BaVFpRURZQ0ZBc2dDU0FNSUJBZ0NoQWRJZ3dnRHlnQ0pFY0VRQ0FLUVFGQmd4TkJBQkFUUVFBTURnc2dDeWdDQ0NJTFJRUkFJQXBCQVVHbzJ3QkJBQkFUUVFBTURnc2dBQ0FBS0FJUUlBd2dDaUFMRVFFQVJRUkFJQThnRHlnQ0tEWUNJQ0FLUVFGQjR1d0FJQTlCSUdvUUUwRUFEQTRMSUFrcEF6Z2hNaUFQS0FJa0lSSWdBQ2dDNEFFaUV5Z0NLQ0lRSUFBb0F1UUJJZ3hCS0d3aURtb2lGU2dDRkNJZVFRRnFJaHdnRlNnQ0hDSUxTd1JBSUJVQ2Z5QUxzME1BQU1oQ2tpSkNRd0FBZ0U5ZElFSkRBQUFBQUdCeEJFQWdRcWtNQVF0QkFBc2lDellDSENBVktBSVlJQXRCR0d3UUd5RUxJQk1vQWlnaUVDQU9haUVWSUF0RkRRTWdGU0FMTmdJWUlCVW9BaFFpSGtFQmFpRWNDeUFPSUJCcUloTW9BaGdnSGtFWWJHb2lDeUFTUVFScU5nSVFJQXNnTXFjZ0VtdEJCR3NpRHF3M0F3Z2dDeUFiT3dFQUlCTWdIRFlDRkFKQUlCdEJrUDhEUncwQUFrQWdFeWdDRUNJTVJRMEFJQk1vQWd3aUN5QVRLQUlFVHcwQUlBd2dDMEVZYkdvZ0RxMDNBd0FMSUFrcEF6aW5JQThvQWlSclFRUnJyU0l5SUFBcEF6QlhEUUFnQUNBeU53TXdDeUFBTFFCY1FRUnhCRUFnQ1NBQU5RSVlJQW9nQ1NnQ0tCRUlBQ0FBTlFJWVVnUkFJQXBCQVVHREUwRUFFQk5CQUF3UEN5QVBRWlAvQXpZQ0tBd0NDeUFKSUFBb0FoQkJBaUFLRUIxQkFrY0VRQ0FLUVFGQmd4TkJBQkFUUVFBTURnc2dBQ2dDRUNBUFFTaHFRUUlRRlNBUEtBSW9RWlAvQTBjTkFBc0xBa0FnQ1NrRENDSXlVQVIrUWdBRklESWdDU2tET0gwTFVBUkFJQUFvQWdoQndBQkdEUUVMSUFBdEFGd2lDMEVFY1VVRVFDQUFLQUxrQVVHTUxHd2hEQ0FBS0FLMEFRSkFBa0FnQUNnQ09BUkFJQWtwQXdnaU1sQUVma0lBQlNBeUlBa3BBemg5QzZjaEVBd0JDeUFBS0FJWUloQkJBa2tOQVFzZ0FDQVFRUUpySWhBMkFoZ0xJQXhxSVJZZ0VFVU5BeUFKS1FNSUlqSlFCSDVDQUFVZ01pQUpLUU00ZlFzZ0VLMVRCRUFnQUNnQzBBRUVRQ0FLUVFGQnJTMUJBQkFUUVFBTUR3c2dDa0VDUWEwdFFRQVFFd3NnQUNnQ0dDSU9RWDVQQkVBZ0NrRUJRYU1MUVFBUUUwRUFEQTRMQWtBZ0ZpZ0MzQ3NpREFSQUlCWW9BdUFySWd0QmZTQU9hMHNFUUNBS1FRRkJsZ2xCQUJBVFFRQU1FQXNnRENBTElBNXFRUUpxRUJzaUN3UkFJQllnQ3pZQzNDc01CZ3NnRmlnQzNDc1FGQ0FXUVFBMkF0d3JEQUVMSUJZZ0RrRUNhaEFZSWdzMkF0d3JJQXNOQkFzZ0NrRUJRZnN2UVFBUUUwRUFEQTBMSUFCQkNEWUNDQ0FBSUF0QitnRnhPZ0JjREFNTElBOG9BaWdoQ3d3RUN5QVZLQUlZRUJRZ0V5Z0NLQ0FNUVNoc2FpSUFRUUEyQWh3Z0FFSUFOd0lVSUFwQkFVSHlIVUVBRUJOQkFBd0tDeUFBS0FMZ0FTSWJLQUlvSWhVZ0FDZ0M1QUVpRTBFb2JDSVNhaUlNS0FJUUlBd29BZ3hCR0d4cUlnc2dDU2tET0NJelFnSjlJakkzQXdnZ0N5QXpJQUExQWhoOE53TVFJQUFvQWhnaERnSkFJQXdvQWhRaUhrRUJhaUljSUF3b0Fod2lDMDBFUUNBTUtBSVlJUXdNQVFzZ0RBSi9JQXV6UXdBQXlFS1NJa0pEQUFDQVQxMGdRa01BQUFBQVlIRUVRQ0JDcVF3QkMwRUFDeUlMTmdJY0lBd29BaGdnQzBFWWJCQWJJUXdnR3lnQ0tDSVZJQkpxSVFzZ0RFVU5CU0FMSUF3MkFoZ2dDeWdDRkNJZVFRRnFJUndMSUF3Z0hrRVliR29pQ3lBT1FRSnFOZ0lRSUFzZ01zUTNBd2dnQzBHVC93TTdBUUFnRWlBVmFpQWNOZ0lVSUFBQ2Z5QVFCRUJCQ0NBSklCWW9BdHdySUJZb0F1QXJhaUFBS0FJWUlBb1FIU0lRSUFBb0FoaEdEUUVhUWNBQUlCQkJmMGNOQVJvZ0NrRUJRWU1UUVFBUUUwRUFEQXNMUVFBaEVFSEFBRUVJSUFBb0FoZ2JDellDQ0NBV0lCWW9BdUFySUJCcU5nTGdLd0pBSUFBdEFGeEJBWEVOQUNBQUtBSXNJZ3RCQUVnTkFDQUFLQUxrQVNJTUlBdEhEUUFnQUNnQ1RBMEFJQWtvQWh4QkFrWU5BQ0FBS0FLMEFTQU1RWXdzYkdvaUN5Z0MyQ3NpRGlBQUtBTGdBU2dDS0NBTVFTaHNhaUlNS0FJRVJ3MEFJQTRnQ3lnQzFDdEJBV29pQzAwTkFBSkFJQXdvQWhBZ0MwRVliR29wQXdBaU1pQUpLUU00VVEwQUlBa2dNaUFLRURBTkFDQUtRUUZCbXlwQkFCQVRRUUFNQ3dzZ0NTQUFLQUlRUVFJZ0NoQWRRUUpIQkVBZ0NrRUJRWU1UUVFBUUUwRUFEQXNMSUFBb0FoQWdEMEVvYWtFQ0VCVWdEeWdDS0VHUS93TkdEUUlnQ2tFQlFjUWZRUUFRRTBFQURBb0xJQUF0QUZ3aUMwRUpjVUVCUncwQUlBQWdDMEVJY2pvQVhDQUFLQUswQVNBQUtBTGtBU0lPUVl3c2JHb29BdGdyUVFGR0RRQWdDU2dDSEVFQ1JnMEFJQWtwQXpnaU1rSi9VUTBBQWtBRFFFRUJJUXdnQ1NBUFFjWUFhaUlMUVFJZ0NoQWRRUUpIRFFFZ0N5QVBRVUJyUVFJUUZTQVBLQUpBUVpEL0EwY05BVUdERXlFUUlBa2dDMEVDSUFvUUhVRUNSdzBKSUFzZ0QwRThha0VDRUJVZ0R5Z0NQRUVLUndSQVFmc3VJUkFNQ2dzZ0QwRUlOZ0k4SUFrZ0QwSEdBR3BCQ0NBS0VCMGlDeUFQS0FJOFJ3MEpJQXRCQ0VjRVFFR3FIeUVRREFvTElBOUJ4Z0JxSUE5Qk9HcEJBaEFWSURBZ0QwRTBha0VFRUJVZ0tTQVBRVEJxUVFFUUZTQW9JQTlCTEdwQkFSQVZJQTRnRHlnQ09FY0VRQ0FQS0FJMElndEJEa2tOQWlBUElBdEJER3NpQ3pZQ05DQUpJQXV0SUFvZ0NTZ0NLQkVJQUNBUE5RSTBVUTBCREFJTEN5QVBLQUl3SUE4b0FpeEhJUXdMSUFrZ01pQUtJQWtvQWl3UkRBQkZEUWdnREEwQUlBQWdBQzBBWEVIdUFYRkJFSEk2QUZ3Q1FDQVlSUTBBSUFBb0FyUUJJUlpCQUNFTElCaEJCRThFUUFOQUlCWWdDMEdNTEd4cUloNG9BdGdySWh6OUVTQVdJQXRCQVhKQmpDeHNhaUliS0FMWUt5SVYvUndCSUJZZ0MwRUNja0dNTEd4cUloSW9BdGdySWhQOUhBSWdGaUFMUVFOeVFZd3NiR29pRGlnQzJDc2lEUDBjQS8wTUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAwNElrSDlHd0JCQVhFRVFDQWVRZGdyYWlBY1FRRnFOZ0lBQ3lCQi9Sc0JRUUZ4QkVBZ0cwSFlLMm9nRlVFQmFqWUNBQXNnUWYwYkFrRUJjUVJBSUJKQjJDdHFJQk5CQVdvMkFnQUxJRUg5R3dOQkFYRUVRQ0FPUWRncmFpQU1RUUZxTmdJQUN5QUxRUVJxSWdzZ0RVY05BQXNnR0NBTklndEdEUUVMQTBBZ0ZpQUxRWXdzYkdvaURpZ0MyQ3NpREFSQUlBNUIyQ3RxSUF4QkFXbzJBZ0FMSUF0QkFXb2lDeUFZUncwQUN3c2dDa0VDUWFiR0FFRUFFQk1MSUFBdEFGeEJBWEVOQUNBSklBQW9BaEJCQWlBS0VCMUJBa2NFUUFKQUlBQW9BdVFCUVFGcUlCaEhEUUFnR0VVTkFDQUFLQUswQVNFTlFRQWhDd05BSUEwZ0MwR01MR3hxSWdrb0F0UXJSUVJBSUFrb0F0Z3JSUTBJQ3lBTFFRRnFJZ3NnR0VjTkFBc0xJQXBCQVVHREUwRUFFQk5CQUF3SkN5QUFLQUlRSUE5QktHcEJBaEFWQ3lBUEtBSW9JUXNnQUMwQVhFRUJjUTBBSUF0QjJmOERSdzBCQ3dzZ0MwSFovd05IRFFJZ0FDZ0NDRUdBQWtZTkFpQUFRWUFDTmdJSUlBQkJBRFlDNUFFTUFnc2dDeWdDR0JBVUlCc29BaWdnRTBFb2JHb2lBRUVBTmdJY0lBQkNBRGNDRkNBS1FRRkI4aDFCQUJBVFFRQU1CQXNnRHlBTE5nSVFJQXBCQkVIWDFRQWdEMEVRYWhBVElBQWdDellDNUFFZ0QwSFovd00yQWlnZ0FFR0FBallDQ0FzZ0FDZ0M1QUVoQ3lBQUtBSzBBU0VKQWtBQ1FDQUFMUUJjUVFGeERRQUNRQUpBSUFzZ0dFOE5BQ0FKSUF0QmpDeHNhaUVRQTBBZ0VDZ0MzQ3NOQVNBQUlBdEJBV29pQ3pZQzVBRWdFRUdNTEdvaEVDQUxJQmhIRFFBTERBRUxJQXNnR0VjTkFRc2dDRUVBTmdJQURBRUxBa0FDUUNBS1FRRWdDU0FMUVl3c2JHb2lFaWdDdENnRWYwR1FOUVVnRWkwQWlDeEJBbkZGRFFJQ1FDQVNLQUtvS0NJT1JRUkFRUUFoREF3QkN5QVNLQUtzS0NFSlFRQWhERUVBSVFzZ0RrRUVUd1JBSUE1QmZIRWhDLzBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0ZCUVFBaEVBTkFJQWtnRUVFRGRHb2lEVUVjYWlBTlFSUnFJQTFCREdvZ0RmMWNBZ1Q5VmdJQUFmMVdBZ0FDL1ZZQ0FBTWdRZjJ1QVNGQklCQkJCR29pRUNBTFJ3MEFDeUJCSUVFZ1FmME5DQWtLQ3d3TkRnOEFBUUlEQUFFQ0EvMnVBU0pCSUVFZ1FmME5CQVVHQndBQkFnTUFBUUlEQUFFQ0EvMnVBZjBiQUNFTUlBc2dEa1lOQVFzRFFDQUpJQXRCQTNScUtBSUVJQXhxSVF3Z0MwRUJhaUlMSUE1SERRQUxDeUFTSUF3UUdDSUpOZ0swS0NBSkRRRkJoQjhMUVFBUUV5QUtRUUZCMWo1QkFCQVRRUUFNQlFzZ0VpQU1OZ0s4S0NBU0tBS3NLQ0VKSUJJb0FxZ29JZ3dFUUVFQUlSQkJBQ0VMQTBBZ0NTQUxRUU4wSWhOcUlnNG9BZ0FpRFFSQUlCSW9BclFvSUJCcUlBMGdEaWdDQkJBV0dpQVNLQUtzS0NBVGFpSUpLQUlFSUFrb0FnQVFGQ0FTS0FLc0tDSUpJQk5xUWdBM0FnQWdFR29oRUNBU0tBS29LQ0VNQ3lBTFFRRnFJZ3NnREVrTkFBc0xJQkpCQURZQ3FDZ2dDUkFVSUJKQkFEWUNyQ2dnRWlBU0tBSzBLRFlDc0NnZ0VpQVNLQUs4S0RZQ3VDZ0xBbjhnQUNnQzZBRWlDeWdDSENJaUtBSk1JQUFvQXVRQklnbEJqQ3hzYWlnQzBDc2hHaUFMS0FJWUloTW9BaGdoSXlBTEtBSVVLQUlBSWgwZ0lpZ0NCQ0FpS0FJTUlnc2dDU0FKSUNJb0FoZ2lDVzRpRFNBSmJHdHNhaUlPSUJNb0FnQWlDU0FKSUE1Skd5SU1OZ0lBSUIxQmZ5QUxJQTVxSWdrZ0NTQU9TUnNpQ3lBVEtBSUlJZ2tnQ1NBTFN4c2lDVFlDQ0FKQUlBa2dERW9nREVFQVRuRkZCRUFnQ2tFQlFmVXpRUUFRRXd3QkN5QWRLQUlVSVJFZ0hTQWlLQUlJSUEwZ0lpZ0NFQ0lMYkdvaURDQVRLQUlFSWdrZ0NTQU1TUnNpRFRZQ0JDQWRRWDhnQ3lBTWFpSUpJQWtnREVrYklnc2dFeWdDRENJSklBa2dDMHNiSWdrMkFnd2dDU0FOU2lBTlFRQk9jVVVFUUNBS1FRRkJ6ek5CQUJBVERBRUxBa0FnR2lnQ0JBUkFJQjBvQWhBTkFVRUJEQU1MSUFwQkFVSEpLVUVBRUJNTUFRc0NRQUpBQTBBZ0kwRUFOZ0lrSUJFZ0l6UUNBQ0kyUWdGOUlqSWdIVFFDQUh3Z05uOCtBZ0FnRVNBak5BSUVJalZDQVgwaU15QWROQUlFZkNBMWZ6NENCQ0FSSURJZ0hUUUNDSHdnTm44K0FnZ2dIVFFDRENFeUlCRWdNVFlDRUNBUklESWdNM3dnTlg4K0Fnd2dFU0FhS0FJRUlnczJBaFFnRVVFQklBc2dJaWdDVUNJSmF5QUpJQXRMR3pZQ0dDQVJLQUkwRUJRZ0VVRUFOZ0pFSUJIOURBQUFBQUFBQUFBQUFBQUFBQUFBQUFEOUN3STBJQXRCbUFGc0lRMENRQ0FSS0FJY0lnbEZCRUFnRVNBTkVCZ2lDVFlDSENBSlJRMEZJQkVnRFRZQ0lDQUpRUUFnRFJBWkdnd0JDeUFOSUJFb0FpQk5EUUFnQ1NBTkVCc2lDMFVFUUNBS1FRRkI3UmRCQUJBVElCRW9BaHdRRkNBUlFnQTNBaHdNQlFzZ0VTQUxOZ0ljSUFzZ0VTZ0NJQ0lKYWtFQUlBMGdDV3NRR1JvZ0VTQU5OZ0lnQ3lBUktBSVVJZ3NFUUNBYVFiQUhhaUV3SUJwQnJBWnFJUjRnR2tFY2FpRXFJQkVvQWh3aEdVRUFJU1FEUUNBWlFuOGdDMEVCYXlJSnJTSTBoa0ovaFNJeklCRTBBZ0I4SURTSHB5SVZOZ0lBSUJrZ015QVJOQUlFZkNBMGg2Y2lFallDQkNBWklETWdFVFFDQ0h3Z05JY2lNcWNpRXpZQ0NDQVpJRE1nRVRRQ0RId2dOSWNpTmFjaURqWUNEQ0F5eEVJQklCNGdKRUVDZENJTmFpZ0NBQ0lmclNJeWhueENBWDBnTW9lbklCOTBJZ3hCQUVnTkJDQTF4RUovSUEwZ01Hb29BZ0FpSUswaU1vWkNmNFY4SURLSHB5QWdkQ0lOUVFCSURRUWdHU0FOUVg4Z0lIUWdFbkVpSzJzZ0lIVkJBQ0FPSUJKSEd5SU5OZ0lVSUJrZ0RFRi9JQjkwSUJWeElpeHJJQjkxUVFBZ0V5QVZSeHNpRERZQ0VBSkFJQXhGRFFBZ0RLMGdEYTErUWlDSVVBMEFEQVFMSUF3Z0RXd2lMVUhuekprelR3MERJQzFCS0d3aElTQVpJQ1FFZnlBZ1FRRnJJU0FnSDBFQmF5RWZJQ3VzUWdGOFFnR0lweUVySUN5c1FnRjhRZ0dJcHlFc1FRTUZRUUVMTmdJWUlCbEJIR29oRkNBclFRRWdJSFJxSVJ3Z0xFRUJJQjkwYWlFYlFnRWdDNjBpTjRZaE9FSi9JQm9vQWd3aUN5QWdJQXNnSUVrYklpV3RJajJHUW4rRklUNUNmeUFhS0FJSUlnc2dIeUFMSUI5Skd5SW1yU0kvaGtKL2hTRkFRUUFoRUFOQUFuNGdKRVVFUUNBeklCRTBBZ1I4SURTSElUa2dNeUFSTkFJQWZDQTBoeUU2UVFBaEN5QXpJakloT3lBMERBRUxJRGdnRUVFQmFpSUxRUUYyclNBMGhrSi9oWHdpT3lBUk5BSUVmQ0EzaHlFNUlEZ2dDMEVCY2EwZ05JWkNmNFY4SWpJZ0VUUUNBSHdnTjRjaE9pQTNDeUU4SUJFMEFnZ2hOaUFSTkFJTUlUVWdGQ0E1UGdJRUlCUWdPajRDQUNBVUlBczJBaEFnRkNBMUlEdDhJRHlIUGdJTUlCUWdNaUEyZkNBOGh6NENDRUVBSVEwQ1FDQWFLQUlVUlEwQUlBdEZEUUJCQWtFQklBdEJBMFliSVEwTFJBQUFBQUFBQVBBL0lVTUNRQ0FqS0FJWUlBMXFJQ29vQWdBaURXc2lDMEdBQ0U0RVFFUUFBQUFBQUFEZ2Z5RkRJQXRCL3c5SkJFQWdDMEgvQjJzaEN3d0NDMFFBQUFBQUFBRHdmeUZEUWYwWElBc2dDMEg5RjA4YlFmNFBheUVMREFFTElBdEJnWGhLRFFCRUFBQUFBQUFBWUFNaFF5QUxRYmh3U3dSQUlBdEJ5UWRxSVFzTUFRdEVBQUFBQUFBQUFBQWhRMEh3YUNBTElBdEI4R2hORzBHU0Qyb2hDd3NnRkNBcUtBSUV0MFFBQUFBQUFBQkFQNkpFQUFBQUFBQUE4RCtnSUVNZ0MwSC9CMnF0UWpTR3Y2S2l0amdDSUNBVUlBMGdHaWdDcEFacVFRRnJOZ0ljSUJRb0FoUWhDd0pBQWtBQ1FDQXRSUTBBSUFzTkFDQVVJQ0VRR0NJTE5nSVVJQXRGQkVBZ0NrRUJRWUVXUVFBUUV3d0tDeUFMUVFBZ0lSQVpHaUFVSUNFMkFoZ01BUXNnSVNBVUtBSVlTd1JBSUFzZ0lSQWJJZzFGQkVBZ0NrRUJRWUVXUVFBUUV5QVVLQUlVRUJRZ0ZFSUFOd0lVREFvTElCUWdEVFlDRkNBTklCUW9BaGdpQzJwQkFDQWhJQXRyRUJrYUlCUWdJVFlDR0FzZ0xVVU5BUXNnRkNnQ0ZDRUxRUUFoTGdOQUlBc2dMaUF1SUJrb0FoQWlEVzRpRXlBTmJHc2dIM1FpRGlBc2FpSU1JQlFvQWdBaURTQU1JQTFLR3lJVk5nSUFJQXNnRXlBZ2RDSVNJQ3RxSWd3Z0ZDZ0NCQ0lOSUF3Z0RVb2JJaE0yQWdRZ0N5QU9JQnRxSWd3Z0ZDZ0NDQ0lOSUF3Z0RVZ2JJZzQyQWdnZ0N5QVNJQnhxSWd3Z0ZDZ0NEQ0lOSUF3Z0RVZ2JJZzAyQWd3Z0N5QkFJQTZzZkNBL2g2Y2dGU0FtZFNJb2F5QW1kQ0FtZFNJTU5nSVFJQXNnUGlBTnJId2dQWWVuSUJNZ0pYVWlLV3NnSlhRZ0pYVWlEVFlDRkNBTUlBMXNJaSt0UXNRQWZrSWdpRUlBVWdSQUlBcEJBVUhTRmtFQUVCTU1DUXNnTDBIRUFHd2hEZ0pBQWtBQ1FDQUxLQUlZSWcwTkFDQXZSUTBBSUFzZ0RoQVlJZzAyQWhnZ0RVVU5DeUFOUVFBZ0RoQVpHZ3dCQ3lBT0lBc29BaHhORFFFZ0RTQU9FQnNpREVVRVFDQUxLQUlZRUJRZ0MwSUFOd0lZSUFwQkFVSFFFMEVBRUJNTUN3c2dDeUFNTmdJWUlBd2dDeWdDSENJTmFrRUFJQTRnRFdzUUdSb0xJQXNnRGpZQ0hBc2dDeWdDRkNFT0lBc29BaEFoRENBTEFuOGdDeWdDSUNJTlJRUkFJQXdnRGlBS0VHd01BUXNnRFNBTUlBNGdDaEJxQ3pZQ0lDQUxLQUlVSVE0Z0N5Z0NFQ0VNSUFzQ2Z5QUxLQUlrSWcxRkJFQWdEQ0FPSUFvUWJBd0JDeUFOSUF3Z0RpQUtFR29MTmdJa0lDOEVRQ0FwUVFGcUlSSWdLRUVCYWlFVFFRQWhKd05BSUNjZ0N5Z0NFQ0lPYmlFWUFrQWdDeWdDR0NBblFjUUFiR29pRnlnQ0FDSVZCRUFnRnlnQ09DRU1JQmNvQWdRaERTQVhLQUl3SVJZZ0Z5Z0NQQkFVSUJmOURBQUFBQUFBQUFBQUFBQUFBQUFBQUFEOUN3SW9JQmRCUUd0QkFEWUNBQ0FYUWdBM0FqZ2dGLzBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBUDBMQWhnZ0YvME1BQUFBQUFBQUFBQUFBQUFBQUFBQUFQMExBZ2dnRnlBVk5nSUFJQmNnRmpZQ01DQVdCRUFnRlVFQUlCWkJHR3dRR1JvTElCY2dERFlDT0NBWElBMDJBZ1FNQVFzZ0YwRUtRUmdRRnlJTk5nSUFJQTFGRFFzZ0YwRUtOZ0l3Q3lBWElDY2dEaUFZYkdzaURpQW9haUFtZENJTUlBc29BZ0FpRFNBTUlBMUtHellDQ0NBWElCZ2dLV29nSlhRaURDQUxLQUlFSWcwZ0RDQU5TaHMyQWd3Z0Z5QU9JQk5xSUNaMElnd2dDeWdDQ0NJTklBd2dEVWdiTmdJUUlCY2dFaUFZYWlBbGRDSU1JQXNvQWd3aURTQU1JQTFJR3pZQ0ZDQW5RUUZxSWljZ0wwY05BQXNMSUF0QktHb2hDeUF1UVFGcUlpNGdMVWNOQUFzTElDcEJDR29oS2lBVVFTUnFJUlFnRUVFQmFpSVFJQmtvQWhoSkRRQUxJQmxCbUFGcUlSa2dDU0VMSUNSQkFXb2lKQ0FSS0FJVVNRMEFDd3NnSTBFMGFpRWpJQkZCekFCcUlSRWdHa0c0Q0dvaEdpQXhRUUZxSWpFZ0hTZ0NFRWtOQUF0QkFRd0RDeUFLUVFGQmdSZEJBQkFUREFFTElBcEJBVUdnRWtFQUVCTUxRUUFMUlFSQUlBcEJBVUd2SEVFQUVCTkJBQXdFQ3lBQUtBTGtBU0VKSUE4Z0FDZ0NnQUVnQUNnQ2hBRnNOZ0lFSUE4Z0NVRUJhallDQUNBS1FRUkJqTndBSUE4UUV5QUJJQUFvQXVRQk5nSUFJQWhCQVRZQ0FDQUNCRUFnQWlBQUtBTG9BVUVBRUYwaUFUWUNBRUVBSUFGQmYwWU5CQm9MSUFNZ0FDZ0M2QUVvQWhRb0FnQWlBU2dDQURZQ0FDQUVJQUVvQWdRMkFnQWdCU0FCS0FJSU5nSUFJQVlnQVNnQ0REWUNBQ0FISUFFb0FoQTJBZ0FnQUNBQUtBSUlRWUFCY2pZQ0NBdEJBUXdDQ3lBS1FRRWdFRUVBRUJNTElBcEJBVUhSSEVFQUVCTkJBQXNnRDBIUUFHb2tBQXZ1RUFJTWZ3SitBa0FnQUNnQ0lDSUNEUUFDUUNBQUtBSVFJZ2xCQlVvRVFDQUpJUUlNQVFzQ1FBSkFJQUFvQWhRaUJrRUZUZ1JBSUFBb0FnQWlBU2dDQUNFQ0lBQWdBVUVFYWpZQ0FDQUdRUVJySVFjTUFRc2dCa0VBVEFSQVFYOGhBZ3dDQ3lBQUtBSUFJUUVDZnlBR1FRRkdCRUJCZnlFRlFRQU1BUXRCZnlFRklBWkJBV3NpQkVFQmNRSkFJQVpCQWtZRVFFRUFJUUlnQmlFRURBRUxJQVJCZm5FaEMwRUFJUUlnQVNFRElBWWhCQU5BSUFBZ0EwRUJhallDQUNBRExRQUFJUXdnQUNBRFFRSnFJZ0UyQWdBZ0FDQUVRUUZyTmdJVUlBTXRBQUVoQXlBQUlBUkJBbXNpQkRZQ0ZDQUZRZjhCSUFKMFFYOXpjU0FNSUFKMGNrR0EvZ01nQW5SQmYzTnhJQU1nQWtFSWNuUnlJUVVnQWtFUWFpRUNJQUVoQXlBSVFRSnFJZ2dnQzBjTkFBc0xCRUFnQUNBQlFRRnFJZ00yQWdBZ0FTMEFBQ0VCSUFBZ0JFRUJhellDRkNBRlFmOEJJQUowUVg5emNTQUJJQUowY2lFRklBTWhBUXNnQmtFRGRFRUlhd3NoQWlBQUlBRkJBV28yQWdBZ0JVSC9BU0FDZEVGL2MzRWdBUzBBQUVFUGNpQUNkSEloQWdzZ0FDQUhOZ0lVQ3lBQUtBSVlJUUVnQUNBQ1FSaDJJZ1JCL3dGR05nSVlJQUFnQ1NBQ1FSQjJRZjhCY1NJRFFmOEJSaUlHSUFKQkNIWkIvd0Z4SWdWQi93RkdJZ2NnQVNBQ1FmOEJjU0lJUWY4QlJpSUthbXBxSWdGclFTQnFJZ0kyQWhBZ0FDQUFLUU1JSUFoQkIwRUlJQW9iZENBRmNrRUhRUWdnQnh0MElBTnlRUWRCQ0NBR0czUWdCSEt0SUFFZ0NXdEJJR3F0aG9RM0F3Z2dBa0VHVGcwQVFRQWhBZ3dCQ3lBQUtBSWNJZ0ZCQW5SQjRLRUJhaWdDQUNFREFuNGdBQ2tEQ0NJTlFnQlRCRUJCRENBQlFRRnFJQUZCQzA0YklRUWdBa0VCYXlFQ1FYOGdBM1JCZjNOQkFYUWhBVUlCREFFTElBRkJBV3RCQUNBQlFRRktHeUVFSUExQlB5QURhNjJJcDBGL0lBTjBRWDl6Y1VFQmRFRUJjaUVCSUFJZ0EwRUJhaUlEYXlFQ0lBT3RDeUVPSUFBZ0FqWUNFQ0FBSUFRMkFod2dBQ0FOSUE2R053TUlJQUFnQWF3Z0FDa0RLRUpBZzRRM0F5Z2dBa0VHU0FSQVFRRWhBZ3dCQ3lBQUtBSWNJZ0ZCQW5SQjRLRUJhaWdDQUNFREFuNGdBQ2tEQ0NJTlFnQlRCRUJCRENBQlFRRnFJQUZCQzA0YklRUWdBa0VCYXlFQ1FYOGdBM1JCZjNOQkFYUWhBVUlCREFFTElBRkJBV3RCQUNBQlFRRktHeUVFSUExQlB5QURhNjJJcDBGL0lBTjBRWDl6Y1VFQmRFRUJjaUVCSUFJZ0EwRUJhaUlEYXlFQ0lBT3RDeUVPSUFBZ0FqWUNFQ0FBSUFRMkFod2dBQ0FOSUE2R053TUlJQUFnQUNrREtFTC9RSU1nQWF4Q0I0YUVOd01vSUFKQkJrZ0VRRUVDSVFJTUFRc2dBQ2dDSENJQlFRSjBRZUNoQVdvb0FnQWhBd0orSUFBcEF3Z2lEVUlBVXdSQVFRd2dBVUVCYWlBQlFRdE9HeUVFSUFKQkFXc2hBa0YvSUFOMFFYOXpRUUYwSVFGQ0FRd0JDeUFCUVFGclFRQWdBVUVCU2hzaEJDQU5RVDhnQTJ1dGlLZEJmeUFEZEVGL2MzRkJBWFJCQVhJaEFTQUNJQU5CQVdvaUEyc2hBaUFEclFzaERpQUFJQUkyQWhBZ0FDQUVOZ0ljSUFBZ0RTQU9oamNEQ0NBQUlBQXBBeWhDLy85QWd5QUJyRUlPaG9RM0F5Z2dBa0VHU0FSQVFRTWhBZ3dCQ3lBQUtBSWNJZ0ZCQW5SQjRLRUJhaWdDQUNFREFuNGdBQ2tEQ0NJTlFnQlRCRUJCRENBQlFRRnFJQUZCQzA0YklRUWdBa0VCYXlFQ1FYOGdBM1JCZjNOQkFYUWhBVUlCREFFTElBRkJBV3RCQUNBQlFRRktHeUVFSUExQlB5QURhNjJJcDBGL0lBTjBRWDl6Y1VFQmRFRUJjaUVCSUFJZ0EwRUJhaUlEYXlFQ0lBT3RDeUVPSUFBZ0FqWUNFQ0FBSUFRMkFod2dBQ0FOSUE2R053TUlJQUFnQUNrREtFTC8vLzlBZ3lBQnJFSVZob1EzQXlnZ0FrRUdTQVJBUVFRaEFnd0JDeUFBS0FJY0lnRkJBblJCNEtFQmFpZ0NBQ0VEQW40Z0FDa0RDQ0lOUWdCVEJFQkJEQ0FCUVFGcUlBRkJDMDRiSVFRZ0FrRUJheUVDUVg4Z0EzUkJmM05CQVhRaEFVSUJEQUVMSUFGQkFXdEJBQ0FCUVFGS0d5RUVJQTFCUHlBRGE2MklwMEYvSUFOMFFYOXpjVUVCZEVFQmNpRUJJQUlnQTBFQmFpSURheUVDSUFPdEN5RU9JQUFnQWpZQ0VDQUFJQVEyQWh3Z0FDQU5JQTZHTndNSUlBQWdBQ2tES0VMLy8vLy9RSU1nQWF4Q0hJYUVOd01vSUFKQkJrZ0VRRUVGSVFJTUFRc2dBQ2dDSENJQlFRSjBRZUNoQVdvb0FnQWhCQUovSUFBcEF3Z2lEVUlBVXdSQUlBSkJBV3NoQTBGL0lBUjBRWDl6UVFGMElRVkNBU0VPUVF3Z0FVRUJhaUFCUVF0T0d3d0JDeUFOUVQ4Z0JHdXRpS2RCZnlBRWRFRi9jM0ZCQVhSQkFYSWhCU0FDSUFSQkFXb2lCR3NoQXlBRXJTRU9JQUZCQVd0QkFDQUJRUUZLR3dzaEFTQUFJQU0yQWhBZ0FDQUJOZ0ljSUFBZ0RTQU9oamNEQ0NBQUlBQXBBeWhDLy8vLy8vOUFneUFGclVJamhvUTNBeWhCQmlFQ0lBTkJCa2dOQUNBQUtBSWNJZ0ZCQW5SQjRLRUJhaWdDQUNFRUFuOGdBQ2tEQ0NJTlFnQlRCRUFnQTBFQmF5RUNRWDhnQkhSQmYzTkJBWFFoQlVJQklRNUJEQ0FCUVFGcUlBRkJDMDRiREFFTElBMUJQeUFFYTYySXAwRi9JQVIwUVg5emNVRUJkRUVCY2lFRklBTWdCRUVCYWlJRWF5RUNJQVN0SVE0Z0FVRUJhMEVBSUFGQkFVb2JDeUVCSUFBZ0FqWUNFQ0FBSUFFMkFod2dBQ0FOSUE2R053TUlJQUFnQUNrREtFTC8vLy8vLy85QWd5QUZyVUlxaG9RM0F5Z2dBa0VHU0FSQVFRY2hBZ3dCQ3lBQUtBSWNJZ0ZCQW5SQjRLRUJhaWdDQUNFREFuNGdBQ2tEQ0NJTlFnQlRCRUJCRENBQlFRRnFJQUZCQzA0YklRUWdBa0VCYXlFQ1FYOGdBM1JCZjNOQkFYUWhBVUlCREFFTElBRkJBV3RCQUNBQlFRRktHeUVFSUExQlB5QURhNjJJcDBGL0lBTjBRWDl6Y1VFQmRFRUJjaUVCSUFJZ0EwRUJhaUlEYXlFQ0lBT3RDeUVPSUFBZ0FqWUNFQ0FBSUFRMkFod2dBQ0FOSUE2R053TUlJQUFnQUNrREtFTC8vLy8vLy8vL1FJTWdBYTFDTVlhRU53TW9RUWdoQWdzZ0FDQUNRUUZyTmdJZ0lBQWdBQ2tES0NJT1FnZUlOd01vSUE2blFmOEFjUXNpQVFGL0lBQUVRQ0FBS0FJTUlnRUVRQ0FCRUJRZ0FFRUFOZ0lNQ3lBQUVCUUxDNElCQWdGK0EzOENRQ0FBUW9DQWdJQVFWQVJBSUFBaEFnd0JDd05BSUFGQkFXc2lBU0FBUWdxQUlnSkM5Z0YrSUFCOHAwRXdjam9BQUNBQVF2Ly8vLytmQVZZZ0FpRUFEUUFMQ3lBQ1FnQlNCRUFnQXFjaEF3TkFJQUZCQVdzaUFTQURRUXB1SWdSQjlnRnNJQU5xUVRCeU9nQUFJQU5CQ1VzZ0JDRUREUUFMQ3lBQkMwOEJBWDhnQUVFQU5nSXdJQUFnQUNnQ0lEWUNKQ0FCSUFBb0FnQWdBQ2dDSEJFTEFDQUFLQUpFSVFKRkJFQWdBQ0FDUVFSeU5nSkVRUUFQQ3lBQUlBRTNBemdnQUNBQ1FYdHhOZ0pFUVFFTDN0NEJCSEIvQm5zSWZnRjlJd0JCRUdzaVRDUUFBa0FnQUMwQUNFR0FBWEZGRFFBZ0FTQUFLQUxrQVVjTkFDQUFLQUswQVNBQlFZd3NiR29pVFNnQzNDc2lGMFVFUUNCTkVEUU1BUXNnQUNnQzRBRWFJQUFvQXVnQklSc2dBQ2dDWkNJSFJRUkFJQUFvQW1BaEJ3c2dCeWdDQUNFR0lBY29BZ1FoQ3lBSEtBSUlJUWtnQnlnQ0RDRVBJQUFvQWp3aEJ5QUFLQUpBSVE0Z1RTZ0M0Q3NoQ0NNQVFSQnJJajhrQUNBYklBRTJBaVFnR3lnQ0hDZ0NUQ0VNSUJ0QkFUWUNRQ0FiSUE4MkFqd2dHeUFKTmdJNElCc2dDellDTkNBYklBWTJBakFnR3lBTUlBRkJqQ3hzYWpZQ0lDQWJLQUpFRUJSQkFDRUxJQnRCQURZQ1JBSkFJQWNFUUVFRUlCc29BaGdvQWhBUUZ5SUxSUVJBREFJTElBZEJCRThFUUNBSFFYeHhJUWxCQUNFQkEwQWdDeUFPSUNKQkFuUnFJZ1lvQWdCQkFuUnFRUUUyQWdBZ0N5QUdLQUlFUVFKMGFrRUJOZ0lBSUFzZ0JpZ0NDRUVDZEdwQkFUWUNBQ0FMSUFZb0FneEJBblJxUVFFMkFnQWdJa0VFYWlFaUlBRkJCR29pQVNBSlJ3MEFDd3NnQjBFRGNTSUJCRUFEUUNBTElBNGdJa0VDZEdvb0FnQkJBblJxUVFFMkFnQWdJa0VCYWlFaUlCbEJBV29pR1NBQlJ3MEFDd3NnR3lBTE5nSkVDd0pBQWtBZ0d5Z0NHQ0lHS0FJUUlnNUZEUUJCQUNFaUFrQURRQUpBSUFzRVFDQUxJQ0pCQW5ScUtBSUFSUTBCQ3lBR0tBSVlJQ0pCTkd4cUlnRTFBZ1FpZkVJQmZTS0FBU0FiTlFJOGZDQjhnQ0dCQVNBQk5RSUFJbjFDQVgwaWZpQWJOUUk0ZkNCOWdDR0NBU0NBQVNBYk5RSTBmQ0I4Z0NGOElCc29BaFFvQWdBb0FoUWdJa0hNQUd4cUlnRW9BaFFnQVNnQ0dHc2lCMEVmU3cwQUFrQWdmaUFiTlFJd2ZDQjlnS2NpQ1NBQktBSUFheUlQUVFBZ0NTQVBUeHNnQjNZTkFDQjhweUlKSUFFb0FnUnJJZzlCQUNBSklBOVBHeUFIZGcwQUlBRW9BZ2dpQ1NDQ0FhZHJJZzlCQUNBSklBOVBHeUFIZGcwQUlBRW9BZ3dpQVNDQkFhZHJJZ2xCQUNBQklBbFBHeUFIZGtVTkFRc2dHMEVBTmdKQURBSUxJQ0pCQVdvaUlpQU9SdzBBQ3lBYktBSkFSUTBBUVFBaEdRTkFJQnNvQWhRb0FnQW9BaFFnR1VITUFHeHFJZ0VvQWh3Z0FTZ0NHRUdZQVd4cUlnZEJsQUZyS0FJQUlRWWdCMEdNQVdzb0FnQWhDeUFIUVpnQmF5Z0NBQ0VPSUFkQmtBRnJLQUlBSVFrQ1FDQWJLQUpFSWdjRVFDQUhJQmxCQW5ScUtBSUFSUTBCQ3lBTElBWnJJUWNnQ1NBT2F5RU9Ba0FnQmlBTFJnMEFJQWV0SUE2dGZrSWdpRkFOQUVFQUlTSWdCVUVCUVlFWFFRQVFFd3dHQ3lBSElBNXNJZ2RCZ0lDQWdBUlBCRUJCQUNFaUlBVkJBVUdCRjBFQUVCTU1CZ3NnQVNBSFFRSjBJZ2MyQWl3Q1FBSkFBa0FnQVNnQ0pDSUdCRUFnQnlBQktBSXdUUTBFSUFFb0FpZ05BUXNnQVNBSEVCd2lCellDSkNBSFFRRWdBU2dDTENJSEcwVU5BU0FCUVFFMkFpZ2dBU0FITmdJd0RBTUxJQVlRRkNBQklBRW9BaXdRSENJSE5nSWtJQWNOQVNBQlFRQTJBakFnQVVJQU53SW9DMEVBSVNJZ0JVRUJRWUVYUVFBUUV3d0dDeUFCUVFFMkFpZ2dBU0FCS0FJc05nSXdDeUFaUVFGcUloa2dHeWdDR0NJR0tBSVFTUTBBQ3d3QkN5QUdLQUlZSVJrZ0d5Z0NGQ2dDQUNnQ0ZDRU5RUUFoQVFOQUFrQWdDd1JBSUFzZ0FVRUNkR29vQWdCRkRRRUxJQTBnQVVITUFHeHFJZ2NnQnlnQ0FDSUpJQmtnQVVFMGJHb2lEelVDQUNKOFFnRjlJb0FCSUJzMUFqQjhJSHlBcHlJTUlBa2dERXNiSWdrMkFqZ2dCeUFIS0FJRUlnd2dEelVDQkNKOVFnRjlJb0VCSUJzMUFqUjhJSDJBcHlJUElBd2dEMHNiSWc4MkFqd2dCeUFIS0FJSUlnd2dnQUVnR3pVQ09Id2dmSUNuSWdvZ0NpQU1TeHNpRERZQ1FDQUhJQWNvQWd3aUNpQ0JBU0FiTlFJOGZDQjlnS2NpRlNBS0lCVkpHeUlLTmdKRUlBa2dERXNOQXlBS0lBOUpEUU1nQnlnQ0ZDSVZSUTBBSUFxdFFnRjlJWUVCSUF5dFFnRjlJWDRnRDYxQ0FYMGhnZ0VnQ2ExQ0FYMGhnd0VnRmEwaGZ5QUhLQUljSVFsQ0FDRjlBMEFnQ1NCOXB5SVBRWmdCYkdvaUIwSUJJQlVnRDBGL2MycXRJbnlHSW9BQklJRUJmQ0I4aUQ0Q2xBRWdCeUIrSUlBQmZDQjhpRDRDa0FFZ0J5Q0FBU0NDQVh3Z2ZJZytBb3dCSUFjZ2dBRWdnd0Y4SUh5SVBnS0lBU0I5UWdGOEluMGdmMUlOQUFzTElBRkJBV29pQVNBT1J3MEFDd3RCQUNFaUlEOUJBRFlDQ0NBYktBSWNJUUZCQVVFSUVCY2lJd1JBSUNNZ0FUWUNCQ0FqSUFZMkFnQUxJQ05GRFFFZ0d5Z0NKQ0VVSUJzb0FoUW9BZ0FoSHlNQVFaQUJheUlRSkFBZ0ZFR01MR3dpQVNBaktBSUVJZ2tvQWt4cUloNG9BcVFESVM0Q2Z5QWpLQUlBSWlnaEZTQUZJVE5CQUNFT0l3QkJJR3NpRFNRQUlBRWdDU2dDVEdvaUdDZ0NwQU1oSFFKQUlCVW9BaEFpRmtHUUJHd1FHQ0lQUlEwQUFrQWdGa0VDZEJBWUlndEZCRUFnRHlFTERBRUxBa0FDUUFKL0lBa29Ba3dnRkVHTUxHeHFJZ29vQXFRRElobEJBV29pQVVId0FSQVhJZ2NFUUFKQUlBRUVRQ0FWS0FJUUlRd2dCeUVCQTBBZ0FTQXpOZ0xzQVNBQklBeEJFQkFYSWdZMkFzZ0JJQVpGRFFJZ0FTQVZLQUlRSWhvMkFzUUJRUUFoQmtFQUlRd2dHZ1JBQTBBZ0FTZ0N5QUVnQmtFRWRHb2lEQ0FLS0FMUUt5QUdRYmdJYkdvaUdpZ0NCRUVRRUJjaUpqWUNEQ0FtUlEwRUlBd2dHaWdDQkRZQ0NDQUdRUUZxSWdZZ0ZTZ0NFQ0lNU1EwQUN3c2dBVUh3QVdvaEFTQVRJQmxHSUJOQkFXb2hFMFVOQUFzTElBY01BZ3NnQnlnQ0JDSUJCRUFnQVJBVUlBZEJBRFlDQkFzZ0J5RUJRUUFoQ2dOQUlBRW9Bc2dCSWdZRVFFRUFJUXdnQVNnQ3hBRWlFd1IvQTBBZ0JpZ0NEQ0lhQkVBZ0doQVVJQVpCQURZQ0RDQUJLQUxFQVNFVEN5QUdRUkJxSVFZZ0RFRUJhaUlNSUJOSkRRQUxJQUVvQXNnQkJTQUdDeEFVSUFGQkFEWUN5QUVMSUFGQjhBRnFJUUVnQ2lBWlJpQUtRUUZxSVFwRkRRQUxJQWNRRkF0QkFBc2lCd1JBSUJaRkRRSkJBQ0VLSUE4aEJpQVdRUU5ORFFFZ0JpQVdRWHh4SWdwQmtBUnNhaUVHSUE4aEFRTkFJQXNnRVVFQ2RHb2dBZjBSL1F3QUFBQUFFQUlBQUNBRUFBQXdCZ0FBL2E0Qi9Rc0NBQ0FCUWNBUWFpRUJJQkZCQkdvaUVTQUtSdzBBQ3lBS0lCWkhEUUVNQWdzZ0R4QVVEQUlMQTBBZ0N5QUtRUUowYWlBR05nSUFJQVpCa0FScUlRWWdDa0VCYWlJS0lCWkhEUUFMQ3lBTElSbEJBQ0VUSUFrb0Frd2dGRUdNTEd4cUtBTFFLeUVCSUJVb0FoZ2hDaUFOSUFrb0FnUWdDU2dDRENBVUlCUWdDU2dDR0NJR2JpSUxJQVpzYTJ4cUlnWWdGU2dDQUNJTUlBWWdERXNiTmdJVUlBMUJmeUFHSUFrb0FneHFJZ3dnQmlBTVN4c2lCaUFWS0FJSUlnd2dCaUFNU1JzMkFoQWdEU0FKS0FJSUlBa29BaEFnQzJ4cUlnWWdGU2dDQkNJTElBWWdDMHNiTmdJTUlBMUJmeUFHSUFrb0FoQnFJZ3NnQmlBTFN4c2lCaUFWS0FJTUlnc2dCaUFMU1JzMkFnZ2dEVUVBTmdJWUlBMUJBRFlDSENBTlFmLy8vLzhITmdJRUlBMUIvLy8vL3djMkFnQWdGU2dDRUFSQUEwQWdHUVIvSUJrZ0UwRUNkR29vQWdBRlFRQUxJUXNnQ2pVQ0JDSjhRZ0Y5SW9BQklBMDFBZ2g4SUh5QUlZRUJJQW8xQWdBaWZVSUJmU0orSUEwMUFoQjhJSDJBSVlJQklJQUJJQTAxQWd4OElIeUFJWHdnZmlBTk5RSVVmQ0I5Z0NGOUlBRW9BZ1FpQ1NBTktBSWNTd1JBSUEwZ0NUWUNIQ0FCS0FJRUlRa0xJQWtFUUNBQlFiQUhhaUVhSUFGQnJBWnFJU1lnZ1FGQy8vLy8vdytEUWdGOUlZQUJJSUlCUXYvLy8vOFBnMElCZlNHQkFTQjhRdi8vLy84UGcwSUJmU0YrSUgxQy8vLy8vdytEUWdGOUlZSUJRUUFoRkFOQUlCb2dGRUVDZENJTWFpZ0NBQ0VHSUF3Z0ptb29BZ0FoREVFQUlSRWdDd1JBSUFzZ0JqWUNCQ0FMSUF3MkFnQWdDMEVJYWlFUkN3SkFJQXdnQ1VFQmF5SUphaUlMUVI5TERRQWdDaWdDQUNJa1FYOGdDM1pMRFFBZ0RTQU5LQUlFSWl3Z0pDQUxkQ0lMSUFzZ0xFc2JOZ0lFQ3dKQUlBWWdDV29pQzBFZlN3MEFJQW9vQWdRaUpFRi9JQXQyU3cwQUlBMGdEU2dDQUNJc0lDUWdDM1FpQ3lBTElDeExHellDQUF0QkFDRUxRZ0VnQ2EwaWZJWWlmU0NBQVh3Z2ZJZ2lnd0ZDLy8vLy93K0RRZ0VnQnEwaWY0WjhRZ0Y5SUgrSXB5QjlJSDU4SUh5SXB5SWtJQVoyYTBGL0lBWjJjVUVBSUNRZ2d3R25SeHNoQmlCOUlJRUJmQ0I4aUNLREFVTC8vLy8vRDROQ0FTQU1yU0ovaG54Q0FYMGdmNGluSUgwZ2dnRjhJSHlJcHlJa0lBeDJhMEYvSUF4MmNVRUFJQ1FnZ3dHblJ4c2hEQ0FSQkVBZ0VTQUdOZ0lFSUJFZ0REWUNBQ0FSUVFocUlRc0xJQVlnREd3aUJpQU5LQUlZU3dSQUlBMGdCallDR0FzZ0ZFRUJhaUlVSUFFb0FnUkpEUUFMQ3lBS1FUUnFJUW9nQVVHNENHb2hBU0FUUVFGcUloTWdGU2dDRUVrTkFBc0xJQjFCQVdvaEppQU5LQUljSVJNZ0RTZ0NHQ0VVSUFkQkFEWUNCQUpBSUJnb0FnaEJBV29pQWEwZ0V5QVVJQlpzSWlSc0locXRma0lnaUZBRVFDQUhJQUVnR213aUFUWUNDQ0FISUFGQkFoQVhJZ0UyQWdRZ0FRMEJDeUFQRUJRZ0dSQVVJQWNvQWdRaUFRUkFJQUVRRkNBSFFRQTJBZ1FMSUNaRkJFQWdCeUVMREFJTFFRQWhDeUFISVFFRFFDQUJLQUxJQVNJS0JFQkJBQ0VHSUFFb0FzUUJJaEVFZndOQUlBb29BZ3dpQ1FSQUlBa1FGQ0FLUVFBMkFnd2dBU2dDeEFFaEVRc2dDa0VRYWlFS0lBWkJBV29pQmlBUlNRMEFDeUFCS0FMSUFRVWdDZ3NRRkNBQlFRQTJBc2dCQ3lBQlFmQUJhaUVCSUFzZ0hVWWdDMEVCYWlFTFJRMEFDeUFISVFzTUFRc2dGU2dDR0NFTUlBY2dEU2dDRkNJc05nTE1BU0FISUEwb0Fnd2lMVFlDMEFFZ0J5QU5LQUlRSWlBMkF0UUJJQWNnRFNnQ0NDSTROZ0xZQVNBSElCbzJBZ3dnQnlBa05nSVFJQWNnRkRZQ0ZFRUJJUlVnQjBFQk5nSVlJQllFUUNBSEtBTElBU0VCUVFBaENTQU1JUXNEUUNBWklBbEJBblJxS0FJQUlRb2dBU0FMS0FJQU5nSUFJQUVnQ3lnQ0JEWUNCQUpBSUFFb0FnZ2lEa1VOQUNBQktBSU1JUVlnRGtFQlJ3UkFJQTVCZm5FaFBFRUFJUkVEUUNBR0lBb29BZ0EyQWdBZ0JpQUtLQUlFTmdJRUlBWWdDaWdDQ0RZQ0NDQUdJQW9vQWd3MkFnd2dCaUFLS0FJUU5nSVFJQVlnQ2lnQ0ZEWUNGQ0FHSUFvb0FoZzJBaGdnQmlBS0tBSWNOZ0ljSUFaQklHb2hCaUFLUVNCcUlRb2dFVUVDYWlJUklEeEhEUUFMQ3lBT1FRRnhSUTBBSUFZZ0NpZ0NBRFlDQUNBR0lBb29BZ1EyQWdRZ0JpQUtLQUlJTmdJSUlBWWdDaWdDRERZQ0RBc2dDMEUwYWlFTElBRkJFR29oQVNBSlFRRnFJZ2tnRmtjTkFBc0xJQ1pCQVVzRVFDQUhJUTREUUNBT0lEZzJBc2dESUE0Z0lEWUN4QU1nRGlBdE5nTEFBeUFPSUN3MkFyd0RJQTVCQVRZQ2lBSWdEaUFVTmdLRUFpQU9JQ1EyQW9BQ0lBNGdHallDL0FFZ0ZnUkFJQTRvQXJnRElRRkJBQ0VKSUF3aEN3TkFJQmtnQ1VFQ2RHb29BZ0FoQ2lBQklBc29BZ0EyQWdBZ0FTQUxLQUlFTmdJRUFrQWdBU2dDQ0NJbVJRMEFJQUVvQWd3aEJpQW1RUUZIQkVBZ0prRitjU0U4UVFBaEVRTkFJQVlnQ2lnQ0FEWUNBQ0FHSUFvb0FnUTJBZ1FnQmlBS0tBSUlOZ0lJSUFZZ0NpZ0NERFlDRENBR0lBb29BaEEyQWhBZ0JpQUtLQUlVTmdJVUlBWWdDaWdDR0RZQ0dDQUdJQW9vQWh3MkFod2dCa0VnYWlFR0lBcEJJR29oQ2lBUlFRSnFJaEVnUEVjTkFBc0xJQ1pCQVhGRkRRQWdCaUFLS0FJQU5nSUFJQVlnQ2lnQ0JEWUNCQ0FHSUFvb0FnZzJBZ2dnQmlBS0tBSU1OZ0lNQ3lBTFFUUnFJUXNnQVVFUWFpRUJJQWxCQVdvaUNTQVdSdzBBQ3dzZ0RpQU9LUUlFTndMMEFTQVZJQjFISUE1QjhBRnFJUTRnRlVFQmFpRVZEUUFMQ3lBUEVCUWdHUkFVSUJnb0FxUURJUXNDUUNBWUxRQ0lMRUVFY1FSQUlBdEJmMFlOQVNBWVFhZ0RhaUVHSUJnb0FnZ2hBVUVBSVJFZ0J5RUtBMEFnQmlnQ0pDRU9JQXBCQVRZQ0xDQUtJQTQyQWxRZ0NpQUdLQUlBTmdJd0lBWW9BZ1FoRGlBS1FnQTNBa1FnQ2lBT05nSTBJQW9nQmlnQ0REWUNQQ0FLSUFZb0FoQTJBa0FnQmlnQ0NDRU9JQW9nRkRZQ1RDQUtJQTRnQVNBQklBNUxHellDT0NBR1FaUUJhaUVHSUFwQjhBRnFJUW9nQ3lBUlJpQVJRUUZxSVJGRkRRQUxEQUVMSUF0QmYwWU5BQ0FZS0FJSUlRWWdHQ2dDQkNFT0lBY2hDaUFMQkVBZ0MwRUJha0YrY1NFSlFRQWhBUU5BSUFwQ0FEY0NSQ0FLUVFBMkFqUWdDa0lCTndJc0lBb2dEallDVkNBS0lCTTJBandnQ2lBT05nTEVBaUFLSUJRMkFrd2dDaUFHTmdJNElBcENBRGNDdEFJZ0NrRUFOZ0trQWlBS1FnRTNBcHdDSUFvZ0V6WUNyQUlnQ2lBR05nS29BaUFLSUJRMkFyd0NJQW9nQ2lnQ3hBRTJBa0FnQ2lBS0tBSzBBellDc0FJZ0NrSGdBMm9oQ2lBQlFRSnFJZ0VnQ1VjTkFBc0xJQXRCQVhFTkFDQUtRZ0EzQWtRZ0NrRUFOZ0kwSUFwQ0FUY0NMQ0FLSUE0MkFsUWdDaUFUTmdJOElBb2dGRFlDVENBS0lBWTJBamdnQ2lBS0tBTEVBVFlDUUFzZ0J5RU9EQUVMSUFzUUZBc2dEVUVnYWlRQUFrQWdEa1VOQUNBdVFRRnFJU1lnRnlFWklBNGhGUUpBQWtBRFFDQVZLQUpVUVg5R0RRSWdLQ2dDRUVFQ2RCQVlJZ0ZGRFFJZ0FVRUJJQ2dvQWhCQkFuUVFHU0VhSUJVUVlBUkFBMEFnSHlnQ0ZDRUpBa0FDUUNBVktBSW9JQjRvQWd4UERRQWdGU2dDSUNJQklBa2dGU2dDSEVITUFHeHFJZ2NvQWhoUERRQWdCeWdDSENBQlFaZ0JiR29pQnlnQ0dFVU5BQ0FIUVJ4cUlRWkJBQ0VOQWtBRFFDQWJJQlVvQWh3Z0ZTZ0NJQ0FHSUExQkpHeHFJZ0VvQWhBZ0FTZ0NGQ0FWS0FJa1FTaHNhaUlCS0FJQUlBRW9BZ1FnQVNnQ0NDQUJLQUlNRUVGRkJFQWdEVUVCYWlJTklBY29BaGhKRFFFTUFnc0xJQm9nRlNnQ0hFRUNkR3BCQURZQ0FDQVFRUUEyQW9nQklDTW9BZ1FnSHlnQ0ZDQWVJQlVnRUVHTUFXb2dHU0FRUVlnQmFpQUlJRE1RWDBVTkJpQVZLQUlnSVEwZ0ZTZ0NIQ0VQSUJBb0FvZ0JJUkVnRUNnQ2pBRUVRQ0FRUVFBMkFvZ0JJQjhvQWhRZ0QwSE1BR3hxS0FJY0lBMUJtQUZzYWlJZEtBSVlJZ2tFZnlBSUlCRnJJUVlnQ0NBWmFpRWtJQjFCSEdvaEQwRUFJUXBCQUNFWUlCRWdHV29pTGlFVUEwQUNRQ0FQS0FJSUlBOG9BZ0JHRFFBZ0R5Z0NEQ0FQS0FJRVJnMEFJQThvQWhRZ0ZTZ0NKRUVvYkdvaUFTZ0NGQ0FCS0FJUWJDSXNSUTBBSUFFb0FoZ2hDVUVBSVJNRFFDQUpLQUlrSWdzRVFBSi9Ba0FnR0VVRVFDQUpLQUpBUlEwQkN5QUpRUUEyQWpSQkFTRU5RY0FBREFFTElBa29BZ0FoRFFKQUlBa2dDU2dDS0NJQkJIOGdEU0FCUVJoc2FpSU5RUlJyS0FJQUlBMUJER3NvQWdCSEJFQWdEVUVZYXlFTkRBSUxJQUZCQVdvRlFRRUxOZ0lvQ3dKL0FrQWdEU2dDRkNJQklCUkJmM05MRFFBZ0RVRVVhaUVNQTBBZ0FTQVVhaUFrU3cwQklBa29BZ1FoRmlBSktBSTBJaGdnQ1NnQ09FY0VmeUFMQlNBV0lCaEJBWFJCQVhJaUFVRURkQkFiSWhaRkJFQWdNMEVCUVlBSVFRQVFFd3dTQ3lBSklBRTJBamdnQ1NBV05nSUVJQWtvQWpRaEdDQU1LQUlBSVFFZ0NTZ0NKQXNoQnlBV0lCaEJBM1JxSWdzZ0FUWUNCQ0FMSUJRMkFnQWdDU0FZUVFGcU5nSTBJQTBnRFNnQ0FDQUJhallDQUNBTklBMG9BaEFpRENBTktBSUVhaUlXTmdJRUlBa2dCeUFNYXlJTE5nSWtJQTBnRmpZQ0NDQUJJQlJxSVJSQkFDQUhJQXhHRFFJYUlBa2dDU2dDS0VFQmFqWUNLQ0FOUVN4cUlRd2dEU2dDTENFQklBMUJHR29oRFNBQklCUkJmM05ORFFBTEN5QVZLQUljSVFjZ0ZTZ0NJQ0VMSUJVb0FpUWhEQ0FqS0FJRUtBSm9CRUFnRUNBSE5nSjRJQkFnQ3pZQ2RDQVFJQW8yQW5BZ0VDQU1OZ0pzSUJBZ0V6WUNhQ0FRSUFZMkFtUWdFQ0FCTmdKZ0lETkJBVUhBOGdBZ0VFSGdBR29RRXd3UEN5QVFJQWMyQWxnZ0VDQUxOZ0pVSUJBZ0NqWUNVQ0FRSUF3MkFrd2dFQ0FUTmdKSUlCQWdCallDUkNBUUlBRTJBa0FnTTBFQ1FjRHlBQ0FRUVVCckVCTWdDVUVBTmdJMElBbEJBVFlDUUVFQkN5RVlJQWtvQWlnaERVRXNDeUFKYWlBTk5nSUFDeUFKUWNRQWFpRUpJQk5CQVdvaUV5QXNSdzBBQ3lBZEtBSVlJUWtMSUE5QkpHb2hEeUFLUVFGcUlnb2dDVWtOQUFzZ0ZTZ0NJQ0VOSUJVb0Fod2hEeUFHSUJRZ0xtc2dHQnNGUVFBTElCRnFJUkVMSUNnb0FoZ2dEMEUwYkdvaUFTQU5JQUVvQWlRaUFTQUJJQTFKR3pZQ0pBd0NDeUFmS0FJVUlRa0xJQkJCQURZQ2lBRWdJeWdDQkNBSklCNGdGU0FRUVl3QmFpQVpJQkJCaUFGcUlBZ2dNeEJmUlEwRUlCVW9BaHdoRHlBUUtBS0lBU0VSSUJBb0Fvd0JSUTBBSUI4b0FoUWdEMEhNQUd4cUtBSWNJQlVvQWlBaUdFR1lBV3hxSWdFb0FoZ2lKRVVOQUNBSUlCRnJJUVlnQVVFY2FpRVdJQlVvQWlRaERFRUFJUTFCQUNFZEFrQUNRQU5BQWtBZ0ZpZ0NDQ0FXS0FJQVJnMEFJQllvQWd3Z0ZpZ0NCRVlOQUNBV0tBSVVJQXhCS0d4cUlnRW9BaFFnQVNnQ0VHd2lMa1VOQUNBQktBSVlJUXRCQUNFS0EwQWdDeWdDSkNJQkJFQWdDeWdDQUNFSkFrQWdDeUFMS0FJb0loTUVmeUFKSUJOQkdHeHFJZ2xCRkdzb0FnQWdDVUVNYXlnQ0FFY0VRQ0FKUVJocklRa01BZ3NnRTBFQmFnVkJBUXNpRXpZQ0tBc2dDU2dDRkNJVUlBMXFJZzBnRkVrTkJTQUdJQTFKRFFVRFFBSkFJQWtnQ1NnQ0VDSVVJQWtvQWdScU5nSUVJQUVnRkdzaEJ5QUJJQlJHRFFBZ0N5QVRRUUZxSWhNMkFpZ2dDU2dDTENJVUlBMXFJZzBnRkVrTkJpQUpRUmhxSVFrZ0J5RUJJQVlnRFU4TkFRd0dDd3NnQ3lBSE5nSWtDeUFMUWNRQWFpRUxJQXBCQVdvaUNpQXVSdzBBQ3dzZ0ZrRWthaUVXSUIxQkFXb2lIU0FrUncwQUN5QU5JQkZxSVJFTUFnc2dDeUFITmdJa0N5QWpLQUlFS0FKb1JRUkFJQkFnRHpZQ0dDQVFJQmcyQWhRZ0VDQWROZ0lRSUJBZ0REWUNEQ0FRSUFvMkFnZ2dFQ0FHTmdJRUlCQWdGRFlDQUNBelFRSkI2L0VBSUJBUUV5QVZLQUljSVE4Z0JpQVJhaUVSREFFTElCQWdEellDT0NBUUlCZzJBalFnRUNBZE5nSXdJQkFnRERZQ0xDQVFJQW8yQWlnZ0VDQUdOZ0lrSUJBZ0ZEWUNJQ0F6UVFGQjYvRUFJQkJCSUdvUUV3d0VDd0pBSUJvZ0QwRUNkR29vQWdCRkRRQWdLQ2dDR0NBUFFUUnNhaUlCS0FJa0RRQWdBU0FmS0FJVUlBOUJ6QUJzYWlnQ0dFRUJhellDSkFzZ0NDQVJheUVJSUJFZ0dXb2hHU0FWRUdBTkFBc0xJQm9RRkNBVlFmQUJhaUVWSUJ4QkFXb2lIQ0FlS0FLa0EwME5BQXNnRGlBbUVFSWdQeUFaSUJkck5nSUlRUUVNQXdzZ0RpQW1FRUlnR2hBVURBRUxJQTRnSmhCQ0MwRUFDeUFRUVpBQmFpUUFJQ01RTWtVTkFTQWJLQUlnS0FMUUt5RWlJQnNvQWhRb0FnQWlFQ2dDRkNFT0lEOUJBVFlDREVFQUlSbEJBQ0VNSUJzb0FpQWlBU2dDRENBQktBSUlSZ1JBSUNJb0FoQkJCSFpCQVhFaERBc0NRQ0FRS0FJUUlncEZEUUFEUUFKQUlCc29Ba1FpQVFSQUlBRWdHVUVDZEdvb0FnQkZEUUVMSUQ5QkRHb2hGRUVBSVFvQ1FDQU9LQUlZSWdGRkRRQWdHeWdDTENFUkEwQWdEaWdDSENBS1FaZ0JiR29pRHlnQ0dDSUxCRUFnRDBFY2FpRVRJQThvQWhRaEFTQVBLQUlRSVJWQkFDRVhBMEFnQVNBVmJBUkFJQk1nRjBFa2JHb2hEVUVBSVFrRFFDQWJJQTRvQWhBZ0NpQU5LQUlRSUEwb0FoUWdDVUVvYkdvaUJ5Z0NBQ0FIS0FJRUlBY29BZ2dnQnlnQ0RCQkJJUVlnQnlnQ0ZDSUxJQWNvQWhBaUNHd2hBUUpBSUFZRVFDQUJSUTBCUVFBaENBTkFBa0FnR3lBT0tBSVFJQW9nRFNnQ0VDQUhLQUlZSUFoQnhBQnNhaUlHS0FJSUlBWW9BZ3dnQmlnQ0VDQUdLQUlVRUVGRkJFQWdCaWdDUENJQlJRMEJJQUVRRkNBR1FRQTJBandNQVFzZ0d5Z0NRRVVFUUNBR0tBSThEUUVnQmlnQ0VDQUdLQUlJUmcwQklBWW9BaFFnQmlnQ0RFWU5BUXRCQVVFc0VCY2lBVVVFUUNBL1FRQTJBZ3dNQ2dzZ0d5Z0NRQ0VMSUFGQkFEWUNKQ0FCSUJRMkFod2dBU0FpTmdJVUlBRWdEallDRUNBQklBMDJBZ3dnQVNBR05nSUlJQUVnQ2pZQ0JDQUJJQXMyQWdBZ0FTQU1OZ0lvSUFFZ016WUNJQ0FCSUJFb0FnUkJBVW8yQWhnZ0VVRU9JQUVRTXlBL0tBSU1SUTBKQ3lBSVFRRnFJZ2dnQnlnQ0ZDQUhLQUlRYkVrTkFBc01BUXNnQVVVTkFFRUFJUlVEUUNBSEtBSVlJQlZCeEFCc2FpSUJLQUk4SWdZRVFDQUdFQlFnQVVFQU5nSThJQWNvQWhRaEN5QUhLQUlRSVFnTElCVkJBV29pRlNBSUlBdHNTUTBBQ3dzZ0NVRUJhaUlKSUE4b0FoUWlBU0FQS0FJUUloVnNTUTBBQ3lBUEtBSVlJUXNMSUJkQkFXb2lGeUFMU1EwQUN5QU9LQUlZSVFFTElBcEJBV29pQ2lBQlNRMEFDd3NnUHlnQ0RFVU5BaUFRS0FJUUlRb0xJQ0pCdUFocUlTSWdEa0hNQUdvaERpQVpRUUZxSWhrZ0Nra05BQXNMUVFBaElpQWJLQUlzRUNRZ1B5Z0NERVVOQVFKQUlCc29Ba0FOQUNBYktBSVlJaGtvQWhCRkRRQkJBQ0VPQTBBZ0d5Z0NGQ2dDQUNnQ0ZDQU9RY3dBYkdvaUFTZ0NIQ0FaS0FJWUlBNUJOR3hxS0FJa1FaZ0JiR29pQnlnQ2lBRWhCaUFIS0FLUUFTRUlJQWNvQW93QklRc2dCeWdDbEFFaEJ5QUJLQUkwRUJRZ0FVRUFOZ0kwQWtBZ0d5Z0NSQ0lKQkVBZ0NTQU9RUUowYWlnQ0FFVU5BUXNnQmlBSVJnMEFJQWNnQzBZTkFDQUhJQXRySWdldElBZ2dCbXNpQnExK1FpQ0lRZ0JTQkVBZ00wRUJRWUVYUVFBUUV3d0ZDeUFHSUFkc0lnZEJnSUNBZ0FSUEJFQWdNMEVCUVlFWFFRQVFFd3dGQ3lBQklBZEJBblFRSENJQk5nSTBJQUVOQUNBelFRRkJnUmRCQUJBVERBUUxJQTVCQVdvaURpQWJLQUlZSWhrb0FoQkpEUUFMQ3lBYktBSWdJUmtnR3lnQ0ZDZ0NBQ0lWS0FJUUJFQWdGU2dDRkNFT0lCa29BdEFySVJrZ0d5Z0NHQ2dDR0NFS1FRQWhDd05BQWtBZ0d5Z0NSQ0lCQkVBZ0FTQUxRUUowYWlnQ0FFVU5BUXNnQ2lnQ0pFRUJhaUVCSUJrb0FoUkJBVVlFUUNBQklSNUJBQ0VJUVFBaEJ2ME1BQUFBQUFBQUFBQUFBQUFBQUFBQUFDRjJJd0JCSUdzaUp5UUFBa0FDUUNBYktBSkFCRUJCQVNFSElBRkJBVVlOQWlBT0tBSWNJZ1lnRGlnQ0dFR1lBV3hxSWdGQmtBRnJLQUlBSWc4Z0FVR1lBV3NvQWdBaUVVWU5BaUFHS0FJRUlSUWdCaWdDRENFV0lBWW9BZ0FoR0NBR0tBSUlJUjBnR3lnQ0xDSVhLQUlFSVJBZ0hrRUJheUlOSVF3Z0JpRUhBa0FnRFVFRVR3UkFJQTFCQTNFaERDQUhJQTFCZkhFaUNVR1lBV3hxSVFkQkFDRUJBMEFnZGlBR0lBRkJtQUZzYWlJSVFlZ0VhaUFJUWRBRGFpQUlRYmdDYWlBSS9Wd0NvQUg5VmdJQUFmMVdBZ0FDL1ZZQ0FBTWdDRUhnQkdvZ0NFSElBMm9nQ0VHd0Ftb2dDUDFjQXBnQi9WWUNBQUg5VmdJQUF2MVdBZ0FEL2JFQi9ia0JJQWhCN0FScUlBaEIxQU5xSUFoQnZBSnFJQWo5WEFLa0FmMVdBZ0FCL1ZZQ0FBTDlWZ0lBQXlBSVFlUUVhaUFJUWN3RGFpQUlRYlFDYWlBSS9Wd0NuQUg5VmdJQUFmMVdBZ0FDL1ZZQ0FBUDlzUUg5dVFFaGRpQUJRUVJxSWdFZ0NVY05BQXNnZGlCMklIYjlEUWdKQ2dzTURRNFBBQUVDQXdBQkFnUDl1UUVpZGlCMklIYjlEUVFGQmdjQUFRSURBQUVDQXdBQkFnUDl1UUg5R3dBaENDQUpJQTFHRFFFTEEwQWdDQ0FIS0FLZ0FTQUhLQUtZQVdzaUFTQUJJQWhKR3lJQklBY29BcVFCSUFjb0Fwd0JheUlJSUFFZ0NFc2JJUWdnQjBHWUFXb2hCeUFNUVFGcklnd05BQXNMUVFBaEJ5QUlRZi8vL3o5TERRSWdKeUFJUVFWMEloTVFOeUlNTmdJUUlBeEZEUUlnSnlBTU5nSUFJQTBFUUNBUElCRnJJUkVnRmlBVWF5RUpJQjBnR0dzaEFRTkFJQTRvQWlRaEZDQW5JQWtpRHpZQ0NDQW5JQUVpQnpZQ0dDQUdLQUtjQVNFSUlBWW9BcVFCSVFrZ0JpZ0NvQUVoQVNBbklBWW9BcGdCSWhaQkFtODJBaHdnSnlBQklCWnJJZ0VnQjJzMkFoUUNRQ0FRUVFKSUloMUZJQWtnQ0dzaUNVRUJTM0ZGQkVCQkFDRUlJQWxGRFFFRFFDQW5RUkJxSUJRZ0NDQVJiRUVDZEdvUVppQUlRUUZxSWdnZ0NVY05BQXNNQVFzZ0NTQVFJQWtnRUVrYkloWkJBV3NoSXlBSklCWnVJUmhCQUNFSEEwQkJKQkFZSWdoRkRRVWdKLzBBQWhBaGRpQUlJQlEyQWhnZ0NDQVJOZ0lVSUFnZ0FUWUNFQ0FJSUhiOUN3SUFJQWdnQnlBWWJEWUNIQ0FISUNOR0lSOGdDQ0FKSUFkQkFXb2lCeUFZYkNBZkd6WUNJQ0FJSUJNUU55SWZOZ0lBSUI5RkJFQkJBQ0VISUJjUUpDQUlFQlFnREJBVURBY0xJQmRCQ2lBSUVETWdCeUFXUncwQUN5QVhFQ1FMSUNjZ0NTQVBhellDQkNBbklBWW9BcHdCUVFKdk5nSU1Ba0FnSFVVZ0FVRUJTM0ZGQkVCQkNDRUhRUUFoQ0NBQlFRaFBCRUFEUUNBbklCUWdDRUVDZEdvZ0VVRUlFRFlnQnlJSVFRaHFJZ2NnQVUwTkFBc0xJQUVnQ0UwTkFTQW5JQlFnQ0VFQ2RHb2dFU0FCSUFockVEWU1BUXNnQVNBUUlBRWdFRWtiSWc5QkFXc2hHQ0FCSUE5dUlSWkJBQ0VIQTBCQkpCQVlJZ2hGRFFVZ0ovMEFBZ0FoZGlBSUlCUTJBaGdnQ0NBUk5nSVVJQWdnQ1RZQ0VDQUlJSGI5Q3dJQUlBZ2dCeUFXYkRZQ0hDQUhJQmhHSVIwZ0NDQUJJQWRCQVdvaUJ5QVdiQ0FkR3pZQ0lDQUlJQk1RTnlJZE5nSUFJQjFGQkVCQkFDRUhJQmNRSkNBSUVCUWdEQkFVREFjTElCZEJDeUFJRURNZ0J5QVBSdzBBQ3lBWEVDUUxJQVpCbUFGcUlRWWdEVUVCYXlJTkRRQUxDMEVCSVFjZ0RCQVVEQUlMUVFFaEJ5QU9LQUljSWdrZ0hrR1lBV3hxSWl0Qm1BRnJJbDBvQWdBZ0swR1FBV3NvQWdCR0RRRWdLMEdVQVdzaVhpZ0NBQ0FyUVl3QmF5Z0NBRVlOQVNBSktBSUVJUmNnQ1NnQ0RDRU5JQWtvQWdBaEVDQUpLQUlJSVJFZ0RpZ0NSQ0VvSUE0b0FrQWhHaUFPS0FJOElTWWdEaWdDT0NFdUlBNGdIaEJsSWpsRkJFQkJBQ0VIREFJTEFrQUNRQ0FlUVFGSEJFQUNRQUpBSUI1QkFXc2lEMEVFU1FSQUlBOGhBU0FKSVFjTUFRc2dEMEVEY1NFQklBa2dEMEY4Y1NJTVFaZ0JiR29oQndOQUlIWWdDU0FHUVpnQmJHb2lDRUhvQkdvZ0NFSFFBMm9nQ0VHNEFtb2dDUDFjQXFBQi9WWUNBQUg5VmdJQUF2MVdBZ0FESUFoQjRBUnFJQWhCeUFOcUlBaEJzQUpxSUFqOVhBS1lBZjFXQWdBQi9WWUNBQUw5VmdJQUEvMnhBZjI1QVNBSVFld0VhaUFJUWRRRGFpQUlRYndDYWlBSS9Wd0NwQUg5VmdJQUFmMVdBZ0FDL1ZZQ0FBTWdDRUhrQkdvZ0NFSE1BMm9nQ0VHMEFtb2dDUDFjQXB3Qi9WWUNBQUg5VmdJQUF2MVdBZ0FEL2JFQi9ia0JJWFlnQmtFRWFpSUdJQXhIRFFBTElIWWdkaUIyL1EwSUNRb0xEQTBPRHdBQkFnTUFBUUlEL2JrQkluWWdkaUIyL1EwRUJRWUhBQUVDQXdBQkFnTUFBUUlEL2JrQi9Sc0FJUWdnRENBUFJnMEJDd05BSUFnZ0J5Z0NvQUVnQnlnQ21BRnJJZ1lnQmlBSVNSc2lCaUFIS0FLa0FTQUhLQUtjQVdzaUNDQUdJQWhMR3lFSUlBZEJtQUZxSVFjZ0FVRUJheUlCRFFBTEN5QUlRWUNBZ0lBQlR3MENJQWhCQkhRUU55SVNSUTBDQWtBZ0hrVU5BQ0FOSUJkcklSWWdFU0FRYXlFVElCSkJCR3NoT2lBU1FSeHFJVTRnRWtFWWFpRTRJQkpCRkdvaFBDQVNRUXhySVVFZ0VrRU1haUVwSUJKQkNHb2hKU0FTUVJCcklVSWdFa0VJYXlGQUlCSkJCR29oSVNBb3JTRjhJQnF0SVgwZ0pxMGhnQUVnTHEwaGdRRkJBU0ZEQTBBZ0NTZ0NuQUVpQVVFQ2J5RTNJQWtvQXBnQklnZEJBbThoUGlBSktBS2tBU0FCYXlJa0lCWnJJUzhnQ1NnQ29BRWdCMnNpTENBVGF5RXhJQzRpQmlFSElDWWlIU0VVSUJvaUFTRXdJQ2dpQ0NFUkFrQWdEaWdDRkNJUElFTkdEUUFnRHlCRGF5RVBRUUFoRkVFQUlRY2dCZ1JBUW44Z0Q2MGlmb1pDZjRVZ2dRRjhJSDZJcHlFSEN5QW1CRUJDZnlBUHJTSitoa0ovaFNDQUFYd2dmb2luSVJRTFFRQWhDRUVBSVFFZ0dnUkFRbjhnRDYwaWZvWkNmNFVnZlh3Z2ZvaW5JUUVMSUNnRVFFSi9JQSt0SW42R1FuK0ZJSHg4SUg2SXB5RUlDMEVBSVRCQkFDRUdRUUVnRDBFQmEzUWlEQ0F1U1FSQUlDNGdER3V0UW44Z0Q2MGlmb1pDZjRWOElINklweUVHQ3lBTUlCcEpCRUFnR2lBTWE2MUNmeUFQclNKK2hrSi9oWHdnZm9pbklUQUxRUUFoRVVFQUlSMGdEQ0FtU1FSQUlDWWdER3V0UW44Z0Q2MGlmb1pDZjRWOElINklweUVkQ3lBTUlDaFBEUUFnS0NBTWE2MUNmeUFQclNKK2hrSi9oWHdnZm9pbklSRUxRWDhnTUNBSktBSzBBU0lQYXlJTVFRQWdEQ0F3VFJzaURFRUNhaUlYSUF3Z0Ywc2JJZ3dnTVNBTUlERkpHeUkxUVg4Z0FTQUpLQUxZQVNJdGF5SU1RUUFnQVNBTVR4c2lBVUVDYWlJTUlBRWdERXNiSWdFZ0V5QUJJQk5KR3lJMklENGJRUUYwSWdFZ05pQTFJRDRiUVFGMFFRRnlJZ3dnQVNBTVN4c2lSaUFzU1NFWUlBWWdEMnNpQVVFQUlBRWdCazBiSWdGQkFtc2lCa0VBSUFFZ0JrOGJJaEFnQnlBdGF5SUJRUUFnQVNBSFRSc2lBVUVDYXlJR1FRQWdBU0FHVHhzaURTQStHMEVCZENJR0lBMGdFQ0ErRzBFQmRFRUJjaUlQU1NFZ0lCUWdDU2dDdUFFaUkyc2lERUVBSUF3Z0ZFMGJJZ3hCQW1zaUYwRUFJQXdnRjA4Yklnd2hIQ0FkSUFrb0F0d0JJaFJySWhkQkFDQVhJQjFOR3lJWFFRSnJJaDFCQUNBWElCMVBHeUlYSVNwQmZ5QUlJQ05ySWgxQkFDQUlJQjFQR3lJSVFRSnFJaDBnQ0NBZFN4c2lDQ0FXSUFnZ0Zra2JJaU1oTWtGL0lCRWdGR3NpQ0VFQUlBZ2dFVTBiSWdoQkFtb2lFU0FJSUJGTEd5SUlJQzhnQ0NBdlNSc2lIeUU3SURjRVFDQU1JU29nSHlFeUlDTWhPeUFYSVJ3TElFWWdMQ0FZR3lGSElBWWdEeUFnR3lFUElCWWdIMm9oVHlBV0lCZHFJVkFnSkFSQUlCSWdEVUVEZEdvaVJFRUVhaUE2SURGQkEzUWlCbW9pVVNBTklERklJZ2diSVZJZ05TQVRRUUZySUJNZ05Vb2JJU0JCQUNFWUlCTkJBVW9nTVVFQVNuSWhVeUFoSUQ1QkFuUWlFV3NnRUVFRGRHb2hWQ0FSSUVScUlWVWdEU0EySURFZ01TQTJTaHNpRVNBSElDMGdCeUF0U1J0cVFRSWdBU0FCUVFKUEcyb2dCMEYvYzJvaVNFRjhjU0pGYWlFMElBMUJBV29pRkNCRmFpRTlJQk1nTldvaFZpQVFJQk5xSVZjZ0RmMFIvUXdBQUFBQUFRQUFBQUlBQUFBREFBQUEvYTRCSVhrZ0VpQVBRUUowYWlGWUlFQWdFMEVEZENJQmFpRkpJQUVnT21vaFNpQUdJRUJxSVVzZ0UwVWdNVUVCUm5FaFdTQVNJRWRCQW5RaUFXb2hXaUFCSURwcUlWc2dGUDBSL1F3QUFBQUFBUUFBQUFJQUFBQURBQUFBL2E0QklYb2dPaUFOSURFZ0NCdEJBM1JxSVZ3RFFBSkFBa0FnR0NBalNTQU1JQmhOY1EwQUlCZ2dUMGtnR0NCUVQzRU5BQ0FZUVFGcUlTME1BUXNnTENCR1N3UkFJRnRCQURZQ0FDQmFRUUEyQWdBTElEa2dEU0FZSURZZ0dFRUJhaUl0SUZWQkFrRUFFQ0lnT1NCWElCZ2dWaUF0SUZSQkFrRUFFQ0lDUUFKQUFrQWdQa1VFUUNCVFJRMERJQTBnTms0TkFnSkFBa0FnRFVFQVNnUkFJRndvQWdBaEJ3d0JDeUFoS0FJQUlnY2hBU0FOUVFCSURRRUxJQWNoQVNCU0tBSUFJUWNMSUVRZ1JDZ0NBQ0FCSUFkcVFRSnFRUUoxYXpZQ0FDQVVJZ2NnRVU0TkFVRUFJUWNnRkNFQklBMGhDQ0I2SVhZZ2VTRjRJRWhCQTBzRVFBTkFJQklnZGtFQi9hc0JJbmY5R3dCQkFuUnFJZ0VnRWlCMy9Sc0RRUUowYWlJR0lCSWdkLzBiQWtFQ2RHb2lDQ0FTSUhmOUd3RkJBblJxSWgwZ0FmMWNBZ0Q5VmdJQUFmMVdBZ0FDL1ZZQ0FBTWdFaUI0UVFIOXF3SDlEQUVBQUFBQkFBQUFBUUFBQUFFQUFBRDlVQ0o3L1JzRFFRSjBhaUFTSUh2OUd3SkJBblJxSUJJZ2UvMGJBVUVDZEdvZ0VpQjcvUnNBUVFKMGF2MWNBZ0Q5VmdJQUFmMVdBZ0FDL1ZZQ0FBTWdFaUIzL1F3QkFBQUFBUUFBQUFFQUFBQUJBQUFBL1ZBaWQvMGJBMEVDZEdvZ0VpQjMvUnNDUVFKMGFpQVNJSGY5R3dGQkFuUnFJQklnZC8wYkFFRUNkR3I5WEFJQS9WWUNBQUg5VmdJQUF2MVdBZ0FEL2E0Qi9Rd0NBQUFBQWdBQUFBSUFBQUFDQUFBQS9hNEJRUUw5ckFIOXNRRWlkLzFhQWdBQUlCMGdkLzFhQWdBQklBZ2dkLzFhQWdBQ0lBWWdkLzFhQWdBRElIajlEQVFBQUFBRUFBQUFCQUFBQUFRQUFBRDlyZ0VoZUNCMi9Rd0VBQUFBQkFBQUFBUUFBQUFFQUFBQS9hNEJJWFlnQjBFRWFpSUhJRVZIRFFBTElEMGhBU0EwSVFnZ0VTRUhJRVVnU0VZTkFnc0RRQ0FTSUFGQkEzUnFJZ2NnQnlnQ0FDQVNJQWhCQTNScUtBSUVJQWNvQWdScVFRSnFRUUoxYXpZQ0FDQUJJZ2hCQVdvaUFTQVJSdzBBQ3lBUklRY01BUXNDUUNCWlJRUkFJQTBpQnlBMlRnMEJBMEFnRWlBSFFRTjBhaUlCS0FJRUlRWWdBU0FHQW44Q1FDQUhRUUJPQkVBZ0FTQkxJQWNnTVVnYktBSUFJVEFnQjBFQmFpRUJEQUVMSUJJb0FnQWhNRUVBSVFFZ0VpQUhRUUZxSWdjTkFSb0xJQUVnTVU0RVFDQUJJUWNnU3d3QkN5QVNJQUVpQjBFRGRHb0xLQUlBSURCcVFRSnFRUUoxYXpZQ0JDQUhJRFpJRFFBTERBRUxJQklnRWlnQ0FFRUNiVFlDQUF3REN5QVFJZ2NnTlU0TkFnTkFJQklnQjBFRGRDSUJhaUlHS0FJQUlRZ0NmeUFIUVFCSUJFQWdJU2dDQUNFZElDRU1BUXNnRWlBSFFRTjBha0VFYWlCS0lBY2dFMGdiS0FJQUlSMGdJU0FIUlEwQUdpQktJQWNnRTBvTkFCb2dBU0E2YWdzaEFTQUdJQUVvQWdBZ0hXcEJBWFVnQ0dvMkFnQWdCMEVCYWlJSElEVkhEUUFMREFJTElBY2dOazROQUFOQUlCSWdCMEVEZEdvaUFTQUJLQUlBQW44Q1FDQUhRUUJLQkVBZ09pQUhJREVnQnlBeFNCdEJBM1JxS0FJQUlRZ01BUXNnSVNnQ0FDRUlJQ0VnQjBFQVNBMEJHZ3NnVVNBSElERk9EUUFhSUJJZ0IwRURkR3BCQkdvTEtBSUFJQWhxUVFKcVFRSjFhellDQUNBSFFRRnFJZ2NnTmtjTkFBc0xJQkFnTlU0TkFDQWdJQkFpQVNJSFNnUkFBMEFnRWlBSFFRTjBhaUlCSUFFb0FnUWdFaUFIUVFGcUlnZEJBM1JxS0FJQUlBRW9BZ0JxUVFGMWFqWUNCQ0FISUNCSERRQUxJQ0FoQVFzZ0FTQTFUZzBBQTBBQ2Z3SkFJQUVpQjBFQVRnUkFJQklnQVVFRGRHb2dTU0FCSUJOSUd5Z0NBQ0VHSUFGQkFXb2hDQXdCQ3lBU0tBSUFJUVpCQUNFSUlCSWdCMEVCYWlJQkRRRWFDeUFJSUJOT0JFQWdDQ0VCSUVrTUFRc2dFaUFJSWdGQkEzUnFDeUVJSUJJZ0IwRURkR29pQnlBSEtBSUVJQWdvQWdBZ0JtcEJBWFZxTmdJRUlBRWdOVWdOQUFzTElEa2dEeUFZSUVjZ0xTQllRUUZCQUVFQUVDcEZEUVlMSUMwaUdDQWtSdzBBQ3dzZ0NVR1lBV29oQ1NBeVFRRjBJZ0VnTzBFQmRFRUJjaUlISUFFZ0Iwc2JJZ0VnSkNBQklDUkpHeUUrSUNrZ0RFRUZkQ0lCUVJCeUlnWnFJRG9nTDBFRmRDSUlhaUFNSUM5SUlnY2JJVVFnQmlBbGFpQUlJRUJxSUFjYklVVWdCaUFoYWlBSUlFRnFJQWNiSVVZZ0JpQVNhaUFJSUVKcUlBY2JJVWdnSHlBV1FRRnJJQllnSDBvYklRMGdMMEVBU2lJUUlCWkJBVXB5SVVrZ0FTQVNhaUlkSURkQkJIUnFJVW9nS1NBV1FRTjBJZ1pCQ0dzaU1rRUFJQlpCQUV3YlFRSjBJZ2hxSVVzZ0NDQWxhaUZSSUFnZ0lXb2hVaUFJSUJKcUlWTWdLVUVBSUM5QkEzUWlDRUVJYXlJN0lCQWJRUUowSWhCcUlWUWdFQ0FsYWlGVklCQWdJV29oVmlBUUlCSnFJVmNnRWtFRUlEZEJBblJyUVFKMGFpQVhRUVYwYWlGWUlDTWdMeUFqSUM5SUd5RVFJQXhCQVdvaEZDQVNJQnhCQVhRaUVTQXFRUUYwUVFGeUloTWdFU0FUU1JzaVdVRUVkR29oV2lBQklDbHFJVFFnQVNBbGFpRWNJQUVnSVdvaExTQXBJQlpCQlhRaUFXb2hXeUFHUVFGcklUMGdBU0FsYWlGY0lBWkJBbXNoTVNBQklDRnFJVjhnQmtFRGF5RTFJQUVnRW1vaFlDQUdRUVJySVRZZ0NFRUZheUZoSUFoQkJtc2hZaUFJUVFkcklXTWdGa1VnTDBFQlJuRWhaQ0FwSURKQkFuUWlBV29oWmlBQklDVnFJV2NnQVNBaGFpRm9JQUVnRW1vaGFTQXBJQWhCQkdzaWFrRUNkQ0lCYWlGcklBRWdKV29oYkNBQklDRnFJVzBnQVNBU2FpRnVJRG9nRENBdklBY2JRUVYwSWdGcUlXOGdBU0JBYWlFVElBRWdRV29oR0NBQklFSnFJWEFnS1NBN1FRSjBJZ0ZxSVhFZ0FTQWxhaUZ5SUFFZ0lXb2hjeUFCSUJKcUlYUURRQUpBQWtBQ2Z3SkFJQThpRVNCSFNRUkFJRGtnRHlBTVFRUWdSeUFQYXlJQklBRkJCRThiSUE5cUlnOGdJeUJLUVFGQkNCQWlJRGtnRVNCUUlBOGdUeUJZUVFGQkNCQWlJRGRGQkVBZ1NVVU5CU0FNSUNOT0RRUUNmeUFNUVFCS0JFQWdjQ2dDQUNFSElCTWhCaUFZSVFnZ2J3d0JDeUFTS0FJUUlRY2dERUVBU0EwRElEZ2hCaUE4SVFnZ1Rnc2dIU0FkS0FJQUlBY2dTQ2dDQUdwQkFtcEJBblZyTmdJQUlDMGdMU2dDQUNBSUtBSUFJRVlvQWdCcVFRSnFRUUoxYXpZQ0FDQWNJQndvQWdBZ0JpZ0NBQ0JGS0FJQWFrRUNha0VDZFdzMkFnQWdSQ2dDQUNFSEtBSUFEQU1MSUdRRVFDQVNJQklvQWdCQkFtMDJBZ0FnRWlBU0tBSUVRUUp0TmdJRUlDVWdKU2dDQUVFQ2JUWUNBQ0FwSUNrb0FnQkJBbTAyQWdBTUJRc2dJeUFNSWdkS0JFQURRQ0FIUVFOMElRWUNRQUpBSUFkQkFFZ0VRQ0FIUVg5R0RRRWdFaUFHUVFKMGFpSUJJQUg5QUFJUUlCTDlBQUlBUVFIOXF3SDlEQUlBQUFBQ0FBQUFBZ0FBQUFJQUFBRDlyZ0ZCQXYyc0FmMnhBZjBMQWhBTUFnc2dFaUFHUVFKMGFpSUJLQUlRSVFnZ0x5QUhRUUZxSWlCTUJFQWdBU0FJSUJJZ0JpQTdJQWNnTDBnaUNCdEJBblJxS0FJQUlIUW9BZ0JxUVFKcVFRSjFhellDRUNBQklBRW9BaFFnRWlBR1FRRnlJR01nQ0J0QkFuUnFLQUlBSUhNb0FnQnFRUUpxUVFKMWF6WUNGQ0FCSUFFb0FoZ2dFaUFHUVFKeUlHSWdDQnRCQW5ScUtBSUFJSElvQWdCcVFRSnFRUUoxYXpZQ0dDQUJJQUVvQWh3Z0VpQUdRUU55SUdFZ0NCdEJBblJxS0FJQUlIRW9BZ0JxUVFKcVFRSjFhellDSEF3Q0N5QUJJQUZCRkdvZ0NQMFIvVllDQUFFZ0FVRVlhdjFkQWdEOURRQUJBZ01FQlFZSEVCRVNFeFFWRmhjZ0FmMEFBZ0FnRWlBZ1FRVjBhdjBBQWdEOXJnSDlEQUlBQUFBQ0FBQUFBZ0FBQUFJQUFBRDlyZ0ZCQXYyc0FmMnhBZjBMQWhBTUFRc2dRaUJDS0FJQUlCSW9BZ0FnVnlnQ0FHcEJBbXBCQW5Wck5nSUFJRUVnUVNnQ0FDQVNLQUlFSUZZb0FnQnFRUUpxUVFKMWF6WUNBQ0JBSUVBb0FnQWdKU2dDQUNCVktBSUFha0VDYWtFQ2RXczJBZ0FnT2lBNktBSUFJQ2tvQWdBZ1ZDZ0NBR3BCQW1wQkFuVnJOZ0lBQ3lBSFFRRnFJZ2NnSTBjTkFBc0xJQjhnRnlJSFRBMEVBMEFnQjBFRGRDRUdBa0FnQjBFQVNBUkFJQklnQmtFQ2RHb2lBU0FTL1FBQ0VFRUIvYXNCUVFIOXJBRWdBZjBBQWdEOXJnSDlDd0lBREFFTElBY0VRQ0FTSUFaQkFuUWlDR29pQVNBQktBSUFJR0FnQVNBSElCWktJaUFiUVJCcktBSUFJQklnQmtFRWNpQTJJQWNnRmtnaUtodEJBblJxS0FJQWFrRUJkV28yQWdBZ0FTQUJLQUlFSUY4Z0NDQWhhaUFnRzBFUWF5Z0NBQ0FTSUFaQkJYSWdOU0FxRzBFQ2RHb29BZ0JxUVFGMWFqWUNCQ0FCSUFFb0FnZ2dYQ0FJSUNWcUlDQWJRUkJyS0FJQUlCSWdCa0VHY2lBeElDb2JRUUowYWlnQ0FHcEJBWFZxTmdJSUlBRWdBU2dDRENCYklBZ2dLV29nSUJ0QkVHc29BZ0FnRWlBR1FRZHlJRDBnS2h0QkFuUnFLQUlBYWtFQmRXbzJBZ3dNQVFzZ0VpQVNLQUlBSUJJb0FoQWdFa0VFSURZZ0J5QVdTQ0lCRzBFQ2RHb29BZ0JxUVFGMWFqWUNBQ0FTSUJJb0FnUWdFaWdDRkNBU1FRVWdOU0FCRzBFQ2RHb29BZ0JxUVFGMWFqWUNCQ0FsSUNVb0FnQWdFaWdDR0NBU1FRWWdNU0FCRzBFQ2RHb29BZ0JxUVFGMWFqWUNBQ0FwSUNrb0FnQWdFaWdDSENBU1FRY2dQU0FCRzBFQ2RHb29BZ0JxUVFGMWFqWUNBQXNnQjBFQmFpSUhJQjlIRFFBTERBUUxJQ3doRXlBa0lSWWdRMEVCYWlKRElCNUhEUVVNQmdzZ0hTQWRLQUlBSUFkQkFYUkJBbXBCQW5Wck5nSUFJQzBnTFNnQ0FDQThLQUlBUVFGMFFRSnFRUUoxYXpZQ0FDQWNJQndvQWdBZ09DZ0NBRUVCZEVFQ2FrRUNkV3MyQWdBZ1RpZ0NBQ0lIQ3lFQklEUWdOQ2dDQUNBQklBZHFRUUpxUVFKMWF6WUNBQ0FNSVFZZ0VDQVVJZ0VpQjBvRVFBTkFJQklnQVVFRmRHb2lCeUFIL1FBQ0FDQVNJQVpCQlhScS9RQUNFQ0FIL1FBQ0VQMnVBZjBNQWdBQUFBSUFBQUFDQUFBQUFnQUFBUDJ1QVVFQy9hd0IvYkVCL1FzQ0FDQUJJZ1pCQVdvaUFTQVFSdzBBQ3lBUUlRY0xJQWNnSTA0TkFBTkFJQWRCQTNRaUJrRUVjaUVnSUFjZ0wwZ2hDQUovSUFkQkFFd0VRQ0FTS0FJUUlTb2dCMEVBVGdSQUlCSWdCa0VDZENJd2FpSUJJQUVvQWdBZ0tpQVNJQ0FnYWlBSUcwRUNkQ0lCYWlnQ0FHcEJBbXBCQW5Wck5nSUFJQ0VnTUdvaUNDQUlLQUlBSUJJb0FoUWdBU0FoYWlnQ0FHcEJBbXBCQW5Wck5nSUFJQ1VnTUdvaUNDQUlLQUlBSUJJb0FoZ2dBU0FsYWlnQ0FHcEJBbXBCQW5Wck5nSUFJQklvQWh3Z0FTQXBhaWdDQUdwQkFtb01BZ3NnRWlBR1FRSjBJZ0ZxSWdnZ0NDZ0NBQ0FxUVFGMFFRSnFRUUoxYXpZQ0FDQUJJQ0ZxSWdnZ0NDZ0NBQ0FTS0FJVVFRRjBRUUpxUVFKMWF6WUNBQ0FCSUNWcUlnRWdBU2dDQUNBU0tBSVlRUUYwUVFKcVFRSjFhellDQUNBU0tBSWNRUUYwUVFKcURBRUxJQklnQnlBdklBZ2JRUU4wUVFSclFRSjBJZ0ZxS0FJQUlTb2dDRVVFUUNBU0lBWkJBblFpQ0dvaUlDQWdLQUlBSUNvZ2JpZ0NBR3BCQW1wQkFuVnJOZ0lBSUFnZ0lXb2lJQ0FnS0FJQUlBRWdJV29vQWdBZ2JTZ0NBR3BCQW1wQkFuVnJOZ0lBSUFnZ0pXb2lDQ0FJS0FJQUlBRWdKV29vQWdBZ2JDZ0NBR3BCQW1wQkFuVnJOZ0lBSUFFZ0tXb29BZ0FnYXlnQ0FHcEJBbW9NQVFzZ0VpQUdRUUowSWpCcUlnZ2dDQ2dDQUNBcUlCSWdJRUVDZENJSWFpZ0NBR3BCQW1wQkFuVnJOZ0lBSUNFZ01Hb2lJQ0FnS0FJQUlBRWdJV29vQWdBZ0NDQWhhaWdDQUdwQkFtcEJBblZyTmdJQUlDVWdNR29pSUNBZ0tBSUFJQUVnSldvb0FnQWdDQ0FsYWlnQ0FHcEJBbXBCQW5Wck5nSUFJQUVnS1dvb0FnQWdDQ0FwYWlnQ0FHcEJBbW9MSVFFZ0tTQUdRUUowYWlJR0lBWW9BZ0FnQVVFQ2RXczJBZ0FnQjBFQmFpSUhJQ05IRFFBTEN5QVhJQjlPRFFBZ0RTQVhJZ0VpQjBvRVFBTkFJQklnQVVFRmRHb2lCeUFIL1FBQ0lDQUgvUUFDQVAydUFVRUIvYXdCSUFmOUFBSVEvYTRCL1FzQ0VDQUJRUUZxSWdFZ0RVY05BQXNnRFNFSEN5QUhJQjlPRFFBRFFDQXBJQWRCQTNRaUFVRUVjaUlHUVFKMGFpSXFBbjhnQjBFQVNBUkFJQklvQWdBaEFTQUhRWDlIQkVBZ0VpQUdRUUowSWdacUlnZ2dDQ2dDQUNBQmFqWUNBQ0FHSUNGcUlnRWdBU2dDQUNBaEtBSUFhallDQUNBR0lDVnFJZ0VnQVNnQ0FDQWxLQUlBYWpZQ0FDQXBLQUlBREFJTElCSWdCa0VDZENJR2FpSUlJQWdvQWdBZ1V5Z0NBQ0FCYWtFQmRXbzJBZ0FnQmlBaGFpSUJJQUVvQWdBZ1VpZ0NBQ0FoS0FJQWFrRUJkV28yQWdBZ0JpQWxhaUlCSUFFb0FnQWdVU2dDQUNBbEtBSUFha0VCZFdvMkFnQWdTeWdDQUNBcEtBSUFha0VCZFF3QkN5QVNJQUVnTWlBSElCWklHMEVDZEdvaUFTZ0NBQ0VJSUJZZ0IwRUJhaUl3VEFSQUlCSWdCa0VDZENJR2FpSWdJQ0FvQWdBZ2FTZ0NBQ0FJYWtFQmRXbzJBZ0FnQmlBaGFpSUlJQWdvQWdBZ2FDZ0NBQ0FCS0FJRWFrRUJkV28yQWdBZ0JpQWxhaUlHSUFZb0FnQWdaeWdDQUNBQktBSUlha0VCZFdvMkFnQWdaaWdDQUNBQktBSU1ha0VCZFF3QkN5QVNJQVpCQW5RaUlHb2lCaUFHS0FJQUlBZ2dFaUF3UVFWMGFpSUdLQUlBYWtFQmRXbzJBZ0FnSUNBaGFpSUlJQWdvQWdBZ0JpZ0NCQ0FCS0FJRWFrRUJkV28yQWdBZ0lDQWxhaUlJSUFnb0FnQWdCaWdDQ0NBQktBSUlha0VCZFdvMkFnQWdCaWdDRENBQktBSU1ha0VCZFFzZ0tpZ0NBR28yQWdBZ0IwRUJhaUlISUI5SERRQUxDeUE1SUJFZ1dTQVBJRDRnV2tFQlFRUkJBQkFxRFFBTEN3d0NDeUFTRUJSQkFTRUhDeUE1SUN0QkVHc29BZ0FpQVNCZEtBSUFJZ1pySUN0QkRHc29BZ0FnWGlnQ0FDSUlheUFyUVFocktBSUFJZ2tnQm1zZ0swRUVheWdDQUNBSWF5QU9LQUkwUVFFZ0NTQUJheEFpSURrUUp3d0RDeUE1RUNjZ0VoQVVRUUFoQnd3Q0N5QTVFQ2RCQUNFSERBRUxRUUFoQnlBWEVDUWdEQkFVQ3lBblFTQnFKQUFnQncwQkRBVUxJQUVoQjBFQUlRejlEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWhkaU1BUVVCcUloNGtBQUpBQW44Q1FDQWJLQUpBQkVBZ0RpZ0NIQ0lYSUE0b0FoaEJtQUZzYWlJQlFaZ0JheWdDQUNFWUlBRkJrQUZyS0FJQUlSMGdGeWdDQkNFTklCY29BZ3dnRnlnQ0FDRVJJQmNvQWdnaEZFRUJJUVlnR3lnQ0xDSWpLQUlFSVNZZ0IwRUJSZzBEUVFBaENDQUhRUUZySWc4aENTQVhJUUVDUUNBUFFRUlBCRUFnRDBFRGNTRUpJQUVnRDBGOGNTSU1RWmdCYkdvaEFVRUFJUVlEUUNCMklCY2dCa0dZQVd4cUlnZEI2QVJxSUFkQjBBTnFJQWRCdUFKcUlBZjlYQUtnQWYxV0FnQUIvVllDQUFMOVZnSUFBeUFIUWVBRWFpQUhRY2dEYWlBSFFiQUNhaUFIL1Z3Q21BSDlWZ0lBQWYxV0FnQUMvVllDQUFQOXNRSDl1UUVnQjBIc0JHb2dCMEhVQTJvZ0IwRzhBbW9nQi8xY0FxUUIvVllDQUFIOVZnSUFBdjFXQWdBRElBZEI1QVJxSUFkQnpBTnFJQWRCdEFKcUlBZjlYQUtjQWYxV0FnQUIvVllDQUFMOVZnSUFBLzJ4QWYyNUFTRjJJQVpCQkdvaUJpQU1SdzBBQ3lCMklIWWdkdjBOQ0FrS0N3d05EZzhBQVFJREFBRUNBLzI1QVNKMklIWWdkdjBOQkFVR0J3QUJBZ01BQVFJREFBRUNBLzI1QWYwYkFDRUlJQXdnRDBZTkFRc0RRQ0FJSUFFb0FxQUJJQUVvQXBnQmF5SUhJQWNnQ0VrYklnY2dBU2dDcEFFZ0FTZ0NuQUZySWdZZ0JpQUhTUnNoQ0NBQlFaZ0JhaUVCSUFsQkFXc2lDUTBBQ3d0QkFDRUdJQWhCLy8vL1Awc05BeUFlSUFoQkJYUWlSeEFjSWdFMkFpQWdBVVVOQXlBZUlBRTJBZ0FnRDBVRVFFRUJJUVlnQVJBVURBUUxJQTFySVEwZ0ZDQVJheUVNUVFJZ0prRUJkaUlCSUFGQkFrMGJJVVFnRGlnQ0pDSUhJQjFCSEd3aVhTQVlRUnhzSWw1cmFpRWtJQWNnSFVFWWJDSlJJQmhCR0d3aVVtdHFJUzRnQnlBZFFSUnNJbE1nR0VFVWJDSlVhMm9oTENBSElCMUJCSFFpVlNBWVFRUjBJbFpyYWlFdElBY2dIVUVNYkNKWElCaEJER3dpV0d0cUlTQWdCeUFkUVFOMElsa2dHRUVEZENKYWEyb2hPQ0FkSUJockloRkJCWFFoUlNBUlFRZHNJVTRnRVVFR2JDRkdJQkZCQld3aFR5QVJRUU5zSVZBZ0VVRUJkQ0ZJSUFjZ0VVRUNkQ0pBYWlFOElCSDlFU0Y2QTBBZ0hpQU5OZ0lJSUI0Z0RDSUJOZ0lvSUJjb0Fwd0JJUjhnRnlnQ3BBRWhLQ0FYS0FLZ0FTRXFJQmNvQXBnQklSb2dIa0VBTmdJNElCNGdBVFlDTkNBZVFRQTJBakFnSGlBYVFRSnZJaHcyQWl3Z0hpQXFJQnBySWd3Z0FXc2lGRFlDUENBZUlCUTJBaVFDUUNBbVFRSklJbHRGSUNnZ0gyc2lEVUVQUzNGRkJFQkJBQ0VHSUFjaENDQU5RUWhKRFFFZ0xDQUhJRkVnS2tFQ2RDSUJhaUJTSUJwQkFuUWlDV3ByYWlJK1NTQXVJQWNnQVNCVGFpQUpJRlJxYTJvaVFVbHhJQ1FnUVVrZ0xDQUhJQUVnWFdvZ0NTQmVhbXRxSWtKSmNYSWhYQ0E4SUFjZ0FTQlphaUFKSUZwcWEyb2lTVWtnT0NBSElCMGdLbW9nR0NBYWFtdEJBblJxSWtwSmNTQWdJRXBKSUR3Z0J5QUJJRmRxSUFrZ1dHcHJhaUpMU1hGeUlWOGdMU0JCU1NBc0lBY2dBU0JWYWlBSklGWnFhMm9pUTBseElDMGdQa2tnTGlCRFNYRnlJQzBnUWtrZ0pDQkRTWEZ5SVdBZ0xpQkNTU0FrSUQ1SmNTRmhJRGdnUzBrZ0lDQkpTWEVoWWlBSElBRWdDV3RxSVRJZ0RFRjhjU0VKSUI0b0FpQWlGRUVNYWlFN0lCUkJDR29oTkNBVVFRUnFJVDBnRkVFY2FpRVNJQlJCR0dvaElTQVVRUlJxSVNVZ0ZFRVFhaUVwSUJRZ0RFRUZkR29pRmtFUWF5RW5JQlpCRkdzaEx5QVdRUmhySVRFZ0ZrRWNheUU1SUJaQkJHc2hPaUFXUVFocklUVWdGa0VNYXlFMlFRQWhIQ0FNUWF3QlNTRmpJQXhCTEVraFpBTkFJQVloRUNBZVFTQnFJZ0VnQ0NBUlFRZ1FReUFCRUNZQ1FDQU1SUTBBSUJ3Z1JXd2hCa0VBSVFFQ1FBSkFJR01OQUNCaUlBZ2dPVWtnRkNBR0lESnFJamRKY1NBZ0lESkpJQWdnQmlCTGFpSVRTWEVnQ0NBR0lFcHFJaXRKSURJZ1BFdHhJQWdnQmlCSmFpSXdTU0F5SURoTGNYSnljaUFJSURGSklEY2dQVXR4Y2lBSUlDOUpJRFFnTjBseGNpQUlJQ2RKSURjZ08wdHhjaUJmY2lBVUlDdEpJQVlnUEdvaU55QTVTWEZ5SUNzZ1BVc2dNU0EzUzNGeUlDc2dORXNnTHlBM1MzRnlJQ3NnTzBzZ0p5QTNTM0Z5Y2cwQUlCUWdNRWtnQmlBNGFpSXJJRGxKY1EwQUlDc2dNVWtnTUNBOVMzRU5BQ0FySUM5SklEQWdORXR4RFFBZ01DQTdTeUFuSUN0TGNRMEFJQVlnSUdvaUt5QTVTU0FUSUJSTGNRMEFJQ3NnTVVrZ0V5QTlTM0VOQUNBcklDOUpJQk1nTkV0eERRQWdFeUE3U3lBbklDdExjUTBBQTBBZ0NDQUJRUUowYWlBVUlBRkJCWFJxSWhOQjRBQnFJQk5CUUdzZ0UwRWdhaUFUL1Z3Q0FQMVdBZ0FCL1ZZQ0FBTDlWZ0lBQS8wTEFnQWdDQ0FCSUJGcVFRSjBhaUFUUWVRQWFpQVRRY1FBYWlBVFFTUnFJQlA5WEFJRS9WWUNBQUg5VmdJQUF2MVdBZ0FEL1FzQ0FDQUlJQUVnU0dwQkFuUnFJQk5CNkFCcUlCTkJ5QUJxSUJOQktHb2dFLzFjQWdqOVZnSUFBZjFXQWdBQy9WWUNBQVA5Q3dJQUlBZ2dBU0JRYWtFQ2RHb2dFMEhzQUdvZ0UwSE1BR29nRTBFc2FpQVQvVndDRFAxV0FnQUIvVllDQUFMOVZnSUFBLzBMQWdBZ0FVRUVhaUlCSUFsSERRQUxJQWtpQVNBTVJnMEJDd05BSUFnZ0FVRUNkR29nRkNBQlFRVjBhaUlUS2dJQU9BSUFJQWdnQVNBUmFrRUNkR29nRXlvQ0JEZ0NBQ0FJSUFFZ1NHcEJBblJxSUJNcUFnZzRBZ0FnQ0NBQklGQnFRUUowYWlBVEtnSU1PQUlBSUFGQkFXb2lBU0FNUncwQUN3dEJBQ0VCQWtBZ1pBMEFJR0VnQmlBc2FpSVRJRFpKSUNrZ0JpQkJhaUlyU1hFZ1lDQUdJQzFxSWpBZ05ra2dLU0FHSUVOcUlqZEpjWElnSlNBM1NTQXdJRFZKY1hJZ0lTQTNTU0F3SURwSmNYSWdFaUEzU1NBV0lEQkxjWElnWEhKeUlDVWdLMGtnRXlBMVNYRnlJQ0VnSzBrZ0V5QTZTWEZ5SUJJZ0swa2dFeUFXU1hGeWNnMEFJQVlnTG1vaUV5QTJTU0FwSUFZZ1Btb2lLMGx4RFFBZ0pTQXJTU0FUSURWSmNRMEFJQ0VnSzBrZ0V5QTZTWEVOQUNBU0lDdEpJQk1nRmtseERRQWdCaUFrYWlJVElEWkpJQ2tnQmlCQ2FpSUdTWEVOQUNBVElEVkpJQVlnSlV0eERRQWdFeUE2U1NBR0lDRkxjUTBBSUJNZ0Zra2dCaUFTUzNFTkFBTkFJQWdnQVNCQWFrRUNkR29nRkNBQlFRVjBhaUlHUWZBQWFpQUdRZEFBYWlBR1FUQnFJQWI5WEFJUS9WWUNBQUg5VmdJQUF2MVdBZ0FEL1FzQ0FDQUlJQUVnVDJwQkFuUnFJQVpCOUFCcUlBWkIxQUJxSUFaQk5Hb2dCdjFjQWhUOVZnSUFBZjFXQWdBQy9WWUNBQVA5Q3dJQUlBZ2dBU0JHYWtFQ2RHb2dCa0g0QUdvZ0JrSFlBR29nQmtFNGFpQUcvVndDR1AxV0FnQUIvVllDQUFMOVZnSUFBLzBMQWdBZ0NDQUJJRTVxUVFKMGFpQUdRZndBYWlBR1Fkd0FhaUFHUVR4cUlBYjlYQUljL1ZZQ0FBSDlWZ0lBQXYxV0FnQUQvUXNDQUNBQlFRUnFJZ0VnQ1VjTkFBc2dDU0lCSUF4R0RRRUxBMEFnQ0NBQklFQnFRUUowYWlBVUlBRkJCWFJxSWdZcUFoQTRBZ0FnQ0NBQklFOXFRUUowYWlBR0tnSVVPQUlBSUFnZ0FTQkdha0VDZEdvZ0Jpb0NHRGdDQUNBSUlBRWdUbXBCQW5ScUlBWXFBaHc0QWdBZ0FVRUJhaUlCSUF4SERRQUxDeUFjUVFGcUlSd2dFRUVJYWlFR0lBZ2dSV29oQ0NBUVFROXFJQTFKRFFBTERBRUxJQTBnRFVFRGRpSUdJQ1lnQmlBbVNSc2lFMjVCZUhFaEZpQU5RWGh4SVFaQkFDRUpJQWNoQ0FOQVFUQVFHQ0lRUlEwRUlCQWdSeEFjSWpJMkFnQWdNa1VFUUNBakVDUWdFQkFVUVFBTUJnc2dFQ0FJTmdJb0lCQWdFVFlDSkNBUUlBdzJBaUFnRUNBVU5nSWNJQkJCQURZQ0dDQVFJQUUyQWhRZ0VFRUFOZ0lRSUJBZ0hEWUNEQ0FRSUFFMkFnZ2dFQ0FVTmdJRUlCQWdCaUFKSUJac2F5QVdJQWxCQVdvaUNTQVRSaHNpTWpZQ0xDQWpRUXdnRUJBeklBZ2dFU0F5YkVFQ2RHb2hDQ0FKSUJOSERRQUxJQ01RSkFzQ1FDQUdJQTFQRFFBZ0hrRWdhaUlCSUFnZ0VTQU5JQVpySWhRUVF5QUJFQ1lnREVVTkFDQWVLQUlnSWhZZ0trRUZkQ0FvUVFKMGFpQUdJQjlxUVFKMElCcEJCWFJxYTJwQklHc2hHaUFVUVh4eElSQWdRQ0FvSUFaQmYzTnFJQjlyYkNFcVFRQWhDUU5BSUJZZ0NVRUZkR29oSEVFQUlRRUNRQUpBSUJSQkJFa05BQ0FhSUFnZ0NVRUNkQ0lCYWlJR0lBZ2dBU0FxYW1vaUV5QUdJQk5KRzBzRVFFRUFJUUVnRmlBR0lCTWdCaUFUU3h0QkJHcEpEUUVMSUFuOUVTRjMvUXdBQUFBQUFRQUFBQUlBQUFBREFBQUFJWFpCQUNFQkEwQWdDQ0IySUhyOXRRRWdkLzJ1QVNKNC9Sc0FRUUowYWlBY0lBRkJBblJxL1FBQ0FDSjUvUjhBT0FJQUlBZ2dlUDBiQVVFQ2RHb2dlZjBmQVRnQ0FDQUlJSGo5R3dKQkFuUnFJSG45SHdJNEFnQWdDQ0I0L1JzRFFRSjBhaUI1L1I4RE9BSUFJSGI5REFRQUFBQUVBQUFBQkFBQUFBUUFBQUQ5cmdFaGRpQUJRUVJxSWdFZ0VFY05BQXNnRUNJQklCUkdEUUVMQTBBZ0NDQUJJQkZzSUFscVFRSjBhaUFjSUFGQkFuUnFLZ0lBT0FJQUlBRkJBV29pQVNBVVJ3MEFDd3NnQ1VFQmFpSUpJQXhIRFFBTEN5QWVJQTBnSGlnQ0NDSVFheUlUTmdJRUlCY29BcHdCSVFFZ0hpQVROZ0ljSUI3OURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ0FVRUNieUlxL1J3QUlCRDlIQUlpZHYwTEFnd0NRQ0JiUlNBTVFROUxjVVVFUUNBSElRRWdERUVJU1EwQklBMUJmbkVoT3lBTlFRRnhJVFFnRTBGK2NTRTlJQk5CQVhFaEVpQVFRWDV4SVNFZ0VFRUJjU0VsSUNnZ0gwRi9jMm9oTWlBZUtBSUFJaFFnS2tFRmRDSUdhaUVXSUJRZ0JtdEJJR29oSENBUUlCRnNRUUowSVNrZ0RDRUpBMEJCQUNFSVFRQWhCZ0pBQWtBQ1FDQVFEZ0lDQVFBTEEwQWdGaUFJUVFaMGFpSWFJQUVnQ0NBUmJFRUNkR29pSi8wQUFnRDlDd0lBSUJvZ0ovMEFBaEQ5Q3dJUUlCWWdDRUVCY2lJYVFRWjBhaUluSUFFZ0VTQWFiRUVDZEdvaUd2MEFBaEQ5Q3dJUUlDY2dHdjBBQWdEOUN3SUFJQWhCQW1vaENDQUdRUUpxSWdZZ0lVY05BQXNMSUNWRkRRQWdGaUFJUVFaMGFpSUdJQUVnQ0NBUmJFRUNkR29pQ1AwQUFnRDlDd0lBSUFZZ0NQMEFBaEQ5Q3dJUUN3SkFJQTBnRUVZTkFDQUJJQ2xxSVJwQkFDRUlRUUFoQmlBUUlESkhCRUFEUUNBY0lBaEJCblJxSWljZ0dpQUlJQkZzUVFKMGFpSXYvUUFDQVAwTEFnQWdKeUF2L1FBQ0VQMExBaEFnSENBSVFRRnlJaWRCQm5ScUlpOGdHaUFSSUNkc1FRSjBhaUluL1FBQ0VQMExBaEFnTHlBbi9RQUNBUDBMQWdBZ0NFRUNhaUVJSUFaQkFtb2lCaUE5UncwQUN3c2dFa1VOQUNBY0lBaEJCblJxSWdZZ0dpQUlJQkZzUVFKMGFpSUkvUUFDQVAwTEFnQWdCaUFJL1FBQ0VQMExBaEFMSUI0UUpnSkFJQTFGRFFCQkFDRUlRUUFoQmlBeUJFQURRQ0FCSUFnZ0VXeEJBblJxSWhvZ0ZDQUlRUVYwYWlJbi9RQUNBUDBMQWdBZ0dpQW4vUUFDRVAwTEFoQWdBU0FJUVFGeUlob2dFV3hCQW5ScUlpY2dGQ0FhUVFWMGFpSWEvUUFDRVAwTEFoQWdKeUFhL1FBQ0FQMExBZ0FnQ0VFQ2FpRUlJQVpCQW1vaUJpQTdSdzBBQ3dzZ05FVU5BQ0FCSUFnZ0VXeEJBblJxSWdZZ0ZDQUlRUVYwYWlJSS9RQUNBUDBMQWdBZ0JpQUkvUUFDRVAwTEFoQUxJQUZCSUdvaEFTQUpRUWhySWdsQkIwc05BQXNNQVF0QkFTQU1RUU4ySWdFZ1JDQUJJRVJKR3lJSklBbEJBVTBiSVJZZ0RDQUpia0Y0Y1NFVUlBeEJlSEVoSEVFQUlRWWdCeUVCQTBCQk1CQVlJZ2hGRFFRZ0NDQkhFQndpR2pZQ0FDQWFSUVJBSUNNUUpDQUlFQlJCQUF3R0N5QUlJQUUyQWlnZ0NDQVJOZ0lrSUFnZ0RUWUNJQ0FJSUJNMkFod2dDQ0IyL1FzQ0RDQUlJQkEyQWdnZ0NDQVROZ0lFSUFnZ0hDQUdJQlJzYXlBVUlBWkJBV29pQmlBSlJoc2lHallDTENBalFRMGdDQkF6SUFFZ0drRUNkR29oQVNBR0lCWkhEUUFMSUNNUUpBc0NRQ0FNUVFkeElnWkZEUUFnS2tFRmRDRWFJQjRvQWdBaENRSkFJQkJGRFFBZ0NTQWFhaUVVSUFaQkFuUWhGa0VBSVFnZ0VFRUJSd1JBSUJCQmZuRWhLa0VBSVJ3RFFDQVVJQWhCQm5ScUlBRWdDQ0FSYkVFQ2RHb2dGaEFXR2lBVUlBaEJBWElpTWtFR2RHb2dBU0FSSURKc1FRSjBhaUFXRUJZYUlBaEJBbW9oQ0NBY1FRSnFJaHdnS2tjTkFBc0xJQkJCQVhGRkRRQWdGQ0FJUVFaMGFpQUJJQWdnRVd4QkFuUnFJQllRRmhvTEFrQWdEU0FRUmcwQUlBa2dHbXRCSUdvaEZpQUJJQkFnRVd4QkFuUnFJUndnQmtFQ2RDRWFRUUFoQ0NBUUlDZ2dIMEYvYzJwSEJFQWdFMEYrY1NFUVFRQWhGQU5BSUJZZ0NFRUdkR29nSENBSUlCRnNRUUowYWlBYUVCWWFJQllnQ0VFQmNpSXFRUVowYWlBY0lCRWdLbXhCQW5ScUlCb1FGaG9nQ0VFQ2FpRUlJQlJCQW1vaUZDQVFSdzBBQ3dzZ0UwRUJjVVVOQUNBV0lBaEJCblJxSUJ3Z0NDQVJiRUVDZEdvZ0doQVdHZ3NnSGhBbUlBMUZEUUFnQmtFQ2RDRVFRUUFoQ0NBZlFRRnFJQ2hIQkVBZ0RVRitjU0VVUVFBaEJnTkFJQUVnQ0NBUmJFRUNkR29nQ1NBSVFRVjBhaUFRRUJZYUlBRWdDRUVCY2lJVElCRnNRUUowYWlBSklCTkJCWFJxSUJBUUZob2dDRUVDYWlFSUlBWkJBbW9pQmlBVVJ3MEFDd3NnRFVFQmNVVU5BQ0FCSUFnZ0VXeEJBblJxSUFrZ0NFRUZkR29nRUJBV0dnc2dGMEdZQVdvaEZ5QVBRUUZySWc4TkFBdEJBUXdDQzBFQklRWWdEaWdDSENJWElBZEJtQUZzYWlJYVFaZ0JheUk4S0FJQUlCcEJrQUZyS0FJQVJnMENJQnBCbEFGcklpb29BZ0FnR2tHTUFXc29BZ0JHRFFJZ0Z5Z0NCQ0VOSUJjb0Fnd2hFQ0FYS0FJQUlSRWdGeWdDQ0NFWUlBNG9Ba1FoRkNBT0tBSkFJUk1nRGlnQ1BDRVdJQTRvQWpnaEhTQU9JQWNRWlNJb1JRUkFRUUFoQmd3REN5QUhRUUZHQkVBZ0tDQWFRUkJyS0FJQUlnRWdQQ2dDQUNJSGF5QWFRUXhyS0FJQUlDb29BZ0FpQ0dzZ0drRUlheWdDQUNJSklBZHJJQnBCQkdzb0FnQWdDR3NnRGlnQ05FRUJJQWtnQVdzUUlpQW9FQ2NNQXd0QkFDRUlBa0FDUUNBSFFRRnJJZ2xCQkVrRVFDQUpJUVlnRnlFQkRBRUxJQWxCQTNFaEJpQVhJQWxCZkhFaUQwR1lBV3hxSVFFRFFDQjJJQmNnREVHWUFXeHFJZ2hCNkFScUlBaEIwQU5xSUFoQnVBSnFJQWo5WEFLZ0FmMVdBZ0FCL1ZZQ0FBTDlWZ0lBQXlBSVFlQUVhaUFJUWNnRGFpQUlRYkFDYWlBSS9Wd0NtQUg5VmdJQUFmMVdBZ0FDL1ZZQ0FBUDlzUUg5dVFFZ0NFSHNCR29nQ0VIVUEyb2dDRUc4QW1vZ0NQMWNBcVFCL1ZZQ0FBSDlWZ0lBQXYxV0FnQURJQWhCNUFScUlBaEJ6QU5xSUFoQnRBSnFJQWo5WEFLY0FmMVdBZ0FCL1ZZQ0FBTDlWZ0lBQS8yeEFmMjVBU0YySUF4QkJHb2lEQ0FQUncwQUN5QjJJSFlnZHYwTkNBa0tDd3dORGc4QUFRSURBQUVDQS8yNUFTSjJJSFlnZHYwTkJBVUdCd0FCQWdNQUFRSURBQUVDQS8yNUFmMGJBQ0VJSUFrZ0QwWU5BUXNEUUNBSUlBRW9BcUFCSUFFb0FwZ0JheUlKSUFnZ0NVc2JJZ2dnQVNnQ3BBRWdBU2dDbkFGcklna2dDQ0FKU3hzaENDQUJRWmdCYWlFQklBWkJBV3NpQmcwQUN3c0NRQ0FJUVlDQWdNQUFUdzBBSUI0Z0NFRUZkQkFjSWlZMkFpQWdKa1VOQUNBZUlDWTJBZ0FDUUNBSEJFQWdFQ0FOYXlFTklCZ2dFV3NoQ0NBbVFTQnFJVElnQjYwaGZTQVVyU0dBQVNBVHJTR0JBU0FXclNGK0lCMnRJWUlCSUE0b0FoUWlQYTBoZ3dGQ0FTRjhBMEFnSGlBTk5nSUlJQjRnQ0RZQ0tDQVhLQUtrQVNFSElCY29BcUFCSVFZZ0Z5Z0NuQUVoQVNBZUlCY29BcGdCSWdsQkFtOGlKRFlDTENBZUlBRkJBbThpT3pZQ0RDQWVJQVlnQ1dzaUl5QUlheUl1TmdJa0lCNGdCeUFCYXlJUUlBMXJJalEyQWdRZ0hTSVBJUWtnRmlJQklRd2dFeUlHSVJ3Z0ZDSUhJUkVDUUNCOElJTUJVUTBBSUQwZ2ZLZHJJUmhCQUNFTVFRQWhDU0FQQkVCQ2Z5QVlyU0ovaGtKL2hTQ0NBWHdnZjRpbklRa0xJQllFUUVKL0lCaXRJbitHUW4rRklINThJSCtJcHlFTUMwRUFJUWRCQUNFR0lCTUVRRUovSUJpdEluK0dRbitGSUlFQmZDQi9pS2NoQmdzZ0ZBUkFRbjhnR0swaWY0WkNmNFVnZ0FGOElIK0lweUVIQzBFQUlSeEJBQ0VQUVFFZ0dFRUJhM1FpSHlBZFNRUkFJQjBnSDJ1dFFuOGdHSzBpZjRaQ2Y0VjhJSCtJcHlFUEN5QVRJQjlMQkVBZ0V5QWZhNjFDZnlBWXJTSi9oa0ovaFh3Z2Y0aW5JUndMUVFBaEVVRUFJUUVnRmlBZlN3UkFJQllnSDJ1dFFuOGdHSzBpZjRaQ2Y0VjhJSCtJcHlFQkN5QVVJQjlORFFBZ0ZDQWZhNjFDZnlBWXJTSi9oa0ovaFh3Z2Y0aW5JUkVMUVg4Z0hDQVhLQUswQVNJWWF5SWZRUUFnSENBZlR4c2lIMEVFYWlJY0lCd2dIMGtiSWg4Z0xpQWZJQzVKR3lJZ1FYOGdCaUFYS0FMWUFTSWZheUljUVFBZ0JpQWNUeHNpQmtFRWFpSWNJQVlnSEVzYklnWWdDQ0FHSUFoSkd5STRJQ1FiUVFGMElnWWdPQ0FnSUNRYlFRRjBRUUZ5SWh3Z0JpQWNTeHNpSENBalNTRXVJQThnR0dzaUJrRUFJQVlnRDAwYklnWkJCR3NpRDBFQUlBWWdEMDhiSWl3Z0NTQWZheUlHUVFBZ0JpQUpUUnNpQmtFRWF5SUpRUUFnQmlBSlR4c2lMU0FrRzBFQmRDSVNJQzBnTENBa0cwRUJkRUVCY2lJaFNTRWxJQXdnRnlnQ3VBRWlDV3NpQmtFQUlBWWdERTBiSWdaQkJHc2lEMEVBSUFZZ0QwOGJJZ1loRHlBQklCY29BdHdCSWd4ckloaEJBQ0FCSUJoUEd5SUJRUVJySWhoQkFDQUJJQmhQR3lJQklSOUJmeUFISUFscklnbEJBQ0FISUFsUEd5SUhRUVJxSWdrZ0J5QUpTeHNpQnlBTklBY2dEVWtiSWdraEIwRi9JQkVnREdzaURFRUFJQXdnRVUwYklneEJCR29pRVNBTUlCRkxHeUlNSURRZ0RDQTBTUnNpR0NFUklEc0VRQ0FCSVE4Z0JpRWZJQWtoRVNBWUlRY0xJQndnSXlBdUd5RXVJQklnSVNBbEd5RWNJQjRnSURZQ1BDQWVJQ3cyQWpnZ0hpQTROZ0kwSUI0Z0xUWUNNQUpBSUJCQkNFa0VRRUVISVFoQkFDRU1EQUVMSURJZ0pFRUZkQ0lNYXlBc1FRWjBhaUUwSUF3Z0ptb2dMVUVHZEdvaEVpQUlJQ0JxSVNBZ0NDQXNhaUVzSUEwZ0dHb2hJU0FCSUExcUlTVWdKaUFjUVFWMGFpRXBRUUFoREFOQUFrQUNRQ0FKSUF4TElBeEJCM0lpQ0NBR1QzRU5BQ0FNSUNGSklBZ2dKVTl4RFFBZ0RFRUlhaUVNREFFTFFRZ2dFQ0FNYXlJSUlBaEJDRThiSVNkQkFDRUlBMEFnS0NBdElBZ2dER29pSkNBNElDUkJBV29pTHlBU0lBaEJBblFpTVdwQkVFRUFFQ0lnS0NBc0lDUWdJQ0F2SURFZ05HcEJFRUVBRUNJZ0NFRUJhaUlJSUNkSERRQUxJQjVCSUdvUUppQW9JQndnRENBdUlBeEJDR29pRENBcFFRaEJBVUVBRUNwRkRRVUxJQXhCQjNJaUNDQVFTUTBBQ3dzQ1FDQU1JQkJQRFFBZ0JpQUlUU0FKSUF4TGNVVUVRQ0FNSUEwZ0dHcFBEUUVnQ0NBQklBMXFTUTBCQ3lBZVFTQnFJUWhCQUNFa0lCQWdER3NpTFFSQUEwQWdLQ0FJS0FJUUlpQWdEQ0FrYWlJc0lBZ29BaFFnTEVFQmFpSTRJQ1JCQW5RaU5DQUlLQUlBSUFnb0FneEJCWFJxSUNCQkJuUnFha0VRUVFBUUlpQW9JQWdvQWhnaUlDQUlLQUlJSWhKcUlDd2dDQ2dDSENBU2FpQTRJQWdvQWdBZ0NDZ0NERUVGZEdzZ0lFRUdkR29nTkdwQklHcEJFRUVBRUNJZ0pFRUJhaUlrSUMxSERRQUxDeUFJRUNZZ0tDQWNJQXdnTGlBUUlDWWdIRUVGZEdwQkNFRUJRUUFRS2tVTkF3c2dIaUFZTmdJY0lCNGdBVFlDR0NBZUlBazJBaFFnSGlBR05nSVFJQndnTGtrRVFDQUhRUUYwSWdjZ0VVRUJkRUVCY2lJSUlBY2dDRXNiSWdjZ0VDQUhJQkJKR3lFSElESWdPMEVGZENJSWF5QUJRUVowYWlFTUlBZ2dKbW9nQmtFR2RHb2hDQ0FOSUJocUlSRWdBU0FOYWlFTklDWWdEMEVCZENJQklCOUJBWFJCQVhJaUR5QUJJQTlKR3lJUFFRVjBhaUVZQTBBZ0tDQWNJQVpCQ0NBdUlCeHJJZ0VnQVVFSVR4c2dIR29pQVNBSklBaEJBVUVRRUNJZ0tDQWNJQTBnQVNBUklBeEJBVUVRRUNJZ0hoQW1JQ2dnSENBUElBRWdCeUFZUVFGQkNFRUFFQ3BGRFFRZ0hFRUlhaUljSUM1SkRRQUxDeUFYUVpnQmFpRVhJQ01oQ0NBUUlRMGdmRUlCZkNKOElIMVNEUUFMQzBFQklRWWdLQ0FhUVJCcktBSUFJZ0VnUENnQ0FDSUhheUFhUVF4cktBSUFJQ29vQWdBaUNHc2dHa0VJYXlnQ0FDSUpJQWRySUJwQkJHc29BZ0FnQ0dzZ0RpZ0NORUVCSUFrZ0FXc1FJaUFvRUNjZ0poQVVEQVFMSUNnUUp5QW1FQlJCQUNFR0RBTUxJQ2dRSjBFQUlRWU1BZ3NnSXhBa1FRQUxJUVlnSGlnQ0lCQVVDeUFlUVVCckpBQWdCZzBBREFRTElCbEJ1QWhxSVJrZ0NrRTBhaUVLSUE1QnpBQnFJUTRnQzBFQmFpSUxJQlVvQWhCSkRRQUxJQnNvQWlBaEdTQWJLQUlVS0FJQUlSVUxBa0FnR1NnQ0VDSU9SUTBBSUJzb0FrUU5BQ0FWS0FJVUlnb29BaHdoQVFKQUFrQUNRQUpBQWtBZ0d5Z0NRQ0lHQkVBZ0ZTZ0NFQ0lMUVFOSkRRSUNRQ0FLS0FJWUlnY2dDaWdDWkVZRVFDQUhJQW9vQXJBQlJnMEJDeUF6UVFGQnhNNEFRUUFRRXd3SkN3SkFJQnNvQWhnb0FoZ2lDQ2dDSkNJSklBZ29BbGhIRFFBZ0NTQUlLQUtNQVVjTkFDQUJJQWRCbUFGc0lnaHFJZ0ZCakFGcktBSUFJQUZCbEFGcktBSUFheUFCUVpBQmF5Z0NBQ0FCUVpnQmF5Z0NBR3RzSWdFZ0NpZ0NhQ0FJYWlJSFFZd0JheWdDQUNBSFFaUUJheWdDQUdzZ0IwR1FBV3NvQWdBZ0IwR1lBV3NvQWdCcmJFY05BQ0FLS0FLMEFTQUlhaUlIUVl3QmF5Z0NBQ0FIUVpRQmF5Z0NBR3NnQjBHUUFXc29BZ0FnQjBHWUFXc29BZ0JyYkNBQlJnMENDeUF6UVFGQnhNNEFRUUFRRXd3SUN5QVZLQUlRSWd0QkEwa05BUUpBSUJzb0FoZ29BaGdpQnlnQ0pDSUlJQWNvQWxoSERRQWdDQ0FIS0FLTUFTSUpSdzBBSUFFZ0NFR1lBV3dpQjJvaUFTZ0NsQUVnQVNnQ2pBRnJJQUVvQXBBQklBRW9Bb2dCYTJ3aUFTQUhJQW9vQW1ocUlnY29BcFFCSUFjb0Fvd0JheUFIS0FLUUFTQUhLQUtJQVd0c1J3MEFJQW9vQXJRQklBbEJtQUZzYWlJSEtBS1VBU0FIS0FLTUFXc2dCeWdDa0FFZ0J5Z0NpQUZyYkNBQlJnMEJDeUF6UVFGQnhNNEFRUUFRRXd3SEN5QU9RUUpHQkVBZ0dTZ0M2Q3RGRFFVZ0MwRUNkQkFZSWd0RkRRY2dGU2dDRUNJSlJRMEVJQnNvQWtBRVFFRUFJUlVnQ1VFTFRRMERJQXBCSkdvaUNDQUxJQWxCQW5ScVNRUi9JQW9nQ1VITUFHeHFRU1JySUF0TEJVRUFDdzBESUFwQmlBSnFJUThnQ2tHOEFXb2hEQ0FLUWZBQWFpRVhJQW9nQ1VGOGNTSUdRY3dBYkdvaENrRUFJUTREUUNBTElBNUJBblJxSUE4Z0RrSE1BR3dpQjJvZ0J5QU1haUFISUJkcUlBY2dDR3I5WEFJQS9WWUNBQUg5VmdJQUF2MVdBZ0FEL1FzQ0FDQU9RUVJxSWc0Z0JrY05BQXNnQmlBSlJ3MEVEQVVMUVFBaEZRSkFJQWxCREVrRVFFRUFJUVlNQVFzZ0NrRTBhaUVJQWtBZ0N5QUtJQWxCekFCc2FrRVVhMDhOQUNBSUlBc2dDVUVDZEdwUERRQkJBQ0VHREFFTElBcEJtQUpxSVE4Z0NrSE1BV29oRENBS1FZQUJhaUVYSUFvZ0NVRjhjU0lHUWN3QWJHb2hDa0VBSVE0RFFDQUxJQTVCQW5ScUlBOGdEa0hNQUd3aUIyb2dCeUFNYWlBSElCZHFJQWNnQ0dyOVhBSUEvVllDQUFIOVZnSUFBdjFXQWdBRC9Rc0NBQ0FPUVFScUlnNGdCa2NOQUFzZ0JpQUpSZzBGQ3dKQUlBbEJBM0VpQjBVRVFDQUdJUTRNQVFzZ0JpRU9BMEFnQ3lBT1FRSjBhaUFLS0FJME5nSUFJQTVCQVdvaERpQUtRY3dBYWlFS0lCVkJBV29pRlNBSFJ3MEFDd3NnQmlBSmEwRjhTdzBFSUF0QkRHb2hCaUFMUVFocUlRZ2dDMEVFYWlFUEEwQWdDeUFPUVFKMElnZHFJQW9vQWpRMkFnQWdCeUFQYWlBS0tBS0FBVFlDQUNBSElBaHFJQW9vQXN3Qk5nSUFJQVlnQjJvZ0NpZ0NtQUkyQWdBZ0NrR3dBbW9oQ2lBT1FRUnFJZzRnQ1VjTkFBc01CQXNnR1NnQzBDc29BaFJCQVVZRVFDQUdCRUFnQ2lnQ0pDQUtLQUp3SUFvb0Fyd0JJQUVRYUF3R0N5QUtLQUkwSUFvb0FvQUJJQW9vQXN3QklBRVFhQXdGQ3lBR0JFQWdDaWdDSkNBS0tBSndJQW9vQXJ3QklBRVFad3dGQ3lBS0tBSTBJQW9vQW9BQklBb29Bc3dCSUFFUVp3d0VDeUEvSUFzMkFnQWdNMEVCUVlIUEFDQS9FQk1NQXd0QkFDRUdDd0pBSUFsQkEzRWlCMFVFUUNBR0lRNE1BUXNnQmlFT0EwQWdDeUFPUVFKMGFpQUtLQUlrTmdJQUlBNUJBV29oRGlBS1Fjd0FhaUVLSUJWQkFXb2lGU0FIUncwQUN3c2dCaUFKYTBGOFN3MEFJQXRCREdvaEJpQUxRUWhxSVFnZ0MwRUVhaUVQQTBBZ0N5QU9RUUowSWdkcUlBb29BaVEyQWdBZ0J5QVBhaUFLS0FKd05nSUFJQWNnQ0dvZ0NpZ0N2QUUyQWdBZ0JpQUhhaUFLS0FLSUFqWUNBQ0FLUWJBQ2FpRUtJQTVCQkdvaURpQUpSdzBBQ3dzZ0d5Z0NHQ2dDR0NnQ0lCb0NmeUFaS0FMb0t5RUhRUUFoRjBFQUlBbEJBM1FRR0NJT1JRMEFHZ0pBSUFGRkRRQWdDVVVOQUNBT0lBbEJBblJxSVJFZ0NVRjhjU0VOSUFsQkEzRWhHU0FKUVFGcklSQURRRUVBSVJWQkFDRUlJQkJCQTA4RVFBTkFJQTRnRlVFQ2RDSUdhaUFHSUF0cUtBSUFLZ0lBT0FJQUlBNGdCa0VFY2lJUGFpQUxJQTlxS0FJQUtnSUFPQUlBSUE0Z0JrRUljaUlQYWlBTElBOXFLQUlBS2dJQU9BSUFJQTRnQmtFTWNpSUdhaUFHSUF0cUtBSUFLZ0lBT0FJQUlCVkJCR29oRlNBSVFRUnFJZ2dnRFVjTkFBc0xRUUFoQ2lBWkJFQURRQ0FPSUJWQkFuUWlCbW9nQmlBTGFpZ0NBQ29DQURnQ0FDQVZRUUZxSVJVZ0NrRUJhaUlLSUJsSERRQUxDMEVBSVFZZ0J5RVZBMEFnRVNBR1FRSjBJaFJxSWdoQkFEWUNBRU1BQUFBQUlZUUJRUUFoQ2tFQUlROGdFRUVDU3dSQUEwQWdDQ0FWS2dJQUlBNGdDa0VDZEdvaURDb0NBSlFnaEFHU0lvUUJPQUlBSUFnZ0ZTb0NCQ0FNS2dJRWxDQ0VBWklpaEFFNEFnQWdDQ0FWS2dJSUlBd3FBZ2lVSUlRQmtpS0VBVGdDQUNBSUlCVXFBZ3dnRENvQ0RKUWdoQUdTSW9RQk9BSUFJQXBCQkdvaENpQVZRUkJxSVJVZ0QwRUVhaUlQSUExSERRQUxDMEVBSVF3Z0dRUkFBMEFnQ0NBVktnSUFJQTRnQ2tFQ2RHb3FBZ0NVSUlRQmtpS0VBVGdDQUNBS1FRRnFJUW9nRlVFRWFpRVZJQXhCQVdvaURDQVpSdzBBQ3dzZ0N5QVVhaUlJSUFnb0FnQWlDRUVFYWpZQ0FDQUlJSVFCT0FJQUlBWkJBV29pQmlBSlJ3MEFDeUFYUVFGcUloY2dBVWNOQUFzTElBNFFGRUVCQ3lBTEVCUkZEUUlMSUJzb0FoUW9BZ0FpRUNnQ0VFVUVRRUVCSVNJTUFnc2dHeWdDSUNnQzBDc2lGVUc0Q0dvaEZDQVZRYlFJYWlFVElCc29Ba1FoRVNBUUtBSVVJUWNnR3lnQ0dDZ0NHQ0VJUVFBaEZ3TkFBa0FnRVFSQUlCRWdGMEVDZEdvb0FnQkZEUUVMSUFjb0Fod2lBU0FJS0FJa1FaZ0JiR29oQ3dKL0lCc29Ba0JGQkVBZ0N5Z0NsQUVnQ3lnQ2pBRnJJUVlnQ3lnQ2tBRWdDeWdDaUFGcklRRkJBQ0VKUVRRTUFRc2dBU0FIS0FJWVFaZ0JiR29pQmtHUUFXc29BZ0FnQ3lnQ0NDQUxLQUlBYXlJQklBWkJtQUZyS0FJQWFtc2hDU0FMS0FJTUlBc29BZ1JySVFaQkpBc2hEeUFJS0FJWUlRc0NmeUFJS0FJZ0JFQkJBU0FMUVFGcmRDSUxRUUZySVE1QkFDQUxhd3dCQzBGL0lBdDBRWDl6SVE1QkFBc2hEU0FCUlEwQUlBWkZEUUFnQnlBUGFpZ0NBQ0VpSUJVb0FoUkJBVVlFUUNBVUlCZEJ1QWhzSWd0cUlSWWdDeUFUYWlFWUlBRkJBWEVoTXlBQlFRSjBJUjBnQVVGOGNTSVBRUUowSVNNZ0R2MFJJWGdnRGYwUklYWkJBQ0VNSUFGQkJFa2hId05BQWtBQ1FBSkFJQjhOQUNBWUlCMGdJbXBKSUJZZ0lrdHhEUUFnSWlBamFpRVpJQlg5Q1FLMENDRjVRUUFoQ3dOQUlDSWdDMEVDZEdvaUNpQjJJSGtnQ3YwQUFnRDlyZ0VpZWlCNC9iWUJJSG9nZHYwNS9WTDlDd0lBSUF0QkJHb2lDeUFQUncwQUN5QVBJZ3NnQVVZTkFnd0JDeUFpSVJsQkFDRUxDeUFMUVFGeUlRb2dNd1JBSUJrZ0RTQVZLQUswQ0NBWktBSUFhaUlMSUE0Z0N5QU9TQnNnQ3lBTlNCczJBZ0FnR1VFRWFpRVpJQW9oQ3dzZ0FTQUtSZzBBQTBBZ0dTQU5JQlVvQXJRSUlCa29BZ0JxSWdvZ0RpQUtJQTVJR3lBS0lBMUlHellDQUNBWklBMGdGU2dDdEFnZ0dTZ0NCR29pQ2lBT0lBb2dEa2diSUFvZ0RVZ2JOZ0lFSUJsQkNHb2hHU0FMUVFKcUlnc2dBVWNOQUFzTElCa2dDVUVDZEdvaElpQU1RUUZxSWd3Z0JrY05BQXNNQVFzZ0RxMGhmQ0FOckNHQUFVRUFJUXdEUUVFQUlRc0RRQ0FpQW44Z0RpQWlLZ0lBSW9RQlF3QUFBRTllRFFBYUlBMGdoQUZEQUFBQXoxME5BQm9nRFNBVk5BSzBDQUovSUlRQmtDS0VBWXREQUFBQVQxMEVRQ0NFQWFnTUFRdEJnSUNBZ0hnTHJId2lmU0I4SUh3Z2ZWVWJweUI5SUlBQlV4c0xOZ0lBSUNKQkJHb2hJaUFMUVFGcUlnc2dBVWNOQUFzZ0lpQUpRUUowYWlFaUlBeEJBV29pRENBR1J3MEFDd3NnQjBITUFHb2hCeUFWUWJnSWFpRVZJQWhCTkdvaENFRUJJU0lnRjBFQmFpSVhJQkFvQWhCSkRRQUxEQUVMUVFBaElpQUZRUUZCaHhwQkFCQVRDeUEvUVJCcUpBQWdJa1VFUUNCTkVEUWdBQ0FBS0FJSVFZQ0FBbkkyQWdnZ0JVRUJRWmJaQUVFQUVCTU1BUXNDUUNBQ1JRMEFBbjhnQWlFSFFRQWhCZ0pBSUFBb0F1Z0JJZ3BCQVJCZElnRkJmMFlOQUNBQklBTkxEUUJCQVNBS0tBSVlJZ0VvQWhCRkRRRWFJQUVvQWhnaER5QUtLQUlVS0FJQUtBSVVJUmNEUUNBUEtBSVlJZ0ZCQjNFaEFpQUJRUU4ySVFNZ0Z5Z0NIQ0lHSUE4b0FpUkJtQUZzYWlFQkFuOGdDaWdDUUFSQUlBWWdGeWdDR0VHWUFXeHFJZ1pCa0FGcktBSUFJQUVvQWdnZ0FTZ0NBR3NpQ0NBR1FaZ0JheWdDQUdwcklRd2dBU2dDRENBQktBSUVheUVPUVNRTUFRc2dBU2dDbEFFZ0FTZ0NqQUZySVE0Z0FTZ0NrQUVnQVNnQ2lBRnJJUWhCQUNFTVFUUUxJQmRxS0FJQUlRRUNRQUpBQWtBQ1FBSkFRUVFnQXlBQ1FRQkhhaUlDSUFKQkEwWWJRUUZyRGdRQkFnUUFCQXNnRGtVTkF5QUlJQXhxSVFZZ0NFRUNkQ0VDSUE1QkJFOEVRQ0FPUVh4eElRdEJBQ0VJQTBBZ0J5QUJJQUlRRmlFSElBRWdCa0VDZENJRGFpSUpJQU5xSWd3Z0Eyb2lGU0FEYWlFQklBSWdCMm9nQ1NBQ0VCWWdBbW9nRENBQ0VCWWdBbW9nRlNBQ0VCWWdBbW9oQnlBSVFRUnFJZ2dnQzBjTkFBc0xRUUFoQ0NBT1FRTnhJZ05GRFFNRFFDQUhJQUVnQWhBV0lRY2dBU0FHUVFKMGFpRUJJQUlnQjJvaEJ5QUlRUUZxSWdnZ0EwY05BQXNNQXdzZ0RrVWdDRVZ5SVFJZ0R5Z0NJRVVOQVNBQ0RRSWdDRUVDZENFVklBaEJmSEVpQTBFQ2RDRVpRUUFoQ1FOQUFrQUNRQUpBSUFoQkJFa05BQ0FCSUFjZ0NHcEpJQUVnRldvZ0IwdHhEUUFnQXlBSGFpQUJJQmxxSVFaQkFDRUxBMEFnQnlBTGFpQUJJQXRCQW5ScS9RQUNBUDBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBUDBOQUFRSURBQUFBQUFBQUFBQUFBQUFBUDFhQUFBQUlBdEJCR29pQ3lBRFJ3MEFDeUVISUFNaUFpQUlSZzBDREFFTElBRWhCa0VBSVFJTFFRQWhDeUFJSUFJaUFXdEJCM0VpRFFSQUEwQWdCeUFHS0FJQU9nQUFJQUZCQVdvaEFTQUhRUUZxSVFjZ0JrRUVhaUVHSUF0QkFXb2lDeUFOUncwQUN3c2dBaUFJYTBGNFN3MEFBMEFnQnlBR0tBSUFPZ0FBSUFjZ0JpZ0NCRG9BQVNBSElBWW9BZ2c2QUFJZ0J5QUdLQUlNT2dBRElBY2dCaWdDRURvQUJDQUhJQVlvQWhRNkFBVWdCeUFHS0FJWU9nQUdJQWNnQmlnQ0hEb0FCeUFIUVFocUlRY2dCa0VnYWlFR0lBRkJDR29pQVNBSVJ3MEFDd3NnQmlBTVFRSjBhaUVCSUFsQkFXb2lDU0FPUncwQUN3d0NDeUFPUlNBSVJYSWhBaUFQS0FJZ0JFQWdBZzBDSUFoQkFuUWhGU0FJUVFGMElSa2dDRUY4Y1NJRFFRSjBJUTBnQTBFQmRDRVFRUUFoQ1FOQUFrQUNRQUpBSUFoQkJFa05BQ0FCSUFjZ0dXcEpJQUVnRldvZ0IwdHhEUUFnQVNBTmFpRUdJQWNnRUdwQkFDRUxBMEFnQnlBTFFRRjBhaUFCSUF0QkFuUnEvUUFDQVAwTUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAwTkFBRUVCUWdKREEwQUFRQUJBQUVBQWYxYkFRQUFJQXRCQkdvaUN5QURSdzBBQ3lFSElBTWlBaUFJUmcwQ0RBRUxJQUVoQmtFQUlRSUxRUUFoQ3lBSUlBSWlBV3RCQjNFaUVRUkFBMEFnQnlBR0tBSUFPd0VBSUFGQkFXb2hBU0FIUVFKcUlRY2dCa0VFYWlFR0lBdEJBV29pQ3lBUlJ3MEFDd3NnQWlBSWEwRjRTdzBBQTBBZ0J5QUdLQUlBT3dFQUlBY2dCaWdDQkRzQkFpQUhJQVlvQWdnN0FRUWdCeUFHS0FJTU93RUdJQWNnQmlnQ0VEc0JDQ0FISUFZb0FoUTdBUW9nQnlBR0tBSVlPd0VNSUFjZ0JpZ0NIRHNCRGlBSFFSQnFJUWNnQmtFZ2FpRUdJQUZCQ0dvaUFTQUlSdzBBQ3dzZ0JpQU1RUUowYWlFQklBbEJBV29pQ1NBT1J3MEFDd3dDQ3lBQ0RRRWdDRUVDZENFVklBaEJBWFFoR1NBSVFYeHhJZ05CQW5RaERTQURRUUYwSVJCQkFDRUpBMEFDUUFKQUFrQWdDRUVFU1EwQUlBRWdCeUFaYWtrZ0FTQVZhaUFIUzNFTkFDQUJJQTFxSVFZZ0J5QVFha0VBSVFzRFFDQUhJQXRCQVhScUlBRWdDMEVDZEdyOUFBSUEvUXdBQUFBQUFBQUFBQUFBQUFBQUFBQUEvUTBBQVFRRkNBa01EUUFCQUFFQUFRQUIvVnNCQUFBZ0MwRUVhaUlMSUFOSERRQUxJUWNnQXlJQ0lBaEdEUUlNQVFzZ0FTRUdRUUFoQWd0QkFDRUxJQWdnQWlJQmEwRUhjU0lSQkVBRFFDQUhJQVlvQWdBN0FRQWdBVUVCYWlFQklBZEJBbW9oQnlBR1FRUnFJUVlnQzBFQmFpSUxJQkZIRFFBTEN5QUNJQWhyUVhoTERRQURRQ0FISUFZb0FnQTdBUUFnQnlBR0tBSUVPd0VDSUFjZ0JpZ0NDRHNCQkNBSElBWW9BZ3c3QVFZZ0J5QUdLQUlRT3dFSUlBY2dCaWdDRkRzQkNpQUhJQVlvQWhnN0FRd2dCeUFHS0FJY093RU9JQWRCRUdvaEJ5QUdRU0JxSVFZZ0FVRUlhaUlCSUFoSERRQUxDeUFHSUF4QkFuUnFJUUVnQ1VFQmFpSUpJQTVIRFFBTERBRUxJQUlOQUNBSVFRSjBJUlVnQ0VGOGNTSURRUUowSVJsQkFDRUpBMEFDUUFKQUFrQWdDRUVFU1EwQUlBRWdCeUFJYWtrZ0FTQVZhaUFIUzNFTkFDQURJQWRxSUFFZ0dXb2hCa0VBSVFzRFFDQUhJQXRxSUFFZ0MwRUNkR3I5QUFJQS9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQS9RMEFCQWdNQUFBQUFBQUFBQUFBQUFBQS9Wb0FBQUFnQzBFRWFpSUxJQU5IRFFBTElRY2dBeUlDSUFoR0RRSU1BUXNnQVNFR1FRQWhBZ3RCQUNFTElBZ2dBaUlCYTBFSGNTSU5CRUFEUUNBSElBWW9BZ0E2QUFBZ0FVRUJhaUVCSUFkQkFXb2hCeUFHUVFScUlRWWdDMEVCYWlJTElBMUhEUUFMQ3lBQ0lBaHJRWGhMRFFBRFFDQUhJQVlvQWdBNkFBQWdCeUFHS0FJRU9nQUJJQWNnQmlnQ0NEb0FBaUFISUFZb0FndzZBQU1nQnlBR0tBSVFPZ0FFSUFjZ0JpZ0NGRG9BQlNBSElBWW9BaGc2QUFZZ0J5QUdLQUljT2dBSElBZEJDR29oQnlBR1FTQnFJUVlnQVVFSWFpSUJJQWhIRFFBTEN5QUdJQXhCQW5ScUlRRWdDVUVCYWlJSklBNUhEUUFMQ3lBWFFjd0FhaUVYSUE5Qk5Hb2hEMEVCSVFZZ2RVRUJhaUoxSUFvb0FoZ29BaEJKRFFBTEN5QUdDMFVOQVNCTktBTGNLeUlCUlEwQUlBRVFGQ0JOUWdBM0F0d3JDeUFBSUFBdEFGeEIvZ0Z4T2dCY0lBQWdBQ2dDQ0VIL2ZuRTJBZ2hCQVNGbElBUXBBd2dpZkZBRWZrSUFCU0I4SUFRcEF6aDlDMUFnQUNnQ0NDSUJRY0FBUm5FTkFDQUJRWUFDUmcwQUlBUWdURUVLYWtFQ0lBVVFIVUVDUndSQUlBVkJBVUVDSUFBb0F0QUJHMEdERTBFQUVCTWdBQ2dDMEFGRklXVU1BUXNnVEVFS2FpQk1RUXhxUVFJUUZTQk1LQUlNSWdGQmtQOERSZzBBSUFGQjJmOERSZ1JBSUFCQmdBSTJBZ2dnQUVFQU5nTGtBUXdCQ3lBRUtRTUlJbnhRQkg1Q0FBVWdmQ0FFS1FNNGZRdFFCRUFnQUVIQUFEWUNDQ0FGUVFKQnZzRUFRUUFRRXd3QkMwRUFJV1VnQlVFQlFjM0FBRUVBRUJNTElFeEJFR29rQUNCbEN3c0FJQUFFUUNBQUVCUUxDN1FCQVFGL0lBQW9BZ3hGQkVBZ0FpQUFLQUlrSUFFUkF3QVBDd0pBUVFnUUdDSURSUTBBSUFNZ0FqWUNCQ0FESUFFMkFnQkJDQkFZSWdGRkJFQWdBeEFVRHdzZ0FTQUROZ0lBSUFBZ0FDZ0NCRUhrQUd3aUFqWUNLQU5BSUFBb0FoZ2dBa29OQUFzZ0FTQUFLQUlVTmdJRUlBQWdBVFlDRkNBQUlBQW9BaGhCQVdvMkFoZ2dBQ2dDSENJQlJRMEFJQUVvQWdCQkFEWUNDQ0FBSUFFb0FnUTJBaHdnQUNBQUtBSWdRUUZyTmdJZ0lBRVFGQXNMK2dJQkJIOENRQ0FBUlEwQUlBQW9BcXdvSWdFRVFDQUFLQUtvS0NJQ0JFQkJBQ0VCQTBBZ0FDZ0NyQ2dnQVVFRGRHb29BZ0FpQXdSQUlBTVFGQ0FBS0FLb0tDRUNDeUFCUVFGcUlnRWdBa2tOQUFzZ0FDZ0NyQ2doQVFzZ0FFRUFOZ0tvS0NBQkVCUWdBRUVBTmdLc0tBc2dBQ2dDdENnaUFRUkFJQUVRRkNBQVFRQTJBclFvQ3lBQUtBTFFLeUlCQkVBZ0FSQVVJQUJCQURZQzBDc0xJQUFvQXV3cklnRUVRQ0FCRUJRZ0FFRUFOZ0xzS3dzZ0FDZ0M2Q3NpQVFSQUlBRVFGQ0FBUVFBMkF1Z3JDeUFBS0FMOEt5SUJCRUFnQVJBVUlBQkJBRFlDaEN3Z0FFSUFOd0w4S3dzZ0FDZ0M4Q3NpQVFSQUlBQW9BdlFySWdNRWYwRUFJUUlEUUNBQktBSU1JZ1FFUUNBRUVCUWdBVUVBTmdJTUlBQW9BdlFySVFNTElBRkJGR29oQVNBQ1FRRnFJZ0lnQTBrTkFBc2dBQ2dDOENzRklBRUxFQlFnQUVFQU5nTHdLd3NnQUNnQzVDc2lBUVJBSUFFUUZDQUFRUUEyQXVRckN5QUFLQUxjS3lJQlJRMEFJQUVRRkNBQVFnQTNBdHdyQ3d1d0J3SUxmd0YrSUFBb0FoQWlDRUVnVHdSQUlBQXBBd2luRHdzQ1FDQUFLQUlVSWdOQkJFNEVRQ0FBS0FJQUlnSkJBMnNvQWdBaEFTQUFJQU5CQkdzaUF6WUNGQ0FBSUFKQkJHczJBZ0FNQVFzZ0EwRUFUQVJBREFFTElBTkJBWEVnQUNnQ0FDRUNBa0FnQTBFQlJnUkFRUmdoQkF3QkN5QURRZjcvLy84SGNTRUpRUmdoQkFOQUlBQWdBa0VCYXlJR05nSUFJQUl0QUFBZ0FDQUNRUUpySWdJMkFnQWdBQ0FEUVFGck5nSVVJQVl0QUFBaEJpQUFJQU5CQW1zaUF6WUNGQ0FFZENBQmNpQUdJQVJCQ0d0MGNpRUJJQVJCRUdzaEJDQUZRUUpxSWdVZ0NVY05BQXNMQkVBZ0FDQUNRUUZyTmdJQUlBSXRBQUFnQUNBRFFRRnJOZ0lVSUFSMElBRnlJUUVMUVFBaEF3c2dBQ2dDR0NFQ0lBQWdBVUgvQVhFaUNVR1BBVXMyQWhnZ0FFRUhRUWdnQVVHQWdJRDRCM0ZCZ0lDQStBZEdHMEVJSUFJYklnSkJDRUVIUVFnZ0FVR0FnUHdEY1VHQWdQd0RSaHNnQVVILy8vLy9lRTBiYWlJRVFRaEJCMEVJSUFGQmdQNEJjVUdBL2dGR0d5QUJRUkIyUWY4QmNTSUZRWThCVFJ0cUlnWkJDRUVIUVFnZ0FVSC9BSEZCL3dCR0d5QUJRUWgyUWY4QmNTSUhRWThCVFJzZ0NHcHFJZ28yQWhBZ0FDQUFLUU1JSUFVZ0FuUWdBVUVZZG5JZ0J5QUVkSElnQ1NBR2RIS3RJQWl0aG9RaUREY0RDQ0FLUVI5TkJFQUNRQ0FEUVFST0JFQWdBQ2dDQUNJQ1FRTnJLQUlBSVFFZ0FDQURRUVJyTmdJVUlBQWdBa0VFYXpZQ0FBd0JDeUFEUVFCTUJFQkJBQ0VCREFFTElBTkJBWEVnQUNnQ0FDRUNBa0FnQTBFQlJnUkFRUmdoQkVFQUlRRU1BUXNnQTBIKy8vLy9CM0VoQmtFWUlRUkJBQ0VCUVFBaEJRTkFJQUFnQWtFQmF5SUhOZ0lBSUFJdEFBQWdBQ0FDUVFKcklnSTJBZ0FnQUNBRFFRRnJOZ0lVSUFjdEFBQWhCeUFBSUFOQkFtc2lBellDRkNBRWRDQUJjaUFISUFSQkNHdDBjaUVCSUFSQkVHc2hCQ0FGUVFKcUlnVWdCa2NOQUFzTFJRMEFJQUFnQWtFQmF6WUNBQ0FDTFFBQUlBQWdBMEVCYXpZQ0ZDQUVkQ0FCY2lFQkN5QUFJQUZCL3dGeElnSkJqd0ZMTmdJWUlBQkJDRUVIUVFnZ0FVR0FnSUQ0QjNGQmdJQ0ErQWRHR3lBSlFZOEJUUnNpQTBFSVFRZEJDQ0FCUVlDQS9BTnhRWUNBL0FOR0d5QUJRZi8vLy85NFRSdHFJZ1JCQ0VFSFFRZ2dBVUdBL2dGeFFZRCtBVVliSUFGQkVIWkIvd0Z4SWdWQmp3Rk5HMm9pQ0VFSVFRZEJDQ0FCUWY4QWNVSC9BRVliSUFGQkNIWkIvd0Z4SWdsQmp3Rk5HeUFLYW1vMkFoQWdBQ0FGSUFOMElBRkJHSFp5SUFrZ0JIUnlJQUlnQ0hSeXJTQUtyWVlnRElRaUREY0RDQXNnREtjTHdSUUNHMzhHZXlBQUtBSUlJZ29nQUNnQ0JHb2hDQUpBSUFBb0FneEZCRUFnQ0VFQ1NBMEJJQU5CQUV3TkFTQUFLQUlBSWdVZ0NFRUVheUlHUVFGMklneEJBblFpQ1NBQklBcEJBblJxSWdjZ0EwRUNkQ0lFYW1wQkJHcEpJQVVnREVFRGRHcEJDR29pQUNBSFFRUnFTM0VnQlNBQklBUnFJQWxxUVFScVNTQUJRUVJxSUFCSmNYSWhFaUFJUVFSSkloUWdBa0VCUjNJaEZTQUNRUUZHSUFaQkJVdHhJUllnQ0VIOC8vLy9CM0VoRXlBSVFRRnhJUmNnQ2tFQmFpRVBJQWhCQTNFaEVTQUJJQVZySVJnZ0JTQUlRUUowYWlFWklBVWdDRUVCYXlJQVFRSjBhaUVhSUF4QkFXb2lHMEY4Y1NJUVFRRjBJUXNnQWlBS2JFRUNkQ0VjSUFCQkFYWWdBbXhCQW5RaEhRTkFJQUVvQWdBZ0FTQWNhaWdDQUNJSlFRRnFRUUYxYXlFSEFrQWdGQVJBSUFraEJFRUFJUVlNQVF0QkFDRUdBa0FDZjBFQUlCWkZEUUFhUVFBZ0VnMEFHaUFKL1JFaElDQUgvUkVoSC8wTUFBQUFBQUlBQUFBRUFBQUFCZ0FBQUNFalFRQWhBQU5BSUFFZ0FFRUNkR3I5QUFJRUlTSWdBU0FBSUE5cVFRSjBhdjBBQWdBaElTQUZJQUJCQTNScUlnUWdILzFhQWdBRElBUkJDR29nSWlBaElDQWdJZjBOREEwT0R4QVJFaE1VRlJZWEdCa2FHeUlpL2E0Qi9Rd0NBQUFBQWdBQUFBSUFBQUFDQUFBQS9hNEJRUUw5ckFIOXNRRWlJUDFhQWdBQUlBUkJFR29nSVAxYUFnQUJJQVJCR0dvZ0lQMWFBZ0FDSUFVZ0kvME1BUUFBQUFFQUFBQUJBQUFBQVFBQUFQMVFJaVQ5R3dCQkFuUnFJQ0FnSHlBZy9RME1EUTRQRUJFU0V4UVZGaGNZR1JvYi9hNEJRUUg5ckFFZ0l2MnVBU0lmL1ZvQ0FBQWdCU0FrL1JzQlFRSjBhaUFmL1ZvQ0FBRWdCU0FrL1JzQ1FRSjBhaUFmL1ZvQ0FBSWdCU0FrL1JzRFFRSjBhaUFmL1ZvQ0FBTWdJLzBNQ0FBQUFBZ0FBQUFJQUFBQUNBQUFBUDJ1QVNFaklDQWhIeUFoSVNBZ0FFRUVhaUlBSUJCSERRQUxJQ0Q5R3dNaEJDQWYvUnNESVFjZ0VDQWJSZzBCSUFzaEJpQUVJUWtnRUFzaEFBTkFJQUVnQUVFQmFpSUtJQUpzUVFKMGFpZ0NBQ0VlSUFFZ0FDQVBhaUFDYkVFQ2RHb29BZ0FoQkNBRklBWkJBblJxSWc0Z0J6WUNBQ0FPSUFjZ0hpQUVJQWxxUVFKcVFRSjFheUlIYWtFQmRTQUphallDQkNBR1FRSnFJUVlnQUNBTVJ5QUVJUWtnQ2lFQURRQUxEQUVMSUFzaEJnc2dCU0FHUVFKMGFpQUhOZ0lBUVh3aEFDQVhCSDhnR2lBQklCMXFLQUlBSUFSQkFXcEJBWFZySWdBMkFnQWdBQ0FIYWtFQmRTRUhRWGdGUVh3TElCbHFJQVFnQjJvMkFnQkJBQ0VHUVFBaEFFRUFJUVFDUUNBVklCZ2dEVUVDZEdwQkVFbHlSUVJBQTBBZ0FTQUFRUUowSWdScUlBUWdCV3I5QUFJQS9Rc0NBQ0FBUVFScUlnQWdFMGNOQUFzZ0V5SUVJQWhHRFFFTElBUWhBQ0FSQkVBRFFDQUJJQUFnQW14QkFuUnFJQVVnQUVFQ2RHb29BZ0EyQWdBZ0FFRUJhaUVBSUFaQkFXb2lCaUFSUncwQUN3c2dCQ0FJYTBGOFN3MEFBMEFnQVNBQUlBSnNRUUowYWlBRklBQkJBblJxS0FJQU5nSUFJQUVnQUVFQmFpSUVJQUpzUVFKMGFpQUZJQVJCQW5ScUtBSUFOZ0lBSUFFZ0FFRUNhaUlFSUFKc1FRSjBhaUFGSUFSQkFuUnFLQUlBTmdJQUlBRWdBRUVEYWlJRUlBSnNRUUowYWlBRklBUkJBblJxS0FJQU5nSUFJQUJCQkdvaUFDQUlSdzBBQ3dzZ0FVRUVhaUVCSUExQkFXb2lEU0FEUncwQUN3d0JDd0pBQWtBQ1FDQUlRUUZyRGdJQUFRSUxJQU5CQUV3TkFrRUFJUUlDUUNBRFFRUkpCRUFnQVNFQURBRUxJQUVnQTBIOC8vLy9CM0VpQWtFQ2RHb2hBQU5BSUFFZ0JrRUNkR29pQkNBRS9RQUNBQ0lmL1JzQVFRSnQvUkVnSC8wYkFVRUNiZjBjQVNBZi9Sc0NRUUp0L1J3Q0lCLzlHd05CQW0zOUhBUDlDd0lBSUFaQkJHb2lCaUFDUncwQUN5QUNJQU5HRFFNTEEwQWdBQ0FBS0FJQVFRSnROZ0lBSUFCQkJHb2hBQ0FDUVFGcUlnSWdBMGNOQUFzTUFnc2dBMEVBVEEwQklBQW9BZ0FoQ1NBQ0lBcHNRUUowSVFjRFFDQUpJQUVvQWdBZ0FTQUhhaUlFS0FJQVFRRnFRUUYxYXlJQU5nSUVJQWtnQUNBRUtBSUFhaUlBTmdJQUlBRWdBRFlDQUNBQklBSkJBblJxSUFrb0FnUTJBZ0FnQVVFRWFpRUJJQVpCQVdvaUJpQURSdzBBQ3d3QkN5QUlRUU5JRFFBZ0EwRUFUQTBBSUFBb0FnQWlCU0FJSUFoQkFYRWlGRVVpQm10QkJHc2lDVUVCZGlJTFFRSjBJZ2NnQVNBRFFRSjBJZ0JxYWtrZ0JTQUxRUU4wYWtFTWFpSUVJQUZCQkdwTGNTQUZRUVJxSUFBZ0FTQUtRUUowYWlJQWFpQUhha0VJYWtrZ0FFRUlhaUFFU1hGeUlSVWdBa0VCUnlBSVFRUkpjaUVXSUFKQkFVWWdDVUVGUzNFaEZ5QUlRZnovLy84SGNTRVFJQWhCQTNFaEVTQUJJQVZySVJnZ0JTQUlRUUowYWtFRWF5RVpJQVVnQ0VFQ2F5SUFRUUowYWlFYUlBdEJBV29pRWtGOGNTSU1RUUZ5SVJNZ0RFRUJkRUVCY2lFTElBSWdDbXhCQW5RaEd5QUFJQVpyUVFKSklSd2dDRUVCZGtFQmF5QUNiRUVDZENFZEEwQWdCU0FCS0FJQUlBRWdHMm9pRHlBQ1FRSjBhaWdDQUNJSklBOG9BZ0FpQUdwQkFtcEJBblZySWdjZ0FHbzJBZ0JCQVNFRUFrQWdIQVJBSUFraEJnd0JDd0pBQW45QkFTQVhSUTBBR2tFQklCVU5BQm9nQ2YwUklSOGdCLzBSSVNCQkFDRUFBMEFnQlNBQVFRTjBhaUlISUFFZ0FFRUNkQ0lFYXYwQUFnUWdIeUFFSUE5cS9RQUNDQ0lmL1EwTURRNFBFQkVTRXhRVkZoY1lHUm9iSWlJZ0gvMnVBZjBNQWdBQUFBSUFBQUFDQUFBQUFnQUFBUDJ1QVVFQy9hd0IvYkVCSWlFZ0lTQWdJQ0g5RFF3TkRnOFFFUklURkJVV0Z4Z1pHaHY5cmdGQkFmMnNBU0FpL2E0QklpTDlEUVFGQmdjWUdSb2JDQWtLQ3h3ZEhoLzlDd0lVSUFjZ0lDQWkvUTBNRFE0UEVCRVNFd0FCQWdNVUZSWVhJQ0g5RFFBQkFnTUVCUVlIRUJFU0V3d05EZy85Q3dJRUlDRWhJQ0FBUVFScUlnQWdERWNOQUFzZ0gvMGJBeUVHSUNEOUd3TWhCeUFNSUJKR0RRRWdDeUVFSUFZaENTQVRDeUVBQTBBZ0FTQUFJQUpzUVFKMGFpZ0NBQ0VlSUE4Z0FFRUJhaUlLSUFKc1FRSjBhaWdDQUNFR0lBVWdCRUVDZEdvaURpQUhOZ0lBSUE0Z0J5QWVJQVlnQ1dwQkFtcEJBblZySWdkcVFRRjFJQWxxTmdJRUlBUkJBbW9oQkNBQUlCSkhJQW9oQUNBR0lRa05BQXNNQVFzZ0N5RUVDeUFZSUExQkFuUnFJUWtnQlNBRVFRSjBhaUFITmdJQUFrQWdGRVVFUUNBYUlBRWdIV29vQWdBZ0JrRUJha0VCZFdzaUFDQUhha0VCZFNBR2FqWUNBQXdCQ3lBR0lBZHFJUUFMSUJrZ0FEWUNBRUVBSVFaQkFDRUFRUUFoQkFKQUlCWWdDVUVRU1hKRkJFQURRQ0FCSUFCQkFuUWlCR29nQkNBRmF2MEFBZ0Q5Q3dJQUlBQkJCR29pQUNBUVJ3MEFDeUFRSWdRZ0NFWU5BUXNnQkNFQUlCRUVRQU5BSUFFZ0FDQUNiRUVDZEdvZ0JTQUFRUUowYWlnQ0FEWUNBQ0FBUVFGcUlRQWdCa0VCYWlJR0lCRkhEUUFMQ3lBRUlBaHJRWHhMRFFBRFFDQUJJQUFnQW14QkFuUnFJQVVnQUVFQ2RHb29BZ0EyQWdBZ0FTQUFRUUZxSWdRZ0FteEJBblJxSUFVZ0JFRUNkR29vQWdBMkFnQWdBU0FBUVFKcUlnUWdBbXhCQW5ScUlBVWdCRUVDZEdvb0FnQTJBZ0FnQVNBQVFRTnFJZ1FnQW14QkFuUnFJQVVnQkVFQ2RHb29BZ0EyQWdBZ0FFRUVhaUlBSUFoSERRQUxDeUFCUVFScUlRRWdEVUVCYWlJTklBTkhEUUFMQ3dzekFRRi9Jd0JCRUdzaUFTUUFJQUFFZnlBQlFReHFRU0FnQUJCNUlRQkJBQ0FCS0FJTUlBQWJCVUVBQ3lBQlFSQnFKQUFMR3dFQmZ5QUFCRUFnQUNnQ0NDSUJCRUFnQVJBVUN5QUFFQlFMQ3pFQkFuOUJBVUVNRUJjaUFBUkFJQUJCQ2pZQ0JDQUFRUXBCQkJBWElnRTJBZ2dnQVFSQUlBQVBDeUFBRUJRTFFRQUxTQUVDZndKL0lBRkJIMDBFUUNBQUtBSUFJUUlnQUVFRWFnd0JDeUFCUVNCcklRRWdBQXNvQWdBaEF5QUFJQUlnQVhRMkFnQWdBQ0FESUFGMElBSkJJQ0FCYTNaeU5nSUVDNjhDQVFaL0l3QkI4QUZySWdZa0FDQUdJQUkyQXV3QklBWWdBVFlDNkFFZ0JpQUFOZ0lBSUFSRklRa0NRQUpBQWtBQ1FDQUJRUUZIQkVBZ0FDRUhRUUVoQ0F3QkN5QUFJUWRCQVNFSUlBSU5BQ0FBSVFRTUFRc0RRQ0FISUFVZ0EwRUNkR29pQ2lnQ0FHc2lCQ0FBRUN0QkFFd0VRQ0FISVFRTUFnc2dDVUYvY3lFTFFRRWhDUUpBSUFzZ0EwRUNTSEpCQVhGRkJFQWdDa0VJYXlnQ0FDRUtJQWRCQ0dzaUN5QUVFQ3RCQUU0TkFTQUxJQXBySUFRUUswRUFUZzBCQ3lBR0lBaEJBblJxSUFRMkFnQWdCa0hvQVdvZ0FTQUNFSGNpQVJBOElBaEJBV29oQ0NBQklBTnFJUU1nQmlnQzdBRWhBaUFFSVFjZ0JpZ0M2QUVpQVVFQlJ3MEJJQUlOQVF3REN3c2dCeUVFREFFTElBbEZEUUVMSUFZZ0NCQjJJQVFnQXlBRkVFUUxJQVpCOEFGcUpBQUxTd0VDZnlBQUtBSUVJUUlnQUFKL0lBRkJIMDBFUUNBQUtBSUFJUU1nQWd3QkN5QUJRU0JySVFFZ0FpRURRUUFMSWdJZ0FYWTJBZ1FnQUNBQ1FTQWdBV3QwSUFNZ0FYWnlOZ0lBQ3k4QkFYOGdBQVJBSUFBb0FnUWlBUVJBSUFBb0FnQWdBUkVDQUFzZ0FDZ0NJQkFVSUFCQkFEWUNJQ0FBRUJRTEN5b0FJQUFFUUNBQUtBSXdJQUJCRkVFUUlBQW9Ba3diYWlnQ0FCRUNBQ0FBUVFBMkFqQWdBQkFVQ3d1R0F3SUZmd3ArSXdCQklHc2lBeVFBQWtBZ0FDZ0NFQ0lGUlFSQVFRRWhBZ3dCQ3dKQUlBQTBBZ0FpQjBJQVV3MEFJQUEwQWdRaUNFSUFVdzBBSUFBMEFnZ2lDVUlBVXcwQUlBQTBBZ3dpQ2tJQVV3MEFJQUFvQWhnaEFDQUhRZ0Y5SVF3Z0NFSUJmU0VOSUFsQ0FYMGhDU0FLUWdGOUlRb0RRQ0FBSUF3Z0FDZ0NBQ0lDclNJSGZDQUhnQ0lMUGdJUUlBQWdEU0FBS0FJRUlnYXRJZ2Q4SUFlQUlnNCtBaFJDQVNBQU5RSW9JZ2VHSWc5Q0FYMGlDQ0FKSUFLc0loQjhJQkIveEh3Z0I0ZW5JQWdnQzhSOElBZUhwMnNpQWtFQVNBUkFJQU1nQWpZQ0JDQURJQVEyQWdBZ0FVRUJRYUhwQUNBREVCTkJBQ0VDREFNTElBQWdBallDQ0NBSUlBb2dCcXdpQzN3Z0MzL0VmQ0FIaDZjZ0RzUWdEM3hDQVgwZ0I0ZW5heUlDUVFCSUJFQWdBeUFDTmdJVUlBTWdCRFlDRUNBQlFRRkI1dWtBSUFOQkVHb1FFMEVBSVFJTUF3c2dBQ0FDTmdJTUlBQkJOR29oQUVFQklRSWdCRUVCYWlJRUlBVkhEUUFMREFFTElBRkJBVUdiTkVFQUVCTUxJQU5CSUdva0FDQUNDLzBHQVFaL0lBQUVRQUpBSUFBb0FnQUVRQ0FBS0FJTUlnRUVRQ0FCRURRZ0FDZ0NEQkFVSUFCQkFEWUNEQXNnQUNnQ0VDSUJCRUFnQVJBVUlBQkNBRGNERUFzZ0FDZ0NRQkFVSUFCQ0FEY0NQQ0FBS0FKSUVCUWdBRUVBTmdKSUlBQW9BbGdRRkNBQVFRQTJBbGdNQVFzZ0FDZ0NMQ0lCQkVBZ0FSQVVJQUJCQURZQ0xBc2dBQ2dDSUNJQkJFQWdBUkFVSUFCQ0FEY0RJQXNnQUNnQ05DSUJSUTBBSUFFUUZDQUFRZ0EzQWpRTElBQW9BdWdCRUY0Z0FDZ0N0QUVpQVFSQUlBQW9Bb0FCSUFBb0FvUUJiQ0lEQkg4RFFDQUJFRFFnQVVHTUxHb2hBU0FDUVFGcUlnSWdBMGNOQUFzZ0FDZ0N0QUVGSUFFTEVCUWdBRUVBTmdLMEFRc2dBQ2dDakFFaUFRUkFJQUFvQW9nQklnSUVRRUVBSVFFRFFDQUFLQUtNQVNBQlFRTjBhaWdDQUNJREJFQWdBeEFVSUFBb0FvZ0JJUUlMSUFGQkFXb2lBU0FDU1EwQUN5QUFLQUtNQVNFQkN5QUFRUUEyQW9nQklBRVFGQ0FBUVFBMkFvd0JDeUFBS0FLZ0FSQVVJQUJCQURZQ2tBRWdBRUVBTmdLZ0FTQUFLQUo4RUJRZ0FFRUFOZ0o4SUFBdEFOUUJRUUp4UlFSQUlBQW9Bc0FCRUJRTElBQkI2QUJxUVFCQjhBQVFHUm9nQUNnQzJBRVFPQ0FBUVFBMkF0Z0JJQUFvQXR3QkVEZ2dBRUVBTmdMWUFTQUFLQUxnQVNJQkJFQWdBU2dDSENJQ0JFQWdBaEFVSUFGQkFEWUNIQXNnQVNnQ0tDSUNCRUFnQVNnQ0pBUkFBMEFnQWlBRlFTaHNJZ05xS0FJa0lnUUVRQ0FFRUJRZ0FTZ0NLQ0lDSUFOcVFRQTJBaVFMSUFJZ0Eyb29BaEFpQkFSQUlBUVFGQ0FCS0FJb0lnSWdBMnBCQURZQ0VBc2dBaUFEYWlnQ0dDSUVCRUFnQkJBVUlBRW9BaWdpQWlBRGFrRUFOZ0lZQ3lBRlFRRnFJZ1VnQVNnQ0pFa05BQXNMSUFJUUZDQUJRUUEyQWlnTElBRVFGQXNnQUVFQU5nTGdBU0FBS0FKZ0VDVWdBRUVBTmdKZ0lBQW9BbVFRSlNBQVFRQTJBbVFnQUNnQzdBRWlBd1JBQWtBZ0F5Z0NDRVVOQUNBREtBSU1CRUFnQTBFQU5nSW9BMEFnQXlnQ0dFRUFTZzBBQ3dzZ0EwRUJOZ0lRSUFNb0FnQVFGQ0FES0FJY0lnSkZEUUFEUUNBQ0tBSUVJUUVnQWhBVUlBTWdBVFlDSENBQklnSU5BQXNMSUFNb0FpUWlBZ1JBSUFJb0FnUWlCVUVBU2dSQVFRQWhBUU5BSUFJb0FnQWdBVUVNYkdvaUJDZ0NDQ0lHQkVBZ0JDZ0NCQ0FHRVFJQUlBSW9BZ1FoQlFzZ0FVRUJhaUlCSUFWSURRQUxDeUFDS0FJQUVCUWdBaEFVQ3lBREVCUUxJQUJCQURZQzdBRWdBQkFVQ3d2bUF3SUlmd1IrSUFBb0FoUW9BZ0FvQWhRZ0FVSE1BR3hxSWdrb0Fnd2lDQ0FBS0FJWUtBSVlJQUZCTkd4cUlnbzFBZ1FpRUVJQmZTSVNJQUExQWp4OElCQ0FweUlMSUFnZ0Mwa2JJUXdnQ1NnQ0NDSUlJQW8xQWdBaUVVSUJmU0lUSUFBMUFqaDhJQkdBcHlJS0lBZ2dDa2tiSVFvZ0NTZ0NCQ0lJSUJJZ0FEVUNOSHdnRUlDbklnc2dDQ0FMU3hzaEN5QUpLQUlBSWdnZ0V5QUFOUUl3ZkNBUmdLY2lEU0FJSUExTEd5RU5RUUFoQ0NBQUtBSWdLQUxRS3lBQlFiZ0liR29vQWhRaERnSkFJQWtvQWhSQkFDQUNhMEYvSUFJYmFpSUNSUVJBSUFvaEFDQU5JUWdnQ3lFQkRBRUxJQU5CQVhFZ0FrRUJheUlQZENJSklBMUpCRUFnRFNBSmE2MUNmeUFDclNJUWhrSi9oWHdnRUlpbklRZ0xRUUFoQUVFQUlRRWdBMEVCZGlBUGRDSURJQXRKQkVBZ0N5QURhNjFDZnlBQ3JTSVFoa0ovaFh3Z0VJaW5JUUVMSUFrZ0Nra0VRQ0FLSUFscnJVSi9JQUt0SWhDR1FuK0ZmQ0FRaUtjaEFBc2dBeUFNVHdSQVFRQWhEQXdCQ3lBTUlBTnJyVUovSUFLdEloQ0dRbitGZkNBUWlLY2hEQXNnQkVGL0lBQkJBa0VESUE1QkFVWWJJZ0pxSWdNZ0FDQURTeHRKSUFWQmZ5QUNJQXhxSWdBZ0FDQU1TUnRKY1NBR0lBZ2dBbXNpQUVFQUlBQWdDRTBiUzNFZ0J5QUJJQUpySWdCQkFDQUFJQUZORzB0eEM2SUJBUVovSUFBRVFDQUFLQUlFSWdJRVFDQUNFQlFnQUVFQU5nSUVDeUFCQkVBZ0FDRUNBMEFnQWlnQ3lBRWlBd1JBUVFBaEJTQUNLQUxFQVNJRUJIOERRQ0FES0FJTUlnWUVRQ0FHRUJRZ0EwRUFOZ0lNSUFJb0FzUUJJUVFMSUFOQkVHb2hBeUFGUVFGcUlnVWdCRWtOQUFzZ0FpZ0N5QUVGSUFNTEVCUWdBa0VBTmdMSUFRc2dBa0h3QVdvaEFpQUhRUUZxSWdjZ0FVY05BQXNMSUFBUUZBc0x3QmdDRzM4RGV5QUNRUWRzSVE4Z0FrRUdiQ0VRSUFKQkJXd2hFU0FDUVFKMElRd2dBa0VEYkNFU0lBSkJBWFFoRXlBQUtBSUFJZ29nQUNnQ0RDSVpRUVYwSWdScUlRWWdDaUFFYXlBQUtBSVFJUVVnQUNnQ0hDRUxJQUFvQWhRaEJ5QUFLQUlJSVEwQ1FBSkFBa0FDUUFKQUFrQUNRQ0FEUVFoSkRRQWdBVUVQY1EwQUlBWkJEM0ZGRFFFTElBVWdCMDhOQlFKQUFrQWdBMEVCYXc0Q0FBRURDeUFISUFWcklnaEJGMDBOQlNBQklBVkJBblJxSVFrZ0dVRUZkQ0lFSUFvZ0JVRUdkR3BxSUFFZ0IwRUNkR3BKQkVBZ0NTQUtJQWRCQm5ScUlBUnFRVHhyU1EwR0N5QUYvUkg5REFBQUFBQUJBQUFBQWdBQUFBTUFBQUQ5cmdFaElDQUZJQWhCZkhFaURtb2hCVUVBSVFRRFFDQUdJQ0JCQnYyckFTSWYvUnNBYWlBSklBUkJBblJxL1FBQ0FDSWgvUjhBT0FJQUlBWWdILzBiQVdvZ0lmMGZBVGdDQUNBR0lCLzlHd0pxSUNIOUh3STRBZ0FnQmlBZi9Sc0RhaUFoL1I4RE9BSUFJQ0Q5REFRQUFBQUVBQUFBQkFBQUFBUUFBQUQ5cmdFaElDQUVRUVJxSWdRZ0RrY05BQXNnQ0NBT1J3MEZEQVlMSUFFZ0FrRUNkR29oQ0NBSElBVnJJZzVCRzAwTkFpQVpRUVYwSWdRZ0NpQUZRUVowYW1vaUNTQUJJQUlnQjJwQkFuUnFTU0FLSUFkQkJuUnFJQVJxUVRocklnUWdBU0FDSUFWcVFRSjBha3R4RFFJZ0NTQUJJQWRCQW5ScVNTQUJJQVZCQW5ScUlBUkpjUTBDSUFYOUVmME1BQUFBQUFFQUFBQUNBQUFBQXdBQUFQMnVBU0VnSUFVZ0RrRjhjU0lVYWlFRVFRQWhDUU5BSUFZZ0lFRUcvYXNCSWgvOUd3QnFJaFVnQVNBRklBbHFRUUowSWhacS9RQUNBQ0loL1I4QU9BSUFJQVlnSC8wYkFXb2lGeUFoL1I4Qk9BSUFJQVlnSC8wYkFtb2lHQ0FoL1I4Q09BSUFJQVlnSC8wYkEyb2lHaUFoL1I4RE9BSUFJQlVnQ0NBV2F2MEFBZ0FpSC8wZkFEZ0NCQ0FYSUIvOUh3RTRBZ1FnR0NBZi9SOENPQUlFSUJvZ0gvMGZBemdDQkNBZy9Rd0VBQUFBQkFBQUFBUUFBQUFFQUFBQS9hNEJJU0FnQ1VFRWFpSUpJQlJIRFFBTElBNGdGRWNOQXd3RkN5QUZJQWRQRFFRZ0FTQVBRUUowYWlFSklBRWdFRUVDZEdvaERpQUJJQkZCQW5ScUlSUWdBU0FNUVFKMGFpRVZJQUVnRWtFQ2RHb2hGaUFCSUJOQkFuUnFJUmNnQVNBQ1FRSjBhaUVZQTBBZ0JpQUZRUVowYWlJRUlBRWdCVUVDZENJSWFpb0NBRGdDQUNBRUlBZ2dHR29xQWdBNEFnUWdCQ0FJSUJkcUtnSUFPQUlJSUFRZ0NDQVdhaW9DQURnQ0RDQUVJQWdnRldvcUFnQTRBaEFnQkNBSUlCUnFLZ0lBT0FJVUlBUWdDQ0FPYWlvQ0FEZ0NHQ0FFSUFnZ0NXb3FBZ0E0QWh3Z0JVRUJhaUlGSUFkSERRQUxEQVFMSUFFZ0QwRUNkR29oQ1NBQklCQkJBblJxSVE0Z0FTQVJRUUowYWlFVUlBRWdERUVDZEdvaEZTQUJJQkpCQW5ScUlSWWdBU0FUUVFKMGFpRVhJQUVnQWtFQ2RHb2hHQ0FEUVFOR0lSb2dBMEVFUmlFY0lBTkJCVVloSFNBRFFRZEdJUjREUUNBR0lBVkJCblJxSWdRZ0FTQUZRUUowSWdocUtnSUFPQUlBSUFRZ0NDQVlhaW9DQURnQ0JDQUVJQWdnRjJvcUFnQTRBZ2dDUUNBYURRQWdCQ0FJSUJacUtnSUFPQUlNSUJ3TkFDQUVJQWdnRldvcUFnQTRBaEFnSFEwQUlBUWdDQ0FVYWlvQ0FEZ0NGQ0FEUVFaR0RRQWdCQ0FJSUE1cUtnSUFPQUlZSUI0TkFDQUVJQWdnQ1dvcUFnQTRBaHdMSUFWQkFXb2lCU0FIUncwQUN3d0RDeUFGSVFRTElBUkJBV29oQlNBSElBUnJRUUZ4QkVBZ0JpQUVRUVowYWlJSklBRWdCRUVDZENJRWFpb0NBRGdDQUNBSklBUWdDR29xQWdBNEFnUWdCU0VFQ3lBRklBZEdEUUVEUUNBR0lBUkJCblJxSWdVZ0FTQUVRUUowSWdscUtnSUFPQUlBSUFVZ0NDQUphaW9DQURnQ0JDQUdJQVJCQVdvaUJVRUdkR29pQ1NBQklBVkJBblFpQldvcUFnQTRBZ0FnQ1NBRklBaHFLZ0lBT0FJRUlBUkJBbW9pQkNBSFJ3MEFDd3dCQ3lBSElBVWlCR3RCQTNFaUNRUkFRUUFoQ0FOQUlBWWdCRUVHZEdvZ0FTQUVRUUowYWlvQ0FEZ0NBQ0FFUVFGcUlRUWdDRUVCYWlJSUlBbEhEUUFMQ3lBRklBZHJRWHhMRFFBRFFDQUdJQVJCQm5ScUlBRWdCRUVDZEdvcUFnQTRBZ0FnQmlBRVFRRnFJZ1ZCQm5ScUlBRWdCVUVDZEdvcUFnQTRBZ0FnQmlBRVFRSnFJZ1ZCQm5ScUlBRWdCVUVDZEdvcUFnQTRBZ0FnQmlBRVFRTnFJZ1ZCQm5ScUlBRWdCVUVDZEdvcUFnQTRBZ0FnQkVFRWFpSUVJQWRIRFFBTEMwRWdhaUVISUFFZ0RVRUNkR29oQmlBQUtBSVlJUVVDUUFKQUFrQUNRQ0FEUVFoSkRRQWdCa0VQY1EwQUlBZEJEM0ZGRFFFTElBVWdDMDhOQWdKQUFrQUNRQ0FEUVFGckRnSUFBUUlMSUFzZ0JXc2lBRUViVFEwRElBb2dCVUVHZEVFZ2NpQVpRUVYwSWdKcmFpQUJJQXNnRFdwQkFuUnFTUVJBSUFFZ0JTQU5ha0VDZEdvZ0MwRUdkQ0FDYXlBS2FrRWNhMGtOQkFzZ0JpQUZRUUowYWlFQ0lBWDlFZjBNQUFBQUFBRUFBQUFDQUFBQUF3QUFBUDJ1QVNFZ0lBVWdBRUY4Y1NJQmFpRUZRUUFoQkFOQUlBY2dJRUVHL2FzQkloLzlHd0JxSUFJZ0JFRUNkR3I5QUFJQUlpSDlId0E0QWdBZ0J5QWYvUnNCYWlBaC9SOEJPQUlBSUFjZ0gvMGJBbW9nSWYwZkFqZ0NBQ0FISUIvOUd3TnFJQ0g5SHdNNEFnQWdJUDBNQkFBQUFBUUFBQUFFQUFBQUJBQUFBUDJ1QVNFZ0lBUkJCR29pQkNBQlJ3MEFDeUFBSUFGSERRTU1CQXNnQmlBQ1FRSjBhaUVEQWtBZ0N5QUZheUlBUVNSSkJFQWdCU0VFREFFTElBb2dCVUVHZEVFZ2NpQVpRUVYwSWdScmFpSUlJQUVnQWlBTElBMXFJZ0pxUVFKMGFra2dDMEVHZENBRWF5QUtha0VZYXlJRUlBRWdEVUVDZEdvZ0JVRUNkR29pQ2lBTWFrdHhCRUFnQlNFRURBRUxJQWdnQVNBQ1FRSjBha2tnQkNBS1MzRUVRQ0FGSVFRTUFRc2dCZjBSL1F3QUFBQUFBUUFBQUFJQUFBQURBQUFBL2E0QklTQWdCU0FBUVh4eElnSnFJUVJCQUNFQkEwQWdCeUFnUVFiOXF3RWlILzBiQUdvaUNpQUdJQUVnQldwQkFuUWlDR3I5QUFJQUlpSDlId0E0QWdBZ0J5QWYvUnNCYWlJTUlDSDlId0U0QWdBZ0J5QWYvUnNDYWlJTklDSDlId0k0QWdBZ0J5QWYvUnNEYWlJUElDSDlId000QWdBZ0NpQURJQWhxL1FBQ0FDSWYvUjhBT0FJRUlBd2dILzBmQVRnQ0JDQU5JQi85SHdJNEFnUWdEeUFmL1I4RE9BSUVJQ0Q5REFRQUFBQUVBQUFBQkFBQUFBUUFBQUQ5cmdFaElDQUJRUVJxSWdFZ0FrY05BQXNnQUNBQ1JnMEVDeUFFUVFGcUlRQWdDeUFFYTBFQmNRUkFJQWNnQkVFR2RHb2lBU0FHSUFSQkFuUWlBbW9xQWdBNEFnQWdBU0FDSUFOcUtnSUFPQUlFSUFBaEJBc2dBQ0FMUmcwREEwQWdCeUFFUVFaMGFpSUFJQVlnQkVFQ2RDSUJhaW9DQURnQ0FDQUFJQUVnQTJvcUFnQTRBZ1FnQnlBRVFRRnFJZ0JCQm5ScUlnRWdCaUFBUVFKMElnQnFLZ0lBT0FJQUlBRWdBQ0FEYWlvQ0FEZ0NCQ0FFUVFKcUlnUWdDMGNOQUFzTUF3c2dCaUFQUVFKMGFpRUVJQVlnRUVFQ2RHb2hDaUFHSUJGQkFuUnFJUWdnQmlBTVFRSjBhaUVNSUFZZ0VrRUNkR29oRFNBR0lCTkJBblJxSVE4Z0JpQUNRUUowYWlFQ0lBTkJBMFloRUNBRFFRUkdJUkVnQTBFRlJpRVNJQU5CQjBZaEV3TkFJQWNnQlVFR2RHb2lBQ0FHSUFWQkFuUWlBV29xQWdBNEFnQWdBQ0FCSUFKcUtnSUFPQUlFSUFBZ0FTQVBhaW9DQURnQ0NBSkFJQkFOQUNBQUlBRWdEV29xQWdBNEFnd2dFUTBBSUFBZ0FTQU1haW9DQURnQ0VDQVNEUUFnQUNBQklBaHFLZ0lBT0FJVUlBTkJCa1lOQUNBQUlBRWdDbW9xQWdBNEFoZ2dFdzBBSUFBZ0FTQUVhaW9DQURnQ0hBc2dCVUVCYWlJRklBdEhEUUFMREFJTElBVWdDMDhOQVNBR0lBOUJBblJxSVFNZ0JpQVFRUUowYWlFRUlBWWdFVUVDZEdvaENpQUdJQXhCQW5ScUlRZ2dCaUFTUVFKMGFpRU1JQVlnRTBFQ2RHb2hEU0FHSUFKQkFuUnFJUUlEUUNBSElBVkJCblJxSWdBZ0JpQUZRUUowSWdGcUtnSUFPQUlBSUFBZ0FTQUNhaW9DQURnQ0JDQUFJQUVnRFdvcUFnQTRBZ2dnQUNBQklBeHFLZ0lBT0FJTUlBQWdBU0FJYWlvQ0FEZ0NFQ0FBSUFFZ0Ntb3FBZ0E0QWhRZ0FDQUJJQVJxS2dJQU9BSVlJQUFnQVNBRGFpb0NBRGdDSENBRlFRRnFJZ1VnQzBjTkFBc01BUXNnQ3lBRklnUnJRUU54SWdBRVFFRUFJUWdEUUNBSElBUkJCblJxSUFZZ0JFRUNkR29xQWdBNEFnQWdCRUVCYWlFRUlBaEJBV29pQ0NBQVJ3MEFDd3NnQlNBTGEwRjhTdzBBQTBBZ0J5QUVRUVowYWlBR0lBUkJBblJxS2dJQU9BSUFJQWNnQkVFQmFpSUFRUVowYWlBR0lBQkJBblJxS2dJQU9BSUFJQWNnQkVFQ2FpSUFRUVowYWlBR0lBQkJBblJxS2dJQU9BSUFJQWNnQkVFRGFpSUFRUVowYWlBR0lBQkJBblJxS2dJQU9BSUFJQVJCQkdvaUJDQUxSdzBBQ3dzTG5BRUJCWDhqQUVId0FXc2lCQ1FBSUFRZ0FEWUNBRUVCSVFVQ1FDQUJRUUpJRFFBZ0FDRURBMEFnQUNBRFFRaHJJZ01nQWlBQlFRSnJJZ2RCQW5ScUtBSUFheUlHRUN0QkFFNEVRQ0FBSUFNUUswRUFUZzBDQ3lBRUlBVkJBblJxSUFZZ0F5QUdJQU1RSzBFQVRpSUdHeUlETmdJQUlBVkJBV29oQlNBQlFRRnJJQWNnQmhzaUFVRUJTZzBBQ3dzZ0JDQUZFSFlnQkVId0FXb2tBQXVkQXdFRWZ5QUJJQUJCQkdvaUJHcEJBV3RCQUNBQmEzRWlCU0FDYWlBQUlBQW9BZ0FpQVdwQkJHdE5CSDhnQUNnQ0JDSURJQUFvQWdnaUJqWUNDQ0FHSUFNMkFnUWdCQ0FGUndSQUlBQWdBRUVFYXlnQ0FFRitjV3NpQXlBRklBUnJJZ1FnQXlnQ0FHb2lCVFlDQUNBRElBVkJmSEZxUVFScklBVTJBZ0FnQUNBRWFpSUFJQUVnQkdzaUFUWUNBQXNDZnlBQklBSkJHR3BQQkVBZ0FDQUNhaUlFSUFFZ0FtdEJDR3NpQVRZQ0NDQUVRUWhxSWdVZ0FVRjhjV3BCQkdzZ0FVRUJjallDQUNBRUFuOGdCQ2dDQ0VFSWF5SUJRZjhBVFFSQUlBRkJBM1pCQVdzTUFRc2dBV2NoQXlBQlFSMGdBMnQyUVFSeklBTkJBblJyUWU0QWFpQUJRZjhmVFEwQUdrRS9JQUZCSGlBRGEzWkJBbk1nQTBFQmRHdEJ4d0JxSWdFZ0FVRS9UeHNMSWdOQkJIUWlBVUhnelFGcU5nSU1JQVFnQVVIb3pRRnFJZ0VvQWdBMkFoQWdBU0FGTmdJQUlBUW9BaEFnQlRZQ0JFSG8xUUZCNk5VQktRTUFRZ0VnQTYyR2hEY0RBQ0FBSUFKQkNHb2lBVFlDQUNBQUlBRkJmSEZxREFFTElBQWdBV29MUVFScklBRTJBZ0FnQUVFRWFnVkJBQXNMd2dFQkEzOENRQ0FDS0FJUUlnTUVmeUFEQlNBQ0VFY05BU0FDS0FJUUN5QUNLQUlVSWdScklBRkpCRUFnQWlBQUlBRWdBaWdDSkJFQUFBOExBa0FDUUNBQ0tBSlFRUUJJRFFBZ0FVVU5BQ0FCSVFNRFFDQUFJQU5xSWdWQkFXc3RBQUJCQ2tjRVFDQURRUUZySWdNTkFRd0NDd3NnQWlBQUlBTWdBaWdDSkJFQUFDSUVJQU5KRFFJZ0FTQURheUVCSUFJb0FoUWhCQXdCQ3lBQUlRVkJBQ0VEQ3lBRUlBVWdBUkFXR2lBQ0lBSW9BaFFnQVdvMkFoUWdBU0FEYWlFRUN5QUVDMWtCQVg4Z0FDQUFLQUpJSWdGQkFXc2dBWEkyQWtnZ0FDZ0NBQ0lCUVFoeEJFQWdBQ0FCUVNCeU5nSUFRWDhQQ3lBQVFnQTNBZ1FnQUNBQUtBSXNJZ0UyQWh3Z0FDQUJOZ0lVSUFBZ0FTQUFLQUl3YWpZQ0VFRUFDOHdDQVFSL0lBRWdBUDBBQWdEOUN3SUFJQUVvQWhnaUFnUkFJQUVvQWhBaUF3Ui9RUUFoQWdOQUlBRW9BaGdnQWtFMGJHb29BaXdpQkFSQUlBUVFGQ0FCS0FJUUlRTUxJQUpCQVdvaUFpQURTUTBBQ3lBQktBSVlCU0FDQ3hBVUlBRkJBRFlDR0FzZ0FTQUFLQUlRSWdJMkFoQWdBU0FDUVRSc0VCZ2lBallDR0NBQ0JFQWdBU2dDRUFSQVFRQWhBd05BSUFJZ0EwRTBiQ0lGYWlJQ0lBQW9BaGdnQldvaUJQMEFBZ0Q5Q3dJQUlBSWdCQ2dDTURZQ01DQUNJQVQ5QUFJZy9Rc0NJQ0FDSUFUOUFBSVEvUXNDRUNBQktBSVlJZ0lnQldwQkFEWUNMQ0FEUVFGcUlnTWdBU2dDRUVrTkFBc0xJQUVnQUNnQ0ZEWUNGQ0FCSUFBb0FpQWlBallDSUNBQ0JFQWdBU0FDRUJnaUFqWUNIQ0FDUlFSQUlBRkNBRGNDSEE4TElBSWdBQ2dDSENBQUtBSWdFQllhRHdzZ0FVRUFOZ0ljRHdzZ0FVRUFOZ0lRSUFGQkFEWUNHQXNFQUVFQkM4WUJBUU4vQTBBZ0FFRUVkQ0lCUWVUTkFXb2dBVUhnelFGcUlnSTJBZ0FnQVVIb3pRRnFJQUkyQWdBZ0FFRUJhaUlBUWNBQVJ3MEFDMEV3RUhvYUl3QkJFR3NpQUNRQUFrQWdBRUVNYWlBQVFRaHFFQkFOQUVIdzFRRkJDQ0FBS0FJTVFRSjBRUVJxRUNraUFUWUNBQ0FCUlEwQVFRZ2dBQ2dDQ0JBcElnRUVRRUh3MVFFb0FnQWlBaUFBS0FJTVFRSjBha0VBTmdJQUlBSWdBUkFQUlEwQkMwSHcxUUZCQURZQ0FBc2dBRUVRYWlRQVFZeldBVUVxTmdJQVFkVFdBVUdZMXdFMkFnQUxrZ1lDQkg4RGV5TUFRUkJySWdZa0FBSi9JQUFvQWdoQkVFWUVRQ0FBS0FLMEFTQUFLQUxrQVVHTUxHeHFEQUVMSUFBb0Fnd0xJUUFDUUNBREtBSUFJZ1ZGQkVCQkFDRUNJQVJCQVVHdEZFRUFFQk1NQVFzZ0FDZ0MwQ3NnQXlBRlFRRnJOZ0lBSUFJZ0JrRU1ha0VCRUJVZ0FVRzRDR3hxSWdjZ0JpZ0NEQ0lBUVFWMk5nS2tCaUFISUFCQkgzRWlBVFlDR0NBQ1FRRnFJUUFnQXdKL0FuOENRQUovQWtBQ1FDQUJEZ0lBQXdFTElBTW9BZ0FNQVFzZ0F5Z0NBRUVCZGdzaUJVSGlBRThFZnlBR1F1R0FnSUNRRERjQ0JDQUdJQVUyQWdBZ0JFRUNRWlA5QUNBR0VCTWdCeWdDR0FVZ0FRc0VRQ0FGSWdFTkFVRUFEQUlMSUFVRVFDQUhRUnhxSVFGQkFDRUNBMEFnQUNBR1FReHFRUUVRRlNBQ1FlQUFUUVJBSUFZb0Fnd2hCQ0FCSUFKQkEzUnFJZ2hCQURZQ0JDQUlJQVJCQTNZMkFnQUxJQUJCQVdvaEFDQUNRUUZxSWdJZ0JVY05BQXNMSUFVZ0F5Z0NBQ0lBU3dSQVFRQWhBZ3dFQ3lBQUlBVnJEQUlMSUFkQkhHb2hCRUVBSVFJRFFDQUFJQVpCREdwQkFoQVZJQUpCNEFCTkJFQWdCQ0FDUVFOMGFpSUZJQVlvQWd3aUNFSC9EM0UyQWdRZ0JTQUlRUXQyTmdJQUN5QUFRUUpxSVFBZ0FrRUJhaUlDSUFGSERRQUxJQUZCQVhRTElRQWdBQ0FES0FJQUlnRkxCRUJCQUNFQ0RBSUxJQUVnQUdzTE5nSUFRUUVoQWlBSEtBSVlRUUZIRFFBZ0IwRWNhaUVFSUFmOUNRSWNJUXNnQnlnQ0lDRUQvUXdCQUFBQUFnQUFBQU1BQUFBRUFBQUFJUXBCQUNFQkEwQWdCQ0FCUVFOMGFpSUFRUmhxSUFzZ0N2ME0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vMnVBU0lKL1JzQVFRTnUvUkVnQ2YwYkFVRURidjBjQVNBSi9Sc0NRUU51L1J3Q0lBbjlHd05CQTI3OUhBUDlzUUg5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUQ5dUFFaUNmMWFBZ0FDSUFCQkVHb2dDZjFhQWdBQklBQkJDR29nQ2YxYUFnQUFJQVFnQVVFRWFpSUJRUU4wYWlJRklBbjlXZ0lBQXlBQUlBTTJBaHdnQUNBRE5nSVVJQUFnQXpZQ0RDQUZJQU0yQWdRZ0N2ME1CQUFBQUFRQUFBQUVBQUFBQkFBQUFQMnVBU0VLSUFGQjRBQkhEUUFMQ3lBR1FSQnFKQUFnQWd1RUJ3RUdmeU1BUVNCcklnWWtBQUovSUFBb0FnaEJFRVlFUUNBQUtBSzBBU0FBS0FMa0FVR01MR3hxREFFTElBQW9BZ3dMSVFVQ1FDQURLQUlBUVFSTkJFQkJBQ0VBSUFSQkFVR0tGRUVBRUJNTUFRc2dBaUFGS0FMUUt5QUJRYmdJYkdvaUJTSUpRUVJxUVFFUUZTQUZJQVVvQWdSQkFXb2lCellDQkNBSFFTSlBCRUFnQmtFaE5nSUVJQVlnQnpZQ0FDQUVRUUZCcmpzZ0JoQVRRUUFoQUF3QkN5QUhJQUFvQXJnQklnaE5CRUFnQmlBSE5nSVlJQVlnQ0RZQ0ZDQUdJQUUyQWhBZ0JFRUJRWUtBQVNBR1FSQnFFQk1nQUNBQUtBSUlRWUNBQW5JMkFnaEJBQ0VBREFFTElBSkJBV29nQlVFSWFrRUJFQlVnQlNBRktBSUlRUUpxTmdJSUlBSkJBbW9nQlVFTWFrRUJFQlVnQlNBRktBSU1RUUpxSWdBMkFnd0NRQUpBSUFVb0FnZ2lBVUVLU3cwQUlBQkJDa3NOQUNBQUlBRnFRUTFKRFFFTFFRQWhBQ0FFUVFGQnR5cEJBQkFUREFFTElBSkJBMm9nQlVFUWFrRUJFQlVnQlMwQUVFR0FBWEVFUUVFQUlRQWdCRUVCUWY4eVFRQVFFd3dCQ3lBQ1FRUnFJQVZCRkdwQkFSQVZJQVVvQWhSQkFrOEVRRUVBSVFBZ0JFRUJRYjR5UVFBUUV3d0JDeUFESUFNb0FnQkJCV3NpQnpZQ0FFRUJJUUFnQlNnQ0JDRUJBa0FnQlMwQUFFRUJjVVVFUUNBQlJRMENJQVZCc0FkcUlRSWdCVUdzQm1vaEJFRUFJUVVnQVVFRFRRMEJJQUZCZkhFaEJVRUFJUU1EUUNBRUlBTkJBblFpQjJyOURBOEFBQUFQQUFBQUR3QUFBQThBQUFEOUN3SUFJQUlnQjJyOURBOEFBQUFQQUFBQUR3QUFBQThBQUFEOUN3SUFJQU5CQkdvaUF5QUZSdzBBQ3lBQklBVkhEUUVNQWdzZ0FTQUhUUVJBQWtBZ0FVVUVRRUVBSVFFTUFRc2dBa0VGYWlBR1FSeHFRUUVRRlNBRklBWW9BaHdpQUVFRWRqWUNzQWNnQlNBQVFROXhOZ0tzQmlBRktBSUVJZ0ZCQWs4RVFDQUZRYkFIYWlFSElBVkJyQVpxSVFnZ0FrRUdhaUVBUVFFaEJRTkFJQUFnQmtFY2FrRUJFQlVDUUNBR0tBSWNJZ0ZCRUU4RVFDQUJRUTl4SWdJTkFRdEJBQ0VBSUFSQkFVSGtMa0VBRUJNTUJnc2dDQ0FGUVFKMElncHFJQUkyQWdBZ0J5QUthaUFCUVFSMk5nSUFJQUJCQVdvaEFDQUZRUUZxSWdVZ0NTZ0NCQ0lCU1EwQUN3c2dBeWdDQUNFSEN5QURJQWNnQVdzMkFnQkJBU0VBREFJTFFRQWhBQ0FFUVFGQmloUkJBQkFUREFFTEEwQWdCQ0FGUVFKMElnQnFRUTgyQWdBZ0FDQUNha0VQTmdJQVFRRWhBQ0FGUVFGcUlnVWdBVWtOQUFzTElBWkJJR29rQUNBQUMxSUFJQUVnQUMwQUFEb0FCeUFCSUFBdEFBRTZBQVlnQVNBQUxRQUNPZ0FGSUFFZ0FDMEFBem9BQkNBQklBQXRBQVE2QUFNZ0FTQUFMUUFGT2dBQ0lBRWdBQzBBQmpvQUFTQUJJQUF0QUFjNkFBQUxrZ0VCQkg4Z0FDQUJOZ0s0QVFKQUlBQW9BbUFpQTBVTkFDQURLQUlZSWdaRkRRQWdBQ2dDRENJRVJRMEFJQVFvQXRBclJRMEFJQU1vQWhBaUJFVUVRRUVCRHd0QkFDRURBMEFnQUNnQ0RDZ0MwQ3NnQTBHNENHeHFLQUlFSUFGTkJFQWdBa0VCUWJUSEFFRUFFQk5CQUE4TElBWWdBMEUwYkdvZ0FUWUNLRUVCSVFVZ0EwRUJhaUlESUFSSERRQUxDeUFGQzZVSEFnbC9DSDRqQUVFUWF5SUxKQUFDUUNBQ1JRUkFJQU5CQVVISTJnQkJBQkFUREFFTElBSW9BaEFpQ1NBQUtBSmdJZ2NvQWhCSkJFQWdBMEVCUWFYU0FFRUFFQk1NQVFzZ0FDZ0NnQUVpQlNBQUtBS0VBV3dpQmlBRVRRUkFJQXNnQkRZQ0FDQUxJQVpCQVdzMkFnUWdBMEVCUWNYL0FDQUxFQk5CQUNFRkRBRUxJQUlnQUNnQ2JDQUVJQVVnQkNBRmJpSUdiR3NpQ0NBQUtBSjBiR29pQlRZQ0FDQUNJQVVnQnlnQ0FDSUhJQVVnQjBzYklnYzJBZ0FnQWlBQUtBSnNJQUFvQW5RZ0NFRUJhbXhxSWdVMkFnZ2dBaUFGSUFBb0FtQW9BZ2dpQ0NBRklBaEpHeUlJTmdJSUlBSWdBQ2dDY0NBQUtBSjRJQVpzYWlJRk5nSUVJQUlnQlNBQUtBSmdLQUlFSWdvZ0JTQUtTeHNpQ2pZQ0JDQUNJQUFvQW5BZ0FDZ0NlQ0FHUVFGcWJHb2lCVFlDRENBQ0lBVWdBQ2dDWUNnQ0RDSUdJQVVnQmtrYklnVTJBZ3dnQUNnQ1lDSU1LQUlRSWdZRVFDQUZyRUlCZlNFUklBaXNRZ0Y5SVJJZ0NxMUNBWDBoRXlBSHJVSUJmU0VVSUF3b0FoZ2hDQ0FDS0FJWUlRVkJBQ0VIQTBBZ0JTQUlJQWRCTkd4cUtBSW9JZ28yQWlnZ0JTQVVJQVVvQWdBaURLMGlEbndnRG9BaUZUNENFQ0FGSUJNZ0JTZ0NCQ0lOclNJT2ZDQU9nQ0lRUGdJVUlBVkNmeUFLclNJT2hpSVBJQkRFZlNBT2g2Y2dEeUFSSUEyc0loQjhJQkIveEgwZ0RvZW5hellDRENBRklBOGdGY1I5SUE2SHB5QVBJQklnREt3aUQzd2dEMy9FZlNBT2g2ZHJOZ0lJSUFWQk5Hb2hCU0FIUVFGcUlnY2dCa2NOQUFzTElBWWdDVWtFUUNBQ0tBSVlJUVVEUUNBRklBWkJOR3dpQjJvb0Fpd1FGQ0FDS0FJWUlnVWdCMnBCQURZQ0xDQUdRUUZxSWdZZ0FpZ0NFRWtOQUFzZ0FpQUFLQUpnS0FJUU5nSVFDeUFBS0FKa0lnVUVRQ0FGRUNVTElBQkJBVUVrRUJjaUJqWUNaRUVBSVFVZ0JrVU5BQ0FDSUFZUVNDQUFJQVEyQWl3Z0FDZ0MyQUZCR0NBREVDaEZEUUFnQUNnQzJBRWlDU2dDQUNFRUlBa29BZ2doQmdKQUlBUUVRRUVCSVFVZ0JFRUJjU0VJSUFSQkFVWUVmMEVBQlNBRVFYNXhJUVJCQUNFSEEwQUNmMEVBSUFWRkRRQWFRUUFnQUNBQklBTWdCaWdDQUJFQUFFVU5BQm9nQUNBQklBTWdCaWdDQkJFQUFFRUFSd3NoQlNBR1FRaHFJUVlnQjBFQ2FpSUhJQVJIRFFBTElBVkZDeUVFUVFBZ0JTQUlHeUVGQWtBZ0NFVU5BQ0FFRFFBZ0FDQUJJQU1nQmlnQ0FCRUFBRUVBUnlFRkN5QUpRUUEyQWdBZ0JRMEJJQUFvQW1BUUpVRUFJUVVnQUVFQU5nSmdEQUlMSUFsQkFEWUNBQXNnQUNBQ0VGQWhCUXNnQzBFUWFpUUFJQVVMOGdNQkJYOENRQUpBSUFBb0Fqd2lBa1VFUUNBQktBSVFEUUZCQVE4TElBSkJOR3dRR0NJRlJRMEJJQUVvQWhBRVFDQUJLQUlZSVFJRFFDQUNJQU5CTkd3aUJHb29BaXdRRkNBQktBSVlJZ0lnQkdwQkFEWUNMQ0FEUVFGcUlnTWdBU2dDRUNJRVNRMEFDd3NnQVNBQUtBSThCSDhnQUNnQ1pDZ0NHQ0VEUVFBaEFnTkFJQVVnQWtFMGJHb2lCQ0FESUFBb0FrQWdBa0VDZEdvb0FnQkJOR3dpQm1vaUEvMEFBZ0Q5Q3dJQUlBUWdBeWdDTURZQ01DQUVJQVA5QUFJZy9Rc0NJQ0FFSUFQOUFBSVEvUXNDRUNBRUlBQW9BbVFvQWhnaUF5QUdhaUlHS0FJa05nSWtJQVFnQmlnQ0xEWUNMQ0FHUVFBMkFpd2dBa0VCYWlJQ0lBQW9BandpQmtrTkFBc2dBU2dDRUFVZ0JBc0VmeUFBS0FKa0tBSVlJUUpCQUNFREEwQWdBaUFEUVRSc0lnUnFLQUlzRUJRZ0FDZ0NaQ2dDR0NJQ0lBUnFRUUEyQWl3Z0EwRUJhaUlESUFFb0FoQkpEUUFMSUFBb0Fqd0ZJQVlMTmdJUUlBRW9BaGdRRkNBQklBVTJBaGhCQVE4TElBRW9BaGdoQkNBQUtBSmtLQUlZSVFOQkFDRUNBMEFnQkNBQ1FUUnNJZ1ZxSWdRZ0F5QUZhaWdDSkRZQ0pDQUVLQUlzRUJRZ0FTZ0NHQ0lFSUFWcUlBQW9BbVFvQWhnaUF5QUZhaUlGS0FJc05nSXNJQVZCQURZQ0xDQUNRUUZxSWdJZ0FTZ0NFRWtOQUF0QkFROExJQUFvQW1BUUpTQUFRUUEyQW1CQkFBdkZCQUVJZndKQUlBSkZEUUFDUUNBQUtBSzRBU0lGUlEwQUlBQW9BbUFpQkVVTkFDQUVLQUlRUlEwQUlBUW9BaGdvQWlnZ0JVY05BQ0FDS0FJUUlnaEZEUUFnQWlnQ0dDSUdLQUlvRFFBZ0JpZ0NMQTBBUVFBaEJDQUlRUWhQQkVBZ0NFRjRjU0VKQTBBZ0JpQUVRVFJzYWlBRk5nSW9JQVlnQkVFQmNrRTBiR29nQlRZQ0tDQUdJQVJCQW5KQk5HeHFJQVUyQWlnZ0JpQUVRUU55UVRSc2FpQUZOZ0lvSUFZZ0JFRUVja0UwYkdvZ0JUWUNLQ0FHSUFSQkJYSkJOR3hxSUFVMkFpZ2dCaUFFUVFaeVFUUnNhaUFGTmdJb0lBWWdCRUVIY2tFMGJHb2dCVFlDS0NBRVFRaHFJUVFnQ2tFSWFpSUtJQWxIRFFBTEN5QUlRUWR4SWdnRVFBTkFJQVlnQkVFMGJHb2dCVFlDS0NBRVFRRnFJUVFnQzBFQmFpSUxJQWhIRFFBTEN5QUNJQU1RUHcwQVFRQVBDeUFBS0FKa0lnVkZCRUFnQUVFQlFTUVFGeUlGTmdKa0lBVkZEUUVMSUFJZ0JSQklJQUFvQXRnQlFSWWdBeEFvUlEwQUlBQW9BdGdCSWdZb0FnQWhCQ0FHS0FJSUlRVUNRQ0FFQkVCQkFTRUhJQVJCQVhFaENDQUVRUUZHQkg5QkFBVWdCRUYrY1NFSlFRQWhCQU5BQW45QkFDQUhSUTBBR2tFQUlBQWdBU0FESUFVb0FnQVJBQUJGRFFBYUlBQWdBU0FESUFVb0FnUVJBQUJCQUVjTElRY2dCVUVJYWlFRklBUkJBbW9pQkNBSlJ3MEFDeUFIUlFzaEJFRUFJQWNnQ0JzaEJ3SkFJQWhGRFFBZ0JBMEFJQUFnQVNBRElBVW9BZ0FSQUFCQkFFY2hCd3NnQmtFQU5nSUFJQWNOQVNBQUtBSmdFQ1VnQUVFQU5nSmdRUUFQQ3lBR1FRQTJBZ0FMSUFBZ0FoQlFJUWNMSUFjTCtBUUJCbjhDUUVFQlFUQVFGeUlDQkg4Z0FpQUFLQUxnQVNJQi9RQURBUDBMQXdBZ0FpQUJLUU1RTndNUUlBSWdBU2dDR0NJQk5nSVlJQUlnQVVFWWJCQVlJZ0UyQWh3Z0FVVUVRQ0FDRUJSQkFBOExBa0FnQUNnQzRBRW9BaHdpQXdSQUlBRWdBeUFDS0FJWVFSaHNFQllhREFFTElBRVFGQ0FDUVFBMkFod0xJQUlnQUNnQzRBRW9BaVFpQVRZQ0pDQUNJQUZCS0JBWElnRTJBaWdnQVVVRVFDQUNLQUljRUJRZ0FoQVVRUUFQQ3dKQUlBQW9BdUFCS0FJb0JFQWdBaWdDSkVVTkFRTkFJQUVnQlVFb2JDSURhaUFBS0FMZ0FTZ0NLQ0FEYWlnQ0ZDSUJOZ0lVSUFGQkdHd1FHQ0VCSUFJb0FpZ2lCQ0FEYWlJR0lBRTJBaGdnQVVVRVFDQUZCSDlCQUNFQkEwQWdBaWdDS0NBQlFTaHNhaWdDR0JBVUlBRkJBV29pQVNBRlJ3MEFDeUFDS0FJb0JTQUVDeEFVREFVTEFrQWdBQ2dDNEFFb0FpZ2dBMm9vQWhnaUJBUkFJQUVnQkNBR0tBSVVRUmhzRUJZYUlBSW9BaWdoQVF3QkN5QUJFQlFnQWlnQ0tDSUJJQU5xUVFBMkFoZ0xJQUVnQTJvZ0FDZ0M0QUVvQWlnZ0Eyb29BZ1FpQVRZQ0JDQUJRUmhzRUJnaEFTQUNLQUlvSWdRZ0Eyb2lCaUFCTmdJUUlBRkZCRUFnQlFSL1FRQWhBUU5BSUFGQktHd2lBQ0FDS0FJb2FpZ0NHQkFVSUFJb0FpZ2dBR29vQWhBUUZDQUJRUUZxSWdFZ0JVY05BQXNnQWlnQ0tBVWdCQXNRRkF3RkN3SkFJQUFvQXVBQktBSW9JQU5xS0FJUUlnUUVRQ0FCSUFRZ0JpZ0NCRUVZYkJBV0dpQUNLQUlvSVFFTUFRc2dBUkFVSUFJb0FpZ2lBU0FEYWtFQU5nSVFDeUFCSUFOcVFnQTNBaUFnQlVFQmFpSUZJQUlvQWlSSkRRQUxEQUVMSUFFUUZDQUNRUUEyQWlnTElBSUZRUUFMRHdzZ0FpZ0NIQkFVSUFJUUZFRUFDNkFHQVE1L0l3QkJFR3NpQ0NRQUlBQW9BbUFvQWhBaERTQUlRUUZCT0JBWElnRTJBZ3dDUUNBQlJRMEFJQUVnQUNnQ1lDZ0NFQ0lKTmdJWUlBRWdBUDBBQW16OUN3SUFJQUVnQUNnQ2dBRTJBaEFnQUNnQ2hBRWhBeUFCUVFBMkFqUWdBU0FETmdJVUlBRWdBQ2dDRENJTUtBSUFOZ0lnSUFFZ0RDZ0NCRFlDSkNBQklBd29BZ2cyQWlnZ0FTQU1LQUlRTmdJc0lBRWdDVUc0Q0JBWElnQTJBakFnQUFSQUlBMEVRQU5BSUE1QnVBaHNJZ0FnRENnQzBDdHFJZ1FvQWdRaEFpQUJLQUl3SUFCcUlnVWdCUDBBQWdEOUN3SUVJQVVnQkNnQ0VEWUNGQ0FGSUFRb0FoUTJBaGdnQWtFZ1RRUkFJQVZCdEFkcUlBUkJzQWRxSUFJUUZob2dCVUd3Qm1vZ0JFR3NCbW9nQkNnQ0JCQVdHZ3NnQlNBRUtBSVlJZ0EyQWh3Z0JTQUVLQUtrQmpZQ3FBWkJBU0VHQWtBZ0FFRUJSd1JBSUFRb0FnUkJBMndpQUVFRGEwSGZBRXNOQVNBQVFRSnJJUVlMSUFWQnBBTnFJUWtnQlVFZ2FpRUtJQVJCSEdvaEMwRUFJUUFDUUNBR1FRaEpEUUFnQkNBR1FRTjBha0VjYWlBS1N3UkFJQXNnQlNBR1FRSjBha0drQTJwSkRRRUxJQVpCZkhFaEFFRUFJUU1EUUNBS0lBTkJBblFpQW1vZ0N5QURRUU4wYWlJSFFSeHFJQWRCRkdvZ0IwRU1haUFIL1Z3Q0JQMVdBZ0FCL1ZZQ0FBTDlWZ0lBQS8wTEFnQWdBaUFKYWlBSFFSaHFJQWRCRUdvZ0IwRUlhaUFIL1Z3Q0FQMVdBZ0FCL1ZZQ0FBTDlWZ0lBQS8wTEFnQWdBMEVFYWlJRElBQkhEUUFMSUFBZ0JrWU5BUXNnQUVFQmNpRUNJQVpCQVhFRVFDQUtJQUJCQW5RaUEyb2dDeUFBUVFOMGFpSUFLQUlFTmdJQUlBTWdDV29nQUNnQ0FEWUNBQ0FDSVFBTElBSWdCa1lOQUFOQUlBb2dBRUVDZENJRGFpQUxJQUJCQTNScUlnSW9BZ1EyQWdBZ0F5QUphaUFDS0FJQU5nSUFJQW9nQUVFQmFpSUNRUUowSWdOcUlBc2dBa0VEZEdvaUFpZ0NCRFlDQUNBRElBbHFJQUlvQWdBMkFnQWdBRUVDYWlJQUlBWkhEUUFMQ3lBRklBUW9BcWdHTmdLc0JpQU9RUUZxSWc0Z0RVY05BQXNMSUFFaEFnd0JDeUFJUVF4cUJFQWdDQ2dDRENJQktBSXdJZ0FFZnlBQUVCUWdDQ2dDREFVZ0FRc1FGQ0FJUVFBMkFnd0xDeUFJUVJCcUpBQWdBZ3Y1QkFFSWZ5TUFRWUFDYXlJREpBQWdBQVJBUWVrTlFSRWdBaEFoSUFNZ0FDZ0NBRFlDOEFFZ0FrR0hFaUFEUWZBQmFoQWFJQU1nQUNnQ0JEWUM0QUVnQWtHVUVpQURRZUFCYWhBYUlBTWdBQ2dDQ0RZQzBBRWdBa0czT0NBRFFkQUJhaEFhSUFNZ0FDZ0NFRFlDd0FFZ0FrSHFFU0FEUWNBQmFoQWFJQUZCQUVvRVFBTkFJQUFvQXRBcklRUWdBeUFITmdLd0FTQUNRWThPSUFOQnNBRnFFQm9nQXlBRUlBZEJ1QWhzYWlJRUtBSUFOZ0tnQVNBQ1FZWVNJQU5Cb0FGcUVCb2dBeUFFS0FJRU5nS1FBU0FDUWFrNUlBTkJrQUZxRUJvZ0F5QUVLQUlJTmdLQUFTQUNRZFUzSUFOQmdBRnFFQm9nQXlBRUtBSU1OZ0p3SUFKQjVUY2dBMEh3QUdvUUdpQURJQVFvQWhBMkFtQWdBa0gxRVNBRFFlQUFhaEFhSUFNZ0JDZ0NGRFlDVUNBQ1FlczVJQU5CMEFCcUVCcEIrZ3RCRnlBQ0VDRWdCQ2dDQkFSQUlBUkJzQWRxSVFZZ0JFR3NCbW9oQ0VFQUlRVURRQ0FJSUFWQkFuUWlDV29vQWdBaENpQURJQVlnQ1dvb0FnQTJBa1FnQXlBS05nSkFJQUpCK0F3Z0EwRkFheEFhSUFWQkFXb2lCU0FFS0FJRVNRMEFDd3NnQWhCN0lBTWdCQ2dDR0RZQ01DQUNRZlUzSUFOQk1Hb1FHaUFESUFRb0FxUUdOZ0lnSUFKQnBqZ2dBMEVnYWhBYVFRRWhCa0dTREVFVUlBSVFJUUpBSUFRb0FoaEJBVWNFUUNBRUtBSUVJZ1ZCQUV3TkFTQUZRUU5zUVFKcklRWUxJQVJCSEdvaENFRUFJUVVEUUNBRElBZ2dCVUVEZEdvcEFnQkNJSWszQXhBZ0FrSDREQ0FEUVJCcUVCb2dCVUVCYWlJRklBWkhEUUFMQ3lBQ0VIc2dBeUFFS0FLb0JqWUNBQ0FDUVpVNElBTVFHa0dHRFVFRklBSVFJU0FIUVFGcUlnY2dBVWNOQUFzTFFZY05RUVFnQWhBaEN5QURRWUFDYWlRQUMrc0pBd2wvQVg0QmV5TUFRYkFCYXlJRkpBQUNRQ0FCUVlBRGNRUkFRWkl1UVFzZ0FoQWhEQUVMQWtBZ0FVRUJjVVVOQUNBQUtBSmdJZ1pGRFFBakFFSFFBR3NpQXlRQVFkc05RUTBnQWhBaElBTkJBRG9BVHlBRFFRazZBRTRnQXlBR0tRSUFOd0pFSUFNZ0EwSE9BR29pQkRZQ1FDQUNRYnM2SUFOQlFHc1FHaUFESUFZcEFnZzNBalFnQXlBRU5nSXdJQUpCcWpvZ0EwRXdhaEFhSUFNZ0JpZ0NFRFlDSkNBRElBUTJBaUFnQWtISU9DQURRU0JxRUJvQ1FDQUdLQUlZUlEwQUlBWW9BaEJGRFFBRFFDQURJQU5CemdCcUlnczJBaEFnQXlBSU5nSVVJQUpCK3cwZ0EwRVFhaEFhSUFZb0FoZ2dDRUUwYkdvaENTTUFRVEJySWdRa0FDQUVRUWs3QUM0Z0JFRUpPZ0F0SUFRZ0NTa0NBRGNDSkNBRUlBUkJMV29pQ2pZQ0lDQUNRWVE0SUFSQklHb1FHaUFFSUFrb0FoZzJBaFFnQkNBS05nSVFJQUpCK2prZ0JFRVFhaEFhSUFRZ0NTZ0NJRFlDQkNBRUlBbzJBZ0FnQWtIZk9TQUVFQm9nQkVFd2FpUUFJQU1nQ3pZQ0FDQUNRWUVOSUFNUUdpQUlRUUZxSWdnZ0JpZ0NFRWtOQUFzTFFZa05RUUlnQWhBaElBTkIwQUJxSkFBTEFrQWdBVUVDY1VVTkFDQUFLQUpnUlEwQVFlWU9RU1FnQWhBaElBVWdBQ2tDYkRjRG9BRWdBa0hVRWlBRlFhQUJhaEFhSUFVZ0FDa0NkRGNEa0FFZ0FrR3lFaUFGUVpBQmFoQWFJQVVnQUNrRGdBRTNBNEFCSUFKQnhCSWdCVUdBQVdvUUdpQUFLQUlNSUFBb0FtQW9BaEFnQWhCVVFZa05RUUlnQWhBaEN3SkFJQUZCQ0hGRkRRQWdBQ2dDWUVVTkFDQUFLQUtBQVNBQUtBS0VBV3dpQkVVTkFDQUFLQUswQVNFREEwQWdBeUFBS0FKZ0tBSVFJQUlRVkNBRFFZd3NhaUVESUFkQkFXb2lCeUFFUncwQUN3c2dBVUVRY1VVTkFDQUFLQUxnQVNFQVFjQU9RU1VnQWhBaElBVWdBUDBBQXdEOUN3UndJQUpCdlN3Z0JVSHdBR29RR2tHdURrRVJJQUlRSVFKQUlBQW9BaHhGRFFBZ0FDZ0NHRVVOQUVFQUlRTURRQ0FBS0FJY0lBTkJHR3hxSWdFdkFRQWhCQ0FCS1FNSUlRd2dCU0FCS0FJUU5nSmdJQVVnRERjRFdDQUZJQVEyQWxBZ0FrSEFPU0FGUWRBQWFoQWFJQU5CQVdvaUF5QUFLQUlZU1EwQUN3dEJodzFCQkNBQ0VDRUNRQ0FBS0FJb0lnUkZEUUFnQUNnQ0pDSUdSUTBBUVFBaEIwRUFJUU1EUUFKQUlBUWdBMEVvYkdvaUFTZ0NCQ0lJUlEwQUlBRW9BaEFpQVVVTkFDQUJLUU1BUWdCWERRQWdBU2tEQ0VJQVVnMEFRZm9LRUhnTkFnc2dCeUFJYWlFSElBTkJBV29pQXlBR1J3MEFDeUFIUlEwQVFaME9RUkFnQWhBaElBQW9BaVFFUUNBQUtBSW9JUUZCQUNFSEEwQWdCU0FCSUFkQktHd2lCR29vQWdRaUJqWUNSQ0FGSUFjMkFrQWdBa0dHT2lBRlFVQnJFQm9nQUNnQ0tDRUJBa0FnQmtVTkFFRUFJUU1nQVNBRWFpZ0NFRVVOQUFOQUlBQW9BaWdnQkdvb0FoQWdBMEVZYkdvaUFmMEFBd0FoRFNBRklBRXBBeEEzQXpnZ0JTQU4vUXNES0NBRklBTTJBaUFnQWtHVjFRQWdCVUVnYWhBYUlBTkJBV29pQXlBR1J3MEFDeUFBS0FJb0lRRUxBa0FnQVNBRWFpSUdLQUlZUlEwQVFRQWhBeUFHS0FJVVJRMEFBMEFnQVNBRWFpZ0NHQ0FEUVJoc2FpSUJMd0VBSVFZZ0FTa0RDQ0VNSUFVZ0FTZ0NFRFlDRUNBRklBdzNBd2dnQlNBR05nSUFJQUpCd0RrZ0JSQWFJQU5CQVdvaUF5QUFLQUlvSWdFZ0JHb29BaFJKRFFBTEN5QUhRUUZxSWdjZ0FDZ0NKRWtOQUFzTFFZY05RUVFnQWhBaEMwR0pEVUVDSUFJUUlRc2dCVUd3QVdva0FBdVJBZ0VEZndKQVFRRkJnQUlRRnlJQkJIOGdBVUVCTmdJQUlBRkJBVFlDMEFFZ0FTQUJMUURVQVVFR2Nqb0ExQUVnQVVFQlFZd3NFQmNpQURZQ0RDQUFSUTBCSUFGQkFVSG9CeEFYSWdBMkFoQWdBRVVOQVNBQlFnQTNBekFnQVVGL05nSXNJQUZCNkFjMkFoUUNRRUVCUVRBUUZ5SUFCRUFnQUVFQU5nSVlJQUJCNUFBMkFpQWdBRUhrQUVFWUVCY2lBallDSENBQ0RRRWdBQkFVQ3lBQlFRQTJBdUFCREFJTElBQkJBRFlDS0NBQklBQTJBdUFCSUFFUU9TSUFOZ0xjQVNBQVJRMEJJQUVRT1NJQU5nTFlBU0FBUlEwQkFrQkI1Z29RZUVVTkFBc2dBVUVBRUhNaUFEWUM3QUVnQUVVRVFDQUJRUUFRY3lJQU5nTHNBU0FBUlEwQ0N5QUJCVUVBQ3c4TElBRVFRRUVBQzVBSkFnbC9BWDRqQUVIUUFXc2lCeVFBSUFBb0FtQWhDUUpBQWtBQ1FDQUFLQUtBQVVFQlJ3MEFJQUFvQW9RQlFRRkhEUUFnQUNnQ3RBRW9BdHdyRFFFTElBQW9BZ2hCQ0VZTkFDQUdRUUZCMGRJQVFRQVFFd3dCQ3dKQUlBRW9BaEFpREVVTkFDQUFLQUs0QVNFS0lBRW9BaGdoQ3lBTVFRaFBCRUFnREVGNGNTRVBBMEFnQ3lBSVFUUnNhaUFLTmdJb0lBc2dDRUVCY2tFMGJHb2dDallDS0NBTElBaEJBbkpCTkd4cUlBbzJBaWdnQ3lBSVFRTnlRVFJzYWlBS05nSW9JQXNnQ0VFRWNrRTBiR29nQ2pZQ0tDQUxJQWhCQlhKQk5HeHFJQW8yQWlnZ0N5QUlRUVp5UVRSc2FpQUtOZ0lvSUFzZ0NFRUhja0UwYkdvZ0NqWUNLQ0FJUVFocUlRZ2dEa0VJYWlJT0lBOUhEUUFMQ3lBTVFRZHhJZ3hGRFFBRFFDQUxJQWhCTkd4cUlBbzJBaWdnQ0VFQmFpRUlJQTFCQVdvaURTQU1SdzBBQ3dzZ0FpQURjaUFFY2lBRmNrVUVRQ0FHUVFSQm96RkJBQkFUSUFCQ0FEY0NIQ0FBSUFBcEFvQUJOd0lrSUFFZ0NmMEFBZ0Q5Q3dJQUlBRWdCaEEvSVFnTUFRc2dBa0VBU0FSQUlBY2dBallDQUNBR1FRRkJsZUlBSUFjUUUwRUFJUWdNQVFzZ0NTZ0NDQ0lJSUFKSkJFQWdCeUFJTmdJVUlBY2dBallDRUNBR1FRRkI2ZVVBSUFkQkVHb1FFMEVBSVFnTUFRc0NRQ0FKS0FJQUlnZ2dBa3NFUUNBSElBZzJBc1FCSUFjZ0FqWUN3QUVnQmtFQ1Fjbm9BQ0FIUWNBQmFoQVRJQUJCQURZQ0hDQUpLQUlBSVFJTUFRc2dBQ0FDSUFBb0FteHJJQUFvQW5SdU5nSWNDeUFCSUFJMkFnQWdBMEVBU0FSQUlBY2dBellDSUNBR1FRRkIxZUVBSUFkQklHb1FFMEVBSVFnTUFRc2dDU2dDRENJQ0lBTkpCRUFnQnlBQ05nSTBJQWNnQXpZQ01DQUdRUUZCdk9RQUlBZEJNR29RRTBFQUlRZ01BUXNDUUNBSktBSUVJZ0lnQTBzRVFDQUhJQUkyQXJRQklBY2dBellDc0FFZ0JrRUNRWnJuQUNBSFFiQUJhaEFUSUFCQkFEWUNJQ0FKS0FJRUlRTU1BUXNnQUNBRElBQW9BbkJySUFBb0FuaHVOZ0lnQ3lBQklBTTJBZ1JCQUNFSUlBUkJBRXdFUUNBSElBUTJBa0FnQmtFQlFaUGhBQ0FIUVVCckVCTU1BUXNnQ1NnQ0FDSUNJQVJMQkVBZ0J5QUNOZ0pVSUFjZ0JEWUNVQ0FHUVFGQjhPY0FJQWRCMEFCcUVCTU1BUXNDUUNBSktBSUlJZ0lnQkVrRVFDQUhJQUkyQXFRQklBY2dCRFlDb0FFZ0JrRUNRWkhsQUNBSFFhQUJhaEFUSUFBZ0FDZ0NnQUUyQWlRZ0NTZ0NDQ0VFREFFTElBQWdBRFVDZENJUUlBUWdBQ2dDYkd1dGZFSUJmU0FRZ0Q0Q0pBc2dBU0FFTmdJSUlBVkJBRXdFUUNBSElBVTJBbUFnQmtFQlFkRGdBQ0FIUWVBQWFoQVREQUVMSUFrb0FnUWlBaUFGU3dSQUlBY2dBallDZENBSElBVTJBbkFnQmtFQlFjRG1BQ0FIUWZBQWFoQVREQUVMQWtBZ0NTZ0NEQ0lDSUFWSkJFQWdCeUFDTmdLVUFTQUhJQVUyQXBBQklBWkJBa0hqNHdBZ0IwR1FBV29RRXlBQUlBQW9Bb1FCTmdJb0lBa29BZ3doQlF3QkN5QUFJQUExQW5naUVDQUZJQUFvQW5CcnJYeENBWDBnRUlBK0FpZ0xJQUVnQlRZQ0RDQUFJQUF0QUZ4QkFuSTZBRndnQVNBR0VEOUZCRUFNQVFzZ0J5QUIvUUFDQVAwTEJJQUJJQVpCQkVIcE9pQUhRWUFCYWhBVFFRRWhDQXNnQjBIUUFXb2tBQ0FJQzVFQ0FRWi9Jd0JCSUdzaUJTUUFBbjhnQUNnQ1lDSUVSUVJBSUFOQkFVR1Q2d0JCQUJBVFFRQU1BUXRCQUVFRUlBUW9BaEFRRnlJRVJRMEFHaUFCQkVBZ0FDZ0NZQ0VJQTBBQ1FBSkFJQUlnQmtFQ2RHb29BZ0FpQnlBSUtBSVFUd1JBSUFVZ0J6WUNFQ0FEUVFGQjVoSWdCVUVRYWhBVERBRUxJQVFnQjBFQ2RHb2lDU2dDQUVVTkFTQUZJQWMyQWdBZ0EwRUJRZm9hSUFVUUV3c2dCQkFVUVFBTUF3c2dDVUVCTmdJQUlBWkJBV29pQmlBQlJ3MEFDd3NnQkJBVUlBQW9Ba0FRRkFKQUlBRUVRQ0FBSUFGQkFuUWlCQkFZSWdNMkFrQWdBMFVFUUNBQVFRQTJBanhCQUF3REN5QURJQUlnQkJBV0dnd0JDeUFBUVFBMkFrQUxJQUFnQVRZQ1BFRUJDeUFGUVNCcUpBQUxtZ1FCQjM4Z0FVRUJRU1FRRnlJRU5nSmdBa0FDUUNBRVJRMEFBa0FnQVNnQzNBRkJFaUFERUNnRVFDQUJLQUxjQVVFVElBTVFLQTBCQ3d3Q0N5QUJLQUxjQVNJSEtBSUFJUVVnQnlnQ0NDRUdBa0FnQlFSQVFRRWhCQ0FGUVFGeElRZ2dCVUVCUmdSL1FRQUZJQVZCZm5FaEJRTkFBbjlCQUNBRVJRMEFHa0VBSUFFZ0FDQURJQVlvQWdBUkFBQkZEUUFhSUFFZ0FDQURJQVlvQWdRUkFBQkJBRWNMSVFRZ0JrRUlhaUVHSUFsQkFtb2lDU0FGUncwQUN5QUVSUXNoQlVFQUlBUWdDQnNoQkFKQUlBaEZEUUFnQlEwQUlBRWdBQ0FESUFZb0FnQVJBQUJCQUVjaEJBc2dCMEVBTmdJQUlBUU5BUXdEQ3lBSFFRQTJBZ0FMQWtBZ0FTZ0MyQUZCRkNBREVDZ0VRQ0FCS0FMWUFVRVZJQU1RS0EwQkN3d0NDeUFCS0FMWUFTSUhLQUlBSVFVZ0J5Z0NDQ0VHQWtBZ0JRUkFRUUVoQkNBRlFRRnhJUWdnQlVFQlJnUi9RUUFGSUFWQmZuRWhCVUVBSVFrRFFBSi9RUUFnQkVVTkFCcEJBQ0FCSUFBZ0F5QUdLQUlBRVFBQVJRMEFHaUFCSUFBZ0F5QUdLQUlFRVFBQVFRQkhDeUVFSUFaQkNHb2hCaUFKUVFKcUlna2dCVWNOQUFzZ0JFVUxJUVZCQUNBRUlBZ2JJUVFDUUNBSVJRMEFJQVVOQUNBQklBQWdBeUFHS0FJQUVRQUFRUUJISVFRTElBZEJBRFlDQUNBRURRRU1Bd3NnQjBFQU5nSUFDeUFDUVFGQkpCQVhJZ0EyQWdBZ0FFVU5BQ0FCS0FKZ0lBQVFTRUVCSVFvTElBb1BDeUFCS0FKZ0VDVWdBVUVBTmdKZ1FRQUxBZ0FMQkFCQkFRczBBQUpBSUFCRkRRQWdBVVVOQUNBQUlBRW9BZ1EyQXJ3QklBQWdBU2dDQURZQ3VBRWdBQ0FCS0FLNFFFRUNjVFlDK0FFTEM3UUZBUWgvSUFBb0FoZ2lCQ2dDRUNJSlJRUkFRUUFQQ3lBRUtBSVlJUVVnQUNnQ0ZDZ0NBQ2dDRkNFRUFrQUNRQ0FCUlFSQVFRQWhBUU5BSUFVb0FoZ2hBaUFFS0FJY0lBUW9BaGhCbUFGc2FpSUFRWXdCYXlnQ0FDSUhJQUJCbEFGcktBSUFJZ2hySVFNZ0FFR1FBV3NvQWdBZ0FFR1lBV3NvQWdCcklRQUNRQ0FISUFoR0RRQWdBSzBnQTYxK1FpQ0lVQTBBREFRTElBQWdBMndoQXdKQVFRUWdBa0VEZGlBQ1FRZHhRUUJIYWlJQUlBQkJBMFliSWdKRkRRQWdBcTBnQTYxK1FpQ0lVQTBBREFRTFFYOGhBQ0FDSUFOc0lnSWdBVUYvYzBzTkFpQUVRY3dBYWlFRUlBVkJOR29oQlNBQklBSnFJZ0VoQUNBR1FRRnFJZ1lnQ1VjTkFBc01BUXRCQUNFQklBQW9Ba0JGQkVBRFFDQUZLQUlZSVFJZ0JDZ0NIQ0FFS0FJWVFaZ0JiR29pQUVFRWF5Z0NBQ0lISUFCQkRHc29BZ0FpQ0dzaEF5QUFRUWhyS0FJQUlBQkJFR3NvQWdCcklRQUNRQ0FISUFoR0RRQWdBSzBnQTYxK1FpQ0lVQTBBREFRTElBQWdBMndoQXdKQVFRUWdBa0VEZGlBQ1FRZHhRUUJIYWlJQUlBQkJBMFliSWdKRkRRQWdBcTBnQTYxK1FpQ0lVQTBBREFRTFFYOGhBQ0FDSUFOc0lnSWdBVUYvYzBzTkFpQUVRY3dBYWlFRUlBVkJOR29oQlNBQklBSnFJZ0VoQUNBR1FRRnFJZ1lnQ1VjTkFBc01BUXNEUUNBRktBSVlJUUlnQkNnQ0hDQUVLQUlZUVpnQmJHb2lBRUdNQVdzb0FnQWlCeUFBUVpRQmF5Z0NBQ0lJYXlFRElBQkJrQUZyS0FJQUlBQkJtQUZyS0FJQWF5RUFBa0FnQnlBSVJnMEFJQUN0SUFPdGZrSWdpRkFOQUF3REN5QUFJQU5zSVFNQ1FFRUVJQUpCQTNZZ0FrRUhjVUVBUjJvaUFDQUFRUU5HR3lJQ1JRMEFJQUt0SUFPdGZrSWdpRkFOQUF3REMwRi9JUUFnQWlBRGJDSUNJQUZCZjNOTERRRWdCRUhNQUdvaEJDQUZRVFJxSVFVZ0FTQUNhaUlCSVFBZ0JrRUJhaUlHSUFsSERRQUxDeUFBRHd0QmZ3dmFCQUVMZnlBQUJFQWdBQ2dDRkNJQkJFQWdBU2dDQUNJRkJFQWdCU2dDRkNFRElBVW9BaEFFZjBFUVFSRWdBQzBBS0VFQmNSc2hDQU5BSUFNb0Fod2lBZ1JBSUFNb0FpQWlBVUdZQVc0aENrRUFJUWtnQVVHWUFVOEVmd05BSUFJb0FqQWlBUVJBSUFJb0FqUWlCa0VvYmlFSFFRQWhCQ0FHUVNoUEJIOERRQ0FCS0FJZ0VDNGdBVUVBTmdJZ0lBRW9BaVFRTGlBQlFRQTJBaVFnQVNBSUVRSUFJQUZCS0dvaEFTQUVRUUZxSWdRZ0IwY05BQXNnQWlnQ01BVWdBUXNRRkNBQ1FRQTJBakFMSUFJb0FsUWlBUVJBSUFJb0FsZ2lCa0VvYmlFSFFRQWhCQ0FHUVNoUEJIOERRQ0FCS0FJZ0VDNGdBVUVBTmdJZ0lBRW9BaVFRTGlBQlFRQTJBaVFnQVNBSUVRSUFJQUZCS0dvaEFTQUVRUUZxSWdRZ0IwY05BQXNnQWlnQ1ZBVWdBUXNRRkNBQ1FRQTJBbFFMSUFJb0FuZ2lBUVJBSUFJb0Fud2lCa0VvYmlFSFFRQWhCQ0FHUVNoUEJIOERRQ0FCS0FJZ0VDNGdBVUVBTmdJZ0lBRW9BaVFRTGlBQlFRQTJBaVFnQVNBSUVRSUFJQUZCS0dvaEFTQUVRUUZxSWdRZ0IwY05BQXNnQWlnQ2VBVWdBUXNRRkNBQ1FRQTJBbmdMSUFKQm1BRnFJUUlnQ1VFQmFpSUpJQXBIRFFBTElBTW9BaHdGSUFJTEVCUWdBMEVBTmdJY0N3SkFJQU1vQWloRkRRQWdBeWdDSkNJQlJRMEFJQUVRRkNBRC9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQS9Rc0NKQXNnQXlnQ05CQVVJQU5CekFCcUlRTWdDMEVCYWlJTElBVW9BaEJKRFFBTElBVW9BaFFGSUFNTEVCUWdCVUVBTmdJVUlBQW9BaFFvQWdBUUZDQUFLQUlVSWdGQkFEWUNBQXNnQVJBVUlBQkJBRFlDRkFzZ0FDZ0NSQkFVSUFBUUZBc0wyUk1CRVg4akFFRWdheUlQSkFBZ0R5QUZOZ0lZSUFFZ0F5Z0NIRUhNQUd4cUtBSWNJQU1vQWlCQm1BRnNhaUVRQWtBQ1FDQURLQUlvRFFBZ0VDZ0NHRVVOQUNBUVFSeHFJUWtEUUFKQUlBa29BZ2dnQ1NnQ0FFY0VmeUFKS0FJTUlBa29BZ1JHQlVFQkN3MEFJQU1vQWlRaUFTQUpLQUlZUVNodVR3UkFJQWhCQVVIdkZVRUFFQk1NQkFzZ0NTZ0NGQ0FCUVNoc2FpSUJLQUlnRUdzZ0FTZ0NKQkJySUFFb0FoUWdBU2dDRUd3aURFVU5BQ0FCS0FJWUlRRWdERUVJVHdSQUlBeEJlSEVoQzBFQUlRb0RRQ0FCUWdBM0FvUUVJQUZDQURjQ3dBTWdBVUlBTndMOEFpQUJRZ0EzQXJnQ0lBRkNBRGNDOUFFZ0FVSUFOd0t3QVNBQlFnQTNBbXdnQVVJQU53SW9JQUZCb0FScUlRRWdDa0VJYWlJS0lBdEhEUUFMQzBFQUlRb2dERUVIY1NJTVJRMEFBMEFnQVVJQU53SW9JQUZCeEFCcUlRRWdDa0VCYWlJS0lBeEhEUUFMQ3lBSlFTUnFJUWtnRFVFQmFpSU5JQkFvQWhoSkRRQUxDeUFGSVF3Q1FDQUNMUUFBUVFKeFJRMEFJQWRCQlUwRVFDQUlRUUpCdnlCQkFCQVREQUVMQWtBZ0JTMEFBRUgvQVVZRVFDQUZMUUFCUVpFQlJnMEJDeUFJUVFKQjZTQkJBQkFUREFFTElBOGdCVUVHYWlJTU5nSVlDMEVVRUJnaUMwVU5BQUovSUFBdEFHeEJBWEVFUUNBQVFTaHFJUkVnQUNnQ0tDRU1JQUJCTEdvTUFRc2dBaTBBaUN4QkFuRUVRQ0FDUWJBb2FpRVJJQUlvQXJBb0lRd2dBa0c4S0dvTUFRc2dEeUFGSUFkcUlBeHJOZ0ljSUE5QkdHb2hFU0FQUVJ4cUN5SVNLQUlBSVFBZ0MwSUFOd0lNSUFzZ0REWUNDQ0FMSUF3MkFnQWdDeUFBSUF4cU5nSUVJQXRCQVJBalJRUkFJQXNRYlJvZ0N5Z0NDQ0FMS0FJQWF5QUxFRElnREdvaEFDQVJLQUlBSVFFZ0VpQVNLQUlBSWdNZ0FpMEFBRUVFY1FSL0lBTWdBR3NnQVdwQkFVMEVRQ0FJUVFGQm9TSkJBQkFUREFNTEFrQWdBQzBBQUVIL0FVWUVRQ0FBTFFBQlFaSUJSZzBCQ3lBSVFRRkJqQ0pCQUJBVERBTUxJQUJCQW1vRklBQUxJQUZySWdCck5nSUFJQkVnQUNBQmFqWUNBQ0FFUVFBMkFnQWdCaUFQS0FJWUlBVnJOZ0lBUVFFaEZ3d0JDeUFRS0FJWUJFQWdFRUVjYWlFSEEwQWdBeWdDSkNFQUlBY29BaFFoQVFKQUlBY29BZ2dnQnlnQ0FFY0VmeUFIS0FJTUlBY29BZ1JHQlVFQkN3MEFJQUVnQUVFb2JHb2lGQ2dDRkNBVUtBSVFiQ0lZUlEwQUlCUW9BaGdoQ1VFQUlSVURRQUpBQW44Z0NTZ0NLRVVFUUNBTElCUW9BaUFnRlNBREtBSW9RUUZxRUdrTUFRc2dDMEVCRUNNTFJRUkFJQWxCQURZQ0pBd0JDeUFKS0FJb1JRUkFRUUFoQVFOQUlBRWlBRUVCYWlFQklBc2dGQ2dDSkNBVklBQVFhVVVOQUFzZ0J5Z0NIQ0VCSUFsQkF6WUNJQ0FKSUFFMkFoZ2dDU0FCSUFCclFRRnFOZ0ljQ3lBSkFuOUJBU0FMUVFFUUkwVU5BQnBCQWlBTFFRRVFJMFVOQUJvZ0MwRUNFQ01pQUVFRFJ3UkFJQUJCQTJvTUFRc2dDMEVGRUNNaUFFRWZSd1JBSUFCQkJtb01BUXNnQzBFSEVDTkJKV29MTmdJa1FRQWhBUU5BSUFFaUFFRUJhaUVCSUF0QkFSQWpEUUFMSUFrZ0NTZ0NJQ0FBYWpZQ0lBSkFBa0FDZnlBSktBSW9JZ0JGQkVBZ0FpZ0MwQ3NnQXlnQ0hFRzRDR3hxS0FJUUlRQWdDU2dDTUVVRVFDQUpLQUlBUWZBQkVCc2lBVVVOQkNBSklBRTJBZ0FnQVNBSktBSXdRUmhzYWtFQVFmQUJFQmthSUFsQkNqWUNNQXNnQ1NnQ0FDSUtJZ0g5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUQ5Q3dJQUlBRkNBRGNDRUVFQlFRcEI3UUFnQUVFQmNSc2dBRUVFY1JzaEFVRUFEQUVMSUFrb0FnQWlBU0FBUVFGcklnMUJHR3hxSWdvb0FnUWdDaWdDREVjTkFTQUNLQUxRS3lBREtBSWNRYmdJYkdvb0FoQWhEU0FKS0FJd0lnb2dBRUVCYWtrRWZ5QUJJQXBCQ21vaUNrRVliQkFiSWdGRkRRTWdDU0FCTmdJQUlBRWdDU2dDTUVFWWJHcEJBRUh3QVJBWkdpQUpJQW8yQWpBZ0NTZ0NBQVVnQVFzZ0FFRVliR29pQ2lJQi9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQS9Rc0NBQ0FCUWdBM0FoQUNmMEVCSUExQkJIRU5BQnBCN1FBZ0RVRUJjVVVOQUJwQkFrRUNRUUVnQ2tFTWF5Z0NBQ0lCUVFwR0d5QUJRUUZHR3dzaEFTQUFDeUVOSUFvZ0FUWUNEQXNnQ1NnQ0pDRUFJQUlvQXRBcklBTW9BaHhCdUFoc2FpMEFFRUhBQUhFRVFBTkFJQTFCR0d3aURpQUpLQUlBYWlBQVFRRWdEUnNpRXpZQ0VDQUpLQUlnSVJaQkFDRUtJQUFoQVNBVFFRSlBCRUFEUUNBS1FRRnFJUW9nQVVFRFN5QUJRUUYySVFFTkFBc0xJQW9nRm1vaUFVRWhUd1JBSUE4Z0FUWUNFQ0FJUVFGQml2a0FJQTlCRUdvUUV3d0RDeUFMSUFFUUl5RUtJQWtvQWdBaUFTQU9haUlPSUFvMkFoUWdBQ0FPS0FJUWF5SUFRUUJNRFFNZ0FpZ0MwQ3NnQXlnQ0hFRzRDR3hxS0FJUUlRb2dDU2dDTUNJT0lBMUJBbXBKQkVBZ0FTQU9RUXBxSWc1QkdHd1FHeUlCUlEwRElBa2dBVFlDQUNBQklBa29BakJCR0d4cVFRQkI4QUVRR1JvZ0NTQU9OZ0l3SUFrb0FnQWhBUXNnQVNBTlFRRnFJZzFCR0d4cUlnSDlEQUFBQUFBQUFBQUFBQUFBQUFBQUFBRDlDd0lBSUFGQ0FEY0NFQ0FLUVFSeEJFQWdBVUVCTmdJTURBRUxJQXBCQVhFRVFDQUJRUUpCQWtFQklBRkJER3NvQWdBaUFVRUtSaHNnQVVFQlJoczJBZ3dGSUFGQjdRQTJBZ3dMREFBTEFBc0RRQ0FOUVJoc0lnNGdDU2dDQUdvaUFTQUJLQUlNSUFFb0FnUnJJZ0VnQUNBQUlBRktHeUlCTmdJUUlBa29BaUFoRTBFQUlRb2dBVUVDVHdSQUEwQWdDa0VCYWlFS0lBRkJBMHNnQVVFQmRpRUJEUUFMQ3lBS0lCTnFJZ0ZCSVU4RVFDQVBJQUUyQWdBZ0NFRUJRWXI1QUNBUEVCTU1BZ3NnQ3lBQkVDTWhDaUFKS0FJQUlnRWdEbW9pRGlBS05nSVVJQUFnRGlnQ0VHc2lBRUVBVEEwQ0lBSW9BdEFySUFNb0FoeEJ1QWhzYWlnQ0VDRUtJQWtvQWpBaURpQU5RUUpxU1FSQUlBRWdEa0VLYWlJT1FSaHNFQnNpQVVVTkFpQUpJQUUyQWdBZ0FTQUpLQUl3UVJoc2FrRUFRZkFCRUJrYUlBa2dEallDTUNBSktBSUFJUUVMSUFFZ0RVRUJhaUlOUVJoc2FpSUIvUXdBQUFBQUFBQUFBQUFBQUFBQUFBQUEvUXNDQUNBQlFnQTNBaEFnQ2tFRWNRUkFJQUZCQVRZQ0RBd0JDeUFLUVFGeEJFQWdBVUVDUVFKQkFTQUJRUXhyS0FJQUlnRkJDa1liSUFGQkFVWWJOZ0lNQlNBQlFlMEFOZ0lNQ3d3QUN3QUxJQXNRTWd3RkN5QUpRY1FBYWlFSklCVkJBV29pRlNBWVJ3MEFDd3NnQjBFa2FpRUhJQmxCQVdvaUdTQVFLQUlZU1EwQUN3c2dDeEJ0UlFSQUlBc1FNZ3dCQ3lBTEtBSUlJQXNvQWdCcklBc1FNaUFNYWlFQklCRW9BZ0FoQUNBQ0xRQUFRUVJ4QkVBZ0VpZ0NBQ0FCYXlBQWFrRUJUUVJBSUFoQkFVR2hJa0VBRUJNTUFnc0NRQ0FCTFFBQVFmOEJSZ1JBSUFFdEFBRkJrZ0ZHRFFFTElBaEJBVUdNSWtFQUVCTU1BZ3NnQVVFQ2FpRUJDeUFBSUFGR0RRQWdFaUFTS0FJQUlBQWdBV3RxTmdJQUlCRWdBVFlDQUVFQklSY2dCRUVCTmdJQUlBWWdEeWdDR0NBRmF6WUNBQXNnRDBFZ2FpUUFJQmNMbHlRQ0ZIOE9mZ0pBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnQUNnQ1ZBNEZBQUVDQXdRS0N3SkFJQUFvQWpRaUJpQUFLQUxFQVNJQlNRUkFJQUFvQWtBaUJ5QUJRUUZxU1EwQkN5QUFLQUxzQVVFQlFZYkNBRUVBRUJNTURBc2dBQ2dDTEVVRVFDQUFLQUlrSVFKQkFDRUJEQVVMSUFCQkFEWUNMQ0FBS0FKRUlRTkJBU0VCREFRTEFrQWdBQ2dDTkNJR0lBQW9Bc1FCSWdGSkJFQWdBQ2dDUUNJSElBRkJBV3BKRFFFTElBQW9BdXdCUVFGQnM4SUFRUUFRRXd3TEN5QUFLQUlzUlFSQUlBQW9BaVFoQkVFQUlRRU1DQXNnQUVFQU5nSXNJQUFvQWpBaEEwRUJJUUVNQndzQ1FDQUFLQUkwSWdRZ0FDZ0N4QUVpQ2trRVFDQUFLQUpBSWc0Z0NrRUJha2tOQVFzZ0FDZ0M3QUZCQVVHNnd3QkJBQkFUREFvTElBQW9BaXhGQkVBZ0FDZ0NLQ0VMREFZTElBQkNBRGNDNUFFZ0FFRUFOZ0lzSUFBb0FzZ0JJUXdEUUNBTUlBZEJCSFJxSWdVb0FnZ2lEd1JBSUFVb0Fnd2hFa0VBSVFFRFFBSkFJQThnQVVGL2Myb2lFQ0FTSUFGQkJIUnFJaEVvQWdCcUlnbEJIMHNOQUNBRktBSUFJaE5CZnlBSmRrc05BQ0FBSUFJZ0V5QUpkQ0lKSUFJZ0NVa2JJQWtnQWhzaUFqWUM1QUVMQWtBZ0VTZ0NCQ0FRYWlJSlFSOUxEUUFnQlNnQ0JDSVFRWDhnQ1haTERRQWdBQ0FESUJBZ0NYUWlDU0FESUFsSkd5QUpJQU1iSWdNMkF1Z0JDeUFCUVFGcUlnRWdEMGNOQUFzTElBZEJBV29pQnlBS1J3MEFDeUFDUlEwSElBTkZEUWNnQUMwQUFFVUVRQ0FBSUFBb0F0QUJOZ0pzSUFBZ0FDZ0N6QUUyQW1RZ0FDQUFLQUxZQVRZQ2NDQUFJQUFvQXRRQk5nSm9DeUFBS0FJd0lRVkJBU0VCREFVTEFrQWdBQ2dDTkNJRklBQW9Bc1FCSWdsSkJFQWdBQ2dDUUNJU0lBbEJBV3BKRFFFTElBQW9BdXdCUVFGQmpjTUFRUUFRRXd3SkN5QUFLQUlzUlFSQUlBQW9Bc2dCSWcwZ0FDZ0NIQ0lFUVFSMGFpRUxJQUFvQWlnaENBd0VDeUFBUWdBM0F1UUJJQUJCQURZQ0xDQUFLQUxJQVNFTkEwQWdEU0FHUVFSMGFpSUtLQUlJSWc0RVFDQUtLQUlNSVJCQkFDRUJBMEFDUUNBT0lBRkJmM05xSWhFZ0VDQUJRUVIwYWlJVEtBSUFhaUlNUVI5TERRQWdDaWdDQUNJVVFYOGdESFpMRFFBZ0FDQUNJQlFnREhRaURDQUNJQXhKR3lBTUlBSWJJZ0kyQXVRQkN3SkFJQk1vQWdRZ0VXb2lERUVmU3cwQUlBb29BZ1FpRVVGL0lBeDJTdzBBSUFBZ0F5QVJJQXgwSWd3Z0F5QU1TUnNnRENBREd5SUROZ0xvQVFzZ0FVRUJhaUlCSUE1SERRQUxDeUFHUVFGcUlnWWdDVWNOQUFzZ0FrVU5CaUFEUlEwR0FrQWdBQzBBQUFSQUlBQW9BbXdoQmd3QkN5QUFJQUFvQXRBQklnWTJBbXdnQUNBQUtBTE1BVFlDWkNBQUlBQW9BdGdCTmdKd0lBQWdBQ2dDMUFFMkFtZ0xRUUVoQVF3REN3SkFJQUFvQWpRaUJpQUFLQUxFQVNJQlNRUkFJQUFvQWtBaUR5QUJRUUZxU1EwQkN5QUFLQUxzQVVFQlFlRENBRUVBRUJNTUJnc2dBQ2dDTEVVRVFDQUFLQUxJQVNBQUtBSWNJZ1pCQkhScUlRVWdBQ2dDS0NFSFFRQWhBUXdDQ3lBQUlBWTJBaHdnQUVFQU5nSXNRUUVoQVF3QkN3TkFBbjhDUUNBQlJRUkFJQUpCQVdvaEFnd0JDeUFBSUFNMkFpZ2dBQ2dDT0NBRFRRMEpJQUFvQWpBaEJFRUFEQUVMUVFFTElRRURRQUpBQWtBQ1FBSkFJQUZGQkVBZ0FDQUVOZ0lnSUFRZ0FDZ0NQRThOQVNBQUlBWTJBaHdnQmlFQlFRQWhCUXdFQ3lBQUlBSTJBaVFnQUNnQ1RDQUNUUVJBSUFBb0Fod2hBVUVCSVFVTUJBc2dBQ2dDRUNBQUtBSWdiQ0FBS0FJTUlBQW9BaWhzYWlBQUtBSVVJQUFvQWh4c2FpQUFLQUlZSUFKc2FpSUJJQUFvQWdoUEJFQU1EQXNnQUNnQ0JDQUJRUUYwYWlJQkx3RUFEUUVNRFFzZ0FDZ0NLRUVCYWlFRERBRUxRUUFoQVF3REMwRUJJUUVNQWdzRFFBSkFBa0FDUUNBRlJRUkFJQUVnQjA4TkFTQUFLQUlnSWdVZ0FDZ0N5QUVnQVVFRWRHb2lEU2dDQ0U4TkF5QUFMUUFBUlFSQUlBQWdEU2dDRENBRlFRUjBhaUlCS0FJTUlBRW9BZ2hzTmdKTUN5QUFLQUpJSVFKQkFTRUJEQVVMSUFBZ0FVRUJhaUlCTmdJY0RBRUxJQUFvQWlCQkFXb2hCRUVBSVFFTUF3dEJBQ0VGREFFTFFRRWhCUXdBQ3dBTEFBc0FDd05BQW44Q1FDQUJSUVJBSUFBZ0IwRUJhaUlITmdJb0RBRUxJQVlnRDA4TkNDQUFRZ0EzQXVRQklBQW9Bc2dCSUFaQkJIUnFJZ1VvQWdnaUMwVU5DQ0FGS0FJTUlRcEJBQ0VDUVFBaEJFRUFJUUVEUUFKQUlBc2dBVUYvYzJvaUNTQUtJQUZCQkhScUlnNG9BZ0JxSWdoQkgwc05BQ0FGS0FJQUlneEJmeUFJZGtzTkFDQUFJQVFnRENBSWRDSUlJQVFnQ0VrYklBZ2dCQnNpQkRZQzVBRUxBa0FnRGlnQ0JDQUphaUlJUVI5TERRQWdCU2dDQkNJSlFYOGdDSFpMRFFBZ0FDQUNJQWtnQ0hRaUNDQUNJQWhKR3lBSUlBSWJJZ0kyQXVnQkN5QUJRUUZxSWdFZ0MwY05BQXNnQkVVTkJpQUNSUTBHQWtBZ0FDMEFBQVJBSUFBb0Ftd2hBZ3dCQ3lBQUlBQW9BdEFCSWdJMkFtd2dBQ0FBS0FMTUFUWUNaQ0FBSUFBb0F0Z0JOZ0p3SUFBZ0FDZ0MxQUUyQW1nTFFRQU1BUXRCQVFzaEFRTkFBa0FDUUFKQUFrQWdBVVVFUUNBQUlBSTJBdUFCSUFJZ0FDZ0NjRThOQVNBQUtBSmtJUTFCQUNFQkRBUUxJQUFvQWpnZ0IwMEVRQ0FBS0FJZ0lRTkJBU0VCREFRTElBQW9BaEFnQUNnQ0lHd2dBQ2dDRENBSGJHb2dBQ2dDRkNBR2JHb2dBQ2dDR0NBQUtBSWtiR29pQVNBQUtBSUlUd1JBREFzTElBQW9BZ1FnQVVFQmRHb2lBUzhCQUEwQkRBd0xJQUFnQmtFQmFpSUdOZ0ljREFFTFFRQWhBUXdEQzBFQklRRU1BZ3NEUUFKQUFrQUNRQ0FBQW44Z0FVVUVRQ0FBSUEwMkF0d0JJQTBnQUNnQ2FFOE5BaUFBS0FJd0RBRUxJQU5CQVdvTElnTTJBaUFnQUNnQ1BDSUJJQVVvQWdnaUJDQUJJQVJKR3lBRFN3UkFJQVVvQWdBaUFTQUJyU0llSUFRZ0EwRi9jMm9pQ0swaUZvWWlGeUFXaUtkSERRTWdCU2dDQkNJRVFuOGdGb2luY1NBRVJ3MERJQVN0SWhVZ0ZvWWlHRUlCZlNJWklBQTFBdGdCZkNBWWdDRWZJQmtnQUNnQzBBRWlDYTE4SUJpQUlSb2dGMElCZlNJYklBQTFBdFFCZkNBWGdDRWdJQnNnQUNnQ3pBRWlEcTE4SUJlQUlSd2dBVUovSUFVb0Fnd2dBMEVFZEdvaUN5Z0NBQ0lLSUFocXJTSWRpS2R4SUFGSERRTWdCQ0FWSUFzb0FnUWlBU0FJYXEwaUZZWWlJU0FWaUtkSERRTWdBQ2dDNEFFaUJLMGlJaUFoZ2tJQVVnUkFJQVFnQ1VjTkJFSi9JQldHUW4rRklCcEMvLy8vL3crRElCYUdnMUFOQkFzZ0FDZ0MzQUVpQkswaUZTQWVJQjJHZ2tJQVVnUkFJQVFnRGtjTkJFSi9JQjJHUW4rRklCeEMvLy8vL3crRElCYUdnMUFOQkFzZ0N5Z0NDQ0lFUlEwRElBc29BZ3hGRFFNZ0hLY2lDeUFncDBZTkF5QWFweUlJSUIrblJnMERJQUFnQUNnQ1JDSUhOZ0lvSUFBZ0ZTQWJmQ0FYZ0tjZ0NuWWdDeUFLZG1zZ0dTQWlmQ0FZZ0tjZ0FYWWdDQ0FCZG1zZ0JHeHFOZ0lrUVFFaEFRd0ZDeUFBS0FMY0FTSUJJQUFvQXVRQklnUnFJQUVnQkhCcklRME1BUXNnQUNnQzRBRWlBU0FBS0FMb0FTSUVhaUFCSUFSd2F5RUNRUUFoQVF3REMwRUFJUUVNQVF0QkFTRUJEQUFMQUFzQUN3QUxBMEFDZndKQUlBRkZCRUFnQUNBSVFRRnFJZ2cyQWlnTUFRc2dBQ0FHTmdMZ0FTQUFLQUp3SUFaTkRRY2dBQ2dDWkNFUFFRQU1BUXRCQVFzaEFRTkFBa0FDUUFKQUFrQWdBVVVFUUNBQUlBODJBdHdCSUE4Z0FDZ0NhRThOQVNBQUlBVTJBaHdnQlNFRVFRQWhBUXdFQ3lBQUtBSTRJQWhOQkVBZ0FDZ0NJQ0VIUVFFaEFRd0VDeUFBS0FJUUlBQW9BaUJzSUFBb0Fnd2dDR3hxSUFBb0FoUWdCR3hxSUFBb0FoZ2dBQ2dDSkd4cUlnRWdBQ2dDQ0U4RVFBd0tDeUFBS0FJRUlBRkJBWFJxSWdFdkFRQU5BUXdMQ3lBQUtBTGdBU0lCSUFBb0F1Z0JJZ1pxSUFFZ0JuQnJJUVlNQVF0QkFDRUJEQU1MUVFFaEFRd0NDd05BQWtBQ1FBSkFBa0FnQVVVRVFDQUVJQkpQRFFJZ0FDQUFLQUl3SWdjMkFpQWdEU0FFUVFSMGFpRUxEQUVMSUFBZ0IwRUJhaUlITmdJZ0N5QUFLQUk4SWdFZ0N5Z0NDQ0lDSUFFZ0Fra2JJQWRMQkVBZ0N5Z0NBQ0lCSUFHdEloNGdBaUFIUVg5emFpSUtyU0lXaGlJWElCYUlwMGNOQXlBTEtBSUVJZ0pDZnlBV2lLZHhJQUpIRFFNZ0FxMGlGU0FXaGlJWVFnRjlJaGtnQURVQzJBRjhJQmlBSVI4Z0dTQUFLQUxRQVNJT3JYd2dHSUFoR2lBWFFnRjlJaHNnQURVQzFBRjhJQmVBSVNBZ0d5QUFLQUxNQVNJTXJYd2dGNEFoSENBQlFuOGdDeWdDRENBSFFRUjBhaUlES0FJQUlna2dDbXF0SWgySXAzRWdBVWNOQXlBQ0lCVWdBeWdDQkNJQklBcHFyU0lWaGlJaElCV0lwMGNOQXlBQUtBTGdBU0lDclNJaUlDR0NRZ0JTQkVBZ0FpQU9SdzBFUW44Z0ZZWkNmNFVnR2tMLy8vLy9ENE1nRm9hRFVBMEVDeUFBS0FMY0FTSUNyU0lWSUI0Z0hZYUNRZ0JTQkVBZ0FpQU1SdzBFUW44Z0hZWkNmNFVnSEVMLy8vLy9ENE1nRm9hRFVBMEVDeUFES0FJSUlnSkZEUU1nQXlnQ0RFVU5BeUFjcHlJRElDQ25SZzBESUJxbklnb2dINmRHRFFNZ0FDQUFLQUpFSWdnMkFpZ2dBQ0FWSUJ0OElCZUFweUFKZGlBRElBbDJheUFaSUNKOElCaUFweUFCZGlBS0lBRjJheUFDYkdvMkFpUkJBU0VCREFVTElBQWdCRUVCYWlJRU5nSWNEQUVMSUFBb0F0d0JJZ0VnQUNnQzVBRWlBbW9nQVNBQ2NHc2hEMEVBSVFFTUF3dEJBQ0VCREFFTFFRRWhBUXdBQ3dBTEFBc0FDd05BQW44Q1FDQUJSUVJBSUFBZ0MwRUJhaUlMTmdJb0RBRUxJQUFnQlRZQ0lDQUFLQUk4SUFWTkRRWWdBQ2dDYkNFSVFRQU1BUXRCQVFzaEFRTkFBa0FDUUFKQUFrQWdBVVVFUUNBQUlBZzJBdUFCSUFnZ0FDZ0NjRThOQVNBQUtBSmtJUTFCQUNFQkRBUUxJQUFvQWpnZ0MwMEVRQ0FBS0FJY0lRWkJBU0VCREFRTElBQW9BaEFnQUNnQ0lHd2dBQ2dDRENBTGJHb2dBQ2dDRkNBQUtBSWNiR29nQUNnQ0dDQUFLQUlrYkdvaUFTQUFLQUlJVHdSQURBa0xJQUFvQWdRZ0FVRUJkR29pQVM4QkFBMEJEQW9MSUFBb0FpQkJBV29oQlF3QkMwRUFJUUVNQXd0QkFTRUJEQUlMQTBBQ1FBSkFBa0FDUUNBQlJRUkFJQUFnRFRZQzNBRWdEU0FBS0FKb1R3MENJQUFnQkRZQ0hDQUVJUVlNQVFzZ0FDQUdRUUZxSWdZMkFod0xJQVlnRGtrRVFDQUFLQUlnSWdjZ0FDZ0N5QUVnQmtFRWRHb2lBU2dDQ0NJRFR3MERJQUVvQWdBaUFpQUNyU0llSUFNZ0IwRi9jMm9pQ3EwaUZvWWlGeUFXaUtkSERRTWdBU2dDQkNJRFFuOGdGb2luY1NBRFJ3MERJQU90SWhVZ0ZvWWlHRUlCZlNJWklBQTFBdGdCZkNBWWdDRWZJQmtnQUNnQzBBRWlENjE4SUJpQUlSb2dGMElCZlNJYklBQTFBdFFCZkNBWGdDRWdJQnNnQUNnQ3pBRWlDYTE4SUJlQUlSd2dBa0ovSUFFb0Fnd2dCMEVFZEdvaUFTZ0NBQ0lISUFwcXJTSWRpS2R4SUFKSERRTWdBeUFWSUFFb0FnUWlBaUFLYXEwaUZZWWlJU0FWaUtkSERRTWdBQ2dDNEFFaUE2MGlJaUFoZ2tJQVVnUkFJQU1nRDBjTkJFSi9JQldHUW4rRklCcEMvLy8vL3crRElCYUdnMUFOQkFzZ0FDZ0MzQUVpQTYwaUZTQWVJQjJHZ2tJQVVnUkFJQU1nQ1VjTkJFSi9JQjJHUW4rRklCeEMvLy8vL3crRElCYUdnMUFOQkFzZ0FTZ0NDQ0lEUlEwRElBRW9BZ3hGRFFNZ0hLY2lBU0FncDBZTkF5QWFweUlLSUIrblJnMERJQUFnQUNnQ1JDSUxOZ0lvSUFBZ0ZTQWJmQ0FYZ0tjZ0IzWWdBU0FIZG1zZ0dTQWlmQ0FZZ0tjZ0FuWWdDaUFDZG1zZ0EyeHFOZ0lrUVFFaEFRd0ZDeUFBS0FMY0FTSUJJQUFvQXVRQklnSnFJQUVnQW5CcklRME1BUXNnQUNnQzRBRWlBU0FBS0FMb0FTSUNhaUFCSUFKd2F5RUlRUUFoQVF3REMwRUFJUUVNQVF0QkFTRUJEQUFMQUFzQUN3QUxBMEFDZndKQUlBRkZCRUFnQkVFQmFpRUVEQUVMSUFBZ0F6WUNJQ0FBS0FJOElBTk5EUVVnQUNnQ1JDRUNRUUFNQVF0QkFRc2hBUU5BQWtBQ1FBSkFBa0FnQVVVRVFDQUFJQUkyQWlnZ0FpQUFLQUk0VHcwQklBQWdCallDSENBR0lRRkJBQ0VGREFRTElBQWdCRFlDSkNBQUtBSk1JQVJOQkVBZ0FDZ0NIQ0VCUVFFaEJRd0VDeUFBS0FJUUlBQW9BaUJzSUFBb0Fnd2dBQ2dDS0d4cUlBQW9BaFFnQUNnQ0hHeHFJQUFvQWhnZ0JHeHFJZ0VnQUNnQ0NFOEVRQXdJQ3lBQUtBSUVJQUZCQVhScUlnRXZBUUFOQVF3SkN5QUFLQUlnUVFGcUlRTU1BUXRCQUNFQkRBTUxRUUVoQVF3Q0N3TkFBa0FDUUFKQUlBVkZCRUFnQVNBSFR3MEJJQUFvQWlBaUJTQUFLQUxJQVNBQlFRUjBhaUlOS0FJSVR3MERJQUF0QUFCRkJFQWdBQ0FOS0FJTUlBVkJCSFJxSWdFb0Fnd2dBU2dDQ0d3MkFrd0xJQUFvQWtnaEJFRUJJUUVNQlFzZ0FDQUJRUUZxSWdFMkFod01BUXNnQUNnQ0tFRUJhaUVDUVFBaEFRd0RDMEVBSVFVTUFRdEJBU0VGREFBTEFBc0FDd0FMUVFBUEN5QUFLQUxzQVVFQlFab0tRUUFRRXd0QkFBOExJQUZCQVRzQkFFRUJDNVlMQVFwL0FrQWdBU2dDQUNBRVFRTnNJZ3gySWdaQmtJQ0FBWEVOQUNBQUlBQkJIR29pRGlBQUtBSnNJQVpCN3dOeGFpMEFBRUVDZEdvaUNqWUNhQ0FBSUFBb0FnUWdDaWdDQUNJSktBSUFJZ2hySWdZMkFnUUNRQ0FJSUFBb0FnQWlCMEVRZGtzRVFDQUpLQUlFSVFzZ0FDQUlOZ0lFSUFvZ0NVRUlRUXdnQmlBSVNTSUdHMm9vQWdBMkFnQWdDeUFMUlNBR0d5RUpJQUFvQWdnaEJnTkFBa0FnQmcwQUlBQW9BaEFpQmtFQmFpRUxJQVl0QUFFaENpQUdMUUFBUWY4QlJnUkFJQXBCa0FGUEJFQWdBQ0FBS0FJTVFRRnFOZ0lNSUFkQmdQNERhaUVIUVFnaEJnd0NDeUFBSUFzMkFoQWdCeUFLUVFsMGFpRUhRUWNoQmd3QkN5QUFJQXMyQWhCQkNDRUdJQWNnQ2tFSWRHb2hCd3NnQUNBR1FRRnJJZ1kyQWdnZ0FDQUhRUUYwSWdjMkFnQWdBQ0FJUVFGMElnZzJBZ1FnQ0VHQWdBSkpEUUFMSUFnaEJnd0JDeUFBSUFjZ0NFRVFkR3NpQnpZQ0FDQUdRWUNBQW5GRkJFQWdDU2dDQkNFTElBb2dDVUVNUVFnZ0JpQUlTU0lJRzJvb0FnQTJBZ0FnQzBVZ0N5QUlHeUVKSUFBb0FnZ2hDQU5BQWtBZ0NBMEFJQUFvQWhBaUNFRUJhaUVMSUFndEFBRWhDaUFJTFFBQVFmOEJSZ1JBSUFwQmtBRlBCRUFnQUNBQUtBSU1RUUZxTmdJTUlBZEJnUDREYWlFSFFRZ2hDQXdDQ3lBQUlBczJBaEFnQnlBS1FRbDBhaUVIUVFjaENBd0JDeUFBSUFzMkFoQkJDQ0VJSUFjZ0NrRUlkR29oQndzZ0FDQUlRUUZySWdnMkFnZ2dBQ0FIUVFGMElnYzJBZ0FnQUNBR1FRRjBJZ1kyQWdRZ0JrR0FnQUpKRFFBTERBRUxJQWtvQWdRaENRc2dDVVVOQUNBQUlBNGdBU2dDQkNBTVFSRnFka0VFY1NBQlFRUnJJZzBvQWdBZ0RFRVRhblpCQVhFZ0FTZ0NBQ0lJSUF4QkVHcDJRY0FBY1NBSUlBeDJRYW9CY1hJZ0NDQU1RUXhxUVE0Z0JCdDJRUkJ4Y25KeUlnOUJrTDRCYWkwQUFFRUNkR29pQ3pZQ2FDQUFJQVlnQ3lnQ0FDSUtLQUlBSWdocklnWTJBZ1FDUUNBSUlBZEJFSFpMQkVBZ0NpZ0NCQ0VKSUFBZ0NEWUNCQ0FMSUFwQkNFRU1JQVlnQ0VraUJodHFLQUlBTmdJQUlBa2dDVVVnQmhzaENpQUFLQUlJSVFZRFFBSkFJQVlOQUNBQUtBSVFJZ1pCQVdvaEN5QUdMUUFCSVFrZ0JpMEFBRUgvQVVZRVFDQUpRWkFCVHdSQUlBQWdBQ2dDREVFQmFqWUNEQ0FIUVlEK0Eyb2hCMEVJSVFZTUFnc2dBQ0FMTmdJUUlBY2dDVUVKZEdvaEIwRUhJUVlNQVFzZ0FDQUxOZ0lRUVFnaEJpQUhJQWxCQ0hScUlRY0xJQUFnQmtFQmF5SUdOZ0lJSUFBZ0IwRUJkQ0lITmdJQUlBQWdDRUVCZENJSU5nSUVJQWhCZ0lBQ1NRMEFDd3dCQ3lBQUlBY2dDRUVRZEdzaUNUWUNBQ0FHUVlDQUFuRkZCRUFnQ2lnQ0JDRUhJQXNnQ2tFTVFRZ2dCaUFJU1NJSUcyb29BZ0EyQWdBZ0IwVWdCeUFJR3lFS0lBQW9BZ2doQndOQUFrQWdCdzBBSUFBb0FoQWlCMEVCYWlFTElBY3RBQUVoQ0NBSExRQUFRZjhCUmdSQUlBaEJrQUZQQkVBZ0FDQUFLQUlNUVFGcU5nSU1JQWxCZ1A0RGFpRUpRUWdoQnd3Q0N5QUFJQXMyQWhBZ0NTQUlRUWwwYWlFSlFRY2hCd3dCQ3lBQUlBczJBaEJCQ0NFSElBa2dDRUVJZEdvaENRc2dBQ0FIUVFGcklnYzJBZ2dnQUNBSlFRRjBJZ2syQWdBZ0FDQUdRUUYwSWdZMkFnUWdCa0dBZ0FKSkRRQUxEQUVMSUFvb0FnUWhDZ3NnQWlBRFFRQWdBMnNnQ2lBUFFaREFBV290QUFBaUFrWWJOZ0lBSUEwZ0RTZ0NBRUVnSUF4MGNqWUNBQ0FCSUFFb0FnQWdBaUFLY3lJRFFSTjBRUkJ5SUF4MGNqWUNBQ0FCSUFFb0FnUkJDQ0FNZEhJMkFnUWdCQ0FGY2tVRVFDQUJRWDRnQUNnQ2ZHdEJBblJxSWdJZ0FpZ0NCRUdBZ0FKeU5nSUVJQUlnQWlnQ0FDQURRUjkwY2tHQWdBUnlOZ0lBSUFKQkJHc2lBaUFDS0FJQVFZQ0FDSEkyQWdBTElBUkJBMGNOQUNBQklBQW9BbnhCQW5ScUlnQkJCR29nQUNnQ0JFRUVjallDQUNBQUlBQW9BZ3hCQVhJMkFnd2dBQ0FBS0FJSUlBTkJFblJ5UVFKeU5nSUlDd3V1Q3dFSmZ3SkFJQUVvQWdBZ0JFRURiQ0lOZGlJSFFaQ0FnQUZ4RFFBZ0IwSHZBM0VpQjBVTkFDQUFJQUJCSEdvaURpQUFLQUpzSUFkcUxRQUFRUUowYWlJTE5nSm9JQUFnQUNnQ0JDQUxLQUlBSWdvb0FnQWlDV3NpQnpZQ0JBSkFJQWtnQUNnQ0FDSUlRUkIyU3dSQUlBb29BZ1FoRENBQUlBazJBZ1FnQ3lBS1FRaEJEQ0FISUFsSklnY2JhaWdDQURZQ0FDQU1JQXhGSUFjYklRb2dBQ2dDQ0NFSEEwQUNRQ0FIRFFBZ0FDZ0NFQ0lIUVFGcUlRd2dCeTBBQVNFTElBY3RBQUJCL3dGR0JFQWdDMEdRQVU4RVFDQUFJQUFvQWd4QkFXbzJBZ3dnQ0VHQS9nTnFJUWhCQ0NFSERBSUxJQUFnRERZQ0VDQUlJQXRCQ1hScUlRaEJCeUVIREFFTElBQWdERFlDRUVFSUlRY2dDQ0FMUVFoMGFpRUlDeUFBSUFkQkFXc2lCellDQ0NBQUlBaEJBWFFpQ0RZQ0FDQUFJQWxCQVhRaUNUWUNCQ0FKUVlDQUFra05BQXNnQ1NFSERBRUxJQUFnQ0NBSlFSQjBheUlJTmdJQUlBZEJnSUFDY1VVRVFDQUtLQUlFSVF3Z0N5QUtRUXhCQ0NBSElBbEpJZ2tiYWlnQ0FEWUNBQ0FNUlNBTUlBa2JJUW9nQUNnQ0NDRUpBMEFDUUNBSkRRQWdBQ2dDRUNJSlFRRnFJUXdnQ1MwQUFTRUxJQWt0QUFCQi93RkdCRUFnQzBHUUFVOEVRQ0FBSUFBb0FneEJBV28yQWd3Z0NFR0EvZ05xSVFoQkNDRUpEQUlMSUFBZ0REWUNFQ0FJSUF0QkNYUnFJUWhCQnlFSkRBRUxJQUFnRERZQ0VFRUlJUWtnQ0NBTFFRaDBhaUVJQ3lBQUlBbEJBV3NpQ1RZQ0NDQUFJQWhCQVhRaUNEWUNBQ0FBSUFkQkFYUWlCellDQkNBSFFZQ0FBa2tOQUFzTUFRc2dDaWdDQkNFS0N3SkFJQXBGRFFBZ0FDQU9JQUVvQWdRZ0RVRVJhblpCQkhFZ0FVRUVheUlQS0FJQUlBMUJFMnAyUVFGeElBRW9BZ0FpQ1NBTlFSQnFka0hBQUhFZ0NTQU5ka0dxQVhGeUlBa2dEVUVNYWtFT0lBUWJka0VRY1hKeWNpSUtRWkMrQVdvdEFBQkJBblJxSWd3MkFtZ2dBQ0FISUF3b0FnQWlDeWdDQUNJSmF5SUhOZ0lFSUFwQmtNQUJhaTBBQUNFT0FrQWdDU0FJUVJCMlN3UkFJQXNvQWdRaENpQUFJQWsyQWdRZ0RDQUxRUWhCRENBSElBbEpJZ2NiYWlnQ0FEWUNBQ0FLSUFwRklBY2JJUXNnQUNnQ0NDRUhBMEFDUUNBSERRQWdBQ2dDRUNJSFFRRnFJUXdnQnkwQUFTRUtJQWN0QUFCQi93RkdCRUFnQ2tHUUFVOEVRQ0FBSUFBb0FneEJBV28yQWd3Z0NFR0EvZ05xSVFoQkNDRUhEQUlMSUFBZ0REWUNFQ0FJSUFwQkNYUnFJUWhCQnlFSERBRUxJQUFnRERZQ0VFRUlJUWNnQ0NBS1FRaDBhaUVJQ3lBQUlBZEJBV3NpQnpZQ0NDQUFJQWhCQVhRaUNEWUNBQ0FBSUFsQkFYUWlDVFlDQkNBSlFZQ0FBa2tOQUFzTUFRc2dBQ0FJSUFsQkVIUnJJZ28yQWdBZ0IwR0FnQUp4UlFSQUlBc29BZ1FoQ0NBTUlBdEJERUVJSUFjZ0NVa2lDUnRxS0FJQU5nSUFJQWhGSUFnZ0NSc2hDeUFBS0FJSUlRZ0RRQUpBSUFnTkFDQUFLQUlRSWdoQkFXb2hEQ0FJTFFBQklRa2dDQzBBQUVIL0FVWUVRQ0FKUVpBQlR3UkFJQUFnQUNnQ0RFRUJhallDRENBS1FZRCtBMm9oQ2tFSUlRZ01BZ3NnQUNBTU5nSVFJQW9nQ1VFSmRHb2hDa0VISVFnTUFRc2dBQ0FNTmdJUVFRZ2hDQ0FLSUFsQkNIUnFJUW9MSUFBZ0NFRUJheUlJTmdJSUlBQWdDa0VCZENJS05nSUFJQUFnQjBFQmRDSUhOZ0lFSUFkQmdJQUNTUTBBQ3d3QkN5QUxLQUlFSVFzTElBSWdBMEVBSUFOcklBc2dEa1liTmdJQUlBOGdEeWdDQUVFZ0lBMTBjallDQUNBQklBRW9BZ0FnQ3lBT2N5SUNRUk4wUVJCeUlBMTBjallDQUNBQklBRW9BZ1JCQ0NBTmRISTJBZ1FnQkNBR2NrVUVRQ0FCSUFWQkFuUnJJZ0FnQUNnQ0JFR0FnQUp5TmdJRUlBQWdBQ2dDQUNBQ1FSOTBja0dBZ0FSeU5nSUFJQUJCQkdzaUFDQUFLQUlBUVlDQUNISTJBZ0FMSUFSQkEwY05BQ0FCSUFWQkFuUnFJZ0FnQUNnQ0JFRUJjallDQkNBQUlBQW9BZ0FnQWtFU2RISkJBbkkyQWdBZ0FFRUVheUlBSUFBb0FnQkJCSEkyQWdBTElBRWdBU2dDQUVHQWdJQUJJQTEwY2pZQ0FBc0xyUUVBSUFCQnNLSUJOZ0prSUFCQnNLSUJOZ0pnSUFCQnNLSUJOZ0pjSUFCQnNLSUJOZ0pZSUFCQnNLSUJOZ0pVSUFCQnNLSUJOZ0pRSUFCQnNLSUJOZ0pNSUFCQnNLSUJOZ0pJSUFCQnNLSUJOZ0pFSUFCQnNLSUJOZ0pBSUFCQnNLSUJOZ0k4SUFCQnNLSUJOZ0k0SUFCQnNLSUJOZ0kwSUFCQnNLSUJOZ0l3SUFCQnNLSUJOZ0lzSUFCQnNLSUJOZ0lvSUFCQnNLSUJOZ0lrSUFCQnNLSUJOZ0lnSUFCQnNLSUJOZ0ljQy9RRkFnbC9BWDRnQUNBQk5nSUFJQUQ5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUQ5Q3dNSUlBQWdBellDSENBQUlBSkJBV3NpQmpZQ0dDQUJRUU54SVFvQ2Z5QUNRUUJNQkVBZ0FTRUVJQU1NQVFzZ0FDQUJRUUZxSWdRMkFnQWdBUzBBQUFzaEFVRUlJUWdnQUVFSU5nSVFJQUFnQVVIL0FVWWlDVFlDRkNBQUlBR3RJZzAzQXdnQ1FDQUtRUU5HRFFBZ0FDQUNRUUpySWdzMkFoZ2dBQUovSUFKQkFrZ0VRQ0FFSVFVZ0F3d0JDeUFBSUFSQkFXb2lCVFlDQUNBRUxRQUFDeUlFUWY4QlJpSUpOZ0lVSUFCQkQwRVFJQUZCL3dGR0d5SUlOZ0lRSUFBZ0JFRUlkQ0FCY3EwaURUY0RDQ0FLUVFKR0JFQWdCU0VFSUFZaEFpQUxJUVlNQVFzZ0FDQUNRUU5ySWd3MkFoZ2dBQUovSUFKQkEwZ0VRQ0FGSVFjZ0F3d0JDeUFBSUFWQkFXb2lCellDQUNBRkxRQUFDeUlCUWY4QlJpSUpOZ0lVSUFCQkIwRUlJQVJCL3dGR0d5QUlhaUlGTmdJUUlBQWdBYTBnQ0syR0lBMkVJZzAzQXdnZ0NrRUJSZ1JBSUFjaEJDQUZJUWdnQ3lFQ0lBd2hCZ3dCQ3lBQUlBSkJCR3NpQmpZQ0dDQUFBbjhnQWtFRVNBUkFJQWNoQkNBRERBRUxJQUFnQjBFQmFpSUVOZ0lBSUFjdEFBQUxJZ0pCL3dGR0lnazJBaFFnQUVFSFFRZ2dBVUgvQVVZYklBVnFJZ2cyQWhBZ0FDQUNyU0FGcllZZ0RZUWlEVGNEQ0NBTUlRSUxBa0FnQWtFRlRnUkFJQVFvQWdBaEF5QUFJQUpCQldzMkFoZ2dBQ0FFUVFScU5nSUFEQUVMUVFBaEFVRi9RUUFnQXhzaEF5QUNRUUpJRFFBRFFDQUFJQVJCQVdvaUFqWUNBQ0FFTFFBQUlRUWdBQ0FHUVFGcklnVTJBaGdnQTBIL0FTQUJkRUYvYzNFZ0JDQUJkSEloQXlBQlFRaHFJUUVnQmtFQlN5QUNJUVFnQlNFR0RRQUxDeUFBSUFOQkdIWWlBVUgvQVVZMkFoUWdBRUVIUVFnZ0NSc2lBa0VIUVFnZ0EwSC9BWEVpQkVIL0FVWWJhaUlHUVFkQkNDQURRUWgyUWY4QmNTSUZRZjhCUmh0cUlnZEJCMEVJSUFOQkVIWkIvd0Z4SWdOQi93RkdHeUFJYW1vMkFoQWdBQ0FGSUFKMElBTWdCblJ5SUFFZ0IzUnlJQVJ5clNBSXJZWWdEWVEzQXdnTHR3VUNFbjhDZmdKL0lBQW9BaHdnQVVHWUFXeHFJZ0pCa0FGcktBSUFJQUpCbUFGcktBSUFheUlESVFVZ0FrR01BV3NvQWdBZ0FrR1VBV3NvQWdCcklnSWhCa0hBQUNBRElBTkJ3QUJQR3lFRFFjQUFJQUlnQWtIQUFFOGJJUVFDUUNBRlJRMEFJQVpGRFFBZ0EwVU5BQ0FFUlEwQUlBTkJmeUFFYmtFQ2Rrc05BRUVCUVJ3UUZ5SUNJQVEyQWd3Z0FpQUROZ0lJSUFJZ0JqWUNCQ0FDSUFVMkFnQWdBaUFFclNJVUlBYXRmRUlCZlNBVWdDSVVweUlFTmdJVUlBSWdBNjBpRlNBRnJYeENBWDBnRllBaUZhY2lBellDRUFKQUlCUkMvLy8vL3crRElCVkMvLy8vL3crRGZrSWdpS2NOQUNBQ1FRUWdBeUFFYkJBWElnTTJBaGdnQTBVTkFDQUNEQUlMSUFJUUZBdEJBQXNpQ1VVRVFFRUFEd3NDUUNBQkJFQURRQ0FPUVpnQmJDSVBJQUFvQWh4cUlnVW9BaGdpQWdSQUlBVkJIR29oRUNBRktBSVVJUU1nQlNnQ0VDRUVRUUFoQ2dOQUlBTWdCR3dFUUNBUUlBcEJKR3hxSVFaQkFDRUxBMEFnQmlnQ0ZDQUxRU2hzYWlJSUtBSVVJZ0lnQ0NnQ0VDSUhiQVJBUVFBaEJBTkFJQWdvQWhnZ0JFSEVBR3hxSWdNb0Fqd2lFUVJBSUFNb0Fnd2hCeUFES0FJVUlSSWdBeWdDRUNFTUlBTW9BZ2dpRXlBR0tBSUFheUVESUFZb0FoQWlEVUVCY1FSQUlBQW9BaHdnRDJvaUFrR1FBV3NvQWdBZ0Eyb2dBa0dZQVdzb0FnQnJJUU1MSUFjZ0JpZ0NCR3NoQWlBTlFRSnhCRUFnQWlBQUtBSWNJQTlxSWcxQmpBRnJLQUlBYWlBTlFaUUJheWdDQUdzaEFnc2dDU0FESUFJZ0F5QU1JQk5ySWd4cUlCSWdCMnNnQW1vZ0VVRUJJQXhCQUJBcVJRMEpJQWdvQWhBaEJ5QUlLQUlVSVFJTElBUkJBV29pQkNBQ0lBZHNTUTBBQ3lBRktBSVFJUVFnQlNnQ0ZDRURDeUFMUVFGcUlnc2dBeUFFYkVrTkFBc2dCU2dDR0NFQ0N5QUtRUUZxSWdvZ0Fra05BQXNMSUE1QkFXb2lEaUFCUncwQUN3c2dDUThMSUFrUUowRUFDOGdNQWc1L0Juc2dBQ2dDQ0NJTElBQW9BZ1JxSVFjQ1FDQUFLQUlNUlFSQUlBZEJBa2dOQVNBQktBSUFJQUVnQzBFQ2RHb2lEU2dDQUNJRVFRRnFRUUYxYXlFRElBQW9BZ0FoQmdKQUlBZEJCRWtFUUNBRUlRSU1BUXNnQjBFRWF5SUFRUUYySWdsQkFXb2hEQUpBSUFCQkZra0VRRUVCSVFBTUFRc2dCaUFCSUF0QkFuUnFJZ1VnQ1VFQ2RDSUNha0VJYWtrZ0JpQUpRUU4wYWtFSWFpSUFJQVZCQkdwTGNRUkFRUUVoQUF3QkN5QUdJQUVnQW1wQkNHcEpJQUZCQkdvZ0FFbHhCRUJCQVNFQURBRUxJQXhCL1AvLy93ZHhJZ1ZCQVhJaEFDQUZRUUYwSVFnZ0JQMFJJUkFnQS8wUklSSDlEQUFBQUFBQ0FBQUFCQUFBQUFZQUFBQWhGRUVBSVFJRFFDQUJJQUpCQW5SQkJISWlBMnI5QUFJQUlSTWdBeUFOYXYwQUFnQWhFaUFHSUFKQkEzUnFJZ01nRWYxYUFnQURJQU5CQ0dvZ0V5QVNJQkFnRXYwTkRBME9EeEFSRWhNVUZSWVhHQmthR3lJVC9hNEIvUXdDQUFBQUFnQUFBQUlBQUFBQ0FBQUEvYTRCUVFMOXJBSDlzUUVpRVAxYUFnQUFJQU5CRUdvZ0VQMWFBZ0FCSUFOQkdHb2dFUDFhQWdBQ0lBWWdGUDBNQVFBQUFBRUFBQUFCQUFBQUFRQUFBUDFRSWhYOUd3QkJBblJxSUJBZ0VTQVEvUTBNRFE0UEVCRVNFeFFWRmhjWUdSb2IvYTRCUVFIOXJBRWdFLzJ1QVNJUi9Wb0NBQUFnQmlBVi9Sc0JRUUowYWlBUi9Wb0NBQUVnQmlBVi9Sc0NRUUowYWlBUi9Wb0NBQUlnQmlBVi9Sc0RRUUowYWlBUi9Wb0NBQU1nRlAwTUNBQUFBQWdBQUFBSUFBQUFDQUFBQVAydUFTRVVJQkFoRVNBU0lSQWdBa0VFYWlJQ0lBVkhEUUFMSUJEOUd3TWhBaUFSL1JzRElRTWdCU0FNUmcwQklBSWhCQXNEUUNBQklBQkJBblFpQW1vb0FnQWhDU0FDSUExcUtBSUFJUUlnQmlBSVFRSjBhaUlGSUFNMkFnQWdCU0FESUFrZ0FpQUVha0VDYWtFQ2RXc2lBMnBCQVhVZ0JHbzJBZ1FnQ0VFQ2FpRUlJQUFnREVjZ0FpRUVJQUJCQVdvaEFBMEFDd3NnQmlBSVFRSjBhaUFETmdJQVFYd2hBQ0FIUVFGeEJIOGdCaUFIUVFGcklnQkJBblJxSUFFZ0FFRUJkR29vQWdBZ0FrRUJha0VCZFdzaUFEWUNBQ0FBSUFOcVFRRjFJUU5CZUFWQmZBc2dCaUFIUVFKMElnQnFhaUFDSUFOcU5nSUFJQUVnQmlBQUVCWWFEd3NDUUFKQUFrQWdCMEVCYXc0Q0FBRUNDeUFCSUFFb0FnQkJBbTAyQWdBUEN5QUFLQUlBSWdRZ0FTZ0NBQ0FCSUF0QkFuUnFJZ01vQWdCQkFXcEJBWFZySWdBMkFnUWdCQ0FBSUFNb0FnQnFOZ0lBSUFFZ0JDa0NBRGNDQUE4TElBZEJBMGdOQUNBQUtBSUFJZ29nQVNnQ0FDQUJJQXRCQW5ScUlnNG9BZ1FpQkNBT0tBSUFJZ0JxUVFKcVFRSjFheUlESUFCcU5nSUFRUUVoQ0FKQUlBZEJBbXNpQmlBSFFRRnhJZ3hGSWdCclFRSkpCRUFnQkNFQ0RBRUxJQWNnQUd0QkJHc2lBRUVCZGlJQ1FRRnFJUThDUUFKQUlBQkJGa2tOQUNBS1FRUnFJZ1VnQVNBQ1FRSjBJZ0JxUVFocVNTQUtJQUpCQTNScVFReHFJZ0lnQVVFRWFrdHhEUUFnQlNBQUlBRWdDMEVDZEdvaUFHcEJER3BKSUFCQkNHb2dBa2x4RFFBZ0QwRjhjU0lGUVFGeUlRQWdCVUVCZEVFQmNpRUlJQVQ5RVNFUklBUDlFU0VRUVFBaEFnTkFJQW9nQWtFRGRHb2lCQ0FCSUFKQkFuUWlBMnI5QUFJRUlCRWdBeUFPYXYwQUFnZ2lFZjBOREEwT0R4QVJFaE1VRlJZWEdCa2FHeUlUSUJIOXJnSDlEQUlBQUFBQ0FBQUFBZ0FBQUFJQUFBRDlyZ0ZCQXYyc0FmMnhBU0lTSUJJZ0VDQVMvUTBNRFE0UEVCRVNFeFFWRmhjWUdSb2IvYTRCUVFIOXJBRWdFLzJ1QVNJVC9RMEVCUVlIR0JrYUd3Z0pDZ3NjSFI0Zi9Rc0NGQ0FFSUJBZ0UvME5EQTBPRHhBUkVoTUFBUUlERkJVV0Z5QVMvUTBBQVFJREJBVUdCeEFSRWhNTURRNFAvUXNDQkNBU0lSQWdBa0VFYWlJQ0lBVkhEUUFMSUJIOUd3TWhBaUFRL1JzRElRTWdCU0FQUmcwQ0lBSWhCQXdCQzBFQklRQUxBMEFnQVNBQVFRSjBhaWdDQUNFTklBNGdBRUVCYWlJRlFRSjBhaWdDQUNFQ0lBb2dDRUVDZEdvaUNTQUROZ0lBSUFrZ0F5QU5JQUlnQkdwQkFtcEJBblZySWdOcVFRRjFJQVJxTmdJRUlBaEJBbW9oQ0NBQUlBOUhJQUloQkNBRklRQU5BQXNMSUFvZ0NFRUNkR29nQXpZQ0FBSkFJQXhGQkVBZ0NpQUdRUUowYWlBQklBZEJBWFJxUVFScktBSUFJQUpCQVdwQkFYVnJJZ0FnQTJwQkFYVWdBbW8yQWdBTUFRc2dBaUFEYWlFQUN5QUtJQWRCQW5RaUEycEJCR3NnQURZQ0FDQUJJQW9nQXhBV0dnc0xvQWNEQTMwRGV3Si9JQU5CQ0U4RVFDQURRUU4ySVFzRFFDQUIvUUFFQUNFSElBQWdBUDBBQkFBaUNDQUMvUUFFQUNJSi9ReThkTE0vdkhTelA3eDBzeis4ZExNLy9lWUIvZVFCL1FzRUFDQUJJQWdnQi8wTXp6R3dQczh4c0Q3UE1iQSt6ekd3UHYzbUFmM2xBU0FKL1F6aDBUWS80ZEUyUCtIUk5qL2gwVFkvL2VZQi9lVUIvUXNFQUNBQ0lBZ2dCLzBNNWREaVArWFE0ai9sME9JLzVkRGlQLzNtQWYza0FmMExCQUFnQWYwQUJCQWhCeUFBSUFEOUFBUVFJZ2dnQXYwQUJCQWlDZjBNdkhTelA3eDBzeis4ZExNL3ZIU3pQLzNtQWYza0FmMExCQkFnQVNBSUlBZjlETTh4c0Q3UE1iQSt6ekd3UHM4eHNENzk1Z0g5NVFFZ0NmME00ZEUyUCtIUk5qL2gwVFkvNGRFMlAvM21BZjNsQWYwTEJCQWdBaUFJSUFmOURPWFE0ai9sME9JLzVkRGlQK1hRNGovOTVnSDk1QUg5Q3dRUUlBSkJJR29oQWlBQlFTQnFJUUVnQUVFZ2FpRUFJQXBCQVdvaUNpQUxSdzBBQ3dzQ1FDQURRUWR4SWdORkRRQWdBU29DQUNFRUlBQWdBaW9DQUNJR1E3eDBzeitVSUFBcUFnQWlCWkk0QWdBZ0FTQUZJQVJEenpHd3ZwU1NJQVpENGRFMnY1U1NPQUlBSUFJZ0JTQUVRK1hRNGorVWtqZ0NBQ0FEUVFGR0RRQWdBU29DQkNFRUlBQWdBaW9DQkNJR1E3eDBzeitVSUFBcUFnUWlCWkk0QWdRZ0FTQUZJQVJEenpHd3ZwU1NJQVpENGRFMnY1U1NPQUlFSUFJZ0JTQUVRK1hRNGorVWtqZ0NCQ0FEUVFKR0RRQWdBU29DQ0NFRUlBQWdBaW9DQ0NJR1E3eDBzeitVSUFBcUFnZ2lCWkk0QWdnZ0FTQUZJQVJEenpHd3ZwU1NJQVpENGRFMnY1U1NPQUlJSUFJZ0JTQUVRK1hRNGorVWtqZ0NDQ0FEUVFOR0RRQWdBU29DRENFRUlBQWdBaW9DRENJR1E3eDBzeitVSUFBcUFnd2lCWkk0QWd3Z0FTQUZJQVJEenpHd3ZwU1NJQVpENGRFMnY1U1NPQUlNSUFJZ0JTQUVRK1hRNGorVWtqZ0NEQ0FEUVFSR0RRQWdBU29DRUNFRUlBQWdBaW9DRUNJR1E3eDBzeitVSUFBcUFoQWlCWkk0QWhBZ0FTQUZJQVJEenpHd3ZwU1NJQVpENGRFMnY1U1NPQUlRSUFJZ0JTQUVRK1hRNGorVWtqZ0NFQ0FEUVFWR0RRQWdBU29DRkNFRUlBQWdBaW9DRkNJR1E3eDBzeitVSUFBcUFoUWlCWkk0QWhRZ0FTQUZJQVJEenpHd3ZwU1NJQVpENGRFMnY1U1NPQUlVSUFJZ0JTQUVRK1hRNGorVWtqZ0NGQ0FEUVFaR0RRQWdBU29DR0NFRUlBQWdBaW9DR0NJR1E3eDBzeitVSUFBcUFoZ2lCWkk0QWhnZ0FTQUZJQVJEenpHd3ZwU1NJQVpENGRFMnY1U1NPQUlZSUFJZ0JTQUVRK1hRNGorVWtqZ0NHQXNMNEFFQ0JuOERld0pBSUFORkRRQWdBMEVFVHdSQUlBTkJmSEVoQmdOQUlBQWdCRUVDZENJRmFpSUhJQWY5QUFJQUlBSWdCV29pQi8wQUFnQWlDeUFCSUFWcUlnWDlBQUlBSWd6OXJnRkJBdjJzQWYyeEFTSUtJQXY5cmdIOUN3SUFJQVVnQ3YwTEFnQWdCeUFLSUF6OXJnSDlDd0lBSUFSQkJHb2lCQ0FHUncwQUN5QURJQVpHRFFFTEEwQWdBQ0FHUVFKMElnUnFJZ1VnQlNnQ0FDQUNJQVJxSWdVb0FnQWlCeUFCSUFScUlnZ29BZ0FpQ1dwQkFuVnJJZ1FnQjJvMkFnQWdDQ0FFTmdJQUlBVWdCQ0FKYWpZQ0FDQUdRUUZxSWdZZ0EwY05BQXNMQzlrQkFRTi9Jd0JCZ0FGcklnWWtBQ0FHSVFVQ1FDQUJLQUlNSUFKQkJIUnFJZ0lvQWdBaUJFVUVRQ0FDSVFFTUFRc0RRQ0FGSUFJMkFnQWdCVUVFYWlFRklBUWlBU0lDS0FJQUlnUU5BQXNMUVFBaEJBTkFJQUVvQWdnaUFpQUVTQVJBSUFFZ0JEWUNDQ0FFSVFJTEFrQWdBaUFEVGcwQUEwQWdBaUFCS0FJRVRnMEJBa0FnQUVFQkVDTUVRQ0FCSUFJMkFnUU1BUXNnQWtFQmFpRUNDeUFDSUFOSURRQUxDeUFCSUFJMkFnZ2dCU0FHUndSQUlBVkJCR3NpQlNnQ0FDRUJJQUloQkF3QkN3c2dBU2dDQkNBR1FZQUJhaVFBSUFOSUM4UUpBZzkvQTNzakFFR0FBbXNpQ1NRQUFrQWdBRVVFUUVFQUlRQU1BUXNDUUNBQklBQW9BZ0JHQkVBZ0FDZ0NCQ0FDUmcwQkN5QUFJQUkyQWdRZ0FDQUJOZ0lBSUFrZ0FqWUNBQ0FKSUFFMkFvQUJJQUloQkNBQklRWURRQ0FKSUFnaUQwRUJhaUlJUVFKMElncHFJQVJCQVdwQkFtMGlCellDQUNBSlFZQUJhaUFLYWlBR1FRRnFRUUp0SWdvMkFnQWdCU0FFSUFac0lneHFJUVVnQnlFRUlBb2hCaUFNUVFGTERRQUxJQUFnQlRZQ0NBSkFBa0FDUUNBRlJRUkFJQUFvQWd3aUFVVU5BU0FCRUJRZ0FFRUFOZ0lNREFFTElBVkJCSFFpQlNBQUtBSVFUUTBDSUFBb0Fnd2dCUkFiSWdJTkFTQURRUUZCampKQkFCQVRJQUFvQWd3aUFVVU5BQ0FCRUJRZ0FFRUFOZ0lNQ3lBQUVCUkJBQ0VBREFNTElBQWdBallDRENBQ0lBQW9BaEFpQVdwQkFDQUZJQUZyRUJrYUlBQWdCVFlDRUNBQUtBSUVJUUlnQUNnQ0FDRUJDeUFBS0FJTUlRWWdEd1JBSUFZZ0FTQUNiRUVFZEdvaUJDRUZBMEFDUUNBSklCQkJBblFpQVdvb0FnQWlDMEVBVEEwQUlBdEJBV3NoRFFKQUFrQWdDVUdBQVdvZ0FXb29BZ0FpQjBFQVRBUkFJQXRCQVhFaENrRUFJUWdnQzBFQlJ3MEJJQVVoQVF3Q0N5QUhRUUlnQnlBSFFRSk9HMnRCQVdwQkFYWWlBaUFIUVlHQWdJQjRiRUgvLy8vL0IycEJBWFlpQVNBQklBSkxHeUlDUVFGcUlnRWdBVUVEY1NJQlFRUWdBUnRySWc1QkJIUWhFU0FPUVFWMElSSWdCeUFPUVFGMGF5RU1JQUpCQTBzZ0IzRWhDRUVBSVFFZ0JTRUNBMEFnQ0FSL0lBUWdFV29nQmlBU2FrRUFJUVVEUUNBRy9SRWlGUDBNQUFBQUFDQUFBQUJBQUFBQVlBQUFBUDJ1QVNJVi9Sc0FJQVQ5RWYwTUFBQUFBQkFBQUFBZ0FBQUFNQUFBQVAydUFTSVQvVm9DQUFBZ0ZmMGJBU0FUL1ZvQ0FBRWdGZjBiQWlBVC9Wb0NBQUlnRmYwYkF5QVQvVm9DQUFNZ0ZQME1FQUFBQURBQUFBQlFBQUFBY0FBQUFQMnVBU0lVL1JzQUlCUDlXZ0lBQUNBVS9Sc0JJQlA5V2dJQUFTQVUvUnNDSUJQOVdnSUFBaUFVL1JzRElCUDlXZ0lBQXlBRVFVQnJJUVFnQmtHQUFXb2hCaUFGUVFScUlnVWdEa2NOQUFzaEJpRUVJQXdGSUFjTElRVURRQUpBSUFZZ0JEWUNBQ0FGUVFGR0JFQWdCa0VRYWlFR0lBUkJFR29oQkF3QkN5QUdJQVEyQWhBZ0JFRVFhaUVFSUFaQklHb2hCaUFGUVFKS0lBVkJBbXNoQlEwQkN3c2dCQ0FDSUFkQkJIUnFJQUVnQVNBTlJuSkJBWEVpQXhzaEJTQUVJQUlnQXhzaEJDQUZJUUlnQVVFQmFpSUJJQXRIRFFBTERBSUxJQXRCL3YvLy93ZHhJUU5CQUNFQ0EwQWdDQ0FOUmlFQklBaEJBbW9oQ0NBRUlBVWdBUnNpQkNFRklBUWhBU0FDUVFKcUlnSWdBMGNOQUFzTElBcEZCRUFnQkNFRkRBRUxJQVFnQVNBSFFRUjBhaUFJSUFnZ0RVWnlRUUZ4SWdJYklRVWdCQ0FCSUFJYklRUUxJQkJCQVdvaUVDQVBSdzBBQ3dzZ0JrRUFOZ0lBQ3lBQUtBSUlJZ0pGRFFBZ0FDZ0NEQ0VFSUFKQkJFOEVRQ0FDUVh4eElRRkJBQ0VHQTBBZ0JFRUFOZ0k4SUFSQzV3YzNBalFnQkVFQU5nSXNJQVJDNXdjM0FpUWdCRUVBTmdJY0lBUkM1d2MzQWhRZ0JFRUFOZ0lNSUFSQzV3YzNBZ1FnQkVGQWF5RUVJQVpCQkdvaUJpQUJSdzBBQ3dzZ0FrRURjU0lCUlEwQVFRQWhCZ05BSUFSQkFEWUNEQ0FFUXVjSE53SUVJQVJCRUdvaEJDQUdRUUZxSWdZZ0FVY05BQXNMSUFsQmdBSnFKQUFnQUF1eEFRRURmd0pBSUFCRkRRQWdBQ2dDQ0NJQlJRMEFJQUFvQWd3aEFDQUJRUVJQQkVBZ0FVRjhjU0VEQTBBZ0FFRUFOZ0k4SUFCQzV3YzNBalFnQUVFQU5nSXNJQUJDNXdjM0FpUWdBRUVBTmdJY0lBQkM1d2MzQWhRZ0FFRUFOZ0lNSUFCQzV3YzNBZ1FnQUVGQWF5RUFJQUpCQkdvaUFpQURSdzBBQ3dzZ0FVRURjU0lCUlEwQVFRQWhBZ05BSUFCQkFEWUNEQ0FBUXVjSE53SUVJQUJCRUdvaEFDQUNRUUZxSWdJZ0FVY05BQXNMQzhrSUFoSi9BM3NqQUVHQUFtc2lDU1FBQW45QkFVRVVFQmNpQjBVRVFDQUNRUUZCNkRGQkFCQVRRUUFNQVFzZ0J5QUJOZ0lFSUFjZ0FEWUNBQ0FKSUFFMkFnQWdDU0FBTmdLQUFRTkFJQWtnQmlJUFFRRnFJZ1pCQW5RaUJXb2dBVUVCYWtFQ2JTSUROZ0lBSUFsQmdBRnFJQVZxSUFCQkFXcEJBbTBpQlRZQ0FDQUVJQUFnQVd3aUNHb2hCQ0FESVFFZ0JTRUFJQWhCQVVzTkFBc2dCeUFFTmdJSUlBUkZCRUFnQnhBVVFRQU1BUXNnQnlBRVFSQVFGeUlETmdJTUlBTkZCRUFnQWtFQlFjY2JRUUFRRXlBSEVCUkJBQXdCQ3lBSElBY29BZ2dpREVFRWREWUNFQ0FESVFFZ0R3UkFJQU1nQnlnQ0JDQUhLQUlBYkVFRWRHb2lBQ0VHQTBBQ1FDQUpJQkJCQW5RaUFtb29BZ0FpQzBFQVRBMEFJQXRCQVdzaERRSkFJQWxCZ0FGcUlBSnFLQUlBSWdoQkFFd0VRRUVBSVFRZ0MwRUJSd1JBSUF0Qi92Ly8vd2R4SVFWQkFDRUNBMEFnQkNBTlJpRUtJQVJCQW1vaEJDQUdJQUFnQ2hzaUFDRUdJQUpCQW1vaUFpQUZSdzBBQ3dzZ0MwRUJjUTBCSUFBaEJnd0NDeUFJUVFJZ0NDQUlRUUpPRzJ0QkFXcEJBWFlpQWlBSVFZR0FnSUI0YkVILy8vLy9CMnBCQVhZaUJTQUNJQVZKR3lJQ1FRRnFJZ1VnQlVFRGNTSUZRUVFnQlJ0cklnNUJCWFFoRVNBT1FRUjBJUklnQ0NBT1FRRjBheUVUSUFKQkEwc2dDSEVoRkVFQUlRb2dBQ0VDQTBBQ2Z5QVVSUVJBSUFZaEFDQUlEQUVMSUFFZ0VXb2dCaUFTYWlFQVFRQWhCQU5BSUFIOUVTSVgvUXdBQUFBQUlBQUFBRUFBQUFCZ0FBQUEvYTRCSWhYOUd3QWdCdjBSL1F3QUFBQUFFQUFBQUNBQUFBQXdBQUFBL2E0QkloYjlXZ0lBQUNBVi9Sc0JJQmI5V2dJQUFTQVYvUnNDSUJiOVdnSUFBaUFWL1JzRElCYjlXZ0lBQXlBWC9Rd1FBQUFBTUFBQUFGQUFBQUJ3QUFBQS9hNEJJaFg5R3dBZ0Z2MWFBZ0FBSUJYOUd3RWdGdjFhQWdBQklCWDlHd0lnRnYxYUFnQUNJQlg5R3dNZ0Z2MWFBZ0FESUFGQmdBRnFJUUVnQmtGQWF5RUdJQVJCQkdvaUJDQU9SdzBBQ3lFQklCTUxJUVFEUUFKQUlBRWdBRFlDQUNBRVFRRkdCRUFnQVVFUWFpRUJJQUJCRUdvaEFBd0JDeUFCSUFBMkFoQWdBRUVRYWlFQUlBRkJJR29oQVNBRVFRSktJQVJCQW1zaEJBMEJDd3NnQUNBQ0lBb2dDaUFOUm5KQkFYRWlCUnNoQmlBQUlBSWdDRUVFZEdvZ0JSc2lBQ0VDSUFwQkFXb2lDaUFMUncwQUN3d0JDeUFHSUFBZ0NFRUVkR29nQkNBRUlBMUdja0VCY1NJRkd5QUdJQUFnQlJzaEJpRUFDeUFRUVFGcUloQWdEMGNOQUFzTElBRkJBRFlDQUFKQUlBeEZEUUFnREVFRVR3UkFJQXhCZkhFaEFFRUFJUUVEUUNBRFFRQTJBandnQTBMbkJ6Y0NOQ0FEUVFBMkFpd2dBMExuQnpjQ0pDQURRUUEyQWh3Z0EwTG5CemNDRkNBRFFRQTJBZ3dnQTBMbkJ6Y0NCQ0FEUVVCcklRTWdBVUVFYWlJQklBQkhEUUFMQ3lBTVFRTnhJZ0JGRFFCQkFDRUJBMEFnQTBFQU5nSU1JQU5DNXdjM0FnUWdBMEVRYWlFRElBRkJBV29pQVNBQVJ3MEFDd3NnQndzZ0NVR0FBbW9rQUF0VEFRRi9BbjhnQUMwQURFSC9BVVlFUUNBQVFvRCtnNER3QURjQ0RFRUFJQUFvQWdnaUFTQUFLQUlFVHcwQkdpQUFJQUZCQVdvMkFnZ2dBQ0FCTFFBQVFZRCtBM0kyQWd3TElBQkJBRFlDRUVFQkN3c0ZBQkFNQUF1QkFnQUNRQ0FCUWY4QVRRMEFBa0JCMU5ZQktBSUFLQUlBUlFSQUlBRkJnSDl4UVlDL0EwWU5BZ3dCQ3lBQlFmOFBUUVJBSUFBZ0FVRS9jVUdBQVhJNkFBRWdBQ0FCUVFaMlFjQUJjam9BQUVFQ0R3c2dBVUdBUUhGQmdNQURSeUFCUVlDd0EwOXhSUVJBSUFBZ0FVRS9jVUdBQVhJNkFBSWdBQ0FCUVF4MlFlQUJjam9BQUNBQUlBRkJCblpCUDNGQmdBRnlPZ0FCUVFNUEN5QUJRWUNBQkd0Qi8vOC9UUVJBSUFBZ0FVRS9jVUdBQVhJNkFBTWdBQ0FCUVJKMlFmQUJjam9BQUNBQUlBRkJCblpCUDNGQmdBRnlPZ0FDSUFBZ0FVRU1ka0UvY1VHQUFYSTZBQUZCQkE4TEMwSFV6UUZCR1RZQ0FFRi9Ed3NnQUNBQk9nQUFRUUVMZmdJQmZ3RitJQUM5SWdOQ05JaW5RZjhQY1NJQ1FmOFBSd1I4SUFKRkJFQWdBU0FBUkFBQUFBQUFBQUFBWVFSL1FRQUZJQUJFQUFBQUFBQUE4RU9pSUFFUWNDRUFJQUVvQWdCQlFHb0xOZ0lBSUFBUEN5QUJJQUpCL2dkck5nSUFJQU5DLy8vLy8vLy8vNGVBZjROQ2dJQ0FnSUNBZ1BBL2hMOEZJQUFMQzd3Q0FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnQVVFSmF3NFNBQWdKQ2dnSkFRSURCQW9KQ2dvSUNRVUdCd3NnQWlBQ0tBSUFJZ0ZCQkdvMkFnQWdBQ0FCS0FJQU5nSUFEd3NnQWlBQ0tBSUFJZ0ZCQkdvMkFnQWdBQ0FCTWdFQU53TUFEd3NnQWlBQ0tBSUFJZ0ZCQkdvMkFnQWdBQ0FCTXdFQU53TUFEd3NnQWlBQ0tBSUFJZ0ZCQkdvMkFnQWdBQ0FCTUFBQU53TUFEd3NnQWlBQ0tBSUFJZ0ZCQkdvMkFnQWdBQ0FCTVFBQU53TUFEd3NnQWlBQ0tBSUFRUWRxUVhoeElnRkJDR28yQWdBZ0FDQUJLd01BT1FNQUR3c2dBQ0FDSUFNUkF3QUxEd3NnQWlBQ0tBSUFJZ0ZCQkdvMkFnQWdBQ0FCTkFJQU53TUFEd3NnQWlBQ0tBSUFJZ0ZCQkdvMkFnQWdBQ0FCTlFJQU53TUFEd3NnQWlBQ0tBSUFRUWRxUVhoeElnRkJDR28yQWdBZ0FDQUJLUU1BTndNQUMyOEJCWDhnQUNnQ0FDSURMQUFBUVRCcklnRkJDVXNFUUVFQUR3c0RRRUYvSVFRZ0FrSE1tYlBtQUUwRVFFRi9JQUVnQWtFS2JDSUZhaUFCSUFWQi8vLy8vd2R6U3hzaEJBc2dBQ0FEUVFGcUlnVTJBZ0FnQXl3QUFTQUVJUUlnQlNFRFFUQnJJZ0ZCQ2trTkFBc2dBZ3RKQVFGL0FrQkJBVUVzRUJjaUFRUkFJQUZCQURZQ0VBSkFJQUJCQUV3RVFDQUJRUUZCQ0JBWElnQTJBaVFnQUVVTkFRd0RDeUFCUVFBMkFnd0xJQUVRRkF0QkFDRUJDeUFCQzY0VUFoSi9BbjRqQUVGQWFpSUlKQUFnQ0NBQk5nSThJQWhCSjJvaEZ5QUlRU2hxSVJJQ1FBSkFBa0FDUUFOQVFRQWhCd05BSUFFaERTQUhJQTVCLy8vLy93ZHpTZzBDSUFjZ0Rtb2hEZ0pBQWtBQ1FBSkFJQUVpQnkwQUFDSU1CRUFEUUFKQUFrQWdERUgvQVhFaUFVVUVRQ0FISVFFTUFRc2dBVUVsUncwQklBY2hEQU5BSUF3dEFBRkJKVWNFUUNBTUlRRU1BZ3NnQjBFQmFpRUhJQXd0QUFJZ0RFRUNhaUlCSVF4QkpVWU5BQXNMSUFjZ0RXc2lCeUFPUWYvLy8vOEhjeUlZU2cwSklBQUVRQ0FBSUEwZ0J4QWVDeUFIRFFjZ0NDQUJOZ0k4SUFGQkFXb2hCMEYvSVJFQ1FDQUJMQUFCUVRCcklndEJDVXNOQUNBQkxRQUNRU1JIRFFBZ0FVRURhaUVIUVFFaEV5QUxJUkVMSUFnZ0J6WUNQRUVBSVFrQ1FDQUhMQUFBSWd4QklHc2lBVUVmU3dSQUlBY2hDd3dCQ3lBSElRdEJBU0FCZENJQlFZblJCSEZGRFFBRFFDQUlJQWRCQVdvaUN6WUNQQ0FCSUFseUlRa2dCeXdBQVNJTVFTQnJJZ0ZCSUU4TkFTQUxJUWRCQVNBQmRDSUJRWW5SQkhFTkFBc0xBa0FnREVFcVJnUkFBbjhDUUNBTExBQUJRVEJySWdGQkNVc05BQ0FMTFFBQ1FTUkhEUUFDZnlBQVJRUkFJQVFnQVVFQ2RHcEJDallDQUVFQURBRUxJQU1nQVVFRGRHb29BZ0FMSVJBZ0MwRURhaUVCUVFFTUFRc2dFdzBHSUF0QkFXb2hBU0FBUlFSQUlBZ2dBVFlDUEVFQUlSTkJBQ0VRREFNTElBSWdBaWdDQUNJSFFRUnFOZ0lBSUFjb0FnQWhFRUVBQ3lFVElBZ2dBVFlDUENBUVFRQk9EUUZCQUNBUWF5RVFJQWxCZ01BQWNpRUpEQUVMSUFoQlBHb1FjaUlRUVFCSURRb2dDQ2dDUENFQkMwRUFJUWRCZnlFS0FuOUJBQ0FCTFFBQVFTNUhEUUFhSUFFdEFBRkJLa1lFUUFKL0FrQWdBU3dBQWtFd2F5SUxRUWxMRFFBZ0FTMEFBMEVrUncwQUlBRkJCR29oQVFKL0lBQkZCRUFnQkNBTFFRSjBha0VLTmdJQVFRQU1BUXNnQXlBTFFRTjBhaWdDQUFzTUFRc2dFdzBHSUFGQkFtb2hBVUVBSUFCRkRRQWFJQUlnQWlnQ0FDSUxRUVJxTmdJQUlBc29BZ0FMSVFvZ0NDQUJOZ0k4SUFwQkFFNE1BUXNnQ0NBQlFRRnFOZ0k4SUFoQlBHb1FjaUVLSUFnb0Fqd2hBVUVCQ3lFVUEwQWdCeUVWUVJ3aEN5QUJJZzhzQUFBaUIwSDdBR3RCUmtrTkN5QUJRUUZxSVFFZ0J5QVZRVHBzYWtIL3hBRnFMUUFBSWdkQkFXdEIvd0Z4UVFoSkRRQUxJQWdnQVRZQ1BBSkFJQWRCRzBjRVFDQUhSUTBNSUJGQkFFNEVRQ0FBUlFSQUlBUWdFVUVDZEdvZ0J6WUNBQXdNQ3lBSUlBTWdFVUVEZEdvcEF3QTNBekFNQWdzZ0FFVU5DQ0FJUVRCcUlBY2dBaUFHRUhFTUFRc2dFVUVBVGcwTFFRQWhCeUFBUlEwSUN5QUFMUUFBUVNCeERRc2dDVUgvLzN0eElnd2dDU0FKUVlEQUFIRWJJUWxCQUNFUlFiQUlJUllnRWlFTEFrQUNRQUovQWtBQ1FBSkFBa0FDUUFKQUFuOENRQUpBQWtBQ1FBSkFBa0FDUUNBUExRQUFJZ2ZBSWc5QlUzRWdEeUFIUVE5eFFRTkdHeUFQSUJVYklnZEIyQUJyRGlFRUZoWVdGaFlXRmhZUUZna0dFQkFRRmdZV0ZoWVdBZ1VERmhZS0ZnRVdGZ1FBQ3dKQUlBZEJ3UUJyRGdjUUZnc1dFQkFRQUFzZ0IwSFRBRVlOQ3d3VkN5QUlLUU13SVJwQnNBZ01CUXRCQUNFSEFrQUNRQUpBQWtBQ1FBSkFBa0FnRlE0SUFBRUNBd1FjQlFZY0N5QUlLQUl3SUE0MkFnQU1Hd3NnQ0NnQ01DQU9OZ0lBREJvTElBZ29BakFnRHF3M0F3QU1HUXNnQ0NnQ01DQU9Pd0VBREJnTElBZ29BakFnRGpvQUFBd1hDeUFJS0FJd0lBNDJBZ0FNRmdzZ0NDZ0NNQ0FPckRjREFBd1ZDMEVJSUFvZ0NrRUlUUnNoQ2lBSlFRaHlJUWxCK0FBaEJ3c2dFaUVCSUFncEF6QWlHaUlaUWdCU0JFQWdCMEVnY1NFTUEwQWdBVUVCYXlJQklCbW5RUTl4UVpESkFXb3RBQUFnREhJNkFBQWdHVUlQVmlBWlFnU0lJUmtOQUFzTElBRWhEU0FhVUEwRElBbEJDSEZGRFFNZ0IwRUVka0d3Q0dvaEZrRUNJUkVNQXdzZ0VpRUJJQWdwQXpBaUdpSVpRZ0JTQkVBRFFDQUJRUUZySWdFZ0dhZEJCM0ZCTUhJNkFBQWdHVUlIVmlBWlFnT0lJUmtOQUFzTElBRWhEU0FKUVFoeFJRMENJQW9nRWlBQmF5SUJRUUZxSUFFZ0NrZ2JJUW9NQWdzZ0NDa0RNQ0lhUWdCVEJFQWdDRUlBSUJwOUlobzNBekJCQVNFUlFiQUlEQUVMSUFsQmdCQnhCRUJCQVNFUlFiRUlEQUVMUWJJSVFiQUlJQWxCQVhFaUVSc0xJUllnR2lBU0VDOGhEUXNnRkNBS1FRQkljUTBSSUFsQi8vOTdjU0FKSUJRYklRa0NRQ0FhUWdCU0RRQWdDZzBBSUJJaERVRUFJUW9NRGdzZ0NpQWFVQ0FTSUExcmFpSUJJQUVnQ2tnYklRb01EUXNnQ0MwQU1DRUhEQXNMQW45Qi8vLy8vd2NnQ2lBS1FmLy8vLzhIVHhzaUJ5SUpRUUJISVFzQ1FBSkFBa0FnQ0NnQ01DSUJRZkVNSUFFYklnMGlEMEVEY1VVTkFDQUpSUTBBQTBBZ0R5MEFBRVVOQWlBSlFRRnJJZ2xCQUVjaEN5QVBRUUZxSWc5QkEzRkZEUUVnQ1EwQUN3c2dDMFVOQVFKQUlBOHRBQUJGRFFBZ0NVRUVTUTBBQTBCQmdJS0VDQ0FQS0FJQUlnRnJJQUZ5UVlDQmdvUjRjVUdBZ1lLRWVFY05BaUFQUVFScUlROGdDVUVFYXlJSlFRTkxEUUFMQ3lBSlJRMEJDd05BSUE4Z0R5MEFBRVVOQWhvZ0QwRUJhaUVQSUFsQkFXc2lDUTBBQ3d0QkFBc2lBU0FOYXlBSElBRWJJZ0VnRFdvaEN5QUtRUUJPQkVBZ0RDRUpJQUVoQ2d3TUN5QU1JUWtnQVNFS0lBc3RBQUFORHd3TEN5QUlLUU13SWhsQ0FGSU5BVUVBSVFjTUNRc2dDZ1JBSUFnb0FqQU1BZ3RCQUNFSElBQkJJQ0FRUVFBZ0NSQWdEQUlMSUFoQkFEWUNEQ0FJSUJrK0FnZ2dDQ0FJUVFocUlnYzJBakJCZnlFS0lBY0xJUXhCQUNFSEEwQUNRQ0FNS0FJQUlnMUZEUUFnQ0VFRWFpQU5FRzhpRFVFQVNBMFBJQTBnQ2lBSGEwc05BQ0FNUVFScUlRd2dCeUFOYWlJSElBcEpEUUVMQzBFOUlRc2dCMEVBU0EwTUlBQkJJQ0FRSUFjZ0NSQWdJQWRGQkVCQkFDRUhEQUVMUVFBaEN5QUlLQUl3SVF3RFFDQU1LQUlBSWcxRkRRRWdDRUVFYWlJS0lBMFFieUlOSUF0cUlnc2dCMHNOQVNBQUlBb2dEUkFlSUF4QkJHb2hEQ0FISUF0TERRQUxDeUFBUVNBZ0VDQUhJQWxCZ01BQWN4QWdJQkFnQnlBSElCQklHeUVIREFnTElCUWdDa0VBU0hFTkNVRTlJUXNnQUNBSUt3TXdJQkFnQ2lBSklBY2dCUkVWQUNJSFFRQk9EUWNNQ2dzZ0J5MEFBU0VNSUFkQkFXb2hCd3dBQ3dBTElBQU5DU0FUUlEwRFFRRWhCd05BSUFRZ0IwRUNkR29vQWdBaUFBUkFJQU1nQjBFRGRHb2dBQ0FDSUFZUWNVRUJJUTRnQjBFQmFpSUhRUXBIRFFFTUN3c0xJQWRCQ2s4RVFFRUJJUTRNQ2dzRFFDQUVJQWRCQW5ScUtBSUFEUUZCQVNFT0lBZEJBV29pQjBFS1J3MEFDd3dKQzBFY0lRc01CZ3NnQ0NBSE9nQW5RUUVoQ2lBWElRMGdEQ0VKQ3lBS0lBc2dEV3NpRENBS0lBeEtHeUlCSUJGQi8vLy8vd2R6U2cwRFFUMGhDeUFRSUFFZ0VXb2lDaUFLSUJCSUd5SUhJQmhLRFFRZ0FFRWdJQWNnQ2lBSkVDQWdBQ0FXSUJFUUhpQUFRVEFnQnlBS0lBbEJnSUFFY3hBZ0lBQkJNQ0FCSUF4QkFCQWdJQUFnRFNBTUVCNGdBRUVnSUFjZ0NpQUpRWURBQUhNUUlDQUlLQUk4SVFFTUFRc0xDMEVBSVE0TUF3dEJQU0VMQzBIVXpRRWdDellDQUF0QmZ5RU9DeUFJUVVCckpBQWdEZ3VrQWdFRGZ5TUFRZEFCYXlJRkpBQWdCU0FDTmdMTUFTQUZRYUFCYWlJQ1FRQkJLQkFaR2lBRklBVW9Bc3dCTmdMSUFRSkFRUUFnQVNBRlFjZ0JhaUFGUWRBQWFpQUNJQU1nQkJCMFFRQklEUUFnQUNnQ1RFRUFTQ0FBSUFBb0FnQWlCMEZmY1RZQ0FBSi9Ba0FDUUNBQUtBSXdSUVJBSUFCQjBBQTJBakFnQUVFQU5nSWNJQUJDQURjREVDQUFLQUlzSVFZZ0FDQUZOZ0lzREFFTElBQW9BaEFOQVF0QmZ5QUFFRWNOQVJvTElBQWdBU0FGUWNnQmFpQUZRZEFBYWlBRlFhQUJhaUFESUFRUWRBc2hBU0FHQkg4Z0FFRUFRUUFnQUNnQ0pCRUFBQm9nQUVFQU5nSXdJQUFnQmpZQ0xDQUFRUUEyQWh3Z0FDZ0NGQm9nQUVJQU53TVFRUUFGSUFFTEdpQUFJQUFvQWdBZ0IwRWdjWEkyQWdBTkFBc2dCVUhRQVdva0FBdVZBUUVHZjBFSUlRSWpBRUdBQW1zaUJTUUFJQUZCQWs0RVFDQUFJQUZCQW5ScUlnY2dCVFlDQUFOQUlBY29BZ0FnQUNnQ0FFR0FBaUFDSUFKQmdBSlBHeUlFRUJZYVFRQWhBd05BSUFBZ0EwRUNkR29pQmlnQ0FDQUFJQU5CQVdvaUEwRUNkR29vQWdBZ0JCQVdHaUFHSUFZb0FnQWdCR28yQWdBZ0FTQURSdzBBQ3lBQ0lBUnJJZ0lOQUFzTElBVkJnQUpxSkFBTEtRQWdBRUVCYXlJQWFFRUFJQUFiSWdBRWZ5QUFCU0FCYUVFQUlBRWJJZ0JCSUhKQkFDQUFHd3NMblFNQkNYOENRQ0FBSWdGQkEzRUVRQU5BSUFFdEFBQWlBa1VOQWlBQ1FUMUdEUUlnQVVFQmFpSUJRUU54RFFBTEN3SkFBa0JCZ0lLRUNDQUJLQUlBSWdOcklBTnlRWUNCZ29SNGNVR0FnWUtFZUVjTkFBTkFRWUNDaEFnZ0EwRzkrdlRwQTNNaUFtc2dBbkpCZ0lHQ2hIaHhRWUNCZ29SNFJ3MEJJQUVvQWdRaEF5QUJRUVJxSWdJaEFTQURRWUNDaEFnZ0EydHlRWUNCZ29SNGNVR0FnWUtFZUVZTkFBc01BUXNnQVNFQ0N3TkFJQUlpQVMwQUFDSURSUTBCSUFGQkFXb2hBaUFEUVQxSERRQUxDeUFBSUFGR0JFQkJBQThMQWtBZ0FDQUJJQUJySWdacUxRQUFEUUJCOE5VQktBSUFJZ1ZGRFFBZ0JTZ0NBQ0lCUlEwQUEwQUNRQUovSUFBaEF5QUJJUUpCQUNBR0lnZEZEUUFhSUFNdEFBQWlCQVIvQWtBRFFDQUVJQUl0QUFBaUNFY05BU0FJUlEwQklBZEJBV3NpQjBVTkFTQUNRUUZxSVFJZ0F5MEFBU0VFSUFOQkFXb2hBeUFFRFFBTFFRQWhCQXNnQkFWQkFBc2dBaTBBQUdzTFJRUkFJQUVnQm1vaUFTMEFBRUU5UmcwQkN5QUZLQUlFSVFFZ0JVRUVhaUVGSUFFTkFRd0NDd3NnQVVFQmFpRUpDeUFKQ3ljQkFYOUJIQ0VESUFGQkEzRUVmMEVjQlNBQUlBRWdBaEFwSWdBMkFnQkJBRUV3SUFBYkN3djlBd0VGZndKL1FhakxBU2dDQUNJQ0lBQkJCMnBCZUhFaUFVRUhha0Y0Y1NJRGFpRUFBa0FnQTBFQUlBQWdBazBiUlFSQUlBQS9BRUVRZEUwTkFTQUFFQTROQVF0QjFNMEJRVEEyQWdCQmZ3d0JDMEdveXdFZ0FEWUNBQ0FDQ3lJQ1FYOUhCRUFnQVNBQ2FpSUFRUVJyUVJBMkFnQWdBRUVRYXlJRFFSQTJBZ0FDUUFKL1FlRFZBU2dDQUNJQkJIOGdBU2dDQ0FWQkFBc2dBa1lFUUNBQ0lBSkJCR3NvQWdCQmZuRnJJZ1JCQkdzb0FnQWhCU0FCSUFBMkFnZ2dCQ0FGUVg1eGF5SUFJQUFvQWdCcVFRUnJMUUFBUVFGeEJFQWdBQ2dDQkNJQklBQW9BZ2dpQkRZQ0NDQUVJQUUyQWdRZ0FDQURJQUJySWdFMkFnQU1Bd3NnQWtFUWF3d0JDeUFDUVJBMkFnQWdBaUFBTmdJSUlBSWdBVFlDQkNBQ1FSQTJBZ3hCNE5VQklBSTJBZ0FnQWtFUWFnc2lBQ0FESUFCcklnRTJBZ0FMSUFBZ0FVRjhjV3BCQkdzZ0FVRUJjallDQUNBQUFuOGdBQ2dDQUVFSWF5SUJRZjhBVFFSQUlBRkJBM1pCQVdzTUFRc2dBVUVkSUFGbklnTnJka0VFY3lBRFFRSjBhMEh1QUdvZ0FVSC9IMDBOQUJwQlB5QUJRUjRnQTJ0MlFRSnpJQU5CQVhSclFjY0FhaUlCSUFGQlAwOGJDeUlCUVFSMElnTkI0TTBCYWpZQ0JDQUFJQU5CNk0wQmFpSURLQUlBTmdJSUlBTWdBRFlDQUNBQUtBSUlJQUEyQWdSQjZOVUJRZWpWQVNrREFFSUJJQUd0aG9RM0F3QUxJQUpCZjBjTHZRRUJBbjhDUUNBQUtBSk1JZ0ZCQUU0RVFDQUJSUTBCUVl6V0FTZ0NBQ0FCUWYvLy8vOERjVWNOQVFzQ1FDQUFLQUpRUVFwR0RRQWdBQ2dDRkNJQklBQW9BaEJHRFFBZ0FDQUJRUUZxTmdJVUlBRkJDam9BQUE4TElBQVFmQThMSUFCQnpBQnFJZ0VnQVNnQ0FDSUNRZi8vLy84RElBSWJOZ0lBQWtBQ1FDQUFLQUpRUVFwR0RRQWdBQ2dDRkNJQ0lBQW9BaEJHRFFBZ0FDQUNRUUZxTmdJVUlBSkJDam9BQUF3QkN5QUFFSHdMSUFFb0FnQWFJQUZCQURZQ0FBdDhBUUovSXdCQkVHc2lBU1FBSUFGQkNqb0FEd0pBQWtBZ0FDZ0NFQ0lDQkg4Z0FnVWdBQkJIRFFJZ0FDZ0NFQXNnQUNnQ0ZDSUNSZzBBSUFBb0FsQkJDa1lOQUNBQUlBSkJBV28yQWhRZ0FrRUtPZ0FBREFFTElBQWdBVUVQYWtFQklBQW9BaVFSQUFCQkFVY05BQ0FCTFFBUEdnc2dBVUVRYWlRQUM3QUNBUUovSUFBRVFDQUFLQUlBRUVBZ0FFRUFOZ0lBSUFBb0FrZ2lBUVJBSUFFUUZDQUFRUUEyQWtnTElBQW9Ba1FpQVFSQUlBRVFGQ0FBUVFBMkFrUUxJQUFvQW13aUFRUkFJQUVRRkNBQVFRQTJBbXdMSUFBb0FuUWlBUVJBSUFFb0FnQWlBZ1JBSUFJUUZDQUFLQUowSWdGQkFEWUNBQXNnQVJBVUlBQkJBRFlDZEFzZ0FDZ0NlQ0lCQkVBZ0FTZ0NEQ0lDQkVBZ0FoQVVJQUFvQW5naUFVRUFOZ0lNQ3lBQktBSUVJZ0lFUUNBQ0VCUWdBQ2dDZUNJQlFRQTJBZ1FMSUFFb0FnZ2lBZ1JBSUFJUUZDQUFLQUo0SWdGQkFEWUNDQXNnQVNnQ0FDSUNCRUFnQWhBVUlBQW9BbmdpQVVFQU5nSUFDeUFCRUJRZ0FFRUFOZ0o0Q3lBQUtBSUVJZ0VFUUNBQkVEZ2dBRUVBTmdJRUN5QUFLQUlJSWdFRVFDQUJFRGdnQUVFQU5nSUlDeUFBRUJRTEM0c2FBaDUvQlhzakFFSHdBV3NpQ0NRQVFRRWhEZ0pBSUFBb0FnQW9BandOQUNBQUtBS0FBUTBBQWtBQ1FDQUFLQUowSWdsRkJFQWdBQ2dDZUNFRkRBRUxJQUVvQWhBaEJpQUpMd0VFSVFRQ1FDQUFLQUo0SWdWRkRRQWdCU2dDREVVTkFDQUZMUUFTSVFZTEFrQWdCQVJBSUFrb0FnQWhDUU5BSUFrZ0EwRUdiR29pQ2k4QkFDSUhJQVpQQkVBZ0NDQUdOZ0swQVNBSUlBYzJBckFCSUFKQkFVSHU2Z0FnQ0VHd0FXb1FFMEVBSVE0TUJnc0NRQ0FLTHdFRUlncEZEUUFnQ2tILy93TkdEUUFnQ2tFQmF5SUtJQVpKRFFBZ0NDQUdOZ0trQVNBSUlBbzJBcUFCSUFKQkFVSHU2Z0FnQ0VHZ0FXb1FFMEVBSVE0TUJnc2dBMEVCYWlJRElBUkhEUUFMREFFTElBWU5BZ3dCQ3dOQUlBWkJBV3NoQmtFQUlRTURRQ0FKSUFOQkJteHFMd0VBSUFaSEJFQWdBMEVCYWlJRElBUkhEUUVNQkFzTElBWU5BQXNMQWtBZ0JVVU5BQ0FGS0FJTUlncEZEUUFDUUFKQUlBVXRBQklpQlFSQVFRQWhBMEVCSVFjRFFDQUJLQUlRSWdRZ0NpQURRUUowYWk4QkFDSUdUUVJBSUFnZ0JEWUNsQUVnQ0NBR05nS1FBU0FDUVFGQjd1b0FJQWhCa0FGcUVCTkJBQ0VIQ3lBRFFRRnFJZ01nQlVjTkFBc2dCVUVFRUJjaUJFVU5BVUVBSVFNRFFBSkFJQW9nQTBFQ2RHb2lCaTBBQWlJSlFRSlBCRUFnQ0NBSk5nSkVJQWdnQXpZQ1FDQUNRUUZCbWQ0QUlBaEJRR3NRRTBFQUlRY01BUXNnQlNBR0xRQURJZ1pOQkVBZ0NDQUdOZ0tBQVNBQ1FRRkI0ZDBBSUFoQmdBRnFFQk5CQUNFSERBRUxJQVFnQmtFQ2RHb2hDd0pBSUFsQkFVY2lEQTBBSUFzb0FnQkZEUUFnQ0NBR05nSlFJQUpCQVVIaTJRQWdDRUhRQUdvUUUwRUFJUWNNQVFzQ1FDQUpEUUFnQmtVTkFDQUlJQVkyQW1RZ0NDQUROZ0pnSUFKQkFVSFkzQUFnQ0VIZ0FHb1FFMEVBSVFjTUFRc0NRQ0FNRFFBZ0F5QUdSZzBBSUFnZ0JqWUNlQ0FJSUFNMkFuUWdDQ0FETmdKd0lBSkJBVUg4M0FBZ0NFSHdBR29RRTBFQUlRY01BUXNnQzBFQk5nSUFDeUFEUVFGcUlnTWdCVWNOQUFzZ0IwVWhCMEVBSVFNRFFBSkFBa0FnQkNBRFFRSjBJZ1pxS0FJQVJRUkFJQVlnQ21vdEFBSU5BUXNnQTBFQmFpSURJQVZIRFFJZ0IwRUJjUTBCSUFFb0FoQkJBVWNOQlVFQUlRTURRQ0FFSUFOQkFuUnFLQUlBQkVBZ0JTQURRUUZxSWdOSERRRU1Cd3NMUVFBaENTQUNRUUpCZ01nQVFRQVFFMEVBSVFNZ0JVRUVUd1JBSUFWQi9BRnhJUWRCQUNFR0EwQWdDaUFEUVFKMGFpSUxJQU02QUFNZ0MwRUJPZ0FDSUFvZ0EwRUJjaUlMUVFKMGFpSU1JQXM2QUFNZ0RFRUJPZ0FDSUFvZ0EwRUNjaUlMUVFKMGFpSU1JQXM2QUFNZ0RFRUJPZ0FDSUFvZ0EwRURjaUlMUVFKMGFpSU1JQXM2QUFNZ0RFRUJPZ0FDSUFOQkJHb2hBeUFHUVFScUlnWWdCMGNOQUFzTElBVkJBM0VpQlVVTkJRTkFJQW9nQTBFQ2RHb2lCaUFET2dBRElBWkJBVG9BQWlBRFFRRnFJUU1nQ1VFQmFpSUpJQVZIRFFBTERBVUxJQWdnQXpZQ01FRUJJUWNnQWtFQlFialdBQ0FJUVRCcUVCTWdBMEVCYWlJRElBVkhEUUVMQ3lBRUVCUkJBQ0VPREFVTElBVkJCQkFYSWdRTkFRdEJBQ0VPSUFKQkFVSFkzd0JCQUJBVERBTUxJQVFRRkFzQ1FDQUFLQUo0SWdWRkRRQWdCU2dDRENJUFJRUkFJQVVvQWdRUUZDQUFLQUo0S0FJSUVCUWdBQ2dDZUNnQ0FCQVVJQUFvQW5naUJTZ0NEQ0lFQkg4Z0JCQVVJQUFvQW5nRklBVUxFQlFnQUVFQU5nSjREQUVMSUFFb0FoZ2hEUUpBQWtBZ0JTMEFFaUlMQkVBZ0JTZ0NBQ0VVSUFVb0FnUWhCaUFGS0FJSUlRcEJBQ0VEQWtBRFFDQU5JQThnQTBFQ2RHb3ZBUUJCTkd4cUtBSXNCRUFnQ3lBRFFRRnFJZ05IRFFFTUFnc0xJQWdnQXpZQ0lDQUNRUUZCa093QUlBaEJJR29RRTBFQUlRNE1CZ3NnQzBFMGJCQVlJZ2xGRFFGQkFDRURBMEFnRHlBRFFRSjBhaUlGTHdFQUlRY2dDU0FGTFFBQ0JIOGdCUzBBQXdVZ0F3dEJOR3hxSWdRZ0RTQUhRVFJzYWlJRi9RQUNBUDBMQWdBZ0JDQUZLQUl3TmdJd0lBUWdCZjBBQWlEOUN3SWdJQVFnQmYwQUFoRDlDd0lRSUFrZ0EwRTBiR29pQkNBRktBSUlJQVVvQWd4c1FRSjBFQndpQlRZQ0xDQUZSUVJBSUFNRVFDQURRZi8vQTNFaEFBTkFJQUJCTkd3Z0NXcEJDR3NvQWdBUUZDQUFRUUZySWdBTkFBc0xJQWtRRkVFQUlRNGdBa0VCUWR6ckFFRUFFQk1NQndzZ0JDQURJQXBxTFFBQU5nSVlJQVFnQXlBR2FpMEFBRFlDSUNBRFFRRnFJZ01nQzBjTkFBc2dBQ2dDZUM4QkVDSVFRUUZySVJJRFFDQUpJQk5CTkd4cUlnVW9BZ3dnQlNnQ0NHd2hCQ0FOSUE4Z0UwRUNkR29pQmk4QkFFRTBiR29vQWl3aENnSkFJQVl0QUFKRkJFQWdCRVVOQVNBRktBSXNJUU5CQUNFSFFRQWhCUUpBSUFSQkJFa05BQ0FESUFwclFSQkpEUUFnQkVGOGNTRUZRUUFoQmdOQUlBTWdCa0VDZENJTWFpQUtJQXhxL1FBQ0FQMExBZ0FnQmtFRWFpSUdJQVZIRFFBTElBUWdCVVlOQWdzZ0JTRUdJQVJCQTNFaURBUkFBMEFnQXlBR1FRSjBJaEZxSUFvZ0VXb29BZ0EyQWdBZ0JrRUJhaUVHSUFkQkFXb2lCeUFNUncwQUN3c2dCU0FFYTBGOFN3MEJBMEFnQXlBR1FRSjBJZ1ZxSUFVZ0Ntb29BZ0EyQWdBZ0F5QUZRUVJxSWdkcUlBY2dDbW9vQWdBMkFnQWdBeUFGUVFocUlnZHFJQWNnQ21vb0FnQTJBZ0FnQXlBRlFReHFJZ1ZxSUFVZ0Ntb29BZ0EyQWdBZ0JrRUVhaUlHSUFSSERRQUxEQUVMSUFSRkRRQWdGQ0FHTFFBRElnWkJBblJxSVFVZ0NTQUdRVFJzYWlnQ0xDRURRUUFoQmlBRVFRRkhCRUFnQkVGK2NTRVZRUUFoREFOQUlBTWdCa0VDZENJSGFpQUZJQWNnQ21vb0FnQWlFU0FTSUJBZ0VVb2JRUUFnRVVFQVRoc2dDMnhCQW5ScUtBSUFOZ0lBSUFNZ0IwRUVjaUlIYWlBRklBY2dDbW9vQWdBaUJ5QVNJQWNnRUVnYlFRQWdCMEVBVGhzZ0MyeEJBblJxS0FJQU5nSUFJQVpCQW1vaEJpQU1RUUpxSWd3Z0ZVY05BQXNMSUFSQkFYRkZEUUFnQXlBR1FRSjBJZ1JxSUFVZ0JDQUthaWdDQUNJRUlCSWdCQ0FRU0J0QkFDQUVRUUJPR3lBTGJFRUNkR29vQWdBMkFnQUxJQk5CQVdvaUV5QUxSdzBBQ3d3Q0N5QUxRVFJzRUJnaUNRMEJDMEVBSVE0Z0FrRUJRZHpyQUVFQUVCTU1Bd3NnQVNnQ0VDSUZCRUJCQUNFREEwQWdEU0FEUVRSc2FpZ0NMQ0lFQkVBZ0JCQVVDeUFEUVFGcUlnTWdCVWNOQUFzTElBMFFGQ0FCSUFzMkFoQWdBU0FKTmdJWUN5QUFLQUowSWdORkRRRWdBeWdDQUNFSElBTXZBUVFpQ3dSQUlBZEJLbW9oRWlBSFFTUnFJUk1nQjBFZWFpRVJJQWRCR0dvaEZDQUhRUkpxSVJVZ0IwRU1haUVXSUFkQkJtb2hGeUFMUVFKcklSaEJBQ0VEUVFFaEJRTkFBa0FnQVNnQ0VDSUVJQWNnQTBFR2JHb2lEUzhCQUNJR1RRUkFJQWdnQkRZQ0ZDQUlJQVkyQWhBZ0FrRUNRWUU1SUFoQkVHb1FFd3dCQ3lBTkx3RUVJZ2xCQVdwQi8vOERjVUVCVFFSQUlBRW9BaGdnQmtFMGJHb2dEUzhCQWpzQk1Bd0JDeUFKUVFGcklncEIvLzhEY1NJUElBUlBCRUFnQ0NBRU5nSUVJQWdnRHpZQ0FDQUNRUUpCMkRnZ0NCQVREQUVMQWtBZ0JpQVBSZzBBSUEwdkFRSU5BQ0FJSUFFb0FoZ2lDU0FHUVRSc2FpSUVLQUl3TmdMb0FTQUlJQVQ5QUFJZy9Rc0QyQUVnQ0NBRS9RQUNFUDBMQThnQklBZ2dCUDBBQWdEOUN3TzRBU0FFSUFrZ0QwRTBiQ0lNYWlJSktRSUlOd0lJSUFRZ0NTa0NFRGNDRUNBRUlBa3BBaGczQWhnZ0JDQUpLUUlnTndJZ0lBUWdDU2tDS0RjQ0tDQUVJQWtvQWpBMkFqQWdCQ0FKS1FJQU53SUFJQUVvQWhnZ0RHb2lCQ0FJL1FBRHVBSDlDd0lBSUFRZ0NQMEFBOWdCL1FzQ0lDQUVJQWo5QUFQSUFmMExBaEFnQkNBSUtBTG9BVFlDTUNBRFFRRnFJQXRQRFFBZ0JTRUpJQmdnQTJ0Qi8vOERjU0lFUVFkUEJFQWdCU0FFUVFGcUlobEIrUDhIY1NJUWFpRUpJQXI5RUNFa0lBYjlFQ0VqUVFBaERBTkFJQ01nSkNBSElBVWdER3BCQm13aUJHb2lHaThCQVAwUUlBUWdGMm9pR3k4QkFQMGFBU0FFSUJacUlod3ZBUUQ5R2dJZ0JDQVZhaUlkTHdFQS9Sb0RJQVFnRkdvaUhpOEJBUDBhQkNBRUlCRnFJaDh2QVFEOUdnVWdCQ0FUYWlJZ0x3RUEvUm9HSUFRZ0Vtb2lCQzhCQVAwYUJ5SWhJQ1A5TGlBaElDVDlMU0lsL1U1QkQvMkxBVUVQL1l3Qi9WSWhJaUFoSUNQOUxTQWwvVkFpSWYwWkFFRUJjUVJBSUJvZ0l2MVpBUUFBQ3lBaC9Sa0JRUUZ4QkVBZ0d5QWkvVmtCQUFFTElDSDlHUUpCQVhFRVFDQWNJQ0w5V1FFQUFnc2dJZjBaQTBFQmNRUkFJQjBnSXYxWkFRQURDeUFoL1JrRVFRRnhCRUFnSGlBaS9Wa0JBQVFMSUNIOUdRVkJBWEVFUUNBZklDTDlXUUVBQlFzZ0lmMFpCa0VCY1FSQUlDQWdJdjFaQVFBR0N5QWgvUmtIUVFGeEJFQWdCQ0FpL1ZrQkFBY0xJQXhCQ0dvaURDQVFSdzBBQ3lBUUlCbEdEUUVMQTBBZ0NpRUVBa0FnQmlBSElBbEJCbXhxSWd3dkFRQWlFRWNFUUNBR0lRUWdEeUFRUncwQkN5QU1JQVE3QVFBTElBc2dDVUVCYWlJSlFmLy9BM0ZIRFFBTEN5QUJLQUlZSUFaQk5HeHFJQTB2QVFJN0FUQUxJQVZCQVdvaEJTQURRUUZxSWdNZ0MwY05BQXNnQUNnQ2RDSURLQUlBSVFjTElBY0VmeUFIRUJRZ0FDZ0NkQVVnQXdzUUZDQUFRUUEyQW5RTUFRdEJBQ0VPSUFKQkFVSDJ5UUJCQUJBVEN5QUlRZkFCYWlRQUlBNEw1UUVCQlg4akFFRWdheUlFSkFBQ2Z3SkFJQUFvQWp3aUF3UkFRUUVoQlFOQUlBQW9BbVFvQWhnZ0FDZ0NRQ0FDUVFKMGFpZ0NBQ0lHUVRSc2FpZ0NMRVVFUUNBRUlBWTJBaEFnQVVFQ1FZODdJQVJCRUdvUUUwRUFJUVVnQUNnQ1BDRURDeUFDUVFGcUlnSWdBMGtOQUFzTUFRdEJBU0VGUVFFZ0FDZ0NaQ0lES0FJUVJRMEJHZ05BSUFNb0FoZ2dBa0UwYkdvb0FpeEZCRUFnQkNBQ05nSUFJQUZCQWtHUE95QUVFQk5CQUNFRklBQW9BbVFoQXdzZ0FrRUJhaUlDSUFNb0FoQkpEUUFMQzBFQklBVU5BQm9nQVVFQlFhd1dRUUFRRTBFQUN5QUVRU0JxSkFBTCtnWUNFMzhDZmlBQUtBSVlJaEFvQWhCRkJFQkJBUThMSUJBb0FoZ2hEU0FBS0FJVUtBSUFLQUlVSVFzRFFDQUJJQTBvQWlRaUFqWUNKQ0FMS0FJY0lnWWdBa0dZQVd4cUlRTUNRQUpBQW44Z0FDZ0NRQ0lSQkVBZ0JpQUxLQUlZUVpnQmJHb2lBa0dRQVdzb0FnQWdBa0dZQVdzb0FnQnJJUXdnQTBFTWFpRUdJQU5CQkdvaEJDQURLQUlJSVFJZ0F5Z0NBQ0VGUVNRTUFRc2dBMEdVQVdvaEJpQURRWXdCYWlFRUlBTW9BcEFCSWdJZ0F5Z0NpQUVpQldzaERFRTBDeUFMYWlnQ0FDSVNSUTBBSUFRb0FnQWhCeUFHS0FJQUlRa2dBaUFGYXlFR0lBRW9BZ2dpQTBKL0lBRTFBaWdpRllaQ2Y0VWlGaUFCTlFJUWZDQVZpS2NpQ0dvaEJBSi9JQVVnQ0VzRVFDQUZJQWhySVE1QkFDRUlRUUFnQWlBRVRRMEJHaUFHSUFRZ0JXc2lCbXNNQVFzZ0NDQUZheUVJSUFJZ0JFMEVRQ0FHSUFocklRWkJBQ0VPUVFBTUFRdEJBQ0VPSUFNaEJpQUNJQVJyQ3lBSklBZHJJUUlnQVNnQ0RDSUVJQllnQVRVQ0ZId2dGWWluSWdwcUlRVUNmeUFISUFwTEJFQWdCeUFLYXlFUFFRQWhDa0VBSUFVZ0NVOE5BUm9nQWlBRklBZHJJZ0pyREFFTElBb2dCMnNoQ2lBRklBbFBCRUFnQWlBS2F5RUNRUUFoRDBFQURBRUxRUUFoRHlBRUlRSWdDU0FGYXdzaEIwRUFJUVVnQ0VFQVNBMEJJQXBCQUVnTkFVRUFTQTBCSUFkQkFFZ05BU0FHUVFCSURRRWdBa0VBU0EwQklBTWdEMndnRG1vaEJ5QUtJQXhzSUFocUlRa0NRQUpBQWtBZ0FTZ0NMQ0lJRFFBZ0NRMEFJQWNOQUNBRElBeEhEUUFnQXlBR1J3MEFJQUlnQkVjTkFTQUJJQXRCSkVFMElCRWJhaUlDS0FJQU5nSXNJQUpCQURZQ0FBd0RDeUFJRFFFTElBUkZEUUlnQkswZ0E2MStRaUNJcHcwQ0lBTWdCR3dpQTBILy8vLy9BMHNOQWlBQklBTkJBblFRSENJRE5nSXNJQU5GRFFJZ0JpQUJLQUlJSWdSR0lBRW9BZ3dpQlNBQ1JuRU5BQ0FEUVFBZ0JDQUZiRUVDZEJBWkdnc2dBa1VOQUNBQ1FRRnhJQVpCQW5RaEJpQUJLQUlzSUFkQkFuUnFJUVFnRWlBSlFRSjBhaUVGSUFKQkFVY0VRQ0FDUWY3Ly8vOEhjU0VIUVFBaEFnTkFJQVFnQlNBR0VCWWdCU0FNUVFKMElnbHFJZ2dnQ1dvaEJTQUJLQUlJUVFKMGFpQUlJQVlRRmlBQktBSUlRUUowYWlFRUlBSkJBbW9pQWlBSFJ3MEFDd3RGRFFBZ0JDQUZJQVlRRmhvTElBdEJ6QUJxSVFzZ0RVRTBhaUVOSUFGQk5Hb2hBVUVCSVFVZ0ZFRUJhaUlVSUJBb0FoQkpEUUVMQ3lBRkN3UUFRWDhMZ0JRQ0NYOEtmaU1BUWFBQmF5SUZKQUFDUUNBQ1FTTk5CRUJCQUNFQ0lBTkJBVUdxTDBFQUVCTU1BUXNnQWtFa2F5SUNJQUpCQTI0aUNVRURiRWNFUUVFQUlRSWdBMEVCUWFvdlFRQVFFd3dCQ3lBQUtBSmdJUVlnQVNBRlFad0JhaUlDUVFJUUZTQUFJQVVvQXB3Qk93Rm9JQUZCQW1vZ0JrRUlha0VFRUJVZ0FVRUdhaUFHUVF4cVFRUVFGU0FCUVFwcUlBWkJCQkFWSUFGQkRtb2dCa0VFYWtFRUVCVWdBVUVTYWlBQVFmUUFha0VFRUJVZ0FVRVdhaUFBUWZnQWFrRUVFQlVnQVVFYWFpQUFRZXdBYWtFRUVCVWdBVUVlYWlBQVFmQUFha0VFRUJVZ0FVRWlhaUFDUVFJUUZRSkFBa0FDUUNBRktBS2NBU0lDUVlDQUFVMEVRQ0FHSUFJMkFoQWdBaUFKUndSQUlBVWdDVFlDaEFFZ0JTQUNOZ0tBQVNBRFFRRkIzL1FBSUFWQmdBRnFFQk5CQUNFQ0RBVUxJQVlvQWdRaUFpQUdLQUlNSWdkSklBWW9BZ2dpQ3lBR0tBSUFJZ1JMY1VVRVFDQUZJQWV0SUFLdGZUY0RlQ0FGSUF1dElBU3RmVGNEY0NBRFFRRkJxZkVBSUFWQjhBQnFFQk5CQUNFQ0RBVUxJQUFvQW5RaUNFRUFJQUFvQW5naUNodEZCRUFnQlNBS05nSUVJQVVnQ0RZQ0FDQURRUUZCMGZVQUlBVVFFMEVBSVFJTUJRc0NRQUpBSUFBb0Ftd2lEQ0FFU3cwQVFYOGdDQ0FNYWlJSUlBZ2dERWtiSUFSTkRRQWdBQ2dDY0NJSUlBSkxEUUJCZnlBSUlBcHFJZ29nQ0NBS1N4c2dBa3NOQVF0QkFDRUNJQU5CQVVIREZVRUFFQk1NQlFzQ1FDQUFLQUw0QVEwQUlBQW9BdkFCSWdoRkRRQWdBQ2dDOUFFaUNrVU5BQ0FMSUFScklnUWdDRVlnQnlBQ2F5SUNJQXBHY1EwQUlBVWdBallDYkNBRklBUTJBbWdnQlNBS05nSmtJQVVnQ0RZQ1lDQURRUUZCa2UwQUlBVkI0QUJxRUJOQkFDRUNEQVVMSUFZZ0NVRTBFQmNpQkRZQ0dDQUVSUTBCQWtBZ0JpZ0NFRVVOQUNBQlFTUnFJQVZCbUFGcUlnSkJBUkFWSUFRZ0JTZ0NtQUVpQ1VFSGRpSUtOZ0lnSUFRZ0NVSC9BSEZCQVdvaUREWUNHQ0FBS0FMNEFTRUxJQUZCSldvZ0FrRUJFQlVnQkNBRktBS1lBVFlDQUNBQlFTWnFJQUpCQVJBVklBUWdCU2dDbUFFaUJ6WUNCRUVBSVFJZ0JDZ0NBQ0lJUVlBQ2EwR0Jma2tFUUVFQUlRa01CUXRCQUNFSklBZEJnQUpyUVlGK1NRMEVJQVFvQWhnaUIwRWZTdzBESUFSQkFEWUNKQ0FFSUFBb0FyZ0JOZ0lvUVFFaENTQUdLQUlRUVFGTkRRQkJBQ0FLSUFzYklRcEJBQ0FNSUFzYklRc2dBVUVuYWlFQkEwQWdBU0FGUVpnQmFrRUJFQlVnQkNBRktBS1lBU0lJUVFkMklnYzJBbFFnQkNBSVFmOEFjVUVCYWlJSU5nSk1Ba0FnQUNnQytBRU5BQ0FBTFFEVUFVRUVjUTBBSUFnZ0MwWWdCeUFLUm5FTkFDQUZJQWMyQWxRZ0JTQUlOZ0pRSUFVZ0NUWUNUQ0FGSUFvMkFrZ2dCU0FMTmdKRUlBVWdDVFlDUUNBRFFRSkJsZk1BSUFWQlFHc1FFd3NnQVVFQmFpQUZRWmdCYWlJSFFRRVFGU0FFSUFVb0FwZ0JOZ0kwSUFGQkFtb2dCMEVCRUJVZ0JDQUZLQUtZQVNJSE5nSTRJQVFvQWpRaUNFR0FBbXRCZ1g1SkRRVWdCMEdBQW10QmdINU5EUVVnQkNnQ1RDSUhRU0JQRFFRZ0FVRURhaUVCSUFSQkFEWUNXQ0FFSUFBb0FyZ0JOZ0pjSUFSQk5Hb2hCQ0FKUVFGcUlna2dCaWdDRUVrTkFBc0xRUUFoQWlBQUtBSjBJZ2RGRFFRZ0FDZ0NlQ0lMUlEwRUlBQWdCNjBpRFVJQmZTSVBJQVlvQWdnZ0FDZ0NiQ0lJYTYxOElBMkFweUlCTmdLQUFTQUFJQXV0SWc1Q0FYMGlFQ0FHS0FJTUlBQW9BbkFpQ211dGZDQU9nS2NpQkRZQ2hBRUNRQUpBSUFGRkRRQWdCRVVOQUVILy93TWdCRzRnQVU4TkFRc2dCU0FFTmdJVUlBVWdBVFlDRUNBRFFRRkJnKzRBSUFWQkVHb1FFd3dGQ3lBQklBUnNJUWtDUUNBQUxRQmNRUUp4QkVBZ0FDQUFLQUljSUFocklBZHVOZ0ljSUFBZ0FDZ0NJQ0FLYXlBTGJqWUNJQ0FBSUE4Z0FDZ0NKQ0FJYTYxOElBMkFQZ0lrSUFBZ0VDQUFLQUlvSUFwcnJYd2dEb0ErQWlnTUFRc2dBQ0FFTmdJb0lBQWdBVFlDSkNBQVFnQTNBaHdMSUFBZ0NVR01MQkFYSWdFMkFyUUJJQUZGQkVBZ0EwRUJRYm9lUVFBUUV3d0ZDeUFHS0FJUVFiZ0lFQmNoQVNBQUtBSU1JQUUyQXRBcklBQW9BZ3dvQXRBclJRUkFJQU5CQVVHNkhrRUFFQk1NQlF0QkNrRVVFQmNoQVNBQUtBSU1JQUUyQXZBcklBQW9BZ3dpQVNnQzhDdEZCRUFnQTBFQlFib2VRUUFRRXd3RkN5QUJRUW8yQXZnclFRcEJGQkFYSVFFZ0FDZ0NEQ0FCTmdMOEt5QUFLQUlNSWdFb0F2d3JSUVJBSUFOQkFVRzZIa0VBRUJNTUJRc2dBVUVLTmdLRUxBSkFJQVlvQWhBaUIwVU5BQ0FHS0FJWUlRdEJBQ0VCSUFkQkFVY0VRQ0FIUVg1eElRaEJBQ0VFQTBBZ0N5QUJRVFJzYWlJS0tBSWdSUVJBSUFBb0Fnd29BdEFySUFGQnVBaHNha0VCSUFvb0FoaEJBV3QwTmdLMENBc2dDeUFCUVFGeUlncEJOR3hxSWd3b0FpQkZCRUFnQUNnQ0RDZ0MwQ3NnQ2tHNENHeHFRUUVnRENnQ0dFRUJhM1EyQXJRSUN5QUJRUUpxSVFFZ0JFRUNhaUlFSUFoSERRQUxDeUFIUVFGeFJRMEFJQXNnQVVFMGJHb2lCQ2dDSUEwQUlBQW9BZ3dvQXRBcklBRkJ1QWhzYWtFQklBUW9BaGhCQVd0ME5nSzBDQXNnQ1FSQUlBQW9BclFCSVFGQkFDRUVBMEFnQVNBR0tBSVFRYmdJRUJjaUJ6WUMwQ3NnQjBVRVFDQURRUUZCdWg1QkFCQVREQWNMSUFGQmpDeHFJUUVnQkVFQmFpSUVJQWxKRFFBTEN3Si9JQUFvQXVBQklBQW9Bb1FCSUFBb0FvQUJiQ0lCTmdJa0lBRkJLQkFYSVFFZ0FDZ0M0QUVpQXlBQk5nSW9RUUFnQVVVTkFCcEJBU0FES0FJa1JRMEFHa0VBSVFNRFFBSkFRUUFoQkNBQklBTkJLR3dpQjJvaUFVRUFOZ0lVSUFGQjVBQTJBaHhCNUFCQkdCQVhJUWtnQnlBQUtBTGdBU0lMS0FJb0lnRnFJQWsyQWhnZ0NVVU5BRUVCSVFRZ0EwRUJhaUlESUFzb0FpUkpEUUVMQ3lBRUMwVU5CQ0FBUVFRMkFnZ2dCaWdDRUNJREJFQkJmeUFBS0FKd0lnRWdBQ2dDZUNJQ0lBQW9Bb1FCUVFGcmJHb2lCQ0FDYWlJQ0lBSWdCRWtiSWdJZ0JpZ0NEQ0lFSUFJZ0JFa2JyVUlCZlNFUVFYOGdBQ2dDYkNJQ0lBQW9BblFpQkNBQUtBS0FBVUVCYTJ4cUlnQWdCR29pQkNBQUlBUkxHeUlBSUFZb0FnZ2lCQ0FBSUFSSkc2MUNBWDBoRVNBQklBWW9BZ1FpQUNBQUlBRkpHNjFDQVgwaEVpQUNJQVlvQWdBaUFDQUFJQUpKRzYxQ0FYMGhFeUFHS0FJWUlRQkJBQ0VCQTBBZ0FDQVNJQUExQWdRaURYd2dEWUFpRkQ0Q0ZDQUFJQk1nQURVQ0FDSU9mQ0FPZ0NJVlBnSVFJQUJDZnlBQU5RSW9JZytHUW4rRkloWWdEU0FRZkNBTmdDQVVmVUwvLy8vL0Q0TjhJQStJUGdJTUlBQWdEaUFSZkNBT2dDQVZmVUwvLy8vL0Q0TWdGbndnRDRnK0FnZ2dBRUUwYWlFQUlBRkJBV29pQVNBRFJ3MEFDd3RCQVNFQ0RBUUxJQVVnQWpZQ2tBRWdBMEVCUWRjOUlBVkJrQUZxRUJOQkFDRUNEQU1MUVFBaEFpQUdRUUEyQWhBZ0EwRUJRYm9lUVFBUUV3d0NDeUFGSUFjMkFqUWdCU0FKTmdJd0lBTkJBVUdGK0FBZ0JVRXdhaEFUREFFTElBVWdCellDS0NBRklBZzJBaVFnQlNBSk5nSWdJQU5CQVVIZjd3QWdCVUVnYWhBVEN5QUZRYUFCYWlRQUlBSUxtZ01CQm44akFFRVFheUlHSkFBQ2Z5QUNJQUpCQVVFQ0lBQW9BbUFvQWhBaUNFR0JBa2tiSWdkQkFYUkJCV29pQkc0aUJTQUViRVlnQWlBRVQzRkZCRUFnQTBFQlFmNGpRUUFRRTBFQURBRUxBbjhnQUNnQ0NFRVFSZ1JBSUFBb0FyUUJJQUFvQXVRQlFZd3NiR29NQVFzZ0FDZ0NEQXNoQkVFQUlRQWdCQzBBaUN3aUFrRUVjUVJBSUFRb0FxUURRUUZxSVFBTElBQWdCV29pQlVFZ1R3UkFJQVlnQlRZQ0FDQURRUUZCd0R3Z0JoQVRRUUFNQVFzZ0JDQUNRUVJ5T2dDSUxDQUFJQVZKQkVBZ0JDQUFRWlFCYkdwQnFBTnFJUUlEUUNBQklBSkJBUkFWSUFGQkFXb2lBU0FDUVFScUlBY1FGU0FCSUFkcUlnRWdBa0VJYWtFQ0VCVWdBaUFDS0FJSUlnTWdCQ2dDQ0NJSklBTWdDVWtiTmdJSUlBRkJBbW9nQWtFTWFrRUJFQlVnQVVFRGFpSUJJQUpCRUdvZ0J4QVZJQUVnQjJvaUFTQUdRUXhxUVFFUUZTQUNJQVlvQWd3MkFpUWdBaUFDS0FJUUlnTWdDQ0FESUFoSkd6WUNFQ0FDUVpRQmFpRUNJQUZCQVdvaEFTQUFRUUZxSWdBZ0JVY05BQXNMSUFRZ0JVRUJhellDcEFOQkFRc2dCa0VRYWlRQUMrZ0JBUU4vSXdCQkVHc2lCQ1FBQW44Q1FDQUJJQVJCQ0dvQ2Z5QUFLQUpnS0FJUVFZQUNUUVJBSUFJRVFFRi9JUVZCQVF3Q0N5QURRUUZCc2lSQkFCQVRRUUFNQXdzZ0FrRUJUUTBCUVg0aEJVRUNDeUlHRUJVZ0JDQUNJQVZxTmdJTUlBUW9BZ2dpQWlBQUtBSmdLQUlRSWdWUEJFQWdCQ0FGTmdJRUlBUWdBallDQUNBRFFRRkIrenNnQkJBVFFRQU1BZ3NnQUNBQ0lBRWdCbW9nQkVFTWFpQURFRXRGQkVBZ0EwRUJRYklrUVFBUUUwRUFEQUlMUVFFZ0JDZ0NERVVOQVJvZ0EwRUJRYklrUVFBUUUwRUFEQUVMSUFOQkFVR3lKRUVBRUJOQkFBc2dCRUVRYWlRQUM5VUJBUU4vSXdCQkVHc2lCQ1FBSUFRZ0FqWUNEQUpBQWtBZ0FFRUFJQUVnQkVFTWFpQURFRXRGRFFBZ0JDZ0NEQTBBQW44Z0FDZ0NDRUVRUmdSQUlBQW9BclFCSUFBb0F1UUJRWXdzYkdvTUFRc2dBQ2dDREF0QkFTRUZJQUFvQW1Bb0FoQkJBa2tOQVNnQzBDc2lBa0VjYWlFR1FRRWhBU0FDSVFNRFFDQURJQUlvQWhnMkF0QUlJQU1nQWlnQ3BBWTJBdHdPSUFOQjFBaHFJQVpCaUFZUUZob2dBMEc0Q0dvaEF5QUJRUUZxSWdFZ0FDZ0NZQ2dDRUVrTkFBc01BUXNnQTBFQlFjb2pRUUFRRXdzZ0JFRVFhaVFBSUFVTDFnRUJBMzhqQUVFUWF5SUVKQUFDUUNBQ1FRRkJBaUFBS0FKZ0tBSVFJZ0pCZ1FKSkd5SUZRUUpxUndSQVFRQWhBQ0FEUVFGQm1DRkJBQkFUREFFTEFuOGdBQ2dDQ0VFUVJnUkFJQUFvQXJRQklBQW9BdVFCUVl3c2JHb01BUXNnQUNnQ0RBc2hCaUFCSUFSQkRHb2dCUkFWUVFFaEFDQUJJQVZxSWdVZ0JFRUlha0VCRUJVZ0FpQUVLQUlNSWdGTkJFQWdCQ0FDTmdJRUlBUWdBVFlDQUNBRFFRRkJwdlFBSUFRUUUwRUFJUUFNQVFzZ0JVRUJhaUFHS0FMUUt5QUJRYmdJYkdwQnFBWnFRUUVRRlFzZ0JFRVFhaVFBSUFBTGhBSUJCWDhqQUVFUWF5SUVKQUFDZnlBQUtBSUlRUkJHQkVBZ0FDZ0N0QUVnQUNnQzVBRkJqQ3hzYWd3QkN5QUFLQUlNQ3lFR0FrQkJBVUVDSUFBb0FtQWlCeWdDRUVHQkFra2JJZ1VnQWs4RVFFRUFJUUlnQTBFQlFaZ2tRUUFRRXd3QkN5QUVJQUlnQlVGL2MybzJBZ3dnQVNBRVFRaHFJQVVRRlNBRUtBSUlJZ2dnQnlnQ0VFOEVRRUVBSVFJZ0EwRUJRYzd0QUVFQUVCTU1BUXRCQVNFQ0lBRWdCV29pQVNBR0tBTFFLeUFJUWJnSWJHcEJBUkFWSUFBZ0JDZ0NDQ0FCUVFGcUlBUkJER29nQXhCTVJRUkFRUUFoQWlBRFFRRkJtQ1JCQUJBVERBRUxJQVFvQWd4RkRRQkJBQ0VDSUFOQkFVR1lKRUVBRUJNTElBUkJFR29rQUNBQ0M2d0dBUWQvSXdCQkVHc2lCaVFBSUFZZ0FqWUNEQ0FBS0FKZ0lRa0NmeUFBS0FJSVFSQkdCRUFnQUNnQ3RBRWdBQ2dDNUFGQmpDeHNhZ3dCQ3lBQUtBSU1DeUlFSUFRdEFJZ3NRUUZ5T2dDSUxBSkFJQUpCQkUwRVFDQURRUUZCc0NOQkFCQVREQUVMSUFFZ0JFRUJFQlVnQkNnQ0FFRUlUd1JBSUFOQkFVR09JMEVBRUJNTUFRc2dBVUVCYWlBR1FRaHFRUUVRRlNBRUlBWW9BZ2dpQWpZQ0JDQUNRUVZPQkVBZ0EwRUJRZVVpUVFBUUV5QUVRWDgyQWdRTElBRkJBbW9nQkVFSWFrRUNFQlVnQkNnQ0NDSUhRWUNBQkd0QmdJQjhUUVJBSUFZZ0J6WUNBQ0FEUVFGQmlqOGdCaEFUREFFTElBUWdBQ2dDdkFFaUFpQUhJQUliTmdJTUlBRkJCR29nQkVFUWFrRUJFQlVnQkNnQ0VFRUNUd1JBSUFOQkFVSDdLa0VBRUJNTUFRc2dBVUVGYWlFQ0lBWWdCaWdDREVFRmF6WUNEQUpBSUFrb0FoQWlCMFVOQUNBRUtBSUFRUUZ4SVFnZ0JDZ0MwQ3NoQkVFQUlRa2dCMEVJVHdSQUlBZEJlSEVoQVFOQUlBUWdCVUc0Q0d4cUlBZzJBZ0FnQkNBRlFRRnlRYmdJYkdvZ0NEWUNBQ0FFSUFWQkFuSkJ1QWhzYWlBSU5nSUFJQVFnQlVFRGNrRzRDR3hxSUFnMkFnQWdCQ0FGUVFSeVFiZ0liR29nQ0RZQ0FDQUVJQVZCQlhKQnVBaHNhaUFJTmdJQUlBUWdCVUVHY2tHNENHeHFJQWcyQWdBZ0JDQUZRUWR5UWJnSWJHb2dDRFlDQUNBRlFRaHFJUVVnQ2tFSWFpSUtJQUZIRFFBTEN5QUhRUWR4SWdGRkRRQURRQ0FFSUFWQnVBaHNhaUFJTmdJQUlBVkJBV29oQlNBSlFRRnFJZ2tnQVVjTkFBc0xRUUFoQlNBQVFRQWdBaUFHUVF4cUlBTVFURVVFUUNBRFFRRkJzQ05CQUJBVERBRUxJQVlvQWd3RVFDQURRUUZCc0NOQkFCQVREQUVMQW44Z0FDZ0NDRUVRUmdSQUlBQW9BclFCSUFBb0F1UUJRWXdzYkdvTUFRc2dBQ2dDREFzaEFTQUFLQUpnS0FJUVFRSlBCRUFnQVNnQzBDc2lBU2dDQkVFQ2RDRUhJQUZCc0FkcUlRb2dBVUdzQm1vaEEwRUJJUWtnQVNFQ0EwQWdBaUFCL1FBQ0JQMExBcndJSUFJZ0FTZ0NGRFlDekFnZ0FrSGtEbW9nQXlBSEVCWWFJQUpCNkE5cUlBb2dCeEFXR2lBQ1FiZ0lhaUVDSUFsQkFXb2lDU0FBS0FKZ0tBSVFTUTBBQ3d0QkFTRUZDeUFHUVJCcUpBQWdCUXZyQ2dFR2Z5TUFRWUFCYXlJRkpBQWdCVUVBTmdKNEFrQWdBa0VJUndSQUlBTkJBVUdxSDBFQUVCTWdBMEVCUWFvZlFRQVFFd3dCQ3lBQklBQkI1QUZxUVFJUUZTQUJRUUpxSUFWQi9BQnFRUVFRRlNBQlFRWnFJQVZCOUFCcVFRRVFGU0FCUVFkcUlBVkIrQUJxUVFFUUZTQUFLQUxrQVNJQklBQW9Bb0FCSWdnZ0FDZ0NoQUZzVHdSQUlBVWdBVFlDY0NBRFFRRkIvandnQlVId0FHb1FFd3dCQ3lBQUtBSzBBU0FCUVl3c2JHb2hBaUFCSUFodUlRY2dCU2dDZENFRUFrQWdBQ2dDTENJR1FRQk9JQUVnQmtkeERRQWdBaWdDMUN0QkFXb2lCaUFFUmcwQUlBVWdCallDYUNBRklBUTJBbVFnQlNBQk5nSmdJQU5CQVVHV1BTQUZRZUFBYWhBVFFRQWhCQXdCQ3lBQ0lBUTJBdFFyQWtBZ0JTZ0NmQ0lFUVFGclFReE5CSDhnQkVFTVJ3MEJJQVZCRERZQ1FDQURRUUpCczl3QUlBVkJRR3NRRXlBRktBSjhCU0FFQzBVRVFDQURRUVJCb3RNQVFRQVFFeUFBUVFFMkFqZ0xBa0FDUUFKQUFrQWdBaWdDMkNzaUJnUkFJQVVvQW5RaUJDQUdTUTBCSUFVZ0JqWUNOQ0FGSUFRMkFqQWdBMEVCUWZrbklBVkJNR29RRXlBQVFRRTJBamhCQUNFRURBWUxJQVVvQW5naUJBMEJEQU1MSUFVb0FuZ2lCRVVOQVFzZ0JTQUVJQUF0QUZ4QkJIWkJBWEZxSWdZMkFuZ2dCU2dDZENJRUlBSW9BdGdySWdsQkFXdExCRUFnQlNBSk5nSVVJQVVnQkRZQ0VDQURRUUZCbGljZ0JVRVFhaEFUSUFCQkFUWUNPRUVBSVFRTUJBc2dCQ0FHVHdSQUlBVWdCallDSkNBRklBUTJBaUFnQTBFQlFkMG9JQVZCSUdvUUV5QUFRUUUyQWpoQkFDRUVEQVFMSUFJZ0JqWUMyQ3NMSUFZZ0JTZ0NkRUVCYWtjTkFDQUFJQUF0QUZ4QkFYSTZBRndMSUFVb0Fud2hBaUFBUVJBMkFnZ2dBRUVBSUFKQkRHc2dBQ2dDT0JzMkFoZ0NRQ0FBS0FJc0lnSkJmMFlFUUVFRUlRUUNRQ0FCSUFjZ0NHeHJJZ0VnQUNnQ0hFa05BQ0FCSUFBb0FpUlBEUUFnQnlBQUtBSWdTUTBBSUFjZ0FDZ0NLRTlCQW5RaEJBc2dBQ0FBTFFCY1Fmc0JjU0FFY2pvQVhDQUFLQUxrQVNFQkRBRUxJQUFnQUMwQVhFSDdBWEVnQUNnQzVBRWlBU0FDUjBFQ2RISTZBRndMSUFBb0F1QUJLQUlvSUFGQktHeHFJZ0lnQVRZQ0FDQUNJQVVvQW5RMkFnd2dCU2dDZUNFRUlBQW9Ba3hGQkVBZ0FpZ0NCQ0FFVHdSQVFRRWhCQXdEQ3lBRklBRTJBZ0FnQTBFQ1FhY01JQVVRRXlBQVFRRTJBa3dnQlNnQ2VDRUVDeUFBS0FMa0FTRUJJQUFvQXVBQktBSW9JUUlnQkFSQUlBSWdBVUVvYkdvaUFTQUVOZ0lFSUFFZ0JTZ0NlQ0lDTmdJSUlBRW9BaEFpQVVVRVFDQUNRUmdRRnlFQklBQW9BdUFCS0FJb0lBQW9BdVFCUVNoc2FpQUJOZ0lRSUFFRVFFRUJJUVFNQkF0QkFDRUVJQU5CQVVIK05VRUFFQk1NQXdzZ0FTQUNRUmhzRUJzaEFTQUFLQUxnQVNnQ0tDQUFLQUxrQVVFb2JHb2hBaUFCUlFSQUlBSW9BaEFRRkVFQUlRUWdBQ2dDNEFFb0FpZ2dBQ2dDNUFGQktHeHFRUUEyQWhBZ0EwRUJRZjQxUVFBUUV3d0RDeUFDSUFFMkFoQkJBU0VFREFJTEFrQWdBaUFCUVNoc2FpSUVLQUlRSWdZTkFDQUVRUW8yQWdoQkNrRVlFQmNoQmlBQUtBTGdBU2dDS0NJQ0lBQW9BdVFCSWdGQktHeHFJQVkyQWhBZ0JnMEFRUUFoQkNBQ0lBRkJLR3hxUVFBMkFnZ2dBMEVCUWY0MVFRQVFFd3dDQ3lBRktBSjBJZ2NnQWlBQlFTaHNhaUlCS0FJSVNRUkFRUUVoQkF3Q0MwRUJJUVFnQVNBSFFRRnFJZ0UyQWdnZ0JpQUJRUmhzRUJzaEFTQUFLQUxnQVNnQ0tDQUFLQUxrQVVFb2JHb2hBaUFCUlFSQUlBSW9BaEFRRkVFQUlRUWdBQ2dDNEFFb0FpZ2dBQ2dDNUFGQktHeHFJZ0JCQURZQ0NDQUFRUUEyQWhBZ0EwRUJRZjQxUVFBUUV3d0NDeUFDSUFFMkFoQU1BUXNnQlNBRU5nSlFJQU5CQVVIQTNnQWdCVUhRQUdvUUUwRUFJUVFMSUFWQmdBRnFKQUFnQkF2YUJnRUlmeU1BUWRBQWF5SURKQUFnQTBFQk5nSk1JQUFvQWl3aENRSkFBa0FnQUNnQzRBRW9BaWdpQkVVTkFDQUVLQUlRUlEwQUFrQWdCQ0FKUVNoc2FpSUVLQUlFUlFSQUlBRWdBQ2tETUVJQ2ZDQUNFREFOQVNBQ1FRRkJteXBCQUJBVERBTUxJQUVnQkNnQ0VDa0RBQ0FDRURCRkJFQWdBa0VCUVpzcVFRQVFFd3dEQ3lBQklBQW9BaEJCQWlBQ0VCMUJBa2NFUUNBQ1FRRkJneE5CQUJBVERBTUxJQUFvQWhBZ0EwSElBR3BCQWhBVklBTW9Ba2hCa1A4RFJnMEFJQUpCQVVIRUgwRUFFQk1NQWdzZ0FDZ0NDRUdBQWtjTkFDQUFRUWcyQWdnTEFrQWdBQ2dDaEFFZ0FDZ0NnQUZzSWdkRkRRQWdBQ2dDdEFFaEJVRUFJUVFnQjBFSVR3UkFJQWRCZUhFaENBTkFJQVVnQkVHTUxHeHFRWDgyQXRRcklBVWdCRUVCY2tHTUxHeHFRWDgyQXRRcklBVWdCRUVDY2tHTUxHeHFRWDgyQXRRcklBVWdCRUVEY2tHTUxHeHFRWDgyQXRRcklBVWdCRUVFY2tHTUxHeHFRWDgyQXRRcklBVWdCRUVGY2tHTUxHeHFRWDgyQXRRcklBVWdCRUVHY2tHTUxHeHFRWDgyQXRRcklBVWdCRUVIY2tHTUxHeHFRWDgyQXRRcklBUkJDR29oQkNBS1FRaHFJZ29nQ0VjTkFBc0xJQWRCQjNFaUIwVU5BQU5BSUFVZ0JFR01MR3hxUVg4MkF0UXJJQVJCQVdvaEJDQUdRUUZxSWdZZ0IwY05BQXNMUVFBaEJpQUFJQU5CeUFCcVFRQWdBMEhFQUdvZ0EwRkFheUFEUVR4cUlBTkJPR29nQTBFMGFpQURRY3dBYWlBQklBSVFMRVVOQUNBSlFRRnFJUWNEUUFKQUlBTW9Ba3hGRFFBZ0FDQURLQUpJSWdSQkFFRUFJQUVnQWhBeFJRMENJQUFvQW9BQklRZ2dBQ2dDaEFFaENpQURJQVJCQVdvaUJUWUNJQ0FESUFnZ0NtdzJBaVFnQWtFRVFlN2JBQ0FEUVNCcUVCTWdBQ2dDNkFFZ0FDZ0NaQ2dDR0JDQUFVVU5BaUFBS0FLMEFTQUVRWXdzYkdvaUJpZ0MzQ3NpQ0FSQUlBZ1FGQ0FHUWdBM0F0d3JDeUFESUFVMkFoQWdBa0VFUWJTQkFTQURRUkJxRUJNZ0JDQUpSZ1JBSUFFZ0FDZ0M0QUVwQXdoQ0Fud2dBaEF3RFFGQkFDRUdJQUpCQVVHYktrRUFFQk1NQXdzZ0F5QUhOZ0lFSUFNZ0JUWUNBQ0FDUVFKQnErb0FJQU1RRTBFQUlRWWdBQ0FEUWNnQWFrRUFJQU5CeEFCcUlBTkJRR3NnQTBFOGFpQURRVGhxSUFOQk5Hb2dBMEhNQUdvZ0FTQUNFQ3dOQVF3Q0N3c2dBQ0FDRUg4aEJnc2dBMEhRQUdva0FDQUdDNFlVQXc1L0FuNEJleU1BUWRBQWF5SUpKQUFnQ1VFQk5nSk1Ba0FDUUNBQUtBS0FBVUVCUncwQUlBQW9Bb1FCUVFGSERRQWdBQ2dDYkEwQUlBQW9BbkFOQUNBQUtBSmtJZ01vQWdBTkFDQURLQUlFRFFBZ0F5Z0NDQ0FBS0FKMFJ3MEFJQU1vQWd3Z0FDZ0NlRWNOQUVFQUlRTWdBQ0FKUWNnQWFrRUFJQWxCeEFCcUlBbEJRR3NnQ1VFOGFpQUpRVGhxSUFsQk5Hb2dDVUhNQUdvZ0FTQUNFQ3hGRFFFQ1FBSkFJQWtvQWt4RkRRQWdBQ0FKS0FKSVFRQkJBQ0FCSUFJUU1VVU5BQ0FBS0FKa0lnRW9BaEFOQVVFQklRTU1Bd3NnQWtFQlFhUEVBRUVBRUJNTUFnc2dBU2dDR0NFRkEwQWdCU0FFUVRSc0lnRnFLQUlzRUJRZ0FDZ0NaQ0lDS0FJWUlnVWdBV29pQXlBQUtBTG9BU0lIS0FJVUtBSUFLQUlVSUFSQnpBQnNhaUlHS0FJa05nSXNJQU1nQnlnQ0dDZ0NHQ0FCYWlnQ0pEWUNKQ0FHUVFBMkFpUkJBU0VESUFSQkFXb2lCQ0FDS0FJUVNRMEFDd3dCQ3lBQVFnQTNBMUFnQUNnQ1dCQVVJQUJCQURZQ1dBSkFBa0FnQUNnQ0hBMEFJQUFvQWlBTkFDQUFLQUlrSUFBb0FvQUJSdzBBUWdJaEVTQUFLQUlvSUFBb0FvUUJSZzBCQzBJQ0lSRWdBQ2dDVEEwQUlBRW9BaHhCQWtZTkFDQUFLQUtBQVNJTklBQW9Bb1FCYkNJREJINGdBMEVCY1NFRUlBQW9BdUFCS0FJb0lRY0NRQ0FEUVFGR0JFQkJBQ0VEUWdBaEVRd0JDeUFEUVg1eElRWkJBQ0VEUWdBaEVRTkFJQWNnQTBFb2JHb2lDQ2dDQkNJS0JFQWdDQ2dDRUNBS1FSaHNha0VJYXlrREFDSVNJQkVnRVNBU1V4c2hFUXNnQnlBRFFRRnlRU2hzYWlJSUtBSUVJZ29FUUNBSUtBSVFJQXBCR0d4cVFRaHJLUU1BSWhJZ0VTQVJJQkpUR3lFUkN5QURRUUpxSVFNZ0JVRUNhaUlGSUFaSERRQUxDd0pBSUFSRkRRQWdCeUFEUVNoc2FpSURLQUlFSWdWRkRRQWdBeWdDRUNBRlFSaHNha0VJYXlrREFDSVNJQkVnRVNBU1V4c2hFUXNnRVVJQ2ZBVkNBZ3NoRVVFQUlRUUNRQ0FBS0FJZ0lnWWdBQ2dDS0NJT1R3MEFJQUFvQWlRaUNDQUFLQUljSWdWTkRRQWdCU0FJSUFWcklncEJmSEVpQzJvaEJ5QUFLQUxnQVNnQ0tDRVBJQXBCQkVraEVBTkFJQThnQmlBTmJFRW9iR29oREFKQUFrQWdFQVJBSUFVaEF3d0JDLzBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0FFL1J3QUlSTkJBQ0VFQTBBZ0RDQUVJQVZxUVNoc2FpSURRZndBYWlBRFFkUUFhaUFEUVN4cUlBTkJCR3I5WEFJQS9WWUNBQUg5VmdJQUF2MVdBZ0FESUJQOXJnRWhFeUFFUVFScUlnUWdDMGNOQUFzZ0V5QVRJQlA5RFFnSkNnc01EUTRQQUFFQ0F3QUJBZ1A5cmdFaUV5QVRJQlA5RFFRRkJnY0FBUUlEQUFFQ0F3QUJBZ1A5cmdIOUd3QWhCQ0FISVFNZ0NpQUxSZzBCQ3dOQUlBd2dBMEVvYkdvb0FnUWdCR29oQkNBRFFRRnFJZ01nQ0VjTkFBc0xJQVpCQVdvaUJpQU9SdzBBQ3dzZ0FDQUVRUU4wRUJnaUJ6WUNXQ0FFUlEwQUlBZEZEUUJCQUNFRUFrQWdBQ2dDSUNJR0lBQW9BaWdpQTA4TkFDQUFLQUlrSWdVZ0FDZ0NIRTBOQUFOQUlBVWdBQ2dDSENJSFN3UkFJQUFvQXVBQktBSW9JQUFvQW9BQklBWnNRU2hzYWlFTkEwQWdEU0FIUVNoc2FpSUlLQUlFSWdNRVFDQURRUU54SVFvZ0NDZ0NFQ0VGUVFBaEN3SkFJQU5CQkVrRVFFRUFJUU1NQVFzZ0EwRjhjU0VPUVFBaEEwRUFJUXdEUUNBRVFRTjBJZ2dnQUNnQ1dHb2dCU0FEUVJoc2Fpa0RBRGNEQUNBQUtBSllJQWhxSUFVZ0EwRUJja0VZYkdvcEF3QTNBd2dnQUNnQ1dDQUlhaUFGSUFOQkFuSkJHR3hxS1FNQU53TVFJQUFvQWxnZ0NHb2dCU0FEUVFOeVFSaHNhaWtEQURjREdDQURRUVJxSVFNZ0JFRUVhaUVFSUF4QkJHb2lEQ0FPUncwQUN3c2dDZ1JBQTBBZ0FDZ0NXQ0FFUVFOMGFpQUZJQU5CR0d4cUtRTUFOd01BSUFOQkFXb2hBeUFFUVFGcUlRUWdDMEVCYWlJTElBcEhEUUFMQ3lBQUtBSWtJUVVMSUFkQkFXb2lCeUFGU1EwQUN5QUFLQUlvSVFNTElBWkJBV29pQmlBRFNRMEFDeUFBS0FKWUlRY0xJQUFnQkRZQ1ZDTUFRZEFCYXlJR0pBQWdCa0lCTndNSUFrQWdCRUVEZENJS1JRMEFJQVpCQ0RZQ0VDQUdRUWcyQWhSQkNDSUZJUVJCQWlFSUEwQWdCa0VRYWlBSVFRSjBhaUFGSWdNZ0JFRUlhbW9pQlRZQ0FDQUlRUUZxSVFnZ0F5RUVJQVVnQ2trTkFBc0NmeUFISUFwcVFRaHJJZ01nQjAwRVFFRUJJUWhCQVNFRlFRQU1BUXRCQVNFSVFRRWhCUU5BQW44Z0NFRURjVUVEUmdSQUlBY2dCU0FHUVJCcUVFUWdCa0VJYWtFQ0VEd2dCVUVDYWd3QkN3SkFJQVpCRUdvaUJDQUZRUUZySWdwQkFuUnFLQUlBSUFNZ0IydFBCRUFnQnlBSUlBWW9BZ3dnQlVFQUlBUVFPd3dCQ3lBSElBVWdCa0VRYWhCRUN5QUZRUUZHQkVBZ0JrRUlha0VCRURwQkFBd0JDeUFHUVFocUlBb1FPa0VCQ3lFRklBWWdCaWdDQ0VFQmNpSUlOZ0lJSUFkQkNHb2lCeUFEU1EwQUN5QUdLQUlNQ3lFRElBY2dDQ0FESUFWQkFDQUdRUkJxRURzZ0JpZ0NEQ0VFSUFZb0FnZ2hDQUpBSUFWQkFVY05BQ0FJUVFGSERRQWdCRVVOQVFzRFFBSi9JQVZCQVV3RVFDQUdRUWhxSUFnZ0JCQjNJZ01RUENBRElBVnFEQUVMSUFaQkNHb2lBMEVDRURvZ0JpQUdLQUlJUVFkek5nSUlJQU5CQVJBOElBZEJDR3NpQ2lBR1FSQnFJZ1FnQlVFQ2F5SUlRUUowYWlnQ0FHc2dCaWdDQ0NBR0tBSU1JQVZCQVd0QkFTQUVFRHNnQTBFQkVEb2dCaUFHS0FJSVFRRnlJZ00yQWdnZ0NpQURJQVlvQWd3Z0NFRUJJQVFRT3lBSUN5RUZJQWRCQ0dzaEJ5QUdLQUlNSVFRZ0JpZ0NDQ0VJSUFWQkFVY05BQ0FJUVFGSERRQWdCQTBBQ3dzZ0JrSFFBV29rQUFzZ0FDZ0NnQUVoQTBFQUlRVUNRQU5BQW44Q1FDQURRUUZIRFFBZ0FDZ0NoQUZCQVVjTkFDQUFLQUswQVNnQzNDdEZEUUFnQ1VFQU5nSklJQUJCQURZQzVBRWdBQ0FBS0FJSVFZQUJjallDQ0VFQURBRUxRUUFoQXlBQUlBbEJ5QUJxUVFBZ0NVSEVBR29nQ1VGQWF5QUpRVHhxSUFsQk9Hb2dDVUUwYWlBSlFjd0FhaUFCSUFJUUxFVU5BeUFKS0FKTVJRMENJQWtvQWtnTElnWkJBV29oQXlBQUlBWkJBRUVBSUFFZ0FoQXhJQUFvQW9BQklBQW9Bb1FCYkNFSFJRUkFJQWtnQnpZQ0JDQUpJQU0yQWdBZ0FrRUJRY3c2SUFrUUUwRUFJUU1NQXdzZ0NTQUhOZ0lrSUFrZ0F6WUNJQ0FDUVFSQjd0c0FJQWxCSUdvUUV5QUFLQUxvQVNBQUtBSmtLQUlZRUlBQlJRUkFRUUFoQXd3REN3SkFBa0FnQUNnQ2dBRkJBVWNOQUNBQUtBS0VBVUVCUncwQUlBQW9BbVFpQnlnQ0FDQUFLQUpnSWdRb0FnQkhEUUVnQnlnQ0JDQUVLQUlFUncwQklBY29BZ2dnQkNnQ0NFY05BU0FIS0FJTUlBUW9BZ3hIRFFFTElBQW9BclFCSUFaQmpDeHNhaUlIS0FMY0t5SUVSUTBBSUFRUUZDQUhRZ0EzQXR3ckN5QUpJQU0yQWhBZ0FrRUVRYlNCQVNBSlFSQnFFQk1nQVNrRENDSVNVQVIrUWdBRklCSWdBU2tET0gwTFVBUkFJQUFvQWdoQndBQkdEUUlMSUFWQkFXb2lCU0FBS0FLQUFTSURJQUFvQW9RQmJFWU5BU0FBS0FKVUlnZEZEUUFnQUNnQ1VDQUhSdzBBQ3lBQklCRWdBaUFCS0FJc0VRd0FHZ3NnQUNBQ0VIOGhBd3NnQ1VIUUFHb2tBQ0FEQzdjR0FReC9JQUFvQW1BaENRSkFJQUFvQW9BQklBQW9Bb1FCYkNJTUJFQWdDU2dDRUNJQlFiZ0liQ0VOSUFFZ0FXeEJBblFoQ2lBQUtBSU1JUVFnQUNnQ3RBRWhBd05BSUFNb0F0QXJJUXNnQXlBRVFZd3NFQllpQVVFQU5nTG9LeUFCUVg4MkF0UXJJQUZCQURZQ3NDZ2dBVUVBTmdLRUxDQUJRUUEyQXZBcklBRkNBRGNDK0NzZ0FTQUxOZ0xRS3lBQklBRXRBSWdzUWZ3QmNUb0FpQ3dnQkNnQzZDc0VRQ0FCSUFvUUdDSUROZ0xvS3lBRFJRUkFRUUFQQ3lBRElBUW9BdWdySUFvUUZob0xJQUVnQkNnQytDdEJGR3dpQlJBWUlnTTJBdkFyUVFBaENDQURSUTBDSUFNZ0JDZ0M4Q3NnQlJBV0dpQUVLQUwwS3lJR0JFQWdCQ2dDOENzaEF5QUJLQUx3S3lFRlFRQWhCd05BSUFNb0Fnd0VRQ0FGSUFNb0FoQVFHQ0lHTmdJTUlBWkZCRUJCQUE4TElBWWdBeWdDRENBREtBSVFFQllhSUFRb0F2UXJJUVlMSUFFZ0FTZ0MrQ3RCQVdvMkF2Z3JJQVZCRkdvaEJTQURRUlJxSVFNZ0IwRUJhaUlISUFaSkRRQUxDeUFCSUFRb0FvUXNRUlJzSWdVUUdDSUROZ0w4S3lBRFJRMENJQU1nQkNnQy9Dc2dCUkFXR2lBQklBUW9Bb1FzSWdnMkFvUXNJQWdFUUNBRUtBTDhLeUVESUFFb0F2d3JJUVZCQUNFSEEwQWdBeWdDQ0NJR0JFQWdCU0FCS0FMd0t5QUdJQVFvQXZBcmEybzJBZ2dMSUFNb0Fnd2lCZ1JBSUFVZ0FTZ0M4Q3NnQmlBRUtBTHdLMnRxTmdJTUN5QUZRUlJxSVFVZ0EwRVVhaUVESUFkQkFXb2lCeUFJUncwQUN3c2dDeUFFS0FMUUt5QU5FQllhSUFGQmpDeHFJUU1nRGtFQmFpSU9JQXhIRFFBTEMwRUJJUWdnQUFKL1FRQkJBVUhJQUJBWElnRkZEUUFhSUFFZ0FTMEFLRUgrQVhGQkFYSTZBQ2dnQVVFQlFRUVFGeUlFTmdJVUlBRWdCQTBBR2lBQkVCUkJBQXNpQVRZQzZBRWdBVVVFUUVFQUR3c2dBQ2dDN0FFaEJVRUFJUVFnQVNBQVFlZ0FhallDSENBQklBazJBaGhCQVVIUUJoQVhJUU1nQVNnQ0ZDQUROZ0lBQWtBZ0EwVU5BQ0FKS0FJUVFjd0FFQmNoQXlBQktBSVVLQUlBSWdjZ0F6WUNGQ0FEUlEwQUlBY2dDU2dDRURZQ0VDQUFLQUs4QVNFRUlBRWdCVFlDTENBQklBUTJBZ0JCQVNFRUN5QUVEUUFnQUNnQzZBRVFYa0VBSVFnZ0FFRUFOZ0xvQVNBQ1FRRkJyeHhCQUJBVEN5QUlDNVFYQXd0L0FYNEJmU01BUVRCcklnb2tBQ0FBUVFFMkFnZ0Nmd0pBQWtBZ0FTQUtRU2hxSWdOQkFpQUNFQjFCQWtjTkFDQURJQXBCTEdwQkFoQVZJQW9vQWl4QnovNERSdzBBSUFCQkFqWUNDQ0FBS0FMZ0FTQUJLUU00UWdKOUlnNDNBd0FnQ2lBT053TVFJQUpCQkVHODR3QWdDa0VRYWhBVElBQW9BdUFCSWdjcEF3QWhEaUFIS0FJWUlnVkJBV29pQXlBSEtBSWdJZ1JOQkVBZ0J5Z0NIQ0VFREFJTElBY0NmeUFFczBNQUFNaENraUlQUXdBQWdFOWRJQTlEQUFBQUFHQnhCRUFnRDZrTUFRdEJBQXNpQXpZQ0lDQUhLQUljSUFOQkdHd1FHeUlFQkVBZ0J5QUVOZ0ljSUFjb0FoZ2lCVUVCYWlFRERBSUxJQWNvQWh3UUZDQUhRUUEyQWlBZ0IwSUFOd01ZSUFKQkFVR1dIa0VBRUJNTElBSkJBVUdEK2dCQkFCQVRRUUFNQVFzZ0JDQUZRUmhzYWlJRVFRSTJBaEFnQkNBT3hEY0RDQ0FFUWMvK0F6c0JBQ0FISUFNMkFoZ2dBU0FBS0FJUVFRSWdBaEFkUVFKSEJFQWdBa0VCUVlNVFFRQVFFMEVBREFFTElBQW9BaEFnQ2tFb2FrRUNFQlVDUUFKQUlBb29BaWdpQkVHUS93TkhCRUFEUUVHZ3dnRWhCU0FFUWYvOUEwMEVRQ0FLSUFRMkFnQWdBa0VCUWJjUklBb1FFMEVBREFVTEEwQWdCU0lES0FJQUlnY0VRQ0FEUVF4cUlRVWdCQ0FIUncwQkN3c0NRQUpBSUFjTkFFRUNJUVlnQWtFQ1FlSWRRUUFRRTBHREV5RUZBa0FDUUNBQklBQW9BaEJCQWlBQ0VCMUJBa2NOQUFOQUlBQW9BaEFnQ2tFc2FrRUNFQlZCb01JQklRY2dDaWdDTENJRVFZRCtBMDhFUUFOQUlBY2lBeWdDQUNJSUJFQWdBMEVNYWlFSElBUWdDRWNOQVFzTElBTW9BZ1FnQUNnQ0NIRkZCRUJCOENraEJRd0RDeUFJQkVBZ0NFR1Evd05HQkVBZ0NrR1Evd00yQWlnTUJ3c2dBU2tET0NFT0lBQW9BdUFCSWdjb0FoZ2lBMEVCYWlJRUlBY29BaUFpQlUwRVFDQUhLQUljSVFVTUJRc2dCd0ovSUFXelF3QUF5RUtTSWc5REFBQ0FUMTBnRDBNQUFBQUFZSEVFUUNBUHFRd0JDMEVBQ3lJRE5nSWdJQWNvQWh3Z0EwRVliQkFiSWdVRVFDQUhJQVUyQWh3Z0J5Z0NHQ0lEUVFGcUlRUU1CUXNnQnlnQ0hCQVVJQWRCQURZQ0lDQUhRZ0EzQXhoQmxoNGhCUXdEQ3lBR1FRSnFJUVlMSUFFZ0FDZ0NFRUVDSUFJUUhVRUNSZzBBQ3dzZ0FrRUJJQVZCQUJBVElBSkJBVUhTekFCQkFCQVRRUUFNQndzZ0JTQURRUmhzYWlJRElBWTJBaEFnQXlBT3B5QUdhNnczQXdnZ0EwRUFPd0VBSUFjZ0JEWUNHQ0FLSUFnMkFpaEJvTUlCSVFRRFFDQUVJZ01vQWdBaUIwVU5BU0FEUVF4cUlRUWdCeUFJUncwQUN3c2dBeWdDQkNBQUtBSUljVVVFUUNBQ1FRRkI4Q2xCQUJBVFFRQU1CZ3NnQVNBQUtBSVFRUUlnQWhBZFFRSkhCRUFnQWtFQlFZTVRRUUFRRTBFQURBWUxJQUFvQWhBZ0NrRWtha0VDRUJVZ0NpZ0NKQ0lFUVFGTkJFQWdBa0VCUVpVdlFRQVFFMEVBREFZTElBb2dCRUVDYXlJRk5nSWtJQUFvQWhBaEJDQUFLQUlVSUFWSkJFQWdCQ0FGRUJzaUJFVUVRQ0FBS0FJUUVCUWdBRUlBTndNUUlBSkJBVUhJSmtFQUVCTkJBQXdIQ3lBQUlBUTJBaEFnQUNBS0tBSWtJZ1UyQWhRTElBRWdCQ0FGSUFJUUhTSUVJQW9vQWlSSEJFQWdBa0VCUVlNVFFRQVFFMEVBREFZTElBQWdBQ2dDRUNBRUlBSWdBeWdDQ0JFQkFFVUVRQ0FDUVFGQmxSTkJBQkFUUVFBTUJnc2dBU2tET0NFT0lBb29BaVFoQ0FKQUlBQW9BdUFCSWdNb0FoZ2lCa0VCYWlJRklBTW9BaUFpQkUwRVFDQURLQUljSVFRTUFRc2dBd0ovSUFTelF3QUF5RUtTSWc5REFBQ0FUMTBnRDBNQUFBQUFZSEVFUUNBUHFRd0JDMEVBQ3lJRU5nSWdJQU1vQWh3Z0JFRVliQkFiSWdSRkRRVWdBeUFFTmdJY0lBTW9BaGdpQmtFQmFpRUZDeUFFSUFaQkdHeHFJZ1FnQ0VFRWFqWUNFQ0FFSUE2bklBaHJRUVJyckRjRENDQUVJQWM3QVFBZ0F5QUZOZ0lZSUFFZ0FDZ0NFRUVDSUFJUUhVRUNSd1JBSUFKQkFVR0RFMEVBRUJOQkFBd0dDMEVCSUF3Z0IwSGMvZ05HR3lFTVFRRWdDU0FIUWRMK0EwWWJJUWxCQVNBTElBZEIwZjREUmhzaEN5QUFLQUlRSUFwQktHcEJBaEFWSUFvb0FpZ2lCRUdRL3dOSERRRUxDeUFMRFFFTElBSkJBVUdNSlVFQUVCTkJBQXdDQ3lBSlJRUkFJQUpCQVVHNkpVRUFFQk5CQUF3Q0N5QU1SUVJBSUFKQkFVSG9KVUVBRUJOQkFBd0NDMEVBSVFOQkFDRUZRUUFoQ1NNQVFSQnJJZ2NrQUVFQklRd0NRQ0FBTFFEVUFVRUJjVVVOQUFKQUlBQW9Bb2dCSWdaRkRRQUNRQU5BSUFBb0Fvd0JJQWxCQTNScUlnUW9BZ0FpQ3dSQUlBTWdCQ2dDQkNJSWF5SUVRUUFnQXlBRVR4c2hCQ0FESUFoSkJFQWdDQ0FEYXlFR0lBTWdDMm9oQ0FOQUlBWkJCRWtFUUVHQ0xDRUREQVVMSUFnZ0IwRU1ha0VFRUJVZ0J5Z0NEQ0lEUVg5eklBVkpCRUJCNkNzaEF3d0ZDeUFESUFaQkJHc2lDMnNnQkNBRElBdExJZzBiSVFRZ0F5QUZhaUVGSUFzZ0Eyc2hCaUFJUVFBZ0F5QU5HMnBCQkdvaENDQURJQXRKRFFBTElBQW9Bb2dCSVFZTElBUWhBd3NnQ1VFQmFpSUpJQVpKRFFBTElBTkZEUUZCQUNFTUlBSkJBVUhXRjBFQUVCTU1BZ3RCQUNFTUlBSkJBU0FEUVFBUUV3d0JDeUFBSUFVUUdDSUROZ0tnQVNBRFJRUkFRUUFoRENBQ1FRRkJ6Q0ZCQUJBVERBRUxJQUFnQlRZQ2xBRWdBQ2dDakFFaEJnSkFJQUFvQW9nQklnZ0VRRUVBSVFWQkFDRURRUUFoQkFOQUlBWWdCRUVEZENJTGFpSU5LQUlBSWdrRVFDQUFLQUtnQVNBRGFpRUlBbjhnRFNnQ0JDSUdJQVZOQkVBZ0NDQUpJQVlRRmhvZ0F5QUdhaUVESUFVZ0Jtc01BUXNnQ0NBSklBVVFGaG9nQXlBRmFpRURJQVlnQldzaEJpQUZJQWxxSVFVRFFDQUdRUVJKRFFVZ0JTQUhRUWhxUVFRUUZTQUZRUVJxSVFVZ0FDZ0NvQUVnQTJvaENTQUdRUVJySWdZZ0J5Z0NDQ0lJU1FSQUlBa2dCU0FHRUJZYUlBTWdCbW9oQXlBSEtBSUlJQVpyREFJTElBa2dCU0FJRUJZYUlBY29BZ2dpQ1NBRGFpRURJQVVnQ1dvaEJTQUdJQWxySWdZTkFBdEJBQXNoQlNBQUtBS01BU0FMYWlnQ0FCQVVJQUFvQW93QklnWWdDMnBDQURjQ0FDQUFLQUtJQVNFSUN5QUVRUUZxSWdRZ0NFa05BQXNnQUNnQ2xBRWhCU0FBS0FLZ0FTRURDeUFBSUFVMkFxZ0JJQUFnQXpZQ2tBRWdBRUVBTmdLSUFTQUdFQlFnQUVFQU5nS01BUXdCQzBFQUlRd2dBa0VCUVlJc1FRQVFFd3NnQjBFUWFpUUFJQXhGQkVBZ0FrRUJRZkErUVFBUUUwRUFEQUlMSUFKQkJFSEYyd0JCQUJBVElBQW9BdUFCSUFFcEF6aEMvdi8vL3c5OFF2Ly8vLzhQZ3pjRENFRUFJUUZCQUNFR0l3QkJFR3NpQnlRQUFrQWdBQ2dDUkNJRVJRUkFJQUJCQVRZQ1RBd0JDeUFBS0FKTURRQWdBQ2dDU0NFRElBQW9BdUFCSWd3b0FpZ2hCU0FFUVFGSEJFQWdCRUYrY1NFSUEwQWdCU0FESUFGQkEzUnFJZ3N2QVFBaURVRW9iR29pQ1NBTk5nSUFJQWtnQ1NnQ0NFRUJhallDQ0NBRklBc3ZBUWdpQzBFb2JHb2lDU0FMTmdJQUlBa2dDU2dDQ0VFQmFqWUNDQ0FCUVFKcUlRRWdCa0VDYWlJR0lBaEhEUUFMQ3lBRVFRRnhCRUFnQlNBRElBRkJBM1JxTHdFQUlnWkJLR3hxSWdFZ0JqWUNBQ0FCSUFFb0FnaEJBV28yQWdnTEFrQWdEQ2dDSkNJR0JFQkJBQ0VCQTBBZ0JTQUJRU2hzYWlnQ0NFVUVRQ0FISUFFMkFnQWdBa0VCUWJQSUFDQUhFQk1NQXdzZ0FVRUJhaUlCSUFaSERRQUxDeUFNS1FNSUlRNUJBQ0VGQTBBQ1FDQUFLQUxnQVNnQ0tDQURJQVZCQTNRaURHb3ZBUUJCS0d4cUlnRW9BaEFpQmtVRVFDQUJJQUVvQWdoQkdCQVhJZ1kyQWhBZ0JrVU5BU0FBS0FKRUlRUWdBQ2dDU0NFREN5QUdJQUVvQWdRaUNVRVliR29pQmlBT053TUFJQVlnRGlBRElBeHFOUUlFZkNJT053TVFJQUVnQ1VFQmFqWUNCQ0FGUVFGcUlnVWdCRWtOQVF3REN3c2dBa0VCUWIwMVFRQVFFd3NnQUVFQk5nSk1JQUFvQWtSRkRRQWdBQ2dDNEFFb0FpZ2hBMEVBSVFFRFFDQURJQUFvQWtnZ0FVRURkR292QVFCQktHd2lBbW9pQTBFQU5nSUlJQU1vQWhBUUZDQUFLQUxnQVNnQ0tDSURJQUpxUVFBMkFoQWdBVUVCYWlJQklBQW9Ba1JKRFFBTEN5QUhRUkJxSkFBZ0FFRUlOZ0lJUVFFTUFRc2dBeWdDSEJBVUlBTkJBRFlDSUNBRFFnQTNBeGdnQWtFQlFaWWVRUUFRRTBFQUN5QUtRVEJxSkFBTEhBQWdBQ2dDQ0VVZ0FDZ0MyQUZCQUVjZ0FDZ0MzQUZCQUVkeGNRc0VBRUVBQ3lRQUFrQWdBRVVOQUNBQUlBRTJBdEFCSUFGRkRRQWdBQ0FBTFFCY1FRaHlPZ0JjQ3d1UEFRRUVmeUFBS0FJWUlnRUVRQ0FBS0FJY0lnTkJORzRoQkNBRFFUUlBCSDlCQUNFREEwQWdBU2dDQUNJQ0JFQWdBa0VCYXhBVUlBRkJBRFlDQUFzZ0FTZ0NCQ0lDQkVBZ0FoQVVJQUZCQURZQ0JBc2dBU2dDQ0NJQ0JFQWdBaEFVSUFGQkFEWUNDQXNnQVVFMGFpRUJJQU5CQVdvaUF5QUVSdzBBQ3lBQUtBSVlCU0FCQ3hBVUlBQkJBRFlDR0FzTGlBRUJCSDhnQUNnQ0dDSUJCRUFnQUNnQ0hDSUNRY1FBYmlFRUlBSkJ4QUJQQkg5QkFDRUNBMEFnQVNnQ0FDSURCRUFnQXhBVUlBRkJBRFlDQUFzZ0FTZ0NCQ0lEQkVBZ0F4QVVJQUZCQURZQ0JBc2dBU2dDUEJBVUlBRkJBRFlDUENBQlFjUUFhaUVCSUFKQkFXb2lBaUFFUncwQUN5QUFLQUlZQlNBQkN4QVVJQUJCQURZQ0dBc0xQd0VCZnlBQUJFQWdBQ2dDZENJQkJFQWdBUkFVSUFCQkFEWUNkQXNnQUNnQ2VDSUJCRUFnQVJBVUlBQkJBRFlDZUFzZ0FDZ0NsQUVRRkNBQUVCUUxDOFNaQlFSRmZ3SjdCSDRCZlNNQVFlQUFheUltSkFBZ0FDZ0NDQ0VhQWtBQ1FBSkFBa0FnQUNnQ0FFVUVRQ0FhSUJvb0FoQWdHaWdDQ0dzZ0dpZ0NGQ0FhS0FJTWEyeEJBblFpQmhBY0lnVTJBandnQlVVRVFDQUFLQUlrR2lBQUtBSWdRUUZCc2o1QkFCQVRJQUFvQWlRYUlBQkJIR29oQlF3REN5QUZRUUFnQmhBWkdnd0JDeUFhS0FJOElnVkZEUUFnQlJBVUlCcEJBRFlDUEFzZ0FDZ0NFQ0l5S0FJY0lESW9BaGhCbUFGc2FpSUZRWmdCYXlnQ0FDRTJJQVZCa0FGcktBSUFJVGNnQUNnQ0ZDRXZJQUFvQWd3aE1DQUFLQUlFSVRnZ0FDZ0NIQ2dDQUVVTkFpQUFRUnhxSVFVQ1FBSi9RUUFnQVNnQ0JDSUhRUUJNRFFBYUlBRW9BZ0FoQ0VFQUlRWUNRQU5BSUFnZ0JrRU1iR29pQkNnQ0FFVU5BU0FHUVFGcUlnWWdCMGNOQUF0QkFBd0JDeUFFS0FJRUN5SUREUUJCQVVHY0FSQVhJZ05GQkVBZ0FDZ0NJRUVCUVlReFFRQVFFd3dDQ3lBRFFRQTJBb3dCQW45QkFDRUdRUUFnQVNnQ0JDSUhRZi8vLy84SFJnMEFHaUFCS0FJQUlRZ2dCMEVBU2dSQUEwQWdDQ0FHUVF4c2FpSUVLQUlBUlFSQUlBUW9BZ2dpQndSL0lBUW9BZ1FnQnhFQ0FDQUJLQUlBQlNBSUN5QUdRUXhzYWlJQlFRODJBZ2dnQVNBRE5nSUVRUUVNQXdzZ0JrRUJhaUlHSUFkSERRQUxDMEVBSUFnZ0IwRU1iRUVNYWhBYklnWkZEUUFhSUFFZ0JqWUNBQ0FHSUFFb0FnUWlCMEVNYkdvaUJrRVBOZ0lJSUFZZ0F6WUNCQ0FHUVFBMkFnQWdBU0FIUVFGcU5nSUVRUUVMRFFBZ0FDZ0NJRUVCUWUzQUFFRUFFQk1nQXlnQ2RDSUJCRUFnQVJBVUlBTkJBRFlDZEFzZ0F5Z0NlQ0lCQkVBZ0FSQVVJQU5CQURZQ2VBc2dBeWdDbEFFUUZDQURFQlFNQVFzZ0F5QUFLQUlZTmdLUUFTQUFLQUlvSVNzZ0FDZ0NKQ0VpSUFBb0FpQWhIU0F2S0FLb0JpRVRJREFvQWhBaEFRSkFBa0FnTHlnQ0VDSVhRY0FBY1FSQUlCY2hDaU1BUWJBQ2F5SVFKQUFDUUNBVEJFQWdJZ1JBSUIxQkFVSHVHRUVBRUJNTUFnc2dIVUVCUWU0WVFRQVFFd3dCQ3lBREtBSjBJUUlDUUFKQUlCb29BaFFnR2lnQ0RHc2lCaUFhS0FJUUlCb29BZ2hySWdsc0lnRWdBeWdDaEFGTEJFQWdBaEFVSUFNZ0FVRUNkQ0lURUJ3aUFqWUNkQ0FDUlFSQVFRQWhBZ3dFQ3lBRElBRTJBb1FCREFFTElBSkZEUUVnQVVFQ2RDRVRDeUFDUVFBZ0V4QVpHZ3NnQXlnQ2VDRUNBa0FnQXlnQ2lBRkJ6eFJMRFFBZ0FoQVVJQU5Cd05JQUVCd2lBallDZUNBQ0RRQkJBQ0VDREFFTElBTkIwQlEyQW9nQklBSkJBRUhBMGdBUUdSb2dBeUFHTmdLQUFTQURJQWsyQW53Z0dpZ0NHQ0lFUlFSQVFRRWhBZ3dCQ3lBYUtBSWNJUTFCQVNFQ0FrQUNRQUpBQWtBQ1FDQWFLQUkwSWdFRVFDQWFLQUlFSVFoQkFDRUNRUUFoQ1FKQUlBRkJCRThFUUNBQlFYeHhJUWxCQUNFSEEwQWdDQ0FIUVFOMGFpSUdRUnhxSUFaQkZHb2dCa0VNYWlBRy9Wd0NCUDFXQWdBQi9WWUNBQUw5VmdJQUF5QkgvYTRCSVVjZ0IwRUVhaUlISUFsSERRQUxJRWNnUnlCSC9RMElDUW9MREEwT0R3QUJBZ01BQVFJRC9hNEJJa2NnUnlCSC9RMEVCUVlIQUFFQ0F3QUJBZ01BQVFJRC9hNEIvUnNBSVFJZ0FTQUpSZzBCQ3dOQUlBZ2dDVUVEZEdvb0FnUWdBbW9oQWlBSlFRRnFJZ2tnQVVjTkFBc0xJQUZCQVVZRVFDQURLQUtRQVVVTkJRc2dBaUFES0FLWUFVME5BU0FES0FLVUFTQUNFQnNpRXcwQ1FRQWhBZ3dHQ3lBREtBS1FBVVVOQlFzZ0F5Z0NsQUVpRXcwQlFRQWhBZ3dFQ3lBRElBSTJBcGdCSUFNZ0V6WUNsQUVMSUJvb0FqUkZCRUJCQUNFQ0RBSUxJQm9vQWdRaEIwRUFJUUpCQUNFSkEwQWdBaUFUYWlBSElBbEJBM1FpQVdvaUJpZ0NBQ0FHS0FJRUVCWWFJQm9vQWdRaUJ5QUJhaWdDQkNBQ2FpRUNJQWxCQVdvaUNTQWFLQUkwU1EwQUN3d0JDeUFhS0FJRUtBSUFJUk1MUVFBaENVRUFJUWNDZjBFQUlCb29BaWdpQVVVTkFCb2dHaWdDQUNJR0tBSUlJUWRCQUNBQlFRRkdEUUFhSUFZb0FpQUxJUUVnQkNBTmF3SkFJQUVnQjJvaUIwVUVRRUVBSVFSQkFDRUlEQUVMUVFFaENTQWFLQUlBSWdFb0FnQWhCRUVBSVFnZ0IwRUJSZ1JBUVFBaENRd0JDeUFCS0FJWUlRZ0xRUUZxSVJZZ0F5Z0NkQ0VMSUFNb0FuZ2hEaUFhS0FJTUlSVWdHaWdDRkNFUElCb29BZ2doR1NBYUtBSVFJU3NDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnQ1VVTkFDQUlEUUFnSWtVTkFTQWRRUUpCa2RRQVFRQVFFMEVCSVFjTUFnc2dCMEVFU1EwQklDSUVRQ0FRSUFjMkFuQWdIVUVCUWRIS0FDQVFRZkFBYWhBVERBZ0xJQkFnQnpZQ1lDQWRRUUZCMGNvQUlCQkI0QUJxRUJOQkFDRUNEQWdMSUIxQkFrR1IxQUJCQUJBVElCb29BaGdpQ1VFZVN3MEJRUUVoR3lBSklCWlBEUU1NQlFzZ0dpZ0NHQ0lCSWdsQkhrME5BU0FpUlEwQUlCQWdBVFlDSUNBZFFRRkI2ZDhBSUJCQklHb1FFd3dGQ3lBUUlBazJBZ0FnSFVFQlFlbmZBQ0FRRUJOQkFDRUNEQVVMSUFrZ0Zra05BU0FIUVFKSkJFQWdCeUViREFFTElBa2dGa2NFUUNBSElSc01BUXRCQVNFYlFkRE5BUzBBQUEwQUlDSkZCRUJCME0wQlFRRTZBQUFnRUNBSE5nSkFJQjFCQWtHVzBBQWdFRUZBYXhBVERBRUxRZEROQVMwQUFFVUVRRUhRelFGQkFUb0FBQ0FRSUFjMkFsQWdIVUVDUVpiUUFDQVFRZEFBYWhBVEN3c0NRQUpBSUFSQkFra05BQ0FDSUFSSkRRQWdCQ0FJYWlBQ1RRMEJDeUFpQkVCQkFDRUNJQjFCQVVHWHlnQkJBQkFUREFVTFFRQWhBaUFkUVFGQmw4b0FRUUFRRXd3RUN3SkFBa0FnQkNBVGFpSVlRUUZyTFFBQUlnRkJCSFFnR0VFQ2F5MEFBRUVQY1hJaUJrRUNTUTBBSUFGQi93RkdEUUFnQkNBR1RnMEJDeUFpQkVCQkFDRUNJQjFCQVVHazl3QkJBQkFUREFVTFFRQWhBaUFkUVFGQnBQY0FRUUFRRXd3RUN5QWFLQUljSVNRQ2Z5QVFRUUEyQXBBQ0lCQkJBRFlDbUFJZ0VFSUFOd09JQWlBUVFnQTNBNmdDSUJCQ0FEY0NuQUlnRUNBR1FRRnJJZ2MyQXBRQ0lCQWdCQ0FUYWlBR2F5SUpOZ0tBQWlBSk1RQUFJVWxCQ0NFQklCQkJDRFlDa0FJZ0VDQUpRUUZxSWdJMkFvQUNJQkFnQmtFQ2F5SU5OZ0tVQWlBUUlFbENENFFnU1NBSFFRRkdHeUpKTndPSUFpQVFJRWxDL3dGUk5nS1lBZ0pBSUFsQkEzRWlCMEVEUmcwQUFrQWdTVUwvQVZJTkFDQUNMUUFBUVk4QlRRMEFRUUFNQWd0Qy93RWhTaUFHUVFOUEJFQWdBakVBQUNGS0N5QVFJQVpCQTJzaUZ6WUNsQUlnRUVFUFFSQWdTVUwvQVZFaUZCc2lBVFlDa0FJZ0VDQUNJQVpCQWt0cUlnazJBb0FDSUJBZ1NrSVBoQ0JLSUExQkFVWWJJa3BDL3dGUk5nS1lBaUFRSUVsQ0IwSUlJQlFiaGlCS2hDSkpOd09JQWlBSFFRSkdEUUJDL3dFaFN3SkFJRXBDL3dGU0RRQWdDUzBBQUVHUEFVME5BRUVBREFJTElBWkJCRThFUUNBSk1RQUFJVXNMSUJBZ0JrRUVheUlDTmdLVUFpQVFJQWtnQmtFRFMyb2lDVFlDZ0FJZ0VDQkxRZytFSUVzZ0YwRUJSaHNpUzBML0FWRTJBcGdDSUJBZ0FVRUhRUWdnU2tML0FWRWlEUnRxSWdFMkFwQUNJQkFnU1VJSFFnZ2dEUnVHSUV1RUlrazNBNGdDSUFkQkFVWU5BQUpBSUV0Qy93RlNEUUFnQ1MwQUFFR1BBVTBOQUVFQURBSUxRdjhCSVVvZ0JrRUZUd1JBSUFreEFBQWhTZ3NnRUNBR1FRVnJOZ0tVQWlBUUlBa2dCa0VFUzJvMkFvQUNJQkFnU2tJUGhDQktJQUpCQVVZYklrcEMvd0ZSTmdLWUFpQVFJQUZCQjBFSUlFdEMvd0ZSSWdrYmFpSUJOZ0tRQWlBUUlFbENCMElJSUFrYmhpQktoQ0pKTndPSUFnc2dFQ0JKUWNBQUlBRnJyWVkzQTRnQ1FRRUxSUVJBSUNJRVFFRUFJUUlnSFVFQlFhblpBRUVBRUJNTUJRdEJBQ0VDSUIxQkFVR3AyUUJCQUJBVERBUUxJQ3NnR1dzaEVpQVFJQVlpRFVFQ2F5SU1OZ0wwQVNBUUlBUWdFMm9pRVVFRGF5SUdOZ0xnQVNBUUlCRkJBbXN0QUFBaUFVR1BBVXNpQnpZQytBRWdFQ0FCUVFSMnJTSkpOd1BvQVNBUVFRTkJCQ0JKUWdlRFFnZFJHeUlVTmdMd0FTQUdRUU54UVFGcUlnRWdEQ0FCSUF4Skd5RVhBa0FDUUNBTVJRUkFRUUFoQWlBUUlBd2dGMnMyQXZRQkRBRUxJQkFnRVVFRWF5SUJOZ0xnQVNBUUlBWXRBQUFpQWtHUEFVc2lDVFlDK0FFZ0VDQUNyU0pLUXY4Qmd5QVVyWVlnU1lRaVNUY0Q2QUVnRUVFSFFRZ2dTa0wvQUlOQy93QlJHMEVJSUFjYklCUnFJaFEyQXZBQkFrQWdGMEVDU1FSQUlBa2hCd3dCQ3lBUUlCRkJCV3NpQ1RZQzRBRWdFQ0FCTFFBQUlnWkJqd0ZMSWdjMkF2Z0JJQkFnQnEwaVNrTC9BWU1nRksyR0lFbUVJa2szQStnQklCQkJDRUVIUVFnZ1NrTC9BSU5DL3dCUkd5QUNRWThCVFJzZ0ZHb2lGRFlDOEFFZ0YwRUNSZ1JBSUFFaEJpQUpJUUVNQVFzZ0VDQVJRUVpySWdJMkF1QUJJQkFnQ1MwQUFDSUJJaUZCandGTElnYzJBdmdCSUJBZ0FhMGlTa0wvQVlNZ0ZLMkdJRW1FSWtrM0ErZ0JJQkJCQ0VFSFFRZ2dTa0wvQUlOQy93QlJHeUFHUVk4QlRSc2dGR29pRkRZQzhBRWdGMEVEUmdSQUlBa2hCaUFDSVFFTUFRc2dFQ0FSUVFkcklnRTJBdUFCSUJBZ0FpMEFBQ0lHUVk4QlN5SUhOZ0w0QVNBUUlBYXRJa3BDL3dHRElCU3RoaUJKaENKSk53UG9BU0FRUVFoQkIwRUlJRXBDL3dDRFF2OEFVUnNnSVVHUEFVMGJJQlJxSWhRMkF2QUJJQUloQmdzZ0VDQU1JQmRySWdrMkF2UUJJQlJCSUVzTkFTQUpRUVJPQkVBZ0JrRUVheWdDQUNFQ0lCQWdCa0VGYXpZQzRBRWdFQ0FKUVFSck5nTDBBUXdCQ3lBSlFRQk1CRUJCQUNFQ0RBRUxJQWxCQVhFQ1FDQVhJQTFCQTJ0R0JFQkJHQ0VYUVFBaEFnd0JDeUFKUWY3Ly8vOEhjU0VoUVJnaEYwRUFJUUlnQVNFR1FRQWhEQU5BSUJBZ0JrRUJheUlnTmdMZ0FTQUdMUUFBSUJBZ0JrRUNheUlCTmdMZ0FTQVFJQWxCQVdzMkF2UUJJQ0F0QUFBaEJpQVFJQWxCQW1zaUNUWUM5QUVnRjNRZ0FuSWdCaUFYUVFocmRISWhBaUFYUVJCcklSY2dBU0VHSUF4QkFtb2lEQ0FoUncwQUN3dEZEUUFnRUNBQlFRRnJOZ0xnQVNBQkxRQUFJQkFnQ1VFQmF6WUM5QUVnRjNRZ0FuSWhBZ3NnRUNBQ1FmOEJjU0lCUVk4QlN6WUMrQUVnRUVFSFFRZ2dBa0dBZ0lENEIzRkJnSUNBK0FkR0cwRUlJQWNiSWdaQkNFRUhRUWdnQWtHQWdQd0RjVUdBZ1B3RFJoc2dBa0gvLy8vL2VFMGJhaUlKUVFoQkIwRUlJQUpCZ1A0QmNVR0EvZ0ZHR3lBQ1FSQjJRZjhCY1NJSFFZOEJUUnRxSWhkQkNFRUhRUWdnQWtIL0FIRkIvd0JHR3lBQ1FRaDJRZjhCY1NJTVFZOEJUUnNnRkdwcU5nTHdBU0FRSUFjZ0JuUWdBa0VZZG5JZ0RDQUpkSElnQVNBWGRIS3RJQlN0aGlCSmhEY0Q2QUVMSUJCQndBRnFJQk1nQkNBTmEwSC9BUkJrQW45QkFDQWJRUUpKRFFBYUlCQkJvQUZxSUJnZ0NFRUFFR1JCQUNBYlFRSkdEUUFhUWdBaFNVSUFJVXNnRUVFQk5nS1lBU0FRUVFBMkFwQUJJQkJDQURjRGlBRWdFQ0FJUVFGcklnRTJBcFFCSUJBZ0JDQVRhaUFJYWlJR1FRRnJJZ2syQW9BQklBbEJBM0VoRndKQUlBaEJBRXdFUUNBSklRWU1BUXNnRUNBR1FRSnJJZ1kyQW9BQklBa3hBQUFoU1FzZ0VDQkpOd09JQVNBUUlFbENqd0ZXSWhNMkFwZ0JJQkJCQjBFSUlFbEMvd0NEUXY4QVVSc2lEVFlDa0FFQ1FDQVhSUTBBSUJBZ0NFRUNheUlITmdLVUFRSkFJQWhCQWtnRVFDQUdJUUlNQVFzZ0VDQUdRUUZySWdJMkFvQUJJQVl4QUFBaFN3c2dFQ0JMUW84QlZpSVROZ0tZQVNBUUlFc2dEYTJHSUVtRUlrbzNBNGdCSUJCQkNFRUhRUWdnUzBML0FJTkMvd0JSR3lCSlFvOEJXQnNnRFdvaURUWUNrQUVnRjBFQlJnUkFJQUloQmlCS0lVa2dBU0VJSUFjaEFRd0JDeUFRSUFoQkEyc2lCRFlDbEFFQ1FDQUlRUU5JQkVBZ0FpRUpEQUVMSUJBZ0FrRUJheUlKTmdLQUFTQUNNUUFBSVV3TElCQWdURUtQQVZZaUV6WUNtQUVnRUNCTUlBMnRoaUJLaENKSk53T0lBU0FRUVFoQkIwRUlJRXhDL3dDRFF2OEFVUnNnUzBLUEFWZ2JJQTFxSWcwMkFwQUJJQmRCQWtZRVFDQUpJUVlnQnlFSUlBUWhBUXdCQ3lBUUlBaEJCR3NpQVRZQ2xBRkNBQ0ZMQWtBZ0NFRUVTQVJBSUFraEJnd0JDeUFRSUFsQkFXc2lCallDZ0FFZ0NURUFBQ0ZMQ3lBUUlFdENqd0ZXSWhNMkFwZ0JJQkFnU3lBTnJZWWdTWVFpU1RjRGlBRWdFRUVJUVFkQkNDQkxRdjhBZzBML0FGRWJJRXhDandGWUd5QU5haUlOTmdLUUFTQUVJUWdMSUExQklFMEVRQUpBSUFoQkJVNEVRQ0FHUVFOcktBSUFJUUlnRUNBSVFRVnJOZ0tVQVNBUUlBWkJCR3MyQW9BQkRBRUxRUUFoQWlBSVFRSklEUUJCR0NFSUEwQWdFQ0FHUVFGcklnazJBb0FCSUFZdEFBQWdFQ0FCUVFGcklnYzJBcFFCSUFoMElBSnlJUUlnQVVFQlN5QUpJUVlnQ0VFSWF5RUlJQWNoQVEwQUN3c2dFQ0FDUWY4QmNTSUJRWThCU3pZQ21BRWdFRUVIUVFnZ0FrR0FnSUQ0QjNGQmdJQ0ErQWRHRzBFSUlCTWJJZ1pCQ0VFSFFRZ2dBa0dBZ1B3RGNVR0FnUHdEUmhzZ0FrSC8vLy8vZUUwYmFpSUpRUWhCQjBFSUlBSkJnUDRCY1VHQS9nRkdHeUFDUVJCMlFmOEJjU0lIUVk4QlRSdHFJZ2hCQ0VFSFFRZ2dBa0gvQUhGQi93QkdHeUFDUVFoMlFmOEJjU0lFUVk4QlRSc2dEV3BxTmdLUUFTQVFJQWNnQm5RZ0FrRVlkbklnQkNBSmRISWdBU0FJZEhLdElBMnRoaUJKaERjRGlBRUxRUUVMSVRNZ0R5QVZheUVoSUJaQkFXb2hMQ0FPUVFBNkFNQVFJQTVCd0JCcUlSWWdFRUdBQW1vUUxTRUVJQkpCQUVvRVFDQWtRUUZySVJFZ0RpRUdJQlloQjBFQUlSTWdDeUVCUVFBaEZ3TkFJQmNoRFNBVFFRaDBJQkJCNEFGcUVEVkIvd0J4UVFGMGNrSGdnUUZxTHdFQUlRa0NRQ0FURFFBZ0NVRUFJQVJCQW1zaUFrRi9SaHNoQ1NBRVFRRktCRUFnQWlFRURBRUxJQkJCZ0FKcUVDMGhCQXNnRUNrRDZBRWdFQ2dDOEFFZ0JpQUdLQUlBSUFsQkJIWWlGVUVEY1NBSlFRSjJRVEJ4Y2lBamRISWlGRFlDQUNBSlFRVjJRUWR4SUFsQkVIRWlEMEVFZG5JaEV5QUpRUWR4SWdKcklSY2dBcTJJSWttbklRaEJBQ0VDSUJJZ0RVRUNja29FUUNBVFFRaDBJQWhCL3dCeFFRRjBja0hnZ1FGcUx3RUFJUUlDUUNBVERRQWdBa0VBSUFSQkFtc2lDRUYvUmhzaEFpQUVRUUZLQkVBZ0NDRUVEQUVMSUJCQmdBSnFFQzBoQkFzZ0FrRUVka0VCY1NBQ1FRVjJRUWR4Y2lFVElCY2dBa0VIY1NJSWF5RVhJRWtnQ0sySUlrbW5JUWdMSUFZZ0FrRUNkRUdBQm5FZ0FrRXdjWElnSTBFRWFuUWdGSEkyQWdBQ1FDQUNRUUoyUVFKeElBbEJBM1pCQVhGeUloUkJBMGNOQUVFRVFRTWdCRUVDYXlJTVFYOUdHeUVVSUFSQkFVb0VRQ0FNSVFRTUFRc2dFRUdBQW1vUUxTRUVDd0ovSUJSRkJFQWdFRUtCZ0lDQUVEY0NlRUVBREFFTElCUkJBazBFUUNBUVFRRWdDRUVIY1VHVW9nRnFMUUFBSWd4QkJYWkJmeUFNUVFKMlFRZHhJaGgwUVg5eklBZ2dERUVEY1NJSWRuRnFRUUZxSWd3Z0ZFRUJSaUlVR3pZQ2ZDQVFJQXhCQVNBVUd6WUNlQ0FJSUJocURBRUxJQWdnQ0VFSGNVR1VvZ0ZxTFFBQUlneEJBM0VpR0hZaENDQVVRUU5HQkVBZ0RFRUZka0VCYWlFVUlCaEJBMFlFUUNBUUlBaEJBWEZCQW5JMkFud2dFQ0FVUVg4Z0RFRUNka0VIY1NJTWRFRi9jeUFJUVFGMmNXbzJBbmdnREVFRWFnd0NDeUFRSUJRZ0NDQUlRUWR4UVpTaUFXb3RBQUFpQ0VFRGNTSWdkaUlsUVg4Z0RFRUNka0VIY1NJTWRFRi9jM0ZxTmdKNElCQkJmeUFJUVFKMlFRZHhJaFIwUVg5eklDVWdESFp4SUFoQkJYWnFRUUZxTmdKOElBd2dHR29nSUdvZ0ZHb01BUXNnRUNBSUlBaEJCM0ZCbEtJQmFpMEFBQ0lJUVFOeElpQjJJaVZCZnlBTVFRSjJRUWR4SWhSMFFYOXpjU0FNUVFWMmFrRURhallDZUNBUVFYOGdDRUVDZGtFSGNTSU1kRUYvY3lBbElCUjJjU0FJUVFWMmFrRURhallDZkNBWUlDQnFJQlJxSUF4cUN5RUlBa0FnTENBUUtBSjRJaFJQQkVBZ0VDZ0NmQ0lNSUN4TkRRRUxJQ0lFUUVFQUlRSWdIVUVCUWVmNkFFRUFFQk1NQnd0QkFDRUNJQjFCQVVIbitnQkJBQkFUREFZTElCQWdGeUFJYXpZQzhBRWdFQ0JKSUFpdGlEY0Q2QUVnQWtId0FYRWdGVUVQY1hKQi93RkIvd0VnRFVFRWFpSVhJQkpyUVFGMGRpQVNJQmRPR3lJSUlBaEIxUUJ4SUNGQkFVb2JJZ2hCZjNOeEJFQWdJZ1JBUVFBaEFpQWRRUUZCL2Q0QVFRQVFFd3dIQzBFQUlRSWdIVUVCUWYzZUFFRUFFQk1NQmdzQ1FBSkFJQThFUUNBUVFjQUJhaEFmSVJVZ0VDQVFLQUxRQVNBVUlBbEJFM1JCSDNWcUloaHJOZ0xRQVNBUUlCQXBBOGdCSUJpdGlEY0R5QUVnRlVGL0lCaDBRWDl6Y1NBSlFRaDJRUUZ4SUJoMGNrRUJja0VDYWlBUmRDQVZRUjkwY2lFWURBRUxRUUFoR0NBSVFRRnhSUTBCQ3lBQklCZzJBZ0FMQWtBZ0NVRWdjUVJBSUJCQndBRnFFQjhoRlNBUUlCQW9BdEFCSUJRZ0NVRVNkRUVmZFdvaUdHczJBdEFCSUJBZ0VDa0R5QUVnR0sySU53UElBU0FCSUJKQkFuUnFJQlZCZnlBWWRFRi9jM0VnQ1VFSmRrRUJjU0FZZEhKQkFYSWlHRUVDYWlBUmRDQVZRUjkwY2pZQ0FDQUhRU0FnR0dkckloZ2dCeTBBQUVIL0FIRWlGU0FWSUJoSkcwR0FBWEk2QUFBTUFRc2dDRUVDY1VVTkFDQUJJQkpCQW5ScVFRQTJBZ0FMSUFGQkJHb2hGUUpBQWtBZ0NVSEFBSEVFUUNBUVFjQUJhaEFmSVE4Z0VDQVFLQUxRQVNBVUlBbEJFWFJCSDNWcUloaHJOZ0xRQVNBUUlCQXBBOGdCSUJpdGlEY0R5QUVnRDBGL0lCaDBRWDl6Y1NBSlFRcDJRUUZ4SUJoMGNrRUJja0VDYWlBUmRDQVBRUjkwY2lFWURBRUxRUUFoR0NBSVFRUnhSUTBCQ3lBVklCZzJBZ0FMSUFkQkFEb0FBUUpBSUFsQmdBRnhCRUFnRUVIQUFXb1FIeUVZSUJBZ0VDZ0MwQUVnRkNBSlFSQjBRUjkxYWlJVWF6WUMwQUVnRUNBUUtRUElBU0FVcllnM0E4Z0JJQlVnRWtFQ2RHb2dHRUYvSUJSMFFYOXpjU0FKUVF0MlFRRnhJQlIwY2tFQmNpSUpRUUpxSUJGMElCaEJIM1J5TmdJQUlBZEJvSDhnQ1dkck9nQUJEQUVMSUFoQkNIRkZEUUFnRlNBU1FRSjBha0VBTmdJQUN5QUJRUWhxSVFrQ1FBSkFJQUpCRUhFRVFDQVFRY0FCYWhBZklSZ2dFQ0FRS0FMUUFTQU1JQUpCRTNSQkgzVnFJaFJyTmdMUUFTQVFJQkFwQThnQklCU3RpRGNEeUFFZ0dFRi9JQlIwUVg5emNTQUNRUWgyUVFGeElCUjBja0VCY2tFQ2FpQVJkQ0FZUVI5MGNpRVVEQUVMUVFBaEZDQUlRUkJ4UlEwQkN5QUpJQlEyQWdBTEFrQWdBa0VnY1FSQUlCQkJ3QUZxRUI4aEdDQVFJQkFvQXRBQklBd2dBa0VTZEVFZmRXb2lGR3MyQXRBQklCQWdFQ2tEeUFFZ0ZLMklOd1BJQVNBSklCSkJBblJxSUJoQmZ5QVVkRUYvYzNFZ0FrRUpka0VCY1NBVWRISkJBWElpQ1VFQ2FpQVJkQ0FZUVI5MGNqWUNBQ0FIUVNBZ0NXZHJJZ2tnQnkwQUFVSC9BSEVpRkNBSklCUkxHMEdBQVhJNkFBRU1BUXNnQ0VFZ2NVVU5BQ0FKSUJKQkFuUnFRUUEyQWdBTElBRkJER29oQ1FKQUFrQWdBa0hBQUhFRVFDQVFRY0FCYWhBZklSZ2dFQ0FRS0FMUUFTQU1JQUpCRVhSQkgzVnFJaFJyTmdMUUFTQVFJQkFwQThnQklCU3RpRGNEeUFFZ0dFRi9JQlIwUVg5emNTQUNRUXAyUVFGeElCUjBja0VCY2tFQ2FpQVJkQ0FZUVI5MGNpRVVEQUVMUVFBaEZDQUlRY0FBY1VVTkFRc2dDU0FVTmdJQUN5QUhRUUpxSWdkQkFEb0FBQUpBSUFKQmdBRnhCRUFnRUVIQUFXb1FIeUVVSUJBZ0VDZ0MwQUVnRENBQ1FSQjBRUjkxYWlJSWF6WUMwQUVnRUNBUUtRUElBU0FJcllnM0E4Z0JJQWtnRWtFQ2RHb2dGRUYvSUFoMFFYOXpjU0FDUVF0MlFRRnhJQWgwY2tFQmNpSUpRUUpxSUJGMElCUkJIM1J5TmdJQUlBZEJvSDhnQ1dkck9nQUFEQUVMSUFoQmdBRkpEUUFnQ1NBU1FRSjBha0VBTmdJQUN5QWpRUkJ6SVNNZ0JpQU5RUVJ4YWlFR0lBRkJFR29oQVNBU0lCZEtEUUFMQ3lBS1FRaHhJVGtnRGtHd0RHb2hLQ0FPUWFBSWFpRXBJQTVCa0FScUlTVWdJVUVEVGdSQUlCSkJER3doTVNBU1FRTjBJVG9nSkVFQmF5RWdRUU1nSkVFQ2F5SUJkQ0V0UVFFZ0FYUWhMaUFTUVFkcVFRRjJRZnovLy84SGNVRUVhaUU5SUNzZ0dVRi9jMm9pQVVFRGRpSUdRUUowSWo1QkJHb2hPeUFHUVFGcUlqOUIvUC8vL3dOeEloOUJBblFoUENBZlFRTjBJUlVnQVVFWVNTRkFRUUloREFOQUlBd2hFU0FXTFFBQUlSZ2dGa0VBT2dBQUlDTkJiM0ZCQW5NaEl3SkFJQkpCQUV3RVFDQU1RUUpxSVF3TUFRc2dKU0FPSUJGQkJIRWJJUk1nRVVFQ2FpRU1JQXNnRVNBU2JFRUNkR29oQjBFQUlSUWdGaUVCUVFBaEZ3TkFJQmNoRFNBQkxRQUJRUVYyUVFSeElCUWdHRUgvQVhFaUdFRUhkbkp5SWdaQkNIUWdFRUhnQVdvUU5VSC9BSEZCQVhSeVFlQ1JBV292QVFBaENRSkFJQVlOQUNBSlFRQWdCRUVDYXlJR1FYOUdHeUVKSUFSQkFVb0VRQ0FHSVFRTUFRc2dFRUdBQW1vUUxTRUVDeUFRS1FQb0FTQVFLQUx3QVNBVElCTW9BZ0FnQ1VFRWRrRURjU0FKUVFKMlFUQnhjaUFqZEhJaUNEWUNBQ0FKUWNBQWNTSWNRUVYySUFsQmdBRnhJaXBCQm5aeUlSUWdDVUVIY1NJR2F5RUtJQWF0aUNKSnB5RVhRUUFoQWlBU0lBMUJBbkpLQkVBZ0ZDQUJMUUFDUVFWMlFRUnhJQUV0QUFGQkIzWnljaUlHUVFoMElCZEIvd0J4UVFGMGNrSGdrUUZxTHdFQUlRSUNRQ0FHRFFBZ0FrRUFJQVJCQW1zaUJrRi9SaHNoQWlBRVFRRktCRUFnQmlFRURBRUxJQkJCZ0FKcUVDMGhCQXNnQ2lBQ1FRZHhJZ1pySVFvZ0FrRUZkaUFDUVFaMmNrRUNjU0VVSUVrZ0JxMklJa21uSVJjTElCTWdBa0VDZEVHQUJuRWdBa0V3Y1hJZ0kwRUVhblFnQ0hJMkFnQkJBU0VJUVFFaEJnSkFBa0FDUUNBQ1FRSjJRUUp4SUFsQkEzWkJBWEZ5SWc4T0JBSUFBQUVBQzBFQklCZEJCM0ZCbEtJQmFpMEFBQ0lHUVFWMlFYOGdCa0VDZGtFSGNTSWVkRUYvY3lBWElBWkJBM0VpRjNaeGFrRUJhaUlHSUE5QkFVWWlEeHNoQ0NBR1FRRWdEeHNoQmlBWElCNXFJUThNQVFzZ0Z5QVhRUWR4UVpTaUFXb3RBQUFpQmtFRGNTSVhkaUllUVFkeFFaU2lBV290QUFBaUNFRURjU0luSUJkcUlBWkJBblpCQjNFaUYyb2dDRUVDZGtFSGNTSTBhaUVQSUI0Z0ozWWlIa0YvSUJkMFFYOXpjU0FHUVFWMmFrRUJhaUVHUVg4Z05IUkJmM01nSGlBWGRuRWdDRUVGZG1wQkFXb2hDQXNnRUNBS0lBOXJOZ0x3QVNBUUlFa2dENjJJTndQb0FTQUpRZkFCY1NJWElCZEJBV3R4QkVBZ0JpQVlRZjhBY1NJS0lBRXRBQUZCL3dCeEloZ2dDaUFZU3hzaUNrRUNheUlZUVFBZ0NpQVlUeHRxSVFZTElBSkI4QUZ4SWdvZ0NrRUJhM0VFUUNBSUlBRXRBQUZCL3dCeEloZ2dBUzBBQWtIL0FIRWlEeUFQSUJoSkd5SVlRUUpyUVFBZ0dFRUNTeHRxSVFnTElBWWdMRTBnQ0NBc1RYRkZCRUFnSWdSQVFRQWhBaUFkUVFGQnkvc0FRUUFRRXd3SkMwRUFJUUlnSFVFQlFjdjdBRUVBRUJNTUNBc2dBUzBBQWlFWUlBRkJBRHNBQVNBS0lCZEJCSFp5UWY4QlFmOEJJQTFCQkdvaUZ5QVNhMEVCZEhZZ0VpQVhUaHNpQ2tIVkFIRWdDaUFNSUNGS0d5SVBRWDl6Y1FSQUlDSUVRRUVBSVFJZ0hVRUJRZjNlQUVFQUVCTU1DUXRCQUNFQ0lCMUJBVUg5M2dCQkFCQVREQWdMQWtBQ1FDQUpRUkJ4QkVBZ0VFSEFBV29RSHlFZUlCQWdFQ2dDMEFFZ0JpQUpRUk4wUVI5MWFpSUthellDMEFFZ0VDQVFLUVBJQVNBS3JZZzNBOGdCSUI1QmZ5QUtkRUYvYzNFZ0NVRUlka0VCY1NBS2RISkJBWEpCQW1vZ0lIUWdIa0VmZEhJaENnd0JDMEVBSVFvZ0QwRUJjVVVOQVFzZ0J5QUtOZ0lBQ3dKQUlBbEJJSEVFUUNBUVFjQUJhaEFmSVI0Z0VDQVFLQUxRQVNBR0lBbEJFblJCSDNWcUlncHJOZ0xRQVNBUUlCQXBBOGdCSUFxdGlEY0R5QUVnQnlBU1FRSjBhaUFlUVg4Z0NuUkJmM054SUFsQkNYWkJBWEVnQ25SeVFRRnlJZ3BCQW1vZ0lIUWdIa0VmZEhJMkFnQWdBVUVnSUFwbmF5SUtJQUV0QUFCQi93QnhJaDRnQ2lBZVN4dEJnQUZ5T2dBQURBRUxJQTlCQW5GRkRRQWdCeUFTUVFKMGFrRUFOZ0lBQ3lBSFFRUnFJUW9DUUFKQUlCd0VRQ0FRUWNBQmFoQWZJUndnRUNBUUtBTFFBU0FHSUFsQkVYUkJIM1ZxSWg1ck5nTFFBU0FRSUJBcEE4Z0JJQjZ0aURjRHlBRWdIRUYvSUI1MFFYOXpjU0FKUVFwMlFRRnhJQjUwY2tFQmNrRUNhaUFnZENBY1FSOTBjaUVlREFFTFFRQWhIaUFQUVFSeFJRMEJDeUFLSUI0MkFnQUxBa0FnS2dSQUlCQkJ3QUZxRUI4aEhpQVFJQkFvQXRBQklBWWdDVUVRZEVFZmRXb2lCbXMyQXRBQklCQWdFQ2tEeUFFZ0JxMklOd1BJQVNBS0lCSkJBblJxSUI1QmZ5QUdkRUYvYzNFZ0NVRUxka0VCY1NBR2RISkJBWElpQmtFQ2FpQWdkQ0FlUVI5MGNqWUNBQ0FCUWFCL0lBWm5hem9BQVF3QkN5QVBRUWh4UlEwQUlBb2dFa0VDZEdwQkFEWUNBQXNnQjBFSWFpRUpBa0FDUUNBQ1FSQnhCRUFnRUVIQUFXb1FIeUVLSUJBZ0VDZ0MwQUVnQ0NBQ1FSTjBRUjkxYWlJR2F6WUMwQUVnRUNBUUtRUElBU0FHcllnM0E4Z0JJQXBCZnlBR2RFRi9jM0VnQWtFSWRrRUJjU0FHZEhKQkFYSkJBbW9nSUhRZ0NrRWZkSEloQmd3QkMwRUFJUVlnRDBFUWNVVU5BUXNnQ1NBR05nSUFDd0pBSUFKQklIRUVRQ0FRUWNBQmFoQWZJUW9nRUNBUUtBTFFBU0FJSUFKQkVuUkJIM1ZxSWdack5nTFFBU0FRSUJBcEE4Z0JJQWF0aURjRHlBRWdDU0FTUVFKMGFpQUtRWDhnQm5SQmYzTnhJQUpCQ1haQkFYRWdCblJ5UVFGeUlnWkJBbW9nSUhRZ0NrRWZkSEkyQWdBZ0FVRWdJQVpuYXlJR0lBRXRBQUZCL3dCeElna2dCaUFKU3h0QmdBRnlPZ0FCREFFTElBOUJJSEZGRFFBZ0NTQVNRUUowYWtFQU5nSUFDeUFIUVF4cUlRa0NRQUpBSUFKQndBQnhCRUFnRUVIQUFXb1FIeUVLSUJBZ0VDZ0MwQUVnQ0NBQ1FSRjBRUjkxYWlJR2F6WUMwQUVnRUNBUUtRUElBU0FHcllnM0E4Z0JJQXBCZnlBR2RFRi9jM0VnQWtFS2RrRUJjU0FHZEhKQkFYSkJBbW9nSUhRZ0NrRWZkSEloQmd3QkMwRUFJUVlnRDBIQUFIRkZEUUVMSUFrZ0JqWUNBQXNnQVVFQ2FpRUJBa0FnQWtHQUFYRUVRQ0FRUWNBQmFoQWZJUW9nRUNBUUtBTFFBU0FJSUFKQkVIUkJIM1ZxSWdack5nTFFBU0FRSUJBcEE4Z0JJQWF0aURjRHlBRWdDU0FTUVFKMGFpQUtRWDhnQm5SQmYzTnhJQUpCQzNaQkFYRWdCblJ5UVFGeUlnWkJBbW9nSUhRZ0NrRWZkSEkyQWdBZ0FVR2dmeUFHWjJzNkFBQU1BUXNnRDBHQUFVa05BQ0FKSUJKQkFuUnFRUUEyQWdBTElDTkJFSE1oSXlBVElBMUJCSEZxSVJNZ0IwRVFhaUVISUJJZ0Ywb05BQXNMQWtBZ0cwRUNTUTBBSUJGQkFuRkZEUUFnREVFRWNTRUdBa0FDZndKQUFrQWdNd1JBSUE0Z0pTQUdHeUVOUVFBaER5QVNRUUJNRFFFZ0N5QVJRUUpySUJKc1FRSjBhaUVYQTBBZ0VFR0FBV29RTlNFQ1FRQWhDU0FOS0FJQUlnY0VRQ0FYSUE5QkFuUnFJUWxCQUNFSVFROGhBUU5BQWtBZ0FTQUhjVVVOQUNBQlFaR2l4SWdCY1NJVElBZHhCRUFnQ1NBSktBSUFJQUpCZjNOQkFYRWdJSFJ6SUM1eU5nSUFJQUpCQVhZaEFnc2dFMEVCZENBSGNRUkFJQWtnRWtFQ2RHb2lDaUFLS0FJQUlBSkJmM05CQVhFZ0lIUnpJQzV5TmdJQUlBSkJBWFloQWdzZ0UwRUNkQ0FIY1FSQUlBa2dPbW9pQ2lBS0tBSUFJQUpCZjNOQkFYRWdJSFJ6SUM1eU5nSUFJQUpCQVhZaEFnc2dFMEVEZENBSGNVVU5BQ0FKSURGcUloTWdFeWdDQUNBQ1FYOXpRUUZ4SUNCMGN5QXVjallDQUNBQ1FRRjJJUUlMSUFsQkJHb2hDU0FCUVFSMElRRWdDRUVCYWlJSVFRaEhEUUFMSUFkcElRa0xJQTFCQkdvaERTQVFJQkFvQXBBQklBbHJOZ0tRQVNBUUlCQXBBNGdCSUFtdGlEY0RpQUVnRDBFSWFpSVBJQkpJRFFBTEN5QXBJQ2dnQmhzaENpQU9JQ1VnQmhzaERTQUdSU0VQSUJKQkFFd05BMEVBSVFZZ1FBMEJJQW9nRFNBN2Fra2dEU0FLSUR0cUlnSkpjUTBCUVFBZ0NpSUpJQTBpQVNBK2FrRUlha2tnQVVFRWFpQUNTWEVOQWhvZ0FTQThhaUVCSUFrZ1BHb2hDZjBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0ZIUVFBaEFnTkFJQW9nQWtFQ2RDSUdhaUlISUFZZ0RXb2lCdjBBQWdBaVNFRUUvYTBCSUVoQkJQMnJBU0JISUVqOURRd05EZzhRRVJJVEZCVVdGeGdaR2h0QkhQMnRBZjFRL1ZBZ1NQMVFJa2Y5Q3dJQUlBY2dSeUFHL1FBQ0JFRWMvYXNCL1ZBaVIwRUIvYTBCL1F4M2QzZDNkM2QzZDNkM2QzZDNkM2QzL1U0Z1IwRUIvYXNCL1F6dTd1N3U3dTd1N3U3dTd1N3U3dTd1L1U3OVVDQkgvVkFnU1AxUC9Rc0NBQ0JJSVVjZ0FrRUVhaUlDSUI5SERRQUxJQjhnUDBZTkF5QVZJUVlnUi8wYkF3d0NDeUFHUlNFUElDa2dLQ0FHR3lFS0RBSUxJQW9oQ1NBTklRRkJBQXNoQWdOQUlBSkJISFloQnlBSklBRW9BZ0FpQWtFRWRpQUhJQUpCQkhSeWNpQUNjaUlITmdJQUlBa2dCeUFCS0FJRVFSeDBjaUlIUVFGMlFmZnUzYnNIY1NBSFFRRjBRZTdkdS9kK2NYSWdCM0lnQWtGL2MzRTJBZ0FnQ1VFRWFpRUpJQUZCQkdvaEFTQUdRUWhxSWdZZ0VrZ05BQXNMSUJGQkJra05BRUVBSVFoQkFDRVRJQTBoQ1NBcElDZ2dEeHNpSENFQ0lBNGdKU0FQR3lJWUlRRWdFa0VBU2dSQUEwQWdDVUVFYWlFSElBSW9BZ0FoRnlBSktBSUFJUVlnQWlBNUJIOGdGd1VnQmtFRWRDQVRRUngyY2lBR1FRUjJjaUFIS0FJQVFSeDBjaUFHY2tFRGRFR0lrYUxFZUhFZ0YzSUxJQUVvQWdCQmYzTnhOZ0lBSUFGQkJHb2hBU0FDUVFScUlRSWdCaUVUSUFjaENTQUlRUWhxSWdnZ0VrZ05BQXNnQ3lBUlFRWnJJQkpzUVFKMGFpRkJRUUFoSGlBWUlSTURRRUVBSVFjZ0hDZ0NBQ0lCQkVBZ0hrRUVjaUZDSUJJZ0htc2hRMEVBSVFKQkFDRVVBMEFnQWlBUVFhQUJhaEFmSVFJQ1FDQVVRUVJxSUVNZ0ZDQkNhaUFTU0JzaU5DQVVUQVJBUVFBaENRd0JDeUFUS0FJQVFYOXpJU29nUVNBVUlCNXlRUUowYWlFUFFRQWhDVUVQSUJRaUNFRUNkQ0pFZENJWElRWURRQUpBSUFFZ0JuRkZEUUFnQmtHUm9zU0lBWEVpSnlBQmNRUkFJQUpCQVhFRVFDQUhJQ2R5SVFkQk1pQUlRUUowZENBcWNTQUJjaUVCQ3lBQ1FRRjJJUUlnQ1VFQmFpRUpDeUFCSUNkQkFYUWlOWEVFUUNBQ1FRRnhCRUFnQnlBMWNpRUhJQUZCOUFBZ0NFRUNkSFFnS25GeUlRRUxJQUpCQVhZaEFpQUpRUUZxSVFrTElBRWdKMEVDZENJMWNRUkFJQUpCQVhFRVFDQUhJRFZ5SVFjZ0FVSG9BU0FJUVFKMGRDQXFjWEloQVFzZ0FrRUJkaUVDSUFsQkFXb2hDUXNnQVNBblFRTjBJaWR4UlEwQUlBSkJBWEVFUUNBSElDZHlJUWNnQVVIQUFTQUlRUUowZENBcWNYSWhBUXNnQ1VFQmFpRUpJQUpCQVhZaEFnc2dCa0VFZENFR0lBaEJBV29pQ0NBMFNBMEFDeUFISUVSMlFmLy9BM0ZGRFFBRFFBSkFJQWNnRjNGRkRRQWdGMEdSb3NTSUFYRWlCaUFIY1FSQUlBOGdEeWdDQUNBQ1FSOTBjaUF0Y2pZQ0FDQUNRUUYySVFJZ0NVRUJhaUVKQ3lBR1FRRjBJQWR4QkVBZ0R5QVNRUUowYWlJSUlBZ29BZ0FnQWtFZmRISWdMWEkyQWdBZ0FrRUJkaUVDSUFsQkFXb2hDUXNnQmtFQ2RDQUhjUVJBSUE4Z09tb2lDQ0FJS0FJQUlBSkJIM1J5SUMxeU5nSUFJQUpCQVhZaEFpQUpRUUZxSVFrTElBWkJBM1FnQjNGRkRRQWdEeUF4YWlJR0lBWW9BZ0FnQWtFZmRISWdMWEkyQWdBZ0NVRUJhaUVKSUFKQkFYWWhBZ3NnRjBFRWRDRVhJQTlCQkdvaER5QVVRUUZxSWhRZ05FZ05BQXNMSUJBZ0VDZ0NzQUVnQ1dzMkFyQUJJQkFnRUNrRHFBRWdDYTJJTndPb0FVRUJJUUpCQkNFVVFRRnhSUTBBQ3lBY0lCd29BZ1FnQjBFYmRrRU9jU0FIUVIxMmNpQUhRUngyY2lBVEtBSUVRWDl6Y1hJMkFnUUxJQk1vQWdBZ0IzSWlCa0VEZGtHUm9zU0lBWEVpQVVFRWRpQUJRUVIwY2lBQmNpRUpJQjRFUUNBS1FRUnJJZ0lnQWlnQ0FDQU5RUVJyS0FJQVFYOXpJQUZCSEhSeGNqWUNBQXNnQ2lBS0tBSUFJQWtnRFNnQ0FFRi9jM0Z5TmdJQUlBb2dDaWdDQkNBTktBSUVRWDl6SUFaQkgzWnhjallDQkNBY1FRUnFJUndnRTBFRWFpRVRJQXBCQkdvaENpQU5RUVJxSVEwZ0hrRUlhaUllSUJKSURRQUxDeUFZUVFBZ1BSQVpHZ3NnRENBaFNBMEFDd3NDUUNBYlFRSkpEUUFDUUNBaFFRTnhRUUZySWhkQkFra2dNM0VFUUNBU1FRQk1EUUZCQVNBa1FRSnJkQ0VISUFzZ0lVSDgvLzhIY1NBU2JFRUNkR29oQ2lBbElBNGdJVUVFY1JzaEJDQVNRUXhzSVJzZ0VrRURkQ0VXSUNSQkFXc2hEVUVBSVJRRFFDQVFRWUFCYWhBMUlRSkJBQ0VKSUFRb0FnQWlCZ1JBSUFvZ0ZFRUNkR29oQ1VFUElRRkJBQ0VJQTBBQ1FDQUJJQVp4UlEwQUlBRkJrYUxFaUFGeEloTWdCbkVFUUNBSklBa29BZ0FnQWtGL2MwRUJjU0FOZEhNZ0IzSTJBZ0FnQWtFQmRpRUNDeUFUUVFGMElBWnhCRUFnQ1NBU1FRSjBhaUlkSUIwb0FnQWdBa0YvYzBFQmNTQU5kSE1nQjNJMkFnQWdBa0VCZGlFQ0N5QVRRUUowSUFaeEJFQWdDU0FXYWlJZElCMG9BZ0FnQWtGL2MwRUJjU0FOZEhNZ0IzSTJBZ0FnQWtFQmRpRUNDeUFUUVFOMElBWnhSUTBBSUFrZ0cyb2lFeUFUS0FJQUlBSkJmM05CQVhFZ0RYUnpJQWR5TmdJQUlBSkJBWFloQWdzZ0NVRUVhaUVKSUFGQkJIUWhBU0FJUVFGcUlnaEJDRWNOQUFzZ0Jta2hDUXNnQkVFRWFpRUVJQkFnRUNnQ2tBRWdDV3MyQXBBQklCQWdFQ2tEaUFFZ0NhMklOd09JQVNBVVFRaHFJaFFnRWtnTkFBc0xJQmRCQVVzTkFDQVNRUUJNRFFBZ0pTQU9JQ0ZCQkhFaUFSc2hCeUFvSUNrZ0FSc2hDRUVBSVFZQ2Z3SkFJQ3NnR1VGL2Myb2lBVUU0U1EwQUlBZ2dCeUFCUVFGMlFmei8vLzhIY1NJSlFRUnFJZ0pxU1NBSElBSWdDR29pQWtseERRQWdDQ0FISUFscVFRaHFTU0FIUVFScUlBSkpjUTBBSUFGQkEzWkJBV29pRFVIOC8vLy9BM0VpQkVFRGRDRUdJQWNnQkVFQ2RDSUphaUVCSUFnZ0NXb2hDZjBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0ZIUVFBaEFnTkFJQWdnQWtFQ2RDSVRhaUlYSUFjZ0Uyb2lFLzBBQWdBaVNFRUUvYTBCSUVoQkJQMnJBU0JISUVqOURRd05EZzhRRVJJVEZCVVdGeGdaR2h0QkhQMnRBZjFRL1ZBZ1NQMVFJa2Y5Q3dJQUlCY2dSeUFUL1FBQ0JFRWMvYXNCL1ZBaVIwRUIvYTBCL1F4M2QzZDNkM2QzZDNkM2QzZDNkM2QzL1U0Z1IwRUIvYXNCL1F6dTd1N3U3dTd1N3U3dTd1N3U3dTd1L1U3OVVDQkgvVkFnU1AxUC9Rc0NBQ0JJSVVjZ0FrRUVhaUlDSUFSSERRQUxJQVFnRFVZTkFpQkgvUnNEREFFTElBZ2hDU0FISVFGQkFBc2hBZ05BSUFKQkhIWWhCeUFKSUFFb0FnQWlBa0VFZGlBSElBSkJCSFJ5Y2lBQ2NpSUhOZ0lBSUFrZ0J5QUJLQUlFUVJ4MGNpSUhRUUYyUWZmdTNic0hjU0FIUVFGMFFlN2R1L2QrY1hJZ0IzSWdBa0YvYzNFMkFnQWdDVUVFYWlFSklBRkJCR29oQVNBR1FRaHFJZ1lnRWtnTkFBc0xJQ0VnSVVFQmFrRURjV3RCQTJ0QkFDQWhRUVpLR3lJRUlDRk9EUUFnRWtFTWJDRXNJQkpCQTNRaExVRURJQ1JCQW10MElTQWdLeUFaUVg5emFpSUJRUU4ySWdaQkFuUWlHVUVFYWlFZElBWkJBV29pSkVIOC8vLy9BM0VpSWtFQ2RDRVJJQ0pCQTNRaEV5QUJRUmhKSVNzZ0FVRVhTeUV1QTBBQ1FBSkFBa0FDUUFKL0FrQWdJU0FFYXlJQlFRRnJJZ1pCQTA4RVFFRi9JUlFnQVVFRlNBMEZJQkpCQUV3TkJpQWxJQTRnQkVFRWNTSUJHeUVOSUNnZ0tTQUJHeUVJSURrRVFFRUFJUUVnTGtVTkJDQU5JQWdnSFdwSklBMGdIV29nQ0V0eERRUWdEU0FSYWlFSklBZ2dFV29oQWdOQUlBZ2dBVUVDZENJR2FpSUhJQWY5QUFJQUlBWWdEV3I5QUFJQS9VLzlDd0lBSUFGQkJHb2lBU0FpUncwQUN5QVRJUUVnSWlBa1JnMEdEQVVMSUE0Z0pTQUJHeUVYUVFBaEJpQXJEUUVnQ0NBWElCMXFTU0FYSUFnZ0hXb2lBVWx4RFFFZ0NDQVhJQmxxUVFocVNTQVhRUVJxSUFGSmNRMEJJQWdnRFNBZGFra2dBU0FOUzNFTkFTQU5JQkZxSVFjZ0NDQVJhaUVKSUJFZ0Yyb2hBdjBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0ZIUVFBaEFRTkFJQWdnQVVFQ2RDSUdhaUlLSUFZZ0Yyb2lHLzBBQWdBaVNFRUUvYTBCSUVoQkJQMnJBU0JISUVqOURRd05EZzhRRVJJVEZCVVdGeGdaR2h0QkhQMnRBZjFRL1ZBZ0cvMEFBZ1JCSFAyckFmMVFJRWo5VUVFRC9hc0IvUXlJaUlpSWlJaUlpSWlJaUlpSWlJaUkvVTRnQ3YwQUFnRDlVQ0FHSUExcS9RQUNBUDFQL1FzQ0FDQklJVWNnQVVFRWFpSUJJQ0pIRFFBTElDSWdKRVlOQlNBVElRWWdSLzBiQXd3Q0N5QUdRUUowUVp5aUFXb29BZ0FoRkF3RUN5QVhJUUlnQ0NFSklBMGhCMEVBQ3lFQkEwQWdBVUVjZGlFSUlBa2dDU2dDQUNBQ0tBSUFJZ0ZCQkhZZ0NDQUJRUVIwY25JZ0FpZ0NCRUVjZEhJZ0FYSkJBM1JCaUpHaXhIaHhjaUFIS0FJQVFYOXpjVFlDQUNBSFFRUnFJUWNnQ1VFRWFpRUpJQUpCQkdvaEFpQUdRUWhxSWdZZ0VrZ05BQXNNQWdzZ0NDRUNJQTBoQ1FzRFFDQUNJQUlvQWdBZ0NTZ0NBRUYvYzNFMkFnQWdDVUVFYWlFSklBSkJCR29oQWlBQlFRaHFJZ0VnRWtnTkFBc0xJQkpCQUV3TkFDQWxJQTRnQkVFRWNTSUJHeUVNSUNnZ0tTQUJHeUVZSUE0Z0pTQUJHeUVWSUNrZ0tDQUJHeUVLSUFzZ0JDQVNiRUVDZEdvaEtrRUFJUnNEUUVFQUlRY2dHQ2dDQUNBVWNTSUJCRUFnRzBFRWNpRW5JQklnRzJzaEgwRUFJUUpCQUNFTkEwQWdBaUFRUWFBQmFoQWZJUUlDUUNBTlFRUnFJQjhnRFNBbmFpQVNTQnNpSENBTlRBUkFRUUFoQ1F3QkN5QVVJQXdvQWdCQmYzTnhJU01nS2lBTklCdHlRUUowYWlFV1FRQWhDVUVQSUEwaUNFRUNkQ0l6ZENJUElRWURRQUpBSUFFZ0JuRkZEUUFnQmtHUm9zU0lBWEVpSGlBQmNRUkFJQUpCQVhFRVFDQUhJQjV5SVFkQk1pQUlRUUowZENBamNTQUJjaUVCQ3lBQ1FRRjJJUUlnQ1VFQmFpRUpDeUFCSUI1QkFYUWlNWEVFUUNBQ1FRRnhCRUFnQnlBeGNpRUhJQUZCOUFBZ0NFRUNkSFFnSTNGeUlRRUxJQUpCQVhZaEFpQUpRUUZxSVFrTElBRWdIa0VDZENJeGNRUkFJQUpCQVhFRVFDQUhJREZ5SVFjZ0FVSG9BU0FJUVFKMGRDQWpjWEloQVFzZ0FrRUJkaUVDSUFsQkFXb2hDUXNnQVNBZVFRTjBJaDV4UlEwQUlBSkJBWEVFUUNBSElCNXlJUWNnQVVIQUFTQUlRUUowZENBamNYSWhBUXNnQ1VFQmFpRUpJQUpCQVhZaEFnc2dCa0VFZENFR0lBaEJBV29pQ0NBY1NBMEFDeUFISUROMlFmLy9BM0ZGRFFBRFFBSkFJQWNnRDNGRkRRQWdEMEdSb3NTSUFYRWlCaUFIY1FSQUlCWWdGaWdDQUNBQ1FSOTBjaUFnY2pZQ0FDQUNRUUYySVFJZ0NVRUJhaUVKQ3lBR1FRRjBJQWR4QkVBZ0ZpQVNRUUowYWlJSUlBZ29BZ0FnQWtFZmRISWdJSEkyQWdBZ0FrRUJkaUVDSUFsQkFXb2hDUXNnQmtFQ2RDQUhjUVJBSUJZZ0xXb2lDQ0FJS0FJQUlBSkJIM1J5SUNCeU5nSUFJQUpCQVhZaEFpQUpRUUZxSVFrTElBWkJBM1FnQjNGRkRRQWdGaUFzYWlJR0lBWW9BZ0FnQWtFZmRISWdJSEkyQWdBZ0NVRUJhaUVKSUFKQkFYWWhBZ3NnRDBFRWRDRVBJQlpCQkdvaEZpQU5RUUZxSWcwZ0hFZ05BQXNMSUJBZ0VDZ0NzQUVnQ1dzMkFyQUJJQkFnRUNrRHFBRWdDYTJJTndPb0FVRUJJUUpCQkNFTlFRRnhSUTBBQ3lBWUlCZ29BZ1FnQjBFYmRrRU9jU0FIUVIxMmNpQUhRUngyY2lBTUtBSUVRWDl6Y1hJMkFnUUxJQXdvQWdBZ0IzSWlCa0VEZGtHUm9zU0lBWEVpQVVFRWRpQUJRUVIwY2lBQmNpRUpJQnNFUUNBS1FRUnJJZ0lnQWlnQ0FDQVZRUVJyS0FJQVFYOXpJQUZCSEhSeGNqWUNBQXNnQ2lBS0tBSUFJQWtnRlNnQ0FFRi9jM0Z5TmdJQUlBb2dDaWdDQkNBVktBSUVRWDl6SUFaQkgzWnhjallDQkNBWVFRUnFJUmdnREVFRWFpRU1JQXBCQkdvaENpQVZRUVJxSVJVZ0cwRUlhaUliSUJKSURRQUxDeUFFUVFScUlnUWdJVWdOQUFzTFFRRWhBaUFoUVFCTURRTWdFa0VBVEEwRElCSkIvUC8vL3dkeElnWkJBblFoQnlBU1FRUkpJUVJCQUNFSUEwQWdDeUFJSUJKc1FRSjBhaUVCQWtBQ1FDQUVCRUFnQVNFQ1FRQWhDUXdCQ3lBQklBZHFJUUpCQUNFSkEwQWdBU0FKUVFKMGFpSU5JQTM5QUFJQUlrZjlEUC8vLzMvLy8vOS8vLy8vZi8vLy8zLzlUaUpJL2FFQklFZ2dSLzBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBUDA1L1ZMOUN3SUFJQWxCQkdvaUNTQUdSdzBBQ3lBR0lna2dFa1lOQVFzRFFDQUNRUUFnQWlnQ0FDSUJRZi8vLy84SGNTSU5heUFOSUFGQkFFZ2JOZ0lBSUFKQkJHb2hBaUFKUVFGcUlna2dFa2NOQUFzTFFRRWhBaUFJUVFGcUlnZ2dJVWNOQUFzTUF3c2dJa1VOQUNBUUlCb29BaGcyQWpRZ0VDQVdOZ0l3SUIxQkFVR3h5d0FnRUVFd2FoQVREQUVMSUJBZ0NUWUNGQ0FRSUJZMkFoQWdIVUVCUWJITEFDQVFRUkJxRUJOQkFDRUNEQUVMUVFBaEFnc2dFRUd3QW1va0FDQUNEUUVNQXdzZ0F5QUJRUWwwUVpDdUFXbzJBbXdDZjBFQUlRY2dBeWdDZENFQkFrQUNRQ0FhS0FJUUlCb29BZ2hySWdvZ0dpZ0NGQ0FhS0FJTWF5SU5iQ0lHSUFNb0FvUUJTd1JBSUFFUUZDQURJQVpCQW5RUUhDSUJOZ0owUVFBZ0FVVU5BeG9nQXlBR05nS0VBUXdCQ3lBQlJRMEJDeUFCUVFBZ0JrRUNkQkFaR2dzZ0F5Z0NlQ0VCQWtBZ0NrRUNhaUlJSUExQkEycEJBbllpRmtFQ2Ftd2lCaUFES0FLSUFVMEVRQ0FHUVFKMElSc01BUXNnQVJBVUlBTWdCa0VDZENJYkVCd2lBVFlDZUNBQkRRQkJBQXdCQ3lBRElBWTJBb2dCSUFGQkFDQWJFQmthQWtBZ0NFVU5BQ0FES0FKNElnUWhBUUpBSUFoQkJFOEVRQ0FFSUFoQmZIRWlCMEVDZEdvaEFVRUFJUnNEUUNBRUlCdEJBblJxL1F3QUFDQkpBQUFnU1FBQUlFa0FBQ0JKL1FzQ0FDQWJRUVJxSWhzZ0IwY05BQXNnQnlBSVJnMEJDd05BSUFGQmdJQ0F5UVEyQWdBZ0FVRUVhaUVCSUFkQkFXb2lCeUFJUncwQUN3c2dCQ0FXUVFGcUlBaHNRUUowYWlFR1FRQWhCd0pBQWtBZ0NFRUVTUVJBSUFZaEFRd0JDeUFHSUFoQmZIRWlCMEVDZEdvaEFVRUFJUnNEUUNBR0lCdEJBblJxL1F3QUFDQkpBQUFnU1FBQUlFa0FBQ0JKL1FzQ0FDQWJRUVJxSWhzZ0IwY05BQXNnQnlBSVJnMEJDd05BSUFGQmdJQ0F5UVEyQWdBZ0FVRUVhaUVCSUFkQkFXb2lCeUFJUncwQUN3c2dEVUVEY1NJQlJRMEFRWUNBZ01nRVFZQ0FnTUFFUVlDQWdJQUVJQUZCQWtZYklBRkJBVVliSVJRZ0JDQUlJQlpzUVFKMGFpRUdRUUFoQndKQUlBaEJCRWtFUUNBR0lRRU1BUXNnQmlBSVFYeHhJZ2RCQW5ScUlRRWdGUDBSSVVoQkFDRWJBMEFnQmlBYlFRSjBhaUJJL1FzQ0FDQWJRUVJxSWhzZ0IwY05BQXNnQnlBSVJnMEJDd05BSUFFZ0ZEWUNBQ0FCUVFScUlRRWdCMEVCYWlJSElBaEhEUUFMQ3lBRElBMDJBb0FCSUFNZ0NqWUNmRUVCQzBVTkFpQWFLQUljSUJOcUlodEJIMDRFUUNBaVJRMENJQ1lnR3pZQ0VDQWRRUUpCNThNQUlDWkJFR29RRXd3REN5QURFR01nQTBId3JRRTJBbVFnQTBHUW93RTJBbUFnQTBHd293RTJBaHdnR2lnQ1FBMEFBa0FDUUNBYUtBSTBJZ2RCQVUwRVFDQUhRUUZIRFFFZ0F5Z0NrQUZGRFFFTElCb29BZ1FoQVVFQUlRWUNRQ0FIUVFSUEJFQWdCMEY4Y1NFQ0EwQWdBU0FKUVFOMGFpSUdRUnhxSUFaQkZHb2dCa0VNYWlBRy9Wd0NCUDFXQWdBQi9WWUNBQUw5VmdJQUF5QkgvYTRCSVVjZ0NVRUVhaUlKSUFKSERRQUxJRWNnUnlCSC9RMElDUW9MREEwT0R3QUJBZ01BQVFJRC9hNEJJa2NnUnlCSC9RMEVCUVlIQUFFQ0F3QUJBZ01BQVFJRC9hNEIvUnNBSVFZZ0FpQUhSZzBCQ3dOQUlBRWdBa0VEZEdvb0FnUWdCbW9oQmlBQ1FRRnFJZ0lnQjBjTkFBc0xJQU1vQXBRQklSQWdCa0VDYWlJSklBTW9BcGdCU3dSQUlCQWdDUkFiSWdGRkRRVWdBeUFCTmdLVUFTQUJJQVpxUVFBN0FBQWdBeUFKTmdLWUFTQURLQUtVQVNFUUlCb29BalJGRFFJZ0dpZ0NCQ0VCQzBFQUlRSkJBQ0VHQTBBZ0FpQVFhaUFCSUFaQkEzUWlCV29pQVNnQ0FDQUJLQUlFRUJZYUlCb29BZ1FpQVNBRmFpZ0NCQ0FDYWlFQ0lBWkJBV29pQmlBYUtBSTBTUTBBQ3d3QkN5QUhRUUZIRFFFZ0dpZ0NCQ2dDQUNFUUN5QWFLQUk4SWdFRVFDQURLQUowSVN3Z0F5QUJOZ0owQ3lBYUtBSXNCRUFnRjBFQ2NTRXRJQmRCQ0hFaEpTQURRUnhxSVJnZ0YwRUJjVVVoTGtFQ0lTRURRQ0FRSUI1cUlRRWdHaWdDQUNBb1FSaHNhaUlnS0FJQUlRVUNRQ0F1SUJzZ0dpZ0NIRUVFYTBvZ0lVRUJTM0p5SWlORkJFQWdBeUFCTmdJVUlBTWdBU0FGYWlJRk5nSVlJQU1nQlM4QUFEc0JjQ0FGUWY4Qk9nQUFJQU1vQWhoQi93RTZBQUVnQTBFQU5nSUlJQU5CQURZQ0FDQURJQUUyQWhBTUFRc2dBeUFCTmdJVUlBTWdBU0FGYWlJR05nSVlJQU1nQmk4QUFEc0JjQ0FHUWY4Qk9nQUFJQU1vQWhoQi93RTZBQUVnQXlBRFFSeHFOZ0pvSUFNZ0FUWUNFQ0FEUVFBMkFnd2dBeUFGQkg4Z0FTMEFBRUVRZEFWQmdJRDhCd3NpQlRZQ0FFRUJJUWtnQVVFQmFpRUNJQUV0QUFFaEJnSi9JQUV0QUFCQi93RkdCRUFnQmtHUUFVOEVRQ0FEUVFFMkFnd2dCVUdBL2dOeURBSUxJQU1nQWpZQ0VFRUFJUWtnQmtFSmRDQUZhZ3dCQ3lBRElBSTJBaEFnQmtFSWRDQUZjZ3NoQVNBRElBazJBZ2dnQTBHQWdBSTJBZ1FnQXlBQlFRZDBOZ0lBQ3lBZ0tBSUFJU29DUUNBYlFRQk1EUUFnSUNnQ0NFVU5BRUVBSVNrZ0xVRUFSeUFqY1NFbkEwQUNRQUpBQWtBQ1FBSkFJQ0ZCQVdzT0FnRUNBQXNnSTBVRVFFRUJJQnQwSWdGQkFYWWdBWEloQkNBREtBSjhJaFpCQW5RaURTQURLQUo0YWtFTWFpRUJJQU1vQW5RaEJrRUFJUk1nQXlnQ2dBRWlCVUVFVHdSQUlCWkZEUVVnRmtFTWJDRUhJQlpCQTNRaENrRUFJQVJySVFJRFFFRUFJUVVEUUFKQUlBRWlDU2dDQUNJQlJRMEFBa0FnQVVHUWdJQUJjUTBBSUFGQjd3TnhSUTBBSUFNb0FnQWhBUUpBSUFNb0FnZ2lDQTBBSUFGQi93RkdJUlFnQXlnQ0VDSUlMUUFBSVFFQ1FDQVVSUVJBSUFNZ0FUWUNBQ0FESUFoQkFXbzJBaEFNQVFzZ0FVR1BBVTBFUUNBRElBRTJBZ0FnQXlBSVFRRnFOZ0lRUVFjaENBd0NDMEgvQVNFQklBTkIvd0UyQWdBTFFRZ2hDQXNnQXlBSVFRRnJJZ2cyQWdnQ1FDQUJJQWgyUVFGeFJRMEFBa0FnQ0EwQUlBRkIvd0ZHSVJRZ0F5Z0NFQ0lJTFFBQUlRRUNRQ0FVUlFSQUlBTWdBVFlDQUNBRElBaEJBV28yQWhBTUFRc2dBVUdQQVUwRVFDQURJQUUyQWdBZ0F5QUlRUUZxTmdJUVFRY2hDQXdDQzBIL0FTRUJJQU5CL3dFMkFnQUxRUWdoQ0FzZ0F5QUlRUUZySWdnMkFnZ2dCaUFDSUFRZ0FTQUlka0VCY1NJSUd6WUNBQ0FES0FKOElRRWdDVUVFYXlJVUlCUW9BZ0JCSUhJMkFnQWdDU0FKS0FJRVFRaHlOZ0lFSUFrZ0NTZ0NBQ0FJUVJOMGNrRVFjallDQUNBbERRQWdDVUYrSUFGclFRSjBhaUlCSUFFb0FnUkJnSUFDY2pZQ0JDQUJJQUVvQWdBZ0NFRWZkSEpCZ0lBRWNqWUNBQ0FCUVFScklnRWdBU2dDQUVHQWdBaHlOZ0lBQ3lBSklBa29BZ0JCZ0lDQUFYSWlBVFlDQUFzQ1FDQUJRWUNCZ0FoeERRQWdBVUg0SG5GRkRRQWdBeWdDQUNFQkFrQWdBeWdDQ0NJSURRQWdBVUgvQVVZaEZDQURLQUlRSWdndEFBQWhBUUpBSUJSRkJFQWdBeUFCTmdJQUlBTWdDRUVCYWpZQ0VBd0JDeUFCUVk4QlRRUkFJQU1nQVRZQ0FDQURJQWhCQVdvMkFoQkJCeUVJREFJTFFmOEJJUUVnQTBIL0FUWUNBQXRCQ0NFSUN5QURJQWhCQVdzaUNEWUNDQ0FKQW44Z0FTQUlka0VCY1VVRVFDQUpLQUlBREFFTEFrQWdDQTBBSUFGQi93RkdJUlFnQXlnQ0VDSUlMUUFBSVFFQ1FDQVVSUVJBSUFNZ0FUWUNBQ0FESUFoQkFXbzJBaEFNQVFzZ0FVR1BBVTBFUUNBRElBRTJBZ0FnQXlBSVFRRnFOZ0lRUVFjaENBd0NDMEgvQVNFQklBTkIvd0UyQWdBTFFRZ2hDQXNnQXlBSVFRRnJJZ2cyQWdnZ0JpQU5haUFDSUFRZ0FTQUlka0VCY1NJQkd6WUNBQ0FKUVFScklnZ2dDQ2dDQUVHQUFuSTJBZ0FnQ1NBSktBSUVRY0FBY2pZQ0JDQUpLQUlBSUFGQkZuUnlRWUFCY2d0QmdJQ0FDSElpQVRZQ0FBc0NRQ0FCUVlDSWdNQUFjUTBBSUFGQndQY0JjVVVOQUNBREtBSUFJUUVDUUNBREtBSUlJZ2dOQUNBQlFmOEJSaUVVSUFNb0FoQWlDQzBBQUNFQkFrQWdGRVVFUUNBRElBRTJBZ0FnQXlBSVFRRnFOZ0lRREFFTElBRkJqd0ZOQkVBZ0F5QUJOZ0lBSUFNZ0NFRUJhallDRUVFSElRZ01BZ3RCL3dFaEFTQURRZjhCTmdJQUMwRUlJUWdMSUFNZ0NFRUJheUlJTmdJSUlBa0NmeUFCSUFoMlFRRnhSUVJBSUFrb0FnQU1BUXNDUUNBSURRQWdBVUgvQVVZaEZDQURLQUlRSWdndEFBQWhBUUpBSUJSRkJFQWdBeUFCTmdJQUlBTWdDRUVCYWpZQ0VBd0JDeUFCUVk4QlRRUkFJQU1nQVRZQ0FDQURJQWhCQVdvMkFoQkJCeUVJREFJTFFmOEJJUUVnQTBIL0FUWUNBQXRCQ0NFSUN5QURJQWhCQVdzaUNEWUNDQ0FHSUFwcUlBSWdCQ0FCSUFoMlFRRnhJZ0ViTmdJQUlBbEJCR3NpQ0NBSUtBSUFRWUFRY2pZQ0FDQUpJQWtvQWdSQmdBUnlOZ0lFSUFrb0FnQWdBVUVaZEhKQmdBaHlDMEdBZ0lEQUFISWlBVFlDQUFzZ0FVR0F3SUNBQkhFTkFDQUJRWUM4RDNGRkRRQWdBeWdDQUNFQkFrQWdBeWdDQ0NJSURRQWdBVUgvQVVZaEZDQURLQUlRSWdndEFBQWhBUUpBSUJSRkJFQWdBeUFCTmdJQUlBTWdDRUVCYWpZQ0VBd0JDeUFCUVk4QlRRUkFJQU1nQVRZQ0FDQURJQWhCQVdvMkFoQkJCeUVJREFJTFFmOEJJUUVnQTBIL0FUWUNBQXRCQ0NFSUN5QURJQWhCQVdzaUNEWUNDQ0FCSUFoMlFRRnhCRUFDUUNBSURRQWdBVUgvQVVZaEZDQURLQUlRSWdndEFBQWhBUUpBSUJSRkJFQWdBeUFCTmdJQUlBTWdDRUVCYWpZQ0VBd0JDeUFCUVk4QlRRUkFJQU1nQVRZQ0FDQURJQWhCQVdvMkFoQkJCeUVJREFJTFFmOEJJUUVnQTBIL0FUWUNBQXRCQ0NFSUN5QURJQWhCQVdzaUNEWUNDQ0FHSUFkcUlBSWdCQ0FCSUFoMlFRRnhJZ2diTmdJQUlBTW9BbndoQVNBSlFRUnJJaFFnRkNnQ0FFR0FnQUZ5TmdJQUlBa2dDU2dDQkVHQUlISTJBZ1FnQ1NBSktBSUFJQWhCSEhSeVFZREFBSEkyQWdBZ0NTQUJRUUowYWlJQklBRW9BZ1JCQkhJMkFnUWdBU0FCS0FJTVFRRnlOZ0lNSUFFZ0FTZ0NDQ0FJUVJKMGNrRUNjallDQ0FzZ0NTQUpLQUlBUVlDQWdJQUVjallDQUFzZ0JrRUVhaUVHSUFsQkJHb2hBU0FGUVFGcUlnVWdGa2NOQUFzZ0JpQUhhaUVHSUFsQkRHb2hBU0FUUVFScUloTWdBeWdDZ0FFaUJVRjhjVWtOQUFzTElBVWdFMDBOQXlBV1JRMERRUUFoQ2tFQUlBUnJJUTRnQlNFSUEwQUNRQ0FJSUJOR0JFQWdFeUVJREFFTElBRkJCR3NoRkNBQktBSUFJUTFCQUNFQ0EwQUNRQ0FOSUFKQkEyd2lDWFlpQjBHUWdJQUJjUTBBSUFkQjd3TnhSUTBBSUFNb0FnQWhCUUpBSUFNb0FnZ2lCdzBBSUFWQi93RkhJUWdnQXlnQ0VDSUhMUUFBSVFVQ1FDQUlSUVJBSUFWQmtBRlBCRUJCL3dFaEJTQURRZjhCTmdJQURBSUxJQU1nQlRZQ0FDQURJQWRCQVdvMkFoQkJCeUVIREFJTElBTWdCVFlDQUNBRElBZEJBV28yQWhBTFFRZ2hCd3NnQXlBSFFRRnJJZ2MyQWdnQ1FDQUZJQWQyUVFGeFJRMEFJQVlnQWlBV2JFRUNkR29DUUNBSERRQWdCVUgvQVVjaERTQURLQUlRSWdjdEFBQWhCUUpBSUExRkJFQWdCVUdRQVU4RVFFSC9BU0VGSUFOQi93RTJBZ0FNQWdzZ0F5QUZOZ0lBSUFNZ0IwRUJhallDRUVFSElRY01BZ3NnQXlBRk5nSUFJQU1nQjBFQmFqWUNFQXRCQ0NFSEN5QURJQWRCQVdzaUJ6WUNDQ0FPSUFRZ0JTQUhka0VCY1NJSEd6WUNBQ0FES0FKOElRZ2dGQ0FVS0FJQVFTQWdDWFJ5TmdJQUlBRWdBU2dDQUNBSFFSTjBRUkJ5SUFsMGNqWUNBQ0FCSUFFb0FnUkJDQ0FKZEhJMkFnUWdBaUFsY2tVRVFDQUJRWDRnQ0d0QkFuUnFJZ1VnQlNnQ0JFR0FnQUp5TmdJRUlBVWdCU2dDQUNBSFFSOTBja0dBZ0FSeU5nSUFJQVZCQkdzaUJTQUZLQUlBUVlDQUNISTJBZ0FMSUFKQkEwY05BQ0FCSUFoQkFuUnFJZ1VnQlNnQ0JFRUVjallDQkNBRklBVW9BZ3hCQVhJMkFnd2dCU0FGS0FJSUlBZEJFblJ5UVFKeU5nSUlDeUFCSUFFb0FnQkJnSUNBQVNBSmRISWlEVFlDQUNBREtBS0FBU0VGQ3lBRklRZ2dBa0VCYWlJQ0lBVWdFMnRKRFFBTEN5QUdRUVJxSVFZZ0FVRUVhaUVCSUFwQkFXb2lDaUFXUncwQUN3d0RDMEVBSVFsQkFDRVdRUUFoQ2dKQUFrQUNRQUpBSUFNb0Fud2lCRUhBQUVjTkFDQURLQUtBQVVIQUFFY05BRUVBUVFFZ0czUWlBVUVCZGlBQmNpSVRheUVVSUFOQkhHb2hCQ0FES0FKNFFZd0NhaUVHSUFNb0FnZ2hDQ0FES0FJRUlRVWdBeWdDQUNFSElBTW9BbWdoRFNBREtBSjBJUUVnRjBFSWNRMEJBMEJCQUNFS0EwQWdBU0VDSUFZaUNTZ0NBQ0lHQkVBQ1FDQUdRWkNBZ0FGeERRQWdCa0h2QTNFaUFVVU5BQ0FGSUFRZ0F5Z0NiQ0FCYWkwQUFFRUNkR29pRFNnQ0FDSU9LQUlBSWdGcklRVUNmeUFCSUFkQkVIWkxCRUFnRGlnQ0JDRU1JQTBnRGtFSVFRd2dBU0FGU3lJTEcyb29BZ0EyQWdBRFFBSkFJQWdOQUNBREtBSVFJZ2hCQVdvaERpQUlMUUFCSVFVZ0NDMEFBRUgvQVVZRVFDQUZRWkFCVHdSQUlBTWdBeWdDREVFQmFqWUNEQ0FIUVlEK0Eyb2hCMEVJSVFnTUFnc2dBeUFPTmdJUUlBVkJDWFFnQjJvaEIwRUhJUWdNQVFzZ0F5QU9OZ0lRUVFnaENDQUZRUWgwSUFkcUlRY0xJQWhCQVdzaENDQUhRUUYwSVFjZ0FVRUJkQ0lCUVlDQUFra05BQXNnQVNFRklBd2dERVVnQ3hzTUFRc2dCeUFCUVJCMGF5RUhJQVZCZ0lBQ2NVVUVRQ0FPS0FJRUlRd2dEU0FPUVF4QkNDQUJJQVZMSWdzYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFNb0FoQWlDRUVCYWlFT0lBZ3RBQUVoQVNBSUxRQUFRZjhCUmdSQUlBRkJrQUZQQkVBZ0F5QURLQUlNUVFGcU5nSU1JQWRCZ1A0RGFpRUhRUWdoQ0F3Q0N5QURJQTQyQWhBZ0FVRUpkQ0FIYWlFSFFRY2hDQXdCQ3lBRElBNDJBaEJCQ0NFSUlBRkJDSFFnQjJvaEJ3c2dDRUVCYXlFSUlBZEJBWFFoQnlBRlFRRjBJZ1ZCZ0lBQ1NRMEFDeUFNUlNBTUlBc2JEQUVMSUE0b0FnUUxCSDhnQlNBRUlBa29BZ1JCRVhaQkJIRWdDVUVFYXlJTUtBSUFRUk4yUVFGeElBWkJEblpCRUhFZ0JrRVFka0hBQUhFZ0JrR3FBWEZ5Y25KeUlndEJrTDRCYWkwQUFFRUNkR29pRFNnQ0FDSU9LQUlBSWdGcklRVWdDMEdRd0FGcUxRQUFJUXNnQWlBVElCUWdDd0ovSUFFZ0IwRVFka3NFUUNBT0tBSUVJUkVnRFNBT1FRaEJEQ0FCSUFWTEloVWJhaWdDQURZQ0FBTkFBa0FnQ0EwQUlBTW9BaEFpQ0VFQmFpRU9JQWd0QUFFaEJTQUlMUUFBUWY4QlJnUkFJQVZCa0FGUEJFQWdBeUFES0FJTVFRRnFOZ0lNSUFkQmdQNERhaUVIUVFnaENBd0NDeUFESUE0MkFoQWdCVUVKZENBSGFpRUhRUWNoQ0F3QkN5QURJQTQyQWhCQkNDRUlJQVZCQ0hRZ0Iyb2hCd3NnQ0VFQmF5RUlJQWRCQVhRaEJ5QUJRUUYwSWdGQmdJQUNTUTBBQ3lBQklRVWdFU0FSUlNBVkd3d0JDeUFISUFGQkVIUnJJUWNnQlVHQWdBSnhSUVJBSUE0b0FnUWhFU0FOSUE1QkRFRUlJQUVnQlVzaUZSdHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0F5Z0NFQ0lJUVFGcUlRNGdDQzBBQVNFQklBZ3RBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQURJQU1vQWd4QkFXbzJBZ3dnQjBHQS9nTnFJUWRCQ0NFSURBSUxJQU1nRGpZQ0VDQUJRUWwwSUFkcUlRZEJCeUVJREFFTElBTWdEallDRUVFSUlRZ2dBVUVJZENBSGFpRUhDeUFJUVFGcklRZ2dCMEVCZENFSElBVkJBWFFpQlVHQWdBSkpEUUFMSUJGRklCRWdGUnNNQVFzZ0RpZ0NCQXNpQVVZYk5nSUFJQXdnRENnQ0FFRWdjallDQUNBSklBa29BZ1JCQ0hJMkFnUWdDVUdNQW1zaURpQU9LQUlBUVlDQUNISTJBZ0FnQ1VHRUFtc2lEaUFPS0FJQVFZQ0FBbkkyQWdBZ0NVR0lBbXNpRGlBT0tBSUFJQUVnQzNNaUFVRWZkSEpCZ0lBRWNqWUNBQ0FHSUFGQkUzUnlRUkJ5QlNBR0MwR0FnSUFCY2lFR0N3SkFJQVpCZ0lHQUNIRU5BQ0FHUWZnZWNVVU5BQ0FGSUFRZ0F5Z0NiQ0FHUVFOMklndEI3d054YWkwQUFFRUNkR29pRFNnQ0FDSU9LQUlBSWdGcklRVUNmeUFCSUFkQkVIWkxCRUFnRGlnQ0JDRU1JQTBnRGtFSVFRd2dBU0FGU3lJUkcyb29BZ0EyQWdBRFFBSkFJQWdOQUNBREtBSVFJZ2hCQVdvaERpQUlMUUFCSVFVZ0NDMEFBRUgvQVVZRVFDQUZRWkFCVHdSQUlBTWdBeWdDREVFQmFqWUNEQ0FIUVlEK0Eyb2hCMEVJSVFnTUFnc2dBeUFPTmdJUUlBVkJDWFFnQjJvaEIwRUhJUWdNQVFzZ0F5QU9OZ0lRUVFnaENDQUZRUWgwSUFkcUlRY0xJQWhCQVdzaENDQUhRUUYwSVFjZ0FVRUJkQ0lCUVlDQUFra05BQXNnQVNFRklBd2dERVVnRVJzTUFRc2dCeUFCUVJCMGF5RUhJQVZCZ0lBQ2NVVUVRQ0FPS0FJRUlRd2dEU0FPUVF4QkNDQUJJQVZMSWhFYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFNb0FoQWlDRUVCYWlFT0lBZ3RBQUVoQVNBSUxRQUFRZjhCUmdSQUlBRkJrQUZQQkVBZ0F5QURLQUlNUVFGcU5nSU1JQWRCZ1A0RGFpRUhRUWdoQ0F3Q0N5QURJQTQyQWhBZ0FVRUpkQ0FIYWlFSFFRY2hDQXdCQ3lBRElBNDJBaEJCQ0NFSUlBRkJDSFFnQjJvaEJ3c2dDRUVCYXlFSUlBZEJBWFFoQnlBRlFRRjBJZ1ZCZ0lBQ1NRMEFDeUFNUlNBTUlCRWJEQUVMSUE0b0FnUUxCSDhnQlNBRUlBa29BZ1JCRkhaQkJIRWdDVUVFYXlJTUtBSUFRUloyUVFGeElBWkJEM1pCRUhFZ0JrRVRka0hBQUhFZ0MwR3FBWEZ5Y25KeUlndEJrTDRCYWkwQUFFRUNkR29pRFNnQ0FDSU9LQUlBSWdGcklRVWdDMEdRd0FGcUxRQUFJUXNnQWlBVElCUWdDd0ovSUFFZ0IwRVFka3NFUUNBT0tBSUVJUkVnRFNBT1FRaEJEQ0FCSUFWTEloVWJhaWdDQURZQ0FBTkFBa0FnQ0EwQUlBTW9BaEFpQ0VFQmFpRU9JQWd0QUFFaEJTQUlMUUFBUWY4QlJnUkFJQVZCa0FGUEJFQWdBeUFES0FJTVFRRnFOZ0lNSUFkQmdQNERhaUVIUVFnaENBd0NDeUFESUE0MkFoQWdCVUVKZENBSGFpRUhRUWNoQ0F3QkN5QURJQTQyQWhCQkNDRUlJQVZCQ0hRZ0Iyb2hCd3NnQ0VFQmF5RUlJQWRCQVhRaEJ5QUJRUUYwSWdGQmdJQUNTUTBBQ3lBQklRVWdFU0FSUlNBVkd3d0JDeUFISUFGQkVIUnJJUWNnQlVHQWdBSnhSUVJBSUE0b0FnUWhFU0FOSUE1QkRFRUlJQUVnQlVzaUZSdHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0F5Z0NFQ0lJUVFGcUlRNGdDQzBBQVNFQklBZ3RBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQURJQU1vQWd4QkFXbzJBZ3dnQjBHQS9nTnFJUWRCQ0NFSURBSUxJQU1nRGpZQ0VDQUJRUWwwSUFkcUlRZEJCeUVJREFFTElBTWdEallDRUVFSUlRZ2dBVUVJZENBSGFpRUhDeUFJUVFGcklRZ2dCMEVCZENFSElBVkJBWFFpQlVHQWdBSkpEUUFMSUJGRklCRWdGUnNNQVFzZ0RpZ0NCQXNpQVVZYk5nS0FBaUFNSUF3b0FnQkJnQUp5TmdJQUlBa2dDU2dDQkVIQUFISTJBZ1FnQmlBQklBdHpRUlowY2tHQUFYSUZJQVlMUVlDQWdBaHlJUVlMQWtBZ0JrR0FpSURBQUhFTkFDQUdRY0QzQVhGRkRRQWdCU0FFSUFNb0Ftd2dCa0VHZGlJTFFlOERjV290QUFCQkFuUnFJZzBvQWdBaURpZ0NBQ0lCYXlFRkFuOGdBU0FIUVJCMlN3UkFJQTRvQWdRaERDQU5JQTVCQ0VFTUlBRWdCVXNpRVJ0cUtBSUFOZ0lBQTBBQ1FDQUlEUUFnQXlnQ0VDSUlRUUZxSVE0Z0NDMEFBU0VGSUFndEFBQkIvd0ZHQkVBZ0JVR1FBVThFUUNBRElBTW9BZ3hCQVdvMkFnd2dCMEdBL2dOcUlRZEJDQ0VJREFJTElBTWdEallDRUNBRlFRbDBJQWRxSVFkQkJ5RUlEQUVMSUFNZ0RqWUNFRUVJSVFnZ0JVRUlkQ0FIYWlFSEN5QUlRUUZySVFnZ0IwRUJkQ0VISUFGQkFYUWlBVUdBZ0FKSkRRQUxJQUVoQlNBTUlBeEZJQkViREFFTElBY2dBVUVRZEdzaEJ5QUZRWUNBQW5GRkJFQWdEaWdDQkNFTUlBMGdEa0VNUVFnZ0FTQUZTeUlSRzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FES0FJUUlnaEJBV29oRGlBSUxRQUJJUUVnQ0MwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFNZ0F5Z0NERUVCYWpZQ0RDQUhRWUQrQTJvaEIwRUlJUWdNQWdzZ0F5QU9OZ0lRSUFGQkNYUWdCMm9oQjBFSElRZ01BUXNnQXlBT05nSVFRUWdoQ0NBQlFRaDBJQWRxSVFjTElBaEJBV3NoQ0NBSFFRRjBJUWNnQlVFQmRDSUZRWUNBQWtrTkFBc2dERVVnRENBUkd3d0JDeUFPS0FJRUN3Ui9JQVVnQkNBSktBSUVRUmQyUVFSeElBbEJCR3NpRENnQ0FFRVpka0VCY1NBR1FSSjJRUkJ4SUFaQkZuWkJ3QUJ4SUF0QnFnRnhjbkp5Y2lJTFFaQytBV290QUFCQkFuUnFJZzBvQWdBaURpZ0NBQ0lCYXlFRklBdEJrTUFCYWkwQUFDRUxJQUlnRXlBVUlBc0NmeUFCSUFkQkVIWkxCRUFnRGlnQ0JDRVJJQTBnRGtFSVFRd2dBU0FGU3lJVkcyb29BZ0EyQWdBRFFBSkFJQWdOQUNBREtBSVFJZ2hCQVdvaERpQUlMUUFCSVFVZ0NDMEFBRUgvQVVZRVFDQUZRWkFCVHdSQUlBTWdBeWdDREVFQmFqWUNEQ0FIUVlEK0Eyb2hCMEVJSVFnTUFnc2dBeUFPTmdJUUlBVkJDWFFnQjJvaEIwRUhJUWdNQVFzZ0F5QU9OZ0lRUVFnaENDQUZRUWgwSUFkcUlRY0xJQWhCQVdzaENDQUhRUUYwSVFjZ0FVRUJkQ0lCUVlDQUFra05BQXNnQVNFRklCRWdFVVVnRlJzTUFRc2dCeUFCUVJCMGF5RUhJQVZCZ0lBQ2NVVUVRQ0FPS0FJRUlSRWdEU0FPUVF4QkNDQUJJQVZMSWhVYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFNb0FoQWlDRUVCYWlFT0lBZ3RBQUVoQVNBSUxRQUFRZjhCUmdSQUlBRkJrQUZQQkVBZ0F5QURLQUlNUVFGcU5nSU1JQWRCZ1A0RGFpRUhRUWdoQ0F3Q0N5QURJQTQyQWhBZ0FVRUpkQ0FIYWlFSFFRY2hDQXdCQ3lBRElBNDJBaEJCQ0NFSUlBRkJDSFFnQjJvaEJ3c2dDRUVCYXlFSUlBZEJBWFFoQnlBRlFRRjBJZ1ZCZ0lBQ1NRMEFDeUFSUlNBUklCVWJEQUVMSUE0b0FnUUxJZ0ZHR3pZQ2dBUWdEQ0FNS0FJQVFZQVFjallDQUNBSklBa29BZ1JCZ0FSeU5nSUVJQVlnQVNBTGMwRVpkSEpCZ0FoeUJTQUdDMEdBZ0lEQUFISWhCZ3NDUUNBR1FZREFnSUFFY1EwQUlBWkJnTHdQY1VVTkFDQUZJQVFnQXlnQ2JDQUdRUWwySWd0Qjd3TnhhaTBBQUVFQ2RHb2lEU2dDQUNJT0tBSUFJZ0ZySVFVQ2Z5QUJJQWRCRUhaTEJFQWdEaWdDQkNFTUlBMGdEa0VJUVF3Z0FTQUZTeUlSRzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FES0FJUUlnaEJBV29oRGlBSUxRQUJJUVVnQ0MwQUFFSC9BVVlFUUNBRlFaQUJUd1JBSUFNZ0F5Z0NERUVCYWpZQ0RDQUhRWUQrQTJvaEIwRUlJUWdNQWdzZ0F5QU9OZ0lRSUFWQkNYUWdCMm9oQjBFSElRZ01BUXNnQXlBT05nSVFRUWdoQ0NBRlFRaDBJQWRxSVFjTElBaEJBV3NoQ0NBSFFRRjBJUWNnQVVFQmRDSUJRWUNBQWtrTkFBc2dBU0VGSUF3Z0RFVWdFUnNNQVFzZ0J5QUJRUkIwYXlFSElBVkJnSUFDY1VVRVFDQU9LQUlFSVF3Z0RTQU9RUXhCQ0NBQklBVkxJaEViYWlnQ0FEWUNBQU5BQWtBZ0NBMEFJQU1vQWhBaUNFRUJhaUVPSUFndEFBRWhBU0FJTFFBQVFmOEJSZ1JBSUFGQmtBRlBCRUFnQXlBREtBSU1RUUZxTmdJTUlBZEJnUDREYWlFSFFRZ2hDQXdDQ3lBRElBNDJBaEFnQVVFSmRDQUhhaUVIUVFjaENBd0JDeUFESUE0MkFoQkJDQ0VJSUFGQkNIUWdCMm9oQndzZ0NFRUJheUVJSUFkQkFYUWhCeUFGUVFGMElnVkJnSUFDU1EwQUN5QU1SU0FNSUJFYkRBRUxJQTRvQWdRTEJIOGdCU0FFSUFrb0FnUkJHblpCQkhFZ0NVRUVheUlNS0FJQVFSeDJRUUZ4SUFaQkZYWkJFSEVnQmtFWmRrSEFBSEVnQzBHcUFYRnljbkp5SWd0QmtMNEJhaTBBQUVFQ2RHb2lEU2dDQUNJT0tBSUFJZ0ZySVFVZ0MwR1F3QUZxTFFBQUlRc2dBaUFUSUJRZ0N3Si9JQUVnQjBFUWRrc0VRQ0FPS0FJRUlSRWdEU0FPUVFoQkRDQUJJQVZMSWhVYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFNb0FoQWlDRUVCYWlFT0lBZ3RBQUVoQlNBSUxRQUFRZjhCUmdSQUlBVkJrQUZQQkVBZ0F5QURLQUlNUVFGcU5nSU1JQWRCZ1A0RGFpRUhRUWdoQ0F3Q0N5QURJQTQyQWhBZ0JVRUpkQ0FIYWlFSFFRY2hDQXdCQ3lBRElBNDJBaEJCQ0NFSUlBVkJDSFFnQjJvaEJ3c2dDRUVCYXlFSUlBZEJBWFFoQnlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFCSVFVZ0VTQVJSU0FWR3d3QkN5QUhJQUZCRUhScklRY2dCVUdBZ0FKeFJRUkFJQTRvQWdRaEVTQU5JQTVCREVFSUlBRWdCVXNpRlJ0cUtBSUFOZ0lBQTBBQ1FDQUlEUUFnQXlnQ0VDSUlRUUZxSVE0Z0NDMEFBU0VCSUFndEFBQkIvd0ZHQkVBZ0FVR1FBVThFUUNBRElBTW9BZ3hCQVdvMkFnd2dCMEdBL2dOcUlRZEJDQ0VJREFJTElBTWdEallDRUNBQlFRbDBJQWRxSVFkQkJ5RUlEQUVMSUFNZ0RqWUNFRUVJSVFnZ0FVRUlkQ0FIYWlFSEN5QUlRUUZySVFnZ0IwRUJkQ0VISUFWQkFYUWlCVUdBZ0FKSkRRQUxJQkZGSUJFZ0ZSc01BUXNnRGlnQ0JBc2lBVVliTmdLQUJpQU1JQXdvQWdCQmdJQUJjallDQUNBSklBa29BZ1JCZ0NCeU5nSUVJQWtnQ1NnQ2hBSkJCSEkyQW9RQ0lBa2dDU2dDakFKQkFYSTJBb3dDSUFrZ0NTZ0NpQUlnQVNBTGN5SUJRUkowY2tFQ2NqWUNpQUlnQmlBQlFSeDBja0dBd0FCeUJTQUdDMEdBZ0lDQUJISWhCZ3NnQ1NBR05nSUFDeUFKUVFScUlRWWdBa0VFYWlFQklBcEJBV29pQ2tIQUFFY05BQXNnQ1VFTWFpRUdJQUpCaEFacUlRRWdGa0U4U1NBV1FRUnFJUllOQUFzTUFndEJBU0FiZENJQlFRRjJJQUZ5SVJZZ0F5Z0NlQ0lDSUFSQkFuUnFRUXhxSVFZZ0F5Z0NnQUVoQVNBREtBSUlJUWdnQXlnQ0JDRUZJQU1vQWdBaEJ5QURLQUpvSVEwZ0F5Z0NkQ0VUQWtBZ0YwRUljUVJBQWtBZ0FVRUVTUTBBSUFRRVFDQUVRUXhzSVJFZ0JFRURkQ0VrUVFBZ0Ztc2hDeUFEUVJ4cUlSUURRRUVBSVE0RFFDQUdJZ0lvQWdBaUJnUkFBa0FnQmtHUWdJQUJjUTBBSUFaQjd3TnhJZ0ZGRFFBZ0JTQVVJQU1vQW13Z0FXb3RBQUJCQW5ScUlnMG9BZ0FpRENnQ0FDSUJheUVGQW44Z0FTQUhRUkIyVFFSQUlBY2dBVUVRZEdzaEJ5QUZRWUNBQW5FRVFDQU1LQUlFREFJTElBd29BZ1FoRlNBTklBeEJERUVJSUFFZ0JVc2lFaHRxS0FJQU5nSUFBMEFDUUNBSURRQWdBeWdDRUNJSVFRRnFJUXdnQ0MwQUFTRUJJQWd0QUFCQi93RkhCRUFnQXlBTU5nSVFRUWdoQ0NBQlFRaDBJQWRxSVFjTUFRc2dBVUdQQVUwRVFDQURJQXcyQWhBZ0FVRUpkQ0FIYWlFSFFRY2hDQXdCQ3lBRElBTW9BZ3hCQVdvMkFnd2dCMEdBL2dOcUlRZEJDQ0VJQ3lBSVFRRnJJUWdnQjBFQmRDRUhJQVZCQVhRaUJVR0FnQUpKRFFBTElCVkZJQlVnRWhzTUFRc2dEQ2dDQkNFVklBMGdERUVJUVF3Z0FTQUZTeUlTRzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FES0FJUUlnaEJBV29oRENBSUxRQUJJUVVnQ0MwQUFFSC9BVWNFUUNBRElBdzJBaEJCQ0NFSUlBVkJDSFFnQjJvaEJ3d0JDeUFGUVk4QlRRUkFJQU1nRERZQ0VDQUZRUWwwSUFkcUlRZEJCeUVJREFFTElBTWdBeWdDREVFQmFqWUNEQ0FIUVlEK0Eyb2hCMEVJSVFnTElBaEJBV3NoQ0NBSFFRRjBJUWNnQVVFQmRDSUJRWUNBQWtrTkFBc2dBU0VGSUJVZ0ZVVWdFaHNMQkg4Z0JTQVVJQUlvQWdSQkVYWkJCSEVnQWtFRWF5SVZLQUlBUVJOMlFRRnhJQVpCRG5aQkVIRWdCa0VRZGtIQUFIRWdCa0dxQVhGeWNuSnlJaEpCa0w0QmFpMEFBRUVDZEdvaURTZ0NBQ0lNS0FJQUlnRnJJUVVnRWtHUXdBRnFMUUFBSVJJZ0V5QVdJQXNnRWdKL0lBRWdCMEVRZGswRVFDQUhJQUZCRUhScklRY2dCVUdBZ0FKeEJFQWdEQ2dDQkF3Q0N5QU1LQUlFSVE4Z0RTQU1RUXhCQ0NBQklBVkxJaHdiYWlnQ0FEWUNBQU5BQWtBZ0NBMEFJQU1vQWhBaUNFRUJhaUVNSUFndEFBRWhBU0FJTFFBQVFmOEJSd1JBSUFNZ0REWUNFRUVJSVFnZ0FVRUlkQ0FIYWlFSERBRUxJQUZCandGTkJFQWdBeUFNTmdJUUlBRkJDWFFnQjJvaEIwRUhJUWdNQVFzZ0F5QURLQUlNUVFGcU5nSU1JQWRCZ1A0RGFpRUhRUWdoQ0FzZ0NFRUJheUVJSUFkQkFYUWhCeUFGUVFGMElnVkJnSUFDU1EwQUN5QVBSU0FQSUJ3YkRBRUxJQXdvQWdRaER5QU5JQXhCQ0VFTUlBRWdCVXNpSEJ0cUtBSUFOZ0lBQTBBQ1FDQUlEUUFnQXlnQ0VDSUlRUUZxSVF3Z0NDMEFBU0VGSUFndEFBQkIvd0ZIQkVBZ0F5QU1OZ0lRUVFnaENDQUZRUWgwSUFkcUlRY01BUXNnQlVHUEFVMEVRQ0FESUF3MkFoQWdCVUVKZENBSGFpRUhRUWNoQ0F3QkN5QURJQU1vQWd4QkFXbzJBZ3dnQjBHQS9nTnFJUWRCQ0NFSUN5QUlRUUZySVFnZ0IwRUJkQ0VISUFGQkFYUWlBVUdBZ0FKSkRRQUxJQUVoQlNBUElBOUZJQndiQ3lJQlJoczJBZ0FnRlNBVktBSUFRU0J5TmdJQUlBSWdBaWdDQkVFSWNqWUNCQ0FHSUFFZ0VuTkJFM1J5UVJCeUJTQUdDMEdBZ0lBQmNpRUdDd0pBSUFaQmdJR0FDSEVOQUNBR1FmZ2VjVVVOQUNBRklCUWdBeWdDYkNBR1FRTjJJaEpCN3dOeGFpMEFBRUVDZEdvaURTZ0NBQ0lNS0FJQUlnRnJJUVVDZnlBQklBZEJFSFpOQkVBZ0J5QUJRUkIwYXlFSElBVkJnSUFDY1FSQUlBd29BZ1FNQWdzZ0RDZ0NCQ0VWSUEwZ0RFRU1RUWdnQVNBRlN5SVBHMm9vQWdBMkFnQURRQUpBSUFnTkFDQURLQUlRSWdoQkFXb2hEQ0FJTFFBQklRRWdDQzBBQUVIL0FVY0VRQ0FESUF3MkFoQkJDQ0VJSUFGQkNIUWdCMm9oQnd3QkN5QUJRWThCVFFSQUlBTWdERFlDRUNBQlFRbDBJQWRxSVFkQkJ5RUlEQUVMSUFNZ0F5Z0NERUVCYWpZQ0RDQUhRWUQrQTJvaEIwRUlJUWdMSUFoQkFXc2hDQ0FIUVFGMElRY2dCVUVCZENJRlFZQ0FBa2tOQUFzZ0ZVVWdGU0FQR3d3QkN5QU1LQUlFSVJVZ0RTQU1RUWhCRENBQklBVkxJZzhiYWlnQ0FEWUNBQU5BQWtBZ0NBMEFJQU1vQWhBaUNFRUJhaUVNSUFndEFBRWhCU0FJTFFBQVFmOEJSd1JBSUFNZ0REWUNFRUVJSVFnZ0JVRUlkQ0FIYWlFSERBRUxJQVZCandGTkJFQWdBeUFNTmdJUUlBVkJDWFFnQjJvaEIwRUhJUWdNQVFzZ0F5QURLQUlNUVFGcU5nSU1JQWRCZ1A0RGFpRUhRUWdoQ0FzZ0NFRUJheUVJSUFkQkFYUWhCeUFCUVFGMElnRkJnSUFDU1EwQUN5QUJJUVVnRlNBVlJTQVBHd3NFZnlBRklCUWdBaWdDQkVFVWRrRUVjU0FDUVFSckloVW9BZ0JCRm5aQkFYRWdCa0VQZGtFUWNTQUdRUk4yUWNBQWNTQVNRYW9CY1hKeWNuSWlFa0dRdmdGcUxRQUFRUUowYWlJTktBSUFJZ3dvQWdBaUFXc2hCU0FTUVpEQUFXb3RBQUFoRWlBVElBUkJBblJxSUJZZ0N5QVNBbjhnQVNBSFFSQjJUUVJBSUFjZ0FVRVFkR3NoQnlBRlFZQ0FBbkVFUUNBTUtBSUVEQUlMSUF3b0FnUWhEeUFOSUF4QkRFRUlJQUVnQlVzaUhCdHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0F5Z0NFQ0lJUVFGcUlRd2dDQzBBQVNFQklBZ3RBQUJCL3dGSEJFQWdBeUFNTmdJUVFRZ2hDQ0FCUVFoMElBZHFJUWNNQVFzZ0FVR1BBVTBFUUNBRElBdzJBaEFnQVVFSmRDQUhhaUVIUVFjaENBd0JDeUFESUFNb0FneEJBV28yQWd3Z0IwR0EvZ05xSVFkQkNDRUlDeUFJUVFGcklRZ2dCMEVCZENFSElBVkJBWFFpQlVHQWdBSkpEUUFMSUE5RklBOGdIQnNNQVFzZ0RDZ0NCQ0VQSUEwZ0RFRUlRUXdnQVNBRlN5SWNHMm9vQWdBMkFnQURRQUpBSUFnTkFDQURLQUlRSWdoQkFXb2hEQ0FJTFFBQklRVWdDQzBBQUVIL0FVY0VRQ0FESUF3MkFoQkJDQ0VJSUFWQkNIUWdCMm9oQnd3QkN5QUZRWThCVFFSQUlBTWdERFlDRUNBRlFRbDBJQWRxSVFkQkJ5RUlEQUVMSUFNZ0F5Z0NERUVCYWpZQ0RDQUhRWUQrQTJvaEIwRUlJUWdMSUFoQkFXc2hDQ0FIUVFGMElRY2dBVUVCZENJQlFZQ0FBa2tOQUFzZ0FTRUZJQThnRDBVZ0hCc0xJZ0ZHR3pZQ0FDQVZJQlVvQWdCQmdBSnlOZ0lBSUFJZ0FpZ0NCRUhBQUhJMkFnUWdCaUFCSUJKelFSWjBja0dBQVhJRklBWUxRWUNBZ0FoeUlRWUxBa0FnQmtHQWlJREFBSEVOQUNBR1FjRDNBWEZGRFFBZ0JTQVVJQU1vQW13Z0JrRUdkaUlTUWU4RGNXb3RBQUJCQW5ScUlnMG9BZ0FpRENnQ0FDSUJheUVGQW44Z0FTQUhRUkIyVFFSQUlBY2dBVUVRZEdzaEJ5QUZRWUNBQW5FRVFDQU1LQUlFREFJTElBd29BZ1FoRlNBTklBeEJERUVJSUFFZ0JVc2lEeHRxS0FJQU5nSUFBMEFDUUNBSURRQWdBeWdDRUNJSVFRRnFJUXdnQ0MwQUFTRUJJQWd0QUFCQi93RkhCRUFnQXlBTU5nSVFRUWdoQ0NBQlFRaDBJQWRxSVFjTUFRc2dBVUdQQVUwRVFDQURJQXcyQWhBZ0FVRUpkQ0FIYWlFSFFRY2hDQXdCQ3lBRElBTW9BZ3hCQVdvMkFnd2dCMEdBL2dOcUlRZEJDQ0VJQ3lBSVFRRnJJUWdnQjBFQmRDRUhJQVZCQVhRaUJVR0FnQUpKRFFBTElCVkZJQlVnRHhzTUFRc2dEQ2dDQkNFVklBMGdERUVJUVF3Z0FTQUZTeUlQRzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FES0FJUUlnaEJBV29oRENBSUxRQUJJUVVnQ0MwQUFFSC9BVWNFUUNBRElBdzJBaEJCQ0NFSUlBVkJDSFFnQjJvaEJ3d0JDeUFGUVk4QlRRUkFJQU1nRERZQ0VDQUZRUWwwSUFkcUlRZEJCeUVJREFFTElBTWdBeWdDREVFQmFqWUNEQ0FIUVlEK0Eyb2hCMEVJSVFnTElBaEJBV3NoQ0NBSFFRRjBJUWNnQVVFQmRDSUJRWUNBQWtrTkFBc2dBU0VGSUJVZ0ZVVWdEeHNMQkg4Z0JTQVVJQUlvQWdSQkYzWkJCSEVnQWtFRWF5SVZLQUlBUVJsMlFRRnhJQVpCRW5aQkVIRWdCa0VXZGtIQUFIRWdFa0dxQVhGeWNuSnlJaEpCa0w0QmFpMEFBRUVDZEdvaURTZ0NBQ0lNS0FJQUlnRnJJUVVnRWtHUXdBRnFMUUFBSVJJZ0V5QWthaUFXSUFzZ0VnSi9JQUVnQjBFUWRrMEVRQ0FISUFGQkVIUnJJUWNnQlVHQWdBSnhCRUFnRENnQ0JBd0NDeUFNS0FJRUlROGdEU0FNUVF4QkNDQUJJQVZMSWh3YmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFNb0FoQWlDRUVCYWlFTUlBZ3RBQUVoQVNBSUxRQUFRZjhCUndSQUlBTWdERFlDRUVFSUlRZ2dBVUVJZENBSGFpRUhEQUVMSUFGQmp3Rk5CRUFnQXlBTU5nSVFJQUZCQ1hRZ0Iyb2hCMEVISVFnTUFRc2dBeUFES0FJTVFRRnFOZ0lNSUFkQmdQNERhaUVIUVFnaENBc2dDRUVCYXlFSUlBZEJBWFFoQnlBRlFRRjBJZ1ZCZ0lBQ1NRMEFDeUFQUlNBUElCd2JEQUVMSUF3b0FnUWhEeUFOSUF4QkNFRU1JQUVnQlVzaUhCdHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0F5Z0NFQ0lJUVFGcUlRd2dDQzBBQVNFRklBZ3RBQUJCL3dGSEJFQWdBeUFNTmdJUVFRZ2hDQ0FGUVFoMElBZHFJUWNNQVFzZ0JVR1BBVTBFUUNBRElBdzJBaEFnQlVFSmRDQUhhaUVIUVFjaENBd0JDeUFESUFNb0FneEJBV28yQWd3Z0IwR0EvZ05xSVFkQkNDRUlDeUFJUVFGcklRZ2dCMEVCZENFSElBRkJBWFFpQVVHQWdBSkpEUUFMSUFFaEJTQVBJQTlGSUJ3YkN5SUJSaHMyQWdBZ0ZTQVZLQUlBUVlBUWNqWUNBQ0FDSUFJb0FnUkJnQVJ5TmdJRUlBWWdBU0FTYzBFWmRISkJnQWh5QlNBR0MwR0FnSURBQUhJaEJnc0NRQ0FHUVlEQWdJQUVjUTBBSUFaQmdMd1BjVVVOQUNBRklCUWdBeWdDYkNBR1FRbDJJaEpCN3dOeGFpMEFBRUVDZEdvaURTZ0NBQ0lNS0FJQUlnRnJJUVVDZnlBQklBZEJFSFpOQkVBZ0J5QUJRUkIwYXlFSElBVkJnSUFDY1FSQUlBd29BZ1FNQWdzZ0RDZ0NCQ0VWSUEwZ0RFRU1RUWdnQVNBRlN5SVBHMm9vQWdBMkFnQURRQUpBSUFnTkFDQURLQUlRSWdoQkFXb2hEQ0FJTFFBQklRRWdDQzBBQUVIL0FVY0VRQ0FESUF3MkFoQkJDQ0VJSUFGQkNIUWdCMm9oQnd3QkN5QUJRWThCVFFSQUlBTWdERFlDRUNBQlFRbDBJQWRxSVFkQkJ5RUlEQUVMSUFNZ0F5Z0NERUVCYWpZQ0RDQUhRWUQrQTJvaEIwRUlJUWdMSUFoQkFXc2hDQ0FIUVFGMElRY2dCVUVCZENJRlFZQ0FBa2tOQUFzZ0ZVVWdGU0FQR3d3QkN5QU1LQUlFSVJVZ0RTQU1RUWhCRENBQklBVkxJZzhiYWlnQ0FEWUNBQU5BQWtBZ0NBMEFJQU1vQWhBaUNFRUJhaUVNSUFndEFBRWhCU0FJTFFBQVFmOEJSd1JBSUFNZ0REWUNFRUVJSVFnZ0JVRUlkQ0FIYWlFSERBRUxJQVZCandGTkJFQWdBeUFNTmdJUUlBVkJDWFFnQjJvaEIwRUhJUWdNQVFzZ0F5QURLQUlNUVFGcU5nSU1JQWRCZ1A0RGFpRUhRUWdoQ0FzZ0NFRUJheUVJSUFkQkFYUWhCeUFCUVFGMElnRkJnSUFDU1EwQUN5QUJJUVVnRlNBVlJTQVBHd3NFZnlBRklCUWdBaWdDQkVFYWRrRUVjU0FDUVFSckloVW9BZ0JCSEhaQkFYRWdCa0VWZGtFUWNTQUdRUmwyUWNBQWNTQVNRYW9CY1hKeWNuSWlFa0dRdmdGcUxRQUFRUUowYWlJTktBSUFJZ3dvQWdBaUFXc2hCU0FTUVpEQUFXb3RBQUFoRWlBUklCTnFJQllnQ3lBU0FuOGdBU0FIUVJCMlRRUkFJQWNnQVVFUWRHc2hCeUFGUVlDQUFuRUVRQ0FNS0FJRURBSUxJQXdvQWdRaER5QU5JQXhCREVFSUlBRWdCVXNpSEJ0cUtBSUFOZ0lBQTBBQ1FDQUlEUUFnQXlnQ0VDSUlRUUZxSVF3Z0NDMEFBU0VCSUFndEFBQkIvd0ZIQkVBZ0F5QU1OZ0lRUVFnaENDQUJRUWgwSUFkcUlRY01BUXNnQVVHUEFVMEVRQ0FESUF3MkFoQWdBVUVKZENBSGFpRUhRUWNoQ0F3QkN5QURJQU1vQWd4QkFXbzJBZ3dnQjBHQS9nTnFJUWRCQ0NFSUN5QUlRUUZySVFnZ0IwRUJkQ0VISUFWQkFYUWlCVUdBZ0FKSkRRQUxJQTlGSUE4Z0hCc01BUXNnRENnQ0JDRVBJQTBnREVFSVFRd2dBU0FGU3lJY0cyb29BZ0EyQWdBRFFBSkFJQWdOQUNBREtBSVFJZ2hCQVdvaERDQUlMUUFCSVFVZ0NDMEFBRUgvQVVjRVFDQURJQXcyQWhCQkNDRUlJQVZCQ0hRZ0Iyb2hCd3dCQ3lBRlFZOEJUUVJBSUFNZ0REWUNFQ0FGUVFsMElBZHFJUWRCQnlFSURBRUxJQU1nQXlnQ0RFRUJhallDRENBSFFZRCtBMm9oQjBFSUlRZ0xJQWhCQVdzaENDQUhRUUYwSVFjZ0FVRUJkQ0lCUVlDQUFra05BQXNnQVNFRklBOGdEMFVnSEJzTElneEdHellDQUNBVklCVW9BZ0JCZ0lBQmNqWUNBQ0FDSUFJb0FnUkJnQ0J5TmdJRUlBTW9BbnhCQW5RZ0Ftb2lBU0FCS0FJRVFRUnlOZ0lFSUFFZ0FTZ0NERUVCY2pZQ0RDQUJJQUVvQWdnZ0RDQVNjeUlCUVJKMGNrRUNjallDQ0NBR0lBRkJISFJ5UVlEQUFISUZJQVlMUVlDQWdJQUVjaUVHQ3lBQ0lBWTJBZ0FMSUFKQkJHb2hCaUFUUVFScUlSTWdEa0VCYWlJT0lBUkhEUUFMSUFKQkRHb2hCaUFSSUJOcUlSTWdDVUVFYWlJSklBTW9Bb0FCSWdGQmZIRkpEUUFMREFFTFFRUWdBVUY4Y1NJR0lBWkJCRTBiUVFGcklnWkJmSEZCQkdvaENTQUNJQVpCQVhSQmVIRnFRUlJxSVFZTElBTWdDRFlDQ0NBRElBVTJBZ1FnQXlBSE5nSUFJQU1nRFRZQ2FDQUVSUTBCSUFFZ0NVME5BUU5BSUFFZ0NVWkJBQ0VJSUFraEFVVUVRQU5BSUFNZ0JpQVRJQVFnQ0d4QkFuUnFJQllnQ0NBREtBSjhRUUpxUVFFUVlpQUlRUUZxSWdnZ0F5Z0NnQUVpQVNBSmEwa05BQXNMSUFaQkJHb2hCaUFUUVFScUlSTWdDa0VCYWlJS0lBUkhEUUFMREFFTEFrQWdBVUVFU1EwQUlBUUVRQ0FFUVF4c0lSRWdCRUVEZENFa1FRQWdGbXNoQ3lBRFFSeHFJUlFEUUVFQUlRNERRQ0FHSWdJb0FnQWlCZ1JBQWtBZ0JrR1FnSUFCY1EwQUlBWkI3d054SWdGRkRRQWdCU0FVSUFNb0Ftd2dBV290QUFCQkFuUnFJZzBvQWdBaURDZ0NBQ0lCYXlFRkFuOGdBU0FIUVJCMlRRUkFJQWNnQVVFUWRHc2hCeUFGUVlDQUFuRUVRQ0FNS0FJRURBSUxJQXdvQWdRaEZTQU5JQXhCREVFSUlBRWdCVXNpRWh0cUtBSUFOZ0lBQTBBQ1FDQUlEUUFnQXlnQ0VDSUlRUUZxSVF3Z0NDMEFBU0VCSUFndEFBQkIvd0ZIQkVBZ0F5QU1OZ0lRUVFnaENDQUJRUWgwSUFkcUlRY01BUXNnQVVHUEFVMEVRQ0FESUF3MkFoQWdBVUVKZENBSGFpRUhRUWNoQ0F3QkN5QURJQU1vQWd4QkFXbzJBZ3dnQjBHQS9nTnFJUWRCQ0NFSUN5QUlRUUZySVFnZ0IwRUJkQ0VISUFWQkFYUWlCVUdBZ0FKSkRRQUxJQlZGSUJVZ0Voc01BUXNnRENnQ0JDRVZJQTBnREVFSVFRd2dBU0FGU3lJU0cyb29BZ0EyQWdBRFFBSkFJQWdOQUNBREtBSVFJZ2hCQVdvaERDQUlMUUFCSVFVZ0NDMEFBRUgvQVVjRVFDQURJQXcyQWhCQkNDRUlJQVZCQ0hRZ0Iyb2hCd3dCQ3lBRlFZOEJUUVJBSUFNZ0REWUNFQ0FGUVFsMElBZHFJUWRCQnlFSURBRUxJQU1nQXlnQ0RFRUJhallDRENBSFFZRCtBMm9oQjBFSUlRZ0xJQWhCQVdzaENDQUhRUUYwSVFjZ0FVRUJkQ0lCUVlDQUFra05BQXNnQVNFRklCVWdGVVVnRWhzTEJIOGdCU0FVSUFJb0FnUkJFWFpCQkhFZ0FrRUVheUlWS0FJQVFSTjJRUUZ4SUFaQkRuWkJFSEVnQmtFUWRrSEFBSEVnQmtHcUFYRnljbkp5SWhKQmtMNEJhaTBBQUVFQ2RHb2lEU2dDQUNJTUtBSUFJZ0ZySVFVZ0VrR1F3QUZxTFFBQUlSSWdFeUFXSUFzZ0VnSi9JQUVnQjBFUWRrMEVRQ0FISUFGQkVIUnJJUWNnQlVHQWdBSnhCRUFnRENnQ0JBd0NDeUFNS0FJRUlROGdEU0FNUVF4QkNDQUJJQVZMSWh3YmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFNb0FoQWlDRUVCYWlFTUlBZ3RBQUVoQVNBSUxRQUFRZjhCUndSQUlBTWdERFlDRUVFSUlRZ2dBVUVJZENBSGFpRUhEQUVMSUFGQmp3Rk5CRUFnQXlBTU5nSVFJQUZCQ1hRZ0Iyb2hCMEVISVFnTUFRc2dBeUFES0FJTVFRRnFOZ0lNSUFkQmdQNERhaUVIUVFnaENBc2dDRUVCYXlFSUlBZEJBWFFoQnlBRlFRRjBJZ1ZCZ0lBQ1NRMEFDeUFQUlNBUElCd2JEQUVMSUF3b0FnUWhEeUFOSUF4QkNFRU1JQUVnQlVzaUhCdHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0F5Z0NFQ0lJUVFGcUlRd2dDQzBBQVNFRklBZ3RBQUJCL3dGSEJFQWdBeUFNTmdJUVFRZ2hDQ0FGUVFoMElBZHFJUWNNQVFzZ0JVR1BBVTBFUUNBRElBdzJBaEFnQlVFSmRDQUhhaUVIUVFjaENBd0JDeUFESUFNb0FneEJBV28yQWd3Z0IwR0EvZ05xSVFkQkNDRUlDeUFJUVFGcklRZ2dCMEVCZENFSElBRkJBWFFpQVVHQWdBSkpEUUFMSUFFaEJTQVBJQTlGSUJ3YkN5SU1SaHMyQWdBZ0ZTQVZLQUlBUVNCeU5nSUFJQUlnQWlnQ0JFRUljallDQkNBQ1FYNGdBeWdDZkd0QkFuUnFJZ0VnQVNnQ0JFR0FnQUp5TmdJRUlBRWdBU2dDQUNBTUlCSnpJZ3hCSDNSeVFZQ0FCSEkyQWdBZ0FVRUVheUlCSUFFb0FnQkJnSUFJY2pZQ0FDQUdJQXhCRTNSeVFSQnlCU0FHQzBHQWdJQUJjaUVHQ3dKQUlBWkJnSUdBQ0hFTkFDQUdRZmdlY1VVTkFDQUZJQlFnQXlnQ2JDQUdRUU4ySWhKQjd3TnhhaTBBQUVFQ2RHb2lEU2dDQUNJTUtBSUFJZ0ZySVFVQ2Z5QUJJQWRCRUhaTkJFQWdCeUFCUVJCMGF5RUhJQVZCZ0lBQ2NRUkFJQXdvQWdRTUFnc2dEQ2dDQkNFVklBMGdERUVNUVFnZ0FTQUZTeUlQRzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FES0FJUUlnaEJBV29oRENBSUxRQUJJUUVnQ0MwQUFFSC9BVWNFUUNBRElBdzJBaEJCQ0NFSUlBRkJDSFFnQjJvaEJ3d0JDeUFCUVk4QlRRUkFJQU1nRERZQ0VDQUJRUWwwSUFkcUlRZEJCeUVJREFFTElBTWdBeWdDREVFQmFqWUNEQ0FIUVlEK0Eyb2hCMEVJSVFnTElBaEJBV3NoQ0NBSFFRRjBJUWNnQlVFQmRDSUZRWUNBQWtrTkFBc2dGVVVnRlNBUEd3d0JDeUFNS0FJRUlSVWdEU0FNUVFoQkRDQUJJQVZMSWc4YmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFNb0FoQWlDRUVCYWlFTUlBZ3RBQUVoQlNBSUxRQUFRZjhCUndSQUlBTWdERFlDRUVFSUlRZ2dCVUVJZENBSGFpRUhEQUVMSUFWQmp3Rk5CRUFnQXlBTU5nSVFJQVZCQ1hRZ0Iyb2hCMEVISVFnTUFRc2dBeUFES0FJTVFRRnFOZ0lNSUFkQmdQNERhaUVIUVFnaENBc2dDRUVCYXlFSUlBZEJBWFFoQnlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFCSVFVZ0ZTQVZSU0FQR3dzRWZ5QUZJQlFnQWlnQ0JFRVVka0VFY1NBQ1FRUnJJaFVvQWdCQkZuWkJBWEVnQmtFUGRrRVFjU0FHUVJOMlFjQUFjU0FTUWFvQmNYSnljbklpRWtHUXZnRnFMUUFBUVFKMGFpSU5LQUlBSWd3b0FnQWlBV3NoQlNBU1FaREFBV290QUFBaEVpQVRJQVJCQW5ScUlCWWdDeUFTQW44Z0FTQUhRUkIyVFFSQUlBY2dBVUVRZEdzaEJ5QUZRWUNBQW5FRVFDQU1LQUlFREFJTElBd29BZ1FoRHlBTklBeEJERUVJSUFFZ0JVc2lIQnRxS0FJQU5nSUFBMEFDUUNBSURRQWdBeWdDRUNJSVFRRnFJUXdnQ0MwQUFTRUJJQWd0QUFCQi93RkhCRUFnQXlBTU5nSVFRUWdoQ0NBQlFRaDBJQWRxSVFjTUFRc2dBVUdQQVUwRVFDQURJQXcyQWhBZ0FVRUpkQ0FIYWlFSFFRY2hDQXdCQ3lBRElBTW9BZ3hCQVdvMkFnd2dCMEdBL2dOcUlRZEJDQ0VJQ3lBSVFRRnJJUWdnQjBFQmRDRUhJQVZCQVhRaUJVR0FnQUpKRFFBTElBOUZJQThnSEJzTUFRc2dEQ2dDQkNFUElBMGdERUVJUVF3Z0FTQUZTeUljRzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FES0FJUUlnaEJBV29oRENBSUxRQUJJUVVnQ0MwQUFFSC9BVWNFUUNBRElBdzJBaEJCQ0NFSUlBVkJDSFFnQjJvaEJ3d0JDeUFGUVk4QlRRUkFJQU1nRERZQ0VDQUZRUWwwSUFkcUlRZEJCeUVJREFFTElBTWdBeWdDREVFQmFqWUNEQ0FIUVlEK0Eyb2hCMEVJSVFnTElBaEJBV3NoQ0NBSFFRRjBJUWNnQVVFQmRDSUJRWUNBQWtrTkFBc2dBU0VGSUE4Z0QwVWdIQnNMSWdGR0d6WUNBQ0FWSUJVb0FnQkJnQUp5TmdJQUlBSWdBaWdDQkVIQUFISTJBZ1FnQmlBQklCSnpRUlowY2tHQUFYSUZJQVlMUVlDQWdBaHlJUVlMQWtBZ0JrR0FpSURBQUhFTkFDQUdRY0QzQVhGRkRRQWdCU0FVSUFNb0Ftd2dCa0VHZGlJU1FlOERjV290QUFCQkFuUnFJZzBvQWdBaURDZ0NBQ0lCYXlFRkFuOGdBU0FIUVJCMlRRUkFJQWNnQVVFUWRHc2hCeUFGUVlDQUFuRUVRQ0FNS0FJRURBSUxJQXdvQWdRaEZTQU5JQXhCREVFSUlBRWdCVXNpRHh0cUtBSUFOZ0lBQTBBQ1FDQUlEUUFnQXlnQ0VDSUlRUUZxSVF3Z0NDMEFBU0VCSUFndEFBQkIvd0ZIQkVBZ0F5QU1OZ0lRUVFnaENDQUJRUWgwSUFkcUlRY01BUXNnQVVHUEFVMEVRQ0FESUF3MkFoQWdBVUVKZENBSGFpRUhRUWNoQ0F3QkN5QURJQU1vQWd4QkFXbzJBZ3dnQjBHQS9nTnFJUWRCQ0NFSUN5QUlRUUZySVFnZ0IwRUJkQ0VISUFWQkFYUWlCVUdBZ0FKSkRRQUxJQlZGSUJVZ0R4c01BUXNnRENnQ0JDRVZJQTBnREVFSVFRd2dBU0FGU3lJUEcyb29BZ0EyQWdBRFFBSkFJQWdOQUNBREtBSVFJZ2hCQVdvaERDQUlMUUFCSVFVZ0NDMEFBRUgvQVVjRVFDQURJQXcyQWhCQkNDRUlJQVZCQ0hRZ0Iyb2hCd3dCQ3lBRlFZOEJUUVJBSUFNZ0REWUNFQ0FGUVFsMElBZHFJUWRCQnlFSURBRUxJQU1nQXlnQ0RFRUJhallDRENBSFFZRCtBMm9oQjBFSUlRZ0xJQWhCQVdzaENDQUhRUUYwSVFjZ0FVRUJkQ0lCUVlDQUFra05BQXNnQVNFRklCVWdGVVVnRHhzTEJIOGdCU0FVSUFJb0FnUkJGM1pCQkhFZ0FrRUVheUlWS0FJQVFSbDJRUUZ4SUFaQkVuWkJFSEVnQmtFV2RrSEFBSEVnRWtHcUFYRnljbkp5SWhKQmtMNEJhaTBBQUVFQ2RHb2lEU2dDQUNJTUtBSUFJZ0ZySVFVZ0VrR1F3QUZxTFFBQUlSSWdFeUFrYWlBV0lBc2dFZ0ovSUFFZ0IwRVFkazBFUUNBSElBRkJFSFJySVFjZ0JVR0FnQUp4QkVBZ0RDZ0NCQXdDQ3lBTUtBSUVJUThnRFNBTVFReEJDQ0FCSUFWTElod2JhaWdDQURZQ0FBTkFBa0FnQ0EwQUlBTW9BaEFpQ0VFQmFpRU1JQWd0QUFFaEFTQUlMUUFBUWY4QlJ3UkFJQU1nRERZQ0VFRUlJUWdnQVVFSWRDQUhhaUVIREFFTElBRkJqd0ZOQkVBZ0F5QU1OZ0lRSUFGQkNYUWdCMm9oQjBFSElRZ01BUXNnQXlBREtBSU1RUUZxTmdJTUlBZEJnUDREYWlFSFFRZ2hDQXNnQ0VFQmF5RUlJQWRCQVhRaEJ5QUZRUUYwSWdWQmdJQUNTUTBBQ3lBUFJTQVBJQndiREFFTElBd29BZ1FoRHlBTklBeEJDRUVNSUFFZ0JVc2lIQnRxS0FJQU5nSUFBMEFDUUNBSURRQWdBeWdDRUNJSVFRRnFJUXdnQ0MwQUFTRUZJQWd0QUFCQi93RkhCRUFnQXlBTU5nSVFRUWdoQ0NBRlFRaDBJQWRxSVFjTUFRc2dCVUdQQVUwRVFDQURJQXcyQWhBZ0JVRUpkQ0FIYWlFSFFRY2hDQXdCQ3lBRElBTW9BZ3hCQVdvMkFnd2dCMEdBL2dOcUlRZEJDQ0VJQ3lBSVFRRnJJUWdnQjBFQmRDRUhJQUZCQVhRaUFVR0FnQUpKRFFBTElBRWhCU0FQSUE5RklCd2JDeUlCUmhzMkFnQWdGU0FWS0FJQVFZQVFjallDQUNBQ0lBSW9BZ1JCZ0FSeU5nSUVJQVlnQVNBU2MwRVpkSEpCZ0FoeUJTQUdDMEdBZ0lEQUFISWhCZ3NDUUNBR1FZREFnSUFFY1EwQUlBWkJnTHdQY1VVTkFDQUZJQlFnQXlnQ2JDQUdRUWwySWhKQjd3TnhhaTBBQUVFQ2RHb2lEU2dDQUNJTUtBSUFJZ0ZySVFVQ2Z5QUJJQWRCRUhaTkJFQWdCeUFCUVJCMGF5RUhJQVZCZ0lBQ2NRUkFJQXdvQWdRTUFnc2dEQ2dDQkNFVklBMGdERUVNUVFnZ0FTQUZTeUlQRzJvb0FnQTJBZ0FEUUFKQUlBZ05BQ0FES0FJUUlnaEJBV29oRENBSUxRQUJJUUVnQ0MwQUFFSC9BVWNFUUNBRElBdzJBaEJCQ0NFSUlBRkJDSFFnQjJvaEJ3d0JDeUFCUVk4QlRRUkFJQU1nRERZQ0VDQUJRUWwwSUFkcUlRZEJCeUVJREFFTElBTWdBeWdDREVFQmFqWUNEQ0FIUVlEK0Eyb2hCMEVJSVFnTElBaEJBV3NoQ0NBSFFRRjBJUWNnQlVFQmRDSUZRWUNBQWtrTkFBc2dGVVVnRlNBUEd3d0JDeUFNS0FJRUlSVWdEU0FNUVFoQkRDQUJJQVZMSWc4YmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFNb0FoQWlDRUVCYWlFTUlBZ3RBQUVoQlNBSUxRQUFRZjhCUndSQUlBTWdERFlDRUVFSUlRZ2dCVUVJZENBSGFpRUhEQUVMSUFWQmp3Rk5CRUFnQXlBTU5nSVFJQVZCQ1hRZ0Iyb2hCMEVISVFnTUFRc2dBeUFES0FJTVFRRnFOZ0lNSUFkQmdQNERhaUVIUVFnaENBc2dDRUVCYXlFSUlBZEJBWFFoQnlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFCSVFVZ0ZTQVZSU0FQR3dzRWZ5QUZJQlFnQWlnQ0JFRWFka0VFY1NBQ1FRUnJJaFVvQWdCQkhIWkJBWEVnQmtFVmRrRVFjU0FHUVJsMlFjQUFjU0FTUWFvQmNYSnljbklpRWtHUXZnRnFMUUFBUVFKMGFpSU5LQUlBSWd3b0FnQWlBV3NoQlNBU1FaREFBV290QUFBaEVpQVJJQk5xSUJZZ0N5QVNBbjhnQVNBSFFSQjJUUVJBSUFjZ0FVRVFkR3NoQnlBRlFZQ0FBbkVFUUNBTUtBSUVEQUlMSUF3b0FnUWhEeUFOSUF4QkRFRUlJQUVnQlVzaUhCdHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0F5Z0NFQ0lJUVFGcUlRd2dDQzBBQVNFQklBZ3RBQUJCL3dGSEJFQWdBeUFNTmdJUVFRZ2hDQ0FCUVFoMElBZHFJUWNNQVFzZ0FVR1BBVTBFUUNBRElBdzJBaEFnQVVFSmRDQUhhaUVIUVFjaENBd0JDeUFESUFNb0FneEJBV28yQWd3Z0IwR0EvZ05xSVFkQkNDRUlDeUFJUVFGcklRZ2dCMEVCZENFSElBVkJBWFFpQlVHQWdBSkpEUUFMSUE5RklBOGdIQnNNQVFzZ0RDZ0NCQ0VQSUEwZ0RFRUlRUXdnQVNBRlN5SWNHMm9vQWdBMkFnQURRQUpBSUFnTkFDQURLQUlRSWdoQkFXb2hEQ0FJTFFBQklRVWdDQzBBQUVIL0FVY0VRQ0FESUF3MkFoQkJDQ0VJSUFWQkNIUWdCMm9oQnd3QkN5QUZRWThCVFFSQUlBTWdERFlDRUNBRlFRbDBJQWRxSVFkQkJ5RUlEQUVMSUFNZ0F5Z0NERUVCYWpZQ0RDQUhRWUQrQTJvaEIwRUlJUWdMSUFoQkFXc2hDQ0FIUVFGMElRY2dBVUVCZENJQlFZQ0FBa2tOQUFzZ0FTRUZJQThnRDBVZ0hCc0xJZ3hHR3pZQ0FDQVZJQlVvQWdCQmdJQUJjallDQUNBQ0lBSW9BZ1JCZ0NCeU5nSUVJQU1vQW54QkFuUWdBbW9pQVNBQktBSUVRUVJ5TmdJRUlBRWdBU2dDREVFQmNqWUNEQ0FCSUFFb0FnZ2dEQ0FTY3lJQlFSSjBja0VDY2pZQ0NDQUdJQUZCSEhSeVFZREFBSElGSUFZTFFZQ0FnSUFFY2lFR0N5QUNJQVkyQWdBTElBSkJCR29oQmlBVFFRUnFJUk1nRGtFQmFpSU9JQVJIRFFBTElBSkJER29oQmlBUklCTnFJUk1nQ1VFRWFpSUpJQU1vQW9BQklnRkJmSEZKRFFBTERBRUxRUVFnQVVGOGNTSUdJQVpCQkUwYlFRRnJJZ1pCZkhGQkJHb2hDU0FDSUFaQkFYUkJlSEZxUVJScUlRWUxJQU1nQ0RZQ0NDQURJQVUyQWdRZ0F5QUhOZ0lBSUFNZ0RUWUNhQ0FFUlEwQUlBRWdDVTBOQUFOQUlBRWdDVVpCQUNFSUlBa2hBVVVFUUFOQUlBTWdCaUFUSUFRZ0NHeEJBblJxSUJZZ0NDQURLQUo4UVFKcVFRQVFZaUFJUVFGcUlnZ2dBeWdDZ0FFaUFTQUphMGtOQUFzTElBWkJCR29oQmlBVFFRUnFJUk1nQ2tFQmFpSUtJQVJIRFFBTEN3d0NDd05BUVFBaENnTkFJQUVoQWlBR0lna29BZ0FpQmdSQUFrQWdCa0dRZ0lBQmNRMEFJQVpCN3dOeElnRkZEUUFnQlNBRUlBTW9BbXdnQVdvdEFBQkJBblJxSWcwb0FnQWlEaWdDQUNJQmF5RUZBbjhnQVNBSFFSQjJTd1JBSUE0b0FnUWhEQ0FOSUE1QkNFRU1JQUVnQlVzaUN4dHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0F5Z0NFQ0lJUVFGcUlRNGdDQzBBQVNFRklBZ3RBQUJCL3dGR0JFQWdCVUdRQVU4RVFDQURJQU1vQWd4QkFXbzJBZ3dnQjBHQS9nTnFJUWRCQ0NFSURBSUxJQU1nRGpZQ0VDQUZRUWwwSUFkcUlRZEJCeUVJREFFTElBTWdEallDRUVFSUlRZ2dCVUVJZENBSGFpRUhDeUFJUVFGcklRZ2dCMEVCZENFSElBRkJBWFFpQVVHQWdBSkpEUUFMSUFFaEJTQU1JQXhGSUFzYkRBRUxJQWNnQVVFUWRHc2hCeUFGUVlDQUFuRkZCRUFnRGlnQ0JDRU1JQTBnRGtFTVFRZ2dBU0FGU3lJTEcyb29BZ0EyQWdBRFFBSkFJQWdOQUNBREtBSVFJZ2hCQVdvaERpQUlMUUFCSVFFZ0NDMEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBTWdBeWdDREVFQmFqWUNEQ0FIUVlEK0Eyb2hCMEVJSVFnTUFnc2dBeUFPTmdJUUlBRkJDWFFnQjJvaEIwRUhJUWdNQVFzZ0F5QU9OZ0lRUVFnaENDQUJRUWgwSUFkcUlRY0xJQWhCQVdzaENDQUhRUUYwSVFjZ0JVRUJkQ0lGUVlDQUFra05BQXNnREVVZ0RDQUxHd3dCQ3lBT0tBSUVDd1IvSUFVZ0JDQUpLQUlFUVJGMlFRUnhJQWxCQkdzaURDZ0NBRUVUZGtFQmNTQUdRUTUyUVJCeElBWkJFSFpCd0FCeElBWkJxZ0Z4Y25KeWNpSUxRWkMrQVdvdEFBQkJBblJxSWcwb0FnQWlEaWdDQUNJQmF5RUZJQXRCa01BQmFpMEFBQ0VMSUFJZ0V5QVVJQXNDZnlBQklBZEJFSFpMQkVBZ0RpZ0NCQ0VSSUEwZ0RrRUlRUXdnQVNBRlN5SVZHMm9vQWdBMkFnQURRQUpBSUFnTkFDQURLQUlRSWdoQkFXb2hEaUFJTFFBQklRVWdDQzBBQUVIL0FVWUVRQ0FGUVpBQlR3UkFJQU1nQXlnQ0RFRUJhallDRENBSFFZRCtBMm9oQjBFSUlRZ01BZ3NnQXlBT05nSVFJQVZCQ1hRZ0Iyb2hCMEVISVFnTUFRc2dBeUFPTmdJUVFRZ2hDQ0FGUVFoMElBZHFJUWNMSUFoQkFXc2hDQ0FIUVFGMElRY2dBVUVCZENJQlFZQ0FBa2tOQUFzZ0FTRUZJQkVnRVVVZ0ZSc01BUXNnQnlBQlFSQjBheUVISUFWQmdJQUNjVVVFUUNBT0tBSUVJUkVnRFNBT1FReEJDQ0FCSUFWTEloVWJhaWdDQURZQ0FBTkFBa0FnQ0EwQUlBTW9BaEFpQ0VFQmFpRU9JQWd0QUFFaEFTQUlMUUFBUWY4QlJnUkFJQUZCa0FGUEJFQWdBeUFES0FJTVFRRnFOZ0lNSUFkQmdQNERhaUVIUVFnaENBd0NDeUFESUE0MkFoQWdBVUVKZENBSGFpRUhRUWNoQ0F3QkN5QURJQTQyQWhCQkNDRUlJQUZCQ0hRZ0Iyb2hCd3NnQ0VFQmF5RUlJQWRCQVhRaEJ5QUZRUUYwSWdWQmdJQUNTUTBBQ3lBUlJTQVJJQlViREFFTElBNG9BZ1FMSWdGR0d6WUNBQ0FNSUF3b0FnQkJJSEkyQWdBZ0NTQUpLQUlFUVFoeU5nSUVJQVlnQVNBTGMwRVRkSEpCRUhJRklBWUxRWUNBZ0FGeUlRWUxBa0FnQmtHQWdZQUljUTBBSUFaQitCNXhSUTBBSUFVZ0JDQURLQUpzSUFaQkEzWWlDMEh2QTNGcUxRQUFRUUowYWlJTktBSUFJZzRvQWdBaUFXc2hCUUovSUFFZ0IwRVFka3NFUUNBT0tBSUVJUXdnRFNBT1FRaEJEQ0FCSUFWTEloRWJhaWdDQURZQ0FBTkFBa0FnQ0EwQUlBTW9BaEFpQ0VFQmFpRU9JQWd0QUFFaEJTQUlMUUFBUWY4QlJnUkFJQVZCa0FGUEJFQWdBeUFES0FJTVFRRnFOZ0lNSUFkQmdQNERhaUVIUVFnaENBd0NDeUFESUE0MkFoQWdCVUVKZENBSGFpRUhRUWNoQ0F3QkN5QURJQTQyQWhCQkNDRUlJQVZCQ0hRZ0Iyb2hCd3NnQ0VFQmF5RUlJQWRCQVhRaEJ5QUJRUUYwSWdGQmdJQUNTUTBBQ3lBQklRVWdEQ0FNUlNBUkd3d0JDeUFISUFGQkVIUnJJUWNnQlVHQWdBSnhSUVJBSUE0b0FnUWhEQ0FOSUE1QkRFRUlJQUVnQlVzaUVSdHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0F5Z0NFQ0lJUVFGcUlRNGdDQzBBQVNFQklBZ3RBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQURJQU1vQWd4QkFXbzJBZ3dnQjBHQS9nTnFJUWRCQ0NFSURBSUxJQU1nRGpZQ0VDQUJRUWwwSUFkcUlRZEJCeUVJREFFTElBTWdEallDRUVFSUlRZ2dBVUVJZENBSGFpRUhDeUFJUVFGcklRZ2dCMEVCZENFSElBVkJBWFFpQlVHQWdBSkpEUUFMSUF4RklBd2dFUnNNQVFzZ0RpZ0NCQXNFZnlBRklBUWdDU2dDQkVFVWRrRUVjU0FKUVFScklnd29BZ0JCRm5aQkFYRWdCa0VQZGtFUWNTQUdRUk4yUWNBQWNTQUxRYW9CY1hKeWNuSWlDMEdRdmdGcUxRQUFRUUowYWlJTktBSUFJZzRvQWdBaUFXc2hCU0FMUVpEQUFXb3RBQUFoQ3lBQ0lCTWdGQ0FMQW44Z0FTQUhRUkIyU3dSQUlBNG9BZ1FoRVNBTklBNUJDRUVNSUFFZ0JVc2lGUnRxS0FJQU5nSUFBMEFDUUNBSURRQWdBeWdDRUNJSVFRRnFJUTRnQ0MwQUFTRUZJQWd0QUFCQi93RkdCRUFnQlVHUUFVOEVRQ0FESUFNb0FneEJBV28yQWd3Z0IwR0EvZ05xSVFkQkNDRUlEQUlMSUFNZ0RqWUNFQ0FGUVFsMElBZHFJUWRCQnlFSURBRUxJQU1nRGpZQ0VFRUlJUWdnQlVFSWRDQUhhaUVIQ3lBSVFRRnJJUWdnQjBFQmRDRUhJQUZCQVhRaUFVR0FnQUpKRFFBTElBRWhCU0FSSUJGRklCVWJEQUVMSUFjZ0FVRVFkR3NoQnlBRlFZQ0FBbkZGQkVBZ0RpZ0NCQ0VSSUEwZ0RrRU1RUWdnQVNBRlN5SVZHMm9vQWdBMkFnQURRQUpBSUFnTkFDQURLQUlRSWdoQkFXb2hEaUFJTFFBQklRRWdDQzBBQUVIL0FVWUVRQ0FCUVpBQlR3UkFJQU1nQXlnQ0RFRUJhallDRENBSFFZRCtBMm9oQjBFSUlRZ01BZ3NnQXlBT05nSVFJQUZCQ1hRZ0Iyb2hCMEVISVFnTUFRc2dBeUFPTmdJUVFRZ2hDQ0FCUVFoMElBZHFJUWNMSUFoQkFXc2hDQ0FIUVFGMElRY2dCVUVCZENJRlFZQ0FBa2tOQUFzZ0VVVWdFU0FWR3d3QkN5QU9LQUlFQ3lJQlJoczJBb0FDSUF3Z0RDZ0NBRUdBQW5JMkFnQWdDU0FKS0FJRVFjQUFjallDQkNBR0lBRWdDM05CRm5SeVFZQUJjZ1VnQmd0QmdJQ0FDSEloQmdzQ1FDQUdRWUNJZ01BQWNRMEFJQVpCd1BjQmNVVU5BQ0FGSUFRZ0F5Z0NiQ0FHUVFaMklndEI3d054YWkwQUFFRUNkR29pRFNnQ0FDSU9LQUlBSWdGcklRVUNmeUFCSUFkQkVIWkxCRUFnRGlnQ0JDRU1JQTBnRGtFSVFRd2dBU0FGU3lJUkcyb29BZ0EyQWdBRFFBSkFJQWdOQUNBREtBSVFJZ2hCQVdvaERpQUlMUUFCSVFVZ0NDMEFBRUgvQVVZRVFDQUZRWkFCVHdSQUlBTWdBeWdDREVFQmFqWUNEQ0FIUVlEK0Eyb2hCMEVJSVFnTUFnc2dBeUFPTmdJUUlBVkJDWFFnQjJvaEIwRUhJUWdNQVFzZ0F5QU9OZ0lRUVFnaENDQUZRUWgwSUFkcUlRY0xJQWhCQVdzaENDQUhRUUYwSVFjZ0FVRUJkQ0lCUVlDQUFra05BQXNnQVNFRklBd2dERVVnRVJzTUFRc2dCeUFCUVJCMGF5RUhJQVZCZ0lBQ2NVVUVRQ0FPS0FJRUlRd2dEU0FPUVF4QkNDQUJJQVZMSWhFYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFNb0FoQWlDRUVCYWlFT0lBZ3RBQUVoQVNBSUxRQUFRZjhCUmdSQUlBRkJrQUZQQkVBZ0F5QURLQUlNUVFGcU5nSU1JQWRCZ1A0RGFpRUhRUWdoQ0F3Q0N5QURJQTQyQWhBZ0FVRUpkQ0FIYWlFSFFRY2hDQXdCQ3lBRElBNDJBaEJCQ0NFSUlBRkJDSFFnQjJvaEJ3c2dDRUVCYXlFSUlBZEJBWFFoQnlBRlFRRjBJZ1ZCZ0lBQ1NRMEFDeUFNUlNBTUlCRWJEQUVMSUE0b0FnUUxCSDhnQlNBRUlBa29BZ1JCRjNaQkJIRWdDVUVFYXlJTUtBSUFRUmwyUVFGeElBWkJFblpCRUhFZ0JrRVdka0hBQUhFZ0MwR3FBWEZ5Y25KeUlndEJrTDRCYWkwQUFFRUNkR29pRFNnQ0FDSU9LQUlBSWdGcklRVWdDMEdRd0FGcUxRQUFJUXNnQWlBVElCUWdDd0ovSUFFZ0IwRVFka3NFUUNBT0tBSUVJUkVnRFNBT1FRaEJEQ0FCSUFWTEloVWJhaWdDQURZQ0FBTkFBa0FnQ0EwQUlBTW9BaEFpQ0VFQmFpRU9JQWd0QUFFaEJTQUlMUUFBUWY4QlJnUkFJQVZCa0FGUEJFQWdBeUFES0FJTVFRRnFOZ0lNSUFkQmdQNERhaUVIUVFnaENBd0NDeUFESUE0MkFoQWdCVUVKZENBSGFpRUhRUWNoQ0F3QkN5QURJQTQyQWhCQkNDRUlJQVZCQ0hRZ0Iyb2hCd3NnQ0VFQmF5RUlJQWRCQVhRaEJ5QUJRUUYwSWdGQmdJQUNTUTBBQ3lBQklRVWdFU0FSUlNBVkd3d0JDeUFISUFGQkVIUnJJUWNnQlVHQWdBSnhSUVJBSUE0b0FnUWhFU0FOSUE1QkRFRUlJQUVnQlVzaUZSdHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0F5Z0NFQ0lJUVFGcUlRNGdDQzBBQVNFQklBZ3RBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQURJQU1vQWd4QkFXbzJBZ3dnQjBHQS9nTnFJUWRCQ0NFSURBSUxJQU1nRGpZQ0VDQUJRUWwwSUFkcUlRZEJCeUVJREFFTElBTWdEallDRUVFSUlRZ2dBVUVJZENBSGFpRUhDeUFJUVFGcklRZ2dCMEVCZENFSElBVkJBWFFpQlVHQWdBSkpEUUFMSUJGRklCRWdGUnNNQVFzZ0RpZ0NCQXNpQVVZYk5nS0FCQ0FNSUF3b0FnQkJnQkJ5TmdJQUlBa2dDU2dDQkVHQUJISTJBZ1FnQmlBQklBdHpRUmwwY2tHQUNISUZJQVlMUVlDQWdNQUFjaUVHQ3dKQUlBWkJnTUNBZ0FSeERRQWdCa0dBdkE5eFJRMEFJQVVnQkNBREtBSnNJQVpCQ1hZaUMwSHZBM0ZxTFFBQVFRSjBhaUlOS0FJQUlnNG9BZ0FpQVdzaEJRSi9JQUVnQjBFUWRrc0VRQ0FPS0FJRUlRd2dEU0FPUVFoQkRDQUJJQVZMSWhFYmFpZ0NBRFlDQUFOQUFrQWdDQTBBSUFNb0FoQWlDRUVCYWlFT0lBZ3RBQUVoQlNBSUxRQUFRZjhCUmdSQUlBVkJrQUZQQkVBZ0F5QURLQUlNUVFGcU5nSU1JQWRCZ1A0RGFpRUhRUWdoQ0F3Q0N5QURJQTQyQWhBZ0JVRUpkQ0FIYWlFSFFRY2hDQXdCQ3lBRElBNDJBaEJCQ0NFSUlBVkJDSFFnQjJvaEJ3c2dDRUVCYXlFSUlBZEJBWFFoQnlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFCSVFVZ0RDQU1SU0FSR3d3QkN5QUhJQUZCRUhScklRY2dCVUdBZ0FKeFJRUkFJQTRvQWdRaERDQU5JQTVCREVFSUlBRWdCVXNpRVJ0cUtBSUFOZ0lBQTBBQ1FDQUlEUUFnQXlnQ0VDSUlRUUZxSVE0Z0NDMEFBU0VCSUFndEFBQkIvd0ZHQkVBZ0FVR1FBVThFUUNBRElBTW9BZ3hCQVdvMkFnd2dCMEdBL2dOcUlRZEJDQ0VJREFJTElBTWdEallDRUNBQlFRbDBJQWRxSVFkQkJ5RUlEQUVMSUFNZ0RqWUNFRUVJSVFnZ0FVRUlkQ0FIYWlFSEN5QUlRUUZySVFnZ0IwRUJkQ0VISUFWQkFYUWlCVUdBZ0FKSkRRQUxJQXhGSUF3Z0VSc01BUXNnRGlnQ0JBc0VmeUFGSUFRZ0NTZ0NCRUVhZGtFRWNTQUpRUVJySWd3b0FnQkJISFpCQVhFZ0JrRVZka0VRY1NBR1FSbDJRY0FBY1NBTFFhb0JjWEp5Y25JaUMwR1F2Z0ZxTFFBQVFRSjBhaUlOS0FJQUlnNG9BZ0FpQVdzaEJTQUxRWkRBQVdvdEFBQWhDeUFDSUJNZ0ZDQUxBbjhnQVNBSFFSQjJTd1JBSUE0b0FnUWhFU0FOSUE1QkNFRU1JQUVnQlVzaUZSdHFLQUlBTmdJQUEwQUNRQ0FJRFFBZ0F5Z0NFQ0lJUVFGcUlRNGdDQzBBQVNFRklBZ3RBQUJCL3dGR0JFQWdCVUdRQVU4RVFDQURJQU1vQWd4QkFXbzJBZ3dnQjBHQS9nTnFJUWRCQ0NFSURBSUxJQU1nRGpZQ0VDQUZRUWwwSUFkcUlRZEJCeUVJREFFTElBTWdEallDRUVFSUlRZ2dCVUVJZENBSGFpRUhDeUFJUVFGcklRZ2dCMEVCZENFSElBRkJBWFFpQVVHQWdBSkpEUUFMSUFFaEJTQVJJQkZGSUJVYkRBRUxJQWNnQVVFUWRHc2hCeUFGUVlDQUFuRkZCRUFnRGlnQ0JDRVJJQTBnRGtFTVFRZ2dBU0FGU3lJVkcyb29BZ0EyQWdBRFFBSkFJQWdOQUNBREtBSVFJZ2hCQVdvaERpQUlMUUFCSVFFZ0NDMEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBTWdBeWdDREVFQmFqWUNEQ0FIUVlEK0Eyb2hCMEVJSVFnTUFnc2dBeUFPTmdJUUlBRkJDWFFnQjJvaEIwRUhJUWdNQVFzZ0F5QU9OZ0lRUVFnaENDQUJRUWgwSUFkcUlRY0xJQWhCQVdzaENDQUhRUUYwSVFjZ0JVRUJkQ0lGUVlDQUFra05BQXNnRVVVZ0VTQVZHd3dCQ3lBT0tBSUVDeUlCUmhzMkFvQUdJQXdnRENnQ0FFR0FnQUZ5TmdJQUlBa2dDU2dDQkVHQUlISTJBZ1FnQ1NBSktBS0VBa0VFY2pZQ2hBSWdDU0FKS0FLTUFrRUJjallDakFJZ0NTQUpLQUtJQWlBQklBdHpJZ0ZCRW5SeVFRSnlOZ0tJQWlBR0lBRkJISFJ5UVlEQUFISUZJQVlMUVlDQWdJQUVjaUVHQ3lBSklBWTJBZ0FMSUFsQkJHb2hCaUFDUVFScUlRRWdDa0VCYWlJS1FjQUFSdzBBQ3lBSlFReHFJUVlnQWtHRUJtb2hBU0FXUVR4SklCWkJCR29oRmcwQUN3c2dBeUFJTmdJSUlBTWdCVFlDQkNBRElBYzJBZ0FnQXlBTk5nSm9Dd3dDQ3lBalJRUkFRUUVnRzNSQkFYWWhCeUFES0FKOElnUkJBblFpQ2lBREtBSjRha0VNYWlFQklBTW9BblFoQmtFQUlRMGdBeWdDZ0FFaUJVRUVUd1JBSUFSRkRRUWdCRUVNYkNFVElBUkJBM1FoRmtFQUlBZHJJUUlEUUVFQUlRVURRQUpBSUFFaUNTZ0NBQ0lCUlEwQUlBRkJrSUNBQVhGQkVFWUVRQ0FES0FJQUlRRUNRQ0FES0FJSUlnZ05BQ0FCUWY4QlJpRVVJQU1vQWhBaUNDMEFBQ0VCQWtBZ0ZFVUVRQ0FESUFFMkFnQWdBeUFJUVFGcU5nSVFEQUVMSUFGQmp3Rk5CRUFnQXlBQk5nSUFJQU1nQ0VFQmFqWUNFRUVISVFnTUFndEIvd0VoQVNBRFFmOEJOZ0lBQzBFSUlRZ0xJQU1nQ0VFQmF5SUlOZ0lJSUFZZ0FpQUhJQUVnQ0haQkFYRWdCaWdDQUNJQlFSOTJSaHNnQVdvMkFnQWdDU0FKS0FJQVFZQ0F3QUJ5SWdFMkFnQUxJQUZCZ0lHQUNIRkJnQUZHQkVBZ0F5Z0NBQ0VCQWtBZ0F5Z0NDQ0lJRFFBZ0FVSC9BVVloRkNBREtBSVFJZ2d0QUFBaEFRSkFJQlJGQkVBZ0F5QUJOZ0lBSUFNZ0NFRUJhallDRUF3QkN5QUJRWThCVFFSQUlBTWdBVFlDQUNBRElBaEJBV28yQWhCQkJ5RUlEQUlMUWY4QklRRWdBMEgvQVRZQ0FBdEJDQ0VJQ3lBRElBaEJBV3NpQ0RZQ0NDQUdJQXBxSWhRZ0FpQUhJQUVnQ0haQkFYRWdGQ2dDQUNJQlFSOTJSaHNnQVdvMkFnQWdDU0FKS0FJQVFZQ0FnQVJ5SWdFMkFnQUxJQUZCZ0lpQXdBQnhRWUFJUmdSQUlBTW9BZ0FoQVFKQUlBTW9BZ2dpQ0EwQUlBRkIvd0ZHSVJRZ0F5Z0NFQ0lJTFFBQUlRRUNRQ0FVUlFSQUlBTWdBVFlDQUNBRElBaEJBV28yQWhBTUFRc2dBVUdQQVUwRVFDQURJQUUyQWdBZ0F5QUlRUUZxTmdJUVFRY2hDQXdDQzBIL0FTRUJJQU5CL3dFMkFnQUxRUWdoQ0FzZ0F5QUlRUUZySWdnMkFnZ2dCaUFXYWlJVUlBSWdCeUFCSUFoMlFRRnhJQlFvQWdBaUFVRWZka1liSUFGcU5nSUFJQWtnQ1NnQ0FFR0FnSUFnY2lJQk5nSUFDeUFCUVlEQWdJQUVjVUdBd0FCSERRQWdBeWdDQUNFQkFrQWdBeWdDQ0NJSURRQWdBVUgvQVVZaEZDQURLQUlRSWdndEFBQWhBUUpBSUJSRkJFQWdBeUFCTmdJQUlBTWdDRUVCYWpZQ0VBd0JDeUFCUVk4QlRRUkFJQU1nQVRZQ0FDQURJQWhCQVdvMkFoQkJCeUVJREFJTFFmOEJJUUVnQTBIL0FUWUNBQXRCQ0NFSUN5QURJQWhCQVdzaUNEWUNDQ0FHSUJOcUloUWdBaUFISUFFZ0NIWkJBWEVnRkNnQ0FDSUJRUjkyUmhzZ0FXbzJBZ0FnQ1NBSktBSUFRWUNBZ0lBQ2NqWUNBQXNnQmtFRWFpRUdJQWxCQkdvaEFTQUZRUUZxSWdVZ0JFY05BQXNnQmlBVGFpRUdJQWxCREdvaEFTQU5RUVJxSWcwZ0F5Z0NnQUVpQlVGOGNVa05BQXNMSUFVZ0RVME5BaUFFUlEwQ1FRQWhDa0VBSUFkcklSWWdCU0VKQTBBQ1FDQUpJQTFHQkVBZ0RTRUpEQUVMSUFFb0FnQWhDRUVBSVFJRFFFR1FnSUFCSUFKQkEyd2lDWFFnQ0hGQkVDQUpkRVlFUUNBR0lBSWdCR3hCQW5ScUlRZ2dBeWdDQUNFRkFrQWdBeWdDQ0NJVERRQWdCVUgvQVVjaEZDQURLQUlRSWhNdEFBQWhCUUpBSUJSRkJFQWdCVUdRQVU4RVFFSC9BU0VGSUFOQi93RTJBZ0FNQWdzZ0F5QUZOZ0lBSUFNZ0UwRUJhallDRUVFSElSTU1BZ3NnQXlBRk5nSUFJQU1nRTBFQmFqWUNFQXRCQ0NFVEN5QURJQk5CQVdzaUV6WUNDQ0FJSUJZZ0J5QUZJQk4yUVFGeElBZ29BZ0FpQlVFZmRrWWJJQVZxTmdJQUlBRWdBU2dDQUVHQWdNQUFJQWwwY2lJSU5nSUFJQU1vQW9BQklRVUxJQVVoQ1NBQ1FRRnFJZ0lnQlNBTmEwa05BQXNMSUFaQkJHb2hCaUFCUVFScUlRRWdDa0VCYWlJS0lBUkhEUUFMREFJTElBTW9BbmdoQ0NBREtBSjBJUWtnQXlnQ2dBRWhCUUpBSUFNb0Fud2lGa0hBQUVjTkFDQUZRY0FBUncwQUlBaEJqQUpxSVFWQkFDRVdRUUJCQVNBYmRFRUJkaUlLYXlFVUlBTW9BZ2doQWlBREtBSUVJUVlnQXlnQ0FDRUJJQU1vQW1naERRTkFRUUFoRXdOQUlBa2hCeUFGSWdnb0FnQWlDUVJBSUFVZ0NVR1FnSUFCY1VFUVJnUkFJQVlnR0VFUVFROUJEaUFKUWU4RGNSc2dDVUdBZ01BQWNSdEJBblJxSWcwb0FnQWlCQ2dDQUNJRmF5RUdBbjhnQlNBQlFSQjJTd1JBSUFRb0FnUWhEaUFOSUFSQkNFRU1JQVVnQmtzaURCdHFLQUlBTmdJQUEwQUNRQ0FDRFFBZ0F5Z0NFQ0lDUVFGcUlRUWdBaTBBQVNFR0lBSXRBQUJCL3dGR0JFQWdCa0dRQVU4RVFDQURJQU1vQWd4QkFXbzJBZ3dnQVVHQS9nTnFJUUZCQ0NFQ0RBSUxJQU1nQkRZQ0VDQUdRUWwwSUFGcUlRRkJCeUVDREFFTElBTWdCRFlDRUVFSUlRSWdCa0VJZENBQmFpRUJDeUFDUVFGcklRSWdBVUVCZENFQklBVkJBWFFpQlVHQWdBSkpEUUFMSUFVaEJpQU9JQTVGSUF3YkRBRUxJQUVnQlVFUWRHc2hBU0FHUVlDQUFuRkZCRUFnQkNnQ0JDRU9JQTBnQkVFTVFRZ2dCU0FHU3lJTUcyb29BZ0EyQWdBRFFBSkFJQUlOQUNBREtBSVFJZ0pCQVdvaEJDQUNMUUFCSVFVZ0FpMEFBRUgvQVVZRVFDQUZRWkFCVHdSQUlBTWdBeWdDREVFQmFqWUNEQ0FCUVlEK0Eyb2hBVUVJSVFJTUFnc2dBeUFFTmdJUUlBVkJDWFFnQVdvaEFVRUhJUUlNQVFzZ0F5QUVOZ0lRUVFnaEFpQUZRUWgwSUFGcUlRRUxJQUpCQVdzaEFpQUJRUUYwSVFFZ0JrRUJkQ0lHUVlDQUFra05BQXNnRGtVZ0RpQU1Hd3dCQ3lBRUtBSUVDeUVGSUFjZ0ZDQUtJQVVnQnlnQ0FDSUVRUjkyUmhzZ0JHbzJBZ0FnQ1VHQWdNQUFjaUVKQ3lBSlFZQ0JnQWh4UVlBQlJnUkFJQVlnR0VFUVFROUJEaUFKUWZnZWNSc2dDVUdBZ0lBRWNSdEJBblJxSWcwb0FnQWlCQ2dDQUNJRmF5RUdBbjhnQlNBQlFSQjJTd1JBSUFRb0FnUWhEaUFOSUFSQkNFRU1JQVVnQmtzaURCdHFLQUlBTmdJQUEwQUNRQ0FDRFFBZ0F5Z0NFQ0lDUVFGcUlRUWdBaTBBQVNFR0lBSXRBQUJCL3dGR0JFQWdCa0dRQVU4RVFDQURJQU1vQWd4QkFXbzJBZ3dnQVVHQS9nTnFJUUZCQ0NFQ0RBSUxJQU1nQkRZQ0VDQUdRUWwwSUFGcUlRRkJCeUVDREFFTElBTWdCRFlDRUVFSUlRSWdCa0VJZENBQmFpRUJDeUFDUVFGcklRSWdBVUVCZENFQklBVkJBWFFpQlVHQWdBSkpEUUFMSUFVaEJpQU9JQTVGSUF3YkRBRUxJQUVnQlVFUWRHc2hBU0FHUVlDQUFuRkZCRUFnQkNnQ0JDRU9JQTBnQkVFTVFRZ2dCU0FHU3lJTUcyb29BZ0EyQWdBRFFBSkFJQUlOQUNBREtBSVFJZ0pCQVdvaEJDQUNMUUFCSVFVZ0FpMEFBRUgvQVVZRVFDQUZRWkFCVHdSQUlBTWdBeWdDREVFQmFqWUNEQ0FCUVlEK0Eyb2hBVUVJSVFJTUFnc2dBeUFFTmdJUUlBVkJDWFFnQVdvaEFVRUhJUUlNQVFzZ0F5QUVOZ0lRUVFnaEFpQUZRUWgwSUFGcUlRRUxJQUpCQVdzaEFpQUJRUUYwSVFFZ0JrRUJkQ0lHUVlDQUFra05BQXNnRGtVZ0RpQU1Hd3dCQ3lBRUtBSUVDeUVGSUFjZ0ZDQUtJQVVnQnlnQ2dBSWlCRUVmZGtZYklBUnFOZ0tBQWlBSlFZQ0FnQVJ5SVFrTElBbEJnSWlBd0FCeFFZQUlSZ1JBSUFZZ0dFRVFRUTlCRGlBSlFjRDNBWEViSUFsQmdJQ0FJSEViUVFKMGFpSU5LQUlBSWdRb0FnQWlCV3NoQmdKL0lBVWdBVUVRZGtzRVFDQUVLQUlFSVE0Z0RTQUVRUWhCRENBRklBWkxJZ3diYWlnQ0FEWUNBQU5BQWtBZ0FnMEFJQU1vQWhBaUFrRUJhaUVFSUFJdEFBRWhCaUFDTFFBQVFmOEJSZ1JBSUFaQmtBRlBCRUFnQXlBREtBSU1RUUZxTmdJTUlBRkJnUDREYWlFQlFRZ2hBZ3dDQ3lBRElBUTJBaEFnQmtFSmRDQUJhaUVCUVFjaEFnd0JDeUFESUFRMkFoQkJDQ0VDSUFaQkNIUWdBV29oQVFzZ0FrRUJheUVDSUFGQkFYUWhBU0FGUVFGMElnVkJnSUFDU1EwQUN5QUZJUVlnRGlBT1JTQU1Hd3dCQ3lBQklBVkJFSFJySVFFZ0JrR0FnQUp4UlFSQUlBUW9BZ1FoRGlBTklBUkJERUVJSUFVZ0Jrc2lEQnRxS0FJQU5nSUFBMEFDUUNBQ0RRQWdBeWdDRUNJQ1FRRnFJUVFnQWkwQUFTRUZJQUl0QUFCQi93RkdCRUFnQlVHUUFVOEVRQ0FESUFNb0FneEJBV28yQWd3Z0FVR0EvZ05xSVFGQkNDRUNEQUlMSUFNZ0JEWUNFQ0FGUVFsMElBRnFJUUZCQnlFQ0RBRUxJQU1nQkRZQ0VFRUlJUUlnQlVFSWRDQUJhaUVCQ3lBQ1FRRnJJUUlnQVVFQmRDRUJJQVpCQVhRaUJrR0FnQUpKRFFBTElBNUZJQTRnREJzTUFRc2dCQ2dDQkFzaEJTQUhJQlFnQ2lBRklBY29Bb0FFSWdSQkgzWkdHeUFFYWpZQ2dBUWdDVUdBZ0lBZ2NpRUpDeUFKUVlEQWdJQUVjVUdBd0FCR0JIOGdCaUFZUVJCQkQwRU9JQWxCZ0x3UGNSc2dDVUdBZ0lDQUFuRWJRUUowYWlJTktBSUFJZ1FvQWdBaUJXc2hCZ0ovSUFVZ0FVRVFka3NFUUNBRUtBSUVJUTRnRFNBRVFRaEJEQ0FGSUFaTElnd2JhaWdDQURZQ0FBTkFBa0FnQWcwQUlBTW9BaEFpQWtFQmFpRUVJQUl0QUFFaEJpQUNMUUFBUWY4QlJnUkFJQVpCa0FGUEJFQWdBeUFES0FJTVFRRnFOZ0lNSUFGQmdQNERhaUVCUVFnaEFnd0NDeUFESUFRMkFoQWdCa0VKZENBQmFpRUJRUWNoQWd3QkN5QURJQVEyQWhCQkNDRUNJQVpCQ0hRZ0FXb2hBUXNnQWtFQmF5RUNJQUZCQVhRaEFTQUZRUUYwSWdWQmdJQUNTUTBBQ3lBRklRWWdEaUFPUlNBTUd3d0JDeUFCSUFWQkVIUnJJUUVnQmtHQWdBSnhSUVJBSUFRb0FnUWhEaUFOSUFSQkRFRUlJQVVnQmtzaURCdHFLQUlBTmdJQUEwQUNRQ0FDRFFBZ0F5Z0NFQ0lDUVFGcUlRUWdBaTBBQVNFRklBSXRBQUJCL3dGR0JFQWdCVUdRQVU4RVFDQURJQU1vQWd4QkFXbzJBZ3dnQVVHQS9nTnFJUUZCQ0NFQ0RBSUxJQU1nQkRZQ0VDQUZRUWwwSUFGcUlRRkJCeUVDREFFTElBTWdCRFlDRUVFSUlRSWdCVUVJZENBQmFpRUJDeUFDUVFGcklRSWdBVUVCZENFQklBWkJBWFFpQmtHQWdBSkpEUUFMSUE1RklBNGdEQnNNQVFzZ0JDZ0NCQXNoQlNBSElCUWdDaUFGSUFjb0FvQUdJZ1JCSDNaR0d5QUVhallDZ0FZZ0NVR0FnSUNBQW5JRklBa0xOZ0lBQ3lBSVFRUnFJUVVnQjBFRWFpRUpJQk5CQVdvaUUwSEFBRWNOQUFzZ0NFRU1haUVGSUFkQmhBWnFJUWtnRmtFOFNTQVdRUVJxSVJZTkFBc2dBeUFDTmdJSUlBTWdCallDQkNBRElBRTJBZ0FnQXlBTk5nSm9EQUlMUVFFZ0czUkJBWFloRkNBSUlCWkJBblFpRVdwQkRHb2hCeUFES0FJSUlRSWdBeWdDQkNFR0lBTW9BZ0FoQVNBREtBSm9JUTFCQUNFRUFrQWdCVUVFU1EwQUlCWUVRQ0FXUVF4c0lRd2dGa0VEZENFVlFRQWdGR3NoRGdOQVFRQWhFd05BSUFjaUNpZ0NBQ0lJQkVBZ0J5QUlRWkNBZ0FGeFFSQkdCRUFnQmlBWVFSQkJEMEVPSUFoQjd3TnhHeUFJUVlDQXdBQnhHMEVDZEdvaURTZ0NBQ0lIS0FJQUlnVnJJUVlDZnlBRklBRkJFSFpOQkVBZ0FTQUZRUkIwYXlFQklBWkJnSUFDY1FSQUlBY29BZ1FNQWdzZ0J5Z0NCQ0VMSUEwZ0IwRU1RUWdnQlNBR1N5SVNHMm9vQWdBMkFnQURRQUpBSUFJTkFDQURLQUlRSWdKQkFXb2hCeUFDTFFBQklRVWdBaTBBQUVIL0FVY0VRQ0FESUFjMkFoQkJDQ0VDSUFWQkNIUWdBV29oQVF3QkN5QUZRWThCVFFSQUlBTWdCellDRUNBRlFRbDBJQUZxSVFGQkJ5RUNEQUVMSUFNZ0F5Z0NERUVCYWpZQ0RDQUJRWUQrQTJvaEFVRUlJUUlMSUFKQkFXc2hBaUFCUVFGMElRRWdCa0VCZENJR1FZQ0FBa2tOQUFzZ0MwVWdDeUFTR3d3QkN5QUhLQUlFSVFzZ0RTQUhRUWhCRENBRklBWkxJaEliYWlnQ0FEWUNBQU5BQWtBZ0FnMEFJQU1vQWhBaUFrRUJhaUVISUFJdEFBRWhCaUFDTFFBQVFmOEJSd1JBSUFNZ0J6WUNFRUVJSVFJZ0JrRUlkQ0FCYWlFQkRBRUxJQVpCandGTkJFQWdBeUFITmdJUUlBWkJDWFFnQVdvaEFVRUhJUUlNQVFzZ0F5QURLQUlNUVFGcU5nSU1JQUZCZ1A0RGFpRUJRUWdoQWdzZ0FrRUJheUVDSUFGQkFYUWhBU0FGUVFGMElnVkJnSUFDU1EwQUN5QUZJUVlnQ3lBTFJTQVNHd3NoQlNBSklBNGdGQ0FGSUFrb0FnQWlCMEVmZGtZYklBZHFOZ0lBSUFoQmdJREFBSEloQ0FzZ0NFR0FnWUFJY1VHQUFVWUVRQ0FHSUJoQkVFRVBRUTRnQ0VINEhuRWJJQWhCZ0lDQUJIRWJRUUowYWlJTktBSUFJZ2NvQWdBaUJXc2hCZ0ovSUFVZ0FVRVFkazBFUUNBQklBVkJFSFJySVFFZ0JrR0FnQUp4QkVBZ0J5Z0NCQXdDQ3lBSEtBSUVJUXNnRFNBSFFReEJDQ0FGSUFaTEloSWJhaWdDQURZQ0FBTkFBa0FnQWcwQUlBTW9BaEFpQWtFQmFpRUhJQUl0QUFFaEJTQUNMUUFBUWY4QlJ3UkFJQU1nQnpZQ0VFRUlJUUlnQlVFSWRDQUJhaUVCREFFTElBVkJqd0ZOQkVBZ0F5QUhOZ0lRSUFWQkNYUWdBV29oQVVFSElRSU1BUXNnQXlBREtBSU1RUUZxTmdJTUlBRkJnUDREYWlFQlFRZ2hBZ3NnQWtFQmF5RUNJQUZCQVhRaEFTQUdRUUYwSWdaQmdJQUNTUTBBQ3lBTFJTQUxJQkliREFFTElBY29BZ1FoQ3lBTklBZEJDRUVNSUFVZ0Jrc2lFaHRxS0FJQU5nSUFBMEFDUUNBQ0RRQWdBeWdDRUNJQ1FRRnFJUWNnQWkwQUFTRUdJQUl0QUFCQi93RkhCRUFnQXlBSE5nSVFRUWdoQWlBR1FRaDBJQUZxSVFFTUFRc2dCa0dQQVUwRVFDQURJQWMyQWhBZ0JrRUpkQ0FCYWlFQlFRY2hBZ3dCQ3lBRElBTW9BZ3hCQVdvMkFnd2dBVUdBL2dOcUlRRkJDQ0VDQ3lBQ1FRRnJJUUlnQVVFQmRDRUJJQVZCQVhRaUJVR0FnQUpKRFFBTElBVWhCaUFMSUF0RklCSWJDeUVGSUFrZ0VXb2lCeUFPSUJRZ0JTQUhLQUlBSWdkQkgzWkdHeUFIYWpZQ0FDQUlRWUNBZ0FSeUlRZ0xJQWhCZ0lpQXdBQnhRWUFJUmdSQUlBWWdHRUVRUVE5QkRpQUlRY0QzQVhFYklBaEJnSUNBSUhFYlFRSjBhaUlOS0FJQUlnY29BZ0FpQldzaEJnSi9JQVVnQVVFUWRrMEVRQ0FCSUFWQkVIUnJJUUVnQmtHQWdBSnhCRUFnQnlnQ0JBd0NDeUFIS0FJRUlRc2dEU0FIUVF4QkNDQUZJQVpMSWhJYmFpZ0NBRFlDQUFOQUFrQWdBZzBBSUFNb0FoQWlBa0VCYWlFSElBSXRBQUVoQlNBQ0xRQUFRZjhCUndSQUlBTWdCellDRUVFSUlRSWdCVUVJZENBQmFpRUJEQUVMSUFWQmp3Rk5CRUFnQXlBSE5nSVFJQVZCQ1hRZ0FXb2hBVUVISVFJTUFRc2dBeUFES0FJTVFRRnFOZ0lNSUFGQmdQNERhaUVCUVFnaEFnc2dBa0VCYXlFQ0lBRkJBWFFoQVNBR1FRRjBJZ1pCZ0lBQ1NRMEFDeUFMUlNBTElCSWJEQUVMSUFjb0FnUWhDeUFOSUFkQkNFRU1JQVVnQmtzaUVodHFLQUlBTmdJQUEwQUNRQ0FDRFFBZ0F5Z0NFQ0lDUVFGcUlRY2dBaTBBQVNFR0lBSXRBQUJCL3dGSEJFQWdBeUFITmdJUVFRZ2hBaUFHUVFoMElBRnFJUUVNQVFzZ0JrR1BBVTBFUUNBRElBYzJBaEFnQmtFSmRDQUJhaUVCUVFjaEFnd0JDeUFESUFNb0FneEJBV28yQWd3Z0FVR0EvZ05xSVFGQkNDRUNDeUFDUVFGcklRSWdBVUVCZENFQklBVkJBWFFpQlVHQWdBSkpEUUFMSUFVaEJpQUxJQXRGSUJJYkN5RUZJQWtnRldvaUJ5QU9JQlFnQlNBSEtBSUFJZ2RCSDNaR0d5QUhhallDQUNBSVFZQ0FnQ0J5SVFnTElBaEJnTUNBZ0FSeFFZREFBRVlFZnlBR0lCaEJFRUVQUVE0Z0NFR0F2QTl4R3lBSVFZQ0FnSUFDY1J0QkFuUnFJZzBvQWdBaUJ5Z0NBQ0lGYXlFR0FuOGdCU0FCUVJCMlRRUkFJQUVnQlVFUWRHc2hBU0FHUVlDQUFuRUVRQ0FIS0FJRURBSUxJQWNvQWdRaEN5QU5JQWRCREVFSUlBVWdCa3NpRWh0cUtBSUFOZ0lBQTBBQ1FDQUNEUUFnQXlnQ0VDSUNRUUZxSVFjZ0FpMEFBU0VGSUFJdEFBQkIvd0ZIQkVBZ0F5QUhOZ0lRUVFnaEFpQUZRUWgwSUFGcUlRRU1BUXNnQlVHUEFVMEVRQ0FESUFjMkFoQWdCVUVKZENBQmFpRUJRUWNoQWd3QkN5QURJQU1vQWd4QkFXbzJBZ3dnQVVHQS9nTnFJUUZCQ0NFQ0N5QUNRUUZySVFJZ0FVRUJkQ0VCSUFaQkFYUWlCa0dBZ0FKSkRRQUxJQXRGSUFzZ0Voc01BUXNnQnlnQ0JDRUxJQTBnQjBFSVFRd2dCU0FHU3lJU0cyb29BZ0EyQWdBRFFBSkFJQUlOQUNBREtBSVFJZ0pCQVdvaEJ5QUNMUUFCSVFZZ0FpMEFBRUgvQVVjRVFDQURJQWMyQWhCQkNDRUNJQVpCQ0hRZ0FXb2hBUXdCQ3lBR1FZOEJUUVJBSUFNZ0J6WUNFQ0FHUVFsMElBRnFJUUZCQnlFQ0RBRUxJQU1nQXlnQ0RFRUJhallDRENBQlFZRCtBMm9oQVVFSUlRSUxJQUpCQVdzaEFpQUJRUUYwSVFFZ0JVRUJkQ0lGUVlDQUFra05BQXNnQlNFR0lBc2dDMFVnRWhzTElRVWdDU0FNYWlJSElBNGdGQ0FGSUFjb0FnQWlCMEVmZGtZYklBZHFOZ0lBSUFoQmdJQ0FnQUp5QlNBSUN6WUNBQXNnQ2tFRWFpRUhJQWxCQkdvaENTQVRRUUZxSWhNZ0ZrY05BQXNnQ2tFTWFpRUhJQWtnREdvaENTQUVRUVJxSWdRZ0F5Z0NnQUVpQlVGOGNVa05BQXNNQVF0QkJDQUZRWHh4SWdjZ0IwRUVUUnRCQVdzaUIwRjhjVUVFYWlFRUlBZ2dCMEVCZEVGNGNXcEJGR29oQndzZ0F5QUNOZ0lJSUFNZ0JqWUNCQ0FESUFFMkFnQWdBeUFOTmdKb0lCWkZEUUVnQkNBRlR3MEJRUUFoQ2tFQUlCUnJJUXNnQlNFQkEwQUNRQ0FCSUFSR0JFQWdCQ0VCREFFTElBY29BZ0FoQWtFQUlRZ0RRRUdRZ0lBQklBaEJBMndpRFhRZ0FuRkJFQ0FOZEVZRVFDQUpJQWdnRm14QkFuUnFJUTRnQXlBWVFSQkJEMEVPSUFJZ0RYWWlBVUh2QTNFYklBRkJnSURBQUhFYlFRSjBhaUlUTmdKb0lBTWdBeWdDQkNBVEtBSUFJZ0lvQWdBaUFXc2lCVFlDQkFKL0lBRWdBeWdDQUNJR1FSQjJTd1JBSUFJb0FnUWhEQ0FESUFFMkFnUWdFeUFDUVFoQkRDQUJJQVZMSWhFYmFpZ0NBRFlDQUNBREtBSUlJUUlEUUFKQUlBSU5BQ0FES0FJUUlnSkJBV29oRXlBQ0xRQUJJUVVnQWkwQUFFSC9BVVlFUUNBRlFaQUJUd1JBSUFNZ0F5Z0NERUVCYWpZQ0RDQUdRWUQrQTJvaEJrRUlJUUlNQWdzZ0F5QVROZ0lRSUFWQkNYUWdCbW9oQmtFSElRSU1BUXNnQXlBVE5nSVFRUWdoQWlBRlFRaDBJQVpxSVFZTElBTWdBa0VCYXlJQ05nSUlJQU1nQmtFQmRDSUdOZ0lBSUFNZ0FVRUJkQ0lCTmdJRUlBRkJnSUFDU1EwQUN5QU1JQXhGSUJFYkRBRUxJQU1nQmlBQlFSQjBheUlHTmdJQUlBVkJnSUFDY1VVRVFDQUNLQUlFSVF3Z0V5QUNRUXhCQ0NBQklBVkxJaEViYWlnQ0FEWUNBQ0FES0FJSUlRSURRQUpBSUFJTkFDQURLQUlRSWdKQkFXb2hFeUFDTFFBQklRRWdBaTBBQUVIL0FVWUVRQ0FCUVpBQlR3UkFJQU1nQXlnQ0RFRUJhallDRENBR1FZRCtBMm9oQmtFSUlRSU1BZ3NnQXlBVE5nSVFJQUZCQ1hRZ0Jtb2hCa0VISVFJTUFRc2dBeUFUTmdJUVFRZ2hBaUFCUVFoMElBWnFJUVlMSUFNZ0FrRUJheUlDTmdJSUlBTWdCa0VCZENJR05nSUFJQU1nQlVFQmRDSUZOZ0lFSUFWQmdJQUNTUTBBQ3lBTVJTQU1JQkViREFFTElBSW9BZ1FMSVFFZ0RpQUxJQlFnQVNBT0tBSUFJZ1ZCSDNaR0d5QUZhallDQUNBSElBY29BZ0JCZ0lEQUFDQU5kSElpQWpZQ0FDQURLQUtBQVNFRkN5QUlRUUZxSWdnZ0JTSUJJQVJyU1EwQUN3c2dCMEVFYWlFSElBbEJCR29oQ1NBS1FRRnFJZ29nRmtjTkFBc01BUXRCQUNFUlFRQWhGQUpBQWtBQ1FBSkFJQU1vQW53aUZrSEFBRWNOQUNBREtBS0FBVUhBQUVjTkFFRUFRUUVnRzNRaUFVRUJkaUFCY2lJT2F5RU1JQU5CNUFCcUlRY2dBMEhnQUdvaENDQURRUnhxSVJZZ0F5Z0NlRUdNQW1vaEJpQURLQUlJSVFRZ0F5Z0NCQ0VCSUFNb0FnQWhBaUFES0FKb0lRa2dBeWdDZENFRklCZEJDSEVOQVFOQVFRQWhGUU5BSUFVaEV3SkFBa0FDZnlBR0lnMG9BZ0FpQmtVRVFDQUJJQWdvQWdBaUJTZ0NBQ0lHYXlFQkFuOGdCaUFDUVJCMlN3UkFJQVVvQWdRaENTQUlJQVZCQ0VFTUlBRWdCa2tpQ2h0cUtBSUFOZ0lBQTBBQ1FDQUVEUUFnQXlnQ0VDSUZRUUZxSVFRZ0JTMEFBU0VCSUFVdEFBQkIvd0ZHQkVBZ0FVR1FBVThFUUNBRElBTW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VFREFJTElBTWdCRFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUVEQUVMSUFNZ0JEWUNFRUVJSVFRZ0FVRUlkQ0FDYWlFQ0N5QUVRUUZySVFRZ0FrRUJkQ0VDSUFaQkFYUWlCa0dBZ0FKSkRRQUxJQVloQVNBSklBbEZJQW9iREFFTElBSWdCa0VRZEdzaEFpQUJRWUNBQW5GRkJFQWdCU2dDQkNFSklBZ2dCVUVNUVFnZ0FTQUdTU0lLRzJvb0FnQTJBZ0FEUUFKQUlBUU5BQ0FES0FJUUlnWkJBV29oQkNBR0xRQUJJUVVnQmkwQUFFSC9BVVlFUUNBRlFaQUJUd1JBSUFNZ0F5Z0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVFNQWdzZ0F5QUVOZ0lRSUFWQkNYUWdBbW9oQWtFSElRUU1BUXNnQXlBRU5nSVFRUWdoQkNBRlFRaDBJQUpxSVFJTElBUkJBV3NoQkNBQ1FRRjBJUUlnQVVFQmRDSUJRWUNBQWtrTkFBc2dDVVVnQ1NBS0d3d0JDeUFGS0FJRUMwVUVRQ0FJSVFrTUJBc2dBU0FIS0FJQUlnVW9BZ0FpQm1zaEFRSi9JQVlnQWtFUWRrc0VRQ0FGS0FJRUlRa2dCeUFGUVFoQkRDQUJJQVpKSWdzYmFpZ0NBQ0lGTmdJQUEwQUNRQ0FFRFFBZ0F5Z0NFQ0lFUVFGcUlRb2dCQzBBQVNFQklBUXRBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQURJQU1vQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRURBSUxJQU1nQ2pZQ0VDQUJRUWwwSUFKcUlRSkJCeUVFREFFTElBTWdDallDRUVFSUlRUWdBVUVJZENBQ2FpRUNDeUFFUVFGcklRUWdBa0VCZENFQ0lBWkJBWFFpQmtHQWdBSkpEUUFMSUFZaEFTQUpJQWxGSUFzYkRBRUxJQUlnQmtFUWRHc2hBaUFCUVlDQUFuRkZCRUFnQlNnQ0JDRUpJQWNnQlVFTVFRZ2dBU0FHU1NJTEcyb29BZ0FpQlRZQ0FBTkFBa0FnQkEwQUlBTW9BaEFpQkVFQmFpRUtJQVF0QUFFaEJpQUVMUUFBUWY4QlJnUkFJQVpCa0FGUEJFQWdBeUFES0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJBd0NDeUFESUFvMkFoQWdCa0VKZENBQ2FpRUNRUWNoQkF3QkN5QURJQW8yQWhCQkNDRUVJQVpCQ0hRZ0Ftb2hBZ3NnQkVFQmF5RUVJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBSlJTQUpJQXNiREFFTElBVW9BZ1FMSVFvZ0FTQUZLQUlBSWdacklRRUNmeUFHSUFKQkVIWkxCRUFnQlNnQ0JDRUpJQWNnQlVFSVFRd2dBU0FHU1NJTEcyb29BZ0EyQWdBRFFBSkFJQVFOQUNBREtBSVFJZ1ZCQVdvaEJDQUZMUUFCSVFFZ0JTMEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBTWdBeWdDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFRTUFnc2dBeUFFTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVFNQVFzZ0F5QUVOZ0lRUVFnaEJDQUJRUWgwSUFKcUlRSUxJQVJCQVdzaEJDQUNRUUYwSVFJZ0JrRUJkQ0lHUVlDQUFra05BQXNnQmlFQklBa2dDVVVnQ3hzTUFRc2dBaUFHUVJCMGF5RUNJQUZCZ0lBQ2NVVUVRQ0FGS0FJRUlRa2dCeUFGUVF4QkNDQUJJQVpKSWdzYmFpZ0NBRFlDQUFOQUFrQWdCQTBBSUFNb0FoQWlCa0VCYWlFRUlBWXRBQUVoQlNBR0xRQUFRZjhCUmdSQUlBVkJrQUZQQkVBZ0F5QURLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQkF3Q0N5QURJQVEyQWhBZ0JVRUpkQ0FDYWlFQ1FRY2hCQXdCQ3lBRElBUTJBaEJCQ0NFRUlBVkJDSFFnQW1vaEFnc2dCRUVCYXlFRUlBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFKUlNBSklBc2JEQUVMSUFVb0FnUUxJUVZCQUNFR0lBY2hDUUpBQWtBQ1FBSi9Ba0FDUUNBRklBcEJBWFJ5RGdRQUFRTUZDQXNnQVNBV0lBMG9BZ1JCRVhaQkJIRWdEVUVFYXlJSktBSUFRUk4yUVFGeGNpSVJRWkMrQVdvdEFBQkJBblJxSWdvb0FnQWlCU2dDQUNJR2F5RUJBbjhnQmlBQ1FSQjJTd1JBSUFVb0FnUWhDeUFLSUFWQkNFRU1JQUVnQmtraUNodHFLQUlBTmdJQUEwQUNRQ0FFRFFBZ0F5Z0NFQ0lGUVFGcUlRUWdCUzBBQVNFQklBVXRBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQURJQU1vQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRURBSUxJQU1nQkRZQ0VDQUJRUWwwSUFKcUlRSkJCeUVFREFFTElBTWdCRFlDRUVFSUlRUWdBVUVJZENBQ2FpRUNDeUFFUVFGcklRUWdBa0VCZENFQ0lBWkJBWFFpQmtHQWdBSkpEUUFMSUFZaEFTQUxJQXRGSUFvYkRBRUxJQUlnQmtFUWRHc2hBaUFCUVlDQUFuRkZCRUFnQlNnQ0JDRUxJQW9nQlVFTVFRZ2dBU0FHU1NJS0cyb29BZ0EyQWdBRFFBSkFJQVFOQUNBREtBSVFJZ1pCQVdvaEJDQUdMUUFCSVFVZ0JpMEFBRUgvQVVZRVFDQUZRWkFCVHdSQUlBTWdBeWdDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFRTUFnc2dBeUFFTmdJUUlBVkJDWFFnQW1vaEFrRUhJUVFNQVFzZ0F5QUVOZ0lRUVFnaEJDQUZRUWgwSUFKcUlRSUxJQVJCQVdzaEJDQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnQzBVZ0N5QUtHd3dCQ3lBRktBSUVDeUVGSUJNZ0RpQU1JQVVnRVVHUXdBRnFMUUFBSWdaR0d6WUNBQ0FKSUFrb0FnQkJJSEkyQWdBZ0RTQU5LQUlFUVFoeU5nSUVJQTFCakFKcklna2dDU2dDQUVHQWdBaHlOZ0lBSUExQmhBSnJJZ2tnQ1NnQ0FFR0FnQUp5TmdJQUlBMUJpQUpySWdrZ0NTZ0NBQ0FGSUFaeklnVkJIM1J5UVlDQUJISTJBZ0FnQlVFVGRDQUJJQllnQXlnQ2JDMEFBa0VDZEdvaUNTZ0NBQ0lGS0FJQUlnWnJJUUVDZnlBR0lBSkJFSFpMQkVBZ0JTZ0NCQ0VLSUFrZ0JVRUlRUXdnQVNBR1NTSVJHMm9vQWdBMkFnQURRQUpBSUFRTkFDQURLQUlRSWdWQkFXb2hDU0FGTFFBQklRRWdCUzBBQUVIL0FVWUVRQ0FCUVpBQlR3UkFJQU1nQXlnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRUU1BZ3NnQXlBSk5nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFRTUFRc2dBeUFKTmdJUVFRZ2hCQ0FCUVFoMElBSnFJUUlMSUFSQkFXc2hCQ0FDUVFGMElRSWdCa0VCZENJR1FZQ0FBa2tOQUFzZ0JpRUJJQW9nQ2tVZ0VSc01BUXNnQWlBR1FSQjBheUVDSUFGQmdJQUNjVVVFUUNBRktBSUVJUW9nQ1NBRlFReEJDQ0FCSUFaSkloRWJhaWdDQURZQ0FBTkFBa0FnQkEwQUlBTW9BaEFpQmtFQmFpRUpJQVl0QUFFaEJTQUdMUUFBUWY4QlJnUkFJQVZCa0FGUEJFQWdBeUFES0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJBd0NDeUFESUFrMkFoQWdCVUVKZENBQ2FpRUNRUWNoQkF3QkN5QURJQWsyQWhCQkNDRUVJQVZCQ0hRZ0Ftb2hBZ3NnQkVFQmF5RUVJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBS1JTQUtJQkViREFFTElBVW9BZ1FMSVFWQkVISWlCaUFGUlEwQkdnc2dBU0FXSUEwb0FnUkJGSFpCQkhFZ0RVRUVheUlLS0FJQVFSWjJRUUZ4SUFaQkQzWkJFSEVnQmtFVGRrSEFBSEVnQmtFRGRrR3FBWEZ5Y25KeUloSkJrTDRCYWkwQUFFRUNkR29pQ3lnQ0FDSUpLQUlBSWdWcklRRUNmeUFGSUFKQkVIWkxCRUFnQ1NnQ0JDRVJJQXNnQ1VFSVFRd2dBU0FGU1NJTEcyb29BZ0EyQWdBRFFBSkFJQVFOQUNBREtBSVFJZ2xCQVdvaEJDQUpMUUFCSVFFZ0NTMEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBTWdBeWdDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFRTUFnc2dBeUFFTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVFNQVFzZ0F5QUVOZ0lRUVFnaEJDQUJRUWgwSUFKcUlRSUxJQVJCQVdzaEJDQUNRUUYwSVFJZ0JVRUJkQ0lGUVlDQUFra05BQXNnQlNFQklCRWdFVVVnQ3hzTUFRc2dBaUFGUVJCMGF5RUNJQUZCZ0lBQ2NVVUVRQ0FKS0FJRUlSRWdDeUFKUVF4QkNDQUJJQVZKSWdzYmFpZ0NBRFlDQUFOQUFrQWdCQTBBSUFNb0FoQWlDVUVCYWlFRUlBa3RBQUVoQlNBSkxRQUFRZjhCUmdSQUlBVkJrQUZQQkVBZ0F5QURLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQkF3Q0N5QURJQVEyQWhBZ0JVRUpkQ0FDYWlFQ1FRY2hCQXdCQ3lBRElBUTJBaEJCQ0NFRUlBVkJDSFFnQW1vaEFnc2dCRUVCYXlFRUlBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFSUlNBUklBc2JEQUVMSUFrb0FnUUxJUVVnRXlBT0lBd2dCU0FTUVpEQUFXb3RBQUFpQ1VZYk5nS0FBaUFLSUFvb0FnQkJnQUp5TmdJQUlBMGdEU2dDQkVIQUFISTJBZ1FnQmlBRklBbHpRUlowY2tHQUFYSUxJUVlnQVNBV0lBTW9BbXdnQmtFR2RrSHZBM0ZxTFFBQVFRSjBhaUlLS0FJQUlna29BZ0FpQldzaEFRSi9JQVVnQWtFUWRrc0VRQ0FKS0FJRUlRc2dDaUFKUVFoQkRDQUJJQVZKSWdvYmFpZ0NBRFlDQUFOQUFrQWdCQTBBSUFNb0FoQWlDVUVCYWlFRUlBa3RBQUVoQVNBSkxRQUFRZjhCUmdSQUlBRkJrQUZQQkVBZ0F5QURLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQkF3Q0N5QURJQVEyQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hCQXdCQ3lBRElBUTJBaEJCQ0NFRUlBRkJDSFFnQW1vaEFnc2dCRUVCYXlFRUlBSkJBWFFoQWlBRlFRRjBJZ1ZCZ0lBQ1NRMEFDeUFGSVFFZ0N5QUxSU0FLR3d3QkN5QUNJQVZCRUhScklRSWdBVUdBZ0FKeFJRUkFJQWtvQWdRaEN5QUtJQWxCREVFSUlBRWdCVWtpQ2h0cUtBSUFOZ0lBQTBBQ1FDQUVEUUFnQXlnQ0VDSUpRUUZxSVFRZ0NTMEFBU0VGSUFrdEFBQkIvd0ZHQkVBZ0JVR1FBVThFUUNBRElBTW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VFREFJTElBTWdCRFlDRUNBRlFRbDBJQUpxSVFKQkJ5RUVEQUVMSUFNZ0JEWUNFRUVJSVFRZ0JVRUlkQ0FDYWlFQ0N5QUVRUUZySVFRZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQXRGSUFzZ0Noc01BUXNnQ1NnQ0JBdEZEUUVMSUFFZ0ZpQU5LQUlFUVJkMlFRUnhJQTFCQkdzaUNpZ0NBRUVaZGtFQmNTQUdRUkoyUVJCeElBWkJGblpCd0FCeElBWkJCblpCcWdGeGNuSnljaUlTUVpDK0FXb3RBQUJCQW5ScUlnc29BZ0FpQ1NnQ0FDSUZheUVCQW44Z0JTQUNRUkIyU3dSQUlBa29BZ1FoRVNBTElBbEJDRUVNSUFFZ0JVa2lDeHRxS0FJQU5nSUFBMEFDUUNBRURRQWdBeWdDRUNJSlFRRnFJUVFnQ1MwQUFTRUJJQWt0QUFCQi93RkdCRUFnQVVHUUFVOEVRQ0FESUFNb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUVEQUlMSUFNZ0JEWUNFQ0FCUVFsMElBSnFJUUpCQnlFRURBRUxJQU1nQkRZQ0VFRUlJUVFnQVVFSWRDQUNhaUVDQ3lBRVFRRnJJUVFnQWtFQmRDRUNJQVZCQVhRaUJVR0FnQUpKRFFBTElBVWhBU0FSSUJGRklBc2JEQUVMSUFJZ0JVRVFkR3NoQWlBQlFZQ0FBbkZGQkVBZ0NTZ0NCQ0VSSUFzZ0NVRU1RUWdnQVNBRlNTSUxHMm9vQWdBMkFnQURRQUpBSUFRTkFDQURLQUlRSWdsQkFXb2hCQ0FKTFFBQklRVWdDUzBBQUVIL0FVWUVRQ0FGUVpBQlR3UkFJQU1nQXlnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRUU1BZ3NnQXlBRU5nSVFJQVZCQ1hRZ0Ftb2hBa0VISVFRTUFRc2dBeUFFTmdJUVFRZ2hCQ0FGUVFoMElBSnFJUUlMSUFSQkFXc2hCQ0FDUVFGMElRSWdBVUVCZENJQlFZQ0FBa2tOQUFzZ0VVVWdFU0FMR3d3QkN5QUpLQUlFQ3lFRklCTWdEaUFNSUFVZ0VrR1F3QUZxTFFBQUlnbEdHellDZ0FRZ0NpQUtLQUlBUVlBUWNqWUNBQ0FOSUEwb0FnUkJnQVJ5TmdJRUlBWWdCU0FKYzBFWmRISkJnQWh5SVFZTElBRWdGaUFES0FKc0lBWkJDWFpCN3dOeGFpMEFBRUVDZEdvaUNTZ0NBQ0lLS0FJQUlnVnJJUUVDZnlBRklBSkJFSFpMQkVBZ0NpZ0NCQ0VMSUFrZ0NrRUlRUXdnQVNBRlNTSVJHMm9vQWdBMkFnQURRQUpBSUFRTkFDQURLQUlRSWdSQkFXb2hDaUFFTFFBQklRRWdCQzBBQUVIL0FVWUVRQ0FCUVpBQlR3UkFJQU1nQXlnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRUU1BZ3NnQXlBS05nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFRTUFRc2dBeUFLTmdJUVFRZ2hCQ0FCUVFoMElBSnFJUUlMSUFSQkFXc2hCQ0FDUVFGMElRSWdCVUVCZENJRlFZQ0FBa2tOQUFzZ0JTRUJJQXNnQzBVZ0VSc01BUXNnQWlBRlFSQjBheUVDSUFGQmdJQUNjVVVFUUNBS0tBSUVJUXNnQ1NBS1FReEJDQ0FCSUFWSkloRWJhaWdDQURZQ0FBTkFBa0FnQkEwQUlBTW9BaEFpQkVFQmFpRUtJQVF0QUFFaEJTQUVMUUFBUWY4QlJnUkFJQVZCa0FGUEJFQWdBeUFES0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJBd0NDeUFESUFvMkFoQWdCVUVKZENBQ2FpRUNRUWNoQkF3QkN5QURJQW8yQWhCQkNDRUVJQVZCQ0hRZ0Ftb2hBZ3NnQkVFQmF5RUVJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBTFJTQUxJQkViREFFTElBb29BZ1FMUlEwREN5QUJJQllnRFNnQ0JFRWFka0VFY1NBTlFRUnJJaEVvQWdCQkhIWkJBWEVnQmtFVmRrRVFjU0FHUVJsMlFjQUFjU0FHUVFsMlFhb0JjWEp5Y25JaUMwR1F2Z0ZxTFFBQVFRSjBhaUlKS0FJQUlnb29BZ0FpQldzTUFRc0NRQ0FHUVpDQWdBRnhEUUFnQVNBV0lBTW9BbXdnQmtIdkEzRnFMUUFBUVFKMGFpSUpLQUlBSWdvb0FnQWlCV3NoQVFKL0lBVWdBa0VRZGtzRVFDQUtLQUlFSVFzZ0NTQUtRUWhCRENBQklBVkpJaEViYWlnQ0FEWUNBQU5BQWtBZ0JBMEFJQU1vQWhBaUJFRUJhaUVLSUFRdEFBRWhBU0FFTFFBQVFmOEJSZ1JBSUFGQmtBRlBCRUFnQXlBREtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCQXdDQ3lBRElBbzJBaEFnQVVFSmRDQUNhaUVDUVFjaEJBd0JDeUFESUFvMkFoQkJDQ0VFSUFGQkNIUWdBbW9oQWdzZ0JFRUJheUVFSUFKQkFYUWhBaUFGUVFGMElnVkJnSUFDU1EwQUN5QUZJUUVnQ3lBTFJTQVJHd3dCQ3lBQ0lBVkJFSFJySVFJZ0FVR0FnQUp4UlFSQUlBb29BZ1FoQ3lBSklBcEJERUVJSUFFZ0JVa2lFUnRxS0FJQU5nSUFBMEFDUUNBRURRQWdBeWdDRUNJRVFRRnFJUW9nQkMwQUFTRUZJQVF0QUFCQi93RkdCRUFnQlVHUUFVOEVRQ0FESUFNb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUVEQUlMSUFNZ0NqWUNFQ0FGUVFsMElBSnFJUUpCQnlFRURBRUxJQU1nQ2pZQ0VFRUlJUVFnQlVFSWRDQUNhaUVDQ3lBRVFRRnJJUVFnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBdEZJQXNnRVJzTUFRc2dDaWdDQkF0RkRRQWdBU0FXSUEwb0FnUkJFWFpCQkhFZ0RVRUVheUlMS0FJQVFSTjJRUUZ4SUFaQkRuWkJFSEVnQmtFUWRrSEFBSEVnQmtHcUFYRnljbkp5SWhKQmtMNEJhaTBBQUVFQ2RHb2lDU2dDQUNJS0tBSUFJZ1ZySVFFQ2Z5QUZJQUpCRUhaTEJFQWdDaWdDQkNFUklBa2dDa0VJUVF3Z0FTQUZTU0lQRzJvb0FnQTJBZ0FEUUFKQUlBUU5BQ0FES0FJUUlnUkJBV29oQ2lBRUxRQUJJUUVnQkMwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFNZ0F5Z0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVFNQWdzZ0F5QUtOZ0lRSUFGQkNYUWdBbW9oQWtFSElRUU1BUXNnQXlBS05nSVFRUWdoQkNBQlFRaDBJQUpxSVFJTElBUkJBV3NoQkNBQ1FRRjBJUUlnQlVFQmRDSUZRWUNBQWtrTkFBc2dCU0VCSUJFZ0VVVWdEeHNNQVFzZ0FpQUZRUkIwYXlFQ0lBRkJnSUFDY1VVRVFDQUtLQUlFSVJFZ0NTQUtRUXhCQ0NBQklBVkpJZzhiYWlnQ0FEWUNBQU5BQWtBZ0JBMEFJQU1vQWhBaUJFRUJhaUVLSUFRdEFBRWhCU0FFTFFBQVFmOEJSZ1JBSUFWQmtBRlBCRUFnQXlBREtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCQXdDQ3lBRElBbzJBaEFnQlVFSmRDQUNhaUVDUVFjaEJBd0JDeUFESUFvMkFoQkJDQ0VFSUFWQkNIUWdBbW9oQWdzZ0JFRUJheUVFSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QVJSU0FSSUE4YkRBRUxJQW9vQWdRTElRVWdFeUFPSUF3Z0JTQVNRWkRBQVdvdEFBQWlDa1liTmdJQUlBc2dDeWdDQUVFZ2NqWUNBQ0FOSUEwb0FnUkJDSEkyQWdRZ0RVR01BbXNpQ3lBTEtBSUFRWUNBQ0hJMkFnQWdEVUdFQW1zaUN5QUxLQUlBUVlDQUFuSTJBZ0FnRFVHSUFtc2lDeUFMS0FJQUlBVWdDbk1pQlVFZmRISkJnSUFFY2pZQ0FDQUdJQVZCRTNSeVFSQnlJUVlMQWtBZ0JrR0FnWUFJY1EwQUlBRWdGaUFES0FKc0lBWkJBM1lpRVVIdkEzRnFMUUFBUVFKMGFpSUpLQUlBSWdvb0FnQWlCV3NoQVFKL0lBVWdBa0VRZGtzRVFDQUtLQUlFSVFzZ0NTQUtRUWhCRENBQklBVkpJaEliYWlnQ0FEWUNBQU5BQWtBZ0JBMEFJQU1vQWhBaUJFRUJhaUVLSUFRdEFBRWhBU0FFTFFBQVFmOEJSZ1JBSUFGQmtBRlBCRUFnQXlBREtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCQXdDQ3lBRElBbzJBaEFnQVVFSmRDQUNhaUVDUVFjaEJBd0JDeUFESUFvMkFoQkJDQ0VFSUFGQkNIUWdBbW9oQWdzZ0JFRUJheUVFSUFKQkFYUWhBaUFGUVFGMElnVkJnSUFDU1EwQUN5QUZJUUVnQ3lBTFJTQVNHd3dCQ3lBQ0lBVkJFSFJySVFJZ0FVR0FnQUp4UlFSQUlBb29BZ1FoQ3lBSklBcEJERUVJSUFFZ0JVa2lFaHRxS0FJQU5nSUFBMEFDUUNBRURRQWdBeWdDRUNJRVFRRnFJUW9nQkMwQUFTRUZJQVF0QUFCQi93RkdCRUFnQlVHUUFVOEVRQ0FESUFNb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUVEQUlMSUFNZ0NqWUNFQ0FGUVFsMElBSnFJUUpCQnlFRURBRUxJQU1nQ2pZQ0VFRUlJUVFnQlVFSWRDQUNhaUVDQ3lBRVFRRnJJUVFnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBdEZJQXNnRWhzTUFRc2dDaWdDQkF0RkRRQWdBU0FXSUEwb0FnUkJGSFpCQkhFZ0RVRUVheUlMS0FJQVFSWjJRUUZ4SUFaQkQzWkJFSEVnQmtFVGRrSEFBSEVnRVVHcUFYRnljbkp5SWhKQmtMNEJhaTBBQUVFQ2RHb2lDU2dDQUNJS0tBSUFJZ1ZySVFFQ2Z5QUZJQUpCRUhaTEJFQWdDaWdDQkNFUklBa2dDa0VJUVF3Z0FTQUZTU0lQRzJvb0FnQTJBZ0FEUUFKQUlBUU5BQ0FES0FJUUlnUkJBV29oQ2lBRUxRQUJJUUVnQkMwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFNZ0F5Z0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVFNQWdzZ0F5QUtOZ0lRSUFGQkNYUWdBbW9oQWtFSElRUU1BUXNnQXlBS05nSVFRUWdoQkNBQlFRaDBJQUpxSVFJTElBUkJBV3NoQkNBQ1FRRjBJUUlnQlVFQmRDSUZRWUNBQWtrTkFBc2dCU0VCSUJFZ0VVVWdEeHNNQVFzZ0FpQUZRUkIwYXlFQ0lBRkJnSUFDY1VVRVFDQUtLQUlFSVJFZ0NTQUtRUXhCQ0NBQklBVkpJZzhiYWlnQ0FEWUNBQU5BQWtBZ0JBMEFJQU1vQWhBaUJFRUJhaUVLSUFRdEFBRWhCU0FFTFFBQVFmOEJSZ1JBSUFWQmtBRlBCRUFnQXlBREtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCQXdDQ3lBRElBbzJBaEFnQlVFSmRDQUNhaUVDUVFjaEJBd0JDeUFESUFvMkFoQkJDQ0VFSUFWQkNIUWdBbW9oQWdzZ0JFRUJheUVFSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QVJSU0FSSUE4YkRBRUxJQW9vQWdRTElRVWdFeUFPSUF3Z0JTQVNRWkRBQVdvdEFBQWlDa1liTmdLQUFpQUxJQXNvQWdCQmdBSnlOZ0lBSUEwZ0RTZ0NCRUhBQUhJMkFnUWdCaUFGSUFwelFSWjBja0dBQVhJaEJnc0NRQ0FHUVlDSWdNQUFjUTBBSUFFZ0ZpQURLQUpzSUFaQkJuWWlFVUh2QTNGcUxRQUFRUUowYWlJSktBSUFJZ29vQWdBaUJXc2hBUUovSUFVZ0FrRVFka3NFUUNBS0tBSUVJUXNnQ1NBS1FRaEJEQ0FCSUFWSkloSWJhaWdDQURZQ0FBTkFBa0FnQkEwQUlBTW9BaEFpQkVFQmFpRUtJQVF0QUFFaEFTQUVMUUFBUWY4QlJnUkFJQUZCa0FGUEJFQWdBeUFES0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJBd0NDeUFESUFvMkFoQWdBVUVKZENBQ2FpRUNRUWNoQkF3QkN5QURJQW8yQWhCQkNDRUVJQUZCQ0hRZ0Ftb2hBZ3NnQkVFQmF5RUVJQUpCQVhRaEFpQUZRUUYwSWdWQmdJQUNTUTBBQ3lBRklRRWdDeUFMUlNBU0d3d0JDeUFDSUFWQkVIUnJJUUlnQVVHQWdBSnhSUVJBSUFvb0FnUWhDeUFKSUFwQkRFRUlJQUVnQlVraUVodHFLQUlBTmdJQUEwQUNRQ0FFRFFBZ0F5Z0NFQ0lFUVFGcUlRb2dCQzBBQVNFRklBUXRBQUJCL3dGR0JFQWdCVUdRQVU4RVFDQURJQU1vQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRURBSUxJQU1nQ2pZQ0VDQUZRUWwwSUFKcUlRSkJCeUVFREFFTElBTWdDallDRUVFSUlRUWdCVUVJZENBQ2FpRUNDeUFFUVFGcklRUWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUF0RklBc2dFaHNNQVFzZ0NpZ0NCQXRGRFFBZ0FTQVdJQTBvQWdSQkYzWkJCSEVnRFVFRWF5SUxLQUlBUVJsMlFRRnhJQVpCRW5aQkVIRWdCa0VXZGtIQUFIRWdFVUdxQVhGeWNuSnlJaEpCa0w0QmFpMEFBRUVDZEdvaUNTZ0NBQ0lLS0FJQUlnVnJJUUVDZnlBRklBSkJFSFpMQkVBZ0NpZ0NCQ0VSSUFrZ0NrRUlRUXdnQVNBRlNTSVBHMm9vQWdBMkFnQURRQUpBSUFRTkFDQURLQUlRSWdSQkFXb2hDaUFFTFFBQklRRWdCQzBBQUVIL0FVWUVRQ0FCUVpBQlR3UkFJQU1nQXlnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRUU1BZ3NnQXlBS05nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFRTUFRc2dBeUFLTmdJUVFRZ2hCQ0FCUVFoMElBSnFJUUlMSUFSQkFXc2hCQ0FDUVFGMElRSWdCVUVCZENJRlFZQ0FBa2tOQUFzZ0JTRUJJQkVnRVVVZ0R4c01BUXNnQWlBRlFSQjBheUVDSUFGQmdJQUNjVVVFUUNBS0tBSUVJUkVnQ1NBS1FReEJDQ0FCSUFWSklnOGJhaWdDQURZQ0FBTkFBa0FnQkEwQUlBTW9BaEFpQkVFQmFpRUtJQVF0QUFFaEJTQUVMUUFBUWY4QlJnUkFJQVZCa0FGUEJFQWdBeUFES0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJBd0NDeUFESUFvMkFoQWdCVUVKZENBQ2FpRUNRUWNoQkF3QkN5QURJQW8yQWhCQkNDRUVJQVZCQ0hRZ0Ftb2hBZ3NnQkVFQmF5RUVJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBUlJTQVJJQThiREFFTElBb29BZ1FMSVFVZ0V5QU9JQXdnQlNBU1FaREFBV290QUFBaUNrWWJOZ0tBQkNBTElBc29BZ0JCZ0JCeU5nSUFJQTBnRFNnQ0JFR0FCSEkyQWdRZ0JpQUZJQXB6UVJsMGNrR0FDSEloQmdzZ0JrR0F3SUNBQkhFTkFTQUJJQllnQXlnQ2JDQUdRUWwySWhKQjd3TnhhaTBBQUVFQ2RHb2lDU2dDQUNJS0tBSUFJZ1ZySVFFQ2Z5QUZJQUpCRUhaTEJFQWdDaWdDQkNFTElBa2dDa0VJUVF3Z0FTQUZTU0lSRzJvb0FnQTJBZ0FEUUFKQUlBUU5BQ0FES0FJUUlnUkJBV29oQ2lBRUxRQUJJUUVnQkMwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFNZ0F5Z0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVFNQWdzZ0F5QUtOZ0lRSUFGQkNYUWdBbW9oQWtFSElRUU1BUXNnQXlBS05nSVFRUWdoQkNBQlFRaDBJQUpxSVFJTElBUkJBV3NoQkNBQ1FRRjBJUUlnQlVFQmRDSUZRWUNBQWtrTkFBc2dCU0VCSUFzZ0MwVWdFUnNNQVFzZ0FpQUZRUkIwYXlFQ0lBRkJnSUFDY1VVRVFDQUtLQUlFSVFzZ0NTQUtRUXhCQ0NBQklBVkpJaEViYWlnQ0FEWUNBQU5BQWtBZ0JBMEFJQU1vQWhBaUJFRUJhaUVLSUFRdEFBRWhCU0FFTFFBQVFmOEJSZ1JBSUFWQmtBRlBCRUFnQXlBREtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCQXdDQ3lBRElBbzJBaEFnQlVFSmRDQUNhaUVDUVFjaEJBd0JDeUFESUFvMkFoQkJDQ0VFSUFWQkNIUWdBbW9oQWdzZ0JFRUJheUVFSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUxSU0FMSUJFYkRBRUxJQW9vQWdRTFJRMEJJQUVnRmlBTktBSUVRUnAyUVFSeElBMUJCR3NpRVNnQ0FFRWNka0VCY1NBR1FSVjJRUkJ4SUFaQkdYWkJ3QUJ4SUJKQnFnRnhjbkp5Y2lJTFFaQytBV290QUFCQkFuUnFJZ2tvQWdBaUNpZ0NBQ0lGYXdzaEFRSi9JQVVnQWtFUWRrc0VRQ0FLS0FJRUlSSWdDU0FLUVFoQkRDQUJJQVZKSWc4YmFpZ0NBRFlDQUFOQUFrQWdCQTBBSUFNb0FoQWlCRUVCYWlFS0lBUXRBQUVoQVNBRUxRQUFRZjhCUmdSQUlBRkJrQUZQQkVBZ0F5QURLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQkF3Q0N5QURJQW8yQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hCQXdCQ3lBRElBbzJBaEJCQ0NFRUlBRkJDSFFnQW1vaEFnc2dCRUVCYXlFRUlBSkJBWFFoQWlBRlFRRjBJZ1ZCZ0lBQ1NRMEFDeUFGSVFFZ0VpQVNSU0FQR3d3QkN5QUNJQVZCRUhScklRSWdBVUdBZ0FKeFJRUkFJQW9vQWdRaEVpQUpJQXBCREVFSUlBRWdCVWtpRHh0cUtBSUFOZ0lBQTBBQ1FDQUVEUUFnQXlnQ0VDSUVRUUZxSVFvZ0JDMEFBU0VGSUFRdEFBQkIvd0ZHQkVBZ0JVR1FBVThFUUNBRElBTW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VFREFJTElBTWdDallDRUNBRlFRbDBJQUpxSVFKQkJ5RUVEQUVMSUFNZ0NqWUNFRUVJSVFRZ0JVRUlkQ0FDYWlFQ0N5QUVRUUZySVFRZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQkpGSUJJZ0R4c01BUXNnQ2lnQ0JBc2hCU0FUSUE0Z0RDQUZJQXRCa01BQmFpMEFBQ0lLUmhzMkFvQUdJQkVnRVNnQ0FFR0FnQUZ5TmdJQUlBMGdEU2dDQkVHQUlISTJBZ1FnQlNBS2N5SUZRUngwSUFaeUlBMGdEU2dDaEFKQkJISTJBb1FDSUEwZ0RTZ0NqQUpCQVhJMkFvd0NJQTBnRFNnQ2lBSWdCVUVTZEhKQkFuSTJBb2dDUVlEQUFISWhCZ3NnRFNBR1FmLy8vN1o3Y1RZQ0FBc2dEVUVFYWlFR0lCTkJCR29oQlNBVlFRRnFJaFZCd0FCSERRQUxJQTFCREdvaEJpQVRRWVFHYWlFRklCUkJQRWtnRkVFRWFpRVVEUUFMREFJTFFRRWdHM1FpQVVFQmRpQUJjaUVPSUFNb0FuZ2lCeUFXUVFKMGFrRU1haUVGSUFNb0FvQUJJUVlnQXlnQ0NDRUVJQU1vQWdRaEFTQURLQUlBSVFJZ0F5Z0NhQ0VKSUFNb0FuUWhFeUFYUVFoeEJFQUNRQ0FHUVFSSkRRQWdGZ1JBSUFOQjVBQnFJUWdnQTBIZ0FHb2hEU0FXUVF4c0lTUWdGa0VEZENFY1FRQWdEbXNoRlNBRFFSeHFJUXdEUUVFQUlSSURRQUpBQWtBQ2Z5QUZJZ2NvQWdBaUJRUkFBa0FnQlVHUWdJQUJjUTBBSUFFZ0RDQURLQUpzSUFWQjd3TnhhaTBBQUVFQ2RHb2lDU2dDQUNJS0tBSUFJZ1pySVFFQ2Z5QUdJQUpCRUhaTkJFQWdBaUFHUVJCMGF5RUNJQUZCZ0lBQ2NRUkFJQW9vQWdRTUFnc2dDaWdDQkNFTElBa2dDa0VNUVFnZ0FTQUdTU0lQRzJvb0FnQTJBZ0FEUUFKQUlBUU5BQ0FES0FJUUlnUkJBV29oQ2lBRUxRQUJJUVlnQkMwQUFFSC9BVWNFUUNBRElBbzJBaEJCQ0NFRUlBWkJDSFFnQW1vaEFnd0JDeUFHUVk4QlRRUkFJQU1nQ2pZQ0VDQUdRUWwwSUFKcUlRSkJCeUVFREFFTElBTWdBeWdDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFRTElBUkJBV3NoQkNBQ1FRRjBJUUlnQVVFQmRDSUJRWUNBQWtrTkFBc2dDMFVnQ3lBUEd3d0JDeUFLS0FJRUlRc2dDU0FLUVFoQkRDQUJJQVpKSWc4YmFpZ0NBRFlDQUFOQUFrQWdCQTBBSUFNb0FoQWlCRUVCYWlFS0lBUXRBQUVoQVNBRUxRQUFRZjhCUndSQUlBTWdDallDRUVFSUlRUWdBVUVJZENBQ2FpRUNEQUVMSUFGQmp3Rk5CRUFnQXlBS05nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFRTUFRc2dBeUFES0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJBc2dCRUVCYXlFRUlBSkJBWFFoQWlBR1FRRjBJZ1pCZ0lBQ1NRMEFDeUFHSVFFZ0N5QUxSU0FQR3d0RkRRQWdBU0FNSUFjb0FnUkJFWFpCQkhFZ0IwRUVheUlMS0FJQVFSTjJRUUZ4SUFWQkRuWkJFSEVnQlVFUWRrSEFBSEVnQlVHcUFYRnljbkp5SWhsQmtMNEJhaTBBQUVFQ2RHb2lDU2dDQUNJS0tBSUFJZ1pySVFFQ2Z5QUdJQUpCRUhaTkJFQWdBaUFHUVJCMGF5RUNJQUZCZ0lBQ2NRUkFJQW9vQWdRTUFnc2dDaWdDQkNFUElBa2dDa0VNUVFnZ0FTQUdTU0lmRzJvb0FnQTJBZ0FEUUFKQUlBUU5BQ0FES0FJUUlnUkJBV29oQ2lBRUxRQUJJUVlnQkMwQUFFSC9BVWNFUUNBRElBbzJBaEJCQ0NFRUlBWkJDSFFnQW1vaEFnd0JDeUFHUVk4QlRRUkFJQU1nQ2pZQ0VDQUdRUWwwSUFKcUlRSkJCeUVFREFFTElBTWdBeWdDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFRTElBUkJBV3NoQkNBQ1FRRjBJUUlnQVVFQmRDSUJRWUNBQWtrTkFBc2dEMFVnRHlBZkd3d0JDeUFLS0FJRUlROGdDU0FLUVFoQkRDQUJJQVpKSWg4YmFpZ0NBRFlDQUFOQUFrQWdCQTBBSUFNb0FoQWlCRUVCYWlFS0lBUXRBQUVoQVNBRUxRQUFRZjhCUndSQUlBTWdDallDRUVFSUlRUWdBVUVJZENBQ2FpRUNEQUVMSUFGQmp3Rk5CRUFnQXlBS05nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFRTUFRc2dBeUFES0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJBc2dCRUVCYXlFRUlBSkJBWFFoQWlBR1FRRjBJZ1pCZ0lBQ1NRMEFDeUFHSVFFZ0R5QVBSU0FmR3dzaEJpQVRJQTRnRlNBR0lCbEJrTUFCYWkwQUFDSUtSaHMyQWdBZ0N5QUxLQUlBUVNCeU5nSUFJQWNnQnlnQ0JFRUljallDQkNBRklBWWdDbk5CRTNSeVFSQnlJUVVMQWtBZ0JVR0FnWUFJY1EwQUlBRWdEQ0FES0FKc0lBVkJBM1lpRDBIdkEzRnFMUUFBUVFKMGFpSUpLQUlBSWdvb0FnQWlCbXNoQVFKL0lBWWdBa0VRZGswRVFDQUNJQVpCRUhScklRSWdBVUdBZ0FKeEJFQWdDaWdDQkF3Q0N5QUtLQUlFSVFzZ0NTQUtRUXhCQ0NBQklBWkpJaGtiYWlnQ0FEWUNBQU5BQWtBZ0JBMEFJQU1vQWhBaUJFRUJhaUVLSUFRdEFBRWhCaUFFTFFBQVFmOEJSd1JBSUFNZ0NqWUNFRUVJSVFRZ0JrRUlkQ0FDYWlFQ0RBRUxJQVpCandGTkJFQWdBeUFLTmdJUUlBWkJDWFFnQW1vaEFrRUhJUVFNQVFzZ0F5QURLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQkFzZ0JFRUJheUVFSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUxSU0FMSUJrYkRBRUxJQW9vQWdRaEN5QUpJQXBCQ0VFTUlBRWdCa2tpR1J0cUtBSUFOZ0lBQTBBQ1FDQUVEUUFnQXlnQ0VDSUVRUUZxSVFvZ0JDMEFBU0VCSUFRdEFBQkIvd0ZIQkVBZ0F5QUtOZ0lRUVFnaEJDQUJRUWgwSUFKcUlRSU1BUXNnQVVHUEFVMEVRQ0FESUFvMkFoQWdBVUVKZENBQ2FpRUNRUWNoQkF3QkN5QURJQU1vQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRUN5QUVRUUZySVFRZ0FrRUJkQ0VDSUFaQkFYUWlCa0dBZ0FKSkRRQUxJQVloQVNBTElBdEZJQmtiQzBVTkFDQUJJQXdnQnlnQ0JFRVVka0VFY1NBSFFRUnJJZ3NvQWdCQkZuWkJBWEVnQlVFUGRrRVFjU0FGUVJOMlFjQUFjU0FQUWFvQmNYSnljbklpR1VHUXZnRnFMUUFBUVFKMGFpSUpLQUlBSWdvb0FnQWlCbXNoQVFKL0lBWWdBa0VRZGswRVFDQUNJQVpCRUhScklRSWdBVUdBZ0FKeEJFQWdDaWdDQkF3Q0N5QUtLQUlFSVE4Z0NTQUtRUXhCQ0NBQklBWkpJaDhiYWlnQ0FEWUNBQU5BQWtBZ0JBMEFJQU1vQWhBaUJFRUJhaUVLSUFRdEFBRWhCaUFFTFFBQVFmOEJSd1JBSUFNZ0NqWUNFRUVJSVFRZ0JrRUlkQ0FDYWlFQ0RBRUxJQVpCandGTkJFQWdBeUFLTmdJUUlBWkJDWFFnQW1vaEFrRUhJUVFNQVFzZ0F5QURLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQkFzZ0JFRUJheUVFSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QVBSU0FQSUI4YkRBRUxJQW9vQWdRaER5QUpJQXBCQ0VFTUlBRWdCa2tpSHh0cUtBSUFOZ0lBQTBBQ1FDQUVEUUFnQXlnQ0VDSUVRUUZxSVFvZ0JDMEFBU0VCSUFRdEFBQkIvd0ZIQkVBZ0F5QUtOZ0lRUVFnaEJDQUJRUWgwSUFKcUlRSU1BUXNnQVVHUEFVMEVRQ0FESUFvMkFoQWdBVUVKZENBQ2FpRUNRUWNoQkF3QkN5QURJQU1vQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRUN5QUVRUUZySVFRZ0FrRUJkQ0VDSUFaQkFYUWlCa0dBZ0FKSkRRQUxJQVloQVNBUElBOUZJQjhiQ3lFR0lCTWdGa0VDZEdvZ0RpQVZJQVlnR1VHUXdBRnFMUUFBSWdwR0d6WUNBQ0FMSUFzb0FnQkJnQUp5TmdJQUlBY2dCeWdDQkVIQUFISTJBZ1FnQlNBR0lBcHpRUlowY2tHQUFYSWhCUXNDUUNBRlFZQ0lnTUFBY1EwQUlBRWdEQ0FES0FKc0lBVkJCbllpRDBIdkEzRnFMUUFBUVFKMGFpSUpLQUlBSWdvb0FnQWlCbXNoQVFKL0lBWWdBa0VRZGswRVFDQUNJQVpCRUhScklRSWdBVUdBZ0FKeEJFQWdDaWdDQkF3Q0N5QUtLQUlFSVFzZ0NTQUtRUXhCQ0NBQklBWkpJaGtiYWlnQ0FEWUNBQU5BQWtBZ0JBMEFJQU1vQWhBaUJFRUJhaUVLSUFRdEFBRWhCaUFFTFFBQVFmOEJSd1JBSUFNZ0NqWUNFRUVJSVFRZ0JrRUlkQ0FDYWlFQ0RBRUxJQVpCandGTkJFQWdBeUFLTmdJUUlBWkJDWFFnQW1vaEFrRUhJUVFNQVFzZ0F5QURLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQkFzZ0JFRUJheUVFSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUxSU0FMSUJrYkRBRUxJQW9vQWdRaEN5QUpJQXBCQ0VFTUlBRWdCa2tpR1J0cUtBSUFOZ0lBQTBBQ1FDQUVEUUFnQXlnQ0VDSUVRUUZxSVFvZ0JDMEFBU0VCSUFRdEFBQkIvd0ZIQkVBZ0F5QUtOZ0lRUVFnaEJDQUJRUWgwSUFKcUlRSU1BUXNnQVVHUEFVMEVRQ0FESUFvMkFoQWdBVUVKZENBQ2FpRUNRUWNoQkF3QkN5QURJQU1vQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRUN5QUVRUUZySVFRZ0FrRUJkQ0VDSUFaQkFYUWlCa0dBZ0FKSkRRQUxJQVloQVNBTElBdEZJQmtiQzBVTkFDQUJJQXdnQnlnQ0JFRVhka0VFY1NBSFFRUnJJZ3NvQWdCQkdYWkJBWEVnQlVFU2RrRVFjU0FGUVJaMlFjQUFjU0FQUWFvQmNYSnljbklpR1VHUXZnRnFMUUFBUVFKMGFpSUpLQUlBSWdvb0FnQWlCbXNoQVFKL0lBWWdBa0VRZGswRVFDQUNJQVpCRUhScklRSWdBVUdBZ0FKeEJFQWdDaWdDQkF3Q0N5QUtLQUlFSVE4Z0NTQUtRUXhCQ0NBQklBWkpJaDhiYWlnQ0FEWUNBQU5BQWtBZ0JBMEFJQU1vQWhBaUJFRUJhaUVLSUFRdEFBRWhCaUFFTFFBQVFmOEJSd1JBSUFNZ0NqWUNFRUVJSVFRZ0JrRUlkQ0FDYWlFQ0RBRUxJQVpCandGTkJFQWdBeUFLTmdJUUlBWkJDWFFnQW1vaEFrRUhJUVFNQVFzZ0F5QURLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQkFzZ0JFRUJheUVFSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QVBSU0FQSUI4YkRBRUxJQW9vQWdRaER5QUpJQXBCQ0VFTUlBRWdCa2tpSHh0cUtBSUFOZ0lBQTBBQ1FDQUVEUUFnQXlnQ0VDSUVRUUZxSVFvZ0JDMEFBU0VCSUFRdEFBQkIvd0ZIQkVBZ0F5QUtOZ0lRUVFnaEJDQUJRUWgwSUFKcUlRSU1BUXNnQVVHUEFVMEVRQ0FESUFvMkFoQWdBVUVKZENBQ2FpRUNRUWNoQkF3QkN5QURJQU1vQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRUN5QUVRUUZySVFRZ0FrRUJkQ0VDSUFaQkFYUWlCa0dBZ0FKSkRRQUxJQVloQVNBUElBOUZJQjhiQ3lFR0lCTWdIR29nRGlBVklBWWdHVUdRd0FGcUxRQUFJZ3BHR3pZQ0FDQUxJQXNvQWdCQmdCQnlOZ0lBSUFjZ0J5Z0NCRUdBQkhJMkFnUWdCU0FHSUFwelFSbDBja0dBQ0hJaEJRc2dCVUdBd0lDQUJIRU5BaUFCSUF3Z0F5Z0NiQ0FGUVFsMklnOUI3d054YWkwQUFFRUNkR29pQ1NnQ0FDSUtLQUlBSWdacklRRUNmeUFHSUFKQkVIWk5CRUFnQWlBR1FSQjBheUVDSUFGQmdJQUNjUVJBSUFvb0FnUU1BZ3NnQ2lnQ0JDRUxJQWtnQ2tFTVFRZ2dBU0FHU1NJWkcyb29BZ0EyQWdBRFFBSkFJQVFOQUNBREtBSVFJZ1JCQVdvaENpQUVMUUFCSVFZZ0JDMEFBRUgvQVVjRVFDQURJQW8yQWhCQkNDRUVJQVpCQ0hRZ0Ftb2hBZ3dCQ3lBR1FZOEJUUVJBSUFNZ0NqWUNFQ0FHUVFsMElBSnFJUUpCQnlFRURBRUxJQU1nQXlnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRUUxJQVJCQVdzaEJDQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnQzBVZ0N5QVpHd3dCQ3lBS0tBSUVJUXNnQ1NBS1FRaEJEQ0FCSUFaSkloa2JhaWdDQURZQ0FBTkFBa0FnQkEwQUlBTW9BaEFpQkVFQmFpRUtJQVF0QUFFaEFTQUVMUUFBUWY4QlJ3UkFJQU1nQ2pZQ0VFRUlJUVFnQVVFSWRDQUNhaUVDREFFTElBRkJqd0ZOQkVBZ0F5QUtOZ0lRSUFGQkNYUWdBbW9oQWtFSElRUU1BUXNnQXlBREtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCQXNnQkVFQmF5RUVJQUpCQVhRaEFpQUdRUUYwSWdaQmdJQUNTUTBBQ3lBR0lRRWdDeUFMUlNBWkd3dEZEUUlnQVNBTUlBY29BZ1JCR25aQkJIRWdCMEVFYXlJTEtBSUFRUngyUVFGeElBVkJGWFpCRUhFZ0JVRVpka0hBQUhFZ0QwR3FBWEZ5Y25KeUlnOUJrTDRCYWkwQUFFRUNkR29pQ1NnQ0FDSUtLQUlBSWdackRBRUxJQUVnRFNnQ0FDSUdLQUlBSWdWcklRRUNmeUFGSUFKQkVIWk5CRUFnQWlBRlFSQjBheUVDSUFGQmdJQUNjUVJBSUFZb0FnUU1BZ3NnQmlnQ0JDRUpJQTBnQmtFTVFRZ2dBU0FGU1NJS0cyb29BZ0EyQWdBRFFBSkFJQVFOQUNBREtBSVFJZ1pCQVdvaEJDQUdMUUFCSVFVZ0JpMEFBRUgvQVVjRVFDQURJQVEyQWhCQkNDRUVJQVZCQ0hRZ0Ftb2hBZ3dCQ3lBRlFZOEJUUVJBSUFNZ0JEWUNFQ0FGUVFsMElBSnFJUUpCQnlFRURBRUxJQU1nQXlnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRUUxJQVJCQVdzaEJDQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnQ1VVZ0NTQUtHd3dCQ3lBR0tBSUVJUWtnRFNBR1FRaEJEQ0FCSUFWSklnb2JhaWdDQURZQ0FBTkFBa0FnQkEwQUlBTW9BaEFpQmtFQmFpRUVJQVl0QUFFaEFTQUdMUUFBUWY4QlJ3UkFJQU1nQkRZQ0VFRUlJUVFnQVVFSWRDQUNhaUVDREFFTElBRkJqd0ZOQkVBZ0F5QUVOZ0lRSUFGQkNYUWdBbW9oQWtFSElRUU1BUXNnQXlBREtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCQXNnQkVFQmF5RUVJQUpCQVhRaEFpQUZRUUYwSWdWQmdJQUNTUTBBQ3lBRklRRWdDU0FKUlNBS0d3dEZCRUFnRFNFSkRBTUxJQUVnQ0NnQ0FDSUdLQUlBSWdWcklRRUNmeUFGSUFKQkVIWk5CRUFnQWlBRlFSQjBheUVDSUFGQmdJQUNjUVJBSUFZb0FnUU1BZ3NnQmlnQ0JDRUpJQWdnQmtFTVFRZ2dBU0FGU1NJTEcyb29BZ0FpQmpZQ0FBTkFBa0FnQkEwQUlBTW9BaEFpQkVFQmFpRUtJQVF0QUFFaEJTQUVMUUFBUWY4QlJ3UkFJQU1nQ2pZQ0VFRUlJUVFnQlVFSWRDQUNhaUVDREFFTElBVkJqd0ZOQkVBZ0F5QUtOZ0lRSUFWQkNYUWdBbW9oQWtFSElRUU1BUXNnQXlBREtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCQXNnQkVFQmF5RUVJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBSlJTQUpJQXNiREFFTElBWW9BZ1FoQ1NBSUlBWkJDRUVNSUFFZ0JVa2lDeHRxS0FJQUlnWTJBZ0FEUUFKQUlBUU5BQ0FES0FJUUlnUkJBV29oQ2lBRUxRQUJJUUVnQkMwQUFFSC9BVWNFUUNBRElBbzJBaEJCQ0NFRUlBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQU1nQ2pZQ0VDQUJRUWwwSUFKcUlRSkJCeUVFREFFTElBTWdBeWdDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFRTElBUkJBV3NoQkNBQ1FRRjBJUUlnQlVFQmRDSUZRWUNBQWtrTkFBc2dCU0VCSUFrZ0NVVWdDeHNMSVFvZ0FTQUdLQUlBSWdWcklRRUNmeUFGSUFKQkVIWk5CRUFnQWlBRlFSQjBheUVDSUFGQmdJQUNjUVJBSUFZb0FnUU1BZ3NnQmlnQ0JDRUpJQWdnQmtFTVFRZ2dBU0FGU1NJTEcyb29BZ0EyQWdBRFFBSkFJQVFOQUNBREtBSVFJZ1pCQVdvaEJDQUdMUUFCSVFVZ0JpMEFBRUgvQVVjRVFDQURJQVEyQWhCQkNDRUVJQVZCQ0hRZ0Ftb2hBZ3dCQ3lBRlFZOEJUUVJBSUFNZ0JEWUNFQ0FGUVFsMElBSnFJUUpCQnlFRURBRUxJQU1nQXlnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRUUxJQVJCQVdzaEJDQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnQ1VVZ0NTQUxHd3dCQ3lBR0tBSUVJUWtnQ0NBR1FRaEJEQ0FCSUFWSklnc2JhaWdDQURZQ0FBTkFBa0FnQkEwQUlBTW9BaEFpQmtFQmFpRUVJQVl0QUFFaEFTQUdMUUFBUWY4QlJ3UkFJQU1nQkRZQ0VFRUlJUVFnQVVFSWRDQUNhaUVDREFFTElBRkJqd0ZOQkVBZ0F5QUVOZ0lRSUFGQkNYUWdBbW9oQWtFSElRUU1BUXNnQXlBREtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCQXNnQkVFQmF5RUVJQUpCQVhRaEFpQUZRUUYwSWdWQmdJQUNTUTBBQ3lBRklRRWdDU0FKUlNBTEd3c2hCa0VBSVFVZ0NDRUpBa0FDUUFKQUFuOENRQUpBSUFZZ0NrRUJkSElPQkFBQkF3VUhDeUFCSUF3Z0J5Z0NCRUVSZGtFRWNTQUhRUVJySWdrb0FnQkJFM1pCQVhGeUlnOUJrTDRCYWkwQUFFRUNkR29pQ2lnQ0FDSUdLQUlBSWdWcklRRUNmeUFGSUFKQkVIWk5CRUFnQWlBRlFSQjBheUVDSUFGQmdJQUNjUVJBSUFZb0FnUU1BZ3NnQmlnQ0JDRUxJQW9nQmtFTVFRZ2dBU0FGU1NJS0cyb29BZ0EyQWdBRFFBSkFJQVFOQUNBREtBSVFJZ1pCQVdvaEJDQUdMUUFCSVFVZ0JpMEFBRUgvQVVjRVFDQURJQVEyQWhCQkNDRUVJQVZCQ0hRZ0Ftb2hBZ3dCQ3lBRlFZOEJUUVJBSUFNZ0JEWUNFQ0FGUVFsMElBSnFJUUpCQnlFRURBRUxJQU1nQXlnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRUUxJQVJCQVdzaEJDQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnQzBVZ0N5QUtHd3dCQ3lBR0tBSUVJUXNnQ2lBR1FRaEJEQ0FCSUFWSklnb2JhaWdDQURZQ0FBTkFBa0FnQkEwQUlBTW9BaEFpQmtFQmFpRUVJQVl0QUFFaEFTQUdMUUFBUWY4QlJ3UkFJQU1nQkRZQ0VFRUlJUVFnQVVFSWRDQUNhaUVDREFFTElBRkJqd0ZOQkVBZ0F5QUVOZ0lRSUFGQkNYUWdBbW9oQWtFSElRUU1BUXNnQXlBREtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCQXNnQkVFQmF5RUVJQUpCQVhRaEFpQUZRUUYwSWdWQmdJQUNTUTBBQ3lBRklRRWdDeUFMUlNBS0d3c2hCU0FUSUE0Z0ZTQUZJQTlCa01BQmFpMEFBQ0lHUmhzMkFnQWdDU0FKS0FJQVFTQnlOZ0lBSUFjZ0J5Z0NCRUVJY2pZQ0JDQUZJQVp6UVJOMElBRWdEQ0FES0FKc0xRQUNRUUowYWlJSktBSUFJZ1lvQWdBaUJXc2hBUUovSUFVZ0FrRVFkazBFUUNBQ0lBVkJFSFJySVFJZ0FVR0FnQUp4QkVBZ0JpZ0NCQXdDQ3lBR0tBSUVJUW9nQ1NBR1FReEJDQ0FCSUFWSklnOGJhaWdDQURZQ0FBTkFBa0FnQkEwQUlBTW9BaEFpQmtFQmFpRUpJQVl0QUFFaEJTQUdMUUFBUWY4QlJ3UkFJQU1nQ1RZQ0VFRUlJUVFnQlVFSWRDQUNhaUVDREFFTElBVkJqd0ZOQkVBZ0F5QUpOZ0lRSUFWQkNYUWdBbW9oQWtFSElRUU1BUXNnQXlBREtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCQXNnQkVFQmF5RUVJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBS1JTQUtJQThiREFFTElBWW9BZ1FoQ2lBSklBWkJDRUVNSUFFZ0JVa2lEeHRxS0FJQU5nSUFBMEFDUUNBRURRQWdBeWdDRUNJR1FRRnFJUWtnQmkwQUFTRUJJQVl0QUFCQi93RkhCRUFnQXlBSk5nSVFRUWdoQkNBQlFRaDBJQUpxSVFJTUFRc2dBVUdQQVUwRVFDQURJQWsyQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hCQXdCQ3lBRElBTW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VFQ3lBRVFRRnJJUVFnQWtFQmRDRUNJQVZCQVhRaUJVR0FnQUpKRFFBTElBVWhBU0FLSUFwRklBOGJDeUVHUVJCeUlnVWdCa1VOQVJvTElBRWdEQ0FIS0FJRVFSUjJRUVJ4SUFkQkJHc2lDaWdDQUVFV2RrRUJjU0FGUVE5MlFSQnhJQVZCRTNaQndBQnhJQVZCQTNaQnFnRnhjbkp5Y2lJWlFaQytBV290QUFCQkFuUnFJZ3NvQWdBaUNTZ0NBQ0lHYXlFQkFuOGdCaUFDUVJCMlRRUkFJQUlnQmtFUWRHc2hBaUFCUVlDQUFuRUVRQ0FKS0FJRURBSUxJQWtvQWdRaER5QUxJQWxCREVFSUlBRWdCa2tpQ3h0cUtBSUFOZ0lBQTBBQ1FDQUVEUUFnQXlnQ0VDSUpRUUZxSVFRZ0NTMEFBU0VHSUFrdEFBQkIvd0ZIQkVBZ0F5QUVOZ0lRUVFnaEJDQUdRUWgwSUFKcUlRSU1BUXNnQmtHUEFVMEVRQ0FESUFRMkFoQWdCa0VKZENBQ2FpRUNRUWNoQkF3QkN5QURJQU1vQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRUN5QUVRUUZySVFRZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQTlGSUE4Z0N4c01BUXNnQ1NnQ0JDRVBJQXNnQ1VFSVFRd2dBU0FHU1NJTEcyb29BZ0EyQWdBRFFBSkFJQVFOQUNBREtBSVFJZ2xCQVdvaEJDQUpMUUFCSVFFZ0NTMEFBRUgvQVVjRVFDQURJQVEyQWhCQkNDRUVJQUZCQ0hRZ0Ftb2hBZ3dCQ3lBQlFZOEJUUVJBSUFNZ0JEWUNFQ0FCUVFsMElBSnFJUUpCQnlFRURBRUxJQU1nQXlnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRUUxJQVJCQVdzaEJDQUNRUUYwSVFJZ0JrRUJkQ0lHUVlDQUFra05BQXNnQmlFQklBOGdEMFVnQ3hzTElRWWdFeUFXUVFKMGFpQU9JQlVnQmlBWlFaREFBV290QUFBaUNVWWJOZ0lBSUFvZ0NpZ0NBRUdBQW5JMkFnQWdCeUFIS0FJRVFjQUFjallDQkNBRklBWWdDWE5CRm5SeVFZQUJjZ3NoQlNBQklBd2dBeWdDYkNBRlFRWjJRZThEY1dvdEFBQkJBblJxSWdvb0FnQWlDU2dDQUNJR2F5RUJBbjhnQmlBQ1FSQjJUUVJBSUFJZ0JrRVFkR3NoQWlBQlFZQ0FBbkVFUUNBSktBSUVEQUlMSUFrb0FnUWhDeUFLSUFsQkRFRUlJQUVnQmtraUNodHFLQUlBTmdJQUEwQUNRQ0FFRFFBZ0F5Z0NFQ0lKUVFGcUlRUWdDUzBBQVNFR0lBa3RBQUJCL3dGSEJFQWdBeUFFTmdJUVFRZ2hCQ0FHUVFoMElBSnFJUUlNQVFzZ0JrR1BBVTBFUUNBRElBUTJBaEFnQmtFSmRDQUNhaUVDUVFjaEJBd0JDeUFESUFNb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUVDeUFFUVFGcklRUWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUF0RklBc2dDaHNNQVFzZ0NTZ0NCQ0VMSUFvZ0NVRUlRUXdnQVNBR1NTSUtHMm9vQWdBMkFnQURRQUpBSUFRTkFDQURLQUlRSWdsQkFXb2hCQ0FKTFFBQklRRWdDUzBBQUVIL0FVY0VRQ0FESUFRMkFoQkJDQ0VFSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBTWdCRFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUVEQUVMSUFNZ0F5Z0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVFMSUFSQkFXc2hCQ0FDUVFGMElRSWdCa0VCZENJR1FZQ0FBa2tOQUFzZ0JpRUJJQXNnQzBVZ0Noc0xSUTBCQ3lBQklBd2dCeWdDQkVFWGRrRUVjU0FIUVFScklnb29BZ0JCR1haQkFYRWdCVUVTZGtFUWNTQUZRUloyUWNBQWNTQUZRUVoyUWFvQmNYSnljbklpR1VHUXZnRnFMUUFBUVFKMGFpSUxLQUlBSWdrb0FnQWlCbXNoQVFKL0lBWWdBa0VRZGswRVFDQUNJQVpCRUhScklRSWdBVUdBZ0FKeEJFQWdDU2dDQkF3Q0N5QUpLQUlFSVE4Z0N5QUpRUXhCQ0NBQklBWkpJZ3NiYWlnQ0FEWUNBQU5BQWtBZ0JBMEFJQU1vQWhBaUNVRUJhaUVFSUFrdEFBRWhCaUFKTFFBQVFmOEJSd1JBSUFNZ0JEWUNFRUVJSVFRZ0JrRUlkQ0FDYWlFQ0RBRUxJQVpCandGTkJFQWdBeUFFTmdJUUlBWkJDWFFnQW1vaEFrRUhJUVFNQVFzZ0F5QURLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQkFzZ0JFRUJheUVFSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QVBSU0FQSUFzYkRBRUxJQWtvQWdRaER5QUxJQWxCQ0VFTUlBRWdCa2tpQ3h0cUtBSUFOZ0lBQTBBQ1FDQUVEUUFnQXlnQ0VDSUpRUUZxSVFRZ0NTMEFBU0VCSUFrdEFBQkIvd0ZIQkVBZ0F5QUVOZ0lRUVFnaEJDQUJRUWgwSUFKcUlRSU1BUXNnQVVHUEFVMEVRQ0FESUFRMkFoQWdBVUVKZENBQ2FpRUNRUWNoQkF3QkN5QURJQU1vQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRUN5QUVRUUZySVFRZ0FrRUJkQ0VDSUFaQkFYUWlCa0dBZ0FKSkRRQUxJQVloQVNBUElBOUZJQXNiQ3lFR0lCTWdIR29nRGlBVklBWWdHVUdRd0FGcUxRQUFJZ2xHR3pZQ0FDQUtJQW9vQWdCQmdCQnlOZ0lBSUFjZ0J5Z0NCRUdBQkhJMkFnUWdCU0FHSUFselFSbDBja0dBQ0hJaEJRc2dBU0FNSUFNb0Ftd2dCVUVKZGtIdkEzRnFMUUFBUVFKMGFpSUpLQUlBSWdvb0FnQWlCbXNoQVFKL0lBWWdBa0VRZGswRVFDQUNJQVpCRUhScklRSWdBVUdBZ0FKeEJFQWdDaWdDQkF3Q0N5QUtLQUlFSVFzZ0NTQUtRUXhCQ0NBQklBWkpJZzhiYWlnQ0FEWUNBQU5BQWtBZ0JBMEFJQU1vQWhBaUJFRUJhaUVLSUFRdEFBRWhCaUFFTFFBQVFmOEJSd1JBSUFNZ0NqWUNFRUVJSVFRZ0JrRUlkQ0FDYWlFQ0RBRUxJQVpCandGTkJFQWdBeUFLTmdJUUlBWkJDWFFnQW1vaEFrRUhJUVFNQVFzZ0F5QURLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQkFzZ0JFRUJheUVFSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUxSU0FMSUE4YkRBRUxJQW9vQWdRaEN5QUpJQXBCQ0VFTUlBRWdCa2tpRHh0cUtBSUFOZ0lBQTBBQ1FDQUVEUUFnQXlnQ0VDSUVRUUZxSVFvZ0JDMEFBU0VCSUFRdEFBQkIvd0ZIQkVBZ0F5QUtOZ0lRUVFnaEJDQUJRUWgwSUFKcUlRSU1BUXNnQVVHUEFVMEVRQ0FESUFvMkFoQWdBVUVKZENBQ2FpRUNRUWNoQkF3QkN5QURJQU1vQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRUN5QUVRUUZySVFRZ0FrRUJkQ0VDSUFaQkFYUWlCa0dBZ0FKSkRRQUxJQVloQVNBTElBdEZJQThiQzBVTkFnc2dBU0FNSUFjb0FnUkJHblpCQkhFZ0IwRUVheUlMS0FJQVFSeDJRUUZ4SUFWQkZYWkJFSEVnQlVFWmRrSEFBSEVnQlVFSmRrR3FBWEZ5Y25KeUlnOUJrTDRCYWkwQUFFRUNkR29pQ1NnQ0FDSUtLQUlBSWdackN5RUJBbjhnQmlBQ1FSQjJUUVJBSUFJZ0JrRVFkR3NoQWlBQlFZQ0FBbkVFUUNBS0tBSUVEQUlMSUFvb0FnUWhHU0FKSUFwQkRFRUlJQUVnQmtraUh4dHFLQUlBTmdJQUEwQUNRQ0FFRFFBZ0F5Z0NFQ0lFUVFGcUlRb2dCQzBBQVNFR0lBUXRBQUJCL3dGSEJFQWdBeUFLTmdJUVFRZ2hCQ0FHUVFoMElBSnFJUUlNQVFzZ0JrR1BBVTBFUUNBRElBbzJBaEFnQmtFSmRDQUNhaUVDUVFjaEJBd0JDeUFESUFNb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUVDeUFFUVFGcklRUWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUJsRklCa2dIeHNNQVFzZ0NpZ0NCQ0VaSUFrZ0NrRUlRUXdnQVNBR1NTSWZHMm9vQWdBMkFnQURRQUpBSUFRTkFDQURLQUlRSWdSQkFXb2hDaUFFTFFBQklRRWdCQzBBQUVIL0FVY0VRQ0FESUFvMkFoQkJDQ0VFSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBTWdDallDRUNBQlFRbDBJQUpxSVFKQkJ5RUVEQUVMSUFNZ0F5Z0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVFMSUFSQkFXc2hCQ0FDUVFGMElRSWdCa0VCZENJR1FZQ0FBa2tOQUFzZ0JpRUJJQmtnR1VVZ0h4c0xJUVlnRXlBa2FpQU9JQlVnQmlBUFFaREFBV290QUFBaUNrWWJOZ0lBSUFzZ0N5Z0NBRUdBZ0FGeU5nSUFJQWNnQnlnQ0JFR0FJSEkyQWdRZ0JpQUtjeUlHUVJ4MElBVnlJQU1vQW54QkFuUWdCMm9pQlNBRktBSUVRUVJ5TmdJRUlBVWdCU2dDREVFQmNqWUNEQ0FGSUFVb0FnZ2dCa0VTZEhKQkFuSTJBZ2hCZ01BQWNpRUZDeUFISUFWQi8vLy90bnR4TmdJQUN5QUhRUVJxSVFVZ0UwRUVhaUVUSUJKQkFXb2lFaUFXUncwQUN5QUhRUXhxSVFVZ0V5QWthaUVUSUJSQkJHb2lGQ0FES0FLQUFTSUdRWHh4U1EwQUN3d0JDMEVFSUFaQmZIRWlCU0FGUVFSTkcwRUJheUlGUVh4eFFRUnFJUlFnQnlBRlFRRjBRWGh4YWtFVWFpRUZDeUFESUFRMkFnZ2dBeUFCTmdJRUlBTWdBallDQUNBRElBazJBbWdnRmtVTkF5QUdJQlJORFFNRFFFRUFJUVFnRkNBREtBS0FBVWNFUUFOQUlBTWdCU0FUSUFRZ0ZteEJBblJxSUE0Z0JFRUJFR0VnQkVFQmFpSUVJQU1vQW9BQklCUnJTUTBBQ3dzZ0JTQUZLQUlBUWYvLy83WjdjVFlDQUNBVFFRUnFJUk1nQlVFRWFpRUZJQkZCQVdvaUVTQVdSdzBBQ3d3REN3SkFJQVpCQkVrTkFDQVdCRUFnQTBIa0FHb2hDQ0FEUWVBQWFpRU5JQlpCREd3aEpDQVdRUU4wSVJ4QkFDQU9heUVWSUFOQkhHb2hEQU5BUVFBaEVnTkFBa0FDUUFKL0lBVWlCeWdDQUNJRkJFQUNRQ0FGUVpDQWdBRnhEUUFnQVNBTUlBTW9BbXdnQlVIdkEzRnFMUUFBUVFKMGFpSUpLQUlBSWdvb0FnQWlCbXNoQVFKL0lBWWdBa0VRZGswRVFDQUNJQVpCRUhScklRSWdBVUdBZ0FKeEJFQWdDaWdDQkF3Q0N5QUtLQUlFSVFzZ0NTQUtRUXhCQ0NBQklBWkpJZzhiYWlnQ0FEWUNBQU5BQWtBZ0JBMEFJQU1vQWhBaUJFRUJhaUVLSUFRdEFBRWhCaUFFTFFBQVFmOEJSd1JBSUFNZ0NqWUNFRUVJSVFRZ0JrRUlkQ0FDYWlFQ0RBRUxJQVpCandGTkJFQWdBeUFLTmdJUUlBWkJDWFFnQW1vaEFrRUhJUVFNQVFzZ0F5QURLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQkFzZ0JFRUJheUVFSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUxSU0FMSUE4YkRBRUxJQW9vQWdRaEN5QUpJQXBCQ0VFTUlBRWdCa2tpRHh0cUtBSUFOZ0lBQTBBQ1FDQUVEUUFnQXlnQ0VDSUVRUUZxSVFvZ0JDMEFBU0VCSUFRdEFBQkIvd0ZIQkVBZ0F5QUtOZ0lRUVFnaEJDQUJRUWgwSUFKcUlRSU1BUXNnQVVHUEFVMEVRQ0FESUFvMkFoQWdBVUVKZENBQ2FpRUNRUWNoQkF3QkN5QURJQU1vQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRUN5QUVRUUZySVFRZ0FrRUJkQ0VDSUFaQkFYUWlCa0dBZ0FKSkRRQUxJQVloQVNBTElBdEZJQThiQzBVTkFDQUJJQXdnQnlnQ0JFRVJka0VFY1NBSFFRUnJJZ3NvQWdCQkUzWkJBWEVnQlVFT2RrRVFjU0FGUVJCMlFjQUFjU0FGUWFvQmNYSnljbklpR1VHUXZnRnFMUUFBUVFKMGFpSUpLQUlBSWdvb0FnQWlCbXNoQVFKL0lBWWdBa0VRZGswRVFDQUNJQVpCRUhScklRSWdBVUdBZ0FKeEJFQWdDaWdDQkF3Q0N5QUtLQUlFSVE4Z0NTQUtRUXhCQ0NBQklBWkpJaDhiYWlnQ0FEWUNBQU5BQWtBZ0JBMEFJQU1vQWhBaUJFRUJhaUVLSUFRdEFBRWhCaUFFTFFBQVFmOEJSd1JBSUFNZ0NqWUNFRUVJSVFRZ0JrRUlkQ0FDYWlFQ0RBRUxJQVpCandGTkJFQWdBeUFLTmdJUUlBWkJDWFFnQW1vaEFrRUhJUVFNQVFzZ0F5QURLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQkFzZ0JFRUJheUVFSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QVBSU0FQSUI4YkRBRUxJQW9vQWdRaER5QUpJQXBCQ0VFTUlBRWdCa2tpSHh0cUtBSUFOZ0lBQTBBQ1FDQUVEUUFnQXlnQ0VDSUVRUUZxSVFvZ0JDMEFBU0VCSUFRdEFBQkIvd0ZIQkVBZ0F5QUtOZ0lRUVFnaEJDQUJRUWgwSUFKcUlRSU1BUXNnQVVHUEFVMEVRQ0FESUFvMkFoQWdBVUVKZENBQ2FpRUNRUWNoQkF3QkN5QURJQU1vQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRUN5QUVRUUZySVFRZ0FrRUJkQ0VDSUFaQkFYUWlCa0dBZ0FKSkRRQUxJQVloQVNBUElBOUZJQjhiQ3lFS0lCTWdEaUFWSUFvZ0dVR1F3QUZxTFFBQUlnOUdHellDQUNBTElBc29BZ0JCSUhJMkFnQWdCeUFIS0FJRVFRaHlOZ0lFSUFkQmZpQURLQUo4YTBFQ2RHb2lCaUFHS0FJRVFZQ0FBbkkyQWdRZ0JpQUdLQUlBSUFvZ0QzTWlDa0VmZEhKQmdJQUVjallDQUNBR1FRUnJJZ1lnQmlnQ0FFR0FnQWh5TmdJQUlBVWdDa0VUZEhKQkVISWhCUXNDUUNBRlFZQ0JnQWh4RFFBZ0FTQU1JQU1vQW13Z0JVRURkaUlQUWU4RGNXb3RBQUJCQW5ScUlna29BZ0FpQ2lnQ0FDSUdheUVCQW44Z0JpQUNRUkIyVFFSQUlBSWdCa0VRZEdzaEFpQUJRWUNBQW5FRVFDQUtLQUlFREFJTElBb29BZ1FoQ3lBSklBcEJERUVJSUFFZ0Jra2lHUnRxS0FJQU5nSUFBMEFDUUNBRURRQWdBeWdDRUNJRVFRRnFJUW9nQkMwQUFTRUdJQVF0QUFCQi93RkhCRUFnQXlBS05nSVFRUWdoQkNBR1FRaDBJQUpxSVFJTUFRc2dCa0dQQVUwRVFDQURJQW8yQWhBZ0JrRUpkQ0FDYWlFQ1FRY2hCQXdCQ3lBRElBTW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VFQ3lBRVFRRnJJUVFnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBdEZJQXNnR1JzTUFRc2dDaWdDQkNFTElBa2dDa0VJUVF3Z0FTQUdTU0laRzJvb0FnQTJBZ0FEUUFKQUlBUU5BQ0FES0FJUUlnUkJBV29oQ2lBRUxRQUJJUUVnQkMwQUFFSC9BVWNFUUNBRElBbzJBaEJCQ0NFRUlBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQU1nQ2pZQ0VDQUJRUWwwSUFKcUlRSkJCeUVFREFFTElBTWdBeWdDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFRTElBUkJBV3NoQkNBQ1FRRjBJUUlnQmtFQmRDSUdRWUNBQWtrTkFBc2dCaUVCSUFzZ0MwVWdHUnNMUlEwQUlBRWdEQ0FIS0FJRVFSUjJRUVJ4SUFkQkJHc2lDeWdDQUVFV2RrRUJjU0FGUVE5MlFSQnhJQVZCRTNaQndBQnhJQTlCcWdGeGNuSnljaUlaUVpDK0FXb3RBQUJCQW5ScUlna29BZ0FpQ2lnQ0FDSUdheUVCQW44Z0JpQUNRUkIyVFFSQUlBSWdCa0VRZEdzaEFpQUJRWUNBQW5FRVFDQUtLQUlFREFJTElBb29BZ1FoRHlBSklBcEJERUVJSUFFZ0Jra2lIeHRxS0FJQU5nSUFBMEFDUUNBRURRQWdBeWdDRUNJRVFRRnFJUW9nQkMwQUFTRUdJQVF0QUFCQi93RkhCRUFnQXlBS05nSVFRUWdoQkNBR1FRaDBJQUpxSVFJTUFRc2dCa0dQQVUwRVFDQURJQW8yQWhBZ0JrRUpkQ0FDYWlFQ1FRY2hCQXdCQ3lBRElBTW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VFQ3lBRVFRRnJJUVFnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBOUZJQThnSHhzTUFRc2dDaWdDQkNFUElBa2dDa0VJUVF3Z0FTQUdTU0lmRzJvb0FnQTJBZ0FEUUFKQUlBUU5BQ0FES0FJUUlnUkJBV29oQ2lBRUxRQUJJUUVnQkMwQUFFSC9BVWNFUUNBRElBbzJBaEJCQ0NFRUlBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQU1nQ2pZQ0VDQUJRUWwwSUFKcUlRSkJCeUVFREFFTElBTWdBeWdDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFRTElBUkJBV3NoQkNBQ1FRRjBJUUlnQmtFQmRDSUdRWUNBQWtrTkFBc2dCaUVCSUE4Z0QwVWdIeHNMSVFZZ0V5QVdRUUowYWlBT0lCVWdCaUFaUVpEQUFXb3RBQUFpQ2tZYk5nSUFJQXNnQ3lnQ0FFR0FBbkkyQWdBZ0J5QUhLQUlFUWNBQWNqWUNCQ0FGSUFZZ0NuTkJGblJ5UVlBQmNpRUZDd0pBSUFWQmdJaUF3QUJ4RFFBZ0FTQU1JQU1vQW13Z0JVRUdkaUlQUWU4RGNXb3RBQUJCQW5ScUlna29BZ0FpQ2lnQ0FDSUdheUVCQW44Z0JpQUNRUkIyVFFSQUlBSWdCa0VRZEdzaEFpQUJRWUNBQW5FRVFDQUtLQUlFREFJTElBb29BZ1FoQ3lBSklBcEJERUVJSUFFZ0Jra2lHUnRxS0FJQU5nSUFBMEFDUUNBRURRQWdBeWdDRUNJRVFRRnFJUW9nQkMwQUFTRUdJQVF0QUFCQi93RkhCRUFnQXlBS05nSVFRUWdoQkNBR1FRaDBJQUpxSVFJTUFRc2dCa0dQQVUwRVFDQURJQW8yQWhBZ0JrRUpkQ0FDYWlFQ1FRY2hCQXdCQ3lBRElBTW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VFQ3lBRVFRRnJJUVFnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBdEZJQXNnR1JzTUFRc2dDaWdDQkNFTElBa2dDa0VJUVF3Z0FTQUdTU0laRzJvb0FnQTJBZ0FEUUFKQUlBUU5BQ0FES0FJUUlnUkJBV29oQ2lBRUxRQUJJUUVnQkMwQUFFSC9BVWNFUUNBRElBbzJBaEJCQ0NFRUlBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQU1nQ2pZQ0VDQUJRUWwwSUFKcUlRSkJCeUVFREFFTElBTWdBeWdDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFRTElBUkJBV3NoQkNBQ1FRRjBJUUlnQmtFQmRDSUdRWUNBQWtrTkFBc2dCaUVCSUFzZ0MwVWdHUnNMUlEwQUlBRWdEQ0FIS0FJRVFSZDJRUVJ4SUFkQkJHc2lDeWdDQUVFWmRrRUJjU0FGUVJKMlFSQnhJQVZCRm5aQndBQnhJQTlCcWdGeGNuSnljaUlaUVpDK0FXb3RBQUJCQW5ScUlna29BZ0FpQ2lnQ0FDSUdheUVCQW44Z0JpQUNRUkIyVFFSQUlBSWdCa0VRZEdzaEFpQUJRWUNBQW5FRVFDQUtLQUlFREFJTElBb29BZ1FoRHlBSklBcEJERUVJSUFFZ0Jra2lIeHRxS0FJQU5nSUFBMEFDUUNBRURRQWdBeWdDRUNJRVFRRnFJUW9nQkMwQUFTRUdJQVF0QUFCQi93RkhCRUFnQXlBS05nSVFRUWdoQkNBR1FRaDBJQUpxSVFJTUFRc2dCa0dQQVUwRVFDQURJQW8yQWhBZ0JrRUpkQ0FDYWlFQ1FRY2hCQXdCQ3lBRElBTW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VFQ3lBRVFRRnJJUVFnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBOUZJQThnSHhzTUFRc2dDaWdDQkNFUElBa2dDa0VJUVF3Z0FTQUdTU0lmRzJvb0FnQTJBZ0FEUUFKQUlBUU5BQ0FES0FJUUlnUkJBV29oQ2lBRUxRQUJJUUVnQkMwQUFFSC9BVWNFUUNBRElBbzJBaEJCQ0NFRUlBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQU1nQ2pZQ0VDQUJRUWwwSUFKcUlRSkJCeUVFREFFTElBTWdBeWdDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFRTElBUkJBV3NoQkNBQ1FRRjBJUUlnQmtFQmRDSUdRWUNBQWtrTkFBc2dCaUVCSUE4Z0QwVWdIeHNMSVFZZ0V5QWNhaUFPSUJVZ0JpQVpRWkRBQVdvdEFBQWlDa1liTmdJQUlBc2dDeWdDQUVHQUVISTJBZ0FnQnlBSEtBSUVRWUFFY2pZQ0JDQUZJQVlnQ25OQkdYUnlRWUFJY2lFRkN5QUZRWURBZ0lBRWNRMENJQUVnRENBREtBSnNJQVZCQ1hZaUQwSHZBM0ZxTFFBQVFRSjBhaUlKS0FJQUlnb29BZ0FpQm1zaEFRSi9JQVlnQWtFUWRrMEVRQ0FDSUFaQkVIUnJJUUlnQVVHQWdBSnhCRUFnQ2lnQ0JBd0NDeUFLS0FJRUlRc2dDU0FLUVF4QkNDQUJJQVpKSWhrYmFpZ0NBRFlDQUFOQUFrQWdCQTBBSUFNb0FoQWlCRUVCYWlFS0lBUXRBQUVoQmlBRUxRQUFRZjhCUndSQUlBTWdDallDRUVFSUlRUWdCa0VJZENBQ2FpRUNEQUVMSUFaQmp3Rk5CRUFnQXlBS05nSVFJQVpCQ1hRZ0Ftb2hBa0VISVFRTUFRc2dBeUFES0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJBc2dCRUVCYXlFRUlBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFMUlNBTElCa2JEQUVMSUFvb0FnUWhDeUFKSUFwQkNFRU1JQUVnQmtraUdSdHFLQUlBTmdJQUEwQUNRQ0FFRFFBZ0F5Z0NFQ0lFUVFGcUlRb2dCQzBBQVNFQklBUXRBQUJCL3dGSEJFQWdBeUFLTmdJUVFRZ2hCQ0FCUVFoMElBSnFJUUlNQVFzZ0FVR1BBVTBFUUNBRElBbzJBaEFnQVVFSmRDQUNhaUVDUVFjaEJBd0JDeUFESUFNb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUVDeUFFUVFGcklRUWdBa0VCZENFQ0lBWkJBWFFpQmtHQWdBSkpEUUFMSUFZaEFTQUxJQXRGSUJrYkMwVU5BaUFCSUF3Z0J5Z0NCRUVhZGtFRWNTQUhRUVJySWdzb0FnQkJISFpCQVhFZ0JVRVZka0VRY1NBRlFSbDJRY0FBY1NBUFFhb0JjWEp5Y25JaUQwR1F2Z0ZxTFFBQVFRSjBhaUlKS0FJQUlnb29BZ0FpQm1zTUFRc2dBU0FOS0FJQUlnWW9BZ0FpQldzaEFRSi9JQVVnQWtFUWRrMEVRQ0FDSUFWQkVIUnJJUUlnQVVHQWdBSnhCRUFnQmlnQ0JBd0NDeUFHS0FJRUlRa2dEU0FHUVF4QkNDQUJJQVZKSWdvYmFpZ0NBRFlDQUFOQUFrQWdCQTBBSUFNb0FoQWlCa0VCYWlFRUlBWXRBQUVoQlNBR0xRQUFRZjhCUndSQUlBTWdCRFlDRUVFSUlRUWdCVUVJZENBQ2FpRUNEQUVMSUFWQmp3Rk5CRUFnQXlBRU5nSVFJQVZCQ1hRZ0Ftb2hBa0VISVFRTUFRc2dBeUFES0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJBc2dCRUVCYXlFRUlBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFKUlNBSklBb2JEQUVMSUFZb0FnUWhDU0FOSUFaQkNFRU1JQUVnQlVraUNodHFLQUlBTmdJQUEwQUNRQ0FFRFFBZ0F5Z0NFQ0lHUVFGcUlRUWdCaTBBQVNFQklBWXRBQUJCL3dGSEJFQWdBeUFFTmdJUVFRZ2hCQ0FCUVFoMElBSnFJUUlNQVFzZ0FVR1BBVTBFUUNBRElBUTJBaEFnQVVFSmRDQUNhaUVDUVFjaEJBd0JDeUFESUFNb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUVDeUFFUVFGcklRUWdBa0VCZENFQ0lBVkJBWFFpQlVHQWdBSkpEUUFMSUFVaEFTQUpJQWxGSUFvYkMwVUVRQ0FOSVFrTUF3c2dBU0FJS0FJQUlnWW9BZ0FpQldzaEFRSi9JQVVnQWtFUWRrMEVRQ0FDSUFWQkVIUnJJUUlnQVVHQWdBSnhCRUFnQmlnQ0JBd0NDeUFHS0FJRUlRa2dDQ0FHUVF4QkNDQUJJQVZKSWdzYmFpZ0NBQ0lHTmdJQUEwQUNRQ0FFRFFBZ0F5Z0NFQ0lFUVFGcUlRb2dCQzBBQVNFRklBUXRBQUJCL3dGSEJFQWdBeUFLTmdJUVFRZ2hCQ0FGUVFoMElBSnFJUUlNQVFzZ0JVR1BBVTBFUUNBRElBbzJBaEFnQlVFSmRDQUNhaUVDUVFjaEJBd0JDeUFESUFNb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUVDeUFFUVFGcklRUWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFsRklBa2dDeHNNQVFzZ0JpZ0NCQ0VKSUFnZ0JrRUlRUXdnQVNBRlNTSUxHMm9vQWdBaUJqWUNBQU5BQWtBZ0JBMEFJQU1vQWhBaUJFRUJhaUVLSUFRdEFBRWhBU0FFTFFBQVFmOEJSd1JBSUFNZ0NqWUNFRUVJSVFRZ0FVRUlkQ0FDYWlFQ0RBRUxJQUZCandGTkJFQWdBeUFLTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVFNQVFzZ0F5QURLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQkFzZ0JFRUJheUVFSUFKQkFYUWhBaUFGUVFGMElnVkJnSUFDU1EwQUN5QUZJUUVnQ1NBSlJTQUxHd3NoQ2lBQklBWW9BZ0FpQldzaEFRSi9JQVVnQWtFUWRrMEVRQ0FDSUFWQkVIUnJJUUlnQVVHQWdBSnhCRUFnQmlnQ0JBd0NDeUFHS0FJRUlRa2dDQ0FHUVF4QkNDQUJJQVZKSWdzYmFpZ0NBRFlDQUFOQUFrQWdCQTBBSUFNb0FoQWlCa0VCYWlFRUlBWXRBQUVoQlNBR0xRQUFRZjhCUndSQUlBTWdCRFlDRUVFSUlRUWdCVUVJZENBQ2FpRUNEQUVMSUFWQmp3Rk5CRUFnQXlBRU5nSVFJQVZCQ1hRZ0Ftb2hBa0VISVFRTUFRc2dBeUFES0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJBc2dCRUVCYXlFRUlBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFKUlNBSklBc2JEQUVMSUFZb0FnUWhDU0FJSUFaQkNFRU1JQUVnQlVraUN4dHFLQUlBTmdJQUEwQUNRQ0FFRFFBZ0F5Z0NFQ0lHUVFGcUlRUWdCaTBBQVNFQklBWXRBQUJCL3dGSEJFQWdBeUFFTmdJUVFRZ2hCQ0FCUVFoMElBSnFJUUlNQVFzZ0FVR1BBVTBFUUNBRElBUTJBaEFnQVVFSmRDQUNhaUVDUVFjaEJBd0JDeUFESUFNb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUVDeUFFUVFGcklRUWdBa0VCZENFQ0lBVkJBWFFpQlVHQWdBSkpEUUFMSUFVaEFTQUpJQWxGSUFzYkN5RUdRUUFoQlNBSUlRa0NRQUpBQWtBQ2Z3SkFBa0FnQmlBS1FRRjBjZzRFQUFFREJRY0xJQUVnRENBSEtBSUVRUkYyUVFSeElBZEJCR3NpQ1NnQ0FFRVRka0VCY1hJaUQwR1F2Z0ZxTFFBQVFRSjBhaUlLS0FJQUlnWW9BZ0FpQldzaEFRSi9JQVVnQWtFUWRrMEVRQ0FDSUFWQkVIUnJJUUlnQVVHQWdBSnhCRUFnQmlnQ0JBd0NDeUFHS0FJRUlRc2dDaUFHUVF4QkNDQUJJQVZKSWdvYmFpZ0NBRFlDQUFOQUFrQWdCQTBBSUFNb0FoQWlCa0VCYWlFRUlBWXRBQUVoQlNBR0xRQUFRZjhCUndSQUlBTWdCRFlDRUVFSUlRUWdCVUVJZENBQ2FpRUNEQUVMSUFWQmp3Rk5CRUFnQXlBRU5nSVFJQVZCQ1hRZ0Ftb2hBa0VISVFRTUFRc2dBeUFES0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJBc2dCRUVCYXlFRUlBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFMUlNBTElBb2JEQUVMSUFZb0FnUWhDeUFLSUFaQkNFRU1JQUVnQlVraUNodHFLQUlBTmdJQUEwQUNRQ0FFRFFBZ0F5Z0NFQ0lHUVFGcUlRUWdCaTBBQVNFQklBWXRBQUJCL3dGSEJFQWdBeUFFTmdJUVFRZ2hCQ0FCUVFoMElBSnFJUUlNQVFzZ0FVR1BBVTBFUUNBRElBUTJBaEFnQVVFSmRDQUNhaUVDUVFjaEJBd0JDeUFESUFNb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUVDeUFFUVFGcklRUWdBa0VCZENFQ0lBVkJBWFFpQlVHQWdBSkpEUUFMSUFVaEFTQUxJQXRGSUFvYkN5RUdJQk1nRGlBVklBWWdEMEdRd0FGcUxRQUFJZ3BHR3pZQ0FDQUpJQWtvQWdCQklISTJBZ0FnQnlBSEtBSUVRUWh5TmdJRUlBZEJmaUFES0FKOGEwRUNkR29pQlNBRktBSUVRWUNBQW5JMkFnUWdCU0FGS0FJQUlBWWdDbk1pQmtFZmRISkJnSUFFY2pZQ0FDQUZRUVJySWdVZ0JTZ0NBRUdBZ0FoeU5nSUFJQVpCRTNRZ0FTQU1JQU1vQW13dEFBSkJBblJxSWdrb0FnQWlCaWdDQUNJRmF5RUJBbjhnQlNBQ1FSQjJUUVJBSUFJZ0JVRVFkR3NoQWlBQlFZQ0FBbkVFUUNBR0tBSUVEQUlMSUFZb0FnUWhDaUFKSUFaQkRFRUlJQUVnQlVraUR4dHFLQUlBTmdJQUEwQUNRQ0FFRFFBZ0F5Z0NFQ0lHUVFGcUlRa2dCaTBBQVNFRklBWXRBQUJCL3dGSEJFQWdBeUFKTmdJUVFRZ2hCQ0FGUVFoMElBSnFJUUlNQVFzZ0JVR1BBVTBFUUNBRElBazJBaEFnQlVFSmRDQUNhaUVDUVFjaEJBd0JDeUFESUFNb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUVDeUFFUVFGcklRUWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFwRklBb2dEeHNNQVFzZ0JpZ0NCQ0VLSUFrZ0JrRUlRUXdnQVNBRlNTSVBHMm9vQWdBMkFnQURRQUpBSUFRTkFDQURLQUlRSWdaQkFXb2hDU0FHTFFBQklRRWdCaTBBQUVIL0FVY0VRQ0FESUFrMkFoQkJDQ0VFSUFGQkNIUWdBbW9oQWd3QkN5QUJRWThCVFFSQUlBTWdDVFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUVEQUVMSUFNZ0F5Z0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVFMSUFSQkFXc2hCQ0FDUVFGMElRSWdCVUVCZENJRlFZQ0FBa2tOQUFzZ0JTRUJJQW9nQ2tVZ0R4c0xJUVpCRUhJaUJTQUdSUTBCR2dzZ0FTQU1JQWNvQWdSQkZIWkJCSEVnQjBFRWF5SUtLQUlBUVJaMlFRRnhJQVZCRDNaQkVIRWdCVUVUZGtIQUFIRWdCVUVEZGtHcUFYRnljbkp5SWhsQmtMNEJhaTBBQUVFQ2RHb2lDeWdDQUNJSktBSUFJZ1pySVFFQ2Z5QUdJQUpCRUhaTkJFQWdBaUFHUVJCMGF5RUNJQUZCZ0lBQ2NRUkFJQWtvQWdRTUFnc2dDU2dDQkNFUElBc2dDVUVNUVFnZ0FTQUdTU0lMRzJvb0FnQTJBZ0FEUUFKQUlBUU5BQ0FES0FJUUlnbEJBV29oQkNBSkxRQUJJUVlnQ1MwQUFFSC9BVWNFUUNBRElBUTJBaEJCQ0NFRUlBWkJDSFFnQW1vaEFnd0JDeUFHUVk4QlRRUkFJQU1nQkRZQ0VDQUdRUWwwSUFKcUlRSkJCeUVFREFFTElBTWdBeWdDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFRTElBUkJBV3NoQkNBQ1FRRjBJUUlnQVVFQmRDSUJRWUNBQWtrTkFBc2dEMFVnRHlBTEd3d0JDeUFKS0FJRUlROGdDeUFKUVFoQkRDQUJJQVpKSWdzYmFpZ0NBRFlDQUFOQUFrQWdCQTBBSUFNb0FoQWlDVUVCYWlFRUlBa3RBQUVoQVNBSkxRQUFRZjhCUndSQUlBTWdCRFlDRUVFSUlRUWdBVUVJZENBQ2FpRUNEQUVMSUFGQmp3Rk5CRUFnQXlBRU5nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFRTUFRc2dBeUFES0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJBc2dCRUVCYXlFRUlBSkJBWFFoQWlBR1FRRjBJZ1pCZ0lBQ1NRMEFDeUFHSVFFZ0R5QVBSU0FMR3dzaEJpQVRJQlpCQW5ScUlBNGdGU0FHSUJsQmtNQUJhaTBBQUNJSlJoczJBZ0FnQ2lBS0tBSUFRWUFDY2pZQ0FDQUhJQWNvQWdSQndBQnlOZ0lFSUFVZ0JpQUpjMEVXZEhKQmdBRnlDeUVGSUFFZ0RDQURLQUpzSUFWQkJuWkI3d054YWkwQUFFRUNkR29pQ2lnQ0FDSUpLQUlBSWdacklRRUNmeUFHSUFKQkVIWk5CRUFnQWlBR1FSQjBheUVDSUFGQmdJQUNjUVJBSUFrb0FnUU1BZ3NnQ1NnQ0JDRUxJQW9nQ1VFTVFRZ2dBU0FHU1NJS0cyb29BZ0EyQWdBRFFBSkFJQVFOQUNBREtBSVFJZ2xCQVdvaEJDQUpMUUFCSVFZZ0NTMEFBRUgvQVVjRVFDQURJQVEyQWhCQkNDRUVJQVpCQ0hRZ0Ftb2hBZ3dCQ3lBR1FZOEJUUVJBSUFNZ0JEWUNFQ0FHUVFsMElBSnFJUUpCQnlFRURBRUxJQU1nQXlnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRUUxJQVJCQVdzaEJDQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnQzBVZ0N5QUtHd3dCQ3lBSktBSUVJUXNnQ2lBSlFRaEJEQ0FCSUFaSklnb2JhaWdDQURZQ0FBTkFBa0FnQkEwQUlBTW9BaEFpQ1VFQmFpRUVJQWt0QUFFaEFTQUpMUUFBUWY4QlJ3UkFJQU1nQkRZQ0VFRUlJUVFnQVVFSWRDQUNhaUVDREFFTElBRkJqd0ZOQkVBZ0F5QUVOZ0lRSUFGQkNYUWdBbW9oQWtFSElRUU1BUXNnQXlBREtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCQXNnQkVFQmF5RUVJQUpCQVhRaEFpQUdRUUYwSWdaQmdJQUNTUTBBQ3lBR0lRRWdDeUFMUlNBS0d3dEZEUUVMSUFFZ0RDQUhLQUlFUVJkMlFRUnhJQWRCQkdzaUNpZ0NBRUVaZGtFQmNTQUZRUkoyUVJCeElBVkJGblpCd0FCeElBVkJCblpCcWdGeGNuSnljaUlaUVpDK0FXb3RBQUJCQW5ScUlnc29BZ0FpQ1NnQ0FDSUdheUVCQW44Z0JpQUNRUkIyVFFSQUlBSWdCa0VRZEdzaEFpQUJRWUNBQW5FRVFDQUpLQUlFREFJTElBa29BZ1FoRHlBTElBbEJERUVJSUFFZ0Jra2lDeHRxS0FJQU5nSUFBMEFDUUNBRURRQWdBeWdDRUNJSlFRRnFJUVFnQ1MwQUFTRUdJQWt0QUFCQi93RkhCRUFnQXlBRU5nSVFRUWdoQkNBR1FRaDBJQUpxSVFJTUFRc2dCa0dQQVUwRVFDQURJQVEyQWhBZ0JrRUpkQ0FDYWlFQ1FRY2hCQXdCQ3lBRElBTW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VFQ3lBRVFRRnJJUVFnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBOUZJQThnQ3hzTUFRc2dDU2dDQkNFUElBc2dDVUVJUVF3Z0FTQUdTU0lMRzJvb0FnQTJBZ0FEUUFKQUlBUU5BQ0FES0FJUUlnbEJBV29oQkNBSkxRQUJJUUVnQ1MwQUFFSC9BVWNFUUNBRElBUTJBaEJCQ0NFRUlBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQU1nQkRZQ0VDQUJRUWwwSUFKcUlRSkJCeUVFREFFTElBTWdBeWdDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFRTElBUkJBV3NoQkNBQ1FRRjBJUUlnQmtFQmRDSUdRWUNBQWtrTkFBc2dCaUVCSUE4Z0QwVWdDeHNMSVFZZ0V5QWNhaUFPSUJVZ0JpQVpRWkRBQVdvdEFBQWlDVVliTmdJQUlBb2dDaWdDQUVHQUVISTJBZ0FnQnlBSEtBSUVRWUFFY2pZQ0JDQUZJQVlnQ1hOQkdYUnlRWUFJY2lFRkN5QUJJQXdnQXlnQ2JDQUZRUWwyUWU4RGNXb3RBQUJCQW5ScUlna29BZ0FpQ2lnQ0FDSUdheUVCQW44Z0JpQUNRUkIyVFFSQUlBSWdCa0VRZEdzaEFpQUJRWUNBQW5FRVFDQUtLQUlFREFJTElBb29BZ1FoQ3lBSklBcEJERUVJSUFFZ0Jra2lEeHRxS0FJQU5nSUFBMEFDUUNBRURRQWdBeWdDRUNJRVFRRnFJUW9nQkMwQUFTRUdJQVF0QUFCQi93RkhCRUFnQXlBS05nSVFRUWdoQkNBR1FRaDBJQUpxSVFJTUFRc2dCa0dQQVUwRVFDQURJQW8yQWhBZ0JrRUpkQ0FDYWlFQ1FRY2hCQXdCQ3lBRElBTW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VFQ3lBRVFRRnJJUVFnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBdEZJQXNnRHhzTUFRc2dDaWdDQkNFTElBa2dDa0VJUVF3Z0FTQUdTU0lQRzJvb0FnQTJBZ0FEUUFKQUlBUU5BQ0FES0FJUUlnUkJBV29oQ2lBRUxRQUJJUUVnQkMwQUFFSC9BVWNFUUNBRElBbzJBaEJCQ0NFRUlBRkJDSFFnQW1vaEFnd0JDeUFCUVk4QlRRUkFJQU1nQ2pZQ0VDQUJRUWwwSUFKcUlRSkJCeUVFREFFTElBTWdBeWdDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFRTElBUkJBV3NoQkNBQ1FRRjBJUUlnQmtFQmRDSUdRWUNBQWtrTkFBc2dCaUVCSUFzZ0MwVWdEeHNMUlEwQ0N5QUJJQXdnQnlnQ0JFRWFka0VFY1NBSFFRUnJJZ3NvQWdCQkhIWkJBWEVnQlVFVmRrRVFjU0FGUVJsMlFjQUFjU0FGUVFsMlFhb0JjWEp5Y25JaUQwR1F2Z0ZxTFFBQVFRSjBhaUlKS0FJQUlnb29BZ0FpQm1zTElRRUNmeUFHSUFKQkVIWk5CRUFnQWlBR1FSQjBheUVDSUFGQmdJQUNjUVJBSUFvb0FnUU1BZ3NnQ2lnQ0JDRVpJQWtnQ2tFTVFRZ2dBU0FHU1NJZkcyb29BZ0EyQWdBRFFBSkFJQVFOQUNBREtBSVFJZ1JCQVdvaENpQUVMUUFCSVFZZ0JDMEFBRUgvQVVjRVFDQURJQW8yQWhCQkNDRUVJQVpCQ0hRZ0Ftb2hBZ3dCQ3lBR1FZOEJUUVJBSUFNZ0NqWUNFQ0FHUVFsMElBSnFJUUpCQnlFRURBRUxJQU1nQXlnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRUUxJQVJCQVdzaEJDQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnR1VVZ0dTQWZHd3dCQ3lBS0tBSUVJUmtnQ1NBS1FRaEJEQ0FCSUFaSkloOGJhaWdDQURZQ0FBTkFBa0FnQkEwQUlBTW9BaEFpQkVFQmFpRUtJQVF0QUFFaEFTQUVMUUFBUWY4QlJ3UkFJQU1nQ2pZQ0VFRUlJUVFnQVVFSWRDQUNhaUVDREFFTElBRkJqd0ZOQkVBZ0F5QUtOZ0lRSUFGQkNYUWdBbW9oQWtFSElRUU1BUXNnQXlBREtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCQXNnQkVFQmF5RUVJQUpCQVhRaEFpQUdRUUYwSWdaQmdJQUNTUTBBQ3lBR0lRRWdHU0FaUlNBZkd3c2hCaUFUSUNScUlBNGdGU0FHSUE5QmtNQUJhaTBBQUNJS1JoczJBZ0FnQ3lBTEtBSUFRWUNBQVhJMkFnQWdCeUFIS0FJRVFZQWdjallDQkNBR0lBcHpJZ1pCSEhRZ0JYSWdBeWdDZkVFQ2RDQUhhaUlGSUFVb0FnUkJCSEkyQWdRZ0JTQUZLQUlNUVFGeU5nSU1JQVVnQlNnQ0NDQUdRUkowY2tFQ2NqWUNDRUdBd0FCeUlRVUxJQWNnQlVILy8vKzJlM0UyQWdBTElBZEJCR29oQlNBVFFRUnFJUk1nRWtFQmFpSVNJQlpIRFFBTElBZEJER29oQlNBVElDUnFJUk1nRkVFRWFpSVVJQU1vQW9BQklnWkJmSEZKRFFBTERBRUxRUVFnQmtGOGNTSUZJQVZCQkUwYlFRRnJJZ1ZCZkhGQkJHb2hGQ0FISUFWQkFYUkJlSEZxUVJScUlRVUxJQU1nQkRZQ0NDQURJQUUyQWdRZ0F5QUNOZ0lBSUFNZ0NUWUNhQ0FXUlEwQ0lBWWdGRTBOQWdOQVFRQWhCQ0FVSUFNb0FvQUJSd1JBQTBBZ0F5QUZJQk1nQkNBV2JFRUNkR29nRGlBRVFRQVFZU0FFUVFGcUlnUWdBeWdDZ0FFZ0ZHdEpEUUFMQ3lBRklBVW9BZ0JCLy8vL3RudHhOZ0lBSUJOQkJHb2hFeUFGUVFScUlRVWdFVUVCYWlJUklCWkhEUUFMREFJTEEwQkJBQ0VWQTBBZ0JTRVRBa0FDUUFKL0lBWWlEU2dDQUNJR1JRUkFJQUVnQ0NnQ0FDSUZLQUlBSWdacklRRUNmeUFHSUFKQkVIWkxCRUFnQlNnQ0JDRUpJQWdnQlVFSVFRd2dBU0FHU1NJS0cyb29BZ0EyQWdBRFFBSkFJQVFOQUNBREtBSVFJZ1ZCQVdvaEJDQUZMUUFCSVFFZ0JTMEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBTWdBeWdDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFRTUFnc2dBeUFFTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVFNQVFzZ0F5QUVOZ0lRUVFnaEJDQUJRUWgwSUFKcUlRSUxJQVJCQVdzaEJDQUNRUUYwSVFJZ0JrRUJkQ0lHUVlDQUFra05BQXNnQmlFQklBa2dDVVVnQ2hzTUFRc2dBaUFHUVJCMGF5RUNJQUZCZ0lBQ2NVVUVRQ0FGS0FJRUlRa2dDQ0FGUVF4QkNDQUJJQVpKSWdvYmFpZ0NBRFlDQUFOQUFrQWdCQTBBSUFNb0FoQWlCa0VCYWlFRUlBWXRBQUVoQlNBR0xRQUFRZjhCUmdSQUlBVkJrQUZQQkVBZ0F5QURLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQkF3Q0N5QURJQVEyQWhBZ0JVRUpkQ0FDYWlFQ1FRY2hCQXdCQ3lBRElBUTJBaEJCQ0NFRUlBVkJDSFFnQW1vaEFnc2dCRUVCYXlFRUlBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFKUlNBSklBb2JEQUVMSUFVb0FnUUxSUVJBSUFnaENRd0VDeUFCSUFjb0FnQWlCU2dDQUNJR2F5RUJBbjhnQmlBQ1FSQjJTd1JBSUFVb0FnUWhDU0FISUFWQkNFRU1JQUVnQmtraUN4dHFLQUlBSWdVMkFnQURRQUpBSUFRTkFDQURLQUlRSWdSQkFXb2hDaUFFTFFBQklRRWdCQzBBQUVIL0FVWUVRQ0FCUVpBQlR3UkFJQU1nQXlnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRUU1BZ3NnQXlBS05nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFRTUFRc2dBeUFLTmdJUVFRZ2hCQ0FCUVFoMElBSnFJUUlMSUFSQkFXc2hCQ0FDUVFGMElRSWdCa0VCZENJR1FZQ0FBa2tOQUFzZ0JpRUJJQWtnQ1VVZ0N4c01BUXNnQWlBR1FSQjBheUVDSUFGQmdJQUNjVVVFUUNBRktBSUVJUWtnQnlBRlFReEJDQ0FCSUFaSklnc2JhaWdDQUNJRk5nSUFBMEFDUUNBRURRQWdBeWdDRUNJRVFRRnFJUW9nQkMwQUFTRUdJQVF0QUFCQi93RkdCRUFnQmtHUUFVOEVRQ0FESUFNb0FneEJBV28yQWd3Z0FrR0EvZ05xSVFKQkNDRUVEQUlMSUFNZ0NqWUNFQ0FHUVFsMElBSnFJUUpCQnlFRURBRUxJQU1nQ2pZQ0VFRUlJUVFnQmtFSWRDQUNhaUVDQ3lBRVFRRnJJUVFnQWtFQmRDRUNJQUZCQVhRaUFVR0FnQUpKRFFBTElBbEZJQWtnQ3hzTUFRc2dCU2dDQkFzaENpQUJJQVVvQWdBaUJtc2hBUUovSUFZZ0FrRVFka3NFUUNBRktBSUVJUWtnQnlBRlFRaEJEQ0FCSUFaSklnc2JhaWdDQURZQ0FBTkFBa0FnQkEwQUlBTW9BaEFpQlVFQmFpRUVJQVV0QUFFaEFTQUZMUUFBUWY4QlJnUkFJQUZCa0FGUEJFQWdBeUFES0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJBd0NDeUFESUFRMkFoQWdBVUVKZENBQ2FpRUNRUWNoQkF3QkN5QURJQVEyQWhCQkNDRUVJQUZCQ0hRZ0Ftb2hBZ3NnQkVFQmF5RUVJQUpCQVhRaEFpQUdRUUYwSWdaQmdJQUNTUTBBQ3lBR0lRRWdDU0FKUlNBTEd3d0JDeUFDSUFaQkVIUnJJUUlnQVVHQWdBSnhSUVJBSUFVb0FnUWhDU0FISUFWQkRFRUlJQUVnQmtraUN4dHFLQUlBTmdJQUEwQUNRQ0FFRFFBZ0F5Z0NFQ0lHUVFGcUlRUWdCaTBBQVNFRklBWXRBQUJCL3dGR0JFQWdCVUdRQVU4RVFDQURJQU1vQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRURBSUxJQU1nQkRZQ0VDQUZRUWwwSUFKcUlRSkJCeUVFREFFTElBTWdCRFlDRUVFSUlRUWdCVUVJZENBQ2FpRUNDeUFFUVFGcklRUWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUFsRklBa2dDeHNNQVFzZ0JTZ0NCQXNoQlVFQUlRWWdCeUVKQWtBQ1FBSkFBbjhDUUFKQUlBVWdDa0VCZEhJT0JBQUJBd1VJQ3lBQklCWWdEU2dDQkVFUmRrRUVjU0FOUVFScklna29BZ0JCRTNaQkFYRnlJaEZCa0w0QmFpMEFBRUVDZEdvaUNpZ0NBQ0lGS0FJQUlnWnJJUUVDZnlBR0lBSkJFSFpMQkVBZ0JTZ0NCQ0VMSUFvZ0JVRUlRUXdnQVNBR1NTSUtHMm9vQWdBMkFnQURRQUpBSUFRTkFDQURLQUlRSWdWQkFXb2hCQ0FGTFFBQklRRWdCUzBBQUVIL0FVWUVRQ0FCUVpBQlR3UkFJQU1nQXlnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRUU1BZ3NnQXlBRU5nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFRTUFRc2dBeUFFTmdJUVFRZ2hCQ0FCUVFoMElBSnFJUUlMSUFSQkFXc2hCQ0FDUVFGMElRSWdCa0VCZENJR1FZQ0FBa2tOQUFzZ0JpRUJJQXNnQzBVZ0Noc01BUXNnQWlBR1FSQjBheUVDSUFGQmdJQUNjVVVFUUNBRktBSUVJUXNnQ2lBRlFReEJDQ0FCSUFaSklnb2JhaWdDQURZQ0FBTkFBa0FnQkEwQUlBTW9BaEFpQmtFQmFpRUVJQVl0QUFFaEJTQUdMUUFBUWY4QlJnUkFJQVZCa0FGUEJFQWdBeUFES0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJBd0NDeUFESUFRMkFoQWdCVUVKZENBQ2FpRUNRUWNoQkF3QkN5QURJQVEyQWhCQkNDRUVJQVZCQ0hRZ0Ftb2hBZ3NnQkVFQmF5RUVJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBTFJTQUxJQW9iREFFTElBVW9BZ1FMSVFVZ0V5QU9JQXdnQlNBUlFaREFBV290QUFBaUJrWWJOZ0lBSUFrZ0NTZ0NBRUVnY2pZQ0FDQU5JQTBvQWdSQkNISTJBZ1FnQlNBR2MwRVRkQ0FCSUJZZ0F5Z0NiQzBBQWtFQ2RHb2lDU2dDQUNJRktBSUFJZ1pySVFFQ2Z5QUdJQUpCRUhaTEJFQWdCU2dDQkNFS0lBa2dCVUVJUVF3Z0FTQUdTU0lSRzJvb0FnQTJBZ0FEUUFKQUlBUU5BQ0FES0FJUUlnVkJBV29oQ1NBRkxRQUJJUUVnQlMwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFNZ0F5Z0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVFNQWdzZ0F5QUpOZ0lRSUFGQkNYUWdBbW9oQWtFSElRUU1BUXNnQXlBSk5nSVFRUWdoQkNBQlFRaDBJQUpxSVFJTElBUkJBV3NoQkNBQ1FRRjBJUUlnQmtFQmRDSUdRWUNBQWtrTkFBc2dCaUVCSUFvZ0NrVWdFUnNNQVFzZ0FpQUdRUkIwYXlFQ0lBRkJnSUFDY1VVRVFDQUZLQUlFSVFvZ0NTQUZRUXhCQ0NBQklBWkpJaEViYWlnQ0FEWUNBQU5BQWtBZ0JBMEFJQU1vQWhBaUJrRUJhaUVKSUFZdEFBRWhCU0FHTFFBQVFmOEJSZ1JBSUFWQmtBRlBCRUFnQXlBREtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCQXdDQ3lBRElBazJBaEFnQlVFSmRDQUNhaUVDUVFjaEJBd0JDeUFESUFrMkFoQkJDQ0VFSUFWQkNIUWdBbW9oQWdzZ0JFRUJheUVFSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUtSU0FLSUJFYkRBRUxJQVVvQWdRTElRVkJFSElpQmlBRlJRMEJHZ3NnQVNBV0lBMG9BZ1JCRkhaQkJIRWdEVUVFYXlJS0tBSUFRUloyUVFGeElBWkJEM1pCRUhFZ0JrRVRka0hBQUhFZ0JrRURka0dxQVhGeWNuSnlJaEpCa0w0QmFpMEFBRUVDZEdvaUN5Z0NBQ0lKS0FJQUlnVnJJUUVDZnlBRklBSkJFSFpMQkVBZ0NTZ0NCQ0VSSUFzZ0NVRUlRUXdnQVNBRlNTSUxHMm9vQWdBMkFnQURRQUpBSUFRTkFDQURLQUlRSWdsQkFXb2hCQ0FKTFFBQklRRWdDUzBBQUVIL0FVWUVRQ0FCUVpBQlR3UkFJQU1nQXlnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRUU1BZ3NnQXlBRU5nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFRTUFRc2dBeUFFTmdJUVFRZ2hCQ0FCUVFoMElBSnFJUUlMSUFSQkFXc2hCQ0FDUVFGMElRSWdCVUVCZENJRlFZQ0FBa2tOQUFzZ0JTRUJJQkVnRVVVZ0N4c01BUXNnQWlBRlFSQjBheUVDSUFGQmdJQUNjVVVFUUNBSktBSUVJUkVnQ3lBSlFReEJDQ0FCSUFWSklnc2JhaWdDQURZQ0FBTkFBa0FnQkEwQUlBTW9BaEFpQ1VFQmFpRUVJQWt0QUFFaEJTQUpMUUFBUWY4QlJnUkFJQVZCa0FGUEJFQWdBeUFES0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJBd0NDeUFESUFRMkFoQWdCVUVKZENBQ2FpRUNRUWNoQkF3QkN5QURJQVEyQWhCQkNDRUVJQVZCQ0hRZ0Ftb2hBZ3NnQkVFQmF5RUVJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBUlJTQVJJQXNiREFFTElBa29BZ1FMSVFVZ0V5QU9JQXdnQlNBU1FaREFBV290QUFBaUNVWWJOZ0tBQWlBS0lBb29BZ0JCZ0FKeU5nSUFJQTBnRFNnQ0JFSEFBSEkyQWdRZ0JpQUZJQWx6UVJaMGNrR0FBWElMSVFZZ0FTQVdJQU1vQW13Z0JrRUdka0h2QTNGcUxRQUFRUUowYWlJS0tBSUFJZ2tvQWdBaUJXc2hBUUovSUFVZ0FrRVFka3NFUUNBSktBSUVJUXNnQ2lBSlFRaEJEQ0FCSUFWSklnb2JhaWdDQURZQ0FBTkFBa0FnQkEwQUlBTW9BaEFpQ1VFQmFpRUVJQWt0QUFFaEFTQUpMUUFBUWY4QlJnUkFJQUZCa0FGUEJFQWdBeUFES0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJBd0NDeUFESUFRMkFoQWdBVUVKZENBQ2FpRUNRUWNoQkF3QkN5QURJQVEyQWhCQkNDRUVJQUZCQ0hRZ0Ftb2hBZ3NnQkVFQmF5RUVJQUpCQVhRaEFpQUZRUUYwSWdWQmdJQUNTUTBBQ3lBRklRRWdDeUFMUlNBS0d3d0JDeUFDSUFWQkVIUnJJUUlnQVVHQWdBSnhSUVJBSUFrb0FnUWhDeUFLSUFsQkRFRUlJQUVnQlVraUNodHFLQUlBTmdJQUEwQUNRQ0FFRFFBZ0F5Z0NFQ0lKUVFGcUlRUWdDUzBBQVNFRklBa3RBQUJCL3dGR0JFQWdCVUdRQVU4RVFDQURJQU1vQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRURBSUxJQU1nQkRZQ0VDQUZRUWwwSUFKcUlRSkJCeUVFREFFTElBTWdCRFlDRUVFSUlRUWdCVUVJZENBQ2FpRUNDeUFFUVFGcklRUWdBa0VCZENFQ0lBRkJBWFFpQVVHQWdBSkpEUUFMSUF0RklBc2dDaHNNQVFzZ0NTZ0NCQXRGRFFFTElBRWdGaUFOS0FJRVFSZDJRUVJ4SUExQkJHc2lDaWdDQUVFWmRrRUJjU0FHUVJKMlFSQnhJQVpCRm5aQndBQnhJQVpCQm5aQnFnRnhjbkp5Y2lJU1FaQytBV290QUFCQkFuUnFJZ3NvQWdBaUNTZ0NBQ0lGYXlFQkFuOGdCU0FDUVJCMlN3UkFJQWtvQWdRaEVTQUxJQWxCQ0VFTUlBRWdCVWtpQ3h0cUtBSUFOZ0lBQTBBQ1FDQUVEUUFnQXlnQ0VDSUpRUUZxSVFRZ0NTMEFBU0VCSUFrdEFBQkIvd0ZHQkVBZ0FVR1FBVThFUUNBRElBTW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VFREFJTElBTWdCRFlDRUNBQlFRbDBJQUpxSVFKQkJ5RUVEQUVMSUFNZ0JEWUNFRUVJSVFRZ0FVRUlkQ0FDYWlFQ0N5QUVRUUZySVFRZ0FrRUJkQ0VDSUFWQkFYUWlCVUdBZ0FKSkRRQUxJQVVoQVNBUklCRkZJQXNiREFFTElBSWdCVUVRZEdzaEFpQUJRWUNBQW5GRkJFQWdDU2dDQkNFUklBc2dDVUVNUVFnZ0FTQUZTU0lMRzJvb0FnQTJBZ0FEUUFKQUlBUU5BQ0FES0FJUUlnbEJBV29oQkNBSkxRQUJJUVVnQ1MwQUFFSC9BVVlFUUNBRlFaQUJUd1JBSUFNZ0F5Z0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVFNQWdzZ0F5QUVOZ0lRSUFWQkNYUWdBbW9oQWtFSElRUU1BUXNnQXlBRU5nSVFRUWdoQkNBRlFRaDBJQUpxSVFJTElBUkJBV3NoQkNBQ1FRRjBJUUlnQVVFQmRDSUJRWUNBQWtrTkFBc2dFVVVnRVNBTEd3d0JDeUFKS0FJRUN5RUZJQk1nRGlBTUlBVWdFa0dRd0FGcUxRQUFJZ2xHR3pZQ2dBUWdDaUFLS0FJQVFZQVFjallDQUNBTklBMG9BZ1JCZ0FSeU5nSUVJQVlnQlNBSmMwRVpkSEpCZ0FoeUlRWUxJQUVnRmlBREtBSnNJQVpCQ1haQjd3TnhhaTBBQUVFQ2RHb2lDU2dDQUNJS0tBSUFJZ1ZySVFFQ2Z5QUZJQUpCRUhaTEJFQWdDaWdDQkNFTElBa2dDa0VJUVF3Z0FTQUZTU0lSRzJvb0FnQTJBZ0FEUUFKQUlBUU5BQ0FES0FJUUlnUkJBV29oQ2lBRUxRQUJJUUVnQkMwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFNZ0F5Z0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVFNQWdzZ0F5QUtOZ0lRSUFGQkNYUWdBbW9oQWtFSElRUU1BUXNnQXlBS05nSVFRUWdoQkNBQlFRaDBJQUpxSVFJTElBUkJBV3NoQkNBQ1FRRjBJUUlnQlVFQmRDSUZRWUNBQWtrTkFBc2dCU0VCSUFzZ0MwVWdFUnNNQVFzZ0FpQUZRUkIwYXlFQ0lBRkJnSUFDY1VVRVFDQUtLQUlFSVFzZ0NTQUtRUXhCQ0NBQklBVkpJaEViYWlnQ0FEWUNBQU5BQWtBZ0JBMEFJQU1vQWhBaUJFRUJhaUVLSUFRdEFBRWhCU0FFTFFBQVFmOEJSZ1JBSUFWQmtBRlBCRUFnQXlBREtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCQXdDQ3lBRElBbzJBaEFnQlVFSmRDQUNhaUVDUVFjaEJBd0JDeUFESUFvMkFoQkJDQ0VFSUFWQkNIUWdBbW9oQWdzZ0JFRUJheUVFSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUxSU0FMSUJFYkRBRUxJQW9vQWdRTFJRMERDeUFCSUJZZ0RTZ0NCRUVhZGtFRWNTQU5RUVJySWhFb0FnQkJISFpCQVhFZ0JrRVZka0VRY1NBR1FSbDJRY0FBY1NBR1FRbDJRYW9CY1hKeWNuSWlDMEdRdmdGcUxRQUFRUUowYWlJSktBSUFJZ29vQWdBaUJXc01BUXNDUUNBR1FaQ0FnQUZ4RFFBZ0FTQVdJQU1vQW13Z0JrSHZBM0ZxTFFBQVFRSjBhaUlKS0FJQUlnb29BZ0FpQldzaEFRSi9JQVVnQWtFUWRrc0VRQ0FLS0FJRUlRc2dDU0FLUVFoQkRDQUJJQVZKSWhFYmFpZ0NBRFlDQUFOQUFrQWdCQTBBSUFNb0FoQWlCRUVCYWlFS0lBUXRBQUVoQVNBRUxRQUFRZjhCUmdSQUlBRkJrQUZQQkVBZ0F5QURLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQkF3Q0N5QURJQW8yQWhBZ0FVRUpkQ0FDYWlFQ1FRY2hCQXdCQ3lBRElBbzJBaEJCQ0NFRUlBRkJDSFFnQW1vaEFnc2dCRUVCYXlFRUlBSkJBWFFoQWlBRlFRRjBJZ1ZCZ0lBQ1NRMEFDeUFGSVFFZ0N5QUxSU0FSR3d3QkN5QUNJQVZCRUhScklRSWdBVUdBZ0FKeFJRUkFJQW9vQWdRaEN5QUpJQXBCREVFSUlBRWdCVWtpRVJ0cUtBSUFOZ0lBQTBBQ1FDQUVEUUFnQXlnQ0VDSUVRUUZxSVFvZ0JDMEFBU0VGSUFRdEFBQkIvd0ZHQkVBZ0JVR1FBVThFUUNBRElBTW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VFREFJTElBTWdDallDRUNBRlFRbDBJQUpxSVFKQkJ5RUVEQUVMSUFNZ0NqWUNFRUVJSVFRZ0JVRUlkQ0FDYWlFQ0N5QUVRUUZySVFRZ0FrRUJkQ0VDSUFGQkFYUWlBVUdBZ0FKSkRRQUxJQXRGSUFzZ0VSc01BUXNnQ2lnQ0JBdEZEUUFnQVNBV0lBMG9BZ1JCRVhaQkJIRWdEVUVFYXlJTEtBSUFRUk4yUVFGeElBWkJEblpCRUhFZ0JrRVFka0hBQUhFZ0JrR3FBWEZ5Y25KeUloSkJrTDRCYWkwQUFFRUNkR29pQ1NnQ0FDSUtLQUlBSWdWcklRRUNmeUFGSUFKQkVIWkxCRUFnQ2lnQ0JDRVJJQWtnQ2tFSVFRd2dBU0FGU1NJUEcyb29BZ0EyQWdBRFFBSkFJQVFOQUNBREtBSVFJZ1JCQVdvaENpQUVMUUFCSVFFZ0JDMEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBTWdBeWdDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFRTUFnc2dBeUFLTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVFNQVFzZ0F5QUtOZ0lRUVFnaEJDQUJRUWgwSUFKcUlRSUxJQVJCQVdzaEJDQUNRUUYwSVFJZ0JVRUJkQ0lGUVlDQUFra05BQXNnQlNFQklCRWdFVVVnRHhzTUFRc2dBaUFGUVJCMGF5RUNJQUZCZ0lBQ2NVVUVRQ0FLS0FJRUlSRWdDU0FLUVF4QkNDQUJJQVZKSWc4YmFpZ0NBRFlDQUFOQUFrQWdCQTBBSUFNb0FoQWlCRUVCYWlFS0lBUXRBQUVoQlNBRUxRQUFRZjhCUmdSQUlBVkJrQUZQQkVBZ0F5QURLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQkF3Q0N5QURJQW8yQWhBZ0JVRUpkQ0FDYWlFQ1FRY2hCQXdCQ3lBRElBbzJBaEJCQ0NFRUlBVkJDSFFnQW1vaEFnc2dCRUVCYXlFRUlBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFSUlNBUklBOGJEQUVMSUFvb0FnUUxJUVVnRXlBT0lBd2dCU0FTUVpEQUFXb3RBQUFpQ2tZYk5nSUFJQXNnQ3lnQ0FFRWdjallDQUNBTklBMG9BZ1JCQ0hJMkFnUWdCaUFGSUFwelFSTjBja0VRY2lFR0N3SkFJQVpCZ0lHQUNIRU5BQ0FCSUJZZ0F5Z0NiQ0FHUVFOMkloRkI3d054YWkwQUFFRUNkR29pQ1NnQ0FDSUtLQUlBSWdWcklRRUNmeUFGSUFKQkVIWkxCRUFnQ2lnQ0JDRUxJQWtnQ2tFSVFRd2dBU0FGU1NJU0cyb29BZ0EyQWdBRFFBSkFJQVFOQUNBREtBSVFJZ1JCQVdvaENpQUVMUUFCSVFFZ0JDMEFBRUgvQVVZRVFDQUJRWkFCVHdSQUlBTWdBeWdDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFRTUFnc2dBeUFLTmdJUUlBRkJDWFFnQW1vaEFrRUhJUVFNQVFzZ0F5QUtOZ0lRUVFnaEJDQUJRUWgwSUFKcUlRSUxJQVJCQVdzaEJDQUNRUUYwSVFJZ0JVRUJkQ0lGUVlDQUFra05BQXNnQlNFQklBc2dDMFVnRWhzTUFRc2dBaUFGUVJCMGF5RUNJQUZCZ0lBQ2NVVUVRQ0FLS0FJRUlRc2dDU0FLUVF4QkNDQUJJQVZKSWhJYmFpZ0NBRFlDQUFOQUFrQWdCQTBBSUFNb0FoQWlCRUVCYWlFS0lBUXRBQUVoQlNBRUxRQUFRZjhCUmdSQUlBVkJrQUZQQkVBZ0F5QURLQUlNUVFGcU5nSU1JQUpCZ1A0RGFpRUNRUWdoQkF3Q0N5QURJQW8yQWhBZ0JVRUpkQ0FDYWlFQ1FRY2hCQXdCQ3lBRElBbzJBaEJCQ0NFRUlBVkJDSFFnQW1vaEFnc2dCRUVCYXlFRUlBSkJBWFFoQWlBQlFRRjBJZ0ZCZ0lBQ1NRMEFDeUFMUlNBTElCSWJEQUVMSUFvb0FnUUxSUTBBSUFFZ0ZpQU5LQUlFUVJSMlFRUnhJQTFCQkdzaUN5Z0NBRUVXZGtFQmNTQUdRUTkyUVJCeElBWkJFM1pCd0FCeElCRkJxZ0Z4Y25KeWNpSVNRWkMrQVdvdEFBQkJBblJxSWdrb0FnQWlDaWdDQUNJRmF5RUJBbjhnQlNBQ1FSQjJTd1JBSUFvb0FnUWhFU0FKSUFwQkNFRU1JQUVnQlVraUR4dHFLQUlBTmdJQUEwQUNRQ0FFRFFBZ0F5Z0NFQ0lFUVFGcUlRb2dCQzBBQVNFQklBUXRBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQURJQU1vQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRURBSUxJQU1nQ2pZQ0VDQUJRUWwwSUFKcUlRSkJCeUVFREFFTElBTWdDallDRUVFSUlRUWdBVUVJZENBQ2FpRUNDeUFFUVFGcklRUWdBa0VCZENFQ0lBVkJBWFFpQlVHQWdBSkpEUUFMSUFVaEFTQVJJQkZGSUE4YkRBRUxJQUlnQlVFUWRHc2hBaUFCUVlDQUFuRkZCRUFnQ2lnQ0JDRVJJQWtnQ2tFTVFRZ2dBU0FGU1NJUEcyb29BZ0EyQWdBRFFBSkFJQVFOQUNBREtBSVFJZ1JCQVdvaENpQUVMUUFCSVFVZ0JDMEFBRUgvQVVZRVFDQUZRWkFCVHdSQUlBTWdBeWdDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFRTUFnc2dBeUFLTmdJUUlBVkJDWFFnQW1vaEFrRUhJUVFNQVFzZ0F5QUtOZ0lRUVFnaEJDQUZRUWgwSUFKcUlRSUxJQVJCQVdzaEJDQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnRVVVZ0VTQVBHd3dCQ3lBS0tBSUVDeUVGSUJNZ0RpQU1JQVVnRWtHUXdBRnFMUUFBSWdwR0d6WUNnQUlnQ3lBTEtBSUFRWUFDY2pZQ0FDQU5JQTBvQWdSQndBQnlOZ0lFSUFZZ0JTQUtjMEVXZEhKQmdBRnlJUVlMQWtBZ0JrR0FpSURBQUhFTkFDQUJJQllnQXlnQ2JDQUdRUVoySWhGQjd3TnhhaTBBQUVFQ2RHb2lDU2dDQUNJS0tBSUFJZ1ZySVFFQ2Z5QUZJQUpCRUhaTEJFQWdDaWdDQkNFTElBa2dDa0VJUVF3Z0FTQUZTU0lTRzJvb0FnQTJBZ0FEUUFKQUlBUU5BQ0FES0FJUUlnUkJBV29oQ2lBRUxRQUJJUUVnQkMwQUFFSC9BVVlFUUNBQlFaQUJUd1JBSUFNZ0F5Z0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVFNQWdzZ0F5QUtOZ0lRSUFGQkNYUWdBbW9oQWtFSElRUU1BUXNnQXlBS05nSVFRUWdoQkNBQlFRaDBJQUpxSVFJTElBUkJBV3NoQkNBQ1FRRjBJUUlnQlVFQmRDSUZRWUNBQWtrTkFBc2dCU0VCSUFzZ0MwVWdFaHNNQVFzZ0FpQUZRUkIwYXlFQ0lBRkJnSUFDY1VVRVFDQUtLQUlFSVFzZ0NTQUtRUXhCQ0NBQklBVkpJaEliYWlnQ0FEWUNBQU5BQWtBZ0JBMEFJQU1vQWhBaUJFRUJhaUVLSUFRdEFBRWhCU0FFTFFBQVFmOEJSZ1JBSUFWQmtBRlBCRUFnQXlBREtBSU1RUUZxTmdJTUlBSkJnUDREYWlFQ1FRZ2hCQXdDQ3lBRElBbzJBaEFnQlVFSmRDQUNhaUVDUVFjaEJBd0JDeUFESUFvMkFoQkJDQ0VFSUFWQkNIUWdBbW9oQWdzZ0JFRUJheUVFSUFKQkFYUWhBaUFCUVFGMElnRkJnSUFDU1EwQUN5QUxSU0FMSUJJYkRBRUxJQW9vQWdRTFJRMEFJQUVnRmlBTktBSUVRUmQyUVFSeElBMUJCR3NpQ3lnQ0FFRVpka0VCY1NBR1FSSjJRUkJ4SUFaQkZuWkJ3QUJ4SUJGQnFnRnhjbkp5Y2lJU1FaQytBV290QUFCQkFuUnFJZ2tvQWdBaUNpZ0NBQ0lGYXlFQkFuOGdCU0FDUVJCMlN3UkFJQW9vQWdRaEVTQUpJQXBCQ0VFTUlBRWdCVWtpRHh0cUtBSUFOZ0lBQTBBQ1FDQUVEUUFnQXlnQ0VDSUVRUUZxSVFvZ0JDMEFBU0VCSUFRdEFBQkIvd0ZHQkVBZ0FVR1FBVThFUUNBRElBTW9BZ3hCQVdvMkFnd2dBa0dBL2dOcUlRSkJDQ0VFREFJTElBTWdDallDRUNBQlFRbDBJQUpxSVFKQkJ5RUVEQUVMSUFNZ0NqWUNFRUVJSVFRZ0FVRUlkQ0FDYWlFQ0N5QUVRUUZySVFRZ0FrRUJkQ0VDSUFWQkFYUWlCVUdBZ0FKSkRRQUxJQVVoQVNBUklCRkZJQThiREFFTElBSWdCVUVRZEdzaEFpQUJRWUNBQW5GRkJFQWdDaWdDQkNFUklBa2dDa0VNUVFnZ0FTQUZTU0lQRzJvb0FnQTJBZ0FEUUFKQUlBUU5BQ0FES0FJUUlnUkJBV29oQ2lBRUxRQUJJUVVnQkMwQUFFSC9BVVlFUUNBRlFaQUJUd1JBSUFNZ0F5Z0NERUVCYWpZQ0RDQUNRWUQrQTJvaEFrRUlJUVFNQWdzZ0F5QUtOZ0lRSUFWQkNYUWdBbW9oQWtFSElRUU1BUXNnQXlBS05nSVFRUWdoQkNBRlFRaDBJQUpxSVFJTElBUkJBV3NoQkNBQ1FRRjBJUUlnQVVFQmRDSUJRWUNBQWtrTkFBc2dFVVVnRVNBUEd3d0JDeUFLS0FJRUN5RUZJQk1nRGlBTUlBVWdFa0dRd0FGcUxRQUFJZ3BHR3pZQ2dBUWdDeUFMS0FJQVFZQVFjallDQUNBTklBMG9BZ1JCZ0FSeU5nSUVJQVlnQlNBS2MwRVpkSEpCZ0FoeUlRWUxJQVpCZ01DQWdBUnhEUUVnQVNBV0lBTW9BbXdnQmtFSmRpSVNRZThEY1dvdEFBQkJBblJxSWdrb0FnQWlDaWdDQUNJRmF5RUJBbjhnQlNBQ1FSQjJTd1JBSUFvb0FnUWhDeUFKSUFwQkNFRU1JQUVnQlVraUVSdHFLQUlBTmdJQUEwQUNRQ0FFRFFBZ0F5Z0NFQ0lFUVFGcUlRb2dCQzBBQVNFQklBUXRBQUJCL3dGR0JFQWdBVUdRQVU4RVFDQURJQU1vQWd4QkFXbzJBZ3dnQWtHQS9nTnFJUUpCQ0NFRURBSUxJQU1nQ2pZQ0VDQUJRUWwwSUFKcUlRSkJCeUVFREFFTElBTWdDallDRUVFSUlRUWdBVUVJZENBQ2FpRUNDeUFFUVFGcklRUWdBa0VCZENFQ0lBVkJBWFFpQlVHQWdBSkpEUUFMSUFVaEFTQUxJQXRGSUJFYkRBRUxJQUlnQlVFUWRHc2hBaUFCUVlDQUFuRkZCRUFnQ2lnQ0JDRUxJQWtnQ2tFTVFRZ2dBU0FGU1NJUkcyb29BZ0EyQWdBRFFBSkFJQVFOQUNBREtBSVFJZ1JCQVdvaENpQUVMUUFCSVFVZ0JDMEFBRUgvQVVZRVFDQUZRWkFCVHdSQUlBTWdBeWdDREVFQmFqWUNEQ0FDUVlEK0Eyb2hBa0VJSVFRTUFnc2dBeUFLTmdJUUlBVkJDWFFnQW1vaEFrRUhJUVFNQVFzZ0F5QUtOZ0lRUVFnaEJDQUZRUWgwSUFKcUlRSUxJQVJCQVdzaEJDQUNRUUYwSVFJZ0FVRUJkQ0lCUVlDQUFra05BQXNnQzBVZ0N5QVJHd3dCQ3lBS0tBSUVDMFVOQVNBQklCWWdEU2dDQkVFYWRrRUVjU0FOUVFSckloRW9BZ0JCSEhaQkFYRWdCa0VWZGtFUWNTQUdRUmwyUWNBQWNTQVNRYW9CY1hKeWNuSWlDMEdRdmdGcUxRQUFRUUowYWlJSktBSUFJZ29vQWdBaUJXc0xJUUVDZnlBRklBSkJFSFpMQkVBZ0NpZ0NCQ0VTSUFrZ0NrRUlRUXdnQVNBRlNTSVBHMm9vQWdBMkFnQURRQUpBSUFRTkFDQURLQUlRSWdSQkFXb2hDaUFFTFFBQklRRWdCQzBBQUVIL0FVWUVRQ0FCUVpBQlR3UkFJQU1nQXlnQ0RFRUJhallDRENBQ1FZRCtBMm9oQWtFSUlRUU1BZ3NnQXlBS05nSVFJQUZCQ1hRZ0Ftb2hBa0VISVFRTUFRc2dBeUFLTmdJUVFRZ2hCQ0FCUVFoMElBSnFJUUlMSUFSQkFXc2hCQ0FDUVFGMElRSWdCVUVCZENJRlFZQ0FBa2tOQUFzZ0JTRUJJQklnRWtVZ0R4c01BUXNnQWlBRlFSQjBheUVDSUFGQmdJQUNjVVVFUUNBS0tBSUVJUklnQ1NBS1FReEJDQ0FCSUFWSklnOGJhaWdDQURZQ0FBTkFBa0FnQkEwQUlBTW9BaEFpQkVFQmFpRUtJQVF0QUFFaEJTQUVMUUFBUWY4QlJnUkFJQVZCa0FGUEJFQWdBeUFES0FJTVFRRnFOZ0lNSUFKQmdQNERhaUVDUVFnaEJBd0NDeUFESUFvMkFoQWdCVUVKZENBQ2FpRUNRUWNoQkF3QkN5QURJQW8yQWhCQkNDRUVJQVZCQ0hRZ0Ftb2hBZ3NnQkVFQmF5RUVJQUpCQVhRaEFpQUJRUUYwSWdGQmdJQUNTUTBBQ3lBU1JTQVNJQThiREFFTElBb29BZ1FMSVFVZ0V5QU9JQXdnQlNBTFFaREFBV290QUFBaUNrWWJOZ0tBQmlBUklCRW9BZ0JCZ0lBQmNqWUNBQ0FOSUEwb0FnUkJnQ0J5TmdJRUlBVWdDbk1pQlVFY2RDQUdjaUFOSUEwb0FvUUNRUVJ5TmdLRUFpQU5JQTBvQW93Q1FRRnlOZ0tNQWlBTklBMG9Bb2dDSUFWQkVuUnlRUUp5TmdLSUFrR0F3QUJ5SVFZTElBMGdCa0gvLy8rMmUzRTJBZ0FMSUExQkJHb2hCaUFUUVFScUlRVWdGVUVCYWlJVlFjQUFSdzBBQ3lBTlFReHFJUVlnRTBHRUJtb2hCU0FVUVR4SklCUkJCR29oRkEwQUN3c2dBeUFFTmdJSUlBTWdBVFlDQkNBRElBSTJBZ0FnQXlBSk5nSm9Dd0pBSUJkQklIRkZEUUFnQXlBRFFlUUFhallDYUNBRElBTW9BZ1FnQXlnQ1pDSUdLQUlBSWdGcklnSTJBZ1FDUUNBQklBTW9BZ0FpQkVFUWRrc0VRQ0FESUFFMkFnUWdBeUFHUVFoQkRDQUJJQUpMRzJvb0FnQWlCallDWkNBREtBSUlJUUlEUUFKQUlBSU5BQ0FES0FJUUlnbEJBV29oQWlBSkxRQUJJUVVnQ1MwQUFFSC9BVVlFUUNBRlFaQUJUd1JBSUFNZ0F5Z0NERUVCYWpZQ0RDQUVRWUQrQTJvaEJFRUlJUUlNQWdzZ0F5QUNOZ0lRSUFWQkNYUWdCR29oQkVFSElRSU1BUXNnQXlBQ05nSVFRUWdoQWlBRlFRaDBJQVJxSVFRTElBTWdBa0VCYXlJQ05nSUlJQU1nQkVFQmRDSUVOZ0lBSUFNZ0FVRUJkQ0lCTmdJRUlBRkJnSUFDU1EwQUN5QUJJUUlNQVFzZ0F5QUVJQUZCRUhScklnUTJBZ0FnQWtHQWdBSnhEUUFnQXlBR1FReEJDQ0FCSUFKTEcyb29BZ0FpQmpZQ1pDQURLQUlJSVFFRFFBSkFJQUVOQUNBREtBSVFJZ0ZCQVdvaENTQUJMUUFCSVFVZ0FTMEFBRUgvQVVZRVFDQUZRWkFCVHdSQUlBTWdBeWdDREVFQmFqWUNEQ0FFUVlEK0Eyb2hCRUVJSVFFTUFnc2dBeUFKTmdJUUlBVkJDWFFnQkdvaEJFRUhJUUVNQVFzZ0F5QUpOZ0lRUVFnaEFTQUZRUWgwSUFScUlRUUxJQU1nQVVFQmF5SUJOZ0lJSUFNZ0JFRUJkQ0lFTmdJQUlBTWdBa0VCZENJQ05nSUVJQUpCZ0lBQ1NRMEFDd3NnQXlBQ0lBWW9BZ0FpQVdzaUFqWUNCQUpBSUFFZ0JFRVFka3NFUUNBRElBRTJBZ1FnQXlBR1FRaEJEQ0FCSUFKTEcyb29BZ0FpQmpZQ1pDQURLQUlJSVFJRFFBSkFJQUlOQUNBREtBSVFJZ2xCQVdvaEFpQUpMUUFCSVFVZ0NTMEFBRUgvQVVZRVFDQUZRWkFCVHdSQUlBTWdBeWdDREVFQmFqWUNEQ0FFUVlEK0Eyb2hCRUVJSVFJTUFnc2dBeUFDTmdJUUlBVkJDWFFnQkdvaEJFRUhJUUlNQVFzZ0F5QUNOZ0lRUVFnaEFpQUZRUWgwSUFScUlRUUxJQU1nQWtFQmF5SUNOZ0lJSUFNZ0JFRUJkQ0lFTmdJQUlBTWdBVUVCZENJQk5nSUVJQUZCZ0lBQ1NRMEFDeUFCSVFJTUFRc2dBeUFFSUFGQkVIUnJJZ1EyQWdBZ0FrR0FnQUp4RFFBZ0F5QUdRUXhCQ0NBQklBSkxHMm9vQWdBaUJqWUNaQ0FES0FJSUlRRURRQUpBSUFFTkFDQURLQUlRSWdGQkFXb2hDU0FCTFFBQklRVWdBUzBBQUVIL0FVWUVRQ0FGUVpBQlR3UkFJQU1nQXlnQ0RFRUJhallDRENBRVFZRCtBMm9oQkVFSUlRRU1BZ3NnQXlBSk5nSVFJQVZCQ1hRZ0JHb2hCRUVISVFFTUFRc2dBeUFKTmdJUVFRZ2hBU0FGUVFoMElBUnFJUVFMSUFNZ0FVRUJheUlCTmdJSUlBTWdCRUVCZENJRU5nSUFJQU1nQWtFQmRDSUNOZ0lFSUFKQmdJQUNTUTBBQ3dzZ0F5QUNJQVlvQWdBaUFXc2lBallDQkFKQUlBRWdCRUVRZGtzRVFDQURJQUUyQWdRZ0F5QUdRUWhCRENBQklBSkxHMm9vQWdBaUJqWUNaQ0FES0FJSUlRSURRQUpBSUFJTkFDQURLQUlRSWdsQkFXb2hBaUFKTFFBQklRVWdDUzBBQUVIL0FVWUVRQ0FGUVpBQlR3UkFJQU1nQXlnQ0RFRUJhallDRENBRVFZRCtBMm9oQkVFSUlRSU1BZ3NnQXlBQ05nSVFJQVZCQ1hRZ0JHb2hCRUVISVFJTUFRc2dBeUFDTmdJUVFRZ2hBaUFGUVFoMElBUnFJUVFMSUFNZ0FrRUJheUlDTmdJSUlBTWdCRUVCZENJRU5nSUFJQU1nQVVFQmRDSUJOZ0lFSUFGQmdJQUNTUTBBQ3lBQklRSU1BUXNnQXlBRUlBRkJFSFJySWdRMkFnQWdBa0dBZ0FKeERRQWdBeUFHUVF4QkNDQUJJQUpMRzJvb0FnQWlCallDWkNBREtBSUlJUUVEUUFKQUlBRU5BQ0FES0FJUUlnRkJBV29oQ1NBQkxRQUJJUVVnQVMwQUFFSC9BVVlFUUNBRlFaQUJUd1JBSUFNZ0F5Z0NERUVCYWpZQ0RDQUVRWUQrQTJvaEJFRUlJUUVNQWdzZ0F5QUpOZ0lRSUFWQkNYUWdCR29oQkVFSElRRU1BUXNnQXlBSk5nSVFRUWdoQVNBRlFRaDBJQVJxSVFRTElBTWdBVUVCYXlJQk5nSUlJQU1nQkVFQmRDSUVOZ0lBSUFNZ0FrRUJkQ0lDTmdJRUlBSkJnSUFDU1EwQUN3c2dBeUFDSUFZb0FnQWlBV3NpQWpZQ0JDQUJJQVJCRUhaTEJFQWdBeUFCTmdJRUlBTWdCa0VJUVF3Z0FTQUNTeHRxS0FJQU5nSmtJQU1vQWdnaEFnTkFBa0FnQWcwQUlBTW9BaEFpQmtFQmFpRUpJQVl0QUFFaEJTQUdMUUFBUWY4QlJnUkFJQVZCa0FGUEJFQWdBeUFES0FJTVFRRnFOZ0lNSUFSQmdQNERhaUVFUVFnaEFnd0NDeUFESUFrMkFoQWdCVUVKZENBRWFpRUVRUWNoQWd3QkN5QURJQWsyQWhCQkNDRUNJQVZCQ0hRZ0JHb2hCQXNnQXlBQ1FRRnJJZ0kyQWdnZ0F5QUVRUUYwSWdRMkFnQWdBeUFCUVFGMElnRTJBZ1FnQVVHQWdBSkpEUUFMREFFTElBTWdCQ0FCUVJCMGF5SUZOZ0lBSUFKQmdJQUNjUTBBSUFNZ0JrRU1RUWdnQVNBQ1N4dHFLQUlBTmdKa0lBTW9BZ2doQkFOQUFrQWdCQTBBSUFNb0FoQWlCa0VCYWlFSklBWXRBQUVoQVNBR0xRQUFRZjhCUmdSQUlBRkJrQUZQQkVBZ0F5QURLQUlNUVFGcU5nSU1JQVZCZ1A0RGFpRUZRUWdoQkF3Q0N5QURJQWsyQWhBZ0FVRUpkQ0FGYWlFRlFRY2hCQXdCQ3lBRElBazJBaEJCQ0NFRUlBRkJDSFFnQldvaEJRc2dBeUFFUVFGcklnUTJBZ2dnQXlBRlFRRjBJZ1UyQWdBZ0F5QUNRUUYwSWdJMkFnUWdBa0dBZ0FKSkRRQUxDd3NnSjBVTkFDQURFR01nQTBId3JRRTJBbVFnQTBHUW93RTJBbUFnQTBHd293RTJBaHdMUVFBZ0lVRUJhaUlCSUFGQkEwWWlBUnNoSVNBYklBRnJJUnNnS1VFQmFpSXBJQ0FvQWdoUERRRWdHMEVBU2cwQUN3c2dIaUFxYWlFZUlBTW9BaGdnQXk4QmNEc0FBQ0FvUVFGcUlpZ2dHaWdDTEVrTkFBc0xBa0FnSzBVTkFBSkFJQU1vQWhnaUFTQURLQUlRSWdWQkFtcExCRUFnSWtVTkFTQW1JQUVnQXlnQ0ZDSUdhellDT0NBbUlBVWdCbXMyQWpRZ0ppQUJJQVZyUVFKck5nSXdJQjFCQWtIZTlnQWdKa0V3YWhBVERBSUxJQU1vQWd3aUFVRURTUTBCSUNJRVFDQW1JQUUyQWxBZ0hVRUNRWjQzSUNaQjBBQnFFQk1NQWdzZ0ppQUJOZ0pBSUIxQkFrR2VOeUFtUVVCckVCTU1BUXNnSmlBQklBTW9BaFFpQm1zMkFpZ2dKaUFGSUFack5nSWtJQ1lnQVNBRmEwRUNhellDSUNBZFFRSkIzdllBSUNaQklHb1FFd3NnR2lnQ1BFVU5BQ0FESUN3MkFuUUxJREFvQWdRaEFTQWFLQUlNSUJvb0FnZ2dNQ2dDQUdzaEV5QXdLQUlRSWdaQkFYRUVRQ0F5S0FJY0lEaEJtQUZzYWlJSlFaQUJheWdDQUNBVGFpQUpRWmdCYXlnQ0FHc2hFd3NnQVdzaEJTQUdRUUp4QkVBZ01pZ0NIQ0E0UVpnQmJHb2lBVUdNQVdzb0FnQWdCV29nQVVHVUFXc29BZ0JySVFVTElCb29BandpQmlFQ0lBWkZCRUFnQXlnQ2RDRUNDeUFES0FLQUFTRU5JQU1vQW53aEJBSkFJQzhvQXFnR0lnbEZEUUFnRFVVZ0JFVnlJUUVnQ1VFZVRBUkFJQUVOQVVFQUlRZ0RRQ0FFSUFoc0lRTkJBQ0VCQTBBZ0FpQUJJQU5xUVFKMGFpSVhLQUlBSWdjZ0IwRWZkU0lLY3lBS2F5SUtJQWwyQkVBZ0YwRUFJQW9nTHlnQ3FBWjJJaGRySUJjZ0IwRUFTQnMyQWdBTElBRkJBV29pQVNBRVJ3MEFDeUFJUVFGcUlnZ2dEVWNOQUFzTUFRc2dBUTBBSUFKQkFDQUVJQTFzUVFKMEVCa2FDeUFHQkVBZ0JDQU5iQ0VHSUM4b0FoUkJBVVlFUUNBR1JRMEZRUUFoQVNBR1FRUlBCRUFnQmtGOGNTRUJRUUFoQXdOQUlBSWdBMEVDZEdvaUJTQUYvUUFDQUNKSC9Sc0FRUUp0L1JFZ1IvMGJBVUVDYmYwY0FTQkgvUnNDUVFKdC9Sd0NJRWY5R3dOQkFtMzlIQVA5Q3dJQUlBTkJCR29pQXlBQlJ3MEFDeUFCSUFaR0RRWUxBMEFnQWlBQlFRSjBhaUlGSUFVb0FnQkJBbTAyQWdBZ0FVRUJhaUlCSUFaSERRQUxEQVVMSUFaRkRRUWdNQ29DSUVNQUFBQS9sQ0ZOUVFBaEF3SkFJQVpCQkVrRVFDQUNJUUVNQVFzZ0FpQUdRWHh4SWdOQkFuUnFJUUVnVGYwVElVZEJBQ0VGQTBBZ0FpQUZRUUowYWlJSklFY2dDZjBBQWdEOStnSDk1Z0g5Q3dJQUlBVkJCR29pQlNBRFJ3MEFDeUFESUFaR0RRVUxBMEFnQVNCTklBRW9BZ0N5bERnQ0FDQUJRUVJxSVFFZ0EwRUJhaUlESUFaSERRQUxEQVFMSURjZ05tc2hGeUF2S0FJVVFRRkhEUUlnRFVVTkF5QXlLQUlrSWdZZ0JTQVhiQ0lGUVFKMGFpQVRRUUowYWlFSElBUkJmSEVpRzBFQmF5SUJRUVJ4SVJZZ055QUVJRFpxYTBFQ2RDRVVJQUZCQW5aQkFXcEIvdi8vL3dkeElSb2dCU0FUYWtFQ2RDQUdhaUFDYXlFZFFRQWhFeUFCUVFOSElRNERRRUVBSVFFQ1FDQWJSUTBBSUFRZ0Uyd2hCU0FISUJNZ0YyeEJBblJxSVFaQkFDRUpJQTRFUUFOQUlBWWdBVUVDZEdvZ0FpQUJJQVZxUVFKMGF2MEFBZ0FpUi8wYkFFRUNiZjBSSUVmOUd3RkJBbTM5SEFFZ1IvMGJBa0VDYmYwY0FpQkgvUnNEUVFKdC9Sd0QvUXNDQUNBR0lBRkJCSElpQ0VFQ2RHb2dBaUFGSUFocVFRSjBhdjBBQWdBaVIvMGJBRUVDYmYwUklFZjlHd0ZCQW0zOUhBRWdSLzBiQWtFQ2JmMGNBaUJIL1JzRFFRSnQvUndEL1FzQ0FDQUJRUWhxSVFFZ0NVRUNhaUlKSUJwSERRQUxDeUFXRFFBZ0JpQUJRUUowYWlBQ0lBRWdCV3BCQW5ScS9RQUNBQ0pIL1JzQVFRSnQvUkVnUi8wYkFVRUNiZjBjQVNCSC9Sc0NRUUp0L1J3Q0lFZjlHd05CQW0zOUhBUDlDd0lBSUFGQkJHb2hBUXNDUUNBQklBUlBEUUFnQkNBVGJDRUZJQWNnRXlBWGJFRUNkR29oQ1FKQUFrQWdCQ0FCYXlJSVFRUlBCRUFnSFNBVElCUnNha0VQU3cwQkN5QUJJUVlNQVFzZ0FTQUZhaUVpSUFFZ0NFRjhjU0lLYWlFR1FRQWhBd05BSUFrZ0FTQURha0VDZEdvZ0FpQURJQ0pxUVFKMGF2MEFBZ0FpUi8wYkFFRUNiZjBSSUVmOUd3RkJBbTM5SEFFZ1IvMGJBa0VDYmYwY0FpQkgvUnNEUVFKdC9Sd0QvUXNDQUNBRFFRUnFJZ01nQ2tjTkFBc2dDQ0FLUmcwQkN5QUdRUUZxSVFFZ0JDQUdhMEVCY1FSQUlBa2dCa0VDZEdvZ0FpQUZJQVpxUVFKMGFpZ0NBRUVDYlRZQ0FDQUJJUVlMSUFFZ0JFWU5BQ0FGUVFGcUlRRURRQ0FKSUFaQkFuUnFJZ2dnQWlBRklBWnFRUUowYWlnQ0FFRUNiVFlDQUNBSUlBSWdBU0FHYWtFQ2RHb29BZ0JCQW0wMkFnUWdCa0VDYWlJR0lBUkhEUUFMQ3lBVFFRRnFJaE1nRFVjTkFBc01Bd3NnSmlBYk5nSUFJQjFCQWtIbnd3QWdKaEFUQ3lBRktBSUFRUUEyQWdBTUFRc2dEVVVOQUNBRVJRMEFJRElvQWlRZ0JTQVhiRUVDZEdvZ0UwRUNkR29oQ1NBRVFYeHhJZ1ZCQW5RaEJpQXdLZ0lnUXdBQUFEK1VJazM5RXlGSFFRQWhDQ0FFUVFSSklSTURRQUpBQWtBZ0V3UkFJQUloQnlBSklRRkJBQ0VEREFFTElBWWdDV29oQVNBQ0lBWnFJUWRCQUNFREEwQWdDU0FEUVFKMElncHFJRWNnQWlBS2F2MEFBZ0Q5K2dIOTVnSDlDd0lBSUFOQkJHb2lBeUFGUncwQUN5QUhJUUlnQlNJRElBUkdEUUVMSUFjaEFnTkFJQUVnVFNBQ0tBSUFzcFE0QWdBZ0FVRUVhaUVCSUFKQkJHb2hBaUFEUVFGcUlnTWdCRWNOQUFzTElBa2dGMEVDZEdvaENTQUlRUUZxSWdnZ0RVY05BQXNMSUFBUUZDQW1RZUFBYWlRQUM5WUVBUWwvSUFBb0FpeEJDRThFUUNBQUtBSW9JUVZCQ0NFS0EwQWdBQ2dDREVFRmRDRUlJQUFvQWdBaEJDQUFLQUlrSVFNQ1FDQUFLQUlVSWdZZ0FDZ0NFQ0lCVFEwQUlBUWdDR29oQnlBQlFRRnFJUUlnQmlBQmEwRUJjUVJBSUFjZ0FVRUdkR29pQ1NBRklBRWdBMnhCQW5ScUlnSDlBQUlBL1FzQ0FDQUpJQUg5QUFJUS9Rc0NFQ0FDSVFFTElBSWdCa1lOQUFOQUlBY2dBVUVHZEdvaUFpQUZJQUVnQTJ4QkFuUnFJZ245QUFJQS9Rc0NBQ0FDSUFuOUFBSVEvUXNDRUNBSElBRkJBV29pQWtFR2RHb2lDU0FGSUFJZ0EyeEJBblJxSWdMOUFBSVEvUXNDRUNBSklBTDlBQUlBL1FzQ0FDQUJRUUpxSWdFZ0JrY05BQXNMQWtBZ0FDZ0NIQ0lHSUFBb0FoZ2lBVTBOQUNBRUlBaHJRU0JxSVFjZ0JTQUFLQUlJSUFOc1FRSjBhaUVJSUFGQkFXb2hBaUFHSUFGclFRRnhCRUFnQnlBQlFRWjBhaUlFSUFnZ0FTQURiRUVDZEdvaUFmMEFBZ0Q5Q3dJQUlBUWdBZjBBQWhEOUN3SVFJQUloQVFzZ0FpQUdSZzBBQTBBZ0J5QUJRUVowYWlJQ0lBZ2dBU0FEYkVFQ2RHb2lCUDBBQWdEOUN3SUFJQUlnQlAwQUFoRDlDd0lRSUFjZ0FVRUJhaUlDUVFaMGFpSUVJQWdnQWlBRGJFRUNkR29pQXYwQUFoRDlDd0lRSUFRZ0F2MEFBZ0Q5Q3dJQUlBRkJBbW9pQVNBR1J3MEFDd3NnQUJBbVFRQWhBU0FBS0FJZ0JFQURRQ0FGSUFBb0FpUWdBV3hCQW5ScUlnSWdBQ2dDQUNBQlFRVjBhaUlEL1FBQ0FQMExBZ0FnQWlBRC9RQUNFUDBMQWhBZ0FVRUJhaUlCSUFBb0FpQkpEUUFMQ3lBRlFTQnFJUVVnQ2tFSWFpSUtJQUFvQWl4TkRRQUxDeUFBS0FJQUVCUWdBQkFVQzYwTkFTTi9JQUFvQWl4QkNFOEVRQ0FBS0FJa0lncEJCWFFoRlNBS1FRZHNJUllnQ2tFR2JDRVhJQXBCQld3aEdDQUtRUU5zSVJrZ0NrRUJkQ0VhSUFBb0FpZ2lBU0FLUVJ4c2FpRWVJQUVnQ2tFWWJHb2hIeUFCSUFwQkZHeHFJU0FnQVNBS1FRUjBhaUVoSUFFZ0NrRU1iR29oSWlBQklBcEJBM1JxSVNNZ0FTQUtRUUowSWh0cUlTUkJDQ0VjQTBBZ0FDQUJJQUFvQWlSQkNCQkRJQUFRSmdKQUlBQW9BaUFpRFVVTkFDQVZJQjFzSVFnZ0FDZ0NBQ0VHUVFBaEJBSkFBa0FnRFVISEFVME5BQ0FCSUFnZ0pHb2lBeUFOUVFKMElnVnFJZ3RKSUFNZ0FTQUZhaUlIU1hFTkFDQUJJQWdnSTJvaUFpQUZhaUlNU1NBQ0lBZEpjUTBBSUFFZ0JTQUlJQ0pxSWdscUlnVkpJQWNnQ1V0eERRQWdCaUFIU1NBQklBWWdEVUVGZEdvaURrRWNheUlQU1hFTkFDQUJJQTVCR0dzaUVFa2dCa0VFYWlJUklBZEpjUTBBSUFFZ0RrRVVheUlTU1NBR1FRaHFJaE1nQjBseERRQWdCeUFHUVF4cUloUkxJQUVnRGtFUWF5SUhTWEVOQUNBRElBeEpJQUlnQzBseERRQWdBeUFGU1NBSklBdEpjUTBBSUFNZ0Qwa2dCaUFMU1hFTkFDQURJQkJKSUFzZ0VVdHhEUUFnQXlBU1NTQUxJQk5MY1EwQUlBTWdCMGtnQ3lBVVMzRU5BQ0FDSUFWSklBa2dERWx4RFFBZ0FpQVBTU0FHSUF4SmNRMEFJQUlnRUVrZ0RDQVJTM0VOQUNBQ0lCSkpJQXdnRTB0eERRQWdBaUFIU1NBTUlCUkxjUTBBSUFrZ0Qwa2dCU0FHUzNFTkFDQUpJQkJKSUFVZ0VVdHhEUUFnQ1NBU1NTQUZJQk5MY1EwQUlBY2dDVXNnQlNBVVMzRU5BQ0FOUVh4eElRUkJBQ0VEQTBBZ0FTQURRUUowYWlBR0lBTkJCWFJxSWdKQjRBQnFJQUpCUUdzZ0FrRWdhaUFDL1Z3Q0FQMVdBZ0FCL1ZZQ0FBTDlWZ0lBQS8wTEFnQWdBU0FESUFwcVFRSjBhaUFDUWVRQWFpQUNRY1FBYWlBQ1FTUnFJQUw5WEFJRS9WWUNBQUg5VmdJQUF2MVdBZ0FEL1FzQ0FDQUJJQU1nR21wQkFuUnFJQUpCNkFCcUlBSkJ5QUJxSUFKQktHb2dBdjFjQWdqOVZnSUFBZjFXQWdBQy9WWUNBQVA5Q3dJQUlBRWdBeUFaYWtFQ2RHb2dBa0hzQUdvZ0FrSE1BR29nQWtFc2FpQUMvVndDRFAxV0FnQUIvVllDQUFMOVZnSUFBLzBMQWdBZ0EwRUVhaUlESUFSSERRQUxJQVFnRFVZTkFRc0RRQ0FCSUFSQkFuUnFJQVlnQkVFRmRHb2lBeW9DQURnQ0FDQUJJQVFnQ21wQkFuUnFJQU1xQWdRNEFnQWdBU0FFSUJwcVFRSjBhaUFES2dJSU9BSUFJQUVnQkNBWmFrRUNkR29nQXlvQ0REZ0NBQ0FFUVFGcUlnUWdEVWNOQUFzTElBQW9BZ0FoQmtFQUlRUUNRQ0FOUVROTkRRQWdDQ0FoYWlJRElBZ2dJR29pQWlBTlFRSjBJZ1ZxSWd0SklBSWdBeUFGYWlJSFNYRU5BQ0FESUFnZ0gyb2lDU0FGYWlJTVNTQUhJQWxMY1EwQUlBTWdDQ0FlYWlJSUlBVnFJZ1ZKSUFjZ0NFdHhEUUFnQXlBR0lBMUJCWFJxSWc1QkRHc2lEMGtnQmtFUWFpSVFJQWRKY1EwQUlBTWdEa0VJYXlJUlNTQUdRUlJxSWhJZ0IwbHhEUUFnQXlBT1FRUnJJaE5KSUFaQkdHb2lGQ0FIU1hFTkFDQURJQTVKSUFaQkhHb2lBeUFIU1hFTkFDQUNJQXhKSUFrZ0MwbHhEUUFnQWlBRlNTQUlJQXRKY1EwQUlBSWdEMGtnQ3lBUVMzRU5BQ0FDSUJGSklBc2dFa3R4RFFBZ0FpQVRTU0FMSUJSTGNRMEFJQUlnRGtrZ0F5QUxTWEVOQUNBSUlBeEpJQVVnQ1V0eERRQWdDU0FQU1NBTUlCQkxjUTBBSUFrZ0VVa2dEQ0FTUzNFTkFDQUpJQk5KSUF3Z0ZFdHhEUUFnQ1NBT1NTQURJQXhKY1EwQUlBZ2dEMGtnQlNBUVMzRU5BQ0FJSUJGSklBVWdFa3R4RFFBZ0NDQVRTU0FGSUJSTGNRMEFJQWdnRGtrZ0F5QUZTWEVOQUNBTlFYeHhJUVJCQUNFREEwQWdBU0FESUJ0cVFRSjBhaUFHSUFOQkJYUnFJZ0pCOEFCcUlBSkIwQUJxSUFKQk1Hb2dBdjFjQWhEOVZnSUFBZjFXQWdBQy9WWUNBQVA5Q3dJQUlBRWdBeUFZYWtFQ2RHb2dBa0gwQUdvZ0FrSFVBR29nQWtFMGFpQUMvVndDRlAxV0FnQUIvVllDQUFMOVZnSUFBLzBMQWdBZ0FTQURJQmRxUVFKMGFpQUNRZmdBYWlBQ1FkZ0FhaUFDUVRocUlBTDlYQUlZL1ZZQ0FBSDlWZ0lBQXYxV0FnQUQvUXNDQUNBQklBTWdGbXBCQW5ScUlBSkIvQUJxSUFKQjNBQnFJQUpCUEdvZ0F2MWNBaHo5VmdJQUFmMVdBZ0FDL1ZZQ0FBUDlDd0lBSUFOQkJHb2lBeUFFUncwQUN5QUVJQTFHRFFFTEEwQWdBU0FFSUJ0cVFRSjBhaUFHSUFSQkJYUnFJZ01xQWhBNEFnQWdBU0FFSUJocVFRSjBhaUFES2dJVU9BSUFJQUVnQkNBWGFrRUNkR29nQXlvQ0dEZ0NBQ0FCSUFRZ0ZtcEJBblJxSUFNcUFodzRBZ0FnQkVFQmFpSUVJQTFIRFFBTEN5QWRRUUZxSVIwZ0FTQVZhaUVCSUJ4QkNHb2lIQ0FBS0FJc1RRMEFDd3NnQUNnQ0FCQVVJQUFRRkF0ekFRSi9JQUFvQWh3aUFVRUlhaUlESUFBb0FpQWlBazBFUUFOQUlBQWdBQ2dDR0NBQlFRSjBhaUFBS0FJVVFRZ1FOaUFESWdGQkNHb2lBeUFBS0FJZ0lnSk5EUUFMQ3lBQklBSkpCRUFnQUNBQUtBSVlJQUZCQW5ScUlBQW9BaFFnQWlBQmF4QTJDeUFBS0FJQUVCUWdBQkFVQzBRQUlBQW9BaHdpQVNBQUtBSWdTUVJBQTBBZ0FDQUFLQUlZSUFBb0FoUWdBV3hCQW5ScUVHWWdBVUVCYWlJQklBQW9BaUJKRFFBTEN5QUFLQUlBRUJRZ0FCQVVDd1VBRUc0QUN3WUFFSmtCQUFzTkFCQUxJQUJCZ0FGcUVBb0FDd1VBRUc0QUMyd0JBWDhnQUVRQUFBQUFBQUFBQUJBTkdnSkFRY2pmQVNnQ0FFRWJRUnBCRGlBQVFRRkdHeUFBUVFKR0d5SUFRUUZyZGtFQmNRUkFRY2pnQVVISTRBRW9BZ0JCQVNBQVFRRnJkSEkyQWdBTUFRc2dBRUVDZEVHZ3lRRnFLQUlBSWdJRVFDQUFJQUlSQWdBTEN3dW9BUUVGZnlBQUtBSlVJZ01vQWdBaEJTQURLQUlFSWdRZ0FDZ0NGQ0FBS0FJY0lnZHJJZ1lnQkNBR1NSc2lCZ1JBSUFVZ0J5QUdFQllhSUFNZ0F5Z0NBQ0FHYWlJRk5nSUFJQU1nQXlnQ0JDQUdheUlFTmdJRUN5QUVJQUlnQWlBRVN4c2lCQVJBSUFVZ0FTQUVFQllhSUFNZ0F5Z0NBQ0FFYWlJRk5nSUFJQU1nQXlnQ0JDQUVhellDQkFzZ0JVRUFPZ0FBSUFBZ0FDZ0NMQ0lCTmdJY0lBQWdBVFlDRkNBQ0M2WUZBZ1orQkg4Z0FTQUJLQUlBUVFkcVFYaHhJZ0ZCRUdvMkFnQWdBQ0FCS1FNQUlRSWdBU2tEQ0NFSEl3QkJJR3NpQ0NRQUlBZEMvLy8vLy8vL1A0TWhCQUorSUFkQ01JaEMvLzhCZ3lJRHB5SUtRWUg0QUd0Qi9ROU5CRUFnQkVJRWhpQUNRanlJaENFRElBcEJnUGdBYTYwaEJBSkFJQUpDLy8vLy8vLy8vLzhQZ3lJQ1FvR0FnSUNBZ0lDQUNGb0VRQ0FEUWdGOElRTU1BUXNnQWtLQWdJQ0FnSUNBZ0FoU0RRQWdBMElCZ3lBRGZDRURDMElBSUFNZ0EwTC8vLy8vLy8vL0IxWWlBQnNoQWlBQXJTQUVmQXdCQ3dKQUlBSWdCSVJRRFFBZ0EwTC8vd0ZTRFFBZ0JFSUVoaUFDUWp5SWhFS0FnSUNBZ0lDQUJJUWhBa0wvRHd3QkN5QUtRZjZIQVVzRVFFSUFJUUpDL3c4TUFRdEJnUGdBUVlINEFDQURVQ0lCR3lJQUlBcHJJZ2xCOEFCS0JFQkNBQ0VDUWdBTUFRc2dBaUVESUFRZ0JFS0FnSUNBZ0lEQUFJUWdBUnNpQlNFR0FrQkJnQUVnQ1dzaUFVSEFBSEVFUUNBQ0lBRkJRR3F0aGlFR1FnQWhBd3dCQ3lBQlJRMEFJQVlnQWEwaUJJWWdBMEhBQUNBQmE2MkloQ0VHSUFNZ0JJWWhBd3NnQ0NBRE53TVFJQWdnQmpjREdBSkFJQWxCd0FCeEJFQWdCU0FKUVVCcXJZZ2hBa0lBSVFVTUFRc2dDVVVOQUNBRlFjQUFJQWxycllZZ0FpQUpyU0lEaUlRaEFpQUZJQU9JSVFVTElBZ2dBamNEQUNBSUlBVTNBd2dnQ0NrRENFSUVoaUFJS1FNQUlnTkNQSWlFSVFJQ1FDQUFJQXBISUFncEF4QWdDQ2tER0lSQ0FGSnhyU0FEUXYvLy8vLy8vLy8vRDRPRUlnTkNnWUNBZ0lDQWdJQUlXZ1JBSUFKQ0FYd2hBZ3dCQ3lBRFFvQ0FnSUNBZ0lDQUNGSU5BQ0FDUWdHRElBSjhJUUlMSUFKQ2dJQ0FnSUNBZ0FpRklBSWdBa0wvLy8vLy8vLy9CMVlpQUJzaEFpQUFyUXNoQXlBSVFTQnFKQUFnQjBLQWdJQ0FnSUNBZ0lCL2d5QURRalNHaENBQ2hMODVBd0FMOUJjREVuOEJmQU4rSXdCQnNBUnJJZ3drQUNBTVFRQTJBaXdDUUNBQnZTSVpRZ0JUQkVCQkFTRVFRYm9JSVJRZ0Fab2lBYjBoR1F3QkN5QUVRWUFRY1FSQVFRRWhFRUc5Q0NFVURBRUxRY0FJUWJzSUlBUkJBWEVpRUJzaEZDQVFSU0VYQ3dKQUlCbENnSUNBZ0lDQWdQai9BSU5DZ0lDQWdJQ0FnUGovQUZFRVFDQUFRU0FnQWlBUVFRTnFJZ1lnQkVILy8zdHhFQ0FnQUNBVUlCQVFIaUFBUVpJSlFmWUtJQVZCSUhFaUF4dEIrd2xCbndzZ0F4c2dBU0FCWWh0QkF4QWVJQUJCSUNBQ0lBWWdCRUdBd0FCekVDQWdBaUFHSUFJZ0Jrb2JJUTBNQVFzZ0RFRVFhaUVSQWtBQ1FBSkFJQUVnREVFc2FoQndJZ0VnQWFBaUFVUUFBQUFBQUFBQUFHSUVRQ0FNSUF3b0Fpd2lCa0VCYXpZQ0xDQUZRU0J5SWhWQjRRQkhEUUVNQXdzZ0JVRWdjaUlWUWVFQVJnMENJQXdvQWl3aEN3d0JDeUFNSUFaQkhXc2lDellDTENBQlJBQUFBQUFBQUxCQm9pRUJDMEVHSUFNZ0EwRUFTQnNoQ2lBTVFUQnFRYUFDUVFBZ0MwRUFUaHRxSWc0aEJ3TkFJQWNDZnlBQlJBQUFBQUFBQVBCQll5QUJSQUFBQUFBQUFBQUFabkVFUUNBQnF3d0JDMEVBQ3lJRE5nSUFJQWRCQkdvaEJ5QUJJQU80b1VRQUFBQUFaYzNOUWFJaUFVUUFBQUFBQUFBQUFHSU5BQXNDUUNBTFFRQk1CRUFnQ3lFSklBY2hCaUFPSVFnTUFRc2dEaUVJSUFzaENRTkFRUjBnQ1NBSlFSMVBHeUVEQWtBZ0IwRUVheUlHSUFoSkRRQWdBNjBoRzBJQUlSa0RRQ0FHSUJsQy8vLy8vdytESUFZMUFnQWdHNFo4SWhwQ2dKVHIzQU9BSWhsQ2dPeVVvd3grSUJwOFBnSUFJQVpCQkdzaUJpQUlUdzBBQ3lBYVFvQ1U2OXdEVkEwQUlBaEJCR3NpQ0NBWlBnSUFDd05BSUFnZ0J5SUdTUVJBSUFaQkJHc2lCeWdDQUVVTkFRc0xJQXdnRENnQ0xDQURheUlKTmdJc0lBWWhCeUFKUVFCS0RRQUxDeUFKUVFCSUJFQWdDa0VaYWtFSmJrRUJhaUVTSUJWQjVnQkdJUk1EUUVFSlFRQWdDV3NpQXlBRFFRbFBHeUVOQWtBZ0JpQUlUUVJBSUFnb0FnQkZRUUowSVFjTUFRdEJnSlRyM0FNZ0RYWWhGa0YvSUExMFFYOXpJUTlCQUNFSklBZ2hCd05BSUFjZ0J5Z0NBQ0lESUExMklBbHFOZ0lBSUFNZ0QzRWdGbXdoQ1NBSFFRUnFJZ2NnQmtrTkFBc2dDQ2dDQUVWQkFuUWhCeUFKUlEwQUlBWWdDVFlDQUNBR1FRUnFJUVlMSUF3Z0RDZ0NMQ0FOYWlJSk5nSXNJQTRnQnlBSWFpSUlJQk1iSWdNZ0VrRUNkR29nQmlBR0lBTnJRUUoxSUJKS0d5RUdJQWxCQUVnTkFBc0xRUUFoQ1FKQUlBWWdDRTBOQUNBT0lBaHJRUUoxUVFsc0lRbEJDaUVISUFnb0FnQWlBMEVLU1EwQUEwQWdDVUVCYWlFSklBTWdCMEVLYkNJSFR3MEFDd3NnQ2lBSlFRQWdGVUhtQUVjYmF5QVZRZWNBUmlBS1FRQkhjV3NpQXlBR0lBNXJRUUoxUVFsc1FRbHJTQVJBSUF4Qk1HcEJoR0JCcEdJZ0MwRUFTQnRxSUFOQmdNZ0FhaUlMUVFsdElnTkJBblJxSVExQkNpRUhJQU5CZDJ3Z0Myb2lBMEVIVEFSQUEwQWdCMEVLYkNFSElBTkJBV29pQTBFSVJ3MEFDd3NDUUNBTktBSUFJZ3NnQ3lBSGJpSVNJQWRzSWc5R0lBMUJCR29pQXlBR1JuRU5BQ0FMSUE5cklRc0NRQ0FTUVFGeFJRUkFSQUFBQUFBQUFFQkRJUUVnQjBHQWxPdmNBMGNOQVNBSUlBMVBEUUVnRFVFRWF5MEFBRUVCY1VVTkFRdEVBUUFBQUFBQVFFTWhBUXRFQUFBQUFBQUE0RDlFQUFBQUFBQUE4RDlFQUFBQUFBQUErRDhnQXlBR1JodEVBQUFBQUFBQStEOGdDeUFIUVFGMklnTkdHeUFESUF0TEd5RVlBa0FnRncwQUlCUXRBQUJCTFVjTkFDQVltaUVZSUFHYUlRRUxJQTBnRHpZQ0FDQUJJQmlnSUFGaERRQWdEU0FISUE5cUlnTTJBZ0FnQTBHQWxPdmNBMDhFUUFOQUlBMUJBRFlDQUNBSUlBMUJCR3NpRFVzRVFDQUlRUVJySWdoQkFEWUNBQXNnRFNBTktBSUFRUUZxSWdNMkFnQWdBMEgvayt2Y0Ewc05BQXNMSUE0Z0NHdEJBblZCQ1d3aENVRUtJUWNnQ0NnQ0FDSURRUXBKRFFBRFFDQUpRUUZxSVFrZ0F5QUhRUXBzSWdkUERRQUxDeUFOUVFScUlnTWdCaUFESUFaSkd5RUdDd05BSUFZaUN5QUlUU0lIUlFSQUlBWkJCR3NpQmlnQ0FFVU5BUXNMQWtBZ0ZVSG5BRWNFUUNBRVFRaHhJUk1NQVFzZ0NVRi9jMEYvSUFwQkFTQUtHeUlHSUFsS0lBbEJlMHB4SWdNYklBWnFJUXBCZjBGK0lBTWJJQVZxSVFVZ0JFRUljU0lURFFCQmR5RUdBa0FnQncwQUlBdEJCR3NvQWdBaUQwVU5BRUVLSVFOQkFDRUdJQTlCQ25BTkFBTkFJQVlpQjBFQmFpRUdJQThnQTBFS2JDSURjRVVOQUFzZ0IwRi9jeUVHQ3lBTElBNXJRUUoxUVFsc0lRTWdCVUZmY1VIR0FFWUVRRUVBSVJNZ0NpQURJQVpxUVFscklnTkJBQ0FEUVFCS0d5SURJQU1nQ2tvYklRb01BUXRCQUNFVElBb2dBeUFKYWlBR2FrRUpheUlEUVFBZ0EwRUFTaHNpQXlBRElBcEtHeUVLQzBGL0lRMGdDa0g5Ly8vL0IwSCsvLy8vQnlBS0lCTnlJZzhiU2cwQklBb2dEMEVBUjJwQkFXb2hGZ0pBSUFWQlgzRWlCMEhHQUVZRVFDQUpJQlpCLy8vLy93ZHpTZzBESUFsQkFDQUpRUUJLR3lFR0RBRUxJQkVnQ1NBSlFSOTFJZ056SUFOcnJTQVJFQzhpQm10QkFVd0VRQU5BSUFaQkFXc2lCa0V3T2dBQUlCRWdCbXRCQWtnTkFBc0xJQVpCQW1zaUVpQUZPZ0FBSUFaQkFXdEJMVUVySUFsQkFFZ2JPZ0FBSUJFZ0Vtc2lCaUFXUWYvLy8vOEhjMG9OQWdzZ0JpQVdhaUlESUJCQi8vLy8vd2R6U2cwQklBQkJJQ0FDSUFNZ0VHb2lDU0FFRUNBZ0FDQVVJQkFRSGlBQVFUQWdBaUFKSUFSQmdJQUVjeEFnQWtBQ1FBSkFJQWRCeGdCR0JFQWdERUVRYWtFSmNpRUZJQTRnQ0NBSUlBNUxHeUlESVFnRFFDQUlOUUlBSUFVUUx5RUdBa0FnQXlBSVJ3UkFJQVlnREVFUWFrME5BUU5BSUFaQkFXc2lCa0V3T2dBQUlBWWdERUVRYWtzTkFBc01BUXNnQlNBR1J3MEFJQVpCQVdzaUJrRXdPZ0FBQ3lBQUlBWWdCU0FHYXhBZUlBaEJCR29pQ0NBT1RRMEFDeUFQQkVBZ0FFSHZERUVCRUI0TElBZ2dDMDhOQVNBS1FRQk1EUUVEUUNBSU5RSUFJQVVRTHlJR0lBeEJFR3BMQkVBRFFDQUdRUUZySWdaQk1Eb0FBQ0FHSUF4QkVHcExEUUFMQ3lBQUlBWkJDU0FLSUFwQkNVNGJFQjRnQ2tFSmF5RUdJQWhCQkdvaUNDQUxUdzBESUFwQkNVb2dCaUVLRFFBTERBSUxBa0FnQ2tFQVNBMEFJQXNnQ0VFRWFpQUlJQXRKR3lFRElBeEJFR3BCQ1hJaEN5QUlJUWNEUUNBTElBYzFBZ0FnQ3hBdklnWkdCRUFnQmtFQmF5SUdRVEE2QUFBTEFrQWdCeUFJUndSQUlBWWdERUVRYWswTkFRTkFJQVpCQVdzaUJrRXdPZ0FBSUFZZ0RFRVFha3NOQUFzTUFRc2dBQ0FHUVFFUUhpQUdRUUZxSVFZZ0NpQVRja1VOQUNBQVFlOE1RUUVRSGdzZ0FDQUdJQXNnQm1zaUJTQUtJQVVnQ2tnYkVCNGdDaUFGYXlFS0lBZEJCR29pQnlBRFR3MEJJQXBCQUU0TkFBc0xJQUJCTUNBS1FSSnFRUkpCQUJBZ0lBQWdFaUFSSUJKckVCNE1BZ3NnQ2lFR0N5QUFRVEFnQmtFSmFrRUpRUUFRSUFzZ0FFRWdJQUlnQ1NBRVFZREFBSE1RSUNBQ0lBa2dBaUFKU2hzaERRd0JDeUFVSUFWQkduUkJIM1ZCQ1hGcUlRa0NRQ0FEUVF0TERRQkJEQ0FEYXlFR1JBQUFBQUFBQURCQUlSZ0RRQ0FZUkFBQUFBQUFBREJBb2lFWUlBWkJBV3NpQmcwQUN5QUpMUUFBUVMxR0JFQWdHQ0FCbWlBWW9hQ2FJUUVNQVFzZ0FTQVlvQ0FZb1NFQkN5QVJJQXdvQWl3aUJ5QUhRUjkxSWdaeklBWnJyU0FSRUM4aUJrWUVRQ0FHUVFGcklnWkJNRG9BQUFzZ0VFRUNjaUVLSUFWQklIRWhDeUFHUVFKcklnNGdCVUVQYWpvQUFDQUdRUUZyUVMxQkt5QUhRUUJJR3pvQUFDQUVRUWh4UlNBRFFRQk1jU0VJSUF4QkVHb2hCd05BSUFjaUJRSi9JQUdaUkFBQUFBQUFBT0JCWXdSQUlBR3FEQUVMUVlDQWdJQjRDeUlHUVpESkFXb3RBQUFnQzNJNkFBQWdBU0FHdDZGRUFBQUFBQUFBTUVDaUlRRUNRQ0FGUVFGcUlnY2dERUVRYW10QkFVY05BQ0FCUkFBQUFBQUFBQUFBWVNBSWNRMEFJQVZCTGpvQUFTQUZRUUpxSVFjTElBRkVBQUFBQUFBQUFBQmlEUUFMUVg4aERTQURRZjMvLy84SElBb2dFU0FPYXlJSWFpSUdhMG9OQUNBQVFTQWdBaUFHSUFOQkFtb2dCeUFNUVJCcUlnVnJJZ2NnQjBFQ2F5QURTQnNnQnlBREd5SURhaUlHSUFRUUlDQUFJQWtnQ2hBZUlBQkJNQ0FDSUFZZ0JFR0FnQVJ6RUNBZ0FDQUZJQWNRSGlBQVFUQWdBeUFIYTBFQVFRQVFJQ0FBSUE0Z0NCQWVJQUJCSUNBQ0lBWWdCRUdBd0FCekVDQWdBaUFHSUFJZ0Jrb2JJUTBMSUF4QnNBUnFKQUFnRFFzRUFFSUFDd1FBUVFBTEhBQWdBQ2dDUEJBUklnQUVmMEhVelFFZ0FEWUNBRUYvQlVFQUN3dktBZ0VIZnlNQVFTQnJJZ01rQUNBRElBQW9BaHdpQkRZQ0VDQUFLQUlVSVFVZ0F5QUNOZ0ljSUFNZ0FUWUNHQ0FESUFVZ0JHc2lBVFlDRkNBQklBSnFJUVZCQWlFR0lBTkJFR29oQVFKL0EwQUNRQUpBQWtBZ0FDZ0NQQ0FCSUFZZ0EwRU1haEFCSWdRRWYwSFV6UUVnQkRZQ0FFRi9CVUVBQzBVRVFDQUZJQU1vQWd3aUIwWU5BU0FIUVFCT0RRSU1Bd3NnQlVGL1J3MENDeUFBSUFBb0Fpd2lBVFlDSENBQUlBRTJBaFFnQUNBQklBQW9BakJxTmdJUUlBSU1Bd3NnQVNBSElBRW9BZ1FpQ0VzaUNVRURkR29pQkNBSElBaEJBQ0FKRzJzaUNDQUVLQUlBYWpZQ0FDQUJRUXhCQkNBSkcyb2lBU0FCS0FJQUlBaHJOZ0lBSUFVZ0Iyc2hCU0FHSUFscklRWWdCQ0VCREFFTEN5QUFRUUEyQWh3Z0FFSUFOd01RSUFBZ0FDZ0NBRUVnY2pZQ0FFRUFJQVpCQWtZTkFCb2dBaUFCS0FJRWF3c2dBMEVnYWlRQUMxSUJBWDhnQUNnQ1BDTUFRUkJySWdBa0FDQUJweUFCUWlDSXB5QUNRZjhCY1NBQVFRaHFFQWtpQWdSL1FkVE5BU0FDTmdJQVFYOEZRUUFMSVFJZ0FDa0RDQ0VCSUFCQkVHb2tBRUovSUFFZ0Foc0xCZ0FnQUJBQUN3WUFJQUFRQXd2dmdRRUZBM3d5ZndoN0EzNEdmU01BUWVEQUFHc2lHaVFBSUJwQkFEWUNJRUVDSVE0Q1FBSkFJQUFvQWdBaUNFR05sSnpVQUVZTkFDQUlRZitmL1k4RlJ3UkFBa0FnQ0VHQWdJRGdBRWNOQUNBQUtBSUVRZXFnZ1lFQ1J3MEFJQUFvQWdoQmpaU2MxQUJHRFFJTFFjMElFQUJCQVNFT0RBSUxRUUFoRGdzQ2YwRUFRUUZCNEFBUUZ5SUlSUTBBR2lBSVFRRTJBa3dDUUFKQUFrQUNRQ0FPRGdNQUF3RURDeUFJUWNRQU5nSllJQWhCeFFBMkFsUWdDRUhHQURZQ1VDQUlRY2NBTmdJUUlBaEJ5QUEyQWdRZ0NFSEpBRFlDSENBSVFjb0FOZ0lZSUFoQnl3QTJBaFFnQ0VITUFEWUNBQ0FJUWMwQU5nSmNJQWhCemdBMkFpd2dDRUhQQURZQ0tDQUlRZEFBTmdJa0lBaEIwUUEyQWlBZ0NFSFNBRFlDRENBSVFkTUFOZ0lJSUFnUVZpSU5OZ0l3SUEwTkFRd0NDeUFJUWRRQU5nSllJQWhCMVFBMkFsUWdDRUhXQURZQ1VDQUlRZGNBTmdJUUlBaEIyQUEyQWdRZ0NFSFpBRFlDWENBSVFkb0FOZ0lzSUFoQjJ3QTJBaWdnQ0VIY0FEWUNKQ0FJUWQwQU5nSWdJQWhCM2dBMkFod2dDRUhmQURZQ0dDQUlRZUFBTmdJVUlBaEI0UUEyQWd3Z0NFSGlBRFlDQ0NBSVFlTUFOZ0lBSUFnQ2YwRUJRWWdCRUJjaURRUkFJQTBRVmlJVU5nSUFBa0FnRkVVTkFDQU4vUXdBQUFBQUFBQUFBQUFBQUFBQUFBQUEvUXNDYkNBTlFRQTZBSHdnRFJBNUloUTJBZ1FnRkVVTkFDQU5FRGtpRkRZQ0NDQVVSUTBBSUEwTUFnc2dEUkI5QzBFQUN5SU5OZ0l3SUExRkRRRUxJQWhCQVRZQ1NDQUlRUUUyQWtBZ0NFRUFOZ0k4SUFoQ0FEY0NOQ0FJUVFFMkFrUWdDQXdCQ3lBSUVCUkJBQXNpRFFSQUlBMUJBRFlDUENBTlFlUUFOZ0pJQ3lBTkJFQWdEVUVBTmdJNElBMUI1UUEyQWtRTElBMEVRQ0FOUVFBMkFqUWdEVUhtQURZQ1FBc2dHa0VrYWlJSUJFQWdDRUVBUWJqQUFCQVpJZ2hCQURZQ3VFQWdDRUovTndLSVFBc2dBd1JBSUJvZ0dpZ0MzRUJCQVhJMkF0eEFDeUFhSUFFMkFod2dHaUFBTmdJWUlCb2dBRFlDRkVFQklRNUJBQ0VCQWtBZ0drRVVhaUlJUlEwQVFRRkJ5QUFRRnlJQUJIOENmeUFBUVlDQXdBQTJBa0FnQUVHQWdNQUFFQmdpRkRZQ0lDQVVSUVJBSUFBUUZFRUFEQUVMSUFBZ0ZEWUNKQ0FBUVFJMkFod2dBRUVETmdJWUlBQkJCRFlDRkNBQVFRVTJBaEFnQUVFR05nSXNJQUJCQ0RZQ0tDQUFJQUFvQWtSQkFuSTJBa1FnQUFzRlFRQUxJZ0JGRFFBZ0FBUkFJQUJCQURZQ0JDQUFJQWcyQWdBTElBZzFBZ2doUWlBQUJFQWdBQ0JDTndNSUN3SkFJQUJGRFFBZ0FDMEFSRUVDY1VVTkFDQUFRY0FBTmdJUUN5QUFCRUFnQUVIQ0FEWUNHQXNnQUFSQUlBQkJ3d0EyQWh3TElBQWhBUXNnQVNFQUFuOGdHa0VrYWlFQkFrQWdEVVVOQUNBQlJRMEFJQTBvQWt4RkJFQWdEVUUwYWtFQlFZbk5BRUVBRUJOQkFBd0NDeUFOS0FJd0lBRWdEU2dDR0JFREFFRUJJUWtMSUFrTFJRUkFRZHdJRUFBZ0FCQTlJQTBRUGd3QkN3Si9JQnBCSUdvaEFVRUFJUWdDUUNBQVJRMEFJQTFGRFFBZ0RTZ0NURVVFUUNBTlFUUnFRUUZCMnMwQVFRQVFFMEVBREFJTElBQWdEU2dDTUNBQklBMUJOR29nRFNnQ0FCRUJBQ0VJQ3lBSUMwVUVRRUg0Q0JBQUlBQVFQU0FORUQ0Z0dpZ0NJQkFsREFFTElCb29BaUFoQVVFQUlRZ0NRQ0FOUlEwQUlBQkZEUUFnRFNnQ1RFVU5BQ0FOS0FJd0lBQWdBU0FOUVRScUlBMG9BZ1FSQVFBaENBc0NRQ0FJQkVCQkFDRUlBa0FnRFVVTkFDQUFSUTBBSUEwb0FreEZEUUFnRFNnQ01DQUFJQTFCTkdvZ0RTZ0NFQkVBQUNFSUN5QUlEUUVMUWY4SkVBQWdEUkErSUFBUVBTQWFLQUlnRUNVTUFRc2dBQkE5SUEwUVBpQWFLQUlnSWhRb0Fod2lBQVJBSUFBUUZDQWFLQUlnSWhSQ0FEY0NIQXNnRkNnQ0VDRWhBa0FDUUNBQ1JRUkFBa0FnQkVVTkFDQWhRUVJIRFFCQkFTRVpRUVFoSVF3REN3SkFBa0FnRkNnQ0ZDSUJRUU5HRFFBZ0lVRURSdzBBSUJRb0FoZ2lBQ2dDQUNBQUtBSUVSdzBCSUFBb0FqUkJBVVlOQVNBVVFRTTJBaFFNQXdzZ0lVRUNTdzBBSUJSQkFqWUNGQXdEQ3dKQUFrQWdBVUVEYXc0REF3RUFCQXNqQUVFUWF5SUpKQUFDUUFKQUFrQWdGQ2dDRUVFRVNRMEFJQlFvQWhnaUFDZ0NBQ0lCSUFBb0FqUkhEUUFnQVNBQUtBSm9SdzBBSUFFZ0FDZ0NuQUZIRFFBZ0FDZ0NCQ0lCSUFBb0FqaEhEUUFnQVNBQUtBSnNSdzBBSUFFZ0FDZ0NvQUZHRFFFTElBbEJuUWcyQWdRZ0NVRzRDallDQUVHd3l3RkJ6ajhnQ1JBYURBRUxBa0FnQUNnQ0RDQUFLQUlJYkNJTlJRUkFJQUFvQXNnQklRRU1BUXREQUFDQVAwRi9JQUFvQXJRQmRFRi9jN09WSVVWREFBQ0FQMEYvSUFBb0FvQUJkRUYvYzdPVklVZERBQUNBUDBGL0lBQW9Ba3gwUVg5enM1VWhTRU1BQUlBL1FYOGdBQ2dDR0hSQmYzT3psU0ZHSUFBb0FzZ0JJUUVnQUNnQ2xBRWhBaUFBS0FKZ0lRb2dBQ2dDTENFSVFRQWhBQUpBSUExQkNFa05BQ0FJSUFvZ0RVRUNkQ0lMYWlJUFNTQUtJQWdnQzJvaUZrbHhEUUFnQWlBV1NTQUlJQUlnQzJvaURFbHhEUUFnQVNBV1NTQUlJQUVnQzJvaUMwbHhEUUFnQ2lBTVNTQUNJQTlKY1EwQUlBRWdEMGtnQ2lBTFNYRU5BQ0FCSUF4SklBSWdDMGx4RFFBZ0RVRjhjU0VBSUVYOUV5RTZJRWY5RXlFN0lFajlFeUZBSUViOUV5RTlRUUFoQ3dOQUlBSWdDMEVDZENJUGFpSVcvUUFDQUNFK0lBb2dEMm9pRFAwQUFnQWhQeUFJSUE5cUloRDlEQUFBZ0Q4QUFJQS9BQUNBUHdBQWdEOGdQU0FRL1FBQ0FQMzZBZjNtQWYzbEFmME1BQUIvUXdBQWYwTUFBSDlEQUFCL1EvM21BZjBNQUFDQVB3QUFnRDhBQUlBL0FBQ0FQeUE2SUFFZ0QycjlBQUlBL2ZvQi9lWUIvZVVCSWp6OTVnSDkrQUg5Q3dJQUlBejlEQUFBZ0Q4QUFJQS9BQUNBUHdBQWdEOGdRQ0EvL2ZvQi9lWUIvZVVCL1F3QUFIOURBQUIvUXdBQWYwTUFBSDlEL2VZQklEejk1Z0g5K0FIOUN3SUFJQmI5REFBQWdEOEFBSUEvQUFDQVB3QUFnRDhnT3lBKy9mb0IvZVlCL2VVQi9Rd0FBSDlEQUFCL1F3QUFmME1BQUg5RC9lWUJJRHo5NWdIOStBSDlDd0lBSUF0QkJHb2lDeUFBUncwQUN5QUFJQTFHRFFFTEEwQUNmME1BQUlBL0lFWWdDQ0FBUVFKMElndHFJZzhvQWdDeWxKTkRBQUIvUTVSREFBQ0FQeUJGSUFFZ0Myb29BZ0N5bEpNaVNaUWlTb3REQUFBQVQxMEVRQ0JLcUF3QkMwR0FnSUNBZUFzaEZpQUNJQXRxSWd3b0FnQWhFQ0FLSUF0cUlnc29BZ0FoRGlBUElCWTJBZ0FnQ3dKL1F3QUFnRDhnU0NBT3NwU1RRd0FBZjBPVUlFbVVJa3FMUXdBQUFFOWRCRUFnU3FnTUFRdEJnSUNBZ0hnTE5nSUFJQXdDZjBNQUFJQS9JRWNnRUxLVWswTUFBSDlEbENCSmxDSkppME1BQUFCUFhRUkFJRW1vREFFTFFZQ0FnSUI0Q3pZQ0FDQUFRUUZxSWdBZ0RVY05BQXNMSUFFUUZDQVVLQUlZSWdCQkNEWUNnQUVnQUVFSU5nSk1JQUJCQ0RZQ0dDQUFRUUEyQXNnQklCUkJBVFlDRkNBVUlCUW9BaEJCQVdzaUFEWUNFQ0FBUVFSSkRRQkJBeUVBQTBBZ0ZDZ0NHQ0FBUVRSc2FpSUJJQUVvQW1RMkFqQWdBU0FCL1FBQ1ZQMExBaUFnQVNBQi9RQUNSUDBMQWhBZ0FTQUIvUUFDTlAwTEFnQWdBRUVCYWlJQUlCUW9BaEJKRFFBTEN5QUpRUkJxSkFBTUF3c2pBRUVRYXlJSkpBQUNRQUpBQWtBZ0ZDZ0NFRUVEU1EwQUlCUW9BaGdpQUNnQ0FDSUJJQUFvQWpSSERRQWdBU0FBS0FKb1J3MEFJQUFvQWdRaUFTQUFLQUk0UncwQUlBRWdBQ2dDYkVZTkFRc2dDVUhiQ0RZQ0JDQUpRYmdLTmdJQVFiRExBVUg0UHlBSkVCb01BUXNDUUNBQUtBSU1JQUFvQWdoc0lnSkZEUUJCZnlBQUtBSVlJZ3AwUVg5eklRRkJBRUVCSUFwQkFXdDBJZ29nQUNnQ2lBRWJJUTlCQUNBS0lBQW9BbFFiSVJZZ0FDZ0NsQUVoQ2lBQUtBSmdJUWdnQUNnQ0xDRU5RUUFoQUFKQUlBSkJCRWtOQUNBTklBZ2dBa0VDZENJTGFpSU1TU0FJSUFzZ0RXb2lFRWx4RFFBZ0NpQVFTU0FOSUFvZ0Myb2lDMGx4RFFBZ0NDQUxTU0FLSUF4SmNRMEFJQUpCZkhFaEFDQUIvUkVoUENBUC9SRWhQU0FXL1JFaFBrRUFJUXNEUUNBTklBdEJBblFpREdvaUVDQThJQW9nREdvaUR2MEFBZ0FnUGYyeEFmMzZBU0k2L1F4cGRMTS9hWFN6UDJsMHN6OXBkTE0vL2VZQklBZ2dER29pRFAwQUFnQWdQdjJ4QWYzNkFTSTcvUXl6V1JxNHMxa2F1TE5aR3JpeldScTQvZVlCSUJEOUFBSUEvZm9CSWtEOTVBSDk1QUg5REFBQUFEOEFBQUEvQUFBQVB3QUFBRC85NUFIOStBRWlQLzBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBUDI0QVNBOElELzlPZjFTL1FzQ0FDQU1JRHdnT3YwTUdkQTJ2eG5RTnI4WjBEYS9HZEEydi8zbUFTQkEvUXpWQ1lBLzFRbUFQOVVKZ0QvVkNZQS8vZVlCSUR2OURDY3hzTDRuTWJDK0p6R3d2aWN4c0w3OTVnSDk1QUg5NUFIOURBQUFBRDhBQUFBL0FBQUFQd0FBQUQvOTVBSDkrQUVpUC8wTUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAyNEFTQThJRC85T2YxUy9Rc0NBQ0FPSUR3Z092ME12VGNHdDcwM0JyZTlOd2EzdlRjR3QvM21BU0JBL1F4bTlIOC9adlIvUDJiMGZ6OW05SDgvL2VZQklEdjlERFhTNGo4MTB1SS9OZExpUHpYUzRqLzk1Z0g5NUFIOTVBSDlEQUFBQUQ4QUFBQS9BQUFBUHdBQUFELzk1QUg5K0FFaU92ME1BQUFBQUFBQUFBQUFBQUFBQUFBQUFQMjRBU0E4SURyOU9mMVMvUXNDQUNBTFFRUnFJZ3NnQUVjTkFBc2dBQ0FDUmcwQkN3TkFBbjhnQ2lBQVFRSjBJZ3RxSWd3b0FnQWdEMnV5SWtWRGFYU3pQNVFnQ0NBTGFpSVFLQUlBSUJacnNpSkhRN05aR3JpVUlBc2dEV29pRGlnQ0FMSWlTSktTUXdBQUFEK1NJa2FMUXdBQUFFOWRCRUFnUnFnTUFRdEJnSUNBZ0hnTElRc2dEaUFCSUF0QkFDQUxRUUJLR3lBQklBdElHellDQUNBUUlBRUNmeUJGUXhuUU5yK1VJRWhEMVFtQVA1UWdSME1uTWJDK2xKS1NRd0FBQUQrU0lrYUxRd0FBQUU5ZEJFQWdScWdNQVF0QmdJQ0FnSGdMSWd0QkFDQUxRUUJLR3lBQklBdElHellDQUNBTUlBRUNmeUJGUTcwM0JyZVVJRWhEWnZSL1A1UWdSME0xMHVJL2xKS1NRd0FBQUQrU0lrV0xRd0FBQUU5ZEJFQWdSYWdNQVF0QmdJQ0FnSGdMSWd0QkFDQUxRUUJLR3lBQklBdElHellDQUNBQVFRRnFJZ0FnQWtjTkFBc0xJQlJCQVRZQ0ZBc2dDVUVRYWlRQURBSUxJQ0VnQWlBQ0lDRkxHeUVoUVFFaEdRd0JDd0pBQWtBQ2Z3SkFBa0FnRkNnQ0dDSUJLQUlBUVFGSERRQUNRQUpBSUFFb0FqUkJBV3NPQWdFQUFnc2dBU2dDYUVFQ1J3MEJBa0FnQVNnQ0JFRUJSdzBBSUFFb0FqaEJBa2NOQUNBQktBSnNRUUpIRFFBZ0ZDSVdLQUlZSWdBb0FoZ2hBU0FBS0FLVUFTRU9JQUFvQW1BaENpQUFLQUlzSVJBZ0FDZ0NQQ0VmSUFBb0FnZ2lDU0FBS0FJTUlnSnNRUUowSWdBUUhDRUlJQUFRSENFTklBQVFIQ0VVQWtBQ1FBSkFBa0FDUUFKQUlBaEZEUUFnRFVVTkFDQVVSUTBBUVg4Z0FYUkJmM01oREVFQklBRkJBV3QwSVJFZ0FpQVdLQUlFUVFGeElnQnJJU1lnRmlnQ0FFRUJjU0VkSUFCRkRRTWdDVVVOQXdKL1FRQWdFV3V5dXlJRlJHcThkSk1ZQk5ZL29pQUZSQXdDSzRjVzJlWS9vcUFpQnBsRUFBQUFBQUFBNEVGakJFQWdCcW9NQVF0QmdJQ0FnSGdMSVJNQ2Z5QUZSQ2N4Q0t3Y1d2dy9vaUlHbVVRQUFBQUFBQURnUVdNRVFDQUdxZ3dCQzBHQWdJQ0FlQXNoRlNBSlFRaEpBbjhnQlVRNzMwK05sMjcyUDZJaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTElSc05BU0FOSUFoclFSQkpEUUVnRkNBSWEwRVFTUTBCSUFnZ0VHdEJFRWtOQVNBVUlBMXJRUkJKRFFFZ0RTQVFhMEVRU1EwQklCUWdFR3RCRUVrTkFTQVVJQWxCZkhFaUQwRUNkQ0lDYWlFQUlBSWdDR29oQVNBVi9SRWhPeUFUL1JFaFFDQU0vUkVoUENBYi9SRWhQUU5BSUFnZ0YwRUNkQ0lMYXYwTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNBTElCQnEvUUFDQUNJNklEMzlyZ0VpUGlBOC9iWUJJRDc5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUQ5T2YxUy9Rc0NBQ0FMSUExcS9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUlEb2dRUDJ4QVNJK0lEejl0Z0VnUHYwTUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAwNS9WTDlDd0lBSUFzZ0ZHcjlEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWdPaUE3L2E0Qklqb2dQUDIyQVNBNi9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQS9UbjlVdjBMQWdBZ0YwRUVhaUlYSUE5SERRQUxJQUlnRUdvaEVDQUNJQTFxSVFJZ0NTQVBSZzBFREFJTElBZ1FGQ0FORUJRZ0ZCQVVEQVFMSUFnaEFTQU5JUUlnRkNFQUN3TkFJQUVnRUNnQ0FDSUxJQnRxSWhjZ0RDQU1JQmRLRzBFQUlCZEJBRTRiTmdJQUlBSWdDeUFUYXlJWElBd2dEQ0FYU2h0QkFDQVhRUUJPR3pZQ0FDQUFJQXNnRldvaUN5QU1JQXNnREVnYlFRQWdDMEVBVGhzMkFnQWdBRUVFYWlFQUlBSkJCR29oQWlBQlFRUnFJUUVnRUVFRWFpRVFJQTlCQVdvaUR5QUpSdzBBQ3d3QkN5QVVJUUFnRFNFQ0lBZ2hBUXNnQ1NBZGF5RWlBa0FnSmtGK2NTSW5CSDhDZjBFQUlCRnJzcnNpQlVScXZIU1RHQVRXUDZJZ0JVUU1BaXVIRnRubVA2S2dJZ2FaUkFBQUFBQUFBT0JCWXdSQUlBYXFEQUVMUVlDQWdJQjRDeUVlSUNKQmZuRWlLRUVCYXdKL0lBVkVKekVJckJ4YS9EK2lJZ2FaUkFBQUFBQUFBT0JCWXdSQUlBYXFEQUVMUVlDQWdJQjRDeUVnUVg1eEFuOGdCVVE3MzArTmwyNzJQNklpQlpsRUFBQUFBQUFBNEVGakJFQWdCYW9NQVF0QmdJQ0FnSGdMSVNNZ0owRUJheUVwUVFKcUlRc2dDVUVDZENFYkEwQWdBQ0FiYWlFWElBSWdHMm9oRlNBQklCdHFJUThnRUNBYmFpRVRJQjBFUUNBQklCQW9BZ0FpQ1NBamFpSVNJQXdnRENBU1NodEJBQ0FTUVFCT0d6WUNBQ0FDSUFrZ0htc2lFaUFNSUF3Z0Vrb2JRUUFnRWtFQVRoczJBZ0FnQUNBSklDQnFJZ2tnRENBSklBeElHMEVBSUFsQkFFNGJOZ0lBSUFvb0FnQWhHQ0FQQW44Z0RpZ0NBQ0FSYTdLN0lnVkVPOTlQalpkdTlqK2lJZ2FaUkFBQUFBQUFBT0JCWXdSQUlBYXFEQUVMUVlDQWdJQjRDeUFUS0FJQUlnbHFJaElnRENBTUlCSktHMEVBSUJKQkFFNGJOZ0lBSUJVZ0NRSi9JQmdnRVd1eXV5SUdSR3E4ZEpNWUJOWS9vaUFGUkF3Q0s0Y1cyZVkvb3FBaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTGF5SVNJQXdnRENBU1NodEJBQ0FTUVFCT0d6WUNBQ0FYQW44Z0JrUW5NUWlzSEZyOFA2SWlCWmxFQUFBQUFBQUE0RUZqQkVBZ0Jhb01BUXRCZ0lDQWdIZ0xJQWxxSWdrZ0RDQUpJQXhJRzBFQUlBbEJBRTRiTmdJQUlCZEJCR29oRnlBVlFRUnFJUlVnRDBFRWFpRVBJQk5CQkdvaEV5QUNRUVJxSVFJZ0VFRUVhaUVRSUFGQkJHb2hBU0FBUVFScUlRQUxRUUFoQ1NBb0JFQURRQ0FLS0FJQUlSd2dBUUovSUE0b0FnQWdFV3V5dXlJRlJEdmZUNDJYYnZZL29pSUdtVVFBQUFBQUFBRGdRV01FUUNBR3Fnd0JDMEdBZ0lDQWVBc2dFQ2dDQUNJU2FpSVlJQXdnRENBWVNodEJBQ0FZUVFCT0d6WUNBQ0FDSUJJQ2Z5QWNJQkZyc3JzaUJrUnF2SFNUR0FUV1A2SWdCVVFNQWl1SEZ0bm1QNktnSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0QzJzaUdDQU1JQXdnR0VvYlFRQWdHRUVBVGhzMkFnQWdBQUovSUFaRUp6RUlyQnhhL0QraUlnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEN5QVNhaUlTSUF3Z0RDQVNTaHRCQUNBU1FRQk9HellDQUNBS0tBSUFJUndnQVFKL0lBNG9BZ0FnRVd1eXV5SUZSRHZmVDQyWGJ2WS9vaUlHbVVRQUFBQUFBQURnUVdNRVFDQUdxZ3dCQzBHQWdJQ0FlQXNnRUNnQ0JDSVNhaUlZSUF3Z0RDQVlTaHRCQUNBWVFRQk9HellDQkNBQ0lCSUNmeUFjSUJGcnNyc2lCa1JxdkhTVEdBVFdQNklnQlVRTUFpdUhGdG5tUDZLZ0lnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEMyc2lHQ0FNSUF3Z0dFb2JRUUFnR0VFQVRoczJBZ1FnQUFKL0lBWkVKekVJckJ4YS9EK2lJZ1daUkFBQUFBQUFBT0JCWXdSQUlBV3FEQUVMUVlDQWdJQjRDeUFTYWlJU0lBd2dEQ0FTU2h0QkFDQVNRUUJPR3pZQ0JDQUtLQUlBSVJ3Z0R3Si9JQTRvQWdBZ0VXdXl1eUlGUkR2ZlQ0Mlhidlkvb2lJR21VUUFBQUFBQUFEZ1FXTUVRQ0FHcWd3QkMwR0FnSUNBZUFzZ0V5Z0NBQ0lTYWlJWUlBd2dEQ0FZU2h0QkFDQVlRUUJPR3pZQ0FDQVZJQklDZnlBY0lCRnJzcnNpQmtScXZIU1RHQVRXUDZJZ0JVUU1BaXVIRnRubVA2S2dJZ1daUkFBQUFBQUFBT0JCWXdSQUlBV3FEQUVMUVlDQWdJQjRDMnNpR0NBTUlBd2dHRW9iUVFBZ0dFRUFUaHMyQWdBZ0Z3Si9JQVpFSnpFSXJCeGEvRCtpSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0Q3lBU2FpSVNJQXdnRENBU1NodEJBQ0FTUVFCT0d6WUNBQ0FLS0FJQUlSd2dEd0ovSUE0b0FnQWdFV3V5dXlJRlJEdmZUNDJYYnZZL29pSUdtVVFBQUFBQUFBRGdRV01FUUNBR3Fnd0JDMEdBZ0lDQWVBc2dFeWdDQkNJU2FpSVlJQXdnRENBWVNodEJBQ0FZUVFCT0d6WUNCQ0FWSUJJQ2Z5QWNJQkZyc3JzaUJrUnF2SFNUR0FUV1A2SWdCVVFNQWl1SEZ0bm1QNktnSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0QzJzaUdDQU1JQXdnR0VvYlFRQWdHRUVBVGhzMkFnUWdGd0ovSUFaRUp6RUlyQnhhL0QraUlnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEN5QVNhaUlTSUF3Z0RDQVNTaHRCQUNBU1FRQk9HellDQkNBT1FRUnFJUTRnQ2tFRWFpRUtJQmRCQ0dvaEZ5QVZRUWhxSVJVZ0QwRUlhaUVQSUJOQkNHb2hFeUFBUVFocUlRQWdBa0VJYWlFQ0lBRkJDR29oQVNBUVFRaHFJUkFnQ1VFQ2FpSUpJQ2hKRFFBTElBc2hDUXNDUUNBSklDSlBEUUFnRUNnQ0FDRVNJQThDZnlBZklBbEJBWFlpR0VZRVFDQUJJQklnSTJvaUNTQU1JQWtnREVnYlFRQWdDVUVBVGhzMkFnQWdBaUFTSUI1cklna2dEQ0FKSUF4SUcwRUFJQWxCQUU0Yk5nSUFJQUFnRWlBZ2FpSUpJQXdnQ1NBTVNCdEJBQ0FKUVFCT0d6WUNBQ0FUS0FJQUlna2dIbXNpRHlBTUlBd2dEMG9iUVFBZ0QwRUFUaHNoRHlBSklDQnFJUk1nQ1NBamFpSUpJQXdnQ1NBTVNCdEJBQ0FKUVFCT0d3d0JDeUFLS0FJQUlROGdBUUovSUE0b0FnQWdFV3V5dXlJRlJEdmZUNDJYYnZZL29pSUdtVVFBQUFBQUFBRGdRV01FUUNBR3Fnd0JDMEdBZ0lDQWVBc2dFbW9pQ1NBTUlBa2dERWdiUVFBZ0NVRUFUaHMyQWdBZ0FpQVNBbjhnRHlBUmE3SzdJZ1pFYXJ4MGt4Z0UxaitpSUFWRURBSXJoeGJaNWoraW9DSUZtVVFBQUFBQUFBRGdRV01FUUNBRnFnd0JDMEdBZ0lDQWVBdHJJZ2tnRENBSklBeElHMEVBSUFsQkFFNGJOZ0lBSUFBQ2Z5QUdSQ2N4Q0t3Y1d2dy9vaUlGbVVRQUFBQUFBQURnUVdNRVFDQUZxZ3dCQzBHQWdJQ0FlQXNnRW1vaUNTQU1JQWtnREVnYlFRQWdDVUVBVGhzMkFnQWdFeWdDQUNJSkFuOGdDaWdDQUNBUmE3SzdJZ1ZFYXJ4MGt4Z0UxaitpSUE0b0FnQWdFV3V5dXlJR1JBd0NLNGNXMmVZL29xQWlCNWxFQUFBQUFBQUE0RUZqQkVBZ0I2b01BUXRCZ0lDQWdIZ0xheUlQSUF4SUlSTWdEeUFNSUJNYklSTWdEMEVBU0NFU0FuOGdCa1E3MzArTmwyNzJQNklpQnBsRUFBQUFBQUFBNEVGakJFQWdCcW9NQVF0QmdJQ0FnSGdMSUFscUlnOGdEQ0FNSUE5S0d5RWNJQTlCQUVnaEpFRUFJQk1nRWhzaER3Si9JQVZFSnpFSXJCeGEvRCtpSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0Q3lBSmFpRVRRUUFnSENBa0d3czJBZ0FnRlNBUE5nSUFJQmNnRXlBTUlBd2dFMG9iUVFBZ0UwRUFUaHMyQWdBZ0FFRUVhaUVBSUFKQkJHb2hBaUFCUVFScUlRRWdFRUVFYWlFUUlCZ2dIMDhOQUNBT1FRUnFJUTRnQ2tFRWFpRUtDeUFBSUJ0cUlRQWdBaUFiYWlFQ0lBRWdHMm9oQVNBUUlCdHFJUkFnSlVFQ2FpSWxJQ2RKRFFBTElDbEJmbkZCQW1vRlFRQUxJQ1pQRFFBZ0hRUkFJQUVDZjBFQUlCRnJzcnNpQlVRNzMwK05sMjcyUDZJaUJwbEVBQUFBQUFBQTRFRmpCRUFnQnFvTUFRdEJnSUNBZ0hnTElCQW9BZ0FpQ1dvaUN5QU1JQXNnREVnYlFRQWdDMEVBVGhzMkFnQWdBaUFKQW44Z0JVUnF2SFNUR0FUV1A2SWdCVVFNQWl1SEZ0bm1QNktnSWdhWlJBQUFBQUFBQU9CQll3UkFJQWFxREFFTFFZQ0FnSUI0QzJzaUN5QU1JQXNnREVnYlFRQWdDMEVBVGhzMkFnQWdBQUovSUFWRUp6RUlyQnhhL0QraUlnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEN5QUphaUlKSUF3Z0NTQU1TQnRCQUNBSlFRQk9HellDQUNBQ1FRUnFJUUlnRUVFRWFpRVFJQUZCQkdvaEFTQUFRUVJxSVFBTElDSWdJa0YrY1NJYkJIOGdHMEVCYXlJSlFYNXhBa0FDZjBFQUlCdEJEMGtOQUJwQkFDQUJJQUlnQ1VFQmRpSVZRUU4wUVFocUloTnFJZ2xKSUFJZ0FTQVRhaUlMU1hFTkFCcEJBQ0FBSUF0SklBRWdBQ0FUYWlJUFNYRU5BQnBCQUNBQklCQWdFMm9pRTBrZ0N5QVFTM0VOQUJwQkFDQUtJQXRKSUFFZ0NpQVZRUUowUVFScUloSnFJaGRKY1EwQUdrRUFJQXNnRGtzZ0FTQU9JQkpxSWd0SmNRMEFHa0VBSUFJZ0Qwa2dBQ0FKU1hFTkFCcEJBQ0FDSUJOSklBa2dFRXR4RFFBYVFRQWdBaUFYU1NBSklBcExjUTBBR2tFQUlBSWdDMGtnQ1NBT1MzRU5BQnBCQUNBQUlCTkpJQThnRUV0eERRQWFRUUFnQUNBWFNTQUtJQTlKY1EwQUdrRUFJQUFnQzBrZ0RpQVBTWEVOQUJvZ0NpQVZRUUZxSWlWQi9QLy8vd2R4SWhkQkFuUWlKbW9oQ1NBQUlCZEJBM1FpRW1vaEN5QUJJQkpxSVE4Z0RQMFJJVHdnRWYwUklVQkJBQ0VWQTBBZ0VDQVZRUU4wSWhOQkdISWlIV29pSnlBUUlCTkJFSElpSG1vaUtDQVFJQk5CQ0hJaUlHb2lHQ0FRSUJOcUlpbjlYQUlBL1ZZQ0FBSDlWZ0lBQXYxV0FnQURJVG9DZnlBT0lCVkJBblFpSEdyOUFBSUFJRUQ5c1FIOStnRWlPLzFmSWozOUREdmZUNDJYYnZZL085OVBqWmR1OWovOThnRWlQdjBoQVNJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUFzaEpDQUtJQnhxL1FBQ0FDRS9JQUVnRTJvaUhQME1BQUFBQUFBQUFBQUFBQUFBQUFBQUFDQTZBbjhnUHYwaEFDSUZtVVFBQUFBQUFBRGdRV01FUUNBRnFnd0JDMEdBZ0lDQWVBdjlFU0FrL1J3QkFuOGdPeUE3L1EwSUNRb0xEQTBPRHdBQkFnTUFBUUlEL1Y4aVB2ME1POTlQalpkdTlqODczMCtObDI3MlAvM3lBU0k3L1NFQUlnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEMvMGNBZ0ovSUR2OUlRRWlCWmxFQUFBQUFBQUE0RUZqQkVBZ0Jhb01BUXRCZ0lDQWdIZ0wvUndESWtIOXJnRWlPeUE4L2JZQklEdjlEQUFBQUFBQUFBQUFBQUFBQUFBQUFBRDlPZjFTSWp2OVdnSUFBQ0FCSUNCcUlpUWdPLzFhQWdBQklBRWdIbW9pTENBNy9Wb0NBQUlnQVNBZGFpSXRJRHY5V2dJQUF3Si9JRDhnUVAyeEFmMzZBU0k3L1Y4aVAvME1hcngwa3hnRTFqOXF2SFNUR0FUV1AvM3lBU0E5L1F3TUFpdUhGdG5tUHd3Q0s0Y1cyZVkvL2ZJQi9mQUJJajM5SVFFaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTElTb2dBaUFUYWlJdS9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUlEb0NmeUE5L1NFQUlnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEMvMFJJQ3I5SEFFQ2Z5QTcvUXdBQUFBQUFBQUFBQUFBQUFBQUFBQUEvUTBJQ1FvTERBME9Ed0FCQWdNQUFRSUQvVjhpUGYwTWFyeDBreGdFMWo5cXZIU1RHQVRXUC8zeUFTQSsvUXdNQWl1SEZ0bm1Qd3dDSzRjVzJlWS8vZklCL2ZBQklqdjlJUUFpQlpsRUFBQUFBQUFBNEVGakJFQWdCYW9NQVF0QmdJQ0FnSGdML1J3Q0FuOGdPLzBoQVNJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUF2OUhBTWlQdjJ4QVNJN0lEejl0Z0VnTy8wTUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAwNS9WSWlPLzFhQWdBQUlBSWdJR29pS2lBNy9Wb0NBQUVnQWlBZWFpSXZJRHY5V2dJQUFpQUNJQjFxSWpBZ08vMWFBZ0FEQW44Z1AvME1KekVJckJ4YS9EOG5NUWlzSEZyOFAvM3lBU0k3L1NFQklnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEN5RXJJQUFnRTJvaUUvME1BQUFBQUFBQUFBQUFBQUFBQUFBQUFDQTZBbjhnTy8waEFDSUZtVVFBQUFBQUFBRGdRV01FUUNBRnFnd0JDMEdBZ0lDQWVBdjlFU0FyL1J3QkFuOGdQZjBNSnpFSXJCeGEvRDhuTVFpc0hGcjhQLzN5QVNJNi9TRUFJZ1daUkFBQUFBQUFBT0JCWXdSQUlBV3FEQUVMUVlDQWdJQjRDLzBjQWdKL0lEcjlJUUVpQlpsRUFBQUFBQUFBNEVGakJFQWdCYW9NQVF0QmdJQ0FnSGdML1J3RElqMzlyZ0VpT2lBOC9iWUJJRHI5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUQ5T2YxU0lqcjlXZ0lBQUNBQUlDQnFJaUFnT3YxYUFnQUJJQUFnSG1vaUhpQTYvVm9DQUFJZ0FDQWRhaUlkSURyOVdnSUFBeUFjL1F3QUFBQUFBQUFBQUFBQUFBQUFBQUFBSUNkQkJHb2dLRUVFYWlBWVFRUnFJQ245WEFJRS9WWUNBQUg5VmdJQUF2MVdBZ0FESWpzZ1FmMnVBU0k2SUR6OXRnRWdPdjBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBUDA1L1ZJaU92MWFBZ1FBSUNRZ092MWFBZ1FCSUN3Z092MWFBZ1FDSUMwZ092MWFBZ1FESUM3OURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ095QSsvYkVCSWpvZ1BQMjJBU0E2L1F3QUFBQUFBQUFBQUFBQUFBQUFBQUFBL1RuOVVpSTYvVm9DQkFBZ0tpQTYvVm9DQkFFZ0x5QTYvVm9DQkFJZ01DQTYvVm9DQkFNZ0UvME1BQUFBQUFBQUFBQUFBQUFBQUFBQUFDQTdJRDM5cmdFaU9pQTgvYllCSURyOURBQUFBQUFBQUFBQUFBQUFBQUFBQUFEOU9mMVNJanI5V2dJRUFDQWdJRHI5V2dJRUFTQWVJRHI5V2dJRUFpQWRJRHI5V2dJRUF5QVZRUVJxSWhVZ0YwY05BQXNnRGlBbWFpRU9JQkFnRW1vaEVDQUNJQkpxSVFJZ0Z5QWxSZ1JBSUE4aEFTQUxJUUFnQ1NFS0RBSUxJQThoQVNBTElRQWdDU0VLSUJkQkFYUUxJUThEUUNBS0tBSUFJUk1nQVFKL0lBNG9BZ0FnRVd1eXV5SUZSRHZmVDQyWGJ2WS9vaUlHbVVRQUFBQUFBQURnUVdNRVFDQUdxZ3dCQzBHQWdJQ0FlQXNnRUNnQ0FDSUphaUlMSUF3Z0N5QU1TQnRCQUNBTFFRQk9HellDQUNBQ0lBa0NmeUFUSUJGcnNyc2lCa1JxdkhTVEdBVFdQNklnQlVRTUFpdUhGdG5tUDZLZ0lnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEMyc2lDeUFNSUFzZ0RFZ2JRUUFnQzBFQVRoczJBZ0FnQUFKL0lBWkVKekVJckJ4YS9EK2lJZ1daUkFBQUFBQUFBT0JCWXdSQUlBV3FEQUVMUVlDQWdJQjRDeUFKYWlJSklBd2dDU0FNU0J0QkFDQUpRUUJPR3pZQ0FDQUtLQUlBSVJNZ0FRSi9JQTRvQWdBZ0VXdXl1eUlGUkR2ZlQ0Mlhidlkvb2lJR21VUUFBQUFBQUFEZ1FXTUVRQ0FHcWd3QkMwR0FnSUNBZUFzZ0VDZ0NCQ0lKYWlJTElBd2dDeUFNU0J0QkFDQUxRUUJPR3pZQ0JDQUNJQWtDZnlBVElCRnJzcnNpQmtScXZIU1RHQVRXUDZJZ0JVUU1BaXVIRnRubVA2S2dJZ1daUkFBQUFBQUFBT0JCWXdSQUlBV3FEQUVMUVlDQWdJQjRDMnNpQ3lBTUlBc2dERWdiUVFBZ0MwRUFUaHMyQWdRZ0FBSi9JQVpFSnpFSXJCeGEvRCtpSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0Q3lBSmFpSUpJQXdnQ1NBTVNCdEJBQ0FKUVFCT0d6WUNCQ0FPUVFScUlRNGdDa0VFYWlFS0lBQkJDR29oQUNBQ1FRaHFJUUlnQVVFSWFpRUJJQkJCQ0dvaEVDQVBRUUpxSWc4Z0cwa05BQXNMUVFKcUJVRUFDeUlMVFEwQUlCQW9BZ0FoQ1FKOElCOGdDMEVCZGtZRVFBSi9RUUFnRVd1eXV5SUZSRHZmVDQyWGJ2WS9vaUlHbVVRQUFBQUFBQURnUVdNRVFDQUdxZ3dCQzBHQWdJQ0FlQXNnQ1dvaUNpQU1JQW9nREVnYlFRQWdDa0VBVGhzaERpQUZEQUVMQW44Z0RpZ0NBQ0FSYTdLN0lnVkVPOTlQalpkdTlqK2lJZ2FaUkFBQUFBQUFBT0JCWXdSQUlBYXFEQUVMUVlDQWdJQjRDeUFKYWlJTElBd2dDeUFNU0J0QkFDQUxRUUJPR3lFT0lBb29BZ0FnRVd1eXV3c2hCaUFCSUE0MkFnQWdBaUFKQW44Z0JrUnF2SFNUR0FUV1A2SWdCVVFNQWl1SEZ0bm1QNktnSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0QzJzaUFTQU1JQUVnREVnYlFRQWdBVUVBVGhzMkFnQWdBQUovSUFaRUp6RUlyQnhhL0QraUlnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEN5QUphaUlBSUF3Z0FDQU1TQnRCQUNBQVFRQk9HellDQUFzZ0ZpZ0NHQ2dDTEJBVUlCWW9BaGdpQUNBSU5nSXNJQUFvQW1BUUZDQVdLQUlZSWdBZ0RUWUNZQ0FBS0FLVUFSQVVJQllvQWhnaUFDQVVOZ0tVQVNBQUlBRDlBQUlBSWp6OUN3Sm9JQUFnUFAwTEFqUWdGa0VCTmdJVUN3d0hDeUFCS0FJRVFRRkhEUUVnQVNnQ09FRUJSdzBCSUFFb0FteEJBVWNOQVNBQktBSVlJUUFnQVNnQ2xBRWhBaUFCS0FKZ0lRc2dBU2dDTENFT0lBRW9BandoSUNBQktBSUlJZ29nQVNnQ0RDSWpiRUVDZENJQkVCd2hEeUFCRUJ3aEZpQUJFQndoRENBUFJRMEZJQlpGRFFVZ0RFVU5CU0FqQkVBZ0NpQVVLQUlBUVFGeElpeHJJU1VDZjBFQVFRRWdBRUVCYTNRaUUydXl1eUlGUkdxOGRKTVlCTlkvb2lBRlJBd0NLNGNXMmVZL29xQWlCcGxFQUFBQUFBQUE0RUZqQkVBZ0Jxb01BUXRCZ0lDQWdIZ0xJU1pCZnlBQWRDQWxRWDV4SWlKQkFXc2lDa0VCZGlJQVFRRnFJU2NDZnlBRlJDY3hDS3djV3Z3L29pSUdtVVFBQUFBQUFBRGdRV01FUUNBR3Fnd0JDMEdBZ0lDQWVBc2hLQ0FLUVg1eElRb2dBRUVDZENFSUlBQkJBM1FoQUNBblFYeHhJUmRCZjNNaEVRSi9JQVZFTzk5UGpaZHU5aitpSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0Q3lFWUlBcEJBbW9oS1NBSVFRUnFJUndnQUVFSWFpRWJJQmRCQW5RaEpDQVhRUU4wSVJJZ0YwRUJkQ0VRSUJIOUVTRThJQlA5RVNGQUlDSkJCMGtoTFNBUElRb2dGaUVBSUF3aENBTkFJQ3dFUUNBS0lBNG9BZ0FpQVNBWWFpSU5JQkVnRFNBUlNCdEJBQ0FOUVFCT0d6WUNBQ0FBSUFFZ0ptc2lEU0FSSUEwZ0VVZ2JRUUFnRFVFQVRoczJBZ0FnQ0NBQklDaHFJZ0VnRVNBQklCRklHMEVBSUFGQkFFNGJOZ0lBSUFoQkJHb2hDQ0FLUVFScUlRb2dEa0VFYWlFT0lBQkJCR29oQUFzQ2Z3Si9JQ0pGQkVBZ0N5RUpJQWdoQVNBS0lRMUJBQXdCQzBFQUlSa0NRQUpBSUMwTkFDQUtJQUFnRzJvaUFVa2dBQ0FLSUJ0cUlnMUpjUTBBSUFnZ0RVa2dDaUFJSUJ0cUlnbEpjUTBBSUFvZ0RpQWJhaUlWU1NBTklBNUxjUTBBSUFzZ0RVa2dDaUFMSUJ4cUloOUpjUTBBSUFJZ0RVa2dDaUFDSUJ4cUlnMUpjUTBBSUFBZ0NVa2dBU0FJUzNFTkFDQUFJQlZKSUFFZ0RrdHhEUUFnQUNBZlNTQUJJQXRMY1EwQUlBQWdEVWtnQVNBQ1MzRU5BQ0FJSUJWSklBa2dEa3R4RFFBZ0NDQWZTU0FKSUF0TGNRMEFJQUlnQ1VrZ0NDQU5TWEVOQUNBTElDUnFJUWtnQ0NBU2FpRUJJQW9nRW1vaERRTkFJQTRnR1VFRGRDSVZRUmh5SWg5cUlpb2dEaUFWUVJCeUloMXFJaTRnRGlBVlFRaHlJaDVxSWk4Z0RpQVZhaUl3L1Z3Q0FQMVdBZ0FCL1ZZQ0FBTDlWZ0lBQXlFNkFuOGdBaUFaUVFKMElpdHEvUUFDQUNCQS9iRUIvZm9CSWp2OVh5STkvUXc3MzArTmwyNzJQenZmVDQyWGJ2WS8vZklCSWo3OUlRRWlCWmxFQUFBQUFBQUE0RUZqQkVBZ0Jhb01BUXRCZ0lDQWdIZ0xJVEVnQ3lBcmF2MEFBZ0FoUHlBS0lCVnFJaXY5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUFnT2dKL0lENzlJUUFpQlpsRUFBQUFBQUFBNEVGakJFQWdCYW9NQVF0QmdJQ0FnSGdML1JFZ01mMGNBUUovSURzZ08vME5DQWtLQ3d3TkRnOEFBUUlEQUFFQ0EvMWZJajc5RER2ZlQ0MlhidlkvTzk5UGpaZHU5ai85OGdFaU8vMGhBQ0lGbVVRQUFBQUFBQURnUVdNRVFDQUZxZ3dCQzBHQWdJQ0FlQXY5SEFJQ2Z5QTcvU0VCSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0Qy8wY0F5SkIvYTRCSWpzZ1BQMjJBU0E3L1F3QUFBQUFBQUFBQUFBQUFBQUFBQUFBL1RuOVVpSTcvVm9DQUFBZ0NpQWVhaUl4SUR2OVdnSUFBU0FLSUIxcUlqTWdPLzFhQWdBQ0lBb2dIMm9pTkNBNy9Wb0NBQU1DZnlBL0lFRDlzUUg5K2dFaU8vMWZJai85REdxOGRKTVlCTlkvYXJ4MGt4Z0Uxai85OGdFZ1BmME1EQUlyaHhiWjVqOE1BaXVIRnRubVAvM3lBZjN3QVNJOS9TRUJJZ1daUkFBQUFBQUFBT0JCWXdSQUlBV3FEQUVMUVlDQWdJQjRDeUV5SUFBZ0ZXb2lOZjBNQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0E2QW44Z1BmMGhBQ0lGbVVRQUFBQUFBQURnUVdNRVFDQUZxZ3dCQzBHQWdJQ0FlQXY5RVNBeS9Sd0JBbjhnTy8wTUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAwTkNBa0tDd3dORGc4QUFRSURBQUVDQS8xZklqMzlER3E4ZEpNWUJOWS9hcngwa3hnRTFqLzk4Z0VnUHYwTURBSXJoeGJaNWo4TUFpdUhGdG5tUC8zeUFmM3dBU0k3L1NFQUlnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEMvMGNBZ0ovSUR2OUlRRWlCWmxFQUFBQUFBQUE0RUZqQkVBZ0Jhb01BUXRCZ0lDQWdIZ0wvUndESWo3OXNRRWlPeUE4L2JZQklEdjlEQUFBQUFBQUFBQUFBQUFBQUFBQUFBRDlPZjFTSWp2OVdnSUFBQ0FBSUI1cUlqSWdPLzFhQWdBQklBQWdIV29pTmlBNy9Wb0NBQUlnQUNBZmFpSTNJRHY5V2dJQUF3Si9JRC85RENjeENLd2NXdncvSnpFSXJCeGEvRC85OGdFaU8vMGhBU0lGbVVRQUFBQUFBQURnUVdNRVFDQUZxZ3dCQzBHQWdJQ0FlQXNoT0NBSUlCVnFJaFg5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUFnT2dKL0lEdjlJUUFpQlpsRUFBQUFBQUFBNEVGakJFQWdCYW9NQVF0QmdJQ0FnSGdML1JFZ09QMGNBUUovSUQzOURDY3hDS3djV3Z3L0p6RUlyQnhhL0QvOThnRWlPdjBoQUNJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUF2OUhBSUNmeUE2L1NFQklnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEMvMGNBeUk5L2E0Qklqb2dQUDIyQVNBNi9Rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQS9UbjlVaUk2L1ZvQ0FBQWdDQ0FlYWlJZUlEcjlXZ0lBQVNBSUlCMXFJaDBnT3YxYUFnQUNJQWdnSDJvaUh5QTYvVm9DQUFNZ0svME1BQUFBQUFBQUFBQUFBQUFBQUFBQUFDQXFRUVJxSUM1QkJHb2dMMEVFYWlBdy9Wd0NCUDFXQWdBQi9WWUNBQUw5VmdJQUF5STdJRUg5cmdFaU9pQTgvYllCSURyOURBQUFBQUFBQUFBQUFBQUFBQUFBQUFEOU9mMVNJanI5V2dJRUFDQXhJRHI5V2dJRUFTQXpJRHI5V2dJRUFpQTBJRHI5V2dJRUF5QTEvUXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFJRHNnUHYyeEFTSTZJRHo5dGdFZ092ME1BQUFBQUFBQUFBQUFBQUFBQUFBQUFQMDUvVklpT3YxYUFnUUFJRElnT3YxYUFnUUJJRFlnT3YxYUFnUUNJRGNnT3YxYUFnUURJQlg5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUFnT3lBOS9hNEJJam9nUFAyMkFTQTYvUXdBQUFBQUFBQUFBQUFBQUFBQUFBQUEvVG45VWlJNi9Wb0NCQUFnSGlBNi9Wb0NCQUVnSFNBNi9Wb0NCQUlnSHlBNi9Wb0NCQU1nR1VFRWFpSVpJQmRIRFFBTElBSWdKR29oQWlBT0lCSnFJUTRnQUNBU2FpRUFJQkFoR1NBcElCY2dKMFlOQWhvTUFRc2dDaUVOSUFnaEFTQUxJUWtMQTBBZ0NTZ0NBQ0VMSUEwQ2Z5QUNLQUlBSUJOcnNyc2lCVVE3MzArTmwyNzJQNklpQnBsRUFBQUFBQUFBNEVGakJFQWdCcW9NQVF0QmdJQ0FnSGdMSUE0b0FnQWlDbW9pQ0NBUklBZ2dFVWdiUVFBZ0NFRUFUaHMyQWdBZ0FDQUtBbjhnQ3lBVGE3SzdJZ1pFYXJ4MGt4Z0UxaitpSUFWRURBSXJoeGJaNWoraW9DSUZtVVFBQUFBQUFBRGdRV01FUUNBRnFnd0JDMEdBZ0lDQWVBdHJJZ2dnRVNBSUlCRklHMEVBSUFoQkFFNGJOZ0lBSUFFQ2Z5QUdSQ2N4Q0t3Y1d2dy9vaUlGbVVRQUFBQUFBQURnUVdNRVFDQUZxZ3dCQzBHQWdJQ0FlQXNnQ21vaUNpQVJJQW9nRVVnYlFRQWdDa0VBVGhzMkFnQWdDU2dDQUNFTElBMENmeUFDS0FJQUlCTnJzcnNpQlVRNzMwK05sMjcyUDZJaUJwbEVBQUFBQUFBQTRFRmpCRUFnQnFvTUFRdEJnSUNBZ0hnTElBNG9BZ1FpQ21vaUNDQVJJQWdnRVVnYlFRQWdDRUVBVGhzMkFnUWdBQ0FLQW44Z0N5QVRhN0s3SWdaRWFyeDBreGdFMWoraUlBVkVEQUlyaHhiWjVqK2lvQ0lGbVVRQUFBQUFBQURnUVdNRVFDQUZxZ3dCQzBHQWdJQ0FlQXRySWdnZ0VTQUlJQkZJRzBFQUlBaEJBRTRiTmdJRUlBRUNmeUFHUkNjeENLd2NXdncvb2lJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUFzZ0Ntb2lDaUFSSUFvZ0VVZ2JRUUFnQ2tFQVRoczJBZ1FnQWtFRWFpRUNJQWxCQkdvaENTQUJRUWhxSVFFZ0FFRUlhaUVBSUExQkNHb2hEU0FPUVFocUlRNGdHVUVDYWlJWklDSkpEUUFMSUNrTElnZ2dKVThFUUNBQklRZ2dEU0VLSUFrTUFRc2dEaWdDQUNFS0FuOGdJQ0FJUVFGMklobEdCRUFnQ2lBbWF5SUlJQkVnQ0NBUlNCdEJBQ0FJUVFCT0d5RUxJQW9nR0dvaUNDQVJJQWdnRVVnYlFRQWdDRUVBVGhzaENDQW9EQUVMSUFvQ2Z5QUpLQUlBSUJOcnNyc2lCVVJxdkhTVEdBVFdQNklnQWlnQ0FDQVRhN0s3SWdaRURBSXJoeGJaNWoraW9DSUhtVVFBQUFBQUFBRGdRV01FUUNBSHFnd0JDMEdBZ0lDQWVBdHJJZ2dnRVVnaEN5QUlJQkVnQ3h0QkFDQUlRUUJPR3lFTEFuOGdCa1E3MzArTmwyNzJQNklpQnBsRUFBQUFBQUFBNEVGakJFQWdCcW9NQVF0QmdJQ0FnSGdMSUFwcUlnZ2dFU0FJSUJGSUcwRUFJQWhCQUU0YklRZ0NmeUFGUkNjeENLd2NXdncvb2lJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUFzTElSVWdEU0FJTmdJQUlBQWdDellDQUNBQklBb2dGV29pQ2lBUklBb2dFVWdiUVFBZ0NrRUFUaHMyQWdBZ0FVRUVhaUVJSUFCQkJHb2hBQ0FOUVFScUlRb2dEa0VFYWlFT0lBa2dHU0FnVHcwQUdpQUNRUVJxSVFJZ0NVRUVhZ3NoQ3lBNVFRRnFJamtnSTBjTkFBc0xJQlFvQWhnb0Fpd1FGQ0FVS0FJWUlnQWdEellDTENBQUtBSmdFQlFnRkNnQ0dDSUFJQlkyQW1BZ0FDZ0NsQUVRRkNBVUtBSVlJZ0FnRERZQ2xBRWdBQ0FBL1FBQ0FDSTgvUXNDYUNBQUlEejlDd0kwSUJSQkFUWUNGRUVBSVJrTUJnc2dBU2dDYUVFQlJ3MEFJQUVvQWdSQkFVY05BQ0FCS0FJNFFRRkhEUUFnQVNnQ2JFRUJSdzBBSUFFb0FoZ2hBaUFCS0FLVUFTRUpJQUVvQW1BaERpQUJLQUlzSVFBZ0FTZ0NEQ0FCS0FJSWJDSU1RUUowSWdFUUhDRUlJQUVRSENFUElBRVFIQ0VMQWtBZ0NFVU5BQ0FQUlEwQUlBdEZEUUFnREVVTkJFRi9JQUowUVg5eklSbEJBU0FDUVFGcmRDRVRJQXhCQ0VrTkFpQVBJQWhyUVJCSkRRSWdDeUFJYTBFUVNRMENJQWdnQUd0QkVFa05BaUFJSUE1clFSQkpEUUlnQ0NBSmEwRVFTUTBDSUFzZ0QydEJFRWtOQWlBUElBQnJRUkJKRFFJZ0R5QU9hMEVRU1EwQ0lBOGdDV3RCRUVrTkFpQUxJQUJyUVJCSkRRSWdDeUFPYTBFUVNRMENJQXNnQ1d0QkVFa05BaUFKSUF4QmZIRWlDa0VDZENJUWFpRU5JQXNnRUdvaEFTQUlJQkJxSVFJZ0dmMFJJVHdnRS8wUklUb0RRQUovSUFrZ0ZrRUNkQ0lSYXYwQUFnQWdPdjJ4QWYzNkFTSTcvVjhpUGYwTU85OVBqWmR1OWo4NzMwK05sMjcyUC8zeUFTSSsvU0VCSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0Q3lFVklBNGdFV3I5QUFJQUlUOGdDQ0FSYXYwTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNBQUlCRnEvUUFDQUNKQUFuOGdQdjBoQUNJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUF2OUVTQVYvUndCQW44Z095QTcvUTBJQ1FvTERBME9Ed0FCQWdNQUFRSUQvVjhpTy8wTU85OVBqWmR1OWo4NzMwK05sMjcyUC8zeUFTSSsvU0VBSWdXWlJBQUFBQUFBQU9CQll3UkFJQVdxREFFTFFZQ0FnSUI0Qy8wY0FnSi9JRDc5SVFFaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTC9Sd0QvYTRCSWo0Z1BQMjJBU0ErL1F3QUFBQUFBQUFBQUFBQUFBQUFBQUFBL1RuOVV2MExBZ0FDZnlBL0lEcjlzUUg5K2dFaVB2MWZJai85REdxOGRKTVlCTlkvYXJ4MGt4Z0Uxai85OGdFZ1BmME1EQUlyaHhiWjVqOE1BaXVIRnRubVAvM3lBZjN3QVNJOS9TRUJJZ1daUkFBQUFBQUFBT0JCWXdSQUlBV3FEQUVMUVlDQWdJQjRDeUVWSUE4Z0VXcjlEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWdRQUovSUQzOUlRQWlCWmxFQUFBQUFBQUE0RUZqQkVBZ0Jhb01BUXRCZ0lDQWdIZ0wvUkVnRmYwY0FRSi9JRDc5REFBQUFBQUFBQUFBQUFBQUFBQUFBQUQ5RFFnSkNnc01EUTRQQUFFQ0F3QUJBZ1A5WHlJOS9ReHF2SFNUR0FUV1AycThkSk1ZQk5ZLy9mSUJJRHY5REF3Q0s0Y1cyZVkvREFJcmh4Ylo1ai85OGdIOThBRWlPLzBoQUNJRm1VUUFBQUFBQUFEZ1FXTUVRQ0FGcWd3QkMwR0FnSUNBZUF2OUhBSUNmeUE3L1NFQklnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEMvMGNBLzJ4QVNJN0lEejl0Z0VnTy8wTUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAwNS9WTDlDd0lBQW44Z1AvME1KekVJckJ4YS9EOG5NUWlzSEZyOFAvM3lBU0k3L1NFQklnV1pSQUFBQUFBQUFPQkJZd1JBSUFXcURBRUxRWUNBZ0lCNEN5RVZJQXNnRVdyOURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ1FBSi9JRHY5SVFBaUJabEVBQUFBQUFBQTRFRmpCRUFnQmFvTUFRdEJnSUNBZ0hnTC9SRWdGZjBjQVFKL0lEMzlEQ2N4Q0t3Y1d2dy9KekVJckJ4YS9ELzk4Z0VpTy8waEFDSUZtVVFBQUFBQUFBRGdRV01FUUNBRnFnd0JDMEdBZ0lDQWVBdjlIQUlDZnlBNy9TRUJJZ1daUkFBQUFBQUFBT0JCWXdSQUlBV3FEQUVMUVlDQWdJQjRDLzBjQS8ydUFTSTdJRHo5dGdFZ08vME1BQUFBQUFBQUFBQUFBQUFBQUFBQUFQMDUvVkw5Q3dJQUlCWkJCR29pRmlBS1J3MEFDeUFLSUF4R0RRUWdEaUFRYWlFT0lBQWdFR29oQUNBUElCQnFEQU1MSUFnUUZDQVBFQlFnQ3hBVURBVUxJQnBCendNMkFnUWdHa0c0Q2pZQ0FFR3d5d0ZCbzhBQUlCb1FHZ3dFQ3lBSUlRSWdDeUVCSUFraERTQVBDeUVKQTBBZ0RpZ0NBQ0VSSUFJQ2Z5QU5LQUlBSUJOcnNyc2lCVVE3MzArTmwyNzJQNklpQnBsRUFBQUFBQUFBNEVGakJFQWdCcW9NQVF0QmdJQ0FnSGdMSUFBb0FnQWlGbW9pRUNBWklCQWdHVWdiUVFBZ0VFRUFUaHMyQWdBZ0NTQVdBbjhnRVNBVGE3SzdJZ1pFYXJ4MGt4Z0UxaitpSUFWRURBSXJoeGJaNWoraW9DSUZtVVFBQUFBQUFBRGdRV01FUUNBRnFnd0JDMEdBZ0lDQWVBdHJJaEFnR1NBUUlCbElHMEVBSUJCQkFFNGJOZ0lBSUFFQ2Z5QUdSQ2N4Q0t3Y1d2dy9vaUlGbVVRQUFBQUFBQURnUVdNRVFDQUZxZ3dCQzBHQWdJQ0FlQXNnRm1vaUZpQVpJQllnR1VnYlFRQWdGa0VBVGhzMkFnQWdBVUVFYWlFQklBbEJCR29oQ1NBQ1FRUnFJUUlnRFVFRWFpRU5JQTVCQkdvaERpQUFRUVJxSVFBZ0NrRUJhaUlLSUF4SERRQUxDeUFVS0FJWUtBSXNFQlFnRkNnQ0dDSUFJQWcyQWl3Z0FDZ0NZQkFVSUJRb0FoZ2lBQ0FQTmdKZ0lBQW9BcFFCRUJRZ0ZDZ0NHQ0FMTmdLVUFTQVVRUUUyQWhSQkFDRVpEQUVMSUE4UUZDQVdFQlFnREJBVUN5QWFLQUlnSVFBQ1FDQUREUUFnSVVVTkFDQUFLQUlZSVJSQkFDRVdBMEFnRkNBV1FUUnNhaUlES0FJWUlnSkJDRWNFUUFKQUlBSkJCMDBFUUNBREtBSU1JQU1vQWdoc0lRRWdBeWdDTENFSUlBTW9BaUFFUUNBQlJRMENRUUVnQWtFQmEzU3RJVUpCQUNFS0lBRkJCRThFUUNBQlFYeHhJUW9nUXYwU0lUeEJBQ0VPQTBBZ0NDQU9RUUowYWlJQ0lBTDlBQUlBSWpyOXh3RkJCLzNMQVNJNy9SMEFJRHo5SFFBaVEzLzlFaUE3L1IwQklEejlIUUVpUkgvOUhnRWdPaUE4L1EwSUNRb0xEQTBPRHdBQkFnTUFBUUlEL2NjQlFRZjl5d0VpT3YwZEFDQkRmLzBTSURyOUhRRWdSSC85SGdIOURRQUJBZ01JQ1FvTEVCRVNFeGdaR2h2OUN3SUFJQTVCQkdvaURpQUtSdzBBQ3lBQklBcEdEUU1MQTBBZ0NDQUtRUUowYWlJQ0lBSTBBZ0JDQjRZZ1FuOCtBZ0FnQ2tFQmFpSUtJQUZIRFFBTERBSUxJQUZGRFFGQmZ5QUNkRUYvYzYwaFFrRUFJUW9nQVVFRVR3UkFJQUZCZkhFaENpQkMvUkloUEVFQUlRNERRQ0FJSUE1QkFuUnFJZ0lnQXYwQUFnQWlPdjNKQWYwTS93QUFBQUFBQUFEL0FBQUFBQUFBQVAzVkFTSTcvUjBBSUR6OUhRQWlRNEQ5RWlBNy9SMEJJRHo5SFFFaVJJRDlIZ0VnT2lBOC9RMElDUW9MREEwT0R3QUJBZ01BQVFJRC9ja0IvUXovQUFBQUFBQUFBUDhBQUFBQUFBQUEvZFVCSWpyOUhRQWdRNEQ5RWlBNi9SMEJJRVNBL1I0Qi9RMEFBUUlEQ0FrS0N4QVJFaE1ZR1JvYi9Rc0NBQ0FPUVFScUlnNGdDa2NOQUFzZ0FTQUtSZzBDQ3dOQUlBZ2dDa0VDZEdvaUFpQUNOUUlBUXY4QmZpQkNnRDRDQUNBS1FRRnFJZ29nQVVjTkFBc01BUXNnQWtFSWF5RUlJQU1vQWd3Z0F5Z0NDR3doQVNBREtBSXNJUTBnQXlnQ0lBUkFJQUZGRFFGQkFDRUtJQUZCQkU4RVFDQUJRWHh4SVFwQkFDRUNBMEFnRFNBQ1FRSjBhaUlKSUFuOUFBSUFJQWo5ckFIOUN3SUFJQUpCQkdvaUFpQUtSdzBBQ3lBQklBcEdEUUlMQTBBZ0RTQUtRUUowYWlJQ0lBSW9BZ0FnQ0hVMkFnQWdDa0VCYWlJS0lBRkhEUUFMREFFTElBRkZEUUJCQUNFS0lBRkJCRThFUUNBQlFYeHhJUXBCQUNFQ0EwQWdEU0FDUVFKMGFpSUpJQW45QUFJQUlBajlyUUg5Q3dJQUlBSkJCR29pQWlBS1J3MEFDeUFCSUFwR0RRRUxBMEFnRFNBS1FRSjBhaUlDSUFJb0FnQWdDSFkyQWdBZ0NrRUJhaUlLSUFGSERRQUxDeUFEUVFnMkFoZ0xJQlpCQVdvaUZpQWhSdzBBQ3dzZ0FDZ0NEQ0FBS0FJSWJDRUJBa0FnR1VVRVFDQUFLQUlVUVFKR0JFQWdBQ2dDRUVFQlJnUkFJQUFvQWhnb0Fpd2dBUkFTREFNTElBUkZEUUlnQUNnQ0dDSUFLQUlzSUFBb0FtQWdBUkFJREFJTElBQW9BaGdpQUNnQ0xDQUFLQUpnSUFBb0FwUUJJQUVRQnd3QkN3SkFBa0FDUUNBaFFRRnJEZ1FBQXdFQ0F3c2dBQ2dDR0NnQ0xDQUJFQVlNQWdzZ0FDZ0NHQ0lBS0FJc0lBQW9BbUFnQUNnQ2xBRWdBUkFGREFFTElBQW9BaGdpQUNnQ0xDQUFLQUpnSUFBb0FwUUJJQUFvQXNnQklBRVFCQXNnR2lnQ0lCQWxRUUFoRGdzZ0drSGd3QUJxSkFBZ0Rnc0lBRUVJSUFBUUtRdXJBZ0lDZmdKL1FuOGhBeUFBTFFCRVFRaHhSUVJBSUFBZ0FDZ0NJQ0lHTmdJa0FrQUNRQUpBSUFBZ0FDZ0NNQ0lGQkg4RFFDQUdJQVVnQUNnQ0FDQUFLQUlVRVFBQUlnVkJmMFlOQWlBQUlBQW9BaVFnQldvaUJqWUNKQ0FBSUFBb0FqQWdCV3NpQlRZQ01DQUZEUUFMSUFBb0FpQUZJQVlMTmdJa0lBRkNBRlVOQVVJQUlRTU1BZ3NnQUNBQUtBSkVRUWh5TmdKRUlBSkJCRUhQK1FCQkFCQVRJQUJCQURZQ01DQUFJQUFvQWtSQkNISTJBa1JDZnc4TFFnQWhBd05BSUFFZ0FDZ0NBQ0FBS0FJWUVRMEFJZ1JDZjFFRVFDQUNRUVJCd1BrQVFRQVFFeUFBSUFBb0FrUkJDSEkyQWtRZ0FDQUFLUU00SUFOOE53TTRRbjhnQXlBRFVCc1BDeUFESUFSOElRTWdBU0FFZlNJQlFnQlZEUUFMQ3lBQUlBQXBBemdnQTN3M0F6Z0xJQU1MSXdFQmZ5QUJJQUVvQWdBZ0FTZ0NDQ0lCSUFDbklnSWdBU0FDU1J0cU5nSUVRUUVMUEFJQ2Z3RitJQUVvQWdBZ0FTZ0NDR29pQXlBQktBSUVJZ0pHQkVCQ2Z3OExJQUVnQWlBQXAybzJBZ1FnQUNBRElBSnJyQ0lFSUFBZ0JGTWJDNXNCQVFWL1FRRWdBaWdDQ0NJSElBZEJBVTBiSVFRZ0FpZ0NCQ0lESUFJb0FnQnJJUVlEUUNBRUlnVkJBWFFoQkNBRklBWnJJQUZKRFFBTElBVWdCMGNFUUNBRkVCZ2lBMFVFUUVGL0R3c2dBaWdDQUNJRUJFQWdBeUFFSUFZUUZob2dBaWdDQUJBVUN5QUNJQVUyQWdnZ0FpQUROZ0lBSUFJZ0F5QUdhaUlETmdJRUN5QURJQUFnQVJBV0dpQUNJQUlvQWdRZ0FXbzJBZ1FnQVF1T0F3SUNmZ0ovSUFBb0FqQWlCU0FCcHlJR1R3UkFJQUFnQlNBR2F6WUNNQ0FBSUFBb0FpUWdCbW8yQWlRZ0FDQUFLUU00SUFGOE53TTRJQUVQQ3lBQUxRQkVRUVJ4QkVBZ0FFRUFOZ0l3SUFBZ0FDZ0NKQ0FGYWpZQ0pDQUFJQVd0SWdFZ0FDa0RPSHczQXpnZ0FVSi9JQVViRHdzQ1FDQUZSUVJBREFFTElBQkJBRFlDTUNBQUlBQW9BaUEyQWlRZ0FTQUZyU0lEZlNFQkN5QUJRZ0JWQkVBRFFDQUFLUU1JSUFBcEF6Z2dBU0FEZkh4VUJFQWdBa0VFUWVuNUFFRUFFQk1nQUVFQU5nSXdJQUFnQUNnQ0lEWUNKQ0FBSUFBcEF6Z2dBM3dpQXpjRE9DQUFLUU1JSWdFZ0EzMGhCQ0FCSUFBb0FnQWdBQ2dDSEJFTEFDQUFLQUpFSVFVRVFDQUFJQUUzQXpnTElBQWdCVUVFY2pZQ1JFSi9JQVFnQVNBRFVSc1BDeUFCSUFBb0FnQWdBQ2dDR0JFTkFDSUVRbjlSQkVBZ0FrRUVRZW41QUVFQUVCTWdBQ0FBS0FKRVFRUnlOZ0pFSUFBZ0FDa0RPQ0FEZkRjRE9FSi9JQU1nQTFBYkR3c2dBeUFFZkNFRElBRWdCSDBpQVVJQVZRMEFDd3NnQUNBQUtRTTRJQU44TndNNElBTUxSZ0VDZnlBQ0tBSUFJQUlvQWdocUlnUWdBaWdDQkNJRFJnUkFRWDhQQ3lBQUlBTWdCQ0FEYXlJQUlBRWdBQ0FCU1JzaUFCQVdHaUFDSUFJb0FnUWdBR28yQWdRZ0FBdXFBZ0VFZnlNQVFSQnJJZ1FrQUFKQUlBQW9BblFOQUNBQ1FRRk5CRUFnQTBFQlFZM0ZBRUVBRUJNTUFRc2dBU0FFUVF4cVFRSVFGU0FFS0FJTUlnWkIvLzhEY1NJSFJRUkFJQU5CQVVHdXhRQkJBQkFUREFFTElBZEJCbXhCQW1vZ0Frc0VRQ0FEUVFGQmpjVUFRUUFRRXd3QkN5QUdRUVpzRUJnaUEwVU5BQ0FBUVFnUUdDSUNOZ0owSUFKRkJFQWdBeEFVREFFTElBSWdBellDQUNBQ0lBUXZBUXdpQWpzQkJDQUNSUVJBUVFFaEJRd0JDMEVBSVFJRFFDQUJRUUpxSUFSQkRHb2lCVUVDRUJVZ0F5QUNRUVpzYWlJR0lBUW9BZ3c3QVFBZ0FVRUVhaUFGUVFJUUZTQUdJQVFvQWd3N0FRSWdBVUVHYWlJQklBVkJBaEFWSUFZZ0JDZ0NERHNCQkVFQklRVWdBa0VCYWlJQ0lBQW9BblF2QVFSSkRRQUxDeUFFUVJCcUpBQWdCUXZzQVFFRWZ5TUFRUkJySWdVa0FBSi9JQUFvQW5naUJFVUVRQ0FEUVFGQjM4UUFRUUFRRTBFQURBRUxJQVFvQWd3RVFDQURRUUZCcWRvQVFRQVFFMEVBREFFTElBSWdCQzBBRWlJQ1FRSjBJZ1JKQkVBZ0EwRUJRYjdFQUVFQUVCTkJBQXdCQzBFQUlBUVFHQ0lFUlEwQUdpQUNCRUJCQUNFREEwQWdBU0FGUVF4cUlnWkJBaEFWSUFRZ0EwRUNkR29pQnlBRktBSU1Pd0VBSUFGQkFtb2dCa0VCRUJVZ0J5QUZLQUlNT2dBQ0lBRkJBMm9nQmtFQkVCVWdCeUFGS0FJTU9nQURJQUZCQkdvaEFTQURRUUZxSWdNZ0FrY05BQXNMSUFBb0FuZ2dCRFlDREVFQkN5QUZRUkJxSkFBTDhBTUJDWDhqQUVFUWF5SUZKQUFDUUNBQ1FRTkpEUUFnQUNnQ2VBMEFJQUVnQlVFTWFrRUNFQlVnQlM4QkRDSUpRWUVJYTBIL2QwMEVRQ0FGSUFrMkFnQWdBMEVCUWFFYklBVVFFd3dCQ3lBQlFRSnFJQVZCREdwQkFSQVZJQVV2QVF3aUNFVUVRQ0FEUVFGQndSaEJBQkFUREFFTElBSWdDRUVEYWtrTkFDQUlJQWxzUVFKMEVCZ2lCMFVOQUNBSUVCZ2lDa1VFUUNBSEVCUU1BUXNnQ0JBWUlndEZCRUFnQnhBVUlBb1FGQXdCQzBFVUVCZ2lCa1VFUUNBSEVCUWdDaEFVSUFzUUZBd0JDeUFCUVFOcUlRTWdCaUFLTmdJSUlBWWdDellDQkNBR0lBazdBUkFnQmlBSE5nSUFJQVVvQWd3aERDQUdRUUEyQWd3Z0JpQU1PZ0FTSUFBZ0JqWUNlQU5BSUFNZ0JVRU1ha0VCRUJVZ0JDQUthaUFGTFFBTVFmOEFjVUVCYWpvQUFDQUVJQXRxSUFVb0FneEJnQUZ4UVFkMk9nQUFJQU5CQVdvaEF5QUVRUUZxSWdRZ0NFY05BQXNnQ1VVRVFFRUJJUVFNQVF0QkFDRUdBMEJCQUNFRVFRQWhBQU5BUVFRZ0JDQUthaTBBQUVFSGFrRURkaUlFSUFSQkJFOGJJZ1FnQXlBQmEyb2dBa29FUUVFQUlRUU1Bd3NnQXlBRlFReHFJQVFRRlNBSElBVW9BZ3cyQWdBZ0IwRUVhaUVISUFNZ0JHb2hBeUFBUVFGcUlnQkIvLzhEY1NJRUlBaEpEUUFMUVFFaEJDQUdRUUZxSWdaQi8vOERjU0FKU1EwQUN3c2dCVUVRYWlRQUlBUUxtQUVCQW44akFFRVFheUlGSkFBZ0FDZ0NHQ0lFUWY4QlJ3UkFJQVVnQkRZQ0FDQURRUUpCMFJRZ0JSQVRDd0pBQWtBZ0FDZ0NGQ0FDUmdSQUlBSU5BVUVCSVFRTUFndEJBQ0VFSUFOQkFVR0o4UUJCQUJBVERBRUxRUUFoQWdOQVFRRWhCQ0FCSUFBb0FrZ2dBa0VNYkdwQkNHcEJBUkFWSUFGQkFXb2hBU0FDUVFGcUlnSWdBQ2dDRkVrTkFBc0xJQVZCRUdva0FDQUVDNDRHQVFaL0l3QkIwQUJySWdRa0FBSkFJQUpCQWswRVFDQURRUUZCNmZBQVFRQVFFd3dCQ3lBQUxRQjhCRUFnQTBFRVFaVFhBRUVBRUJOQkFTRUdEQUVMUVFFaEJpQUJJQUJCS0dwQkFSQVZJQUZCQVdvZ0FFRTBha0VCRUJVZ0FVRUNhaUFBUVN4cVFRRVFGU0FCUVFOcUlRVUNRQUpBQWtBQ1FBSkFJQUFvQWlnaUIwRUJhdzRDQUFFQ0N5QUNRUVpOQkVBZ0JDQUNOZ0lRSUFOQkFVR085Z0FnQkVFUWFoQVRRUUFoQmd3RkN3SkFJQUpCQjBZTkFDQUFLQUl3UVE1R0RRQWdCQ0FDTmdJd0lBTkJBa0dPOWdBZ0JFRXdhaEFUQ3lBRklBQkJNR3BCQkJBVklBQW9BakJCRGtjTkEwRWtFQmdpQlVVRVFFRUFJUVlnQTBFQlFaUStRUUFRRXd3RkN5QUZRUTQyQWdBZ0JFRUFOZ0pBSUFSQkFEWUNPQ0FFUVFBMkFrZ2dCRUVBTmdJOElBUkJBRFlDUkNBRVFRQTJBa3hCc09xUUFpRUdJQVJCc09xUUFqWUNOQ0FGUVlDTWxhSUVOZ0lFQW44Z0FrRUhSd1JBSUFKQkkwWUVRQ0FCUVFkcUlBUkJ6QUJxUVFRUUZTQUJRUXRxSUFSQnlBQnFRUVFRRlNBQlFROXFJQVJCeEFCcVFRUVFGU0FCUVJOcUlBUkJRR3RCQkJBVklBRkJGMm9nQkVFOGFrRUVFQlVnQVVFYmFpQUVRVGhxUVFRUUZTQUJRUjlxSUFSQk5HcEJCQkFWSUFWQkFEWUNCQ0FFS0FJMElRWWdCQ2dDT0NFQ0lBUW9Ba0FoQXlBRUtBSThJUWNnQkNnQ1JDRUlJQVFvQWt3aENTQUVLQUpJREFJTElBUWdBallDSUNBRFFRSkJzdllBSUFSQklHb1FFd3RCQUNFQ1FRQWhBMEVBSVFkQkFBc2hBU0FGSUFjMkFoZ2dCU0FJTmdJUUlBVWdDVFlDQ0NBRklBWTJBaUFnQlNBQ05nSWNJQVVnQXpZQ0ZDQUZJQUUyQWd3Z0FFRUFOZ0p3SUFBZ0JUWUNiQXdEQ3lBQUlBSkJBMnNpQVRZQ2NDQUFRUUVnQVJBWElnTTJBbXdnQTBVTkFTQUNRUU5NRFFKQkFDRUNBMEFnQlNBRVFjd0Fha0VCRUJVZ0FDZ0NiQ0FDYWlBRUtBSk1PZ0FBSUFWQkFXb2hCU0FDUVFGcUlnSWdBVWNOQUFzTUFnc2dCMEVEU1EwQ0lBUWdCellDQUNBRFFRUkJxZndBSUFRUUV3d0NDMEVBSVFZZ0FFRUFOZ0p3REFFTFFRRWhCaUFBUVFFNkFId0xJQVJCMEFCcUpBQWdCZ3UwQXdFRGZ5TUFRU0JySWdRa0FBSkFJQUFvQWtnRVFDQURRUUpCd2paQkFCQVRRUUVoQWd3QkN5QUNRUTVIQkVCQkFDRUNJQU5CQVVISThBQkJBQkFUREFFTElBRWdBRUVRYWtFRUVCVWdBVUVFYWlBQVFReHFRUVFRRlNBQlFRaHFJQUJCRkdwQkFoQVZJQUFvQWd3aEJRSkFJQVFDZnlBQUtBSVFJZ1pGQkVBZ0FDZ0NGQXdCQ3lBQUtBSVVJZ0lnQlVVTkFCb2dBZzBCUVFBTE5nSUlJQVFnQmpZQ0JDQUVJQVUyQWdBZ0EwRUJRYXp2QUNBRUVCTkJBQ0VDREFFTElBSkJnWUFCYTBILy8zNU5CRUJCQUNFQ0lBTkJBVUhXN2dCQkFCQVREQUVMSUFBZ0FrRU1FQmNpQWpZQ1NDQUNSUVJBUVFBaEFpQURRUUZCKys0QVFRQVFFd3dCQzBFQklRSWdBVUVLYWlBQVFSaHFRUUVRRlNBQlFRdHFJQUJCSEdwQkFSQVZJQUFvQWh3aUJVRUhSd1JBSUFRZ0JUWUNFQ0FEUVFSQjYvNEFJQVJCRUdvUUV3c2dBVUVNYWlBQVFTQnFRUUVRRlNBQlFRMXFJQUJCSkdwQkFSQVZJQUFvQWdBaUFTQUJMUURVQVVIN0FYRWdBQ2dDR0VIL0FVWkJBblJ5T2dEVUFTQUFLQUlBSWdFZ0FDZ0NERFlDOEFFZ0FTQUFLQUlRTmdMMEFTQUFRUUU2QUlVQkN5QUVRU0JxSkFBZ0FndTNCQUVGZnlNQVFSQnJJZ1lrQUFKL0lBQXRBR1JCQW5GRkJFQWdBMEVCUWJmWUFFRUFFQk5CQUF3QkN5QUFRUUEyQW1nQ1FBSkFBa0FnQWdSQUEwQWdBa0VIVFFSQUlBTkJBVUdtR2tFQUVCTU1CUXNnQVNBR1FReHFJZ1ZCQkJBVklBWW9BZ3doQkNBQlFRUnFJQVZCQkJBVlFRZ2hCeUFHS0FJTUlRVUNRQUpBQWtBQ1FDQUVEZ0lCQUFNTElBSkJFRWtFUUVIT0dpRUVEQWNMSUFGQkNHb2dCa0VJYWtFRUVCVWdCaWdDQ0FSQVFkekJBQ0VFREFjTElBRkJER29nQmtFTWFrRUVFQlVnQmlnQ0RDSUVEUUZCbnhraEJBd0dDeUFEUVFGQm54bEJBQkFUREFZTFFSQWhCd3NnQkNBSFNRUkFJQU5CQVVHWHh3QkJBQkFUREFVTElBSWdCRWtFUUNBRFFRRkJ6OFlBUVFBUUUwRUFEQVlMQWtBQ1FDQUFJQUVnQjJvZ0JDQUhheUFEQW44Q1FBSkFBa0FnQlVIeDJMMmJCa3dFUUNBRlFlUEd3Wk1HUmcwQklBVkI1c3FSbXdaR0RRTWdCVUh3d3JXYkJrY05CVUdneFFFTUJBc2dCVUh5MkkyREIwWU5BVUdBeFFFZ0JVSHl5S0hMQmtZTkF4b2dCVUh5MkwyYkJrY05CRUdJeFFFTUF3dEJrTVVCREFJTFFaakZBUXdCQzBHb3hRRUxLQUlFRVFFQURRRkJBQXdIQ3lBQUlBQW9BbWhCLy8vLy93ZHlOZ0pvQzBFQklBZ2dCVUh5eUtITEJrWWJJUWdnQVNBRWFpRUJJQUlnQkdzaUFnMEFDeUFJRFFFTElBTkJBVUhyeFFCQkFCQVRRUUFNQXdzZ0FFRUJPZ0NFQVNBQUlBQW9BbVJCQkhJMkFtUkJBUXdDQ3lBRFFRRWdCRUVBRUJNTElBTkJBVUdMRDBFQUVCTkJBQXNnQmtFUWFpUUFDK0lCQVFGL0lBQW9BbVJCQVVjRVFDQURRUUZCNU5nQVFRQVFFMEVBRHdzQ1FDQUNRUWROQkVBTUFRc2dBU0FBUVRocVFRUVFGU0FCUVFScUlBQkJQR3BCQkJBVklBSkJBM0VFUUF3QkN5QUFJQUpCQ0dzaUFrRUNkaUlFTmdKQUFrQWdBa1VOQUNBQUlBUkJCQkFYSWdJMkFrUWdBa1VFUUNBRFFRRkJsaEZCQUJBVFFRQVBDeUFBS0FKQVJRMEFJQUZCQ0dvaEEwRUFJUUlEUUNBRElBQW9Ba1FnQWtFQ2RHcEJCQkFWSUFOQkJHb2hBeUFDUVFGcUlnSWdBQ2dDUUVrTkFBc0xJQUFnQUNnQ1pFRUNjallDWkVFQkR3c2dBMEVCUVo0dVFRQVFFMEVBQzM0QkFYOGpBRUVRYXlJRUpBQUNmeUFBS0FKa0JFQWdBMEVCUVlIWUFFRUFFQk5CQUF3QkN5QUNRUVJIQkVBZ0EwRUJRY0l1UVFBUUUwRUFEQUVMSUFFZ0JFRU1ha0VFRUJVZ0JDZ0NERUdLanFyb0FFY0VRQ0FEUVFGQjZpWkJBQkFUUVFBTUFRc2dBQ0FBS0FKa1FRRnlOZ0prUVFFTElBUkJFR29rQUF2RUFRRUNmeUFBSUFBb0FpQWlCRFlDSkFKQUlBQW9BakFpQXdSQUEwQWdCQ0FESUFBb0FnQWdBQ2dDRkJFQUFDSURRWDlHRFFJZ0FDQUFLQUlrSUFOcUlnUTJBaVFnQUNBQUtBSXdJQU5ySWdNMkFqQWdBdzBBQ3lBQUtBSWdJUVFMSUFCQkFEWUNNQ0FBSUFRMkFpUWdBU0FBS0FJQUlBQW9BaHdSQ3dCRkJFQWdBQ0FBS0FKRVFRaHlOZ0pFUVFBUEN5QUFJQUUzQXpoQkFROExJQUFnQUNnQ1JFRUljallDUkNBQ1FRUkJ6L2tBUVFBUUV5QUFJQUFvQWtSQkNISTJBa1JCQUFzTkFDQUFLQUlBSUFFZ0FoQk9Dd2tBSUFBb0FnQVFVd3NKQUNBQUtBSUFFRklMRFFBZ0FDZ0NBQ0FCSUFJUVZRdEJBUUYvSUFJRWZ5QURRUUpCeTg4QVFRQVFFeUFBS0FJQUlBRWdBaUFESUFRUVQwVUVRQ0FEUVFGQm5UQkJBQkFUUVFBUEN5QUFJQUlnQXhCK0JVRUFDd3NWQUNBQUtBSUFJQUVnQWlBRElBUWdCU0FHRUZjTER3QWdBQ2dDQUNBQklBSWdBeEJZQ3hNQUlBQW9BZ0FnQVNBQ0lBTWdCQ0FGRURFTEhRQWdBQ2dDQUNBQklBSWdBeUFFSUFVZ0JpQUhJQWdnQ1NBS0VDd0w1UVFCQm44Z0FTZ0NDRUUySUFNUUtFVUVRRUVBRHdzZ0FTZ0NCQ0lJS0FJQUlRY2dDQ2dDQ0NFR0FrQWdCd1JBUVFFaEJTQUhRUUZ4SVFrZ0IwRUJSZ1IvUVFBRklBZEJmbkVoQndOQUFuOUJBQ0FGUlEwQUdrRUFJQUVnQUNBRElBWW9BZ0FSQUFCRkRRQWFJQUVnQUNBRElBWW9BZ1FSQUFCQkFFY0xJUVVnQmtFSWFpRUdJQVJCQW1vaUJDQUhSdzBBQ3lBRlJRc2hCRUVBSUFVZ0NSc2hCUUpBSUFsRkRRQWdCQTBBSUFFZ0FDQURJQVlvQWdBUkFBQkJBRWNoQlFzZ0NFRUFOZ0lBSUFVTkFVRUFEd3NnQ0VFQU5nSUFDeUFCS0FJSUlnY29BZ0FoQkNBSEtBSUlJUVlDUUNBRUJFQkJBU0VGSUFSQkFYRWhDQ0FFUVFGR0JIOUJBQVVnQkVGK2NTRUpRUUFoQkFOQUFuOUJBQ0FGUlEwQUdrRUFJQUVnQUNBRElBWW9BZ0FSQUFCRkRRQWFJQUVnQUNBRElBWW9BZ1FSQUFCQkFFY0xJUVVnQmtFSWFpRUdJQVJCQW1vaUJDQUpSdzBBQ3lBRlJRc2hCRUVBSUFVZ0NCc2hCUUpBSUFoRkRRQWdCQTBBSUFFZ0FDQURJQVlvQWdBUkFBQkJBRWNoQlFzZ0IwRUFOZ0lBSUFVTkFVRUFEd3NnQjBFQU5nSUFDeUFCTFFDRUFVVUVRQ0FEUVFGQmk5c0FRUUFRRTBFQUR3c2dBUzBBaFFGRkJFQWdBMEVCUWU3YUFFRUFFQk5CQUE4TElBQWdBU2dDQUNBQ0lBTVFXUUpBSUFKRkRRQWdBaWdDQUNJQVJRMEFRUUVoQkFKQUFrQUNRQUpBQWtBQ1FDQUJLQUl3UVF4ckRnMERCQVFFQlFBQkJBUUVCQVFDQkF0QkFpRUVEQVFMUVFNaEJBd0RDMEVFSVFRTUFndEJCU0VFREFFTFFYOGhCQXNnQUNBRU5nSVVJQUVvQW13aUJVVU5BQ0FBSUFVMkFod2dBaWdDQUNBQktBSndOZ0lnSUFGQkFEWUNiQXNMNGdrQ0NYOEJmaU1BUWZBQWF5SURKQUJCZ0FnaENBSi9Ba0JCQVVHQUNCQVhJZ1lFUUNBRFFkd0FhaUVMSUFOQjdBQnFJUWtEUUFKQUFrQUNRQ0FCSUFOQjZBQnFJZ1JCQ0NBQ0VCMUJDRWNOQUNBRUlBTkIyQUJxUVFRUUZTQUpJQXRCQkJBVlFRZ2hCUUpBQWtBQ1FBSkFBa0FnQXlnQ1dBNENBQUVFQ3lBQktRTUlJZ3hRQkg1Q0FBVWdEQ0FCS1FNNGZRc2lERUw0Ly8vL0QxTU5BU0FDUVFGQjNNRUFRUUFRRXd3RUN5QUJJQU5CNkFCcUlnUkJDQ0FDRUIxQkNFY05BeUFFSUFOQjVBQnFRUVFRRlNBREtBSmtSUTBCSUFKQkFVSGN3UUJCQUJBVERBTUxJQU1nREtkQkNHbzJBbGdNQVFzZ0NTQURRZGdBYWtFRUVCVkJFQ0VGQ3lBREtBSmNJZ1JCNCtUQTB3WkdCRUFnQUNnQ1pDSUJRUVJ4QkVBZ0FDQUJRUWh5TmdKa0RBSUxJQUpCQVVHaExFRUFFQk1nQmhBVVFRQU1Cd3NnQXlnQ1dDSUhSUVJBSUFKQkFVR2ZHVUVBRUJNZ0JoQVVRUUFNQndzZ0JTQUhTd1JBSUFNZ0JEWUNCQ0FESUFjMkFnQWdBa0VCUWNqc0FDQURFQk1NQmdzQ1FBSi9BbjhDUUFKL0FrQUNRQUpBQWtBQ1FDQUVRZkhZdlpzR1RBUkFJQVJCNDhiQmt3WkdEUUlnQkVIbXlwR2JCa1lOQkNBRVFmREN0WnNHUncwQlFhREZBUXdHQ3lBRVFaL0F3TklHVEFSQUlBUkI4dGk5bXdaR0RRVkJnTVVCSUFSQjhzaWh5d1pHRFFZYUlBUkI4UExSc3daSERRRkI2TVFCREFnTElBUkI4dGlOZ3dkR0RRSWdCRUdnd01EU0JrWU5Ca0h3eEFFZ0JFSG81TURUQmtZTkJ4b0xJQUFvQW1RaUJFRUJjUTBJSUFKQkFVSHBEMEVBRUJNZ0JoQVVRUUFNRHd0QmtNVUJEQU1MUVpqRkFRd0NDMEdveFFFTUFRdEJpTVVCQ3lFS0lBTWdCRUgvQVhFMkFrd2dBeUFFUVJoMk5nSkFJQU1nQkVFSWRrSC9BWEUyQWtnZ0F5QUVRUkIyUWY4QmNUWUNSQ0FDUVFKQnRnOGdBMEZBYXhBVElBY2dCV3NpQlNBQUxRQmtRUVJ4RFFJYUlBTWdBeWdDWENJRVFSaDJOZ0l3SUFNZ0JFSC9BWEUyQWp3Z0F5QUVRUkIyUWY4QmNUWUNOQ0FESUFSQkNIWkIvd0Z4TmdJNElBSkJBa0hPTkNBRFFUQnFFQk1nQUNBQUtBSmtRZi8vLy84SGNqWUNaQ0FCSUFXdElnd2dBaUFCS0FJb0VRZ0FJQXhSRFFjZ0FrRUJRZjhjUVFBUUV5QUdFQlJCQUF3S0MwSGd4QUVMSVFvZ0J5QUZhd3NoQlNBQktRTUlJZ3hRQkg1Q0FBVWdEQ0FCS1FNNGZRc2dCYTFUQkVBZ0F5Z0NXQ0VFSUFNb0Fsd2hBQ0FESUFFcEF3Z2lERkFFZmtJQUJTQU1JQUVwQXpoOUN6NENLQ0FESUFVMkFpUWdBeUFBUWY4QmNUWUNJQ0FESUFCQkdIWTJBaFFnQXlBRU5nSVFJQU1nQUVFSWRrSC9BWEUyQWh3Z0F5QUFRUkIyUWY4QmNUWUNHQ0FDUVFGQm0vb0FJQU5CRUdvUUV3d0hDeUFGSUFoTkJFQWdCaUVFREFRTElBVWhDQ0FHSUFVUUd5SUVEUU1nQmhBVUlBSkJBVUhzRUVFQUVCTkJBQXdIQ3lBRVFRSnhSUVJBSUFKQkFVR3ZFRUVBRUJNZ0JoQVVRUUFNQndzZ0FDQUVRZi8vLy84SGNqWUNaQ0FCSUFjZ0JXdXRJZ3dnQWlBQktBSW9FUWdBSUF4UkRRTWdBQzBBWkVFSWNVVU5BU0FDUVFKQi94eEJBQkFUQ3lBR0VCUkJBUXdGQ3lBQ1FRRkIveHhCQUJBVElBWVFGRUVBREFRTElBRWdCQ0FGSUFJUUhTQUZSd1JBSUFKQkFVR3hIVUVBRUJNZ0JCQVVRUUFNQkFzZ0FDQUVJZ1lnQlNBQ0lBb29BZ1FSQVFBTkFBc2dCQkFVUVFBTUFnc2dBa0VCUVpZbVFRQVFFMEVBREFFTElBWVFGRUVBQ3lBRFFmQUFhaVFBQytBQkFRWi9JQUFvQWdoQk5pQUNFQ2hGQkVCQkFBOExJQUFvQWdnaUJpZ0NBQ0VESUFZb0FnZ2hCUUpBSUFNRVFFRUJJUVFnQTBFQmNTRUhJQU5CQVVZRWYwRUFCU0FEUVg1eElRTURRQUovUVFBZ0JFVU5BQnBCQUNBQUlBRWdBaUFGS0FJQUVRQUFSUTBBR2lBQUlBRWdBaUFGS0FJRUVRQUFRUUJIQ3lFRUlBVkJDR29oQlNBSVFRSnFJZ2dnQTBjTkFBc2dCRVVMSVFOQkFDQUVJQWNiSVFRQ1FDQUhSUTBBSUFNTkFDQUFJQUVnQWlBRktBSUFFUUFBUVFCSElRUUxJQVpCQURZQ0FDQUVEUUZCQUE4TElBWkJBRFlDQUFzZ0FDZ0NBQnBCQVFzS0FDQUFLQUlBR2tFQUN5a0FBa0FnQUNnQ0FDSUFSUTBBSUFBZ0FUWUMwQUVnQVVVTkFDQUFJQUF0QUZ4QkNISTZBRndMQ3lFQUlBQW9BZ0FnQVJCY0lBQkJBRG9BZkNBQUlBRW9BcmhBUVFGeE5nS0FBUXN5QUNBQ1JRUkFRUUFQQ3lBQUtBSUFJQUVnQWlBREVGRkZCRUFnQTBFQlFaMHdRUUFRRTBFQUR3c2dBQ0FDSUFNUWZndHBBZ0ovQVh3akFFRVFheUlESkFBZ0FnUkFBMEFnQUNBRFFRaHFFRTBnQVFKL0lBTXJBd2dpQlpsRUFBQUFBQUFBNEVGakJFQWdCYW9NQVF0QmdJQ0FnSGdMTmdJQUlBRkJCR29oQVNBQVFRaHFJUUFnQkVFQmFpSUVJQUpIRFFBTEN5QURRUkJxSkFBTGhBRUNBbjhCZlNNQVFSQnJJZ01rQUNBQ0JFQURRQ0FESUFBdEFBQTZBQThnQXlBQUxRQUJPZ0FPSUFNZ0FDMEFBam9BRFNBRElBQXRBQU02QUF3Z0FRSi9JQU1xQWd3aUJZdERBQUFBVDEwRVFDQUZxQXdCQzBHQWdJQ0FlQXMyQWdBZ0FVRUVhaUVCSUFCQkJHb2hBQ0FFUVFGcUlnUWdBa2NOQUFzTElBTkJFR29rQUF0TEFRSi9Jd0JCRUdzaUF5UUFJQUlFUUFOQUlBQWdBMEVNYWtFRUVCVWdBU0FES0FJTU5nSUFJQUZCQkdvaEFTQUFRUVJxSVFBZ0JFRUJhaUlFSUFKSERRQUxDeUFEUVJCcUpBQUxTd0VDZnlNQVFSQnJJZ01rQUNBQ0JFQURRQ0FBSUFOQkRHcEJBaEFWSUFFZ0F5Z0NERFlDQUNBQlFRUnFJUUVnQUVFQ2FpRUFJQVJCQVdvaUJDQUNSdzBBQ3dzZ0EwRVFhaVFBQzBvQkFuOGpBRUVRYXlJREpBQWdBZ1JBQTBBZ0FDQURRUWhxRUUwZ0FTQURLd01JdGpnQ0FDQUJRUVJxSVFFZ0FFRUlhaUVBSUFSQkFXb2lCQ0FDUncwQUN3c2dBMEVRYWlRQUMyZ0JBbjhqQUVFUWF5SURKQUFnQWdSQUEwQWdBeUFBTFFBQU9nQVBJQU1nQUMwQUFUb0FEaUFESUFBdEFBSTZBQTBnQXlBQUxRQURPZ0FNSUFFZ0F5b0NERGdDQUNBQlFRUnFJUUVnQUVFRWFpRUFJQVJCQVdvaUJDQUNSdzBBQ3dzZ0EwRVFhaVFBQzB3QkFuOGpBRUVRYXlJREpBQWdBZ1JBQTBBZ0FDQURRUXhxUVFRUUZTQUJJQU1vQWd5ek9BSUFJQUZCQkdvaEFTQUFRUVJxSVFBZ0JFRUJhaUlFSUFKSERRQUxDeUFEUVJCcUpBQUxUQUVDZnlNQVFSQnJJZ01rQUNBQ0JFQURRQ0FBSUFOQkRHcEJBaEFWSUFFZ0F5Z0NETE00QWdBZ0FVRUVhaUVCSUFCQkFtb2hBQ0FFUVFGcUlnUWdBa2NOQUFzTElBTkJFR29rQUF1cUNBSU5md0Y3SXdCQkVHc2lDQ1FBQW44Z0FDZ0NDRUVRUmdSQUlBQW9BclFCSUFBb0F1UUJRWXdzYkdvTUFRc2dBQ2dDREFzaENRSkFJQUpGQkVBZ0EwRUJRZjRnUVFBUUV3d0JDeUFBS0FKZ0lRWkJBU0VFSUFFZ0NFRUlha0VCRUJVZ0NDZ0NDQ0lGUVFKUEJFQWdBMEVDUVp2TUFFRUFFQk1NQVFzZ0JVRUJhaUFDUndSQVFRQWhCQ0FEUVFKQi9pQkJBQkFUREFFTEFrQWdCaWdDRUNJRFJRMEFJQWtvQXRBcklRUWdBMEVJVHdSQUlBTkJlSEVoQmtFQUlRSURRQ0FFUVFBMkFyeERJQVJCQURZQ2hEc2dCRUVBTmdMTU1pQUVRUUEyQXBRcUlBUkJBRFlDM0NFZ0JFRUFOZ0trR1NBRVFRQTJBdXdRSUFSQkFEWUN0QWdnQkVIQXd3QnFJUVFnQWtFSWFpSUNJQVpIRFFBTEN5QURRUWR4SWdORkRRQkJBQ0VDQTBBZ0JFRUFOZ0swQ0NBRVFiZ0lhaUVFSUFKQkFXb2lBaUFEUncwQUN3c2dDU2dDNkNzaUFnUi9JQUlRRkNBSlFRQTJBdWdySUFnb0FnZ0ZJQVVMUlFSQVFRRWhCQXdCQ3dOQUlBRkJBV29pQVNBSVFReHFRUUVRRlFKQUlBa29Bb0FzUlEwQUlBa29BdndySWdNb0FnQWdDQ2dDREVjTkFDQURLQUlFSWdVZ0FDZ0NZQ0lHS0FJUVJ3MEFJQU1vQWdnaUFnUkFRUUFoQkNBQ0tBSVFJQVVnQld3aUJTQUNLQUlBUVFKMFFaRENBV29vQWdCc1J3MERJQWtnQlVFQ2RCQVlJZ2MyQXVncklBZEZEUU1nQWlnQ0RDQUhJQVVnQWlnQ0FFRUNkRUhBeEFGcUtBSUFFUVVBQ3lBREtBSU1JZ0pGRFFCQkFDRUVJQUlvQWhBZ0JpZ0NFQ0lESUFJb0FnQkJBblJCa01JQmFpZ0NBR3hIRFFJZ0EwRUNkQkFZSWdWRkRRSWdBaWdDRENBRklBTWdBaWdDQUVFQ2RFSFF4QUZxS0FJQUVRVUFBa0FnQmlnQ0VDSUhSUTBBSUFrb0F0QXJJUVJCQUNFTEFrQUNRQ0FIUVFSSkRRQWdCRUcwQ0dvaURDQUZJQWRCQW5ScVNRUkFJQVVnQkNBSFFiZ0liR3BKRFFFTElBUkIzQ0ZxSVEwZ0JFR2tHV29oRGlBRVFld1FhaUVQSUFVZ0IwRjhjU0lHUVFKMGFpRUNJQVFnQmtHNENHeHFJUVJCQUNFREEwQWdEQ0FEUWJnSWJDSUthaUFGSUFOQkFuUnEvUUFDQUNJUi9Wb0NBQUFnQ2lBUGFpQVIvVm9DQUFFZ0NpQU9haUFSL1ZvQ0FBSWdDaUFOYWlBUi9Wb0NBQU1nQTBFRWFpSURJQVpIRFFBTElBWWdCMFlOQWd3QkN5QUZJUUpCQUNFR0N5QUhJQVlpQTJ0QkIzRWlDZ1JBQTBBZ0JDQUNLQUlBTmdLMENDQURRUUZxSVFNZ0JFRzRDR29oQkNBQ1FRUnFJUUlnQzBFQmFpSUxJQXBIRFFBTEN5QUdJQWRyUVhoTERRQURRQ0FFSUFJb0FnQTJBclFJSUFRZ0FpZ0NCRFlDN0JBZ0JDQUNLQUlJTmdLa0dTQUVJQUlvQWd3MkF0d2hJQVFnQWlnQ0VEWUNsQ29nQkNBQ0tBSVVOZ0xNTWlBRUlBSW9BaGcyQW9RN0lBUWdBaWdDSERZQ3ZFTWdCRUhBd3dCcUlRUWdBa0VnYWlFQ0lBTkJDR29pQXlBSFJ3MEFDd3NnQlJBVUMwRUJJUVFnRUVFQmFpSVFJQWdvQWdoSkRRQUxDeUFJUVJCcUpBQWdCQXNFQUVKL0M3c0pBUXAvSXdCQkVHc2lCU1FBQW44Z0FDZ0NDRUVRUmdSQUlBQW9BclFCSUFBb0F1UUJRWXdzYkdvTUFRc2dBQ2dDREFzaEJ3Si9JQUpCQVUwRVFDQURRUUZCekNSQkFCQVRRUUFNQVFzZ0FTQUZRUXhxUVFJUUZTQUZLQUlNQkVBZ0EwRUNRZVF0UVFBUUUwRUJEQUVMSUFKQkJrMEVRQ0FEUVFGQnpDUkJBQkFUUVFBTUFRc2dBVUVDYWlBRlFRaHFRUUVRRlNBSEtBTDhLeUlKSVFBQ1FBSkFBa0FnQnlnQ2dDd2lCa1VOQUNBRktBSUlJUWdEUUNBQUtBSUFJQWhHRFFFZ0FFRVVhaUVBSUFSQkFXb2lCQ0FHUncwQUN3d0JDeUFFSUFaSERRRUxJQWNvQW9Rc0lBWkdCSDhnQnlBR1FRcHFJZ0EyQW9Rc0lBa2dBRUVVYkJBYklnQkZCRUFnQnlnQy9Dc1FGQ0FIUVFBMkFvUXNJQWRDQURjQy9Dc2dBMEVCUWVZa1FRQVFFMEVBREFNTElBY2dBRFlDL0NzZ0FDQUhLQUtBTENJRVFSUnNha0VBSUFjb0FvUXNJQVJyUVJSc0VCa2FJQWNvQXZ3cklRa2dCeWdDZ0N3RklBWUxRUlJzSUFscUlRQkJBU0VMQ3lBQUlBVW9BZ2cyQWdBZ0FVRURhaUFGUVF4cVFRSVFGU0FGS0FJTUJFQWdBMEVDUWVRdFFRQVFFMEVCREFFTElBRkJCV29nQlVFRWFrRUNFQlVnQlNnQ0JDSUVRUUpQQkVBZ0EwRUNRWlVZUVFBUUUwRUJEQUVMSUFKQkIyc2hCaUFFQkVBZ0FVRUhhaUVDUVFBaENRTkFJQVpCQWswRVFDQURRUUZCekNSQkFCQVRRUUFNQXdzZ0FpQUZRUXhxUVFFUUZTQUZLQUlNUVFGSEJFQWdBMEVDUWFZclFRQVFFMEVCREFNTElBSkJBV29nQlVFQ0VCVWdBQ0FGS0FJQUlnUkIvLzhCY1NJQk5nSUVJQVpCQTJzaUNDQUVRUTkyUVFGcUlnWWdBV3hCQW1vaUNra0VRQ0FEUVFGQnpDUkJBQkFUUVFBTUF3c2dBa0VEYWlFQ1FRQWhCQ0FCQkVBRFFDQUNJQVZCREdvZ0JoQVZJQVFnQlNnQ0RFY0VRQ0FEUVFKQnpqQkJBQkFUUVFFTUJRc2dBaUFHYWlFQ0lBUkJBV29pQkNBQUtBSUVTUTBBQ3dzZ0FpQUZRUUlRRlNBRklBVW9BZ0FpQkVILy93RnhJZ0UyQWdBZ0FDZ0NCQ0FCUndSQUlBTkJBa0hGR1VFQUVCTkJBUXdEQ3lBSUlBcHJJZ29nQkVFUGRrRUJhaUlHSUFGc1FRTnFJZ3hKQkVBZ0EwRUJRY3drUVFBUUUwRUFEQU1MSUFKQkFtb2hBa0VBSVFRZ0FRUkFBMEFnQWlBRlFReHFJQVlRRlNBRUlBVW9BZ3hIQkVBZ0EwRUNRYzR3UVFBUUUwRUJEQVVMSUFJZ0Jtb2hBaUFFUVFGcUlnUWdBQ2dDQkVrTkFBc0xJQUlnQlVFTWFrRURFQlVnQlNnQ0RDRUdJQUJDQURjQ0NDQUFJQVpCZ0lBRWNVVWdBQzBBRUVIK0FYRnlPZ0FRSUFVZ0JrSC9BWEVpQ0RZQ0NBSkFJQWhGRFFBZ0J5Z0M5Q3NpRFFSQUlBY29BdkFySVFSQkFDRUJBMEFnQ0NBRUtBSUlSZ1JBSUFBZ0JEWUNDQXdEQ3lBRVFSUnFJUVFnQVVFQmFpSUJJQTFIRFFBTEN5QURRUUZCekNSQkFCQVRRUUFNQXdzZ0JTQUdRUWgyUWY4QmNTSUdOZ0lJQWtBZ0JrVU5BQ0FIS0FMMEt5SUlCRUFnQnlnQzhDc2hCRUVBSVFFRFFDQUdJQVFvQWdoR0JFQWdBQ0FFTmdJTURBTUxJQVJCRkdvaEJDQUJRUUZxSWdFZ0NFY05BQXNMSUFOQkFVSE1KRUVBRUJOQkFBd0RDeUFLSUF4cklRWWdBa0VEYWlFQ0lBbEJBV29pQ1NBRktBSUVTUTBBQ3dzZ0JnUkFJQU5CQVVITUpFRUFFQk5CQUF3QkMwRUJJQXRGRFFBYUlBY2dCeWdDZ0N4QkFXbzJBb0FzUVFFTElBVkJFR29rQUF2MUFRRUZmeU1BUVJCcklnUWtBQUpBSUFBb0FtQW9BaEFpQmtFQ2FpQUNSd1JBSUFOQkFVSGtJMEVBRUJNTUFRc2dBU0FFUVF4cVFRSVFGU0FHSUFRb0FneEhCRUFnQTBFQlFlUWpRUUFRRXd3QkN5QUdSUVJBUVFFaEJRd0JDeUFCUVFKcUlRSWdBQ2dDWUNnQ0dDRUFRUUFoQVFOQUlBSWdCRUVJYWtFQkVCVWdBQ0FFS0FJSUlnVkIvd0J4SWdkQkFXb2lDRFlDR0NBQUlBVkJCM1pCQVhFMkFpQWdCMEVmVHdSQUlBUWdDRFlDQkNBRUlBRTJBZ0FnQTBFQlFZWDRBQ0FFRUJOQkFDRUZEQUlMSUFCQk5Hb2hBRUVCSVFVZ0FrRUJhaUVDSUFGQkFXb2lBU0FHUncwQUN3c2dCRUVRYWlRQUlBVUxsQVVCQ1g4akFFRVFheUlISkFBQ2Z5QUFLQUlJUVJCR0JFQWdBQ2dDdEFFZ0FDZ0M1QUZCakN4c2Fnd0JDeUFBS0FJTUN5RUZBbjhnQWtFQlRRUkFJQU5CQVVIL0gwRUFFQk5CQUF3QkN5QUJJQWRCREdwQkFoQVZBa0FnQnlnQ0RBUkFJQU5CQWtIekcwRUFFQk1NQVFzZ0FrRUdUUVJBSUFOQkFVSC9IMEVBRUJOQkFBd0NDeUFCUVFKcUlBZEJER3BCQWhBVklBVW9BdkFySVFRZ0J5MEFEQ0VLQWtBQ1FBSkFJQVVvQXZRcklnWkZCRUFnQkNFQURBRUxJQVFoQUFOQUlBQW9BZ2dnQ2tZTkFTQUFRUlJxSVFBZ0NFRUJhaUlJSUFaSERRQUxEQUVMSUFZZ0NFY05BUXNnQlNnQytDc2dCa1lFUUNBRklBWkJDbW9pQURZQytDc2dCQ0FBUVJSc0VCc2hBQ0FGS0FMd0t5RUVJQUJGQkVBZ0JCQVVJQVZCQURZQytDc2dCVUlBTndMd0t5QURRUUZCbVNCQkFCQVRRUUFNQkFzQ1FDQUFJQVJHRFFBZ0JTZ0NnQ3dpQzBVTkFDQUZLQUw4S3lFTVFRQWhDQU5BSUF3Z0NFRVViR29pQmlnQ0NDSUpCRUFnQmlBQUlBa2dCR3RxTmdJSUN5QUdLQUlNSWdrRVFDQUdJQUFnQ1NBRWEybzJBZ3dMSUFoQkFXb2lDQ0FMUncwQUN3c2dCU0FBTmdMd0t5QUFJQVVvQXZRcklnUkJGR3hxUVFBZ0JTZ0MrQ3NnQkd0QkZHd1FHUm9nQlNnQzlDc2hCaUFGS0FMd0t5RUVDeUFGSUFaQkFXbzJBdlFySUFRZ0JrRVViR29oQUFzZ0FDZ0NEQ0lFQkVBZ0JCQVVJQUJDQURjQ0RBc2dBQ0FLTmdJSUlBQWdCeWdDRENJRVFRcDJRUU54TmdJQUlBQWdCRUVJZGtFRGNUWUNCQ0FCUVFScUlBZEJER3BCQWhBVklBY29BZ3dFUUNBRFFRSkJxaGRCQUJBVERBRUxJQUFnQWtFR2F5SUNFQmdpQkRZQ0RDQUVSUVJBSUFOQkFVSC9IMEVBRUJOQkFBd0NDeUFFSUFGQkJtb2dBaEFXR2lBQUlBSTJBaEFMUVFFTElBZEJFR29rQUFzbkFFRUJJUUVnQUNnQ1lDZ0NFRUVDZENBQ1J3Ui9JQU5CQVVITElrRUFFQk5CQUFWQkFRc0xwd01CQkg4akFFRVFheUlHSkFBQ2Z5QUNRUUZOQkVBZ0EwRUJRZW9lUVFBUUUwRUFEQUVMSUFBdEFOUUJRUUZ4QkVBZ0EwRUJRZGZpQUVFQUVCTkJBQXdCQ3lBQUtBSzBBU0FBS0FMa0FVR01MR3hxSWdBZ0FDMEFpQ3hCQW5JNkFJZ3NJQUVnQmtFTWFrRUJFQlVDUUNBQUtBS3NLQ0lFUlFSQUlBQWdCaWdDREVFQmFpSUZRUWdRRnlJRU5nS3NLQ0FFUlFSQUlBTkJBVUdFSDBFQUVCTkJBQXdEQ3lBQUlBVTJBcWdvREFFTElBWW9BZ3dpQlNBQUtBS29LRWtOQUNBRUlBVkJBV29pQkVFRGRCQWJJZ1ZGQkVBZ0EwRUJRWVFmUVFBUUUwRUFEQUlMSUFBZ0JUWUNyQ2dnQlNBQUtBS29LQ0lIUVFOMGFrRUFJQVFnQjJ0QkEzUVFHUm9nQUNBRU5nS29LQ0FBS0FLc0tDRUVDeUFFSUFZb0Fnd2lCVUVEZEdvb0FnQUVRQ0FHSUFVMkFnQWdBMEVCUWZJMklBWVFFMEVBREFFTElBSkJBV3NpQWhBWUlRUWdBQ2dDckNnaUFDQUdLQUlNSWdWQkEzUnFJQVEyQWdBZ0JFVUVRQ0FEUVFGQmhCOUJBQkFUUVFBTUFRc2dBQ0FGUVFOMGFpQUNOZ0lFSUFBZ0JpZ0NERUVEZEdvb0FnQWdBVUVCYWlBQ0VCWWFRUUVMSUFaQkVHb2tBQXY2QWdFRWZ5TUFRUkJySWdZa0FBSi9JQUpCQVUwRVFDQURRUUZCc2lGQkFCQVRRUUFNQVFzZ0FDQUFMUURVQVVFQmNqb0ExQUVnQVNBR1FReHFRUUVRRlFKQUlBQW9Bb3dCSWdSRkJFQWdBQ0FHS0FJTVFRRnFJZ1ZCQ0JBWElnUTJBb3dCSUFSRkJFQWdBMEVCUWN3aFFRQVFFMEVBREFNTElBQWdCVFlDaUFFTUFRc2dCaWdDRENJRklBQW9Bb2dCU1EwQUlBUWdCVUVCYWlJRVFRTjBFQnNpQlVVRVFDQURRUUZCekNGQkFCQVRRUUFNQWdzZ0FDQUZOZ0tNQVNBRklBQW9Bb2dCSWdkQkEzUnFRUUFnQkNBSGEwRURkQkFaR2lBQUlBUTJBb2dCSUFBb0Fvd0JJUVFMSUFRZ0JpZ0NEQ0lGUVFOMGFpZ0NBQVJBSUFZZ0JUWUNBQ0FEUVFGQmlEY2dCaEFUUVFBTUFRc2dBa0VCYXlJQ0VCZ2hCQ0FBS0FLTUFTSUFJQVlvQWd3aUJVRURkR29nQkRZQ0FDQUVSUVJBSUFOQkFVSE1JVUVBRUJOQkFBd0JDeUFBSUFWQkEzUnFJQUkyQWdRZ0FDQUdLQUlNUVFOMGFpZ0NBQ0FCUVFGcUlBSVFGaHBCQVFzZ0JrRVFhaVFBQzV3QkFRTi9Jd0JCRUdzaUJDUUFBbjhnQWtVRVFDQURRUUZCNVI5QkFCQVRRUUFNQVFzZ0FTQUVRUXhxUVFFUUZVRUJJQUpCQVdzaUJVVU5BQnBCQUNFQVFRQWhBZ05BSUFGQkFXb2lBU0FFUVFocVFRRVFGU0FFS0FJSUlnWkJHSFJCSDNVZ0JrSC9BSEVnQW5KQkIzUnhJUUlnQUVFQmFpSUFJQVZIRFFBTFFRRWdBa1VOQUJvZ0EwRUJRZVVmUVFBUUUwRUFDeUFFUVJCcUpBQUxHd0JCQVNFQUlBSUVmMEVCQlNBRFFRRkI4aUZCQUJBVFFRQUxDOW9FQVFkL0l3QkJJR3NpQkNRQVFRRWhCUUpBSUFKQkFVMEVRRUVBSVFVZ0EwRUJRYW5PQUVFQUVCTU1BUXNnQUNnQ1RBMEFJQUVnQkVFY2FrRUJFQlVnQVVFQmFpQUVRUmhxUVFFUUZTQUVLQUlZSWdaQkJIWkJBM0VpQjBFRFJnUkFJQUJCQVRZQ1RDQURRUUpCZ2RvQVFRQVFFd3dCQ3lBQ1FRSnJJZ0lnQWlBR1FRVjJRUUp4UVFKcUlna2dCMm9pQ0c0aUJpQUliRWNFUUNBQVFRRTJBa3dnQTBFQ1FkN1dBRUVBRUJNTUFRc2dBaUFJU1EwQUFrQWdBQ2dDUkNJQ0lBWkJmM05OQkVBZ0FpQUdhaUlDUVlDQWdJQUNTUTBCQ3lBQVFRRTJBa3dnQTBFQ1FaUEpBRUVBRUJNTUFRc2dBQ2dDU0NBQ1FRTjBFQnNpQ0VVRVFDQUFRUUUyQWt3Z0EwRUNRYjdKQUVFQUVCTU1BUXNnQVVFQ2FpRUNJQUFnQ0RZQ1NBSkFJQWNFUUVFQklBWWdCa0VCVFJzaENrRUFJUVlEUUNBQ0lBUkJGR29nQnhBVklBUW9BaFFpQVNBQUtBS0VBU0FBS0FLQUFXeFBEUUlnQWlBSGFpSUJJQVJCRUdvZ0NSQVZJQWdnQUNnQ1JDSUNRUU4wYWlJRklBUW9BaFE3QVFBZ0JTQUVLQUlRTmdJRVFRRWhCU0FBSUFKQkFXbzJBa1FnQVNBSmFpRUNJQVpCQVdvaUJpQUtSdzBBQ3d3Q0MwRUJJQVlnQmtFQlRSc2hCeUFBS0FKRUlRRkJBQ0VHQTBBZ0JDQUJOZ0lVSUFFZ0FDZ0NoQUVnQUNnQ2dBRnNUdzBCSUFJZ0JFRVFhaUFKRUJVZ0NDQUFLQUpFSWdwQkEzUnFJZ1VnQVRzQkFDQUZJQVFvQWhBMkFnUkJBU0VGSUFBZ0NrRUJhaUlCTmdKRUlBSWdDV29oQWlBR1FRRnFJZ1lnQjBjTkFBc01BUXNnQUVFQk5nSk1JQVFnQVRZQ0FDQURRUUpCMGp3Z0JCQVRDeUFFUVNCcUpBQWdCUXNFQUVFQUN3dkx3UUVoQUVHQUNBdmdtUUZqWVc1dWIzUWdZV3hzYjJOaGRHVWdiM0JxWDNSalpGOXpaV2RmWkdGMFlWOWphSFZ1YTE5MEtpQmhjbkpoZVFBdEt5QWdJREJZTUhnQUxUQllLekJZSURCWUxUQjRLekI0SURCNEFGVnVhMjV2ZDI0Z1ptOXliV0YwQUVaaGFXeGxaQ0IwYnlCelpYUjFjQ0IwYUdVZ1pHVmpiMlJsY2dCR1lXbHNaV1FnZEc4Z2NtVmhaQ0IwYUdVZ2FHVmhaR1Z5QUc1aGJnQXFiRjkwYVd4bFgyeGxiaUErSUZWSlRsUmZUVUZZSUMwZ1QxQktYME5QVFUxUFRsOURRa3hMWDBSQlZFRmZSVmhVVWtFZ0xTQndYMm95YXkwK2JWOXpjR1ZqYVdacFkxOXdZWEpoYlM1dFgyUmxZMjlrWlhJdWJWOXpiM1JmYkdWdVozUm9BR2x1WmdCR1lXbHNaV1FnZEc4Z1pHVmpiMlJsSUhSb1pTQnBiV0ZuWlFCSmJuWmhiR2xrSUdGalkyVnpjeUIwYnlCd2FTMCthVzVqYkhWa1pRQXZkRzF3TDI5d1pXNXFjR1ZuTDNOeVl5OWlhVzR2WTI5dGJXOXVMMk52Ykc5eUxtTUFRVXhNWDBOUVZWTUFUMUJLWDA1VlRWOVVTRkpGUVVSVEFFNUJUZ0JQU2xCZlJFOWZUazlVWDBSSlUxQk1RVmxmVkVsTVJWOUpUa1JGV0Y5SlJsOVVURTBBU1U1R0FIQmZhakpyTFQ1dFgzTndaV05wWm1salgzQmhjbUZ0TG0xZlpHVmpiMlJsY2k1dFgzTnZkRjlzWlc1bmRHZ2dQaUJWU1U1VVgwMUJXQ0F0SUU5UVNsOURUMDFOVDA1ZlEwSk1TMTlFUVZSQlgwVllWRkpCQUFrSkNTQndjbVZqWTJsdWRITnBlbVVnS0hjc2FDazlBQWtKQ1NCemRHVndjMmw2WlhNZ0tHMHNaU2s5QUZOUFZDQnRZWEpyWlhJZ1ptOXlJSFJwYkdVZ0pYVWdaR1ZqYkdGeVpYTWdiVzl5WlNCMGFXeGxMWEJoY25SeklIUm9ZVzRnWm05MWJtUWdhVzRnVkV4TklHMWhjbXRsY2k0QUtHNTFiR3dwQUNnbFpDd2xaQ2tnQUNWemZRb0FDUWtnZlFvQVcwUkZWbDBnUkhWdGNDQmhiaUJwYldGblpWOWpiMjF3WDJobFlXUmxjaUJ6ZEhKMVkzUWdld29BVzBSRlZsMGdSSFZ0Y0NCaGJpQnBiV0ZuWlY5b1pXRmtaWElnYzNSeWRXTjBJSHNLQUVsdFlXZGxJR2x1Wm04Z2V3b0FDU0JrWldaaGRXeDBJSFJwYkdVZ2V3b0FKWE1KSUdOdmJYQnZibVZ1ZENBbFpDQjdDZ0FKQ1NCamIyMXdJQ1ZrSUhzS0FBa2dWR2xzWlNCcGJtUmxlRG9nZXdvQUNTQk5ZWEpyWlhJZ2JHbHpkRG9nZXdvQVEyOWtaWE4wY21WaGJTQnBibVJsZUNCbWNtOXRJRzFoYVc0Z2FHVmhaR1Z5T2lCN0NnQkRiMlJsYzNSeVpXRnRJR2x1Wm04Z1puSnZiU0J0WVdsdUlHaGxZV1JsY2pvZ2V3b0FVM1J5WldGdElHVnljbTl5SUhkb2FXeGxJSEpsWVdScGJtY2dTbEF5SUVobFlXUmxjaUJpYjNnS0FFWnZkVzVrSUdFZ2JXbHpjR3hoWTJWa0lDY2xZeVZqSldNbFl5Y2dZbTk0SUc5MWRITnBaR1VnYW5BeWFDQmliM2dLQUUxaGJHWnZjbTFsWkNCS1VESWdabWxzWlNCbWIzSnRZWFE2SUdacGNuTjBJR0p2ZUNCdGRYTjBJR0psSUVwUVJVY2dNakF3TUNCemFXZHVZWFIxY21VZ1ltOTRDZ0JOWVd4bWIzSnRaV1FnU2xBeUlHWnBiR1VnWm05eWJXRjBPaUJ6WldOdmJtUWdZbTk0SUcxMWMzUWdZbVVnWm1sc1pTQjBlWEJsSUdKdmVBb0FUbTkwSUdWdWIzVm5hQ0J0WlcxdmNua2dkRzhnYUdGdVpHeGxJR3B3WldjeU1EQXdJR0p2ZUFvQVRtOTBJR1Z1YjNWbmFDQnRaVzF2Y25rZ2QybDBhQ0JHVkZsUUlFSnZlQW9BUVNCdFlYSnJaWElnU1VRZ2QyRnpJR1Y0Y0dWamRHVmtJQ2d3ZUdabUxTMHBJR2x1YzNSbFlXUWdiMllnSlM0NGVBb0FDUWtnYldOMFBTVjRDZ0FKQ1FrZ1kySnNhM04wZVQwbEkzZ0tBQWtKQ1NCamMzUjVQU1VqZUFvQUNRa2djSEpuUFNVamVBb0FTVzUwWldkbGNpQnZkbVZ5Wm14dmR3b0FDU0IwWkhnOUpYVXNJSFJrZVQwbGRRb0FDU0IwZHowbGRTd2dkR2c5SlhVS0FBa2dkSGd3UFNWMUxDQjBlVEE5SlhVS0FFbHVkbUZzYVdRZ1kyOXRjRzl1Wlc1MElHbHVaR1Y0T2lBbGRRb0FVM1J5WldGdElIUnZieUJ6YUc5eWRBb0FUV0Z5YTJWeUlHaGhibVJzWlhJZ1puVnVZM1JwYjI0Z1ptRnBiR1ZrSUhSdklISmxZV1FnZEdobElHMWhjbXRsY2lCelpXZHRaVzUwQ2dCT2IzUWdaVzV2ZFdkb0lHMWxiVzl5ZVNCbWIzSWdZM1Z5Y21WdWRDQndjbVZqYVc1amRDQmpiMlJsWW14dlkyc2daV3hsYldWdWRBb0FSWEp5YjNJZ2NtVmhaR2x1WnlCVFVFTnZaQ0JUVUVOdll5QmxiR1Z0Wlc1MENnQkZjbkp2Y2lCeVpXRmthVzVuSUZOUlkyUWdiM0lnVTFGall5QmxiR1Z0Wlc1MENnQkJJRUpRUTBNZ2FHVmhaR1Z5SUdKdmVDQnBjeUJoZG1GcGJHRmliR1VnWVd4MGFHOTFaMmdnUWxCRElHZHBkbVZ1SUdKNUlIUm9aU0JKU0VSU0lHSnZlQ0FvSldRcElHbHVaR2xqWVhSbElHTnZiWEJ2Ym1WdWRITWdZbWwwSUdSbGNIUm9JR2x6SUdOdmJuTjBZVzUwQ2dCRmNuSnZjaUIzYVhSb0lGTkpXaUJ0WVhKclpYSTZJR2xzYkdWbllXd2dkR2xzWlNCdlptWnpaWFFLQUVsdWRtRnNhV1FnY0hKbFkybHVZM1FLQUU1dmRDQmxibTkxWjJnZ2JXVnRiM0o1SUhSdklHaGhibVJzWlNCaVlXNWtJSEJ5WldOcGJuUnpDZ0JHWVdsc1pXUWdkRzhnWkdWamIyUmxJR0ZzYkNCMWMyVmtJR052YlhCdmJtVnVkSE1LQUZOcGVtVWdiMllnWTI5a1pTQmliRzlqYXlCa1lYUmhJR1Y0WTJWbFpITWdjM2x6ZEdWdElHeHBiV2wwY3dvQVUybDZaU0J2WmlCMGFXeGxJR1JoZEdFZ1pYaGpaV1ZrY3lCemVYTjBaVzBnYkdsdGFYUnpDZ0JEWVc1dWIzUWdkR0ZyWlNCcGJpQmphR0Z5WjJVZ2JYVnNkR2x3YkdVZ1RVTlVJRzFoY210bGNuTUtBRU52Y25KMWNIUmxaQ0JRVUUwZ2JXRnlhMlZ5Y3dvQVRtOTBJR1Z1YjNWbmFDQnRaVzF2Y25rZ1ptOXlJSFJwYkdVZ2NtVnpiMngxZEdsdmJuTUtBRU5oYm01dmRDQjBZV3RsSUdsdUlHTm9ZWEpuWlNCdGRXeDBhWEJzWlNCamIyeHNaV04wYVc5dWN3b0FTVzUyWVd4cFpDQlFRMHhTSUdKdmVDNGdVbVZ3YjNKMGN5QXdJSEJoYkdWMGRHVWdZMjlzZFcxdWN3b0FWMlVnWkc4Z2JtOTBJSE4xY0hCdmNuUWdVazlKSUdsdUlHUmxZMjlrYVc1bklFaFVJR052WkdWaWJHOWphM01LQUVOaGJtNXZkQ0JvWVc1a2JHVWdZbTk0SUc5bUlIVnVaR1ZtYVc1bFpDQnphWHBsY3dvQVEyRnVibTkwSUhSaGEyVWdhVzRnWTJoaGNtZGxJR052Ykd4bFkzUnBiMjV6SUhkcGRHaHZkWFFnYzJGdFpTQnVkVzFpWlhJZ2IyWWdhVzVrYVhobGN3b0FTVzUyWVd4cFpDQjBhV3hsWXkwK2QybHVYM2g0ZUNCMllXeDFaWE1LQUVOaGJtNXZkQ0JvWVc1a2JHVWdZbTk0SUc5bUlHeGxjM01nZEdoaGJpQTRJR0o1ZEdWekNnQkRZVzV1YjNRZ2FHRnVaR3hsSUZoTUlHSnZlQ0J2WmlCc1pYTnpJSFJvWVc0Z01UWWdZbmwwWlhNS0FFTnZiWEJ2Ym1WdWRDQnBibVJsZUNBbGRTQjFjMlZrSUhObGRtVnlZV3dnZEdsdFpYTUtBRWx1ZG1Gc2FXUWdVRU5NVWlCaWIzZ3VJRkpsY0c5eWRITWdKV1FnWlc1MGNtbGxjd29BVG05MElHVnViM1ZuYUNCdFpXMXZjbmtnZEc4Z1kzSmxZWFJsSUZSaFp5MTBjbVZsSUc1dlpHVnpDZ0JEWVc1dWIzUWdkR0ZyWlNCcGJpQmphR0Z5WjJVZ2JXTjBJR1JoZEdFZ2QybDBhR2x1SUcxMWJIUnBjR3hsSUUxRFZDQnlaV052Y21SekNnQkRZVzV1YjNRZ1pHVmpiMlJsSUhScGJHVXNJRzFsYlc5eWVTQmxjbkp2Y2dvQWIzQnFYMm95YTE5aGNIQnNlVjl1WWw5MGFXeGxYM0JoY25SelgyTnZjbkpsWTNScGIyNGdaWEp5YjNJS0FGQnliMkpzWlcwZ2QybDBhQ0J6YTJsd2NHbHVaeUJLVUVWSE1qQXdNQ0JpYjNnc0lITjBjbVZoYlNCbGNuSnZjZ29BVUhKdllteGxiU0IzYVhSb0lISmxZV1JwYm1jZ1NsQkZSekl3TURBZ1ltOTRMQ0J6ZEhKbFlXMGdaWEp5YjNJS0FGVnVhMjV2ZDI0Z2JXRnlhMlZ5Q2dCT2IzUWdaVzV2ZFdkb0lHMWxiVzl5ZVNCMGJ5QmhaR1FnZEd3Z2JXRnlhMlZ5Q2dCT2IzUWdaVzV2ZFdkb0lHMWxiVzl5ZVNCMGJ5QmhaR1FnYldnZ2JXRnlhMlZ5Q2dCT2IzUWdaVzV2ZFdkb0lHMWxiVzl5ZVNCMGJ5QjBZV3RsSUdsdUlHTm9ZWEpuWlNCVFNWb2diV0Z5YTJWeUNnQkZjbkp2Y2lCeVpXRmthVzVuSUZCUVZDQnRZWEpyWlhJS0FFNXZkQ0JsYm05MVoyZ2diV1Z0YjNKNUlIUnZJSEpsWVdRZ1VGQlVJRzFoY210bGNnb0FSWEp5YjNJZ2NtVmhaR2x1WnlCVFQxUWdiV0Z5YTJWeUNnQkVhV1FnYm05MElHZGxkQ0JsZUhCbFkzUmxaQ0JUVDFRZ2JXRnlhMlZ5Q2dCRmNuSnZjaUJ5WldGa2FXNW5JRkJNVkNCdFlYSnJaWElLQUVWeWNtOXlJSEpsWVdScGJtY2dUVU5VSUcxaGNtdGxjZ29BVG05MElHVnViM1ZuYUNCdFpXMXZjbmtnZEc4Z2NtVmhaQ0JOUTFRZ2JXRnlhMlZ5Q2dCT2IzUWdaVzV2ZFdkb0lITndZV05sSUdadmNpQmxlSEJsWTNSbFpDQlRUMUFnYldGeWEyVnlDZ0JGZUhCbFkzUmxaQ0JUVDFBZ2JXRnlhMlZ5Q2dCRmNuSnZjaUJ5WldGa2FXNW5JRTFEVHlCdFlYSnJaWElLQUVWeWNtOXlJSEpsWVdScGJtY2dVa2RPSUcxaGNtdGxjZ29BUlhKeWIzSWdjbVZoWkdsdVp5QlFVRTBnYldGeWEyVnlDZ0JPYjNRZ1pXNXZkV2RvSUcxbGJXOXllU0IwYnlCeVpXRmtJRkJRVFNCdFlYSnJaWElLQUVWeWNtOXlJSEpsWVdScGJtY2dVRXhOSUcxaGNtdGxjZ29BUlhod1pXTjBaV1FnUlZCSUlHMWhjbXRsY2dvQVRtOTBJR1Z1YjNWbmFDQnpjR0ZqWlNCbWIzSWdjbVZ4ZFdseVpXUWdSVkJJSUcxaGNtdGxjZ29BUlhKeWIzSWdjbVZoWkdsdVp5QkRVa2NnYldGeWEyVnlDZ0JWYm10dWIzZHVJSEJ5YjJkeVpYTnphVzl1SUc5eVpHVnlJR2x1SUVOUFJDQnRZWEpyWlhJS0FGVnVhMjV2ZDI0Z1UyTnZaQ0IyWVd4MVpTQnBiaUJEVDBRZ2JXRnlhMlZ5Q2dCRmNuSnZjaUJ5WldGa2FXNW5JRU5QUkNCdFlYSnJaWElLQUVWeWNtOXlJSEpsWVdScGJtY2dVVU5FSUcxaGNtdGxjZ29BUTNKeWIzSWdjbVZoWkdsdVp5QkRRa1FnYldGeWEyVnlDZ0JGY25KdmNpQnlaV0ZrYVc1bklGQlBReUJ0WVhKclpYSUtBRVZ5Y205eUlISmxZV1JwYm1jZ1EwOURJRzFoY210bGNnb0FSWEp5YjNJZ2NtVmhaR2x1WnlCUlEwTWdiV0Z5YTJWeUNnQkZjbkp2Y2lCeVpXRmthVzVuSUUxRFF5QnRZWEpyWlhJS0FFNXZkQ0JsYm05MVoyZ2diV1Z0YjNKNUlIUnZJSEpsWVdRZ1RVTkRJRzFoY210bGNnb0FjbVZ4ZFdseVpXUWdVMGxhSUcxaGNtdGxjaUJ1YjNRZ1ptOTFibVFnYVc0Z2JXRnBiaUJvWldGa1pYSUtBSEpsY1hWcGNtVmtJRU5QUkNCdFlYSnJaWElnYm05MElHWnZkVzVrSUdsdUlHMWhhVzRnYUdWaFpHVnlDZ0J5WlhGMWFYSmxaQ0JSUTBRZ2JXRnlhMlZ5SUc1dmRDQm1iM1Z1WkNCcGJpQnRZV2x1SUdobFlXUmxjZ29BVG05MElHVnViM1ZuYUNCdFpXMXZjbmtnZEc4Z2FHRnVaR3hsSUdwd1pXY3lNREF3SUdacGJHVWdhR1ZoWkdWeUNnQk9iM1FnWlc1dmRXZG9JRzFsYlc5eWVTQjBieUJ5WldGa0lHaGxZV1JsY2dvQVJYSnliM0lnZDJsMGFDQktVQ0JUYVdkdVlYUjFjbVVnT2lCaVlXUWdiV0ZuYVdNZ2JuVnRZbVZ5Q2dCSmJpQlRUMVFnYldGeWEyVnlMQ0JVVUZOdmRDQW9KV1FwSUdseklHNXZkQ0IyWVd4cFpDQnlaV2RoY21SeklIUnZJSFJvWlNCamRYSnlaVzUwSUc1MWJXSmxjaUJ2WmlCMGFXeGxMWEJoY25RZ0tDVmtLU3dnWjJsMmFXNW5JSFZ3Q2dCSmJpQlRUMVFnYldGeWEyVnlMQ0JVVUZOdmRDQW9KV1FwSUdseklHNXZkQ0IyWVd4cFpDQnlaV2RoY21SeklIUnZJSFJvWlNCd2NtVjJhVzkxY3lCdWRXMWlaWElnYjJZZ2RHbHNaUzF3WVhKMElDZ2xaQ2tzSUdkcGRtbHVaeUIxY0FvQVNXNGdVMDlVSUcxaGNtdGxjaXdnVkZCVGIzUWdLQ1ZrS1NCcGN5QnViM1FnZG1Gc2FXUWdjbVZuWVhKa2N5QjBieUIwYUdVZ1kzVnljbVZ1ZENCdWRXMWlaWElnYjJZZ2RHbHNaUzF3WVhKMElDaG9aV0ZrWlhJcElDZ2xaQ2tzSUdkcGRtbHVaeUIxY0FvQWRHbHNaWE1nY21WeGRXbHlaU0JoZENCc1pXRnpkQ0J2Ym1VZ2NtVnpiMngxZEdsdmJnb0FUV0Z5YTJWeUlHbHpJRzV2ZENCamIyMXdiR2xoYm5RZ2QybDBhQ0JwZEhNZ2NHOXphWFJwYjI0S0FGQnliMkpzWlcwZ2QybDBhQ0J6WldWcklHWjFibU4wYVc5dUNnQkZjbkp2Y2lCeVpXRmthVzVuSUZOUVEyOWtJRk5RUTI5aklHVnNaVzFsYm5Rc0lFbHVkbUZzYVdRZ1kySnNhM2N2WTJKc2EyZ2dZMjl0WW1sdVlYUnBiMjRLQUVsdWRtRnNhV1FnYlhWc2RHbHdiR1VnWTI5dGNHOXVaVzUwSUhSeVlXNXpabTl5YldGMGFXOXVDZ0JEWVc1dWIzUWdkR0ZyWlNCcGJpQmphR0Z5WjJVZ1kyOXNiR1ZqZEdsdmJuTWdiM1JvWlhJZ2RHaGhiaUJoY25KaGVTQmtaV052Y25KbGJHRjBhVzl1Q2dCVWIyOGdiR0Z5WjJVZ2RtRnNkV1VnWm05eUlFNXdjRzBLQUU1dmRDQmxibTkxWjJnZ1lubDBaWE1nZEc4Z2NtVmhaQ0JPY0hCdENnQmlZV1FnY0d4aFkyVmtJR3B3WldjZ1kyOWtaWE4wY21WaGJRb0FDU0JOWVdsdUlHaGxZV1JsY2lCemRHRnlkQ0J3YjNOcGRHbHZiajBsYkd4cENna2dUV0ZwYmlCb1pXRmtaWElnWlc1a0lIQnZjMmwwYVc5dVBTVnNiR2tLQUUxaGNtdGxjaUJ6YVhwbElHbHVZMjl1YzJsemRHVnVkQ0IzYVhSb0lITjBjbVZoYlNCc1pXNW5kR2dLQUZScGJHVWdjR0Z5ZENCc1pXNW5kR2dnYzJsNlpTQnBibU52Ym5OcGMzUmxiblFnZDJsMGFDQnpkSEpsWVcwZ2JHVnVaM1JvQ2dCRFlXNXViM1FnZEdGclpTQnBiaUJqYUdGeVoyVWdiWFZzZEdsd2JHVWdaR0YwWVNCemNHRnVibWx1WndvQVYzSnZibWNnWm14aFp3b0FSWEp5YjNJZ2QybDBhQ0JHVkZsUUlITnBaMjVoZEhWeVpTQkNiM2dnYzJsNlpRb0FSWEp5YjNJZ2QybDBhQ0JLVUNCemFXZHVZWFIxY21VZ1FtOTRJSE5wZW1VS0FFbHVkbUZzYVdRZ2NISmxZMmx1WTNRZ2MybDZaUW9BU1c1amIyNXphWE4wWlc1MElHMWhjbXRsY2lCemFYcGxDZ0JKYm5aaGJHbGtJRzFoY210bGNpQnphWHBsQ2dCRmNuSnZjaUIzYVhSb0lGTkpXaUJ0WVhKclpYSWdjMmw2WlFvQVRtOTBJR1Z1YjNWbmFDQnRaVzF2Y25rZ2RHOGdZV1JrSUdFZ2JtVjNJSFpoYkdsa1lYUnBiMjRnY0hKdlkyVmtkWEpsQ2dCT2IzUWdaVzV2ZFdkb0lHMWxiVzl5ZVNCMGJ5QmtaV052WkdVZ2RHbHNaUW9BUm1GcGJHVmtJSFJ2SUdSbFkyOWtaU0IwYUdVZ1kyOWtaWE4wY21WaGJTQnBiaUIwYUdVZ1NsQXlJR1pwYkdVS0FFTmhibTV2ZENCMFlXdGxJR2x1SUdOb1lYSm5aU0JqYjJ4c1pXTjBhVzl1Y3lCM2FYUm9JR2x1WkdsNElITm9kV1ptYkdVS0FFTmhibTV2ZENCaGJHeHZZMkYwWlNCVWFXVnlJREVnYUdGdVpHeGxDZ0JPYnlCa1pXTnZaR1ZrSUdGeVpXRWdjR0Z5WVcxbGRHVnljeXdnYzJWMElIUm9aU0JrWldOdlpHVmtJR0Z5WldFZ2RHOGdkR2hsSUhkb2IyeGxJR2x0WVdkbENnQk9iM1FnWlc1dmRXZG9JRzFsYlc5eWVTQjBieUJqY21WaGRHVWdWR0ZuTFhSeVpXVUtBRTV2ZENCbGJtOTFaMmdnYldWdGIzSjVJSFJ2SUhKbGFXNXBkR2xoYkdsNlpTQjBhR1VnZEdGbklIUnlaV1VLQUVWeWNtOXlJSEpsWVdScGJtY2dVMUJEYjJRZ1UxQkRiMk1nWld4bGJXVnVkQ3dnU1c1MllXeHBaQ0IwY21GdWMyWnZjbTFoZEdsdmJpQm1iM1Z1WkFvQVJYSnliM0lnY21WaFpHbHVaeUJUVUVOdlpDQlRVRU52WXlCbGJHVnRaVzUwTGlCVmJuTjFjSEJ2Y25SbFpDQk5hWGhsWkNCSVZDQmpiMlJsTFdKc2IyTnJJSE4wZVd4bElHWnZkVzVrQ2dCVWFXeGxJRmtnWTI5dmNtUnBibUYwWlhNZ1lYSmxJRzV2ZENCemRYQndiM0owWldRS0FGUnBiR1VnV0NCamIyOXlaR2x1WVhSbGN5QmhjbVVnYm05MElITjFjSEJ2Y25SbFpBb0FTVzFoWjJVZ1kyOXZjbVJwYm1GMFpYTWdZV0p2ZG1VZ1NVNVVYMDFCV0NCaGNtVWdibTkwSUhOMWNIQnZjblJsWkFvQVNsQkZSekl3TURBZ1NHVmhaR1Z5SUdKdmVDQnViM1FnY21WaFpDQjVaWFFzSUNjbFl5VmpKV01sWXljZ1ltOTRJSGRwYkd3Z1ltVWdhV2R1YjNKbFpBb0FiM0JxWDJveWExOXRaWEpuWlY5d2NIUW9LU0JvWVhNZ1lXeHlaV0ZrZVNCaVpXVnVJR05oYkd4bFpBb0FiM0JxWDJveWExOWlkV2xzWkY5MGNGOXBibVJsZUY5bWNtOXRYM1JzYlNncE9pQjBhV3hsSUdsdVpHVjRJR0ZzYkc5allYUnBiMjRnWm1GcGJHVmtDZ0JPYjNRZ1pXNXZkV2RvSUcxbGJXOXllU0IwYnlCeVpXRmtJRk5QVkNCdFlYSnJaWEl1SUZScGJHVWdhVzVrWlhnZ1lXeHNiMk5oZEdsdmJpQm1ZV2xzWldRS0FFbG5ibTl5YVc1bklHbG9aSElnWW05NExpQkdhWEp6ZENCcGFHUnlJR0p2ZUNCaGJISmxZV1I1SUhKbFlXUUtBRnB3Y0hRZ0pYVWdZV3h5WldGa2VTQnlaV0ZrQ2dCYWNIQnRJQ1YxSUdGc2NtVmhaSGtnY21WaFpBb0FVRlJGVWswZ1kyaGxZMnNnWm1GcGJIVnlaVG9nSldRZ2MzbHVkR2hsYzJsNlpXUWdNSGhHUmlCdFlYSnJaWEp6SUhKbFlXUUtBQWtKQ1NCallteHJkejB5WGlWa0NnQUpDUWtnWTJKc2EyZzlNbDRsWkFvQUNRa0pJSEZ1ZEhOMGVUMGxaQW9BSlhNZ1pIZzlKV1FzSUdSNVBTVmtDZ0FKQ1FrZ2NtOXBjMmhwWm5ROUpXUUtBQWtKQ1NCdWRXMW5ZbWwwY3owbFpBb0FDUWtnYm5WdGJHRjVaWEp6UFNWa0NnQWxjeUJ1ZFcxamIyMXdjejBsWkFvQWIzQnFYMnB3TWw5aGNIQnNlVjlqWkdWbU9pQmhZMjQ5SldRc0lHNTFiV052YlhCelBTVmtDZ0J2Y0dwZmFuQXlYMkZ3Y0d4NVgyTmtaV1k2SUdOdVBTVmtMQ0J1ZFcxamIyMXdjejBsWkFvQUNRa0pJRzUxYlhKbGMyOXNkWFJwYjI1elBTVmtDZ0FKQ1NCMGVYQmxQU1VqZUN3Z2NHOXpQU1ZzYkdrc0lHeGxiajBsWkFvQUpYTWdjMmR1WkQwbFpBb0FDUWtKSUhGdFptSnBaRDBsWkFvQUpYTWdjSEpsWXowbFpBb0FDUWtnYm1JZ2IyWWdkR2xzWlMxd1lYSjBJR2x1SUhScGJHVWdXeVZrWFQwbFpBb0FKWE1nZURFOUpXUXNJSGt4UFNWa0NnQWxjeUI0TUQwbFpDd2dlVEE5SldRS0FFWmhhV3hsWkNCMGJ5QmtaV052WkdVZ2RHbHNaU0FsWkM4bFpBb0FVMlYwZEdsdVp5QmtaV052WkdsdVp5QmhjbVZoSUhSdklDVmtMQ1ZrTENWa0xDVmtDZ0JHWVdsc1pXUWdkRzhnWkdWamIyUmxJR052YlhCdmJtVnVkQ0FsWkFvQVNXNTJZV3hwWkNCMllXeDFaU0JtYjNJZ2JuVnRjbVZ6YjJ4MWRHbHZibk1nT2lBbFpDd2diV0Y0SUhaaGJIVmxJR2x6SUhObGRDQnBiaUJ2Y0dWdWFuQmxaeTVvSUdGMElDVmtDZ0JKYm5aaGJHbGtJR052YlhCdmJtVnVkQ0J1ZFcxaVpYSTZJQ1ZrTENCeVpXZGhjbVJwYm1jZ2RHaGxJRzUxYldKbGNpQnZaaUJqYjIxd2IyNWxiblJ6SUNWa0NnQlViMjhnYldGdWVTQlFUME56SUNWa0NnQnZjR3BmYWpKclgzSmxZV1JmZEd4dEtDazZJR2x1ZG1Gc2FXUWdkR2xzWlNCdWRXMWlaWElnSldRS0FFbHVkbUZzYVdRZ2RHbHNaU0J1ZFcxaVpYSWdKV1FLQUVsdWRtRnNhV1FnZEdsc1pTQndZWEowSUdsdVpHVjRJR1p2Y2lCMGFXeGxJRzUxYldKbGNpQWxaQzRnUjI5MElDVmtMQ0JsZUhCbFkzUmxaQ0FsWkFvQVJYSnliM0lnZDJsMGFDQlRTVm9nYldGeWEyVnlPaUJ1ZFcxaVpYSWdiMllnWTI5dGNHOXVaVzUwSUdseklHbHNiR1ZuWVd3Z0xUNGdKV1FLQUU1dmRDQmxibTkxWjJnZ2JXVnRiM0o1SUdadmNpQmphV1ZzWVdJS0FFTmhibTV2ZENCaGJHeHZZMkYwWlNCallteHJMVDVrWldOdlpHVmtYMlJoZEdFS0FFWmhhV3hsWkNCMGJ5QnRaWEpuWlNCUVVGUWdaR0YwWVFvQVJtRnBiR1ZrSUhSdklHMWxjbWRsSUZCUVRTQmtZWFJoQ2dCSmJuWmhiR2xrSUc1MWJXSmxjaUJ2WmlCc1lYbGxjbk1nYVc0Z1EwOUVJRzFoY210bGNpQTZJQ1ZrSUc1dmRDQnBiaUJ5WVc1blpTQmJNUzAyTlRVek5WMEtBQ1Z6T2lWa09tTnZiRzl5WDJOdGVXdGZkRzlmY21kaUNnbERRVTRnVGs5VUlFTlBUbFpGVWxRS0FDVnpPaVZrT21OdmJHOXlYMlZ6ZVdOalgzUnZYM0puWWdvSlEwRk9JRTVQVkNCRFQwNVdSVkpVQ2dBbGN6b2xaRHBqYjJ4dmNsOXplV05qWDNSdlgzSm5ZZ29KUTBGT0lFNVBWQ0JEVDA1V1JWSlVDZ0JUZEhKbFlXMGdkRzl2SUhOb2IzSjBMQ0JsZUhCbFkzUmxaQ0JUVDFRS0FGVnVZV0pzWlNCMGJ5QnpaWFFnZERFZ2FHRnVaR3hsSUdGeklGUk1Vd29BVTI5MElHeGxibWQwYUNCcGN5QnNaWE56SUhSb1lXNGdiV0Z5YTJWeUlITnBlbVVnS3lCdFlYSnJaWElnU1VRS0FGTjBjbVZoYlNCa2IyVnpJRzV2ZENCbGJtUWdkMmwwYUNCRlQwTUtBRU5oYm01dmRDQm9ZVzVrYkdVZ1ltOTRJSE5wZW1WeklHaHBaMmhsY2lCMGFHRnVJREplTXpJS0FHOXdhbDl3YVY5dVpYaDBYMnh5WTNBb0tUb2dhVzUyWVd4cFpDQmpiMjF3Ym04d0wyTnZiWEJ1YnpFS0FHOXdhbDl3YVY5dVpYaDBYM0pzWTNBb0tUb2dhVzUyWVd4cFpDQmpiMjF3Ym04d0wyTnZiWEJ1YnpFS0FHOXdhbDl3YVY5dVpYaDBYMk53Y213b0tUb2dhVzUyWVd4cFpDQmpiMjF3Ym04d0wyTnZiWEJ1YnpFS0FHOXdhbDl3YVY5dVpYaDBYM0JqY213b0tUb2dhVzUyWVd4cFpDQmpiMjF3Ym04d0wyTnZiWEJ1YnpFS0FHOXdhbDl3YVY5dVpYaDBYM0p3WTJ3b0tUb2dhVzUyWVd4cFpDQmpiMjF3Ym04d0wyTnZiWEJ1YnpFS0FHOXdhbDkwTVY5a1pXTnZaR1ZmWTJKc2F5Z3BPaUIxYm5OMWNIQnZjblJsWkNCaWNHNXZYM0JzZFhOZmIyNWxJRDBnSldRZ1BqMGdNekVLQUVaaGFXeGxaQ0IwYnlCa1pXTnZaR1VnZEdsc1pTQXhMekVLQUVsdWMzVm1abWxqYVdWdWRDQmtZWFJoSUdadmNpQkRUVUZRSUdKdmVDNEtBRTVsWldRZ2RHOGdjbVZoWkNCaElGQkRURklnWW05NElHSmxabTl5WlNCMGFHVWdRMDFCVUNCaWIzZ3VDZ0JKYm5OMVptWnBZMmxsYm5RZ1pHRjBZU0JtYjNJZ1EwUkZSaUJpYjNndUNnQk9kVzFpWlhJZ2IyWWdZMmhoYm01bGJDQmtaWE5qY21sd2RHbHZiaUJwY3lCbGNYVmhiQ0IwYnlCNlpYSnZJR2x1SUVORVJVWWdZbTk0TGdvQVUzUnlaV0Z0SUdWeWNtOXlJSGRvYVd4bElISmxZV1JwYm1jZ1NsQXlJRWhsWVdSbGNpQmliM2c2SUc1dklDZHBhR1J5SnlCaWIzZ3VDZ0JPYjI0Z1kyOXVabTl5YldGdWRDQmpiMlJsYzNSeVpXRnRJRlJRYzI5MFBUMVVUbk52ZEM0S0FGTjBjbVZoYlNCbGNuSnZjaUIzYUdsc1pTQnlaV0ZrYVc1bklFcFFNaUJJWldGa1pYSWdZbTk0T2lCaWIzZ2diR1Z1WjNSb0lHbHpJR2x1WTI5dWMybHpkR1Z1ZEM0S0FFSnZlQ0JzWlc1bmRHZ2dhWE1nYVc1amIyNXphWE4wWlc1MExnb0FVbVZ6YjJ4MWRHbHZiaUJtWVdOMGIzSWdhWE1nWjNKbFlYUmxjaUIwYUdGdUlIUm9aU0J0WVhocGJYVnRJSEpsYzI5c2RYUnBiMjRnYVc0Z2RHaGxJR052YlhCdmJtVnVkQzRLQUVOdmJYQnZibVZ1ZENCdFlYQndhVzVuSUhObFpXMXpJSGR5YjI1bkxpQlVjbmxwYm1jZ2RHOGdZMjl5Y21WamRDNEtBRzl3YWw5cU1tdGZZblZwYkdSZmRIQmZhVzVrWlhoZlpuSnZiVjkwYkcwb0tUb2dkR2xzWlNBbFpDQm9ZWE1nYm04Z2NtVm5hWE4wWlhKbFpDQjBhV3hsTFhCaGNuUWdhVzRnVkV4TklHMWhjbXRsY2lCelpXZHRaVzUwY3k0S0FHOXdhbDlxTW10ZmNtVmhaRjkwYkcwb0tUb2dkRzl2SUcxaGJua2dWRXhOSUcxaGNtdGxjbk11Q2dCdmNHcGZhakpyWDNKbFlXUmZkR3h0S0NrNklHTmhibTV2ZENCaGJHeHZZMkYwWlNCdFgzUnBiR1ZmY0dGeWRGOXBibVp2Y3k0S0FFbHVZMjl0Y0d4bGRHVWdZMmhoYm01bGJDQmtaV1pwYm1sMGFXOXVjeTRLQUUxaGJHWnZjbTFsWkNCSVZDQmpiMlJsWW14dlkyc3VJRWx1ZG1Gc2FXUWdZMjlrWldKc2IyTnJJR3hsYm1kMGFDQjJZV3gxWlhNdUNnQlhaU0JrYnlCdWIzUWdjM1Z3Y0c5eWRDQnRiM0psSUhSb1lXNGdNeUJqYjJScGJtY2djR0Z6YzJWeklHbHVJR0Z1SUVoVUlHTnZaR1ZpYkc5amF6c2dWR2hwY3lCamIyUmxZbXh2WTJ0eklHaGhjeUFsWkNCd1lYTnpaWE11Q2dCTllXeG1iM0p0WldRZ1NGUWdZMjlrWldKc2IyTnJMaUJFWldOdlpHbHVaeUIwYUdseklHTnZaR1ZpYkc5amF5QnBjeUJ6ZEc5d2NHVmtMaUJVYUdWeVpTQmhjbVVnSldRZ2VtVnlieUJpYVhSd2JHRnVaWE1nYVc0Z0pXUWdZbWwwY0d4aGJtVnpMZ29BUTJGdWJtOTBJSFJoYTJVZ2FXNGdZMmhoY21kbElHMTFiSFJwY0d4bElIUnlZVzV6Wm05eWJXRjBhVzl1SUhOMFlXZGxjeTRLQUZWdWEyNXZkMjRnYldGeWEyVnlJR2hoY3lCaVpXVnVJR1JsZEdWamRHVmtJR0Z1WkNCblpXNWxjbUYwWldRZ1pYSnliM0l1Q2dCRGIyUmxZeUJ3Y205MmFXUmxaQ0IwYnlCMGFHVWdiM0JxWDNObGRIVndYMlJsWTI5a1pYSWdablZ1WTNScGIyNGdhWE1nYm05MElHRWdaR1ZqYjIxd2NtVnpjMjl5SUdoaGJtUnNaWEl1Q2dCRGIyUmxZeUJ3Y205MmFXUmxaQ0IwYnlCMGFHVWdiM0JxWDNKbFlXUmZhR1ZoWkdWeUlHWjFibU4wYVc5dUlHbHpJRzV2ZENCaElHUmxZMjl0Y0hKbGMzTnZjaUJvWVc1a2JHVnlMZ29BUlhKeWIzSWdjbVZoWkdsdVp5QlVURTBnYldGeWEyVnlMZ29BVkdsc1pYTWdaRzl1SjNRZ1lXeHNJR2hoZG1VZ2RHaGxJSE5oYldVZ1pHbHRaVzV6YVc5dUxpQlRhMmx3SUhSb1pTQk5RMVFnYzNSbGNDNEtBRTUxYldKbGNpQnZaaUJqYjIxd2IyNWxiblJ6SUNnbFpDa2dhWE1nYVc1amIyNXphWE4wWlc1MElIZHBkR2dnWVNCTlExUXVJRk5yYVhBZ2RHaGxJRTFEVkNCemRHVndMZ29BU2xBeUlHSnZlQ0IzYUdsamFDQmhjbVVnWVdaMFpYSWdkR2hsSUdOdlpHVnpkSEpsWVcwZ2QybHNiQ0J1YjNRZ1ltVWdjbVZoWkNCaWVTQjBhR2x6SUdaMWJtTjBhVzl1TGdvQVRXRnNabTl5YldWa0lFaFVJR052WkdWaWJHOWpheTRnVjJobGJpQjBhR1VnYm5WdFltVnlJRzltSUhwbGNtOGdjR3hoYm1WeklHSnBkSEJzWVc1bGN5QnBjeUJsY1hWaGJDQjBieUIwYUdVZ2JuVnRZbVZ5SUc5bUlHSnBkSEJzWVc1bGN5d2diMjVzZVNCMGFHVWdZMnhsWVc1MWNDQndZWE56SUcxaGEyVnpJSE5sYm5ObExDQmlkWFFnZDJVZ2FHRjJaU0FsWkNCd1lYTnpaWE1nYVc0Z2RHaHBjeUJqYjJSbFlteHZZMnN1SUZSb1pYSmxabTl5WlN3Z2IyNXNlU0IwYUdVZ1kyeGxZVzUxY0NCd1lYTnpJSGRwYkd3Z1ltVWdaR1ZqYjJSbFpDNGdWR2hwY3lCdFpYTnpZV2RsSUhkcGJHd2dibTkwSUdKbElHUnBjM0JzWVhsbFpDQmhaMkZwYmk0S0FFbHRZV2RsSUdoaGN5QnNaWE56SUdOdmJYQnZibVZ1ZEhNZ2RHaGhiaUJqYjJSbGMzUnlaV0Z0TGdvQVRtVmxaQ0IwYnlCa1pXTnZaR1VnZEdobElHMWhhVzRnYUdWaFpHVnlJR0psWm05eVpTQmlaV2RwYmlCMGJ5QmtaV052WkdVZ2RHaGxJSEpsYldGcGJtbHVaeUJqYjJSbGMzUnlaV0Z0TGdvQVVITnZkQ0IyWVd4MVpTQnZaaUIwYUdVZ1kzVnljbVZ1ZENCMGFXeGxMWEJoY25RZ2FYTWdaWEYxWVd3Z2RHOGdlbVZ5Ynl3Z2QyVWdZWE56ZFcxcGJtY2dhWFFnYVhNZ2RHaGxJR3hoYzNRZ2RHbHNaUzF3WVhKMElHOW1JSFJvWlNCamIyUmxjM1J5WldGdExnb0FRU0J0WVd4bWIzSnRaV1FnWTI5a1pXSnNiMk5ySUhSb1lYUWdhR0Z6SUcxdmNtVWdkR2hoYmlCdmJtVWdZMjlrYVc1bklIQmhjM01zSUdKMWRDQjZaWEp2SUd4bGJtZDBhQ0JtYjNJZ01tNWtJR0Z1WkNCd2IzUmxiblJwWVd4c2VTQjBhR1VnTTNKa0lIQmhjM01nYVc0Z1lXNGdTRlFnWTI5a1pXSnNiMk5yTGdvQUNRa0pJSFJwYkdVdGNHRnlkRnNsWkYwNklITjBZWEpmY0c5elBTVnNiR2tzSUdWdVpGOW9aV0ZrWlhJOUpXeHNhU3dnWlc1a1gzQnZjejBsYkd4cExnb0FWR2xzWlNBbGRTQm9ZWE1nVkZCemIzUWdQVDBnTUNCaGJtUWdWRTV6YjNRZ1BUMGdNQ3dnWW5WMElHNXZJRzkwYUdWeUlIUnBiR1V0Y0dGeWRITWdkMlZ5WlNCbWIzVnVaQzRnUlU5RElHbHpJR0ZzYzI4Z2JXbHpjMmx1Wnk0S0FFTnZiWEJ2Ym1WdWRDQWxaQ0JrYjJWemJpZDBJR2hoZG1VZ1lTQnRZWEJ3YVc1bkxnb0FiM0JxWDJveWExOXlaV0ZrWDNSc2JTZ3BPaUJVVEUwZ2JXRnlhMlZ5SUc1dmRDQnZaaUJsZUhCbFkzUmxaQ0J6YVhwbExnb0FRU0JqYjI1bWIzSnRhVzVuSUVwUU1pQnlaV0ZrWlhJZ2MyaGhiR3dnYVdkdWIzSmxJR0ZzYkNCRGIyeHZkWElnVTNCbFkybG1hV05oZEdsdmJpQmliM2hsY3lCaFpuUmxjaUIwYUdVZ1ptbHljM1FzSUhOdklIZGxJR2xuYm05eVpTQjBhR2x6SUc5dVpTNEtBRlJvWlNCemFXZHVZWFIxY21VZ1ltOTRJRzExYzNRZ1ltVWdkR2hsSUdacGNuTjBJR0p2ZUNCcGJpQjBhR1VnWm1sc1pTNEtBRlJvWlNBZ1ltOTRJRzExYzNRZ1ltVWdkR2hsSUdacGNuTjBJR0p2ZUNCcGJpQjBhR1VnWm1sc1pTNEtBRlJvWlNCbWRIbHdJR0p2ZUNCdGRYTjBJR0psSUhSb1pTQnpaV052Ym1RZ1ltOTRJR2x1SUhSb1pTQm1hV3hsTGdvQVJtRnBiR1ZrSUhSdklHUmxZMjlrWlM0S0FFMWhiR1p2Y20xbFpDQklWQ0JqYjJSbFlteHZZMnN1SUVsdVkyOXljbVZqZENCTlJVd2djMlZuYldWdWRDQnpaWEYxWlc1alpTNEtBRU52YlhCdmJtVnVkQ0FsWkNCcGN5QnRZWEJ3WldRZ2RIZHBZMlV1Q2dCdmNHcGZhakpyWDNKbFlXUmZkR3h0S0NrNklGTlVJRDBnTXlCcGN5QnBiblpoYkdsa0xnb0FUMjVzZVNCdmJtVWdRMDFCVUNCaWIzZ2dhWE1nWVd4c2IzZGxaQzRLQUZkbElHNWxaV1FnWVc0Z2FXMWhaMlVnY0hKbGRtbHZkWE5zZVNCamNtVmhkR1ZrTGdvQVNVaEVVaUJpYjNoZmJXbHpjMmx1Wnk0Z1VtVnhkV2x5WldRdUNnQktVREpJSUdKdmVDQnRhWE56YVc1bkxpQlNaWEYxYVhKbFpDNEtBRTV2ZENCemRYSmxJR2h2ZHlCMGFHRjBJR2hoY0hCbGJtVmtMZ29BVFdGcGJpQm9aV0ZrWlhJZ2FHRnpJR0psWlc0Z1kyOXljbVZqZEd4NUlHUmxZMjlrWldRdUNnQlVhV3hsSUNWa0x5VmtJR2hoY3lCaVpXVnVJR1JsWTI5a1pXUXVDZ0JJWldGa1pYSWdiMllnZEdsc1pTQWxaQ0F2SUNWa0lHaGhjeUJpWldWdUlISmxZV1F1Q2dCRmJYQjBlU0JUVDFRZ2JXRnlhMlZ5SUdSbGRHVmpkR1ZrT2lCUWMyOTBQU1ZrTGdvQVJHbHlaV04wSUhWelpTQmhkQ0FqSldRZ2FHOTNaWFpsY2lCd1kyOXNQU1ZrTGdvQVNXMXdiR1Z0Wlc1MFlYUnBiMjRnYkdsdGFYUmhkR2x2YmpvZ1ptOXlJSEJoYkdWMGRHVWdiV0Z3Y0dsdVp5d2djR052YkZzbFpGMGdjMmh2ZFd4a0lHSmxJR1Z4ZFdGc0lIUnZJQ1ZrTENCaWRYUWdhWE1nWlhGMVlXd2dkRzhnSldRdUNnQkpiblpoYkdsa0lHTnZiWEJ2Ym1WdWRDOXdZV3hsZEhSbElHbHVaR1Y0SUdadmNpQmthWEpsWTNRZ2JXRndjR2x1WnlBbFpDNEtBRWx1ZG1Gc2FXUWdkbUZzZFdVZ1ptOXlJR050WVhCYkpXUmRMbTEwZVhBZ1BTQWxaQzRLQUZCemIzUWdkbUZzZFdVZ2FYTWdibTkwSUdOdmNuSmxZM1FnY21WbllYSmtjeUIwYnlCMGFHVWdTbEJGUnpJd01EQWdibTl5YlRvZ0pXUXVDZ0JOWVd4bWIzSnRaV1FnU0ZRZ1kyOWtaV0pzYjJOckxpQldURU1nWTI5a1pTQndjbTlrZFdObGN5QnphV2R1YVdacFkyRnVkQ0J6WVcxd2JHVnpJRzkxZEhOcFpHVWdkR2hsSUdOdlpHVmliRzlqYXlCaGNtVmhMZ29BVlc1bGVIQmxZM1JsWkNCUFQwMHVDZ0F6TWlCaWFYUnpJR0Z5WlNCdWIzUWdaVzV2ZFdkb0lIUnZJR1JsWTI5a1pTQjBhR2x6SUdOdlpHVmliRzlqYXl3Z2MybHVZMlVnZEdobElHNTFiV0psY2lCdlppQmlhWFJ3YkdGdVpTd2dKV1FzSUdseklHeGhjbWRsY2lCMGFHRnVJRE13TGdvQVFtOTBkRzl0SUhCdmMybDBhVzl1SUc5bUlIUm9aU0JrWldOdlpHVmtJR0Z5WldFZ0tISmxaMmx2Ymw5NU1UMGxaQ2tnYzJodmRXeGtJR0psSUQ0Z01DNEtBRkpwWjJoMElIQnZjMmwwYVc5dUlHOW1JSFJvWlNCa1pXTnZaR1ZrSUdGeVpXRWdLSEpsWjJsdmJsOTRNVDBsWkNrZ2MyaHZkV3hrSUdKbElENGdNQzRLQUZWd0lIQnZjMmwwYVc5dUlHOW1JSFJvWlNCa1pXTnZaR1ZrSUdGeVpXRWdLSEpsWjJsdmJsOTVNRDBsWkNrZ2MyaHZkV3hrSUdKbElENDlJREF1Q2dCTVpXWjBJSEJ2YzJsMGFXOXVJRzltSUhSb1pTQmtaV052WkdWa0lHRnlaV0VnS0hKbFoybHZibDk0TUQwbFpDa2djMmh2ZFd4a0lHSmxJRDQ5SURBdUNnQkZjbkp2Y2lCeVpXRmthVzVuSUZCUVZDQnRZWEpyWlhJNklIQmhZMnRsZENCb1pXRmtaWElnYUdGMlpTQmlaV1Z1SUhCeVpYWnBiM1Z6YkhrZ1ptOTFibVFnYVc0Z2RHaGxJRzFoYVc0Z2FHVmhaR1Z5SUNoUVVFMGdiV0Z5YTJWeUtTNEtBRk4wWVhKMElIUnZJSEpsWVdRZ2FqSnJJRzFoYVc0Z2FHVmhaR1Z5SUNnbGJHeGtLUzRLQUVKdmRIUnZiU0J3YjNOcGRHbHZiaUJ2WmlCMGFHVWdaR1ZqYjJSbFpDQmhjbVZoSUNoeVpXZHBiMjVmZVRFOUpXUXBJR2x6SUc5MWRITnBaR1VnZEdobElHbHRZV2RsSUdGeVpXRWdLRmx6YVhvOUpXUXBMZ29BVlhBZ2NHOXphWFJwYjI0Z2IyWWdkR2hsSUdSbFkyOWtaV1FnWVhKbFlTQW9jbVZuYVc5dVgza3dQU1ZrS1NCcGN5QnZkWFJ6YVdSbElIUm9aU0JwYldGblpTQmhjbVZoSUNoWmMybDZQU1ZrS1M0S0FGSnBaMmgwSUhCdmMybDBhVzl1SUc5bUlIUm9aU0JrWldOdlpHVmtJR0Z5WldFZ0tISmxaMmx2Ymw5NE1UMGxaQ2tnYVhNZ2IzVjBjMmxrWlNCMGFHVWdhVzFoWjJVZ1lYSmxZU0FvV0hOcGVqMGxaQ2t1Q2dCTVpXWjBJSEJ2YzJsMGFXOXVJRzltSUhSb1pTQmtaV052WkdWa0lHRnlaV0VnS0hKbFoybHZibDk0TUQwbFpDa2dhWE1nYjNWMGMybGtaU0IwYUdVZ2FXMWhaMlVnWVhKbFlTQW9XSE5wZWowbFpDa3VDZ0JDYjNSMGIyMGdjRzl6YVhScGIyNGdiMllnZEdobElHUmxZMjlrWldRZ1lYSmxZU0FvY21WbmFXOXVYM2t4UFNWa0tTQnBjeUJ2ZFhSemFXUmxJSFJvWlNCcGJXRm5aU0JoY21WaElDaFpUM05wZWowbFpDa3VDZ0JWY0NCd2IzTnBkR2x2YmlCdlppQjBhR1VnWkdWamIyUmxaQ0JoY21WaElDaHlaV2RwYjI1ZmVUQTlKV1FwSUdseklHOTFkSE5wWkdVZ2RHaGxJR2x0WVdkbElHRnlaV0VnS0ZsUGMybDZQU1ZrS1M0S0FGSnBaMmgwSUhCdmMybDBhVzl1SUc5bUlIUm9aU0JrWldOdlpHVmtJR0Z5WldFZ0tISmxaMmx2Ymw5NE1UMGxaQ2tnYVhNZ2IzVjBjMmxrWlNCMGFHVWdhVzFoWjJVZ1lYSmxZU0FvV0U5emFYbzlKV1FwTGdvQVRHVm1kQ0J3YjNOcGRHbHZiaUJ2WmlCMGFHVWdaR1ZqYjJSbFpDQmhjbVZoSUNoeVpXZHBiMjVmZURBOUpXUXBJR2x6SUc5MWRITnBaR1VnZEdobElHbHRZV2RsSUdGeVpXRWdLRmhQYzJsNlBTVmtLUzRLQUZOcGVtVWdlQ0J2WmlCMGFHVWdaR1ZqYjJSbFpDQmpiMjF3YjI1bGJuUWdhVzFoWjJVZ2FYTWdhVzVqYjNKeVpXTjBJQ2hqYjIxd1d5VmtYUzUzUFNWa0tTNEtBRk5wZW1VZ2VTQnZaaUIwYUdVZ1pHVmpiMlJsWkNCamIyMXdiMjVsYm5RZ2FXMWhaMlVnYVhNZ2FXNWpiM0p5WldOMElDaGpiMjF3V3lWa1hTNW9QU1ZrS1M0S0FGUnBiR1VnY21WaFpDd2daR1ZqYjJSbFpDQmhibVFnZFhCa1lYUmxaQ0JwY3lCdWIzUWdkR2hsSUdSbGMybHlaV1FnYjI1bElDZ2xaQ0IyY3lBbFpDa3VDZ0JKYm5aaGJHbGtJR052YlhCdmJtVnVkQ0JwYm1SbGVDQWxaQ0FvUGowZ0pXUXBMZ29BYjNCcVgzSmxZV1JmYUdWaFpHVnlLQ2tnYzJodmRXeGtJR0psSUdOaGJHeGxaQ0JpWldadmNtVWdiM0JxWDNObGRGOWtaV052WkdWa1gyTnZiWEJ2Ym1WdWRITW9LUzRLQUUxbGJXOXllU0JoYkd4dlkyRjBhVzl1SUdaaGFXeDFjbVVnYVc0Z2IzQnFYMnB3TWw5aGNIQnNlVjl3WTJ4eUtDa3VDZ0JwYldGblpTMCtZMjl0Y0hOYkpXUmRMbVJoZEdFZ1BUMGdUbFZNVENCcGJpQnZjR3BmYW5BeVgyRndjR3g1WDNCamJISW9LUzRLQUdsdWRtRnNhV1FnWW05NElITnBlbVVnSldRZ0tDVjRLUW9BUm1GcGJDQjBieUJ5WldGa0lIUm9aU0JqZFhKeVpXNTBJRzFoY210bGNpQnpaV2R0Wlc1MElDZ2xJM2dwQ2dCRmNuSnZjaUIzYVhSb0lGTkpXaUJ0WVhKclpYSTZJRWxJUkZJZ2R5Z2xkU2tnYUNnbGRTa2dkbk11SUZOSldpQjNLQ1YxS1NCb0tDVjFLUW9BUlhKeWIzSWdjbVZoWkdsdVp5QkRUME1nYldGeWEyVnlJQ2hpWVdRZ2JuVnRZbVZ5SUc5bUlHTnZiWEJ2Ym1WdWRITXBDZ0JKYm5aaGJHbGtJRzUxYldKbGNpQnZaaUIwYVd4bGN5QTZJQ1YxSUhnZ0pYVWdLRzFoZUdsdGRXMGdabWw0WldRZ1lua2dhbkJsWnpJd01EQWdibTl5YlNCcGN5QTJOVFV6TlNCMGFXeGxjeWtLQUVsdWRtRnNhV1FnYm5WdFltVnlJRzltSUdOdmJYQnZibVZ1ZEhNZ0tHbG9aSElwQ2dCT2IzUWdaVzV2ZFdkb0lHMWxiVzl5ZVNCMGJ5Qm9ZVzVrYkdVZ2FXMWhaMlVnYUdWaFpHVnlJQ2hwYUdSeUtRb0FWM0p2Ym1jZ2RtRnNkV1Z6SUdadmNqb2dkeWdsWkNrZ2FDZ2xaQ2tnYm5WdFkyOXRjSE1vSldRcElDaHBhR1J5S1FvQVNXNTJZV3hwWkNCMllXeDFaWE1nWm05eUlHTnZiWEFnUFNBbFpDQTZJR1I0UFNWMUlHUjVQU1YxSUNoemFHOTFiR1FnWW1VZ1ltVjBkMlZsYmlBeElHRnVaQ0F5TlRVZ1lXTmpiM0prYVc1bklIUnZJSFJvWlNCS1VFVkhNakF3TUNCdWIzSnRLUW9BUW1Ga0lHbHRZV2RsSUdobFlXUmxjaUJpYjNnZ0tHSmhaQ0J6YVhwbEtRb0FRbUZrSUVOUFRGSWdhR1ZoWkdWeUlHSnZlQ0FvWW1Ga0lITnBlbVVwQ2dCQ1lXUWdRbEJEUXlCb1pXRmtaWElnWW05NElDaGlZV1FnYzJsNlpTa0tBRVZ5Y205eUlIZHBkR2dnVTBsYUlHMWhjbXRsY2pvZ2JtVm5ZWFJwZG1VZ2IzSWdlbVZ5YnlCcGJXRm5aU0J6YVhwbElDZ2xiR3hrSUhnZ0pXeHNaQ2tLQUhOcmFYQTZJSE5sWjIxbGJuUWdkRzl2SUd4dmJtY2dLQ1ZrS1NCM2FYUm9JRzFoZUNBb0pXUXBJR1p2Y2lCamIyUmxZbXh2WTJzZ0pXUWdLSEE5SldRc0lHSTlKV1FzSUhJOUpXUXNJR005SldRcENnQnlaV0ZrT2lCelpXZHRaVzUwSUhSdmJ5QnNiMjVuSUNnbFpDa2dkMmwwYUNCdFlYZ2dLQ1ZrS1NCbWIzSWdZMjlrWldKc2IyTnJJQ1ZrSUNod1BTVmtMQ0JpUFNWa0xDQnlQU1ZrTENCalBTVmtLUW9BUkdWemNHbDBaU0JLVURJZ1FsQkRJVDB5TlRVc0lIQnlaV05wYzJsdmJpQmhibVF2YjNJZ2MyZHVaQ0IyWVd4MVpYTWdabTl5SUdOdmJYQmJKV1JkSUdseklHUnBabVpsY21WdWRDQjBhR0Z1SUdOdmJYQmJNRjA2Q2lBZ0lDQWdJQ0FnV3pCZElIQnlaV01vSldRcElITm5ibVFvSldRcElGc2xaRjBnY0hKbFl5Z2xaQ2tnYzJkdVpDZ2xaQ2tLQUdKaFpDQmpiMjF3YjI1bGJuUWdiblZ0WW1WeUlHbHVJRkpIVGlBb0pXUWdkMmhsYmlCMGFHVnlaU0JoY21VZ2IyNXNlU0FsWkNrS0FFVnljbTl5SUhkcGRHZ2dVMGxhSUcxaGNtdGxjam9nYm5WdFltVnlJRzltSUdOdmJYQnZibVZ1ZENCcGN5QnViM1FnWTI5dGNHRjBhV0pzWlNCM2FYUm9JSFJvWlNCeVpXMWhhVzVwYm1jZ2JuVnRZbVZ5SUc5bUlIQmhjbUZ0WlhSbGNuTWdLQ0FsWkNCMmN5QWxaQ2tLQUVWeWNtOXlJSGRwZEdnZ1UwbGFJRzFoY210bGNqb2dhVzUyWVd4cFpDQjBhV3hsSUhOcGVtVWdLSFJrZURvZ0pXUXNJSFJrZVRvZ0pXUXBDZ0JDWVdRZ1EwOU1VaUJvWldGa1pYSWdZbTk0SUNoaVlXUWdjMmw2WlRvZ0pXUXBDZ0JDWVdRZ1EwOU1VaUJvWldGa1pYSWdZbTk0SUNoRFNVVk1ZV0lzSUdKaFpDQnphWHBsT2lBbFpDa0tBRkJVUlZKTklHTm9aV05ySUdaaGFXeDFjbVU2SUNWa0lISmxiV0ZwYm1sdVp5QmllWFJsY3lCcGJpQmpiMlJsSUdKc2IyTnJJQ2dsWkNCMWMyVmtJQzhnSldRcENnQk5ZV3htYjNKdFpXUWdTRlFnWTI5a1pXSnNiMk5yTGlCUGJtVWdiMllnZEdobElHWnZiR3h2ZDJsdVp5QmpiMjVrYVhScGIyNGdhWE1nYm05MElHMWxkRG9nTWlBOFBTQlRZM1Z3SUR3OUlHMXBiaWhNWTNWd0xDQTBNRGM1S1FvQVNXNTJZV3hwWkNCMllXeDFaWE1nWm05eUlHTnZiWEFnUFNBbFpDQTZJSEJ5WldNOUpYVWdLSE5vYjNWc1pDQmlaU0JpWlhSM1pXVnVJREVnWVc1a0lETTRJR0ZqWTI5eVpHbHVaeUIwYnlCMGFHVWdTbEJGUnpJd01EQWdibTl5YlM0Z1QzQmxia3B3WldjZ2IyNXNlU0J6ZFhCd2IzSjBjeUIxY0NCMGJ5QXpNU2tLQUVsdWRtRnNhV1FnWW1sMElHNTFiV0psY2lBbFpDQnBiaUJ2Y0dwZmRESmZjbVZoWkY5d1lXTnJaWFJmYUdWaFpHVnlLQ2tLQUZOMGNtVmhiU0JsY25KdmNpRUtBRVZ5Y205eUlHOXVJSGR5YVhScGJtY2djM1J5WldGdElRb0FVM1J5WldGdElISmxZV05vWldRZ2FYUnpJR1Z1WkNBaENnQkZlSEJsWTNSbFpDQmhJRk5QUXlCdFlYSnJaWElnQ2dCSmJuWmhiR2xrSUdKdmVDQnphWHBsSUNWa0lHWnZjaUJpYjNnZ0p5VmpKV01sWXlWakp5NGdUbVZsWkNBbFpDQmllWFJsY3l3Z0pXUWdZbmwwWlhNZ2NtVnRZV2x1YVc1bklBb0FUV0ZzWm05eWJXVmtJRWhVSUdOdlpHVmliRzlqYXk0Z1JHVmpiMlJwYm1jZ2RHaHBjeUJqYjJSbFlteHZZMnNnYVhNZ2MzUnZjSEJsWkM0Z1ZWOXhJR2x6SUd4aGNtZGxjaUIwYUdGdUlIcGxjbThnWW1sMGNHeGhibVZ6SUNzZ01TQUtBRTFoYkdadmNtMWxaQ0JJVkNCamIyUmxZbXh2WTJzdUlFUmxZMjlrYVc1bklIUm9hWE1nWTI5a1pXSnNiMk5ySUdseklITjBiM0J3WldRdUlGVmZjU0JwYzJ4aGNtZGxjaUIwYUdGdUlHSnBkSEJzWVc1bGN5QXJJREVnQ2dCRFQweFNJRUpQV0NCdFpYUm9JSFpoYkhWbElHbHpJRzV2ZENCaElISmxaM1ZzWVhJZ2RtRnNkV1VnS0NWa0tTd2djMjhnZDJVZ2QybHNiQ0JwWjI1dmNtVWdkR2hsSUdWdWRHbHlaU0JEYjJ4dmRYSWdVM0JsWTJsbWFXTmhkR2x2YmlCaWIzZ3VJQW9BVjJocGJHVWdjbVZoWkdsdVp5QkRRMUJmVVU1VVUxUlpJR1ZzWlcxbGJuUWdhVzV6YVdSbElGRkRSQ0J2Y2lCUlEwTWdiV0Z5YTJWeUlITmxaMjFsYm5Rc0lHNTFiV0psY2lCdlppQnpkV0ppWVc1a2N5QW9KV1FwSUdseklHZHlaV0YwWlhJZ2RHOGdUMUJLWDBveVMxOU5RVmhDUVU1RVV5QW9KV1FwTGlCVGJ5QjNaU0JzYVcxcGRDQjBhR1VnYm5WdFltVnlJRzltSUdWc1pXMWxiblJ6SUhOMGIzSmxaQ0IwYnlCUFVFcGZTakpMWDAxQldFSkJUa1JUSUNnbFpDa2dZVzVrSUhOcmFYQWdkR2hsSUhKbGMzUXVJQW9BU2xBeUlFbElSRklnWW05NE9pQmpiMjF3Y21WemMybHZiaUIwZVhCbElHbHVaR2xqWVhSbElIUm9ZWFFnZEdobElHWnBiR1VnYVhNZ2JtOTBJR0VnWTI5dVptOXliV2x1WnlCS1VESWdabWxzWlNBb0pXUXBJQW9BVkdsc1pTQnBibVJsZUNCd2NtOTJhV1JsWkNCaWVTQjBhR1VnZFhObGNpQnBjeUJwYm1OdmNuSmxZM1FnSldRZ0tHMWhlQ0E5SUNWa0tTQUtBRVZ5Y205eUlHUmxZMjlrYVc1bklHTnZiWEJ2Ym1WdWRDQWxaQzRLVkdobElHNTFiV0psY2lCdlppQnlaWE52YkhWMGFXOXVjeUIwYnlCeVpXMXZkbVVnS0NWa0tTQnBjeUJuY21WaGRHVnlJRzl5SUdWeGRXRnNJSFJvWVc0Z2RHaGxJRzUxYldKbGNpQnZaaUJ5WlhOdmJIVjBhVzl1Y3lCdlppQjBhR2x6SUdOdmJYQnZibVZ1ZENBb0pXUXBDazF2WkdsbWVTQjBhR1VnWTNCZmNtVmtkV05sSUhCaGNtRnRaWFJsY2k0S0NnQkpiV0ZuWlNCa1lYUmhJR2hoY3lCaVpXVnVJSFZ3WkdGMFpXUWdkMmwwYUNCMGFXeGxJQ1ZrTGdvS0FDTUFwUUJEQUdZQWd3RHVxQlFBMzlnakFMNFFRd0QvOVlNQWZpQlZBRjlSSXdBMUFFTUFUa1NEQU03RUZBRFB6Q01BL3VKREFQK1pnd0NXQU1VQVB6RWpBS1VBUXdCZVJJTUF6c2dVQU44Ukl3RCs5RU1BLy95REFKNEFWUUIzQUNNQU5RQkRBUC94Z3dDdWlCUUF0d0FqQVA3NFF3RHY1SU1Bam9qRkFCOFJJd0NsQUVNQVpnQ0RBTzZvRkFEZlZDTUF2aEJEQU84aWd3QitJRlVBZnlJakFEVUFRd0JPUklNQXpzUVVBTDhSSXdEKzRrTUE5d0NEQUpZQXhRQS9JaU1BcFFCREFGNUVnd0RPeUJRQTF3QWpBUDcwUXdEL3VvTUFuZ0JWQUc4QUl3QTFBRU1BLythREFLNklGQUN2b2lNQS92aERBT2NBZ3dDT2lNVUFMeUlDQU1VQWhBQitJQUlBenNRa0FQY0FBZ0Qrb2tRQVZnQUNBSjRBRkFEWEFBSUF2aENFQUdZQUFnQ3VpQ1FBM3hFQ0FPNm9SQUEyQUFJQWpvZ1VBQjhSQWdERkFJUUFiZ0FDQU02SUpBRC9pQUlBL3JoRUFFNUVBZ0NXQUJRQXR3QUNBUDdraEFCZVJBSUFwZ0FrQU9jQUFnRGVWRVFBTGlJQ0FENEFGQUIzQUFJQXhRQ0VBSDRnQWdET3hDUUEvL0VDQVA2aVJBQldBQUlBbmdBVUFMOFJBZ0MrRUlRQVpnQUNBSzZJSkFEdklnSUE3cWhFQURZQUFnQ09pQlFBZnlJQ0FNVUFoQUJ1QUFJQXpvZ2tBTy9rQWdEK3VFUUFUa1FDQUpZQUZBQ3ZvZ0lBL3VTRUFGNUVBZ0NtQUNRQTM5Z0NBTjVVUkFBdUlnSUFQZ0FVQUY5UkFnQlZBSVFBWmdBQ0FONklKQUQvTWdJQS9oRkVBRTVFQWdDdUFCUUF0d0FDQUg0eGhBQmVVUUlBeGdBa0FOY0FBZ0R1SUVRQUhoRUNBSjRBRkFCM0FBSUFWUUNFQUY1VUFnRE9SQ1FBNXdBQ0FQN3hSQUEyQUFJQXBnQVVBRjlWQWdEK2RJUUFQaEVDQUw0Z0pBQi9kQUlBM3NSRUFQLzRBZ0NXQUJRQUx5SUNBRlVBaEFCbUFBSUEzb2drQVBjQUFnRCtFVVFBVGtRQ0FLNEFGQUNQaUFJQWZqR0VBRjVSQWdER0FDUUF6OGdDQU80Z1JBQWVFUUlBbmdBVUFHOEFBZ0JWQUlRQVhsUUNBTTVFSkFEZjBRSUEvdkZFQURZQUFnQ21BQlFBZnlJQ0FQNTBoQUErRVFJQXZpQWtBTDhpQWdEZXhFUUE3eUlDQUpZQUZBQS9NZ01BM3RUOTlQLzhGQUErRVZVQWo0Z0RBTDR5aFFEbkFDVUFYbEgrcW45eUF3RE9SUDM0NzBRVUFINWtSUUN2b2dNQXBnQmRWZCtaL2ZFMkFQNzFiMklEQU43Ui9mVC81aFFBZm5GVkFMK3hBd0N1aUlVQTM5VWxBRTVFL3ZKL1pnTUF4Z0Q5K08vaUZBQmVWRVVBbnhFREFKWUFYVlhQeVAzeEhoSHV5R2NBQXdEZTFQMzAvL01VQUQ0UlZRQy9FUU1BdmpLRkFOL1lKUUJlVWY2cUx5SURBTTVFL2ZqM0FCUUFmbVJGQUorWUF3Q21BRjFWMXdEOThUWUEvdlZ2UkFNQTN0SDk5UCs1RkFCK2NWVUF0d0FEQUs2SWhRRGYzQ1VBVGtUKzhuY0FBd0RHQVAzNDcrUVVBRjVVUlFCL2N3TUFsZ0JkVmIrNC9mRWVFZTdJUHpJQ0FLVUFoQUIrUUFJQTNoQWtBTjhSQWdEK2NrUUFWZ0FDQUs2b0ZBQy9zZ0lBbGdDRUFHWUFBZ0RHQUNRQTV3QUNBTzdJUkFBdUlnSUFqb2dVQUhjQUFnQ2xBSVFBYmdBQ0FNNklKQUQzQUFJQS9wRkVBRFlBQWdDdW9oUUFyNm9DQVA2NGhBQmVBQUlBdmdBa0FNL0VBZ0R1UkVRQS8vUUNBRDRpRkFBZkVRSUFwUUNFQUg1QUFnRGVFQ1FBLzVrQ0FQNXlSQUJXQUFJQXJxZ1VBTGNBQWdDV0FJUUFaZ0FDQU1ZQUpBRFhBQUlBN3NoRUFDNGlBZ0NPaUJRQVQwUUNBS1VBaEFCdUFBSUF6b2drQU8vaUFnRCtrVVFBTmdBQ0FLNmlGQUIvUkFJQS9yaUVBRjRBQWdDK0FDUUFud0FDQU81RVJBRC9kZ0lBUGlJVUFEOHhBd0RHQUlVQS85bjk4bjVrL3ZHL21RTUFycUlsQU85bS9mUldBTzdpZjNNREFMNllSUUQzQVAzNFpnRCtkcCtJQXdDT2lCVUEzOVdsQUM0aTNwaFBSQU1BdnJLRkFQLzgvZkp1SXBZQXR3QURBSzZxSlFEZjBmMzBOZ0RlMUc5a0F3Q3VxRVVBNytyOStGNUU3dWgvY1FNQVBqSVZBTS9FcFFELytzNklQekVEQU1ZQWhRRC9kLzN5Zm1UKzhiK3pBd0N1b2lVQTV3RDk5RllBN3VKM0FBTUF2cGhGQU8vay9maG1BUDUyZjJZREFJNklGUURYQUtVQUxpTGVtRDh6QXdDK3NvVUEvM1g5OG00aWxnQ2ZrUU1BcnFvbEFOK1ovZlEyQU43VVgxRURBSzZvUlFEdjdQMzRYa1R1Nkg5eUF3QStNaFVBdjdHbEFQL3p6b2dmRVFNQTNsVDk4aDRSRkFCK1pQNzR6OHdEQUw2UlJRRHZJaVVBTGlMKzg0K0lBd0RHQUlVQTl3QVVBRjRSL3Z5dnFBTUFwZ0ExQU4vSS9mRStNZjVtYjJRREFNN0kvZkwvOVJRQVpnRCs5TCs2QXdDdUlrVUE1d0FsQUQ0eS91cC9jd01BdnJLRkFOOVZGQUJXQUg1eG54RURBSllBTlFEUHhQM3hQalB1NkU5RUF3RGVWUDN5SGhFVUFINWsvdmkvbVFNQXZwRkZBTy9pSlFBdUl2N3pmMllEQU1ZQWhRRHY1QlFBWGhIKy9KK1lBd0NtQURVQTF3RDk4VDR4L21adklnTUF6c2o5OHYrNUZBQm1BUDcwdHdBREFLNGlSUURmMFNVQVBqTCs2bmNBQXdDK3NvVUE3K3dVQUZZQWZuRi9jZ01BbGdBMUFMKzQvZkUrTSs3b1gxVDg4ZDdSL2ZyWEFQejRGZ0Q5LzM5MC9QUitjZjN6djdQODh1L3E3dWhQUlB6eHJpSUZBTCs0L1BqM0FQNzhkd0Q4OUY0Ui9mVi9kZnp5MzlqdTRqOHovUEcrc3YzNno0ajgrUC83L2Y5L2MvejBiZ0Q5ODdjQS9QTHZadjc1UHpIODhaNEFCUUMvdXZ6NC8vMys5bWNBL1BRbUFQMzFqNGo4OHQvYzN0UXZJdnp4M3RIOStzL0UvUGdXQVAzL2YzTDg5SDV4L2ZPL21menk3K3p1NkVjQS9QR3VJZ1VBcHdEOCtQLzMvdnhYQVB6MFhoSDk5WmNBL1BMZjFlN2lOd0Q4OGI2eS9mckhBUHo0Ly83OS8zOW0vUFJ1QVAzenI2ajg4dWNBL3ZrL012enhuZ0FGQUwreC9QanY1UDcyWDFUODlDWUEvZldIQVB6eTM1bmUxQjhSRXdCbEFFTUEzZ0NEQUkySUl3Qk9SQk1BcFFCREFLNklnd0ExQUNNQTF3QVRBTVVBUXdDZUFJTUFWUUFqQUM0aUV3Q1ZBRU1BZmdDREFQNFFJd0IzQUJNQVpRQkRBTTZJZ3dDTmlDTUFIaEVUQUtVQVF3QmVBSU1BTlFBakFPY0FFd0RGQUVNQXZnQ0RBRlVBSXdEL0VSTUFsUUJEQUQ0QWd3RHVRQ01BcjZJVEFHVUFRd0RlQUlNQWpZZ2pBRTVFRXdDbEFFTUFyb2lEQURVQUl3RHZSQk1BeFFCREFKNEFnd0JWQUNNQUxpSVRBSlVBUXdCK0FJTUEvaEFqQUxjQUV3QmxBRU1Bem9pREFJMklJd0FlRVJNQXBRQkRBRjRBZ3dBMUFDTUF6OFFUQU1VQVF3QytBSU1BVlFBakFQY0FFd0NWQUVNQVBnQ0RBTzVBSXdCdkFBRUFoQUFCQUZZQUFRQVVBQUVBMXdBQkFDUUFBUUNXQUFFQVJRQUJBSGNBQVFDRUFBRUF4Z0FCQUJRQUFRQ1BpQUVBSkFBQkFQY0FBUUExQUFFQUx5SUJBSVFBQVFEK1FBRUFGQUFCQUxjQUFRQWtBQUVBdndBQkFFVUFBUUJuQUFFQWhBQUJBS1lBQVFBVUFBRUFUMFFCQUNRQUFRRG5BQUVBTlFBQkFEOFJBUUNFQUFFQVZnQUJBQlFBQVFEUEFBRUFKQUFCQUpZQUFRQkZBQUVBYndBQkFJUUFBUURHQUFFQUZBQUJBSjhBQVFBa0FBRUE3d0FCQURVQUFRQS9NZ0VBaEFBQkFQNUFBUUFVQUFFQXJ3QUJBQ1FBQVFEL1JBRUFSUUFCQUY4QUFRQ0VBQUVBcGdBQkFCUUFBUUIvQUFFQUpBQUJBTjhBQVFBMUFBRUFIeEVCQUNRQUFRQldBQUVBaFFBQkFMOEFBUUFVQUFFQTl3QUJBTVlBQVFCM0FBRUFKQUFCQVAvNEFRQkZBQUVBZndBQkFCUUFBUURmQUFFQXBnQUJBRDh4QVFBa0FBRUFMaUlCQUlVQUFRQzNBQUVBRkFBQkFPOUVBUUN1b2dFQVp3QUJBQ1FBQVFEL1VRRUFSUUFCQUpjQUFRQVVBQUVBendBQkFEWUFBUUEvSWdFQUpBQUJBRllBQVFDRkFBRUF2N0lCQUJRQUFRRHZRQUVBeGdBQkFHOEFBUUFrQUFFQS8zSUJBRVVBQVFDZkFBRUFGQUFCQU5jQUFRQ21BQUVBVDBRQkFDUUFBUUF1SWdFQWhRQUJBSytvQVFBVUFBRUE1d0FCQUs2aUFRQmZBQUVBSkFBQkFQOUVBUUJGQUFFQWo0Z0JBQlFBQVFDdnFnRUFOZ0FCQUI4UkFnRCsrQ1FBVmdBQ0FMWUFoUUQvWmdJQXpnQVVBQjRSQWdDV0FEVUFyNmdDQVBZQUpBQStNUUlBcGdCRkFMK3pBZ0Mrc2hRQS8vVUNBR1lBZmxGZlZBSUEvdklrQUM0aUFnQ3VJb1VBNzBRQ0FNWUFGQUQvOUFJQWRnQTFBSDlFQWdEZVFDUUFQaklDQUo0QVJRRFhBQUlBdm9nVUFQLzZBZ0JlRWY3eFQwUUNBUDc0SkFCV0FBSUF0Z0NGQU8vSUFnRE9BQlFBSGhFQ0FKWUFOUUNQaUFJQTlnQWtBRDR4QWdDbUFFVUEzMFFDQUw2eUZBRC9xQUlBWmdCK1VXOEFBZ0QrOGlRQUxpSUNBSzRpaFFEbkFBSUF4Z0FVQU8vaUFnQjJBRFVBZjNJQ0FONUFKQUErTWdJQW5nQkZBTCt4QWdDK2lCUUEvM01DQUY0Ui92RS9Nd0VBaEFBQkFPNGdBUURGQUFFQXo4UUJBRVFBQVFEL01nRUFGUUFCQUkrSUFRQ0VBQUVBWmdBQkFDVUFBUUN2QUFFQVJBQUJBTzhpQVFDbUFBRUFYd0FCQUlRQUFRQk9SQUVBeFFBQkFNL01BUUJFQUFFQTl3QUJBQlVBQVFCdkFBRUFoQUFCQUZZQUFRQWxBQUVBbndBQkFFUUFBUURmQUFFQS9qQUJBQzhpQVFDRUFBRUE3aUFCQU1VQUFRRFB5QUVBUkFBQkFQOFJBUUFWQUFFQWR3QUJBSVFBQVFCbUFBRUFKUUFCQUg4QUFRQkVBQUVBNXdBQkFLWUFBUUEzQUFFQWhBQUJBRTVFQVFERkFBRUF0d0FCQUVRQUFRQy9BQUVBRlFBQkFEOEFBUUNFQUFFQVZnQUJBQ1VBQVFDWEFBRUFSQUFCQU5jQUFRRCtNQUVBSHhFQ0FPNm9SQUNPaUFJQTFnREZBUC96QWdEKy9DVUFQZ0FDQUxZQVZRRGYyQUlBL3ZoRUFHWUFBZ0IrSUlVQS81a0NBT1lBOVFBMkFBSUFwZ0FWQUo4QUFnRCs4a1FBZGdBQ0FNNUV4UUQvZGdJQS92RWxBRTVFQWdDdUFGVUF6OGdDQVA3MFJBQmVSQUlBdmhDRkFPL2tBZ0RlVlBVQUhoRUNBSllBRlFBdklnSUE3cWhFQUk2SUFnRFdBTVVBLy9vQ0FQNzhKUUErQUFJQXRnQlZBTDhSQWdEKytFUUFaZ0FDQUg0Z2hRRHZJZ0lBNWdEMUFEWUFBZ0NtQUJVQWZ5SUNBUDd5UkFCMkFBSUF6a1RGQVAvVkFnRCs4U1VBVGtRQ0FLNEFWUUJ2QUFJQS92UkVBRjVFQWdDK0VJVUEzeEVDQU41VTlRQWVFUUlBbGdBVkFGOVJBd0QyQUJRQUhoRkVBSTZJcFFEZjFBTUFycUpWQVA5MkpBQStJcllBcjZvREFPWUFGQUQvOVVRQVpnQ0ZBTS9NQXdDZUFNVUE3MFFrQURZQS92aC9NUU1BN3VnVUFQL3hSQUIyQUtVQXo4UURBSDRpVlFEZjBTUUFUa1QrOUY5UkF3RFdBQlFBNytKRUFGNUVoUUMvSWdNQWxnREZBTi9JSkFBdUl2N3lieUlEQVBZQUZBQWVFVVFBam9pbEFMK3hBd0N1b2xVQS96TWtBRDRpdGdDdnFBTUE1Z0FVQVArNVJBQm1BSVVBdjZnREFKNEF4UUR2NUNRQU5nRCsrRzlrQXdEdTZCUUEvL3hFQUhZQXBRRFB5QU1BZmlKVkFPL3FKQUJPUlA3MGYzUURBTllBRkFELytrUUFYa1NGQUwreUF3Q1dBTVVBMzBRa0FDNGkvdkkvTWZNQS92cjk4VFlBQkFDK01uVUEzeEh6QU41VS9mTHY1TlVBZm5IKy9IOXo4d0QrOC8zNEhoRUVBSllBVlFDL3NmTUF6Z0MxQU4vWS9mUm1BUDY1WDFUekFQNTIvZkVtQUFRQXBnQjFBSjhBOHdDdUFQM3kvL2ZWQUVZQS92Vi9kUE1BNWdEOStCWUFCQUNHQUZVQWo0anpBTVlBdFFEdjR2MzBYaEh1cUQ4Ujh3RCsrdjN4TmdBRUFMNHlkUURmMGZNQTNsVDk4di83MVFCK2NmNzhmMFR6QVA3ei9mZ2VFUVFBbGdCVkFIOXk4d0RPQUxVQTd5TDk5R1lBL3JsUFJQTUEvbmI5OFNZQUJBQ21BSFVBdnhIekFLNEEvZkwvLzlVQVJnRCs5VDh5OHdEbUFQMzRGZ0FFQUlZQVZRQnZBUE1BeGdDMUFMKzQvZlJlRWU2b0x5SUFRZXloQVF1a0hnRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBZ0FBQUFNQUFBQURBQUFBQkFBQUFBVUFBQUMzSVVJaFp5RkNJUkVSRVJFek16TXpkM2QzZHdBQUFBQUFBQUFBQVZZQUFBQUFBQUJRVVFBQVlGRUFBQUZXQUFBQkFBQUFZRkVBQUZCUkFBQUJOQUFBQUFBQUFIQlJBQUR3VVFBQUFUUUFBQUVBQUFDQVVRQUFBRklBQUFFWUFBQUFBQUFBa0ZFQUFGQlNBQUFCR0FBQUFRQUFBS0JSQUFCZ1VnQUF3UW9BQUFBQUFBQ3dVUUFBc0ZJQUFNRUtBQUFCQUFBQXdGRUFBTUJTQUFBaEJRQUFBQUFBQU5CUkFBRFFWQUFBSVFVQUFBRUFBQURnVVFBQTRGUUFBQ0VDQUFBQUFBQUE4RlVBQUZCVkFBQWhBZ0FBQVFBQUFBQldBQUJnVlFBQUFWWUFBQUFBQUFBUVVnQUFBRklBQUFGV0FBQUJBQUFBSUZJQUFQQlJBQUFCVkFBQUFBQUFBREJTQUFEd1VnQUFBVlFBQUFFQUFBQkFVZ0FBQUZNQUFBRklBQUFBQUFBQVVGSUFBUEJTQUFBQlNBQUFBUUFBQUdCU0FBQUFVd0FBQVRnQUFBQUFBQUJ3VWdBQThGSUFBQUU0QUFBQkFBQUFnRklBQUFCVEFBQUJNQUFBQUFBQUFKQlNBQUJRVXdBQUFUQUFBQUVBQUFDZ1VnQUFZRk1BQUFFa0FBQUFBQUFBc0ZJQUFIQlRBQUFCSkFBQUFRQUFBTUJTQUFDQVV3QUFBUndBQUFBQUFBRFFVZ0FBc0ZNQUFBRWNBQUFCQUFBQTRGSUFBTUJUQUFBQkZnQUFBQUFBQU5CVUFBRFFVd0FBQVJZQUFBRUFBQURnVkFBQTRGTUFBQUZXQUFBQUFBQUFFRk1BQUFCVEFBQUJWZ0FBQVFBQUFDQlRBQUR3VWdBQUFWUUFBQUFBQUFBd1V3QUE4RklBQUFGVUFBQUJBQUFBUUZNQUFBQlRBQUFCVVFBQUFBQUFBRkJUQUFBUVV3QUFBVkVBQUFFQUFBQmdVd0FBSUZNQUFBRklBQUFBQUFBQWNGTUFBREJUQUFBQlNBQUFBUUFBQUlCVEFBQkFVd0FBQVRnQUFBQUFBQUNRVXdBQVVGTUFBQUU0QUFBQkFBQUFvRk1BQUdCVEFBQUJOQUFBQUFBQUFMQlRBQUJ3VXdBQUFUUUFBQUVBQUFEQVV3QUFnRk1BQUFFd0FBQUFBQUFBMEZNQUFKQlRBQUFCTUFBQUFRQUFBT0JUQUFDZ1V3QUFBU2dBQUFBQUFBRHdVd0FBa0ZNQUFBRW9BQUFCQUFBQUFGUUFBS0JUQUFBQkpBQUFBQUFBQUJCVUFBQ3dVd0FBQVNRQUFBRUFBQUFnVkFBQXdGTUFBQUVpQUFBQUFBQUFNRlFBQU5CVEFBQUJJZ0FBQVFBQUFFQlVBQURnVXdBQUFSd0FBQUFBQUFCUVZBQUE4Rk1BQUFFY0FBQUJBQUFBWUZRQUFBQlVBQUFCR0FBQUFBQUFBSEJVQUFBUVZBQUFBUmdBQUFFQUFBQ0FWQUFBSUZRQUFBRVdBQUFBQUFBQWtGUUFBREJVQUFBQkZnQUFBUUFBQUtCVUFBQkFWQUFBQVJRQUFBQUFBQUN3VkFBQVVGUUFBQUVVQUFBQkFBQUF3RlFBQUdCVUFBQUJFZ0FBQUFBQUFOQlVBQUJ3VkFBQUFSSUFBQUVBQUFEZ1ZBQUFnRlFBQUFFUkFBQUFBQUFBOEZRQUFKQlVBQUFCRVFBQUFRQUFBQUJWQUFDZ1ZBQUF3UW9BQUFBQUFBQVFWUUFBc0ZRQUFNRUtBQUFCQUFBQUlGVUFBTUJVQUFEQkNRQUFBQUFBQURCVkFBRFFWQUFBd1FrQUFBRUFBQUJBVlFBQTRGUUFBS0VJQUFBQUFBQUFVRlVBQVBCVUFBQ2hDQUFBQVFBQUFHQlZBQUFBVlFBQUlRVUFBQUFBQUFCd1ZRQUFFRlVBQUNFRkFBQUJBQUFBZ0ZVQUFDQlZBQUJCQkFBQUFBQUFBSkJWQUFBd1ZRQUFRUVFBQUFFQUFBQ2dWUUFBUUZVQUFLRUNBQUFBQUFBQXNGVUFBRkJWQUFDaEFnQUFBUUFBQU1CVkFBQmdWUUFBSVFJQUFBQUFBQURRVlFBQWNGVUFBQ0VDQUFBQkFBQUE0RlVBQUlCVkFBQkJBUUFBQUFBQUFQQlZBQUNRVlFBQVFRRUFBQUVBQUFBQVZnQUFvRlVBQUJFQkFBQUFBQUFBRUZZQUFMQlZBQUFSQVFBQUFRQUFBQ0JXQUFEQVZRQUFoUUFBQUFBQUFBQXdWZ0FBMEZVQUFJVUFBQUFCQUFBQVFGWUFBT0JWQUFCSkFBQUFBQUFBQUZCV0FBRHdWUUFBU1FBQUFBRUFBQUJnVmdBQUFGWUFBQ1VBQUFBQUFBQUFjRllBQUJCV0FBQWxBQUFBQVFBQUFJQldBQUFnVmdBQUZRQUFBQUFBQUFDUVZnQUFNRllBQUJVQUFBQUJBQUFBb0ZZQUFFQldBQUFKQUFBQUFBQUFBTEJXQUFCUVZnQUFDUUFBQUFFQUFBREFWZ0FBWUZZQUFBVUFBQUFBQUFBQTBGWUFBSEJXQUFBRkFBQUFBUUFBQU9CV0FBQ0FWZ0FBQVFBQUFBQUFBQURRVmdBQWtGWUFBQUVBQUFBQkFBQUE0RllBQUtCV0FBQUJWZ0FBQUFBQUFQQldBQUR3VmdBQUFWWUFBQUVBQUFBQVZ3QUFBRmNBQUFBQkF3TUJBZ01EQlFZSEJ3WUdCd2NBQVFNREFRSURBd1VHQndjR0JnY0hCUVlIQndZR0J3Y0lDQWdJQ0FnSUNBVUdCd2NHQmdjSENBZ0lDQWdJQ0FnQkFnTURBZ0lEQXdZR0J3Y0dCZ2NIQVFJREF3SUNBd01HQmdjSEJnWUhCd1lHQndjR0JnY0hDQWdJQ0FnSUNBZ0dCZ2NIQmdZSEJ3Z0lDQWdJQ0FnSUF3TUVCQU1EQkFRSEJ3Y0hCd2NIQndNREJBUURBd1FFQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2dJQ0FnSUNBZ0lCd2NIQndjSEJ3Y0lDQWdJQ0FnSUNBTURCQVFEQXdRRUJ3Y0hCd2NIQndjREF3UUVBd01FQkFjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NJQ0FnSUNBZ0lDQWNIQndjSEJ3Y0hDQWdJQ0FnSUNBZ0JBZ01EQWdJREF3WUdCd2NHQmdjSEFRSURBd0lDQXdNR0JnY0hCZ1lIQndZR0J3Y0dCZ2NIQ0FnSUNBZ0lDQWdHQmdjSEJnWUhCd2dJQ0FnSUNBZ0lBZ0lEQXdJQ0F3TUdCZ2NIQmdZSEJ3SUNBd01DQWdNREJnWUhCd1lHQndjR0JnY0hCZ1lIQndnSUNBZ0lDQWdJQmdZSEJ3WUdCd2NJQ0FnSUNBZ0lDQU1EQkFRREF3UUVCd2NIQndjSEJ3Y0RBd1FFQXdNRUJBY0hCd2NIQndjSEJ3Y0hCd2NIQndjSUNBZ0lDQWdJQ0FjSEJ3Y0hCd2NIQ0FnSUNBZ0lDQWdEQXdRRUF3TUVCQWNIQndjSEJ3Y0hBd01FQkFNREJBUUhCd2NIQndjSEJ3Y0hCd2NIQndjSENBZ0lDQWdJQ0FnSEJ3Y0hCd2NIQndnSUNBZ0lDQWdJQUFFRkJnRUNCZ1lEQXdjSEF3TUhCd0FCQlFZQkFnWUdBd01IQndNREJ3Y0RBd2NIQXdNSEJ3UUVCd2NFQkFjSEF3TUhCd01EQndjRUJBY0hCQVFIQndFQ0JnWUNBZ1lHQXdNSEJ3TURCd2NCQWdZR0FnSUdCZ01EQndjREF3Y0hBd01IQndNREJ3Y0VCQWNIQkFRSEJ3TURCd2NEQXdjSEJBUUhCd1FFQndjRkJnZ0lCZ1lJQ0FjSENBZ0hCd2dJQlFZSUNBWUdDQWdIQndnSUJ3Y0lDQWNIQ0FnSEJ3Z0lCd2NJQ0FjSENBZ0hCd2dJQndjSUNBY0hDQWdIQndnSUJnWUlDQVlHQ0FnSEJ3Z0lCd2NJQ0FZR0NBZ0dCZ2dJQndjSUNBY0hDQWdIQndnSUJ3Y0lDQWNIQ0FnSEJ3Z0lCd2NJQ0FjSENBZ0hCd2dJQndjSUNBRUNCZ1lDQWdZR0F3TUhCd01EQndjQkFnWUdBZ0lHQmdNREJ3Y0RBd2NIQXdNSEJ3TURCd2NFQkFjSEJBUUhCd01EQndjREF3Y0hCQVFIQndRRUJ3Y0NBZ1lHQWdJR0JnTURCd2NEQXdjSEFnSUdCZ0lDQmdZREF3Y0hBd01IQndNREJ3Y0RBd2NIQkFRSEJ3UUVCd2NEQXdjSEF3TUhCd1FFQndjRUJBY0hCZ1lJQ0FZR0NBZ0hCd2dJQndjSUNBWUdDQWdHQmdnSUJ3Y0lDQWNIQ0FnSEJ3Z0lCd2NJQ0FjSENBZ0hCd2dJQndjSUNBY0hDQWdIQndnSUJ3Y0lDQVlHQ0FnR0JnZ0lCd2NJQ0FjSENBZ0dCZ2dJQmdZSUNBY0hDQWdIQndnSUJ3Y0lDQWNIQ0FnSEJ3Z0lCd2NJQ0FjSENBZ0hCd2dJQndjSUNBY0hDQWdBQVFNREFRSURBd1VHQndjR0JnY0hBQUVEQXdFQ0F3TUZCZ2NIQmdZSEJ3VUdCd2NHQmdjSENBZ0lDQWdJQ0FnRkJnY0hCZ1lIQndnSUNBZ0lDQWdJQVFJREF3SUNBd01HQmdjSEJnWUhCd0VDQXdNQ0FnTURCZ1lIQndZR0J3Y0dCZ2NIQmdZSEJ3Z0lDQWdJQ0FnSUJnWUhCd1lHQndjSUNBZ0lDQWdJQ0FNREJBUURBd1FFQndjSEJ3Y0hCd2NEQXdRRUF3TUVCQWNIQndjSEJ3Y0hCd2NIQndjSEJ3Y0lDQWdJQ0FnSUNBY0hCd2NIQndjSENBZ0lDQWdJQ0FnREF3UUVBd01FQkFjSEJ3Y0hCd2NIQXdNRUJBTURCQVFIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hDQWdJQ0FnSUNBZ0hCd2NIQndjSEJ3Z0lDQWdJQ0FnSUFRSURBd0lDQXdNR0JnY0hCZ1lIQndFQ0F3TUNBZ01EQmdZSEJ3WUdCd2NHQmdjSEJnWUhCd2dJQ0FnSUNBZ0lCZ1lIQndZR0J3Y0lDQWdJQ0FnSUNBSUNBd01DQWdNREJnWUhCd1lHQndjQ0FnTURBZ0lEQXdZR0J3Y0dCZ2NIQmdZSEJ3WUdCd2NJQ0FnSUNBZ0lDQVlHQndjR0JnY0hDQWdJQ0FnSUNBZ0RBd1FFQXdNRUJBY0hCd2NIQndjSEF3TUVCQU1EQkFRSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQ0FnSUNBZ0lDQWdIQndjSEJ3Y0hCd2dJQ0FnSUNBZ0lBd01FQkFNREJBUUhCd2NIQndjSEJ3TURCQVFEQXdRRUJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndnSUNBZ0lDQWdJQndjSEJ3Y0hCd2NJQ0FnSUNBZ0lDQUFEQVFRREJnUUhBUVFDQlFRSEJRY0FBd0VFQXdZRUJ3RUVBZ1VFQndVSEFRUUNCUVFIQlFjQ0JRSUZCUWNGQndFRUFnVUVCd1VIQWdVQ0JRVUhCUWNEQmdRSEJnZ0hDQVFIQlFjSENBY0lBd1lFQndZSUJ3Z0VCd1VIQndnSENBUUhCUWNIQ0FjSUJRY0ZCd2NJQndnRUJ3VUhCd2dIQ0FVSEJRY0hDQWNJQVFRQ0JRUUhCUWNDQlFJRkJRY0ZCd0VFQWdVRUJ3VUhBZ1VDQlFVSEJRY0NCUUlGQlFjRkJ3SUZBZ1VGQndVSEFnVUNCUVVIQlFjQ0JRSUZCUWNGQndRSEJRY0hDQWNJQlFjRkJ3Y0lCd2dFQndVSEJ3Z0hDQVVIQlFjSENBY0lCUWNGQndjSUJ3Z0ZCd1VIQndnSENBVUhCUWNIQ0FjSUJRY0ZCd2NJQndnREJnUUhCZ2dIQ0FRSEJRY0hDQWNJQXdZRUJ3WUlCd2dFQndVSEJ3Z0hDQVFIQlFjSENBY0lCUWNGQndjSUJ3Z0VCd1VIQndnSENBVUhCUWNIQ0FjSUJnZ0hDQWdJQ0FnSENBY0lDQWdJQ0FZSUJ3Z0lDQWdJQndnSENBZ0lDQWdIQ0FjSUNBZ0lDQWNJQndnSUNBZ0lCd2dIQ0FnSUNBZ0hDQWNJQ0FnSUNBUUhCUWNIQ0FjSUJRY0ZCd2NJQndnRUJ3VUhCd2dIQ0FVSEJRY0hDQWNJQlFjRkJ3Y0lCd2dGQndVSEJ3Z0hDQVVIQlFjSENBY0lCUWNGQndjSUJ3Z0hDQWNJQ0FnSUNBY0lCd2dJQ0FnSUJ3Z0hDQWdJQ0FnSENBY0lDQWdJQ0FjSUJ3Z0lDQWdJQndnSENBZ0lDQWdIQ0FjSUNBZ0lDQWNJQndnSUNBZ0lDUWtLQ2drSkNnb01EQTBMREF3TkN3a0pDZ29KQ1FvS0RBd0xEUXdNQ3cwTURBME5EQXdMQ3d3SkRRb0pEQW9MREF3TEN3d01EUTBNQ1FzS0NRd0tEUWtKQ2dvSkNRb0tEQXdOQ3d3TURRc0pDUW9LQ1FrS0Nnd01DdzBNREFzTkRBd05EUXdNQ3dzTUNRMEtDUXdLQ3d3TUN3c01EQTBOREFrTENna01DZzBLQ2dvS0Nnb0tDZzBMRFFzTkN3MExDZ29KQ1FvS0NRa05Dd3dNRFFzTURBME5EUTBMQ3dzTERRb05DZ29MQ2dzTkRRd01Dd3NNREEwS0RBa0tDd2tNQ2dvSkNRb0tDUWtMRFF3TUN3ME1EQW9LQ2dvS0Nnb0tDdzBMRFFzTkN3MExDd3dNRFEwTURBc0tEQWtLRFFrTUN3c0xDdzBORFEwTENnc0tDZzBLRFFCQm1jQUJDemNCQUFFQUFRQUJBQUFCQVFBQUFRRUFBUUFCQUFFQUFRQUFBQUFCQVFFQkFBQUFBQUFCQUFFQUFBQUFBUUVCQVFBQUFBRUFBUUVCQUVIWndBRUxOd0VBQVFBQkFBRUFBQUVCQUFBQkFRQUJBQUVBQVFBQkFBQUFBQUVCQVFFQUFBQUFBQUVBQVFBQUFBQUJBUUVCQUFBQUFRQUJBUUVBUVpuQkFRc0hBUUFCQUFFQUFRQkJxY0VCQzVVQ0FRQUJBQUVBQVFBQUFBQUJBUUVCQUFBQUFBQUJBQUVBQUFBQUFRRUJBUUFBQUFBQUFRQUJBUUVBQUFFQkFBQUFBUUFCQUFFQUFRRUJBUUVCQVFFQkFBRUFBUUFCQUFFQUFBQUFBUUVCQVFBQkFBQUJBUUFCQUFBQUFBRUJBUUVBQVFBQkFRRUJBUUlBQUFBRUFBQUFCQUFBQUFnQUFBQ1Evd0FBREFBQUFCa0FBQUJTL3dBQUZBQUFBQm9BQUFCVC93QUFGQUFBQUJzQUFBQmUvd0FBRkFBQUFCd0FBQUJjL3dBQUZBQUFBQjBBQUFCZC93QUFGQUFBQUI0QUFBQmYvd0FBRkFBQUFCOEFBQUJSL3dBQUFnQUFBQ0FBQUFCVi93QUFCQUFBQUNFQUFBQlgvd0FBQkFBQUFDSUFBQUJZL3dBQUVBQUFBQ01BQUFCZy93QUFCQUFBQUNRQUFBQmgvd0FBRUFBQUFDVUFBQUNSL3dCQnlNTUJDMlZqL3dBQUJBQUFBQ1lBQUFCay93QUFGQUFBQUNjQUFBQjAvd0FBRkFBQUFDZ0FBQUI0L3dBQUJBQUFBQ2tBQUFCUS93QUFCQUFBQUNvQUFBQlovd0FBQkFBQUFDc0FBQUIxL3dBQUZBQUFBQ3dBQUFCMy93QUFGQUFBQUMwQUFBQUFBQUFBRkFCQndNUUJDelV1QUFBQUx3QUFBREFBQUFBeEFBQUFNZ0FBQURNQUFBQTBBQUFBTlFBQUFDQWdVR28zQUFBQWNIbDBaamdBQUFCb01uQnFPUUJCZ01VQkN6SnlaR2hwT2dBQUFISnNiMk03QUFBQVkyTndZandBQUFCeWJHTndQUUFBQUhCaGJXTStBQUFBWm1Wa1l6OEFBQUJBWmdCQndNVUJDMEVaQUFzQUdSa1pBQUFBQUFVQUFBQUFBQUFKQUFBQUFBc0FBQUFBQUFBQUFCa0FDZ29aR1JrRENnY0FBUUFKQ3hnQUFBa0dDd0FBQ3dBR0dRQUFBQmtaR1FCQmtjWUJDeUVPQUFBQUFBQUFBQUFaQUFzTkdSa1pBQTBBQUFJQUNRNEFBQUFKQUE0QUFBNEFRY3ZHQVFzQkRBQkIxOFlCQ3hVVEFBQUFBQk1BQUFBQUNRd0FBQUFBQUF3QUFBd0FRWVhIQVFzQkVBQkJrY2NCQ3hVUEFBQUFCQThBQUFBQUNSQUFBQUFBQUJBQUFCQUFRYi9IQVFzQkVnQkJ5OGNCQ3g0UkFBQUFBQkVBQUFBQUNSSUFBQUFBQUJJQUFCSUFBQm9BQUFBYUdob0FRWUxJQVFzT0dnQUFBQm9hR2dBQUFBQUFBQWtBUWJQSUFRc0JGQUJCdjhnQkN4VVhBQUFBQUJjQUFBQUFDUlFBQUFBQUFCUUFBQlFBUWUzSUFRc0JGZ0JCK2NnQkMyUVZBQUFBQUJVQUFBQUFDUllBQUFBQUFCWUFBQllBQURBeE1qTTBOVFkzT0RsQlFrTkVSVVlBQUFBQWNBQUFBSEFBQUFCeEFBQUFjUUFBQUhFQUFBQnhBQUFBY1FBQUFIRUFBQUJ3QUFBQWNBQUFBSEVBQUFCd0FBQUFjQUFBQUhBQUFBQndBRUdBeWdFTEhYRUFBQUJ4QUFBQWNBQUFBSEFBQUFBQUFBQUFjQUFBQUFBQUFBQnhBRUdveXdFTENWQndBUUFBQUFBQUJRQkJ2TXNCQ3dGckFFSFV5d0VMQ213QUFBQnRBQUFBdUdzQVFlekxBUXNCQWdCQi9Nc0JDd2ovLy8vLy8vLy8vd0JCd013QkN3RUZBRUhNekFFTEFXNEFRZVRNQVFzT2JBQUFBRzhBQUFESWF3QUFBQVFBUWZ6TUFRc0JBUUJCak0wQkN3WC8vLy8vQ2c9PSI7cmV0dXJuIHJlY2VpdmVJbnN0YW5jZShpbnN0YW50aWF0ZVN5bmMoZCxlKVswXSl9KCksSD0oTC51LGEuX21hbGxvYz1MLnYsYS5fZnJlZT1MLncsYS5fanAyX2RlY29kZT1MLnksTC56KTtiPWZ1bmN0aW9uIHJ1bkNhbGxlcigpe1N8fHJ1bigpO1N8fChiPXJ1bkNhbGxlcil9O2Z1bmN0aW9uIHJ1bigpe2lmKCEoeT4wKSl7IWZ1bmN0aW9uIHByZVJ1bigpe2lmKGEucHJlUnVuKXsiZnVuY3Rpb24iPT10eXBlb2YgYS5wcmVSdW4mJihhLnByZVJ1bj1bYS5wcmVSdW5dKTtmb3IoO2EucHJlUnVuLmxlbmd0aDspZT1hLnByZVJ1bi5zaGlmdCgpLGYudW5zaGlmdChlKX12YXIgZTtjYWxsUnVudGltZUNhbGxiYWNrcyhmKX0oKTtpZighKHk+MCkpaWYoYS5zZXRTdGF0dXMpe2Euc2V0U3RhdHVzKCJSdW5uaW5nLi4uIik7c2V0VGltZW91dCgoKCk9PntzZXRUaW1lb3V0KCgoKT0+YS5zZXRTdGF0dXMoIiIpKSwxKTtkb1J1bigpfSksMSl9ZWxzZSBkb1J1bigpfWZ1bmN0aW9uIGRvUnVuKCl7aWYoIVMpe1M9ITA7YS5jYWxsZWRSdW49ITA7aWYoIXUpeyFmdW5jdGlvbiBpbml0UnVudGltZSgpe2NhbGxSdW50aW1lQ2FsbGJhY2tzKHApfSgpO3QoYSk7YS5vblJ1bnRpbWVJbml0aWFsaXplZD8uKCk7IWZ1bmN0aW9uIHBvc3RSdW4oKXtpZihhLnBvc3RSdW4peyJmdW5jdGlvbiI9PXR5cGVvZiBhLnBvc3RSdW4mJihhLnBvc3RSdW49W2EucG9zdFJ1bl0pO2Zvcig7YS5wb3N0UnVuLmxlbmd0aDspZT1hLnBvc3RSdW4uc2hpZnQoKSxtLnVuc2hpZnQoZSl9dmFyIGU7Y2FsbFJ1bnRpbWVDYWxsYmFja3MobSl9KCl9fX19aWYoYS5wcmVJbml0KXsiZnVuY3Rpb24iPT10eXBlb2YgYS5wcmVJbml0JiYoYS5wcmVJbml0PVthLnByZUluaXRdKTtmb3IoO2EucHJlSW5pdC5sZW5ndGg+MDspYS5wcmVJbml0LnBvcCgpKCl9cnVuKCk7cmV0dXJuIGF9KTtjb25zdCByaT1haTtjbGFzcyBKcHhFcnJvciBleHRlbmRzIGN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsIkpweEVycm9yIil9fWNsYXNzIEpweEltYWdle3N0YXRpYyNiPW51bGw7c3RhdGljIGRlY29kZShlLHQpe3R8fD17fTt0aGlzLiNifHw9cmkoe3dhcm59KTtjb25zdCBpPXRoaXMuI2IuZGVjb2RlKGUsdCk7aWYoInN0cmluZyI9PXR5cGVvZiBpKXRocm93IG5ldyBKcHhFcnJvcihpKTtyZXR1cm4gaX1zdGF0aWMgY2xlYW51cCgpe3RoaXMuI2I9bnVsbH1zdGF0aWMgcGFyc2VJbWFnZVByb3BlcnRpZXMoZSl7bGV0IHQ9ZS5nZXRCeXRlKCk7Zm9yKDt0Pj0wOyl7Y29uc3QgaT10O3Q9ZS5nZXRCeXRlKCk7aWYoNjUzNjE9PT0oaTw8OHx0KSl7ZS5za2lwKDQpO2NvbnN0IHQ9ZS5nZXRJbnQzMigpPj4+MCxpPWUuZ2V0SW50MzIoKT4+PjAsYT1lLmdldEludDMyKCk+Pj4wLHI9ZS5nZXRJbnQzMigpPj4+MDtlLnNraXAoMTYpO3JldHVybnt3aWR0aDp0LWEsaGVpZ2h0OmktcixiaXRzUGVyQ29tcG9uZW50OjgsY29tcG9uZW50c0NvdW50OmUuZ2V0VWludDE2KCl9fX10aHJvdyBuZXcgSnB4RXJyb3IoIk5vIHNpemUgbWFya2VyIGZvdW5kIGluIEpQWCBzdHJlYW0iKX19Y2xhc3MgSnB4U3RyZWFtIGV4dGVuZHMgRGVjb2RlU3RyZWFte2NvbnN0cnVjdG9yKGUsdCxpKXtzdXBlcih0KTt0aGlzLnN0cmVhbT1lO3RoaXMuZGljdD1lLmRpY3Q7dGhpcy5tYXliZUxlbmd0aD10O3RoaXMucGFyYW1zPWl9Z2V0IGJ5dGVzKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJieXRlcyIsdGhpcy5zdHJlYW0uZ2V0Qnl0ZXModGhpcy5tYXliZUxlbmd0aCkpfWVuc3VyZUJ1ZmZlcihlKXt9cmVhZEJsb2NrKGUpe3RoaXMuZGVjb2RlSW1hZ2UobnVsbCxlKX1kZWNvZGVJbWFnZShlLHQpe2lmKHRoaXMuZW9mKXJldHVybiB0aGlzLmJ1ZmZlcjtlfHw9dGhpcy5ieXRlczt0aGlzLmJ1ZmZlcj1KcHhJbWFnZS5kZWNvZGUoZSx0KTt0aGlzLmJ1ZmZlckxlbmd0aD10aGlzLmJ1ZmZlci5sZW5ndGg7dGhpcy5lb2Y9ITA7cmV0dXJuIHRoaXMuYnVmZmVyfWdldCBjYW5Bc3luY0RlY29kZUltYWdlRnJvbUJ1ZmZlcigpe3JldHVybiB0aGlzLnN0cmVhbS5pc0FzeW5jfX1jbGFzcyBMWldTdHJlYW0gZXh0ZW5kcyBEZWNvZGVTdHJlYW17Y29uc3RydWN0b3IoZSx0LGkpe3N1cGVyKHQpO3RoaXMuc3RyPWU7dGhpcy5kaWN0PWUuZGljdDt0aGlzLmNhY2hlZERhdGE9MDt0aGlzLmJpdHNDYWNoZWQ9MDtjb25zdCBhPTQwOTYscj17ZWFybHlDaGFuZ2U6aSxjb2RlTGVuZ3RoOjksbmV4dENvZGU6MjU4LGRpY3Rpb25hcnlWYWx1ZXM6bmV3IFVpbnQ4QXJyYXkoYSksZGljdGlvbmFyeUxlbmd0aHM6bmV3IFVpbnQxNkFycmF5KGEpLGRpY3Rpb25hcnlQcmV2Q29kZXM6bmV3IFVpbnQxNkFycmF5KGEpLGN1cnJlbnRTZXF1ZW5jZTpuZXcgVWludDhBcnJheShhKSxjdXJyZW50U2VxdWVuY2VMZW5ndGg6MH07Zm9yKGxldCBlPTA7ZTwyNTY7KytlKXtyLmRpY3Rpb25hcnlWYWx1ZXNbZV09ZTtyLmRpY3Rpb25hcnlMZW5ndGhzW2VdPTF9dGhpcy5sendTdGF0ZT1yfXJlYWRCaXRzKGUpe2xldCB0PXRoaXMuYml0c0NhY2hlZCxpPXRoaXMuY2FjaGVkRGF0YTtmb3IoO3Q8ZTspe2NvbnN0IGU9dGhpcy5zdHIuZ2V0Qnl0ZSgpO2lmKC0xPT09ZSl7dGhpcy5lb2Y9ITA7cmV0dXJuIG51bGx9aT1pPDw4fGU7dCs9OH10aGlzLmJpdHNDYWNoZWQ9dC09ZTt0aGlzLmNhY2hlZERhdGE9aTt0aGlzLmxhc3RDb2RlPW51bGw7cmV0dXJuIGk+Pj50JigxPDxlKS0xfXJlYWRCbG9jaygpe2xldCBlLHQsaSxhPTEwMjQ7Y29uc3Qgcj10aGlzLmx6d1N0YXRlO2lmKCFyKXJldHVybjtjb25zdCBzPXIuZWFybHlDaGFuZ2U7bGV0IG49ci5uZXh0Q29kZTtjb25zdCBvPXIuZGljdGlvbmFyeVZhbHVlcyxnPXIuZGljdGlvbmFyeUxlbmd0aHMsYz1yLmRpY3Rpb25hcnlQcmV2Q29kZXM7bGV0IGw9ci5jb2RlTGVuZ3RoLGg9ci5wcmV2Q29kZTtjb25zdCBDPXIuY3VycmVudFNlcXVlbmNlO2xldCBRPXIuY3VycmVudFNlcXVlbmNlTGVuZ3RoLEU9MCx1PXRoaXMuYnVmZmVyTGVuZ3RoLGQ9dGhpcy5lbnN1cmVCdWZmZXIodGhpcy5idWZmZXJMZW5ndGgrYSk7Zm9yKGU9MDtlPDUxMjtlKyspe2NvbnN0IGU9dGhpcy5yZWFkQml0cyhsKSxyPVE+MDtpZihlPDI1Nil7Q1swXT1lO1E9MX1lbHNle2lmKCEoZT49MjU4KSl7aWYoMjU2PT09ZSl7bD05O249MjU4O1E9MDtjb250aW51ZX10aGlzLmVvZj0hMDtkZWxldGUgdGhpcy5sendTdGF0ZTticmVha31pZihlPG4pe1E9Z1tlXTtmb3IodD1RLTEsaT1lO3Q+PTA7dC0tKXtDW3RdPW9baV07aT1jW2ldfX1lbHNlIENbUSsrXT1DWzBdfWlmKHIpe2Nbbl09aDtnW25dPWdbaF0rMTtvW25dPUNbMF07bisrO2w9bitzJm4rcy0xP2w6MHxNYXRoLm1pbihNYXRoLmxvZyhuK3MpLy42OTMxNDcxODA1NTk5NDUzKzEsMTIpfWg9ZTtFKz1RO2lmKGE8RSl7ZG97YSs9NTEyfXdoaWxlKGE8RSk7ZD10aGlzLmVuc3VyZUJ1ZmZlcih0aGlzLmJ1ZmZlckxlbmd0aCthKX1mb3IodD0wO3Q8UTt0KyspZFt1KytdPUNbdF19ci5uZXh0Q29kZT1uO3IuY29kZUxlbmd0aD1sO3IucHJldkNvZGU9aDtyLmN1cnJlbnRTZXF1ZW5jZUxlbmd0aD1RO3RoaXMuYnVmZmVyTGVuZ3RoPXV9fWNsYXNzIFByZWRpY3RvclN0cmVhbSBleHRlbmRzIERlY29kZVN0cmVhbXtjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIodCk7aWYoIShpIGluc3RhbmNlb2YgRGljdCkpcmV0dXJuIGU7Y29uc3QgYT10aGlzLnByZWRpY3Rvcj1pLmdldCgiUHJlZGljdG9yIil8fDE7aWYoYTw9MSlyZXR1cm4gZTtpZigyIT09YSYmKGE8MTB8fGE+MTUpKXRocm93IG5ldyBGb3JtYXRFcnJvcihgVW5zdXBwb3J0ZWQgcHJlZGljdG9yOiAke2F9YCk7dGhpcy5yZWFkQmxvY2s9Mj09PWE/dGhpcy5yZWFkQmxvY2tUaWZmOnRoaXMucmVhZEJsb2NrUG5nO3RoaXMuc3RyPWU7dGhpcy5kaWN0PWUuZGljdDtjb25zdCByPXRoaXMuY29sb3JzPWkuZ2V0KCJDb2xvcnMiKXx8MSxzPXRoaXMuYml0cz1pLmdldCgiQlBDIiwiQml0c1BlckNvbXBvbmVudCIpfHw4LG49dGhpcy5jb2x1bW5zPWkuZ2V0KCJDb2x1bW5zIil8fDE7dGhpcy5waXhCeXRlcz1yKnMrNz4+Mzt0aGlzLnJvd0J5dGVzPW4qcipzKzc+PjM7cmV0dXJuIHRoaXN9cmVhZEJsb2NrVGlmZigpe2NvbnN0IGU9dGhpcy5yb3dCeXRlcyx0PXRoaXMuYnVmZmVyTGVuZ3RoLGk9dGhpcy5lbnN1cmVCdWZmZXIodCtlKSxhPXRoaXMuYml0cyxyPXRoaXMuY29sb3JzLHM9dGhpcy5zdHIuZ2V0Qnl0ZXMoZSk7dGhpcy5lb2Y9IXMubGVuZ3RoO2lmKHRoaXMuZW9mKXJldHVybjtsZXQgbixvPTAsZz0wLGM9MCxsPTAsaD10O2lmKDE9PT1hJiYxPT09cilmb3Iobj0wO248ZTsrK24pe2xldCBlPXNbbl1ebztlXj1lPj4xO2VePWU+PjI7ZV49ZT4+NDtvPSgxJmUpPDw3O2lbaCsrXT1lfWVsc2UgaWYoOD09PWEpe2ZvcihuPTA7bjxyOysrbilpW2grK109c1tuXTtmb3IoO248ZTsrK24pe2lbaF09aVtoLXJdK3Nbbl07aCsrfX1lbHNlIGlmKDE2PT09YSl7Y29uc3QgdD0yKnI7Zm9yKG49MDtuPHQ7KytuKWlbaCsrXT1zW25dO2Zvcig7bjxlO24rPTIpe2NvbnN0IGU9KCgyNTUmc1tuXSk8PDgpKygyNTUmc1tuKzFdKSsoKDI1NSZpW2gtdF0pPDw4KSsoMjU1JmlbaC10KzFdKTtpW2grK109ZT4+OCYyNTU7aVtoKytdPTI1NSZlfX1lbHNle2NvbnN0IGU9bmV3IFVpbnQ4QXJyYXkocisxKSxoPSgxPDxhKS0xO2xldCBDPTAsUT10O2NvbnN0IEU9dGhpcy5jb2x1bW5zO2ZvcihuPTA7bjxFOysrbilmb3IobGV0IHQ9MDt0PHI7Kyt0KXtpZihjPGEpe289bzw8OHwyNTUmc1tDKytdO2MrPTh9ZVt0XT1lW3RdKyhvPj5jLWEpJmg7Yy09YTtnPWc8PGF8ZVt0XTtsKz1hO2lmKGw+PTgpe2lbUSsrXT1nPj5sLTgmMjU1O2wtPTh9fWw+MCYmKGlbUSsrXT0oZzw8OC1sKSsobyYoMTw8OC1sKS0xKSl9dGhpcy5idWZmZXJMZW5ndGgrPWV9cmVhZEJsb2NrUG5nKCl7Y29uc3QgZT10aGlzLnJvd0J5dGVzLHQ9dGhpcy5waXhCeXRlcyxpPXRoaXMuc3RyLmdldEJ5dGUoKSxhPXRoaXMuc3RyLmdldEJ5dGVzKGUpO3RoaXMuZW9mPSFhLmxlbmd0aDtpZih0aGlzLmVvZilyZXR1cm47Y29uc3Qgcj10aGlzLmJ1ZmZlckxlbmd0aCxzPXRoaXMuZW5zdXJlQnVmZmVyKHIrZSk7bGV0IG49cy5zdWJhcnJheShyLWUscik7MD09PW4ubGVuZ3RoJiYobj1uZXcgVWludDhBcnJheShlKSk7bGV0IG8sZyxjLGw9cjtzd2l0Y2goaSl7Y2FzZSAwOmZvcihvPTA7bzxlOysrbylzW2wrK109YVtvXTticmVhaztjYXNlIDE6Zm9yKG89MDtvPHQ7KytvKXNbbCsrXT1hW29dO2Zvcig7bzxlOysrbyl7c1tsXT1zW2wtdF0rYVtvXSYyNTU7bCsrfWJyZWFrO2Nhc2UgMjpmb3Iobz0wO288ZTsrK28pc1tsKytdPW5bb10rYVtvXSYyNTU7YnJlYWs7Y2FzZSAzOmZvcihvPTA7bzx0OysrbylzW2wrK109KG5bb10+PjEpK2Fbb107Zm9yKDtvPGU7KytvKXtzW2xdPShuW29dK3NbbC10XT4+MSkrYVtvXSYyNTU7bCsrfWJyZWFrO2Nhc2UgNDpmb3Iobz0wO288dDsrK28pe2c9bltvXTtjPWFbb107c1tsKytdPWcrY31mb3IoO288ZTsrK28pe2c9bltvXTtjb25zdCBlPW5bby10XSxpPXNbbC10XSxyPWkrZy1lO2xldCBoPXItaTtoPDAmJihoPS1oKTtsZXQgQz1yLWc7QzwwJiYoQz0tQyk7bGV0IFE9ci1lO1E8MCYmKFE9LVEpO2M9YVtvXTtzW2wrK109aDw9QyYmaDw9UT9pK2M6Qzw9UT9nK2M6ZStjfWJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEZvcm1hdEVycm9yKGBVbnN1cHBvcnRlZCBwcmVkaWN0b3I6ICR7aX1gKX10aGlzLmJ1ZmZlckxlbmd0aCs9ZX19Y2xhc3MgUnVuTGVuZ3RoU3RyZWFtIGV4dGVuZHMgRGVjb2RlU3RyZWFte2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIodCk7dGhpcy5zdHI9ZTt0aGlzLmRpY3Q9ZS5kaWN0fXJlYWRCbG9jaygpe2NvbnN0IGU9dGhpcy5zdHIuZ2V0Qnl0ZXMoMik7aWYoIWV8fGUubGVuZ3RoPDJ8fDEyOD09PWVbMF0pe3RoaXMuZW9mPSEwO3JldHVybn1sZXQgdCxpPXRoaXMuYnVmZmVyTGVuZ3RoLGE9ZVswXTtpZihhPDEyOCl7dD10aGlzLmVuc3VyZUJ1ZmZlcihpK2ErMSk7dFtpKytdPWVbMV07aWYoYT4wKXtjb25zdCBlPXRoaXMuc3RyLmdldEJ5dGVzKGEpO3Quc2V0KGUsaSk7aSs9YX19ZWxzZXthPTI1Ny1hO2NvbnN0IHI9ZVsxXTt0PXRoaXMuZW5zdXJlQnVmZmVyKGkrYSsxKTtmb3IobGV0IGU9MDtlPGE7ZSsrKXRbaSsrXT1yfXRoaXMuYnVmZmVyTGVuZ3RoPWl9fWNsYXNzIFBhcnNlcntjb25zdHJ1Y3Rvcih7bGV4ZXI6ZSx4cmVmOnQsYWxsb3dTdHJlYW1zOmk9ITEscmVjb3ZlcnlNb2RlOmE9ITF9KXt0aGlzLmxleGVyPWU7dGhpcy54cmVmPXQ7dGhpcy5hbGxvd1N0cmVhbXM9aTt0aGlzLnJlY292ZXJ5TW9kZT1hO3RoaXMuaW1hZ2VDYWNoZT1PYmplY3QuY3JlYXRlKG51bGwpO3RoaXMuX2ltYWdlSWQ9MDt0aGlzLnJlZmlsbCgpfXJlZmlsbCgpe3RoaXMuYnVmMT10aGlzLmxleGVyLmdldE9iaigpO3RoaXMuYnVmMj10aGlzLmxleGVyLmdldE9iaigpfXNoaWZ0KCl7aWYodGhpcy5idWYyIGluc3RhbmNlb2YgQ21kJiYiSUQiPT09dGhpcy5idWYyLmNtZCl7dGhpcy5idWYxPXRoaXMuYnVmMjt0aGlzLmJ1ZjI9bnVsbH1lbHNle3RoaXMuYnVmMT10aGlzLmJ1ZjI7dGhpcy5idWYyPXRoaXMubGV4ZXIuZ2V0T2JqKCl9fXRyeVNoaWZ0KCl7dHJ5e3RoaXMuc2hpZnQoKTtyZXR1cm4hMH1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pdGhyb3cgZTtyZXR1cm4hMX19Z2V0T2JqKGU9bnVsbCl7Y29uc3QgdD10aGlzLmJ1ZjE7dGhpcy5zaGlmdCgpO2lmKHQgaW5zdGFuY2VvZiBDbWQpc3dpdGNoKHQuY21kKXtjYXNlIkJJIjpyZXR1cm4gdGhpcy5tYWtlSW5saW5lSW1hZ2UoZSk7Y2FzZSJbIjpjb25zdCBpPVtdO2Zvcig7IWlzQ21kKHRoaXMuYnVmMSwiXSIpJiZ0aGlzLmJ1ZjEhPT1FdDspaS5wdXNoKHRoaXMuZ2V0T2JqKGUpKTtpZih0aGlzLmJ1ZjE9PT1FdCl7aWYodGhpcy5yZWNvdmVyeU1vZGUpcmV0dXJuIGk7dGhyb3cgbmV3IFBhcnNlckVPRkV4Y2VwdGlvbigiRW5kIG9mIGZpbGUgaW5zaWRlIGFycmF5LiIpfXRoaXMuc2hpZnQoKTtyZXR1cm4gaTtjYXNlIjw8Ijpjb25zdCBhPW5ldyBEaWN0KHRoaXMueHJlZik7Zm9yKDshaXNDbWQodGhpcy5idWYxLCI+PiIpJiZ0aGlzLmJ1ZjEhPT1FdDspe2lmKCEodGhpcy5idWYxIGluc3RhbmNlb2YgTmFtZSkpe2luZm8oIk1hbGZvcm1lZCBkaWN0aW9uYXJ5OiBrZXkgbXVzdCBiZSBhIG5hbWUgb2JqZWN0Iik7dGhpcy5zaGlmdCgpO2NvbnRpbnVlfWNvbnN0IHQ9dGhpcy5idWYxLm5hbWU7dGhpcy5zaGlmdCgpO2lmKHRoaXMuYnVmMT09PUV0KWJyZWFrO2Euc2V0KHQsdGhpcy5nZXRPYmooZSkpfWlmKHRoaXMuYnVmMT09PUV0KXtpZih0aGlzLnJlY292ZXJ5TW9kZSlyZXR1cm4gYTt0aHJvdyBuZXcgUGFyc2VyRU9GRXhjZXB0aW9uKCJFbmQgb2YgZmlsZSBpbnNpZGUgZGljdGlvbmFyeS4iKX1pZihpc0NtZCh0aGlzLmJ1ZjIsInN0cmVhbSIpKXJldHVybiB0aGlzLmFsbG93U3RyZWFtcz90aGlzLm1ha2VTdHJlYW0oYSxlKTphO3RoaXMuc2hpZnQoKTtyZXR1cm4gYTtkZWZhdWx0OnJldHVybiB0fWlmKE51bWJlci5pc0ludGVnZXIodCkpe2lmKE51bWJlci5pc0ludGVnZXIodGhpcy5idWYxKSYmaXNDbWQodGhpcy5idWYyLCJSIikpe2NvbnN0IGU9UmVmLmdldCh0LHRoaXMuYnVmMSk7dGhpcy5zaGlmdCgpO3RoaXMuc2hpZnQoKTtyZXR1cm4gZX1yZXR1cm4gdH1yZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJmU/ZS5kZWNyeXB0U3RyaW5nKHQpOnR9ZmluZERlZmF1bHRJbmxpbmVTdHJlYW1FbmQoZSl7Y29uc3R7a25vd25Db21tYW5kczp0fT10aGlzLmxleGVyLGk9ZS5wb3M7bGV0IGEscixzPTA7Zm9yKDstMSE9PShhPWUuZ2V0Qnl0ZSgpKTspaWYoMD09PXMpcz02OT09PWE/MTowO2Vsc2UgaWYoMT09PXMpcz03Mz09PWE/MjowO2Vsc2UgaWYoMzI9PT1hfHwxMD09PWF8fDEzPT09YSl7cj1lLnBvcztjb25zdCBpPWUucGVla0J5dGVzKDE1KSxuPWkubGVuZ3RoO2lmKDA9PT1uKWJyZWFrO2ZvcihsZXQgZT0wO2U8bjtlKyspe2E9aVtlXTtpZigoMCE9PWF8fDA9PT1pW2UrMV0pJiYoMTAhPT1hJiYxMyE9PWEmJihhPDMyfHxhPjEyNykpKXtzPTA7YnJlYWt9fWlmKDIhPT1zKWNvbnRpbnVlO2lmKCF0KXt3YXJuKCJmaW5kRGVmYXVsdElubGluZVN0cmVhbUVuZCAtIGBsZXhlci5rbm93bkNvbW1hbmRzYCBpcyB1bmRlZmluZWQuIik7Y29udGludWV9Y29uc3Qgbz1uZXcgTGV4ZXIobmV3IFN0cmVhbShpLnNsaWNlKCkpLHQpO28uX2hleFN0cmluZ1dhcm49KCk9Pnt9O2xldCBnPTA7Zm9yKDs7KXtjb25zdCBlPW8uZ2V0T2JqKCk7aWYoZT09PUV0KXtzPTA7YnJlYWt9aWYoZSBpbnN0YW5jZW9mIENtZCl7Y29uc3QgaT10W2UuY21kXTtpZighaSl7cz0wO2JyZWFrfWlmKGkudmFyaWFibGVBcmdzP2c8PWkubnVtQXJnczpnPT09aS5udW1BcmdzKWJyZWFrO2c9MH1lbHNlIGcrK31pZigyPT09cylicmVha31lbHNlIHM9MDtpZigtMT09PWEpe3dhcm4oImZpbmREZWZhdWx0SW5saW5lU3RyZWFtRW5kOiBSZWFjaGVkIHRoZSBlbmQgb2YgdGhlIHN0cmVhbSB3aXRob3V0IGZpbmRpbmcgYSB2YWxpZCBFSSBtYXJrZXIiKTtpZihyKXt3YXJuKCcuLi4gdHJ5aW5nIHRvIHJlY292ZXIgYnkgdXNpbmcgdGhlIGxhc3QgIkVJIiBvY2N1cnJlbmNlLicpO2Uuc2tpcCgtKGUucG9zLXIpKX19bGV0IG49NDtlLnNraXAoLW4pO2E9ZS5wZWVrQnl0ZSgpO2Uuc2tpcChuKTtpc1doaXRlU3BhY2UoYSl8fG4tLTtyZXR1cm4gZS5wb3Mtbi1pfWZpbmREQ1REZWNvZGVJbmxpbmVTdHJlYW1FbmQoZSl7Y29uc3QgdD1lLnBvcztsZXQgaSxhLHI9ITE7Zm9yKDstMSE9PShpPWUuZ2V0Qnl0ZSgpKTspaWYoMjU1PT09aSl7c3dpdGNoKGUuZ2V0Qnl0ZSgpKXtjYXNlIDA6YnJlYWs7Y2FzZSAyNTU6ZS5za2lwKC0xKTticmVhaztjYXNlIDIxNzpyPSEwO2JyZWFrO2Nhc2UgMTkyOmNhc2UgMTkzOmNhc2UgMTk0OmNhc2UgMTk1OmNhc2UgMTk3OmNhc2UgMTk4OmNhc2UgMTk5OmNhc2UgMjAxOmNhc2UgMjAyOmNhc2UgMjAzOmNhc2UgMjA1OmNhc2UgMjA2OmNhc2UgMjA3OmNhc2UgMTk2OmNhc2UgMjA0OmNhc2UgMjE4OmNhc2UgMjE5OmNhc2UgMjIwOmNhc2UgMjIxOmNhc2UgMjIyOmNhc2UgMjIzOmNhc2UgMjI0OmNhc2UgMjI1OmNhc2UgMjI2OmNhc2UgMjI3OmNhc2UgMjI4OmNhc2UgMjI5OmNhc2UgMjMwOmNhc2UgMjMxOmNhc2UgMjMyOmNhc2UgMjMzOmNhc2UgMjM0OmNhc2UgMjM1OmNhc2UgMjM2OmNhc2UgMjM3OmNhc2UgMjM4OmNhc2UgMjM5OmNhc2UgMjU0OmE9ZS5nZXRVaW50MTYoKTthPjI/ZS5za2lwKGEtMik6ZS5za2lwKC0yKX1pZihyKWJyZWFrfWNvbnN0IHM9ZS5wb3MtdDtpZigtMT09PWkpe3dhcm4oIklubGluZSBEQ1REZWNvZGUgaW1hZ2Ugc3RyZWFtOiBFT0kgbWFya2VyIG5vdCBmb3VuZCwgc2VhcmNoaW5nIGZvciAvRUkvIGluc3RlYWQuIik7ZS5za2lwKC1zKTtyZXR1cm4gdGhpcy5maW5kRGVmYXVsdElubGluZVN0cmVhbUVuZChlKX10aGlzLmlubGluZVN0cmVhbVNraXBFSShlKTtyZXR1cm4gc31maW5kQVNDSUk4NURlY29kZUlubGluZVN0cmVhbUVuZChlKXtjb25zdCB0PWUucG9zO2xldCBpO2Zvcig7LTEhPT0oaT1lLmdldEJ5dGUoKSk7KWlmKDEyNj09PWkpe2NvbnN0IHQ9ZS5wb3M7aT1lLnBlZWtCeXRlKCk7Zm9yKDtpc1doaXRlU3BhY2UoaSk7KXtlLnNraXAoKTtpPWUucGVla0J5dGUoKX1pZig2Mj09PWkpe2Uuc2tpcCgpO2JyZWFrfWlmKGUucG9zPnQpe2NvbnN0IHQ9ZS5wZWVrQnl0ZXMoMik7aWYoNjk9PT10WzBdJiY3Mz09PXRbMV0pYnJlYWt9fWNvbnN0IGE9ZS5wb3MtdDtpZigtMT09PWkpe3dhcm4oIklubGluZSBBU0NJSTg1RGVjb2RlIGltYWdlIHN0cmVhbTogRU9EIG1hcmtlciBub3QgZm91bmQsIHNlYXJjaGluZyBmb3IgL0VJLyBpbnN0ZWFkLiIpO2Uuc2tpcCgtYSk7cmV0dXJuIHRoaXMuZmluZERlZmF1bHRJbmxpbmVTdHJlYW1FbmQoZSl9dGhpcy5pbmxpbmVTdHJlYW1Ta2lwRUkoZSk7cmV0dXJuIGF9ZmluZEFTQ0lJSGV4RGVjb2RlSW5saW5lU3RyZWFtRW5kKGUpe2NvbnN0IHQ9ZS5wb3M7bGV0IGk7Zm9yKDstMSE9PShpPWUuZ2V0Qnl0ZSgpKSYmNjIhPT1pOyk7Y29uc3QgYT1lLnBvcy10O2lmKC0xPT09aSl7d2FybigiSW5saW5lIEFTQ0lJSGV4RGVjb2RlIGltYWdlIHN0cmVhbTogRU9EIG1hcmtlciBub3QgZm91bmQsIHNlYXJjaGluZyBmb3IgL0VJLyBpbnN0ZWFkLiIpO2Uuc2tpcCgtYSk7cmV0dXJuIHRoaXMuZmluZERlZmF1bHRJbmxpbmVTdHJlYW1FbmQoZSl9dGhpcy5pbmxpbmVTdHJlYW1Ta2lwRUkoZSk7cmV0dXJuIGF9aW5saW5lU3RyZWFtU2tpcEVJKGUpe2xldCB0LGk9MDtmb3IoOy0xIT09KHQ9ZS5nZXRCeXRlKCkpOylpZigwPT09aSlpPTY5PT09dD8xOjA7ZWxzZSBpZigxPT09aSlpPTczPT09dD8yOjA7ZWxzZSBpZigyPT09aSlicmVha31tYWtlSW5saW5lSW1hZ2UoZSl7Y29uc3QgdD10aGlzLmxleGVyLGk9dC5zdHJlYW0sYT1PYmplY3QuY3JlYXRlKG51bGwpO2xldCByO2Zvcig7IWlzQ21kKHRoaXMuYnVmMSwiSUQiKSYmdGhpcy5idWYxIT09RXQ7KXtpZighKHRoaXMuYnVmMSBpbnN0YW5jZW9mIE5hbWUpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiRGljdGlvbmFyeSBrZXkgbXVzdCBiZSBhIG5hbWUgb2JqZWN0Iik7Y29uc3QgdD10aGlzLmJ1ZjEubmFtZTt0aGlzLnNoaWZ0KCk7aWYodGhpcy5idWYxPT09RXQpYnJlYWs7YVt0XT10aGlzLmdldE9iaihlKX0tMSE9PXQuYmVnaW5JbmxpbmVJbWFnZVBvcyYmKHI9aS5wb3MtdC5iZWdpbklubGluZUltYWdlUG9zKTtjb25zdCBzPXRoaXMueHJlZi5mZXRjaElmUmVmKGEuRnx8YS5GaWx0ZXIpO2xldCBuO2lmKHMgaW5zdGFuY2VvZiBOYW1lKW49cy5uYW1lO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShzKSl7Y29uc3QgZT10aGlzLnhyZWYuZmV0Y2hJZlJlZihzWzBdKTtlIGluc3RhbmNlb2YgTmFtZSYmKG49ZS5uYW1lKX1jb25zdCBvPWkucG9zO2xldCBnLGM7c3dpdGNoKG4pe2Nhc2UiRENUIjpjYXNlIkRDVERlY29kZSI6Zz10aGlzLmZpbmREQ1REZWNvZGVJbmxpbmVTdHJlYW1FbmQoaSk7YnJlYWs7Y2FzZSJBODUiOmNhc2UiQVNDSUk4NURlY29kZSI6Zz10aGlzLmZpbmRBU0NJSTg1RGVjb2RlSW5saW5lU3RyZWFtRW5kKGkpO2JyZWFrO2Nhc2UiQUh4IjpjYXNlIkFTQ0lJSGV4RGVjb2RlIjpnPXRoaXMuZmluZEFTQ0lJSGV4RGVjb2RlSW5saW5lU3RyZWFtRW5kKGkpO2JyZWFrO2RlZmF1bHQ6Zz10aGlzLmZpbmREZWZhdWx0SW5saW5lU3RyZWFtRW5kKGkpfWlmKGc8MWUzJiZyPjApe2NvbnN0IGU9aS5wb3M7aS5wb3M9dC5iZWdpbklubGluZUltYWdlUG9zO2M9ZnVuY3Rpb24gZ2V0SW5saW5lSW1hZ2VDYWNoZUtleShlKXtjb25zdCB0PVtdLGk9ZS5sZW5ndGg7bGV0IGE9MDtmb3IoO2E8aS0xOyl0LnB1c2goZVthKytdPDw4fGVbYSsrXSk7YTxpJiZ0LnB1c2goZVthXSk7cmV0dXJuIGkrIl8iK1N0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCx0KX0oaS5nZXRCeXRlcyhyK2cpKTtpLnBvcz1lO2NvbnN0IGE9dGhpcy5pbWFnZUNhY2hlW2NdO2lmKHZvaWQgMCE9PWEpe3RoaXMuYnVmMj1DbWQuZ2V0KCJFSSIpO3RoaXMuc2hpZnQoKTthLnJlc2V0KCk7cmV0dXJuIGF9fWNvbnN0IGw9bmV3IERpY3QodGhpcy54cmVmKTtmb3IoY29uc3QgZSBpbiBhKWwuc2V0KGUsYVtlXSk7bGV0IGg9aS5tYWtlU3ViU3RyZWFtKG8sZyxsKTtlJiYoaD1lLmNyZWF0ZVN0cmVhbShoLGcpKTtoPXRoaXMuZmlsdGVyKGgsbCxnKTtoLmRpY3Q9bDtpZih2b2lkIDAhPT1jKXtoLmNhY2hlS2V5PSJpbmxpbmVfaW1nXyIrICsrdGhpcy5faW1hZ2VJZDt0aGlzLmltYWdlQ2FjaGVbY109aH10aGlzLmJ1ZjI9Q21kLmdldCgiRUkiKTt0aGlzLnNoaWZ0KCk7cmV0dXJuIGh9I0QoZSl7Y29uc3R7c3RyZWFtOnR9PXRoaXMubGV4ZXI7dC5wb3M9ZTtjb25zdCBpPW5ldyBVaW50OEFycmF5KFsxMDEsMTEwLDEwMF0pLGE9aS5sZW5ndGgscj1bbmV3IFVpbnQ4QXJyYXkoWzExNSwxMTYsMTE0LDEwMSw5NywxMDldKSxuZXcgVWludDhBcnJheShbMTE1LDExNiwxMDEsOTcsMTA5XSksbmV3IFVpbnQ4QXJyYXkoWzExNSwxMTYsMTE0LDEwMSw5N10pXSxzPTktYTtmb3IoO3QucG9zPHQuZW5kOyl7Y29uc3Qgbj10LnBlZWtCeXRlcygyMDQ4KSxvPW4ubGVuZ3RoLTk7aWYobzw9MClicmVhaztsZXQgZz0wO2Zvcig7ZzxvOyl7bGV0IG89MDtmb3IoO288YSYmbltnK29dPT09aVtvXTspbysrO2lmKG8+PWEpe2xldCBhPSExO2Zvcihjb25zdCBlIG9mIHIpe2NvbnN0IHQ9ZS5sZW5ndGg7bGV0IHI9MDtmb3IoO3I8dCYmbltnK28rcl09PT1lW3JdOylyKys7aWYocj49cyl7YT0hMDticmVha31pZihyPj10KXtpZihpc1doaXRlU3BhY2UobltnK28rcl0pKXtpbmZvKGBGb3VuZCAiJHtieXRlc1RvU3RyaW5nKFsuLi5pLC4uLmVdKX0iIHdoZW4gc2VhcmNoaW5nIGZvciBlbmRzdHJlYW0gY29tbWFuZC5gKTthPSEwfWJyZWFrfX1pZihhKXt0LnBvcys9ZztyZXR1cm4gdC5wb3MtZX19ZysrfXQucG9zKz1vfXJldHVybi0xfW1ha2VTdHJlYW0oZSx0KXtjb25zdCBpPXRoaXMubGV4ZXI7bGV0IGE9aS5zdHJlYW07aS5za2lwVG9OZXh0TGluZSgpO2NvbnN0IHI9YS5wb3MtMTtsZXQgcz1lLmdldCgiTGVuZ3RoIik7aWYoIU51bWJlci5pc0ludGVnZXIocykpe2luZm8oYEJhZCBsZW5ndGggIiR7cyYmcy50b1N0cmluZygpfSIgaW4gc3RyZWFtLmApO3M9MH1hLnBvcz1yK3M7aS5uZXh0Q2hhcigpO2lmKHRoaXMudHJ5U2hpZnQoKSYmaXNDbWQodGhpcy5idWYyLCJlbmRzdHJlYW0iKSl0aGlzLnNoaWZ0KCk7ZWxzZXtzPXRoaXMuI0Qocik7aWYoczwwKXRocm93IG5ldyBGb3JtYXRFcnJvcigiTWlzc2luZyBlbmRzdHJlYW0gY29tbWFuZC4iKTtpLm5leHRDaGFyKCk7dGhpcy5zaGlmdCgpO3RoaXMuc2hpZnQoKX10aGlzLnNoaWZ0KCk7YT1hLm1ha2VTdWJTdHJlYW0ocixzLGUpO3QmJihhPXQuY3JlYXRlU3RyZWFtKGEscykpO2E9dGhpcy5maWx0ZXIoYSxlLHMpO2EuZGljdD1lO3JldHVybiBhfWZpbHRlcihlLHQsaSl7bGV0IGE9dC5nZXQoIkYiLCJGaWx0ZXIiKSxyPXQuZ2V0KCJEUCIsIkRlY29kZVBhcm1zIik7aWYoYSBpbnN0YW5jZW9mIE5hbWUpe0FycmF5LmlzQXJyYXkocikmJndhcm4oIi9EZWNvZGVQYXJtcyBzaG91bGQgbm90IGJlIGFuIEFycmF5LCB3aGVuIC9GaWx0ZXIgaXMgYSBOYW1lLiIpO3JldHVybiB0aGlzLm1ha2VGaWx0ZXIoZSxhLm5hbWUsaSxyKX1sZXQgcz1pO2lmKEFycmF5LmlzQXJyYXkoYSkpe2NvbnN0IHQ9YSxpPXI7Zm9yKGxldCBuPTAsbz10Lmxlbmd0aDtuPG87KytuKXthPXRoaXMueHJlZi5mZXRjaElmUmVmKHRbbl0pO2lmKCEoYSBpbnN0YW5jZW9mIE5hbWUpKXRocm93IG5ldyBGb3JtYXRFcnJvcihgQmFkIGZpbHRlciBuYW1lICIke2F9ImApO3I9bnVsbDtBcnJheS5pc0FycmF5KGkpJiZuIGluIGkmJihyPXRoaXMueHJlZi5mZXRjaElmUmVmKGlbbl0pKTtlPXRoaXMubWFrZUZpbHRlcihlLGEubmFtZSxzLHIpO3M9bnVsbH19cmV0dXJuIGV9bWFrZUZpbHRlcihlLHQsaSxhKXtpZigwPT09aSl7d2FybihgRW1wdHkgIiR7dH0iIHN0cmVhbS5gKTtyZXR1cm4gbmV3IE51bGxTdHJlYW19dHJ5e3N3aXRjaCh0KXtjYXNlIkZsIjpjYXNlIkZsYXRlRGVjb2RlIjpyZXR1cm4gYT9uZXcgUHJlZGljdG9yU3RyZWFtKG5ldyBGbGF0ZVN0cmVhbShlLGkpLGksYSk6bmV3IEZsYXRlU3RyZWFtKGUsaSk7Y2FzZSJMWlciOmNhc2UiTFpXRGVjb2RlIjpsZXQgdD0xO2lmKGEpe2EuaGFzKCJFYXJseUNoYW5nZSIpJiYodD1hLmdldCgiRWFybHlDaGFuZ2UiKSk7cmV0dXJuIG5ldyBQcmVkaWN0b3JTdHJlYW0obmV3IExaV1N0cmVhbShlLGksdCksaSxhKX1yZXR1cm4gbmV3IExaV1N0cmVhbShlLGksdCk7Y2FzZSJEQ1QiOmNhc2UiRENURGVjb2RlIjpyZXR1cm4gbmV3IEpwZWdTdHJlYW0oZSxpLGEpO2Nhc2UiSlBYIjpjYXNlIkpQWERlY29kZSI6cmV0dXJuIG5ldyBKcHhTdHJlYW0oZSxpLGEpO2Nhc2UiQTg1IjpjYXNlIkFTQ0lJODVEZWNvZGUiOnJldHVybiBuZXcgQXNjaWk4NVN0cmVhbShlLGkpO2Nhc2UiQUh4IjpjYXNlIkFTQ0lJSGV4RGVjb2RlIjpyZXR1cm4gbmV3IEFzY2lpSGV4U3RyZWFtKGUsaSk7Y2FzZSJDQ0YiOmNhc2UiQ0NJVFRGYXhEZWNvZGUiOnJldHVybiBuZXcgQ0NJVFRGYXhTdHJlYW0oZSxpLGEpO2Nhc2UiUkwiOmNhc2UiUnVuTGVuZ3RoRGVjb2RlIjpyZXR1cm4gbmV3IFJ1bkxlbmd0aFN0cmVhbShlLGkpO2Nhc2UiSkJJRzJEZWNvZGUiOnJldHVybiBuZXcgSmJpZzJTdHJlYW0oZSxpLGEpfXdhcm4oYEZpbHRlciAiJHt0fSIgaXMgbm90IHN1cHBvcnRlZC5gKTtyZXR1cm4gZX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pdGhyb3cgZTt3YXJuKGBJbnZhbGlkIHN0cmVhbTogIiR7ZX0iYCk7cmV0dXJuIG5ldyBOdWxsU3RyZWFtfX19Y29uc3Qgc2k9WzEsMCwwLDAsMCwwLDAsMCwwLDEsMSwwLDEsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDAsMiwwLDAsMiwyLDAsMCwwLDAsMCwyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIsMCwyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMiwwLDIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIsMCwyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDBdO2Z1bmN0aW9uIHRvSGV4RGlnaXQoZSl7cmV0dXJuIGU+PTQ4JiZlPD01Nz8xNSZlOmU+PTY1JiZlPD03MHx8ZT49OTcmJmU8PTEwMj85KygxNSZlKTotMX1jbGFzcyBMZXhlcntjb25zdHJ1Y3RvcihlLHQ9bnVsbCl7dGhpcy5zdHJlYW09ZTt0aGlzLm5leHRDaGFyKCk7dGhpcy5zdHJCdWY9W107dGhpcy5rbm93bkNvbW1hbmRzPXQ7dGhpcy5faGV4U3RyaW5nTnVtV2Fybj0wO3RoaXMuYmVnaW5JbmxpbmVJbWFnZVBvcz0tMX1uZXh0Q2hhcigpe3JldHVybiB0aGlzLmN1cnJlbnRDaGFyPXRoaXMuc3RyZWFtLmdldEJ5dGUoKX1wZWVrQ2hhcigpe3JldHVybiB0aGlzLnN0cmVhbS5wZWVrQnl0ZSgpfWdldE51bWJlcigpe2xldCBlPXRoaXMuY3VycmVudENoYXIsdD0hMSxpPTAsYT0xO2lmKDQ1PT09ZSl7YT0tMTtlPXRoaXMubmV4dENoYXIoKTs0NT09PWUmJihlPXRoaXMubmV4dENoYXIoKSl9ZWxzZSA0Mz09PWUmJihlPXRoaXMubmV4dENoYXIoKSk7aWYoMTA9PT1lfHwxMz09PWUpZG97ZT10aGlzLm5leHRDaGFyKCl9d2hpbGUoMTA9PT1lfHwxMz09PWUpO2lmKDQ2PT09ZSl7aT0xMDtlPXRoaXMubmV4dENoYXIoKX1pZihlPDQ4fHxlPjU3KXtjb25zdCB0PWBJbnZhbGlkIG51bWJlcjogJHtTdHJpbmcuZnJvbUNoYXJDb2RlKGUpfSAoY2hhckNvZGUgJHtlfSlgO2lmKGlzV2hpdGVTcGFjZShlKXx8LTE9PT1lKXtpbmZvKGBMZXhlci5nZXROdW1iZXIgLSAiJHt0fSIuYCk7cmV0dXJuIDB9dGhyb3cgbmV3IEZvcm1hdEVycm9yKHQpfWxldCByPWUtNDgscz0wLG49MTtmb3IoOyhlPXRoaXMubmV4dENoYXIoKSk+PTA7KWlmKGU+PTQ4JiZlPD01Nyl7Y29uc3QgYT1lLTQ4O2lmKHQpcz0xMCpzK2E7ZWxzZXswIT09aSYmKGkqPTEwKTtyPTEwKnIrYX19ZWxzZSBpZig0Nj09PWUpe2lmKDAhPT1pKWJyZWFrO2k9MX1lbHNlIGlmKDQ1PT09ZSl3YXJuKCJCYWRseSBmb3JtYXR0ZWQgbnVtYmVyOiBtaW51cyBzaWduIGluIHRoZSBtaWRkbGUiKTtlbHNle2lmKDY5IT09ZSYmMTAxIT09ZSlicmVhaztlPXRoaXMucGVla0NoYXIoKTtpZig0Mz09PWV8fDQ1PT09ZSl7bj00NT09PWU/LTE6MTt0aGlzLm5leHRDaGFyKCl9ZWxzZSBpZihlPDQ4fHxlPjU3KWJyZWFrO3Q9ITB9MCE9PWkmJihyLz1pKTt0JiYocio9MTAqKihuKnMpKTtyZXR1cm4gYSpyfWdldFN0cmluZygpe2xldCBlPTEsdD0hMTtjb25zdCBpPXRoaXMuc3RyQnVmO2kubGVuZ3RoPTA7bGV0IGE9dGhpcy5uZXh0Q2hhcigpO2Zvcig7Oyl7bGV0IHI9ITE7c3dpdGNoKDB8YSl7Y2FzZS0xOndhcm4oIlVudGVybWluYXRlZCBzdHJpbmciKTt0PSEwO2JyZWFrO2Nhc2UgNDA6KytlO2kucHVzaCgiKCIpO2JyZWFrO2Nhc2UgNDE6aWYoMD09LS1lKXt0aGlzLm5leHRDaGFyKCk7dD0hMH1lbHNlIGkucHVzaCgiKSIpO2JyZWFrO2Nhc2UgOTI6YT10aGlzLm5leHRDaGFyKCk7c3dpdGNoKGEpe2Nhc2UtMTp3YXJuKCJVbnRlcm1pbmF0ZWQgc3RyaW5nIik7dD0hMDticmVhaztjYXNlIDExMDppLnB1c2goIlxuIik7YnJlYWs7Y2FzZSAxMTQ6aS5wdXNoKCJcciIpO2JyZWFrO2Nhc2UgMTE2OmkucHVzaCgiXHQiKTticmVhaztjYXNlIDk4OmkucHVzaCgiXGIiKTticmVhaztjYXNlIDEwMjppLnB1c2goIlxmIik7YnJlYWs7Y2FzZSA5MjpjYXNlIDQwOmNhc2UgNDE6aS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYSkpO2JyZWFrO2Nhc2UgNDg6Y2FzZSA0OTpjYXNlIDUwOmNhc2UgNTE6Y2FzZSA1MjpjYXNlIDUzOmNhc2UgNTQ6Y2FzZSA1NTpsZXQgZT0xNSZhO2E9dGhpcy5uZXh0Q2hhcigpO3I9ITA7aWYoYT49NDgmJmE8PTU1KXtlPShlPDwzKSsoMTUmYSk7YT10aGlzLm5leHRDaGFyKCk7aWYoYT49NDgmJmE8PTU1KXtyPSExO2U9KGU8PDMpKygxNSZhKX19aS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoZSkpO2JyZWFrO2Nhc2UgMTM6MTA9PT10aGlzLnBlZWtDaGFyKCkmJnRoaXMubmV4dENoYXIoKTticmVhaztjYXNlIDEwOmJyZWFrO2RlZmF1bHQ6aS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYSkpfWJyZWFrO2RlZmF1bHQ6aS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYSkpfWlmKHQpYnJlYWs7cnx8KGE9dGhpcy5uZXh0Q2hhcigpKX1yZXR1cm4gaS5qb2luKCIiKX1nZXROYW1lKCl7bGV0IGUsdDtjb25zdCBpPXRoaXMuc3RyQnVmO2kubGVuZ3RoPTA7Zm9yKDsoZT10aGlzLm5leHRDaGFyKCkpPj0wJiYhc2lbZV07KWlmKDM1PT09ZSl7ZT10aGlzLm5leHRDaGFyKCk7aWYoc2lbZV0pe3dhcm4oIkxleGVyX2dldE5hbWU6IE5VTUJFUiBTSUdOICgjKSBzaG91bGQgYmUgZm9sbG93ZWQgYnkgYSBoZXhhZGVjaW1hbCBudW1iZXIuIik7aS5wdXNoKCIjIik7YnJlYWt9Y29uc3QgYT10b0hleERpZ2l0KGUpO2lmKC0xIT09YSl7dD1lO2U9dGhpcy5uZXh0Q2hhcigpO2NvbnN0IHI9dG9IZXhEaWdpdChlKTtpZigtMT09PXIpe3dhcm4oYExleGVyX2dldE5hbWU6IElsbGVnYWwgZGlnaXQgKCR7U3RyaW5nLmZyb21DaGFyQ29kZShlKX0pIGluIGhleGFkZWNpbWFsIG51bWJlci5gKTtpLnB1c2goIiMiLFN0cmluZy5mcm9tQ2hhckNvZGUodCkpO2lmKHNpW2VdKWJyZWFrO2kucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKTtjb250aW51ZX1pLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShhPDw0fHIpKX1lbHNlIGkucHVzaCgiIyIsU3RyaW5nLmZyb21DaGFyQ29kZShlKSl9ZWxzZSBpLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShlKSk7aS5sZW5ndGg+MTI3JiZ3YXJuKGBOYW1lIHRva2VuIGlzIGxvbmdlciB0aGFuIGFsbG93ZWQgYnkgdGhlIHNwZWM6ICR7aS5sZW5ndGh9YCk7cmV0dXJuIE5hbWUuZ2V0KGkuam9pbigiIikpfV9oZXhTdHJpbmdXYXJuKGUpezUhPXRoaXMuX2hleFN0cmluZ051bVdhcm4rKz90aGlzLl9oZXhTdHJpbmdOdW1XYXJuPjV8fHdhcm4oYGdldEhleFN0cmluZyAtIGlnbm9yaW5nIGludmFsaWQgY2hhcmFjdGVyOiAke2V9YCk6d2FybigiZ2V0SGV4U3RyaW5nIC0gaWdub3JpbmcgYWRkaXRpb25hbCBpbnZhbGlkIGNoYXJhY3RlcnMuIil9Z2V0SGV4U3RyaW5nKCl7Y29uc3QgZT10aGlzLnN0ckJ1ZjtlLmxlbmd0aD0wO2xldCB0PXRoaXMuY3VycmVudENoYXIsaT0tMSxhPS0xO3RoaXMuX2hleFN0cmluZ051bVdhcm49MDtmb3IoOzspe2lmKHQ8MCl7d2FybigiVW50ZXJtaW5hdGVkIGhleCBzdHJpbmciKTticmVha31pZig2Mj09PXQpe3RoaXMubmV4dENoYXIoKTticmVha31pZigxIT09c2lbdF0pe2E9dG9IZXhEaWdpdCh0KTtpZigtMT09PWEpdGhpcy5faGV4U3RyaW5nV2Fybih0KTtlbHNlIGlmKC0xPT09aSlpPWE7ZWxzZXtlLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShpPDw0fGEpKTtpPS0xfXQ9dGhpcy5uZXh0Q2hhcigpfWVsc2UgdD10aGlzLm5leHRDaGFyKCl9LTEhPT1pJiZlLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShpPDw0KSk7cmV0dXJuIGUuam9pbigiIil9Z2V0T2JqKCl7bGV0IGU9ITEsdD10aGlzLmN1cnJlbnRDaGFyO2Zvcig7Oyl7aWYodDwwKXJldHVybiBFdDtpZihlKTEwIT09dCYmMTMhPT10fHwoZT0hMSk7ZWxzZSBpZigzNz09PXQpZT0hMDtlbHNlIGlmKDEhPT1zaVt0XSlicmVhazt0PXRoaXMubmV4dENoYXIoKX1zd2l0Y2goMHx0KXtjYXNlIDQ4OmNhc2UgNDk6Y2FzZSA1MDpjYXNlIDUxOmNhc2UgNTI6Y2FzZSA1MzpjYXNlIDU0OmNhc2UgNTU6Y2FzZSA1NjpjYXNlIDU3OmNhc2UgNDM6Y2FzZSA0NTpjYXNlIDQ2OnJldHVybiB0aGlzLmdldE51bWJlcigpO2Nhc2UgNDA6cmV0dXJuIHRoaXMuZ2V0U3RyaW5nKCk7Y2FzZSA0NzpyZXR1cm4gdGhpcy5nZXROYW1lKCk7Y2FzZSA5MTp0aGlzLm5leHRDaGFyKCk7cmV0dXJuIENtZC5nZXQoIlsiKTtjYXNlIDkzOnRoaXMubmV4dENoYXIoKTtyZXR1cm4gQ21kLmdldCgiXSIpO2Nhc2UgNjA6dD10aGlzLm5leHRDaGFyKCk7aWYoNjA9PT10KXt0aGlzLm5leHRDaGFyKCk7cmV0dXJuIENtZC5nZXQoIjw8Iil9cmV0dXJuIHRoaXMuZ2V0SGV4U3RyaW5nKCk7Y2FzZSA2Mjp0PXRoaXMubmV4dENoYXIoKTtpZig2Mj09PXQpe3RoaXMubmV4dENoYXIoKTtyZXR1cm4gQ21kLmdldCgiPj4iKX1yZXR1cm4gQ21kLmdldCgiPiIpO2Nhc2UgMTIzOnRoaXMubmV4dENoYXIoKTtyZXR1cm4gQ21kLmdldCgieyIpO2Nhc2UgMTI1OnRoaXMubmV4dENoYXIoKTtyZXR1cm4gQ21kLmdldCgifSIpO2Nhc2UgNDE6dGhpcy5uZXh0Q2hhcigpO3Rocm93IG5ldyBGb3JtYXRFcnJvcihgSWxsZWdhbCBjaGFyYWN0ZXI6ICR7dH1gKX1sZXQgaT1TdHJpbmcuZnJvbUNoYXJDb2RlKHQpO2lmKHQ8MzJ8fHQ+MTI3KXtjb25zdCBlPXRoaXMucGVla0NoYXIoKTtpZihlPj0zMiYmZTw9MTI3KXt0aGlzLm5leHRDaGFyKCk7cmV0dXJuIENtZC5nZXQoaSl9fWNvbnN0IGE9dGhpcy5rbm93bkNvbW1hbmRzO2xldCByPXZvaWQgMCE9PWE/LltpXTtmb3IoOyh0PXRoaXMubmV4dENoYXIoKSk+PTAmJiFzaVt0XTspe2NvbnN0IGU9aStTdHJpbmcuZnJvbUNoYXJDb2RlKHQpO2lmKHImJnZvaWQgMD09PWFbZV0pYnJlYWs7aWYoMTI4PT09aS5sZW5ndGgpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBDb21tYW5kIHRva2VuIHRvbyBsb25nOiAke2kubGVuZ3RofWApO2k9ZTtyPXZvaWQgMCE9PWE/LltpXX1pZigidHJ1ZSI9PT1pKXJldHVybiEwO2lmKCJmYWxzZSI9PT1pKXJldHVybiExO2lmKCJudWxsIj09PWkpcmV0dXJuIG51bGw7IkJJIj09PWkmJih0aGlzLmJlZ2luSW5saW5lSW1hZ2VQb3M9dGhpcy5zdHJlYW0ucG9zKTtyZXR1cm4gQ21kLmdldChpKX1za2lwVG9OZXh0TGluZSgpe2xldCBlPXRoaXMuY3VycmVudENoYXI7Zm9yKDtlPj0wOyl7aWYoMTM9PT1lKXtlPXRoaXMubmV4dENoYXIoKTsxMD09PWUmJnRoaXMubmV4dENoYXIoKTticmVha31pZigxMD09PWUpe3RoaXMubmV4dENoYXIoKTticmVha31lPXRoaXMubmV4dENoYXIoKX19fWNsYXNzIExpbmVhcml6YXRpb257c3RhdGljIGNyZWF0ZShlKXtmdW5jdGlvbiBnZXRJbnQoZSx0LGk9ITEpe2NvbnN0IGE9ZS5nZXQodCk7aWYoTnVtYmVyLmlzSW50ZWdlcihhKSYmKGk/YT49MDphPjApKXJldHVybiBhO3Rocm93IG5ldyBFcnJvcihgVGhlICIke3R9IiBwYXJhbWV0ZXIgaW4gdGhlIGxpbmVhcml6YXRpb24gZGljdGlvbmFyeSBpcyBpbnZhbGlkLmApfWNvbnN0IHQ9bmV3IFBhcnNlcih7bGV4ZXI6bmV3IExleGVyKGUpLHhyZWY6bnVsbH0pLGk9dC5nZXRPYmooKSxhPXQuZ2V0T2JqKCkscj10LmdldE9iaigpLHM9dC5nZXRPYmooKTtsZXQgbixvO2lmKCEoTnVtYmVyLmlzSW50ZWdlcihpKSYmTnVtYmVyLmlzSW50ZWdlcihhKSYmaXNDbWQociwib2JqIikmJnMgaW5zdGFuY2VvZiBEaWN0JiYibnVtYmVyIj09dHlwZW9mKG49cy5nZXQoIkxpbmVhcml6ZWQiKSkmJm4+MCkpcmV0dXJuIG51bGw7aWYoKG89Z2V0SW50KHMsIkwiKSkhPT1lLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoJ1RoZSAiTCIgcGFyYW1ldGVyIGluIHRoZSBsaW5lYXJpemF0aW9uIGRpY3Rpb25hcnkgZG9lcyBub3QgZXF1YWwgdGhlIHN0cmVhbSBsZW5ndGguJyk7cmV0dXJue2xlbmd0aDpvLGhpbnRzOmZ1bmN0aW9uIGdldEhpbnRzKGUpe2NvbnN0IHQ9ZS5nZXQoIkgiKTtsZXQgaTtpZihBcnJheS5pc0FycmF5KHQpJiYoMj09PShpPXQubGVuZ3RoKXx8ND09PWkpKXtmb3IobGV0IGU9MDtlPGk7ZSsrKXtjb25zdCBpPXRbZV07aWYoIShOdW1iZXIuaXNJbnRlZ2VyKGkpJiZpPjApKXRocm93IG5ldyBFcnJvcihgSGludCAoJHtlfSkgaW4gdGhlIGxpbmVhcml6YXRpb24gZGljdGlvbmFyeSBpcyBpbnZhbGlkLmApfXJldHVybiB0fXRocm93IG5ldyBFcnJvcigiSGludCBhcnJheSBpbiB0aGUgbGluZWFyaXphdGlvbiBkaWN0aW9uYXJ5IGlzIGludmFsaWQuIil9KHMpLG9iamVjdE51bWJlckZpcnN0OmdldEludChzLCJPIiksZW5kRmlyc3Q6Z2V0SW50KHMsIkUiKSxudW1QYWdlczpnZXRJbnQocywiTiIpLG1haW5YUmVmRW50cmllc09mZnNldDpnZXRJbnQocywiVCIpLHBhZ2VGaXJzdDpzLmhhcygiUCIpP2dldEludChzLCJQIiwhMCk6MH19fWNvbnN0IG5pPVsiQWRvYmUtR0IxLVVDUzIiLCJBZG9iZS1DTlMxLVVDUzIiLCJBZG9iZS1KYXBhbjEtVUNTMiIsIkFkb2JlLUtvcmVhMS1VQ1MyIiwiNzgtRVVDLUgiLCI3OC1FVUMtViIsIjc4LUgiLCI3OC1SS1NKLUgiLCI3OC1SS1NKLVYiLCI3OC1WIiwiNzhtcy1SS1NKLUgiLCI3OG1zLVJLU0otViIsIjgzcHYtUktTSi1IIiwiOTBtcy1SS1NKLUgiLCI5MG1zLVJLU0otViIsIjkwbXNwLVJLU0otSCIsIjkwbXNwLVJLU0otViIsIjkwcHYtUktTSi1IIiwiOTBwdi1SS1NKLVYiLCJBZGQtSCIsIkFkZC1SS1NKLUgiLCJBZGQtUktTSi1WIiwiQWRkLVYiLCJBZG9iZS1DTlMxLTAiLCJBZG9iZS1DTlMxLTEiLCJBZG9iZS1DTlMxLTIiLCJBZG9iZS1DTlMxLTMiLCJBZG9iZS1DTlMxLTQiLCJBZG9iZS1DTlMxLTUiLCJBZG9iZS1DTlMxLTYiLCJBZG9iZS1HQjEtMCIsIkFkb2JlLUdCMS0xIiwiQWRvYmUtR0IxLTIiLCJBZG9iZS1HQjEtMyIsIkFkb2JlLUdCMS00IiwiQWRvYmUtR0IxLTUiLCJBZG9iZS1KYXBhbjEtMCIsIkFkb2JlLUphcGFuMS0xIiwiQWRvYmUtSmFwYW4xLTIiLCJBZG9iZS1KYXBhbjEtMyIsIkFkb2JlLUphcGFuMS00IiwiQWRvYmUtSmFwYW4xLTUiLCJBZG9iZS1KYXBhbjEtNiIsIkFkb2JlLUtvcmVhMS0wIiwiQWRvYmUtS29yZWExLTEiLCJBZG9iZS1Lb3JlYTEtMiIsIkI1LUgiLCJCNS1WIiwiQjVwYy1IIiwiQjVwYy1WIiwiQ05TLUVVQy1IIiwiQ05TLUVVQy1WIiwiQ05TMS1IIiwiQ05TMS1WIiwiQ05TMi1IIiwiQ05TMi1WIiwiRVRISy1CNS1IIiwiRVRISy1CNS1WIiwiRVRlbi1CNS1IIiwiRVRlbi1CNS1WIiwiRVRlbm1zLUI1LUgiLCJFVGVubXMtQjUtViIsIkVVQy1IIiwiRVVDLVYiLCJFeHQtSCIsIkV4dC1SS1NKLUgiLCJFeHQtUktTSi1WIiwiRXh0LVYiLCJHQi1FVUMtSCIsIkdCLUVVQy1WIiwiR0ItSCIsIkdCLVYiLCJHQkstRVVDLUgiLCJHQkstRVVDLVYiLCJHQksySy1IIiwiR0JLMkstViIsIkdCS3AtRVVDLUgiLCJHQktwLUVVQy1WIiwiR0JULUVVQy1IIiwiR0JULUVVQy1WIiwiR0JULUgiLCJHQlQtViIsIkdCVHBjLUVVQy1IIiwiR0JUcGMtRVVDLVYiLCJHQnBjLUVVQy1IIiwiR0JwYy1FVUMtViIsIkgiLCJIS2RsYS1CNS1IIiwiSEtkbGEtQjUtViIsIkhLZGxiLUI1LUgiLCJIS2RsYi1CNS1WIiwiSEtnY2NzLUI1LUgiLCJIS2djY3MtQjUtViIsIkhLbTMxNC1CNS1IIiwiSEttMzE0LUI1LVYiLCJIS200NzEtQjUtSCIsIkhLbTQ3MS1CNS1WIiwiSEtzY3MtQjUtSCIsIkhLc2NzLUI1LVYiLCJIYW5rYWt1IiwiSGlyYWdhbmEiLCJLU0MtRVVDLUgiLCJLU0MtRVVDLVYiLCJLU0MtSCIsIktTQy1Kb2hhYi1IIiwiS1NDLUpvaGFiLVYiLCJLU0MtViIsIktTQ21zLVVIQy1IIiwiS1NDbXMtVUhDLUhXLUgiLCJLU0Ntcy1VSEMtSFctViIsIktTQ21zLVVIQy1WIiwiS1NDcGMtRVVDLUgiLCJLU0NwYy1FVUMtViIsIkthdGFrYW5hIiwiTldQLUgiLCJOV1AtViIsIlJLU0otSCIsIlJLU0otViIsIlJvbWFuIiwiVW5pQ05TLVVDUzItSCIsIlVuaUNOUy1VQ1MyLVYiLCJVbmlDTlMtVVRGMTYtSCIsIlVuaUNOUy1VVEYxNi1WIiwiVW5pQ05TLVVURjMyLUgiLCJVbmlDTlMtVVRGMzItViIsIlVuaUNOUy1VVEY4LUgiLCJVbmlDTlMtVVRGOC1WIiwiVW5pR0ItVUNTMi1IIiwiVW5pR0ItVUNTMi1WIiwiVW5pR0ItVVRGMTYtSCIsIlVuaUdCLVVURjE2LVYiLCJVbmlHQi1VVEYzMi1IIiwiVW5pR0ItVVRGMzItViIsIlVuaUdCLVVURjgtSCIsIlVuaUdCLVVURjgtViIsIlVuaUpJUy1VQ1MyLUgiLCJVbmlKSVMtVUNTMi1IVy1IIiwiVW5pSklTLVVDUzItSFctViIsIlVuaUpJUy1VQ1MyLVYiLCJVbmlKSVMtVVRGMTYtSCIsIlVuaUpJUy1VVEYxNi1WIiwiVW5pSklTLVVURjMyLUgiLCJVbmlKSVMtVVRGMzItViIsIlVuaUpJUy1VVEY4LUgiLCJVbmlKSVMtVVRGOC1WIiwiVW5pSklTMjAwNC1VVEYxNi1IIiwiVW5pSklTMjAwNC1VVEYxNi1WIiwiVW5pSklTMjAwNC1VVEYzMi1IIiwiVW5pSklTMjAwNC1VVEYzMi1WIiwiVW5pSklTMjAwNC1VVEY4LUgiLCJVbmlKSVMyMDA0LVVURjgtViIsIlVuaUpJU1Byby1VQ1MyLUhXLVYiLCJVbmlKSVNQcm8tVUNTMi1WIiwiVW5pSklTUHJvLVVURjgtViIsIlVuaUpJU1gwMjEzLVVURjMyLUgiLCJVbmlKSVNYMDIxMy1VVEYzMi1WIiwiVW5pSklTWDAyMTMyMDA0LVVURjMyLUgiLCJVbmlKSVNYMDIxMzIwMDQtVVRGMzItViIsIlVuaUtTLVVDUzItSCIsIlVuaUtTLVVDUzItViIsIlVuaUtTLVVURjE2LUgiLCJVbmlLUy1VVEYxNi1WIiwiVW5pS1MtVVRGMzItSCIsIlVuaUtTLVVURjMyLVYiLCJVbmlLUy1VVEY4LUgiLCJVbmlLUy1VVEY4LVYiLCJWIiwiV1AtU3ltYm9sIl0sb2k9MioqMjQtMTtjbGFzcyBDTWFwe2NvbnN0cnVjdG9yKGU9ITEpe3RoaXMuY29kZXNwYWNlUmFuZ2VzPVtbXSxbXSxbXSxbXV07dGhpcy5udW1Db2Rlc3BhY2VSYW5nZXM9MDt0aGlzLl9tYXA9W107dGhpcy5uYW1lPSIiO3RoaXMudmVydGljYWw9ITE7dGhpcy51c2VDTWFwPW51bGw7dGhpcy5idWlsdEluQ01hcD1lfWFkZENvZGVzcGFjZVJhbmdlKGUsdCxpKXt0aGlzLmNvZGVzcGFjZVJhbmdlc1tlLTFdLnB1c2godCxpKTt0aGlzLm51bUNvZGVzcGFjZVJhbmdlcysrfW1hcENpZFJhbmdlKGUsdCxpKXtpZih0LWU+b2kpdGhyb3cgbmV3IEVycm9yKCJtYXBDaWRSYW5nZSAtIGlnbm9yaW5nIGRhdGEgYWJvdmUgTUFYX01BUF9SQU5HRS4iKTtmb3IoO2U8PXQ7KXRoaXMuX21hcFtlKytdPWkrK31tYXBCZlJhbmdlKGUsdCxpKXtpZih0LWU+b2kpdGhyb3cgbmV3IEVycm9yKCJtYXBCZlJhbmdlIC0gaWdub3JpbmcgZGF0YSBhYm92ZSBNQVhfTUFQX1JBTkdFLiIpO2NvbnN0IGE9aS5sZW5ndGgtMTtmb3IoO2U8PXQ7KXt0aGlzLl9tYXBbZSsrXT1pO2NvbnN0IHQ9aS5jaGFyQ29kZUF0KGEpKzE7dD4yNTU/aT1pLnN1YnN0cmluZygwLGEtMSkrU3RyaW5nLmZyb21DaGFyQ29kZShpLmNoYXJDb2RlQXQoYS0xKSsxKSsiXDAiOmk9aS5zdWJzdHJpbmcoMCxhKStTdHJpbmcuZnJvbUNoYXJDb2RlKHQpfX1tYXBCZlJhbmdlVG9BcnJheShlLHQsaSl7aWYodC1lPm9pKXRocm93IG5ldyBFcnJvcigibWFwQmZSYW5nZVRvQXJyYXkgLSBpZ25vcmluZyBkYXRhIGFib3ZlIE1BWF9NQVBfUkFOR0UuIik7Y29uc3QgYT1pLmxlbmd0aDtsZXQgcj0wO2Zvcig7ZTw9dCYmcjxhOyl7dGhpcy5fbWFwW2VdPWlbcisrXTsrK2V9fW1hcE9uZShlLHQpe3RoaXMuX21hcFtlXT10fWxvb2t1cChlKXtyZXR1cm4gdGhpcy5fbWFwW2VdfWNvbnRhaW5zKGUpe3JldHVybiB2b2lkIDAhPT10aGlzLl9tYXBbZV19Zm9yRWFjaChlKXtjb25zdCB0PXRoaXMuX21hcCxpPXQubGVuZ3RoO2lmKGk8PTY1NTM2KWZvcihsZXQgYT0wO2E8aTthKyspdm9pZCAwIT09dFthXSYmZShhLHRbYV0pO2Vsc2UgZm9yKGNvbnN0IGkgaW4gdCllKGksdFtpXSl9Y2hhckNvZGVPZihlKXtjb25zdCB0PXRoaXMuX21hcDtpZih0Lmxlbmd0aDw9NjU1MzYpcmV0dXJuIHQuaW5kZXhPZihlKTtmb3IoY29uc3QgaSBpbiB0KWlmKHRbaV09PT1lKXJldHVybiAwfGk7cmV0dXJuLTF9Z2V0TWFwKCl7cmV0dXJuIHRoaXMuX21hcH1yZWFkQ2hhckNvZGUoZSx0LGkpe2xldCBhPTA7Y29uc3Qgcj10aGlzLmNvZGVzcGFjZVJhbmdlcztmb3IobGV0IHM9MCxuPXIubGVuZ3RoO3M8bjtzKyspe2E9KGE8PDh8ZS5jaGFyQ29kZUF0KHQrcykpPj4+MDtjb25zdCBuPXJbc107Zm9yKGxldCBlPTAsdD1uLmxlbmd0aDtlPHQ7KXtjb25zdCB0PW5bZSsrXSxyPW5bZSsrXTtpZihhPj10JiZhPD1yKXtpLmNoYXJjb2RlPWE7aS5sZW5ndGg9cysxO3JldHVybn19fWkuY2hhcmNvZGU9MDtpLmxlbmd0aD0xfWdldENoYXJDb2RlTGVuZ3RoKGUpe2NvbnN0IHQ9dGhpcy5jb2Rlc3BhY2VSYW5nZXM7Zm9yKGxldCBpPTAsYT10Lmxlbmd0aDtpPGE7aSsrKXtjb25zdCBhPXRbaV07Zm9yKGxldCB0PTAscj1hLmxlbmd0aDt0PHI7KXtjb25zdCByPWFbdCsrXSxzPWFbdCsrXTtpZihlPj1yJiZlPD1zKXJldHVybiBpKzF9fXJldHVybiAxfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5fbWFwLmxlbmd0aH1nZXQgaXNJZGVudGl0eUNNYXAoKXtpZigiSWRlbnRpdHktSCIhPT10aGlzLm5hbWUmJiJJZGVudGl0eS1WIiE9PXRoaXMubmFtZSlyZXR1cm4hMTtpZig2NTUzNiE9PXRoaXMuX21hcC5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBlPTA7ZTw2NTUzNjtlKyspaWYodGhpcy5fbWFwW2VdIT09ZSlyZXR1cm4hMTtyZXR1cm4hMH19Y2xhc3MgSWRlbnRpdHlDTWFwIGV4dGVuZHMgQ01hcHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKCk7dGhpcy52ZXJ0aWNhbD1lO3RoaXMuYWRkQ29kZXNwYWNlUmFuZ2UodCwwLDY1NTM1KX1tYXBDaWRSYW5nZShlLHQsaSl7dW5yZWFjaGFibGUoInNob3VsZCBub3QgY2FsbCBtYXBDaWRSYW5nZSIpfW1hcEJmUmFuZ2UoZSx0LGkpe3VucmVhY2hhYmxlKCJzaG91bGQgbm90IGNhbGwgbWFwQmZSYW5nZSIpfW1hcEJmUmFuZ2VUb0FycmF5KGUsdCxpKXt1bnJlYWNoYWJsZSgic2hvdWxkIG5vdCBjYWxsIG1hcEJmUmFuZ2VUb0FycmF5Iil9bWFwT25lKGUsdCl7dW5yZWFjaGFibGUoInNob3VsZCBub3QgY2FsbCBtYXBDaWRPbmUiKX1sb29rdXAoZSl7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoZSkmJmU8PTY1NTM1P2U6dm9pZCAwfWNvbnRhaW5zKGUpe3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKGUpJiZlPD02NTUzNX1mb3JFYWNoKGUpe2ZvcihsZXQgdD0wO3Q8PTY1NTM1O3QrKyllKHQsdCl9Y2hhckNvZGVPZihlKXtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihlKSYmZTw9NjU1MzU/ZTotMX1nZXRNYXAoKXtjb25zdCBlPW5ldyBBcnJheSg2NTUzNik7Zm9yKGxldCB0PTA7dDw9NjU1MzU7dCsrKWVbdF09dDtyZXR1cm4gZX1nZXQgbGVuZ3RoKCl7cmV0dXJuIDY1NTM2fWdldCBpc0lkZW50aXR5Q01hcCgpe3VucmVhY2hhYmxlKCJzaG91bGQgbm90IGFjY2VzcyAuaXNJZGVudGl0eUNNYXAiKX19ZnVuY3Rpb24gc3RyVG9JbnQoZSl7bGV0IHQ9MDtmb3IobGV0IGk9MDtpPGUubGVuZ3RoO2krKyl0PXQ8PDh8ZS5jaGFyQ29kZUF0KGkpO3JldHVybiB0Pj4+MH1mdW5jdGlvbiBleHBlY3RTdHJpbmcoZSl7aWYoInN0cmluZyIhPXR5cGVvZiBlKXRocm93IG5ldyBGb3JtYXRFcnJvcigiTWFsZm9ybWVkIENNYXA6IGV4cGVjdGVkIHN0cmluZy4iKX1mdW5jdGlvbiBleHBlY3RJbnQoZSl7aWYoIU51bWJlci5pc0ludGVnZXIoZSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJNYWxmb3JtZWQgQ01hcDogZXhwZWN0ZWQgaW50LiIpfWZ1bmN0aW9uIHBhcnNlQmZDaGFyKGUsdCl7Zm9yKDs7KXtsZXQgaT10LmdldE9iaigpO2lmKGk9PT1FdClicmVhaztpZihpc0NtZChpLCJlbmRiZmNoYXIiKSlyZXR1cm47ZXhwZWN0U3RyaW5nKGkpO2NvbnN0IGE9c3RyVG9JbnQoaSk7aT10LmdldE9iaigpO2V4cGVjdFN0cmluZyhpKTtjb25zdCByPWk7ZS5tYXBPbmUoYSxyKX19ZnVuY3Rpb24gcGFyc2VCZlJhbmdlKGUsdCl7Zm9yKDs7KXtsZXQgaT10LmdldE9iaigpO2lmKGk9PT1FdClicmVhaztpZihpc0NtZChpLCJlbmRiZnJhbmdlIikpcmV0dXJuO2V4cGVjdFN0cmluZyhpKTtjb25zdCBhPXN0clRvSW50KGkpO2k9dC5nZXRPYmooKTtleHBlY3RTdHJpbmcoaSk7Y29uc3Qgcj1zdHJUb0ludChpKTtpPXQuZ2V0T2JqKCk7aWYoTnVtYmVyLmlzSW50ZWdlcihpKXx8InN0cmluZyI9PXR5cGVvZiBpKXtjb25zdCB0PU51bWJlci5pc0ludGVnZXIoaSk/U3RyaW5nLmZyb21DaGFyQ29kZShpKTppO2UubWFwQmZSYW5nZShhLHIsdCl9ZWxzZXtpZighaXNDbWQoaSwiWyIpKWJyZWFrO3tpPXQuZ2V0T2JqKCk7Y29uc3Qgcz1bXTtmb3IoOyFpc0NtZChpLCJdIikmJmkhPT1FdDspe3MucHVzaChpKTtpPXQuZ2V0T2JqKCl9ZS5tYXBCZlJhbmdlVG9BcnJheShhLHIscyl9fX10aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgYmYgcmFuZ2UuIil9ZnVuY3Rpb24gcGFyc2VDaWRDaGFyKGUsdCl7Zm9yKDs7KXtsZXQgaT10LmdldE9iaigpO2lmKGk9PT1FdClicmVhaztpZihpc0NtZChpLCJlbmRjaWRjaGFyIikpcmV0dXJuO2V4cGVjdFN0cmluZyhpKTtjb25zdCBhPXN0clRvSW50KGkpO2k9dC5nZXRPYmooKTtleHBlY3RJbnQoaSk7Y29uc3Qgcj1pO2UubWFwT25lKGEscil9fWZ1bmN0aW9uIHBhcnNlQ2lkUmFuZ2UoZSx0KXtmb3IoOzspe2xldCBpPXQuZ2V0T2JqKCk7aWYoaT09PUV0KWJyZWFrO2lmKGlzQ21kKGksImVuZGNpZHJhbmdlIikpcmV0dXJuO2V4cGVjdFN0cmluZyhpKTtjb25zdCBhPXN0clRvSW50KGkpO2k9dC5nZXRPYmooKTtleHBlY3RTdHJpbmcoaSk7Y29uc3Qgcj1zdHJUb0ludChpKTtpPXQuZ2V0T2JqKCk7ZXhwZWN0SW50KGkpO2NvbnN0IHM9aTtlLm1hcENpZFJhbmdlKGEscixzKX19ZnVuY3Rpb24gcGFyc2VDb2Rlc3BhY2VSYW5nZShlLHQpe2Zvcig7Oyl7bGV0IGk9dC5nZXRPYmooKTtpZihpPT09RXQpYnJlYWs7aWYoaXNDbWQoaSwiZW5kY29kZXNwYWNlcmFuZ2UiKSlyZXR1cm47aWYoInN0cmluZyIhPXR5cGVvZiBpKWJyZWFrO2NvbnN0IGE9c3RyVG9JbnQoaSk7aT10LmdldE9iaigpO2lmKCJzdHJpbmciIT10eXBlb2YgaSlicmVhaztjb25zdCByPXN0clRvSW50KGkpO2UuYWRkQ29kZXNwYWNlUmFuZ2UoaS5sZW5ndGgsYSxyKX10aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgY29kZXNwYWNlIHJhbmdlLiIpfWZ1bmN0aW9uIHBhcnNlV01vZGUoZSx0KXtjb25zdCBpPXQuZ2V0T2JqKCk7TnVtYmVyLmlzSW50ZWdlcihpKSYmKGUudmVydGljYWw9ISFpKX1mdW5jdGlvbiBwYXJzZUNNYXBOYW1lKGUsdCl7Y29uc3QgaT10LmdldE9iaigpO2kgaW5zdGFuY2VvZiBOYW1lJiYoZS5uYW1lPWkubmFtZSl9YXN5bmMgZnVuY3Rpb24gcGFyc2VDTWFwKGUsdCxpLGEpe2xldCByLHM7QTpmb3IoOzspdHJ5e2NvbnN0IGk9dC5nZXRPYmooKTtpZihpPT09RXQpYnJlYWs7aWYoaSBpbnN0YW5jZW9mIE5hbWUpeyJXTW9kZSI9PT1pLm5hbWU/cGFyc2VXTW9kZShlLHQpOiJDTWFwTmFtZSI9PT1pLm5hbWUmJnBhcnNlQ01hcE5hbWUoZSx0KTtyPWl9ZWxzZSBpZihpIGluc3RhbmNlb2YgQ21kKXN3aXRjaChpLmNtZCl7Y2FzZSJlbmRjbWFwIjpicmVhayBBO2Nhc2UidXNlY21hcCI6ciBpbnN0YW5jZW9mIE5hbWUmJihzPXIubmFtZSk7YnJlYWs7Y2FzZSJiZWdpbmNvZGVzcGFjZXJhbmdlIjpwYXJzZUNvZGVzcGFjZVJhbmdlKGUsdCk7YnJlYWs7Y2FzZSJiZWdpbmJmY2hhciI6cGFyc2VCZkNoYXIoZSx0KTticmVhaztjYXNlImJlZ2luY2lkY2hhciI6cGFyc2VDaWRDaGFyKGUsdCk7YnJlYWs7Y2FzZSJiZWdpbmJmcmFuZ2UiOnBhcnNlQmZSYW5nZShlLHQpO2JyZWFrO2Nhc2UiYmVnaW5jaWRyYW5nZSI6cGFyc2VDaWRSYW5nZShlLHQpfX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pdGhyb3cgZTt3YXJuKCJJbnZhbGlkIGNNYXAgZGF0YTogIitlKTtjb250aW51ZX0hYSYmcyYmKGE9cyk7cmV0dXJuIGE/ZXh0ZW5kQ01hcChlLGksYSk6ZX1hc3luYyBmdW5jdGlvbiBleHRlbmRDTWFwKGUsdCxpKXtlLnVzZUNNYXA9YXdhaXQgY3JlYXRlQnVpbHRJbkNNYXAoaSx0KTtpZigwPT09ZS5udW1Db2Rlc3BhY2VSYW5nZXMpe2NvbnN0IHQ9ZS51c2VDTWFwLmNvZGVzcGFjZVJhbmdlcztmb3IobGV0IGk9MDtpPHQubGVuZ3RoO2krKyllLmNvZGVzcGFjZVJhbmdlc1tpXT10W2ldLnNsaWNlKCk7ZS5udW1Db2Rlc3BhY2VSYW5nZXM9ZS51c2VDTWFwLm51bUNvZGVzcGFjZVJhbmdlc31lLnVzZUNNYXAuZm9yRWFjaCgoZnVuY3Rpb24odCxpKXtlLmNvbnRhaW5zKHQpfHxlLm1hcE9uZSh0LGkpfSkpO3JldHVybiBlfWFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUJ1aWx0SW5DTWFwKGUsdCl7aWYoIklkZW50aXR5LUgiPT09ZSlyZXR1cm4gbmV3IElkZW50aXR5Q01hcCghMSwyKTtpZigiSWRlbnRpdHktViI9PT1lKXJldHVybiBuZXcgSWRlbnRpdHlDTWFwKCEwLDIpO2lmKCFuaS5pbmNsdWRlcyhlKSl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gQ01hcCBuYW1lOiAiK2UpO2lmKCF0KXRocm93IG5ldyBFcnJvcigiQnVpbHQtaW4gQ01hcCBwYXJhbWV0ZXJzIGFyZSBub3QgcHJvdmlkZWQuIik7Y29uc3R7Y01hcERhdGE6aSxpc0NvbXByZXNzZWQ6YX09YXdhaXQgdChlKSxyPW5ldyBDTWFwKCEwKTtpZihhKXJldHVybihuZXcgQmluYXJ5Q01hcFJlYWRlcikucHJvY2VzcyhpLHIsKGU9PmV4dGVuZENNYXAocix0LGUpKSk7Y29uc3Qgcz1uZXcgTGV4ZXIobmV3IFN0cmVhbShpKSk7cmV0dXJuIHBhcnNlQ01hcChyLHMsdCxudWxsKX1jbGFzcyBDTWFwRmFjdG9yeXtzdGF0aWMgYXN5bmMgY3JlYXRlKHtlbmNvZGluZzplLGZldGNoQnVpbHRJbkNNYXA6dCx1c2VDTWFwOml9KXtpZihlIGluc3RhbmNlb2YgTmFtZSlyZXR1cm4gY3JlYXRlQnVpbHRJbkNNYXAoZS5uYW1lLHQpO2lmKGUgaW5zdGFuY2VvZiBCYXNlU3RyZWFtKXtjb25zdCBhPWF3YWl0IHBhcnNlQ01hcChuZXcgQ01hcCxuZXcgTGV4ZXIoZSksdCxpKTtyZXR1cm4gYS5pc0lkZW50aXR5Q01hcD9jcmVhdGVCdWlsdEluQ01hcChhLm5hbWUsdCk6YX10aHJvdyBuZXcgRXJyb3IoIkVuY29kaW5nIHJlcXVpcmVkLiIpfX1fX3dlYnBhY2tfcmVxdWlyZV9fKDE3OTUpO2NvbnN0IGdpPVsiLm5vdGRlZiIsInNwYWNlIiwiZXhjbGFtIiwicXVvdGVkYmwiLCJudW1iZXJzaWduIiwiZG9sbGFyIiwicGVyY2VudCIsImFtcGVyc2FuZCIsInF1b3RlcmlnaHQiLCJwYXJlbmxlZnQiLCJwYXJlbnJpZ2h0IiwiYXN0ZXJpc2siLCJwbHVzIiwiY29tbWEiLCJoeXBoZW4iLCJwZXJpb2QiLCJzbGFzaCIsInplcm8iLCJvbmUiLCJ0d28iLCJ0aHJlZSIsImZvdXIiLCJmaXZlIiwic2l4Iiwic2V2ZW4iLCJlaWdodCIsIm5pbmUiLCJjb2xvbiIsInNlbWljb2xvbiIsImxlc3MiLCJlcXVhbCIsImdyZWF0ZXIiLCJxdWVzdGlvbiIsImF0IiwiQSIsIkIiLCJDIiwiRCIsIkUiLCJGIiwiRyIsIkgiLCJJIiwiSiIsIksiLCJMIiwiTSIsIk4iLCJPIiwiUCIsIlEiLCJSIiwiUyIsIlQiLCJVIiwiViIsIlciLCJYIiwiWSIsIloiLCJicmFja2V0bGVmdCIsImJhY2tzbGFzaCIsImJyYWNrZXRyaWdodCIsImFzY2lpY2lyY3VtIiwidW5kZXJzY29yZSIsInF1b3RlbGVmdCIsImEiLCJiIiwiYyIsImQiLCJlIiwiZiIsImciLCJoIiwiaSIsImoiLCJrIiwibCIsIm0iLCJuIiwibyIsInAiLCJxIiwiciIsInMiLCJ0IiwidSIsInYiLCJ3IiwieCIsInkiLCJ6IiwiYnJhY2VsZWZ0IiwiYmFyIiwiYnJhY2VyaWdodCIsImFzY2lpdGlsZGUiLCJleGNsYW1kb3duIiwiY2VudCIsInN0ZXJsaW5nIiwiZnJhY3Rpb24iLCJ5ZW4iLCJmbG9yaW4iLCJzZWN0aW9uIiwiY3VycmVuY3kiLCJxdW90ZXNpbmdsZSIsInF1b3RlZGJsbGVmdCIsImd1aWxsZW1vdGxlZnQiLCJndWlsc2luZ2xsZWZ0IiwiZ3VpbHNpbmdscmlnaHQiLCJmaSIsImZsIiwiZW5kYXNoIiwiZGFnZ2VyIiwiZGFnZ2VyZGJsIiwicGVyaW9kY2VudGVyZWQiLCJwYXJhZ3JhcGgiLCJidWxsZXQiLCJxdW90ZXNpbmdsYmFzZSIsInF1b3RlZGJsYmFzZSIsInF1b3RlZGJscmlnaHQiLCJndWlsbGVtb3RyaWdodCIsImVsbGlwc2lzIiwicGVydGhvdXNhbmQiLCJxdWVzdGlvbmRvd24iLCJncmF2ZSIsImFjdXRlIiwiY2lyY3VtZmxleCIsInRpbGRlIiwibWFjcm9uIiwiYnJldmUiLCJkb3RhY2NlbnQiLCJkaWVyZXNpcyIsInJpbmciLCJjZWRpbGxhIiwiaHVuZ2FydW1sYXV0Iiwib2dvbmVrIiwiY2Fyb24iLCJlbWRhc2giLCJBRSIsIm9yZGZlbWluaW5lIiwiTHNsYXNoIiwiT3NsYXNoIiwiT0UiLCJvcmRtYXNjdWxpbmUiLCJhZSIsImRvdGxlc3NpIiwibHNsYXNoIiwib3NsYXNoIiwib2UiLCJnZXJtYW5kYmxzIiwib25lc3VwZXJpb3IiLCJsb2dpY2Fsbm90IiwibXUiLCJ0cmFkZW1hcmsiLCJFdGgiLCJvbmVoYWxmIiwicGx1c21pbnVzIiwiVGhvcm4iLCJvbmVxdWFydGVyIiwiZGl2aWRlIiwiYnJva2VuYmFyIiwiZGVncmVlIiwidGhvcm4iLCJ0aHJlZXF1YXJ0ZXJzIiwidHdvc3VwZXJpb3IiLCJyZWdpc3RlcmVkIiwibWludXMiLCJldGgiLCJtdWx0aXBseSIsInRocmVlc3VwZXJpb3IiLCJjb3B5cmlnaHQiLCJBYWN1dGUiLCJBY2lyY3VtZmxleCIsIkFkaWVyZXNpcyIsIkFncmF2ZSIsIkFyaW5nIiwiQXRpbGRlIiwiQ2NlZGlsbGEiLCJFYWN1dGUiLCJFY2lyY3VtZmxleCIsIkVkaWVyZXNpcyIsIkVncmF2ZSIsIklhY3V0ZSIsIkljaXJjdW1mbGV4IiwiSWRpZXJlc2lzIiwiSWdyYXZlIiwiTnRpbGRlIiwiT2FjdXRlIiwiT2NpcmN1bWZsZXgiLCJPZGllcmVzaXMiLCJPZ3JhdmUiLCJPdGlsZGUiLCJTY2Fyb24iLCJVYWN1dGUiLCJVY2lyY3VtZmxleCIsIlVkaWVyZXNpcyIsIlVncmF2ZSIsIllhY3V0ZSIsIllkaWVyZXNpcyIsIlpjYXJvbiIsImFhY3V0ZSIsImFjaXJjdW1mbGV4IiwiYWRpZXJlc2lzIiwiYWdyYXZlIiwiYXJpbmciLCJhdGlsZGUiLCJjY2VkaWxsYSIsImVhY3V0ZSIsImVjaXJjdW1mbGV4IiwiZWRpZXJlc2lzIiwiZWdyYXZlIiwiaWFjdXRlIiwiaWNpcmN1bWZsZXgiLCJpZGllcmVzaXMiLCJpZ3JhdmUiLCJudGlsZGUiLCJvYWN1dGUiLCJvY2lyY3VtZmxleCIsIm9kaWVyZXNpcyIsIm9ncmF2ZSIsIm90aWxkZSIsInNjYXJvbiIsInVhY3V0ZSIsInVjaXJjdW1mbGV4IiwidWRpZXJlc2lzIiwidWdyYXZlIiwieWFjdXRlIiwieWRpZXJlc2lzIiwiemNhcm9uIl0sSWk9WyIubm90ZGVmIiwic3BhY2UiLCJleGNsYW1zbWFsbCIsIkh1bmdhcnVtbGF1dHNtYWxsIiwiZG9sbGFyb2xkc3R5bGUiLCJkb2xsYXJzdXBlcmlvciIsImFtcGVyc2FuZHNtYWxsIiwiQWN1dGVzbWFsbCIsInBhcmVubGVmdHN1cGVyaW9yIiwicGFyZW5yaWdodHN1cGVyaW9yIiwidHdvZG90ZW5sZWFkZXIiLCJvbmVkb3RlbmxlYWRlciIsImNvbW1hIiwiaHlwaGVuIiwicGVyaW9kIiwiZnJhY3Rpb24iLCJ6ZXJvb2xkc3R5bGUiLCJvbmVvbGRzdHlsZSIsInR3b29sZHN0eWxlIiwidGhyZWVvbGRzdHlsZSIsImZvdXJvbGRzdHlsZSIsImZpdmVvbGRzdHlsZSIsInNpeG9sZHN0eWxlIiwic2V2ZW5vbGRzdHlsZSIsImVpZ2h0b2xkc3R5bGUiLCJuaW5lb2xkc3R5bGUiLCJjb2xvbiIsInNlbWljb2xvbiIsImNvbW1hc3VwZXJpb3IiLCJ0aHJlZXF1YXJ0ZXJzZW1kYXNoIiwicGVyaW9kc3VwZXJpb3IiLCJxdWVzdGlvbnNtYWxsIiwiYXN1cGVyaW9yIiwiYnN1cGVyaW9yIiwiY2VudHN1cGVyaW9yIiwiZHN1cGVyaW9yIiwiZXN1cGVyaW9yIiwiaXN1cGVyaW9yIiwibHN1cGVyaW9yIiwibXN1cGVyaW9yIiwibnN1cGVyaW9yIiwib3N1cGVyaW9yIiwicnN1cGVyaW9yIiwic3N1cGVyaW9yIiwidHN1cGVyaW9yIiwiZmYiLCJmaSIsImZsIiwiZmZpIiwiZmZsIiwicGFyZW5sZWZ0aW5mZXJpb3IiLCJwYXJlbnJpZ2h0aW5mZXJpb3IiLCJDaXJjdW1mbGV4c21hbGwiLCJoeXBoZW5zdXBlcmlvciIsIkdyYXZlc21hbGwiLCJBc21hbGwiLCJCc21hbGwiLCJDc21hbGwiLCJEc21hbGwiLCJFc21hbGwiLCJGc21hbGwiLCJHc21hbGwiLCJIc21hbGwiLCJJc21hbGwiLCJKc21hbGwiLCJLc21hbGwiLCJMc21hbGwiLCJNc21hbGwiLCJOc21hbGwiLCJPc21hbGwiLCJQc21hbGwiLCJRc21hbGwiLCJSc21hbGwiLCJTc21hbGwiLCJUc21hbGwiLCJVc21hbGwiLCJWc21hbGwiLCJXc21hbGwiLCJYc21hbGwiLCJZc21hbGwiLCJac21hbGwiLCJjb2xvbm1vbmV0YXJ5Iiwib25lZml0dGVkIiwicnVwaWFoIiwiVGlsZGVzbWFsbCIsImV4Y2xhbWRvd25zbWFsbCIsImNlbnRvbGRzdHlsZSIsIkxzbGFzaHNtYWxsIiwiU2Nhcm9uc21hbGwiLCJaY2Fyb25zbWFsbCIsIkRpZXJlc2lzc21hbGwiLCJCcmV2ZXNtYWxsIiwiQ2Fyb25zbWFsbCIsIkRvdGFjY2VudHNtYWxsIiwiTWFjcm9uc21hbGwiLCJmaWd1cmVkYXNoIiwiaHlwaGVuaW5mZXJpb3IiLCJPZ29uZWtzbWFsbCIsIlJpbmdzbWFsbCIsIkNlZGlsbGFzbWFsbCIsIm9uZXF1YXJ0ZXIiLCJvbmVoYWxmIiwidGhyZWVxdWFydGVycyIsInF1ZXN0aW9uZG93bnNtYWxsIiwib25lZWlnaHRoIiwidGhyZWVlaWdodGhzIiwiZml2ZWVpZ2h0aHMiLCJzZXZlbmVpZ2h0aHMiLCJvbmV0aGlyZCIsInR3b3RoaXJkcyIsInplcm9zdXBlcmlvciIsIm9uZXN1cGVyaW9yIiwidHdvc3VwZXJpb3IiLCJ0aHJlZXN1cGVyaW9yIiwiZm91cnN1cGVyaW9yIiwiZml2ZXN1cGVyaW9yIiwic2l4c3VwZXJpb3IiLCJzZXZlbnN1cGVyaW9yIiwiZWlnaHRzdXBlcmlvciIsIm5pbmVzdXBlcmlvciIsInplcm9pbmZlcmlvciIsIm9uZWluZmVyaW9yIiwidHdvaW5mZXJpb3IiLCJ0aHJlZWluZmVyaW9yIiwiZm91cmluZmVyaW9yIiwiZml2ZWluZmVyaW9yIiwic2l4aW5mZXJpb3IiLCJzZXZlbmluZmVyaW9yIiwiZWlnaHRpbmZlcmlvciIsIm5pbmVpbmZlcmlvciIsImNlbnRpbmZlcmlvciIsImRvbGxhcmluZmVyaW9yIiwicGVyaW9kaW5mZXJpb3IiLCJjb21tYWluZmVyaW9yIiwiQWdyYXZlc21hbGwiLCJBYWN1dGVzbWFsbCIsIkFjaXJjdW1mbGV4c21hbGwiLCJBdGlsZGVzbWFsbCIsIkFkaWVyZXNpc3NtYWxsIiwiQXJpbmdzbWFsbCIsIkFFc21hbGwiLCJDY2VkaWxsYXNtYWxsIiwiRWdyYXZlc21hbGwiLCJFYWN1dGVzbWFsbCIsIkVjaXJjdW1mbGV4c21hbGwiLCJFZGllcmVzaXNzbWFsbCIsIklncmF2ZXNtYWxsIiwiSWFjdXRlc21hbGwiLCJJY2lyY3VtZmxleHNtYWxsIiwiSWRpZXJlc2lzc21hbGwiLCJFdGhzbWFsbCIsIk50aWxkZXNtYWxsIiwiT2dyYXZlc21hbGwiLCJPYWN1dGVzbWFsbCIsIk9jaXJjdW1mbGV4c21hbGwiLCJPdGlsZGVzbWFsbCIsIk9kaWVyZXNpc3NtYWxsIiwiT0VzbWFsbCIsIk9zbGFzaHNtYWxsIiwiVWdyYXZlc21hbGwiLCJVYWN1dGVzbWFsbCIsIlVjaXJjdW1mbGV4c21hbGwiLCJVZGllcmVzaXNzbWFsbCIsIllhY3V0ZXNtYWxsIiwiVGhvcm5zbWFsbCIsIllkaWVyZXNpc3NtYWxsIl0sY2k9WyIubm90ZGVmIiwic3BhY2UiLCJkb2xsYXJvbGRzdHlsZSIsImRvbGxhcnN1cGVyaW9yIiwicGFyZW5sZWZ0c3VwZXJpb3IiLCJwYXJlbnJpZ2h0c3VwZXJpb3IiLCJ0d29kb3RlbmxlYWRlciIsIm9uZWRvdGVubGVhZGVyIiwiY29tbWEiLCJoeXBoZW4iLCJwZXJpb2QiLCJmcmFjdGlvbiIsInplcm9vbGRzdHlsZSIsIm9uZW9sZHN0eWxlIiwidHdvb2xkc3R5bGUiLCJ0aHJlZW9sZHN0eWxlIiwiZm91cm9sZHN0eWxlIiwiZml2ZW9sZHN0eWxlIiwic2l4b2xkc3R5bGUiLCJzZXZlbm9sZHN0eWxlIiwiZWlnaHRvbGRzdHlsZSIsIm5pbmVvbGRzdHlsZSIsImNvbG9uIiwic2VtaWNvbG9uIiwiY29tbWFzdXBlcmlvciIsInRocmVlcXVhcnRlcnNlbWRhc2giLCJwZXJpb2RzdXBlcmlvciIsImFzdXBlcmlvciIsImJzdXBlcmlvciIsImNlbnRzdXBlcmlvciIsImRzdXBlcmlvciIsImVzdXBlcmlvciIsImlzdXBlcmlvciIsImxzdXBlcmlvciIsIm1zdXBlcmlvciIsIm5zdXBlcmlvciIsIm9zdXBlcmlvciIsInJzdXBlcmlvciIsInNzdXBlcmlvciIsInRzdXBlcmlvciIsImZmIiwiZmkiLCJmbCIsImZmaSIsImZmbCIsInBhcmVubGVmdGluZmVyaW9yIiwicGFyZW5yaWdodGluZmVyaW9yIiwiaHlwaGVuc3VwZXJpb3IiLCJjb2xvbm1vbmV0YXJ5Iiwib25lZml0dGVkIiwicnVwaWFoIiwiY2VudG9sZHN0eWxlIiwiZmlndXJlZGFzaCIsImh5cGhlbmluZmVyaW9yIiwib25lcXVhcnRlciIsIm9uZWhhbGYiLCJ0aHJlZXF1YXJ0ZXJzIiwib25lZWlnaHRoIiwidGhyZWVlaWdodGhzIiwiZml2ZWVpZ2h0aHMiLCJzZXZlbmVpZ2h0aHMiLCJvbmV0aGlyZCIsInR3b3RoaXJkcyIsInplcm9zdXBlcmlvciIsIm9uZXN1cGVyaW9yIiwidHdvc3VwZXJpb3IiLCJ0aHJlZXN1cGVyaW9yIiwiZm91cnN1cGVyaW9yIiwiZml2ZXN1cGVyaW9yIiwic2l4c3VwZXJpb3IiLCJzZXZlbnN1cGVyaW9yIiwiZWlnaHRzdXBlcmlvciIsIm5pbmVzdXBlcmlvciIsInplcm9pbmZlcmlvciIsIm9uZWluZmVyaW9yIiwidHdvaW5mZXJpb3IiLCJ0aHJlZWluZmVyaW9yIiwiZm91cmluZmVyaW9yIiwiZml2ZWluZmVyaW9yIiwic2l4aW5mZXJpb3IiLCJzZXZlbmluZmVyaW9yIiwiZWlnaHRpbmZlcmlvciIsIm5pbmVpbmZlcmlvciIsImNlbnRpbmZlcmlvciIsImRvbGxhcmluZmVyaW9yIiwicGVyaW9kaW5mZXJpb3IiLCJjb21tYWluZmVyaW9yIl0sbGk9WyIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJzcGFjZSIsImV4Y2xhbXNtYWxsIiwiSHVuZ2FydW1sYXV0c21hbGwiLCIiLCJkb2xsYXJvbGRzdHlsZSIsImRvbGxhcnN1cGVyaW9yIiwiYW1wZXJzYW5kc21hbGwiLCJBY3V0ZXNtYWxsIiwicGFyZW5sZWZ0c3VwZXJpb3IiLCJwYXJlbnJpZ2h0c3VwZXJpb3IiLCJ0d29kb3RlbmxlYWRlciIsIm9uZWRvdGVubGVhZGVyIiwiY29tbWEiLCJoeXBoZW4iLCJwZXJpb2QiLCJmcmFjdGlvbiIsInplcm9vbGRzdHlsZSIsIm9uZW9sZHN0eWxlIiwidHdvb2xkc3R5bGUiLCJ0aHJlZW9sZHN0eWxlIiwiZm91cm9sZHN0eWxlIiwiZml2ZW9sZHN0eWxlIiwic2l4b2xkc3R5bGUiLCJzZXZlbm9sZHN0eWxlIiwiZWlnaHRvbGRzdHlsZSIsIm5pbmVvbGRzdHlsZSIsImNvbG9uIiwic2VtaWNvbG9uIiwiY29tbWFzdXBlcmlvciIsInRocmVlcXVhcnRlcnNlbWRhc2giLCJwZXJpb2RzdXBlcmlvciIsInF1ZXN0aW9uc21hbGwiLCIiLCJhc3VwZXJpb3IiLCJic3VwZXJpb3IiLCJjZW50c3VwZXJpb3IiLCJkc3VwZXJpb3IiLCJlc3VwZXJpb3IiLCIiLCIiLCIiLCJpc3VwZXJpb3IiLCIiLCIiLCJsc3VwZXJpb3IiLCJtc3VwZXJpb3IiLCJuc3VwZXJpb3IiLCJvc3VwZXJpb3IiLCIiLCIiLCJyc3VwZXJpb3IiLCJzc3VwZXJpb3IiLCJ0c3VwZXJpb3IiLCIiLCJmZiIsImZpIiwiZmwiLCJmZmkiLCJmZmwiLCJwYXJlbmxlZnRpbmZlcmlvciIsIiIsInBhcmVucmlnaHRpbmZlcmlvciIsIkNpcmN1bWZsZXhzbWFsbCIsImh5cGhlbnN1cGVyaW9yIiwiR3JhdmVzbWFsbCIsIkFzbWFsbCIsIkJzbWFsbCIsIkNzbWFsbCIsIkRzbWFsbCIsIkVzbWFsbCIsIkZzbWFsbCIsIkdzbWFsbCIsIkhzbWFsbCIsIklzbWFsbCIsIkpzbWFsbCIsIktzbWFsbCIsIkxzbWFsbCIsIk1zbWFsbCIsIk5zbWFsbCIsIk9zbWFsbCIsIlBzbWFsbCIsIlFzbWFsbCIsIlJzbWFsbCIsIlNzbWFsbCIsIlRzbWFsbCIsIlVzbWFsbCIsIlZzbWFsbCIsIldzbWFsbCIsIlhzbWFsbCIsIllzbWFsbCIsIlpzbWFsbCIsImNvbG9ubW9uZXRhcnkiLCJvbmVmaXR0ZWQiLCJydXBpYWgiLCJUaWxkZXNtYWxsIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiZXhjbGFtZG93bnNtYWxsIiwiY2VudG9sZHN0eWxlIiwiTHNsYXNoc21hbGwiLCIiLCIiLCJTY2Fyb25zbWFsbCIsIlpjYXJvbnNtYWxsIiwiRGllcmVzaXNzbWFsbCIsIkJyZXZlc21hbGwiLCJDYXJvbnNtYWxsIiwiIiwiRG90YWNjZW50c21hbGwiLCIiLCIiLCJNYWNyb25zbWFsbCIsIiIsIiIsImZpZ3VyZWRhc2giLCJoeXBoZW5pbmZlcmlvciIsIiIsIiIsIk9nb25la3NtYWxsIiwiUmluZ3NtYWxsIiwiQ2VkaWxsYXNtYWxsIiwiIiwiIiwiIiwib25lcXVhcnRlciIsIm9uZWhhbGYiLCJ0aHJlZXF1YXJ0ZXJzIiwicXVlc3Rpb25kb3duc21hbGwiLCJvbmVlaWdodGgiLCJ0aHJlZWVpZ2h0aHMiLCJmaXZlZWlnaHRocyIsInNldmVuZWlnaHRocyIsIm9uZXRoaXJkIiwidHdvdGhpcmRzIiwiIiwiIiwiemVyb3N1cGVyaW9yIiwib25lc3VwZXJpb3IiLCJ0d29zdXBlcmlvciIsInRocmVlc3VwZXJpb3IiLCJmb3Vyc3VwZXJpb3IiLCJmaXZlc3VwZXJpb3IiLCJzaXhzdXBlcmlvciIsInNldmVuc3VwZXJpb3IiLCJlaWdodHN1cGVyaW9yIiwibmluZXN1cGVyaW9yIiwiemVyb2luZmVyaW9yIiwib25laW5mZXJpb3IiLCJ0d29pbmZlcmlvciIsInRocmVlaW5mZXJpb3IiLCJmb3VyaW5mZXJpb3IiLCJmaXZlaW5mZXJpb3IiLCJzaXhpbmZlcmlvciIsInNldmVuaW5mZXJpb3IiLCJlaWdodGluZmVyaW9yIiwibmluZWluZmVyaW9yIiwiY2VudGluZmVyaW9yIiwiZG9sbGFyaW5mZXJpb3IiLCJwZXJpb2RpbmZlcmlvciIsImNvbW1haW5mZXJpb3IiLCJBZ3JhdmVzbWFsbCIsIkFhY3V0ZXNtYWxsIiwiQWNpcmN1bWZsZXhzbWFsbCIsIkF0aWxkZXNtYWxsIiwiQWRpZXJlc2lzc21hbGwiLCJBcmluZ3NtYWxsIiwiQUVzbWFsbCIsIkNjZWRpbGxhc21hbGwiLCJFZ3JhdmVzbWFsbCIsIkVhY3V0ZXNtYWxsIiwiRWNpcmN1bWZsZXhzbWFsbCIsIkVkaWVyZXNpc3NtYWxsIiwiSWdyYXZlc21hbGwiLCJJYWN1dGVzbWFsbCIsIkljaXJjdW1mbGV4c21hbGwiLCJJZGllcmVzaXNzbWFsbCIsIkV0aHNtYWxsIiwiTnRpbGRlc21hbGwiLCJPZ3JhdmVzbWFsbCIsIk9hY3V0ZXNtYWxsIiwiT2NpcmN1bWZsZXhzbWFsbCIsIk90aWxkZXNtYWxsIiwiT2RpZXJlc2lzc21hbGwiLCJPRXNtYWxsIiwiT3NsYXNoc21hbGwiLCJVZ3JhdmVzbWFsbCIsIlVhY3V0ZXNtYWxsIiwiVWNpcmN1bWZsZXhzbWFsbCIsIlVkaWVyZXNpc3NtYWxsIiwiWWFjdXRlc21hbGwiLCJUaG9ybnNtYWxsIiwiWWRpZXJlc2lzc21hbGwiXSxoaT1bIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsInNwYWNlIiwiZXhjbGFtc21hbGwiLCJIdW5nYXJ1bWxhdXRzbWFsbCIsImNlbnRvbGRzdHlsZSIsImRvbGxhcm9sZHN0eWxlIiwiZG9sbGFyc3VwZXJpb3IiLCJhbXBlcnNhbmRzbWFsbCIsIkFjdXRlc21hbGwiLCJwYXJlbmxlZnRzdXBlcmlvciIsInBhcmVucmlnaHRzdXBlcmlvciIsInR3b2RvdGVubGVhZGVyIiwib25lZG90ZW5sZWFkZXIiLCJjb21tYSIsImh5cGhlbiIsInBlcmlvZCIsImZyYWN0aW9uIiwiemVyb29sZHN0eWxlIiwib25lb2xkc3R5bGUiLCJ0d29vbGRzdHlsZSIsInRocmVlb2xkc3R5bGUiLCJmb3Vyb2xkc3R5bGUiLCJmaXZlb2xkc3R5bGUiLCJzaXhvbGRzdHlsZSIsInNldmVub2xkc3R5bGUiLCJlaWdodG9sZHN0eWxlIiwibmluZW9sZHN0eWxlIiwiY29sb24iLCJzZW1pY29sb24iLCIiLCJ0aHJlZXF1YXJ0ZXJzZW1kYXNoIiwiIiwicXVlc3Rpb25zbWFsbCIsIiIsIiIsIiIsIiIsIkV0aHNtYWxsIiwiIiwiIiwib25lcXVhcnRlciIsIm9uZWhhbGYiLCJ0aHJlZXF1YXJ0ZXJzIiwib25lZWlnaHRoIiwidGhyZWVlaWdodGhzIiwiZml2ZWVpZ2h0aHMiLCJzZXZlbmVpZ2h0aHMiLCJvbmV0aGlyZCIsInR3b3RoaXJkcyIsIiIsIiIsIiIsIiIsIiIsIiIsImZmIiwiZmkiLCJmbCIsImZmaSIsImZmbCIsInBhcmVubGVmdGluZmVyaW9yIiwiIiwicGFyZW5yaWdodGluZmVyaW9yIiwiQ2lyY3VtZmxleHNtYWxsIiwiaHlwaGVuaW5mZXJpb3IiLCJHcmF2ZXNtYWxsIiwiQXNtYWxsIiwiQnNtYWxsIiwiQ3NtYWxsIiwiRHNtYWxsIiwiRXNtYWxsIiwiRnNtYWxsIiwiR3NtYWxsIiwiSHNtYWxsIiwiSXNtYWxsIiwiSnNtYWxsIiwiS3NtYWxsIiwiTHNtYWxsIiwiTXNtYWxsIiwiTnNtYWxsIiwiT3NtYWxsIiwiUHNtYWxsIiwiUXNtYWxsIiwiUnNtYWxsIiwiU3NtYWxsIiwiVHNtYWxsIiwiVXNtYWxsIiwiVnNtYWxsIiwiV3NtYWxsIiwiWHNtYWxsIiwiWXNtYWxsIiwiWnNtYWxsIiwiY29sb25tb25ldGFyeSIsIm9uZWZpdHRlZCIsInJ1cGlhaCIsIlRpbGRlc21hbGwiLCIiLCIiLCJhc3VwZXJpb3IiLCJjZW50c3VwZXJpb3IiLCIiLCIiLCIiLCIiLCJBYWN1dGVzbWFsbCIsIkFncmF2ZXNtYWxsIiwiQWNpcmN1bWZsZXhzbWFsbCIsIkFkaWVyZXNpc3NtYWxsIiwiQXRpbGRlc21hbGwiLCJBcmluZ3NtYWxsIiwiQ2NlZGlsbGFzbWFsbCIsIkVhY3V0ZXNtYWxsIiwiRWdyYXZlc21hbGwiLCJFY2lyY3VtZmxleHNtYWxsIiwiRWRpZXJlc2lzc21hbGwiLCJJYWN1dGVzbWFsbCIsIklncmF2ZXNtYWxsIiwiSWNpcmN1bWZsZXhzbWFsbCIsIklkaWVyZXNpc3NtYWxsIiwiTnRpbGRlc21hbGwiLCJPYWN1dGVzbWFsbCIsIk9ncmF2ZXNtYWxsIiwiT2NpcmN1bWZsZXhzbWFsbCIsIk9kaWVyZXNpc3NtYWxsIiwiT3RpbGRlc21hbGwiLCJVYWN1dGVzbWFsbCIsIlVncmF2ZXNtYWxsIiwiVWNpcmN1bWZsZXhzbWFsbCIsIlVkaWVyZXNpc3NtYWxsIiwiIiwiZWlnaHRzdXBlcmlvciIsImZvdXJpbmZlcmlvciIsInRocmVlaW5mZXJpb3IiLCJzaXhpbmZlcmlvciIsImVpZ2h0aW5mZXJpb3IiLCJzZXZlbmluZmVyaW9yIiwiU2Nhcm9uc21hbGwiLCIiLCJjZW50aW5mZXJpb3IiLCJ0d29pbmZlcmlvciIsIiIsIkRpZXJlc2lzc21hbGwiLCIiLCJDYXJvbnNtYWxsIiwib3N1cGVyaW9yIiwiZml2ZWluZmVyaW9yIiwiIiwiY29tbWFpbmZlcmlvciIsInBlcmlvZGluZmVyaW9yIiwiWWFjdXRlc21hbGwiLCIiLCJkb2xsYXJpbmZlcmlvciIsIiIsIiIsIlRob3Juc21hbGwiLCIiLCJuaW5laW5mZXJpb3IiLCJ6ZXJvaW5mZXJpb3IiLCJaY2Fyb25zbWFsbCIsIkFFc21hbGwiLCJPc2xhc2hzbWFsbCIsInF1ZXN0aW9uZG93bnNtYWxsIiwib25laW5mZXJpb3IiLCJMc2xhc2hzbWFsbCIsIiIsIiIsIiIsIiIsIiIsIiIsIkNlZGlsbGFzbWFsbCIsIiIsIiIsIiIsIiIsIiIsIk9Fc21hbGwiLCJmaWd1cmVkYXNoIiwiaHlwaGVuc3VwZXJpb3IiLCIiLCIiLCIiLCIiLCJleGNsYW1kb3duc21hbGwiLCIiLCJZZGllcmVzaXNzbWFsbCIsIiIsIm9uZXN1cGVyaW9yIiwidHdvc3VwZXJpb3IiLCJ0aHJlZXN1cGVyaW9yIiwiZm91cnN1cGVyaW9yIiwiZml2ZXN1cGVyaW9yIiwic2l4c3VwZXJpb3IiLCJzZXZlbnN1cGVyaW9yIiwibmluZXN1cGVyaW9yIiwiemVyb3N1cGVyaW9yIiwiIiwiZXN1cGVyaW9yIiwicnN1cGVyaW9yIiwidHN1cGVyaW9yIiwiIiwiIiwiaXN1cGVyaW9yIiwic3N1cGVyaW9yIiwiZHN1cGVyaW9yIiwiIiwiIiwiIiwiIiwiIiwibHN1cGVyaW9yIiwiT2dvbmVrc21hbGwiLCJCcmV2ZXNtYWxsIiwiTWFjcm9uc21hbGwiLCJic3VwZXJpb3IiLCJuc3VwZXJpb3IiLCJtc3VwZXJpb3IiLCJjb21tYXN1cGVyaW9yIiwicGVyaW9kc3VwZXJpb3IiLCJEb3RhY2NlbnRzbWFsbCIsIlJpbmdzbWFsbCIsIiIsIiIsIiIsIiJdLENpPVsiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwic3BhY2UiLCJleGNsYW0iLCJxdW90ZWRibCIsIm51bWJlcnNpZ24iLCJkb2xsYXIiLCJwZXJjZW50IiwiYW1wZXJzYW5kIiwicXVvdGVzaW5nbGUiLCJwYXJlbmxlZnQiLCJwYXJlbnJpZ2h0IiwiYXN0ZXJpc2siLCJwbHVzIiwiY29tbWEiLCJoeXBoZW4iLCJwZXJpb2QiLCJzbGFzaCIsInplcm8iLCJvbmUiLCJ0d28iLCJ0aHJlZSIsImZvdXIiLCJmaXZlIiwic2l4Iiwic2V2ZW4iLCJlaWdodCIsIm5pbmUiLCJjb2xvbiIsInNlbWljb2xvbiIsImxlc3MiLCJlcXVhbCIsImdyZWF0ZXIiLCJxdWVzdGlvbiIsImF0IiwiQSIsIkIiLCJDIiwiRCIsIkUiLCJGIiwiRyIsIkgiLCJJIiwiSiIsIksiLCJMIiwiTSIsIk4iLCJPIiwiUCIsIlEiLCJSIiwiUyIsIlQiLCJVIiwiViIsIlciLCJYIiwiWSIsIloiLCJicmFja2V0bGVmdCIsImJhY2tzbGFzaCIsImJyYWNrZXRyaWdodCIsImFzY2lpY2lyY3VtIiwidW5kZXJzY29yZSIsImdyYXZlIiwiYSIsImIiLCJjIiwiZCIsImUiLCJmIiwiZyIsImgiLCJpIiwiaiIsImsiLCJsIiwibSIsIm4iLCJvIiwicCIsInEiLCJyIiwicyIsInQiLCJ1IiwidiIsInciLCJ4IiwieSIsInoiLCJicmFjZWxlZnQiLCJiYXIiLCJicmFjZXJpZ2h0IiwiYXNjaWl0aWxkZSIsIiIsIkFkaWVyZXNpcyIsIkFyaW5nIiwiQ2NlZGlsbGEiLCJFYWN1dGUiLCJOdGlsZGUiLCJPZGllcmVzaXMiLCJVZGllcmVzaXMiLCJhYWN1dGUiLCJhZ3JhdmUiLCJhY2lyY3VtZmxleCIsImFkaWVyZXNpcyIsImF0aWxkZSIsImFyaW5nIiwiY2NlZGlsbGEiLCJlYWN1dGUiLCJlZ3JhdmUiLCJlY2lyY3VtZmxleCIsImVkaWVyZXNpcyIsImlhY3V0ZSIsImlncmF2ZSIsImljaXJjdW1mbGV4IiwiaWRpZXJlc2lzIiwibnRpbGRlIiwib2FjdXRlIiwib2dyYXZlIiwib2NpcmN1bWZsZXgiLCJvZGllcmVzaXMiLCJvdGlsZGUiLCJ1YWN1dGUiLCJ1Z3JhdmUiLCJ1Y2lyY3VtZmxleCIsInVkaWVyZXNpcyIsImRhZ2dlciIsImRlZ3JlZSIsImNlbnQiLCJzdGVybGluZyIsInNlY3Rpb24iLCJidWxsZXQiLCJwYXJhZ3JhcGgiLCJnZXJtYW5kYmxzIiwicmVnaXN0ZXJlZCIsImNvcHlyaWdodCIsInRyYWRlbWFyayIsImFjdXRlIiwiZGllcmVzaXMiLCJub3RlcXVhbCIsIkFFIiwiT3NsYXNoIiwiaW5maW5pdHkiLCJwbHVzbWludXMiLCJsZXNzZXF1YWwiLCJncmVhdGVyZXF1YWwiLCJ5ZW4iLCJtdSIsInBhcnRpYWxkaWZmIiwic3VtbWF0aW9uIiwicHJvZHVjdCIsInBpIiwiaW50ZWdyYWwiLCJvcmRmZW1pbmluZSIsIm9yZG1hc2N1bGluZSIsIk9tZWdhIiwiYWUiLCJvc2xhc2giLCJxdWVzdGlvbmRvd24iLCJleGNsYW1kb3duIiwibG9naWNhbG5vdCIsInJhZGljYWwiLCJmbG9yaW4iLCJhcHByb3hlcXVhbCIsIkRlbHRhIiwiZ3VpbGxlbW90bGVmdCIsImd1aWxsZW1vdHJpZ2h0IiwiZWxsaXBzaXMiLCJzcGFjZSIsIkFncmF2ZSIsIkF0aWxkZSIsIk90aWxkZSIsIk9FIiwib2UiLCJlbmRhc2giLCJlbWRhc2giLCJxdW90ZWRibGxlZnQiLCJxdW90ZWRibHJpZ2h0IiwicXVvdGVsZWZ0IiwicXVvdGVyaWdodCIsImRpdmlkZSIsImxvemVuZ2UiLCJ5ZGllcmVzaXMiLCJZZGllcmVzaXMiLCJmcmFjdGlvbiIsImN1cnJlbmN5IiwiZ3VpbHNpbmdsbGVmdCIsImd1aWxzaW5nbHJpZ2h0IiwiZmkiLCJmbCIsImRhZ2dlcmRibCIsInBlcmlvZGNlbnRlcmVkIiwicXVvdGVzaW5nbGJhc2UiLCJxdW90ZWRibGJhc2UiLCJwZXJ0aG91c2FuZCIsIkFjaXJjdW1mbGV4IiwiRWNpcmN1bWZsZXgiLCJBYWN1dGUiLCJFZGllcmVzaXMiLCJFZ3JhdmUiLCJJYWN1dGUiLCJJY2lyY3VtZmxleCIsIklkaWVyZXNpcyIsIklncmF2ZSIsIk9hY3V0ZSIsIk9jaXJjdW1mbGV4IiwiYXBwbGUiLCJPZ3JhdmUiLCJVYWN1dGUiLCJVY2lyY3VtZmxleCIsIlVncmF2ZSIsImRvdGxlc3NpIiwiY2lyY3VtZmxleCIsInRpbGRlIiwibWFjcm9uIiwiYnJldmUiLCJkb3RhY2NlbnQiLCJyaW5nIiwiY2VkaWxsYSIsImh1bmdhcnVtbGF1dCIsIm9nb25layIsImNhcm9uIl0sQmk9WyIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJzcGFjZSIsImV4Y2xhbSIsInF1b3RlZGJsIiwibnVtYmVyc2lnbiIsImRvbGxhciIsInBlcmNlbnQiLCJhbXBlcnNhbmQiLCJxdW90ZXJpZ2h0IiwicGFyZW5sZWZ0IiwicGFyZW5yaWdodCIsImFzdGVyaXNrIiwicGx1cyIsImNvbW1hIiwiaHlwaGVuIiwicGVyaW9kIiwic2xhc2giLCJ6ZXJvIiwib25lIiwidHdvIiwidGhyZWUiLCJmb3VyIiwiZml2ZSIsInNpeCIsInNldmVuIiwiZWlnaHQiLCJuaW5lIiwiY29sb24iLCJzZW1pY29sb24iLCJsZXNzIiwiZXF1YWwiLCJncmVhdGVyIiwicXVlc3Rpb24iLCJhdCIsIkEiLCJCIiwiQyIsIkQiLCJFIiwiRiIsIkciLCJIIiwiSSIsIkoiLCJLIiwiTCIsIk0iLCJOIiwiTyIsIlAiLCJRIiwiUiIsIlMiLCJUIiwiVSIsIlYiLCJXIiwiWCIsIlkiLCJaIiwiYnJhY2tldGxlZnQiLCJiYWNrc2xhc2giLCJicmFja2V0cmlnaHQiLCJhc2NpaWNpcmN1bSIsInVuZGVyc2NvcmUiLCJxdW90ZWxlZnQiLCJhIiwiYiIsImMiLCJkIiwiZSIsImYiLCJnIiwiaCIsImkiLCJqIiwiayIsImwiLCJtIiwibiIsIm8iLCJwIiwicSIsInIiLCJzIiwidCIsInUiLCJ2IiwidyIsIngiLCJ5IiwieiIsImJyYWNlbGVmdCIsImJhciIsImJyYWNlcmlnaHQiLCJhc2NpaXRpbGRlIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiZXhjbGFtZG93biIsImNlbnQiLCJzdGVybGluZyIsImZyYWN0aW9uIiwieWVuIiwiZmxvcmluIiwic2VjdGlvbiIsImN1cnJlbmN5IiwicXVvdGVzaW5nbGUiLCJxdW90ZWRibGxlZnQiLCJndWlsbGVtb3RsZWZ0IiwiZ3VpbHNpbmdsbGVmdCIsImd1aWxzaW5nbHJpZ2h0IiwiZmkiLCJmbCIsIiIsImVuZGFzaCIsImRhZ2dlciIsImRhZ2dlcmRibCIsInBlcmlvZGNlbnRlcmVkIiwiIiwicGFyYWdyYXBoIiwiYnVsbGV0IiwicXVvdGVzaW5nbGJhc2UiLCJxdW90ZWRibGJhc2UiLCJxdW90ZWRibHJpZ2h0IiwiZ3VpbGxlbW90cmlnaHQiLCJlbGxpcHNpcyIsInBlcnRob3VzYW5kIiwiIiwicXVlc3Rpb25kb3duIiwiIiwiZ3JhdmUiLCJhY3V0ZSIsImNpcmN1bWZsZXgiLCJ0aWxkZSIsIm1hY3JvbiIsImJyZXZlIiwiZG90YWNjZW50IiwiZGllcmVzaXMiLCIiLCJyaW5nIiwiY2VkaWxsYSIsIiIsImh1bmdhcnVtbGF1dCIsIm9nb25layIsImNhcm9uIiwiZW1kYXNoIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiQUUiLCIiLCJvcmRmZW1pbmluZSIsIiIsIiIsIiIsIiIsIkxzbGFzaCIsIk9zbGFzaCIsIk9FIiwib3JkbWFzY3VsaW5lIiwiIiwiIiwiIiwiIiwiIiwiYWUiLCIiLCIiLCIiLCJkb3RsZXNzaSIsIiIsIiIsImxzbGFzaCIsIm9zbGFzaCIsIm9lIiwiZ2VybWFuZGJscyIsIiIsIiIsIiIsIiJdLFFpPVsiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwic3BhY2UiLCJleGNsYW0iLCJxdW90ZWRibCIsIm51bWJlcnNpZ24iLCJkb2xsYXIiLCJwZXJjZW50IiwiYW1wZXJzYW5kIiwicXVvdGVzaW5nbGUiLCJwYXJlbmxlZnQiLCJwYXJlbnJpZ2h0IiwiYXN0ZXJpc2siLCJwbHVzIiwiY29tbWEiLCJoeXBoZW4iLCJwZXJpb2QiLCJzbGFzaCIsInplcm8iLCJvbmUiLCJ0d28iLCJ0aHJlZSIsImZvdXIiLCJmaXZlIiwic2l4Iiwic2V2ZW4iLCJlaWdodCIsIm5pbmUiLCJjb2xvbiIsInNlbWljb2xvbiIsImxlc3MiLCJlcXVhbCIsImdyZWF0ZXIiLCJxdWVzdGlvbiIsImF0IiwiQSIsIkIiLCJDIiwiRCIsIkUiLCJGIiwiRyIsIkgiLCJJIiwiSiIsIksiLCJMIiwiTSIsIk4iLCJPIiwiUCIsIlEiLCJSIiwiUyIsIlQiLCJVIiwiViIsIlciLCJYIiwiWSIsIloiLCJicmFja2V0bGVmdCIsImJhY2tzbGFzaCIsImJyYWNrZXRyaWdodCIsImFzY2lpY2lyY3VtIiwidW5kZXJzY29yZSIsImdyYXZlIiwiYSIsImIiLCJjIiwiZCIsImUiLCJmIiwiZyIsImgiLCJpIiwiaiIsImsiLCJsIiwibSIsIm4iLCJvIiwicCIsInEiLCJyIiwicyIsInQiLCJ1IiwidiIsInciLCJ4IiwieSIsInoiLCJicmFjZWxlZnQiLCJiYXIiLCJicmFjZXJpZ2h0IiwiYXNjaWl0aWxkZSIsImJ1bGxldCIsIkV1cm8iLCJidWxsZXQiLCJxdW90ZXNpbmdsYmFzZSIsImZsb3JpbiIsInF1b3RlZGJsYmFzZSIsImVsbGlwc2lzIiwiZGFnZ2VyIiwiZGFnZ2VyZGJsIiwiY2lyY3VtZmxleCIsInBlcnRob3VzYW5kIiwiU2Nhcm9uIiwiZ3VpbHNpbmdsbGVmdCIsIk9FIiwiYnVsbGV0IiwiWmNhcm9uIiwiYnVsbGV0IiwiYnVsbGV0IiwicXVvdGVsZWZ0IiwicXVvdGVyaWdodCIsInF1b3RlZGJsbGVmdCIsInF1b3RlZGJscmlnaHQiLCJidWxsZXQiLCJlbmRhc2giLCJlbWRhc2giLCJ0aWxkZSIsInRyYWRlbWFyayIsInNjYXJvbiIsImd1aWxzaW5nbHJpZ2h0Iiwib2UiLCJidWxsZXQiLCJ6Y2Fyb24iLCJZZGllcmVzaXMiLCJzcGFjZSIsImV4Y2xhbWRvd24iLCJjZW50Iiwic3RlcmxpbmciLCJjdXJyZW5jeSIsInllbiIsImJyb2tlbmJhciIsInNlY3Rpb24iLCJkaWVyZXNpcyIsImNvcHlyaWdodCIsIm9yZGZlbWluaW5lIiwiZ3VpbGxlbW90bGVmdCIsImxvZ2ljYWxub3QiLCJoeXBoZW4iLCJyZWdpc3RlcmVkIiwibWFjcm9uIiwiZGVncmVlIiwicGx1c21pbnVzIiwidHdvc3VwZXJpb3IiLCJ0aHJlZXN1cGVyaW9yIiwiYWN1dGUiLCJtdSIsInBhcmFncmFwaCIsInBlcmlvZGNlbnRlcmVkIiwiY2VkaWxsYSIsIm9uZXN1cGVyaW9yIiwib3JkbWFzY3VsaW5lIiwiZ3VpbGxlbW90cmlnaHQiLCJvbmVxdWFydGVyIiwib25laGFsZiIsInRocmVlcXVhcnRlcnMiLCJxdWVzdGlvbmRvd24iLCJBZ3JhdmUiLCJBYWN1dGUiLCJBY2lyY3VtZmxleCIsIkF0aWxkZSIsIkFkaWVyZXNpcyIsIkFyaW5nIiwiQUUiLCJDY2VkaWxsYSIsIkVncmF2ZSIsIkVhY3V0ZSIsIkVjaXJjdW1mbGV4IiwiRWRpZXJlc2lzIiwiSWdyYXZlIiwiSWFjdXRlIiwiSWNpcmN1bWZsZXgiLCJJZGllcmVzaXMiLCJFdGgiLCJOdGlsZGUiLCJPZ3JhdmUiLCJPYWN1dGUiLCJPY2lyY3VtZmxleCIsIk90aWxkZSIsIk9kaWVyZXNpcyIsIm11bHRpcGx5IiwiT3NsYXNoIiwiVWdyYXZlIiwiVWFjdXRlIiwiVWNpcmN1bWZsZXgiLCJVZGllcmVzaXMiLCJZYWN1dGUiLCJUaG9ybiIsImdlcm1hbmRibHMiLCJhZ3JhdmUiLCJhYWN1dGUiLCJhY2lyY3VtZmxleCIsImF0aWxkZSIsImFkaWVyZXNpcyIsImFyaW5nIiwiYWUiLCJjY2VkaWxsYSIsImVncmF2ZSIsImVhY3V0ZSIsImVjaXJjdW1mbGV4IiwiZWRpZXJlc2lzIiwiaWdyYXZlIiwiaWFjdXRlIiwiaWNpcmN1bWZsZXgiLCJpZGllcmVzaXMiLCJldGgiLCJudGlsZGUiLCJvZ3JhdmUiLCJvYWN1dGUiLCJvY2lyY3VtZmxleCIsIm90aWxkZSIsIm9kaWVyZXNpcyIsImRpdmlkZSIsIm9zbGFzaCIsInVncmF2ZSIsInVhY3V0ZSIsInVjaXJjdW1mbGV4IiwidWRpZXJlc2lzIiwieWFjdXRlIiwidGhvcm4iLCJ5ZGllcmVzaXMiXSxFaT1bIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsInNwYWNlIiwiZXhjbGFtIiwidW5pdmVyc2FsIiwibnVtYmVyc2lnbiIsImV4aXN0ZW50aWFsIiwicGVyY2VudCIsImFtcGVyc2FuZCIsInN1Y2h0aGF0IiwicGFyZW5sZWZ0IiwicGFyZW5yaWdodCIsImFzdGVyaXNrbWF0aCIsInBsdXMiLCJjb21tYSIsIm1pbnVzIiwicGVyaW9kIiwic2xhc2giLCJ6ZXJvIiwib25lIiwidHdvIiwidGhyZWUiLCJmb3VyIiwiZml2ZSIsInNpeCIsInNldmVuIiwiZWlnaHQiLCJuaW5lIiwiY29sb24iLCJzZW1pY29sb24iLCJsZXNzIiwiZXF1YWwiLCJncmVhdGVyIiwicXVlc3Rpb24iLCJjb25ncnVlbnQiLCJBbHBoYSIsIkJldGEiLCJDaGkiLCJEZWx0YSIsIkVwc2lsb24iLCJQaGkiLCJHYW1tYSIsIkV0YSIsIklvdGEiLCJ0aGV0YTEiLCJLYXBwYSIsIkxhbWJkYSIsIk11IiwiTnUiLCJPbWljcm9uIiwiUGkiLCJUaGV0YSIsIlJobyIsIlNpZ21hIiwiVGF1IiwiVXBzaWxvbiIsInNpZ21hMSIsIk9tZWdhIiwiWGkiLCJQc2kiLCJaZXRhIiwiYnJhY2tldGxlZnQiLCJ0aGVyZWZvcmUiLCJicmFja2V0cmlnaHQiLCJwZXJwZW5kaWN1bGFyIiwidW5kZXJzY29yZSIsInJhZGljYWxleCIsImFscGhhIiwiYmV0YSIsImNoaSIsImRlbHRhIiwiZXBzaWxvbiIsInBoaSIsImdhbW1hIiwiZXRhIiwiaW90YSIsInBoaTEiLCJrYXBwYSIsImxhbWJkYSIsIm11IiwibnUiLCJvbWljcm9uIiwicGkiLCJ0aGV0YSIsInJobyIsInNpZ21hIiwidGF1IiwidXBzaWxvbiIsIm9tZWdhMSIsIm9tZWdhIiwieGkiLCJwc2kiLCJ6ZXRhIiwiYnJhY2VsZWZ0IiwiYmFyIiwiYnJhY2VyaWdodCIsInNpbWlsYXIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJFdXJvIiwiVXBzaWxvbjEiLCJtaW51dGUiLCJsZXNzZXF1YWwiLCJmcmFjdGlvbiIsImluZmluaXR5IiwiZmxvcmluIiwiY2x1YiIsImRpYW1vbmQiLCJoZWFydCIsInNwYWRlIiwiYXJyb3dib3RoIiwiYXJyb3dsZWZ0IiwiYXJyb3d1cCIsImFycm93cmlnaHQiLCJhcnJvd2Rvd24iLCJkZWdyZWUiLCJwbHVzbWludXMiLCJzZWNvbmQiLCJncmVhdGVyZXF1YWwiLCJtdWx0aXBseSIsInByb3BvcnRpb25hbCIsInBhcnRpYWxkaWZmIiwiYnVsbGV0IiwiZGl2aWRlIiwibm90ZXF1YWwiLCJlcXVpdmFsZW5jZSIsImFwcHJveGVxdWFsIiwiZWxsaXBzaXMiLCJhcnJvd3ZlcnRleCIsImFycm93aG9yaXpleCIsImNhcnJpYWdlcmV0dXJuIiwiYWxlcGgiLCJJZnJha3R1ciIsIlJmcmFrdHVyIiwid2VpZXJzdHJhc3MiLCJjaXJjbGVtdWx0aXBseSIsImNpcmNsZXBsdXMiLCJlbXB0eXNldCIsImludGVyc2VjdGlvbiIsInVuaW9uIiwicHJvcGVyc3VwZXJzZXQiLCJyZWZsZXhzdXBlcnNldCIsIm5vdHN1YnNldCIsInByb3BlcnN1YnNldCIsInJlZmxleHN1YnNldCIsImVsZW1lbnQiLCJub3RlbGVtZW50IiwiYW5nbGUiLCJncmFkaWVudCIsInJlZ2lzdGVyc2VyaWYiLCJjb3B5cmlnaHRzZXJpZiIsInRyYWRlbWFya3NlcmlmIiwicHJvZHVjdCIsInJhZGljYWwiLCJkb3RtYXRoIiwibG9naWNhbG5vdCIsImxvZ2ljYWxhbmQiLCJsb2dpY2Fsb3IiLCJhcnJvd2RibGJvdGgiLCJhcnJvd2RibGxlZnQiLCJhcnJvd2RibHVwIiwiYXJyb3dkYmxyaWdodCIsImFycm93ZGJsZG93biIsImxvemVuZ2UiLCJhbmdsZWxlZnQiLCJyZWdpc3RlcnNhbnMiLCJjb3B5cmlnaHRzYW5zIiwidHJhZGVtYXJrc2FucyIsInN1bW1hdGlvbiIsInBhcmVubGVmdHRwIiwicGFyZW5sZWZ0ZXgiLCJwYXJlbmxlZnRidCIsImJyYWNrZXRsZWZ0dHAiLCJicmFja2V0bGVmdGV4IiwiYnJhY2tldGxlZnRidCIsImJyYWNlbGVmdHRwIiwiYnJhY2VsZWZ0bWlkIiwiYnJhY2VsZWZ0YnQiLCJicmFjZWV4IiwiIiwiYW5nbGVyaWdodCIsImludGVncmFsIiwiaW50ZWdyYWx0cCIsImludGVncmFsZXgiLCJpbnRlZ3JhbGJ0IiwicGFyZW5yaWdodHRwIiwicGFyZW5yaWdodGV4IiwicGFyZW5yaWdodGJ0IiwiYnJhY2tldHJpZ2h0dHAiLCJicmFja2V0cmlnaHRleCIsImJyYWNrZXRyaWdodGJ0IiwiYnJhY2VyaWdodHRwIiwiYnJhY2VyaWdodG1pZCIsImJyYWNlcmlnaHRidCIsIiJdLHVpPVsiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwic3BhY2UiLCJhMSIsImEyIiwiYTIwMiIsImEzIiwiYTQiLCJhNSIsImExMTkiLCJhMTE4IiwiYTExNyIsImExMSIsImExMiIsImExMyIsImExNCIsImExNSIsImExNiIsImExMDUiLCJhMTciLCJhMTgiLCJhMTkiLCJhMjAiLCJhMjEiLCJhMjIiLCJhMjMiLCJhMjQiLCJhMjUiLCJhMjYiLCJhMjciLCJhMjgiLCJhNiIsImE3IiwiYTgiLCJhOSIsImExMCIsImEyOSIsImEzMCIsImEzMSIsImEzMiIsImEzMyIsImEzNCIsImEzNSIsImEzNiIsImEzNyIsImEzOCIsImEzOSIsImE0MCIsImE0MSIsImE0MiIsImE0MyIsImE0NCIsImE0NSIsImE0NiIsImE0NyIsImE0OCIsImE0OSIsImE1MCIsImE1MSIsImE1MiIsImE1MyIsImE1NCIsImE1NSIsImE1NiIsImE1NyIsImE1OCIsImE1OSIsImE2MCIsImE2MSIsImE2MiIsImE2MyIsImE2NCIsImE2NSIsImE2NiIsImE2NyIsImE2OCIsImE2OSIsImE3MCIsImE3MSIsImE3MiIsImE3MyIsImE3NCIsImEyMDMiLCJhNzUiLCJhMjA0IiwiYTc2IiwiYTc3IiwiYTc4IiwiYTc5IiwiYTgxIiwiYTgyIiwiYTgzIiwiYTg0IiwiYTk3IiwiYTk4IiwiYTk5IiwiYTEwMCIsIiIsImE4OSIsImE5MCIsImE5MyIsImE5NCIsImE5MSIsImE5MiIsImEyMDUiLCJhODUiLCJhMjA2IiwiYTg2IiwiYTg3IiwiYTg4IiwiYTk1IiwiYTk2IiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiYTEwMSIsImExMDIiLCJhMTAzIiwiYTEwNCIsImExMDYiLCJhMTA3IiwiYTEwOCIsImExMTIiLCJhMTExIiwiYTExMCIsImExMDkiLCJhMTIwIiwiYTEyMSIsImExMjIiLCJhMTIzIiwiYTEyNCIsImExMjUiLCJhMTI2IiwiYTEyNyIsImExMjgiLCJhMTI5IiwiYTEzMCIsImExMzEiLCJhMTMyIiwiYTEzMyIsImExMzQiLCJhMTM1IiwiYTEzNiIsImExMzciLCJhMTM4IiwiYTEzOSIsImExNDAiLCJhMTQxIiwiYTE0MiIsImExNDMiLCJhMTQ0IiwiYTE0NSIsImExNDYiLCJhMTQ3IiwiYTE0OCIsImExNDkiLCJhMTUwIiwiYTE1MSIsImExNTIiLCJhMTUzIiwiYTE1NCIsImExNTUiLCJhMTU2IiwiYTE1NyIsImExNTgiLCJhMTU5IiwiYTE2MCIsImExNjEiLCJhMTYzIiwiYTE2NCIsImExOTYiLCJhMTY1IiwiYTE5MiIsImExNjYiLCJhMTY3IiwiYTE2OCIsImExNjkiLCJhMTcwIiwiYTE3MSIsImExNzIiLCJhMTczIiwiYTE2MiIsImExNzQiLCJhMTc1IiwiYTE3NiIsImExNzciLCJhMTc4IiwiYTE3OSIsImExOTMiLCJhMTgwIiwiYTE5OSIsImExODEiLCJhMjAwIiwiYTE4MiIsIiIsImEyMDEiLCJhMTgzIiwiYTE4NCIsImExOTciLCJhMTg1IiwiYTE5NCIsImExOTgiLCJhMTg2IiwiYTE5NSIsImExODciLCJhMTg4IiwiYTE4OSIsImExOTAiLCJhMTkxIiwiIl07ZnVuY3Rpb24gZ2V0RW5jb2RpbmcoZSl7c3dpdGNoKGUpe2Nhc2UiV2luQW5zaUVuY29kaW5nIjpyZXR1cm4gUWk7Y2FzZSJTdGFuZGFyZEVuY29kaW5nIjpyZXR1cm4gQmk7Y2FzZSJNYWNSb21hbkVuY29kaW5nIjpyZXR1cm4gQ2k7Y2FzZSJTeW1ib2xTZXRFbmNvZGluZyI6cmV0dXJuIEVpO2Nhc2UiWmFwZkRpbmdiYXRzRW5jb2RpbmciOnJldHVybiB1aTtjYXNlIkV4cGVydEVuY29kaW5nIjpyZXR1cm4gbGk7Y2FzZSJNYWNFeHBlcnRFbmNvZGluZyI6cmV0dXJuIGhpO2RlZmF1bHQ6cmV0dXJuIG51bGx9fWNvbnN0IGRpPVsiLm5vdGRlZiIsInNwYWNlIiwiZXhjbGFtIiwicXVvdGVkYmwiLCJudW1iZXJzaWduIiwiZG9sbGFyIiwicGVyY2VudCIsImFtcGVyc2FuZCIsInF1b3RlcmlnaHQiLCJwYXJlbmxlZnQiLCJwYXJlbnJpZ2h0IiwiYXN0ZXJpc2siLCJwbHVzIiwiY29tbWEiLCJoeXBoZW4iLCJwZXJpb2QiLCJzbGFzaCIsInplcm8iLCJvbmUiLCJ0d28iLCJ0aHJlZSIsImZvdXIiLCJmaXZlIiwic2l4Iiwic2V2ZW4iLCJlaWdodCIsIm5pbmUiLCJjb2xvbiIsInNlbWljb2xvbiIsImxlc3MiLCJlcXVhbCIsImdyZWF0ZXIiLCJxdWVzdGlvbiIsImF0IiwiQSIsIkIiLCJDIiwiRCIsIkUiLCJGIiwiRyIsIkgiLCJJIiwiSiIsIksiLCJMIiwiTSIsIk4iLCJPIiwiUCIsIlEiLCJSIiwiUyIsIlQiLCJVIiwiViIsIlciLCJYIiwiWSIsIloiLCJicmFja2V0bGVmdCIsImJhY2tzbGFzaCIsImJyYWNrZXRyaWdodCIsImFzY2lpY2lyY3VtIiwidW5kZXJzY29yZSIsInF1b3RlbGVmdCIsImEiLCJiIiwiYyIsImQiLCJlIiwiZiIsImciLCJoIiwiaSIsImoiLCJrIiwibCIsIm0iLCJuIiwibyIsInAiLCJxIiwiciIsInMiLCJ0IiwidSIsInYiLCJ3IiwieCIsInkiLCJ6IiwiYnJhY2VsZWZ0IiwiYmFyIiwiYnJhY2VyaWdodCIsImFzY2lpdGlsZGUiLCJleGNsYW1kb3duIiwiY2VudCIsInN0ZXJsaW5nIiwiZnJhY3Rpb24iLCJ5ZW4iLCJmbG9yaW4iLCJzZWN0aW9uIiwiY3VycmVuY3kiLCJxdW90ZXNpbmdsZSIsInF1b3RlZGJsbGVmdCIsImd1aWxsZW1vdGxlZnQiLCJndWlsc2luZ2xsZWZ0IiwiZ3VpbHNpbmdscmlnaHQiLCJmaSIsImZsIiwiZW5kYXNoIiwiZGFnZ2VyIiwiZGFnZ2VyZGJsIiwicGVyaW9kY2VudGVyZWQiLCJwYXJhZ3JhcGgiLCJidWxsZXQiLCJxdW90ZXNpbmdsYmFzZSIsInF1b3RlZGJsYmFzZSIsInF1b3RlZGJscmlnaHQiLCJndWlsbGVtb3RyaWdodCIsImVsbGlwc2lzIiwicGVydGhvdXNhbmQiLCJxdWVzdGlvbmRvd24iLCJncmF2ZSIsImFjdXRlIiwiY2lyY3VtZmxleCIsInRpbGRlIiwibWFjcm9uIiwiYnJldmUiLCJkb3RhY2NlbnQiLCJkaWVyZXNpcyIsInJpbmciLCJjZWRpbGxhIiwiaHVuZ2FydW1sYXV0Iiwib2dvbmVrIiwiY2Fyb24iLCJlbWRhc2giLCJBRSIsIm9yZGZlbWluaW5lIiwiTHNsYXNoIiwiT3NsYXNoIiwiT0UiLCJvcmRtYXNjdWxpbmUiLCJhZSIsImRvdGxlc3NpIiwibHNsYXNoIiwib3NsYXNoIiwib2UiLCJnZXJtYW5kYmxzIiwib25lc3VwZXJpb3IiLCJsb2dpY2Fsbm90IiwibXUiLCJ0cmFkZW1hcmsiLCJFdGgiLCJvbmVoYWxmIiwicGx1c21pbnVzIiwiVGhvcm4iLCJvbmVxdWFydGVyIiwiZGl2aWRlIiwiYnJva2VuYmFyIiwiZGVncmVlIiwidGhvcm4iLCJ0aHJlZXF1YXJ0ZXJzIiwidHdvc3VwZXJpb3IiLCJyZWdpc3RlcmVkIiwibWludXMiLCJldGgiLCJtdWx0aXBseSIsInRocmVlc3VwZXJpb3IiLCJjb3B5cmlnaHQiLCJBYWN1dGUiLCJBY2lyY3VtZmxleCIsIkFkaWVyZXNpcyIsIkFncmF2ZSIsIkFyaW5nIiwiQXRpbGRlIiwiQ2NlZGlsbGEiLCJFYWN1dGUiLCJFY2lyY3VtZmxleCIsIkVkaWVyZXNpcyIsIkVncmF2ZSIsIklhY3V0ZSIsIkljaXJjdW1mbGV4IiwiSWRpZXJlc2lzIiwiSWdyYXZlIiwiTnRpbGRlIiwiT2FjdXRlIiwiT2NpcmN1bWZsZXgiLCJPZGllcmVzaXMiLCJPZ3JhdmUiLCJPdGlsZGUiLCJTY2Fyb24iLCJVYWN1dGUiLCJVY2lyY3VtZmxleCIsIlVkaWVyZXNpcyIsIlVncmF2ZSIsIllhY3V0ZSIsIllkaWVyZXNpcyIsIlpjYXJvbiIsImFhY3V0ZSIsImFjaXJjdW1mbGV4IiwiYWRpZXJlc2lzIiwiYWdyYXZlIiwiYXJpbmciLCJhdGlsZGUiLCJjY2VkaWxsYSIsImVhY3V0ZSIsImVjaXJjdW1mbGV4IiwiZWRpZXJlc2lzIiwiZWdyYXZlIiwiaWFjdXRlIiwiaWNpcmN1bWZsZXgiLCJpZGllcmVzaXMiLCJpZ3JhdmUiLCJudGlsZGUiLCJvYWN1dGUiLCJvY2lyY3VtZmxleCIsIm9kaWVyZXNpcyIsIm9ncmF2ZSIsIm90aWxkZSIsInNjYXJvbiIsInVhY3V0ZSIsInVjaXJjdW1mbGV4IiwidWRpZXJlc2lzIiwidWdyYXZlIiwieWFjdXRlIiwieWRpZXJlc2lzIiwiemNhcm9uIiwiZXhjbGFtc21hbGwiLCJIdW5nYXJ1bWxhdXRzbWFsbCIsImRvbGxhcm9sZHN0eWxlIiwiZG9sbGFyc3VwZXJpb3IiLCJhbXBlcnNhbmRzbWFsbCIsIkFjdXRlc21hbGwiLCJwYXJlbmxlZnRzdXBlcmlvciIsInBhcmVucmlnaHRzdXBlcmlvciIsInR3b2RvdGVubGVhZGVyIiwib25lZG90ZW5sZWFkZXIiLCJ6ZXJvb2xkc3R5bGUiLCJvbmVvbGRzdHlsZSIsInR3b29sZHN0eWxlIiwidGhyZWVvbGRzdHlsZSIsImZvdXJvbGRzdHlsZSIsImZpdmVvbGRzdHlsZSIsInNpeG9sZHN0eWxlIiwic2V2ZW5vbGRzdHlsZSIsImVpZ2h0b2xkc3R5bGUiLCJuaW5lb2xkc3R5bGUiLCJjb21tYXN1cGVyaW9yIiwidGhyZWVxdWFydGVyc2VtZGFzaCIsInBlcmlvZHN1cGVyaW9yIiwicXVlc3Rpb25zbWFsbCIsImFzdXBlcmlvciIsImJzdXBlcmlvciIsImNlbnRzdXBlcmlvciIsImRzdXBlcmlvciIsImVzdXBlcmlvciIsImlzdXBlcmlvciIsImxzdXBlcmlvciIsIm1zdXBlcmlvciIsIm5zdXBlcmlvciIsIm9zdXBlcmlvciIsInJzdXBlcmlvciIsInNzdXBlcmlvciIsInRzdXBlcmlvciIsImZmIiwiZmZpIiwiZmZsIiwicGFyZW5sZWZ0aW5mZXJpb3IiLCJwYXJlbnJpZ2h0aW5mZXJpb3IiLCJDaXJjdW1mbGV4c21hbGwiLCJoeXBoZW5zdXBlcmlvciIsIkdyYXZlc21hbGwiLCJBc21hbGwiLCJCc21hbGwiLCJDc21hbGwiLCJEc21hbGwiLCJFc21hbGwiLCJGc21hbGwiLCJHc21hbGwiLCJIc21hbGwiLCJJc21hbGwiLCJKc21hbGwiLCJLc21hbGwiLCJMc21hbGwiLCJNc21hbGwiLCJOc21hbGwiLCJPc21hbGwiLCJQc21hbGwiLCJRc21hbGwiLCJSc21hbGwiLCJTc21hbGwiLCJUc21hbGwiLCJVc21hbGwiLCJWc21hbGwiLCJXc21hbGwiLCJYc21hbGwiLCJZc21hbGwiLCJac21hbGwiLCJjb2xvbm1vbmV0YXJ5Iiwib25lZml0dGVkIiwicnVwaWFoIiwiVGlsZGVzbWFsbCIsImV4Y2xhbWRvd25zbWFsbCIsImNlbnRvbGRzdHlsZSIsIkxzbGFzaHNtYWxsIiwiU2Nhcm9uc21hbGwiLCJaY2Fyb25zbWFsbCIsIkRpZXJlc2lzc21hbGwiLCJCcmV2ZXNtYWxsIiwiQ2Fyb25zbWFsbCIsIkRvdGFjY2VudHNtYWxsIiwiTWFjcm9uc21hbGwiLCJmaWd1cmVkYXNoIiwiaHlwaGVuaW5mZXJpb3IiLCJPZ29uZWtzbWFsbCIsIlJpbmdzbWFsbCIsIkNlZGlsbGFzbWFsbCIsInF1ZXN0aW9uZG93bnNtYWxsIiwib25lZWlnaHRoIiwidGhyZWVlaWdodGhzIiwiZml2ZWVpZ2h0aHMiLCJzZXZlbmVpZ2h0aHMiLCJvbmV0aGlyZCIsInR3b3RoaXJkcyIsInplcm9zdXBlcmlvciIsImZvdXJzdXBlcmlvciIsImZpdmVzdXBlcmlvciIsInNpeHN1cGVyaW9yIiwic2V2ZW5zdXBlcmlvciIsImVpZ2h0c3VwZXJpb3IiLCJuaW5lc3VwZXJpb3IiLCJ6ZXJvaW5mZXJpb3IiLCJvbmVpbmZlcmlvciIsInR3b2luZmVyaW9yIiwidGhyZWVpbmZlcmlvciIsImZvdXJpbmZlcmlvciIsImZpdmVpbmZlcmlvciIsInNpeGluZmVyaW9yIiwic2V2ZW5pbmZlcmlvciIsImVpZ2h0aW5mZXJpb3IiLCJuaW5laW5mZXJpb3IiLCJjZW50aW5mZXJpb3IiLCJkb2xsYXJpbmZlcmlvciIsInBlcmlvZGluZmVyaW9yIiwiY29tbWFpbmZlcmlvciIsIkFncmF2ZXNtYWxsIiwiQWFjdXRlc21hbGwiLCJBY2lyY3VtZmxleHNtYWxsIiwiQXRpbGRlc21hbGwiLCJBZGllcmVzaXNzbWFsbCIsIkFyaW5nc21hbGwiLCJBRXNtYWxsIiwiQ2NlZGlsbGFzbWFsbCIsIkVncmF2ZXNtYWxsIiwiRWFjdXRlc21hbGwiLCJFY2lyY3VtZmxleHNtYWxsIiwiRWRpZXJlc2lzc21hbGwiLCJJZ3JhdmVzbWFsbCIsIklhY3V0ZXNtYWxsIiwiSWNpcmN1bWZsZXhzbWFsbCIsIklkaWVyZXNpc3NtYWxsIiwiRXRoc21hbGwiLCJOdGlsZGVzbWFsbCIsIk9ncmF2ZXNtYWxsIiwiT2FjdXRlc21hbGwiLCJPY2lyY3VtZmxleHNtYWxsIiwiT3RpbGRlc21hbGwiLCJPZGllcmVzaXNzbWFsbCIsIk9Fc21hbGwiLCJPc2xhc2hzbWFsbCIsIlVncmF2ZXNtYWxsIiwiVWFjdXRlc21hbGwiLCJVY2lyY3VtZmxleHNtYWxsIiwiVWRpZXJlc2lzc21hbGwiLCJZYWN1dGVzbWFsbCIsIlRob3Juc21hbGwiLCJZZGllcmVzaXNzbWFsbCIsIjAwMS4wMDAiLCIwMDEuMDAxIiwiMDAxLjAwMiIsIjAwMS4wMDMiLCJCbGFjayIsIkJvbGQiLCJCb29rIiwiTGlnaHQiLCJNZWRpdW0iLCJSZWd1bGFyIiwiUm9tYW4iLCJTZW1pYm9sZCJdLGZpPTM5MSxwaT1bbnVsbCx7aWQ6ImhzdGVtIixtaW46MixzdGFja0NsZWFyaW5nOiEwLHN0ZW06ITB9LG51bGwse2lkOiJ2c3RlbSIsbWluOjIsc3RhY2tDbGVhcmluZzohMCxzdGVtOiEwfSx7aWQ6InZtb3ZldG8iLG1pbjoxLHN0YWNrQ2xlYXJpbmc6ITB9LHtpZDoicmxpbmV0byIsbWluOjIscmVzZXRTdGFjazohMH0se2lkOiJobGluZXRvIixtaW46MSxyZXNldFN0YWNrOiEwfSx7aWQ6InZsaW5ldG8iLG1pbjoxLHJlc2V0U3RhY2s6ITB9LHtpZDoicnJjdXJ2ZXRvIixtaW46NixyZXNldFN0YWNrOiEwfSxudWxsLHtpZDoiY2FsbHN1YnIiLG1pbjoxLHVuZGVmU3RhY2s6ITB9LHtpZDoicmV0dXJuIixtaW46MCx1bmRlZlN0YWNrOiEwfSxudWxsLG51bGwse2lkOiJlbmRjaGFyIixtaW46MCxzdGFja0NsZWFyaW5nOiEwfSxudWxsLG51bGwsbnVsbCx7aWQ6ImhzdGVtaG0iLG1pbjoyLHN0YWNrQ2xlYXJpbmc6ITAsc3RlbTohMH0se2lkOiJoaW50bWFzayIsbWluOjAsc3RhY2tDbGVhcmluZzohMH0se2lkOiJjbnRybWFzayIsbWluOjAsc3RhY2tDbGVhcmluZzohMH0se2lkOiJybW92ZXRvIixtaW46MixzdGFja0NsZWFyaW5nOiEwfSx7aWQ6Imhtb3ZldG8iLG1pbjoxLHN0YWNrQ2xlYXJpbmc6ITB9LHtpZDoidnN0ZW1obSIsbWluOjIsc3RhY2tDbGVhcmluZzohMCxzdGVtOiEwfSx7aWQ6InJjdXJ2ZWxpbmUiLG1pbjo4LHJlc2V0U3RhY2s6ITB9LHtpZDoicmxpbmVjdXJ2ZSIsbWluOjgscmVzZXRTdGFjazohMH0se2lkOiJ2dmN1cnZldG8iLG1pbjo0LHJlc2V0U3RhY2s6ITB9LHtpZDoiaGhjdXJ2ZXRvIixtaW46NCxyZXNldFN0YWNrOiEwfSxudWxsLHtpZDoiY2FsbGdzdWJyIixtaW46MSx1bmRlZlN0YWNrOiEwfSx7aWQ6InZoY3VydmV0byIsbWluOjQscmVzZXRTdGFjazohMH0se2lkOiJodmN1cnZldG8iLG1pbjo0LHJlc2V0U3RhY2s6ITB9XSxtaT1bbnVsbCxudWxsLG51bGwse2lkOiJhbmQiLG1pbjoyLHN0YWNrRGVsdGE6LTF9LHtpZDoib3IiLG1pbjoyLHN0YWNrRGVsdGE6LTF9LHtpZDoibm90IixtaW46MSxzdGFja0RlbHRhOjB9LG51bGwsbnVsbCxudWxsLHtpZDoiYWJzIixtaW46MSxzdGFja0RlbHRhOjB9LHtpZDoiYWRkIixtaW46MixzdGFja0RlbHRhOi0xLHN0YWNrRm4oZSx0KXtlW3QtMl09ZVt0LTJdK2VbdC0xXX19LHtpZDoic3ViIixtaW46MixzdGFja0RlbHRhOi0xLHN0YWNrRm4oZSx0KXtlW3QtMl09ZVt0LTJdLWVbdC0xXX19LHtpZDoiZGl2IixtaW46MixzdGFja0RlbHRhOi0xLHN0YWNrRm4oZSx0KXtlW3QtMl09ZVt0LTJdL2VbdC0xXX19LG51bGwse2lkOiJuZWciLG1pbjoxLHN0YWNrRGVsdGE6MCxzdGFja0ZuKGUsdCl7ZVt0LTFdPS1lW3QtMV19fSx7aWQ6ImVxIixtaW46MixzdGFja0RlbHRhOi0xfSxudWxsLG51bGwse2lkOiJkcm9wIixtaW46MSxzdGFja0RlbHRhOi0xfSxudWxsLHtpZDoicHV0IixtaW46MixzdGFja0RlbHRhOi0yfSx7aWQ6ImdldCIsbWluOjEsc3RhY2tEZWx0YTowfSx7aWQ6ImlmZWxzZSIsbWluOjQsc3RhY2tEZWx0YTotM30se2lkOiJyYW5kb20iLG1pbjowLHN0YWNrRGVsdGE6MX0se2lkOiJtdWwiLG1pbjoyLHN0YWNrRGVsdGE6LTEsc3RhY2tGbihlLHQpe2VbdC0yXT1lW3QtMl0qZVt0LTFdfX0sbnVsbCx7aWQ6InNxcnQiLG1pbjoxLHN0YWNrRGVsdGE6MH0se2lkOiJkdXAiLG1pbjoxLHN0YWNrRGVsdGE6MX0se2lkOiJleGNoIixtaW46MixzdGFja0RlbHRhOjB9LHtpZDoiaW5kZXgiLG1pbjoyLHN0YWNrRGVsdGE6MH0se2lkOiJyb2xsIixtaW46MyxzdGFja0RlbHRhOi0yfSxudWxsLG51bGwsbnVsbCx7aWQ6ImhmbGV4IixtaW46NyxyZXNldFN0YWNrOiEwfSx7aWQ6ImZsZXgiLG1pbjoxMyxyZXNldFN0YWNrOiEwfSx7aWQ6ImhmbGV4MSIsbWluOjkscmVzZXRTdGFjazohMH0se2lkOiJmbGV4MSIsbWluOjExLHJlc2V0U3RhY2s6ITB9XTtjbGFzcyBDRkZQYXJzZXJ7Y29uc3RydWN0b3IoZSx0LGkpe3RoaXMuYnl0ZXM9ZS5nZXRCeXRlcygpO3RoaXMucHJvcGVydGllcz10O3RoaXMuc2VhY0FuYWx5c2lzRW5hYmxlZD0hIWl9cGFyc2UoKXtjb25zdCBlPXRoaXMucHJvcGVydGllcyx0PW5ldyBDRkY7dGhpcy5jZmY9dDtjb25zdCBpPXRoaXMucGFyc2VIZWFkZXIoKSxhPXRoaXMucGFyc2VJbmRleChpLmVuZFBvcykscj10aGlzLnBhcnNlSW5kZXgoYS5lbmRQb3MpLHM9dGhpcy5wYXJzZUluZGV4KHIuZW5kUG9zKSxuPXRoaXMucGFyc2VJbmRleChzLmVuZFBvcyksbz10aGlzLnBhcnNlRGljdChyLm9iai5nZXQoMCkpLGc9dGhpcy5jcmVhdGVEaWN0KENGRlRvcERpY3Qsbyx0LnN0cmluZ3MpO3QuaGVhZGVyPWkub2JqO3QubmFtZXM9dGhpcy5wYXJzZU5hbWVJbmRleChhLm9iaik7dC5zdHJpbmdzPXRoaXMucGFyc2VTdHJpbmdJbmRleChzLm9iaik7dC50b3BEaWN0PWc7dC5nbG9iYWxTdWJySW5kZXg9bi5vYmo7dGhpcy5wYXJzZVByaXZhdGVEaWN0KHQudG9wRGljdCk7dC5pc0NJREZvbnQ9Zy5oYXNOYW1lKCJST1MiKTtjb25zdCBjPWcuZ2V0QnlOYW1lKCJDaGFyU3RyaW5ncyIpLGw9dGhpcy5wYXJzZUluZGV4KGMpLm9iaixoPWcuZ2V0QnlOYW1lKCJGb250TWF0cml4Iik7aCYmKGUuZm9udE1hdHJpeD1oKTtjb25zdCBDPWcuZ2V0QnlOYW1lKCJGb250QkJveCIpO2lmKEMpe2UuYXNjZW50PU1hdGgubWF4KENbM10sQ1sxXSk7ZS5kZXNjZW50PU1hdGgubWluKENbMV0sQ1szXSk7ZS5hc2NlbnRTY2FsZWQ9ITB9bGV0IFEsRTtpZih0LmlzQ0lERm9udCl7Y29uc3QgZT10aGlzLnBhcnNlSW5kZXgoZy5nZXRCeU5hbWUoIkZEQXJyYXkiKSkub2JqO2ZvcihsZXQgaT0wLGE9ZS5jb3VudDtpPGE7KytpKXtjb25zdCBhPWUuZ2V0KGkpLHI9dGhpcy5jcmVhdGVEaWN0KENGRlRvcERpY3QsdGhpcy5wYXJzZURpY3QoYSksdC5zdHJpbmdzKTt0aGlzLnBhcnNlUHJpdmF0ZURpY3Qocik7dC5mZEFycmF5LnB1c2gocil9RT1udWxsO1E9dGhpcy5wYXJzZUNoYXJzZXRzKGcuZ2V0QnlOYW1lKCJjaGFyc2V0IiksbC5jb3VudCx0LnN0cmluZ3MsITApO3QuZmRTZWxlY3Q9dGhpcy5wYXJzZUZEU2VsZWN0KGcuZ2V0QnlOYW1lKCJGRFNlbGVjdCIpLGwuY291bnQpfWVsc2V7UT10aGlzLnBhcnNlQ2hhcnNldHMoZy5nZXRCeU5hbWUoImNoYXJzZXQiKSxsLmNvdW50LHQuc3RyaW5ncywhMSk7RT10aGlzLnBhcnNlRW5jb2RpbmcoZy5nZXRCeU5hbWUoIkVuY29kaW5nIiksZSx0LnN0cmluZ3MsUS5jaGFyc2V0KX10LmNoYXJzZXQ9UTt0LmVuY29kaW5nPUU7Y29uc3QgdT10aGlzLnBhcnNlQ2hhclN0cmluZ3Moe2NoYXJTdHJpbmdzOmwsbG9jYWxTdWJySW5kZXg6Zy5wcml2YXRlRGljdC5zdWJyc0luZGV4LGdsb2JhbFN1YnJJbmRleDpuLm9iaixmZFNlbGVjdDp0LmZkU2VsZWN0LGZkQXJyYXk6dC5mZEFycmF5LHByaXZhdGVEaWN0OmcucHJpdmF0ZURpY3R9KTt0LmNoYXJTdHJpbmdzPXUuY2hhclN0cmluZ3M7dC5zZWFjcz11LnNlYWNzO3Qud2lkdGhzPXUud2lkdGhzO3JldHVybiB0fXBhcnNlSGVhZGVyKCl7bGV0IGU9dGhpcy5ieXRlcztjb25zdCB0PWUubGVuZ3RoO2xldCBpPTA7Zm9yKDtpPHQmJjEhPT1lW2ldOykrK2k7aWYoaT49dCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgQ0ZGIGhlYWRlciIpO2lmKDAhPT1pKXtpbmZvKCJjZmYgZGF0YSBpcyBzaGlmdGVkIik7ZT1lLnN1YmFycmF5KGkpO3RoaXMuYnl0ZXM9ZX1jb25zdCBhPWVbMF0scj1lWzFdLHM9ZVsyXSxuPWVbM107cmV0dXJue29iajpuZXcgQ0ZGSGVhZGVyKGEscixzLG4pLGVuZFBvczpzfX1wYXJzZURpY3QoZSl7bGV0IHQ9MDtmdW5jdGlvbiBwYXJzZU9wZXJhbmQoKXtsZXQgaT1lW3QrK107aWYoMzA9PT1pKXJldHVybiBmdW5jdGlvbiBwYXJzZUZsb2F0T3BlcmFuZCgpe2xldCBpPSIiO2NvbnN0IGE9MTUscj1bIjAiLCIxIiwiMiIsIjMiLCI0IiwiNSIsIjYiLCI3IiwiOCIsIjkiLCIuIiwiRSIsIkUtIixudWxsLCItIl0scz1lLmxlbmd0aDtmb3IoO3Q8czspe2NvbnN0IHM9ZVt0KytdLG49cz4+NCxvPTE1JnM7aWYobj09PWEpYnJlYWs7aSs9cltuXTtpZihvPT09YSlicmVhaztpKz1yW29dfXJldHVybiBwYXJzZUZsb2F0KGkpfSgpO2lmKDI4PT09aSl7aT1lW3QrK107aT0oaTw8MjR8ZVt0KytdPDwxNik+PjE2O3JldHVybiBpfWlmKDI5PT09aSl7aT1lW3QrK107aT1pPDw4fGVbdCsrXTtpPWk8PDh8ZVt0KytdO2k9aTw8OHxlW3QrK107cmV0dXJuIGl9aWYoaT49MzImJmk8PTI0NilyZXR1cm4gaS0xMzk7aWYoaT49MjQ3JiZpPD0yNTApcmV0dXJuIDI1NiooaS0yNDcpK2VbdCsrXSsxMDg7aWYoaT49MjUxJiZpPD0yNTQpcmV0dXJuLTI1NiooaS0yNTEpLWVbdCsrXS0xMDg7d2FybignQ0ZGUGFyc2VyX3BhcnNlRGljdDogIicraSsnIiBpcyBhIHJlc2VydmVkIGNvbW1hbmQuJyk7cmV0dXJuIE5hTn1sZXQgaT1bXTtjb25zdCBhPVtdO3Q9MDtjb25zdCByPWUubGVuZ3RoO2Zvcig7dDxyOyl7bGV0IHI9ZVt0XTtpZihyPD0yMSl7MTI9PT1yJiYocj1yPDw4fGVbKyt0XSk7YS5wdXNoKFtyLGldKTtpPVtdOysrdH1lbHNlIGkucHVzaChwYXJzZU9wZXJhbmQoKSl9cmV0dXJuIGF9cGFyc2VJbmRleChlKXtjb25zdCB0PW5ldyBDRkZJbmRleCxpPXRoaXMuYnl0ZXMsYT1pW2UrK108PDh8aVtlKytdLHI9W107bGV0IHMsbixvPWU7aWYoMCE9PWEpe2NvbnN0IHQ9aVtlKytdLGc9ZSsoYSsxKSp0LTE7Zm9yKHM9MCxuPWErMTtzPG47KytzKXtsZXQgYT0wO2ZvcihsZXQgcj0wO3I8dDsrK3Ipe2E8PD04O2ErPWlbZSsrXX1yLnB1c2goZythKX1vPXJbYV19Zm9yKHM9MCxuPXIubGVuZ3RoLTE7czxuOysrcyl7Y29uc3QgZT1yW3NdLGE9cltzKzFdO3QuYWRkKGkuc3ViYXJyYXkoZSxhKSl9cmV0dXJue29iajp0LGVuZFBvczpvfX1wYXJzZU5hbWVJbmRleChlKXtjb25zdCB0PVtdO2ZvcihsZXQgaT0wLGE9ZS5jb3VudDtpPGE7KytpKXtjb25zdCBhPWUuZ2V0KGkpO3QucHVzaChieXRlc1RvU3RyaW5nKGEpKX1yZXR1cm4gdH1wYXJzZVN0cmluZ0luZGV4KGUpe2NvbnN0IHQ9bmV3IENGRlN0cmluZ3M7Zm9yKGxldCBpPTAsYT1lLmNvdW50O2k8YTsrK2kpe2NvbnN0IGE9ZS5nZXQoaSk7dC5hZGQoYnl0ZXNUb1N0cmluZyhhKSl9cmV0dXJuIHR9Y3JlYXRlRGljdChlLHQsaSl7Y29uc3QgYT1uZXcgZShpKTtmb3IoY29uc3RbZSxpXW9mIHQpYS5zZXRCeUtleShlLGkpO3JldHVybiBhfXBhcnNlQ2hhclN0cmluZyhlLHQsaSxhKXtpZighdHx8ZS5jYWxsRGVwdGg+MTApcmV0dXJuITE7bGV0IHI9ZS5zdGFja1NpemU7Y29uc3Qgcz1lLnN0YWNrO2xldCBuPXQubGVuZ3RoO2ZvcihsZXQgbz0wO288bjspe2NvbnN0IGc9dFtvKytdO2xldCBjPW51bGw7aWYoMTI9PT1nKXtjb25zdCBlPXRbbysrXTtpZigwPT09ZSl7dFtvLTJdPTEzOTt0W28tMV09MjI7cj0wfWVsc2UgYz1taVtlXX1lbHNlIGlmKDI4PT09Zyl7c1tyXT0odFtvXTw8MjR8dFtvKzFdPDwxNik+PjE2O28rPTI7cisrfWVsc2UgaWYoMTQ9PT1nKXtpZihyPj00KXtyLT00O2lmKHRoaXMuc2VhY0FuYWx5c2lzRW5hYmxlZCl7ZS5zZWFjPXMuc2xpY2UocixyKzQpO3JldHVybiExfX1jPXBpW2ddfWVsc2UgaWYoZz49MzImJmc8PTI0Nil7c1tyXT1nLTEzOTtyKyt9ZWxzZSBpZihnPj0yNDcmJmc8PTI1NCl7c1tyXT1nPDI1MT8oZy0yNDc8PDgpK3Rbb10rMTA4Oi0oZy0yNTE8PDgpLXRbb10tMTA4O28rKztyKyt9ZWxzZSBpZigyNTU9PT1nKXtzW3JdPSh0W29dPDwyNHx0W28rMV08PDE2fHRbbysyXTw8OHx0W28rM10pLzY1NTM2O28rPTQ7cisrfWVsc2UgaWYoMTk9PT1nfHwyMD09PWcpe2UuaGludHMrPXI+PjE7aWYoMD09PWUuaGludHMpe3QuY29weVdpdGhpbihvLTEsbywtMSk7by09MTtuLT0xO2NvbnRpbnVlfW8rPWUuaGludHMrNz4+MztyJT0yO2M9cGlbZ119ZWxzZXtpZigxMD09PWd8fDI5PT09Zyl7Y29uc3QgdD0xMD09PWc/aTphO2lmKCF0KXtjPXBpW2ddO3dhcm4oIk1pc3Npbmcgc3VicnNJbmRleCBmb3IgIitjLmlkKTtyZXR1cm4hMX1sZXQgbj0zMjc2ODt0LmNvdW50PDEyNDA/bj0xMDc6dC5jb3VudDwzMzkwMCYmKG49MTEzMSk7Y29uc3Qgbz1zWy0tcl0rbjtpZihvPDB8fG8+PXQuY291bnR8fGlzTmFOKG8pKXtjPXBpW2ddO3dhcm4oIk91dCBvZiBib3VuZHMgc3VickluZGV4IGZvciAiK2MuaWQpO3JldHVybiExfWUuc3RhY2tTaXplPXI7ZS5jYWxsRGVwdGgrKztpZighdGhpcy5wYXJzZUNoYXJTdHJpbmcoZSx0LmdldChvKSxpLGEpKXJldHVybiExO2UuY2FsbERlcHRoLS07cj1lLnN0YWNrU2l6ZTtjb250aW51ZX1pZigxMT09PWcpe2Uuc3RhY2tTaXplPXI7cmV0dXJuITB9aWYoMD09PWcmJm89PT10Lmxlbmd0aCl7dFtvLTFdPTE0O2M9cGlbMTRdfWVsc2V7aWYoOT09PWcpe3QuY29weVdpdGhpbihvLTEsbywtMSk7by09MTtuLT0xO2NvbnRpbnVlfWM9cGlbZ119fWlmKGMpe2lmKGMuc3RlbSl7ZS5oaW50cys9cj4+MTtpZigzPT09Z3x8MjM9PT1nKWUuaGFzVlN0ZW1zPSEwO2Vsc2UgaWYoZS5oYXNWU3RlbXMmJigxPT09Z3x8MTg9PT1nKSl7d2FybigiQ0ZGIHN0ZW0gaGludHMgYXJlIGluIHdyb25nIG9yZGVyIik7dFtvLTFdPTE9PT1nPzM6MjN9fWlmKCJtaW4iaW4gYyYmIWUudW5kZWZTdGFjayYmcjxjLm1pbil7d2FybigiTm90IGVub3VnaCBwYXJhbWV0ZXJzIGZvciAiK2MuaWQrIjsgYWN0dWFsOiAiK3IrIiwgZXhwZWN0ZWQ6ICIrYy5taW4pO2lmKDA9PT1yKXt0W28tMV09MTQ7cmV0dXJuITB9cmV0dXJuITF9aWYoZS5maXJzdFN0YWNrQ2xlYXJpbmcmJmMuc3RhY2tDbGVhcmluZyl7ZS5maXJzdFN0YWNrQ2xlYXJpbmc9ITE7ci09Yy5taW47cj49MiYmYy5zdGVtP3IlPTI6cj4xJiZ3YXJuKCJGb3VuZCB0b28gbWFueSBwYXJhbWV0ZXJzIGZvciBzdGFjay1jbGVhcmluZyBjb21tYW5kIik7cj4wJiYoZS53aWR0aD1zW3ItMV0pfWlmKCJzdGFja0RlbHRhImluIGMpeyJzdGFja0ZuImluIGMmJmMuc3RhY2tGbihzLHIpO3IrPWMuc3RhY2tEZWx0YX1lbHNlIGlmKGMuc3RhY2tDbGVhcmluZylyPTA7ZWxzZSBpZihjLnJlc2V0U3RhY2spe3I9MDtlLnVuZGVmU3RhY2s9ITF9ZWxzZSBpZihjLnVuZGVmU3RhY2spe3I9MDtlLnVuZGVmU3RhY2s9ITA7ZS5maXJzdFN0YWNrQ2xlYXJpbmc9ITF9fX1uPHQubGVuZ3RoJiZ0LmZpbGwoMTQsbik7ZS5zdGFja1NpemU9cjtyZXR1cm4hMH1wYXJzZUNoYXJTdHJpbmdzKHtjaGFyU3RyaW5nczplLGxvY2FsU3VickluZGV4OnQsZ2xvYmFsU3VickluZGV4OmksZmRTZWxlY3Q6YSxmZEFycmF5OnIscHJpdmF0ZURpY3Q6c30pe2NvbnN0IG49W10sbz1bXSxnPWUuY291bnQ7Zm9yKGxldCBjPTA7YzxnO2MrKyl7Y29uc3QgZz1lLmdldChjKSxsPXtjYWxsRGVwdGg6MCxzdGFja1NpemU6MCxzdGFjazpbXSx1bmRlZlN0YWNrOiEwLGhpbnRzOjAsZmlyc3RTdGFja0NsZWFyaW5nOiEwLHNlYWM6bnVsbCx3aWR0aDpudWxsLGhhc1ZTdGVtczohMX07bGV0IGg9ITAsQz1udWxsLFE9cztpZihhJiZyLmxlbmd0aCl7Y29uc3QgZT1hLmdldEZESW5kZXgoYyk7aWYoLTE9PT1lKXt3YXJuKCJHbHlwaCBpbmRleCBpcyBub3QgaW4gZmQgc2VsZWN0LiIpO2g9ITF9aWYoZT49ci5sZW5ndGgpe3dhcm4oIkludmFsaWQgZmQgaW5kZXggZm9yIGdseXBoIGluZGV4LiIpO2g9ITF9aWYoaCl7UT1yW2VdLnByaXZhdGVEaWN0O0M9US5zdWJyc0luZGV4fX1lbHNlIHQmJihDPXQpO2gmJihoPXRoaXMucGFyc2VDaGFyU3RyaW5nKGwsZyxDLGkpKTtpZihudWxsIT09bC53aWR0aCl7Y29uc3QgZT1RLmdldEJ5TmFtZSgibm9taW5hbFdpZHRoWCIpO29bY109ZStsLndpZHRofWVsc2V7Y29uc3QgZT1RLmdldEJ5TmFtZSgiZGVmYXVsdFdpZHRoWCIpO29bY109ZX1udWxsIT09bC5zZWFjJiYobltjXT1sLnNlYWMpO2h8fGUuc2V0KGMsbmV3IFVpbnQ4QXJyYXkoWzE0XSkpfXJldHVybntjaGFyU3RyaW5nczplLHNlYWNzOm4sd2lkdGhzOm99fWVtcHR5UHJpdmF0ZURpY3Rpb25hcnkoZSl7Y29uc3QgdD10aGlzLmNyZWF0ZURpY3QoQ0ZGUHJpdmF0ZURpY3QsW10sZS5zdHJpbmdzKTtlLnNldEJ5S2V5KDE4LFswLDBdKTtlLnByaXZhdGVEaWN0PXR9cGFyc2VQcml2YXRlRGljdChlKXtpZighZS5oYXNOYW1lKCJQcml2YXRlIikpe3RoaXMuZW1wdHlQcml2YXRlRGljdGlvbmFyeShlKTtyZXR1cm59Y29uc3QgdD1lLmdldEJ5TmFtZSgiUHJpdmF0ZSIpO2lmKCFBcnJheS5pc0FycmF5KHQpfHwyIT09dC5sZW5ndGgpe2UucmVtb3ZlQnlOYW1lKCJQcml2YXRlIik7cmV0dXJufWNvbnN0IGk9dFswXSxhPXRbMV07aWYoMD09PWl8fGE+PXRoaXMuYnl0ZXMubGVuZ3RoKXt0aGlzLmVtcHR5UHJpdmF0ZURpY3Rpb25hcnkoZSk7cmV0dXJufWNvbnN0IHI9YStpLHM9dGhpcy5ieXRlcy5zdWJhcnJheShhLHIpLG49dGhpcy5wYXJzZURpY3Qocyksbz10aGlzLmNyZWF0ZURpY3QoQ0ZGUHJpdmF0ZURpY3QsbixlLnN0cmluZ3MpO2UucHJpdmF0ZURpY3Q9bzswPT09by5nZXRCeU5hbWUoIkV4cGFuc2lvbkZhY3RvciIpJiZvLnNldEJ5TmFtZSgiRXhwYW5zaW9uRmFjdG9yIiwuMDYpO2lmKCFvLmdldEJ5TmFtZSgiU3VicnMiKSlyZXR1cm47Y29uc3QgZz1vLmdldEJ5TmFtZSgiU3VicnMiKSxjPWErZztpZigwPT09Z3x8Yz49dGhpcy5ieXRlcy5sZW5ndGgpe3RoaXMuZW1wdHlQcml2YXRlRGljdGlvbmFyeShlKTtyZXR1cm59Y29uc3QgbD10aGlzLnBhcnNlSW5kZXgoYyk7by5zdWJyc0luZGV4PWwub2JqfXBhcnNlQ2hhcnNldHMoZSx0LGksYSl7aWYoMD09PWUpcmV0dXJuIG5ldyBDRkZDaGFyc2V0KCEwLGJpLklTT19BRE9CRSxnaSk7aWYoMT09PWUpcmV0dXJuIG5ldyBDRkZDaGFyc2V0KCEwLGJpLkVYUEVSVCxJaSk7aWYoMj09PWUpcmV0dXJuIG5ldyBDRkZDaGFyc2V0KCEwLGJpLkVYUEVSVF9TVUJTRVQsY2kpO2NvbnN0IHI9dGhpcy5ieXRlcyxzPWUsbj1yW2UrK10sbz1bYT8wOiIubm90ZGVmIl07bGV0IGcsYyxsO3QtPTE7c3dpdGNoKG4pe2Nhc2UgMDpmb3IobD0wO2w8dDtsKyspe2c9cltlKytdPDw4fHJbZSsrXTtvLnB1c2goYT9nOmkuZ2V0KGcpKX1icmVhaztjYXNlIDE6Zm9yKDtvLmxlbmd0aDw9dDspe2c9cltlKytdPDw4fHJbZSsrXTtjPXJbZSsrXTtmb3IobD0wO2w8PWM7bCsrKW8ucHVzaChhP2crKzppLmdldChnKyspKX1icmVhaztjYXNlIDI6Zm9yKDtvLmxlbmd0aDw9dDspe2c9cltlKytdPDw4fHJbZSsrXTtjPXJbZSsrXTw8OHxyW2UrK107Zm9yKGw9MDtsPD1jO2wrKylvLnB1c2goYT9nKys6aS5nZXQoZysrKSl9YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlVua25vd24gY2hhcnNldCBmb3JtYXQiKX1jb25zdCBoPWUsQz1yLnN1YmFycmF5KHMsaCk7cmV0dXJuIG5ldyBDRkZDaGFyc2V0KCExLG4sbyxDKX1wYXJzZUVuY29kaW5nKGUsdCxpLGEpe2NvbnN0IHI9T2JqZWN0LmNyZWF0ZShudWxsKSxzPXRoaXMuYnl0ZXM7bGV0IG4sbyxnLGM9ITEsbD1udWxsO2lmKDA9PT1lfHwxPT09ZSl7Yz0hMDtuPWU7Y29uc3QgdD1lP2xpOkJpO2ZvcihvPTAsZz1hLmxlbmd0aDtvPGc7bysrKXtjb25zdCBlPXQuaW5kZXhPZihhW29dKTstMSE9PWUmJihyW2VdPW8pfX1lbHNle2NvbnN0IHQ9ZTtuPXNbZSsrXTtzd2l0Y2goMTI3Jm4pe2Nhc2UgMDpjb25zdCB0PXNbZSsrXTtmb3Iobz0xO288PXQ7bysrKXJbc1tlKytdXT1vO2JyZWFrO2Nhc2UgMTpjb25zdCBpPXNbZSsrXTtsZXQgYT0xO2ZvcihvPTA7bzxpO28rKyl7Y29uc3QgdD1zW2UrK10saT1zW2UrK107Zm9yKGxldCBlPXQ7ZTw9dCtpO2UrKylyW2VdPWErK31icmVhaztkZWZhdWx0OnRocm93IG5ldyBGb3JtYXRFcnJvcihgVW5rbm93biBlbmNvZGluZyBmb3JtYXQ6ICR7bn0gaW4gQ0ZGYCl9Y29uc3QgZz1lO2lmKDEyOCZuKXtzW3RdJj0xMjc7IWZ1bmN0aW9uIHJlYWRTdXBwbGVtZW50KCl7Y29uc3QgdD1zW2UrK107Zm9yKG89MDtvPHQ7bysrKXtjb25zdCB0PXNbZSsrXSxuPShzW2UrK108PDgpKygyNTUmc1tlKytdKTtyW3RdPWEuaW5kZXhPZihpLmdldChuKSl9fSgpfWw9cy5zdWJhcnJheSh0LGcpfW4mPTEyNztyZXR1cm4gbmV3IENGRkVuY29kaW5nKGMsbixyLGwpfXBhcnNlRkRTZWxlY3QoZSx0KXtjb25zdCBpPXRoaXMuYnl0ZXMsYT1pW2UrK10scj1bXTtsZXQgcztzd2l0Y2goYSl7Y2FzZSAwOmZvcihzPTA7czx0Oysrcyl7Y29uc3QgdD1pW2UrK107ci5wdXNoKHQpfWJyZWFrO2Nhc2UgMzpjb25zdCBuPWlbZSsrXTw8OHxpW2UrK107Zm9yKHM9MDtzPG47KytzKXtsZXQgdD1pW2UrK108PDh8aVtlKytdO2lmKDA9PT1zJiYwIT09dCl7d2FybigicGFyc2VGRFNlbGVjdDogVGhlIGZpcnN0IHJhbmdlIG11c3QgaGF2ZSBhIGZpcnN0IEdJRCBvZiAwIC0tIHRyeWluZyB0byByZWNvdmVyLiIpO3Q9MH1jb25zdCBhPWlbZSsrXSxuPWlbZV08PDh8aVtlKzFdO2ZvcihsZXQgZT10O2U8bjsrK2Upci5wdXNoKGEpfWUrPTI7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYHBhcnNlRkRTZWxlY3Q6IFVua25vd24gZm9ybWF0ICIke2F9Ii5gKX1pZihyLmxlbmd0aCE9PXQpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJwYXJzZUZEU2VsZWN0OiBJbnZhbGlkIGZvbnQgZGF0YS4iKTtyZXR1cm4gbmV3IENGRkZEU2VsZWN0KGEscil9fWNsYXNzIENGRntjb25zdHJ1Y3Rvcigpe3RoaXMuaGVhZGVyPW51bGw7dGhpcy5uYW1lcz1bXTt0aGlzLnRvcERpY3Q9bnVsbDt0aGlzLnN0cmluZ3M9bmV3IENGRlN0cmluZ3M7dGhpcy5nbG9iYWxTdWJySW5kZXg9bnVsbDt0aGlzLmVuY29kaW5nPW51bGw7dGhpcy5jaGFyc2V0PW51bGw7dGhpcy5jaGFyU3RyaW5ncz1udWxsO3RoaXMuZmRBcnJheT1bXTt0aGlzLmZkU2VsZWN0PW51bGw7dGhpcy5pc0NJREZvbnQ9ITF9ZHVwbGljYXRlRmlyc3RHbHlwaCgpe2lmKHRoaXMuY2hhclN0cmluZ3MuY291bnQ+PTY1NTM1KXt3YXJuKCJOb3QgZW5vdWdoIHNwYWNlIGluIGNoYXJzdHJpbmdzIHRvIGR1cGxpY2F0ZSBmaXJzdCBnbHlwaC4iKTtyZXR1cm59Y29uc3QgZT10aGlzLmNoYXJTdHJpbmdzLmdldCgwKTt0aGlzLmNoYXJTdHJpbmdzLmFkZChlKTt0aGlzLmlzQ0lERm9udCYmdGhpcy5mZFNlbGVjdC5mZFNlbGVjdC5wdXNoKHRoaXMuZmRTZWxlY3QuZmRTZWxlY3RbMF0pfWhhc0dseXBoSWQoZSl7aWYoZTwwfHxlPj10aGlzLmNoYXJTdHJpbmdzLmNvdW50KXJldHVybiExO3JldHVybiB0aGlzLmNoYXJTdHJpbmdzLmdldChlKS5sZW5ndGg+MH19Y2xhc3MgQ0ZGSGVhZGVye2NvbnN0cnVjdG9yKGUsdCxpLGEpe3RoaXMubWFqb3I9ZTt0aGlzLm1pbm9yPXQ7dGhpcy5oZHJTaXplPWk7dGhpcy5vZmZTaXplPWF9fWNsYXNzIENGRlN0cmluZ3N7Y29uc3RydWN0b3IoKXt0aGlzLnN0cmluZ3M9W119Z2V0KGUpe3JldHVybiBlPj0wJiZlPD0zOTA/ZGlbZV06ZS1maTw9dGhpcy5zdHJpbmdzLmxlbmd0aD90aGlzLnN0cmluZ3NbZS1maV06ZGlbMF19Z2V0U0lEKGUpe2xldCB0PWRpLmluZGV4T2YoZSk7aWYoLTEhPT10KXJldHVybiB0O3Q9dGhpcy5zdHJpbmdzLmluZGV4T2YoZSk7cmV0dXJuLTEhPT10P3QrZmk6LTF9YWRkKGUpe3RoaXMuc3RyaW5ncy5wdXNoKGUpfWdldCBjb3VudCgpe3JldHVybiB0aGlzLnN0cmluZ3MubGVuZ3RofX1jbGFzcyBDRkZJbmRleHtjb25zdHJ1Y3Rvcigpe3RoaXMub2JqZWN0cz1bXTt0aGlzLmxlbmd0aD0wfWFkZChlKXt0aGlzLmxlbmd0aCs9ZS5sZW5ndGg7dGhpcy5vYmplY3RzLnB1c2goZSl9c2V0KGUsdCl7dGhpcy5sZW5ndGgrPXQubGVuZ3RoLXRoaXMub2JqZWN0c1tlXS5sZW5ndGg7dGhpcy5vYmplY3RzW2VdPXR9Z2V0KGUpe3JldHVybiB0aGlzLm9iamVjdHNbZV19Z2V0IGNvdW50KCl7cmV0dXJuIHRoaXMub2JqZWN0cy5sZW5ndGh9fWNsYXNzIENGRkRpY3R7Y29uc3RydWN0b3IoZSx0KXt0aGlzLmtleVRvTmFtZU1hcD1lLmtleVRvTmFtZU1hcDt0aGlzLm5hbWVUb0tleU1hcD1lLm5hbWVUb0tleU1hcDt0aGlzLmRlZmF1bHRzPWUuZGVmYXVsdHM7dGhpcy50eXBlcz1lLnR5cGVzO3RoaXMub3Bjb2Rlcz1lLm9wY29kZXM7dGhpcy5vcmRlcj1lLm9yZGVyO3RoaXMuc3RyaW5ncz10O3RoaXMudmFsdWVzPU9iamVjdC5jcmVhdGUobnVsbCl9c2V0QnlLZXkoZSx0KXtpZighKGUgaW4gdGhpcy5rZXlUb05hbWVNYXApKXJldHVybiExO2lmKDA9PT10Lmxlbmd0aClyZXR1cm4hMDtmb3IoY29uc3QgaSBvZiB0KWlmKGlzTmFOKGkpKXt3YXJuKGBJbnZhbGlkIENGRkRpY3QgdmFsdWU6ICIke3R9IiBmb3Iga2V5ICIke2V9Ii5gKTtyZXR1cm4hMH1jb25zdCBpPXRoaXMudHlwZXNbZV07Im51bSIhPT1pJiYic2lkIiE9PWkmJiJvZmZzZXQiIT09aXx8KHQ9dFswXSk7dGhpcy52YWx1ZXNbZV09dDtyZXR1cm4hMH1zZXRCeU5hbWUoZSx0KXtpZighKGUgaW4gdGhpcy5uYW1lVG9LZXlNYXApKXRocm93IG5ldyBGb3JtYXRFcnJvcihgSW52YWxpZCBkaWN0aW9uYXJ5IG5hbWUgIiR7ZX0iYCk7dGhpcy52YWx1ZXNbdGhpcy5uYW1lVG9LZXlNYXBbZV1dPXR9aGFzTmFtZShlKXtyZXR1cm4gdGhpcy5uYW1lVG9LZXlNYXBbZV1pbiB0aGlzLnZhbHVlc31nZXRCeU5hbWUoZSl7aWYoIShlIGluIHRoaXMubmFtZVRvS2V5TWFwKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYEludmFsaWQgZGljdGlvbmFyeSBuYW1lICR7ZX0iYCk7Y29uc3QgdD10aGlzLm5hbWVUb0tleU1hcFtlXTtyZXR1cm4gdCBpbiB0aGlzLnZhbHVlcz90aGlzLnZhbHVlc1t0XTp0aGlzLmRlZmF1bHRzW3RdfXJlbW92ZUJ5TmFtZShlKXtkZWxldGUgdGhpcy52YWx1ZXNbdGhpcy5uYW1lVG9LZXlNYXBbZV1dfXN0YXRpYyBjcmVhdGVUYWJsZXMoZSl7Y29uc3QgdD17a2V5VG9OYW1lTWFwOnt9LG5hbWVUb0tleU1hcDp7fSxkZWZhdWx0czp7fSx0eXBlczp7fSxvcGNvZGVzOnt9LG9yZGVyOltdfTtmb3IoY29uc3QgaSBvZiBlKXtjb25zdCBlPUFycmF5LmlzQXJyYXkoaVswXSk/KGlbMF1bMF08PDgpK2lbMF1bMV06aVswXTt0LmtleVRvTmFtZU1hcFtlXT1pWzFdO3QubmFtZVRvS2V5TWFwW2lbMV1dPWU7dC50eXBlc1tlXT1pWzJdO3QuZGVmYXVsdHNbZV09aVszXTt0Lm9wY29kZXNbZV09QXJyYXkuaXNBcnJheShpWzBdKT9pWzBdOltpWzBdXTt0Lm9yZGVyLnB1c2goZSl9cmV0dXJuIHR9fWNvbnN0IHlpPVtbWzEyLDMwXSwiUk9TIixbInNpZCIsInNpZCIsIm51bSJdLG51bGxdLFtbMTIsMjBdLCJTeW50aGV0aWNCYXNlIiwibnVtIixudWxsXSxbMCwidmVyc2lvbiIsInNpZCIsbnVsbF0sWzEsIk5vdGljZSIsInNpZCIsbnVsbF0sW1sxMiwwXSwiQ29weXJpZ2h0Iiwic2lkIixudWxsXSxbMiwiRnVsbE5hbWUiLCJzaWQiLG51bGxdLFszLCJGYW1pbHlOYW1lIiwic2lkIixudWxsXSxbNCwiV2VpZ2h0Iiwic2lkIixudWxsXSxbWzEyLDFdLCJpc0ZpeGVkUGl0Y2giLCJudW0iLDBdLFtbMTIsMl0sIkl0YWxpY0FuZ2xlIiwibnVtIiwwXSxbWzEyLDNdLCJVbmRlcmxpbmVQb3NpdGlvbiIsIm51bSIsLTEwMF0sW1sxMiw0XSwiVW5kZXJsaW5lVGhpY2tuZXNzIiwibnVtIiw1MF0sW1sxMiw1XSwiUGFpbnRUeXBlIiwibnVtIiwwXSxbWzEyLDZdLCJDaGFyc3RyaW5nVHlwZSIsIm51bSIsMl0sW1sxMiw3XSwiRm9udE1hdHJpeCIsWyJudW0iLCJudW0iLCJudW0iLCJudW0iLCJudW0iLCJudW0iXSxbLjAwMSwwLDAsLjAwMSwwLDBdXSxbMTMsIlVuaXF1ZUlEIiwibnVtIixudWxsXSxbNSwiRm9udEJCb3giLFsibnVtIiwibnVtIiwibnVtIiwibnVtIl0sWzAsMCwwLDBdXSxbWzEyLDhdLCJTdHJva2VXaWR0aCIsIm51bSIsMF0sWzE0LCJYVUlEIiwiYXJyYXkiLG51bGxdLFsxNSwiY2hhcnNldCIsIm9mZnNldCIsMF0sWzE2LCJFbmNvZGluZyIsIm9mZnNldCIsMF0sWzE3LCJDaGFyU3RyaW5ncyIsIm9mZnNldCIsMF0sWzE4LCJQcml2YXRlIixbIm9mZnNldCIsIm9mZnNldCJdLG51bGxdLFtbMTIsMjFdLCJQb3N0U2NyaXB0Iiwic2lkIixudWxsXSxbWzEyLDIyXSwiQmFzZUZvbnROYW1lIiwic2lkIixudWxsXSxbWzEyLDIzXSwiQmFzZUZvbnRCbGVuZCIsImRlbHRhIixudWxsXSxbWzEyLDMxXSwiQ0lERm9udFZlcnNpb24iLCJudW0iLDBdLFtbMTIsMzJdLCJDSURGb250UmV2aXNpb24iLCJudW0iLDBdLFtbMTIsMzNdLCJDSURGb250VHlwZSIsIm51bSIsMF0sW1sxMiwzNF0sIkNJRENvdW50IiwibnVtIiw4NzIwXSxbWzEyLDM1XSwiVUlEQmFzZSIsIm51bSIsbnVsbF0sW1sxMiwzN10sIkZEU2VsZWN0Iiwib2Zmc2V0IixudWxsXSxbWzEyLDM2XSwiRkRBcnJheSIsIm9mZnNldCIsbnVsbF0sW1sxMiwzOF0sIkZvbnROYW1lIiwic2lkIixudWxsXV07Y2xhc3MgQ0ZGVG9wRGljdCBleHRlbmRzIENGRkRpY3R7c3RhdGljIGdldCB0YWJsZXMoKXtyZXR1cm4gc2hhZG93KHRoaXMsInRhYmxlcyIsdGhpcy5jcmVhdGVUYWJsZXMoeWkpKX1jb25zdHJ1Y3RvcihlKXtzdXBlcihDRkZUb3BEaWN0LnRhYmxlcyxlKTt0aGlzLnByaXZhdGVEaWN0PW51bGx9fWNvbnN0IHdpPVtbNiwiQmx1ZVZhbHVlcyIsImRlbHRhIixudWxsXSxbNywiT3RoZXJCbHVlcyIsImRlbHRhIixudWxsXSxbOCwiRmFtaWx5Qmx1ZXMiLCJkZWx0YSIsbnVsbF0sWzksIkZhbWlseU90aGVyQmx1ZXMiLCJkZWx0YSIsbnVsbF0sW1sxMiw5XSwiQmx1ZVNjYWxlIiwibnVtIiwuMDM5NjI1XSxbWzEyLDEwXSwiQmx1ZVNoaWZ0IiwibnVtIiw3XSxbWzEyLDExXSwiQmx1ZUZ1enoiLCJudW0iLDFdLFsxMCwiU3RkSFciLCJudW0iLG51bGxdLFsxMSwiU3RkVlciLCJudW0iLG51bGxdLFtbMTIsMTJdLCJTdGVtU25hcEgiLCJkZWx0YSIsbnVsbF0sW1sxMiwxM10sIlN0ZW1TbmFwViIsImRlbHRhIixudWxsXSxbWzEyLDE0XSwiRm9yY2VCb2xkIiwibnVtIiwwXSxbWzEyLDE3XSwiTGFuZ3VhZ2VHcm91cCIsIm51bSIsMF0sW1sxMiwxOF0sIkV4cGFuc2lvbkZhY3RvciIsIm51bSIsLjA2XSxbWzEyLDE5XSwiaW5pdGlhbFJhbmRvbVNlZWQiLCJudW0iLDBdLFsyMCwiZGVmYXVsdFdpZHRoWCIsIm51bSIsMF0sWzIxLCJub21pbmFsV2lkdGhYIiwibnVtIiwwXSxbMTksIlN1YnJzIiwib2Zmc2V0IixudWxsXV07Y2xhc3MgQ0ZGUHJpdmF0ZURpY3QgZXh0ZW5kcyBDRkZEaWN0e3N0YXRpYyBnZXQgdGFibGVzKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJ0YWJsZXMiLHRoaXMuY3JlYXRlVGFibGVzKHdpKSl9Y29uc3RydWN0b3IoZSl7c3VwZXIoQ0ZGUHJpdmF0ZURpY3QudGFibGVzLGUpO3RoaXMuc3VicnNJbmRleD1udWxsfX1jb25zdCBiaT17SVNPX0FET0JFOjAsRVhQRVJUOjEsRVhQRVJUX1NVQlNFVDoyfTtjbGFzcyBDRkZDaGFyc2V0e2NvbnN0cnVjdG9yKGUsdCxpLGEpe3RoaXMucHJlZGVmaW5lZD1lO3RoaXMuZm9ybWF0PXQ7dGhpcy5jaGFyc2V0PWk7dGhpcy5yYXc9YX19Y2xhc3MgQ0ZGRW5jb2Rpbmd7Y29uc3RydWN0b3IoZSx0LGksYSl7dGhpcy5wcmVkZWZpbmVkPWU7dGhpcy5mb3JtYXQ9dDt0aGlzLmVuY29kaW5nPWk7dGhpcy5yYXc9YX19Y2xhc3MgQ0ZGRkRTZWxlY3R7Y29uc3RydWN0b3IoZSx0KXt0aGlzLmZvcm1hdD1lO3RoaXMuZmRTZWxlY3Q9dH1nZXRGREluZGV4KGUpe3JldHVybiBlPDB8fGU+PXRoaXMuZmRTZWxlY3QubGVuZ3RoPy0xOnRoaXMuZmRTZWxlY3RbZV19fWNsYXNzIENGRk9mZnNldFRyYWNrZXJ7Y29uc3RydWN0b3IoKXt0aGlzLm9mZnNldHM9T2JqZWN0LmNyZWF0ZShudWxsKX1pc1RyYWNraW5nKGUpe3JldHVybiBlIGluIHRoaXMub2Zmc2V0c310cmFjayhlLHQpe2lmKGUgaW4gdGhpcy5vZmZzZXRzKXRocm93IG5ldyBGb3JtYXRFcnJvcihgQWxyZWFkeSB0cmFja2luZyBsb2NhdGlvbiBvZiAke2V9YCk7dGhpcy5vZmZzZXRzW2VdPXR9b2Zmc2V0KGUpe2Zvcihjb25zdCB0IGluIHRoaXMub2Zmc2V0cyl0aGlzLm9mZnNldHNbdF0rPWV9c2V0RW50cnlMb2NhdGlvbihlLHQsaSl7aWYoIShlIGluIHRoaXMub2Zmc2V0cykpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBOb3QgdHJhY2tpbmcgbG9jYXRpb24gb2YgJHtlfWApO2NvbnN0IGE9aS5kYXRhLHI9dGhpcy5vZmZzZXRzW2VdO2ZvcihsZXQgZT0wLGk9dC5sZW5ndGg7ZTxpOysrZSl7Y29uc3QgaT01KmUrcixzPWkrMSxuPWkrMixvPWkrMyxnPWkrNDtpZigyOSE9PWFbaV18fDAhPT1hW3NdfHwwIT09YVtuXXx8MCE9PWFbb118fDAhPT1hW2ddKXRocm93IG5ldyBGb3JtYXRFcnJvcigid3JpdGluZyB0byBhbiBvZmZzZXQgdGhhdCBpcyBub3QgZW1wdHkiKTtjb25zdCBjPXRbZV07YVtpXT0yOTthW3NdPWM+PjI0JjI1NTthW25dPWM+PjE2JjI1NTthW29dPWM+PjgmMjU1O2FbZ109MjU1JmN9fX1jbGFzcyBDRkZDb21waWxlcntjb25zdHJ1Y3RvcihlKXt0aGlzLmNmZj1lfWNvbXBpbGUoKXtjb25zdCBlPXRoaXMuY2ZmLHQ9e2RhdGE6W10sbGVuZ3RoOjAsYWRkKGUpe3RyeXt0aGlzLmRhdGEucHVzaCguLi5lKX1jYXRjaHt0aGlzLmRhdGE9dGhpcy5kYXRhLmNvbmNhdChlKX10aGlzLmxlbmd0aD10aGlzLmRhdGEubGVuZ3RofX0saT10aGlzLmNvbXBpbGVIZWFkZXIoZS5oZWFkZXIpO3QuYWRkKGkpO2NvbnN0IGE9dGhpcy5jb21waWxlTmFtZUluZGV4KGUubmFtZXMpO3QuYWRkKGEpO2lmKGUuaXNDSURGb250JiZlLnRvcERpY3QuaGFzTmFtZSgiRm9udE1hdHJpeCIpKXtjb25zdCB0PWUudG9wRGljdC5nZXRCeU5hbWUoIkZvbnRNYXRyaXgiKTtlLnRvcERpY3QucmVtb3ZlQnlOYW1lKCJGb250TWF0cml4Iik7Zm9yKGNvbnN0IGkgb2YgZS5mZEFycmF5KXtsZXQgZT10LnNsaWNlKDApO2kuaGFzTmFtZSgiRm9udE1hdHJpeCIpJiYoZT1VdGlsLnRyYW5zZm9ybShlLGkuZ2V0QnlOYW1lKCJGb250TWF0cml4IikpKTtpLnNldEJ5TmFtZSgiRm9udE1hdHJpeCIsZSl9fWNvbnN0IHI9ZS50b3BEaWN0LmdldEJ5TmFtZSgiWFVJRCIpO3I/Lmxlbmd0aD4xNiYmZS50b3BEaWN0LnJlbW92ZUJ5TmFtZSgiWFVJRCIpO2UudG9wRGljdC5zZXRCeU5hbWUoImNoYXJzZXQiLDApO2xldCBzPXRoaXMuY29tcGlsZVRvcERpY3RzKFtlLnRvcERpY3RdLHQubGVuZ3RoLGUuaXNDSURGb250KTt0LmFkZChzLm91dHB1dCk7Y29uc3Qgbj1zLnRyYWNrZXJzWzBdLG89dGhpcy5jb21waWxlU3RyaW5nSW5kZXgoZS5zdHJpbmdzLnN0cmluZ3MpO3QuYWRkKG8pO2NvbnN0IGc9dGhpcy5jb21waWxlSW5kZXgoZS5nbG9iYWxTdWJySW5kZXgpO3QuYWRkKGcpO2lmKGUuZW5jb2RpbmcmJmUudG9wRGljdC5oYXNOYW1lKCJFbmNvZGluZyIpKWlmKGUuZW5jb2RpbmcucHJlZGVmaW5lZCluLnNldEVudHJ5TG9jYXRpb24oIkVuY29kaW5nIixbZS5lbmNvZGluZy5mb3JtYXRdLHQpO2Vsc2V7Y29uc3QgaT10aGlzLmNvbXBpbGVFbmNvZGluZyhlLmVuY29kaW5nKTtuLnNldEVudHJ5TG9jYXRpb24oIkVuY29kaW5nIixbdC5sZW5ndGhdLHQpO3QuYWRkKGkpfWNvbnN0IGM9dGhpcy5jb21waWxlQ2hhcnNldChlLmNoYXJzZXQsZS5jaGFyU3RyaW5ncy5jb3VudCxlLnN0cmluZ3MsZS5pc0NJREZvbnQpO24uc2V0RW50cnlMb2NhdGlvbigiY2hhcnNldCIsW3QubGVuZ3RoXSx0KTt0LmFkZChjKTtjb25zdCBsPXRoaXMuY29tcGlsZUNoYXJTdHJpbmdzKGUuY2hhclN0cmluZ3MpO24uc2V0RW50cnlMb2NhdGlvbigiQ2hhclN0cmluZ3MiLFt0Lmxlbmd0aF0sdCk7dC5hZGQobCk7aWYoZS5pc0NJREZvbnQpe24uc2V0RW50cnlMb2NhdGlvbigiRkRTZWxlY3QiLFt0Lmxlbmd0aF0sdCk7Y29uc3QgaT10aGlzLmNvbXBpbGVGRFNlbGVjdChlLmZkU2VsZWN0KTt0LmFkZChpKTtzPXRoaXMuY29tcGlsZVRvcERpY3RzKGUuZmRBcnJheSx0Lmxlbmd0aCwhMCk7bi5zZXRFbnRyeUxvY2F0aW9uKCJGREFycmF5IixbdC5sZW5ndGhdLHQpO3QuYWRkKHMub3V0cHV0KTtjb25zdCBhPXMudHJhY2tlcnM7dGhpcy5jb21waWxlUHJpdmF0ZURpY3RzKGUuZmRBcnJheSxhLHQpfXRoaXMuY29tcGlsZVByaXZhdGVEaWN0cyhbZS50b3BEaWN0XSxbbl0sdCk7dC5hZGQoWzBdKTtyZXR1cm4gdC5kYXRhfWVuY29kZU51bWJlcihlKXtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihlKT90aGlzLmVuY29kZUludGVnZXIoZSk6dGhpcy5lbmNvZGVGbG9hdChlKX1zdGF0aWMgZ2V0IEVuY29kZUZsb2F0UmVnRXhwKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJFbmNvZGVGbG9hdFJlZ0V4cCIsL1wuKFxkKj8pKD86OXs1LDIwfXwwezUsMjB9KVxkezAsMn0oPzplKC4rKXwkKS8pfWVuY29kZUZsb2F0KGUpe2xldCB0PWUudG9TdHJpbmcoKTtjb25zdCBpPUNGRkNvbXBpbGVyLkVuY29kZUZsb2F0UmVnRXhwLmV4ZWModCk7aWYoaSl7Y29uc3QgYT1wYXJzZUZsb2F0KCIxZSIrKChpWzJdPytpWzJdOjApK2lbMV0ubGVuZ3RoKSk7dD0oTWF0aC5yb3VuZChlKmEpL2EpLnRvU3RyaW5nKCl9bGV0IGEscixzPSIiO2ZvcihhPTAscj10Lmxlbmd0aDthPHI7KythKXtjb25zdCBlPXRbYV07cys9ImUiPT09ZT8iLSI9PT10WysrYV0/ImMiOiJiIjoiLiI9PT1lPyJhIjoiLSI9PT1lPyJlIjplfXMrPTEmcy5sZW5ndGg/ImYiOiJmZiI7Y29uc3Qgbj1bMzBdO2ZvcihhPTAscj1zLmxlbmd0aDthPHI7YSs9MiluLnB1c2gocGFyc2VJbnQocy5zdWJzdHJpbmcoYSxhKzIpLDE2KSk7cmV0dXJuIG59ZW5jb2RlSW50ZWdlcihlKXtsZXQgdDt0PWU+PS0xMDcmJmU8PTEwNz9bZSsxMzldOmU+PTEwOCYmZTw9MTEzMT9bMjQ3KygoZS09MTA4KT4+OCksMjU1JmVdOmU+PS0xMTMxJiZlPD0tMTA4P1syNTErKChlPS1lLTEwOCk+PjgpLDI1NSZlXTplPj0tMzI3NjgmJmU8PTMyNzY3P1syOCxlPj44JjI1NSwyNTUmZV06WzI5LGU+PjI0JjI1NSxlPj4xNiYyNTUsZT4+OCYyNTUsMjU1JmVdO3JldHVybiB0fWNvbXBpbGVIZWFkZXIoZSl7cmV0dXJuW2UubWFqb3IsZS5taW5vciw0LGUub2ZmU2l6ZV19Y29tcGlsZU5hbWVJbmRleChlKXtjb25zdCB0PW5ldyBDRkZJbmRleDtmb3IoY29uc3QgaSBvZiBlKXtjb25zdCBlPU1hdGgubWluKGkubGVuZ3RoLDEyNyk7bGV0IGE9bmV3IEFycmF5KGUpO2ZvcihsZXQgdD0wO3Q8ZTt0Kyspe2xldCBlPWlbdF07KGU8IiEifHxlPiJ+Inx8IlsiPT09ZXx8Il0iPT09ZXx8IigiPT09ZXx8IikiPT09ZXx8InsiPT09ZXx8In0iPT09ZXx8IjwiPT09ZXx8Ij4iPT09ZXx8Ii8iPT09ZXx8IiUiPT09ZSkmJihlPSJfIik7YVt0XT1lfWE9YS5qb2luKCIiKTsiIj09PWEmJihhPSJCYWRfRm9udF9OYW1lIik7dC5hZGQoc3RyaW5nVG9CeXRlcyhhKSl9cmV0dXJuIHRoaXMuY29tcGlsZUluZGV4KHQpfWNvbXBpbGVUb3BEaWN0cyhlLHQsaSl7Y29uc3QgYT1bXTtsZXQgcj1uZXcgQ0ZGSW5kZXg7Zm9yKGNvbnN0IHMgb2YgZSl7aWYoaSl7cy5yZW1vdmVCeU5hbWUoIkNJREZvbnRWZXJzaW9uIik7cy5yZW1vdmVCeU5hbWUoIkNJREZvbnRSZXZpc2lvbiIpO3MucmVtb3ZlQnlOYW1lKCJDSURGb250VHlwZSIpO3MucmVtb3ZlQnlOYW1lKCJDSURDb3VudCIpO3MucmVtb3ZlQnlOYW1lKCJVSURCYXNlIil9Y29uc3QgZT1uZXcgQ0ZGT2Zmc2V0VHJhY2tlcixuPXRoaXMuY29tcGlsZURpY3QocyxlKTthLnB1c2goZSk7ci5hZGQobik7ZS5vZmZzZXQodCl9cj10aGlzLmNvbXBpbGVJbmRleChyLGEpO3JldHVybnt0cmFja2VyczphLG91dHB1dDpyfX1jb21waWxlUHJpdmF0ZURpY3RzKGUsdCxpKXtmb3IobGV0IGE9MCxyPWUubGVuZ3RoO2E8cjsrK2Epe2NvbnN0IHI9ZVthXSxzPXIucHJpdmF0ZURpY3Q7aWYoIXN8fCFyLmhhc05hbWUoIlByaXZhdGUiKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlRoZXJlIG11c3QgYmUgYSBwcml2YXRlIGRpY3Rpb25hcnkuIik7Y29uc3Qgbj1uZXcgQ0ZGT2Zmc2V0VHJhY2tlcixvPXRoaXMuY29tcGlsZURpY3QocyxuKTtsZXQgZz1pLmxlbmd0aDtuLm9mZnNldChnKTtvLmxlbmd0aHx8KGc9MCk7dFthXS5zZXRFbnRyeUxvY2F0aW9uKCJQcml2YXRlIixbby5sZW5ndGgsZ10saSk7aS5hZGQobyk7aWYocy5zdWJyc0luZGV4JiZzLmhhc05hbWUoIlN1YnJzIikpe2NvbnN0IGU9dGhpcy5jb21waWxlSW5kZXgocy5zdWJyc0luZGV4KTtuLnNldEVudHJ5TG9jYXRpb24oIlN1YnJzIixbby5sZW5ndGhdLGkpO2kuYWRkKGUpfX19Y29tcGlsZURpY3QoZSx0KXtjb25zdCBpPVtdO2Zvcihjb25zdCBhIG9mIGUub3JkZXIpe2lmKCEoYSBpbiBlLnZhbHVlcykpY29udGludWU7bGV0IHI9ZS52YWx1ZXNbYV0scz1lLnR5cGVzW2FdO0FycmF5LmlzQXJyYXkocyl8fChzPVtzXSk7QXJyYXkuaXNBcnJheShyKXx8KHI9W3JdKTtpZigwIT09ci5sZW5ndGgpe2ZvcihsZXQgbj0wLG89cy5sZW5ndGg7bjxvOysrbil7Y29uc3Qgbz1zW25dLGc9cltuXTtzd2l0Y2gobyl7Y2FzZSJudW0iOmNhc2Uic2lkIjppLnB1c2goLi4udGhpcy5lbmNvZGVOdW1iZXIoZykpO2JyZWFrO2Nhc2Uib2Zmc2V0Ijpjb25zdCBzPWUua2V5VG9OYW1lTWFwW2FdO3QuaXNUcmFja2luZyhzKXx8dC50cmFjayhzLGkubGVuZ3RoKTtpLnB1c2goMjksMCwwLDAsMCk7YnJlYWs7Y2FzZSJhcnJheSI6Y2FzZSJkZWx0YSI6aS5wdXNoKC4uLnRoaXMuZW5jb2RlTnVtYmVyKGcpKTtmb3IobGV0IGU9MSx0PXIubGVuZ3RoO2U8dDsrK2UpaS5wdXNoKC4uLnRoaXMuZW5jb2RlTnVtYmVyKHJbZV0pKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBGb3JtYXRFcnJvcihgVW5rbm93biBkYXRhIHR5cGUgb2YgJHtvfWApfX1pLnB1c2goLi4uZS5vcGNvZGVzW2FdKX19cmV0dXJuIGl9Y29tcGlsZVN0cmluZ0luZGV4KGUpe2NvbnN0IHQ9bmV3IENGRkluZGV4O2Zvcihjb25zdCBpIG9mIGUpdC5hZGQoc3RyaW5nVG9CeXRlcyhpKSk7cmV0dXJuIHRoaXMuY29tcGlsZUluZGV4KHQpfWNvbXBpbGVDaGFyU3RyaW5ncyhlKXtjb25zdCB0PW5ldyBDRkZJbmRleDtmb3IobGV0IGk9MDtpPGUuY291bnQ7aSsrKXtjb25zdCBhPWUuZ2V0KGkpOzAhPT1hLmxlbmd0aD90LmFkZChhKTp0LmFkZChuZXcgVWludDhBcnJheShbMTM5LDE0XSkpfXJldHVybiB0aGlzLmNvbXBpbGVJbmRleCh0KX1jb21waWxlQ2hhcnNldChlLHQsaSxhKXtsZXQgcjtjb25zdCBzPXQtMTtpZihhKXI9bmV3IFVpbnQ4QXJyYXkoWzIsMCwwLHM+PjgmMjU1LDI1NSZzXSk7ZWxzZXtyPW5ldyBVaW50OEFycmF5KDErMipzKTtyWzBdPTA7bGV0IHQ9MDtjb25zdCBhPWUuY2hhcnNldC5sZW5ndGg7bGV0IG49ITE7Zm9yKGxldCBzPTE7czxyLmxlbmd0aDtzKz0yKXtsZXQgbz0wO2lmKHQ8YSl7Y29uc3QgYT1lLmNoYXJzZXRbdCsrXTtvPWkuZ2V0U0lEKGEpO2lmKC0xPT09byl7bz0wO2lmKCFuKXtuPSEwO3dhcm4oYENvdWxkbid0IGZpbmQgJHthfSBpbiBDRkYgc3RyaW5nc2ApfX19cltzXT1vPj44JjI1NTtyW3MrMV09MjU1Jm99fXJldHVybiB0aGlzLmNvbXBpbGVUeXBlZEFycmF5KHIpfWNvbXBpbGVFbmNvZGluZyhlKXtyZXR1cm4gdGhpcy5jb21waWxlVHlwZWRBcnJheShlLnJhdyl9Y29tcGlsZUZEU2VsZWN0KGUpe2NvbnN0IHQ9ZS5mb3JtYXQ7bGV0IGksYTtzd2l0Y2godCl7Y2FzZSAwOmk9bmV3IFVpbnQ4QXJyYXkoMStlLmZkU2VsZWN0Lmxlbmd0aCk7aVswXT10O2ZvcihhPTA7YTxlLmZkU2VsZWN0Lmxlbmd0aDthKyspaVthKzFdPWUuZmRTZWxlY3RbYV07YnJlYWs7Y2FzZSAzOmNvbnN0IHI9MDtsZXQgcz1lLmZkU2VsZWN0WzBdO2NvbnN0IG49W3QsMCwwLHI+PjgmMjU1LDI1NSZyLHNdO2ZvcihhPTE7YTxlLmZkU2VsZWN0Lmxlbmd0aDthKyspe2NvbnN0IHQ9ZS5mZFNlbGVjdFthXTtpZih0IT09cyl7bi5wdXNoKGE+PjgmMjU1LDI1NSZhLHQpO3M9dH19Y29uc3Qgbz0obi5sZW5ndGgtMykvMztuWzFdPW8+PjgmMjU1O25bMl09MjU1Jm87bi5wdXNoKGE+PjgmMjU1LDI1NSZhKTtpPW5ldyBVaW50OEFycmF5KG4pfXJldHVybiB0aGlzLmNvbXBpbGVUeXBlZEFycmF5KGkpfWNvbXBpbGVUeXBlZEFycmF5KGUpe3JldHVybiBBcnJheS5mcm9tKGUpfWNvbXBpbGVJbmRleChlLHQ9W10pe2NvbnN0IGk9ZS5vYmplY3RzLGE9aS5sZW5ndGg7aWYoMD09PWEpcmV0dXJuWzAsMF07Y29uc3Qgcj1bYT4+OCYyNTUsMjU1JmFdO2xldCBzLG4sbz0xO2ZvcihzPTA7czxhOysrcylvKz1pW3NdLmxlbmd0aDtuPW88MjU2PzE6bzw2NTUzNj8yOm88MTY3NzcyMTY/Mzo0O3IucHVzaChuKTtsZXQgZz0xO2ZvcihzPTA7czxhKzE7cysrKXsxPT09bj9yLnB1c2goMjU1JmcpOjI9PT1uP3IucHVzaChnPj44JjI1NSwyNTUmZyk6Mz09PW4/ci5wdXNoKGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZyk6ci5wdXNoKGc+Pj4yNCYyNTUsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnKTtpW3NdJiYoZys9aVtzXS5sZW5ndGgpfWZvcihzPTA7czxhO3MrKyl7dFtzXSYmdFtzXS5vZmZzZXQoci5sZW5ndGgpO3IucHVzaCguLi5pW3NdKX1yZXR1cm4gcn19Y29uc3QgRGk9Z2V0TG9va3VwVGFibGVGYWN0b3J5KChmdW5jdGlvbihlKXtlLkE9NjU7ZS5BRT0xOTg7ZS5BRWFjdXRlPTUwODtlLkFFbWFjcm9uPTQ4MjtlLkFFc21hbGw9NjM0NjI7ZS5BYWN1dGU9MTkzO2UuQWFjdXRlc21hbGw9NjM0NTc7ZS5BYnJldmU9MjU4O2UuQWJyZXZlYWN1dGU9Nzg1NDtlLkFicmV2ZWN5cmlsbGljPTEyMzI7ZS5BYnJldmVkb3RiZWxvdz03ODYyO2UuQWJyZXZlZ3JhdmU9Nzg1NjtlLkFicmV2ZWhvb2thYm92ZT03ODU4O2UuQWJyZXZldGlsZGU9Nzg2MDtlLkFjYXJvbj00NjE7ZS5BY2lyY2xlPTkzOTg7ZS5BY2lyY3VtZmxleD0xOTQ7ZS5BY2lyY3VtZmxleGFjdXRlPTc4NDQ7ZS5BY2lyY3VtZmxleGRvdGJlbG93PTc4NTI7ZS5BY2lyY3VtZmxleGdyYXZlPTc4NDY7ZS5BY2lyY3VtZmxleGhvb2thYm92ZT03ODQ4O2UuQWNpcmN1bWZsZXhzbWFsbD02MzQ1ODtlLkFjaXJjdW1mbGV4dGlsZGU9Nzg1MDtlLkFjdXRlPTYzMTc3O2UuQWN1dGVzbWFsbD02MzQxMjtlLkFjeXJpbGxpYz0xMDQwO2UuQWRibGdyYXZlPTUxMjtlLkFkaWVyZXNpcz0xOTY7ZS5BZGllcmVzaXNjeXJpbGxpYz0xMjM0O2UuQWRpZXJlc2lzbWFjcm9uPTQ3ODtlLkFkaWVyZXNpc3NtYWxsPTYzNDYwO2UuQWRvdGJlbG93PTc4NDA7ZS5BZG90bWFjcm9uPTQ4MDtlLkFncmF2ZT0xOTI7ZS5BZ3JhdmVzbWFsbD02MzQ1NjtlLkFob29rYWJvdmU9Nzg0MjtlLkFpZWN5cmlsbGljPTEyMzY7ZS5BaW52ZXJ0ZWRicmV2ZT01MTQ7ZS5BbHBoYT05MTM7ZS5BbHBoYXRvbm9zPTkwMjtlLkFtYWNyb249MjU2O2UuQW1vbm9zcGFjZT02NTMxMztlLkFvZ29uZWs9MjYwO2UuQXJpbmc9MTk3O2UuQXJpbmdhY3V0ZT01MDY7ZS5BcmluZ2JlbG93PTc2ODA7ZS5BcmluZ3NtYWxsPTYzNDYxO2UuQXNtYWxsPTYzMzI5O2UuQXRpbGRlPTE5NTtlLkF0aWxkZXNtYWxsPTYzNDU5O2UuQXliYXJtZW5pYW49MTMyOTtlLkI9NjY7ZS5CY2lyY2xlPTkzOTk7ZS5CZG90YWNjZW50PTc2ODI7ZS5CZG90YmVsb3c9NzY4NDtlLkJlY3lyaWxsaWM9MTA0MTtlLkJlbmFybWVuaWFuPTEzMzA7ZS5CZXRhPTkxNDtlLkJob29rPTM4NTtlLkJsaW5lYmVsb3c9NzY4NjtlLkJtb25vc3BhY2U9NjUzMTQ7ZS5CcmV2ZXNtYWxsPTYzMjIwO2UuQnNtYWxsPTYzMzMwO2UuQnRvcGJhcj0zODY7ZS5DPTY3O2UuQ2Fhcm1lbmlhbj0xMzQyO2UuQ2FjdXRlPTI2MjtlLkNhcm9uPTYzMTc4O2UuQ2Fyb25zbWFsbD02MzIyMTtlLkNjYXJvbj0yNjg7ZS5DY2VkaWxsYT0xOTk7ZS5DY2VkaWxsYWFjdXRlPTc2ODg7ZS5DY2VkaWxsYXNtYWxsPTYzNDYzO2UuQ2NpcmNsZT05NDAwO2UuQ2NpcmN1bWZsZXg9MjY0O2UuQ2RvdD0yNjY7ZS5DZG90YWNjZW50PTI2NjtlLkNlZGlsbGFzbWFsbD02MzQxNjtlLkNoYWFybWVuaWFuPTEzNTM7ZS5DaGVhYmtoYXNpYW5jeXJpbGxpYz0xMjEyO2UuQ2hlY3lyaWxsaWM9MTA2MztlLkNoZWRlc2NlbmRlcmFia2hhc2lhbmN5cmlsbGljPTEyMTQ7ZS5DaGVkZXNjZW5kZXJjeXJpbGxpYz0xMjA2O2UuQ2hlZGllcmVzaXNjeXJpbGxpYz0xMjY4O2UuQ2hlaGFybWVuaWFuPTEzNDc7ZS5DaGVraGFrYXNzaWFuY3lyaWxsaWM9MTIyNztlLkNoZXZlcnRpY2Fsc3Ryb2tlY3lyaWxsaWM9MTIwODtlLkNoaT05MzU7ZS5DaG9vaz0zOTE7ZS5DaXJjdW1mbGV4c21hbGw9NjMyMjI7ZS5DbW9ub3NwYWNlPTY1MzE1O2UuQ29hcm1lbmlhbj0xMzYxO2UuQ3NtYWxsPTYzMzMxO2UuRD02ODtlLkRaPTQ5NztlLkRaY2Fyb249NDUyO2UuRGFhcm1lbmlhbj0xMzMyO2UuRGFmcmljYW49MzkzO2UuRGNhcm9uPTI3MDtlLkRjZWRpbGxhPTc2OTY7ZS5EY2lyY2xlPTk0MDE7ZS5EY2lyY3VtZmxleGJlbG93PTc2OTg7ZS5EY3JvYXQ9MjcyO2UuRGRvdGFjY2VudD03NjkwO2UuRGRvdGJlbG93PTc2OTI7ZS5EZWN5cmlsbGljPTEwNDQ7ZS5EZWljb3B0aWM9MTAwNjtlLkRlbHRhPTg3MTA7ZS5EZWx0YWdyZWVrPTkxNjtlLkRob29rPTM5NDtlLkRpZXJlc2lzPTYzMTc5O2UuRGllcmVzaXNBY3V0ZT02MzE4MDtlLkRpZXJlc2lzR3JhdmU9NjMxODE7ZS5EaWVyZXNpc3NtYWxsPTYzNDAwO2UuRGlnYW1tYWdyZWVrPTk4ODtlLkRqZWN5cmlsbGljPTEwMjY7ZS5EbGluZWJlbG93PTc2OTQ7ZS5EbW9ub3NwYWNlPTY1MzE2O2UuRG90YWNjZW50c21hbGw9NjMyMjM7ZS5Ec2xhc2g9MjcyO2UuRHNtYWxsPTYzMzMyO2UuRHRvcGJhcj0zOTU7ZS5Eej00OTg7ZS5EemNhcm9uPTQ1MztlLkR6ZWFia2hhc2lhbmN5cmlsbGljPTEyNDg7ZS5EemVjeXJpbGxpYz0xMDI5O2UuRHpoZWN5cmlsbGljPTEwMzk7ZS5FPTY5O2UuRWFjdXRlPTIwMTtlLkVhY3V0ZXNtYWxsPTYzNDY1O2UuRWJyZXZlPTI3NjtlLkVjYXJvbj0yODI7ZS5FY2VkaWxsYWJyZXZlPTc3MDg7ZS5FY2hhcm1lbmlhbj0xMzMzO2UuRWNpcmNsZT05NDAyO2UuRWNpcmN1bWZsZXg9MjAyO2UuRWNpcmN1bWZsZXhhY3V0ZT03ODcwO2UuRWNpcmN1bWZsZXhiZWxvdz03NzA0O2UuRWNpcmN1bWZsZXhkb3RiZWxvdz03ODc4O2UuRWNpcmN1bWZsZXhncmF2ZT03ODcyO2UuRWNpcmN1bWZsZXhob29rYWJvdmU9Nzg3NDtlLkVjaXJjdW1mbGV4c21hbGw9NjM0NjY7ZS5FY2lyY3VtZmxleHRpbGRlPTc4NzY7ZS5FY3lyaWxsaWM9MTAyODtlLkVkYmxncmF2ZT01MTY7ZS5FZGllcmVzaXM9MjAzO2UuRWRpZXJlc2lzc21hbGw9NjM0Njc7ZS5FZG90PTI3ODtlLkVkb3RhY2NlbnQ9Mjc4O2UuRWRvdGJlbG93PTc4NjQ7ZS5FZmN5cmlsbGljPTEwNjA7ZS5FZ3JhdmU9MjAwO2UuRWdyYXZlc21hbGw9NjM0NjQ7ZS5FaGFybWVuaWFuPTEzMzU7ZS5FaG9va2Fib3ZlPTc4NjY7ZS5FaWdodHJvbWFuPTg1NTE7ZS5FaW52ZXJ0ZWRicmV2ZT01MTg7ZS5FaW90aWZpZWRjeXJpbGxpYz0xMTI0O2UuRWxjeXJpbGxpYz0xMDUxO2UuRWxldmVucm9tYW49ODU1NDtlLkVtYWNyb249Mjc0O2UuRW1hY3JvbmFjdXRlPTc3MDI7ZS5FbWFjcm9uZ3JhdmU9NzcwMDtlLkVtY3lyaWxsaWM9MTA1MjtlLkVtb25vc3BhY2U9NjUzMTc7ZS5FbmN5cmlsbGljPTEwNTM7ZS5FbmRlc2NlbmRlcmN5cmlsbGljPTExODY7ZS5Fbmc9MzMwO2UuRW5naGVjeXJpbGxpYz0xMTg4O2UuRW5ob29rY3lyaWxsaWM9MTIyMztlLkVvZ29uZWs9MjgwO2UuRW9wZW49NDAwO2UuRXBzaWxvbj05MTc7ZS5FcHNpbG9udG9ub3M9OTA0O2UuRXJjeXJpbGxpYz0xMDU2O2UuRXJldmVyc2VkPTM5ODtlLkVyZXZlcnNlZGN5cmlsbGljPTEwNjk7ZS5Fc2N5cmlsbGljPTEwNTc7ZS5Fc2Rlc2NlbmRlcmN5cmlsbGljPTExOTQ7ZS5Fc2g9NDI1O2UuRXNtYWxsPTYzMzMzO2UuRXRhPTkxOTtlLkV0YXJtZW5pYW49MTMzNjtlLkV0YXRvbm9zPTkwNTtlLkV0aD0yMDg7ZS5FdGhzbWFsbD02MzQ3MjtlLkV0aWxkZT03ODY4O2UuRXRpbGRlYmVsb3c9NzcwNjtlLkV1cm89ODM2NDtlLkV6aD00Mzk7ZS5FemhjYXJvbj00OTQ7ZS5FemhyZXZlcnNlZD00NDA7ZS5GPTcwO2UuRmNpcmNsZT05NDAzO2UuRmRvdGFjY2VudD03NzEwO2UuRmVoYXJtZW5pYW49MTM2NjtlLkZlaWNvcHRpYz05OTY7ZS5GaG9vaz00MDE7ZS5GaXRhY3lyaWxsaWM9MTEzODtlLkZpdmVyb21hbj04NTQ4O2UuRm1vbm9zcGFjZT02NTMxODtlLkZvdXJyb21hbj04NTQ3O2UuRnNtYWxsPTYzMzM0O2UuRz03MTtlLkdCc3F1YXJlPTEzMTkxO2UuR2FjdXRlPTUwMDtlLkdhbW1hPTkxNTtlLkdhbW1hYWZyaWNhbj00MDQ7ZS5HYW5naWFjb3B0aWM9MTAwMjtlLkdicmV2ZT0yODY7ZS5HY2Fyb249NDg2O2UuR2NlZGlsbGE9MjkwO2UuR2NpcmNsZT05NDA0O2UuR2NpcmN1bWZsZXg9Mjg0O2UuR2NvbW1hYWNjZW50PTI5MDtlLkdkb3Q9Mjg4O2UuR2RvdGFjY2VudD0yODg7ZS5HZWN5cmlsbGljPTEwNDM7ZS5HaGFkYXJtZW5pYW49MTM0NjtlLkdoZW1pZGRsZWhvb2tjeXJpbGxpYz0xMTcyO2UuR2hlc3Ryb2tlY3lyaWxsaWM9MTE3MDtlLkdoZXVwdHVybmN5cmlsbGljPTExNjg7ZS5HaG9vaz00MDM7ZS5HaW1hcm1lbmlhbj0xMzMxO2UuR2plY3lyaWxsaWM9MTAyNztlLkdtYWNyb249NzcxMjtlLkdtb25vc3BhY2U9NjUzMTk7ZS5HcmF2ZT02MzE4MjtlLkdyYXZlc21hbGw9NjMzMjg7ZS5Hc21hbGw9NjMzMzU7ZS5Hc21hbGxob29rPTY2NztlLkdzdHJva2U9NDg0O2UuSD03MjtlLkgxODUzMz05Njc5O2UuSDE4NTQzPTk2NDI7ZS5IMTg1NTE9OTY0MztlLkgyMjA3Mz05NjMzO2UuSFBzcXVhcmU9MTMyNTk7ZS5IYWFia2hhc2lhbmN5cmlsbGljPTExOTI7ZS5IYWRlc2NlbmRlcmN5cmlsbGljPTEyMDI7ZS5IYXJkc2lnbmN5cmlsbGljPTEwNjY7ZS5IYmFyPTI5NDtlLkhicmV2ZWJlbG93PTc3MjI7ZS5IY2VkaWxsYT03NzIwO2UuSGNpcmNsZT05NDA1O2UuSGNpcmN1bWZsZXg9MjkyO2UuSGRpZXJlc2lzPTc3MTg7ZS5IZG90YWNjZW50PTc3MTQ7ZS5IZG90YmVsb3c9NzcxNjtlLkhtb25vc3BhY2U9NjUzMjA7ZS5Ib2FybWVuaWFuPTEzNDQ7ZS5Ib3JpY29wdGljPTFlMztlLkhzbWFsbD02MzMzNjtlLkh1bmdhcnVtbGF1dD02MzE4MztlLkh1bmdhcnVtbGF1dHNtYWxsPTYzMjI0O2UuSHpzcXVhcmU9MTMyMDA7ZS5JPTczO2UuSUFjeXJpbGxpYz0xMDcxO2UuSUo9MzA2O2UuSVVjeXJpbGxpYz0xMDcwO2UuSWFjdXRlPTIwNTtlLklhY3V0ZXNtYWxsPTYzNDY5O2UuSWJyZXZlPTMwMDtlLkljYXJvbj00NjM7ZS5JY2lyY2xlPTk0MDY7ZS5JY2lyY3VtZmxleD0yMDY7ZS5JY2lyY3VtZmxleHNtYWxsPTYzNDcwO2UuSWN5cmlsbGljPTEwMzA7ZS5JZGJsZ3JhdmU9NTIwO2UuSWRpZXJlc2lzPTIwNztlLklkaWVyZXNpc2FjdXRlPTc3MjY7ZS5JZGllcmVzaXNjeXJpbGxpYz0xMjUyO2UuSWRpZXJlc2lzc21hbGw9NjM0NzE7ZS5JZG90PTMwNDtlLklkb3RhY2NlbnQ9MzA0O2UuSWRvdGJlbG93PTc4ODI7ZS5JZWJyZXZlY3lyaWxsaWM9MTIzODtlLkllY3lyaWxsaWM9MTA0NTtlLklmcmFrdHVyPTg0NjU7ZS5JZ3JhdmU9MjA0O2UuSWdyYXZlc21hbGw9NjM0Njg7ZS5JaG9va2Fib3ZlPTc4ODA7ZS5JaWN5cmlsbGljPTEwNDg7ZS5JaW52ZXJ0ZWRicmV2ZT01MjI7ZS5JaXNob3J0Y3lyaWxsaWM9MTA0OTtlLkltYWNyb249Mjk4O2UuSW1hY3JvbmN5cmlsbGljPTEyNTA7ZS5JbW9ub3NwYWNlPTY1MzIxO2UuSW5pYXJtZW5pYW49MTMzOTtlLklvY3lyaWxsaWM9MTAyNTtlLklvZ29uZWs9MzAyO2UuSW90YT05MjE7ZS5Jb3RhYWZyaWNhbj00MDY7ZS5Jb3RhZGllcmVzaXM9OTM4O2UuSW90YXRvbm9zPTkwNjtlLklzbWFsbD02MzMzNztlLklzdHJva2U9NDA3O2UuSXRpbGRlPTI5NjtlLkl0aWxkZWJlbG93PTc3MjQ7ZS5JemhpdHNhY3lyaWxsaWM9MTE0MDtlLkl6aGl0c2FkYmxncmF2ZWN5cmlsbGljPTExNDI7ZS5KPTc0O2UuSmFhcm1lbmlhbj0xMzQ1O2UuSmNpcmNsZT05NDA3O2UuSmNpcmN1bWZsZXg9MzA4O2UuSmVjeXJpbGxpYz0xMDMyO2UuSmhlaGFybWVuaWFuPTEzNTU7ZS5KbW9ub3NwYWNlPTY1MzIyO2UuSnNtYWxsPTYzMzM4O2UuSz03NTtlLktCc3F1YXJlPTEzMTg5O2UuS0tzcXVhcmU9MTMyNjE7ZS5LYWJhc2hraXJjeXJpbGxpYz0xMTg0O2UuS2FjdXRlPTc3Mjg7ZS5LYWN5cmlsbGljPTEwNTA7ZS5LYWRlc2NlbmRlcmN5cmlsbGljPTExNzg7ZS5LYWhvb2tjeXJpbGxpYz0xMjE5O2UuS2FwcGE9OTIyO2UuS2FzdHJva2VjeXJpbGxpYz0xMTgyO2UuS2F2ZXJ0aWNhbHN0cm9rZWN5cmlsbGljPTExODA7ZS5LY2Fyb249NDg4O2UuS2NlZGlsbGE9MzEwO2UuS2NpcmNsZT05NDA4O2UuS2NvbW1hYWNjZW50PTMxMDtlLktkb3RiZWxvdz03NzMwO2UuS2VoYXJtZW5pYW49MTM2NDtlLktlbmFybWVuaWFuPTEzNDM7ZS5LaGFjeXJpbGxpYz0xMDYxO2UuS2hlaWNvcHRpYz05OTg7ZS5LaG9vaz00MDg7ZS5LamVjeXJpbGxpYz0xMDM2O2UuS2xpbmViZWxvdz03NzMyO2UuS21vbm9zcGFjZT02NTMyMztlLktvcHBhY3lyaWxsaWM9MTE1MjtlLktvcHBhZ3JlZWs9OTkwO2UuS3NpY3lyaWxsaWM9MTEzNDtlLktzbWFsbD02MzMzOTtlLkw9NzY7ZS5MSj00NTU7ZS5MTD02MzE2NztlLkxhY3V0ZT0zMTM7ZS5MYW1iZGE9OTIzO2UuTGNhcm9uPTMxNztlLkxjZWRpbGxhPTMxNTtlLkxjaXJjbGU9OTQwOTtlLkxjaXJjdW1mbGV4YmVsb3c9Nzc0MDtlLkxjb21tYWFjY2VudD0zMTU7ZS5MZG90PTMxOTtlLkxkb3RhY2NlbnQ9MzE5O2UuTGRvdGJlbG93PTc3MzQ7ZS5MZG90YmVsb3dtYWNyb249NzczNjtlLkxpd25hcm1lbmlhbj0xMzQwO2UuTGo9NDU2O2UuTGplY3lyaWxsaWM9MTAzMztlLkxsaW5lYmVsb3c9NzczODtlLkxtb25vc3BhY2U9NjUzMjQ7ZS5Mc2xhc2g9MzIxO2UuTHNsYXNoc21hbGw9NjMyMjU7ZS5Mc21hbGw9NjMzNDA7ZS5NPTc3O2UuTUJzcXVhcmU9MTMxOTA7ZS5NYWNyb249NjMxODQ7ZS5NYWNyb25zbWFsbD02MzQwNztlLk1hY3V0ZT03NzQyO2UuTWNpcmNsZT05NDEwO2UuTWRvdGFjY2VudD03NzQ0O2UuTWRvdGJlbG93PTc3NDY7ZS5NZW5hcm1lbmlhbj0xMzQ4O2UuTW1vbm9zcGFjZT02NTMyNTtlLk1zbWFsbD02MzM0MTtlLk10dXJuZWQ9NDEyO2UuTXU9OTI0O2UuTj03ODtlLk5KPTQ1ODtlLk5hY3V0ZT0zMjM7ZS5OY2Fyb249MzI3O2UuTmNlZGlsbGE9MzI1O2UuTmNpcmNsZT05NDExO2UuTmNpcmN1bWZsZXhiZWxvdz03NzU0O2UuTmNvbW1hYWNjZW50PTMyNTtlLk5kb3RhY2NlbnQ9Nzc0ODtlLk5kb3RiZWxvdz03NzUwO2UuTmhvb2tsZWZ0PTQxMztlLk5pbmVyb21hbj04NTUyO2UuTmo9NDU5O2UuTmplY3lyaWxsaWM9MTAzNDtlLk5saW5lYmVsb3c9Nzc1MjtlLk5tb25vc3BhY2U9NjUzMjY7ZS5Ob3dhcm1lbmlhbj0xMzUwO2UuTnNtYWxsPTYzMzQyO2UuTnRpbGRlPTIwOTtlLk50aWxkZXNtYWxsPTYzNDczO2UuTnU9OTI1O2UuTz03OTtlLk9FPTMzODtlLk9Fc21hbGw9NjMyMjY7ZS5PYWN1dGU9MjExO2UuT2FjdXRlc21hbGw9NjM0NzU7ZS5PYmFycmVkY3lyaWxsaWM9MTI1NjtlLk9iYXJyZWRkaWVyZXNpc2N5cmlsbGljPTEyNTg7ZS5PYnJldmU9MzM0O2UuT2Nhcm9uPTQ2NTtlLk9jZW50ZXJlZHRpbGRlPTQxNTtlLk9jaXJjbGU9OTQxMjtlLk9jaXJjdW1mbGV4PTIxMjtlLk9jaXJjdW1mbGV4YWN1dGU9Nzg4ODtlLk9jaXJjdW1mbGV4ZG90YmVsb3c9Nzg5NjtlLk9jaXJjdW1mbGV4Z3JhdmU9Nzg5MDtlLk9jaXJjdW1mbGV4aG9va2Fib3ZlPTc4OTI7ZS5PY2lyY3VtZmxleHNtYWxsPTYzNDc2O2UuT2NpcmN1bWZsZXh0aWxkZT03ODk0O2UuT2N5cmlsbGljPTEwNTQ7ZS5PZGJsYWN1dGU9MzM2O2UuT2RibGdyYXZlPTUyNDtlLk9kaWVyZXNpcz0yMTQ7ZS5PZGllcmVzaXNjeXJpbGxpYz0xMjU0O2UuT2RpZXJlc2lzc21hbGw9NjM0Nzg7ZS5PZG90YmVsb3c9Nzg4NDtlLk9nb25la3NtYWxsPTYzMjI3O2UuT2dyYXZlPTIxMDtlLk9ncmF2ZXNtYWxsPTYzNDc0O2UuT2hhcm1lbmlhbj0xMzY1O2UuT2htPTg0ODY7ZS5PaG9va2Fib3ZlPTc4ODY7ZS5PaG9ybj00MTY7ZS5PaG9ybmFjdXRlPTc4OTg7ZS5PaG9ybmRvdGJlbG93PTc5MDY7ZS5PaG9ybmdyYXZlPTc5MDA7ZS5PaG9ybmhvb2thYm92ZT03OTAyO2UuT2hvcm50aWxkZT03OTA0O2UuT2h1bmdhcnVtbGF1dD0zMzY7ZS5PaT00MTg7ZS5PaW52ZXJ0ZWRicmV2ZT01MjY7ZS5PbWFjcm9uPTMzMjtlLk9tYWNyb25hY3V0ZT03NzYyO2UuT21hY3JvbmdyYXZlPTc3NjA7ZS5PbWVnYT04NDg2O2UuT21lZ2FjeXJpbGxpYz0xMTIwO2UuT21lZ2FncmVlaz05Mzc7ZS5PbWVnYXJvdW5kY3lyaWxsaWM9MTE0NjtlLk9tZWdhdGl0bG9jeXJpbGxpYz0xMTQ4O2UuT21lZ2F0b25vcz05MTE7ZS5PbWljcm9uPTkyNztlLk9taWNyb250b25vcz05MDg7ZS5PbW9ub3NwYWNlPTY1MzI3O2UuT25lcm9tYW49ODU0NDtlLk9vZ29uZWs9NDkwO2UuT29nb25la21hY3Jvbj00OTI7ZS5Pb3Blbj0zOTA7ZS5Pc2xhc2g9MjE2O2UuT3NsYXNoYWN1dGU9NTEwO2UuT3NsYXNoc21hbGw9NjM0ODA7ZS5Pc21hbGw9NjMzNDM7ZS5Pc3Ryb2tlYWN1dGU9NTEwO2UuT3RjeXJpbGxpYz0xMTUwO2UuT3RpbGRlPTIxMztlLk90aWxkZWFjdXRlPTc3NTY7ZS5PdGlsZGVkaWVyZXNpcz03NzU4O2UuT3RpbGRlc21hbGw9NjM0Nzc7ZS5QPTgwO2UuUGFjdXRlPTc3NjQ7ZS5QY2lyY2xlPTk0MTM7ZS5QZG90YWNjZW50PTc3NjY7ZS5QZWN5cmlsbGljPTEwNTU7ZS5QZWhhcm1lbmlhbj0xMzU0O2UuUGVtaWRkbGVob29rY3lyaWxsaWM9MTE5MDtlLlBoaT05MzQ7ZS5QaG9vaz00MjA7ZS5QaT05Mjg7ZS5QaXdyYXJtZW5pYW49MTM2MztlLlBtb25vc3BhY2U9NjUzMjg7ZS5Qc2k9OTM2O2UuUHNpY3lyaWxsaWM9MTEzNjtlLlBzbWFsbD02MzM0NDtlLlE9ODE7ZS5RY2lyY2xlPTk0MTQ7ZS5RbW9ub3NwYWNlPTY1MzI5O2UuUXNtYWxsPTYzMzQ1O2UuUj04MjtlLlJhYXJtZW5pYW49MTM1NjtlLlJhY3V0ZT0zNDA7ZS5SY2Fyb249MzQ0O2UuUmNlZGlsbGE9MzQyO2UuUmNpcmNsZT05NDE1O2UuUmNvbW1hYWNjZW50PTM0MjtlLlJkYmxncmF2ZT01Mjg7ZS5SZG90YWNjZW50PTc3Njg7ZS5SZG90YmVsb3c9Nzc3MDtlLlJkb3RiZWxvd21hY3Jvbj03NzcyO2UuUmVoYXJtZW5pYW49MTM2MDtlLlJmcmFrdHVyPTg0NzY7ZS5SaG89OTI5O2UuUmluZ3NtYWxsPTYzMjI4O2UuUmludmVydGVkYnJldmU9NTMwO2UuUmxpbmViZWxvdz03Nzc0O2UuUm1vbm9zcGFjZT02NTMzMDtlLlJzbWFsbD02MzM0NjtlLlJzbWFsbGludmVydGVkPTY0MTtlLlJzbWFsbGludmVydGVkc3VwZXJpb3I9Njk0O2UuUz04MztlLlNGMDEwMDAwPTk0ODQ7ZS5TRjAyMDAwMD05NDkyO2UuU0YwMzAwMDA9OTQ4ODtlLlNGMDQwMDAwPTk0OTY7ZS5TRjA1MDAwMD05NTMyO2UuU0YwNjAwMDA9OTUxNjtlLlNGMDcwMDAwPTk1MjQ7ZS5TRjA4MDAwMD05NTAwO2UuU0YwOTAwMDA9OTUwODtlLlNGMTAwMDAwPTk0NzI7ZS5TRjExMDAwMD05NDc0O2UuU0YxOTAwMDA9OTU2OTtlLlNGMjAwMDAwPTk1NzA7ZS5TRjIxMDAwMD05NTU4O2UuU0YyMjAwMDA9OTU1NztlLlNGMjMwMDAwPTk1NzE7ZS5TRjI0MDAwMD05NTUzO2UuU0YyNTAwMDA9OTU1OTtlLlNGMjYwMDAwPTk1NjU7ZS5TRjI3MDAwMD05NTY0O2UuU0YyODAwMDA9OTU2MztlLlNGMzYwMDAwPTk1NjY7ZS5TRjM3MDAwMD05NTY3O2UuU0YzODAwMDA9OTU2MjtlLlNGMzkwMDAwPTk1NTY7ZS5TRjQwMDAwMD05NTc3O2UuU0Y0MTAwMDA9OTU3NDtlLlNGNDIwMDAwPTk1Njg7ZS5TRjQzMDAwMD05NTUyO2UuU0Y0NDAwMDA9OTU4MDtlLlNGNDUwMDAwPTk1NzU7ZS5TRjQ2MDAwMD05NTc2O2UuU0Y0NzAwMDA9OTU3MjtlLlNGNDgwMDAwPTk1NzM7ZS5TRjQ5MDAwMD05NTYxO2UuU0Y1MDAwMDA9OTU2MDtlLlNGNTEwMDAwPTk1NTQ7ZS5TRjUyMDAwMD05NTU1O2UuU0Y1MzAwMDA9OTU3OTtlLlNGNTQwMDAwPTk1Nzg7ZS5TYWN1dGU9MzQ2O2UuU2FjdXRlZG90YWNjZW50PTc3ODA7ZS5TYW1waWdyZWVrPTk5MjtlLlNjYXJvbj0zNTI7ZS5TY2Fyb25kb3RhY2NlbnQ9Nzc4MjtlLlNjYXJvbnNtYWxsPTYzMjI5O2UuU2NlZGlsbGE9MzUwO2UuU2Nod2E9Mzk5O2UuU2Nod2FjeXJpbGxpYz0xMjQwO2UuU2Nod2FkaWVyZXNpc2N5cmlsbGljPTEyNDI7ZS5TY2lyY2xlPTk0MTY7ZS5TY2lyY3VtZmxleD0zNDg7ZS5TY29tbWFhY2NlbnQ9NTM2O2UuU2RvdGFjY2VudD03Nzc2O2UuU2RvdGJlbG93PTc3Nzg7ZS5TZG90YmVsb3dkb3RhY2NlbnQ9Nzc4NDtlLlNlaGFybWVuaWFuPTEzNTc7ZS5TZXZlbnJvbWFuPTg1NTA7ZS5TaGFhcm1lbmlhbj0xMzUxO2UuU2hhY3lyaWxsaWM9MTA2NDtlLlNoY2hhY3lyaWxsaWM9MTA2NTtlLlNoZWljb3B0aWM9OTk0O2UuU2hoYWN5cmlsbGljPTEyMTA7ZS5TaGltYWNvcHRpYz0xMDA0O2UuU2lnbWE9OTMxO2UuU2l4cm9tYW49ODU0OTtlLlNtb25vc3BhY2U9NjUzMzE7ZS5Tb2Z0c2lnbmN5cmlsbGljPTEwNjg7ZS5Tc21hbGw9NjMzNDc7ZS5TdGlnbWFncmVlaz05ODY7ZS5UPTg0O2UuVGF1PTkzMjtlLlRiYXI9MzU4O2UuVGNhcm9uPTM1NjtlLlRjZWRpbGxhPTM1NDtlLlRjaXJjbGU9OTQxNztlLlRjaXJjdW1mbGV4YmVsb3c9Nzc5MjtlLlRjb21tYWFjY2VudD0zNTQ7ZS5UZG90YWNjZW50PTc3ODY7ZS5UZG90YmVsb3c9Nzc4ODtlLlRlY3lyaWxsaWM9MTA1ODtlLlRlZGVzY2VuZGVyY3lyaWxsaWM9MTE5NjtlLlRlbnJvbWFuPTg1NTM7ZS5UZXRzZWN5cmlsbGljPTEyMDQ7ZS5UaGV0YT05MjA7ZS5UaG9vaz00Mjg7ZS5UaG9ybj0yMjI7ZS5UaG9ybnNtYWxsPTYzNDg2O2UuVGhyZWVyb21hbj04NTQ2O2UuVGlsZGVzbWFsbD02MzIzMDtlLlRpd25hcm1lbmlhbj0xMzU5O2UuVGxpbmViZWxvdz03NzkwO2UuVG1vbm9zcGFjZT02NTMzMjtlLlRvYXJtZW5pYW49MTMzNztlLlRvbmVmaXZlPTQ0NDtlLlRvbmVzaXg9Mzg4O2UuVG9uZXR3bz00MjM7ZS5UcmV0cm9mbGV4aG9vaz00MzA7ZS5Uc2VjeXJpbGxpYz0xMDYyO2UuVHNoZWN5cmlsbGljPTEwMzU7ZS5Uc21hbGw9NjMzNDg7ZS5Ud2VsdmVyb21hbj04NTU1O2UuVHdvcm9tYW49ODU0NTtlLlU9ODU7ZS5VYWN1dGU9MjE4O2UuVWFjdXRlc21hbGw9NjM0ODI7ZS5VYnJldmU9MzY0O2UuVWNhcm9uPTQ2NztlLlVjaXJjbGU9OTQxODtlLlVjaXJjdW1mbGV4PTIxOTtlLlVjaXJjdW1mbGV4YmVsb3c9Nzc5ODtlLlVjaXJjdW1mbGV4c21hbGw9NjM0ODM7ZS5VY3lyaWxsaWM9MTA1OTtlLlVkYmxhY3V0ZT0zNjg7ZS5VZGJsZ3JhdmU9NTMyO2UuVWRpZXJlc2lzPTIyMDtlLlVkaWVyZXNpc2FjdXRlPTQ3MTtlLlVkaWVyZXNpc2JlbG93PTc3OTQ7ZS5VZGllcmVzaXNjYXJvbj00NzM7ZS5VZGllcmVzaXNjeXJpbGxpYz0xMjY0O2UuVWRpZXJlc2lzZ3JhdmU9NDc1O2UuVWRpZXJlc2lzbWFjcm9uPTQ2OTtlLlVkaWVyZXNpc3NtYWxsPTYzNDg0O2UuVWRvdGJlbG93PTc5MDg7ZS5VZ3JhdmU9MjE3O2UuVWdyYXZlc21hbGw9NjM0ODE7ZS5VaG9va2Fib3ZlPTc5MTA7ZS5VaG9ybj00MzE7ZS5VaG9ybmFjdXRlPTc5MTI7ZS5VaG9ybmRvdGJlbG93PTc5MjA7ZS5VaG9ybmdyYXZlPTc5MTQ7ZS5VaG9ybmhvb2thYm92ZT03OTE2O2UuVWhvcm50aWxkZT03OTE4O2UuVWh1bmdhcnVtbGF1dD0zNjg7ZS5VaHVuZ2FydW1sYXV0Y3lyaWxsaWM9MTI2NjtlLlVpbnZlcnRlZGJyZXZlPTUzNDtlLlVrY3lyaWxsaWM9MTE0NDtlLlVtYWNyb249MzYyO2UuVW1hY3JvbmN5cmlsbGljPTEyNjI7ZS5VbWFjcm9uZGllcmVzaXM9NzgwMjtlLlVtb25vc3BhY2U9NjUzMzM7ZS5Vb2dvbmVrPTM3MDtlLlVwc2lsb249OTMzO2UuVXBzaWxvbjE9OTc4O2UuVXBzaWxvbmFjdXRlaG9va3N5bWJvbGdyZWVrPTk3OTtlLlVwc2lsb25hZnJpY2FuPTQzMztlLlVwc2lsb25kaWVyZXNpcz05Mzk7ZS5VcHNpbG9uZGllcmVzaXNob29rc3ltYm9sZ3JlZWs9OTgwO2UuVXBzaWxvbmhvb2tzeW1ib2w9OTc4O2UuVXBzaWxvbnRvbm9zPTkxMDtlLlVyaW5nPTM2NjtlLlVzaG9ydGN5cmlsbGljPTEwMzg7ZS5Vc21hbGw9NjMzNDk7ZS5Vc3RyYWlnaHRjeXJpbGxpYz0xMTk4O2UuVXN0cmFpZ2h0c3Ryb2tlY3lyaWxsaWM9MTIwMDtlLlV0aWxkZT0zNjA7ZS5VdGlsZGVhY3V0ZT03ODAwO2UuVXRpbGRlYmVsb3c9Nzc5NjtlLlY9ODY7ZS5WY2lyY2xlPTk0MTk7ZS5WZG90YmVsb3c9NzgwNjtlLlZlY3lyaWxsaWM9MTA0MjtlLlZld2FybWVuaWFuPTEzNTg7ZS5WaG9vaz00MzQ7ZS5WbW9ub3NwYWNlPTY1MzM0O2UuVm9hcm1lbmlhbj0xMzUyO2UuVnNtYWxsPTYzMzUwO2UuVnRpbGRlPTc4MDQ7ZS5XPTg3O2UuV2FjdXRlPTc4MTA7ZS5XY2lyY2xlPTk0MjA7ZS5XY2lyY3VtZmxleD0zNzI7ZS5XZGllcmVzaXM9NzgxMjtlLldkb3RhY2NlbnQ9NzgxNDtlLldkb3RiZWxvdz03ODE2O2UuV2dyYXZlPTc4MDg7ZS5XbW9ub3NwYWNlPTY1MzM1O2UuV3NtYWxsPTYzMzUxO2UuWD04ODtlLlhjaXJjbGU9OTQyMTtlLlhkaWVyZXNpcz03ODIwO2UuWGRvdGFjY2VudD03ODE4O2UuWGVoYXJtZW5pYW49MTM0MTtlLlhpPTkyNjtlLlhtb25vc3BhY2U9NjUzMzY7ZS5Yc21hbGw9NjMzNTI7ZS5ZPTg5O2UuWWFjdXRlPTIyMTtlLllhY3V0ZXNtYWxsPTYzNDg1O2UuWWF0Y3lyaWxsaWM9MTEyMjtlLlljaXJjbGU9OTQyMjtlLlljaXJjdW1mbGV4PTM3NDtlLllkaWVyZXNpcz0zNzY7ZS5ZZGllcmVzaXNzbWFsbD02MzQ4NztlLllkb3RhY2NlbnQ9NzgyMjtlLllkb3RiZWxvdz03OTI0O2UuWWVyaWN5cmlsbGljPTEwNjc7ZS5ZZXJ1ZGllcmVzaXNjeXJpbGxpYz0xMjcyO2UuWWdyYXZlPTc5MjI7ZS5ZaG9vaz00MzU7ZS5ZaG9va2Fib3ZlPTc5MjY7ZS5ZaWFybWVuaWFuPTEzNDk7ZS5ZaWN5cmlsbGljPTEwMzE7ZS5ZaXduYXJtZW5pYW49MTM2MjtlLlltb25vc3BhY2U9NjUzMzc7ZS5Zc21hbGw9NjMzNTM7ZS5ZdGlsZGU9NzkyODtlLll1c2JpZ2N5cmlsbGljPTExMzA7ZS5ZdXNiaWdpb3RpZmllZGN5cmlsbGljPTExMzI7ZS5ZdXNsaXR0bGVjeXJpbGxpYz0xMTI2O2UuWXVzbGl0dGxlaW90aWZpZWRjeXJpbGxpYz0xMTI4O2UuWj05MDtlLlphYXJtZW5pYW49MTMzNDtlLlphY3V0ZT0zNzc7ZS5aY2Fyb249MzgxO2UuWmNhcm9uc21hbGw9NjMyMzE7ZS5aY2lyY2xlPTk0MjM7ZS5aY2lyY3VtZmxleD03ODI0O2UuWmRvdD0zNzk7ZS5aZG90YWNjZW50PTM3OTtlLlpkb3RiZWxvdz03ODI2O2UuWmVjeXJpbGxpYz0xMDQ3O2UuWmVkZXNjZW5kZXJjeXJpbGxpYz0xMTc2O2UuWmVkaWVyZXNpc2N5cmlsbGljPTEyNDY7ZS5aZXRhPTkxODtlLlpoZWFybWVuaWFuPTEzMzg7ZS5aaGVicmV2ZWN5cmlsbGljPTEyMTc7ZS5aaGVjeXJpbGxpYz0xMDQ2O2UuWmhlZGVzY2VuZGVyY3lyaWxsaWM9MTE3NDtlLlpoZWRpZXJlc2lzY3lyaWxsaWM9MTI0NDtlLlpsaW5lYmVsb3c9NzgyODtlLlptb25vc3BhY2U9NjUzMzg7ZS5ac21hbGw9NjMzNTQ7ZS5ac3Ryb2tlPTQzNztlLmE9OTc7ZS5hYWJlbmdhbGk9MjQzODtlLmFhY3V0ZT0yMjU7ZS5hYWRldmE9MjMxMDtlLmFhZ3VqYXJhdGk9MjY5NDtlLmFhZ3VybXVraGk9MjU2NjtlLmFhbWF0cmFndXJtdWtoaT0yNjIyO2UuYWFydXNxdWFyZT0xMzA1OTtlLmFhdm93ZWxzaWduYmVuZ2FsaT0yNDk0O2UuYWF2b3dlbHNpZ25kZXZhPTIzNjY7ZS5hYXZvd2Vsc2lnbmd1amFyYXRpPTI3NTA7ZS5hYmJyZXZpYXRpb25tYXJrYXJtZW5pYW49MTM3NTtlLmFiYnJldmlhdGlvbnNpZ25kZXZhPTI0MTY7ZS5hYmVuZ2FsaT0yNDM3O2UuYWJvcG9tb2ZvPTEyNTcwO2UuYWJyZXZlPTI1OTtlLmFicmV2ZWFjdXRlPTc4NTU7ZS5hYnJldmVjeXJpbGxpYz0xMjMzO2UuYWJyZXZlZG90YmVsb3c9Nzg2MztlLmFicmV2ZWdyYXZlPTc4NTc7ZS5hYnJldmVob29rYWJvdmU9Nzg1OTtlLmFicmV2ZXRpbGRlPTc4NjE7ZS5hY2Fyb249NDYyO2UuYWNpcmNsZT05NDI0O2UuYWNpcmN1bWZsZXg9MjI2O2UuYWNpcmN1bWZsZXhhY3V0ZT03ODQ1O2UuYWNpcmN1bWZsZXhkb3RiZWxvdz03ODUzO2UuYWNpcmN1bWZsZXhncmF2ZT03ODQ3O2UuYWNpcmN1bWZsZXhob29rYWJvdmU9Nzg0OTtlLmFjaXJjdW1mbGV4dGlsZGU9Nzg1MTtlLmFjdXRlPTE4MDtlLmFjdXRlYmVsb3djbWI9NzkxO2UuYWN1dGVjbWI9NzY5O2UuYWN1dGVjb21iPTc2OTtlLmFjdXRlZGV2YT0yMzg4O2UuYWN1dGVsb3dtb2Q9NzE5O2UuYWN1dGV0b25lY21iPTgzMztlLmFjeXJpbGxpYz0xMDcyO2UuYWRibGdyYXZlPTUxMztlLmFkZGFrZ3VybXVraGk9MjY3MztlLmFkZXZhPTIzMDk7ZS5hZGllcmVzaXM9MjI4O2UuYWRpZXJlc2lzY3lyaWxsaWM9MTIzNTtlLmFkaWVyZXNpc21hY3Jvbj00Nzk7ZS5hZG90YmVsb3c9Nzg0MTtlLmFkb3RtYWNyb249NDgxO2UuYWU9MjMwO2UuYWVhY3V0ZT01MDk7ZS5hZWtvcmVhbj0xMjYyNDtlLmFlbWFjcm9uPTQ4MztlLmFmaWkwMDIwOD04MjEzO2UuYWZpaTA4OTQxPTgzNTY7ZS5hZmlpMTAwMTc9MTA0MDtlLmFmaWkxMDAxOD0xMDQxO2UuYWZpaTEwMDE5PTEwNDI7ZS5hZmlpMTAwMjA9MTA0MztlLmFmaWkxMDAyMT0xMDQ0O2UuYWZpaTEwMDIyPTEwNDU7ZS5hZmlpMTAwMjM9MTAyNTtlLmFmaWkxMDAyND0xMDQ2O2UuYWZpaTEwMDI1PTEwNDc7ZS5hZmlpMTAwMjY9MTA0ODtlLmFmaWkxMDAyNz0xMDQ5O2UuYWZpaTEwMDI4PTEwNTA7ZS5hZmlpMTAwMjk9MTA1MTtlLmFmaWkxMDAzMD0xMDUyO2UuYWZpaTEwMDMxPTEwNTM7ZS5hZmlpMTAwMzI9MTA1NDtlLmFmaWkxMDAzMz0xMDU1O2UuYWZpaTEwMDM0PTEwNTY7ZS5hZmlpMTAwMzU9MTA1NztlLmFmaWkxMDAzNj0xMDU4O2UuYWZpaTEwMDM3PTEwNTk7ZS5hZmlpMTAwMzg9MTA2MDtlLmFmaWkxMDAzOT0xMDYxO2UuYWZpaTEwMDQwPTEwNjI7ZS5hZmlpMTAwNDE9MTA2MztlLmFmaWkxMDA0Mj0xMDY0O2UuYWZpaTEwMDQzPTEwNjU7ZS5hZmlpMTAwNDQ9MTA2NjtlLmFmaWkxMDA0NT0xMDY3O2UuYWZpaTEwMDQ2PTEwNjg7ZS5hZmlpMTAwNDc9MTA2OTtlLmFmaWkxMDA0OD0xMDcwO2UuYWZpaTEwMDQ5PTEwNzE7ZS5hZmlpMTAwNTA9MTE2ODtlLmFmaWkxMDA1MT0xMDI2O2UuYWZpaTEwMDUyPTEwMjc7ZS5hZmlpMTAwNTM9MTAyODtlLmFmaWkxMDA1ND0xMDI5O2UuYWZpaTEwMDU1PTEwMzA7ZS5hZmlpMTAwNTY9MTAzMTtlLmFmaWkxMDA1Nz0xMDMyO2UuYWZpaTEwMDU4PTEwMzM7ZS5hZmlpMTAwNTk9MTAzNDtlLmFmaWkxMDA2MD0xMDM1O2UuYWZpaTEwMDYxPTEwMzY7ZS5hZmlpMTAwNjI9MTAzODtlLmFmaWkxMDA2Mz02MzE3MjtlLmFmaWkxMDA2ND02MzE3MztlLmFmaWkxMDA2NT0xMDcyO2UuYWZpaTEwMDY2PTEwNzM7ZS5hZmlpMTAwNjc9MTA3NDtlLmFmaWkxMDA2OD0xMDc1O2UuYWZpaTEwMDY5PTEwNzY7ZS5hZmlpMTAwNzA9MTA3NztlLmFmaWkxMDA3MT0xMTA1O2UuYWZpaTEwMDcyPTEwNzg7ZS5hZmlpMTAwNzM9MTA3OTtlLmFmaWkxMDA3ND0xMDgwO2UuYWZpaTEwMDc1PTEwODE7ZS5hZmlpMTAwNzY9MTA4MjtlLmFmaWkxMDA3Nz0xMDgzO2UuYWZpaTEwMDc4PTEwODQ7ZS5hZmlpMTAwNzk9MTA4NTtlLmFmaWkxMDA4MD0xMDg2O2UuYWZpaTEwMDgxPTEwODc7ZS5hZmlpMTAwODI9MTA4ODtlLmFmaWkxMDA4Mz0xMDg5O2UuYWZpaTEwMDg0PTEwOTA7ZS5hZmlpMTAwODU9MTA5MTtlLmFmaWkxMDA4Nj0xMDkyO2UuYWZpaTEwMDg3PTEwOTM7ZS5hZmlpMTAwODg9MTA5NDtlLmFmaWkxMDA4OT0xMDk1O2UuYWZpaTEwMDkwPTEwOTY7ZS5hZmlpMTAwOTE9MTA5NztlLmFmaWkxMDA5Mj0xMDk4O2UuYWZpaTEwMDkzPTEwOTk7ZS5hZmlpMTAwOTQ9MTEwMDtlLmFmaWkxMDA5NT0xMTAxO2UuYWZpaTEwMDk2PTExMDI7ZS5hZmlpMTAwOTc9MTEwMztlLmFmaWkxMDA5OD0xMTY5O2UuYWZpaTEwMDk5PTExMDY7ZS5hZmlpMTAxMDA9MTEwNztlLmFmaWkxMDEwMT0xMTA4O2UuYWZpaTEwMTAyPTExMDk7ZS5hZmlpMTAxMDM9MTExMDtlLmFmaWkxMDEwND0xMTExO2UuYWZpaTEwMTA1PTExMTI7ZS5hZmlpMTAxMDY9MTExMztlLmFmaWkxMDEwNz0xMTE0O2UuYWZpaTEwMTA4PTExMTU7ZS5hZmlpMTAxMDk9MTExNjtlLmFmaWkxMDExMD0xMTE4O2UuYWZpaTEwMTQ1PTEwMzk7ZS5hZmlpMTAxNDY9MTEyMjtlLmFmaWkxMDE0Nz0xMTM4O2UuYWZpaTEwMTQ4PTExNDA7ZS5hZmlpMTAxOTI9NjMxNzQ7ZS5hZmlpMTAxOTM9MTExOTtlLmFmaWkxMDE5ND0xMTIzO2UuYWZpaTEwMTk1PTExMzk7ZS5hZmlpMTAxOTY9MTE0MTtlLmFmaWkxMDgzMT02MzE3NTtlLmFmaWkxMDgzMj02MzE3NjtlLmFmaWkxMDg0Nj0xMjQxO2UuYWZpaTI5OT04MjA2O2UuYWZpaTMwMD04MjA3O2UuYWZpaTMwMT04MjA1O2UuYWZpaTU3MzgxPTE2NDI7ZS5hZmlpNTczODg9MTU0ODtlLmFmaWk1NzM5Mj0xNjMyO2UuYWZpaTU3MzkzPTE2MzM7ZS5hZmlpNTczOTQ9MTYzNDtlLmFmaWk1NzM5NT0xNjM1O2UuYWZpaTU3Mzk2PTE2MzY7ZS5hZmlpNTczOTc9MTYzNztlLmFmaWk1NzM5OD0xNjM4O2UuYWZpaTU3Mzk5PTE2Mzk7ZS5hZmlpNTc0MDA9MTY0MDtlLmFmaWk1NzQwMT0xNjQxO2UuYWZpaTU3NDAzPTE1NjM7ZS5hZmlpNTc0MDc9MTU2NztlLmFmaWk1NzQwOT0xNTY5O2UuYWZpaTU3NDEwPTE1NzA7ZS5hZmlpNTc0MTE9MTU3MTtlLmFmaWk1NzQxMj0xNTcyO2UuYWZpaTU3NDEzPTE1NzM7ZS5hZmlpNTc0MTQ9MTU3NDtlLmFmaWk1NzQxNT0xNTc1O2UuYWZpaTU3NDE2PTE1NzY7ZS5hZmlpNTc0MTc9MTU3NztlLmFmaWk1NzQxOD0xNTc4O2UuYWZpaTU3NDE5PTE1Nzk7ZS5hZmlpNTc0MjA9MTU4MDtlLmFmaWk1NzQyMT0xNTgxO2UuYWZpaTU3NDIyPTE1ODI7ZS5hZmlpNTc0MjM9MTU4MztlLmFmaWk1NzQyND0xNTg0O2UuYWZpaTU3NDI1PTE1ODU7ZS5hZmlpNTc0MjY9MTU4NjtlLmFmaWk1NzQyNz0xNTg3O2UuYWZpaTU3NDI4PTE1ODg7ZS5hZmlpNTc0Mjk9MTU4OTtlLmFmaWk1NzQzMD0xNTkwO2UuYWZpaTU3NDMxPTE1OTE7ZS5hZmlpNTc0MzI9MTU5MjtlLmFmaWk1NzQzMz0xNTkzO2UuYWZpaTU3NDM0PTE1OTQ7ZS5hZmlpNTc0NDA9MTYwMDtlLmFmaWk1NzQ0MT0xNjAxO2UuYWZpaTU3NDQyPTE2MDI7ZS5hZmlpNTc0NDM9MTYwMztlLmFmaWk1NzQ0ND0xNjA0O2UuYWZpaTU3NDQ1PTE2MDU7ZS5hZmlpNTc0NDY9MTYwNjtlLmFmaWk1NzQ0OD0xNjA4O2UuYWZpaTU3NDQ5PTE2MDk7ZS5hZmlpNTc0NTA9MTYxMDtlLmFmaWk1NzQ1MT0xNjExO2UuYWZpaTU3NDUyPTE2MTI7ZS5hZmlpNTc0NTM9MTYxMztlLmFmaWk1NzQ1ND0xNjE0O2UuYWZpaTU3NDU1PTE2MTU7ZS5hZmlpNTc0NTY9MTYxNjtlLmFmaWk1NzQ1Nz0xNjE3O2UuYWZpaTU3NDU4PTE2MTg7ZS5hZmlpNTc0NzA9MTYwNztlLmFmaWk1NzUwNT0xNzAwO2UuYWZpaTU3NTA2PTE2NjI7ZS5hZmlpNTc1MDc9MTY3MDtlLmFmaWk1NzUwOD0xNjg4O2UuYWZpaTU3NTA5PTE3MTE7ZS5hZmlpNTc1MTE9MTY1NztlLmFmaWk1NzUxMj0xNjcyO2UuYWZpaTU3NTEzPTE2ODE7ZS5hZmlpNTc1MTQ9MTcyMjtlLmFmaWk1NzUxOT0xNzQ2O2UuYWZpaTU3NTM0PTE3NDk7ZS5hZmlpNTc2MzY9ODM2MjtlLmFmaWk1NzY0NT0xNDcwO2UuYWZpaTU3NjU4PTE0NzU7ZS5hZmlpNTc2NjQ9MTQ4ODtlLmFmaWk1NzY2NT0xNDg5O2UuYWZpaTU3NjY2PTE0OTA7ZS5hZmlpNTc2Njc9MTQ5MTtlLmFmaWk1NzY2OD0xNDkyO2UuYWZpaTU3NjY5PTE0OTM7ZS5hZmlpNTc2NzA9MTQ5NDtlLmFmaWk1NzY3MT0xNDk1O2UuYWZpaTU3NjcyPTE0OTY7ZS5hZmlpNTc2NzM9MTQ5NztlLmFmaWk1NzY3ND0xNDk4O2UuYWZpaTU3Njc1PTE0OTk7ZS5hZmlpNTc2NzY9MTUwMDtlLmFmaWk1NzY3Nz0xNTAxO2UuYWZpaTU3Njc4PTE1MDI7ZS5hZmlpNTc2Nzk9MTUwMztlLmFmaWk1NzY4MD0xNTA0O2UuYWZpaTU3NjgxPTE1MDU7ZS5hZmlpNTc2ODI9MTUwNjtlLmFmaWk1NzY4Mz0xNTA3O2UuYWZpaTU3Njg0PTE1MDg7ZS5hZmlpNTc2ODU9MTUwOTtlLmFmaWk1NzY4Nj0xNTEwO2UuYWZpaTU3Njg3PTE1MTE7ZS5hZmlpNTc2ODg9MTUxMjtlLmFmaWk1NzY4OT0xNTEzO2UuYWZpaTU3NjkwPTE1MTQ7ZS5hZmlpNTc2OTQ9NjQyOTg7ZS5hZmlpNTc2OTU9NjQyOTk7ZS5hZmlpNTc3MDA9NjQzMzE7ZS5hZmlpNTc3MDU9NjQyODc7ZS5hZmlpNTc3MTY9MTUyMDtlLmFmaWk1NzcxNz0xNTIxO2UuYWZpaTU3NzE4PTE1MjI7ZS5hZmlpNTc3MjM9NjQzMDk7ZS5hZmlpNTc3OTM9MTQ2MDtlLmFmaWk1Nzc5ND0xNDYxO2UuYWZpaTU3Nzk1PTE0NjI7ZS5hZmlpNTc3OTY9MTQ2NztlLmFmaWk1Nzc5Nz0xNDY0O2UuYWZpaTU3Nzk4PTE0NjM7ZS5hZmlpNTc3OTk9MTQ1NjtlLmFmaWk1NzgwMD0xNDU4O2UuYWZpaTU3ODAxPTE0NTc7ZS5hZmlpNTc4MDI9MTQ1OTtlLmFmaWk1NzgwMz0xNDc0O2UuYWZpaTU3ODA0PTE0NzM7ZS5hZmlpNTc4MDY9MTQ2NTtlLmFmaWk1NzgwNz0xNDY4O2UuYWZpaTU3ODM5PTE0Njk7ZS5hZmlpNTc4NDE9MTQ3MTtlLmFmaWk1Nzg0Mj0xNDcyO2UuYWZpaTU3OTI5PTcwMDtlLmFmaWk2MTI0OD04NDUzO2UuYWZpaTYxMjg5PTg0Njc7ZS5hZmlpNjEzNTI9ODQ3MDtlLmFmaWk2MTU3Mz04MjM2O2UuYWZpaTYxNTc0PTgyMzc7ZS5hZmlpNjE1NzU9ODIzODtlLmFmaWk2MTY2ND04MjA0O2UuYWZpaTYzMTY3PTE2NDU7ZS5hZmlpNjQ5Mzc9NzAxO2UuYWdyYXZlPTIyNDtlLmFndWphcmF0aT0yNjkzO2UuYWd1cm11a2hpPTI1NjU7ZS5haGlyYWdhbmE9MTIzNTQ7ZS5haG9va2Fib3ZlPTc4NDM7ZS5haWJlbmdhbGk9MjQ0ODtlLmFpYm9wb21vZm89MTI1NzQ7ZS5haWRldmE9MjMyMDtlLmFpZWN5cmlsbGljPTEyMzc7ZS5haWd1amFyYXRpPTI3MDQ7ZS5haWd1cm11a2hpPTI1NzY7ZS5haW1hdHJhZ3VybXVraGk9MjYzMjtlLmFpbmFyYWJpYz0xNTkzO2UuYWluZmluYWxhcmFiaWM9NjUyMjY7ZS5haW5pbml0aWFsYXJhYmljPTY1MjI3O2UuYWlubWVkaWFsYXJhYmljPTY1MjI4O2UuYWludmVydGVkYnJldmU9NTE1O2UuYWl2b3dlbHNpZ25iZW5nYWxpPTI1MDQ7ZS5haXZvd2Vsc2lnbmRldmE9MjM3NjtlLmFpdm93ZWxzaWduZ3VqYXJhdGk9Mjc2MDtlLmFrYXRha2FuYT0xMjQ1MDtlLmFrYXRha2FuYWhhbGZ3aWR0aD02NTM5MztlLmFrb3JlYW49MTI2MjM7ZS5hbGVmPTE0ODg7ZS5hbGVmYXJhYmljPTE1NzU7ZS5hbGVmZGFnZXNoaGVicmV3PTY0MzA0O2UuYWxlZmZpbmFsYXJhYmljPTY1MTY2O2UuYWxlZmhhbXphYWJvdmVhcmFiaWM9MTU3MTtlLmFsZWZoYW16YWFib3ZlZmluYWxhcmFiaWM9NjUxNTY7ZS5hbGVmaGFtemFiZWxvd2FyYWJpYz0xNTczO2UuYWxlZmhhbXphYmVsb3dmaW5hbGFyYWJpYz02NTE2MDtlLmFsZWZoZWJyZXc9MTQ4ODtlLmFsZWZsYW1lZGhlYnJldz02NDMzNTtlLmFsZWZtYWRkYWFib3ZlYXJhYmljPTE1NzA7ZS5hbGVmbWFkZGFhYm92ZWZpbmFsYXJhYmljPTY1MTU0O2UuYWxlZm1ha3N1cmFhcmFiaWM9MTYwOTtlLmFsZWZtYWtzdXJhZmluYWxhcmFiaWM9NjUyNjQ7ZS5hbGVmbWFrc3VyYWluaXRpYWxhcmFiaWM9NjUyNjc7ZS5hbGVmbWFrc3VyYW1lZGlhbGFyYWJpYz02NTI2ODtlLmFsZWZwYXRhaGhlYnJldz02NDMwMjtlLmFsZWZxYW1hdHNoZWJyZXc9NjQzMDM7ZS5hbGVwaD04NTAxO2UuYWxsZXF1YWw9ODc4MDtlLmFscGhhPTk0NTtlLmFscGhhdG9ub3M9OTQwO2UuYW1hY3Jvbj0yNTc7ZS5hbW9ub3NwYWNlPTY1MzQ1O2UuYW1wZXJzYW5kPTM4O2UuYW1wZXJzYW5kbW9ub3NwYWNlPTY1Mjg2O2UuYW1wZXJzYW5kc21hbGw9NjMyNzA7ZS5hbXNxdWFyZT0xMzI1MDtlLmFuYm9wb21vZm89MTI1Nzg7ZS5hbmdib3BvbW9mbz0xMjU4MDtlLmFuZ2JyYWNrZXRsZWZ0PTEyMjk2O2UuYW5nYnJhY2tldHJpZ2h0PTEyMjk3O2UuYW5na2hhbmtodXRoYWk9MzY3NDtlLmFuZ2xlPTg3MzY7ZS5hbmdsZWJyYWNrZXRsZWZ0PTEyMjk2O2UuYW5nbGVicmFja2V0bGVmdHZlcnRpY2FsPTY1MDg3O2UuYW5nbGVicmFja2V0cmlnaHQ9MTIyOTc7ZS5hbmdsZWJyYWNrZXRyaWdodHZlcnRpY2FsPTY1MDg4O2UuYW5nbGVsZWZ0PTkwMDE7ZS5hbmdsZXJpZ2h0PTkwMDI7ZS5hbmdzdHJvbT04NDkxO2UuYW5vdGVsZWlhPTkwMztlLmFudWRhdHRhZGV2YT0yMzg2O2UuYW51c3ZhcmFiZW5nYWxpPTI0MzQ7ZS5hbnVzdmFyYWRldmE9MjMwNjtlLmFudXN2YXJhZ3VqYXJhdGk9MjY5MDtlLmFvZ29uZWs9MjYxO2UuYXBhYXRvc3F1YXJlPTEzMDU2O2UuYXBhcmVuPTkzNzI7ZS5hcG9zdHJvcGhlYXJtZW5pYW49MTM3MDtlLmFwb3N0cm9waGVtb2Q9NzAwO2UuYXBwbGU9NjM3NDM7ZS5hcHByb2FjaGVzPTg3ODQ7ZS5hcHByb3hlcXVhbD04Nzc2O2UuYXBwcm94ZXF1YWxvcmltYWdlPTg3ODY7ZS5hcHByb3hpbWF0ZWx5ZXF1YWw9ODc3MztlLmFyYWVhZWtvcmVhbj0xMjY4NjtlLmFyYWVha29yZWFuPTEyNjg1O2UuYXJjPTg5Nzg7ZS5hcmlnaHRoYWxmcmluZz03ODM0O2UuYXJpbmc9MjI5O2UuYXJpbmdhY3V0ZT01MDc7ZS5hcmluZ2JlbG93PTc2ODE7ZS5hcnJvd2JvdGg9ODU5NjtlLmFycm93ZGFzaGRvd249ODY3NTtlLmFycm93ZGFzaGxlZnQ9ODY3MjtlLmFycm93ZGFzaHJpZ2h0PTg2NzQ7ZS5hcnJvd2Rhc2h1cD04NjczO2UuYXJyb3dkYmxib3RoPTg2NjA7ZS5hcnJvd2RibGRvd249ODY1OTtlLmFycm93ZGJsbGVmdD04NjU2O2UuYXJyb3dkYmxyaWdodD04NjU4O2UuYXJyb3dkYmx1cD04NjU3O2UuYXJyb3dkb3duPTg1OTU7ZS5hcnJvd2Rvd25sZWZ0PTg2MDE7ZS5hcnJvd2Rvd25yaWdodD04NjAwO2UuYXJyb3dkb3dud2hpdGU9ODY4MTtlLmFycm93aGVhZGRvd25tb2Q9NzA5O2UuYXJyb3doZWFkbGVmdG1vZD03MDY7ZS5hcnJvd2hlYWRyaWdodG1vZD03MDc7ZS5hcnJvd2hlYWR1cG1vZD03MDg7ZS5hcnJvd2hvcml6ZXg9NjM3MTk7ZS5hcnJvd2xlZnQ9ODU5MjtlLmFycm93bGVmdGRibD04NjU2O2UuYXJyb3dsZWZ0ZGJsc3Ryb2tlPTg2NTM7ZS5hcnJvd2xlZnRvdmVycmlnaHQ9ODY0NjtlLmFycm93bGVmdHdoaXRlPTg2Nzg7ZS5hcnJvd3JpZ2h0PTg1OTQ7ZS5hcnJvd3JpZ2h0ZGJsc3Ryb2tlPTg2NTU7ZS5hcnJvd3JpZ2h0aGVhdnk9MTAxNDI7ZS5hcnJvd3JpZ2h0b3ZlcmxlZnQ9ODY0NDtlLmFycm93cmlnaHR3aGl0ZT04NjgwO2UuYXJyb3d0YWJsZWZ0PTg2NzY7ZS5hcnJvd3RhYnJpZ2h0PTg2Nzc7ZS5hcnJvd3VwPTg1OTM7ZS5hcnJvd3VwZG49ODU5NztlLmFycm93dXBkbmJzZT04NjE2O2UuYXJyb3d1cGRvd25iYXNlPTg2MTY7ZS5hcnJvd3VwbGVmdD04NTk4O2UuYXJyb3d1cGxlZnRvZmRvd249ODY0NTtlLmFycm93dXByaWdodD04NTk5O2UuYXJyb3d1cHdoaXRlPTg2Nzk7ZS5hcnJvd3ZlcnRleD02MzcxODtlLmFzY2lpY2lyY3VtPTk0O2UuYXNjaWljaXJjdW1tb25vc3BhY2U9NjUzNDI7ZS5hc2NpaXRpbGRlPTEyNjtlLmFzY2lpdGlsZGVtb25vc3BhY2U9NjUzNzQ7ZS5hc2NyaXB0PTU5MztlLmFzY3JpcHR0dXJuZWQ9NTk0O2UuYXNtYWxsaGlyYWdhbmE9MTIzNTM7ZS5hc21hbGxrYXRha2FuYT0xMjQ0OTtlLmFzbWFsbGthdGFrYW5haGFsZndpZHRoPTY1MzgzO2UuYXN0ZXJpc2s9NDI7ZS5hc3Rlcmlza2FsdG9uZWFyYWJpYz0xNjQ1O2UuYXN0ZXJpc2thcmFiaWM9MTY0NTtlLmFzdGVyaXNrbWF0aD04NzI3O2UuYXN0ZXJpc2ttb25vc3BhY2U9NjUyOTA7ZS5hc3Rlcmlza3NtYWxsPTY1MTIxO2UuYXN0ZXJpc209ODI1ODtlLmFzdXBlcmlvcj02MzIwOTtlLmFzeW1wdG90aWNhbGx5ZXF1YWw9ODc3MTtlLmF0PTY0O2UuYXRpbGRlPTIyNztlLmF0bW9ub3NwYWNlPTY1MzEyO2UuYXRzbWFsbD02NTEzMTtlLmF0dXJuZWQ9NTkyO2UuYXViZW5nYWxpPTI0NTI7ZS5hdWJvcG9tb2ZvPTEyNTc2O2UuYXVkZXZhPTIzMjQ7ZS5hdWd1amFyYXRpPTI3MDg7ZS5hdWd1cm11a2hpPTI1ODA7ZS5hdWxlbmd0aG1hcmtiZW5nYWxpPTI1MTk7ZS5hdW1hdHJhZ3VybXVraGk9MjYzNjtlLmF1dm93ZWxzaWduYmVuZ2FsaT0yNTA4O2UuYXV2b3dlbHNpZ25kZXZhPTIzODA7ZS5hdXZvd2Vsc2lnbmd1amFyYXRpPTI3NjQ7ZS5hdmFncmFoYWRldmE9MjM2NTtlLmF5YmFybWVuaWFuPTEzNzc7ZS5heWluPTE1MDY7ZS5heWluYWx0b25laGVicmV3PTY0Mjg4O2UuYXlpbmhlYnJldz0xNTA2O2UuYj05ODtlLmJhYmVuZ2FsaT0yNDc2O2UuYmFja3NsYXNoPTkyO2UuYmFja3NsYXNobW9ub3NwYWNlPTY1MzQwO2UuYmFkZXZhPTIzNDg7ZS5iYWd1amFyYXRpPTI3MzI7ZS5iYWd1cm11a2hpPTI2MDQ7ZS5iYWhpcmFnYW5hPTEyNDAwO2UuYmFodHRoYWk9MzY0NztlLmJha2F0YWthbmE9MTI0OTY7ZS5iYXI9MTI0O2UuYmFybW9ub3NwYWNlPTY1MzcyO2UuYmJvcG9tb2ZvPTEyNTQ5O2UuYmNpcmNsZT05NDI1O2UuYmRvdGFjY2VudD03NjgzO2UuYmRvdGJlbG93PTc2ODU7ZS5iZWFtZWRzaXh0ZWVudGhub3Rlcz05ODM2O2UuYmVjYXVzZT04NzU3O2UuYmVjeXJpbGxpYz0xMDczO2UuYmVoYXJhYmljPTE1NzY7ZS5iZWhmaW5hbGFyYWJpYz02NTE2ODtlLmJlaGluaXRpYWxhcmFiaWM9NjUxNjk7ZS5iZWhpcmFnYW5hPTEyNDA5O2UuYmVobWVkaWFsYXJhYmljPTY1MTcwO2UuYmVobWVlbWluaXRpYWxhcmFiaWM9NjQ2NzE7ZS5iZWhtZWVtaXNvbGF0ZWRhcmFiaWM9NjQ1MjA7ZS5iZWhub29uZmluYWxhcmFiaWM9NjQ2MjE7ZS5iZWthdGFrYW5hPTEyNTA1O2UuYmVuYXJtZW5pYW49MTM3ODtlLmJldD0xNDg5O2UuYmV0YT05NDY7ZS5iZXRhc3ltYm9sZ3JlZWs9OTc2O2UuYmV0ZGFnZXNoPTY0MzA1O2UuYmV0ZGFnZXNoaGVicmV3PTY0MzA1O2UuYmV0aGVicmV3PTE0ODk7ZS5iZXRyYWZlaGVicmV3PTY0MzMyO2UuYmhhYmVuZ2FsaT0yNDc3O2UuYmhhZGV2YT0yMzQ5O2UuYmhhZ3VqYXJhdGk9MjczMztlLmJoYWd1cm11a2hpPTI2MDU7ZS5iaG9vaz01OTU7ZS5iaWhpcmFnYW5hPTEyNDAzO2UuYmlrYXRha2FuYT0xMjQ5OTtlLmJpbGFiaWFsY2xpY2s9NjY0O2UuYmluZGlndXJtdWtoaT0yNTYyO2UuYmlydXNxdWFyZT0xMzEwNTtlLmJsYWNrY2lyY2xlPTk2Nzk7ZS5ibGFja2RpYW1vbmQ9OTY3MDtlLmJsYWNrZG93bnBvaW50aW5ndHJpYW5nbGU9OTY2MDtlLmJsYWNrbGVmdHBvaW50aW5ncG9pbnRlcj05NjY4O2UuYmxhY2tsZWZ0cG9pbnRpbmd0cmlhbmdsZT05NjY0O2UuYmxhY2tsZW50aWN1bGFyYnJhY2tldGxlZnQ9MTIzMDQ7ZS5ibGFja2xlbnRpY3VsYXJicmFja2V0bGVmdHZlcnRpY2FsPTY1MDgzO2UuYmxhY2tsZW50aWN1bGFyYnJhY2tldHJpZ2h0PTEyMzA1O2UuYmxhY2tsZW50aWN1bGFyYnJhY2tldHJpZ2h0dmVydGljYWw9NjUwODQ7ZS5ibGFja2xvd2VybGVmdHRyaWFuZ2xlPTk2OTk7ZS5ibGFja2xvd2VycmlnaHR0cmlhbmdsZT05Njk4O2UuYmxhY2tyZWN0YW5nbGU9OTY0NDtlLmJsYWNrcmlnaHRwb2ludGluZ3BvaW50ZXI9OTY1ODtlLmJsYWNrcmlnaHRwb2ludGluZ3RyaWFuZ2xlPTk2NTQ7ZS5ibGFja3NtYWxsc3F1YXJlPTk2NDI7ZS5ibGFja3NtaWxpbmdmYWNlPTk3ODc7ZS5ibGFja3NxdWFyZT05NjMyO2UuYmxhY2tzdGFyPTk3MzM7ZS5ibGFja3VwcGVybGVmdHRyaWFuZ2xlPTk3MDA7ZS5ibGFja3VwcGVycmlnaHR0cmlhbmdsZT05NzAxO2UuYmxhY2t1cHBvaW50aW5nc21hbGx0cmlhbmdsZT05NjUyO2UuYmxhY2t1cHBvaW50aW5ndHJpYW5nbGU9OTY1MDtlLmJsYW5rPTkyNTE7ZS5ibGluZWJlbG93PTc2ODc7ZS5ibG9jaz05NjA4O2UuYm1vbm9zcGFjZT02NTM0NjtlLmJvYmFpbWFpdGhhaT0zNjEwO2UuYm9oaXJhZ2FuYT0xMjQxMjtlLmJva2F0YWthbmE9MTI1MDg7ZS5icGFyZW49OTM3MztlLmJxc3F1YXJlPTEzMjUxO2UuYnJhY2VleD02MzczMjtlLmJyYWNlbGVmdD0xMjM7ZS5icmFjZWxlZnRidD02MzczMTtlLmJyYWNlbGVmdG1pZD02MzczMDtlLmJyYWNlbGVmdG1vbm9zcGFjZT02NTM3MTtlLmJyYWNlbGVmdHNtYWxsPTY1MTE1O2UuYnJhY2VsZWZ0dHA9NjM3Mjk7ZS5icmFjZWxlZnR2ZXJ0aWNhbD02NTA3OTtlLmJyYWNlcmlnaHQ9MTI1O2UuYnJhY2VyaWdodGJ0PTYzNzQyO2UuYnJhY2VyaWdodG1pZD02Mzc0MTtlLmJyYWNlcmlnaHRtb25vc3BhY2U9NjUzNzM7ZS5icmFjZXJpZ2h0c21hbGw9NjUxMTY7ZS5icmFjZXJpZ2h0dHA9NjM3NDA7ZS5icmFjZXJpZ2h0dmVydGljYWw9NjUwODA7ZS5icmFja2V0bGVmdD05MTtlLmJyYWNrZXRsZWZ0YnQ9NjM3Mjg7ZS5icmFja2V0bGVmdGV4PTYzNzI3O2UuYnJhY2tldGxlZnRtb25vc3BhY2U9NjUzMzk7ZS5icmFja2V0bGVmdHRwPTYzNzI2O2UuYnJhY2tldHJpZ2h0PTkzO2UuYnJhY2tldHJpZ2h0YnQ9NjM3Mzk7ZS5icmFja2V0cmlnaHRleD02MzczODtlLmJyYWNrZXRyaWdodG1vbm9zcGFjZT02NTM0MTtlLmJyYWNrZXRyaWdodHRwPTYzNzM3O2UuYnJldmU9NzI4O2UuYnJldmViZWxvd2NtYj04MTQ7ZS5icmV2ZWNtYj03NzQ7ZS5icmV2ZWludmVydGVkYmVsb3djbWI9ODE1O2UuYnJldmVpbnZlcnRlZGNtYj03ODU7ZS5icmV2ZWludmVydGVkZG91YmxlY21iPTg2NTtlLmJyaWRnZWJlbG93Y21iPTgxMDtlLmJyaWRnZWludmVydGVkYmVsb3djbWI9ODI2O2UuYnJva2VuYmFyPTE2NjtlLmJzdHJva2U9Mzg0O2UuYnN1cGVyaW9yPTYzMjEwO2UuYnRvcGJhcj0zODc7ZS5idWhpcmFnYW5hPTEyNDA2O2UuYnVrYXRha2FuYT0xMjUwMjtlLmJ1bGxldD04MjI2O2UuYnVsbGV0aW52ZXJzZT05Njg4O2UuYnVsbGV0b3BlcmF0b3I9ODcyOTtlLmJ1bGxzZXllPTk2Nzg7ZS5jPTk5O2UuY2Fhcm1lbmlhbj0xMzkwO2UuY2FiZW5nYWxpPTI0NTg7ZS5jYWN1dGU9MjYzO2UuY2FkZXZhPTIzMzA7ZS5jYWd1amFyYXRpPTI3MTQ7ZS5jYWd1cm11a2hpPTI1ODY7ZS5jYWxzcXVhcmU9MTMxOTI7ZS5jYW5kcmFiaW5kdWJlbmdhbGk9MjQzMztlLmNhbmRyYWJpbmR1Y21iPTc4NDtlLmNhbmRyYWJpbmR1ZGV2YT0yMzA1O2UuY2FuZHJhYmluZHVndWphcmF0aT0yNjg5O2UuY2Fwc2xvY2s9ODY4MjtlLmNhcmVvZj04NDUzO2UuY2Fyb249NzExO2UuY2Fyb25iZWxvd2NtYj04MTI7ZS5jYXJvbmNtYj03ODA7ZS5jYXJyaWFnZXJldHVybj04NjI5O2UuY2JvcG9tb2ZvPTEyNTY4O2UuY2Nhcm9uPTI2OTtlLmNjZWRpbGxhPTIzMTtlLmNjZWRpbGxhYWN1dGU9NzY4OTtlLmNjaXJjbGU9OTQyNjtlLmNjaXJjdW1mbGV4PTI2NTtlLmNjdXJsPTU5NztlLmNkb3Q9MjY3O2UuY2RvdGFjY2VudD0yNjc7ZS5jZHNxdWFyZT0xMzI1MztlLmNlZGlsbGE9MTg0O2UuY2VkaWxsYWNtYj04MDc7ZS5jZW50PTE2MjtlLmNlbnRpZ3JhZGU9ODQ1MTtlLmNlbnRpbmZlcmlvcj02MzE5OTtlLmNlbnRtb25vc3BhY2U9NjU1MDQ7ZS5jZW50b2xkc3R5bGU9NjMzOTQ7ZS5jZW50c3VwZXJpb3I9NjMyMDA7ZS5jaGFhcm1lbmlhbj0xNDAxO2UuY2hhYmVuZ2FsaT0yNDU5O2UuY2hhZGV2YT0yMzMxO2UuY2hhZ3VqYXJhdGk9MjcxNTtlLmNoYWd1cm11a2hpPTI1ODc7ZS5jaGJvcG9tb2ZvPTEyNTY0O2UuY2hlYWJraGFzaWFuY3lyaWxsaWM9MTIxMztlLmNoZWNrbWFyaz0xMDAwMztlLmNoZWN5cmlsbGljPTEwOTU7ZS5jaGVkZXNjZW5kZXJhYmtoYXNpYW5jeXJpbGxpYz0xMjE1O2UuY2hlZGVzY2VuZGVyY3lyaWxsaWM9MTIwNztlLmNoZWRpZXJlc2lzY3lyaWxsaWM9MTI2OTtlLmNoZWhhcm1lbmlhbj0xMzk1O2UuY2hla2hha2Fzc2lhbmN5cmlsbGljPTEyMjg7ZS5jaGV2ZXJ0aWNhbHN0cm9rZWN5cmlsbGljPTEyMDk7ZS5jaGk9OTY3O2UuY2hpZXVjaGFjaXJjbGVrb3JlYW49MTI5MTk7ZS5jaGlldWNoYXBhcmVua29yZWFuPTEyODIzO2UuY2hpZXVjaGNpcmNsZWtvcmVhbj0xMjkwNTtlLmNoaWV1Y2hrb3JlYW49MTI2MTg7ZS5jaGlldWNocGFyZW5rb3JlYW49MTI4MDk7ZS5jaG9jaGFuZ3RoYWk9MzU5NDtlLmNob2NoYW50aGFpPTM1OTI7ZS5jaG9jaGluZ3RoYWk9MzU5MztlLmNob2Nob2V0aGFpPTM1OTY7ZS5jaG9vaz0zOTI7ZS5jaWV1Y2FjaXJjbGVrb3JlYW49MTI5MTg7ZS5jaWV1Y2FwYXJlbmtvcmVhbj0xMjgyMjtlLmNpZXVjY2lyY2xla29yZWFuPTEyOTA0O2UuY2lldWNrb3JlYW49MTI2MTY7ZS5jaWV1Y3BhcmVua29yZWFuPTEyODA4O2UuY2lldWN1cGFyZW5rb3JlYW49MTI4Mjg7ZS5jaXJjbGU9OTY3NTtlLmNpcmNsZWNvcHlydD0xNjk7ZS5jaXJjbGVtdWx0aXBseT04ODU1O2UuY2lyY2xlb3Q9ODg1NztlLmNpcmNsZXBsdXM9ODg1MztlLmNpcmNsZXBvc3RhbG1hcms9MTIzNDI7ZS5jaXJjbGV3aXRobGVmdGhhbGZibGFjaz05NjgwO2UuY2lyY2xld2l0aHJpZ2h0aGFsZmJsYWNrPTk2ODE7ZS5jaXJjdW1mbGV4PTcxMDtlLmNpcmN1bWZsZXhiZWxvd2NtYj04MTM7ZS5jaXJjdW1mbGV4Y21iPTc3MDtlLmNsZWFyPTg5OTk7ZS5jbGlja2FsdmVvbGFyPTQ1MDtlLmNsaWNrZGVudGFsPTQ0ODtlLmNsaWNrbGF0ZXJhbD00NDk7ZS5jbGlja3JldHJvZmxleD00NTE7ZS5jbHViPTk4Mjc7ZS5jbHVic3VpdGJsYWNrPTk4Mjc7ZS5jbHVic3VpdHdoaXRlPTk4MzE7ZS5jbWN1YmVkc3F1YXJlPTEzMjIwO2UuY21vbm9zcGFjZT02NTM0NztlLmNtc3F1YXJlZHNxdWFyZT0xMzIxNjtlLmNvYXJtZW5pYW49MTQwOTtlLmNvbG9uPTU4O2UuY29sb25tb25ldGFyeT04MzUzO2UuY29sb25tb25vc3BhY2U9NjUzMDY7ZS5jb2xvbnNpZ249ODM1MztlLmNvbG9uc21hbGw9NjUxMDk7ZS5jb2xvbnRyaWFuZ3VsYXJoYWxmbW9kPTcyMTtlLmNvbG9udHJpYW5ndWxhcm1vZD03MjA7ZS5jb21tYT00NDtlLmNvbW1hYWJvdmVjbWI9Nzg3O2UuY29tbWFhYm92ZXJpZ2h0Y21iPTc4OTtlLmNvbW1hYWNjZW50PTYzMTcxO2UuY29tbWFhcmFiaWM9MTU0ODtlLmNvbW1hYXJtZW5pYW49MTM3MztlLmNvbW1haW5mZXJpb3I9NjMyMDE7ZS5jb21tYW1vbm9zcGFjZT02NTI5MjtlLmNvbW1hcmV2ZXJzZWRhYm92ZWNtYj03ODg7ZS5jb21tYXJldmVyc2VkbW9kPTcwMTtlLmNvbW1hc21hbGw9NjUxMDQ7ZS5jb21tYXN1cGVyaW9yPTYzMjAyO2UuY29tbWF0dXJuZWRhYm92ZWNtYj03ODY7ZS5jb21tYXR1cm5lZG1vZD02OTk7ZS5jb21wYXNzPTk3ODg7ZS5jb25ncnVlbnQ9ODc3MztlLmNvbnRvdXJpbnRlZ3JhbD04NzUwO2UuY29udHJvbD04OTYzO2UuY29udHJvbEFDSz02O2UuY29udHJvbEJFTD03O2UuY29udHJvbEJTPTg7ZS5jb250cm9sQ0FOPTI0O2UuY29udHJvbENSPTEzO2UuY29udHJvbERDMT0xNztlLmNvbnRyb2xEQzI9MTg7ZS5jb250cm9sREMzPTE5O2UuY29udHJvbERDND0yMDtlLmNvbnRyb2xERUw9MTI3O2UuY29udHJvbERMRT0xNjtlLmNvbnRyb2xFTT0yNTtlLmNvbnRyb2xFTlE9NTtlLmNvbnRyb2xFT1Q9NDtlLmNvbnRyb2xFU0M9Mjc7ZS5jb250cm9sRVRCPTIzO2UuY29udHJvbEVUWD0zO2UuY29udHJvbEZGPTEyO2UuY29udHJvbEZTPTI4O2UuY29udHJvbEdTPTI5O2UuY29udHJvbEhUPTk7ZS5jb250cm9sTEY9MTA7ZS5jb250cm9sTkFLPTIxO2UuY29udHJvbE5VTEw9MDtlLmNvbnRyb2xSUz0zMDtlLmNvbnRyb2xTST0xNTtlLmNvbnRyb2xTTz0xNDtlLmNvbnRyb2xTT1Q9MjtlLmNvbnRyb2xTVFg9MTtlLmNvbnRyb2xTVUI9MjY7ZS5jb250cm9sU1lOPTIyO2UuY29udHJvbFVTPTMxO2UuY29udHJvbFZUPTExO2UuY29weXJpZ2h0PTE2OTtlLmNvcHlyaWdodHNhbnM9NjM3MjE7ZS5jb3B5cmlnaHRzZXJpZj02MzE5MztlLmNvcm5lcmJyYWNrZXRsZWZ0PTEyMzAwO2UuY29ybmVyYnJhY2tldGxlZnRoYWxmd2lkdGg9NjUzNzg7ZS5jb3JuZXJicmFja2V0bGVmdHZlcnRpY2FsPTY1MDg5O2UuY29ybmVyYnJhY2tldHJpZ2h0PTEyMzAxO2UuY29ybmVyYnJhY2tldHJpZ2h0aGFsZndpZHRoPTY1Mzc5O2UuY29ybmVyYnJhY2tldHJpZ2h0dmVydGljYWw9NjUwOTA7ZS5jb3Jwb3JhdGlvbnNxdWFyZT0xMzE4MztlLmNvc3F1YXJlPTEzMjU1O2UuY292ZXJrZ3NxdWFyZT0xMzI1NDtlLmNwYXJlbj05Mzc0O2UuY3J1emVpcm89ODM1NDtlLmNzdHJldGNoZWQ9NjYzO2UuY3VybHlhbmQ9ODkxMTtlLmN1cmx5b3I9ODkxMDtlLmN1cnJlbmN5PTE2NDtlLmN5ckJyZXZlPTYzMTg1O2UuY3lyRmxleD02MzE4NjtlLmN5cmJyZXZlPTYzMTg4O2UuY3lyZmxleD02MzE4OTtlLmQ9MTAwO2UuZGFhcm1lbmlhbj0xMzgwO2UuZGFiZW5nYWxpPTI0NzA7ZS5kYWRhcmFiaWM9MTU5MDtlLmRhZGV2YT0yMzQyO2UuZGFkZmluYWxhcmFiaWM9NjUyMTQ7ZS5kYWRpbml0aWFsYXJhYmljPTY1MjE1O2UuZGFkbWVkaWFsYXJhYmljPTY1MjE2O2UuZGFnZXNoPTE0Njg7ZS5kYWdlc2hoZWJyZXc9MTQ2ODtlLmRhZ2dlcj04MjI0O2UuZGFnZ2VyZGJsPTgyMjU7ZS5kYWd1amFyYXRpPTI3MjY7ZS5kYWd1cm11a2hpPTI1OTg7ZS5kYWhpcmFnYW5hPTEyMzg0O2UuZGFrYXRha2FuYT0xMjQ4MDtlLmRhbGFyYWJpYz0xNTgzO2UuZGFsZXQ9MTQ5MTtlLmRhbGV0ZGFnZXNoPTY0MzA3O2UuZGFsZXRkYWdlc2hoZWJyZXc9NjQzMDc7ZS5kYWxldGhlYnJldz0xNDkxO2UuZGFsZmluYWxhcmFiaWM9NjUxOTQ7ZS5kYW1tYWFyYWJpYz0xNjE1O2UuZGFtbWFsb3dhcmFiaWM9MTYxNTtlLmRhbW1hdGFuYWx0b25lYXJhYmljPTE2MTI7ZS5kYW1tYXRhbmFyYWJpYz0xNjEyO2UuZGFuZGE9MjQwNDtlLmRhcmdhaGVicmV3PTE0NDc7ZS5kYXJnYWxlZnRoZWJyZXc9MTQ0NztlLmRhc2lhcG5ldW1hdGFjeXJpbGxpY2NtYj0xMTU3O2UuZGJsR3JhdmU9NjMxODc7ZS5kYmxhbmdsZWJyYWNrZXRsZWZ0PTEyMjk4O2UuZGJsYW5nbGVicmFja2V0bGVmdHZlcnRpY2FsPTY1MDg1O2UuZGJsYW5nbGVicmFja2V0cmlnaHQ9MTIyOTk7ZS5kYmxhbmdsZWJyYWNrZXRyaWdodHZlcnRpY2FsPTY1MDg2O2UuZGJsYXJjaGludmVydGVkYmVsb3djbWI9ODExO2UuZGJsYXJyb3dsZWZ0PTg2NjA7ZS5kYmxhcnJvd3JpZ2h0PTg2NTg7ZS5kYmxkYW5kYT0yNDA1O2UuZGJsZ3JhdmU9NjMxOTA7ZS5kYmxncmF2ZWNtYj03ODM7ZS5kYmxpbnRlZ3JhbD04NzQ4O2UuZGJsbG93bGluZT04MjE1O2UuZGJsbG93bGluZWNtYj04MTk7ZS5kYmxvdmVybGluZWNtYj04MzE7ZS5kYmxwcmltZW1vZD02OTg7ZS5kYmx2ZXJ0aWNhbGJhcj04MjE0O2UuZGJsdmVydGljYWxsaW5lYWJvdmVjbWI9NzgyO2UuZGJvcG9tb2ZvPTEyNTUzO2UuZGJzcXVhcmU9MTMyNTY7ZS5kY2Fyb249MjcxO2UuZGNlZGlsbGE9NzY5NztlLmRjaXJjbGU9OTQyNztlLmRjaXJjdW1mbGV4YmVsb3c9NzY5OTtlLmRjcm9hdD0yNzM7ZS5kZGFiZW5nYWxpPTI0NjU7ZS5kZGFkZXZhPTIzMzc7ZS5kZGFndWphcmF0aT0yNzIxO2UuZGRhZ3VybXVraGk9MjU5MztlLmRkYWxhcmFiaWM9MTY3MjtlLmRkYWxmaW5hbGFyYWJpYz02NDM5MztlLmRkZGhhZGV2YT0yMzk2O2UuZGRoYWJlbmdhbGk9MjQ2NjtlLmRkaGFkZXZhPTIzMzg7ZS5kZGhhZ3VqYXJhdGk9MjcyMjtlLmRkaGFndXJtdWtoaT0yNTk0O2UuZGRvdGFjY2VudD03NjkxO2UuZGRvdGJlbG93PTc2OTM7ZS5kZWNpbWFsc2VwYXJhdG9yYXJhYmljPTE2NDM7ZS5kZWNpbWFsc2VwYXJhdG9ycGVyc2lhbj0xNjQzO2UuZGVjeXJpbGxpYz0xMDc2O2UuZGVncmVlPTE3NjtlLmRlaGloZWJyZXc9MTQ1MztlLmRlaGlyYWdhbmE9MTIzOTE7ZS5kZWljb3B0aWM9MTAwNztlLmRla2F0YWthbmE9MTI0ODc7ZS5kZWxldGVsZWZ0PTkwMDM7ZS5kZWxldGVyaWdodD04OTk4O2UuZGVsdGE9OTQ4O2UuZGVsdGF0dXJuZWQ9Mzk3O2UuZGVub21pbmF0b3JtaW51c29uZW51bWVyYXRvcmJlbmdhbGk9MjU1MjtlLmRlemg9Njc2O2UuZGhhYmVuZ2FsaT0yNDcxO2UuZGhhZGV2YT0yMzQzO2UuZGhhZ3VqYXJhdGk9MjcyNztlLmRoYWd1cm11a2hpPTI1OTk7ZS5kaG9vaz01OTk7ZS5kaWFseXRpa2F0b25vcz05MDE7ZS5kaWFseXRpa2F0b25vc2NtYj04MzY7ZS5kaWFtb25kPTk4MzA7ZS5kaWFtb25kc3VpdHdoaXRlPTk4MjY7ZS5kaWVyZXNpcz0xNjg7ZS5kaWVyZXNpc2FjdXRlPTYzMTkxO2UuZGllcmVzaXNiZWxvd2NtYj04MDQ7ZS5kaWVyZXNpc2NtYj03NzY7ZS5kaWVyZXNpc2dyYXZlPTYzMTkyO2UuZGllcmVzaXN0b25vcz05MDE7ZS5kaWhpcmFnYW5hPTEyMzg2O2UuZGlrYXRha2FuYT0xMjQ4MjtlLmRpdHRvbWFyaz0xMjI5MTtlLmRpdmlkZT0yNDc7ZS5kaXZpZGVzPTg3Mzk7ZS5kaXZpc2lvbnNsYXNoPTg3MjU7ZS5kamVjeXJpbGxpYz0xMTA2O2UuZGtzaGFkZT05NjE5O2UuZGxpbmViZWxvdz03Njk1O2UuZGxzcXVhcmU9MTMyMDc7ZS5kbWFjcm9uPTI3MztlLmRtb25vc3BhY2U9NjUzNDg7ZS5kbmJsb2NrPTk2MDQ7ZS5kb2NoYWRhdGhhaT0zNTk4O2UuZG9kZWt0aGFpPTM2MDQ7ZS5kb2hpcmFnYW5hPTEyMzkzO2UuZG9rYXRha2FuYT0xMjQ4OTtlLmRvbGxhcj0zNjtlLmRvbGxhcmluZmVyaW9yPTYzMjAzO2UuZG9sbGFybW9ub3NwYWNlPTY1Mjg0O2UuZG9sbGFyb2xkc3R5bGU9NjMyNjg7ZS5kb2xsYXJzbWFsbD02NTEyOTtlLmRvbGxhcnN1cGVyaW9yPTYzMjA0O2UuZG9uZz04MzYzO2UuZG9ydXNxdWFyZT0xMzA5NDtlLmRvdGFjY2VudD03Mjk7ZS5kb3RhY2NlbnRjbWI9Nzc1O2UuZG90YmVsb3djbWI9ODAzO2UuZG90YmVsb3djb21iPTgwMztlLmRvdGthdGFrYW5hPTEyNTM5O2UuZG90bGVzc2k9MzA1O2UuZG90bGVzc2o9NjMxNjY7ZS5kb3RsZXNzanN0cm9rZWhvb2s9NjQ0O2UuZG90bWF0aD04OTAxO2UuZG90dGVkY2lyY2xlPTk2NzY7ZS5kb3VibGV5b2RwYXRhaD02NDI4NztlLmRvdWJsZXlvZHBhdGFoaGVicmV3PTY0Mjg3O2UuZG93bnRhY2tiZWxvd2NtYj03OTg7ZS5kb3dudGFja21vZD03MjU7ZS5kcGFyZW49OTM3NTtlLmRzdXBlcmlvcj02MzIxMTtlLmR0YWlsPTU5ODtlLmR0b3BiYXI9Mzk2O2UuZHVoaXJhZ2FuYT0xMjM4OTtlLmR1a2F0YWthbmE9MTI0ODU7ZS5kej00OTk7ZS5kemFsdG9uZT02NzU7ZS5kemNhcm9uPTQ1NDtlLmR6Y3VybD02Nzc7ZS5kemVhYmtoYXNpYW5jeXJpbGxpYz0xMjQ5O2UuZHplY3lyaWxsaWM9MTEwOTtlLmR6aGVjeXJpbGxpYz0xMTE5O2UuZT0xMDE7ZS5lYWN1dGU9MjMzO2UuZWFydGg9OTc5MztlLmViZW5nYWxpPTI0NDc7ZS5lYm9wb21vZm89MTI1NzI7ZS5lYnJldmU9Mjc3O2UuZWNhbmRyYWRldmE9MjMxNztlLmVjYW5kcmFndWphcmF0aT0yNzAxO2UuZWNhbmRyYXZvd2Vsc2lnbmRldmE9MjM3MztlLmVjYW5kcmF2b3dlbHNpZ25ndWphcmF0aT0yNzU3O2UuZWNhcm9uPTI4MztlLmVjZWRpbGxhYnJldmU9NzcwOTtlLmVjaGFybWVuaWFuPTEzODE7ZS5lY2h5aXduYXJtZW5pYW49MTQxNTtlLmVjaXJjbGU9OTQyODtlLmVjaXJjdW1mbGV4PTIzNDtlLmVjaXJjdW1mbGV4YWN1dGU9Nzg3MTtlLmVjaXJjdW1mbGV4YmVsb3c9NzcwNTtlLmVjaXJjdW1mbGV4ZG90YmVsb3c9Nzg3OTtlLmVjaXJjdW1mbGV4Z3JhdmU9Nzg3MztlLmVjaXJjdW1mbGV4aG9va2Fib3ZlPTc4NzU7ZS5lY2lyY3VtZmxleHRpbGRlPTc4Nzc7ZS5lY3lyaWxsaWM9MTEwODtlLmVkYmxncmF2ZT01MTc7ZS5lZGV2YT0yMzE5O2UuZWRpZXJlc2lzPTIzNTtlLmVkb3Q9Mjc5O2UuZWRvdGFjY2VudD0yNzk7ZS5lZG90YmVsb3c9Nzg2NTtlLmVlZ3VybXVraGk9MjU3NTtlLmVlbWF0cmFndXJtdWtoaT0yNjMxO2UuZWZjeXJpbGxpYz0xMDkyO2UuZWdyYXZlPTIzMjtlLmVndWphcmF0aT0yNzAzO2UuZWhhcm1lbmlhbj0xMzgzO2UuZWhib3BvbW9mbz0xMjU3MztlLmVoaXJhZ2FuYT0xMjM2MDtlLmVob29rYWJvdmU9Nzg2NztlLmVpYm9wb21vZm89MTI1NzU7ZS5laWdodD01NjtlLmVpZ2h0YXJhYmljPTE2NDA7ZS5laWdodGJlbmdhbGk9MjU0MjtlLmVpZ2h0Y2lyY2xlPTkzMTk7ZS5laWdodGNpcmNsZWludmVyc2VzYW5zc2VyaWY9MTAxMjk7ZS5laWdodGRldmE9MjQxNDtlLmVpZ2h0ZWVuY2lyY2xlPTkzMjk7ZS5laWdodGVlbnBhcmVuPTkzNDk7ZS5laWdodGVlbnBlcmlvZD05MzY5O2UuZWlnaHRndWphcmF0aT0yNzk4O2UuZWlnaHRndXJtdWtoaT0yNjcwO2UuZWlnaHRoYWNrYXJhYmljPTE2NDA7ZS5laWdodGhhbmd6aG91PTEyMzI4O2UuZWlnaHRobm90ZWJlYW1lZD05ODM1O2UuZWlnaHRpZGVvZ3JhcGhpY3BhcmVuPTEyODM5O2UuZWlnaHRpbmZlcmlvcj04MzI4O2UuZWlnaHRtb25vc3BhY2U9NjUzMDQ7ZS5laWdodG9sZHN0eWxlPTYzMjg4O2UuZWlnaHRwYXJlbj05MzM5O2UuZWlnaHRwZXJpb2Q9OTM1OTtlLmVpZ2h0cGVyc2lhbj0xNzg0O2UuZWlnaHRyb21hbj04NTY3O2UuZWlnaHRzdXBlcmlvcj04MzEyO2UuZWlnaHR0aGFpPTM2NzI7ZS5laW52ZXJ0ZWRicmV2ZT01MTk7ZS5laW90aWZpZWRjeXJpbGxpYz0xMTI1O2UuZWthdGFrYW5hPTEyNDU2O2UuZWthdGFrYW5haGFsZndpZHRoPTY1Mzk2O2UuZWtvbmthcmd1cm11a2hpPTI2NzY7ZS5la29yZWFuPTEyNjI4O2UuZWxjeXJpbGxpYz0xMDgzO2UuZWxlbWVudD04NzEyO2UuZWxldmVuY2lyY2xlPTkzMjI7ZS5lbGV2ZW5wYXJlbj05MzQyO2UuZWxldmVucGVyaW9kPTkzNjI7ZS5lbGV2ZW5yb21hbj04NTcwO2UuZWxsaXBzaXM9ODIzMDtlLmVsbGlwc2lzdmVydGljYWw9ODk0MjtlLmVtYWNyb249Mjc1O2UuZW1hY3JvbmFjdXRlPTc3MDM7ZS5lbWFjcm9uZ3JhdmU9NzcwMTtlLmVtY3lyaWxsaWM9MTA4NDtlLmVtZGFzaD04MjEyO2UuZW1kYXNodmVydGljYWw9NjUwNzM7ZS5lbW9ub3NwYWNlPTY1MzQ5O2UuZW1waGFzaXNtYXJrYXJtZW5pYW49MTM3MTtlLmVtcHR5c2V0PTg3MDk7ZS5lbmJvcG9tb2ZvPTEyNTc5O2UuZW5jeXJpbGxpYz0xMDg1O2UuZW5kYXNoPTgyMTE7ZS5lbmRhc2h2ZXJ0aWNhbD02NTA3NDtlLmVuZGVzY2VuZGVyY3lyaWxsaWM9MTE4NztlLmVuZz0zMzE7ZS5lbmdib3BvbW9mbz0xMjU4MTtlLmVuZ2hlY3lyaWxsaWM9MTE4OTtlLmVuaG9va2N5cmlsbGljPTEyMjQ7ZS5lbnNwYWNlPTgxOTQ7ZS5lb2dvbmVrPTI4MTtlLmVva29yZWFuPTEyNjI3O2UuZW9wZW49NjAzO2UuZW9wZW5jbG9zZWQ9NjY2O2UuZW9wZW5yZXZlcnNlZD02MDQ7ZS5lb3BlbnJldmVyc2VkY2xvc2VkPTYwNjtlLmVvcGVucmV2ZXJzZWRob29rPTYwNTtlLmVwYXJlbj05Mzc2O2UuZXBzaWxvbj05NDk7ZS5lcHNpbG9udG9ub3M9OTQxO2UuZXF1YWw9NjE7ZS5lcXVhbG1vbm9zcGFjZT02NTMwOTtlLmVxdWFsc21hbGw9NjUxMjY7ZS5lcXVhbHN1cGVyaW9yPTgzMTY7ZS5lcXVpdmFsZW5jZT04ODAxO2UuZXJib3BvbW9mbz0xMjU4MjtlLmVyY3lyaWxsaWM9MTA4ODtlLmVyZXZlcnNlZD02MDA7ZS5lcmV2ZXJzZWRjeXJpbGxpYz0xMTAxO2UuZXNjeXJpbGxpYz0xMDg5O2UuZXNkZXNjZW5kZXJjeXJpbGxpYz0xMTk1O2UuZXNoPTY0MztlLmVzaGN1cmw9NjQ2O2UuZXNob3J0ZGV2YT0yMzE4O2UuZXNob3J0dm93ZWxzaWduZGV2YT0yMzc0O2UuZXNocmV2ZXJzZWRsb29wPTQyNjtlLmVzaHNxdWF0cmV2ZXJzZWQ9NjQ1O2UuZXNtYWxsaGlyYWdhbmE9MTIzNTk7ZS5lc21hbGxrYXRha2FuYT0xMjQ1NTtlLmVzbWFsbGthdGFrYW5haGFsZndpZHRoPTY1Mzg2O2UuZXN0aW1hdGVkPTg0OTQ7ZS5lc3VwZXJpb3I9NjMyMTI7ZS5ldGE9OTUxO2UuZXRhcm1lbmlhbj0xMzg0O2UuZXRhdG9ub3M9OTQyO2UuZXRoPTI0MDtlLmV0aWxkZT03ODY5O2UuZXRpbGRlYmVsb3c9NzcwNztlLmV0bmFodGFmb3VraGhlYnJldz0xNDI1O2UuZXRuYWh0YWZvdWtobGVmdGhlYnJldz0xNDI1O2UuZXRuYWh0YWhlYnJldz0xNDI1O2UuZXRuYWh0YWxlZnRoZWJyZXc9MTQyNTtlLmV0dXJuZWQ9NDc3O2UuZXVrb3JlYW49MTI2NDE7ZS5ldXJvPTgzNjQ7ZS5ldm93ZWxzaWduYmVuZ2FsaT0yNTAzO2UuZXZvd2Vsc2lnbmRldmE9MjM3NTtlLmV2b3dlbHNpZ25ndWphcmF0aT0yNzU5O2UuZXhjbGFtPTMzO2UuZXhjbGFtYXJtZW5pYW49MTM3MjtlLmV4Y2xhbWRibD04MjUyO2UuZXhjbGFtZG93bj0xNjE7ZS5leGNsYW1kb3duc21hbGw9NjMzOTM7ZS5leGNsYW1tb25vc3BhY2U9NjUyODE7ZS5leGNsYW1zbWFsbD02MzI2NTtlLmV4aXN0ZW50aWFsPTg3MDc7ZS5lemg9NjU4O2UuZXpoY2Fyb249NDk1O2UuZXpoY3VybD02NTk7ZS5lemhyZXZlcnNlZD00NDE7ZS5lemh0YWlsPTQ0MjtlLmY9MTAyO2UuZmFkZXZhPTIzOTg7ZS5mYWd1cm11a2hpPTI2NTQ7ZS5mYWhyZW5oZWl0PTg0NTc7ZS5mYXRoYWFyYWJpYz0xNjE0O2UuZmF0aGFsb3dhcmFiaWM9MTYxNDtlLmZhdGhhdGFuYXJhYmljPTE2MTE7ZS5mYm9wb21vZm89MTI1NTI7ZS5mY2lyY2xlPTk0Mjk7ZS5mZG90YWNjZW50PTc3MTE7ZS5mZWhhcmFiaWM9MTYwMTtlLmZlaGFybWVuaWFuPTE0MTQ7ZS5mZWhmaW5hbGFyYWJpYz02NTIzNDtlLmZlaGluaXRpYWxhcmFiaWM9NjUyMzU7ZS5mZWhtZWRpYWxhcmFiaWM9NjUyMzY7ZS5mZWljb3B0aWM9OTk3O2UuZmVtYWxlPTk3OTI7ZS5mZj02NDI1NjtlLmZfZj02NDI1NjtlLmZmaT02NDI1OTtlLmZfZl9pPTY0MjU5O2UuZmZsPTY0MjYwO2UuZl9mX2w9NjQyNjA7ZS5maT02NDI1NztlLmZfaT02NDI1NztlLmZpZnRlZW5jaXJjbGU9OTMyNjtlLmZpZnRlZW5wYXJlbj05MzQ2O2UuZmlmdGVlbnBlcmlvZD05MzY2O2UuZmlndXJlZGFzaD04MjEwO2UuZmlsbGVkYm94PTk2MzI7ZS5maWxsZWRyZWN0PTk2NDQ7ZS5maW5hbGthZj0xNDk4O2UuZmluYWxrYWZkYWdlc2g9NjQzMTQ7ZS5maW5hbGthZmRhZ2VzaGhlYnJldz02NDMxNDtlLmZpbmFsa2FmaGVicmV3PTE0OTg7ZS5maW5hbG1lbT0xNTAxO2UuZmluYWxtZW1oZWJyZXc9MTUwMTtlLmZpbmFsbnVuPTE1MDM7ZS5maW5hbG51bmhlYnJldz0xNTAzO2UuZmluYWxwZT0xNTA3O2UuZmluYWxwZWhlYnJldz0xNTA3O2UuZmluYWx0c2FkaT0xNTA5O2UuZmluYWx0c2FkaWhlYnJldz0xNTA5O2UuZmlyc3R0b25lY2hpbmVzZT03MTM7ZS5maXNoZXllPTk2NzM7ZS5maXRhY3lyaWxsaWM9MTEzOTtlLmZpdmU9NTM7ZS5maXZlYXJhYmljPTE2Mzc7ZS5maXZlYmVuZ2FsaT0yNTM5O2UuZml2ZWNpcmNsZT05MzE2O2UuZml2ZWNpcmNsZWludmVyc2VzYW5zc2VyaWY9MTAxMjY7ZS5maXZlZGV2YT0yNDExO2UuZml2ZWVpZ2h0aHM9ODU0MTtlLmZpdmVndWphcmF0aT0yNzk1O2UuZml2ZWd1cm11a2hpPTI2Njc7ZS5maXZlaGFja2FyYWJpYz0xNjM3O2UuZml2ZWhhbmd6aG91PTEyMzI1O2UuZml2ZWlkZW9ncmFwaGljcGFyZW49MTI4MzY7ZS5maXZlaW5mZXJpb3I9ODMyNTtlLmZpdmVtb25vc3BhY2U9NjUzMDE7ZS5maXZlb2xkc3R5bGU9NjMyODU7ZS5maXZlcGFyZW49OTMzNjtlLmZpdmVwZXJpb2Q9OTM1NjtlLmZpdmVwZXJzaWFuPTE3ODE7ZS5maXZlcm9tYW49ODU2NDtlLmZpdmVzdXBlcmlvcj04MzA5O2UuZml2ZXRoYWk9MzY2OTtlLmZsPTY0MjU4O2UuZl9sPTY0MjU4O2UuZmxvcmluPTQwMjtlLmZtb25vc3BhY2U9NjUzNTA7ZS5mbXNxdWFyZT0xMzIwOTtlLmZvZmFudGhhaT0zNjE1O2UuZm9mYXRoYWk9MzYxMztlLmZvbmdtYW50aGFpPTM2NjM7ZS5mb3JhbGw9ODcwNDtlLmZvdXI9NTI7ZS5mb3VyYXJhYmljPTE2MzY7ZS5mb3VyYmVuZ2FsaT0yNTM4O2UuZm91cmNpcmNsZT05MzE1O2UuZm91cmNpcmNsZWludmVyc2VzYW5zc2VyaWY9MTAxMjU7ZS5mb3VyZGV2YT0yNDEwO2UuZm91cmd1amFyYXRpPTI3OTQ7ZS5mb3VyZ3VybXVraGk9MjY2NjtlLmZvdXJoYWNrYXJhYmljPTE2MzY7ZS5mb3VyaGFuZ3pob3U9MTIzMjQ7ZS5mb3VyaWRlb2dyYXBoaWNwYXJlbj0xMjgzNTtlLmZvdXJpbmZlcmlvcj04MzI0O2UuZm91cm1vbm9zcGFjZT02NTMwMDtlLmZvdXJudW1lcmF0b3JiZW5nYWxpPTI1NTE7ZS5mb3Vyb2xkc3R5bGU9NjMyODQ7ZS5mb3VycGFyZW49OTMzNTtlLmZvdXJwZXJpb2Q9OTM1NTtlLmZvdXJwZXJzaWFuPTE3ODA7ZS5mb3Vycm9tYW49ODU2MztlLmZvdXJzdXBlcmlvcj04MzA4O2UuZm91cnRlZW5jaXJjbGU9OTMyNTtlLmZvdXJ0ZWVucGFyZW49OTM0NTtlLmZvdXJ0ZWVucGVyaW9kPTkzNjU7ZS5mb3VydGhhaT0zNjY4O2UuZm91cnRodG9uZWNoaW5lc2U9NzE1O2UuZnBhcmVuPTkzNzc7ZS5mcmFjdGlvbj04MjYwO2UuZnJhbmM9ODM1NTtlLmc9MTAzO2UuZ2FiZW5nYWxpPTI0NTU7ZS5nYWN1dGU9NTAxO2UuZ2FkZXZhPTIzMjc7ZS5nYWZhcmFiaWM9MTcxMTtlLmdhZmZpbmFsYXJhYmljPTY0NDAzO2UuZ2FmaW5pdGlhbGFyYWJpYz02NDQwNDtlLmdhZm1lZGlhbGFyYWJpYz02NDQwNTtlLmdhZ3VqYXJhdGk9MjcxMTtlLmdhZ3VybXVraGk9MjU4MztlLmdhaGlyYWdhbmE9MTIzNjQ7ZS5nYWthdGFrYW5hPTEyNDYwO2UuZ2FtbWE9OTQ3O2UuZ2FtbWFsYXRpbnNtYWxsPTYxMTtlLmdhbW1hc3VwZXJpb3I9NzM2O2UuZ2FuZ2lhY29wdGljPTEwMDM7ZS5nYm9wb21vZm89MTI1NTc7ZS5nYnJldmU9Mjg3O2UuZ2Nhcm9uPTQ4NztlLmdjZWRpbGxhPTI5MTtlLmdjaXJjbGU9OTQzMDtlLmdjaXJjdW1mbGV4PTI4NTtlLmdjb21tYWFjY2VudD0yOTE7ZS5nZG90PTI4OTtlLmdkb3RhY2NlbnQ9Mjg5O2UuZ2VjeXJpbGxpYz0xMDc1O2UuZ2VoaXJhZ2FuYT0xMjM3MDtlLmdla2F0YWthbmE9MTI0NjY7ZS5nZW9tZXRyaWNhbGx5ZXF1YWw9ODc4NTtlLmdlcmVzaGFjY2VudGhlYnJldz0xNDM2O2UuZ2VyZXNoaGVicmV3PTE1MjM7ZS5nZXJlc2htdXFkYW1oZWJyZXc9MTQzNztlLmdlcm1hbmRibHM9MjIzO2UuZ2Vyc2hheWltYWNjZW50aGVicmV3PTE0Mzg7ZS5nZXJzaGF5aW1oZWJyZXc9MTUyNDtlLmdldGFtYXJrPTEyMzA3O2UuZ2hhYmVuZ2FsaT0yNDU2O2UuZ2hhZGFybWVuaWFuPTEzOTQ7ZS5naGFkZXZhPTIzMjg7ZS5naGFndWphcmF0aT0yNzEyO2UuZ2hhZ3VybXVraGk9MjU4NDtlLmdoYWluYXJhYmljPTE1OTQ7ZS5naGFpbmZpbmFsYXJhYmljPTY1MjMwO2UuZ2hhaW5pbml0aWFsYXJhYmljPTY1MjMxO2UuZ2hhaW5tZWRpYWxhcmFiaWM9NjUyMzI7ZS5naGVtaWRkbGVob29rY3lyaWxsaWM9MTE3MztlLmdoZXN0cm9rZWN5cmlsbGljPTExNzE7ZS5naGV1cHR1cm5jeXJpbGxpYz0xMTY5O2UuZ2hoYWRldmE9MjM5NDtlLmdoaGFndXJtdWtoaT0yNjUwO2UuZ2hvb2s9NjA4O2UuZ2h6c3F1YXJlPTEzMjAzO2UuZ2loaXJhZ2FuYT0xMjM2NjtlLmdpa2F0YWthbmE9MTI0NjI7ZS5naW1hcm1lbmlhbj0xMzc5O2UuZ2ltZWw9MTQ5MDtlLmdpbWVsZGFnZXNoPTY0MzA2O2UuZ2ltZWxkYWdlc2hoZWJyZXc9NjQzMDY7ZS5naW1lbGhlYnJldz0xNDkwO2UuZ2plY3lyaWxsaWM9MTEwNztlLmdsb3R0YWxpbnZlcnRlZHN0cm9rZT00NDY7ZS5nbG90dGFsc3RvcD02NjA7ZS5nbG90dGFsc3RvcGludmVydGVkPTY2MjtlLmdsb3R0YWxzdG9wbW9kPTcwNDtlLmdsb3R0YWxzdG9wcmV2ZXJzZWQ9NjYxO2UuZ2xvdHRhbHN0b3ByZXZlcnNlZG1vZD03MDU7ZS5nbG90dGFsc3RvcHJldmVyc2Vkc3VwZXJpb3I9NzQwO2UuZ2xvdHRhbHN0b3BzdHJva2U9NjczO2UuZ2xvdHRhbHN0b3BzdHJva2VyZXZlcnNlZD02NzQ7ZS5nbWFjcm9uPTc3MTM7ZS5nbW9ub3NwYWNlPTY1MzUxO2UuZ29oaXJhZ2FuYT0xMjM3MjtlLmdva2F0YWthbmE9MTI0Njg7ZS5ncGFyZW49OTM3ODtlLmdwYXNxdWFyZT0xMzIyODtlLmdyYWRpZW50PTg3MTE7ZS5ncmF2ZT05NjtlLmdyYXZlYmVsb3djbWI9NzkwO2UuZ3JhdmVjbWI9NzY4O2UuZ3JhdmVjb21iPTc2ODtlLmdyYXZlZGV2YT0yMzg3O2UuZ3JhdmVsb3dtb2Q9NzE4O2UuZ3JhdmVtb25vc3BhY2U9NjUzNDQ7ZS5ncmF2ZXRvbmVjbWI9ODMyO2UuZ3JlYXRlcj02MjtlLmdyZWF0ZXJlcXVhbD04ODA1O2UuZ3JlYXRlcmVxdWFsb3JsZXNzPTg5MjM7ZS5ncmVhdGVybW9ub3NwYWNlPTY1MzEwO2UuZ3JlYXRlcm9yZXF1aXZhbGVudD04ODE5O2UuZ3JlYXRlcm9ybGVzcz04ODIzO2UuZ3JlYXRlcm92ZXJlcXVhbD04ODA3O2UuZ3JlYXRlcnNtYWxsPTY1MTI1O2UuZ3NjcmlwdD02MDk7ZS5nc3Ryb2tlPTQ4NTtlLmd1aGlyYWdhbmE9MTIzNjg7ZS5ndWlsbGVtb3RsZWZ0PTE3MTtlLmd1aWxsZW1vdHJpZ2h0PTE4NztlLmd1aWxzaW5nbGxlZnQ9ODI0OTtlLmd1aWxzaW5nbHJpZ2h0PTgyNTA7ZS5ndWthdGFrYW5hPTEyNDY0O2UuZ3VyYW11c3F1YXJlPTEzMDgwO2UuZ3lzcXVhcmU9MTMyNTc7ZS5oPTEwNDtlLmhhYWJraGFzaWFuY3lyaWxsaWM9MTE5MztlLmhhYWx0b25lYXJhYmljPTE3Mjk7ZS5oYWJlbmdhbGk9MjQ4OTtlLmhhZGVzY2VuZGVyY3lyaWxsaWM9MTIwMztlLmhhZGV2YT0yMzYxO2UuaGFndWphcmF0aT0yNzQ1O2UuaGFndXJtdWtoaT0yNjE3O2UuaGFoYXJhYmljPTE1ODE7ZS5oYWhmaW5hbGFyYWJpYz02NTE4NjtlLmhhaGluaXRpYWxhcmFiaWM9NjUxODc7ZS5oYWhpcmFnYW5hPTEyMzk5O2UuaGFobWVkaWFsYXJhYmljPTY1MTg4O2UuaGFpdHVzcXVhcmU9MTMwOTg7ZS5oYWthdGFrYW5hPTEyNDk1O2UuaGFrYXRha2FuYWhhbGZ3aWR0aD02NTQxODtlLmhhbGFudGd1cm11a2hpPTI2Mzc7ZS5oYW16YWFyYWJpYz0xNTY5O2UuaGFtemFsb3dhcmFiaWM9MTU2OTtlLmhhbmd1bGZpbGxlcj0xMjY0NDtlLmhhcmRzaWduY3lyaWxsaWM9MTA5ODtlLmhhcnBvb25sZWZ0YmFyYnVwPTg2MzY7ZS5oYXJwb29ucmlnaHRiYXJidXA9ODY0MDtlLmhhc3F1YXJlPTEzMjU4O2UuaGF0YWZwYXRhaD0xNDU4O2UuaGF0YWZwYXRhaDE2PTE0NTg7ZS5oYXRhZnBhdGFoMjM9MTQ1ODtlLmhhdGFmcGF0YWgyZj0xNDU4O2UuaGF0YWZwYXRhaGhlYnJldz0xNDU4O2UuaGF0YWZwYXRhaG5hcnJvd2hlYnJldz0xNDU4O2UuaGF0YWZwYXRhaHF1YXJ0ZXJoZWJyZXc9MTQ1ODtlLmhhdGFmcGF0YWh3aWRlaGVicmV3PTE0NTg7ZS5oYXRhZnFhbWF0cz0xNDU5O2UuaGF0YWZxYW1hdHMxYj0xNDU5O2UuaGF0YWZxYW1hdHMyOD0xNDU5O2UuaGF0YWZxYW1hdHMzND0xNDU5O2UuaGF0YWZxYW1hdHNoZWJyZXc9MTQ1OTtlLmhhdGFmcWFtYXRzbmFycm93aGVicmV3PTE0NTk7ZS5oYXRhZnFhbWF0c3F1YXJ0ZXJoZWJyZXc9MTQ1OTtlLmhhdGFmcWFtYXRzd2lkZWhlYnJldz0xNDU5O2UuaGF0YWZzZWdvbD0xNDU3O2UuaGF0YWZzZWdvbDE3PTE0NTc7ZS5oYXRhZnNlZ29sMjQ9MTQ1NztlLmhhdGFmc2Vnb2wzMD0xNDU3O2UuaGF0YWZzZWdvbGhlYnJldz0xNDU3O2UuaGF0YWZzZWdvbG5hcnJvd2hlYnJldz0xNDU3O2UuaGF0YWZzZWdvbHF1YXJ0ZXJoZWJyZXc9MTQ1NztlLmhhdGFmc2Vnb2x3aWRlaGVicmV3PTE0NTc7ZS5oYmFyPTI5NTtlLmhib3BvbW9mbz0xMjU1OTtlLmhicmV2ZWJlbG93PTc3MjM7ZS5oY2VkaWxsYT03NzIxO2UuaGNpcmNsZT05NDMxO2UuaGNpcmN1bWZsZXg9MjkzO2UuaGRpZXJlc2lzPTc3MTk7ZS5oZG90YWNjZW50PTc3MTU7ZS5oZG90YmVsb3c9NzcxNztlLmhlPTE0OTI7ZS5oZWFydD05ODI5O2UuaGVhcnRzdWl0YmxhY2s9OTgyOTtlLmhlYXJ0c3VpdHdoaXRlPTk4MjU7ZS5oZWRhZ2VzaD02NDMwODtlLmhlZGFnZXNoaGVicmV3PTY0MzA4O2UuaGVoYWx0b25lYXJhYmljPTE3Mjk7ZS5oZWhhcmFiaWM9MTYwNztlLmhlaGVicmV3PTE0OTI7ZS5oZWhmaW5hbGFsdG9uZWFyYWJpYz02NDQyMztlLmhlaGZpbmFsYWx0dHdvYXJhYmljPTY1MjU4O2UuaGVoZmluYWxhcmFiaWM9NjUyNTg7ZS5oZWhoYW16YWFib3ZlZmluYWxhcmFiaWM9NjQ0MjE7ZS5oZWhoYW16YWFib3ZlaXNvbGF0ZWRhcmFiaWM9NjQ0MjA7ZS5oZWhpbml0aWFsYWx0b25lYXJhYmljPTY0NDI0O2UuaGVoaW5pdGlhbGFyYWJpYz02NTI1OTtlLmhlaGlyYWdhbmE9MTI0MDg7ZS5oZWhtZWRpYWxhbHRvbmVhcmFiaWM9NjQ0MjU7ZS5oZWhtZWRpYWxhcmFiaWM9NjUyNjA7ZS5oZWlzZWllcmFzcXVhcmU9MTMxNzk7ZS5oZWthdGFrYW5hPTEyNTA0O2UuaGVrYXRha2FuYWhhbGZ3aWR0aD02NTQyMTtlLmhla3V0YWFydXNxdWFyZT0xMzExMDtlLmhlbmdob29rPTYxNTtlLmhlcnV0dXNxdWFyZT0xMzExMztlLmhldD0xNDk1O2UuaGV0aGVicmV3PTE0OTU7ZS5oaG9vaz02MTQ7ZS5oaG9va3N1cGVyaW9yPTY4OTtlLmhpZXVoYWNpcmNsZWtvcmVhbj0xMjkyMztlLmhpZXVoYXBhcmVua29yZWFuPTEyODI3O2UuaGlldWhjaXJjbGVrb3JlYW49MTI5MDk7ZS5oaWV1aGtvcmVhbj0xMjYyMjtlLmhpZXVocGFyZW5rb3JlYW49MTI4MTM7ZS5oaWhpcmFnYW5hPTEyNDAyO2UuaGlrYXRha2FuYT0xMjQ5ODtlLmhpa2F0YWthbmFoYWxmd2lkdGg9NjU0MTk7ZS5oaXJpcT0xNDYwO2UuaGlyaXExND0xNDYwO2UuaGlyaXEyMT0xNDYwO2UuaGlyaXEyZD0xNDYwO2UuaGlyaXFoZWJyZXc9MTQ2MDtlLmhpcmlxbmFycm93aGVicmV3PTE0NjA7ZS5oaXJpcXF1YXJ0ZXJoZWJyZXc9MTQ2MDtlLmhpcmlxd2lkZWhlYnJldz0xNDYwO2UuaGxpbmViZWxvdz03ODMwO2UuaG1vbm9zcGFjZT02NTM1MjtlLmhvYXJtZW5pYW49MTM5MjtlLmhvaGlwdGhhaT0zNjI3O2UuaG9oaXJhZ2FuYT0xMjQxMTtlLmhva2F0YWthbmE9MTI1MDc7ZS5ob2thdGFrYW5haGFsZndpZHRoPTY1NDIyO2UuaG9sYW09MTQ2NTtlLmhvbGFtMTk9MTQ2NTtlLmhvbGFtMjY9MTQ2NTtlLmhvbGFtMzI9MTQ2NTtlLmhvbGFtaGVicmV3PTE0NjU7ZS5ob2xhbW5hcnJvd2hlYnJldz0xNDY1O2UuaG9sYW1xdWFydGVyaGVicmV3PTE0NjU7ZS5ob2xhbXdpZGVoZWJyZXc9MTQ2NTtlLmhvbm9raHVrdGhhaT0zNjMwO2UuaG9va2Fib3ZlY29tYj03Nzc7ZS5ob29rY21iPTc3NztlLmhvb2twYWxhdGFsaXplZGJlbG93Y21iPTgwMTtlLmhvb2tyZXRyb2ZsZXhiZWxvd2NtYj04MDI7ZS5ob29uc3F1YXJlPTEzMTIyO2UuaG9yaWNvcHRpYz0xMDAxO2UuaG9yaXpvbnRhbGJhcj04MjEzO2UuaG9ybmNtYj03OTU7ZS5ob3RzcHJpbmdzPTk4MzI7ZS5ob3VzZT04OTYyO2UuaHBhcmVuPTkzNzk7ZS5oc3VwZXJpb3I9Njg4O2UuaHR1cm5lZD02MTM7ZS5odWhpcmFnYW5hPTEyNDA1O2UuaHVpaXRvc3F1YXJlPTEzMTA3O2UuaHVrYXRha2FuYT0xMjUwMTtlLmh1a2F0YWthbmFoYWxmd2lkdGg9NjU0MjA7ZS5odW5nYXJ1bWxhdXQ9NzMzO2UuaHVuZ2FydW1sYXV0Y21iPTc3OTtlLmh2PTQwNTtlLmh5cGhlbj00NTtlLmh5cGhlbmluZmVyaW9yPTYzMjA1O2UuaHlwaGVubW9ub3NwYWNlPTY1MjkzO2UuaHlwaGVuc21hbGw9NjUxMjM7ZS5oeXBoZW5zdXBlcmlvcj02MzIwNjtlLmh5cGhlbnR3bz04MjA4O2UuaT0xMDU7ZS5pYWN1dGU9MjM3O2UuaWFjeXJpbGxpYz0xMTAzO2UuaWJlbmdhbGk9MjQzOTtlLmlib3BvbW9mbz0xMjU4MztlLmlicmV2ZT0zMDE7ZS5pY2Fyb249NDY0O2UuaWNpcmNsZT05NDMyO2UuaWNpcmN1bWZsZXg9MjM4O2UuaWN5cmlsbGljPTExMTA7ZS5pZGJsZ3JhdmU9NTIxO2UuaWRlb2dyYXBoZWFydGhjaXJjbGU9MTI5NDM7ZS5pZGVvZ3JhcGhmaXJlY2lyY2xlPTEyOTM5O2UuaWRlb2dyYXBoaWNhbGxpYW5jZXBhcmVuPTEyODYzO2UuaWRlb2dyYXBoaWNjYWxscGFyZW49MTI4NTg7ZS5pZGVvZ3JhcGhpY2NlbnRyZWNpcmNsZT0xMjk2NTtlLmlkZW9ncmFwaGljY2xvc2U9MTIyOTQ7ZS5pZGVvZ3JhcGhpY2NvbW1hPTEyMjg5O2UuaWRlb2dyYXBoaWNjb21tYWxlZnQ9NjUzODA7ZS5pZGVvZ3JhcGhpY2NvbmdyYXR1bGF0aW9ucGFyZW49MTI4NTU7ZS5pZGVvZ3JhcGhpY2NvcnJlY3RjaXJjbGU9MTI5NjM7ZS5pZGVvZ3JhcGhpY2VhcnRocGFyZW49MTI4NDc7ZS5pZGVvZ3JhcGhpY2VudGVycHJpc2VwYXJlbj0xMjg2MTtlLmlkZW9ncmFwaGljZXhjZWxsZW50Y2lyY2xlPTEyOTU3O2UuaWRlb2dyYXBoaWNmZXN0aXZhbHBhcmVuPTEyODY0O2UuaWRlb2dyYXBoaWNmaW5hbmNpYWxjaXJjbGU9MTI5NTA7ZS5pZGVvZ3JhcGhpY2ZpbmFuY2lhbHBhcmVuPTEyODU0O2UuaWRlb2dyYXBoaWNmaXJlcGFyZW49MTI4NDM7ZS5pZGVvZ3JhcGhpY2hhdmVwYXJlbj0xMjg1MDtlLmlkZW9ncmFwaGljaGlnaGNpcmNsZT0xMjk2NDtlLmlkZW9ncmFwaGljaXRlcmF0aW9ubWFyaz0xMjI5MztlLmlkZW9ncmFwaGljbGFib3JjaXJjbGU9MTI5NTI7ZS5pZGVvZ3JhcGhpY2xhYm9ycGFyZW49MTI4NTY7ZS5pZGVvZ3JhcGhpY2xlZnRjaXJjbGU9MTI5Njc7ZS5pZGVvZ3JhcGhpY2xvd2NpcmNsZT0xMjk2NjtlLmlkZW9ncmFwaGljbWVkaWNpbmVjaXJjbGU9MTI5Njk7ZS5pZGVvZ3JhcGhpY21ldGFscGFyZW49MTI4NDY7ZS5pZGVvZ3JhcGhpY21vb25wYXJlbj0xMjg0MjtlLmlkZW9ncmFwaGljbmFtZXBhcmVuPTEyODUyO2UuaWRlb2dyYXBoaWNwZXJpb2Q9MTIyOTA7ZS5pZGVvZ3JhcGhpY3ByaW50Y2lyY2xlPTEyOTU4O2UuaWRlb2dyYXBoaWNyZWFjaHBhcmVuPTEyODY3O2UuaWRlb2dyYXBoaWNyZXByZXNlbnRwYXJlbj0xMjg1NztlLmlkZW9ncmFwaGljcmVzb3VyY2VwYXJlbj0xMjg2MjtlLmlkZW9ncmFwaGljcmlnaHRjaXJjbGU9MTI5Njg7ZS5pZGVvZ3JhcGhpY3NlY3JldGNpcmNsZT0xMjk1MztlLmlkZW9ncmFwaGljc2VsZnBhcmVuPTEyODY2O2UuaWRlb2dyYXBoaWNzb2NpZXR5cGFyZW49MTI4NTE7ZS5pZGVvZ3JhcGhpY3NwYWNlPTEyMjg4O2UuaWRlb2dyYXBoaWNzcGVjaWFscGFyZW49MTI4NTM7ZS5pZGVvZ3JhcGhpY3N0b2NrcGFyZW49MTI4NDk7ZS5pZGVvZ3JhcGhpY3N0dWR5cGFyZW49MTI4NTk7ZS5pZGVvZ3JhcGhpY3N1bnBhcmVuPTEyODQ4O2UuaWRlb2dyYXBoaWNzdXBlcnZpc2VwYXJlbj0xMjg2MDtlLmlkZW9ncmFwaGljd2F0ZXJwYXJlbj0xMjg0NDtlLmlkZW9ncmFwaGljd29vZHBhcmVuPTEyODQ1O2UuaWRlb2dyYXBoaWN6ZXJvPTEyMjk1O2UuaWRlb2dyYXBobWV0YWxjaXJjbGU9MTI5NDI7ZS5pZGVvZ3JhcGhtb29uY2lyY2xlPTEyOTM4O2UuaWRlb2dyYXBobmFtZWNpcmNsZT0xMjk0ODtlLmlkZW9ncmFwaHN1bmNpcmNsZT0xMjk0NDtlLmlkZW9ncmFwaHdhdGVyY2lyY2xlPTEyOTQwO2UuaWRlb2dyYXBod29vZGNpcmNsZT0xMjk0MTtlLmlkZXZhPTIzMTE7ZS5pZGllcmVzaXM9MjM5O2UuaWRpZXJlc2lzYWN1dGU9NzcyNztlLmlkaWVyZXNpc2N5cmlsbGljPTEyNTM7ZS5pZG90YmVsb3c9Nzg4MztlLmllYnJldmVjeXJpbGxpYz0xMjM5O2UuaWVjeXJpbGxpYz0xMDc3O2UuaWV1bmdhY2lyY2xla29yZWFuPTEyOTE3O2UuaWV1bmdhcGFyZW5rb3JlYW49MTI4MjE7ZS5pZXVuZ2NpcmNsZWtvcmVhbj0xMjkwMztlLmlldW5na29yZWFuPTEyNjE1O2UuaWV1bmdwYXJlbmtvcmVhbj0xMjgwNztlLmlncmF2ZT0yMzY7ZS5pZ3VqYXJhdGk9MjY5NTtlLmlndXJtdWtoaT0yNTY3O2UuaWhpcmFnYW5hPTEyMzU2O2UuaWhvb2thYm92ZT03ODgxO2UuaWliZW5nYWxpPTI0NDA7ZS5paWN5cmlsbGljPTEwODA7ZS5paWRldmE9MjMxMjtlLmlpZ3VqYXJhdGk9MjY5NjtlLmlpZ3VybXVraGk9MjU2ODtlLmlpbWF0cmFndXJtdWtoaT0yNjI0O2UuaWludmVydGVkYnJldmU9NTIzO2UuaWlzaG9ydGN5cmlsbGljPTEwODE7ZS5paXZvd2Vsc2lnbmJlbmdhbGk9MjQ5NjtlLmlpdm93ZWxzaWduZGV2YT0yMzY4O2UuaWl2b3dlbHNpZ25ndWphcmF0aT0yNzUyO2UuaWo9MzA3O2UuaWthdGFrYW5hPTEyNDUyO2UuaWthdGFrYW5haGFsZndpZHRoPTY1Mzk0O2UuaWtvcmVhbj0xMjY0MztlLmlsZGU9NzMyO2UuaWx1eWhlYnJldz0xNDUyO2UuaW1hY3Jvbj0yOTk7ZS5pbWFjcm9uY3lyaWxsaWM9MTI1MTtlLmltYWdlb3JhcHByb3hpbWF0ZWx5ZXF1YWw9ODc4NztlLmltYXRyYWd1cm11a2hpPTI2MjM7ZS5pbW9ub3NwYWNlPTY1MzUzO2UuaW5jcmVtZW50PTg3MTA7ZS5pbmZpbml0eT04NzM0O2UuaW5pYXJtZW5pYW49MTM4NztlLmludGVncmFsPTg3NDc7ZS5pbnRlZ3JhbGJvdHRvbT04OTkzO2UuaW50ZWdyYWxidD04OTkzO2UuaW50ZWdyYWxleD02MzczMztlLmludGVncmFsdG9wPTg5OTI7ZS5pbnRlZ3JhbHRwPTg5OTI7ZS5pbnRlcnNlY3Rpb249ODc0NTtlLmludGlzcXVhcmU9MTMwNjE7ZS5pbnZidWxsZXQ9OTY4ODtlLmludmNpcmNsZT05Njg5O2UuaW52c21pbGVmYWNlPTk3ODc7ZS5pb2N5cmlsbGljPTExMDU7ZS5pb2dvbmVrPTMwMztlLmlvdGE9OTUzO2UuaW90YWRpZXJlc2lzPTk3MDtlLmlvdGFkaWVyZXNpc3Rvbm9zPTkxMjtlLmlvdGFsYXRpbj02MTc7ZS5pb3RhdG9ub3M9OTQzO2UuaXBhcmVuPTkzODA7ZS5pcmlndXJtdWtoaT0yNjc0O2UuaXNtYWxsaGlyYWdhbmE9MTIzNTU7ZS5pc21hbGxrYXRha2FuYT0xMjQ1MTtlLmlzbWFsbGthdGFrYW5haGFsZndpZHRoPTY1Mzg0O2UuaXNzaGFyYmVuZ2FsaT0yNTU0O2UuaXN0cm9rZT02MTY7ZS5pc3VwZXJpb3I9NjMyMTM7ZS5pdGVyYXRpb25oaXJhZ2FuYT0xMjQ0NTtlLml0ZXJhdGlvbmthdGFrYW5hPTEyNTQxO2UuaXRpbGRlPTI5NztlLml0aWxkZWJlbG93PTc3MjU7ZS5pdWJvcG9tb2ZvPTEyNTg1O2UuaXVjeXJpbGxpYz0xMTAyO2UuaXZvd2Vsc2lnbmJlbmdhbGk9MjQ5NTtlLml2b3dlbHNpZ25kZXZhPTIzNjc7ZS5pdm93ZWxzaWduZ3VqYXJhdGk9Mjc1MTtlLml6aGl0c2FjeXJpbGxpYz0xMTQxO2UuaXpoaXRzYWRibGdyYXZlY3lyaWxsaWM9MTE0MztlLmo9MTA2O2UuamFhcm1lbmlhbj0xMzkzO2UuamFiZW5nYWxpPTI0NjA7ZS5qYWRldmE9MjMzMjtlLmphZ3VqYXJhdGk9MjcxNjtlLmphZ3VybXVraGk9MjU4ODtlLmpib3BvbW9mbz0xMjU2MDtlLmpjYXJvbj00OTY7ZS5qY2lyY2xlPTk0MzM7ZS5qY2lyY3VtZmxleD0zMDk7ZS5qY3Jvc3NlZHRhaWw9NjY5O2UuamRvdGxlc3NzdHJva2U9NjA3O2UuamVjeXJpbGxpYz0xMTEyO2UuamVlbWFyYWJpYz0xNTgwO2UuamVlbWZpbmFsYXJhYmljPTY1MTgyO2UuamVlbWluaXRpYWxhcmFiaWM9NjUxODM7ZS5qZWVtbWVkaWFsYXJhYmljPTY1MTg0O2UuamVoYXJhYmljPTE2ODg7ZS5qZWhmaW5hbGFyYWJpYz02NDM5NTtlLmpoYWJlbmdhbGk9MjQ2MTtlLmpoYWRldmE9MjMzMztlLmpoYWd1amFyYXRpPTI3MTc7ZS5qaGFndXJtdWtoaT0yNTg5O2UuamhlaGFybWVuaWFuPTE0MDM7ZS5qaXM9MTIyOTI7ZS5qbW9ub3NwYWNlPTY1MzU0O2UuanBhcmVuPTkzODE7ZS5qc3VwZXJpb3I9NjkwO2Uuaz0xMDc7ZS5rYWJhc2hraXJjeXJpbGxpYz0xMTg1O2Uua2FiZW5nYWxpPTI0NTM7ZS5rYWN1dGU9NzcyOTtlLmthY3lyaWxsaWM9MTA4MjtlLmthZGVzY2VuZGVyY3lyaWxsaWM9MTE3OTtlLmthZGV2YT0yMzI1O2Uua2FmPTE0OTk7ZS5rYWZhcmFiaWM9MTYwMztlLmthZmRhZ2VzaD02NDMxNTtlLmthZmRhZ2VzaGhlYnJldz02NDMxNTtlLmthZmZpbmFsYXJhYmljPTY1MjQyO2Uua2FmaGVicmV3PTE0OTk7ZS5rYWZpbml0aWFsYXJhYmljPTY1MjQzO2Uua2FmbWVkaWFsYXJhYmljPTY1MjQ0O2Uua2FmcmFmZWhlYnJldz02NDMzMztlLmthZ3VqYXJhdGk9MjcwOTtlLmthZ3VybXVraGk9MjU4MTtlLmthaGlyYWdhbmE9MTIzNjM7ZS5rYWhvb2tjeXJpbGxpYz0xMjIwO2Uua2FrYXRha2FuYT0xMjQ1OTtlLmtha2F0YWthbmFoYWxmd2lkdGg9NjUzOTg7ZS5rYXBwYT05NTQ7ZS5rYXBwYXN5bWJvbGdyZWVrPTEwMDg7ZS5rYXB5ZW91bm1pZXVta29yZWFuPTEyNjU3O2Uua2FweWVvdW5waGlldXBoa29yZWFuPTEyNjc2O2Uua2FweWVvdW5waWV1cGtvcmVhbj0xMjY2NDtlLmthcHllb3Vuc3NhbmdwaWV1cGtvcmVhbj0xMjY2NTtlLmthcm9yaWlzcXVhcmU9MTMwNjk7ZS5rYXNoaWRhYXV0b2FyYWJpYz0xNjAwO2Uua2FzaGlkYWF1dG9ub3NpZGViZWFyaW5nYXJhYmljPTE2MDA7ZS5rYXNtYWxsa2F0YWthbmE9MTI1MzM7ZS5rYXNxdWFyZT0xMzE4ODtlLmthc3JhYXJhYmljPTE2MTY7ZS5rYXNyYXRhbmFyYWJpYz0xNjEzO2Uua2FzdHJva2VjeXJpbGxpYz0xMTgzO2Uua2F0YWhpcmFwcm9sb25nbWFya2hhbGZ3aWR0aD02NTM5MjtlLmthdmVydGljYWxzdHJva2VjeXJpbGxpYz0xMTgxO2Uua2JvcG9tb2ZvPTEyNTU4O2Uua2NhbHNxdWFyZT0xMzE5MztlLmtjYXJvbj00ODk7ZS5rY2VkaWxsYT0zMTE7ZS5rY2lyY2xlPTk0MzQ7ZS5rY29tbWFhY2NlbnQ9MzExO2Uua2RvdGJlbG93PTc3MzE7ZS5rZWhhcm1lbmlhbj0xNDEyO2Uua2VoaXJhZ2FuYT0xMjM2OTtlLmtla2F0YWthbmE9MTI0NjU7ZS5rZWthdGFrYW5haGFsZndpZHRoPTY1NDAxO2Uua2VuYXJtZW5pYW49MTM5MTtlLmtlc21hbGxrYXRha2FuYT0xMjUzNDtlLmtncmVlbmxhbmRpYz0zMTI7ZS5raGFiZW5nYWxpPTI0NTQ7ZS5raGFjeXJpbGxpYz0xMDkzO2Uua2hhZGV2YT0yMzI2O2Uua2hhZ3VqYXJhdGk9MjcxMDtlLmtoYWd1cm11a2hpPTI1ODI7ZS5raGFoYXJhYmljPTE1ODI7ZS5raGFoZmluYWxhcmFiaWM9NjUxOTA7ZS5raGFoaW5pdGlhbGFyYWJpYz02NTE5MTtlLmtoYWhtZWRpYWxhcmFiaWM9NjUxOTI7ZS5raGVpY29wdGljPTk5OTtlLmtoaGFkZXZhPTIzOTM7ZS5raGhhZ3VybXVraGk9MjY0OTtlLmtoaWV1a2hhY2lyY2xla29yZWFuPTEyOTIwO2Uua2hpZXVraGFwYXJlbmtvcmVhbj0xMjgyNDtlLmtoaWV1a2hjaXJjbGVrb3JlYW49MTI5MDY7ZS5raGlldWtoa29yZWFuPTEyNjE5O2Uua2hpZXVraHBhcmVua29yZWFuPTEyODEwO2Uua2hva2hhaXRoYWk9MzU4NjtlLmtob2tob250aGFpPTM1ODk7ZS5raG9raHVhdHRoYWk9MzU4NztlLmtob2tod2FpdGhhaT0zNTg4O2Uua2hvbXV0dGhhaT0zNjc1O2Uua2hvb2s9NDA5O2Uua2hvcmFraGFuZ3RoYWk9MzU5MDtlLmtoenNxdWFyZT0xMzIwMTtlLmtpaGlyYWdhbmE9MTIzNjU7ZS5raWthdGFrYW5hPTEyNDYxO2Uua2lrYXRha2FuYWhhbGZ3aWR0aD02NTM5OTtlLmtpcm9ndXJhbXVzcXVhcmU9MTMwNzc7ZS5raXJvbWVldG9ydXNxdWFyZT0xMzA3ODtlLmtpcm9zcXVhcmU9MTMwNzY7ZS5raXllb2thY2lyY2xla29yZWFuPTEyOTEwO2Uua2l5ZW9rYXBhcmVua29yZWFuPTEyODE0O2Uua2l5ZW9rY2lyY2xla29yZWFuPTEyODk2O2Uua2l5ZW9ra29yZWFuPTEyNTkzO2Uua2l5ZW9rcGFyZW5rb3JlYW49MTI4MDA7ZS5raXllb2tzaW9za29yZWFuPTEyNTk1O2Uua2plY3lyaWxsaWM9MTExNjtlLmtsaW5lYmVsb3c9NzczMztlLmtsc3F1YXJlPTEzMjA4O2Uua21jdWJlZHNxdWFyZT0xMzIyMjtlLmttb25vc3BhY2U9NjUzNTU7ZS5rbXNxdWFyZWRzcXVhcmU9MTMyMTg7ZS5rb2hpcmFnYW5hPTEyMzcxO2Uua29obXNxdWFyZT0xMzI0ODtlLmtva2FpdGhhaT0zNTg1O2Uua29rYXRha2FuYT0xMjQ2NztlLmtva2F0YWthbmFoYWxmd2lkdGg9NjU0MDI7ZS5rb29wb3NxdWFyZT0xMzA4NjtlLmtvcHBhY3lyaWxsaWM9MTE1MztlLmtvcmVhbnN0YW5kYXJkc3ltYm9sPTEyOTI3O2Uua29yb25pc2NtYj04MzU7ZS5rcGFyZW49OTM4MjtlLmtwYXNxdWFyZT0xMzIyNjtlLmtzaWN5cmlsbGljPTExMzU7ZS5rdHNxdWFyZT0xMzI2MztlLmt0dXJuZWQ9NjcwO2Uua3VoaXJhZ2FuYT0xMjM2NztlLmt1a2F0YWthbmE9MTI0NjM7ZS5rdWthdGFrYW5haGFsZndpZHRoPTY1NDAwO2Uua3ZzcXVhcmU9MTMyNDA7ZS5rd3NxdWFyZT0xMzI0NjtlLmw9MTA4O2UubGFiZW5nYWxpPTI0ODI7ZS5sYWN1dGU9MzE0O2UubGFkZXZhPTIzNTQ7ZS5sYWd1amFyYXRpPTI3Mzg7ZS5sYWd1cm11a2hpPTI2MTA7ZS5sYWtraGFuZ3lhb3RoYWk9MzY1MztlLmxhbWFsZWZmaW5hbGFyYWJpYz02NTI3NjtlLmxhbWFsZWZoYW16YWFib3ZlZmluYWxhcmFiaWM9NjUyNzI7ZS5sYW1hbGVmaGFtemFhYm92ZWlzb2xhdGVkYXJhYmljPTY1MjcxO2UubGFtYWxlZmhhbXphYmVsb3dmaW5hbGFyYWJpYz02NTI3NDtlLmxhbWFsZWZoYW16YWJlbG93aXNvbGF0ZWRhcmFiaWM9NjUyNzM7ZS5sYW1hbGVmaXNvbGF0ZWRhcmFiaWM9NjUyNzU7ZS5sYW1hbGVmbWFkZGFhYm92ZWZpbmFsYXJhYmljPTY1MjcwO2UubGFtYWxlZm1hZGRhYWJvdmVpc29sYXRlZGFyYWJpYz02NTI2OTtlLmxhbWFyYWJpYz0xNjA0O2UubGFtYmRhPTk1NTtlLmxhbWJkYXN0cm9rZT00MTE7ZS5sYW1lZD0xNTAwO2UubGFtZWRkYWdlc2g9NjQzMTY7ZS5sYW1lZGRhZ2VzaGhlYnJldz02NDMxNjtlLmxhbWVkaGVicmV3PTE1MDA7ZS5sYW1maW5hbGFyYWJpYz02NTI0NjtlLmxhbWhhaGluaXRpYWxhcmFiaWM9NjQ3MTQ7ZS5sYW1pbml0aWFsYXJhYmljPTY1MjQ3O2UubGFtamVlbWluaXRpYWxhcmFiaWM9NjQ3MTM7ZS5sYW1raGFoaW5pdGlhbGFyYWJpYz02NDcxNTtlLmxhbWxhbWhlaGlzb2xhdGVkYXJhYmljPTY1MDEwO2UubGFtbWVkaWFsYXJhYmljPTY1MjQ4O2UubGFtbWVlbWhhaGluaXRpYWxhcmFiaWM9NjQ5MDQ7ZS5sYW1tZWVtaW5pdGlhbGFyYWJpYz02NDcxNjtlLmxhcmdlY2lyY2xlPTk3MTE7ZS5sYmFyPTQxMDtlLmxiZWx0PTYyMDtlLmxib3BvbW9mbz0xMjU1NjtlLmxjYXJvbj0zMTg7ZS5sY2VkaWxsYT0zMTY7ZS5sY2lyY2xlPTk0MzU7ZS5sY2lyY3VtZmxleGJlbG93PTc3NDE7ZS5sY29tbWFhY2NlbnQ9MzE2O2UubGRvdD0zMjA7ZS5sZG90YWNjZW50PTMyMDtlLmxkb3RiZWxvdz03NzM1O2UubGRvdGJlbG93bWFjcm9uPTc3Mzc7ZS5sZWZ0YW5nbGVhYm92ZWNtYj03OTQ7ZS5sZWZ0dGFja2JlbG93Y21iPTc5MjtlLmxlc3M9NjA7ZS5sZXNzZXF1YWw9ODgwNDtlLmxlc3NlcXVhbG9yZ3JlYXRlcj04OTIyO2UubGVzc21vbm9zcGFjZT02NTMwODtlLmxlc3NvcmVxdWl2YWxlbnQ9ODgxODtlLmxlc3NvcmdyZWF0ZXI9ODgyMjtlLmxlc3NvdmVyZXF1YWw9ODgwNjtlLmxlc3NzbWFsbD02NTEyNDtlLmxlemg9NjIyO2UubGZibG9jaz05NjEyO2UubGhvb2tyZXRyb2ZsZXg9NjIxO2UubGlyYT04MzU2O2UubGl3bmFybWVuaWFuPTEzODg7ZS5saj00NTc7ZS5samVjeXJpbGxpYz0xMTEzO2UubGw9NjMxNjg7ZS5sbGFkZXZhPTIzNTU7ZS5sbGFndWphcmF0aT0yNzM5O2UubGxpbmViZWxvdz03NzM5O2UubGxsYWRldmE9MjM1NjtlLmxsdm9jYWxpY2JlbmdhbGk9MjUyOTtlLmxsdm9jYWxpY2RldmE9MjQwMTtlLmxsdm9jYWxpY3Zvd2Vsc2lnbmJlbmdhbGk9MjUzMTtlLmxsdm9jYWxpY3Zvd2Vsc2lnbmRldmE9MjQwMztlLmxtaWRkbGV0aWxkZT02MTk7ZS5sbW9ub3NwYWNlPTY1MzU2O2UubG1zcXVhcmU9MTMyNjQ7ZS5sb2NodWxhdGhhaT0zNjI4O2UubG9naWNhbGFuZD04NzQzO2UubG9naWNhbG5vdD0xNzI7ZS5sb2dpY2Fsbm90cmV2ZXJzZWQ9ODk3NjtlLmxvZ2ljYWxvcj04NzQ0O2UubG9saW5ndGhhaT0zNjIxO2UubG9uZ3M9MzgzO2UubG93bGluZWNlbnRlcmxpbmU9NjUxMDI7ZS5sb3dsaW5lY21iPTgxODtlLmxvd2xpbmVkYXNoZWQ9NjUxMDE7ZS5sb3plbmdlPTk2NzQ7ZS5scGFyZW49OTM4MztlLmxzbGFzaD0zMjI7ZS5sc3F1YXJlPTg0Njc7ZS5sc3VwZXJpb3I9NjMyMTQ7ZS5sdHNoYWRlPTk2MTc7ZS5sdXRoYWk9MzYyMjtlLmx2b2NhbGljYmVuZ2FsaT0yNDQ0O2UubHZvY2FsaWNkZXZhPTIzMTY7ZS5sdm9jYWxpY3Zvd2Vsc2lnbmJlbmdhbGk9MjUzMDtlLmx2b2NhbGljdm93ZWxzaWduZGV2YT0yNDAyO2UubHhzcXVhcmU9MTMyNjc7ZS5tPTEwOTtlLm1hYmVuZ2FsaT0yNDc4O2UubWFjcm9uPTE3NTtlLm1hY3JvbmJlbG93Y21iPTgxNztlLm1hY3JvbmNtYj03NzI7ZS5tYWNyb25sb3dtb2Q9NzE3O2UubWFjcm9ubW9ub3NwYWNlPTY1NTA3O2UubWFjdXRlPTc3NDM7ZS5tYWRldmE9MjM1MDtlLm1hZ3VqYXJhdGk9MjczNDtlLm1hZ3VybXVraGk9MjYwNjtlLm1haGFwYWtoaGVicmV3PTE0NDQ7ZS5tYWhhcGFraGxlZnRoZWJyZXc9MTQ0NDtlLm1haGlyYWdhbmE9MTI0MTQ7ZS5tYWljaGF0dGF3YWxvd2xlZnR0aGFpPTYzNjM3O2UubWFpY2hhdHRhd2Fsb3dyaWdodHRoYWk9NjM2MzY7ZS5tYWljaGF0dGF3YXRoYWk9MzY1OTtlLm1haWNoYXR0YXdhdXBwZXJsZWZ0dGhhaT02MzYzNTtlLm1haWVrbG93bGVmdHRoYWk9NjM2Mjg7ZS5tYWlla2xvd3JpZ2h0dGhhaT02MzYyNztlLm1haWVrdGhhaT0zNjU2O2UubWFpZWt1cHBlcmxlZnR0aGFpPTYzNjI2O2UubWFpaGFuYWthdGxlZnR0aGFpPTYzNjIwO2UubWFpaGFuYWthdHRoYWk9MzYzMztlLm1haXRhaWtodWxlZnR0aGFpPTYzNjI1O2UubWFpdGFpa2h1dGhhaT0zNjU1O2UubWFpdGhvbG93bGVmdHRoYWk9NjM2MzE7ZS5tYWl0aG9sb3dyaWdodHRoYWk9NjM2MzA7ZS5tYWl0aG90aGFpPTM2NTc7ZS5tYWl0aG91cHBlcmxlZnR0aGFpPTYzNjI5O2UubWFpdHJpbG93bGVmdHRoYWk9NjM2MzQ7ZS5tYWl0cmlsb3dyaWdodHRoYWk9NjM2MzM7ZS5tYWl0cml0aGFpPTM2NTg7ZS5tYWl0cml1cHBlcmxlZnR0aGFpPTYzNjMyO2UubWFpeWFtb2t0aGFpPTM2NTQ7ZS5tYWthdGFrYW5hPTEyNTEwO2UubWFrYXRha2FuYWhhbGZ3aWR0aD02NTQyMztlLm1hbGU9OTc5NDtlLm1hbnN5b25zcXVhcmU9MTMxMjc7ZS5tYXFhZmhlYnJldz0xNDcwO2UubWFycz05Nzk0O2UubWFzb3JhY2lyY2xlaGVicmV3PTE0NTU7ZS5tYXNxdWFyZT0xMzE4NztlLm1ib3BvbW9mbz0xMjU1MTtlLm1ic3F1YXJlPTEzMjY4O2UubWNpcmNsZT05NDM2O2UubWN1YmVkc3F1YXJlPTEzMjIxO2UubWRvdGFjY2VudD03NzQ1O2UubWRvdGJlbG93PTc3NDc7ZS5tZWVtYXJhYmljPTE2MDU7ZS5tZWVtZmluYWxhcmFiaWM9NjUyNTA7ZS5tZWVtaW5pdGlhbGFyYWJpYz02NTI1MTtlLm1lZW1tZWRpYWxhcmFiaWM9NjUyNTI7ZS5tZWVtbWVlbWluaXRpYWxhcmFiaWM9NjQ3MjE7ZS5tZWVtbWVlbWlzb2xhdGVkYXJhYmljPTY0NTg0O2UubWVldG9ydXNxdWFyZT0xMzEzMztlLm1laGlyYWdhbmE9MTI0MTc7ZS5tZWl6aWVyYXNxdWFyZT0xMzE4MjtlLm1la2F0YWthbmE9MTI1MTM7ZS5tZWthdGFrYW5haGFsZndpZHRoPTY1NDI2O2UubWVtPTE1MDI7ZS5tZW1kYWdlc2g9NjQzMTg7ZS5tZW1kYWdlc2hoZWJyZXc9NjQzMTg7ZS5tZW1oZWJyZXc9MTUwMjtlLm1lbmFybWVuaWFuPTEzOTY7ZS5tZXJraGFoZWJyZXc9MTQ0NTtlLm1lcmtoYWtlZnVsYWhlYnJldz0xNDQ2O2UubWVya2hha2VmdWxhbGVmdGhlYnJldz0xNDQ2O2UubWVya2hhbGVmdGhlYnJldz0xNDQ1O2UubWhvb2s9NjI1O2UubWh6c3F1YXJlPTEzMjAyO2UubWlkZGxlZG90a2F0YWthbmFoYWxmd2lkdGg9NjUzODE7ZS5taWRkb3Q9MTgzO2UubWlldW1hY2lyY2xla29yZWFuPTEyOTE0O2UubWlldW1hcGFyZW5rb3JlYW49MTI4MTg7ZS5taWV1bWNpcmNsZWtvcmVhbj0xMjkwMDtlLm1pZXVta29yZWFuPTEyNjA5O2UubWlldW1wYW5zaW9za29yZWFuPTEyNjU2O2UubWlldW1wYXJlbmtvcmVhbj0xMjgwNDtlLm1pZXVtcGlldXBrb3JlYW49MTI2NTQ7ZS5taWV1bXNpb3Nrb3JlYW49MTI2NTU7ZS5taWhpcmFnYW5hPTEyNDE1O2UubWlrYXRha2FuYT0xMjUxMTtlLm1pa2F0YWthbmFoYWxmd2lkdGg9NjU0MjQ7ZS5taW51cz04NzIyO2UubWludXNiZWxvd2NtYj04MDA7ZS5taW51c2NpcmNsZT04ODU0O2UubWludXNtb2Q9NzI3O2UubWludXNwbHVzPTg3MjM7ZS5taW51dGU9ODI0MjtlLm1pcmliYWFydXNxdWFyZT0xMzEzMDtlLm1pcmlzcXVhcmU9MTMxMjk7ZS5tbG9uZ2xlZ3R1cm5lZD02MjQ7ZS5tbHNxdWFyZT0xMzIwNjtlLm1tY3ViZWRzcXVhcmU9MTMyMTk7ZS5tbW9ub3NwYWNlPTY1MzU3O2UubW1zcXVhcmVkc3F1YXJlPTEzMjE1O2UubW9oaXJhZ2FuYT0xMjQxODtlLm1vaG1zcXVhcmU9MTMyNDk7ZS5tb2thdGFrYW5hPTEyNTE0O2UubW9rYXRha2FuYWhhbGZ3aWR0aD02NTQyNztlLm1vbHNxdWFyZT0xMzI3MDtlLm1vbWF0aGFpPTM2MTc7ZS5tb3ZlcnNzcXVhcmU9MTMyMjM7ZS5tb3ZlcnNzcXVhcmVkc3F1YXJlPTEzMjI0O2UubXBhcmVuPTkzODQ7ZS5tcGFzcXVhcmU9MTMyMjc7ZS5tc3NxdWFyZT0xMzIzNTtlLm1zdXBlcmlvcj02MzIxNTtlLm10dXJuZWQ9NjIzO2UubXU9MTgxO2UubXUxPTE4MTtlLm11YXNxdWFyZT0xMzE4NjtlLm11Y2hncmVhdGVyPTg4MTE7ZS5tdWNobGVzcz04ODEwO2UubXVmc3F1YXJlPTEzMTk2O2UubXVncmVlaz05NTY7ZS5tdWdzcXVhcmU9MTMxOTc7ZS5tdWhpcmFnYW5hPTEyNDE2O2UubXVrYXRha2FuYT0xMjUxMjtlLm11a2F0YWthbmFoYWxmd2lkdGg9NjU0MjU7ZS5tdWxzcXVhcmU9MTMyMDU7ZS5tdWx0aXBseT0yMTU7ZS5tdW1zcXVhcmU9MTMyMTE7ZS5tdW5haGhlYnJldz0xNDQzO2UubXVuYWhsZWZ0aGVicmV3PTE0NDM7ZS5tdXNpY2Fsbm90ZT05ODM0O2UubXVzaWNhbG5vdGVkYmw9OTgzNTtlLm11c2ljZmxhdHNpZ249OTgzNztlLm11c2ljc2hhcnBzaWduPTk4Mzk7ZS5tdXNzcXVhcmU9MTMyMzQ7ZS5tdXZzcXVhcmU9MTMyMzg7ZS5tdXdzcXVhcmU9MTMyNDQ7ZS5tdm1lZ2FzcXVhcmU9MTMyNDE7ZS5tdnNxdWFyZT0xMzIzOTtlLm13bWVnYXNxdWFyZT0xMzI0NztlLm13c3F1YXJlPTEzMjQ1O2Uubj0xMTA7ZS5uYWJlbmdhbGk9MjQ3MjtlLm5hYmxhPTg3MTE7ZS5uYWN1dGU9MzI0O2UubmFkZXZhPTIzNDQ7ZS5uYWd1amFyYXRpPTI3Mjg7ZS5uYWd1cm11a2hpPTI2MDA7ZS5uYWhpcmFnYW5hPTEyMzk0O2UubmFrYXRha2FuYT0xMjQ5MDtlLm5ha2F0YWthbmFoYWxmd2lkdGg9NjU0MTM7ZS5uYXBvc3Ryb3BoZT0zMjk7ZS5uYXNxdWFyZT0xMzE4NTtlLm5ib3BvbW9mbz0xMjU1NTtlLm5ic3BhY2U9MTYwO2UubmNhcm9uPTMyODtlLm5jZWRpbGxhPTMyNjtlLm5jaXJjbGU9OTQzNztlLm5jaXJjdW1mbGV4YmVsb3c9Nzc1NTtlLm5jb21tYWFjY2VudD0zMjY7ZS5uZG90YWNjZW50PTc3NDk7ZS5uZG90YmVsb3c9Nzc1MTtlLm5laGlyYWdhbmE9MTIzOTc7ZS5uZWthdGFrYW5hPTEyNDkzO2UubmVrYXRha2FuYWhhbGZ3aWR0aD02NTQxNjtlLm5ld3NoZXFlbHNpZ249ODM2MjtlLm5mc3F1YXJlPTEzMTk1O2UubmdhYmVuZ2FsaT0yNDU3O2UubmdhZGV2YT0yMzI5O2UubmdhZ3VqYXJhdGk9MjcxMztlLm5nYWd1cm11a2hpPTI1ODU7ZS5uZ29uZ3V0aGFpPTM1OTE7ZS5uaGlyYWdhbmE9MTI0MzU7ZS5uaG9va2xlZnQ9NjI2O2Uubmhvb2tyZXRyb2ZsZXg9NjI3O2UubmlldW5hY2lyY2xla29yZWFuPTEyOTExO2UubmlldW5hcGFyZW5rb3JlYW49MTI4MTU7ZS5uaWV1bmNpZXVja29yZWFuPTEyNTk3O2UubmlldW5jaXJjbGVrb3JlYW49MTI4OTc7ZS5uaWV1bmhpZXVoa29yZWFuPTEyNTk4O2UubmlldW5rb3JlYW49MTI1OTY7ZS5uaWV1bnBhbnNpb3Nrb3JlYW49MTI2NDg7ZS5uaWV1bnBhcmVua29yZWFuPTEyODAxO2UubmlldW5zaW9za29yZWFuPTEyNjQ3O2UubmlldW50aWtldXRrb3JlYW49MTI2NDY7ZS5uaWhpcmFnYW5hPTEyMzk1O2UubmlrYXRha2FuYT0xMjQ5MTtlLm5pa2F0YWthbmFoYWxmd2lkdGg9NjU0MTQ7ZS5uaWtoYWhpdGxlZnR0aGFpPTYzNjQxO2UubmlraGFoaXR0aGFpPTM2NjE7ZS5uaW5lPTU3O2UubmluZWFyYWJpYz0xNjQxO2UubmluZWJlbmdhbGk9MjU0MztlLm5pbmVjaXJjbGU9OTMyMDtlLm5pbmVjaXJjbGVpbnZlcnNlc2Fuc3NlcmlmPTEwMTMwO2UubmluZWRldmE9MjQxNTtlLm5pbmVndWphcmF0aT0yNzk5O2UubmluZWd1cm11a2hpPTI2NzE7ZS5uaW5laGFja2FyYWJpYz0xNjQxO2UubmluZWhhbmd6aG91PTEyMzI5O2UubmluZWlkZW9ncmFwaGljcGFyZW49MTI4NDA7ZS5uaW5laW5mZXJpb3I9ODMyOTtlLm5pbmVtb25vc3BhY2U9NjUzMDU7ZS5uaW5lb2xkc3R5bGU9NjMyODk7ZS5uaW5lcGFyZW49OTM0MDtlLm5pbmVwZXJpb2Q9OTM2MDtlLm5pbmVwZXJzaWFuPTE3ODU7ZS5uaW5lcm9tYW49ODU2ODtlLm5pbmVzdXBlcmlvcj04MzEzO2UubmluZXRlZW5jaXJjbGU9OTMzMDtlLm5pbmV0ZWVucGFyZW49OTM1MDtlLm5pbmV0ZWVucGVyaW9kPTkzNzA7ZS5uaW5ldGhhaT0zNjczO2Uubmo9NDYwO2UubmplY3lyaWxsaWM9MTExNDtlLm5rYXRha2FuYT0xMjUzMTtlLm5rYXRha2FuYWhhbGZ3aWR0aD02NTQzNztlLm5sZWdyaWdodGxvbmc9NDE0O2UubmxpbmViZWxvdz03NzUzO2Uubm1vbm9zcGFjZT02NTM1ODtlLm5tc3F1YXJlPTEzMjEwO2Uubm5hYmVuZ2FsaT0yNDY3O2Uubm5hZGV2YT0yMzM5O2Uubm5hZ3VqYXJhdGk9MjcyMztlLm5uYWd1cm11a2hpPTI1OTU7ZS5ubm5hZGV2YT0yMzQ1O2Uubm9oaXJhZ2FuYT0xMjM5ODtlLm5va2F0YWthbmE9MTI0OTQ7ZS5ub2thdGFrYW5haGFsZndpZHRoPTY1NDE3O2Uubm9uYnJlYWtpbmdzcGFjZT0xNjA7ZS5ub25lbnRoYWk9MzYwMztlLm5vbnV0aGFpPTM2MDk7ZS5ub29uYXJhYmljPTE2MDY7ZS5ub29uZmluYWxhcmFiaWM9NjUyNTQ7ZS5ub29uZ2h1bm5hYXJhYmljPTE3MjI7ZS5ub29uZ2h1bm5hZmluYWxhcmFiaWM9NjQ0MTU7ZS5ub29uaW5pdGlhbGFyYWJpYz02NTI1NTtlLm5vb25qZWVtaW5pdGlhbGFyYWJpYz02NDcyMjtlLm5vb25qZWVtaXNvbGF0ZWRhcmFiaWM9NjQ1ODc7ZS5ub29ubWVkaWFsYXJhYmljPTY1MjU2O2Uubm9vbm1lZW1pbml0aWFsYXJhYmljPTY0NzI1O2Uubm9vbm1lZW1pc29sYXRlZGFyYWJpYz02NDU5MDtlLm5vb25ub29uZmluYWxhcmFiaWM9NjQ2NTM7ZS5ub3Rjb250YWlucz04NzE2O2Uubm90ZWxlbWVudD04NzEzO2Uubm90ZWxlbWVudG9mPTg3MTM7ZS5ub3RlcXVhbD04ODAwO2Uubm90Z3JlYXRlcj04ODE1O2Uubm90Z3JlYXRlcm5vcmVxdWFsPTg4MTc7ZS5ub3RncmVhdGVybm9ybGVzcz04ODI1O2Uubm90aWRlbnRpY2FsPTg4MDI7ZS5ub3RsZXNzPTg4MTQ7ZS5ub3RsZXNzbm9yZXF1YWw9ODgxNjtlLm5vdHBhcmFsbGVsPTg3NDI7ZS5ub3RwcmVjZWRlcz04ODMyO2Uubm90c3Vic2V0PTg4MzY7ZS5ub3RzdWNjZWVkcz04ODMzO2Uubm90c3VwZXJzZXQ9ODgzNztlLm5vd2FybWVuaWFuPTEzOTg7ZS5ucGFyZW49OTM4NTtlLm5zc3F1YXJlPTEzMjMzO2UubnN1cGVyaW9yPTgzMTk7ZS5udGlsZGU9MjQxO2UubnU9OTU3O2UubnVoaXJhZ2FuYT0xMjM5NjtlLm51a2F0YWthbmE9MTI0OTI7ZS5udWthdGFrYW5haGFsZndpZHRoPTY1NDE1O2UubnVrdGFiZW5nYWxpPTI0OTI7ZS5udWt0YWRldmE9MjM2NDtlLm51a3RhZ3VqYXJhdGk9Mjc0ODtlLm51a3RhZ3VybXVraGk9MjYyMDtlLm51bWJlcnNpZ249MzU7ZS5udW1iZXJzaWdubW9ub3NwYWNlPTY1MjgzO2UubnVtYmVyc2lnbnNtYWxsPTY1MTE5O2UubnVtZXJhbHNpZ25ncmVlaz04ODQ7ZS5udW1lcmFsc2lnbmxvd2VyZ3JlZWs9ODg1O2UubnVtZXJvPTg0NzA7ZS5udW49MTUwNDtlLm51bmRhZ2VzaD02NDMyMDtlLm51bmRhZ2VzaGhlYnJldz02NDMyMDtlLm51bmhlYnJldz0xNTA0O2UubnZzcXVhcmU9MTMyMzc7ZS5ud3NxdWFyZT0xMzI0MztlLm55YWJlbmdhbGk9MjQ2MjtlLm55YWRldmE9MjMzNDtlLm55YWd1amFyYXRpPTI3MTg7ZS5ueWFndXJtdWtoaT0yNTkwO2Uubz0xMTE7ZS5vYWN1dGU9MjQzO2Uub2FuZ3RoYWk9MzYyOTtlLm9iYXJyZWQ9NjI5O2Uub2JhcnJlZGN5cmlsbGljPTEyNTc7ZS5vYmFycmVkZGllcmVzaXNjeXJpbGxpYz0xMjU5O2Uub2JlbmdhbGk9MjQ1MTtlLm9ib3BvbW9mbz0xMjU3MTtlLm9icmV2ZT0zMzU7ZS5vY2FuZHJhZGV2YT0yMzIxO2Uub2NhbmRyYWd1amFyYXRpPTI3MDU7ZS5vY2FuZHJhdm93ZWxzaWduZGV2YT0yMzc3O2Uub2NhbmRyYXZvd2Vsc2lnbmd1amFyYXRpPTI3NjE7ZS5vY2Fyb249NDY2O2Uub2NpcmNsZT05NDM4O2Uub2NpcmN1bWZsZXg9MjQ0O2Uub2NpcmN1bWZsZXhhY3V0ZT03ODg5O2Uub2NpcmN1bWZsZXhkb3RiZWxvdz03ODk3O2Uub2NpcmN1bWZsZXhncmF2ZT03ODkxO2Uub2NpcmN1bWZsZXhob29rYWJvdmU9Nzg5MztlLm9jaXJjdW1mbGV4dGlsZGU9Nzg5NTtlLm9jeXJpbGxpYz0xMDg2O2Uub2RibGFjdXRlPTMzNztlLm9kYmxncmF2ZT01MjU7ZS5vZGV2YT0yMzIzO2Uub2RpZXJlc2lzPTI0NjtlLm9kaWVyZXNpc2N5cmlsbGljPTEyNTU7ZS5vZG90YmVsb3c9Nzg4NTtlLm9lPTMzOTtlLm9la29yZWFuPTEyNjM0O2Uub2dvbmVrPTczMTtlLm9nb25la2NtYj04MDg7ZS5vZ3JhdmU9MjQyO2Uub2d1amFyYXRpPTI3MDc7ZS5vaGFybWVuaWFuPTE0MTM7ZS5vaGlyYWdhbmE9MTIzNjI7ZS5vaG9va2Fib3ZlPTc4ODc7ZS5vaG9ybj00MTc7ZS5vaG9ybmFjdXRlPTc4OTk7ZS5vaG9ybmRvdGJlbG93PTc5MDc7ZS5vaG9ybmdyYXZlPTc5MDE7ZS5vaG9ybmhvb2thYm92ZT03OTAzO2Uub2hvcm50aWxkZT03OTA1O2Uub2h1bmdhcnVtbGF1dD0zMzc7ZS5vaT00MTk7ZS5vaW52ZXJ0ZWRicmV2ZT01Mjc7ZS5va2F0YWthbmE9MTI0NTg7ZS5va2F0YWthbmFoYWxmd2lkdGg9NjUzOTc7ZS5va29yZWFuPTEyNjMxO2Uub2xlaGVicmV3PTE0NTE7ZS5vbWFjcm9uPTMzMztlLm9tYWNyb25hY3V0ZT03NzYzO2Uub21hY3JvbmdyYXZlPTc3NjE7ZS5vbWRldmE9MjM4NDtlLm9tZWdhPTk2OTtlLm9tZWdhMT05ODI7ZS5vbWVnYWN5cmlsbGljPTExMjE7ZS5vbWVnYWxhdGluY2xvc2VkPTYzMTtlLm9tZWdhcm91bmRjeXJpbGxpYz0xMTQ3O2Uub21lZ2F0aXRsb2N5cmlsbGljPTExNDk7ZS5vbWVnYXRvbm9zPTk3NDtlLm9tZ3VqYXJhdGk9Mjc2ODtlLm9taWNyb249OTU5O2Uub21pY3JvbnRvbm9zPTk3MjtlLm9tb25vc3BhY2U9NjUzNTk7ZS5vbmU9NDk7ZS5vbmVhcmFiaWM9MTYzMztlLm9uZWJlbmdhbGk9MjUzNTtlLm9uZWNpcmNsZT05MzEyO2Uub25lY2lyY2xlaW52ZXJzZXNhbnNzZXJpZj0xMDEyMjtlLm9uZWRldmE9MjQwNztlLm9uZWRvdGVubGVhZGVyPTgyMjg7ZS5vbmVlaWdodGg9ODUzOTtlLm9uZWZpdHRlZD02MzE5NjtlLm9uZWd1amFyYXRpPTI3OTE7ZS5vbmVndXJtdWtoaT0yNjYzO2Uub25laGFja2FyYWJpYz0xNjMzO2Uub25laGFsZj0xODk7ZS5vbmVoYW5nemhvdT0xMjMyMTtlLm9uZWlkZW9ncmFwaGljcGFyZW49MTI4MzI7ZS5vbmVpbmZlcmlvcj04MzIxO2Uub25lbW9ub3NwYWNlPTY1Mjk3O2Uub25lbnVtZXJhdG9yYmVuZ2FsaT0yNTQ4O2Uub25lb2xkc3R5bGU9NjMyODE7ZS5vbmVwYXJlbj05MzMyO2Uub25lcGVyaW9kPTkzNTI7ZS5vbmVwZXJzaWFuPTE3Nzc7ZS5vbmVxdWFydGVyPTE4ODtlLm9uZXJvbWFuPTg1NjA7ZS5vbmVzdXBlcmlvcj0xODU7ZS5vbmV0aGFpPTM2NjU7ZS5vbmV0aGlyZD04NTMxO2Uub29nb25laz00OTE7ZS5vb2dvbmVrbWFjcm9uPTQ5MztlLm9vZ3VybXVraGk9MjU3OTtlLm9vbWF0cmFndXJtdWtoaT0yNjM1O2Uub29wZW49NTk2O2Uub3BhcmVuPTkzODY7ZS5vcGVuYnVsbGV0PTk3MDI7ZS5vcHRpb249ODk5NztlLm9yZGZlbWluaW5lPTE3MDtlLm9yZG1hc2N1bGluZT0xODY7ZS5vcnRob2dvbmFsPTg3MzU7ZS5vc2hvcnRkZXZhPTIzMjI7ZS5vc2hvcnR2b3dlbHNpZ25kZXZhPTIzNzg7ZS5vc2xhc2g9MjQ4O2Uub3NsYXNoYWN1dGU9NTExO2Uub3NtYWxsaGlyYWdhbmE9MTIzNjE7ZS5vc21hbGxrYXRha2FuYT0xMjQ1NztlLm9zbWFsbGthdGFrYW5haGFsZndpZHRoPTY1Mzg3O2Uub3N0cm9rZWFjdXRlPTUxMTtlLm9zdXBlcmlvcj02MzIxNjtlLm90Y3lyaWxsaWM9MTE1MTtlLm90aWxkZT0yNDU7ZS5vdGlsZGVhY3V0ZT03NzU3O2Uub3RpbGRlZGllcmVzaXM9Nzc1OTtlLm91Ym9wb21vZm89MTI1Nzc7ZS5vdmVybGluZT04MjU0O2Uub3ZlcmxpbmVjZW50ZXJsaW5lPTY1MDk4O2Uub3ZlcmxpbmVjbWI9NzczO2Uub3ZlcmxpbmVkYXNoZWQ9NjUwOTc7ZS5vdmVybGluZWRibHdhdnk9NjUxMDA7ZS5vdmVybGluZXdhdnk9NjUwOTk7ZS5vdmVyc2NvcmU9MTc1O2Uub3Zvd2Vsc2lnbmJlbmdhbGk9MjUwNztlLm92b3dlbHNpZ25kZXZhPTIzNzk7ZS5vdm93ZWxzaWduZ3VqYXJhdGk9Mjc2MztlLnA9MTEyO2UucGFhbXBzc3F1YXJlPTEzMTg0O2UucGFhc2VudG9zcXVhcmU9MTMwOTk7ZS5wYWJlbmdhbGk9MjQ3NDtlLnBhY3V0ZT03NzY1O2UucGFkZXZhPTIzNDY7ZS5wYWdlZG93bj04NjcxO2UucGFnZXVwPTg2NzA7ZS5wYWd1amFyYXRpPTI3MzA7ZS5wYWd1cm11a2hpPTI2MDI7ZS5wYWhpcmFnYW5hPTEyNDAxO2UucGFpeWFubm9pdGhhaT0zNjMxO2UucGFrYXRha2FuYT0xMjQ5NztlLnBhbGF0YWxpemF0aW9uY3lyaWxsaWNjbWI9MTE1NjtlLnBhbG9jaGthY3lyaWxsaWM9MTIxNjtlLnBhbnNpb3Nrb3JlYW49MTI2NzE7ZS5wYXJhZ3JhcGg9MTgyO2UucGFyYWxsZWw9ODc0MTtlLnBhcmVubGVmdD00MDtlLnBhcmVubGVmdGFsdG9uZWFyYWJpYz02NDgzMDtlLnBhcmVubGVmdGJ0PTYzNzI1O2UucGFyZW5sZWZ0ZXg9NjM3MjQ7ZS5wYXJlbmxlZnRpbmZlcmlvcj04MzMzO2UucGFyZW5sZWZ0bW9ub3NwYWNlPTY1Mjg4O2UucGFyZW5sZWZ0c21hbGw9NjUxMTM7ZS5wYXJlbmxlZnRzdXBlcmlvcj04MzE3O2UucGFyZW5sZWZ0dHA9NjM3MjM7ZS5wYXJlbmxlZnR2ZXJ0aWNhbD02NTA3NztlLnBhcmVucmlnaHQ9NDE7ZS5wYXJlbnJpZ2h0YWx0b25lYXJhYmljPTY0ODMxO2UucGFyZW5yaWdodGJ0PTYzNzM2O2UucGFyZW5yaWdodGV4PTYzNzM1O2UucGFyZW5yaWdodGluZmVyaW9yPTgzMzQ7ZS5wYXJlbnJpZ2h0bW9ub3NwYWNlPTY1Mjg5O2UucGFyZW5yaWdodHNtYWxsPTY1MTE0O2UucGFyZW5yaWdodHN1cGVyaW9yPTgzMTg7ZS5wYXJlbnJpZ2h0dHA9NjM3MzQ7ZS5wYXJlbnJpZ2h0dmVydGljYWw9NjUwNzg7ZS5wYXJ0aWFsZGlmZj04NzA2O2UucGFzZXFoZWJyZXc9MTQ3MjtlLnBhc2h0YWhlYnJldz0xNDMzO2UucGFzcXVhcmU9MTMyMjU7ZS5wYXRhaD0xNDYzO2UucGF0YWgxMT0xNDYzO2UucGF0YWgxZD0xNDYzO2UucGF0YWgyYT0xNDYzO2UucGF0YWhoZWJyZXc9MTQ2MztlLnBhdGFobmFycm93aGVicmV3PTE0NjM7ZS5wYXRhaHF1YXJ0ZXJoZWJyZXc9MTQ2MztlLnBhdGFod2lkZWhlYnJldz0xNDYzO2UucGF6ZXJoZWJyZXc9MTQ0MTtlLnBib3BvbW9mbz0xMjU1MDtlLnBjaXJjbGU9OTQzOTtlLnBkb3RhY2NlbnQ9Nzc2NztlLnBlPTE1MDg7ZS5wZWN5cmlsbGljPTEwODc7ZS5wZWRhZ2VzaD02NDMyNDtlLnBlZGFnZXNoaGVicmV3PTY0MzI0O2UucGVlemlzcXVhcmU9MTMxMTU7ZS5wZWZpbmFsZGFnZXNoaGVicmV3PTY0MzIzO2UucGVoYXJhYmljPTE2NjI7ZS5wZWhhcm1lbmlhbj0xNDAyO2UucGVoZWJyZXc9MTUwODtlLnBlaGZpbmFsYXJhYmljPTY0MzQzO2UucGVoaW5pdGlhbGFyYWJpYz02NDM0NDtlLnBlaGlyYWdhbmE9MTI0MTA7ZS5wZWhtZWRpYWxhcmFiaWM9NjQzNDU7ZS5wZWthdGFrYW5hPTEyNTA2O2UucGVtaWRkbGVob29rY3lyaWxsaWM9MTE5MTtlLnBlcmFmZWhlYnJldz02NDMzNDtlLnBlcmNlbnQ9Mzc7ZS5wZXJjZW50YXJhYmljPTE2NDI7ZS5wZXJjZW50bW9ub3NwYWNlPTY1Mjg1O2UucGVyY2VudHNtYWxsPTY1MTMwO2UucGVyaW9kPTQ2O2UucGVyaW9kYXJtZW5pYW49MTQxNztlLnBlcmlvZGNlbnRlcmVkPTE4MztlLnBlcmlvZGhhbGZ3aWR0aD02NTM3NztlLnBlcmlvZGluZmVyaW9yPTYzMjA3O2UucGVyaW9kbW9ub3NwYWNlPTY1Mjk0O2UucGVyaW9kc21hbGw9NjUxMDY7ZS5wZXJpb2RzdXBlcmlvcj02MzIwODtlLnBlcmlzcG9tZW5pZ3JlZWtjbWI9ODM0O2UucGVycGVuZGljdWxhcj04ODY5O2UucGVydGhvdXNhbmQ9ODI0MDtlLnBlc2V0YT04MzU5O2UucGZzcXVhcmU9MTMxOTQ7ZS5waGFiZW5nYWxpPTI0NzU7ZS5waGFkZXZhPTIzNDc7ZS5waGFndWphcmF0aT0yNzMxO2UucGhhZ3VybXVraGk9MjYwMztlLnBoaT05NjY7ZS5waGkxPTk4MTtlLnBoaWV1cGhhY2lyY2xla29yZWFuPTEyOTIyO2UucGhpZXVwaGFwYXJlbmtvcmVhbj0xMjgyNjtlLnBoaWV1cGhjaXJjbGVrb3JlYW49MTI5MDg7ZS5waGlldXBoa29yZWFuPTEyNjIxO2UucGhpZXVwaHBhcmVua29yZWFuPTEyODEyO2UucGhpbGF0aW49NjMyO2UucGhpbnRodXRoYWk9MzY0MjtlLnBoaXN5bWJvbGdyZWVrPTk4MTtlLnBob29rPTQyMTtlLnBob3BoYW50aGFpPTM2MTQ7ZS5waG9waHVuZ3RoYWk9MzYxMjtlLnBob3NhbXBoYW90aGFpPTM2MTY7ZS5waT05NjA7ZS5waWV1cGFjaXJjbGVrb3JlYW49MTI5MTU7ZS5waWV1cGFwYXJlbmtvcmVhbj0xMjgxOTtlLnBpZXVwY2lldWNrb3JlYW49MTI2NjI7ZS5waWV1cGNpcmNsZWtvcmVhbj0xMjkwMTtlLnBpZXVwa2l5ZW9ra29yZWFuPTEyNjU4O2UucGlldXBrb3JlYW49MTI2MTA7ZS5waWV1cHBhcmVua29yZWFuPTEyODA1O2UucGlldXBzaW9za2l5ZW9ra29yZWFuPTEyNjYwO2UucGlldXBzaW9za29yZWFuPTEyNjEyO2UucGlldXBzaW9zdGlrZXV0a29yZWFuPTEyNjYxO2UucGlldXB0aGlldXRoa29yZWFuPTEyNjYzO2UucGlldXB0aWtldXRrb3JlYW49MTI2NTk7ZS5waWhpcmFnYW5hPTEyNDA0O2UucGlrYXRha2FuYT0xMjUwMDtlLnBpc3ltYm9sZ3JlZWs9OTgyO2UucGl3cmFybWVuaWFuPTE0MTE7ZS5wbGFuY2tvdmVyMnBpPTg0NjM7ZS5wbGFuY2tvdmVyMnBpMT04NDYzO2UucGx1cz00MztlLnBsdXNiZWxvd2NtYj03OTk7ZS5wbHVzY2lyY2xlPTg4NTM7ZS5wbHVzbWludXM9MTc3O2UucGx1c21vZD03MjY7ZS5wbHVzbW9ub3NwYWNlPTY1MjkxO2UucGx1c3NtYWxsPTY1MTIyO2UucGx1c3N1cGVyaW9yPTgzMTQ7ZS5wbW9ub3NwYWNlPTY1MzYwO2UucG1zcXVhcmU9MTMyNzI7ZS5wb2hpcmFnYW5hPTEyNDEzO2UucG9pbnRpbmdpbmRleGRvd253aGl0ZT05NzU5O2UucG9pbnRpbmdpbmRleGxlZnR3aGl0ZT05NzU2O2UucG9pbnRpbmdpbmRleHJpZ2h0d2hpdGU9OTc1ODtlLnBvaW50aW5naW5kZXh1cHdoaXRlPTk3NTc7ZS5wb2thdGFrYW5hPTEyNTA5O2UucG9wbGF0aGFpPTM2MTE7ZS5wb3N0YWxtYXJrPTEyMzA2O2UucG9zdGFsbWFya2ZhY2U9MTIzMjA7ZS5wcGFyZW49OTM4NztlLnByZWNlZGVzPTg4MjY7ZS5wcmVzY3JpcHRpb249ODQ3ODtlLnByaW1lbW9kPTY5NztlLnByaW1lcmV2ZXJzZWQ9ODI0NTtlLnByb2R1Y3Q9ODcxOTtlLnByb2plY3RpdmU9ODk2NTtlLnByb2xvbmdlZGthbmE9MTI1NDA7ZS5wcm9wZWxsb3I9ODk4NDtlLnByb3BlcnN1YnNldD04ODM0O2UucHJvcGVyc3VwZXJzZXQ9ODgzNTtlLnByb3BvcnRpb249ODc1OTtlLnByb3BvcnRpb25hbD04NzMzO2UucHNpPTk2ODtlLnBzaWN5cmlsbGljPTExMzc7ZS5wc2lsaXBuZXVtYXRhY3lyaWxsaWNjbWI9MTE1ODtlLnBzc3F1YXJlPTEzMjMyO2UucHVoaXJhZ2FuYT0xMjQwNztlLnB1a2F0YWthbmE9MTI1MDM7ZS5wdnNxdWFyZT0xMzIzNjtlLnB3c3F1YXJlPTEzMjQyO2UucT0xMTM7ZS5xYWRldmE9MjM5MjtlLnFhZG1haGVicmV3PTE0NDg7ZS5xYWZhcmFiaWM9MTYwMjtlLnFhZmZpbmFsYXJhYmljPTY1MjM4O2UucWFmaW5pdGlhbGFyYWJpYz02NTIzOTtlLnFhZm1lZGlhbGFyYWJpYz02NTI0MDtlLnFhbWF0cz0xNDY0O2UucWFtYXRzMTA9MTQ2NDtlLnFhbWF0czFhPTE0NjQ7ZS5xYW1hdHMxYz0xNDY0O2UucWFtYXRzMjc9MTQ2NDtlLnFhbWF0czI5PTE0NjQ7ZS5xYW1hdHMzMz0xNDY0O2UucWFtYXRzZGU9MTQ2NDtlLnFhbWF0c2hlYnJldz0xNDY0O2UucWFtYXRzbmFycm93aGVicmV3PTE0NjQ7ZS5xYW1hdHNxYXRhbmhlYnJldz0xNDY0O2UucWFtYXRzcWF0YW5uYXJyb3doZWJyZXc9MTQ2NDtlLnFhbWF0c3FhdGFucXVhcnRlcmhlYnJldz0xNDY0O2UucWFtYXRzcWF0YW53aWRlaGVicmV3PTE0NjQ7ZS5xYW1hdHNxdWFydGVyaGVicmV3PTE0NjQ7ZS5xYW1hdHN3aWRlaGVicmV3PTE0NjQ7ZS5xYXJuZXlwYXJhaGVicmV3PTE0Mzk7ZS5xYm9wb21vZm89MTI1NjE7ZS5xY2lyY2xlPTk0NDA7ZS5xaG9vaz02NzI7ZS5xbW9ub3NwYWNlPTY1MzYxO2UucW9mPTE1MTE7ZS5xb2ZkYWdlc2g9NjQzMjc7ZS5xb2ZkYWdlc2hoZWJyZXc9NjQzMjc7ZS5xb2ZoZWJyZXc9MTUxMTtlLnFwYXJlbj05Mzg4O2UucXVhcnRlcm5vdGU9OTgzMztlLnF1YnV0cz0xNDY3O2UucXVidXRzMTg9MTQ2NztlLnF1YnV0czI1PTE0Njc7ZS5xdWJ1dHMzMT0xNDY3O2UucXVidXRzaGVicmV3PTE0Njc7ZS5xdWJ1dHNuYXJyb3doZWJyZXc9MTQ2NztlLnF1YnV0c3F1YXJ0ZXJoZWJyZXc9MTQ2NztlLnF1YnV0c3dpZGVoZWJyZXc9MTQ2NztlLnF1ZXN0aW9uPTYzO2UucXVlc3Rpb25hcmFiaWM9MTU2NztlLnF1ZXN0aW9uYXJtZW5pYW49MTM3NDtlLnF1ZXN0aW9uZG93bj0xOTE7ZS5xdWVzdGlvbmRvd25zbWFsbD02MzQyMztlLnF1ZXN0aW9uZ3JlZWs9ODk0O2UucXVlc3Rpb25tb25vc3BhY2U9NjUzMTE7ZS5xdWVzdGlvbnNtYWxsPTYzMjk1O2UucXVvdGVkYmw9MzQ7ZS5xdW90ZWRibGJhc2U9ODIyMjtlLnF1b3RlZGJsbGVmdD04MjIwO2UucXVvdGVkYmxtb25vc3BhY2U9NjUyODI7ZS5xdW90ZWRibHByaW1lPTEyMzE4O2UucXVvdGVkYmxwcmltZXJldmVyc2VkPTEyMzE3O2UucXVvdGVkYmxyaWdodD04MjIxO2UucXVvdGVsZWZ0PTgyMTY7ZS5xdW90ZWxlZnRyZXZlcnNlZD04MjE5O2UucXVvdGVyZXZlcnNlZD04MjE5O2UucXVvdGVyaWdodD04MjE3O2UucXVvdGVyaWdodG49MzI5O2UucXVvdGVzaW5nbGJhc2U9ODIxODtlLnF1b3Rlc2luZ2xlPTM5O2UucXVvdGVzaW5nbGVtb25vc3BhY2U9NjUyODc7ZS5yPTExNDtlLnJhYXJtZW5pYW49MTQwNDtlLnJhYmVuZ2FsaT0yNDgwO2UucmFjdXRlPTM0MTtlLnJhZGV2YT0yMzUyO2UucmFkaWNhbD04NzMwO2UucmFkaWNhbGV4PTYzNzE3O2UucmFkb3ZlcnNzcXVhcmU9MTMyMzA7ZS5yYWRvdmVyc3NxdWFyZWRzcXVhcmU9MTMyMzE7ZS5yYWRzcXVhcmU9MTMyMjk7ZS5yYWZlPTE0NzE7ZS5yYWZlaGVicmV3PTE0NzE7ZS5yYWd1amFyYXRpPTI3MzY7ZS5yYWd1cm11a2hpPTI2MDg7ZS5yYWhpcmFnYW5hPTEyNDI1O2UucmFrYXRha2FuYT0xMjUyMTtlLnJha2F0YWthbmFoYWxmd2lkdGg9NjU0MzE7ZS5yYWxvd2VyZGlhZ29uYWxiZW5nYWxpPTI1NDU7ZS5yYW1pZGRsZWRpYWdvbmFsYmVuZ2FsaT0yNTQ0O2UucmFtc2hvcm49NjEyO2UucmF0aW89ODc1ODtlLnJib3BvbW9mbz0xMjU2NjtlLnJjYXJvbj0zNDU7ZS5yY2VkaWxsYT0zNDM7ZS5yY2lyY2xlPTk0NDE7ZS5yY29tbWFhY2NlbnQ9MzQzO2UucmRibGdyYXZlPTUyOTtlLnJkb3RhY2NlbnQ9Nzc2OTtlLnJkb3RiZWxvdz03NzcxO2UucmRvdGJlbG93bWFjcm9uPTc3NzM7ZS5yZWZlcmVuY2VtYXJrPTgyNTE7ZS5yZWZsZXhzdWJzZXQ9ODgzODtlLnJlZmxleHN1cGVyc2V0PTg4Mzk7ZS5yZWdpc3RlcmVkPTE3NDtlLnJlZ2lzdGVyc2Fucz02MzcyMDtlLnJlZ2lzdGVyc2VyaWY9NjMxOTQ7ZS5yZWhhcmFiaWM9MTU4NTtlLnJlaGFybWVuaWFuPTE0MDg7ZS5yZWhmaW5hbGFyYWJpYz02NTE5ODtlLnJlaGlyYWdhbmE9MTI0Mjg7ZS5yZWthdGFrYW5hPTEyNTI0O2UucmVrYXRha2FuYWhhbGZ3aWR0aD02NTQzNDtlLnJlc2g9MTUxMjtlLnJlc2hkYWdlc2hoZWJyZXc9NjQzMjg7ZS5yZXNoaGVicmV3PTE1MTI7ZS5yZXZlcnNlZHRpbGRlPTg3NjU7ZS5yZXZpYWhlYnJldz0xNDMxO2UucmV2aWFtdWdyYXNoaGVicmV3PTE0MzE7ZS5yZXZsb2dpY2Fsbm90PTg5NzY7ZS5yZmlzaGhvb2s9NjM4O2UucmZpc2hob29rcmV2ZXJzZWQ9NjM5O2UucmhhYmVuZ2FsaT0yNTI1O2UucmhhZGV2YT0yMzk3O2UucmhvPTk2MTtlLnJob29rPTYzNztlLnJob29rdHVybmVkPTYzNTtlLnJob29rdHVybmVkc3VwZXJpb3I9NjkzO2Uucmhvc3ltYm9sZ3JlZWs9MTAwOTtlLnJob3RpY2hvb2ttb2Q9NzM0O2UucmlldWxhY2lyY2xla29yZWFuPTEyOTEzO2UucmlldWxhcGFyZW5rb3JlYW49MTI4MTc7ZS5yaWV1bGNpcmNsZWtvcmVhbj0xMjg5OTtlLnJpZXVsaGlldWhrb3JlYW49MTI2MDg7ZS5yaWV1bGtpeWVva2tvcmVhbj0xMjYwMjtlLnJpZXVsa2l5ZW9rc2lvc2tvcmVhbj0xMjY0OTtlLnJpZXVsa29yZWFuPTEyNjAxO2UucmlldWxtaWV1bWtvcmVhbj0xMjYwMztlLnJpZXVscGFuc2lvc2tvcmVhbj0xMjY1MjtlLnJpZXVscGFyZW5rb3JlYW49MTI4MDM7ZS5yaWV1bHBoaWV1cGhrb3JlYW49MTI2MDc7ZS5yaWV1bHBpZXVwa29yZWFuPTEyNjA0O2UucmlldWxwaWV1cHNpb3Nrb3JlYW49MTI2NTE7ZS5yaWV1bHNpb3Nrb3JlYW49MTI2MDU7ZS5yaWV1bHRoaWV1dGhrb3JlYW49MTI2MDY7ZS5yaWV1bHRpa2V1dGtvcmVhbj0xMjY1MDtlLnJpZXVseWVvcmluaGlldWhrb3JlYW49MTI2NTM7ZS5yaWdodGFuZ2xlPTg3MzU7ZS5yaWdodHRhY2tiZWxvd2NtYj03OTM7ZS5yaWdodHRyaWFuZ2xlPTg4OTU7ZS5yaWhpcmFnYW5hPTEyNDI2O2UucmlrYXRha2FuYT0xMjUyMjtlLnJpa2F0YWthbmFoYWxmd2lkdGg9NjU0MzI7ZS5yaW5nPTczMDtlLnJpbmdiZWxvd2NtYj04MDU7ZS5yaW5nY21iPTc3ODtlLnJpbmdoYWxmbGVmdD03MDM7ZS5yaW5naGFsZmxlZnRhcm1lbmlhbj0xMzY5O2UucmluZ2hhbGZsZWZ0YmVsb3djbWI9Nzk2O2UucmluZ2hhbGZsZWZ0Y2VudGVyZWQ9NzIzO2UucmluZ2hhbGZyaWdodD03MDI7ZS5yaW5naGFsZnJpZ2h0YmVsb3djbWI9ODI1O2UucmluZ2hhbGZyaWdodGNlbnRlcmVkPTcyMjtlLnJpbnZlcnRlZGJyZXZlPTUzMTtlLnJpdHRvcnVzcXVhcmU9MTMxMzc7ZS5ybGluZWJlbG93PTc3NzU7ZS5ybG9uZ2xlZz02MzY7ZS5ybG9uZ2xlZ3R1cm5lZD02MzQ7ZS5ybW9ub3NwYWNlPTY1MzYyO2Uucm9oaXJhZ2FuYT0xMjQyOTtlLnJva2F0YWthbmE9MTI1MjU7ZS5yb2thdGFrYW5haGFsZndpZHRoPTY1NDM1O2Uucm9ydWF0aGFpPTM2MTk7ZS5ycGFyZW49OTM4OTtlLnJyYWJlbmdhbGk9MjUyNDtlLnJyYWRldmE9MjM1MztlLnJyYWd1cm11a2hpPTI2NTI7ZS5ycmVoYXJhYmljPTE2ODE7ZS5ycmVoZmluYWxhcmFiaWM9NjQzOTc7ZS5ycnZvY2FsaWNiZW5nYWxpPTI1Mjg7ZS5ycnZvY2FsaWNkZXZhPTI0MDA7ZS5ycnZvY2FsaWNndWphcmF0aT0yNzg0O2UucnJ2b2NhbGljdm93ZWxzaWduYmVuZ2FsaT0yNTAwO2UucnJ2b2NhbGljdm93ZWxzaWduZGV2YT0yMzcyO2UucnJ2b2NhbGljdm93ZWxzaWduZ3VqYXJhdGk9Mjc1NjtlLnJzdXBlcmlvcj02MzIxNztlLnJ0YmxvY2s9OTYxNjtlLnJ0dXJuZWQ9NjMzO2UucnR1cm5lZHN1cGVyaW9yPTY5MjtlLnJ1aGlyYWdhbmE9MTI0Mjc7ZS5ydWthdGFrYW5hPTEyNTIzO2UucnVrYXRha2FuYWhhbGZ3aWR0aD02NTQzMztlLnJ1cGVlbWFya2JlbmdhbGk9MjU0NjtlLnJ1cGVlc2lnbmJlbmdhbGk9MjU0NztlLnJ1cGlhaD02MzE5NztlLnJ1dGhhaT0zNjIwO2UucnZvY2FsaWNiZW5nYWxpPTI0NDM7ZS5ydm9jYWxpY2RldmE9MjMxNTtlLnJ2b2NhbGljZ3VqYXJhdGk9MjY5OTtlLnJ2b2NhbGljdm93ZWxzaWduYmVuZ2FsaT0yNDk5O2UucnZvY2FsaWN2b3dlbHNpZ25kZXZhPTIzNzE7ZS5ydm9jYWxpY3Zvd2Vsc2lnbmd1amFyYXRpPTI3NTU7ZS5zPTExNTtlLnNhYmVuZ2FsaT0yNDg4O2Uuc2FjdXRlPTM0NztlLnNhY3V0ZWRvdGFjY2VudD03NzgxO2Uuc2FkYXJhYmljPTE1ODk7ZS5zYWRldmE9MjM2MDtlLnNhZGZpbmFsYXJhYmljPTY1MjEwO2Uuc2FkaW5pdGlhbGFyYWJpYz02NTIxMTtlLnNhZG1lZGlhbGFyYWJpYz02NTIxMjtlLnNhZ3VqYXJhdGk9Mjc0NDtlLnNhZ3VybXVraGk9MjYxNjtlLnNhaGlyYWdhbmE9MTIzNzM7ZS5zYWthdGFrYW5hPTEyNDY5O2Uuc2FrYXRha2FuYWhhbGZ3aWR0aD02NTQwMztlLnNhbGxhbGxhaG91YWxheWhld2FzYWxsYW1hcmFiaWM9NjUwMTg7ZS5zYW1la2g9MTUwNTtlLnNhbWVraGRhZ2VzaD02NDMyMTtlLnNhbWVraGRhZ2VzaGhlYnJldz02NDMyMTtlLnNhbWVraGhlYnJldz0xNTA1O2Uuc2FyYWFhdGhhaT0zNjM0O2Uuc2FyYWFldGhhaT0zNjQ5O2Uuc2FyYWFpbWFpbWFsYWl0aGFpPTM2NTI7ZS5zYXJhYWltYWltdWFudGhhaT0zNjUxO2Uuc2FyYWFtdGhhaT0zNjM1O2Uuc2FyYWF0aGFpPTM2MzI7ZS5zYXJhZXRoYWk9MzY0ODtlLnNhcmFpaWxlZnR0aGFpPTYzNjIyO2Uuc2FyYWlpdGhhaT0zNjM3O2Uuc2FyYWlsZWZ0dGhhaT02MzYyMTtlLnNhcmFpdGhhaT0zNjM2O2Uuc2FyYW90aGFpPTM2NTA7ZS5zYXJhdWVlbGVmdHRoYWk9NjM2MjQ7ZS5zYXJhdWVldGhhaT0zNjM5O2Uuc2FyYXVlbGVmdHRoYWk9NjM2MjM7ZS5zYXJhdWV0aGFpPTM2Mzg7ZS5zYXJhdXRoYWk9MzY0MDtlLnNhcmF1dXRoYWk9MzY0MTtlLnNib3BvbW9mbz0xMjU2OTtlLnNjYXJvbj0zNTM7ZS5zY2Fyb25kb3RhY2NlbnQ9Nzc4MztlLnNjZWRpbGxhPTM1MTtlLnNjaHdhPTYwMTtlLnNjaHdhY3lyaWxsaWM9MTI0MTtlLnNjaHdhZGllcmVzaXNjeXJpbGxpYz0xMjQzO2Uuc2Nod2Fob29rPTYwMjtlLnNjaXJjbGU9OTQ0MjtlLnNjaXJjdW1mbGV4PTM0OTtlLnNjb21tYWFjY2VudD01Mzc7ZS5zZG90YWNjZW50PTc3Nzc7ZS5zZG90YmVsb3c9Nzc3OTtlLnNkb3RiZWxvd2RvdGFjY2VudD03Nzg1O2Uuc2VhZ3VsbGJlbG93Y21iPTgyODtlLnNlY29uZD04MjQzO2Uuc2Vjb25kdG9uZWNoaW5lc2U9NzE0O2Uuc2VjdGlvbj0xNjc7ZS5zZWVuYXJhYmljPTE1ODc7ZS5zZWVuZmluYWxhcmFiaWM9NjUyMDI7ZS5zZWVuaW5pdGlhbGFyYWJpYz02NTIwMztlLnNlZW5tZWRpYWxhcmFiaWM9NjUyMDQ7ZS5zZWdvbD0xNDYyO2Uuc2Vnb2wxMz0xNDYyO2Uuc2Vnb2wxZj0xNDYyO2Uuc2Vnb2wyYz0xNDYyO2Uuc2Vnb2xoZWJyZXc9MTQ2MjtlLnNlZ29sbmFycm93aGVicmV3PTE0NjI7ZS5zZWdvbHF1YXJ0ZXJoZWJyZXc9MTQ2MjtlLnNlZ29sdGFoZWJyZXc9MTQyNjtlLnNlZ29sd2lkZWhlYnJldz0xNDYyO2Uuc2VoYXJtZW5pYW49MTQwNTtlLnNlaGlyYWdhbmE9MTIzNzk7ZS5zZWthdGFrYW5hPTEyNDc1O2Uuc2VrYXRha2FuYWhhbGZ3aWR0aD02NTQwNjtlLnNlbWljb2xvbj01OTtlLnNlbWljb2xvbmFyYWJpYz0xNTYzO2Uuc2VtaWNvbG9ubW9ub3NwYWNlPTY1MzA3O2Uuc2VtaWNvbG9uc21hbGw9NjUxMDg7ZS5zZW1pdm9pY2VkbWFya2thbmE9MTI0NDQ7ZS5zZW1pdm9pY2VkbWFya2thbmFoYWxmd2lkdGg9NjU0Mzk7ZS5zZW50aXNxdWFyZT0xMzA5MDtlLnNlbnRvc3F1YXJlPTEzMDkxO2Uuc2V2ZW49NTU7ZS5zZXZlbmFyYWJpYz0xNjM5O2Uuc2V2ZW5iZW5nYWxpPTI1NDE7ZS5zZXZlbmNpcmNsZT05MzE4O2Uuc2V2ZW5jaXJjbGVpbnZlcnNlc2Fuc3NlcmlmPTEwMTI4O2Uuc2V2ZW5kZXZhPTI0MTM7ZS5zZXZlbmVpZ2h0aHM9ODU0MjtlLnNldmVuZ3VqYXJhdGk9Mjc5NztlLnNldmVuZ3VybXVraGk9MjY2OTtlLnNldmVuaGFja2FyYWJpYz0xNjM5O2Uuc2V2ZW5oYW5nemhvdT0xMjMyNztlLnNldmVuaWRlb2dyYXBoaWNwYXJlbj0xMjgzODtlLnNldmVuaW5mZXJpb3I9ODMyNztlLnNldmVubW9ub3NwYWNlPTY1MzAzO2Uuc2V2ZW5vbGRzdHlsZT02MzI4NztlLnNldmVucGFyZW49OTMzODtlLnNldmVucGVyaW9kPTkzNTg7ZS5zZXZlbnBlcnNpYW49MTc4MztlLnNldmVucm9tYW49ODU2NjtlLnNldmVuc3VwZXJpb3I9ODMxMTtlLnNldmVudGVlbmNpcmNsZT05MzI4O2Uuc2V2ZW50ZWVucGFyZW49OTM0ODtlLnNldmVudGVlbnBlcmlvZD05MzY4O2Uuc2V2ZW50aGFpPTM2NzE7ZS5zZnRoeXBoZW49MTczO2Uuc2hhYXJtZW5pYW49MTM5OTtlLnNoYWJlbmdhbGk9MjQ4NjtlLnNoYWN5cmlsbGljPTEwOTY7ZS5zaGFkZGFhcmFiaWM9MTYxNztlLnNoYWRkYWRhbW1hYXJhYmljPTY0NjA5O2Uuc2hhZGRhZGFtbWF0YW5hcmFiaWM9NjQ2MDY7ZS5zaGFkZGFmYXRoYWFyYWJpYz02NDYwODtlLnNoYWRkYWthc3JhYXJhYmljPTY0NjEwO2Uuc2hhZGRha2FzcmF0YW5hcmFiaWM9NjQ2MDc7ZS5zaGFkZT05NjE4O2Uuc2hhZGVkYXJrPTk2MTk7ZS5zaGFkZWxpZ2h0PTk2MTc7ZS5zaGFkZW1lZGl1bT05NjE4O2Uuc2hhZGV2YT0yMzU4O2Uuc2hhZ3VqYXJhdGk9Mjc0MjtlLnNoYWd1cm11a2hpPTI2MTQ7ZS5zaGFsc2hlbGV0aGVicmV3PTE0Mjc7ZS5zaGJvcG9tb2ZvPTEyNTY1O2Uuc2hjaGFjeXJpbGxpYz0xMDk3O2Uuc2hlZW5hcmFiaWM9MTU4ODtlLnNoZWVuZmluYWxhcmFiaWM9NjUyMDY7ZS5zaGVlbmluaXRpYWxhcmFiaWM9NjUyMDc7ZS5zaGVlbm1lZGlhbGFyYWJpYz02NTIwODtlLnNoZWljb3B0aWM9OTk1O2Uuc2hlcWVsPTgzNjI7ZS5zaGVxZWxoZWJyZXc9ODM2MjtlLnNoZXZhPTE0NTY7ZS5zaGV2YTExNT0xNDU2O2Uuc2hldmExNT0xNDU2O2Uuc2hldmEyMj0xNDU2O2Uuc2hldmEyZT0xNDU2O2Uuc2hldmFoZWJyZXc9MTQ1NjtlLnNoZXZhbmFycm93aGVicmV3PTE0NTY7ZS5zaGV2YXF1YXJ0ZXJoZWJyZXc9MTQ1NjtlLnNoZXZhd2lkZWhlYnJldz0xNDU2O2Uuc2hoYWN5cmlsbGljPTEyMTE7ZS5zaGltYWNvcHRpYz0xMDA1O2Uuc2hpbj0xNTEzO2Uuc2hpbmRhZ2VzaD02NDMyOTtlLnNoaW5kYWdlc2hoZWJyZXc9NjQzMjk7ZS5zaGluZGFnZXNoc2hpbmRvdD02NDMwMDtlLnNoaW5kYWdlc2hzaGluZG90aGVicmV3PTY0MzAwO2Uuc2hpbmRhZ2VzaHNpbmRvdD02NDMwMTtlLnNoaW5kYWdlc2hzaW5kb3RoZWJyZXc9NjQzMDE7ZS5zaGluZG90aGVicmV3PTE0NzM7ZS5zaGluaGVicmV3PTE1MTM7ZS5zaGluc2hpbmRvdD02NDI5ODtlLnNoaW5zaGluZG90aGVicmV3PTY0Mjk4O2Uuc2hpbnNpbmRvdD02NDI5OTtlLnNoaW5zaW5kb3RoZWJyZXc9NjQyOTk7ZS5zaG9vaz02NDI7ZS5zaWdtYT05NjM7ZS5zaWdtYTE9OTYyO2Uuc2lnbWFmaW5hbD05NjI7ZS5zaWdtYWx1bmF0ZXN5bWJvbGdyZWVrPTEwMTA7ZS5zaWhpcmFnYW5hPTEyMzc1O2Uuc2lrYXRha2FuYT0xMjQ3MTtlLnNpa2F0YWthbmFoYWxmd2lkdGg9NjU0MDQ7ZS5zaWx1cWhlYnJldz0xNDY5O2Uuc2lsdXFsZWZ0aGVicmV3PTE0Njk7ZS5zaW1pbGFyPTg3NjQ7ZS5zaW5kb3RoZWJyZXc9MTQ3NDtlLnNpb3NhY2lyY2xla29yZWFuPTEyOTE2O2Uuc2lvc2FwYXJlbmtvcmVhbj0xMjgyMDtlLnNpb3NjaWV1Y2tvcmVhbj0xMjY3MDtlLnNpb3NjaXJjbGVrb3JlYW49MTI5MDI7ZS5zaW9za2l5ZW9ra29yZWFuPTEyNjY2O2Uuc2lvc2tvcmVhbj0xMjYxMztlLnNpb3NuaWV1bmtvcmVhbj0xMjY2NztlLnNpb3NwYXJlbmtvcmVhbj0xMjgwNjtlLnNpb3NwaWV1cGtvcmVhbj0xMjY2OTtlLnNpb3N0aWtldXRrb3JlYW49MTI2Njg7ZS5zaXg9NTQ7ZS5zaXhhcmFiaWM9MTYzODtlLnNpeGJlbmdhbGk9MjU0MDtlLnNpeGNpcmNsZT05MzE3O2Uuc2l4Y2lyY2xlaW52ZXJzZXNhbnNzZXJpZj0xMDEyNztlLnNpeGRldmE9MjQxMjtlLnNpeGd1amFyYXRpPTI3OTY7ZS5zaXhndXJtdWtoaT0yNjY4O2Uuc2l4aGFja2FyYWJpYz0xNjM4O2Uuc2l4aGFuZ3pob3U9MTIzMjY7ZS5zaXhpZGVvZ3JhcGhpY3BhcmVuPTEyODM3O2Uuc2l4aW5mZXJpb3I9ODMyNjtlLnNpeG1vbm9zcGFjZT02NTMwMjtlLnNpeG9sZHN0eWxlPTYzMjg2O2Uuc2l4cGFyZW49OTMzNztlLnNpeHBlcmlvZD05MzU3O2Uuc2l4cGVyc2lhbj0xNzgyO2Uuc2l4cm9tYW49ODU2NTtlLnNpeHN1cGVyaW9yPTgzMTA7ZS5zaXh0ZWVuY2lyY2xlPTkzMjc7ZS5zaXh0ZWVuY3VycmVuY3lkZW5vbWluYXRvcmJlbmdhbGk9MjU1MztlLnNpeHRlZW5wYXJlbj05MzQ3O2Uuc2l4dGVlbnBlcmlvZD05MzY3O2Uuc2l4dGhhaT0zNjcwO2Uuc2xhc2g9NDc7ZS5zbGFzaG1vbm9zcGFjZT02NTI5NTtlLnNsb25nPTM4MztlLnNsb25nZG90YWNjZW50PTc4MzU7ZS5zbWlsZWZhY2U9OTc4NjtlLnNtb25vc3BhY2U9NjUzNjM7ZS5zb2ZwYXN1cWhlYnJldz0xNDc1O2Uuc29mdGh5cGhlbj0xNzM7ZS5zb2Z0c2lnbmN5cmlsbGljPTExMDA7ZS5zb2hpcmFnYW5hPTEyMzgxO2Uuc29rYXRha2FuYT0xMjQ3NztlLnNva2F0YWthbmFoYWxmd2lkdGg9NjU0MDc7ZS5zb2xpZHVzbG9uZ292ZXJsYXljbWI9ODI0O2Uuc29saWR1c3Nob3J0b3ZlcmxheWNtYj04MjM7ZS5zb3J1c2l0aGFpPTM2MjU7ZS5zb3NhbGF0aGFpPTM2MjQ7ZS5zb3NvdGhhaT0zNTk1O2Uuc29zdWF0aGFpPTM2MjY7ZS5zcGFjZT0zMjtlLnNwYWNlaGFja2FyYWJpYz0zMjtlLnNwYWRlPTk4MjQ7ZS5zcGFkZXN1aXRibGFjaz05ODI0O2Uuc3BhZGVzdWl0d2hpdGU9OTgyODtlLnNwYXJlbj05MzkwO2Uuc3F1YXJlYmVsb3djbWI9ODI3O2Uuc3F1YXJlY2M9MTMyNTI7ZS5zcXVhcmVjbT0xMzIxMztlLnNxdWFyZWRpYWdvbmFsY3Jvc3NoYXRjaGZpbGw9OTY0MTtlLnNxdWFyZWhvcml6b250YWxmaWxsPTk2MzY7ZS5zcXVhcmVrZz0xMzE5OTtlLnNxdWFyZWttPTEzMjE0O2Uuc3F1YXJla21jYXBpdGFsPTEzMjYyO2Uuc3F1YXJlbG49MTMyNjU7ZS5zcXVhcmVsb2c9MTMyNjY7ZS5zcXVhcmVtZz0xMzE5ODtlLnNxdWFyZW1pbD0xMzI2OTtlLnNxdWFyZW1tPTEzMjEyO2Uuc3F1YXJlbXNxdWFyZWQ9MTMyMTc7ZS5zcXVhcmVvcnRob2dvbmFsY3Jvc3NoYXRjaGZpbGw9OTYzODtlLnNxdWFyZXVwcGVybGVmdHRvbG93ZXJyaWdodGZpbGw9OTYzOTtlLnNxdWFyZXVwcGVycmlnaHR0b2xvd2VybGVmdGZpbGw9OTY0MDtlLnNxdWFyZXZlcnRpY2FsZmlsbD05NjM3O2Uuc3F1YXJld2hpdGV3aXRoc21hbGxibGFjaz05NjM1O2Uuc3JzcXVhcmU9MTMyNzU7ZS5zc2FiZW5nYWxpPTI0ODc7ZS5zc2FkZXZhPTIzNTk7ZS5zc2FndWphcmF0aT0yNzQzO2Uuc3NhbmdjaWV1Y2tvcmVhbj0xMjYxNztlLnNzYW5naGlldWhrb3JlYW49MTI2Nzc7ZS5zc2FuZ2lldW5na29yZWFuPTEyNjcyO2Uuc3NhbmdraXllb2trb3JlYW49MTI1OTQ7ZS5zc2FuZ25pZXVua29yZWFuPTEyNjQ1O2Uuc3NhbmdwaWV1cGtvcmVhbj0xMjYxMTtlLnNzYW5nc2lvc2tvcmVhbj0xMjYxNDtlLnNzYW5ndGlrZXV0a29yZWFuPTEyNjAwO2Uuc3N1cGVyaW9yPTYzMjE4O2Uuc3Rlcmxpbmc9MTYzO2Uuc3Rlcmxpbmdtb25vc3BhY2U9NjU1MDU7ZS5zdHJva2Vsb25nb3ZlcmxheWNtYj04MjI7ZS5zdHJva2VzaG9ydG92ZXJsYXljbWI9ODIxO2Uuc3Vic2V0PTg4MzQ7ZS5zdWJzZXRub3RlcXVhbD04ODQyO2Uuc3Vic2V0b3JlcXVhbD04ODM4O2Uuc3VjY2VlZHM9ODgyNztlLnN1Y2h0aGF0PTg3MTU7ZS5zdWhpcmFnYW5hPTEyMzc3O2Uuc3VrYXRha2FuYT0xMjQ3MztlLnN1a2F0YWthbmFoYWxmd2lkdGg9NjU0MDU7ZS5zdWt1bmFyYWJpYz0xNjE4O2Uuc3VtbWF0aW9uPTg3MjE7ZS5zdW49OTc4ODtlLnN1cGVyc2V0PTg4MzU7ZS5zdXBlcnNldG5vdGVxdWFsPTg4NDM7ZS5zdXBlcnNldG9yZXF1YWw9ODgzOTtlLnN2c3F1YXJlPTEzMjc2O2Uuc3lvdXdhZXJhc3F1YXJlPTEzMTgwO2UudD0xMTY7ZS50YWJlbmdhbGk9MjQ2ODtlLnRhY2tkb3duPTg4Njg7ZS50YWNrbGVmdD04ODY3O2UudGFkZXZhPTIzNDA7ZS50YWd1amFyYXRpPTI3MjQ7ZS50YWd1cm11a2hpPTI1OTY7ZS50YWhhcmFiaWM9MTU5MTtlLnRhaGZpbmFsYXJhYmljPTY1MjE4O2UudGFoaW5pdGlhbGFyYWJpYz02NTIxOTtlLnRhaGlyYWdhbmE9MTIzODM7ZS50YWhtZWRpYWxhcmFiaWM9NjUyMjA7ZS50YWlzeW91ZXJhc3F1YXJlPTEzMTgxO2UudGFrYXRha2FuYT0xMjQ3OTtlLnRha2F0YWthbmFoYWxmd2lkdGg9NjU0MDg7ZS50YXR3ZWVsYXJhYmljPTE2MDA7ZS50YXU9OTY0O2UudGF2PTE1MTQ7ZS50YXZkYWdlcz02NDMzMDtlLnRhdmRhZ2VzaD02NDMzMDtlLnRhdmRhZ2VzaGhlYnJldz02NDMzMDtlLnRhdmhlYnJldz0xNTE0O2UudGJhcj0zNTk7ZS50Ym9wb21vZm89MTI1NTQ7ZS50Y2Fyb249MzU3O2UudGNjdXJsPTY4MDtlLnRjZWRpbGxhPTM1NTtlLnRjaGVoYXJhYmljPTE2NzA7ZS50Y2hlaGZpbmFsYXJhYmljPTY0Mzc5O2UudGNoZWhpbml0aWFsYXJhYmljPTY0MzgwO2UudGNoZWhtZWRpYWxhcmFiaWM9NjQzODE7ZS50Y2lyY2xlPTk0NDM7ZS50Y2lyY3VtZmxleGJlbG93PTc3OTM7ZS50Y29tbWFhY2NlbnQ9MzU1O2UudGRpZXJlc2lzPTc4MzE7ZS50ZG90YWNjZW50PTc3ODc7ZS50ZG90YmVsb3c9Nzc4OTtlLnRlY3lyaWxsaWM9MTA5MDtlLnRlZGVzY2VuZGVyY3lyaWxsaWM9MTE5NztlLnRlaGFyYWJpYz0xNTc4O2UudGVoZmluYWxhcmFiaWM9NjUxNzQ7ZS50ZWhoYWhpbml0aWFsYXJhYmljPTY0Njc0O2UudGVoaGFoaXNvbGF0ZWRhcmFiaWM9NjQ1MjQ7ZS50ZWhpbml0aWFsYXJhYmljPTY1MTc1O2UudGVoaXJhZ2FuYT0xMjM5MDtlLnRlaGplZW1pbml0aWFsYXJhYmljPTY0NjczO2UudGVoamVlbWlzb2xhdGVkYXJhYmljPTY0NTIzO2UudGVobWFyYnV0YWFyYWJpYz0xNTc3O2UudGVobWFyYnV0YWZpbmFsYXJhYmljPTY1MTcyO2UudGVobWVkaWFsYXJhYmljPTY1MTc2O2UudGVobWVlbWluaXRpYWxhcmFiaWM9NjQ2NzY7ZS50ZWhtZWVtaXNvbGF0ZWRhcmFiaWM9NjQ1MjY7ZS50ZWhub29uZmluYWxhcmFiaWM9NjQ2Mjc7ZS50ZWthdGFrYW5hPTEyNDg2O2UudGVrYXRha2FuYWhhbGZ3aWR0aD02NTQxMTtlLnRlbGVwaG9uZT04NDgxO2UudGVsZXBob25lYmxhY2s9OTc0MjtlLnRlbGlzaGFnZWRvbGFoZWJyZXc9MTQ0MDtlLnRlbGlzaGFxZXRhbmFoZWJyZXc9MTQ0OTtlLnRlbmNpcmNsZT05MzIxO2UudGVuaWRlb2dyYXBoaWNwYXJlbj0xMjg0MTtlLnRlbnBhcmVuPTkzNDE7ZS50ZW5wZXJpb2Q9OTM2MTtlLnRlbnJvbWFuPTg1Njk7ZS50ZXNoPTY3OTtlLnRldD0xNDk2O2UudGV0ZGFnZXNoPTY0MzEyO2UudGV0ZGFnZXNoaGVicmV3PTY0MzEyO2UudGV0aGVicmV3PTE0OTY7ZS50ZXRzZWN5cmlsbGljPTEyMDU7ZS50ZXZpcmhlYnJldz0xNDM1O2UudGV2aXJsZWZ0aGVicmV3PTE0MzU7ZS50aGFiZW5nYWxpPTI0Njk7ZS50aGFkZXZhPTIzNDE7ZS50aGFndWphcmF0aT0yNzI1O2UudGhhZ3VybXVraGk9MjU5NztlLnRoYWxhcmFiaWM9MTU4NDtlLnRoYWxmaW5hbGFyYWJpYz02NTE5NjtlLnRoYW50aGFraGF0bG93bGVmdHRoYWk9NjM2NDA7ZS50aGFudGhha2hhdGxvd3JpZ2h0dGhhaT02MzYzOTtlLnRoYW50aGFraGF0dGhhaT0zNjYwO2UudGhhbnRoYWtoYXR1cHBlcmxlZnR0aGFpPTYzNjM4O2UudGhlaGFyYWJpYz0xNTc5O2UudGhlaGZpbmFsYXJhYmljPTY1MTc4O2UudGhlaGluaXRpYWxhcmFiaWM9NjUxNzk7ZS50aGVobWVkaWFsYXJhYmljPTY1MTgwO2UudGhlcmVleGlzdHM9ODcwNztlLnRoZXJlZm9yZT04NzU2O2UudGhldGE9OTUyO2UudGhldGExPTk3NztlLnRoZXRhc3ltYm9sZ3JlZWs9OTc3O2UudGhpZXV0aGFjaXJjbGVrb3JlYW49MTI5MjE7ZS50aGlldXRoYXBhcmVua29yZWFuPTEyODI1O2UudGhpZXV0aGNpcmNsZWtvcmVhbj0xMjkwNztlLnRoaWV1dGhrb3JlYW49MTI2MjA7ZS50aGlldXRocGFyZW5rb3JlYW49MTI4MTE7ZS50aGlydGVlbmNpcmNsZT05MzI0O2UudGhpcnRlZW5wYXJlbj05MzQ0O2UudGhpcnRlZW5wZXJpb2Q9OTM2NDtlLnRob25hbmdtb250aG90aGFpPTM2MDE7ZS50aG9vaz00Mjk7ZS50aG9waHV0aGFvdGhhaT0zNjAyO2UudGhvcm49MjU0O2UudGhvdGhhaGFudGhhaT0zNjA3O2UudGhvdGhhbnRoYWk9MzYwMDtlLnRob3Rob25ndGhhaT0zNjA4O2UudGhvdGh1bmd0aGFpPTM2MDY7ZS50aG91c2FuZGN5cmlsbGljPTExNTQ7ZS50aG91c2FuZHNzZXBhcmF0b3JhcmFiaWM9MTY0NDtlLnRob3VzYW5kc3NlcGFyYXRvcnBlcnNpYW49MTY0NDtlLnRocmVlPTUxO2UudGhyZWVhcmFiaWM9MTYzNTtlLnRocmVlYmVuZ2FsaT0yNTM3O2UudGhyZWVjaXJjbGU9OTMxNDtlLnRocmVlY2lyY2xlaW52ZXJzZXNhbnNzZXJpZj0xMDEyNDtlLnRocmVlZGV2YT0yNDA5O2UudGhyZWVlaWdodGhzPTg1NDA7ZS50aHJlZWd1amFyYXRpPTI3OTM7ZS50aHJlZWd1cm11a2hpPTI2NjU7ZS50aHJlZWhhY2thcmFiaWM9MTYzNTtlLnRocmVlaGFuZ3pob3U9MTIzMjM7ZS50aHJlZWlkZW9ncmFwaGljcGFyZW49MTI4MzQ7ZS50aHJlZWluZmVyaW9yPTgzMjM7ZS50aHJlZW1vbm9zcGFjZT02NTI5OTtlLnRocmVlbnVtZXJhdG9yYmVuZ2FsaT0yNTUwO2UudGhyZWVvbGRzdHlsZT02MzI4MztlLnRocmVlcGFyZW49OTMzNDtlLnRocmVlcGVyaW9kPTkzNTQ7ZS50aHJlZXBlcnNpYW49MTc3OTtlLnRocmVlcXVhcnRlcnM9MTkwO2UudGhyZWVxdWFydGVyc2VtZGFzaD02MzE5ODtlLnRocmVlcm9tYW49ODU2MjtlLnRocmVlc3VwZXJpb3I9MTc5O2UudGhyZWV0aGFpPTM2Njc7ZS50aHpzcXVhcmU9MTMyMDQ7ZS50aWhpcmFnYW5hPTEyMzg1O2UudGlrYXRha2FuYT0xMjQ4MTtlLnRpa2F0YWthbmFoYWxmd2lkdGg9NjU0MDk7ZS50aWtldXRhY2lyY2xla29yZWFuPTEyOTEyO2UudGlrZXV0YXBhcmVua29yZWFuPTEyODE2O2UudGlrZXV0Y2lyY2xla29yZWFuPTEyODk4O2UudGlrZXV0a29yZWFuPTEyNTk5O2UudGlrZXV0cGFyZW5rb3JlYW49MTI4MDI7ZS50aWxkZT03MzI7ZS50aWxkZWJlbG93Y21iPTgxNjtlLnRpbGRlY21iPTc3MTtlLnRpbGRlY29tYj03NzE7ZS50aWxkZWRvdWJsZWNtYj04NjQ7ZS50aWxkZW9wZXJhdG9yPTg3NjQ7ZS50aWxkZW92ZXJsYXljbWI9ODIwO2UudGlsZGV2ZXJ0aWNhbGNtYj04MzA7ZS50aW1lc2NpcmNsZT04ODU1O2UudGlwZWhhaGVicmV3PTE0MzA7ZS50aXBlaGFsZWZ0aGVicmV3PTE0MzA7ZS50aXBwaWd1cm11a2hpPTI2NzI7ZS50aXRsb2N5cmlsbGljY21iPTExNTU7ZS50aXduYXJtZW5pYW49MTQwNztlLnRsaW5lYmVsb3c9Nzc5MTtlLnRtb25vc3BhY2U9NjUzNjQ7ZS50b2FybWVuaWFuPTEzODU7ZS50b2hpcmFnYW5hPTEyMzkyO2UudG9rYXRha2FuYT0xMjQ4ODtlLnRva2F0YWthbmFoYWxmd2lkdGg9NjU0MTI7ZS50b25lYmFyZXh0cmFoaWdobW9kPTc0MTtlLnRvbmViYXJleHRyYWxvd21vZD03NDU7ZS50b25lYmFyaGlnaG1vZD03NDI7ZS50b25lYmFybG93bW9kPTc0NDtlLnRvbmViYXJtaWRtb2Q9NzQzO2UudG9uZWZpdmU9NDQ1O2UudG9uZXNpeD0zODk7ZS50b25ldHdvPTQyNDtlLnRvbm9zPTkwMDtlLnRvbnNxdWFyZT0xMzA5NTtlLnRvcGF0YWt0aGFpPTM1OTk7ZS50b3J0b2lzZXNoZWxsYnJhY2tldGxlZnQ9MTIzMDg7ZS50b3J0b2lzZXNoZWxsYnJhY2tldGxlZnRzbWFsbD02NTExNztlLnRvcnRvaXNlc2hlbGxicmFja2V0bGVmdHZlcnRpY2FsPTY1MDgxO2UudG9ydG9pc2VzaGVsbGJyYWNrZXRyaWdodD0xMjMwOTtlLnRvcnRvaXNlc2hlbGxicmFja2V0cmlnaHRzbWFsbD02NTExODtlLnRvcnRvaXNlc2hlbGxicmFja2V0cmlnaHR2ZXJ0aWNhbD02NTA4MjtlLnRvdGFvdGhhaT0zNjA1O2UudHBhbGF0YWxob29rPTQyNztlLnRwYXJlbj05MzkxO2UudHJhZGVtYXJrPTg0ODI7ZS50cmFkZW1hcmtzYW5zPTYzNzIyO2UudHJhZGVtYXJrc2VyaWY9NjMxOTU7ZS50cmV0cm9mbGV4aG9vaz02NDg7ZS50cmlhZ2RuPTk2NjA7ZS50cmlhZ2xmPTk2Njg7ZS50cmlhZ3J0PTk2NTg7ZS50cmlhZ3VwPTk2NTA7ZS50cz02Nzg7ZS50c2FkaT0xNTEwO2UudHNhZGlkYWdlc2g9NjQzMjY7ZS50c2FkaWRhZ2VzaGhlYnJldz02NDMyNjtlLnRzYWRpaGVicmV3PTE1MTA7ZS50c2VjeXJpbGxpYz0xMDk0O2UudHNlcmU9MTQ2MTtlLnRzZXJlMTI9MTQ2MTtlLnRzZXJlMWU9MTQ2MTtlLnRzZXJlMmI9MTQ2MTtlLnRzZXJlaGVicmV3PTE0NjE7ZS50c2VyZW5hcnJvd2hlYnJldz0xNDYxO2UudHNlcmVxdWFydGVyaGVicmV3PTE0NjE7ZS50c2VyZXdpZGVoZWJyZXc9MTQ2MTtlLnRzaGVjeXJpbGxpYz0xMTE1O2UudHN1cGVyaW9yPTYzMjE5O2UudHRhYmVuZ2FsaT0yNDYzO2UudHRhZGV2YT0yMzM1O2UudHRhZ3VqYXJhdGk9MjcxOTtlLnR0YWd1cm11a2hpPTI1OTE7ZS50dGVoYXJhYmljPTE2NTc7ZS50dGVoZmluYWxhcmFiaWM9NjQzNTk7ZS50dGVoaW5pdGlhbGFyYWJpYz02NDM2MDtlLnR0ZWhtZWRpYWxhcmFiaWM9NjQzNjE7ZS50dGhhYmVuZ2FsaT0yNDY0O2UudHRoYWRldmE9MjMzNjtlLnR0aGFndWphcmF0aT0yNzIwO2UudHRoYWd1cm11a2hpPTI1OTI7ZS50dHVybmVkPTY0NztlLnR1aGlyYWdhbmE9MTIzODg7ZS50dWthdGFrYW5hPTEyNDg0O2UudHVrYXRha2FuYWhhbGZ3aWR0aD02NTQxMDtlLnR1c21hbGxoaXJhZ2FuYT0xMjM4NztlLnR1c21hbGxrYXRha2FuYT0xMjQ4MztlLnR1c21hbGxrYXRha2FuYWhhbGZ3aWR0aD02NTM5MTtlLnR3ZWx2ZWNpcmNsZT05MzIzO2UudHdlbHZlcGFyZW49OTM0MztlLnR3ZWx2ZXBlcmlvZD05MzYzO2UudHdlbHZlcm9tYW49ODU3MTtlLnR3ZW50eWNpcmNsZT05MzMxO2UudHdlbnR5aGFuZ3pob3U9MjEzMTY7ZS50d2VudHlwYXJlbj05MzUxO2UudHdlbnR5cGVyaW9kPTkzNzE7ZS50d289NTA7ZS50d29hcmFiaWM9MTYzNDtlLnR3b2JlbmdhbGk9MjUzNjtlLnR3b2NpcmNsZT05MzEzO2UudHdvY2lyY2xlaW52ZXJzZXNhbnNzZXJpZj0xMDEyMztlLnR3b2RldmE9MjQwODtlLnR3b2RvdGVubGVhZGVyPTgyMjk7ZS50d29kb3RsZWFkZXI9ODIyOTtlLnR3b2RvdGxlYWRlcnZlcnRpY2FsPTY1MDcyO2UudHdvZ3VqYXJhdGk9Mjc5MjtlLnR3b2d1cm11a2hpPTI2NjQ7ZS50d29oYWNrYXJhYmljPTE2MzQ7ZS50d29oYW5nemhvdT0xMjMyMjtlLnR3b2lkZW9ncmFwaGljcGFyZW49MTI4MzM7ZS50d29pbmZlcmlvcj04MzIyO2UudHdvbW9ub3NwYWNlPTY1Mjk4O2UudHdvbnVtZXJhdG9yYmVuZ2FsaT0yNTQ5O2UudHdvb2xkc3R5bGU9NjMyODI7ZS50d29wYXJlbj05MzMzO2UudHdvcGVyaW9kPTkzNTM7ZS50d29wZXJzaWFuPTE3Nzg7ZS50d29yb21hbj04NTYxO2UudHdvc3Ryb2tlPTQ0MztlLnR3b3N1cGVyaW9yPTE3ODtlLnR3b3RoYWk9MzY2NjtlLnR3b3RoaXJkcz04NTMyO2UudT0xMTc7ZS51YWN1dGU9MjUwO2UudWJhcj02NDk7ZS51YmVuZ2FsaT0yNDQxO2UudWJvcG9tb2ZvPTEyNTg0O2UudWJyZXZlPTM2NTtlLnVjYXJvbj00Njg7ZS51Y2lyY2xlPTk0NDQ7ZS51Y2lyY3VtZmxleD0yNTE7ZS51Y2lyY3VtZmxleGJlbG93PTc3OTk7ZS51Y3lyaWxsaWM9MTA5MTtlLnVkYXR0YWRldmE9MjM4NTtlLnVkYmxhY3V0ZT0zNjk7ZS51ZGJsZ3JhdmU9NTMzO2UudWRldmE9MjMxMztlLnVkaWVyZXNpcz0yNTI7ZS51ZGllcmVzaXNhY3V0ZT00NzI7ZS51ZGllcmVzaXNiZWxvdz03Nzk1O2UudWRpZXJlc2lzY2Fyb249NDc0O2UudWRpZXJlc2lzY3lyaWxsaWM9MTI2NTtlLnVkaWVyZXNpc2dyYXZlPTQ3NjtlLnVkaWVyZXNpc21hY3Jvbj00NzA7ZS51ZG90YmVsb3c9NzkwOTtlLnVncmF2ZT0yNDk7ZS51Z3VqYXJhdGk9MjY5NztlLnVndXJtdWtoaT0yNTY5O2UudWhpcmFnYW5hPTEyMzU4O2UudWhvb2thYm92ZT03OTExO2UudWhvcm49NDMyO2UudWhvcm5hY3V0ZT03OTEzO2UudWhvcm5kb3RiZWxvdz03OTIxO2UudWhvcm5ncmF2ZT03OTE1O2UudWhvcm5ob29rYWJvdmU9NzkxNztlLnVob3JudGlsZGU9NzkxOTtlLnVodW5nYXJ1bWxhdXQ9MzY5O2UudWh1bmdhcnVtbGF1dGN5cmlsbGljPTEyNjc7ZS51aW52ZXJ0ZWRicmV2ZT01MzU7ZS51a2F0YWthbmE9MTI0NTQ7ZS51a2F0YWthbmFoYWxmd2lkdGg9NjUzOTU7ZS51a2N5cmlsbGljPTExNDU7ZS51a29yZWFuPTEyNjM2O2UudW1hY3Jvbj0zNjM7ZS51bWFjcm9uY3lyaWxsaWM9MTI2MztlLnVtYWNyb25kaWVyZXNpcz03ODAzO2UudW1hdHJhZ3VybXVraGk9MjYyNTtlLnVtb25vc3BhY2U9NjUzNjU7ZS51bmRlcnNjb3JlPTk1O2UudW5kZXJzY29yZWRibD04MjE1O2UudW5kZXJzY29yZW1vbm9zcGFjZT02NTM0MztlLnVuZGVyc2NvcmV2ZXJ0aWNhbD02NTA3NTtlLnVuZGVyc2NvcmV3YXZ5PTY1MTAzO2UudW5pb249ODc0NjtlLnVuaXZlcnNhbD04NzA0O2UudW9nb25laz0zNzE7ZS51cGFyZW49OTM5MjtlLnVwYmxvY2s9OTYwMDtlLnVwcGVyZG90aGVicmV3PTE0NzY7ZS51cHNpbG9uPTk2NTtlLnVwc2lsb25kaWVyZXNpcz05NzE7ZS51cHNpbG9uZGllcmVzaXN0b25vcz05NDQ7ZS51cHNpbG9ubGF0aW49NjUwO2UudXBzaWxvbnRvbm9zPTk3MztlLnVwdGFja2JlbG93Y21iPTc5NztlLnVwdGFja21vZD03MjQ7ZS51cmFndXJtdWtoaT0yNjc1O2UudXJpbmc9MzY3O2UudXNob3J0Y3lyaWxsaWM9MTExODtlLnVzbWFsbGhpcmFnYW5hPTEyMzU3O2UudXNtYWxsa2F0YWthbmE9MTI0NTM7ZS51c21hbGxrYXRha2FuYWhhbGZ3aWR0aD02NTM4NTtlLnVzdHJhaWdodGN5cmlsbGljPTExOTk7ZS51c3RyYWlnaHRzdHJva2VjeXJpbGxpYz0xMjAxO2UudXRpbGRlPTM2MTtlLnV0aWxkZWFjdXRlPTc4MDE7ZS51dGlsZGViZWxvdz03Nzk3O2UudXViZW5nYWxpPTI0NDI7ZS51dWRldmE9MjMxNDtlLnV1Z3VqYXJhdGk9MjY5ODtlLnV1Z3VybXVraGk9MjU3MDtlLnV1bWF0cmFndXJtdWtoaT0yNjI2O2UudXV2b3dlbHNpZ25iZW5nYWxpPTI0OTg7ZS51dXZvd2Vsc2lnbmRldmE9MjM3MDtlLnV1dm93ZWxzaWduZ3VqYXJhdGk9Mjc1NDtlLnV2b3dlbHNpZ25iZW5nYWxpPTI0OTc7ZS51dm93ZWxzaWduZGV2YT0yMzY5O2UudXZvd2Vsc2lnbmd1amFyYXRpPTI3NTM7ZS52PTExODtlLnZhZGV2YT0yMzU3O2UudmFndWphcmF0aT0yNzQxO2UudmFndXJtdWtoaT0yNjEzO2UudmFrYXRha2FuYT0xMjUzNTtlLnZhdj0xNDkzO2UudmF2ZGFnZXNoPTY0MzA5O2UudmF2ZGFnZXNoNjU9NjQzMDk7ZS52YXZkYWdlc2hoZWJyZXc9NjQzMDk7ZS52YXZoZWJyZXc9MTQ5MztlLnZhdmhvbGFtPTY0MzMxO2UudmF2aG9sYW1oZWJyZXc9NjQzMzE7ZS52YXZ2YXZoZWJyZXc9MTUyMDtlLnZhdnlvZGhlYnJldz0xNTIxO2UudmNpcmNsZT05NDQ1O2UudmRvdGJlbG93PTc4MDc7ZS52ZWN5cmlsbGljPTEwNzQ7ZS52ZWhhcmFiaWM9MTcwMDtlLnZlaGZpbmFsYXJhYmljPTY0MzYzO2UudmVoaW5pdGlhbGFyYWJpYz02NDM2NDtlLnZlaG1lZGlhbGFyYWJpYz02NDM2NTtlLnZla2F0YWthbmE9MTI1Mzc7ZS52ZW51cz05NzkyO2UudmVydGljYWxiYXI9MTI0O2UudmVydGljYWxsaW5lYWJvdmVjbWI9NzgxO2UudmVydGljYWxsaW5lYmVsb3djbWI9ODA5O2UudmVydGljYWxsaW5lbG93bW9kPTcxNjtlLnZlcnRpY2FsbGluZW1vZD03MTI7ZS52ZXdhcm1lbmlhbj0xNDA2O2Uudmhvb2s9NjUxO2UudmlrYXRha2FuYT0xMjUzNjtlLnZpcmFtYWJlbmdhbGk9MjUwOTtlLnZpcmFtYWRldmE9MjM4MTtlLnZpcmFtYWd1amFyYXRpPTI3NjU7ZS52aXNhcmdhYmVuZ2FsaT0yNDM1O2UudmlzYXJnYWRldmE9MjMwNztlLnZpc2FyZ2FndWphcmF0aT0yNjkxO2Uudm1vbm9zcGFjZT02NTM2NjtlLnZvYXJtZW5pYW49MTQwMDtlLnZvaWNlZGl0ZXJhdGlvbmhpcmFnYW5hPTEyNDQ2O2Uudm9pY2VkaXRlcmF0aW9ua2F0YWthbmE9MTI1NDI7ZS52b2ljZWRtYXJra2FuYT0xMjQ0MztlLnZvaWNlZG1hcmtrYW5haGFsZndpZHRoPTY1NDM4O2Uudm9rYXRha2FuYT0xMjUzODtlLnZwYXJlbj05MzkzO2UudnRpbGRlPTc4MDU7ZS52dHVybmVkPTY1MjtlLnZ1aGlyYWdhbmE9MTI0MzY7ZS52dWthdGFrYW5hPTEyNTMyO2Uudz0xMTk7ZS53YWN1dGU9NzgxMTtlLndhZWtvcmVhbj0xMjYzMztlLndhaGlyYWdhbmE9MTI0MzE7ZS53YWthdGFrYW5hPTEyNTI3O2Uud2FrYXRha2FuYWhhbGZ3aWR0aD02NTQzNjtlLndha29yZWFuPTEyNjMyO2Uud2FzbWFsbGhpcmFnYW5hPTEyNDMwO2Uud2FzbWFsbGthdGFrYW5hPTEyNTI2O2Uud2F0dG9zcXVhcmU9MTMxNDM7ZS53YXZlZGFzaD0xMjMxNjtlLndhdnl1bmRlcnNjb3JldmVydGljYWw9NjUwNzY7ZS53YXdhcmFiaWM9MTYwODtlLndhd2ZpbmFsYXJhYmljPTY1MjYyO2Uud2F3aGFtemFhYm92ZWFyYWJpYz0xNTcyO2Uud2F3aGFtemFhYm92ZWZpbmFsYXJhYmljPTY1MTU4O2Uud2JzcXVhcmU9MTMyNzc7ZS53Y2lyY2xlPTk0NDY7ZS53Y2lyY3VtZmxleD0zNzM7ZS53ZGllcmVzaXM9NzgxMztlLndkb3RhY2NlbnQ9NzgxNTtlLndkb3RiZWxvdz03ODE3O2Uud2VoaXJhZ2FuYT0xMjQzMztlLndlaWVyc3RyYXNzPTg0NzI7ZS53ZWthdGFrYW5hPTEyNTI5O2Uud2Vrb3JlYW49MTI2Mzg7ZS53ZW9rb3JlYW49MTI2Mzc7ZS53Z3JhdmU9NzgwOTtlLndoaXRlYnVsbGV0PTk3MDI7ZS53aGl0ZWNpcmNsZT05Njc1O2Uud2hpdGVjaXJjbGVpbnZlcnNlPTk2ODk7ZS53aGl0ZWNvcm5lcmJyYWNrZXRsZWZ0PTEyMzAyO2Uud2hpdGVjb3JuZXJicmFja2V0bGVmdHZlcnRpY2FsPTY1MDkxO2Uud2hpdGVjb3JuZXJicmFja2V0cmlnaHQ9MTIzMDM7ZS53aGl0ZWNvcm5lcmJyYWNrZXRyaWdodHZlcnRpY2FsPTY1MDkyO2Uud2hpdGVkaWFtb25kPTk2NzE7ZS53aGl0ZWRpYW1vbmRjb250YWluaW5nYmxhY2tzbWFsbGRpYW1vbmQ9OTY3MjtlLndoaXRlZG93bnBvaW50aW5nc21hbGx0cmlhbmdsZT05NjYzO2Uud2hpdGVkb3ducG9pbnRpbmd0cmlhbmdsZT05NjYxO2Uud2hpdGVsZWZ0cG9pbnRpbmdzbWFsbHRyaWFuZ2xlPTk2Njc7ZS53aGl0ZWxlZnRwb2ludGluZ3RyaWFuZ2xlPTk2NjU7ZS53aGl0ZWxlbnRpY3VsYXJicmFja2V0bGVmdD0xMjMxMDtlLndoaXRlbGVudGljdWxhcmJyYWNrZXRyaWdodD0xMjMxMTtlLndoaXRlcmlnaHRwb2ludGluZ3NtYWxsdHJpYW5nbGU9OTY1NztlLndoaXRlcmlnaHRwb2ludGluZ3RyaWFuZ2xlPTk2NTU7ZS53aGl0ZXNtYWxsc3F1YXJlPTk2NDM7ZS53aGl0ZXNtaWxpbmdmYWNlPTk3ODY7ZS53aGl0ZXNxdWFyZT05NjMzO2Uud2hpdGVzdGFyPTk3MzQ7ZS53aGl0ZXRlbGVwaG9uZT05NzQzO2Uud2hpdGV0b3J0b2lzZXNoZWxsYnJhY2tldGxlZnQ9MTIzMTI7ZS53aGl0ZXRvcnRvaXNlc2hlbGxicmFja2V0cmlnaHQ9MTIzMTM7ZS53aGl0ZXVwcG9pbnRpbmdzbWFsbHRyaWFuZ2xlPTk2NTM7ZS53aGl0ZXVwcG9pbnRpbmd0cmlhbmdsZT05NjUxO2Uud2loaXJhZ2FuYT0xMjQzMjtlLndpa2F0YWthbmE9MTI1Mjg7ZS53aWtvcmVhbj0xMjYzOTtlLndtb25vc3BhY2U9NjUzNjc7ZS53b2hpcmFnYW5hPTEyNDM0O2Uud29rYXRha2FuYT0xMjUzMDtlLndva2F0YWthbmFoYWxmd2lkdGg9NjUzODI7ZS53b249ODM2MTtlLndvbm1vbm9zcGFjZT02NTUxMDtlLndvd2FlbnRoYWk9MzYyMztlLndwYXJlbj05Mzk0O2Uud3Jpbmc9NzgzMjtlLndzdXBlcmlvcj02OTU7ZS53dHVybmVkPTY1MztlLnd5bm49NDQ3O2UueD0xMjA7ZS54YWJvdmVjbWI9ODI5O2UueGJvcG9tb2ZvPTEyNTYyO2UueGNpcmNsZT05NDQ3O2UueGRpZXJlc2lzPTc4MjE7ZS54ZG90YWNjZW50PTc4MTk7ZS54ZWhhcm1lbmlhbj0xMzg5O2UueGk9OTU4O2UueG1vbm9zcGFjZT02NTM2ODtlLnhwYXJlbj05Mzk1O2UueHN1cGVyaW9yPTczOTtlLnk9MTIxO2UueWFhZG9zcXVhcmU9MTMxMzQ7ZS55YWJlbmdhbGk9MjQ3OTtlLnlhY3V0ZT0yNTM7ZS55YWRldmE9MjM1MTtlLnlhZWtvcmVhbj0xMjYyNjtlLnlhZ3VqYXJhdGk9MjczNTtlLnlhZ3VybXVraGk9MjYwNztlLnlhaGlyYWdhbmE9MTI0MjA7ZS55YWthdGFrYW5hPTEyNTE2O2UueWFrYXRha2FuYWhhbGZ3aWR0aD02NTQyODtlLnlha29yZWFuPTEyNjI1O2UueWFtYWtrYW50aGFpPTM2NjI7ZS55YXNtYWxsaGlyYWdhbmE9MTI0MTk7ZS55YXNtYWxsa2F0YWthbmE9MTI1MTU7ZS55YXNtYWxsa2F0YWthbmFoYWxmd2lkdGg9NjUzODg7ZS55YXRjeXJpbGxpYz0xMTIzO2UueWNpcmNsZT05NDQ4O2UueWNpcmN1bWZsZXg9Mzc1O2UueWRpZXJlc2lzPTI1NTtlLnlkb3RhY2NlbnQ9NzgyMztlLnlkb3RiZWxvdz03OTI1O2UueWVoYXJhYmljPTE2MTA7ZS55ZWhiYXJyZWVhcmFiaWM9MTc0NjtlLnllaGJhcnJlZWZpbmFsYXJhYmljPTY0NDMxO2UueWVoZmluYWxhcmFiaWM9NjUyNjY7ZS55ZWhoYW16YWFib3ZlYXJhYmljPTE1NzQ7ZS55ZWhoYW16YWFib3ZlZmluYWxhcmFiaWM9NjUxNjI7ZS55ZWhoYW16YWFib3ZlaW5pdGlhbGFyYWJpYz02NTE2MztlLnllaGhhbXphYWJvdmVtZWRpYWxhcmFiaWM9NjUxNjQ7ZS55ZWhpbml0aWFsYXJhYmljPTY1MjY3O2UueWVobWVkaWFsYXJhYmljPTY1MjY4O2UueWVobWVlbWluaXRpYWxhcmFiaWM9NjQ3MzM7ZS55ZWhtZWVtaXNvbGF0ZWRhcmFiaWM9NjQ2MDA7ZS55ZWhub29uZmluYWxhcmFiaWM9NjQ2NjA7ZS55ZWh0aHJlZWRvdHNiZWxvd2FyYWJpYz0xNzQ1O2UueWVrb3JlYW49MTI2MzA7ZS55ZW49MTY1O2UueWVubW9ub3NwYWNlPTY1NTA5O2UueWVva29yZWFuPTEyNjI5O2UueWVvcmluaGlldWhrb3JlYW49MTI2Nzg7ZS55ZXJhaGJlbnlvbW9oZWJyZXc9MTQ1MDtlLnllcmFoYmVueW9tb2xlZnRoZWJyZXc9MTQ1MDtlLnllcmljeXJpbGxpYz0xMDk5O2UueWVydWRpZXJlc2lzY3lyaWxsaWM9MTI3MztlLnllc2lldW5na29yZWFuPTEyNjczO2UueWVzaWV1bmdwYW5zaW9za29yZWFuPTEyNjc1O2UueWVzaWV1bmdzaW9za29yZWFuPTEyNjc0O2UueWV0aXZoZWJyZXc9MTQzNDtlLnlncmF2ZT03OTIzO2UueWhvb2s9NDM2O2UueWhvb2thYm92ZT03OTI3O2UueWlhcm1lbmlhbj0xMzk3O2UueWljeXJpbGxpYz0xMTExO2UueWlrb3JlYW49MTI2NDI7ZS55aW55YW5nPTk3NzU7ZS55aXduYXJtZW5pYW49MTQxMDtlLnltb25vc3BhY2U9NjUzNjk7ZS55b2Q9MTQ5NztlLnlvZGRhZ2VzaD02NDMxMztlLnlvZGRhZ2VzaGhlYnJldz02NDMxMztlLnlvZGhlYnJldz0xNDk3O2UueW9keW9kaGVicmV3PTE1MjI7ZS55b2R5b2RwYXRhaGhlYnJldz02NDI4NztlLnlvaGlyYWdhbmE9MTI0MjQ7ZS55b2lrb3JlYW49MTI2ODE7ZS55b2thdGFrYW5hPTEyNTIwO2UueW9rYXRha2FuYWhhbGZ3aWR0aD02NTQzMDtlLnlva29yZWFuPTEyNjM1O2UueW9zbWFsbGhpcmFnYW5hPTEyNDIzO2UueW9zbWFsbGthdGFrYW5hPTEyNTE5O2UueW9zbWFsbGthdGFrYW5haGFsZndpZHRoPTY1MzkwO2UueW90Z3JlZWs9MTAxMTtlLnlveWFla29yZWFuPTEyNjgwO2UueW95YWtvcmVhbj0xMjY3OTtlLnlveWFrdGhhaT0zNjE4O2UueW95aW5ndGhhaT0zNTk3O2UueXBhcmVuPTkzOTY7ZS55cG9nZWdyYW1tZW5pPTg5MDtlLnlwb2dlZ3JhbW1lbmlncmVla2NtYj04Mzc7ZS55cj00MjI7ZS55cmluZz03ODMzO2UueXN1cGVyaW9yPTY5NjtlLnl0aWxkZT03OTI5O2UueXR1cm5lZD02NTQ7ZS55dWhpcmFnYW5hPTEyNDIyO2UueXVpa29yZWFuPTEyNjg0O2UueXVrYXRha2FuYT0xMjUxODtlLnl1a2F0YWthbmFoYWxmd2lkdGg9NjU0Mjk7ZS55dWtvcmVhbj0xMjY0MDtlLnl1c2JpZ2N5cmlsbGljPTExMzE7ZS55dXNiaWdpb3RpZmllZGN5cmlsbGljPTExMzM7ZS55dXNsaXR0bGVjeXJpbGxpYz0xMTI3O2UueXVzbGl0dGxlaW90aWZpZWRjeXJpbGxpYz0xMTI5O2UueXVzbWFsbGhpcmFnYW5hPTEyNDIxO2UueXVzbWFsbGthdGFrYW5hPTEyNTE3O2UueXVzbWFsbGthdGFrYW5haGFsZndpZHRoPTY1Mzg5O2UueXV5ZWtvcmVhbj0xMjY4MztlLnl1eWVva29yZWFuPTEyNjgyO2UueXlhYmVuZ2FsaT0yNTI3O2UueXlhZGV2YT0yMzk5O2Uuej0xMjI7ZS56YWFybWVuaWFuPTEzODI7ZS56YWN1dGU9Mzc4O2UuemFkZXZhPTIzOTU7ZS56YWd1cm11a2hpPTI2NTE7ZS56YWhhcmFiaWM9MTU5MjtlLnphaGZpbmFsYXJhYmljPTY1MjIyO2UuemFoaW5pdGlhbGFyYWJpYz02NTIyMztlLnphaGlyYWdhbmE9MTIzNzQ7ZS56YWhtZWRpYWxhcmFiaWM9NjUyMjQ7ZS56YWluYXJhYmljPTE1ODY7ZS56YWluZmluYWxhcmFiaWM9NjUyMDA7ZS56YWthdGFrYW5hPTEyNDcwO2UuemFxZWZnYWRvbGhlYnJldz0xNDI5O2UuemFxZWZxYXRhbmhlYnJldz0xNDI4O2UuemFycWFoZWJyZXc9MTQzMjtlLnpheWluPTE0OTQ7ZS56YXlpbmRhZ2VzaD02NDMxMDtlLnpheWluZGFnZXNoaGVicmV3PTY0MzEwO2UuemF5aW5oZWJyZXc9MTQ5NDtlLnpib3BvbW9mbz0xMjU2NztlLnpjYXJvbj0zODI7ZS56Y2lyY2xlPTk0NDk7ZS56Y2lyY3VtZmxleD03ODI1O2UuemN1cmw9NjU3O2UuemRvdD0zODA7ZS56ZG90YWNjZW50PTM4MDtlLnpkb3RiZWxvdz03ODI3O2UuemVjeXJpbGxpYz0xMDc5O2UuemVkZXNjZW5kZXJjeXJpbGxpYz0xMTc3O2UuemVkaWVyZXNpc2N5cmlsbGljPTEyNDc7ZS56ZWhpcmFnYW5hPTEyMzgwO2UuemVrYXRha2FuYT0xMjQ3NjtlLnplcm89NDg7ZS56ZXJvYXJhYmljPTE2MzI7ZS56ZXJvYmVuZ2FsaT0yNTM0O2UuemVyb2RldmE9MjQwNjtlLnplcm9ndWphcmF0aT0yNzkwO2UuemVyb2d1cm11a2hpPTI2NjI7ZS56ZXJvaGFja2FyYWJpYz0xNjMyO2UuemVyb2luZmVyaW9yPTgzMjA7ZS56ZXJvbW9ub3NwYWNlPTY1Mjk2O2UuemVyb29sZHN0eWxlPTYzMjgwO2UuemVyb3BlcnNpYW49MTc3NjtlLnplcm9zdXBlcmlvcj04MzA0O2UuemVyb3RoYWk9MzY2NDtlLnplcm93aWR0aGpvaW5lcj02NTI3OTtlLnplcm93aWR0aG5vbmpvaW5lcj04MjA0O2UuemVyb3dpZHRoc3BhY2U9ODIwMztlLnpldGE9OTUwO2Uuemhib3BvbW9mbz0xMjU2MztlLnpoZWFybWVuaWFuPTEzODY7ZS56aGVicmV2ZWN5cmlsbGljPTEyMTg7ZS56aGVjeXJpbGxpYz0xMDc4O2UuemhlZGVzY2VuZGVyY3lyaWxsaWM9MTE3NTtlLnpoZWRpZXJlc2lzY3lyaWxsaWM9MTI0NTtlLnppaGlyYWdhbmE9MTIzNzY7ZS56aWthdGFrYW5hPTEyNDcyO2Uuemlub3JoZWJyZXc9MTQ1NDtlLnpsaW5lYmVsb3c9NzgyOTtlLnptb25vc3BhY2U9NjUzNzA7ZS56b2hpcmFnYW5hPTEyMzgyO2Uuem9rYXRha2FuYT0xMjQ3ODtlLnpwYXJlbj05Mzk3O2UuenJldHJvZmxleGhvb2s9NjU2O2UuenN0cm9rZT00Mzg7ZS56dWhpcmFnYW5hPTEyMzc4O2UuenVrYXRha2FuYT0xMjQ3NDtlWyIubm90ZGVmIl09MDtlLmFuZ2JyYWNrZXRsZWZ0YmlnPTkwMDE7ZS5hbmdicmFja2V0bGVmdEJpZz05MDAxO2UuYW5nYnJhY2tldGxlZnRiaWdnPTkwMDE7ZS5hbmdicmFja2V0bGVmdEJpZ2c9OTAwMTtlLmFuZ2JyYWNrZXRyaWdodEJpZz05MDAyO2UuYW5nYnJhY2tldHJpZ2h0YmlnPTkwMDI7ZS5hbmdicmFja2V0cmlnaHRCaWdnPTkwMDI7ZS5hbmdicmFja2V0cmlnaHRiaWdnPTkwMDI7ZS5hcnJvd2hvb2tsZWZ0PTg2MTg7ZS5hcnJvd2hvb2tyaWdodD04NjE3O2UuYXJyb3dsZWZ0dG9waGFsZj04NjM2O2UuYXJyb3dsZWZ0Ym90aGFsZj04NjM3O2UuYXJyb3dub3J0aGVhc3Q9ODU5OTtlLmFycm93bm9ydGh3ZXN0PTg1OTg7ZS5hcnJvd3JpZ2h0dG9waGFsZj04NjQwO2UuYXJyb3dyaWdodGJvdGhhbGY9ODY0MTtlLmFycm93c291dGhlYXN0PTg2MDA7ZS5hcnJvd3NvdXRod2VzdD04NjAxO2UuYmFja3NsYXNoYmlnPTg3MjY7ZS5iYWNrc2xhc2hCaWc9ODcyNjtlLmJhY2tzbGFzaEJpZ2c9ODcyNjtlLmJhY2tzbGFzaGJpZ2c9ODcyNjtlLmJhcmRibD04MjE0O2UuYnJhY2VodGlwZG93bmxlZnQ9NjUwNzk7ZS5icmFjZWh0aXBkb3ducmlnaHQ9NjUwNzk7ZS5icmFjZWh0aXB1cGxlZnQ9NjUwODA7ZS5icmFjZWh0aXB1cHJpZ2h0PTY1MDgwO2UuYnJhY2VsZWZ0QmlnPTEyMztlLmJyYWNlbGVmdGJpZz0xMjM7ZS5icmFjZWxlZnRiaWdnPTEyMztlLmJyYWNlbGVmdEJpZ2c9MTIzO2UuYnJhY2VyaWdodEJpZz0xMjU7ZS5icmFjZXJpZ2h0YmlnPTEyNTtlLmJyYWNlcmlnaHRiaWdnPTEyNTtlLmJyYWNlcmlnaHRCaWdnPTEyNTtlLmJyYWNrZXRsZWZ0YmlnPTkxO2UuYnJhY2tldGxlZnRCaWc9OTE7ZS5icmFja2V0bGVmdGJpZ2c9OTE7ZS5icmFja2V0bGVmdEJpZ2c9OTE7ZS5icmFja2V0cmlnaHRCaWc9OTM7ZS5icmFja2V0cmlnaHRiaWc9OTM7ZS5icmFja2V0cmlnaHRiaWdnPTkzO2UuYnJhY2tldHJpZ2h0QmlnZz05MztlLmNlaWxpbmdsZWZ0YmlnPTg5Njg7ZS5jZWlsaW5nbGVmdEJpZz04OTY4O2UuY2VpbGluZ2xlZnRCaWdnPTg5Njg7ZS5jZWlsaW5nbGVmdGJpZ2c9ODk2ODtlLmNlaWxpbmdyaWdodGJpZz04OTY5O2UuY2VpbGluZ3JpZ2h0QmlnPTg5Njk7ZS5jZWlsaW5ncmlnaHRiaWdnPTg5Njk7ZS5jZWlsaW5ncmlnaHRCaWdnPTg5Njk7ZS5jaXJjbGVkb3RkaXNwbGF5PTg4NTc7ZS5jaXJjbGVkb3R0ZXh0PTg4NTc7ZS5jaXJjbGVtdWx0aXBseWRpc3BsYXk9ODg1NTtlLmNpcmNsZW11bHRpcGx5dGV4dD04ODU1O2UuY2lyY2xlcGx1c2Rpc3BsYXk9ODg1MztlLmNpcmNsZXBsdXN0ZXh0PTg4NTM7ZS5jb250aW50ZWdyYWxkaXNwbGF5PTg3NTA7ZS5jb250aW50ZWdyYWx0ZXh0PTg3NTA7ZS5jb3Byb2R1Y3RkaXNwbGF5PTg3MjA7ZS5jb3Byb2R1Y3R0ZXh0PTg3MjA7ZS5mbG9vcmxlZnRCaWc9ODk3MDtlLmZsb29ybGVmdGJpZz04OTcwO2UuZmxvb3JsZWZ0YmlnZz04OTcwO2UuZmxvb3JsZWZ0QmlnZz04OTcwO2UuZmxvb3JyaWdodGJpZz04OTcxO2UuZmxvb3JyaWdodEJpZz04OTcxO2UuZmxvb3JyaWdodEJpZ2c9ODk3MTtlLmZsb29ycmlnaHRiaWdnPTg5NzE7ZS5oYXR3aWRlPTc3MDtlLmhhdHdpZGVyPTc3MDtlLmhhdHdpZGVzdD03NzA7ZS5pbnRlcmNhbD03NDg4O2UuaW50ZWdyYWxkaXNwbGF5PTg3NDc7ZS5pbnRlZ3JhbHRleHQ9ODc0NztlLmludGVyc2VjdGlvbmRpc3BsYXk9ODg5ODtlLmludGVyc2VjdGlvbnRleHQ9ODg5ODtlLmxvZ2ljYWxhbmRkaXNwbGF5PTg3NDM7ZS5sb2dpY2FsYW5kdGV4dD04NzQzO2UubG9naWNhbG9yZGlzcGxheT04NzQ0O2UubG9naWNhbG9ydGV4dD04NzQ0O2UucGFyZW5sZWZ0QmlnPTQwO2UucGFyZW5sZWZ0YmlnPTQwO2UucGFyZW5sZWZ0QmlnZz00MDtlLnBhcmVubGVmdGJpZ2c9NDA7ZS5wYXJlbnJpZ2h0QmlnPTQxO2UucGFyZW5yaWdodGJpZz00MTtlLnBhcmVucmlnaHRCaWdnPTQxO2UucGFyZW5yaWdodGJpZ2c9NDE7ZS5wcmltZT04MjQyO2UucHJvZHVjdGRpc3BsYXk9ODcxOTtlLnByb2R1Y3R0ZXh0PTg3MTk7ZS5yYWRpY2FsYmlnPTg3MzA7ZS5yYWRpY2FsQmlnPTg3MzA7ZS5yYWRpY2FsQmlnZz04NzMwO2UucmFkaWNhbGJpZ2c9ODczMDtlLnJhZGljYWxidD04NzMwO2UucmFkaWNhbHRwPTg3MzA7ZS5yYWRpY2FsdmVydGV4PTg3MzA7ZS5zbGFzaGJpZz00NztlLnNsYXNoQmlnPTQ3O2Uuc2xhc2hCaWdnPTQ3O2Uuc2xhc2hiaWdnPTQ3O2Uuc3VtbWF0aW9uZGlzcGxheT04NzIxO2Uuc3VtbWF0aW9udGV4dD04NzIxO2UudGlsZGV3aWRlPTczMjtlLnRpbGRld2lkZXI9NzMyO2UudGlsZGV3aWRlc3Q9NzMyO2UudW5pb25kaXNwbGF5PTg4OTk7ZS51bmlvbm11bHRpZGlzcGxheT04ODQ2O2UudW5pb25tdWx0aXRleHQ9ODg0NjtlLnVuaW9uc3FkaXNwbGF5PTg4NTI7ZS51bmlvbnNxdGV4dD04ODUyO2UudW5pb250ZXh0PTg4OTk7ZS52ZXh0ZW5kZG91YmxlPTg3NDE7ZS52ZXh0ZW5kc2luZ2xlPTg3Mzl9KSksRmk9Z2V0TG9va3VwVGFibGVGYWN0b3J5KChmdW5jdGlvbihlKXtlLnNwYWNlPTMyO2UuYTE9OTk4NTtlLmEyPTk5ODY7ZS5hMjAyPTk5ODc7ZS5hMz05OTg4O2UuYTQ9OTc0MjtlLmE1PTk5OTA7ZS5hMTE5PTk5OTE7ZS5hMTE4PTk5OTI7ZS5hMTE3PTk5OTM7ZS5hMTE9OTc1NTtlLmExMj05NzU4O2UuYTEzPTk5OTY7ZS5hMTQ9OTk5NztlLmExNT05OTk4O2UuYTE2PTk5OTk7ZS5hMTA1PTFlNDtlLmExNz0xMDAwMTtlLmExOD0xMDAwMjtlLmExOT0xMDAwMztlLmEyMD0xMDAwNDtlLmEyMT0xMDAwNTtlLmEyMj0xMDAwNjtlLmEyMz0xMDAwNztlLmEyND0xMDAwODtlLmEyNT0xMDAwOTtlLmEyNj0xMDAxMDtlLmEyNz0xMDAxMTtlLmEyOD0xMDAxMjtlLmE2PTEwMDEzO2UuYTc9MTAwMTQ7ZS5hOD0xMDAxNTtlLmE5PTEwMDE2O2UuYTEwPTEwMDE3O2UuYTI5PTEwMDE4O2UuYTMwPTEwMDE5O2UuYTMxPTEwMDIwO2UuYTMyPTEwMDIxO2UuYTMzPTEwMDIyO2UuYTM0PTEwMDIzO2UuYTM1PTk3MzM7ZS5hMzY9MTAwMjU7ZS5hMzc9MTAwMjY7ZS5hMzg9MTAwMjc7ZS5hMzk9MTAwMjg7ZS5hNDA9MTAwMjk7ZS5hNDE9MTAwMzA7ZS5hNDI9MTAwMzE7ZS5hNDM9MTAwMzI7ZS5hNDQ9MTAwMzM7ZS5hNDU9MTAwMzQ7ZS5hNDY9MTAwMzU7ZS5hNDc9MTAwMzY7ZS5hNDg9MTAwMzc7ZS5hNDk9MTAwMzg7ZS5hNTA9MTAwMzk7ZS5hNTE9MTAwNDA7ZS5hNTI9MTAwNDE7ZS5hNTM9MTAwNDI7ZS5hNTQ9MTAwNDM7ZS5hNTU9MTAwNDQ7ZS5hNTY9MTAwNDU7ZS5hNTc9MTAwNDY7ZS5hNTg9MTAwNDc7ZS5hNTk9MTAwNDg7ZS5hNjA9MTAwNDk7ZS5hNjE9MTAwNTA7ZS5hNjI9MTAwNTE7ZS5hNjM9MTAwNTI7ZS5hNjQ9MTAwNTM7ZS5hNjU9MTAwNTQ7ZS5hNjY9MTAwNTU7ZS5hNjc9MTAwNTY7ZS5hNjg9MTAwNTc7ZS5hNjk9MTAwNTg7ZS5hNzA9MTAwNTk7ZS5hNzE9OTY3OTtlLmE3Mj0xMDA2MTtlLmE3Mz05NjMyO2UuYTc0PTEwMDYzO2UuYTIwMz0xMDA2NDtlLmE3NT0xMDA2NTtlLmEyMDQ9MTAwNjY7ZS5hNzY9OTY1MDtlLmE3Nz05NjYwO2UuYTc4PTk2NzA7ZS5hNzk9MTAwNzA7ZS5hODE9OTY4NztlLmE4Mj0xMDA3MjtlLmE4Mz0xMDA3MztlLmE4ND0xMDA3NDtlLmE5Nz0xMDA3NTtlLmE5OD0xMDA3NjtlLmE5OT0xMDA3NztlLmExMDA9MTAwNzg7ZS5hMTAxPTEwMDgxO2UuYTEwMj0xMDA4MjtlLmExMDM9MTAwODM7ZS5hMTA0PTEwMDg0O2UuYTEwNj0xMDA4NTtlLmExMDc9MTAwODY7ZS5hMTA4PTEwMDg3O2UuYTExMj05ODI3O2UuYTExMT05ODMwO2UuYTExMD05ODI5O2UuYTEwOT05ODI0O2UuYTEyMD05MzEyO2UuYTEyMT05MzEzO2UuYTEyMj05MzE0O2UuYTEyMz05MzE1O2UuYTEyND05MzE2O2UuYTEyNT05MzE3O2UuYTEyNj05MzE4O2UuYTEyNz05MzE5O2UuYTEyOD05MzIwO2UuYTEyOT05MzIxO2UuYTEzMD0xMDEwMjtlLmExMzE9MTAxMDM7ZS5hMTMyPTEwMTA0O2UuYTEzMz0xMDEwNTtlLmExMzQ9MTAxMDY7ZS5hMTM1PTEwMTA3O2UuYTEzNj0xMDEwODtlLmExMzc9MTAxMDk7ZS5hMTM4PTEwMTEwO2UuYTEzOT0xMDExMTtlLmExNDA9MTAxMTI7ZS5hMTQxPTEwMTEzO2UuYTE0Mj0xMDExNDtlLmExNDM9MTAxMTU7ZS5hMTQ0PTEwMTE2O2UuYTE0NT0xMDExNztlLmExNDY9MTAxMTg7ZS5hMTQ3PTEwMTE5O2UuYTE0OD0xMDEyMDtlLmExNDk9MTAxMjE7ZS5hMTUwPTEwMTIyO2UuYTE1MT0xMDEyMztlLmExNTI9MTAxMjQ7ZS5hMTUzPTEwMTI1O2UuYTE1ND0xMDEyNjtlLmExNTU9MTAxMjc7ZS5hMTU2PTEwMTI4O2UuYTE1Nz0xMDEyOTtlLmExNTg9MTAxMzA7ZS5hMTU5PTEwMTMxO2UuYTE2MD0xMDEzMjtlLmExNjE9ODU5NDtlLmExNjM9ODU5NjtlLmExNjQ9ODU5NztlLmExOTY9MTAxMzY7ZS5hMTY1PTEwMTM3O2UuYTE5Mj0xMDEzODtlLmExNjY9MTAxMzk7ZS5hMTY3PTEwMTQwO2UuYTE2OD0xMDE0MTtlLmExNjk9MTAxNDI7ZS5hMTcwPTEwMTQzO2UuYTE3MT0xMDE0NDtlLmExNzI9MTAxNDU7ZS5hMTczPTEwMTQ2O2UuYTE2Mj0xMDE0NztlLmExNzQ9MTAxNDg7ZS5hMTc1PTEwMTQ5O2UuYTE3Nj0xMDE1MDtlLmExNzc9MTAxNTE7ZS5hMTc4PTEwMTUyO2UuYTE3OT0xMDE1MztlLmExOTM9MTAxNTQ7ZS5hMTgwPTEwMTU1O2UuYTE5OT0xMDE1NjtlLmExODE9MTAxNTc7ZS5hMjAwPTEwMTU4O2UuYTE4Mj0xMDE1OTtlLmEyMDE9MTAxNjE7ZS5hMTgzPTEwMTYyO2UuYTE4ND0xMDE2MztlLmExOTc9MTAxNjQ7ZS5hMTg1PTEwMTY1O2UuYTE5ND0xMDE2NjtlLmExOTg9MTAxNjc7ZS5hMTg2PTEwMTY4O2UuYTE5NT0xMDE2OTtlLmExODc9MTAxNzA7ZS5hMTg4PTEwMTcxO2UuYTE4OT0xMDE3MjtlLmExOTA9MTAxNzM7ZS5hMTkxPTEwMTc0O2UuYTg5PTEwMDg4O2UuYTkwPTEwMDg5O2UuYTkzPTEwMDkwO2UuYTk0PTEwMDkxO2UuYTkxPTEwMDkyO2UuYTkyPTEwMDkzO2UuYTIwNT0xMDA5NDtlLmE4NT0xMDA5NTtlLmEyMDY9MTAwOTY7ZS5hODY9MTAwOTc7ZS5hODc9MTAwOTg7ZS5hODg9MTAwOTk7ZS5hOTU9MTAxMDA7ZS5hOTY9MTAxMDE7ZVsiLm5vdGRlZiJdPTB9KSksU2k9Z2V0TG9va3VwVGFibGVGYWN0b3J5KChmdW5jdGlvbihlKXtlWzYzNzIxXT0xNjk7ZVs2MzE5M109MTY5O2VbNjM3MjBdPTE3NDtlWzYzMTk0XT0xNzQ7ZVs2MzcyMl09ODQ4MjtlWzYzMTk1XT04NDgyO2VbNjM3MjldPTkxMjc7ZVs2MzczMF09OTEyODtlWzYzNzMxXT05MTI5O2VbNjM3NDBdPTkxMzE7ZVs2Mzc0MV09OTEzMjtlWzYzNzQyXT05MTMzO2VbNjM3MjZdPTkxMjE7ZVs2MzcyN109OTEyMjtlWzYzNzI4XT05MTIzO2VbNjM3MzddPTkxMjQ7ZVs2MzczOF09OTEyNTtlWzYzNzM5XT05MTI2O2VbNjM3MjNdPTkxMTU7ZVs2MzcyNF09OTExNjtlWzYzNzI1XT05MTE3O2VbNjM3MzRdPTkxMTg7ZVs2MzczNV09OTExOTtlWzYzNzM2XT05MTIwfSkpO2Z1bmN0aW9uIGdldFVuaWNvZGVGb3JHbHlwaChlLHQpe2xldCBpPXRbZV07aWYodm9pZCAwIT09aSlyZXR1cm4gaTtpZighZSlyZXR1cm4tMTtpZigidSI9PT1lWzBdKXtjb25zdCB0PWUubGVuZ3RoO2xldCBhO2lmKDc9PT10JiYibiI9PT1lWzFdJiYiaSI9PT1lWzJdKWE9ZS5zdWJzdHJpbmcoMyk7ZWxzZXtpZighKHQ+PTUmJnQ8PTcpKXJldHVybi0xO2E9ZS5zdWJzdHJpbmcoMSl9aWYoYT09PWEudG9VcHBlckNhc2UoKSl7aT1wYXJzZUludChhLDE2KTtpZihpPj0wKXJldHVybiBpfX1yZXR1cm4tMX1jb25zdCBraT1bWzAsMTI3XSxbMTI4LDI1NV0sWzI1NiwzODNdLFszODQsNTkxXSxbNTkyLDY4Nyw3NDI0LDc1NTEsNzU1Miw3NjE1XSxbNjg4LDc2Nyw0Mjc1Miw0Mjc4M10sWzc2OCw4NzksNzYxNiw3Njc5XSxbODgwLDEwMjNdLFsxMTM5MiwxMTUxOV0sWzEwMjQsMTI3OSwxMjgwLDEzMjcsMTE3NDQsMTE3NzUsNDI1NjAsNDI2NTVdLFsxMzI4LDE0MjNdLFsxNDI0LDE1MzVdLFs0MjI0MCw0MjU1OV0sWzE1MzYsMTc5MSwxODcyLDE5MTldLFsxOTg0LDIwNDddLFsyMzA0LDI0MzFdLFsyNDMyLDI1NTldLFsyNTYwLDI2ODddLFsyNjg4LDI4MTVdLFsyODE2LDI5NDNdLFsyOTQ0LDMwNzFdLFszMDcyLDMxOTldLFszMjAwLDMzMjddLFszMzI4LDM0NTVdLFszNTg0LDM3MTFdLFszNzEyLDM4MzldLFs0MjU2LDQzNTEsMTE1MjAsMTE1NjddLFs2OTEyLDcwMzldLFs0MzUyLDQ2MDddLFs3NjgwLDc5MzUsMTEzNjAsMTEzOTEsNDI3ODQsNDMwMDddLFs3OTM2LDgxOTFdLFs4MTkyLDgzMDMsMTE3NzYsMTE5MDNdLFs4MzA0LDgzNTFdLFs4MzUyLDgzOTldLFs4NDAwLDg0NDddLFs4NDQ4LDg1MjddLFs4NTI4LDg1OTFdLFs4NTkyLDg3MDMsMTAyMjQsMTAyMzksMTA0OTYsMTA2MjMsMTEwMDgsMTEyNjNdLFs4NzA0LDg5NTksMTA3NTIsMTEwMDcsMTAxNzYsMTAyMjMsMTA2MjQsMTA3NTFdLFs4OTYwLDkyMTVdLFs5MjE2LDkyNzldLFs5MjgwLDkzMTFdLFs5MzEyLDk0NzFdLFs5NDcyLDk1OTldLFs5NjAwLDk2MzFdLFs5NjMyLDk3MjddLFs5NzI4LDk5ODNdLFs5OTg0LDEwMTc1XSxbMTIyODgsMTIzNTFdLFsxMjM1MiwxMjQ0N10sWzEyNDQ4LDEyNTQzLDEyNzg0LDEyNzk5XSxbMTI1NDQsMTI1OTEsMTI3MDQsMTI3MzVdLFsxMjU5MiwxMjY4N10sWzQzMDcyLDQzMTM1XSxbMTI4MDAsMTMwNTVdLFsxMzA1NiwxMzMxMV0sWzQ0MDMyLDU1MjE1XSxbNTUyOTYsNTczNDNdLFs2Nzg0MCw2Nzg3MV0sWzE5OTY4LDQwOTU5LDExOTA0LDEyMDMxLDEyMDMyLDEyMjU1LDEyMjcyLDEyMjg3LDEzMzEyLDE5OTAzLDEzMTA3MiwxNzM3OTEsMTI2ODgsMTI3MDNdLFs1NzM0NCw2Mzc0M10sWzEyNzM2LDEyNzgzLDYzNzQ0LDY0MjU1LDE5NDU2MCwxOTUxMDNdLFs2NDI1Niw2NDMzNV0sWzY0MzM2LDY1MDIzXSxbNjUwNTYsNjUwNzFdLFs2NTA0MCw2NTA1NV0sWzY1MTA0LDY1MTM1XSxbNjUxMzYsNjUyNzldLFs2NTI4MCw2NTUxOV0sWzY1NTIwLDY1NTM1XSxbMzg0MCw0MDk1XSxbMTc5MiwxODcxXSxbMTkyMCwxOTgzXSxbMzQ1NiwzNTgzXSxbNDA5Niw0MjU1XSxbNDYwOCw0OTkxLDQ5OTIsNTAyMywxMTY0OCwxMTc0M10sWzUwMjQsNTExOV0sWzUxMjAsNTc1OV0sWzU3NjAsNTc5MV0sWzU3OTIsNTg4N10sWzYwMTYsNjE0M10sWzYxNDQsNjMxOV0sWzEwMjQwLDEwNDk1XSxbNDA5NjAsNDIxMjddLFs1ODg4LDU5MTksNTkyMCw1OTUxLDU5NTIsNTk4Myw1OTg0LDYwMTVdLFs2NjMwNCw2NjM1MV0sWzY2MzUyLDY2MzgzXSxbNjY1NjAsNjY2MzldLFsxMTg3ODQsMTE5MDM5LDExOTA0MCwxMTkyOTUsMTE5Mjk2LDExOTM3NV0sWzExOTgwOCwxMjA4MzFdLFsxMDQ0NDgwLDEwNDg1NzNdLFs2NTAyNCw2NTAzOSw5MTc3NjAsOTE3OTk5XSxbOTE3NTA0LDkxNzYzMV0sWzY0MDAsNjQ3OV0sWzY0ODAsNjUyN10sWzY1MjgsNjYyM10sWzY2NTYsNjY4N10sWzExMjY0LDExMzU5XSxbMTE1NjgsMTE2NDddLFsxOTkwNCwxOTk2N10sWzQzMDA4LDQzMDU1XSxbNjU1MzYsNjU2NjMsNjU2NjQsNjU3OTEsNjU3OTIsNjU4NTVdLFs2NTg1Niw2NTkzNV0sWzY2NDMyLDY2NDYzXSxbNjY0NjQsNjY1MjddLFs2NjY0MCw2NjY4N10sWzY2Njg4LDY2NzM1XSxbNjc1ODQsNjc2NDddLFs2ODA5Niw2ODE5MV0sWzExOTU1MiwxMTk2NDddLFs3MzcyOCw3NDc1MSw3NDc1Miw3NDg3OV0sWzExOTY0OCwxMTk2NzldLFs3MDQwLDcxMDNdLFs3MTY4LDcyNDddLFs3MjQ4LDcyOTVdLFs0MzEzNiw0MzIzMV0sWzQzMjY0LDQzMzExXSxbNDMzMTIsNDMzNTldLFs0MzUyMCw0MzYxNV0sWzY1OTM2LDY1OTk5XSxbNjZlMyw2NjA0N10sWzY2MjA4LDY2MjcxLDY2MTc2LDY2MjA3LDY3ODcyLDY3OTAzXSxbMTI3MDI0LDEyNzEzNSwxMjY5NzYsMTI3MDIzXV07ZnVuY3Rpb24gZ2V0VW5pY29kZVJhbmdlRm9yKGUsdD0tMSl7aWYoLTEhPT10KXtjb25zdCBpPWtpW3RdO2ZvcihsZXQgYT0wLHI9aS5sZW5ndGg7YTxyO2ErPTIpaWYoZT49aVthXSYmZTw9aVthKzFdKXJldHVybiB0fWZvcihsZXQgdD0wLGk9a2kubGVuZ3RoO3Q8aTt0Kyspe2NvbnN0IGk9a2lbdF07Zm9yKGxldCBhPTAscj1pLmxlbmd0aDthPHI7YSs9MilpZihlPj1pW2FdJiZlPD1pW2ErMV0pcmV0dXJuIHR9cmV0dXJuLTF9Y29uc3QgUmk9bmV3IFJlZ0V4cCgiXihcXHMpfChcXHB7TW59KXwoXFxwe0NmfSkkIiwidSIpLE5pPW5ldyBNYXA7Y29uc3QgR2k9ITAsTWk9MSx4aT0yLEhpPTQsSmk9MzIsdmk9WyIubm90ZGVmIiwiLm51bGwiLCJub25tYXJraW5ncmV0dXJuIiwic3BhY2UiLCJleGNsYW0iLCJxdW90ZWRibCIsIm51bWJlcnNpZ24iLCJkb2xsYXIiLCJwZXJjZW50IiwiYW1wZXJzYW5kIiwicXVvdGVzaW5nbGUiLCJwYXJlbmxlZnQiLCJwYXJlbnJpZ2h0IiwiYXN0ZXJpc2siLCJwbHVzIiwiY29tbWEiLCJoeXBoZW4iLCJwZXJpb2QiLCJzbGFzaCIsInplcm8iLCJvbmUiLCJ0d28iLCJ0aHJlZSIsImZvdXIiLCJmaXZlIiwic2l4Iiwic2V2ZW4iLCJlaWdodCIsIm5pbmUiLCJjb2xvbiIsInNlbWljb2xvbiIsImxlc3MiLCJlcXVhbCIsImdyZWF0ZXIiLCJxdWVzdGlvbiIsImF0IiwiQSIsIkIiLCJDIiwiRCIsIkUiLCJGIiwiRyIsIkgiLCJJIiwiSiIsIksiLCJMIiwiTSIsIk4iLCJPIiwiUCIsIlEiLCJSIiwiUyIsIlQiLCJVIiwiViIsIlciLCJYIiwiWSIsIloiLCJicmFja2V0bGVmdCIsImJhY2tzbGFzaCIsImJyYWNrZXRyaWdodCIsImFzY2lpY2lyY3VtIiwidW5kZXJzY29yZSIsImdyYXZlIiwiYSIsImIiLCJjIiwiZCIsImUiLCJmIiwiZyIsImgiLCJpIiwiaiIsImsiLCJsIiwibSIsIm4iLCJvIiwicCIsInEiLCJyIiwicyIsInQiLCJ1IiwidiIsInciLCJ4IiwieSIsInoiLCJicmFjZWxlZnQiLCJiYXIiLCJicmFjZXJpZ2h0IiwiYXNjaWl0aWxkZSIsIkFkaWVyZXNpcyIsIkFyaW5nIiwiQ2NlZGlsbGEiLCJFYWN1dGUiLCJOdGlsZGUiLCJPZGllcmVzaXMiLCJVZGllcmVzaXMiLCJhYWN1dGUiLCJhZ3JhdmUiLCJhY2lyY3VtZmxleCIsImFkaWVyZXNpcyIsImF0aWxkZSIsImFyaW5nIiwiY2NlZGlsbGEiLCJlYWN1dGUiLCJlZ3JhdmUiLCJlY2lyY3VtZmxleCIsImVkaWVyZXNpcyIsImlhY3V0ZSIsImlncmF2ZSIsImljaXJjdW1mbGV4IiwiaWRpZXJlc2lzIiwibnRpbGRlIiwib2FjdXRlIiwib2dyYXZlIiwib2NpcmN1bWZsZXgiLCJvZGllcmVzaXMiLCJvdGlsZGUiLCJ1YWN1dGUiLCJ1Z3JhdmUiLCJ1Y2lyY3VtZmxleCIsInVkaWVyZXNpcyIsImRhZ2dlciIsImRlZ3JlZSIsImNlbnQiLCJzdGVybGluZyIsInNlY3Rpb24iLCJidWxsZXQiLCJwYXJhZ3JhcGgiLCJnZXJtYW5kYmxzIiwicmVnaXN0ZXJlZCIsImNvcHlyaWdodCIsInRyYWRlbWFyayIsImFjdXRlIiwiZGllcmVzaXMiLCJub3RlcXVhbCIsIkFFIiwiT3NsYXNoIiwiaW5maW5pdHkiLCJwbHVzbWludXMiLCJsZXNzZXF1YWwiLCJncmVhdGVyZXF1YWwiLCJ5ZW4iLCJtdSIsInBhcnRpYWxkaWZmIiwic3VtbWF0aW9uIiwicHJvZHVjdCIsInBpIiwiaW50ZWdyYWwiLCJvcmRmZW1pbmluZSIsIm9yZG1hc2N1bGluZSIsIk9tZWdhIiwiYWUiLCJvc2xhc2giLCJxdWVzdGlvbmRvd24iLCJleGNsYW1kb3duIiwibG9naWNhbG5vdCIsInJhZGljYWwiLCJmbG9yaW4iLCJhcHByb3hlcXVhbCIsIkRlbHRhIiwiZ3VpbGxlbW90bGVmdCIsImd1aWxsZW1vdHJpZ2h0IiwiZWxsaXBzaXMiLCJub25icmVha2luZ3NwYWNlIiwiQWdyYXZlIiwiQXRpbGRlIiwiT3RpbGRlIiwiT0UiLCJvZSIsImVuZGFzaCIsImVtZGFzaCIsInF1b3RlZGJsbGVmdCIsInF1b3RlZGJscmlnaHQiLCJxdW90ZWxlZnQiLCJxdW90ZXJpZ2h0IiwiZGl2aWRlIiwibG96ZW5nZSIsInlkaWVyZXNpcyIsIllkaWVyZXNpcyIsImZyYWN0aW9uIiwiY3VycmVuY3kiLCJndWlsc2luZ2xsZWZ0IiwiZ3VpbHNpbmdscmlnaHQiLCJmaSIsImZsIiwiZGFnZ2VyZGJsIiwicGVyaW9kY2VudGVyZWQiLCJxdW90ZXNpbmdsYmFzZSIsInF1b3RlZGJsYmFzZSIsInBlcnRob3VzYW5kIiwiQWNpcmN1bWZsZXgiLCJFY2lyY3VtZmxleCIsIkFhY3V0ZSIsIkVkaWVyZXNpcyIsIkVncmF2ZSIsIklhY3V0ZSIsIkljaXJjdW1mbGV4IiwiSWRpZXJlc2lzIiwiSWdyYXZlIiwiT2FjdXRlIiwiT2NpcmN1bWZsZXgiLCJhcHBsZSIsIk9ncmF2ZSIsIlVhY3V0ZSIsIlVjaXJjdW1mbGV4IiwiVWdyYXZlIiwiZG90bGVzc2kiLCJjaXJjdW1mbGV4IiwidGlsZGUiLCJtYWNyb24iLCJicmV2ZSIsImRvdGFjY2VudCIsInJpbmciLCJjZWRpbGxhIiwiaHVuZ2FydW1sYXV0Iiwib2dvbmVrIiwiY2Fyb24iLCJMc2xhc2giLCJsc2xhc2giLCJTY2Fyb24iLCJzY2Fyb24iLCJaY2Fyb24iLCJ6Y2Fyb24iLCJicm9rZW5iYXIiLCJFdGgiLCJldGgiLCJZYWN1dGUiLCJ5YWN1dGUiLCJUaG9ybiIsInRob3JuIiwibWludXMiLCJtdWx0aXBseSIsIm9uZXN1cGVyaW9yIiwidHdvc3VwZXJpb3IiLCJ0aHJlZXN1cGVyaW9yIiwib25laGFsZiIsIm9uZXF1YXJ0ZXIiLCJ0aHJlZXF1YXJ0ZXJzIiwiZnJhbmMiLCJHYnJldmUiLCJnYnJldmUiLCJJZG90YWNjZW50IiwiU2NlZGlsbGEiLCJzY2VkaWxsYSIsIkNhY3V0ZSIsImNhY3V0ZSIsIkNjYXJvbiIsImNjYXJvbiIsImRjcm9hdCJdO2Z1bmN0aW9uIHJlY292ZXJHbHlwaE5hbWUoZSx0KXtpZih2b2lkIDAhPT10W2VdKXJldHVybiBlO2NvbnN0IGk9Z2V0VW5pY29kZUZvckdseXBoKGUsdCk7aWYoLTEhPT1pKWZvcihjb25zdCBlIGluIHQpaWYodFtlXT09PWkpcmV0dXJuIGU7aW5mbygiVW5hYmxlIHRvIHJlY292ZXIgYSBzdGFuZGFyZCBnbHlwaCBuYW1lIGZvcjogIitlKTtyZXR1cm4gZX1mdW5jdGlvbiB0eXBlMUZvbnRHbHlwaE1hcHBpbmcoZSx0LGkpe2NvbnN0IGE9T2JqZWN0LmNyZWF0ZShudWxsKTtsZXQgcixzLG47Y29uc3Qgbz0hIShlLmZsYWdzJkhpKTtpZihlLmlzSW50ZXJuYWxGb250KXtuPXQ7Zm9yKHM9MDtzPG4ubGVuZ3RoO3MrKyl7cj1pLmluZGV4T2YobltzXSk7YVtzXT1yPj0wP3I6MH19ZWxzZSBpZihlLmJhc2VFbmNvZGluZ05hbWUpe249Z2V0RW5jb2RpbmcoZS5iYXNlRW5jb2RpbmdOYW1lKTtmb3Iocz0wO3M8bi5sZW5ndGg7cysrKXtyPWkuaW5kZXhPZihuW3NdKTthW3NdPXI+PTA/cjowfX1lbHNlIGlmKG8pZm9yKHMgaW4gdClhW3NdPXRbc107ZWxzZXtuPUJpO2ZvcihzPTA7czxuLmxlbmd0aDtzKyspe3I9aS5pbmRleE9mKG5bc10pO2Fbc109cj49MD9yOjB9fWNvbnN0IGc9ZS5kaWZmZXJlbmNlcztsZXQgYztpZihnKWZvcihzIGluIGcpe2NvbnN0IGU9Z1tzXTtyPWkuaW5kZXhPZihlKTtpZigtMT09PXIpe2N8fChjPURpKCkpO2NvbnN0IHQ9cmVjb3ZlckdseXBoTmFtZShlLGMpO3QhPT1lJiYocj1pLmluZGV4T2YodCkpfWFbc109cj49MD9yOjB9cmV0dXJuIGF9ZnVuY3Rpb24gbm9ybWFsaXplRm9udE5hbWUoZSl7cmV0dXJuIGUucmVwbGFjZUFsbCgvWyxfXS9nLCItIikucmVwbGFjZUFsbCgvXHMvZywiIil9Y29uc3QgWWk9Z2V0TG9va3VwVGFibGVGYWN0b3J5KChlPT57ZVs4MjExXT02NTA3NDtlWzgyMTJdPTY1MDczO2VbODIyOV09NjUwNzI7ZVs4MjMwXT02NTA0OTtlWzEyMjg5XT02NTA0MTtlWzEyMjkwXT02NTA0MjtlWzEyMjk2XT02NTA4NztlWzEyMjk3XT02NTA4ODtlWzEyMjk4XT02NTA4NTtlWzEyMjk5XT02NTA4NjtlWzEyMzAwXT02NTA4OTtlWzEyMzAxXT02NTA5MDtlWzEyMzAyXT02NTA5MTtlWzEyMzAzXT02NTA5MjtlWzEyMzA0XT02NTA4MztlWzEyMzA1XT02NTA4NDtlWzEyMzA4XT02NTA4MTtlWzEyMzA5XT02NTA4MjtlWzEyMzEwXT02NTA0NztlWzEyMzExXT02NTA0ODtlWzY1MTAzXT02NTA3NjtlWzY1MjgxXT02NTA0NTtlWzY1Mjg4XT02NTA3NztlWzY1Mjg5XT02NTA3ODtlWzY1MjkyXT02NTA0MDtlWzY1MzA2XT02NTA0MztlWzY1MzA3XT02NTA0NDtlWzY1MzExXT02NTA0NjtlWzY1MzM5XT02NTA5NTtlWzY1MzQxXT02NTA5NjtlWzY1MzQzXT02NTA3NTtlWzY1MzcxXT02NTA3OTtlWzY1MzczXT02NTA4MH0pKSxLaT1nZXRMb29rdXBUYWJsZUZhY3RvcnkoKGZ1bmN0aW9uKGUpe2VbIlRpbWVzLVJvbWFuIl09IlRpbWVzLVJvbWFuIjtlLkhlbHZldGljYT0iSGVsdmV0aWNhIjtlLkNvdXJpZXI9IkNvdXJpZXIiO2UuU3ltYm9sPSJTeW1ib2wiO2VbIlRpbWVzLUJvbGQiXT0iVGltZXMtQm9sZCI7ZVsiSGVsdmV0aWNhLUJvbGQiXT0iSGVsdmV0aWNhLUJvbGQiO2VbIkNvdXJpZXItQm9sZCJdPSJDb3VyaWVyLUJvbGQiO2UuWmFwZkRpbmdiYXRzPSJaYXBmRGluZ2JhdHMiO2VbIlRpbWVzLUl0YWxpYyJdPSJUaW1lcy1JdGFsaWMiO2VbIkhlbHZldGljYS1PYmxpcXVlIl09IkhlbHZldGljYS1PYmxpcXVlIjtlWyJDb3VyaWVyLU9ibGlxdWUiXT0iQ291cmllci1PYmxpcXVlIjtlWyJUaW1lcy1Cb2xkSXRhbGljIl09IlRpbWVzLUJvbGRJdGFsaWMiO2VbIkhlbHZldGljYS1Cb2xkT2JsaXF1ZSJdPSJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiO2VbIkNvdXJpZXItQm9sZE9ibGlxdWUiXT0iQ291cmllci1Cb2xkT2JsaXF1ZSI7ZS5BcmlhbE5hcnJvdz0iSGVsdmV0aWNhIjtlWyJBcmlhbE5hcnJvdy1Cb2xkIl09IkhlbHZldGljYS1Cb2xkIjtlWyJBcmlhbE5hcnJvdy1Cb2xkSXRhbGljIl09IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSI7ZVsiQXJpYWxOYXJyb3ctSXRhbGljIl09IkhlbHZldGljYS1PYmxpcXVlIjtlLkFyaWFsQmxhY2s9IkhlbHZldGljYSI7ZVsiQXJpYWxCbGFjay1Cb2xkIl09IkhlbHZldGljYS1Cb2xkIjtlWyJBcmlhbEJsYWNrLUJvbGRJdGFsaWMiXT0iSGVsdmV0aWNhLUJvbGRPYmxpcXVlIjtlWyJBcmlhbEJsYWNrLUl0YWxpYyJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSI7ZVsiQXJpYWwtQmxhY2siXT0iSGVsdmV0aWNhIjtlWyJBcmlhbC1CbGFjay1Cb2xkIl09IkhlbHZldGljYS1Cb2xkIjtlWyJBcmlhbC1CbGFjay1Cb2xkSXRhbGljIl09IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSI7ZVsiQXJpYWwtQmxhY2stSXRhbGljIl09IkhlbHZldGljYS1PYmxpcXVlIjtlLkFyaWFsPSJIZWx2ZXRpY2EiO2VbIkFyaWFsLUJvbGQiXT0iSGVsdmV0aWNhLUJvbGQiO2VbIkFyaWFsLUJvbGRJdGFsaWMiXT0iSGVsdmV0aWNhLUJvbGRPYmxpcXVlIjtlWyJBcmlhbC1JdGFsaWMiXT0iSGVsdmV0aWNhLU9ibGlxdWUiO2UuQXJpYWxNVD0iSGVsdmV0aWNhIjtlWyJBcmlhbC1Cb2xkSXRhbGljTVQiXT0iSGVsdmV0aWNhLUJvbGRPYmxpcXVlIjtlWyJBcmlhbC1Cb2xkTVQiXT0iSGVsdmV0aWNhLUJvbGQiO2VbIkFyaWFsLUl0YWxpY01UIl09IkhlbHZldGljYS1PYmxpcXVlIjtlWyJBcmlhbC1Cb2xkSXRhbGljTVQtQm9sZEl0YWxpYyJdPSJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiO2VbIkFyaWFsLUJvbGRNVC1Cb2xkIl09IkhlbHZldGljYS1Cb2xkIjtlWyJBcmlhbC1JdGFsaWNNVC1JdGFsaWMiXT0iSGVsdmV0aWNhLU9ibGlxdWUiO2UuQXJpYWxVbmljb2RlTVM9IkhlbHZldGljYSI7ZVsiQXJpYWxVbmljb2RlTVMtQm9sZCJdPSJIZWx2ZXRpY2EtQm9sZCI7ZVsiQXJpYWxVbmljb2RlTVMtQm9sZEl0YWxpYyJdPSJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiO2VbIkFyaWFsVW5pY29kZU1TLUl0YWxpYyJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSI7ZVsiQ291cmllci1Cb2xkSXRhbGljIl09IkNvdXJpZXItQm9sZE9ibGlxdWUiO2VbIkNvdXJpZXItSXRhbGljIl09IkNvdXJpZXItT2JsaXF1ZSI7ZS5Db3VyaWVyTmV3PSJDb3VyaWVyIjtlWyJDb3VyaWVyTmV3LUJvbGQiXT0iQ291cmllci1Cb2xkIjtlWyJDb3VyaWVyTmV3LUJvbGRJdGFsaWMiXT0iQ291cmllci1Cb2xkT2JsaXF1ZSI7ZVsiQ291cmllck5ldy1JdGFsaWMiXT0iQ291cmllci1PYmxpcXVlIjtlWyJDb3VyaWVyTmV3UFMtQm9sZEl0YWxpY01UIl09IkNvdXJpZXItQm9sZE9ibGlxdWUiO2VbIkNvdXJpZXJOZXdQUy1Cb2xkTVQiXT0iQ291cmllci1Cb2xkIjtlWyJDb3VyaWVyTmV3UFMtSXRhbGljTVQiXT0iQ291cmllci1PYmxpcXVlIjtlLkNvdXJpZXJOZXdQU01UPSJDb3VyaWVyIjtlWyJIZWx2ZXRpY2EtQm9sZEl0YWxpYyJdPSJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiO2VbIkhlbHZldGljYS1JdGFsaWMiXT0iSGVsdmV0aWNhLU9ibGlxdWUiO2VbIkhlbHZldGljYUxUU3RkLUJvbGQiXT0iSGVsdmV0aWNhLUJvbGQiO2VbIlN5bWJvbC1Cb2xkIl09IlN5bWJvbCI7ZVsiU3ltYm9sLUJvbGRJdGFsaWMiXT0iU3ltYm9sIjtlWyJTeW1ib2wtSXRhbGljIl09IlN5bWJvbCI7ZS5UaW1lc05ld1JvbWFuPSJUaW1lcy1Sb21hbiI7ZVsiVGltZXNOZXdSb21hbi1Cb2xkIl09IlRpbWVzLUJvbGQiO2VbIlRpbWVzTmV3Um9tYW4tQm9sZEl0YWxpYyJdPSJUaW1lcy1Cb2xkSXRhbGljIjtlWyJUaW1lc05ld1JvbWFuLUl0YWxpYyJdPSJUaW1lcy1JdGFsaWMiO2UuVGltZXNOZXdSb21hblBTPSJUaW1lcy1Sb21hbiI7ZVsiVGltZXNOZXdSb21hblBTLUJvbGQiXT0iVGltZXMtQm9sZCI7ZVsiVGltZXNOZXdSb21hblBTLUJvbGRJdGFsaWMiXT0iVGltZXMtQm9sZEl0YWxpYyI7ZVsiVGltZXNOZXdSb21hblBTLUJvbGRJdGFsaWNNVCJdPSJUaW1lcy1Cb2xkSXRhbGljIjtlWyJUaW1lc05ld1JvbWFuUFMtQm9sZE1UIl09IlRpbWVzLUJvbGQiO2VbIlRpbWVzTmV3Um9tYW5QUy1JdGFsaWMiXT0iVGltZXMtSXRhbGljIjtlWyJUaW1lc05ld1JvbWFuUFMtSXRhbGljTVQiXT0iVGltZXMtSXRhbGljIjtlLlRpbWVzTmV3Um9tYW5QU01UPSJUaW1lcy1Sb21hbiI7ZVsiVGltZXNOZXdSb21hblBTTVQtQm9sZCJdPSJUaW1lcy1Cb2xkIjtlWyJUaW1lc05ld1JvbWFuUFNNVC1Cb2xkSXRhbGljIl09IlRpbWVzLUJvbGRJdGFsaWMiO2VbIlRpbWVzTmV3Um9tYW5QU01ULUl0YWxpYyJdPSJUaW1lcy1JdGFsaWMifSkpLFRpPWdldExvb2t1cFRhYmxlRmFjdG9yeSgoZnVuY3Rpb24oZSl7ZS5Db3VyaWVyPSJGb3hpdEZpeGVkLnBmYiI7ZVsiQ291cmllci1Cb2xkIl09IkZveGl0Rml4ZWRCb2xkLnBmYiI7ZVsiQ291cmllci1Cb2xkT2JsaXF1ZSJdPSJGb3hpdEZpeGVkQm9sZEl0YWxpYy5wZmIiO2VbIkNvdXJpZXItT2JsaXF1ZSJdPSJGb3hpdEZpeGVkSXRhbGljLnBmYiI7ZS5IZWx2ZXRpY2E9IkxpYmVyYXRpb25TYW5zLVJlZ3VsYXIudHRmIjtlWyJIZWx2ZXRpY2EtQm9sZCJdPSJMaWJlcmF0aW9uU2Fucy1Cb2xkLnR0ZiI7ZVsiSGVsdmV0aWNhLUJvbGRPYmxpcXVlIl09IkxpYmVyYXRpb25TYW5zLUJvbGRJdGFsaWMudHRmIjtlWyJIZWx2ZXRpY2EtT2JsaXF1ZSJdPSJMaWJlcmF0aW9uU2Fucy1JdGFsaWMudHRmIjtlWyJUaW1lcy1Sb21hbiJdPSJGb3hpdFNlcmlmLnBmYiI7ZVsiVGltZXMtQm9sZCJdPSJGb3hpdFNlcmlmQm9sZC5wZmIiO2VbIlRpbWVzLUJvbGRJdGFsaWMiXT0iRm94aXRTZXJpZkJvbGRJdGFsaWMucGZiIjtlWyJUaW1lcy1JdGFsaWMiXT0iRm94aXRTZXJpZkl0YWxpYy5wZmIiO2UuU3ltYm9sPSJGb3hpdFN5bWJvbC5wZmIiO2UuWmFwZkRpbmdiYXRzPSJGb3hpdERpbmdiYXRzLnBmYiI7ZVsiTGliZXJhdGlvblNhbnMtUmVndWxhciJdPSJMaWJlcmF0aW9uU2Fucy1SZWd1bGFyLnR0ZiI7ZVsiTGliZXJhdGlvblNhbnMtQm9sZCJdPSJMaWJlcmF0aW9uU2Fucy1Cb2xkLnR0ZiI7ZVsiTGliZXJhdGlvblNhbnMtSXRhbGljIl09IkxpYmVyYXRpb25TYW5zLUl0YWxpYy50dGYiO2VbIkxpYmVyYXRpb25TYW5zLUJvbGRJdGFsaWMiXT0iTGliZXJhdGlvblNhbnMtQm9sZEl0YWxpYy50dGYifSkpLHFpPWdldExvb2t1cFRhYmxlRmFjdG9yeSgoZnVuY3Rpb24oZSl7ZS5DYWxpYnJpPSJIZWx2ZXRpY2EiO2VbIkNhbGlicmktQm9sZCJdPSJIZWx2ZXRpY2EtQm9sZCI7ZVsiQ2FsaWJyaS1Cb2xkSXRhbGljIl09IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSI7ZVsiQ2FsaWJyaS1JdGFsaWMiXT0iSGVsdmV0aWNhLU9ibGlxdWUiO2UuQ2VudHVyeUdvdGhpYz0iSGVsdmV0aWNhIjtlWyJDZW50dXJ5R290aGljLUJvbGQiXT0iSGVsdmV0aWNhLUJvbGQiO2VbIkNlbnR1cnlHb3RoaWMtQm9sZEl0YWxpYyJdPSJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiO2VbIkNlbnR1cnlHb3RoaWMtSXRhbGljIl09IkhlbHZldGljYS1PYmxpcXVlIjtlLkNvbWljU2Fuc01TPSJDb21pYyBTYW5zIE1TIjtlWyJDb21pY1NhbnNNUy1Cb2xkIl09IkNvbWljIFNhbnMgTVMtQm9sZCI7ZVsiQ29taWNTYW5zTVMtQm9sZEl0YWxpYyJdPSJDb21pYyBTYW5zIE1TLUJvbGRJdGFsaWMiO2VbIkNvbWljU2Fuc01TLUl0YWxpYyJdPSJDb21pYyBTYW5zIE1TLUl0YWxpYyI7ZS5HaWxsU2Fuc01UPSJIZWx2ZXRpY2EiO2VbIkdpbGxTYW5zTVQtQm9sZCJdPSJIZWx2ZXRpY2EtQm9sZCI7ZVsiR2lsbFNhbnNNVC1Cb2xkSXRhbGljIl09IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSI7ZVsiR2lsbFNhbnNNVC1JdGFsaWMiXT0iSGVsdmV0aWNhLU9ibGlxdWUiO2UuSW1wYWN0PSJIZWx2ZXRpY2EiO2VbIkl0Y1N5bWJvbC1Cb2xkIl09IkhlbHZldGljYS1Cb2xkIjtlWyJJdGNTeW1ib2wtQm9sZEl0YWxpYyJdPSJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiO2VbIkl0Y1N5bWJvbC1Cb29rIl09IkhlbHZldGljYSI7ZVsiSXRjU3ltYm9sLUJvb2tJdGFsaWMiXT0iSGVsdmV0aWNhLU9ibGlxdWUiO2VbIkl0Y1N5bWJvbC1NZWRpdW0iXT0iSGVsdmV0aWNhIjtlWyJJdGNTeW1ib2wtTWVkaXVtSXRhbGljIl09IkhlbHZldGljYS1PYmxpcXVlIjtlLkx1Y2lkYUNvbnNvbGU9IkNvdXJpZXIiO2VbIkx1Y2lkYUNvbnNvbGUtQm9sZCJdPSJDb3VyaWVyLUJvbGQiO2VbIkx1Y2lkYUNvbnNvbGUtQm9sZEl0YWxpYyJdPSJDb3VyaWVyLUJvbGRPYmxpcXVlIjtlWyJMdWNpZGFDb25zb2xlLUl0YWxpYyJdPSJDb3VyaWVyLU9ibGlxdWUiO2VbIkx1Y2lkYVNhbnMtRGVtaSJdPSJIZWx2ZXRpY2EtQm9sZCI7ZVsiTVMtR290aGljIl09Ik1TIEdvdGhpYyI7ZVsiTVMtR290aGljLUJvbGQiXT0iTVMgR290aGljLUJvbGQiO2VbIk1TLUdvdGhpYy1Cb2xkSXRhbGljIl09Ik1TIEdvdGhpYy1Cb2xkSXRhbGljIjtlWyJNUy1Hb3RoaWMtSXRhbGljIl09Ik1TIEdvdGhpYy1JdGFsaWMiO2VbIk1TLU1pbmNobyJdPSJNUyBNaW5jaG8iO2VbIk1TLU1pbmNoby1Cb2xkIl09Ik1TIE1pbmNoby1Cb2xkIjtlWyJNUy1NaW5jaG8tQm9sZEl0YWxpYyJdPSJNUyBNaW5jaG8tQm9sZEl0YWxpYyI7ZVsiTVMtTWluY2hvLUl0YWxpYyJdPSJNUyBNaW5jaG8tSXRhbGljIjtlWyJNUy1QR290aGljIl09Ik1TIFBHb3RoaWMiO2VbIk1TLVBHb3RoaWMtQm9sZCJdPSJNUyBQR290aGljLUJvbGQiO2VbIk1TLVBHb3RoaWMtQm9sZEl0YWxpYyJdPSJNUyBQR290aGljLUJvbGRJdGFsaWMiO2VbIk1TLVBHb3RoaWMtSXRhbGljIl09Ik1TIFBHb3RoaWMtSXRhbGljIjtlWyJNUy1QTWluY2hvIl09Ik1TIFBNaW5jaG8iO2VbIk1TLVBNaW5jaG8tQm9sZCJdPSJNUyBQTWluY2hvLUJvbGQiO2VbIk1TLVBNaW5jaG8tQm9sZEl0YWxpYyJdPSJNUyBQTWluY2hvLUJvbGRJdGFsaWMiO2VbIk1TLVBNaW5jaG8tSXRhbGljIl09Ik1TIFBNaW5jaG8tSXRhbGljIjtlLk51cHRpYWxTY3JpcHQ9IlRpbWVzLUl0YWxpYyI7ZS5TZWdvZVVJU3ltYm9sPSJIZWx2ZXRpY2EifSkpLE9pPWdldExvb2t1cFRhYmxlRmFjdG9yeSgoZnVuY3Rpb24oZSl7ZVsiQWRvYmUgSmVuc29uIl09ITA7ZVsiQWRvYmUgVGV4dCJdPSEwO2UuQWxiZXJ0dXM9ITA7ZS5BbGR1cz0hMDtlLkFsZXhhbmRyaWE9ITA7ZS5BbGdlcmlhbj0hMDtlWyJBbWVyaWNhbiBUeXBld3JpdGVyIl09ITA7ZS5BbnRpcXVhPSEwO2UuQXBleD0hMDtlLkFybm89ITA7ZS5Bc3Rlcj0hMDtlLkF1cm9yYT0hMDtlLkJhc2tlcnZpbGxlPSEwO2UuQmVsbD0hMDtlLkJlbWJvPSEwO2VbIkJlbWJvIFNjaG9vbGJvb2siXT0hMDtlLkJlbmd1aWF0PSEwO2VbIkJlcmtlbGV5IE9sZCBTdHlsZSJdPSEwO2VbIkJlcm5oYXJkIE1vZGVybiJdPSEwO2VbIkJlcnRob2xkIENpdHkiXT0hMDtlLkJvZG9uaT0hMDtlWyJCYXVlciBCb2RvbmkiXT0hMDtlWyJCb29rIEFudGlxdWEiXT0hMDtlLkJvb2ttYW49ITA7ZVsiQm9yZGVhdXggUm9tYW4iXT0hMDtlWyJDYWxpZm9ybmlhbiBGQiJdPSEwO2UuQ2FsaXN0bz0hMDtlLkNhbHZlcnQ9ITA7ZS5DYXBpdGFscz0hMDtlLkNhbWJyaWE9ITA7ZS5DYXJ0aWVyPSEwO2UuQ2FzbG9uPSEwO2UuQ2F0dWxsPSEwO2UuQ2VudGF1cj0hMDtlWyJDZW50dXJ5IE9sZCBTdHlsZSJdPSEwO2VbIkNlbnR1cnkgU2Nob29sYm9vayJdPSEwO2UuQ2hhcGFycmFsPSEwO2VbIkNoYXJpcyBTSUwiXT0hMDtlLkNoZWx0ZW5oYW09ITA7ZVsiQ2hvbGxhIFNsYWIiXT0hMDtlLkNsYXJlbmRvbj0hMDtlLkNsZWFyZmFjZT0hMDtlLkNvY2hpbj0hMDtlLkNvbG9ubmE9ITA7ZVsiQ29tcHV0ZXIgTW9kZXJuIl09ITA7ZVsiQ29uY3JldGUgUm9tYW4iXT0hMDtlLkNvbnN0YW50aWE9ITA7ZVsiQ29vcGVyIEJsYWNrIl09ITA7ZS5Db3JvbmE9ITA7ZS5FY290eXBlPSEwO2UuRWd5cHRpZW5uZT0hMDtlLkVsZXBoYW50PSEwO2UuRXhjZWxzaW9yPSEwO2UuRmFpcmZpZWxkPSEwO2VbIkZGIFNjYWxhIl09ITA7ZS5Gb2xrYXJkPSEwO2UuRm9vdGxpZ2h0PSEwO2UuRnJlZVNlcmlmPSEwO2VbIkZyaXogUXVhZHJhdGEiXT0hMDtlLkdhcmFtb25kPSEwO2UuR2VudGl1bT0hMDtlLkdlb3JnaWE9ITA7ZS5HbG91Y2VzdGVyPSEwO2VbIkdvdWR5IE9sZCBTdHlsZSJdPSEwO2VbIkdvdWR5IFNjaG9vbGJvb2siXT0hMDtlWyJHb3VkeSBQcm8gRm9udCJdPSEwO2UuR3Jhbmpvbj0hMDtlWyJHdWFyZGlhbiBFZ3lwdGlhbiJdPSEwO2UuSGVhdGhlcj0hMDtlLkhlcmN1bGVzPSEwO2VbIkhpZ2ggVG93ZXIgVGV4dCJdPSEwO2UuSGlyb3NoaWdlPSEwO2VbIkhvZWZsZXIgVGV4dCJdPSEwO2VbIkh1bWFuYSBTZXJpZiJdPSEwO2UuSW1wcmludD0hMDtlWyJJb25pYyBOby4gNSJdPSEwO2UuSmFuc29uPSEwO2UuSm9hbm5hPSEwO2UuS29yaW5uYT0hMDtlLkxleGljb249ITA7ZS5MaWJlcmF0aW9uU2VyaWY9ITA7ZVsiTGliZXJhdGlvbiBTZXJpZiJdPSEwO2VbIkxpbnV4IExpYmVydGluZSJdPSEwO2UuTGl0ZXJhdHVybmF5YT0hMDtlLkx1Y2lkYT0hMDtlWyJMdWNpZGEgQnJpZ2h0Il09ITA7ZS5NZWxpb3I9ITA7ZS5NZW1waGlzPSEwO2UuTWlsbGVyPSEwO2UuTWluaW9uPSEwO2UuTW9kZXJuPSEwO2VbIk1vbmEgTGlzYSJdPSEwO2VbIk1ycyBFYXZlcyJdPSEwO2VbIk1TIFNlcmlmIl09ITA7ZVsiTXVzZW8gU2xhYiJdPSEwO2VbIk5ldyBZb3JrIl09ITA7ZVsiTmltYnVzIFJvbWFuIl09ITA7ZVsiTlBTIFJhd2xpbnNvbiBSb2Fkd2F5Il09ITA7ZS5OdXB0aWFsU2NyaXB0PSEwO2UuUGFsYXRpbm89ITA7ZS5QZXJwZXR1YT0hMDtlLlBsYW50aW49ITA7ZVsiUGxhbnRpbiBTY2hvb2xib29rIl09ITA7ZS5QbGF5YmlsbD0hMDtlWyJQb29yIFJpY2hhcmQiXT0hMDtlWyJSYXdsaW5zb24gUm9hZHdheSJdPSEwO2UuUmVuYXVsdD0hMDtlLlJlcXVpZW09ITA7ZS5Sb2Nrd2VsbD0hMDtlLlJvbWFuPSEwO2VbIlJvdGlzIFNlcmlmIl09ITA7ZS5TYWJvbj0hMDtlLlNjYWxhPSEwO2UuU2VhZ3VsbD0hMDtlLlNpc3RpbmE9ITA7ZS5Tb3V2ZW5pcj0hMDtlLlNUSVg9ITA7ZVsiU3RvbmUgSW5mb3JtYWwiXT0hMDtlWyJTdG9uZSBTZXJpZiJdPSEwO2UuU3lsZmFlbj0hMDtlLlRpbWVzPSEwO2UuVHJhamFuPSEwO2VbIlRyaW5pdMOpIl09ITA7ZVsiVHJ1bXAgTWVkaWFldmFsIl09ITA7ZS5VdG9waWE9ITA7ZVsiVmFsZSBUeXBlIl09ITA7ZVsiQml0c3RyZWFtIFZlcmEiXT0hMDtlWyJWZXJhIFNlcmlmIl09ITA7ZS5WZXJzYWlsbGVzPSEwO2UuV2FudGVkPSEwO2UuV2Vpc3M9ITA7ZVsiV2lkZSBMYXRpbiJdPSEwO2UuV2luZHNvcj0hMDtlLlhJVFM9ITB9KSksUGk9Z2V0TG9va3VwVGFibGVGYWN0b3J5KChmdW5jdGlvbihlKXtlLkRpbmdiYXRzPSEwO2UuU3ltYm9sPSEwO2UuWmFwZkRpbmdiYXRzPSEwO2UuV2luZ2RpbmdzPSEwO2VbIldpbmdkaW5ncy1Cb2xkIl09ITA7ZVsiV2luZ2RpbmdzLVJlZ3VsYXIiXT0hMH0pKSxXaT1nZXRMb29rdXBUYWJsZUZhY3RvcnkoKGZ1bmN0aW9uKGUpe2VbMl09MTA7ZVszXT0zMjtlWzRdPTMzO2VbNV09MzQ7ZVs2XT0zNTtlWzddPTM2O2VbOF09Mzc7ZVs5XT0zODtlWzEwXT0zOTtlWzExXT00MDtlWzEyXT00MTtlWzEzXT00MjtlWzE0XT00MztlWzE1XT00NDtlWzE2XT00NTtlWzE3XT00NjtlWzE4XT00NztlWzE5XT00ODtlWzIwXT00OTtlWzIxXT01MDtlWzIyXT01MTtlWzIzXT01MjtlWzI0XT01MztlWzI1XT01NDtlWzI2XT01NTtlWzI3XT01NjtlWzI4XT01NztlWzI5XT01ODtlWzMwXT04OTQ7ZVszMV09NjA7ZVszMl09NjE7ZVszM109NjI7ZVszNF09NjM7ZVszNV09NjQ7ZVszNl09NjU7ZVszN109NjY7ZVszOF09Njc7ZVszOV09Njg7ZVs0MF09Njk7ZVs0MV09NzA7ZVs0Ml09NzE7ZVs0M109NzI7ZVs0NF09NzM7ZVs0NV09NzQ7ZVs0Nl09NzU7ZVs0N109NzY7ZVs0OF09Nzc7ZVs0OV09Nzg7ZVs1MF09Nzk7ZVs1MV09ODA7ZVs1Ml09ODE7ZVs1M109ODI7ZVs1NF09ODM7ZVs1NV09ODQ7ZVs1Nl09ODU7ZVs1N109ODY7ZVs1OF09ODc7ZVs1OV09ODg7ZVs2MF09ODk7ZVs2MV09OTA7ZVs2Ml09OTE7ZVs2M109OTI7ZVs2NF09OTM7ZVs2NV09OTQ7ZVs2Nl09OTU7ZVs2N109OTY7ZVs2OF09OTc7ZVs2OV09OTg7ZVs3MF09OTk7ZVs3MV09MTAwO2VbNzJdPTEwMTtlWzczXT0xMDI7ZVs3NF09MTAzO2VbNzVdPTEwNDtlWzc2XT0xMDU7ZVs3N109MTA2O2VbNzhdPTEwNztlWzc5XT0xMDg7ZVs4MF09MTA5O2VbODFdPTExMDtlWzgyXT0xMTE7ZVs4M109MTEyO2VbODRdPTExMztlWzg1XT0xMTQ7ZVs4Nl09MTE1O2VbODddPTExNjtlWzg4XT0xMTc7ZVs4OV09MTE4O2VbOTBdPTExOTtlWzkxXT0xMjA7ZVs5Ml09MTIxO2VbOTNdPTEyMjtlWzk0XT0xMjM7ZVs5NV09MTI0O2VbOTZdPTEyNTtlWzk3XT0xMjY7ZVs5OF09MTk2O2VbOTldPTE5NztlWzEwMF09MTk5O2VbMTAxXT0yMDE7ZVsxMDJdPTIwOTtlWzEwM109MjE0O2VbMTA0XT0yMjA7ZVsxMDVdPTIyNTtlWzEwNl09MjI0O2VbMTA3XT0yMjY7ZVsxMDhdPTIyODtlWzEwOV09MjI3O2VbMTEwXT0yMjk7ZVsxMTFdPTIzMTtlWzExMl09MjMzO2VbMTEzXT0yMzI7ZVsxMTRdPTIzNDtlWzExNV09MjM1O2VbMTE2XT0yMzc7ZVsxMTddPTIzNjtlWzExOF09MjM4O2VbMTE5XT0yMzk7ZVsxMjBdPTI0MTtlWzEyMV09MjQzO2VbMTIyXT0yNDI7ZVsxMjNdPTI0NDtlWzEyNF09MjQ2O2VbMTI1XT0yNDU7ZVsxMjZdPTI1MDtlWzEyN109MjQ5O2VbMTI4XT0yNTE7ZVsxMjldPTI1MjtlWzEzMF09ODIyNDtlWzEzMV09MTc2O2VbMTMyXT0xNjI7ZVsxMzNdPTE2MztlWzEzNF09MTY3O2VbMTM1XT04MjI2O2VbMTM2XT0xODI7ZVsxMzddPTIyMztlWzEzOF09MTc0O2VbMTM5XT0xNjk7ZVsxNDBdPTg0ODI7ZVsxNDFdPTE4MDtlWzE0Ml09MTY4O2VbMTQzXT04ODAwO2VbMTQ0XT0xOTg7ZVsxNDVdPTIxNjtlWzE0Nl09ODczNDtlWzE0N109MTc3O2VbMTQ4XT04ODA0O2VbMTQ5XT04ODA1O2VbMTUwXT0xNjU7ZVsxNTFdPTE4MTtlWzE1Ml09ODcwNjtlWzE1M109ODcyMTtlWzE1NF09ODcxOTtlWzE1Nl09ODc0NztlWzE1N109MTcwO2VbMTU4XT0xODY7ZVsxNTldPTg0ODY7ZVsxNjBdPTIzMDtlWzE2MV09MjQ4O2VbMTYyXT0xOTE7ZVsxNjNdPTE2MTtlWzE2NF09MTcyO2VbMTY1XT04NzMwO2VbMTY2XT00MDI7ZVsxNjddPTg3NzY7ZVsxNjhdPTg3MTA7ZVsxNjldPTE3MTtlWzE3MF09MTg3O2VbMTcxXT04MjMwO2VbMTc5XT04MjIwO2VbMTgwXT04MjIxO2VbMTgxXT04MjE2O2VbMTgyXT04MjE3O2VbMjAwXT0xOTM7ZVsyMDNdPTIwNTtlWzIwN109MjExO2VbMjEwXT0yMTg7ZVsyMjNdPTcxMTtlWzIyNF09MzIxO2VbMjI1XT0zMjI7ZVsyMjZdPTM1MjtlWzIyN109MzUzO2VbMjI4XT0zODE7ZVsyMjldPTM4MjtlWzIzM109MjIxO2VbMjM0XT0yNTM7ZVsyNTJdPTI2MztlWzI1M109MjY4O2VbMjU0XT0yNjk7ZVsyNThdPTI1ODtlWzI2MF09MjYwO2VbMjYxXT0yNjE7ZVsyNjVdPTI4MDtlWzI2Nl09MjgxO2VbMjY3XT0yODI7ZVsyNjhdPTI4MztlWzI2OV09MzEzO2VbMjc1XT0zMjM7ZVsyNzZdPTMyNDtlWzI3OF09MzI4O2VbMjgzXT0zNDQ7ZVsyODRdPTM0NTtlWzI4NV09MzQ2O2VbMjg2XT0zNDc7ZVsyOTJdPTM2NztlWzI5NV09Mzc3O2VbMjk2XT0zNzg7ZVsyOThdPTM4MDtlWzMwNV09OTYzO2VbMzA2XT05NjQ7ZVszMDddPTk2NjtlWzMwOF09ODIxNTtlWzMwOV09ODI1MjtlWzMxMF09ODMxOTtlWzMxMV09ODM1OTtlWzMxMl09ODU5MjtlWzMxM109ODU5MztlWzMzN109OTU1MjtlWzQ5M109MTAzOTtlWzQ5NF09MTA0MDtlWzY3Ml09MTQ4ODtlWzY3M109MTQ4OTtlWzY3NF09MTQ5MDtlWzY3NV09MTQ5MTtlWzY3Nl09MTQ5MjtlWzY3N109MTQ5MztlWzY3OF09MTQ5NDtlWzY3OV09MTQ5NTtlWzY4MF09MTQ5NjtlWzY4MV09MTQ5NztlWzY4Ml09MTQ5ODtlWzY4M109MTQ5OTtlWzY4NF09MTUwMDtlWzY4NV09MTUwMTtlWzY4Nl09MTUwMjtlWzY4N109MTUwMztlWzY4OF09MTUwNDtlWzY4OV09MTUwNTtlWzY5MF09MTUwNjtlWzY5MV09MTUwNztlWzY5Ml09MTUwODtlWzY5M109MTUwOTtlWzY5NF09MTUxMDtlWzY5NV09MTUxMTtlWzY5Nl09MTUxMjtlWzY5N109MTUxMztlWzY5OF09MTUxNDtlWzcwNV09MTUyNDtlWzcwNl09ODM2MjtlWzcxMF09NjQyODg7ZVs3MTFdPTY0Mjk4O2VbNzU5XT0xNjE3O2VbNzYxXT0xNzc2O2VbNzYzXT0xNzc4O2VbNzc1XT0xNjUyO2VbNzc3XT0xNzY0O2VbNzc4XT0xNzgwO2VbNzc5XT0xNzgxO2VbNzgwXT0xNzgyO2VbNzgyXT03NzE7ZVs3ODNdPTY0NzI2O2VbNzg2XT04MzYzO2VbNzg4XT04NTMyO2VbNzkwXT03Njg7ZVs3OTFdPTc2OTtlWzc5Ml09NzY4O2VbNzk1XT04MDM7ZVs3OTddPTY0MzM2O2VbNzk4XT02NDMzNztlWzc5OV09NjQzNDI7ZVs4MDBdPTY0MzQzO2VbODAxXT02NDM0NDtlWzgwMl09NjQzNDU7ZVs4MDNdPTY0MzYyO2VbODA0XT02NDM2MztlWzgwNV09NjQzNjQ7ZVsyNDI0XT03ODIxO2VbMjQyNV09NzgyMjtlWzI0MjZdPTc4MjM7ZVsyNDI3XT03ODI0O2VbMjQyOF09NzgyNTtlWzI0MjldPTc4MjY7ZVsyNDMwXT03ODI3O2VbMjQzM109NzY4MjtlWzI2NzhdPTgwNDU7ZVsyNjc5XT04MDQ2O2VbMjgzMF09MTU1MjtlWzI4MzhdPTY4NjtlWzI4NDBdPTc1MTtlWzI4NDJdPTc1MztlWzI4NDNdPTc1NDtlWzI4NDRdPTc1NTtlWzI4NDZdPTc1NztlWzI4NTZdPTc2NztlWzI4NTddPTg0ODtlWzI4NThdPTg0OTtlWzI4NjJdPTg1MztlWzI4NjNdPTg1NDtlWzI4NjRdPTg1NTtlWzI4NjVdPTg2MTtlWzI4NjZdPTg2MjtlWzI5MDZdPTc0NjA7ZVsyOTA4XT03NDYyO2VbMjkwOV09NzQ2MztlWzI5MTBdPTc0NjQ7ZVsyOTEyXT03NDY2O2VbMjkxM109NzQ2NztlWzI5MTRdPTc0Njg7ZVsyOTE2XT03NDcwO2VbMjkxN109NzQ3MTtlWzI5MThdPTc0NzI7ZVsyOTIwXT03NDc0O2VbMjkyMV09NzQ3NTtlWzI5MjJdPTc0NzY7ZVsyOTI0XT03NDc4O2VbMjkyNV09NzQ3OTtlWzI5MjZdPTc0ODA7ZVsyOTI4XT03NDgyO2VbMjkyOV09NzQ4MztlWzI5MzBdPTc0ODQ7ZVsyOTMyXT03NDg2O2VbMjkzM109NzQ4NztlWzI5MzRdPTc0ODg7ZVsyOTM2XT03NDkwO2VbMjkzN109NzQ5MTtlWzI5MzhdPTc0OTI7ZVsyOTQwXT03NDk0O2VbMjk0MV09NzQ5NTtlWzI5NDJdPTc0OTY7ZVsyOTQ0XT03NDk4O2VbMjk0Nl09NzUwMDtlWzI5NDhdPTc1MDI7ZVsyOTUwXT03NTA0O2VbMjk1MV09NzUwNTtlWzI5NTJdPTc1MDY7ZVsyOTU0XT03NTA4O2VbMjk1NV09NzUwOTtlWzI5NTZdPTc1MTA7ZVsyOTU4XT03NTEyO2VbMjk1OV09NzUxMztlWzI5NjBdPTc1MTQ7ZVsyOTYyXT03NTE2O2VbMjk2M109NzUxNztlWzI5NjRdPTc1MTg7ZVsyOTY2XT03NTIwO2VbMjk2N109NzUyMTtlWzI5NjhdPTc1MjI7ZVsyOTcwXT03NTI0O2VbMjk3MV09NzUyNTtlWzI5NzJdPTc1MjY7ZVsyOTc0XT03NTI4O2VbMjk3NV09NzUyOTtlWzI5NzZdPTc1MzA7ZVsyOTc4XT0xNTM3O2VbMjk3OV09MTUzODtlWzI5ODBdPTE1Mzk7ZVsyOTgyXT0xNTQ5O2VbMjk4M109MTU1MTtlWzI5ODRdPTE1NTI7ZVsyOTg2XT0xNTU0O2VbMjk4N109MTU1NTtlWzI5ODhdPTE1NTY7ZVsyOTkwXT0xNjIzO2VbMjk5MV09MTYyNDtlWzI5OTVdPTE3NzU7ZVsyOTk5XT0xNzkxO2VbMzAwMl09NjQyOTA7ZVszMDAzXT02NDI5MTtlWzMwMDRdPTY0MjkyO2VbMzAwNl09NjQyOTQ7ZVszMDA3XT02NDI5NTtlWzMwMDhdPTY0Mjk2O2VbMzAxMV09MTkwMDtlWzMwMTRdPTgyMjM7ZVszMDE1XT04MjQ0O2VbMzAxN109NzUzMjtlWzMwMThdPTc1MzM7ZVszMDE5XT03NTM0O2VbMzA3NV09NzU5MDtlWzMwNzZdPTc1OTE7ZVszMDc5XT03NTk0O2VbMzA4MF09NzU5NTtlWzMwODNdPTc1OTg7ZVszMDg0XT03NTk5O2VbMzA4N109NzYwMjtlWzMwODhdPTc2MDM7ZVszMDkxXT03NjA2O2VbMzA5Ml09NzYwNztlWzMwOTVdPTc2MTA7ZVszMDk2XT03NjExO2VbMzA5OV09NzYxNDtlWzMxMDBdPTc2MTU7ZVszMTAzXT03NjE4O2VbMzEwNF09NzYxOTtlWzMxMDddPTgzMzc7ZVszMTA4XT04MzM4O2VbMzExNl09MTg4NDtlWzMxMTldPTE4ODU7ZVszMTIwXT0xODg1O2VbMzEyM109MTg4NjtlWzMxMjRdPTE4ODY7ZVszMTI3XT0xODg3O2VbMzEyOF09MTg4NztlWzMxMzFdPTE4ODg7ZVszMTMyXT0xODg4O2VbMzEzNV09MTg4OTtlWzMxMzZdPTE4ODk7ZVszMTM5XT0xODkwO2VbMzE0MF09MTg5MDtlWzMxNDNdPTE4OTE7ZVszMTQ0XT0xODkxO2VbMzE0N109MTg5MjtlWzMxNDhdPTE4OTI7ZVszMTUzXT01ODA7ZVszMTU0XT01ODE7ZVszMTU3XT01ODQ7ZVszMTU4XT01ODU7ZVszMTYxXT01ODg7ZVszMTYyXT01ODk7ZVszMTY1XT04OTE7ZVszMTY2XT04OTI7ZVszMTY5XT0xMjc0O2VbMzE3MF09MTI3NTtlWzMxNzNdPTEyNzg7ZVszMTc0XT0xMjc5O2VbMzE4MV09NzYyMjtlWzMxODJdPTc2MjM7ZVszMjgyXT0xMTc5OTtlWzMzMTZdPTU3ODtlWzMzNzldPTQyNzg1O2VbMzM5M109MTE1OTtlWzM0MTZdPTgzNzd9KSksamk9Z2V0TG9va3VwVGFibGVGYWN0b3J5KChmdW5jdGlvbihlKXtlWzIyN109MzIyO2VbMjY0XT0yNjE7ZVsyOTFdPTM0Nn0pKSxYaT1nZXRMb29rdXBUYWJsZUZhY3RvcnkoKGZ1bmN0aW9uKGUpe2VbMV09MzI7ZVs0XT02NTtlWzVdPTE5MjtlWzZdPTE5MztlWzldPTE5NjtlWzE3XT02NjtlWzE4XT02NztlWzIxXT0yNjg7ZVsyNF09Njg7ZVsyOF09Njk7ZVsyOV09MjAwO2VbMzBdPTIwMTtlWzMyXT0yODI7ZVszOF09NzA7ZVszOV09NzE7ZVs0NF09NzI7ZVs0N109NzM7ZVs0OF09MjA0O2VbNDldPTIwNTtlWzU4XT03NDtlWzYwXT03NTtlWzYyXT03NjtlWzY4XT03NztlWzY5XT03ODtlWzc1XT03OTtlWzc2XT0yMTA7ZVs4MF09MjE0O2VbODddPTgwO2VbODldPTgxO2VbOTBdPTgyO2VbOTJdPTM0NDtlWzk0XT04MztlWzk3XT0zNTI7ZVsxMDBdPTg0O2VbMTA0XT04NTtlWzEwOV09MjIwO2VbMTE1XT04NjtlWzExNl09ODc7ZVsxMjFdPTg4O2VbMTIyXT04OTtlWzEyNF09MjIxO2VbMTI3XT05MDtlWzEyOV09MzgxO2VbMjU4XT05NztlWzI1OV09MjI0O2VbMjYwXT0yMjU7ZVsyNjNdPTIyODtlWzI2OF09MjYxO2VbMjcxXT05ODtlWzI3Ml09OTk7ZVsyNzNdPTI2MztlWzI3NV09MjY5O2VbMjgyXT0xMDA7ZVsyODZdPTEwMTtlWzI4N109MjMyO2VbMjg4XT0yMzM7ZVsyOTBdPTI4MztlWzI5NV09MjgxO2VbMjk2XT0xMDI7ZVszMzZdPTEwMztlWzM0Nl09MTA0O2VbMzQ5XT0xMDU7ZVszNTBdPTIzNjtlWzM1MV09MjM3O2VbMzYxXT0xMDY7ZVszNjRdPTEwNztlWzM2N109MTA4O2VbMzcxXT0zMjI7ZVszNzNdPTEwOTtlWzM3NF09MTEwO2VbMzgxXT0xMTE7ZVszODJdPTI0MjtlWzM4M109MjQzO2VbMzg2XT0yNDY7ZVszOTNdPTExMjtlWzM5NV09MTEzO2VbMzk2XT0xMTQ7ZVszOThdPTM0NTtlWzQwMF09MTE1O2VbNDAxXT0zNDc7ZVs0MDNdPTM1MztlWzQxMF09MTE2O2VbNDM3XT0xMTc7ZVs0NDJdPTI1MjtlWzQ0OF09MTE4O2VbNDQ5XT0xMTk7ZVs0NTRdPTEyMDtlWzQ1NV09MTIxO2VbNDU3XT0yNTM7ZVs0NjBdPTEyMjtlWzQ2Ml09MzgyO2VbNDYzXT0zODA7ZVs4NTNdPTQ0O2VbODU1XT01ODtlWzg1Nl09NDY7ZVs4NzZdPTQ3O2VbODc4XT00NTtlWzg4Ml09NDU7ZVs4OTRdPTQwO2VbODk1XT00MTtlWzg5Nl09OTE7ZVs4OTddPTkzO2VbOTIzXT02NDtlWzEwMDRdPTQ4O2VbMTAwNV09NDk7ZVsxMDA2XT01MDtlWzEwMDddPTUxO2VbMTAwOF09NTI7ZVsxMDA5XT01MztlWzEwMTBdPTU0O2VbMTAxMV09NTU7ZVsxMDEyXT01NjtlWzEwMTNdPTU3O2VbMTA4MV09Mzc7ZVsxMDg1XT00MztlWzEwODZdPTQ1fSkpO2Z1bmN0aW9uIGdldFN0YW5kYXJkRm9udE5hbWUoZSl7Y29uc3QgdD1ub3JtYWxpemVGb250TmFtZShlKTtyZXR1cm4gS2koKVt0XX1mdW5jdGlvbiBpc0tub3duRm9udE5hbWUoZSl7Y29uc3QgdD1ub3JtYWxpemVGb250TmFtZShlKTtyZXR1cm4hIShLaSgpW3RdfHxxaSgpW3RdfHxPaSgpW3RdfHxQaSgpW3RdKX1jbGFzcyBUb1VuaWNvZGVNYXB7Y29uc3RydWN0b3IoZT1bXSl7dGhpcy5fbWFwPWV9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLl9tYXAubGVuZ3RofWZvckVhY2goZSl7Zm9yKGNvbnN0IHQgaW4gdGhpcy5fbWFwKWUodCx0aGlzLl9tYXBbdF0uY29kZVBvaW50QXQoMCkpfWhhcyhlKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fbWFwW2VdfWdldChlKXtyZXR1cm4gdGhpcy5fbWFwW2VdfWNoYXJDb2RlT2YoZSl7Y29uc3QgdD10aGlzLl9tYXA7aWYodC5sZW5ndGg8PTY1NTM2KXJldHVybiB0LmluZGV4T2YoZSk7Zm9yKGNvbnN0IGkgaW4gdClpZih0W2ldPT09ZSlyZXR1cm4gMHxpO3JldHVybi0xfWFtZW5kKGUpe2Zvcihjb25zdCB0IGluIGUpdGhpcy5fbWFwW3RdPWVbdF19fWNsYXNzIElkZW50aXR5VG9Vbmljb2RlTWFwe2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5maXJzdENoYXI9ZTt0aGlzLmxhc3RDaGFyPXR9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmxhc3RDaGFyKzEtdGhpcy5maXJzdENoYXJ9Zm9yRWFjaChlKXtmb3IobGV0IHQ9dGhpcy5maXJzdENoYXIsaT10aGlzLmxhc3RDaGFyO3Q8PWk7dCsrKWUodCx0KX1oYXMoZSl7cmV0dXJuIHRoaXMuZmlyc3RDaGFyPD1lJiZlPD10aGlzLmxhc3RDaGFyfWdldChlKXtpZih0aGlzLmZpcnN0Q2hhcjw9ZSYmZTw9dGhpcy5sYXN0Q2hhcilyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShlKX1jaGFyQ29kZU9mKGUpe3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKGUpJiZlPj10aGlzLmZpcnN0Q2hhciYmZTw9dGhpcy5sYXN0Q2hhcj9lOi0xfWFtZW5kKGUpe3VucmVhY2hhYmxlKCJTaG91bGQgbm90IGNhbGwgYW1lbmQoKSIpfX1jbGFzcyBDRkZGb250e2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5wcm9wZXJ0aWVzPXQ7Y29uc3QgaT1uZXcgQ0ZGUGFyc2VyKGUsdCxHaSk7dGhpcy5jZmY9aS5wYXJzZSgpO3RoaXMuY2ZmLmR1cGxpY2F0ZUZpcnN0R2x5cGgoKTtjb25zdCBhPW5ldyBDRkZDb21waWxlcih0aGlzLmNmZik7dGhpcy5zZWFjcz10aGlzLmNmZi5zZWFjczt0cnl7dGhpcy5kYXRhPWEuY29tcGlsZSgpfWNhdGNoe3dhcm4oIkZhaWxlZCB0byBjb21waWxlIGZvbnQgIit0LmxvYWRlZE5hbWUpO3RoaXMuZGF0YT1lfXRoaXMuX2NyZWF0ZUJ1aWx0SW5FbmNvZGluZygpfWdldCBudW1HbHlwaHMoKXtyZXR1cm4gdGhpcy5jZmYuY2hhclN0cmluZ3MuY291bnR9Z2V0Q2hhcnNldCgpe3JldHVybiB0aGlzLmNmZi5jaGFyc2V0LmNoYXJzZXR9Z2V0R2x5cGhNYXBwaW5nKCl7Y29uc3QgZT10aGlzLmNmZix0PXRoaXMucHJvcGVydGllcyx7Y2lkVG9HaWRNYXA6aSxjTWFwOmF9PXQscj1lLmNoYXJzZXQuY2hhcnNldDtsZXQgcyxuO2lmKHQuY29tcG9zaXRlKXtsZXQgdCxvO2lmKGk/Lmxlbmd0aD4wKXt0PU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCBlPTAsYT1pLmxlbmd0aDtlPGE7ZSsrKXtjb25zdCBhPWlbZV07dm9pZCAwIT09YSYmKHRbYV09ZSl9fXM9T2JqZWN0LmNyZWF0ZShudWxsKTtpZihlLmlzQ0lERm9udClmb3Iobj0wO248ci5sZW5ndGg7bisrKXtjb25zdCBlPXJbbl07bz1hLmNoYXJDb2RlT2YoZSk7dm9pZCAwIT09dD8uW29dJiYobz10W29dKTtzW29dPW59ZWxzZSBmb3Iobj0wO248ZS5jaGFyU3RyaW5ncy5jb3VudDtuKyspe289YS5jaGFyQ29kZU9mKG4pO3Nbb109bn1yZXR1cm4gc31sZXQgbz1lLmVuY29kaW5nP2UuZW5jb2RpbmcuZW5jb2Rpbmc6bnVsbDt0LmlzSW50ZXJuYWxGb250JiYobz10LmRlZmF1bHRFbmNvZGluZyk7cz10eXBlMUZvbnRHbHlwaE1hcHBpbmcodCxvLHIpO3JldHVybiBzfWhhc0dseXBoSWQoZSl7cmV0dXJuIHRoaXMuY2ZmLmhhc0dseXBoSWQoZSl9X2NyZWF0ZUJ1aWx0SW5FbmNvZGluZygpe2NvbnN0e2NoYXJzZXQ6ZSxlbmNvZGluZzp0fT10aGlzLmNmZjtpZighZXx8IXQpcmV0dXJuO2NvbnN0IGk9ZS5jaGFyc2V0LGE9dC5lbmNvZGluZyxyPVtdO2Zvcihjb25zdCBlIGluIGEpe2NvbnN0IHQ9YVtlXTtpZih0Pj0wKXtjb25zdCBhPWlbdF07YSYmKHJbZV09YSl9fXIubGVuZ3RoPjAmJih0aGlzLnByb3BlcnRpZXMuYnVpbHRJbkVuY29kaW5nPXIpfX1mdW5jdGlvbiBnZXRVaW50MzIoZSx0KXtyZXR1cm4oZVt0XTw8MjR8ZVt0KzFdPDwxNnxlW3QrMl08PDh8ZVt0KzNdKT4+PjB9ZnVuY3Rpb24gZ2V0VWludDE2KGUsdCl7cmV0dXJuIGVbdF08PDh8ZVt0KzFdfWZ1bmN0aW9uIGdldEludDE2KGUsdCl7cmV0dXJuKGVbdF08PDI0fGVbdCsxXTw8MTYpPj4xNn1mdW5jdGlvbiBnZXRJbnQ4KGUsdCl7cmV0dXJuIGVbdF08PDI0Pj4yNH1mdW5jdGlvbiBnZXRGbG9hdDIxNChlLHQpe3JldHVybiBnZXRJbnQxNihlLHQpLzE2Mzg0fWZ1bmN0aW9uIGdldFN1YnJvdXRpbmVCaWFzKGUpe2NvbnN0IHQ9ZS5sZW5ndGg7bGV0IGk9MzI3Njg7dDwxMjQwP2k9MTA3OnQ8MzM5MDAmJihpPTExMzEpO3JldHVybiBpfWZ1bmN0aW9uIHBhcnNlQ21hcChlLHQsaSl7Y29uc3QgYT0xPT09Z2V0VWludDE2KGUsdCsyKT9nZXRVaW50MzIoZSx0KzgpOmdldFVpbnQzMihlLHQrMTYpLHI9Z2V0VWludDE2KGUsdCthKTtsZXQgcyxuLG87aWYoND09PXIpe2dldFVpbnQxNihlLHQrYSsyKTtjb25zdCBpPWdldFVpbnQxNihlLHQrYSs2KT4+MTtuPXQrYSsxNDtzPVtdO2ZvcihvPTA7bzxpO28rKyxuKz0yKXNbb109e2VuZDpnZXRVaW50MTYoZSxuKX07bis9Mjtmb3Iobz0wO288aTtvKyssbis9MilzW29dLnN0YXJ0PWdldFVpbnQxNihlLG4pO2ZvcihvPTA7bzxpO28rKyxuKz0yKXNbb10uaWREZWx0YT1nZXRVaW50MTYoZSxuKTtmb3Iobz0wO288aTtvKyssbis9Mil7bGV0IHQ9Z2V0VWludDE2KGUsbik7aWYoMCE9PXQpe3Nbb10uaWRzPVtdO2ZvcihsZXQgaT0wLGE9c1tvXS5lbmQtc1tvXS5zdGFydCsxO2k8YTtpKyspe3Nbb10uaWRzW2ldPWdldFVpbnQxNihlLG4rdCk7dCs9Mn19fXJldHVybiBzfWlmKDEyPT09cil7Y29uc3QgaT1nZXRVaW50MzIoZSx0K2ErMTIpO249dCthKzE2O3M9W107Zm9yKG89MDtvPGk7bysrKXt0PWdldFVpbnQzMihlLG4pO3MucHVzaCh7c3RhcnQ6dCxlbmQ6Z2V0VWludDMyKGUsbis0KSxpZERlbHRhOmdldFVpbnQzMihlLG4rOCktdH0pO24rPTEyfXJldHVybiBzfXRocm93IG5ldyBGb3JtYXRFcnJvcihgdW5zdXBwb3J0ZWQgY21hcDogJHtyfWApfWZ1bmN0aW9uIHBhcnNlQ2ZmKGUsdCxpLGEpe2NvbnN0IHI9bmV3IENGRlBhcnNlcihuZXcgU3RyZWFtKGUsdCxpLXQpLHt9LGEpLnBhcnNlKCk7cmV0dXJue2dseXBoczpyLmNoYXJTdHJpbmdzLm9iamVjdHMsc3VicnM6ci50b3BEaWN0LnByaXZhdGVEaWN0Py5zdWJyc0luZGV4Py5vYmplY3RzLGdzdWJyczpyLmdsb2JhbFN1YnJJbmRleD8ub2JqZWN0cyxpc0NGRkNJREZvbnQ6ci5pc0NJREZvbnQsZmRTZWxlY3Q6ci5mZFNlbGVjdCxmZEFycmF5OnIuZmRBcnJheX19ZnVuY3Rpb24gbG9va3VwQ21hcChlLHQpe2NvbnN0IGk9dC5jb2RlUG9pbnRBdCgwKTtsZXQgYT0wLHI9MCxzPWUubGVuZ3RoLTE7Zm9yKDtyPHM7KXtjb25zdCB0PXIrcysxPj4xO2k8ZVt0XS5zdGFydD9zPXQtMTpyPXR9ZVtyXS5zdGFydDw9aSYmaTw9ZVtyXS5lbmQmJihhPWVbcl0uaWREZWx0YSsoZVtyXS5pZHM/ZVtyXS5pZHNbaS1lW3JdLnN0YXJ0XTppKSY2NTUzNSk7cmV0dXJue2NoYXJDb2RlOmksZ2x5cGhJZDphfX1mdW5jdGlvbiBjb21waWxlR2x5ZihlLHQsaSl7ZnVuY3Rpb24gbW92ZVRvKGUsaSl7dC5hZGQoIk0iLFtlLGldKX1mdW5jdGlvbiBsaW5lVG8oZSxpKXt0LmFkZCgiTCIsW2UsaV0pfWZ1bmN0aW9uIHF1YWRyYXRpY0N1cnZlVG8oZSxpLGEscil7dC5hZGQoIlEiLFtlLGksYSxyXSl9bGV0IGE9MDtjb25zdCByPWdldEludDE2KGUsYSk7bGV0IHMsbj0wLG89MDthKz0xMDtpZihyPDApZG97cz1nZXRVaW50MTYoZSxhKTtjb25zdCByPWdldFVpbnQxNihlLGErMik7YSs9NDtsZXQgZyxjO2lmKDEmcyl7aWYoMiZzKXtnPWdldEludDE2KGUsYSk7Yz1nZXRJbnQxNihlLGErMil9ZWxzZXtnPWdldFVpbnQxNihlLGEpO2M9Z2V0VWludDE2KGUsYSsyKX1hKz00fWVsc2UgaWYoMiZzKXtnPWdldEludDgoZSxhKyspO2M9Z2V0SW50OChlLGErKyl9ZWxzZXtnPWVbYSsrXTtjPWVbYSsrXX1pZigyJnMpe249ZztvPWN9ZWxzZXtuPTA7bz0wfWxldCBsPTEsaD0xLEM9MCxRPTA7aWYoOCZzKXtsPWg9Z2V0RmxvYXQyMTQoZSxhKTthKz0yfWVsc2UgaWYoNjQmcyl7bD1nZXRGbG9hdDIxNChlLGEpO2g9Z2V0RmxvYXQyMTQoZSxhKzIpO2ErPTR9ZWxzZSBpZigxMjgmcyl7bD1nZXRGbG9hdDIxNChlLGEpO0M9Z2V0RmxvYXQyMTQoZSxhKzIpO1E9Z2V0RmxvYXQyMTQoZSxhKzQpO2g9Z2V0RmxvYXQyMTQoZSxhKzYpO2ErPTh9Y29uc3QgRT1pLmdseXBoc1tyXTtpZihFKXt0LnNhdmUoKTt0LnRyYW5zZm9ybShbbCxDLFEsaCxuLG9dKTtjb21waWxlR2x5ZihFLHQsaSk7dC5yZXN0b3JlKCl9fXdoaWxlKDMyJnMpO2Vsc2V7Y29uc3QgdD1bXTtsZXQgaSxnO2ZvcihpPTA7aTxyO2krKyl7dC5wdXNoKGdldFVpbnQxNihlLGEpKTthKz0yfWErPTIrZ2V0VWludDE2KGUsYSk7Y29uc3QgYz10LmF0KC0xKSsxLGw9W107Zm9yKDtsLmxlbmd0aDxjOyl7cz1lW2ErK107bGV0IHQ9MTs4JnMmJih0Kz1lW2ErK10pO2Zvcig7dC0tID4wOylsLnB1c2goe2ZsYWdzOnN9KX1mb3IoaT0wO2k8YztpKyspe3N3aXRjaCgxOCZsW2ldLmZsYWdzKXtjYXNlIDA6bis9Z2V0SW50MTYoZSxhKTthKz0yO2JyZWFrO2Nhc2UgMjpuLT1lW2ErK107YnJlYWs7Y2FzZSAxODpuKz1lW2ErK119bFtpXS54PW59Zm9yKGk9MDtpPGM7aSsrKXtzd2l0Y2goMzYmbFtpXS5mbGFncyl7Y2FzZSAwOm8rPWdldEludDE2KGUsYSk7YSs9MjticmVhaztjYXNlIDQ6by09ZVthKytdO2JyZWFrO2Nhc2UgMzY6bys9ZVthKytdfWxbaV0ueT1vfWxldCBoPTA7Zm9yKGE9MDthPHI7YSsrKXtjb25zdCBlPXRbYV0scj1sLnNsaWNlKGgsZSsxKTtpZigxJnJbMF0uZmxhZ3Mpci5wdXNoKHJbMF0pO2Vsc2UgaWYoMSZyLmF0KC0xKS5mbGFncylyLnVuc2hpZnQoci5hdCgtMSkpO2Vsc2V7Y29uc3QgZT17ZmxhZ3M6MSx4OihyWzBdLngrci5hdCgtMSkueCkvMix5OihyWzBdLnkrci5hdCgtMSkueSkvMn07ci51bnNoaWZ0KGUpO3IucHVzaChlKX1tb3ZlVG8oclswXS54LHJbMF0ueSk7Zm9yKGk9MSxnPXIubGVuZ3RoO2k8ZztpKyspaWYoMSZyW2ldLmZsYWdzKWxpbmVUbyhyW2ldLngscltpXS55KTtlbHNlIGlmKDEmcltpKzFdLmZsYWdzKXtxdWFkcmF0aWNDdXJ2ZVRvKHJbaV0ueCxyW2ldLnkscltpKzFdLngscltpKzFdLnkpO2krK31lbHNlIHF1YWRyYXRpY0N1cnZlVG8ocltpXS54LHJbaV0ueSwocltpXS54K3JbaSsxXS54KS8yLChyW2ldLnkrcltpKzFdLnkpLzIpO2g9ZSsxfX19ZnVuY3Rpb24gY29tcGlsZUNoYXJTdHJpbmcoZSx0LGksYSl7ZnVuY3Rpb24gbW92ZVRvKGUsaSl7dC5hZGQoIk0iLFtlLGldKX1mdW5jdGlvbiBsaW5lVG8oZSxpKXt0LmFkZCgiTCIsW2UsaV0pfWZ1bmN0aW9uIGJlemllckN1cnZlVG8oZSxpLGEscixzLG4pe3QuYWRkKCJDIixbZSxpLGEscixzLG5dKX1jb25zdCByPVtdO2xldCBzPTAsbj0wLG89MDshZnVuY3Rpb24gcGFyc2UoZSl7bGV0IGc9MDtmb3IoO2c8ZS5sZW5ndGg7KXtsZXQgYyxsLGgsQyxRLEUsdSxkLGYscD0hMSxtPWVbZysrXTtzd2l0Y2gobSl7Y2FzZSAxOmNhc2UgMzpjYXNlIDE4OmNhc2UgMjM6bys9ci5sZW5ndGg+PjE7cD0hMDticmVhaztjYXNlIDQ6bis9ci5wb3AoKTttb3ZlVG8ocyxuKTtwPSEwO2JyZWFrO2Nhc2UgNTpmb3IoO3IubGVuZ3RoPjA7KXtzKz1yLnNoaWZ0KCk7bis9ci5zaGlmdCgpO2xpbmVUbyhzLG4pfWJyZWFrO2Nhc2UgNjpmb3IoO3IubGVuZ3RoPjA7KXtzKz1yLnNoaWZ0KCk7bGluZVRvKHMsbik7aWYoMD09PXIubGVuZ3RoKWJyZWFrO24rPXIuc2hpZnQoKTtsaW5lVG8ocyxuKX1icmVhaztjYXNlIDc6Zm9yKDtyLmxlbmd0aD4wOyl7bis9ci5zaGlmdCgpO2xpbmVUbyhzLG4pO2lmKDA9PT1yLmxlbmd0aClicmVhaztzKz1yLnNoaWZ0KCk7bGluZVRvKHMsbil9YnJlYWs7Y2FzZSA4OmZvcig7ci5sZW5ndGg+MDspe2M9cytyLnNoaWZ0KCk7aD1uK3Iuc2hpZnQoKTtsPWMrci5zaGlmdCgpO0M9aCtyLnNoaWZ0KCk7cz1sK3Iuc2hpZnQoKTtuPUMrci5zaGlmdCgpO2JlemllckN1cnZlVG8oYyxoLGwsQyxzLG4pfWJyZWFrO2Nhc2UgMTA6ZD1yLnBvcCgpO2Y9bnVsbDtpZihpLmlzQ0ZGQ0lERm9udCl7Y29uc3QgZT1pLmZkU2VsZWN0LmdldEZESW5kZXgoYSk7aWYoZT49MCYmZTxpLmZkQXJyYXkubGVuZ3RoKXtjb25zdCB0PWkuZmRBcnJheVtlXTtsZXQgYTt0LnByaXZhdGVEaWN0Py5zdWJyc0luZGV4JiYoYT10LnByaXZhdGVEaWN0LnN1YnJzSW5kZXgub2JqZWN0cyk7aWYoYSl7ZCs9Z2V0U3Vicm91dGluZUJpYXMoYSk7Zj1hW2RdfX1lbHNlIHdhcm4oIkludmFsaWQgZmQgaW5kZXggZm9yIGdseXBoIGluZGV4LiIpfWVsc2UgZj1pLnN1YnJzW2QraS5zdWJyc0JpYXNdO2YmJnBhcnNlKGYpO2JyZWFrO2Nhc2UgMTE6cmV0dXJuO2Nhc2UgMTI6bT1lW2crK107c3dpdGNoKG0pe2Nhc2UgMzQ6Yz1zK3Iuc2hpZnQoKTtsPWMrci5zaGlmdCgpO1E9bityLnNoaWZ0KCk7cz1sK3Iuc2hpZnQoKTtiZXppZXJDdXJ2ZVRvKGMsbixsLFEscyxRKTtjPXMrci5zaGlmdCgpO2w9YytyLnNoaWZ0KCk7cz1sK3Iuc2hpZnQoKTtiZXppZXJDdXJ2ZVRvKGMsUSxsLG4scyxuKTticmVhaztjYXNlIDM1OmM9cytyLnNoaWZ0KCk7aD1uK3Iuc2hpZnQoKTtsPWMrci5zaGlmdCgpO0M9aCtyLnNoaWZ0KCk7cz1sK3Iuc2hpZnQoKTtuPUMrci5zaGlmdCgpO2JlemllckN1cnZlVG8oYyxoLGwsQyxzLG4pO2M9cytyLnNoaWZ0KCk7aD1uK3Iuc2hpZnQoKTtsPWMrci5zaGlmdCgpO0M9aCtyLnNoaWZ0KCk7cz1sK3Iuc2hpZnQoKTtuPUMrci5zaGlmdCgpO2JlemllckN1cnZlVG8oYyxoLGwsQyxzLG4pO3IucG9wKCk7YnJlYWs7Y2FzZSAzNjpjPXMrci5zaGlmdCgpO1E9bityLnNoaWZ0KCk7bD1jK3Iuc2hpZnQoKTtFPVErci5zaGlmdCgpO3M9bCtyLnNoaWZ0KCk7YmV6aWVyQ3VydmVUbyhjLFEsbCxFLHMsRSk7Yz1zK3Iuc2hpZnQoKTtsPWMrci5zaGlmdCgpO3U9RStyLnNoaWZ0KCk7cz1sK3Iuc2hpZnQoKTtiZXppZXJDdXJ2ZVRvKGMsRSxsLHUscyxuKTticmVhaztjYXNlIDM3OmNvbnN0IGU9cyx0PW47Yz1zK3Iuc2hpZnQoKTtoPW4rci5zaGlmdCgpO2w9YytyLnNoaWZ0KCk7Qz1oK3Iuc2hpZnQoKTtzPWwrci5zaGlmdCgpO249QytyLnNoaWZ0KCk7YmV6aWVyQ3VydmVUbyhjLGgsbCxDLHMsbik7Yz1zK3Iuc2hpZnQoKTtoPW4rci5zaGlmdCgpO2w9YytyLnNoaWZ0KCk7Qz1oK3Iuc2hpZnQoKTtzPWw7bj1DO01hdGguYWJzKHMtZSk+TWF0aC5hYnMobi10KT9zKz1yLnNoaWZ0KCk6bis9ci5zaGlmdCgpO2JlemllckN1cnZlVG8oYyxoLGwsQyxzLG4pO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEZvcm1hdEVycm9yKGB1bmtub3duIG9wZXJhdG9yOiAxMiAke219YCl9YnJlYWs7Y2FzZSAxNDppZihyLmxlbmd0aD49NCl7Y29uc3QgZT1yLnBvcCgpLGE9ci5wb3AoKTtuPXIucG9wKCk7cz1yLnBvcCgpO3Quc2F2ZSgpO3QudHJhbnNsYXRlKHMsbik7bGV0IG89bG9va3VwQ21hcChpLmNtYXAsU3RyaW5nLmZyb21DaGFyQ29kZShpLmdseXBoTmFtZU1hcFtCaVtlXV0pKTtjb21waWxlQ2hhclN0cmluZyhpLmdseXBoc1tvLmdseXBoSWRdLHQsaSxvLmdseXBoSWQpO3QucmVzdG9yZSgpO289bG9va3VwQ21hcChpLmNtYXAsU3RyaW5nLmZyb21DaGFyQ29kZShpLmdseXBoTmFtZU1hcFtCaVthXV0pKTtjb21waWxlQ2hhclN0cmluZyhpLmdseXBoc1tvLmdseXBoSWRdLHQsaSxvLmdseXBoSWQpfXJldHVybjtjYXNlIDE5OmNhc2UgMjA6bys9ci5sZW5ndGg+PjE7Zys9bys3Pj4zO3A9ITA7YnJlYWs7Y2FzZSAyMTpuKz1yLnBvcCgpO3MrPXIucG9wKCk7bW92ZVRvKHMsbik7cD0hMDticmVhaztjYXNlIDIyOnMrPXIucG9wKCk7bW92ZVRvKHMsbik7cD0hMDticmVhaztjYXNlIDI0OmZvcig7ci5sZW5ndGg+Mjspe2M9cytyLnNoaWZ0KCk7aD1uK3Iuc2hpZnQoKTtsPWMrci5zaGlmdCgpO0M9aCtyLnNoaWZ0KCk7cz1sK3Iuc2hpZnQoKTtuPUMrci5zaGlmdCgpO2JlemllckN1cnZlVG8oYyxoLGwsQyxzLG4pfXMrPXIuc2hpZnQoKTtuKz1yLnNoaWZ0KCk7bGluZVRvKHMsbik7YnJlYWs7Y2FzZSAyNTpmb3IoO3IubGVuZ3RoPjY7KXtzKz1yLnNoaWZ0KCk7bis9ci5zaGlmdCgpO2xpbmVUbyhzLG4pfWM9cytyLnNoaWZ0KCk7aD1uK3Iuc2hpZnQoKTtsPWMrci5zaGlmdCgpO0M9aCtyLnNoaWZ0KCk7cz1sK3Iuc2hpZnQoKTtuPUMrci5zaGlmdCgpO2JlemllckN1cnZlVG8oYyxoLGwsQyxzLG4pO2JyZWFrO2Nhc2UgMjY6ci5sZW5ndGglMiYmKHMrPXIuc2hpZnQoKSk7Zm9yKDtyLmxlbmd0aD4wOyl7Yz1zO2g9bityLnNoaWZ0KCk7bD1jK3Iuc2hpZnQoKTtDPWgrci5zaGlmdCgpO3M9bDtuPUMrci5zaGlmdCgpO2JlemllckN1cnZlVG8oYyxoLGwsQyxzLG4pfWJyZWFrO2Nhc2UgMjc6ci5sZW5ndGglMiYmKG4rPXIuc2hpZnQoKSk7Zm9yKDtyLmxlbmd0aD4wOyl7Yz1zK3Iuc2hpZnQoKTtoPW47bD1jK3Iuc2hpZnQoKTtDPWgrci5zaGlmdCgpO3M9bCtyLnNoaWZ0KCk7bj1DO2JlemllckN1cnZlVG8oYyxoLGwsQyxzLG4pfWJyZWFrO2Nhc2UgMjg6ci5wdXNoKChlW2ddPDwyNHxlW2crMV08PDE2KT4+MTYpO2crPTI7YnJlYWs7Y2FzZSAyOTpkPXIucG9wKCkraS5nc3VicnNCaWFzO2Y9aS5nc3VicnNbZF07ZiYmcGFyc2UoZik7YnJlYWs7Y2FzZSAzMDpmb3IoO3IubGVuZ3RoPjA7KXtjPXM7aD1uK3Iuc2hpZnQoKTtsPWMrci5zaGlmdCgpO0M9aCtyLnNoaWZ0KCk7cz1sK3Iuc2hpZnQoKTtuPUMrKDE9PT1yLmxlbmd0aD9yLnNoaWZ0KCk6MCk7YmV6aWVyQ3VydmVUbyhjLGgsbCxDLHMsbik7aWYoMD09PXIubGVuZ3RoKWJyZWFrO2M9cytyLnNoaWZ0KCk7aD1uO2w9YytyLnNoaWZ0KCk7Qz1oK3Iuc2hpZnQoKTtuPUMrci5zaGlmdCgpO3M9bCsoMT09PXIubGVuZ3RoP3Iuc2hpZnQoKTowKTtiZXppZXJDdXJ2ZVRvKGMsaCxsLEMscyxuKX1icmVhaztjYXNlIDMxOmZvcig7ci5sZW5ndGg+MDspe2M9cytyLnNoaWZ0KCk7aD1uO2w9YytyLnNoaWZ0KCk7Qz1oK3Iuc2hpZnQoKTtuPUMrci5zaGlmdCgpO3M9bCsoMT09PXIubGVuZ3RoP3Iuc2hpZnQoKTowKTtiZXppZXJDdXJ2ZVRvKGMsaCxsLEMscyxuKTtpZigwPT09ci5sZW5ndGgpYnJlYWs7Yz1zO2g9bityLnNoaWZ0KCk7bD1jK3Iuc2hpZnQoKTtDPWgrci5zaGlmdCgpO3M9bCtyLnNoaWZ0KCk7bj1DKygxPT09ci5sZW5ndGg/ci5zaGlmdCgpOjApO2JlemllckN1cnZlVG8oYyxoLGwsQyxzLG4pfWJyZWFrO2RlZmF1bHQ6aWYobTwzMil0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYHVua25vd24gb3BlcmF0b3I6ICR7bX1gKTtpZihtPDI0NylyLnB1c2gobS0xMzkpO2Vsc2UgaWYobTwyNTEpci5wdXNoKDI1NioobS0yNDcpK2VbZysrXSsxMDgpO2Vsc2UgaWYobTwyNTUpci5wdXNoKDI1NiotKG0tMjUxKS1lW2crK10tMTA4KTtlbHNle3IucHVzaCgoZVtnXTw8MjR8ZVtnKzFdPDwxNnxlW2crMl08PDh8ZVtnKzNdKS82NTUzNik7Zys9NH19cCYmKHIubGVuZ3RoPTApfX0oZSl9Y2xhc3MgQ29tbWFuZHN7Y21kcz1bXTt0cmFuc2Zvcm1TdGFjaz1bXTtjdXJyZW50VHJhbnNmb3JtPVsxLDAsMCwxLDAsMF07YWRkKGUsdCl7aWYodCl7Y29uc3RbaSxhLHIscyxuLG9dPXRoaXMuY3VycmVudFRyYW5zZm9ybTtmb3IobGV0IGU9MCxnPXQubGVuZ3RoO2U8ZztlKz0yKXtjb25zdCBnPXRbZV0sYz10W2UrMV07dFtlXT1pKmcrcipjK247dFtlKzFdPWEqZytzKmMrb310aGlzLmNtZHMucHVzaChgJHtlfSR7dC5qb2luKCIgIil9YCl9ZWxzZSB0aGlzLmNtZHMucHVzaChlKX10cmFuc2Zvcm0oZSl7dGhpcy5jdXJyZW50VHJhbnNmb3JtPVV0aWwudHJhbnNmb3JtKHRoaXMuY3VycmVudFRyYW5zZm9ybSxlKX10cmFuc2xhdGUoZSx0KXt0aGlzLnRyYW5zZm9ybShbMSwwLDAsMSxlLHRdKX1zYXZlKCl7dGhpcy50cmFuc2Zvcm1TdGFjay5wdXNoKHRoaXMuY3VycmVudFRyYW5zZm9ybS5zbGljZSgpKX1yZXN0b3JlKCl7dGhpcy5jdXJyZW50VHJhbnNmb3JtPXRoaXMudHJhbnNmb3JtU3RhY2sucG9wKCl8fFsxLDAsMCwxLDAsMF19Z2V0U1ZHKCl7cmV0dXJuIHRoaXMuY21kcy5qb2luKCIiKX19Y2xhc3MgQ29tcGlsZWRGb250e2NvbnN0cnVjdG9yKGUpe3RoaXMuZm9udE1hdHJpeD1lO3RoaXMuY29tcGlsZWRHbHlwaHM9T2JqZWN0LmNyZWF0ZShudWxsKTt0aGlzLmNvbXBpbGVkQ2hhckNvZGVUb0dseXBoSWQ9T2JqZWN0LmNyZWF0ZShudWxsKX1nZXRQYXRoSnMoZSl7Y29uc3R7Y2hhckNvZGU6dCxnbHlwaElkOml9PWxvb2t1cENtYXAodGhpcy5jbWFwLGUpO2xldCBhLHI9dGhpcy5jb21waWxlZEdseXBoc1tpXTtpZih2b2lkIDA9PT1yKXt0cnl7cj10aGlzLmNvbXBpbGVHbHlwaCh0aGlzLmdseXBoc1tpXSxpKX1jYXRjaChlKXtyPSIiO2E9ZX10aGlzLmNvbXBpbGVkR2x5cGhzW2ldPXJ9dGhpcy5jb21waWxlZENoYXJDb2RlVG9HbHlwaElkW3RdPz89aTtpZihhKXRocm93IGE7cmV0dXJuIHJ9Y29tcGlsZUdseXBoKGUsdCl7aWYoIWU/Lmxlbmd0aHx8MTQ9PT1lWzBdKXJldHVybiIiO2xldCBpPXRoaXMuZm9udE1hdHJpeDtpZih0aGlzLmlzQ0ZGQ0lERm9udCl7Y29uc3QgZT10aGlzLmZkU2VsZWN0LmdldEZESW5kZXgodCk7aWYoZT49MCYmZTx0aGlzLmZkQXJyYXkubGVuZ3RoKXtpPXRoaXMuZmRBcnJheVtlXS5nZXRCeU5hbWUoIkZvbnRNYXRyaXgiKXx8cn1lbHNlIHdhcm4oIkludmFsaWQgZmQgaW5kZXggZm9yIGdseXBoIGluZGV4LiIpfWFzc2VydChpc051bWJlckFycmF5KGksNiksIkV4cGVjdGVkIGEgdmFsaWQgZm9udE1hdHJpeC4iKTtjb25zdCBhPW5ldyBDb21tYW5kczthLnRyYW5zZm9ybShpLnNsaWNlKCkpO3RoaXMuY29tcGlsZUdseXBoSW1wbChlLGEsdCk7YS5hZGQoIloiKTtyZXR1cm4gYS5nZXRTVkcoKX1jb21waWxlR2x5cGhJbXBsKCl7dW5yZWFjaGFibGUoIkNoaWxkcmVuIGNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCB0aGlzLiIpfWhhc0J1aWx0UGF0aChlKXtjb25zdHtjaGFyQ29kZTp0LGdseXBoSWQ6aX09bG9va3VwQ21hcCh0aGlzLmNtYXAsZSk7cmV0dXJuIHZvaWQgMCE9PXRoaXMuY29tcGlsZWRHbHlwaHNbaV0mJnZvaWQgMCE9PXRoaXMuY29tcGlsZWRDaGFyQ29kZVRvR2x5cGhJZFt0XX19Y2xhc3MgVHJ1ZVR5cGVDb21waWxlZCBleHRlbmRzIENvbXBpbGVkRm9udHtjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIoaXx8WzQ4OGUtNiwwLDAsNDg4ZS02LDAsMF0pO3RoaXMuZ2x5cGhzPWU7dGhpcy5jbWFwPXR9Y29tcGlsZUdseXBoSW1wbChlLHQpe2NvbXBpbGVHbHlmKGUsdCx0aGlzKX19Y2xhc3MgVHlwZTJDb21waWxlZCBleHRlbmRzIENvbXBpbGVkRm9udHtjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIoaXx8Wy4wMDEsMCwwLC4wMDEsMCwwXSk7dGhpcy5nbHlwaHM9ZS5nbHlwaHM7dGhpcy5nc3VicnM9ZS5nc3VicnN8fFtdO3RoaXMuc3VicnM9ZS5zdWJyc3x8W107dGhpcy5jbWFwPXQ7dGhpcy5nbHlwaE5hbWVNYXA9RGkoKTt0aGlzLmdzdWJyc0JpYXM9Z2V0U3Vicm91dGluZUJpYXModGhpcy5nc3VicnMpO3RoaXMuc3VicnNCaWFzPWdldFN1YnJvdXRpbmVCaWFzKHRoaXMuc3VicnMpO3RoaXMuaXNDRkZDSURGb250PWUuaXNDRkZDSURGb250O3RoaXMuZmRTZWxlY3Q9ZS5mZFNlbGVjdDt0aGlzLmZkQXJyYXk9ZS5mZEFycmF5fWNvbXBpbGVHbHlwaEltcGwoZSx0LGkpe2NvbXBpbGVDaGFyU3RyaW5nKGUsdCx0aGlzLGkpfX1jbGFzcyBGb250UmVuZGVyZXJGYWN0b3J5e3N0YXRpYyBjcmVhdGUoZSx0KXtjb25zdCBpPW5ldyBVaW50OEFycmF5KGUuZGF0YSk7bGV0IGEscixzLG4sbyxnO2NvbnN0IGM9Z2V0VWludDE2KGksNCk7Zm9yKGxldCBlPTAsbD0xMjtlPGM7ZSsrLGwrPTE2KXtjb25zdCBlPWJ5dGVzVG9TdHJpbmcoaS5zdWJhcnJheShsLGwrNCkpLGM9Z2V0VWludDMyKGksbCs4KSxoPWdldFVpbnQzMihpLGwrMTIpO3N3aXRjaChlKXtjYXNlImNtYXAiOmE9cGFyc2VDbWFwKGksYyk7YnJlYWs7Y2FzZSJnbHlmIjpyPWkuc3ViYXJyYXkoYyxjK2gpO2JyZWFrO2Nhc2UibG9jYSI6cz1pLnN1YmFycmF5KGMsYytoKTticmVhaztjYXNlImhlYWQiOmc9Z2V0VWludDE2KGksYysxOCk7bz1nZXRVaW50MTYoaSxjKzUwKTticmVhaztjYXNlIkNGRiAiOm49cGFyc2VDZmYoaSxjLGMraCx0KX19aWYocil7Y29uc3QgdD1nP1sxL2csMCwwLDEvZywwLDBdOmUuZm9udE1hdHJpeDtyZXR1cm4gbmV3IFRydWVUeXBlQ29tcGlsZWQoZnVuY3Rpb24gcGFyc2VHbHlmVGFibGUoZSx0LGkpe2xldCBhLHI7aWYoaSl7YT00O3I9Z2V0VWludDMyfWVsc2V7YT0yO3I9KGUsdCk9PjIqZ2V0VWludDE2KGUsdCl9Y29uc3Qgcz1bXTtsZXQgbj1yKHQsMCk7Zm9yKGxldCBpPWE7aTx0Lmxlbmd0aDtpKz1hKXtjb25zdCBhPXIodCxpKTtzLnB1c2goZS5zdWJhcnJheShuLGEpKTtuPWF9cmV0dXJuIHN9KHIscyxvKSxhLHQpfXJldHVybiBuZXcgVHlwZTJDb21waWxlZChuLGEsZS5mb250TWF0cml4KX19Y29uc3QgVmk9Z2V0TG9va3VwVGFibGVGYWN0b3J5KChmdW5jdGlvbihlKXtlLkNvdXJpZXI9NjAwO2VbIkNvdXJpZXItQm9sZCJdPTYwMDtlWyJDb3VyaWVyLUJvbGRPYmxpcXVlIl09NjAwO2VbIkNvdXJpZXItT2JsaXF1ZSJdPTYwMDtlLkhlbHZldGljYT1nZXRMb29rdXBUYWJsZUZhY3RvcnkoKGZ1bmN0aW9uKGUpe2Uuc3BhY2U9Mjc4O2UuZXhjbGFtPTI3ODtlLnF1b3RlZGJsPTM1NTtlLm51bWJlcnNpZ249NTU2O2UuZG9sbGFyPTU1NjtlLnBlcmNlbnQ9ODg5O2UuYW1wZXJzYW5kPTY2NztlLnF1b3RlcmlnaHQ9MjIyO2UucGFyZW5sZWZ0PTMzMztlLnBhcmVucmlnaHQ9MzMzO2UuYXN0ZXJpc2s9Mzg5O2UucGx1cz01ODQ7ZS5jb21tYT0yNzg7ZS5oeXBoZW49MzMzO2UucGVyaW9kPTI3ODtlLnNsYXNoPTI3ODtlLnplcm89NTU2O2Uub25lPTU1NjtlLnR3bz01NTY7ZS50aHJlZT01NTY7ZS5mb3VyPTU1NjtlLmZpdmU9NTU2O2Uuc2l4PTU1NjtlLnNldmVuPTU1NjtlLmVpZ2h0PTU1NjtlLm5pbmU9NTU2O2UuY29sb249Mjc4O2Uuc2VtaWNvbG9uPTI3ODtlLmxlc3M9NTg0O2UuZXF1YWw9NTg0O2UuZ3JlYXRlcj01ODQ7ZS5xdWVzdGlvbj01NTY7ZS5hdD0xMDE1O2UuQT02Njc7ZS5CPTY2NztlLkM9NzIyO2UuRD03MjI7ZS5FPTY2NztlLkY9NjExO2UuRz03Nzg7ZS5IPTcyMjtlLkk9Mjc4O2UuSj01MDA7ZS5LPTY2NztlLkw9NTU2O2UuTT04MzM7ZS5OPTcyMjtlLk89Nzc4O2UuUD02Njc7ZS5RPTc3ODtlLlI9NzIyO2UuUz02Njc7ZS5UPTYxMTtlLlU9NzIyO2UuVj02Njc7ZS5XPTk0NDtlLlg9NjY3O2UuWT02Njc7ZS5aPTYxMTtlLmJyYWNrZXRsZWZ0PTI3ODtlLmJhY2tzbGFzaD0yNzg7ZS5icmFja2V0cmlnaHQ9Mjc4O2UuYXNjaWljaXJjdW09NDY5O2UudW5kZXJzY29yZT01NTY7ZS5xdW90ZWxlZnQ9MjIyO2UuYT01NTY7ZS5iPTU1NjtlLmM9NTAwO2UuZD01NTY7ZS5lPTU1NjtlLmY9Mjc4O2UuZz01NTY7ZS5oPTU1NjtlLmk9MjIyO2Uuaj0yMjI7ZS5rPTUwMDtlLmw9MjIyO2UubT04MzM7ZS5uPTU1NjtlLm89NTU2O2UucD01NTY7ZS5xPTU1NjtlLnI9MzMzO2Uucz01MDA7ZS50PTI3ODtlLnU9NTU2O2Uudj01MDA7ZS53PTcyMjtlLng9NTAwO2UueT01MDA7ZS56PTUwMDtlLmJyYWNlbGVmdD0zMzQ7ZS5iYXI9MjYwO2UuYnJhY2VyaWdodD0zMzQ7ZS5hc2NpaXRpbGRlPTU4NDtlLmV4Y2xhbWRvd249MzMzO2UuY2VudD01NTY7ZS5zdGVybGluZz01NTY7ZS5mcmFjdGlvbj0xNjc7ZS55ZW49NTU2O2UuZmxvcmluPTU1NjtlLnNlY3Rpb249NTU2O2UuY3VycmVuY3k9NTU2O2UucXVvdGVzaW5nbGU9MTkxO2UucXVvdGVkYmxsZWZ0PTMzMztlLmd1aWxsZW1vdGxlZnQ9NTU2O2UuZ3VpbHNpbmdsbGVmdD0zMzM7ZS5ndWlsc2luZ2xyaWdodD0zMzM7ZS5maT01MDA7ZS5mbD01MDA7ZS5lbmRhc2g9NTU2O2UuZGFnZ2VyPTU1NjtlLmRhZ2dlcmRibD01NTY7ZS5wZXJpb2RjZW50ZXJlZD0yNzg7ZS5wYXJhZ3JhcGg9NTM3O2UuYnVsbGV0PTM1MDtlLnF1b3Rlc2luZ2xiYXNlPTIyMjtlLnF1b3RlZGJsYmFzZT0zMzM7ZS5xdW90ZWRibHJpZ2h0PTMzMztlLmd1aWxsZW1vdHJpZ2h0PTU1NjtlLmVsbGlwc2lzPTFlMztlLnBlcnRob3VzYW5kPTFlMztlLnF1ZXN0aW9uZG93bj02MTE7ZS5ncmF2ZT0zMzM7ZS5hY3V0ZT0zMzM7ZS5jaXJjdW1mbGV4PTMzMztlLnRpbGRlPTMzMztlLm1hY3Jvbj0zMzM7ZS5icmV2ZT0zMzM7ZS5kb3RhY2NlbnQ9MzMzO2UuZGllcmVzaXM9MzMzO2UucmluZz0zMzM7ZS5jZWRpbGxhPTMzMztlLmh1bmdhcnVtbGF1dD0zMzM7ZS5vZ29uZWs9MzMzO2UuY2Fyb249MzMzO2UuZW1kYXNoPTFlMztlLkFFPTFlMztlLm9yZGZlbWluaW5lPTM3MDtlLkxzbGFzaD01NTY7ZS5Pc2xhc2g9Nzc4O2UuT0U9MWUzO2Uub3JkbWFzY3VsaW5lPTM2NTtlLmFlPTg4OTtlLmRvdGxlc3NpPTI3ODtlLmxzbGFzaD0yMjI7ZS5vc2xhc2g9NjExO2Uub2U9OTQ0O2UuZ2VybWFuZGJscz02MTE7ZS5JZGllcmVzaXM9Mjc4O2UuZWFjdXRlPTU1NjtlLmFicmV2ZT01NTY7ZS51aHVuZ2FydW1sYXV0PTU1NjtlLmVjYXJvbj01NTY7ZS5ZZGllcmVzaXM9NjY3O2UuZGl2aWRlPTU4NDtlLllhY3V0ZT02Njc7ZS5BY2lyY3VtZmxleD02Njc7ZS5hYWN1dGU9NTU2O2UuVWNpcmN1bWZsZXg9NzIyO2UueWFjdXRlPTUwMDtlLnNjb21tYWFjY2VudD01MDA7ZS5lY2lyY3VtZmxleD01NTY7ZS5VcmluZz03MjI7ZS5VZGllcmVzaXM9NzIyO2UuYW9nb25laz01NTY7ZS5VYWN1dGU9NzIyO2UudW9nb25laz01NTY7ZS5FZGllcmVzaXM9NjY3O2UuRGNyb2F0PTcyMjtlLmNvbW1hYWNjZW50PTI1MDtlLmNvcHlyaWdodD03Mzc7ZS5FbWFjcm9uPTY2NztlLmNjYXJvbj01MDA7ZS5hcmluZz01NTY7ZS5OY29tbWFhY2NlbnQ9NzIyO2UubGFjdXRlPTIyMjtlLmFncmF2ZT01NTY7ZS5UY29tbWFhY2NlbnQ9NjExO2UuQ2FjdXRlPTcyMjtlLmF0aWxkZT01NTY7ZS5FZG90YWNjZW50PTY2NztlLnNjYXJvbj01MDA7ZS5zY2VkaWxsYT01MDA7ZS5pYWN1dGU9Mjc4O2UubG96ZW5nZT00NzE7ZS5SY2Fyb249NzIyO2UuR2NvbW1hYWNjZW50PTc3ODtlLnVjaXJjdW1mbGV4PTU1NjtlLmFjaXJjdW1mbGV4PTU1NjtlLkFtYWNyb249NjY3O2UucmNhcm9uPTMzMztlLmNjZWRpbGxhPTUwMDtlLlpkb3RhY2NlbnQ9NjExO2UuVGhvcm49NjY3O2UuT21hY3Jvbj03Nzg7ZS5SYWN1dGU9NzIyO2UuU2FjdXRlPTY2NztlLmRjYXJvbj02NDM7ZS5VbWFjcm9uPTcyMjtlLnVyaW5nPTU1NjtlLnRocmVlc3VwZXJpb3I9MzMzO2UuT2dyYXZlPTc3ODtlLkFncmF2ZT02Njc7ZS5BYnJldmU9NjY3O2UubXVsdGlwbHk9NTg0O2UudWFjdXRlPTU1NjtlLlRjYXJvbj02MTE7ZS5wYXJ0aWFsZGlmZj00NzY7ZS55ZGllcmVzaXM9NTAwO2UuTmFjdXRlPTcyMjtlLmljaXJjdW1mbGV4PTI3ODtlLkVjaXJjdW1mbGV4PTY2NztlLmFkaWVyZXNpcz01NTY7ZS5lZGllcmVzaXM9NTU2O2UuY2FjdXRlPTUwMDtlLm5hY3V0ZT01NTY7ZS51bWFjcm9uPTU1NjtlLk5jYXJvbj03MjI7ZS5JYWN1dGU9Mjc4O2UucGx1c21pbnVzPTU4NDtlLmJyb2tlbmJhcj0yNjA7ZS5yZWdpc3RlcmVkPTczNztlLkdicmV2ZT03Nzg7ZS5JZG90YWNjZW50PTI3ODtlLnN1bW1hdGlvbj02MDA7ZS5FZ3JhdmU9NjY3O2UucmFjdXRlPTMzMztlLm9tYWNyb249NTU2O2UuWmFjdXRlPTYxMTtlLlpjYXJvbj02MTE7ZS5ncmVhdGVyZXF1YWw9NTQ5O2UuRXRoPTcyMjtlLkNjZWRpbGxhPTcyMjtlLmxjb21tYWFjY2VudD0yMjI7ZS50Y2Fyb249MzE3O2UuZW9nb25laz01NTY7ZS5Vb2dvbmVrPTcyMjtlLkFhY3V0ZT02Njc7ZS5BZGllcmVzaXM9NjY3O2UuZWdyYXZlPTU1NjtlLnphY3V0ZT01MDA7ZS5pb2dvbmVrPTIyMjtlLk9hY3V0ZT03Nzg7ZS5vYWN1dGU9NTU2O2UuYW1hY3Jvbj01NTY7ZS5zYWN1dGU9NTAwO2UuaWRpZXJlc2lzPTI3ODtlLk9jaXJjdW1mbGV4PTc3ODtlLlVncmF2ZT03MjI7ZS5EZWx0YT02MTI7ZS50aG9ybj01NTY7ZS50d29zdXBlcmlvcj0zMzM7ZS5PZGllcmVzaXM9Nzc4O2UubXU9NTU2O2UuaWdyYXZlPTI3ODtlLm9odW5nYXJ1bWxhdXQ9NTU2O2UuRW9nb25laz02Njc7ZS5kY3JvYXQ9NTU2O2UudGhyZWVxdWFydGVycz04MzQ7ZS5TY2VkaWxsYT02Njc7ZS5sY2Fyb249Mjk5O2UuS2NvbW1hYWNjZW50PTY2NztlLkxhY3V0ZT01NTY7ZS50cmFkZW1hcms9MWUzO2UuZWRvdGFjY2VudD01NTY7ZS5JZ3JhdmU9Mjc4O2UuSW1hY3Jvbj0yNzg7ZS5MY2Fyb249NTU2O2Uub25laGFsZj04MzQ7ZS5sZXNzZXF1YWw9NTQ5O2Uub2NpcmN1bWZsZXg9NTU2O2UubnRpbGRlPTU1NjtlLlVodW5nYXJ1bWxhdXQ9NzIyO2UuRWFjdXRlPTY2NztlLmVtYWNyb249NTU2O2UuZ2JyZXZlPTU1NjtlLm9uZXF1YXJ0ZXI9ODM0O2UuU2Nhcm9uPTY2NztlLlNjb21tYWFjY2VudD02Njc7ZS5PaHVuZ2FydW1sYXV0PTc3ODtlLmRlZ3JlZT00MDA7ZS5vZ3JhdmU9NTU2O2UuQ2Nhcm9uPTcyMjtlLnVncmF2ZT01NTY7ZS5yYWRpY2FsPTQ1MztlLkRjYXJvbj03MjI7ZS5yY29tbWFhY2NlbnQ9MzMzO2UuTnRpbGRlPTcyMjtlLm90aWxkZT01NTY7ZS5SY29tbWFhY2NlbnQ9NzIyO2UuTGNvbW1hYWNjZW50PTU1NjtlLkF0aWxkZT02Njc7ZS5Bb2dvbmVrPTY2NztlLkFyaW5nPTY2NztlLk90aWxkZT03Nzg7ZS56ZG90YWNjZW50PTUwMDtlLkVjYXJvbj02Njc7ZS5Jb2dvbmVrPTI3ODtlLmtjb21tYWFjY2VudD01MDA7ZS5taW51cz01ODQ7ZS5JY2lyY3VtZmxleD0yNzg7ZS5uY2Fyb249NTU2O2UudGNvbW1hYWNjZW50PTI3ODtlLmxvZ2ljYWxub3Q9NTg0O2Uub2RpZXJlc2lzPTU1NjtlLnVkaWVyZXNpcz01NTY7ZS5ub3RlcXVhbD01NDk7ZS5nY29tbWFhY2NlbnQ9NTU2O2UuZXRoPTU1NjtlLnpjYXJvbj01MDA7ZS5uY29tbWFhY2NlbnQ9NTU2O2Uub25lc3VwZXJpb3I9MzMzO2UuaW1hY3Jvbj0yNzg7ZS5FdXJvPTU1Nn0pKTtlWyJIZWx2ZXRpY2EtQm9sZCJdPWdldExvb2t1cFRhYmxlRmFjdG9yeSgoZnVuY3Rpb24oZSl7ZS5zcGFjZT0yNzg7ZS5leGNsYW09MzMzO2UucXVvdGVkYmw9NDc0O2UubnVtYmVyc2lnbj01NTY7ZS5kb2xsYXI9NTU2O2UucGVyY2VudD04ODk7ZS5hbXBlcnNhbmQ9NzIyO2UucXVvdGVyaWdodD0yNzg7ZS5wYXJlbmxlZnQ9MzMzO2UucGFyZW5yaWdodD0zMzM7ZS5hc3Rlcmlzaz0zODk7ZS5wbHVzPTU4NDtlLmNvbW1hPTI3ODtlLmh5cGhlbj0zMzM7ZS5wZXJpb2Q9Mjc4O2Uuc2xhc2g9Mjc4O2UuemVybz01NTY7ZS5vbmU9NTU2O2UudHdvPTU1NjtlLnRocmVlPTU1NjtlLmZvdXI9NTU2O2UuZml2ZT01NTY7ZS5zaXg9NTU2O2Uuc2V2ZW49NTU2O2UuZWlnaHQ9NTU2O2UubmluZT01NTY7ZS5jb2xvbj0zMzM7ZS5zZW1pY29sb249MzMzO2UubGVzcz01ODQ7ZS5lcXVhbD01ODQ7ZS5ncmVhdGVyPTU4NDtlLnF1ZXN0aW9uPTYxMTtlLmF0PTk3NTtlLkE9NzIyO2UuQj03MjI7ZS5DPTcyMjtlLkQ9NzIyO2UuRT02Njc7ZS5GPTYxMTtlLkc9Nzc4O2UuSD03MjI7ZS5JPTI3ODtlLko9NTU2O2UuSz03MjI7ZS5MPTYxMTtlLk09ODMzO2UuTj03MjI7ZS5PPTc3ODtlLlA9NjY3O2UuUT03Nzg7ZS5SPTcyMjtlLlM9NjY3O2UuVD02MTE7ZS5VPTcyMjtlLlY9NjY3O2UuVz05NDQ7ZS5YPTY2NztlLlk9NjY3O2UuWj02MTE7ZS5icmFja2V0bGVmdD0zMzM7ZS5iYWNrc2xhc2g9Mjc4O2UuYnJhY2tldHJpZ2h0PTMzMztlLmFzY2lpY2lyY3VtPTU4NDtlLnVuZGVyc2NvcmU9NTU2O2UucXVvdGVsZWZ0PTI3ODtlLmE9NTU2O2UuYj02MTE7ZS5jPTU1NjtlLmQ9NjExO2UuZT01NTY7ZS5mPTMzMztlLmc9NjExO2UuaD02MTE7ZS5pPTI3ODtlLmo9Mjc4O2Uuaz01NTY7ZS5sPTI3ODtlLm09ODg5O2Uubj02MTE7ZS5vPTYxMTtlLnA9NjExO2UucT02MTE7ZS5yPTM4OTtlLnM9NTU2O2UudD0zMzM7ZS51PTYxMTtlLnY9NTU2O2Uudz03Nzg7ZS54PTU1NjtlLnk9NTU2O2Uuej01MDA7ZS5icmFjZWxlZnQ9Mzg5O2UuYmFyPTI4MDtlLmJyYWNlcmlnaHQ9Mzg5O2UuYXNjaWl0aWxkZT01ODQ7ZS5leGNsYW1kb3duPTMzMztlLmNlbnQ9NTU2O2Uuc3Rlcmxpbmc9NTU2O2UuZnJhY3Rpb249MTY3O2UueWVuPTU1NjtlLmZsb3Jpbj01NTY7ZS5zZWN0aW9uPTU1NjtlLmN1cnJlbmN5PTU1NjtlLnF1b3Rlc2luZ2xlPTIzODtlLnF1b3RlZGJsbGVmdD01MDA7ZS5ndWlsbGVtb3RsZWZ0PTU1NjtlLmd1aWxzaW5nbGxlZnQ9MzMzO2UuZ3VpbHNpbmdscmlnaHQ9MzMzO2UuZmk9NjExO2UuZmw9NjExO2UuZW5kYXNoPTU1NjtlLmRhZ2dlcj01NTY7ZS5kYWdnZXJkYmw9NTU2O2UucGVyaW9kY2VudGVyZWQ9Mjc4O2UucGFyYWdyYXBoPTU1NjtlLmJ1bGxldD0zNTA7ZS5xdW90ZXNpbmdsYmFzZT0yNzg7ZS5xdW90ZWRibGJhc2U9NTAwO2UucXVvdGVkYmxyaWdodD01MDA7ZS5ndWlsbGVtb3RyaWdodD01NTY7ZS5lbGxpcHNpcz0xZTM7ZS5wZXJ0aG91c2FuZD0xZTM7ZS5xdWVzdGlvbmRvd249NjExO2UuZ3JhdmU9MzMzO2UuYWN1dGU9MzMzO2UuY2lyY3VtZmxleD0zMzM7ZS50aWxkZT0zMzM7ZS5tYWNyb249MzMzO2UuYnJldmU9MzMzO2UuZG90YWNjZW50PTMzMztlLmRpZXJlc2lzPTMzMztlLnJpbmc9MzMzO2UuY2VkaWxsYT0zMzM7ZS5odW5nYXJ1bWxhdXQ9MzMzO2Uub2dvbmVrPTMzMztlLmNhcm9uPTMzMztlLmVtZGFzaD0xZTM7ZS5BRT0xZTM7ZS5vcmRmZW1pbmluZT0zNzA7ZS5Mc2xhc2g9NjExO2UuT3NsYXNoPTc3ODtlLk9FPTFlMztlLm9yZG1hc2N1bGluZT0zNjU7ZS5hZT04ODk7ZS5kb3RsZXNzaT0yNzg7ZS5sc2xhc2g9Mjc4O2Uub3NsYXNoPTYxMTtlLm9lPTk0NDtlLmdlcm1hbmRibHM9NjExO2UuSWRpZXJlc2lzPTI3ODtlLmVhY3V0ZT01NTY7ZS5hYnJldmU9NTU2O2UudWh1bmdhcnVtbGF1dD02MTE7ZS5lY2Fyb249NTU2O2UuWWRpZXJlc2lzPTY2NztlLmRpdmlkZT01ODQ7ZS5ZYWN1dGU9NjY3O2UuQWNpcmN1bWZsZXg9NzIyO2UuYWFjdXRlPTU1NjtlLlVjaXJjdW1mbGV4PTcyMjtlLnlhY3V0ZT01NTY7ZS5zY29tbWFhY2NlbnQ9NTU2O2UuZWNpcmN1bWZsZXg9NTU2O2UuVXJpbmc9NzIyO2UuVWRpZXJlc2lzPTcyMjtlLmFvZ29uZWs9NTU2O2UuVWFjdXRlPTcyMjtlLnVvZ29uZWs9NjExO2UuRWRpZXJlc2lzPTY2NztlLkRjcm9hdD03MjI7ZS5jb21tYWFjY2VudD0yNTA7ZS5jb3B5cmlnaHQ9NzM3O2UuRW1hY3Jvbj02Njc7ZS5jY2Fyb249NTU2O2UuYXJpbmc9NTU2O2UuTmNvbW1hYWNjZW50PTcyMjtlLmxhY3V0ZT0yNzg7ZS5hZ3JhdmU9NTU2O2UuVGNvbW1hYWNjZW50PTYxMTtlLkNhY3V0ZT03MjI7ZS5hdGlsZGU9NTU2O2UuRWRvdGFjY2VudD02Njc7ZS5zY2Fyb249NTU2O2Uuc2NlZGlsbGE9NTU2O2UuaWFjdXRlPTI3ODtlLmxvemVuZ2U9NDk0O2UuUmNhcm9uPTcyMjtlLkdjb21tYWFjY2VudD03Nzg7ZS51Y2lyY3VtZmxleD02MTE7ZS5hY2lyY3VtZmxleD01NTY7ZS5BbWFjcm9uPTcyMjtlLnJjYXJvbj0zODk7ZS5jY2VkaWxsYT01NTY7ZS5aZG90YWNjZW50PTYxMTtlLlRob3JuPTY2NztlLk9tYWNyb249Nzc4O2UuUmFjdXRlPTcyMjtlLlNhY3V0ZT02Njc7ZS5kY2Fyb249NzQzO2UuVW1hY3Jvbj03MjI7ZS51cmluZz02MTE7ZS50aHJlZXN1cGVyaW9yPTMzMztlLk9ncmF2ZT03Nzg7ZS5BZ3JhdmU9NzIyO2UuQWJyZXZlPTcyMjtlLm11bHRpcGx5PTU4NDtlLnVhY3V0ZT02MTE7ZS5UY2Fyb249NjExO2UucGFydGlhbGRpZmY9NDk0O2UueWRpZXJlc2lzPTU1NjtlLk5hY3V0ZT03MjI7ZS5pY2lyY3VtZmxleD0yNzg7ZS5FY2lyY3VtZmxleD02Njc7ZS5hZGllcmVzaXM9NTU2O2UuZWRpZXJlc2lzPTU1NjtlLmNhY3V0ZT01NTY7ZS5uYWN1dGU9NjExO2UudW1hY3Jvbj02MTE7ZS5OY2Fyb249NzIyO2UuSWFjdXRlPTI3ODtlLnBsdXNtaW51cz01ODQ7ZS5icm9rZW5iYXI9MjgwO2UucmVnaXN0ZXJlZD03Mzc7ZS5HYnJldmU9Nzc4O2UuSWRvdGFjY2VudD0yNzg7ZS5zdW1tYXRpb249NjAwO2UuRWdyYXZlPTY2NztlLnJhY3V0ZT0zODk7ZS5vbWFjcm9uPTYxMTtlLlphY3V0ZT02MTE7ZS5aY2Fyb249NjExO2UuZ3JlYXRlcmVxdWFsPTU0OTtlLkV0aD03MjI7ZS5DY2VkaWxsYT03MjI7ZS5sY29tbWFhY2NlbnQ9Mjc4O2UudGNhcm9uPTM4OTtlLmVvZ29uZWs9NTU2O2UuVW9nb25laz03MjI7ZS5BYWN1dGU9NzIyO2UuQWRpZXJlc2lzPTcyMjtlLmVncmF2ZT01NTY7ZS56YWN1dGU9NTAwO2UuaW9nb25laz0yNzg7ZS5PYWN1dGU9Nzc4O2Uub2FjdXRlPTYxMTtlLmFtYWNyb249NTU2O2Uuc2FjdXRlPTU1NjtlLmlkaWVyZXNpcz0yNzg7ZS5PY2lyY3VtZmxleD03Nzg7ZS5VZ3JhdmU9NzIyO2UuRGVsdGE9NjEyO2UudGhvcm49NjExO2UudHdvc3VwZXJpb3I9MzMzO2UuT2RpZXJlc2lzPTc3ODtlLm11PTYxMTtlLmlncmF2ZT0yNzg7ZS5vaHVuZ2FydW1sYXV0PTYxMTtlLkVvZ29uZWs9NjY3O2UuZGNyb2F0PTYxMTtlLnRocmVlcXVhcnRlcnM9ODM0O2UuU2NlZGlsbGE9NjY3O2UubGNhcm9uPTQwMDtlLktjb21tYWFjY2VudD03MjI7ZS5MYWN1dGU9NjExO2UudHJhZGVtYXJrPTFlMztlLmVkb3RhY2NlbnQ9NTU2O2UuSWdyYXZlPTI3ODtlLkltYWNyb249Mjc4O2UuTGNhcm9uPTYxMTtlLm9uZWhhbGY9ODM0O2UubGVzc2VxdWFsPTU0OTtlLm9jaXJjdW1mbGV4PTYxMTtlLm50aWxkZT02MTE7ZS5VaHVuZ2FydW1sYXV0PTcyMjtlLkVhY3V0ZT02Njc7ZS5lbWFjcm9uPTU1NjtlLmdicmV2ZT02MTE7ZS5vbmVxdWFydGVyPTgzNDtlLlNjYXJvbj02Njc7ZS5TY29tbWFhY2NlbnQ9NjY3O2UuT2h1bmdhcnVtbGF1dD03Nzg7ZS5kZWdyZWU9NDAwO2Uub2dyYXZlPTYxMTtlLkNjYXJvbj03MjI7ZS51Z3JhdmU9NjExO2UucmFkaWNhbD01NDk7ZS5EY2Fyb249NzIyO2UucmNvbW1hYWNjZW50PTM4OTtlLk50aWxkZT03MjI7ZS5vdGlsZGU9NjExO2UuUmNvbW1hYWNjZW50PTcyMjtlLkxjb21tYWFjY2VudD02MTE7ZS5BdGlsZGU9NzIyO2UuQW9nb25laz03MjI7ZS5BcmluZz03MjI7ZS5PdGlsZGU9Nzc4O2UuemRvdGFjY2VudD01MDA7ZS5FY2Fyb249NjY3O2UuSW9nb25laz0yNzg7ZS5rY29tbWFhY2NlbnQ9NTU2O2UubWludXM9NTg0O2UuSWNpcmN1bWZsZXg9Mjc4O2UubmNhcm9uPTYxMTtlLnRjb21tYWFjY2VudD0zMzM7ZS5sb2dpY2Fsbm90PTU4NDtlLm9kaWVyZXNpcz02MTE7ZS51ZGllcmVzaXM9NjExO2Uubm90ZXF1YWw9NTQ5O2UuZ2NvbW1hYWNjZW50PTYxMTtlLmV0aD02MTE7ZS56Y2Fyb249NTAwO2UubmNvbW1hYWNjZW50PTYxMTtlLm9uZXN1cGVyaW9yPTMzMztlLmltYWNyb249Mjc4O2UuRXVybz01NTZ9KSk7ZVsiSGVsdmV0aWNhLUJvbGRPYmxpcXVlIl09Z2V0TG9va3VwVGFibGVGYWN0b3J5KChmdW5jdGlvbihlKXtlLnNwYWNlPTI3ODtlLmV4Y2xhbT0zMzM7ZS5xdW90ZWRibD00NzQ7ZS5udW1iZXJzaWduPTU1NjtlLmRvbGxhcj01NTY7ZS5wZXJjZW50PTg4OTtlLmFtcGVyc2FuZD03MjI7ZS5xdW90ZXJpZ2h0PTI3ODtlLnBhcmVubGVmdD0zMzM7ZS5wYXJlbnJpZ2h0PTMzMztlLmFzdGVyaXNrPTM4OTtlLnBsdXM9NTg0O2UuY29tbWE9Mjc4O2UuaHlwaGVuPTMzMztlLnBlcmlvZD0yNzg7ZS5zbGFzaD0yNzg7ZS56ZXJvPTU1NjtlLm9uZT01NTY7ZS50d289NTU2O2UudGhyZWU9NTU2O2UuZm91cj01NTY7ZS5maXZlPTU1NjtlLnNpeD01NTY7ZS5zZXZlbj01NTY7ZS5laWdodD01NTY7ZS5uaW5lPTU1NjtlLmNvbG9uPTMzMztlLnNlbWljb2xvbj0zMzM7ZS5sZXNzPTU4NDtlLmVxdWFsPTU4NDtlLmdyZWF0ZXI9NTg0O2UucXVlc3Rpb249NjExO2UuYXQ9OTc1O2UuQT03MjI7ZS5CPTcyMjtlLkM9NzIyO2UuRD03MjI7ZS5FPTY2NztlLkY9NjExO2UuRz03Nzg7ZS5IPTcyMjtlLkk9Mjc4O2UuSj01NTY7ZS5LPTcyMjtlLkw9NjExO2UuTT04MzM7ZS5OPTcyMjtlLk89Nzc4O2UuUD02Njc7ZS5RPTc3ODtlLlI9NzIyO2UuUz02Njc7ZS5UPTYxMTtlLlU9NzIyO2UuVj02Njc7ZS5XPTk0NDtlLlg9NjY3O2UuWT02Njc7ZS5aPTYxMTtlLmJyYWNrZXRsZWZ0PTMzMztlLmJhY2tzbGFzaD0yNzg7ZS5icmFja2V0cmlnaHQ9MzMzO2UuYXNjaWljaXJjdW09NTg0O2UudW5kZXJzY29yZT01NTY7ZS5xdW90ZWxlZnQ9Mjc4O2UuYT01NTY7ZS5iPTYxMTtlLmM9NTU2O2UuZD02MTE7ZS5lPTU1NjtlLmY9MzMzO2UuZz02MTE7ZS5oPTYxMTtlLmk9Mjc4O2Uuaj0yNzg7ZS5rPTU1NjtlLmw9Mjc4O2UubT04ODk7ZS5uPTYxMTtlLm89NjExO2UucD02MTE7ZS5xPTYxMTtlLnI9Mzg5O2Uucz01NTY7ZS50PTMzMztlLnU9NjExO2Uudj01NTY7ZS53PTc3ODtlLng9NTU2O2UueT01NTY7ZS56PTUwMDtlLmJyYWNlbGVmdD0zODk7ZS5iYXI9MjgwO2UuYnJhY2VyaWdodD0zODk7ZS5hc2NpaXRpbGRlPTU4NDtlLmV4Y2xhbWRvd249MzMzO2UuY2VudD01NTY7ZS5zdGVybGluZz01NTY7ZS5mcmFjdGlvbj0xNjc7ZS55ZW49NTU2O2UuZmxvcmluPTU1NjtlLnNlY3Rpb249NTU2O2UuY3VycmVuY3k9NTU2O2UucXVvdGVzaW5nbGU9MjM4O2UucXVvdGVkYmxsZWZ0PTUwMDtlLmd1aWxsZW1vdGxlZnQ9NTU2O2UuZ3VpbHNpbmdsbGVmdD0zMzM7ZS5ndWlsc2luZ2xyaWdodD0zMzM7ZS5maT02MTE7ZS5mbD02MTE7ZS5lbmRhc2g9NTU2O2UuZGFnZ2VyPTU1NjtlLmRhZ2dlcmRibD01NTY7ZS5wZXJpb2RjZW50ZXJlZD0yNzg7ZS5wYXJhZ3JhcGg9NTU2O2UuYnVsbGV0PTM1MDtlLnF1b3Rlc2luZ2xiYXNlPTI3ODtlLnF1b3RlZGJsYmFzZT01MDA7ZS5xdW90ZWRibHJpZ2h0PTUwMDtlLmd1aWxsZW1vdHJpZ2h0PTU1NjtlLmVsbGlwc2lzPTFlMztlLnBlcnRob3VzYW5kPTFlMztlLnF1ZXN0aW9uZG93bj02MTE7ZS5ncmF2ZT0zMzM7ZS5hY3V0ZT0zMzM7ZS5jaXJjdW1mbGV4PTMzMztlLnRpbGRlPTMzMztlLm1hY3Jvbj0zMzM7ZS5icmV2ZT0zMzM7ZS5kb3RhY2NlbnQ9MzMzO2UuZGllcmVzaXM9MzMzO2UucmluZz0zMzM7ZS5jZWRpbGxhPTMzMztlLmh1bmdhcnVtbGF1dD0zMzM7ZS5vZ29uZWs9MzMzO2UuY2Fyb249MzMzO2UuZW1kYXNoPTFlMztlLkFFPTFlMztlLm9yZGZlbWluaW5lPTM3MDtlLkxzbGFzaD02MTE7ZS5Pc2xhc2g9Nzc4O2UuT0U9MWUzO2Uub3JkbWFzY3VsaW5lPTM2NTtlLmFlPTg4OTtlLmRvdGxlc3NpPTI3ODtlLmxzbGFzaD0yNzg7ZS5vc2xhc2g9NjExO2Uub2U9OTQ0O2UuZ2VybWFuZGJscz02MTE7ZS5JZGllcmVzaXM9Mjc4O2UuZWFjdXRlPTU1NjtlLmFicmV2ZT01NTY7ZS51aHVuZ2FydW1sYXV0PTYxMTtlLmVjYXJvbj01NTY7ZS5ZZGllcmVzaXM9NjY3O2UuZGl2aWRlPTU4NDtlLllhY3V0ZT02Njc7ZS5BY2lyY3VtZmxleD03MjI7ZS5hYWN1dGU9NTU2O2UuVWNpcmN1bWZsZXg9NzIyO2UueWFjdXRlPTU1NjtlLnNjb21tYWFjY2VudD01NTY7ZS5lY2lyY3VtZmxleD01NTY7ZS5VcmluZz03MjI7ZS5VZGllcmVzaXM9NzIyO2UuYW9nb25laz01NTY7ZS5VYWN1dGU9NzIyO2UudW9nb25laz02MTE7ZS5FZGllcmVzaXM9NjY3O2UuRGNyb2F0PTcyMjtlLmNvbW1hYWNjZW50PTI1MDtlLmNvcHlyaWdodD03Mzc7ZS5FbWFjcm9uPTY2NztlLmNjYXJvbj01NTY7ZS5hcmluZz01NTY7ZS5OY29tbWFhY2NlbnQ9NzIyO2UubGFjdXRlPTI3ODtlLmFncmF2ZT01NTY7ZS5UY29tbWFhY2NlbnQ9NjExO2UuQ2FjdXRlPTcyMjtlLmF0aWxkZT01NTY7ZS5FZG90YWNjZW50PTY2NztlLnNjYXJvbj01NTY7ZS5zY2VkaWxsYT01NTY7ZS5pYWN1dGU9Mjc4O2UubG96ZW5nZT00OTQ7ZS5SY2Fyb249NzIyO2UuR2NvbW1hYWNjZW50PTc3ODtlLnVjaXJjdW1mbGV4PTYxMTtlLmFjaXJjdW1mbGV4PTU1NjtlLkFtYWNyb249NzIyO2UucmNhcm9uPTM4OTtlLmNjZWRpbGxhPTU1NjtlLlpkb3RhY2NlbnQ9NjExO2UuVGhvcm49NjY3O2UuT21hY3Jvbj03Nzg7ZS5SYWN1dGU9NzIyO2UuU2FjdXRlPTY2NztlLmRjYXJvbj03NDM7ZS5VbWFjcm9uPTcyMjtlLnVyaW5nPTYxMTtlLnRocmVlc3VwZXJpb3I9MzMzO2UuT2dyYXZlPTc3ODtlLkFncmF2ZT03MjI7ZS5BYnJldmU9NzIyO2UubXVsdGlwbHk9NTg0O2UudWFjdXRlPTYxMTtlLlRjYXJvbj02MTE7ZS5wYXJ0aWFsZGlmZj00OTQ7ZS55ZGllcmVzaXM9NTU2O2UuTmFjdXRlPTcyMjtlLmljaXJjdW1mbGV4PTI3ODtlLkVjaXJjdW1mbGV4PTY2NztlLmFkaWVyZXNpcz01NTY7ZS5lZGllcmVzaXM9NTU2O2UuY2FjdXRlPTU1NjtlLm5hY3V0ZT02MTE7ZS51bWFjcm9uPTYxMTtlLk5jYXJvbj03MjI7ZS5JYWN1dGU9Mjc4O2UucGx1c21pbnVzPTU4NDtlLmJyb2tlbmJhcj0yODA7ZS5yZWdpc3RlcmVkPTczNztlLkdicmV2ZT03Nzg7ZS5JZG90YWNjZW50PTI3ODtlLnN1bW1hdGlvbj02MDA7ZS5FZ3JhdmU9NjY3O2UucmFjdXRlPTM4OTtlLm9tYWNyb249NjExO2UuWmFjdXRlPTYxMTtlLlpjYXJvbj02MTE7ZS5ncmVhdGVyZXF1YWw9NTQ5O2UuRXRoPTcyMjtlLkNjZWRpbGxhPTcyMjtlLmxjb21tYWFjY2VudD0yNzg7ZS50Y2Fyb249Mzg5O2UuZW9nb25laz01NTY7ZS5Vb2dvbmVrPTcyMjtlLkFhY3V0ZT03MjI7ZS5BZGllcmVzaXM9NzIyO2UuZWdyYXZlPTU1NjtlLnphY3V0ZT01MDA7ZS5pb2dvbmVrPTI3ODtlLk9hY3V0ZT03Nzg7ZS5vYWN1dGU9NjExO2UuYW1hY3Jvbj01NTY7ZS5zYWN1dGU9NTU2O2UuaWRpZXJlc2lzPTI3ODtlLk9jaXJjdW1mbGV4PTc3ODtlLlVncmF2ZT03MjI7ZS5EZWx0YT02MTI7ZS50aG9ybj02MTE7ZS50d29zdXBlcmlvcj0zMzM7ZS5PZGllcmVzaXM9Nzc4O2UubXU9NjExO2UuaWdyYXZlPTI3ODtlLm9odW5nYXJ1bWxhdXQ9NjExO2UuRW9nb25laz02Njc7ZS5kY3JvYXQ9NjExO2UudGhyZWVxdWFydGVycz04MzQ7ZS5TY2VkaWxsYT02Njc7ZS5sY2Fyb249NDAwO2UuS2NvbW1hYWNjZW50PTcyMjtlLkxhY3V0ZT02MTE7ZS50cmFkZW1hcms9MWUzO2UuZWRvdGFjY2VudD01NTY7ZS5JZ3JhdmU9Mjc4O2UuSW1hY3Jvbj0yNzg7ZS5MY2Fyb249NjExO2Uub25laGFsZj04MzQ7ZS5sZXNzZXF1YWw9NTQ5O2Uub2NpcmN1bWZsZXg9NjExO2UubnRpbGRlPTYxMTtlLlVodW5nYXJ1bWxhdXQ9NzIyO2UuRWFjdXRlPTY2NztlLmVtYWNyb249NTU2O2UuZ2JyZXZlPTYxMTtlLm9uZXF1YXJ0ZXI9ODM0O2UuU2Nhcm9uPTY2NztlLlNjb21tYWFjY2VudD02Njc7ZS5PaHVuZ2FydW1sYXV0PTc3ODtlLmRlZ3JlZT00MDA7ZS5vZ3JhdmU9NjExO2UuQ2Nhcm9uPTcyMjtlLnVncmF2ZT02MTE7ZS5yYWRpY2FsPTU0OTtlLkRjYXJvbj03MjI7ZS5yY29tbWFhY2NlbnQ9Mzg5O2UuTnRpbGRlPTcyMjtlLm90aWxkZT02MTE7ZS5SY29tbWFhY2NlbnQ9NzIyO2UuTGNvbW1hYWNjZW50PTYxMTtlLkF0aWxkZT03MjI7ZS5Bb2dvbmVrPTcyMjtlLkFyaW5nPTcyMjtlLk90aWxkZT03Nzg7ZS56ZG90YWNjZW50PTUwMDtlLkVjYXJvbj02Njc7ZS5Jb2dvbmVrPTI3ODtlLmtjb21tYWFjY2VudD01NTY7ZS5taW51cz01ODQ7ZS5JY2lyY3VtZmxleD0yNzg7ZS5uY2Fyb249NjExO2UudGNvbW1hYWNjZW50PTMzMztlLmxvZ2ljYWxub3Q9NTg0O2Uub2RpZXJlc2lzPTYxMTtlLnVkaWVyZXNpcz02MTE7ZS5ub3RlcXVhbD01NDk7ZS5nY29tbWFhY2NlbnQ9NjExO2UuZXRoPTYxMTtlLnpjYXJvbj01MDA7ZS5uY29tbWFhY2NlbnQ9NjExO2Uub25lc3VwZXJpb3I9MzMzO2UuaW1hY3Jvbj0yNzg7ZS5FdXJvPTU1Nn0pKTtlWyJIZWx2ZXRpY2EtT2JsaXF1ZSJdPWdldExvb2t1cFRhYmxlRmFjdG9yeSgoZnVuY3Rpb24oZSl7ZS5zcGFjZT0yNzg7ZS5leGNsYW09Mjc4O2UucXVvdGVkYmw9MzU1O2UubnVtYmVyc2lnbj01NTY7ZS5kb2xsYXI9NTU2O2UucGVyY2VudD04ODk7ZS5hbXBlcnNhbmQ9NjY3O2UucXVvdGVyaWdodD0yMjI7ZS5wYXJlbmxlZnQ9MzMzO2UucGFyZW5yaWdodD0zMzM7ZS5hc3Rlcmlzaz0zODk7ZS5wbHVzPTU4NDtlLmNvbW1hPTI3ODtlLmh5cGhlbj0zMzM7ZS5wZXJpb2Q9Mjc4O2Uuc2xhc2g9Mjc4O2UuemVybz01NTY7ZS5vbmU9NTU2O2UudHdvPTU1NjtlLnRocmVlPTU1NjtlLmZvdXI9NTU2O2UuZml2ZT01NTY7ZS5zaXg9NTU2O2Uuc2V2ZW49NTU2O2UuZWlnaHQ9NTU2O2UubmluZT01NTY7ZS5jb2xvbj0yNzg7ZS5zZW1pY29sb249Mjc4O2UubGVzcz01ODQ7ZS5lcXVhbD01ODQ7ZS5ncmVhdGVyPTU4NDtlLnF1ZXN0aW9uPTU1NjtlLmF0PTEwMTU7ZS5BPTY2NztlLkI9NjY3O2UuQz03MjI7ZS5EPTcyMjtlLkU9NjY3O2UuRj02MTE7ZS5HPTc3ODtlLkg9NzIyO2UuST0yNzg7ZS5KPTUwMDtlLks9NjY3O2UuTD01NTY7ZS5NPTgzMztlLk49NzIyO2UuTz03Nzg7ZS5QPTY2NztlLlE9Nzc4O2UuUj03MjI7ZS5TPTY2NztlLlQ9NjExO2UuVT03MjI7ZS5WPTY2NztlLlc9OTQ0O2UuWD02Njc7ZS5ZPTY2NztlLlo9NjExO2UuYnJhY2tldGxlZnQ9Mjc4O2UuYmFja3NsYXNoPTI3ODtlLmJyYWNrZXRyaWdodD0yNzg7ZS5hc2NpaWNpcmN1bT00Njk7ZS51bmRlcnNjb3JlPTU1NjtlLnF1b3RlbGVmdD0yMjI7ZS5hPTU1NjtlLmI9NTU2O2UuYz01MDA7ZS5kPTU1NjtlLmU9NTU2O2UuZj0yNzg7ZS5nPTU1NjtlLmg9NTU2O2UuaT0yMjI7ZS5qPTIyMjtlLms9NTAwO2UubD0yMjI7ZS5tPTgzMztlLm49NTU2O2Uubz01NTY7ZS5wPTU1NjtlLnE9NTU2O2Uucj0zMzM7ZS5zPTUwMDtlLnQ9Mjc4O2UudT01NTY7ZS52PTUwMDtlLnc9NzIyO2UueD01MDA7ZS55PTUwMDtlLno9NTAwO2UuYnJhY2VsZWZ0PTMzNDtlLmJhcj0yNjA7ZS5icmFjZXJpZ2h0PTMzNDtlLmFzY2lpdGlsZGU9NTg0O2UuZXhjbGFtZG93bj0zMzM7ZS5jZW50PTU1NjtlLnN0ZXJsaW5nPTU1NjtlLmZyYWN0aW9uPTE2NztlLnllbj01NTY7ZS5mbG9yaW49NTU2O2Uuc2VjdGlvbj01NTY7ZS5jdXJyZW5jeT01NTY7ZS5xdW90ZXNpbmdsZT0xOTE7ZS5xdW90ZWRibGxlZnQ9MzMzO2UuZ3VpbGxlbW90bGVmdD01NTY7ZS5ndWlsc2luZ2xsZWZ0PTMzMztlLmd1aWxzaW5nbHJpZ2h0PTMzMztlLmZpPTUwMDtlLmZsPTUwMDtlLmVuZGFzaD01NTY7ZS5kYWdnZXI9NTU2O2UuZGFnZ2VyZGJsPTU1NjtlLnBlcmlvZGNlbnRlcmVkPTI3ODtlLnBhcmFncmFwaD01Mzc7ZS5idWxsZXQ9MzUwO2UucXVvdGVzaW5nbGJhc2U9MjIyO2UucXVvdGVkYmxiYXNlPTMzMztlLnF1b3RlZGJscmlnaHQ9MzMzO2UuZ3VpbGxlbW90cmlnaHQ9NTU2O2UuZWxsaXBzaXM9MWUzO2UucGVydGhvdXNhbmQ9MWUzO2UucXVlc3Rpb25kb3duPTYxMTtlLmdyYXZlPTMzMztlLmFjdXRlPTMzMztlLmNpcmN1bWZsZXg9MzMzO2UudGlsZGU9MzMzO2UubWFjcm9uPTMzMztlLmJyZXZlPTMzMztlLmRvdGFjY2VudD0zMzM7ZS5kaWVyZXNpcz0zMzM7ZS5yaW5nPTMzMztlLmNlZGlsbGE9MzMzO2UuaHVuZ2FydW1sYXV0PTMzMztlLm9nb25laz0zMzM7ZS5jYXJvbj0zMzM7ZS5lbWRhc2g9MWUzO2UuQUU9MWUzO2Uub3JkZmVtaW5pbmU9MzcwO2UuTHNsYXNoPTU1NjtlLk9zbGFzaD03Nzg7ZS5PRT0xZTM7ZS5vcmRtYXNjdWxpbmU9MzY1O2UuYWU9ODg5O2UuZG90bGVzc2k9Mjc4O2UubHNsYXNoPTIyMjtlLm9zbGFzaD02MTE7ZS5vZT05NDQ7ZS5nZXJtYW5kYmxzPTYxMTtlLklkaWVyZXNpcz0yNzg7ZS5lYWN1dGU9NTU2O2UuYWJyZXZlPTU1NjtlLnVodW5nYXJ1bWxhdXQ9NTU2O2UuZWNhcm9uPTU1NjtlLllkaWVyZXNpcz02Njc7ZS5kaXZpZGU9NTg0O2UuWWFjdXRlPTY2NztlLkFjaXJjdW1mbGV4PTY2NztlLmFhY3V0ZT01NTY7ZS5VY2lyY3VtZmxleD03MjI7ZS55YWN1dGU9NTAwO2Uuc2NvbW1hYWNjZW50PTUwMDtlLmVjaXJjdW1mbGV4PTU1NjtlLlVyaW5nPTcyMjtlLlVkaWVyZXNpcz03MjI7ZS5hb2dvbmVrPTU1NjtlLlVhY3V0ZT03MjI7ZS51b2dvbmVrPTU1NjtlLkVkaWVyZXNpcz02Njc7ZS5EY3JvYXQ9NzIyO2UuY29tbWFhY2NlbnQ9MjUwO2UuY29weXJpZ2h0PTczNztlLkVtYWNyb249NjY3O2UuY2Nhcm9uPTUwMDtlLmFyaW5nPTU1NjtlLk5jb21tYWFjY2VudD03MjI7ZS5sYWN1dGU9MjIyO2UuYWdyYXZlPTU1NjtlLlRjb21tYWFjY2VudD02MTE7ZS5DYWN1dGU9NzIyO2UuYXRpbGRlPTU1NjtlLkVkb3RhY2NlbnQ9NjY3O2Uuc2Nhcm9uPTUwMDtlLnNjZWRpbGxhPTUwMDtlLmlhY3V0ZT0yNzg7ZS5sb3plbmdlPTQ3MTtlLlJjYXJvbj03MjI7ZS5HY29tbWFhY2NlbnQ9Nzc4O2UudWNpcmN1bWZsZXg9NTU2O2UuYWNpcmN1bWZsZXg9NTU2O2UuQW1hY3Jvbj02Njc7ZS5yY2Fyb249MzMzO2UuY2NlZGlsbGE9NTAwO2UuWmRvdGFjY2VudD02MTE7ZS5UaG9ybj02Njc7ZS5PbWFjcm9uPTc3ODtlLlJhY3V0ZT03MjI7ZS5TYWN1dGU9NjY3O2UuZGNhcm9uPTY0MztlLlVtYWNyb249NzIyO2UudXJpbmc9NTU2O2UudGhyZWVzdXBlcmlvcj0zMzM7ZS5PZ3JhdmU9Nzc4O2UuQWdyYXZlPTY2NztlLkFicmV2ZT02Njc7ZS5tdWx0aXBseT01ODQ7ZS51YWN1dGU9NTU2O2UuVGNhcm9uPTYxMTtlLnBhcnRpYWxkaWZmPTQ3NjtlLnlkaWVyZXNpcz01MDA7ZS5OYWN1dGU9NzIyO2UuaWNpcmN1bWZsZXg9Mjc4O2UuRWNpcmN1bWZsZXg9NjY3O2UuYWRpZXJlc2lzPTU1NjtlLmVkaWVyZXNpcz01NTY7ZS5jYWN1dGU9NTAwO2UubmFjdXRlPTU1NjtlLnVtYWNyb249NTU2O2UuTmNhcm9uPTcyMjtlLklhY3V0ZT0yNzg7ZS5wbHVzbWludXM9NTg0O2UuYnJva2VuYmFyPTI2MDtlLnJlZ2lzdGVyZWQ9NzM3O2UuR2JyZXZlPTc3ODtlLklkb3RhY2NlbnQ9Mjc4O2Uuc3VtbWF0aW9uPTYwMDtlLkVncmF2ZT02Njc7ZS5yYWN1dGU9MzMzO2Uub21hY3Jvbj01NTY7ZS5aYWN1dGU9NjExO2UuWmNhcm9uPTYxMTtlLmdyZWF0ZXJlcXVhbD01NDk7ZS5FdGg9NzIyO2UuQ2NlZGlsbGE9NzIyO2UubGNvbW1hYWNjZW50PTIyMjtlLnRjYXJvbj0zMTc7ZS5lb2dvbmVrPTU1NjtlLlVvZ29uZWs9NzIyO2UuQWFjdXRlPTY2NztlLkFkaWVyZXNpcz02Njc7ZS5lZ3JhdmU9NTU2O2UuemFjdXRlPTUwMDtlLmlvZ29uZWs9MjIyO2UuT2FjdXRlPTc3ODtlLm9hY3V0ZT01NTY7ZS5hbWFjcm9uPTU1NjtlLnNhY3V0ZT01MDA7ZS5pZGllcmVzaXM9Mjc4O2UuT2NpcmN1bWZsZXg9Nzc4O2UuVWdyYXZlPTcyMjtlLkRlbHRhPTYxMjtlLnRob3JuPTU1NjtlLnR3b3N1cGVyaW9yPTMzMztlLk9kaWVyZXNpcz03Nzg7ZS5tdT01NTY7ZS5pZ3JhdmU9Mjc4O2Uub2h1bmdhcnVtbGF1dD01NTY7ZS5Fb2dvbmVrPTY2NztlLmRjcm9hdD01NTY7ZS50aHJlZXF1YXJ0ZXJzPTgzNDtlLlNjZWRpbGxhPTY2NztlLmxjYXJvbj0yOTk7ZS5LY29tbWFhY2NlbnQ9NjY3O2UuTGFjdXRlPTU1NjtlLnRyYWRlbWFyaz0xZTM7ZS5lZG90YWNjZW50PTU1NjtlLklncmF2ZT0yNzg7ZS5JbWFjcm9uPTI3ODtlLkxjYXJvbj01NTY7ZS5vbmVoYWxmPTgzNDtlLmxlc3NlcXVhbD01NDk7ZS5vY2lyY3VtZmxleD01NTY7ZS5udGlsZGU9NTU2O2UuVWh1bmdhcnVtbGF1dD03MjI7ZS5FYWN1dGU9NjY3O2UuZW1hY3Jvbj01NTY7ZS5nYnJldmU9NTU2O2Uub25lcXVhcnRlcj04MzQ7ZS5TY2Fyb249NjY3O2UuU2NvbW1hYWNjZW50PTY2NztlLk9odW5nYXJ1bWxhdXQ9Nzc4O2UuZGVncmVlPTQwMDtlLm9ncmF2ZT01NTY7ZS5DY2Fyb249NzIyO2UudWdyYXZlPTU1NjtlLnJhZGljYWw9NDUzO2UuRGNhcm9uPTcyMjtlLnJjb21tYWFjY2VudD0zMzM7ZS5OdGlsZGU9NzIyO2Uub3RpbGRlPTU1NjtlLlJjb21tYWFjY2VudD03MjI7ZS5MY29tbWFhY2NlbnQ9NTU2O2UuQXRpbGRlPTY2NztlLkFvZ29uZWs9NjY3O2UuQXJpbmc9NjY3O2UuT3RpbGRlPTc3ODtlLnpkb3RhY2NlbnQ9NTAwO2UuRWNhcm9uPTY2NztlLklvZ29uZWs9Mjc4O2Uua2NvbW1hYWNjZW50PTUwMDtlLm1pbnVzPTU4NDtlLkljaXJjdW1mbGV4PTI3ODtlLm5jYXJvbj01NTY7ZS50Y29tbWFhY2NlbnQ9Mjc4O2UubG9naWNhbG5vdD01ODQ7ZS5vZGllcmVzaXM9NTU2O2UudWRpZXJlc2lzPTU1NjtlLm5vdGVxdWFsPTU0OTtlLmdjb21tYWFjY2VudD01NTY7ZS5ldGg9NTU2O2UuemNhcm9uPTUwMDtlLm5jb21tYWFjY2VudD01NTY7ZS5vbmVzdXBlcmlvcj0zMzM7ZS5pbWFjcm9uPTI3ODtlLkV1cm89NTU2fSkpO2UuU3ltYm9sPWdldExvb2t1cFRhYmxlRmFjdG9yeSgoZnVuY3Rpb24oZSl7ZS5zcGFjZT0yNTA7ZS5leGNsYW09MzMzO2UudW5pdmVyc2FsPTcxMztlLm51bWJlcnNpZ249NTAwO2UuZXhpc3RlbnRpYWw9NTQ5O2UucGVyY2VudD04MzM7ZS5hbXBlcnNhbmQ9Nzc4O2Uuc3VjaHRoYXQ9NDM5O2UucGFyZW5sZWZ0PTMzMztlLnBhcmVucmlnaHQ9MzMzO2UuYXN0ZXJpc2ttYXRoPTUwMDtlLnBsdXM9NTQ5O2UuY29tbWE9MjUwO2UubWludXM9NTQ5O2UucGVyaW9kPTI1MDtlLnNsYXNoPTI3ODtlLnplcm89NTAwO2Uub25lPTUwMDtlLnR3bz01MDA7ZS50aHJlZT01MDA7ZS5mb3VyPTUwMDtlLmZpdmU9NTAwO2Uuc2l4PTUwMDtlLnNldmVuPTUwMDtlLmVpZ2h0PTUwMDtlLm5pbmU9NTAwO2UuY29sb249Mjc4O2Uuc2VtaWNvbG9uPTI3ODtlLmxlc3M9NTQ5O2UuZXF1YWw9NTQ5O2UuZ3JlYXRlcj01NDk7ZS5xdWVzdGlvbj00NDQ7ZS5jb25ncnVlbnQ9NTQ5O2UuQWxwaGE9NzIyO2UuQmV0YT02Njc7ZS5DaGk9NzIyO2UuRGVsdGE9NjEyO2UuRXBzaWxvbj02MTE7ZS5QaGk9NzYzO2UuR2FtbWE9NjAzO2UuRXRhPTcyMjtlLklvdGE9MzMzO2UudGhldGExPTYzMTtlLkthcHBhPTcyMjtlLkxhbWJkYT02ODY7ZS5NdT04ODk7ZS5OdT03MjI7ZS5PbWljcm9uPTcyMjtlLlBpPTc2ODtlLlRoZXRhPTc0MTtlLlJobz01NTY7ZS5TaWdtYT01OTI7ZS5UYXU9NjExO2UuVXBzaWxvbj02OTA7ZS5zaWdtYTE9NDM5O2UuT21lZ2E9NzY4O2UuWGk9NjQ1O2UuUHNpPTc5NTtlLlpldGE9NjExO2UuYnJhY2tldGxlZnQ9MzMzO2UudGhlcmVmb3JlPTg2MztlLmJyYWNrZXRyaWdodD0zMzM7ZS5wZXJwZW5kaWN1bGFyPTY1ODtlLnVuZGVyc2NvcmU9NTAwO2UucmFkaWNhbGV4PTUwMDtlLmFscGhhPTYzMTtlLmJldGE9NTQ5O2UuY2hpPTU0OTtlLmRlbHRhPTQ5NDtlLmVwc2lsb249NDM5O2UucGhpPTUyMTtlLmdhbW1hPTQxMTtlLmV0YT02MDM7ZS5pb3RhPTMyOTtlLnBoaTE9NjAzO2Uua2FwcGE9NTQ5O2UubGFtYmRhPTU0OTtlLm11PTU3NjtlLm51PTUyMTtlLm9taWNyb249NTQ5O2UucGk9NTQ5O2UudGhldGE9NTIxO2UucmhvPTU0OTtlLnNpZ21hPTYwMztlLnRhdT00Mzk7ZS51cHNpbG9uPTU3NjtlLm9tZWdhMT03MTM7ZS5vbWVnYT02ODY7ZS54aT00OTM7ZS5wc2k9Njg2O2UuemV0YT00OTQ7ZS5icmFjZWxlZnQ9NDgwO2UuYmFyPTIwMDtlLmJyYWNlcmlnaHQ9NDgwO2Uuc2ltaWxhcj01NDk7ZS5FdXJvPTc1MDtlLlVwc2lsb24xPTYyMDtlLm1pbnV0ZT0yNDc7ZS5sZXNzZXF1YWw9NTQ5O2UuZnJhY3Rpb249MTY3O2UuaW5maW5pdHk9NzEzO2UuZmxvcmluPTUwMDtlLmNsdWI9NzUzO2UuZGlhbW9uZD03NTM7ZS5oZWFydD03NTM7ZS5zcGFkZT03NTM7ZS5hcnJvd2JvdGg9MTA0MjtlLmFycm93bGVmdD05ODc7ZS5hcnJvd3VwPTYwMztlLmFycm93cmlnaHQ9OTg3O2UuYXJyb3dkb3duPTYwMztlLmRlZ3JlZT00MDA7ZS5wbHVzbWludXM9NTQ5O2Uuc2Vjb25kPTQxMTtlLmdyZWF0ZXJlcXVhbD01NDk7ZS5tdWx0aXBseT01NDk7ZS5wcm9wb3J0aW9uYWw9NzEzO2UucGFydGlhbGRpZmY9NDk0O2UuYnVsbGV0PTQ2MDtlLmRpdmlkZT01NDk7ZS5ub3RlcXVhbD01NDk7ZS5lcXVpdmFsZW5jZT01NDk7ZS5hcHByb3hlcXVhbD01NDk7ZS5lbGxpcHNpcz0xZTM7ZS5hcnJvd3ZlcnRleD02MDM7ZS5hcnJvd2hvcml6ZXg9MWUzO2UuY2FycmlhZ2VyZXR1cm49NjU4O2UuYWxlcGg9ODIzO2UuSWZyYWt0dXI9Njg2O2UuUmZyYWt0dXI9Nzk1O2Uud2VpZXJzdHJhc3M9OTg3O2UuY2lyY2xlbXVsdGlwbHk9NzY4O2UuY2lyY2xlcGx1cz03Njg7ZS5lbXB0eXNldD04MjM7ZS5pbnRlcnNlY3Rpb249NzY4O2UudW5pb249NzY4O2UucHJvcGVyc3VwZXJzZXQ9NzEzO2UucmVmbGV4c3VwZXJzZXQ9NzEzO2Uubm90c3Vic2V0PTcxMztlLnByb3BlcnN1YnNldD03MTM7ZS5yZWZsZXhzdWJzZXQ9NzEzO2UuZWxlbWVudD03MTM7ZS5ub3RlbGVtZW50PTcxMztlLmFuZ2xlPTc2ODtlLmdyYWRpZW50PTcxMztlLnJlZ2lzdGVyc2VyaWY9NzkwO2UuY29weXJpZ2h0c2VyaWY9NzkwO2UudHJhZGVtYXJrc2VyaWY9ODkwO2UucHJvZHVjdD04MjM7ZS5yYWRpY2FsPTU0OTtlLmRvdG1hdGg9MjUwO2UubG9naWNhbG5vdD03MTM7ZS5sb2dpY2FsYW5kPTYwMztlLmxvZ2ljYWxvcj02MDM7ZS5hcnJvd2RibGJvdGg9MTA0MjtlLmFycm93ZGJsbGVmdD05ODc7ZS5hcnJvd2RibHVwPTYwMztlLmFycm93ZGJscmlnaHQ9OTg3O2UuYXJyb3dkYmxkb3duPTYwMztlLmxvemVuZ2U9NDk0O2UuYW5nbGVsZWZ0PTMyOTtlLnJlZ2lzdGVyc2Fucz03OTA7ZS5jb3B5cmlnaHRzYW5zPTc5MDtlLnRyYWRlbWFya3NhbnM9Nzg2O2Uuc3VtbWF0aW9uPTcxMztlLnBhcmVubGVmdHRwPTM4NDtlLnBhcmVubGVmdGV4PTM4NDtlLnBhcmVubGVmdGJ0PTM4NDtlLmJyYWNrZXRsZWZ0dHA9Mzg0O2UuYnJhY2tldGxlZnRleD0zODQ7ZS5icmFja2V0bGVmdGJ0PTM4NDtlLmJyYWNlbGVmdHRwPTQ5NDtlLmJyYWNlbGVmdG1pZD00OTQ7ZS5icmFjZWxlZnRidD00OTQ7ZS5icmFjZWV4PTQ5NDtlLmFuZ2xlcmlnaHQ9MzI5O2UuaW50ZWdyYWw9Mjc0O2UuaW50ZWdyYWx0cD02ODY7ZS5pbnRlZ3JhbGV4PTY4NjtlLmludGVncmFsYnQ9Njg2O2UucGFyZW5yaWdodHRwPTM4NDtlLnBhcmVucmlnaHRleD0zODQ7ZS5wYXJlbnJpZ2h0YnQ9Mzg0O2UuYnJhY2tldHJpZ2h0dHA9Mzg0O2UuYnJhY2tldHJpZ2h0ZXg9Mzg0O2UuYnJhY2tldHJpZ2h0YnQ9Mzg0O2UuYnJhY2VyaWdodHRwPTQ5NDtlLmJyYWNlcmlnaHRtaWQ9NDk0O2UuYnJhY2VyaWdodGJ0PTQ5NDtlLmFwcGxlPTc5MH0pKTtlWyJUaW1lcy1Sb21hbiJdPWdldExvb2t1cFRhYmxlRmFjdG9yeSgoZnVuY3Rpb24oZSl7ZS5zcGFjZT0yNTA7ZS5leGNsYW09MzMzO2UucXVvdGVkYmw9NDA4O2UubnVtYmVyc2lnbj01MDA7ZS5kb2xsYXI9NTAwO2UucGVyY2VudD04MzM7ZS5hbXBlcnNhbmQ9Nzc4O2UucXVvdGVyaWdodD0zMzM7ZS5wYXJlbmxlZnQ9MzMzO2UucGFyZW5yaWdodD0zMzM7ZS5hc3Rlcmlzaz01MDA7ZS5wbHVzPTU2NDtlLmNvbW1hPTI1MDtlLmh5cGhlbj0zMzM7ZS5wZXJpb2Q9MjUwO2Uuc2xhc2g9Mjc4O2UuemVybz01MDA7ZS5vbmU9NTAwO2UudHdvPTUwMDtlLnRocmVlPTUwMDtlLmZvdXI9NTAwO2UuZml2ZT01MDA7ZS5zaXg9NTAwO2Uuc2V2ZW49NTAwO2UuZWlnaHQ9NTAwO2UubmluZT01MDA7ZS5jb2xvbj0yNzg7ZS5zZW1pY29sb249Mjc4O2UubGVzcz01NjQ7ZS5lcXVhbD01NjQ7ZS5ncmVhdGVyPTU2NDtlLnF1ZXN0aW9uPTQ0NDtlLmF0PTkyMTtlLkE9NzIyO2UuQj02Njc7ZS5DPTY2NztlLkQ9NzIyO2UuRT02MTE7ZS5GPTU1NjtlLkc9NzIyO2UuSD03MjI7ZS5JPTMzMztlLko9Mzg5O2UuSz03MjI7ZS5MPTYxMTtlLk09ODg5O2UuTj03MjI7ZS5PPTcyMjtlLlA9NTU2O2UuUT03MjI7ZS5SPTY2NztlLlM9NTU2O2UuVD02MTE7ZS5VPTcyMjtlLlY9NzIyO2UuVz05NDQ7ZS5YPTcyMjtlLlk9NzIyO2UuWj02MTE7ZS5icmFja2V0bGVmdD0zMzM7ZS5iYWNrc2xhc2g9Mjc4O2UuYnJhY2tldHJpZ2h0PTMzMztlLmFzY2lpY2lyY3VtPTQ2OTtlLnVuZGVyc2NvcmU9NTAwO2UucXVvdGVsZWZ0PTMzMztlLmE9NDQ0O2UuYj01MDA7ZS5jPTQ0NDtlLmQ9NTAwO2UuZT00NDQ7ZS5mPTMzMztlLmc9NTAwO2UuaD01MDA7ZS5pPTI3ODtlLmo9Mjc4O2Uuaz01MDA7ZS5sPTI3ODtlLm09Nzc4O2Uubj01MDA7ZS5vPTUwMDtlLnA9NTAwO2UucT01MDA7ZS5yPTMzMztlLnM9Mzg5O2UudD0yNzg7ZS51PTUwMDtlLnY9NTAwO2Uudz03MjI7ZS54PTUwMDtlLnk9NTAwO2Uuej00NDQ7ZS5icmFjZWxlZnQ9NDgwO2UuYmFyPTIwMDtlLmJyYWNlcmlnaHQ9NDgwO2UuYXNjaWl0aWxkZT01NDE7ZS5leGNsYW1kb3duPTMzMztlLmNlbnQ9NTAwO2Uuc3Rlcmxpbmc9NTAwO2UuZnJhY3Rpb249MTY3O2UueWVuPTUwMDtlLmZsb3Jpbj01MDA7ZS5zZWN0aW9uPTUwMDtlLmN1cnJlbmN5PTUwMDtlLnF1b3Rlc2luZ2xlPTE4MDtlLnF1b3RlZGJsbGVmdD00NDQ7ZS5ndWlsbGVtb3RsZWZ0PTUwMDtlLmd1aWxzaW5nbGxlZnQ9MzMzO2UuZ3VpbHNpbmdscmlnaHQ9MzMzO2UuZmk9NTU2O2UuZmw9NTU2O2UuZW5kYXNoPTUwMDtlLmRhZ2dlcj01MDA7ZS5kYWdnZXJkYmw9NTAwO2UucGVyaW9kY2VudGVyZWQ9MjUwO2UucGFyYWdyYXBoPTQ1MztlLmJ1bGxldD0zNTA7ZS5xdW90ZXNpbmdsYmFzZT0zMzM7ZS5xdW90ZWRibGJhc2U9NDQ0O2UucXVvdGVkYmxyaWdodD00NDQ7ZS5ndWlsbGVtb3RyaWdodD01MDA7ZS5lbGxpcHNpcz0xZTM7ZS5wZXJ0aG91c2FuZD0xZTM7ZS5xdWVzdGlvbmRvd249NDQ0O2UuZ3JhdmU9MzMzO2UuYWN1dGU9MzMzO2UuY2lyY3VtZmxleD0zMzM7ZS50aWxkZT0zMzM7ZS5tYWNyb249MzMzO2UuYnJldmU9MzMzO2UuZG90YWNjZW50PTMzMztlLmRpZXJlc2lzPTMzMztlLnJpbmc9MzMzO2UuY2VkaWxsYT0zMzM7ZS5odW5nYXJ1bWxhdXQ9MzMzO2Uub2dvbmVrPTMzMztlLmNhcm9uPTMzMztlLmVtZGFzaD0xZTM7ZS5BRT04ODk7ZS5vcmRmZW1pbmluZT0yNzY7ZS5Mc2xhc2g9NjExO2UuT3NsYXNoPTcyMjtlLk9FPTg4OTtlLm9yZG1hc2N1bGluZT0zMTA7ZS5hZT02Njc7ZS5kb3RsZXNzaT0yNzg7ZS5sc2xhc2g9Mjc4O2Uub3NsYXNoPTUwMDtlLm9lPTcyMjtlLmdlcm1hbmRibHM9NTAwO2UuSWRpZXJlc2lzPTMzMztlLmVhY3V0ZT00NDQ7ZS5hYnJldmU9NDQ0O2UudWh1bmdhcnVtbGF1dD01MDA7ZS5lY2Fyb249NDQ0O2UuWWRpZXJlc2lzPTcyMjtlLmRpdmlkZT01NjQ7ZS5ZYWN1dGU9NzIyO2UuQWNpcmN1bWZsZXg9NzIyO2UuYWFjdXRlPTQ0NDtlLlVjaXJjdW1mbGV4PTcyMjtlLnlhY3V0ZT01MDA7ZS5zY29tbWFhY2NlbnQ9Mzg5O2UuZWNpcmN1bWZsZXg9NDQ0O2UuVXJpbmc9NzIyO2UuVWRpZXJlc2lzPTcyMjtlLmFvZ29uZWs9NDQ0O2UuVWFjdXRlPTcyMjtlLnVvZ29uZWs9NTAwO2UuRWRpZXJlc2lzPTYxMTtlLkRjcm9hdD03MjI7ZS5jb21tYWFjY2VudD0yNTA7ZS5jb3B5cmlnaHQ9NzYwO2UuRW1hY3Jvbj02MTE7ZS5jY2Fyb249NDQ0O2UuYXJpbmc9NDQ0O2UuTmNvbW1hYWNjZW50PTcyMjtlLmxhY3V0ZT0yNzg7ZS5hZ3JhdmU9NDQ0O2UuVGNvbW1hYWNjZW50PTYxMTtlLkNhY3V0ZT02Njc7ZS5hdGlsZGU9NDQ0O2UuRWRvdGFjY2VudD02MTE7ZS5zY2Fyb249Mzg5O2Uuc2NlZGlsbGE9Mzg5O2UuaWFjdXRlPTI3ODtlLmxvemVuZ2U9NDcxO2UuUmNhcm9uPTY2NztlLkdjb21tYWFjY2VudD03MjI7ZS51Y2lyY3VtZmxleD01MDA7ZS5hY2lyY3VtZmxleD00NDQ7ZS5BbWFjcm9uPTcyMjtlLnJjYXJvbj0zMzM7ZS5jY2VkaWxsYT00NDQ7ZS5aZG90YWNjZW50PTYxMTtlLlRob3JuPTU1NjtlLk9tYWNyb249NzIyO2UuUmFjdXRlPTY2NztlLlNhY3V0ZT01NTY7ZS5kY2Fyb249NTg4O2UuVW1hY3Jvbj03MjI7ZS51cmluZz01MDA7ZS50aHJlZXN1cGVyaW9yPTMwMDtlLk9ncmF2ZT03MjI7ZS5BZ3JhdmU9NzIyO2UuQWJyZXZlPTcyMjtlLm11bHRpcGx5PTU2NDtlLnVhY3V0ZT01MDA7ZS5UY2Fyb249NjExO2UucGFydGlhbGRpZmY9NDc2O2UueWRpZXJlc2lzPTUwMDtlLk5hY3V0ZT03MjI7ZS5pY2lyY3VtZmxleD0yNzg7ZS5FY2lyY3VtZmxleD02MTE7ZS5hZGllcmVzaXM9NDQ0O2UuZWRpZXJlc2lzPTQ0NDtlLmNhY3V0ZT00NDQ7ZS5uYWN1dGU9NTAwO2UudW1hY3Jvbj01MDA7ZS5OY2Fyb249NzIyO2UuSWFjdXRlPTMzMztlLnBsdXNtaW51cz01NjQ7ZS5icm9rZW5iYXI9MjAwO2UucmVnaXN0ZXJlZD03NjA7ZS5HYnJldmU9NzIyO2UuSWRvdGFjY2VudD0zMzM7ZS5zdW1tYXRpb249NjAwO2UuRWdyYXZlPTYxMTtlLnJhY3V0ZT0zMzM7ZS5vbWFjcm9uPTUwMDtlLlphY3V0ZT02MTE7ZS5aY2Fyb249NjExO2UuZ3JlYXRlcmVxdWFsPTU0OTtlLkV0aD03MjI7ZS5DY2VkaWxsYT02Njc7ZS5sY29tbWFhY2NlbnQ9Mjc4O2UudGNhcm9uPTMyNjtlLmVvZ29uZWs9NDQ0O2UuVW9nb25laz03MjI7ZS5BYWN1dGU9NzIyO2UuQWRpZXJlc2lzPTcyMjtlLmVncmF2ZT00NDQ7ZS56YWN1dGU9NDQ0O2UuaW9nb25laz0yNzg7ZS5PYWN1dGU9NzIyO2Uub2FjdXRlPTUwMDtlLmFtYWNyb249NDQ0O2Uuc2FjdXRlPTM4OTtlLmlkaWVyZXNpcz0yNzg7ZS5PY2lyY3VtZmxleD03MjI7ZS5VZ3JhdmU9NzIyO2UuRGVsdGE9NjEyO2UudGhvcm49NTAwO2UudHdvc3VwZXJpb3I9MzAwO2UuT2RpZXJlc2lzPTcyMjtlLm11PTUwMDtlLmlncmF2ZT0yNzg7ZS5vaHVuZ2FydW1sYXV0PTUwMDtlLkVvZ29uZWs9NjExO2UuZGNyb2F0PTUwMDtlLnRocmVlcXVhcnRlcnM9NzUwO2UuU2NlZGlsbGE9NTU2O2UubGNhcm9uPTM0NDtlLktjb21tYWFjY2VudD03MjI7ZS5MYWN1dGU9NjExO2UudHJhZGVtYXJrPTk4MDtlLmVkb3RhY2NlbnQ9NDQ0O2UuSWdyYXZlPTMzMztlLkltYWNyb249MzMzO2UuTGNhcm9uPTYxMTtlLm9uZWhhbGY9NzUwO2UubGVzc2VxdWFsPTU0OTtlLm9jaXJjdW1mbGV4PTUwMDtlLm50aWxkZT01MDA7ZS5VaHVuZ2FydW1sYXV0PTcyMjtlLkVhY3V0ZT02MTE7ZS5lbWFjcm9uPTQ0NDtlLmdicmV2ZT01MDA7ZS5vbmVxdWFydGVyPTc1MDtlLlNjYXJvbj01NTY7ZS5TY29tbWFhY2NlbnQ9NTU2O2UuT2h1bmdhcnVtbGF1dD03MjI7ZS5kZWdyZWU9NDAwO2Uub2dyYXZlPTUwMDtlLkNjYXJvbj02Njc7ZS51Z3JhdmU9NTAwO2UucmFkaWNhbD00NTM7ZS5EY2Fyb249NzIyO2UucmNvbW1hYWNjZW50PTMzMztlLk50aWxkZT03MjI7ZS5vdGlsZGU9NTAwO2UuUmNvbW1hYWNjZW50PTY2NztlLkxjb21tYWFjY2VudD02MTE7ZS5BdGlsZGU9NzIyO2UuQW9nb25laz03MjI7ZS5BcmluZz03MjI7ZS5PdGlsZGU9NzIyO2UuemRvdGFjY2VudD00NDQ7ZS5FY2Fyb249NjExO2UuSW9nb25laz0zMzM7ZS5rY29tbWFhY2NlbnQ9NTAwO2UubWludXM9NTY0O2UuSWNpcmN1bWZsZXg9MzMzO2UubmNhcm9uPTUwMDtlLnRjb21tYWFjY2VudD0yNzg7ZS5sb2dpY2Fsbm90PTU2NDtlLm9kaWVyZXNpcz01MDA7ZS51ZGllcmVzaXM9NTAwO2Uubm90ZXF1YWw9NTQ5O2UuZ2NvbW1hYWNjZW50PTUwMDtlLmV0aD01MDA7ZS56Y2Fyb249NDQ0O2UubmNvbW1hYWNjZW50PTUwMDtlLm9uZXN1cGVyaW9yPTMwMDtlLmltYWNyb249Mjc4O2UuRXVybz01MDB9KSk7ZVsiVGltZXMtQm9sZCJdPWdldExvb2t1cFRhYmxlRmFjdG9yeSgoZnVuY3Rpb24oZSl7ZS5zcGFjZT0yNTA7ZS5leGNsYW09MzMzO2UucXVvdGVkYmw9NTU1O2UubnVtYmVyc2lnbj01MDA7ZS5kb2xsYXI9NTAwO2UucGVyY2VudD0xZTM7ZS5hbXBlcnNhbmQ9ODMzO2UucXVvdGVyaWdodD0zMzM7ZS5wYXJlbmxlZnQ9MzMzO2UucGFyZW5yaWdodD0zMzM7ZS5hc3Rlcmlzaz01MDA7ZS5wbHVzPTU3MDtlLmNvbW1hPTI1MDtlLmh5cGhlbj0zMzM7ZS5wZXJpb2Q9MjUwO2Uuc2xhc2g9Mjc4O2UuemVybz01MDA7ZS5vbmU9NTAwO2UudHdvPTUwMDtlLnRocmVlPTUwMDtlLmZvdXI9NTAwO2UuZml2ZT01MDA7ZS5zaXg9NTAwO2Uuc2V2ZW49NTAwO2UuZWlnaHQ9NTAwO2UubmluZT01MDA7ZS5jb2xvbj0zMzM7ZS5zZW1pY29sb249MzMzO2UubGVzcz01NzA7ZS5lcXVhbD01NzA7ZS5ncmVhdGVyPTU3MDtlLnF1ZXN0aW9uPTUwMDtlLmF0PTkzMDtlLkE9NzIyO2UuQj02Njc7ZS5DPTcyMjtlLkQ9NzIyO2UuRT02Njc7ZS5GPTYxMTtlLkc9Nzc4O2UuSD03Nzg7ZS5JPTM4OTtlLko9NTAwO2UuSz03Nzg7ZS5MPTY2NztlLk09OTQ0O2UuTj03MjI7ZS5PPTc3ODtlLlA9NjExO2UuUT03Nzg7ZS5SPTcyMjtlLlM9NTU2O2UuVD02Njc7ZS5VPTcyMjtlLlY9NzIyO2UuVz0xZTM7ZS5YPTcyMjtlLlk9NzIyO2UuWj02Njc7ZS5icmFja2V0bGVmdD0zMzM7ZS5iYWNrc2xhc2g9Mjc4O2UuYnJhY2tldHJpZ2h0PTMzMztlLmFzY2lpY2lyY3VtPTU4MTtlLnVuZGVyc2NvcmU9NTAwO2UucXVvdGVsZWZ0PTMzMztlLmE9NTAwO2UuYj01NTY7ZS5jPTQ0NDtlLmQ9NTU2O2UuZT00NDQ7ZS5mPTMzMztlLmc9NTAwO2UuaD01NTY7ZS5pPTI3ODtlLmo9MzMzO2Uuaz01NTY7ZS5sPTI3ODtlLm09ODMzO2Uubj01NTY7ZS5vPTUwMDtlLnA9NTU2O2UucT01NTY7ZS5yPTQ0NDtlLnM9Mzg5O2UudD0zMzM7ZS51PTU1NjtlLnY9NTAwO2Uudz03MjI7ZS54PTUwMDtlLnk9NTAwO2Uuej00NDQ7ZS5icmFjZWxlZnQ9Mzk0O2UuYmFyPTIyMDtlLmJyYWNlcmlnaHQ9Mzk0O2UuYXNjaWl0aWxkZT01MjA7ZS5leGNsYW1kb3duPTMzMztlLmNlbnQ9NTAwO2Uuc3Rlcmxpbmc9NTAwO2UuZnJhY3Rpb249MTY3O2UueWVuPTUwMDtlLmZsb3Jpbj01MDA7ZS5zZWN0aW9uPTUwMDtlLmN1cnJlbmN5PTUwMDtlLnF1b3Rlc2luZ2xlPTI3ODtlLnF1b3RlZGJsbGVmdD01MDA7ZS5ndWlsbGVtb3RsZWZ0PTUwMDtlLmd1aWxzaW5nbGxlZnQ9MzMzO2UuZ3VpbHNpbmdscmlnaHQ9MzMzO2UuZmk9NTU2O2UuZmw9NTU2O2UuZW5kYXNoPTUwMDtlLmRhZ2dlcj01MDA7ZS5kYWdnZXJkYmw9NTAwO2UucGVyaW9kY2VudGVyZWQ9MjUwO2UucGFyYWdyYXBoPTU0MDtlLmJ1bGxldD0zNTA7ZS5xdW90ZXNpbmdsYmFzZT0zMzM7ZS5xdW90ZWRibGJhc2U9NTAwO2UucXVvdGVkYmxyaWdodD01MDA7ZS5ndWlsbGVtb3RyaWdodD01MDA7ZS5lbGxpcHNpcz0xZTM7ZS5wZXJ0aG91c2FuZD0xZTM7ZS5xdWVzdGlvbmRvd249NTAwO2UuZ3JhdmU9MzMzO2UuYWN1dGU9MzMzO2UuY2lyY3VtZmxleD0zMzM7ZS50aWxkZT0zMzM7ZS5tYWNyb249MzMzO2UuYnJldmU9MzMzO2UuZG90YWNjZW50PTMzMztlLmRpZXJlc2lzPTMzMztlLnJpbmc9MzMzO2UuY2VkaWxsYT0zMzM7ZS5odW5nYXJ1bWxhdXQ9MzMzO2Uub2dvbmVrPTMzMztlLmNhcm9uPTMzMztlLmVtZGFzaD0xZTM7ZS5BRT0xZTM7ZS5vcmRmZW1pbmluZT0zMDA7ZS5Mc2xhc2g9NjY3O2UuT3NsYXNoPTc3ODtlLk9FPTFlMztlLm9yZG1hc2N1bGluZT0zMzA7ZS5hZT03MjI7ZS5kb3RsZXNzaT0yNzg7ZS5sc2xhc2g9Mjc4O2Uub3NsYXNoPTUwMDtlLm9lPTcyMjtlLmdlcm1hbmRibHM9NTU2O2UuSWRpZXJlc2lzPTM4OTtlLmVhY3V0ZT00NDQ7ZS5hYnJldmU9NTAwO2UudWh1bmdhcnVtbGF1dD01NTY7ZS5lY2Fyb249NDQ0O2UuWWRpZXJlc2lzPTcyMjtlLmRpdmlkZT01NzA7ZS5ZYWN1dGU9NzIyO2UuQWNpcmN1bWZsZXg9NzIyO2UuYWFjdXRlPTUwMDtlLlVjaXJjdW1mbGV4PTcyMjtlLnlhY3V0ZT01MDA7ZS5zY29tbWFhY2NlbnQ9Mzg5O2UuZWNpcmN1bWZsZXg9NDQ0O2UuVXJpbmc9NzIyO2UuVWRpZXJlc2lzPTcyMjtlLmFvZ29uZWs9NTAwO2UuVWFjdXRlPTcyMjtlLnVvZ29uZWs9NTU2O2UuRWRpZXJlc2lzPTY2NztlLkRjcm9hdD03MjI7ZS5jb21tYWFjY2VudD0yNTA7ZS5jb3B5cmlnaHQ9NzQ3O2UuRW1hY3Jvbj02Njc7ZS5jY2Fyb249NDQ0O2UuYXJpbmc9NTAwO2UuTmNvbW1hYWNjZW50PTcyMjtlLmxhY3V0ZT0yNzg7ZS5hZ3JhdmU9NTAwO2UuVGNvbW1hYWNjZW50PTY2NztlLkNhY3V0ZT03MjI7ZS5hdGlsZGU9NTAwO2UuRWRvdGFjY2VudD02Njc7ZS5zY2Fyb249Mzg5O2Uuc2NlZGlsbGE9Mzg5O2UuaWFjdXRlPTI3ODtlLmxvemVuZ2U9NDk0O2UuUmNhcm9uPTcyMjtlLkdjb21tYWFjY2VudD03Nzg7ZS51Y2lyY3VtZmxleD01NTY7ZS5hY2lyY3VtZmxleD01MDA7ZS5BbWFjcm9uPTcyMjtlLnJjYXJvbj00NDQ7ZS5jY2VkaWxsYT00NDQ7ZS5aZG90YWNjZW50PTY2NztlLlRob3JuPTYxMTtlLk9tYWNyb249Nzc4O2UuUmFjdXRlPTcyMjtlLlNhY3V0ZT01NTY7ZS5kY2Fyb249NjcyO2UuVW1hY3Jvbj03MjI7ZS51cmluZz01NTY7ZS50aHJlZXN1cGVyaW9yPTMwMDtlLk9ncmF2ZT03Nzg7ZS5BZ3JhdmU9NzIyO2UuQWJyZXZlPTcyMjtlLm11bHRpcGx5PTU3MDtlLnVhY3V0ZT01NTY7ZS5UY2Fyb249NjY3O2UucGFydGlhbGRpZmY9NDk0O2UueWRpZXJlc2lzPTUwMDtlLk5hY3V0ZT03MjI7ZS5pY2lyY3VtZmxleD0yNzg7ZS5FY2lyY3VtZmxleD02Njc7ZS5hZGllcmVzaXM9NTAwO2UuZWRpZXJlc2lzPTQ0NDtlLmNhY3V0ZT00NDQ7ZS5uYWN1dGU9NTU2O2UudW1hY3Jvbj01NTY7ZS5OY2Fyb249NzIyO2UuSWFjdXRlPTM4OTtlLnBsdXNtaW51cz01NzA7ZS5icm9rZW5iYXI9MjIwO2UucmVnaXN0ZXJlZD03NDc7ZS5HYnJldmU9Nzc4O2UuSWRvdGFjY2VudD0zODk7ZS5zdW1tYXRpb249NjAwO2UuRWdyYXZlPTY2NztlLnJhY3V0ZT00NDQ7ZS5vbWFjcm9uPTUwMDtlLlphY3V0ZT02Njc7ZS5aY2Fyb249NjY3O2UuZ3JlYXRlcmVxdWFsPTU0OTtlLkV0aD03MjI7ZS5DY2VkaWxsYT03MjI7ZS5sY29tbWFhY2NlbnQ9Mjc4O2UudGNhcm9uPTQxNjtlLmVvZ29uZWs9NDQ0O2UuVW9nb25laz03MjI7ZS5BYWN1dGU9NzIyO2UuQWRpZXJlc2lzPTcyMjtlLmVncmF2ZT00NDQ7ZS56YWN1dGU9NDQ0O2UuaW9nb25laz0yNzg7ZS5PYWN1dGU9Nzc4O2Uub2FjdXRlPTUwMDtlLmFtYWNyb249NTAwO2Uuc2FjdXRlPTM4OTtlLmlkaWVyZXNpcz0yNzg7ZS5PY2lyY3VtZmxleD03Nzg7ZS5VZ3JhdmU9NzIyO2UuRGVsdGE9NjEyO2UudGhvcm49NTU2O2UudHdvc3VwZXJpb3I9MzAwO2UuT2RpZXJlc2lzPTc3ODtlLm11PTU1NjtlLmlncmF2ZT0yNzg7ZS5vaHVuZ2FydW1sYXV0PTUwMDtlLkVvZ29uZWs9NjY3O2UuZGNyb2F0PTU1NjtlLnRocmVlcXVhcnRlcnM9NzUwO2UuU2NlZGlsbGE9NTU2O2UubGNhcm9uPTM5NDtlLktjb21tYWFjY2VudD03Nzg7ZS5MYWN1dGU9NjY3O2UudHJhZGVtYXJrPTFlMztlLmVkb3RhY2NlbnQ9NDQ0O2UuSWdyYXZlPTM4OTtlLkltYWNyb249Mzg5O2UuTGNhcm9uPTY2NztlLm9uZWhhbGY9NzUwO2UubGVzc2VxdWFsPTU0OTtlLm9jaXJjdW1mbGV4PTUwMDtlLm50aWxkZT01NTY7ZS5VaHVuZ2FydW1sYXV0PTcyMjtlLkVhY3V0ZT02Njc7ZS5lbWFjcm9uPTQ0NDtlLmdicmV2ZT01MDA7ZS5vbmVxdWFydGVyPTc1MDtlLlNjYXJvbj01NTY7ZS5TY29tbWFhY2NlbnQ9NTU2O2UuT2h1bmdhcnVtbGF1dD03Nzg7ZS5kZWdyZWU9NDAwO2Uub2dyYXZlPTUwMDtlLkNjYXJvbj03MjI7ZS51Z3JhdmU9NTU2O2UucmFkaWNhbD01NDk7ZS5EY2Fyb249NzIyO2UucmNvbW1hYWNjZW50PTQ0NDtlLk50aWxkZT03MjI7ZS5vdGlsZGU9NTAwO2UuUmNvbW1hYWNjZW50PTcyMjtlLkxjb21tYWFjY2VudD02Njc7ZS5BdGlsZGU9NzIyO2UuQW9nb25laz03MjI7ZS5BcmluZz03MjI7ZS5PdGlsZGU9Nzc4O2UuemRvdGFjY2VudD00NDQ7ZS5FY2Fyb249NjY3O2UuSW9nb25laz0zODk7ZS5rY29tbWFhY2NlbnQ9NTU2O2UubWludXM9NTcwO2UuSWNpcmN1bWZsZXg9Mzg5O2UubmNhcm9uPTU1NjtlLnRjb21tYWFjY2VudD0zMzM7ZS5sb2dpY2Fsbm90PTU3MDtlLm9kaWVyZXNpcz01MDA7ZS51ZGllcmVzaXM9NTU2O2Uubm90ZXF1YWw9NTQ5O2UuZ2NvbW1hYWNjZW50PTUwMDtlLmV0aD01MDA7ZS56Y2Fyb249NDQ0O2UubmNvbW1hYWNjZW50PTU1NjtlLm9uZXN1cGVyaW9yPTMwMDtlLmltYWNyb249Mjc4O2UuRXVybz01MDB9KSk7ZVsiVGltZXMtQm9sZEl0YWxpYyJdPWdldExvb2t1cFRhYmxlRmFjdG9yeSgoZnVuY3Rpb24oZSl7ZS5zcGFjZT0yNTA7ZS5leGNsYW09Mzg5O2UucXVvdGVkYmw9NTU1O2UubnVtYmVyc2lnbj01MDA7ZS5kb2xsYXI9NTAwO2UucGVyY2VudD04MzM7ZS5hbXBlcnNhbmQ9Nzc4O2UucXVvdGVyaWdodD0zMzM7ZS5wYXJlbmxlZnQ9MzMzO2UucGFyZW5yaWdodD0zMzM7ZS5hc3Rlcmlzaz01MDA7ZS5wbHVzPTU3MDtlLmNvbW1hPTI1MDtlLmh5cGhlbj0zMzM7ZS5wZXJpb2Q9MjUwO2Uuc2xhc2g9Mjc4O2UuemVybz01MDA7ZS5vbmU9NTAwO2UudHdvPTUwMDtlLnRocmVlPTUwMDtlLmZvdXI9NTAwO2UuZml2ZT01MDA7ZS5zaXg9NTAwO2Uuc2V2ZW49NTAwO2UuZWlnaHQ9NTAwO2UubmluZT01MDA7ZS5jb2xvbj0zMzM7ZS5zZW1pY29sb249MzMzO2UubGVzcz01NzA7ZS5lcXVhbD01NzA7ZS5ncmVhdGVyPTU3MDtlLnF1ZXN0aW9uPTUwMDtlLmF0PTgzMjtlLkE9NjY3O2UuQj02Njc7ZS5DPTY2NztlLkQ9NzIyO2UuRT02Njc7ZS5GPTY2NztlLkc9NzIyO2UuSD03Nzg7ZS5JPTM4OTtlLko9NTAwO2UuSz02Njc7ZS5MPTYxMTtlLk09ODg5O2UuTj03MjI7ZS5PPTcyMjtlLlA9NjExO2UuUT03MjI7ZS5SPTY2NztlLlM9NTU2O2UuVD02MTE7ZS5VPTcyMjtlLlY9NjY3O2UuVz04ODk7ZS5YPTY2NztlLlk9NjExO2UuWj02MTE7ZS5icmFja2V0bGVmdD0zMzM7ZS5iYWNrc2xhc2g9Mjc4O2UuYnJhY2tldHJpZ2h0PTMzMztlLmFzY2lpY2lyY3VtPTU3MDtlLnVuZGVyc2NvcmU9NTAwO2UucXVvdGVsZWZ0PTMzMztlLmE9NTAwO2UuYj01MDA7ZS5jPTQ0NDtlLmQ9NTAwO2UuZT00NDQ7ZS5mPTMzMztlLmc9NTAwO2UuaD01NTY7ZS5pPTI3ODtlLmo9Mjc4O2Uuaz01MDA7ZS5sPTI3ODtlLm09Nzc4O2Uubj01NTY7ZS5vPTUwMDtlLnA9NTAwO2UucT01MDA7ZS5yPTM4OTtlLnM9Mzg5O2UudD0yNzg7ZS51PTU1NjtlLnY9NDQ0O2Uudz02Njc7ZS54PTUwMDtlLnk9NDQ0O2Uuej0zODk7ZS5icmFjZWxlZnQ9MzQ4O2UuYmFyPTIyMDtlLmJyYWNlcmlnaHQ9MzQ4O2UuYXNjaWl0aWxkZT01NzA7ZS5leGNsYW1kb3duPTM4OTtlLmNlbnQ9NTAwO2Uuc3Rlcmxpbmc9NTAwO2UuZnJhY3Rpb249MTY3O2UueWVuPTUwMDtlLmZsb3Jpbj01MDA7ZS5zZWN0aW9uPTUwMDtlLmN1cnJlbmN5PTUwMDtlLnF1b3Rlc2luZ2xlPTI3ODtlLnF1b3RlZGJsbGVmdD01MDA7ZS5ndWlsbGVtb3RsZWZ0PTUwMDtlLmd1aWxzaW5nbGxlZnQ9MzMzO2UuZ3VpbHNpbmdscmlnaHQ9MzMzO2UuZmk9NTU2O2UuZmw9NTU2O2UuZW5kYXNoPTUwMDtlLmRhZ2dlcj01MDA7ZS5kYWdnZXJkYmw9NTAwO2UucGVyaW9kY2VudGVyZWQ9MjUwO2UucGFyYWdyYXBoPTUwMDtlLmJ1bGxldD0zNTA7ZS5xdW90ZXNpbmdsYmFzZT0zMzM7ZS5xdW90ZWRibGJhc2U9NTAwO2UucXVvdGVkYmxyaWdodD01MDA7ZS5ndWlsbGVtb3RyaWdodD01MDA7ZS5lbGxpcHNpcz0xZTM7ZS5wZXJ0aG91c2FuZD0xZTM7ZS5xdWVzdGlvbmRvd249NTAwO2UuZ3JhdmU9MzMzO2UuYWN1dGU9MzMzO2UuY2lyY3VtZmxleD0zMzM7ZS50aWxkZT0zMzM7ZS5tYWNyb249MzMzO2UuYnJldmU9MzMzO2UuZG90YWNjZW50PTMzMztlLmRpZXJlc2lzPTMzMztlLnJpbmc9MzMzO2UuY2VkaWxsYT0zMzM7ZS5odW5nYXJ1bWxhdXQ9MzMzO2Uub2dvbmVrPTMzMztlLmNhcm9uPTMzMztlLmVtZGFzaD0xZTM7ZS5BRT05NDQ7ZS5vcmRmZW1pbmluZT0yNjY7ZS5Mc2xhc2g9NjExO2UuT3NsYXNoPTcyMjtlLk9FPTk0NDtlLm9yZG1hc2N1bGluZT0zMDA7ZS5hZT03MjI7ZS5kb3RsZXNzaT0yNzg7ZS5sc2xhc2g9Mjc4O2Uub3NsYXNoPTUwMDtlLm9lPTcyMjtlLmdlcm1hbmRibHM9NTAwO2UuSWRpZXJlc2lzPTM4OTtlLmVhY3V0ZT00NDQ7ZS5hYnJldmU9NTAwO2UudWh1bmdhcnVtbGF1dD01NTY7ZS5lY2Fyb249NDQ0O2UuWWRpZXJlc2lzPTYxMTtlLmRpdmlkZT01NzA7ZS5ZYWN1dGU9NjExO2UuQWNpcmN1bWZsZXg9NjY3O2UuYWFjdXRlPTUwMDtlLlVjaXJjdW1mbGV4PTcyMjtlLnlhY3V0ZT00NDQ7ZS5zY29tbWFhY2NlbnQ9Mzg5O2UuZWNpcmN1bWZsZXg9NDQ0O2UuVXJpbmc9NzIyO2UuVWRpZXJlc2lzPTcyMjtlLmFvZ29uZWs9NTAwO2UuVWFjdXRlPTcyMjtlLnVvZ29uZWs9NTU2O2UuRWRpZXJlc2lzPTY2NztlLkRjcm9hdD03MjI7ZS5jb21tYWFjY2VudD0yNTA7ZS5jb3B5cmlnaHQ9NzQ3O2UuRW1hY3Jvbj02Njc7ZS5jY2Fyb249NDQ0O2UuYXJpbmc9NTAwO2UuTmNvbW1hYWNjZW50PTcyMjtlLmxhY3V0ZT0yNzg7ZS5hZ3JhdmU9NTAwO2UuVGNvbW1hYWNjZW50PTYxMTtlLkNhY3V0ZT02Njc7ZS5hdGlsZGU9NTAwO2UuRWRvdGFjY2VudD02Njc7ZS5zY2Fyb249Mzg5O2Uuc2NlZGlsbGE9Mzg5O2UuaWFjdXRlPTI3ODtlLmxvemVuZ2U9NDk0O2UuUmNhcm9uPTY2NztlLkdjb21tYWFjY2VudD03MjI7ZS51Y2lyY3VtZmxleD01NTY7ZS5hY2lyY3VtZmxleD01MDA7ZS5BbWFjcm9uPTY2NztlLnJjYXJvbj0zODk7ZS5jY2VkaWxsYT00NDQ7ZS5aZG90YWNjZW50PTYxMTtlLlRob3JuPTYxMTtlLk9tYWNyb249NzIyO2UuUmFjdXRlPTY2NztlLlNhY3V0ZT01NTY7ZS5kY2Fyb249NjA4O2UuVW1hY3Jvbj03MjI7ZS51cmluZz01NTY7ZS50aHJlZXN1cGVyaW9yPTMwMDtlLk9ncmF2ZT03MjI7ZS5BZ3JhdmU9NjY3O2UuQWJyZXZlPTY2NztlLm11bHRpcGx5PTU3MDtlLnVhY3V0ZT01NTY7ZS5UY2Fyb249NjExO2UucGFydGlhbGRpZmY9NDk0O2UueWRpZXJlc2lzPTQ0NDtlLk5hY3V0ZT03MjI7ZS5pY2lyY3VtZmxleD0yNzg7ZS5FY2lyY3VtZmxleD02Njc7ZS5hZGllcmVzaXM9NTAwO2UuZWRpZXJlc2lzPTQ0NDtlLmNhY3V0ZT00NDQ7ZS5uYWN1dGU9NTU2O2UudW1hY3Jvbj01NTY7ZS5OY2Fyb249NzIyO2UuSWFjdXRlPTM4OTtlLnBsdXNtaW51cz01NzA7ZS5icm9rZW5iYXI9MjIwO2UucmVnaXN0ZXJlZD03NDc7ZS5HYnJldmU9NzIyO2UuSWRvdGFjY2VudD0zODk7ZS5zdW1tYXRpb249NjAwO2UuRWdyYXZlPTY2NztlLnJhY3V0ZT0zODk7ZS5vbWFjcm9uPTUwMDtlLlphY3V0ZT02MTE7ZS5aY2Fyb249NjExO2UuZ3JlYXRlcmVxdWFsPTU0OTtlLkV0aD03MjI7ZS5DY2VkaWxsYT02Njc7ZS5sY29tbWFhY2NlbnQ9Mjc4O2UudGNhcm9uPTM2NjtlLmVvZ29uZWs9NDQ0O2UuVW9nb25laz03MjI7ZS5BYWN1dGU9NjY3O2UuQWRpZXJlc2lzPTY2NztlLmVncmF2ZT00NDQ7ZS56YWN1dGU9Mzg5O2UuaW9nb25laz0yNzg7ZS5PYWN1dGU9NzIyO2Uub2FjdXRlPTUwMDtlLmFtYWNyb249NTAwO2Uuc2FjdXRlPTM4OTtlLmlkaWVyZXNpcz0yNzg7ZS5PY2lyY3VtZmxleD03MjI7ZS5VZ3JhdmU9NzIyO2UuRGVsdGE9NjEyO2UudGhvcm49NTAwO2UudHdvc3VwZXJpb3I9MzAwO2UuT2RpZXJlc2lzPTcyMjtlLm11PTU3NjtlLmlncmF2ZT0yNzg7ZS5vaHVuZ2FydW1sYXV0PTUwMDtlLkVvZ29uZWs9NjY3O2UuZGNyb2F0PTUwMDtlLnRocmVlcXVhcnRlcnM9NzUwO2UuU2NlZGlsbGE9NTU2O2UubGNhcm9uPTM4MjtlLktjb21tYWFjY2VudD02Njc7ZS5MYWN1dGU9NjExO2UudHJhZGVtYXJrPTFlMztlLmVkb3RhY2NlbnQ9NDQ0O2UuSWdyYXZlPTM4OTtlLkltYWNyb249Mzg5O2UuTGNhcm9uPTYxMTtlLm9uZWhhbGY9NzUwO2UubGVzc2VxdWFsPTU0OTtlLm9jaXJjdW1mbGV4PTUwMDtlLm50aWxkZT01NTY7ZS5VaHVuZ2FydW1sYXV0PTcyMjtlLkVhY3V0ZT02Njc7ZS5lbWFjcm9uPTQ0NDtlLmdicmV2ZT01MDA7ZS5vbmVxdWFydGVyPTc1MDtlLlNjYXJvbj01NTY7ZS5TY29tbWFhY2NlbnQ9NTU2O2UuT2h1bmdhcnVtbGF1dD03MjI7ZS5kZWdyZWU9NDAwO2Uub2dyYXZlPTUwMDtlLkNjYXJvbj02Njc7ZS51Z3JhdmU9NTU2O2UucmFkaWNhbD01NDk7ZS5EY2Fyb249NzIyO2UucmNvbW1hYWNjZW50PTM4OTtlLk50aWxkZT03MjI7ZS5vdGlsZGU9NTAwO2UuUmNvbW1hYWNjZW50PTY2NztlLkxjb21tYWFjY2VudD02MTE7ZS5BdGlsZGU9NjY3O2UuQW9nb25laz02Njc7ZS5BcmluZz02Njc7ZS5PdGlsZGU9NzIyO2UuemRvdGFjY2VudD0zODk7ZS5FY2Fyb249NjY3O2UuSW9nb25laz0zODk7ZS5rY29tbWFhY2NlbnQ9NTAwO2UubWludXM9NjA2O2UuSWNpcmN1bWZsZXg9Mzg5O2UubmNhcm9uPTU1NjtlLnRjb21tYWFjY2VudD0yNzg7ZS5sb2dpY2Fsbm90PTYwNjtlLm9kaWVyZXNpcz01MDA7ZS51ZGllcmVzaXM9NTU2O2Uubm90ZXF1YWw9NTQ5O2UuZ2NvbW1hYWNjZW50PTUwMDtlLmV0aD01MDA7ZS56Y2Fyb249Mzg5O2UubmNvbW1hYWNjZW50PTU1NjtlLm9uZXN1cGVyaW9yPTMwMDtlLmltYWNyb249Mjc4O2UuRXVybz01MDB9KSk7ZVsiVGltZXMtSXRhbGljIl09Z2V0TG9va3VwVGFibGVGYWN0b3J5KChmdW5jdGlvbihlKXtlLnNwYWNlPTI1MDtlLmV4Y2xhbT0zMzM7ZS5xdW90ZWRibD00MjA7ZS5udW1iZXJzaWduPTUwMDtlLmRvbGxhcj01MDA7ZS5wZXJjZW50PTgzMztlLmFtcGVyc2FuZD03Nzg7ZS5xdW90ZXJpZ2h0PTMzMztlLnBhcmVubGVmdD0zMzM7ZS5wYXJlbnJpZ2h0PTMzMztlLmFzdGVyaXNrPTUwMDtlLnBsdXM9Njc1O2UuY29tbWE9MjUwO2UuaHlwaGVuPTMzMztlLnBlcmlvZD0yNTA7ZS5zbGFzaD0yNzg7ZS56ZXJvPTUwMDtlLm9uZT01MDA7ZS50d289NTAwO2UudGhyZWU9NTAwO2UuZm91cj01MDA7ZS5maXZlPTUwMDtlLnNpeD01MDA7ZS5zZXZlbj01MDA7ZS5laWdodD01MDA7ZS5uaW5lPTUwMDtlLmNvbG9uPTMzMztlLnNlbWljb2xvbj0zMzM7ZS5sZXNzPTY3NTtlLmVxdWFsPTY3NTtlLmdyZWF0ZXI9Njc1O2UucXVlc3Rpb249NTAwO2UuYXQ9OTIwO2UuQT02MTE7ZS5CPTYxMTtlLkM9NjY3O2UuRD03MjI7ZS5FPTYxMTtlLkY9NjExO2UuRz03MjI7ZS5IPTcyMjtlLkk9MzMzO2UuSj00NDQ7ZS5LPTY2NztlLkw9NTU2O2UuTT04MzM7ZS5OPTY2NztlLk89NzIyO2UuUD02MTE7ZS5RPTcyMjtlLlI9NjExO2UuUz01MDA7ZS5UPTU1NjtlLlU9NzIyO2UuVj02MTE7ZS5XPTgzMztlLlg9NjExO2UuWT01NTY7ZS5aPTU1NjtlLmJyYWNrZXRsZWZ0PTM4OTtlLmJhY2tzbGFzaD0yNzg7ZS5icmFja2V0cmlnaHQ9Mzg5O2UuYXNjaWljaXJjdW09NDIyO2UudW5kZXJzY29yZT01MDA7ZS5xdW90ZWxlZnQ9MzMzO2UuYT01MDA7ZS5iPTUwMDtlLmM9NDQ0O2UuZD01MDA7ZS5lPTQ0NDtlLmY9Mjc4O2UuZz01MDA7ZS5oPTUwMDtlLmk9Mjc4O2Uuaj0yNzg7ZS5rPTQ0NDtlLmw9Mjc4O2UubT03MjI7ZS5uPTUwMDtlLm89NTAwO2UucD01MDA7ZS5xPTUwMDtlLnI9Mzg5O2Uucz0zODk7ZS50PTI3ODtlLnU9NTAwO2Uudj00NDQ7ZS53PTY2NztlLng9NDQ0O2UueT00NDQ7ZS56PTM4OTtlLmJyYWNlbGVmdD00MDA7ZS5iYXI9Mjc1O2UuYnJhY2VyaWdodD00MDA7ZS5hc2NpaXRpbGRlPTU0MTtlLmV4Y2xhbWRvd249Mzg5O2UuY2VudD01MDA7ZS5zdGVybGluZz01MDA7ZS5mcmFjdGlvbj0xNjc7ZS55ZW49NTAwO2UuZmxvcmluPTUwMDtlLnNlY3Rpb249NTAwO2UuY3VycmVuY3k9NTAwO2UucXVvdGVzaW5nbGU9MjE0O2UucXVvdGVkYmxsZWZ0PTU1NjtlLmd1aWxsZW1vdGxlZnQ9NTAwO2UuZ3VpbHNpbmdsbGVmdD0zMzM7ZS5ndWlsc2luZ2xyaWdodD0zMzM7ZS5maT01MDA7ZS5mbD01MDA7ZS5lbmRhc2g9NTAwO2UuZGFnZ2VyPTUwMDtlLmRhZ2dlcmRibD01MDA7ZS5wZXJpb2RjZW50ZXJlZD0yNTA7ZS5wYXJhZ3JhcGg9NTIzO2UuYnVsbGV0PTM1MDtlLnF1b3Rlc2luZ2xiYXNlPTMzMztlLnF1b3RlZGJsYmFzZT01NTY7ZS5xdW90ZWRibHJpZ2h0PTU1NjtlLmd1aWxsZW1vdHJpZ2h0PTUwMDtlLmVsbGlwc2lzPTg4OTtlLnBlcnRob3VzYW5kPTFlMztlLnF1ZXN0aW9uZG93bj01MDA7ZS5ncmF2ZT0zMzM7ZS5hY3V0ZT0zMzM7ZS5jaXJjdW1mbGV4PTMzMztlLnRpbGRlPTMzMztlLm1hY3Jvbj0zMzM7ZS5icmV2ZT0zMzM7ZS5kb3RhY2NlbnQ9MzMzO2UuZGllcmVzaXM9MzMzO2UucmluZz0zMzM7ZS5jZWRpbGxhPTMzMztlLmh1bmdhcnVtbGF1dD0zMzM7ZS5vZ29uZWs9MzMzO2UuY2Fyb249MzMzO2UuZW1kYXNoPTg4OTtlLkFFPTg4OTtlLm9yZGZlbWluaW5lPTI3NjtlLkxzbGFzaD01NTY7ZS5Pc2xhc2g9NzIyO2UuT0U9OTQ0O2Uub3JkbWFzY3VsaW5lPTMxMDtlLmFlPTY2NztlLmRvdGxlc3NpPTI3ODtlLmxzbGFzaD0yNzg7ZS5vc2xhc2g9NTAwO2Uub2U9NjY3O2UuZ2VybWFuZGJscz01MDA7ZS5JZGllcmVzaXM9MzMzO2UuZWFjdXRlPTQ0NDtlLmFicmV2ZT01MDA7ZS51aHVuZ2FydW1sYXV0PTUwMDtlLmVjYXJvbj00NDQ7ZS5ZZGllcmVzaXM9NTU2O2UuZGl2aWRlPTY3NTtlLllhY3V0ZT01NTY7ZS5BY2lyY3VtZmxleD02MTE7ZS5hYWN1dGU9NTAwO2UuVWNpcmN1bWZsZXg9NzIyO2UueWFjdXRlPTQ0NDtlLnNjb21tYWFjY2VudD0zODk7ZS5lY2lyY3VtZmxleD00NDQ7ZS5VcmluZz03MjI7ZS5VZGllcmVzaXM9NzIyO2UuYW9nb25laz01MDA7ZS5VYWN1dGU9NzIyO2UudW9nb25laz01MDA7ZS5FZGllcmVzaXM9NjExO2UuRGNyb2F0PTcyMjtlLmNvbW1hYWNjZW50PTI1MDtlLmNvcHlyaWdodD03NjA7ZS5FbWFjcm9uPTYxMTtlLmNjYXJvbj00NDQ7ZS5hcmluZz01MDA7ZS5OY29tbWFhY2NlbnQ9NjY3O2UubGFjdXRlPTI3ODtlLmFncmF2ZT01MDA7ZS5UY29tbWFhY2NlbnQ9NTU2O2UuQ2FjdXRlPTY2NztlLmF0aWxkZT01MDA7ZS5FZG90YWNjZW50PTYxMTtlLnNjYXJvbj0zODk7ZS5zY2VkaWxsYT0zODk7ZS5pYWN1dGU9Mjc4O2UubG96ZW5nZT00NzE7ZS5SY2Fyb249NjExO2UuR2NvbW1hYWNjZW50PTcyMjtlLnVjaXJjdW1mbGV4PTUwMDtlLmFjaXJjdW1mbGV4PTUwMDtlLkFtYWNyb249NjExO2UucmNhcm9uPTM4OTtlLmNjZWRpbGxhPTQ0NDtlLlpkb3RhY2NlbnQ9NTU2O2UuVGhvcm49NjExO2UuT21hY3Jvbj03MjI7ZS5SYWN1dGU9NjExO2UuU2FjdXRlPTUwMDtlLmRjYXJvbj01NDQ7ZS5VbWFjcm9uPTcyMjtlLnVyaW5nPTUwMDtlLnRocmVlc3VwZXJpb3I9MzAwO2UuT2dyYXZlPTcyMjtlLkFncmF2ZT02MTE7ZS5BYnJldmU9NjExO2UubXVsdGlwbHk9Njc1O2UudWFjdXRlPTUwMDtlLlRjYXJvbj01NTY7ZS5wYXJ0aWFsZGlmZj00NzY7ZS55ZGllcmVzaXM9NDQ0O2UuTmFjdXRlPTY2NztlLmljaXJjdW1mbGV4PTI3ODtlLkVjaXJjdW1mbGV4PTYxMTtlLmFkaWVyZXNpcz01MDA7ZS5lZGllcmVzaXM9NDQ0O2UuY2FjdXRlPTQ0NDtlLm5hY3V0ZT01MDA7ZS51bWFjcm9uPTUwMDtlLk5jYXJvbj02Njc7ZS5JYWN1dGU9MzMzO2UucGx1c21pbnVzPTY3NTtlLmJyb2tlbmJhcj0yNzU7ZS5yZWdpc3RlcmVkPTc2MDtlLkdicmV2ZT03MjI7ZS5JZG90YWNjZW50PTMzMztlLnN1bW1hdGlvbj02MDA7ZS5FZ3JhdmU9NjExO2UucmFjdXRlPTM4OTtlLm9tYWNyb249NTAwO2UuWmFjdXRlPTU1NjtlLlpjYXJvbj01NTY7ZS5ncmVhdGVyZXF1YWw9NTQ5O2UuRXRoPTcyMjtlLkNjZWRpbGxhPTY2NztlLmxjb21tYWFjY2VudD0yNzg7ZS50Y2Fyb249MzAwO2UuZW9nb25laz00NDQ7ZS5Vb2dvbmVrPTcyMjtlLkFhY3V0ZT02MTE7ZS5BZGllcmVzaXM9NjExO2UuZWdyYXZlPTQ0NDtlLnphY3V0ZT0zODk7ZS5pb2dvbmVrPTI3ODtlLk9hY3V0ZT03MjI7ZS5vYWN1dGU9NTAwO2UuYW1hY3Jvbj01MDA7ZS5zYWN1dGU9Mzg5O2UuaWRpZXJlc2lzPTI3ODtlLk9jaXJjdW1mbGV4PTcyMjtlLlVncmF2ZT03MjI7ZS5EZWx0YT02MTI7ZS50aG9ybj01MDA7ZS50d29zdXBlcmlvcj0zMDA7ZS5PZGllcmVzaXM9NzIyO2UubXU9NTAwO2UuaWdyYXZlPTI3ODtlLm9odW5nYXJ1bWxhdXQ9NTAwO2UuRW9nb25laz02MTE7ZS5kY3JvYXQ9NTAwO2UudGhyZWVxdWFydGVycz03NTA7ZS5TY2VkaWxsYT01MDA7ZS5sY2Fyb249MzAwO2UuS2NvbW1hYWNjZW50PTY2NztlLkxhY3V0ZT01NTY7ZS50cmFkZW1hcms9OTgwO2UuZWRvdGFjY2VudD00NDQ7ZS5JZ3JhdmU9MzMzO2UuSW1hY3Jvbj0zMzM7ZS5MY2Fyb249NjExO2Uub25laGFsZj03NTA7ZS5sZXNzZXF1YWw9NTQ5O2Uub2NpcmN1bWZsZXg9NTAwO2UubnRpbGRlPTUwMDtlLlVodW5nYXJ1bWxhdXQ9NzIyO2UuRWFjdXRlPTYxMTtlLmVtYWNyb249NDQ0O2UuZ2JyZXZlPTUwMDtlLm9uZXF1YXJ0ZXI9NzUwO2UuU2Nhcm9uPTUwMDtlLlNjb21tYWFjY2VudD01MDA7ZS5PaHVuZ2FydW1sYXV0PTcyMjtlLmRlZ3JlZT00MDA7ZS5vZ3JhdmU9NTAwO2UuQ2Nhcm9uPTY2NztlLnVncmF2ZT01MDA7ZS5yYWRpY2FsPTQ1MztlLkRjYXJvbj03MjI7ZS5yY29tbWFhY2NlbnQ9Mzg5O2UuTnRpbGRlPTY2NztlLm90aWxkZT01MDA7ZS5SY29tbWFhY2NlbnQ9NjExO2UuTGNvbW1hYWNjZW50PTU1NjtlLkF0aWxkZT02MTE7ZS5Bb2dvbmVrPTYxMTtlLkFyaW5nPTYxMTtlLk90aWxkZT03MjI7ZS56ZG90YWNjZW50PTM4OTtlLkVjYXJvbj02MTE7ZS5Jb2dvbmVrPTMzMztlLmtjb21tYWFjY2VudD00NDQ7ZS5taW51cz02NzU7ZS5JY2lyY3VtZmxleD0zMzM7ZS5uY2Fyb249NTAwO2UudGNvbW1hYWNjZW50PTI3ODtlLmxvZ2ljYWxub3Q9Njc1O2Uub2RpZXJlc2lzPTUwMDtlLnVkaWVyZXNpcz01MDA7ZS5ub3RlcXVhbD01NDk7ZS5nY29tbWFhY2NlbnQ9NTAwO2UuZXRoPTUwMDtlLnpjYXJvbj0zODk7ZS5uY29tbWFhY2NlbnQ9NTAwO2Uub25lc3VwZXJpb3I9MzAwO2UuaW1hY3Jvbj0yNzg7ZS5FdXJvPTUwMH0pKTtlLlphcGZEaW5nYmF0cz1nZXRMb29rdXBUYWJsZUZhY3RvcnkoKGZ1bmN0aW9uKGUpe2Uuc3BhY2U9Mjc4O2UuYTE9OTc0O2UuYTI9OTYxO2UuYTIwMj05NzQ7ZS5hMz05ODA7ZS5hND03MTk7ZS5hNT03ODk7ZS5hMTE5PTc5MDtlLmExMTg9NzkxO2UuYTExNz02OTA7ZS5hMTE9OTYwO2UuYTEyPTkzOTtlLmExMz01NDk7ZS5hMTQ9ODU1O2UuYTE1PTkxMTtlLmExNj05MzM7ZS5hMTA1PTkxMTtlLmExNz05NDU7ZS5hMTg9OTc0O2UuYTE5PTc1NTtlLmEyMD04NDY7ZS5hMjE9NzYyO2UuYTIyPTc2MTtlLmEyMz01NzE7ZS5hMjQ9Njc3O2UuYTI1PTc2MztlLmEyNj03NjA7ZS5hMjc9NzU5O2UuYTI4PTc1NDtlLmE2PTQ5NDtlLmE3PTU1MjtlLmE4PTUzNztlLmE5PTU3NztlLmExMD02OTI7ZS5hMjk9Nzg2O2UuYTMwPTc4ODtlLmEzMT03ODg7ZS5hMzI9NzkwO2UuYTMzPTc5MztlLmEzND03OTQ7ZS5hMzU9ODE2O2UuYTM2PTgyMztlLmEzNz03ODk7ZS5hMzg9ODQxO2UuYTM5PTgyMztlLmE0MD04MzM7ZS5hNDE9ODE2O2UuYTQyPTgzMTtlLmE0Mz05MjM7ZS5hNDQ9NzQ0O2UuYTQ1PTcyMztlLmE0Nj03NDk7ZS5hNDc9NzkwO2UuYTQ4PTc5MjtlLmE0OT02OTU7ZS5hNTA9Nzc2O2UuYTUxPTc2ODtlLmE1Mj03OTI7ZS5hNTM9NzU5O2UuYTU0PTcwNztlLmE1NT03MDg7ZS5hNTY9NjgyO2UuYTU3PTcwMTtlLmE1OD04MjY7ZS5hNTk9ODE1O2UuYTYwPTc4OTtlLmE2MT03ODk7ZS5hNjI9NzA3O2UuYTYzPTY4NztlLmE2ND02OTY7ZS5hNjU9Njg5O2UuYTY2PTc4NjtlLmE2Nz03ODc7ZS5hNjg9NzEzO2UuYTY5PTc5MTtlLmE3MD03ODU7ZS5hNzE9NzkxO2UuYTcyPTg3MztlLmE3Mz03NjE7ZS5hNzQ9NzYyO2UuYTIwMz03NjI7ZS5hNzU9NzU5O2UuYTIwND03NTk7ZS5hNzY9ODkyO2UuYTc3PTg5MjtlLmE3OD03ODg7ZS5hNzk9Nzg0O2UuYTgxPTQzODtlLmE4Mj0xMzg7ZS5hODM9Mjc3O2UuYTg0PTQxNTtlLmE5Nz0zOTI7ZS5hOTg9MzkyO2UuYTk5PTY2ODtlLmExMDA9NjY4O2UuYTg5PTM5MDtlLmE5MD0zOTA7ZS5hOTM9MzE3O2UuYTk0PTMxNztlLmE5MT0yNzY7ZS5hOTI9Mjc2O2UuYTIwNT01MDk7ZS5hODU9NTA5O2UuYTIwNj00MTA7ZS5hODY9NDEwO2UuYTg3PTIzNDtlLmE4OD0yMzQ7ZS5hOTU9MzM0O2UuYTk2PTMzNDtlLmExMDE9NzMyO2UuYTEwMj01NDQ7ZS5hMTAzPTU0NDtlLmExMDQ9OTEwO2UuYTEwNj02Njc7ZS5hMTA3PTc2MDtlLmExMDg9NzYwO2UuYTExMj03NzY7ZS5hMTExPTU5NTtlLmExMTA9Njk0O2UuYTEwOT02MjY7ZS5hMTIwPTc4ODtlLmExMjE9Nzg4O2UuYTEyMj03ODg7ZS5hMTIzPTc4ODtlLmExMjQ9Nzg4O2UuYTEyNT03ODg7ZS5hMTI2PTc4ODtlLmExMjc9Nzg4O2UuYTEyOD03ODg7ZS5hMTI5PTc4ODtlLmExMzA9Nzg4O2UuYTEzMT03ODg7ZS5hMTMyPTc4ODtlLmExMzM9Nzg4O2UuYTEzND03ODg7ZS5hMTM1PTc4ODtlLmExMzY9Nzg4O2UuYTEzNz03ODg7ZS5hMTM4PTc4ODtlLmExMzk9Nzg4O2UuYTE0MD03ODg7ZS5hMTQxPTc4ODtlLmExNDI9Nzg4O2UuYTE0Mz03ODg7ZS5hMTQ0PTc4ODtlLmExNDU9Nzg4O2UuYTE0Nj03ODg7ZS5hMTQ3PTc4ODtlLmExNDg9Nzg4O2UuYTE0OT03ODg7ZS5hMTUwPTc4ODtlLmExNTE9Nzg4O2UuYTE1Mj03ODg7ZS5hMTUzPTc4ODtlLmExNTQ9Nzg4O2UuYTE1NT03ODg7ZS5hMTU2PTc4ODtlLmExNTc9Nzg4O2UuYTE1OD03ODg7ZS5hMTU5PTc4ODtlLmExNjA9ODk0O2UuYTE2MT04Mzg7ZS5hMTYzPTEwMTY7ZS5hMTY0PTQ1ODtlLmExOTY9NzQ4O2UuYTE2NT05MjQ7ZS5hMTkyPTc0ODtlLmExNjY9OTE4O2UuYTE2Nz05Mjc7ZS5hMTY4PTkyODtlLmExNjk9OTI4O2UuYTE3MD04MzQ7ZS5hMTcxPTg3MztlLmExNzI9ODI4O2UuYTE3Mz05MjQ7ZS5hMTYyPTkyNDtlLmExNzQ9OTE3O2UuYTE3NT05MzA7ZS5hMTc2PTkzMTtlLmExNzc9NDYzO2UuYTE3OD04ODM7ZS5hMTc5PTgzNjtlLmExOTM9ODM2O2UuYTE4MD04Njc7ZS5hMTk5PTg2NztlLmExODE9Njk2O2UuYTIwMD02OTY7ZS5hMTgyPTg3NDtlLmEyMDE9ODc0O2UuYTE4Mz03NjA7ZS5hMTg0PTk0NjtlLmExOTc9NzcxO2UuYTE4NT04NjU7ZS5hMTk0PTc3MTtlLmExOTg9ODg4O2UuYTE4Nj05Njc7ZS5hMTk1PTg4ODtlLmExODc9ODMxO2UuYTE4OD04NzM7ZS5hMTg5PTkyNztlLmExOTA9OTcwO2UuYTE5MT05MTh9KSl9KSksWmk9Z2V0TG9va3VwVGFibGVGYWN0b3J5KChmdW5jdGlvbihlKXtlLkNvdXJpZXI9e2FzY2VudDo2MjksZGVzY2VudDotMTU3LGNhcEhlaWdodDo1NjIseEhlaWdodDotNDI2fTtlWyJDb3VyaWVyLUJvbGQiXT17YXNjZW50OjYyOSxkZXNjZW50Oi0xNTcsY2FwSGVpZ2h0OjU2Mix4SGVpZ2h0OjQzOX07ZVsiQ291cmllci1PYmxpcXVlIl09e2FzY2VudDo2MjksZGVzY2VudDotMTU3LGNhcEhlaWdodDo1NjIseEhlaWdodDo0MjZ9O2VbIkNvdXJpZXItQm9sZE9ibGlxdWUiXT17YXNjZW50OjYyOSxkZXNjZW50Oi0xNTcsY2FwSGVpZ2h0OjU2Mix4SGVpZ2h0OjQyNn07ZS5IZWx2ZXRpY2E9e2FzY2VudDo3MTgsZGVzY2VudDotMjA3LGNhcEhlaWdodDo3MTgseEhlaWdodDo1MjN9O2VbIkhlbHZldGljYS1Cb2xkIl09e2FzY2VudDo3MTgsZGVzY2VudDotMjA3LGNhcEhlaWdodDo3MTgseEhlaWdodDo1MzJ9O2VbIkhlbHZldGljYS1PYmxpcXVlIl09e2FzY2VudDo3MTgsZGVzY2VudDotMjA3LGNhcEhlaWdodDo3MTgseEhlaWdodDo1MjN9O2VbIkhlbHZldGljYS1Cb2xkT2JsaXF1ZSJdPXthc2NlbnQ6NzE4LGRlc2NlbnQ6LTIwNyxjYXBIZWlnaHQ6NzE4LHhIZWlnaHQ6NTMyfTtlWyJUaW1lcy1Sb21hbiJdPXthc2NlbnQ6NjgzLGRlc2NlbnQ6LTIxNyxjYXBIZWlnaHQ6NjYyLHhIZWlnaHQ6NDUwfTtlWyJUaW1lcy1Cb2xkIl09e2FzY2VudDo2ODMsZGVzY2VudDotMjE3LGNhcEhlaWdodDo2NzYseEhlaWdodDo0NjF9O2VbIlRpbWVzLUl0YWxpYyJdPXthc2NlbnQ6NjgzLGRlc2NlbnQ6LTIxNyxjYXBIZWlnaHQ6NjUzLHhIZWlnaHQ6NDQxfTtlWyJUaW1lcy1Cb2xkSXRhbGljIl09e2FzY2VudDo2ODMsZGVzY2VudDotMjE3LGNhcEhlaWdodDo2NjkseEhlaWdodDo0NjJ9O2UuU3ltYm9sPXthc2NlbnQ6TWF0aC5OYU4sZGVzY2VudDpNYXRoLk5hTixjYXBIZWlnaHQ6TWF0aC5OYU4seEhlaWdodDpNYXRoLk5hTn07ZS5aYXBmRGluZ2JhdHM9e2FzY2VudDpNYXRoLk5hTixkZXNjZW50Ok1hdGguTmFOLGNhcEhlaWdodDpNYXRoLk5hTix4SGVpZ2h0Ok1hdGguTmFOfX0pKTtjbGFzcyBHbHlmVGFibGV7Y29uc3RydWN0b3Ioe2dseWZUYWJsZTplLGlzR2x5cGhMb2NhdGlvbnNMb25nOnQsbG9jYVRhYmxlOmksbnVtR2x5cGhzOmF9KXt0aGlzLmdseXBocz1bXTtjb25zdCByPW5ldyBEYXRhVmlldyhpLmJ1ZmZlcixpLmJ5dGVPZmZzZXQsaS5ieXRlTGVuZ3RoKSxzPW5ldyBEYXRhVmlldyhlLmJ1ZmZlcixlLmJ5dGVPZmZzZXQsZS5ieXRlTGVuZ3RoKSxuPXQ/NDoyO2xldCBvPXQ/ci5nZXRVaW50MzIoMCk6MipyLmdldFVpbnQxNigwKSxnPTA7Zm9yKGxldCBlPTA7ZTxhO2UrKyl7Zys9bjtjb25zdCBlPXQ/ci5nZXRVaW50MzIoZyk6MipyLmdldFVpbnQxNihnKTtpZihlPT09byl7dGhpcy5nbHlwaHMucHVzaChuZXcgR2x5cGgoe30pKTtjb250aW51ZX1jb25zdCBpPUdseXBoLnBhcnNlKG8scyk7dGhpcy5nbHlwaHMucHVzaChpKTtvPWV9fWdldFNpemUoKXtyZXR1cm4gdGhpcy5nbHlwaHMucmVkdWNlKCgoZSx0KT0+ZSsodC5nZXRTaXplKCkrMyYtNCkpLDApfXdyaXRlKCl7Y29uc3QgZT10aGlzLmdldFNpemUoKSx0PW5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoZSkpLGk9ZT4xMzEwNzAsYT1pPzQ6MixyPW5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoKHRoaXMuZ2x5cGhzLmxlbmd0aCsxKSphKSk7aT9yLnNldFVpbnQzMigwLDApOnIuc2V0VWludDE2KDAsMCk7bGV0IHM9MCxuPTA7Zm9yKGNvbnN0IGUgb2YgdGhpcy5nbHlwaHMpe3MrPWUud3JpdGUocyx0KTtzPXMrMyYtNDtuKz1hO2k/ci5zZXRVaW50MzIobixzKTpyLnNldFVpbnQxNihuLHM+PjEpfXJldHVybntpc0xvY2F0aW9uTG9uZzppLGxvY2E6bmV3IFVpbnQ4QXJyYXkoci5idWZmZXIpLGdseWY6bmV3IFVpbnQ4QXJyYXkodC5idWZmZXIpfX1zY2FsZShlKXtmb3IobGV0IHQ9MCxpPXRoaXMuZ2x5cGhzLmxlbmd0aDt0PGk7dCsrKXRoaXMuZ2x5cGhzW3RdLnNjYWxlKGVbdF0pfX1jbGFzcyBHbHlwaHtjb25zdHJ1Y3Rvcih7aGVhZGVyOmU9bnVsbCxzaW1wbGU6dD1udWxsLGNvbXBvc2l0ZXM6aT1udWxsfSl7dGhpcy5oZWFkZXI9ZTt0aGlzLnNpbXBsZT10O3RoaXMuY29tcG9zaXRlcz1pfXN0YXRpYyBwYXJzZShlLHQpe2NvbnN0W2ksYV09R2x5cGhIZWFkZXIucGFyc2UoZSx0KTtlKz1pO2lmKGEubnVtYmVyT2ZDb250b3VyczwwKXtjb25zdCBpPVtdO2Zvcig7Oyl7Y29uc3RbYSxyXT1Db21wb3NpdGVHbHlwaC5wYXJzZShlLHQpO2UrPWE7aS5wdXNoKHIpO2lmKCEoMzImci5mbGFncykpYnJlYWt9cmV0dXJuIG5ldyBHbHlwaCh7aGVhZGVyOmEsY29tcG9zaXRlczppfSl9Y29uc3Qgcj1TaW1wbGVHbHlwaC5wYXJzZShlLHQsYS5udW1iZXJPZkNvbnRvdXJzKTtyZXR1cm4gbmV3IEdseXBoKHtoZWFkZXI6YSxzaW1wbGU6cn0pfWdldFNpemUoKXtpZighdGhpcy5oZWFkZXIpcmV0dXJuIDA7Y29uc3QgZT10aGlzLnNpbXBsZT90aGlzLnNpbXBsZS5nZXRTaXplKCk6dGhpcy5jb21wb3NpdGVzLnJlZHVjZSgoKGUsdCk9PmUrdC5nZXRTaXplKCkpLDApO3JldHVybiB0aGlzLmhlYWRlci5nZXRTaXplKCkrZX13cml0ZShlLHQpe2lmKCF0aGlzLmhlYWRlcilyZXR1cm4gMDtjb25zdCBpPWU7ZSs9dGhpcy5oZWFkZXIud3JpdGUoZSx0KTtpZih0aGlzLnNpbXBsZSllKz10aGlzLnNpbXBsZS53cml0ZShlLHQpO2Vsc2UgZm9yKGNvbnN0IGkgb2YgdGhpcy5jb21wb3NpdGVzKWUrPWkud3JpdGUoZSx0KTtyZXR1cm4gZS1pfXNjYWxlKGUpe2lmKCF0aGlzLmhlYWRlcilyZXR1cm47Y29uc3QgdD0odGhpcy5oZWFkZXIueE1pbit0aGlzLmhlYWRlci54TWF4KS8yO3RoaXMuaGVhZGVyLnNjYWxlKHQsZSk7aWYodGhpcy5zaW1wbGUpdGhpcy5zaW1wbGUuc2NhbGUodCxlKTtlbHNlIGZvcihjb25zdCBpIG9mIHRoaXMuY29tcG9zaXRlcylpLnNjYWxlKHQsZSl9fWNsYXNzIEdseXBoSGVhZGVye2NvbnN0cnVjdG9yKHtudW1iZXJPZkNvbnRvdXJzOmUseE1pbjp0LHlNaW46aSx4TWF4OmEseU1heDpyfSl7dGhpcy5udW1iZXJPZkNvbnRvdXJzPWU7dGhpcy54TWluPXQ7dGhpcy55TWluPWk7dGhpcy54TWF4PWE7dGhpcy55TWF4PXJ9c3RhdGljIHBhcnNlKGUsdCl7cmV0dXJuWzEwLG5ldyBHbHlwaEhlYWRlcih7bnVtYmVyT2ZDb250b3Vyczp0LmdldEludDE2KGUpLHhNaW46dC5nZXRJbnQxNihlKzIpLHlNaW46dC5nZXRJbnQxNihlKzQpLHhNYXg6dC5nZXRJbnQxNihlKzYpLHlNYXg6dC5nZXRJbnQxNihlKzgpfSldfWdldFNpemUoKXtyZXR1cm4gMTB9d3JpdGUoZSx0KXt0LnNldEludDE2KGUsdGhpcy5udW1iZXJPZkNvbnRvdXJzKTt0LnNldEludDE2KGUrMix0aGlzLnhNaW4pO3Quc2V0SW50MTYoZSs0LHRoaXMueU1pbik7dC5zZXRJbnQxNihlKzYsdGhpcy54TWF4KTt0LnNldEludDE2KGUrOCx0aGlzLnlNYXgpO3JldHVybiAxMH1zY2FsZShlLHQpe3RoaXMueE1pbj1NYXRoLnJvdW5kKGUrKHRoaXMueE1pbi1lKSp0KTt0aGlzLnhNYXg9TWF0aC5yb3VuZChlKyh0aGlzLnhNYXgtZSkqdCl9fWNsYXNzIENvbnRvdXJ7Y29uc3RydWN0b3Ioe2ZsYWdzOmUseENvb3JkaW5hdGVzOnQseUNvb3JkaW5hdGVzOml9KXt0aGlzLnhDb29yZGluYXRlcz10O3RoaXMueUNvb3JkaW5hdGVzPWk7dGhpcy5mbGFncz1lfX1jbGFzcyBTaW1wbGVHbHlwaHtjb25zdHJ1Y3Rvcih7Y29udG91cnM6ZSxpbnN0cnVjdGlvbnM6dH0pe3RoaXMuY29udG91cnM9ZTt0aGlzLmluc3RydWN0aW9ucz10fXN0YXRpYyBwYXJzZShlLHQsaSl7Y29uc3QgYT1bXTtmb3IobGV0IHI9MDtyPGk7cisrKXtjb25zdCBpPXQuZ2V0VWludDE2KGUpO2UrPTI7YS5wdXNoKGkpfWNvbnN0IHI9YVtpLTFdKzEscz10LmdldFVpbnQxNihlKTtlKz0yO2NvbnN0IG49bmV3IFVpbnQ4QXJyYXkodCkuc2xpY2UoZSxlK3MpO2UrPXM7Y29uc3Qgbz1bXTtmb3IobGV0IGk9MDtpPHI7ZSsrLGkrKyl7bGV0IGE9dC5nZXRVaW50OChlKTtvLnB1c2goYSk7aWYoOCZhKXtjb25zdCByPXQuZ2V0VWludDgoKytlKTthXj04O2ZvcihsZXQgZT0wO2U8cjtlKyspby5wdXNoKGEpO2krPXJ9fWNvbnN0IGc9W107bGV0IGM9W10sbD1bXSxoPVtdO2NvbnN0IEM9W107bGV0IFE9MCxFPTA7Zm9yKGxldCBpPTA7aTxyO2krKyl7Y29uc3Qgcj1vW2ldO2lmKDImcil7Y29uc3QgaT10LmdldFVpbnQ4KGUrKyk7RSs9MTYmcj9pOi1pO2MucHVzaChFKX1lbHNlIGlmKDE2JnIpYy5wdXNoKEUpO2Vsc2V7RSs9dC5nZXRJbnQxNihlKTtlKz0yO2MucHVzaChFKX1pZihhW1FdPT09aSl7USsrO2cucHVzaChjKTtjPVtdfX1FPTA7UT0wO2ZvcihsZXQgaT0wO2k8cjtpKyspe2NvbnN0IHI9b1tpXTtpZig0JnIpe2NvbnN0IGk9dC5nZXRVaW50OChlKyspO0UrPTMyJnI/aTotaTtsLnB1c2goRSl9ZWxzZSBpZigzMiZyKWwucHVzaChFKTtlbHNle0UrPXQuZ2V0SW50MTYoZSk7ZSs9MjtsLnB1c2goRSl9aC5wdXNoKDEmcnw2NCZyKTtpZihhW1FdPT09aSl7Yz1nW1FdO1ErKztDLnB1c2gobmV3IENvbnRvdXIoe2ZsYWdzOmgseENvb3JkaW5hdGVzOmMseUNvb3JkaW5hdGVzOmx9KSk7bD1bXTtoPVtdfX1yZXR1cm4gbmV3IFNpbXBsZUdseXBoKHtjb250b3VyczpDLGluc3RydWN0aW9uczpufSl9Z2V0U2l6ZSgpe2xldCBlPTIqdGhpcy5jb250b3Vycy5sZW5ndGgrMit0aGlzLmluc3RydWN0aW9ucy5sZW5ndGgsdD0wLGk9MDtmb3IoY29uc3QgYSBvZiB0aGlzLmNvbnRvdXJzKXtlKz1hLmZsYWdzLmxlbmd0aDtmb3IobGV0IHI9MCxzPWEueENvb3JkaW5hdGVzLmxlbmd0aDtyPHM7cisrKXtjb25zdCBzPWEueENvb3JkaW5hdGVzW3JdLG49YS55Q29vcmRpbmF0ZXNbcl07bGV0IG89TWF0aC5hYnMocy10KTtvPjI1NT9lKz0yOm8+MCYmKGUrPTEpO3Q9cztvPU1hdGguYWJzKG4taSk7bz4yNTU/ZSs9MjpvPjAmJihlKz0xKTtpPW59fXJldHVybiBlfXdyaXRlKGUsdCl7Y29uc3QgaT1lLGE9W10scj1bXSxzPVtdO2xldCBuPTAsbz0wO2Zvcihjb25zdCBpIG9mIHRoaXMuY29udG91cnMpe2ZvcihsZXQgZT0wLHQ9aS54Q29vcmRpbmF0ZXMubGVuZ3RoO2U8dDtlKyspe2xldCB0PWkuZmxhZ3NbZV07Y29uc3QgZz1pLnhDb29yZGluYXRlc1tlXTtsZXQgYz1nLW47aWYoMD09PWMpe3R8PTE2O2EucHVzaCgwKX1lbHNle2NvbnN0IGU9TWF0aC5hYnMoYyk7aWYoZTw9MjU1KXt0fD1jPj0wPzE4OjI7YS5wdXNoKGUpfWVsc2UgYS5wdXNoKGMpfW49Zztjb25zdCBsPWkueUNvb3JkaW5hdGVzW2VdO2M9bC1vO2lmKDA9PT1jKXt0fD0zMjtyLnB1c2goMCl9ZWxzZXtjb25zdCBlPU1hdGguYWJzKGMpO2lmKGU8PTI1NSl7dHw9Yz49MD8zNjo0O3IucHVzaChlKX1lbHNlIHIucHVzaChjKX1vPWw7cy5wdXNoKHQpfXQuc2V0VWludDE2KGUsYS5sZW5ndGgtMSk7ZSs9Mn10LnNldFVpbnQxNihlLHRoaXMuaW5zdHJ1Y3Rpb25zLmxlbmd0aCk7ZSs9MjtpZih0aGlzLmluc3RydWN0aW9ucy5sZW5ndGgpe25ldyBVaW50OEFycmF5KHQuYnVmZmVyLDAsdC5idWZmZXIuYnl0ZUxlbmd0aCkuc2V0KHRoaXMuaW5zdHJ1Y3Rpb25zLGUpO2UrPXRoaXMuaW5zdHJ1Y3Rpb25zLmxlbmd0aH1mb3IoY29uc3QgaSBvZiBzKXQuc2V0VWludDgoZSsrLGkpO2ZvcihsZXQgaT0wLHI9YS5sZW5ndGg7aTxyO2krKyl7Y29uc3Qgcj1hW2ldLG49c1tpXTtpZigyJm4pdC5zZXRVaW50OChlKysscik7ZWxzZSBpZighKDE2Jm4pKXt0LnNldEludDE2KGUscik7ZSs9Mn19Zm9yKGxldCBpPTAsYT1yLmxlbmd0aDtpPGE7aSsrKXtjb25zdCBhPXJbaV0sbj1zW2ldO2lmKDQmbil0LnNldFVpbnQ4KGUrKyxhKTtlbHNlIGlmKCEoMzImbikpe3Quc2V0SW50MTYoZSxhKTtlKz0yfX1yZXR1cm4gZS1pfXNjYWxlKGUsdCl7Zm9yKGNvbnN0IGkgb2YgdGhpcy5jb250b3VycylpZigwIT09aS54Q29vcmRpbmF0ZXMubGVuZ3RoKWZvcihsZXQgYT0wLHI9aS54Q29vcmRpbmF0ZXMubGVuZ3RoO2E8cjthKyspaS54Q29vcmRpbmF0ZXNbYV09TWF0aC5yb3VuZChlKyhpLnhDb29yZGluYXRlc1thXS1lKSp0KX19Y2xhc3MgQ29tcG9zaXRlR2x5cGh7Y29uc3RydWN0b3Ioe2ZsYWdzOmUsZ2x5cGhJbmRleDp0LGFyZ3VtZW50MTppLGFyZ3VtZW50MjphLHRyYW5zZjpyLGluc3RydWN0aW9uczpzfSl7dGhpcy5mbGFncz1lO3RoaXMuZ2x5cGhJbmRleD10O3RoaXMuYXJndW1lbnQxPWk7dGhpcy5hcmd1bWVudDI9YTt0aGlzLnRyYW5zZj1yO3RoaXMuaW5zdHJ1Y3Rpb25zPXN9c3RhdGljIHBhcnNlKGUsdCl7Y29uc3QgaT1lLGE9W107bGV0IHI9dC5nZXRVaW50MTYoZSk7Y29uc3Qgcz10LmdldFVpbnQxNihlKzIpO2UrPTQ7bGV0IG4sbztpZigxJnIpe2lmKDImcil7bj10LmdldEludDE2KGUpO289dC5nZXRJbnQxNihlKzIpfWVsc2V7bj10LmdldFVpbnQxNihlKTtvPXQuZ2V0VWludDE2KGUrMil9ZSs9NDtyXj0xfWVsc2V7aWYoMiZyKXtuPXQuZ2V0SW50OChlKTtvPXQuZ2V0SW50OChlKzEpfWVsc2V7bj10LmdldFVpbnQ4KGUpO289dC5nZXRVaW50OChlKzEpfWUrPTJ9aWYoOCZyKXthLnB1c2godC5nZXRVaW50MTYoZSkpO2UrPTJ9ZWxzZSBpZig2NCZyKXthLnB1c2godC5nZXRVaW50MTYoZSksdC5nZXRVaW50MTYoZSsyKSk7ZSs9NH1lbHNlIGlmKDEyOCZyKXthLnB1c2godC5nZXRVaW50MTYoZSksdC5nZXRVaW50MTYoZSsyKSx0LmdldFVpbnQxNihlKzQpLHQuZ2V0VWludDE2KGUrNikpO2UrPTh9bGV0IGc9bnVsbDtpZigyNTYmcil7Y29uc3QgaT10LmdldFVpbnQxNihlKTtlKz0yO2c9bmV3IFVpbnQ4QXJyYXkodCkuc2xpY2UoZSxlK2kpO2UrPWl9cmV0dXJuW2UtaSxuZXcgQ29tcG9zaXRlR2x5cGgoe2ZsYWdzOnIsZ2x5cGhJbmRleDpzLGFyZ3VtZW50MTpuLGFyZ3VtZW50MjpvLHRyYW5zZjphLGluc3RydWN0aW9uczpnfSldfWdldFNpemUoKXtsZXQgZT00KzIqdGhpcy50cmFuc2YubGVuZ3RoOzI1NiZ0aGlzLmZsYWdzJiYoZSs9Mit0aGlzLmluc3RydWN0aW9ucy5sZW5ndGgpO2UrPTI7MiZ0aGlzLmZsYWdzP3RoaXMuYXJndW1lbnQxPj0tMTI4JiZ0aGlzLmFyZ3VtZW50MTw9MTI3JiZ0aGlzLmFyZ3VtZW50Mj49LTEyOCYmdGhpcy5hcmd1bWVudDI8PTEyN3x8KGUrPTIpOnRoaXMuYXJndW1lbnQxPj0wJiZ0aGlzLmFyZ3VtZW50MTw9MjU1JiZ0aGlzLmFyZ3VtZW50Mj49MCYmdGhpcy5hcmd1bWVudDI8PTI1NXx8KGUrPTIpO3JldHVybiBlfXdyaXRlKGUsdCl7Y29uc3QgaT1lOzImdGhpcy5mbGFncz90aGlzLmFyZ3VtZW50MT49LTEyOCYmdGhpcy5hcmd1bWVudDE8PTEyNyYmdGhpcy5hcmd1bWVudDI+PS0xMjgmJnRoaXMuYXJndW1lbnQyPD0xMjd8fCh0aGlzLmZsYWdzfD0xKTp0aGlzLmFyZ3VtZW50MT49MCYmdGhpcy5hcmd1bWVudDE8PTI1NSYmdGhpcy5hcmd1bWVudDI+PTAmJnRoaXMuYXJndW1lbnQyPD0yNTV8fCh0aGlzLmZsYWdzfD0xKTt0LnNldFVpbnQxNihlLHRoaXMuZmxhZ3MpO3Quc2V0VWludDE2KGUrMix0aGlzLmdseXBoSW5kZXgpO2UrPTQ7aWYoMSZ0aGlzLmZsYWdzKXtpZigyJnRoaXMuZmxhZ3Mpe3Quc2V0SW50MTYoZSx0aGlzLmFyZ3VtZW50MSk7dC5zZXRJbnQxNihlKzIsdGhpcy5hcmd1bWVudDIpfWVsc2V7dC5zZXRVaW50MTYoZSx0aGlzLmFyZ3VtZW50MSk7dC5zZXRVaW50MTYoZSsyLHRoaXMuYXJndW1lbnQyKX1lKz00fWVsc2V7dC5zZXRVaW50OChlLHRoaXMuYXJndW1lbnQxKTt0LnNldFVpbnQ4KGUrMSx0aGlzLmFyZ3VtZW50Mik7ZSs9Mn1pZigyNTYmdGhpcy5mbGFncyl7dC5zZXRVaW50MTYoZSx0aGlzLmluc3RydWN0aW9ucy5sZW5ndGgpO2UrPTI7aWYodGhpcy5pbnN0cnVjdGlvbnMubGVuZ3RoKXtuZXcgVWludDhBcnJheSh0LmJ1ZmZlciwwLHQuYnVmZmVyLmJ5dGVMZW5ndGgpLnNldCh0aGlzLmluc3RydWN0aW9ucyxlKTtlKz10aGlzLmluc3RydWN0aW9ucy5sZW5ndGh9fXJldHVybiBlLWl9c2NhbGUoZSx0KXt9fWZ1bmN0aW9uIHdyaXRlSW50MTYoZSx0LGkpe2VbdF09aT4+OCYyNTU7ZVt0KzFdPTI1NSZpfWZ1bmN0aW9uIHdyaXRlSW50MzIoZSx0LGkpe2VbdF09aT4+MjQmMjU1O2VbdCsxXT1pPj4xNiYyNTU7ZVt0KzJdPWk+PjgmMjU1O2VbdCszXT0yNTUmaX1mdW5jdGlvbiB3cml0ZURhdGEoZSx0LGkpe2lmKGkgaW5zdGFuY2VvZiBVaW50OEFycmF5KWUuc2V0KGksdCk7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGkpZm9yKGxldCBhPTAscj1pLmxlbmd0aDthPHI7YSsrKWVbdCsrXT0yNTUmaS5jaGFyQ29kZUF0KGEpO2Vsc2UgZm9yKGNvbnN0IGEgb2YgaSllW3QrK109MjU1JmF9Y2xhc3MgT3BlblR5cGVGaWxlQnVpbGRlcntjb25zdHJ1Y3RvcihlKXt0aGlzLnNmbnQ9ZTt0aGlzLnRhYmxlcz1PYmplY3QuY3JlYXRlKG51bGwpfXN0YXRpYyBnZXRTZWFyY2hQYXJhbXMoZSx0KXtsZXQgaT0xLGE9MDtmb3IoOyhpXmUpPmk7KXtpPDw9MTthKyt9Y29uc3Qgcj1pKnQ7cmV0dXJue3JhbmdlOnIsZW50cnk6YSxyYW5nZVNoaWZ0OnQqZS1yfX10b0FycmF5KCl7bGV0IGU9dGhpcy5zZm50O2NvbnN0IHQ9dGhpcy50YWJsZXMsaT1PYmplY3Qua2V5cyh0KTtpLnNvcnQoKTtjb25zdCBhPWkubGVuZ3RoO2xldCByLHMsbixvLGcsYz0xMisxNiphO2NvbnN0IGw9W2NdO2ZvcihyPTA7cjxhO3IrKyl7bz10W2lbcl1dO2MrPShvLmxlbmd0aCszJi00KT4+PjA7bC5wdXNoKGMpfWNvbnN0IGg9bmV3IFVpbnQ4QXJyYXkoYyk7Zm9yKHI9MDtyPGE7cisrKXtvPXRbaVtyXV07d3JpdGVEYXRhKGgsbFtyXSxvKX0idHJ1ZSI9PT1lJiYoZT1zdHJpbmczMig2NTUzNikpO2hbMF09MjU1JmUuY2hhckNvZGVBdCgwKTtoWzFdPTI1NSZlLmNoYXJDb2RlQXQoMSk7aFsyXT0yNTUmZS5jaGFyQ29kZUF0KDIpO2hbM109MjU1JmUuY2hhckNvZGVBdCgzKTt3cml0ZUludDE2KGgsNCxhKTtjb25zdCBDPU9wZW5UeXBlRmlsZUJ1aWxkZXIuZ2V0U2VhcmNoUGFyYW1zKGEsMTYpO3dyaXRlSW50MTYoaCw2LEMucmFuZ2UpO3dyaXRlSW50MTYoaCw4LEMuZW50cnkpO3dyaXRlSW50MTYoaCwxMCxDLnJhbmdlU2hpZnQpO2M9MTI7Zm9yKHI9MDtyPGE7cisrKXtnPWlbcl07aFtjXT0yNTUmZy5jaGFyQ29kZUF0KDApO2hbYysxXT0yNTUmZy5jaGFyQ29kZUF0KDEpO2hbYysyXT0yNTUmZy5jaGFyQ29kZUF0KDIpO2hbYyszXT0yNTUmZy5jaGFyQ29kZUF0KDMpO2xldCBlPTA7Zm9yKHM9bFtyXSxuPWxbcisxXTtzPG47cys9NCl7ZT1lK3JlYWRVaW50MzIoaCxzKT4+PjB9d3JpdGVJbnQzMihoLGMrNCxlKTt3cml0ZUludDMyKGgsYys4LGxbcl0pO3dyaXRlSW50MzIoaCxjKzEyLHRbZ10ubGVuZ3RoKTtjKz0xNn1yZXR1cm4gaH1hZGRUYWJsZShlLHQpe2lmKGUgaW4gdGhpcy50YWJsZXMpdGhyb3cgbmV3IEVycm9yKCJUYWJsZSAiK2UrIiBhbHJlYWR5IGV4aXN0cyIpO3RoaXMudGFibGVzW2VdPXR9fWNvbnN0IF9pPVs0XSx6aT1bNV0sJGk9WzZdLEFhPVs3XSxlYT1bOF0sdGE9WzEyLDM1XSxpYT1bMTRdLGFhPVsyMV0scmE9WzIyXSxzYT1bMzBdLG5hPVszMV07Y2xhc3MgVHlwZTFDaGFyU3RyaW5ne2NvbnN0cnVjdG9yKCl7dGhpcy53aWR0aD0wO3RoaXMubHNiPTA7dGhpcy5mbGV4aW5nPSExO3RoaXMub3V0cHV0PVtdO3RoaXMuc3RhY2s9W119Y29udmVydChlLHQsaSl7Y29uc3QgYT1lLmxlbmd0aDtsZXQgcixzLG4sbz0hMTtmb3IobGV0IGc9MDtnPGE7ZysrKXtsZXQgYT1lW2ddO2lmKGE8MzIpezEyPT09YSYmKGE9KGE8PDgpK2VbKytnXSk7c3dpdGNoKGEpe2Nhc2UgMTpjYXNlIDM6Y2FzZSA5OmNhc2UgMzA3MjpjYXNlIDMwNzM6Y2FzZSAzMDc0OmNhc2UgMzEwNTp0aGlzLnN0YWNrPVtdO2JyZWFrO2Nhc2UgNDppZih0aGlzLmZsZXhpbmcpe2lmKHRoaXMuc3RhY2subGVuZ3RoPDEpe289ITA7YnJlYWt9Y29uc3QgZT10aGlzLnN0YWNrLnBvcCgpO3RoaXMuc3RhY2sucHVzaCgwLGUpO2JyZWFrfW89dGhpcy5leGVjdXRlQ29tbWFuZCgxLF9pKTticmVhaztjYXNlIDU6bz10aGlzLmV4ZWN1dGVDb21tYW5kKDIsemkpO2JyZWFrO2Nhc2UgNjpvPXRoaXMuZXhlY3V0ZUNvbW1hbmQoMSwkaSk7YnJlYWs7Y2FzZSA3Om89dGhpcy5leGVjdXRlQ29tbWFuZCgxLEFhKTticmVhaztjYXNlIDg6bz10aGlzLmV4ZWN1dGVDb21tYW5kKDYsZWEpO2JyZWFrO2Nhc2UgMTA6aWYodGhpcy5zdGFjay5sZW5ndGg8MSl7bz0hMDticmVha31uPXRoaXMuc3RhY2sucG9wKCk7aWYoIXRbbl0pe289ITA7YnJlYWt9bz10aGlzLmNvbnZlcnQodFtuXSx0LGkpO2JyZWFrO2Nhc2UgMTE6cmV0dXJuIG87Y2FzZSAxMzppZih0aGlzLnN0YWNrLmxlbmd0aDwyKXtvPSEwO2JyZWFrfXI9dGhpcy5zdGFjay5wb3AoKTtzPXRoaXMuc3RhY2sucG9wKCk7dGhpcy5sc2I9czt0aGlzLndpZHRoPXI7dGhpcy5zdGFjay5wdXNoKHIscyk7bz10aGlzLmV4ZWN1dGVDb21tYW5kKDIscmEpO2JyZWFrO2Nhc2UgMTQ6dGhpcy5vdXRwdXQucHVzaChpYVswXSk7YnJlYWs7Y2FzZSAyMTppZih0aGlzLmZsZXhpbmcpYnJlYWs7bz10aGlzLmV4ZWN1dGVDb21tYW5kKDIsYWEpO2JyZWFrO2Nhc2UgMjI6aWYodGhpcy5mbGV4aW5nKXt0aGlzLnN0YWNrLnB1c2goMCk7YnJlYWt9bz10aGlzLmV4ZWN1dGVDb21tYW5kKDEscmEpO2JyZWFrO2Nhc2UgMzA6bz10aGlzLmV4ZWN1dGVDb21tYW5kKDQsc2EpO2JyZWFrO2Nhc2UgMzE6bz10aGlzLmV4ZWN1dGVDb21tYW5kKDQsbmEpO2JyZWFrO2Nhc2UgMzA3ODppZihpKXtjb25zdCBlPXRoaXMuc3RhY2suYXQoLTUpO3RoaXMuc2VhYz10aGlzLnN0YWNrLnNwbGljZSgtNCw0KTt0aGlzLnNlYWNbMF0rPXRoaXMubHNiLWU7bz10aGlzLmV4ZWN1dGVDb21tYW5kKDAsaWEpfWVsc2Ugbz10aGlzLmV4ZWN1dGVDb21tYW5kKDQsaWEpO2JyZWFrO2Nhc2UgMzA3OTppZih0aGlzLnN0YWNrLmxlbmd0aDw0KXtvPSEwO2JyZWFrfXRoaXMuc3RhY2sucG9wKCk7cj10aGlzLnN0YWNrLnBvcCgpO2NvbnN0IGU9dGhpcy5zdGFjay5wb3AoKTtzPXRoaXMuc3RhY2sucG9wKCk7dGhpcy5sc2I9czt0aGlzLndpZHRoPXI7dGhpcy5zdGFjay5wdXNoKHIscyxlKTtvPXRoaXMuZXhlY3V0ZUNvbW1hbmQoMyxhYSk7YnJlYWs7Y2FzZSAzMDg0OmlmKHRoaXMuc3RhY2subGVuZ3RoPDIpe289ITA7YnJlYWt9Y29uc3QgZz10aGlzLnN0YWNrLnBvcCgpLGM9dGhpcy5zdGFjay5wb3AoKTt0aGlzLnN0YWNrLnB1c2goYy9nKTticmVhaztjYXNlIDMwODg6aWYodGhpcy5zdGFjay5sZW5ndGg8Mil7bz0hMDticmVha31uPXRoaXMuc3RhY2sucG9wKCk7Y29uc3QgbD10aGlzLnN0YWNrLnBvcCgpO2lmKDA9PT1uJiYzPT09bCl7Y29uc3QgZT10aGlzLnN0YWNrLnNwbGljZSgtMTcsMTcpO3RoaXMuc3RhY2sucHVzaChlWzJdK2VbMF0sZVszXStlWzFdLGVbNF0sZVs1XSxlWzZdLGVbN10sZVs4XSxlWzldLGVbMTBdLGVbMTFdLGVbMTJdLGVbMTNdLGVbMTRdKTtvPXRoaXMuZXhlY3V0ZUNvbW1hbmQoMTMsdGEsITApO3RoaXMuZmxleGluZz0hMTt0aGlzLnN0YWNrLnB1c2goZVsxNV0sZVsxNl0pfWVsc2UgMT09PW4mJjA9PT1sJiYodGhpcy5mbGV4aW5nPSEwKTticmVhaztjYXNlIDMwODk6YnJlYWs7ZGVmYXVsdDp3YXJuKCdVbmtub3duIHR5cGUgMSBjaGFyc3RyaW5nIGNvbW1hbmQgb2YgIicrYSsnIicpfWlmKG8pYnJlYWt9ZWxzZXthPD0yNDY/YS09MTM5OmE9YTw9MjUwPzI1NiooYS0yNDcpK2VbKytnXSsxMDg6YTw9MjU0Py0yNTYqKGEtMjUxKS1lWysrZ10tMTA4OigyNTUmZVsrK2ddKTw8MjR8KDI1NSZlWysrZ10pPDwxNnwoMjU1JmVbKytnXSk8PDh8MjU1JmVbKytnXTt0aGlzLnN0YWNrLnB1c2goYSl9fXJldHVybiBvfWV4ZWN1dGVDb21tYW5kKGUsdCxpKXtjb25zdCBhPXRoaXMuc3RhY2subGVuZ3RoO2lmKGU+YSlyZXR1cm4hMDtjb25zdCByPWEtZTtmb3IobGV0IGU9cjtlPGE7ZSsrKXtsZXQgdD10aGlzLnN0YWNrW2VdO2lmKE51bWJlci5pc0ludGVnZXIodCkpdGhpcy5vdXRwdXQucHVzaCgyOCx0Pj44JjI1NSwyNTUmdCk7ZWxzZXt0PTY1NTM2KnR8MDt0aGlzLm91dHB1dC5wdXNoKDI1NSx0Pj4yNCYyNTUsdD4+MTYmMjU1LHQ+PjgmMjU1LDI1NSZ0KX19dGhpcy5vdXRwdXQucHVzaCguLi50KTtpP3RoaXMuc3RhY2suc3BsaWNlKHIsZSk6dGhpcy5zdGFjay5sZW5ndGg9MDtyZXR1cm4hMX19ZnVuY3Rpb24gaXNIZXhEaWdpdChlKXtyZXR1cm4gZT49NDgmJmU8PTU3fHxlPj02NSYmZTw9NzB8fGU+PTk3JiZlPD0xMDJ9ZnVuY3Rpb24gZGVjcnlwdChlLHQsaSl7aWYoaT49ZS5sZW5ndGgpcmV0dXJuIG5ldyBVaW50OEFycmF5KDApO2xldCBhLHIscz0wfHQ7Zm9yKGE9MDthPGk7YSsrKXM9NTI4NDUqKGVbYV0rcykrMjI3MTkmNjU1MzU7Y29uc3Qgbj1lLmxlbmd0aC1pLG89bmV3IFVpbnQ4QXJyYXkobik7Zm9yKGE9aSxyPTA7cjxuO2ErKyxyKyspe2NvbnN0IHQ9ZVthXTtvW3JdPXRecz4+ODtzPTUyODQ1Kih0K3MpKzIyNzE5JjY1NTM1fXJldHVybiBvfWZ1bmN0aW9uIGlzU3BlY2lhbChlKXtyZXR1cm4gNDc9PT1lfHw5MT09PWV8fDkzPT09ZXx8MTIzPT09ZXx8MTI1PT09ZXx8NDA9PT1lfHw0MT09PWV9Y2xhc3MgVHlwZTFQYXJzZXJ7Y29uc3RydWN0b3IoZSx0LGkpe2lmKHQpe2NvbnN0IHQ9ZS5nZXRCeXRlcygpLGk9ISgoaXNIZXhEaWdpdCh0WzBdKXx8aXNXaGl0ZVNwYWNlKHRbMF0pKSYmaXNIZXhEaWdpdCh0WzFdKSYmaXNIZXhEaWdpdCh0WzJdKSYmaXNIZXhEaWdpdCh0WzNdKSYmaXNIZXhEaWdpdCh0WzRdKSYmaXNIZXhEaWdpdCh0WzVdKSYmaXNIZXhEaWdpdCh0WzZdKSYmaXNIZXhEaWdpdCh0WzddKSk7ZT1uZXcgU3RyZWFtKGk/ZGVjcnlwdCh0LDU1NjY1LDQpOmZ1bmN0aW9uIGRlY3J5cHRBc2NpaShlLHQsaSl7bGV0IGE9MHx0O2NvbnN0IHI9ZS5sZW5ndGgscz1uZXcgVWludDhBcnJheShyPj4+MSk7bGV0IG4sbztmb3Iobj0wLG89MDtuPHI7bisrKXtjb25zdCB0PWVbbl07aWYoIWlzSGV4RGlnaXQodCkpY29udGludWU7bisrO2xldCBpO2Zvcig7bjxyJiYhaXNIZXhEaWdpdChpPWVbbl0pOyluKys7aWYobjxyKXtjb25zdCBlPXBhcnNlSW50KFN0cmluZy5mcm9tQ2hhckNvZGUodCxpKSwxNik7c1tvKytdPWVeYT4+ODthPTUyODQ1KihlK2EpKzIyNzE5JjY1NTM1fX1yZXR1cm4gcy5zbGljZShpLG8pfSh0LDU1NjY1LDQpKX10aGlzLnNlYWNBbmFseXNpc0VuYWJsZWQ9ISFpO3RoaXMuc3RyZWFtPWU7dGhpcy5uZXh0Q2hhcigpfXJlYWROdW1iZXJBcnJheSgpe3RoaXMuZ2V0VG9rZW4oKTtjb25zdCBlPVtdO2Zvcig7Oyl7Y29uc3QgdD10aGlzLmdldFRva2VuKCk7aWYobnVsbD09PXR8fCJdIj09PXR8fCJ9Ij09PXQpYnJlYWs7ZS5wdXNoKHBhcnNlRmxvYXQodHx8MCkpfXJldHVybiBlfXJlYWROdW1iZXIoKXtjb25zdCBlPXRoaXMuZ2V0VG9rZW4oKTtyZXR1cm4gcGFyc2VGbG9hdChlfHwwKX1yZWFkSW50KCl7Y29uc3QgZT10aGlzLmdldFRva2VuKCk7cmV0dXJuIDB8cGFyc2VJbnQoZXx8MCwxMCl9cmVhZEJvb2xlYW4oKXtyZXR1cm4idHJ1ZSI9PT10aGlzLmdldFRva2VuKCk/MTowfW5leHRDaGFyKCl7cmV0dXJuIHRoaXMuY3VycmVudENoYXI9dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpfXByZXZDaGFyKCl7dGhpcy5zdHJlYW0uc2tpcCgtMik7cmV0dXJuIHRoaXMuY3VycmVudENoYXI9dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpfWdldFRva2VuKCl7bGV0IGU9ITEsdD10aGlzLmN1cnJlbnRDaGFyO2Zvcig7Oyl7aWYoLTE9PT10KXJldHVybiBudWxsO2lmKGUpMTAhPT10JiYxMyE9PXR8fChlPSExKTtlbHNlIGlmKDM3PT09dCllPSEwO2Vsc2UgaWYoIWlzV2hpdGVTcGFjZSh0KSlicmVhazt0PXRoaXMubmV4dENoYXIoKX1pZihpc1NwZWNpYWwodCkpe3RoaXMubmV4dENoYXIoKTtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSh0KX1sZXQgaT0iIjtkb3tpKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHQpO3Q9dGhpcy5uZXh0Q2hhcigpfXdoaWxlKHQ+PTAmJiFpc1doaXRlU3BhY2UodCkmJiFpc1NwZWNpYWwodCkpO3JldHVybiBpfXJlYWRDaGFyU3RyaW5ncyhlLHQpe3JldHVybi0xPT09dD9lOmRlY3J5cHQoZSw0MzMwLHQpfWV4dHJhY3RGb250UHJvZ3JhbShlKXtjb25zdCB0PXRoaXMuc3RyZWFtLGk9W10sYT1bXSxyPU9iamVjdC5jcmVhdGUobnVsbCk7ci5sZW5JVj00O2NvbnN0IHM9e3N1YnJzOltdLGNoYXJzdHJpbmdzOltdLHByb3BlcnRpZXM6e3ByaXZhdGVEYXRhOnJ9fTtsZXQgbixvLGcsYztmb3IoO251bGwhPT0obj10aGlzLmdldFRva2VuKCkpOylpZigiLyI9PT1uKXtuPXRoaXMuZ2V0VG9rZW4oKTtzd2l0Y2gobil7Y2FzZSJDaGFyU3RyaW5ncyI6dGhpcy5nZXRUb2tlbigpO3RoaXMuZ2V0VG9rZW4oKTt0aGlzLmdldFRva2VuKCk7dGhpcy5nZXRUb2tlbigpO2Zvcig7Oyl7bj10aGlzLmdldFRva2VuKCk7aWYobnVsbD09PW58fCJlbmQiPT09bilicmVhaztpZigiLyIhPT1uKWNvbnRpbnVlO2NvbnN0IGU9dGhpcy5nZXRUb2tlbigpO289dGhpcy5yZWFkSW50KCk7dGhpcy5nZXRUb2tlbigpO2c9bz4wP3QuZ2V0Qnl0ZXMobyk6bmV3IFVpbnQ4QXJyYXkoMCk7Yz1zLnByb3BlcnRpZXMucHJpdmF0ZURhdGEubGVuSVY7Y29uc3QgaT10aGlzLnJlYWRDaGFyU3RyaW5ncyhnLGMpO3RoaXMubmV4dENoYXIoKTtuPXRoaXMuZ2V0VG9rZW4oKTsibm9hY2Nlc3MiPT09bj90aGlzLmdldFRva2VuKCk6Ii8iPT09biYmdGhpcy5wcmV2Q2hhcigpO2EucHVzaCh7Z2x5cGg6ZSxlbmNvZGVkOml9KX1icmVhaztjYXNlIlN1YnJzIjp0aGlzLnJlYWRJbnQoKTt0aGlzLmdldFRva2VuKCk7Zm9yKDsiZHVwIj09PXRoaXMuZ2V0VG9rZW4oKTspe2NvbnN0IGU9dGhpcy5yZWFkSW50KCk7bz10aGlzLnJlYWRJbnQoKTt0aGlzLmdldFRva2VuKCk7Zz1vPjA/dC5nZXRCeXRlcyhvKTpuZXcgVWludDhBcnJheSgwKTtjPXMucHJvcGVydGllcy5wcml2YXRlRGF0YS5sZW5JVjtjb25zdCBhPXRoaXMucmVhZENoYXJTdHJpbmdzKGcsYyk7dGhpcy5uZXh0Q2hhcigpO249dGhpcy5nZXRUb2tlbigpOyJub2FjY2VzcyI9PT1uJiZ0aGlzLmdldFRva2VuKCk7aVtlXT1hfWJyZWFrO2Nhc2UiQmx1ZVZhbHVlcyI6Y2FzZSJPdGhlckJsdWVzIjpjYXNlIkZhbWlseUJsdWVzIjpjYXNlIkZhbWlseU90aGVyQmx1ZXMiOmNvbnN0IGU9dGhpcy5yZWFkTnVtYmVyQXJyYXkoKTtlLmxlbmd0aD4wJiZlLmxlbmd0aCwwO2JyZWFrO2Nhc2UiU3RlbVNuYXBIIjpjYXNlIlN0ZW1TbmFwViI6cy5wcm9wZXJ0aWVzLnByaXZhdGVEYXRhW25dPXRoaXMucmVhZE51bWJlckFycmF5KCk7YnJlYWs7Y2FzZSJTdGRIVyI6Y2FzZSJTdGRWVyI6cy5wcm9wZXJ0aWVzLnByaXZhdGVEYXRhW25dPXRoaXMucmVhZE51bWJlckFycmF5KClbMF07YnJlYWs7Y2FzZSJCbHVlU2hpZnQiOmNhc2UibGVuSVYiOmNhc2UiQmx1ZUZ1enoiOmNhc2UiQmx1ZVNjYWxlIjpjYXNlIkxhbmd1YWdlR3JvdXAiOnMucHJvcGVydGllcy5wcml2YXRlRGF0YVtuXT10aGlzLnJlYWROdW1iZXIoKTticmVhaztjYXNlIkV4cGFuc2lvbkZhY3RvciI6cy5wcm9wZXJ0aWVzLnByaXZhdGVEYXRhW25dPXRoaXMucmVhZE51bWJlcigpfHwuMDY7YnJlYWs7Y2FzZSJGb3JjZUJvbGQiOnMucHJvcGVydGllcy5wcml2YXRlRGF0YVtuXT10aGlzLnJlYWRCb29sZWFuKCl9fWZvcihjb25zdHtlbmNvZGVkOnQsZ2x5cGg6cn1vZiBhKXtjb25zdCBhPW5ldyBUeXBlMUNoYXJTdHJpbmcsbj1hLmNvbnZlcnQodCxpLHRoaXMuc2VhY0FuYWx5c2lzRW5hYmxlZCk7bGV0IG89YS5vdXRwdXQ7biYmKG89WzE0XSk7Y29uc3QgZz17Z2x5cGhOYW1lOnIsY2hhcnN0cmluZzpvLHdpZHRoOmEud2lkdGgsbHNiOmEubHNiLHNlYWM6YS5zZWFjfTsiLm5vdGRlZiI9PT1yP3MuY2hhcnN0cmluZ3MudW5zaGlmdChnKTpzLmNoYXJzdHJpbmdzLnB1c2goZyk7aWYoZS5idWlsdEluRW5jb2Rpbmcpe2NvbnN0IHQ9ZS5idWlsdEluRW5jb2RpbmcuaW5kZXhPZihyKTt0Pi0xJiZ2b2lkIDA9PT1lLndpZHRoc1t0XSYmdD49ZS5maXJzdENoYXImJnQ8PWUubGFzdENoYXImJihlLndpZHRoc1t0XT1hLndpZHRoKX19cmV0dXJuIHN9ZXh0cmFjdEZvbnRIZWFkZXIoZSl7bGV0IHQ7Zm9yKDtudWxsIT09KHQ9dGhpcy5nZXRUb2tlbigpKTspaWYoIi8iPT09dCl7dD10aGlzLmdldFRva2VuKCk7c3dpdGNoKHQpe2Nhc2UiRm9udE1hdHJpeCI6Y29uc3QgaT10aGlzLnJlYWROdW1iZXJBcnJheSgpO2UuZm9udE1hdHJpeD1pO2JyZWFrO2Nhc2UiRW5jb2RpbmciOmNvbnN0IGE9dGhpcy5nZXRUb2tlbigpO2xldCByO2lmKC9eXGQrJC8udGVzdChhKSl7cj1bXTtjb25zdCBlPTB8cGFyc2VJbnQoYSwxMCk7dGhpcy5nZXRUb2tlbigpO2ZvcihsZXQgaT0wO2k8ZTtpKyspe3Q9dGhpcy5nZXRUb2tlbigpO2Zvcig7ImR1cCIhPT10JiYiZGVmIiE9PXQ7KXt0PXRoaXMuZ2V0VG9rZW4oKTtpZihudWxsPT09dClyZXR1cm59aWYoImRlZiI9PT10KWJyZWFrO2NvbnN0IGU9dGhpcy5yZWFkSW50KCk7dGhpcy5nZXRUb2tlbigpO2NvbnN0IGk9dGhpcy5nZXRUb2tlbigpO3JbZV09aTt0aGlzLmdldFRva2VuKCl9fWVsc2Ugcj1nZXRFbmNvZGluZyhhKTtlLmJ1aWx0SW5FbmNvZGluZz1yO2JyZWFrO2Nhc2UiRm9udEJCb3giOmNvbnN0IHM9dGhpcy5yZWFkTnVtYmVyQXJyYXkoKTtlLmFzY2VudD1NYXRoLm1heChzWzNdLHNbMV0pO2UuZGVzY2VudD1NYXRoLm1pbihzWzFdLHNbM10pO2UuYXNjZW50U2NhbGVkPSEwfX19fWZ1bmN0aW9uIGZpbmRCbG9jayhlLHQsaSl7Y29uc3QgYT1lLmxlbmd0aCxyPXQubGVuZ3RoLHM9YS1yO2xldCBuPWksbz0hMTtmb3IoO248czspe2xldCBpPTA7Zm9yKDtpPHImJmVbbitpXT09PXRbaV07KWkrKztpZihpPj1yKXtuKz1pO2Zvcig7bjxhJiZpc1doaXRlU3BhY2UoZVtuXSk7KW4rKztvPSEwO2JyZWFrfW4rK31yZXR1cm57Zm91bmQ6byxsZW5ndGg6bn19Y2xhc3MgVHlwZTFGb250e2NvbnN0cnVjdG9yKGUsdCxpKXtsZXQgYT1pLmxlbmd0aDEscj1pLmxlbmd0aDIscz10LnBlZWtCeXRlcyg2KTtjb25zdCBuPTEyOD09PXNbMF0mJjE9PT1zWzFdO2lmKG4pe3Quc2tpcCg2KTthPXNbNV08PDI0fHNbNF08PDE2fHNbM108PDh8c1syXX1jb25zdCBvPWZ1bmN0aW9uIGdldEhlYWRlckJsb2NrKGUsdCl7Y29uc3QgaT1bMTAxLDEwMSwxMjAsMTAxLDk5XSxhPWUucG9zO2xldCByLHMsbixvO3RyeXtyPWUuZ2V0Qnl0ZXModCk7cz1yLmxlbmd0aH1jYXRjaHt9aWYocz09PXQpe249ZmluZEJsb2NrKHIsaSx0LTIqaS5sZW5ndGgpO2lmKG4uZm91bmQmJm4ubGVuZ3RoPT09dClyZXR1cm57c3RyZWFtOm5ldyBTdHJlYW0ociksbGVuZ3RoOnR9fXdhcm4oJ0ludmFsaWQgIkxlbmd0aDEiIHByb3BlcnR5IGluIFR5cGUxIGZvbnQgLS0gdHJ5aW5nIHRvIHJlY292ZXIuJyk7ZS5wb3M9YTtmb3IoOzspe249ZmluZEJsb2NrKGUucGVla0J5dGVzKDIwNDgpLGksMCk7aWYoMD09PW4ubGVuZ3RoKWJyZWFrO2UucG9zKz1uLmxlbmd0aDtpZihuLmZvdW5kKXtvPWUucG9zLWE7YnJlYWt9fWUucG9zPWE7aWYobylyZXR1cm57c3RyZWFtOm5ldyBTdHJlYW0oZS5nZXRCeXRlcyhvKSksbGVuZ3RoOm99O3dhcm4oJ1VuYWJsZSB0byByZWNvdmVyICJMZW5ndGgxIiBwcm9wZXJ0eSBpbiBUeXBlMSBmb250IC0tIHVzaW5nIGFzIGlzLicpO3JldHVybntzdHJlYW06bmV3IFN0cmVhbShlLmdldEJ5dGVzKHQpKSxsZW5ndGg6dH19KHQsYSk7bmV3IFR5cGUxUGFyc2VyKG8uc3RyZWFtLCExLEdpKS5leHRyYWN0Rm9udEhlYWRlcihpKTtpZihuKXtzPXQuZ2V0Qnl0ZXMoNik7cj1zWzVdPDwyNHxzWzRdPDwxNnxzWzNdPDw4fHNbMl19Y29uc3QgZz1mdW5jdGlvbiBnZXRFZXhlY0Jsb2NrKGUsdCl7Y29uc3QgaT1lLmdldEJ5dGVzKCk7aWYoMD09PWkubGVuZ3RoKXRocm93IG5ldyBGb3JtYXRFcnJvcigiZ2V0RWV4ZWNCbG9jayAtIG5vIGZvbnQgcHJvZ3JhbSBmb3VuZC4iKTtyZXR1cm57c3RyZWFtOm5ldyBTdHJlYW0oaSksbGVuZ3RoOmkubGVuZ3RofX0odCksYz1uZXcgVHlwZTFQYXJzZXIoZy5zdHJlYW0sITAsR2kpLmV4dHJhY3RGb250UHJvZ3JhbShpKTtmb3IoY29uc3QgZSBpbiBjLnByb3BlcnRpZXMpaVtlXT1jLnByb3BlcnRpZXNbZV07Y29uc3QgbD1jLmNoYXJzdHJpbmdzLGg9dGhpcy5nZXRUeXBlMkNoYXJzdHJpbmdzKGwpLEM9dGhpcy5nZXRUeXBlMlN1YnJzKGMuc3VicnMpO3RoaXMuY2hhcnN0cmluZ3M9bDt0aGlzLmRhdGE9dGhpcy53cmFwKGUsaCx0aGlzLmNoYXJzdHJpbmdzLEMsaSk7dGhpcy5zZWFjcz10aGlzLmdldFNlYWNzKGMuY2hhcnN0cmluZ3MpfWdldCBudW1HbHlwaHMoKXtyZXR1cm4gdGhpcy5jaGFyc3RyaW5ncy5sZW5ndGgrMX1nZXRDaGFyc2V0KCl7Y29uc3QgZT1bIi5ub3RkZWYiXTtmb3IoY29uc3R7Z2x5cGhOYW1lOnR9b2YgdGhpcy5jaGFyc3RyaW5ncyllLnB1c2godCk7cmV0dXJuIGV9Z2V0R2x5cGhNYXBwaW5nKGUpe2NvbnN0IHQ9dGhpcy5jaGFyc3RyaW5ncztpZihlLmNvbXBvc2l0ZSl7Y29uc3QgaT1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihsZXQgYT0wLHI9dC5sZW5ndGg7YTxyO2ErKyl7aVtlLmNNYXAuY2hhckNvZGVPZihhKV09YSsxfXJldHVybiBpfWNvbnN0IGk9WyIubm90ZGVmIl07bGV0IGEscjtmb3Iocj0wO3I8dC5sZW5ndGg7cisrKWkucHVzaCh0W3JdLmdseXBoTmFtZSk7Y29uc3Qgcz1lLmJ1aWx0SW5FbmNvZGluZztpZihzKXthPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGNvbnN0IGUgaW4gcyl7cj1pLmluZGV4T2Yoc1tlXSk7cj49MCYmKGFbZV09cil9fXJldHVybiB0eXBlMUZvbnRHbHlwaE1hcHBpbmcoZSxhLGkpfWhhc0dseXBoSWQoZSl7aWYoZTwwfHxlPj10aGlzLm51bUdseXBocylyZXR1cm4hMTtpZigwPT09ZSlyZXR1cm4hMDtyZXR1cm4gdGhpcy5jaGFyc3RyaW5nc1tlLTFdLmNoYXJzdHJpbmcubGVuZ3RoPjB9Z2V0U2VhY3MoZSl7Y29uc3QgdD1bXTtmb3IobGV0IGk9MCxhPWUubGVuZ3RoO2k8YTtpKyspe2NvbnN0IGE9ZVtpXTthLnNlYWMmJih0W2krMV09YS5zZWFjKX1yZXR1cm4gdH1nZXRUeXBlMkNoYXJzdHJpbmdzKGUpe2NvbnN0IHQ9W107Zm9yKGNvbnN0IGkgb2YgZSl0LnB1c2goaS5jaGFyc3RyaW5nKTtyZXR1cm4gdH1nZXRUeXBlMlN1YnJzKGUpe2xldCB0PTA7Y29uc3QgaT1lLmxlbmd0aDt0PWk8MTEzMz8xMDc6aTwzMzc2OT8xMTMxOjMyNzY4O2NvbnN0IGE9W107bGV0IHI7Zm9yKHI9MDtyPHQ7cisrKWEucHVzaChbMTFdKTtmb3Iocj0wO3I8aTtyKyspYS5wdXNoKGVbcl0pO3JldHVybiBhfXdyYXAoZSx0LGksYSxyKXtjb25zdCBzPW5ldyBDRkY7cy5oZWFkZXI9bmV3IENGRkhlYWRlcigxLDAsNCw0KTtzLm5hbWVzPVtlXTtjb25zdCBuPW5ldyBDRkZUb3BEaWN0O24uc2V0QnlOYW1lKCJ2ZXJzaW9uIiwzOTEpO24uc2V0QnlOYW1lKCJOb3RpY2UiLDM5Mik7bi5zZXRCeU5hbWUoIkZ1bGxOYW1lIiwzOTMpO24uc2V0QnlOYW1lKCJGYW1pbHlOYW1lIiwzOTQpO24uc2V0QnlOYW1lKCJXZWlnaHQiLDM5NSk7bi5zZXRCeU5hbWUoIkVuY29kaW5nIixudWxsKTtuLnNldEJ5TmFtZSgiRm9udE1hdHJpeCIsci5mb250TWF0cml4KTtuLnNldEJ5TmFtZSgiRm9udEJCb3giLHIuYmJveCk7bi5zZXRCeU5hbWUoImNoYXJzZXQiLG51bGwpO24uc2V0QnlOYW1lKCJDaGFyU3RyaW5ncyIsbnVsbCk7bi5zZXRCeU5hbWUoIlByaXZhdGUiLG51bGwpO3MudG9wRGljdD1uO2NvbnN0IG89bmV3IENGRlN0cmluZ3M7by5hZGQoIlZlcnNpb24gMC4xMSIpO28uYWRkKCJTZWUgb3JpZ2luYWwgbm90aWNlIik7by5hZGQoZSk7by5hZGQoZSk7by5hZGQoIk1lZGl1bSIpO3Muc3RyaW5ncz1vO3MuZ2xvYmFsU3VickluZGV4PW5ldyBDRkZJbmRleDtjb25zdCBnPXQubGVuZ3RoLGM9WyIubm90ZGVmIl07bGV0IGwsaDtmb3IobD0wO2w8ZztsKyspe2NvbnN0IGU9aVtsXS5nbHlwaE5hbWU7LTE9PT1kaS5pbmRleE9mKGUpJiZvLmFkZChlKTtjLnB1c2goZSl9cy5jaGFyc2V0PW5ldyBDRkZDaGFyc2V0KCExLDAsYyk7Y29uc3QgQz1uZXcgQ0ZGSW5kZXg7Qy5hZGQoWzEzOSwxNF0pO2ZvcihsPTA7bDxnO2wrKylDLmFkZCh0W2xdKTtzLmNoYXJTdHJpbmdzPUM7Y29uc3QgUT1uZXcgQ0ZGUHJpdmF0ZURpY3Q7US5zZXRCeU5hbWUoIlN1YnJzIixudWxsKTtjb25zdCBFPVsiQmx1ZVZhbHVlcyIsIk90aGVyQmx1ZXMiLCJGYW1pbHlCbHVlcyIsIkZhbWlseU90aGVyQmx1ZXMiLCJTdGVtU25hcEgiLCJTdGVtU25hcFYiLCJCbHVlU2hpZnQiLCJCbHVlRnV6eiIsIkJsdWVTY2FsZSIsIkxhbmd1YWdlR3JvdXAiLCJFeHBhbnNpb25GYWN0b3IiLCJGb3JjZUJvbGQiLCJTdGRIVyIsIlN0ZFZXIl07Zm9yKGw9MCxoPUUubGVuZ3RoO2w8aDtsKyspe2NvbnN0IGU9RVtsXTtpZighKGUgaW4gci5wcml2YXRlRGF0YSkpY29udGludWU7Y29uc3QgdD1yLnByaXZhdGVEYXRhW2VdO2lmKEFycmF5LmlzQXJyYXkodCkpZm9yKGxldCBlPXQubGVuZ3RoLTE7ZT4wO2UtLSl0W2VdLT10W2UtMV07US5zZXRCeU5hbWUoZSx0KX1zLnRvcERpY3QucHJpdmF0ZURpY3Q9UTtjb25zdCB1PW5ldyBDRkZJbmRleDtmb3IobD0wLGg9YS5sZW5ndGg7bDxoO2wrKyl1LmFkZChhW2xdKTtRLnN1YnJzSW5kZXg9dTtyZXR1cm4gbmV3IENGRkNvbXBpbGVyKHMpLmNvbXBpbGUoKX19Y29uc3Qgb2E9W1s1NzM0NCw2Mzc0M10sWzEwNDg1NzYsMTExNDEwOV1dLGdhPTFlMyxJYT1bImFzY2VudCIsImJib3giLCJibGFjayIsImJvbGQiLCJjaGFyUHJvY09wZXJhdG9yTGlzdCIsImNvbXBvc2l0ZSIsImNzc0ZvbnRJbmZvIiwiZGF0YSIsImRlZmF1bHRWTWV0cmljcyIsImRlZmF1bHRXaWR0aCIsImRlc2NlbnQiLCJmYWxsYmFja05hbWUiLCJmb250TWF0cml4IiwiaXNJbnZhbGlkUERGanNGb250IiwiaXNUeXBlM0ZvbnQiLCJpdGFsaWMiLCJsb2FkZWROYW1lIiwibWltZXR5cGUiLCJtaXNzaW5nRmlsZSIsIm5hbWUiLCJyZW1lYXN1cmUiLCJzdWJ0eXBlIiwic3lzdGVtRm9udEluZm8iLCJ0eXBlIiwidmVydGljYWwiXSxjYT1bImNNYXAiLCJkZWZhdWx0RW5jb2RpbmciLCJkaWZmZXJlbmNlcyIsImlzTW9ub3NwYWNlIiwiaXNTZXJpZkZvbnQiLCJpc1N5bWJvbGljRm9udCIsInNlYWNNYXAiLCJ0b0ZvbnRDaGFyIiwidG9Vbmljb2RlIiwidm1ldHJpY3MiLCJ3aWR0aHMiXTtmdW5jdGlvbiBhZGp1c3RXaWR0aHMoZSl7aWYoIWUuZm9udE1hdHJpeClyZXR1cm47aWYoZS5mb250TWF0cml4WzBdPT09clswXSlyZXR1cm47Y29uc3QgdD0uMDAxL2UuZm9udE1hdHJpeFswXSxpPWUud2lkdGhzO2Zvcihjb25zdCBlIGluIGkpaVtlXSo9dDtlLmRlZmF1bHRXaWR0aCo9dH1mdW5jdGlvbiBhbWVuZEZhbGxiYWNrVG9Vbmljb2RlKGUpe2lmKCFlLmZhbGxiYWNrVG9Vbmljb2RlKXJldHVybjtpZihlLnRvVW5pY29kZSBpbnN0YW5jZW9mIElkZW50aXR5VG9Vbmljb2RlTWFwKXJldHVybjtjb25zdCB0PVtdO2Zvcihjb25zdCBpIGluIGUuZmFsbGJhY2tUb1VuaWNvZGUpZS50b1VuaWNvZGUuaGFzKGkpfHwodFtpXT1lLmZhbGxiYWNrVG9Vbmljb2RlW2ldKTt0Lmxlbmd0aD4wJiZlLnRvVW5pY29kZS5hbWVuZCh0KX1jbGFzcyBmb250c19HbHlwaHtjb25zdHJ1Y3RvcihlLHQsaSxhLHIscyxuLG8sZyl7dGhpcy5vcmlnaW5hbENoYXJDb2RlPWU7dGhpcy5mb250Q2hhcj10O3RoaXMudW5pY29kZT1pO3RoaXMuYWNjZW50PWE7dGhpcy53aWR0aD1yO3RoaXMudm1ldHJpYz1zO3RoaXMub3BlcmF0b3JMaXN0SWQ9bjt0aGlzLmlzU3BhY2U9bzt0aGlzLmlzSW5Gb250PWd9Z2V0IGNhdGVnb3J5KCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJjYXRlZ29yeSIsZnVuY3Rpb24gZ2V0Q2hhclVuaWNvZGVDYXRlZ29yeShlKXtjb25zdCB0PU5pLmdldChlKTtpZih0KXJldHVybiB0O2NvbnN0IGk9ZS5tYXRjaChSaSksYT17aXNXaGl0ZXNwYWNlOiEhaT8uWzFdLGlzWmVyb1dpZHRoRGlhY3JpdGljOiEhaT8uWzJdLGlzSW52aXNpYmxlRm9ybWF0TWFyazohIWk/LlszXX07Tmkuc2V0KGUsYSk7cmV0dXJuIGF9KHRoaXMudW5pY29kZSksITApfX1mdW5jdGlvbiBpbnQxNihlLHQpe3JldHVybihlPDw4KSt0fWZ1bmN0aW9uIHdyaXRlU2lnbmVkSW50MTYoZSx0LGkpe2VbdCsxXT1pO2VbdF09aT4+Pjh9ZnVuY3Rpb24gc2lnbmVkSW50MTYoZSx0KXtjb25zdCBpPShlPDw4KSt0O3JldHVybiAzMjc2OCZpP2ktNjU1MzY6aX1mdW5jdGlvbiBzdHJpbmcxNihlKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShlPj44JjI1NSwyNTUmZSl9ZnVuY3Rpb24gc2FmZVN0cmluZzE2KGUpe2U+MzI3Njc/ZT0zMjc2NzplPC0zMjc2OCYmKGU9LTMyNzY4KTtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShlPj44JjI1NSwyNTUmZSl9ZnVuY3Rpb24gaXNUcnVlVHlwZUNvbGxlY3Rpb25GaWxlKGUpe3JldHVybiJ0dGNmIj09PWJ5dGVzVG9TdHJpbmcoZS5wZWVrQnl0ZXMoNCkpfWZ1bmN0aW9uIGdldEZvbnRGaWxlVHlwZShlLHt0eXBlOnQsc3VidHlwZTppLGNvbXBvc2l0ZTphfSl7bGV0IHIscztpZihmdW5jdGlvbiBpc1RydWVUeXBlRmlsZShlKXtjb25zdCB0PWUucGVla0J5dGVzKDQpO3JldHVybiA2NTUzNj09PXJlYWRVaW50MzIodCwwKXx8InRydWUiPT09Ynl0ZXNUb1N0cmluZyh0KX0oZSl8fGlzVHJ1ZVR5cGVDb2xsZWN0aW9uRmlsZShlKSlyPWE/IkNJREZvbnRUeXBlMiI6IlRydWVUeXBlIjtlbHNlIGlmKGZ1bmN0aW9uIGlzT3BlblR5cGVGaWxlKGUpe3JldHVybiJPVFRPIj09PWJ5dGVzVG9TdHJpbmcoZS5wZWVrQnl0ZXMoNCkpfShlKSlyPWE/IkNJREZvbnRUeXBlMiI6Ik9wZW5UeXBlIjtlbHNlIGlmKGZ1bmN0aW9uIGlzVHlwZTFGaWxlKGUpe2NvbnN0IHQ9ZS5wZWVrQnl0ZXMoMik7cmV0dXJuIDM3PT09dFswXSYmMzM9PT10WzFdfHwxMjg9PT10WzBdJiYxPT09dFsxXX0oZSkpcj1hPyJDSURGb250VHlwZTAiOiJNTVR5cGUxIj09PXQ/Ik1NVHlwZTEiOiJUeXBlMSI7ZWxzZSBpZihmdW5jdGlvbiBpc0NGRkZpbGUoZSl7Y29uc3QgdD1lLnBlZWtCeXRlcyg0KTtyZXR1cm4gdFswXT49MSYmdFszXT49MSYmdFszXTw9NH0oZSkpaWYoYSl7cj0iQ0lERm9udFR5cGUwIjtzPSJDSURGb250VHlwZTBDIn1lbHNle3I9Ik1NVHlwZTEiPT09dD8iTU1UeXBlMSI6IlR5cGUxIjtzPSJUeXBlMUMifWVsc2V7d2FybigiZ2V0Rm9udEZpbGVUeXBlOiBVbmFibGUgdG8gZGV0ZWN0IGNvcnJlY3QgZm9udCBmaWxlIFR5cGUvU3VidHlwZS4iKTtyPXQ7cz1pfXJldHVybltyLHNdfWZ1bmN0aW9uIGFwcGx5U3RhbmRhcmRGb250R2x5cGhNYXAoZSx0KXtmb3IoY29uc3QgaSBpbiB0KWVbK2ldPXRbaV19ZnVuY3Rpb24gYnVpbGRUb0ZvbnRDaGFyKGUsdCxpKXtjb25zdCBhPVtdO2xldCByO2ZvcihsZXQgaT0wLHM9ZS5sZW5ndGg7aTxzO2krKyl7cj1nZXRVbmljb2RlRm9yR2x5cGgoZVtpXSx0KTstMSE9PXImJihhW2ldPXIpfWZvcihjb25zdCBlIGluIGkpe3I9Z2V0VW5pY29kZUZvckdseXBoKGlbZV0sdCk7LTEhPT1yJiYoYVsrZV09cil9cmV0dXJuIGF9ZnVuY3Rpb24gaXNNYWNOYW1lUmVjb3JkKGUpe3JldHVybiAxPT09ZS5wbGF0Zm9ybSYmMD09PWUuZW5jb2RpbmcmJjA9PT1lLmxhbmd1YWdlfWZ1bmN0aW9uIGlzV2luTmFtZVJlY29yZChlKXtyZXR1cm4gMz09PWUucGxhdGZvcm0mJjE9PT1lLmVuY29kaW5nJiYxMDMzPT09ZS5sYW5ndWFnZX1mdW5jdGlvbiBjb252ZXJ0Q2lkU3RyaW5nKGUsdCxpPSExKXtzd2l0Y2godC5sZW5ndGgpe2Nhc2UgMTpyZXR1cm4gdC5jaGFyQ29kZUF0KDApO2Nhc2UgMjpyZXR1cm4gdC5jaGFyQ29kZUF0KDApPDw4fHQuY2hhckNvZGVBdCgxKX1jb25zdCBhPWBVbnN1cHBvcnRlZCBDSUQgc3RyaW5nIChjaGFyQ29kZSAke2V9KTogIiR7dH0iLmA7aWYoaSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYSk7d2FybihhKTtyZXR1cm4gdH1mdW5jdGlvbiBhZGp1c3RNYXBwaW5nKGUsdCxpLGEpe2NvbnN0IHI9T2JqZWN0LmNyZWF0ZShudWxsKSxzPW5ldyBNYXAsbj1bXSxvPW5ldyBTZXQ7bGV0IGc9MDtsZXQgYz1vYVtnXVswXSxsPW9hW2ddWzFdO2Zvcihjb25zdCBDIGluIGUpe2xldCBRPWVbQ107aWYoIXQoUSkpY29udGludWU7aWYoYz5sKXtnKys7aWYoZz49b2EubGVuZ3RoKXt3YXJuKCJSYW4gb3V0IG9mIHNwYWNlIGluIGZvbnQgcHJpdmF0ZSB1c2UgYXJlYS4iKTticmVha31jPW9hW2ddWzBdO2w9b2FbZ11bMV19Y29uc3QgRT1jKys7MD09PVEmJihRPWkpO2xldCB1PWEuZ2V0KEMpOyJzdHJpbmciPT10eXBlb2YgdSYmKHU9dS5jb2RlUG9pbnRBdCgwKSk7aWYodSYmIShoPXUsb2FbMF1bMF08PWgmJmg8PW9hWzBdWzFdfHxvYVsxXVswXTw9aCYmaDw9b2FbMV1bMV0pJiYhby5oYXMoUSkpe3Muc2V0KHUsUSk7by5hZGQoUSl9cltFXT1RO25bQ109RX12YXIgaDtyZXR1cm57dG9Gb250Q2hhcjpuLGNoYXJDb2RlVG9HbHlwaElkOnIsdG9Vbmljb2RlRXh0cmFNYXA6cyxuZXh0QXZhaWxhYmxlRm9udENoYXJDb2RlOmN9fWZ1bmN0aW9uIGNyZWF0ZUNtYXBUYWJsZShlLHQsaSl7Y29uc3QgYT1mdW5jdGlvbiBnZXRSYW5nZXMoZSx0LGkpe2NvbnN0IGE9W107Zm9yKGNvbnN0IHQgaW4gZSllW3RdPj1pfHxhLnB1c2goe2ZvbnRDaGFyQ29kZTowfHQsZ2x5cGhJZDplW3RdfSk7aWYodClmb3IoY29uc3RbZSxyXW9mIHQpcj49aXx8YS5wdXNoKHtmb250Q2hhckNvZGU6ZSxnbHlwaElkOnJ9KTswPT09YS5sZW5ndGgmJmEucHVzaCh7Zm9udENoYXJDb2RlOjAsZ2x5cGhJZDowfSk7YS5zb3J0KChmdW5jdGlvbiBmb250R2V0UmFuZ2VzU29ydChlLHQpe3JldHVybiBlLmZvbnRDaGFyQ29kZS10LmZvbnRDaGFyQ29kZX0pKTtjb25zdCByPVtdLHM9YS5sZW5ndGg7Zm9yKGxldCBlPTA7ZTxzOyl7Y29uc3QgdD1hW2VdLmZvbnRDaGFyQ29kZSxpPVthW2VdLmdseXBoSWRdOysrZTtsZXQgbj10O2Zvcig7ZTxzJiZuKzE9PT1hW2VdLmZvbnRDaGFyQ29kZTspe2kucHVzaChhW2VdLmdseXBoSWQpOysrbjsrK2U7aWYoNjU1MzU9PT1uKWJyZWFrfXIucHVzaChbdCxuLGldKX1yZXR1cm4gcn0oZSx0LGkpLHI9YS5hdCgtMSlbMV0+NjU1MzU/MjoxO2xldCBzLG4sbyxnLGM9IlwwXDAiK3N0cmluZzE2KHIpKyJcMANcMAEiK3N0cmluZzMyKDQrOCpyKTtmb3Iocz1hLmxlbmd0aC0xO3M+PTAmJiEoYVtzXVswXTw9NjU1MzUpOy0tcyk7Y29uc3QgbD1zKzE7YVtzXVswXTw2NTUzNSYmNjU1MzU9PT1hW3NdWzFdJiYoYVtzXVsxXT02NTUzNCk7Y29uc3QgaD1hW3NdWzFdPDY1NTM1PzE6MCxDPWwraCxRPU9wZW5UeXBlRmlsZUJ1aWxkZXIuZ2V0U2VhcmNoUGFyYW1zKEMsMik7bGV0IEUsdSxkLGYscD0iIixtPSIiLHk9IiIsdz0iIixiPSIiLEQ9MDtmb3Iocz0wLG49bDtzPG47cysrKXtFPWFbc107dT1FWzBdO2Q9RVsxXTtwKz1zdHJpbmcxNih1KTttKz1zdHJpbmcxNihkKTtmPUVbMl07bGV0IGU9ITA7Zm9yKG89MSxnPWYubGVuZ3RoO288ZzsrK28paWYoZltvXSE9PWZbby0xXSsxKXtlPSExO2JyZWFrfWlmKGUpe3krPXN0cmluZzE2KGZbMF0tdSY2NTUzNSk7dys9c3RyaW5nMTYoMCl9ZWxzZXtjb25zdCBlPTIqKEMtcykrMipEO0QrPWQtdSsxO3krPXN0cmluZzE2KDApO3crPXN0cmluZzE2KGUpO2ZvcihvPTAsZz1mLmxlbmd0aDtvPGc7KytvKWIrPXN0cmluZzE2KGZbb10pfX1pZihoPjApe20rPSLDv8O/IjtwKz0iw7/DvyI7eSs9IlwwASI7dys9IlwwXDAifWNvbnN0IFM9IlwwXDAiK3N0cmluZzE2KDIqQykrc3RyaW5nMTYoUS5yYW5nZSkrc3RyaW5nMTYoUS5lbnRyeSkrc3RyaW5nMTYoUS5yYW5nZVNoaWZ0KSttKyJcMFwwIitwK3krdytiO2xldCBrPSIiLFI9IiI7aWYocj4xKXtjKz0iXDADXDBcbiIrc3RyaW5nMzIoNCs4KnIrNCtTLmxlbmd0aCk7az0iIjtmb3Iocz0wLG49YS5sZW5ndGg7czxuO3MrKyl7RT1hW3NdO3U9RVswXTtmPUVbMl07bGV0IGU9ZlswXTtmb3Iobz0xLGc9Zi5sZW5ndGg7bzxnOysrbylpZihmW29dIT09ZltvLTFdKzEpe2Q9RVswXStvLTE7ays9c3RyaW5nMzIodSkrc3RyaW5nMzIoZCkrc3RyaW5nMzIoZSk7dT1kKzE7ZT1mW29dfWsrPXN0cmluZzMyKHUpK3N0cmluZzMyKEVbMV0pK3N0cmluZzMyKGUpfVI9IlwwXGZcMFwwIitzdHJpbmczMihrLmxlbmd0aCsxNikrIlwwXDBcMFwwIitzdHJpbmczMihrLmxlbmd0aC8xMil9cmV0dXJuIGMrIlwwBCIrc3RyaW5nMTYoUy5sZW5ndGgrNCkrUytSK2t9ZnVuY3Rpb24gY3JlYXRlT1MyVGFibGUoZSx0LGkpe2l8fD17dW5pdHNQZXJFbTowLHlNYXg6MCx5TWluOjAsYXNjZW50OjAsZGVzY2VudDowfTtsZXQgYT0wLHI9MCxzPTAsbj0wLG89bnVsbCxnPTAsYz0tMTtpZih0KXtmb3IobGV0IGUgaW4gdCl7ZXw9MDsobz5lfHwhbykmJihvPWUpO2c8ZSYmKGc9ZSk7Yz1nZXRVbmljb2RlUmFuZ2VGb3IoZSxjKTtpZihjPDMyKWF8PTE8PGM7ZWxzZSBpZihjPDY0KXJ8PTE8PGMtMzI7ZWxzZSBpZihjPDk2KXN8PTE8PGMtNjQ7ZWxzZXtpZighKGM8MTIzKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlVuaWNvZGUgcmFuZ2VzIEJpdHMgPiAxMjMgYXJlIHJlc2VydmVkIGZvciBpbnRlcm5hbCB1c2FnZSIpO258PTE8PGMtOTZ9fWc+NjU1MzUmJihnPTY1NTM1KX1lbHNle289MDtnPTI1NX1jb25zdCBsPWUuYmJveHx8WzAsMCwwLDBdLGg9aS51bml0c1BlckVtfHwoZS5mb250TWF0cml4PzEvTWF0aC5tYXgoLi4uZS5mb250TWF0cml4LnNsaWNlKDAsNCkubWFwKE1hdGguYWJzKSk6MWUzKSxDPWUuYXNjZW50U2NhbGVkPzE6aC9nYSxRPWkuYXNjZW50fHxNYXRoLnJvdW5kKEMqKGUuYXNjZW50fHxsWzNdKSk7bGV0IEU9aS5kZXNjZW50fHxNYXRoLnJvdW5kKEMqKGUuZGVzY2VudHx8bFsxXSkpO0U+MCYmZS5kZXNjZW50PjAmJmxbMV08MCYmKEU9LUUpO2NvbnN0IHU9aS55TWF4fHxRLGQ9LWkueU1pbnx8LUU7cmV0dXJuIlwwAwIkAcO0XDAFXDBcMALCigLCu1wwXDBcMMKMAsKKAsK7XDBcMAHDn1x4MDAxAQJcMFwwXDBcMAYiK1N0cmluZy5mcm9tQ2hhckNvZGUoZS5maXhlZFBpdGNoPzk6MCkrIlwwXDBcMFwwXDBcMCIrc3RyaW5nMzIoYSkrc3RyaW5nMzIocikrc3RyaW5nMzIocykrc3RyaW5nMzIobikrIioyMSoiK3N0cmluZzE2KGUuaXRhbGljQW5nbGU/MTowKStzdHJpbmcxNihvfHxlLmZpcnN0Q2hhcikrc3RyaW5nMTYoZ3x8ZS5sYXN0Q2hhcikrc3RyaW5nMTYoUSkrc3RyaW5nMTYoRSkrIlwwZCIrc3RyaW5nMTYodSkrc3RyaW5nMTYoZCkrIlwwXDBcMFwwXDBcMFwwXDAiK3N0cmluZzE2KGUueEhlaWdodCkrc3RyaW5nMTYoZS5jYXBIZWlnaHQpK3N0cmluZzE2KDApK3N0cmluZzE2KG98fGUuZmlyc3RDaGFyKSsiXDADIn1mdW5jdGlvbiBjcmVhdGVQb3N0VGFibGUoZSl7cmV0dXJuIlwwA1wwXDAiK3N0cmluZzMyKE1hdGguZmxvb3IoNjU1MzYqZS5pdGFsaWNBbmdsZSkpKyJcMFwwXDBcMCIrc3RyaW5nMzIoZS5maXhlZFBpdGNoPzE6MCkrIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIn1mdW5jdGlvbiBjcmVhdGVQb3N0c2NyaXB0TmFtZShlKXtyZXR1cm4gZS5yZXBsYWNlQWxsKC9bXlx4MjEtXHg3RV18W1tcXSgpe308Pi8lXS9nLCIiKS5zbGljZSgwLDYzKX1mdW5jdGlvbiBjcmVhdGVOYW1lVGFibGUoZSx0KXt0fHwodD1bW10sW11dKTtjb25zdCBpPVt0WzBdWzBdfHwiT3JpZ2luYWwgbGljZW5jZSIsdFswXVsxXXx8ZSx0WzBdWzJdfHwiVW5rbm93biIsdFswXVszXXx8InVuaXF1ZUlEIix0WzBdWzRdfHxlLHRbMF1bNV18fCJWZXJzaW9uIDAuMTEiLHRbMF1bNl18fGNyZWF0ZVBvc3RzY3JpcHROYW1lKGUpLHRbMF1bN118fCJVbmtub3duIix0WzBdWzhdfHwiVW5rbm93biIsdFswXVs5XXx8IlVua25vd24iXSxhPVtdO2xldCByLHMsbixvLGc7Zm9yKHI9MCxzPWkubGVuZ3RoO3I8cztyKyspe2c9dFsxXVtyXXx8aVtyXTtjb25zdCBlPVtdO2ZvcihuPTAsbz1nLmxlbmd0aDtuPG87bisrKWUucHVzaChzdHJpbmcxNihnLmNoYXJDb2RlQXQobikpKTthLnB1c2goZS5qb2luKCIiKSl9Y29uc3QgYz1baSxhXSxsPVsiXDABIiwiXDADIl0saD1bIlwwXDAiLCJcMAEiXSxDPVsiXDBcMCIsIgRcdCJdLFE9aS5sZW5ndGgqbC5sZW5ndGg7bGV0IEU9IlwwXDAiK3N0cmluZzE2KFEpK3N0cmluZzE2KDEyKlErNiksdT0wO2ZvcihyPTAscz1sLmxlbmd0aDtyPHM7cisrKXtjb25zdCBlPWNbcl07Zm9yKG49MCxvPWUubGVuZ3RoO248bztuKyspe2c9ZVtuXTtFKz1sW3JdK2hbcl0rQ1tyXStzdHJpbmcxNihuKStzdHJpbmcxNihnLmxlbmd0aCkrc3RyaW5nMTYodSk7dSs9Zy5sZW5ndGh9fUUrPWkuam9pbigiIikrYS5qb2luKCIiKTtyZXR1cm4gRX1jbGFzcyBGb250e2NvbnN0cnVjdG9yKGUsdCxpKXt0aGlzLm5hbWU9ZTt0aGlzLnBzTmFtZT1udWxsO3RoaXMubWltZXR5cGU9bnVsbDt0aGlzLmRpc2FibGVGb250RmFjZT0hMTt0aGlzLmxvYWRlZE5hbWU9aS5sb2FkZWROYW1lO3RoaXMuaXNUeXBlM0ZvbnQ9aS5pc1R5cGUzRm9udDt0aGlzLm1pc3NpbmdGaWxlPSExO3RoaXMuY3NzRm9udEluZm89aS5jc3NGb250SW5mbzt0aGlzLl9jaGFyc0NhY2hlPU9iamVjdC5jcmVhdGUobnVsbCk7dGhpcy5fZ2x5cGhDYWNoZT1PYmplY3QuY3JlYXRlKG51bGwpO2xldCBhPSEhKGkuZmxhZ3MmeGkpO2lmKCFhJiYhaS5pc1NpbXVsYXRlZEZsYWdzKXtjb25zdCB0PWUucmVwbGFjZUFsbCgvWyxfXS9nLCItIikuc3BsaXQoIi0iLDEpWzBdLGk9T2koKTtmb3IoY29uc3QgZSBvZiB0LnNwbGl0KCIrIikpaWYoaVtlXSl7YT0hMDticmVha319dGhpcy5pc1NlcmlmRm9udD1hO3RoaXMuaXNTeW1ib2xpY0ZvbnQ9ISEoaS5mbGFncyZIaSk7dGhpcy5pc01vbm9zcGFjZT0hIShpLmZsYWdzJk1pKTtsZXR7dHlwZTpyLHN1YnR5cGU6c309aTt0aGlzLnR5cGU9cjt0aGlzLnN1YnR5cGU9czt0aGlzLnN5c3RlbUZvbnRJbmZvPWkuc3lzdGVtRm9udEluZm87Y29uc3Qgbj1lLm1hdGNoKC9eSW52YWxpZFBERmpzRm9udF8oLiopX1xkKyQvKTt0aGlzLmlzSW52YWxpZFBERmpzRm9udD0hIW47dGhpcy5pc0ludmFsaWRQREZqc0ZvbnQ/dGhpcy5mYWxsYmFja05hbWU9blsxXTp0aGlzLmlzTW9ub3NwYWNlP3RoaXMuZmFsbGJhY2tOYW1lPSJtb25vc3BhY2UiOnRoaXMuaXNTZXJpZkZvbnQ/dGhpcy5mYWxsYmFja05hbWU9InNlcmlmIjp0aGlzLmZhbGxiYWNrTmFtZT0ic2Fucy1zZXJpZiI7aWYodGhpcy5zeXN0ZW1Gb250SW5mbz8uZ3Vlc3NGYWxsYmFjayl7dGhpcy5zeXN0ZW1Gb250SW5mby5ndWVzc0ZhbGxiYWNrPSExO3RoaXMuc3lzdGVtRm9udEluZm8uY3NzKz1gLCR7dGhpcy5mYWxsYmFja05hbWV9YH10aGlzLmRpZmZlcmVuY2VzPWkuZGlmZmVyZW5jZXM7dGhpcy53aWR0aHM9aS53aWR0aHM7dGhpcy5kZWZhdWx0V2lkdGg9aS5kZWZhdWx0V2lkdGg7dGhpcy5jb21wb3NpdGU9aS5jb21wb3NpdGU7dGhpcy5jTWFwPWkuY01hcDt0aGlzLmNhcEhlaWdodD1pLmNhcEhlaWdodC9nYTt0aGlzLmFzY2VudD1pLmFzY2VudC9nYTt0aGlzLmRlc2NlbnQ9aS5kZXNjZW50L2dhO3RoaXMubGluZUhlaWdodD10aGlzLmFzY2VudC10aGlzLmRlc2NlbnQ7dGhpcy5mb250TWF0cml4PWkuZm9udE1hdHJpeDt0aGlzLmJib3g9aS5iYm94O3RoaXMuZGVmYXVsdEVuY29kaW5nPWkuZGVmYXVsdEVuY29kaW5nO3RoaXMudG9Vbmljb2RlPWkudG9Vbmljb2RlO3RoaXMudG9Gb250Q2hhcj1bXTtpZigiVHlwZTMiPT09aS50eXBlKXtmb3IobGV0IGU9MDtlPDI1NjtlKyspdGhpcy50b0ZvbnRDaGFyW2VdPXRoaXMuZGlmZmVyZW5jZXNbZV18fGkuZGVmYXVsdEVuY29kaW5nW2VdO3JldHVybn10aGlzLmNpZEVuY29kaW5nPWkuY2lkRW5jb2Rpbmd8fCIiO3RoaXMudmVydGljYWw9ISFpLnZlcnRpY2FsO2lmKHRoaXMudmVydGljYWwpe3RoaXMudm1ldHJpY3M9aS52bWV0cmljczt0aGlzLmRlZmF1bHRWTWV0cmljcz1pLmRlZmF1bHRWTWV0cmljc31pZighdHx8dC5pc0VtcHR5KXt0JiZ3YXJuKCdGb250IGZpbGUgaXMgZW1wdHkgaW4gIicrZSsnIiAoJyt0aGlzLmxvYWRlZE5hbWUrIikiKTt0aGlzLmZhbGxiYWNrVG9TeXN0ZW1Gb250KGkpO3JldHVybn1bcixzXT1nZXRGb250RmlsZVR5cGUodCxpKTtyPT09dGhpcy50eXBlJiZzPT09dGhpcy5zdWJ0eXBlfHxpbmZvKGBJbmNvbnNpc3RlbnQgZm9udCBmaWxlIFR5cGUvU3ViVHlwZSwgZXhwZWN0ZWQ6ICR7dGhpcy50eXBlfS8ke3RoaXMuc3VidHlwZX0gYnV0IGZvdW5kOiAke3J9LyR7c30uYCk7bGV0IG87dHJ5e3N3aXRjaChyKXtjYXNlIk1NVHlwZTEiOmluZm8oIk1NVHlwZTEgZm9udCAoIitlKyIpLCBmYWxsaW5nIGJhY2sgdG8gVHlwZTEuIik7Y2FzZSJUeXBlMSI6Y2FzZSJDSURGb250VHlwZTAiOnRoaXMubWltZXR5cGU9ImZvbnQvb3BlbnR5cGUiO2NvbnN0IGE9IlR5cGUxQyI9PT1zfHwiQ0lERm9udFR5cGUwQyI9PT1zP25ldyBDRkZGb250KHQsaSk6bmV3IFR5cGUxRm9udChlLHQsaSk7YWRqdXN0V2lkdGhzKGkpO289dGhpcy5jb252ZXJ0KGUsYSxpKTticmVhaztjYXNlIk9wZW5UeXBlIjpjYXNlIlRydWVUeXBlIjpjYXNlIkNJREZvbnRUeXBlMiI6dGhpcy5taW1ldHlwZT0iZm9udC9vcGVudHlwZSI7bz10aGlzLmNoZWNrQW5kUmVwYWlyKGUsdCxpKTtpZih0aGlzLmlzT3BlblR5cGUpe2FkanVzdFdpZHRocyhpKTtyPSJPcGVuVHlwZSJ9YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYEZvbnQgJHtyfSBpcyBub3Qgc3VwcG9ydGVkYCl9fWNhdGNoKGUpe3dhcm4oZSk7dGhpcy5mYWxsYmFja1RvU3lzdGVtRm9udChpKTtyZXR1cm59YW1lbmRGYWxsYmFja1RvVW5pY29kZShpKTt0aGlzLmRhdGE9bzt0aGlzLnR5cGU9cjt0aGlzLnN1YnR5cGU9czt0aGlzLmZvbnRNYXRyaXg9aS5mb250TWF0cml4O3RoaXMud2lkdGhzPWkud2lkdGhzO3RoaXMuZGVmYXVsdFdpZHRoPWkuZGVmYXVsdFdpZHRoO3RoaXMudG9Vbmljb2RlPWkudG9Vbmljb2RlO3RoaXMuc2VhY01hcD1pLnNlYWNNYXB9Z2V0IHJlbmRlcmVyKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJyZW5kZXJlciIsRm9udFJlbmRlcmVyRmFjdG9yeS5jcmVhdGUodGhpcyxHaSkpfWV4cG9ydERhdGEoZT0hMSl7Y29uc3QgdD1lP1suLi5JYSwuLi5jYV06SWEsaT1PYmplY3QuY3JlYXRlKG51bGwpO2xldCBhLHI7Zm9yKGEgb2YgdCl7cj10aGlzW2FdO3ZvaWQgMCE9PXImJihpW2FdPXIpfXJldHVybiBpfWZhbGxiYWNrVG9TeXN0ZW1Gb250KGUpe3RoaXMubWlzc2luZ0ZpbGU9ITA7Y29uc3R7bmFtZTp0LHR5cGU6aX09dGhpcztsZXQgYT1ub3JtYWxpemVGb250TmFtZSh0KTtjb25zdCByPUtpKCkscz1xaSgpLG49ISFyW2FdLG89ISghc1thXXx8IXJbc1thXV0pO2E9clthXXx8c1thXXx8YTtjb25zdCBnPVppKClbYV07aWYoZyl7aXNOYU4odGhpcy5hc2NlbnQpJiYodGhpcy5hc2NlbnQ9Zy5hc2NlbnQvZ2EpO2lzTmFOKHRoaXMuZGVzY2VudCkmJih0aGlzLmRlc2NlbnQ9Zy5kZXNjZW50L2dhKTtpc05hTih0aGlzLmNhcEhlaWdodCkmJih0aGlzLmNhcEhlaWdodD1nLmNhcEhlaWdodC9nYSl9dGhpcy5ib2xkPS9ib2xkL2dpLnRlc3QoYSk7dGhpcy5pdGFsaWM9L29ibGlxdWV8aXRhbGljL2dpLnRlc3QoYSk7dGhpcy5ibGFjaz0vQmxhY2svZy50ZXN0KHQpO2NvbnN0IGM9L05hcnJvdy9nLnRlc3QodCk7dGhpcy5yZW1lYXN1cmU9KCFufHxjKSYmT2JqZWN0LmtleXModGhpcy53aWR0aHMpLmxlbmd0aD4wO2lmKChufHxvKSYmIkNJREZvbnRUeXBlMiI9PT1pJiZ0aGlzLmNpZEVuY29kaW5nLnN0YXJ0c1dpdGgoIklkZW50aXR5LSIpKXtjb25zdCBpPWUuY2lkVG9HaWRNYXAsYT1bXTthcHBseVN0YW5kYXJkRm9udEdseXBoTWFwKGEsV2koKSk7L0FyaWFsLT9CbGFjay9pLnRlc3QodCk/YXBwbHlTdGFuZGFyZEZvbnRHbHlwaE1hcChhLGppKCkpOi9DYWxpYnJpL2kudGVzdCh0KSYmYXBwbHlTdGFuZGFyZEZvbnRHbHlwaE1hcChhLFhpKCkpO2lmKGkpe2Zvcihjb25zdCBlIGluIGEpe2NvbnN0IHQ9YVtlXTt2b2lkIDAhPT1pW3RdJiYoYVsrZV09aVt0XSl9aS5sZW5ndGghPT10aGlzLnRvVW5pY29kZS5sZW5ndGgmJmUuaGFzSW5jbHVkZWRUb1VuaWNvZGVNYXAmJnRoaXMudG9Vbmljb2RlIGluc3RhbmNlb2YgSWRlbnRpdHlUb1VuaWNvZGVNYXAmJnRoaXMudG9Vbmljb2RlLmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7Y29uc3Qgcj1hW2VdO3ZvaWQgMD09PWlbcl0mJihhWytlXT10KX0pKX10aGlzLnRvVW5pY29kZSBpbnN0YW5jZW9mIElkZW50aXR5VG9Vbmljb2RlTWFwfHx0aGlzLnRvVW5pY29kZS5mb3JFYWNoKChmdW5jdGlvbihlLHQpe2FbK2VdPXR9KSk7dGhpcy50b0ZvbnRDaGFyPWE7dGhpcy50b1VuaWNvZGU9bmV3IFRvVW5pY29kZU1hcChhKX1lbHNlIGlmKC9TeW1ib2wvaS50ZXN0KGEpKXRoaXMudG9Gb250Q2hhcj1idWlsZFRvRm9udENoYXIoRWksRGkoKSx0aGlzLmRpZmZlcmVuY2VzKTtlbHNlIGlmKC9EaW5nYmF0cy9pLnRlc3QoYSkpdGhpcy50b0ZvbnRDaGFyPWJ1aWxkVG9Gb250Q2hhcih1aSxGaSgpLHRoaXMuZGlmZmVyZW5jZXMpO2Vsc2UgaWYobnx8byl7Y29uc3QgZT1idWlsZFRvRm9udENoYXIodGhpcy5kZWZhdWx0RW5jb2RpbmcsRGkoKSx0aGlzLmRpZmZlcmVuY2VzKTsiQ0lERm9udFR5cGUyIiE9PWl8fHRoaXMuY2lkRW5jb2Rpbmcuc3RhcnRzV2l0aCgiSWRlbnRpdHktIil8fHRoaXMudG9Vbmljb2RlIGluc3RhbmNlb2YgSWRlbnRpdHlUb1VuaWNvZGVNYXB8fHRoaXMudG9Vbmljb2RlLmZvckVhY2goKGZ1bmN0aW9uKHQsaSl7ZVsrdF09aX0pKTt0aGlzLnRvRm9udENoYXI9ZX1lbHNle2NvbnN0IGU9RGkoKSxpPVtdO3RoaXMudG9Vbmljb2RlLmZvckVhY2goKCh0LGEpPT57aWYoIXRoaXMuY29tcG9zaXRlKXtjb25zdCBpPWdldFVuaWNvZGVGb3JHbHlwaCh0aGlzLmRpZmZlcmVuY2VzW3RdfHx0aGlzLmRlZmF1bHRFbmNvZGluZ1t0XSxlKTstMSE9PWkmJihhPWkpfWlbK3RdPWF9KSk7dGhpcy5jb21wb3NpdGUmJnRoaXMudG9Vbmljb2RlIGluc3RhbmNlb2YgSWRlbnRpdHlUb1VuaWNvZGVNYXAmJi9UYWhvbWF8VmVyZGFuYS9pLnRlc3QodCkmJmFwcGx5U3RhbmRhcmRGb250R2x5cGhNYXAoaSxXaSgpKTt0aGlzLnRvRm9udENoYXI9aX1hbWVuZEZhbGxiYWNrVG9Vbmljb2RlKGUpO3RoaXMubG9hZGVkTmFtZT1hLnNwbGl0KCItIiwxKVswXX1jaGVja0FuZFJlcGFpcihlLHQsaSl7Y29uc3QgYT1bIk9TLzIiLCJjbWFwIiwiaGVhZCIsImhoZWEiLCJobXR4IiwibWF4cCIsIm5hbWUiLCJwb3N0IiwibG9jYSIsImdseWYiLCJmcGdtIiwicHJlcCIsImN2dCAiLCJDRkYgIl07ZnVuY3Rpb24gcmVhZFRhYmxlcyhlLHQpe2NvbnN0IGk9T2JqZWN0LmNyZWF0ZShudWxsKTtpWyJPUy8yIl09bnVsbDtpLmNtYXA9bnVsbDtpLmhlYWQ9bnVsbDtpLmhoZWE9bnVsbDtpLmhtdHg9bnVsbDtpLm1heHA9bnVsbDtpLm5hbWU9bnVsbDtpLnBvc3Q9bnVsbDtmb3IobGV0IHI9MDtyPHQ7cisrKXtjb25zdCB0PXJlYWRUYWJsZUVudHJ5KGUpO2EuaW5jbHVkZXModC50YWcpJiYoMCE9PXQubGVuZ3RoJiYoaVt0LnRhZ109dCkpfXJldHVybiBpfWZ1bmN0aW9uIHJlYWRUYWJsZUVudHJ5KGUpe2NvbnN0IHQ9ZS5nZXRTdHJpbmcoNCksaT1lLmdldEludDMyKCk+Pj4wLGE9ZS5nZXRJbnQzMigpPj4+MCxyPWUuZ2V0SW50MzIoKT4+PjAscz1lLnBvcztlLnBvcz1lLnN0YXJ0fHwwO2Uuc2tpcChhKTtjb25zdCBuPWUuZ2V0Qnl0ZXMocik7ZS5wb3M9cztpZigiaGVhZCI9PT10KXtuWzhdPW5bOV09blsxMF09blsxMV09MDtuWzE3XXw9MzJ9cmV0dXJue3RhZzp0LGNoZWNrc3VtOmksbGVuZ3RoOnIsb2Zmc2V0OmEsZGF0YTpufX1mdW5jdGlvbiByZWFkT3BlblR5cGVIZWFkZXIoZSl7cmV0dXJue3ZlcnNpb246ZS5nZXRTdHJpbmcoNCksbnVtVGFibGVzOmUuZ2V0VWludDE2KCksc2VhcmNoUmFuZ2U6ZS5nZXRVaW50MTYoKSxlbnRyeVNlbGVjdG9yOmUuZ2V0VWludDE2KCkscmFuZ2VTaGlmdDplLmdldFVpbnQxNigpfX1mdW5jdGlvbiBzYW5pdGl6ZUdseXBoKGUsdCxpLGEscixzKXtjb25zdCBuPXtsZW5ndGg6MCxzaXplT2ZJbnN0cnVjdGlvbnM6MH07aWYodDwwfHx0Pj1lLmxlbmd0aHx8aT5lLmxlbmd0aHx8aS10PD0xMilyZXR1cm4gbjtjb25zdCBvPWUuc3ViYXJyYXkodCxpKSxnPXNpZ25lZEludDE2KG9bMl0sb1szXSksYz1zaWduZWRJbnQxNihvWzRdLG9bNV0pLGw9c2lnbmVkSW50MTYob1s2XSxvWzddKSxoPXNpZ25lZEludDE2KG9bOF0sb1s5XSk7aWYoZz5sKXt3cml0ZVNpZ25lZEludDE2KG8sMixsKTt3cml0ZVNpZ25lZEludDE2KG8sNixnKX1pZihjPmgpe3dyaXRlU2lnbmVkSW50MTYobyw0LGgpO3dyaXRlU2lnbmVkSW50MTYobyw4LGMpfWNvbnN0IEM9c2lnbmVkSW50MTYob1swXSxvWzFdKTtpZihDPDApe2lmKEM8LTEpcmV0dXJuIG47YS5zZXQobyxyKTtuLmxlbmd0aD1vLmxlbmd0aDtyZXR1cm4gbn1sZXQgUSxFPTEwLHU9MDtmb3IoUT0wO1E8QztRKyspe3U9KG9bRV08PDh8b1tFKzFdKSsxO0UrPTJ9Y29uc3QgZD1FLGY9b1tFXTw8OHxvW0UrMV07bi5zaXplT2ZJbnN0cnVjdGlvbnM9ZjtFKz0yK2Y7Y29uc3QgcD1FO2xldCBtPTA7Zm9yKFE9MDtRPHU7USsrKXtjb25zdCBlPW9bRSsrXTsxOTImZSYmKG9bRS0xXT02MyZlKTtsZXQgdD0yOzImZT90PTE6MTYmZSYmKHQ9MCk7bGV0IGk9Mjs0JmU/aT0xOjMyJmUmJihpPTApO2NvbnN0IGE9dCtpO20rPWE7aWYoOCZlKXtjb25zdCBlPW9bRSsrXTswPT09ZSYmKG9bRS0xXV49OCk7USs9ZTttKz1lKmF9fWlmKDA9PT1tKXJldHVybiBuO2xldCB5PUUrbTtpZih5Pm8ubGVuZ3RoKXJldHVybiBuO2lmKCFzJiZmPjApe2Euc2V0KG8uc3ViYXJyYXkoMCxkKSxyKTthLnNldChbMCwwXSxyK2QpO2Euc2V0KG8uc3ViYXJyYXkocCx5KSxyK2QrMik7eS09ZjtvLmxlbmd0aC15PjMmJih5PXkrMyYtNCk7bi5sZW5ndGg9eTtyZXR1cm4gbn1pZihvLmxlbmd0aC15PjMpe3k9eSszJi00O2Euc2V0KG8uc3ViYXJyYXkoMCx5KSxyKTtuLmxlbmd0aD15O3JldHVybiBufWEuc2V0KG8scik7bi5sZW5ndGg9by5sZW5ndGg7cmV0dXJuIG59ZnVuY3Rpb24gcmVhZE5hbWVUYWJsZShlKXtjb25zdCBpPSh0LnN0YXJ0fHwwKStlLm9mZnNldDt0LnBvcz1pO2NvbnN0IGE9W1tdLFtdXSxyPVtdLHM9ZS5sZW5ndGgsbj1pK3M7aWYoMCE9PXQuZ2V0VWludDE2KCl8fHM8NilyZXR1cm5bYSxyXTtjb25zdCBvPXQuZ2V0VWludDE2KCksZz10LmdldFVpbnQxNigpO2xldCBjLGw7Zm9yKGM9MDtjPG8mJnQucG9zKzEyPD1uO2MrKyl7Y29uc3QgZT17cGxhdGZvcm06dC5nZXRVaW50MTYoKSxlbmNvZGluZzp0LmdldFVpbnQxNigpLGxhbmd1YWdlOnQuZ2V0VWludDE2KCksbmFtZTp0LmdldFVpbnQxNigpLGxlbmd0aDp0LmdldFVpbnQxNigpLG9mZnNldDp0LmdldFVpbnQxNigpfTsoaXNNYWNOYW1lUmVjb3JkKGUpfHxpc1dpbk5hbWVSZWNvcmQoZSkpJiZyLnB1c2goZSl9Zm9yKGM9MCxsPXIubGVuZ3RoO2M8bDtjKyspe2NvbnN0IGU9cltjXTtpZihlLmxlbmd0aDw9MCljb250aW51ZTtjb25zdCBzPWkrZytlLm9mZnNldDtpZihzK2UubGVuZ3RoPm4pY29udGludWU7dC5wb3M9cztjb25zdCBvPWUubmFtZTtpZihlLmVuY29kaW5nKXtsZXQgaT0iIjtmb3IobGV0IGE9MCxyPWUubGVuZ3RoO2E8cjthKz0yKWkrPVN0cmluZy5mcm9tQ2hhckNvZGUodC5nZXRVaW50MTYoKSk7YVsxXVtvXT1pfWVsc2UgYVswXVtvXT10LmdldFN0cmluZyhlLmxlbmd0aCl9cmV0dXJuW2Escl19Y29uc3Qgcj1bMCwwLDAsMCwwLDAsMCwwLC0yLC0yLC0yLC0yLDAsMCwtMiwtNSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwwLDAsLTEsMCwtMSwtMSwtMSwtMSwxLC0xLC05OTksMCwxLDAsLTEsLTIsMCwtMSwtMiwtMSwtMSwwLC0xLC0xLDAsMCwtOTk5LC05OTksLTEsLTEsLTEsLTEsLTIsLTk5OSwtMiwtMiwtOTk5LDAsLTIsLTIsMCwwLC0yLDAsLTIsMCwwLDAsLTIsLTEsLTEsMSwxLDAsMCwtMSwtMSwtMSwtMSwtMSwtMSwtMSwwLDAsLTEsMCwtMSwtMSwwLC05OTksLTEsLTEsLTEsLTEsLTEsLTEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsLTIsLTk5OSwtOTk5LC05OTksLTk5OSwtOTk5LC0xLC0xLC0yLC0yLDAsMCwwLDAsLTEsLTEsLTk5OSwtMiwtMiwwLDAsLTEsLTIsLTIsMCwwLDAsLTEsLTEsLTEsLTJdO2Z1bmN0aW9uIHNhbml0aXplVFRQcm9ncmFtKGUsdCl7bGV0IGksYSxzLG4sbyxnPWUuZGF0YSxjPTAsbD0wLGg9MDtjb25zdCBDPVtdLFE9W10sRT1bXTtsZXQgdT10LnRvb0NvbXBsZXhUb0ZvbGxvd0Z1bmN0aW9ucyxkPSExLGY9MCxwPTA7Zm9yKGxldCBlPWcubGVuZ3RoO2M8ZTspe2NvbnN0IGU9Z1tjKytdO2lmKDY0PT09ZSl7YT1nW2MrK107aWYoZHx8cCljKz1hO2Vsc2UgZm9yKGk9MDtpPGE7aSsrKUMucHVzaChnW2MrK10pfWVsc2UgaWYoNjU9PT1lKXthPWdbYysrXTtpZihkfHxwKWMrPTIqYTtlbHNlIGZvcihpPTA7aTxhO2krKyl7cz1nW2MrK107Qy5wdXNoKHM8PDh8Z1tjKytdKX19ZWxzZSBpZigxNzY9PSgyNDgmZSkpe2E9ZS0xNzYrMTtpZihkfHxwKWMrPWE7ZWxzZSBmb3IoaT0wO2k8YTtpKyspQy5wdXNoKGdbYysrXSl9ZWxzZSBpZigxODQ9PSgyNDgmZSkpe2E9ZS0xODQrMTtpZihkfHxwKWMrPTIqYTtlbHNlIGZvcihpPTA7aTxhO2krKyl7cz1nW2MrK107Qy5wdXNoKHNpZ25lZEludDE2KHMsZ1tjKytdKSl9fWVsc2UgaWYoNDMhPT1lfHx1KWlmKDQ0IT09ZXx8dSl7aWYoNDU9PT1lKWlmKGQpe2Q9ITE7bD1jfWVsc2V7bz1RLnBvcCgpO2lmKCFvKXt3YXJuKCJUVDogRU5ERiBiYWQgc3RhY2siKTt0LmhpbnRzVmFsaWQ9ITE7cmV0dXJufW49RS5wb3AoKTtnPW8uZGF0YTtjPW8uaTt0LmZ1bmN0aW9uc1N0YWNrRGVsdGFzW25dPUMubGVuZ3RoLW8uc3RhY2tUb3B9ZWxzZSBpZigxMzc9PT1lKXtpZihkfHxwKXt3YXJuKCJUVDogbmVzdGVkIElERUZzIG5vdCBhbGxvd2VkIik7dT0hMH1kPSEwO2g9Y31lbHNlIGlmKDg4PT09ZSkrK2Y7ZWxzZSBpZigyNz09PWUpcD1mO2Vsc2UgaWYoODk9PT1lKXtwPT09ZiYmKHA9MCk7LS1mfWVsc2UgaWYoMjg9PT1lJiYhZCYmIXApe2NvbnN0IGU9Qy5hdCgtMSk7ZT4wJiYoYys9ZS0xKX19ZWxzZXtpZihkfHxwKXt3YXJuKCJUVDogbmVzdGVkIEZERUZzIG5vdCBhbGxvd2VkIik7dT0hMH1kPSEwO2g9YztuPUMucG9wKCk7dC5mdW5jdGlvbnNEZWZpbmVkW25dPXtkYXRhOmcsaTpjfX1lbHNlIGlmKCFkJiYhcCl7bj1DLmF0KC0xKTtpZihpc05hTihuKSlpbmZvKCJUVDogQ0FMTCBlbXB0eSBzdGFjayAob3IgaW52YWxpZCBlbnRyeSkuIik7ZWxzZXt0LmZ1bmN0aW9uc1VzZWRbbl09ITA7aWYobiBpbiB0LmZ1bmN0aW9uc1N0YWNrRGVsdGFzKXtjb25zdCBlPUMubGVuZ3RoK3QuZnVuY3Rpb25zU3RhY2tEZWx0YXNbbl07aWYoZTwwKXt3YXJuKCJUVDogQ0FMTCBpbnZhbGlkIGZ1bmN0aW9ucyBzdGFjayBkZWx0YS4iKTt0LmhpbnRzVmFsaWQ9ITE7cmV0dXJufUMubGVuZ3RoPWV9ZWxzZSBpZihuIGluIHQuZnVuY3Rpb25zRGVmaW5lZCYmIUUuaW5jbHVkZXMobikpe1EucHVzaCh7ZGF0YTpnLGk6YyxzdGFja1RvcDpDLmxlbmd0aC0xfSk7RS5wdXNoKG4pO289dC5mdW5jdGlvbnNEZWZpbmVkW25dO2lmKCFvKXt3YXJuKCJUVDogQ0FMTCBub24tZXhpc3RlbnQgZnVuY3Rpb24iKTt0LmhpbnRzVmFsaWQ9ITE7cmV0dXJufWc9by5kYXRhO2M9by5pfX19aWYoIWQmJiFwKXtsZXQgdD0wO2U8PTE0Mj90PXJbZV06ZT49MTkyJiZlPD0yMjM/dD0tMTplPj0yMjQmJih0PS0yKTtpZihlPj0xMTMmJmU8PTExNyl7YT1DLnBvcCgpO2lzTmFOKGEpfHwodD0yKi1hKX1mb3IoO3Q8MCYmQy5sZW5ndGg+MDspe0MucG9wKCk7dCsrfWZvcig7dD4wOyl7Qy5wdXNoKE5hTik7dC0tfX19dC50b29Db21wbGV4VG9Gb2xsb3dGdW5jdGlvbnM9dTtjb25zdCBtPVtnXTtjPmcubGVuZ3RoJiZtLnB1c2gobmV3IFVpbnQ4QXJyYXkoYy1nLmxlbmd0aCkpO2lmKGg+bCl7d2FybigiVFQ6IGNvbXBsZW1lbnRpbmcgYSBtaXNzaW5nIGZ1bmN0aW9uIHRhaWwiKTttLnB1c2gobmV3IFVpbnQ4QXJyYXkoWzM0LDQ1XSkpfSFmdW5jdGlvbiBmb2xkVFRUYWJsZShlLHQpe2lmKHQubGVuZ3RoPjEpe2xldCBpLGEscj0wO2ZvcihpPTAsYT10Lmxlbmd0aDtpPGE7aSsrKXIrPXRbaV0ubGVuZ3RoO3I9ciszJi00O2NvbnN0IHM9bmV3IFVpbnQ4QXJyYXkocik7bGV0IG49MDtmb3IoaT0wLGE9dC5sZW5ndGg7aTxhO2krKyl7cy5zZXQodFtpXSxuKTtuKz10W2ldLmxlbmd0aH1lLmRhdGE9cztlLmxlbmd0aD1yfX0oZSxtKX1sZXQgcyxuLG8sZztpZihpc1RydWVUeXBlQ29sbGVjdGlvbkZpbGUodD1uZXcgU3RyZWFtKG5ldyBVaW50OEFycmF5KHQuZ2V0Qnl0ZXMoKSkpKSl7Y29uc3QgZT1mdW5jdGlvbiByZWFkVHJ1ZVR5cGVDb2xsZWN0aW9uRGF0YShlLHQpe2NvbnN0e251bUZvbnRzOmksb2Zmc2V0VGFibGU6YX09ZnVuY3Rpb24gcmVhZFRydWVUeXBlQ29sbGVjdGlvbkhlYWRlcihlKXtjb25zdCB0PWUuZ2V0U3RyaW5nKDQpO2Fzc2VydCgidHRjZiI9PT10LCJNdXN0IGJlIGEgVHJ1ZVR5cGUgQ29sbGVjdGlvbiBmb250LiIpO2NvbnN0IGk9ZS5nZXRVaW50MTYoKSxhPWUuZ2V0VWludDE2KCkscj1lLmdldEludDMyKCk+Pj4wLHM9W107Zm9yKGxldCB0PTA7dDxyO3QrKylzLnB1c2goZS5nZXRJbnQzMigpPj4+MCk7Y29uc3Qgbj17dHRjVGFnOnQsbWFqb3JWZXJzaW9uOmksbWlub3JWZXJzaW9uOmEsbnVtRm9udHM6cixvZmZzZXRUYWJsZTpzfTtzd2l0Y2goaSl7Y2FzZSAxOnJldHVybiBuO2Nhc2UgMjpuLmRzaWdUYWc9ZS5nZXRJbnQzMigpPj4+MDtuLmRzaWdMZW5ndGg9ZS5nZXRJbnQzMigpPj4+MDtuLmRzaWdPZmZzZXQ9ZS5nZXRJbnQzMigpPj4+MDtyZXR1cm4gbn10aHJvdyBuZXcgRm9ybWF0RXJyb3IoYEludmFsaWQgVHJ1ZVR5cGUgQ29sbGVjdGlvbiBtYWpvclZlcnNpb246ICR7aX0uYCl9KGUpLHI9dC5zcGxpdCgiKyIpO2xldCBzO2ZvcihsZXQgbj0wO248aTtuKyspe2UucG9zPShlLnN0YXJ0fHwwKSthW25dO2NvbnN0IGk9cmVhZE9wZW5UeXBlSGVhZGVyKGUpLG89cmVhZFRhYmxlcyhlLGkubnVtVGFibGVzKTtpZighby5uYW1lKXRocm93IG5ldyBGb3JtYXRFcnJvcignVHJ1ZVR5cGUgQ29sbGVjdGlvbiBmb250IG11c3QgY29udGFpbiBhICJuYW1lIiB0YWJsZS4nKTtjb25zdFtnXT1yZWFkTmFtZVRhYmxlKG8ubmFtZSk7Zm9yKGxldCBlPTAsYT1nLmxlbmd0aDtlPGE7ZSsrKWZvcihsZXQgYT0wLG49Z1tlXS5sZW5ndGg7YTxuO2ErKyl7Y29uc3Qgbj1nW2VdW2FdPy5yZXBsYWNlQWxsKC9ccy9nLCIiKTtpZihuKXtpZihuPT09dClyZXR1cm57aGVhZGVyOmksdGFibGVzOm99O2lmKCEoci5sZW5ndGg8MikpZm9yKGNvbnN0IGUgb2YgciluPT09ZSYmKHM9e25hbWU6ZSxoZWFkZXI6aSx0YWJsZXM6b30pfX19aWYocyl7d2FybihgVHJ1ZVR5cGUgQ29sbGVjdGlvbiBkb2VzIG5vdCBjb250YWluICIke3R9IiBmb250LCBmYWxsaW5nIGJhY2sgdG8gIiR7cy5uYW1lfSIgZm9udCBpbnN0ZWFkLmApO3JldHVybntoZWFkZXI6cy5oZWFkZXIsdGFibGVzOnMudGFibGVzfX10aHJvdyBuZXcgRm9ybWF0RXJyb3IoYFRydWVUeXBlIENvbGxlY3Rpb24gZG9lcyBub3QgY29udGFpbiAiJHt0fSIgZm9udC5gKX0odCx0aGlzLm5hbWUpO3M9ZS5oZWFkZXI7bj1lLnRhYmxlc31lbHNle3M9cmVhZE9wZW5UeXBlSGVhZGVyKHQpO249cmVhZFRhYmxlcyh0LHMubnVtVGFibGVzKX1jb25zdCBjPSFuWyJDRkYgIl07aWYoYyl7aWYoIW4ubG9jYSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoJ1JlcXVpcmVkICJsb2NhIiB0YWJsZSBpcyBub3QgZm91bmQnKTtpZighbi5nbHlmKXt3YXJuKCdSZXF1aXJlZCAiZ2x5ZiIgdGFibGUgaXMgbm90IGZvdW5kIC0tIHRyeWluZyB0byByZWNvdmVyLicpO24uZ2x5Zj17dGFnOiJnbHlmIixkYXRhOm5ldyBVaW50OEFycmF5KDApfX10aGlzLmlzT3BlblR5cGU9ITF9ZWxzZXtjb25zdCB0PWkuY29tcG9zaXRlJiYoaS5jaWRUb0dpZE1hcD8ubGVuZ3RoPjB8fCEoaS5jTWFwIGluc3RhbmNlb2YgSWRlbnRpdHlDTWFwKSk7aWYoIk9UVE8iPT09cy52ZXJzaW9uJiYhdHx8IW4uaGVhZHx8IW4uaGhlYXx8IW4ubWF4cHx8IW4ucG9zdCl7Zz1uZXcgU3RyZWFtKG5bIkNGRiAiXS5kYXRhKTtvPW5ldyBDRkZGb250KGcsaSk7YWRqdXN0V2lkdGhzKGkpO3JldHVybiB0aGlzLmNvbnZlcnQoZSxvLGkpfWRlbGV0ZSBuLmdseWY7ZGVsZXRlIG4ubG9jYTtkZWxldGUgbi5mcGdtO2RlbGV0ZSBuLnByZXA7ZGVsZXRlIG5bImN2dCAiXTt0aGlzLmlzT3BlblR5cGU9ITB9aWYoIW4ubWF4cCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoJ1JlcXVpcmVkICJtYXhwIiB0YWJsZSBpcyBub3QgZm91bmQnKTt0LnBvcz0odC5zdGFydHx8MCkrbi5tYXhwLm9mZnNldDtsZXQgbD10LmdldEludDMyKCk7Y29uc3QgaD10LmdldFVpbnQxNigpO2lmKDY1NTM2IT09bCYmMjA0ODAhPT1sKXtpZig2PT09bi5tYXhwLmxlbmd0aClsPTIwNDgwO2Vsc2V7aWYoIShuLm1heHAubGVuZ3RoPj0zMikpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCcibWF4cCIgdGFibGUgaGFzIGEgd3JvbmcgdmVyc2lvbiBudW1iZXInKTtsPTY1NTM2fSFmdW5jdGlvbiB3cml0ZVVpbnQzMihlLHQsaSl7ZVt0KzNdPTI1NSZpO2VbdCsyXT1pPj4+ODtlW3QrMV09aT4+PjE2O2VbdF09aT4+PjI0fShuLm1heHAuZGF0YSwwLGwpfWlmKGkuc2NhbGVGYWN0b3JzPy5sZW5ndGg9PT1oJiZjKXtjb25zdHtzY2FsZUZhY3RvcnM6ZX09aSx0PWludDE2KG4uaGVhZC5kYXRhWzUwXSxuLmhlYWQuZGF0YVs1MV0pLGE9bmV3IEdseWZUYWJsZSh7Z2x5ZlRhYmxlOm4uZ2x5Zi5kYXRhLGlzR2x5cGhMb2NhdGlvbnNMb25nOnQsbG9jYVRhYmxlOm4ubG9jYS5kYXRhLG51bUdseXBoczpofSk7YS5zY2FsZShlKTtjb25zdHtnbHlmOnIsbG9jYTpzLGlzTG9jYXRpb25Mb25nOm99PWEud3JpdGUoKTtuLmdseWYuZGF0YT1yO24ubG9jYS5kYXRhPXM7aWYobyE9PSEhdCl7bi5oZWFkLmRhdGFbNTBdPTA7bi5oZWFkLmRhdGFbNTFdPW8/MTowfWNvbnN0IGc9bi5obXR4LmRhdGE7Zm9yKGxldCB0PTA7dDxoO3QrKyl7Y29uc3QgaT00KnQsYT1NYXRoLnJvdW5kKGVbdF0qaW50MTYoZ1tpXSxnW2krMV0pKTtnW2ldPWE+PjgmMjU1O2dbaSsxXT0yNTUmYTt3cml0ZVNpZ25lZEludDE2KGcsaSsyLE1hdGgucm91bmQoZVt0XSpzaWduZWRJbnQxNihnW2krMl0sZ1tpKzNdKSkpfX1sZXQgQz1oKzEsUT0hMDtpZihDPjY1NTM1KXtRPSExO0M9aDt3YXJuKCJOb3QgZW5vdWdoIHNwYWNlIGluIGdseWZzIHRvIGR1cGxpY2F0ZSBmaXJzdCBnbHlwaC4iKX1sZXQgRT0wLHU9MDtpZihsPj02NTUzNiYmbi5tYXhwLmxlbmd0aD49MzIpe3QucG9zKz04O2lmKHQuZ2V0VWludDE2KCk+Mil7bi5tYXhwLmRhdGFbMTRdPTA7bi5tYXhwLmRhdGFbMTVdPTJ9dC5wb3MrPTQ7RT10LmdldFVpbnQxNigpO3QucG9zKz00O3U9dC5nZXRVaW50MTYoKX1uLm1heHAuZGF0YVs0XT1DPj44O24ubWF4cC5kYXRhWzVdPTI1NSZDO2NvbnN0IGQ9ZnVuY3Rpb24gc2FuaXRpemVUVFByb2dyYW1zKGUsdCxpLGEpe2NvbnN0IHI9e2Z1bmN0aW9uc0RlZmluZWQ6W10sZnVuY3Rpb25zVXNlZDpbXSxmdW5jdGlvbnNTdGFja0RlbHRhczpbXSx0b29Db21wbGV4VG9Gb2xsb3dGdW5jdGlvbnM6ITEsaGludHNWYWxpZDohMH07ZSYmc2FuaXRpemVUVFByb2dyYW0oZSxyKTt0JiZzYW5pdGl6ZVRUUHJvZ3JhbSh0LHIpO2UmJmZ1bmN0aW9uIGNoZWNrSW52YWxpZEZ1bmN0aW9ucyhlLHQpe2lmKCFlLnRvb0NvbXBsZXhUb0ZvbGxvd0Z1bmN0aW9ucylpZihlLmZ1bmN0aW9uc0RlZmluZWQubGVuZ3RoPnQpe3dhcm4oIlRUOiBtb3JlIGZ1bmN0aW9ucyBkZWZpbmVkIHRoYW4gZXhwZWN0ZWQiKTtlLmhpbnRzVmFsaWQ9ITF9ZWxzZSBmb3IobGV0IGk9MCxhPWUuZnVuY3Rpb25zVXNlZC5sZW5ndGg7aTxhO2krKyl7aWYoaT50KXt3YXJuKCJUVDogaW52YWxpZCBmdW5jdGlvbiBpZDogIitpKTtlLmhpbnRzVmFsaWQ9ITE7cmV0dXJufWlmKGUuZnVuY3Rpb25zVXNlZFtpXSYmIWUuZnVuY3Rpb25zRGVmaW5lZFtpXSl7d2FybigiVFQ6IHVuZGVmaW5lZCBmdW5jdGlvbjogIitpKTtlLmhpbnRzVmFsaWQ9ITE7cmV0dXJufX19KHIsYSk7aWYoaSYmMSZpLmxlbmd0aCl7Y29uc3QgZT1uZXcgVWludDhBcnJheShpLmxlbmd0aCsxKTtlLnNldChpLmRhdGEpO2kuZGF0YT1lfXJldHVybiByLmhpbnRzVmFsaWR9KG4uZnBnbSxuLnByZXAsblsiY3Z0ICJdLEUpO2lmKCFkKXtkZWxldGUgbi5mcGdtO2RlbGV0ZSBuLnByZXA7ZGVsZXRlIG5bImN2dCAiXX0hZnVuY3Rpb24gc2FuaXRpemVNZXRyaWNzKGUsdCxpLGEscixzKXtpZighdCl7aSYmKGkuZGF0YT1udWxsKTtyZXR1cm59ZS5wb3M9KGUuc3RhcnR8fDApK3Qub2Zmc2V0O2UucG9zKz00O2UucG9zKz0yO2UucG9zKz0yO2UucG9zKz0yO2UucG9zKz0yO2UucG9zKz0yO2UucG9zKz0yO2UucG9zKz0yO2UucG9zKz0yO2UucG9zKz0yO2NvbnN0IG49ZS5nZXRVaW50MTYoKTtlLnBvcys9ODtlLnBvcys9MjtsZXQgbz1lLmdldFVpbnQxNigpO2lmKDAhPT1uKXtpZighKDImaW50MTYoYS5kYXRhWzQ0XSxhLmRhdGFbNDVdKSkpe3QuZGF0YVsyMl09MDt0LmRhdGFbMjNdPTB9fWlmKG8+cil7aW5mbyhgVGhlIG51bU9mTWV0cmljcyAoJHtvfSkgc2hvdWxkIG5vdCBiZSBncmVhdGVyIHRoYW4gdGhlIG51bUdseXBocyAoJHtyfSkuYCk7bz1yO3QuZGF0YVszNF09KDY1MjgwJm8pPj44O3QuZGF0YVszNV09MjU1Jm99Y29uc3QgZz1yLW8tKGkubGVuZ3RoLTQqbz4+MSk7aWYoZz4wKXtjb25zdCBlPW5ldyBVaW50OEFycmF5KGkubGVuZ3RoKzIqZyk7ZS5zZXQoaS5kYXRhKTtpZihzKXtlW2kubGVuZ3RoXT1pLmRhdGFbMl07ZVtpLmxlbmd0aCsxXT1pLmRhdGFbM119aS5kYXRhPWV9fSh0LG4uaGhlYSxuLmhtdHgsbi5oZWFkLEMsUSk7aWYoIW4uaGVhZCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoJ1JlcXVpcmVkICJoZWFkIiB0YWJsZSBpcyBub3QgZm91bmQnKTshZnVuY3Rpb24gc2FuaXRpemVIZWFkKGUsdCxpKXtjb25zdCBhPWUuZGF0YSxyPWZ1bmN0aW9uIGludDMyKGUsdCxpLGEpe3JldHVybihlPDwyNCkrKHQ8PDE2KSsoaTw8OCkrYX0oYVswXSxhWzFdLGFbMl0sYVszXSk7aWYocj4+MTYhPTEpe2luZm8oIkF0dGVtcHRpbmcgdG8gZml4IGludmFsaWQgdmVyc2lvbiBpbiBoZWFkIHRhYmxlOiAiK3IpO2FbMF09MDthWzFdPTE7YVsyXT0wO2FbM109MH1jb25zdCBzPWludDE2KGFbNTBdLGFbNTFdKTtpZihzPDB8fHM+MSl7aW5mbygiQXR0ZW1wdGluZyB0byBmaXggaW52YWxpZCBpbmRleFRvTG9jRm9ybWF0IGluIGhlYWQgdGFibGU6ICIrcyk7Y29uc3QgZT10KzE7aWYoaT09PWU8PDEpe2FbNTBdPTA7YVs1MV09MH1lbHNle2lmKGkhPT1lPDwyKXRocm93IG5ldyBGb3JtYXRFcnJvcigiQ291bGQgbm90IGZpeCBpbmRleFRvTG9jRm9ybWF0OiAiK3MpO2FbNTBdPTA7YVs1MV09MX19fShuLmhlYWQsaCxjP24ubG9jYS5sZW5ndGg6MCk7bGV0IGY9T2JqZWN0LmNyZWF0ZShudWxsKTtpZihjKXtjb25zdCBlPWludDE2KG4uaGVhZC5kYXRhWzUwXSxuLmhlYWQuZGF0YVs1MV0pLHQ9ZnVuY3Rpb24gc2FuaXRpemVHbHlwaExvY2F0aW9ucyhlLHQsaSxhLHIscyxuKXtsZXQgbyxnLGM7aWYoYSl7bz00O2c9ZnVuY3Rpb24gZm9udEl0ZW1EZWNvZGVMb25nKGUsdCl7cmV0dXJuIGVbdF08PDI0fGVbdCsxXTw8MTZ8ZVt0KzJdPDw4fGVbdCszXX07Yz1mdW5jdGlvbiBmb250SXRlbUVuY29kZUxvbmcoZSx0LGkpe2VbdF09aT4+PjI0JjI1NTtlW3QrMV09aT4+MTYmMjU1O2VbdCsyXT1pPj44JjI1NTtlW3QrM109MjU1Jml9fWVsc2V7bz0yO2c9ZnVuY3Rpb24gZm9udEl0ZW1EZWNvZGUoZSx0KXtyZXR1cm4gZVt0XTw8OXxlW3QrMV08PDF9O2M9ZnVuY3Rpb24gZm9udEl0ZW1FbmNvZGUoZSx0LGkpe2VbdF09aT4+OSYyNTU7ZVt0KzFdPWk+PjEmMjU1fX1jb25zdCBsPXM/aSsxOmksaD1vKigxK2wpLEM9bmV3IFVpbnQ4QXJyYXkoaCk7Qy5zZXQoZS5kYXRhLnN1YmFycmF5KDAsaCkpO2UuZGF0YT1DO2NvbnN0IFE9dC5kYXRhLEU9US5sZW5ndGgsdT1uZXcgVWludDhBcnJheShFKTtsZXQgZCxmO2NvbnN0IHA9W107Zm9yKGQ9MCxmPTA7ZDxpKzE7ZCsrLGYrPW8pe2xldCBlPWcoQyxmKTtlPkUmJihlPUUpO3AucHVzaCh7aW5kZXg6ZCxvZmZzZXQ6ZSxlbmRPZmZzZXQ6MH0pfXAuc29ydCgoKGUsdCk9PmUub2Zmc2V0LXQub2Zmc2V0KSk7Zm9yKGQ9MDtkPGk7ZCsrKXBbZF0uZW5kT2Zmc2V0PXBbZCsxXS5vZmZzZXQ7cC5zb3J0KCgoZSx0KT0+ZS5pbmRleC10LmluZGV4KSk7Zm9yKGQ9MDtkPGk7ZCsrKXtjb25zdHtvZmZzZXQ6ZSxlbmRPZmZzZXQ6dH09cFtkXTtpZigwIT09ZXx8MCE9PXQpYnJlYWs7Y29uc3QgaT1wW2QrMV0ub2Zmc2V0O2lmKDAhPT1pKXtwW2RdLmVuZE9mZnNldD1pO2JyZWFrfX1jb25zdCBtPXAuYXQoLTIpOzAhPT1tLm9mZnNldCYmMD09PW0uZW5kT2Zmc2V0JiYobS5lbmRPZmZzZXQ9RSk7Y29uc3QgeT1PYmplY3QuY3JlYXRlKG51bGwpO2xldCB3PTA7YyhDLDAsdyk7Zm9yKGQ9MCxmPW87ZDxpO2QrKyxmKz1vKXtjb25zdCBlPXNhbml0aXplR2x5cGgoUSxwW2RdLm9mZnNldCxwW2RdLmVuZE9mZnNldCx1LHcsciksdD1lLmxlbmd0aDswPT09dCYmKHlbZF09ITApO2Uuc2l6ZU9mSW5zdHJ1Y3Rpb25zPm4mJihuPWUuc2l6ZU9mSW5zdHJ1Y3Rpb25zKTt3Kz10O2MoQyxmLHcpfWlmKDA9PT13KXtjb25zdCBlPW5ldyBVaW50OEFycmF5KFswLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNDksMF0pO2ZvcihkPTAsZj1vO2Q8bDtkKyssZis9byljKEMsZixlLmxlbmd0aCk7dC5kYXRhPWV9ZWxzZSBpZihzKXtjb25zdCBpPWcoQyxvKTtpZih1Lmxlbmd0aD5pK3cpdC5kYXRhPXUuc3ViYXJyYXkoMCxpK3cpO2Vsc2V7dC5kYXRhPW5ldyBVaW50OEFycmF5KGkrdyk7dC5kYXRhLnNldCh1LnN1YmFycmF5KDAsdykpfXQuZGF0YS5zZXQodS5zdWJhcnJheSgwLGkpLHcpO2MoZS5kYXRhLEMubGVuZ3RoLW8sdytpKX1lbHNlIHQuZGF0YT11LnN1YmFycmF5KDAsdyk7cmV0dXJue21pc3NpbmdHbHlwaHM6eSxtYXhTaXplT2ZJbnN0cnVjdGlvbnM6bn19KG4ubG9jYSxuLmdseWYsaCxlLGQsUSx1KTtmPXQubWlzc2luZ0dseXBocztpZihsPj02NTUzNiYmbi5tYXhwLmxlbmd0aD49MzIpe24ubWF4cC5kYXRhWzI2XT10Lm1heFNpemVPZkluc3RydWN0aW9ucz4+ODtuLm1heHAuZGF0YVsyN109MjU1JnQubWF4U2l6ZU9mSW5zdHJ1Y3Rpb25zfX1pZighbi5oaGVhKXRocm93IG5ldyBGb3JtYXRFcnJvcignUmVxdWlyZWQgImhoZWEiIHRhYmxlIGlzIG5vdCBmb3VuZCcpO2lmKDA9PT1uLmhoZWEuZGF0YVsxMF0mJjA9PT1uLmhoZWEuZGF0YVsxMV0pe24uaGhlYS5kYXRhWzEwXT0yNTU7bi5oaGVhLmRhdGFbMTFdPTI1NX1jb25zdCBwPXt1bml0c1BlckVtOmludDE2KG4uaGVhZC5kYXRhWzE4XSxuLmhlYWQuZGF0YVsxOV0pLHlNYXg6c2lnbmVkSW50MTYobi5oZWFkLmRhdGFbNDJdLG4uaGVhZC5kYXRhWzQzXSkseU1pbjpzaWduZWRJbnQxNihuLmhlYWQuZGF0YVszOF0sbi5oZWFkLmRhdGFbMzldKSxhc2NlbnQ6c2lnbmVkSW50MTYobi5oaGVhLmRhdGFbNF0sbi5oaGVhLmRhdGFbNV0pLGRlc2NlbnQ6c2lnbmVkSW50MTYobi5oaGVhLmRhdGFbNl0sbi5oaGVhLmRhdGFbN10pLGxpbmVHYXA6c2lnbmVkSW50MTYobi5oaGVhLmRhdGFbOF0sbi5oaGVhLmRhdGFbOV0pfTt0aGlzLmFzY2VudD1wLmFzY2VudC9wLnVuaXRzUGVyRW07dGhpcy5kZXNjZW50PXAuZGVzY2VudC9wLnVuaXRzUGVyRW07dGhpcy5saW5lR2FwPXAubGluZUdhcC9wLnVuaXRzUGVyRW07aWYodGhpcy5jc3NGb250SW5mbz8ubGluZUhlaWdodCl7dGhpcy5saW5lSGVpZ2h0PXRoaXMuY3NzRm9udEluZm8ubWV0cmljcy5saW5lSGVpZ2h0O3RoaXMubGluZUdhcD10aGlzLmNzc0ZvbnRJbmZvLm1ldHJpY3MubGluZUdhcH1lbHNlIHRoaXMubGluZUhlaWdodD10aGlzLmFzY2VudC10aGlzLmRlc2NlbnQrdGhpcy5saW5lR2FwO24ucG9zdCYmZnVuY3Rpb24gcmVhZFBvc3RTY3JpcHRUYWJsZShlLGksYSl7Y29uc3Qgcj0odC5zdGFydHx8MCkrZS5vZmZzZXQ7dC5wb3M9cjtjb25zdCBzPXIrZS5sZW5ndGgsbj10LmdldEludDMyKCk7dC5za2lwKDI4KTtsZXQgbyxnLGM9ITA7c3dpdGNoKG4pe2Nhc2UgNjU1MzY6bz12aTticmVhaztjYXNlIDEzMTA3Mjpjb25zdCBlPXQuZ2V0VWludDE2KCk7aWYoZSE9PWEpe2M9ITE7YnJlYWt9Y29uc3Qgcj1bXTtmb3IoZz0wO2c8ZTsrK2cpe2NvbnN0IGU9dC5nZXRVaW50MTYoKTtpZihlPj0zMjc2OCl7Yz0hMTticmVha31yLnB1c2goZSl9aWYoIWMpYnJlYWs7Y29uc3QgbD1bXSxoPVtdO2Zvcig7dC5wb3M8czspe2NvbnN0IGU9dC5nZXRCeXRlKCk7aC5sZW5ndGg9ZTtmb3IoZz0wO2c8ZTsrK2cpaFtnXT1TdHJpbmcuZnJvbUNoYXJDb2RlKHQuZ2V0Qnl0ZSgpKTtsLnB1c2goaC5qb2luKCIiKSl9bz1bXTtmb3IoZz0wO2c8ZTsrK2cpe2NvbnN0IGU9cltnXTtlPDI1OD9vLnB1c2godmlbZV0pOm8ucHVzaChsW2UtMjU4XSl9YnJlYWs7Y2FzZSAxOTY2MDg6YnJlYWs7ZGVmYXVsdDp3YXJuKCJVbmtub3duL3Vuc3VwcG9ydGVkIHBvc3QgdGFibGUgdmVyc2lvbiAiK24pO2M9ITE7aS5kZWZhdWx0RW5jb2RpbmcmJihvPWkuZGVmYXVsdEVuY29kaW5nKX1pLmdseXBoTmFtZXM9bztyZXR1cm4gY30obi5wb3N0LGksaCk7bi5wb3N0PXt0YWc6InBvc3QiLGRhdGE6Y3JlYXRlUG9zdFRhYmxlKGkpfTtjb25zdCBtPU9iamVjdC5jcmVhdGUobnVsbCk7ZnVuY3Rpb24gaGFzR2x5cGgoZSl7cmV0dXJuIWZbZV19aWYoaS5jb21wb3NpdGUpe2NvbnN0IGU9aS5jaWRUb0dpZE1hcHx8W10sdD0wPT09ZS5sZW5ndGg7aS5jTWFwLmZvckVhY2goKGZ1bmN0aW9uKGksYSl7InN0cmluZyI9PXR5cGVvZiBhJiYoYT1jb252ZXJ0Q2lkU3RyaW5nKGksYSwhMCkpO2lmKGE+NjU1MzUpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJNYXggc2l6ZSBvZiBDSUQgaXMgNjUsNTM1Iik7bGV0IHI9LTE7dD9yPWE6dm9pZCAwIT09ZVthXSYmKHI9ZVthXSk7cj49MCYmcjxoJiZoYXNHbHlwaChyKSYmKG1baV09cil9KSl9ZWxzZXtjb25zdCBlPWZ1bmN0aW9uIHJlYWRDbWFwVGFibGUoZSx0LGksYSl7aWYoIWUpe3dhcm4oIk5vIGNtYXAgdGFibGUgYXZhaWxhYmxlLiIpO3JldHVybntwbGF0Zm9ybUlkOi0xLGVuY29kaW5nSWQ6LTEsbWFwcGluZ3M6W10saGFzU2hvcnRDbWFwOiExfX1sZXQgcixzPSh0LnN0YXJ0fHwwKStlLm9mZnNldDt0LnBvcz1zO3Quc2tpcCgyKTtjb25zdCBuPXQuZ2V0VWludDE2KCk7bGV0IG8sZz0hMTtmb3IobGV0IGU9MDtlPG47ZSsrKXtjb25zdCByPXQuZ2V0VWludDE2KCkscz10LmdldFVpbnQxNigpLGM9dC5nZXRJbnQzMigpPj4+MDtsZXQgbD0hMTtpZihvPy5wbGF0Zm9ybUlkIT09cnx8bz8uZW5jb2RpbmdJZCE9PXMpe2lmKDAhPT1yfHwwIT09cyYmMSE9PXMmJjMhPT1zKWlmKDE9PT1yJiYwPT09cylsPSEwO2Vsc2UgaWYoMyE9PXJ8fDEhPT1zfHwhYSYmbyl7aWYoaSYmMz09PXImJjA9PT1zKXtsPSEwO2xldCBpPSEwO2lmKGU8bi0xKXtjb25zdCBlPXQucGVla0J5dGVzKDIpO2ludDE2KGVbMF0sZVsxXSk8ciYmKGk9ITEpfWkmJihnPSEwKX19ZWxzZXtsPSEwO2l8fChnPSEwKX1lbHNlIGw9ITA7bCYmKG89e3BsYXRmb3JtSWQ6cixlbmNvZGluZ0lkOnMsb2Zmc2V0OmN9KTtpZihnKWJyZWFrfX1vJiYodC5wb3M9cytvLm9mZnNldCk7aWYoIW98fC0xPT09dC5wZWVrQnl0ZSgpKXt3YXJuKCJDb3VsZCBub3QgZmluZCBhIHByZWZlcnJlZCBjbWFwIHRhYmxlLiIpO3JldHVybntwbGF0Zm9ybUlkOi0xLGVuY29kaW5nSWQ6LTEsbWFwcGluZ3M6W10saGFzU2hvcnRDbWFwOiExfX1jb25zdCBjPXQuZ2V0VWludDE2KCk7bGV0IGw9ITE7Y29uc3QgaD1bXTtsZXQgQyxRO2lmKDA9PT1jKXt0LnNraXAoNCk7Zm9yKEM9MDtDPDI1NjtDKyspe2NvbnN0IGU9dC5nZXRCeXRlKCk7ZSYmaC5wdXNoKHtjaGFyQ29kZTpDLGdseXBoSWQ6ZX0pfWw9ITB9ZWxzZSBpZigyPT09Yyl7dC5za2lwKDQpO2NvbnN0IGU9W107bGV0IGk9MDtmb3IobGV0IGE9MDthPDI1NjthKyspe2NvbnN0IGE9dC5nZXRVaW50MTYoKT4+MztlLnB1c2goYSk7aT1NYXRoLm1heChhLGkpfWNvbnN0IGE9W107Zm9yKGxldCBlPTA7ZTw9aTtlKyspYS5wdXNoKHtmaXJzdENvZGU6dC5nZXRVaW50MTYoKSxlbnRyeUNvdW50OnQuZ2V0VWludDE2KCksaWREZWx0YTpzaWduZWRJbnQxNih0LmdldEJ5dGUoKSx0LmdldEJ5dGUoKSksaWRSYW5nZVBvczp0LnBvcyt0LmdldFVpbnQxNigpfSk7Zm9yKGxldCBpPTA7aTwyNTY7aSsrKWlmKDA9PT1lW2ldKXt0LnBvcz1hWzBdLmlkUmFuZ2VQb3MrMippO1E9dC5nZXRVaW50MTYoKTtoLnB1c2goe2NoYXJDb2RlOmksZ2x5cGhJZDpRfSl9ZWxzZXtjb25zdCByPWFbZVtpXV07Zm9yKEM9MDtDPHIuZW50cnlDb3VudDtDKyspe2NvbnN0IGU9KGk8PDgpK0Mrci5maXJzdENvZGU7dC5wb3M9ci5pZFJhbmdlUG9zKzIqQztRPXQuZ2V0VWludDE2KCk7MCE9PVEmJihRPShRK3IuaWREZWx0YSklNjU1MzYpO2gucHVzaCh7Y2hhckNvZGU6ZSxnbHlwaElkOlF9KX19fWVsc2UgaWYoND09PWMpe3Quc2tpcCg0KTtjb25zdCBlPXQuZ2V0VWludDE2KCk+PjE7dC5za2lwKDYpO2NvbnN0IGk9W107bGV0IGE7Zm9yKGE9MDthPGU7YSsrKWkucHVzaCh7ZW5kOnQuZ2V0VWludDE2KCl9KTt0LnNraXAoMik7Zm9yKGE9MDthPGU7YSsrKWlbYV0uc3RhcnQ9dC5nZXRVaW50MTYoKTtmb3IoYT0wO2E8ZTthKyspaVthXS5kZWx0YT10LmdldFVpbnQxNigpO2xldCBuLG89MDtmb3IoYT0wO2E8ZTthKyspe3I9aVthXTtjb25zdCBzPXQuZ2V0VWludDE2KCk7aWYocyl7bj0ocz4+MSktKGUtYSk7ci5vZmZzZXRJbmRleD1uO289TWF0aC5tYXgobyxuK3IuZW5kLXIuc3RhcnQrMSl9ZWxzZSByLm9mZnNldEluZGV4PS0xfWNvbnN0IGc9W107Zm9yKEM9MDtDPG87QysrKWcucHVzaCh0LmdldFVpbnQxNigpKTtmb3IoYT0wO2E8ZTthKyspe3I9aVthXTtzPXIuc3RhcnQ7Y29uc3QgZT1yLmVuZCx0PXIuZGVsdGE7bj1yLm9mZnNldEluZGV4O2ZvcihDPXM7Qzw9ZTtDKyspaWYoNjU1MzUhPT1DKXtRPW48MD9DOmdbbitDLXNdO1E9USt0JjY1NTM1O2gucHVzaCh7Y2hhckNvZGU6QyxnbHlwaElkOlF9KX19fWVsc2UgaWYoNj09PWMpe3Quc2tpcCg0KTtjb25zdCBlPXQuZ2V0VWludDE2KCksaT10LmdldFVpbnQxNigpO2ZvcihDPTA7QzxpO0MrKyl7UT10LmdldFVpbnQxNigpO2NvbnN0IGk9ZStDO2gucHVzaCh7Y2hhckNvZGU6aSxnbHlwaElkOlF9KX19ZWxzZXtpZigxMiE9PWMpe3dhcm4oImNtYXAgdGFibGUgaGFzIHVuc3VwcG9ydGVkIGZvcm1hdDogIitjKTtyZXR1cm57cGxhdGZvcm1JZDotMSxlbmNvZGluZ0lkOi0xLG1hcHBpbmdzOltdLGhhc1Nob3J0Q21hcDohMX19e3Quc2tpcCgxMCk7Y29uc3QgZT10LmdldEludDMyKCk+Pj4wO2ZvcihDPTA7QzxlO0MrKyl7Y29uc3QgZT10LmdldEludDMyKCk+Pj4wLGk9dC5nZXRJbnQzMigpPj4+MDtsZXQgYT10LmdldEludDMyKCk+Pj4wO2ZvcihsZXQgdD1lO3Q8PWk7dCsrKWgucHVzaCh7Y2hhckNvZGU6dCxnbHlwaElkOmErK30pfX19aC5zb3J0KChmdW5jdGlvbihlLHQpe3JldHVybiBlLmNoYXJDb2RlLXQuY2hhckNvZGV9KSk7Zm9yKGxldCBlPTE7ZTxoLmxlbmd0aDtlKyspaWYoaFtlLTFdLmNoYXJDb2RlPT09aFtlXS5jaGFyQ29kZSl7aC5zcGxpY2UoZSwxKTtlLS19cmV0dXJue3BsYXRmb3JtSWQ6by5wbGF0Zm9ybUlkLGVuY29kaW5nSWQ6by5lbmNvZGluZ0lkLG1hcHBpbmdzOmgsaGFzU2hvcnRDbWFwOmx9fShuLmNtYXAsdCx0aGlzLmlzU3ltYm9saWNGb250LGkuaGFzRW5jb2RpbmcpLGE9ZS5wbGF0Zm9ybUlkLHI9ZS5lbmNvZGluZ0lkLHM9ZS5tYXBwaW5ncztsZXQgbz1bXSxnPSExOyFpLmhhc0VuY29kaW5nfHwiTWFjUm9tYW5FbmNvZGluZyIhPT1pLmJhc2VFbmNvZGluZ05hbWUmJiJXaW5BbnNpRW5jb2RpbmciIT09aS5iYXNlRW5jb2RpbmdOYW1lfHwobz1nZXRFbmNvZGluZyhpLmJhc2VFbmNvZGluZ05hbWUpKTtpZihpLmhhc0VuY29kaW5nJiYhdGhpcy5pc1N5bWJvbGljRm9udCYmKDM9PT1hJiYxPT09cnx8MT09PWEmJjA9PT1yKSl7Y29uc3QgZT1EaSgpO2ZvcihsZXQgdD0wO3Q8MjU2O3QrKyl7bGV0IG47bj12b2lkIDAhPT10aGlzLmRpZmZlcmVuY2VzW3RdP3RoaXMuZGlmZmVyZW5jZXNbdF06by5sZW5ndGgmJiIiIT09b1t0XT9vW3RdOkJpW3RdO2lmKCFuKWNvbnRpbnVlO2NvbnN0IGc9cmVjb3ZlckdseXBoTmFtZShuLGUpO2xldCBjOzM9PT1hJiYxPT09cj9jPWVbZ106MT09PWEmJjA9PT1yJiYoYz1DaS5pbmRleE9mKGcpKTtpZih2b2lkIDA9PT1jKXtpZighaS5nbHlwaE5hbWVzJiZpLmhhc0luY2x1ZGVkVG9Vbmljb2RlTWFwJiYhKHRoaXMudG9Vbmljb2RlIGluc3RhbmNlb2YgSWRlbnRpdHlUb1VuaWNvZGVNYXApKXtjb25zdCBlPXRoaXMudG9Vbmljb2RlLmdldCh0KTtlJiYoYz1lLmNvZGVQb2ludEF0KDApKX1pZih2b2lkIDA9PT1jKWNvbnRpbnVlfWZvcihjb25zdCBlIG9mIHMpaWYoZS5jaGFyQ29kZT09PWMpe21bdF09ZS5nbHlwaElkO2JyZWFrfX19ZWxzZSBpZigwPT09YSl7Zm9yKGNvbnN0IGUgb2YgcyltW2UuY2hhckNvZGVdPWUuZ2x5cGhJZDtnPSEwfWVsc2UgaWYoMz09PWEmJjA9PT1yKWZvcihjb25zdCBlIG9mIHMpe2xldCB0PWUuY2hhckNvZGU7dD49NjE0NDAmJnQ8PTYxNjk1JiYodCY9MjU1KTttW3RdPWUuZ2x5cGhJZH1lbHNlIGZvcihjb25zdCBlIG9mIHMpbVtlLmNoYXJDb2RlXT1lLmdseXBoSWQ7aWYoaS5nbHlwaE5hbWVzJiYoby5sZW5ndGh8fHRoaXMuZGlmZmVyZW5jZXMubGVuZ3RoKSlmb3IobGV0IGU9MDtlPDI1NjsrK2Upe2lmKCFnJiZ2b2lkIDAhPT1tW2VdKWNvbnRpbnVlO2NvbnN0IHQ9dGhpcy5kaWZmZXJlbmNlc1tlXXx8b1tlXTtpZighdCljb250aW51ZTtjb25zdCBhPWkuZ2x5cGhOYW1lcy5pbmRleE9mKHQpO2E+MCYmaGFzR2x5cGgoYSkmJihtW2VdPWEpfX0wPT09bS5sZW5ndGgmJihtWzBdPTApO2xldCB5PUMtMTtRfHwoeT0wKTtpZighaS5jc3NGb250SW5mbyl7Y29uc3QgZT1hZGp1c3RNYXBwaW5nKG0saGFzR2x5cGgseSx0aGlzLnRvVW5pY29kZSk7dGhpcy50b0ZvbnRDaGFyPWUudG9Gb250Q2hhcjtuLmNtYXA9e3RhZzoiY21hcCIsZGF0YTpjcmVhdGVDbWFwVGFibGUoZS5jaGFyQ29kZVRvR2x5cGhJZCxlLnRvVW5pY29kZUV4dHJhTWFwLEMpfTtuWyJPUy8yIl0mJmZ1bmN0aW9uIHZhbGlkYXRlT1MyVGFibGUoZSx0KXt0LnBvcz0odC5zdGFydHx8MCkrZS5vZmZzZXQ7Y29uc3QgaT10LmdldFVpbnQxNigpO3Quc2tpcCg2MCk7Y29uc3QgYT10LmdldFVpbnQxNigpO2lmKGk8NCYmNzY4JmEpcmV0dXJuITE7aWYodC5nZXRVaW50MTYoKT50LmdldFVpbnQxNigpKXJldHVybiExO3Quc2tpcCg2KTtpZigwPT09dC5nZXRVaW50MTYoKSlyZXR1cm4hMTtlLmRhdGFbOF09ZS5kYXRhWzldPTA7cmV0dXJuITB9KG5bIk9TLzIiXSx0KXx8KG5bIk9TLzIiXT17dGFnOiJPUy8yIixkYXRhOmNyZWF0ZU9TMlRhYmxlKGksZS5jaGFyQ29kZVRvR2x5cGhJZCxwKX0pfWlmKCFjKXRyeXtnPW5ldyBTdHJlYW0oblsiQ0ZGICJdLmRhdGEpO289bmV3IENGRlBhcnNlcihnLGksR2kpLnBhcnNlKCk7by5kdXBsaWNhdGVGaXJzdEdseXBoKCk7Y29uc3QgZT1uZXcgQ0ZGQ29tcGlsZXIobyk7blsiQ0ZGICJdLmRhdGE9ZS5jb21waWxlKCl9Y2F0Y2h7d2FybigiRmFpbGVkIHRvIGNvbXBpbGUgZm9udCAiK2kubG9hZGVkTmFtZSl9aWYobi5uYW1lKXtjb25zdFt0LGFdPXJlYWROYW1lVGFibGUobi5uYW1lKTtuLm5hbWUuZGF0YT1jcmVhdGVOYW1lVGFibGUoZSx0KTt0aGlzLnBzTmFtZT10WzBdWzZdfHxudWxsO2kuY29tcG9zaXRlfHxmdW5jdGlvbiBhZGp1c3RUcnVlVHlwZVRvVW5pY29kZShlLHQsaSl7aWYoZS5pc0ludGVybmFsRm9udClyZXR1cm47aWYoZS5oYXNJbmNsdWRlZFRvVW5pY29kZU1hcClyZXR1cm47aWYoZS5oYXNFbmNvZGluZylyZXR1cm47aWYoZS50b1VuaWNvZGUgaW5zdGFuY2VvZiBJZGVudGl0eVRvVW5pY29kZU1hcClyZXR1cm47aWYoIXQpcmV0dXJuO2lmKDA9PT1pLmxlbmd0aClyZXR1cm47aWYoZS5kZWZhdWx0RW5jb2Rpbmc9PT1RaSlyZXR1cm47Zm9yKGNvbnN0IGUgb2YgaSlpZighaXNXaW5OYW1lUmVjb3JkKGUpKXJldHVybjtjb25zdCBhPVFpLHI9W10scz1EaSgpO2Zvcihjb25zdCBlIGluIGEpe2NvbnN0IHQ9YVtlXTtpZigiIj09PXQpY29udGludWU7Y29uc3QgaT1zW3RdO3ZvaWQgMCE9PWkmJihyW2VdPVN0cmluZy5mcm9tQ2hhckNvZGUoaSkpfXIubGVuZ3RoPjAmJmUudG9Vbmljb2RlLmFtZW5kKHIpfShpLHRoaXMuaXNTeW1ib2xpY0ZvbnQsYSl9ZWxzZSBuLm5hbWU9e3RhZzoibmFtZSIsZGF0YTpjcmVhdGVOYW1lVGFibGUodGhpcy5uYW1lKX07Y29uc3Qgdz1uZXcgT3BlblR5cGVGaWxlQnVpbGRlcihzLnZlcnNpb24pO2Zvcihjb25zdCBlIGluIG4pdy5hZGRUYWJsZShlLG5bZV0uZGF0YSk7cmV0dXJuIHcudG9BcnJheSgpfWNvbnZlcnQoZSx0LGkpe2kuZml4ZWRQaXRjaD0hMTtpLmJ1aWx0SW5FbmNvZGluZyYmZnVuY3Rpb24gYWRqdXN0VHlwZTFUb1VuaWNvZGUoZSx0KXtpZihlLmlzSW50ZXJuYWxGb250KXJldHVybjtpZihlLmhhc0luY2x1ZGVkVG9Vbmljb2RlTWFwKXJldHVybjtpZih0PT09ZS5kZWZhdWx0RW5jb2RpbmcpcmV0dXJuO2lmKGUudG9Vbmljb2RlIGluc3RhbmNlb2YgSWRlbnRpdHlUb1VuaWNvZGVNYXApcmV0dXJuO2NvbnN0IGk9W10sYT1EaSgpO2Zvcihjb25zdCByIGluIHQpe2lmKGUuaGFzRW5jb2RpbmcmJihlLmJhc2VFbmNvZGluZ05hbWV8fHZvaWQgMCE9PWUuZGlmZmVyZW5jZXNbcl0pKWNvbnRpbnVlO2NvbnN0IHM9Z2V0VW5pY29kZUZvckdseXBoKHRbcl0sYSk7LTEhPT1zJiYoaVtyXT1TdHJpbmcuZnJvbUNoYXJDb2RlKHMpKX1pLmxlbmd0aD4wJiZlLnRvVW5pY29kZS5hbWVuZChpKX0oaSxpLmJ1aWx0SW5FbmNvZGluZyk7bGV0IGE9MTt0IGluc3RhbmNlb2YgQ0ZGRm9udCYmKGE9dC5udW1HbHlwaHMtMSk7Y29uc3Qgcz10LmdldEdseXBoTWFwcGluZyhpKTtsZXQgbj1udWxsLG89cyxnPW51bGw7aWYoIWkuY3NzRm9udEluZm8pe249YWRqdXN0TWFwcGluZyhzLHQuaGFzR2x5cGhJZC5iaW5kKHQpLGEsdGhpcy50b1VuaWNvZGUpO3RoaXMudG9Gb250Q2hhcj1uLnRvRm9udENoYXI7bz1uLmNoYXJDb2RlVG9HbHlwaElkO2c9bi50b1VuaWNvZGVFeHRyYU1hcH1jb25zdCBjPXQubnVtR2x5cGhzO2Z1bmN0aW9uIGdldENoYXJDb2RlcyhlLHQpe2xldCBpPW51bGw7Zm9yKGNvbnN0IGEgaW4gZSl0PT09ZVthXSYmKGl8fD1bXSkucHVzaCgwfGEpO3JldHVybiBpfWZ1bmN0aW9uIGNyZWF0ZUNoYXJDb2RlKGUsdCl7Zm9yKGNvbnN0IGkgaW4gZSlpZih0PT09ZVtpXSlyZXR1cm4gMHxpO24uY2hhckNvZGVUb0dseXBoSWRbbi5uZXh0QXZhaWxhYmxlRm9udENoYXJDb2RlXT10O3JldHVybiBuLm5leHRBdmFpbGFibGVGb250Q2hhckNvZGUrK31jb25zdCBsPXQuc2VhY3M7aWYobiYmbD8ubGVuZ3RoKXtjb25zdCBlPWkuZm9udE1hdHJpeHx8cixhPXQuZ2V0Q2hhcnNldCgpLG89T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IHQgaW4gbCl7dHw9MDtjb25zdCBpPWxbdF0scj1CaVtpWzJdXSxnPUJpW2lbM11dLGM9YS5pbmRleE9mKHIpLGg9YS5pbmRleE9mKGcpO2lmKGM8MHx8aDwwKWNvbnRpbnVlO2NvbnN0IEM9e3g6aVswXSplWzBdK2lbMV0qZVsyXStlWzRdLHk6aVswXSplWzFdK2lbMV0qZVszXStlWzVdfSxRPWdldENoYXJDb2RlcyhzLHQpO2lmKFEpZm9yKGNvbnN0IGUgb2YgUSl7Y29uc3QgdD1uLmNoYXJDb2RlVG9HbHlwaElkLGk9Y3JlYXRlQ2hhckNvZGUodCxjKSxhPWNyZWF0ZUNoYXJDb2RlKHQsaCk7b1tlXT17YmFzZUZvbnRDaGFyQ29kZTppLGFjY2VudEZvbnRDaGFyQ29kZTphLGFjY2VudE9mZnNldDpDfX19aS5zZWFjTWFwPW99Y29uc3QgaD1pLmZvbnRNYXRyaXg/MS9NYXRoLm1heCguLi5pLmZvbnRNYXRyaXguc2xpY2UoMCw0KS5tYXAoTWF0aC5hYnMpKToxZTMsQz1uZXcgT3BlblR5cGVGaWxlQnVpbGRlcigiT1RUTyIpO0MuYWRkVGFibGUoIkNGRiAiLHQuZGF0YSk7Qy5hZGRUYWJsZSgiT1MvMiIsY3JlYXRlT1MyVGFibGUoaSxvKSk7Qy5hZGRUYWJsZSgiY21hcCIsY3JlYXRlQ21hcFRhYmxlKG8sZyxjKSk7Qy5hZGRUYWJsZSgiaGVhZCIsIlwwAVwwXDBcMFwwEFwwXDBcMFwwXDBfDzzDtVwwXDAiK3NhZmVTdHJpbmcxNihoKSsiXDBcMFwwXDDCnlx2fidcMFwwXDBcMMKeXHZ+J1wwXDAiK3NhZmVTdHJpbmcxNihpLmRlc2NlbnQpKyIPw78iK3NhZmVTdHJpbmcxNihpLmFzY2VudCkrc3RyaW5nMTYoaS5pdGFsaWNBbmdsZT8yOjApKyJcMBFcMFwwXDBcMFwwXDAiKTtDLmFkZFRhYmxlKCJoaGVhIiwiXDABXDBcMCIrc2FmZVN0cmluZzE2KGkuYXNjZW50KStzYWZlU3RyaW5nMTYoaS5kZXNjZW50KSsiXDBcMMO/w79cMFwwXDBcMFwwXDAiK3NhZmVTdHJpbmcxNihpLmNhcEhlaWdodCkrc2FmZVN0cmluZzE2KE1hdGgudGFuKGkuaXRhbGljQW5nbGUpKmkueEhlaWdodCkrIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIrc3RyaW5nMTYoYykpO0MuYWRkVGFibGUoImhtdHgiLGZ1bmN0aW9uIGZvbnRGaWVsZHNIbXR4KCl7Y29uc3QgZT10LmNoYXJzdHJpbmdzLGk9dC5jZmY/dC5jZmYud2lkdGhzOm51bGw7bGV0IGE9IlwwXDBcMFwwIjtmb3IobGV0IHQ9MSxyPWM7dDxyO3QrKyl7bGV0IHI9MDtpZihlKXtjb25zdCBpPWVbdC0xXTtyPSJ3aWR0aCJpbiBpP2kud2lkdGg6MH1lbHNlIGkmJihyPU1hdGguY2VpbChpW3RdfHwwKSk7YSs9c3RyaW5nMTYocikrc3RyaW5nMTYoMCl9cmV0dXJuIGF9KCkpO0MuYWRkVGFibGUoIm1heHAiLCJcMFwwUFwwIitzdHJpbmcxNihjKSk7Qy5hZGRUYWJsZSgibmFtZSIsY3JlYXRlTmFtZVRhYmxlKGUpKTtDLmFkZFRhYmxlKCJwb3N0IixjcmVhdGVQb3N0VGFibGUoaSkpO3JldHVybiBDLnRvQXJyYXkoKX1nZXQgX3NwYWNlV2lkdGgoKXtjb25zdCBlPVsic3BhY2UiLCJtaW51cyIsIm9uZSIsImkiLCJJIl07bGV0IHQ7Zm9yKGNvbnN0IGkgb2YgZSl7aWYoaSBpbiB0aGlzLndpZHRocyl7dD10aGlzLndpZHRoc1tpXTticmVha31jb25zdCBlPURpKClbaV07bGV0IGE9MDtpZih0aGlzLmNvbXBvc2l0ZSYmdGhpcy5jTWFwLmNvbnRhaW5zKGUpKXthPXRoaXMuY01hcC5sb29rdXAoZSk7InN0cmluZyI9PXR5cGVvZiBhJiYoYT1jb252ZXJ0Q2lkU3RyaW5nKGUsYSkpfSFhJiZ0aGlzLnRvVW5pY29kZSYmKGE9dGhpcy50b1VuaWNvZGUuY2hhckNvZGVPZihlKSk7YTw9MCYmKGE9ZSk7dD10aGlzLndpZHRoc1thXTtpZih0KWJyZWFrfXJldHVybiBzaGFkb3codGhpcywiX3NwYWNlV2lkdGgiLHR8fHRoaXMuZGVmYXVsdFdpZHRoKX1fY2hhclRvR2x5cGgoZSx0PSExKXtsZXQgaSxhLHIscz10aGlzLl9nbHlwaENhY2hlW2VdO2lmKHM/LmlzU3BhY2U9PT10KXJldHVybiBzO2xldCBuPWU7aWYodGhpcy5jTWFwPy5jb250YWlucyhlKSl7bj10aGlzLmNNYXAubG9va3VwKGUpOyJzdHJpbmciPT10eXBlb2YgbiYmKG49Y29udmVydENpZFN0cmluZyhlLG4pKX1hPXRoaXMud2lkdGhzW25dOyJudW1iZXIiIT10eXBlb2YgYSYmKGE9dGhpcy5kZWZhdWx0V2lkdGgpO2NvbnN0IG89dGhpcy52bWV0cmljcz8uW25dO2xldCBnPXRoaXMudG9Vbmljb2RlLmdldChlKXx8ZTsibnVtYmVyIj09dHlwZW9mIGcmJihnPVN0cmluZy5mcm9tQ2hhckNvZGUoZykpO2xldCBjPXZvaWQgMCE9PXRoaXMudG9Gb250Q2hhcltlXTtpPXRoaXMudG9Gb250Q2hhcltlXXx8ZTtpZih0aGlzLm1pc3NpbmdGaWxlKXtjb25zdCB0PXRoaXMuZGlmZmVyZW5jZXNbZV18fHRoaXMuZGVmYXVsdEVuY29kaW5nW2VdO2lmKCgiLm5vdGRlZiI9PT10fHwiIj09PXQpJiYiVHlwZTEiPT09dGhpcy50eXBlKXtpPTMyO2lmKCIiPT09dCl7YXx8PXRoaXMuX3NwYWNlV2lkdGg7Zz1TdHJpbmcuZnJvbUNoYXJDb2RlKGkpfX1pPWZ1bmN0aW9uIG1hcFNwZWNpYWxVbmljb2RlVmFsdWVzKGUpe3JldHVybiBlPj02NTUyMCYmZTw9NjU1MzU/MDplPj02Mjk3NiYmZTw9NjM3NDM/U2koKVtlXXx8ZToxNzM9PT1lPzQ1OmV9KGkpfXRoaXMuaXNUeXBlM0ZvbnQmJihyPWkpO2xldCBsPW51bGw7aWYodGhpcy5zZWFjTWFwPy5bZV0pe2M9ITA7Y29uc3QgdD10aGlzLnNlYWNNYXBbZV07aT10LmJhc2VGb250Q2hhckNvZGU7bD17Zm9udENoYXI6U3RyaW5nLmZyb21Db2RlUG9pbnQodC5hY2NlbnRGb250Q2hhckNvZGUpLG9mZnNldDp0LmFjY2VudE9mZnNldH19bGV0IGg9IiI7Im51bWJlciI9PXR5cGVvZiBpJiYoaTw9MTExNDExMT9oPVN0cmluZy5mcm9tQ29kZVBvaW50KGkpOndhcm4oYGNoYXJUb0dseXBoIC0gaW52YWxpZCBmb250Q2hhckNvZGU6ICR7aX1gKSk7aWYodGhpcy5taXNzaW5nRmlsZSYmdGhpcy52ZXJ0aWNhbCYmMT09PWgubGVuZ3RoKXtjb25zdCBlPVlpKClbaC5jaGFyQ29kZUF0KDApXTtlJiYoaD1nPVN0cmluZy5mcm9tQ2hhckNvZGUoZSkpfXM9bmV3IGZvbnRzX0dseXBoKGUsaCxnLGwsYSxvLHIsdCxjKTtyZXR1cm4gdGhpcy5fZ2x5cGhDYWNoZVtlXT1zfWNoYXJzVG9HbHlwaHMoZSl7bGV0IHQ9dGhpcy5fY2hhcnNDYWNoZVtlXTtpZih0KXJldHVybiB0O3Q9W107aWYodGhpcy5jTWFwKXtjb25zdCBpPU9iamVjdC5jcmVhdGUobnVsbCksYT1lLmxlbmd0aDtsZXQgcj0wO2Zvcig7cjxhOyl7dGhpcy5jTWFwLnJlYWRDaGFyQ29kZShlLHIsaSk7Y29uc3R7Y2hhcmNvZGU6YSxsZW5ndGg6c309aTtyKz1zO2NvbnN0IG49dGhpcy5fY2hhclRvR2x5cGgoYSwxPT09cyYmMzI9PT1lLmNoYXJDb2RlQXQoci0xKSk7dC5wdXNoKG4pfX1lbHNlIGZvcihsZXQgaT0wLGE9ZS5sZW5ndGg7aTxhOysraSl7Y29uc3QgYT1lLmNoYXJDb2RlQXQoaSkscj10aGlzLl9jaGFyVG9HbHlwaChhLDMyPT09YSk7dC5wdXNoKHIpfXJldHVybiB0aGlzLl9jaGFyc0NhY2hlW2VdPXR9Z2V0Q2hhclBvc2l0aW9ucyhlKXtjb25zdCB0PVtdO2lmKHRoaXMuY01hcCl7Y29uc3QgaT1PYmplY3QuY3JlYXRlKG51bGwpO2xldCBhPTA7Zm9yKDthPGUubGVuZ3RoOyl7dGhpcy5jTWFwLnJlYWRDaGFyQ29kZShlLGEsaSk7Y29uc3Qgcj1pLmxlbmd0aDt0LnB1c2goW2EsYStyXSk7YSs9cn19ZWxzZSBmb3IobGV0IGk9MCxhPWUubGVuZ3RoO2k8YTsrK2kpdC5wdXNoKFtpLGkrMV0pO3JldHVybiB0fWdldCBnbHlwaENhY2hlVmFsdWVzKCl7cmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5fZ2x5cGhDYWNoZSl9ZW5jb2RlU3RyaW5nKGUpe2NvbnN0IHQ9W10saT1bXSxoYXNDdXJyZW50QnVmRXJyb3JzPSgpPT50Lmxlbmd0aCUyPT0xLGE9dGhpcy50b1VuaWNvZGUgaW5zdGFuY2VvZiBJZGVudGl0eVRvVW5pY29kZU1hcD9lPT50aGlzLnRvVW5pY29kZS5jaGFyQ29kZU9mKGUpOmU9PnRoaXMudG9Vbmljb2RlLmNoYXJDb2RlT2YoU3RyaW5nLmZyb21Db2RlUG9pbnQoZSkpO2ZvcihsZXQgcj0wLHM9ZS5sZW5ndGg7cjxzO3IrKyl7Y29uc3Qgcz1lLmNvZGVQb2ludEF0KHIpO3M+NTUyOTUmJihzPDU3MzQ0fHxzPjY1NTMzKSYmcisrO2lmKHRoaXMudG9Vbmljb2RlKXtjb25zdCBlPWEocyk7aWYoLTEhPT1lKXtpZihoYXNDdXJyZW50QnVmRXJyb3JzKCkpe3QucHVzaChpLmpvaW4oIiIpKTtpLmxlbmd0aD0wfWZvcihsZXQgdD0odGhpcy5jTWFwP3RoaXMuY01hcC5nZXRDaGFyQ29kZUxlbmd0aChlKToxKS0xO3Q+PTA7dC0tKWkucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGU+PjgqdCYyNTUpKTtjb250aW51ZX19aWYoIWhhc0N1cnJlbnRCdWZFcnJvcnMoKSl7dC5wdXNoKGkuam9pbigiIikpO2kubGVuZ3RoPTB9aS5wdXNoKFN0cmluZy5mcm9tQ29kZVBvaW50KHMpKX10LnB1c2goaS5qb2luKCIiKSk7cmV0dXJuIHR9fWNsYXNzIEVycm9yRm9udHtjb25zdHJ1Y3RvcihlKXt0aGlzLmVycm9yPWU7dGhpcy5sb2FkZWROYW1lPSJnX2ZvbnRfZXJyb3IiO3RoaXMubWlzc2luZ0ZpbGU9ITB9Y2hhcnNUb0dseXBocygpe3JldHVybltdfWVuY29kZVN0cmluZyhlKXtyZXR1cm5bZV19ZXhwb3J0RGF0YShlPSExKXtyZXR1cm57ZXJyb3I6dGhpcy5lcnJvcn19fWNvbnN0IGxhPTIsaGE9MyxDYT00LEJhPTUsUWE9NixFYT03O2NsYXNzIFBhdHRlcm57Y29uc3RydWN0b3IoKXt1bnJlYWNoYWJsZSgiQ2Fubm90IGluaXRpYWxpemUgUGF0dGVybi4iKX1zdGF0aWMgcGFyc2VTaGFkaW5nKGUsdCxpLGEscil7Y29uc3Qgcz1lIGluc3RhbmNlb2YgQmFzZVN0cmVhbT9lLmRpY3Q6ZSxuPXMuZ2V0KCJTaGFkaW5nVHlwZSIpO3RyeXtzd2l0Y2gobil7Y2FzZSBsYTpjYXNlIGhhOnJldHVybiBuZXcgUmFkaWFsQXhpYWxTaGFkaW5nKHMsdCxpLGEscik7Y2FzZSBDYTpjYXNlIEJhOmNhc2UgUWE6Y2FzZSBFYTpyZXR1cm4gbmV3IE1lc2hTaGFkaW5nKGUsdCxpLGEscik7ZGVmYXVsdDp0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlVuc3VwcG9ydGVkIFNoYWRpbmdUeXBlOiAiK24pfX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pdGhyb3cgZTt3YXJuKGUpO3JldHVybiBuZXcgRHVtbXlTaGFkaW5nfX19Y2xhc3MgQmFzZVNoYWRpbmd7c3RhdGljIFNNQUxMX05VTUJFUj0xZS02O2dldElSKCl7dW5yZWFjaGFibGUoIkFic3RyYWN0IG1ldGhvZCBgZ2V0SVJgIGNhbGxlZC4iKX19Y2xhc3MgUmFkaWFsQXhpYWxTaGFkaW5nIGV4dGVuZHMgQmFzZVNoYWRpbmd7Y29uc3RydWN0b3IoZSx0LGksYSxyKXtzdXBlcigpO3RoaXMuc2hhZGluZ1R5cGU9ZS5nZXQoIlNoYWRpbmdUeXBlIik7bGV0IHM9MDt0aGlzLnNoYWRpbmdUeXBlPT09bGE/cz00OnRoaXMuc2hhZGluZ1R5cGU9PT1oYSYmKHM9Nik7dGhpcy5jb29yZHNBcnI9ZS5nZXRBcnJheSgiQ29vcmRzIik7aWYoIWlzTnVtYmVyQXJyYXkodGhpcy5jb29yZHNBcnIscykpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJSYWRpYWxBeGlhbFNoYWRpbmc6IEludmFsaWQgL0Nvb3JkcyBhcnJheS4iKTtjb25zdCBuPUNvbG9yU3BhY2UucGFyc2Uoe2NzOmUuZ2V0UmF3KCJDUyIpfHxlLmdldFJhdygiQ29sb3JTcGFjZSIpLHhyZWY6dCxyZXNvdXJjZXM6aSxwZGZGdW5jdGlvbkZhY3Rvcnk6YSxsb2NhbENvbG9yU3BhY2VDYWNoZTpyfSk7dGhpcy5iYm94PWxvb2t1cE5vcm1hbFJlY3QoZS5nZXRBcnJheSgiQkJveCIpLG51bGwpO2xldCBvPTAsZz0xO2NvbnN0IGM9ZS5nZXRBcnJheSgiRG9tYWluIik7aXNOdW1iZXJBcnJheShjLDIpJiYoW28sZ109Yyk7bGV0IGw9ITEsaD0hMTtjb25zdCBDPWUuZ2V0QXJyYXkoIkV4dGVuZCIpOyhmdW5jdGlvbiBpc0Jvb2xlYW5BcnJheShlLHQpe3JldHVybiBBcnJheS5pc0FycmF5KGUpJiYobnVsbD09PXR8fGUubGVuZ3RoPT09dCkmJmUuZXZlcnkoKGU9PiJib29sZWFuIj09dHlwZW9mIGUpKX0pKEMsMikmJihbbCxoXT1DKTtpZighKHRoaXMuc2hhZGluZ1R5cGUhPT1oYXx8bCYmaCkpe2NvbnN0W2UsdCxpLGEscixzXT10aGlzLmNvb3Jkc0FycixuPU1hdGguaHlwb3QoZS1hLHQtcik7aTw9cytuJiZzPD1pK24mJndhcm4oIlVuc3VwcG9ydGVkIHJhZGlhbCBncmFkaWVudC4iKX10aGlzLmV4dGVuZFN0YXJ0PWw7dGhpcy5leHRlbmRFbmQ9aDtjb25zdCBRPWUuZ2V0UmF3KCJGdW5jdGlvbiIpLEU9YS5jcmVhdGVGcm9tQXJyYXkoUSksdT0oZy1vKS84NDAsZD10aGlzLmNvbG9yU3RvcHM9W107aWYobz49Z3x8dTw9MCl7aW5mbygiQmFkIHNoYWRpbmcgZG9tYWluLiIpO3JldHVybn1jb25zdCBmPW5ldyBGbG9hdDMyQXJyYXkobi5udW1Db21wcykscD1uZXcgRmxvYXQzMkFycmF5KDEpO2xldCBtLHk9MDtwWzBdPW87RShwLDAsZiwwKTtsZXQgdz1uLmdldFJnYihmLDApO2NvbnN0IGI9VXRpbC5tYWtlSGV4Q29sb3Iod1swXSx3WzFdLHdbMl0pO2QucHVzaChbMCxiXSk7bGV0IEQ9MTtwWzBdPW8rdTtFKHAsMCxmLDApO2xldCBTPW4uZ2V0UmdiKGYsMCksaz1TWzBdLXdbMF0rMSxSPVNbMV0td1sxXSsxLE49U1syXS13WzJdKzEsRz1TWzBdLXdbMF0tMSxNPVNbMV0td1sxXS0xLFU9U1syXS13WzJdLTE7Zm9yKGxldCBlPTI7ZTw4NDA7ZSsrKXtwWzBdPW8rZSp1O0UocCwwLGYsMCk7bT1uLmdldFJnYihmLDApO2NvbnN0IHQ9ZS15O2s9TWF0aC5taW4oaywobVswXS13WzBdKzEpL3QpO1I9TWF0aC5taW4oUiwobVsxXS13WzFdKzEpL3QpO049TWF0aC5taW4oTiwobVsyXS13WzJdKzEpL3QpO0c9TWF0aC5tYXgoRywobVswXS13WzBdLTEpL3QpO009TWF0aC5tYXgoTSwobVsxXS13WzFdLTEpL3QpO1U9TWF0aC5tYXgoVSwobVsyXS13WzJdLTEpL3QpO2lmKCEoRzw9ayYmTTw9UiYmVTw9Tikpe2NvbnN0IGU9VXRpbC5tYWtlSGV4Q29sb3IoU1swXSxTWzFdLFNbMl0pO2QucHVzaChbRC84NDAsZV0pO2s9bVswXS1TWzBdKzE7Uj1tWzFdLVNbMV0rMTtOPW1bMl0tU1syXSsxO0c9bVswXS1TWzBdLTE7TT1tWzFdLVNbMV0tMTtVPW1bMl0tU1syXS0xO3k9RDt3PVN9RD1lO1M9bX1jb25zdCB4PVV0aWwubWFrZUhleENvbG9yKFNbMF0sU1sxXSxTWzJdKTtkLnB1c2goWzEseF0pO2xldCBMPSJ0cmFuc3BhcmVudCI7aWYoZS5oYXMoIkJhY2tncm91bmQiKSl7bT1uLmdldFJnYihlLmdldCgiQmFja2dyb3VuZCIpLDApO0w9VXRpbC5tYWtlSGV4Q29sb3IobVswXSxtWzFdLG1bMl0pfWlmKCFsKXtkLnVuc2hpZnQoWzAsTF0pO2RbMV1bMF0rPUJhc2VTaGFkaW5nLlNNQUxMX05VTUJFUn1pZighaCl7ZC5hdCgtMSlbMF0tPUJhc2VTaGFkaW5nLlNNQUxMX05VTUJFUjtkLnB1c2goWzEsTF0pfXRoaXMuY29sb3JTdG9wcz1kfWdldElSKCl7Y29uc3R7Y29vcmRzQXJyOmUsc2hhZGluZ1R5cGU6dH09dGhpcztsZXQgaSxhLHIscyxuO2lmKHQ9PT1sYSl7YT1bZVswXSxlWzFdXTtyPVtlWzJdLGVbM11dO3M9bnVsbDtuPW51bGw7aT0iYXhpYWwifWVsc2UgaWYodD09PWhhKXthPVtlWzBdLGVbMV1dO3I9W2VbM10sZVs0XV07cz1lWzJdO249ZVs1XTtpPSJyYWRpYWwifWVsc2UgdW5yZWFjaGFibGUoYGdldFBhdHRlcm4gdHlwZSB1bmtub3duOiAke3R9YCk7cmV0dXJuWyJSYWRpYWxBeGlhbCIsaSx0aGlzLmJib3gsdGhpcy5jb2xvclN0b3BzLGEscixzLG5dfX1jbGFzcyBNZXNoU3RyZWFtUmVhZGVye2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5zdHJlYW09ZTt0aGlzLmNvbnRleHQ9dDt0aGlzLmJ1ZmZlcj0wO3RoaXMuYnVmZmVyTGVuZ3RoPTA7Y29uc3QgaT10Lm51bUNvbXBzO3RoaXMudG1wQ29tcHNCdWY9bmV3IEZsb2F0MzJBcnJheShpKTtjb25zdCBhPXQuY29sb3JTcGFjZS5udW1Db21wczt0aGlzLnRtcENzQ29tcHNCdWY9dC5jb2xvckZuP25ldyBGbG9hdDMyQXJyYXkoYSk6dGhpcy50bXBDb21wc0J1Zn1nZXQgaGFzRGF0YSgpe2lmKHRoaXMuc3RyZWFtLmVuZClyZXR1cm4gdGhpcy5zdHJlYW0ucG9zPHRoaXMuc3RyZWFtLmVuZDtpZih0aGlzLmJ1ZmZlckxlbmd0aD4wKXJldHVybiEwO2NvbnN0IGU9dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpO2lmKGU8MClyZXR1cm4hMTt0aGlzLmJ1ZmZlcj1lO3RoaXMuYnVmZmVyTGVuZ3RoPTg7cmV0dXJuITB9cmVhZEJpdHMoZSl7bGV0IHQ9dGhpcy5idWZmZXIsaT10aGlzLmJ1ZmZlckxlbmd0aDtpZigzMj09PWUpe2lmKDA9PT1pKXJldHVybih0aGlzLnN0cmVhbS5nZXRCeXRlKCk8PDI0fHRoaXMuc3RyZWFtLmdldEJ5dGUoKTw8MTZ8dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpPDw4fHRoaXMuc3RyZWFtLmdldEJ5dGUoKSk+Pj4wO3Q9dDw8MjR8dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpPDwxNnx0aGlzLnN0cmVhbS5nZXRCeXRlKCk8PDh8dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpO2NvbnN0IGU9dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpO3RoaXMuYnVmZmVyPWUmKDE8PGkpLTE7cmV0dXJuKHQ8PDgtaXwoMjU1JmUpPj5pKT4+PjB9aWYoOD09PWUmJjA9PT1pKXJldHVybiB0aGlzLnN0cmVhbS5nZXRCeXRlKCk7Zm9yKDtpPGU7KXt0PXQ8PDh8dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpO2krPTh9aS09ZTt0aGlzLmJ1ZmZlckxlbmd0aD1pO3RoaXMuYnVmZmVyPXQmKDE8PGkpLTE7cmV0dXJuIHQ+Pml9YWxpZ24oKXt0aGlzLmJ1ZmZlcj0wO3RoaXMuYnVmZmVyTGVuZ3RoPTB9cmVhZEZsYWcoKXtyZXR1cm4gdGhpcy5yZWFkQml0cyh0aGlzLmNvbnRleHQuYml0c1BlckZsYWcpfXJlYWRDb29yZGluYXRlKCl7Y29uc3QgZT10aGlzLmNvbnRleHQuYml0c1BlckNvb3JkaW5hdGUsdD10aGlzLnJlYWRCaXRzKGUpLGk9dGhpcy5yZWFkQml0cyhlKSxhPXRoaXMuY29udGV4dC5kZWNvZGUscj1lPDMyPzEvKCgxPDxlKS0xKToyLjMyODMwNjQzNjUzODY5NjNlLTEwO3JldHVyblt0KnIqKGFbMV0tYVswXSkrYVswXSxpKnIqKGFbM10tYVsyXSkrYVsyXV19cmVhZENvbXBvbmVudHMoKXtjb25zdCBlPXRoaXMuY29udGV4dC5udW1Db21wcyx0PXRoaXMuY29udGV4dC5iaXRzUGVyQ29tcG9uZW50LGk9dDwzMj8xLygoMTw8dCktMSk6Mi4zMjgzMDY0MzY1Mzg2OTYzZS0xMCxhPXRoaXMuY29udGV4dC5kZWNvZGUscj10aGlzLnRtcENvbXBzQnVmO2ZvcihsZXQgcz0wLG49NDtzPGU7cysrLG4rPTIpe2NvbnN0IGU9dGhpcy5yZWFkQml0cyh0KTtyW3NdPWUqaSooYVtuKzFdLWFbbl0pK2Fbbl19Y29uc3Qgcz10aGlzLnRtcENzQ29tcHNCdWY7dGhpcy5jb250ZXh0LmNvbG9yRm4mJnRoaXMuY29udGV4dC5jb2xvckZuKHIsMCxzLDApO3JldHVybiB0aGlzLmNvbnRleHQuY29sb3JTcGFjZS5nZXRSZ2IocywwKX19bGV0IHVhPU9iamVjdC5jcmVhdGUobnVsbCk7ZnVuY3Rpb24gZ2V0QihlKXtyZXR1cm4gdWFbZV18fD1mdW5jdGlvbiBidWlsZEIoZSl7Y29uc3QgdD1bXTtmb3IobGV0IGk9MDtpPD1lO2krKyl7Y29uc3QgYT1pL2Uscj0xLWE7dC5wdXNoKG5ldyBGbG9hdDMyQXJyYXkoW3IqKjMsMyphKnIqKjIsMyphKioyKnIsYSoqM10pKX1yZXR1cm4gdH0oZSl9Y2xhc3MgTWVzaFNoYWRpbmcgZXh0ZW5kcyBCYXNlU2hhZGluZ3tzdGF0aWMgTUlOX1NQTElUX1BBVENIX0NIVU5LU19BTU9VTlQ9MztzdGF0aWMgTUFYX1NQTElUX1BBVENIX0NIVU5LU19BTU9VTlQ9MjA7c3RhdGljIFRSSUFOR0xFX0RFTlNJVFk9MjA7Y29uc3RydWN0b3IoZSx0LGksYSxyKXtzdXBlcigpO2lmKCEoZSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pKXRocm93IG5ldyBGb3JtYXRFcnJvcigiTWVzaCBkYXRhIGlzIG5vdCBhIHN0cmVhbSIpO2NvbnN0IHM9ZS5kaWN0O3RoaXMuc2hhZGluZ1R5cGU9cy5nZXQoIlNoYWRpbmdUeXBlIik7dGhpcy5iYm94PWxvb2t1cE5vcm1hbFJlY3Qocy5nZXRBcnJheSgiQkJveCIpLG51bGwpO2NvbnN0IG49Q29sb3JTcGFjZS5wYXJzZSh7Y3M6cy5nZXRSYXcoIkNTIil8fHMuZ2V0UmF3KCJDb2xvclNwYWNlIikseHJlZjp0LHJlc291cmNlczppLHBkZkZ1bmN0aW9uRmFjdG9yeTphLGxvY2FsQ29sb3JTcGFjZUNhY2hlOnJ9KTt0aGlzLmJhY2tncm91bmQ9cy5oYXMoIkJhY2tncm91bmQiKT9uLmdldFJnYihzLmdldCgiQmFja2dyb3VuZCIpLDApOm51bGw7Y29uc3Qgbz1zLmdldFJhdygiRnVuY3Rpb24iKSxnPW8/YS5jcmVhdGVGcm9tQXJyYXkobyk6bnVsbDt0aGlzLmNvb3Jkcz1bXTt0aGlzLmNvbG9ycz1bXTt0aGlzLmZpZ3VyZXM9W107Y29uc3QgYz17Yml0c1BlckNvb3JkaW5hdGU6cy5nZXQoIkJpdHNQZXJDb29yZGluYXRlIiksYml0c1BlckNvbXBvbmVudDpzLmdldCgiQml0c1BlckNvbXBvbmVudCIpLGJpdHNQZXJGbGFnOnMuZ2V0KCJCaXRzUGVyRmxhZyIpLGRlY29kZTpzLmdldEFycmF5KCJEZWNvZGUiKSxjb2xvckZuOmcsY29sb3JTcGFjZTpuLG51bUNvbXBzOmc/MTpuLm51bUNvbXBzfSxsPW5ldyBNZXNoU3RyZWFtUmVhZGVyKGUsYyk7bGV0IGg9ITE7c3dpdGNoKHRoaXMuc2hhZGluZ1R5cGUpe2Nhc2UgQ2E6dGhpcy5fZGVjb2RlVHlwZTRTaGFkaW5nKGwpO2JyZWFrO2Nhc2UgQmE6Y29uc3QgZT0wfHMuZ2V0KCJWZXJ0aWNlc1BlclJvdyIpO2lmKGU8Mil0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgVmVydGljZXNQZXJSb3ciKTt0aGlzLl9kZWNvZGVUeXBlNVNoYWRpbmcobCxlKTticmVhaztjYXNlIFFhOnRoaXMuX2RlY29kZVR5cGU2U2hhZGluZyhsKTtoPSEwO2JyZWFrO2Nhc2UgRWE6dGhpcy5fZGVjb2RlVHlwZTdTaGFkaW5nKGwpO2g9ITA7YnJlYWs7ZGVmYXVsdDp1bnJlYWNoYWJsZSgiVW5zdXBwb3J0ZWQgbWVzaCB0eXBlLiIpfWlmKGgpe3RoaXMuX3VwZGF0ZUJvdW5kcygpO2ZvcihsZXQgZT0wLHQ9dGhpcy5maWd1cmVzLmxlbmd0aDtlPHQ7ZSsrKXRoaXMuX2J1aWxkRmlndXJlRnJvbVBhdGNoKGUpfXRoaXMuX3VwZGF0ZUJvdW5kcygpO3RoaXMuX3BhY2tEYXRhKCl9X2RlY29kZVR5cGU0U2hhZGluZyhlKXtjb25zdCB0PXRoaXMuY29vcmRzLGk9dGhpcy5jb2xvcnMsYT1bXSxyPVtdO2xldCBzPTA7Zm9yKDtlLmhhc0RhdGE7KXtjb25zdCBuPWUucmVhZEZsYWcoKSxvPWUucmVhZENvb3JkaW5hdGUoKSxnPWUucmVhZENvbXBvbmVudHMoKTtpZigwPT09cyl7aWYoISgwPD1uJiZuPD0yKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlVua25vd24gdHlwZTQgZmxhZyIpO3N3aXRjaChuKXtjYXNlIDA6cz0zO2JyZWFrO2Nhc2UgMTpyLnB1c2goci5hdCgtMiksci5hdCgtMSkpO3M9MTticmVhaztjYXNlIDI6ci5wdXNoKHIuYXQoLTMpLHIuYXQoLTEpKTtzPTF9YS5wdXNoKG4pfXIucHVzaCh0Lmxlbmd0aCk7dC5wdXNoKG8pO2kucHVzaChnKTtzLS07ZS5hbGlnbigpfXRoaXMuZmlndXJlcy5wdXNoKHt0eXBlOiJ0cmlhbmdsZXMiLGNvb3JkczpuZXcgSW50MzJBcnJheShyKSxjb2xvcnM6bmV3IEludDMyQXJyYXkocil9KX1fZGVjb2RlVHlwZTVTaGFkaW5nKGUsdCl7Y29uc3QgaT10aGlzLmNvb3JkcyxhPXRoaXMuY29sb3JzLHI9W107Zm9yKDtlLmhhc0RhdGE7KXtjb25zdCB0PWUucmVhZENvb3JkaW5hdGUoKSxzPWUucmVhZENvbXBvbmVudHMoKTtyLnB1c2goaS5sZW5ndGgpO2kucHVzaCh0KTthLnB1c2gocyl9dGhpcy5maWd1cmVzLnB1c2goe3R5cGU6ImxhdHRpY2UiLGNvb3JkczpuZXcgSW50MzJBcnJheShyKSxjb2xvcnM6bmV3IEludDMyQXJyYXkociksdmVydGljZXNQZXJSb3c6dH0pfV9kZWNvZGVUeXBlNlNoYWRpbmcoZSl7Y29uc3QgdD10aGlzLmNvb3JkcyxpPXRoaXMuY29sb3JzLGE9bmV3IEludDMyQXJyYXkoMTYpLHI9bmV3IEludDMyQXJyYXkoNCk7Zm9yKDtlLmhhc0RhdGE7KXtjb25zdCBzPWUucmVhZEZsYWcoKTtpZighKDA8PXMmJnM8PTMpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiVW5rbm93biB0eXBlNiBmbGFnIik7Y29uc3Qgbj10Lmxlbmd0aDtmb3IobGV0IGk9MCxhPTAhPT1zPzg6MTI7aTxhO2krKyl0LnB1c2goZS5yZWFkQ29vcmRpbmF0ZSgpKTtjb25zdCBvPWkubGVuZ3RoO2ZvcihsZXQgdD0wLGE9MCE9PXM/Mjo0O3Q8YTt0KyspaS5wdXNoKGUucmVhZENvbXBvbmVudHMoKSk7bGV0IGcsYyxsLGg7c3dpdGNoKHMpe2Nhc2UgMDphWzEyXT1uKzM7YVsxM109bis0O2FbMTRdPW4rNTthWzE1XT1uKzY7YVs4XT1uKzI7YVsxMV09bis3O2FbNF09bisxO2FbN109bis4O2FbMF09bjthWzFdPW4rMTE7YVsyXT1uKzEwO2FbM109bis5O3JbMl09bysxO3JbM109bysyO3JbMF09bztyWzFdPW8rMzticmVhaztjYXNlIDE6Zz1hWzEyXTtjPWFbMTNdO2w9YVsxNF07aD1hWzE1XTthWzEyXT1oO2FbMTNdPW4rMDthWzE0XT1uKzE7YVsxNV09bisyO2FbOF09bDthWzExXT1uKzM7YVs0XT1jO2FbN109bis0O2FbMF09ZzthWzFdPW4rNzthWzJdPW4rNjthWzNdPW4rNTtnPXJbMl07Yz1yWzNdO3JbMl09YztyWzNdPW87clswXT1nO3JbMV09bysxO2JyZWFrO2Nhc2UgMjpnPWFbMTVdO2M9YVsxMV07YVsxMl09YVszXTthWzEzXT1uKzA7YVsxNF09bisxO2FbMTVdPW4rMjthWzhdPWFbN107YVsxMV09biszO2FbNF09YzthWzddPW4rNDthWzBdPWc7YVsxXT1uKzc7YVsyXT1uKzY7YVszXT1uKzU7Zz1yWzNdO3JbMl09clsxXTtyWzNdPW87clswXT1nO3JbMV09bysxO2JyZWFrO2Nhc2UgMzphWzEyXT1hWzBdO2FbMTNdPW4rMDthWzE0XT1uKzE7YVsxNV09bisyO2FbOF09YVsxXTthWzExXT1uKzM7YVs0XT1hWzJdO2FbN109bis0O2FbMF09YVszXTthWzFdPW4rNzthWzJdPW4rNjthWzNdPW4rNTtyWzJdPXJbMF07clszXT1vO3JbMF09clsxXTtyWzFdPW8rMX1hWzVdPXQubGVuZ3RoO3QucHVzaChbKC00KnRbYVswXV1bMF0tdFthWzE1XV1bMF0rNioodFthWzRdXVswXSt0W2FbMV1dWzBdKS0yKih0W2FbMTJdXVswXSt0W2FbM11dWzBdKSszKih0W2FbMTNdXVswXSt0W2FbN11dWzBdKSkvOSwoLTQqdFthWzBdXVsxXS10W2FbMTVdXVsxXSs2Kih0W2FbNF1dWzFdK3RbYVsxXV1bMV0pLTIqKHRbYVsxMl1dWzFdK3RbYVszXV1bMV0pKzMqKHRbYVsxM11dWzFdK3RbYVs3XV1bMV0pKS85XSk7YVs2XT10Lmxlbmd0aDt0LnB1c2goWygtNCp0W2FbM11dWzBdLXRbYVsxMl1dWzBdKzYqKHRbYVsyXV1bMF0rdFthWzddXVswXSktMioodFthWzBdXVswXSt0W2FbMTVdXVswXSkrMyoodFthWzRdXVswXSt0W2FbMTRdXVswXSkpLzksKC00KnRbYVszXV1bMV0tdFthWzEyXV1bMV0rNioodFthWzJdXVsxXSt0W2FbN11dWzFdKS0yKih0W2FbMF1dWzFdK3RbYVsxNV1dWzFdKSszKih0W2FbNF1dWzFdK3RbYVsxNF1dWzFdKSkvOV0pO2FbOV09dC5sZW5ndGg7dC5wdXNoKFsoLTQqdFthWzEyXV1bMF0tdFthWzNdXVswXSs2Kih0W2FbOF1dWzBdK3RbYVsxM11dWzBdKS0yKih0W2FbMF1dWzBdK3RbYVsxNV1dWzBdKSszKih0W2FbMTFdXVswXSt0W2FbMV1dWzBdKSkvOSwoLTQqdFthWzEyXV1bMV0tdFthWzNdXVsxXSs2Kih0W2FbOF1dWzFdK3RbYVsxM11dWzFdKS0yKih0W2FbMF1dWzFdK3RbYVsxNV1dWzFdKSszKih0W2FbMTFdXVsxXSt0W2FbMV1dWzFdKSkvOV0pO2FbMTBdPXQubGVuZ3RoO3QucHVzaChbKC00KnRbYVsxNV1dWzBdLXRbYVswXV1bMF0rNioodFthWzExXV1bMF0rdFthWzE0XV1bMF0pLTIqKHRbYVsxMl1dWzBdK3RbYVszXV1bMF0pKzMqKHRbYVsyXV1bMF0rdFthWzhdXVswXSkpLzksKC00KnRbYVsxNV1dWzFdLXRbYVswXV1bMV0rNioodFthWzExXV1bMV0rdFthWzE0XV1bMV0pLTIqKHRbYVsxMl1dWzFdK3RbYVszXV1bMV0pKzMqKHRbYVsyXV1bMV0rdFthWzhdXVsxXSkpLzldKTt0aGlzLmZpZ3VyZXMucHVzaCh7dHlwZToicGF0Y2giLGNvb3JkczpuZXcgSW50MzJBcnJheShhKSxjb2xvcnM6bmV3IEludDMyQXJyYXkocil9KX19X2RlY29kZVR5cGU3U2hhZGluZyhlKXtjb25zdCB0PXRoaXMuY29vcmRzLGk9dGhpcy5jb2xvcnMsYT1uZXcgSW50MzJBcnJheSgxNikscj1uZXcgSW50MzJBcnJheSg0KTtmb3IoO2UuaGFzRGF0YTspe2NvbnN0IHM9ZS5yZWFkRmxhZygpO2lmKCEoMDw9cyYmczw9MykpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJVbmtub3duIHR5cGU3IGZsYWciKTtjb25zdCBuPXQubGVuZ3RoO2ZvcihsZXQgaT0wLGE9MCE9PXM/MTI6MTY7aTxhO2krKyl0LnB1c2goZS5yZWFkQ29vcmRpbmF0ZSgpKTtjb25zdCBvPWkubGVuZ3RoO2ZvcihsZXQgdD0wLGE9MCE9PXM/Mjo0O3Q8YTt0KyspaS5wdXNoKGUucmVhZENvbXBvbmVudHMoKSk7bGV0IGcsYyxsLGg7c3dpdGNoKHMpe2Nhc2UgMDphWzEyXT1uKzM7YVsxM109bis0O2FbMTRdPW4rNTthWzE1XT1uKzY7YVs4XT1uKzI7YVs5XT1uKzEzO2FbMTBdPW4rMTQ7YVsxMV09bis3O2FbNF09bisxO2FbNV09bisxMjthWzZdPW4rMTU7YVs3XT1uKzg7YVswXT1uO2FbMV09bisxMTthWzJdPW4rMTA7YVszXT1uKzk7clsyXT1vKzE7clszXT1vKzI7clswXT1vO3JbMV09byszO2JyZWFrO2Nhc2UgMTpnPWFbMTJdO2M9YVsxM107bD1hWzE0XTtoPWFbMTVdO2FbMTJdPWg7YVsxM109biswO2FbMTRdPW4rMTthWzE1XT1uKzI7YVs4XT1sO2FbOV09bis5O2FbMTBdPW4rMTA7YVsxMV09biszO2FbNF09YzthWzVdPW4rODthWzZdPW4rMTE7YVs3XT1uKzQ7YVswXT1nO2FbMV09bis3O2FbMl09bis2O2FbM109bis1O2c9clsyXTtjPXJbM107clsyXT1jO3JbM109bztyWzBdPWc7clsxXT1vKzE7YnJlYWs7Y2FzZSAyOmc9YVsxNV07Yz1hWzExXTthWzEyXT1hWzNdO2FbMTNdPW4rMDthWzE0XT1uKzE7YVsxNV09bisyO2FbOF09YVs3XTthWzldPW4rOTthWzEwXT1uKzEwO2FbMTFdPW4rMzthWzRdPWM7YVs1XT1uKzg7YVs2XT1uKzExO2FbN109bis0O2FbMF09ZzthWzFdPW4rNzthWzJdPW4rNjthWzNdPW4rNTtnPXJbM107clsyXT1yWzFdO3JbM109bztyWzBdPWc7clsxXT1vKzE7YnJlYWs7Y2FzZSAzOmFbMTJdPWFbMF07YVsxM109biswO2FbMTRdPW4rMTthWzE1XT1uKzI7YVs4XT1hWzFdO2FbOV09bis5O2FbMTBdPW4rMTA7YVsxMV09biszO2FbNF09YVsyXTthWzVdPW4rODthWzZdPW4rMTE7YVs3XT1uKzQ7YVswXT1hWzNdO2FbMV09bis3O2FbMl09bis2O2FbM109bis1O3JbMl09clswXTtyWzNdPW87clswXT1yWzFdO3JbMV09bysxfXRoaXMuZmlndXJlcy5wdXNoKHt0eXBlOiJwYXRjaCIsY29vcmRzOm5ldyBJbnQzMkFycmF5KGEpLGNvbG9yczpuZXcgSW50MzJBcnJheShyKX0pfX1fYnVpbGRGaWd1cmVGcm9tUGF0Y2goZSl7Y29uc3QgdD10aGlzLmZpZ3VyZXNbZV07YXNzZXJ0KCJwYXRjaCI9PT10LnR5cGUsIlVuZXhwZWN0ZWQgcGF0Y2ggbWVzaCBmaWd1cmUiKTtjb25zdCBpPXRoaXMuY29vcmRzLGE9dGhpcy5jb2xvcnMscj10LmNvb3JkcyxzPXQuY29sb3JzLG49TWF0aC5taW4oaVtyWzBdXVswXSxpW3JbM11dWzBdLGlbclsxMl1dWzBdLGlbclsxNV1dWzBdKSxvPU1hdGgubWluKGlbclswXV1bMV0saVtyWzNdXVsxXSxpW3JbMTJdXVsxXSxpW3JbMTVdXVsxXSksZz1NYXRoLm1heChpW3JbMF1dWzBdLGlbclszXV1bMF0saVtyWzEyXV1bMF0saVtyWzE1XV1bMF0pLGM9TWF0aC5tYXgoaVtyWzBdXVsxXSxpW3JbM11dWzFdLGlbclsxMl1dWzFdLGlbclsxNV1dWzFdKTtsZXQgbD1NYXRoLmNlaWwoKGctbikqTWVzaFNoYWRpbmcuVFJJQU5HTEVfREVOU0lUWS8odGhpcy5ib3VuZHNbMl0tdGhpcy5ib3VuZHNbMF0pKTtsPU1hdGgubWF4KE1lc2hTaGFkaW5nLk1JTl9TUExJVF9QQVRDSF9DSFVOS1NfQU1PVU5ULE1hdGgubWluKE1lc2hTaGFkaW5nLk1BWF9TUExJVF9QQVRDSF9DSFVOS1NfQU1PVU5ULGwpKTtsZXQgaD1NYXRoLmNlaWwoKGMtbykqTWVzaFNoYWRpbmcuVFJJQU5HTEVfREVOU0lUWS8odGhpcy5ib3VuZHNbM10tdGhpcy5ib3VuZHNbMV0pKTtoPU1hdGgubWF4KE1lc2hTaGFkaW5nLk1JTl9TUExJVF9QQVRDSF9DSFVOS1NfQU1PVU5ULE1hdGgubWluKE1lc2hTaGFkaW5nLk1BWF9TUExJVF9QQVRDSF9DSFVOS1NfQU1PVU5ULGgpKTtjb25zdCBDPWwrMSxRPW5ldyBJbnQzMkFycmF5KChoKzEpKkMpLEU9bmV3IEludDMyQXJyYXkoKGgrMSkqQyk7bGV0IHU9MDtjb25zdCBkPW5ldyBVaW50OEFycmF5KDMpLGY9bmV3IFVpbnQ4QXJyYXkoMykscD1hW3NbMF1dLG09YVtzWzFdXSx5PWFbc1syXV0sdz1hW3NbM11dLGI9Z2V0QihoKSxEPWdldEIobCk7Zm9yKGxldCBlPTA7ZTw9aDtlKyspe2RbMF09KHBbMF0qKGgtZSkreVswXSplKS9ofDA7ZFsxXT0ocFsxXSooaC1lKSt5WzFdKmUpL2h8MDtkWzJdPShwWzJdKihoLWUpK3lbMl0qZSkvaHwwO2ZbMF09KG1bMF0qKGgtZSkrd1swXSplKS9ofDA7ZlsxXT0obVsxXSooaC1lKSt3WzFdKmUpL2h8MDtmWzJdPShtWzJdKihoLWUpK3dbMl0qZSkvaHwwO2ZvcihsZXQgdD0wO3Q8PWw7dCsrLHUrKyl7aWYoISgwIT09ZSYmZSE9PWh8fDAhPT10JiZ0IT09bCkpY29udGludWU7bGV0IHM9MCxuPTAsbz0wO2ZvcihsZXQgYT0wO2E8PTM7YSsrKWZvcihsZXQgZz0wO2c8PTM7ZysrLG8rKyl7Y29uc3QgYz1iW2VdW2FdKkRbdF1bZ107cys9aVtyW29dXVswXSpjO24rPWlbcltvXV1bMV0qY31RW3VdPWkubGVuZ3RoO2kucHVzaChbcyxuXSk7RVt1XT1hLmxlbmd0aDtjb25zdCBnPW5ldyBVaW50OEFycmF5KDMpO2dbMF09KGRbMF0qKGwtdCkrZlswXSp0KS9sfDA7Z1sxXT0oZFsxXSoobC10KStmWzFdKnQpL2x8MDtnWzJdPShkWzJdKihsLXQpK2ZbMl0qdCkvbHwwO2EucHVzaChnKX19UVswXT1yWzBdO0VbMF09c1swXTtRW2xdPXJbM107RVtsXT1zWzFdO1FbQypoXT1yWzEyXTtFW0MqaF09c1syXTtRW0MqaCtsXT1yWzE1XTtFW0MqaCtsXT1zWzNdO3RoaXMuZmlndXJlc1tlXT17dHlwZToibGF0dGljZSIsY29vcmRzOlEsY29sb3JzOkUsdmVydGljZXNQZXJSb3c6Q319X3VwZGF0ZUJvdW5kcygpe2xldCBlPXRoaXMuY29vcmRzWzBdWzBdLHQ9dGhpcy5jb29yZHNbMF1bMV0saT1lLGE9dDtmb3IobGV0IHI9MSxzPXRoaXMuY29vcmRzLmxlbmd0aDtyPHM7cisrKXtjb25zdCBzPXRoaXMuY29vcmRzW3JdWzBdLG49dGhpcy5jb29yZHNbcl1bMV07ZT1lPnM/czplO3Q9dD5uP246dDtpPWk8cz9zOmk7YT1hPG4/bjphfXRoaXMuYm91bmRzPVtlLHQsaSxhXX1fcGFja0RhdGEoKXtsZXQgZSx0LGksYTtjb25zdCByPXRoaXMuY29vcmRzLHM9bmV3IEZsb2F0MzJBcnJheSgyKnIubGVuZ3RoKTtmb3IoZT0wLGk9MCx0PXIubGVuZ3RoO2U8dDtlKyspe2NvbnN0IHQ9cltlXTtzW2krK109dFswXTtzW2krK109dFsxXX10aGlzLmNvb3Jkcz1zO2NvbnN0IG49dGhpcy5jb2xvcnMsbz1uZXcgVWludDhBcnJheSgzKm4ubGVuZ3RoKTtmb3IoZT0wLGk9MCx0PW4ubGVuZ3RoO2U8dDtlKyspe2NvbnN0IHQ9bltlXTtvW2krK109dFswXTtvW2krK109dFsxXTtvW2krK109dFsyXX10aGlzLmNvbG9ycz1vO2NvbnN0IGc9dGhpcy5maWd1cmVzO2ZvcihlPTAsdD1nLmxlbmd0aDtlPHQ7ZSsrKXtjb25zdCB0PWdbZV0scj10LmNvb3JkcyxzPXQuY29sb3JzO2ZvcihpPTAsYT1yLmxlbmd0aDtpPGE7aSsrKXtyW2ldKj0yO3NbaV0qPTN9fX1nZXRJUigpe2NvbnN0e2JvdW5kczplfT10aGlzO2lmKGVbMl0tZVswXT09MHx8ZVszXS1lWzFdPT0wKXRocm93IG5ldyBGb3JtYXRFcnJvcihgSW52YWxpZCBNZXNoU2hhZGluZyBib3VuZHM6IFske2V9XS5gKTtyZXR1cm5bIk1lc2giLHRoaXMuc2hhZGluZ1R5cGUsdGhpcy5jb29yZHMsdGhpcy5jb2xvcnMsdGhpcy5maWd1cmVzLGUsdGhpcy5iYm94LHRoaXMuYmFja2dyb3VuZF19fWNsYXNzIER1bW15U2hhZGluZyBleHRlbmRzIEJhc2VTaGFkaW5ne2dldElSKCl7cmV0dXJuWyJEdW1teSJdfX1mdW5jdGlvbiBnZXRUaWxpbmdQYXR0ZXJuSVIoZSx0LGkpe2NvbnN0IHI9bG9va3VwTWF0cml4KHQuZ2V0QXJyYXkoIk1hdHJpeCIpLGEpLHM9bG9va3VwTm9ybWFsUmVjdCh0LmdldEFycmF5KCJCQm94IiksbnVsbCk7aWYoIXN8fHNbMl0tc1swXT09MHx8c1szXS1zWzFdPT0wKXRocm93IG5ldyBGb3JtYXRFcnJvcigiSW52YWxpZCBnZXRUaWxpbmdQYXR0ZXJuSVIgL0JCb3ggYXJyYXkuIik7Y29uc3Qgbj10LmdldCgiWFN0ZXAiKTtpZigibnVtYmVyIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIGdldFRpbGluZ1BhdHRlcm5JUiAvWFN0ZXAgdmFsdWUuIik7Y29uc3Qgbz10LmdldCgiWVN0ZXAiKTtpZigibnVtYmVyIiE9dHlwZW9mIG8pdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIGdldFRpbGluZ1BhdHRlcm5JUiAvWVN0ZXAgdmFsdWUuIik7Y29uc3QgZz10LmdldCgiUGFpbnRUeXBlIik7aWYoIU51bWJlci5pc0ludGVnZXIoZykpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIGdldFRpbGluZ1BhdHRlcm5JUiAvUGFpbnRUeXBlIHZhbHVlLiIpO2NvbnN0IGM9dC5nZXQoIlRpbGluZ1R5cGUiKTtpZighTnVtYmVyLmlzSW50ZWdlcihjKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgZ2V0VGlsaW5nUGF0dGVybklSIC9UaWxpbmdUeXBlIHZhbHVlLiIpO3JldHVyblsiVGlsaW5nUGF0dGVybiIsaSxlLHIscyxuLG8sZyxjXX1jb25zdCBkYT1bMS4zODc3LDEsMSwxLC45NzgwMSwuOTI0ODIsLjg5NTUyLC45MTEzMywuODE5ODgsLjk3NTY2LC45ODE1MiwuOTM1NDgsLjkzNTQ4LDEuMjc5OCwuODUyODQsLjkyNzk0LDEsLjk2MTM0LDEuNTQ2NTcsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC44Mjg0NSwuODI4NDUsLjg1Mjg0LC44NTI4NCwuODUyODQsLjc1ODU5LC45MjEzOCwuODM5MDgsLjc3NjIsLjczMjkzLC44NzI4OSwuNzMxMzMsLjc1MTQsLjgxOTIxLC44NzM1NiwuOTU5NTgsLjU5NTI2LC43NTcyNywuNjkyMjUsMS4wNDkyNCwuOTEyMSwuODY5NDMsLjc5Nzk1LC44ODE5OCwuNzc5NTgsLjcwODY0LC44MTA1NSwuOTAzOTksLjg4NjUzLC45NjAxNywuODI1NzcsLjc3ODkyLC43ODI1NywuOTc1MDcsMS41NDY1NywuOTc1MDcsLjg1Mjg0LC44OTU1MiwuOTAxNzYsLjg4NzYyLC44Nzg1LC43NTI0MSwuODc4NSwuOTA1MTgsLjk1MDE1LC43NzYxOCwuODc4NSwuODg0MDEsLjkxOTE2LC44NjMwNCwuODg0MDEsLjkxNDg4LC44Nzg1LC44ODAxLC44Nzg1LC44Nzg1LC45MTM0MywuNzE3MywxLjA0MTA2LC44Nzg1LC44NTA3NSwuOTU3OTQsLjgyNjE2LC44NTE2MiwuNzk0OTIsLjg4MzMxLDEuNjk4MDgsLjg4MzMxLC44NTI4NCwuOTc4MDEsLjg5NTUyLC45MTEzMywuODk1NTIsLjkxMTMzLDEuNzgwMSwuODk1NTIsMS4yNDQ4NywxLjEzMjU0LDEuMTI0MDEsLjk2ODM5LC44NTI4NCwuNjg3ODcsLjcwNjQ1LC44NTU5MiwuOTA3NDcsMS4wMTQ2NiwxLjAwODgsLjkwMzIzLDEsMS4wNzQ2MywxLC45MTA1NiwuNzU4MDYsMS4xOTExOCwuOTY4MzksLjc4ODY0LC44Mjg0NSwuODQxMzMsLjc1ODU5LC44MzkwOCwuODM5MDgsLjgzOTA4LC44MzkwOCwuODM5MDgsLjgzOTA4LC43NzUzOSwuNzMyOTMsLjczMTMzLC43MzEzMywuNzMxMzMsLjczMTMzLC45NTk1OCwuOTU5NTgsLjk1OTU4LC45NTk1OCwuODg1MDYsLjkxMjEsLjg2OTQzLC44Njk0MywuODY5NDMsLjg2OTQzLC44Njk0MywuODUyODQsLjg3NTA4LC45MDM5OSwuOTAzOTksLjkwMzk5LC45MDM5OSwuNzc4OTIsLjc5Nzk1LC45MDgwNywuODg3NjIsLjg4NzYyLC44ODc2MiwuODg3NjIsLjg4NzYyLC44ODc2MiwuODcxNSwuNzUyNDEsLjkwNTE4LC45MDUxOCwuOTA1MTgsLjkwNTE4LC44ODQwMSwuODg0MDEsLjg4NDAxLC44ODQwMSwuODc4NSwuODc4NSwuODgwMSwuODgwMSwuODgwMSwuODgwMSwuODgwMSwuOTA3NDcsLjg5MDQ5LC44Nzg1LC44Nzg1LC44Nzg1LC44Nzg1LC44NTE2MiwuODc4NSwuODUxNjIsLjgzOTA4LC44ODc2MiwuODM5MDgsLjg4NzYyLC44MzkwOCwuODg3NjIsLjczMjkzLC43NTI0MSwuNzMyOTMsLjc1MjQxLC43MzI5MywuNzUyNDEsLjczMjkzLC43NTI0MSwuODcyODksLjgzMDE2LC44ODUwNiwuOTMxMjUsLjczMTMzLC45MDUxOCwuNzMxMzMsLjkwNTE4LC43MzEzMywuOTA1MTgsLjczMTMzLC45MDUxOCwuNzMxMzMsLjkwNTE4LC44MTkyMSwuNzc2MTgsLjgxOTIxLC43NzYxOCwuODE5MjEsLjc3NjE4LDEsMSwuODczNTYsLjg3ODUsLjkxMDc1LC44OTYwOCwuOTU5NTgsLjg4NDAxLC45NTk1OCwuODg0MDEsLjk1OTU4LC44ODQwMSwuOTU5NTgsLjg4NDAxLC45NTk1OCwuODg0MDEsLjc2MjI5LC45MDE2NywuNTk1MjYsLjkxOTE2LDEsMSwuODYzMDQsLjY5MjI1LC44ODQwMSwxLDEsLjcwNDI0LC43OTQ2OCwuOTE5MjYsLjg4MTc1LC43MDgyMywuOTQ5MDMsLjkxMjEsLjg3ODUsMSwxLC45MTIxLC44Nzg1LC44NzgwMiwuODg2NTYsLjg3ODUsLjg2OTQzLC44ODAxLC44Njk0MywuODgwMSwuODY5NDMsLjg4MDEsLjg3NDAyLC44OTI5MSwuNzc5NTgsLjkxMzQzLDEsMSwuNzc5NTgsLjkxMzQzLC43MDg2NCwuNzE3MywuNzA4NjQsLjcxNzMsLjcwODY0LC43MTczLC43MDg2NCwuNzE3MywxLDEsLjgxMDU1LC43NTg0MSwuODEwNTUsMS4wNjQ1MiwuOTAzOTksLjg3ODUsLjkwMzk5LC44Nzg1LC45MDM5OSwuODc4NSwuOTAzOTksLjg3ODUsLjkwMzk5LC44Nzg1LC45MDM5OSwuODc4NSwuOTYwMTcsLjk1Nzk0LC43Nzg5MiwuODUxNjIsLjc3ODkyLC43ODI1NywuNzk0OTIsLjc4MjU3LC43OTQ5MiwuNzgyNTcsLjc5NDkyLC45Mjk3LC41Njg5MiwuODM5MDgsLjg4NzYyLC43NzUzOSwuODcxNSwuODc1MDgsLjg5MDQ5LDEsMSwuODEwNTUsMS4wNDEwNiwxLjIwNTI4LDEuMjA1MjgsMSwxLjE1NTQzLC43MDY3NCwuOTgzODcsLjk0NzIxLDEuMzM0MzEsMS40NTg5NCwuOTUxNjEsMS4wNjMwMywuODM5MDgsLjgwMzUyLC41NzE4NCwuNjk2NSwuNTYyODksLjgyMDAxLC41NjAyOSwuODEyMzUsMS4wMjk4OCwuODM5MDgsLjc3NjIsLjY4MTU2LC44MDM2NywuNzMxMzMsLjc4MjU3LC44NzM1NiwuODY5NDMsLjk1OTU4LC43NTcyNywuODkwMTksMS4wNDkyNCwuOTEyMSwuNzY0OCwuODY5NDMsLjg3MzU2LC43OTc5NSwuNzgyNzUsLjgxMDU1LC43Nzg5MiwuOTc2MiwuODI1NzcsLjk5ODE5LC44NDg5NiwuOTU5NTgsLjc3ODkyLC45NjEwOCwxLjAxNDA3LC44OTA0OSwxLjAyOTg4LC45NDIxMSwuOTYxMDgsLjg5MzYsLjg0MDIxLC44Nzg0MiwuOTYzOTksLjc5MTA5LC44OTA0OSwxLjAwODEzLDEuMDI5ODgsLjg2MDc3LC44NzQ0NSwuOTIwOTksLjg0NzIzLC44NjUxMywuODgwMSwuNzU2MzgsLjg1NzE0LC43ODIxNiwuNzk1ODYsLjg3OTY1LC45NDIxMSwuOTc3NDcsLjc4Mjg3LC45NzkyNiwuODQ5NzEsMS4wMjk4OCwuOTQyMTEsLjg4MDEsLjk0MjExLC44NDk3MSwuNzMxMzMsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjkwMjY0LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45MDUxOCwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTA1NDgsMSwxLDEsMSwxLDEsLjk2MDE3LC45NTc5NCwuOTYwMTcsLjk1Nzk0LC45NjAxNywuOTU3OTQsLjc3ODkyLC44NTE2MiwxLDEsLjg5NTUyLC45MDUyNywxLC45MDM2MywuOTI3OTQsLjkyNzk0LC45Mjc5NCwuOTI3OTQsLjg3MDEyLC44NzAxMiwuODcwMTIsLjg5NTUyLC44OTU1MiwxLjQyMjU5LC43MTE0MywxLjA2MTUyLDEsMSwxLjAzMzcyLDEuMDMzNzIsLjk3MTcxLDEuNDk1NiwyLjI4MDcsLjkzODM1LC44MzQwNiwuOTExMzMsLjg0MTA3LC45MTEzMywxLDEsMSwuNzIwMjEsMSwxLjIzMTA4LC44MzQ4OSwuODg1MjUsLjg4NTI1LC44MTQ5OSwuOTA1MjcsMS44MTA1NSwuOTA1MjcsMS44MTA1NSwxLjMxMDA2LDEuNTM3MTEsLjk0NDM0LDEuMDg2OTYsMSwuOTUwMTgsLjc3MTkyLC44NTI4NCwuOTA3NDcsMS4xNzUzNCwuNjk4MjUsLjk3MTYsMS4zNzA3NywuOTA3NDcsLjkwNzQ3LC44NTM1NiwuOTA3NDcsLjkwNzQ3LDEuNDQ5NDcsLjg1Mjg0LC44OTQxLC44OTQxLC43MDU3MiwuOCwuNzA1NzIsLjcwNTcyLC43MDU3MiwuNzA1NzIsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45OTg2MiwuOTk4NjIsMSwxLDEsMSwxLDEuMDgwMDQsLjkxMDI3LDEsMSwxLC45OTg2MiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTA3MjcsLjkwNzI3LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSxmYT17bGluZUhlaWdodDoxLjIyMDcsbGluZUdhcDouMjIwN30scGE9WzEuMzg3NywxLDEsMSwuOTc4MDEsLjkyNDgyLC44OTU1MiwuOTExMzMsLjgxOTg4LC45NzU2NiwuOTgxNTIsLjkzNTQ4LC45MzU0OCwxLjI3OTgsLjg1Mjg0LC45Mjc5NCwxLC45NjEzNCwxLjU2MjM5LC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuODI4NDUsLjgyODQ1LC44NTI4NCwuODUyODQsLjg1Mjg0LC43NTg1OSwuOTIxMzgsLjgzOTA4LC43NzYyLC43MTgwNSwuODcyODksLjczMTMzLC43NTE0LC44MTkyMSwuODczNTYsLjk1OTU4LC41OTUyNiwuNzU3MjcsLjY5MjI1LDEuMDQ5MjQsLjkwODcyLC44NTkzOCwuNzk3OTUsLjg3MDY4LC43Nzk1OCwuNjk3NjYsLjgxMDU1LC45MDM5OSwuODg2NTMsLjk2MDY4LC44MjU3NywuNzc4OTIsLjc4MjU3LC45NzUwNywxLjUyOSwuOTc1MDcsLjg1Mjg0LC44OTU1MiwuOTAxNzYsLjk0OTA4LC44NjQxMSwuNzQwMTIsLjg2NDExLC44ODMyMywuOTUwMTUsLjg2NDExLC44NjMzMSwuODg0MDEsLjkxOTE2LC44NjMwNCwuODg0MDEsLjkwMzksLjg2MzMxLC44NjMzMSwuODY0MTEsLjg2NDExLC45MDQ2NCwuNzA4NTIsMS4wNDEwNiwuODYzMzEsLjg0MzcyLC45NTc5NCwuODI2MTYsLjg0NTQ4LC43OTQ5MiwuODgzMzEsMS42OTgwOCwuODgzMzEsLjg1Mjg0LC45NzgwMSwuODk1NTIsLjkxMTMzLC44OTU1MiwuOTExMzMsMS43ODAxLC44OTU1MiwxLjI0NDg3LDEuMTMyNTQsMS4xOTEyOSwuOTY4MzksLjg1Mjg0LC42ODc4NywuNzA2NDUsLjg1NTkyLC45MDc0NywxLjAxNDY2LDEuMDA4OCwuOTAzMjMsMSwxLjA3NDYzLDEsLjkxMDU2LC43NTgwNiwxLjE5MTE4LC45NjgzOSwuNzg4NjQsLjgyODQ1LC44NDEzMywuNzU4NTksLjgzOTA4LC44MzkwOCwuODM5MDgsLjgzOTA4LC44MzkwOCwuODM5MDgsLjc3NTM5LC43MTgwNSwuNzMxMzMsLjczMTMzLC43MzEzMywuNzMxMzMsLjk1OTU4LC45NTk1OCwuOTU5NTgsLjk1OTU4LC44ODUwNiwuOTA4NzIsLjg1OTM4LC44NTkzOCwuODU5MzgsLjg1OTM4LC44NTkzOCwuODUyODQsLjg3MDY4LC45MDM5OSwuOTAzOTksLjkwMzk5LC45MDM5OSwuNzc4OTIsLjc5Nzk1LC45MDgwNywuOTQ5MDgsLjk0OTA4LC45NDkwOCwuOTQ5MDgsLjk0OTA4LC45NDkwOCwuODU4ODcsLjc0MDEyLC44ODMyMywuODgzMjMsLjg4MzIzLC44ODMyMywuODg0MDEsLjg4NDAxLC44ODQwMSwuODg0MDEsLjg3ODUsLjg2MzMxLC44NjMzMSwuODYzMzEsLjg2MzMxLC44NjMzMSwuODYzMzEsLjkwNzQ3LC44OTA0OSwuODYzMzEsLjg2MzMxLC44NjMzMSwuODYzMzEsLjg0NTQ4LC44NjQxMSwuODQ1NDgsLjgzOTA4LC45NDkwOCwuODM5MDgsLjk0OTA4LC44MzkwOCwuOTQ5MDgsLjcxODA1LC43NDAxMiwuNzE4MDUsLjc0MDEyLC43MTgwNSwuNzQwMTIsLjcxODA1LC43NDAxMiwuODcyODksLjc5NTM4LC44ODUwNiwuOTI3MjYsLjczMTMzLC44ODMyMywuNzMxMzMsLjg4MzIzLC43MzEzMywuODgzMjMsLjczMTMzLC44ODMyMywuNzMxMzMsLjg4MzIzLC44MTkyMSwuODY0MTEsLjgxOTIxLC44NjQxMSwuODE5MjEsLjg2NDExLDEsMSwuODczNTYsLjg2MzMxLC45MTA3NSwuODc3NywuOTU5NTgsLjg4NDAxLC45NTk1OCwuODg0MDEsLjk1OTU4LC44ODQwMSwuOTU5NTgsLjg4NDAxLC45NTk1OCwuODg0MDEsLjc2NDY3LC45MDE2NywuNTk1MjYsLjkxOTE2LDEsMSwuODYzMDQsLjY5MjI1LC44ODQwMSwxLDEsLjcwNDI0LC43NzMxMiwuOTE5MjYsLjg4MTc1LC43MDgyMywuOTQ5MDMsLjkwODcyLC44NjMzMSwxLDEsLjkwODcyLC44NjMzMSwuODY5MDYsLjg4MTE2LC44NjMzMSwuODU5MzgsLjg2MzMxLC44NTkzOCwuODYzMzEsLjg1OTM4LC44NjMzMSwuODc0MDIsLjg2NTQ5LC43Nzk1OCwuOTA0NjQsMSwxLC43Nzk1OCwuOTA0NjQsLjY5NzY2LC43MDg1MiwuNjk3NjYsLjcwODUyLC42OTc2NiwuNzA4NTIsLjY5NzY2LC43MDg1MiwxLDEsLjgxMDU1LC43NTg0MSwuODEwNTUsMS4wNjQ1MiwuOTAzOTksLjg2MzMxLC45MDM5OSwuODYzMzEsLjkwMzk5LC44NjMzMSwuOTAzOTksLjg2MzMxLC45MDM5OSwuODYzMzEsLjkwMzk5LC44NjMzMSwuOTYwNjgsLjk1Nzk0LC43Nzg5MiwuODQ1NDgsLjc3ODkyLC43ODI1NywuNzk0OTIsLjc4MjU3LC43OTQ5MiwuNzgyNTcsLjc5NDkyLC45Mjk3LC41Njg5MiwuODM5MDgsLjk0OTA4LC43NzUzOSwuODU4ODcsLjg3MDY4LC44OTA0OSwxLDEsLjgxMDU1LDEuMDQxMDYsMS4yMDUyOCwxLjIwNTI4LDEsMS4xNTU0MywuNzAwODgsLjk4Mzg3LC45NDcyMSwxLjMzNDMxLDEuNDU4OTQsLjk1MTYxLDEuNDgzODcsLjgzOTA4LC44MDM1MiwuNTcxMTgsLjY5NjUsLjU2MzQ3LC43OTE3OSwuNTU4NTMsLjgwMzQ2LDEuMDI5ODgsLjgzOTA4LC43NzYyLC42NzE3NCwuODYwMzYsLjczMTMzLC43ODI1NywuODczNTYsLjg2NDQxLC45NTk1OCwuNzU3MjcsLjg5MDE5LDEuMDQ5MjQsLjkwODcyLC43NDg4OSwuODU5MzgsLjg3ODkxLC43OTc5NSwuNzk1NywuODEwNTUsLjc3ODkyLC45NzQ0NywuODI1NzcsLjk3NDY2LC44NzE3OSwuOTU5NTgsLjc3ODkyLC45NDI1MiwuOTU2MTIsLjg3NTMsMS4wMjk4OCwuOTI3MzMsLjk0MjUyLC44NzQxMSwuODQwMjEsLjg3MjgsLjk1NjEyLC43NDA4MSwuODc1MywxLjAyMTg5LDEuMDI5ODgsLjg0ODE0LC44NzQ0NSwuOTE4MjIsLjg0NzIzLC44NTY2OCwuODYzMzEsLjgxMzQ0LC44NzU4MSwuNzY0MjIsLjgyMDQ2LC45NjA1NywuOTI3MzMsLjk5Mzc1LC43ODAyMiwuOTU0NTIsLjg2MDE1LDEuMDI5ODgsLjkyNzMzLC44NjMzMSwuOTI3MzMsLjg2MDE1LC43MzEzMywxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTA2MzEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjg4MzIzLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC44NTE3NCwxLDEsMSwxLDEsMSwuOTYwNjgsLjk1Nzk0LC45NjA2OCwuOTU3OTQsLjk2MDY4LC45NTc5NCwuNzc4OTIsLjg0NTQ4LDEsMSwuODk1NTIsLjkwNTI3LDEsLjkwMzYzLC45Mjc5NCwuOTI3OTQsLjkyNzk0LC44OTgwNywuODcwMTIsLjg3MDEyLC44NzAxMiwuODk1NTIsLjg5NTUyLDEuNDIyNTksLjcxMDk0LDEuMDYxNTIsMSwxLDEuMDMzNzIsMS4wMzM3MiwuOTcxNzEsMS40OTU2LDIuMjgwNywuOTI5NzIsLjgzNDA2LC45MTEzMywuODMzMjYsLjkxMTMzLDEsMSwxLC43MjAyMSwxLDEuMjMxMDgsLjgzNDg5LC44ODUyNSwuODg1MjUsLjgxNDk5LC45MDYxNiwxLjgxMDU1LC45MDUyNywxLjgxMDU1LDEuMzEwNywxLjUzNzExLC45NDQzNCwxLjA4Njk2LDEsLjk1MDE4LC43NzE5MiwuODUyODQsLjkwNzQ3LDEuMTc1MzQsLjY5ODI1LC45NzE2LDEuMzcwNzcsLjkwNzQ3LC45MDc0NywuODUzNTYsLjkwNzQ3LC45MDc0NywxLjQ0OTQ3LC44NTI4NCwuODk0MSwuODk0MSwuNzA1NzIsLjgsLjcwNTcyLC43MDU3MiwuNzA1NzIsLjcwNTcyLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTk4NjIsLjk5ODYyLDEsMSwxLDEsMSwxLjA4MDA0LC45MTAyNywxLDEsMSwuOTk4NjIsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjkwNzI3LC45MDcyNywxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sbWE9e2xpbmVIZWlnaHQ6MS4yMjA3LGxpbmVHYXA6LjIyMDd9LHlhPVsxLjM4NzcsMSwxLDEsMS4xNzIyMywxLjEyOTMsLjg5NTUyLC45MTEzMywuODAzOTUsMS4wMjI2OSwxLjE1NjAxLC45MTA1NiwuOTEwNTYsMS4yNzk4LC44NTI4NCwuODk4MDcsMSwuOTA4NjEsMS4zOTU0MywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjk2MzA5LC45NjMwOSwuODUyODQsLjg1Mjg0LC44NTI4NCwuODMzMTksLjg4MDcxLC44Njc1LC44MTU1MiwuNzIzNDYsLjg1MTkzLC43MzIwNiwuNzUyMiwuODExMDUsLjg2Mjc1LC45MDY4NSwuNjM3NywuNzc4OTIsLjc1NTkzLDEuMDI2MzgsLjg5MjQ5LC44NDExOCwuNzc0NTIsLjg1Mzc0LC43NTE4NiwuNjc3ODksLjc5Nzc2LC44ODg0NCwuODUwNjYsLjk0MzA5LC43NzgxOCwuNzMwNiwuNzY2NTksMS4xMDM2OSwxLjM4MzEzLDEuMTAzNjksMS4wNjEzOSwuODk1NTIsLjg3MzksLjkyNDUsLjkyNDUsLjgzMjAzLC45MjQ1LC44NTg2NSwxLjA5ODQyLC45MjQ1LC45MjQ1LDEuMDMyOTcsMS4wNzY5MiwuOTA5MTgsMS4wMzI5NywuOTQ5NTksLjkyNDUsLjkyMjc0LC45MjQ1LC45MjQ1LDEuMDI5MzMsLjc3ODMyLDEuMjA1NjIsLjkyNDUsLjg5MTYsLjk4OTg2LC44NjYyMSwuODk0NTMsLjc5MDA0LC45NDE1MiwxLjc3MjU2LC45NDE1MiwuODUyODQsLjk3ODAxLC44OTU1MiwuOTExMzMsLjg5NTUyLC45MTEzMywxLjkxNzI5LC44OTU1MiwxLjE3ODg5LDEuMTMyNTQsMS4xNjM1OSwuOTIwOTgsLjg1Mjg0LC42ODc4NywuNzEzNTMsLjg0NzM3LC45MDc0NywxLjAwODgsMS4wMDQ0LC44NzY4MywxLDEuMDkwOTEsMSwuOTIyMjksLjczOSwxLjE1NjQyLC45MjA5OCwuNzYyODgsLjgwNTA0LC44MDk3MiwuNzU4NTksLjg2NzUsLjg2NzUsLjg2NzUsLjg2NzUsLjg2NzUsLjg2NzUsLjc2MzE4LC43MjM0NiwuNzMyMDYsLjczMjA2LC43MzIwNiwuNzMyMDYsLjkwNjg1LC45MDY4NSwuOTA2ODUsLjkwNjg1LC44NjQ3NywuODkyNDksLjg0MTE4LC44NDExOCwuODQxMTgsLjg0MTE4LC44NDExOCwuODUyODQsLjg0NTU3LC44ODg0NCwuODg4NDQsLjg4ODQ0LC44ODg0NCwuNzMwNiwuNzc0NTIsLjg2MzMxLC45MjQ1LC45MjQ1LC45MjQ1LC45MjQ1LC45MjQ1LC45MjQ1LC44NDg0MywuODMyMDMsLjg1ODY1LC44NTg2NSwuODU4NjUsLjg1ODY1LC44MjYwMSwuODI2MDEsLjgyNjAxLC44MjYwMSwuOTQ0NjksLjkyNDUsLjkyMjc0LC45MjI3NCwuOTIyNzQsLjkyMjc0LC45MjI3NCwuOTA3NDcsLjg2NjUxLC45MjQ1LC45MjQ1LC45MjQ1LC45MjQ1LC44OTQ1MywuOTI0NSwuODk0NTMsLjg2NzUsLjkyNDUsLjg2NzUsLjkyNDUsLjg2NzUsLjkyNDUsLjcyMzQ2LC44MzIwMywuNzIzNDYsLjgzMjAzLC43MjM0NiwuODMyMDMsLjcyMzQ2LC44MzIwMywuODUxOTMsLjg4NzUsLjg2NDc3LC45OTAzNCwuNzMyMDYsLjg1ODY1LC43MzIwNiwuODU4NjUsLjczMjA2LC44NTg2NSwuNzMyMDYsLjg1ODY1LC43MzIwNiwuODU4NjUsLjgxMTA1LC45MjQ1LC44MTEwNSwuOTI0NSwuODExMDUsLjkyNDUsMSwxLC44NjI3NSwuOTI0NSwuOTA4NzIsLjkzNTkxLC45MDY4NSwuODI2MDEsLjkwNjg1LC44MjYwMSwuOTA2ODUsLjgyNjAxLC45MDY4NSwxLjAzMjk3LC45MDY4NSwuODI2MDEsLjc3ODk2LDEuMDU2MTEsLjYzNzcsMS4wNzY5MiwxLDEsLjkwOTE4LC43NTU5MywxLjAzMjk3LDEsMSwuNzYwMzIsLjkzNzUsLjk4MTU2LC45MzQwNywuNzcyNjEsMS4xMTQyOSwuODkyNDksLjkyNDUsMSwxLC44OTI0OSwuOTI0NSwuOTI1MzQsLjg2Njk4LC45MjQ1LC44NDExOCwuOTIyNzQsLjg0MTE4LC45MjI3NCwuODQxMTgsLjkyMjc0LC44NjY3LC44NjI5MSwuNzUxODYsMS4wMjkzMywxLDEsLjc1MTg2LDEuMDI5MzMsLjY3Nzg5LC43NzgzMiwuNjc3ODksLjc3ODMyLC42Nzc4OSwuNzc4MzIsLjY3Nzg5LC43NzgzMiwxLDEsLjc5Nzc2LC45NzY1NSwuNzk3NzYsMS4yMzAyMywuODg4NDQsLjkyNDUsLjg4ODQ0LC45MjQ1LC44ODg0NCwuOTI0NSwuODg4NDQsLjkyNDUsLjg4ODQ0LC45MjQ1LC44ODg0NCwuOTI0NSwuOTQzMDksLjk4OTg2LC43MzA2LC44OTQ1MywuNzMwNiwuNzY2NTksLjc5MDA0LC43NjY1OSwuNzkwMDQsLjc2NjU5LC43OTAwNCwxLjA5MjMxLC41NDg3MywuODY3NSwuOTI0NSwuNzYzMTgsLjg0ODQzLC44NDU1NywuODY2NTEsMSwxLC43OTc3NiwxLjIwNTYyLDEuMTg2MjIsMS4xODYyMiwxLDEuMTQzNywuNjcwMDksLjk2MzM0LC45MzY5NSwxLjM1MTkxLDEuNDA5MDksLjk1MTYxLDEuNDgzODcsLjg2NzUsLjkwODYxLC42MTkyLC43MzYzLC42NDgyNCwuODI0MTEsLjU2MzIxLC44NTY5NiwxLjIzNTE2LC44Njc1LC44MTU1MiwuNzI4NiwuODQxMzQsLjczMjA2LC43NjY1OSwuODYyNzUsLjg0MzY5LC45MDY4NSwuNzc4OTIsLjg1ODcxLDEuMDI2MzgsLjg5MjQ5LC43NTgyOCwuODQxMTgsLjg1OTg0LC43NzQ1MiwuNzY0NjYsLjc5Nzc2LC43MzA2LC45MDc4MiwuNzc4MTgsLjkwMywuODcyOTEsLjkwNjg1LC43MzA2LC45OTA1OCwxLjAzNjY3LC45NDYzNSwxLjIzNTE2LC45ODQ5LC45OTA1OCwuOTIzOTMsLjg5MTYsLjk0MiwxLjAzNjY3LC43NTAyNiwuOTQ2MzUsMS4wMjk3LDEuMjM1MTYsLjkwOTE4LC45NDA0OCwuOTgyMTcsLjg5NzQ2LC44NDE1MywuOTIyNzQsLjgyNTA3LC44ODgzMiwuODQ0MzgsLjg4MTc4LDEuMDM1MjUsLjk4NDksMS4wMDIyNSwuNzgwODYsLjk3MjQ4LC44OTQwNCwxLjIzNTE2LC45ODQ5LC45MjI3NCwuOTg0OSwuODk0MDQsLjczMjA2LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC44OTY5MywxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuODU4NjUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjkwOTMzLDEsMSwxLDEsMSwxLC45NDMwOSwuOTg5ODYsLjk0MzA5LC45ODk4NiwuOTQzMDksLjk4OTg2LC43MzA2LC44OTQ1MywxLDEsLjg5NTUyLC45MDUyNywxLC45MDE4NiwxLjEyMzA4LDEuMTIzMDgsMS4xMjMwOCwxLjEyMzA4LDEuMjU2NiwxLjI1NjYsMS4yNTY2LC44OTU1MiwuODk1NTIsMS40MjI1OSwuNjg5OTQsMS4wMzgwOSwxLDEsMS4wMTc2LDEuMDE3NiwxLjExNTIzLDEuNDk1NiwyLjAxNDYyLC45Nzg1OCwuODI2MTYsLjkxMTMzLC44MzQzNywuOTExMzMsMSwxLDEsLjcwNTA4LDEsMS4yMzEwOCwuNzk4MDEsLjg0NDI2LC44NDQyNiwuNzc0LC45MDU3MiwxLjgxMDU1LC45MDc0OSwxLjgxMDU1LDEuMjg4MDksMS41NTQ2OSwuOTQ0MzQsMS4wNzgwNiwxLC45NzA5NCwuNzU4OSwuODUyODQsLjkwNzQ3LDEuMTk2NTgsLjY5ODI1LC45NzYyMiwxLjMzNTEyLC45MDc0NywuOTA3NDcsLjg1Mjg0LC45MDc0NywuOTA3NDcsMS40NDk0NywuODUyODQsLjg5NDEsLjg5NDEsLjcwNTcyLC44LC43MDU3MiwuNzA1NzIsLjcwNTcyLC43MDU3MiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjk5ODYyLC45OTg2MiwxLDEsMSwxLDEsMS4wMzM2LC45MTAyNywxLDEsMSwuOTk4NjIsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4wNTg1OSwxLjA1ODU5LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSx3YT17bGluZUhlaWdodDoxLjIyMDcsbGluZUdhcDouMjIwN30sYmE9WzEuMzg3NywxLDEsMSwxLjE3MjIzLDEuMTI5MywuODk1NTIsLjkxMTMzLC44MDM5NSwxLjAyMjY5LDEuMTU2MDEsLjkxMDU2LC45MTA1NiwxLjI3OTgsLjg1Mjg0LC44OTgwNywxLC45MDg2MSwxLjM5MDE2LC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTYzMDksLjk2MzA5LC44NTI4NCwuODUyODQsLjg1Mjg0LC44MzMxOSwuODgwNzEsLjg2NzUsLjgxNTUyLC43MzgzNCwuODUxOTMsLjczMjA2LC43NTIyLC44MTEwNSwuODYyNzUsLjkwNjg1LC42Mzc3LC43Nzg5MiwuNzU1OTMsMS4wMjYzOCwuODkzODUsLjg1MTIyLC43NzQ1MiwuODY1MDMsLjc1MTg2LC42ODg4NywuNzk3NzYsLjg4ODQ0LC44NTA2NiwuOTQyNTgsLjc3ODE4LC43MzA2LC43NjY1OSwxLjEwMzY5LDEuMzkwMTYsMS4xMDM2OSwxLjA2MTM5LC44OTU1MiwuODczOSwuODYxMjgsLjk0NDY5LC44NDU3LC45NDQ2OSwuODk0NjQsMS4wOTg0MiwuODQ2MzYsLjk0NDY5LDEuMDMyOTcsMS4wNzY5MiwuOTA5MTgsMS4wMzI5NywuOTU4OTcsLjk0NDY5LC45NDgyLC45NDQ2OSwuOTQ0NjksMS4wNDY5MiwuNzgyMjMsMS4yMDU2MiwuOTQ0NjksLjkwMzMyLC45ODk4NiwuODY2MjEsLjkwNTI3LC43OTAwNCwuOTQxNTIsMS43NzI1NiwuOTQxNTIsLjg1Mjg0LC45NzgwMSwuODk1NTIsLjkxMTMzLC44OTU1MiwuOTExMzMsMS45MTcyOSwuODk1NTIsMS4xNzg4OSwxLjEzMjU0LDEuMDg3MDcsLjkyMDk4LC44NTI4NCwuNjg3ODcsLjcxMzUzLC44NDczNywuOTA3NDcsMS4wMDg4LDEuMDA0NCwuODc2ODMsMSwxLjA5MDkxLDEsLjkyMjI5LC43MzksMS4xNTY0MiwuOTIwOTgsLjc2Mjg4LC44MDUwNCwuODA5NzIsLjc1ODU5LC44Njc1LC44Njc1LC44Njc1LC44Njc1LC44Njc1LC44Njc1LC43NjMxOCwuNzM4MzQsLjczMjA2LC43MzIwNiwuNzMyMDYsLjczMjA2LC45MDY4NSwuOTA2ODUsLjkwNjg1LC45MDY4NSwuODY0NzcsLjg5Mzg1LC44NTEyMiwuODUxMjIsLjg1MTIyLC44NTEyMiwuODUxMjIsLjg1Mjg0LC44NTMxMSwuODg4NDQsLjg4ODQ0LC44ODg0NCwuODg4NDQsLjczMDYsLjc3NDUyLC44NjMzMSwuODYxMjgsLjg2MTI4LC44NjEyOCwuODYxMjgsLjg2MTI4LC44NjEyOCwuODY5MywuODQ1NywuODk0NjQsLjg5NDY0LC44OTQ2NCwuODk0NjQsLjgyNjAxLC44MjYwMSwuODI2MDEsLjgyNjAxLC45NDQ2OSwuOTQ0NjksLjk0ODIsLjk0ODIsLjk0ODIsLjk0ODIsLjk0ODIsLjkwNzQ3LC44NjY1MSwuOTQ0NjksLjk0NDY5LC45NDQ2OSwuOTQ0NjksLjkwNTI3LC45NDQ2OSwuOTA1MjcsLjg2NzUsLjg2MTI4LC44Njc1LC44NjEyOCwuODY3NSwuODYxMjgsLjczODM0LC44NDU3LC43MzgzNCwuODQ1NywuNzM4MzQsLjg0NTcsLjczODM0LC44NDU3LC44NTE5MywuOTI0NTQsLjg2NDc3LC45OTIxLC43MzIwNiwuODk0NjQsLjczMjA2LC44OTQ2NCwuNzMyMDYsLjg5NDY0LC43MzIwNiwuODk0NjQsLjczMjA2LC44OTQ2NCwuODExMDUsLjg0NjM2LC44MTEwNSwuODQ2MzYsLjgxMTA1LC44NDYzNiwxLDEsLjg2Mjc1LC45NDQ2OSwuOTA4NzIsLjk1Nzg2LC45MDY4NSwuODI2MDEsLjkwNjg1LC44MjYwMSwuOTA2ODUsLjgyNjAxLC45MDY4NSwxLjAzMjk3LC45MDY4NSwuODI2MDEsLjc3NzQxLDEuMDU2MTEsLjYzNzcsMS4wNzY5MiwxLDEsLjkwOTE4LC43NTU5MywxLjAzMjk3LDEsMSwuNzYwMzIsLjkwNDUyLC45ODE1NiwxLjExODQyLC43NzI2MSwxLjExNDI5LC44OTM4NSwuOTQ0NjksMSwxLC44OTM4NSwuOTQ0NjksLjk1ODc3LC44NjkwMSwuOTQ0NjksLjg1MTIyLC45NDgyLC44NTEyMiwuOTQ4MiwuODUxMjIsLjk0ODIsLjg2NjcsLjkwMDE2LC43NTE4NiwxLjA0NjkyLDEsMSwuNzUxODYsMS4wNDY5MiwuNjg4ODcsLjc4MjIzLC42ODg4NywuNzgyMjMsLjY4ODg3LC43ODIyMywuNjg4ODcsLjc4MjIzLDEsMSwuNzk3NzYsLjkyMTg4LC43OTc3NiwxLjIzMDIzLC44ODg0NCwuOTQ0NjksLjg4ODQ0LC45NDQ2OSwuODg4NDQsLjk0NDY5LC44ODg0NCwuOTQ0NjksLjg4ODQ0LC45NDQ2OSwuODg4NDQsLjk0NDY5LC45NDI1OCwuOTg5ODYsLjczMDYsLjkwNTI3LC43MzA2LC43NjY1OSwuNzkwMDQsLjc2NjU5LC43OTAwNCwuNzY2NTksLjc5MDA0LDEuMDkyMzEsLjU0ODczLC44Njc1LC44NjEyOCwuNzYzMTgsLjg2OTMsLjg1MzExLC44NjY1MSwxLDEsLjc5Nzc2LDEuMjA1NjIsMS4xODYyMiwxLjE4NjIyLDEsMS4xNDM3LC42Nzc0MiwuOTYzMzQsLjkzNjk1LDEuMzUxOTEsMS40MDkwOSwuOTUxNjEsMS40ODM4NywuODY2ODYsLjkwODYxLC42MjI2NywuNzQzNTksLjY1NjQ5LC44NTQ5OCwuNTY5NjMsLjg4MjU0LDEuMjM1MTYsLjg2NzUsLjgxNTUyLC43NTQ0MywuODQ1MDMsLjczMjA2LC43NjY1OSwuODYyNzUsLjg1MTIyLC45MDY4NSwuNzc4OTIsLjg1NzQ2LDEuMDI2MzgsLjg5Mzg1LC43NTY1NywuODUxMjIsLjg2Mjc1LC43NzQ1MiwuNzQxNzEsLjc5Nzc2LC43MzA2LC45NTE2NSwuNzc4MTgsLjg5NzcyLC44ODgzMSwuOTA2ODUsLjczMDYsLjk4MTQyLDEuMDIxOTEsLjk2NTc2LDEuMjM1MTYsLjk5MDE4LC45ODE0MiwuOTIzNiwuODkyNTgsLjk0MDM1LDEuMDIxOTEsLjc4ODQ4LC45NjU3NiwuOTU2MSwxLjIzNTE2LC45MDkxOCwuOTI1NzgsLjk1NDI0LC44OTc0NiwuODM5NjksLjk0ODIsLjgwMTEzLC44OTQ0MiwuODUyMDgsLjg2MTU1LC45ODAyMiwuOTkwMTgsMS4wMDQ1MiwuODEyMDksLjk5MjQ3LC44OTE4MSwxLjIzNTE2LC45OTAxOCwuOTQ4MiwuOTkwMTgsLjg5MTgxLC43MzIwNiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuODg4NDQsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjg5NDY0LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45Njc2NiwxLDEsMSwxLDEsMSwuOTQyNTgsLjk4OTg2LC45NDI1OCwuOTg5ODYsLjk0MjU4LC45ODk4NiwuNzMwNiwuOTA1MjcsMSwxLC44OTU1MiwuOTA1MjcsMSwuOTAxODYsMS4xMjMwOCwxLjEyMzA4LDEuMTIzMDgsMS4xMjMwOCwxLjI1NjYsMS4yNTY2LDEuMjU2NiwuODk1NTIsLjg5NTUyLDEuNDIyNTksLjY5MDQzLDEuMDM4MDksMSwxLDEuMDE3NiwxLjAxNzYsMS4xMTUyMywxLjQ5NTYsMi4wMTQ2MiwuOTkzMzEsLjgyNjE2LC45MTEzMywuODQyODYsLjkxMTMzLDEsMSwxLC43MDUwOCwxLDEuMjMxMDgsLjc5ODAxLC44NDQyNiwuODQ0MjYsLjc3NCwuOTA1MjcsMS44MTA1NSwuOTA1MjcsMS44MTA1NSwxLjI4ODA5LDEuNTU0NjksLjk0NDM0LDEuMDc4MDYsMSwuOTcwOTQsLjc1ODksLjg1Mjg0LC45MDc0NywxLjE5NjU4LC42OTgyNSwuOTc2MjIsMS4zMzUxMiwuOTA3NDcsLjkwNzQ3LC44NTM1NiwuOTA3NDcsLjkwNzQ3LDEuNDQ5NDcsLjg1Mjg0LC44OTQxLC44OTQxLC43MDU3MiwuOCwuNzA1NzIsLjcwNTcyLC43MDU3MiwuNzA1NzIsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45OTg2MiwuOTk4NjIsMSwxLDEsMSwxLDEuMDMzNiwuOTEwMjcsMSwxLDEsLjk5ODYyLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMDU4NTksMS4wNTg1OSwxLDEsMSwxLjA3MTg1LC45OTQxMywuOTYzMzQsMS4wODA2NSwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLERhPXtsaW5lSGVpZ2h0OjEuMjIwNyxsaW5lR2FwOi4yMjA3fSxGYT1bLjc2MTE2LDEsMSwxLjAwMDYsLjk5OTk4LC45OTk3NCwuOTk5NzMsLjk5OTczLC45OTk4MiwuOTk5NzcsMS4wMDA4NywuOTk5OTgsLjk5OTk4LC45OTk1OSwxLjAwMDAzLDEuMDAwNiwuOTk5OTgsMS4wMDA2LDEuMDAwNiwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTk4LDEsMS4wMDAwMywxLjAwMDAzLDEuMDAwMDMsMS4wMDAyNiwuOTk5OSwuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsMS4wMDAwMSwxLjAwMDI2LDEuMDAwMjIsLjk5OTc3LDEuMDAwNiwuOTk5NzMsLjk5OTc3LDEuMDAwMjYsLjk5OTk5LC45OTk3NywxLjAwMDIyLDEuMDAwMDEsMS4wMDAyMiwuOTk5NzcsMS4wMDAwMSwxLjAwMDI2LC45OTk3NywxLjAwMDAxLDEuMDAwMTYsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjYsLjk5OTk4LDEuMDAwNiwuOTk5OTgsMS4wMDAwMywuOTk5NzMsLjk5OTk4LC45OTk3MywxLjAwMDI2LC45OTk3MywxLjAwMDI2LC45OTk3MywuOTk5OTgsMS4wMDAyNiwxLjAwMDI2LDEuMDAwNiwxLjAwMDYsLjk5OTczLDEuMDAwNiwuOTk5ODIsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwuOTk5NTksLjk5OTczLC45OTk5OCwxLjAwMDI2LC45OTk3MywxLjAwMDIyLC45OTk3MywuOTk5NzMsMSwuOTk5NTksMS4wMDA3NywuOTk5NTksMS4wMDAwMywuOTk5OTgsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLDEuMDAwNzcsLjk5OTczLC45OTk5OCwxLjAwMDI1LC45OTk2OCwuOTk5NzMsMS4wMDAwMywxLjAwMDI1LC42MDI5OSwxLjAwMDI0LDEuMDY0MDksMSwxLC45OTk5OCwxLC45OTk3MywxLjAwMDYsLjk5OTk4LDEsLjk5OTM2LC45OTk3MywxLjAwMDAyLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDI2LC45OTk3NywuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsLjk5OTc3LDEsLjk5OTc3LDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTk3NywuOTk5NzcsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMjIsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMDMsMS4wMDAyMiwuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjYsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTgyLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wNjQwOSwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsLjk5OTczLDEuMDAwMjYsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LDEuMDMzNzQsLjk5OTc3LDEuMDAwMjYsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAyMiwxLjAwMDI2LDEuMDAwMjIsMS4wMDAyNiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAyMiwxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDQyLC45OTk3MywuOTk5NzMsMS4wMDA2LC45OTk3NywuOTk5NzMsLjk5OTczLDEuMDAwMjYsMS4wMDA2LDEuMDAwMjYsMS4wMDA2LDEuMDAwMjYsMS4wMzgyOCwxLjAwMDI2LC45OTk5OSwxLjAwMDI2LDEuMDAwNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5MywuOTk5OCwxLjAwMDI2LDEuMDAwMjIsMS4wMDAyNiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAyMiwxLjAwMDI2LDEsMS4wMDAxNiwuOTk5NzcsLjk5OTU5LC45OTk3NywuOTk5NTksLjk5OTc3LC45OTk1OSwxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDI2LC45OTk5OCwxLjAwMDI2LC44MTIxLDEuMDAwMjYsLjk5OTk4LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LDEuMDAwMTYsMS4wMDAyMiwxLjAwMDAxLC45OTk3MywxLjAwMDAxLDEuMDAwMjYsMSwxLjAwMDI2LDEsMS4wMDAyNiwxLDEuMDAwNiwuOTk5NzMsLjk5OTc3LC45OTk3MywxLC45OTk4MiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAwMSwuOTk5NzMsMS4wMDAyNiwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LDEuMDAwMzQsLjk5OTc3LDEsLjk5OTk3LDEuMDAwMjYsMS4wMDA3OCwxLjAwMDM2LC45OTk3MywxLjAwMDEzLDEuMDAwNiwuOTk5NzcsLjk5OTc3LC45OTk4OCwuODUxNDgsMS4wMDAwMSwxLjAwMDI2LC45OTk3NywxLjAwMDIyLDEuMDAwNiwuOTk5NzcsMS4wMDAwMSwuOTk5OTksLjk5OTc3LDEuMDAwNjksMS4wMDAyMiwuOTk5NzcsMS4wMDAwMSwuOTk5ODQsMS4wMDAyNiwxLjAwMDAxLDEuMDAwMjQsMS4wMDAwMSwuOTk5OSwxLDEuMDAwNiwxLjAwMDAxLDEuMDAwNDEsLjk5OTYyLDEuMDAwMjYsMS4wMDA2LC45OTk5NSwxLjAwMDQxLC45OTk0MiwuOTk5NzMsLjk5OTI3LDEuMDAwODIsLjk5OTAyLDEuMDAwMjYsMS4wMDA4NywxLjAwMDYsMS4wMDA2OSwuOTk5NzMsLjk5ODY3LC45OTk3MywuOTk5MywxLjAwMDI2LDEuMDAwNDksMS4wMDA1NiwxLC45OTk4OCwuOTk5MzUsLjk5OTk1LC45OTk1NCwxLjAwMDU1LC45OTk0NSwxLjAwMDMyLDEuMDAwNiwuOTk5OTUsMS4wMDAyNiwuOTk5OTUsMS4wMDAzMiwxLjAwMDAxLDEuMDAwMDgsLjk5OTcxLDEuMDAwMTksLjk5OTQsMS4wMDAwMSwxLjAwMDYsMS4wMDA0NCwuOTk5NzMsMS4wMDAyMywxLjAwMDQ3LDEsLjk5OTQyLC45OTU2MSwuOTk5ODksMS4wMDAzNSwuOTk5NzcsMS4wMDAzNSwuOTk5NzcsMS4wMDAxOSwuOTk5NDQsMS4wMDAwMSwxLjAwMDIxLC45OTkyNiwxLjAwMDM1LDEuMDAwMzUsLjk5OTQyLDEuMDAwNDgsLjk5OTk5LC45OTk3NywxLjAwMDIyLDEuMDAwMzUsMS4wMDAwMSwuOTk5NzcsMS4wMDAyNiwuOTk5ODksMS4wMDA1NywxLjAwMDAxLC45OTkzNiwxLjAwMDUyLDEuMDAwMTIsLjk5OTk2LDEuMDAwNDMsMSwxLjAwMDM1LC45OTk0LC45OTk3NiwxLjAwMDM1LC45OTk3MywxLjAwMDUyLDEuMDAwNDEsMS4wMDExOSwxLjAwMDM3LC45OTk3MywxLjAwMDAyLC45OTk4NiwxLjAwMDQxLDEuMDAwNDEsLjk5OTAyLC45OTk2LDEuMDAwMzQsLjk5OTk5LDEuMDAwMjYsLjk5OTk5LDEuMDAwMjYsLjk5OTczLDEuMDAwNTIsLjk5OTczLDEsLjk5OTczLDEuMDAwNDEsMS4wMDA3NSwuOTk5NCwxLjAwMDMsLjk5OTk5LDEsMS4wMDA0MSwuOTk5NTUsMSwuOTk5MTUsLjk5OTczLC45OTk3MywxLjAwMDI2LDEuMDAxMTksLjk5OTU1LC45OTk3MywxLjAwMDYsLjk5OTExLDEuMDAwNiwxLjAwMDI2LC45OTk3MiwxLjAwMDI2LC45OTkwMiwxLjAwMDQxLC45OTk3MywuOTk5OTksMSwxLDEuMDAwMzgsMS4wMDA1LDEuMDAwMTYsMS4wMDAyMiwxLjAwMDE2LDEuMDAwMjIsMS4wMDAxNiwxLjAwMDIyLDEuMDAwMDEsLjk5OTczLDEsMSwuOTk5NzMsMSwxLC45OTk1NSwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMSwxLDEsLjk5OTczLC45OTk3MywuOTk5NzIsMSwxLDEuMDAxMDYsLjk5OTk5LC45OTk5OCwuOTk5OTgsLjk5OTk5LC45OTk5OCwxLjY2NDc1LDEsLjk5OTczLC45OTk3MywxLjAwMDIzLC45OTk3MywuOTk5NzEsMS4wMDA0NywxLjAwMDIzLDEsLjk5OTkxLC45OTk4NCwxLjAwMDAyLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEsMSwxLDEsMSwxLDEsLjk5OTcyLDEsMS4yMDk4NSwxLjM5NzEzLDEuMDAwMDMsMS4wMDAzMSwxLjAwMDE1LDEsLjk5NTYxLDEuMDAwMjcsMS4wMDAzMSwxLjAwMDMxLC45OTkxNSwxLjAwMDMxLDEuMDAwMzEsLjk5OTk5LDEuMDAwMDMsLjk5OTk5LC45OTk5OSwxLjQxMTQ0LDEuNiwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDA1NzksMS40MDU3OSwxLjM2NjI1LC45OTk5OSwxLC45OTg2MSwuOTk4NjEsMSwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LC45OTk3MiwuOTk5OTksLjk5OTk5LC45OTk5OSwuOTk5OTksMS40MDQ4MywxLC45OTk3NywxLjAwMDU0LDEsMSwuOTk5NTMsLjk5OTYyLDEuMDAwNDIsLjk5OTUsMSwxLDEsMSwxLDEsMSwxLC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLFNhPXtsaW5lSGVpZ2h0OjEuMixsaW5lR2FwOi4yfSxrYT1bLjc2MTE2LDEsMSwxLjAwMDYsLjk5OTk4LC45OTk3NCwuOTk5NzMsLjk5OTczLC45OTk4MiwuOTk5NzcsMS4wMDA4NywuOTk5OTgsLjk5OTk4LC45OTk1OSwxLjAwMDAzLDEuMDAwNiwuOTk5OTgsMS4wMDA2LDEuMDAwNiwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTk4LDEsMS4wMDAwMywxLjAwMDAzLDEuMDAwMDMsMS4wMDAyNiwuOTk5OSwuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsMS4wMDAwMSwxLjAwMDI2LDEuMDAwMjIsLjk5OTc3LDEuMDAwNiwuOTk5NzMsLjk5OTc3LDEuMDAwMjYsLjk5OTk5LC45OTk3NywxLjAwMDIyLDEuMDAwMDEsMS4wMDAyMiwuOTk5NzcsMS4wMDAwMSwxLjAwMDI2LC45OTk3NywxLjAwMDAxLDEuMDAwMTYsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjYsLjk5OTk4LDEuMDAwNiwuOTk5OTgsMS4wMDAwMywuOTk5NzMsLjk5OTk4LC45OTk3MywxLjAwMDI2LC45OTk3MywxLjAwMDI2LC45OTk3MywuOTk5OTgsMS4wMDAyNiwxLjAwMDI2LDEuMDAwNiwxLjAwMDYsLjk5OTczLDEuMDAwNiwuOTk5ODIsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwuOTk5NTksLjk5OTczLC45OTk5OCwxLjAwMDI2LC45OTk3MywxLjAwMDIyLC45OTk3MywuOTk5NzMsMSwuOTk5NTksMS4wMDA3NywuOTk5NTksMS4wMDAwMywuOTk5OTgsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLDEuMDAwNzcsLjk5OTczLC45OTk5OCwxLjAwMDI1LC45OTk2OCwuOTk5NzMsMS4wMDAwMywxLjAwMDI1LC42MDI5OSwxLjAwMDI0LDEuMDY0MDksMSwxLC45OTk5OCwxLC45OTk3MywxLjAwMDYsLjk5OTk4LDEsLjk5OTM2LC45OTk3MywxLjAwMDAyLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDI2LC45OTk3NywuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsLjk5OTc3LDEsLjk5OTc3LDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTk3NywuOTk5NzcsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMjIsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMDMsMS4wMDAyMiwuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjYsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTgyLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wNjQwOSwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsLjk5OTczLDEuMDAwMjYsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LDEuMDA0NCwuOTk5NzcsMS4wMDAyNiwxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDIyLDEuMDAwMjYsMS4wMDAyMiwxLjAwMDI2LDEuMDAwMjIsMS4wMDAyNiwxLjAwMDIyLDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTk3MSwuOTk5NzMsLjk5OTczLDEuMDAwNiwuOTk5NzcsLjk5OTczLC45OTk3MywxLjAwMDI2LDEuMDAwNiwxLjAwMDI2LDEuMDAwNiwxLjAwMDI2LDEuMDEwMTEsMS4wMDAyNiwuOTk5OTksMS4wMDAyNiwxLjAwMDYsLjk5OTc3LDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsLjk5OTMsLjk5OTgsMS4wMDAyNiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAyMiwxLjAwMDI2LDEuMDAwMjIsMS4wMDAyNiwxLDEuMDAwMTYsLjk5OTc3LC45OTk1OSwuOTk5NzcsLjk5OTU5LC45OTk3NywuOTk5NTksMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAyNiwuOTk5OTgsMS4wMDAyNiwuODEyMSwxLjAwMDI2LC45OTk5OCwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwxLjAwMDE2LDEuMDAwMjIsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwxLjAwMDI2LDEsMS4wMDAyNiwxLDEuMDAwMjYsMSwxLjAwMDYsLjk5OTczLC45OTk3NywuOTk5NzMsMSwuOTk5ODIsMS4wMDAyMiwxLjAwMDI2LDEuMDAwMDEsLjk5OTczLDEuMDAwMjYsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTc3LDEsMSwxLjAwMDI2LC45OTk2OSwuOTk5NzIsLjk5OTgxLC45OTk4LDEuMDAwNiwuOTk5NzcsLjk5OTc3LDEuMDAwMjIsLjkxMTU1LDEuMDAwMDEsMS4wMDAyNiwuOTk5NzcsMS4wMDAyMiwxLjAwMDYsLjk5OTc3LDEuMDAwMDEsLjk5OTk5LC45OTk3NywuOTk5NjYsMS4wMDAyMiwxLjAwMDMyLDEuMDAwMDEsLjk5OTQ0LDEuMDAwMjYsMS4wMDAwMSwuOTk5NjgsMS4wMDAwMSwxLjAwMDQ3LDEsMS4wMDA2LDEuMDAwMDEsLjk5OTgxLDEuMDAxMDEsMS4wMDAyNiwxLjAwMDYsLjk5OTQ4LC45OTk4MSwxLjAwMDY0LC45OTk3MywuOTk5NDIsMS4wMDEwMSwxLjAwMDYxLDEuMDAwMjYsMS4wMDA2OSwxLjAwMDYsMS4wMDAxNCwuOTk5NzMsMS4wMTMyMiwuOTk5NzMsMS4wMDA2NSwxLjAwMDI2LDEuMDAwMTIsLjk5OTIzLDEsMS4wMDA2NCwxLjAwMDc2LC45OTk0OCwxLjAwMDU1LDEuMDAwNjMsMS4wMDAwNywuOTk5NDMsMS4wMDA2LC45OTk0OCwxLjAwMDI2LC45OTk0OCwuOTk5NDMsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjksMS4wMDAzOCwxLjAwMDM1LDEuMDAwMDEsMS4wMDA2LDEuMDAwNiwuOTk5NzMsLjk5OTc4LDEuMDAwMDEsMS4wMDA1NywuOTk5ODksLjk5OTY3LC45OTk2NCwuOTk5NjcsLjk5OTc3LC45OTk5OSwuOTk5NzcsMS4wMDAzOCwuOTk5NzcsMS4wMDAwMSwuOTk5NzMsMS4wMDA2NiwuOTk5NjcsLjk5OTY3LDEuMDAwNDEsLjk5OTk4LC45OTk5OSwuOTk5NzcsMS4wMDAyMiwuOTk5NjcsMS4wMDAwMSwuOTk5NzcsMS4wMDAyNiwuOTk5NjQsMS4wMDAzMSwxLjAwMDAxLC45OTk5OSwuOTk5OTksMSwxLjAwMDIzLDEsMSwuOTk5OTksMS4wMDAzNSwxLjAwMDAxLC45OTk5OSwuOTk5NzMsLjk5OTc3LC45OTk5OSwxLjAwMDU4LC45OTk3MywuOTk5NzMsLjk5OTU1LC45OTk1LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDMyLC45OTk4OSwxLjAwMDM0LC45OTk5OSwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwuOTk5NzMsLjQ1OTk4LC45OTk3MywxLjAwMDI2LC45OTk3MywxLjAwMDAxLC45OTk5OSwuOTk5ODIsLjk5OTk0LC45OTk5NiwxLDEuMDAwNDIsMS4wMDA0NCwxLjAwMDI5LDEuMDAwMjMsLjk5OTczLC45OTk3MywxLjAwMDI2LC45OTk0OSwxLjAwMDAyLC45OTk3MywxLjAwMDYsMS4wMDA2LDEuMDAwNiwuOTk5NzUsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMzIsLjk4Njg1LC45OTk3MywxLjAwMDI2LDEsMSwuOTk5NjYsMS4wMDA0NCwxLjAwMDE2LDEuMDAwMjIsMS4wMDAxNiwxLjAwMDIyLDEuMDAwMTYsMS4wMDAyMiwxLjAwMDAxLC45OTk3MywxLDEsLjk5OTczLDEsMSwuOTk5NTUsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEsMSwxLC45OTk3MywuOTk5NzMsLjk5OTcyLDEsMSwxLjAwMTA2LC45OTk5OSwuOTk5OTgsLjk5OTk4LC45OTk5OSwuOTk5OTgsMS42NjQ3NSwxLC45OTk3MywuOTk5NzMsMSwuOTk5NzMsLjk5OTcxLC45OTk3OCwxLDEsLjk5OTkxLC45OTk4NCwxLjAwMDAyLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEuMDAwOTgsMSwxLDEsMS4wMDA0OSwxLDEsLjk5OTcyLDEsMS4yMDk4NSwxLjM5NzEzLDEuMDAwMDMsMS4wMDAzMSwxLjAwMDE1LDEsLjk5NTYxLDEuMDAwMjcsMS4wMDAzMSwxLjAwMDMxLC45OTkxNSwxLjAwMDMxLDEuMDAwMzEsLjk5OTk5LDEuMDAwMDMsLjk5OTk5LC45OTk5OSwxLjQxMTQ0LDEuNiwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDA1NzksMS40MDU3OSwxLjM2NjI1LC45OTk5OSwxLC45OTg2MSwuOTk4NjEsMSwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LC45OTk3MiwuOTk5OTksLjk5OTk5LC45OTk5OSwuOTk5OTksMS40MDQ4MywxLC45OTk3NywxLjAwMDU0LDEsMSwuOTk5NTMsLjk5OTYyLDEuMDAwNDIsLjk5OTUsMSwxLDEsMSwxLDEsMSwxLC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLFJhPXtsaW5lSGVpZ2h0OjEuMzUsbGluZUdhcDouMn0sTmE9Wy43NjExNiwxLDEsMS4wMDA2LDEuMDAwNiwxLjAwMDA2LC45OTk3MywuOTk5NzMsLjk5OTgyLDEuMDAwMDEsMS4wMDA0MywuOTk5OTgsLjk5OTk4LC45OTk1OSwxLjAwMDAzLDEuMDAwNiwuOTk5OTgsMS4wMDA2LDEuMDAwNiwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDA2LDEsMS4wMDAwMywxLjAwMDAzLDEuMDAwMDMsLjk5OTczLC45OTk4NywxLjAwMDAxLDEuMDAwMDEsLjk5OTc3LC45OTk3NywxLjAwMDAxLDEuMDAwMjYsMS4wMDAyMiwuOTk5NzcsMS4wMDA2LDEsMS4wMDAwMSwuOTk5NzMsLjk5OTk5LC45OTk3NywxLjAwMDIyLDEuMDAwMDEsMS4wMDAyMiwuOTk5NzcsMS4wMDAwMSwxLjAwMDI2LC45OTk3NywxLjAwMDAxLDEuMDAwMTYsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsLjk5OTQ5LC45OTk3MywuOTk5OTgsLjk5OTczLC45OTk3MywxLC45OTk3MywuOTk5NzMsMS4wMDA2LC45OTk3MywuOTk5NzMsLjk5OTI0LC45OTkyNCwxLC45OTkyNCwuOTk5OTksLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk5OCwxLDEuMDAwNiwuOTk5NzMsMSwuOTk5NzcsMSwxLDEsMS4wMDAwNSwxLjAwMDksMS4wMDAwNSwxLjAwMDAzLC45OTk5OCwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDA5LC45OTk3MywuOTk5OTgsMS4wMDAyNSwuOTk5NjgsLjk5OTczLDEuMDAwMDMsMS4wMDAyNSwuNjAyOTksMS4wMDAyNCwxLjA2NDA5LDEsMSwuOTk5OTgsMSwuOTk5OCwxLjAwMDYsLjk5OTk4LDEsLjk5OTM2LC45OTk3MywxLjAwMDAyLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDI2LDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEsLjk5OTc3LDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTk3NywuOTk5NzcsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMjIsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMDMsMS4wMDAyMiwuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjYsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTgyLDEsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wNjQwOSwxLjAwMDI2LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLC45OTk3MywxLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLC45OTk3NywxLC45OTk3NywxLC45OTk3NywxLC45OTk3NywxLC45OTk3NywxLjAyODgsLjk5OTc3LC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDIyLC45OTk3MywxLjAwMDIyLC45OTk3MywxLjAwMDIyLC45OTk3MywxLjAwMDIyLC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTkyNCwxLjAwMDYsMS4wMDA2LC45OTk0NiwxLjAwMDM0LDEsLjk5OTI0LDEuMDAwMDEsMSwxLC45OTk3MywuOTk5MjQsLjk5OTczLC45OTkyNCwuOTk5NzMsMS4wNjMxMSwuOTk5NzMsMS4wMDAyNCwuOTk5NzMsLjk5OTI0LC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLDEuMDAwNDEsLjk5OTgsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEsMS4wMDAxNiwuOTk5NzcsLjk5OTk4LC45OTk3NywuOTk5OTgsLjk5OTc3LC45OTk5OCwxLjAwMDAxLDEsMS4wMDAwMSwxLDEuMDAwMDEsMSwxLjAwMDAxLDEsMS4wMDAyNiwxLjAwMDYsMS4wMDAyNiwuODk1NDcsMS4wMDAyNiwxLjAwMDYsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsMS4wMDAxNiwuOTk5NzcsMS4wMDAwMSwxLDEuMDAwMDEsMS4wMDAyNiwxLDEuMDAwMjYsMSwxLjAwMDI2LDEsLjk5OTI0LC45OTk3MywxLjAwMDAxLC45OTk3MywxLC45OTk4MiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAwMSwxLDEuMDAwMjYsMS4wMDA2LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsMS4wMDAwMSwxLDEuMDAwNTQsLjk5OTc3LDEuMDAwODQsMS4wMDAwNywuOTk5NzMsMS4wMDAxMywuOTk5MjQsMS4wMDAwMSwxLjAwMDAxLC45OTk0NSwuOTEyMjEsMS4wMDAwMSwxLjAwMDI2LC45OTk3NywxLjAwMDIyLDEuMDAwNiwxLjAwMDAxLDEuMDAwMDEsLjk5OTk5LC45OTk3NywuOTk5MzMsMS4wMDAyMiwxLjAwMDU0LDEuMDAwMDEsMS4wMDA2NSwxLjAwMDI2LDEuMDAwMDEsMS4wMDAxLDEuMDAwMDEsMS4wMDA1MiwxLDEuMDAwNiwxLjAwMDAxLC45OTk0NSwuOTk4OTcsLjk5OTY4LC45OTkyNCwxLjAwMDM2LC45OTk0NSwuOTk5NDksMSwxLjAwMDYsLjk5ODk3LC45OTkxOCwuOTk5NjgsLjk5OTExLC45OTkyNCwxLC45OTk2MiwxLjAxNDg3LDEsMS4wMDA1LC45OTk3MywxLjAwMDEyLDEuMDAwNDMsMSwuOTk5OTUsLjk5OTk0LDEuMDAwMzYsLjk5OTQ3LDEuMDAwMTksMS4wMDA2MywxLjAwMDI1LC45OTkyNCwxLjAwMDM2LC45OTk3MywxLjAwMDM2LDEuMDAwMjUsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjcsMS4wMDAxLDEuMDAwNjgsMS4wMDAwMSwxLjAwMDYsMS4wMDA2LDEsMS4wMDAwOCwuOTk5NTcsLjk5OTcyLC45OTk0LC45OTk1NCwuOTk5NzUsMS4wMDA1MSwxLjAwMDAxLDEuMDAwMTksMS4wMDAwMSwxLjAwMDEsLjk5OTg2LDEuMDAwMDEsMS4wMDAwMSwxLjAwMDM4LC45OTk1NCwuOTk5NTQsLjk5OTQsMS4wMDA2NiwuOTk5OTksLjk5OTc3LDEuMDAwMjIsMS4wMDA1NCwxLjAwMDAxLC45OTk3NywxLjAwMDI2LC45OTk3NSwxLjAwMDEsMS4wMDAwMSwuOTk5OTMsLjk5OTUsLjk5OTU1LDEuMDAwMTYsLjk5OTc4LC45OTk3NCwxLjAwMDE5LDEuMDAwMjIsLjk5OTU1LDEuMDAwNTMsLjk5OTczLDEuMDAwODksMS4wMDAwNSwuOTk5NjcsMS4wMDA0OCwuOTk5NzMsMS4wMDAwMiwxLjAwMDM0LC45OTk3MywuOTk5NzMsLjk5OTY0LDEuMDAwMDYsMS4wMDA2NiwuOTk5NDcsLjk5OTczLC45ODg5NCwuOTk5NzMsMSwuNDQ4OTgsMSwuOTk5NDYsMSwxLjAwMDM5LDEuMDAwODIsLjk5OTkxLC45OTk5MSwuOTk5ODUsMS4wMDAyMiwxLjAwMDIzLDEuMDAwNjEsMS4wMDAwNiwuOTk5NjYsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDAxOSwxLjAwMDgsMSwuOTk5MjQsLjk5OTI0LC45OTkyNCwuOTk5ODMsMS4wMDA0NCwuOTk5NzMsLjk5OTY0LC45ODMzMiwxLC45OTk3MywxLDEsLjk5OTYyLC45OTg5NSwxLjAwMDE2LC45OTk3NywxLjAwMDE2LC45OTk3NywxLjAwMDE2LC45OTk3NywxLjAwMDAxLDEsMSwxLC45OTk3MywxLDEsLjk5OTU1LC45OTkyNCwuOTk5MjQsLjk5OTI0LC45OTkyNCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5NzMsLjk5OTczLC45OTk3MiwxLDEsMS4wMDI2NywuOTk5OTksLjk5OTk4LC45OTk5OCwxLC45OTk5OCwxLjY2NDc1LDEsLjk5OTczLC45OTk3MywxLjAwMDIzLC45OTk3MywxLjAwNDIzLC45OTkyNSwuOTk5OTksMSwuOTk5OTEsLjk5OTg0LDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEuMDAwMDIsMS4wMDA0OSwxLDEuMDAyNDUsMSwxLDEsMSwuOTYzMjksMSwxLjIwOTg1LDEuMzk3MTMsMS4wMDAwMywuODI1NCwxLjAwMDE1LDEsMS4wMDAzNSwxLjAwMDI3LDEuMDAwMzEsMS4wMDAzMSwxLjAwMDAzLDEuMDAwMzEsMS4wMDAzMSwuOTk5OTksMS4wMDAwMywuOTk5OTksLjk5OTk5LDEuNDExNDQsMS42LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MDU3OSwxLjQwNTc5LDEuMzY2MjUsLjk5OTk5LDEsLjk5ODYxLC45OTg2MSwxLDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsLjk1MzE3LC45OTk5OSwuOTk5OTksLjk5OTk5LC45OTk5OSwxLjQwNDgzLDEsLjk5OTc3LDEuMDAwNTQsMSwxLC45OTk1MywuOTk5NjIsMS4wMDA0MiwuOTk5NSwxLDEsMSwxLDEsMSwxLDEsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sR2E9e2xpbmVIZWlnaHQ6MS4zNSxsaW5lR2FwOi4yfSxNYT1bLjc2MTE2LDEsMSwxLjAwMDYsMS4wMDA2LDEuMDAwMDYsLjk5OTczLC45OTk3MywuOTk5ODIsMS4wMDAwMSwxLjAwMDQzLC45OTk5OCwuOTk5OTgsLjk5OTU5LDEuMDAwMDMsMS4wMDA2LC45OTk5OCwxLjAwMDYsMS4wMDA2LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLjAwMDYsMSwxLjAwMDAzLDEuMDAwMDMsMS4wMDAwMywuOTk5NzMsLjk5OTg3LDEuMDAwMDEsMS4wMDAwMSwuOTk5NzcsLjk5OTc3LDEuMDAwMDEsMS4wMDAyNiwxLjAwMDIyLC45OTk3NywxLjAwMDYsMSwxLjAwMDAxLC45OTk3MywuOTk5OTksLjk5OTc3LDEuMDAwMjIsMS4wMDAwMSwxLjAwMDIyLC45OTk3NywxLjAwMDAxLDEuMDAwMjYsLjk5OTc3LDEuMDAwMDEsMS4wMDAxNiwxLjAwMDAxLDEuMDAwMDEsMS4wMDAyNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwuOTk5NDksLjk5OTczLC45OTk5OCwuOTk5NzMsLjk5OTczLDEsLjk5OTczLC45OTk3MywxLjAwMDYsLjk5OTczLC45OTk3MywuOTk5MjQsLjk5OTI0LDEsLjk5OTI0LC45OTk5OSwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTk4LDEsMS4wMDA2LC45OTk3MywxLC45OTk3NywxLDEsMSwxLjAwMDA1LDEuMDAwOSwxLjAwMDA1LDEuMDAwMDMsLjk5OTk4LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLjAwMDksLjk5OTczLC45OTk5OCwxLjAwMDI1LC45OTk2OCwuOTk5NzMsMS4wMDAwMywxLjAwMDI1LC42MDI5OSwxLjAwMDI0LDEuMDY0MDksMSwxLC45OTk5OCwxLC45OTk4LDEuMDAwNiwuOTk5OTgsMSwuOTk5MzYsLjk5OTczLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEuMDAwMjYsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMSwuOTk5NzcsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDAwMSwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsLjk5OTc3LC45OTk3NywxLjAwMDIyLDEuMDAwMjIsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMjIsMS4wMDAwMywxLjAwMDIyLC45OTk3NywuOTk5NzcsLjk5OTc3LC45OTk3NywxLjAwMDAxLDEuMDAwMDEsMS4wMDAyNiwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5ODIsMSwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLjA2NDA5LDEuMDAwMjYsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLDEsLjk5OTczLDEsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsLjk5OTc3LDEsLjk5OTc3LDEsLjk5OTc3LDEsLjk5OTc3LDEsLjk5OTc3LDEuMDQ1OTYsLjk5OTc3LC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDIyLC45OTk3MywxLjAwMDIyLC45OTk3MywxLjAwMDIyLC45OTk3MywxLjAwMDIyLC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTkyNCwxLjAwMDYsMS4wMDA2LDEuMDAwMTksMS4wMDAzNCwxLC45OTkyNCwxLjAwMDAxLDEsMSwuOTk5NzMsLjk5OTI0LC45OTk3MywuOTk5MjQsLjk5OTczLDEuMDI1NzIsLjk5OTczLDEuMDAwMDUsLjk5OTczLC45OTkyNCwuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5OTksLjk5OTgsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEsMS4wMDAxNiwuOTk5NzcsLjk5OTk4LC45OTk3NywuOTk5OTgsLjk5OTc3LC45OTk5OCwxLjAwMDAxLDEsMS4wMDAwMSwxLDEuMDAwMDEsMSwxLjAwMDAxLDEsMS4wMDAyNiwxLjAwMDYsMS4wMDAyNiwuODQ1MzMsMS4wMDAyNiwxLjAwMDYsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsMS4wMDAxNiwuOTk5NzcsMS4wMDAwMSwxLDEuMDAwMDEsMS4wMDAyNiwxLDEuMDAwMjYsMSwxLjAwMDI2LDEsLjk5OTI0LC45OTk3MywxLjAwMDAxLC45OTk3MywxLC45OTk4MiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAwMSwxLDEuMDAwMjYsMS4wMDA2LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTI4LDEsLjk5OTc3LDEuMDAwMTMsMS4wMDA1NSwuOTk5NDcsLjk5OTQ1LC45OTk0MSwuOTk5MjQsMS4wMDAwMSwxLjAwMDAxLDEuMDAwNCwuOTE2MjEsMS4wMDAwMSwxLjAwMDI2LC45OTk3NywxLjAwMDIyLDEuMDAwNiwxLjAwMDAxLDEuMDAwMDUsLjk5OTk5LC45OTk3NywxLjAwMDE1LDEuMDAwMjIsLjk5OTc3LDEuMDAwMDEsLjk5OTczLDEuMDAwMjYsMS4wMDAwMSwxLjAwMDE5LDEuMDAwMDEsLjk5OTQ2LDEsMS4wMDA2LDEuMDAwMDEsLjk5OTc4LDEuMDAwNDUsLjk5OTczLC45OTkyNCwxLjAwMDIzLC45OTk3OCwuOTk5NjYsMSwxLjAwMDY1LDEuMDAwNDUsMS4wMDAxOSwuOTk5NzMsLjk5OTczLC45OTkyNCwxLDEsLjk2NDk5LDEsMS4wMDA1NSwuOTk5NzMsMS4wMDAwOCwxLjAwMDI3LDEsLjk5OTcsLjk5OTk1LDEuMDAwMjMsLjk5OTMzLDEuMDAwMTksMS4wMDAxNSwxLjAwMDMxLC45OTkyNCwxLjAwMDIzLC45OTk3MywxLjAwMDIzLDEuMDAwMzEsMS4wMDAwMSwuOTk5MjgsMS4wMDAyOSwxLjAwMDkyLDEuMDAwMzUsMS4wMDAwMSwxLjAwMDYsMS4wMDA2LDEsLjk5OTg4LC45OTk3NSwxLDEuMDAwODIsLjk5NTYxLC45OTk2LDEuMDAwMzUsMS4wMDAwMSwuOTk5NjIsMS4wMDAwMSwxLjAwMDkyLC45OTk2NCwxLjAwMDAxLC45OTk2MywuOTk5OTksMS4wMDAzNSwxLjAwMDM1LDEuMDAwODIsLjk5OTYyLC45OTk5OSwuOTk5NzcsMS4wMDAyMiwxLjAwMDM1LDEuMDAwMDEsLjk5OTc3LDEuMDAwMjYsLjk5OTYsLjk5OTY3LDEuMDAwMDEsMS4wMDAzNCwxLjAwMDc0LDEuMDAwNTQsMS4wMDA1MywxLjAwMDYzLC45OTk3MSwuOTk5NjIsMS4wMDAzNSwuOTk5NzUsLjk5OTc3LC45OTk3MywxLjAwMDQzLC45OTk1MywxLjAwMDcsLjk5OTE1LC45OTk3MywxLjAwMDA4LC45OTg5MiwxLjAwMDczLDEuMDAwNzMsMS4wMDExNCwuOTk5MTUsMS4wMDA3MywuOTk5NTUsLjk5OTczLDEuMDAwOTIsLjk5OTczLDEsLjk5OTk4LDEsMS4wMDAzLDEsMS4wMDA0MywxLjAwMDAxLC45OTk2OSwxLjAwMDMsMSwxLjAwMDM1LDEuMDAwMDEsLjk5OTUsMSwxLjAwMDkyLC45OTk3MywuOTk5NzMsLjk5OTczLDEuMDAwNywuOTk5NSwxLC45OTkyNCwxLjAwMDYsLjk5OTI0LC45OTk3MiwxLjAwMDYyLC45OTk3MywxLjAwMTE0LDEuMDAwNzMsMSwuOTk5NTUsMSwxLDEuMDAwNDcsLjk5OTY4LDEuMDAwMTYsLjk5OTc3LDEuMDAwMTYsLjk5OTc3LDEuMDAwMTYsLjk5OTc3LDEuMDAwMDEsMSwxLDEsLjk5OTczLDEsMSwuOTk5NTUsLjk5OTI0LC45OTkyNCwuOTk5MjQsLjk5OTI0LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk3MywuOTk5NzMsLjk5OTcyLDEsMSwxLjAwMjY3LC45OTk5OSwuOTk5OTgsLjk5OTk4LDEsLjk5OTk4LDEuNjY0NzUsMSwuOTk5NzMsLjk5OTczLDEuMDAwMjMsLjk5OTczLC45OTk3MSwuOTk5MjUsMS4wMDAyMywxLC45OTk5MSwuOTk5ODQsMS4wMDAwMiwxLjAwMDAyLDEuMDAwMDIsMS4wMDAwMiwxLDEsMSwxLDEsMSwxLC45NjMyOSwxLDEuMjA5ODUsMS4zOTcxMywxLjAwMDAzLC44MjU0LDEuMDAwMTUsMSwxLjAwMDM1LDEuMDAwMjcsMS4wMDAzMSwxLjAwMDMxLC45OTkxNSwxLjAwMDMxLDEuMDAwMzEsLjk5OTk5LDEuMDAwMDMsLjk5OTk5LC45OTk5OSwxLjQxMTQ0LDEuNiwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDA1NzksMS40MDU3OSwxLjM2NjI1LC45OTk5OSwxLC45OTg2MSwuOTk4NjEsMSwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LC45NTMxNywuOTk5OTksLjk5OTk5LC45OTk5OSwuOTk5OTksMS40MDQ4MywxLC45OTk3NywxLjAwMDU0LDEsMSwuOTk5NTMsLjk5OTYyLDEuMDAwNDIsLjk5OTUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSxVYT17bGluZUhlaWdodDoxLjIsbGluZUdhcDouMn0seGE9WzM2NSwwLDMzMywyNzgsMzMzLDQ3NCw1NTYsNTU2LDg4OSw3MjIsMjM4LDMzMywzMzMsMzg5LDU4NCwyNzgsMzMzLDI3OCwyNzgsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDMzMywzMzMsNTg0LDU4NCw1ODQsNjExLDk3NSw3MjIsNzIyLDcyMiw3MjIsNjY3LDYxMSw3NzgsNzIyLDI3OCw1NTYsNzIyLDYxMSw4MzMsNzIyLDc3OCw2NjcsNzc4LDcyMiw2NjcsNjExLDcyMiw2NjcsOTQ0LDY2Nyw2NjcsNjExLDMzMywyNzgsMzMzLDU4NCw1NTYsMzMzLDU1Niw2MTEsNTU2LDYxMSw1NTYsMzMzLDYxMSw2MTEsMjc4LDI3OCw1NTYsMjc4LDg4OSw2MTEsNjExLDYxMSw2MTEsMzg5LDU1NiwzMzMsNjExLDU1Niw3NzgsNTU2LDU1Niw1MDAsMzg5LDI4MCwzODksNTg0LDMzMyw1NTYsNTU2LDU1Niw1NTYsMjgwLDU1NiwzMzMsNzM3LDM3MCw1NTYsNTg0LDczNyw1NTIsNDAwLDU0OSwzMzMsMzMzLDMzMyw1NzYsNTU2LDI3OCwzMzMsMzMzLDM2NSw1NTYsODM0LDgzNCw4MzQsNjExLDcyMiw3MjIsNzIyLDcyMiw3MjIsNzIyLDFlMyw3MjIsNjY3LDY2Nyw2NjcsNjY3LDI3OCwyNzgsMjc4LDI3OCw3MjIsNzIyLDc3OCw3NzgsNzc4LDc3OCw3NzgsNTg0LDc3OCw3MjIsNzIyLDcyMiw3MjIsNjY3LDY2Nyw2MTEsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsODg5LDU1Niw1NTYsNTU2LDU1Niw1NTYsMjc4LDI3OCwyNzgsMjc4LDYxMSw2MTEsNjExLDYxMSw2MTEsNjExLDYxMSw1NDksNjExLDYxMSw2MTEsNjExLDYxMSw1NTYsNjExLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw3MTksNzIyLDYxMSw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNzc4LDYxMSw3NzgsNjExLDc3OCw2MTEsNzc4LDYxMSw3MjIsNjExLDcyMiw2MTEsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDc4NSw1NTYsNTU2LDI3OCw3MjIsNTU2LDU1Niw2MTEsMjc4LDYxMSwyNzgsNjExLDM4NSw2MTEsNDc5LDYxMSwyNzgsNzIyLDYxMSw3MjIsNjExLDcyMiw2MTEsNzA4LDcyMyw2MTEsNzc4LDYxMSw3NzgsNjExLDc3OCw2MTEsMWUzLDk0NCw3MjIsMzg5LDcyMiwzODksNzIyLDM4OSw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDYxMSwzMzMsNjExLDQ3OSw2MTEsMzMzLDcyMiw2MTEsNzIyLDYxMSw3MjIsNjExLDcyMiw2MTEsNzIyLDYxMSw3MjIsNjExLDk0NCw3NzgsNjY3LDU1Niw2NjcsNjExLDUwMCw2MTEsNTAwLDYxMSw1MDAsMjc4LDU1Niw3MjIsNTU2LDFlMyw4ODksNzc4LDYxMSw2NjcsNTU2LDYxMSwzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDQ2NSw3MjIsMzMzLDg1Myw5MDYsNDc0LDgyNSw5MjcsODM4LDI3OCw3MjIsNzIyLDYwMSw3MTksNjY3LDYxMSw3MjIsNzc4LDI3OCw3MjIsNjY3LDgzMyw3MjIsNjQ0LDc3OCw3MjIsNjY3LDYwMCw2MTEsNjY3LDgyMSw2NjcsODA5LDgwMiwyNzgsNjY3LDYxNSw0NTEsNjExLDI3OCw1ODIsNjE1LDYxMCw1NTYsNjA2LDQ3NSw0NjAsNjExLDU0MSwyNzgsNTU4LDU1Niw2MTIsNTU2LDQ0NSw2MTEsNzY2LDYxOSw1MjAsNjg0LDQ0Niw1ODIsNzE1LDU3Niw3NTMsODQ1LDI3OCw1ODIsNjExLDU4Miw4NDUsNjY3LDY2OSw4ODUsNTY3LDcxMSw2NjcsMjc4LDI3Niw1NTYsMTA5NCwxMDYyLDg3NSw2MTAsNzIyLDYyMiw3MTksNzIyLDcxOSw3MjIsNTY3LDcxMiw2NjcsOTA0LDYyNiw3MTksNzE5LDYxMCw3MDIsODMzLDcyMiw3NzgsNzE5LDY2Nyw3MjIsNjExLDYyMiw4NTQsNjY3LDczMCw3MDMsMTAwNSwxMDE5LDg3MCw5NzksNzE5LDcxMSwxMDMxLDcxOSw1NTYsNjE4LDYxNSw0MTcsNjM1LDU1Niw3MDksNDk3LDYxNSw2MTUsNTAwLDYzNSw3NDAsNjA0LDYxMSw2MDQsNjExLDU1Niw0OTAsNTU2LDg3NSw1NTYsNjE1LDU4MSw4MzMsODQ0LDcyOSw4NTQsNjE1LDU1Miw4NTQsNTgzLDU1Niw1NTYsNjExLDQxNyw1NTIsNTU2LDI3OCwyODEsMjc4LDk2OSw5MDYsNjExLDUwMCw2MTUsNTU2LDYwNCw3NzgsNjExLDQ4Nyw0NDcsOTQ0LDc3OCw5NDQsNzc4LDk0NCw3NzgsNjY3LDU1NiwzMzMsMzMzLDU1NiwxZTMsMWUzLDU1MiwyNzgsMjc4LDI3OCwyNzgsNTAwLDUwMCw1MDAsNTU2LDU1NiwzNTAsMWUzLDFlMywyNDAsNDc5LDMzMywzMzMsNjA0LDMzMywxNjcsMzk2LDU1Niw1NTYsMTA5NCw1NTYsODg1LDQ4OSwxMTE1LDFlMyw3NjgsNjAwLDgzNCw4MzQsODM0LDgzNCwxZTMsNTAwLDFlMyw1MDAsMWUzLDUwMCw1MDAsNDk0LDYxMiw4MjMsNzEzLDU4NCw1NDksNzEzLDk3OSw3MjIsMjc0LDU0OSw1NDksNTgzLDU0OSw1NDksNjA0LDU4NCw2MDQsNjA0LDcwOCw2MjUsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzI5LDYwNCw2MDQsMzU0LDM1NCwxZTMsOTkwLDk5MCw5OTAsOTkwLDQ5NCw2MDQsNjA0LDYwNCw2MDQsMzU0LDEwMjEsMTA1Miw5MTcsNzUwLDc1MCw1MzEsNjU2LDU5NCw1MTAsNTAwLDc1MCw3NTAsNjExLDYxMSwzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDIyMiwyMjIsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzM10sTGE9Wy0xLC0xLC0xLDMyLDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyLDQzLDQ0LDQ1LDQ2LDQ3LDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDU4LDU5LDYwLDYxLDYyLDYzLDY0LDY1LDY2LDY3LDY4LDY5LDcwLDcxLDcyLDczLDc0LDc1LDc2LDc3LDc4LDc5LDgwLDgxLDgyLDgzLDg0LDg1LDg2LDg3LDg4LDg5LDkwLDkxLDkyLDkzLDk0LDk1LDk2LDk3LDk4LDk5LDEwMCwxMDEsMTAyLDEwMywxMDQsMTA1LDEwNiwxMDcsMTA4LDEwOSwxMTAsMTExLDExMiwxMTMsMTE0LDExNSwxMTYsMTE3LDExOCwxMTksMTIwLDEyMSwxMjIsMTIzLDEyNCwxMjUsMTI2LDE2MSwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEsMTcyLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4NiwxODcsMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwyMTEsMjEyLDIxMywyMTQsMjE1LDIxNiwyMTcsMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsMjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywyMzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsMjQ4LDI0OSwyNTAsMjUxLDI1MiwyNTMsMjU0LDI1NSwyNTYsMjU3LDI1OCwyNTksMjYwLDI2MSwyNjIsMjYzLDI2NCwyNjUsMjY2LDI2NywyNjgsMjY5LDI3MCwyNzEsMjcyLDI3MywyNzQsMjc1LDI3NiwyNzcsMjc4LDI3OSwyODAsMjgxLDI4MiwyODMsMjg0LDI4NSwyODYsMjg3LDI4OCwyODksMjkwLDI5MSwyOTIsMjkzLDI5NCwyOTUsMjk2LDI5NywyOTgsMjk5LDMwMCwzMDEsMzAyLDMwMywzMDQsMzA1LDMwNiwzMDcsMzA4LDMwOSwzMTAsMzExLDMxMiwzMTMsMzE0LDMxNSwzMTYsMzE3LDMxOCwzMTksMzIwLDMyMSwzMjIsMzIzLDMyNCwzMjUsMzI2LDMyNywzMjgsMzI5LDMzMCwzMzEsMzMyLDMzMywzMzQsMzM1LDMzNiwzMzcsMzM4LDMzOSwzNDAsMzQxLDM0MiwzNDMsMzQ0LDM0NSwzNDYsMzQ3LDM0OCwzNDksMzUwLDM1MSwzNTIsMzUzLDM1NCwzNTUsMzU2LDM1NywzNTgsMzU5LDM2MCwzNjEsMzYyLDM2MywzNjQsMzY1LDM2NiwzNjcsMzY4LDM2OSwzNzAsMzcxLDM3MiwzNzMsMzc0LDM3NSwzNzYsMzc3LDM3OCwzNzksMzgwLDM4MSwzODIsMzgzLDQwMiw1MDYsNTA3LDUwOCw1MDksNTEwLDUxMSw1MzYsNTM3LDUzOCw1MzksNzEwLDcxMSw3MTMsNzI4LDcyOSw3MzAsNzMxLDczMiw3MzMsOTAwLDkwMSw5MDIsOTAzLDkwNCw5MDUsOTA2LDkwOCw5MTAsOTExLDkxMiw5MTMsOTE0LDkxNSw5MTYsOTE3LDkxOCw5MTksOTIwLDkyMSw5MjIsOTIzLDkyNCw5MjUsOTI2LDkyNyw5MjgsOTI5LDkzMSw5MzIsOTMzLDkzNCw5MzUsOTM2LDkzNyw5MzgsOTM5LDk0MCw5NDEsOTQyLDk0Myw5NDQsOTQ1LDk0Niw5NDcsOTQ4LDk0OSw5NTAsOTUxLDk1Miw5NTMsOTU0LDk1NSw5NTYsOTU3LDk1OCw5NTksOTYwLDk2MSw5NjIsOTYzLDk2NCw5NjUsOTY2LDk2Nyw5NjgsOTY5LDk3MCw5NzEsOTcyLDk3Myw5NzQsMTAyNCwxMDI1LDEwMjYsMTAyNywxMDI4LDEwMjksMTAzMCwxMDMxLDEwMzIsMTAzMywxMDM0LDEwMzUsMTAzNiwxMDM3LDEwMzgsMTAzOSwxMDQwLDEwNDEsMTA0MiwxMDQzLDEwNDQsMTA0NSwxMDQ2LDEwNDcsMTA0OCwxMDQ5LDEwNTAsMTA1MSwxMDUyLDEwNTMsMTA1NCwxMDU1LDEwNTYsMTA1NywxMDU4LDEwNTksMTA2MCwxMDYxLDEwNjIsMTA2MywxMDY0LDEwNjUsMTA2NiwxMDY3LDEwNjgsMTA2OSwxMDcwLDEwNzEsMTA3MiwxMDczLDEwNzQsMTA3NSwxMDc2LDEwNzcsMTA3OCwxMDc5LDEwODAsMTA4MSwxMDgyLDEwODMsMTA4NCwxMDg1LDEwODYsMTA4NywxMDg4LDEwODksMTA5MCwxMDkxLDEwOTIsMTA5MywxMDk0LDEwOTUsMTA5NiwxMDk3LDEwOTgsMTA5OSwxMTAwLDExMDEsMTEwMiwxMTAzLDExMDQsMTEwNSwxMTA2LDExMDcsMTEwOCwxMTA5LDExMTAsMTExMSwxMTEyLDExMTMsMTExNCwxMTE1LDExMTYsMTExNywxMTE4LDExMTksMTEzOCwxMTM5LDExNjgsMTE2OSw3ODA4LDc4MDksNzgxMCw3ODExLDc4MTIsNzgxMyw3OTIyLDc5MjMsODIwOCw4MjA5LDgyMTEsODIxMiw4MjEzLDgyMTUsODIxNiw4MjE3LDgyMTgsODIxOSw4MjIwLDgyMjEsODIyMiw4MjI0LDgyMjUsODIyNiw4MjMwLDgyNDAsODI0Miw4MjQzLDgyNDksODI1MCw4MjUyLDgyNTQsODI2MCw4MzE5LDgzNTUsODM1Niw4MzU5LDgzNjQsODQ1Myw4NDY3LDg0NzAsODQ4Miw4NDg2LDg0OTQsODUzOSw4NTQwLDg1NDEsODU0Miw4NTkyLDg1OTMsODU5NCw4NTk1LDg1OTYsODU5Nyw4NjE2LDg3MDYsODcxMCw4NzE5LDg3MjEsODcyMiw4NzMwLDg3MzQsODczNSw4NzQ1LDg3NDcsODc3Niw4ODAwLDg4MDEsODgwNCw4ODA1LDg5NjIsODk3Niw4OTkyLDg5OTMsOTQ3Miw5NDc0LDk0ODQsOTQ4OCw5NDkyLDk0OTYsOTUwMCw5NTA4LDk1MTYsOTUyNCw5NTMyLDk1NTIsOTU1Myw5NTU0LDk1NTUsOTU1Niw5NTU3LDk1NTgsOTU1OSw5NTYwLDk1NjEsOTU2Miw5NTYzLDk1NjQsOTU2NSw5NTY2LDk1NjcsOTU2OCw5NTY5LDk1NzAsOTU3MSw5NTcyLDk1NzMsOTU3NCw5NTc1LDk1NzYsOTU3Nyw5NTc4LDk1NzksOTU4MCw5NjAwLDk2MDQsOTYwOCw5NjEyLDk2MTYsOTYxNyw5NjE4LDk2MTksOTYzMiw5NjMzLDk2NDIsOTY0Myw5NjQ0LDk2NTAsOTY1OCw5NjYwLDk2NjgsOTY3NCw5Njc1LDk2NzksOTY4OCw5Njg5LDk3MDIsOTc4Niw5Nzg3LDk3ODgsOTc5Miw5Nzk0LDk4MjQsOTgyNyw5ODI5LDk4MzAsOTgzNCw5ODM1LDk4MzYsNjE0NDEsNjE0NDIsNjE0NDUsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTFdLEhhPVszNjUsMCwzMzMsMjc4LDMzMyw0NzQsNTU2LDU1Niw4ODksNzIyLDIzOCwzMzMsMzMzLDM4OSw1ODQsMjc4LDMzMywyNzgsMjc4LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1NiwzMzMsMzMzLDU4NCw1ODQsNTg0LDYxMSw5NzUsNzIyLDcyMiw3MjIsNzIyLDY2Nyw2MTEsNzc4LDcyMiwyNzgsNTU2LDcyMiw2MTEsODMzLDcyMiw3NzgsNjY3LDc3OCw3MjIsNjY3LDYxMSw3MjIsNjY3LDk0NCw2NjcsNjY3LDYxMSwzMzMsMjc4LDMzMyw1ODQsNTU2LDMzMyw1NTYsNjExLDU1Niw2MTEsNTU2LDMzMyw2MTEsNjExLDI3OCwyNzgsNTU2LDI3OCw4ODksNjExLDYxMSw2MTEsNjExLDM4OSw1NTYsMzMzLDYxMSw1NTYsNzc4LDU1Niw1NTYsNTAwLDM4OSwyODAsMzg5LDU4NCwzMzMsNTU2LDU1Niw1NTYsNTU2LDI4MCw1NTYsMzMzLDczNywzNzAsNTU2LDU4NCw3MzcsNTUyLDQwMCw1NDksMzMzLDMzMywzMzMsNTc2LDU1NiwyNzgsMzMzLDMzMywzNjUsNTU2LDgzNCw4MzQsODM0LDYxMSw3MjIsNzIyLDcyMiw3MjIsNzIyLDcyMiwxZTMsNzIyLDY2Nyw2NjcsNjY3LDY2NywyNzgsMjc4LDI3OCwyNzgsNzIyLDcyMiw3NzgsNzc4LDc3OCw3NzgsNzc4LDU4NCw3NzgsNzIyLDcyMiw3MjIsNzIyLDY2Nyw2NjcsNjExLDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDg4OSw1NTYsNTU2LDU1Niw1NTYsNTU2LDI3OCwyNzgsMjc4LDI3OCw2MTEsNjExLDYxMSw2MTEsNjExLDYxMSw2MTEsNTQ5LDYxMSw2MTEsNjExLDYxMSw2MTEsNTU2LDYxMSw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNzQwLDcyMiw2MTEsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDc3OCw2MTEsNzc4LDYxMSw3NzgsNjExLDc3OCw2MTEsNzIyLDYxMSw3MjIsNjExLDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDI3OCw3ODIsNTU2LDU1NiwyNzgsNzIyLDU1Niw1NTYsNjExLDI3OCw2MTEsMjc4LDYxMSwzOTYsNjExLDQ3OSw2MTEsMjc4LDcyMiw2MTEsNzIyLDYxMSw3MjIsNjExLDcwOCw3MjMsNjExLDc3OCw2MTEsNzc4LDYxMSw3NzgsNjExLDFlMyw5NDQsNzIyLDM4OSw3MjIsMzg5LDcyMiwzODksNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2MTEsMzMzLDYxMSw0NzksNjExLDMzMyw3MjIsNjExLDcyMiw2MTEsNzIyLDYxMSw3MjIsNjExLDcyMiw2MTEsNzIyLDYxMSw5NDQsNzc4LDY2Nyw1NTYsNjY3LDYxMSw1MDAsNjExLDUwMCw2MTEsNTAwLDI3OCw1NTYsNzIyLDU1NiwxZTMsODg5LDc3OCw2MTEsNjY3LDU1Niw2MTEsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsNzIyLDMzMyw4NTQsOTA2LDQ3Myw4NDQsOTMwLDg0NywyNzgsNzIyLDcyMiw2MTAsNjcxLDY2Nyw2MTEsNzIyLDc3OCwyNzgsNzIyLDY2Nyw4MzMsNzIyLDY1Nyw3NzgsNzE4LDY2Nyw1OTAsNjExLDY2Nyw4MjIsNjY3LDgyOSw3ODEsMjc4LDY2Nyw2MjAsNDc5LDYxMSwyNzgsNTkxLDYyMCw2MjEsNTU2LDYxMCw0NzksNDkyLDYxMSw1NTgsMjc4LDU2Niw1NTYsNjAzLDU1Niw0NTAsNjExLDcxMiw2MDUsNTMyLDY2NCw0MDksNTkxLDcwNCw1NzgsNzczLDgzNCwyNzgsNTkxLDYxMSw1OTEsODM0LDY2Nyw2NjcsODg2LDYxNCw3MTksNjY3LDI3OCwyNzgsNTU2LDEwOTQsMTA0Miw4NTQsNjIyLDcxOSw2NzcsNzE5LDcyMiw3MDgsNzIyLDYxNCw3MjIsNjY3LDkyNyw2NDMsNzE5LDcxOSw2MTUsNjg3LDgzMyw3MjIsNzc4LDcxOSw2NjcsNzIyLDYxMSw2NzcsNzgxLDY2Nyw3MjksNzA4LDk3OSw5ODksODU0LDFlMyw3MDgsNzE5LDEwNDIsNzI5LDU1Niw2MTksNjA0LDUzNCw2MTgsNTU2LDczNiw1MTAsNjExLDYxMSw1MDcsNjIyLDc0MCw2MDQsNjExLDYxMSw2MTEsNTU2LDg4OSw1NTYsODg1LDU1Niw2NDYsNTgzLDg4OSw5MzUsNzA3LDg1NCw1OTQsNTUyLDg2NSw1ODksNTU2LDU1Niw2MTEsNDY5LDU2Myw1NTYsMjc4LDI3OCwyNzgsOTY5LDkwNiw2MTEsNTA3LDYxOSw1NTYsNjExLDc3OCw2MTEsNTc1LDQ2Nyw5NDQsNzc4LDk0NCw3NzgsOTQ0LDc3OCw2NjcsNTU2LDMzMywzMzMsNTU2LDFlMywxZTMsNTUyLDI3OCwyNzgsMjc4LDI3OCw1MDAsNTAwLDUwMCw1NTYsNTU2LDM1MCwxZTMsMWUzLDI0MCw0NzksMzMzLDMzMyw2MDQsMzMzLDE2NywzOTYsNTU2LDU1NiwxMTA0LDU1Niw4ODUsNTE2LDExNDYsMWUzLDc2OCw2MDAsODM0LDgzNCw4MzQsODM0LDk5OSw1MDAsMWUzLDUwMCwxZTMsNTAwLDUwMCw0OTQsNjEyLDgyMyw3MTMsNTg0LDU0OSw3MTMsOTc5LDcyMiwyNzQsNTQ5LDU0OSw1ODMsNTQ5LDU0OSw2MDQsNTg0LDYwNCw2MDQsNzA4LDYyNSw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MjksNjA0LDYwNCwzNTQsMzU0LDFlMyw5OTAsOTkwLDk5MCw5OTAsNDk0LDYwNCw2MDQsNjA0LDYwNCwzNTQsMTAyMSwxMDUyLDkxNyw3NTAsNzUwLDUzMSw2NTYsNTk0LDUxMCw1MDAsNzUwLDc1MCw2MTEsNjExLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMjIyLDIyMiwzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzXSxKYT1bLTEsLTEsLTEsMzIsMzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsNDIsNDMsNDQsNDUsNDYsNDcsNDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsNTgsNTksNjAsNjEsNjIsNjMsNjQsNjUsNjYsNjcsNjgsNjksNzAsNzEsNzIsNzMsNzQsNzUsNzYsNzcsNzgsNzksODAsODEsODIsODMsODQsODUsODYsODcsODgsODksOTAsOTEsOTIsOTMsOTQsOTUsOTYsOTcsOTgsOTksMTAwLDEwMSwxMDIsMTAzLDEwNCwxMDUsMTA2LDEwNywxMDgsMTA5LDExMCwxMTEsMTEyLDExMywxMTQsMTE1LDExNiwxMTcsMTE4LDExOSwxMjAsMTIxLDEyMiwxMjMsMTI0LDEyNSwxMjYsMTYxLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3MSwxNzIsMTc0LDE3NSwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUsMTg2LDE4NywxODgsMTg5LDE5MCwxOTEsMTkyLDE5MywxOTQsMTk1LDE5NiwxOTcsMTk4LDE5OSwyMDAsMjAxLDIwMiwyMDMsMjA0LDIwNSwyMDYsMjA3LDIwOCwyMDksMjEwLDIxMSwyMTIsMjEzLDIxNCwyMTUsMjE2LDIxNywyMTgsMjE5LDIyMCwyMjEsMjIyLDIyMywyMjQsMjI1LDIyNiwyMjcsMjI4LDIyOSwyMzAsMjMxLDIzMiwyMzMsMjM0LDIzNSwyMzYsMjM3LDIzOCwyMzksMjQwLDI0MSwyNDIsMjQzLDI0NCwyNDUsMjQ2LDI0NywyNDgsMjQ5LDI1MCwyNTEsMjUyLDI1MywyNTQsMjU1LDI1NiwyNTcsMjU4LDI1OSwyNjAsMjYxLDI2MiwyNjMsMjY0LDI2NSwyNjYsMjY3LDI2OCwyNjksMjcwLDI3MSwyNzIsMjczLDI3NCwyNzUsMjc2LDI3NywyNzgsMjc5LDI4MCwyODEsMjgyLDI4MywyODQsMjg1LDI4NiwyODcsMjg4LDI4OSwyOTAsMjkxLDI5MiwyOTMsMjk0LDI5NSwyOTYsMjk3LDI5OCwyOTksMzAwLDMwMSwzMDIsMzAzLDMwNCwzMDUsMzA2LDMwNywzMDgsMzA5LDMxMCwzMTEsMzEyLDMxMywzMTQsMzE1LDMxNiwzMTcsMzE4LDMxOSwzMjAsMzIxLDMyMiwzMjMsMzI0LDMyNSwzMjYsMzI3LDMyOCwzMjksMzMwLDMzMSwzMzIsMzMzLDMzNCwzMzUsMzM2LDMzNywzMzgsMzM5LDM0MCwzNDEsMzQyLDM0MywzNDQsMzQ1LDM0NiwzNDcsMzQ4LDM0OSwzNTAsMzUxLDM1MiwzNTMsMzU0LDM1NSwzNTYsMzU3LDM1OCwzNTksMzYwLDM2MSwzNjIsMzYzLDM2NCwzNjUsMzY2LDM2NywzNjgsMzY5LDM3MCwzNzEsMzcyLDM3MywzNzQsMzc1LDM3NiwzNzcsMzc4LDM3OSwzODAsMzgxLDM4MiwzODMsNDAyLDUwNiw1MDcsNTA4LDUwOSw1MTAsNTExLDUzNiw1MzcsNTM4LDUzOSw3MTAsNzExLDcxMyw3MjgsNzI5LDczMCw3MzEsNzMyLDczMyw5MDAsOTAxLDkwMiw5MDMsOTA0LDkwNSw5MDYsOTA4LDkxMCw5MTEsOTEyLDkxMyw5MTQsOTE1LDkxNiw5MTcsOTE4LDkxOSw5MjAsOTIxLDkyMiw5MjMsOTI0LDkyNSw5MjYsOTI3LDkyOCw5MjksOTMxLDkzMiw5MzMsOTM0LDkzNSw5MzYsOTM3LDkzOCw5MzksOTQwLDk0MSw5NDIsOTQzLDk0NCw5NDUsOTQ2LDk0Nyw5NDgsOTQ5LDk1MCw5NTEsOTUyLDk1Myw5NTQsOTU1LDk1Niw5NTcsOTU4LDk1OSw5NjAsOTYxLDk2Miw5NjMsOTY0LDk2NSw5NjYsOTY3LDk2OCw5NjksOTcwLDk3MSw5NzIsOTczLDk3NCwxMDI0LDEwMjUsMTAyNiwxMDI3LDEwMjgsMTAyOSwxMDMwLDEwMzEsMTAzMiwxMDMzLDEwMzQsMTAzNSwxMDM2LDEwMzcsMTAzOCwxMDM5LDEwNDAsMTA0MSwxMDQyLDEwNDMsMTA0NCwxMDQ1LDEwNDYsMTA0NywxMDQ4LDEwNDksMTA1MCwxMDUxLDEwNTIsMTA1MywxMDU0LDEwNTUsMTA1NiwxMDU3LDEwNTgsMTA1OSwxMDYwLDEwNjEsMTA2MiwxMDYzLDEwNjQsMTA2NSwxMDY2LDEwNjcsMTA2OCwxMDY5LDEwNzAsMTA3MSwxMDcyLDEwNzMsMTA3NCwxMDc1LDEwNzYsMTA3NywxMDc4LDEwNzksMTA4MCwxMDgxLDEwODIsMTA4MywxMDg0LDEwODUsMTA4NiwxMDg3LDEwODgsMTA4OSwxMDkwLDEwOTEsMTA5MiwxMDkzLDEwOTQsMTA5NSwxMDk2LDEwOTcsMTA5OCwxMDk5LDExMDAsMTEwMSwxMTAyLDExMDMsMTEwNCwxMTA1LDExMDYsMTEwNywxMTA4LDExMDksMTExMCwxMTExLDExMTIsMTExMywxMTE0LDExMTUsMTExNiwxMTE3LDExMTgsMTExOSwxMTM4LDExMzksMTE2OCwxMTY5LDc4MDgsNzgwOSw3ODEwLDc4MTEsNzgxMiw3ODEzLDc5MjIsNzkyMyw4MjA4LDgyMDksODIxMSw4MjEyLDgyMTMsODIxNSw4MjE2LDgyMTcsODIxOCw4MjE5LDgyMjAsODIyMSw4MjIyLDgyMjQsODIyNSw4MjI2LDgyMzAsODI0MCw4MjQyLDgyNDMsODI0OSw4MjUwLDgyNTIsODI1NCw4MjYwLDgzMTksODM1NSw4MzU2LDgzNTksODM2NCw4NDUzLDg0NjcsODQ3MCw4NDgyLDg0ODYsODQ5NCw4NTM5LDg1NDAsODU0MSw4NTQyLDg1OTIsODU5Myw4NTk0LDg1OTUsODU5Niw4NTk3LDg2MTYsODcwNiw4NzEwLDg3MTksODcyMSw4NzIyLDg3MzAsODczNCw4NzM1LDg3NDUsODc0Nyw4Nzc2LDg4MDAsODgwMSw4ODA0LDg4MDUsODk2Miw4OTc2LDg5OTIsODk5Myw5NDcyLDk0NzQsOTQ4NCw5NDg4LDk0OTIsOTQ5Niw5NTAwLDk1MDgsOTUxNiw5NTI0LDk1MzIsOTU1Miw5NTUzLDk1NTQsOTU1NSw5NTU2LDk1NTcsOTU1OCw5NTU5LDk1NjAsOTU2MSw5NTYyLDk1NjMsOTU2NCw5NTY1LDk1NjYsOTU2Nyw5NTY4LDk1NjksOTU3MCw5NTcxLDk1NzIsOTU3Myw5NTc0LDk1NzUsOTU3Niw5NTc3LDk1NzgsOTU3OSw5NTgwLDk2MDAsOTYwNCw5NjA4LDk2MTIsOTYxNiw5NjE3LDk2MTgsOTYxOSw5NjMyLDk2MzMsOTY0Miw5NjQzLDk2NDQsOTY1MCw5NjU4LDk2NjAsOTY2OCw5Njc0LDk2NzUsOTY3OSw5Njg4LDk2ODksOTcwMiw5Nzg2LDk3ODcsOTc4OCw5NzkyLDk3OTQsOTgyNCw5ODI3LDk4MjksOTgzMCw5ODM0LDk4MzUsOTgzNiw2MTQ0MSw2MTQ0Miw2MTQ0NSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMV0sdmE9WzM2NSwwLDMzMywyNzgsMjc4LDM1NSw1NTYsNTU2LDg4OSw2NjcsMTkxLDMzMywzMzMsMzg5LDU4NCwyNzgsMzMzLDI3OCwyNzgsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDI3OCwyNzgsNTg0LDU4NCw1ODQsNTU2LDEwMTUsNjY3LDY2Nyw3MjIsNzIyLDY2Nyw2MTEsNzc4LDcyMiwyNzgsNTAwLDY2Nyw1NTYsODMzLDcyMiw3NzgsNjY3LDc3OCw3MjIsNjY3LDYxMSw3MjIsNjY3LDk0NCw2NjcsNjY3LDYxMSwyNzgsMjc4LDI3OCw0NjksNTU2LDMzMyw1NTYsNTU2LDUwMCw1NTYsNTU2LDI3OCw1NTYsNTU2LDIyMiwyMjIsNTAwLDIyMiw4MzMsNTU2LDU1Niw1NTYsNTU2LDMzMyw1MDAsMjc4LDU1Niw1MDAsNzIyLDUwMCw1MDAsNTAwLDMzNCwyNjAsMzM0LDU4NCwzMzMsNTU2LDU1Niw1NTYsNTU2LDI2MCw1NTYsMzMzLDczNywzNzAsNTU2LDU4NCw3MzcsNTUyLDQwMCw1NDksMzMzLDMzMywzMzMsNTc2LDUzNywyNzgsMzMzLDMzMywzNjUsNTU2LDgzNCw4MzQsODM0LDYxMSw2NjcsNjY3LDY2Nyw2NjcsNjY3LDY2NywxZTMsNzIyLDY2Nyw2NjcsNjY3LDY2NywyNzgsMjc4LDI3OCwyNzgsNzIyLDcyMiw3NzgsNzc4LDc3OCw3NzgsNzc4LDU4NCw3NzgsNzIyLDcyMiw3MjIsNzIyLDY2Nyw2NjcsNjExLDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDg4OSw1MDAsNTU2LDU1Niw1NTYsNTU2LDI3OCwyNzgsMjc4LDI3OCw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTQ5LDYxMSw1NTYsNTU2LDU1Niw1NTYsNTAwLDU1Niw1MDAsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNzIyLDUwMCw3MjIsNTAwLDcyMiw1MDAsNzIyLDUwMCw3MjIsNjI1LDcyMiw1NTYsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDc3OCw1NTYsNzc4LDU1Niw3NzgsNTU2LDc3OCw1NTYsNzIyLDU1Niw3MjIsNTU2LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDI3OCwyMjIsMjc4LDI3OCw3MzMsNDQ0LDUwMCwyMjIsNjY3LDUwMCw1MDAsNTU2LDIyMiw1NTYsMjIyLDU1NiwyODEsNTU2LDQwMCw1NTYsMjIyLDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDYxNSw3MjMsNTU2LDc3OCw1NTYsNzc4LDU1Niw3NzgsNTU2LDFlMyw5NDQsNzIyLDMzMyw3MjIsMzMzLDcyMiwzMzMsNjY3LDUwMCw2NjcsNTAwLDY2Nyw1MDAsNjY3LDUwMCw2MTEsMjc4LDYxMSwzNTQsNjExLDI3OCw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw5NDQsNzIyLDY2Nyw1MDAsNjY3LDYxMSw1MDAsNjExLDUwMCw2MTEsNTAwLDIyMiw1NTYsNjY3LDU1NiwxZTMsODg5LDc3OCw2MTEsNjY3LDUwMCw2MTEsMjc4LDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsNjY3LDI3OCw3ODksODQ2LDM4OSw3OTQsODY1LDc3NSwyMjIsNjY3LDY2Nyw1NzAsNjcxLDY2Nyw2MTEsNzIyLDc3OCwyNzgsNjY3LDY2Nyw4MzMsNzIyLDY0OCw3NzgsNzI1LDY2Nyw2MDAsNjExLDY2Nyw4MzcsNjY3LDgzMSw3NjEsMjc4LDY2Nyw1NzAsNDM5LDU1NSwyMjIsNTUwLDU3MCw1NzEsNTAwLDU1Niw0MzksNDYzLDU1NSw1NDIsMjIyLDUwMCw0OTIsNTQ4LDUwMCw0NDcsNTU2LDY3MCw1NzMsNDg2LDYwMywzNzQsNTUwLDY1Miw1NDYsNzI4LDc3OSwyMjIsNTUwLDU1Niw1NTAsNzc5LDY2Nyw2NjcsODQzLDU0NCw3MDgsNjY3LDI3OCwyNzgsNTAwLDEwNjYsOTgyLDg0NCw1ODksNzE1LDYzOSw3MjQsNjY3LDY1MSw2NjcsNTQ0LDcwNCw2NjcsOTE3LDYxNCw3MTUsNzE1LDU4OSw2ODYsODMzLDcyMiw3NzgsNzI1LDY2Nyw3MjIsNjExLDYzOSw3OTUsNjY3LDcyNyw2NzMsOTIwLDkyMyw4MDUsODg2LDY1MSw2OTQsMTAyMiw2ODIsNTU2LDU2Miw1MjIsNDkzLDU1Myw1NTYsNjg4LDQ2NSw1NTYsNTU2LDQ3Miw1NjQsNjg2LDU1MCw1NTYsNTU2LDU1Niw1MDAsODMzLDUwMCw4MzUsNTAwLDU3Miw1MTgsODMwLDg1MSw2MjEsNzM2LDUyNiw0OTIsNzUyLDUzNCw1NTYsNTU2LDU1NiwzNzgsNDk2LDUwMCwyMjIsMjIyLDIyMiw5MTAsODI4LDU1Niw0NzIsNTY1LDUwMCw1NTYsNzc4LDU1Niw0OTIsMzM5LDk0NCw3MjIsOTQ0LDcyMiw5NDQsNzIyLDY2Nyw1MDAsMzMzLDMzMyw1NTYsMWUzLDFlMyw1NTIsMjIyLDIyMiwyMjIsMjIyLDMzMywzMzMsMzMzLDU1Niw1NTYsMzUwLDFlMywxZTMsMTg4LDM1NCwzMzMsMzMzLDUwMCwzMzMsMTY3LDM2NSw1NTYsNTU2LDEwOTQsNTU2LDg4NSwzMjMsMTA4MywxZTMsNzY4LDYwMCw4MzQsODM0LDgzNCw4MzQsMWUzLDUwMCw5OTgsNTAwLDFlMyw1MDAsNTAwLDQ5NCw2MTIsODIzLDcxMyw1ODQsNTQ5LDcxMyw5NzksNzE5LDI3NCw1NDksNTQ5LDU4NCw1NDksNTQ5LDYwNCw1ODQsNjA0LDYwNCw3MDgsNjI1LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcyOSw2MDQsNjA0LDM1NCwzNTQsMWUzLDk5MCw5OTAsOTkwLDk5MCw0OTQsNjA0LDYwNCw2MDQsNjA0LDM1NCwxMDIxLDEwNTIsOTE3LDc1MCw3NTAsNTMxLDY1Niw1OTQsNTEwLDUwMCw3NTAsNzUwLDUwMCw1MDAsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywyMjIsMjIyLDI5NCwyOTQsMzI0LDMyNCwzMTYsMzI4LDM5OCwyODVdLFlhPVstMSwtMSwtMSwzMiwzMywzNCwzNSwzNiwzNywzOCwzOSw0MCw0MSw0Miw0Myw0NCw0NSw0Niw0Nyw0OCw0OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1Nyw1OCw1OSw2MCw2MSw2Miw2Myw2NCw2NSw2Niw2Nyw2OCw2OSw3MCw3MSw3Miw3Myw3NCw3NSw3Niw3Nyw3OCw3OSw4MCw4MSw4Miw4Myw4NCw4NSw4Niw4Nyw4OCw4OSw5MCw5MSw5Miw5Myw5NCw5NSw5Niw5Nyw5OCw5OSwxMDAsMTAxLDEwMiwxMDMsMTA0LDEwNSwxMDYsMTA3LDEwOCwxMDksMTEwLDExMSwxMTIsMTEzLDExNCwxMTUsMTE2LDExNywxMTgsMTE5LDEyMCwxMjEsMTIyLDEyMywxMjQsMTI1LDEyNiwxNjEsMTYyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAsMTcxLDE3MiwxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxODYsMTg3LDE4OCwxODksMTkwLDE5MSwxOTIsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMjA4LDIwOSwyMTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIwLDIyMSwyMjIsMjIzLDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwyNDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwyNDksMjUwLDI1MSwyNTIsMjUzLDI1NCwyNTUsMjU2LDI1NywyNTgsMjU5LDI2MCwyNjEsMjYyLDI2MywyNjQsMjY1LDI2NiwyNjcsMjY4LDI2OSwyNzAsMjcxLDI3MiwyNzMsMjc0LDI3NSwyNzYsMjc3LDI3OCwyNzksMjgwLDI4MSwyODIsMjgzLDI4NCwyODUsMjg2LDI4NywyODgsMjg5LDI5MCwyOTEsMjkyLDI5MywyOTQsMjk1LDI5NiwyOTcsMjk4LDI5OSwzMDAsMzAxLDMwMiwzMDMsMzA0LDMwNSwzMDYsMzA3LDMwOCwzMDksMzEwLDMxMSwzMTIsMzEzLDMxNCwzMTUsMzE2LDMxNywzMTgsMzE5LDMyMCwzMjEsMzIyLDMyMywzMjQsMzI1LDMyNiwzMjcsMzI4LDMyOSwzMzAsMzMxLDMzMiwzMzMsMzM0LDMzNSwzMzYsMzM3LDMzOCwzMzksMzQwLDM0MSwzNDIsMzQzLDM0NCwzNDUsMzQ2LDM0NywzNDgsMzQ5LDM1MCwzNTEsMzUyLDM1MywzNTQsMzU1LDM1NiwzNTcsMzU4LDM1OSwzNjAsMzYxLDM2MiwzNjMsMzY0LDM2NSwzNjYsMzY3LDM2OCwzNjksMzcwLDM3MSwzNzIsMzczLDM3NCwzNzUsMzc2LDM3NywzNzgsMzc5LDM4MCwzODEsMzgyLDM4Myw0MDIsNTA2LDUwNyw1MDgsNTA5LDUxMCw1MTEsNTM2LDUzNyw1MzgsNTM5LDcxMCw3MTEsNzEzLDcyOCw3MjksNzMwLDczMSw3MzIsNzMzLDkwMCw5MDEsOTAyLDkwMyw5MDQsOTA1LDkwNiw5MDgsOTEwLDkxMSw5MTIsOTEzLDkxNCw5MTUsOTE2LDkxNyw5MTgsOTE5LDkyMCw5MjEsOTIyLDkyMyw5MjQsOTI1LDkyNiw5MjcsOTI4LDkyOSw5MzEsOTMyLDkzMyw5MzQsOTM1LDkzNiw5MzcsOTM4LDkzOSw5NDAsOTQxLDk0Miw5NDMsOTQ0LDk0NSw5NDYsOTQ3LDk0OCw5NDksOTUwLDk1MSw5NTIsOTUzLDk1NCw5NTUsOTU2LDk1Nyw5NTgsOTU5LDk2MCw5NjEsOTYyLDk2Myw5NjQsOTY1LDk2Niw5NjcsOTY4LDk2OSw5NzAsOTcxLDk3Miw5NzMsOTc0LDEwMjQsMTAyNSwxMDI2LDEwMjcsMTAyOCwxMDI5LDEwMzAsMTAzMSwxMDMyLDEwMzMsMTAzNCwxMDM1LDEwMzYsMTAzNywxMDM4LDEwMzksMTA0MCwxMDQxLDEwNDIsMTA0MywxMDQ0LDEwNDUsMTA0NiwxMDQ3LDEwNDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDU2LDEwNTcsMTA1OCwxMDU5LDEwNjAsMTA2MSwxMDYyLDEwNjMsMTA2NCwxMDY1LDEwNjYsMTA2NywxMDY4LDEwNjksMTA3MCwxMDcxLDEwNzIsMTA3MywxMDc0LDEwNzUsMTA3NiwxMDc3LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQsMTA4NSwxMDg2LDEwODcsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDkyLDEwOTMsMTA5NCwxMDk1LDEwOTYsMTA5NywxMDk4LDEwOTksMTEwMCwxMTAxLDExMDIsMTEwMywxMTA0LDExMDUsMTEwNiwxMTA3LDExMDgsMTEwOSwxMTEwLDExMTEsMTExMiwxMTEzLDExMTQsMTExNSwxMTE2LDExMTcsMTExOCwxMTE5LDExMzgsMTEzOSwxMTY4LDExNjksNzgwOCw3ODA5LDc4MTAsNzgxMSw3ODEyLDc4MTMsNzkyMiw3OTIzLDgyMDgsODIwOSw4MjExLDgyMTIsODIxMyw4MjE1LDgyMTYsODIxNyw4MjE4LDgyMTksODIyMCw4MjIxLDgyMjIsODIyNCw4MjI1LDgyMjYsODIzMCw4MjQwLDgyNDIsODI0Myw4MjQ5LDgyNTAsODI1Miw4MjU0LDgyNjAsODMxOSw4MzU1LDgzNTYsODM1OSw4MzY0LDg0NTMsODQ2Nyw4NDcwLDg0ODIsODQ4Niw4NDk0LDg1MzksODU0MCw4NTQxLDg1NDIsODU5Miw4NTkzLDg1OTQsODU5NSw4NTk2LDg1OTcsODYxNiw4NzA2LDg3MTAsODcxOSw4NzIxLDg3MjIsODczMCw4NzM0LDg3MzUsODc0NSw4NzQ3LDg3NzYsODgwMCw4ODAxLDg4MDQsODgwNSw4OTYyLDg5NzYsODk5Miw4OTkzLDk0NzIsOTQ3NCw5NDg0LDk0ODgsOTQ5Miw5NDk2LDk1MDAsOTUwOCw5NTE2LDk1MjQsOTUzMiw5NTUyLDk1NTMsOTU1NCw5NTU1LDk1NTYsOTU1Nyw5NTU4LDk1NTksOTU2MCw5NTYxLDk1NjIsOTU2Myw5NTY0LDk1NjUsOTU2Niw5NTY3LDk1NjgsOTU2OSw5NTcwLDk1NzEsOTU3Miw5NTczLDk1NzQsOTU3NSw5NTc2LDk1NzcsOTU3OCw5NTc5LDk1ODAsOTYwMCw5NjA0LDk2MDgsOTYxMiw5NjE2LDk2MTcsOTYxOCw5NjE5LDk2MzIsOTYzMyw5NjQyLDk2NDMsOTY0NCw5NjUwLDk2NTgsOTY2MCw5NjY4LDk2NzQsOTY3NSw5Njc5LDk2ODgsOTY4OSw5NzAyLDk3ODYsOTc4Nyw5Nzg4LDk3OTIsOTc5NCw5ODI0LDk4MjcsOTgyOSw5ODMwLDk4MzQsOTgzNSw5ODM2LDYxNDQxLDYxNDQyLDYxNDQ1LC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xXSxLYT1bMzY1LDAsMzMzLDI3OCwyNzgsMzU1LDU1Niw1NTYsODg5LDY2NywxOTEsMzMzLDMzMywzODksNTg0LDI3OCwzMzMsMjc4LDI3OCw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsMjc4LDI3OCw1ODQsNTg0LDU4NCw1NTYsMTAxNSw2NjcsNjY3LDcyMiw3MjIsNjY3LDYxMSw3NzgsNzIyLDI3OCw1MDAsNjY3LDU1Niw4MzMsNzIyLDc3OCw2NjcsNzc4LDcyMiw2NjcsNjExLDcyMiw2NjcsOTQ0LDY2Nyw2NjcsNjExLDI3OCwyNzgsMjc4LDQ2OSw1NTYsMzMzLDU1Niw1NTYsNTAwLDU1Niw1NTYsMjc4LDU1Niw1NTYsMjIyLDIyMiw1MDAsMjIyLDgzMyw1NTYsNTU2LDU1Niw1NTYsMzMzLDUwMCwyNzgsNTU2LDUwMCw3MjIsNTAwLDUwMCw1MDAsMzM0LDI2MCwzMzQsNTg0LDMzMyw1NTYsNTU2LDU1Niw1NTYsMjYwLDU1NiwzMzMsNzM3LDM3MCw1NTYsNTg0LDczNyw1NTIsNDAwLDU0OSwzMzMsMzMzLDMzMyw1NzYsNTM3LDI3OCwzMzMsMzMzLDM2NSw1NTYsODM0LDgzNCw4MzQsNjExLDY2Nyw2NjcsNjY3LDY2Nyw2NjcsNjY3LDFlMyw3MjIsNjY3LDY2Nyw2NjcsNjY3LDI3OCwyNzgsMjc4LDI3OCw3MjIsNzIyLDc3OCw3NzgsNzc4LDc3OCw3NzgsNTg0LDc3OCw3MjIsNzIyLDcyMiw3MjIsNjY3LDY2Nyw2MTEsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsODg5LDUwMCw1NTYsNTU2LDU1Niw1NTYsMjc4LDI3OCwyNzgsMjc4LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NDksNjExLDU1Niw1NTYsNTU2LDU1Niw1MDAsNTU2LDUwMCw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw3MjIsNTAwLDcyMiw1MDAsNzIyLDUwMCw3MjIsNTAwLDcyMiw2MTUsNzIyLDU1Niw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNzc4LDU1Niw3NzgsNTU2LDc3OCw1NTYsNzc4LDU1Niw3MjIsNTU2LDcyMiw1NTYsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDIyMiwyNzgsMjc4LDczNSw0NDQsNTAwLDIyMiw2NjcsNTAwLDUwMCw1NTYsMjIyLDU1NiwyMjIsNTU2LDI5Miw1NTYsMzM0LDU1NiwyMjIsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNjA0LDcyMyw1NTYsNzc4LDU1Niw3NzgsNTU2LDc3OCw1NTYsMWUzLDk0NCw3MjIsMzMzLDcyMiwzMzMsNzIyLDMzMyw2NjcsNTAwLDY2Nyw1MDAsNjY3LDUwMCw2NjcsNTAwLDYxMSwyNzgsNjExLDM3NSw2MTEsMjc4LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDk0NCw3MjIsNjY3LDUwMCw2NjcsNjExLDUwMCw2MTEsNTAwLDYxMSw1MDAsMjIyLDU1Niw2NjcsNTU2LDFlMyw4ODksNzc4LDYxMSw2NjcsNTAwLDYxMSwyNzgsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMyw2NjcsMjc4LDc4NCw4MzgsMzg0LDc3NCw4NTUsNzUyLDIyMiw2NjcsNjY3LDU1MSw2NjgsNjY3LDYxMSw3MjIsNzc4LDI3OCw2NjcsNjY4LDgzMyw3MjIsNjUwLDc3OCw3MjIsNjY3LDYxOCw2MTEsNjY3LDc5OCw2NjcsODM1LDc0OCwyNzgsNjY3LDU3OCw0NDYsNTU2LDIyMiw1NDcsNTc4LDU3NSw1MDAsNTU3LDQ0Niw0NDEsNTU2LDU1NiwyMjIsNTAwLDUwMCw1NzYsNTAwLDQ0OCw1NTYsNjkwLDU2OSw0ODIsNjE3LDM5NSw1NDcsNjQ4LDUyNSw3MTMsNzgxLDIyMiw1NDcsNTU2LDU0Nyw3ODEsNjY3LDY2Nyw4NjUsNTQyLDcxOSw2NjcsMjc4LDI3OCw1MDAsMTA1NywxMDEwLDg1NCw1ODMsNzIyLDYzNSw3MTksNjY3LDY1Niw2NjcsNTQyLDY3Nyw2NjcsOTIzLDYwNCw3MTksNzE5LDU4Myw2NTYsODMzLDcyMiw3NzgsNzE5LDY2Nyw3MjIsNjExLDYzNSw3NjAsNjY3LDc0MCw2NjcsOTE3LDkzOCw3OTIsODg1LDY1Niw3MTksMTAxMCw3MjIsNTU2LDU3Myw1MzEsMzY1LDU4Myw1NTYsNjY5LDQ1OCw1NTksNTU5LDQzOCw1ODMsNjg4LDU1Miw1NTYsNTQyLDU1Niw1MDAsNDU4LDUwMCw4MjMsNTAwLDU3Myw1MjEsODAyLDgyMyw2MjUsNzE5LDUyMSw1MTAsNzUwLDU0Miw1NTYsNTU2LDU1NiwzNjUsNTEwLDUwMCwyMjIsMjc4LDIyMiw5MDYsODEyLDU1Niw0MzgsNTU5LDUwMCw1NTIsNzc4LDU1Niw0ODksNDExLDk0NCw3MjIsOTQ0LDcyMiw5NDQsNzIyLDY2Nyw1MDAsMzMzLDMzMyw1NTYsMWUzLDFlMyw1NTIsMjIyLDIyMiwyMjIsMjIyLDMzMywzMzMsMzMzLDU1Niw1NTYsMzUwLDFlMywxZTMsMTg4LDM1NCwzMzMsMzMzLDUwMCwzMzMsMTY3LDM2NSw1NTYsNTU2LDEwOTQsNTU2LDg4NSwzMjMsMTA3MywxZTMsNzY4LDYwMCw4MzQsODM0LDgzNCw4MzQsMWUzLDUwMCwxZTMsNTAwLDFlMyw1MDAsNTAwLDQ5NCw2MTIsODIzLDcxMyw1ODQsNTQ5LDcxMyw5NzksNzE5LDI3NCw1NDksNTQ5LDU4Myw1NDksNTQ5LDYwNCw1ODQsNjA0LDYwNCw3MDgsNjI1LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcyOSw2MDQsNjA0LDM1NCwzNTQsMWUzLDk5MCw5OTAsOTkwLDk5MCw0OTQsNjA0LDYwNCw2MDQsNjA0LDM1NCwxMDIxLDEwNTIsOTE3LDc1MCw3NTAsNTMxLDY1Niw1OTQsNTEwLDUwMCw3NTAsNzUwLDUwMCw1MDAsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywyMjIsMjIyLDI5NCwyOTQsMzI0LDMyNCwzMTYsMzI4LDM5OCwyODVdLFRhPVstMSwtMSwtMSwzMiwzMywzNCwzNSwzNiwzNywzOCwzOSw0MCw0MSw0Miw0Myw0NCw0NSw0Niw0Nyw0OCw0OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1Nyw1OCw1OSw2MCw2MSw2Miw2Myw2NCw2NSw2Niw2Nyw2OCw2OSw3MCw3MSw3Miw3Myw3NCw3NSw3Niw3Nyw3OCw3OSw4MCw4MSw4Miw4Myw4NCw4NSw4Niw4Nyw4OCw4OSw5MCw5MSw5Miw5Myw5NCw5NSw5Niw5Nyw5OCw5OSwxMDAsMTAxLDEwMiwxMDMsMTA0LDEwNSwxMDYsMTA3LDEwOCwxMDksMTEwLDExMSwxMTIsMTEzLDExNCwxMTUsMTE2LDExNywxMTgsMTE5LDEyMCwxMjEsMTIyLDEyMywxMjQsMTI1LDEyNiwxNjEsMTYyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAsMTcxLDE3MiwxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxODYsMTg3LDE4OCwxODksMTkwLDE5MSwxOTIsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMjA4LDIwOSwyMTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIwLDIyMSwyMjIsMjIzLDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwyNDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwyNDksMjUwLDI1MSwyNTIsMjUzLDI1NCwyNTUsMjU2LDI1NywyNTgsMjU5LDI2MCwyNjEsMjYyLDI2MywyNjQsMjY1LDI2NiwyNjcsMjY4LDI2OSwyNzAsMjcxLDI3MiwyNzMsMjc0LDI3NSwyNzYsMjc3LDI3OCwyNzksMjgwLDI4MSwyODIsMjgzLDI4NCwyODUsMjg2LDI4NywyODgsMjg5LDI5MCwyOTEsMjkyLDI5MywyOTQsMjk1LDI5NiwyOTcsMjk4LDI5OSwzMDAsMzAxLDMwMiwzMDMsMzA0LDMwNSwzMDYsMzA3LDMwOCwzMDksMzEwLDMxMSwzMTIsMzEzLDMxNCwzMTUsMzE2LDMxNywzMTgsMzE5LDMyMCwzMjEsMzIyLDMyMywzMjQsMzI1LDMyNiwzMjcsMzI4LDMyOSwzMzAsMzMxLDMzMiwzMzMsMzM0LDMzNSwzMzYsMzM3LDMzOCwzMzksMzQwLDM0MSwzNDIsMzQzLDM0NCwzNDUsMzQ2LDM0NywzNDgsMzQ5LDM1MCwzNTEsMzUyLDM1MywzNTQsMzU1LDM1NiwzNTcsMzU4LDM1OSwzNjAsMzYxLDM2MiwzNjMsMzY0LDM2NSwzNjYsMzY3LDM2OCwzNjksMzcwLDM3MSwzNzIsMzczLDM3NCwzNzUsMzc2LDM3NywzNzgsMzc5LDM4MCwzODEsMzgyLDM4Myw0MDIsNTA2LDUwNyw1MDgsNTA5LDUxMCw1MTEsNTM2LDUzNyw1MzgsNTM5LDcxMCw3MTEsNzEzLDcyOCw3MjksNzMwLDczMSw3MzIsNzMzLDkwMCw5MDEsOTAyLDkwMyw5MDQsOTA1LDkwNiw5MDgsOTEwLDkxMSw5MTIsOTEzLDkxNCw5MTUsOTE2LDkxNyw5MTgsOTE5LDkyMCw5MjEsOTIyLDkyMyw5MjQsOTI1LDkyNiw5MjcsOTI4LDkyOSw5MzEsOTMyLDkzMyw5MzQsOTM1LDkzNiw5MzcsOTM4LDkzOSw5NDAsOTQxLDk0Miw5NDMsOTQ0LDk0NSw5NDYsOTQ3LDk0OCw5NDksOTUwLDk1MSw5NTIsOTUzLDk1NCw5NTUsOTU2LDk1Nyw5NTgsOTU5LDk2MCw5NjEsOTYyLDk2Myw5NjQsOTY1LDk2Niw5NjcsOTY4LDk2OSw5NzAsOTcxLDk3Miw5NzMsOTc0LDEwMjQsMTAyNSwxMDI2LDEwMjcsMTAyOCwxMDI5LDEwMzAsMTAzMSwxMDMyLDEwMzMsMTAzNCwxMDM1LDEwMzYsMTAzNywxMDM4LDEwMzksMTA0MCwxMDQxLDEwNDIsMTA0MywxMDQ0LDEwNDUsMTA0NiwxMDQ3LDEwNDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDU2LDEwNTcsMTA1OCwxMDU5LDEwNjAsMTA2MSwxMDYyLDEwNjMsMTA2NCwxMDY1LDEwNjYsMTA2NywxMDY4LDEwNjksMTA3MCwxMDcxLDEwNzIsMTA3MywxMDc0LDEwNzUsMTA3NiwxMDc3LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQsMTA4NSwxMDg2LDEwODcsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDkyLDEwOTMsMTA5NCwxMDk1LDEwOTYsMTA5NywxMDk4LDEwOTksMTEwMCwxMTAxLDExMDIsMTEwMywxMTA0LDExMDUsMTEwNiwxMTA3LDExMDgsMTEwOSwxMTEwLDExMTEsMTExMiwxMTEzLDExMTQsMTExNSwxMTE2LDExMTcsMTExOCwxMTE5LDExMzgsMTEzOSwxMTY4LDExNjksNzgwOCw3ODA5LDc4MTAsNzgxMSw3ODEyLDc4MTMsNzkyMiw3OTIzLDgyMDgsODIwOSw4MjExLDgyMTIsODIxMyw4MjE1LDgyMTYsODIxNyw4MjE4LDgyMTksODIyMCw4MjIxLDgyMjIsODIyNCw4MjI1LDgyMjYsODIzMCw4MjQwLDgyNDIsODI0Myw4MjQ5LDgyNTAsODI1Miw4MjU0LDgyNjAsODMxOSw4MzU1LDgzNTYsODM1OSw4MzY0LDg0NTMsODQ2Nyw4NDcwLDg0ODIsODQ4Niw4NDk0LDg1MzksODU0MCw4NTQxLDg1NDIsODU5Miw4NTkzLDg1OTQsODU5NSw4NTk2LDg1OTcsODYxNiw4NzA2LDg3MTAsODcxOSw4NzIxLDg3MjIsODczMCw4NzM0LDg3MzUsODc0NSw4NzQ3LDg3NzYsODgwMCw4ODAxLDg4MDQsODgwNSw4OTYyLDg5NzYsODk5Miw4OTkzLDk0NzIsOTQ3NCw5NDg0LDk0ODgsOTQ5Miw5NDk2LDk1MDAsOTUwOCw5NTE2LDk1MjQsOTUzMiw5NTUyLDk1NTMsOTU1NCw5NTU1LDk1NTYsOTU1Nyw5NTU4LDk1NTksOTU2MCw5NTYxLDk1NjIsOTU2Myw5NTY0LDk1NjUsOTU2Niw5NTY3LDk1NjgsOTU2OSw5NTcwLDk1NzEsOTU3Miw5NTczLDk1NzQsOTU3NSw5NTc2LDk1NzcsOTU3OCw5NTc5LDk1ODAsOTYwMCw5NjA0LDk2MDgsOTYxMiw5NjE2LDk2MTcsOTYxOCw5NjE5LDk2MzIsOTYzMyw5NjQyLDk2NDMsOTY0NCw5NjUwLDk2NTgsOTY2MCw5NjY4LDk2NzQsOTY3NSw5Njc5LDk2ODgsOTY4OSw5NzAyLDk3ODYsOTc4Nyw5Nzg4LDk3OTIsOTc5NCw5ODI0LDk4MjcsOTgyOSw5ODMwLDk4MzQsOTgzNSw5ODM2LDYxNDQxLDYxNDQyLDYxNDQ1LC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xXSxxYT1bMS4zNjg5OCwxLDEsLjcyNzA2LC44MDQ3OSwuODM3MzQsLjk4ODk0LC45OTc5MywuOTg5NywuOTM4ODQsLjg2MjA5LC45NDI5MiwuOTQyOTIsMS4xNjY2MSwxLjAyMDU4LC45MzU4MiwuOTY2OTQsLjkzNTgyLDEuMTkxMzcsLjk5NzkzLC45OTc5MywuOTk3OTMsLjk5NzkzLC45OTc5MywuOTk3OTMsLjk5NzkzLC45OTc5MywuOTk3OTMsLjk5NzkzLC43ODA3NiwuNzgwNzYsMS4wMjA1OCwxLjAyMDU4LDEuMDIwNTgsLjcyODUxLC43ODk2NiwuOTA4MzgsLjgzNjM3LC44MjM5MSwuOTYzNzYsLjgwMDYxLC44NjI3NSwuODc2OCwuOTU0MDcsMS4wMjU4LC43MzkwMSwuODUwMjIsLjgzNjU1LDEuMDE1NiwuOTU1NDYsLjkyMTc5LC44NzEwNywuOTIxNzksLjgyMTE0LC44MDk2LC44OTcxMywuOTQ0MzgsLjk1MzUzLC45NDA4MywuOTE5MDUsLjkwNDA2LC45NDQ2LC45NDI5MiwxLjE4Nzc3LC45NDI5MiwxLjAyMDU4LC44OTkwMywuOTAwODgsLjk0OTM4LC45Nzg5OCwuODEwOTMsLjk3NTcxLC45NDkzOCwxLjAyNCwuOTU3NywuOTU5MzMsLjk4NjIxLDEuMDQ3NCwuOTc0NTUsLjk4OTgxLC45NjcyLC45NTkzMywuOTQ0NiwuOTc4OTgsLjk3NDA3LC45NzY0NiwuNzgwMzYsMS4xMDIwOCwuOTU0NDIsLjk1Mjk4LC45NzU3OSwuOTMzMiwuOTQwMzksLjkzOCwuODA2ODcsMS4wMTE0OSwuODA2ODcsMS4wMjA1OCwuODA0NzksLjk5NzkzLC45OTc5MywuOTk3OTMsLjk5NzkzLDEuMDExNDksMS4wMDg3MiwuOTAwODgsLjkxODgyLDEuMDIxMywuODM2MSwxLjAyMDU4LC42MjI5NSwuNTQzMjQsLjg5MDIyLDEuMDg1OTUsMSwxLC45MDA4OCwxLC45NzQ1NSwuOTM1ODIsLjkwMDg4LDEsMS4wNTY4NiwuODM2MSwuOTk2NDIsLjk5NjQyLC45OTY0MiwuNzI4NTEsLjkwODM4LC45MDgzOCwuOTA4MzgsLjkwODM4LC45MDgzOCwuOTA4MzgsLjg2OCwuODIzOTEsLjgwMDYxLC44MDA2MSwuODAwNjEsLjgwMDYxLDEuMDI1OCwxLjAyNTgsMS4wMjU4LDEuMDI1OCwuOTc0ODQsLjk1NTQ2LC45MjE3OSwuOTIxNzksLjkyMTc5LC45MjE3OSwuOTIxNzksMS4wMjA1OCwuOTIxNzksLjk0NDM4LC45NDQzOCwuOTQ0MzgsLjk0NDM4LC45MDQwNiwuODY5NTgsLjk4MjI1LC45NDkzOCwuOTQ5MzgsLjk0OTM4LC45NDkzOCwuOTQ5MzgsLjk0OTM4LC45MDMxLC44MTA5MywuOTQ5MzgsLjk0OTM4LC45NDkzOCwuOTQ5MzgsLjk4NjIxLC45ODYyMSwuOTg2MjEsLjk4NjIxLC45Mzk2OSwuOTU5MzMsLjk0NDYsLjk0NDYsLjk0NDYsLjk0NDYsLjk0NDYsMS4wODU5NSwuOTQ0NiwuOTU0NDIsLjk1NDQyLC45NTQ0MiwuOTU0NDIsLjk0MDM5LC45Nzg5OCwuOTQwMzksLjkwODM4LC45NDkzOCwuOTA4MzgsLjk0OTM4LC45MDgzOCwuOTQ5MzgsLjgyMzkxLC44MTA5MywuODIzOTEsLjgxMDkzLC44MjM5MSwuODEwOTMsLjgyMzkxLC44MTA5MywuOTYzNzYsLjg0MzEzLC45NzQ4NCwuOTc1NzEsLjgwMDYxLC45NDkzOCwuODAwNjEsLjk0OTM4LC44MDA2MSwuOTQ5MzgsLjgwMDYxLC45NDkzOCwuODAwNjEsLjk0OTM4LC44NzY4LC45NTc3LC44NzY4LC45NTc3LC44NzY4LC45NTc3LDEsMSwuOTU0MDcsLjk1OTMzLC45NzA2OSwuOTU5MzMsMS4wMjU4LC45ODYyMSwxLjAyNTgsLjk4NjIxLDEuMDI1OCwuOTg2MjEsMS4wMjU4LC45ODYyMSwxLjAyNTgsLjk4NjIxLC44ODcsMS4wMTU5MSwuNzM5MDEsMS4wNDc0LDEsMSwuOTc0NTUsLjgzNjU1LC45ODk4MSwxLDEsLjgzNjU1LC43Mzk3NywuODM2NTUsLjczOTAzLC44NDYzOCwxLjAzMywuOTU1NDYsLjk1OTMzLDEsMSwuOTU1NDYsLjk1OTMzLC44MjcxLC45NTQxNywuOTU5MzMsLjkyMTc5LC45NDQ2LC45MjE3OSwuOTQ0NiwuOTIxNzksLjk0NDYsLjkzNiwuOTE5NjQsLjgyMTE0LC45NzY0NiwxLDEsLjgyMTE0LC45NzY0NiwuODA5NiwuNzgwMzYsLjgwOTYsLjc4MDM2LDEsMSwuODA5NiwuNzgwMzYsMSwxLC44OTcxMywuNzc0NTIsLjg5NzEzLDEuMTAyMDgsLjk0NDM4LC45NTQ0MiwuOTQ0MzgsLjk1NDQyLC45NDQzOCwuOTU0NDIsLjk0NDM4LC45NTQ0MiwuOTQ0MzgsLjk1NDQyLC45NDQzOCwuOTU0NDIsLjk0MDgzLC45NzU3OSwuOTA0MDYsLjk0MDM5LC45MDQwNiwuOTQ0NiwuOTM4LC45NDQ2LC45MzgsLjk0NDYsLjkzOCwxLC45OTc5MywuOTA4MzgsLjk0OTM4LC44NjgsLjkwMzEsLjkyMTc5LC45NDQ2LDEsMSwuODk3MTMsMS4xMDIwOCwuOTAwODgsLjkwMDg4LC45MDA4OCwuOTAwODgsLjkwMDg4LC45MDA4OCwuOTAwODgsLjkwMDg4LC45MDA4OCwuOTA5ODksLjkzNTgsLjkxOTQ1LC44MzE4MSwuNzUyNjEsLjg3OTkyLC44Mjk3NiwuOTYwMzQsLjgzNjg5LC45NzI2OCwxLjAwNzgsLjkwODM4LC44MzYzNywuODAxOSwuOTAxNTcsLjgwMDYxLC45NDQ2LC45NTQwNywuOTI0MzYsMS4wMjU4LC44NTAyMiwuOTcxNTMsMS4wMTU2LC45NTU0NiwuODkxOTIsLjkyMTc5LC45MjM2MSwuODcxMDcsLjk2MzE4LC44OTcxMywuOTM3MDQsLjk1NjM4LC45MTkwNSwuOTE3MDksLjkyNzk2LDEuMDI1OCwuOTM3MDQsLjk0ODM2LDEuMDM3MywuOTU5MzMsMS4wMDc4LC45NTg3MSwuOTQ4MzYsLjk2MTc0LC45MjYwMSwuOTQ5OCwuOTg2MDcsLjk1Nzc2LC45NTkzMywxLjA1NDUzLDEuMDA3OCwuOTgyNzUsLjkzMTQsLjk1NjE3LC45MTcwMSwxLjA1OTkzLC45NDQ2LC43ODM2NywuOTU1MywxLC44NjgzMiwxLjAxMjgsLjk1ODcxLC45OTM5NCwuODc1NDgsLjk2MzYxLC44Njc3NCwxLjAwNzgsLjk1ODcxLC45NDQ2LC45NTg3MSwuODY3NzQsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTQwODMsLjk3NTc5LC45NDA4MywuOTc1NzksLjk0MDgzLC45NzU3OSwuOTA0MDYsLjk0MDM5LC45NjY5NCwxLC44OTkwMywxLDEsMSwuOTM1ODIsLjkzNTgyLC45MzU4MiwxLC45MDgsLjkwOCwuOTE4LC45NDIxOSwuOTQyMTksLjk2NTQ0LDEsMS4yODUsMSwxLC44MTA3OSwuODEwNzksMSwxLC43NDg1NCwxLDEsMSwxLC45OTc5MywxLDEsMSwuNjUsMSwxLjM2MTQ1LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjE3MTczLDEsLjgwNTM1LC43NjE2OSwxLjAyMDU4LDEuMDczMiwxLjA1NDg2LDEsMSwxLjMwNjkyLDEuMDg1OTUsMS4wODU5NSwxLDEuMDg1OTUsMS4wODU5NSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMTYxNjEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sT2E9e2xpbmVIZWlnaHQ6MS4yLGxpbmVHYXA6LjJ9LFBhPVsxLjM2ODk4LDEsMSwuNjYyMjcsLjgwNzc5LC44MTYyNSwuOTcyNzYsLjk3Mjc2LC45NzczMywuOTIyMjIsLjgzMjY2LC45NDI5MiwuOTQyOTIsMS4xNjE0OCwxLjAyMDU4LC45MzU4MiwuOTY2OTQsLjkzNTgyLDEuMTczMzcsLjk3Mjc2LC45NzI3NiwuOTcyNzYsLjk3Mjc2LC45NzI3NiwuOTcyNzYsLjk3Mjc2LC45NzI3NiwuOTcyNzYsLjk3Mjc2LC43ODA3NiwuNzgwNzYsMS4wMjA1OCwxLjAyMDU4LDEuMDIwNTgsLjcxNTQxLC43NjgxMywuODU1NzYsLjgwNTkxLC44MDcyOSwuOTQyOTksLjc3NTEyLC44MzY1NSwuODY1MjMsLjkyMjIyLC45ODYyMSwuNzE3NDMsLjgxNjk4LC43OTcyNiwuOTg1NTgsLjkyMjIyLC45MDYzNywuODM4MDksLjkwNjM3LC44MDcyOSwuNzY0NjMsLjg2Mjc1LC45MDY5OSwuOTE2MDUsLjkxNTQsLjg1MzA4LC44NTQ1OCwuOTA1MzEsLjk0MjkyLDEuMjEyOTYsLjk0MjkyLDEuMDIwNTgsLjg5OTAzLDEuMTg2MTYsLjk5NjEzLC45MTY3NywuNzgyMTYsLjkxNjc3LC45MDA4MywuOTg3OTYsLjkxMzUsLjkyMTY4LC45NTM4MSwuOTg5ODEsLjk1Mjk4LC45NTM4MSwuOTM0NTksLjkyMTY4LC45MTUxMywuOTIwMDQsLjkxNjc3LC45NTA3NywuNzQ4LDEuMDQ1MDIsLjkxNjc3LC45MjA2MSwuOTQyMzYsLjg5NTQ0LC44OTM2NCwuOSwuODA2ODcsLjg1NzgsLjgwNjg3LDEuMDIwNTgsLjgwNzc5LC45NzI3NiwuOTcyNzYsLjk3Mjc2LC45NzI3NiwuODU3OCwuOTk5NzMsMS4xODYxNiwuOTEzMzksMS4wODA3NCwuODI4OTEsMS4wMjA1OCwuNTU1MDksLjcxNTI2LC44OTAyMiwxLjA4NTk1LDEsMSwxLjE4NjE2LDEsLjk2NzM2LC45MzU4MiwxLjE4NjE2LDEsMS4wNDg2NCwuODI3MTEsLjk5MDQzLC45OTA0MywuOTkwNDMsLjcxNTQxLC44NTU3NiwuODU1NzYsLjg1NTc2LC44NTU3NiwuODU1NzYsLjg1NTc2LC44NDUsLjgwNzI5LC43NzUxMiwuNzc1MTIsLjc3NTEyLC43NzUxMiwuOTg2MjEsLjk4NjIxLC45ODYyMSwuOTg2MjEsLjk1OTYxLC45MjIyMiwuOTA2MzcsLjkwNjM3LC45MDYzNywuOTA2MzcsLjkwNjM3LDEuMDIwNTgsLjkwMjUxLC45MDY5OSwuOTA2OTksLjkwNjk5LC45MDY5OSwuODU0NTgsLjgzNjU5LC45NDk1MSwuOTk2MTMsLjk5NjEzLC45OTYxMywuOTk2MTMsLjk5NjEzLC45OTYxMywuODU4MTEsLjc4MjE2LC45MDA4MywuOTAwODMsLjkwMDgzLC45MDA4MywuOTUzODEsLjk1MzgxLC45NTM4MSwuOTUzODEsLjkxMzUsLjkyMTY4LC45MTUxMywuOTE1MTMsLjkxNTEzLC45MTUxMywuOTE1MTMsMS4wODU5NSwuOTE2NzcsLjkxNjc3LC45MTY3NywuOTE2NzcsLjkxNjc3LC44OTM2NCwuOTIzMzIsLjg5MzY0LC44NTU3NiwuOTk2MTMsLjg1NTc2LC45OTYxMywuODU1NzYsLjk5NjEzLC44MDcyOSwuNzgyMTYsLjgwNzI5LC43ODIxNiwuODA3MjksLjc4MjE2LC44MDcyOSwuNzgyMTYsLjk0Mjk5LC43Njc4MywuOTU5NjEsLjkxNjc3LC43NzUxMiwuOTAwODMsLjc3NTEyLC45MDA4MywuNzc1MTIsLjkwMDgzLC43NzUxMiwuOTAwODMsLjc3NTEyLC45MDA4MywuODY1MjMsLjkxMzUsLjg2NTIzLC45MTM1LC44NjUyMywuOTEzNSwxLDEsLjkyMjIyLC45MjE2OCwuOTIyMjIsLjkyMTY4LC45ODYyMSwuOTUzODEsLjk4NjIxLC45NTM4MSwuOTg2MjEsLjk1MzgxLC45ODYyMSwuOTUzODEsLjk4NjIxLC45NTM4MSwuODYwMzYsLjk3MDk2LC43MTc0MywuOTg5ODEsMSwxLC45NTI5OCwuNzk3MjYsLjk1MzgxLDEsMSwuNzk3MjYsLjY4OTQsLjc5NzI2LC43NDMyMSwuODE2OTEsMS4wMDA2LC45MjIyMiwuOTIxNjgsMSwxLC45MjIyMiwuOTIxNjgsLjc5NDY0LC45MjA5OCwuOTIxNjgsLjkwNjM3LC45MTUxMywuOTA2MzcsLjkxNTEzLC45MDYzNywuOTE1MTMsLjkwOSwuODc1MTQsLjgwNzI5LC45NTA3NywxLDEsLjgwNzI5LC45NTA3NywuNzY0NjMsLjc0OCwuNzY0NjMsLjc0OCwxLDEsLjc2NDYzLC43NDgsMSwxLC44NjI3NSwuNzI2NTEsLjg2Mjc1LDEuMDQ1MDIsLjkwNjk5LC45MTY3NywuOTA2OTksLjkxNjc3LC45MDY5OSwuOTE2NzcsLjkwNjk5LC45MTY3NywuOTA2OTksLjkxNjc3LC45MDY5OSwuOTE2NzcsLjkxNTQsLjk0MjM2LC44NTQ1OCwuODkzNjQsLjg1NDU4LC45MDUzMSwuOSwuOTA1MzEsLjksLjkwNTMxLC45LDEsLjk3Mjc2LC44NTU3NiwuOTk2MTMsLjg0NSwuODU4MTEsLjkwMjUxLC45MTY3NywxLDEsLjg2Mjc1LDEuMDQ1MDIsMS4xODYxNiwxLjE4NjE2LDEuMTg2MTYsMS4xODYxNiwxLjE4NjE2LDEuMTg2MTYsMS4xODYxNiwxLjE4NjE2LDEuMTg2MTYsMS4wMDg5OSwxLjMwNjI4LC44NTU3NiwuODAxNzgsLjY2ODYyLC43OTI3LC42OTMyMywuODgxMjcsLjcyNDU5LC44OTcxMSwuOTUzODEsLjg1NTc2LC44MDU5MSwuNzgwNSwuOTQ3MjksLjc3NTEyLC45MDUzMSwuOTIyMjIsLjkwNjM3LC45ODYyMSwuODE2OTgsLjkyNjU1LC45ODU1OCwuOTIyMjIsLjg1MzU5LC45MDYzNywuOTA5NzYsLjgzODA5LC45NDUyMywuODYyNzUsLjgzNTA5LC45MzE1NywuODUzMDgsLjgzMzkyLC45MjM0NiwuOTg2MjEsLjgzNTA5LC45Mjg4NiwuOTEzMjQsLjkyMTY4LC45NTM4MSwuOTA2NDYsLjkyODg2LC45MDU1NywuODY4NDcsLjkwMjc2LC45MTMyNCwuODY4NDIsLjkyMTY4LC45OTUzMSwuOTUzODEsLjkyMjQsLjg1NDA4LC45MjY5OSwuODY4NDcsMS4wMDUxLC45MTUxMywuODA0ODcsLjkzNDgxLDEsLjg4MTU5LDEuMDUyMTQsLjkwNjQ2LC45NzM1NSwuODE1MzksLjg5Mzk4LC44NTkyMywuOTUzODEsLjkwNjQ2LC45MTUxMywuOTA2NDYsLjg1OTIzLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjkxNTQsLjk0MjM2LC45MTU0LC45NDIzNiwuOTE1NCwuOTQyMzYsLjg1NDU4LC44OTM2NCwuOTY2OTQsMSwuODk5MDMsMSwxLDEsLjkxNzgyLC45MTc4MiwuOTE3ODIsMSwuODk2LC44OTYsLjg5NiwuOTMzMiwuOTMzMiwuOTU5NzMsMSwxLjI2LDEsMSwuODA0NzksLjgwMTc4LDEsMSwuODU2MzMsMSwxLDEsMSwuOTcyNzYsMSwxLDEsLjY5OCwxLDEuMzYxNDUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMTQ1NDIsMSwuNzkxOTksLjc4Njk0LDEuMDIwNTgsMS4wMzQ5MywxLjA1NDg2LDEsMSwxLjIzMDI2LDEuMDg1OTUsMS4wODU5NSwxLDEuMDg1OTUsMS4wODU5NSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMjAwMDYsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sV2E9e2xpbmVIZWlnaHQ6MS4yLGxpbmVHYXA6LjJ9LGphPVsxLjM2ODk4LDEsMSwuNjU1MDcsLjg0OTQzLC44NTYzOSwuODg0NjUsLjg4NDY1LC44NjkzNiwuODgzMDcsLjg2OTQ4LC44NTI4MywuODUyODMsMS4wNjM4MywxLjAyMDU4LC43NTk0NSwuOTIxOSwuNzU5NDUsMS4xNzMzNywuODg0NjUsLjg4NDY1LC44ODQ2NSwuODg0NjUsLjg4NDY1LC44ODQ2NSwuODg0NjUsLjg4NDY1LC44ODQ2NSwuODg0NjUsLjc1OTQ1LC43NTk0NSwxLjAyMDU4LDEuMDIwNTgsMS4wMjA1OCwuNjkwNDYsLjcwOTI2LC44NTE1OCwuNzc4MTIsLjc2ODUyLC44OTU5MSwuNzA0NjYsLjc2MTI1LC44MDA5NCwuODY4MjIsLjgzODY0LC43MjgsLjc3MjEyLC43OTQ3NSwuOTM2MzcsLjg3NTE0LC44NTg4LC43NjAxMywuODU4OCwuNzI0MjEsLjY5ODY2LC43NzU5OCwuODU5OTEsLjgwODExLC44NzgzMiwuNzgxMTIsLjc3NTEyLC44NTYyLDEuMDIyMiwxLjE4NDE3LDEuMDIyMiwxLjI3MDE0LC44OTkwMywxLjE1MDEyLC45Mzg1OSwuOTQzOTksLjg0NiwuOTQzOTksLjgxNDUzLDEuMDE4NiwuOTQyMTksLjk2MDE3LDEuMDMwNzUsMS4wMjE3NSwuOTEyLDEuMDMwNzUsLjk2OTk4LC45NjAxNywuOTM4NTksLjk0Mzk5LC45NDM5OSwuOTU0OTMsLjc0NiwxLjEyNjU4LC45NDU3OCwuOTEsLjk3OSwuODgyLC44ODIsLjgzLC44NTAzNCwuODM1MzcsLjg1MDM0LDEuMDIwNTgsLjcwODY5LC44ODQ2NSwuODg0NjUsLjg4NDY1LC44ODQ2NSwuODM1MzcsLjkwMDgzLDEuMTUwMTIsLjkxNjEsLjk0NTY1LC43MzU0MSwxLjAyMDU4LC41MzYwOSwuNjkzNTMsLjc5NTE5LDEuMDg1OTUsMSwxLDEuMTUwMTIsMSwuOTE5NzQsLjc1OTQ1LDEuMTUwMTIsMSwuOTQ0NiwuNzMzNjEsLjkwMDUsLjkwMDUsLjkwMDUsLjYyODY0LC44NTE1OCwuODUxNTgsLjg1MTU4LC44NTE1OCwuODUxNTgsLjg1MTU4LC43NzMsLjc2ODUyLC43MDQ2NiwuNzA0NjYsLjcwNDY2LC43MDQ2NiwuODM4NjQsLjgzODY0LC44Mzg2NCwuODM4NjQsLjkwNTYxLC44NzUxNCwuODU4OCwuODU4OCwuODU4OCwuODU4OCwuODU4OCwxLjAyMDU4LC44NTc1MSwuODU5OTEsLjg1OTkxLC44NTk5MSwuODU5OTEsLjc3NTEyLC43NjAxMywuODgwNzUsLjkzODU5LC45Mzg1OSwuOTM4NTksLjkzODU5LC45Mzg1OSwuOTM4NTksLjgwNzUsLjg0NiwuODE0NTMsLjgxNDUzLC44MTQ1MywuODE0NTMsLjgyNDI0LC44MjQyNCwuODI0MjQsLjgyNDI0LC45Mjc4LC45NjAxNywuOTM4NTksLjkzODU5LC45Mzg1OSwuOTM4NTksLjkzODU5LDEuMDg1OTUsLjg1NjIsLjk0NTc4LC45NDU3OCwuOTQ1NzgsLjk0NTc4LC44ODIsLjk0NTc4LC44ODIsLjg1MTU4LC45Mzg1OSwuODUxNTgsLjkzODU5LC44NTE1OCwuOTM4NTksLjc2ODUyLC44NDYsLjc2ODUyLC44NDYsLjc2ODUyLC44NDYsLjc2ODUyLC44NDYsLjg5NTkxLC44NTQ0LC45MDU2MSwuOTQzOTksLjcwNDY2LC44MTQ1MywuNzA0NjYsLjgxNDUzLC43MDQ2NiwuODE0NTMsLjcwNDY2LC44MTQ1MywuNzA0NjYsLjgxNDUzLC44MDA5NCwuOTQyMTksLjgwMDk0LC45NDIxOSwuODAwOTQsLjk0MjE5LDEsMSwuODY4MjIsLjk2MDE3LC44NjgyMiwuOTYwMTcsLjgzODY0LC44MjQyNCwuODM4NjQsLjgyNDI0LC44Mzg2NCwuODI0MjQsLjgzODY0LDEuMDMwNzUsLjgzODY0LC44MjQyNCwuODE0MDIsMS4wMjczOCwuNzI4LDEuMDIxNzUsMSwxLC45MTIsLjc5NDc1LDEuMDMwNzUsMSwxLC43OTQ3NSwuODM5MTEsLjc5NDc1LC42NjI2NiwuODA1NTMsMS4wNjY3NiwuODc1MTQsLjk2MDE3LDEsMSwuODc1MTQsLjk2MDE3LC44Njg2NSwuODczOTYsLjk2MDE3LC44NTg4LC45Mzg1OSwuODU4OCwuOTM4NTksLjg1ODgsLjkzODU5LC44NjcsLjg0NzU5LC43MjQyMSwuOTU0OTMsMSwxLC43MjQyMSwuOTU0OTMsLjY5ODY2LC43NDYsLjY5ODY2LC43NDYsMSwxLC42OTg2NiwuNzQ2LDEsMSwuNzc1OTgsLjg4NDE3LC43NzU5OCwxLjEyNjU4LC44NTk5MSwuOTQ1NzgsLjg1OTkxLC45NDU3OCwuODU5OTEsLjk0NTc4LC44NTk5MSwuOTQ1NzgsLjg1OTkxLC45NDU3OCwuODU5OTEsLjk0NTc4LC44NzgzMiwuOTc5LC43NzUxMiwuODgyLC43NzUxMiwuODU2MiwuODMsLjg1NjIsLjgzLC44NTYyLC44MywxLC44ODQ2NSwuODUxNTgsLjkzODU5LC43NzMsLjgwNzUsLjg1NzUxLC44NTYyLDEsMSwuNzc1OTgsMS4xMjY1OCwxLjE1MDEyLDEuMTUwMTIsMS4xNTAxMiwxLjE1MDEyLDEuMTUwMTIsMS4xNTMxMywxLjE1MDEyLDEuMTUwMTIsMS4xNTAxMiwxLjA4MTA2LDEuMDM5MDEsLjg1MTU4LC43NzAyNSwuNjIyNjQsLjc2NDYsLjY1MzUxLC44NjAyNiwuNjk0NjEsLjg5OTQ3LDEuMDMwNzUsLjg1MTU4LC43NzgxMiwuNzY0NDksLjg4ODM2LC43MDQ2NiwuODU2MiwuODY4MjIsLjg1ODgsLjgzODY0LC43NzIxMiwuODUzMDgsLjkzNjM3LC44NzUxNCwuODIzNTIsLjg1ODgsLjg1NzAxLC43NjAxMywuODkwNTgsLjc3NTk4LC44MTU2LC44MjU2NSwuNzgxMTIsLjc3ODk5LC44OTM4NiwuODM4NjQsLjgxNTYsLjk0ODYsLjkyMzg4LC45NjE4NiwxLjAzMDc1LC45MTEyMywuOTQ4NiwuOTMyOTgsLjg3OCwuOTM5NDIsLjkyMzg4LC44NDU5NiwuOTYxODYsLjk1MTE5LDEuMDMwNzUsLjkyMiwuODg3ODcsLjk1ODI5LC44OCwuOTM1NTksLjkzODU5LC43ODgxNSwuOTM3NTgsMSwuODkyMTcsMS4wMzczNywuOTExMjMsLjkzOTY5LC43NzQ4NywuODU3NjksLjg2Nzk5LDEuMDMwNzUsLjkxMTIzLC45Mzg1OSwuOTExMjMsLjg2Nzk5LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjg3ODMyLC45NzksLjg3ODMyLC45NzksLjg3ODMyLC45NzksLjc3NTEyLC44ODIsLjkyMTksMSwuODk5MDMsMSwxLDEsLjg3MzIxLC44NzMyMSwuODczMjEsMSwxLjAyNywxLjAyNywxLjAyNywuODY4NDcsLjg2ODQ3LC43OTEyMSwxLDEuMTI0LDEsMSwuNzM1NzIsLjczNTcyLDEsMSwuODUwMzQsMSwxLDEsMSwuODg0NjUsMSwxLDEsLjY2OSwxLDEuMzYxNDUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMDQ4MjgsMSwuNzQ5NDgsLjc1MTg3LDEuMDIwNTgsLjk4MzkxLDEuMDIxMTksMSwxLDEuMDYyMzMsMS4wODU5NSwxLjA4NTk1LDEsMS4wODU5NSwxLjA4NTk1LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4wNTIzMywxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSxYYT17bGluZUhlaWdodDoxLjIsbGluZUdhcDouMn0sVmE9WzEuMzY4OTgsMSwxLC43NjMwNSwuODI3ODQsLjk0OTM1LC44OTM2NCwuOTIyNDEsLjg5MDczLC45MDcwNiwuOTg0NzIsLjg1MjgzLC44NTI4MywxLjA2NjQsMS4wMjA1OCwuNzQ1MDUsLjkyMTksLjc0NTA1LDEuMjM0NTYsLjkyMjQxLC45MjI0MSwuOTIyNDEsLjkyMjQxLC45MjI0MSwuOTIyNDEsLjkyMjQxLC45MjI0MSwuOTIyNDEsLjkyMjQxLC43NDUwNSwuNzQ1MDUsMS4wMjA1OCwxLjAyMDU4LDEuMDIwNTgsLjczMDAyLC43MjYwMSwuOTE3NTUsLjgxMjYsLjgwMzE0LC45MjIyMiwuNzM3NjQsLjc5NzI2LC44MzA1MSwuOTAyODQsLjg2MDIzLC43NCwuODEyNiwuODQ4NjksLjk2NTE4LC45MTExNSwuODg1OCwuNzk3NjEsLjg4NTgsLjc0NDk4LC43MzkxNCwuODEzNjMsLjg5NTkxLC44MzY1OSwuODk2MzMsLjg1NjA4LC44MTExLC45MDUzMSwxLjAyMjIsMS4yMjczNiwxLjAyMjIsMS4yNzAxNCwuODk5MDMsLjkwMDg4LC44NjY2NywxLjAyMzEsLjg5NiwxLjAxNDExLC45MDA4MywxLjA1MDk5LDEuMDA1MTIsLjk5NzkzLDEuMDUzMjYsMS4wOTM3NywuOTM4LDEuMDYyMjYsMS4wMDExOSwuOTk3OTMsLjk4NzE0LDEuMDIzMSwxLjAxMjMxLC45ODE5NiwuNzkyLDEuMTkxMzcsLjk5MDc0LC45NjIsMS4wMTkxNSwuOTI2LC45NDIsLjg1NiwuODUwMzQsLjkyMDA2LC44NTAzNCwxLjAyMDU4LC42OTA2NywuOTIyNDEsLjkyMjQxLC45MjI0MSwuOTIyNDEsLjkyMDA2LC45MzMyLC45MDA4OCwuOTE4ODIsLjkzNDg0LC43NTMzOSwxLjAyMDU4LC41Njg2NiwuNTQzMjQsLjc5NTE5LDEuMDg1OTUsMSwxLC45MDA4OCwxLC45NTMyNSwuNzQ1MDUsLjkwMDg4LDEsLjk3MTk4LC43NTMzOSwuOTEwMDksLjkxMDA5LC45MTAwOSwuNjY0NjYsLjkxNzU1LC45MTc1NSwuOTE3NTUsLjkxNzU1LC45MTc1NSwuOTE3NTUsLjc4OCwuODAzMTQsLjczNzY0LC43Mzc2NCwuNzM3NjQsLjczNzY0LC44NjAyMywuODYwMjMsLjg2MDIzLC44NjAyMywuOTI5MTUsLjkxMTE1LC44ODU4LC44ODU4LC44ODU4LC44ODU4LC44ODU4LDEuMDIwNTgsLjg4NTgsLjg5NTkxLC44OTU5MSwuODk1OTEsLjg5NTkxLC44MTExLC43OTYxMSwuODk3MTMsLjg2NjY3LC44NjY2NywuODY2NjcsLjg2NjY3LC44NjY2NywuODY2NjcsLjg2OTM2LC44OTYsLjkwMDgzLC45MDA4MywuOTAwODMsLjkwMDgzLC44NDIyNCwuODQyMjQsLjg0MjI0LC44NDIyNCwuOTcyNzYsLjk5NzkzLC45ODcxNCwuOTg3MTQsLjk4NzE0LC45ODcxNCwuOTg3MTQsMS4wODU5NSwuODk4NzYsLjk5MDc0LC45OTA3NCwuOTkwNzQsLjk5MDc0LC45NDIsMS4wMjMxLC45NDIsLjkxNzU1LC44NjY2NywuOTE3NTUsLjg2NjY3LC45MTc1NSwuODY2NjcsLjgwMzE0LC44OTYsLjgwMzE0LC44OTYsLjgwMzE0LC44OTYsLjgwMzE0LC44OTYsLjkyMjIyLC45MzM3MiwuOTI5MTUsMS4wMTQxMSwuNzM3NjQsLjkwMDgzLC43Mzc2NCwuOTAwODMsLjczNzY0LC45MDA4MywuNzM3NjQsLjkwMDgzLC43Mzc2NCwuOTAwODMsLjgzMDUxLDEuMDA1MTIsLjgzMDUxLDEuMDA1MTIsLjgzMDUxLDEuMDA1MTIsMSwxLC45MDI4NCwuOTk3OTMsLjkwOTc2LC45OTc5MywuODYwMjMsLjg0MjI0LC44NjAyMywuODQyMjQsLjg2MDIzLC44NDIyNCwuODYwMjMsMS4wNTMyNiwuODYwMjMsLjg0MjI0LC44Mjg3MywxLjA3NDY5LC43NCwxLjA5Mzc3LDEsMSwuOTM4LC44NDg2OSwxLjA2MjI2LDEsMSwuODQ4NjksLjgzNzA0LC44NDg2OSwuODE0NDEsLjg1NTg4LDEuMDg5MjcsLjkxMTE1LC45OTc5MywxLDEsLjkxMTE1LC45OTc5MywuOTE4ODcsLjkwOTkxLC45OTc5MywuODg1OCwuOTg3MTQsLjg4NTgsLjk4NzE0LC44ODU4LC45ODcxNCwuODk0LC45MTQzNCwuNzQ0OTgsLjk4MTk2LDEsMSwuNzQ0OTgsLjk4MTk2LC43MzkxNCwuNzkyLC43MzkxNCwuNzkyLDEsMSwuNzM5MTQsLjc5MiwxLDEsLjgxMzYzLC45MDQsLjgxMzYzLDEuMTkxMzcsLjg5NTkxLC45OTA3NCwuODk1OTEsLjk5MDc0LC44OTU5MSwuOTkwNzQsLjg5NTkxLC45OTA3NCwuODk1OTEsLjk5MDc0LC44OTU5MSwuOTkwNzQsLjg5NjMzLDEuMDE5MTUsLjgxMTEsLjk0MiwuODExMSwuOTA1MzEsLjg1NiwuOTA1MzEsLjg1NiwuOTA1MzEsLjg1NiwxLC45MjI0MSwuOTE3NTUsLjg2NjY3LC43ODgsLjg2OTM2LC44ODU4LC44OTg3NiwxLDEsLjgxMzYzLDEuMTkxMzcsLjkwMDg4LC45MDA4OCwuOTAwODgsLjkwMDg4LC45MDA4OCwuOTAwODgsLjkwMDg4LC45MDA4OCwuOTAwODgsLjkwMzg4LDEuMDM5MDEsLjkyMTM4LC43ODEwNSwuNzE1NCwuODYxNjksLjgwNTEzLC45NDAwNywuODI1MjgsLjk4NjEyLDEuMDYyMjYsLjkxNzU1LC44MTI2LC44MTg4NCwuOTI4MTksLjczNzY0LC45MDUzMSwuOTAyODQsLjg4NTgsLjg2MDIzLC44MTI2LC45MTE3MiwuOTY1MTgsLjkxMTE1LC44MzA4OSwuODg1OCwuODc3OTEsLjc5NzYxLC44OTI5NywuODEzNjMsLjg4MTU3LC44OTk5MiwuODU2MDgsLjgxOTkyLC45NDMwNywuODYwMjMsLjg4MTU3LC45NTMwOCwuOTg2OTksLjk5NzkzLDEuMDYyMjYsLjk1ODE3LC45NTMwOCwuOTczNTgsLjkyOCwuOTgwODgsLjk4Njk5LC45Mjc2MSwuOTk3OTMsLjk2MDE3LDEuMDYyMjYsLjk4NiwuOTQ0LC45NTk3OCwuOTM4LC45NjcwNSwuOTg3MTQsLjgwNDQyLC45ODk3MiwxLC44OTc2MiwxLjA0NTUyLC45NTgxNywuOTkwMDcsLjg3MDY0LC45MTg3OSwuODg4ODgsMS4wNjIyNiwuOTU4MTcsLjk4NzE0LC45NTgxNywuODg4ODgsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuODk2MzMsMS4wMTkxNSwuODk2MzMsMS4wMTkxNSwuODk2MzMsMS4wMTkxNSwuODExMSwuOTQyLC45MjE5LDEsLjg5OTAzLDEsMSwxLC45MzE3MywuOTMxNzMsLjkzMTczLDEsMS4wNjMwNCwxLjA2MzA0LDEuMDY5MDQsLjg5OTAzLC44OTkwMywuODA1NDksMSwxLjE1NiwxLDEsLjc2NTc1LC43NjU3NSwxLDEsLjcyNDU4LDEsMSwxLDEsLjkyMjQxLDEsMSwxLC42MTksMSwxLjM2MTQ1LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjA3MjU3LDEsLjc0NzA1LC43MTExOSwxLjAyMDU4LDEuMDI0LDEuMDIxMTksMSwxLDEuMTUzNiwxLjA4NTk1LDEuMDg1OTUsMSwxLjA4NTk1LDEuMDg1OTUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjA1NjM4LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLFphPXtsaW5lSGVpZ2h0OjEuMixsaW5lR2FwOi4yfSxfYT1bMS43NjczOCwxLDEsLjk5Mjk3LC45ODI0LDEuMDQwMTYsMS4wNjQ5NywxLjAzNDI0LC45NzUyOSwxLjE3NjQ3LDEuMjMyMDMsMS4xMDg1LDEuMTA4NSwxLjE2OTM5LDEuMjEwNywuOTc1NCwxLjIxNDA4LC45NzU0LDEuNTk1NzgsMS4wMzQyNCwxLjAzNDI0LDEuMDM0MjQsMS4wMzQyNCwxLjAzNDI0LDEuMDM0MjQsMS4wMzQyNCwxLjAzNDI0LDEuMDM0MjQsMS4wMzQyNCwuODEzNzgsLjgxMzc4LDEuMjEwNywxLjIxMDcsMS4yMTA3LC43MTcwMywuOTc4NDcsLjk3MzYzLC44ODc3NiwuODY0MSwxLjAyMDk2LC43OTc5NSwuODUxMzIsLjkxNCwxLjA2MDg1LDEuMTQwNiwuODAwNywuODk4NTgsLjgzNjkzLDEuMTQ4ODksMS4wOTM5OCwuOTc0ODksLjkyMDk0LC45NzQ4OSwuOTAzOTksLjg0MDQxLC45NTkyMywxLjAwMTM1LDEsMS4wNjQ2NywuOTgyNDMsLjkwOTk2LC45OTM2MSwxLjEwODUsMS41Njk0MiwxLjEwODUsMS4yMTA3LC43NDYyNywuOTQyODIsLjk2NzUyLDEuMDE1MTksLjg2MzA0LDEuMDEzNTksLjk3Mjc4LDEuMTUxMDMsMS4wMTM1OSwuOTg1NjEsMS4wMjI4NSwxLjAyMjg1LDEuMDA1MjcsMS4wMjI4NSwxLjAzMDIsLjk5MDQxLDEuMDAwOCwxLjAxNTE5LDEuMDEzNTksMS4wMjI1OCwuNzkxMDQsMS4xNjg2MiwuOTkwNDEsLjk3NDU0LDEuMDI1MTEsLjk5Mjk4LC45Njc1MiwuOTU4MDEsLjk0ODU2LDEuMTY1NzksLjk0ODU2LDEuMjEwNywuOTgyNCwxLjAzNDI0LDEuMDM0MjQsMSwxLjAzNDI0LDEuMTY1NzksLjg3MjcsMS4zODcxLDEuMTg2MjIsMS4xMDgxOCwxLjA0NDc4LDEuMjEwNywxLjE4NjIyLC43NTE1NSwuOTQ5OTQsMS4yODgyNiwxLjIxNDA4LDEuMjE0MDgsLjkxMDU2LDEsLjkxNTcyLC45NzU0LC42NDY2MywxLjE4MzI4LDEuMjQ4NjYsMS4wNDQ3OCwxLjE0MTY5LDEuMTU3NDksMS4xNzM4OSwuNzE3MDMsLjk3MzYzLC45NzM2MywuOTczNjMsLjk3MzYzLC45NzM2MywuOTczNjMsLjkzNTA2LC44NjQxLC43OTc5NSwuNzk3OTUsLjc5Nzk1LC43OTc5NSwxLjE0MDYsMS4xNDA2LDEuMTQwNiwxLjE0MDYsMS4wMjA5NiwxLjA5Mzk4LC45NzQyNiwuOTc0MjYsLjk3NDI2LC45NzQyNiwuOTc0MjYsMS4yMTA3LC45NzQ4OSwxLjAwMTM1LDEuMDAxMzUsMS4wMDEzNSwxLjAwMTM1LC45MDk5NiwuOTIwOTQsMS4wMjc5OCwuOTY3NTIsLjk2NzUyLC45Njc1MiwuOTY3NTIsLjk2NzUyLC45Njc1MiwuOTMxMzYsLjg2MzA0LC45NzI3OCwuOTcyNzgsLjk3Mjc4LC45NzI3OCwxLjAyMjg1LDEuMDIyODUsMS4wMjI4NSwxLjAyMjg1LC45NzEyMiwuOTkwNDEsMSwxLDEsMSwxLDEuMjg4MjYsMS4wMDA4LC45OTA0MSwuOTkwNDEsLjk5MDQxLC45OTA0MSwuOTY3NTIsMS4wMTUxOSwuOTY3NTIsLjk3MzYzLC45Njc1MiwuOTczNjMsLjk2NzUyLC45NzM2MywuOTY3NTIsLjg2NDEsLjg2MzA0LC44NjQxLC44NjMwNCwuODY0MSwuODYzMDQsLjg2NDEsLjg2MzA0LDEuMDIwOTYsMS4wMzA1NywxLjAyMDk2LDEuMDM1MTcsLjc5Nzk1LC45NzI3OCwuNzk3OTUsLjk3Mjc4LC43OTc5NSwuOTcyNzgsLjc5Nzk1LC45NzI3OCwuNzk3OTUsLjk3Mjc4LC45MTQsMS4wMTM1OSwuOTE0LDEuMDEzNTksLjkxNCwxLjAxMzU5LDEsMSwxLjA2MDg1LC45ODU2MSwxLjA2MDg1LDEuMDA4NzksMS4xNDA2LDEuMDIyODUsMS4xNDA2LDEuMDIyODUsMS4xNDA2LDEuMDIyODUsMS4xNDA2LDEuMDIyODUsMS4xNDA2LDEuMDIyODUsLjk3MTM4LDEuMDg2OTIsLjgwMDcsMS4wMjI4NSwxLDEsMS4wMDUyNywuODM2OTMsMS4wMjI4NSwxLDEsLjgzNjkzLC45NDU1LC44MzY5MywuOTA0MTgsLjgzNjkzLDEuMTMwMDUsMS4wOTM5OCwuOTkwNDEsMSwxLDEuMDkzOTgsLjk5MDQxLC45NjY5MiwxLjA5MjUxLC45OTA0MSwuOTc0ODksMS4wMDA4LC45NzQ4OSwxLjAwMDgsLjk3NDg5LDEuMDAwOCwuOTM5OTQsLjk3OTMxLC45MDM5OSwxLjAyMjU4LDEsMSwuOTAzOTksMS4wMjI1OCwuODQwNDEsLjc5MTA0LC44NDA0MSwuNzkxMDQsLjg0MDQxLC43OTEwNCwuODQwNDEsLjc5MTA0LDEsMSwuOTU5MjMsMS4wNzAzNCwuOTU5MjMsMS4xNjg2MiwxLjAwMTM1LC45OTA0MSwxLjAwMTM1LC45OTA0MSwxLjAwMTM1LC45OTA0MSwxLjAwMTM1LC45OTA0MSwxLjAwMTM1LC45OTA0MSwxLjAwMTM1LC45OTA0MSwxLjA2NDY3LDEuMDI1MTEsLjkwOTk2LC45Njc1MiwuOTA5OTYsLjk5MzYxLC45NTgwMSwuOTkzNjEsLjk1ODAxLC45OTM2MSwuOTU4MDEsMS4wNzczMywxLjAzNDI0LC45NzM2MywuOTY3NTIsLjkzNTA2LC45MzEzNiwuOTc0ODksMS4wMDA4LDEsMSwuOTU5MjMsMS4xNjg2MiwxLjE1MTAzLDEuMTUxMDMsMS4wMTE3MywxLjAzOTU5LC43NTk1MywuODEzNzgsLjc5OTEyLDEuMTUxMDMsMS4yMTk5NCwuOTUxNjEsLjg3ODE1LDEuMDExNDksLjgxNTI1LC43Njc2LC45ODE2NywxLjAxMTM0LDEuMDI1NDYsLjg0MDk3LDEuMDMwODksMS4xODEwMiwuOTczNjMsLjg4Nzc2LC44NTEzNCwuOTc4MjYsLjc5Nzk1LC45OTM2MSwxLjA2MDg1LC45NzQ4OSwxLjE0MDYsLjg5ODU4LDEuMDM4OCwxLjE0ODg5LDEuMDkzOTgsLjg2MDM5LC45NzQ4OSwxLjA1OTUsLjkyMDk0LC45NDc5MywuOTU5MjMsLjkwOTk2LC45OTM0NiwuOTgyNDMsMS4wMjExMiwuOTU0OTMsMS4xNDA2LC45MDk5NiwxLjAzNTc0LDEuMDI1OTcsMS4wMDA4LDEuMTgxMDIsMS4wNjYyOCwxLjAzNTc0LDEuMDE5MiwxLjAxOTMyLDEuMDA4ODYsLjk3NTMxLDEuMDEwNiwxLjAwMDgsMS4xMzE4OSwxLjE4MTAyLDEuMDIyNzcsLjk4NjgzLDEuMDAxNiwuOTk1NjEsMS4wNzIzNywxLjAwMDgsLjkwNDM0LC45OTkyMSwuOTM4MDMsLjg5NjUsMS4yMzA4NSwxLjA2NjI4LDEuMDQ5ODMsLjk2MjY4LDEuMDQ5OSwuOTg0MzksMS4xODEwMiwxLjA2NjI4LDEuMDAwOCwxLjA2NjI4LC45ODQzOSwuNzk3OTUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4wOTQ2NiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTcyNzgsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4wMjA2NSwxLDEsMSwxLDEsMSwxLjA2NDY3LDEuMDI1MTEsMS4wNjQ2NywxLjAyNTExLDEuMDY0NjcsMS4wMjUxMSwuOTA5OTYsLjk2NzUyLDEsMS4yMTQwOCwuODk5MDMsMSwxLC43NTE1NSwxLjA0Mzk0LDEuMDQzOTQsMS4wNDM5NCwxLjA0Mzk0LC45ODYzMywuOTg2MzMsLjk4NjMzLC43MzA0NywuNzMwNDcsMS4yMDY0MiwuOTEyMTEsMS4yNTYzNSwxLjIyMiwxLjAyOTU2LDEuMDMzNzIsMS4wMzM3MiwuOTYwMzksMS4yNDYzMywxLDEuMTI0NTQsLjkzNTAzLDEuMDM0MjQsMS4xOTY4NywxLjAzNDI0LDEsMSwxLC43NzEsMSwxLDEuMTU3NDksMS4xNTc0OSwxLjE1NzQ5LDEuMTA5NDgsLjg2Mjc5LC45NDQzNCwuODYyNzksLjk0NDM0LC44NjE4MiwxLDEsMS4xNjg5NywxLC45NjA4NSwuOTAxMzcsMS4yMTA3LDEuMTg0MTYsMS4xMzk3MywuNjk4MjUsLjk3MTYsMi4xMDMzOSwxLjI5MDA0LDEuMjkwMDQsMS4yMTE3MiwxLjI5MDA0LDEuMjkwMDQsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjQyNjAzLDEsLjk5ODYyLC45OTg2MiwxLC44NzAyNSwuODcwMjUsLjg3MDI1LC44NzAyNSwxLjE4ODc0LDEuNDI2MDMsMSwxLjQyNjAzLDEuNDI2MDMsLjk5ODYyLDEsMSwxLDEsMSwxLjI4ODYsMS4wNDMxNSwxLjE1Mjk2LDEuMzQxNjMsMSwxLDEsMS4wOTE5MywxLjA5MTkzLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSx6YT17bGluZUhlaWdodDoxLjMzMDA4LGxpbmVHYXA6MH0sJGE9WzEuNzY3MzgsMSwxLC45ODk0NiwxLjAzOTU5LDEuMDQwMTYsMS4wMjgwOSwxLjAzNiwuOTc2MzksMS4xMDk1MywxLjIzMjAzLDEuMTExNDQsMS4xMTE0NCwxLjE2OTM5LDEuMjEyMzcsLjk3NTQsMS4yMTI2MSwuOTc1NCwxLjU5NzU0LDEuMDM2LDEuMDM2LDEuMDM2LDEuMDM2LDEuMDM2LDEuMDM2LDEuMDM2LDEuMDM2LDEuMDM2LDEuMDM2LC44MTM3OCwuODEzNzgsMS4yMTIzNywxLjIxMjM3LDEuMjEyMzcsLjczNTQxLC45Nzg0NywuOTczNjMsLjg5NzIzLC44Nzg5NywxLjA0MjYsLjc5NDI5LC44NTI5MiwuOTExNDksMS4wNTgxNSwxLjE0MDYsLjc5NjMxLC45MDEyOCwuODM4NTMsMS4wNDM5NiwxLjEwNjE1LC45NzU1MiwuOTQ0MzYsLjk3NTUyLC44ODY0MSwuODA1MjcsLjk2MDgzLDEuMDAxMzUsMSwxLjA2Nzc3LC45ODE3LC45MTE0MiwuOTkzNjEsMS4xMTE0NCwxLjU3MjkzLDEuMTExNDQsMS4yMTIzNywuNzQ2MjcsMS4zMTgxOCwxLjA2NTg1LC45NzA0MiwuODMwNTUsLjk3MDQyLC45MzUwMywxLjEyNjEsLjk3MDQyLC45NzkyMiwxLjE0MjM2LC45NDU1MiwxLjAxMDU0LDEuMTQyMzYsMS4wMjQ3MSwuOTc5MjIsLjk0MTY1LC45NzA0MiwuOTcwNDIsMS4wMjc2LC43ODkyOSwxLjEyNjEsLjk3OTIyLC45NTg3NCwxLjAyMTk3LC45ODUwNywuOTY3NTIsLjk3MTY4LC45NTEwNywxLjE2NTc5LC45NTEwNywxLjIxMjM3LDEuMDM5NTksMS4wMzYsMS4wMzYsMSwxLjAzNiwxLjE2NTc5LC44NzM1NywxLjMxODE4LDEuMTg3NTQsMS4yNjc4MSwxLjA1MzU2LDEuMjEyMzcsMS4xODYyMiwuNzk0ODcsLjk0OTk0LDEuMjkwMDQsMS4yNDA0NywxLjI0MDQ3LDEuMzE4MTgsMSwuOTE0ODQsLjk3NTQsMS4zMTgxOCwxLjEzNDksMS4yNDg2NiwxLjA1MzU2LDEuMTM5MzQsMS4xNTU3NCwxLjE3Mzg5LC43MzU0MSwuOTczNjMsLjk3MzYzLC45NzM2MywuOTczNjMsLjk3MzYzLC45NzM2MywuOTQzODUsLjg3ODk3LC43OTQyOSwuNzk0MjksLjc5NDI5LC43OTQyOSwxLjE0MDYsMS4xNDA2LDEuMTQwNiwxLjE0MDYsMS4wNDI2LDEuMTA2MTUsLjk3NTUyLC45NzU1MiwuOTc1NTIsLjk3NTUyLC45NzU1MiwxLjIxMjM3LC45NzU1MiwxLjAwMTM1LDEuMDAxMzUsMS4wMDEzNSwxLjAwMTM1LC45MTE0MiwuOTQ0MzYsLjk4NzIxLDEuMDY1ODUsMS4wNjU4NSwxLjA2NTg1LDEuMDY1ODUsMS4wNjU4NSwxLjA2NTg1LC45NjcwNSwuODMwNTUsLjkzNTAzLC45MzUwMywuOTM1MDMsLjkzNTAzLDEuMTQyMzYsMS4xNDIzNiwxLjE0MjM2LDEuMTQyMzYsLjkzMTI1LC45NzkyMiwuOTQxNjUsLjk0MTY1LC45NDE2NSwuOTQxNjUsLjk0MTY1LDEuMjkwMDQsLjk0MTY1LC45NzkyMiwuOTc5MjIsLjk3OTIyLC45NzkyMiwuOTY3NTIsLjk3MDQyLC45Njc1MiwuOTczNjMsMS4wNjU4NSwuOTczNjMsMS4wNjU4NSwuOTczNjMsMS4wNjU4NSwuODc4OTcsLjgzMDU1LC44Nzg5NywuODMwNTUsLjg3ODk3LC44MzA1NSwuODc4OTcsLjgzMDU1LDEuMDQyNiwxLjAwMzMsMS4wNDI2LC45NzA0MiwuNzk0MjksLjkzNTAzLC43OTQyOSwuOTM1MDMsLjc5NDI5LC45MzUwMywuNzk0MjksLjkzNTAzLC43OTQyOSwuOTM1MDMsLjkxMTQ5LC45NzA0MiwuOTExNDksLjk3MDQyLC45MTE0OSwuOTcwNDIsMSwxLDEuMDU4MTUsLjk3OTIyLDEuMDU4MTUsLjk3OTIyLDEuMTQwNiwxLjE0MjM2LDEuMTQwNiwxLjE0MjM2LDEuMTQwNiwxLjE0MjM2LDEuMTQwNiwxLjE0MjM2LDEuMTQwNiwxLjE0MjM2LC45NzQ0MSwxLjA0MzAyLC43OTYzMSwxLjAxNTgyLDEsMSwxLjAxMDU0LC44Mzg1MywxLjE0MjM2LDEsMSwuODM4NTMsMS4wOTEyNSwuODM4NTMsLjkwNDE4LC44Mzg1MywxLjE5NTA4LDEuMTA2MTUsLjk3OTIyLDEsMSwxLjEwNjE1LC45NzkyMiwxLjAxMDM0LDEuMTA0NjYsLjk3OTIyLC45NzU1MiwuOTQxNjUsLjk3NTUyLC45NDE2NSwuOTc1NTIsLjk0MTY1LC45MTYwMiwuOTE5ODEsLjg4NjQxLDEuMDI3NiwxLDEsLjg4NjQxLDEuMDI3NiwuODA1MjcsLjc4OTI5LC44MDUyNywuNzg5MjksLjgwNTI3LC43ODkyOSwuODA1MjcsLjc4OTI5LDEsMSwuOTYwODMsMS4wNTQwMywuOTU5MjMsMS4xNjg2MiwxLjAwMTM1LC45NzkyMiwxLjAwMTM1LC45NzkyMiwxLjAwMTM1LC45NzkyMiwxLjAwMTM1LC45NzkyMiwxLjAwMTM1LC45NzkyMiwxLjAwMTM1LC45NzkyMiwxLjA2Nzc3LDEuMDIxOTcsLjkxMTQyLC45Njc1MiwuOTExNDIsLjk5MzYxLC45NzE2OCwuOTkzNjEsLjk3MTY4LC45OTM2MSwuOTcxNjgsMS4yMzE5OSwxLjAzNiwuOTczNjMsMS4wNjU4NSwuOTQzODUsLjk2NzA1LC45NzU1MiwuOTQxNjUsMSwxLC45NjA4MywxLjEyNjEsMS4zMTgxOCwxLjMxODE4LDEuMzE4MTgsMS4zMTgxOCwxLjMxODE4LDEuMzE4MTgsMS4zMTgxOCwxLjMxODE4LDEuMzE4MTgsLjk1MTYxLDEuMjcxMjYsMS4wMDgxMSwuODMyODQsLjc3NzAyLC45OTEzNywuOTUyNTMsMS4wMzQ3LC44NjE0MiwxLjA3MjA1LDEuMTQyMzYsLjk3MzYzLC44OTcyMywuODY4NjksMS4wOTgxOCwuNzk0MjksLjk5MzYxLDEuMDU4MTUsLjk3NTUyLDEuMTQwNiwuOTAxMjgsMS4wNjY2MiwxLjA0Mzk2LDEuMTA2MTUsLjg0OTE4LC45NzU1MiwxLjA0Njk0LC45NDQzNiwuOTgwMTUsLjk2MDgzLC45MTE0MiwxLjAwMzU2LC45ODE3LDEuMDE5NDUsLjk4OTk5LDEuMTQwNiwuOTExNDIsMS4wNDk2MSwuOTg5OCwxLjAwNjM5LDEuMTQyMzYsMS4wNzUxNCwxLjA0OTYxLC45OTYwNywxLjAyODk3LDEuMDA4LC45ODk4LC45NTEzNCwxLjAwNjM5LDEuMTExMjEsMS4xNDIzNiwxLjAwNTE4LC45Nzk4MSwxLjAyMTg2LDEsMS4wODU3OCwuOTQxNjUsLjk5MzE0LC45ODM4NywuOTMwMjgsLjkzMzc3LDEuMzUxMjUsMS4wNzUxNCwxLjEwNjg3LC45MzQ5MSwxLjA0MjMyLDEuMDAzNTEsMS4xNDIzNiwxLjA3NTE0LC45NDE2NSwxLjA3NTE0LDEuMDAzNTEsLjc5NDI5LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMDkwOTcsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjkzNTAzLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45NjYwOSwxLDEsMSwxLDEsMSwxLjA2Nzc3LDEuMDIxOTcsMS4wNjc3NywxLjAyMTk3LDEuMDY3NzcsMS4wMjE5NywuOTExNDIsLjk2NzUyLDEsMS4yMTI2MSwuODk5MDMsMSwxLC43NTE1NSwxLjA0NzQ1LDEuMDQ3NDUsMS4wNDc0NSwxLjA0Mzk0LC45ODYzMywuOTg2MzMsLjk4NjMzLC43Mjk1OSwuNzI5NTksMS4yMDUwMiwuOTE0MDYsMS4yNjUxNCwxLjIyMiwxLjAyOTU2LDEuMDMzNzIsMS4wMzM3MiwuOTYwMzksMS4yNDYzMywxLDEuMDkxMjUsLjkzMzI3LDEuMDMzMzYsMS4xNjU0MSwxLjAzNiwxLDEsMSwuNzcxLDEsMSwxLjE1NTc0LDEuMTU1NzQsMS4xNTU3NCwxLjE1NTc0LC44NjM2NCwuOTQ0MzQsLjg2Mjc5LC45NDQzNCwuODYyMjQsMSwxLDEuMTY3OTgsMSwuOTYwODUsLjkwMDY4LDEuMjEyMzcsMS4xODQxNiwxLjEzOTA0LC42OTgyNSwuOTcxNiwyLjEwMzM5LDEuMjkwMDQsMS4yOTAwNCwxLjIxMzM5LDEuMjkwMDQsMS4yOTAwNCwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuNDI2MDMsMSwuOTk4NjIsLjk5ODYyLDEsLjg3MDI1LC44NzAyNSwuODcwMjUsLjg3MDI1LDEuMTg3NzUsMS40MjYwMywxLDEuNDI2MDMsMS40MjYwMywuOTk4NjIsMSwxLDEsMSwxLDEuMjg4NiwxLjA0MzE1LDEuMTUyOTYsMS4zNDE2MywxLDEsMSwxLjEzMjY5LDEuMTMyNjksMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLEFyPXtsaW5lSGVpZ2h0OjEuMzMwMDgsbGluZUdhcDowfSxlcj1bMS43NjczOCwxLDEsLjk4OTQ2LDEuMTQ3NjMsMS4wNTM2NSwxLjA2MjM0LC45NjkyNywuOTI1ODYsMS4xNTM3MywxLjE4NDE0LC45MTM0OSwuOTEzNDksMS4wNzQwMywxLjE3MzA4LC43ODM4MywxLjIwMDg4LC43ODM4MywxLjQyNTMxLC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuNzgzODMsLjc4MzgzLDEuMTczMDgsMS4xNzMwOCwxLjE3MzA4LC43NzM0OSwuOTQ1NjUsLjk0NzI5LC44NTk0NCwuODg1MDYsLjk4NTgsLjc0ODE3LC44MDAxNiwuODg0NDksLjk4MDM5LC45NTc4MiwuNjkyMzgsLjg5ODk4LC44MzIzMSwuOTgxODMsMS4wMzk4OSwuOTY5MjQsLjg2MjM3LC45NjkyNCwuODA1OTUsLjc0NTI0LC44NjA5MSwuOTU0MDIsLjk0MTQzLC45ODQ0OCwuODg1OCwuODMwODksLjkzMjg1LDEuMDk0OSwxLjM5MDE2LDEuMDk0OSwxLjQ1OTk0LC43NDYyNywxLjA0ODM5LC45NzQ1NCwuOTc0NTQsLjg3MjA3LC45NzQ1NCwuODc1MzMsMS4wNjE1MSwuOTc0NTQsMS4wMDE3NiwxLjE2NDg0LDEuMDgxMzIsLjk4MDQ3LDEuMTY0ODQsMS4wMjk4OSwxLjAxMDU0LC45NjIyNSwuOTc0NTQsLjk3NDU0LDEuMDY1OTgsLjc5MDA0LDEuMTYzNDQsMS4wMDM1MSwuOTQ2MjksLjk5NzMsLjkxMDE2LC45Njc3NywuOTA0MywuOTEwODIsLjkyNDgxLC45MTA4MiwxLjE3MzA4LC45NTc0OCwuOTY5MjcsLjk2OTI3LDEsLjk2OTI3LC45MjQ4MSwuODA1OTcsMS4wNDgzOSwxLjIzMzkzLDEuMTc4MSwuOTI0NSwxLjE3MzA4LDEuMjA4MDgsLjYzMjE4LC45NDI2MSwxLjI0ODIyLDEuMDk5NzEsMS4wOTk3MSwxLjA0ODM5LDEsLjg1MjczLC43ODAzMiwxLjA0ODM5LDEuMDk5NzEsMS4yMjMyNiwuOTI0NSwxLjA5ODM2LDEuMTM1MjUsMS4xNTIyMiwuNzA0MjQsLjk0NzI5LC45NDcyOSwuOTQ3MjksLjk0NzI5LC45NDcyOSwuOTQ3MjksLjg1NDk4LC44ODUwNiwuNzQ4MTcsLjc0ODE3LC43NDgxNywuNzQ4MTcsLjk1NzgyLC45NTc4MiwuOTU3ODIsLjk1NzgyLC45ODU4LDEuMDM5ODksLjk2OTI0LC45NjkyNCwuOTY5MjQsLjk2OTI0LC45NjkyNCwxLjE3MzA4LC45NjkyNCwuOTU0MDIsLjk1NDAyLC45NTQwMiwuOTU0MDIsLjgzMDg5LC44NjIzNywuODg0MDksLjk3NDU0LC45NzQ1NCwuOTc0NTQsLjk3NDU0LC45NzQ1NCwuOTc0NTQsLjkyOTE2LC44NzIwNywuODc1MzMsLjg3NTMzLC44NzUzMywuODc1MzMsLjkzMTQ2LC45MzE0NiwuOTMxNDYsLjkzMTQ2LC45Mzg1NCwxLjAxMDU0LC45NjIyNSwuOTYyMjUsLjk2MjI1LC45NjIyNSwuOTYyMjUsMS4yNDgyMiwuODc2MSwxLjAwMzUxLDEuMDAzNTEsMS4wMDM1MSwxLjAwMzUxLC45Njc3NywuOTc0NTQsLjk2Nzc3LC45NDcyOSwuOTc0NTQsLjk0NzI5LC45NzQ1NCwuOTQ3MjksLjk3NDU0LC44ODUwNiwuODcyMDcsLjg4NTA2LC44NzIwNywuODg1MDYsLjg3MjA3LC44ODUwNiwuODcyMDcsLjk4NTgsLjk1MzkxLC45ODU4LC45NzQ1NCwuNzQ4MTcsLjg3NTMzLC43NDgxNywuODc1MzMsLjc0ODE3LC44NzUzMywuNzQ4MTcsLjg3NTMzLC43NDgxNywuODc1MzMsLjg4NDQ5LC45NzQ1NCwuODg0NDksLjk3NDU0LC44ODQ0OSwuOTc0NTQsMSwxLC45ODAzOSwxLjAwMTc2LC45ODAzOSwxLjAwMTc2LC45NTc4MiwuOTMxNDYsLjk1NzgyLC45MzE0NiwuOTU3ODIsLjkzMTQ2LC45NTc4MiwxLjE2NDg0LC45NTc4MiwuOTMxNDYsLjg0NDIxLDEuMTI3NjEsLjY5MjM4LDEuMDgxMzIsMSwxLC45ODA0NywuODMyMzEsMS4xNjQ4NCwxLDEsLjg0NzIzLDEuMDQ4NjEsLjg0NzIzLC43ODc1NSwuODMyMzEsMS4yMzczNiwxLjAzOTg5LDEuMDEwNTQsMSwxLDEuMDM5ODksMS4wMTA1NCwuOTg1NywxLjAzODQ5LDEuMDEwNTQsLjk2OTI0LC45NjIyNSwuOTY5MjQsLjk2MjI1LC45NjkyNCwuOTYyMjUsLjkyMzgzLC45MDE3MSwuODA1OTUsMS4wNjU5OCwxLDEsLjgwNTk1LDEuMDY1OTgsLjc0NTI0LC43OTAwNCwuNzQ1MjQsLjc5MDA0LC43NDUyNCwuNzkwMDQsLjc0NTI0LC43OTAwNCwxLDEsLjg2MDkxLDEuMDI3NTksLjg1NzcxLDEuMTYzNDQsLjk1NDAyLDEuMDAzNTEsLjk1NDAyLDEuMDAzNTEsLjk1NDAyLDEuMDAzNTEsLjk1NDAyLDEuMDAzNTEsLjk1NDAyLDEuMDAzNTEsLjk1NDAyLDEuMDAzNTEsLjk4NDQ4LC45OTczLC44MzA4OSwuOTY3NzcsLjgzMDg5LC45MzI4NSwuOTA0MywuOTMyODUsLjkwNDMsLjkzMjg1LC45MDQzLDEuMzE4NjgsLjk2OTI3LC45NDcyOSwuOTc0NTQsLjg1NDk4LC45MjkxNiwuOTY5MjQsLjg3NjEsMSwxLC44NjA5MSwxLjE2MzQ0LDEuMDQ4MzksMS4wNDgzOSwxLjA0ODM5LDEuMDQ4MzksMS4wNDgzOSwxLjA0ODM5LDEuMDQ4MzksMS4wNDgzOSwxLjA0ODM5LC44MTk2NSwuODE5NjUsLjk0NzI5LC43ODAzMiwuNzEwMjIsLjkwODgzLC44NDE3MSwuOTk4NzcsLjc3NTk2LDEuMDU3MzQsMS4yLC45NDcyOSwuODU5NDQsLjgyNzkxLC45NjA3LC43NDgxNywuOTMyODUsLjk4MDM5LC45NjkyNCwuOTU3ODIsLjg5ODk4LC45ODMxNiwuOTgxODMsMS4wMzk4OSwuNzg2MTQsLjk2OTI0LC45NzY0MiwuODYyMzcsLjg2MDc1LC44NjA5MSwuODMwODksLjkwMDgyLC44ODU4LC45NzI5NiwxLjAxMjg0LC45NTc4MiwuODMwODksMS4wOTc2LDEuMDQsMS4wMzM0MiwxLjIsMS4wNjc1LDEuMDk3NiwuOTgyMDUsMS4wMzgwOSwxLjA1MDk3LDEuMDQsLjk1MzY0LDEuMDMzNDIsMS4wNTQwMSwxLjIsMS4wMjE0OCwxLjAxMTksMS4wNDcyNCwxLjAxMjcsMS4wMjczMiwuOTYyMjUsLjg5NjUsLjk3NzgzLC45MzU3NCwuOTQ4MTgsMS4zMDY3OSwxLjA2NzUsMS4xMTgyNiwuOTk4MjEsMS4wNTU3LDEuMDMyNiwxLjIsMS4wNjc1LC45NjIyNSwxLjA2NzUsMS4wMzI2LC43NDgxNywxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjAzNzU0LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC44NzUzMywxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTg3MDUsMSwxLDEsMSwxLDEsLjk4NDQ4LC45OTczLC45ODQ0OCwuOTk3MywuOTg0NDgsLjk5NzMsLjgzMDg5LC45Njc3NywxLDEuMjAwODgsLjg5OTAzLDEsMSwuNzUxNTUsLjk0OTQ1LC45NDk0NSwuOTQ5NDUsLjk0OTQ1LDEuMTIzMTcsMS4xMjMxNywxLjEyMzE3LC42NzYwMywuNjc2MDMsMS4xNTYyMSwuNzM1ODQsMS4yMTE5MSwxLjIyMTM1LDEuMDY0ODMsLjk0ODY4LC45NDg2OCwuOTU5OTYsMS4yNDYzMywxLDEuMDc0OTcsLjg3NzA5LC45NjkyNywxLjAxNDczLC45NjkyNywxLDEsMSwuNzcyOTUsMSwxLDEuMDk4MzYsMS4wOTgzNiwxLjA5ODM2LDEuMDE1MjIsLjg2MzIxLC45NDQzNCwuODY0OSwuOTQ0MzQsLjg2MTgyLDEsMSwxLjA4MywxLC45MTU3OCwuODY0MzgsMS4xNzMwOCwxLjE4NDE2LDEuMTQ1ODksLjY5ODI1LC45NzYyMiwxLjk2NzkxLDEuMjQ4MjIsMS4yNDgyMiwxLjE3MzA4LDEuMjQ4MjIsMS4yNDgyMiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuNDI2MDMsMSwuOTk4NjIsLjk5ODYyLDEsLjg3MDI1LC44NzAyNSwuODcwMjUsLjg3MDI1LDEuMTc5ODQsMS40MjYwMywxLDEuNDI2MDMsMS40MjYwMywuOTk4NjIsMSwxLDEsMSwxLDEuMjg4NiwxLjA0MzE1LDEuMTUyOTYsMS4zNDE2MywxLDEsMSwxLjEwNzQyLDEuMTA3NDIsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLHRyPXtsaW5lSGVpZ2h0OjEuMzMwMDgsbGluZUdhcDowfSxpcj1bMS43NjczOCwxLDEsLjk4NTk0LDEuMDIyODUsMS4xMDQ1NCwxLjA2MjM0LC45NjkyNywuOTIwMzcsMS4xOTk4NSwxLjIwNDYsLjkwNjE2LC45MDYxNiwxLjA3MTUyLDEuMTcxNCwuNzgwMzIsMS4yMDA4OCwuNzgwMzIsMS40MDI0NiwuOTY5MjcsLjk2OTI3LC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuOTY5MjcsLjc4MDMyLC43ODAzMiwxLjE3MTQsMS4xNzE0LDEuMTcxNCwuODA1OTcsLjk0MDg0LC45NjcwNiwuODU5NDQsLjg1NzM0LC45NzA5MywuNzU4NDIsLjc5OTM2LC44ODE5OCwuOTgzMSwuOTU3ODIsLjcxMzg3LC44Njk2OSwuODQ2MzYsMS4wNzc5NiwxLjAzNTg0LC45NjkyNCwuODM5NjgsLjk2OTI0LC44MjgyNiwuNzk2NDksLjg1NzcxLC45NTEzMiwuOTMxMTksLjk4OTY1LC44ODQzMywuODI4NywuOTMzNjUsMS4wODYxMiwxLjM2MzgsMS4wODYxMiwxLjQ1Nzg2LC43NDYyNywuODA0OTksLjkxNDg0LDEuMDU3MDcsLjkyMzgzLDEuMDU4ODIsLjk0MDMsMS4xMjY1NCwxLjA1ODgyLDEuMDE3NTYsMS4wOTAxMSwxLjA5MDExLC45OTQxNCwxLjA5MDExLDEuMDM0LDEuMDE3NTYsMS4wNTM1NiwxLjA1NzA3LDEuMDU4ODIsMS4wNDM5OSwuODQ4NjMsMS4yMTk2OCwxLjAxNzU2LC45NTgwMSwxLjAwMDY4LC45MTc5NywuOTY3NzcsLjkwNDMsLjkwMzUxLC45MjEwNSwuOTAzNTEsMS4xNzE0LC44NTMzNywuOTY5MjcsLjk2OTI3LC45OTkxMiwuOTY5MjcsLjkyMTA1LC44MDU5NywxLjI0MzQsMS4yMDgwOCwxLjA1OTM3LC45MDk1NywxLjE3MTQsMS4yMDgwOCwuNzUxNTUsLjk0MjYxLDEuMjQ2NDQsMS4wOTk3MSwxLjA5OTcxLC44NDc1MSwxLC44NTI3MywuNzgwMzIsLjYxNTg0LDEuMDU0MjUsMS4xNzkxNCwuOTA5NTcsMS4wODY2NSwxLjExNTkzLDEuMTQxNjksLjczMzgxLC45NjcwNiwuOTY3MDYsLjk2NzA2LC45NjcwNiwuOTY3MDYsLjk2NzA2LC44NjAzNSwuODU3MzQsLjc1ODQyLC43NTg0MiwuNzU4NDIsLjc1ODQyLC45NTc4MiwuOTU3ODIsLjk1NzgyLC45NTc4MiwuOTcwOTMsMS4wMzU4NCwuOTY5MjQsLjk2OTI0LC45NjkyNCwuOTY5MjQsLjk2OTI0LDEuMTcxNCwuOTY5MjQsLjk1MTMyLC45NTEzMiwuOTUxMzIsLjk1MTMyLC44Mjg3LC44Mzk2OCwuODkwNDksLjkxNDg0LC45MTQ4NCwuOTE0ODQsLjkxNDg0LC45MTQ4NCwuOTE0ODQsLjkzNTc1LC45MjM4MywuOTQwMywuOTQwMywuOTQwMywuOTQwMywuODcxNywuODcxNywuODcxNywuODcxNywxLjAwNTI3LDEuMDE3NTYsMS4wNTM1NiwxLjA1MzU2LDEuMDUzNTYsMS4wNTM1NiwxLjA1MzU2LDEuMjQ2NDQsLjk1OTIzLDEuMDE3NTYsMS4wMTc1NiwxLjAxNzU2LDEuMDE3NTYsLjk2Nzc3LDEuMDU3MDcsLjk2Nzc3LC45NjcwNiwuOTE0ODQsLjk2NzA2LC45MTQ4NCwuOTY3MDYsLjkxNDg0LC44NTczNCwuOTIzODMsLjg1NzM0LC45MjM4MywuODU3MzQsLjkyMzgzLC44NTczNCwuOTIzODMsLjk3MDkzLDEuMDk2OSwuOTcwOTMsMS4wNTg4MiwuNzU4NDIsLjk0MDMsLjc1ODQyLC45NDAzLC43NTg0MiwuOTQwMywuNzU4NDIsLjk0MDMsLjc1ODQyLC45NDAzLC44ODE5OCwxLjA1ODgyLC44ODE5OCwxLjA1ODgyLC44ODE5OCwxLjA1ODgyLDEsMSwuOTgzMSwxLjAxNzU2LC45ODMxLDEuMDE3NTYsLjk1NzgyLC44NzE3LC45NTc4MiwuODcxNywuOTU3ODIsLjg3MTcsLjk1NzgyLDEuMDkwMTEsLjk1NzgyLC44NzE3LC44NDc4NCwxLjExNTUxLC43MTM4NywxLjA5MDExLDEsMSwuOTk0MTQsLjg0NjM2LDEuMDkwMTEsMSwxLC44NDYzNiwxLjA1MzYsLjg0NjM2LC45NDI5OCwuODQ2MzYsMS4yMzI5NywxLjAzNTg0LDEuMDE3NTYsMSwxLDEuMDM1ODQsMS4wMTc1NiwxLjAwMzIzLDEuMDM0NDQsMS4wMTc1NiwuOTY5MjQsMS4wNTM1NiwuOTY5MjQsMS4wNTM1NiwuOTY5MjQsMS4wNTM1NiwuOTMwNjYsLjk4MjkzLC44MjgyNiwxLjA0Mzk5LDEsMSwuODI4MjYsMS4wNDM5OSwuNzk2NDksLjg0ODYzLC43OTY0OSwuODQ4NjMsLjc5NjQ5LC44NDg2MywuNzk2NDksLjg0ODYzLDEsMSwuODU3NzEsMS4xNzMxOCwuODU3NzEsMS4yMTk2OCwuOTUxMzIsMS4wMTc1NiwuOTUxMzIsMS4wMTc1NiwuOTUxMzIsMS4wMTc1NiwuOTUxMzIsMS4wMTc1NiwuOTUxMzIsMS4wMTc1NiwuOTUxMzIsMS4wMTc1NiwuOTg5NjUsMS4wMDA2OCwuODI4NywuOTY3NzcsLjgyODcsLjkzMzY1LC45MDQzLC45MzM2NSwuOTA0MywuOTMzNjUsLjkwNDMsMS4wODU3MSwuOTY5MjcsLjk2NzA2LC45MTQ4NCwuODYwMzUsLjkzNTc1LC45NjkyNCwuOTU5MjMsMSwxLC44NTc3MSwxLjIxOTY4LDEuMTE0MzcsMS4xMTQzNywuOTMxMDksLjkxMjAyLC42MDQxMSwuODQxNjQsLjU1NTcyLDEuMDExNzMsLjk3MzYxLC44MTgxOCwuODE4MTgsLjk2NjM1LC43ODAzMiwuNzI3MjcsLjkyMzY2LC45ODYwMSwxLjAzNDA1LC43Nzk2OCwxLjA5Nzk5LDEuMiwuOTY3MDYsLjg1OTQ0LC44NTYzOCwuOTY0OTEsLjc1ODQyLC45MzM2NSwuOTgzMSwuOTY5MjQsLjk1NzgyLC44Njk2OSwuOTQxNTIsMS4wNzc5NiwxLjAzNTg0LC43ODQzNywuOTY5MjQsLjk4NzE1LC44Mzk2OCwuODM0OTEsLjg1NzcxLC44Mjg3LC45NDQ5MiwuODg0MzMsLjkyODcsMS4wMDk4LC45NTc4MiwuODI4NywxLjA2MjUsLjk4MjQ4LDEuMDM0MjQsMS4yLDEuMDEwNzEsMS4wNjI1LC45NTI0NiwxLjAzODA5LDEuMDQ5MTIsLjk4MjQ4LDEuMDAyMjEsMS4wMzQyNCwxLjA1NDQzLDEuMiwxLjA0Nzg1LC45OTYwOSwxLjAwMTY5LDEuMDUxNzYsLjk5MzQ2LDEuMDUzNTYsLjkwODcsMS4wMzAwNCwuOTU1NDIsLjkzMTE3LDEuMjMzNjIsMS4wMTA3MSwxLjA3ODMxLDEuMDI1MTIsMS4wNTIwNSwxLjAzNTAyLDEuMiwxLjAxMDcxLDEuMDUzNTYsMS4wMTA3MSwxLjAzNTAyLC43NTg0MiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjAzNzE5LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45NDAzLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMDQwMjEsMSwxLDEsMSwxLDEsLjk4OTY1LDEuMDAwNjgsLjk4OTY1LDEuMDAwNjgsLjk4OTY1LDEuMDAwNjgsLjgyODcsLjk2Nzc3LDEsMS4yMDA4OCwuODk5MDMsMSwxLC43NTE1NSwxLjAzMDc3LDEuMDMwNzcsMS4wMzA3NywxLjAzMDc3LDEuMTMxOTYsMS4xMzE5NiwxLjEzMTk2LC42NzQyOCwuNjc0MjgsMS4xNjAzOSwuNzMyOTEsMS4yMDk5NiwxLjIyMTM1LDEuMDY0ODMsLjk0ODY4LC45NDg2OCwuOTU5OTYsMS4yNDYzMywxLDEuMDc0OTcsLjg3Nzk2LC45NjkyNywxLjAxNTE4LC45NjkyNywxLDEsMSwuNzcyOTUsMSwxLDEuMTA1MzksMS4xMDUzOSwxLjExMzU4LDEuMDY5NjcsLjg2Mjc5LC45NDQzNCwuODYyNzksLjk0NDM0LC44NjE4MiwxLDEsMS4wODMsMSwuOTE1NzgsLjg2NTA3LDEuMTcxNCwxLjE4NDE2LDEuMTQ1ODksLjY5ODI1LC45NzYyMiwxLjk2OTcsMS4yNDgyMiwxLjI0ODIyLDEuMTcyMzgsMS4yNDgyMiwxLjI0ODIyLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS40MjYwMywxLC45OTg2MiwuOTk4NjIsMSwuODcwMjUsLjg3MDI1LC44NzAyNSwuODcwMjUsMS4xODA4MywxLjQyNjAzLDEsMS40MjYwMywxLjQyNjAzLC45OTg2MiwxLDEsMSwxLDEsMS4yODg2LDEuMDQzMTUsMS4xNTI5NiwxLjM0MTYzLDEsMSwxLDEuMTA5MzgsMS4xMDkzOCwxLDEsMSwxLjA1NDI1LDEuMDk5NzEsMS4wOTk3MSwxLjA5OTcxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sYXI9e2xpbmVIZWlnaHQ6MS4zMzAwOCxsaW5lR2FwOjB9LHJyPWdldExvb2t1cFRhYmxlRmFjdG9yeSgoZnVuY3Rpb24oZSl7ZVsiTXlyaWFkUHJvLVJlZ3VsYXIiXT1lWyJQZGZKUy1GYWxsYmFjay1SZWd1bGFyIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLVJlZ3VsYXIiLGZhY3RvcnM6VmEsYmFzZVdpZHRoczpLYSxiYXNlTWFwcGluZzpUYSxtZXRyaWNzOlphfTtlWyJNeXJpYWRQcm8tQm9sZCJdPWVbIlBkZkpTLUZhbGxiYWNrLUJvbGQiXT17bmFtZToiTGliZXJhdGlvblNhbnMtQm9sZCIsZmFjdG9yczpxYSxiYXNlV2lkdGhzOnhhLGJhc2VNYXBwaW5nOkxhLG1ldHJpY3M6T2F9O2VbIk15cmlhZFByby1JdCJdPWVbIk15cmlhZFByby1JdGFsaWMiXT1lWyJQZGZKUy1GYWxsYmFjay1JdGFsaWMiXT17bmFtZToiTGliZXJhdGlvblNhbnMtSXRhbGljIixmYWN0b3JzOmphLGJhc2VXaWR0aHM6dmEsYmFzZU1hcHBpbmc6WWEsbWV0cmljczpYYX07ZVsiTXlyaWFkUHJvLUJvbGRJdCJdPWVbIk15cmlhZFByby1Cb2xkSXRhbGljIl09ZVsiUGRmSlMtRmFsbGJhY2stQm9sZEl0YWxpYyJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1Cb2xkSXRhbGljIixmYWN0b3JzOlBhLGJhc2VXaWR0aHM6SGEsYmFzZU1hcHBpbmc6SmEsbWV0cmljczpXYX07ZS5BcmlhbE1UPWUuQXJpYWw9ZVsiQXJpYWwtUmVndWxhciJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1SZWd1bGFyIixiYXNlV2lkdGhzOkthLGJhc2VNYXBwaW5nOlRhfTtlWyJBcmlhbC1Cb2xkTVQiXT1lWyJBcmlhbC1Cb2xkIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUJvbGQiLGJhc2VXaWR0aHM6eGEsYmFzZU1hcHBpbmc6TGF9O2VbIkFyaWFsLUl0YWxpY01UIl09ZVsiQXJpYWwtSXRhbGljIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUl0YWxpYyIsYmFzZVdpZHRoczp2YSxiYXNlTWFwcGluZzpZYX07ZVsiQXJpYWwtQm9sZEl0YWxpY01UIl09ZVsiQXJpYWwtQm9sZEl0YWxpYyJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1Cb2xkSXRhbGljIixiYXNlV2lkdGhzOkhhLGJhc2VNYXBwaW5nOkphfTtlWyJDYWxpYnJpLVJlZ3VsYXIiXT17bmFtZToiTGliZXJhdGlvblNhbnMtUmVndWxhciIsZmFjdG9yczpiYSxiYXNlV2lkdGhzOkthLGJhc2VNYXBwaW5nOlRhLG1ldHJpY3M6RGF9O2VbIkNhbGlicmktQm9sZCJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1Cb2xkIixmYWN0b3JzOmRhLGJhc2VXaWR0aHM6eGEsYmFzZU1hcHBpbmc6TGEsbWV0cmljczpmYX07ZVsiQ2FsaWJyaS1JdGFsaWMiXT17bmFtZToiTGliZXJhdGlvblNhbnMtSXRhbGljIixmYWN0b3JzOnlhLGJhc2VXaWR0aHM6dmEsYmFzZU1hcHBpbmc6WWEsbWV0cmljczp3YX07ZVsiQ2FsaWJyaS1Cb2xkSXRhbGljIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUJvbGRJdGFsaWMiLGZhY3RvcnM6cGEsYmFzZVdpZHRoczpIYSxiYXNlTWFwcGluZzpKYSxtZXRyaWNzOm1hfTtlWyJTZWdvZXVpLVJlZ3VsYXIiXT17bmFtZToiTGliZXJhdGlvblNhbnMtUmVndWxhciIsZmFjdG9yczppcixiYXNlV2lkdGhzOkthLGJhc2VNYXBwaW5nOlRhLG1ldHJpY3M6YXJ9O2VbIlNlZ29ldWktQm9sZCJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1Cb2xkIixmYWN0b3JzOl9hLGJhc2VXaWR0aHM6eGEsYmFzZU1hcHBpbmc6TGEsbWV0cmljczp6YX07ZVsiU2Vnb2V1aS1JdGFsaWMiXT17bmFtZToiTGliZXJhdGlvblNhbnMtSXRhbGljIixmYWN0b3JzOmVyLGJhc2VXaWR0aHM6dmEsYmFzZU1hcHBpbmc6WWEsbWV0cmljczp0cn07ZVsiU2Vnb2V1aS1Cb2xkSXRhbGljIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUJvbGRJdGFsaWMiLGZhY3RvcnM6JGEsYmFzZVdpZHRoczpIYSxiYXNlTWFwcGluZzpKYSxtZXRyaWNzOkFyfTtlWyJIZWx2ZXRpY2EtUmVndWxhciJdPWUuSGVsdmV0aWNhPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1SZWd1bGFyIixmYWN0b3JzOk1hLGJhc2VXaWR0aHM6S2EsYmFzZU1hcHBpbmc6VGEsbWV0cmljczpVYX07ZVsiSGVsdmV0aWNhLUJvbGQiXT17bmFtZToiTGliZXJhdGlvblNhbnMtQm9sZCIsZmFjdG9yczpGYSxiYXNlV2lkdGhzOnhhLGJhc2VNYXBwaW5nOkxhLG1ldHJpY3M6U2F9O2VbIkhlbHZldGljYS1JdGFsaWMiXT17bmFtZToiTGliZXJhdGlvblNhbnMtSXRhbGljIixmYWN0b3JzOk5hLGJhc2VXaWR0aHM6dmEsYmFzZU1hcHBpbmc6WWEsbWV0cmljczpHYX07ZVsiSGVsdmV0aWNhLUJvbGRJdGFsaWMiXT17bmFtZToiTGliZXJhdGlvblNhbnMtQm9sZEl0YWxpYyIsZmFjdG9yczprYSxiYXNlV2lkdGhzOkhhLGJhc2VNYXBwaW5nOkphLG1ldHJpY3M6UmF9fSkpO2Z1bmN0aW9uIGdldFhmYUZvbnROYW1lKGUpe2NvbnN0IHQ9bm9ybWFsaXplRm9udE5hbWUoZSk7cmV0dXJuIHJyKClbdF19ZnVuY3Rpb24gZ2V0WGZhRm9udERpY3QoZSl7Y29uc3QgdD1mdW5jdGlvbiBnZXRYZmFGb250V2lkdGhzKGUpe2NvbnN0IHQ9Z2V0WGZhRm9udE5hbWUoZSk7aWYoIXQpcmV0dXJuIG51bGw7Y29uc3R7YmFzZVdpZHRoczppLGJhc2VNYXBwaW5nOmEsZmFjdG9yczpyfT10LHM9cj9pLm1hcCgoKGUsdCk9PmUqclt0XSkpOmk7bGV0IG4sbz0tMjtjb25zdCBnPVtdO2Zvcihjb25zdFtlLHRdb2YgYS5tYXAoKChlLHQpPT5bZSx0XSkpLnNvcnQoKChbZV0sW3RdKT0+ZS10KSkpaWYoLTEhPT1lKWlmKGU9PT1vKzEpe24ucHVzaChzW3RdKTtvKz0xfWVsc2V7bz1lO249W3NbdF1dO2cucHVzaChlLG4pfXJldHVybiBnfShlKSxpPW5ldyBEaWN0KG51bGwpO2kuc2V0KCJCYXNlRm9udCIsTmFtZS5nZXQoZSkpO2kuc2V0KCJUeXBlIixOYW1lLmdldCgiRm9udCIpKTtpLnNldCgiU3VidHlwZSIsTmFtZS5nZXQoIkNJREZvbnRUeXBlMiIpKTtpLnNldCgiRW5jb2RpbmciLE5hbWUuZ2V0KCJJZGVudGl0eS1IIikpO2kuc2V0KCJDSURUb0dJRE1hcCIsTmFtZS5nZXQoIklkZW50aXR5IikpO2kuc2V0KCJXIix0KTtpLnNldCgiRmlyc3RDaGFyIix0WzBdKTtpLnNldCgiTGFzdENoYXIiLHQuYXQoLTIpK3QuYXQoLTEpLmxlbmd0aC0xKTtjb25zdCBhPW5ldyBEaWN0KG51bGwpO2kuc2V0KCJGb250RGVzY3JpcHRvciIsYSk7Y29uc3Qgcj1uZXcgRGljdChudWxsKTtyLnNldCgiT3JkZXJpbmciLCJJZGVudGl0eSIpO3Iuc2V0KCJSZWdpc3RyeSIsIkFkb2JlIik7ci5zZXQoIlN1cHBsZW1lbnQiLDApO2kuc2V0KCJDSURTeXN0ZW1JbmZvIixyKTtyZXR1cm4gaX1jbGFzcyBQb3N0U2NyaXB0UGFyc2Vye2NvbnN0cnVjdG9yKGUpe3RoaXMubGV4ZXI9ZTt0aGlzLm9wZXJhdG9ycz1bXTt0aGlzLnRva2VuPW51bGw7dGhpcy5wcmV2PW51bGx9bmV4dFRva2VuKCl7dGhpcy5wcmV2PXRoaXMudG9rZW47dGhpcy50b2tlbj10aGlzLmxleGVyLmdldFRva2VuKCl9YWNjZXB0KGUpe2lmKHRoaXMudG9rZW4udHlwZT09PWUpe3RoaXMubmV4dFRva2VuKCk7cmV0dXJuITB9cmV0dXJuITF9ZXhwZWN0KGUpe2lmKHRoaXMuYWNjZXB0KGUpKXJldHVybiEwO3Rocm93IG5ldyBGb3JtYXRFcnJvcihgVW5leHBlY3RlZCBzeW1ib2w6IGZvdW5kICR7dGhpcy50b2tlbi50eXBlfSBleHBlY3RlZCAke2V9LmApfXBhcnNlKCl7dGhpcy5uZXh0VG9rZW4oKTt0aGlzLmV4cGVjdChzci5MQlJBQ0UpO3RoaXMucGFyc2VCbG9jaygpO3RoaXMuZXhwZWN0KHNyLlJCUkFDRSk7cmV0dXJuIHRoaXMub3BlcmF0b3JzfXBhcnNlQmxvY2soKXtmb3IoOzspaWYodGhpcy5hY2NlcHQoc3IuTlVNQkVSKSl0aGlzLm9wZXJhdG9ycy5wdXNoKHRoaXMucHJldi52YWx1ZSk7ZWxzZSBpZih0aGlzLmFjY2VwdChzci5PUEVSQVRPUikpdGhpcy5vcGVyYXRvcnMucHVzaCh0aGlzLnByZXYudmFsdWUpO2Vsc2V7aWYoIXRoaXMuYWNjZXB0KHNyLkxCUkFDRSkpcmV0dXJuO3RoaXMucGFyc2VDb25kaXRpb24oKX19cGFyc2VDb25kaXRpb24oKXtjb25zdCBlPXRoaXMub3BlcmF0b3JzLmxlbmd0aDt0aGlzLm9wZXJhdG9ycy5wdXNoKG51bGwsbnVsbCk7dGhpcy5wYXJzZUJsb2NrKCk7dGhpcy5leHBlY3Qoc3IuUkJSQUNFKTtpZih0aGlzLmFjY2VwdChzci5JRikpe3RoaXMub3BlcmF0b3JzW2VdPXRoaXMub3BlcmF0b3JzLmxlbmd0aDt0aGlzLm9wZXJhdG9yc1tlKzFdPSJqeiJ9ZWxzZXtpZighdGhpcy5hY2NlcHQoc3IuTEJSQUNFKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlBTIEZ1bmN0aW9uOiBlcnJvciBwYXJzaW5nIGNvbmRpdGlvbmFsLiIpO3tjb25zdCB0PXRoaXMub3BlcmF0b3JzLmxlbmd0aDt0aGlzLm9wZXJhdG9ycy5wdXNoKG51bGwsbnVsbCk7Y29uc3QgaT10aGlzLm9wZXJhdG9ycy5sZW5ndGg7dGhpcy5wYXJzZUJsb2NrKCk7dGhpcy5leHBlY3Qoc3IuUkJSQUNFKTt0aGlzLmV4cGVjdChzci5JRkVMU0UpO3RoaXMub3BlcmF0b3JzW3RdPXRoaXMub3BlcmF0b3JzLmxlbmd0aDt0aGlzLm9wZXJhdG9yc1t0KzFdPSJqIjt0aGlzLm9wZXJhdG9yc1tlXT1pO3RoaXMub3BlcmF0b3JzW2UrMV09Imp6In19fX1jb25zdCBzcj17TEJSQUNFOjAsUkJSQUNFOjEsTlVNQkVSOjIsT1BFUkFUT1I6MyxJRjo0LElGRUxTRTo1fTtjbGFzcyBQb3N0U2NyaXB0VG9rZW57c3RhdGljIGdldCBvcENhY2hlKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJvcENhY2hlIixPYmplY3QuY3JlYXRlKG51bGwpKX1jb25zdHJ1Y3RvcihlLHQpe3RoaXMudHlwZT1lO3RoaXMudmFsdWU9dH1zdGF0aWMgZ2V0T3BlcmF0b3IoZSl7cmV0dXJuIFBvc3RTY3JpcHRUb2tlbi5vcENhY2hlW2VdfHw9bmV3IFBvc3RTY3JpcHRUb2tlbihzci5PUEVSQVRPUixlKX1zdGF0aWMgZ2V0IExCUkFDRSgpe3JldHVybiBzaGFkb3codGhpcywiTEJSQUNFIixuZXcgUG9zdFNjcmlwdFRva2VuKHNyLkxCUkFDRSwieyIpKX1zdGF0aWMgZ2V0IFJCUkFDRSgpe3JldHVybiBzaGFkb3codGhpcywiUkJSQUNFIixuZXcgUG9zdFNjcmlwdFRva2VuKHNyLlJCUkFDRSwifSIpKX1zdGF0aWMgZ2V0IElGKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJJRiIsbmV3IFBvc3RTY3JpcHRUb2tlbihzci5JRiwiSUYiKSl9c3RhdGljIGdldCBJRkVMU0UoKXtyZXR1cm4gc2hhZG93KHRoaXMsIklGRUxTRSIsbmV3IFBvc3RTY3JpcHRUb2tlbihzci5JRkVMU0UsIklGRUxTRSIpKX19Y2xhc3MgUG9zdFNjcmlwdExleGVye2NvbnN0cnVjdG9yKGUpe3RoaXMuc3RyZWFtPWU7dGhpcy5uZXh0Q2hhcigpO3RoaXMuc3RyQnVmPVtdfW5leHRDaGFyKCl7cmV0dXJuIHRoaXMuY3VycmVudENoYXI9dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpfWdldFRva2VuKCl7bGV0IGU9ITEsdD10aGlzLmN1cnJlbnRDaGFyO2Zvcig7Oyl7aWYodDwwKXJldHVybiBFdDtpZihlKTEwIT09dCYmMTMhPT10fHwoZT0hMSk7ZWxzZSBpZigzNz09PXQpZT0hMDtlbHNlIGlmKCFpc1doaXRlU3BhY2UodCkpYnJlYWs7dD10aGlzLm5leHRDaGFyKCl9c3dpdGNoKDB8dCl7Y2FzZSA0ODpjYXNlIDQ5OmNhc2UgNTA6Y2FzZSA1MTpjYXNlIDUyOmNhc2UgNTM6Y2FzZSA1NDpjYXNlIDU1OmNhc2UgNTY6Y2FzZSA1NzpjYXNlIDQzOmNhc2UgNDU6Y2FzZSA0NjpyZXR1cm4gbmV3IFBvc3RTY3JpcHRUb2tlbihzci5OVU1CRVIsdGhpcy5nZXROdW1iZXIoKSk7Y2FzZSAxMjM6dGhpcy5uZXh0Q2hhcigpO3JldHVybiBQb3N0U2NyaXB0VG9rZW4uTEJSQUNFO2Nhc2UgMTI1OnRoaXMubmV4dENoYXIoKTtyZXR1cm4gUG9zdFNjcmlwdFRva2VuLlJCUkFDRX1jb25zdCBpPXRoaXMuc3RyQnVmO2kubGVuZ3RoPTA7aVswXT1TdHJpbmcuZnJvbUNoYXJDb2RlKHQpO2Zvcig7KHQ9dGhpcy5uZXh0Q2hhcigpKT49MCYmKHQ+PTY1JiZ0PD05MHx8dD49OTcmJnQ8PTEyMik7KWkucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKHQpKTtjb25zdCBhPWkuam9pbigiIik7c3dpdGNoKGEudG9Mb3dlckNhc2UoKSl7Y2FzZSJpZiI6cmV0dXJuIFBvc3RTY3JpcHRUb2tlbi5JRjtjYXNlImlmZWxzZSI6cmV0dXJuIFBvc3RTY3JpcHRUb2tlbi5JRkVMU0U7ZGVmYXVsdDpyZXR1cm4gUG9zdFNjcmlwdFRva2VuLmdldE9wZXJhdG9yKGEpfX1nZXROdW1iZXIoKXtsZXQgZT10aGlzLmN1cnJlbnRDaGFyO2NvbnN0IHQ9dGhpcy5zdHJCdWY7dC5sZW5ndGg9MDt0WzBdPVN0cmluZy5mcm9tQ2hhckNvZGUoZSk7Zm9yKDsoZT10aGlzLm5leHRDaGFyKCkpPj0wJiYoZT49NDgmJmU8PTU3fHw0NT09PWV8fDQ2PT09ZSk7KXQucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKTtjb25zdCBpPXBhcnNlRmxvYXQodC5qb2luKCIiKSk7aWYoaXNOYU4oaSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBJbnZhbGlkIGZsb2F0aW5nIHBvaW50IG51bWJlcjogJHtpfWApO3JldHVybiBpfX1jbGFzcyBCYXNlTG9jYWxDYWNoZXtjb25zdHJ1Y3RvcihlKXt0aGlzLl9vbmx5UmVmcz0hMD09PWU/Lm9ubHlSZWZzO2lmKCF0aGlzLl9vbmx5UmVmcyl7dGhpcy5fbmFtZVJlZk1hcD1uZXcgTWFwO3RoaXMuX2ltYWdlTWFwPW5ldyBNYXB9dGhpcy5faW1hZ2VDYWNoZT1uZXcgUmVmU2V0Q2FjaGV9Z2V0QnlOYW1lKGUpe3RoaXMuX29ubHlSZWZzJiZ1bnJlYWNoYWJsZSgiU2hvdWxkIG5vdCBjYWxsIGBnZXRCeU5hbWVgIG1ldGhvZC4iKTtjb25zdCB0PXRoaXMuX25hbWVSZWZNYXAuZ2V0KGUpO3JldHVybiB0P3RoaXMuZ2V0QnlSZWYodCk6dGhpcy5faW1hZ2VNYXAuZ2V0KGUpfHxudWxsfWdldEJ5UmVmKGUpe3JldHVybiB0aGlzLl9pbWFnZUNhY2hlLmdldChlKXx8bnVsbH1zZXQoZSx0LGkpe3VucmVhY2hhYmxlKCJBYnN0cmFjdCBtZXRob2QgYHNldGAgY2FsbGVkLiIpfX1jbGFzcyBMb2NhbEltYWdlQ2FjaGUgZXh0ZW5kcyBCYXNlTG9jYWxDYWNoZXtzZXQoZSx0PW51bGwsaSl7aWYoInN0cmluZyIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcignTG9jYWxJbWFnZUNhY2hlLnNldCAtIGV4cGVjdGVkICJuYW1lIiBhcmd1bWVudC4nKTtpZih0KXtpZih0aGlzLl9pbWFnZUNhY2hlLmhhcyh0KSlyZXR1cm47dGhpcy5fbmFtZVJlZk1hcC5zZXQoZSx0KTt0aGlzLl9pbWFnZUNhY2hlLnB1dCh0LGkpfWVsc2UgdGhpcy5faW1hZ2VNYXAuaGFzKGUpfHx0aGlzLl9pbWFnZU1hcC5zZXQoZSxpKX19Y2xhc3MgTG9jYWxDb2xvclNwYWNlQ2FjaGUgZXh0ZW5kcyBCYXNlTG9jYWxDYWNoZXtzZXQoZT1udWxsLHQ9bnVsbCxpKXtpZigic3RyaW5nIiE9dHlwZW9mIGUmJiF0KXRocm93IG5ldyBFcnJvcignTG9jYWxDb2xvclNwYWNlQ2FjaGUuc2V0IC0gZXhwZWN0ZWQgIm5hbWUiIGFuZC9vciAicmVmIiBhcmd1bWVudC4nKTtpZih0KXtpZih0aGlzLl9pbWFnZUNhY2hlLmhhcyh0KSlyZXR1cm47bnVsbCE9PWUmJnRoaXMuX25hbWVSZWZNYXAuc2V0KGUsdCk7dGhpcy5faW1hZ2VDYWNoZS5wdXQodCxpKX1lbHNlIHRoaXMuX2ltYWdlTWFwLmhhcyhlKXx8dGhpcy5faW1hZ2VNYXAuc2V0KGUsaSl9fWNsYXNzIExvY2FsRnVuY3Rpb25DYWNoZSBleHRlbmRzIEJhc2VMb2NhbENhY2hle2NvbnN0cnVjdG9yKGUpe3N1cGVyKHtvbmx5UmVmczohMH0pfXNldChlPW51bGwsdCxpKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoJ0xvY2FsRnVuY3Rpb25DYWNoZS5zZXQgLSBleHBlY3RlZCAicmVmIiBhcmd1bWVudC4nKTt0aGlzLl9pbWFnZUNhY2hlLmhhcyh0KXx8dGhpcy5faW1hZ2VDYWNoZS5wdXQodCxpKX19Y2xhc3MgTG9jYWxHU3RhdGVDYWNoZSBleHRlbmRzIEJhc2VMb2NhbENhY2hle3NldChlLHQ9bnVsbCxpKXtpZigic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCdMb2NhbEdTdGF0ZUNhY2hlLnNldCAtIGV4cGVjdGVkICJuYW1lIiBhcmd1bWVudC4nKTtpZih0KXtpZih0aGlzLl9pbWFnZUNhY2hlLmhhcyh0KSlyZXR1cm47dGhpcy5fbmFtZVJlZk1hcC5zZXQoZSx0KTt0aGlzLl9pbWFnZUNhY2hlLnB1dCh0LGkpfWVsc2UgdGhpcy5faW1hZ2VNYXAuaGFzKGUpfHx0aGlzLl9pbWFnZU1hcC5zZXQoZSxpKX19Y2xhc3MgTG9jYWxUaWxpbmdQYXR0ZXJuQ2FjaGUgZXh0ZW5kcyBCYXNlTG9jYWxDYWNoZXtjb25zdHJ1Y3RvcihlKXtzdXBlcih7b25seVJlZnM6ITB9KX1zZXQoZT1udWxsLHQsaSl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCdMb2NhbFRpbGluZ1BhdHRlcm5DYWNoZS5zZXQgLSBleHBlY3RlZCAicmVmIiBhcmd1bWVudC4nKTt0aGlzLl9pbWFnZUNhY2hlLmhhcyh0KXx8dGhpcy5faW1hZ2VDYWNoZS5wdXQodCxpKX19Y2xhc3MgUmVnaW9uYWxJbWFnZUNhY2hlIGV4dGVuZHMgQmFzZUxvY2FsQ2FjaGV7Y29uc3RydWN0b3IoZSl7c3VwZXIoe29ubHlSZWZzOiEwfSl9c2V0KGU9bnVsbCx0LGkpe2lmKCF0KXRocm93IG5ldyBFcnJvcignUmVnaW9uYWxJbWFnZUNhY2hlLnNldCAtIGV4cGVjdGVkICJyZWYiIGFyZ3VtZW50LicpO3RoaXMuX2ltYWdlQ2FjaGUuaGFzKHQpfHx0aGlzLl9pbWFnZUNhY2hlLnB1dCh0LGkpfX1jbGFzcyBHbG9iYWxJbWFnZUNhY2hle3N0YXRpYyBOVU1fUEFHRVNfVEhSRVNIT0xEPTI7c3RhdGljIE1JTl9JTUFHRVNfVE9fQ0FDSEU9MTA7c3RhdGljIE1BWF9CWVRFX1NJWkU9NWU3OyNGPW5ldyBSZWZTZXQ7Y29uc3RydWN0b3IoKXt0aGlzLl9yZWZDYWNoZT1uZXcgUmVmU2V0Q2FjaGU7dGhpcy5faW1hZ2VDYWNoZT1uZXcgUmVmU2V0Q2FjaGV9Z2V0I1MoKXtsZXQgZT0wO2Zvcihjb25zdCB0IG9mIHRoaXMuX2ltYWdlQ2FjaGUpZSs9dC5ieXRlU2l6ZTtyZXR1cm4gZX1nZXQjaygpe3JldHVybiEodGhpcy5faW1hZ2VDYWNoZS5zaXplPEdsb2JhbEltYWdlQ2FjaGUuTUlOX0lNQUdFU19UT19DQUNIRSkmJiEodGhpcy4jUzxHbG9iYWxJbWFnZUNhY2hlLk1BWF9CWVRFX1NJWkUpfXNob3VsZENhY2hlKGUsdCl7bGV0IGk9dGhpcy5fcmVmQ2FjaGUuZ2V0KGUpO2lmKCFpKXtpPW5ldyBTZXQ7dGhpcy5fcmVmQ2FjaGUucHV0KGUsaSl9aS5hZGQodCk7cmV0dXJuIShpLnNpemU8R2xvYmFsSW1hZ2VDYWNoZS5OVU1fUEFHRVNfVEhSRVNIT0xEKSYmISghdGhpcy5faW1hZ2VDYWNoZS5oYXMoZSkmJnRoaXMuI2spfWFkZERlY29kZUZhaWxlZChlKXt0aGlzLiNGLnB1dChlKX1oYXNEZWNvZGVGYWlsZWQoZSl7cmV0dXJuIHRoaXMuI0YuaGFzKGUpfWFkZEJ5dGVTaXplKGUsdCl7Y29uc3QgaT10aGlzLl9pbWFnZUNhY2hlLmdldChlKTtpJiYoaS5ieXRlU2l6ZXx8KGkuYnl0ZVNpemU9dCkpfWdldERhdGEoZSx0KXtjb25zdCBpPXRoaXMuX3JlZkNhY2hlLmdldChlKTtpZighaSlyZXR1cm4gbnVsbDtpZihpLnNpemU8R2xvYmFsSW1hZ2VDYWNoZS5OVU1fUEFHRVNfVEhSRVNIT0xEKXJldHVybiBudWxsO2NvbnN0IGE9dGhpcy5faW1hZ2VDYWNoZS5nZXQoZSk7aWYoIWEpcmV0dXJuIG51bGw7aS5hZGQodCk7cmV0dXJuIGF9c2V0RGF0YShlLHQpe2lmKCF0aGlzLl9yZWZDYWNoZS5oYXMoZSkpdGhyb3cgbmV3IEVycm9yKCdHbG9iYWxJbWFnZUNhY2hlLnNldERhdGEgLSBleHBlY3RlZCAic2hvdWxkQ2FjaGUiIHRvIGhhdmUgYmVlbiBjYWxsZWQuJyk7dGhpcy5faW1hZ2VDYWNoZS5oYXMoZSl8fCh0aGlzLiNrP3dhcm4oIkdsb2JhbEltYWdlQ2FjaGUuc2V0RGF0YSAtIGNhY2hlIGxpbWl0IHJlYWNoZWQuIik6dGhpcy5faW1hZ2VDYWNoZS5wdXQoZSx0KSl9Y2xlYXIoZT0hMSl7aWYoIWUpe3RoaXMuI0YuY2xlYXIoKTt0aGlzLl9yZWZDYWNoZS5jbGVhcigpfXRoaXMuX2ltYWdlQ2FjaGUuY2xlYXIoKX19Y2xhc3MgUERGRnVuY3Rpb25GYWN0b3J5e2NvbnN0cnVjdG9yKHt4cmVmOmUsaXNFdmFsU3VwcG9ydGVkOnQ9ITB9KXt0aGlzLnhyZWY9ZTt0aGlzLmlzRXZhbFN1cHBvcnRlZD0hMSE9PXR9Y3JlYXRlKGUpe2NvbnN0IHQ9dGhpcy5nZXRDYWNoZWQoZSk7aWYodClyZXR1cm4gdDtjb25zdCBpPVBERkZ1bmN0aW9uLnBhcnNlKHt4cmVmOnRoaXMueHJlZixpc0V2YWxTdXBwb3J0ZWQ6dGhpcy5pc0V2YWxTdXBwb3J0ZWQsZm46ZSBpbnN0YW5jZW9mIFJlZj90aGlzLnhyZWYuZmV0Y2goZSk6ZX0pO3RoaXMuX2NhY2hlKGUsaSk7cmV0dXJuIGl9Y3JlYXRlRnJvbUFycmF5KGUpe2NvbnN0IHQ9dGhpcy5nZXRDYWNoZWQoZSk7aWYodClyZXR1cm4gdDtjb25zdCBpPVBERkZ1bmN0aW9uLnBhcnNlQXJyYXkoe3hyZWY6dGhpcy54cmVmLGlzRXZhbFN1cHBvcnRlZDp0aGlzLmlzRXZhbFN1cHBvcnRlZCxmbk9iajplIGluc3RhbmNlb2YgUmVmP3RoaXMueHJlZi5mZXRjaChlKTplfSk7dGhpcy5fY2FjaGUoZSxpKTtyZXR1cm4gaX1nZXRDYWNoZWQoZSl7bGV0IHQ7ZSBpbnN0YW5jZW9mIFJlZj90PWU6ZSBpbnN0YW5jZW9mIERpY3Q/dD1lLm9iaklkOmUgaW5zdGFuY2VvZiBCYXNlU3RyZWFtJiYodD1lLmRpY3Q/Lm9iaklkKTtpZih0KXtjb25zdCBlPXRoaXMuX2xvY2FsRnVuY3Rpb25DYWNoZS5nZXRCeVJlZih0KTtpZihlKXJldHVybiBlfXJldHVybiBudWxsfV9jYWNoZShlLHQpe2lmKCF0KXRocm93IG5ldyBFcnJvcignUERGRnVuY3Rpb25GYWN0b3J5Ll9jYWNoZSAtIGV4cGVjdGVkICJwYXJzZWRGdW5jdGlvbiIgYXJndW1lbnQuJyk7bGV0IGk7ZSBpbnN0YW5jZW9mIFJlZj9pPWU6ZSBpbnN0YW5jZW9mIERpY3Q/aT1lLm9iaklkOmUgaW5zdGFuY2VvZiBCYXNlU3RyZWFtJiYoaT1lLmRpY3Q/Lm9iaklkKTtpJiZ0aGlzLl9sb2NhbEZ1bmN0aW9uQ2FjaGUuc2V0KG51bGwsaSx0KX1nZXQgX2xvY2FsRnVuY3Rpb25DYWNoZSgpe3JldHVybiBzaGFkb3codGhpcywiX2xvY2FsRnVuY3Rpb25DYWNoZSIsbmV3IExvY2FsRnVuY3Rpb25DYWNoZSl9fWZ1bmN0aW9uIHRvTnVtYmVyQXJyYXkoZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/aXNOdW1iZXJBcnJheShlLG51bGwpP2U6ZS5tYXAoKGU9PitlKSk6bnVsbH1jbGFzcyBQREZGdW5jdGlvbntzdGF0aWMgZ2V0U2FtcGxlQXJyYXkoZSx0LGksYSl7bGV0IHIscyxuPTE7Zm9yKHI9MCxzPWUubGVuZ3RoO3I8cztyKyspbio9ZVtyXTtuKj10O2NvbnN0IG89bmV3IEFycmF5KG4pO2xldCBnPTAsYz0wO2NvbnN0IGw9MS8oMioqaS0xKSxoPWEuZ2V0Qnl0ZXMoKG4qaSs3KS84KTtsZXQgQz0wO2ZvcihyPTA7cjxuO3IrKyl7Zm9yKDtnPGk7KXtjPDw9ODtjfD1oW0MrK107Zys9OH1nLT1pO29bcl09KGM+PmcpKmw7YyY9KDE8PGcpLTF9cmV0dXJuIG99c3RhdGljIHBhcnNlKHt4cmVmOmUsaXNFdmFsU3VwcG9ydGVkOnQsZm46aX0pe2NvbnN0IGE9aS5kaWN0fHxpO3N3aXRjaChhLmdldCgiRnVuY3Rpb25UeXBlIikpe2Nhc2UgMDpyZXR1cm4gdGhpcy5jb25zdHJ1Y3RTYW1wbGVkKHt4cmVmOmUsaXNFdmFsU3VwcG9ydGVkOnQsZm46aSxkaWN0OmF9KTtjYXNlIDE6YnJlYWs7Y2FzZSAyOnJldHVybiB0aGlzLmNvbnN0cnVjdEludGVycG9sYXRlZCh7eHJlZjplLGlzRXZhbFN1cHBvcnRlZDp0LGRpY3Q6YX0pO2Nhc2UgMzpyZXR1cm4gdGhpcy5jb25zdHJ1Y3RTdGljaGVkKHt4cmVmOmUsaXNFdmFsU3VwcG9ydGVkOnQsZGljdDphfSk7Y2FzZSA0OnJldHVybiB0aGlzLmNvbnN0cnVjdFBvc3RTY3JpcHQoe3hyZWY6ZSxpc0V2YWxTdXBwb3J0ZWQ6dCxmbjppLGRpY3Q6YX0pfXRocm93IG5ldyBGb3JtYXRFcnJvcigiVW5rbm93biB0eXBlIG9mIGZ1bmN0aW9uIil9c3RhdGljIHBhcnNlQXJyYXkoe3hyZWY6ZSxpc0V2YWxTdXBwb3J0ZWQ6dCxmbk9iajppfSl7aWYoIUFycmF5LmlzQXJyYXkoaSkpcmV0dXJuIHRoaXMucGFyc2Uoe3hyZWY6ZSxpc0V2YWxTdXBwb3J0ZWQ6dCxmbjppfSk7Y29uc3QgYT1bXTtmb3IoY29uc3QgciBvZiBpKWEucHVzaCh0aGlzLnBhcnNlKHt4cmVmOmUsaXNFdmFsU3VwcG9ydGVkOnQsZm46ZS5mZXRjaElmUmVmKHIpfSkpO3JldHVybiBmdW5jdGlvbihlLHQsaSxyKXtmb3IobGV0IHM9MCxuPWEubGVuZ3RoO3M8bjtzKyspYVtzXShlLHQsaSxyK3MpfX1zdGF0aWMgY29uc3RydWN0U2FtcGxlZCh7eHJlZjplLGlzRXZhbFN1cHBvcnRlZDp0LGZuOmksZGljdDphfSl7ZnVuY3Rpb24gdG9NdWx0aUFycmF5KGUpe2NvbnN0IHQ9ZS5sZW5ndGgsaT1bXTtsZXQgYT0wO2ZvcihsZXQgcj0wO3I8dDtyKz0yKWlbYSsrXT1bZVtyXSxlW3IrMV1dO3JldHVybiBpfWZ1bmN0aW9uIGludGVycG9sYXRlKGUsdCxpLGEscil7cmV0dXJuIGErKHItYSkvKGktdCkqKGUtdCl9bGV0IHI9dG9OdW1iZXJBcnJheShhLmdldEFycmF5KCJEb21haW4iKSkscz10b051bWJlckFycmF5KGEuZ2V0QXJyYXkoIlJhbmdlIikpO2lmKCFyfHwhcyl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIk5vIGRvbWFpbiBvciByYW5nZSIpO2NvbnN0IG49ci5sZW5ndGgvMixvPXMubGVuZ3RoLzI7cj10b011bHRpQXJyYXkocik7cz10b011bHRpQXJyYXkocyk7Y29uc3QgZz10b051bWJlckFycmF5KGEuZ2V0QXJyYXkoIlNpemUiKSksYz1hLmdldCgiQml0c1BlclNhbXBsZSIpLGw9YS5nZXQoIk9yZGVyIil8fDE7MSE9PWwmJmluZm8oIk5vIHN1cHBvcnQgZm9yIGN1YmljIHNwbGluZSBpbnRlcnBvbGF0aW9uOiAiK2wpO2xldCBoPXRvTnVtYmVyQXJyYXkoYS5nZXRBcnJheSgiRW5jb2RlIikpO2lmKGgpaD10b011bHRpQXJyYXkoaCk7ZWxzZXtoPVtdO2ZvcihsZXQgZT0wO2U8bjsrK2UpaC5wdXNoKFswLGdbZV0tMV0pfWxldCBDPXRvTnVtYmVyQXJyYXkoYS5nZXRBcnJheSgiRGVjb2RlIikpO0M9Qz90b011bHRpQXJyYXkoQyk6cztjb25zdCBRPXRoaXMuZ2V0U2FtcGxlQXJyYXkoZyxvLGMsaSk7cmV0dXJuIGZ1bmN0aW9uIGNvbnN0cnVjdFNhbXBsZWRGbihlLHQsaSxhKXtjb25zdCBjPTE8PG4sbD1uZXcgRmxvYXQ2NEFycmF5KGMpLEU9bmV3IFVpbnQzMkFycmF5KGMpO2xldCB1LGQ7Zm9yKGQ9MDtkPGM7ZCsrKWxbZF09MTtsZXQgZj1vLHA9MTtmb3IodT0wO3U8bjsrK3Upe2NvbnN0IGk9clt1XVswXSxhPXJbdV1bMV07bGV0IHM9aW50ZXJwb2xhdGUoTWF0aC5taW4oTWF0aC5tYXgoZVt0K3VdLGkpLGEpLGksYSxoW3VdWzBdLGhbdV1bMV0pO2NvbnN0IG49Z1t1XTtzPU1hdGgubWluKE1hdGgubWF4KHMsMCksbi0xKTtjb25zdCBvPXM8bi0xP01hdGguZmxvb3Iocyk6cy0xLEM9bysxLXMsUT1zLW8sbT1vKmYseT1tK2Y7Zm9yKGQ9MDtkPGM7ZCsrKWlmKGQmcCl7bFtkXSo9UTtFW2RdKz15fWVsc2V7bFtkXSo9QztFW2RdKz1tfWYqPW47cDw8PTF9Zm9yKGQ9MDtkPG87KytkKXtsZXQgZT0wO2Zvcih1PTA7dTxjO3UrKyllKz1RW0VbdV0rZF0qbFt1XTtlPWludGVycG9sYXRlKGUsMCwxLENbZF1bMF0sQ1tkXVsxXSk7aVthK2RdPU1hdGgubWluKE1hdGgubWF4KGUsc1tkXVswXSksc1tkXVsxXSl9fX1zdGF0aWMgY29uc3RydWN0SW50ZXJwb2xhdGVkKHt4cmVmOmUsaXNFdmFsU3VwcG9ydGVkOnQsZGljdDppfSl7Y29uc3QgYT10b051bWJlckFycmF5KGkuZ2V0QXJyYXkoIkMwIikpfHxbMF0scj10b051bWJlckFycmF5KGkuZ2V0QXJyYXkoIkMxIikpfHxbMV0scz1pLmdldCgiTiIpLG49W107Zm9yKGxldCBlPTAsdD1hLmxlbmd0aDtlPHQ7KytlKW4ucHVzaChyW2VdLWFbZV0pO2NvbnN0IG89bi5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uIGNvbnN0cnVjdEludGVycG9sYXRlZEZuKGUsdCxpLHIpe2NvbnN0IGc9MT09PXM/ZVt0XTplW3RdKipzO2ZvcihsZXQgZT0wO2U8bzsrK2UpaVtyK2VdPWFbZV0rZypuW2VdfX1zdGF0aWMgY29uc3RydWN0U3RpY2hlZCh7eHJlZjplLGlzRXZhbFN1cHBvcnRlZDp0LGRpY3Q6aX0pe2NvbnN0IGE9dG9OdW1iZXJBcnJheShpLmdldEFycmF5KCJEb21haW4iKSk7aWYoIWEpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJObyBkb21haW4iKTtpZigxIT09YS5sZW5ndGgvMil0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkJhZCBkb21haW4gZm9yIHN0aWNoZWQgZnVuY3Rpb24iKTtjb25zdCByPVtdO2Zvcihjb25zdCBhIG9mIGkuZ2V0KCJGdW5jdGlvbnMiKSlyLnB1c2godGhpcy5wYXJzZSh7eHJlZjplLGlzRXZhbFN1cHBvcnRlZDp0LGZuOmUuZmV0Y2hJZlJlZihhKX0pKTtjb25zdCBzPXRvTnVtYmVyQXJyYXkoaS5nZXRBcnJheSgiQm91bmRzIikpLG49dG9OdW1iZXJBcnJheShpLmdldEFycmF5KCJFbmNvZGUiKSksbz1uZXcgRmxvYXQzMkFycmF5KDEpO3JldHVybiBmdW5jdGlvbiBjb25zdHJ1Y3RTdGljaGVkRm4oZSx0LGksZyl7Y29uc3QgYz1mdW5jdGlvbiBjb25zdHJ1Y3RTdGljaGVkRnJvbUlSQ2xpcChlLHQsaSl7ZT5pP2U9aTplPHQmJihlPXQpO3JldHVybiBlfShlW3RdLGFbMF0sYVsxXSksbD1zLmxlbmd0aDtsZXQgaDtmb3IoaD0wO2g8bCYmIShjPHNbaF0pOysraCk7bGV0IEM9YVswXTtoPjAmJihDPXNbaC0xXSk7bGV0IFE9YVsxXTtoPHMubGVuZ3RoJiYoUT1zW2hdKTtjb25zdCBFPW5bMipoXSx1PW5bMipoKzFdO29bMF09Qz09PVE/RTpFKyhjLUMpKih1LUUpLyhRLUMpO3JbaF0obywwLGksZyl9fXN0YXRpYyBjb25zdHJ1Y3RQb3N0U2NyaXB0KHt4cmVmOmUsaXNFdmFsU3VwcG9ydGVkOnQsZm46aSxkaWN0OmF9KXtjb25zdCByPXRvTnVtYmVyQXJyYXkoYS5nZXRBcnJheSgiRG9tYWluIikpLHM9dG9OdW1iZXJBcnJheShhLmdldEFycmF5KCJSYW5nZSIpKTtpZighcil0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIk5vIGRvbWFpbi4iKTtpZighcyl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIk5vIHJhbmdlLiIpO2NvbnN0IG49bmV3IFBvc3RTY3JpcHRMZXhlcihpKSxvPW5ldyBQb3N0U2NyaXB0UGFyc2VyKG4pLnBhcnNlKCk7aWYodCYmRmVhdHVyZVRlc3QuaXNFdmFsU3VwcG9ydGVkKXtjb25zdCBlPShuZXcgUG9zdFNjcmlwdENvbXBpbGVyKS5jb21waWxlKG8scixzKTtpZihlKXJldHVybiBuZXcgRnVuY3Rpb24oInNyYyIsInNyY09mZnNldCIsImRlc3QiLCJkZXN0T2Zmc2V0IixlKX1pbmZvKCJVbmFibGUgdG8gY29tcGlsZSBQUyBmdW5jdGlvbiIpO2NvbnN0IGc9cy5sZW5ndGg+PjEsYz1yLmxlbmd0aD4+MSxsPW5ldyBQb3N0U2NyaXB0RXZhbHVhdG9yKG8pLGg9T2JqZWN0LmNyZWF0ZShudWxsKTtsZXQgQz04MTkyO2NvbnN0IFE9bmV3IEZsb2F0MzJBcnJheShjKTtyZXR1cm4gZnVuY3Rpb24gY29uc3RydWN0UG9zdFNjcmlwdEZuKGUsdCxpLGEpe2xldCByLG4sbz0iIjtjb25zdCBFPVE7Zm9yKHI9MDtyPGM7cisrKXtuPWVbdCtyXTtFW3JdPW47bys9bisiXyJ9Y29uc3QgdT1oW29dO2lmKHZvaWQgMCE9PXUpe2kuc2V0KHUsYSk7cmV0dXJufWNvbnN0IGQ9bmV3IEZsb2F0MzJBcnJheShnKSxmPWwuZXhlY3V0ZShFKSxwPWYubGVuZ3RoLWc7Zm9yKHI9MDtyPGc7cisrKXtuPWZbcCtyXTtsZXQgZT1zWzIqcl07aWYobjxlKW49ZTtlbHNle2U9c1syKnIrMV07bj5lJiYobj1lKX1kW3JdPW59aWYoQz4wKXtDLS07aFtvXT1kfWkuc2V0KGQsYSl9fX1mdW5jdGlvbiBpc1BERkZ1bmN0aW9uKGUpe2xldCB0O2lmKGUgaW5zdGFuY2VvZiBEaWN0KXQ9ZTtlbHNle2lmKCEoZSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pKXJldHVybiExO3Q9ZS5kaWN0fXJldHVybiB0LmhhcygiRnVuY3Rpb25UeXBlIil9Y2xhc3MgUG9zdFNjcmlwdFN0YWNre3N0YXRpYyBNQVhfU1RBQ0tfU0laRT0xMDA7Y29uc3RydWN0b3IoZSl7dGhpcy5zdGFjaz1lP0FycmF5LmZyb20oZSk6W119cHVzaChlKXtpZih0aGlzLnN0YWNrLmxlbmd0aD49UG9zdFNjcmlwdFN0YWNrLk1BWF9TVEFDS19TSVpFKXRocm93IG5ldyBFcnJvcigiUG9zdFNjcmlwdCBmdW5jdGlvbiBzdGFjayBvdmVyZmxvdy4iKTt0aGlzLnN0YWNrLnB1c2goZSl9cG9wKCl7aWYodGhpcy5zdGFjay5sZW5ndGg8PTApdGhyb3cgbmV3IEVycm9yKCJQb3N0U2NyaXB0IGZ1bmN0aW9uIHN0YWNrIHVuZGVyZmxvdy4iKTtyZXR1cm4gdGhpcy5zdGFjay5wb3AoKX1jb3B5KGUpe2lmKHRoaXMuc3RhY2subGVuZ3RoK2U+PVBvc3RTY3JpcHRTdGFjay5NQVhfU1RBQ0tfU0laRSl0aHJvdyBuZXcgRXJyb3IoIlBvc3RTY3JpcHQgZnVuY3Rpb24gc3RhY2sgb3ZlcmZsb3cuIik7Y29uc3QgdD10aGlzLnN0YWNrO2ZvcihsZXQgaT10Lmxlbmd0aC1lLGE9ZS0xO2E+PTA7YS0tLGkrKyl0LnB1c2godFtpXSl9aW5kZXgoZSl7dGhpcy5wdXNoKHRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtZS0xXSl9cm9sbChlLHQpe2NvbnN0IGk9dGhpcy5zdGFjayxhPWkubGVuZ3RoLWUscj1pLmxlbmd0aC0xLHM9YSsodC1NYXRoLmZsb29yKHQvZSkqZSk7Zm9yKGxldCBlPWEsdD1yO2U8dDtlKyssdC0tKXtjb25zdCBhPWlbZV07aVtlXT1pW3RdO2lbdF09YX1mb3IobGV0IGU9YSx0PXMtMTtlPHQ7ZSsrLHQtLSl7Y29uc3QgYT1pW2VdO2lbZV09aVt0XTtpW3RdPWF9Zm9yKGxldCBlPXMsdD1yO2U8dDtlKyssdC0tKXtjb25zdCBhPWlbZV07aVtlXT1pW3RdO2lbdF09YX19fWNsYXNzIFBvc3RTY3JpcHRFdmFsdWF0b3J7Y29uc3RydWN0b3IoZSl7dGhpcy5vcGVyYXRvcnM9ZX1leGVjdXRlKGUpe2NvbnN0IHQ9bmV3IFBvc3RTY3JpcHRTdGFjayhlKTtsZXQgaT0wO2NvbnN0IGE9dGhpcy5vcGVyYXRvcnMscj1hLmxlbmd0aDtsZXQgcyxuLG87Zm9yKDtpPHI7KXtzPWFbaSsrXTtpZigibnVtYmVyIiE9dHlwZW9mIHMpc3dpdGNoKHMpe2Nhc2UianoiOm89dC5wb3AoKTtuPXQucG9wKCk7bnx8KGk9byk7YnJlYWs7Y2FzZSJqIjpuPXQucG9wKCk7aT1uO2JyZWFrO2Nhc2UiYWJzIjpuPXQucG9wKCk7dC5wdXNoKE1hdGguYWJzKG4pKTticmVhaztjYXNlImFkZCI6bz10LnBvcCgpO249dC5wb3AoKTt0LnB1c2gobitvKTticmVhaztjYXNlImFuZCI6bz10LnBvcCgpO249dC5wb3AoKTsiYm9vbGVhbiI9PXR5cGVvZiBuJiYiYm9vbGVhbiI9PXR5cGVvZiBvP3QucHVzaChuJiZvKTp0LnB1c2gobiZvKTticmVhaztjYXNlImF0YW4iOm89dC5wb3AoKTtuPXQucG9wKCk7bj1NYXRoLmF0YW4yKG4sbykvTWF0aC5QSSoxODA7bjwwJiYobis9MzYwKTt0LnB1c2gobik7YnJlYWs7Y2FzZSJiaXRzaGlmdCI6bz10LnBvcCgpO249dC5wb3AoKTtuPjA/dC5wdXNoKG48PG8pOnQucHVzaChuPj5vKTticmVhaztjYXNlImNlaWxpbmciOm49dC5wb3AoKTt0LnB1c2goTWF0aC5jZWlsKG4pKTticmVhaztjYXNlImNvcHkiOm49dC5wb3AoKTt0LmNvcHkobik7YnJlYWs7Y2FzZSJjb3MiOm49dC5wb3AoKTt0LnB1c2goTWF0aC5jb3MobiUzNjAvMTgwKk1hdGguUEkpKTticmVhaztjYXNlImN2aSI6bj0wfHQucG9wKCk7dC5wdXNoKG4pO2JyZWFrO2Nhc2UiY3ZyIjpicmVhaztjYXNlImRpdiI6bz10LnBvcCgpO249dC5wb3AoKTt0LnB1c2gobi9vKTticmVhaztjYXNlImR1cCI6dC5jb3B5KDEpO2JyZWFrO2Nhc2UiZXEiOm89dC5wb3AoKTtuPXQucG9wKCk7dC5wdXNoKG49PT1vKTticmVhaztjYXNlImV4Y2giOnQucm9sbCgyLDEpO2JyZWFrO2Nhc2UiZXhwIjpvPXQucG9wKCk7bj10LnBvcCgpO3QucHVzaChuKipvKTticmVhaztjYXNlImZhbHNlIjp0LnB1c2goITEpO2JyZWFrO2Nhc2UiZmxvb3IiOm49dC5wb3AoKTt0LnB1c2goTWF0aC5mbG9vcihuKSk7YnJlYWs7Y2FzZSJnZSI6bz10LnBvcCgpO249dC5wb3AoKTt0LnB1c2gobj49byk7YnJlYWs7Y2FzZSJndCI6bz10LnBvcCgpO249dC5wb3AoKTt0LnB1c2gobj5vKTticmVhaztjYXNlImlkaXYiOm89dC5wb3AoKTtuPXQucG9wKCk7dC5wdXNoKG4vb3wwKTticmVhaztjYXNlImluZGV4IjpuPXQucG9wKCk7dC5pbmRleChuKTticmVhaztjYXNlImxlIjpvPXQucG9wKCk7bj10LnBvcCgpO3QucHVzaChuPD1vKTticmVhaztjYXNlImxuIjpuPXQucG9wKCk7dC5wdXNoKE1hdGgubG9nKG4pKTticmVhaztjYXNlImxvZyI6bj10LnBvcCgpO3QucHVzaChNYXRoLmxvZzEwKG4pKTticmVhaztjYXNlImx0IjpvPXQucG9wKCk7bj10LnBvcCgpO3QucHVzaChuPG8pO2JyZWFrO2Nhc2UibW9kIjpvPXQucG9wKCk7bj10LnBvcCgpO3QucHVzaChuJW8pO2JyZWFrO2Nhc2UibXVsIjpvPXQucG9wKCk7bj10LnBvcCgpO3QucHVzaChuKm8pO2JyZWFrO2Nhc2UibmUiOm89dC5wb3AoKTtuPXQucG9wKCk7dC5wdXNoKG4hPT1vKTticmVhaztjYXNlIm5lZyI6bj10LnBvcCgpO3QucHVzaCgtbik7YnJlYWs7Y2FzZSJub3QiOm49dC5wb3AoKTsiYm9vbGVhbiI9PXR5cGVvZiBuP3QucHVzaCghbik6dC5wdXNoKH5uKTticmVhaztjYXNlIm9yIjpvPXQucG9wKCk7bj10LnBvcCgpOyJib29sZWFuIj09dHlwZW9mIG4mJiJib29sZWFuIj09dHlwZW9mIG8/dC5wdXNoKG58fG8pOnQucHVzaChufG8pO2JyZWFrO2Nhc2UicG9wIjp0LnBvcCgpO2JyZWFrO2Nhc2Uicm9sbCI6bz10LnBvcCgpO249dC5wb3AoKTt0LnJvbGwobixvKTticmVhaztjYXNlInJvdW5kIjpuPXQucG9wKCk7dC5wdXNoKE1hdGgucm91bmQobikpO2JyZWFrO2Nhc2Uic2luIjpuPXQucG9wKCk7dC5wdXNoKE1hdGguc2luKG4lMzYwLzE4MCpNYXRoLlBJKSk7YnJlYWs7Y2FzZSJzcXJ0IjpuPXQucG9wKCk7dC5wdXNoKE1hdGguc3FydChuKSk7YnJlYWs7Y2FzZSJzdWIiOm89dC5wb3AoKTtuPXQucG9wKCk7dC5wdXNoKG4tbyk7YnJlYWs7Y2FzZSJ0cnVlIjp0LnB1c2goITApO2JyZWFrO2Nhc2UidHJ1bmNhdGUiOm49dC5wb3AoKTtuPW48MD9NYXRoLmNlaWwobik6TWF0aC5mbG9vcihuKTt0LnB1c2gobik7YnJlYWs7Y2FzZSJ4b3IiOm89dC5wb3AoKTtuPXQucG9wKCk7ImJvb2xlYW4iPT10eXBlb2YgbiYmImJvb2xlYW4iPT10eXBlb2Ygbz90LnB1c2gobiE9PW8pOnQucHVzaChuXm8pO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEZvcm1hdEVycm9yKGBVbmtub3duIG9wZXJhdG9yICR7c31gKX1lbHNlIHQucHVzaChzKX1yZXR1cm4gdC5zdGFja319Y2xhc3MgQXN0Tm9kZXtjb25zdHJ1Y3RvcihlKXt0aGlzLnR5cGU9ZX12aXNpdChlKXt1bnJlYWNoYWJsZSgiYWJzdHJhY3QgbWV0aG9kIil9fWNsYXNzIEFzdEFyZ3VtZW50IGV4dGVuZHMgQXN0Tm9kZXtjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIoImFyZ3MiKTt0aGlzLmluZGV4PWU7dGhpcy5taW49dDt0aGlzLm1heD1pfXZpc2l0KGUpe2UudmlzaXRBcmd1bWVudCh0aGlzKX19Y2xhc3MgQXN0TGl0ZXJhbCBleHRlbmRzIEFzdE5vZGV7Y29uc3RydWN0b3IoZSl7c3VwZXIoImxpdGVyYWwiKTt0aGlzLm51bWJlcj1lO3RoaXMubWluPWU7dGhpcy5tYXg9ZX12aXNpdChlKXtlLnZpc2l0TGl0ZXJhbCh0aGlzKX19Y2xhc3MgQXN0QmluYXJ5T3BlcmF0aW9uIGV4dGVuZHMgQXN0Tm9kZXtjb25zdHJ1Y3RvcihlLHQsaSxhLHIpe3N1cGVyKCJiaW5hcnkiKTt0aGlzLm9wPWU7dGhpcy5hcmcxPXQ7dGhpcy5hcmcyPWk7dGhpcy5taW49YTt0aGlzLm1heD1yfXZpc2l0KGUpe2UudmlzaXRCaW5hcnlPcGVyYXRpb24odGhpcyl9fWNsYXNzIEFzdE1pbiBleHRlbmRzIEFzdE5vZGV7Y29uc3RydWN0b3IoZSx0KXtzdXBlcigibWF4Iik7dGhpcy5hcmc9ZTt0aGlzLm1pbj1lLm1pbjt0aGlzLm1heD10fXZpc2l0KGUpe2UudmlzaXRNaW4odGhpcyl9fWNsYXNzIEFzdFZhcmlhYmxlIGV4dGVuZHMgQXN0Tm9kZXtjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIoInZhciIpO3RoaXMuaW5kZXg9ZTt0aGlzLm1pbj10O3RoaXMubWF4PWl9dmlzaXQoZSl7ZS52aXNpdFZhcmlhYmxlKHRoaXMpfX1jbGFzcyBBc3RWYXJpYWJsZURlZmluaXRpb24gZXh0ZW5kcyBBc3ROb2Rle2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoImRlZmluaXRpb24iKTt0aGlzLnZhcmlhYmxlPWU7dGhpcy5hcmc9dH12aXNpdChlKXtlLnZpc2l0VmFyaWFibGVEZWZpbml0aW9uKHRoaXMpfX1jbGFzcyBFeHByZXNzaW9uQnVpbGRlclZpc2l0b3J7Y29uc3RydWN0b3IoKXt0aGlzLnBhcnRzPVtdfXZpc2l0QXJndW1lbnQoZSl7dGhpcy5wYXJ0cy5wdXNoKCJNYXRoLm1heCgiLGUubWluLCIsIE1hdGgubWluKCIsZS5tYXgsIiwgc3JjW3NyY09mZnNldCArICIsZS5pbmRleCwiXSkpIil9dmlzaXRWYXJpYWJsZShlKXt0aGlzLnBhcnRzLnB1c2goInYiLGUuaW5kZXgpfXZpc2l0TGl0ZXJhbChlKXt0aGlzLnBhcnRzLnB1c2goZS5udW1iZXIpfXZpc2l0QmluYXJ5T3BlcmF0aW9uKGUpe3RoaXMucGFydHMucHVzaCgiKCIpO2UuYXJnMS52aXNpdCh0aGlzKTt0aGlzLnBhcnRzLnB1c2goIiAiLGUub3AsIiAiKTtlLmFyZzIudmlzaXQodGhpcyk7dGhpcy5wYXJ0cy5wdXNoKCIpIil9dmlzaXRWYXJpYWJsZURlZmluaXRpb24oZSl7dGhpcy5wYXJ0cy5wdXNoKCJ2YXIgIik7ZS52YXJpYWJsZS52aXNpdCh0aGlzKTt0aGlzLnBhcnRzLnB1c2goIiA9ICIpO2UuYXJnLnZpc2l0KHRoaXMpO3RoaXMucGFydHMucHVzaCgiOyIpfXZpc2l0TWluKGUpe3RoaXMucGFydHMucHVzaCgiTWF0aC5taW4oIik7ZS5hcmcudmlzaXQodGhpcyk7dGhpcy5wYXJ0cy5wdXNoKCIsICIsZS5tYXgsIikiKX10b1N0cmluZygpe3JldHVybiB0aGlzLnBhcnRzLmpvaW4oIiIpfX1mdW5jdGlvbiBidWlsZEFkZE9wZXJhdGlvbihlLHQpe3JldHVybiJsaXRlcmFsIj09PXQudHlwZSYmMD09PXQubnVtYmVyP2U6ImxpdGVyYWwiPT09ZS50eXBlJiYwPT09ZS5udW1iZXI/dDoibGl0ZXJhbCI9PT10LnR5cGUmJiJsaXRlcmFsIj09PWUudHlwZT9uZXcgQXN0TGl0ZXJhbChlLm51bWJlcit0Lm51bWJlcik6bmV3IEFzdEJpbmFyeU9wZXJhdGlvbigiKyIsZSx0LGUubWluK3QubWluLGUubWF4K3QubWF4KX1mdW5jdGlvbiBidWlsZE11bE9wZXJhdGlvbihlLHQpe2lmKCJsaXRlcmFsIj09PXQudHlwZSl7aWYoMD09PXQubnVtYmVyKXJldHVybiBuZXcgQXN0TGl0ZXJhbCgwKTtpZigxPT09dC5udW1iZXIpcmV0dXJuIGU7aWYoImxpdGVyYWwiPT09ZS50eXBlKXJldHVybiBuZXcgQXN0TGl0ZXJhbChlLm51bWJlcip0Lm51bWJlcil9aWYoImxpdGVyYWwiPT09ZS50eXBlKXtpZigwPT09ZS5udW1iZXIpcmV0dXJuIG5ldyBBc3RMaXRlcmFsKDApO2lmKDE9PT1lLm51bWJlcilyZXR1cm4gdH1jb25zdCBpPU1hdGgubWluKGUubWluKnQubWluLGUubWluKnQubWF4LGUubWF4KnQubWluLGUubWF4KnQubWF4KSxhPU1hdGgubWF4KGUubWluKnQubWluLGUubWluKnQubWF4LGUubWF4KnQubWluLGUubWF4KnQubWF4KTtyZXR1cm4gbmV3IEFzdEJpbmFyeU9wZXJhdGlvbigiKiIsZSx0LGksYSl9ZnVuY3Rpb24gYnVpbGRTdWJPcGVyYXRpb24oZSx0KXtpZigibGl0ZXJhbCI9PT10LnR5cGUpe2lmKDA9PT10Lm51bWJlcilyZXR1cm4gZTtpZigibGl0ZXJhbCI9PT1lLnR5cGUpcmV0dXJuIG5ldyBBc3RMaXRlcmFsKGUubnVtYmVyLXQubnVtYmVyKX1yZXR1cm4iYmluYXJ5Ij09PXQudHlwZSYmIi0iPT09dC5vcCYmImxpdGVyYWwiPT09ZS50eXBlJiYxPT09ZS5udW1iZXImJiJsaXRlcmFsIj09PXQuYXJnMS50eXBlJiYxPT09dC5hcmcxLm51bWJlcj90LmFyZzI6bmV3IEFzdEJpbmFyeU9wZXJhdGlvbigiLSIsZSx0LGUubWluLXQubWF4LGUubWF4LXQubWluKX1mdW5jdGlvbiBidWlsZE1pbk9wZXJhdGlvbihlLHQpe3JldHVybiBlLm1pbj49dD9uZXcgQXN0TGl0ZXJhbCh0KTplLm1heDw9dD9lOm5ldyBBc3RNaW4oZSx0KX1jbGFzcyBQb3N0U2NyaXB0Q29tcGlsZXJ7Y29tcGlsZShlLHQsaSl7Y29uc3QgYT1bXSxyPVtdLHM9dC5sZW5ndGg+PjEsbj1pLmxlbmd0aD4+MTtsZXQgbyxnLGMsbCxoLEMsUSxFLHU9MDtmb3IobGV0IGU9MDtlPHM7ZSsrKWEucHVzaChuZXcgQXN0QXJndW1lbnQoZSx0WzIqZV0sdFsyKmUrMV0pKTtmb3IobGV0IHQ9MCxpPWUubGVuZ3RoO3Q8aTt0Kyspe0U9ZVt0XTtpZigibnVtYmVyIiE9dHlwZW9mIEUpc3dpdGNoKEUpe2Nhc2UiYWRkIjppZihhLmxlbmd0aDwyKXJldHVybiBudWxsO2w9YS5wb3AoKTtjPWEucG9wKCk7YS5wdXNoKGJ1aWxkQWRkT3BlcmF0aW9uKGMsbCkpO2JyZWFrO2Nhc2UiY3ZyIjppZihhLmxlbmd0aDwxKXJldHVybiBudWxsO2JyZWFrO2Nhc2UibXVsIjppZihhLmxlbmd0aDwyKXJldHVybiBudWxsO2w9YS5wb3AoKTtjPWEucG9wKCk7YS5wdXNoKGJ1aWxkTXVsT3BlcmF0aW9uKGMsbCkpO2JyZWFrO2Nhc2Uic3ViIjppZihhLmxlbmd0aDwyKXJldHVybiBudWxsO2w9YS5wb3AoKTtjPWEucG9wKCk7YS5wdXNoKGJ1aWxkU3ViT3BlcmF0aW9uKGMsbCkpO2JyZWFrO2Nhc2UiZXhjaCI6aWYoYS5sZW5ndGg8MilyZXR1cm4gbnVsbDtoPWEucG9wKCk7Qz1hLnBvcCgpO2EucHVzaChoLEMpO2JyZWFrO2Nhc2UicG9wIjppZihhLmxlbmd0aDwxKXJldHVybiBudWxsO2EucG9wKCk7YnJlYWs7Y2FzZSJpbmRleCI6aWYoYS5sZW5ndGg8MSlyZXR1cm4gbnVsbDtjPWEucG9wKCk7aWYoImxpdGVyYWwiIT09Yy50eXBlKXJldHVybiBudWxsO289Yy5udW1iZXI7aWYobzwwfHwhTnVtYmVyLmlzSW50ZWdlcihvKXx8YS5sZW5ndGg8bylyZXR1cm4gbnVsbDtoPWFbYS5sZW5ndGgtby0xXTtpZigibGl0ZXJhbCI9PT1oLnR5cGV8fCJ2YXIiPT09aC50eXBlKXthLnB1c2goaCk7YnJlYWt9UT1uZXcgQXN0VmFyaWFibGUodSsrLGgubWluLGgubWF4KTthW2EubGVuZ3RoLW8tMV09UTthLnB1c2goUSk7ci5wdXNoKG5ldyBBc3RWYXJpYWJsZURlZmluaXRpb24oUSxoKSk7YnJlYWs7Y2FzZSJkdXAiOmlmKGEubGVuZ3RoPDEpcmV0dXJuIG51bGw7aWYoIm51bWJlciI9PXR5cGVvZiBlW3QrMV0mJiJndCI9PT1lW3QrMl0mJmVbdCszXT09PXQrNyYmImp6Ij09PWVbdCs0XSYmInBvcCI9PT1lW3QrNV0mJmVbdCs2XT09PWVbdCsxXSl7Yz1hLnBvcCgpO2EucHVzaChidWlsZE1pbk9wZXJhdGlvbihjLGVbdCsxXSkpO3QrPTY7YnJlYWt9aD1hLmF0KC0xKTtpZigibGl0ZXJhbCI9PT1oLnR5cGV8fCJ2YXIiPT09aC50eXBlKXthLnB1c2goaCk7YnJlYWt9UT1uZXcgQXN0VmFyaWFibGUodSsrLGgubWluLGgubWF4KTthW2EubGVuZ3RoLTFdPVE7YS5wdXNoKFEpO3IucHVzaChuZXcgQXN0VmFyaWFibGVEZWZpbml0aW9uKFEsaCkpO2JyZWFrO2Nhc2Uicm9sbCI6aWYoYS5sZW5ndGg8MilyZXR1cm4gbnVsbDtsPWEucG9wKCk7Yz1hLnBvcCgpO2lmKCJsaXRlcmFsIiE9PWwudHlwZXx8ImxpdGVyYWwiIT09Yy50eXBlKXJldHVybiBudWxsO2c9bC5udW1iZXI7bz1jLm51bWJlcjtpZihvPD0wfHwhTnVtYmVyLmlzSW50ZWdlcihvKXx8IU51bWJlci5pc0ludGVnZXIoZyl8fGEubGVuZ3RoPG8pcmV0dXJuIG51bGw7Zz0oZyVvK28pJW87aWYoMD09PWcpYnJlYWs7YS5wdXNoKC4uLmEuc3BsaWNlKGEubGVuZ3RoLW8sby1nKSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gbnVsbH1lbHNlIGEucHVzaChuZXcgQXN0TGl0ZXJhbChFKSl9aWYoYS5sZW5ndGghPT1uKXJldHVybiBudWxsO2NvbnN0IGQ9W107Zm9yKGNvbnN0IGUgb2Ygcil7Y29uc3QgdD1uZXcgRXhwcmVzc2lvbkJ1aWxkZXJWaXNpdG9yO2UudmlzaXQodCk7ZC5wdXNoKHQudG9TdHJpbmcoKSl9Zm9yKGxldCBlPTAsdD1hLmxlbmd0aDtlPHQ7ZSsrKXtjb25zdCB0PWFbZV0scj1uZXcgRXhwcmVzc2lvbkJ1aWxkZXJWaXNpdG9yO3QudmlzaXQocik7Y29uc3Qgcz1pWzIqZV0sbj1pWzIqZSsxXSxvPVtyLnRvU3RyaW5nKCldO2lmKHM+dC5taW4pe28udW5zaGlmdCgiTWF0aC5tYXgoIixzLCIsICIpO28ucHVzaCgiKSIpfWlmKG48dC5tYXgpe28udW5zaGlmdCgiTWF0aC5taW4oIixuLCIsICIpO28ucHVzaCgiKSIpfW8udW5zaGlmdCgiZGVzdFtkZXN0T2Zmc2V0ICsgIixlLCJdID0gIik7by5wdXNoKCI7Iik7ZC5wdXNoKG8uam9pbigiIikpfXJldHVybiBkLmpvaW4oIlxuIil9fWNvbnN0IG5yPVsiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiUyIsIkIiLCJTIiwiV1MiLCJCIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkIiLCJCIiwiQiIsIlMiLCJXUyIsIk9OIiwiT04iLCJFVCIsIkVUIiwiRVQiLCJPTiIsIk9OIiwiT04iLCJPTiIsIk9OIiwiRVMiLCJDUyIsIkVTIiwiQ1MiLCJDUyIsIkVOIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJFTiIsIkVOIiwiQ1MiLCJPTiIsIk9OIiwiT04iLCJPTiIsIk9OIiwiT04iLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIk9OIiwiT04iLCJPTiIsIk9OIiwiT04iLCJPTiIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiT04iLCJPTiIsIk9OIiwiT04iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkNTIiwiT04iLCJFVCIsIkVUIiwiRVQiLCJFVCIsIk9OIiwiT04iLCJPTiIsIk9OIiwiTCIsIk9OIiwiT04iLCJCTiIsIk9OIiwiT04iLCJFVCIsIkVUIiwiRU4iLCJFTiIsIk9OIiwiTCIsIk9OIiwiT04iLCJPTiIsIkVOIiwiTCIsIk9OIiwiT04iLCJPTiIsIk9OIiwiT04iLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIk9OIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIk9OIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiXSxvcj1bIkFOIiwiQU4iLCJBTiIsIkFOIiwiQU4iLCJBTiIsIk9OIiwiT04iLCJBTCIsIkVUIiwiRVQiLCJBTCIsIkNTIiwiQUwiLCJPTiIsIk9OIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiQUwiLCJBTCIsIiIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIkFOIiwiQU4iLCJBTiIsIkFOIiwiQU4iLCJBTiIsIkFOIiwiQU4iLCJBTiIsIkFOIiwiRVQiLCJBTiIsIkFOIiwiQUwiLCJBTCIsIkFMIiwiTlNNIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIkFOIiwiT04iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJBTCIsIkFMIiwiTlNNIiwiTlNNIiwiT04iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJBTCIsIkFMIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiXTtmdW5jdGlvbiBpc09kZChlKXtyZXR1cm4hISgxJmUpfWZ1bmN0aW9uIGlzRXZlbihlKXtyZXR1cm4hKDEmZSl9ZnVuY3Rpb24gZmluZFVuZXF1YWwoZSx0LGkpe2xldCBhLHI7Zm9yKGE9dCxyPWUubGVuZ3RoO2E8cjsrK2EpaWYoZVthXSE9PWkpcmV0dXJuIGE7cmV0dXJuIGF9ZnVuY3Rpb24gc2V0VmFsdWVzKGUsdCxpLGEpe2ZvcihsZXQgcj10O3I8aTsrK3IpZVtyXT1hfWZ1bmN0aW9uIHJldmVyc2VWYWx1ZXMoZSx0LGkpe2ZvcihsZXQgYT10LHI9aS0xO2E8cjsrK2EsLS1yKXtjb25zdCB0PWVbYV07ZVthXT1lW3JdO2Vbcl09dH19ZnVuY3Rpb24gY3JlYXRlQmlkaVRleHQoZSx0LGk9ITEpe2xldCBhPSJsdHIiO2k/YT0idHRiIjp0fHwoYT0icnRsIik7cmV0dXJue3N0cjplLGRpcjphfX1jb25zdCBncj1bXSxJcj1bXTtmdW5jdGlvbiBiaWRpKGUsdD0tMSxpPSExKXtsZXQgYT0hMDtjb25zdCByPWUubGVuZ3RoO2lmKDA9PT1yfHxpKXJldHVybiBjcmVhdGVCaWRpVGV4dChlLGEsaSk7Z3IubGVuZ3RoPXI7SXIubGVuZ3RoPXI7bGV0IHMsbixvPTA7Zm9yKHM9MDtzPHI7KytzKXtncltzXT1lLmNoYXJBdChzKTtjb25zdCB0PWUuY2hhckNvZGVBdChzKTtsZXQgaT0iTCI7aWYodDw9MjU1KWk9bnJbdF07ZWxzZSBpZigxNDI0PD10JiZ0PD0xNTI0KWk9IlIiO2Vsc2UgaWYoMTUzNjw9dCYmdDw9MTc5MSl7aT1vclsyNTUmdF07aXx8d2FybigiQmlkaTogaW52YWxpZCBVbmljb2RlIGNoYXJhY3RlciAiK3QudG9TdHJpbmcoMTYpKX1lbHNlKDE3OTI8PXQmJnQ8PTIyMjB8fDY0MzM2PD10JiZ0PD02NTAyM3x8NjUxMzY8PXQmJnQ8PTY1Mjc5KSYmKGk9IkFMIik7IlIiIT09aSYmIkFMIiE9PWkmJiJBTiIhPT1pfHxvKys7SXJbc109aX1pZigwPT09byl7YT0hMDtyZXR1cm4gY3JlYXRlQmlkaVRleHQoZSxhKX1pZigtMT09PXQpaWYoby9yPC4zJiZyPjQpe2E9ITA7dD0wfWVsc2V7YT0hMTt0PTF9Y29uc3QgZz1bXTtmb3Iocz0wO3M8cjsrK3MpZ1tzXT10O2NvbnN0IGM9aXNPZGQodCk/IlIiOiJMIixsPWMsaD1sO2xldCBDLFE9bDtmb3Iocz0wO3M8cjsrK3MpIk5TTSI9PT1JcltzXT9JcltzXT1ROlE9SXJbc107UT1sO2ZvcihzPTA7czxyOysrcyl7Qz1JcltzXTsiRU4iPT09Qz9JcltzXT0iQUwiPT09UT8iQU4iOiJFTiI6IlIiIT09QyYmIkwiIT09QyYmIkFMIiE9PUN8fChRPUMpfWZvcihzPTA7czxyOysrcyl7Qz1JcltzXTsiQUwiPT09QyYmKElyW3NdPSJSIil9Zm9yKHM9MTtzPHItMTsrK3MpeyJFUyI9PT1JcltzXSYmIkVOIj09PUlyW3MtMV0mJiJFTiI9PT1JcltzKzFdJiYoSXJbc109IkVOIik7IkNTIiE9PUlyW3NdfHwiRU4iIT09SXJbcy0xXSYmIkFOIiE9PUlyW3MtMV18fElyW3MrMV0hPT1JcltzLTFdfHwoSXJbc109SXJbcy0xXSl9Zm9yKHM9MDtzPHI7KytzKWlmKCJFTiI9PT1JcltzXSl7Zm9yKGxldCBlPXMtMTtlPj0wJiYiRVQiPT09SXJbZV07LS1lKUlyW2VdPSJFTiI7Zm9yKGxldCBlPXMrMTtlPHImJiJFVCI9PT1JcltlXTsrK2UpSXJbZV09IkVOIn1mb3Iocz0wO3M8cjsrK3Mpe0M9SXJbc107IldTIiE9PUMmJiJFUyIhPT1DJiYiRVQiIT09QyYmIkNTIiE9PUN8fChJcltzXT0iT04iKX1RPWw7Zm9yKHM9MDtzPHI7KytzKXtDPUlyW3NdOyJFTiI9PT1DP0lyW3NdPSJMIj09PVE/IkwiOiJFTiI6IlIiIT09QyYmIkwiIT09Q3x8KFE9Qyl9Zm9yKHM9MDtzPHI7KytzKWlmKCJPTiI9PT1JcltzXSl7Y29uc3QgZT1maW5kVW5lcXVhbChJcixzKzEsIk9OIik7bGV0IHQ9bDtzPjAmJih0PUlyW3MtMV0pO2xldCBpPWg7ZSsxPHImJihpPUlyW2UrMV0pOyJMIiE9PXQmJih0PSJSIik7IkwiIT09aSYmKGk9IlIiKTt0PT09aSYmc2V0VmFsdWVzKElyLHMsZSx0KTtzPWUtMX1mb3Iocz0wO3M8cjsrK3MpIk9OIj09PUlyW3NdJiYoSXJbc109Yyk7Zm9yKHM9MDtzPHI7KytzKXtDPUlyW3NdO2lzRXZlbihnW3NdKT8iUiI9PT1DP2dbc10rPTE6IkFOIiE9PUMmJiJFTiIhPT1DfHwoZ1tzXSs9Mik6IkwiIT09QyYmIkFOIiE9PUMmJiJFTiIhPT1DfHwoZ1tzXSs9MSl9bGV0IEUsdT0tMSxkPTk5O2ZvcihzPTAsbj1nLmxlbmd0aDtzPG47KytzKXtFPWdbc107dTxFJiYodT1FKTtkPkUmJmlzT2RkKEUpJiYoZD1FKX1mb3IoRT11O0U+PWQ7LS1FKXtsZXQgZT0tMTtmb3Iocz0wLG49Zy5sZW5ndGg7czxuOysrcylpZihnW3NdPEUpe2lmKGU+PTApe3JldmVyc2VWYWx1ZXMoZ3IsZSxzKTtlPS0xfX1lbHNlIGU8MCYmKGU9cyk7ZT49MCYmcmV2ZXJzZVZhbHVlcyhncixlLGcubGVuZ3RoKX1mb3Iocz0wLG49Z3IubGVuZ3RoO3M8bjsrK3Mpe2NvbnN0IGU9Z3Jbc107IjwiIT09ZSYmIj4iIT09ZXx8KGdyW3NdPSIiKX1yZXR1cm4gY3JlYXRlQmlkaVRleHQoZ3Iuam9pbigiIiksYSl9Y29uc3QgY3I9e3N0eWxlOiJub3JtYWwiLHdlaWdodDoibm9ybWFsIn0sbHI9e3N0eWxlOiJub3JtYWwiLHdlaWdodDoiYm9sZCJ9LGhyPXtzdHlsZToiaXRhbGljIix3ZWlnaHQ6Im5vcm1hbCJ9LENyPXtzdHlsZToiaXRhbGljIix3ZWlnaHQ6ImJvbGQifSxRcj1uZXcgTWFwKFtbIlRpbWVzLVJvbWFuIix7bG9jYWw6WyJUaW1lcyBOZXcgUm9tYW4iLCJUaW1lcy1Sb21hbiIsIlRpbWVzIiwiTGliZXJhdGlvbiBTZXJpZiIsIk5pbWJ1cyBSb21hbiIsIk5pbWJ1cyBSb21hbiBMIiwiVGlub3MiLCJUaG9ybmRhbGUiLCJUZVggR3lyZSBUZXJtZXMiLCJGcmVlU2VyaWYiLCJMaW51eCBMaWJlcnRpbmUgTyIsIkxpYmVydGludXMgU2VyaWYiLCJEZWphVnUgU2VyaWYiLCJCaXRzdHJlYW0gVmVyYSBTZXJpZiIsIlVidW50dSJdLHN0eWxlOmNyLHVsdGltYXRlOiJzZXJpZiJ9XSxbIlRpbWVzLUJvbGQiLHthbGlhczoiVGltZXMtUm9tYW4iLHN0eWxlOmxyLHVsdGltYXRlOiJzZXJpZiJ9XSxbIlRpbWVzLUl0YWxpYyIse2FsaWFzOiJUaW1lcy1Sb21hbiIsc3R5bGU6aHIsdWx0aW1hdGU6InNlcmlmIn1dLFsiVGltZXMtQm9sZEl0YWxpYyIse2FsaWFzOiJUaW1lcy1Sb21hbiIsc3R5bGU6Q3IsdWx0aW1hdGU6InNlcmlmIn1dLFsiSGVsdmV0aWNhIix7bG9jYWw6WyJIZWx2ZXRpY2EiLCJIZWx2ZXRpY2EgTmV1ZSIsIkFyaWFsIiwiQXJpYWwgTm92YSIsIkxpYmVyYXRpb24gU2FucyIsIkFyaW1vIiwiTmltYnVzIFNhbnMiLCJOaW1idXMgU2FucyBMIiwiQTAzMCIsIlRlWCBHeXJlIEhlcm9zIiwiRnJlZVNhbnMiLCJEZWphVnUgU2FucyIsIkFsYmFueSIsIkJpdHN0cmVhbSBWZXJhIFNhbnMiLCJBcmlhbCBVbmljb2RlIE1TIiwiTWljcm9zb2Z0IFNhbnMgU2VyaWYiLCJBcHBsZSBTeW1ib2xzIiwiQ2FudGFyZWxsIl0scGF0aDoiTGliZXJhdGlvblNhbnMtUmVndWxhci50dGYiLHN0eWxlOmNyLHVsdGltYXRlOiJzYW5zLXNlcmlmIn1dLFsiSGVsdmV0aWNhLUJvbGQiLHthbGlhczoiSGVsdmV0aWNhIixwYXRoOiJMaWJlcmF0aW9uU2Fucy1Cb2xkLnR0ZiIsc3R5bGU6bHIsdWx0aW1hdGU6InNhbnMtc2VyaWYifV0sWyJIZWx2ZXRpY2EtT2JsaXF1ZSIse2FsaWFzOiJIZWx2ZXRpY2EiLHBhdGg6IkxpYmVyYXRpb25TYW5zLUl0YWxpYy50dGYiLHN0eWxlOmhyLHVsdGltYXRlOiJzYW5zLXNlcmlmIn1dLFsiSGVsdmV0aWNhLUJvbGRPYmxpcXVlIix7YWxpYXM6IkhlbHZldGljYSIscGF0aDoiTGliZXJhdGlvblNhbnMtQm9sZEl0YWxpYy50dGYiLHN0eWxlOkNyLHVsdGltYXRlOiJzYW5zLXNlcmlmIn1dLFsiQ291cmllciIse2xvY2FsOlsiQ291cmllciIsIkNvdXJpZXIgTmV3IiwiTGliZXJhdGlvbiBNb25vIiwiTmltYnVzIE1vbm8iLCJOaW1idXMgTW9ubyBMIiwiQ291c2luZSIsIkN1bWJlcmxhbmQiLCJUZVggR3lyZSBDdXJzb3IiLCJGcmVlTW9ubyIsIkxpbnV4IExpYmVydGluZSBNb25vIE8iLCJMaWJlcnRpbnVzIE1vbm8iXSxzdHlsZTpjcix1bHRpbWF0ZToibW9ub3NwYWNlIn1dLFsiQ291cmllci1Cb2xkIix7YWxpYXM6IkNvdXJpZXIiLHN0eWxlOmxyLHVsdGltYXRlOiJtb25vc3BhY2UifV0sWyJDb3VyaWVyLU9ibGlxdWUiLHthbGlhczoiQ291cmllciIsc3R5bGU6aHIsdWx0aW1hdGU6Im1vbm9zcGFjZSJ9XSxbIkNvdXJpZXItQm9sZE9ibGlxdWUiLHthbGlhczoiQ291cmllciIsc3R5bGU6Q3IsdWx0aW1hdGU6Im1vbm9zcGFjZSJ9XSxbIkFyaWFsQmxhY2siLHtsb2NhbDpbIkFyaWFsIEJsYWNrIl0sc3R5bGU6e3N0eWxlOiJub3JtYWwiLHdlaWdodDoiOTAwIn0sZmFsbGJhY2s6IkhlbHZldGljYS1Cb2xkIn1dLFsiQXJpYWxCbGFjay1Cb2xkIix7YWxpYXM6IkFyaWFsQmxhY2sifV0sWyJBcmlhbEJsYWNrLUl0YWxpYyIse2FsaWFzOiJBcmlhbEJsYWNrIixzdHlsZTp7c3R5bGU6Iml0YWxpYyIsd2VpZ2h0OiI5MDAifSxmYWxsYmFjazoiSGVsdmV0aWNhLUJvbGRPYmxpcXVlIn1dLFsiQXJpYWxCbGFjay1Cb2xkSXRhbGljIix7YWxpYXM6IkFyaWFsQmxhY2stSXRhbGljIn1dLFsiQXJpYWxOYXJyb3ciLHtsb2NhbDpbIkFyaWFsIE5hcnJvdyIsIkxpYmVyYXRpb24gU2FucyBOYXJyb3ciLCJIZWx2ZXRpY2EgQ29uZGVuc2VkIiwiTmltYnVzIFNhbnMgTmFycm93IiwiVGVYIEd5cmUgSGVyb3MgQ24iXSxzdHlsZTpjcixmYWxsYmFjazoiSGVsdmV0aWNhIn1dLFsiQXJpYWxOYXJyb3ctQm9sZCIse2FsaWFzOiJBcmlhbE5hcnJvdyIsc3R5bGU6bHIsZmFsbGJhY2s6IkhlbHZldGljYS1Cb2xkIn1dLFsiQXJpYWxOYXJyb3ctSXRhbGljIix7YWxpYXM6IkFyaWFsTmFycm93IixzdHlsZTpocixmYWxsYmFjazoiSGVsdmV0aWNhLU9ibGlxdWUifV0sWyJBcmlhbE5hcnJvdy1Cb2xkSXRhbGljIix7YWxpYXM6IkFyaWFsTmFycm93IixzdHlsZTpDcixmYWxsYmFjazoiSGVsdmV0aWNhLUJvbGRPYmxpcXVlIn1dLFsiQ2FsaWJyaSIse2xvY2FsOlsiQ2FsaWJyaSIsIkNhcmxpdG8iXSxzdHlsZTpjcixmYWxsYmFjazoiSGVsdmV0aWNhIn1dLFsiQ2FsaWJyaS1Cb2xkIix7YWxpYXM6IkNhbGlicmkiLHN0eWxlOmxyLGZhbGxiYWNrOiJIZWx2ZXRpY2EtQm9sZCJ9XSxbIkNhbGlicmktSXRhbGljIix7YWxpYXM6IkNhbGlicmkiLHN0eWxlOmhyLGZhbGxiYWNrOiJIZWx2ZXRpY2EtT2JsaXF1ZSJ9XSxbIkNhbGlicmktQm9sZEl0YWxpYyIse2FsaWFzOiJDYWxpYnJpIixzdHlsZTpDcixmYWxsYmFjazoiSGVsdmV0aWNhLUJvbGRPYmxpcXVlIn1dLFsiV2luZ2RpbmdzIix7bG9jYWw6WyJXaW5nZGluZ3MiLCJVUlcgRGluZ2JhdHMiXSxzdHlsZTpjcn1dLFsiV2luZ2RpbmdzLVJlZ3VsYXIiLHthbGlhczoiV2luZ2RpbmdzIn1dLFsiV2luZ2RpbmdzLUJvbGQiLHthbGlhczoiV2luZ2RpbmdzIn1dXSksRXI9bmV3IE1hcChbWyJBcmlhbC1CbGFjayIsIkFyaWFsQmxhY2siXV0pO2Z1bmN0aW9uIGdldEZhbWlseU5hbWUoZSl7Y29uc3QgdD1uZXcgU2V0KFsidGhpbiIsImV4dHJhbGlnaHQiLCJ1bHRyYWxpZ2h0IiwiZGVtaWxpZ2h0Iiwic2VtaWxpZ2h0IiwibGlnaHQiLCJib29rIiwicmVndWxhciIsIm5vcm1hbCIsIm1lZGl1bSIsImRlbWlib2xkIiwic2VtaWJvbGQiLCJib2xkIiwiZXh0cmFib2xkIiwidWx0cmFib2xkIiwiYmxhY2siLCJoZWF2eSIsImV4dHJhYmxhY2siLCJ1bHRyYWJsYWNrIiwicm9tYW4iLCJpdGFsaWMiLCJvYmxpcXVlIiwidWx0cmFjb25kZW5zZWQiLCJleHRyYWNvbmRlbnNlZCIsImNvbmRlbnNlZCIsInNlbWljb25kZW5zZWQiLCJub3JtYWwiLCJzZW1pZXhwYW5kZWQiLCJleHBhbmRlZCIsImV4dHJhZXhwYW5kZWQiLCJ1bHRyYWV4cGFuZGVkIiwiYm9sZGl0YWxpYyJdKTtyZXR1cm4gZS5zcGxpdCgvWy0gLCtdKy9nKS5maWx0ZXIoKGU9PiF0LmhhcyhlLnRvTG93ZXJDYXNlKCkpKSkuam9pbigiICIpfWZ1bmN0aW9uIGdlbmVyYXRlRm9udCh7YWxpYXM6ZSxsb2NhbDp0LHBhdGg6aSxmYWxsYmFjazphLHN0eWxlOnIsdWx0aW1hdGU6c30sbixvLGc9ITAsYz0hMCxsPSIiKXtjb25zdCBoPXtzdHlsZTpudWxsLHVsdGltYXRlOm51bGx9O2lmKHQpe2NvbnN0IGU9bD9gICR7bH1gOiIiO2Zvcihjb25zdCBpIG9mIHQpbi5wdXNoKGBsb2NhbCgke2l9JHtlfSlgKX1pZihlKXtjb25zdCB0PVFyLmdldChlKSxzPWx8fGZ1bmN0aW9uIGdldFN0eWxlVG9BcHBlbmQoZSl7c3dpdGNoKGUpe2Nhc2UgbHI6cmV0dXJuIkJvbGQiO2Nhc2UgaHI6cmV0dXJuIkl0YWxpYyI7Y2FzZSBDcjpyZXR1cm4iQm9sZCBJdGFsaWMiO2RlZmF1bHQ6aWYoImJvbGQiPT09ZT8ud2VpZ2h0KXJldHVybiJCb2xkIjtpZigiaXRhbGljIj09PWU/LnN0eWxlKXJldHVybiJJdGFsaWMifXJldHVybiIifShyKTtPYmplY3QuYXNzaWduKGgsZ2VuZXJhdGVGb250KHQsbixvLGcmJiFhLGMmJiFpLHMpKX1yJiYoaC5zdHlsZT1yKTtzJiYoaC51bHRpbWF0ZT1zKTtpZihnJiZhKXtjb25zdCBlPVFyLmdldChhKSx7dWx0aW1hdGU6dH09Z2VuZXJhdGVGb250KGUsbixvLGcsYyYmIWksbCk7aC51bHRpbWF0ZXx8PXR9YyYmaSYmbyYmbi5wdXNoKGB1cmwoJHtvfSR7aX0pYCk7cmV0dXJuIGh9ZnVuY3Rpb24gZ2V0Rm9udFN1YnN0aXR1dGlvbihlLHQsaSxhLHIscyl7aWYoYS5zdGFydHNXaXRoKCJJbnZhbGlkUERGanNGb250XyIpKXJldHVybiBudWxsOyJUcnVlVHlwZSIhPT1zJiYiVHlwZTEiIT09c3x8IS9eW0EtWl17Nn1cKy8udGVzdChhKXx8KGE9YS5zbGljZSg3KSk7Y29uc3Qgbj1hPW5vcm1hbGl6ZUZvbnROYW1lKGEpO2xldCBvPWUuZ2V0KG4pO2lmKG8pcmV0dXJuIG87bGV0IGc9UXIuZ2V0KGEpO2lmKCFnKWZvcihjb25zdFtlLHRdb2YgRXIpaWYoYS5zdGFydHNXaXRoKGUpKXthPWAke3R9JHthLnN1YnN0cmluZyhlLmxlbmd0aCl9YDtnPVFyLmdldChhKTticmVha31sZXQgYz0hMTtpZighZyl7Zz1Rci5nZXQocik7Yz0hMH1jb25zdCBsPWAke3QuZ2V0RG9jSWQoKX1fcyR7dC5jcmVhdGVGb250SWQoKX1gO2lmKCFnKXtpZighdmFsaWRhdGVGb250TmFtZShhKSl7d2FybihgQ2Fubm90IHN1YnN0aXR1dGUgdGhlIGZvbnQgYmVjYXVzZSBvZiBpdHMgbmFtZTogJHthfWApO2Uuc2V0KG4sbnVsbCk7cmV0dXJuIG51bGx9Y29uc3QgdD0vYm9sZC9naS50ZXN0KGEpLGk9L29ibGlxdWV8aXRhbGljL2dpLnRlc3QoYSkscj10JiZpJiZDcnx8dCYmbHJ8fGkmJmhyfHxjcjtvPXtjc3M6YCIke2dldEZhbWlseU5hbWUoYSl9Iiwke2x9YCxndWVzc0ZhbGxiYWNrOiEwLGxvYWRlZE5hbWU6bCxiYXNlRm9udE5hbWU6YSxzcmM6YGxvY2FsKCR7YX0pYCxzdHlsZTpyfTtlLnNldChuLG8pO3JldHVybiBvfWNvbnN0IGg9W107YyYmdmFsaWRhdGVGb250TmFtZShhKSYmaC5wdXNoKGBsb2NhbCgke2F9KWApO2NvbnN0e3N0eWxlOkMsdWx0aW1hdGU6UX09Z2VuZXJhdGVGb250KGcsaCxpKSxFPW51bGw9PT1RLHU9RT8iIjpgLCR7UX1gO289e2NzczpgIiR7Z2V0RmFtaWx5TmFtZShhKX0iLCR7bH0ke3V9YCxndWVzc0ZhbGxiYWNrOkUsbG9hZGVkTmFtZTpsLGJhc2VGb250TmFtZTphLHNyYzpoLmpvaW4oIiwiKSxzdHlsZTpDfTtlLnNldChuLG8pO3JldHVybiBvfWNsYXNzIEltYWdlUmVzaXplcntzdGF0aWMjUj0yMDQ4O3N0YXRpYyN5PUZlYXR1cmVUZXN0LmlzSW1hZ2VEZWNvZGVyU3VwcG9ydGVkO2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5faW1nRGF0YT1lO3RoaXMuX2lzTWFzaz10fXN0YXRpYyBnZXQgY2FuVXNlSW1hZ2VEZWNvZGVyKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJjYW5Vc2VJbWFnZURlY29kZXIiLHRoaXMuI3k/SW1hZ2VEZWNvZGVyLmlzVHlwZVN1cHBvcnRlZCgiaW1hZ2UvYm1wIik6UHJvbWlzZS5yZXNvbHZlKCExKSl9c3RhdGljIG5lZWRzVG9CZVJlc2l6ZWQoZSx0KXtpZihlPD10aGlzLiNSJiZ0PD10aGlzLiNSKXJldHVybiExO2NvbnN0e01BWF9ESU06aX09dGhpcztpZihlPml8fHQ+aSlyZXR1cm4hMDtjb25zdCBhPWUqdDtpZih0aGlzLl9oYXNNYXhBcmVhKXJldHVybiBhPnRoaXMuTUFYX0FSRUE7aWYoYTx0aGlzLiNSKioyKXJldHVybiExO2lmKHRoaXMuX2FyZUdvb2REaW1zKGUsdCkpe3RoaXMuI1I9TWF0aC5tYXgodGhpcy4jUixNYXRoLmZsb29yKE1hdGguc3FydChlKnQpKSk7cmV0dXJuITF9dGhpcy4jUj10aGlzLl9ndWVzc01heCh0aGlzLiNSLGksMTI4LDApO3JldHVybiBhPih0aGlzLk1BWF9BUkVBPXRoaXMuI1IqKjIpfXN0YXRpYyBnZXQgTUFYX0RJTSgpe3JldHVybiBzaGFkb3codGhpcywiTUFYX0RJTSIsdGhpcy5fZ3Vlc3NNYXgoMjA0OCw2NTUzNywwLDEpKX1zdGF0aWMgZ2V0IE1BWF9BUkVBKCl7dGhpcy5faGFzTWF4QXJlYT0hMDtyZXR1cm4gc2hhZG93KHRoaXMsIk1BWF9BUkVBIix0aGlzLl9ndWVzc01heCh0aGlzLiNSLHRoaXMuTUFYX0RJTSwxMjgsMCkqKjIpfXN0YXRpYyBzZXQgTUFYX0FSRUEoZSl7aWYoZT49MCl7dGhpcy5faGFzTWF4QXJlYT0hMDtzaGFkb3codGhpcywiTUFYX0FSRUEiLGUpfX1zdGF0aWMgc2V0T3B0aW9ucyh7Y2FudmFzTWF4QXJlYUluQnl0ZXM6ZT0tMSxpc0ltYWdlRGVjb2RlclN1cHBvcnRlZDp0PSExfSl7dGhpcy5faGFzTWF4QXJlYXx8KHRoaXMuTUFYX0FSRUE9ZT4+Mik7dGhpcy4jeT10fXN0YXRpYyBfYXJlR29vZERpbXMoZSx0KXt0cnl7Y29uc3QgaT1uZXcgT2Zmc2NyZWVuQ2FudmFzKGUsdCksYT1pLmdldENvbnRleHQoIjJkIik7YS5maWxsUmVjdCgwLDAsMSwxKTtjb25zdCByPWEuZ2V0SW1hZ2VEYXRhKDAsMCwxLDEpLmRhdGFbM107aS53aWR0aD1pLmhlaWdodD0xO3JldHVybiAwIT09cn1jYXRjaHtyZXR1cm4hMX19c3RhdGljIF9ndWVzc01heChlLHQsaSxhKXtmb3IoO2UraSsxPHQ7KXtjb25zdCBpPU1hdGguZmxvb3IoKGUrdCkvMikscj1hfHxpO3RoaXMuX2FyZUdvb2REaW1zKGkscik/ZT1pOnQ9aX1yZXR1cm4gZX1zdGF0aWMgYXN5bmMgY3JlYXRlSW1hZ2UoZSx0PSExKXtyZXR1cm4gbmV3IEltYWdlUmVzaXplcihlLHQpLl9jcmVhdGVJbWFnZSgpfWFzeW5jIF9jcmVhdGVJbWFnZSgpe2NvbnN0e19pbWdEYXRhOmV9PXRoaXMse3dpZHRoOnQsaGVpZ2h0Oml9PWU7aWYodCppKjQ+eXQpe2NvbnN0IGU9dGhpcy4jTigpO2lmKGUpcmV0dXJuIGV9Y29uc3QgYT10aGlzLl9lbmNvZGVCTVAoKTtsZXQgcixzO2lmKGF3YWl0IEltYWdlUmVzaXplci5jYW5Vc2VJbWFnZURlY29kZXIpe3I9bmV3IEltYWdlRGVjb2Rlcih7ZGF0YTphLHR5cGU6ImltYWdlL2JtcCIscHJlZmVyQW5pbWF0aW9uOiExLHRyYW5zZmVyOlthLmJ1ZmZlcl19KTtzPXIuZGVjb2RlKCkuY2F0Y2goKGU9Pnt3YXJuKGBCTVAgaW1hZ2UgZGVjb2RpbmcgZmFpbGVkOiAke2V9YCk7cmV0dXJuIGNyZWF0ZUltYWdlQml0bWFwKG5ldyBCbG9iKFt0aGlzLl9lbmNvZGVCTVAoKS5idWZmZXJdLHt0eXBlOiJpbWFnZS9ibXAifSkpfSkpLmZpbmFsbHkoKCgpPT57ci5jbG9zZSgpfSkpfWVsc2Ugcz1jcmVhdGVJbWFnZUJpdG1hcChuZXcgQmxvYihbYS5idWZmZXJdLHt0eXBlOiJpbWFnZS9ibXAifSkpO2NvbnN0e01BWF9BUkVBOm4sTUFYX0RJTTpvfT1JbWFnZVJlc2l6ZXIsZz1NYXRoLm1heCh0L28saS9vLE1hdGguc3FydCh0KmkvbikpLGM9TWF0aC5tYXgoZywyKSxsPU1hdGgucm91bmQoMTAqKGcrMS4yNSkpLzEwL2MsaD1NYXRoLmZsb29yKE1hdGgubG9nMihsKSksQz1uZXcgQXJyYXkoaCsyKS5maWxsKDIpO0NbMF09YztDLnNwbGljZSgtMSwxLGwvKDE8PGgpKTtsZXQgUT10LEU9aTtjb25zdCB1PWF3YWl0IHM7bGV0IGQ9dS5pbWFnZXx8dTtmb3IoY29uc3QgZSBvZiBDKXtjb25zdCB0PVEsaT1FO1E9TWF0aC5mbG9vcihRL2UpLTE7RT1NYXRoLmZsb29yKEUvZSktMTtjb25zdCBhPW5ldyBPZmZzY3JlZW5DYW52YXMoUSxFKTthLmdldENvbnRleHQoIjJkIikuZHJhd0ltYWdlKGQsMCwwLHQsaSwwLDAsUSxFKTtkLmNsb3NlKCk7ZD1hLnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpfWUuZGF0YT1udWxsO2UuYml0bWFwPWQ7ZS53aWR0aD1RO2UuaGVpZ2h0PUU7cmV0dXJuIGV9I04oKXtjb25zdHtfaW1nRGF0YTplfT10aGlzLHtkYXRhOnQsd2lkdGg6aSxoZWlnaHQ6YSxraW5kOnJ9PWUscz1pKmEqNCxuPU1hdGguY2VpbChNYXRoLmxvZzIocy95dCkpLG89aT4+bixnPWE+Pm47bGV0IGMsbD1hO3RyeXtjPW5ldyBVaW50OEFycmF5KHMpfWNhdGNoe2xldCBlPU1hdGguZmxvb3IoTWF0aC5sb2cyKHMrMSkpO2Zvcig7Oyl0cnl7Yz1uZXcgVWludDhBcnJheSgyKiplLTEpO2JyZWFrfWNhdGNoe2UtPTF9bD1NYXRoLmZsb29yKCgyKiplLTEpLyg0KmkpKTtjb25zdCB0PWkqbCo0O3Q8Yy5sZW5ndGgmJihjPW5ldyBVaW50OEFycmF5KHQpKX1jb25zdCBoPW5ldyBVaW50MzJBcnJheShjLmJ1ZmZlciksQz1uZXcgVWludDMyQXJyYXkobypnKTtsZXQgUT0wLEU9MDtjb25zdCB1PU1hdGguY2VpbChhL2wpLGQ9YSVsPT0wP2E6YSVsO2ZvcihsZXQgZT0wO2U8dTtlKyspe2NvbnN0IGE9ZTx1LTE/bDpkOyh7c3JjUG9zOlF9PWNvbnZlcnRUb1JHQkEoe2tpbmQ6cixzcmM6dCxkZXN0Omgsd2lkdGg6aSxoZWlnaHQ6YSxpbnZlcnNlRGVjb2RlOnRoaXMuX2lzTWFzayxzcmNQb3M6UX0pKTtmb3IobGV0IGU9MCx0PWE+Pm47ZTx0O2UrKyl7Y29uc3QgdD1oLnN1YmFycmF5KChlPDxuKSppKTtmb3IobGV0IGU9MDtlPG87ZSsrKUNbRSsrXT10W2U8PG5dfX1pZihJbWFnZVJlc2l6ZXIubmVlZHNUb0JlUmVzaXplZChvLGcpKXtlLmRhdGE9QztlLndpZHRoPW87ZS5oZWlnaHQ9ZztlLmtpbmQ9UjtyZXR1cm4gbnVsbH1jb25zdCBmPW5ldyBPZmZzY3JlZW5DYW52YXMobyxnKTtmLmdldENvbnRleHQoIjJkIix7d2lsbFJlYWRGcmVxdWVudGx5OiEwfSkucHV0SW1hZ2VEYXRhKG5ldyBJbWFnZURhdGEobmV3IFVpbnQ4Q2xhbXBlZEFycmF5KEMuYnVmZmVyKSxvLGcpLDAsMCk7ZS5kYXRhPW51bGw7ZS5iaXRtYXA9Zi50cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKTtlLndpZHRoPW87ZS5oZWlnaHQ9ZztyZXR1cm4gZX1fZW5jb2RlQk1QKCl7Y29uc3R7d2lkdGg6ZSxoZWlnaHQ6dCxraW5kOml9PXRoaXMuX2ltZ0RhdGE7bGV0IGEscj10aGlzLl9pbWdEYXRhLmRhdGEscz1uZXcgVWludDhBcnJheSgwKSxuPXMsbz0wO3N3aXRjaChpKXtjYXNlIFM6e2E9MTtzPW5ldyBVaW50OEFycmF5KHRoaXMuX2lzTWFzaz9bMjU1LDI1NSwyNTUsMjU1LDAsMCwwLDBdOlswLDAsMCwwLDI1NSwyNTUsMjU1LDI1NV0pO2NvbnN0IGk9ZSs3Pj4zLG49aSszJi00O2lmKGkhPT1uKXtjb25zdCBlPW5ldyBVaW50OEFycmF5KG4qdCk7bGV0IGE9MDtmb3IobGV0IHM9MCxvPXQqaTtzPG87cys9aSxhKz1uKWUuc2V0KHIuc3ViYXJyYXkocyxzK2kpLGEpO3I9ZX1icmVha31jYXNlIGs6YT0yNDtpZigzJmUpe2NvbnN0IGk9MyplLGE9aSszJi00LHM9YS1pLG49bmV3IFVpbnQ4QXJyYXkoYSp0KTtsZXQgbz0wO2ZvcihsZXQgZT0wLGE9dCppO2U8YTtlKz1pKXtjb25zdCB0PXIuc3ViYXJyYXkoZSxlK2kpO2ZvcihsZXQgZT0wO2U8aTtlKz0zKXtuW28rK109dFtlKzJdO25bbysrXT10W2UrMV07bltvKytdPXRbZV19bys9c31yPW59ZWxzZSBmb3IobGV0IGU9MCx0PXIubGVuZ3RoO2U8dDtlKz0zKXtjb25zdCB0PXJbZV07cltlXT1yW2UrMl07cltlKzJdPXR9YnJlYWs7Y2FzZSBSOmE9MzI7bz0zO249bmV3IFVpbnQ4QXJyYXkoNjgpO2NvbnN0IGk9bmV3IERhdGFWaWV3KG4uYnVmZmVyKTtpZihGZWF0dXJlVGVzdC5pc0xpdHRsZUVuZGlhbil7aS5zZXRVaW50MzIoMCwyNTUsITApO2kuc2V0VWludDMyKDQsNjUyODAsITApO2kuc2V0VWludDMyKDgsMTY3MTE2ODAsITApO2kuc2V0VWludDMyKDEyLDQyNzgxOTAwODAsITApfWVsc2V7aS5zZXRVaW50MzIoMCw0Mjc4MTkwMDgwLCEwKTtpLnNldFVpbnQzMig0LDE2NzExNjgwLCEwKTtpLnNldFVpbnQzMig4LDY1MjgwLCEwKTtpLnNldFVpbnQzMigxMiwyNTUsITApfWJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGZvcm1hdCIpfWxldCBnPTA7Y29uc3QgYz00MCtuLmxlbmd0aCxsPTE0K2Mrcy5sZW5ndGgrci5sZW5ndGgsaD1uZXcgVWludDhBcnJheShsKSxDPW5ldyBEYXRhVmlldyhoLmJ1ZmZlcik7Qy5zZXRVaW50MTYoZywxOTc3OCwhMCk7Zys9MjtDLnNldFVpbnQzMihnLGwsITApO2crPTQ7Qy5zZXRVaW50MzIoZywwLCEwKTtnKz00O0Muc2V0VWludDMyKGcsMTQrYytzLmxlbmd0aCwhMCk7Zys9NDtDLnNldFVpbnQzMihnLGMsITApO2crPTQ7Qy5zZXRJbnQzMihnLGUsITApO2crPTQ7Qy5zZXRJbnQzMihnLC10LCEwKTtnKz00O0Muc2V0VWludDE2KGcsMSwhMCk7Zys9MjtDLnNldFVpbnQxNihnLGEsITApO2crPTI7Qy5zZXRVaW50MzIoZyxvLCEwKTtnKz00O0Muc2V0VWludDMyKGcsMCwhMCk7Zys9NDtDLnNldEludDMyKGcsMCwhMCk7Zys9NDtDLnNldEludDMyKGcsMCwhMCk7Zys9NDtDLnNldFVpbnQzMihnLHMubGVuZ3RoLzQsITApO2crPTQ7Qy5zZXRVaW50MzIoZywwLCEwKTtnKz00O2guc2V0KG4sZyk7Zys9bi5sZW5ndGg7aC5zZXQocyxnKTtnKz1zLmxlbmd0aDtoLnNldChyLGcpO3JldHVybiBofX1jb25zdCB1cj0zMjg1Mzc3NTIwLGRyPTQyOTQ5MDE3NjAsZnI9NjU1MzU7Y2xhc3MgTXVybXVySGFzaDNfNjR7Y29uc3RydWN0b3IoZSl7dGhpcy5oMT1lPzQyOTQ5NjcyOTUmZTp1cjt0aGlzLmgyPWU/NDI5NDk2NzI5NSZlOnVyfXVwZGF0ZShlKXtsZXQgdCxpO2lmKCJzdHJpbmciPT10eXBlb2YgZSl7dD1uZXcgVWludDhBcnJheSgyKmUubGVuZ3RoKTtpPTA7Zm9yKGxldCBhPTAscj1lLmxlbmd0aDthPHI7YSsrKXtjb25zdCByPWUuY2hhckNvZGVBdChhKTtpZihyPD0yNTUpdFtpKytdPXI7ZWxzZXt0W2krK109cj4+Pjg7dFtpKytdPTI1NSZyfX19ZWxzZXtpZighQXJyYXlCdWZmZXIuaXNWaWV3KGUpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBkYXRhIGZvcm1hdCwgbXVzdCBiZSBhIHN0cmluZyBvciBUeXBlZEFycmF5LiIpO3Q9ZS5zbGljZSgpO2k9dC5ieXRlTGVuZ3RofWNvbnN0IGE9aT4+MixyPWktNCphLHM9bmV3IFVpbnQzMkFycmF5KHQuYnVmZmVyLDAsYSk7bGV0IG49MCxvPTAsZz10aGlzLmgxLGM9dGhpcy5oMjtjb25zdCBsPTM0MzI5MTgzNTMsaD00NjE4NDU5MDcsQz0xMTYwMSxRPTEzNzE1O2ZvcihsZXQgZT0wO2U8YTtlKyspaWYoMSZlKXtuPXNbZV07bj1uKmwmZHJ8bipDJmZyO249bjw8MTV8bj4+PjE3O249bipoJmRyfG4qUSZmcjtnXj1uO2c9Zzw8MTN8Zz4+PjE5O2c9NSpnKzM4NjQyOTIxOTZ9ZWxzZXtvPXNbZV07bz1vKmwmZHJ8bypDJmZyO289bzw8MTV8bz4+PjE3O289bypoJmRyfG8qUSZmcjtjXj1vO2M9Yzw8MTN8Yz4+PjE5O2M9NSpjKzM4NjQyOTIxOTZ9bj0wO3N3aXRjaChyKXtjYXNlIDM6bl49dFs0KmErMl08PDE2O2Nhc2UgMjpuXj10WzQqYSsxXTw8ODtjYXNlIDE6bl49dFs0KmFdO249bipsJmRyfG4qQyZmcjtuPW48PDE1fG4+Pj4xNztuPW4qaCZkcnxuKlEmZnI7MSZhP2dePW46Y149bn10aGlzLmgxPWc7dGhpcy5oMj1jfWhleGRpZ2VzdCgpe2xldCBlPXRoaXMuaDEsdD10aGlzLmgyO2VePXQ+Pj4xO2U9Mzk4MTgwNjc5NyplJmRyfDM2MDQ1KmUmZnI7dD00MjgzNTQzNTExKnQmZHJ8KDI5NTAxNjM3OTcqKHQ8PDE2fGU+Pj4xNikmZHIpPj4+MTY7ZV49dD4+PjE7ZT00NDQ5ODQ0MDMqZSZkcnw2MDQ5OSplJmZyO3Q9MzMwMTg4MjM2Nip0JmRyfCgzMTIwNDM3ODkzKih0PDwxNnxlPj4+MTYpJmRyKT4+PjE2O2VePXQ+Pj4xO3JldHVybihlPj4+MCkudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDgsIjAiKSsodD4+PjApLnRvU3RyaW5nKDE2KS5wYWRTdGFydCg4LCIwIil9fWZ1bmN0aW9uIGFkZFN0YXRlKGUsdCxpLGEscil7bGV0IHM9ZTtmb3IobGV0IGU9MCxpPXQubGVuZ3RoLTE7ZTxpO2UrKyl7Y29uc3QgaT10W2VdO3M9c1tpXXx8PVtdfXNbdC5hdCgtMSldPXtjaGVja0ZuOmksaXRlcmF0ZUZuOmEscHJvY2Vzc0ZuOnJ9fWNvbnN0IHByPVtdO2FkZFN0YXRlKHByLFt4QSxIQSxBdCxMQV0sbnVsbCwoZnVuY3Rpb24gaXRlcmF0ZUlubGluZUltYWdlR3JvdXAoZSx0KXtjb25zdCBpPWUuZm5BcnJheSxhPSh0LShlLmlDdXJyLTMpKSU0O3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuIGlbdF09PT14QTtjYXNlIDE6cmV0dXJuIGlbdF09PT1IQTtjYXNlIDI6cmV0dXJuIGlbdF09PT1BdDtjYXNlIDM6cmV0dXJuIGlbdF09PT1MQX10aHJvdyBuZXcgRXJyb3IoYGl0ZXJhdGVJbmxpbmVJbWFnZUdyb3VwIC0gaW52YWxpZCBwb3M6ICR7YX1gKX0pLChmdW5jdGlvbiBmb3VuZElubGluZUltYWdlR3JvdXAoZSx0KXtjb25zdCBpPWUuZm5BcnJheSxhPWUuYXJnc0FycmF5LHI9ZS5pQ3VycixzPXItMyxuPXItMixvPXItMSxnPU1hdGgubWluKE1hdGguZmxvb3IoKHQtcykvNCksMjAwKTtpZihnPDEwKXJldHVybiB0LSh0LXMpJTQ7bGV0IGM9MDtjb25zdCBsPVtdO2xldCBoPTAsQz0xLFE9MTtmb3IobGV0IGU9MDtlPGc7ZSsrKXtjb25zdCB0PWFbbisoZTw8MildLGk9YVtvKyhlPDwyKV1bMF07aWYoQytpLndpZHRoPjFlMyl7Yz1NYXRoLm1heChjLEMpO1ErPWgrMjtDPTA7aD0wfWwucHVzaCh7dHJhbnNmb3JtOnQseDpDLHk6USx3Omkud2lkdGgsaDppLmhlaWdodH0pO0MrPWkud2lkdGgrMjtoPU1hdGgubWF4KGgsaS5oZWlnaHQpfWNvbnN0IEU9TWF0aC5tYXgoYyxDKSsxLHU9UStoKzEsZD1uZXcgVWludDhBcnJheShFKnUqNCksZj1FPDwyO2ZvcihsZXQgZT0wO2U8ZztlKyspe2NvbnN0IHQ9YVtvKyhlPDwyKV1bMF0uZGF0YSxpPWxbZV0udzw8MjtsZXQgcj0wLHM9bFtlXS54K2xbZV0ueSpFPDwyO2Quc2V0KHQuc3ViYXJyYXkoMCxpKSxzLWYpO2ZvcihsZXQgYT0wLG49bFtlXS5oO2E8bjthKyspe2Quc2V0KHQuc3ViYXJyYXkocixyK2kpLHMpO3IrPWk7cys9Zn1kLnNldCh0LnN1YmFycmF5KHItaSxyKSxzKTtmb3IoO3M+PTA7KXt0W3MtNF09dFtzXTt0W3MtM109dFtzKzFdO3Rbcy0yXT10W3MrMl07dFtzLTFdPXRbcyszXTt0W3MraV09dFtzK2ktNF07dFtzK2krMV09dFtzK2ktM107dFtzK2krMl09dFtzK2ktMl07dFtzK2krM109dFtzK2ktMV07cy09Zn19Y29uc3QgcD17d2lkdGg6RSxoZWlnaHQ6dX07aWYoZS5pc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZCl7Y29uc3QgZT1uZXcgT2Zmc2NyZWVuQ2FudmFzKEUsdSk7ZS5nZXRDb250ZXh0KCIyZCIpLnB1dEltYWdlRGF0YShuZXcgSW1hZ2VEYXRhKG5ldyBVaW50OENsYW1wZWRBcnJheShkLmJ1ZmZlciksRSx1KSwwLDApO3AuYml0bWFwPWUudHJhbnNmZXJUb0ltYWdlQml0bWFwKCk7cC5kYXRhPW51bGx9ZWxzZXtwLmtpbmQ9UjtwLmRhdGE9ZH1pLnNwbGljZShzLDQqZyxldCk7YS5zcGxpY2Uocyw0KmcsW3AsbF0pO3JldHVybiBzKzF9KSk7YWRkU3RhdGUocHIsW3hBLEhBLF9lLExBXSxudWxsLChmdW5jdGlvbiBpdGVyYXRlSW1hZ2VNYXNrR3JvdXAoZSx0KXtjb25zdCBpPWUuZm5BcnJheSxhPSh0LShlLmlDdXJyLTMpKSU0O3N3aXRjaChhKXtjYXNlIDA6cmV0dXJuIGlbdF09PT14QTtjYXNlIDE6cmV0dXJuIGlbdF09PT1IQTtjYXNlIDI6cmV0dXJuIGlbdF09PT1fZTtjYXNlIDM6cmV0dXJuIGlbdF09PT1MQX10aHJvdyBuZXcgRXJyb3IoYGl0ZXJhdGVJbWFnZU1hc2tHcm91cCAtIGludmFsaWQgcG9zOiAke2F9YCl9KSwoZnVuY3Rpb24gZm91bmRJbWFnZU1hc2tHcm91cChlLHQpe2NvbnN0IGk9ZS5mbkFycmF5LGE9ZS5hcmdzQXJyYXkscj1lLmlDdXJyLHM9ci0zLG49ci0yLG89ci0xO2xldCBnPU1hdGguZmxvb3IoKHQtcykvNCk7aWYoZzwxMClyZXR1cm4gdC0odC1zKSU0O2xldCBjLGwsaD0hMTtjb25zdCBDPWFbb11bMF0sUT1hW25dWzBdLEU9YVtuXVsxXSx1PWFbbl1bMl0sZD1hW25dWzNdO2lmKEU9PT11KXtoPSEwO2M9bis0O2xldCBlPW8rNDtmb3IobGV0IHQ9MTt0PGc7dCsrLGMrPTQsZSs9NCl7bD1hW2NdO2lmKGFbZV1bMF0hPT1DfHxsWzBdIT09UXx8bFsxXSE9PUV8fGxbMl0hPT11fHxsWzNdIT09ZCl7dDwxMD9oPSExOmc9dDticmVha319fWlmKGgpe2c9TWF0aC5taW4oZywxZTMpO2NvbnN0IGU9bmV3IEZsb2F0MzJBcnJheSgyKmcpO2M9bjtmb3IobGV0IHQ9MDt0PGc7dCsrLGMrPTQpe2w9YVtjXTtlW3Q8PDFdPWxbNF07ZVsxKyh0PDwxKV09bFs1XX1pLnNwbGljZShzLDQqZyxpdCk7YS5zcGxpY2Uocyw0KmcsW0MsUSxFLHUsZCxlXSl9ZWxzZXtnPU1hdGgubWluKGcsMTAwKTtjb25zdCBlPVtdO2ZvcihsZXQgdD0wO3Q8Zzt0Kyspe2w9YVtuKyh0PDwyKV07Y29uc3QgaT1hW28rKHQ8PDIpXVswXTtlLnB1c2goe2RhdGE6aS5kYXRhLHdpZHRoOmkud2lkdGgsaGVpZ2h0OmkuaGVpZ2h0LGludGVycG9sYXRlOmkuaW50ZXJwb2xhdGUsY291bnQ6aS5jb3VudCx0cmFuc2Zvcm06bH0pfWkuc3BsaWNlKHMsNCpnLHplKTthLnNwbGljZShzLDQqZyxbZV0pfXJldHVybiBzKzF9KSk7YWRkU3RhdGUocHIsW3hBLEhBLCRlLExBXSwoZnVuY3Rpb24oZSl7Y29uc3QgdD1lLmFyZ3NBcnJheSxpPWUuaUN1cnItMjtyZXR1cm4gMD09PXRbaV1bMV0mJjA9PT10W2ldWzJdfSksKGZ1bmN0aW9uIGl0ZXJhdGVJbWFnZUdyb3VwKGUsdCl7Y29uc3QgaT1lLmZuQXJyYXksYT1lLmFyZ3NBcnJheSxyPSh0LShlLmlDdXJyLTMpKSU0O3N3aXRjaChyKXtjYXNlIDA6cmV0dXJuIGlbdF09PT14QTtjYXNlIDE6aWYoaVt0XSE9PUhBKXJldHVybiExO2NvbnN0IHI9ZS5pQ3Vyci0yLHM9YVtyXVswXSxuPWFbcl1bM107cmV0dXJuIGFbdF1bMF09PT1zJiYwPT09YVt0XVsxXSYmMD09PWFbdF1bMl0mJmFbdF1bM109PT1uO2Nhc2UgMjppZihpW3RdIT09JGUpcmV0dXJuITE7Y29uc3Qgbz1hW2UuaUN1cnItMV1bMF07cmV0dXJuIGFbdF1bMF09PT1vO2Nhc2UgMzpyZXR1cm4gaVt0XT09PUxBfXRocm93IG5ldyBFcnJvcihgaXRlcmF0ZUltYWdlR3JvdXAgLSBpbnZhbGlkIHBvczogJHtyfWApfSksKGZ1bmN0aW9uKGUsdCl7Y29uc3QgaT1lLmZuQXJyYXksYT1lLmFyZ3NBcnJheSxyPWUuaUN1cnIscz1yLTMsbj1yLTIsbz1hW3ItMV1bMF0sZz1hW25dWzBdLGM9YVtuXVszXSxsPU1hdGgubWluKE1hdGguZmxvb3IoKHQtcykvNCksMWUzKTtpZihsPDMpcmV0dXJuIHQtKHQtcyklNDtjb25zdCBoPW5ldyBGbG9hdDMyQXJyYXkoMipsKTtsZXQgQz1uO2ZvcihsZXQgZT0wO2U8bDtlKyssQys9NCl7Y29uc3QgdD1hW0NdO2hbZTw8MV09dFs0XTtoWzErKGU8PDEpXT10WzVdfWNvbnN0IFE9W28sZyxjLGhdO2kuc3BsaWNlKHMsNCpsLHR0KTthLnNwbGljZShzLDQqbCxRKTtyZXR1cm4gcysxfSkpO2FkZFN0YXRlKHByLFt0ZSxvZSxoZSxCZSxpZV0sbnVsbCwoZnVuY3Rpb24gaXRlcmF0ZVNob3dUZXh0R3JvdXAoZSx0KXtjb25zdCBpPWUuZm5BcnJheSxhPWUuYXJnc0FycmF5LHI9KHQtKGUuaUN1cnItNCkpJTU7c3dpdGNoKHIpe2Nhc2UgMDpyZXR1cm4gaVt0XT09PXRlO2Nhc2UgMTpyZXR1cm4gaVt0XT09PW9lO2Nhc2UgMjpyZXR1cm4gaVt0XT09PWhlO2Nhc2UgMzppZihpW3RdIT09QmUpcmV0dXJuITE7Y29uc3Qgcj1lLmlDdXJyLTMscz1hW3JdWzBdLG49YVtyXVsxXTtyZXR1cm4gYVt0XVswXT09PXMmJmFbdF1bMV09PT1uO2Nhc2UgNDpyZXR1cm4gaVt0XT09PWllfXRocm93IG5ldyBFcnJvcihgaXRlcmF0ZVNob3dUZXh0R3JvdXAgLSBpbnZhbGlkIHBvczogJHtyfWApfSksKGZ1bmN0aW9uKGUsdCl7Y29uc3QgaT1lLmZuQXJyYXksYT1lLmFyZ3NBcnJheSxyPWUuaUN1cnIscz1yLTQsbj1yLTMsbz1yLTIsZz1yLTEsYz1yLGw9YVtuXVswXSxoPWFbbl1bMV07bGV0IEM9TWF0aC5taW4oTWF0aC5mbG9vcigodC1zKS81KSwxZTMpO2lmKEM8MylyZXR1cm4gdC0odC1zKSU1O2xldCBRPXM7aWYocz49NCYmaVtzLTRdPT09aVtuXSYmaVtzLTNdPT09aVtvXSYmaVtzLTJdPT09aVtnXSYmaVtzLTFdPT09aVtjXSYmYVtzLTRdWzBdPT09bCYmYVtzLTRdWzFdPT09aCl7QysrO1EtPTV9bGV0IEU9USs0O2ZvcihsZXQgZT0xO2U8QztlKyspe2kuc3BsaWNlKEUsMyk7YS5zcGxpY2UoRSwzKTtFKz0yfXJldHVybiBFKzF9KSk7Y2xhc3MgTnVsbE9wdGltaXplcntjb25zdHJ1Y3RvcihlKXt0aGlzLnF1ZXVlPWV9X29wdGltaXplKCl7fXB1c2goZSx0KXt0aGlzLnF1ZXVlLmZuQXJyYXkucHVzaChlKTt0aGlzLnF1ZXVlLmFyZ3NBcnJheS5wdXNoKHQpO3RoaXMuX29wdGltaXplKCl9Zmx1c2goKXt9cmVzZXQoKXt9fWNsYXNzIFF1ZXVlT3B0aW1pemVyIGV4dGVuZHMgTnVsbE9wdGltaXplcntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTt0aGlzLnN0YXRlPW51bGw7dGhpcy5jb250ZXh0PXtpQ3VycjowLGZuQXJyYXk6ZS5mbkFycmF5LGFyZ3NBcnJheTplLmFyZ3NBcnJheSxpc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZDohMX07dGhpcy5tYXRjaD1udWxsO3RoaXMubGFzdFByb2Nlc3NlZD0wfXNldCBpc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZChlKXt0aGlzLmNvbnRleHQuaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQ9ZX1fb3B0aW1pemUoKXtjb25zdCBlPXRoaXMucXVldWUuZm5BcnJheTtsZXQgdD10aGlzLmxhc3RQcm9jZXNzZWQsaT1lLmxlbmd0aCxhPXRoaXMuc3RhdGUscj10aGlzLm1hdGNoO2lmKCFhJiYhciYmdCsxPT09aSYmIXByW2VbdF1dKXt0aGlzLmxhc3RQcm9jZXNzZWQ9aTtyZXR1cm59Y29uc3Qgcz10aGlzLmNvbnRleHQ7Zm9yKDt0PGk7KXtpZihyKXtpZigoMCxyLml0ZXJhdGVGbikocyx0KSl7dCsrO2NvbnRpbnVlfXQ9KDAsci5wcm9jZXNzRm4pKHMsdCsxKTtpPWUubGVuZ3RoO3I9bnVsbDthPW51bGw7aWYodD49aSlicmVha31hPShhfHxwcilbZVt0XV07aWYoYSYmIUFycmF5LmlzQXJyYXkoYSkpe3MuaUN1cnI9dDt0Kys7aWYoIWEuY2hlY2tGbnx8KDAsYS5jaGVja0ZuKShzKSl7cj1hO2E9bnVsbH1lbHNlIGE9bnVsbH1lbHNlIHQrK310aGlzLnN0YXRlPWE7dGhpcy5tYXRjaD1yO3RoaXMubGFzdFByb2Nlc3NlZD10fWZsdXNoKCl7Zm9yKDt0aGlzLm1hdGNoOyl7Y29uc3QgZT10aGlzLnF1ZXVlLmZuQXJyYXkubGVuZ3RoO3RoaXMubGFzdFByb2Nlc3NlZD0oMCx0aGlzLm1hdGNoLnByb2Nlc3NGbikodGhpcy5jb250ZXh0LGUpO3RoaXMubWF0Y2g9bnVsbDt0aGlzLnN0YXRlPW51bGw7dGhpcy5fb3B0aW1pemUoKX19cmVzZXQoKXt0aGlzLnN0YXRlPW51bGw7dGhpcy5tYXRjaD1udWxsO3RoaXMubGFzdFByb2Nlc3NlZD0wfX1jbGFzcyBPcGVyYXRvckxpc3R7c3RhdGljIENIVU5LX1NJWkU9MWUzO3N0YXRpYyBDSFVOS19TSVpFX0FCT1VUPXRoaXMuQ0hVTktfU0laRS01O2NvbnN0cnVjdG9yKGU9MCx0KXt0aGlzLl9zdHJlYW1TaW5rPXQ7dGhpcy5mbkFycmF5PVtdO3RoaXMuYXJnc0FycmF5PVtdO3RoaXMub3B0aW1pemVyPSF0fHxlJnU/bmV3IE51bGxPcHRpbWl6ZXIodGhpcyk6bmV3IFF1ZXVlT3B0aW1pemVyKHRoaXMpO3RoaXMuZGVwZW5kZW5jaWVzPW5ldyBTZXQ7dGhpcy5fdG90YWxMZW5ndGg9MDt0aGlzLndlaWdodD0wO3RoaXMuX3Jlc29sdmVkPXQ/bnVsbDpQcm9taXNlLnJlc29sdmUoKX1zZXQgaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQoZSl7dGhpcy5vcHRpbWl6ZXIuaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQ9ZX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuYXJnc0FycmF5Lmxlbmd0aH1nZXQgcmVhZHkoKXtyZXR1cm4gdGhpcy5fcmVzb2x2ZWR8fHRoaXMuX3N0cmVhbVNpbmsucmVhZHl9Z2V0IHRvdGFsTGVuZ3RoKCl7cmV0dXJuIHRoaXMuX3RvdGFsTGVuZ3RoK3RoaXMubGVuZ3RofWFkZE9wKGUsdCl7dGhpcy5vcHRpbWl6ZXIucHVzaChlLHQpO3RoaXMud2VpZ2h0Kys7dGhpcy5fc3RyZWFtU2luayYmKHRoaXMud2VpZ2h0Pj1PcGVyYXRvckxpc3QuQ0hVTktfU0laRXx8dGhpcy53ZWlnaHQ+PU9wZXJhdG9yTGlzdC5DSFVOS19TSVpFX0FCT1VUJiYoZT09PUxBfHxlPT09aWUpKSYmdGhpcy5mbHVzaCgpfWFkZEltYWdlT3BzKGUsdCxpLGE9ITEpe2lmKGEpe3RoaXMuYWRkT3AoeEEpO3RoaXMuYWRkT3AoVUEsW1tbIlNNYXNrIiwhMV1dXSl9dm9pZCAwIT09aSYmdGhpcy5hZGRPcChLZSxbIk9DIixpXSk7dGhpcy5hZGRPcChlLHQpO3ZvaWQgMCE9PWkmJnRoaXMuYWRkT3AoVGUsW10pO2EmJnRoaXMuYWRkT3AoTEEpfWFkZERlcGVuZGVuY3koZSl7aWYoIXRoaXMuZGVwZW5kZW5jaWVzLmhhcyhlKSl7dGhpcy5kZXBlbmRlbmNpZXMuYWRkKGUpO3RoaXMuYWRkT3AoREEsW2VdKX19YWRkRGVwZW5kZW5jaWVzKGUpe2Zvcihjb25zdCB0IG9mIGUpdGhpcy5hZGREZXBlbmRlbmN5KHQpfWFkZE9wTGlzdChlKXtpZihlIGluc3RhbmNlb2YgT3BlcmF0b3JMaXN0KXtmb3IoY29uc3QgdCBvZiBlLmRlcGVuZGVuY2llcyl0aGlzLmRlcGVuZGVuY2llcy5hZGQodCk7Zm9yKGxldCB0PTAsaT1lLmxlbmd0aDt0PGk7dCsrKXRoaXMuYWRkT3AoZS5mbkFycmF5W3RdLGUuYXJnc0FycmF5W3RdKX1lbHNlIHdhcm4oJ2FkZE9wTGlzdCAtIGlnbm9yaW5nIGludmFsaWQgIm9wTGlzdCIgcGFyYW1ldGVyLicpfWdldElSKCl7cmV0dXJue2ZuQXJyYXk6dGhpcy5mbkFycmF5LGFyZ3NBcnJheTp0aGlzLmFyZ3NBcnJheSxsZW5ndGg6dGhpcy5sZW5ndGh9fWdldCBfdHJhbnNmZXJzKCl7Y29uc3QgZT1bXSx7Zm5BcnJheTp0LGFyZ3NBcnJheTppLGxlbmd0aDphfT10aGlzO2ZvcihsZXQgcj0wO3I8YTtyKyspc3dpdGNoKHRbcl0pe2Nhc2UgQXQ6Y2FzZSBldDpjYXNlIF9lOmNvbnN0IHQ9aVtyXVswXTshdC5jYWNoZWQmJnQuZGF0YT8uYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXImJmUucHVzaCh0LmRhdGEuYnVmZmVyKX1yZXR1cm4gZX1mbHVzaChlPSExLHQ9bnVsbCl7dGhpcy5vcHRpbWl6ZXIuZmx1c2goKTtjb25zdCBpPXRoaXMubGVuZ3RoO3RoaXMuX3RvdGFsTGVuZ3RoKz1pO3RoaXMuX3N0cmVhbVNpbmsuZW5xdWV1ZSh7Zm5BcnJheTp0aGlzLmZuQXJyYXksYXJnc0FycmF5OnRoaXMuYXJnc0FycmF5LGxhc3RDaHVuazplLHNlcGFyYXRlQW5ub3RzOnQsbGVuZ3RoOml9LDEsdGhpcy5fdHJhbnNmZXJzKTt0aGlzLmRlcGVuZGVuY2llcy5jbGVhcigpO3RoaXMuZm5BcnJheS5sZW5ndGg9MDt0aGlzLmFyZ3NBcnJheS5sZW5ndGg9MDt0aGlzLndlaWdodD0wO3RoaXMub3B0aW1pemVyLnJlc2V0KCl9fWZ1bmN0aW9uIGRlY29kZUFuZENsYW1wKGUsdCxpLGEpeyhlPXQrZSppKTwwP2U9MDplPmEmJihlPWEpO3JldHVybiBlfWZ1bmN0aW9uIHJlc2l6ZUltYWdlTWFzayhlLHQsaSxhLHIscyl7Y29uc3Qgbj1yKnM7bGV0IG87bz10PD04P25ldyBVaW50OEFycmF5KG4pOnQ8PTE2P25ldyBVaW50MTZBcnJheShuKTpuZXcgVWludDMyQXJyYXkobik7Y29uc3QgZz1pL3IsYz1hL3M7bGV0IGwsaCxDLFEsRT0wO2NvbnN0IHU9bmV3IFVpbnQxNkFycmF5KHIpLGQ9aTtmb3IobD0wO2w8cjtsKyspdVtsXT1NYXRoLmZsb29yKGwqZyk7Zm9yKGw9MDtsPHM7bCsrKXtDPU1hdGguZmxvb3IobCpjKSpkO2ZvcihoPTA7aDxyO2grKyl7UT1DK3VbaF07b1tFKytdPWVbUV19fXJldHVybiBvfWNsYXNzIFBERkltYWdle2NvbnN0cnVjdG9yKHt4cmVmOmUscmVzOnQsaW1hZ2U6aSxpc0lubGluZTphPSExLHNtYXNrOnI9bnVsbCxtYXNrOnM9bnVsbCxpc01hc2s6bj0hMSxwZGZGdW5jdGlvbkZhY3Rvcnk6byxsb2NhbENvbG9yU3BhY2VDYWNoZTpnfSl7dGhpcy5pbWFnZT1pO2NvbnN0IGM9aS5kaWN0LGw9Yy5nZXQoIkYiLCJGaWx0ZXIiKTtsZXQgaDtpZihsIGluc3RhbmNlb2YgTmFtZSloPWwubmFtZTtlbHNlIGlmKEFycmF5LmlzQXJyYXkobCkpe2NvbnN0IHQ9ZS5mZXRjaElmUmVmKGxbMF0pO3QgaW5zdGFuY2VvZiBOYW1lJiYoaD10Lm5hbWUpfXN3aXRjaChoKXtjYXNlIkpQWERlY29kZSI6KHt3aWR0aDppLndpZHRoLGhlaWdodDppLmhlaWdodCxjb21wb25lbnRzQ291bnQ6aS5udW1Db21wcyxiaXRzUGVyQ29tcG9uZW50OmkuYml0c1BlckNvbXBvbmVudH09SnB4SW1hZ2UucGFyc2VJbWFnZVByb3BlcnRpZXMoaS5zdHJlYW0pKTtpLnN0cmVhbS5yZXNldCgpO3RoaXMuanB4RGVjb2Rlck9wdGlvbnM9e251bUNvbXBvbmVudHM6MCxpc0luZGV4ZWRDb2xvcm1hcDohMSxzbWFza0luRGF0YTpjLmhhcygiU01hc2tJbkRhdGEiKX07YnJlYWs7Y2FzZSJKQklHMkRlY29kZSI6aS5iaXRzUGVyQ29tcG9uZW50PTE7aS5udW1Db21wcz0xfWxldCBDPWMuZ2V0KCJXIiwiV2lkdGgiKSxRPWMuZ2V0KCJIIiwiSGVpZ2h0Iik7aWYoTnVtYmVyLmlzSW50ZWdlcihpLndpZHRoKSYmaS53aWR0aD4wJiZOdW1iZXIuaXNJbnRlZ2VyKGkuaGVpZ2h0KSYmaS5oZWlnaHQ+MCYmKGkud2lkdGghPT1DfHxpLmhlaWdodCE9PVEpKXt3YXJuKCJQREZJbWFnZSAtIHVzaW5nIHRoZSBXaWR0aC9IZWlnaHQgb2YgdGhlIGltYWdlIGRhdGEsIHJhdGhlciB0aGFuIHRoZSBpbWFnZSBkaWN0aW9uYXJ5LiIpO0M9aS53aWR0aDtRPWkuaGVpZ2h0fWlmKEM8MXx8UTwxKXRocm93IG5ldyBGb3JtYXRFcnJvcihgSW52YWxpZCBpbWFnZSB3aWR0aDogJHtDfSBvciBoZWlnaHQ6ICR7UX1gKTt0aGlzLndpZHRoPUM7dGhpcy5oZWlnaHQ9UTt0aGlzLmludGVycG9sYXRlPWMuZ2V0KCJJIiwiSW50ZXJwb2xhdGUiKTt0aGlzLmltYWdlTWFzaz1jLmdldCgiSU0iLCJJbWFnZU1hc2siKXx8ITE7dGhpcy5tYXR0ZT1jLmdldCgiTWF0dGUiKXx8ITE7bGV0IEU9aS5iaXRzUGVyQ29tcG9uZW50O2lmKCFFKXtFPWMuZ2V0KCJCUEMiLCJCaXRzUGVyQ29tcG9uZW50Iik7aWYoIUUpe2lmKCF0aGlzLmltYWdlTWFzayl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYEJpdHMgcGVyIGNvbXBvbmVudCBtaXNzaW5nIGluIGltYWdlOiAke3RoaXMuaW1hZ2VNYXNrfWApO0U9MX19dGhpcy5icGM9RTtpZighdGhpcy5pbWFnZU1hc2spe2xldCByPWMuZ2V0UmF3KCJDUyIpfHxjLmdldFJhdygiQ29sb3JTcGFjZSIpO2NvbnN0IHM9ISFyO2lmKHMpdGhpcy5qcHhEZWNvZGVyT3B0aW9ucz8uc21hc2tJbkRhdGEmJihyPU5hbWUuZ2V0KCJEZXZpY2VSR0JBIikpO2Vsc2UgaWYodGhpcy5qcHhEZWNvZGVyT3B0aW9ucylyPU5hbWUuZ2V0KCJEZXZpY2VSR0JBIik7ZWxzZSBzd2l0Y2goaS5udW1Db21wcyl7Y2FzZSAxOnI9TmFtZS5nZXQoIkRldmljZUdyYXkiKTticmVhaztjYXNlIDM6cj1OYW1lLmdldCgiRGV2aWNlUkdCIik7YnJlYWs7Y2FzZSA0OnI9TmFtZS5nZXQoIkRldmljZUNNWUsiKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgSW1hZ2VzIHdpdGggJHtpLm51bUNvbXBzfSBjb2xvciBjb21wb25lbnRzIG5vdCBzdXBwb3J0ZWQuYCl9dGhpcy5jb2xvclNwYWNlPUNvbG9yU3BhY2UucGFyc2Uoe2NzOnIseHJlZjplLHJlc291cmNlczphP3Q6bnVsbCxwZGZGdW5jdGlvbkZhY3Rvcnk6byxsb2NhbENvbG9yU3BhY2VDYWNoZTpnfSk7dGhpcy5udW1Db21wcz10aGlzLmNvbG9yU3BhY2UubnVtQ29tcHM7aWYodGhpcy5qcHhEZWNvZGVyT3B0aW9ucyl7dGhpcy5qcHhEZWNvZGVyT3B0aW9ucy5udW1Db21wb25lbnRzPXM/dGhpcy5udW1Db21wOjA7dGhpcy5qcHhEZWNvZGVyT3B0aW9ucy5pc0luZGV4ZWRDb2xvcm1hcD0iSW5kZXhlZCI9PT10aGlzLmNvbG9yU3BhY2UubmFtZX19dGhpcy5kZWNvZGU9Yy5nZXRBcnJheSgiRCIsIkRlY29kZSIpO3RoaXMubmVlZHNEZWNvZGU9ITE7aWYodGhpcy5kZWNvZGUmJih0aGlzLmNvbG9yU3BhY2UmJiF0aGlzLmNvbG9yU3BhY2UuaXNEZWZhdWx0RGVjb2RlKHRoaXMuZGVjb2RlLEUpfHxuJiYhQ29sb3JTcGFjZS5pc0RlZmF1bHREZWNvZGUodGhpcy5kZWNvZGUsMSkpKXt0aGlzLm5lZWRzRGVjb2RlPSEwO2NvbnN0IGU9KDE8PEUpLTE7dGhpcy5kZWNvZGVDb2VmZmljaWVudHM9W107dGhpcy5kZWNvZGVBZGRlbmRzPVtdO2NvbnN0IHQ9IkluZGV4ZWQiPT09dGhpcy5jb2xvclNwYWNlPy5uYW1lO2ZvcihsZXQgaT0wLGE9MDtpPHRoaXMuZGVjb2RlLmxlbmd0aDtpKz0yLCsrYSl7Y29uc3Qgcj10aGlzLmRlY29kZVtpXSxzPXRoaXMuZGVjb2RlW2krMV07dGhpcy5kZWNvZGVDb2VmZmljaWVudHNbYV09dD8ocy1yKS9lOnMtcjt0aGlzLmRlY29kZUFkZGVuZHNbYV09dD9yOmUqcn19aWYocil0aGlzLnNtYXNrPW5ldyBQREZJbWFnZSh7eHJlZjplLHJlczp0LGltYWdlOnIsaXNJbmxpbmU6YSxwZGZGdW5jdGlvbkZhY3Rvcnk6byxsb2NhbENvbG9yU3BhY2VDYWNoZTpnfSk7ZWxzZSBpZihzKWlmKHMgaW5zdGFuY2VvZiBCYXNlU3RyZWFtKXtzLmRpY3QuZ2V0KCJJTSIsIkltYWdlTWFzayIpP3RoaXMubWFzaz1uZXcgUERGSW1hZ2Uoe3hyZWY6ZSxyZXM6dCxpbWFnZTpzLGlzSW5saW5lOmEsaXNNYXNrOiEwLHBkZkZ1bmN0aW9uRmFjdG9yeTpvLGxvY2FsQ29sb3JTcGFjZUNhY2hlOmd9KTp3YXJuKCJJZ25vcmluZyAvTWFzayBpbiBpbWFnZSB3aXRob3V0IC9JbWFnZU1hc2suIil9ZWxzZSB0aGlzLm1hc2s9c31zdGF0aWMgYXN5bmMgYnVpbGRJbWFnZSh7eHJlZjplLHJlczp0LGltYWdlOmksaXNJbmxpbmU6YT0hMSxwZGZGdW5jdGlvbkZhY3Rvcnk6cixsb2NhbENvbG9yU3BhY2VDYWNoZTpzfSl7Y29uc3Qgbj1pO2xldCBvPW51bGwsZz1udWxsO2NvbnN0IGM9aS5kaWN0LmdldCgiU01hc2siKSxsPWkuZGljdC5nZXQoIk1hc2siKTtjP2MgaW5zdGFuY2VvZiBCYXNlU3RyZWFtP289Yzp3YXJuKCJVbnN1cHBvcnRlZCAvU01hc2sgZm9ybWF0LiIpOmwmJihsIGluc3RhbmNlb2YgQmFzZVN0cmVhbXx8QXJyYXkuaXNBcnJheShsKT9nPWw6d2FybigiVW5zdXBwb3J0ZWQgL01hc2sgZm9ybWF0LiIpKTtyZXR1cm4gbmV3IFBERkltYWdlKHt4cmVmOmUscmVzOnQsaW1hZ2U6bixpc0lubGluZTphLHNtYXNrOm8sbWFzazpnLHBkZkZ1bmN0aW9uRmFjdG9yeTpyLGxvY2FsQ29sb3JTcGFjZUNhY2hlOnN9KX1zdGF0aWMgY3JlYXRlUmF3TWFzayh7aW1nQXJyYXk6ZSx3aWR0aDp0LGhlaWdodDppLGltYWdlSXNGcm9tRGVjb2RlU3RyZWFtOmEsaW52ZXJzZURlY29kZTpyLGludGVycG9sYXRlOnN9KXtjb25zdCBuPSh0Kzc+PjMpKmksbz1lLmJ5dGVMZW5ndGg7bGV0IGcsYztpZighYXx8ciYmIShuPT09bykpaWYocil7Zz1uZXcgVWludDhBcnJheShuKTtnLnNldChlKTtnLmZpbGwoMjU1LG8pfWVsc2UgZz1uZXcgVWludDhBcnJheShlKTtlbHNlIGc9ZTtpZihyKWZvcihjPTA7YzxvO2MrKylnW2NdXj0yNTU7cmV0dXJue2RhdGE6Zyx3aWR0aDp0LGhlaWdodDppLGludGVycG9sYXRlOnN9fXN0YXRpYyBhc3luYyBjcmVhdGVNYXNrKHtpbWdBcnJheTplLHdpZHRoOnQsaGVpZ2h0OmksaW1hZ2VJc0Zyb21EZWNvZGVTdHJlYW06YSxpbnZlcnNlRGVjb2RlOnIsaW50ZXJwb2xhdGU6cyxpc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZDpuPSExfSl7Y29uc3Qgbz0xPT09dCYmMT09PWkmJnI9PT0oMD09PWUubGVuZ3RofHwhISgxMjgmZVswXSkpO2lmKG8pcmV0dXJue2lzU2luZ2xlT3BhcXVlUGl4ZWw6b307aWYobil7aWYoSW1hZ2VSZXNpemVyLm5lZWRzVG9CZVJlc2l6ZWQodCxpKSl7Y29uc3QgYT1uZXcgVWludDhDbGFtcGVkQXJyYXkodCppKjQpO2NvbnZlcnRCbGFja0FuZFdoaXRlVG9SR0JBKHtzcmM6ZSxkZXN0OmEsd2lkdGg6dCxoZWlnaHQ6aSxub25CbGFja0NvbG9yOjAsaW52ZXJzZURlY29kZTpyfSk7cmV0dXJuIEltYWdlUmVzaXplci5jcmVhdGVJbWFnZSh7a2luZDpSLGRhdGE6YSx3aWR0aDp0LGhlaWdodDppLGludGVycG9sYXRlOnN9KX1jb25zdCBhPW5ldyBPZmZzY3JlZW5DYW52YXModCxpKSxuPWEuZ2V0Q29udGV4dCgiMmQiKSxvPW4uY3JlYXRlSW1hZ2VEYXRhKHQsaSk7Y29udmVydEJsYWNrQW5kV2hpdGVUb1JHQkEoe3NyYzplLGRlc3Q6by5kYXRhLHdpZHRoOnQsaGVpZ2h0Omksbm9uQmxhY2tDb2xvcjowLGludmVyc2VEZWNvZGU6cn0pO24ucHV0SW1hZ2VEYXRhKG8sMCwwKTtyZXR1cm57ZGF0YTpudWxsLHdpZHRoOnQsaGVpZ2h0OmksaW50ZXJwb2xhdGU6cyxiaXRtYXA6YS50cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKX19cmV0dXJuIHRoaXMuY3JlYXRlUmF3TWFzayh7aW1nQXJyYXk6ZSx3aWR0aDp0LGhlaWdodDppLGludmVyc2VEZWNvZGU6cixpbWFnZUlzRnJvbURlY29kZVN0cmVhbTphLGludGVycG9sYXRlOnN9KX1nZXQgZHJhd1dpZHRoKCl7cmV0dXJuIE1hdGgubWF4KHRoaXMud2lkdGgsdGhpcy5zbWFzaz8ud2lkdGh8fDAsdGhpcy5tYXNrPy53aWR0aHx8MCl9Z2V0IGRyYXdIZWlnaHQoKXtyZXR1cm4gTWF0aC5tYXgodGhpcy5oZWlnaHQsdGhpcy5zbWFzaz8uaGVpZ2h0fHwwLHRoaXMubWFzaz8uaGVpZ2h0fHwwKX1kZWNvZGVCdWZmZXIoZSl7Y29uc3QgdD10aGlzLmJwYyxpPXRoaXMubnVtQ29tcHMsYT10aGlzLmRlY29kZUFkZGVuZHMscj10aGlzLmRlY29kZUNvZWZmaWNpZW50cyxzPSgxPDx0KS0xO2xldCBuLG87aWYoMT09PXQpe2ZvcihuPTAsbz1lLmxlbmd0aDtuPG87bisrKWVbbl09KyFlW25dO3JldHVybn1sZXQgZz0wO2ZvcihuPTAsbz10aGlzLndpZHRoKnRoaXMuaGVpZ2h0O248bztuKyspZm9yKGxldCB0PTA7dDxpO3QrKyl7ZVtnXT1kZWNvZGVBbmRDbGFtcChlW2ddLGFbdF0sclt0XSxzKTtnKyt9fWdldENvbXBvbmVudHMoZSl7Y29uc3QgdD10aGlzLmJwYztpZig4PT09dClyZXR1cm4gZTtjb25zdCBpPXRoaXMud2lkdGgsYT10aGlzLmhlaWdodCxyPXRoaXMubnVtQ29tcHMscz1pKmEqcjtsZXQgbixvPTA7bj10PD04P25ldyBVaW50OEFycmF5KHMpOnQ8PTE2P25ldyBVaW50MTZBcnJheShzKTpuZXcgVWludDMyQXJyYXkocyk7Y29uc3QgZz1pKnIsYz0oMTw8dCktMTtsZXQgbCxoLEM9MDtpZigxPT09dCl7bGV0IHQsaSxyO2ZvcihsZXQgcz0wO3M8YTtzKyspe2k9QysoLTgmZyk7cj1DK2c7Zm9yKDtDPGk7KXtoPWVbbysrXTtuW0NdPWg+PjcmMTtuW0MrMV09aD4+NiYxO25bQysyXT1oPj41JjE7bltDKzNdPWg+PjQmMTtuW0MrNF09aD4+MyYxO25bQys1XT1oPj4yJjE7bltDKzZdPWg+PjEmMTtuW0MrN109MSZoO0MrPTh9aWYoQzxyKXtoPWVbbysrXTt0PTEyODtmb3IoO0M8cjspe25bQysrXT0rISEoaCZ0KTt0Pj49MX19fX1lbHNle2xldCBpPTA7aD0wO2ZvcihDPTAsbD1zO0M8bDsrK0Mpe2lmKEMlZz09MCl7aD0wO2k9MH1mb3IoO2k8dDspe2g9aDw8OHxlW28rK107aSs9OH1jb25zdCBhPWktdDtsZXQgcj1oPj5hO3I8MD9yPTA6cj5jJiYocj1jKTtuW0NdPXI7aCY9KDE8PGEpLTE7aT1hfX1yZXR1cm4gbn1hc3luYyBmaWxsT3BhY2l0eShlLHQsaSxhLHIpe2NvbnN0IHM9dGhpcy5zbWFzayxuPXRoaXMubWFzaztsZXQgbyxnLGMsbCxoLEM7aWYocyl7Zz1zLndpZHRoO2M9cy5oZWlnaHQ7bz1uZXcgVWludDhDbGFtcGVkQXJyYXkoZypjKTthd2FpdCBzLmZpbGxHcmF5QnVmZmVyKG8pO2c9PT10JiZjPT09aXx8KG89cmVzaXplSW1hZ2VNYXNrKG8scy5icGMsZyxjLHQsaSkpfWVsc2UgaWYobilpZihuIGluc3RhbmNlb2YgUERGSW1hZ2Upe2c9bi53aWR0aDtjPW4uaGVpZ2h0O289bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGcqYyk7bi5udW1Db21wcz0xO2F3YWl0IG4uZmlsbEdyYXlCdWZmZXIobyk7Zm9yKGw9MCxoPWcqYztsPGg7KytsKW9bbF09MjU1LW9bbF07Zz09PXQmJmM9PT1pfHwobz1yZXNpemVJbWFnZU1hc2sobyxuLmJwYyxnLGMsdCxpKSl9ZWxzZXtpZighQXJyYXkuaXNBcnJheShuKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlVua25vd24gbWFzayBmb3JtYXQuIik7e289bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KHQqaSk7Y29uc3QgZT10aGlzLm51bUNvbXBzO2ZvcihsPTAsaD10Kmk7bDxoOysrbCl7bGV0IHQ9MDtjb25zdCBpPWwqZTtmb3IoQz0wO0M8ZTsrK0Mpe2NvbnN0IGU9cltpK0NdLGE9MipDO2lmKGU8blthXXx8ZT5uW2ErMV0pe3Q9MjU1O2JyZWFrfX1vW2xdPXR9fX1pZihvKWZvcihsPTAsQz0zLGg9dCphO2w8aDsrK2wsQys9NCllW0NdPW9bbF07ZWxzZSBmb3IobD0wLEM9MyxoPXQqYTtsPGg7KytsLEMrPTQpZVtDXT0yNTV9dW5kb1ByZWJsZW5kKGUsdCxpKXtjb25zdCBhPXRoaXMuc21hc2s/Lm1hdHRlO2lmKCFhKXJldHVybjtjb25zdCByPXRoaXMuY29sb3JTcGFjZS5nZXRSZ2IoYSwwKSxzPXJbMF0sbj1yWzFdLG89clsyXSxnPXQqaSo0O2ZvcihsZXQgdD0wO3Q8Zzt0Kz00KXtjb25zdCBpPWVbdCszXTtpZigwPT09aSl7ZVt0XT0yNTU7ZVt0KzFdPTI1NTtlW3QrMl09MjU1O2NvbnRpbnVlfWNvbnN0IGE9MjU1L2k7ZVt0XT0oZVt0XS1zKSphK3M7ZVt0KzFdPShlW3QrMV0tbikqYStuO2VbdCsyXT0oZVt0KzJdLW8pKmErb319YXN5bmMgY3JlYXRlSW1hZ2VEYXRhKGU9ITEsdD0hMSl7Y29uc3QgaT10aGlzLmRyYXdXaWR0aCxhPXRoaXMuZHJhd0hlaWdodCxyPXt3aWR0aDppLGhlaWdodDphLGludGVycG9sYXRlOnRoaXMuaW50ZXJwb2xhdGUsa2luZDowLGRhdGE6bnVsbH0scz10aGlzLm51bUNvbXBzLG49dGhpcy53aWR0aCxvPXRoaXMuaGVpZ2h0LGc9dGhpcy5icGMsYz1uKnMqZys3Pj4zLGw9dCYmSW1hZ2VSZXNpemVyLm5lZWRzVG9CZVJlc2l6ZWQoaSxhKTtpZighdGhpcy5zbWFzayYmIXRoaXMubWFzayYmIkRldmljZVJHQkEiPT09dGhpcy5jb2xvclNwYWNlLm5hbWUpe3Iua2luZD1SO2NvbnN0IGU9ci5kYXRhPWF3YWl0IHRoaXMuZ2V0SW1hZ2VCeXRlcyhvKm4qNCx7fSk7cmV0dXJuIHQ/bD9JbWFnZVJlc2l6ZXIuY3JlYXRlSW1hZ2UociwhMSk6dGhpcy5jcmVhdGVCaXRtYXAoUixpLGEsZSk6cn1pZighZSl7bGV0IGU7IkRldmljZUdyYXkiPT09dGhpcy5jb2xvclNwYWNlLm5hbWUmJjE9PT1nP2U9UzoiRGV2aWNlUkdCIiE9PXRoaXMuY29sb3JTcGFjZS5uYW1lfHw4IT09Z3x8dGhpcy5uZWVkc0RlY29kZXx8KGU9ayk7aWYoZSYmIXRoaXMuc21hc2smJiF0aGlzLm1hc2smJmk9PT1uJiZhPT09byl7Y29uc3Qgcz1hd2FpdCB0aGlzLiNHKG4sbyk7aWYocylyZXR1cm4gcztjb25zdCBnPWF3YWl0IHRoaXMuZ2V0SW1hZ2VCeXRlcyhvKmMse30pO2lmKHQpcmV0dXJuIGw/SW1hZ2VSZXNpemVyLmNyZWF0ZUltYWdlKHtkYXRhOmcsa2luZDplLHdpZHRoOmksaGVpZ2h0OmEsaW50ZXJwb2xhdGU6dGhpcy5pbnRlcnBvbGF0ZX0sdGhpcy5uZWVkc0RlY29kZSk6dGhpcy5jcmVhdGVCaXRtYXAoZSxuLG8sZyk7ci5raW5kPWU7ci5kYXRhPWc7aWYodGhpcy5uZWVkc0RlY29kZSl7YXNzZXJ0KGU9PT1TLCJQREZJbWFnZS5jcmVhdGVJbWFnZURhdGE6IFRoZSBpbWFnZSBtdXN0IGJlIGdyYXlzY2FsZS4iKTtjb25zdCB0PXIuZGF0YTtmb3IobGV0IGU9MCxpPXQubGVuZ3RoO2U8aTtlKyspdFtlXV49MjU1fXJldHVybiByfWlmKHRoaXMuaW1hZ2UgaW5zdGFuY2VvZiBKcGVnU3RyZWFtJiYhdGhpcy5zbWFzayYmIXRoaXMubWFzayYmIXRoaXMubmVlZHNEZWNvZGUpe2xldCBlPW8qYztpZih0JiYhbCl7bGV0IHQ9ITE7c3dpdGNoKHRoaXMuY29sb3JTcGFjZS5uYW1lKXtjYXNlIkRldmljZUdyYXkiOmUqPTQ7dD0hMDticmVhaztjYXNlIkRldmljZVJHQiI6ZT1lLzMqNDt0PSEwO2JyZWFrO2Nhc2UiRGV2aWNlQ01ZSyI6dD0hMH1pZih0KXtjb25zdCB0PWF3YWl0IHRoaXMuI0coaSxhKTtpZih0KXJldHVybiB0O2NvbnN0IHI9YXdhaXQgdGhpcy5nZXRJbWFnZUJ5dGVzKGUse2RyYXdXaWR0aDppLGRyYXdIZWlnaHQ6YSxmb3JjZVJHQkE6ITB9KTtyZXR1cm4gdGhpcy5jcmVhdGVCaXRtYXAoUixpLGEscil9fWVsc2Ugc3dpdGNoKHRoaXMuY29sb3JTcGFjZS5uYW1lKXtjYXNlIkRldmljZUdyYXkiOmUqPTM7Y2FzZSJEZXZpY2VSR0IiOmNhc2UiRGV2aWNlQ01ZSyI6ci5raW5kPWs7ci5kYXRhPWF3YWl0IHRoaXMuZ2V0SW1hZ2VCeXRlcyhlLHtkcmF3V2lkdGg6aSxkcmF3SGVpZ2h0OmEsZm9yY2VSR0I6ITB9KTtyZXR1cm4gbD9JbWFnZVJlc2l6ZXIuY3JlYXRlSW1hZ2Uocik6cn19fWNvbnN0IGg9YXdhaXQgdGhpcy5nZXRJbWFnZUJ5dGVzKG8qYyx7aW50ZXJuYWw6ITB9KSxDPTB8aC5sZW5ndGgvYyphL28sUT10aGlzLmdldENvbXBvbmVudHMoaCk7bGV0IEUsdSxkLGYscCxtO2lmKHQmJiFsKXtkPW5ldyBPZmZzY3JlZW5DYW52YXMoaSxhKTtmPWQuZ2V0Q29udGV4dCgiMmQiKTtwPWYuY3JlYXRlSW1hZ2VEYXRhKGksYSk7bT1wLmRhdGF9ci5raW5kPVI7aWYoZXx8dGhpcy5zbWFza3x8dGhpcy5tYXNrKXt0JiYhbHx8KG09bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGkqYSo0KSk7RT0xO3U9ITA7YXdhaXQgdGhpcy5maWxsT3BhY2l0eShtLGksYSxDLFEpfWVsc2V7aWYoIXR8fGwpe3Iua2luZD1rO209bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGkqYSozKTtFPTB9ZWxzZXtuZXcgVWludDMyQXJyYXkobS5idWZmZXIpLmZpbGwoRmVhdHVyZVRlc3QuaXNMaXR0bGVFbmRpYW4/NDI3ODE5MDA4MDoyNTUpO0U9MX11PSExfXRoaXMubmVlZHNEZWNvZGUmJnRoaXMuZGVjb2RlQnVmZmVyKFEpO3RoaXMuY29sb3JTcGFjZS5maWxsUmdiKG0sbixvLGksYSxDLGcsUSxFKTt1JiZ0aGlzLnVuZG9QcmVibGVuZChtLGksQyk7aWYodCYmIWwpe2YucHV0SW1hZ2VEYXRhKHAsMCwwKTtyZXR1cm57ZGF0YTpudWxsLHdpZHRoOmksaGVpZ2h0OmEsYml0bWFwOmQudHJhbnNmZXJUb0ltYWdlQml0bWFwKCksaW50ZXJwb2xhdGU6dGhpcy5pbnRlcnBvbGF0ZX19ci5kYXRhPW07cmV0dXJuIGw/SW1hZ2VSZXNpemVyLmNyZWF0ZUltYWdlKHIpOnJ9YXN5bmMgZmlsbEdyYXlCdWZmZXIoZSl7Y29uc3QgdD10aGlzLm51bUNvbXBzO2lmKDEhPT10KXRocm93IG5ldyBGb3JtYXRFcnJvcihgUmVhZGluZyBncmF5IHNjYWxlIGZyb20gYSBjb2xvciBpbWFnZTogJHt0fWApO2NvbnN0IGk9dGhpcy53aWR0aCxhPXRoaXMuaGVpZ2h0LHI9dGhpcy5icGMscz1pKnQqcis3Pj4zLG49YXdhaXQgdGhpcy5nZXRJbWFnZUJ5dGVzKGEqcyx7aW50ZXJuYWw6ITB9KSxvPXRoaXMuZ2V0Q29tcG9uZW50cyhuKTtsZXQgZyxjO2lmKDE9PT1yKXtjPWkqYTtpZih0aGlzLm5lZWRzRGVjb2RlKWZvcihnPTA7ZzxjOysrZyllW2ddPW9bZ10tMSYyNTU7ZWxzZSBmb3IoZz0wO2c8YzsrK2cpZVtnXT0yNTUmLW9bZ107cmV0dXJufXRoaXMubmVlZHNEZWNvZGUmJnRoaXMuZGVjb2RlQnVmZmVyKG8pO2M9aSphO2NvbnN0IGw9MjU1LygoMTw8ciktMSk7Zm9yKGc9MDtnPGM7KytnKWVbZ109bCpvW2ddfWNyZWF0ZUJpdG1hcChlLHQsaSxhKXtjb25zdCByPW5ldyBPZmZzY3JlZW5DYW52YXModCxpKSxzPXIuZ2V0Q29udGV4dCgiMmQiKTtsZXQgbjtpZihlPT09UiluPW5ldyBJbWFnZURhdGEoYSx0LGkpO2Vsc2V7bj1zLmNyZWF0ZUltYWdlRGF0YSh0LGkpO2NvbnZlcnRUb1JHQkEoe2tpbmQ6ZSxzcmM6YSxkZXN0Om5ldyBVaW50MzJBcnJheShuLmRhdGEuYnVmZmVyKSx3aWR0aDp0LGhlaWdodDppLGludmVyc2VEZWNvZGU6dGhpcy5uZWVkc0RlY29kZX0pfXMucHV0SW1hZ2VEYXRhKG4sMCwwKTtyZXR1cm57ZGF0YTpudWxsLHdpZHRoOnQsaGVpZ2h0OmksYml0bWFwOnIudHJhbnNmZXJUb0ltYWdlQml0bWFwKCksaW50ZXJwb2xhdGU6dGhpcy5pbnRlcnBvbGF0ZX19YXN5bmMjRyhlLHQpe2NvbnN0IGk9YXdhaXQgdGhpcy5pbWFnZS5nZXRUcmFuc2ZlcmFibGVJbWFnZSgpO3JldHVybiBpP3tkYXRhOm51bGwsd2lkdGg6ZSxoZWlnaHQ6dCxiaXRtYXA6aSxpbnRlcnBvbGF0ZTp0aGlzLmludGVycG9sYXRlfTpudWxsfWFzeW5jIGdldEltYWdlQnl0ZXMoZSx7ZHJhd1dpZHRoOnQsZHJhd0hlaWdodDppLGZvcmNlUkdCQTphPSExLGZvcmNlUkdCOnI9ITEsaW50ZXJuYWw6cz0hMX0pe3RoaXMuaW1hZ2UucmVzZXQoKTt0aGlzLmltYWdlLmRyYXdXaWR0aD10fHx0aGlzLndpZHRoO3RoaXMuaW1hZ2UuZHJhd0hlaWdodD1pfHx0aGlzLmhlaWdodDt0aGlzLmltYWdlLmZvcmNlUkdCQT0hIWE7dGhpcy5pbWFnZS5mb3JjZVJHQj0hIXI7Y29uc3Qgbj1hd2FpdCB0aGlzLmltYWdlLmdldEltYWdlRGF0YShlLHRoaXMuanB4RGVjb2Rlck9wdGlvbnMpO2lmKHN8fHRoaXMuaW1hZ2UgaW5zdGFuY2VvZiBEZWNvZGVTdHJlYW0pcmV0dXJuIG47YXNzZXJ0KG4gaW5zdGFuY2VvZiBVaW50OEFycmF5LCdQREZJbWFnZS5nZXRJbWFnZUJ5dGVzOiBVbnN1cHBvcnRlZCAiaW1hZ2VCeXRlcyIgdHlwZS4nKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkobil9fWNvbnN0IG1yPU9iamVjdC5mcmVlemUoe21heEltYWdlU2l6ZTotMSxkaXNhYmxlRm9udEZhY2U6ITEsaWdub3JlRXJyb3JzOiExLGlzRXZhbFN1cHBvcnRlZDohMCxpc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZDohMSxpc0ltYWdlRGVjb2RlclN1cHBvcnRlZDohMSxjYW52YXNNYXhBcmVhSW5CeXRlczotMSxmb250RXh0cmFQcm9wZXJ0aWVzOiExLHVzZVN5c3RlbUZvbnRzOiEwLGNNYXBVcmw6bnVsbCxzdGFuZGFyZEZvbnREYXRhVXJsOm51bGx9KSx5cj0xLHdyPTIsYnI9UHJvbWlzZS5yZXNvbHZlKCk7ZnVuY3Rpb24gbm9ybWFsaXplQmxlbmRNb2RlKGUsdD0hMSl7aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKGNvbnN0IHQgb2YgZSl7Y29uc3QgZT1ub3JtYWxpemVCbGVuZE1vZGUodCwhMCk7aWYoZSlyZXR1cm4gZX13YXJuKGBVbnN1cHBvcnRlZCBibGVuZCBtb2RlIEFycmF5OiAke2V9YCk7cmV0dXJuInNvdXJjZS1vdmVyIn1pZighKGUgaW5zdGFuY2VvZiBOYW1lKSlyZXR1cm4gdD9udWxsOiJzb3VyY2Utb3ZlciI7c3dpdGNoKGUubmFtZSl7Y2FzZSJOb3JtYWwiOmNhc2UiQ29tcGF0aWJsZSI6cmV0dXJuInNvdXJjZS1vdmVyIjtjYXNlIk11bHRpcGx5IjpyZXR1cm4ibXVsdGlwbHkiO2Nhc2UiU2NyZWVuIjpyZXR1cm4ic2NyZWVuIjtjYXNlIk92ZXJsYXkiOnJldHVybiJvdmVybGF5IjtjYXNlIkRhcmtlbiI6cmV0dXJuImRhcmtlbiI7Y2FzZSJMaWdodGVuIjpyZXR1cm4ibGlnaHRlbiI7Y2FzZSJDb2xvckRvZGdlIjpyZXR1cm4iY29sb3ItZG9kZ2UiO2Nhc2UiQ29sb3JCdXJuIjpyZXR1cm4iY29sb3ItYnVybiI7Y2FzZSJIYXJkTGlnaHQiOnJldHVybiJoYXJkLWxpZ2h0IjtjYXNlIlNvZnRMaWdodCI6cmV0dXJuInNvZnQtbGlnaHQiO2Nhc2UiRGlmZmVyZW5jZSI6cmV0dXJuImRpZmZlcmVuY2UiO2Nhc2UiRXhjbHVzaW9uIjpyZXR1cm4iZXhjbHVzaW9uIjtjYXNlIkh1ZSI6cmV0dXJuImh1ZSI7Y2FzZSJTYXR1cmF0aW9uIjpyZXR1cm4ic2F0dXJhdGlvbiI7Y2FzZSJDb2xvciI6cmV0dXJuImNvbG9yIjtjYXNlIkx1bWlub3NpdHkiOnJldHVybiJsdW1pbm9zaXR5In1pZih0KXJldHVybiBudWxsO3dhcm4oYFVuc3VwcG9ydGVkIGJsZW5kIG1vZGU6ICR7ZS5uYW1lfWApO3JldHVybiJzb3VyY2Utb3ZlciJ9ZnVuY3Rpb24gYWRkTG9jYWxseUNhY2hlZEltYWdlT3BzKGUsdCl7dC5vYmpJZCYmZS5hZGREZXBlbmRlbmN5KHQub2JqSWQpO2UuYWRkSW1hZ2VPcHModC5mbix0LmFyZ3MsdC5vcHRpb25hbENvbnRlbnQsdC5oYXNNYXNrKTt0LmZuPT09X2UmJnQuYXJnc1swXT8uY291bnQ+MCYmdC5hcmdzWzBdLmNvdW50Kyt9Y2xhc3MgVGltZVNsb3RNYW5hZ2Vye3N0YXRpYyBUSU1FX1NMT1RfRFVSQVRJT05fTVM9MjA7c3RhdGljIENIRUNLX1RJTUVfRVZFUlk9MTAwO2NvbnN0cnVjdG9yKCl7dGhpcy5yZXNldCgpfWNoZWNrKCl7aWYoKyt0aGlzLmNoZWNrZWQ8VGltZVNsb3RNYW5hZ2VyLkNIRUNLX1RJTUVfRVZFUlkpcmV0dXJuITE7dGhpcy5jaGVja2VkPTA7cmV0dXJuIHRoaXMuZW5kVGltZTw9RGF0ZS5ub3coKX1yZXNldCgpe3RoaXMuZW5kVGltZT1EYXRlLm5vdygpK1RpbWVTbG90TWFuYWdlci5USU1FX1NMT1RfRFVSQVRJT05fTVM7dGhpcy5jaGVja2VkPTB9fWNsYXNzIFBhcnRpYWxFdmFsdWF0b3J7Y29uc3RydWN0b3Ioe3hyZWY6ZSxoYW5kbGVyOnQscGFnZUluZGV4OmksaWRGYWN0b3J5OmEsZm9udENhY2hlOnIsYnVpbHRJbkNNYXBDYWNoZTpzLHN0YW5kYXJkRm9udERhdGFDYWNoZTpuLGdsb2JhbEltYWdlQ2FjaGU6byxzeXN0ZW1Gb250Q2FjaGU6ZyxvcHRpb25zOmM9bnVsbH0pe3RoaXMueHJlZj1lO3RoaXMuaGFuZGxlcj10O3RoaXMucGFnZUluZGV4PWk7dGhpcy5pZEZhY3Rvcnk9YTt0aGlzLmZvbnRDYWNoZT1yO3RoaXMuYnVpbHRJbkNNYXBDYWNoZT1zO3RoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlPW47dGhpcy5nbG9iYWxJbWFnZUNhY2hlPW87dGhpcy5zeXN0ZW1Gb250Q2FjaGU9Zzt0aGlzLm9wdGlvbnM9Y3x8bXI7dGhpcy50eXBlM0ZvbnRSZWZzPW51bGw7dGhpcy5fcmVnaW9uYWxJbWFnZUNhY2hlPW5ldyBSZWdpb25hbEltYWdlQ2FjaGU7dGhpcy5fZmV0Y2hCdWlsdEluQ01hcEJvdW5kPXRoaXMuZmV0Y2hCdWlsdEluQ01hcC5iaW5kKHRoaXMpO0ltYWdlUmVzaXplci5zZXRPcHRpb25zKHRoaXMub3B0aW9ucyk7SnBlZ1N0cmVhbS5zZXRPcHRpb25zKHRoaXMub3B0aW9ucyl9Z2V0IF9wZGZGdW5jdGlvbkZhY3RvcnkoKXtyZXR1cm4gc2hhZG93KHRoaXMsIl9wZGZGdW5jdGlvbkZhY3RvcnkiLG5ldyBQREZGdW5jdGlvbkZhY3Rvcnkoe3hyZWY6dGhpcy54cmVmLGlzRXZhbFN1cHBvcnRlZDp0aGlzLm9wdGlvbnMuaXNFdmFsU3VwcG9ydGVkfSkpfWdldCBwYXJzaW5nVHlwZTNGb250KCl7cmV0dXJuISF0aGlzLnR5cGUzRm9udFJlZnN9Y2xvbmUoZT1udWxsKXtjb25zdCB0PU9iamVjdC5jcmVhdGUodGhpcyk7dC5vcHRpb25zPU9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLm9wdGlvbnMsZSk7cmV0dXJuIHR9aGFzQmxlbmRNb2RlcyhlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIERpY3QpKXJldHVybiExO2lmKGUub2JqSWQmJnQuaGFzKGUub2JqSWQpKXJldHVybiExO2NvbnN0IGk9bmV3IFJlZlNldCh0KTtlLm9iaklkJiZpLnB1dChlLm9iaklkKTtjb25zdCBhPVtlXSxyPXRoaXMueHJlZjtmb3IoO2EubGVuZ3RoOyl7Y29uc3QgZT1hLnNoaWZ0KCksdD1lLmdldCgiRXh0R1N0YXRlIik7aWYodCBpbnN0YW5jZW9mIERpY3QpZm9yKGxldCBlIG9mIHQuZ2V0UmF3VmFsdWVzKCkpe2lmKGUgaW5zdGFuY2VvZiBSZWYpe2lmKGkuaGFzKGUpKWNvbnRpbnVlO3RyeXtlPXIuZmV0Y2goZSl9Y2F0Y2godCl7aS5wdXQoZSk7aW5mbyhgaGFzQmxlbmRNb2RlcyAtIGlnbm9yaW5nIEV4dEdTdGF0ZTogIiR7dH0iLmApO2NvbnRpbnVlfX1pZighKGUgaW5zdGFuY2VvZiBEaWN0KSljb250aW51ZTtlLm9iaklkJiZpLnB1dChlLm9iaklkKTtjb25zdCB0PWUuZ2V0KCJCTSIpO2lmKHQgaW5zdGFuY2VvZiBOYW1lKXtpZigiTm9ybWFsIiE9PXQubmFtZSlyZXR1cm4hMH1lbHNlIGlmKHZvaWQgMCE9PXQmJkFycmF5LmlzQXJyYXkodCkpZm9yKGNvbnN0IGUgb2YgdClpZihlIGluc3RhbmNlb2YgTmFtZSYmIk5vcm1hbCIhPT1lLm5hbWUpcmV0dXJuITB9Y29uc3Qgcz1lLmdldCgiWE9iamVjdCIpO2lmKHMgaW5zdGFuY2VvZiBEaWN0KWZvcihsZXQgZSBvZiBzLmdldFJhd1ZhbHVlcygpKXtpZihlIGluc3RhbmNlb2YgUmVmKXtpZihpLmhhcyhlKSljb250aW51ZTt0cnl7ZT1yLmZldGNoKGUpfWNhdGNoKHQpe2kucHV0KGUpO2luZm8oYGhhc0JsZW5kTW9kZXMgLSBpZ25vcmluZyBYT2JqZWN0OiAiJHt0fSIuYCk7Y29udGludWV9fWlmKCEoZSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pKWNvbnRpbnVlO2UuZGljdC5vYmpJZCYmaS5wdXQoZS5kaWN0Lm9iaklkKTtjb25zdCB0PWUuZGljdC5nZXQoIlJlc291cmNlcyIpO2lmKHQgaW5zdGFuY2VvZiBEaWN0JiYoIXQub2JqSWR8fCFpLmhhcyh0Lm9iaklkKSkpe2EucHVzaCh0KTt0Lm9iaklkJiZpLnB1dCh0Lm9iaklkKX19fWZvcihjb25zdCBlIG9mIGkpdC5wdXQoZSk7cmV0dXJuITF9YXN5bmMjTShlKXtjb25zdCB0PWF3YWl0IGZldGNoKGUpO2lmKCF0Lm9rKXRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIGZpbGUgIiR7ZX0iIHdpdGggIiR7dC5zdGF0dXNUZXh0fSIuYCk7cmV0dXJuIG5ldyBVaW50OEFycmF5KGF3YWl0IHQuYXJyYXlCdWZmZXIoKSl9YXN5bmMgZmV0Y2hCdWlsdEluQ01hcChlKXtjb25zdCB0PXRoaXMuYnVpbHRJbkNNYXBDYWNoZS5nZXQoZSk7aWYodClyZXR1cm4gdDtsZXQgaTtpZihudWxsIT09dGhpcy5vcHRpb25zLmNNYXBVcmwpe2k9e2NNYXBEYXRhOmF3YWl0IHRoaXMuI00oYCR7dGhpcy5vcHRpb25zLmNNYXBVcmx9JHtlfS5iY21hcGApLGlzQ29tcHJlc3NlZDohMH19ZWxzZSBpPWF3YWl0IHRoaXMuaGFuZGxlci5zZW5kV2l0aFByb21pc2UoIkZldGNoQnVpbHRJbkNNYXAiLHtuYW1lOmV9KTt0aGlzLmJ1aWx0SW5DTWFwQ2FjaGUuc2V0KGUsaSk7cmV0dXJuIGl9YXN5bmMgZmV0Y2hTdGFuZGFyZEZvbnREYXRhKGUpe2NvbnN0IHQ9dGhpcy5zdGFuZGFyZEZvbnREYXRhQ2FjaGUuZ2V0KGUpO2lmKHQpcmV0dXJuIG5ldyBTdHJlYW0odCk7aWYodGhpcy5vcHRpb25zLnVzZVN5c3RlbUZvbnRzJiYiU3ltYm9sIiE9PWUmJiJaYXBmRGluZ2JhdHMiIT09ZSlyZXR1cm4gbnVsbDtjb25zdCBpPVRpKClbZV07bGV0IGE7dHJ5e2E9bnVsbCE9PXRoaXMub3B0aW9ucy5zdGFuZGFyZEZvbnREYXRhVXJsP2F3YWl0IHRoaXMuI00oYCR7dGhpcy5vcHRpb25zLnN0YW5kYXJkRm9udERhdGFVcmx9JHtpfWApOmF3YWl0IHRoaXMuaGFuZGxlci5zZW5kV2l0aFByb21pc2UoIkZldGNoU3RhbmRhcmRGb250RGF0YSIse2ZpbGVuYW1lOml9KX1jYXRjaChlKXt3YXJuKGUpO3JldHVybiBudWxsfXRoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlLnNldChlLGEpO3JldHVybiBuZXcgU3RyZWFtKGEpfWFzeW5jIGJ1aWxkRm9ybVhPYmplY3QoZSx0LGksYSxyLHMsbil7Y29uc3Qgbz10LmRpY3QsZz1sb29rdXBNYXRyaXgoby5nZXRBcnJheSgiTWF0cml4IiksbnVsbCksYz1sb29rdXBOb3JtYWxSZWN0KG8uZ2V0QXJyYXkoIkJCb3giKSxudWxsKTtsZXQgbCxoO28uaGFzKCJPQyIpJiYobD1hd2FpdCB0aGlzLnBhcnNlTWFya2VkQ29udGVudFByb3BzKG8uZ2V0KCJPQyIpLGUpKTt2b2lkIDAhPT1sJiZhLmFkZE9wKEtlLFsiT0MiLGxdKTtjb25zdCBDPW8uZ2V0KCJHcm91cCIpO2lmKEMpe2g9e21hdHJpeDpnLGJib3g6YyxzbWFzazppLGlzb2xhdGVkOiExLGtub2Nrb3V0OiExfTtsZXQgdD1udWxsO2lmKGlzTmFtZShDLmdldCgiUyIpLCJUcmFuc3BhcmVuY3kiKSl7aC5pc29sYXRlZD1DLmdldCgiSSIpfHwhMTtoLmtub2Nrb3V0PUMuZ2V0KCJLIil8fCExO2lmKEMuaGFzKCJDUyIpKXtjb25zdCBpPUMuZ2V0UmF3KCJDUyIpLGE9Q29sb3JTcGFjZS5nZXRDYWNoZWQoaSx0aGlzLnhyZWYsbik7dD1hfHxhd2FpdCB0aGlzLnBhcnNlQ29sb3JTcGFjZSh7Y3M6aSxyZXNvdXJjZXM6ZSxsb2NhbENvbG9yU3BhY2VDYWNoZTpufSl9fWlmKGk/LmJhY2tkcm9wKXt0fHw9Q29sb3JTcGFjZS5zaW5nbGV0b25zLnJnYjtpLmJhY2tkcm9wPXQuZ2V0UmdiKGkuYmFja2Ryb3AsMCl9YS5hZGRPcChqZSxbaF0pfWNvbnN0IFE9Qz9bZyxudWxsXTpbZyxjXTthLmFkZE9wKFBlLFEpO2F3YWl0IHRoaXMuZ2V0T3BlcmF0b3JMaXN0KHtzdHJlYW06dCx0YXNrOnIscmVzb3VyY2VzOm8uZ2V0KCJSZXNvdXJjZXMiKXx8ZSxvcGVyYXRvckxpc3Q6YSxpbml0aWFsU3RhdGU6c30pO2EuYWRkT3AoV2UsW10pO0MmJmEuYWRkT3AoWGUsW2hdKTt2b2lkIDAhPT1sJiZhLmFkZE9wKFRlLFtdKX1fc2VuZEltZ0RhdGEoZSx0LGk9ITEpe2NvbnN0IGE9dD9bdC5iaXRtYXB8fHQuZGF0YS5idWZmZXJdOm51bGw7cmV0dXJuIHRoaXMucGFyc2luZ1R5cGUzRm9udHx8aT90aGlzLmhhbmRsZXIuc2VuZCgiY29tbW9ub2JqIixbZSwiSW1hZ2UiLHRdLGEpOnRoaXMuaGFuZGxlci5zZW5kKCJvYmoiLFtlLHRoaXMucGFnZUluZGV4LCJJbWFnZSIsdF0sYSl9YXN5bmMgYnVpbGRQYWludEltYWdlWE9iamVjdCh7cmVzb3VyY2VzOmUsaW1hZ2U6dCxpc0lubGluZTppPSExLG9wZXJhdG9yTGlzdDphLGNhY2hlS2V5OnIsbG9jYWxJbWFnZUNhY2hlOnMsbG9jYWxDb2xvclNwYWNlQ2FjaGU6bn0pe2NvbnN0IG89dC5kaWN0LGc9by5vYmpJZCxjPW8uZ2V0KCJXIiwiV2lkdGgiKSxsPW8uZ2V0KCJIIiwiSGVpZ2h0Iik7aWYoIWN8fCJudW1iZXIiIT10eXBlb2YgY3x8IWx8fCJudW1iZXIiIT10eXBlb2YgbCl7d2FybigiSW1hZ2UgZGltZW5zaW9ucyBhcmUgbWlzc2luZywgb3Igbm90IG51bWJlcnMuIik7cmV0dXJufWNvbnN0IGg9dGhpcy5vcHRpb25zLm1heEltYWdlU2l6ZTtpZigtMSE9PWgmJmMqbD5oKXtjb25zdCBlPSJJbWFnZSBleGNlZWRlZCBtYXhpbXVtIGFsbG93ZWQgc2l6ZSBhbmQgd2FzIHJlbW92ZWQuIjtpZih0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXt3YXJuKGUpO3JldHVybn10aHJvdyBuZXcgRXJyb3IoZSl9bGV0IEM7by5oYXMoIk9DIikmJihDPWF3YWl0IHRoaXMucGFyc2VNYXJrZWRDb250ZW50UHJvcHMoby5nZXQoIk9DIiksZSkpO2xldCBRLEU7aWYoby5nZXQoIklNIiwiSW1hZ2VNYXNrIil8fCExKXtjb25zdCBlPW8uZ2V0KCJJIiwiSW50ZXJwb2xhdGUiKSxpPWMrNz4+MyxuPXQuZ2V0Qnl0ZXMoaSpsKSxoPW8uZ2V0QXJyYXkoIkQiLCJEZWNvZGUiKTtpZih0aGlzLnBhcnNpbmdUeXBlM0ZvbnQpe1E9UERGSW1hZ2UuY3JlYXRlUmF3TWFzayh7aW1nQXJyYXk6bix3aWR0aDpjLGhlaWdodDpsLGltYWdlSXNGcm9tRGVjb2RlU3RyZWFtOnQgaW5zdGFuY2VvZiBEZWNvZGVTdHJlYW0saW52ZXJzZURlY29kZTpoPy5bMF0+MCxpbnRlcnBvbGF0ZTplfSk7US5jYWNoZWQ9ISFyO0U9W1FdO2EuYWRkSW1hZ2VPcHMoX2UsRSxDKTtpZihyKXtjb25zdCBlPXtmbjpfZSxhcmdzOkUsb3B0aW9uYWxDb250ZW50OkN9O3Muc2V0KHIsZyxlKTtnJiZ0aGlzLl9yZWdpb25hbEltYWdlQ2FjaGUuc2V0KG51bGwsZyxlKX1yZXR1cm59UT1hd2FpdCBQREZJbWFnZS5jcmVhdGVNYXNrKHtpbWdBcnJheTpuLHdpZHRoOmMsaGVpZ2h0OmwsaW1hZ2VJc0Zyb21EZWNvZGVTdHJlYW06dCBpbnN0YW5jZW9mIERlY29kZVN0cmVhbSxpbnZlcnNlRGVjb2RlOmg/LlswXT4wLGludGVycG9sYXRlOmUsaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQ6dGhpcy5vcHRpb25zLmlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkfSk7aWYoUS5pc1NpbmdsZU9wYXF1ZVBpeGVsKXthLmFkZEltYWdlT3BzKGF0LFtdLEMpO2lmKHIpe2NvbnN0IGU9e2ZuOmF0LGFyZ3M6W10sb3B0aW9uYWxDb250ZW50OkN9O3Muc2V0KHIsZyxlKTtnJiZ0aGlzLl9yZWdpb25hbEltYWdlQ2FjaGUuc2V0KG51bGwsZyxlKX1yZXR1cm59Y29uc3QgdT1gbWFza18ke3RoaXMuaWRGYWN0b3J5LmNyZWF0ZU9iaklkKCl9YDthLmFkZERlcGVuZGVuY3kodSk7US5kYXRhTGVuPVEuYml0bWFwP1Eud2lkdGgqUS5oZWlnaHQqNDpRLmRhdGEubGVuZ3RoO3RoaXMuX3NlbmRJbWdEYXRhKHUsUSk7RT1be2RhdGE6dSx3aWR0aDpRLndpZHRoLGhlaWdodDpRLmhlaWdodCxpbnRlcnBvbGF0ZTpRLmludGVycG9sYXRlLGNvdW50OjF9XTthLmFkZEltYWdlT3BzKF9lLEUsQyk7aWYocil7Y29uc3QgZT17b2JqSWQ6dSxmbjpfZSxhcmdzOkUsb3B0aW9uYWxDb250ZW50OkN9O3Muc2V0KHIsZyxlKTtnJiZ0aGlzLl9yZWdpb25hbEltYWdlQ2FjaGUuc2V0KG51bGwsZyxlKX1yZXR1cm59Y29uc3QgdT1vLmhhcygiU01hc2siKXx8by5oYXMoIk1hc2siKTtpZihpJiZjK2w8MjAwJiYhdSl7dHJ5e2NvbnN0IHI9bmV3IFBERkltYWdlKHt4cmVmOnRoaXMueHJlZixyZXM6ZSxpbWFnZTp0LGlzSW5saW5lOmkscGRmRnVuY3Rpb25GYWN0b3J5OnRoaXMuX3BkZkZ1bmN0aW9uRmFjdG9yeSxsb2NhbENvbG9yU3BhY2VDYWNoZTpufSk7UT1hd2FpdCByLmNyZWF0ZUltYWdlRGF0YSghMCwhMSk7YS5pc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZD10aGlzLm9wdGlvbnMuaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQ7YS5hZGRJbWFnZU9wcyhBdCxbUV0sQyl9Y2F0Y2goZSl7Y29uc3QgdD1gVW5hYmxlIHRvIGRlY29kZSBpbmxpbmUgaW1hZ2U6ICIke2V9Ii5gO2lmKCF0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXRocm93IG5ldyBFcnJvcih0KTt3YXJuKHQpfXJldHVybn1sZXQgZD1gaW1nXyR7dGhpcy5pZEZhY3RvcnkuY3JlYXRlT2JqSWQoKX1gLGY9ITE7aWYodGhpcy5wYXJzaW5nVHlwZTNGb250KWQ9YCR7dGhpcy5pZEZhY3RvcnkuZ2V0RG9jSWQoKX1fdHlwZTNfJHtkfWA7ZWxzZSBpZihyJiZnKXtmPXRoaXMuZ2xvYmFsSW1hZ2VDYWNoZS5zaG91bGRDYWNoZShnLHRoaXMucGFnZUluZGV4KTtpZihmKXthc3NlcnQoIWksIkNhbm5vdCBjYWNoZSBhbiBpbmxpbmUgaW1hZ2UgZ2xvYmFsbHkuIik7ZD1gJHt0aGlzLmlkRmFjdG9yeS5nZXREb2NJZCgpfV8ke2R9YH19YS5hZGREZXBlbmRlbmN5KGQpO0U9W2QsYyxsXTthLmFkZEltYWdlT3BzKCRlLEUsQyx1KTtpZihmKXtpZih0aGlzLmdsb2JhbEltYWdlQ2FjaGUuaGFzRGVjb2RlRmFpbGVkKGcpKXt0aGlzLmdsb2JhbEltYWdlQ2FjaGUuc2V0RGF0YShnLHtvYmpJZDpkLGZuOiRlLGFyZ3M6RSxvcHRpb25hbENvbnRlbnQ6QyxoYXNNYXNrOnUsYnl0ZVNpemU6MH0pO3RoaXMuX3NlbmRJbWdEYXRhKGQsbnVsbCxmKTtyZXR1cm59aWYoYypsPjI1ZTR8fHUpe2NvbnN0IGU9YXdhaXQgdGhpcy5oYW5kbGVyLnNlbmRXaXRoUHJvbWlzZSgiY29tbW9ub2JqIixbZCwiQ29weUxvY2FsSW1hZ2UiLHtpbWFnZVJlZjpnfV0pO2lmKGUpe3RoaXMuZ2xvYmFsSW1hZ2VDYWNoZS5zZXREYXRhKGcse29iaklkOmQsZm46JGUsYXJnczpFLG9wdGlvbmFsQ29udGVudDpDLGhhc01hc2s6dSxieXRlU2l6ZTowfSk7dGhpcy5nbG9iYWxJbWFnZUNhY2hlLmFkZEJ5dGVTaXplKGcsZSk7cmV0dXJufX19UERGSW1hZ2UuYnVpbGRJbWFnZSh7eHJlZjp0aGlzLnhyZWYscmVzOmUsaW1hZ2U6dCxpc0lubGluZTppLHBkZkZ1bmN0aW9uRmFjdG9yeTp0aGlzLl9wZGZGdW5jdGlvbkZhY3RvcnksbG9jYWxDb2xvclNwYWNlQ2FjaGU6bn0pLnRoZW4oKGFzeW5jIGU9PntRPWF3YWl0IGUuY3JlYXRlSW1hZ2VEYXRhKCExLHRoaXMub3B0aW9ucy5pc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZCk7US5kYXRhTGVuPVEuYml0bWFwP1Eud2lkdGgqUS5oZWlnaHQqNDpRLmRhdGEubGVuZ3RoO1EucmVmPWc7ZiYmdGhpcy5nbG9iYWxJbWFnZUNhY2hlLmFkZEJ5dGVTaXplKGcsUS5kYXRhTGVuKTtyZXR1cm4gdGhpcy5fc2VuZEltZ0RhdGEoZCxRLGYpfSkpLmNhdGNoKChlPT57d2FybihgVW5hYmxlIHRvIGRlY29kZSBpbWFnZSAiJHtkfSI6ICIke2V9Ii5gKTtnJiZ0aGlzLmdsb2JhbEltYWdlQ2FjaGUuYWRkRGVjb2RlRmFpbGVkKGcpO3JldHVybiB0aGlzLl9zZW5kSW1nRGF0YShkLG51bGwsZil9KSk7aWYocil7Y29uc3QgZT17b2JqSWQ6ZCxmbjokZSxhcmdzOkUsb3B0aW9uYWxDb250ZW50OkMsaGFzTWFzazp1fTtzLnNldChyLGcsZSk7aWYoZyl7dGhpcy5fcmVnaW9uYWxJbWFnZUNhY2hlLnNldChudWxsLGcsZSk7ZiYmdGhpcy5nbG9iYWxJbWFnZUNhY2hlLnNldERhdGEoZyx7b2JqSWQ6ZCxmbjokZSxhcmdzOkUsb3B0aW9uYWxDb250ZW50OkMsaGFzTWFzazp1LGJ5dGVTaXplOjB9KX19fWhhbmRsZVNNYXNrKGUsdCxpLGEscixzKXtjb25zdCBuPWUuZ2V0KCJHIiksbz17c3VidHlwZTplLmdldCgiUyIpLm5hbWUsYmFja2Ryb3A6ZS5nZXQoIkJDIil9LGc9ZS5nZXQoIlRSIik7aWYoaXNQREZGdW5jdGlvbihnKSl7Y29uc3QgZT10aGlzLl9wZGZGdW5jdGlvbkZhY3RvcnkuY3JlYXRlKGcpLHQ9bmV3IFVpbnQ4QXJyYXkoMjU2KSxpPW5ldyBGbG9hdDMyQXJyYXkoMSk7Zm9yKGxldCBhPTA7YTwyNTY7YSsrKXtpWzBdPWEvMjU1O2UoaSwwLGksMCk7dFthXT0yNTUqaVswXXwwfW8udHJhbnNmZXJNYXA9dH1yZXR1cm4gdGhpcy5idWlsZEZvcm1YT2JqZWN0KHQsbixvLGksYSxyLnN0YXRlLmNsb25lKCkscyl9aGFuZGxlVHJhbnNmZXJGdW5jdGlvbihlKXtsZXQgdDtpZihBcnJheS5pc0FycmF5KGUpKXQ9ZTtlbHNle2lmKCFpc1BERkZ1bmN0aW9uKGUpKXJldHVybiBudWxsO3Q9W2VdfWNvbnN0IGk9W107bGV0IGE9MCxyPTA7Zm9yKGNvbnN0IGUgb2YgdCl7Y29uc3QgdD10aGlzLnhyZWYuZmV0Y2hJZlJlZihlKTthKys7aWYoaXNOYW1lKHQsIklkZW50aXR5Iikpe2kucHVzaChudWxsKTtjb250aW51ZX1pZighaXNQREZGdW5jdGlvbih0KSlyZXR1cm4gbnVsbDtjb25zdCBzPXRoaXMuX3BkZkZ1bmN0aW9uRmFjdG9yeS5jcmVhdGUodCksbj1uZXcgVWludDhBcnJheSgyNTYpLG89bmV3IEZsb2F0MzJBcnJheSgxKTtmb3IobGV0IGU9MDtlPDI1NjtlKyspe29bMF09ZS8yNTU7cyhvLDAsbywwKTtuW2VdPTI1NSpvWzBdfDB9aS5wdXNoKG4pO3IrK31yZXR1cm4gMSE9PWEmJjQhPT1hfHwwPT09cj9udWxsOml9aGFuZGxlVGlsaW5nVHlwZShlLHQsaSxhLHIscyxuLG8pe2NvbnN0IGc9bmV3IE9wZXJhdG9yTGlzdCxjPURpY3QubWVyZ2Uoe3hyZWY6dGhpcy54cmVmLGRpY3RBcnJheTpbci5nZXQoIlJlc291cmNlcyIpLGldfSk7cmV0dXJuIHRoaXMuZ2V0T3BlcmF0b3JMaXN0KHtzdHJlYW06YSx0YXNrOm4scmVzb3VyY2VzOmMsb3BlcmF0b3JMaXN0Omd9KS50aGVuKChmdW5jdGlvbigpe2NvbnN0IGk9Zy5nZXRJUigpLGE9Z2V0VGlsaW5nUGF0dGVybklSKGkscix0KTtzLmFkZERlcGVuZGVuY2llcyhnLmRlcGVuZGVuY2llcyk7cy5hZGRPcChlLGEpO3Iub2JqSWQmJm8uc2V0KG51bGwsci5vYmpJZCx7b3BlcmF0b3JMaXN0SVI6aSxkaWN0OnJ9KX0pKS5jYXRjaCgoZT0+e2lmKCEoZSBpbnN0YW5jZW9mIEFib3J0RXhjZXB0aW9uKSl7aWYoIXRoaXMub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgZTt3YXJuKGBoYW5kbGVUaWxpbmdUeXBlIC0gaWdub3JpbmcgcGF0dGVybjogIiR7ZX0iLmApfX0pKX1hc3luYyBoYW5kbGVTZXRGb250KGUsdCxpLGEscixzLG49bnVsbCxvPW51bGwpe2NvbnN0IGc9dD8uWzBdaW5zdGFuY2VvZiBOYW1lP3RbMF0ubmFtZTpudWxsO2xldCBjPWF3YWl0IHRoaXMubG9hZEZvbnQoZyxpLGUsbixvKTtpZihjLmZvbnQuaXNUeXBlM0ZvbnQpdHJ5e2F3YWl0IGMubG9hZFR5cGUzRGF0YSh0aGlzLGUscik7YS5hZGREZXBlbmRlbmNpZXMoYy50eXBlM0RlcGVuZGVuY2llcyl9Y2F0Y2goZSl7Yz1uZXcgVHJhbnNsYXRlZEZvbnQoe2xvYWRlZE5hbWU6ImdfZm9udF9lcnJvciIsZm9udDpuZXcgRXJyb3JGb250KGBUeXBlMyBmb250IGxvYWQgZXJyb3I6ICR7ZX1gKSxkaWN0OmMuZm9udCxldmFsdWF0b3JPcHRpb25zOnRoaXMub3B0aW9uc30pfXMuZm9udD1jLmZvbnQ7Yy5zZW5kKHRoaXMuaGFuZGxlcik7cmV0dXJuIGMubG9hZGVkTmFtZX1oYW5kbGVUZXh0KGUsdCl7Y29uc3QgaT10LmZvbnQsYT1pLmNoYXJzVG9HbHlwaHMoZSk7aWYoaS5kYXRhKXsoISEodC50ZXh0UmVuZGVyaW5nTW9kZSZEKXx8IlBhdHRlcm4iPT09dC5maWxsQ29sb3JTcGFjZS5uYW1lfHxpLmRpc2FibGVGb250RmFjZXx8dGhpcy5vcHRpb25zLmRpc2FibGVGb250RmFjZSkmJlBhcnRpYWxFdmFsdWF0b3IuYnVpbGRGb250UGF0aHMoaSxhLHRoaXMuaGFuZGxlcix0aGlzLm9wdGlvbnMpfXJldHVybiBhfWVuc3VyZVN0YXRlRm9udChlKXtpZihlLmZvbnQpcmV0dXJuO2NvbnN0IHQ9bmV3IEZvcm1hdEVycm9yKCJNaXNzaW5nIHNldEZvbnQgKFRmKSBvcGVyYXRvciBiZWZvcmUgdGV4dCByZW5kZXJpbmcgb3BlcmF0b3IuIik7aWYoIXRoaXMub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgdDt3YXJuKGBlbnN1cmVTdGF0ZUZvbnQ6ICIke3R9Ii5gKX1hc3luYyBzZXRHU3RhdGUoe3Jlc291cmNlczplLGdTdGF0ZTp0LG9wZXJhdG9yTGlzdDppLGNhY2hlS2V5OmEsdGFzazpyLHN0YXRlTWFuYWdlcjpzLGxvY2FsR1N0YXRlQ2FjaGU6bixsb2NhbENvbG9yU3BhY2VDYWNoZTpvfSl7Y29uc3QgZz10Lm9iaklkO2xldCBjPSEwO2NvbnN0IGw9W107bGV0IGg9UHJvbWlzZS5yZXNvbHZlKCk7Zm9yKGNvbnN0IGEgb2YgdC5nZXRLZXlzKCkpe2NvbnN0IG49dC5nZXQoYSk7c3dpdGNoKGEpe2Nhc2UiVHlwZSI6YnJlYWs7Y2FzZSJMVyI6Y2FzZSJMQyI6Y2FzZSJMSiI6Y2FzZSJNTCI6Y2FzZSJEIjpjYXNlIlJJIjpjYXNlIkZMIjpjYXNlIkNBIjpjYXNlImNhIjpsLnB1c2goW2Esbl0pO2JyZWFrO2Nhc2UiRm9udCI6Yz0hMTtoPWgudGhlbigoKCk9PnRoaXMuaGFuZGxlU2V0Rm9udChlLG51bGwsblswXSxpLHIscy5zdGF0ZSkudGhlbigoZnVuY3Rpb24oZSl7aS5hZGREZXBlbmRlbmN5KGUpO2wucHVzaChbYSxbZSxuWzFdXV0pfSkpKSk7YnJlYWs7Y2FzZSJCTSI6bC5wdXNoKFthLG5vcm1hbGl6ZUJsZW5kTW9kZShuKV0pO2JyZWFrO2Nhc2UiU01hc2siOmlmKGlzTmFtZShuLCJOb25lIikpe2wucHVzaChbYSwhMV0pO2JyZWFrfWlmKG4gaW5zdGFuY2VvZiBEaWN0KXtjPSExO2g9aC50aGVuKCgoKT0+dGhpcy5oYW5kbGVTTWFzayhuLGUsaSxyLHMsbykpKTtsLnB1c2goW2EsITBdKX1lbHNlIHdhcm4oIlVuc3VwcG9ydGVkIFNNYXNrIHR5cGUiKTticmVhaztjYXNlIlRSIjpjb25zdCB0PXRoaXMuaGFuZGxlVHJhbnNmZXJGdW5jdGlvbihuKTtsLnB1c2goW2EsdF0pO2JyZWFrO2Nhc2UiT1AiOmNhc2Uib3AiOmNhc2UiT1BNIjpjYXNlIkJHIjpjYXNlIkJHMiI6Y2FzZSJVQ1IiOmNhc2UiVUNSMiI6Y2FzZSJUUjIiOmNhc2UiSFQiOmNhc2UiU00iOmNhc2UiU0EiOmNhc2UiQUlTIjpjYXNlIlRLIjppbmZvKCJncmFwaGljIHN0YXRlIG9wZXJhdG9yICIrYSk7YnJlYWs7ZGVmYXVsdDppbmZvKCJVbmtub3duIGdyYXBoaWMgc3RhdGUgb3BlcmF0b3IgIithKX19YXdhaXQgaDtsLmxlbmd0aD4wJiZpLmFkZE9wKFVBLFtsXSk7YyYmbi5zZXQoYSxnLGwpfWxvYWRGb250KGUsdCxpLGE9bnVsbCxyPW51bGwpe2NvbnN0IGVycm9yRm9udD1hc3luYygpPT5uZXcgVHJhbnNsYXRlZEZvbnQoe2xvYWRlZE5hbWU6ImdfZm9udF9lcnJvciIsZm9udDpuZXcgRXJyb3JGb250KGBGb250ICIke2V9IiBpcyBub3QgYXZhaWxhYmxlLmApLGRpY3Q6dCxldmFsdWF0b3JPcHRpb25zOnRoaXMub3B0aW9uc30pO2xldCBzO2lmKHQpdCBpbnN0YW5jZW9mIFJlZiYmKHM9dCk7ZWxzZXtjb25zdCB0PWkuZ2V0KCJGb250Iik7dCYmKHM9dC5nZXRSYXcoZSkpfWlmKHMpe2lmKHRoaXMudHlwZTNGb250UmVmcz8uaGFzKHMpKXJldHVybiBlcnJvckZvbnQoKTtpZih0aGlzLmZvbnRDYWNoZS5oYXMocykpcmV0dXJuIHRoaXMuZm9udENhY2hlLmdldChzKTt0cnl7dD10aGlzLnhyZWYuZmV0Y2hJZlJlZihzKX1jYXRjaChlKXt3YXJuKGBsb2FkRm9udCAtIGxvb2t1cCBmYWlsZWQ6ICIke2V9Ii5gKX19aWYoISh0IGluc3RhbmNlb2YgRGljdCkpe2lmKCF0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzJiYhdGhpcy5wYXJzaW5nVHlwZTNGb250KXt3YXJuKGBGb250ICIke2V9IiBpcyBub3QgYXZhaWxhYmxlLmApO3JldHVybiBlcnJvckZvbnQoKX13YXJuKGBGb250ICIke2V9IiBpcyBub3QgYXZhaWxhYmxlIC0tIGF0dGVtcHRpbmcgdG8gZmFsbGJhY2sgdG8gYSBkZWZhdWx0IGZvbnQuYCk7dD1hfHxQYXJ0aWFsRXZhbHVhdG9yLmZhbGxiYWNrRm9udERpY3R9aWYodC5jYWNoZUtleSYmdGhpcy5mb250Q2FjaGUuaGFzKHQuY2FjaGVLZXkpKXJldHVybiB0aGlzLmZvbnRDYWNoZS5nZXQodC5jYWNoZUtleSk7Y29uc3R7cHJvbWlzZTpuLHJlc29sdmU6b309UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7bGV0IGc7dHJ5e2c9dGhpcy5wcmVFdmFsdWF0ZUZvbnQodCk7Zy5jc3NGb250SW5mbz1yfWNhdGNoKGUpe3dhcm4oYGxvYWRGb250IC0gcHJlRXZhbHVhdGVGb250IGZhaWxlZDogIiR7ZX0iLmApO3JldHVybiBlcnJvckZvbnQoKX1jb25zdHtkZXNjcmlwdG9yOmMsaGFzaDpsfT1nLGg9cyBpbnN0YW5jZW9mIFJlZjtsZXQgQztpZihsJiZjIGluc3RhbmNlb2YgRGljdCl7Y29uc3QgZT1jLmZvbnRBbGlhc2VzfHw9T2JqZWN0LmNyZWF0ZShudWxsKTtpZihlW2xdKXtjb25zdCB0PWVbbF0uYWxpYXNSZWY7aWYoaCYmdCYmdGhpcy5mb250Q2FjaGUuaGFzKHQpKXt0aGlzLmZvbnRDYWNoZS5wdXRBbGlhcyhzLHQpO3JldHVybiB0aGlzLmZvbnRDYWNoZS5nZXQocyl9fWVsc2UgZVtsXT17Zm9udElEOnRoaXMuaWRGYWN0b3J5LmNyZWF0ZUZvbnRJZCgpfTtoJiYoZVtsXS5hbGlhc1JlZj1zKTtDPWVbbF0uZm9udElEfWVsc2UgQz10aGlzLmlkRmFjdG9yeS5jcmVhdGVGb250SWQoKTthc3NlcnQoQz8uc3RhcnRzV2l0aCgiZiIpLCdUaGUgImZvbnRJRCIgbXVzdCBiZSAoY29ycmVjdGx5KSBkZWZpbmVkLicpO2lmKGgpdGhpcy5mb250Q2FjaGUucHV0KHMsbik7ZWxzZXt0LmNhY2hlS2V5PWBjYWNoZUtleV8ke0N9YDt0aGlzLmZvbnRDYWNoZS5wdXQodC5jYWNoZUtleSxuKX10LmxvYWRlZE5hbWU9YCR7dGhpcy5pZEZhY3RvcnkuZ2V0RG9jSWQoKX1fJHtDfWA7dGhpcy50cmFuc2xhdGVGb250KGcpLnRoZW4oKGU9PntvKG5ldyBUcmFuc2xhdGVkRm9udCh7bG9hZGVkTmFtZTp0LmxvYWRlZE5hbWUsZm9udDplLGRpY3Q6dCxldmFsdWF0b3JPcHRpb25zOnRoaXMub3B0aW9uc30pKX0pKS5jYXRjaCgoZT0+e3dhcm4oYGxvYWRGb250IC0gdHJhbnNsYXRlRm9udCBmYWlsZWQ6ICIke2V9Ii5gKTtvKG5ldyBUcmFuc2xhdGVkRm9udCh7bG9hZGVkTmFtZTp0LmxvYWRlZE5hbWUsZm9udDpuZXcgRXJyb3JGb250KGUgaW5zdGFuY2VvZiBFcnJvcj9lLm1lc3NhZ2U6ZSksZGljdDp0LGV2YWx1YXRvck9wdGlvbnM6dGhpcy5vcHRpb25zfSkpfSkpO3JldHVybiBufWJ1aWxkUGF0aChlLHQsaSxhPSExKXtjb25zdCByPWUubGVuZ3RoLTE7aXx8KGk9W10pO2lmKHI8MHx8ZS5mbkFycmF5W3JdIT09cnQpe2lmKGEpe3dhcm4oYEVuY291bnRlcmVkIHBhdGggb3BlcmF0b3IgIiR7dH0iIGluc2lkZSBvZiBhIHRleHQgb2JqZWN0LmApO2UuYWRkT3AoeEEsbnVsbCl9bGV0IHI7c3dpdGNoKHQpe2Nhc2UgT0E6Y29uc3QgZT1pWzBdK2lbMl0sdD1pWzFdK2lbM107cj1bTWF0aC5taW4oaVswXSxlKSxNYXRoLm1pbihpWzFdLHQpLE1hdGgubWF4KGlbMF0sZSksTWF0aC5tYXgoaVsxXSx0KV07YnJlYWs7Y2FzZSBKQTpjYXNlIHZBOnI9W2lbMF0saVsxXSxpWzBdLGlbMV1dO2JyZWFrO2RlZmF1bHQ6cj1bMS8wLDEvMCwtMS8wLC0xLzBdfWUuYWRkT3AocnQsW1t0XSxpLHJdKTthJiZlLmFkZE9wKExBLG51bGwpfWVsc2V7Y29uc3QgYT1lLmFyZ3NBcnJheVtyXTthWzBdLnB1c2godCk7YVsxXS5wdXNoKC4uLmkpO2NvbnN0IHM9YVsyXTtzd2l0Y2godCl7Y2FzZSBPQTpjb25zdCBlPWlbMF0raVsyXSx0PWlbMV0raVszXTtzWzBdPU1hdGgubWluKHNbMF0saVswXSxlKTtzWzFdPU1hdGgubWluKHNbMV0saVsxXSx0KTtzWzJdPU1hdGgubWF4KHNbMl0saVswXSxlKTtzWzNdPU1hdGgubWF4KHNbM10saVsxXSx0KTticmVhaztjYXNlIEpBOmNhc2UgdkE6c1swXT1NYXRoLm1pbihzWzBdLGlbMF0pO3NbMV09TWF0aC5taW4oc1sxXSxpWzFdKTtzWzJdPU1hdGgubWF4KHNbMl0saVswXSk7c1szXT1NYXRoLm1heChzWzNdLGlbMV0pfX19cGFyc2VDb2xvclNwYWNlKHtjczplLHJlc291cmNlczp0LGxvY2FsQ29sb3JTcGFjZUNhY2hlOml9KXtyZXR1cm4gQ29sb3JTcGFjZS5wYXJzZUFzeW5jKHtjczplLHhyZWY6dGhpcy54cmVmLHJlc291cmNlczp0LHBkZkZ1bmN0aW9uRmFjdG9yeTp0aGlzLl9wZGZGdW5jdGlvbkZhY3RvcnksbG9jYWxDb2xvclNwYWNlQ2FjaGU6aX0pLmNhdGNoKChlPT57aWYoZSBpbnN0YW5jZW9mIEFib3J0RXhjZXB0aW9uKXJldHVybiBudWxsO2lmKHRoaXMub3B0aW9ucy5pZ25vcmVFcnJvcnMpe3dhcm4oYHBhcnNlQ29sb3JTcGFjZSAtIGlnbm9yaW5nIENvbG9yU3BhY2U6ICIke2V9Ii5gKTtyZXR1cm4gbnVsbH10aHJvdyBlfSkpfXBhcnNlU2hhZGluZyh7c2hhZGluZzplLHJlc291cmNlczp0LGxvY2FsQ29sb3JTcGFjZUNhY2hlOmksbG9jYWxTaGFkaW5nUGF0dGVybkNhY2hlOmF9KXtsZXQgcixzPWEuZ2V0KGUpO2lmKHMpcmV0dXJuIHM7dHJ5e3I9UGF0dGVybi5wYXJzZVNoYWRpbmcoZSx0aGlzLnhyZWYsdCx0aGlzLl9wZGZGdW5jdGlvbkZhY3RvcnksaSkuZ2V0SVIoKX1jYXRjaCh0KXtpZih0IGluc3RhbmNlb2YgQWJvcnRFeGNlcHRpb24pcmV0dXJuIG51bGw7aWYodGhpcy5vcHRpb25zLmlnbm9yZUVycm9ycyl7d2FybihgcGFyc2VTaGFkaW5nIC0gaWdub3Jpbmcgc2hhZGluZzogIiR7dH0iLmApO2Euc2V0KGUsbnVsbCk7cmV0dXJuIG51bGx9dGhyb3cgdH1zPWBwYXR0ZXJuXyR7dGhpcy5pZEZhY3RvcnkuY3JlYXRlT2JqSWQoKX1gO3RoaXMucGFyc2luZ1R5cGUzRm9udCYmKHM9YCR7dGhpcy5pZEZhY3RvcnkuZ2V0RG9jSWQoKX1fdHlwZTNfJHtzfWApO2Euc2V0KGUscyk7dGhpcy5wYXJzaW5nVHlwZTNGb250P3RoaXMuaGFuZGxlci5zZW5kKCJjb21tb25vYmoiLFtzLCJQYXR0ZXJuIixyXSk6dGhpcy5oYW5kbGVyLnNlbmQoIm9iaiIsW3MsdGhpcy5wYWdlSW5kZXgsIlBhdHRlcm4iLHJdKTtyZXR1cm4gc31oYW5kbGVDb2xvck4oZSx0LGksYSxyLHMsbixvLGcsYyl7Y29uc3QgbD1pLnBvcCgpO2lmKGwgaW5zdGFuY2VvZiBOYW1lKXtjb25zdCBoPXIuZ2V0UmF3KGwubmFtZSksQz1oIGluc3RhbmNlb2YgUmVmJiZnLmdldEJ5UmVmKGgpO2lmKEMpdHJ5e2NvbnN0IHI9YS5iYXNlP2EuYmFzZS5nZXRSZ2IoaSwwKTpudWxsLHM9Z2V0VGlsaW5nUGF0dGVybklSKEMub3BlcmF0b3JMaXN0SVIsQy5kaWN0LHIpO2UuYWRkT3AodCxzKTtyZXR1cm59Y2F0Y2h7fWNvbnN0IFE9dGhpcy54cmVmLmZldGNoSWZSZWYoaCk7aWYoUSl7Y29uc3Qgcj1RIGluc3RhbmNlb2YgQmFzZVN0cmVhbT9RLmRpY3Q6USxsPXIuZ2V0KCJQYXR0ZXJuVHlwZSIpO2lmKGw9PT15cil7Y29uc3Qgbz1hLmJhc2U/YS5iYXNlLmdldFJnYihpLDApOm51bGw7cmV0dXJuIHRoaXMuaGFuZGxlVGlsaW5nVHlwZSh0LG8scyxRLHIsZSxuLGcpfWlmKGw9PT13cil7Y29uc3QgaT1yLmdldCgiU2hhZGluZyIpLGE9dGhpcy5wYXJzZVNoYWRpbmcoe3NoYWRpbmc6aSxyZXNvdXJjZXM6cyxsb2NhbENvbG9yU3BhY2VDYWNoZTpvLGxvY2FsU2hhZGluZ1BhdHRlcm5DYWNoZTpjfSk7aWYoYSl7Y29uc3QgaT1sb29rdXBNYXRyaXgoci5nZXRBcnJheSgiTWF0cml4IiksbnVsbCk7ZS5hZGRPcCh0LFsiU2hhZGluZyIsYSxpXSl9cmV0dXJufXRocm93IG5ldyBGb3JtYXRFcnJvcihgVW5rbm93biBQYXR0ZXJuVHlwZTogJHtsfWApfX10aHJvdyBuZXcgRm9ybWF0RXJyb3IoYFVua25vd24gUGF0dGVybk5hbWU6ICR7bH1gKX1fcGFyc2VWaXNpYmlsaXR5RXhwcmVzc2lvbihlLHQsaSl7aWYoKyt0PjEwKXt3YXJuKCJWaXNpYmlsaXR5IGV4cHJlc3Npb24gaXMgdG9vIGRlZXBseSBuZXN0ZWQiKTtyZXR1cm59Y29uc3QgYT1lLmxlbmd0aCxyPXRoaXMueHJlZi5mZXRjaElmUmVmKGVbMF0pO2lmKCEoYTwyKSYmciBpbnN0YW5jZW9mIE5hbWUpe3N3aXRjaChyLm5hbWUpe2Nhc2UiQW5kIjpjYXNlIk9yIjpjYXNlIk5vdCI6aS5wdXNoKHIubmFtZSk7YnJlYWs7ZGVmYXVsdDp3YXJuKGBJbnZhbGlkIG9wZXJhdG9yICR7ci5uYW1lfSBpbiB2aXNpYmlsaXR5IGV4cHJlc3Npb25gKTtyZXR1cm59Zm9yKGxldCByPTE7cjxhO3IrKyl7Y29uc3QgYT1lW3JdLHM9dGhpcy54cmVmLmZldGNoSWZSZWYoYSk7aWYoQXJyYXkuaXNBcnJheShzKSl7Y29uc3QgZT1bXTtpLnB1c2goZSk7dGhpcy5fcGFyc2VWaXNpYmlsaXR5RXhwcmVzc2lvbihzLHQsZSl9ZWxzZSBhIGluc3RhbmNlb2YgUmVmJiZpLnB1c2goYS50b1N0cmluZygpKX19ZWxzZSB3YXJuKCJJbnZhbGlkIHZpc2liaWxpdHkgZXhwcmVzc2lvbiIpfWFzeW5jIHBhcnNlTWFya2VkQ29udGVudFByb3BzKGUsdCl7bGV0IGk7aWYoZSBpbnN0YW5jZW9mIE5hbWUpe2k9dC5nZXQoIlByb3BlcnRpZXMiKS5nZXQoZS5uYW1lKX1lbHNle2lmKCEoZSBpbnN0YW5jZW9mIERpY3QpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiT3B0aW9uYWwgY29udGVudCBwcm9wZXJ0aWVzIG1hbGZvcm1lZC4iKTtpPWV9Y29uc3QgYT1pLmdldCgiVHlwZSIpPy5uYW1lO2lmKCJPQ0ciPT09YSlyZXR1cm57dHlwZTphLGlkOmkub2JqSWR9O2lmKCJPQ01EIj09PWEpe2NvbnN0IGU9aS5nZXQoIlZFIik7aWYoQXJyYXkuaXNBcnJheShlKSl7Y29uc3QgdD1bXTt0aGlzLl9wYXJzZVZpc2liaWxpdHlFeHByZXNzaW9uKGUsMCx0KTtpZih0Lmxlbmd0aD4wKXJldHVybnt0eXBlOiJPQ01EIixleHByZXNzaW9uOnR9fWNvbnN0IHQ9aS5nZXQoIk9DR3MiKTtpZihBcnJheS5pc0FycmF5KHQpfHx0IGluc3RhbmNlb2YgRGljdCl7Y29uc3QgZT1bXTtpZihBcnJheS5pc0FycmF5KHQpKWZvcihjb25zdCBpIG9mIHQpZS5wdXNoKGkudG9TdHJpbmcoKSk7ZWxzZSBlLnB1c2godC5vYmpJZCk7cmV0dXJue3R5cGU6YSxpZHM6ZSxwb2xpY3k6aS5nZXQoIlAiKWluc3RhbmNlb2YgTmFtZT9pLmdldCgiUCIpLm5hbWU6bnVsbCxleHByZXNzaW9uOm51bGx9fWlmKHQgaW5zdGFuY2VvZiBSZWYpcmV0dXJue3R5cGU6YSxpZDp0LnRvU3RyaW5nKCl9fXJldHVybiBudWxsfWdldE9wZXJhdG9yTGlzdCh7c3RyZWFtOmUsdGFzazp0LHJlc291cmNlczppLG9wZXJhdG9yTGlzdDphLGluaXRpYWxTdGF0ZTpyPW51bGwsZmFsbGJhY2tGb250RGljdDpzPW51bGx9KXtpfHw9RGljdC5lbXB0eTtyfHw9bmV3IEV2YWxTdGF0ZTtpZighYSl0aHJvdyBuZXcgRXJyb3IoJ2dldE9wZXJhdG9yTGlzdDogbWlzc2luZyAib3BlcmF0b3JMaXN0IiBwYXJhbWV0ZXInKTtjb25zdCBuPXRoaXMsbz10aGlzLnhyZWY7bGV0IGc9ITE7Y29uc3QgYz1uZXcgTG9jYWxJbWFnZUNhY2hlLGw9bmV3IExvY2FsQ29sb3JTcGFjZUNhY2hlLGg9bmV3IExvY2FsR1N0YXRlQ2FjaGUsQz1uZXcgTG9jYWxUaWxpbmdQYXR0ZXJuQ2FjaGUsUT1uZXcgTWFwLEU9aS5nZXQoIlhPYmplY3QiKXx8RGljdC5lbXB0eSx1PWkuZ2V0KCJQYXR0ZXJuIil8fERpY3QuZW1wdHksZD1uZXcgU3RhdGVNYW5hZ2VyKHIpLGY9bmV3IEV2YWx1YXRvclByZXByb2Nlc3NvcihlLG8sZCkscD1uZXcgVGltZVNsb3RNYW5hZ2VyO2Z1bmN0aW9uIGNsb3NlUGVuZGluZ1Jlc3RvcmVPUFMoZSl7Zm9yKGxldCBlPTAsdD1mLnNhdmVkU3RhdGVzRGVwdGg7ZTx0O2UrKylhLmFkZE9wKExBLFtdKX1yZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uIHByb21pc2VCb2R5KGUscil7Y29uc3QgbmV4dD1mdW5jdGlvbih0KXtQcm9taXNlLmFsbChbdCxhLnJlYWR5XSkudGhlbigoZnVuY3Rpb24oKXt0cnl7cHJvbWlzZUJvZHkoZSxyKX1jYXRjaChlKXtyKGUpfX0pLHIpfTt0LmVuc3VyZU5vdFRlcm1pbmF0ZWQoKTtwLnJlc2V0KCk7Y29uc3QgbT17fTtsZXQgeSx3LGIsRCxTLGs7Zm9yKDshKHk9cC5jaGVjaygpKTspe20uYXJncz1udWxsO2lmKCFmLnJlYWQobSkpYnJlYWs7bGV0IGU9bS5hcmdzLHI9bS5mbjtzd2l0Y2goMHxyKXtjYXNlIEhlOms9ZVswXWluc3RhbmNlb2YgTmFtZTtTPWVbMF0ubmFtZTtpZihrKXtjb25zdCB0PWMuZ2V0QnlOYW1lKFMpO2lmKHQpe2FkZExvY2FsbHlDYWNoZWRJbWFnZU9wcyhhLHQpO2U9bnVsbDtjb250aW51ZX19bmV4dChuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSxyKXtpZighayl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlhPYmplY3QgbXVzdCBiZSByZWZlcnJlZCB0byBieSBuYW1lLiIpO2xldCBzPUUuZ2V0UmF3KFMpO2lmKHMgaW5zdGFuY2VvZiBSZWYpe2NvbnN0IHQ9Yy5nZXRCeVJlZihzKXx8bi5fcmVnaW9uYWxJbWFnZUNhY2hlLmdldEJ5UmVmKHMpO2lmKHQpe2FkZExvY2FsbHlDYWNoZWRJbWFnZU9wcyhhLHQpO2UoKTtyZXR1cm59Y29uc3QgaT1uLmdsb2JhbEltYWdlQ2FjaGUuZ2V0RGF0YShzLG4ucGFnZUluZGV4KTtpZihpKXthLmFkZERlcGVuZGVuY3koaS5vYmpJZCk7YS5hZGRJbWFnZU9wcyhpLmZuLGkuYXJncyxpLm9wdGlvbmFsQ29udGVudCxpLmhhc01hc2spO2UoKTtyZXR1cm59cz1vLmZldGNoKHMpfWlmKCEocyBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pKXRocm93IG5ldyBGb3JtYXRFcnJvcigiWE9iamVjdCBzaG91bGQgYmUgYSBzdHJlYW0iKTtjb25zdCBnPXMuZGljdC5nZXQoIlN1YnR5cGUiKTtpZighKGcgaW5zdGFuY2VvZiBOYW1lKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlhPYmplY3Qgc2hvdWxkIGhhdmUgYSBOYW1lIHN1YnR5cGUiKTtpZigiRm9ybSIhPT1nLm5hbWUpaWYoIkltYWdlIiE9PWcubmFtZSl7aWYoIlBTIiE9PWcubmFtZSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYFVuaGFuZGxlZCBYT2JqZWN0IHN1YnR5cGUgJHtnLm5hbWV9YCk7aW5mbygiSWdub3JlZCBYT2JqZWN0IHN1YnR5cGUgUFMiKTtlKCl9ZWxzZSBuLmJ1aWxkUGFpbnRJbWFnZVhPYmplY3Qoe3Jlc291cmNlczppLGltYWdlOnMsb3BlcmF0b3JMaXN0OmEsY2FjaGVLZXk6Uyxsb2NhbEltYWdlQ2FjaGU6Yyxsb2NhbENvbG9yU3BhY2VDYWNoZTpsfSkudGhlbihlLHIpO2Vsc2V7ZC5zYXZlKCk7bi5idWlsZEZvcm1YT2JqZWN0KGkscyxudWxsLGEsdCxkLnN0YXRlLmNsb25lKCksbCkudGhlbigoZnVuY3Rpb24oKXtkLnJlc3RvcmUoKTtlKCl9KSxyKX19KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe2lmKCEoZSBpbnN0YW5jZW9mIEFib3J0RXhjZXB0aW9uKSl7aWYoIW4ub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgZTt3YXJuKGBnZXRPcGVyYXRvckxpc3QgLSBpZ25vcmluZyBYT2JqZWN0OiAiJHtlfSIuYCl9fSkpKTtyZXR1cm47Y2FzZSBvZTpjb25zdCBmPWVbMV07bmV4dChuLmhhbmRsZVNldEZvbnQoaSxlLG51bGwsYSx0LGQuc3RhdGUscykudGhlbigoZnVuY3Rpb24oZSl7YS5hZGREZXBlbmRlbmN5KGUpO2EuYWRkT3Aob2UsW2UsZl0pfSkpKTtyZXR1cm47Y2FzZSB0ZTpnPSEwO2JyZWFrO2Nhc2UgaWU6Zz0hMTticmVhaztjYXNlIExlOmNvbnN0IHA9ZVswXS5jYWNoZUtleTtpZihwKXtjb25zdCB0PWMuZ2V0QnlOYW1lKHApO2lmKHQpe2FkZExvY2FsbHlDYWNoZWRJbWFnZU9wcyhhLHQpO2U9bnVsbDtjb250aW51ZX19bmV4dChuLmJ1aWxkUGFpbnRJbWFnZVhPYmplY3Qoe3Jlc291cmNlczppLGltYWdlOmVbMF0saXNJbmxpbmU6ITAsb3BlcmF0b3JMaXN0OmEsY2FjaGVLZXk6cCxsb2NhbEltYWdlQ2FjaGU6Yyxsb2NhbENvbG9yU3BhY2VDYWNoZTpsfSkpO3JldHVybjtjYXNlIEJlOmlmKCFkLnN0YXRlLmZvbnQpe24uZW5zdXJlU3RhdGVGb250KGQuc3RhdGUpO2NvbnRpbnVlfWVbMF09bi5oYW5kbGVUZXh0KGVbMF0sZC5zdGF0ZSk7YnJlYWs7Y2FzZSBRZTppZighZC5zdGF0ZS5mb250KXtuLmVuc3VyZVN0YXRlRm9udChkLnN0YXRlKTtjb250aW51ZX1jb25zdCBtPVtdLHk9ZC5zdGF0ZTtmb3IoY29uc3QgdCBvZiBlWzBdKSJzdHJpbmciPT10eXBlb2YgdD9tLnB1c2goLi4ubi5oYW5kbGVUZXh0KHQseSkpOiJudW1iZXIiPT10eXBlb2YgdCYmbS5wdXNoKHQpO2VbMF09bTtyPUJlO2JyZWFrO2Nhc2UgRWU6aWYoIWQuc3RhdGUuZm9udCl7bi5lbnN1cmVTdGF0ZUZvbnQoZC5zdGF0ZSk7Y29udGludWV9YS5hZGRPcChDZSk7ZVswXT1uLmhhbmRsZVRleHQoZVswXSxkLnN0YXRlKTtyPUJlO2JyZWFrO2Nhc2UgdWU6aWYoIWQuc3RhdGUuZm9udCl7bi5lbnN1cmVTdGF0ZUZvbnQoZC5zdGF0ZSk7Y29udGludWV9YS5hZGRPcChDZSk7YS5hZGRPcChyZSxbZS5zaGlmdCgpXSk7YS5hZGRPcChhZSxbZS5zaGlmdCgpXSk7ZVswXT1uLmhhbmRsZVRleHQoZVswXSxkLnN0YXRlKTtyPUJlO2JyZWFrO2Nhc2UgZ2U6ZC5zdGF0ZS50ZXh0UmVuZGVyaW5nTW9kZT1lWzBdO2JyZWFrO2Nhc2UgbWU6e2NvbnN0IHQ9Q29sb3JTcGFjZS5nZXRDYWNoZWQoZVswXSxvLGwpO2lmKHQpe2Quc3RhdGUuZmlsbENvbG9yU3BhY2U9dDtjb250aW51ZX1uZXh0KG4ucGFyc2VDb2xvclNwYWNlKHtjczplWzBdLHJlc291cmNlczppLGxvY2FsQ29sb3JTcGFjZUNhY2hlOmx9KS50aGVuKChmdW5jdGlvbihlKXtkLnN0YXRlLmZpbGxDb2xvclNwYWNlPWV8fENvbG9yU3BhY2Uuc2luZ2xldG9ucy5ncmF5fSkpKTtyZXR1cm59Y2FzZSBwZTp7Y29uc3QgdD1Db2xvclNwYWNlLmdldENhY2hlZChlWzBdLG8sbCk7aWYodCl7ZC5zdGF0ZS5zdHJva2VDb2xvclNwYWNlPXQ7Y29udGludWV9bmV4dChuLnBhcnNlQ29sb3JTcGFjZSh7Y3M6ZVswXSxyZXNvdXJjZXM6aSxsb2NhbENvbG9yU3BhY2VDYWNoZTpsfSkudGhlbigoZnVuY3Rpb24oZSl7ZC5zdGF0ZS5zdHJva2VDb2xvclNwYWNlPWV8fENvbG9yU3BhY2Uuc2luZ2xldG9ucy5ncmF5fSkpKTtyZXR1cm59Y2FzZSBiZTpEPWQuc3RhdGUuZmlsbENvbG9yU3BhY2U7ZT1ELmdldFJnYihlLDApO3I9UmU7YnJlYWs7Y2FzZSB5ZTpEPWQuc3RhdGUuc3Ryb2tlQ29sb3JTcGFjZTtlPUQuZ2V0UmdiKGUsMCk7cj1rZTticmVhaztjYXNlIFNlOmQuc3RhdGUuZmlsbENvbG9yU3BhY2U9Q29sb3JTcGFjZS5zaW5nbGV0b25zLmdyYXk7ZT1Db2xvclNwYWNlLnNpbmdsZXRvbnMuZ3JheS5nZXRSZ2IoZSwwKTtyPVJlO2JyZWFrO2Nhc2UgRmU6ZC5zdGF0ZS5zdHJva2VDb2xvclNwYWNlPUNvbG9yU3BhY2Uuc2luZ2xldG9ucy5ncmF5O2U9Q29sb3JTcGFjZS5zaW5nbGV0b25zLmdyYXkuZ2V0UmdiKGUsMCk7cj1rZTticmVhaztjYXNlIEdlOmQuc3RhdGUuZmlsbENvbG9yU3BhY2U9Q29sb3JTcGFjZS5zaW5nbGV0b25zLmNteWs7ZT1Db2xvclNwYWNlLnNpbmdsZXRvbnMuY215ay5nZXRSZ2IoZSwwKTtyPVJlO2JyZWFrO2Nhc2UgTmU6ZC5zdGF0ZS5zdHJva2VDb2xvclNwYWNlPUNvbG9yU3BhY2Uuc2luZ2xldG9ucy5jbXlrO2U9Q29sb3JTcGFjZS5zaW5nbGV0b25zLmNteWsuZ2V0UmdiKGUsMCk7cj1rZTticmVhaztjYXNlIFJlOmQuc3RhdGUuZmlsbENvbG9yU3BhY2U9Q29sb3JTcGFjZS5zaW5nbGV0b25zLnJnYjtlPUNvbG9yU3BhY2Uuc2luZ2xldG9ucy5yZ2IuZ2V0UmdiKGUsMCk7YnJlYWs7Y2FzZSBrZTpkLnN0YXRlLnN0cm9rZUNvbG9yU3BhY2U9Q29sb3JTcGFjZS5zaW5nbGV0b25zLnJnYjtlPUNvbG9yU3BhY2Uuc2luZ2xldG9ucy5yZ2IuZ2V0UmdiKGUsMCk7YnJlYWs7Y2FzZSBEZTpEPWQuc3RhdGUucGF0dGVybkZpbGxDb2xvclNwYWNlO2lmKCFEKXtpZihpc051bWJlckFycmF5KGUsbnVsbCkpe2U9Q29sb3JTcGFjZS5zaW5nbGV0b25zLmdyYXkuZ2V0UmdiKGUsMCk7cj1SZTticmVha31lPVtdO3I9bnQ7YnJlYWt9aWYoIlBhdHRlcm4iPT09RC5uYW1lKXtuZXh0KG4uaGFuZGxlQ29sb3JOKGEsRGUsZSxELHUsaSx0LGwsQyxRKSk7cmV0dXJufWU9RC5nZXRSZ2IoZSwwKTtyPVJlO2JyZWFrO2Nhc2Ugd2U6RD1kLnN0YXRlLnBhdHRlcm5TdHJva2VDb2xvclNwYWNlO2lmKCFEKXtpZihpc051bWJlckFycmF5KGUsbnVsbCkpe2U9Q29sb3JTcGFjZS5zaW5nbGV0b25zLmdyYXkuZ2V0UmdiKGUsMCk7cj1rZTticmVha31lPVtdO3I9c3Q7YnJlYWt9aWYoIlBhdHRlcm4iPT09RC5uYW1lKXtuZXh0KG4uaGFuZGxlQ29sb3JOKGEsd2UsZSxELHUsaSx0LGwsQyxRKSk7cmV0dXJufWU9RC5nZXRSZ2IoZSwwKTtyPWtlO2JyZWFrO2Nhc2UgTWU6bGV0IFI7dHJ5e2NvbnN0IHQ9aS5nZXQoIlNoYWRpbmciKTtpZighdCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIk5vIHNoYWRpbmcgcmVzb3VyY2UgZm91bmQiKTtSPXQuZ2V0KGVbMF0ubmFtZSk7aWYoIVIpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJObyBzaGFkaW5nIG9iamVjdCBmb3VuZCIpfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBBYm9ydEV4Y2VwdGlvbiljb250aW51ZTtpZihuLm9wdGlvbnMuaWdub3JlRXJyb3JzKXt3YXJuKGBnZXRPcGVyYXRvckxpc3QgLSBpZ25vcmluZyBTaGFkaW5nOiAiJHtlfSIuYCk7Y29udGludWV9dGhyb3cgZX1jb25zdCBOPW4ucGFyc2VTaGFkaW5nKHtzaGFkaW5nOlIscmVzb3VyY2VzOmksbG9jYWxDb2xvclNwYWNlQ2FjaGU6bCxsb2NhbFNoYWRpbmdQYXR0ZXJuQ2FjaGU6UX0pO2lmKCFOKWNvbnRpbnVlO2U9W05dO3I9TWU7YnJlYWs7Y2FzZSBVQTprPWVbMF1pbnN0YW5jZW9mIE5hbWU7Uz1lWzBdLm5hbWU7aWYoayl7Y29uc3QgdD1oLmdldEJ5TmFtZShTKTtpZih0KXt0Lmxlbmd0aD4wJiZhLmFkZE9wKFVBLFt0XSk7ZT1udWxsO2NvbnRpbnVlfX1uZXh0KG5ldyBQcm9taXNlKChmdW5jdGlvbihlLHIpe2lmKCFrKXRocm93IG5ldyBGb3JtYXRFcnJvcigiR1N0YXRlIG11c3QgYmUgcmVmZXJyZWQgdG8gYnkgbmFtZS4iKTtjb25zdCBzPWkuZ2V0KCJFeHRHU3RhdGUiKTtpZighKHMgaW5zdGFuY2VvZiBEaWN0KSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkV4dEdTdGF0ZSBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5LiIpO2NvbnN0IG89cy5nZXQoUyk7aWYoIShvIGluc3RhbmNlb2YgRGljdCkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJHU3RhdGUgc2hvdWxkIGJlIGEgZGljdGlvbmFyeS4iKTtuLnNldEdTdGF0ZSh7cmVzb3VyY2VzOmksZ1N0YXRlOm8sb3BlcmF0b3JMaXN0OmEsY2FjaGVLZXk6Uyx0YXNrOnQsc3RhdGVNYW5hZ2VyOmQsbG9jYWxHU3RhdGVDYWNoZTpoLGxvY2FsQ29sb3JTcGFjZUNhY2hlOmx9KS50aGVuKGUscil9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe2lmKCEoZSBpbnN0YW5jZW9mIEFib3J0RXhjZXB0aW9uKSl7aWYoIW4ub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgZTt3YXJuKGBnZXRPcGVyYXRvckxpc3QgLSBpZ25vcmluZyBFeHRHU3RhdGU6ICIke2V9Ii5gKX19KSkpO3JldHVybjtjYXNlIEpBOmNhc2UgdkE6Y2FzZSBZQTpjYXNlIEtBOmNhc2UgVEE6Y2FzZSBxQTpjYXNlIE9BOm4uYnVpbGRQYXRoKGEscixlLGcpO2NvbnRpbnVlO2Nhc2UgSmU6Y2FzZSB2ZTpjYXNlIHFlOmNhc2UgT2U6Y29udGludWU7Y2FzZSBLZTppZighKGVbMF1pbnN0YW5jZW9mIE5hbWUpKXt3YXJuKGBFeHBlY3RlZCBuYW1lIGZvciBiZWdpbk1hcmtlZENvbnRlbnRQcm9wcyBhcmcwPSR7ZVswXX1gKTthLmFkZE9wKEtlLFsiT0MiLG51bGxdKTtjb250aW51ZX1pZigiT0MiPT09ZVswXS5uYW1lKXtuZXh0KG4ucGFyc2VNYXJrZWRDb250ZW50UHJvcHMoZVsxXSxpKS50aGVuKChlPT57YS5hZGRPcChLZSxbIk9DIixlXSl9KSkuY2F0Y2goKGU9PntpZighKGUgaW5zdGFuY2VvZiBBYm9ydEV4Y2VwdGlvbikpe2lmKCFuLm9wdGlvbnMuaWdub3JlRXJyb3JzKXRocm93IGU7d2FybihgZ2V0T3BlcmF0b3JMaXN0IC0gaWdub3JpbmcgYmVnaW5NYXJrZWRDb250ZW50UHJvcHM6ICIke2V9Ii5gKTthLmFkZE9wKEtlLFsiT0MiLG51bGxdKX19KSkpO3JldHVybn1lPVtlWzBdLm5hbWUsZVsxXWluc3RhbmNlb2YgRGljdD9lWzFdLmdldCgiTUNJRCIpOm51bGxdO2JyZWFrO2RlZmF1bHQ6aWYobnVsbCE9PWUpe2Zvcih3PTAsYj1lLmxlbmd0aDt3PGImJiEoZVt3XWluc3RhbmNlb2YgRGljdCk7dysrKTtpZih3PGIpe3dhcm4oImdldE9wZXJhdG9yTGlzdCAtIGlnbm9yaW5nIG9wZXJhdG9yOiAiK3IpO2NvbnRpbnVlfX19YS5hZGRPcChyLGUpfWlmKHkpbmV4dChicik7ZWxzZXtjbG9zZVBlbmRpbmdSZXN0b3JlT1BTKCk7ZSgpfX0pKS5jYXRjaCgoZT0+e2lmKCEoZSBpbnN0YW5jZW9mIEFib3J0RXhjZXB0aW9uKSl7aWYoIXRoaXMub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgZTt3YXJuKGBnZXRPcGVyYXRvckxpc3QgLSBpZ25vcmluZyBlcnJvcnMgZHVyaW5nICIke3QubmFtZX0iIHRhc2s6ICIke2V9Ii5gKTtjbG9zZVBlbmRpbmdSZXN0b3JlT1BTKCl9fSkpfWdldFRleHRDb250ZW50KHtzdHJlYW06ZSx0YXNrOnQscmVzb3VyY2VzOmksc3RhdGVNYW5hZ2VyOnM9bnVsbCxpbmNsdWRlTWFya2VkQ29udGVudDpuPSExLHNpbms6byxzZWVuU3R5bGVzOmc9bmV3IFNldCx2aWV3Qm94OmMsbGFuZzpsPW51bGwsbWFya2VkQ29udGVudERhdGE6aD1udWxsLGRpc2FibGVOb3JtYWxpemF0aW9uOkM9ITEsa2VlcFdoaXRlU3BhY2U6UT0hMX0pe2l8fD1EaWN0LmVtcHR5O3N8fD1uZXcgU3RhdGVNYW5hZ2VyKG5ldyBUZXh0U3RhdGUpO24mJihofHw9e2xldmVsOjB9KTtjb25zdCBFPXtpdGVtczpbXSxzdHlsZXM6T2JqZWN0LmNyZWF0ZShudWxsKSxsYW5nOmx9LHU9e2luaXRpYWxpemVkOiExLHN0cjpbXSx0b3RhbFdpZHRoOjAsdG90YWxIZWlnaHQ6MCx3aWR0aDowLGhlaWdodDowLHZlcnRpY2FsOiExLHByZXZUcmFuc2Zvcm06bnVsbCx0ZXh0QWR2YW5jZVNjYWxlOjAsc3BhY2VJbkZsb3dNaW46MCxzcGFjZUluRmxvd01heDowLHRyYWNraW5nU3BhY2VNaW46MS8wLG5lZ2F0aXZlU3BhY2VNYXg6LTEvMCxub3RBU3BhY2U6LTEvMCx0cmFuc2Zvcm06bnVsbCxmb250TmFtZTpudWxsLGhhc0VPTDohMX0sZD1bIiAiLCIgIl07bGV0IGY9MDtmdW5jdGlvbiBzYXZlTGFzdENoYXIoZSl7Y29uc3QgdD0oZisxKSUyLGk9IiAiIT09ZFtmXSYmIiAiPT09ZFt0XTtkW2ZdPWU7Zj10O3JldHVybiFRJiZpfWZ1bmN0aW9uIHNob3VsZEFkZFdoaXRlcHNhY2UoKXtyZXR1cm4hUSYmIiAiIT09ZFtmXSYmIiAiPT09ZFsoZisxKSUyXX1mdW5jdGlvbiByZXNldExhc3RDaGFycygpe2RbMF09ZFsxXT0iICI7Zj0wfWNvbnN0IHA9dGhpcyxtPXRoaXMueHJlZix5PVtdO2xldCB3PW51bGw7Y29uc3QgYj1uZXcgTG9jYWxJbWFnZUNhY2hlLEQ9bmV3IExvY2FsR1N0YXRlQ2FjaGUsUz1uZXcgRXZhbHVhdG9yUHJlcHJvY2Vzc29yKGUsbSxzKTtsZXQgaztmdW5jdGlvbiBwdXNoV2hpdGVzcGFjZSh7d2lkdGg6ZT0wLGhlaWdodDp0PTAsdHJhbnNmb3JtOmk9dS5wcmV2VHJhbnNmb3JtLGZvbnROYW1lOmE9dS5mb250TmFtZX0pe0UuaXRlbXMucHVzaCh7c3RyOiIgIixkaXI6Imx0ciIsd2lkdGg6ZSxoZWlnaHQ6dCx0cmFuc2Zvcm06aSxmb250TmFtZTphLGhhc0VPTDohMX0pfWZ1bmN0aW9uIGdldEN1cnJlbnRUZXh0VHJhbnNmb3JtKCl7Y29uc3QgZT1rLmZvbnQsdD1bay5mb250U2l6ZSprLnRleHRIU2NhbGUsMCwwLGsuZm9udFNpemUsMCxrLnRleHRSaXNlXTtpZihlLmlzVHlwZTNGb250JiYoay5mb250U2l6ZTw9MXx8ZS5pc0NoYXJCQm94KSYmIWlzQXJyYXlFcXVhbChrLmZvbnRNYXRyaXgscikpe2NvbnN0IGk9ZS5iYm94WzNdLWUuYmJveFsxXTtpPjAmJih0WzNdKj1pKmsuZm9udE1hdHJpeFszXSl9cmV0dXJuIFV0aWwudHJhbnNmb3JtKGsuY3RtLFV0aWwudHJhbnNmb3JtKGsudGV4dE1hdHJpeCx0KSl9ZnVuY3Rpb24gZW5zdXJlVGV4dENvbnRlbnRJdGVtKCl7aWYodS5pbml0aWFsaXplZClyZXR1cm4gdTtjb25zdHtmb250OmUsbG9hZGVkTmFtZTp0fT1rO2lmKCFnLmhhcyh0KSl7Zy5hZGQodCk7RS5zdHlsZXNbdF09e2ZvbnRGYW1pbHk6ZS5mYWxsYmFja05hbWUsYXNjZW50OmUuYXNjZW50LGRlc2NlbnQ6ZS5kZXNjZW50LHZlcnRpY2FsOmUudmVydGljYWx9O2lmKHAub3B0aW9ucy5mb250RXh0cmFQcm9wZXJ0aWVzJiZlLnN5c3RlbUZvbnRJbmZvKXtjb25zdCBpPUUuc3R5bGVzW3RdO2kuZm9udFN1YnN0aXR1dGlvbj1lLnN5c3RlbUZvbnRJbmZvLmNzcztpLmZvbnRTdWJzdGl0dXRpb25Mb2FkZWROYW1lPWUuc3lzdGVtRm9udEluZm8ubG9hZGVkTmFtZX19dS5mb250TmFtZT10O2NvbnN0IGk9dS50cmFuc2Zvcm09Z2V0Q3VycmVudFRleHRUcmFuc2Zvcm0oKTtpZihlLnZlcnRpY2FsKXt1LndpZHRoPXUudG90YWxXaWR0aD1NYXRoLmh5cG90KGlbMF0saVsxXSk7dS5oZWlnaHQ9dS50b3RhbEhlaWdodD0wO3UudmVydGljYWw9ITB9ZWxzZXt1LndpZHRoPXUudG90YWxXaWR0aD0wO3UuaGVpZ2h0PXUudG90YWxIZWlnaHQ9TWF0aC5oeXBvdChpWzJdLGlbM10pO3UudmVydGljYWw9ITF9Y29uc3QgYT1NYXRoLmh5cG90KGsudGV4dExpbmVNYXRyaXhbMF0say50ZXh0TGluZU1hdHJpeFsxXSkscj1NYXRoLmh5cG90KGsuY3RtWzBdLGsuY3RtWzFdKTt1LnRleHRBZHZhbmNlU2NhbGU9ciphO2NvbnN0e2ZvbnRTaXplOnN9PWs7dS50cmFja2luZ1NwYWNlTWluPS4xMDIqczt1Lm5vdEFTcGFjZT0uMDMqczt1Lm5lZ2F0aXZlU3BhY2VNYXg9LS4yKnM7dS5zcGFjZUluRmxvd01pbj0uMTAyKnM7dS5zcGFjZUluRmxvd01heD0uNipzO3UuaGFzRU9MPSExO3UuaW5pdGlhbGl6ZWQ9ITA7cmV0dXJuIHV9ZnVuY3Rpb24gdXBkYXRlQWR2YW5jZVNjYWxlKCl7aWYoIXUuaW5pdGlhbGl6ZWQpcmV0dXJuO2NvbnN0IGU9TWF0aC5oeXBvdChrLnRleHRMaW5lTWF0cml4WzBdLGsudGV4dExpbmVNYXRyaXhbMV0pLHQ9TWF0aC5oeXBvdChrLmN0bVswXSxrLmN0bVsxXSkqZTtpZih0IT09dS50ZXh0QWR2YW5jZVNjYWxlKXtpZih1LnZlcnRpY2FsKXt1LnRvdGFsSGVpZ2h0Kz11LmhlaWdodCp1LnRleHRBZHZhbmNlU2NhbGU7dS5oZWlnaHQ9MH1lbHNle3UudG90YWxXaWR0aCs9dS53aWR0aCp1LnRleHRBZHZhbmNlU2NhbGU7dS53aWR0aD0wfXUudGV4dEFkdmFuY2VTY2FsZT10fX1mdW5jdGlvbiBydW5CaWRpVHJhbnNmb3JtKGUpe2xldCB0PWUuc3RyLmpvaW4oIiIpO0N8fCh0PWZ1bmN0aW9uIG5vcm1hbGl6ZVVuaWNvZGUoZSl7aWYoIUN0KXtDdD0vKFtcdTAwYTBcdTAwYjVcdTAzN2VcdTBlYjNcdTIwMDAtXHUyMDBhXHUyMDJmXHUyMTI2XHVmYjAwLVx1ZmIwNFx1ZmIwNlx1ZmIyMC1cdWZiMzZcdWZiMzgtXHVmYjNjXHVmYjNlXHVmYjQwLVx1ZmI0MVx1ZmI0My1cdWZiNDRcdWZiNDYtXHVmYmExXHVmYmE0LVx1ZmJhOVx1ZmJhZS1cdWZiYjFcdWZiZDMtXHVmYmRjXHVmYmRlLVx1ZmJlN1x1ZmJlYS1cdWZiZjhcdWZiZmMtXHVmYmZkXHVmYzAwLVx1ZmM1ZFx1ZmM2NC1cdWZjZjFcdWZjZjUtXHVmZDNkXHVmZDg4XHVmZGY0XHVmZGZhLVx1ZmRmYlx1ZmU3MVx1ZmU3N1x1ZmU3OVx1ZmU3Ylx1ZmU3ZF0rKXwoXHVmYjA1KykvZ3U7QnQ9bmV3IE1hcChbWyLvrIUiLCLFv3QiXV0pfXJldHVybiBlLnJlcGxhY2VBbGwoQ3QsKChlLHQsaSk9PnQ/dC5ub3JtYWxpemUoIk5GS0MiKTpCdC5nZXQoaSkpKX0odCkpO2NvbnN0IGk9YmlkaSh0LC0xLGUudmVydGljYWwpO3JldHVybntzdHI6aS5zdHIsZGlyOmkuZGlyLHdpZHRoOk1hdGguYWJzKGUudG90YWxXaWR0aCksaGVpZ2h0Ok1hdGguYWJzKGUudG90YWxIZWlnaHQpLHRyYW5zZm9ybTplLnRyYW5zZm9ybSxmb250TmFtZTplLmZvbnROYW1lLGhhc0VPTDplLmhhc0VPTH19YXN5bmMgZnVuY3Rpb24gaGFuZGxlU2V0Rm9udChlLGEpe2NvbnN0IHM9YXdhaXQgcC5sb2FkRm9udChlLGEsaSk7aWYocy5mb250LmlzVHlwZTNGb250KXRyeXthd2FpdCBzLmxvYWRUeXBlM0RhdGEocCxpLHQpfWNhdGNoe31rLmxvYWRlZE5hbWU9cy5sb2FkZWROYW1lO2suZm9udD1zLmZvbnQ7ay5mb250TWF0cml4PXMuZm9udC5mb250TWF0cml4fHxyfWZ1bmN0aW9uIGFwcGx5SW52ZXJzZVJvdGF0aW9uKGUsdCxpKXtjb25zdCBhPU1hdGguaHlwb3QoaVswXSxpWzFdKTtyZXR1cm5bKGlbMF0qZStpWzFdKnQpL2EsKGlbMl0qZStpWzNdKnQpL2FdfWZ1bmN0aW9uIGNvbXBhcmVXaXRoTGFzdFBvc2l0aW9uKGUpe2NvbnN0IHQ9Z2V0Q3VycmVudFRleHRUcmFuc2Zvcm0oKTtsZXQgaT10WzRdLGE9dFs1XTtpZihrLmZvbnQ/LnZlcnRpY2FsKXtpZihpPGNbMF18fGk+Y1syXXx8YStlPGNbMV18fGE+Y1szXSlyZXR1cm4hMX1lbHNlIGlmKGkrZTxjWzBdfHxpPmNbMl18fGE8Y1sxXXx8YT5jWzNdKXJldHVybiExO2lmKCFrLmZvbnR8fCF1LnByZXZUcmFuc2Zvcm0pcmV0dXJuITA7bGV0IHI9dS5wcmV2VHJhbnNmb3JtWzRdLHM9dS5wcmV2VHJhbnNmb3JtWzVdO2lmKHI9PT1pJiZzPT09YSlyZXR1cm4hMDtsZXQgbj0tMTt0WzBdJiYwPT09dFsxXSYmMD09PXRbMl0/bj10WzBdPjA/MDoxODA6dFsxXSYmMD09PXRbMF0mJjA9PT10WzNdJiYobj10WzFdPjA/OTA6MjcwKTtzd2l0Y2gobil7Y2FzZSAwOmJyZWFrO2Nhc2UgOTA6W2ksYV09W2EsaV07W3Isc109W3Mscl07YnJlYWs7Y2FzZSAxODA6W2ksYSxyLHNdPVstaSwtYSwtciwtc107YnJlYWs7Y2FzZSAyNzA6W2ksYV09Wy1hLC1pXTtbcixzXT1bLXMsLXJdO2JyZWFrO2RlZmF1bHQ6W2ksYV09YXBwbHlJbnZlcnNlUm90YXRpb24oaSxhLHQpO1tyLHNdPWFwcGx5SW52ZXJzZVJvdGF0aW9uKHIscyx1LnByZXZUcmFuc2Zvcm0pfWlmKGsuZm9udC52ZXJ0aWNhbCl7Y29uc3QgZT0ocy1hKS91LnRleHRBZHZhbmNlU2NhbGUsdD1pLXIsbj1NYXRoLnNpZ24odS5oZWlnaHQpO2lmKGU8bip1Lm5lZ2F0aXZlU3BhY2VNYXgpe2lmKE1hdGguYWJzKHQpPi41KnUud2lkdGgpe2FwcGVuZEVPTCgpO3JldHVybiEwfXJlc2V0TGFzdENoYXJzKCk7Zmx1c2hUZXh0Q29udGVudEl0ZW0oKTtyZXR1cm4hMH1pZihNYXRoLmFicyh0KT51LndpZHRoKXthcHBlbmRFT0woKTtyZXR1cm4hMH1lPD1uKnUubm90QVNwYWNlJiZyZXNldExhc3RDaGFycygpO2lmKGU8PW4qdS50cmFja2luZ1NwYWNlTWluKWlmKHNob3VsZEFkZFdoaXRlcHNhY2UoKSl7cmVzZXRMYXN0Q2hhcnMoKTtmbHVzaFRleHRDb250ZW50SXRlbSgpO3B1c2hXaGl0ZXNwYWNlKHtoZWlnaHQ6TWF0aC5hYnMoZSl9KX1lbHNlIHUuaGVpZ2h0Kz1lO2Vsc2UgaWYoIWFkZEZha2VTcGFjZXMoZSx1LnByZXZUcmFuc2Zvcm0sbikpaWYoMD09PXUuc3RyLmxlbmd0aCl7cmVzZXRMYXN0Q2hhcnMoKTtwdXNoV2hpdGVzcGFjZSh7aGVpZ2h0Ok1hdGguYWJzKGUpfSl9ZWxzZSB1LmhlaWdodCs9ZTtNYXRoLmFicyh0KT4uMjUqdS53aWR0aCYmZmx1c2hUZXh0Q29udGVudEl0ZW0oKTtyZXR1cm4hMH1jb25zdCBvPShpLXIpL3UudGV4dEFkdmFuY2VTY2FsZSxnPWEtcyxsPU1hdGguc2lnbih1LndpZHRoKTtpZihvPGwqdS5uZWdhdGl2ZVNwYWNlTWF4KXtpZihNYXRoLmFicyhnKT4uNSp1LmhlaWdodCl7YXBwZW5kRU9MKCk7cmV0dXJuITB9cmVzZXRMYXN0Q2hhcnMoKTtmbHVzaFRleHRDb250ZW50SXRlbSgpO3JldHVybiEwfWlmKE1hdGguYWJzKGcpPnUuaGVpZ2h0KXthcHBlbmRFT0woKTtyZXR1cm4hMH1vPD1sKnUubm90QVNwYWNlJiZyZXNldExhc3RDaGFycygpO2lmKG88PWwqdS50cmFja2luZ1NwYWNlTWluKWlmKHNob3VsZEFkZFdoaXRlcHNhY2UoKSl7cmVzZXRMYXN0Q2hhcnMoKTtmbHVzaFRleHRDb250ZW50SXRlbSgpO3B1c2hXaGl0ZXNwYWNlKHt3aWR0aDpNYXRoLmFicyhvKX0pfWVsc2UgdS53aWR0aCs9bztlbHNlIGlmKCFhZGRGYWtlU3BhY2VzKG8sdS5wcmV2VHJhbnNmb3JtLGwpKWlmKDA9PT11LnN0ci5sZW5ndGgpe3Jlc2V0TGFzdENoYXJzKCk7cHVzaFdoaXRlc3BhY2Uoe3dpZHRoOk1hdGguYWJzKG8pfSl9ZWxzZSB1LndpZHRoKz1vO01hdGguYWJzKGcpPi4yNSp1LmhlaWdodCYmZmx1c2hUZXh0Q29udGVudEl0ZW0oKTtyZXR1cm4hMH1mdW5jdGlvbiBidWlsZFRleHRDb250ZW50SXRlbSh7Y2hhcnM6ZSxleHRyYVNwYWNpbmc6dH0pe2NvbnN0IGk9ay5mb250O2lmKCFlKXtjb25zdCBlPWsuY2hhclNwYWNpbmcrdDtlJiYoaS52ZXJ0aWNhbD9rLnRyYW5zbGF0ZVRleHRNYXRyaXgoMCwtZSk6ay50cmFuc2xhdGVUZXh0TWF0cml4KGUqay50ZXh0SFNjYWxlLDApKTtRJiZjb21wYXJlV2l0aExhc3RQb3NpdGlvbigwKTtyZXR1cm59Y29uc3QgYT1pLmNoYXJzVG9HbHlwaHMoZSkscj1rLmZvbnRNYXRyaXhbMF0qay5mb250U2l6ZTtmb3IobGV0IGU9MCxzPWEubGVuZ3RoO2U8cztlKyspe2NvbnN0IG49YVtlXSx7Y2F0ZWdvcnk6b309bjtpZihvLmlzSW52aXNpYmxlRm9ybWF0TWFyayljb250aW51ZTtsZXQgZz1rLmNoYXJTcGFjaW5nKyhlKzE9PT1zP3Q6MCksYz1uLndpZHRoO2kudmVydGljYWwmJihjPW4udm1ldHJpYz9uLnZtZXRyaWNbMF06LWMpO2xldCBsPWMqcjtpZighUSYmby5pc1doaXRlc3BhY2Upe2lmKGkudmVydGljYWwpe2crPS1sK2sud29yZFNwYWNpbmc7ay50cmFuc2xhdGVUZXh0TWF0cml4KDAsLWcpfWVsc2V7Zys9bCtrLndvcmRTcGFjaW5nO2sudHJhbnNsYXRlVGV4dE1hdHJpeChnKmsudGV4dEhTY2FsZSwwKX1zYXZlTGFzdENoYXIoIiAiKTtjb250aW51ZX1pZighby5pc1plcm9XaWR0aERpYWNyaXRpYyYmIWNvbXBhcmVXaXRoTGFzdFBvc2l0aW9uKGwpKXtpLnZlcnRpY2FsP2sudHJhbnNsYXRlVGV4dE1hdHJpeCgwLGwpOmsudHJhbnNsYXRlVGV4dE1hdHJpeChsKmsudGV4dEhTY2FsZSwwKTtjb250aW51ZX1jb25zdCBoPWVuc3VyZVRleHRDb250ZW50SXRlbSgpO28uaXNaZXJvV2lkdGhEaWFjcml0aWMmJihsPTApO2lmKGkudmVydGljYWwpe2sudHJhbnNsYXRlVGV4dE1hdHJpeCgwLGwpO2w9TWF0aC5hYnMobCk7aC5oZWlnaHQrPWx9ZWxzZXtsKj1rLnRleHRIU2NhbGU7ay50cmFuc2xhdGVUZXh0TWF0cml4KGwsMCk7aC53aWR0aCs9bH1sJiYoaC5wcmV2VHJhbnNmb3JtPWdldEN1cnJlbnRUZXh0VHJhbnNmb3JtKCkpO2NvbnN0IEM9bi51bmljb2RlO3NhdmVMYXN0Q2hhcihDKSYmaC5zdHIucHVzaCgiICIpO2guc3RyLnB1c2goQyk7ZyYmKGkudmVydGljYWw/ay50cmFuc2xhdGVUZXh0TWF0cml4KDAsLWcpOmsudHJhbnNsYXRlVGV4dE1hdHJpeChnKmsudGV4dEhTY2FsZSwwKSl9fWZ1bmN0aW9uIGFwcGVuZEVPTCgpe3Jlc2V0TGFzdENoYXJzKCk7aWYodS5pbml0aWFsaXplZCl7dS5oYXNFT0w9ITA7Zmx1c2hUZXh0Q29udGVudEl0ZW0oKX1lbHNlIEUuaXRlbXMucHVzaCh7c3RyOiIiLGRpcjoibHRyIix3aWR0aDowLGhlaWdodDowLHRyYW5zZm9ybTpnZXRDdXJyZW50VGV4dFRyYW5zZm9ybSgpLGZvbnROYW1lOmsubG9hZGVkTmFtZSxoYXNFT0w6ITB9KX1mdW5jdGlvbiBhZGRGYWtlU3BhY2VzKGUsdCxpKXtpZihpKnUuc3BhY2VJbkZsb3dNaW48PWUmJmU8PWkqdS5zcGFjZUluRmxvd01heCl7aWYodS5pbml0aWFsaXplZCl7cmVzZXRMYXN0Q2hhcnMoKTt1LnN0ci5wdXNoKCIgIil9cmV0dXJuITF9Y29uc3QgYT11LmZvbnROYW1lO2xldCByPTA7aWYodS52ZXJ0aWNhbCl7cj1lO2U9MH1mbHVzaFRleHRDb250ZW50SXRlbSgpO3Jlc2V0TGFzdENoYXJzKCk7cHVzaFdoaXRlc3BhY2Uoe3dpZHRoOk1hdGguYWJzKGUpLGhlaWdodDpNYXRoLmFicyhyKSx0cmFuc2Zvcm06dHx8Z2V0Q3VycmVudFRleHRUcmFuc2Zvcm0oKSxmb250TmFtZTphfSk7cmV0dXJuITB9ZnVuY3Rpb24gZmx1c2hUZXh0Q29udGVudEl0ZW0oKXtpZih1LmluaXRpYWxpemVkJiZ1LnN0cil7dS52ZXJ0aWNhbD91LnRvdGFsSGVpZ2h0Kz11LmhlaWdodCp1LnRleHRBZHZhbmNlU2NhbGU6dS50b3RhbFdpZHRoKz11LndpZHRoKnUudGV4dEFkdmFuY2VTY2FsZTtFLml0ZW1zLnB1c2gocnVuQmlkaVRyYW5zZm9ybSh1KSk7dS5pbml0aWFsaXplZD0hMTt1LnN0ci5sZW5ndGg9MH19ZnVuY3Rpb24gZW5xdWV1ZUNodW5rKGU9ITEpe2NvbnN0IHQ9RS5pdGVtcy5sZW5ndGg7aWYoMCE9PXQmJiEoZSYmdDwxMCkpe28uZW5xdWV1ZShFLHQpO0UuaXRlbXM9W107RS5zdHlsZXM9T2JqZWN0LmNyZWF0ZShudWxsKX19Y29uc3QgUj1uZXcgVGltZVNsb3RNYW5hZ2VyO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24gcHJvbWlzZUJvZHkoZSxyKXtjb25zdCBuZXh0PWZ1bmN0aW9uKHQpe2VucXVldWVDaHVuayghMCk7UHJvbWlzZS5hbGwoW3Qsby5yZWFkeV0pLnRoZW4oKGZ1bmN0aW9uKCl7dHJ5e3Byb21pc2VCb2R5KGUscil9Y2F0Y2goZSl7cihlKX19KSxyKX07dC5lbnN1cmVOb3RUZXJtaW5hdGVkKCk7Ui5yZXNldCgpO2NvbnN0IHU9e307bGV0IGQsZixOLEc9W107Zm9yKDshKGQ9Ui5jaGVjaygpKTspe0cubGVuZ3RoPTA7dS5hcmdzPUc7aWYoIVMucmVhZCh1KSlicmVhaztjb25zdCBlPWs7az1zLnN0YXRlO2NvbnN0IHI9dS5mbjtHPXUuYXJncztzd2l0Y2goMHxyKXtjYXNlIG9lOmNvbnN0IHI9R1swXS5uYW1lLHU9R1sxXTtpZihrLmZvbnQmJnI9PT1rLmZvbnROYW1lJiZ1PT09ay5mb250U2l6ZSlicmVhaztmbHVzaFRleHRDb250ZW50SXRlbSgpO2suZm9udE5hbWU9cjtrLmZvbnRTaXplPXU7bmV4dChoYW5kbGVTZXRGb250KHIsbnVsbCkpO3JldHVybjtjYXNlIEllOmsudGV4dFJpc2U9R1swXTticmVhaztjYXNlIHNlOmsudGV4dEhTY2FsZT1HWzBdLzEwMDticmVhaztjYXNlIG5lOmsubGVhZGluZz1HWzBdO2JyZWFrO2Nhc2UgY2U6ay50cmFuc2xhdGVUZXh0TGluZU1hdHJpeChHWzBdLEdbMV0pO2sudGV4dE1hdHJpeD1rLnRleHRMaW5lTWF0cml4LnNsaWNlKCk7YnJlYWs7Y2FzZSBsZTprLmxlYWRpbmc9LUdbMV07ay50cmFuc2xhdGVUZXh0TGluZU1hdHJpeChHWzBdLEdbMV0pO2sudGV4dE1hdHJpeD1rLnRleHRMaW5lTWF0cml4LnNsaWNlKCk7YnJlYWs7Y2FzZSBDZTprLmNhcnJpYWdlUmV0dXJuKCk7YnJlYWs7Y2FzZSBoZTprLnNldFRleHRNYXRyaXgoR1swXSxHWzFdLEdbMl0sR1szXSxHWzRdLEdbNV0pO2suc2V0VGV4dExpbmVNYXRyaXgoR1swXSxHWzFdLEdbMl0sR1szXSxHWzRdLEdbNV0pO3VwZGF0ZUFkdmFuY2VTY2FsZSgpO2JyZWFrO2Nhc2UgYWU6ay5jaGFyU3BhY2luZz1HWzBdO2JyZWFrO2Nhc2UgcmU6ay53b3JkU3BhY2luZz1HWzBdO2JyZWFrO2Nhc2UgdGU6ay50ZXh0TWF0cml4PWEuc2xpY2UoKTtrLnRleHRMaW5lTWF0cml4PWEuc2xpY2UoKTticmVhaztjYXNlIFFlOmlmKCFzLnN0YXRlLmZvbnQpe3AuZW5zdXJlU3RhdGVGb250KHMuc3RhdGUpO2NvbnRpbnVlfWNvbnN0IGQ9KGsuZm9udC52ZXJ0aWNhbD8xOi0xKSprLmZvbnRTaXplLzFlMyxTPUdbMF07Zm9yKGxldCBlPTAsdD1TLmxlbmd0aDtlPHQ7ZSsrKXtjb25zdCB0PVNbZV07aWYoInN0cmluZyI9PXR5cGVvZiB0KXkucHVzaCh0KTtlbHNlIGlmKCJudW1iZXIiPT10eXBlb2YgdCYmMCE9PXQpe2NvbnN0IGU9eS5qb2luKCIiKTt5Lmxlbmd0aD0wO2J1aWxkVGV4dENvbnRlbnRJdGVtKHtjaGFyczplLGV4dHJhU3BhY2luZzp0KmR9KX19aWYoeS5sZW5ndGg+MCl7Y29uc3QgZT15LmpvaW4oIiIpO3kubGVuZ3RoPTA7YnVpbGRUZXh0Q29udGVudEl0ZW0oe2NoYXJzOmUsZXh0cmFTcGFjaW5nOjB9KX1icmVhaztjYXNlIEJlOmlmKCFzLnN0YXRlLmZvbnQpe3AuZW5zdXJlU3RhdGVGb250KHMuc3RhdGUpO2NvbnRpbnVlfWJ1aWxkVGV4dENvbnRlbnRJdGVtKHtjaGFyczpHWzBdLGV4dHJhU3BhY2luZzowfSk7YnJlYWs7Y2FzZSBFZTppZighcy5zdGF0ZS5mb250KXtwLmVuc3VyZVN0YXRlRm9udChzLnN0YXRlKTtjb250aW51ZX1rLmNhcnJpYWdlUmV0dXJuKCk7YnVpbGRUZXh0Q29udGVudEl0ZW0oe2NoYXJzOkdbMF0sZXh0cmFTcGFjaW5nOjB9KTticmVhaztjYXNlIHVlOmlmKCFzLnN0YXRlLmZvbnQpe3AuZW5zdXJlU3RhdGVGb250KHMuc3RhdGUpO2NvbnRpbnVlfWsud29yZFNwYWNpbmc9R1swXTtrLmNoYXJTcGFjaW5nPUdbMV07ay5jYXJyaWFnZVJldHVybigpO2J1aWxkVGV4dENvbnRlbnRJdGVtKHtjaGFyczpHWzJdLGV4dHJhU3BhY2luZzowfSk7YnJlYWs7Y2FzZSBIZTpmbHVzaFRleHRDb250ZW50SXRlbSgpO3c/Pz1pLmdldCgiWE9iamVjdCIpfHxEaWN0LmVtcHR5O049R1swXWluc3RhbmNlb2YgTmFtZTtmPUdbMF0ubmFtZTtpZihOJiZiLmdldEJ5TmFtZShmKSlicmVhaztuZXh0KG5ldyBQcm9taXNlKChmdW5jdGlvbihlLGEpe2lmKCFOKXRocm93IG5ldyBGb3JtYXRFcnJvcigiWE9iamVjdCBtdXN0IGJlIHJlZmVycmVkIHRvIGJ5IG5hbWUuIik7bGV0IHI9dy5nZXRSYXcoZik7aWYociBpbnN0YW5jZW9mIFJlZil7aWYoYi5nZXRCeVJlZihyKSl7ZSgpO3JldHVybn1pZihwLmdsb2JhbEltYWdlQ2FjaGUuZ2V0RGF0YShyLHAucGFnZUluZGV4KSl7ZSgpO3JldHVybn1yPW0uZmV0Y2gocil9aWYoIShyIGluc3RhbmNlb2YgQmFzZVN0cmVhbSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJYT2JqZWN0IHNob3VsZCBiZSBhIHN0cmVhbSIpO2NvbnN0IEU9ci5kaWN0LmdldCgiU3VidHlwZSIpO2lmKCEoRSBpbnN0YW5jZW9mIE5hbWUpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiWE9iamVjdCBzaG91bGQgaGF2ZSBhIE5hbWUgc3VidHlwZSIpO2lmKCJGb3JtIiE9PUUubmFtZSl7Yi5zZXQoZixyLmRpY3Qub2JqSWQsITApO2UoKTtyZXR1cm59Y29uc3QgdT1zLnN0YXRlLmNsb25lKCksZD1uZXcgU3RhdGVNYW5hZ2VyKHUpLHk9bG9va3VwTWF0cml4KHIuZGljdC5nZXRBcnJheSgiTWF0cml4IiksbnVsbCk7eSYmZC50cmFuc2Zvcm0oeSk7ZW5xdWV1ZUNodW5rKCk7Y29uc3QgRD17ZW5xdWV1ZUludm9rZWQ6ITEsZW5xdWV1ZShlLHQpe3RoaXMuZW5xdWV1ZUludm9rZWQ9ITA7by5lbnF1ZXVlKGUsdCl9LGdldCBkZXNpcmVkU2l6ZSgpe3JldHVybiBvLmRlc2lyZWRTaXplfSxnZXQgcmVhZHkoKXtyZXR1cm4gby5yZWFkeX19O3AuZ2V0VGV4dENvbnRlbnQoe3N0cmVhbTpyLHRhc2s6dCxyZXNvdXJjZXM6ci5kaWN0LmdldCgiUmVzb3VyY2VzIil8fGksc3RhdGVNYW5hZ2VyOmQsaW5jbHVkZU1hcmtlZENvbnRlbnQ6bixzaW5rOkQsc2VlblN0eWxlczpnLHZpZXdCb3g6YyxsYW5nOmwsbWFya2VkQ29udGVudERhdGE6aCxkaXNhYmxlTm9ybWFsaXphdGlvbjpDLGtlZXBXaGl0ZVNwYWNlOlF9KS50aGVuKChmdW5jdGlvbigpe0QuZW5xdWV1ZUludm9rZWR8fGIuc2V0KGYsci5kaWN0Lm9iaklkLCEwKTtlKCl9KSxhKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7aWYoIShlIGluc3RhbmNlb2YgQWJvcnRFeGNlcHRpb24pKXtpZighcC5vcHRpb25zLmlnbm9yZUVycm9ycyl0aHJvdyBlO3dhcm4oYGdldFRleHRDb250ZW50IC0gaWdub3JpbmcgWE9iamVjdDogIiR7ZX0iLmApfX0pKSk7cmV0dXJuO2Nhc2UgVUE6Tj1HWzBdaW5zdGFuY2VvZiBOYW1lO2Y9R1swXS5uYW1lO2lmKE4mJkQuZ2V0QnlOYW1lKGYpKWJyZWFrO25leHQobmV3IFByb21pc2UoKGZ1bmN0aW9uKGUsdCl7aWYoIU4pdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJHU3RhdGUgbXVzdCBiZSByZWZlcnJlZCB0byBieSBuYW1lLiIpO2NvbnN0IGE9aS5nZXQoIkV4dEdTdGF0ZSIpO2lmKCEoYSBpbnN0YW5jZW9mIERpY3QpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiRXh0R1N0YXRlIHNob3VsZCBiZSBhIGRpY3Rpb25hcnkuIik7Y29uc3Qgcj1hLmdldChmKTtpZighKHIgaW5zdGFuY2VvZiBEaWN0KSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkdTdGF0ZSBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5LiIpO2NvbnN0IHM9ci5nZXQoIkZvbnQiKTtpZihzKXtmbHVzaFRleHRDb250ZW50SXRlbSgpO2suZm9udE5hbWU9bnVsbDtrLmZvbnRTaXplPXNbMV07aGFuZGxlU2V0Rm9udChudWxsLHNbMF0pLnRoZW4oZSx0KX1lbHNle0Quc2V0KGYsci5vYmpJZCwhMCk7ZSgpfX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7aWYoIShlIGluc3RhbmNlb2YgQWJvcnRFeGNlcHRpb24pKXtpZighcC5vcHRpb25zLmlnbm9yZUVycm9ycyl0aHJvdyBlO3dhcm4oYGdldFRleHRDb250ZW50IC0gaWdub3JpbmcgRXh0R1N0YXRlOiAiJHtlfSIuYCl9fSkpKTtyZXR1cm47Y2FzZSBZZTpmbHVzaFRleHRDb250ZW50SXRlbSgpO2lmKG4pe2gubGV2ZWwrKztFLml0ZW1zLnB1c2goe3R5cGU6ImJlZ2luTWFya2VkQ29udGVudCIsdGFnOkdbMF1pbnN0YW5jZW9mIE5hbWU/R1swXS5uYW1lOm51bGx9KX1icmVhaztjYXNlIEtlOmZsdXNoVGV4dENvbnRlbnRJdGVtKCk7aWYobil7aC5sZXZlbCsrO2xldCBlPW51bGw7R1sxXWluc3RhbmNlb2YgRGljdCYmKGU9R1sxXS5nZXQoIk1DSUQiKSk7RS5pdGVtcy5wdXNoKHt0eXBlOiJiZWdpbk1hcmtlZENvbnRlbnRQcm9wcyIsaWQ6TnVtYmVyLmlzSW50ZWdlcihlKT9gJHtwLmlkRmFjdG9yeS5nZXRQYWdlT2JqSWQoKX1fbWMke2V9YDpudWxsLHRhZzpHWzBdaW5zdGFuY2VvZiBOYW1lP0dbMF0ubmFtZTpudWxsfSl9YnJlYWs7Y2FzZSBUZTpmbHVzaFRleHRDb250ZW50SXRlbSgpO2lmKG4pe2lmKDA9PT1oLmxldmVsKWJyZWFrO2gubGV2ZWwtLTtFLml0ZW1zLnB1c2goe3R5cGU6ImVuZE1hcmtlZENvbnRlbnQifSl9YnJlYWs7Y2FzZSBMQTohZXx8ZS5mb250PT09ay5mb250JiZlLmZvbnRTaXplPT09ay5mb250U2l6ZSYmZS5mb250TmFtZT09PWsuZm9udE5hbWV8fGZsdXNoVGV4dENvbnRlbnRJdGVtKCl9aWYoRS5pdGVtcy5sZW5ndGg+PW8uZGVzaXJlZFNpemUpe2Q9ITA7YnJlYWt9fWlmKGQpbmV4dChicik7ZWxzZXtmbHVzaFRleHRDb250ZW50SXRlbSgpO2VucXVldWVDaHVuaygpO2UoKX19KSkuY2F0Y2goKGU9PntpZighKGUgaW5zdGFuY2VvZiBBYm9ydEV4Y2VwdGlvbikpe2lmKCF0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXRocm93IGU7d2FybihgZ2V0VGV4dENvbnRlbnQgLSBpZ25vcmluZyBlcnJvcnMgZHVyaW5nICIke3QubmFtZX0iIHRhc2s6ICIke2V9Ii5gKTtmbHVzaFRleHRDb250ZW50SXRlbSgpO2VucXVldWVDaHVuaygpfX0pKX1hc3luYyBleHRyYWN0RGF0YVN0cnVjdHVyZXMoZSx0KXtjb25zdCBpPXRoaXMueHJlZjtsZXQgYTtjb25zdCByPXRoaXMucmVhZFRvVW5pY29kZSh0LnRvVW5pY29kZSk7aWYodC5jb21wb3NpdGUpe2NvbnN0IGk9ZS5nZXQoIkNJRFN5c3RlbUluZm8iKTtpIGluc3RhbmNlb2YgRGljdCYmKHQuY2lkU3lzdGVtSW5mbz17cmVnaXN0cnk6c3RyaW5nVG9QREZTdHJpbmcoaS5nZXQoIlJlZ2lzdHJ5IikpLG9yZGVyaW5nOnN0cmluZ1RvUERGU3RyaW5nKGkuZ2V0KCJPcmRlcmluZyIpKSxzdXBwbGVtZW50OmkuZ2V0KCJTdXBwbGVtZW50Iil9KTt0cnl7Y29uc3QgdD1lLmdldCgiQ0lEVG9HSURNYXAiKTt0IGluc3RhbmNlb2YgQmFzZVN0cmVhbSYmKGE9dC5nZXRCeXRlcygpKX1jYXRjaChlKXtpZighdGhpcy5vcHRpb25zLmlnbm9yZUVycm9ycyl0aHJvdyBlO3dhcm4oYGV4dHJhY3REYXRhU3RydWN0dXJlcyAtIGlnbm9yaW5nIENJRFRvR0lETWFwIGRhdGE6ICIke2V9Ii5gKX19Y29uc3Qgcz1bXTtsZXQgbixvPW51bGw7aWYoZS5oYXMoIkVuY29kaW5nIikpe249ZS5nZXQoIkVuY29kaW5nIik7aWYobiBpbnN0YW5jZW9mIERpY3Qpe289bi5nZXQoIkJhc2VFbmNvZGluZyIpO289byBpbnN0YW5jZW9mIE5hbWU/by5uYW1lOm51bGw7aWYobi5oYXMoIkRpZmZlcmVuY2VzIikpe2NvbnN0IGU9bi5nZXQoIkRpZmZlcmVuY2VzIik7bGV0IHQ9MDtmb3IoY29uc3QgYSBvZiBlKXtjb25zdCBlPWkuZmV0Y2hJZlJlZihhKTtpZigibnVtYmVyIj09dHlwZW9mIGUpdD1lO2Vsc2V7aWYoIShlIGluc3RhbmNlb2YgTmFtZSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBJbnZhbGlkIGVudHJ5IGluICdEaWZmZXJlbmNlcycgYXJyYXk6ICR7ZX1gKTtzW3QrK109ZS5uYW1lfX19fWVsc2UgaWYobiBpbnN0YW5jZW9mIE5hbWUpbz1uLm5hbWU7ZWxzZXtjb25zdCBlPSJFbmNvZGluZyBpcyBub3QgYSBOYW1lIG5vciBhIERpY3QiO2lmKCF0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXRocm93IG5ldyBGb3JtYXRFcnJvcihlKTt3YXJuKGUpfSJNYWNSb21hbkVuY29kaW5nIiE9PW8mJiJNYWNFeHBlcnRFbmNvZGluZyIhPT1vJiYiV2luQW5zaUVuY29kaW5nIiE9PW8mJihvPW51bGwpfWNvbnN0IGc9IXQuZmlsZXx8dC5pc0ludGVybmFsRm9udCxjPVBpKClbdC5uYW1lXTtvJiZnJiZjJiYobz1udWxsKTtpZihvKXQuZGVmYXVsdEVuY29kaW5nPWdldEVuY29kaW5nKG8pO2Vsc2V7Y29uc3QgZT0hISh0LmZsYWdzJkhpKSxpPSEhKHQuZmxhZ3MmSmkpO249Qmk7IlRydWVUeXBlIiE9PXQudHlwZXx8aXx8KG49UWkpO2lmKGV8fGMpe249Q2k7ZyYmKC9TeW1ib2wvaS50ZXN0KHQubmFtZSk/bj1FaTovRGluZ2JhdHMvaS50ZXN0KHQubmFtZSk/bj11aTovV2luZ2RpbmdzL2kudGVzdCh0Lm5hbWUpJiYobj1RaSkpfXQuZGVmYXVsdEVuY29kaW5nPW59dC5kaWZmZXJlbmNlcz1zO3QuYmFzZUVuY29kaW5nTmFtZT1vO3QuaGFzRW5jb2Rpbmc9ISFvfHxzLmxlbmd0aD4wO3QuZGljdD1lO3QudG9Vbmljb2RlPWF3YWl0IHI7Y29uc3QgbD1hd2FpdCB0aGlzLmJ1aWxkVG9Vbmljb2RlKHQpO3QudG9Vbmljb2RlPWw7YSYmKHQuY2lkVG9HaWRNYXA9dGhpcy5yZWFkQ2lkVG9HaWRNYXAoYSxsKSk7cmV0dXJuIHR9X3NpbXBsZUZvbnRUb1VuaWNvZGUoZSx0PSExKXthc3NlcnQoIWUuY29tcG9zaXRlLCJNdXN0IGJlIGEgc2ltcGxlIGZvbnQuIik7Y29uc3QgaT1bXSxhPWUuZGVmYXVsdEVuY29kaW5nLnNsaWNlKCkscj1lLmJhc2VFbmNvZGluZ05hbWUscz1lLmRpZmZlcmVuY2VzO2Zvcihjb25zdCBlIGluIHMpe2NvbnN0IHQ9c1tlXTsiLm5vdGRlZiIhPT10JiYoYVtlXT10KX1jb25zdCBuPURpKCk7Zm9yKGNvbnN0IHMgaW4gYSl7bGV0IG89YVtzXTtpZigiIj09PW8pY29udGludWU7bGV0IGc9bltvXTtpZih2b2lkIDAhPT1nKXtpW3NdPVN0cmluZy5mcm9tQ2hhckNvZGUoZyk7Y29udGludWV9bGV0IGM9MDtzd2l0Y2gob1swXSl7Y2FzZSJHIjozPT09by5sZW5ndGgmJihjPXBhcnNlSW50KG8uc3Vic3RyaW5nKDEpLDE2KSk7YnJlYWs7Y2FzZSJnIjo1PT09by5sZW5ndGgmJihjPXBhcnNlSW50KG8uc3Vic3RyaW5nKDEpLDE2KSk7YnJlYWs7Y2FzZSJDIjpjYXNlImMiOmlmKG8ubGVuZ3RoPj0zJiZvLmxlbmd0aDw9NCl7Y29uc3QgaT1vLnN1YnN0cmluZygxKTtpZih0KXtjPXBhcnNlSW50KGksMTYpO2JyZWFrfWM9K2k7aWYoTnVtYmVyLmlzTmFOKGMpJiZOdW1iZXIuaXNJbnRlZ2VyKHBhcnNlSW50KGksMTYpKSlyZXR1cm4gdGhpcy5fc2ltcGxlRm9udFRvVW5pY29kZShlLCEwKX1icmVhaztjYXNlInUiOmc9Z2V0VW5pY29kZUZvckdseXBoKG8sbik7LTEhPT1nJiYoYz1nKTticmVhaztkZWZhdWx0OnN3aXRjaChvKXtjYXNlImZfaCI6Y2FzZSJmX3QiOmNhc2UiVF9oIjppW3NdPW8ucmVwbGFjZUFsbCgiXyIsIiIpO2NvbnRpbnVlfX1pZihjPjAmJmM8PTExMTQxMTEmJk51bWJlci5pc0ludGVnZXIoYykpe2lmKHImJmM9PT0rcyl7Y29uc3QgZT1nZXRFbmNvZGluZyhyKTtpZihlJiYobz1lW3NdKSl7aVtzXT1TdHJpbmcuZnJvbUNoYXJDb2RlKG5bb10pO2NvbnRpbnVlfX1pW3NdPVN0cmluZy5mcm9tQ29kZVBvaW50KGMpfX1yZXR1cm4gaX1hc3luYyBidWlsZFRvVW5pY29kZShlKXtlLmhhc0luY2x1ZGVkVG9Vbmljb2RlTWFwPWUudG9Vbmljb2RlPy5sZW5ndGg+MDtpZihlLmhhc0luY2x1ZGVkVG9Vbmljb2RlTWFwKXshZS5jb21wb3NpdGUmJmUuaGFzRW5jb2RpbmcmJihlLmZhbGxiYWNrVG9Vbmljb2RlPXRoaXMuX3NpbXBsZUZvbnRUb1VuaWNvZGUoZSkpO3JldHVybiBlLnRvVW5pY29kZX1pZighZS5jb21wb3NpdGUpcmV0dXJuIG5ldyBUb1VuaWNvZGVNYXAodGhpcy5fc2ltcGxlRm9udFRvVW5pY29kZShlKSk7aWYoZS5jb21wb3NpdGUmJihlLmNNYXAuYnVpbHRJbkNNYXAmJiEoZS5jTWFwIGluc3RhbmNlb2YgSWRlbnRpdHlDTWFwKXx8IkFkb2JlIj09PWUuY2lkU3lzdGVtSW5mbz8ucmVnaXN0cnkmJigiR0IxIj09PWUuY2lkU3lzdGVtSW5mby5vcmRlcmluZ3x8IkNOUzEiPT09ZS5jaWRTeXN0ZW1JbmZvLm9yZGVyaW5nfHwiSmFwYW4xIj09PWUuY2lkU3lzdGVtSW5mby5vcmRlcmluZ3x8IktvcmVhMSI9PT1lLmNpZFN5c3RlbUluZm8ub3JkZXJpbmcpKSl7Y29uc3R7cmVnaXN0cnk6dCxvcmRlcmluZzppfT1lLmNpZFN5c3RlbUluZm8sYT1OYW1lLmdldChgJHt0fS0ke2l9LVVDUzJgKSxyPWF3YWl0IENNYXBGYWN0b3J5LmNyZWF0ZSh7ZW5jb2Rpbmc6YSxmZXRjaEJ1aWx0SW5DTWFwOnRoaXMuX2ZldGNoQnVpbHRJbkNNYXBCb3VuZCx1c2VDTWFwOm51bGx9KSxzPVtdLG49W107ZS5jTWFwLmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7aWYodD42NTUzNSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIk1heCBzaXplIG9mIENJRCBpcyA2NSw1MzUiKTtjb25zdCBpPXIubG9va3VwKHQpO2lmKGkpe24ubGVuZ3RoPTA7Zm9yKGxldCBlPTAsdD1pLmxlbmd0aDtlPHQ7ZSs9MiluLnB1c2goKGkuY2hhckNvZGVBdChlKTw8OCkraS5jaGFyQ29kZUF0KGUrMSkpO3NbZV09U3RyaW5nLmZyb21DaGFyQ29kZSguLi5uKX19KSk7cmV0dXJuIG5ldyBUb1VuaWNvZGVNYXAocyl9cmV0dXJuIG5ldyBJZGVudGl0eVRvVW5pY29kZU1hcChlLmZpcnN0Q2hhcixlLmxhc3RDaGFyKX1hc3luYyByZWFkVG9Vbmljb2RlKGUpe2lmKCFlKXJldHVybiBudWxsO2lmKGUgaW5zdGFuY2VvZiBOYW1lKXtjb25zdCB0PWF3YWl0IENNYXBGYWN0b3J5LmNyZWF0ZSh7ZW5jb2Rpbmc6ZSxmZXRjaEJ1aWx0SW5DTWFwOnRoaXMuX2ZldGNoQnVpbHRJbkNNYXBCb3VuZCx1c2VDTWFwOm51bGx9KTtyZXR1cm4gdCBpbnN0YW5jZW9mIElkZW50aXR5Q01hcD9uZXcgSWRlbnRpdHlUb1VuaWNvZGVNYXAoMCw2NTUzNSk6bmV3IFRvVW5pY29kZU1hcCh0LmdldE1hcCgpKX1pZihlIGluc3RhbmNlb2YgQmFzZVN0cmVhbSl0cnl7Y29uc3QgdD1hd2FpdCBDTWFwRmFjdG9yeS5jcmVhdGUoe2VuY29kaW5nOmUsZmV0Y2hCdWlsdEluQ01hcDp0aGlzLl9mZXRjaEJ1aWx0SW5DTWFwQm91bmQsdXNlQ01hcDpudWxsfSk7aWYodCBpbnN0YW5jZW9mIElkZW50aXR5Q01hcClyZXR1cm4gbmV3IElkZW50aXR5VG9Vbmljb2RlTWFwKDAsNjU1MzUpO2NvbnN0IGk9bmV3IEFycmF5KHQubGVuZ3RoKTt0LmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7aWYoIm51bWJlciI9PXR5cGVvZiB0KXtpW2VdPVN0cmluZy5mcm9tQ29kZVBvaW50KHQpO3JldHVybn10Lmxlbmd0aCUyIT0wJiYodD0iXDAiK3QpO2NvbnN0IGE9W107Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKz0yKXtjb25zdCBpPXQuY2hhckNvZGVBdChlKTw8OHx0LmNoYXJDb2RlQXQoZSsxKTtpZig1NTI5NiE9KDYzNDg4JmkpKXthLnB1c2goaSk7Y29udGludWV9ZSs9Mjtjb25zdCByPXQuY2hhckNvZGVBdChlKTw8OHx0LmNoYXJDb2RlQXQoZSsxKTthLnB1c2goKCgxMDIzJmkpPDwxMCkrKDEwMjMmcikrNjU1MzYpfWlbZV09U3RyaW5nLmZyb21Db2RlUG9pbnQoLi4uYSl9KSk7cmV0dXJuIG5ldyBUb1VuaWNvZGVNYXAoaSl9Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIEFib3J0RXhjZXB0aW9uKXJldHVybiBudWxsO2lmKHRoaXMub3B0aW9ucy5pZ25vcmVFcnJvcnMpe3dhcm4oYHJlYWRUb1VuaWNvZGUgLSBpZ25vcmluZyBUb1VuaWNvZGUgZGF0YTogIiR7ZX0iLmApO3JldHVybiBudWxsfXRocm93IGV9cmV0dXJuIG51bGx9cmVhZENpZFRvR2lkTWFwKGUsdCl7Y29uc3QgaT1bXTtmb3IobGV0IGE9MCxyPWUubGVuZ3RoO2E8cjthKyspe2NvbnN0IHI9ZVthKytdPDw4fGVbYV0scz1hPj4xOygwIT09cnx8dC5oYXMocykpJiYoaVtzXT1yKX1yZXR1cm4gaX1leHRyYWN0V2lkdGhzKGUsdCxpKXtjb25zdCBhPXRoaXMueHJlZjtsZXQgcj1bXSxzPTA7Y29uc3Qgbj1bXTtsZXQgbztpZihpLmNvbXBvc2l0ZSl7Y29uc3QgdD1lLmdldCgiRFciKTtzPSJudW1iZXIiPT10eXBlb2YgdD9NYXRoLmNlaWwodCk6MWUzO2NvbnN0IGc9ZS5nZXQoIlciKTtpZihBcnJheS5pc0FycmF5KGcpKWZvcihsZXQgZT0wLHQ9Zy5sZW5ndGg7ZTx0O2UrKyl7bGV0IHQ9YS5mZXRjaElmUmVmKGdbZSsrXSk7aWYoIU51bWJlci5pc0ludGVnZXIodCkpYnJlYWs7Y29uc3QgaT1hLmZldGNoSWZSZWYoZ1tlXSk7aWYoQXJyYXkuaXNBcnJheShpKSlmb3IoY29uc3QgZSBvZiBpKXtjb25zdCBpPWEuZmV0Y2hJZlJlZihlKTsibnVtYmVyIj09dHlwZW9mIGkmJihyW3RdPWkpO3QrK31lbHNle2lmKCFOdW1iZXIuaXNJbnRlZ2VyKGkpKWJyZWFrO3tjb25zdCBzPWEuZmV0Y2hJZlJlZihnWysrZV0pO2lmKCJudW1iZXIiIT10eXBlb2Ygcyljb250aW51ZTtmb3IobGV0IGU9dDtlPD1pO2UrKylyW2VdPXN9fX1pZihpLnZlcnRpY2FsKXtjb25zdCB0PWUuZ2V0QXJyYXkoIkRXMiIpO2xldCBpPWlzTnVtYmVyQXJyYXkodCwyKT90Ols4ODAsLTFlM107bz1baVsxXSwuNSpzLGlbMF1dO2k9ZS5nZXQoIlcyIik7aWYoQXJyYXkuaXNBcnJheShpKSlmb3IobGV0IGU9MCx0PWkubGVuZ3RoO2U8dDtlKyspe2xldCB0PWEuZmV0Y2hJZlJlZihpW2UrK10pO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKHQpKWJyZWFrO2NvbnN0IHI9YS5mZXRjaElmUmVmKGlbZV0pO2lmKEFycmF5LmlzQXJyYXkocikpZm9yKGxldCBlPTAsaT1yLmxlbmd0aDtlPGk7ZSsrKXtjb25zdCBpPVthLmZldGNoSWZSZWYocltlKytdKSxhLmZldGNoSWZSZWYocltlKytdKSxhLmZldGNoSWZSZWYocltlXSldO2lzTnVtYmVyQXJyYXkoaSxudWxsKSYmKG5bdF09aSk7dCsrfWVsc2V7aWYoIU51bWJlci5pc0ludGVnZXIocikpYnJlYWs7e2NvbnN0IHM9W2EuZmV0Y2hJZlJlZihpWysrZV0pLGEuZmV0Y2hJZlJlZihpWysrZV0pLGEuZmV0Y2hJZlJlZihpWysrZV0pXTtpZighaXNOdW1iZXJBcnJheShzLG51bGwpKWNvbnRpbnVlO2ZvcihsZXQgZT10O2U8PXI7ZSsrKW5bZV09c319fX19ZWxzZXtjb25zdCBuPWUuZ2V0KCJXaWR0aHMiKTtpZihBcnJheS5pc0FycmF5KG4pKXtsZXQgZT1pLmZpcnN0Q2hhcjtmb3IoY29uc3QgdCBvZiBuKXtjb25zdCBpPWEuZmV0Y2hJZlJlZih0KTsibnVtYmVyIj09dHlwZW9mIGkmJihyW2VdPWkpO2UrK31jb25zdCBvPXQuZ2V0KCJNaXNzaW5nV2lkdGgiKTtzPSJudW1iZXIiPT10eXBlb2Ygbz9vOjB9ZWxzZXtjb25zdCB0PWUuZ2V0KCJCYXNlRm9udCIpO2lmKHQgaW5zdGFuY2VvZiBOYW1lKXtjb25zdCBlPXRoaXMuZ2V0QmFzZUZvbnRNZXRyaWNzKHQubmFtZSk7cj10aGlzLmJ1aWxkQ2hhckNvZGVUb1dpZHRoKGUud2lkdGhzLGkpO3M9ZS5kZWZhdWx0V2lkdGh9fX1sZXQgZz0hMCxjPXM7Zm9yKGNvbnN0IGUgaW4gcil7Y29uc3QgdD1yW2VdO2lmKHQpaWYoYyl7aWYoYyE9PXQpe2c9ITE7YnJlYWt9fWVsc2UgYz10fWc/aS5mbGFnc3w9TWk6aS5mbGFncyY9fk1pO2kuZGVmYXVsdFdpZHRoPXM7aS53aWR0aHM9cjtpLmRlZmF1bHRWTWV0cmljcz1vO2kudm1ldHJpY3M9bn1pc1NlcmlmRm9udChlKXtjb25zdCB0PWUuc3BsaXQoIi0iLDEpWzBdO3JldHVybiB0IGluIE9pKCl8fC9zZXJpZi9naS50ZXN0KHQpfWdldEJhc2VGb250TWV0cmljcyhlKXtsZXQgdD0wLGk9T2JqZWN0LmNyZWF0ZShudWxsKSxhPSExO2xldCByPUtpKClbZV18fGU7Y29uc3Qgcz1WaSgpO3IgaW4gc3x8KHI9dGhpcy5pc1NlcmlmRm9udChlKT8iVGltZXMtUm9tYW4iOiJIZWx2ZXRpY2EiKTtjb25zdCBuPXNbcl07aWYoIm51bWJlciI9PXR5cGVvZiBuKXt0PW47YT0hMH1lbHNlIGk9bigpO3JldHVybntkZWZhdWx0V2lkdGg6dCxtb25vc3BhY2U6YSx3aWR0aHM6aX19YnVpbGRDaGFyQ29kZVRvV2lkdGgoZSx0KXtjb25zdCBpPU9iamVjdC5jcmVhdGUobnVsbCksYT10LmRpZmZlcmVuY2VzLHI9dC5kZWZhdWx0RW5jb2Rpbmc7Zm9yKGxldCB0PTA7dDwyNTY7dCsrKXQgaW4gYSYmZVthW3RdXT9pW3RdPWVbYVt0XV06dCBpbiByJiZlW3JbdF1dJiYoaVt0XT1lW3JbdF1dKTtyZXR1cm4gaX1wcmVFdmFsdWF0ZUZvbnQoZSl7Y29uc3QgdD1lO2xldCBpPWUuZ2V0KCJTdWJ0eXBlIik7aWYoIShpIGluc3RhbmNlb2YgTmFtZSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJpbnZhbGlkIGZvbnQgU3VidHlwZSIpO2xldCBhLHI9ITE7aWYoIlR5cGUwIj09PWkubmFtZSl7Y29uc3QgdD1lLmdldCgiRGVzY2VuZGFudEZvbnRzIik7aWYoIXQpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJEZXNjZW5kYW50IGZvbnRzIGFyZSBub3Qgc3BlY2lmaWVkIik7aWYoISgoZT1BcnJheS5pc0FycmF5KHQpP3RoaXMueHJlZi5mZXRjaElmUmVmKHRbMF0pOnQpaW5zdGFuY2VvZiBEaWN0KSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkRlc2NlbmRhbnQgZm9udCBpcyBub3QgYSBkaWN0aW9uYXJ5LiIpO2k9ZS5nZXQoIlN1YnR5cGUiKTtpZighKGkgaW5zdGFuY2VvZiBOYW1lKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoImludmFsaWQgZm9udCBTdWJ0eXBlIik7cj0hMH1sZXQgcz1lLmdldCgiRmlyc3RDaGFyIik7TnVtYmVyLmlzSW50ZWdlcihzKXx8KHM9MCk7bGV0IG49ZS5nZXQoIkxhc3RDaGFyIik7TnVtYmVyLmlzSW50ZWdlcihuKXx8KG49cj82NTUzNToyNTUpO2NvbnN0IG89ZS5nZXQoIkZvbnREZXNjcmlwdG9yIiksZz1lLmdldCgiVG9Vbmljb2RlIil8fHQuZ2V0KCJUb1VuaWNvZGUiKTtpZihvKXthPW5ldyBNdXJtdXJIYXNoM182NDtjb25zdCBpPXQuZ2V0UmF3KCJFbmNvZGluZyIpO2lmKGkgaW5zdGFuY2VvZiBOYW1lKWEudXBkYXRlKGkubmFtZSk7ZWxzZSBpZihpIGluc3RhbmNlb2YgUmVmKWEudXBkYXRlKGkudG9TdHJpbmcoKSk7ZWxzZSBpZihpIGluc3RhbmNlb2YgRGljdClmb3IoY29uc3QgZSBvZiBpLmdldFJhd1ZhbHVlcygpKWlmKGUgaW5zdGFuY2VvZiBOYW1lKWEudXBkYXRlKGUubmFtZSk7ZWxzZSBpZihlIGluc3RhbmNlb2YgUmVmKWEudXBkYXRlKGUudG9TdHJpbmcoKSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGUpKXtjb25zdCB0PWUubGVuZ3RoLGk9bmV3IEFycmF5KHQpO2ZvcihsZXQgYT0wO2E8dDthKyspe2NvbnN0IHQ9ZVthXTt0IGluc3RhbmNlb2YgTmFtZT9pW2FdPXQubmFtZTooIm51bWJlciI9PXR5cGVvZiB0fHx0IGluc3RhbmNlb2YgUmVmKSYmKGlbYV09dC50b1N0cmluZygpKX1hLnVwZGF0ZShpLmpvaW4oKSl9YS51cGRhdGUoYCR7c30tJHtufWApO2lmKGcgaW5zdGFuY2VvZiBCYXNlU3RyZWFtKXtjb25zdCBlPWcuc3RyfHxnLHQ9ZS5idWZmZXI/bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIuYnVmZmVyLDAsZS5idWZmZXJMZW5ndGgpOm5ldyBVaW50OEFycmF5KGUuYnl0ZXMuYnVmZmVyLGUuc3RhcnQsZS5lbmQtZS5zdGFydCk7YS51cGRhdGUodCl9ZWxzZSBnIGluc3RhbmNlb2YgTmFtZSYmYS51cGRhdGUoZy5uYW1lKTtjb25zdCBvPWUuZ2V0KCJXaWR0aHMiKXx8dC5nZXQoIldpZHRocyIpO2lmKEFycmF5LmlzQXJyYXkobykpe2NvbnN0IGU9W107Zm9yKGNvbnN0IHQgb2YgbykoIm51bWJlciI9PXR5cGVvZiB0fHx0IGluc3RhbmNlb2YgUmVmKSYmZS5wdXNoKHQudG9TdHJpbmcoKSk7YS51cGRhdGUoZS5qb2luKCkpfWlmKHIpe2EudXBkYXRlKCJjb21wb3NpdGVGb250Iik7Y29uc3QgaT1lLmdldCgiVyIpfHx0LmdldCgiVyIpO2lmKEFycmF5LmlzQXJyYXkoaSkpe2NvbnN0IGU9W107Zm9yKGNvbnN0IHQgb2YgaSlpZigibnVtYmVyIj09dHlwZW9mIHR8fHQgaW5zdGFuY2VvZiBSZWYpZS5wdXNoKHQudG9TdHJpbmcoKSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXtjb25zdCBpPVtdO2Zvcihjb25zdCBlIG9mIHQpKCJudW1iZXIiPT10eXBlb2YgZXx8ZSBpbnN0YW5jZW9mIFJlZikmJmkucHVzaChlLnRvU3RyaW5nKCkpO2UucHVzaChgWyR7aS5qb2luKCl9XWApfWEudXBkYXRlKGUuam9pbigpKX1jb25zdCByPWUuZ2V0UmF3KCJDSURUb0dJRE1hcCIpfHx0LmdldFJhdygiQ0lEVG9HSURNYXAiKTtyIGluc3RhbmNlb2YgTmFtZT9hLnVwZGF0ZShyLm5hbWUpOnIgaW5zdGFuY2VvZiBSZWY/YS51cGRhdGUoci50b1N0cmluZygpKTpyIGluc3RhbmNlb2YgQmFzZVN0cmVhbSYmYS51cGRhdGUoci5wZWVrQnl0ZXMoKSl9fXJldHVybntkZXNjcmlwdG9yOm8sZGljdDplLGJhc2VEaWN0OnQsY29tcG9zaXRlOnIsdHlwZTppLm5hbWUsZmlyc3RDaGFyOnMsbGFzdENoYXI6bix0b1VuaWNvZGU6ZyxoYXNoOmE/YS5oZXhkaWdlc3QoKToiIn19YXN5bmMgdHJhbnNsYXRlRm9udCh7ZGVzY3JpcHRvcjplLGRpY3Q6dCxiYXNlRGljdDppLGNvbXBvc2l0ZTphLHR5cGU6cyxmaXJzdENoYXI6bixsYXN0Q2hhcjpvLHRvVW5pY29kZTpnLGNzc0ZvbnRJbmZvOmN9KXtjb25zdCBsPSJUeXBlMyI9PT1zO2lmKCFlKXtpZighbCl7bGV0IGU9dC5nZXQoIkJhc2VGb250Iik7aWYoIShlIGluc3RhbmNlb2YgTmFtZSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJCYXNlIGZvbnQgaXMgbm90IHNwZWNpZmllZCIpO2U9ZS5uYW1lLnJlcGxhY2VBbGwoL1ssX10vZywiLSIpO2NvbnN0IGE9dGhpcy5nZXRCYXNlRm9udE1ldHJpY3MoZSkscj1lLnNwbGl0KCItIiwxKVswXSxjPSh0aGlzLmlzU2VyaWZGb250KHIpP3hpOjApfChhLm1vbm9zcGFjZT9NaTowKXwoUGkoKVtyXT9IaTpKaSksaD17dHlwZTpzLG5hbWU6ZSxsb2FkZWROYW1lOmkubG9hZGVkTmFtZSxzeXN0ZW1Gb250SW5mbzpudWxsLHdpZHRoczphLndpZHRocyxkZWZhdWx0V2lkdGg6YS5kZWZhdWx0V2lkdGgsaXNTaW11bGF0ZWRGbGFnczohMCxmbGFnczpjLGZpcnN0Q2hhcjpuLGxhc3RDaGFyOm8sdG9Vbmljb2RlOmcseEhlaWdodDowLGNhcEhlaWdodDowLGl0YWxpY0FuZ2xlOjAsaXNUeXBlM0ZvbnQ6bH0sQz10LmdldCgiV2lkdGhzIiksUT1nZXRTdGFuZGFyZEZvbnROYW1lKGUpO2xldCBFPW51bGw7aWYoUSl7RT1hd2FpdCB0aGlzLmZldGNoU3RhbmRhcmRGb250RGF0YShRKTtoLmlzSW50ZXJuYWxGb250PSEhRX0haC5pc0ludGVybmFsRm9udCYmdGhpcy5vcHRpb25zLnVzZVN5c3RlbUZvbnRzJiYoaC5zeXN0ZW1Gb250SW5mbz1nZXRGb250U3Vic3RpdHV0aW9uKHRoaXMuc3lzdGVtRm9udENhY2hlLHRoaXMuaWRGYWN0b3J5LHRoaXMub3B0aW9ucy5zdGFuZGFyZEZvbnREYXRhVXJsLGUsUSxzKSk7Y29uc3QgdT1hd2FpdCB0aGlzLmV4dHJhY3REYXRhU3RydWN0dXJlcyh0LGgpO2lmKEFycmF5LmlzQXJyYXkoQykpe2NvbnN0IGU9W107bGV0IHQ9bjtmb3IoY29uc3QgaSBvZiBDKXtjb25zdCBhPXRoaXMueHJlZi5mZXRjaElmUmVmKGkpOyJudW1iZXIiPT10eXBlb2YgYSYmKGVbdF09YSk7dCsrfXUud2lkdGhzPWV9ZWxzZSB1LndpZHRocz10aGlzLmJ1aWxkQ2hhckNvZGVUb1dpZHRoKGEud2lkdGhzLHUpO3JldHVybiBuZXcgRm9udChlLEUsdSl9e2NvbnN0IGk9bG9va3VwTm9ybWFsUmVjdCh0LmdldEFycmF5KCJGb250QkJveCIpLFswLDAsMCwwXSk7KGU9bmV3IERpY3QobnVsbCkpLnNldCgiRm9udE5hbWUiLE5hbWUuZ2V0KHMpKTtlLnNldCgiRm9udEJCb3giLGkpfX1sZXQgaD1lLmdldCgiRm9udE5hbWUiKSxDPXQuZ2V0KCJCYXNlRm9udCIpOyJzdHJpbmciPT10eXBlb2YgaCYmKGg9TmFtZS5nZXQoaCkpOyJzdHJpbmciPT10eXBlb2YgQyYmKEM9TmFtZS5nZXQoQykpO2NvbnN0IFE9aD8ubmFtZSxFPUM/Lm5hbWU7aWYoIWwmJlEhPT1FKXtpbmZvKGBUaGUgRm9udERlc2NyaXB0b3IncyBGb250TmFtZSBpcyAiJHtRfSIgYnV0IHNob3VsZCBiZSB0aGUgc2FtZSBhcyB0aGUgRm9udCdzIEJhc2VGb250ICIke0V9Ii5gKTtRJiZFJiYoRS5zdGFydHNXaXRoKFEpfHwhaXNLbm93bkZvbnROYW1lKFEpJiZpc0tub3duRm9udE5hbWUoRSkpJiYoaD1udWxsKX1ofHw9QztpZighKGggaW5zdGFuY2VvZiBOYW1lKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoImludmFsaWQgZm9udCBuYW1lIik7bGV0IHUsZCxmLHAsbTt0cnl7dT1lLmdldCgiRm9udEZpbGUiLCJGb250RmlsZTIiLCJGb250RmlsZTMiKTtpZih1KXtpZighKHUgaW5zdGFuY2VvZiBCYXNlU3RyZWFtKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkZvbnRGaWxlIHNob3VsZCBiZSBhIHN0cmVhbSIpO2lmKHUuaXNFbXB0eSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkZvbnRGaWxlIGlzIGVtcHR5Iil9fWNhdGNoKGUpe2lmKCF0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXRocm93IGU7d2FybihgdHJhbnNsYXRlRm9udCAtIGZldGNoaW5nICIke2gubmFtZX0iIGZvbnQgZmlsZTogIiR7ZX0iLmApO3U9bnVsbH1sZXQgeT0hMSx3PW51bGwsYj1udWxsO2lmKHUpe2lmKHUuZGljdCl7Y29uc3QgZT11LmRpY3QuZ2V0KCJTdWJ0eXBlIik7ZSBpbnN0YW5jZW9mIE5hbWUmJihkPWUubmFtZSk7Zj11LmRpY3QuZ2V0KCJMZW5ndGgxIik7cD11LmRpY3QuZ2V0KCJMZW5ndGgyIik7bT11LmRpY3QuZ2V0KCJMZW5ndGgzIil9fWVsc2UgaWYoYyl7Y29uc3QgZT1nZXRYZmFGb250TmFtZShoLm5hbWUpO2lmKGUpe2MuZm9udEZhbWlseT1gJHtjLmZvbnRGYW1pbHl9LVBkZkpTLVhGQWA7Yy5tZXRyaWNzPWUubWV0cmljc3x8bnVsbDt3PWUuZmFjdG9yc3x8bnVsbDt1PWF3YWl0IHRoaXMuZmV0Y2hTdGFuZGFyZEZvbnREYXRhKGUubmFtZSk7eT0hIXU7aT10PWdldFhmYUZvbnREaWN0KGgubmFtZSk7YT0hMH19ZWxzZSBpZighbCl7Y29uc3QgZT1nZXRTdGFuZGFyZEZvbnROYW1lKGgubmFtZSk7aWYoZSl7dT1hd2FpdCB0aGlzLmZldGNoU3RhbmRhcmRGb250RGF0YShlKTt5PSEhdX0heSYmdGhpcy5vcHRpb25zLnVzZVN5c3RlbUZvbnRzJiYoYj1nZXRGb250U3Vic3RpdHV0aW9uKHRoaXMuc3lzdGVtRm9udENhY2hlLHRoaXMuaWRGYWN0b3J5LHRoaXMub3B0aW9ucy5zdGFuZGFyZEZvbnREYXRhVXJsLGgubmFtZSxlLHMpKX1jb25zdCBEPWxvb2t1cE1hdHJpeCh0LmdldEFycmF5KCJGb250TWF0cml4IiksciksUz1sb29rdXBOb3JtYWxSZWN0KGUuZ2V0QXJyYXkoIkZvbnRCQm94Iil8fHQuZ2V0QXJyYXkoIkZvbnRCQm94Iiksdm9pZCAwKTtsZXQgaz1lLmdldCgiQXNjZW50Iik7Im51bWJlciIhPXR5cGVvZiBrJiYoaz12b2lkIDApO2xldCBSPWUuZ2V0KCJEZXNjZW50Iik7Im51bWJlciIhPXR5cGVvZiBSJiYoUj12b2lkIDApO2xldCBOPWUuZ2V0KCJYSGVpZ2h0Iik7Im51bWJlciIhPXR5cGVvZiBOJiYoTj0wKTtsZXQgRz1lLmdldCgiQ2FwSGVpZ2h0Iik7Im51bWJlciIhPXR5cGVvZiBHJiYoRz0wKTtsZXQgTT1lLmdldCgiRmxhZ3MiKTtOdW1iZXIuaXNJbnRlZ2VyKE0pfHwoTT0wKTtsZXQgVT1lLmdldCgiSXRhbGljQW5nbGUiKTsibnVtYmVyIiE9dHlwZW9mIFUmJihVPTApO2NvbnN0IHg9e3R5cGU6cyxuYW1lOmgubmFtZSxzdWJ0eXBlOmQsZmlsZTp1LGxlbmd0aDE6ZixsZW5ndGgyOnAsbGVuZ3RoMzptLGlzSW50ZXJuYWxGb250OnksbG9hZGVkTmFtZTppLmxvYWRlZE5hbWUsY29tcG9zaXRlOmEsZml4ZWRQaXRjaDohMSxmb250TWF0cml4OkQsZmlyc3RDaGFyOm4sbGFzdENoYXI6byx0b1VuaWNvZGU6ZyxiYm94OlMsYXNjZW50OmssZGVzY2VudDpSLHhIZWlnaHQ6TixjYXBIZWlnaHQ6RyxmbGFnczpNLGl0YWxpY0FuZ2xlOlUsaXNUeXBlM0ZvbnQ6bCxjc3NGb250SW5mbzpjLHNjYWxlRmFjdG9yczp3LHN5c3RlbUZvbnRJbmZvOmJ9O2lmKGEpe2NvbnN0IGU9aS5nZXQoIkVuY29kaW5nIik7ZSBpbnN0YW5jZW9mIE5hbWUmJih4LmNpZEVuY29kaW5nPWUubmFtZSk7Y29uc3QgdD1hd2FpdCBDTWFwRmFjdG9yeS5jcmVhdGUoe2VuY29kaW5nOmUsZmV0Y2hCdWlsdEluQ01hcDp0aGlzLl9mZXRjaEJ1aWx0SW5DTWFwQm91bmQsdXNlQ01hcDpudWxsfSk7eC5jTWFwPXQ7eC52ZXJ0aWNhbD14LmNNYXAudmVydGljYWx9Y29uc3QgTD1hd2FpdCB0aGlzLmV4dHJhY3REYXRhU3RydWN0dXJlcyh0LHgpO3RoaXMuZXh0cmFjdFdpZHRocyh0LGUsTCk7cmV0dXJuIG5ldyBGb250KGgubmFtZSx1LEwpfXN0YXRpYyBidWlsZEZvbnRQYXRocyhlLHQsaSxhKXtmdW5jdGlvbiBidWlsZFBhdGgodCl7Y29uc3Qgcj1gJHtlLmxvYWRlZE5hbWV9X3BhdGhfJHt0fWA7dHJ5e2lmKGUucmVuZGVyZXIuaGFzQnVpbHRQYXRoKHQpKXJldHVybjtpLnNlbmQoImNvbW1vbm9iaiIsW3IsIkZvbnRQYXRoIixlLnJlbmRlcmVyLmdldFBhdGhKcyh0KV0pfWNhdGNoKGUpe2lmKGEuaWdub3JlRXJyb3JzKXt3YXJuKGBidWlsZEZvbnRQYXRocyAtIGlnbm9yaW5nICR7cn0gZ2x5cGg6ICIke2V9Ii5gKTtyZXR1cm59dGhyb3cgZX19Zm9yKGNvbnN0IGUgb2YgdCl7YnVpbGRQYXRoKGUuZm9udENoYXIpO2NvbnN0IHQ9ZS5hY2NlbnQ7dD8uZm9udENoYXImJmJ1aWxkUGF0aCh0LmZvbnRDaGFyKX19c3RhdGljIGdldCBmYWxsYmFja0ZvbnREaWN0KCl7Y29uc3QgZT1uZXcgRGljdDtlLnNldCgiQmFzZUZvbnQiLE5hbWUuZ2V0KCJIZWx2ZXRpY2EiKSk7ZS5zZXQoIlR5cGUiLE5hbWUuZ2V0KCJGYWxsYmFja1R5cGUiKSk7ZS5zZXQoIlN1YnR5cGUiLE5hbWUuZ2V0KCJGYWxsYmFja1R5cGUiKSk7ZS5zZXQoIkVuY29kaW5nIixOYW1lLmdldCgiV2luQW5zaUVuY29kaW5nIikpO3JldHVybiBzaGFkb3codGhpcywiZmFsbGJhY2tGb250RGljdCIsZSl9fWNsYXNzIFRyYW5zbGF0ZWRGb250e2NvbnN0cnVjdG9yKHtsb2FkZWROYW1lOmUsZm9udDp0LGRpY3Q6aSxldmFsdWF0b3JPcHRpb25zOmF9KXt0aGlzLmxvYWRlZE5hbWU9ZTt0aGlzLmZvbnQ9dDt0aGlzLmRpY3Q9aTt0aGlzLl9ldmFsdWF0b3JPcHRpb25zPWF8fG1yO3RoaXMudHlwZTNMb2FkZWQ9bnVsbDt0aGlzLnR5cGUzRGVwZW5kZW5jaWVzPXQuaXNUeXBlM0ZvbnQ/bmV3IFNldDpudWxsO3RoaXMuc2VudD0hMX1zZW5kKGUpe2lmKCF0aGlzLnNlbnQpe3RoaXMuc2VudD0hMDtlLnNlbmQoImNvbW1vbm9iaiIsW3RoaXMubG9hZGVkTmFtZSwiRm9udCIsdGhpcy5mb250LmV4cG9ydERhdGEodGhpcy5fZXZhbHVhdG9yT3B0aW9ucy5mb250RXh0cmFQcm9wZXJ0aWVzKV0pfX1mYWxsYmFjayhlKXtpZih0aGlzLmZvbnQuZGF0YSl7dGhpcy5mb250LmRpc2FibGVGb250RmFjZT0hMDtQYXJ0aWFsRXZhbHVhdG9yLmJ1aWxkRm9udFBhdGhzKHRoaXMuZm9udCx0aGlzLmZvbnQuZ2x5cGhDYWNoZVZhbHVlcyxlLHRoaXMuX2V2YWx1YXRvck9wdGlvbnMpfX1sb2FkVHlwZTNEYXRhKGUsdCxpKXtpZih0aGlzLnR5cGUzTG9hZGVkKXJldHVybiB0aGlzLnR5cGUzTG9hZGVkO2lmKCF0aGlzLmZvbnQuaXNUeXBlM0ZvbnQpdGhyb3cgbmV3IEVycm9yKCJNdXN0IGJlIGEgVHlwZTMgZm9udC4iKTtjb25zdCBhPWUuY2xvbmUoe2lnbm9yZUVycm9yczohMX0pLHI9bmV3IFJlZlNldChlLnR5cGUzRm9udFJlZnMpO3RoaXMuZGljdC5vYmpJZCYmIXIuaGFzKHRoaXMuZGljdC5vYmpJZCkmJnIucHV0KHRoaXMuZGljdC5vYmpJZCk7YS50eXBlM0ZvbnRSZWZzPXI7Y29uc3Qgcz10aGlzLmZvbnQsbj10aGlzLnR5cGUzRGVwZW5kZW5jaWVzO2xldCBvPVByb21pc2UucmVzb2x2ZSgpO2NvbnN0IGc9dGhpcy5kaWN0LmdldCgiQ2hhclByb2NzIiksYz10aGlzLmRpY3QuZ2V0KCJSZXNvdXJjZXMiKXx8dCxsPU9iamVjdC5jcmVhdGUobnVsbCksaD1VdGlsLm5vcm1hbGl6ZVJlY3Qocy5iYm94fHxbMCwwLDAsMF0pLEM9aFsyXS1oWzBdLFE9aFszXS1oWzFdLEU9TWF0aC5oeXBvdChDLFEpO2Zvcihjb25zdCBlIG9mIGcuZ2V0S2V5cygpKW89by50aGVuKCgoKT0+e2NvbnN0IHQ9Zy5nZXQoZSkscj1uZXcgT3BlcmF0b3JMaXN0O3JldHVybiBhLmdldE9wZXJhdG9yTGlzdCh7c3RyZWFtOnQsdGFzazppLHJlc291cmNlczpjLG9wZXJhdG9yTGlzdDpyfSkudGhlbigoKCk9PntyLmZuQXJyYXlbMF09PT1mZSYmdGhpcy5fcmVtb3ZlVHlwZTNDb2xvck9wZXJhdG9ycyhyLEUpO2xbZV09ci5nZXRJUigpO2Zvcihjb25zdCBlIG9mIHIuZGVwZW5kZW5jaWVzKW4uYWRkKGUpfSkpLmNhdGNoKChmdW5jdGlvbih0KXt3YXJuKGBUeXBlMyBmb250IHJlc291cmNlICIke2V9IiBpcyBub3QgYXZhaWxhYmxlLmApO2NvbnN0IGk9bmV3IE9wZXJhdG9yTGlzdDtsW2VdPWkuZ2V0SVIoKX0pKX0pKTt0aGlzLnR5cGUzTG9hZGVkPW8udGhlbigoKCk9PntzLmNoYXJQcm9jT3BlcmF0b3JMaXN0PWw7aWYodGhpcy5fYmJveCl7cy5pc0NoYXJCQm94PSEwO3MuYmJveD10aGlzLl9iYm94fX0pKTtyZXR1cm4gdGhpcy50eXBlM0xvYWRlZH1fcmVtb3ZlVHlwZTNDb2xvck9wZXJhdG9ycyhlLHQ9TmFOKXtjb25zdCBpPVV0aWwubm9ybWFsaXplUmVjdChlLmFyZ3NBcnJheVswXS5zbGljZSgyKSksYT1pWzJdLWlbMF0scj1pWzNdLWlbMV0scz1NYXRoLmh5cG90KGEscik7aWYoMD09PWF8fDA9PT1yKXtlLmZuQXJyYXkuc3BsaWNlKDAsMSk7ZS5hcmdzQXJyYXkuc3BsaWNlKDAsMSl9ZWxzZSBpZigwPT09dHx8TWF0aC5yb3VuZChzL3QpPj0xMCl7dGhpcy5fYmJveHx8KHRoaXMuX2Jib3g9WzEvMCwxLzAsLTEvMCwtMS8wXSk7dGhpcy5fYmJveFswXT1NYXRoLm1pbih0aGlzLl9iYm94WzBdLGlbMF0pO3RoaXMuX2Jib3hbMV09TWF0aC5taW4odGhpcy5fYmJveFsxXSxpWzFdKTt0aGlzLl9iYm94WzJdPU1hdGgubWF4KHRoaXMuX2Jib3hbMl0saVsyXSk7dGhpcy5fYmJveFszXT1NYXRoLm1heCh0aGlzLl9iYm94WzNdLGlbM10pfWxldCBuPTAsbz1lLmxlbmd0aDtmb3IoO248bzspe3N3aXRjaChlLmZuQXJyYXlbbl0pe2Nhc2UgZmU6YnJlYWs7Y2FzZSBwZTpjYXNlIG1lOmNhc2UgeWU6Y2FzZSB3ZTpjYXNlIGJlOmNhc2UgRGU6Y2FzZSBGZTpjYXNlIFNlOmNhc2Uga2U6Y2FzZSBSZTpjYXNlIE5lOmNhc2UgR2U6Y2FzZSBNZTpjYXNlIEdBOmUuZm5BcnJheS5zcGxpY2UobiwxKTtlLmFyZ3NBcnJheS5zcGxpY2UobiwxKTtvLS07Y29udGludWU7Y2FzZSBVQTpjb25zdFt0XT1lLmFyZ3NBcnJheVtuXTtsZXQgaT0wLGE9dC5sZW5ndGg7Zm9yKDtpPGE7KXtjb25zdFtlXT10W2ldO3N3aXRjaChlKXtjYXNlIlRSIjpjYXNlIlRSMiI6Y2FzZSJIVCI6Y2FzZSJCRyI6Y2FzZSJCRzIiOmNhc2UiVUNSIjpjYXNlIlVDUjIiOnQuc3BsaWNlKGksMSk7YS0tO2NvbnRpbnVlfWkrK319bisrfX19Y2xhc3MgU3RhdGVNYW5hZ2Vye2NvbnN0cnVjdG9yKGU9bmV3IEV2YWxTdGF0ZSl7dGhpcy5zdGF0ZT1lO3RoaXMuc3RhdGVTdGFjaz1bXX1zYXZlKCl7Y29uc3QgZT10aGlzLnN0YXRlO3RoaXMuc3RhdGVTdGFjay5wdXNoKHRoaXMuc3RhdGUpO3RoaXMuc3RhdGU9ZS5jbG9uZSgpfXJlc3RvcmUoKXtjb25zdCBlPXRoaXMuc3RhdGVTdGFjay5wb3AoKTtlJiYodGhpcy5zdGF0ZT1lKX10cmFuc2Zvcm0oZSl7dGhpcy5zdGF0ZS5jdG09VXRpbC50cmFuc2Zvcm0odGhpcy5zdGF0ZS5jdG0sZSl9fWNsYXNzIFRleHRTdGF0ZXtjb25zdHJ1Y3Rvcigpe3RoaXMuY3RtPW5ldyBGbG9hdDMyQXJyYXkoYSk7dGhpcy5mb250TmFtZT1udWxsO3RoaXMuZm9udFNpemU9MDt0aGlzLmxvYWRlZE5hbWU9bnVsbDt0aGlzLmZvbnQ9bnVsbDt0aGlzLmZvbnRNYXRyaXg9cjt0aGlzLnRleHRNYXRyaXg9YS5zbGljZSgpO3RoaXMudGV4dExpbmVNYXRyaXg9YS5zbGljZSgpO3RoaXMuY2hhclNwYWNpbmc9MDt0aGlzLndvcmRTcGFjaW5nPTA7dGhpcy5sZWFkaW5nPTA7dGhpcy50ZXh0SFNjYWxlPTE7dGhpcy50ZXh0UmlzZT0wfXNldFRleHRNYXRyaXgoZSx0LGksYSxyLHMpe2NvbnN0IG49dGhpcy50ZXh0TWF0cml4O25bMF09ZTtuWzFdPXQ7blsyXT1pO25bM109YTtuWzRdPXI7bls1XT1zfXNldFRleHRMaW5lTWF0cml4KGUsdCxpLGEscixzKXtjb25zdCBuPXRoaXMudGV4dExpbmVNYXRyaXg7blswXT1lO25bMV09dDtuWzJdPWk7blszXT1hO25bNF09cjtuWzVdPXN9dHJhbnNsYXRlVGV4dE1hdHJpeChlLHQpe2NvbnN0IGk9dGhpcy50ZXh0TWF0cml4O2lbNF09aVswXSplK2lbMl0qdCtpWzRdO2lbNV09aVsxXSplK2lbM10qdCtpWzVdfXRyYW5zbGF0ZVRleHRMaW5lTWF0cml4KGUsdCl7Y29uc3QgaT10aGlzLnRleHRMaW5lTWF0cml4O2lbNF09aVswXSplK2lbMl0qdCtpWzRdO2lbNV09aVsxXSplK2lbM10qdCtpWzVdfWNhcnJpYWdlUmV0dXJuKCl7dGhpcy50cmFuc2xhdGVUZXh0TGluZU1hdHJpeCgwLC10aGlzLmxlYWRpbmcpO3RoaXMudGV4dE1hdHJpeD10aGlzLnRleHRMaW5lTWF0cml4LnNsaWNlKCl9Y2xvbmUoKXtjb25zdCBlPU9iamVjdC5jcmVhdGUodGhpcyk7ZS50ZXh0TWF0cml4PXRoaXMudGV4dE1hdHJpeC5zbGljZSgpO2UudGV4dExpbmVNYXRyaXg9dGhpcy50ZXh0TGluZU1hdHJpeC5zbGljZSgpO2UuZm9udE1hdHJpeD10aGlzLmZvbnRNYXRyaXguc2xpY2UoKTtyZXR1cm4gZX19Y2xhc3MgRXZhbFN0YXRle2NvbnN0cnVjdG9yKCl7dGhpcy5jdG09bmV3IEZsb2F0MzJBcnJheShhKTt0aGlzLmZvbnQ9bnVsbDt0aGlzLnRleHRSZW5kZXJpbmdNb2RlPWI7dGhpcy5fZmlsbENvbG9yU3BhY2U9Q29sb3JTcGFjZS5zaW5nbGV0b25zLmdyYXk7dGhpcy5fc3Ryb2tlQ29sb3JTcGFjZT1Db2xvclNwYWNlLnNpbmdsZXRvbnMuZ3JheTt0aGlzLnBhdHRlcm5GaWxsQ29sb3JTcGFjZT1udWxsO3RoaXMucGF0dGVyblN0cm9rZUNvbG9yU3BhY2U9bnVsbH1nZXQgZmlsbENvbG9yU3BhY2UoKXtyZXR1cm4gdGhpcy5fZmlsbENvbG9yU3BhY2V9c2V0IGZpbGxDb2xvclNwYWNlKGUpe3RoaXMuX2ZpbGxDb2xvclNwYWNlPXRoaXMucGF0dGVybkZpbGxDb2xvclNwYWNlPWV9Z2V0IHN0cm9rZUNvbG9yU3BhY2UoKXtyZXR1cm4gdGhpcy5fc3Ryb2tlQ29sb3JTcGFjZX1zZXQgc3Ryb2tlQ29sb3JTcGFjZShlKXt0aGlzLl9zdHJva2VDb2xvclNwYWNlPXRoaXMucGF0dGVyblN0cm9rZUNvbG9yU3BhY2U9ZX1jbG9uZSgpe3JldHVybiBPYmplY3QuY3JlYXRlKHRoaXMpfX1jbGFzcyBFdmFsdWF0b3JQcmVwcm9jZXNzb3J7c3RhdGljIGdldCBvcE1hcCgpe3JldHVybiBzaGFkb3codGhpcywib3BNYXAiLE9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZShudWxsKSx7dzp7aWQ6RkEsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sSjp7aWQ6U0EsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sajp7aWQ6a0EsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sTTp7aWQ6UkEsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sZDp7aWQ6TkEsbnVtQXJnczoyLHZhcmlhYmxlQXJnczohMX0scmk6e2lkOkdBLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LGk6e2lkOk1BLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LGdzOntpZDpVQSxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxxOntpZDp4QSxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxROntpZDpMQSxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxjbTp7aWQ6SEEsbnVtQXJnczo2LHZhcmlhYmxlQXJnczohMX0sbTp7aWQ6SkEsbnVtQXJnczoyLHZhcmlhYmxlQXJnczohMX0sbDp7aWQ6dkEsbnVtQXJnczoyLHZhcmlhYmxlQXJnczohMX0sYzp7aWQ6WUEsbnVtQXJnczo2LHZhcmlhYmxlQXJnczohMX0sdjp7aWQ6S0EsbnVtQXJnczo0LHZhcmlhYmxlQXJnczohMX0seTp7aWQ6VEEsbnVtQXJnczo0LHZhcmlhYmxlQXJnczohMX0saDp7aWQ6cUEsbnVtQXJnczowLHZhcmlhYmxlQXJnczohMX0scmU6e2lkOk9BLG51bUFyZ3M6NCx2YXJpYWJsZUFyZ3M6ITF9LFM6e2lkOlBBLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LHM6e2lkOldBLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LGY6e2lkOmpBLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LEY6e2lkOmpBLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LCJmKiI6e2lkOlhBLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LEI6e2lkOlZBLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LCJCKiI6e2lkOlpBLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LGI6e2lkOl9BLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LCJiKiI6e2lkOnpBLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LG46e2lkOiRBLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LFc6e2lkOkFlLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LCJXKiI6e2lkOmVlLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LEJUOntpZDp0ZSxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxFVDp7aWQ6aWUsbnVtQXJnczowLHZhcmlhYmxlQXJnczohMX0sVGM6e2lkOmFlLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LFR3OntpZDpyZSxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxUejp7aWQ6c2UsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sVEw6e2lkOm5lLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LFRmOntpZDpvZSxudW1BcmdzOjIsdmFyaWFibGVBcmdzOiExfSxUcjp7aWQ6Z2UsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sVHM6e2lkOkllLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LFRkOntpZDpjZSxudW1BcmdzOjIsdmFyaWFibGVBcmdzOiExfSxURDp7aWQ6bGUsbnVtQXJnczoyLHZhcmlhYmxlQXJnczohMX0sVG06e2lkOmhlLG51bUFyZ3M6Nix2YXJpYWJsZUFyZ3M6ITF9LCJUKiI6e2lkOkNlLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LFRqOntpZDpCZSxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxUSjp7aWQ6UWUsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sIiciOntpZDpFZSxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSwnIic6e2lkOnVlLG51bUFyZ3M6Myx2YXJpYWJsZUFyZ3M6ITF9LGQwOntpZDpkZSxudW1BcmdzOjIsdmFyaWFibGVBcmdzOiExfSxkMTp7aWQ6ZmUsbnVtQXJnczo2LHZhcmlhYmxlQXJnczohMX0sQ1M6e2lkOnBlLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LGNzOntpZDptZSxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxTQzp7aWQ6eWUsbnVtQXJnczo0LHZhcmlhYmxlQXJnczohMH0sU0NOOntpZDp3ZSxudW1BcmdzOjMzLHZhcmlhYmxlQXJnczohMH0sc2M6e2lkOmJlLG51bUFyZ3M6NCx2YXJpYWJsZUFyZ3M6ITB9LHNjbjp7aWQ6RGUsbnVtQXJnczozMyx2YXJpYWJsZUFyZ3M6ITB9LEc6e2lkOkZlLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LGc6e2lkOlNlLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LFJHOntpZDprZSxudW1BcmdzOjMsdmFyaWFibGVBcmdzOiExfSxyZzp7aWQ6UmUsbnVtQXJnczozLHZhcmlhYmxlQXJnczohMX0sSzp7aWQ6TmUsbnVtQXJnczo0LHZhcmlhYmxlQXJnczohMX0sazp7aWQ6R2UsbnVtQXJnczo0LHZhcmlhYmxlQXJnczohMX0sc2g6e2lkOk1lLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LEJJOntpZDpVZSxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxJRDp7aWQ6eGUsbnVtQXJnczowLHZhcmlhYmxlQXJnczohMX0sRUk6e2lkOkxlLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LERvOntpZDpIZSxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxNUDp7aWQ6SmUsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sRFA6e2lkOnZlLG51bUFyZ3M6Mix2YXJpYWJsZUFyZ3M6ITF9LEJNQzp7aWQ6WWUsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sQkRDOntpZDpLZSxudW1BcmdzOjIsdmFyaWFibGVBcmdzOiExfSxFTUM6e2lkOlRlLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LEJYOntpZDpxZSxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxFWDp7aWQ6T2UsbnVtQXJnczowLHZhcmlhYmxlQXJnczohMX0sQk06bnVsbCxCRDpudWxsLHRydWU6bnVsbCxmYTpudWxsLGZhbDpudWxsLGZhbHM6bnVsbCxmYWxzZTpudWxsLG51Om51bGwsbnVsOm51bGwsbnVsbDpudWxsfSkpfXN0YXRpYyBNQVhfSU5WQUxJRF9QQVRIX09QUz0xMDtjb25zdHJ1Y3RvcihlLHQsaT1uZXcgU3RhdGVNYW5hZ2VyKXt0aGlzLnBhcnNlcj1uZXcgUGFyc2VyKHtsZXhlcjpuZXcgTGV4ZXIoZSxFdmFsdWF0b3JQcmVwcm9jZXNzb3Iub3BNYXApLHhyZWY6dH0pO3RoaXMuc3RhdGVNYW5hZ2VyPWk7dGhpcy5ub25Qcm9jZXNzZWRBcmdzPVtdO3RoaXMuX2lzUGF0aE9wPSExO3RoaXMuX251bUludmFsaWRQYXRoT1BTPTB9Z2V0IHNhdmVkU3RhdGVzRGVwdGgoKXtyZXR1cm4gdGhpcy5zdGF0ZU1hbmFnZXIuc3RhdGVTdGFjay5sZW5ndGh9cmVhZChlKXtsZXQgdD1lLmFyZ3M7Zm9yKDs7KXtjb25zdCBpPXRoaXMucGFyc2VyLmdldE9iaigpO2lmKGkgaW5zdGFuY2VvZiBDbWQpe2NvbnN0IGE9aS5jbWQscj1FdmFsdWF0b3JQcmVwcm9jZXNzb3Iub3BNYXBbYV07aWYoIXIpe3dhcm4oYFVua25vd24gY29tbWFuZCAiJHthfSIuYCk7Y29udGludWV9Y29uc3Qgcz1yLmlkLG49ci5udW1BcmdzO2xldCBvPW51bGwhPT10P3QubGVuZ3RoOjA7dGhpcy5faXNQYXRoT3B8fCh0aGlzLl9udW1JbnZhbGlkUGF0aE9QUz0wKTt0aGlzLl9pc1BhdGhPcD1zPj1KQSYmczw9JEE7aWYoci52YXJpYWJsZUFyZ3Mpbz5uJiZpbmZvKGBDb21tYW5kICR7YX06IGV4cGVjdGVkIFswLCAke259XSBhcmdzLCBidXQgcmVjZWl2ZWQgJHtvfSBhcmdzLmApO2Vsc2V7aWYobyE9PW4pe2NvbnN0IGU9dGhpcy5ub25Qcm9jZXNzZWRBcmdzO2Zvcig7bz5uOyl7ZS5wdXNoKHQuc2hpZnQoKSk7by0tfWZvcig7bzxuJiYwIT09ZS5sZW5ndGg7KXtudWxsPT09dCYmKHQ9W10pO3QudW5zaGlmdChlLnBvcCgpKTtvKyt9fWlmKG88bil7Y29uc3QgZT1gY29tbWFuZCAke2F9OiBleHBlY3RlZCAke259IGFyZ3MsIGJ1dCByZWNlaXZlZCAke299IGFyZ3MuYDtpZih0aGlzLl9pc1BhdGhPcCYmKyt0aGlzLl9udW1JbnZhbGlkUGF0aE9QUz5FdmFsdWF0b3JQcmVwcm9jZXNzb3IuTUFYX0lOVkFMSURfUEFUSF9PUFMpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBJbnZhbGlkICR7ZX1gKTt3YXJuKGBTa2lwcGluZyAke2V9YCk7bnVsbCE9PXQmJih0Lmxlbmd0aD0wKTtjb250aW51ZX19dGhpcy5wcmVwcm9jZXNzQ29tbWFuZChzLHQpO2UuZm49cztlLmFyZ3M9dDtyZXR1cm4hMH1pZihpPT09RXQpcmV0dXJuITE7aWYobnVsbCE9PWkpe251bGw9PT10JiYodD1bXSk7dC5wdXNoKGkpO2lmKHQubGVuZ3RoPjMzKXRocm93IG5ldyBGb3JtYXRFcnJvcigiVG9vIG1hbnkgYXJndW1lbnRzIil9fX1wcmVwcm9jZXNzQ29tbWFuZChlLHQpe3N3aXRjaCgwfGUpe2Nhc2UgeEE6dGhpcy5zdGF0ZU1hbmFnZXIuc2F2ZSgpO2JyZWFrO2Nhc2UgTEE6dGhpcy5zdGF0ZU1hbmFnZXIucmVzdG9yZSgpO2JyZWFrO2Nhc2UgSEE6dGhpcy5zdGF0ZU1hbmFnZXIudHJhbnNmb3JtKHQpfX19Y2xhc3MgRGVmYXVsdEFwcGVhcmFuY2VFdmFsdWF0b3IgZXh0ZW5kcyBFdmFsdWF0b3JQcmVwcm9jZXNzb3J7Y29uc3RydWN0b3IoZSl7c3VwZXIobmV3IFN0cmluZ1N0cmVhbShlKSl9cGFyc2UoKXtjb25zdCBlPXtmbjowLGFyZ3M6W119LHQ9e2ZvbnRTaXplOjAsZm9udE5hbWU6IiIsZm9udENvbG9yOm5ldyBVaW50OENsYW1wZWRBcnJheSgzKX07dHJ5e2Zvcig7Oyl7ZS5hcmdzLmxlbmd0aD0wO2lmKCF0aGlzLnJlYWQoZSkpYnJlYWs7aWYoMCE9PXRoaXMuc2F2ZWRTdGF0ZXNEZXB0aCljb250aW51ZTtjb25zdHtmbjppLGFyZ3M6YX09ZTtzd2l0Y2goMHxpKXtjYXNlIG9lOmNvbnN0W2UsaV09YTtlIGluc3RhbmNlb2YgTmFtZSYmKHQuZm9udE5hbWU9ZS5uYW1lKTsibnVtYmVyIj09dHlwZW9mIGkmJmk+MCYmKHQuZm9udFNpemU9aSk7YnJlYWs7Y2FzZSBSZTpDb2xvclNwYWNlLnNpbmdsZXRvbnMucmdiLmdldFJnYkl0ZW0oYSwwLHQuZm9udENvbG9yLDApO2JyZWFrO2Nhc2UgU2U6Q29sb3JTcGFjZS5zaW5nbGV0b25zLmdyYXkuZ2V0UmdiSXRlbShhLDAsdC5mb250Q29sb3IsMCk7YnJlYWs7Y2FzZSBHZTpDb2xvclNwYWNlLnNpbmdsZXRvbnMuY215ay5nZXRSZ2JJdGVtKGEsMCx0LmZvbnRDb2xvciwwKX19fWNhdGNoKGUpe3dhcm4oYHBhcnNlRGVmYXVsdEFwcGVhcmFuY2UgLSBpZ25vcmluZyBlcnJvcnM6ICIke2V9Ii5gKX1yZXR1cm4gdH19ZnVuY3Rpb24gcGFyc2VEZWZhdWx0QXBwZWFyYW5jZShlKXtyZXR1cm4gbmV3IERlZmF1bHRBcHBlYXJhbmNlRXZhbHVhdG9yKGUpLnBhcnNlKCl9Y2xhc3MgQXBwZWFyYW5jZVN0cmVhbUV2YWx1YXRvciBleHRlbmRzIEV2YWx1YXRvclByZXByb2Nlc3Nvcntjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIoZSk7dGhpcy5zdHJlYW09ZTt0aGlzLmV2YWx1YXRvck9wdGlvbnM9dDt0aGlzLnhyZWY9aTt0aGlzLnJlc291cmNlcz1lLmRpY3Q/LmdldCgiUmVzb3VyY2VzIil9cGFyc2UoKXtjb25zdCBlPXtmbjowLGFyZ3M6W119O2xldCB0PXtzY2FsZUZhY3RvcjoxLGZvbnRTaXplOjAsZm9udE5hbWU6IiIsZm9udENvbG9yOm5ldyBVaW50OENsYW1wZWRBcnJheSgzKSxmaWxsQ29sb3JTcGFjZTpDb2xvclNwYWNlLnNpbmdsZXRvbnMuZ3JheX0saT0hMTtjb25zdCBhPVtdO3RyeXtmb3IoOzspe2UuYXJncy5sZW5ndGg9MDtpZihpfHwhdGhpcy5yZWFkKGUpKWJyZWFrO2NvbnN0e2ZuOnIsYXJnczpzfT1lO3N3aXRjaCgwfHIpe2Nhc2UgeEE6YS5wdXNoKHtzY2FsZUZhY3Rvcjp0LnNjYWxlRmFjdG9yLGZvbnRTaXplOnQuZm9udFNpemUsZm9udE5hbWU6dC5mb250TmFtZSxmb250Q29sb3I6dC5mb250Q29sb3Iuc2xpY2UoKSxmaWxsQ29sb3JTcGFjZTp0LmZpbGxDb2xvclNwYWNlfSk7YnJlYWs7Y2FzZSBMQTp0PWEucG9wKCl8fHQ7YnJlYWs7Y2FzZSBoZTp0LnNjYWxlRmFjdG9yKj1NYXRoLmh5cG90KHNbMF0sc1sxXSk7YnJlYWs7Y2FzZSBvZTpjb25zdFtlLHJdPXM7ZSBpbnN0YW5jZW9mIE5hbWUmJih0LmZvbnROYW1lPWUubmFtZSk7Im51bWJlciI9PXR5cGVvZiByJiZyPjAmJih0LmZvbnRTaXplPXIqdC5zY2FsZUZhY3Rvcik7YnJlYWs7Y2FzZSBtZTp0LmZpbGxDb2xvclNwYWNlPUNvbG9yU3BhY2UucGFyc2Uoe2NzOnNbMF0seHJlZjp0aGlzLnhyZWYscmVzb3VyY2VzOnRoaXMucmVzb3VyY2VzLHBkZkZ1bmN0aW9uRmFjdG9yeTp0aGlzLl9wZGZGdW5jdGlvbkZhY3RvcnksbG9jYWxDb2xvclNwYWNlQ2FjaGU6dGhpcy5fbG9jYWxDb2xvclNwYWNlQ2FjaGV9KTticmVhaztjYXNlIGJlOnQuZmlsbENvbG9yU3BhY2UuZ2V0UmdiSXRlbShzLDAsdC5mb250Q29sb3IsMCk7YnJlYWs7Y2FzZSBSZTpDb2xvclNwYWNlLnNpbmdsZXRvbnMucmdiLmdldFJnYkl0ZW0ocywwLHQuZm9udENvbG9yLDApO2JyZWFrO2Nhc2UgU2U6Q29sb3JTcGFjZS5zaW5nbGV0b25zLmdyYXkuZ2V0UmdiSXRlbShzLDAsdC5mb250Q29sb3IsMCk7YnJlYWs7Y2FzZSBHZTpDb2xvclNwYWNlLnNpbmdsZXRvbnMuY215ay5nZXRSZ2JJdGVtKHMsMCx0LmZvbnRDb2xvciwwKTticmVhaztjYXNlIEJlOmNhc2UgUWU6Y2FzZSBFZTpjYXNlIHVlOmk9ITB9fX1jYXRjaChlKXt3YXJuKGBwYXJzZUFwcGVhcmFuY2VTdHJlYW0gLSBpZ25vcmluZyBlcnJvcnM6ICIke2V9Ii5gKX10aGlzLnN0cmVhbS5yZXNldCgpO2RlbGV0ZSB0LnNjYWxlRmFjdG9yO2RlbGV0ZSB0LmZpbGxDb2xvclNwYWNlO3JldHVybiB0fWdldCBfbG9jYWxDb2xvclNwYWNlQ2FjaGUoKXtyZXR1cm4gc2hhZG93KHRoaXMsIl9sb2NhbENvbG9yU3BhY2VDYWNoZSIsbmV3IExvY2FsQ29sb3JTcGFjZUNhY2hlKX1nZXQgX3BkZkZ1bmN0aW9uRmFjdG9yeSgpe3JldHVybiBzaGFkb3codGhpcywiX3BkZkZ1bmN0aW9uRmFjdG9yeSIsbmV3IFBERkZ1bmN0aW9uRmFjdG9yeSh7eHJlZjp0aGlzLnhyZWYsaXNFdmFsU3VwcG9ydGVkOnRoaXMuZXZhbHVhdG9yT3B0aW9ucy5pc0V2YWxTdXBwb3J0ZWR9KSl9fWZ1bmN0aW9uIGdldFBkZkNvbG9yKGUsdCl7aWYoZVswXT09PWVbMV0mJmVbMV09PT1lWzJdKXtyZXR1cm5gJHtudW1iZXJUb1N0cmluZyhlWzBdLzI1NSl9ICR7dD8iZyI6IkcifWB9cmV0dXJuIEFycmF5LmZyb20oZSwoZT0+bnVtYmVyVG9TdHJpbmcoZS8yNTUpKSkuam9pbigiICIpKyIgIisodD8icmciOiJSRyIpfWNsYXNzIEZha2VVbmljb2RlRm9udHtjb25zdHJ1Y3RvcihlLHQpe3RoaXMueHJlZj1lO3RoaXMud2lkdGhzPW51bGw7dGhpcy5maXJzdENoYXI9MS8wO3RoaXMubGFzdENoYXI9LTEvMDt0aGlzLmZvbnRGYW1pbHk9dDtjb25zdCBpPW5ldyBPZmZzY3JlZW5DYW52YXMoMSwxKTt0aGlzLmN0eE1lYXN1cmU9aS5nZXRDb250ZXh0KCIyZCIse3dpbGxSZWFkRnJlcXVlbnRseTohMH0pO0Zha2VVbmljb2RlRm9udC5fZm9udE5hbWVJZHx8KEZha2VVbmljb2RlRm9udC5fZm9udE5hbWVJZD0xKTt0aGlzLmZvbnROYW1lPU5hbWUuZ2V0KGBJbnZhbGlkUERGanNGb250XyR7dH1fJHtGYWtlVW5pY29kZUZvbnQuX2ZvbnROYW1lSWQrK31gKX1nZXQgZm9udERlc2NyaXB0b3JSZWYoKXtpZighRmFrZVVuaWNvZGVGb250Ll9mb250RGVzY3JpcHRvclJlZil7Y29uc3QgZT1uZXcgRGljdCh0aGlzLnhyZWYpO2Uuc2V0KCJUeXBlIixOYW1lLmdldCgiRm9udERlc2NyaXB0b3IiKSk7ZS5zZXQoIkZvbnROYW1lIix0aGlzLmZvbnROYW1lKTtlLnNldCgiRm9udEZhbWlseSIsIk15cmlhZFBybyBSZWd1bGFyIik7ZS5zZXQoIkZvbnRCQm94IixbMCwwLDAsMF0pO2Uuc2V0KCJGb250U3RyZXRjaCIsTmFtZS5nZXQoIk5vcm1hbCIpKTtlLnNldCgiRm9udFdlaWdodCIsNDAwKTtlLnNldCgiSXRhbGljQW5nbGUiLDApO0Zha2VVbmljb2RlRm9udC5fZm9udERlc2NyaXB0b3JSZWY9dGhpcy54cmVmLmdldE5ld1BlcnNpc3RlbnRSZWYoZSl9cmV0dXJuIEZha2VVbmljb2RlRm9udC5fZm9udERlc2NyaXB0b3JSZWZ9Z2V0IGRlc2NlbmRhbnRGb250UmVmKCl7Y29uc3QgZT1uZXcgRGljdCh0aGlzLnhyZWYpO2Uuc2V0KCJCYXNlRm9udCIsdGhpcy5mb250TmFtZSk7ZS5zZXQoIlR5cGUiLE5hbWUuZ2V0KCJGb250IikpO2Uuc2V0KCJTdWJ0eXBlIixOYW1lLmdldCgiQ0lERm9udFR5cGUwIikpO2Uuc2V0KCJDSURUb0dJRE1hcCIsTmFtZS5nZXQoIklkZW50aXR5IikpO2Uuc2V0KCJGaXJzdENoYXIiLHRoaXMuZmlyc3RDaGFyKTtlLnNldCgiTGFzdENoYXIiLHRoaXMubGFzdENoYXIpO2Uuc2V0KCJGb250RGVzY3JpcHRvciIsdGhpcy5mb250RGVzY3JpcHRvclJlZik7ZS5zZXQoIkRXIiwxZTMpO2NvbnN0IHQ9W10saT1bLi4udGhpcy53aWR0aHMuZW50cmllcygpXS5zb3J0KCk7bGV0IGE9bnVsbCxyPW51bGw7Zm9yKGNvbnN0W2Usc11vZiBpKWlmKGEpaWYoZT09PWErci5sZW5ndGgpci5wdXNoKHMpO2Vsc2V7dC5wdXNoKGEscik7YT1lO3I9W3NdfWVsc2V7YT1lO3I9W3NdfWEmJnQucHVzaChhLHIpO2Uuc2V0KCJXIix0KTtjb25zdCBzPW5ldyBEaWN0KHRoaXMueHJlZik7cy5zZXQoIk9yZGVyaW5nIiwiSWRlbnRpdHkiKTtzLnNldCgiUmVnaXN0cnkiLCJBZG9iZSIpO3Muc2V0KCJTdXBwbGVtZW50IiwwKTtlLnNldCgiQ0lEU3lzdGVtSW5mbyIscyk7cmV0dXJuIHRoaXMueHJlZi5nZXROZXdQZXJzaXN0ZW50UmVmKGUpfWdldCBiYXNlRm9udFJlZigpe2NvbnN0IGU9bmV3IERpY3QodGhpcy54cmVmKTtlLnNldCgiQmFzZUZvbnQiLHRoaXMuZm9udE5hbWUpO2Uuc2V0KCJUeXBlIixOYW1lLmdldCgiRm9udCIpKTtlLnNldCgiU3VidHlwZSIsTmFtZS5nZXQoIlR5cGUwIikpO2Uuc2V0KCJFbmNvZGluZyIsTmFtZS5nZXQoIklkZW50aXR5LUgiKSk7ZS5zZXQoIkRlc2NlbmRhbnRGb250cyIsW3RoaXMuZGVzY2VuZGFudEZvbnRSZWZdKTtlLnNldCgiVG9Vbmljb2RlIixOYW1lLmdldCgiSWRlbnRpdHktSCIpKTtyZXR1cm4gdGhpcy54cmVmLmdldE5ld1BlcnNpc3RlbnRSZWYoZSl9Z2V0IHJlc291cmNlcygpe2NvbnN0IGU9bmV3IERpY3QodGhpcy54cmVmKSx0PW5ldyBEaWN0KHRoaXMueHJlZik7dC5zZXQodGhpcy5mb250TmFtZS5uYW1lLHRoaXMuYmFzZUZvbnRSZWYpO2Uuc2V0KCJGb250Iix0KTtyZXR1cm4gZX1fY3JlYXRlQ29udGV4dCgpe3RoaXMud2lkdGhzPW5ldyBNYXA7dGhpcy5jdHhNZWFzdXJlLmZvbnQ9YDEwMDBweCAke3RoaXMuZm9udEZhbWlseX1gO3JldHVybiB0aGlzLmN0eE1lYXN1cmV9Y3JlYXRlRm9udFJlc291cmNlcyhlKXtjb25zdCB0PXRoaXMuX2NyZWF0ZUNvbnRleHQoKTtmb3IoY29uc3QgaSBvZiBlLnNwbGl0KC9cclxuP3xcbi8pKWZvcihjb25zdCBlIG9mIGkuc3BsaXQoIiIpKXtjb25zdCBpPWUuY2hhckNvZGVBdCgwKTtpZih0aGlzLndpZHRocy5oYXMoaSkpY29udGludWU7Y29uc3QgYT10Lm1lYXN1cmVUZXh0KGUpLHI9TWF0aC5jZWlsKGEud2lkdGgpO3RoaXMud2lkdGhzLnNldChpLHIpO3RoaXMuZmlyc3RDaGFyPU1hdGgubWluKGksdGhpcy5maXJzdENoYXIpO3RoaXMubGFzdENoYXI9TWF0aC5tYXgoaSx0aGlzLmxhc3RDaGFyKX1yZXR1cm4gdGhpcy5yZXNvdXJjZXN9c3RhdGljIGdldEZpcnN0UG9zaXRpb25JbmZvKGUsdCxpKXtjb25zdFthLHIsbyxnXT1lO2xldCBjPW8tYSxsPWctcjt0JTE4MCE9MCYmKFtjLGxdPVtsLGNdKTtjb25zdCBoPXMqaTtyZXR1cm57Y29vcmRzOlswLGwrbippLWhdLGJib3g6WzAsMCxjLGxdLG1hdHJpeDowIT09dD9nZXRSb3RhdGlvbk1hdHJpeCh0LGwsaCk6dm9pZCAwfX1jcmVhdGVBcHBlYXJhbmNlKGUsdCxpLGEscixvKXtjb25zdCBnPXRoaXMuX2NyZWF0ZUNvbnRleHQoKSxjPVtdO2xldCBsPS0xLzA7Zm9yKGNvbnN0IHQgb2YgZS5zcGxpdCgvXHJcbj98XG4vKSl7Yy5wdXNoKHQpO2NvbnN0IGU9Zy5tZWFzdXJlVGV4dCh0KS53aWR0aDtsPU1hdGgubWF4KGwsZSk7Zm9yKGNvbnN0IGUgb2YgY29kZVBvaW50SXRlcih0KSl7Y29uc3QgdD1TdHJpbmcuZnJvbUNvZGVQb2ludChlKTtsZXQgaT10aGlzLndpZHRocy5nZXQoZSk7aWYodm9pZCAwPT09aSl7Y29uc3QgYT1nLm1lYXN1cmVUZXh0KHQpO2k9TWF0aC5jZWlsKGEud2lkdGgpO3RoaXMud2lkdGhzLnNldChlLGkpO3RoaXMuZmlyc3RDaGFyPU1hdGgubWluKGUsdGhpcy5maXJzdENoYXIpO3RoaXMubGFzdENoYXI9TWF0aC5tYXgoZSx0aGlzLmxhc3RDaGFyKX19fWwqPWEvMWUzO2NvbnN0W2gsQyxRLEVdPXQ7bGV0IHU9US1oLGQ9RS1DO2klMTgwIT0wJiYoW3UsZF09W2QsdV0pO2xldCBmPTE7bD51JiYoZj11L2wpO2xldCBwPTE7Y29uc3QgbT1zKmEseT1uKmEsdz1tKmMubGVuZ3RoO3c+ZCYmKHA9ZC93KTtjb25zdCBiPWEqTWF0aC5taW4oZixwKSxEPVsicSIsYDAgMCAke251bWJlclRvU3RyaW5nKHUpfSAke251bWJlclRvU3RyaW5nKGQpfSByZSBXIG5gLCJCVCIsYDEgMCAwIDEgMCAke251bWJlclRvU3RyaW5nKGQreSl9IFRtIDAgVGMgJHtnZXRQZGZDb2xvcihyLCEwKX1gLGAvJHt0aGlzLmZvbnROYW1lLm5hbWV9ICR7bnVtYmVyVG9TdHJpbmcoYil9IFRmYF0se3Jlc291cmNlczpTfT10aGlzO2lmKDEhPT0obz0ibnVtYmVyIj09dHlwZW9mIG8mJm8+PTAmJm88PTE/bzoxKSl7RC5wdXNoKCIvUjAgZ3MiKTtjb25zdCBlPW5ldyBEaWN0KHRoaXMueHJlZiksdD1uZXcgRGljdCh0aGlzLnhyZWYpO3Quc2V0KCJjYSIsbyk7dC5zZXQoIkNBIixvKTt0LnNldCgiVHlwZSIsTmFtZS5nZXQoIkV4dEdTdGF0ZSIpKTtlLnNldCgiUjAiLHQpO1Muc2V0KCJFeHRHU3RhdGUiLGUpfWNvbnN0IGs9bnVtYmVyVG9TdHJpbmcobSk7Zm9yKGNvbnN0IGUgb2YgYylELnB1c2goYDAgLSR7a30gVGQgPCR7c3RyaW5nVG9VVEYxNkhleFN0cmluZyhlKX0+IFRqYCk7RC5wdXNoKCJFVCIsIlEiKTtjb25zdCBSPUQuam9pbigiXG4iKSxOPW5ldyBEaWN0KHRoaXMueHJlZik7Ti5zZXQoIlN1YnR5cGUiLE5hbWUuZ2V0KCJGb3JtIikpO04uc2V0KCJUeXBlIixOYW1lLmdldCgiWE9iamVjdCIpKTtOLnNldCgiQkJveCIsWzAsMCx1LGRdKTtOLnNldCgiTGVuZ3RoIixSLmxlbmd0aCk7Ti5zZXQoIlJlc291cmNlcyIsUyk7aWYoaSl7Y29uc3QgZT1nZXRSb3RhdGlvbk1hdHJpeChpLHUsZCk7Ti5zZXQoIk1hdHJpeCIsZSl9Y29uc3QgRz1uZXcgU3RyaW5nU3RyZWFtKFIpO0cuZGljdD1OO3JldHVybiBHfX1jbGFzcyBOYW1lT3JOdW1iZXJUcmVle2NvbnN0cnVjdG9yKGUsdCxpKXt0aGlzLnJvb3Q9ZTt0aGlzLnhyZWY9dDt0aGlzLl90eXBlPWl9Z2V0QWxsKCl7Y29uc3QgZT1uZXcgTWFwO2lmKCF0aGlzLnJvb3QpcmV0dXJuIGU7Y29uc3QgdD10aGlzLnhyZWYsaT1uZXcgUmVmU2V0O2kucHV0KHRoaXMucm9vdCk7Y29uc3QgYT1bdGhpcy5yb290XTtmb3IoO2EubGVuZ3RoPjA7KXtjb25zdCByPXQuZmV0Y2hJZlJlZihhLnNoaWZ0KCkpO2lmKCEociBpbnN0YW5jZW9mIERpY3QpKWNvbnRpbnVlO2lmKHIuaGFzKCJLaWRzIikpe2NvbnN0IGU9ci5nZXQoIktpZHMiKTtpZighQXJyYXkuaXNBcnJheShlKSljb250aW51ZTtmb3IoY29uc3QgdCBvZiBlKXtpZihpLmhhcyh0KSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYER1cGxpY2F0ZSBlbnRyeSBpbiAiJHt0aGlzLl90eXBlfSIgdHJlZS5gKTthLnB1c2godCk7aS5wdXQodCl9Y29udGludWV9Y29uc3Qgcz1yLmdldCh0aGlzLl90eXBlKTtpZihBcnJheS5pc0FycmF5KHMpKWZvcihsZXQgaT0wLGE9cy5sZW5ndGg7aTxhO2krPTIpZS5zZXQodC5mZXRjaElmUmVmKHNbaV0pLHQuZmV0Y2hJZlJlZihzW2krMV0pKX1yZXR1cm4gZX1nZXRSYXcoZSl7aWYoIXRoaXMucm9vdClyZXR1cm4gbnVsbDtjb25zdCB0PXRoaXMueHJlZjtsZXQgaT10LmZldGNoSWZSZWYodGhpcy5yb290KSxhPTA7Zm9yKDtpLmhhcygiS2lkcyIpOyl7aWYoKythPjEwKXt3YXJuKGBTZWFyY2ggZGVwdGggbGltaXQgcmVhY2hlZCBmb3IgIiR7dGhpcy5fdHlwZX0iIHRyZWUuYCk7cmV0dXJuIG51bGx9Y29uc3Qgcj1pLmdldCgiS2lkcyIpO2lmKCFBcnJheS5pc0FycmF5KHIpKXJldHVybiBudWxsO2xldCBzPTAsbj1yLmxlbmd0aC0xO2Zvcig7czw9bjspe2NvbnN0IGE9cytuPj4xLG89dC5mZXRjaElmUmVmKHJbYV0pLGc9by5nZXQoIkxpbWl0cyIpO2lmKGU8dC5mZXRjaElmUmVmKGdbMF0pKW49YS0xO2Vsc2V7aWYoIShlPnQuZmV0Y2hJZlJlZihnWzFdKSkpe2k9bzticmVha31zPWErMX19aWYocz5uKXJldHVybiBudWxsfWNvbnN0IHI9aS5nZXQodGhpcy5fdHlwZSk7aWYoQXJyYXkuaXNBcnJheShyKSl7bGV0IGk9MCxhPXIubGVuZ3RoLTI7Zm9yKDtpPD1hOyl7Y29uc3Qgcz1pK2E+PjEsbj1zKygxJnMpLG89dC5mZXRjaElmUmVmKHJbbl0pO2lmKGU8bylhPW4tMjtlbHNle2lmKCEoZT5vKSlyZXR1cm4gcltuKzFdO2k9bisyfX19cmV0dXJuIG51bGx9Z2V0KGUpe3JldHVybiB0aGlzLnhyZWYuZmV0Y2hJZlJlZih0aGlzLmdldFJhdyhlKSl9fWNsYXNzIE5hbWVUcmVlIGV4dGVuZHMgTmFtZU9yTnVtYmVyVHJlZXtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCwiTmFtZXMiKX19Y2xhc3MgTnVtYmVyVHJlZSBleHRlbmRzIE5hbWVPck51bWJlclRyZWV7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQsIk51bXMiKX19ZnVuY3Rpb24gY2xlYXJHbG9iYWxDYWNoZXMoKXshZnVuY3Rpb24gY2xlYXJQYXR0ZXJuQ2FjaGVzKCl7dWE9T2JqZWN0LmNyZWF0ZShudWxsKX0oKTshZnVuY3Rpb24gY2xlYXJQcmltaXRpdmVDYWNoZXMoKXt1dD1PYmplY3QuY3JlYXRlKG51bGwpO2R0PU9iamVjdC5jcmVhdGUobnVsbCk7ZnQ9T2JqZWN0LmNyZWF0ZShudWxsKX0oKTshZnVuY3Rpb24gY2xlYXJVbmljb2RlQ2FjaGVzKCl7TmkuY2xlYXIoKX0oKTtKcHhJbWFnZS5jbGVhbnVwKCl9ZnVuY3Rpb24gcGlja1BsYXRmb3JtSXRlbShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIERpY3Q/ZS5oYXMoIlVGIik/ZS5nZXQoIlVGIik6ZS5oYXMoIkYiKT9lLmdldCgiRiIpOmUuaGFzKCJVbml4Iik/ZS5nZXQoIlVuaXgiKTplLmhhcygiTWFjIik/ZS5nZXQoIk1hYyIpOmUuaGFzKCJET1MiKT9lLmdldCgiRE9TIik6bnVsbDpudWxsfWNsYXNzIEZpbGVTcGVjeyNVPSExO2NvbnN0cnVjdG9yKGUsdCxpPSExKXtpZihlIGluc3RhbmNlb2YgRGljdCl7dGhpcy54cmVmPXQ7dGhpcy5yb290PWU7ZS5oYXMoIkZTIikmJih0aGlzLmZzPWUuZ2V0KCJGUyIpKTtlLmhhcygiUkYiKSYmd2FybigiUmVsYXRlZCBmaWxlIHNwZWNpZmljYXRpb25zIGFyZSBub3Qgc3VwcG9ydGVkIik7aXx8KGUuaGFzKCJFRiIpP3RoaXMuI1U9ITA6d2FybigiTm9uLWVtYmVkZGVkIGZpbGUgc3BlY2lmaWNhdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQiKSl9fWdldCBmaWxlbmFtZSgpe2xldCBlPSIiO2NvbnN0IHQ9cGlja1BsYXRmb3JtSXRlbSh0aGlzLnJvb3QpO3QmJiJzdHJpbmciPT10eXBlb2YgdCYmKGU9c3RyaW5nVG9QREZTdHJpbmcodCkucmVwbGFjZUFsbCgiXFxcXCIsIlxcIikucmVwbGFjZUFsbCgiXFwvIiwiLyIpLnJlcGxhY2VBbGwoIlxcIiwiLyIpKTtyZXR1cm4gc2hhZG93KHRoaXMsImZpbGVuYW1lIixlfHwidW5uYW1lZCIpfWdldCBjb250ZW50KCl7aWYoIXRoaXMuI1UpcmV0dXJuIG51bGw7dGhpcy5fY29udGVudFJlZnx8PXBpY2tQbGF0Zm9ybUl0ZW0odGhpcy5yb290Py5nZXQoIkVGIikpO2xldCBlPW51bGw7aWYodGhpcy5fY29udGVudFJlZil7Y29uc3QgdD10aGlzLnhyZWYuZmV0Y2hJZlJlZih0aGlzLl9jb250ZW50UmVmKTt0IGluc3RhbmNlb2YgQmFzZVN0cmVhbT9lPXQuZ2V0Qnl0ZXMoKTp3YXJuKCJFbWJlZGRlZCBmaWxlIHNwZWNpZmljYXRpb24gcG9pbnRzIHRvIG5vbi1leGlzdGluZy9pbnZhbGlkIGNvbnRlbnQiKX1lbHNlIHdhcm4oIkVtYmVkZGVkIGZpbGUgc3BlY2lmaWNhdGlvbiBkb2VzIG5vdCBoYXZlIGFueSBjb250ZW50Iik7cmV0dXJuIGV9Z2V0IGRlc2NyaXB0aW9uKCl7bGV0IGU9IiI7Y29uc3QgdD10aGlzLnJvb3Q/LmdldCgiRGVzYyIpO3QmJiJzdHJpbmciPT10eXBlb2YgdCYmKGU9c3RyaW5nVG9QREZTdHJpbmcodCkpO3JldHVybiBzaGFkb3codGhpcywiZGVzY3JpcHRpb24iLGUpfWdldCBzZXJpYWxpemFibGUoKXtyZXR1cm57cmF3RmlsZW5hbWU6dGhpcy5maWxlbmFtZSxmaWxlbmFtZTooZT10aGlzLmZpbGVuYW1lLGUuc3Vic3RyaW5nKGUubGFzdEluZGV4T2YoIi8iKSsxKSksY29udGVudDp0aGlzLmNvbnRlbnQsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbn07dmFyIGV9fWNvbnN0IERyPTAsRnI9LTIsU3I9LTMsa3I9LTQsUnI9LTUsTnI9LTYsR3I9LTk7ZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKGUsdCl7Y29uc3QgaT1lW3RdO3JldHVybiIgIj09PWl8fCJcbiI9PT1pfHwiXHIiPT09aXx8Ilx0Ij09PWl9Y2xhc3MgWE1MUGFyc2VyQmFzZXtfcmVzb2x2ZUVudGl0aWVzKGUpe3JldHVybiBlLnJlcGxhY2VBbGwoLyYoW147XSspOy9nLCgoZSx0KT0+e2lmKCIjeCI9PT10LnN1YnN0cmluZygwLDIpKXJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludChwYXJzZUludCh0LnN1YnN0cmluZygyKSwxNikpO2lmKCIjIj09PXQuc3Vic3RyaW5nKDAsMSkpcmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KHBhcnNlSW50KHQuc3Vic3RyaW5nKDEpLDEwKSk7c3dpdGNoKHQpe2Nhc2UibHQiOnJldHVybiI8IjtjYXNlImd0IjpyZXR1cm4iPiI7Y2FzZSJhbXAiOnJldHVybiImIjtjYXNlInF1b3QiOnJldHVybiciJztjYXNlImFwb3MiOnJldHVybiInIn1yZXR1cm4gdGhpcy5vblJlc29sdmVFbnRpdHkodCl9KSl9X3BhcnNlQ29udGVudChlLHQpe2NvbnN0IGk9W107bGV0IGE9dDtmdW5jdGlvbiBza2lwV3MoKXtmb3IoO2E8ZS5sZW5ndGgmJmlzV2hpdGVzcGFjZShlLGEpOykrK2F9Zm9yKDthPGUubGVuZ3RoJiYhaXNXaGl0ZXNwYWNlKGUsYSkmJiI+IiE9PWVbYV0mJiIvIiE9PWVbYV07KSsrYTtjb25zdCByPWUuc3Vic3RyaW5nKHQsYSk7c2tpcFdzKCk7Zm9yKDthPGUubGVuZ3RoJiYiPiIhPT1lW2FdJiYiLyIhPT1lW2FdJiYiPyIhPT1lW2FdOyl7c2tpcFdzKCk7bGV0IHQ9IiIscj0iIjtmb3IoO2E8ZS5sZW5ndGgmJiFpc1doaXRlc3BhY2UoZSxhKSYmIj0iIT09ZVthXTspe3QrPWVbYV07KythfXNraXBXcygpO2lmKCI9IiE9PWVbYV0pcmV0dXJuIG51bGw7KythO3NraXBXcygpO2NvbnN0IHM9ZVthXTtpZignIichPT1zJiYiJyIhPT1zKXJldHVybiBudWxsO2NvbnN0IG49ZS5pbmRleE9mKHMsKythKTtpZihuPDApcmV0dXJuIG51bGw7cj1lLnN1YnN0cmluZyhhLG4pO2kucHVzaCh7bmFtZTp0LHZhbHVlOnRoaXMuX3Jlc29sdmVFbnRpdGllcyhyKX0pO2E9bisxO3NraXBXcygpfXJldHVybntuYW1lOnIsYXR0cmlidXRlczppLHBhcnNlZDphLXR9fV9wYXJzZVByb2Nlc3NpbmdJbnN0cnVjdGlvbihlLHQpe2xldCBpPXQ7Zm9yKDtpPGUubGVuZ3RoJiYhaXNXaGl0ZXNwYWNlKGUsaSkmJiI+IiE9PWVbaV0mJiI/IiE9PWVbaV0mJiIvIiE9PWVbaV07KSsraTtjb25zdCBhPWUuc3Vic3RyaW5nKHQsaSk7IWZ1bmN0aW9uIHNraXBXcygpe2Zvcig7aTxlLmxlbmd0aCYmaXNXaGl0ZXNwYWNlKGUsaSk7KSsraX0oKTtjb25zdCByPWk7Zm9yKDtpPGUubGVuZ3RoJiYoIj8iIT09ZVtpXXx8Ij4iIT09ZVtpKzFdKTspKytpO3JldHVybntuYW1lOmEsdmFsdWU6ZS5zdWJzdHJpbmcocixpKSxwYXJzZWQ6aS10fX1wYXJzZVhtbChlKXtsZXQgdD0wO2Zvcig7dDxlLmxlbmd0aDspe2xldCBpPXQ7aWYoIjwiPT09ZVt0XSl7KytpO2xldCB0O3N3aXRjaChlW2ldKXtjYXNlIi8iOisraTt0PWUuaW5kZXhPZigiPiIsaSk7aWYodDwwKXt0aGlzLm9uRXJyb3IoR3IpO3JldHVybn10aGlzLm9uRW5kRWxlbWVudChlLnN1YnN0cmluZyhpLHQpKTtpPXQrMTticmVhaztjYXNlIj8iOisraTtjb25zdCBhPXRoaXMuX3BhcnNlUHJvY2Vzc2luZ0luc3RydWN0aW9uKGUsaSk7aWYoIj8+IiE9PWUuc3Vic3RyaW5nKGkrYS5wYXJzZWQsaSthLnBhcnNlZCsyKSl7dGhpcy5vbkVycm9yKFNyKTtyZXR1cm59dGhpcy5vblBpKGEubmFtZSxhLnZhbHVlKTtpKz1hLnBhcnNlZCsyO2JyZWFrO2Nhc2UiISI6aWYoIi0tIj09PWUuc3Vic3RyaW5nKGkrMSxpKzMpKXt0PWUuaW5kZXhPZigiLS1ceDNlIixpKzMpO2lmKHQ8MCl7dGhpcy5vbkVycm9yKFJyKTtyZXR1cm59dGhpcy5vbkNvbW1lbnQoZS5zdWJzdHJpbmcoaSszLHQpKTtpPXQrM31lbHNlIGlmKCJbQ0RBVEFbIj09PWUuc3Vic3RyaW5nKGkrMSxpKzgpKXt0PWUuaW5kZXhPZigiXV0+IixpKzgpO2lmKHQ8MCl7dGhpcy5vbkVycm9yKEZyKTtyZXR1cm59dGhpcy5vbkNkYXRhKGUuc3Vic3RyaW5nKGkrOCx0KSk7aT10KzN9ZWxzZXtpZigiRE9DVFlQRSIhPT1lLnN1YnN0cmluZyhpKzEsaSs4KSl7dGhpcy5vbkVycm9yKE5yKTtyZXR1cm59e2NvbnN0IGE9ZS5pbmRleE9mKCJbIixpKzgpO2xldCByPSExO3Q9ZS5pbmRleE9mKCI+IixpKzgpO2lmKHQ8MCl7dGhpcy5vbkVycm9yKGtyKTtyZXR1cm59aWYoYT4wJiZ0PmEpe3Q9ZS5pbmRleE9mKCJdPiIsaSs4KTtpZih0PDApe3RoaXMub25FcnJvcihrcik7cmV0dXJufXI9ITB9Y29uc3Qgcz1lLnN1YnN0cmluZyhpKzgsdCsocj8xOjApKTt0aGlzLm9uRG9jdHlwZShzKTtpPXQrKHI/MjoxKX19YnJlYWs7ZGVmYXVsdDpjb25zdCByPXRoaXMuX3BhcnNlQ29udGVudChlLGkpO2lmKG51bGw9PT1yKXt0aGlzLm9uRXJyb3IoTnIpO3JldHVybn1sZXQgcz0hMTtpZigiLz4iPT09ZS5zdWJzdHJpbmcoaStyLnBhcnNlZCxpK3IucGFyc2VkKzIpKXM9ITA7ZWxzZSBpZigiPiIhPT1lLnN1YnN0cmluZyhpK3IucGFyc2VkLGkrci5wYXJzZWQrMSkpe3RoaXMub25FcnJvcihHcik7cmV0dXJufXRoaXMub25CZWdpbkVsZW1lbnQoci5uYW1lLHIuYXR0cmlidXRlcyxzKTtpKz1yLnBhcnNlZCsocz8yOjEpfX1lbHNle2Zvcig7aTxlLmxlbmd0aCYmIjwiIT09ZVtpXTspaSsrO2NvbnN0IGE9ZS5zdWJzdHJpbmcodCxpKTt0aGlzLm9uVGV4dCh0aGlzLl9yZXNvbHZlRW50aXRpZXMoYSkpfXQ9aX19b25SZXNvbHZlRW50aXR5KGUpe3JldHVybmAmJHtlfTtgfW9uUGkoZSx0KXt9b25Db21tZW50KGUpe31vbkNkYXRhKGUpe31vbkRvY3R5cGUoZSl7fW9uVGV4dChlKXt9b25CZWdpbkVsZW1lbnQoZSx0LGkpe31vbkVuZEVsZW1lbnQoZSl7fW9uRXJyb3IoZSl7fX1jbGFzcyBTaW1wbGVET01Ob2Rle2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5ub2RlTmFtZT1lO3RoaXMubm9kZVZhbHVlPXQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsInBhcmVudE5vZGUiLHt2YWx1ZTpudWxsLHdyaXRhYmxlOiEwfSl9Z2V0IGZpcnN0Q2hpbGQoKXtyZXR1cm4gdGhpcy5jaGlsZE5vZGVzPy5bMF19Z2V0IG5leHRTaWJsaW5nKCl7Y29uc3QgZT10aGlzLnBhcmVudE5vZGUuY2hpbGROb2RlcztpZighZSlyZXR1cm47Y29uc3QgdD1lLmluZGV4T2YodGhpcyk7cmV0dXJuLTEhPT10P2VbdCsxXTp2b2lkIDB9Z2V0IHRleHRDb250ZW50KCl7cmV0dXJuIHRoaXMuY2hpbGROb2Rlcz90aGlzLmNoaWxkTm9kZXMubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZS50ZXh0Q29udGVudH0pKS5qb2luKCIiKTp0aGlzLm5vZGVWYWx1ZXx8IiJ9Z2V0IGNoaWxkcmVuKCl7cmV0dXJuIHRoaXMuY2hpbGROb2Rlc3x8W119aGFzQ2hpbGROb2Rlcygpe3JldHVybiB0aGlzLmNoaWxkTm9kZXM/Lmxlbmd0aD4wfXNlYXJjaE5vZGUoZSx0KXtpZih0Pj1lLmxlbmd0aClyZXR1cm4gdGhpcztjb25zdCBpPWVbdF07aWYoaS5uYW1lLnN0YXJ0c1dpdGgoIiMiKSYmdDxlLmxlbmd0aC0xKXJldHVybiB0aGlzLnNlYXJjaE5vZGUoZSx0KzEpO2NvbnN0IGE9W107bGV0IHI9dGhpcztmb3IoOzspe2lmKGkubmFtZT09PXIubm9kZU5hbWUpe2lmKDAhPT1pLnBvcyl7aWYoMD09PWEubGVuZ3RoKXJldHVybiBudWxsO3tjb25zdFtzXT1hLnBvcCgpO2xldCBuPTA7Zm9yKGNvbnN0IGEgb2Ygcy5jaGlsZE5vZGVzKWlmKGkubmFtZT09PWEubm9kZU5hbWUpe2lmKG49PT1pLnBvcylyZXR1cm4gYS5zZWFyY2hOb2RlKGUsdCsxKTtuKyt9cmV0dXJuIHIuc2VhcmNoTm9kZShlLHQrMSl9fXtjb25zdCBpPXIuc2VhcmNoTm9kZShlLHQrMSk7aWYobnVsbCE9PWkpcmV0dXJuIGl9fWlmKHIuY2hpbGROb2Rlcz8ubGVuZ3RoPjApe2EucHVzaChbciwwXSk7cj1yLmNoaWxkTm9kZXNbMF19ZWxzZXtpZigwPT09YS5sZW5ndGgpcmV0dXJuIG51bGw7Zm9yKDswIT09YS5sZW5ndGg7KXtjb25zdFtlLHRdPWEucG9wKCksaT10KzE7aWYoaTxlLmNoaWxkTm9kZXMubGVuZ3RoKXthLnB1c2goW2UsaV0pO3I9ZS5jaGlsZE5vZGVzW2ldO2JyZWFrfX1pZigwPT09YS5sZW5ndGgpcmV0dXJuIG51bGx9fX1kdW1wKGUpe2lmKCIjdGV4dCIhPT10aGlzLm5vZGVOYW1lKXtlLnB1c2goYDwke3RoaXMubm9kZU5hbWV9YCk7aWYodGhpcy5hdHRyaWJ1dGVzKWZvcihjb25zdCB0IG9mIHRoaXMuYXR0cmlidXRlcyllLnB1c2goYCAke3QubmFtZX09IiR7ZW5jb2RlVG9YbWxTdHJpbmcodC52YWx1ZSl9ImApO2lmKHRoaXMuaGFzQ2hpbGROb2RlcygpKXtlLnB1c2goIj4iKTtmb3IoY29uc3QgdCBvZiB0aGlzLmNoaWxkTm9kZXMpdC5kdW1wKGUpO2UucHVzaChgPC8ke3RoaXMubm9kZU5hbWV9PmApfWVsc2UgdGhpcy5ub2RlVmFsdWU/ZS5wdXNoKGA+JHtlbmNvZGVUb1htbFN0cmluZyh0aGlzLm5vZGVWYWx1ZSl9PC8ke3RoaXMubm9kZU5hbWV9PmApOmUucHVzaCgiLz4iKX1lbHNlIGUucHVzaChlbmNvZGVUb1htbFN0cmluZyh0aGlzLm5vZGVWYWx1ZSkpfX1jbGFzcyBTaW1wbGVYTUxQYXJzZXIgZXh0ZW5kcyBYTUxQYXJzZXJCYXNle2NvbnN0cnVjdG9yKHtoYXNBdHRyaWJ1dGVzOmU9ITEsbG93ZXJDYXNlTmFtZTp0PSExfSl7c3VwZXIoKTt0aGlzLl9jdXJyZW50RnJhZ21lbnQ9bnVsbDt0aGlzLl9zdGFjaz1udWxsO3RoaXMuX2Vycm9yQ29kZT1Ecjt0aGlzLl9oYXNBdHRyaWJ1dGVzPWU7dGhpcy5fbG93ZXJDYXNlTmFtZT10fXBhcnNlRnJvbVN0cmluZyhlKXt0aGlzLl9jdXJyZW50RnJhZ21lbnQ9W107dGhpcy5fc3RhY2s9W107dGhpcy5fZXJyb3JDb2RlPURyO3RoaXMucGFyc2VYbWwoZSk7aWYodGhpcy5fZXJyb3JDb2RlIT09RHIpcmV0dXJuO2NvbnN0W3RdPXRoaXMuX2N1cnJlbnRGcmFnbWVudDtyZXR1cm4gdD97ZG9jdW1lbnRFbGVtZW50OnR9OnZvaWQgMH1vblRleHQoZSl7aWYoZnVuY3Rpb24gaXNXaGl0ZXNwYWNlU3RyaW5nKGUpe2ZvcihsZXQgdD0wLGk9ZS5sZW5ndGg7dDxpO3QrKylpZighaXNXaGl0ZXNwYWNlKGUsdCkpcmV0dXJuITE7cmV0dXJuITB9KGUpKXJldHVybjtjb25zdCB0PW5ldyBTaW1wbGVET01Ob2RlKCIjdGV4dCIsZSk7dGhpcy5fY3VycmVudEZyYWdtZW50LnB1c2godCl9b25DZGF0YShlKXtjb25zdCB0PW5ldyBTaW1wbGVET01Ob2RlKCIjdGV4dCIsZSk7dGhpcy5fY3VycmVudEZyYWdtZW50LnB1c2godCl9b25CZWdpbkVsZW1lbnQoZSx0LGkpe3RoaXMuX2xvd2VyQ2FzZU5hbWUmJihlPWUudG9Mb3dlckNhc2UoKSk7Y29uc3QgYT1uZXcgU2ltcGxlRE9NTm9kZShlKTthLmNoaWxkTm9kZXM9W107dGhpcy5faGFzQXR0cmlidXRlcyYmKGEuYXR0cmlidXRlcz10KTt0aGlzLl9jdXJyZW50RnJhZ21lbnQucHVzaChhKTtpZighaSl7dGhpcy5fc3RhY2sucHVzaCh0aGlzLl9jdXJyZW50RnJhZ21lbnQpO3RoaXMuX2N1cnJlbnRGcmFnbWVudD1hLmNoaWxkTm9kZXN9fW9uRW5kRWxlbWVudChlKXt0aGlzLl9jdXJyZW50RnJhZ21lbnQ9dGhpcy5fc3RhY2sucG9wKCl8fFtdO2NvbnN0IHQ9dGhpcy5fY3VycmVudEZyYWdtZW50LmF0KC0xKTtpZighdClyZXR1cm4gbnVsbDtmb3IoY29uc3QgZSBvZiB0LmNoaWxkTm9kZXMpZS5wYXJlbnROb2RlPXQ7cmV0dXJuIHR9b25FcnJvcihlKXt0aGlzLl9lcnJvckNvZGU9ZX19Y2xhc3MgTWV0YWRhdGFQYXJzZXJ7Y29uc3RydWN0b3IoZSl7ZT10aGlzLl9yZXBhaXIoZSk7Y29uc3QgdD1uZXcgU2ltcGxlWE1MUGFyc2VyKHtsb3dlckNhc2VOYW1lOiEwfSkucGFyc2VGcm9tU3RyaW5nKGUpO3RoaXMuX21ldGFkYXRhTWFwPW5ldyBNYXA7dGhpcy5fZGF0YT1lO3QmJnRoaXMuX3BhcnNlKHQpfV9yZXBhaXIoZSl7cmV0dXJuIGUucmVwbGFjZSgvXltePF0rLywiIikucmVwbGFjZUFsbCgvPlxcMzc2XFwzNzcoW148XSspL2csKGZ1bmN0aW9uKGUsdCl7Y29uc3QgaT10LnJlcGxhY2VBbGwoL1xcKFswLTNdKShbMC03XSkoWzAtN10pL2csKGZ1bmN0aW9uKGUsdCxpLGEpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKDY0KnQrOCppKzEqYSl9KSkucmVwbGFjZUFsbCgvJihhbXB8YXBvc3xndHxsdHxxdW90KTsvZywoZnVuY3Rpb24oZSx0KXtzd2l0Y2godCl7Y2FzZSJhbXAiOnJldHVybiImIjtjYXNlImFwb3MiOnJldHVybiInIjtjYXNlImd0IjpyZXR1cm4iPiI7Y2FzZSJsdCI6cmV0dXJuIjwiO2Nhc2UicXVvdCI6cmV0dXJuJyInfXRocm93IG5ldyBFcnJvcihgX3JlcGFpcjogJHt0fSBpc24ndCBkZWZpbmVkLmApfSkpLGE9WyI+Il07Zm9yKGxldCBlPTAsdD1pLmxlbmd0aDtlPHQ7ZSs9Mil7Y29uc3QgdD0yNTYqaS5jaGFyQ29kZUF0KGUpK2kuY2hhckNvZGVBdChlKzEpO3Q+PTMyJiZ0PDEyNyYmNjAhPT10JiY2MiE9PXQmJjM4IT09dD9hLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSh0KSk6YS5wdXNoKCImI3giKyg2NTUzNit0KS50b1N0cmluZygxNikuc3Vic3RyaW5nKDEpKyI7Iil9cmV0dXJuIGEuam9pbigiIil9KSl9X2dldFNlcXVlbmNlKGUpe2NvbnN0IHQ9ZS5ub2RlTmFtZTtyZXR1cm4icmRmOmJhZyIhPT10JiYicmRmOnNlcSIhPT10JiYicmRmOmFsdCIhPT10P251bGw6ZS5jaGlsZE5vZGVzLmZpbHRlcigoZT0+InJkZjpsaSI9PT1lLm5vZGVOYW1lKSl9X3BhcnNlQXJyYXkoZSl7aWYoIWUuaGFzQ2hpbGROb2RlcygpKXJldHVybjtjb25zdFt0XT1lLmNoaWxkTm9kZXMsaT10aGlzLl9nZXRTZXF1ZW5jZSh0KXx8W107dGhpcy5fbWV0YWRhdGFNYXAuc2V0KGUubm9kZU5hbWUsaS5tYXAoKGU9PmUudGV4dENvbnRlbnQudHJpbSgpKSkpfV9wYXJzZShlKXtsZXQgdD1lLmRvY3VtZW50RWxlbWVudDtpZigicmRmOnJkZiIhPT10Lm5vZGVOYW1lKXt0PXQuZmlyc3RDaGlsZDtmb3IoO3QmJiJyZGY6cmRmIiE9PXQubm9kZU5hbWU7KXQ9dC5uZXh0U2libGluZ31pZih0JiYicmRmOnJkZiI9PT10Lm5vZGVOYW1lJiZ0Lmhhc0NoaWxkTm9kZXMoKSlmb3IoY29uc3QgZSBvZiB0LmNoaWxkTm9kZXMpaWYoInJkZjpkZXNjcmlwdGlvbiI9PT1lLm5vZGVOYW1lKWZvcihjb25zdCB0IG9mIGUuY2hpbGROb2Rlcyl7Y29uc3QgZT10Lm5vZGVOYW1lO3N3aXRjaChlKXtjYXNlIiN0ZXh0Ijpjb250aW51ZTtjYXNlImRjOmNyZWF0b3IiOmNhc2UiZGM6c3ViamVjdCI6dGhpcy5fcGFyc2VBcnJheSh0KTtjb250aW51ZX10aGlzLl9tZXRhZGF0YU1hcC5zZXQoZSx0LnRleHRDb250ZW50LnRyaW0oKSl9fWdldCBzZXJpYWxpemFibGUoKXtyZXR1cm57cGFyc2VkRGF0YTp0aGlzLl9tZXRhZGF0YU1hcCxyYXdEYXRhOnRoaXMuX2RhdGF9fX1jb25zdCBNcj0xLFVyPTIseHI9MyxMcj00LEhyPTU7Y2xhc3MgU3RydWN0VHJlZVJvb3R7Y29uc3RydWN0b3IoZSx0KXt0aGlzLmRpY3Q9ZTt0aGlzLnJlZj10IGluc3RhbmNlb2YgUmVmP3Q6bnVsbDt0aGlzLnJvbGVNYXA9bmV3IE1hcDt0aGlzLnN0cnVjdFBhcmVudElkcz1udWxsfWluaXQoKXt0aGlzLnJlYWRSb2xlTWFwKCl9I3goZSx0LGkpe2lmKCEoZSBpbnN0YW5jZW9mIFJlZil8fHQ8MClyZXR1cm47dGhpcy5zdHJ1Y3RQYXJlbnRJZHN8fD1uZXcgUmVmU2V0Q2FjaGU7bGV0IGE9dGhpcy5zdHJ1Y3RQYXJlbnRJZHMuZ2V0KGUpO2lmKCFhKXthPVtdO3RoaXMuc3RydWN0UGFyZW50SWRzLnB1dChlLGEpfWEucHVzaChbdCxpXSl9YWRkQW5ub3RhdGlvbklkVG9QYWdlKGUsdCl7dGhpcy4jeChlLHQsTHIpfXJlYWRSb2xlTWFwKCl7Y29uc3QgZT10aGlzLmRpY3QuZ2V0KCJSb2xlTWFwIik7aWYoZSBpbnN0YW5jZW9mIERpY3QpZm9yKGNvbnN0W3QsaV1vZiBlKWkgaW5zdGFuY2VvZiBOYW1lJiZ0aGlzLnJvbGVNYXAuc2V0KHQsaS5uYW1lKX1zdGF0aWMgYXN5bmMgY2FuQ3JlYXRlU3RydWN0dXJlVHJlZSh7Y2F0YWxvZ1JlZjplLHBkZk1hbmFnZXI6dCxuZXdBbm5vdGF0aW9uc0J5UGFnZTppfSl7aWYoIShlIGluc3RhbmNlb2YgUmVmKSl7d2FybigiQ2Fubm90IHNhdmUgdGhlIHN0cnVjdCB0cmVlOiBubyBjYXRhbG9nIHJlZmVyZW5jZS4iKTtyZXR1cm4hMX1sZXQgYT0wLHI9ITA7Zm9yKGNvbnN0W2Usc11vZiBpKXtjb25zdHtyZWY6aX09YXdhaXQgdC5nZXRQYWdlKGUpO2lmKCEoaSBpbnN0YW5jZW9mIFJlZikpe3dhcm4oYENhbm5vdCBzYXZlIHRoZSBzdHJ1Y3QgdHJlZTogcGFnZSAke2V9IGhhcyBubyByZWYuYCk7cj0hMDticmVha31mb3IoY29uc3QgZSBvZiBzKWlmKGUuYWNjZXNzaWJpbGl0eURhdGE/LnR5cGUpe2UucGFyZW50VHJlZUlkPWErKztyPSExfX1pZihyKXtmb3IoY29uc3QgZSBvZiBpLnZhbHVlcygpKWZvcihjb25zdCB0IG9mIGUpZGVsZXRlIHQucGFyZW50VHJlZUlkO3JldHVybiExfXJldHVybiEwfXN0YXRpYyBhc3luYyBjcmVhdGVTdHJ1Y3R1cmVUcmVlKHtuZXdBbm5vdGF0aW9uc0J5UGFnZTplLHhyZWY6dCxjYXRhbG9nUmVmOmkscGRmTWFuYWdlcjphLGNoYW5nZXM6cn0pe2NvbnN0IHM9YS5jYXRhbG9nLmNsb25lRGljdCgpLG49bmV3IFJlZlNldENhY2hlO24ucHV0KGkscyk7Y29uc3Qgbz10LmdldE5ld1RlbXBvcmFyeVJlZigpO3Muc2V0KCJTdHJ1Y3RUcmVlUm9vdCIsbyk7Y29uc3QgZz1uZXcgRGljdCh0KTtnLnNldCgiVHlwZSIsTmFtZS5nZXQoIlN0cnVjdFRyZWVSb290IikpO2NvbnN0IGM9dC5nZXROZXdUZW1wb3JhcnlSZWYoKTtnLnNldCgiUGFyZW50VHJlZSIsYyk7Y29uc3QgbD1bXTtnLnNldCgiSyIsbCk7bi5wdXQobyxnKTtjb25zdCBoPW5ldyBEaWN0KHQpLEM9W107aC5zZXQoIk51bXMiLEMpO2NvbnN0IFE9YXdhaXQgdGhpcy4jTCh7bmV3QW5ub3RhdGlvbnNCeVBhZ2U6ZSxzdHJ1Y3RUcmVlUm9vdFJlZjpvLHN0cnVjdFRyZWVSb290Om51bGwsa2lkczpsLG51bXM6Qyx4cmVmOnQscGRmTWFuYWdlcjphLGNoYW5nZXM6cixjYWNoZTpufSk7Zy5zZXQoIlBhcmVudFRyZWVOZXh0S2V5IixRKTtuLnB1dChjLGgpO2Zvcihjb25zdFtlLHRdb2Ygbi5pdGVtcygpKXIucHV0KGUse2RhdGE6dH0pfWFzeW5jIGNhblVwZGF0ZVN0cnVjdFRyZWUoe3BkZk1hbmFnZXI6ZSx4cmVmOnQsbmV3QW5ub3RhdGlvbnNCeVBhZ2U6aX0pe2lmKCF0aGlzLnJlZil7d2FybigiQ2Fubm90IHVwZGF0ZSB0aGUgc3RydWN0IHRyZWU6IG5vIHJvb3QgcmVmZXJlbmNlLiIpO3JldHVybiExfWxldCBhPXRoaXMuZGljdC5nZXQoIlBhcmVudFRyZWVOZXh0S2V5Iik7aWYoIU51bWJlci5pc0ludGVnZXIoYSl8fGE8MCl7d2FybigiQ2Fubm90IHVwZGF0ZSB0aGUgc3RydWN0IHRyZWU6IGludmFsaWQgbmV4dCBrZXkuIik7cmV0dXJuITF9Y29uc3Qgcj10aGlzLmRpY3QuZ2V0KCJQYXJlbnRUcmVlIik7aWYoIShyIGluc3RhbmNlb2YgRGljdCkpe3dhcm4oIkNhbm5vdCB1cGRhdGUgdGhlIHN0cnVjdCB0cmVlOiBQYXJlbnRUcmVlIGlzbid0IGEgZGljdC4iKTtyZXR1cm4hMX1jb25zdCBzPXIuZ2V0KCJOdW1zIik7aWYoIUFycmF5LmlzQXJyYXkocykpe3dhcm4oIkNhbm5vdCB1cGRhdGUgdGhlIHN0cnVjdCB0cmVlOiBudW1zIGlzbid0IGFuIGFycmF5LiIpO3JldHVybiExfWNvbnN0IG49bmV3IE51bWJlclRyZWUocix0KTtmb3IoY29uc3QgdCBvZiBpLmtleXMoKSl7Y29uc3R7cGFnZURpY3Q6aX09YXdhaXQgZS5nZXRQYWdlKHQpO2lmKCFpLmhhcygiU3RydWN0UGFyZW50cyIpKWNvbnRpbnVlO2NvbnN0IGE9aS5nZXQoIlN0cnVjdFBhcmVudHMiKTtpZighTnVtYmVyLmlzSW50ZWdlcihhKXx8IUFycmF5LmlzQXJyYXkobi5nZXQoYSkpKXt3YXJuKGBDYW5ub3Qgc2F2ZSB0aGUgc3RydWN0IHRyZWU6IHBhZ2UgJHt0fSBoYXMgYSB3cm9uZyBpZC5gKTtyZXR1cm4hMX19bGV0IG89ITA7Zm9yKGNvbnN0W3Qscl1vZiBpKXtjb25zdHtwYWdlRGljdDppfT1hd2FpdCBlLmdldFBhZ2UodCk7U3RydWN0VHJlZVJvb3QuI0goe2VsZW1lbnRzOnIseHJlZjp0aGlzLmRpY3QueHJlZixwYWdlRGljdDppLG51bWJlclRyZWU6bn0pO2Zvcihjb25zdCBlIG9mIHIpaWYoZS5hY2Nlc3NpYmlsaXR5RGF0YT8udHlwZSl7ZS5hY2Nlc3NpYmlsaXR5RGF0YS5zdHJ1Y3RQYXJlbnQ+PTB8fChlLnBhcmVudFRyZWVJZD1hKyspO289ITF9fWlmKG8pe2Zvcihjb25zdCBlIG9mIGkudmFsdWVzKCkpZm9yKGNvbnN0IHQgb2YgZSl7ZGVsZXRlIHQucGFyZW50VHJlZUlkO2RlbGV0ZSB0LnN0cnVjdFRyZWVQYXJlbnR9cmV0dXJuITF9cmV0dXJuITB9YXN5bmMgdXBkYXRlU3RydWN0dXJlVHJlZSh7bmV3QW5ub3RhdGlvbnNCeVBhZ2U6ZSxwZGZNYW5hZ2VyOnQsY2hhbmdlczppfSl7Y29uc3QgYT10aGlzLmRpY3QueHJlZixyPXRoaXMuZGljdC5jbG9uZSgpLHM9dGhpcy5yZWYsbj1uZXcgUmVmU2V0Q2FjaGU7bi5wdXQocyxyKTtsZXQgbyxnPXIuZ2V0UmF3KCJQYXJlbnRUcmVlIik7aWYoZyBpbnN0YW5jZW9mIFJlZilvPWEuZmV0Y2goZyk7ZWxzZXtvPWc7Zz1hLmdldE5ld1RlbXBvcmFyeVJlZigpO3Iuc2V0KCJQYXJlbnRUcmVlIixnKX1vPW8uY2xvbmUoKTtuLnB1dChnLG8pO2xldCBjPW8uZ2V0UmF3KCJOdW1zIiksbD1udWxsO2lmKGMgaW5zdGFuY2VvZiBSZWYpe2w9YztjPWEuZmV0Y2gobCl9Yz1jLnNsaWNlKCk7bHx8by5zZXQoIk51bXMiLGMpO2NvbnN0IGg9YXdhaXQgU3RydWN0VHJlZVJvb3QuI0woe25ld0Fubm90YXRpb25zQnlQYWdlOmUsc3RydWN0VHJlZVJvb3RSZWY6cyxzdHJ1Y3RUcmVlUm9vdDp0aGlzLGtpZHM6bnVsbCxudW1zOmMseHJlZjphLHBkZk1hbmFnZXI6dCxjaGFuZ2VzOmksY2FjaGU6bn0pO2lmKC0xIT09aCl7ci5zZXQoIlBhcmVudFRyZWVOZXh0S2V5IixoKTtsJiZuLnB1dChsLGMpO2Zvcihjb25zdFtlLHRdb2Ygbi5pdGVtcygpKWkucHV0KGUse2RhdGE6dH0pfX1zdGF0aWMgYXN5bmMjTCh7bmV3QW5ub3RhdGlvbnNCeVBhZ2U6ZSxzdHJ1Y3RUcmVlUm9vdFJlZjp0LHN0cnVjdFRyZWVSb290Omksa2lkczphLG51bXM6cix4cmVmOnMscGRmTWFuYWdlcjpuLGNoYW5nZXM6byxjYWNoZTpnfSl7Y29uc3QgYz1OYW1lLmdldCgiT0JKUiIpO2xldCBsLGg9LTE7Zm9yKGNvbnN0W0MsUV1vZiBlKXtjb25zdCBlPWF3YWl0IG4uZ2V0UGFnZShDKSx7cmVmOkV9PWUsdT1FIGluc3RhbmNlb2YgUmVmO2Zvcihjb25zdHthY2Nlc3NpYmlsaXR5RGF0YTpuLHJlZjpkLHBhcmVudFRyZWVJZDpmLHN0cnVjdFRyZWVQYXJlbnQ6cH1vZiBRKXtpZighbj8udHlwZSljb250aW51ZTtjb25zdHtzdHJ1Y3RQYXJlbnQ6UX09bjtpZihpJiZOdW1iZXIuaXNJbnRlZ2VyKFEpJiZRPj0wKXtsZXQgdD0obHx8PW5ldyBNYXApLmdldChDKTtpZih2b2lkIDA9PT10KXt0PW5ldyBTdHJ1Y3RUcmVlUGFnZShpLGUucGFnZURpY3QpLmNvbGxlY3RPYmplY3RzKEUpO2wuc2V0KEMsdCl9Y29uc3QgYT10Py5nZXQoUSk7aWYoYSl7Y29uc3QgZT1zLmZldGNoKGEpLmNsb25lKCk7U3RydWN0VHJlZVJvb3QuI0ooZSxuKTtvLnB1dChhLHtkYXRhOmV9KTtjb250aW51ZX19aD1NYXRoLm1heChoLGYpO2NvbnN0IG09cy5nZXROZXdUZW1wb3JhcnlSZWYoKSx5PW5ldyBEaWN0KHMpO1N0cnVjdFRyZWVSb290LiNKKHksbik7YXdhaXQgdGhpcy4jdih7c3RydWN0VHJlZVBhcmVudDpwLHRhZ0RpY3Q6eSxuZXdUYWdSZWY6bSxzdHJ1Y3RUcmVlUm9vdFJlZjp0LGZhbGxiYWNrS2lkczphLHhyZWY6cyxjYWNoZTpnfSk7Y29uc3Qgdz1uZXcgRGljdChzKTt5LnNldCgiSyIsdyk7dy5zZXQoIlR5cGUiLGMpO3UmJncuc2V0KCJQZyIsRSk7dy5zZXQoIk9iaiIsZCk7Zy5wdXQobSx5KTtyLnB1c2goZixtKX19cmV0dXJuIGgrMX1zdGF0aWMjSihlLHt0eXBlOnQsdGl0bGU6aSxsYW5nOmEsYWx0OnIsZXhwYW5kZWQ6cyxhY3R1YWxUZXh0Om59KXtlLnNldCgiUyIsTmFtZS5nZXQodCkpO2kmJmUuc2V0KCJUIixzdHJpbmdUb0FzY2lpT3JVVEYxNkJFKGkpKTthJiZlLnNldCgiTGFuZyIsc3RyaW5nVG9Bc2NpaU9yVVRGMTZCRShhKSk7ciYmZS5zZXQoIkFsdCIsc3RyaW5nVG9Bc2NpaU9yVVRGMTZCRShyKSk7cyYmZS5zZXQoIkUiLHN0cmluZ1RvQXNjaWlPclVURjE2QkUocykpO24mJmUuc2V0KCJBY3R1YWxUZXh0IixzdHJpbmdUb0FzY2lpT3JVVEYxNkJFKG4pKX1zdGF0aWMjSCh7ZWxlbWVudHM6ZSx4cmVmOnQscGFnZURpY3Q6aSxudW1iZXJUcmVlOmF9KXtjb25zdCByPW5ldyBNYXA7Zm9yKGNvbnN0IHQgb2YgZSlpZih0LnN0cnVjdFRyZWVQYXJlbnRJZCl7Y29uc3QgZT1wYXJzZUludCh0LnN0cnVjdFRyZWVQYXJlbnRJZC5zcGxpdCgiX21jIilbMV0sMTApO2xldCBpPXIuZ2V0KGUpO2lmKCFpKXtpPVtdO3Iuc2V0KGUsaSl9aS5wdXNoKHQpfWNvbnN0IHM9aS5nZXQoIlN0cnVjdFBhcmVudHMiKTtpZighTnVtYmVyLmlzSW50ZWdlcihzKSlyZXR1cm47Y29uc3Qgbj1hLmdldChzKSx1cGRhdGVFbGVtZW50PShlLGksYSk9Pntjb25zdCBzPXIuZ2V0KGUpO2lmKHMpe2NvbnN0IGU9aS5nZXRSYXcoIlAiKSxyPXQuZmV0Y2hJZlJlZihlKTtpZihlIGluc3RhbmNlb2YgUmVmJiZyIGluc3RhbmNlb2YgRGljdCl7Y29uc3QgZT17cmVmOmEsZGljdDppfTtmb3IoY29uc3QgdCBvZiBzKXQuc3RydWN0VHJlZVBhcmVudD1lfXJldHVybiEwfXJldHVybiExfTtmb3IoY29uc3QgZSBvZiBuKXtpZighKGUgaW5zdGFuY2VvZiBSZWYpKWNvbnRpbnVlO2NvbnN0IGk9dC5mZXRjaChlKSxhPWkuZ2V0KCJLIik7aWYoTnVtYmVyLmlzSW50ZWdlcihhKSl1cGRhdGVFbGVtZW50KGEsaSxlKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoYSkpZm9yKGxldCByIG9mIGEpe3I9dC5mZXRjaElmUmVmKHIpO2lmKE51bWJlci5pc0ludGVnZXIocikmJnVwZGF0ZUVsZW1lbnQocixpLGUpKWJyZWFrO2lmKCEociBpbnN0YW5jZW9mIERpY3QpKWNvbnRpbnVlO2lmKCFpc05hbWUoci5nZXQoIlR5cGUiKSwiTUNSIikpYnJlYWs7Y29uc3QgYT1yLmdldCgiTUNJRCIpO2lmKE51bWJlci5pc0ludGVnZXIoYSkmJnVwZGF0ZUVsZW1lbnQoYSxpLGUpKWJyZWFrfX19c3RhdGljIGFzeW5jI3Yoe3N0cnVjdFRyZWVQYXJlbnQ6ZSx0YWdEaWN0OnQsbmV3VGFnUmVmOmksc3RydWN0VHJlZVJvb3RSZWY6YSxmYWxsYmFja0tpZHM6cix4cmVmOnMsY2FjaGU6bn0pe2xldCBvLGc9bnVsbDtpZihlKXsoe3JlZjpnfT1lKTtvPWUuZGljdC5nZXRSYXcoIlAiKXx8YX1lbHNlIG89YTt0LnNldCgiUCIsbyk7Y29uc3QgYz1zLmZldGNoSWZSZWYobyk7aWYoIWMpe3IucHVzaChpKTtyZXR1cm59bGV0IGw9bi5nZXQobyk7aWYoIWwpe2w9Yy5jbG9uZSgpO24ucHV0KG8sbCl9Y29uc3QgaD1sLmdldFJhdygiSyIpO2xldCBDPWggaW5zdGFuY2VvZiBSZWY/bi5nZXQoaCk6bnVsbDtpZighQyl7Qz1zLmZldGNoSWZSZWYoaCk7Qz1BcnJheS5pc0FycmF5KEMpP0Muc2xpY2UoKTpbaF07Y29uc3QgZT1zLmdldE5ld1RlbXBvcmFyeVJlZigpO2wuc2V0KCJLIixlKTtuLnB1dChlLEMpfWNvbnN0IFE9Qy5pbmRleE9mKGcpO0Muc3BsaWNlKFE+PTA/USsxOkMubGVuZ3RoLDAsaSl9fWNsYXNzIFN0cnVjdEVsZW1lbnROb2Rle2NvbnN0cnVjdG9yKGUsdCl7dGhpcy50cmVlPWU7dGhpcy5kaWN0PXQ7dGhpcy5raWRzPVtdO3RoaXMucGFyc2VLaWRzKCl9Z2V0IHJvbGUoKXtjb25zdCBlPXRoaXMuZGljdC5nZXQoIlMiKSx0PWUgaW5zdGFuY2VvZiBOYW1lP2UubmFtZToiIix7cm9vdDppfT10aGlzLnRyZWU7cmV0dXJuIGkucm9sZU1hcC5oYXModCk/aS5yb2xlTWFwLmdldCh0KTp0fXBhcnNlS2lkcygpe2xldCBlPW51bGw7Y29uc3QgdD10aGlzLmRpY3QuZ2V0UmF3KCJQZyIpO3QgaW5zdGFuY2VvZiBSZWYmJihlPXQudG9TdHJpbmcoKSk7Y29uc3QgaT10aGlzLmRpY3QuZ2V0KCJLIik7aWYoQXJyYXkuaXNBcnJheShpKSlmb3IoY29uc3QgdCBvZiBpKXtjb25zdCBpPXRoaXMucGFyc2VLaWQoZSx0KTtpJiZ0aGlzLmtpZHMucHVzaChpKX1lbHNle2NvbnN0IHQ9dGhpcy5wYXJzZUtpZChlLGkpO3QmJnRoaXMua2lkcy5wdXNoKHQpfX1wYXJzZUtpZChlLHQpe2lmKE51bWJlci5pc0ludGVnZXIodCkpcmV0dXJuIHRoaXMudHJlZS5wYWdlRGljdC5vYmpJZCE9PWU/bnVsbDpuZXcgU3RydWN0RWxlbWVudCh7dHlwZTpNcixtY2lkOnQscGFnZU9iaklkOmV9KTtsZXQgaT1udWxsO3QgaW5zdGFuY2VvZiBSZWY/aT10aGlzLmRpY3QueHJlZi5mZXRjaCh0KTp0IGluc3RhbmNlb2YgRGljdCYmKGk9dCk7aWYoIWkpcmV0dXJuIG51bGw7Y29uc3QgYT1pLmdldFJhdygiUGciKTthIGluc3RhbmNlb2YgUmVmJiYoZT1hLnRvU3RyaW5nKCkpO2NvbnN0IHI9aS5nZXQoIlR5cGUiKWluc3RhbmNlb2YgTmFtZT9pLmdldCgiVHlwZSIpLm5hbWU6bnVsbDtpZigiTUNSIj09PXIpe2lmKHRoaXMudHJlZS5wYWdlRGljdC5vYmpJZCE9PWUpcmV0dXJuIG51bGw7Y29uc3QgdD1pLmdldFJhdygiU3RtIik7cmV0dXJuIG5ldyBTdHJ1Y3RFbGVtZW50KHt0eXBlOlVyLHJlZk9iaklkOnQgaW5zdGFuY2VvZiBSZWY/dC50b1N0cmluZygpOm51bGwscGFnZU9iaklkOmUsbWNpZDppLmdldCgiTUNJRCIpfSl9aWYoIk9CSlIiPT09cil7aWYodGhpcy50cmVlLnBhZ2VEaWN0Lm9iaklkIT09ZSlyZXR1cm4gbnVsbDtjb25zdCB0PWkuZ2V0UmF3KCJPYmoiKTtyZXR1cm4gbmV3IFN0cnVjdEVsZW1lbnQoe3R5cGU6eHIscmVmT2JqSWQ6dCBpbnN0YW5jZW9mIFJlZj90LnRvU3RyaW5nKCk6bnVsbCxwYWdlT2JqSWQ6ZX0pfXJldHVybiBuZXcgU3RydWN0RWxlbWVudCh7dHlwZTpIcixkaWN0Oml9KX19Y2xhc3MgU3RydWN0RWxlbWVudHtjb25zdHJ1Y3Rvcih7dHlwZTplLGRpY3Q6dD1udWxsLG1jaWQ6aT1udWxsLHBhZ2VPYmpJZDphPW51bGwscmVmT2JqSWQ6cj1udWxsfSl7dGhpcy50eXBlPWU7dGhpcy5kaWN0PXQ7dGhpcy5tY2lkPWk7dGhpcy5wYWdlT2JqSWQ9YTt0aGlzLnJlZk9iaklkPXI7dGhpcy5wYXJlbnROb2RlPW51bGx9fWNsYXNzIFN0cnVjdFRyZWVQYWdle2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5yb290PWU7dGhpcy5yb290RGljdD1lP2UuZGljdDpudWxsO3RoaXMucGFnZURpY3Q9dDt0aGlzLm5vZGVzPVtdfWNvbGxlY3RPYmplY3RzKGUpe2lmKCEodGhpcy5yb290JiZ0aGlzLnJvb3REaWN0JiZlIGluc3RhbmNlb2YgUmVmKSlyZXR1cm4gbnVsbDtjb25zdCB0PXRoaXMucm9vdERpY3QuZ2V0KCJQYXJlbnRUcmVlIik7aWYoIXQpcmV0dXJuIG51bGw7Y29uc3QgaT10aGlzLnJvb3Quc3RydWN0UGFyZW50SWRzPy5nZXQoZSk7aWYoIWkpcmV0dXJuIG51bGw7Y29uc3QgYT1uZXcgTWFwLHI9bmV3IE51bWJlclRyZWUodCx0aGlzLnJvb3REaWN0LnhyZWYpO2Zvcihjb25zdFtlXW9mIGkpe2NvbnN0IHQ9ci5nZXRSYXcoZSk7dCBpbnN0YW5jZW9mIFJlZiYmYS5zZXQoZSx0KX1yZXR1cm4gYX1wYXJzZShlKXtpZighKHRoaXMucm9vdCYmdGhpcy5yb290RGljdCYmZSBpbnN0YW5jZW9mIFJlZikpcmV0dXJuO2NvbnN0IHQ9dGhpcy5yb290RGljdC5nZXQoIlBhcmVudFRyZWUiKTtpZighdClyZXR1cm47Y29uc3QgaT10aGlzLnBhZ2VEaWN0LmdldCgiU3RydWN0UGFyZW50cyIpLGE9dGhpcy5yb290LnN0cnVjdFBhcmVudElkcz8uZ2V0KGUpO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKGkpJiYhYSlyZXR1cm47Y29uc3Qgcj1uZXcgTWFwLHM9bmV3IE51bWJlclRyZWUodCx0aGlzLnJvb3REaWN0LnhyZWYpO2lmKE51bWJlci5pc0ludGVnZXIoaSkpe2NvbnN0IGU9cy5nZXQoaSk7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IoY29uc3QgdCBvZiBlKXQgaW5zdGFuY2VvZiBSZWYmJnRoaXMuYWRkTm9kZSh0aGlzLnJvb3REaWN0LnhyZWYuZmV0Y2godCkscil9aWYoYSlmb3IoY29uc3RbZSx0XW9mIGEpe2NvbnN0IGk9cy5nZXQoZSk7aWYoaSl7Y29uc3QgZT10aGlzLmFkZE5vZGUodGhpcy5yb290RGljdC54cmVmLmZldGNoSWZSZWYoaSkscik7MT09PWU/LmtpZHM/Lmxlbmd0aCYmZS5raWRzWzBdLnR5cGU9PT14ciYmKGUua2lkc1swXS50eXBlPXQpfX19YWRkTm9kZShlLHQsaT0wKXtpZihpPjQwKXt3YXJuKCJTdHJ1Y3RUcmVlIE1BWF9ERVBUSCByZWFjaGVkLiIpO3JldHVybiBudWxsfWlmKCEoZSBpbnN0YW5jZW9mIERpY3QpKXJldHVybiBudWxsO2lmKHQuaGFzKGUpKXJldHVybiB0LmdldChlKTtjb25zdCBhPW5ldyBTdHJ1Y3RFbGVtZW50Tm9kZSh0aGlzLGUpO3Quc2V0KGUsYSk7Y29uc3Qgcj1lLmdldCgiUCIpO2lmKCFyfHxpc05hbWUoci5nZXQoIlR5cGUiKSwiU3RydWN0VHJlZVJvb3QiKSl7dGhpcy5hZGRUb3BMZXZlbE5vZGUoZSxhKXx8dC5kZWxldGUoZSk7cmV0dXJuIGF9Y29uc3Qgcz10aGlzLmFkZE5vZGUocix0LGkrMSk7aWYoIXMpcmV0dXJuIGE7bGV0IG49ITE7Zm9yKGNvbnN0IHQgb2Ygcy5raWRzKWlmKHQudHlwZT09PUhyJiZ0LmRpY3Q9PT1lKXt0LnBhcmVudE5vZGU9YTtuPSEwfW58fHQuZGVsZXRlKGUpO3JldHVybiBhfWFkZFRvcExldmVsTm9kZShlLHQpe2NvbnN0IGk9dGhpcy5yb290RGljdC5nZXQoIksiKTtpZighaSlyZXR1cm4hMTtpZihpIGluc3RhbmNlb2YgRGljdCl7aWYoaS5vYmpJZCE9PWUub2JqSWQpcmV0dXJuITE7dGhpcy5ub2Rlc1swXT10O3JldHVybiEwfWlmKCFBcnJheS5pc0FycmF5KGkpKXJldHVybiEwO2xldCBhPSExO2ZvcihsZXQgcj0wO3I8aS5sZW5ndGg7cisrKXtjb25zdCBzPWlbcl07aWYocz8udG9TdHJpbmcoKT09PWUub2JqSWQpe3RoaXMubm9kZXNbcl09dDthPSEwfX1yZXR1cm4gYX1nZXQgc2VyaWFsaXphYmxlKCl7ZnVuY3Rpb24gbm9kZVRvU2VyaWFsaXphYmxlKGUsdCxpPTApe2lmKGk+NDApe3dhcm4oIlN0cnVjdFRyZWUgdG9vIGRlZXAgdG8gYmUgZnVsbHkgc2VyaWFsaXplZC4iKTtyZXR1cm59Y29uc3QgYT1PYmplY3QuY3JlYXRlKG51bGwpO2Eucm9sZT1lLnJvbGU7YS5jaGlsZHJlbj1bXTt0LmNoaWxkcmVuLnB1c2goYSk7bGV0IHI9ZS5kaWN0LmdldCgiQWx0Iik7InN0cmluZyIhPXR5cGVvZiByJiYocj1lLmRpY3QuZ2V0KCJBY3R1YWxUZXh0IikpOyJzdHJpbmciPT10eXBlb2YgciYmKGEuYWx0PXN0cmluZ1RvUERGU3RyaW5nKHIpKTtjb25zdCBzPWUuZGljdC5nZXQoIkEiKTtpZihzIGluc3RhbmNlb2YgRGljdCl7Y29uc3QgZT1sb29rdXBOb3JtYWxSZWN0KHMuZ2V0QXJyYXkoIkJCb3giKSxudWxsKTtpZihlKWEuYmJveD1lO2Vsc2V7Y29uc3QgZT1zLmdldCgiV2lkdGgiKSx0PXMuZ2V0KCJIZWlnaHQiKTsibnVtYmVyIj09dHlwZW9mIGUmJmU+MCYmIm51bWJlciI9PXR5cGVvZiB0JiZ0PjAmJihhLmJib3g9WzAsMCxlLHRdKX19Y29uc3Qgbj1lLmRpY3QuZ2V0KCJMYW5nIik7InN0cmluZyI9PXR5cGVvZiBuJiYoYS5sYW5nPXN0cmluZ1RvUERGU3RyaW5nKG4pKTtmb3IoY29uc3QgdCBvZiBlLmtpZHMpe2NvbnN0IGU9dC50eXBlPT09SHI/dC5wYXJlbnROb2RlOm51bGw7ZT9ub2RlVG9TZXJpYWxpemFibGUoZSxhLGkrMSk6dC50eXBlPT09TXJ8fHQudHlwZT09PVVyP2EuY2hpbGRyZW4ucHVzaCh7dHlwZToiY29udGVudCIsaWQ6YHAke3QucGFnZU9iaklkfV9tYyR7dC5tY2lkfWB9KTp0LnR5cGU9PT14cj9hLmNoaWxkcmVuLnB1c2goe3R5cGU6Im9iamVjdCIsaWQ6dC5yZWZPYmpJZH0pOnQudHlwZT09PUxyJiZhLmNoaWxkcmVuLnB1c2goe3R5cGU6ImFubm90YXRpb24iLGlkOmBwZGZqc19pbnRlcm5hbF9pZF8ke3QucmVmT2JqSWR9YH0pfX1jb25zdCBlPU9iamVjdC5jcmVhdGUobnVsbCk7ZS5jaGlsZHJlbj1bXTtlLnJvbGU9IlJvb3QiO2Zvcihjb25zdCB0IG9mIHRoaXMubm9kZXMpdCYmbm9kZVRvU2VyaWFsaXphYmxlKHQsZSk7cmV0dXJuIGV9fWZ1bmN0aW9uIGlzVmFsaWRFeHBsaWNpdERlc3QoZSl7aWYoIUFycmF5LmlzQXJyYXkoZSl8fGUubGVuZ3RoPDIpcmV0dXJuITE7Y29uc3RbdCxpLC4uLmFdPWU7aWYoISh0IGluc3RhbmNlb2YgUmVmfHxOdW1iZXIuaXNJbnRlZ2VyKHQpKSlyZXR1cm4hMTtpZighKGkgaW5zdGFuY2VvZiBOYW1lKSlyZXR1cm4hMTtjb25zdCByPWEubGVuZ3RoO2xldCBzPSEwO3N3aXRjaChpLm5hbWUpe2Nhc2UiWFlaIjppZihyPDJ8fHI+MylyZXR1cm4hMTticmVhaztjYXNlIkZpdCI6Y2FzZSJGaXRCIjpyZXR1cm4gMD09PXI7Y2FzZSJGaXRIIjpjYXNlIkZpdEJIIjpjYXNlIkZpdFYiOmNhc2UiRml0QlYiOmlmKHI+MSlyZXR1cm4hMTticmVhaztjYXNlIkZpdFIiOmlmKDQhPT1yKXJldHVybiExO3M9ITE7YnJlYWs7ZGVmYXVsdDpyZXR1cm4hMX1mb3IoY29uc3QgZSBvZiBhKWlmKCEoIm51bWJlciI9PXR5cGVvZiBlfHxzJiZudWxsPT09ZSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gZmV0Y2hEZXN0KGUpe2UgaW5zdGFuY2VvZiBEaWN0JiYoZT1lLmdldCgiRCIpKTtyZXR1cm4gaXNWYWxpZEV4cGxpY2l0RGVzdChlKT9lOm51bGx9ZnVuY3Rpb24gZmV0Y2hSZW1vdGVEZXN0KGUpe2xldCB0PWUuZ2V0KCJEIik7aWYodCl7dCBpbnN0YW5jZW9mIE5hbWUmJih0PXQubmFtZSk7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBzdHJpbmdUb1BERlN0cmluZyh0KTtpZihpc1ZhbGlkRXhwbGljaXREZXN0KHQpKXJldHVybiBKU09OLnN0cmluZ2lmeSh0KX1yZXR1cm4gbnVsbH1jbGFzcyBDYXRhbG9ne2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5wZGZNYW5hZ2VyPWU7dGhpcy54cmVmPXQ7dGhpcy5fY2F0RGljdD10LmdldENhdGFsb2dPYmooKTtpZighKHRoaXMuX2NhdERpY3QgaW5zdGFuY2VvZiBEaWN0KSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkNhdGFsb2cgb2JqZWN0IGlzIG5vdCBhIGRpY3Rpb25hcnkuIik7dGhpcy50b3BsZXZlbFBhZ2VzRGljdDt0aGlzLl9hY3R1YWxOdW1QYWdlcz1udWxsO3RoaXMuZm9udENhY2hlPW5ldyBSZWZTZXRDYWNoZTt0aGlzLmJ1aWx0SW5DTWFwQ2FjaGU9bmV3IE1hcDt0aGlzLnN0YW5kYXJkRm9udERhdGFDYWNoZT1uZXcgTWFwO3RoaXMuZ2xvYmFsSW1hZ2VDYWNoZT1uZXcgR2xvYmFsSW1hZ2VDYWNoZTt0aGlzLnBhZ2VLaWRzQ291bnRDYWNoZT1uZXcgUmVmU2V0Q2FjaGU7dGhpcy5wYWdlSW5kZXhDYWNoZT1uZXcgUmVmU2V0Q2FjaGU7dGhpcy5wYWdlRGljdENhY2hlPW5ldyBSZWZTZXRDYWNoZTt0aGlzLm5vbkJsZW5kTW9kZXNTZXQ9bmV3IFJlZlNldDt0aGlzLnN5c3RlbUZvbnRDYWNoZT1uZXcgTWFwfWNsb25lRGljdCgpe3JldHVybiB0aGlzLl9jYXREaWN0LmNsb25lKCl9Z2V0IHZlcnNpb24oKXtjb25zdCBlPXRoaXMuX2NhdERpY3QuZ2V0KCJWZXJzaW9uIik7aWYoZSBpbnN0YW5jZW9mIE5hbWUpe2lmKG10LnRlc3QoZS5uYW1lKSlyZXR1cm4gc2hhZG93KHRoaXMsInZlcnNpb24iLGUubmFtZSk7d2FybihgSW52YWxpZCBQREYgY2F0YWxvZyB2ZXJzaW9uOiAke2UubmFtZX1gKX1yZXR1cm4gc2hhZG93KHRoaXMsInZlcnNpb24iLG51bGwpfWdldCBsYW5nKCl7Y29uc3QgZT10aGlzLl9jYXREaWN0LmdldCgiTGFuZyIpO3JldHVybiBzaGFkb3codGhpcywibGFuZyIsZSYmInN0cmluZyI9PXR5cGVvZiBlP3N0cmluZ1RvUERGU3RyaW5nKGUpOm51bGwpfWdldCBuZWVkc1JlbmRlcmluZygpe2NvbnN0IGU9dGhpcy5fY2F0RGljdC5nZXQoIk5lZWRzUmVuZGVyaW5nIik7cmV0dXJuIHNoYWRvdyh0aGlzLCJuZWVkc1JlbmRlcmluZyIsImJvb2xlYW4iPT10eXBlb2YgZSYmZSl9Z2V0IGNvbGxlY3Rpb24oKXtsZXQgZT1udWxsO3RyeXtjb25zdCB0PXRoaXMuX2NhdERpY3QuZ2V0KCJDb2xsZWN0aW9uIik7dCBpbnN0YW5jZW9mIERpY3QmJnQuc2l6ZT4wJiYoZT10KX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pdGhyb3cgZTtpbmZvKCJDYW5ub3QgZmV0Y2ggQ29sbGVjdGlvbiBlbnRyeTsgYXNzdW1pbmcgbm8gY29sbGVjdGlvbiBpcyBwcmVzZW50LiIpfXJldHVybiBzaGFkb3codGhpcywiY29sbGVjdGlvbiIsZSl9Z2V0IGFjcm9Gb3JtKCl7bGV0IGU9bnVsbDt0cnl7Y29uc3QgdD10aGlzLl9jYXREaWN0LmdldCgiQWNyb0Zvcm0iKTt0IGluc3RhbmNlb2YgRGljdCYmdC5zaXplPjAmJihlPXQpfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbil0aHJvdyBlO2luZm8oIkNhbm5vdCBmZXRjaCBBY3JvRm9ybSBlbnRyeTsgYXNzdW1pbmcgbm8gZm9ybXMgYXJlIHByZXNlbnQuIil9cmV0dXJuIHNoYWRvdyh0aGlzLCJhY3JvRm9ybSIsZSl9Z2V0IGFjcm9Gb3JtUmVmKCl7Y29uc3QgZT10aGlzLl9jYXREaWN0LmdldFJhdygiQWNyb0Zvcm0iKTtyZXR1cm4gc2hhZG93KHRoaXMsImFjcm9Gb3JtUmVmIixlIGluc3RhbmNlb2YgUmVmP2U6bnVsbCl9Z2V0IG1ldGFkYXRhKCl7Y29uc3QgZT10aGlzLl9jYXREaWN0LmdldFJhdygiTWV0YWRhdGEiKTtpZighKGUgaW5zdGFuY2VvZiBSZWYpKXJldHVybiBzaGFkb3codGhpcywibWV0YWRhdGEiLG51bGwpO2xldCB0PW51bGw7dHJ5e2NvbnN0IGk9dGhpcy54cmVmLmZldGNoKGUsIXRoaXMueHJlZi5lbmNyeXB0Py5lbmNyeXB0TWV0YWRhdGEpO2lmKGkgaW5zdGFuY2VvZiBCYXNlU3RyZWFtJiZpLmRpY3QgaW5zdGFuY2VvZiBEaWN0KXtjb25zdCBlPWkuZGljdC5nZXQoIlR5cGUiKSxhPWkuZGljdC5nZXQoIlN1YnR5cGUiKTtpZihpc05hbWUoZSwiTWV0YWRhdGEiKSYmaXNOYW1lKGEsIlhNTCIpKXtjb25zdCBlPXN0cmluZ1RvVVRGOFN0cmluZyhpLmdldFN0cmluZygpKTtlJiYodD1uZXcgTWV0YWRhdGFQYXJzZXIoZSkuc2VyaWFsaXphYmxlKX19fWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbil0aHJvdyBlO2luZm8oYFNraXBwaW5nIGludmFsaWQgTWV0YWRhdGE6ICIke2V9Ii5gKX1yZXR1cm4gc2hhZG93KHRoaXMsIm1ldGFkYXRhIix0KX1nZXQgbWFya0luZm8oKXtsZXQgZT1udWxsO3RyeXtlPXRoaXMuX3JlYWRNYXJrSW5mbygpfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbil0aHJvdyBlO3dhcm4oIlVuYWJsZSB0byByZWFkIG1hcmsgaW5mby4iKX1yZXR1cm4gc2hhZG93KHRoaXMsIm1hcmtJbmZvIixlKX1fcmVhZE1hcmtJbmZvKCl7Y29uc3QgZT10aGlzLl9jYXREaWN0LmdldCgiTWFya0luZm8iKTtpZighKGUgaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm4gbnVsbDtjb25zdCB0PXtNYXJrZWQ6ITEsVXNlclByb3BlcnRpZXM6ITEsU3VzcGVjdHM6ITF9O2Zvcihjb25zdCBpIGluIHQpe2NvbnN0IGE9ZS5nZXQoaSk7ImJvb2xlYW4iPT10eXBlb2YgYSYmKHRbaV09YSl9cmV0dXJuIHR9Z2V0IHN0cnVjdFRyZWVSb290KCl7bGV0IGU9bnVsbDt0cnl7ZT10aGlzLl9yZWFkU3RydWN0VHJlZVJvb3QoKX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pdGhyb3cgZTt3YXJuKCJVbmFibGUgcmVhZCB0byBzdHJ1Y3RUcmVlUm9vdCBpbmZvLiIpfXJldHVybiBzaGFkb3codGhpcywic3RydWN0VHJlZVJvb3QiLGUpfV9yZWFkU3RydWN0VHJlZVJvb3QoKXtjb25zdCBlPXRoaXMuX2NhdERpY3QuZ2V0UmF3KCJTdHJ1Y3RUcmVlUm9vdCIpLHQ9dGhpcy54cmVmLmZldGNoSWZSZWYoZSk7aWYoISh0IGluc3RhbmNlb2YgRGljdCkpcmV0dXJuIG51bGw7Y29uc3QgaT1uZXcgU3RydWN0VHJlZVJvb3QodCxlKTtpLmluaXQoKTtyZXR1cm4gaX1nZXQgdG9wbGV2ZWxQYWdlc0RpY3QoKXtjb25zdCBlPXRoaXMuX2NhdERpY3QuZ2V0KCJQYWdlcyIpO2lmKCEoZSBpbnN0YW5jZW9mIERpY3QpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiSW52YWxpZCB0b3AtbGV2ZWwgcGFnZXMgZGljdGlvbmFyeS4iKTtyZXR1cm4gc2hhZG93KHRoaXMsInRvcGxldmVsUGFnZXNEaWN0IixlKX1nZXQgZG9jdW1lbnRPdXRsaW5lKCl7bGV0IGU9bnVsbDt0cnl7ZT10aGlzLl9yZWFkRG9jdW1lbnRPdXRsaW5lKCl9Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIE1pc3NpbmdEYXRhRXhjZXB0aW9uKXRocm93IGU7d2FybigiVW5hYmxlIHRvIHJlYWQgZG9jdW1lbnQgb3V0bGluZS4iKX1yZXR1cm4gc2hhZG93KHRoaXMsImRvY3VtZW50T3V0bGluZSIsZSl9X3JlYWREb2N1bWVudE91dGxpbmUoKXtsZXQgZT10aGlzLl9jYXREaWN0LmdldCgiT3V0bGluZXMiKTtpZighKGUgaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm4gbnVsbDtlPWUuZ2V0UmF3KCJGaXJzdCIpO2lmKCEoZSBpbnN0YW5jZW9mIFJlZikpcmV0dXJuIG51bGw7Y29uc3QgdD17aXRlbXM6W119LGk9W3tvYmo6ZSxwYXJlbnQ6dH1dLGE9bmV3IFJlZlNldDthLnB1dChlKTtjb25zdCByPXRoaXMueHJlZixzPW5ldyBVaW50OENsYW1wZWRBcnJheSgzKTtmb3IoO2kubGVuZ3RoPjA7KXtjb25zdCB0PWkuc2hpZnQoKSxuPXIuZmV0Y2hJZlJlZih0Lm9iaik7aWYobnVsbD09PW4pY29udGludWU7bi5oYXMoIlRpdGxlIil8fHdhcm4oIkludmFsaWQgb3V0bGluZSBpdGVtIGVuY291bnRlcmVkLiIpO2NvbnN0IG89e3VybDpudWxsLGRlc3Q6bnVsbCxhY3Rpb246bnVsbH07Q2F0YWxvZy5wYXJzZURlc3REaWN0aW9uYXJ5KHtkZXN0RGljdDpuLHJlc3VsdE9iajpvLGRvY0Jhc2VVcmw6dGhpcy5iYXNlVXJsLGRvY0F0dGFjaG1lbnRzOnRoaXMuYXR0YWNobWVudHN9KTtjb25zdCBnPW4uZ2V0KCJUaXRsZSIpLGM9bi5nZXQoIkYiKXx8MCxsPW4uZ2V0QXJyYXkoIkMiKSxoPW4uZ2V0KCJDb3VudCIpO2xldCBDPXM7IWlzTnVtYmVyQXJyYXkobCwzKXx8MD09PWxbMF0mJjA9PT1sWzFdJiYwPT09bFsyXXx8KEM9Q29sb3JTcGFjZS5zaW5nbGV0b25zLnJnYi5nZXRSZ2IobCwwKSk7Y29uc3QgUT17YWN0aW9uOm8uYWN0aW9uLGF0dGFjaG1lbnQ6by5hdHRhY2htZW50LGRlc3Q6by5kZXN0LHVybDpvLnVybCx1bnNhZmVVcmw6by51bnNhZmVVcmwsbmV3V2luZG93Om8ubmV3V2luZG93LHNldE9DR1N0YXRlOm8uc2V0T0NHU3RhdGUsdGl0bGU6InN0cmluZyI9PXR5cGVvZiBnP3N0cmluZ1RvUERGU3RyaW5nKGcpOiIiLGNvbG9yOkMsY291bnQ6TnVtYmVyLmlzSW50ZWdlcihoKT9oOnZvaWQgMCxib2xkOiEhKDImYyksaXRhbGljOiEhKDEmYyksaXRlbXM6W119O3QucGFyZW50Lml0ZW1zLnB1c2goUSk7ZT1uLmdldFJhdygiRmlyc3QiKTtpZihlIGluc3RhbmNlb2YgUmVmJiYhYS5oYXMoZSkpe2kucHVzaCh7b2JqOmUscGFyZW50OlF9KTthLnB1dChlKX1lPW4uZ2V0UmF3KCJOZXh0Iik7aWYoZSBpbnN0YW5jZW9mIFJlZiYmIWEuaGFzKGUpKXtpLnB1c2goe29iajplLHBhcmVudDp0LnBhcmVudH0pO2EucHV0KGUpfX1yZXR1cm4gdC5pdGVtcy5sZW5ndGg+MD90Lml0ZW1zOm51bGx9Z2V0IHBlcm1pc3Npb25zKCl7bGV0IGU9bnVsbDt0cnl7ZT10aGlzLl9yZWFkUGVybWlzc2lvbnMoKX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pdGhyb3cgZTt3YXJuKCJVbmFibGUgdG8gcmVhZCBwZXJtaXNzaW9ucy4iKX1yZXR1cm4gc2hhZG93KHRoaXMsInBlcm1pc3Npb25zIixlKX1fcmVhZFBlcm1pc3Npb25zKCl7Y29uc3QgZT10aGlzLnhyZWYudHJhaWxlci5nZXQoIkVuY3J5cHQiKTtpZighKGUgaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm4gbnVsbDtsZXQgdD1lLmdldCgiUCIpO2lmKCJudW1iZXIiIT10eXBlb2YgdClyZXR1cm4gbnVsbDt0Kz0yKiozMjtjb25zdCBpPVtdO2Zvcihjb25zdCBlIGluIHcpe2NvbnN0IGE9d1tlXTt0JmEmJmkucHVzaChhKX1yZXR1cm4gaX1nZXQgb3B0aW9uYWxDb250ZW50Q29uZmlnKCl7bGV0IGU9bnVsbDt0cnl7Y29uc3QgdD10aGlzLl9jYXREaWN0LmdldCgiT0NQcm9wZXJ0aWVzIik7aWYoIXQpcmV0dXJuIHNoYWRvdyh0aGlzLCJvcHRpb25hbENvbnRlbnRDb25maWciLG51bGwpO2NvbnN0IGk9dC5nZXQoIkQiKTtpZighaSlyZXR1cm4gc2hhZG93KHRoaXMsIm9wdGlvbmFsQ29udGVudENvbmZpZyIsbnVsbCk7Y29uc3QgYT10LmdldCgiT0NHcyIpO2lmKCFBcnJheS5pc0FycmF5KGEpKXJldHVybiBzaGFkb3codGhpcywib3B0aW9uYWxDb250ZW50Q29uZmlnIixudWxsKTtjb25zdCByPW5ldyBSZWZTZXRDYWNoZTtmb3IoY29uc3QgZSBvZiBhKWUgaW5zdGFuY2VvZiBSZWYmJiFyLmhhcyhlKSYmci5wdXQoZSx0aGlzLiNZKGUpKTtlPXRoaXMuI0soaSxyKX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pdGhyb3cgZTt3YXJuKGBVbmFibGUgdG8gcmVhZCBvcHRpb25hbCBjb250ZW50IGNvbmZpZzogJHtlfWApfXJldHVybiBzaGFkb3codGhpcywib3B0aW9uYWxDb250ZW50Q29uZmlnIixlKX0jWShlKXtjb25zdCB0PXRoaXMueHJlZi5mZXRjaChlKSxpPXtpZDplLnRvU3RyaW5nKCksbmFtZTpudWxsLGludGVudDpudWxsLHVzYWdlOntwcmludDpudWxsLHZpZXc6bnVsbH0scmJHcm91cHM6W119LGE9dC5nZXQoIk5hbWUiKTsic3RyaW5nIj09dHlwZW9mIGEmJihpLm5hbWU9c3RyaW5nVG9QREZTdHJpbmcoYSkpO2xldCByPXQuZ2V0QXJyYXkoIkludGVudCIpO0FycmF5LmlzQXJyYXkocil8fChyPVtyXSk7ci5ldmVyeSgoZT0+ZSBpbnN0YW5jZW9mIE5hbWUpKSYmKGkuaW50ZW50PXIubWFwKChlPT5lLm5hbWUpKSk7Y29uc3Qgcz10LmdldCgiVXNhZ2UiKTtpZighKHMgaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm4gaTtjb25zdCBuPWkudXNhZ2Usbz1zLmdldCgiUHJpbnQiKTtpZihvIGluc3RhbmNlb2YgRGljdCl7Y29uc3QgZT1vLmdldCgiUHJpbnRTdGF0ZSIpO2lmKGUgaW5zdGFuY2VvZiBOYW1lKXN3aXRjaChlLm5hbWUpe2Nhc2UiT04iOmNhc2UiT0ZGIjpuLnByaW50PXtwcmludFN0YXRlOmUubmFtZX19fWNvbnN0IGc9cy5nZXQoIlZpZXciKTtpZihnIGluc3RhbmNlb2YgRGljdCl7Y29uc3QgZT1nLmdldCgiVmlld1N0YXRlIik7aWYoZSBpbnN0YW5jZW9mIE5hbWUpc3dpdGNoKGUubmFtZSl7Y2FzZSJPTiI6Y2FzZSJPRkYiOm4udmlldz17dmlld1N0YXRlOmUubmFtZX19fXJldHVybiBpfSNLKGUsdCl7ZnVuY3Rpb24gcGFyc2VPbk9mZihlKXtjb25zdCBpPVtdO2lmKEFycmF5LmlzQXJyYXkoZSkpZm9yKGNvbnN0IGEgb2YgZSlhIGluc3RhbmNlb2YgUmVmJiZ0LmhhcyhhKSYmaS5wdXNoKGEudG9TdHJpbmcoKSk7cmV0dXJuIGl9ZnVuY3Rpb24gcGFyc2VPcmRlcihlLGk9MCl7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIG51bGw7Y29uc3Qgcj1bXTtmb3IoY29uc3QgcyBvZiBlKXtpZihzIGluc3RhbmNlb2YgUmVmJiZ0LmhhcyhzKSl7YS5wdXQocyk7ci5wdXNoKHMudG9TdHJpbmcoKSk7Y29udGludWV9Y29uc3QgZT1wYXJzZU5lc3RlZE9yZGVyKHMsaSk7ZSYmci5wdXNoKGUpfWlmKGk+MClyZXR1cm4gcjtjb25zdCBzPVtdO2Zvcihjb25zdFtlXW9mIHQuaXRlbXMoKSlhLmhhcyhlKXx8cy5wdXNoKGUudG9TdHJpbmcoKSk7cy5sZW5ndGgmJnIucHVzaCh7bmFtZTpudWxsLG9yZGVyOnN9KTtyZXR1cm4gcn1mdW5jdGlvbiBwYXJzZU5lc3RlZE9yZGVyKGUsdCl7aWYoKyt0PnIpe3dhcm4oInBhcnNlTmVzdGVkT3JkZXIgLSByZWFjaGVkIE1BWF9ORVNURURfTEVWRUxTLiIpO3JldHVybiBudWxsfWNvbnN0IGE9aS5mZXRjaElmUmVmKGUpO2lmKCFBcnJheS5pc0FycmF5KGEpKXJldHVybiBudWxsO2NvbnN0IHM9aS5mZXRjaElmUmVmKGFbMF0pO2lmKCJzdHJpbmciIT10eXBlb2YgcylyZXR1cm4gbnVsbDtjb25zdCBuPXBhcnNlT3JkZXIoYS5zbGljZSgxKSx0KTtyZXR1cm4gbj8ubGVuZ3RoP3tuYW1lOnN0cmluZ1RvUERGU3RyaW5nKHMpLG9yZGVyOm59Om51bGx9Y29uc3QgaT10aGlzLnhyZWYsYT1uZXcgUmVmU2V0LHI9MTA7IWZ1bmN0aW9uIHBhcnNlUkJHcm91cHMoZSl7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IoY29uc3QgYSBvZiBlKXtjb25zdCBlPWkuZmV0Y2hJZlJlZihhKTtpZighQXJyYXkuaXNBcnJheShlKXx8IWUubGVuZ3RoKWNvbnRpbnVlO2NvbnN0IHI9bmV3IFNldDtmb3IoY29uc3QgaSBvZiBlKWlmKGkgaW5zdGFuY2VvZiBSZWYmJnQuaGFzKGkpJiYhci5oYXMoaS50b1N0cmluZygpKSl7ci5hZGQoaS50b1N0cmluZygpKTt0LmdldChpKS5yYkdyb3Vwcy5wdXNoKHIpfX19KGUuZ2V0KCJSQkdyb3VwcyIpKTtyZXR1cm57bmFtZToic3RyaW5nIj09dHlwZW9mIGUuZ2V0KCJOYW1lIik/c3RyaW5nVG9QREZTdHJpbmcoZS5nZXQoIk5hbWUiKSk6bnVsbCxjcmVhdG9yOiJzdHJpbmciPT10eXBlb2YgZS5nZXQoIkNyZWF0b3IiKT9zdHJpbmdUb1BERlN0cmluZyhlLmdldCgiQ3JlYXRvciIpKTpudWxsLGJhc2VTdGF0ZTplLmdldCgiQmFzZVN0YXRlIilpbnN0YW5jZW9mIE5hbWU/ZS5nZXQoIkJhc2VTdGF0ZSIpLm5hbWU6bnVsbCxvbjpwYXJzZU9uT2ZmKGUuZ2V0KCJPTiIpKSxvZmY6cGFyc2VPbk9mZihlLmdldCgiT0ZGIikpLG9yZGVyOnBhcnNlT3JkZXIoZS5nZXQoIk9yZGVyIikpLGdyb3VwczpbLi4udF19fXNldEFjdHVhbE51bVBhZ2VzKGU9bnVsbCl7dGhpcy5fYWN0dWFsTnVtUGFnZXM9ZX1nZXQgaGFzQWN0dWFsTnVtUGFnZXMoKXtyZXR1cm4gbnVsbCE9PXRoaXMuX2FjdHVhbE51bVBhZ2VzfWdldCBfcGFnZXNDb3VudCgpe2NvbnN0IGU9dGhpcy50b3BsZXZlbFBhZ2VzRGljdC5nZXQoIkNvdW50Iik7aWYoIU51bWJlci5pc0ludGVnZXIoZSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJQYWdlIGNvdW50IGluIHRvcC1sZXZlbCBwYWdlcyBkaWN0aW9uYXJ5IGlzIG5vdCBhbiBpbnRlZ2VyLiIpO3JldHVybiBzaGFkb3codGhpcywiX3BhZ2VzQ291bnQiLGUpfWdldCBudW1QYWdlcygpe3JldHVybiB0aGlzLmhhc0FjdHVhbE51bVBhZ2VzP3RoaXMuX2FjdHVhbE51bVBhZ2VzOnRoaXMuX3BhZ2VzQ291bnR9Z2V0IGRlc3RpbmF0aW9ucygpe2NvbnN0IGU9dGhpcy5fcmVhZERlc3RzKCksdD1PYmplY3QuY3JlYXRlKG51bGwpO2lmKGUgaW5zdGFuY2VvZiBOYW1lVHJlZSlmb3IoY29uc3RbaSxhXW9mIGUuZ2V0QWxsKCkpe2NvbnN0IGU9ZmV0Y2hEZXN0KGEpO2UmJih0W3N0cmluZ1RvUERGU3RyaW5nKGkpXT1lKX1lbHNlIGlmKGUgaW5zdGFuY2VvZiBEaWN0KWZvcihjb25zdFtpLGFdb2YgZSl7Y29uc3QgZT1mZXRjaERlc3QoYSk7ZSYmKHRbaV09ZSl9cmV0dXJuIHNoYWRvdyh0aGlzLCJkZXN0aW5hdGlvbnMiLHQpfWdldERlc3RpbmF0aW9uKGUpe2NvbnN0IHQ9dGhpcy5fcmVhZERlc3RzKCk7aWYodCBpbnN0YW5jZW9mIE5hbWVUcmVlKXtjb25zdCBpPWZldGNoRGVzdCh0LmdldChlKSk7aWYoaSlyZXR1cm4gaTtjb25zdCBhPXRoaXMuZGVzdGluYXRpb25zW2VdO2lmKGEpe3dhcm4oYEZvdW5kICIke2V9IiBhdCBhbiBpbmNvcnJlY3QgcG9zaXRpb24gaW4gdGhlIE5hbWVUcmVlLmApO3JldHVybiBhfX1lbHNlIGlmKHQgaW5zdGFuY2VvZiBEaWN0KXtjb25zdCBpPWZldGNoRGVzdCh0LmdldChlKSk7aWYoaSlyZXR1cm4gaX1yZXR1cm4gbnVsbH1fcmVhZERlc3RzKCl7Y29uc3QgZT10aGlzLl9jYXREaWN0LmdldCgiTmFtZXMiKTtyZXR1cm4gZT8uaGFzKCJEZXN0cyIpP25ldyBOYW1lVHJlZShlLmdldFJhdygiRGVzdHMiKSx0aGlzLnhyZWYpOnRoaXMuX2NhdERpY3QuaGFzKCJEZXN0cyIpP3RoaXMuX2NhdERpY3QuZ2V0KCJEZXN0cyIpOnZvaWQgMH1nZXQgcGFnZUxhYmVscygpe2xldCBlPW51bGw7dHJ5e2U9dGhpcy5fcmVhZFBhZ2VMYWJlbHMoKX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pdGhyb3cgZTt3YXJuKCJVbmFibGUgdG8gcmVhZCBwYWdlIGxhYmVscy4iKX1yZXR1cm4gc2hhZG93KHRoaXMsInBhZ2VMYWJlbHMiLGUpfV9yZWFkUGFnZUxhYmVscygpe2NvbnN0IGU9dGhpcy5fY2F0RGljdC5nZXRSYXcoIlBhZ2VMYWJlbHMiKTtpZighZSlyZXR1cm4gbnVsbDtjb25zdCB0PW5ldyBBcnJheSh0aGlzLm51bVBhZ2VzKTtsZXQgaT1udWxsLGE9IiI7Y29uc3Qgcj1uZXcgTnVtYmVyVHJlZShlLHRoaXMueHJlZikuZ2V0QWxsKCk7bGV0IHM9IiIsbj0xO2ZvcihsZXQgZT0wLG89dGhpcy5udW1QYWdlcztlPG87ZSsrKXtjb25zdCBvPXIuZ2V0KGUpO2lmKHZvaWQgMCE9PW8pe2lmKCEobyBpbnN0YW5jZW9mIERpY3QpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiUGFnZUxhYmVsIGlzIG5vdCBhIGRpY3Rpb25hcnkuIik7aWYoby5oYXMoIlR5cGUiKSYmIWlzTmFtZShvLmdldCgiVHlwZSIpLCJQYWdlTGFiZWwiKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgdHlwZSBpbiBQYWdlTGFiZWwgZGljdGlvbmFyeS4iKTtpZihvLmhhcygiUyIpKXtjb25zdCBlPW8uZ2V0KCJTIik7aWYoIShlIGluc3RhbmNlb2YgTmFtZSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIHN0eWxlIGluIFBhZ2VMYWJlbCBkaWN0aW9uYXJ5LiIpO2k9ZS5uYW1lfWVsc2UgaT1udWxsO2lmKG8uaGFzKCJQIikpe2NvbnN0IGU9by5nZXQoIlAiKTtpZigic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIHByZWZpeCBpbiBQYWdlTGFiZWwgZGljdGlvbmFyeS4iKTthPXN0cmluZ1RvUERGU3RyaW5nKGUpfWVsc2UgYT0iIjtpZihvLmhhcygiU3QiKSl7Y29uc3QgZT1vLmdldCgiU3QiKTtpZighKE51bWJlci5pc0ludGVnZXIoZSkmJmU+PTEpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiSW52YWxpZCBzdGFydCBpbiBQYWdlTGFiZWwgZGljdGlvbmFyeS4iKTtuPWV9ZWxzZSBuPTF9c3dpdGNoKGkpe2Nhc2UiRCI6cz1uO2JyZWFrO2Nhc2UiUiI6Y2FzZSJyIjpzPXRvUm9tYW5OdW1lcmFscyhuLCJyIj09PWkpO2JyZWFrO2Nhc2UiQSI6Y2FzZSJhIjpjb25zdCBlPTI2LHQ9ImEiPT09aT85Nzo2NSxhPW4tMTtzPVN0cmluZy5mcm9tQ2hhckNvZGUodCthJWUpLnJlcGVhdChNYXRoLmZsb29yKGEvZSkrMSk7YnJlYWs7ZGVmYXVsdDppZihpKXRocm93IG5ldyBGb3JtYXRFcnJvcihgSW52YWxpZCBzdHlsZSAiJHtpfSIgaW4gUGFnZUxhYmVsIGRpY3Rpb25hcnkuYCk7cz0iIn10W2VdPWErcztuKyt9cmV0dXJuIHR9Z2V0IHBhZ2VMYXlvdXQoKXtjb25zdCBlPXRoaXMuX2NhdERpY3QuZ2V0KCJQYWdlTGF5b3V0Iik7bGV0IHQ9IiI7aWYoZSBpbnN0YW5jZW9mIE5hbWUpc3dpdGNoKGUubmFtZSl7Y2FzZSJTaW5nbGVQYWdlIjpjYXNlIk9uZUNvbHVtbiI6Y2FzZSJUd29Db2x1bW5MZWZ0IjpjYXNlIlR3b0NvbHVtblJpZ2h0IjpjYXNlIlR3b1BhZ2VMZWZ0IjpjYXNlIlR3b1BhZ2VSaWdodCI6dD1lLm5hbWV9cmV0dXJuIHNoYWRvdyh0aGlzLCJwYWdlTGF5b3V0Iix0KX1nZXQgcGFnZU1vZGUoKXtjb25zdCBlPXRoaXMuX2NhdERpY3QuZ2V0KCJQYWdlTW9kZSIpO2xldCB0PSJVc2VOb25lIjtpZihlIGluc3RhbmNlb2YgTmFtZSlzd2l0Y2goZS5uYW1lKXtjYXNlIlVzZU5vbmUiOmNhc2UiVXNlT3V0bGluZXMiOmNhc2UiVXNlVGh1bWJzIjpjYXNlIkZ1bGxTY3JlZW4iOmNhc2UiVXNlT0MiOmNhc2UiVXNlQXR0YWNobWVudHMiOnQ9ZS5uYW1lfXJldHVybiBzaGFkb3codGhpcywicGFnZU1vZGUiLHQpfWdldCB2aWV3ZXJQcmVmZXJlbmNlcygpe2NvbnN0IGU9dGhpcy5fY2F0RGljdC5nZXQoIlZpZXdlclByZWZlcmVuY2VzIik7aWYoIShlIGluc3RhbmNlb2YgRGljdCkpcmV0dXJuIHNoYWRvdyh0aGlzLCJ2aWV3ZXJQcmVmZXJlbmNlcyIsbnVsbCk7bGV0IHQ9bnVsbDtmb3IoY29uc3QgaSBvZiBlLmdldEtleXMoKSl7Y29uc3QgYT1lLmdldChpKTtsZXQgcjtzd2l0Y2goaSl7Y2FzZSJIaWRlVG9vbGJhciI6Y2FzZSJIaWRlTWVudWJhciI6Y2FzZSJIaWRlV2luZG93VUkiOmNhc2UiRml0V2luZG93IjpjYXNlIkNlbnRlcldpbmRvdyI6Y2FzZSJEaXNwbGF5RG9jVGl0bGUiOmNhc2UiUGlja1RyYXlCeVBERlNpemUiOiJib29sZWFuIj09dHlwZW9mIGEmJihyPWEpO2JyZWFrO2Nhc2UiTm9uRnVsbFNjcmVlblBhZ2VNb2RlIjppZihhIGluc3RhbmNlb2YgTmFtZSlzd2l0Y2goYS5uYW1lKXtjYXNlIlVzZU5vbmUiOmNhc2UiVXNlT3V0bGluZXMiOmNhc2UiVXNlVGh1bWJzIjpjYXNlIlVzZU9DIjpyPWEubmFtZTticmVhaztkZWZhdWx0OnI9IlVzZU5vbmUifWJyZWFrO2Nhc2UiRGlyZWN0aW9uIjppZihhIGluc3RhbmNlb2YgTmFtZSlzd2l0Y2goYS5uYW1lKXtjYXNlIkwyUiI6Y2FzZSJSMkwiOnI9YS5uYW1lO2JyZWFrO2RlZmF1bHQ6cj0iTDJSIn1icmVhaztjYXNlIlZpZXdBcmVhIjpjYXNlIlZpZXdDbGlwIjpjYXNlIlByaW50QXJlYSI6Y2FzZSJQcmludENsaXAiOmlmKGEgaW5zdGFuY2VvZiBOYW1lKXN3aXRjaChhLm5hbWUpe2Nhc2UiTWVkaWFCb3giOmNhc2UiQ3JvcEJveCI6Y2FzZSJCbGVlZEJveCI6Y2FzZSJUcmltQm94IjpjYXNlIkFydEJveCI6cj1hLm5hbWU7YnJlYWs7ZGVmYXVsdDpyPSJDcm9wQm94In1icmVhaztjYXNlIlByaW50U2NhbGluZyI6aWYoYSBpbnN0YW5jZW9mIE5hbWUpc3dpdGNoKGEubmFtZSl7Y2FzZSJOb25lIjpjYXNlIkFwcERlZmF1bHQiOnI9YS5uYW1lO2JyZWFrO2RlZmF1bHQ6cj0iQXBwRGVmYXVsdCJ9YnJlYWs7Y2FzZSJEdXBsZXgiOmlmKGEgaW5zdGFuY2VvZiBOYW1lKXN3aXRjaChhLm5hbWUpe2Nhc2UiU2ltcGxleCI6Y2FzZSJEdXBsZXhGbGlwU2hvcnRFZGdlIjpjYXNlIkR1cGxleEZsaXBMb25nRWRnZSI6cj1hLm5hbWU7YnJlYWs7ZGVmYXVsdDpyPSJOb25lIn1icmVhaztjYXNlIlByaW50UGFnZVJhbmdlIjppZihBcnJheS5pc0FycmF5KGEpJiZhLmxlbmd0aCUyPT0wKXthLmV2ZXJ5KCgoZSx0LGkpPT5OdW1iZXIuaXNJbnRlZ2VyKGUpJiZlPjAmJigwPT09dHx8ZT49aVt0LTFdKSYmZTw9dGhpcy5udW1QYWdlcykpJiYocj1hKX1icmVhaztjYXNlIk51bUNvcGllcyI6TnVtYmVyLmlzSW50ZWdlcihhKSYmYT4wJiYocj1hKTticmVhaztkZWZhdWx0Ondhcm4oYElnbm9yaW5nIG5vbi1zdGFuZGFyZCBrZXkgaW4gVmlld2VyUHJlZmVyZW5jZXM6ICR7aX0uYCk7Y29udGludWV9aWYodm9pZCAwIT09cil7dHx8KHQ9T2JqZWN0LmNyZWF0ZShudWxsKSk7dFtpXT1yfWVsc2Ugd2FybihgQmFkIHZhbHVlLCBmb3Iga2V5ICIke2l9IiwgaW4gVmlld2VyUHJlZmVyZW5jZXM6ICR7YX0uYCl9cmV0dXJuIHNoYWRvdyh0aGlzLCJ2aWV3ZXJQcmVmZXJlbmNlcyIsdCl9Z2V0IG9wZW5BY3Rpb24oKXtjb25zdCBlPXRoaXMuX2NhdERpY3QuZ2V0KCJPcGVuQWN0aW9uIiksdD1PYmplY3QuY3JlYXRlKG51bGwpO2lmKGUgaW5zdGFuY2VvZiBEaWN0KXtjb25zdCBpPW5ldyBEaWN0KHRoaXMueHJlZik7aS5zZXQoIkEiLGUpO2NvbnN0IGE9e3VybDpudWxsLGRlc3Q6bnVsbCxhY3Rpb246bnVsbH07Q2F0YWxvZy5wYXJzZURlc3REaWN0aW9uYXJ5KHtkZXN0RGljdDppLHJlc3VsdE9iajphfSk7QXJyYXkuaXNBcnJheShhLmRlc3QpP3QuZGVzdD1hLmRlc3Q6YS5hY3Rpb24mJih0LmFjdGlvbj1hLmFjdGlvbil9ZWxzZSBBcnJheS5pc0FycmF5KGUpJiYodC5kZXN0PWUpO3JldHVybiBzaGFkb3codGhpcywib3BlbkFjdGlvbiIsb2JqZWN0U2l6ZSh0KT4wP3Q6bnVsbCl9Z2V0IGF0dGFjaG1lbnRzKCl7Y29uc3QgZT10aGlzLl9jYXREaWN0LmdldCgiTmFtZXMiKTtsZXQgdD1udWxsO2lmKGUgaW5zdGFuY2VvZiBEaWN0JiZlLmhhcygiRW1iZWRkZWRGaWxlcyIpKXtjb25zdCBpPW5ldyBOYW1lVHJlZShlLmdldFJhdygiRW1iZWRkZWRGaWxlcyIpLHRoaXMueHJlZik7Zm9yKGNvbnN0W2UsYV1vZiBpLmdldEFsbCgpKXtjb25zdCBpPW5ldyBGaWxlU3BlYyhhLHRoaXMueHJlZik7dHx8KHQ9T2JqZWN0LmNyZWF0ZShudWxsKSk7dFtzdHJpbmdUb1BERlN0cmluZyhlKV09aS5zZXJpYWxpemFibGV9fXJldHVybiBzaGFkb3codGhpcywiYXR0YWNobWVudHMiLHQpfWdldCB4ZmFJbWFnZXMoKXtjb25zdCBlPXRoaXMuX2NhdERpY3QuZ2V0KCJOYW1lcyIpO2xldCB0PW51bGw7aWYoZSBpbnN0YW5jZW9mIERpY3QmJmUuaGFzKCJYRkFJbWFnZXMiKSl7Y29uc3QgaT1uZXcgTmFtZVRyZWUoZS5nZXRSYXcoIlhGQUltYWdlcyIpLHRoaXMueHJlZik7Zm9yKGNvbnN0W2UsYV1vZiBpLmdldEFsbCgpKXt0fHwodD1uZXcgRGljdCh0aGlzLnhyZWYpKTt0LnNldChzdHJpbmdUb1BERlN0cmluZyhlKSxhKX19cmV0dXJuIHNoYWRvdyh0aGlzLCJ4ZmFJbWFnZXMiLHQpfV9jb2xsZWN0SmF2YVNjcmlwdCgpe2NvbnN0IGU9dGhpcy5fY2F0RGljdC5nZXQoIk5hbWVzIik7bGV0IHQ9bnVsbDtmdW5jdGlvbiBhcHBlbmRJZkphdmFTY3JpcHREaWN0KGUsaSl7aWYoIShpIGluc3RhbmNlb2YgRGljdCkpcmV0dXJuO2lmKCFpc05hbWUoaS5nZXQoIlMiKSwiSmF2YVNjcmlwdCIpKXJldHVybjtsZXQgYT1pLmdldCgiSlMiKTtpZihhIGluc3RhbmNlb2YgQmFzZVN0cmVhbSlhPWEuZ2V0U3RyaW5nKCk7ZWxzZSBpZigic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuO2E9c3RyaW5nVG9QREZTdHJpbmcoYSkucmVwbGFjZUFsbCgiXDAiLCIiKTthJiYodHx8PW5ldyBNYXApLnNldChlLGEpfWlmKGUgaW5zdGFuY2VvZiBEaWN0JiZlLmhhcygiSmF2YVNjcmlwdCIpKXtjb25zdCB0PW5ldyBOYW1lVHJlZShlLmdldFJhdygiSmF2YVNjcmlwdCIpLHRoaXMueHJlZik7Zm9yKGNvbnN0W2UsaV1vZiB0LmdldEFsbCgpKWFwcGVuZElmSmF2YVNjcmlwdERpY3Qoc3RyaW5nVG9QREZTdHJpbmcoZSksaSl9Y29uc3QgaT10aGlzLl9jYXREaWN0LmdldCgiT3BlbkFjdGlvbiIpO2kmJmFwcGVuZElmSmF2YVNjcmlwdERpY3QoIk9wZW5BY3Rpb24iLGkpO3JldHVybiB0fWdldCBqc0FjdGlvbnMoKXtjb25zdCBlPXRoaXMuX2NvbGxlY3RKYXZhU2NyaXB0KCk7bGV0IHQ9Y29sbGVjdEFjdGlvbnModGhpcy54cmVmLHRoaXMuX2NhdERpY3QsbUEpO2lmKGUpe3R8fD1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcihjb25zdFtpLGFdb2YgZSlpIGluIHQ/dFtpXS5wdXNoKGEpOnRbaV09W2FdfXJldHVybiBzaGFkb3codGhpcywianNBY3Rpb25zIix0KX1hc3luYyBmb250RmFsbGJhY2soZSx0KXtjb25zdCBpPWF3YWl0IFByb21pc2UuYWxsKHRoaXMuZm9udENhY2hlKTtmb3IoY29uc3QgYSBvZiBpKWlmKGEubG9hZGVkTmFtZT09PWUpe2EuZmFsbGJhY2sodCk7cmV0dXJufX1hc3luYyBjbGVhbnVwKGU9ITEpe2NsZWFyR2xvYmFsQ2FjaGVzKCk7dGhpcy5nbG9iYWxJbWFnZUNhY2hlLmNsZWFyKGUpO3RoaXMucGFnZUtpZHNDb3VudENhY2hlLmNsZWFyKCk7dGhpcy5wYWdlSW5kZXhDYWNoZS5jbGVhcigpO3RoaXMucGFnZURpY3RDYWNoZS5jbGVhcigpO3RoaXMubm9uQmxlbmRNb2Rlc1NldC5jbGVhcigpO2NvbnN0IHQ9YXdhaXQgUHJvbWlzZS5hbGwodGhpcy5mb250Q2FjaGUpO2Zvcihjb25zdHtkaWN0OmV9b2YgdClkZWxldGUgZS5jYWNoZUtleTt0aGlzLmZvbnRDYWNoZS5jbGVhcigpO3RoaXMuYnVpbHRJbkNNYXBDYWNoZS5jbGVhcigpO3RoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlLmNsZWFyKCk7dGhpcy5zeXN0ZW1Gb250Q2FjaGUuY2xlYXIoKX1hc3luYyBnZXRQYWdlRGljdChlKXtjb25zdCB0PVt0aGlzLnRvcGxldmVsUGFnZXNEaWN0XSxpPW5ldyBSZWZTZXQsYT10aGlzLl9jYXREaWN0LmdldFJhdygiUGFnZXMiKTthIGluc3RhbmNlb2YgUmVmJiZpLnB1dChhKTtjb25zdCByPXRoaXMueHJlZixzPXRoaXMucGFnZUtpZHNDb3VudENhY2hlLG49dGhpcy5wYWdlSW5kZXhDYWNoZSxvPXRoaXMucGFnZURpY3RDYWNoZTtsZXQgZz0wO2Zvcig7dC5sZW5ndGg7KXtjb25zdCBhPXQucG9wKCk7aWYoYSBpbnN0YW5jZW9mIFJlZil7Y29uc3QgYz1zLmdldChhKTtpZihjPj0wJiZnK2M8PWUpe2crPWM7Y29udGludWV9aWYoaS5oYXMoYSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJQYWdlcyB0cmVlIGNvbnRhaW5zIGNpcmN1bGFyIHJlZmVyZW5jZS4iKTtpLnB1dChhKTtjb25zdCBsPWF3YWl0KG8uZ2V0KGEpfHxyLmZldGNoQXN5bmMoYSkpO2lmKGwgaW5zdGFuY2VvZiBEaWN0KXtsZXQgdD1sLmdldFJhdygiVHlwZSIpO3QgaW5zdGFuY2VvZiBSZWYmJih0PWF3YWl0IHIuZmV0Y2hBc3luYyh0KSk7aWYoaXNOYW1lKHQsIlBhZ2UiKXx8IWwuaGFzKCJLaWRzIikpe3MuaGFzKGEpfHxzLnB1dChhLDEpO24uaGFzKGEpfHxuLnB1dChhLGcpO2lmKGc9PT1lKXJldHVybltsLGFdO2crKztjb250aW51ZX19dC5wdXNoKGwpO2NvbnRpbnVlfWlmKCEoYSBpbnN0YW5jZW9mIERpY3QpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiUGFnZSBkaWN0aW9uYXJ5IGtpZCByZWZlcmVuY2UgcG9pbnRzIHRvIHdyb25nIHR5cGUgb2Ygb2JqZWN0LiIpO2NvbnN0e29iaklkOmN9PWE7bGV0IGw9YS5nZXRSYXcoIkNvdW50Iik7bCBpbnN0YW5jZW9mIFJlZiYmKGw9YXdhaXQgci5mZXRjaEFzeW5jKGwpKTtpZihOdW1iZXIuaXNJbnRlZ2VyKGwpJiZsPj0wKXtjJiYhcy5oYXMoYykmJnMucHV0KGMsbCk7aWYoZytsPD1lKXtnKz1sO2NvbnRpbnVlfX1sZXQgaD1hLmdldFJhdygiS2lkcyIpO2ggaW5zdGFuY2VvZiBSZWYmJihoPWF3YWl0IHIuZmV0Y2hBc3luYyhoKSk7aWYoIUFycmF5LmlzQXJyYXkoaCkpe2xldCB0PWEuZ2V0UmF3KCJUeXBlIik7dCBpbnN0YW5jZW9mIFJlZiYmKHQ9YXdhaXQgci5mZXRjaEFzeW5jKHQpKTtpZihpc05hbWUodCwiUGFnZSIpfHwhYS5oYXMoIktpZHMiKSl7aWYoZz09PWUpcmV0dXJuW2EsbnVsbF07ZysrO2NvbnRpbnVlfXRocm93IG5ldyBGb3JtYXRFcnJvcigiUGFnZSBkaWN0aW9uYXJ5IGtpZHMgb2JqZWN0IGlzIG5vdCBhbiBhcnJheS4iKX1mb3IobGV0IGU9aC5sZW5ndGgtMTtlPj0wO2UtLSl7Y29uc3QgaT1oW2VdO3QucHVzaChpKTthPT09dGhpcy50b3BsZXZlbFBhZ2VzRGljdCYmaSBpbnN0YW5jZW9mIFJlZiYmIW8uaGFzKGkpJiZvLnB1dChpLHIuZmV0Y2hBc3luYyhpKSl9fXRocm93IG5ldyBFcnJvcihgUGFnZSBpbmRleCAke2V9IG5vdCBmb3VuZC5gKX1hc3luYyBnZXRBbGxQYWdlRGljdHMoZT0hMSl7Y29uc3R7aWdub3JlRXJyb3JzOnR9PXRoaXMucGRmTWFuYWdlci5ldmFsdWF0b3JPcHRpb25zLGk9W3tjdXJyZW50Tm9kZTp0aGlzLnRvcGxldmVsUGFnZXNEaWN0LHBvc0luS2lkczowfV0sYT1uZXcgUmVmU2V0LHI9dGhpcy5fY2F0RGljdC5nZXRSYXcoIlBhZ2VzIik7ciBpbnN0YW5jZW9mIFJlZiYmYS5wdXQocik7Y29uc3Qgcz1uZXcgTWFwLG49dGhpcy54cmVmLG89dGhpcy5wYWdlSW5kZXhDYWNoZTtsZXQgZz0wO2Z1bmN0aW9uIGFkZFBhZ2VEaWN0KGUsdCl7dCYmIW8uaGFzKHQpJiZvLnB1dCh0LGcpO3Muc2V0KGcrKyxbZSx0XSl9ZnVuY3Rpb24gYWRkUGFnZUVycm9yKGkpe2lmKGkgaW5zdGFuY2VvZiBYUmVmRW50cnlFeGNlcHRpb24mJiFlKXRocm93IGk7aWYoZSYmdCYmMD09PWcpe3dhcm4oYGdldEFsbFBhZ2VEaWN0cyAtIFNraXBwaW5nIGludmFsaWQgZmlyc3QgcGFnZTogIiR7aX0iLmApO2k9RGljdC5lbXB0eX1zLnNldChnKyssW2ksbnVsbF0pfWZvcig7aS5sZW5ndGg+MDspe2NvbnN0IGU9aS5hdCgtMSkse2N1cnJlbnROb2RlOnQscG9zSW5LaWRzOnJ9PWU7bGV0IHM9dC5nZXRSYXcoIktpZHMiKTtpZihzIGluc3RhbmNlb2YgUmVmKXRyeXtzPWF3YWl0IG4uZmV0Y2hBc3luYyhzKX1jYXRjaChlKXthZGRQYWdlRXJyb3IoZSk7YnJlYWt9aWYoIUFycmF5LmlzQXJyYXkocykpe2FkZFBhZ2VFcnJvcihuZXcgRm9ybWF0RXJyb3IoIlBhZ2UgZGljdGlvbmFyeSBraWRzIG9iamVjdCBpcyBub3QgYW4gYXJyYXkuIikpO2JyZWFrfWlmKHI+PXMubGVuZ3RoKXtpLnBvcCgpO2NvbnRpbnVlfWNvbnN0IG89c1tyXTtsZXQgZztpZihvIGluc3RhbmNlb2YgUmVmKXtpZihhLmhhcyhvKSl7YWRkUGFnZUVycm9yKG5ldyBGb3JtYXRFcnJvcigiUGFnZXMgdHJlZSBjb250YWlucyBjaXJjdWxhciByZWZlcmVuY2UuIikpO2JyZWFrfWEucHV0KG8pO3RyeXtnPWF3YWl0IG4uZmV0Y2hBc3luYyhvKX1jYXRjaChlKXthZGRQYWdlRXJyb3IoZSk7YnJlYWt9fWVsc2UgZz1vO2lmKCEoZyBpbnN0YW5jZW9mIERpY3QpKXthZGRQYWdlRXJyb3IobmV3IEZvcm1hdEVycm9yKCJQYWdlIGRpY3Rpb25hcnkga2lkIHJlZmVyZW5jZSBwb2ludHMgdG8gd3JvbmcgdHlwZSBvZiBvYmplY3QuIikpO2JyZWFrfWxldCBjPWcuZ2V0UmF3KCJUeXBlIik7aWYoYyBpbnN0YW5jZW9mIFJlZil0cnl7Yz1hd2FpdCBuLmZldGNoQXN5bmMoYyl9Y2F0Y2goZSl7YWRkUGFnZUVycm9yKGUpO2JyZWFrfWlzTmFtZShjLCJQYWdlIil8fCFnLmhhcygiS2lkcyIpP2FkZFBhZ2VEaWN0KGcsbyBpbnN0YW5jZW9mIFJlZj9vOm51bGwpOmkucHVzaCh7Y3VycmVudE5vZGU6Zyxwb3NJbktpZHM6MH0pO2UucG9zSW5LaWRzKyt9cmV0dXJuIHN9Z2V0UGFnZUluZGV4KGUpe2NvbnN0IHQ9dGhpcy5wYWdlSW5kZXhDYWNoZS5nZXQoZSk7aWYodm9pZCAwIT09dClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHQpO2NvbnN0IGk9dGhpcy54cmVmO2xldCBhPTA7Y29uc3QgbmV4dD10PT5mdW5jdGlvbiBwYWdlc0JlZm9yZVJlZih0KXtsZXQgYSxyPTA7cmV0dXJuIGkuZmV0Y2hBc3luYyh0KS50aGVuKChmdW5jdGlvbihpKXtpZihpc1JlZnNFcXVhbCh0LGUpJiYhaXNEaWN0KGksIlBhZ2UiKSYmIShpIGluc3RhbmNlb2YgRGljdCYmIWkuaGFzKCJUeXBlIikmJmkuaGFzKCJDb250ZW50cyIpKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlRoZSByZWZlcmVuY2UgZG9lcyBub3QgcG9pbnQgdG8gYSAvUGFnZSBkaWN0aW9uYXJ5LiIpO2lmKCFpKXJldHVybiBudWxsO2lmKCEoaSBpbnN0YW5jZW9mIERpY3QpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiTm9kZSBtdXN0IGJlIGEgZGljdGlvbmFyeS4iKTthPWkuZ2V0UmF3KCJQYXJlbnQiKTtyZXR1cm4gaS5nZXRBc3luYygiUGFyZW50Iil9KSkudGhlbigoZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuIG51bGw7aWYoIShlIGluc3RhbmNlb2YgRGljdCkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJQYXJlbnQgbXVzdCBiZSBhIGRpY3Rpb25hcnkuIik7cmV0dXJuIGUuZ2V0QXN5bmMoIktpZHMiKX0pKS50aGVuKChmdW5jdGlvbihlKXtpZighZSlyZXR1cm4gbnVsbDtjb25zdCBzPVtdO2xldCBuPSExO2Zvcihjb25zdCBhIG9mIGUpe2lmKCEoYSBpbnN0YW5jZW9mIFJlZikpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJLaWQgbXVzdCBiZSBhIHJlZmVyZW5jZS4iKTtpZihpc1JlZnNFcXVhbChhLHQpKXtuPSEwO2JyZWFrfXMucHVzaChpLmZldGNoQXN5bmMoYSkudGhlbigoZnVuY3Rpb24oZSl7aWYoIShlIGluc3RhbmNlb2YgRGljdCkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJLaWQgbm9kZSBtdXN0IGJlIGEgZGljdGlvbmFyeS4iKTtlLmhhcygiQ291bnQiKT9yKz1lLmdldCgiQ291bnQiKTpyKyt9KSkpfWlmKCFuKXRocm93IG5ldyBGb3JtYXRFcnJvcigiS2lkIHJlZmVyZW5jZSBub3QgZm91bmQgaW4gcGFyZW50J3Mga2lkcy4iKTtyZXR1cm4gUHJvbWlzZS5hbGwocykudGhlbigoZnVuY3Rpb24oKXtyZXR1cm5bcixhXX0pKX0pKX0odCkudGhlbigodD0+e2lmKCF0KXt0aGlzLnBhZ2VJbmRleENhY2hlLnB1dChlLGEpO3JldHVybiBhfWNvbnN0W2kscl09dDthKz1pO3JldHVybiBuZXh0KHIpfSkpO3JldHVybiBuZXh0KGUpfWdldCBiYXNlVXJsKCl7Y29uc3QgZT10aGlzLl9jYXREaWN0LmdldCgiVVJJIik7aWYoZSBpbnN0YW5jZW9mIERpY3Qpe2NvbnN0IHQ9ZS5nZXQoIkJhc2UiKTtpZigic3RyaW5nIj09dHlwZW9mIHQpe2NvbnN0IGU9Y3JlYXRlVmFsaWRBYnNvbHV0ZVVybCh0LG51bGwse3RyeUNvbnZlcnRFbmNvZGluZzohMH0pO2lmKGUpcmV0dXJuIHNoYWRvdyh0aGlzLCJiYXNlVXJsIixlLmhyZWYpfX1yZXR1cm4gc2hhZG93KHRoaXMsImJhc2VVcmwiLHRoaXMucGRmTWFuYWdlci5kb2NCYXNlVXJsKX1zdGF0aWMgcGFyc2VEZXN0RGljdGlvbmFyeSh7ZGVzdERpY3Q6ZSxyZXN1bHRPYmo6dCxkb2NCYXNlVXJsOmk9bnVsbCxkb2NBdHRhY2htZW50czphPW51bGx9KXtpZighKGUgaW5zdGFuY2VvZiBEaWN0KSl7d2FybigicGFyc2VEZXN0RGljdGlvbmFyeTogYGRlc3REaWN0YCBtdXN0IGJlIGEgZGljdGlvbmFyeS4iKTtyZXR1cm59bGV0IHIscyxuPWUuZ2V0KCJBIik7aWYoIShuIGluc3RhbmNlb2YgRGljdCkpaWYoZS5oYXMoIkRlc3QiKSluPWUuZ2V0KCJEZXN0Iik7ZWxzZXtuPWUuZ2V0KCJBQSIpO24gaW5zdGFuY2VvZiBEaWN0JiYobi5oYXMoIkQiKT9uPW4uZ2V0KCJEIik6bi5oYXMoIlUiKSYmKG49bi5nZXQoIlUiKSkpfWlmKG4gaW5zdGFuY2VvZiBEaWN0KXtjb25zdCBlPW4uZ2V0KCJTIik7aWYoIShlIGluc3RhbmNlb2YgTmFtZSkpe3dhcm4oInBhcnNlRGVzdERpY3Rpb25hcnk6IEludmFsaWQgdHlwZSBpbiBBY3Rpb24gZGljdGlvbmFyeS4iKTtyZXR1cm59Y29uc3QgaT1lLm5hbWU7c3dpdGNoKGkpe2Nhc2UiUmVzZXRGb3JtIjpjb25zdCBlPW4uZ2V0KCJGbGFncyIpLG89ISgxJigibnVtYmVyIj09dHlwZW9mIGU/ZTowKSksZz1bXSxjPVtdO2Zvcihjb25zdCBlIG9mIG4uZ2V0KCJGaWVsZHMiKXx8W10pZSBpbnN0YW5jZW9mIFJlZj9jLnB1c2goZS50b1N0cmluZygpKToic3RyaW5nIj09dHlwZW9mIGUmJmcucHVzaChzdHJpbmdUb1BERlN0cmluZyhlKSk7dC5yZXNldEZvcm09e2ZpZWxkczpnLHJlZnM6YyxpbmNsdWRlOm99O2JyZWFrO2Nhc2UiVVJJIjpyPW4uZ2V0KCJVUkkiKTtyIGluc3RhbmNlb2YgTmFtZSYmKHI9Ii8iK3IubmFtZSk7YnJlYWs7Y2FzZSJHb1RvIjpzPW4uZ2V0KCJEIik7YnJlYWs7Y2FzZSJMYXVuY2giOmNhc2UiR29Ub1IiOmNvbnN0IGw9bi5nZXQoIkYiKTtpZihsIGluc3RhbmNlb2YgRGljdCl7Y29uc3QgZT1uZXcgRmlsZVNwZWMobCxudWxsLCEwKSx7cmF3RmlsZW5hbWU6dH09ZS5zZXJpYWxpemFibGU7cj10fWVsc2Uic3RyaW5nIj09dHlwZW9mIGwmJihyPWwpO2NvbnN0IGg9ZmV0Y2hSZW1vdGVEZXN0KG4pO2gmJiJzdHJpbmciPT10eXBlb2YgciYmKHI9ci5zcGxpdCgiIyIsMSlbMF0rIiMiK2gpO2NvbnN0IEM9bi5nZXQoIk5ld1dpbmRvdyIpOyJib29sZWFuIj09dHlwZW9mIEMmJih0Lm5ld1dpbmRvdz1DKTticmVhaztjYXNlIkdvVG9FIjpjb25zdCBRPW4uZ2V0KCJUIik7bGV0IEU7aWYoYSYmUSBpbnN0YW5jZW9mIERpY3Qpe2NvbnN0IGU9US5nZXQoIlIiKSx0PVEuZ2V0KCJOIik7aXNOYW1lKGUsIkMiKSYmInN0cmluZyI9PXR5cGVvZiB0JiYoRT1hW3N0cmluZ1RvUERGU3RyaW5nKHQpXSl9aWYoRSl7dC5hdHRhY2htZW50PUU7Y29uc3QgZT1mZXRjaFJlbW90ZURlc3Qobik7ZSYmKHQuYXR0YWNobWVudERlc3Q9ZSl9ZWxzZSB3YXJuKCdwYXJzZURlc3REaWN0aW9uYXJ5IC0gdW5pbXBsZW1lbnRlZCAiR29Ub0UiIGFjdGlvbi4nKTticmVhaztjYXNlIk5hbWVkIjpjb25zdCB1PW4uZ2V0KCJOIik7dSBpbnN0YW5jZW9mIE5hbWUmJih0LmFjdGlvbj11Lm5hbWUpO2JyZWFrO2Nhc2UiU2V0T0NHU3RhdGUiOmNvbnN0IGQ9bi5nZXQoIlN0YXRlIiksZj1uLmdldCgiUHJlc2VydmVSQiIpO2lmKCFBcnJheS5pc0FycmF5KGQpfHwwPT09ZC5sZW5ndGgpYnJlYWs7Y29uc3QgcD1bXTtmb3IoY29uc3QgZSBvZiBkKWlmKGUgaW5zdGFuY2VvZiBOYW1lKXN3aXRjaChlLm5hbWUpe2Nhc2UiT04iOmNhc2UiT0ZGIjpjYXNlIlRvZ2dsZSI6cC5wdXNoKGUubmFtZSl9ZWxzZSBlIGluc3RhbmNlb2YgUmVmJiZwLnB1c2goZS50b1N0cmluZygpKTtpZihwLmxlbmd0aCE9PWQubGVuZ3RoKWJyZWFrO3Quc2V0T0NHU3RhdGU9e3N0YXRlOnAscHJlc2VydmVSQjoiYm9vbGVhbiIhPXR5cGVvZiBmfHxmfTticmVhaztjYXNlIkphdmFTY3JpcHQiOmNvbnN0IG09bi5nZXQoIkpTIik7bGV0IHk7bSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0/eT1tLmdldFN0cmluZygpOiJzdHJpbmciPT10eXBlb2YgbSYmKHk9bSk7Y29uc3Qgdz15JiZyZWNvdmVySnNVUkwoc3RyaW5nVG9QREZTdHJpbmcoeSkpO2lmKHcpe3I9dy51cmw7dC5uZXdXaW5kb3c9dy5uZXdXaW5kb3c7YnJlYWt9ZGVmYXVsdDppZigiSmF2YVNjcmlwdCI9PT1pfHwiU3VibWl0Rm9ybSI9PT1pKWJyZWFrO3dhcm4oYHBhcnNlRGVzdERpY3Rpb25hcnkgLSB1bnN1cHBvcnRlZCBhY3Rpb246ICIke2l9Ii5gKX19ZWxzZSBlLmhhcygiRGVzdCIpJiYocz1lLmdldCgiRGVzdCIpKTtpZigic3RyaW5nIj09dHlwZW9mIHIpe2NvbnN0IGU9Y3JlYXRlVmFsaWRBYnNvbHV0ZVVybChyLGkse2FkZERlZmF1bHRQcm90b2NvbDohMCx0cnlDb252ZXJ0RW5jb2Rpbmc6ITB9KTtlJiYodC51cmw9ZS5ocmVmKTt0LnVuc2FmZVVybD1yfWlmKHMpe3MgaW5zdGFuY2VvZiBOYW1lJiYocz1zLm5hbWUpOyJzdHJpbmciPT10eXBlb2Ygcz90LmRlc3Q9c3RyaW5nVG9QREZTdHJpbmcocyk6aXNWYWxpZEV4cGxpY2l0RGVzdChzKSYmKHQuZGVzdD1zKX19fWZ1bmN0aW9uIGFkZENoaWxkcmVuKGUsdCl7aWYoZSBpbnN0YW5jZW9mIERpY3QpZT1lLmdldFJhd1ZhbHVlcygpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pZT1lLmRpY3QuZ2V0UmF3VmFsdWVzKCk7ZWxzZSBpZighQXJyYXkuaXNBcnJheShlKSlyZXR1cm47Zm9yKGNvbnN0IGEgb2YgZSkoKGk9YSlpbnN0YW5jZW9mIFJlZnx8aSBpbnN0YW5jZW9mIERpY3R8fGkgaW5zdGFuY2VvZiBCYXNlU3RyZWFtfHxBcnJheS5pc0FycmF5KGkpKSYmdC5wdXNoKGEpO3ZhciBpfWNsYXNzIE9iamVjdExvYWRlcntjb25zdHJ1Y3RvcihlLHQsaSl7dGhpcy5kaWN0PWU7dGhpcy5rZXlzPXQ7dGhpcy54cmVmPWk7dGhpcy5yZWZTZXQ9bnVsbH1hc3luYyBsb2FkKCl7aWYodGhpcy54cmVmLnN0cmVhbS5pc0RhdGFMb2FkZWQpcmV0dXJuO2NvbnN0e2tleXM6ZSxkaWN0OnR9PXRoaXM7dGhpcy5yZWZTZXQ9bmV3IFJlZlNldDtjb25zdCBpPVtdO2Zvcihjb25zdCBhIG9mIGUpe2NvbnN0IGU9dC5nZXRSYXcoYSk7dm9pZCAwIT09ZSYmaS5wdXNoKGUpfXJldHVybiB0aGlzLl93YWxrKGkpfWFzeW5jIF93YWxrKGUpe2NvbnN0IHQ9W10saT1bXTtmb3IoO2UubGVuZ3RoOyl7bGV0IGE9ZS5wb3AoKTtpZihhIGluc3RhbmNlb2YgUmVmKXtpZih0aGlzLnJlZlNldC5oYXMoYSkpY29udGludWU7dHJ5e3RoaXMucmVmU2V0LnB1dChhKTthPXRoaXMueHJlZi5mZXRjaChhKX1jYXRjaChlKXtpZighKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbikpe3dhcm4oYE9iamVjdExvYWRlci5fd2FsayAtIHJlcXVlc3RpbmcgYWxsIGRhdGE6ICIke2V9Ii5gKTt0aGlzLnJlZlNldD1udWxsO2NvbnN0e21hbmFnZXI6dH09dGhpcy54cmVmLnN0cmVhbTtyZXR1cm4gdC5yZXF1ZXN0QWxsQ2h1bmtzKCl9dC5wdXNoKGEpO2kucHVzaCh7YmVnaW46ZS5iZWdpbixlbmQ6ZS5lbmR9KX19aWYoYSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pe2NvbnN0IGU9YS5nZXRCYXNlU3RyZWFtcygpO2lmKGUpe2xldCByPSExO2Zvcihjb25zdCB0IG9mIGUpaWYoIXQuaXNEYXRhTG9hZGVkKXtyPSEwO2kucHVzaCh7YmVnaW46dC5zdGFydCxlbmQ6dC5lbmR9KX1yJiZ0LnB1c2goYSl9fWFkZENoaWxkcmVuKGEsZSl9aWYoaS5sZW5ndGgpe2F3YWl0IHRoaXMueHJlZi5zdHJlYW0ubWFuYWdlci5yZXF1ZXN0UmFuZ2VzKGkpO2Zvcihjb25zdCBlIG9mIHQpZSBpbnN0YW5jZW9mIFJlZiYmdGhpcy5yZWZTZXQucmVtb3ZlKGUpO3JldHVybiB0aGlzLl93YWxrKHQpfXRoaXMucmVmU2V0PW51bGx9fWNvbnN0IEpyPVN5bWJvbCgpLHZyPVN5bWJvbCgpLFlyPVN5bWJvbCgpLEtyPVN5bWJvbCgpLFRyPVN5bWJvbCgpLHFyPVN5bWJvbCgpLE9yPVN5bWJvbCgpLFByPVN5bWJvbCgpLFdyPVN5bWJvbCgpLGpyPVN5bWJvbCgiY29udGVudCIpLFhyPVN5bWJvbCgiZGF0YSIpLFZyPVN5bWJvbCgpLFpyPVN5bWJvbCgiZXh0cmEiKSxfcj1TeW1ib2woKSx6cj1TeW1ib2woKSwkcj1TeW1ib2woKSxBcz1TeW1ib2woKSxlcz1TeW1ib2woKSx0cz1TeW1ib2woKSxpcz1TeW1ib2woKSxhcz1TeW1ib2woKSxycz1TeW1ib2woKSxzcz1TeW1ib2woKSxucz1TeW1ib2woKSxvcz1TeW1ib2woKSxncz1TeW1ib2woKSxJcz1TeW1ib2woKSxjcz1TeW1ib2woKSxscz1TeW1ib2woKSxocz1TeW1ib2woKSxDcz1TeW1ib2woKSxCcz1TeW1ib2woKSxRcz1TeW1ib2woKSxFcz1TeW1ib2woKSx1cz1TeW1ib2woKSxkcz1TeW1ib2woKSxmcz1TeW1ib2woKSxwcz1TeW1ib2woKSxtcz1TeW1ib2woKSx5cz1TeW1ib2woKSx3cz1TeW1ib2woKSxicz1TeW1ib2woKSxEcz1TeW1ib2woKSxGcz1TeW1ib2woKSxTcz1TeW1ib2woKSxrcz1TeW1ib2woIm5hbWVzcGFjZUlkIiksUnM9U3ltYm9sKCJub2RlTmFtZSIpLE5zPVN5bWJvbCgpLEdzPVN5bWJvbCgpLE1zPVN5bWJvbCgpLFVzPVN5bWJvbCgpLHhzPVN5bWJvbCgpLExzPVN5bWJvbCgpLEhzPVN5bWJvbCgpLEpzPVN5bWJvbCgpLHZzPVN5bWJvbCgicm9vdCIpLFlzPVN5bWJvbCgpLEtzPVN5bWJvbCgpLFRzPVN5bWJvbCgpLHFzPVN5bWJvbCgpLE9zPVN5bWJvbCgpLFdzPVN5bWJvbCgpLGpzPVN5bWJvbCgpLFhzPVN5bWJvbCgpLFZzPVN5bWJvbCgpLFpzPVN5bWJvbCgpLF9zPVN5bWJvbCgpLHpzPVN5bWJvbCgidWlkIiksJHM9U3ltYm9sKCksQW49e2NvbmZpZzp7aWQ6MCxjaGVjazplPT5lLnN0YXJ0c1dpdGgoImh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGNpLyIpfSxjb25uZWN0aW9uU2V0OntpZDoxLGNoZWNrOmU9PmUuc3RhcnRzV2l0aCgiaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtY29ubmVjdGlvbi1zZXQvIil9LGRhdGFzZXRzOntpZDoyLGNoZWNrOmU9PmUuc3RhcnRzV2l0aCgiaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtZGF0YS8iKX0sZm9ybTp7aWQ6MyxjaGVjazplPT5lLnN0YXJ0c1dpdGgoImh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLWZvcm0vIil9LGxvY2FsZVNldDp7aWQ6NCxjaGVjazplPT5lLnN0YXJ0c1dpdGgoImh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLWxvY2FsZS1zZXQvIil9LHBkZjp7aWQ6NSxjaGVjazplPT4iaHR0cDovL25zLmFkb2JlLmNvbS94ZHAvcGRmLyI9PT1lfSxzaWduYXR1cmU6e2lkOjYsY2hlY2s6ZT0+Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPT09ZX0sc291cmNlU2V0OntpZDo3LGNoZWNrOmU9PmUuc3RhcnRzV2l0aCgiaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtc291cmNlLXNldC8iKX0sc3R5bGVzaGVldDp7aWQ6OCxjaGVjazplPT4iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtIj09PWV9LHRlbXBsYXRlOntpZDo5LGNoZWNrOmU9PmUuc3RhcnRzV2l0aCgiaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtdGVtcGxhdGUvIil9LHhkYzp7aWQ6MTAsY2hlY2s6ZT0+ZS5zdGFydHNXaXRoKCJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hkYy8iKX0seGRwOntpZDoxMSxjaGVjazplPT4iaHR0cDovL25zLmFkb2JlLmNvbS94ZHAvIj09PWV9LHhmZGY6e2lkOjEyLGNoZWNrOmU9PiJodHRwOi8vbnMuYWRvYmUuY29tL3hmZGYvIj09PWV9LHhodG1sOntpZDoxMyxjaGVjazplPT4iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI9PT1lfSx4bXBtZXRhOntpZDoxNCxjaGVjazplPT4iaHR0cDovL25zLmFkb2JlLmNvbS94bXBtZXRhLyI9PT1lfX0sZW49e3B0OmU9PmUsY206ZT0+ZS8yLjU0KjcyLG1tOmU9PmUvMjUuNCo3MixpbjplPT43MiplLHB4OmU9PmV9LHRuPS8oWystXT9cZCtcLj9cZCopKC4qKS87ZnVuY3Rpb24gc3RyaXBRdW90ZXMoZSl7cmV0dXJuIGUuc3RhcnRzV2l0aCgiJyIpfHxlLnN0YXJ0c1dpdGgoJyInKT9lLnNsaWNlKDEsLTEpOmV9ZnVuY3Rpb24gZ2V0SW50ZWdlcih7ZGF0YTplLGRlZmF1bHRWYWx1ZTp0LHZhbGlkYXRlOml9KXtpZighZSlyZXR1cm4gdDtlPWUudHJpbSgpO2NvbnN0IGE9cGFyc2VJbnQoZSwxMCk7cmV0dXJuIWlzTmFOKGEpJiZpKGEpP2E6dH1mdW5jdGlvbiBnZXRGbG9hdCh7ZGF0YTplLGRlZmF1bHRWYWx1ZTp0LHZhbGlkYXRlOml9KXtpZighZSlyZXR1cm4gdDtlPWUudHJpbSgpO2NvbnN0IGE9cGFyc2VGbG9hdChlKTtyZXR1cm4haXNOYU4oYSkmJmkoYSk/YTp0fWZ1bmN0aW9uIGdldEtleXdvcmQoe2RhdGE6ZSxkZWZhdWx0VmFsdWU6dCx2YWxpZGF0ZTppfSl7cmV0dXJuIGUmJmkoZT1lLnRyaW0oKSk/ZTp0fWZ1bmN0aW9uIGdldFN0cmluZ09wdGlvbihlLHQpe3JldHVybiBnZXRLZXl3b3JkKHtkYXRhOmUsZGVmYXVsdFZhbHVlOnRbMF0sdmFsaWRhdGU6ZT0+dC5pbmNsdWRlcyhlKX0pfWZ1bmN0aW9uIGdldE1lYXN1cmVtZW50KGUsdD0iMCIpe3R8fD0iMCI7aWYoIWUpcmV0dXJuIGdldE1lYXN1cmVtZW50KHQpO2NvbnN0IGk9ZS50cmltKCkubWF0Y2godG4pO2lmKCFpKXJldHVybiBnZXRNZWFzdXJlbWVudCh0KTtjb25zdFssYSxyXT1pLHM9cGFyc2VGbG9hdChhKTtpZihpc05hTihzKSlyZXR1cm4gZ2V0TWVhc3VyZW1lbnQodCk7aWYoMD09PXMpcmV0dXJuIDA7Y29uc3Qgbj1lbltyXTtyZXR1cm4gbj9uKHMpOnN9ZnVuY3Rpb24gZ2V0UmF0aW8oZSl7aWYoIWUpcmV0dXJue251bToxLGRlbjoxfTtjb25zdCB0PWUudHJpbSgpLnNwbGl0KC9ccyo6XHMqLykubWFwKChlPT5wYXJzZUZsb2F0KGUpKSkuZmlsdGVyKChlPT4haXNOYU4oZSkpKTsxPT09dC5sZW5ndGgmJnQucHVzaCgxKTtpZigwPT09dC5sZW5ndGgpcmV0dXJue251bToxLGRlbjoxfTtjb25zdFtpLGFdPXQ7cmV0dXJue251bTppLGRlbjphfX1mdW5jdGlvbiBnZXRSZWxldmFudChlKXtyZXR1cm4gZT9lLnRyaW0oKS5zcGxpdCgvXHMrLykubWFwKChlPT4oe2V4Y2x1ZGVkOiItIj09PWVbMF0sdmlld25hbWU6ZS5zdWJzdHJpbmcoMSl9KSkpOltdfWNsYXNzIEhUTUxSZXN1bHR7c3RhdGljIGdldCBGQUlMVVJFKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJGQUlMVVJFIixuZXcgSFRNTFJlc3VsdCghMSxudWxsLG51bGwsbnVsbCkpfXN0YXRpYyBnZXQgRU1QVFkoKXtyZXR1cm4gc2hhZG93KHRoaXMsIkVNUFRZIixuZXcgSFRNTFJlc3VsdCghMCxudWxsLG51bGwsbnVsbCkpfWNvbnN0cnVjdG9yKGUsdCxpLGEpe3RoaXMuc3VjY2Vzcz1lO3RoaXMuaHRtbD10O3RoaXMuYmJveD1pO3RoaXMuYnJlYWtOb2RlPWF9aXNCcmVhaygpe3JldHVybiEhdGhpcy5icmVha05vZGV9c3RhdGljIGJyZWFrTm9kZShlKXtyZXR1cm4gbmV3IEhUTUxSZXN1bHQoITEsbnVsbCxudWxsLGUpfXN0YXRpYyBzdWNjZXNzKGUsdD1udWxsKXtyZXR1cm4gbmV3IEhUTUxSZXN1bHQoITAsZSx0LG51bGwpfX1jbGFzcyBGb250RmluZGVye2NvbnN0cnVjdG9yKGUpe3RoaXMuZm9udHM9bmV3IE1hcDt0aGlzLmNhY2hlPW5ldyBNYXA7dGhpcy53YXJuZWQ9bmV3IFNldDt0aGlzLmRlZmF1bHRGb250PW51bGw7dGhpcy5hZGQoZSl9YWRkKGUsdD1udWxsKXtmb3IoY29uc3QgdCBvZiBlKXRoaXMuYWRkUGRmRm9udCh0KTtmb3IoY29uc3QgZSBvZiB0aGlzLmZvbnRzLnZhbHVlcygpKWUucmVndWxhcnx8KGUucmVndWxhcj1lLml0YWxpY3x8ZS5ib2xkfHxlLmJvbGRpdGFsaWMpO2lmKCF0fHwwPT09dC5zaXplKXJldHVybjtjb25zdCBpPXRoaXMuZm9udHMuZ2V0KCJQZGZKUy1GYWxsYmFjay1QZGZKUy1YRkEiKTtmb3IoY29uc3QgZSBvZiB0KXRoaXMuZm9udHMuc2V0KGUsaSl9YWRkUGRmRm9udChlKXtjb25zdCB0PWUuY3NzRm9udEluZm8saT10LmZvbnRGYW1pbHk7bGV0IGE9dGhpcy5mb250cy5nZXQoaSk7aWYoIWEpe2E9T2JqZWN0LmNyZWF0ZShudWxsKTt0aGlzLmZvbnRzLnNldChpLGEpO3RoaXMuZGVmYXVsdEZvbnR8fCh0aGlzLmRlZmF1bHRGb250PWEpfWxldCByPSIiO2NvbnN0IHM9cGFyc2VGbG9hdCh0LmZvbnRXZWlnaHQpOzAhPT1wYXJzZUZsb2F0KHQuaXRhbGljQW5nbGUpP3I9cz49NzAwPyJib2xkaXRhbGljIjoiaXRhbGljIjpzPj03MDAmJihyPSJib2xkIik7aWYoIXIpeyhlLm5hbWUuaW5jbHVkZXMoIkJvbGQiKXx8ZS5wc05hbWU/LmluY2x1ZGVzKCJCb2xkIikpJiYocj0iYm9sZCIpOyhlLm5hbWUuaW5jbHVkZXMoIkl0YWxpYyIpfHxlLm5hbWUuZW5kc1dpdGgoIkl0Iil8fGUucHNOYW1lPy5pbmNsdWRlcygiSXRhbGljIil8fGUucHNOYW1lPy5lbmRzV2l0aCgiSXQiKSkmJihyKz0iaXRhbGljIil9cnx8KHI9InJlZ3VsYXIiKTthW3JdPWV9Z2V0RGVmYXVsdCgpe3JldHVybiB0aGlzLmRlZmF1bHRGb250fWZpbmQoZSx0PSEwKXtsZXQgaT10aGlzLmZvbnRzLmdldChlKXx8dGhpcy5jYWNoZS5nZXQoZSk7aWYoaSlyZXR1cm4gaTtjb25zdCBhPS8sfC18X3wgfGJvbGRpdGFsaWN8Ym9sZHxpdGFsaWN8cmVndWxhcnxpdC9naTtsZXQgcj1lLnJlcGxhY2VBbGwoYSwiIik7aT10aGlzLmZvbnRzLmdldChyKTtpZihpKXt0aGlzLmNhY2hlLnNldChlLGkpO3JldHVybiBpfXI9ci50b0xvd2VyQ2FzZSgpO2NvbnN0IHM9W107Zm9yKGNvbnN0W2UsdF1vZiB0aGlzLmZvbnRzLmVudHJpZXMoKSllLnJlcGxhY2VBbGwoYSwiIikudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKHIpJiZzLnB1c2godCk7aWYoMD09PXMubGVuZ3RoKWZvcihjb25zdFssZV1vZiB0aGlzLmZvbnRzLmVudHJpZXMoKSllLnJlZ3VsYXIubmFtZT8ucmVwbGFjZUFsbChhLCIiKS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgocikmJnMucHVzaChlKTtpZigwPT09cy5sZW5ndGgpe3I9ci5yZXBsYWNlQWxsKC9wc210fG10L2dpLCIiKTtmb3IoY29uc3RbZSx0XW9mIHRoaXMuZm9udHMuZW50cmllcygpKWUucmVwbGFjZUFsbChhLCIiKS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgocikmJnMucHVzaCh0KX1pZigwPT09cy5sZW5ndGgpZm9yKGNvbnN0IGUgb2YgdGhpcy5mb250cy52YWx1ZXMoKSllLnJlZ3VsYXIubmFtZT8ucmVwbGFjZUFsbChhLCIiKS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgocikmJnMucHVzaChlKTtpZihzLmxlbmd0aD49MSl7MSE9PXMubGVuZ3RoJiZ0JiZ3YXJuKGBYRkEgLSBUb28gbWFueSBjaG9pY2VzIHRvIGd1ZXNzIHRoZSBjb3JyZWN0IGZvbnQ6ICR7ZX1gKTt0aGlzLmNhY2hlLnNldChlLHNbMF0pO3JldHVybiBzWzBdfWlmKHQmJiF0aGlzLndhcm5lZC5oYXMoZSkpe3RoaXMud2FybmVkLmFkZChlKTt3YXJuKGBYRkEgLSBDYW5ub3QgZmluZCB0aGUgZm9udDogJHtlfWApfXJldHVybiBudWxsfX1mdW5jdGlvbiBzZWxlY3RGb250KGUsdCl7cmV0dXJuIml0YWxpYyI9PT1lLnBvc3R1cmU/ImJvbGQiPT09ZS53ZWlnaHQ/dC5ib2xkaXRhbGljOnQuaXRhbGljOiJib2xkIj09PWUud2VpZ2h0P3QuYm9sZDp0LnJlZ3VsYXJ9Y2xhc3MgRm9udEluZm97Y29uc3RydWN0b3IoZSx0LGksYSl7dGhpcy5saW5lSGVpZ2h0PWk7dGhpcy5wYXJhTWFyZ2luPXR8fHt0b3A6MCxib3R0b206MCxsZWZ0OjAscmlnaHQ6MH07aWYoIWUpe1t0aGlzLnBkZkZvbnQsdGhpcy54ZmFGb250XT10aGlzLmRlZmF1bHRGb250KGEpO3JldHVybn10aGlzLnhmYUZvbnQ9e3R5cGVmYWNlOmUudHlwZWZhY2UscG9zdHVyZTplLnBvc3R1cmUsd2VpZ2h0OmUud2VpZ2h0LHNpemU6ZS5zaXplLGxldHRlclNwYWNpbmc6ZS5sZXR0ZXJTcGFjaW5nfTtjb25zdCByPWEuZmluZChlLnR5cGVmYWNlKTtpZihyKXt0aGlzLnBkZkZvbnQ9c2VsZWN0Rm9udChlLHIpO3RoaXMucGRmRm9udHx8KFt0aGlzLnBkZkZvbnQsdGhpcy54ZmFGb250XT10aGlzLmRlZmF1bHRGb250KGEpKX1lbHNlW3RoaXMucGRmRm9udCx0aGlzLnhmYUZvbnRdPXRoaXMuZGVmYXVsdEZvbnQoYSl9ZGVmYXVsdEZvbnQoZSl7Y29uc3QgdD1lLmZpbmQoIkhlbHZldGljYSIsITEpfHxlLmZpbmQoIk15cmlhZCBQcm8iLCExKXx8ZS5maW5kKCJBcmlhbCIsITEpfHxlLmdldERlZmF1bHQoKTtpZih0Py5yZWd1bGFyKXtjb25zdCBlPXQucmVndWxhcjtyZXR1cm5bZSx7dHlwZWZhY2U6ZS5jc3NGb250SW5mby5mb250RmFtaWx5LHBvc3R1cmU6Im5vcm1hbCIsd2VpZ2h0OiJub3JtYWwiLHNpemU6MTAsbGV0dGVyU3BhY2luZzowfV19cmV0dXJuW251bGwse3R5cGVmYWNlOiJDb3VyaWVyIixwb3N0dXJlOiJub3JtYWwiLHdlaWdodDoibm9ybWFsIixzaXplOjEwLGxldHRlclNwYWNpbmc6MH1dfX1jbGFzcyBGb250U2VsZWN0b3J7Y29uc3RydWN0b3IoZSx0LGksYSl7dGhpcy5mb250RmluZGVyPWE7dGhpcy5zdGFjaz1bbmV3IEZvbnRJbmZvKGUsdCxpLGEpXX1wdXNoRGF0YShlLHQsaSl7Y29uc3QgYT10aGlzLnN0YWNrLmF0KC0xKTtmb3IoY29uc3QgdCBvZlsidHlwZWZhY2UiLCJwb3N0dXJlIiwid2VpZ2h0Iiwic2l6ZSIsImxldHRlclNwYWNpbmciXSllW3RdfHwoZVt0XT1hLnhmYUZvbnRbdF0pO2Zvcihjb25zdCBlIG9mWyJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiXSlpc05hTih0W2VdKSYmKHRbZV09YS5wYXJhTWFyZ2luW2VdKTtjb25zdCByPW5ldyBGb250SW5mbyhlLHQsaXx8YS5saW5lSGVpZ2h0LHRoaXMuZm9udEZpbmRlcik7ci5wZGZGb250fHwoci5wZGZGb250PWEucGRmRm9udCk7dGhpcy5zdGFjay5wdXNoKHIpfXBvcEZvbnQoKXt0aGlzLnN0YWNrLnBvcCgpfXRvcEZvbnQoKXtyZXR1cm4gdGhpcy5zdGFjay5hdCgtMSl9fWNsYXNzIFRleHRNZWFzdXJle2NvbnN0cnVjdG9yKGUsdCxpLGEpe3RoaXMuZ2x5cGhzPVtdO3RoaXMuZm9udFNlbGVjdG9yPW5ldyBGb250U2VsZWN0b3IoZSx0LGksYSk7dGhpcy5leHRyYUhlaWdodD0wfXB1c2hEYXRhKGUsdCxpKXt0aGlzLmZvbnRTZWxlY3Rvci5wdXNoRGF0YShlLHQsaSl9cG9wRm9udChlKXtyZXR1cm4gdGhpcy5mb250U2VsZWN0b3IucG9wRm9udCgpfWFkZFBhcmEoKXtjb25zdCBlPXRoaXMuZm9udFNlbGVjdG9yLnRvcEZvbnQoKTt0aGlzLmV4dHJhSGVpZ2h0Kz1lLnBhcmFNYXJnaW4udG9wK2UucGFyYU1hcmdpbi5ib3R0b219YWRkU3RyaW5nKGUpe2lmKCFlKXJldHVybjtjb25zdCB0PXRoaXMuZm9udFNlbGVjdG9yLnRvcEZvbnQoKSxpPXQueGZhRm9udC5zaXplO2lmKHQucGRmRm9udCl7Y29uc3QgYT10LnhmYUZvbnQubGV0dGVyU3BhY2luZyxyPXQucGRmRm9udCxzPXIubGluZUhlaWdodHx8MS4yLG49dC5saW5lSGVpZ2h0fHxNYXRoLm1heCgxLjIscykqaSxvPXMtKHZvaWQgMD09PXIubGluZUdhcD8uMjpyLmxpbmVHYXApLGc9TWF0aC5tYXgoMSxvKSppLGM9aS8xZTMsbD1yLmRlZmF1bHRXaWR0aHx8ci5jaGFyc1RvR2x5cGhzKCIgIilbMF0ud2lkdGg7Zm9yKGNvbnN0IHQgb2YgZS5zcGxpdCgvW1x1MjAyOVxuXS8pKXtjb25zdCBlPXIuZW5jb2RlU3RyaW5nKHQpLmpvaW4oIiIpLGk9ci5jaGFyc1RvR2x5cGhzKGUpO2Zvcihjb25zdCBlIG9mIGkpe2NvbnN0IHQ9ZS53aWR0aHx8bDt0aGlzLmdseXBocy5wdXNoKFt0KmMrYSxuLGcsZS51bmljb2RlLCExXSl9dGhpcy5nbHlwaHMucHVzaChbMCwwLDAsIlxuIiwhMF0pfXRoaXMuZ2x5cGhzLnBvcCgpfWVsc2V7Zm9yKGNvbnN0IHQgb2YgZS5zcGxpdCgvW1x1MjAyOVxuXS8pKXtmb3IoY29uc3QgZSBvZiB0LnNwbGl0KCIiKSl0aGlzLmdseXBocy5wdXNoKFtpLDEuMippLGksZSwhMV0pO3RoaXMuZ2x5cGhzLnB1c2goWzAsMCwwLCJcbiIsITBdKX10aGlzLmdseXBocy5wb3AoKX19Y29tcHV0ZShlKXtsZXQgdD0tMSxpPTAsYT0wLHI9MCxzPTAsbj0wLG89ITEsZz0hMDtmb3IobGV0IGM9MCxsPXRoaXMuZ2x5cGhzLmxlbmd0aDtjPGw7YysrKXtjb25zdFtsLGgsQyxRLEVdPXRoaXMuZ2x5cGhzW2NdLHU9IiAiPT09USxkPWc/QzpoO2lmKEUpe2E9TWF0aC5tYXgoYSxzKTtzPTA7cis9bjtuPWQ7dD0tMTtpPTA7Zz0hMX1lbHNlIGlmKHUpaWYocytsPmUpe2E9TWF0aC5tYXgoYSxzKTtzPTA7cis9bjtuPWQ7dD0tMTtpPTA7bz0hMDtnPSExfWVsc2V7bj1NYXRoLm1heChkLG4pO2k9cztzKz1sO3Q9Y31lbHNlIGlmKHMrbD5lKXtyKz1uO249ZDtpZigtMSE9PXQpe2M9dDthPU1hdGgubWF4KGEsaSk7cz0wO3Q9LTE7aT0wfWVsc2V7YT1NYXRoLm1heChhLHMpO3M9bH1vPSEwO2c9ITF9ZWxzZXtzKz1sO249TWF0aC5tYXgoZCxuKX19YT1NYXRoLm1heChhLHMpO3IrPW4rdGhpcy5leHRyYUhlaWdodDtyZXR1cm57d2lkdGg6MS4wMiphLGhlaWdodDpyLGlzQnJva2VuOm99fX1jb25zdCBhbj0vXlteLltdKy8scm49L15bXlxdXSsvLHNuPTAsbm49MSxvbj0yLGduPTMsSW49NCxjbj1uZXcgTWFwKFtbIiRkYXRhIiwoZSx0KT0+ZS5kYXRhc2V0cz9lLmRhdGFzZXRzLmRhdGE6ZV0sWyIkcmVjb3JkIiwoZSx0KT0+KGUuZGF0YXNldHM/ZS5kYXRhc2V0cy5kYXRhOmUpW29zXSgpWzBdXSxbIiR0ZW1wbGF0ZSIsKGUsdCk9PmUudGVtcGxhdGVdLFsiJGNvbm5lY3Rpb25TZXQiLChlLHQpPT5lLmNvbm5lY3Rpb25TZXRdLFsiJGZvcm0iLChlLHQpPT5lLmZvcm1dLFsiJGxheW91dCIsKGUsdCk9PmUubGF5b3V0XSxbIiRob3N0IiwoZSx0KT0+ZS5ob3N0XSxbIiRkYXRhV2luZG93IiwoZSx0KT0+ZS5kYXRhV2luZG93XSxbIiRldmVudCIsKGUsdCk9PmUuZXZlbnRdLFsiISIsKGUsdCk9PmUuZGF0YXNldHNdLFsiJHhmYSIsKGUsdCk9PmVdLFsieGZhIiwoZSx0KT0+ZV0sWyIkIiwoZSx0KT0+dF1dKSxsbj1uZXcgV2Vha01hcDtmdW5jdGlvbiBwYXJzZUV4cHJlc3Npb24oZSx0LGk9ITApe2xldCBhPWUubWF0Y2goYW4pO2lmKCFhKXJldHVybiBudWxsO2xldFtyXT1hO2NvbnN0IHM9W3tuYW1lOnIsY2FjaGVOYW1lOiIuIityLGluZGV4OjAsanM6bnVsbCxmb3JtQ2FsYzpudWxsLG9wZXJhdG9yOnNufV07bGV0IG49ci5sZW5ndGg7Zm9yKDtuPGUubGVuZ3RoOyl7Y29uc3QgZz1uO2lmKCJbIj09PWUuY2hhckF0KG4rKykpe2E9ZS5zbGljZShuKS5tYXRjaChybik7aWYoIWEpe3dhcm4oIlhGQSAtIEludmFsaWQgaW5kZXggaW4gU09NIGV4cHJlc3Npb24iKTtyZXR1cm4gbnVsbH1zLmF0KC0xKS5pbmRleD0iKiI9PT0obz0obz1hWzBdKS50cmltKCkpPzEvMDpwYXJzZUludChvLDEwKXx8MDtuKz1hWzBdLmxlbmd0aCsxO2NvbnRpbnVlfWxldCBjO3N3aXRjaChlLmNoYXJBdChuKSl7Y2FzZSIuIjppZighdClyZXR1cm4gbnVsbDtuKys7Yz1ubjticmVhaztjYXNlIiMiOm4rKztjPW9uO2JyZWFrO2Nhc2UiWyI6aWYoaSl7d2FybigiWEZBIC0gU09NIGV4cHJlc3Npb24gY29udGFpbnMgYSBGb3JtQ2FsYyBzdWJleHByZXNzaW9uIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIG5vdy4iKTtyZXR1cm4gbnVsbH1jPWduO2JyZWFrO2Nhc2UiKCI6aWYoaSl7d2FybigiWEZBIC0gU09NIGV4cHJlc3Npb24gY29udGFpbnMgYSBKYXZhU2NyaXB0IHN1YmV4cHJlc3Npb24gd2hpY2ggaXMgbm90IHN1cHBvcnRlZCBmb3Igbm93LiIpO3JldHVybiBudWxsfWM9SW47YnJlYWs7ZGVmYXVsdDpjPXNufWE9ZS5zbGljZShuKS5tYXRjaChhbik7aWYoIWEpYnJlYWs7W3JdPWE7bis9ci5sZW5ndGg7cy5wdXNoKHtuYW1lOnIsY2FjaGVOYW1lOmUuc2xpY2UoZyxuKSxvcGVyYXRvcjpjLGluZGV4OjAsanM6bnVsbCxmb3JtQ2FsYzpudWxsfSl9dmFyIG87cmV0dXJuIHN9ZnVuY3Rpb24gc2VhcmNoTm9kZShlLHQsaSxhPSEwLHI9ITApe2NvbnN0IHM9cGFyc2VFeHByZXNzaW9uKGksYSk7aWYoIXMpcmV0dXJuIG51bGw7Y29uc3Qgbj1jbi5nZXQoc1swXS5uYW1lKTtsZXQgbyxnPTA7aWYobil7bz0hMDtlPVtuKGUsdCldO2c9MX1lbHNle289bnVsbD09PXQ7ZT1bdHx8ZV19Zm9yKGxldCBpPXMubGVuZ3RoO2c8aTtnKyspe2NvbnN0e25hbWU6aSxjYWNoZU5hbWU6YSxvcGVyYXRvcjpuLGluZGV4OmN9PXNbZ10sbD1bXTtmb3IoY29uc3QgdCBvZiBlKXtpZighdC5pc1hGQU9iamVjdCljb250aW51ZTtsZXQgZSxzO2lmKHIpe3M9bG4uZ2V0KHQpO2lmKCFzKXtzPW5ldyBNYXA7bG4uc2V0KHQscyl9ZT1zLmdldChhKX1pZighZSl7c3dpdGNoKG4pe2Nhc2Ugc246ZT10W2lzXShpLCExKTticmVhaztjYXNlIG5uOmU9dFtpc10oaSwhMCk7YnJlYWs7Y2FzZSBvbjplPXRbdHNdKGkpO2U9ZS5pc1hGQU9iamVjdEFycmF5P2UuY2hpbGRyZW46W2VdfXImJnMuc2V0KGEsZSl9ZS5sZW5ndGg+MCYmbC5wdXNoKGUpfWlmKDAhPT1sLmxlbmd0aHx8b3x8MCE9PWcpZT1pc0Zpbml0ZShjKT9sLmZpbHRlcigoZT0+YzxlLmxlbmd0aCkpLm1hcCgoZT0+ZVtjXSkpOmwuZmxhdCgpO2Vsc2V7Y29uc3QgaT10W2xzXSgpO2lmKCEodD1pKSlyZXR1cm4gbnVsbDtnPS0xO2U9W3RdfX1yZXR1cm4gMD09PWUubGVuZ3RoP251bGw6ZX1mdW5jdGlvbiBjcmVhdGVEYXRhTm9kZShlLHQsaSl7Y29uc3QgYT1wYXJzZUV4cHJlc3Npb24oaSk7aWYoIWEpcmV0dXJuIG51bGw7aWYoYS5zb21lKChlPT5lLm9wZXJhdG9yPT09bm4pKSlyZXR1cm4gbnVsbDtjb25zdCByPWNuLmdldChhWzBdLm5hbWUpO2xldCBzPTA7aWYocil7ZT1yKGUsdCk7cz0xfWVsc2UgZT10fHxlO2ZvcihsZXQgdD1hLmxlbmd0aDtzPHQ7cysrKXtjb25zdHtuYW1lOnQsb3BlcmF0b3I6aSxpbmRleDpyfT1hW3NdO2lmKCFpc0Zpbml0ZShyKSl7YVtzXS5pbmRleD0wO3JldHVybiBlLmNyZWF0ZU5vZGVzKGEuc2xpY2UocykpfWxldCBuO3N3aXRjaChpKXtjYXNlIHNuOm49ZVtpc10odCwhMSk7YnJlYWs7Y2FzZSBubjpuPWVbaXNdKHQsITApO2JyZWFrO2Nhc2Ugb246bj1lW3RzXSh0KTtuPW4uaXNYRkFPYmplY3RBcnJheT9uLmNoaWxkcmVuOltuXX1pZigwPT09bi5sZW5ndGgpcmV0dXJuIGUuY3JlYXRlTm9kZXMoYS5zbGljZShzKSk7aWYoIShyPG4ubGVuZ3RoKSl7YVtzXS5pbmRleD1yLW4ubGVuZ3RoO3JldHVybiBlLmNyZWF0ZU5vZGVzKGEuc2xpY2UocykpfXtjb25zdCB0PW5bcl07aWYoIXQuaXNYRkFPYmplY3Qpe3dhcm4oIlhGQSAtIENhbm5vdCBjcmVhdGUgYSBub2RlLiIpO3JldHVybiBudWxsfWU9dH19cmV0dXJuIG51bGx9Y29uc3QgaG49U3ltYm9sKCksQ249U3ltYm9sKCksQm49U3ltYm9sKCksUW49U3ltYm9sKCJfY2hpbGRyZW4iKSxFbj1TeW1ib2woKSx1bj1TeW1ib2woKSxkbj1TeW1ib2woKSxmbj1TeW1ib2woKSxwbj1TeW1ib2woKSxtbj1TeW1ib2woKSx5bj1TeW1ib2woKSx3bj1TeW1ib2woKSxibj1TeW1ib2woKSxEbj1TeW1ib2woInBhcmVudCIpLEZuPVN5bWJvbCgpLFNuPVN5bWJvbCgpLGtuPVN5bWJvbCgpO2xldCBSbj0wO2NvbnN0IE5uPUFuLmRhdGFzZXRzLmlkO2NsYXNzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlLHQsaT0hMSl7dGhpc1trc109ZTt0aGlzW1JzXT10O3RoaXNbeW5dPWk7dGhpc1tEbl09bnVsbDt0aGlzW1FuXT1bXTt0aGlzW3pzXT1gJHt0fSR7Um4rK31gO3RoaXNbQ3NdPW51bGx9Z2V0IGlzWEZBT2JqZWN0KCl7cmV0dXJuITB9Z2V0IGlzWEZBT2JqZWN0QXJyYXkoKXtyZXR1cm4hMX1jcmVhdGVOb2RlcyhlKXtsZXQgdD10aGlzLGk9bnVsbDtmb3IoY29uc3R7bmFtZTphLGluZGV4OnJ9b2YgZSl7Zm9yKGxldCBlPTAscz1pc0Zpbml0ZShyKT9yOjA7ZTw9cztlKyspe2NvbnN0IGU9dFtrc109PT1Obj8tMTp0W2tzXTtpPW5ldyBYbWxPYmplY3QoZSxhKTt0W1lyXShpKX10PWl9cmV0dXJuIGl9W0dzXShlKXtpZighdGhpc1t5bl18fCF0aGlzW01zXShlKSlyZXR1cm4hMTtjb25zdCB0PWVbUnNdLGk9dGhpc1t0XTtpZighKGkgaW5zdGFuY2VvZiBYRkFPYmplY3RBcnJheSkpe251bGwhPT1pJiZ0aGlzW0pzXShpKTt0aGlzW3RdPWU7dGhpc1tZcl0oZSk7cmV0dXJuITB9aWYoaS5wdXNoKGUpKXt0aGlzW1lyXShlKTtyZXR1cm4hMH1sZXQgYT0iIjt0aGlzLmlkP2E9YCAoaWQ6ICR7dGhpcy5pZH0pYDp0aGlzLm5hbWUmJihhPWAgKG5hbWU6ICR7dGhpcy5uYW1lfSAke3RoaXMuaC52YWx1ZX0pYCk7d2FybihgWEZBIC0gbm9kZSAiJHt0aGlzW1JzXX0iJHthfSBoYXMgYWxyZWFkeSBlbm91Z2ggIiR7dH0iIWApO3JldHVybiExfVtNc10oZSl7cmV0dXJuIHRoaXMuaGFzT3duUHJvcGVydHkoZVtSc10pJiZlW2tzXT09PXRoaXNba3NdfVt5c10oKXtyZXR1cm4hMX1bSnJdKCl7cmV0dXJuITF9W2RzXSgpe3JldHVybiExfVtmc10oKXtyZXR1cm4hMX1bTHNdKCl7dGhpcy5wYXJhJiZ0aGlzW2hzXSgpW1pyXS5wYXJhU3RhY2sucG9wKCl9W0hzXSgpe3RoaXNbaHNdKClbWnJdLnBhcmFTdGFjay5wdXNoKHRoaXMucGFyYSl9W1RzXShlKXt0aGlzLmlkJiZ0aGlzW2tzXT09PUFuLnRlbXBsYXRlLmlkJiZlLnNldCh0aGlzLmlkLHRoaXMpfVtoc10oKXtyZXR1cm4gdGhpc1tDc10udGVtcGxhdGV9W3dzXSgpe3JldHVybiExfVtic10oKXtyZXR1cm4hMX1bWXJdKGUpe2VbRG5dPXRoaXM7dGhpc1tRbl0ucHVzaChlKTshZVtDc10mJnRoaXNbQ3NdJiYoZVtDc109dGhpc1tDc10pfVtKc10oZSl7Y29uc3QgdD10aGlzW1FuXS5pbmRleE9mKGUpO3RoaXNbUW5dLnNwbGljZSh0LDEpfVtCc10oKXtyZXR1cm4gdGhpcy5oYXNPd25Qcm9wZXJ0eSgidmFsdWUiKX1bT3NdKGUpe31bVXNdKGUpe31bX3JdKCl7fVtUcl0oZSl7ZGVsZXRlIHRoaXNbeW5dO2lmKHRoaXNbT3JdKXtlLmNsZWFuKHRoaXNbT3JdKTtkZWxldGUgdGhpc1tPcl19fVtFc10oZSl7cmV0dXJuIHRoaXNbUW5dLmluZGV4T2YoZSl9W3VzXShlLHQpe3RbRG5dPXRoaXM7dGhpc1tRbl0uc3BsaWNlKGUsMCx0KTshdFtDc10mJnRoaXNbQ3NdJiYodFtDc109dGhpc1tDc10pfVtEc10oKXtyZXR1cm4hdGhpcy5uYW1lfVtTc10oKXtyZXR1cm4iIn1banNdKCl7cmV0dXJuIDA9PT10aGlzW1FuXS5sZW5ndGg/dGhpc1tqcl06dGhpc1tRbl0ubWFwKChlPT5lW2pzXSgpKSkuam9pbigiIil9Z2V0W0JuXSgpe2NvbnN0IGU9T2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpO2lmKCFlLl9hdHRyaWJ1dGVzKXtjb25zdCB0PWUuX2F0dHJpYnV0ZXM9bmV3IFNldDtmb3IoY29uc3QgZSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKSl7aWYobnVsbD09PXRoaXNbZV18fHRoaXNbZV1pbnN0YW5jZW9mIFhGQU9iamVjdHx8dGhpc1tlXWluc3RhbmNlb2YgWEZBT2JqZWN0QXJyYXkpYnJlYWs7dC5hZGQoZSl9fXJldHVybiBzaGFkb3codGhpcyxCbixlLl9hdHRyaWJ1dGVzKX1bbXNdKGUpe2xldCB0PXRoaXM7Zm9yKDt0Oyl7aWYodD09PWUpcmV0dXJuITA7dD10W2xzXSgpfXJldHVybiExfVtsc10oKXtyZXR1cm4gdGhpc1tEbl19W2NzXSgpe3JldHVybiB0aGlzW2xzXSgpfVtvc10oZT1udWxsKXtyZXR1cm4gZT90aGlzW2VdOnRoaXNbUW5dfVtWcl0oKXtjb25zdCBlPU9iamVjdC5jcmVhdGUobnVsbCk7dGhpc1tqcl0mJihlLiRjb250ZW50PXRoaXNbanJdKTtmb3IoY29uc3QgdCBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKSl7Y29uc3QgaT10aGlzW3RdO251bGwhPT1pJiYoaSBpbnN0YW5jZW9mIFhGQU9iamVjdD9lW3RdPWlbVnJdKCk6aSBpbnN0YW5jZW9mIFhGQU9iamVjdEFycmF5P2kuaXNFbXB0eSgpfHwoZVt0XT1pLmR1bXAoKSk6ZVt0XT1pKX1yZXR1cm4gZX1bX3NdKCl7cmV0dXJuIG51bGx9W1ZzXSgpe3JldHVybiBIVE1MUmVzdWx0LkVNUFRZfSpbZ3NdKCl7Zm9yKGNvbnN0IGUgb2YgdGhpc1tvc10oKSl5aWVsZCBlfSpbZm5dKGUsdCl7Zm9yKGNvbnN0IGkgb2YgdGhpc1tnc10oKSlpZighZXx8dD09PWUuaGFzKGlbUnNdKSl7Y29uc3QgZT10aGlzW2VzXSgpLHQ9aVtWc10oZSk7dC5zdWNjZXNzfHwodGhpc1tacl0uZmFpbGluZ05vZGU9aSk7eWllbGQgdH19W3pyXSgpe3JldHVybiBudWxsfVt2cl0oZSx0KXt0aGlzW1pyXS5jaGlsZHJlbi5wdXNoKGUpfVtlc10oKXt9W0tyXSh7ZmlsdGVyOmU9bnVsbCxpbmNsdWRlOnQ9ITB9KXtpZih0aGlzW1pyXS5nZW5lcmF0b3Ipe2NvbnN0IGU9dGhpc1tlc10oKSx0PXRoaXNbWnJdLmZhaWxpbmdOb2RlW1ZzXShlKTtpZighdC5zdWNjZXNzKXJldHVybiB0O3QuaHRtbCYmdGhpc1t2cl0odC5odG1sLHQuYmJveCk7ZGVsZXRlIHRoaXNbWnJdLmZhaWxpbmdOb2RlfWVsc2UgdGhpc1tacl0uZ2VuZXJhdG9yPXRoaXNbZm5dKGUsdCk7Zm9yKDs7KXtjb25zdCBlPXRoaXNbWnJdLmdlbmVyYXRvci5uZXh0KCk7aWYoZS5kb25lKWJyZWFrO2NvbnN0IHQ9ZS52YWx1ZTtpZighdC5zdWNjZXNzKXJldHVybiB0O3QuaHRtbCYmdGhpc1t2cl0odC5odG1sLHQuYmJveCl9dGhpc1tacl0uZ2VuZXJhdG9yPW51bGw7cmV0dXJuIEhUTUxSZXN1bHQuRU1QVFl9W3FzXShlKXt0aGlzW1NuXT1uZXcgU2V0KE9iamVjdC5rZXlzKGUpKX1bbW5dKGUpe2NvbnN0IHQ9dGhpc1tCbl0saT10aGlzW1NuXTtyZXR1cm5bLi4uZV0uZmlsdGVyKChlPT50LmhhcyhlKSYmIWkuaGFzKGUpKSl9W1lzXShlLHQ9bmV3IFNldCl7Zm9yKGNvbnN0IGkgb2YgdGhpc1tRbl0paVtGbl0oZSx0KX1bRm5dKGUsdCl7Y29uc3QgaT10aGlzW3BuXShlLHQpO2k/dGhpc1tobl0oaSxlLHQpOnRoaXNbWXNdKGUsdCl9W3BuXShlLHQpe2NvbnN0e3VzZTppLHVzZWhyZWY6YX09dGhpcztpZighaSYmIWEpcmV0dXJuIG51bGw7bGV0IHI9bnVsbCxzPW51bGwsbj1udWxsLG89aTtpZihhKXtvPWE7YS5zdGFydHNXaXRoKCIjc29tKCIpJiZhLmVuZHNXaXRoKCIpIik/cz1hLnNsaWNlKDUsLTEpOmEuc3RhcnRzV2l0aCgiLiNzb20oIikmJmEuZW5kc1dpdGgoIikiKT9zPWEuc2xpY2UoNiwtMSk6YS5zdGFydHNXaXRoKCIjIik/bj1hLnNsaWNlKDEpOmEuc3RhcnRzV2l0aCgiLiMiKSYmKG49YS5zbGljZSgyKSl9ZWxzZSBpLnN0YXJ0c1dpdGgoIiMiKT9uPWkuc2xpY2UoMSk6cz1pO3RoaXMudXNlPXRoaXMudXNlaHJlZj0iIjtpZihuKXI9ZS5nZXQobik7ZWxzZXtyPXNlYXJjaE5vZGUoZS5nZXQodnMpLHRoaXMscywhMCwhMSk7ciYmKHI9clswXSl9aWYoIXIpe3dhcm4oYFhGQSAtIEludmFsaWQgcHJvdG90eXBlIHJlZmVyZW5jZTogJHtvfS5gKTtyZXR1cm4gbnVsbH1pZihyW1JzXSE9PXRoaXNbUnNdKXt3YXJuKGBYRkEgLSBJbmNvbXBhdGlibGUgcHJvdG90eXBlOiAke3JbUnNdfSAhPT0gJHt0aGlzW1JzXX0uYCk7cmV0dXJuIG51bGx9aWYodC5oYXMocikpe3dhcm4oIlhGQSAtIEN5Y2xlIGRldGVjdGVkIGluIHByb3RvdHlwZXMgdXNlLiIpO3JldHVybiBudWxsfXQuYWRkKHIpO2NvbnN0IGc9cltwbl0oZSx0KTtnJiZyW2huXShnLGUsdCk7cltZc10oZSx0KTt0LmRlbGV0ZShyKTtyZXR1cm4gcn1baG5dKGUsdCxpKXtpZihpLmhhcyhlKSl7d2FybigiWEZBIC0gQ3ljbGUgZGV0ZWN0ZWQgaW4gcHJvdG90eXBlcyB1c2UuIik7cmV0dXJufSF0aGlzW2pyXSYmZVtqcl0mJih0aGlzW2pyXT1lW2pyXSk7bmV3IFNldChpKS5hZGQoZSk7Zm9yKGNvbnN0IHQgb2YgdGhpc1ttbl0oZVtTbl0pKXt0aGlzW3RdPWVbdF07dGhpc1tTbl0mJnRoaXNbU25dLmFkZCh0KX1mb3IoY29uc3QgYSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKSl7aWYodGhpc1tCbl0uaGFzKGEpKWNvbnRpbnVlO2NvbnN0IHI9dGhpc1thXSxzPWVbYV07aWYociBpbnN0YW5jZW9mIFhGQU9iamVjdEFycmF5KXtmb3IoY29uc3QgZSBvZiByW1FuXSllW0ZuXSh0LGkpO2ZvcihsZXQgYT1yW1FuXS5sZW5ndGgsbj1zW1FuXS5sZW5ndGg7YTxuO2ErKyl7Y29uc3Qgcz1lW1FuXVthXVtQcl0oKTtpZighci5wdXNoKHMpKWJyZWFrO3NbRG5dPXRoaXM7dGhpc1tRbl0ucHVzaChzKTtzW0ZuXSh0LGkpfX1lbHNlIGlmKG51bGw9PT1yKXtpZihudWxsIT09cyl7Y29uc3QgZT1zW1ByXSgpO2VbRG5dPXRoaXM7dGhpc1thXT1lO3RoaXNbUW5dLnB1c2goZSk7ZVtGbl0odCxpKX19ZWxzZXtyW1lzXSh0LGkpO3MmJnJbaG5dKHMsdCxpKX19fXN0YXRpY1tFbl0oZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZS5tYXAoKGU9PlhGQU9iamVjdFtFbl0oZSkpKToib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lP09iamVjdC5hc3NpZ24oe30sZSk6ZX1bUHJdKCl7Y29uc3QgZT1PYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKSk7Zm9yKGNvbnN0IHQgb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0aGlzKSl0cnl7ZVt0XT10aGlzW3RdfWNhdGNoe3NoYWRvdyhlLHQsdGhpc1t0XSl9ZVt6c109YCR7ZVtSc119JHtSbisrfWA7ZVtRbl09W107Zm9yKGNvbnN0IHQgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2lmKHRoaXNbQm5dLmhhcyh0KSl7ZVt0XT1YRkFPYmplY3RbRW5dKHRoaXNbdF0pO2NvbnRpbnVlfWNvbnN0IGk9dGhpc1t0XTtlW3RdPWkgaW5zdGFuY2VvZiBYRkFPYmplY3RBcnJheT9uZXcgWEZBT2JqZWN0QXJyYXkoaVt3bl0pOm51bGx9Zm9yKGNvbnN0IHQgb2YgdGhpc1tRbl0pe2NvbnN0IGk9dFtSc10sYT10W1ByXSgpO2VbUW5dLnB1c2goYSk7YVtEbl09ZTtudWxsPT09ZVtpXT9lW2ldPWE6ZVtpXVtRbl0ucHVzaChhKX1yZXR1cm4gZX1bb3NdKGU9bnVsbCl7cmV0dXJuIGU/dGhpc1tRbl0uZmlsdGVyKCh0PT50W1JzXT09PWUpKTp0aGlzW1FuXX1bdHNdKGUpe3JldHVybiB0aGlzW2VdfVtpc10oZSx0LGk9ITApe3JldHVybiBBcnJheS5mcm9tKHRoaXNbYXNdKGUsdCxpKSl9Klthc10oZSx0LGk9ITApe2lmKCJwYXJlbnQiIT09ZSl7Zm9yKGNvbnN0IGkgb2YgdGhpc1tRbl0pe2lbUnNdPT09ZSYmKHlpZWxkIGkpO2kubmFtZT09PWUmJih5aWVsZCBpKTsodHx8aVtEc10oKSkmJih5aWVsZCppW2FzXShlLHQsITEpKX1pJiZ0aGlzW0JuXS5oYXMoZSkmJih5aWVsZCBuZXcgWEZBQXR0cmlidXRlKHRoaXMsZSx0aGlzW2VdKSl9ZWxzZSB5aWVsZCB0aGlzW0RuXX19Y2xhc3MgWEZBT2JqZWN0QXJyYXl7Y29uc3RydWN0b3IoZT0xLzApe3RoaXNbd25dPWU7dGhpc1tRbl09W119Z2V0IGlzWEZBT2JqZWN0KCl7cmV0dXJuITF9Z2V0IGlzWEZBT2JqZWN0QXJyYXkoKXtyZXR1cm4hMH1wdXNoKGUpe2lmKHRoaXNbUW5dLmxlbmd0aDw9dGhpc1t3bl0pe3RoaXNbUW5dLnB1c2goZSk7cmV0dXJuITB9d2FybihgWEZBIC0gbm9kZSAiJHtlW1JzXX0iIGFjY2VwdHMgbm8gbW9yZSB0aGFuICR7dGhpc1t3bl19IGNoaWxkcmVuYCk7cmV0dXJuITF9aXNFbXB0eSgpe3JldHVybiAwPT09dGhpc1tRbl0ubGVuZ3RofWR1bXAoKXtyZXR1cm4gMT09PXRoaXNbUW5dLmxlbmd0aD90aGlzW1FuXVswXVtWcl0oKTp0aGlzW1FuXS5tYXAoKGU9PmVbVnJdKCkpKX1bUHJdKCl7Y29uc3QgZT1uZXcgWEZBT2JqZWN0QXJyYXkodGhpc1t3bl0pO2VbUW5dPXRoaXNbUW5dLm1hcCgoZT0+ZVtQcl0oKSkpO3JldHVybiBlfWdldCBjaGlsZHJlbigpe3JldHVybiB0aGlzW1FuXX1jbGVhcigpe3RoaXNbUW5dLmxlbmd0aD0wfX1jbGFzcyBYRkFBdHRyaWJ1dGV7Y29uc3RydWN0b3IoZSx0LGkpe3RoaXNbRG5dPWU7dGhpc1tSc109dDt0aGlzW2pyXT1pO3RoaXNbV3JdPSExO3RoaXNbenNdPSJhdHRyaWJ1dGUiK1JuKyt9W2xzXSgpe3JldHVybiB0aGlzW0RuXX1bcHNdKCl7cmV0dXJuITB9W3JzXSgpe3JldHVybiB0aGlzW2pyXS50cmltKCl9W09zXShlKXtlPWUudmFsdWV8fCIiO3RoaXNbanJdPWUudG9TdHJpbmcoKX1banNdKCl7cmV0dXJuIHRoaXNbanJdfVttc10oZSl7cmV0dXJuIHRoaXNbRG5dPT09ZXx8dGhpc1tEbl1bbXNdKGUpfX1jbGFzcyBYbWxPYmplY3QgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSx0LGk9e30pe3N1cGVyKGUsdCk7dGhpc1tqcl09IiI7dGhpc1t1bl09bnVsbDtpZigiI3RleHQiIT09dCl7Y29uc3QgZT1uZXcgTWFwO3RoaXNbQ25dPWU7Zm9yKGNvbnN0W3QsYV1vZiBPYmplY3QuZW50cmllcyhpKSllLnNldCh0LG5ldyBYRkFBdHRyaWJ1dGUodGhpcyx0LGEpKTtpZihpLmhhc093blByb3BlcnR5KE5zKSl7Y29uc3QgZT1pW05zXS54ZmEuZGF0YU5vZGU7dm9pZCAwIT09ZSYmKCJkYXRhR3JvdXAiPT09ZT90aGlzW3VuXT0hMToiZGF0YVZhbHVlIj09PWUmJih0aGlzW3VuXT0hMCkpfX10aGlzW1dyXT0hMX1bWnNdKGUpe2NvbnN0IHQ9dGhpc1tSc107aWYoIiN0ZXh0Ij09PXQpe2UucHVzaChlbmNvZGVUb1htbFN0cmluZyh0aGlzW2pyXSkpO3JldHVybn1jb25zdCBpPXV0ZjhTdHJpbmdUb1N0cmluZyh0KSxhPXRoaXNba3NdPT09Tm4/InhmYToiOiIiO2UucHVzaChgPCR7YX0ke2l9YCk7Zm9yKGNvbnN0W3QsaV1vZiB0aGlzW0NuXS5lbnRyaWVzKCkpe2NvbnN0IGE9dXRmOFN0cmluZ1RvU3RyaW5nKHQpO2UucHVzaChgICR7YX09IiR7ZW5jb2RlVG9YbWxTdHJpbmcoaVtqcl0pfSJgKX1udWxsIT09dGhpc1t1bl0mJih0aGlzW3VuXT9lLnB1c2goJyB4ZmE6ZGF0YU5vZGU9ImRhdGFWYWx1ZSInKTplLnB1c2goJyB4ZmE6ZGF0YU5vZGU9ImRhdGFHcm91cCInKSk7aWYodGhpc1tqcl18fDAhPT10aGlzW1FuXS5sZW5ndGgpe2UucHVzaCgiPiIpO2lmKHRoaXNbanJdKSJzdHJpbmciPT10eXBlb2YgdGhpc1tqcl0/ZS5wdXNoKGVuY29kZVRvWG1sU3RyaW5nKHRoaXNbanJdKSk6dGhpc1tqcl1bWnNdKGUpO2Vsc2UgZm9yKGNvbnN0IHQgb2YgdGhpc1tRbl0pdFtac10oZSk7ZS5wdXNoKGA8LyR7YX0ke2l9PmApfWVsc2UgZS5wdXNoKCIvPiIpfVtHc10oZSl7aWYodGhpc1tqcl0pe2NvbnN0IGU9bmV3IFhtbE9iamVjdCh0aGlzW2tzXSwiI3RleHQiKTt0aGlzW1lyXShlKTtlW2pyXT10aGlzW2pyXTt0aGlzW2pyXT0iIn10aGlzW1lyXShlKTtyZXR1cm4hMH1bVXNdKGUpe3RoaXNbanJdKz1lfVtfcl0oKXtpZih0aGlzW2pyXSYmdGhpc1tRbl0ubGVuZ3RoPjApe2NvbnN0IGU9bmV3IFhtbE9iamVjdCh0aGlzW2tzXSwiI3RleHQiKTt0aGlzW1lyXShlKTtlW2pyXT10aGlzW2pyXTtkZWxldGUgdGhpc1tqcl19fVtWc10oKXtyZXR1cm4iI3RleHQiPT09dGhpc1tSc10/SFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiIjdGV4dCIsdmFsdWU6dGhpc1tqcl19KTpIVE1MUmVzdWx0LkVNUFRZfVtvc10oZT1udWxsKXtyZXR1cm4gZT90aGlzW1FuXS5maWx0ZXIoKHQ9PnRbUnNdPT09ZSkpOnRoaXNbUW5dfVtBc10oKXtyZXR1cm4gdGhpc1tDbl19W3RzXShlKXtjb25zdCB0PXRoaXNbQ25dLmdldChlKTtyZXR1cm4gdm9pZCAwIT09dD90OnRoaXNbb3NdKGUpfSpbYXNdKGUsdCl7Y29uc3QgaT10aGlzW0NuXS5nZXQoZSk7aSYmKHlpZWxkIGkpO2Zvcihjb25zdCBpIG9mIHRoaXNbUW5dKXtpW1JzXT09PWUmJih5aWVsZCBpKTt0JiYoeWllbGQqaVthc10oZSx0KSl9fSpbJHJdKGUsdCl7Y29uc3QgaT10aGlzW0NuXS5nZXQoZSk7IWl8fHQmJmlbV3JdfHwoeWllbGQgaSk7Zm9yKGNvbnN0IGkgb2YgdGhpc1tRbl0peWllbGQqaVskcl0oZSx0KX0qW25zXShlLHQsaSl7Zm9yKGNvbnN0IGEgb2YgdGhpc1tRbl0pe2FbUnNdIT09ZXx8aSYmYVtXcl18fCh5aWVsZCBhKTt0JiYoeWllbGQqYVtuc10oZSx0LGkpKX19W3BzXSgpe3JldHVybiBudWxsPT09dGhpc1t1bl0/MD09PXRoaXNbUW5dLmxlbmd0aHx8dGhpc1tRbl1bMF1ba3NdPT09QW4ueGh0bWwuaWQ6dGhpc1t1bl19W3JzXSgpe3JldHVybiBudWxsPT09dGhpc1t1bl0/MD09PXRoaXNbUW5dLmxlbmd0aD90aGlzW2pyXS50cmltKCk6dGhpc1tRbl1bMF1ba3NdPT09QW4ueGh0bWwuaWQ/dGhpc1tRbl1bMF1banNdKCkudHJpbSgpOm51bGw6dGhpc1tqcl0udHJpbSgpfVtPc10oZSl7ZT1lLnZhbHVlfHwiIjt0aGlzW2pyXT1lLnRvU3RyaW5nKCl9W1ZyXShlPSExKXtjb25zdCB0PU9iamVjdC5jcmVhdGUobnVsbCk7ZSYmKHQuJG5zPXRoaXNba3NdKTt0aGlzW2pyXSYmKHQuJGNvbnRlbnQ9dGhpc1tqcl0pO3QuJG5hbWU9dGhpc1tSc107dC5jaGlsZHJlbj1bXTtmb3IoY29uc3QgaSBvZiB0aGlzW1FuXSl0LmNoaWxkcmVuLnB1c2goaVtWcl0oZSkpO3QuYXR0cmlidXRlcz1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcihjb25zdFtlLGldb2YgdGhpc1tDbl0pdC5hdHRyaWJ1dGVzW2VdPWlbanJdO3JldHVybiB0fX1jbGFzcyBDb250ZW50T2JqZWN0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KTt0aGlzW2pyXT0iIn1bVXNdKGUpe3RoaXNbanJdKz1lfVtfcl0oKXt9fWNsYXNzIE9wdGlvbk9iamVjdCBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSx0LGkpe3N1cGVyKGUsdCk7dGhpc1tibl09aX1bX3JdKCl7dGhpc1tqcl09Z2V0S2V5d29yZCh7ZGF0YTp0aGlzW2pyXSxkZWZhdWx0VmFsdWU6dGhpc1tibl1bMF0sdmFsaWRhdGU6ZT0+dGhpc1tibl0uaW5jbHVkZXMoZSl9KX1bVHJdKGUpe3N1cGVyW1RyXShlKTtkZWxldGUgdGhpc1tibl19fWNsYXNzIFN0cmluZ09iamVjdCBleHRlbmRzIENvbnRlbnRPYmplY3R7W19yXSgpe3RoaXNbanJdPXRoaXNbanJdLnRyaW0oKX19Y2xhc3MgSW50ZWdlck9iamVjdCBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSx0LGksYSl7c3VwZXIoZSx0KTt0aGlzW2RuXT1pO3RoaXNba25dPWF9W19yXSgpe3RoaXNbanJdPWdldEludGVnZXIoe2RhdGE6dGhpc1tqcl0sZGVmYXVsdFZhbHVlOnRoaXNbZG5dLHZhbGlkYXRlOnRoaXNba25dfSl9W1RyXShlKXtzdXBlcltUcl0oZSk7ZGVsZXRlIHRoaXNbZG5dO2RlbGV0ZSB0aGlzW2tuXX19Y2xhc3MgT3B0aW9uMDEgZXh0ZW5kcyBJbnRlZ2VyT2JqZWN0e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0LDAsKGU9PjE9PT1lKSl9fWNsYXNzIE9wdGlvbjEwIGV4dGVuZHMgSW50ZWdlck9iamVjdHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCwxLChlPT4wPT09ZSkpfX1mdW5jdGlvbiBtZWFzdXJlVG9TdHJpbmcoZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlPyIwcHgiOk51bWJlci5pc0ludGVnZXIoZSk/YCR7ZX1weGA6YCR7ZS50b0ZpeGVkKDIpfXB4YH1jb25zdCBHbj17YW5jaG9yVHlwZShlLHQpe2NvbnN0IGk9ZVtjc10oKTtpZihpJiYoIWkubGF5b3V0fHwicG9zaXRpb24iPT09aS5sYXlvdXQpKXsidHJhbnNmb3JtImluIHR8fCh0LnRyYW5zZm9ybT0iIik7c3dpdGNoKGUuYW5jaG9yVHlwZSl7Y2FzZSJib3R0b21DZW50ZXIiOnQudHJhbnNmb3JtKz0idHJhbnNsYXRlKC01MCUsIC0xMDAlKSI7YnJlYWs7Y2FzZSJib3R0b21MZWZ0Ijp0LnRyYW5zZm9ybSs9InRyYW5zbGF0ZSgwLC0xMDAlKSI7YnJlYWs7Y2FzZSJib3R0b21SaWdodCI6dC50cmFuc2Zvcm0rPSJ0cmFuc2xhdGUoLTEwMCUsLTEwMCUpIjticmVhaztjYXNlIm1pZGRsZUNlbnRlciI6dC50cmFuc2Zvcm0rPSJ0cmFuc2xhdGUoLTUwJSwtNTAlKSI7YnJlYWs7Y2FzZSJtaWRkbGVMZWZ0Ijp0LnRyYW5zZm9ybSs9InRyYW5zbGF0ZSgwLC01MCUpIjticmVhaztjYXNlIm1pZGRsZVJpZ2h0Ijp0LnRyYW5zZm9ybSs9InRyYW5zbGF0ZSgtMTAwJSwtNTAlKSI7YnJlYWs7Y2FzZSJ0b3BDZW50ZXIiOnQudHJhbnNmb3JtKz0idHJhbnNsYXRlKC01MCUsMCkiO2JyZWFrO2Nhc2UidG9wUmlnaHQiOnQudHJhbnNmb3JtKz0idHJhbnNsYXRlKC0xMDAlLDApIn19fSxkaW1lbnNpb25zKGUsdCl7Y29uc3QgaT1lW2NzXSgpO2xldCBhPWUudztjb25zdCByPWUuaDtpZihpLmxheW91dD8uaW5jbHVkZXMoInJvdyIpKXtjb25zdCB0PWlbWnJdLHI9ZS5jb2xTcGFuO2xldCBzO2lmKC0xPT09cil7cz10LmNvbHVtbldpZHRocy5zbGljZSh0LmN1cnJlbnRDb2x1bW4pLnJlZHVjZSgoKGUsdCk9PmUrdCksMCk7dC5jdXJyZW50Q29sdW1uPTB9ZWxzZXtzPXQuY29sdW1uV2lkdGhzLnNsaWNlKHQuY3VycmVudENvbHVtbix0LmN1cnJlbnRDb2x1bW4rcikucmVkdWNlKCgoZSx0KT0+ZSt0KSwwKTt0LmN1cnJlbnRDb2x1bW49KHQuY3VycmVudENvbHVtbitlLmNvbFNwYW4pJXQuY29sdW1uV2lkdGhzLmxlbmd0aH1pc05hTihzKXx8KGE9ZS53PXMpfXQud2lkdGg9IiIhPT1hP21lYXN1cmVUb1N0cmluZyhhKToiYXV0byI7dC5oZWlnaHQ9IiIhPT1yP21lYXN1cmVUb1N0cmluZyhyKToiYXV0byJ9LHBvc2l0aW9uKGUsdCl7Y29uc3QgaT1lW2NzXSgpO2lmKCFpPy5sYXlvdXR8fCJwb3NpdGlvbiI9PT1pLmxheW91dCl7dC5wb3NpdGlvbj0iYWJzb2x1dGUiO3QubGVmdD1tZWFzdXJlVG9TdHJpbmcoZS54KTt0LnRvcD1tZWFzdXJlVG9TdHJpbmcoZS55KX19LHJvdGF0ZShlLHQpe2lmKGUucm90YXRlKXsidHJhbnNmb3JtImluIHR8fCh0LnRyYW5zZm9ybT0iIik7dC50cmFuc2Zvcm0rPWByb3RhdGUoLSR7ZS5yb3RhdGV9ZGVnKWA7dC50cmFuc2Zvcm1PcmlnaW49InRvcCBsZWZ0In19LHByZXNlbmNlKGUsdCl7c3dpdGNoKGUucHJlc2VuY2Upe2Nhc2UiaW52aXNpYmxlIjp0LnZpc2liaWxpdHk9ImhpZGRlbiI7YnJlYWs7Y2FzZSJoaWRkZW4iOmNhc2UiaW5hY3RpdmUiOnQuZGlzcGxheT0ibm9uZSJ9fSxoQWxpZ24oZSx0KXtpZigicGFyYSI9PT1lW1JzXSlzd2l0Y2goZS5oQWxpZ24pe2Nhc2UianVzdGlmeUFsbCI6dC50ZXh0QWxpZ249Imp1c3RpZnktYWxsIjticmVhaztjYXNlInJhZGl4Ijp0LnRleHRBbGlnbj0ibGVmdCI7YnJlYWs7ZGVmYXVsdDp0LnRleHRBbGlnbj1lLmhBbGlnbn1lbHNlIHN3aXRjaChlLmhBbGlnbil7Y2FzZSJsZWZ0Ijp0LmFsaWduU2VsZj0ic3RhcnQiO2JyZWFrO2Nhc2UiY2VudGVyIjp0LmFsaWduU2VsZj0iY2VudGVyIjticmVhaztjYXNlInJpZ2h0Ijp0LmFsaWduU2VsZj0iZW5kIn19LG1hcmdpbihlLHQpe2UubWFyZ2luJiYodC5tYXJnaW49ZS5tYXJnaW5bX3NdKCkubWFyZ2luKX19O2Z1bmN0aW9uIHNldE1pbk1heERpbWVuc2lvbnMoZSx0KXtpZigicG9zaXRpb24iPT09ZVtjc10oKS5sYXlvdXQpe2UubWluVz4wJiYodC5taW5XaWR0aD1tZWFzdXJlVG9TdHJpbmcoZS5taW5XKSk7ZS5tYXhXPjAmJih0Lm1heFdpZHRoPW1lYXN1cmVUb1N0cmluZyhlLm1heFcpKTtlLm1pbkg+MCYmKHQubWluSGVpZ2h0PW1lYXN1cmVUb1N0cmluZyhlLm1pbkgpKTtlLm1heEg+MCYmKHQubWF4SGVpZ2h0PW1lYXN1cmVUb1N0cmluZyhlLm1heEgpKX19ZnVuY3Rpb24gbGF5b3V0VGV4dChlLHQsaSxhLHIscyl7Y29uc3Qgbj1uZXcgVGV4dE1lYXN1cmUodCxpLGEscik7InN0cmluZyI9PXR5cGVvZiBlP24uYWRkU3RyaW5nKGUpOmVbeHNdKG4pO3JldHVybiBuLmNvbXB1dGUocyl9ZnVuY3Rpb24gbGF5b3V0Tm9kZShlLHQpe2xldCBpPW51bGwsYT1udWxsLHI9ITE7aWYoKCFlLnd8fCFlLmgpJiZlLnZhbHVlKXtsZXQgcz0wLG49MDtpZihlLm1hcmdpbil7cz1lLm1hcmdpbi5sZWZ0SW5zZXQrZS5tYXJnaW4ucmlnaHRJbnNldDtuPWUubWFyZ2luLnRvcEluc2V0K2UubWFyZ2luLmJvdHRvbUluc2V0fWxldCBvPW51bGwsZz1udWxsO2lmKGUucGFyYSl7Zz1PYmplY3QuY3JlYXRlKG51bGwpO289IiI9PT1lLnBhcmEubGluZUhlaWdodD9udWxsOmUucGFyYS5saW5lSGVpZ2h0O2cudG9wPSIiPT09ZS5wYXJhLnNwYWNlQWJvdmU/MDplLnBhcmEuc3BhY2VBYm92ZTtnLmJvdHRvbT0iIj09PWUucGFyYS5zcGFjZUJlbG93PzA6ZS5wYXJhLnNwYWNlQmVsb3c7Zy5sZWZ0PSIiPT09ZS5wYXJhLm1hcmdpbkxlZnQ/MDplLnBhcmEubWFyZ2luTGVmdDtnLnJpZ2h0PSIiPT09ZS5wYXJhLm1hcmdpblJpZ2h0PzA6ZS5wYXJhLm1hcmdpblJpZ2h0fWxldCBjPWUuZm9udDtpZighYyl7Y29uc3QgdD1lW2hzXSgpO2xldCBpPWVbbHNdKCk7Zm9yKDtpJiZpIT09dDspe2lmKGkuZm9udCl7Yz1pLmZvbnQ7YnJlYWt9aT1pW2xzXSgpfX1jb25zdCBsPShlLnd8fHQud2lkdGgpLXMsaD1lW0NzXS5mb250RmluZGVyO2lmKGUudmFsdWUuZXhEYXRhJiZlLnZhbHVlLmV4RGF0YVtqcl0mJiJ0ZXh0L2h0bWwiPT09ZS52YWx1ZS5leERhdGEuY29udGVudFR5cGUpe2NvbnN0IHQ9bGF5b3V0VGV4dChlLnZhbHVlLmV4RGF0YVtqcl0sYyxnLG8saCxsKTthPXQud2lkdGg7aT10LmhlaWdodDtyPXQuaXNCcm9rZW59ZWxzZXtjb25zdCB0PWUudmFsdWVbanNdKCk7aWYodCl7Y29uc3QgZT1sYXlvdXRUZXh0KHQsYyxnLG8saCxsKTthPWUud2lkdGg7aT1lLmhlaWdodDtyPWUuaXNCcm9rZW59fW51bGw9PT1hfHxlLnd8fChhKz1zKTtudWxsPT09aXx8ZS5ofHwoaSs9bil9cmV0dXJue3c6YSxoOmksaXNCcm9rZW46cn19ZnVuY3Rpb24gY29tcHV0ZUJib3goZSx0LGkpe2xldCBhO2lmKCIiIT09ZS53JiYiIiE9PWUuaClhPVtlLngsZS55LGUudyxlLmhdO2Vsc2V7aWYoIWkpcmV0dXJuIG51bGw7bGV0IHI9ZS53O2lmKCIiPT09cil7aWYoMD09PWUubWF4Vyl7Y29uc3QgdD1lW2NzXSgpO3I9InBvc2l0aW9uIj09PXQubGF5b3V0JiYiIiE9PXQudz8wOmUubWluV31lbHNlIHI9TWF0aC5taW4oZS5tYXhXLGkud2lkdGgpO3QuYXR0cmlidXRlcy5zdHlsZS53aWR0aD1tZWFzdXJlVG9TdHJpbmcocil9bGV0IHM9ZS5oO2lmKCIiPT09cyl7aWYoMD09PWUubWF4SCl7Y29uc3QgdD1lW2NzXSgpO3M9InBvc2l0aW9uIj09PXQubGF5b3V0JiYiIiE9PXQuaD8wOmUubWluSH1lbHNlIHM9TWF0aC5taW4oZS5tYXhILGkuaGVpZ2h0KTt0LmF0dHJpYnV0ZXMuc3R5bGUuaGVpZ2h0PW1lYXN1cmVUb1N0cmluZyhzKX1hPVtlLngsZS55LHIsc119cmV0dXJuIGF9ZnVuY3Rpb24gZml4RGltZW5zaW9ucyhlKXtjb25zdCB0PWVbY3NdKCk7aWYodC5sYXlvdXQ/LmluY2x1ZGVzKCJyb3ciKSl7Y29uc3QgaT10W1pyXSxhPWUuY29sU3BhbjtsZXQgcjtyPS0xPT09YT9pLmNvbHVtbldpZHRocy5zbGljZShpLmN1cnJlbnRDb2x1bW4pLnJlZHVjZSgoKGUsdCk9PmUrdCksMCk6aS5jb2x1bW5XaWR0aHMuc2xpY2UoaS5jdXJyZW50Q29sdW1uLGkuY3VycmVudENvbHVtbithKS5yZWR1Y2UoKChlLHQpPT5lK3QpLDApO2lzTmFOKHIpfHwoZS53PXIpfXQubGF5b3V0JiYicG9zaXRpb24iIT09dC5sYXlvdXQmJihlLng9ZS55PTApOyJ0YWJsZSI9PT1lLmxheW91dCYmIiI9PT1lLncmJkFycmF5LmlzQXJyYXkoZS5jb2x1bW5XaWR0aHMpJiYoZS53PWUuY29sdW1uV2lkdGhzLnJlZHVjZSgoKGUsdCk9PmUrdCksMCkpfWZ1bmN0aW9uIGxheW91dENsYXNzKGUpe3N3aXRjaChlLmxheW91dCl7Y2FzZSJwb3NpdGlvbiI6ZGVmYXVsdDpyZXR1cm4ieGZhUG9zaXRpb24iO2Nhc2UibHItdGIiOnJldHVybiJ4ZmFMclRiIjtjYXNlInJsLXJvdyI6cmV0dXJuInhmYVJsUm93IjtjYXNlInJsLXRiIjpyZXR1cm4ieGZhUmxUYiI7Y2FzZSJyb3ciOnJldHVybiJ4ZmFSb3ciO2Nhc2UidGFibGUiOnJldHVybiJ4ZmFUYWJsZSI7Y2FzZSJ0YiI6cmV0dXJuInhmYVRiIn19ZnVuY3Rpb24gdG9TdHlsZShlLC4uLnQpe2NvbnN0IGk9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IoY29uc3QgYSBvZiB0KXtjb25zdCB0PWVbYV07aWYobnVsbCE9PXQpaWYoR24uaGFzT3duUHJvcGVydHkoYSkpR25bYV0oZSxpKTtlbHNlIGlmKHQgaW5zdGFuY2VvZiBYRkFPYmplY3Qpe2NvbnN0IGU9dFtfc10oKTtlP09iamVjdC5hc3NpZ24oaSxlKTp3YXJuKGAoREVCVUcpIC0gWEZBIC0gc3R5bGUgZm9yICR7YX0gbm90IGltcGxlbWVudGVkIHlldGApfX1yZXR1cm4gaX1mdW5jdGlvbiBjcmVhdGVXcmFwcGVyKGUsdCl7Y29uc3R7YXR0cmlidXRlczppfT10LHtzdHlsZTphfT1pLHI9e25hbWU6ImRpdiIsYXR0cmlidXRlczp7Y2xhc3M6WyJ4ZmFXcmFwcGVyIl0sc3R5bGU6T2JqZWN0LmNyZWF0ZShudWxsKX0sY2hpbGRyZW46W119O2kuY2xhc3MucHVzaCgieGZhV3JhcHBlZCIpO2lmKGUuYm9yZGVyKXtjb25zdHt3aWR0aHM6aSxpbnNldHM6c309ZS5ib3JkZXJbWnJdO2xldCBuLG8sZz1zWzBdLGM9c1szXTtjb25zdCBsPXNbMF0rc1syXSxoPXNbMV0rc1szXTtzd2l0Y2goZS5ib3JkZXIuaGFuZCl7Y2FzZSJldmVuIjpnLT1pWzBdLzI7Yy09aVszXS8yO249YGNhbGMoMTAwJSArICR7KGlbMV0raVszXSkvMi1ofXB4KWA7bz1gY2FsYygxMDAlICsgJHsoaVswXStpWzJdKS8yLWx9cHgpYDticmVhaztjYXNlImxlZnQiOmctPWlbMF07Yy09aVszXTtuPWBjYWxjKDEwMCUgKyAke2lbMV0raVszXS1ofXB4KWA7bz1gY2FsYygxMDAlICsgJHtpWzBdK2lbMl0tbH1weClgO2JyZWFrO2Nhc2UicmlnaHQiOm49aD9gY2FsYygxMDAlIC0gJHtofXB4KWA6IjEwMCUiO289bD9gY2FsYygxMDAlIC0gJHtsfXB4KWA6IjEwMCUifWNvbnN0IEM9WyJ4ZmFCb3JkZXIiXTtpc1ByaW50T25seShlLmJvcmRlcikmJkMucHVzaCgieGZhUHJpbnRPbmx5Iik7Y29uc3QgUT17bmFtZToiZGl2IixhdHRyaWJ1dGVzOntjbGFzczpDLHN0eWxlOnt0b3A6YCR7Z31weGAsbGVmdDpgJHtjfXB4YCx3aWR0aDpuLGhlaWdodDpvfX0sY2hpbGRyZW46W119O2Zvcihjb25zdCBlIG9mWyJib3JkZXIiLCJib3JkZXJXaWR0aCIsImJvcmRlckNvbG9yIiwiYm9yZGVyUmFkaXVzIiwiYm9yZGVyU3R5bGUiXSlpZih2b2lkIDAhPT1hW2VdKXtRLmF0dHJpYnV0ZXMuc3R5bGVbZV09YVtlXTtkZWxldGUgYVtlXX1yLmNoaWxkcmVuLnB1c2goUSx0KX1lbHNlIHIuY2hpbGRyZW4ucHVzaCh0KTtmb3IoY29uc3QgZSBvZlsiYmFja2dyb3VuZCIsImJhY2tncm91bmRDbGlwIiwidG9wIiwibGVmdCIsIndpZHRoIiwiaGVpZ2h0IiwibWluV2lkdGgiLCJtaW5IZWlnaHQiLCJtYXhXaWR0aCIsIm1heEhlaWdodCIsInRyYW5zZm9ybSIsInRyYW5zZm9ybU9yaWdpbiIsInZpc2liaWxpdHkiXSlpZih2b2lkIDAhPT1hW2VdKXtyLmF0dHJpYnV0ZXMuc3R5bGVbZV09YVtlXTtkZWxldGUgYVtlXX1yLmF0dHJpYnV0ZXMuc3R5bGUucG9zaXRpb249ImFic29sdXRlIj09PWEucG9zaXRpb24/ImFic29sdXRlIjoicmVsYXRpdmUiO2RlbGV0ZSBhLnBvc2l0aW9uO2lmKGEuYWxpZ25TZWxmKXtyLmF0dHJpYnV0ZXMuc3R5bGUuYWxpZ25TZWxmPWEuYWxpZ25TZWxmO2RlbGV0ZSBhLmFsaWduU2VsZn1yZXR1cm4gcn1mdW5jdGlvbiBmaXhUZXh0SW5kZW50KGUpe2NvbnN0IHQ9Z2V0TWVhc3VyZW1lbnQoZS50ZXh0SW5kZW50LCIwcHgiKTtpZih0Pj0wKXJldHVybjtjb25zdCBpPSJwYWRkaW5nIisoImxlZnQiPT09KCJyaWdodCI9PT1lLnRleHRBbGlnbj8icmlnaHQiOiJsZWZ0Iik/IkxlZnQiOiJSaWdodCIpLGE9Z2V0TWVhc3VyZW1lbnQoZVtpXSwiMHB4Iik7ZVtpXT1hLXQrInB4In1mdW5jdGlvbiBzZXRBY2Nlc3MoZSx0KXtzd2l0Y2goZS5hY2Nlc3Mpe2Nhc2Uibm9uSW50ZXJhY3RpdmUiOnQucHVzaCgieGZhTm9uSW50ZXJhY3RpdmUiKTticmVhaztjYXNlInJlYWRPbmx5Ijp0LnB1c2goInhmYVJlYWRPbmx5Iik7YnJlYWs7Y2FzZSJwcm90ZWN0ZWQiOnQucHVzaCgieGZhRGlzYWJsZWQiKX19ZnVuY3Rpb24gaXNQcmludE9ubHkoZSl7cmV0dXJuIGUucmVsZXZhbnQubGVuZ3RoPjAmJiFlLnJlbGV2YW50WzBdLmV4Y2x1ZGVkJiYicHJpbnQiPT09ZS5yZWxldmFudFswXS52aWV3bmFtZX1mdW5jdGlvbiBnZXRDdXJyZW50UGFyYShlKXtjb25zdCB0PWVbaHNdKClbWnJdLnBhcmFTdGFjaztyZXR1cm4gdC5sZW5ndGg/dC5hdCgtMSk6bnVsbH1mdW5jdGlvbiBzZXRQYXJhKGUsdCxpKXtpZihpLmF0dHJpYnV0ZXMuY2xhc3M/LmluY2x1ZGVzKCJ4ZmFSaWNoIikpe2lmKHQpeyIiPT09ZS5oJiYodC5oZWlnaHQ9ImF1dG8iKTsiIj09PWUudyYmKHQud2lkdGg9ImF1dG8iKX1jb25zdCBhPWdldEN1cnJlbnRQYXJhKGUpO2lmKGEpe2NvbnN0IGU9aS5hdHRyaWJ1dGVzLnN0eWxlO2UuZGlzcGxheT0iZmxleCI7ZS5mbGV4RGlyZWN0aW9uPSJjb2x1bW4iO3N3aXRjaChhLnZBbGlnbil7Y2FzZSJ0b3AiOmUuanVzdGlmeUNvbnRlbnQ9InN0YXJ0IjticmVhaztjYXNlImJvdHRvbSI6ZS5qdXN0aWZ5Q29udGVudD0iZW5kIjticmVhaztjYXNlIm1pZGRsZSI6ZS5qdXN0aWZ5Q29udGVudD0iY2VudGVyIn1jb25zdCB0PWFbX3NdKCk7Zm9yKGNvbnN0W2ksYV1vZiBPYmplY3QuZW50cmllcyh0KSlpIGluIGV8fChlW2ldPWEpfX19ZnVuY3Rpb24gc2V0Rm9udEZhbWlseShlLHQsaSxhKXtpZighaSl7ZGVsZXRlIGEuZm9udEZhbWlseTtyZXR1cm59Y29uc3Qgcj1zdHJpcFF1b3RlcyhlLnR5cGVmYWNlKTthLmZvbnRGYW1pbHk9YCIke3J9ImA7Y29uc3Qgcz1pLmZpbmQocik7aWYocyl7Y29uc3R7Zm9udEZhbWlseTppfT1zLnJlZ3VsYXIuY3NzRm9udEluZm87aSE9PXImJihhLmZvbnRGYW1pbHk9YCIke2l9ImApO2NvbnN0IG49Z2V0Q3VycmVudFBhcmEodCk7aWYobiYmIiIhPT1uLmxpbmVIZWlnaHQpcmV0dXJuO2lmKGEubGluZUhlaWdodClyZXR1cm47Y29uc3Qgbz1zZWxlY3RGb250KGUscyk7byYmKGEubGluZUhlaWdodD1NYXRoLm1heCgxLjIsby5saW5lSGVpZ2h0KSl9fWZ1bmN0aW9uIGZpeFVSTChlKXtjb25zdCB0PWNyZWF0ZVZhbGlkQWJzb2x1dGVVcmwoZSxudWxsLHthZGREZWZhdWx0UHJvdG9jb2w6ITAsdHJ5Q29udmVydEVuY29kaW5nOiEwfSk7cmV0dXJuIHQ/dC5ocmVmOm51bGx9ZnVuY3Rpb24gY3JlYXRlTGluZShlLHQpe3JldHVybntuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6e2NsYXNzOlsibHItdGIiPT09ZS5sYXlvdXQ/InhmYUxyIjoieGZhUmwiXX0sY2hpbGRyZW46dH19ZnVuY3Rpb24gZmx1c2hIVE1MKGUpe2lmKCFlW1pyXSlyZXR1cm4gbnVsbDtjb25zdCB0PXtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6ZVtacl0uYXR0cmlidXRlcyxjaGlsZHJlbjplW1pyXS5jaGlsZHJlbn07aWYoZVtacl0uZmFpbGluZ05vZGUpe2NvbnN0IGk9ZVtacl0uZmFpbGluZ05vZGVbenJdKCk7aSYmKGUubGF5b3V0LmVuZHNXaXRoKCItdGIiKT90LmNoaWxkcmVuLnB1c2goY3JlYXRlTGluZShlLFtpXSkpOnQuY2hpbGRyZW4ucHVzaChpKSl9cmV0dXJuIDA9PT10LmNoaWxkcmVuLmxlbmd0aD9udWxsOnR9ZnVuY3Rpb24gYWRkSFRNTChlLHQsaSl7Y29uc3QgYT1lW1pyXSxyPWEuYXZhaWxhYmxlU3BhY2UsW3MsbixvLGddPWk7c3dpdGNoKGUubGF5b3V0KXtjYXNlInBvc2l0aW9uIjphLndpZHRoPU1hdGgubWF4KGEud2lkdGgscytvKTthLmhlaWdodD1NYXRoLm1heChhLmhlaWdodCxuK2cpO2EuY2hpbGRyZW4ucHVzaCh0KTticmVhaztjYXNlImxyLXRiIjpjYXNlInJsLXRiIjppZighYS5saW5lfHwxPT09YS5hdHRlbXB0KXthLmxpbmU9Y3JlYXRlTGluZShlLFtdKTthLmNoaWxkcmVuLnB1c2goYS5saW5lKTthLm51bWJlckluTGluZT0wfWEubnVtYmVySW5MaW5lKz0xO2EubGluZS5jaGlsZHJlbi5wdXNoKHQpO2lmKDA9PT1hLmF0dGVtcHQpe2EuY3VycmVudFdpZHRoKz1vO2EuaGVpZ2h0PU1hdGgubWF4KGEuaGVpZ2h0LGEucHJldkhlaWdodCtnKX1lbHNle2EuY3VycmVudFdpZHRoPW87YS5wcmV2SGVpZ2h0PWEuaGVpZ2h0O2EuaGVpZ2h0Kz1nO2EuYXR0ZW1wdD0wfWEud2lkdGg9TWF0aC5tYXgoYS53aWR0aCxhLmN1cnJlbnRXaWR0aCk7YnJlYWs7Y2FzZSJybC1yb3ciOmNhc2Uicm93Ijp7YS5jaGlsZHJlbi5wdXNoKHQpO2Eud2lkdGgrPW87YS5oZWlnaHQ9TWF0aC5tYXgoYS5oZWlnaHQsZyk7Y29uc3QgZT1tZWFzdXJlVG9TdHJpbmcoYS5oZWlnaHQpO2Zvcihjb25zdCB0IG9mIGEuY2hpbGRyZW4pdC5hdHRyaWJ1dGVzLnN0eWxlLmhlaWdodD1lO2JyZWFrfWNhc2UidGFibGUiOmNhc2UidGIiOmEud2lkdGg9TWF0aC5taW4oci53aWR0aCxNYXRoLm1heChhLndpZHRoLG8pKTthLmhlaWdodCs9ZzthLmNoaWxkcmVuLnB1c2godCl9fWZ1bmN0aW9uIGdldEF2YWlsYWJsZVNwYWNlKGUpe2NvbnN0IHQ9ZVtacl0uYXZhaWxhYmxlU3BhY2UsaT1lLm1hcmdpbj9lLm1hcmdpbi50b3BJbnNldCtlLm1hcmdpbi5ib3R0b21JbnNldDowLGE9ZS5tYXJnaW4/ZS5tYXJnaW4ubGVmdEluc2V0K2UubWFyZ2luLnJpZ2h0SW5zZXQ6MDtzd2l0Y2goZS5sYXlvdXQpe2Nhc2UibHItdGIiOmNhc2UicmwtdGIiOnJldHVybiAwPT09ZVtacl0uYXR0ZW1wdD97d2lkdGg6dC53aWR0aC1hLWVbWnJdLmN1cnJlbnRXaWR0aCxoZWlnaHQ6dC5oZWlnaHQtaS1lW1pyXS5wcmV2SGVpZ2h0fTp7d2lkdGg6dC53aWR0aC1hLGhlaWdodDp0LmhlaWdodC1pLWVbWnJdLmhlaWdodH07Y2FzZSJybC1yb3ciOmNhc2Uicm93IjpyZXR1cm57d2lkdGg6ZVtacl0uY29sdW1uV2lkdGhzLnNsaWNlKGVbWnJdLmN1cnJlbnRDb2x1bW4pLnJlZHVjZSgoKGUsdCk9PmUrdCkpLGhlaWdodDp0LmhlaWdodC1hfTtjYXNlInRhYmxlIjpjYXNlInRiIjpyZXR1cm57d2lkdGg6dC53aWR0aC1hLGhlaWdodDp0LmhlaWdodC1pLWVbWnJdLmhlaWdodH07ZGVmYXVsdDpyZXR1cm4gdH19ZnVuY3Rpb24gY2hlY2tEaW1lbnNpb25zKGUsdCl7aWYobnVsbD09PWVbaHNdKClbWnJdLmZpcnN0VW5zcGxpdHRhYmxlKXJldHVybiEwO2lmKDA9PT1lLnd8fDA9PT1lLmgpcmV0dXJuITA7Y29uc3QgaT1lW2NzXSgpLGE9aVtacl0/LmF0dGVtcHR8fDAsWyxyLHMsbl09ZnVuY3Rpb24gZ2V0VHJhbnNmb3JtZWRCQm94KGUpe2xldCB0LGksYT0iIj09PWUudz9OYU46ZS53LHI9IiI9PT1lLmg/TmFOOmUuaCxbcyxuXT1bMCwwXTtzd2l0Y2goZS5hbmNob3JUeXBlfHwiIil7Y2FzZSJib3R0b21DZW50ZXIiOltzLG5dPVthLzIscl07YnJlYWs7Y2FzZSJib3R0b21MZWZ0IjpbcyxuXT1bMCxyXTticmVhaztjYXNlImJvdHRvbVJpZ2h0IjpbcyxuXT1bYSxyXTticmVhaztjYXNlIm1pZGRsZUNlbnRlciI6W3Msbl09W2EvMixyLzJdO2JyZWFrO2Nhc2UibWlkZGxlTGVmdCI6W3Msbl09WzAsci8yXTticmVhaztjYXNlIm1pZGRsZVJpZ2h0IjpbcyxuXT1bYSxyLzJdO2JyZWFrO2Nhc2UidG9wQ2VudGVyIjpbcyxuXT1bYS8yLDBdO2JyZWFrO2Nhc2UidG9wUmlnaHQiOltzLG5dPVthLDBdfXN3aXRjaChlLnJvdGF0ZXx8MCl7Y2FzZSAwOlt0LGldPVstcywtbl07YnJlYWs7Y2FzZSA5MDpbdCxpXT1bLW4sc107W2Escl09W3IsLWFdO2JyZWFrO2Nhc2UgMTgwOlt0LGldPVtzLG5dO1thLHJdPVstYSwtcl07YnJlYWs7Y2FzZSAyNzA6W3QsaV09W24sLXNdO1thLHJdPVstcixhXX1yZXR1cm5bZS54K3QrTWF0aC5taW4oMCxhKSxlLnkraStNYXRoLm1pbigwLHIpLE1hdGguYWJzKGEpLE1hdGguYWJzKHIpXX0oZSk7c3dpdGNoKGkubGF5b3V0KXtjYXNlImxyLXRiIjpjYXNlInJsLXRiIjpyZXR1cm4gMD09PWE/ZVtoc10oKVtacl0ubm9MYXlvdXRGYWlsdXJlPyIiIT09ZS53P01hdGgucm91bmQocy10LndpZHRoKTw9Mjp0LndpZHRoPjI6ISgiIiE9PWUuaCYmTWF0aC5yb3VuZChuLXQuaGVpZ2h0KT4yKSYmKCIiIT09ZS53P01hdGgucm91bmQocy10LndpZHRoKTw9Mnx8MD09PWlbWnJdLm51bWJlckluTGluZSYmdC5oZWlnaHQ+Mjp0LndpZHRoPjIpOiEhZVtoc10oKVtacl0ubm9MYXlvdXRGYWlsdXJlfHwhKCIiIT09ZS5oJiZNYXRoLnJvdW5kKG4tdC5oZWlnaHQpPjIpJiYoKCIiPT09ZS53fHxNYXRoLnJvdW5kKHMtdC53aWR0aCk8PTJ8fCFpW2JzXSgpKSYmdC5oZWlnaHQ+Mik7Y2FzZSJ0YWJsZSI6Y2FzZSJ0YiI6cmV0dXJuISFlW2hzXSgpW1pyXS5ub0xheW91dEZhaWx1cmV8fCgiIj09PWUuaHx8ZVt3c10oKT8oIiI9PT1lLnd8fE1hdGgucm91bmQocy10LndpZHRoKTw9Mnx8IWlbYnNdKCkpJiZ0LmhlaWdodD4yOk1hdGgucm91bmQobi10LmhlaWdodCk8PTIpO2Nhc2UicG9zaXRpb24iOmlmKGVbaHNdKClbWnJdLm5vTGF5b3V0RmFpbHVyZSlyZXR1cm4hMDtpZigiIj09PWUuaHx8TWF0aC5yb3VuZChuK3ItdC5oZWlnaHQpPD0yKXJldHVybiEwO3JldHVybiBuK3I+ZVtoc10oKVtacl0uY3VycmVudENvbnRlbnRBcmVhLmg7Y2FzZSJybC1yb3ciOmNhc2Uicm93IjpyZXR1cm4hIWVbaHNdKClbWnJdLm5vTGF5b3V0RmFpbHVyZXx8KCIiPT09ZS5ofHxNYXRoLnJvdW5kKG4tdC5oZWlnaHQpPD0yKTtkZWZhdWx0OnJldHVybiEwfX1jb25zdCBNbj1Bbi50ZW1wbGF0ZS5pZCxVbj0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhuPS9eSChcZCspJC8sTG49bmV3IFNldChbImltYWdlL2dpZiIsImltYWdlL2pwZWciLCJpbWFnZS9qcGciLCJpbWFnZS9wanBlZyIsImltYWdlL3BuZyIsImltYWdlL2FwbmciLCJpbWFnZS94LXBuZyIsImltYWdlL2JtcCIsImltYWdlL3gtbXMtYm1wIiwiaW1hZ2UvdGlmZiIsImltYWdlL3RpZiIsImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSJdKSxIbj1bW1s2Niw3N10sImltYWdlL2JtcCJdLFtbMjU1LDIxNiwyNTVdLCJpbWFnZS9qcGVnIl0sW1s3Myw3Myw0MiwwXSwiaW1hZ2UvdGlmZiJdLFtbNzcsNzcsMCw0Ml0sImltYWdlL3RpZmYiXSxbWzcxLDczLDcwLDU2LDU3LDk3XSwiaW1hZ2UvZ2lmIl0sW1sxMzcsODAsNzgsNzEsMTMsMTAsMjYsMTBdLCJpbWFnZS9wbmciXV07ZnVuY3Rpb24gZ2V0Qm9yZGVyRGltcyhlKXtpZighZXx8IWUuYm9yZGVyKXJldHVybnt3OjAsaDowfTtjb25zdCB0PWUuYm9yZGVyW3NzXSgpO3JldHVybiB0P3t3OnQud2lkdGhzWzBdK3Qud2lkdGhzWzJdK3QuaW5zZXRzWzBdK3QuaW5zZXRzWzJdLGg6dC53aWR0aHNbMV0rdC53aWR0aHNbM10rdC5pbnNldHNbMV0rdC5pbnNldHNbM119Ont3OjAsaDowfX1mdW5jdGlvbiBoYXNNYXJnaW4oZSl7cmV0dXJuIGUubWFyZ2luJiYoZS5tYXJnaW4udG9wSW5zZXR8fGUubWFyZ2luLnJpZ2h0SW5zZXR8fGUubWFyZ2luLmJvdHRvbUluc2V0fHxlLm1hcmdpbi5sZWZ0SW5zZXQpfWZ1bmN0aW9uIF9zZXRWYWx1ZShlLHQpe2lmKCFlLnZhbHVlKXtjb25zdCB0PW5ldyBWYWx1ZSh7fSk7ZVtZcl0odCk7ZS52YWx1ZT10fWUudmFsdWVbT3NdKHQpfWZ1bmN0aW9uKmdldENvbnRhaW5lZENoaWxkcmVuKGUpe2Zvcihjb25zdCB0IG9mIGVbb3NdKCkpdCBpbnN0YW5jZW9mIFN1YmZvcm1TZXQ/eWllbGQqdFtnc10oKTp5aWVsZCB0fWZ1bmN0aW9uIGlzUmVxdWlyZWQoZSl7cmV0dXJuImVycm9yIj09PWUudmFsaWRhdGU/Lm51bGxUZXN0fWZ1bmN0aW9uIHNldFRhYkluZGV4KGUpe2Zvcig7ZTspe2lmKCFlLnRyYXZlcnNhbCl7ZVtXc109ZVtsc10oKVtXc107cmV0dXJufWlmKGVbV3NdKXJldHVybjtsZXQgdD1udWxsO2Zvcihjb25zdCBpIG9mIGUudHJhdmVyc2FsW29zXSgpKWlmKCJuZXh0Ij09PWkub3BlcmF0aW9uKXt0PWk7YnJlYWt9aWYoIXR8fCF0LnJlZil7ZVtXc109ZVtsc10oKVtXc107cmV0dXJufWNvbnN0IGk9ZVtoc10oKTtlW1dzXT0rK2lbV3NdO2NvbnN0IGE9aVtLc10odC5yZWYsZSk7aWYoIWEpcmV0dXJuO2U9YVswXX19ZnVuY3Rpb24gYXBwbHlBc3Npc3QoZSx0KXtjb25zdCBpPWUuYXNzaXN0O2lmKGkpe2NvbnN0IGU9aVtWc10oKTtlJiYodC50aXRsZT1lKTtjb25zdCBhPWkucm9sZS5tYXRjaCh4bik7aWYoYSl7Y29uc3QgZT0iaGVhZGluZyIsaT1hWzFdO3Qucm9sZT1lO3RbImFyaWEtbGV2ZWwiXT1pfX1pZigidGFibGUiPT09ZS5sYXlvdXQpdC5yb2xlPSJ0YWJsZSI7ZWxzZSBpZigicm93Ij09PWUubGF5b3V0KXQucm9sZT0icm93IjtlbHNle2NvbnN0IGk9ZVtsc10oKTsicm93Ij09PWkubGF5b3V0JiYodC5yb2xlPSJUSCI9PT1pLmFzc2lzdD8ucm9sZT8iY29sdW1uaGVhZGVyIjoiY2VsbCIpfX1mdW5jdGlvbiBhcmlhTGFiZWwoZSl7aWYoIWUuYXNzaXN0KXJldHVybiBudWxsO2NvbnN0IHQ9ZS5hc3Npc3Q7cmV0dXJuIHQuc3BlYWsmJiIiIT09dC5zcGVha1tqcl0/dC5zcGVha1tqcl06dC50b29sVGlwP3QudG9vbFRpcFtqcl06bnVsbH1mdW5jdGlvbiB2YWx1ZVRvSHRtbChlKXtyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6e2NsYXNzOlsieGZhUmljaCJdLHN0eWxlOk9iamVjdC5jcmVhdGUobnVsbCl9LGNoaWxkcmVuOlt7bmFtZToic3BhbiIsYXR0cmlidXRlczp7c3R5bGU6T2JqZWN0LmNyZWF0ZShudWxsKX0sdmFsdWU6ZX1dfSl9ZnVuY3Rpb24gc2V0Rmlyc3RVbnNwbGl0dGFibGUoZSl7Y29uc3QgdD1lW2hzXSgpO2lmKG51bGw9PT10W1pyXS5maXJzdFVuc3BsaXR0YWJsZSl7dFtacl0uZmlyc3RVbnNwbGl0dGFibGU9ZTt0W1pyXS5ub0xheW91dEZhaWx1cmU9ITB9fWZ1bmN0aW9uIHVuc2V0Rmlyc3RVbnNwbGl0dGFibGUoZSl7Y29uc3QgdD1lW2hzXSgpO3RbWnJdLmZpcnN0VW5zcGxpdHRhYmxlPT09ZSYmKHRbWnJdLm5vTGF5b3V0RmFpbHVyZT0hMSl9ZnVuY3Rpb24gaGFuZGxlQnJlYWsoZSl7aWYoZVtacl0pcmV0dXJuITE7ZVtacl09T2JqZWN0LmNyZWF0ZShudWxsKTtpZigiYXV0byI9PT1lLnRhcmdldFR5cGUpcmV0dXJuITE7Y29uc3QgdD1lW2hzXSgpO2xldCBpPW51bGw7aWYoZS50YXJnZXQpe2k9dFtLc10oZS50YXJnZXQsZVtsc10oKSk7aWYoIWkpcmV0dXJuITE7aT1pWzBdfWNvbnN0e2N1cnJlbnRQYWdlQXJlYTphLGN1cnJlbnRDb250ZW50QXJlYTpyfT10W1pyXTtpZigicGFnZUFyZWEiPT09ZS50YXJnZXRUeXBlKXtpIGluc3RhbmNlb2YgUGFnZUFyZWF8fChpPW51bGwpO2lmKGUuc3RhcnROZXcpe2VbWnJdLnRhcmdldD1pfHxhO3JldHVybiEwfWlmKGkmJmkhPT1hKXtlW1pyXS50YXJnZXQ9aTtyZXR1cm4hMH1yZXR1cm4hMX1pIGluc3RhbmNlb2YgQ29udGVudEFyZWF8fChpPW51bGwpO2NvbnN0IHM9aSYmaVtsc10oKTtsZXQgbixvPXM7aWYoZS5zdGFydE5ldylpZihpKXtjb25zdCBlPXMuY29udGVudEFyZWEuY2hpbGRyZW4sdD1lLmluZGV4T2YociksYT1lLmluZGV4T2YoaSk7LTEhPT10JiZ0PGEmJihvPW51bGwpO249YS0xfWVsc2Ugbj1hLmNvbnRlbnRBcmVhLmNoaWxkcmVuLmluZGV4T2Yocik7ZWxzZXtpZighaXx8aT09PXIpcmV0dXJuITE7bj1zLmNvbnRlbnRBcmVhLmNoaWxkcmVuLmluZGV4T2YoaSktMTtvPXM9PT1hP251bGw6c31lW1pyXS50YXJnZXQ9bztlW1pyXS5pbmRleD1uO3JldHVybiEwfWZ1bmN0aW9uIGhhbmRsZU92ZXJmbG93KGUsdCxpKXtjb25zdCBhPWVbaHNdKCkscj1hW1pyXS5ub0xheW91dEZhaWx1cmUscz10W2NzXTt0W2NzXT0oKT0+ZTthW1pyXS5ub0xheW91dEZhaWx1cmU9ITA7Y29uc3Qgbj10W1ZzXShpKTtlW3ZyXShuLmh0bWwsbi5iYm94KTthW1pyXS5ub0xheW91dEZhaWx1cmU9cjt0W2NzXT1zfWNsYXNzIEFwcGVhcmFuY2VGaWx0ZXIgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sImFwcGVhcmFuY2VGaWx0ZXIiKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudHlwZT1nZXRTdHJpbmdPcHRpb24oZS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIEFyYyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiYXJjIiwhMCk7dGhpcy5jaXJjdWxhcj1nZXRJbnRlZ2VyKHtkYXRhOmUuY2lyY3VsYXIsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLmhhbmQ9Z2V0U3RyaW5nT3B0aW9uKGUuaGFuZCxbImV2ZW4iLCJsZWZ0IiwicmlnaHQiXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnN0YXJ0QW5nbGU9Z2V0RmxvYXQoe2RhdGE6ZS5zdGFydEFuZ2xlLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PiEwfSk7dGhpcy5zd2VlcEFuZ2xlPWdldEZsb2F0KHtkYXRhOmUuc3dlZXBBbmdsZSxkZWZhdWx0VmFsdWU6MzYwLHZhbGlkYXRlOmU9PiEwfSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZWRnZT1udWxsO3RoaXMuZmlsbD1udWxsfVtWc10oKXtjb25zdCBlPXRoaXMuZWRnZXx8bmV3IEVkZ2Uoe30pLHQ9ZVtfc10oKSxpPU9iamVjdC5jcmVhdGUobnVsbCk7InZpc2libGUiPT09dGhpcy5maWxsPy5wcmVzZW5jZT9PYmplY3QuYXNzaWduKGksdGhpcy5maWxsW19zXSgpKTppLmZpbGw9InRyYW5zcGFyZW50IjtpLnN0cm9rZVdpZHRoPW1lYXN1cmVUb1N0cmluZygidmlzaWJsZSI9PT1lLnByZXNlbmNlP2UudGhpY2tuZXNzOjApO2kuc3Ryb2tlPXQuY29sb3I7bGV0IGE7Y29uc3Qgcj17eG1sbnM6VW4sc3R5bGU6e3dpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLG92ZXJmbG93OiJ2aXNpYmxlIn19O2lmKDM2MD09PXRoaXMuc3dlZXBBbmdsZSlhPXtuYW1lOiJlbGxpcHNlIixhdHRyaWJ1dGVzOnt4bWxuczpVbixjeDoiNTAlIixjeToiNTAlIixyeDoiNTAlIixyeToiNTAlIixzdHlsZTppfX07ZWxzZXtjb25zdCBlPXRoaXMuc3RhcnRBbmdsZSpNYXRoLlBJLzE4MCx0PXRoaXMuc3dlZXBBbmdsZSpNYXRoLlBJLzE4MCxzPXRoaXMuc3dlZXBBbmdsZT4xODA/MTowLFtuLG8sZyxjXT1bNTAqKDErTWF0aC5jb3MoZSkpLDUwKigxLU1hdGguc2luKGUpKSw1MCooMStNYXRoLmNvcyhlK3QpKSw1MCooMS1NYXRoLnNpbihlK3QpKV07YT17bmFtZToicGF0aCIsYXR0cmlidXRlczp7eG1sbnM6VW4sZDpgTSAke259ICR7b30gQSA1MCA1MCAwICR7c30gMCAke2d9ICR7Y31gLHZlY3RvckVmZmVjdDoibm9uLXNjYWxpbmctc3Ryb2tlIixzdHlsZTppfX07T2JqZWN0LmFzc2lnbihyLHt2aWV3Qm94OiIwIDAgMTAwIDEwMCIscHJlc2VydmVBc3BlY3RSYXRpbzoibm9uZSJ9KX1jb25zdCBzPXtuYW1lOiJzdmciLGNoaWxkcmVuOlthXSxhdHRyaWJ1dGVzOnJ9O2lmKGhhc01hcmdpbih0aGlzW2xzXSgpW2xzXSgpKSlyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6e3N0eWxlOntkaXNwbGF5OiJpbmxpbmUiLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUifX0sY2hpbGRyZW46W3NdfSk7cy5hdHRyaWJ1dGVzLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhzKX19Y2xhc3MgQXJlYSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiYXJlYSIsITApO3RoaXMuY29sU3Bhbj1nZXRJbnRlZ2VyKHtkYXRhOmUuY29sU3BhbixkZWZhdWx0VmFsdWU6MSx2YWxpZGF0ZTplPT5lPj0xfHwtMT09PWV9KTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMucmVsZXZhbnQ9Z2V0UmVsZXZhbnQoZS5yZWxldmFudCk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMueD1nZXRNZWFzdXJlbWVudChlLngsIjBwdCIpO3RoaXMueT1nZXRNZWFzdXJlbWVudChlLnksIjBwdCIpO3RoaXMuZGVzYz1udWxsO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5hcmVhPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRyYXc9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZXhPYmplY3Q9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZXhjbEdyb3VwPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmZpZWxkPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnN1YmZvcm09bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuc3ViZm9ybVNldD1uZXcgWEZBT2JqZWN0QXJyYXl9Kltnc10oKXt5aWVsZCpnZXRDb250YWluZWRDaGlsZHJlbih0aGlzKX1bRHNdKCl7cmV0dXJuITB9W2ZzXSgpe3JldHVybiEwfVt2cl0oZSx0KXtjb25zdFtpLGEscixzXT10O3RoaXNbWnJdLndpZHRoPU1hdGgubWF4KHRoaXNbWnJdLndpZHRoLGkrcik7dGhpc1tacl0uaGVpZ2h0PU1hdGgubWF4KHRoaXNbWnJdLmhlaWdodCxhK3MpO3RoaXNbWnJdLmNoaWxkcmVuLnB1c2goZSl9W2VzXSgpe3JldHVybiB0aGlzW1pyXS5hdmFpbGFibGVTcGFjZX1bVnNdKGUpe2NvbnN0IHQ9dG9TdHlsZSh0aGlzLCJwb3NpdGlvbiIpLGk9e3N0eWxlOnQsaWQ6dGhpc1t6c10sY2xhc3M6WyJ4ZmFBcmVhIl19O2lzUHJpbnRPbmx5KHRoaXMpJiZpLmNsYXNzLnB1c2goInhmYVByaW50T25seSIpO3RoaXMubmFtZSYmKGkueGZhTmFtZT10aGlzLm5hbWUpO2NvbnN0IGE9W107dGhpc1tacl09e2NoaWxkcmVuOmEsd2lkdGg6MCxoZWlnaHQ6MCxhdmFpbGFibGVTcGFjZTplfTtjb25zdCByPXRoaXNbS3JdKHtmaWx0ZXI6bmV3IFNldChbImFyZWEiLCJkcmF3IiwiZmllbGQiLCJleGNsR3JvdXAiLCJzdWJmb3JtIiwic3ViZm9ybVNldCJdKSxpbmNsdWRlOiEwfSk7aWYoIXIuc3VjY2Vzcyl7aWYoci5pc0JyZWFrKCkpcmV0dXJuIHI7ZGVsZXRlIHRoaXNbWnJdO3JldHVybiBIVE1MUmVzdWx0LkZBSUxVUkV9dC53aWR0aD1tZWFzdXJlVG9TdHJpbmcodGhpc1tacl0ud2lkdGgpO3QuaGVpZ2h0PW1lYXN1cmVUb1N0cmluZyh0aGlzW1pyXS5oZWlnaHQpO2NvbnN0IHM9e25hbWU6ImRpdiIsYXR0cmlidXRlczppLGNoaWxkcmVuOmF9LG49W3RoaXMueCx0aGlzLnksdGhpc1tacl0ud2lkdGgsdGhpc1tacl0uaGVpZ2h0XTtkZWxldGUgdGhpc1tacl07cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhzLG4pfX1jbGFzcyBBc3Npc3QgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sImFzc2lzdCIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5yb2xlPWUucm9sZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuc3BlYWs9bnVsbDt0aGlzLnRvb2xUaXA9bnVsbH1bVnNdKCl7cmV0dXJuIHRoaXMudG9vbFRpcD8uW2pyXXx8bnVsbH19Y2xhc3MgQmFyY29kZSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiYmFyY29kZSIsITApO3RoaXMuY2hhckVuY29kaW5nPWdldEtleXdvcmQoe2RhdGE6ZS5jaGFyRW5jb2Rpbmc/ZS5jaGFyRW5jb2RpbmcudG9Mb3dlckNhc2UoKToiIixkZWZhdWx0VmFsdWU6IiIsdmFsaWRhdGU6ZT0+WyJ1dGYtOCIsImJpZy1maXZlIiwiZm9udHNwZWNpZmljIiwiZ2JrIiwiZ2ItMTgwMzAiLCJnYi0yMzEyIiwia3NjLTU2MDEiLCJub25lIiwic2hpZnQtamlzIiwidWNzLTIiLCJ1dGYtMTYiXS5pbmNsdWRlcyhlKXx8ZS5tYXRjaCgvaXNvLTg4NTktXGR7Mn0vKX0pO3RoaXMuY2hlY2tzdW09Z2V0U3RyaW5nT3B0aW9uKGUuY2hlY2tzdW0sWyJub25lIiwiMW1vZDEwIiwiMW1vZDEwXzFtb2QxMSIsIjJtb2QxMCIsImF1dG8iXSk7dGhpcy5kYXRhQ29sdW1uQ291bnQ9Z2V0SW50ZWdlcih7ZGF0YTplLmRhdGFDb2x1bW5Db3VudCxkZWZhdWx0VmFsdWU6LTEsdmFsaWRhdGU6ZT0+ZT49MH0pO3RoaXMuZGF0YUxlbmd0aD1nZXRJbnRlZ2VyKHtkYXRhOmUuZGF0YUxlbmd0aCxkZWZhdWx0VmFsdWU6LTEsdmFsaWRhdGU6ZT0+ZT49MH0pO3RoaXMuZGF0YVByZXA9Z2V0U3RyaW5nT3B0aW9uKGUuZGF0YVByZXAsWyJub25lIiwiZmxhdGVDb21wcmVzcyJdKTt0aGlzLmRhdGFSb3dDb3VudD1nZXRJbnRlZ2VyKHtkYXRhOmUuZGF0YVJvd0NvdW50LGRlZmF1bHRWYWx1ZTotMSx2YWxpZGF0ZTplPT5lPj0wfSk7dGhpcy5lbmRDaGFyPWUuZW5kQ2hhcnx8IiI7dGhpcy5lcnJvckNvcnJlY3Rpb25MZXZlbD1nZXRJbnRlZ2VyKHtkYXRhOmUuZXJyb3JDb3JyZWN0aW9uTGV2ZWwsZGVmYXVsdFZhbHVlOi0xLHZhbGlkYXRlOmU9PmU+PTAmJmU8PTh9KTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubW9kdWxlSGVpZ2h0PWdldE1lYXN1cmVtZW50KGUubW9kdWxlSGVpZ2h0LCI1bW0iKTt0aGlzLm1vZHVsZVdpZHRoPWdldE1lYXN1cmVtZW50KGUubW9kdWxlV2lkdGgsIjAuMjVtbSIpO3RoaXMucHJpbnRDaGVja0RpZ2l0PWdldEludGVnZXIoe2RhdGE6ZS5wcmludENoZWNrRGlnaXQsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLnJvd0NvbHVtblJhdGlvPWdldFJhdGlvKGUucm93Q29sdW1uUmF0aW8pO3RoaXMuc3RhcnRDaGFyPWUuc3RhcnRDaGFyfHwiIjt0aGlzLnRleHRMb2NhdGlvbj1nZXRTdHJpbmdPcHRpb24oZS50ZXh0TG9jYXRpb24sWyJiZWxvdyIsImFib3ZlIiwiYWJvdmVFbWJlZGRlZCIsImJlbG93RW1iZWRkZWQiLCJub25lIl0pO3RoaXMudHJ1bmNhdGU9Z2V0SW50ZWdlcih7ZGF0YTplLnRydW5jYXRlLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfSk7dGhpcy50eXBlPWdldFN0cmluZ09wdGlvbihlLnR5cGU/ZS50eXBlLnRvTG93ZXJDYXNlKCk6IiIsWyJhenRlYyIsImNvZGFiYXIiLCJjb2RlMm9mNWluZHVzdHJpYWwiLCJjb2RlMm9mNWludGVybGVhdmVkIiwiY29kZTJvZjVtYXRyaXgiLCJjb2RlMm9mNXN0YW5kYXJkIiwiY29kZTNvZjkiLCJjb2RlM29mOWV4dGVuZGVkIiwiY29kZTExIiwiY29kZTQ5IiwiY29kZTkzIiwiY29kZTEyOCIsImNvZGUxMjhhIiwiY29kZTEyOGIiLCJjb2RlMTI4YyIsImNvZGUxMjhzc2NjIiwiZGF0YW1hdHJpeCIsImVhbjgiLCJlYW44YWRkMiIsImVhbjhhZGQ1IiwiZWFuMTMiLCJlYW4xM2FkZDIiLCJlYW4xM2FkZDUiLCJlYW4xM3B3Y2QiLCJmaW0iLCJsb2dtYXJzIiwibWF4aWNvZGUiLCJtc2kiLCJwZGY0MTciLCJwZGY0MTdtYWNybyIsInBsZXNzZXkiLCJwb3N0YXVzY3VzdDIiLCJwb3N0YXVzY3VzdDMiLCJwb3N0YXVzcmVwbHlwYWlkIiwicG9zdGF1c3N0YW5kYXJkIiwicG9zdHVrcm00c2NjIiwicG9zdHVzZHBiYyIsInBvc3R1c2ltYiIsInBvc3R1c3N0YW5kYXJkIiwicG9zdHVzNXppcCIsInFyY29kZSIsInJmaWQiLCJyc3MxNCIsInJzczE0ZXhwYW5kZWQiLCJyc3MxNGxpbWl0ZWQiLCJyc3MxNHN0YWNrZWQiLCJyc3MxNHN0YWNrZWRvbW5pIiwicnNzMTR0cnVuY2F0ZWQiLCJ0ZWxlcGVuIiwidWNjMTI4IiwidWNjMTI4cmFuZG9tIiwidWNjMTI4c3NjYyIsInVwY2EiLCJ1cGNhYWRkMiIsInVwY2FhZGQ1IiwidXBjYXB3Y2QiLCJ1cGNlIiwidXBjZWFkZDIiLCJ1cGNlYWRkNSIsInVwY2VhbjIiLCJ1cGNlYW41IiwidXBzbWF4aWNvZGUiXSk7dGhpcy51cHNNb2RlPWdldFN0cmluZ09wdGlvbihlLnVwc01vZGUsWyJ1c0NhcnJpZXIiLCJpbnRlcm5hdGlvbmFsQ2FycmllciIsInNlY3VyZVN5bWJvbCIsInN0YW5kYXJkU3ltYm9sIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLndpZGVOYXJyb3dSYXRpbz1nZXRSYXRpbyhlLndpZGVOYXJyb3dSYXRpbyk7dGhpcy5lbmNyeXB0PW51bGw7dGhpcy5leHRyYXM9bnVsbH19Y2xhc3MgQmluZCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiYmluZCIsITApO3RoaXMubWF0Y2g9Z2V0U3RyaW5nT3B0aW9uKGUubWF0Y2gsWyJvbmNlIiwiZGF0YVJlZiIsImdsb2JhbCIsIm5vbmUiXSk7dGhpcy5yZWY9ZS5yZWZ8fCIiO3RoaXMucGljdHVyZT1udWxsfX1jbGFzcyBCaW5kSXRlbXMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sImJpbmRJdGVtcyIpO3RoaXMuY29ubmVjdGlvbj1lLmNvbm5lY3Rpb258fCIiO3RoaXMubGFiZWxSZWY9ZS5sYWJlbFJlZnx8IiI7dGhpcy5yZWY9ZS5yZWZ8fCIiO3RoaXMudmFsdWVSZWY9ZS52YWx1ZVJlZnx8IiJ9fWNsYXNzIEJvb2tlbmQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sImJvb2tlbmQiKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubGVhZGVyPWUubGVhZGVyfHwiIjt0aGlzLnRyYWlsZXI9ZS50cmFpbGVyfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIEJvb2xlYW5FbGVtZW50IGV4dGVuZHMgT3B0aW9uMDF7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sImJvb2xlYW4iKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn1bVnNdKGUpe3JldHVybiB2YWx1ZVRvSHRtbCgxPT09dGhpc1tqcl0/IjEiOiIwIil9fWNsYXNzIEJvcmRlciBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiYm9yZGVyIiwhMCk7dGhpcy5icmVhaz1nZXRTdHJpbmdPcHRpb24oZS5icmVhayxbImNsb3NlIiwib3BlbiJdKTt0aGlzLmhhbmQ9Z2V0U3RyaW5nT3B0aW9uKGUuaGFuZCxbImV2ZW4iLCJsZWZ0IiwicmlnaHQiXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnByZXNlbmNlPWdldFN0cmluZ09wdGlvbihlLnByZXNlbmNlLFsidmlzaWJsZSIsImhpZGRlbiIsImluYWN0aXZlIiwiaW52aXNpYmxlIl0pO3RoaXMucmVsZXZhbnQ9Z2V0UmVsZXZhbnQoZS5yZWxldmFudCk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuY29ybmVyPW5ldyBYRkFPYmplY3RBcnJheSg0KTt0aGlzLmVkZ2U9bmV3IFhGQU9iamVjdEFycmF5KDQpO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5maWxsPW51bGw7dGhpcy5tYXJnaW49bnVsbH1bc3NdKCl7aWYoIXRoaXNbWnJdKXtjb25zdCBlPXRoaXMuZWRnZS5jaGlsZHJlbi5zbGljZSgpO2lmKGUubGVuZ3RoPDQpe2NvbnN0IHQ9ZS5hdCgtMSl8fG5ldyBFZGdlKHt9KTtmb3IobGV0IGk9ZS5sZW5ndGg7aTw0O2krKyllLnB1c2godCl9Y29uc3QgdD1lLm1hcCgoZT0+ZS50aGlja25lc3MpKSxpPVswLDAsMCwwXTtpZih0aGlzLm1hcmdpbil7aVswXT10aGlzLm1hcmdpbi50b3BJbnNldDtpWzFdPXRoaXMubWFyZ2luLnJpZ2h0SW5zZXQ7aVsyXT10aGlzLm1hcmdpbi5ib3R0b21JbnNldDtpWzNdPXRoaXMubWFyZ2luLmxlZnRJbnNldH10aGlzW1pyXT17d2lkdGhzOnQsaW5zZXRzOmksZWRnZXM6ZX19cmV0dXJuIHRoaXNbWnJdfVtfc10oKXtjb25zdHtlZGdlczplfT10aGlzW3NzXSgpLHQ9ZS5tYXAoKGU9Pntjb25zdCB0PWVbX3NdKCk7dC5jb2xvcnx8PSIjMDAwMDAwIjtyZXR1cm4gdH0pKSxpPU9iamVjdC5jcmVhdGUobnVsbCk7dGhpcy5tYXJnaW4mJk9iamVjdC5hc3NpZ24oaSx0aGlzLm1hcmdpbltfc10oKSk7InZpc2libGUiPT09dGhpcy5maWxsPy5wcmVzZW5jZSYmT2JqZWN0LmFzc2lnbihpLHRoaXMuZmlsbFtfc10oKSk7aWYodGhpcy5jb3JuZXIuY2hpbGRyZW4uc29tZSgoZT0+MCE9PWUucmFkaXVzKSkpe2NvbnN0IGU9dGhpcy5jb3JuZXIuY2hpbGRyZW4ubWFwKChlPT5lW19zXSgpKSk7aWYoMj09PWUubGVuZ3RofHwzPT09ZS5sZW5ndGgpe2NvbnN0IHQ9ZS5hdCgtMSk7Zm9yKGxldCBpPWUubGVuZ3RoO2k8NDtpKyspZS5wdXNoKHQpfWkuYm9yZGVyUmFkaXVzPWUubWFwKChlPT5lLnJhZGl1cykpLmpvaW4oIiAiKX1zd2l0Y2godGhpcy5wcmVzZW5jZSl7Y2FzZSJpbnZpc2libGUiOmNhc2UiaGlkZGVuIjppLmJvcmRlclN0eWxlPSIiO2JyZWFrO2Nhc2UiaW5hY3RpdmUiOmkuYm9yZGVyU3R5bGU9Im5vbmUiO2JyZWFrO2RlZmF1bHQ6aS5ib3JkZXJTdHlsZT10Lm1hcCgoZT0+ZS5zdHlsZSkpLmpvaW4oIiAiKX1pLmJvcmRlcldpZHRoPXQubWFwKChlPT5lLndpZHRoKSkuam9pbigiICIpO2kuYm9yZGVyQ29sb3I9dC5tYXAoKGU9PmUuY29sb3IpKS5qb2luKCIgIik7cmV0dXJuIGl9fWNsYXNzIEJyZWFrIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJicmVhayIsITApO3RoaXMuYWZ0ZXI9Z2V0U3RyaW5nT3B0aW9uKGUuYWZ0ZXIsWyJhdXRvIiwiY29udGVudEFyZWEiLCJwYWdlQXJlYSIsInBhZ2VFdmVuIiwicGFnZU9kZCJdKTt0aGlzLmFmdGVyVGFyZ2V0PWUuYWZ0ZXJUYXJnZXR8fCIiO3RoaXMuYmVmb3JlPWdldFN0cmluZ09wdGlvbihlLmJlZm9yZSxbImF1dG8iLCJjb250ZW50QXJlYSIsInBhZ2VBcmVhIiwicGFnZUV2ZW4iLCJwYWdlT2RkIl0pO3RoaXMuYmVmb3JlVGFyZ2V0PWUuYmVmb3JlVGFyZ2V0fHwiIjt0aGlzLmJvb2tlbmRMZWFkZXI9ZS5ib29rZW5kTGVhZGVyfHwiIjt0aGlzLmJvb2tlbmRUcmFpbGVyPWUuYm9va2VuZFRyYWlsZXJ8fCIiO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5vdmVyZmxvd0xlYWRlcj1lLm92ZXJmbG93TGVhZGVyfHwiIjt0aGlzLm92ZXJmbG93VGFyZ2V0PWUub3ZlcmZsb3dUYXJnZXR8fCIiO3RoaXMub3ZlcmZsb3dUcmFpbGVyPWUub3ZlcmZsb3dUcmFpbGVyfHwiIjt0aGlzLnN0YXJ0TmV3PWdldEludGVnZXIoe2RhdGE6ZS5zdGFydE5ldyxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTplPT4xPT09ZX0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmV4dHJhcz1udWxsfX1jbGFzcyBCcmVha0FmdGVyIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJicmVha0FmdGVyIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmxlYWRlcj1lLmxlYWRlcnx8IiI7dGhpcy5zdGFydE5ldz1nZXRJbnRlZ2VyKHtkYXRhOmUuc3RhcnROZXcsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLnRhcmdldD1lLnRhcmdldHx8IiI7dGhpcy50YXJnZXRUeXBlPWdldFN0cmluZ09wdGlvbihlLnRhcmdldFR5cGUsWyJhdXRvIiwiY29udGVudEFyZWEiLCJwYWdlQXJlYSJdKTt0aGlzLnRyYWlsZXI9ZS50cmFpbGVyfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5zY3JpcHQ9bnVsbH19Y2xhc3MgQnJlYWtCZWZvcmUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sImJyZWFrQmVmb3JlIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmxlYWRlcj1lLmxlYWRlcnx8IiI7dGhpcy5zdGFydE5ldz1nZXRJbnRlZ2VyKHtkYXRhOmUuc3RhcnROZXcsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLnRhcmdldD1lLnRhcmdldHx8IiI7dGhpcy50YXJnZXRUeXBlPWdldFN0cmluZ09wdGlvbihlLnRhcmdldFR5cGUsWyJhdXRvIiwiY29udGVudEFyZWEiLCJwYWdlQXJlYSJdKTt0aGlzLnRyYWlsZXI9ZS50cmFpbGVyfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5zY3JpcHQ9bnVsbH1bVnNdKGUpe3RoaXNbWnJdPXt9O3JldHVybiBIVE1MUmVzdWx0LkZBSUxVUkV9fWNsYXNzIEJ1dHRvbiBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiYnV0dG9uIiwhMCk7dGhpcy5oaWdobGlnaHQ9Z2V0U3RyaW5nT3B0aW9uKGUuaGlnaGxpZ2h0LFsiaW52ZXJ0ZWQiLCJub25lIiwib3V0bGluZSIsInB1c2giXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5leHRyYXM9bnVsbH1bVnNdKGUpe2NvbnN0IHQ9dGhpc1tsc10oKVtsc10oKSxpPXtuYW1lOiJidXR0b24iLGF0dHJpYnV0ZXM6e2lkOnRoaXNbenNdLGNsYXNzOlsieGZhQnV0dG9uIl0sc3R5bGU6e319LGNoaWxkcmVuOltdfTtmb3IoY29uc3QgZSBvZiB0LmV2ZW50LmNoaWxkcmVuKXtpZigiY2xpY2siIT09ZS5hY3Rpdml0eXx8IWUuc2NyaXB0KWNvbnRpbnVlO2NvbnN0IHQ9cmVjb3ZlckpzVVJMKGUuc2NyaXB0W2pyXSk7aWYoIXQpY29udGludWU7Y29uc3QgYT1maXhVUkwodC51cmwpO2EmJmkuY2hpbGRyZW4ucHVzaCh7bmFtZToiYSIsYXR0cmlidXRlczp7aWQ6ImxpbmsiK3RoaXNbenNdLGhyZWY6YSxuZXdXaW5kb3c6dC5uZXdXaW5kb3csY2xhc3M6WyJ4ZmFMaW5rIl0sc3R5bGU6e319LGNoaWxkcmVuOltdfSl9cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhpKX19Y2xhc3MgQ2FsY3VsYXRlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJjYWxjdWxhdGUiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMub3ZlcnJpZGU9Z2V0U3RyaW5nT3B0aW9uKGUub3ZlcnJpZGUsWyJkaXNhYmxlZCIsImVycm9yIiwiaWdub3JlIiwid2FybmluZyJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5leHRyYXM9bnVsbDt0aGlzLm1lc3NhZ2U9bnVsbDt0aGlzLnNjcmlwdD1udWxsfX1jbGFzcyBDYXB0aW9uIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJjYXB0aW9uIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnBsYWNlbWVudD1nZXRTdHJpbmdPcHRpb24oZS5wbGFjZW1lbnQsWyJsZWZ0IiwiYm90dG9tIiwiaW5saW5lIiwicmlnaHQiLCJ0b3AiXSk7dGhpcy5wcmVzZW5jZT1nZXRTdHJpbmdPcHRpb24oZS5wcmVzZW5jZSxbInZpc2libGUiLCJoaWRkZW4iLCJpbmFjdGl2ZSIsImludmlzaWJsZSJdKTt0aGlzLnJlc2VydmU9TWF0aC5jZWlsKGdldE1lYXN1cmVtZW50KGUucmVzZXJ2ZSkpO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmV4dHJhcz1udWxsO3RoaXMuZm9udD1udWxsO3RoaXMubWFyZ2luPW51bGw7dGhpcy5wYXJhPW51bGw7dGhpcy52YWx1ZT1udWxsfVtPc10oZSl7X3NldFZhbHVlKHRoaXMsZSl9W3NzXShlKXtpZighdGhpc1tacl0pe2xldHt3aWR0aDp0LGhlaWdodDppfT1lO3N3aXRjaCh0aGlzLnBsYWNlbWVudCl7Y2FzZSJsZWZ0IjpjYXNlInJpZ2h0IjpjYXNlImlubGluZSI6dD10aGlzLnJlc2VydmU8PTA/dDp0aGlzLnJlc2VydmU7YnJlYWs7Y2FzZSJ0b3AiOmNhc2UiYm90dG9tIjppPXRoaXMucmVzZXJ2ZTw9MD9pOnRoaXMucmVzZXJ2ZX10aGlzW1pyXT1sYXlvdXROb2RlKHRoaXMse3dpZHRoOnQsaGVpZ2h0Oml9KX1yZXR1cm4gdGhpc1tacl19W1ZzXShlKXtpZighdGhpcy52YWx1ZSlyZXR1cm4gSFRNTFJlc3VsdC5FTVBUWTt0aGlzW0hzXSgpO2NvbnN0IHQ9dGhpcy52YWx1ZVtWc10oZSkuaHRtbDtpZighdCl7dGhpc1tMc10oKTtyZXR1cm4gSFRNTFJlc3VsdC5FTVBUWX1jb25zdCBpPXRoaXMucmVzZXJ2ZTtpZih0aGlzLnJlc2VydmU8PTApe2NvbnN0e3c6dCxoOml9PXRoaXNbc3NdKGUpO3N3aXRjaCh0aGlzLnBsYWNlbWVudCl7Y2FzZSJsZWZ0IjpjYXNlInJpZ2h0IjpjYXNlImlubGluZSI6dGhpcy5yZXNlcnZlPXQ7YnJlYWs7Y2FzZSJ0b3AiOmNhc2UiYm90dG9tIjp0aGlzLnJlc2VydmU9aX19Y29uc3QgYT1bXTsic3RyaW5nIj09dHlwZW9mIHQ/YS5wdXNoKHtuYW1lOiIjdGV4dCIsdmFsdWU6dH0pOmEucHVzaCh0KTtjb25zdCByPXRvU3R5bGUodGhpcywiZm9udCIsIm1hcmdpbiIsInZpc2liaWxpdHkiKTtzd2l0Y2godGhpcy5wbGFjZW1lbnQpe2Nhc2UibGVmdCI6Y2FzZSJyaWdodCI6dGhpcy5yZXNlcnZlPjAmJihyLndpZHRoPW1lYXN1cmVUb1N0cmluZyh0aGlzLnJlc2VydmUpKTticmVhaztjYXNlInRvcCI6Y2FzZSJib3R0b20iOnRoaXMucmVzZXJ2ZT4wJiYoci5oZWlnaHQ9bWVhc3VyZVRvU3RyaW5nKHRoaXMucmVzZXJ2ZSkpfXNldFBhcmEodGhpcyxudWxsLHQpO3RoaXNbTHNdKCk7dGhpcy5yZXNlcnZlPWk7cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2Vzcyh7bmFtZToiZGl2IixhdHRyaWJ1dGVzOntzdHlsZTpyLGNsYXNzOlsieGZhQ2FwdGlvbiJdfSxjaGlsZHJlbjphfSl9fWNsYXNzIENlcnRpZmljYXRlIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJjZXJ0aWZpY2F0ZSIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBDZXJ0aWZpY2F0ZXMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sImNlcnRpZmljYXRlcyIsITApO3RoaXMuY3JlZGVudGlhbFNlcnZlclBvbGljeT1nZXRTdHJpbmdPcHRpb24oZS5jcmVkZW50aWFsU2VydmVyUG9saWN5LFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudXJsPWUudXJsfHwiIjt0aGlzLnVybFBvbGljeT1lLnVybFBvbGljeXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZW5jcnlwdGlvbj1udWxsO3RoaXMuaXNzdWVycz1udWxsO3RoaXMua2V5VXNhZ2U9bnVsbDt0aGlzLm9pZHM9bnVsbDt0aGlzLnNpZ25pbmc9bnVsbDt0aGlzLnN1YmplY3RETnM9bnVsbH19Y2xhc3MgQ2hlY2tCdXR0b24gZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sImNoZWNrQnV0dG9uIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm1hcms9Z2V0U3RyaW5nT3B0aW9uKGUubWFyayxbImRlZmF1bHQiLCJjaGVjayIsImNpcmNsZSIsImNyb3NzIiwiZGlhbW9uZCIsInNxdWFyZSIsInN0YXIiXSk7dGhpcy5zaGFwZT1nZXRTdHJpbmdPcHRpb24oZS5zaGFwZSxbInNxdWFyZSIsInJvdW5kIl0pO3RoaXMuc2l6ZT1nZXRNZWFzdXJlbWVudChlLnNpemUsIjEwcHQiKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5ib3JkZXI9bnVsbDt0aGlzLmV4dHJhcz1udWxsO3RoaXMubWFyZ2luPW51bGx9W1ZzXShlKXtjb25zdCB0PXRvU3R5bGUoIm1hcmdpbiIpLGk9bWVhc3VyZVRvU3RyaW5nKHRoaXMuc2l6ZSk7dC53aWR0aD10LmhlaWdodD1pO2xldCBhLHIscztjb25zdCBuPXRoaXNbbHNdKClbbHNdKCksbz1uLml0ZW1zLmNoaWxkcmVuLmxlbmd0aCYmbi5pdGVtcy5jaGlsZHJlblswXVtWc10oKS5odG1sfHxbXSxnPXtvbjoodm9pZCAwIT09b1swXT9vWzBdOiJvbiIpLnRvU3RyaW5nKCksb2ZmOih2b2lkIDAhPT1vWzFdP29bMV06Im9mZiIpLnRvU3RyaW5nKCl9LGM9KG4udmFsdWU/Lltqc10oKXx8Im9mZiIpPT09Zy5vbnx8dm9pZCAwLGw9bltjc10oKSxoPW5benNdO2xldCBDO2lmKGwgaW5zdGFuY2VvZiBFeGNsR3JvdXApe3M9bFt6c107YT0icmFkaW8iO3I9InhmYVJhZGlvIjtDPWxbWHJdPy5benNdfHxsW3pzXX1lbHNle2E9ImNoZWNrYm94IjtyPSJ4ZmFDaGVja2JveCI7Qz1uW1hyXT8uW3pzXXx8blt6c119Y29uc3QgUT17bmFtZToiaW5wdXQiLGF0dHJpYnV0ZXM6e2NsYXNzOltyXSxzdHlsZTp0LGZpZWxkSWQ6aCxkYXRhSWQ6Qyx0eXBlOmEsY2hlY2tlZDpjLHhmYU9uOmcub24seGZhT2ZmOmcub2ZmLCJhcmlhLWxhYmVsIjphcmlhTGFiZWwobiksImFyaWEtcmVxdWlyZWQiOiExfX07cyYmKFEuYXR0cmlidXRlcy5uYW1lPXMpO2lmKGlzUmVxdWlyZWQobikpe1EuYXR0cmlidXRlc1siYXJpYS1yZXF1aXJlZCJdPSEwO1EuYXR0cmlidXRlcy5yZXF1aXJlZD0hMH1yZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJsYWJlbCIsYXR0cmlidXRlczp7Y2xhc3M6WyJ4ZmFMYWJlbCJdfSxjaGlsZHJlbjpbUV19KX19Y2xhc3MgQ2hvaWNlTGlzdCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiY2hvaWNlTGlzdCIsITApO3RoaXMuY29tbWl0T249Z2V0U3RyaW5nT3B0aW9uKGUuY29tbWl0T24sWyJzZWxlY3QiLCJleGl0Il0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5vcGVuPWdldFN0cmluZ09wdGlvbihlLm9wZW4sWyJ1c2VyQ29udHJvbCIsImFsd2F5cyIsIm11bHRpU2VsZWN0Iiwib25FbnRyeSJdKTt0aGlzLnRleHRFbnRyeT1nZXRJbnRlZ2VyKHtkYXRhOmUudGV4dEVudHJ5LGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuYm9yZGVyPW51bGw7dGhpcy5leHRyYXM9bnVsbDt0aGlzLm1hcmdpbj1udWxsfVtWc10oZSl7Y29uc3QgdD10b1N0eWxlKHRoaXMsImJvcmRlciIsIm1hcmdpbiIpLGk9dGhpc1tsc10oKVtsc10oKSxhPXtmb250U2l6ZTpgY2FsYygke2kuZm9udD8uc2l6ZXx8MTB9cHggKiB2YXIoLS1zY2FsZS1mYWN0b3IpKWB9LHI9W107aWYoaS5pdGVtcy5jaGlsZHJlbi5sZW5ndGg+MCl7Y29uc3QgZT1pLml0ZW1zO2xldCB0PTAscz0wO2lmKDI9PT1lLmNoaWxkcmVuLmxlbmd0aCl7dD1lLmNoaWxkcmVuWzBdLnNhdmU7cz0xLXR9Y29uc3Qgbj1lLmNoaWxkcmVuW3RdW1ZzXSgpLmh0bWwsbz1lLmNoaWxkcmVuW3NdW1ZzXSgpLmh0bWw7bGV0IGc9ITE7Y29uc3QgYz1pLnZhbHVlPy5banNdKCl8fCIiO2ZvcihsZXQgZT0wLHQ9bi5sZW5ndGg7ZTx0O2UrKyl7Y29uc3QgdD17bmFtZToib3B0aW9uIixhdHRyaWJ1dGVzOnt2YWx1ZTpvW2VdfHxuW2VdLHN0eWxlOmF9LHZhbHVlOm5bZV19O29bZV09PT1jJiYodC5hdHRyaWJ1dGVzLnNlbGVjdGVkPWc9ITApO3IucHVzaCh0KX1nfHxyLnNwbGljZSgwLDAse25hbWU6Im9wdGlvbiIsYXR0cmlidXRlczp7aGlkZGVuOiEwLHNlbGVjdGVkOiEwfSx2YWx1ZToiICJ9KX1jb25zdCBzPXtjbGFzczpbInhmYVNlbGVjdCJdLGZpZWxkSWQ6aVt6c10sZGF0YUlkOmlbWHJdPy5benNdfHxpW3pzXSxzdHlsZTp0LCJhcmlhLWxhYmVsIjphcmlhTGFiZWwoaSksImFyaWEtcmVxdWlyZWQiOiExfTtpZihpc1JlcXVpcmVkKGkpKXtzWyJhcmlhLXJlcXVpcmVkIl09ITA7cy5yZXF1aXJlZD0hMH0ibXVsdGlTZWxlY3QiPT09dGhpcy5vcGVuJiYocy5tdWx0aXBsZT0hMCk7cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2Vzcyh7bmFtZToibGFiZWwiLGF0dHJpYnV0ZXM6e2NsYXNzOlsieGZhTGFiZWwiXX0sY2hpbGRyZW46W3tuYW1lOiJzZWxlY3QiLGNoaWxkcmVuOnIsYXR0cmlidXRlczpzfV19KX19Y2xhc3MgQ29sb3IgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sImNvbG9yIiwhMCk7dGhpcy5jU3BhY2U9Z2V0U3RyaW5nT3B0aW9uKGUuY1NwYWNlLFsiU1JHQiJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLnZhbHVlPWUudmFsdWU/ZnVuY3Rpb24gZ2V0Q29sb3IoZSx0PVswLDAsMF0pe2xldFtpLGEscl09dDtpZighZSlyZXR1cm57cjppLGc6YSxiOnJ9O2NvbnN0IHM9ZS50cmltKCkuc3BsaXQoL1xzKixccyovKS5tYXAoKGU9Pk1hdGgubWluKE1hdGgubWF4KDAscGFyc2VJbnQoZS50cmltKCksMTApKSwyNTUpKSkubWFwKChlPT5pc05hTihlKT8wOmUpKTtpZihzLmxlbmd0aDwzKXJldHVybntyOmksZzphLGI6cn07W2ksYSxyXT1zO3JldHVybntyOmksZzphLGI6cn19KGUudmFsdWUpOiIiO3RoaXMuZXh0cmFzPW51bGx9W0JzXSgpe3JldHVybiExfVtfc10oKXtyZXR1cm4gdGhpcy52YWx1ZT9VdGlsLm1ha2VIZXhDb2xvcih0aGlzLnZhbHVlLnIsdGhpcy52YWx1ZS5nLHRoaXMudmFsdWUuYik6bnVsbH19Y2xhc3MgQ29tYiBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiY29tYiIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5udW1iZXJPZkNlbGxzPWdldEludGVnZXIoe2RhdGE6ZS5udW1iZXJPZkNlbGxzLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PmU+PTB9KTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIENvbm5lY3QgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sImNvbm5lY3QiLCEwKTt0aGlzLmNvbm5lY3Rpb249ZS5jb25uZWN0aW9ufHwiIjt0aGlzLmlkPWUuaWR8fCIiO3RoaXMucmVmPWUucmVmfHwiIjt0aGlzLnVzYWdlPWdldFN0cmluZ09wdGlvbihlLnVzYWdlLFsiZXhwb3J0QW5kSW1wb3J0IiwiZXhwb3J0T25seSIsImltcG9ydE9ubHkiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMucGljdHVyZT1udWxsfX1jbGFzcyBDb250ZW50QXJlYSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiY29udGVudEFyZWEiLCEwKTt0aGlzLmg9Z2V0TWVhc3VyZW1lbnQoZS5oKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMucmVsZXZhbnQ9Z2V0UmVsZXZhbnQoZS5yZWxldmFudCk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMudz1nZXRNZWFzdXJlbWVudChlLncpO3RoaXMueD1nZXRNZWFzdXJlbWVudChlLngsIjBwdCIpO3RoaXMueT1nZXRNZWFzdXJlbWVudChlLnksIjBwdCIpO3RoaXMuZGVzYz1udWxsO3RoaXMuZXh0cmFzPW51bGx9W1ZzXShlKXtjb25zdCB0PXtsZWZ0Om1lYXN1cmVUb1N0cmluZyh0aGlzLngpLHRvcDptZWFzdXJlVG9TdHJpbmcodGhpcy55KSx3aWR0aDptZWFzdXJlVG9TdHJpbmcodGhpcy53KSxoZWlnaHQ6bWVhc3VyZVRvU3RyaW5nKHRoaXMuaCl9LGk9WyJ4ZmFDb250ZW50YXJlYSJdO2lzUHJpbnRPbmx5KHRoaXMpJiZpLnB1c2goInhmYVByaW50T25seSIpO3JldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3Moe25hbWU6ImRpdiIsY2hpbGRyZW46W10sYXR0cmlidXRlczp7c3R5bGU6dCxjbGFzczppLGlkOnRoaXNbenNdfX0pfX1jbGFzcyBDb3JuZXIgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sImNvcm5lciIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5pbnZlcnRlZD1nZXRJbnRlZ2VyKHtkYXRhOmUuaW52ZXJ0ZWQsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLmpvaW49Z2V0U3RyaW5nT3B0aW9uKGUuam9pbixbInNxdWFyZSIsInJvdW5kIl0pO3RoaXMucHJlc2VuY2U9Z2V0U3RyaW5nT3B0aW9uKGUucHJlc2VuY2UsWyJ2aXNpYmxlIiwiaGlkZGVuIiwiaW5hY3RpdmUiLCJpbnZpc2libGUiXSk7dGhpcy5yYWRpdXM9Z2V0TWVhc3VyZW1lbnQoZS5yYWRpdXMpO3RoaXMuc3Ryb2tlPWdldFN0cmluZ09wdGlvbihlLnN0cm9rZSxbInNvbGlkIiwiZGFzaERvdCIsImRhc2hEb3REb3QiLCJkYXNoZWQiLCJkb3R0ZWQiLCJlbWJvc3NlZCIsImV0Y2hlZCIsImxvd2VyZWQiLCJyYWlzZWQiXSk7dGhpcy50aGlja25lc3M9Z2V0TWVhc3VyZW1lbnQoZS50aGlja25lc3MsIjAuNXB0Iik7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuY29sb3I9bnVsbDt0aGlzLmV4dHJhcz1udWxsfVtfc10oKXtjb25zdCBlPXRvU3R5bGUodGhpcywidmlzaWJpbGl0eSIpO2UucmFkaXVzPW1lYXN1cmVUb1N0cmluZygic3F1YXJlIj09PXRoaXMuam9pbj8wOnRoaXMucmFkaXVzKTtyZXR1cm4gZX19Y2xhc3MgRGF0ZUVsZW1lbnQgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJkYXRlIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9W19yXSgpe2NvbnN0IGU9dGhpc1tqcl0udHJpbSgpO3RoaXNbanJdPWU/bmV3IERhdGUoZSk6bnVsbH1bVnNdKGUpe3JldHVybiB2YWx1ZVRvSHRtbCh0aGlzW2pyXT90aGlzW2pyXS50b1N0cmluZygpOiIiKX19Y2xhc3MgRGF0ZVRpbWUgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJkYXRlVGltZSIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifVtfcl0oKXtjb25zdCBlPXRoaXNbanJdLnRyaW0oKTt0aGlzW2pyXT1lP25ldyBEYXRlKGUpOm51bGx9W1ZzXShlKXtyZXR1cm4gdmFsdWVUb0h0bWwodGhpc1tqcl0/dGhpc1tqcl0udG9TdHJpbmcoKToiIil9fWNsYXNzIERhdGVUaW1lRWRpdCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiZGF0ZVRpbWVFZGl0IiwhMCk7dGhpcy5oU2Nyb2xsUG9saWN5PWdldFN0cmluZ09wdGlvbihlLmhTY3JvbGxQb2xpY3ksWyJhdXRvIiwib2ZmIiwib24iXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnBpY2tlcj1nZXRTdHJpbmdPcHRpb24oZS5waWNrZXIsWyJob3N0Iiwibm9uZSJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5ib3JkZXI9bnVsbDt0aGlzLmNvbWI9bnVsbDt0aGlzLmV4dHJhcz1udWxsO3RoaXMubWFyZ2luPW51bGx9W1ZzXShlKXtjb25zdCB0PXRvU3R5bGUodGhpcywiYm9yZGVyIiwiZm9udCIsIm1hcmdpbiIpLGk9dGhpc1tsc10oKVtsc10oKSxhPXtuYW1lOiJpbnB1dCIsYXR0cmlidXRlczp7dHlwZToidGV4dCIsZmllbGRJZDppW3pzXSxkYXRhSWQ6aVtYcl0/Llt6c118fGlbenNdLGNsYXNzOlsieGZhVGV4dGZpZWxkIl0sc3R5bGU6dCwiYXJpYS1sYWJlbCI6YXJpYUxhYmVsKGkpLCJhcmlhLXJlcXVpcmVkIjohMX19O2lmKGlzUmVxdWlyZWQoaSkpe2EuYXR0cmlidXRlc1siYXJpYS1yZXF1aXJlZCJdPSEwO2EuYXR0cmlidXRlcy5yZXF1aXJlZD0hMH1yZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJsYWJlbCIsYXR0cmlidXRlczp7Y2xhc3M6WyJ4ZmFMYWJlbCJdfSxjaGlsZHJlbjpbYV19KX19Y2xhc3MgRGVjaW1hbCBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sImRlY2ltYWwiKTt0aGlzLmZyYWNEaWdpdHM9Z2V0SW50ZWdlcih7ZGF0YTplLmZyYWNEaWdpdHMsZGVmYXVsdFZhbHVlOjIsdmFsaWRhdGU6ZT0+ITB9KTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubGVhZERpZ2l0cz1nZXRJbnRlZ2VyKHtkYXRhOmUubGVhZERpZ2l0cyxkZWZhdWx0VmFsdWU6LTEsdmFsaWRhdGU6ZT0+ITB9KTt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9W19yXSgpe2NvbnN0IGU9cGFyc2VGbG9hdCh0aGlzW2pyXS50cmltKCkpO3RoaXNbanJdPWlzTmFOKGUpP251bGw6ZX1bVnNdKGUpe3JldHVybiB2YWx1ZVRvSHRtbChudWxsIT09dGhpc1tqcl0/dGhpc1tqcl0udG9TdHJpbmcoKToiIil9fWNsYXNzIERlZmF1bHRVaSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiZGVmYXVsdFVpIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5leHRyYXM9bnVsbH19Y2xhc3MgRGVzYyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiZGVzYyIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuYm9vbGVhbj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5kYXRlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRhdGVUaW1lPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRlY2ltYWw9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZXhEYXRhPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmZsb2F0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmltYWdlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmludGVnZXI9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMudGV4dD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50aW1lPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgRGlnZXN0TWV0aG9kIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJkaWdlc3RNZXRob2QiLFsiIiwiU0hBMSIsIlNIQTI1NiIsIlNIQTUxMiIsIlJJUEVNRDE2MCJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgRGlnZXN0TWV0aG9kcyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiZGlnZXN0TWV0aG9kcyIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy50eXBlPWdldFN0cmluZ09wdGlvbihlLnR5cGUsWyJvcHRpb25hbCIsInJlcXVpcmVkIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmRpZ2VzdE1ldGhvZD1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIERyYXcgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sImRyYXciLCEwKTt0aGlzLmFuY2hvclR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUuYW5jaG9yVHlwZSxbInRvcExlZnQiLCJib3R0b21DZW50ZXIiLCJib3R0b21MZWZ0IiwiYm90dG9tUmlnaHQiLCJtaWRkbGVDZW50ZXIiLCJtaWRkbGVMZWZ0IiwibWlkZGxlUmlnaHQiLCJ0b3BDZW50ZXIiLCJ0b3BSaWdodCJdKTt0aGlzLmNvbFNwYW49Z2V0SW50ZWdlcih7ZGF0YTplLmNvbFNwYW4sZGVmYXVsdFZhbHVlOjEsdmFsaWRhdGU6ZT0+ZT49MXx8LTE9PT1lfSk7dGhpcy5oPWUuaD9nZXRNZWFzdXJlbWVudChlLmgpOiIiO3RoaXMuaEFsaWduPWdldFN0cmluZ09wdGlvbihlLmhBbGlnbixbImxlZnQiLCJjZW50ZXIiLCJqdXN0aWZ5IiwianVzdGlmeUFsbCIsInJhZGl4IiwicmlnaHQiXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmxvY2FsZT1lLmxvY2FsZXx8IiI7dGhpcy5tYXhIPWdldE1lYXN1cmVtZW50KGUubWF4SCwiMHB0Iik7dGhpcy5tYXhXPWdldE1lYXN1cmVtZW50KGUubWF4VywiMHB0Iik7dGhpcy5taW5IPWdldE1lYXN1cmVtZW50KGUubWluSCwiMHB0Iik7dGhpcy5taW5XPWdldE1lYXN1cmVtZW50KGUubWluVywiMHB0Iik7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy5wcmVzZW5jZT1nZXRTdHJpbmdPcHRpb24oZS5wcmVzZW5jZSxbInZpc2libGUiLCJoaWRkZW4iLCJpbmFjdGl2ZSIsImludmlzaWJsZSJdKTt0aGlzLnJlbGV2YW50PWdldFJlbGV2YW50KGUucmVsZXZhbnQpO3RoaXMucm90YXRlPWdldEludGVnZXIoe2RhdGE6ZS5yb3RhdGUsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+ZSU5MD09MH0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLnc9ZS53P2dldE1lYXN1cmVtZW50KGUudyk6IiI7dGhpcy54PWdldE1lYXN1cmVtZW50KGUueCwiMHB0Iik7dGhpcy55PWdldE1lYXN1cmVtZW50KGUueSwiMHB0Iik7dGhpcy5hc3Npc3Q9bnVsbDt0aGlzLmJvcmRlcj1udWxsO3RoaXMuY2FwdGlvbj1udWxsO3RoaXMuZGVzYz1udWxsO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5mb250PW51bGw7dGhpcy5rZWVwPW51bGw7dGhpcy5tYXJnaW49bnVsbDt0aGlzLnBhcmE9bnVsbDt0aGlzLnRyYXZlcnNhbD1udWxsO3RoaXMudWk9bnVsbDt0aGlzLnZhbHVlPW51bGw7dGhpcy5zZXRQcm9wZXJ0eT1uZXcgWEZBT2JqZWN0QXJyYXl9W09zXShlKXtfc2V0VmFsdWUodGhpcyxlKX1bVnNdKGUpe3NldFRhYkluZGV4KHRoaXMpO2lmKCJoaWRkZW4iPT09dGhpcy5wcmVzZW5jZXx8ImluYWN0aXZlIj09PXRoaXMucHJlc2VuY2UpcmV0dXJuIEhUTUxSZXN1bHQuRU1QVFk7Zml4RGltZW5zaW9ucyh0aGlzKTt0aGlzW0hzXSgpO2NvbnN0IHQ9dGhpcy53LGk9dGhpcy5oLHt3OmEsaDpyLGlzQnJva2VuOnN9PWxheW91dE5vZGUodGhpcyxlKTtpZihhJiYiIj09PXRoaXMudyl7aWYocyYmdGhpc1tjc10oKVtic10oKSl7dGhpc1tMc10oKTtyZXR1cm4gSFRNTFJlc3VsdC5GQUlMVVJFfXRoaXMudz1hfXImJiIiPT09dGhpcy5oJiYodGhpcy5oPXIpO3NldEZpcnN0VW5zcGxpdHRhYmxlKHRoaXMpO2lmKCFjaGVja0RpbWVuc2lvbnModGhpcyxlKSl7dGhpcy53PXQ7dGhpcy5oPWk7dGhpc1tMc10oKTtyZXR1cm4gSFRNTFJlc3VsdC5GQUlMVVJFfXVuc2V0Rmlyc3RVbnNwbGl0dGFibGUodGhpcyk7Y29uc3Qgbj10b1N0eWxlKHRoaXMsImZvbnQiLCJoQWxpZ24iLCJkaW1lbnNpb25zIiwicG9zaXRpb24iLCJwcmVzZW5jZSIsInJvdGF0ZSIsImFuY2hvclR5cGUiLCJib3JkZXIiLCJtYXJnaW4iKTtzZXRNaW5NYXhEaW1lbnNpb25zKHRoaXMsbik7aWYobi5tYXJnaW4pe24ucGFkZGluZz1uLm1hcmdpbjtkZWxldGUgbi5tYXJnaW59Y29uc3Qgbz1bInhmYURyYXciXTt0aGlzLmZvbnQmJm8ucHVzaCgieGZhRm9udCIpO2lzUHJpbnRPbmx5KHRoaXMpJiZvLnB1c2goInhmYVByaW50T25seSIpO2NvbnN0IGc9e3N0eWxlOm4saWQ6dGhpc1t6c10sY2xhc3M6b307dGhpcy5uYW1lJiYoZy54ZmFOYW1lPXRoaXMubmFtZSk7Y29uc3QgYz17bmFtZToiZGl2IixhdHRyaWJ1dGVzOmcsY2hpbGRyZW46W119O2FwcGx5QXNzaXN0KHRoaXMsZyk7Y29uc3QgbD1jb21wdXRlQmJveCh0aGlzLGMsZSksaD10aGlzLnZhbHVlP3RoaXMudmFsdWVbVnNdKGUpLmh0bWw6bnVsbDtpZihudWxsPT09aCl7dGhpcy53PXQ7dGhpcy5oPWk7dGhpc1tMc10oKTtyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKGNyZWF0ZVdyYXBwZXIodGhpcyxjKSxsKX1jLmNoaWxkcmVuLnB1c2goaCk7c2V0UGFyYSh0aGlzLG4saCk7dGhpcy53PXQ7dGhpcy5oPWk7dGhpc1tMc10oKTtyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKGNyZWF0ZVdyYXBwZXIodGhpcyxjKSxsKX19Y2xhc3MgRWRnZSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiZWRnZSIsITApO3RoaXMuY2FwPWdldFN0cmluZ09wdGlvbihlLmNhcCxbInNxdWFyZSIsImJ1dHQiLCJyb3VuZCJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMucHJlc2VuY2U9Z2V0U3RyaW5nT3B0aW9uKGUucHJlc2VuY2UsWyJ2aXNpYmxlIiwiaGlkZGVuIiwiaW5hY3RpdmUiLCJpbnZpc2libGUiXSk7dGhpcy5zdHJva2U9Z2V0U3RyaW5nT3B0aW9uKGUuc3Ryb2tlLFsic29saWQiLCJkYXNoRG90IiwiZGFzaERvdERvdCIsImRhc2hlZCIsImRvdHRlZCIsImVtYm9zc2VkIiwiZXRjaGVkIiwibG93ZXJlZCIsInJhaXNlZCJdKTt0aGlzLnRoaWNrbmVzcz1nZXRNZWFzdXJlbWVudChlLnRoaWNrbmVzcywiMC41cHQiKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5jb2xvcj1udWxsO3RoaXMuZXh0cmFzPW51bGx9W19zXSgpe2NvbnN0IGU9dG9TdHlsZSh0aGlzLCJ2aXNpYmlsaXR5Iik7T2JqZWN0LmFzc2lnbihlLHtsaW5lY2FwOnRoaXMuY2FwLHdpZHRoOm1lYXN1cmVUb1N0cmluZyh0aGlzLnRoaWNrbmVzcyksY29sb3I6dGhpcy5jb2xvcj90aGlzLmNvbG9yW19zXSgpOiIjMDAwMDAwIixzdHlsZToiIn0pO2lmKCJ2aXNpYmxlIiE9PXRoaXMucHJlc2VuY2UpZS5zdHlsZT0ibm9uZSI7ZWxzZSBzd2l0Y2godGhpcy5zdHJva2Upe2Nhc2Uic29saWQiOmUuc3R5bGU9InNvbGlkIjticmVhaztjYXNlImRhc2hEb3QiOmNhc2UiZGFzaERvdERvdCI6Y2FzZSJkYXNoZWQiOmUuc3R5bGU9ImRhc2hlZCI7YnJlYWs7Y2FzZSJkb3R0ZWQiOmUuc3R5bGU9ImRvdHRlZCI7YnJlYWs7Y2FzZSJlbWJvc3NlZCI6ZS5zdHlsZT0icmlkZ2UiO2JyZWFrO2Nhc2UiZXRjaGVkIjplLnN0eWxlPSJncm9vdmUiO2JyZWFrO2Nhc2UibG93ZXJlZCI6ZS5zdHlsZT0iaW5zZXQiO2JyZWFrO2Nhc2UicmFpc2VkIjplLnN0eWxlPSJvdXRzZXQifXJldHVybiBlfX1jbGFzcyBFbmNvZGluZyBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiZW5jb2RpbmciLFsiYWRiZS54NTA5LnJzYV9zaGExIiwiYWRiZS5wa2NzNy5kZXRhY2hlZCIsImFkYmUucGtjczcuc2hhMSJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgRW5jb2RpbmdzIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJlbmNvZGluZ3MiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudHlwZT1nZXRTdHJpbmdPcHRpb24oZS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5lbmNvZGluZz1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIEVuY3J5cHQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sImVuY3J5cHQiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmNlcnRpZmljYXRlPW51bGx9fWNsYXNzIEVuY3J5cHREYXRhIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJlbmNyeXB0RGF0YSIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5vcGVyYXRpb249Z2V0U3RyaW5nT3B0aW9uKGUub3BlcmF0aW9uLFsiZW5jcnlwdCIsImRlY3J5cHQiXSk7dGhpcy50YXJnZXQ9ZS50YXJnZXR8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmZpbHRlcj1udWxsO3RoaXMubWFuaWZlc3Q9bnVsbH19Y2xhc3MgRW5jcnlwdGlvbiBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiZW5jcnlwdGlvbiIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy50eXBlPWdldFN0cmluZ09wdGlvbihlLnR5cGUsWyJvcHRpb25hbCIsInJlcXVpcmVkIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmNlcnRpZmljYXRlPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgRW5jcnlwdGlvbk1ldGhvZCBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiZW5jcnlwdGlvbk1ldGhvZCIsWyIiLCJBRVMyNTYtQ0JDIiwiVFJJUExFREVTLUNCQyIsIkFFUzEyOC1DQkMiLCJBRVMxOTItQ0JDIl0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBFbmNyeXB0aW9uTWV0aG9kcyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiZW5jcnlwdGlvbk1ldGhvZHMiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudHlwZT1nZXRTdHJpbmdPcHRpb24oZS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5lbmNyeXB0aW9uTWV0aG9kPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgRXZlbnQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sImV2ZW50IiwhMCk7dGhpcy5hY3Rpdml0eT1nZXRTdHJpbmdPcHRpb24oZS5hY3Rpdml0eSxbImNsaWNrIiwiY2hhbmdlIiwiZG9jQ2xvc2UiLCJkb2NSZWFkeSIsImVudGVyIiwiZXhpdCIsImZ1bGwiLCJpbmRleENoYW5nZSIsImluaXRpYWxpemUiLCJtb3VzZURvd24iLCJtb3VzZUVudGVyIiwibW91c2VFeGl0IiwibW91c2VVcCIsInBvc3RFeGVjdXRlIiwicG9zdE9wZW4iLCJwb3N0UHJpbnQiLCJwb3N0U2F2ZSIsInBvc3RTaWduIiwicG9zdFN1Ym1pdCIsInByZUV4ZWN1dGUiLCJwcmVPcGVuIiwicHJlUHJpbnQiLCJwcmVTYXZlIiwicHJlU2lnbiIsInByZVN1Ym1pdCIsInJlYWR5IiwidmFsaWRhdGlvblN0YXRlIl0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5saXN0ZW49Z2V0U3RyaW5nT3B0aW9uKGUubGlzdGVuLFsicmVmT25seSIsInJlZkFuZERlc2NlbmRlbnRzIl0pO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMucmVmPWUucmVmfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5leHRyYXM9bnVsbDt0aGlzLmVuY3J5cHREYXRhPW51bGw7dGhpcy5leGVjdXRlPW51bGw7dGhpcy5zY3JpcHQ9bnVsbDt0aGlzLnNpZ25EYXRhPW51bGw7dGhpcy5zdWJtaXQ9bnVsbH19Y2xhc3MgRXhEYXRhIGV4dGVuZHMgQ29udGVudE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiZXhEYXRhIik7dGhpcy5jb250ZW50VHlwZT1lLmNvbnRlbnRUeXBlfHwiIjt0aGlzLmhyZWY9ZS5ocmVmfHwiIjt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubWF4TGVuZ3RoPWdldEludGVnZXIoe2RhdGE6ZS5tYXhMZW5ndGgsZGVmYXVsdFZhbHVlOi0xLHZhbGlkYXRlOmU9PmU+PS0xfSk7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy5yaWQ9ZS5yaWR8fCIiO3RoaXMudHJhbnNmZXJFbmNvZGluZz1nZXRTdHJpbmdPcHRpb24oZS50cmFuc2ZlckVuY29kaW5nLFsibm9uZSIsImJhc2U2NCIsInBhY2thZ2UiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifVtkc10oKXtyZXR1cm4idGV4dC9odG1sIj09PXRoaXMuY29udGVudFR5cGV9W0dzXShlKXtpZigidGV4dC9odG1sIj09PXRoaXMuY29udGVudFR5cGUmJmVba3NdPT09QW4ueGh0bWwuaWQpe3RoaXNbanJdPWU7cmV0dXJuITB9aWYoInRleHQveG1sIj09PXRoaXMuY29udGVudFR5cGUpe3RoaXNbanJdPWU7cmV0dXJuITB9cmV0dXJuITF9W1ZzXShlKXtyZXR1cm4idGV4dC9odG1sIj09PXRoaXMuY29udGVudFR5cGUmJnRoaXNbanJdP3RoaXNbanJdW1ZzXShlKTpIVE1MUmVzdWx0LkVNUFRZfX1jbGFzcyBFeE9iamVjdCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiZXhPYmplY3QiLCEwKTt0aGlzLmFyY2hpdmU9ZS5hcmNoaXZlfHwiIjt0aGlzLmNsYXNzSWQ9ZS5jbGFzc0lkfHwiIjt0aGlzLmNvZGVCYXNlPWUuY29kZUJhc2V8fCIiO3RoaXMuY29kZVR5cGU9ZS5jb2RlVHlwZXx8IiI7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5leHRyYXM9bnVsbDt0aGlzLmJvb2xlYW49bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGF0ZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5kYXRlVGltZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5kZWNpbWFsPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmV4RGF0YT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5leE9iamVjdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5mbG9hdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5pbWFnZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5pbnRlZ2VyPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnRleHQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMudGltZT1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIEV4Y2xHcm91cCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiZXhjbEdyb3VwIiwhMCk7dGhpcy5hY2Nlc3M9Z2V0U3RyaW5nT3B0aW9uKGUuYWNjZXNzLFsib3BlbiIsIm5vbkludGVyYWN0aXZlIiwicHJvdGVjdGVkIiwicmVhZE9ubHkiXSk7dGhpcy5hY2Nlc3NLZXk9ZS5hY2Nlc3NLZXl8fCIiO3RoaXMuYW5jaG9yVHlwZT1nZXRTdHJpbmdPcHRpb24oZS5hbmNob3JUeXBlLFsidG9wTGVmdCIsImJvdHRvbUNlbnRlciIsImJvdHRvbUxlZnQiLCJib3R0b21SaWdodCIsIm1pZGRsZUNlbnRlciIsIm1pZGRsZUxlZnQiLCJtaWRkbGVSaWdodCIsInRvcENlbnRlciIsInRvcFJpZ2h0Il0pO3RoaXMuY29sU3Bhbj1nZXRJbnRlZ2VyKHtkYXRhOmUuY29sU3BhbixkZWZhdWx0VmFsdWU6MSx2YWxpZGF0ZTplPT5lPj0xfHwtMT09PWV9KTt0aGlzLmg9ZS5oP2dldE1lYXN1cmVtZW50KGUuaCk6IiI7dGhpcy5oQWxpZ249Z2V0U3RyaW5nT3B0aW9uKGUuaEFsaWduLFsibGVmdCIsImNlbnRlciIsImp1c3RpZnkiLCJqdXN0aWZ5QWxsIiwicmFkaXgiLCJyaWdodCJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubGF5b3V0PWdldFN0cmluZ09wdGlvbihlLmxheW91dCxbInBvc2l0aW9uIiwibHItdGIiLCJybC1yb3ciLCJybC10YiIsInJvdyIsInRhYmxlIiwidGIiXSk7dGhpcy5tYXhIPWdldE1lYXN1cmVtZW50KGUubWF4SCwiMHB0Iik7dGhpcy5tYXhXPWdldE1lYXN1cmVtZW50KGUubWF4VywiMHB0Iik7dGhpcy5taW5IPWdldE1lYXN1cmVtZW50KGUubWluSCwiMHB0Iik7dGhpcy5taW5XPWdldE1lYXN1cmVtZW50KGUubWluVywiMHB0Iik7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy5wcmVzZW5jZT1nZXRTdHJpbmdPcHRpb24oZS5wcmVzZW5jZSxbInZpc2libGUiLCJoaWRkZW4iLCJpbmFjdGl2ZSIsImludmlzaWJsZSJdKTt0aGlzLnJlbGV2YW50PWdldFJlbGV2YW50KGUucmVsZXZhbnQpO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLnc9ZS53P2dldE1lYXN1cmVtZW50KGUudyk6IiI7dGhpcy54PWdldE1lYXN1cmVtZW50KGUueCwiMHB0Iik7dGhpcy55PWdldE1lYXN1cmVtZW50KGUueSwiMHB0Iik7dGhpcy5hc3Npc3Q9bnVsbDt0aGlzLmJpbmQ9bnVsbDt0aGlzLmJvcmRlcj1udWxsO3RoaXMuY2FsY3VsYXRlPW51bGw7dGhpcy5jYXB0aW9uPW51bGw7dGhpcy5kZXNjPW51bGw7dGhpcy5leHRyYXM9bnVsbDt0aGlzLm1hcmdpbj1udWxsO3RoaXMucGFyYT1udWxsO3RoaXMudHJhdmVyc2FsPW51bGw7dGhpcy52YWxpZGF0ZT1udWxsO3RoaXMuY29ubmVjdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5ldmVudD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5maWVsZD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zZXRQcm9wZXJ0eT1uZXcgWEZBT2JqZWN0QXJyYXl9W2ZzXSgpe3JldHVybiEwfVtCc10oKXtyZXR1cm4hMH1bT3NdKGUpe2Zvcihjb25zdCB0IG9mIHRoaXMuZmllbGQuY2hpbGRyZW4pe2lmKCF0LnZhbHVlKXtjb25zdCBlPW5ldyBWYWx1ZSh7fSk7dFtZcl0oZSk7dC52YWx1ZT1lfXQudmFsdWVbT3NdKGUpfX1bYnNdKCl7cmV0dXJuIHRoaXMubGF5b3V0LmVuZHNXaXRoKCItdGIiKSYmMD09PXRoaXNbWnJdLmF0dGVtcHQmJnRoaXNbWnJdLm51bWJlckluTGluZT4wfHx0aGlzW2xzXSgpW2JzXSgpfVt3c10oKXtjb25zdCBlPXRoaXNbY3NdKCk7aWYoIWVbd3NdKCkpcmV0dXJuITE7aWYodm9pZCAwIT09dGhpc1tacl0uX2lzU3BsaXR0YWJsZSlyZXR1cm4gdGhpc1tacl0uX2lzU3BsaXR0YWJsZTtpZigicG9zaXRpb24iPT09dGhpcy5sYXlvdXR8fHRoaXMubGF5b3V0LmluY2x1ZGVzKCJyb3ciKSl7dGhpc1tacl0uX2lzU3BsaXR0YWJsZT0hMTtyZXR1cm4hMX1pZihlLmxheW91dD8uZW5kc1dpdGgoIi10YiIpJiYwIT09ZVtacl0ubnVtYmVySW5MaW5lKXJldHVybiExO3RoaXNbWnJdLl9pc1NwbGl0dGFibGU9ITA7cmV0dXJuITB9W3pyXSgpe3JldHVybiBmbHVzaEhUTUwodGhpcyl9W3ZyXShlLHQpe2FkZEhUTUwodGhpcyxlLHQpfVtlc10oKXtyZXR1cm4gZ2V0QXZhaWxhYmxlU3BhY2UodGhpcyl9W1ZzXShlKXtzZXRUYWJJbmRleCh0aGlzKTtpZigiaGlkZGVuIj09PXRoaXMucHJlc2VuY2V8fCJpbmFjdGl2ZSI9PT10aGlzLnByZXNlbmNlfHwwPT09dGhpcy5ofHwwPT09dGhpcy53KXJldHVybiBIVE1MUmVzdWx0LkVNUFRZO2ZpeERpbWVuc2lvbnModGhpcyk7Y29uc3QgdD1bXSxpPXtpZDp0aGlzW3pzXSxjbGFzczpbXX07c2V0QWNjZXNzKHRoaXMsaS5jbGFzcyk7dGhpc1tacl18fCh0aGlzW1pyXT1PYmplY3QuY3JlYXRlKG51bGwpKTtPYmplY3QuYXNzaWduKHRoaXNbWnJdLHtjaGlsZHJlbjp0LGF0dHJpYnV0ZXM6aSxhdHRlbXB0OjAsbGluZTpudWxsLG51bWJlckluTGluZTowLGF2YWlsYWJsZVNwYWNlOnt3aWR0aDpNYXRoLm1pbih0aGlzLnd8fDEvMCxlLndpZHRoKSxoZWlnaHQ6TWF0aC5taW4odGhpcy5ofHwxLzAsZS5oZWlnaHQpfSx3aWR0aDowLGhlaWdodDowLHByZXZIZWlnaHQ6MCxjdXJyZW50V2lkdGg6MH0pO2NvbnN0IGE9dGhpc1t3c10oKTthfHxzZXRGaXJzdFVuc3BsaXR0YWJsZSh0aGlzKTtpZighY2hlY2tEaW1lbnNpb25zKHRoaXMsZSkpcmV0dXJuIEhUTUxSZXN1bHQuRkFJTFVSRTtjb25zdCByPW5ldyBTZXQoWyJmaWVsZCJdKTtpZih0aGlzLmxheW91dC5pbmNsdWRlcygicm93Iikpe2NvbnN0IGU9dGhpc1tjc10oKS5jb2x1bW5XaWR0aHM7aWYoQXJyYXkuaXNBcnJheShlKSYmZS5sZW5ndGg+MCl7dGhpc1tacl0uY29sdW1uV2lkdGhzPWU7dGhpc1tacl0uY3VycmVudENvbHVtbj0wfX1jb25zdCBzPXRvU3R5bGUodGhpcywiYW5jaG9yVHlwZSIsImRpbWVuc2lvbnMiLCJwb3NpdGlvbiIsInByZXNlbmNlIiwiYm9yZGVyIiwibWFyZ2luIiwiaEFsaWduIiksbj1bInhmYUV4Y2xncm91cCJdLG89bGF5b3V0Q2xhc3ModGhpcyk7byYmbi5wdXNoKG8pO2lzUHJpbnRPbmx5KHRoaXMpJiZuLnB1c2goInhmYVByaW50T25seSIpO2kuc3R5bGU9cztpLmNsYXNzPW47dGhpcy5uYW1lJiYoaS54ZmFOYW1lPXRoaXMubmFtZSk7dGhpc1tIc10oKTtjb25zdCBnPSJsci10YiI9PT10aGlzLmxheW91dHx8InJsLXRiIj09PXRoaXMubGF5b3V0LGM9Zz8yOjE7Zm9yKDt0aGlzW1pyXS5hdHRlbXB0PGM7dGhpc1tacl0uYXR0ZW1wdCsrKXtnJiYxPT09dGhpc1tacl0uYXR0ZW1wdCYmKHRoaXNbWnJdLm51bWJlckluTGluZT0wKTtjb25zdCBlPXRoaXNbS3JdKHtmaWx0ZXI6cixpbmNsdWRlOiEwfSk7aWYoZS5zdWNjZXNzKWJyZWFrO2lmKGUuaXNCcmVhaygpKXt0aGlzW0xzXSgpO3JldHVybiBlfWlmKGcmJjA9PT10aGlzW1pyXS5hdHRlbXB0JiYwPT09dGhpc1tacl0ubnVtYmVySW5MaW5lJiYhdGhpc1toc10oKVtacl0ubm9MYXlvdXRGYWlsdXJlKXt0aGlzW1pyXS5hdHRlbXB0PWM7YnJlYWt9fXRoaXNbTHNdKCk7YXx8dW5zZXRGaXJzdFVuc3BsaXR0YWJsZSh0aGlzKTtpZih0aGlzW1pyXS5hdHRlbXB0PT09Yyl7YXx8ZGVsZXRlIHRoaXNbWnJdO3JldHVybiBIVE1MUmVzdWx0LkZBSUxVUkV9bGV0IGw9MCxoPTA7aWYodGhpcy5tYXJnaW4pe2w9dGhpcy5tYXJnaW4ubGVmdEluc2V0K3RoaXMubWFyZ2luLnJpZ2h0SW5zZXQ7aD10aGlzLm1hcmdpbi50b3BJbnNldCt0aGlzLm1hcmdpbi5ib3R0b21JbnNldH1jb25zdCBDPU1hdGgubWF4KHRoaXNbWnJdLndpZHRoK2wsdGhpcy53fHwwKSxRPU1hdGgubWF4KHRoaXNbWnJdLmhlaWdodCtoLHRoaXMuaHx8MCksRT1bdGhpcy54LHRoaXMueSxDLFFdOyIiPT09dGhpcy53JiYocy53aWR0aD1tZWFzdXJlVG9TdHJpbmcoQykpOyIiPT09dGhpcy5oJiYocy5oZWlnaHQ9bWVhc3VyZVRvU3RyaW5nKFEpKTtjb25zdCB1PXtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6aSxjaGlsZHJlbjp0fTthcHBseUFzc2lzdCh0aGlzLGkpO2RlbGV0ZSB0aGlzW1pyXTtyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKGNyZWF0ZVdyYXBwZXIodGhpcyx1KSxFKX19Y2xhc3MgRXhlY3V0ZSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiZXhlY3V0ZSIpO3RoaXMuY29ubmVjdGlvbj1lLmNvbm5lY3Rpb258fCIiO3RoaXMuZXhlY3V0ZVR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUuZXhlY3V0ZVR5cGUsWyJpbXBvcnQiLCJyZW1lcmdlIl0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5ydW5BdD1nZXRTdHJpbmdPcHRpb24oZS5ydW5BdCxbImNsaWVudCIsImJvdGgiLCJzZXJ2ZXIiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBFeHRyYXMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sImV4dHJhcyIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuYm9vbGVhbj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5kYXRlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRhdGVUaW1lPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRlY2ltYWw9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZXhEYXRhPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmV4dHJhcz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5mbG9hdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5pbWFnZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5pbnRlZ2VyPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnRleHQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMudGltZT1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIEZpZWxkIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJmaWVsZCIsITApO3RoaXMuYWNjZXNzPWdldFN0cmluZ09wdGlvbihlLmFjY2VzcyxbIm9wZW4iLCJub25JbnRlcmFjdGl2ZSIsInByb3RlY3RlZCIsInJlYWRPbmx5Il0pO3RoaXMuYWNjZXNzS2V5PWUuYWNjZXNzS2V5fHwiIjt0aGlzLmFuY2hvclR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUuYW5jaG9yVHlwZSxbInRvcExlZnQiLCJib3R0b21DZW50ZXIiLCJib3R0b21MZWZ0IiwiYm90dG9tUmlnaHQiLCJtaWRkbGVDZW50ZXIiLCJtaWRkbGVMZWZ0IiwibWlkZGxlUmlnaHQiLCJ0b3BDZW50ZXIiLCJ0b3BSaWdodCJdKTt0aGlzLmNvbFNwYW49Z2V0SW50ZWdlcih7ZGF0YTplLmNvbFNwYW4sZGVmYXVsdFZhbHVlOjEsdmFsaWRhdGU6ZT0+ZT49MXx8LTE9PT1lfSk7dGhpcy5oPWUuaD9nZXRNZWFzdXJlbWVudChlLmgpOiIiO3RoaXMuaEFsaWduPWdldFN0cmluZ09wdGlvbihlLmhBbGlnbixbImxlZnQiLCJjZW50ZXIiLCJqdXN0aWZ5IiwianVzdGlmeUFsbCIsInJhZGl4IiwicmlnaHQiXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmxvY2FsZT1lLmxvY2FsZXx8IiI7dGhpcy5tYXhIPWdldE1lYXN1cmVtZW50KGUubWF4SCwiMHB0Iik7dGhpcy5tYXhXPWdldE1lYXN1cmVtZW50KGUubWF4VywiMHB0Iik7dGhpcy5taW5IPWdldE1lYXN1cmVtZW50KGUubWluSCwiMHB0Iik7dGhpcy5taW5XPWdldE1lYXN1cmVtZW50KGUubWluVywiMHB0Iik7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy5wcmVzZW5jZT1nZXRTdHJpbmdPcHRpb24oZS5wcmVzZW5jZSxbInZpc2libGUiLCJoaWRkZW4iLCJpbmFjdGl2ZSIsImludmlzaWJsZSJdKTt0aGlzLnJlbGV2YW50PWdldFJlbGV2YW50KGUucmVsZXZhbnQpO3RoaXMucm90YXRlPWdldEludGVnZXIoe2RhdGE6ZS5yb3RhdGUsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+ZSU5MD09MH0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLnc9ZS53P2dldE1lYXN1cmVtZW50KGUudyk6IiI7dGhpcy54PWdldE1lYXN1cmVtZW50KGUueCwiMHB0Iik7dGhpcy55PWdldE1lYXN1cmVtZW50KGUueSwiMHB0Iik7dGhpcy5hc3Npc3Q9bnVsbDt0aGlzLmJpbmQ9bnVsbDt0aGlzLmJvcmRlcj1udWxsO3RoaXMuY2FsY3VsYXRlPW51bGw7dGhpcy5jYXB0aW9uPW51bGw7dGhpcy5kZXNjPW51bGw7dGhpcy5leHRyYXM9bnVsbDt0aGlzLmZvbnQ9bnVsbDt0aGlzLmZvcm1hdD1udWxsO3RoaXMuaXRlbXM9bmV3IFhGQU9iamVjdEFycmF5KDIpO3RoaXMua2VlcD1udWxsO3RoaXMubWFyZ2luPW51bGw7dGhpcy5wYXJhPW51bGw7dGhpcy50cmF2ZXJzYWw9bnVsbDt0aGlzLnVpPW51bGw7dGhpcy52YWxpZGF0ZT1udWxsO3RoaXMudmFsdWU9bnVsbDt0aGlzLmJpbmRJdGVtcz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5jb25uZWN0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmV2ZW50PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnNldFByb3BlcnR5PW5ldyBYRkFPYmplY3RBcnJheX1bZnNdKCl7cmV0dXJuITB9W09zXShlKXtfc2V0VmFsdWUodGhpcyxlKX1bVnNdKGUpe3NldFRhYkluZGV4KHRoaXMpO2lmKCF0aGlzLnVpKXt0aGlzLnVpPW5ldyBVaSh7fSk7dGhpcy51aVtDc109dGhpc1tDc107dGhpc1tZcl0odGhpcy51aSk7bGV0IGU7c3dpdGNoKHRoaXMuaXRlbXMuY2hpbGRyZW4ubGVuZ3RoKXtjYXNlIDA6ZT1uZXcgVGV4dEVkaXQoe30pO3RoaXMudWkudGV4dEVkaXQ9ZTticmVhaztjYXNlIDE6ZT1uZXcgQ2hlY2tCdXR0b24oe30pO3RoaXMudWkuY2hlY2tCdXR0b249ZTticmVhaztjYXNlIDI6ZT1uZXcgQ2hvaWNlTGlzdCh7fSk7dGhpcy51aS5jaG9pY2VMaXN0PWV9dGhpcy51aVtZcl0oZSl9aWYoIXRoaXMudWl8fCJoaWRkZW4iPT09dGhpcy5wcmVzZW5jZXx8ImluYWN0aXZlIj09PXRoaXMucHJlc2VuY2V8fDA9PT10aGlzLmh8fDA9PT10aGlzLncpcmV0dXJuIEhUTUxSZXN1bHQuRU1QVFk7dGhpcy5jYXB0aW9uJiZkZWxldGUgdGhpcy5jYXB0aW9uW1pyXTt0aGlzW0hzXSgpO2NvbnN0IHQ9dGhpcy5jYXB0aW9uP3RoaXMuY2FwdGlvbltWc10oZSkuaHRtbDpudWxsLGk9dGhpcy53LGE9dGhpcy5oO2xldCByPTAscz0wO2lmKHRoaXMubWFyZ2luKXtyPXRoaXMubWFyZ2luLmxlZnRJbnNldCt0aGlzLm1hcmdpbi5yaWdodEluc2V0O3M9dGhpcy5tYXJnaW4udG9wSW5zZXQrdGhpcy5tYXJnaW4uYm90dG9tSW5zZXR9bGV0IG49bnVsbDtpZigiIj09PXRoaXMud3x8IiI9PT10aGlzLmgpe2xldCB0PW51bGwsaT1udWxsLGE9MCxvPTA7aWYodGhpcy51aS5jaGVja0J1dHRvbilhPW89dGhpcy51aS5jaGVja0J1dHRvbi5zaXplO2Vsc2V7Y29uc3R7dzp0LGg6aX09bGF5b3V0Tm9kZSh0aGlzLGUpO2lmKG51bGwhPT10KXthPXQ7bz1pfWVsc2Ugbz1mdW5jdGlvbiBmb250c19nZXRNZXRyaWNzKGUsdD0hMSl7bGV0IGk9bnVsbDtpZihlKXtjb25zdCB0PXN0cmlwUXVvdGVzKGUudHlwZWZhY2UpLGE9ZVtDc10uZm9udEZpbmRlci5maW5kKHQpO2k9c2VsZWN0Rm9udChlLGEpfWlmKCFpKXJldHVybntsaW5lSGVpZ2h0OjEyLGxpbmVHYXA6MixsaW5lTm9HYXA6MTB9O2NvbnN0IGE9ZS5zaXplfHwxMCxyPWkubGluZUhlaWdodD9NYXRoLm1heCh0PzA6MS4yLGkubGluZUhlaWdodCk6MS4yLHM9dm9pZCAwPT09aS5saW5lR2FwPy4yOmkubGluZUdhcDtyZXR1cm57bGluZUhlaWdodDpyKmEsbGluZUdhcDpzKmEsbGluZU5vR2FwOk1hdGgubWF4KDEsci1zKSphfX0odGhpcy5mb250LCEwKS5saW5lTm9HYXB9bj1nZXRCb3JkZXJEaW1zKHRoaXMudWlbc3NdKCkpO2ErPW4udztvKz1uLmg7aWYodGhpcy5jYXB0aW9uKXtjb25zdHt3OnIsaDpzLGlzQnJva2VuOm59PXRoaXMuY2FwdGlvbltzc10oZSk7aWYobiYmdGhpc1tjc10oKVtic10oKSl7dGhpc1tMc10oKTtyZXR1cm4gSFRNTFJlc3VsdC5GQUlMVVJFfXQ9cjtpPXM7c3dpdGNoKHRoaXMuY2FwdGlvbi5wbGFjZW1lbnQpe2Nhc2UibGVmdCI6Y2FzZSJyaWdodCI6Y2FzZSJpbmxpbmUiOnQrPWE7YnJlYWs7Y2FzZSJ0b3AiOmNhc2UiYm90dG9tIjppKz1vfX1lbHNle3Q9YTtpPW99aWYodCYmIiI9PT10aGlzLncpe3QrPXI7dGhpcy53PU1hdGgubWluKHRoaXMubWF4Vzw9MD8xLzA6dGhpcy5tYXhXLHRoaXMubWluVysxPHQ/dDp0aGlzLm1pblcpfWlmKGkmJiIiPT09dGhpcy5oKXtpKz1zO3RoaXMuaD1NYXRoLm1pbih0aGlzLm1heEg8PTA/MS8wOnRoaXMubWF4SCx0aGlzLm1pbkgrMTxpP2k6dGhpcy5taW5IKX19dGhpc1tMc10oKTtmaXhEaW1lbnNpb25zKHRoaXMpO3NldEZpcnN0VW5zcGxpdHRhYmxlKHRoaXMpO2lmKCFjaGVja0RpbWVuc2lvbnModGhpcyxlKSl7dGhpcy53PWk7dGhpcy5oPWE7dGhpc1tMc10oKTtyZXR1cm4gSFRNTFJlc3VsdC5GQUlMVVJFfXVuc2V0Rmlyc3RVbnNwbGl0dGFibGUodGhpcyk7Y29uc3Qgbz10b1N0eWxlKHRoaXMsImZvbnQiLCJkaW1lbnNpb25zIiwicG9zaXRpb24iLCJyb3RhdGUiLCJhbmNob3JUeXBlIiwicHJlc2VuY2UiLCJtYXJnaW4iLCJoQWxpZ24iKTtzZXRNaW5NYXhEaW1lbnNpb25zKHRoaXMsbyk7Y29uc3QgZz1bInhmYUZpZWxkIl07dGhpcy5mb250JiZnLnB1c2goInhmYUZvbnQiKTtpc1ByaW50T25seSh0aGlzKSYmZy5wdXNoKCJ4ZmFQcmludE9ubHkiKTtjb25zdCBjPXtzdHlsZTpvLGlkOnRoaXNbenNdLGNsYXNzOmd9O2lmKG8ubWFyZ2luKXtvLnBhZGRpbmc9by5tYXJnaW47ZGVsZXRlIG8ubWFyZ2lufXNldEFjY2Vzcyh0aGlzLGcpO3RoaXMubmFtZSYmKGMueGZhTmFtZT10aGlzLm5hbWUpO2NvbnN0IGw9W10saD17bmFtZToiZGl2IixhdHRyaWJ1dGVzOmMsY2hpbGRyZW46bH07YXBwbHlBc3Npc3QodGhpcyxjKTtjb25zdCBDPXRoaXMuYm9yZGVyP3RoaXMuYm9yZGVyW19zXSgpOm51bGwsUT1jb21wdXRlQmJveCh0aGlzLGgsZSksRT10aGlzLnVpW1ZzXSgpLmh0bWw7aWYoIUUpe09iamVjdC5hc3NpZ24obyxDKTtyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKGNyZWF0ZVdyYXBwZXIodGhpcyxoKSxRKX10aGlzW1dzXSYmKEUuY2hpbGRyZW4/LlswXT9FLmNoaWxkcmVuWzBdLmF0dHJpYnV0ZXMudGFiaW5kZXg9dGhpc1tXc106RS5hdHRyaWJ1dGVzLnRhYmluZGV4PXRoaXNbV3NdKTtFLmF0dHJpYnV0ZXMuc3R5bGV8fChFLmF0dHJpYnV0ZXMuc3R5bGU9T2JqZWN0LmNyZWF0ZShudWxsKSk7bGV0IHU9bnVsbDtpZih0aGlzLnVpLmJ1dHRvbil7MT09PUUuY2hpbGRyZW4ubGVuZ3RoJiYoW3VdPUUuY2hpbGRyZW4uc3BsaWNlKDAsMSkpO09iamVjdC5hc3NpZ24oRS5hdHRyaWJ1dGVzLnN0eWxlLEMpfWVsc2UgT2JqZWN0LmFzc2lnbihvLEMpO2wucHVzaChFKTtpZih0aGlzLnZhbHVlKWlmKHRoaXMudWkuaW1hZ2VFZGl0KUUuY2hpbGRyZW4ucHVzaCh0aGlzLnZhbHVlW1ZzXSgpLmh0bWwpO2Vsc2UgaWYoIXRoaXMudWkuYnV0dG9uKXtsZXQgZT0iIjtpZih0aGlzLnZhbHVlLmV4RGF0YSllPXRoaXMudmFsdWUuZXhEYXRhW2pzXSgpO2Vsc2UgaWYodGhpcy52YWx1ZS50ZXh0KWU9dGhpcy52YWx1ZS50ZXh0W3NzXSgpO2Vsc2V7Y29uc3QgdD10aGlzLnZhbHVlW1ZzXSgpLmh0bWw7bnVsbCE9PXQmJihlPXQuY2hpbGRyZW5bMF0udmFsdWUpfXRoaXMudWkudGV4dEVkaXQmJnRoaXMudmFsdWUudGV4dD8ubWF4Q2hhcnMmJihFLmNoaWxkcmVuWzBdLmF0dHJpYnV0ZXMubWF4TGVuZ3RoPXRoaXMudmFsdWUudGV4dC5tYXhDaGFycyk7aWYoZSl7aWYodGhpcy51aS5udW1lcmljRWRpdCl7ZT1wYXJzZUZsb2F0KGUpO2U9aXNOYU4oZSk/IiI6ZS50b1N0cmluZygpfSJ0ZXh0YXJlYSI9PT1FLmNoaWxkcmVuWzBdLm5hbWU/RS5jaGlsZHJlblswXS5hdHRyaWJ1dGVzLnRleHRDb250ZW50PWU6RS5jaGlsZHJlblswXS5hdHRyaWJ1dGVzLnZhbHVlPWV9fWlmKCF0aGlzLnVpLmltYWdlRWRpdCYmRS5jaGlsZHJlbj8uWzBdJiZ0aGlzLmgpe249bnx8Z2V0Qm9yZGVyRGltcyh0aGlzLnVpW3NzXSgpKTtsZXQgdD0wO2lmKHRoaXMuY2FwdGlvbiYmWyJ0b3AiLCJib3R0b20iXS5pbmNsdWRlcyh0aGlzLmNhcHRpb24ucGxhY2VtZW50KSl7dD10aGlzLmNhcHRpb24ucmVzZXJ2ZTt0PD0wJiYodD10aGlzLmNhcHRpb25bc3NdKGUpLmgpO2NvbnN0IGk9dGhpcy5oLXQtcy1uLmg7RS5jaGlsZHJlblswXS5hdHRyaWJ1dGVzLnN0eWxlLmhlaWdodD1tZWFzdXJlVG9TdHJpbmcoaSl9ZWxzZSBFLmNoaWxkcmVuWzBdLmF0dHJpYnV0ZXMuc3R5bGUuaGVpZ2h0PSIxMDAlIn11JiZFLmNoaWxkcmVuLnB1c2godSk7aWYoIXQpe0UuYXR0cmlidXRlcy5jbGFzcyYmRS5hdHRyaWJ1dGVzLmNsYXNzLnB1c2goInhmYUxlZnQiKTt0aGlzLnc9aTt0aGlzLmg9YTtyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKGNyZWF0ZVdyYXBwZXIodGhpcyxoKSxRKX1pZih0aGlzLnVpLmJ1dHRvbil7by5wYWRkaW5nJiZkZWxldGUgby5wYWRkaW5nOyJkaXYiPT09dC5uYW1lJiYodC5uYW1lPSJzcGFuIik7RS5jaGlsZHJlbi5wdXNoKHQpO3JldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3MoaCxRKX10aGlzLnVpLmNoZWNrQnV0dG9uJiYodC5hdHRyaWJ1dGVzLmNsYXNzWzBdPSJ4ZmFDYXB0aW9uRm9yQ2hlY2tCdXR0b24iKTtFLmF0dHJpYnV0ZXMuY2xhc3N8fChFLmF0dHJpYnV0ZXMuY2xhc3M9W10pO0UuY2hpbGRyZW4uc3BsaWNlKDAsMCx0KTtzd2l0Y2godGhpcy5jYXB0aW9uLnBsYWNlbWVudCl7Y2FzZSJsZWZ0IjpjYXNlImlubGluZSI6RS5hdHRyaWJ1dGVzLmNsYXNzLnB1c2goInhmYUxlZnQiKTticmVhaztjYXNlInJpZ2h0IjpFLmF0dHJpYnV0ZXMuY2xhc3MucHVzaCgieGZhUmlnaHQiKTticmVhaztjYXNlInRvcCI6RS5hdHRyaWJ1dGVzLmNsYXNzLnB1c2goInhmYVRvcCIpO2JyZWFrO2Nhc2UiYm90dG9tIjpFLmF0dHJpYnV0ZXMuY2xhc3MucHVzaCgieGZhQm90dG9tIil9dGhpcy53PWk7dGhpcy5oPWE7cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhjcmVhdGVXcmFwcGVyKHRoaXMsaCksUSl9fWNsYXNzIEZpbGwgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sImZpbGwiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMucHJlc2VuY2U9Z2V0U3RyaW5nT3B0aW9uKGUucHJlc2VuY2UsWyJ2aXNpYmxlIiwiaGlkZGVuIiwiaW5hY3RpdmUiLCJpbnZpc2libGUiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuY29sb3I9bnVsbDt0aGlzLmV4dHJhcz1udWxsO3RoaXMubGluZWFyPW51bGw7dGhpcy5wYXR0ZXJuPW51bGw7dGhpcy5yYWRpYWw9bnVsbDt0aGlzLnNvbGlkPW51bGw7dGhpcy5zdGlwcGxlPW51bGx9W19zXSgpe2NvbnN0IGU9dGhpc1tsc10oKSx0PWVbbHNdKClbbHNdKCksaT1PYmplY3QuY3JlYXRlKG51bGwpO2xldCBhPSJjb2xvciIscj1hO2lmKGUgaW5zdGFuY2VvZiBCb3JkZXIpe2E9ImJhY2tncm91bmQtY29sb3IiO3I9ImJhY2tncm91bmQiO3QgaW5zdGFuY2VvZiBVaSYmKGkuYmFja2dyb3VuZENvbG9yPSJ3aGl0ZSIpfWlmKGUgaW5zdGFuY2VvZiBSZWN0YW5nbGV8fGUgaW5zdGFuY2VvZiBBcmMpe2E9cj0iZmlsbCI7aS5maWxsPSJ3aGl0ZSJ9Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2lmKCJleHRyYXMiPT09ZXx8ImNvbG9yIj09PWUpY29udGludWU7Y29uc3QgdD10aGlzW2VdO2lmKCEodCBpbnN0YW5jZW9mIFhGQU9iamVjdCkpY29udGludWU7Y29uc3Qgcz10W19zXSh0aGlzLmNvbG9yKTtzJiYoaVtzLnN0YXJ0c1dpdGgoIiMiKT9hOnJdPXMpO3JldHVybiBpfWlmKHRoaXMuY29sb3I/LnZhbHVlKXtjb25zdCBlPXRoaXMuY29sb3JbX3NdKCk7aVtlLnN0YXJ0c1dpdGgoIiMiKT9hOnJdPWV9cmV0dXJuIGl9fWNsYXNzIEZpbHRlciBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiZmlsdGVyIiwhMCk7dGhpcy5hZGRSZXZvY2F0aW9uSW5mbz1nZXRTdHJpbmdPcHRpb24oZS5hZGRSZXZvY2F0aW9uSW5mbyxbIiIsInJlcXVpcmVkIiwib3B0aW9uYWwiLCJub25lIl0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMudmVyc2lvbj1nZXRJbnRlZ2VyKHtkYXRhOnRoaXMudmVyc2lvbixkZWZhdWx0VmFsdWU6NSx2YWxpZGF0ZTplPT5lPj0xJiZlPD01fSk7dGhpcy5hcHBlYXJhbmNlRmlsdGVyPW51bGw7dGhpcy5jZXJ0aWZpY2F0ZXM9bnVsbDt0aGlzLmRpZ2VzdE1ldGhvZHM9bnVsbDt0aGlzLmVuY29kaW5ncz1udWxsO3RoaXMuZW5jcnlwdGlvbk1ldGhvZHM9bnVsbDt0aGlzLmhhbmRsZXI9bnVsbDt0aGlzLmxvY2tEb2N1bWVudD1udWxsO3RoaXMubWRwPW51bGw7dGhpcy5yZWFzb25zPW51bGw7dGhpcy50aW1lU3RhbXA9bnVsbH19Y2xhc3MgRmxvYXQgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJmbG9hdCIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifVtfcl0oKXtjb25zdCBlPXBhcnNlRmxvYXQodGhpc1tqcl0udHJpbSgpKTt0aGlzW2pyXT1pc05hTihlKT9udWxsOmV9W1ZzXShlKXtyZXR1cm4gdmFsdWVUb0h0bWwobnVsbCE9PXRoaXNbanJdP3RoaXNbanJdLnRvU3RyaW5nKCk6IiIpfX1jbGFzcyB0ZW1wbGF0ZV9Gb250IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJmb250IiwhMCk7dGhpcy5iYXNlbGluZVNoaWZ0PWdldE1lYXN1cmVtZW50KGUuYmFzZWxpbmVTaGlmdCk7dGhpcy5mb250SG9yaXpvbnRhbFNjYWxlPWdldEZsb2F0KHtkYXRhOmUuZm9udEhvcml6b250YWxTY2FsZSxkZWZhdWx0VmFsdWU6MTAwLHZhbGlkYXRlOmU9PmU+PTB9KTt0aGlzLmZvbnRWZXJ0aWNhbFNjYWxlPWdldEZsb2F0KHtkYXRhOmUuZm9udFZlcnRpY2FsU2NhbGUsZGVmYXVsdFZhbHVlOjEwMCx2YWxpZGF0ZTplPT5lPj0wfSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmtlcm5pbmdNb2RlPWdldFN0cmluZ09wdGlvbihlLmtlcm5pbmdNb2RlLFsibm9uZSIsInBhaXIiXSk7dGhpcy5sZXR0ZXJTcGFjaW5nPWdldE1lYXN1cmVtZW50KGUubGV0dGVyU3BhY2luZywiMCIpO3RoaXMubGluZVRocm91Z2g9Z2V0SW50ZWdlcih7ZGF0YTplLmxpbmVUaHJvdWdoLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfHwyPT09ZX0pO3RoaXMubGluZVRocm91Z2hQZXJpb2Q9Z2V0U3RyaW5nT3B0aW9uKGUubGluZVRocm91Z2hQZXJpb2QsWyJhbGwiLCJ3b3JkIl0pO3RoaXMub3ZlcmxpbmU9Z2V0SW50ZWdlcih7ZGF0YTplLm92ZXJsaW5lLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfHwyPT09ZX0pO3RoaXMub3ZlcmxpbmVQZXJpb2Q9Z2V0U3RyaW5nT3B0aW9uKGUub3ZlcmxpbmVQZXJpb2QsWyJhbGwiLCJ3b3JkIl0pO3RoaXMucG9zdHVyZT1nZXRTdHJpbmdPcHRpb24oZS5wb3N0dXJlLFsibm9ybWFsIiwiaXRhbGljIl0pO3RoaXMuc2l6ZT1nZXRNZWFzdXJlbWVudChlLnNpemUsIjEwcHQiKTt0aGlzLnR5cGVmYWNlPWUudHlwZWZhY2V8fCJDb3VyaWVyIjt0aGlzLnVuZGVybGluZT1nZXRJbnRlZ2VyKHtkYXRhOmUudW5kZXJsaW5lLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfHwyPT09ZX0pO3RoaXMudW5kZXJsaW5lUGVyaW9kPWdldFN0cmluZ09wdGlvbihlLnVuZGVybGluZVBlcmlvZCxbImFsbCIsIndvcmQiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMud2VpZ2h0PWdldFN0cmluZ09wdGlvbihlLndlaWdodCxbIm5vcm1hbCIsImJvbGQiXSk7dGhpcy5leHRyYXM9bnVsbDt0aGlzLmZpbGw9bnVsbH1bVHJdKGUpe3N1cGVyW1RyXShlKTt0aGlzW0NzXS51c2VkVHlwZWZhY2VzLmFkZCh0aGlzLnR5cGVmYWNlKX1bX3NdKCl7Y29uc3QgZT10b1N0eWxlKHRoaXMsImZpbGwiKSx0PWUuY29sb3I7aWYodClpZigiIzAwMDAwMCI9PT10KWRlbGV0ZSBlLmNvbG9yO2Vsc2UgaWYoIXQuc3RhcnRzV2l0aCgiIyIpKXtlLmJhY2tncm91bmQ9dDtlLmJhY2tncm91bmRDbGlwPSJ0ZXh0IjtlLmNvbG9yPSJ0cmFuc3BhcmVudCJ9dGhpcy5iYXNlbGluZVNoaWZ0JiYoZS52ZXJ0aWNhbEFsaWduPW1lYXN1cmVUb1N0cmluZyh0aGlzLmJhc2VsaW5lU2hpZnQpKTtlLmZvbnRLZXJuaW5nPSJub25lIj09PXRoaXMua2VybmluZ01vZGU/Im5vbmUiOiJub3JtYWwiO2UubGV0dGVyU3BhY2luZz1tZWFzdXJlVG9TdHJpbmcodGhpcy5sZXR0ZXJTcGFjaW5nKTtpZigwIT09dGhpcy5saW5lVGhyb3VnaCl7ZS50ZXh0RGVjb3JhdGlvbj0ibGluZS10aHJvdWdoIjsyPT09dGhpcy5saW5lVGhyb3VnaCYmKGUudGV4dERlY29yYXRpb25TdHlsZT0iZG91YmxlIil9aWYoMCE9PXRoaXMub3ZlcmxpbmUpe2UudGV4dERlY29yYXRpb249Im92ZXJsaW5lIjsyPT09dGhpcy5vdmVybGluZSYmKGUudGV4dERlY29yYXRpb25TdHlsZT0iZG91YmxlIil9ZS5mb250U3R5bGU9dGhpcy5wb3N0dXJlO2UuZm9udFNpemU9bWVhc3VyZVRvU3RyaW5nKC45OSp0aGlzLnNpemUpO3NldEZvbnRGYW1pbHkodGhpcyx0aGlzLHRoaXNbQ3NdLmZvbnRGaW5kZXIsZSk7aWYoMCE9PXRoaXMudW5kZXJsaW5lKXtlLnRleHREZWNvcmF0aW9uPSJ1bmRlcmxpbmUiOzI9PT10aGlzLnVuZGVybGluZSYmKGUudGV4dERlY29yYXRpb25TdHlsZT0iZG91YmxlIil9ZS5mb250V2VpZ2h0PXRoaXMud2VpZ2h0O3JldHVybiBlfX1jbGFzcyBGb3JtYXQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sImZvcm1hdCIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5waWN0dXJlPW51bGx9fWNsYXNzIEhhbmRsZXIgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sImhhbmRsZXIiKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudHlwZT1nZXRTdHJpbmdPcHRpb24oZS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIEh5cGhlbmF0aW9uIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJoeXBoZW5hdGlvbiIpO3RoaXMuZXhjbHVkZUFsbENhcHM9Z2V0SW50ZWdlcih7ZGF0YTplLmV4Y2x1ZGVBbGxDYXBzLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfSk7dGhpcy5leGNsdWRlSW5pdGlhbENhcD1nZXRJbnRlZ2VyKHtkYXRhOmUuZXhjbHVkZUluaXRpYWxDYXAsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLmh5cGhlbmF0ZT1nZXRJbnRlZ2VyKHtkYXRhOmUuaHlwaGVuYXRlLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnB1c2hDaGFyYWN0ZXJDb3VudD1nZXRJbnRlZ2VyKHtkYXRhOmUucHVzaENoYXJhY3RlckNvdW50LGRlZmF1bHRWYWx1ZTozLHZhbGlkYXRlOmU9PmU+PTB9KTt0aGlzLnJlbWFpbkNoYXJhY3RlckNvdW50PWdldEludGVnZXIoe2RhdGE6ZS5yZW1haW5DaGFyYWN0ZXJDb3VudCxkZWZhdWx0VmFsdWU6Myx2YWxpZGF0ZTplPT5lPj0wfSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMud29yZENoYXJhY3RlckNvdW50PWdldEludGVnZXIoe2RhdGE6ZS53b3JkQ2hhcmFjdGVyQ291bnQsZGVmYXVsdFZhbHVlOjcsdmFsaWRhdGU6ZT0+ZT49MH0pfX1jbGFzcyBJbWFnZSBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiaW1hZ2UiKTt0aGlzLmFzcGVjdD1nZXRTdHJpbmdPcHRpb24oZS5hc3BlY3QsWyJmaXQiLCJhY3R1YWwiLCJoZWlnaHQiLCJub25lIiwid2lkdGgiXSk7dGhpcy5jb250ZW50VHlwZT1lLmNvbnRlbnRUeXBlfHwiIjt0aGlzLmhyZWY9ZS5ocmVmfHwiIjt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudHJhbnNmZXJFbmNvZGluZz1nZXRTdHJpbmdPcHRpb24oZS50cmFuc2ZlckVuY29kaW5nLFsiYmFzZTY0Iiwibm9uZSIsInBhY2thZ2UiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifVtWc10oKXtpZih0aGlzLmNvbnRlbnRUeXBlJiYhTG4uaGFzKHRoaXMuY29udGVudFR5cGUudG9Mb3dlckNhc2UoKSkpcmV0dXJuIEhUTUxSZXN1bHQuRU1QVFk7bGV0IGU9dGhpc1tDc10uaW1hZ2VzJiZ0aGlzW0NzXS5pbWFnZXMuZ2V0KHRoaXMuaHJlZik7aWYoIWUmJih0aGlzLmhyZWZ8fCF0aGlzW2pyXSkpcmV0dXJuIEhUTUxSZXN1bHQuRU1QVFk7ZXx8ImJhc2U2NCIhPT10aGlzLnRyYW5zZmVyRW5jb2Rpbmd8fChlPWZ1bmN0aW9uIGZyb21CYXNlNjRVdGlsKGUpe3JldHVybiBVaW50OEFycmF5LmZyb21CYXNlNjQ/VWludDhBcnJheS5mcm9tQmFzZTY0KGUpOnN0cmluZ1RvQnl0ZXMoYXRvYihlKSl9KHRoaXNbanJdKSk7aWYoIWUpcmV0dXJuIEhUTUxSZXN1bHQuRU1QVFk7aWYoIXRoaXMuY29udGVudFR5cGUpe2Zvcihjb25zdFt0LGldb2YgSG4paWYoZS5sZW5ndGg+dC5sZW5ndGgmJnQuZXZlcnkoKCh0LGkpPT50PT09ZVtpXSkpKXt0aGlzLmNvbnRlbnRUeXBlPWk7YnJlYWt9aWYoIXRoaXMuY29udGVudFR5cGUpcmV0dXJuIEhUTUxSZXN1bHQuRU1QVFl9Y29uc3QgdD1uZXcgQmxvYihbZV0se3R5cGU6dGhpcy5jb250ZW50VHlwZX0pO2xldCBpO3N3aXRjaCh0aGlzLmFzcGVjdCl7Y2FzZSJmaXQiOmNhc2UiYWN0dWFsIjpicmVhaztjYXNlImhlaWdodCI6aT17aGVpZ2h0OiIxMDAlIixvYmplY3RGaXQ6ImZpbGwifTticmVhaztjYXNlIm5vbmUiOmk9e3dpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLG9iamVjdEZpdDoiZmlsbCJ9O2JyZWFrO2Nhc2Uid2lkdGgiOmk9e3dpZHRoOiIxMDAlIixvYmplY3RGaXQ6ImZpbGwifX1jb25zdCBhPXRoaXNbbHNdKCk7cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2Vzcyh7bmFtZToiaW1nIixhdHRyaWJ1dGVzOntjbGFzczpbInhmYUltYWdlIl0sc3R5bGU6aSxzcmM6VVJMLmNyZWF0ZU9iamVjdFVSTCh0KSxhbHQ6YT9hcmlhTGFiZWwoYVtsc10oKSk6bnVsbH19KX19Y2xhc3MgSW1hZ2VFZGl0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJpbWFnZUVkaXQiLCEwKTt0aGlzLmRhdGE9Z2V0U3RyaW5nT3B0aW9uKGUuZGF0YSxbImxpbmsiLCJlbWJlZCJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmJvcmRlcj1udWxsO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5tYXJnaW49bnVsbH1bVnNdKGUpe3JldHVybiJlbWJlZCI9PT10aGlzLmRhdGE/SFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJkaXYiLGNoaWxkcmVuOltdLGF0dHJpYnV0ZXM6e319KTpIVE1MUmVzdWx0LkVNUFRZfX1jbGFzcyBJbnRlZ2VyIGV4dGVuZHMgQ29udGVudE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiaW50ZWdlciIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifVtfcl0oKXtjb25zdCBlPXBhcnNlSW50KHRoaXNbanJdLnRyaW0oKSwxMCk7dGhpc1tqcl09aXNOYU4oZSk/bnVsbDplfVtWc10oZSl7cmV0dXJuIHZhbHVlVG9IdG1sKG51bGwhPT10aGlzW2pyXT90aGlzW2pyXS50b1N0cmluZygpOiIiKX19Y2xhc3MgSXNzdWVycyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwiaXNzdWVycyIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy50eXBlPWdldFN0cmluZ09wdGlvbihlLnR5cGUsWyJvcHRpb25hbCIsInJlcXVpcmVkIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmNlcnRpZmljYXRlPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgSXRlbXMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sIml0ZW1zIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnByZXNlbmNlPWdldFN0cmluZ09wdGlvbihlLnByZXNlbmNlLFsidmlzaWJsZSIsImhpZGRlbiIsImluYWN0aXZlIiwiaW52aXNpYmxlIl0pO3RoaXMucmVmPWUucmVmfHwiIjt0aGlzLnNhdmU9Z2V0SW50ZWdlcih7ZGF0YTplLnNhdmUsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5ib29sZWFuPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRhdGU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGF0ZVRpbWU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGVjaW1hbD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5leERhdGE9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZmxvYXQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaW1hZ2U9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaW50ZWdlcj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50ZXh0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnRpbWU9bmV3IFhGQU9iamVjdEFycmF5fVtWc10oKXtjb25zdCBlPVtdO2Zvcihjb25zdCB0IG9mIHRoaXNbb3NdKCkpZS5wdXNoKHRbanNdKCkpO3JldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3MoZSl9fWNsYXNzIEtlZXAgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sImtlZXAiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO2NvbnN0IHQ9WyJub25lIiwiY29udGVudEFyZWEiLCJwYWdlQXJlYSJdO3RoaXMuaW50YWN0PWdldFN0cmluZ09wdGlvbihlLmludGFjdCx0KTt0aGlzLm5leHQ9Z2V0U3RyaW5nT3B0aW9uKGUubmV4dCx0KTt0aGlzLnByZXZpb3VzPWdldFN0cmluZ09wdGlvbihlLnByZXZpb3VzLHQpO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmV4dHJhcz1udWxsfX1jbGFzcyBLZXlVc2FnZSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwia2V5VXNhZ2UiKTtjb25zdCB0PVsiIiwieWVzIiwibm8iXTt0aGlzLmNybFNpZ249Z2V0U3RyaW5nT3B0aW9uKGUuY3JsU2lnbix0KTt0aGlzLmRhdGFFbmNpcGhlcm1lbnQ9Z2V0U3RyaW5nT3B0aW9uKGUuZGF0YUVuY2lwaGVybWVudCx0KTt0aGlzLmRlY2lwaGVyT25seT1nZXRTdHJpbmdPcHRpb24oZS5kZWNpcGhlck9ubHksdCk7dGhpcy5kaWdpdGFsU2lnbmF0dXJlPWdldFN0cmluZ09wdGlvbihlLmRpZ2l0YWxTaWduYXR1cmUsdCk7dGhpcy5lbmNpcGhlck9ubHk9Z2V0U3RyaW5nT3B0aW9uKGUuZW5jaXBoZXJPbmx5LHQpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5rZXlBZ3JlZW1lbnQ9Z2V0U3RyaW5nT3B0aW9uKGUua2V5QWdyZWVtZW50LHQpO3RoaXMua2V5Q2VydFNpZ249Z2V0U3RyaW5nT3B0aW9uKGUua2V5Q2VydFNpZ24sdCk7dGhpcy5rZXlFbmNpcGhlcm1lbnQ9Z2V0U3RyaW5nT3B0aW9uKGUua2V5RW5jaXBoZXJtZW50LHQpO3RoaXMubm9uUmVwdWRpYXRpb249Z2V0U3RyaW5nT3B0aW9uKGUubm9uUmVwdWRpYXRpb24sdCk7dGhpcy50eXBlPWdldFN0cmluZ09wdGlvbihlLnR5cGUsWyJvcHRpb25hbCIsInJlcXVpcmVkIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgTGluZSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwibGluZSIsITApO3RoaXMuaGFuZD1nZXRTdHJpbmdPcHRpb24oZS5oYW5kLFsiZXZlbiIsImxlZnQiLCJyaWdodCJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMuc2xvcGU9Z2V0U3RyaW5nT3B0aW9uKGUuc2xvcGUsWyJcXCIsIi8iXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZWRnZT1udWxsfVtWc10oKXtjb25zdCBlPXRoaXNbbHNdKClbbHNdKCksdD10aGlzLmVkZ2V8fG5ldyBFZGdlKHt9KSxpPXRbX3NdKCksYT1PYmplY3QuY3JlYXRlKG51bGwpLHI9InZpc2libGUiPT09dC5wcmVzZW5jZT90LnRoaWNrbmVzczowO2Euc3Ryb2tlV2lkdGg9bWVhc3VyZVRvU3RyaW5nKHIpO2Euc3Ryb2tlPWkuY29sb3I7bGV0IHMsbixvLGcsYz0iMTAwJSIsbD0iMTAwJSI7aWYoZS53PD1yKXtbcyxuLG8sZ109WyI1MCUiLDAsIjUwJSIsIjEwMCUiXTtjPWEuc3Ryb2tlV2lkdGh9ZWxzZSBpZihlLmg8PXIpe1tzLG4sbyxnXT1bMCwiNTAlIiwiMTAwJSIsIjUwJSJdO2w9YS5zdHJva2VXaWR0aH1lbHNlIlxcIj09PXRoaXMuc2xvcGU/W3MsbixvLGddPVswLDAsIjEwMCUiLCIxMDAlIl06W3MsbixvLGddPVswLCIxMDAlIiwiMTAwJSIsMF07Y29uc3QgaD17bmFtZToic3ZnIixjaGlsZHJlbjpbe25hbWU6ImxpbmUiLGF0dHJpYnV0ZXM6e3htbG5zOlVuLHgxOnMseTE6bix4MjpvLHkyOmcsc3R5bGU6YX19XSxhdHRyaWJ1dGVzOnt4bWxuczpVbix3aWR0aDpjLGhlaWdodDpsLHN0eWxlOntvdmVyZmxvdzoidmlzaWJsZSJ9fX07aWYoaGFzTWFyZ2luKGUpKXJldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3Moe25hbWU6ImRpdiIsYXR0cmlidXRlczp7c3R5bGU6e2Rpc3BsYXk6ImlubGluZSIsd2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSJ9fSxjaGlsZHJlbjpbaF19KTtoLmF0dHJpYnV0ZXMuc3R5bGUucG9zaXRpb249ImFic29sdXRlIjtyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKGgpfX1jbGFzcyBMaW5lYXIgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sImxpbmVhciIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy50eXBlPWdldFN0cmluZ09wdGlvbihlLnR5cGUsWyJ0b1JpZ2h0IiwidG9Cb3R0b20iLCJ0b0xlZnQiLCJ0b1RvcCJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5jb2xvcj1udWxsO3RoaXMuZXh0cmFzPW51bGx9W19zXShlKXtlPWU/ZVtfc10oKToiI0ZGRkZGRiI7cmV0dXJuYGxpbmVhci1ncmFkaWVudCgke3RoaXMudHlwZS5yZXBsYWNlKC8oW1JCTFRdKS8sIiAkMSIpLnRvTG93ZXJDYXNlKCl9LCAke2V9LCAke3RoaXMuY29sb3I/dGhpcy5jb2xvcltfc10oKToiIzAwMDAwMCJ9KWB9fWNsYXNzIExvY2tEb2N1bWVudCBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sImxvY2tEb2N1bWVudCIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy50eXBlPWdldFN0cmluZ09wdGlvbihlLnR5cGUsWyJvcHRpb25hbCIsInJlcXVpcmVkIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn1bX3JdKCl7dGhpc1tqcl09Z2V0U3RyaW5nT3B0aW9uKHRoaXNbanJdLFsiYXV0byIsIjAiLCIxIl0pfX1jbGFzcyBNYW5pZmVzdCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwibWFuaWZlc3QiLCEwKTt0aGlzLmFjdGlvbj1nZXRTdHJpbmdPcHRpb24oZS5hY3Rpb24sWyJpbmNsdWRlIiwiYWxsIiwiZXhjbHVkZSJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmV4dHJhcz1udWxsO3RoaXMucmVmPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgTWFyZ2luIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJtYXJnaW4iLCEwKTt0aGlzLmJvdHRvbUluc2V0PWdldE1lYXN1cmVtZW50KGUuYm90dG9tSW5zZXQsIjAiKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubGVmdEluc2V0PWdldE1lYXN1cmVtZW50KGUubGVmdEluc2V0LCIwIik7dGhpcy5yaWdodEluc2V0PWdldE1lYXN1cmVtZW50KGUucmlnaHRJbnNldCwiMCIpO3RoaXMudG9wSW5zZXQ9Z2V0TWVhc3VyZW1lbnQoZS50b3BJbnNldCwiMCIpO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmV4dHJhcz1udWxsfVtfc10oKXtyZXR1cm57bWFyZ2luOm1lYXN1cmVUb1N0cmluZyh0aGlzLnRvcEluc2V0KSsiICIrbWVhc3VyZVRvU3RyaW5nKHRoaXMucmlnaHRJbnNldCkrIiAiK21lYXN1cmVUb1N0cmluZyh0aGlzLmJvdHRvbUluc2V0KSsiICIrbWVhc3VyZVRvU3RyaW5nKHRoaXMubGVmdEluc2V0KX19fWNsYXNzIE1kcCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwibWRwIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnBlcm1pc3Npb25zPWdldEludGVnZXIoe2RhdGE6ZS5wZXJtaXNzaW9ucyxkZWZhdWx0VmFsdWU6Mix2YWxpZGF0ZTplPT4xPT09ZXx8Mz09PWV9KTt0aGlzLnNpZ25hdHVyZVR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUuc2lnbmF0dXJlVHlwZSxbImZpbGxlciIsImF1dGhvciJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIE1lZGl1bSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwibWVkaXVtIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmltYWdpbmdCQm94PWZ1bmN0aW9uIGdldEJCb3goZSl7Y29uc3QgdD0tMTtpZighZSlyZXR1cm57eDp0LHk6dCx3aWR0aDp0LGhlaWdodDp0fTtjb25zdCBpPWUudHJpbSgpLnNwbGl0KC9ccyosXHMqLykubWFwKChlPT5nZXRNZWFzdXJlbWVudChlLCItMSIpKSk7aWYoaS5sZW5ndGg8NHx8aVsyXTwwfHxpWzNdPDApcmV0dXJue3g6dCx5OnQsd2lkdGg6dCxoZWlnaHQ6dH07Y29uc3RbYSxyLHMsbl09aTtyZXR1cm57eDphLHk6cix3aWR0aDpzLGhlaWdodDpufX0oZS5pbWFnaW5nQkJveCk7dGhpcy5sb25nPWdldE1lYXN1cmVtZW50KGUubG9uZyk7dGhpcy5vcmllbnRhdGlvbj1nZXRTdHJpbmdPcHRpb24oZS5vcmllbnRhdGlvbixbInBvcnRyYWl0IiwibGFuZHNjYXBlIl0pO3RoaXMuc2hvcnQ9Z2V0TWVhc3VyZW1lbnQoZS5zaG9ydCk7dGhpcy5zdG9jaz1lLnN0b2NrfHwiIjt0aGlzLnRyYXlJbj1nZXRTdHJpbmdPcHRpb24oZS50cmF5SW4sWyJhdXRvIiwiZGVsZWdhdGUiLCJwYWdlRnJvbnQiXSk7dGhpcy50cmF5T3V0PWdldFN0cmluZ09wdGlvbihlLnRyYXlPdXQsWyJhdXRvIiwiZGVsZWdhdGUiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBNZXNzYWdlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJtZXNzYWdlIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy50ZXh0PW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgTnVtZXJpY0VkaXQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sIm51bWVyaWNFZGl0IiwhMCk7dGhpcy5oU2Nyb2xsUG9saWN5PWdldFN0cmluZ09wdGlvbihlLmhTY3JvbGxQb2xpY3ksWyJhdXRvIiwib2ZmIiwib24iXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5ib3JkZXI9bnVsbDt0aGlzLmNvbWI9bnVsbDt0aGlzLmV4dHJhcz1udWxsO3RoaXMubWFyZ2luPW51bGx9W1ZzXShlKXtjb25zdCB0PXRvU3R5bGUodGhpcywiYm9yZGVyIiwiZm9udCIsIm1hcmdpbiIpLGk9dGhpc1tsc10oKVtsc10oKSxhPXtuYW1lOiJpbnB1dCIsYXR0cmlidXRlczp7dHlwZToidGV4dCIsZmllbGRJZDppW3pzXSxkYXRhSWQ6aVtYcl0/Llt6c118fGlbenNdLGNsYXNzOlsieGZhVGV4dGZpZWxkIl0sc3R5bGU6dCwiYXJpYS1sYWJlbCI6YXJpYUxhYmVsKGkpLCJhcmlhLXJlcXVpcmVkIjohMX19O2lmKGlzUmVxdWlyZWQoaSkpe2EuYXR0cmlidXRlc1siYXJpYS1yZXF1aXJlZCJdPSEwO2EuYXR0cmlidXRlcy5yZXF1aXJlZD0hMH1yZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJsYWJlbCIsYXR0cmlidXRlczp7Y2xhc3M6WyJ4ZmFMYWJlbCJdfSxjaGlsZHJlbjpbYV19KX19Y2xhc3MgT2NjdXIgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sIm9jY3VyIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmluaXRpYWw9IiIhPT1lLmluaXRpYWw/Z2V0SW50ZWdlcih7ZGF0YTplLmluaXRpYWwsZGVmYXVsdFZhbHVlOiIiLHZhbGlkYXRlOmU9PiEwfSk6IiI7dGhpcy5tYXg9IiIhPT1lLm1heD9nZXRJbnRlZ2VyKHtkYXRhOmUubWF4LGRlZmF1bHRWYWx1ZToxLHZhbGlkYXRlOmU9PiEwfSk6IiI7dGhpcy5taW49IiIhPT1lLm1pbj9nZXRJbnRlZ2VyKHtkYXRhOmUubWluLGRlZmF1bHRWYWx1ZToxLHZhbGlkYXRlOmU9PiEwfSk6IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZXh0cmFzPW51bGx9W1RyXSgpe2NvbnN0IGU9dGhpc1tsc10oKSx0PXRoaXMubWluOyIiPT09dGhpcy5taW4mJih0aGlzLm1pbj1lIGluc3RhbmNlb2YgUGFnZUFyZWF8fGUgaW5zdGFuY2VvZiBQYWdlU2V0PzA6MSk7IiI9PT10aGlzLm1heCYmKHRoaXMubWF4PSIiPT09dD9lIGluc3RhbmNlb2YgUGFnZUFyZWF8fGUgaW5zdGFuY2VvZiBQYWdlU2V0Py0xOjE6dGhpcy5taW4pOy0xIT09dGhpcy5tYXgmJnRoaXMubWF4PHRoaXMubWluJiYodGhpcy5tYXg9dGhpcy5taW4pOyIiPT09dGhpcy5pbml0aWFsJiYodGhpcy5pbml0aWFsPWUgaW5zdGFuY2VvZiBUZW1wbGF0ZT8xOnRoaXMubWluKX19Y2xhc3MgT2lkIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJvaWQiKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgT2lkcyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwib2lkcyIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy50eXBlPWdldFN0cmluZ09wdGlvbihlLnR5cGUsWyJvcHRpb25hbCIsInJlcXVpcmVkIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLm9pZD1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIE92ZXJmbG93IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJvdmVyZmxvdyIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5sZWFkZXI9ZS5sZWFkZXJ8fCIiO3RoaXMudGFyZ2V0PWUudGFyZ2V0fHwiIjt0aGlzLnRyYWlsZXI9ZS50cmFpbGVyfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9W3NzXSgpe2lmKCF0aGlzW1pyXSl7Y29uc3QgZT10aGlzW2xzXSgpLHQ9dGhpc1toc10oKSxpPXRbS3NdKHRoaXMudGFyZ2V0LGUpLGE9dFtLc10odGhpcy5sZWFkZXIsZSkscj10W0tzXSh0aGlzLnRyYWlsZXIsZSk7dGhpc1tacl09e3RhcmdldDppPy5bMF18fG51bGwsbGVhZGVyOmE/LlswXXx8bnVsbCx0cmFpbGVyOnI/LlswXXx8bnVsbCxhZGRMZWFkZXI6ITEsYWRkVHJhaWxlcjohMX19cmV0dXJuIHRoaXNbWnJdfX1jbGFzcyBQYWdlQXJlYSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwicGFnZUFyZWEiLCEwKTt0aGlzLmJsYW5rT3JOb3RCbGFuaz1nZXRTdHJpbmdPcHRpb24oZS5ibGFua09yTm90QmxhbmssWyJhbnkiLCJibGFuayIsIm5vdEJsYW5rIl0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5pbml0aWFsTnVtYmVyPWdldEludGVnZXIoe2RhdGE6ZS5pbml0aWFsTnVtYmVyLGRlZmF1bHRWYWx1ZToxLHZhbGlkYXRlOmU9PiEwfSk7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy5udW1iZXJlZD1nZXRJbnRlZ2VyKHtkYXRhOmUubnVtYmVyZWQsZGVmYXVsdFZhbHVlOjEsdmFsaWRhdGU6ZT0+ITB9KTt0aGlzLm9kZE9yRXZlbj1nZXRTdHJpbmdPcHRpb24oZS5vZGRPckV2ZW4sWyJhbnkiLCJldmVuIiwib2RkIl0pO3RoaXMucGFnZVBvc2l0aW9uPWdldFN0cmluZ09wdGlvbihlLnBhZ2VQb3NpdGlvbixbImFueSIsImZpcnN0IiwibGFzdCIsIm9ubHkiLCJyZXN0Il0pO3RoaXMucmVsZXZhbnQ9Z2V0UmVsZXZhbnQoZS5yZWxldmFudCk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZGVzYz1udWxsO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5tZWRpdW09bnVsbDt0aGlzLm9jY3VyPW51bGw7dGhpcy5hcmVhPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmNvbnRlbnRBcmVhPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRyYXc9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZXhjbEdyb3VwPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmZpZWxkPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnN1YmZvcm09bmV3IFhGQU9iamVjdEFycmF5fVtGc10oKXtpZighdGhpc1tacl0pe3RoaXNbWnJdPXtudW1iZXJPZlVzZTowfTtyZXR1cm4hMH1yZXR1cm4hdGhpcy5vY2N1cnx8LTE9PT10aGlzLm9jY3VyLm1heHx8dGhpc1tacl0ubnVtYmVyT2ZVc2U8dGhpcy5vY2N1ci5tYXh9W3FyXSgpe2RlbGV0ZSB0aGlzW1pyXX1bSXNdKCl7dGhpc1tacl18fCh0aGlzW1pyXT17bnVtYmVyT2ZVc2U6MH0pO2NvbnN0IGU9dGhpc1tsc10oKTtpZigib3JkZXJlZE9jY3VycmVuY2UiPT09ZS5yZWxhdGlvbiYmdGhpc1tGc10oKSl7dGhpc1tacl0ubnVtYmVyT2ZVc2UrPTE7cmV0dXJuIHRoaXN9cmV0dXJuIGVbSXNdKCl9W2VzXSgpe3JldHVybiB0aGlzW1pyXS5zcGFjZXx8e3dpZHRoOjAsaGVpZ2h0OjB9fVtWc10oKXt0aGlzW1pyXXx8KHRoaXNbWnJdPXtudW1iZXJPZlVzZToxfSk7Y29uc3QgZT1bXTt0aGlzW1pyXS5jaGlsZHJlbj1lO2NvbnN0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtpZih0aGlzLm1lZGl1bSYmdGhpcy5tZWRpdW0uc2hvcnQmJnRoaXMubWVkaXVtLmxvbmcpe3Qud2lkdGg9bWVhc3VyZVRvU3RyaW5nKHRoaXMubWVkaXVtLnNob3J0KTt0LmhlaWdodD1tZWFzdXJlVG9TdHJpbmcodGhpcy5tZWRpdW0ubG9uZyk7dGhpc1tacl0uc3BhY2U9e3dpZHRoOnRoaXMubWVkaXVtLnNob3J0LGhlaWdodDp0aGlzLm1lZGl1bS5sb25nfTtpZigibGFuZHNjYXBlIj09PXRoaXMubWVkaXVtLm9yaWVudGF0aW9uKXtjb25zdCBlPXQud2lkdGg7dC53aWR0aD10LmhlaWdodDt0LmhlaWdodD1lO3RoaXNbWnJdLnNwYWNlPXt3aWR0aDp0aGlzLm1lZGl1bS5sb25nLGhlaWdodDp0aGlzLm1lZGl1bS5zaG9ydH19fWVsc2Ugd2FybigiWEZBIC0gTm8gbWVkaXVtIHNwZWNpZmllZCBpbiBwYWdlQXJlYTogcGxlYXNlIGZpbGUgYSBidWcuIik7dGhpc1tLcl0oe2ZpbHRlcjpuZXcgU2V0KFsiYXJlYSIsImRyYXciLCJmaWVsZCIsInN1YmZvcm0iXSksaW5jbHVkZTohMH0pO3RoaXNbS3JdKHtmaWx0ZXI6bmV3IFNldChbImNvbnRlbnRBcmVhIl0pLGluY2x1ZGU6ITB9KTtyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJkaXYiLGNoaWxkcmVuOmUsYXR0cmlidXRlczp7Y2xhc3M6WyJ4ZmFQYWdlIl0saWQ6dGhpc1t6c10sc3R5bGU6dCx4ZmFOYW1lOnRoaXMubmFtZX19KX19Y2xhc3MgUGFnZVNldCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwicGFnZVNldCIsITApO3RoaXMuZHVwbGV4SW1wb3NpdGlvbj1nZXRTdHJpbmdPcHRpb24oZS5kdXBsZXhJbXBvc2l0aW9uLFsibG9uZ0VkZ2UiLCJzaG9ydEVkZ2UiXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnJlbGF0aW9uPWdldFN0cmluZ09wdGlvbihlLnJlbGF0aW9uLFsib3JkZXJlZE9jY3VycmVuY2UiLCJkdXBsZXhQYWdpbmF0ZWQiLCJzaW1wbGV4UGFnaW5hdGVkIl0pO3RoaXMucmVsZXZhbnQ9Z2V0UmVsZXZhbnQoZS5yZWxldmFudCk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5vY2N1cj1udWxsO3RoaXMucGFnZUFyZWE9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMucGFnZVNldD1uZXcgWEZBT2JqZWN0QXJyYXl9W3FyXSgpe2Zvcihjb25zdCBlIG9mIHRoaXMucGFnZUFyZWEuY2hpbGRyZW4pZVtxcl0oKTtmb3IoY29uc3QgZSBvZiB0aGlzLnBhZ2VTZXQuY2hpbGRyZW4pZVtxcl0oKX1bRnNdKCl7cmV0dXJuIXRoaXMub2NjdXJ8fC0xPT09dGhpcy5vY2N1ci5tYXh8fHRoaXNbWnJdLm51bWJlck9mVXNlPHRoaXMub2NjdXIubWF4fVtJc10oKXt0aGlzW1pyXXx8KHRoaXNbWnJdPXtudW1iZXJPZlVzZToxLHBhZ2VJbmRleDotMSxwYWdlU2V0SW5kZXg6LTF9KTtpZigib3JkZXJlZE9jY3VycmVuY2UiPT09dGhpcy5yZWxhdGlvbil7aWYodGhpc1tacl0ucGFnZUluZGV4KzE8dGhpcy5wYWdlQXJlYS5jaGlsZHJlbi5sZW5ndGgpe3RoaXNbWnJdLnBhZ2VJbmRleCs9MTtyZXR1cm4gdGhpcy5wYWdlQXJlYS5jaGlsZHJlblt0aGlzW1pyXS5wYWdlSW5kZXhdW0lzXSgpfWlmKHRoaXNbWnJdLnBhZ2VTZXRJbmRleCsxPHRoaXMucGFnZVNldC5jaGlsZHJlbi5sZW5ndGgpe3RoaXNbWnJdLnBhZ2VTZXRJbmRleCs9MTtyZXR1cm4gdGhpcy5wYWdlU2V0LmNoaWxkcmVuW3RoaXNbWnJdLnBhZ2VTZXRJbmRleF1bSXNdKCl9aWYodGhpc1tGc10oKSl7dGhpc1tacl0ubnVtYmVyT2ZVc2UrPTE7dGhpc1tacl0ucGFnZUluZGV4PS0xO3RoaXNbWnJdLnBhZ2VTZXRJbmRleD0tMTtyZXR1cm4gdGhpc1tJc10oKX1jb25zdCBlPXRoaXNbbHNdKCk7aWYoZSBpbnN0YW5jZW9mIFBhZ2VTZXQpcmV0dXJuIGVbSXNdKCk7dGhpc1txcl0oKTtyZXR1cm4gdGhpc1tJc10oKX1jb25zdCBlPXRoaXNbaHNdKClbWnJdLnBhZ2VOdW1iZXIsdD1lJTI9PTA/ImV2ZW4iOiJvZGQiLGk9MD09PWU/ImZpcnN0IjoicmVzdCI7bGV0IGE9dGhpcy5wYWdlQXJlYS5jaGlsZHJlbi5maW5kKChlPT5lLm9kZE9yRXZlbj09PXQmJmUucGFnZVBvc2l0aW9uPT09aSkpO2lmKGEpcmV0dXJuIGE7YT10aGlzLnBhZ2VBcmVhLmNoaWxkcmVuLmZpbmQoKGU9PiJhbnkiPT09ZS5vZGRPckV2ZW4mJmUucGFnZVBvc2l0aW9uPT09aSkpO2lmKGEpcmV0dXJuIGE7YT10aGlzLnBhZ2VBcmVhLmNoaWxkcmVuLmZpbmQoKGU9PiJhbnkiPT09ZS5vZGRPckV2ZW4mJiJhbnkiPT09ZS5wYWdlUG9zaXRpb24pKTtyZXR1cm4gYXx8dGhpcy5wYWdlQXJlYS5jaGlsZHJlblswXX19Y2xhc3MgUGFyYSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwicGFyYSIsITApO3RoaXMuaEFsaWduPWdldFN0cmluZ09wdGlvbihlLmhBbGlnbixbImxlZnQiLCJjZW50ZXIiLCJqdXN0aWZ5IiwianVzdGlmeUFsbCIsInJhZGl4IiwicmlnaHQiXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmxpbmVIZWlnaHQ9ZS5saW5lSGVpZ2h0P2dldE1lYXN1cmVtZW50KGUubGluZUhlaWdodCwiMHB0Iik6IiI7dGhpcy5tYXJnaW5MZWZ0PWUubWFyZ2luTGVmdD9nZXRNZWFzdXJlbWVudChlLm1hcmdpbkxlZnQsIjBwdCIpOiIiO3RoaXMubWFyZ2luUmlnaHQ9ZS5tYXJnaW5SaWdodD9nZXRNZWFzdXJlbWVudChlLm1hcmdpblJpZ2h0LCIwcHQiKToiIjt0aGlzLm9ycGhhbnM9Z2V0SW50ZWdlcih7ZGF0YTplLm9ycGhhbnMsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+ZT49MH0pO3RoaXMucHJlc2VydmU9ZS5wcmVzZXJ2ZXx8IiI7dGhpcy5yYWRpeE9mZnNldD1lLnJhZGl4T2Zmc2V0P2dldE1lYXN1cmVtZW50KGUucmFkaXhPZmZzZXQsIjBwdCIpOiIiO3RoaXMuc3BhY2VBYm92ZT1lLnNwYWNlQWJvdmU/Z2V0TWVhc3VyZW1lbnQoZS5zcGFjZUFib3ZlLCIwcHQiKToiIjt0aGlzLnNwYWNlQmVsb3c9ZS5zcGFjZUJlbG93P2dldE1lYXN1cmVtZW50KGUuc3BhY2VCZWxvdywiMHB0Iik6IiI7dGhpcy50YWJEZWZhdWx0PWUudGFiRGVmYXVsdD9nZXRNZWFzdXJlbWVudCh0aGlzLnRhYkRlZmF1bHQpOiIiO3RoaXMudGFiU3RvcHM9KGUudGFiU3RvcHN8fCIiKS50cmltKCkuc3BsaXQoL1xzKy8pLm1hcCgoKGUsdCk9PnQlMj09MT9nZXRNZWFzdXJlbWVudChlKTplKSk7dGhpcy50ZXh0SW5kZW50PWUudGV4dEluZGVudD9nZXRNZWFzdXJlbWVudChlLnRleHRJbmRlbnQsIjBwdCIpOiIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLnZBbGlnbj1nZXRTdHJpbmdPcHRpb24oZS52QWxpZ24sWyJ0b3AiLCJib3R0b20iLCJtaWRkbGUiXSk7dGhpcy53aWRvd3M9Z2V0SW50ZWdlcih7ZGF0YTplLndpZG93cyxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTplPT5lPj0wfSk7dGhpcy5oeXBoZW5hdGlvbj1udWxsfVtfc10oKXtjb25zdCBlPXRvU3R5bGUodGhpcywiaEFsaWduIik7IiIhPT10aGlzLm1hcmdpbkxlZnQmJihlLnBhZGRpbmdMZWZ0PW1lYXN1cmVUb1N0cmluZyh0aGlzLm1hcmdpbkxlZnQpKTsiIiE9PXRoaXMubWFyZ2luUmlnaHQmJihlLnBhZGRpbmdSaWdodD1tZWFzdXJlVG9TdHJpbmcodGhpcy5tYXJnaW5SaWdodCkpOyIiIT09dGhpcy5zcGFjZUFib3ZlJiYoZS5wYWRkaW5nVG9wPW1lYXN1cmVUb1N0cmluZyh0aGlzLnNwYWNlQWJvdmUpKTsiIiE9PXRoaXMuc3BhY2VCZWxvdyYmKGUucGFkZGluZ0JvdHRvbT1tZWFzdXJlVG9TdHJpbmcodGhpcy5zcGFjZUJlbG93KSk7aWYoIiIhPT10aGlzLnRleHRJbmRlbnQpe2UudGV4dEluZGVudD1tZWFzdXJlVG9TdHJpbmcodGhpcy50ZXh0SW5kZW50KTtmaXhUZXh0SW5kZW50KGUpfXRoaXMubGluZUhlaWdodD4wJiYoZS5saW5lSGVpZ2h0PW1lYXN1cmVUb1N0cmluZyh0aGlzLmxpbmVIZWlnaHQpKTsiIiE9PXRoaXMudGFiRGVmYXVsdCYmKGUudGFiU2l6ZT1tZWFzdXJlVG9TdHJpbmcodGhpcy50YWJEZWZhdWx0KSk7dGhpcy50YWJTdG9wcy5sZW5ndGg7dGhpcy5oeXBoZW5hdGF0aW9uJiZPYmplY3QuYXNzaWduKGUsdGhpcy5oeXBoZW5hdGF0aW9uW19zXSgpKTtyZXR1cm4gZX19Y2xhc3MgUGFzc3dvcmRFZGl0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJwYXNzd29yZEVkaXQiLCEwKTt0aGlzLmhTY3JvbGxQb2xpY3k9Z2V0U3RyaW5nT3B0aW9uKGUuaFNjcm9sbFBvbGljeSxbImF1dG8iLCJvZmYiLCJvbiJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMucGFzc3dvcmRDaGFyPWUucGFzc3dvcmRDaGFyfHwiKiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuYm9yZGVyPW51bGw7dGhpcy5leHRyYXM9bnVsbDt0aGlzLm1hcmdpbj1udWxsfX1jbGFzcyB0ZW1wbGF0ZV9QYXR0ZXJuIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJwYXR0ZXJuIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUudHlwZSxbImNyb3NzSGF0Y2giLCJjcm9zc0RpYWdvbmFsIiwiZGlhZ29uYWxMZWZ0IiwiZGlhZ29uYWxSaWdodCIsImhvcml6b250YWwiLCJ2ZXJ0aWNhbCJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5jb2xvcj1udWxsO3RoaXMuZXh0cmFzPW51bGx9W19zXShlKXtlPWU/ZVtfc10oKToiI0ZGRkZGRiI7Y29uc3QgdD10aGlzLmNvbG9yP3RoaXMuY29sb3JbX3NdKCk6IiMwMDAwMDAiLGk9InJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQiLGE9YCR7ZX0sJHtlfSA1cHgsJHt0fSA1cHgsJHt0fSAxMHB4YDtzd2l0Y2godGhpcy50eXBlKXtjYXNlImNyb3NzSGF0Y2giOnJldHVybmAke2l9KHRvIHRvcCwke2F9KSAke2l9KHRvIHJpZ2h0LCR7YX0pYDtjYXNlImNyb3NzRGlhZ29uYWwiOnJldHVybmAke2l9KDQ1ZGVnLCR7YX0pICR7aX0oLTQ1ZGVnLCR7YX0pYDtjYXNlImRpYWdvbmFsTGVmdCI6cmV0dXJuYCR7aX0oNDVkZWcsJHthfSlgO2Nhc2UiZGlhZ29uYWxSaWdodCI6cmV0dXJuYCR7aX0oLTQ1ZGVnLCR7YX0pYDtjYXNlImhvcml6b250YWwiOnJldHVybmAke2l9KHRvIHRvcCwke2F9KWA7Y2FzZSJ2ZXJ0aWNhbCI6cmV0dXJuYCR7aX0odG8gcmlnaHQsJHthfSlgfXJldHVybiIifX1jbGFzcyBQaWN0dXJlIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJwaWN0dXJlIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIFByb3RvIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJwcm90byIsITApO3RoaXMuYXBwZWFyYW5jZUZpbHRlcj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5hcmM9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuYXJlYT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5hc3Npc3Q9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuYmFyY29kZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5iaW5kSXRlbXM9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuYm9va2VuZD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5ib29sZWFuPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmJvcmRlcj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5icmVhaz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5icmVha0FmdGVyPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmJyZWFrQmVmb3JlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmJ1dHRvbj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5jYWxjdWxhdGU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuY2FwdGlvbj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5jZXJ0aWZpY2F0ZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5jZXJ0aWZpY2F0ZXM9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuY2hlY2tCdXR0b249bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuY2hvaWNlTGlzdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5jb2xvcj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5jb21iPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmNvbm5lY3Q9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuY29udGVudEFyZWE9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuY29ybmVyPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRhdGU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGF0ZVRpbWU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGF0ZVRpbWVFZGl0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRlY2ltYWw9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGVmYXVsdFVpPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRlc2M9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGlnZXN0TWV0aG9kPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRpZ2VzdE1ldGhvZHM9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZHJhdz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5lZGdlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmVuY29kaW5nPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmVuY29kaW5ncz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5lbmNyeXB0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmVuY3J5cHREYXRhPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmVuY3J5cHRpb249bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZW5jcnlwdGlvbk1ldGhvZD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5lbmNyeXB0aW9uTWV0aG9kcz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5ldmVudD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5leERhdGE9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZXhPYmplY3Q9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZXhjbEdyb3VwPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmV4ZWN1dGU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZXh0cmFzPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmZpZWxkPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmZpbGw9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZmlsdGVyPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmZsb2F0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmZvbnQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZm9ybWF0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmhhbmRsZXI9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaHlwaGVuYXRpb249bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaW1hZ2U9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaW1hZ2VFZGl0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmludGVnZXI9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaXNzdWVycz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5pdGVtcz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5rZWVwPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmtleVVzYWdlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmxpbmU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMubGluZWFyPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmxvY2tEb2N1bWVudD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5tYW5pZmVzdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5tYXJnaW49bmV3IFhGQU9iamVjdEFycmF5O3RoaXMubWRwPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLm1lZGl1bT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5tZXNzYWdlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLm51bWVyaWNFZGl0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLm9jY3VyPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLm9pZD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5vaWRzPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLm92ZXJmbG93PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnBhZ2VBcmVhPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnBhZ2VTZXQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMucGFyYT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5wYXNzd29yZEVkaXQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMucGF0dGVybj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5waWN0dXJlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnJhZGlhbD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5yZWFzb249bmV3IFhGQU9iamVjdEFycmF5O3RoaXMucmVhc29ucz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5yZWN0YW5nbGU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMucmVmPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnNjcmlwdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zZXRQcm9wZXJ0eT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zaWduRGF0YT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zaWduYXR1cmU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuc2lnbmluZz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zb2xpZD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zcGVhaz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zdGlwcGxlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnN1YmZvcm09bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuc3ViZm9ybVNldD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zdWJqZWN0RE49bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuc3ViamVjdEROcz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zdWJtaXQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMudGV4dD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50ZXh0RWRpdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50aW1lPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnRpbWVTdGFtcD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50b29sVGlwPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnRyYXZlcnNhbD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50cmF2ZXJzZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy51aT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy52YWxpZGF0ZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy52YWx1ZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy52YXJpYWJsZXM9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBSYWRpYWwgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sInJhZGlhbCIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy50eXBlPWdldFN0cmluZ09wdGlvbihlLnR5cGUsWyJ0b0VkZ2UiLCJ0b0NlbnRlciJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5jb2xvcj1udWxsO3RoaXMuZXh0cmFzPW51bGx9W19zXShlKXtlPWU/ZVtfc10oKToiI0ZGRkZGRiI7Y29uc3QgdD10aGlzLmNvbG9yP3RoaXMuY29sb3JbX3NdKCk6IiMwMDAwMDAiO3JldHVybmByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IGNlbnRlciwgJHsidG9FZGdlIj09PXRoaXMudHlwZT9gJHtlfSwke3R9YDpgJHt0fSwke2V9YH0pYH19Y2xhc3MgUmVhc29uIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJyZWFzb24iKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgUmVhc29ucyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwicmVhc29ucyIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy50eXBlPWdldFN0cmluZ09wdGlvbihlLnR5cGUsWyJvcHRpb25hbCIsInJlcXVpcmVkIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLnJlYXNvbj1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIFJlY3RhbmdsZSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwicmVjdGFuZ2xlIiwhMCk7dGhpcy5oYW5kPWdldFN0cmluZ09wdGlvbihlLmhhbmQsWyJldmVuIiwibGVmdCIsInJpZ2h0Il0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuY29ybmVyPW5ldyBYRkFPYmplY3RBcnJheSg0KTt0aGlzLmVkZ2U9bmV3IFhGQU9iamVjdEFycmF5KDQpO3RoaXMuZmlsbD1udWxsfVtWc10oKXtjb25zdCBlPXRoaXMuZWRnZS5jaGlsZHJlbi5sZW5ndGg/dGhpcy5lZGdlLmNoaWxkcmVuWzBdOm5ldyBFZGdlKHt9KSx0PWVbX3NdKCksaT1PYmplY3QuY3JlYXRlKG51bGwpOyJ2aXNpYmxlIj09PXRoaXMuZmlsbD8ucHJlc2VuY2U/T2JqZWN0LmFzc2lnbihpLHRoaXMuZmlsbFtfc10oKSk6aS5maWxsPSJ0cmFuc3BhcmVudCI7aS5zdHJva2VXaWR0aD1tZWFzdXJlVG9TdHJpbmcoInZpc2libGUiPT09ZS5wcmVzZW5jZT9lLnRoaWNrbmVzczowKTtpLnN0cm9rZT10LmNvbG9yO2NvbnN0IGE9KHRoaXMuY29ybmVyLmNoaWxkcmVuLmxlbmd0aD90aGlzLmNvcm5lci5jaGlsZHJlblswXTpuZXcgQ29ybmVyKHt9KSlbX3NdKCkscj17bmFtZToic3ZnIixjaGlsZHJlbjpbe25hbWU6InJlY3QiLGF0dHJpYnV0ZXM6e3htbG5zOlVuLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLHg6MCx5OjAscng6YS5yYWRpdXMscnk6YS5yYWRpdXMsc3R5bGU6aX19XSxhdHRyaWJ1dGVzOnt4bWxuczpVbixzdHlsZTp7b3ZlcmZsb3c6InZpc2libGUifSx3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIn19O2lmKGhhc01hcmdpbih0aGlzW2xzXSgpW2xzXSgpKSlyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6e3N0eWxlOntkaXNwbGF5OiJpbmxpbmUiLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUifX0sY2hpbGRyZW46W3JdfSk7ci5hdHRyaWJ1dGVzLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhyKX19Y2xhc3MgUmVmRWxlbWVudCBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwicmVmIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIFNjcmlwdCBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwic2NyaXB0Iik7dGhpcy5iaW5kaW5nPWUuYmluZGluZ3x8IiI7dGhpcy5jb250ZW50VHlwZT1lLmNvbnRlbnRUeXBlfHwiIjt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMucnVuQXQ9Z2V0U3RyaW5nT3B0aW9uKGUucnVuQXQsWyJjbGllbnQiLCJib3RoIiwic2VydmVyIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgU2V0UHJvcGVydHkgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sInNldFByb3BlcnR5Iik7dGhpcy5jb25uZWN0aW9uPWUuY29ubmVjdGlvbnx8IiI7dGhpcy5yZWY9ZS5yZWZ8fCIiO3RoaXMudGFyZ2V0PWUudGFyZ2V0fHwiIn19Y2xhc3MgU2lnbkRhdGEgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sInNpZ25EYXRhIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm9wZXJhdGlvbj1nZXRTdHJpbmdPcHRpb24oZS5vcGVyYXRpb24sWyJzaWduIiwiY2xlYXIiLCJ2ZXJpZnkiXSk7dGhpcy5yZWY9ZS5yZWZ8fCIiO3RoaXMudGFyZ2V0PWUudGFyZ2V0fHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5maWx0ZXI9bnVsbDt0aGlzLm1hbmlmZXN0PW51bGx9fWNsYXNzIFNpZ25hdHVyZSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwic2lnbmF0dXJlIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUudHlwZSxbIlBERjEuMyIsIlBERjEuNiJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5ib3JkZXI9bnVsbDt0aGlzLmV4dHJhcz1udWxsO3RoaXMuZmlsdGVyPW51bGw7dGhpcy5tYW5pZmVzdD1udWxsO3RoaXMubWFyZ2luPW51bGx9fWNsYXNzIFNpZ25pbmcgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sInNpZ25pbmciLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudHlwZT1nZXRTdHJpbmdPcHRpb24oZS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5jZXJ0aWZpY2F0ZT1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIFNvbGlkIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJzb2xpZCIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZXh0cmFzPW51bGx9W19zXShlKXtyZXR1cm4gZT9lW19zXSgpOiIjRkZGRkZGIn19Y2xhc3MgU3BlYWsgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sInNwZWFrIik7dGhpcy5kaXNhYmxlPWdldEludGVnZXIoe2RhdGE6ZS5kaXNhYmxlLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnByaW9yaXR5PWdldFN0cmluZ09wdGlvbihlLnByaW9yaXR5LFsiY3VzdG9tIiwiY2FwdGlvbiIsIm5hbWUiLCJ0b29sVGlwIl0pO3RoaXMucmlkPWUucmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIFN0aXBwbGUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sInN0aXBwbGUiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMucmF0ZT1nZXRJbnRlZ2VyKHtkYXRhOmUucmF0ZSxkZWZhdWx0VmFsdWU6NTAsdmFsaWRhdGU6ZT0+ZT49MCYmZTw9MTAwfSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuY29sb3I9bnVsbDt0aGlzLmV4dHJhcz1udWxsfVtfc10oZSl7Y29uc3QgdD10aGlzLnJhdGUvMTAwO3JldHVybiBVdGlsLm1ha2VIZXhDb2xvcihNYXRoLnJvdW5kKGUudmFsdWUuciooMS10KSt0aGlzLnZhbHVlLnIqdCksTWF0aC5yb3VuZChlLnZhbHVlLmcqKDEtdCkrdGhpcy52YWx1ZS5nKnQpLE1hdGgucm91bmQoZS52YWx1ZS5iKigxLXQpK3RoaXMudmFsdWUuYip0KSl9fWNsYXNzIFN1YmZvcm0gZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sInN1YmZvcm0iLCEwKTt0aGlzLmFjY2Vzcz1nZXRTdHJpbmdPcHRpb24oZS5hY2Nlc3MsWyJvcGVuIiwibm9uSW50ZXJhY3RpdmUiLCJwcm90ZWN0ZWQiLCJyZWFkT25seSJdKTt0aGlzLmFsbG93TWFjcm89Z2V0SW50ZWdlcih7ZGF0YTplLmFsbG93TWFjcm8sZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLmFuY2hvclR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUuYW5jaG9yVHlwZSxbInRvcExlZnQiLCJib3R0b21DZW50ZXIiLCJib3R0b21MZWZ0IiwiYm90dG9tUmlnaHQiLCJtaWRkbGVDZW50ZXIiLCJtaWRkbGVMZWZ0IiwibWlkZGxlUmlnaHQiLCJ0b3BDZW50ZXIiLCJ0b3BSaWdodCJdKTt0aGlzLmNvbFNwYW49Z2V0SW50ZWdlcih7ZGF0YTplLmNvbFNwYW4sZGVmYXVsdFZhbHVlOjEsdmFsaWRhdGU6ZT0+ZT49MXx8LTE9PT1lfSk7dGhpcy5jb2x1bW5XaWR0aHM9KGUuY29sdW1uV2lkdGhzfHwiIikudHJpbSgpLnNwbGl0KC9ccysvKS5tYXAoKGU9PiItMSI9PT1lPy0xOmdldE1lYXN1cmVtZW50KGUpKSk7dGhpcy5oPWUuaD9nZXRNZWFzdXJlbWVudChlLmgpOiIiO3RoaXMuaEFsaWduPWdldFN0cmluZ09wdGlvbihlLmhBbGlnbixbImxlZnQiLCJjZW50ZXIiLCJqdXN0aWZ5IiwianVzdGlmeUFsbCIsInJhZGl4IiwicmlnaHQiXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmxheW91dD1nZXRTdHJpbmdPcHRpb24oZS5sYXlvdXQsWyJwb3NpdGlvbiIsImxyLXRiIiwicmwtcm93IiwicmwtdGIiLCJyb3ciLCJ0YWJsZSIsInRiIl0pO3RoaXMubG9jYWxlPWUubG9jYWxlfHwiIjt0aGlzLm1heEg9Z2V0TWVhc3VyZW1lbnQoZS5tYXhILCIwcHQiKTt0aGlzLm1heFc9Z2V0TWVhc3VyZW1lbnQoZS5tYXhXLCIwcHQiKTt0aGlzLm1lcmdlTW9kZT1nZXRTdHJpbmdPcHRpb24oZS5tZXJnZU1vZGUsWyJjb25zdW1lRGF0YSIsIm1hdGNoVGVtcGxhdGUiXSk7dGhpcy5taW5IPWdldE1lYXN1cmVtZW50KGUubWluSCwiMHB0Iik7dGhpcy5taW5XPWdldE1lYXN1cmVtZW50KGUubWluVywiMHB0Iik7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy5wcmVzZW5jZT1nZXRTdHJpbmdPcHRpb24oZS5wcmVzZW5jZSxbInZpc2libGUiLCJoaWRkZW4iLCJpbmFjdGl2ZSIsImludmlzaWJsZSJdKTt0aGlzLnJlbGV2YW50PWdldFJlbGV2YW50KGUucmVsZXZhbnQpO3RoaXMucmVzdG9yZVN0YXRlPWdldFN0cmluZ09wdGlvbihlLnJlc3RvcmVTdGF0ZSxbIm1hbnVhbCIsImF1dG8iXSk7dGhpcy5zY29wZT1nZXRTdHJpbmdPcHRpb24oZS5zY29wZSxbIm5hbWUiLCJub25lIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLnc9ZS53P2dldE1lYXN1cmVtZW50KGUudyk6IiI7dGhpcy54PWdldE1lYXN1cmVtZW50KGUueCwiMHB0Iik7dGhpcy55PWdldE1lYXN1cmVtZW50KGUueSwiMHB0Iik7dGhpcy5hc3Npc3Q9bnVsbDt0aGlzLmJpbmQ9bnVsbDt0aGlzLmJvb2tlbmQ9bnVsbDt0aGlzLmJvcmRlcj1udWxsO3RoaXMuYnJlYWs9bnVsbDt0aGlzLmNhbGN1bGF0ZT1udWxsO3RoaXMuZGVzYz1udWxsO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5rZWVwPW51bGw7dGhpcy5tYXJnaW49bnVsbDt0aGlzLm9jY3VyPW51bGw7dGhpcy5vdmVyZmxvdz1udWxsO3RoaXMucGFnZVNldD1udWxsO3RoaXMucGFyYT1udWxsO3RoaXMudHJhdmVyc2FsPW51bGw7dGhpcy52YWxpZGF0ZT1udWxsO3RoaXMudmFyaWFibGVzPW51bGw7dGhpcy5hcmVhPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmJyZWFrQWZ0ZXI9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuYnJlYWtCZWZvcmU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuY29ubmVjdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5kcmF3PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmV2ZW50PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmV4T2JqZWN0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmV4Y2xHcm91cD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5maWVsZD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5wcm90bz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zZXRQcm9wZXJ0eT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zdWJmb3JtPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnN1YmZvcm1TZXQ9bmV3IFhGQU9iamVjdEFycmF5fVtjc10oKXtjb25zdCBlPXRoaXNbbHNdKCk7cmV0dXJuIGUgaW5zdGFuY2VvZiBTdWJmb3JtU2V0P2VbY3NdKCk6ZX1bZnNdKCl7cmV0dXJuITB9W2JzXSgpe3JldHVybiB0aGlzLmxheW91dC5lbmRzV2l0aCgiLXRiIikmJjA9PT10aGlzW1pyXS5hdHRlbXB0JiZ0aGlzW1pyXS5udW1iZXJJbkxpbmU+MHx8dGhpc1tsc10oKVtic10oKX0qW2dzXSgpe3lpZWxkKmdldENvbnRhaW5lZENoaWxkcmVuKHRoaXMpfVt6cl0oKXtyZXR1cm4gZmx1c2hIVE1MKHRoaXMpfVt2cl0oZSx0KXthZGRIVE1MKHRoaXMsZSx0KX1bZXNdKCl7cmV0dXJuIGdldEF2YWlsYWJsZVNwYWNlKHRoaXMpfVt3c10oKXtjb25zdCBlPXRoaXNbY3NdKCk7aWYoIWVbd3NdKCkpcmV0dXJuITE7aWYodm9pZCAwIT09dGhpc1tacl0uX2lzU3BsaXR0YWJsZSlyZXR1cm4gdGhpc1tacl0uX2lzU3BsaXR0YWJsZTtpZigicG9zaXRpb24iPT09dGhpcy5sYXlvdXR8fHRoaXMubGF5b3V0LmluY2x1ZGVzKCJyb3ciKSl7dGhpc1tacl0uX2lzU3BsaXR0YWJsZT0hMTtyZXR1cm4hMX1pZih0aGlzLmtlZXAmJiJub25lIiE9PXRoaXMua2VlcC5pbnRhY3Qpe3RoaXNbWnJdLl9pc1NwbGl0dGFibGU9ITE7cmV0dXJuITF9aWYoZS5sYXlvdXQ/LmVuZHNXaXRoKCItdGIiKSYmMCE9PWVbWnJdLm51bWJlckluTGluZSlyZXR1cm4hMTt0aGlzW1pyXS5faXNTcGxpdHRhYmxlPSEwO3JldHVybiEwfVtWc10oZSl7c2V0VGFiSW5kZXgodGhpcyk7aWYodGhpcy5icmVhayl7aWYoImF1dG8iIT09dGhpcy5icmVhay5hZnRlcnx8IiIhPT10aGlzLmJyZWFrLmFmdGVyVGFyZ2V0KXtjb25zdCBlPW5ldyBCcmVha0FmdGVyKHt0YXJnZXRUeXBlOnRoaXMuYnJlYWsuYWZ0ZXIsdGFyZ2V0OnRoaXMuYnJlYWsuYWZ0ZXJUYXJnZXQsc3RhcnROZXc6dGhpcy5icmVhay5zdGFydE5ldy50b1N0cmluZygpfSk7ZVtDc109dGhpc1tDc107dGhpc1tZcl0oZSk7dGhpcy5icmVha0FmdGVyLnB1c2goZSl9aWYoImF1dG8iIT09dGhpcy5icmVhay5iZWZvcmV8fCIiIT09dGhpcy5icmVhay5iZWZvcmVUYXJnZXQpe2NvbnN0IGU9bmV3IEJyZWFrQmVmb3JlKHt0YXJnZXRUeXBlOnRoaXMuYnJlYWsuYmVmb3JlLHRhcmdldDp0aGlzLmJyZWFrLmJlZm9yZVRhcmdldCxzdGFydE5ldzp0aGlzLmJyZWFrLnN0YXJ0TmV3LnRvU3RyaW5nKCl9KTtlW0NzXT10aGlzW0NzXTt0aGlzW1lyXShlKTt0aGlzLmJyZWFrQmVmb3JlLnB1c2goZSl9aWYoIiIhPT10aGlzLmJyZWFrLm92ZXJmbG93VGFyZ2V0KXtjb25zdCBlPW5ldyBPdmVyZmxvdyh7dGFyZ2V0OnRoaXMuYnJlYWsub3ZlcmZsb3dUYXJnZXQsbGVhZGVyOnRoaXMuYnJlYWsub3ZlcmZsb3dMZWFkZXIsdHJhaWxlcjp0aGlzLmJyZWFrLm92ZXJmbG93VHJhaWxlcn0pO2VbQ3NdPXRoaXNbQ3NdO3RoaXNbWXJdKGUpO3RoaXMub3ZlcmZsb3cucHVzaChlKX10aGlzW0pzXSh0aGlzLmJyZWFrKTt0aGlzLmJyZWFrPW51bGx9aWYoImhpZGRlbiI9PT10aGlzLnByZXNlbmNlfHwiaW5hY3RpdmUiPT09dGhpcy5wcmVzZW5jZSlyZXR1cm4gSFRNTFJlc3VsdC5FTVBUWTsodGhpcy5icmVha0JlZm9yZS5jaGlsZHJlbi5sZW5ndGg+MXx8dGhpcy5icmVha0FmdGVyLmNoaWxkcmVuLmxlbmd0aD4xKSYmd2FybigiWEZBIC0gU2V2ZXJhbCBicmVha0JlZm9yZSBvciBicmVha0FmdGVyIGluIHN1YmZvcm1zOiBwbGVhc2UgZmlsZSBhIGJ1Zy4iKTtpZih0aGlzLmJyZWFrQmVmb3JlLmNoaWxkcmVuLmxlbmd0aD49MSl7Y29uc3QgZT10aGlzLmJyZWFrQmVmb3JlLmNoaWxkcmVuWzBdO2lmKGhhbmRsZUJyZWFrKGUpKXJldHVybiBIVE1MUmVzdWx0LmJyZWFrTm9kZShlKX1pZih0aGlzW1pyXT8uYWZ0ZXJCcmVha0FmdGVyKXJldHVybiBIVE1MUmVzdWx0LkVNUFRZO2ZpeERpbWVuc2lvbnModGhpcyk7Y29uc3QgdD1bXSxpPXtpZDp0aGlzW3pzXSxjbGFzczpbXX07c2V0QWNjZXNzKHRoaXMsaS5jbGFzcyk7dGhpc1tacl18fCh0aGlzW1pyXT1PYmplY3QuY3JlYXRlKG51bGwpKTtPYmplY3QuYXNzaWduKHRoaXNbWnJdLHtjaGlsZHJlbjp0LGxpbmU6bnVsbCxhdHRyaWJ1dGVzOmksYXR0ZW1wdDowLG51bWJlckluTGluZTowLGF2YWlsYWJsZVNwYWNlOnt3aWR0aDpNYXRoLm1pbih0aGlzLnd8fDEvMCxlLndpZHRoKSxoZWlnaHQ6TWF0aC5taW4odGhpcy5ofHwxLzAsZS5oZWlnaHQpfSx3aWR0aDowLGhlaWdodDowLHByZXZIZWlnaHQ6MCxjdXJyZW50V2lkdGg6MH0pO2NvbnN0IGE9dGhpc1toc10oKSxyPWFbWnJdLm5vTGF5b3V0RmFpbHVyZSxzPXRoaXNbd3NdKCk7c3x8c2V0Rmlyc3RVbnNwbGl0dGFibGUodGhpcyk7aWYoIWNoZWNrRGltZW5zaW9ucyh0aGlzLGUpKXJldHVybiBIVE1MUmVzdWx0LkZBSUxVUkU7Y29uc3Qgbj1uZXcgU2V0KFsiYXJlYSIsImRyYXciLCJleGNsR3JvdXAiLCJmaWVsZCIsInN1YmZvcm0iLCJzdWJmb3JtU2V0Il0pO2lmKHRoaXMubGF5b3V0LmluY2x1ZGVzKCJyb3ciKSl7Y29uc3QgZT10aGlzW2NzXSgpLmNvbHVtbldpZHRocztpZihBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aD4wKXt0aGlzW1pyXS5jb2x1bW5XaWR0aHM9ZTt0aGlzW1pyXS5jdXJyZW50Q29sdW1uPTB9fWNvbnN0IG89dG9TdHlsZSh0aGlzLCJhbmNob3JUeXBlIiwiZGltZW5zaW9ucyIsInBvc2l0aW9uIiwicHJlc2VuY2UiLCJib3JkZXIiLCJtYXJnaW4iLCJoQWxpZ24iKSxnPVsieGZhU3ViZm9ybSJdLGM9bGF5b3V0Q2xhc3ModGhpcyk7YyYmZy5wdXNoKGMpO2kuc3R5bGU9bztpLmNsYXNzPWc7dGhpcy5uYW1lJiYoaS54ZmFOYW1lPXRoaXMubmFtZSk7aWYodGhpcy5vdmVyZmxvdyl7Y29uc3QgdD10aGlzLm92ZXJmbG93W3NzXSgpO2lmKHQuYWRkTGVhZGVyKXt0LmFkZExlYWRlcj0hMTtoYW5kbGVPdmVyZmxvdyh0aGlzLHQubGVhZGVyLGUpfX10aGlzW0hzXSgpO2NvbnN0IGw9ImxyLXRiIj09PXRoaXMubGF5b3V0fHwicmwtdGIiPT09dGhpcy5sYXlvdXQsaD1sPzI6MTtmb3IoO3RoaXNbWnJdLmF0dGVtcHQ8aDt0aGlzW1pyXS5hdHRlbXB0Kyspe2wmJjE9PT10aGlzW1pyXS5hdHRlbXB0JiYodGhpc1tacl0ubnVtYmVySW5MaW5lPTApO2NvbnN0IGU9dGhpc1tLcl0oe2ZpbHRlcjpuLGluY2x1ZGU6ITB9KTtpZihlLnN1Y2Nlc3MpYnJlYWs7aWYoZS5pc0JyZWFrKCkpe3RoaXNbTHNdKCk7cmV0dXJuIGV9aWYobCYmMD09PXRoaXNbWnJdLmF0dGVtcHQmJjA9PT10aGlzW1pyXS5udW1iZXJJbkxpbmUmJiFhW1pyXS5ub0xheW91dEZhaWx1cmUpe3RoaXNbWnJdLmF0dGVtcHQ9aDticmVha319dGhpc1tMc10oKTtzfHx1bnNldEZpcnN0VW5zcGxpdHRhYmxlKHRoaXMpO2FbWnJdLm5vTGF5b3V0RmFpbHVyZT1yO2lmKHRoaXNbWnJdLmF0dGVtcHQ9PT1oKXt0aGlzLm92ZXJmbG93JiYodGhpc1toc10oKVtacl0ub3ZlcmZsb3dOb2RlPXRoaXMub3ZlcmZsb3cpO3N8fGRlbGV0ZSB0aGlzW1pyXTtyZXR1cm4gSFRNTFJlc3VsdC5GQUlMVVJFfWlmKHRoaXMub3ZlcmZsb3cpe2NvbnN0IHQ9dGhpcy5vdmVyZmxvd1tzc10oKTtpZih0LmFkZFRyYWlsZXIpe3QuYWRkVHJhaWxlcj0hMTtoYW5kbGVPdmVyZmxvdyh0aGlzLHQudHJhaWxlcixlKX19bGV0IEM9MCxRPTA7aWYodGhpcy5tYXJnaW4pe0M9dGhpcy5tYXJnaW4ubGVmdEluc2V0K3RoaXMubWFyZ2luLnJpZ2h0SW5zZXQ7UT10aGlzLm1hcmdpbi50b3BJbnNldCt0aGlzLm1hcmdpbi5ib3R0b21JbnNldH1jb25zdCBFPU1hdGgubWF4KHRoaXNbWnJdLndpZHRoK0MsdGhpcy53fHwwKSx1PU1hdGgubWF4KHRoaXNbWnJdLmhlaWdodCtRLHRoaXMuaHx8MCksZD1bdGhpcy54LHRoaXMueSxFLHVdOyIiPT09dGhpcy53JiYoby53aWR0aD1tZWFzdXJlVG9TdHJpbmcoRSkpOyIiPT09dGhpcy5oJiYoby5oZWlnaHQ9bWVhc3VyZVRvU3RyaW5nKHUpKTtpZigoIjBweCI9PT1vLndpZHRofHwiMHB4Ij09PW8uaGVpZ2h0KSYmMD09PXQubGVuZ3RoKXJldHVybiBIVE1MUmVzdWx0LkVNUFRZO2NvbnN0IGY9e25hbWU6ImRpdiIsYXR0cmlidXRlczppLGNoaWxkcmVuOnR9O2FwcGx5QXNzaXN0KHRoaXMsaSk7Y29uc3QgcD1IVE1MUmVzdWx0LnN1Y2Nlc3MoY3JlYXRlV3JhcHBlcih0aGlzLGYpLGQpO2lmKHRoaXMuYnJlYWtBZnRlci5jaGlsZHJlbi5sZW5ndGg+PTEpe2NvbnN0IGU9dGhpcy5icmVha0FmdGVyLmNoaWxkcmVuWzBdO2lmKGhhbmRsZUJyZWFrKGUpKXt0aGlzW1pyXS5hZnRlckJyZWFrQWZ0ZXI9cDtyZXR1cm4gSFRNTFJlc3VsdC5icmVha05vZGUoZSl9fWRlbGV0ZSB0aGlzW1pyXTtyZXR1cm4gcH19Y2xhc3MgU3ViZm9ybVNldCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwic3ViZm9ybVNldCIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy5yZWxhdGlvbj1nZXRTdHJpbmdPcHRpb24oZS5yZWxhdGlvbixbIm9yZGVyZWQiLCJjaG9pY2UiLCJ1bm9yZGVyZWQiXSk7dGhpcy5yZWxldmFudD1nZXRSZWxldmFudChlLnJlbGV2YW50KTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5ib29rZW5kPW51bGw7dGhpcy5icmVhaz1udWxsO3RoaXMuZGVzYz1udWxsO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5vY2N1cj1udWxsO3RoaXMub3ZlcmZsb3c9bnVsbDt0aGlzLmJyZWFrQWZ0ZXI9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuYnJlYWtCZWZvcmU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuc3ViZm9ybT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zdWJmb3JtU2V0PW5ldyBYRkFPYmplY3RBcnJheX0qW2dzXSgpe3lpZWxkKmdldENvbnRhaW5lZENoaWxkcmVuKHRoaXMpfVtjc10oKXtsZXQgZT10aGlzW2xzXSgpO2Zvcig7IShlIGluc3RhbmNlb2YgU3ViZm9ybSk7KWU9ZVtsc10oKTtyZXR1cm4gZX1bZnNdKCl7cmV0dXJuITB9fWNsYXNzIFN1YmplY3RETiBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sInN1YmplY3RETiIpO3RoaXMuZGVsaW1pdGVyPWUuZGVsaW1pdGVyfHwiLCI7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9W19yXSgpe3RoaXNbanJdPW5ldyBNYXAodGhpc1tqcl0uc3BsaXQodGhpcy5kZWxpbWl0ZXIpLm1hcCgoZT0+eyhlPWUuc3BsaXQoIj0iLDIpKVswXT1lWzBdLnRyaW0oKTtyZXR1cm4gZX0pKSl9fWNsYXNzIFN1YmplY3RETnMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sInN1YmplY3RETnMiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudHlwZT1nZXRTdHJpbmdPcHRpb24oZS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5zdWJqZWN0RE49bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBTdWJtaXQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sInN1Ym1pdCIsITApO3RoaXMuZW1iZWRQREY9Z2V0SW50ZWdlcih7ZGF0YTplLmVtYmVkUERGLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfSk7dGhpcy5mb3JtYXQ9Z2V0U3RyaW5nT3B0aW9uKGUuZm9ybWF0LFsieGRwIiwiZm9ybWRhdGEiLCJwZGYiLCJ1cmxlbmNvZGVkIiwieGZkIiwieG1sIl0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy50YXJnZXQ9ZS50YXJnZXR8fCIiO3RoaXMudGV4dEVuY29kaW5nPWdldEtleXdvcmQoe2RhdGE6ZS50ZXh0RW5jb2Rpbmc/ZS50ZXh0RW5jb2RpbmcudG9Mb3dlckNhc2UoKToiIixkZWZhdWx0VmFsdWU6IiIsdmFsaWRhdGU6ZT0+WyJ1dGYtOCIsImJpZy1maXZlIiwiZm9udHNwZWNpZmljIiwiZ2JrIiwiZ2ItMTgwMzAiLCJnYi0yMzEyIiwia3NjLTU2MDEiLCJub25lIiwic2hpZnQtamlzIiwidWNzLTIiLCJ1dGYtMTYiXS5pbmNsdWRlcyhlKXx8ZS5tYXRjaCgvaXNvLTg4NTktXGR7Mn0vKX0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLnhkcENvbnRlbnQ9ZS54ZHBDb250ZW50fHwiIjt0aGlzLmVuY3J5cHQ9bnVsbDt0aGlzLmVuY3J5cHREYXRhPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnNpZ25EYXRhPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgVGVtcGxhdGUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sInRlbXBsYXRlIiwhMCk7dGhpcy5iYXNlUHJvZmlsZT1nZXRTdHJpbmdPcHRpb24oZS5iYXNlUHJvZmlsZSxbImZ1bGwiLCJpbnRlcmFjdGl2ZUZvcm1zIl0pO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5zdWJmb3JtPW5ldyBYRkFPYmplY3RBcnJheX1bX3JdKCl7MD09PXRoaXMuc3ViZm9ybS5jaGlsZHJlbi5sZW5ndGgmJndhcm4oIlhGQSAtIE5vIHN1YmZvcm1zIGluIHRlbXBsYXRlIG5vZGUuIik7dGhpcy5zdWJmb3JtLmNoaWxkcmVuLmxlbmd0aD49MiYmd2FybigiWEZBIC0gU2V2ZXJhbCBzdWJmb3JtcyBpbiB0ZW1wbGF0ZSBub2RlOiBwbGVhc2UgZmlsZSBhIGJ1Zy4iKTt0aGlzW1dzXT01ZTN9W3dzXSgpe3JldHVybiEwfVtLc10oZSx0KXtyZXR1cm4gZS5zdGFydHNXaXRoKCIjIik/W3RoaXNbUXNdLmdldChlLnNsaWNlKDEpKV06c2VhcmNoTm9kZSh0aGlzLHQsZSwhMCwhMCl9KltYc10oKXtpZighdGhpcy5zdWJmb3JtLmNoaWxkcmVuLmxlbmd0aClyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJkaXYiLGNoaWxkcmVuOltdfSk7dGhpc1tacl09e292ZXJmbG93Tm9kZTpudWxsLGZpcnN0VW5zcGxpdHRhYmxlOm51bGwsY3VycmVudENvbnRlbnRBcmVhOm51bGwsY3VycmVudFBhZ2VBcmVhOm51bGwsbm9MYXlvdXRGYWlsdXJlOiExLHBhZ2VOdW1iZXI6MSxwYWdlUG9zaXRpb246ImZpcnN0IixvZGRPckV2ZW46Im9kZCIsYmxhbmtPck5vdEJsYW5rOiJub25CbGFuayIscGFyYVN0YWNrOltdfTtjb25zdCBlPXRoaXMuc3ViZm9ybS5jaGlsZHJlblswXTtlLnBhZ2VTZXRbcXJdKCk7Y29uc3QgdD1lLnBhZ2VTZXQucGFnZUFyZWEuY2hpbGRyZW4saT17bmFtZToiZGl2IixjaGlsZHJlbjpbXX07bGV0IGE9bnVsbCxyPW51bGwscz1udWxsO2lmKGUuYnJlYWtCZWZvcmUuY2hpbGRyZW4ubGVuZ3RoPj0xKXtyPWUuYnJlYWtCZWZvcmUuY2hpbGRyZW5bMF07cz1yLnRhcmdldH1lbHNlIGlmKGUuc3ViZm9ybS5jaGlsZHJlbi5sZW5ndGg+PTEmJmUuc3ViZm9ybS5jaGlsZHJlblswXS5icmVha0JlZm9yZS5jaGlsZHJlbi5sZW5ndGg+PTEpe3I9ZS5zdWJmb3JtLmNoaWxkcmVuWzBdLmJyZWFrQmVmb3JlLmNoaWxkcmVuWzBdO3M9ci50YXJnZXR9ZWxzZSBpZihlLmJyZWFrPy5iZWZvcmVUYXJnZXQpe3I9ZS5icmVhaztzPXIuYmVmb3JlVGFyZ2V0fWVsc2UgaWYoZS5zdWJmb3JtLmNoaWxkcmVuLmxlbmd0aD49MSYmZS5zdWJmb3JtLmNoaWxkcmVuWzBdLmJyZWFrPy5iZWZvcmVUYXJnZXQpe3I9ZS5zdWJmb3JtLmNoaWxkcmVuWzBdLmJyZWFrO3M9ci5iZWZvcmVUYXJnZXR9aWYocil7Y29uc3QgZT10aGlzW0tzXShzLHJbbHNdKCkpO2lmKGUgaW5zdGFuY2VvZiBQYWdlQXJlYSl7YT1lO3JbWnJdPXt9fX1hfHwoYT10WzBdKTthW1pyXT17bnVtYmVyT2ZVc2U6MX07Y29uc3Qgbj1hW2xzXSgpO25bWnJdPXtudW1iZXJPZlVzZToxLHBhZ2VJbmRleDpuLnBhZ2VBcmVhLmNoaWxkcmVuLmluZGV4T2YoYSkscGFnZVNldEluZGV4OjB9O2xldCBvLGc9bnVsbCxjPW51bGwsbD0hMCxoPTAsQz0wO2Zvcig7Oyl7aWYobCloPTA7ZWxzZXtpLmNoaWxkcmVuLnBvcCgpO2lmKDM9PSsraCl7d2FybigiWEZBIC0gU29tZXRoaW5nIGdvZXMgd3Jvbmc6IHBsZWFzZSBmaWxlIGEgYnVnLiIpO3JldHVybiBpfX1vPW51bGw7dGhpc1tacl0uY3VycmVudFBhZ2VBcmVhPWE7Y29uc3QgdD1hW1ZzXSgpLmh0bWw7aS5jaGlsZHJlbi5wdXNoKHQpO2lmKGcpe3RoaXNbWnJdLm5vTGF5b3V0RmFpbHVyZT0hMDt0LmNoaWxkcmVuLnB1c2goZ1tWc10oYVtacl0uc3BhY2UpLmh0bWwpO2c9bnVsbH1pZihjKXt0aGlzW1pyXS5ub0xheW91dEZhaWx1cmU9ITA7dC5jaGlsZHJlbi5wdXNoKGNbVnNdKGFbWnJdLnNwYWNlKS5odG1sKTtjPW51bGx9Y29uc3Qgcj1hLmNvbnRlbnRBcmVhLmNoaWxkcmVuLHM9dC5jaGlsZHJlbi5maWx0ZXIoKGU9PmUuYXR0cmlidXRlcy5jbGFzcy5pbmNsdWRlcygieGZhQ29udGVudGFyZWEiKSkpO2w9ITE7dGhpc1tacl0uZmlyc3RVbnNwbGl0dGFibGU9bnVsbDt0aGlzW1pyXS5ub0xheW91dEZhaWx1cmU9ITE7Y29uc3QgZmx1c2g9dD0+e2NvbnN0IGk9ZVt6cl0oKTtpZihpKXtsfHw9aS5jaGlsZHJlbj8ubGVuZ3RoPjA7c1t0XS5jaGlsZHJlbi5wdXNoKGkpfX07Zm9yKGxldCB0PUMsYT1yLmxlbmd0aDt0PGE7dCsrKXtjb25zdCBhPXRoaXNbWnJdLmN1cnJlbnRDb250ZW50QXJlYT1yW3RdLG49e3dpZHRoOmEudyxoZWlnaHQ6YS5ofTtDPTA7aWYoZyl7c1t0XS5jaGlsZHJlbi5wdXNoKGdbVnNdKG4pLmh0bWwpO2c9bnVsbH1pZihjKXtzW3RdLmNoaWxkcmVuLnB1c2goY1tWc10obikuaHRtbCk7Yz1udWxsfWNvbnN0IGg9ZVtWc10obik7aWYoaC5zdWNjZXNzKXtpZihoLmh0bWwpe2x8fD1oLmh0bWwuY2hpbGRyZW4/Lmxlbmd0aD4wO3NbdF0uY2hpbGRyZW4ucHVzaChoLmh0bWwpfWVsc2UhbCYmaS5jaGlsZHJlbi5sZW5ndGg+MSYmaS5jaGlsZHJlbi5wb3AoKTtyZXR1cm4gaX1pZihoLmlzQnJlYWsoKSl7Y29uc3QgZT1oLmJyZWFrTm9kZTtmbHVzaCh0KTtpZigiYXV0byI9PT1lLnRhcmdldFR5cGUpY29udGludWU7aWYoZS5sZWFkZXIpe2c9dGhpc1tLc10oZS5sZWFkZXIsZVtsc10oKSk7Zz1nP2dbMF06bnVsbH1pZihlLnRyYWlsZXIpe2M9dGhpc1tLc10oZS50cmFpbGVyLGVbbHNdKCkpO2M9Yz9jWzBdOm51bGx9aWYoInBhZ2VBcmVhIj09PWUudGFyZ2V0VHlwZSl7bz1lW1pyXS50YXJnZXQ7dD0xLzB9ZWxzZSBpZihlW1pyXS50YXJnZXQpe289ZVtacl0udGFyZ2V0O0M9ZVtacl0uaW5kZXgrMTt0PTEvMH1lbHNlIHQ9ZVtacl0uaW5kZXh9ZWxzZSBpZih0aGlzW1pyXS5vdmVyZmxvd05vZGUpe2NvbnN0IGU9dGhpc1tacl0ub3ZlcmZsb3dOb2RlO3RoaXNbWnJdLm92ZXJmbG93Tm9kZT1udWxsO2NvbnN0IGk9ZVtzc10oKSxhPWkudGFyZ2V0O2kuYWRkTGVhZGVyPW51bGwhPT1pLmxlYWRlcjtpLmFkZFRyYWlsZXI9bnVsbCE9PWkudHJhaWxlcjtmbHVzaCh0KTtjb25zdCBzPXQ7dD0xLzA7aWYoYSBpbnN0YW5jZW9mIFBhZ2VBcmVhKW89YTtlbHNlIGlmKGEgaW5zdGFuY2VvZiBDb250ZW50QXJlYSl7Y29uc3QgZT1yLmluZGV4T2YoYSk7aWYoLTEhPT1lKWU+cz90PWUtMTpDPWU7ZWxzZXtvPWFbbHNdKCk7Qz1vLmNvbnRlbnRBcmVhLmNoaWxkcmVuLmluZGV4T2YoYSl9fX1lbHNlIGZsdXNoKHQpfXRoaXNbWnJdLnBhZ2VOdW1iZXIrPTE7byYmKG9bRnNdKCk/b1tacl0ubnVtYmVyT2ZVc2UrPTE6bz1udWxsKTthPW98fGFbSXNdKCk7eWllbGQgbnVsbH19fWNsYXNzIFRleHQgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJ0ZXh0Iik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm1heENoYXJzPWdldEludGVnZXIoe2RhdGE6ZS5tYXhDaGFycyxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTplPT5lPj0wfSk7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy5yaWQ9ZS5yaWR8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn1bSnJdKCl7cmV0dXJuITB9W0dzXShlKXtpZihlW2tzXT09PUFuLnhodG1sLmlkKXt0aGlzW2pyXT1lO3JldHVybiEwfXdhcm4oYFhGQSAtIEludmFsaWQgY29udGVudCBpbiBUZXh0OiAke2VbUnNdfS5gKTtyZXR1cm4hMX1bVXNdKGUpe3RoaXNbanJdaW5zdGFuY2VvZiBYRkFPYmplY3R8fHN1cGVyW1VzXShlKX1bX3JdKCl7InN0cmluZyI9PXR5cGVvZiB0aGlzW2pyXSYmKHRoaXNbanJdPXRoaXNbanJdLnJlcGxhY2VBbGwoIlxyXG4iLCJcbiIpKX1bc3NdKCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0aGlzW2pyXT90aGlzW2pyXS5zcGxpdCgvW1x1MjAyOVx1MjAyOFxuXS8pLnJlZHVjZSgoKGUsdCk9Pnt0JiZlLnB1c2godCk7cmV0dXJuIGV9KSxbXSkuam9pbigiXG4iKTp0aGlzW2pyXVtqc10oKX1bVnNdKGUpe2lmKCJzdHJpbmciPT10eXBlb2YgdGhpc1tqcl0pe2NvbnN0IGU9dmFsdWVUb0h0bWwodGhpc1tqcl0pLmh0bWw7aWYodGhpc1tqcl0uaW5jbHVkZXMoIlx1MjAyOSIpKXtlLm5hbWU9ImRpdiI7ZS5jaGlsZHJlbj1bXTt0aGlzW2pyXS5zcGxpdCgiXHUyMDI5IikubWFwKChlPT5lLnNwbGl0KC9bXHUyMDI4XG5dLykucmVkdWNlKCgoZSx0KT0+e2UucHVzaCh7bmFtZToic3BhbiIsdmFsdWU6dH0se25hbWU6ImJyIn0pO3JldHVybiBlfSksW10pKSkuZm9yRWFjaCgodD0+e2UuY2hpbGRyZW4ucHVzaCh7bmFtZToicCIsY2hpbGRyZW46dH0pfSkpfWVsc2UgaWYoL1tcdTIwMjhcbl0vLnRlc3QodGhpc1tqcl0pKXtlLm5hbWU9ImRpdiI7ZS5jaGlsZHJlbj1bXTt0aGlzW2pyXS5zcGxpdCgvW1x1MjAyOFxuXS8pLmZvckVhY2goKHQ9PntlLmNoaWxkcmVuLnB1c2goe25hbWU6InNwYW4iLHZhbHVlOnR9LHtuYW1lOiJiciJ9KX0pKX1yZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKGUpfXJldHVybiB0aGlzW2pyXVtWc10oZSl9fWNsYXNzIFRleHRFZGl0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJ0ZXh0RWRpdCIsITApO3RoaXMuYWxsb3dSaWNoVGV4dD1nZXRJbnRlZ2VyKHtkYXRhOmUuYWxsb3dSaWNoVGV4dCxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTplPT4xPT09ZX0pO3RoaXMuaFNjcm9sbFBvbGljeT1nZXRTdHJpbmdPcHRpb24oZS5oU2Nyb2xsUG9saWN5LFsiYXV0byIsIm9mZiIsIm9uIl0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5tdWx0aUxpbmU9Z2V0SW50ZWdlcih7ZGF0YTplLm11bHRpTGluZSxkZWZhdWx0VmFsdWU6IiIsdmFsaWRhdGU6ZT0+MD09PWV8fDE9PT1lfSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMudlNjcm9sbFBvbGljeT1nZXRTdHJpbmdPcHRpb24oZS52U2Nyb2xsUG9saWN5LFsiYXV0byIsIm9mZiIsIm9uIl0pO3RoaXMuYm9yZGVyPW51bGw7dGhpcy5jb21iPW51bGw7dGhpcy5leHRyYXM9bnVsbDt0aGlzLm1hcmdpbj1udWxsfVtWc10oZSl7Y29uc3QgdD10b1N0eWxlKHRoaXMsImJvcmRlciIsImZvbnQiLCJtYXJnaW4iKTtsZXQgaTtjb25zdCBhPXRoaXNbbHNdKClbbHNdKCk7IiI9PT10aGlzLm11bHRpTGluZSYmKHRoaXMubXVsdGlMaW5lPWEgaW5zdGFuY2VvZiBEcmF3PzE6MCk7aT0xPT09dGhpcy5tdWx0aUxpbmU/e25hbWU6InRleHRhcmVhIixhdHRyaWJ1dGVzOntkYXRhSWQ6YVtYcl0/Llt6c118fGFbenNdLGZpZWxkSWQ6YVt6c10sY2xhc3M6WyJ4ZmFUZXh0ZmllbGQiXSxzdHlsZTp0LCJhcmlhLWxhYmVsIjphcmlhTGFiZWwoYSksImFyaWEtcmVxdWlyZWQiOiExfX06e25hbWU6ImlucHV0IixhdHRyaWJ1dGVzOnt0eXBlOiJ0ZXh0IixkYXRhSWQ6YVtYcl0/Llt6c118fGFbenNdLGZpZWxkSWQ6YVt6c10sY2xhc3M6WyJ4ZmFUZXh0ZmllbGQiXSxzdHlsZTp0LCJhcmlhLWxhYmVsIjphcmlhTGFiZWwoYSksImFyaWEtcmVxdWlyZWQiOiExfX07aWYoaXNSZXF1aXJlZChhKSl7aS5hdHRyaWJ1dGVzWyJhcmlhLXJlcXVpcmVkIl09ITA7aS5hdHRyaWJ1dGVzLnJlcXVpcmVkPSEwfXJldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3Moe25hbWU6ImxhYmVsIixhdHRyaWJ1dGVzOntjbGFzczpbInhmYUxhYmVsIl19LGNoaWxkcmVuOltpXX0pfX1jbGFzcyBUaW1lIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJ0aW1lIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9W19yXSgpe2NvbnN0IGU9dGhpc1tqcl0udHJpbSgpO3RoaXNbanJdPWU/bmV3IERhdGUoZSk6bnVsbH1bVnNdKGUpe3JldHVybiB2YWx1ZVRvSHRtbCh0aGlzW2pyXT90aGlzW2pyXS50b1N0cmluZygpOiIiKX19Y2xhc3MgVGltZVN0YW1wIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJ0aW1lU3RhbXAiKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMuc2VydmVyPWUuc2VydmVyfHwiIjt0aGlzLnR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUudHlwZSxbIm9wdGlvbmFsIiwicmVxdWlyZWQiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBUb29sVGlwIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJ0b29sVGlwIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnJpZD1lLnJpZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBUcmF2ZXJzYWwgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sInRyYXZlcnNhbCIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZXh0cmFzPW51bGw7dGhpcy50cmF2ZXJzZT1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIFRyYXZlcnNlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJ0cmF2ZXJzZSIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5vcGVyYXRpb249Z2V0U3RyaW5nT3B0aW9uKGUub3BlcmF0aW9uLFsibmV4dCIsImJhY2siLCJkb3duIiwiZmlyc3QiLCJsZWZ0IiwicmlnaHQiLCJ1cCJdKTt0aGlzLnJlZj1lLnJlZnx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5zY3JpcHQ9bnVsbH1nZXQgbmFtZSgpe3JldHVybiB0aGlzLm9wZXJhdGlvbn1bRHNdKCl7cmV0dXJuITF9fWNsYXNzIFVpIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJ1aSIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5waWN0dXJlPW51bGw7dGhpcy5iYXJjb2RlPW51bGw7dGhpcy5idXR0b249bnVsbDt0aGlzLmNoZWNrQnV0dG9uPW51bGw7dGhpcy5jaG9pY2VMaXN0PW51bGw7dGhpcy5kYXRlVGltZUVkaXQ9bnVsbDt0aGlzLmRlZmF1bHRVaT1udWxsO3RoaXMuaW1hZ2VFZGl0PW51bGw7dGhpcy5udW1lcmljRWRpdD1udWxsO3RoaXMucGFzc3dvcmRFZGl0PW51bGw7dGhpcy5zaWduYXR1cmU9bnVsbDt0aGlzLnRleHRFZGl0PW51bGx9W3NzXSgpe2lmKHZvaWQgMD09PXRoaXNbWnJdKXtmb3IoY29uc3QgZSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKSl7aWYoImV4dHJhcyI9PT1lfHwicGljdHVyZSI9PT1lKWNvbnRpbnVlO2NvbnN0IHQ9dGhpc1tlXTtpZih0IGluc3RhbmNlb2YgWEZBT2JqZWN0KXt0aGlzW1pyXT10O3JldHVybiB0fX10aGlzW1pyXT1udWxsfXJldHVybiB0aGlzW1pyXX1bVnNdKGUpe2NvbnN0IHQ9dGhpc1tzc10oKTtyZXR1cm4gdD90W1ZzXShlKTpIVE1MUmVzdWx0LkVNUFRZfX1jbGFzcyBWYWxpZGF0ZSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihNbiwidmFsaWRhdGUiLCEwKTt0aGlzLmZvcm1hdFRlc3Q9Z2V0U3RyaW5nT3B0aW9uKGUuZm9ybWF0VGVzdCxbIndhcm5pbmciLCJkaXNhYmxlZCIsImVycm9yIl0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5udWxsVGVzdD1nZXRTdHJpbmdPcHRpb24oZS5udWxsVGVzdCxbImRpc2FibGVkIiwiZXJyb3IiLCJ3YXJuaW5nIl0pO3RoaXMuc2NyaXB0VGVzdD1nZXRTdHJpbmdPcHRpb24oZS5zY3JpcHRUZXN0LFsiZXJyb3IiLCJkaXNhYmxlZCIsIndhcm5pbmciXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5tZXNzYWdlPW51bGw7dGhpcy5waWN0dXJlPW51bGw7dGhpcy5zY3JpcHQ9bnVsbH19Y2xhc3MgVmFsdWUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoTW4sInZhbHVlIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm92ZXJyaWRlPWdldEludGVnZXIoe2RhdGE6ZS5vdmVycmlkZSxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTplPT4xPT09ZX0pO3RoaXMucmVsZXZhbnQ9Z2V0UmVsZXZhbnQoZS5yZWxldmFudCk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuYXJjPW51bGw7dGhpcy5ib29sZWFuPW51bGw7dGhpcy5kYXRlPW51bGw7dGhpcy5kYXRlVGltZT1udWxsO3RoaXMuZGVjaW1hbD1udWxsO3RoaXMuZXhEYXRhPW51bGw7dGhpcy5mbG9hdD1udWxsO3RoaXMuaW1hZ2U9bnVsbDt0aGlzLmludGVnZXI9bnVsbDt0aGlzLmxpbmU9bnVsbDt0aGlzLnJlY3RhbmdsZT1udWxsO3RoaXMudGV4dD1udWxsO3RoaXMudGltZT1udWxsfVtPc10oZSl7Y29uc3QgdD10aGlzW2xzXSgpO2lmKHQgaW5zdGFuY2VvZiBGaWVsZCYmdC51aT8uaW1hZ2VFZGl0KXtpZighdGhpcy5pbWFnZSl7dGhpcy5pbWFnZT1uZXcgSW1hZ2Uoe30pO3RoaXNbWXJdKHRoaXMuaW1hZ2UpfXRoaXMuaW1hZ2VbanJdPWVbanJdO3JldHVybn1jb25zdCBpPWVbUnNdO2lmKG51bGw9PT10aGlzW2ldKXtmb3IoY29uc3QgZSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKSl7Y29uc3QgdD10aGlzW2VdO2lmKHQgaW5zdGFuY2VvZiBYRkFPYmplY3Qpe3RoaXNbZV09bnVsbDt0aGlzW0pzXSh0KX19dGhpc1tlW1JzXV09ZTt0aGlzW1lyXShlKX1lbHNlIHRoaXNbaV1banJdPWVbanJdfVtqc10oKXtpZih0aGlzLmV4RGF0YSlyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHRoaXMuZXhEYXRhW2pyXT90aGlzLmV4RGF0YVtqcl0udHJpbSgpOnRoaXMuZXhEYXRhW2pyXVtqc10oKS50cmltKCk7Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2lmKCJpbWFnZSI9PT1lKWNvbnRpbnVlO2NvbnN0IHQ9dGhpc1tlXTtpZih0IGluc3RhbmNlb2YgWEZBT2JqZWN0KXJldHVybih0W2pyXXx8IiIpLnRvU3RyaW5nKCkudHJpbSgpfXJldHVybiBudWxsfVtWc10oZSl7Zm9yKGNvbnN0IHQgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2NvbnN0IGk9dGhpc1t0XTtpZihpIGluc3RhbmNlb2YgWEZBT2JqZWN0KXJldHVybiBpW1ZzXShlKX1yZXR1cm4gSFRNTFJlc3VsdC5FTVBUWX19Y2xhc3MgVmFyaWFibGVzIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE1uLCJ2YXJpYWJsZXMiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmJvb2xlYW49bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGF0ZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5kYXRlVGltZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5kZWNpbWFsPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmV4RGF0YT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5mbG9hdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5pbWFnZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5pbnRlZ2VyPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLm1hbmlmZXN0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnNjcmlwdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50ZXh0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnRpbWU9bmV3IFhGQU9iamVjdEFycmF5fVtEc10oKXtyZXR1cm4hMH19Y2xhc3MgVGVtcGxhdGVOYW1lc3BhY2V7c3RhdGljWyRzXShlLHQpe2lmKFRlbXBsYXRlTmFtZXNwYWNlLmhhc093blByb3BlcnR5KGUpKXtjb25zdCBpPVRlbXBsYXRlTmFtZXNwYWNlW2VdKHQpO2lbcXNdKHQpO3JldHVybiBpfX1zdGF0aWMgYXBwZWFyYW5jZUZpbHRlcihlKXtyZXR1cm4gbmV3IEFwcGVhcmFuY2VGaWx0ZXIoZSl9c3RhdGljIGFyYyhlKXtyZXR1cm4gbmV3IEFyYyhlKX1zdGF0aWMgYXJlYShlKXtyZXR1cm4gbmV3IEFyZWEoZSl9c3RhdGljIGFzc2lzdChlKXtyZXR1cm4gbmV3IEFzc2lzdChlKX1zdGF0aWMgYmFyY29kZShlKXtyZXR1cm4gbmV3IEJhcmNvZGUoZSl9c3RhdGljIGJpbmQoZSl7cmV0dXJuIG5ldyBCaW5kKGUpfXN0YXRpYyBiaW5kSXRlbXMoZSl7cmV0dXJuIG5ldyBCaW5kSXRlbXMoZSl9c3RhdGljIGJvb2tlbmQoZSl7cmV0dXJuIG5ldyBCb29rZW5kKGUpfXN0YXRpYyBib29sZWFuKGUpe3JldHVybiBuZXcgQm9vbGVhbkVsZW1lbnQoZSl9c3RhdGljIGJvcmRlcihlKXtyZXR1cm4gbmV3IEJvcmRlcihlKX1zdGF0aWMgYnJlYWsoZSl7cmV0dXJuIG5ldyBCcmVhayhlKX1zdGF0aWMgYnJlYWtBZnRlcihlKXtyZXR1cm4gbmV3IEJyZWFrQWZ0ZXIoZSl9c3RhdGljIGJyZWFrQmVmb3JlKGUpe3JldHVybiBuZXcgQnJlYWtCZWZvcmUoZSl9c3RhdGljIGJ1dHRvbihlKXtyZXR1cm4gbmV3IEJ1dHRvbihlKX1zdGF0aWMgY2FsY3VsYXRlKGUpe3JldHVybiBuZXcgQ2FsY3VsYXRlKGUpfXN0YXRpYyBjYXB0aW9uKGUpe3JldHVybiBuZXcgQ2FwdGlvbihlKX1zdGF0aWMgY2VydGlmaWNhdGUoZSl7cmV0dXJuIG5ldyBDZXJ0aWZpY2F0ZShlKX1zdGF0aWMgY2VydGlmaWNhdGVzKGUpe3JldHVybiBuZXcgQ2VydGlmaWNhdGVzKGUpfXN0YXRpYyBjaGVja0J1dHRvbihlKXtyZXR1cm4gbmV3IENoZWNrQnV0dG9uKGUpfXN0YXRpYyBjaG9pY2VMaXN0KGUpe3JldHVybiBuZXcgQ2hvaWNlTGlzdChlKX1zdGF0aWMgY29sb3IoZSl7cmV0dXJuIG5ldyBDb2xvcihlKX1zdGF0aWMgY29tYihlKXtyZXR1cm4gbmV3IENvbWIoZSl9c3RhdGljIGNvbm5lY3QoZSl7cmV0dXJuIG5ldyBDb25uZWN0KGUpfXN0YXRpYyBjb250ZW50QXJlYShlKXtyZXR1cm4gbmV3IENvbnRlbnRBcmVhKGUpfXN0YXRpYyBjb3JuZXIoZSl7cmV0dXJuIG5ldyBDb3JuZXIoZSl9c3RhdGljIGRhdGUoZSl7cmV0dXJuIG5ldyBEYXRlRWxlbWVudChlKX1zdGF0aWMgZGF0ZVRpbWUoZSl7cmV0dXJuIG5ldyBEYXRlVGltZShlKX1zdGF0aWMgZGF0ZVRpbWVFZGl0KGUpe3JldHVybiBuZXcgRGF0ZVRpbWVFZGl0KGUpfXN0YXRpYyBkZWNpbWFsKGUpe3JldHVybiBuZXcgRGVjaW1hbChlKX1zdGF0aWMgZGVmYXVsdFVpKGUpe3JldHVybiBuZXcgRGVmYXVsdFVpKGUpfXN0YXRpYyBkZXNjKGUpe3JldHVybiBuZXcgRGVzYyhlKX1zdGF0aWMgZGlnZXN0TWV0aG9kKGUpe3JldHVybiBuZXcgRGlnZXN0TWV0aG9kKGUpfXN0YXRpYyBkaWdlc3RNZXRob2RzKGUpe3JldHVybiBuZXcgRGlnZXN0TWV0aG9kcyhlKX1zdGF0aWMgZHJhdyhlKXtyZXR1cm4gbmV3IERyYXcoZSl9c3RhdGljIGVkZ2UoZSl7cmV0dXJuIG5ldyBFZGdlKGUpfXN0YXRpYyBlbmNvZGluZyhlKXtyZXR1cm4gbmV3IEVuY29kaW5nKGUpfXN0YXRpYyBlbmNvZGluZ3MoZSl7cmV0dXJuIG5ldyBFbmNvZGluZ3MoZSl9c3RhdGljIGVuY3J5cHQoZSl7cmV0dXJuIG5ldyBFbmNyeXB0KGUpfXN0YXRpYyBlbmNyeXB0RGF0YShlKXtyZXR1cm4gbmV3IEVuY3J5cHREYXRhKGUpfXN0YXRpYyBlbmNyeXB0aW9uKGUpe3JldHVybiBuZXcgRW5jcnlwdGlvbihlKX1zdGF0aWMgZW5jcnlwdGlvbk1ldGhvZChlKXtyZXR1cm4gbmV3IEVuY3J5cHRpb25NZXRob2QoZSl9c3RhdGljIGVuY3J5cHRpb25NZXRob2RzKGUpe3JldHVybiBuZXcgRW5jcnlwdGlvbk1ldGhvZHMoZSl9c3RhdGljIGV2ZW50KGUpe3JldHVybiBuZXcgRXZlbnQoZSl9c3RhdGljIGV4RGF0YShlKXtyZXR1cm4gbmV3IEV4RGF0YShlKX1zdGF0aWMgZXhPYmplY3QoZSl7cmV0dXJuIG5ldyBFeE9iamVjdChlKX1zdGF0aWMgZXhjbEdyb3VwKGUpe3JldHVybiBuZXcgRXhjbEdyb3VwKGUpfXN0YXRpYyBleGVjdXRlKGUpe3JldHVybiBuZXcgRXhlY3V0ZShlKX1zdGF0aWMgZXh0cmFzKGUpe3JldHVybiBuZXcgRXh0cmFzKGUpfXN0YXRpYyBmaWVsZChlKXtyZXR1cm4gbmV3IEZpZWxkKGUpfXN0YXRpYyBmaWxsKGUpe3JldHVybiBuZXcgRmlsbChlKX1zdGF0aWMgZmlsdGVyKGUpe3JldHVybiBuZXcgRmlsdGVyKGUpfXN0YXRpYyBmbG9hdChlKXtyZXR1cm4gbmV3IEZsb2F0KGUpfXN0YXRpYyBmb250KGUpe3JldHVybiBuZXcgdGVtcGxhdGVfRm9udChlKX1zdGF0aWMgZm9ybWF0KGUpe3JldHVybiBuZXcgRm9ybWF0KGUpfXN0YXRpYyBoYW5kbGVyKGUpe3JldHVybiBuZXcgSGFuZGxlcihlKX1zdGF0aWMgaHlwaGVuYXRpb24oZSl7cmV0dXJuIG5ldyBIeXBoZW5hdGlvbihlKX1zdGF0aWMgaW1hZ2UoZSl7cmV0dXJuIG5ldyBJbWFnZShlKX1zdGF0aWMgaW1hZ2VFZGl0KGUpe3JldHVybiBuZXcgSW1hZ2VFZGl0KGUpfXN0YXRpYyBpbnRlZ2VyKGUpe3JldHVybiBuZXcgSW50ZWdlcihlKX1zdGF0aWMgaXNzdWVycyhlKXtyZXR1cm4gbmV3IElzc3VlcnMoZSl9c3RhdGljIGl0ZW1zKGUpe3JldHVybiBuZXcgSXRlbXMoZSl9c3RhdGljIGtlZXAoZSl7cmV0dXJuIG5ldyBLZWVwKGUpfXN0YXRpYyBrZXlVc2FnZShlKXtyZXR1cm4gbmV3IEtleVVzYWdlKGUpfXN0YXRpYyBsaW5lKGUpe3JldHVybiBuZXcgTGluZShlKX1zdGF0aWMgbGluZWFyKGUpe3JldHVybiBuZXcgTGluZWFyKGUpfXN0YXRpYyBsb2NrRG9jdW1lbnQoZSl7cmV0dXJuIG5ldyBMb2NrRG9jdW1lbnQoZSl9c3RhdGljIG1hbmlmZXN0KGUpe3JldHVybiBuZXcgTWFuaWZlc3QoZSl9c3RhdGljIG1hcmdpbihlKXtyZXR1cm4gbmV3IE1hcmdpbihlKX1zdGF0aWMgbWRwKGUpe3JldHVybiBuZXcgTWRwKGUpfXN0YXRpYyBtZWRpdW0oZSl7cmV0dXJuIG5ldyBNZWRpdW0oZSl9c3RhdGljIG1lc3NhZ2UoZSl7cmV0dXJuIG5ldyBNZXNzYWdlKGUpfXN0YXRpYyBudW1lcmljRWRpdChlKXtyZXR1cm4gbmV3IE51bWVyaWNFZGl0KGUpfXN0YXRpYyBvY2N1cihlKXtyZXR1cm4gbmV3IE9jY3VyKGUpfXN0YXRpYyBvaWQoZSl7cmV0dXJuIG5ldyBPaWQoZSl9c3RhdGljIG9pZHMoZSl7cmV0dXJuIG5ldyBPaWRzKGUpfXN0YXRpYyBvdmVyZmxvdyhlKXtyZXR1cm4gbmV3IE92ZXJmbG93KGUpfXN0YXRpYyBwYWdlQXJlYShlKXtyZXR1cm4gbmV3IFBhZ2VBcmVhKGUpfXN0YXRpYyBwYWdlU2V0KGUpe3JldHVybiBuZXcgUGFnZVNldChlKX1zdGF0aWMgcGFyYShlKXtyZXR1cm4gbmV3IFBhcmEoZSl9c3RhdGljIHBhc3N3b3JkRWRpdChlKXtyZXR1cm4gbmV3IFBhc3N3b3JkRWRpdChlKX1zdGF0aWMgcGF0dGVybihlKXtyZXR1cm4gbmV3IHRlbXBsYXRlX1BhdHRlcm4oZSl9c3RhdGljIHBpY3R1cmUoZSl7cmV0dXJuIG5ldyBQaWN0dXJlKGUpfXN0YXRpYyBwcm90byhlKXtyZXR1cm4gbmV3IFByb3RvKGUpfXN0YXRpYyByYWRpYWwoZSl7cmV0dXJuIG5ldyBSYWRpYWwoZSl9c3RhdGljIHJlYXNvbihlKXtyZXR1cm4gbmV3IFJlYXNvbihlKX1zdGF0aWMgcmVhc29ucyhlKXtyZXR1cm4gbmV3IFJlYXNvbnMoZSl9c3RhdGljIHJlY3RhbmdsZShlKXtyZXR1cm4gbmV3IFJlY3RhbmdsZShlKX1zdGF0aWMgcmVmKGUpe3JldHVybiBuZXcgUmVmRWxlbWVudChlKX1zdGF0aWMgc2NyaXB0KGUpe3JldHVybiBuZXcgU2NyaXB0KGUpfXN0YXRpYyBzZXRQcm9wZXJ0eShlKXtyZXR1cm4gbmV3IFNldFByb3BlcnR5KGUpfXN0YXRpYyBzaWduRGF0YShlKXtyZXR1cm4gbmV3IFNpZ25EYXRhKGUpfXN0YXRpYyBzaWduYXR1cmUoZSl7cmV0dXJuIG5ldyBTaWduYXR1cmUoZSl9c3RhdGljIHNpZ25pbmcoZSl7cmV0dXJuIG5ldyBTaWduaW5nKGUpfXN0YXRpYyBzb2xpZChlKXtyZXR1cm4gbmV3IFNvbGlkKGUpfXN0YXRpYyBzcGVhayhlKXtyZXR1cm4gbmV3IFNwZWFrKGUpfXN0YXRpYyBzdGlwcGxlKGUpe3JldHVybiBuZXcgU3RpcHBsZShlKX1zdGF0aWMgc3ViZm9ybShlKXtyZXR1cm4gbmV3IFN1YmZvcm0oZSl9c3RhdGljIHN1YmZvcm1TZXQoZSl7cmV0dXJuIG5ldyBTdWJmb3JtU2V0KGUpfXN0YXRpYyBzdWJqZWN0RE4oZSl7cmV0dXJuIG5ldyBTdWJqZWN0RE4oZSl9c3RhdGljIHN1YmplY3RETnMoZSl7cmV0dXJuIG5ldyBTdWJqZWN0RE5zKGUpfXN0YXRpYyBzdWJtaXQoZSl7cmV0dXJuIG5ldyBTdWJtaXQoZSl9c3RhdGljIHRlbXBsYXRlKGUpe3JldHVybiBuZXcgVGVtcGxhdGUoZSl9c3RhdGljIHRleHQoZSl7cmV0dXJuIG5ldyBUZXh0KGUpfXN0YXRpYyB0ZXh0RWRpdChlKXtyZXR1cm4gbmV3IFRleHRFZGl0KGUpfXN0YXRpYyB0aW1lKGUpe3JldHVybiBuZXcgVGltZShlKX1zdGF0aWMgdGltZVN0YW1wKGUpe3JldHVybiBuZXcgVGltZVN0YW1wKGUpfXN0YXRpYyB0b29sVGlwKGUpe3JldHVybiBuZXcgVG9vbFRpcChlKX1zdGF0aWMgdHJhdmVyc2FsKGUpe3JldHVybiBuZXcgVHJhdmVyc2FsKGUpfXN0YXRpYyB0cmF2ZXJzZShlKXtyZXR1cm4gbmV3IFRyYXZlcnNlKGUpfXN0YXRpYyB1aShlKXtyZXR1cm4gbmV3IFVpKGUpfXN0YXRpYyB2YWxpZGF0ZShlKXtyZXR1cm4gbmV3IFZhbGlkYXRlKGUpfXN0YXRpYyB2YWx1ZShlKXtyZXR1cm4gbmV3IFZhbHVlKGUpfXN0YXRpYyB2YXJpYWJsZXMoZSl7cmV0dXJuIG5ldyBWYXJpYWJsZXMoZSl9fWNvbnN0IEpuPUFuLmRhdGFzZXRzLmlkO2Z1bmN0aW9uIGNyZWF0ZVRleHQoZSl7Y29uc3QgdD1uZXcgVGV4dCh7fSk7dFtqcl09ZTtyZXR1cm4gdH1jbGFzcyBCaW5kZXJ7Y29uc3RydWN0b3IoZSl7dGhpcy5yb290PWU7dGhpcy5kYXRhc2V0cz1lLmRhdGFzZXRzO3RoaXMuZGF0YT1lLmRhdGFzZXRzPy5kYXRhfHxuZXcgWG1sT2JqZWN0KEFuLmRhdGFzZXRzLmlkLCJkYXRhIik7dGhpcy5lbXB0eU1lcmdlPTA9PT10aGlzLmRhdGFbb3NdKCkubGVuZ3RoO3RoaXMucm9vdC5mb3JtPXRoaXMuZm9ybT1lLnRlbXBsYXRlW1ByXSgpfV9pc0NvbnN1bWVEYXRhKCl7cmV0dXJuIXRoaXMuZW1wdHlNZXJnZSYmdGhpcy5fbWVyZ2VNb2RlfV9pc01hdGNoVGVtcGxhdGUoKXtyZXR1cm4hdGhpcy5faXNDb25zdW1lRGF0YSgpfWJpbmQoKXt0aGlzLl9iaW5kRWxlbWVudCh0aGlzLmZvcm0sdGhpcy5kYXRhKTtyZXR1cm4gdGhpcy5mb3JtfWdldERhdGEoKXtyZXR1cm4gdGhpcy5kYXRhfV9iaW5kVmFsdWUoZSx0LGkpe2VbWHJdPXQ7aWYoZVtCc10oKSlpZih0W3BzXSgpKXtjb25zdCBpPXRbcnNdKCk7ZVtPc10oY3JlYXRlVGV4dChpKSl9ZWxzZSBpZihlIGluc3RhbmNlb2YgRmllbGQmJiJtdWx0aVNlbGVjdCI9PT1lLnVpPy5jaG9pY2VMaXN0Py5vcGVuKXtjb25zdCBpPXRbb3NdKCkubWFwKChlPT5lW2pyXS50cmltKCkpKS5qb2luKCJcbiIpO2VbT3NdKGNyZWF0ZVRleHQoaSkpfWVsc2UgdGhpcy5faXNDb25zdW1lRGF0YSgpJiZ3YXJuKCJYRkEgLSBOb2RlcyBoYXZlbid0IHRoZSBzYW1lIHR5cGUuIik7ZWxzZSF0W3BzXSgpfHx0aGlzLl9pc01hdGNoVGVtcGxhdGUoKT90aGlzLl9iaW5kRWxlbWVudChlLHQpOndhcm4oIlhGQSAtIE5vZGVzIGhhdmVuJ3QgdGhlIHNhbWUgdHlwZS4iKX1fZmluZERhdGFCeU5hbWVUb0NvbnN1bWUoZSx0LGksYSl7aWYoIWUpcmV0dXJuIG51bGw7bGV0IHIscztmb3IobGV0IGE9MDthPDM7YSsrKXtyPWlbbnNdKGUsITEsITApO2Zvcig7Oyl7cz1yLm5leHQoKS52YWx1ZTtpZighcylicmVhaztpZih0PT09c1twc10oKSlyZXR1cm4gc31pZihpW2tzXT09PUFuLmRhdGFzZXRzLmlkJiYiZGF0YSI9PT1pW1JzXSlicmVhaztpPWlbbHNdKCl9aWYoIWEpcmV0dXJuIG51bGw7cj10aGlzLmRhdGFbbnNdKGUsITAsITEpO3M9ci5uZXh0KCkudmFsdWU7aWYocylyZXR1cm4gcztyPXRoaXMuZGF0YVskcl0oZSwhMCk7cz1yLm5leHQoKS52YWx1ZTtyZXR1cm4gcz8uW3BzXSgpP3M6bnVsbH1fc2V0UHJvcGVydGllcyhlLHQpe2lmKGUuaGFzT3duUHJvcGVydHkoInNldFByb3BlcnR5IikpZm9yKGNvbnN0e3JlZjppLHRhcmdldDphLGNvbm5lY3Rpb246cn1vZiBlLnNldFByb3BlcnR5LmNoaWxkcmVuKXtpZihyKWNvbnRpbnVlO2lmKCFpKWNvbnRpbnVlO2NvbnN0IHM9c2VhcmNoTm9kZSh0aGlzLnJvb3QsdCxpLCExLCExKTtpZighcyl7d2FybihgWEZBIC0gSW52YWxpZCByZWZlcmVuY2U6ICR7aX0uYCk7Y29udGludWV9Y29uc3Rbbl09cztpZighblttc10odGhpcy5kYXRhKSl7d2FybigiWEZBIC0gSW52YWxpZCBub2RlOiBtdXN0IGJlIGEgZGF0YSBub2RlLiIpO2NvbnRpbnVlfWNvbnN0IG89c2VhcmNoTm9kZSh0aGlzLnJvb3QsZSxhLCExLCExKTtpZighbyl7d2FybihgWEZBIC0gSW52YWxpZCB0YXJnZXQ6ICR7YX0uYCk7Y29udGludWV9Y29uc3RbZ109bztpZighZ1ttc10oZSkpe3dhcm4oIlhGQSAtIEludmFsaWQgdGFyZ2V0OiBtdXN0IGJlIGEgcHJvcGVydHkgb3Igc3VicHJvcGVydHkuIik7Y29udGludWV9Y29uc3QgYz1nW2xzXSgpO2lmKGcgaW5zdGFuY2VvZiBTZXRQcm9wZXJ0eXx8YyBpbnN0YW5jZW9mIFNldFByb3BlcnR5KXt3YXJuKCJYRkEgLSBJbnZhbGlkIHRhcmdldDogY2Fubm90IGJlIGEgc2V0UHJvcGVydHkgb3Igb25lIG9mIGl0cyBwcm9wZXJ0aWVzLiIpO2NvbnRpbnVlfWlmKGcgaW5zdGFuY2VvZiBCaW5kSXRlbXN8fGMgaW5zdGFuY2VvZiBCaW5kSXRlbXMpe3dhcm4oIlhGQSAtIEludmFsaWQgdGFyZ2V0OiBjYW5ub3QgYmUgYSBiaW5kSXRlbXMgb3Igb25lIG9mIGl0cyBwcm9wZXJ0aWVzLiIpO2NvbnRpbnVlfWNvbnN0IGw9bltqc10oKSxoPWdbUnNdO2lmKGcgaW5zdGFuY2VvZiBYRkFBdHRyaWJ1dGUpe2NvbnN0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtlW2hdPWw7Y29uc3QgdD1SZWZsZWN0LmNvbnN0cnVjdChPYmplY3QuZ2V0UHJvdG90eXBlT2YoYykuY29uc3RydWN0b3IsW2VdKTtjW2hdPXRbaF19ZWxzZSBpZihnLmhhc093blByb3BlcnR5KGpyKSl7Z1tYcl09bjtnW2pyXT1sO2dbX3JdKCl9ZWxzZSB3YXJuKCJYRkEgLSBJbnZhbGlkIG5vZGUgdG8gdXNlIGluIHNldFByb3BlcnR5Iil9fV9iaW5kSXRlbXMoZSx0KXtpZighZS5oYXNPd25Qcm9wZXJ0eSgiaXRlbXMiKXx8IWUuaGFzT3duUHJvcGVydHkoImJpbmRJdGVtcyIpfHxlLmJpbmRJdGVtcy5pc0VtcHR5KCkpcmV0dXJuO2Zvcihjb25zdCB0IG9mIGUuaXRlbXMuY2hpbGRyZW4pZVtKc10odCk7ZS5pdGVtcy5jbGVhcigpO2NvbnN0IGk9bmV3IEl0ZW1zKHt9KSxhPW5ldyBJdGVtcyh7fSk7ZVtZcl0oaSk7ZS5pdGVtcy5wdXNoKGkpO2VbWXJdKGEpO2UuaXRlbXMucHVzaChhKTtmb3IoY29uc3R7cmVmOnIsbGFiZWxSZWY6cyx2YWx1ZVJlZjpuLGNvbm5lY3Rpb246b31vZiBlLmJpbmRJdGVtcy5jaGlsZHJlbil7aWYobyljb250aW51ZTtpZighciljb250aW51ZTtjb25zdCBlPXNlYXJjaE5vZGUodGhpcy5yb290LHQsciwhMSwhMSk7aWYoZSlmb3IoY29uc3QgdCBvZiBlKXtpZighdFttc10odGhpcy5kYXRhc2V0cykpe3dhcm4oYFhGQSAtIEludmFsaWQgcmVmICgke3J9KTogbXVzdCBiZSBhIGRhdGFzZXRzIGNoaWxkLmApO2NvbnRpbnVlfWNvbnN0IGU9c2VhcmNoTm9kZSh0aGlzLnJvb3QsdCxzLCEwLCExKTtpZighZSl7d2FybihgWEZBIC0gSW52YWxpZCBsYWJlbDogJHtzfS5gKTtjb250aW51ZX1jb25zdFtvXT1lO2lmKCFvW21zXSh0aGlzLmRhdGFzZXRzKSl7d2FybigiWEZBIC0gSW52YWxpZCBsYWJlbDogbXVzdCBiZSBhIGRhdGFzZXRzIGNoaWxkLiIpO2NvbnRpbnVlfWNvbnN0IGc9c2VhcmNoTm9kZSh0aGlzLnJvb3QsdCxuLCEwLCExKTtpZighZyl7d2FybihgWEZBIC0gSW52YWxpZCB2YWx1ZTogJHtufS5gKTtjb250aW51ZX1jb25zdFtjXT1nO2lmKCFjW21zXSh0aGlzLmRhdGFzZXRzKSl7d2FybigiWEZBIC0gSW52YWxpZCB2YWx1ZTogbXVzdCBiZSBhIGRhdGFzZXRzIGNoaWxkLiIpO2NvbnRpbnVlfWNvbnN0IGw9Y3JlYXRlVGV4dChvW2pzXSgpKSxoPWNyZWF0ZVRleHQoY1tqc10oKSk7aVtZcl0obCk7aS50ZXh0LnB1c2gobCk7YVtZcl0oaCk7YS50ZXh0LnB1c2goaCl9ZWxzZSB3YXJuKGBYRkEgLSBJbnZhbGlkIHJlZmVyZW5jZTogJHtyfS5gKX19X2JpbmRPY2N1cnJlbmNlcyhlLHQsaSl7bGV0IGE7aWYodC5sZW5ndGg+MSl7YT1lW1ByXSgpO2FbSnNdKGEub2NjdXIpO2Eub2NjdXI9bnVsbH10aGlzLl9iaW5kVmFsdWUoZSx0WzBdLGkpO3RoaXMuX3NldFByb3BlcnRpZXMoZSx0WzBdKTt0aGlzLl9iaW5kSXRlbXMoZSx0WzBdKTtpZigxPT09dC5sZW5ndGgpcmV0dXJuO2NvbnN0IHI9ZVtsc10oKSxzPWVbUnNdLG49cltFc10oZSk7Zm9yKGxldCBlPTEsbz10Lmxlbmd0aDtlPG87ZSsrKXtjb25zdCBvPXRbZV0sZz1hW1ByXSgpO3Jbc10ucHVzaChnKTtyW3VzXShuK2UsZyk7dGhpcy5fYmluZFZhbHVlKGcsbyxpKTt0aGlzLl9zZXRQcm9wZXJ0aWVzKGcsbyk7dGhpcy5fYmluZEl0ZW1zKGcsbyl9fV9jcmVhdGVPY2N1cnJlbmNlcyhlKXtpZighdGhpcy5lbXB0eU1lcmdlKXJldHVybjtjb25zdHtvY2N1cjp0fT1lO2lmKCF0fHx0LmluaXRpYWw8PTEpcmV0dXJuO2NvbnN0IGk9ZVtsc10oKSxhPWVbUnNdO2lmKCEoaVthXWluc3RhbmNlb2YgWEZBT2JqZWN0QXJyYXkpKXJldHVybjtsZXQgcjtyPWUubmFtZT9pW2FdLmNoaWxkcmVuLmZpbHRlcigodD0+dC5uYW1lPT09ZS5uYW1lKSkubGVuZ3RoOmlbYV0uY2hpbGRyZW4ubGVuZ3RoO2NvbnN0IHM9aVtFc10oZSkrMSxuPXQuaW5pdGlhbC1yO2lmKG4pe2NvbnN0IHQ9ZVtQcl0oKTt0W0pzXSh0Lm9jY3VyKTt0Lm9jY3VyPW51bGw7aVthXS5wdXNoKHQpO2lbdXNdKHMsdCk7Zm9yKGxldCBlPTE7ZTxuO2UrKyl7Y29uc3Qgcj10W1ByXSgpO2lbYV0ucHVzaChyKTtpW3VzXShzK2Uscil9fX1fZ2V0T2NjdXJJbmZvKGUpe2NvbnN0e25hbWU6dCxvY2N1cjppfT1lO2lmKCFpfHwhdClyZXR1cm5bMSwxXTtjb25zdCBhPS0xPT09aS5tYXg/MS8wOmkubWF4O3JldHVybltpLm1pbixhXX1fc2V0QW5kQmluZChlLHQpe3RoaXMuX3NldFByb3BlcnRpZXMoZSx0KTt0aGlzLl9iaW5kSXRlbXMoZSx0KTt0aGlzLl9iaW5kRWxlbWVudChlLHQpfV9iaW5kRWxlbWVudChlLHQpe2NvbnN0IGk9W107dGhpcy5fY3JlYXRlT2NjdXJyZW5jZXMoZSk7Zm9yKGNvbnN0IGEgb2YgZVtvc10oKSl7aWYoYVtYcl0pY29udGludWU7aWYodm9pZCAwPT09dGhpcy5fbWVyZ2VNb2RlJiYic3ViZm9ybSI9PT1hW1JzXSl7dGhpcy5fbWVyZ2VNb2RlPSJjb25zdW1lRGF0YSI9PT1hLm1lcmdlTW9kZTtjb25zdCBlPXRbb3NdKCk7aWYoZS5sZW5ndGg+MCl0aGlzLl9iaW5kT2NjdXJyZW5jZXMoYSxbZVswXV0sbnVsbCk7ZWxzZSBpZih0aGlzLmVtcHR5TWVyZ2Upe2NvbnN0IGU9dFtrc109PT1Kbj8tMTp0W2tzXSxpPWFbWHJdPW5ldyBYbWxPYmplY3QoZSxhLm5hbWV8fCJyb290Iik7dFtZcl0oaSk7dGhpcy5fYmluZEVsZW1lbnQoYSxpKX1jb250aW51ZX1pZighYVtmc10oKSljb250aW51ZTtsZXQgZT0hMSxyPW51bGwscz1udWxsLG49bnVsbDtpZihhLmJpbmQpe3N3aXRjaChhLmJpbmQubWF0Y2gpe2Nhc2Uibm9uZSI6dGhpcy5fc2V0QW5kQmluZChhLHQpO2NvbnRpbnVlO2Nhc2UiZ2xvYmFsIjplPSEwO2JyZWFrO2Nhc2UiZGF0YVJlZiI6aWYoIWEuYmluZC5yZWYpe3dhcm4oYFhGQSAtIHJlZiBpcyBlbXB0eSBpbiBub2RlICR7YVtSc119LmApO3RoaXMuX3NldEFuZEJpbmQoYSx0KTtjb250aW51ZX1zPWEuYmluZC5yZWZ9YS5iaW5kLnBpY3R1cmUmJihyPWEuYmluZC5waWN0dXJlW2pyXSl9Y29uc3RbbyxnXT10aGlzLl9nZXRPY2N1ckluZm8oYSk7aWYocyl7bj1zZWFyY2hOb2RlKHRoaXMucm9vdCx0LHMsITAsITEpO2lmKG51bGw9PT1uKXtuPWNyZWF0ZURhdGFOb2RlKHRoaXMuZGF0YSx0LHMpO2lmKCFuKWNvbnRpbnVlO3RoaXMuX2lzQ29uc3VtZURhdGEoKSYmKG5bV3JdPSEwKTt0aGlzLl9zZXRBbmRCaW5kKGEsbik7Y29udGludWV9dGhpcy5faXNDb25zdW1lRGF0YSgpJiYobj1uLmZpbHRlcigoZT0+IWVbV3JdKSkpO24ubGVuZ3RoPmc/bj1uLnNsaWNlKDAsZyk6MD09PW4ubGVuZ3RoJiYobj1udWxsKTtuJiZ0aGlzLl9pc0NvbnN1bWVEYXRhKCkmJm4uZm9yRWFjaCgoZT0+e2VbV3JdPSEwfSkpfWVsc2V7aWYoIWEubmFtZSl7dGhpcy5fc2V0QW5kQmluZChhLHQpO2NvbnRpbnVlfWlmKHRoaXMuX2lzQ29uc3VtZURhdGEoKSl7Y29uc3QgaT1bXTtmb3IoO2kubGVuZ3RoPGc7KXtjb25zdCByPXRoaXMuX2ZpbmREYXRhQnlOYW1lVG9Db25zdW1lKGEubmFtZSxhW0JzXSgpLHQsZSk7aWYoIXIpYnJlYWs7cltXcl09ITA7aS5wdXNoKHIpfW49aS5sZW5ndGg+MD9pOm51bGx9ZWxzZXtuPXRbbnNdKGEubmFtZSwhMSx0aGlzLmVtcHR5TWVyZ2UpLm5leHQoKS52YWx1ZTtpZighbil7aWYoMD09PW8pe2kucHVzaChhKTtjb250aW51ZX1jb25zdCBlPXRba3NdPT09Sm4/LTE6dFtrc107bj1hW1hyXT1uZXcgWG1sT2JqZWN0KGUsYS5uYW1lKTt0aGlzLmVtcHR5TWVyZ2UmJihuW1dyXT0hMCk7dFtZcl0obik7dGhpcy5fc2V0QW5kQmluZChhLG4pO2NvbnRpbnVlfXRoaXMuZW1wdHlNZXJnZSYmKG5bV3JdPSEwKTtuPVtuXX19bj90aGlzLl9iaW5kT2NjdXJyZW5jZXMoYSxuLHIpOm8+MD90aGlzLl9zZXRBbmRCaW5kKGEsdCk6aS5wdXNoKGEpfWkuZm9yRWFjaCgoZT0+ZVtsc10oKVtKc10oZSkpKX19Y2xhc3MgRGF0YUhhbmRsZXJ7Y29uc3RydWN0b3IoZSx0KXt0aGlzLmRhdGE9dDt0aGlzLmRhdGFzZXQ9ZS5kYXRhc2V0c3x8bnVsbH1zZXJpYWxpemUoZSl7Y29uc3QgdD1bWy0xLHRoaXMuZGF0YVtvc10oKV1dO2Zvcig7dC5sZW5ndGg+MDspe2NvbnN0IGk9dC5hdCgtMSksW2Escl09aTtpZihhKzE9PT1yLmxlbmd0aCl7dC5wb3AoKTtjb250aW51ZX1jb25zdCBzPXJbKytpWzBdXSxuPWUuZ2V0KHNbenNdKTtpZihuKXNbT3NdKG4pO2Vsc2V7Y29uc3QgdD1zW0FzXSgpO2Zvcihjb25zdCBpIG9mIHQudmFsdWVzKCkpe2NvbnN0IHQ9ZS5nZXQoaVt6c10pO2lmKHQpe2lbT3NdKHQpO2JyZWFrfX19Y29uc3Qgbz1zW29zXSgpO28ubGVuZ3RoPjAmJnQucHVzaChbLTEsb10pfWNvbnN0IGk9Wyc8eGZhOmRhdGFzZXRzIHhtbG5zOnhmYT0iaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtZGF0YS8xLjAvIj4nXTtpZih0aGlzLmRhdGFzZXQpZm9yKGNvbnN0IGUgb2YgdGhpcy5kYXRhc2V0W29zXSgpKSJkYXRhIiE9PWVbUnNdJiZlW1pzXShpKTt0aGlzLmRhdGFbWnNdKGkpO2kucHVzaCgiPC94ZmE6ZGF0YXNldHM+Iik7cmV0dXJuIGkuam9pbigiIil9fWNvbnN0IHZuPUFuLmNvbmZpZy5pZDtjbGFzcyBBY3JvYmF0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJhY3JvYmF0IiwhMCk7dGhpcy5hY3JvYmF0Nz1udWxsO3RoaXMuYXV0b1NhdmU9bnVsbDt0aGlzLmNvbW1vbj1udWxsO3RoaXMudmFsaWRhdGU9bnVsbDt0aGlzLnZhbGlkYXRlQXBwcm92YWxTaWduYXR1cmVzPW51bGw7dGhpcy5zdWJtaXRVcmw9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBBY3JvYmF0NyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwiYWNyb2JhdDciLCEwKTt0aGlzLmR5bmFtaWNSZW5kZXI9bnVsbH19Y2xhc3MgQURCRV9KU0NvbnNvbGUgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sIkFEQkVfSlNDb25zb2xlIixbImRlbGVnYXRlIiwiRW5hYmxlIiwiRGlzYWJsZSJdKX19Y2xhc3MgQURCRV9KU0RlYnVnZ2VyIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJBREJFX0pTRGVidWdnZXIiLFsiZGVsZWdhdGUiLCJFbmFibGUiLCJEaXNhYmxlIl0pfX1jbGFzcyBBZGRTaWxlbnRQcmludCBleHRlbmRzIE9wdGlvbjAxe2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJhZGRTaWxlbnRQcmludCIpfX1jbGFzcyBBZGRWaWV3ZXJQcmVmZXJlbmNlcyBleHRlbmRzIE9wdGlvbjAxe2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJhZGRWaWV3ZXJQcmVmZXJlbmNlcyIpfX1jbGFzcyBBZGp1c3REYXRhIGV4dGVuZHMgT3B0aW9uMTB7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImFkanVzdERhdGEiKX19Y2xhc3MgQWRvYmVFeHRlbnNpb25MZXZlbCBleHRlbmRzIEludGVnZXJPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImFkb2JlRXh0ZW5zaW9uTGV2ZWwiLDAsKGU9PmU+PTEmJmU8PTgpKX19Y2xhc3MgQWdlbnQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImFnZW50IiwhMCk7dGhpcy5uYW1lPWUubmFtZT9lLm5hbWUudHJpbSgpOiIiO3RoaXMuY29tbW9uPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgQWx3YXlzRW1iZWQgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJhbHdheXNFbWJlZCIpfX1jbGFzcyBBbWQgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImFtZCIpfX1jbGFzcyBjb25maWdfQXJlYSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwiYXJlYSIpO3RoaXMubGV2ZWw9Z2V0SW50ZWdlcih7ZGF0YTplLmxldmVsLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PmU+PTEmJmU8PTN9KTt0aGlzLm5hbWU9Z2V0U3RyaW5nT3B0aW9uKGUubmFtZSxbIiIsImJhcmNvZGUiLCJjb3JlaW5pdCIsImRldmljZURyaXZlciIsImZvbnQiLCJnZW5lcmFsIiwibGF5b3V0IiwibWVyZ2UiLCJzY3JpcHQiLCJzaWduYXR1cmUiLCJzb3VyY2VTZXQiLCJ0ZW1wbGF0ZUNhY2hlIl0pfX1jbGFzcyBBdHRyaWJ1dGVzIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJhdHRyaWJ1dGVzIixbInByZXNlcnZlIiwiZGVsZWdhdGUiLCJpZ25vcmUiXSl9fWNsYXNzIEF1dG9TYXZlIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJhdXRvU2F2ZSIsWyJkaXNhYmxlZCIsImVuYWJsZWQiXSl9fWNsYXNzIEJhc2UgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImJhc2UiKX19Y2xhc3MgQmF0Y2hPdXRwdXQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImJhdGNoT3V0cHV0Iik7dGhpcy5mb3JtYXQ9Z2V0U3RyaW5nT3B0aW9uKGUuZm9ybWF0LFsibm9uZSIsImNvbmNhdCIsInppcCIsInppcENvbXByZXNzIl0pfX1jbGFzcyBCZWhhdmlvck92ZXJyaWRlIGV4dGVuZHMgQ29udGVudE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwiYmVoYXZpb3JPdmVycmlkZSIpfVtfcl0oKXt0aGlzW2pyXT1uZXcgTWFwKHRoaXNbanJdLnRyaW0oKS5zcGxpdCgvXHMrLykuZmlsdGVyKChlPT5lLmluY2x1ZGVzKCI6IikpKS5tYXAoKGU9PmUuc3BsaXQoIjoiLDIpKSkpfX1jbGFzcyBDYWNoZSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwiY2FjaGUiLCEwKTt0aGlzLnRlbXBsYXRlQ2FjaGU9bnVsbH19Y2xhc3MgQ2hhbmdlIGV4dGVuZHMgT3B0aW9uMDF7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImNoYW5nZSIpfX1jbGFzcyBDb21tb24gZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImNvbW1vbiIsITApO3RoaXMuZGF0YT1udWxsO3RoaXMubG9jYWxlPW51bGw7dGhpcy5sb2NhbGVTZXQ9bnVsbDt0aGlzLm1lc3NhZ2luZz1udWxsO3RoaXMuc3VwcHJlc3NCYW5uZXI9bnVsbDt0aGlzLnRlbXBsYXRlPW51bGw7dGhpcy52YWxpZGF0aW9uTWVzc2FnaW5nPW51bGw7dGhpcy52ZXJzaW9uQ29udHJvbD1udWxsO3RoaXMubG9nPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgQ29tcHJlc3MgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImNvbXByZXNzIik7dGhpcy5zY29wZT1nZXRTdHJpbmdPcHRpb24oZS5zY29wZSxbImltYWdlT25seSIsImRvY3VtZW50Il0pfX1jbGFzcyBDb21wcmVzc0xvZ2ljYWxTdHJ1Y3R1cmUgZXh0ZW5kcyBPcHRpb24wMXtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwiY29tcHJlc3NMb2dpY2FsU3RydWN0dXJlIil9fWNsYXNzIENvbXByZXNzT2JqZWN0U3RyZWFtIGV4dGVuZHMgT3B0aW9uMTB7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImNvbXByZXNzT2JqZWN0U3RyZWFtIil9fWNsYXNzIENvbXByZXNzaW9uIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJjb21wcmVzc2lvbiIsITApO3RoaXMuY29tcHJlc3NMb2dpY2FsU3RydWN0dXJlPW51bGw7dGhpcy5jb21wcmVzc09iamVjdFN0cmVhbT1udWxsO3RoaXMubGV2ZWw9bnVsbDt0aGlzLnR5cGU9bnVsbH19Y2xhc3MgQ29uZmlnIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJjb25maWciLCEwKTt0aGlzLmFjcm9iYXQ9bnVsbDt0aGlzLnByZXNlbnQ9bnVsbDt0aGlzLnRyYWNlPW51bGw7dGhpcy5hZ2VudD1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIENvbmZvcm1hbmNlIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJjb25mb3JtYW5jZSIsWyJBIiwiQiJdKX19Y2xhc3MgQ29udGVudENvcHkgZXh0ZW5kcyBPcHRpb24wMXtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwiY29udGVudENvcHkiKX19Y2xhc3MgQ29waWVzIGV4dGVuZHMgSW50ZWdlck9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwiY29waWVzIiwxLChlPT5lPj0xKSl9fWNsYXNzIENyZWF0b3IgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImNyZWF0b3IiKX19Y2xhc3MgQ3VycmVudFBhZ2UgZXh0ZW5kcyBJbnRlZ2VyT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJjdXJyZW50UGFnZSIsMCwoZT0+ZT49MCkpfX1jbGFzcyBEYXRhIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJkYXRhIiwhMCk7dGhpcy5hZGp1c3REYXRhPW51bGw7dGhpcy5hdHRyaWJ1dGVzPW51bGw7dGhpcy5pbmNyZW1lbnRhbExvYWQ9bnVsbDt0aGlzLm91dHB1dFhTTD1udWxsO3RoaXMucmFuZ2U9bnVsbDt0aGlzLnJlY29yZD1udWxsO3RoaXMuc3RhcnROb2RlPW51bGw7dGhpcy51cmk9bnVsbDt0aGlzLndpbmRvdz1udWxsO3RoaXMueHNsPW51bGw7dGhpcy5leGNsdWRlTlM9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMudHJhbnNmb3JtPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgRGVidWcgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImRlYnVnIiwhMCk7dGhpcy51cmk9bnVsbH19Y2xhc3MgRGVmYXVsdFR5cGVmYWNlIGV4dGVuZHMgQ29udGVudE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwiZGVmYXVsdFR5cGVmYWNlIik7dGhpcy53cml0aW5nU2NyaXB0PWdldFN0cmluZ09wdGlvbihlLndyaXRpbmdTY3JpcHQsWyIqIiwiQXJhYmljIiwiQ3lyaWxsaWMiLCJFYXN0RXVyb3BlYW5Sb21hbiIsIkdyZWVrIiwiSGVicmV3IiwiSmFwYW5lc2UiLCJLb3JlYW4iLCJSb21hbiIsIlNpbXBsaWZpZWRDaGluZXNlIiwiVGhhaSIsIlRyYWRpdGlvbmFsQ2hpbmVzZSIsIlZpZXRuYW1lc2UiXSl9fWNsYXNzIERlc3RpbmF0aW9uIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJkZXN0aW5hdGlvbiIsWyJwZGYiLCJwY2wiLCJwcyIsIndlYkNsaWVudCIsInpwbCJdKX19Y2xhc3MgRG9jdW1lbnRBc3NlbWJseSBleHRlbmRzIE9wdGlvbjAxe2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJkb2N1bWVudEFzc2VtYmx5Iil9fWNsYXNzIERyaXZlciBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwiZHJpdmVyIiwhMCk7dGhpcy5uYW1lPWUubmFtZT9lLm5hbWUudHJpbSgpOiIiO3RoaXMuZm9udEluZm89bnVsbDt0aGlzLnhkYz1udWxsfX1jbGFzcyBEdXBsZXhPcHRpb24gZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImR1cGxleE9wdGlvbiIsWyJzaW1wbGV4IiwiZHVwbGV4RmxpcExvbmdFZGdlIiwiZHVwbGV4RmxpcFNob3J0RWRnZSJdKX19Y2xhc3MgRHluYW1pY1JlbmRlciBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwiZHluYW1pY1JlbmRlciIsWyJmb3JiaWRkZW4iLCJyZXF1aXJlZCJdKX19Y2xhc3MgRW1iZWQgZXh0ZW5kcyBPcHRpb24wMXtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwiZW1iZWQiKX19Y2xhc3MgY29uZmlnX0VuY3J5cHQgZXh0ZW5kcyBPcHRpb24wMXtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwiZW5jcnlwdCIpfX1jbGFzcyBjb25maWdfRW5jcnlwdGlvbiBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwiZW5jcnlwdGlvbiIsITApO3RoaXMuZW5jcnlwdD1udWxsO3RoaXMuZW5jcnlwdGlvbkxldmVsPW51bGw7dGhpcy5wZXJtaXNzaW9ucz1udWxsfX1jbGFzcyBFbmNyeXB0aW9uTGV2ZWwgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImVuY3J5cHRpb25MZXZlbCIsWyI0MGJpdCIsIjEyOGJpdCJdKX19Y2xhc3MgRW5mb3JjZSBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwiZW5mb3JjZSIpfX1jbGFzcyBFcXVhdGUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImVxdWF0ZSIpO3RoaXMuZm9yY2U9Z2V0SW50ZWdlcih7ZGF0YTplLmZvcmNlLGRlZmF1bHRWYWx1ZToxLHZhbGlkYXRlOmU9PjA9PT1lfSk7dGhpcy5mcm9tPWUuZnJvbXx8IiI7dGhpcy50bz1lLnRvfHwiIn19Y2xhc3MgRXF1YXRlUmFuZ2UgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImVxdWF0ZVJhbmdlIik7dGhpcy5mcm9tPWUuZnJvbXx8IiI7dGhpcy50bz1lLnRvfHwiIjt0aGlzLl91bmljb2RlUmFuZ2U9ZS51bmljb2RlUmFuZ2V8fCIifWdldCB1bmljb2RlUmFuZ2UoKXtjb25zdCBlPVtdLHQ9L1VcKyhbMC05YS1mQS1GXSspLyxpPXRoaXMuX3VuaWNvZGVSYW5nZTtmb3IobGV0IGEgb2YgaS5zcGxpdCgiLCIpLm1hcCgoZT0+ZS50cmltKCkpKS5maWx0ZXIoKGU9PiEhZSkpKXthPWEuc3BsaXQoIi0iLDIpLm1hcCgoZT0+e2NvbnN0IGk9ZS5tYXRjaCh0KTtyZXR1cm4gaT9wYXJzZUludChpWzFdLDE2KTowfSkpOzE9PT1hLmxlbmd0aCYmYS5wdXNoKGFbMF0pO2UucHVzaChhKX1yZXR1cm4gc2hhZG93KHRoaXMsInVuaWNvZGVSYW5nZSIsZSl9fWNsYXNzIEV4Y2x1ZGUgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJleGNsdWRlIil9W19yXSgpe3RoaXNbanJdPXRoaXNbanJdLnRyaW0oKS5zcGxpdCgvXHMrLykuZmlsdGVyKChlPT5lJiZbImNhbGN1bGF0ZSIsImNsb3NlIiwiZW50ZXIiLCJleGl0IiwiaW5pdGlhbGl6ZSIsInJlYWR5IiwidmFsaWRhdGUiXS5pbmNsdWRlcyhlKSkpfX1jbGFzcyBFeGNsdWRlTlMgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImV4Y2x1ZGVOUyIpfX1jbGFzcyBGbGlwTGFiZWwgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImZsaXBMYWJlbCIsWyJ1c2VQcmludGVyU2V0dGluZyIsIm9uIiwib2ZmIl0pfX1jbGFzcyBjb25maWdfRm9udEluZm8gZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImZvbnRJbmZvIiwhMCk7dGhpcy5lbWJlZD1udWxsO3RoaXMubWFwPW51bGw7dGhpcy5zdWJzZXRCZWxvdz1udWxsO3RoaXMuYWx3YXlzRW1iZWQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGVmYXVsdFR5cGVmYWNlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLm5ldmVyRW1iZWQ9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBGb3JtRmllbGRGaWxsaW5nIGV4dGVuZHMgT3B0aW9uMDF7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImZvcm1GaWVsZEZpbGxpbmciKX19Y2xhc3MgR3JvdXBQYXJlbnQgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImdyb3VwUGFyZW50Iil9fWNsYXNzIElmRW1wdHkgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImlmRW1wdHkiLFsiZGF0YVZhbHVlIiwiZGF0YUdyb3VwIiwiaWdub3JlIiwicmVtb3ZlIl0pfX1jbGFzcyBJbmNsdWRlWERQQ29udGVudCBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwiaW5jbHVkZVhEUENvbnRlbnQiKX19Y2xhc3MgSW5jcmVtZW50YWxMb2FkIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJpbmNyZW1lbnRhbExvYWQiLFsibm9uZSIsImZvcndhcmRPbmx5Il0pfX1jbGFzcyBJbmNyZW1lbnRhbE1lcmdlIGV4dGVuZHMgT3B0aW9uMDF7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImluY3JlbWVudGFsTWVyZ2UiKX19Y2xhc3MgSW50ZXJhY3RpdmUgZXh0ZW5kcyBPcHRpb24wMXtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwiaW50ZXJhY3RpdmUiKX19Y2xhc3MgSm9nIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJqb2ciLFsidXNlUHJpbnRlclNldHRpbmciLCJub25lIiwicGFnZVNldCJdKX19Y2xhc3MgTGFiZWxQcmludGVyIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJsYWJlbFByaW50ZXIiLCEwKTt0aGlzLm5hbWU9Z2V0U3RyaW5nT3B0aW9uKGUubmFtZSxbInpwbCIsImRwbCIsImlwbCIsInRjcGwiXSk7dGhpcy5iYXRjaE91dHB1dD1udWxsO3RoaXMuZmxpcExhYmVsPW51bGw7dGhpcy5mb250SW5mbz1udWxsO3RoaXMueGRjPW51bGx9fWNsYXNzIExheW91dCBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwibGF5b3V0IixbInBhZ2luYXRlIiwicGFuZWwiXSl9fWNsYXNzIExldmVsIGV4dGVuZHMgSW50ZWdlck9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwibGV2ZWwiLDAsKGU9PmU+MCkpfX1jbGFzcyBMaW5lYXJpemVkIGV4dGVuZHMgT3B0aW9uMDF7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sImxpbmVhcml6ZWQiKX19Y2xhc3MgTG9jYWxlIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJsb2NhbGUiKX19Y2xhc3MgTG9jYWxlU2V0IGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJsb2NhbGVTZXQiKX19Y2xhc3MgTG9nIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJsb2ciLCEwKTt0aGlzLm1vZGU9bnVsbDt0aGlzLnRocmVzaG9sZD1udWxsO3RoaXMudG89bnVsbDt0aGlzLnVyaT1udWxsfX1jbGFzcyBNYXBFbGVtZW50IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJtYXAiLCEwKTt0aGlzLmVxdWF0ZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5lcXVhdGVSYW5nZT1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIE1lZGl1bUluZm8gZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sIm1lZGl1bUluZm8iLCEwKTt0aGlzLm1hcD1udWxsfX1jbGFzcyBjb25maWdfTWVzc2FnZSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwibWVzc2FnZSIsITApO3RoaXMubXNnSWQ9bnVsbDt0aGlzLnNldmVyaXR5PW51bGx9fWNsYXNzIE1lc3NhZ2luZyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwibWVzc2FnaW5nIiwhMCk7dGhpcy5tZXNzYWdlPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgTW9kZSBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwibW9kZSIsWyJhcHBlbmQiLCJvdmVyd3JpdGUiXSl9fWNsYXNzIE1vZGlmeUFubm90cyBleHRlbmRzIE9wdGlvbjAxe2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJtb2RpZnlBbm5vdHMiKX19Y2xhc3MgTXNnSWQgZXh0ZW5kcyBJbnRlZ2VyT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJtc2dJZCIsMSwoZT0+ZT49MSkpfX1jbGFzcyBOYW1lQXR0ciBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwibmFtZUF0dHIiKX19Y2xhc3MgTmV2ZXJFbWJlZCBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sIm5ldmVyRW1iZWQiKX19Y2xhc3MgTnVtYmVyT2ZDb3BpZXMgZXh0ZW5kcyBJbnRlZ2VyT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJudW1iZXJPZkNvcGllcyIsbnVsbCwoZT0+ZT49MiYmZTw9NSkpfX1jbGFzcyBPcGVuQWN0aW9uIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJvcGVuQWN0aW9uIiwhMCk7dGhpcy5kZXN0aW5hdGlvbj1udWxsfX1jbGFzcyBPdXRwdXQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sIm91dHB1dCIsITApO3RoaXMudG89bnVsbDt0aGlzLnR5cGU9bnVsbDt0aGlzLnVyaT1udWxsfX1jbGFzcyBPdXRwdXRCaW4gZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sIm91dHB1dEJpbiIpfX1jbGFzcyBPdXRwdXRYU0wgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sIm91dHB1dFhTTCIsITApO3RoaXMudXJpPW51bGx9fWNsYXNzIE92ZXJwcmludCBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwib3ZlcnByaW50IixbIm5vbmUiLCJib3RoIiwiZHJhdyIsImZpZWxkIl0pfX1jbGFzcyBQYWNrZXRzIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJwYWNrZXRzIil9W19yXSgpeyIqIiE9PXRoaXNbanJdJiYodGhpc1tqcl09dGhpc1tqcl0udHJpbSgpLnNwbGl0KC9ccysvKS5maWx0ZXIoKGU9PlsiY29uZmlnIiwiZGF0YXNldHMiLCJ0ZW1wbGF0ZSIsInhmZGYiLCJ4c2x0Il0uaW5jbHVkZXMoZSkpKSl9fWNsYXNzIFBhZ2VPZmZzZXQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sInBhZ2VPZmZzZXQiKTt0aGlzLng9Z2V0SW50ZWdlcih7ZGF0YTplLngsZGVmYXVsdFZhbHVlOiJ1c2VYRENTZXR0aW5nIix2YWxpZGF0ZTplPT4hMH0pO3RoaXMueT1nZXRJbnRlZ2VyKHtkYXRhOmUueSxkZWZhdWx0VmFsdWU6InVzZVhEQ1NldHRpbmciLHZhbGlkYXRlOmU9PiEwfSl9fWNsYXNzIFBhZ2VSYW5nZSBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwicGFnZVJhbmdlIil9W19yXSgpe2NvbnN0IGU9dGhpc1tqcl0udHJpbSgpLnNwbGl0KC9ccysvKS5tYXAoKGU9PnBhcnNlSW50KGUsMTApKSksdD1bXTtmb3IobGV0IGk9MCxhPWUubGVuZ3RoO2k8YTtpKz0yKXQucHVzaChlLnNsaWNlKGksaSsyKSk7dGhpc1tqcl09dH19Y2xhc3MgUGFnaW5hdGlvbiBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwicGFnaW5hdGlvbiIsWyJzaW1wbGV4IiwiZHVwbGV4U2hvcnRFZGdlIiwiZHVwbGV4TG9uZ0VkZ2UiXSl9fWNsYXNzIFBhZ2luYXRpb25PdmVycmlkZSBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwicGFnaW5hdGlvbk92ZXJyaWRlIixbIm5vbmUiLCJmb3JjZUR1cGxleCIsImZvcmNlRHVwbGV4TG9uZ0VkZ2UiLCJmb3JjZUR1cGxleFNob3J0RWRnZSIsImZvcmNlU2ltcGxleCJdKX19Y2xhc3MgUGFydCBleHRlbmRzIEludGVnZXJPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sInBhcnQiLDEsKGU9PiExKSl9fWNsYXNzIFBjbCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwicGNsIiwhMCk7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy5iYXRjaE91dHB1dD1udWxsO3RoaXMuZm9udEluZm89bnVsbDt0aGlzLmpvZz1udWxsO3RoaXMubWVkaXVtSW5mbz1udWxsO3RoaXMub3V0cHV0QmluPW51bGw7dGhpcy5wYWdlT2Zmc2V0PW51bGw7dGhpcy5zdGFwbGU9bnVsbDt0aGlzLnhkYz1udWxsfX1jbGFzcyBQZGYgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sInBkZiIsITApO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMuYWRvYmVFeHRlbnNpb25MZXZlbD1udWxsO3RoaXMuYmF0Y2hPdXRwdXQ9bnVsbDt0aGlzLmNvbXByZXNzaW9uPW51bGw7dGhpcy5jcmVhdG9yPW51bGw7dGhpcy5lbmNyeXB0aW9uPW51bGw7dGhpcy5mb250SW5mbz1udWxsO3RoaXMuaW50ZXJhY3RpdmU9bnVsbDt0aGlzLmxpbmVhcml6ZWQ9bnVsbDt0aGlzLm9wZW5BY3Rpb249bnVsbDt0aGlzLnBkZmE9bnVsbDt0aGlzLnByb2R1Y2VyPW51bGw7dGhpcy5yZW5kZXJQb2xpY3k9bnVsbDt0aGlzLnNjcmlwdE1vZGVsPW51bGw7dGhpcy5zaWxlbnRQcmludD1udWxsO3RoaXMuc3VibWl0Rm9ybWF0PW51bGw7dGhpcy50YWdnZWQ9bnVsbDt0aGlzLnZlcnNpb249bnVsbDt0aGlzLnZpZXdlclByZWZlcmVuY2VzPW51bGw7dGhpcy54ZGM9bnVsbH19Y2xhc3MgUGRmYSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwicGRmYSIsITApO3RoaXMuYW1kPW51bGw7dGhpcy5jb25mb3JtYW5jZT1udWxsO3RoaXMuaW5jbHVkZVhEUENvbnRlbnQ9bnVsbDt0aGlzLnBhcnQ9bnVsbH19Y2xhc3MgUGVybWlzc2lvbnMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sInBlcm1pc3Npb25zIiwhMCk7dGhpcy5hY2Nlc3NpYmxlQ29udGVudD1udWxsO3RoaXMuY2hhbmdlPW51bGw7dGhpcy5jb250ZW50Q29weT1udWxsO3RoaXMuZG9jdW1lbnRBc3NlbWJseT1udWxsO3RoaXMuZm9ybUZpZWxkRmlsbGluZz1udWxsO3RoaXMubW9kaWZ5QW5ub3RzPW51bGw7dGhpcy5wbGFpbnRleHRNZXRhZGF0YT1udWxsO3RoaXMucHJpbnQ9bnVsbDt0aGlzLnByaW50SGlnaFF1YWxpdHk9bnVsbH19Y2xhc3MgUGlja1RyYXlCeVBERlNpemUgZXh0ZW5kcyBPcHRpb24wMXtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwicGlja1RyYXlCeVBERlNpemUiKX19Y2xhc3MgY29uZmlnX1BpY3R1cmUgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sInBpY3R1cmUiKX19Y2xhc3MgUGxhaW50ZXh0TWV0YWRhdGEgZXh0ZW5kcyBPcHRpb24wMXtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwicGxhaW50ZXh0TWV0YWRhdGEiKX19Y2xhc3MgUHJlc2VuY2UgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sInByZXNlbmNlIixbInByZXNlcnZlIiwiZGlzc29sdmUiLCJkaXNzb2x2ZVN0cnVjdHVyZSIsImlnbm9yZSIsInJlbW92ZSJdKX19Y2xhc3MgUHJlc2VudCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwicHJlc2VudCIsITApO3RoaXMuYmVoYXZpb3JPdmVycmlkZT1udWxsO3RoaXMuY2FjaGU9bnVsbDt0aGlzLmNvbW1vbj1udWxsO3RoaXMuY29waWVzPW51bGw7dGhpcy5kZXN0aW5hdGlvbj1udWxsO3RoaXMuaW5jcmVtZW50YWxNZXJnZT1udWxsO3RoaXMubGF5b3V0PW51bGw7dGhpcy5vdXRwdXQ9bnVsbDt0aGlzLm92ZXJwcmludD1udWxsO3RoaXMucGFnaW5hdGlvbj1udWxsO3RoaXMucGFnaW5hdGlvbk92ZXJyaWRlPW51bGw7dGhpcy5zY3JpcHQ9bnVsbDt0aGlzLnZhbGlkYXRlPW51bGw7dGhpcy54ZHA9bnVsbDt0aGlzLmRyaXZlcj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5sYWJlbFByaW50ZXI9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMucGNsPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnBkZj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5wcz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zdWJtaXRVcmw9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMud2ViQ2xpZW50PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnpwbD1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIFByaW50IGV4dGVuZHMgT3B0aW9uMDF7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sInByaW50Iil9fWNsYXNzIFByaW50SGlnaFF1YWxpdHkgZXh0ZW5kcyBPcHRpb24wMXtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwicHJpbnRIaWdoUXVhbGl0eSIpfX1jbGFzcyBQcmludFNjYWxpbmcgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sInByaW50U2NhbGluZyIsWyJhcHBkZWZhdWx0Iiwibm9TY2FsaW5nIl0pfX1jbGFzcyBQcmludGVyTmFtZSBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwicHJpbnRlck5hbWUiKX19Y2xhc3MgUHJvZHVjZXIgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sInByb2R1Y2VyIil9fWNsYXNzIFBzIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJwcyIsITApO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMuYmF0Y2hPdXRwdXQ9bnVsbDt0aGlzLmZvbnRJbmZvPW51bGw7dGhpcy5qb2c9bnVsbDt0aGlzLm1lZGl1bUluZm89bnVsbDt0aGlzLm91dHB1dEJpbj1udWxsO3RoaXMuc3RhcGxlPW51bGw7dGhpcy54ZGM9bnVsbH19Y2xhc3MgUmFuZ2UgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJyYW5nZSIpfVtfcl0oKXt0aGlzW2pyXT10aGlzW2pyXS50cmltKCkuc3BsaXQoL1xzKixccyovLDIpLm1hcCgoZT0+ZS5zcGxpdCgiLSIpLm1hcCgoZT0+cGFyc2VJbnQoZS50cmltKCksMTApKSkpKS5maWx0ZXIoKGU9PmUuZXZlcnkoKGU9PiFpc05hTihlKSkpKSkubWFwKChlPT57MT09PWUubGVuZ3RoJiZlLnB1c2goZVswXSk7cmV0dXJuIGV9KSl9fWNsYXNzIFJlY29yZCBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sInJlY29yZCIpfVtfcl0oKXt0aGlzW2pyXT10aGlzW2pyXS50cmltKCk7Y29uc3QgZT1wYXJzZUludCh0aGlzW2pyXSwxMCk7IWlzTmFOKGUpJiZlPj0wJiYodGhpc1tqcl09ZSl9fWNsYXNzIFJlbGV2YW50IGV4dGVuZHMgQ29udGVudE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwicmVsZXZhbnQiKX1bX3JdKCl7dGhpc1tqcl09dGhpc1tqcl0udHJpbSgpLnNwbGl0KC9ccysvKX19Y2xhc3MgUmVuYW1lIGV4dGVuZHMgQ29udGVudE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwicmVuYW1lIil9W19yXSgpe3RoaXNbanJdPXRoaXNbanJdLnRyaW0oKTsodGhpc1tqcl0udG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKCJ4bWwiKXx8bmV3IFJlZ0V4cCgiW1xccHtMfV9dW1xccHtMfVxcZC5fXFxwe019LV0qIiwidSIpLnRlc3QodGhpc1tqcl0pKSYmd2FybigiWEZBIC0gUmVuYW1lOiBpbnZhbGlkIFhGQSBuYW1lIil9fWNsYXNzIFJlbmRlclBvbGljeSBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwicmVuZGVyUG9saWN5IixbInNlcnZlciIsImNsaWVudCJdKX19Y2xhc3MgUnVuU2NyaXB0cyBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwicnVuU2NyaXB0cyIsWyJib3RoIiwiY2xpZW50Iiwibm9uZSIsInNlcnZlciJdKX19Y2xhc3MgY29uZmlnX1NjcmlwdCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwic2NyaXB0IiwhMCk7dGhpcy5jdXJyZW50UGFnZT1udWxsO3RoaXMuZXhjbHVkZT1udWxsO3RoaXMucnVuU2NyaXB0cz1udWxsfX1jbGFzcyBTY3JpcHRNb2RlbCBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwic2NyaXB0TW9kZWwiLFsiWEZBIiwibm9uZSJdKX19Y2xhc3MgU2V2ZXJpdHkgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sInNldmVyaXR5IixbImlnbm9yZSIsImVycm9yIiwiaW5mb3JtYXRpb24iLCJ0cmFjZSIsIndhcm5pbmciXSl9fWNsYXNzIFNpbGVudFByaW50IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJzaWxlbnRQcmludCIsITApO3RoaXMuYWRkU2lsZW50UHJpbnQ9bnVsbDt0aGlzLnByaW50ZXJOYW1lPW51bGx9fWNsYXNzIFN0YXBsZSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwic3RhcGxlIik7dGhpcy5tb2RlPWdldFN0cmluZ09wdGlvbihlLm1vZGUsWyJ1c2VQcmludGVyU2V0dGluZyIsIm9uIiwib2ZmIl0pfX1jbGFzcyBTdGFydE5vZGUgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sInN0YXJ0Tm9kZSIpfX1jbGFzcyBTdGFydFBhZ2UgZXh0ZW5kcyBJbnRlZ2VyT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJzdGFydFBhZ2UiLDAsKGU9PiEwKSl9fWNsYXNzIFN1Ym1pdEZvcm1hdCBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwic3VibWl0Rm9ybWF0IixbImh0bWwiLCJkZWxlZ2F0ZSIsImZkZiIsInhtbCIsInBkZiJdKX19Y2xhc3MgU3VibWl0VXJsIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJzdWJtaXRVcmwiKX19Y2xhc3MgU3Vic2V0QmVsb3cgZXh0ZW5kcyBJbnRlZ2VyT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJzdWJzZXRCZWxvdyIsMTAwLChlPT5lPj0wJiZlPD0xMDApKX19Y2xhc3MgU3VwcHJlc3NCYW5uZXIgZXh0ZW5kcyBPcHRpb24wMXtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwic3VwcHJlc3NCYW5uZXIiKX19Y2xhc3MgVGFnZ2VkIGV4dGVuZHMgT3B0aW9uMDF7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sInRhZ2dlZCIpfX1jbGFzcyBjb25maWdfVGVtcGxhdGUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sInRlbXBsYXRlIiwhMCk7dGhpcy5iYXNlPW51bGw7dGhpcy5yZWxldmFudD1udWxsO3RoaXMuc3RhcnRQYWdlPW51bGw7dGhpcy51cmk9bnVsbDt0aGlzLnhzbD1udWxsfX1jbGFzcyBUaHJlc2hvbGQgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sInRocmVzaG9sZCIsWyJ0cmFjZSIsImVycm9yIiwiaW5mb3JtYXRpb24iLCJ3YXJuaW5nIl0pfX1jbGFzcyBUbyBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwidG8iLFsibnVsbCIsIm1lbW9yeSIsInN0ZGVyciIsInN0ZG91dCIsInN5c3RlbSIsInVyaSJdKX19Y2xhc3MgVGVtcGxhdGVDYWNoZSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwidGVtcGxhdGVDYWNoZSIpO3RoaXMubWF4RW50cmllcz1nZXRJbnRlZ2VyKHtkYXRhOmUubWF4RW50cmllcyxkZWZhdWx0VmFsdWU6NSx2YWxpZGF0ZTplPT5lPj0wfSl9fWNsYXNzIFRyYWNlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJ0cmFjZSIsITApO3RoaXMuYXJlYT1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIFRyYW5zZm9ybSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwidHJhbnNmb3JtIiwhMCk7dGhpcy5ncm91cFBhcmVudD1udWxsO3RoaXMuaWZFbXB0eT1udWxsO3RoaXMubmFtZUF0dHI9bnVsbDt0aGlzLnBpY3R1cmU9bnVsbDt0aGlzLnByZXNlbmNlPW51bGw7dGhpcy5yZW5hbWU9bnVsbDt0aGlzLndoaXRlc3BhY2U9bnVsbH19Y2xhc3MgVHlwZSBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwidHlwZSIsWyJub25lIiwiYXNjaWk4NSIsImFzY2lpSGV4IiwiY2NpdHRmYXgiLCJmbGF0ZSIsImx6dyIsInJ1bkxlbmd0aCIsIm5hdGl2ZSIsInhkcCIsIm1lcmdlZFhEUCJdKX19Y2xhc3MgVXJpIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJ1cmkiKX19Y2xhc3MgY29uZmlnX1ZhbGlkYXRlIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJ2YWxpZGF0ZSIsWyJwcmVTdWJtaXQiLCJwcmVQcmludCIsInByZUV4ZWN1dGUiLCJwcmVTYXZlIl0pfX1jbGFzcyBWYWxpZGF0ZUFwcHJvdmFsU2lnbmF0dXJlcyBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sInZhbGlkYXRlQXBwcm92YWxTaWduYXR1cmVzIil9W19yXSgpe3RoaXNbanJdPXRoaXNbanJdLnRyaW0oKS5zcGxpdCgvXHMrLykuZmlsdGVyKChlPT5bImRvY1JlYWR5IiwicG9zdFNpZ24iXS5pbmNsdWRlcyhlKSkpfX1jbGFzcyBWYWxpZGF0aW9uTWVzc2FnaW5nIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJ2YWxpZGF0aW9uTWVzc2FnaW5nIixbImFsbE1lc3NhZ2VzSW5kaXZpZHVhbGx5IiwiYWxsTWVzc2FnZXNUb2dldGhlciIsImZpcnN0TWVzc2FnZU9ubHkiLCJub01lc3NhZ2VzIl0pfX1jbGFzcyBWZXJzaW9uIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJ2ZXJzaW9uIixbIjEuNyIsIjEuNiIsIjEuNSIsIjEuNCIsIjEuMyIsIjEuMiJdKX19Y2xhc3MgVmVyc2lvbkNvbnRyb2wgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sIlZlcnNpb25Db250cm9sIik7dGhpcy5vdXRwdXRCZWxvdz1nZXRTdHJpbmdPcHRpb24oZS5vdXRwdXRCZWxvdyxbIndhcm4iLCJlcnJvciIsInVwZGF0ZSJdKTt0aGlzLnNvdXJjZUFib3ZlPWdldFN0cmluZ09wdGlvbihlLnNvdXJjZUFib3ZlLFsid2FybiIsImVycm9yIl0pO3RoaXMuc291cmNlQmVsb3c9Z2V0U3RyaW5nT3B0aW9uKGUuc291cmNlQmVsb3csWyJ1cGRhdGUiLCJtYWludGFpbiJdKX19Y2xhc3MgVmlld2VyUHJlZmVyZW5jZXMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sInZpZXdlclByZWZlcmVuY2VzIiwhMCk7dGhpcy5BREJFX0pTQ29uc29sZT1udWxsO3RoaXMuQURCRV9KU0RlYnVnZ2VyPW51bGw7dGhpcy5hZGRWaWV3ZXJQcmVmZXJlbmNlcz1udWxsO3RoaXMuZHVwbGV4T3B0aW9uPW51bGw7dGhpcy5lbmZvcmNlPW51bGw7dGhpcy5udW1iZXJPZkNvcGllcz1udWxsO3RoaXMucGFnZVJhbmdlPW51bGw7dGhpcy5waWNrVHJheUJ5UERGU2l6ZT1udWxsO3RoaXMucHJpbnRTY2FsaW5nPW51bGx9fWNsYXNzIFdlYkNsaWVudCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwid2ViQ2xpZW50IiwhMCk7dGhpcy5uYW1lPWUubmFtZT9lLm5hbWUudHJpbSgpOiIiO3RoaXMuZm9udEluZm89bnVsbDt0aGlzLnhkYz1udWxsfX1jbGFzcyBXaGl0ZXNwYWNlIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHZuLCJ3aGl0ZXNwYWNlIixbInByZXNlcnZlIiwibHRyaW0iLCJub3JtYWxpemUiLCJydHJpbSIsInRyaW0iXSl9fWNsYXNzIFdpbmRvdyBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sIndpbmRvdyIpfVtfcl0oKXtjb25zdCBlPXRoaXNbanJdLnRyaW0oKS5zcGxpdCgvXHMqLFxzKi8sMikubWFwKChlPT5wYXJzZUludChlLDEwKSkpO2lmKGUuc29tZSgoZT0+aXNOYU4oZSkpKSl0aGlzW2pyXT1bMCwwXTtlbHNlezE9PT1lLmxlbmd0aCYmZS5wdXNoKGVbMF0pO3RoaXNbanJdPWV9fX1jbGFzcyBYZGMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIodm4sInhkYyIsITApO3RoaXMudXJpPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnhzbD1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIFhkcCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwieGRwIiwhMCk7dGhpcy5wYWNrZXRzPW51bGx9fWNsYXNzIFhzbCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwieHNsIiwhMCk7dGhpcy5kZWJ1Zz1udWxsO3RoaXMudXJpPW51bGx9fWNsYXNzIFpwbCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih2biwienBsIiwhMCk7dGhpcy5uYW1lPWUubmFtZT9lLm5hbWUudHJpbSgpOiIiO3RoaXMuYmF0Y2hPdXRwdXQ9bnVsbDt0aGlzLmZsaXBMYWJlbD1udWxsO3RoaXMuZm9udEluZm89bnVsbDt0aGlzLnhkYz1udWxsfX1jbGFzcyBDb25maWdOYW1lc3BhY2V7c3RhdGljWyRzXShlLHQpe2lmKENvbmZpZ05hbWVzcGFjZS5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4gQ29uZmlnTmFtZXNwYWNlW2VdKHQpfXN0YXRpYyBhY3JvYmF0KGUpe3JldHVybiBuZXcgQWNyb2JhdChlKX1zdGF0aWMgYWNyb2JhdDcoZSl7cmV0dXJuIG5ldyBBY3JvYmF0NyhlKX1zdGF0aWMgQURCRV9KU0NvbnNvbGUoZSl7cmV0dXJuIG5ldyBBREJFX0pTQ29uc29sZShlKX1zdGF0aWMgQURCRV9KU0RlYnVnZ2VyKGUpe3JldHVybiBuZXcgQURCRV9KU0RlYnVnZ2VyKGUpfXN0YXRpYyBhZGRTaWxlbnRQcmludChlKXtyZXR1cm4gbmV3IEFkZFNpbGVudFByaW50KGUpfXN0YXRpYyBhZGRWaWV3ZXJQcmVmZXJlbmNlcyhlKXtyZXR1cm4gbmV3IEFkZFZpZXdlclByZWZlcmVuY2VzKGUpfXN0YXRpYyBhZGp1c3REYXRhKGUpe3JldHVybiBuZXcgQWRqdXN0RGF0YShlKX1zdGF0aWMgYWRvYmVFeHRlbnNpb25MZXZlbChlKXtyZXR1cm4gbmV3IEFkb2JlRXh0ZW5zaW9uTGV2ZWwoZSl9c3RhdGljIGFnZW50KGUpe3JldHVybiBuZXcgQWdlbnQoZSl9c3RhdGljIGFsd2F5c0VtYmVkKGUpe3JldHVybiBuZXcgQWx3YXlzRW1iZWQoZSl9c3RhdGljIGFtZChlKXtyZXR1cm4gbmV3IEFtZChlKX1zdGF0aWMgYXJlYShlKXtyZXR1cm4gbmV3IGNvbmZpZ19BcmVhKGUpfXN0YXRpYyBhdHRyaWJ1dGVzKGUpe3JldHVybiBuZXcgQXR0cmlidXRlcyhlKX1zdGF0aWMgYXV0b1NhdmUoZSl7cmV0dXJuIG5ldyBBdXRvU2F2ZShlKX1zdGF0aWMgYmFzZShlKXtyZXR1cm4gbmV3IEJhc2UoZSl9c3RhdGljIGJhdGNoT3V0cHV0KGUpe3JldHVybiBuZXcgQmF0Y2hPdXRwdXQoZSl9c3RhdGljIGJlaGF2aW9yT3ZlcnJpZGUoZSl7cmV0dXJuIG5ldyBCZWhhdmlvck92ZXJyaWRlKGUpfXN0YXRpYyBjYWNoZShlKXtyZXR1cm4gbmV3IENhY2hlKGUpfXN0YXRpYyBjaGFuZ2UoZSl7cmV0dXJuIG5ldyBDaGFuZ2UoZSl9c3RhdGljIGNvbW1vbihlKXtyZXR1cm4gbmV3IENvbW1vbihlKX1zdGF0aWMgY29tcHJlc3MoZSl7cmV0dXJuIG5ldyBDb21wcmVzcyhlKX1zdGF0aWMgY29tcHJlc3NMb2dpY2FsU3RydWN0dXJlKGUpe3JldHVybiBuZXcgQ29tcHJlc3NMb2dpY2FsU3RydWN0dXJlKGUpfXN0YXRpYyBjb21wcmVzc09iamVjdFN0cmVhbShlKXtyZXR1cm4gbmV3IENvbXByZXNzT2JqZWN0U3RyZWFtKGUpfXN0YXRpYyBjb21wcmVzc2lvbihlKXtyZXR1cm4gbmV3IENvbXByZXNzaW9uKGUpfXN0YXRpYyBjb25maWcoZSl7cmV0dXJuIG5ldyBDb25maWcoZSl9c3RhdGljIGNvbmZvcm1hbmNlKGUpe3JldHVybiBuZXcgQ29uZm9ybWFuY2UoZSl9c3RhdGljIGNvbnRlbnRDb3B5KGUpe3JldHVybiBuZXcgQ29udGVudENvcHkoZSl9c3RhdGljIGNvcGllcyhlKXtyZXR1cm4gbmV3IENvcGllcyhlKX1zdGF0aWMgY3JlYXRvcihlKXtyZXR1cm4gbmV3IENyZWF0b3IoZSl9c3RhdGljIGN1cnJlbnRQYWdlKGUpe3JldHVybiBuZXcgQ3VycmVudFBhZ2UoZSl9c3RhdGljIGRhdGEoZSl7cmV0dXJuIG5ldyBEYXRhKGUpfXN0YXRpYyBkZWJ1ZyhlKXtyZXR1cm4gbmV3IERlYnVnKGUpfXN0YXRpYyBkZWZhdWx0VHlwZWZhY2UoZSl7cmV0dXJuIG5ldyBEZWZhdWx0VHlwZWZhY2UoZSl9c3RhdGljIGRlc3RpbmF0aW9uKGUpe3JldHVybiBuZXcgRGVzdGluYXRpb24oZSl9c3RhdGljIGRvY3VtZW50QXNzZW1ibHkoZSl7cmV0dXJuIG5ldyBEb2N1bWVudEFzc2VtYmx5KGUpfXN0YXRpYyBkcml2ZXIoZSl7cmV0dXJuIG5ldyBEcml2ZXIoZSl9c3RhdGljIGR1cGxleE9wdGlvbihlKXtyZXR1cm4gbmV3IER1cGxleE9wdGlvbihlKX1zdGF0aWMgZHluYW1pY1JlbmRlcihlKXtyZXR1cm4gbmV3IER5bmFtaWNSZW5kZXIoZSl9c3RhdGljIGVtYmVkKGUpe3JldHVybiBuZXcgRW1iZWQoZSl9c3RhdGljIGVuY3J5cHQoZSl7cmV0dXJuIG5ldyBjb25maWdfRW5jcnlwdChlKX1zdGF0aWMgZW5jcnlwdGlvbihlKXtyZXR1cm4gbmV3IGNvbmZpZ19FbmNyeXB0aW9uKGUpfXN0YXRpYyBlbmNyeXB0aW9uTGV2ZWwoZSl7cmV0dXJuIG5ldyBFbmNyeXB0aW9uTGV2ZWwoZSl9c3RhdGljIGVuZm9yY2UoZSl7cmV0dXJuIG5ldyBFbmZvcmNlKGUpfXN0YXRpYyBlcXVhdGUoZSl7cmV0dXJuIG5ldyBFcXVhdGUoZSl9c3RhdGljIGVxdWF0ZVJhbmdlKGUpe3JldHVybiBuZXcgRXF1YXRlUmFuZ2UoZSl9c3RhdGljIGV4Y2x1ZGUoZSl7cmV0dXJuIG5ldyBFeGNsdWRlKGUpfXN0YXRpYyBleGNsdWRlTlMoZSl7cmV0dXJuIG5ldyBFeGNsdWRlTlMoZSl9c3RhdGljIGZsaXBMYWJlbChlKXtyZXR1cm4gbmV3IEZsaXBMYWJlbChlKX1zdGF0aWMgZm9udEluZm8oZSl7cmV0dXJuIG5ldyBjb25maWdfRm9udEluZm8oZSl9c3RhdGljIGZvcm1GaWVsZEZpbGxpbmcoZSl7cmV0dXJuIG5ldyBGb3JtRmllbGRGaWxsaW5nKGUpfXN0YXRpYyBncm91cFBhcmVudChlKXtyZXR1cm4gbmV3IEdyb3VwUGFyZW50KGUpfXN0YXRpYyBpZkVtcHR5KGUpe3JldHVybiBuZXcgSWZFbXB0eShlKX1zdGF0aWMgaW5jbHVkZVhEUENvbnRlbnQoZSl7cmV0dXJuIG5ldyBJbmNsdWRlWERQQ29udGVudChlKX1zdGF0aWMgaW5jcmVtZW50YWxMb2FkKGUpe3JldHVybiBuZXcgSW5jcmVtZW50YWxMb2FkKGUpfXN0YXRpYyBpbmNyZW1lbnRhbE1lcmdlKGUpe3JldHVybiBuZXcgSW5jcmVtZW50YWxNZXJnZShlKX1zdGF0aWMgaW50ZXJhY3RpdmUoZSl7cmV0dXJuIG5ldyBJbnRlcmFjdGl2ZShlKX1zdGF0aWMgam9nKGUpe3JldHVybiBuZXcgSm9nKGUpfXN0YXRpYyBsYWJlbFByaW50ZXIoZSl7cmV0dXJuIG5ldyBMYWJlbFByaW50ZXIoZSl9c3RhdGljIGxheW91dChlKXtyZXR1cm4gbmV3IExheW91dChlKX1zdGF0aWMgbGV2ZWwoZSl7cmV0dXJuIG5ldyBMZXZlbChlKX1zdGF0aWMgbGluZWFyaXplZChlKXtyZXR1cm4gbmV3IExpbmVhcml6ZWQoZSl9c3RhdGljIGxvY2FsZShlKXtyZXR1cm4gbmV3IExvY2FsZShlKX1zdGF0aWMgbG9jYWxlU2V0KGUpe3JldHVybiBuZXcgTG9jYWxlU2V0KGUpfXN0YXRpYyBsb2coZSl7cmV0dXJuIG5ldyBMb2coZSl9c3RhdGljIG1hcChlKXtyZXR1cm4gbmV3IE1hcEVsZW1lbnQoZSl9c3RhdGljIG1lZGl1bUluZm8oZSl7cmV0dXJuIG5ldyBNZWRpdW1JbmZvKGUpfXN0YXRpYyBtZXNzYWdlKGUpe3JldHVybiBuZXcgY29uZmlnX01lc3NhZ2UoZSl9c3RhdGljIG1lc3NhZ2luZyhlKXtyZXR1cm4gbmV3IE1lc3NhZ2luZyhlKX1zdGF0aWMgbW9kZShlKXtyZXR1cm4gbmV3IE1vZGUoZSl9c3RhdGljIG1vZGlmeUFubm90cyhlKXtyZXR1cm4gbmV3IE1vZGlmeUFubm90cyhlKX1zdGF0aWMgbXNnSWQoZSl7cmV0dXJuIG5ldyBNc2dJZChlKX1zdGF0aWMgbmFtZUF0dHIoZSl7cmV0dXJuIG5ldyBOYW1lQXR0cihlKX1zdGF0aWMgbmV2ZXJFbWJlZChlKXtyZXR1cm4gbmV3IE5ldmVyRW1iZWQoZSl9c3RhdGljIG51bWJlck9mQ29waWVzKGUpe3JldHVybiBuZXcgTnVtYmVyT2ZDb3BpZXMoZSl9c3RhdGljIG9wZW5BY3Rpb24oZSl7cmV0dXJuIG5ldyBPcGVuQWN0aW9uKGUpfXN0YXRpYyBvdXRwdXQoZSl7cmV0dXJuIG5ldyBPdXRwdXQoZSl9c3RhdGljIG91dHB1dEJpbihlKXtyZXR1cm4gbmV3IE91dHB1dEJpbihlKX1zdGF0aWMgb3V0cHV0WFNMKGUpe3JldHVybiBuZXcgT3V0cHV0WFNMKGUpfXN0YXRpYyBvdmVycHJpbnQoZSl7cmV0dXJuIG5ldyBPdmVycHJpbnQoZSl9c3RhdGljIHBhY2tldHMoZSl7cmV0dXJuIG5ldyBQYWNrZXRzKGUpfXN0YXRpYyBwYWdlT2Zmc2V0KGUpe3JldHVybiBuZXcgUGFnZU9mZnNldChlKX1zdGF0aWMgcGFnZVJhbmdlKGUpe3JldHVybiBuZXcgUGFnZVJhbmdlKGUpfXN0YXRpYyBwYWdpbmF0aW9uKGUpe3JldHVybiBuZXcgUGFnaW5hdGlvbihlKX1zdGF0aWMgcGFnaW5hdGlvbk92ZXJyaWRlKGUpe3JldHVybiBuZXcgUGFnaW5hdGlvbk92ZXJyaWRlKGUpfXN0YXRpYyBwYXJ0KGUpe3JldHVybiBuZXcgUGFydChlKX1zdGF0aWMgcGNsKGUpe3JldHVybiBuZXcgUGNsKGUpfXN0YXRpYyBwZGYoZSl7cmV0dXJuIG5ldyBQZGYoZSl9c3RhdGljIHBkZmEoZSl7cmV0dXJuIG5ldyBQZGZhKGUpfXN0YXRpYyBwZXJtaXNzaW9ucyhlKXtyZXR1cm4gbmV3IFBlcm1pc3Npb25zKGUpfXN0YXRpYyBwaWNrVHJheUJ5UERGU2l6ZShlKXtyZXR1cm4gbmV3IFBpY2tUcmF5QnlQREZTaXplKGUpfXN0YXRpYyBwaWN0dXJlKGUpe3JldHVybiBuZXcgY29uZmlnX1BpY3R1cmUoZSl9c3RhdGljIHBsYWludGV4dE1ldGFkYXRhKGUpe3JldHVybiBuZXcgUGxhaW50ZXh0TWV0YWRhdGEoZSl9c3RhdGljIHByZXNlbmNlKGUpe3JldHVybiBuZXcgUHJlc2VuY2UoZSl9c3RhdGljIHByZXNlbnQoZSl7cmV0dXJuIG5ldyBQcmVzZW50KGUpfXN0YXRpYyBwcmludChlKXtyZXR1cm4gbmV3IFByaW50KGUpfXN0YXRpYyBwcmludEhpZ2hRdWFsaXR5KGUpe3JldHVybiBuZXcgUHJpbnRIaWdoUXVhbGl0eShlKX1zdGF0aWMgcHJpbnRTY2FsaW5nKGUpe3JldHVybiBuZXcgUHJpbnRTY2FsaW5nKGUpfXN0YXRpYyBwcmludGVyTmFtZShlKXtyZXR1cm4gbmV3IFByaW50ZXJOYW1lKGUpfXN0YXRpYyBwcm9kdWNlcihlKXtyZXR1cm4gbmV3IFByb2R1Y2VyKGUpfXN0YXRpYyBwcyhlKXtyZXR1cm4gbmV3IFBzKGUpfXN0YXRpYyByYW5nZShlKXtyZXR1cm4gbmV3IFJhbmdlKGUpfXN0YXRpYyByZWNvcmQoZSl7cmV0dXJuIG5ldyBSZWNvcmQoZSl9c3RhdGljIHJlbGV2YW50KGUpe3JldHVybiBuZXcgUmVsZXZhbnQoZSl9c3RhdGljIHJlbmFtZShlKXtyZXR1cm4gbmV3IFJlbmFtZShlKX1zdGF0aWMgcmVuZGVyUG9saWN5KGUpe3JldHVybiBuZXcgUmVuZGVyUG9saWN5KGUpfXN0YXRpYyBydW5TY3JpcHRzKGUpe3JldHVybiBuZXcgUnVuU2NyaXB0cyhlKX1zdGF0aWMgc2NyaXB0KGUpe3JldHVybiBuZXcgY29uZmlnX1NjcmlwdChlKX1zdGF0aWMgc2NyaXB0TW9kZWwoZSl7cmV0dXJuIG5ldyBTY3JpcHRNb2RlbChlKX1zdGF0aWMgc2V2ZXJpdHkoZSl7cmV0dXJuIG5ldyBTZXZlcml0eShlKX1zdGF0aWMgc2lsZW50UHJpbnQoZSl7cmV0dXJuIG5ldyBTaWxlbnRQcmludChlKX1zdGF0aWMgc3RhcGxlKGUpe3JldHVybiBuZXcgU3RhcGxlKGUpfXN0YXRpYyBzdGFydE5vZGUoZSl7cmV0dXJuIG5ldyBTdGFydE5vZGUoZSl9c3RhdGljIHN0YXJ0UGFnZShlKXtyZXR1cm4gbmV3IFN0YXJ0UGFnZShlKX1zdGF0aWMgc3VibWl0Rm9ybWF0KGUpe3JldHVybiBuZXcgU3VibWl0Rm9ybWF0KGUpfXN0YXRpYyBzdWJtaXRVcmwoZSl7cmV0dXJuIG5ldyBTdWJtaXRVcmwoZSl9c3RhdGljIHN1YnNldEJlbG93KGUpe3JldHVybiBuZXcgU3Vic2V0QmVsb3coZSl9c3RhdGljIHN1cHByZXNzQmFubmVyKGUpe3JldHVybiBuZXcgU3VwcHJlc3NCYW5uZXIoZSl9c3RhdGljIHRhZ2dlZChlKXtyZXR1cm4gbmV3IFRhZ2dlZChlKX1zdGF0aWMgdGVtcGxhdGUoZSl7cmV0dXJuIG5ldyBjb25maWdfVGVtcGxhdGUoZSl9c3RhdGljIHRlbXBsYXRlQ2FjaGUoZSl7cmV0dXJuIG5ldyBUZW1wbGF0ZUNhY2hlKGUpfXN0YXRpYyB0aHJlc2hvbGQoZSl7cmV0dXJuIG5ldyBUaHJlc2hvbGQoZSl9c3RhdGljIHRvKGUpe3JldHVybiBuZXcgVG8oZSl9c3RhdGljIHRyYWNlKGUpe3JldHVybiBuZXcgVHJhY2UoZSl9c3RhdGljIHRyYW5zZm9ybShlKXtyZXR1cm4gbmV3IFRyYW5zZm9ybShlKX1zdGF0aWMgdHlwZShlKXtyZXR1cm4gbmV3IFR5cGUoZSl9c3RhdGljIHVyaShlKXtyZXR1cm4gbmV3IFVyaShlKX1zdGF0aWMgdmFsaWRhdGUoZSl7cmV0dXJuIG5ldyBjb25maWdfVmFsaWRhdGUoZSl9c3RhdGljIHZhbGlkYXRlQXBwcm92YWxTaWduYXR1cmVzKGUpe3JldHVybiBuZXcgVmFsaWRhdGVBcHByb3ZhbFNpZ25hdHVyZXMoZSl9c3RhdGljIHZhbGlkYXRpb25NZXNzYWdpbmcoZSl7cmV0dXJuIG5ldyBWYWxpZGF0aW9uTWVzc2FnaW5nKGUpfXN0YXRpYyB2ZXJzaW9uKGUpe3JldHVybiBuZXcgVmVyc2lvbihlKX1zdGF0aWMgdmVyc2lvbkNvbnRyb2woZSl7cmV0dXJuIG5ldyBWZXJzaW9uQ29udHJvbChlKX1zdGF0aWMgdmlld2VyUHJlZmVyZW5jZXMoZSl7cmV0dXJuIG5ldyBWaWV3ZXJQcmVmZXJlbmNlcyhlKX1zdGF0aWMgd2ViQ2xpZW50KGUpe3JldHVybiBuZXcgV2ViQ2xpZW50KGUpfXN0YXRpYyB3aGl0ZXNwYWNlKGUpe3JldHVybiBuZXcgV2hpdGVzcGFjZShlKX1zdGF0aWMgd2luZG93KGUpe3JldHVybiBuZXcgV2luZG93KGUpfXN0YXRpYyB4ZGMoZSl7cmV0dXJuIG5ldyBYZGMoZSl9c3RhdGljIHhkcChlKXtyZXR1cm4gbmV3IFhkcChlKX1zdGF0aWMgeHNsKGUpe3JldHVybiBuZXcgWHNsKGUpfXN0YXRpYyB6cGwoZSl7cmV0dXJuIG5ldyBacGwoZSl9fWNvbnN0IFluPUFuLmNvbm5lY3Rpb25TZXQuaWQ7Y2xhc3MgQ29ubmVjdGlvblNldCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihZbiwiY29ubmVjdGlvblNldCIsITApO3RoaXMud3NkbENvbm5lY3Rpb249bmV3IFhGQU9iamVjdEFycmF5O3RoaXMueG1sQ29ubmVjdGlvbj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy54c2RDb25uZWN0aW9uPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgRWZmZWN0aXZlSW5wdXRQb2xpY3kgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoWW4sImVmZmVjdGl2ZUlucHV0UG9saWN5Iik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIEVmZmVjdGl2ZU91dHB1dFBvbGljeSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihZbiwiZWZmZWN0aXZlT3V0cHV0UG9saWN5Iik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIE9wZXJhdGlvbiBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihZbiwib3BlcmF0aW9uIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmlucHV0PWUuaW5wdXR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMub3V0cHV0PWUub3V0cHV0fHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIFJvb3RFbGVtZW50IGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFluLCJyb290RWxlbWVudCIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBTb2FwQWN0aW9uIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFluLCJzb2FwQWN0aW9uIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIFNvYXBBZGRyZXNzIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFluLCJzb2FwQWRkcmVzcyIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBjb25uZWN0aW9uX3NldF9VcmkgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoWW4sInVyaSIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBXc2RsQWRkcmVzcyBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihZbiwid3NkbEFkZHJlc3MiKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgV3NkbENvbm5lY3Rpb24gZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoWW4sIndzZGxDb25uZWN0aW9uIiwhMCk7dGhpcy5kYXRhRGVzY3JpcHRpb249ZS5kYXRhRGVzY3JpcHRpb258fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMuZWZmZWN0aXZlSW5wdXRQb2xpY3k9bnVsbDt0aGlzLmVmZmVjdGl2ZU91dHB1dFBvbGljeT1udWxsO3RoaXMub3BlcmF0aW9uPW51bGw7dGhpcy5zb2FwQWN0aW9uPW51bGw7dGhpcy5zb2FwQWRkcmVzcz1udWxsO3RoaXMud3NkbEFkZHJlc3M9bnVsbH19Y2xhc3MgWG1sQ29ubmVjdGlvbiBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihZbiwieG1sQ29ubmVjdGlvbiIsITApO3RoaXMuZGF0YURlc2NyaXB0aW9uPWUuZGF0YURlc2NyaXB0aW9ufHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnVyaT1udWxsfX1jbGFzcyBYc2RDb25uZWN0aW9uIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFluLCJ4c2RDb25uZWN0aW9uIiwhMCk7dGhpcy5kYXRhRGVzY3JpcHRpb249ZS5kYXRhRGVzY3JpcHRpb258fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMucm9vdEVsZW1lbnQ9bnVsbDt0aGlzLnVyaT1udWxsfX1jbGFzcyBDb25uZWN0aW9uU2V0TmFtZXNwYWNle3N0YXRpY1skc10oZSx0KXtpZihDb25uZWN0aW9uU2V0TmFtZXNwYWNlLmhhc093blByb3BlcnR5KGUpKXJldHVybiBDb25uZWN0aW9uU2V0TmFtZXNwYWNlW2VdKHQpfXN0YXRpYyBjb25uZWN0aW9uU2V0KGUpe3JldHVybiBuZXcgQ29ubmVjdGlvblNldChlKX1zdGF0aWMgZWZmZWN0aXZlSW5wdXRQb2xpY3koZSl7cmV0dXJuIG5ldyBFZmZlY3RpdmVJbnB1dFBvbGljeShlKX1zdGF0aWMgZWZmZWN0aXZlT3V0cHV0UG9saWN5KGUpe3JldHVybiBuZXcgRWZmZWN0aXZlT3V0cHV0UG9saWN5KGUpfXN0YXRpYyBvcGVyYXRpb24oZSl7cmV0dXJuIG5ldyBPcGVyYXRpb24oZSl9c3RhdGljIHJvb3RFbGVtZW50KGUpe3JldHVybiBuZXcgUm9vdEVsZW1lbnQoZSl9c3RhdGljIHNvYXBBY3Rpb24oZSl7cmV0dXJuIG5ldyBTb2FwQWN0aW9uKGUpfXN0YXRpYyBzb2FwQWRkcmVzcyhlKXtyZXR1cm4gbmV3IFNvYXBBZGRyZXNzKGUpfXN0YXRpYyB1cmkoZSl7cmV0dXJuIG5ldyBjb25uZWN0aW9uX3NldF9VcmkoZSl9c3RhdGljIHdzZGxBZGRyZXNzKGUpe3JldHVybiBuZXcgV3NkbEFkZHJlc3MoZSl9c3RhdGljIHdzZGxDb25uZWN0aW9uKGUpe3JldHVybiBuZXcgV3NkbENvbm5lY3Rpb24oZSl9c3RhdGljIHhtbENvbm5lY3Rpb24oZSl7cmV0dXJuIG5ldyBYbWxDb25uZWN0aW9uKGUpfXN0YXRpYyB4c2RDb25uZWN0aW9uKGUpe3JldHVybiBuZXcgWHNkQ29ubmVjdGlvbihlKX19Y29uc3QgS249QW4uZGF0YXNldHMuaWQ7Y2xhc3MgZGF0YXNldHNfRGF0YSBleHRlbmRzIFhtbE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbiwiZGF0YSIsZSl9W3lzXSgpe3JldHVybiEwfX1jbGFzcyBEYXRhc2V0cyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbiwiZGF0YXNldHMiLCEwKTt0aGlzLmRhdGE9bnVsbDt0aGlzLlNpZ25hdHVyZT1udWxsfVtHc10oZSl7Y29uc3QgdD1lW1JzXTsoImRhdGEiPT09dCYmZVtrc109PT1Lbnx8IlNpZ25hdHVyZSI9PT10JiZlW2tzXT09PUFuLnNpZ25hdHVyZS5pZCkmJih0aGlzW3RdPWUpO3RoaXNbWXJdKGUpfX1jbGFzcyBEYXRhc2V0c05hbWVzcGFjZXtzdGF0aWNbJHNdKGUsdCl7aWYoRGF0YXNldHNOYW1lc3BhY2UuaGFzT3duUHJvcGVydHkoZSkpcmV0dXJuIERhdGFzZXRzTmFtZXNwYWNlW2VdKHQpfXN0YXRpYyBkYXRhc2V0cyhlKXtyZXR1cm4gbmV3IERhdGFzZXRzKGUpfXN0YXRpYyBkYXRhKGUpe3JldHVybiBuZXcgZGF0YXNldHNfRGF0YShlKX19Y29uc3QgVG49QW4ubG9jYWxlU2V0LmlkO2NsYXNzIENhbGVuZGFyU3ltYm9scyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihUbiwiY2FsZW5kYXJTeW1ib2xzIiwhMCk7dGhpcy5uYW1lPSJncmVnb3JpYW4iO3RoaXMuZGF5TmFtZXM9bmV3IFhGQU9iamVjdEFycmF5KDIpO3RoaXMuZXJhTmFtZXM9bnVsbDt0aGlzLm1lcmlkaWVtTmFtZXM9bnVsbDt0aGlzLm1vbnRoTmFtZXM9bmV3IFhGQU9iamVjdEFycmF5KDIpfX1jbGFzcyBDdXJyZW5jeVN5bWJvbCBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihUbiwiY3VycmVuY3lTeW1ib2wiKTt0aGlzLm5hbWU9Z2V0U3RyaW5nT3B0aW9uKGUubmFtZSxbInN5bWJvbCIsImlzb25hbWUiLCJkZWNpbWFsIl0pfX1jbGFzcyBDdXJyZW5jeVN5bWJvbHMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVG4sImN1cnJlbmN5U3ltYm9scyIsITApO3RoaXMuY3VycmVuY3lTeW1ib2w9bmV3IFhGQU9iamVjdEFycmF5KDMpfX1jbGFzcyBEYXRlUGF0dGVybiBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihUbiwiZGF0ZVBhdHRlcm4iKTt0aGlzLm5hbWU9Z2V0U3RyaW5nT3B0aW9uKGUubmFtZSxbImZ1bGwiLCJsb25nIiwibWVkIiwic2hvcnQiXSl9fWNsYXNzIERhdGVQYXR0ZXJucyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihUbiwiZGF0ZVBhdHRlcm5zIiwhMCk7dGhpcy5kYXRlUGF0dGVybj1uZXcgWEZBT2JqZWN0QXJyYXkoNCl9fWNsYXNzIERhdGVUaW1lU3ltYm9scyBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVG4sImRhdGVUaW1lU3ltYm9scyIpfX1jbGFzcyBEYXkgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVG4sImRheSIpfX1jbGFzcyBEYXlOYW1lcyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihUbiwiZGF5TmFtZXMiLCEwKTt0aGlzLmFiYnI9Z2V0SW50ZWdlcih7ZGF0YTplLmFiYnIsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLmRheT1uZXcgWEZBT2JqZWN0QXJyYXkoNyl9fWNsYXNzIEVyYSBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihUbiwiZXJhIil9fWNsYXNzIEVyYU5hbWVzIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFRuLCJlcmFOYW1lcyIsITApO3RoaXMuZXJhPW5ldyBYRkFPYmplY3RBcnJheSgyKX19Y2xhc3MgbG9jYWxlX3NldF9Mb2NhbGUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVG4sImxvY2FsZSIsITApO3RoaXMuZGVzYz1lLmRlc2N8fCIiO3RoaXMubmFtZT0iaXNvbmFtZSI7dGhpcy5jYWxlbmRhclN5bWJvbHM9bnVsbDt0aGlzLmN1cnJlbmN5U3ltYm9scz1udWxsO3RoaXMuZGF0ZVBhdHRlcm5zPW51bGw7dGhpcy5kYXRlVGltZVN5bWJvbHM9bnVsbDt0aGlzLm51bWJlclBhdHRlcm5zPW51bGw7dGhpcy5udW1iZXJTeW1ib2xzPW51bGw7dGhpcy50aW1lUGF0dGVybnM9bnVsbDt0aGlzLnR5cGVGYWNlcz1udWxsfX1jbGFzcyBsb2NhbGVfc2V0X0xvY2FsZVNldCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihUbiwibG9jYWxlU2V0IiwhMCk7dGhpcy5sb2NhbGU9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBNZXJpZGllbSBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihUbiwibWVyaWRpZW0iKX19Y2xhc3MgTWVyaWRpZW1OYW1lcyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihUbiwibWVyaWRpZW1OYW1lcyIsITApO3RoaXMubWVyaWRpZW09bmV3IFhGQU9iamVjdEFycmF5KDIpfX1jbGFzcyBNb250aCBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihUbiwibW9udGgiKX19Y2xhc3MgTW9udGhOYW1lcyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihUbiwibW9udGhOYW1lcyIsITApO3RoaXMuYWJicj1nZXRJbnRlZ2VyKHtkYXRhOmUuYWJicixkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTplPT4xPT09ZX0pO3RoaXMubW9udGg9bmV3IFhGQU9iamVjdEFycmF5KDEyKX19Y2xhc3MgTnVtYmVyUGF0dGVybiBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihUbiwibnVtYmVyUGF0dGVybiIpO3RoaXMubmFtZT1nZXRTdHJpbmdPcHRpb24oZS5uYW1lLFsiZnVsbCIsImxvbmciLCJtZWQiLCJzaG9ydCJdKX19Y2xhc3MgTnVtYmVyUGF0dGVybnMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVG4sIm51bWJlclBhdHRlcm5zIiwhMCk7dGhpcy5udW1iZXJQYXR0ZXJuPW5ldyBYRkFPYmplY3RBcnJheSg0KX19Y2xhc3MgTnVtYmVyU3ltYm9sIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFRuLCJudW1iZXJTeW1ib2wiKTt0aGlzLm5hbWU9Z2V0U3RyaW5nT3B0aW9uKGUubmFtZSxbImRlY2ltYWwiLCJncm91cGluZyIsInBlcmNlbnQiLCJtaW51cyIsInplcm8iXSl9fWNsYXNzIE51bWJlclN5bWJvbHMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVG4sIm51bWJlclN5bWJvbHMiLCEwKTt0aGlzLm51bWJlclN5bWJvbD1uZXcgWEZBT2JqZWN0QXJyYXkoNSl9fWNsYXNzIFRpbWVQYXR0ZXJuIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFRuLCJ0aW1lUGF0dGVybiIpO3RoaXMubmFtZT1nZXRTdHJpbmdPcHRpb24oZS5uYW1lLFsiZnVsbCIsImxvbmciLCJtZWQiLCJzaG9ydCJdKX19Y2xhc3MgVGltZVBhdHRlcm5zIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFRuLCJ0aW1lUGF0dGVybnMiLCEwKTt0aGlzLnRpbWVQYXR0ZXJuPW5ldyBYRkFPYmplY3RBcnJheSg0KX19Y2xhc3MgVHlwZUZhY2UgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVG4sInR5cGVGYWNlIiwhMCk7dGhpcy5uYW1lPSIifGUubmFtZX19Y2xhc3MgVHlwZUZhY2VzIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFRuLCJ0eXBlRmFjZXMiLCEwKTt0aGlzLnR5cGVGYWNlPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgTG9jYWxlU2V0TmFtZXNwYWNle3N0YXRpY1skc10oZSx0KXtpZihMb2NhbGVTZXROYW1lc3BhY2UuaGFzT3duUHJvcGVydHkoZSkpcmV0dXJuIExvY2FsZVNldE5hbWVzcGFjZVtlXSh0KX1zdGF0aWMgY2FsZW5kYXJTeW1ib2xzKGUpe3JldHVybiBuZXcgQ2FsZW5kYXJTeW1ib2xzKGUpfXN0YXRpYyBjdXJyZW5jeVN5bWJvbChlKXtyZXR1cm4gbmV3IEN1cnJlbmN5U3ltYm9sKGUpfXN0YXRpYyBjdXJyZW5jeVN5bWJvbHMoZSl7cmV0dXJuIG5ldyBDdXJyZW5jeVN5bWJvbHMoZSl9c3RhdGljIGRhdGVQYXR0ZXJuKGUpe3JldHVybiBuZXcgRGF0ZVBhdHRlcm4oZSl9c3RhdGljIGRhdGVQYXR0ZXJucyhlKXtyZXR1cm4gbmV3IERhdGVQYXR0ZXJucyhlKX1zdGF0aWMgZGF0ZVRpbWVTeW1ib2xzKGUpe3JldHVybiBuZXcgRGF0ZVRpbWVTeW1ib2xzKGUpfXN0YXRpYyBkYXkoZSl7cmV0dXJuIG5ldyBEYXkoZSl9c3RhdGljIGRheU5hbWVzKGUpe3JldHVybiBuZXcgRGF5TmFtZXMoZSl9c3RhdGljIGVyYShlKXtyZXR1cm4gbmV3IEVyYShlKX1zdGF0aWMgZXJhTmFtZXMoZSl7cmV0dXJuIG5ldyBFcmFOYW1lcyhlKX1zdGF0aWMgbG9jYWxlKGUpe3JldHVybiBuZXcgbG9jYWxlX3NldF9Mb2NhbGUoZSl9c3RhdGljIGxvY2FsZVNldChlKXtyZXR1cm4gbmV3IGxvY2FsZV9zZXRfTG9jYWxlU2V0KGUpfXN0YXRpYyBtZXJpZGllbShlKXtyZXR1cm4gbmV3IE1lcmlkaWVtKGUpfXN0YXRpYyBtZXJpZGllbU5hbWVzKGUpe3JldHVybiBuZXcgTWVyaWRpZW1OYW1lcyhlKX1zdGF0aWMgbW9udGgoZSl7cmV0dXJuIG5ldyBNb250aChlKX1zdGF0aWMgbW9udGhOYW1lcyhlKXtyZXR1cm4gbmV3IE1vbnRoTmFtZXMoZSl9c3RhdGljIG51bWJlclBhdHRlcm4oZSl7cmV0dXJuIG5ldyBOdW1iZXJQYXR0ZXJuKGUpfXN0YXRpYyBudW1iZXJQYXR0ZXJucyhlKXtyZXR1cm4gbmV3IE51bWJlclBhdHRlcm5zKGUpfXN0YXRpYyBudW1iZXJTeW1ib2woZSl7cmV0dXJuIG5ldyBOdW1iZXJTeW1ib2woZSl9c3RhdGljIG51bWJlclN5bWJvbHMoZSl7cmV0dXJuIG5ldyBOdW1iZXJTeW1ib2xzKGUpfXN0YXRpYyB0aW1lUGF0dGVybihlKXtyZXR1cm4gbmV3IFRpbWVQYXR0ZXJuKGUpfXN0YXRpYyB0aW1lUGF0dGVybnMoZSl7cmV0dXJuIG5ldyBUaW1lUGF0dGVybnMoZSl9c3RhdGljIHR5cGVGYWNlKGUpe3JldHVybiBuZXcgVHlwZUZhY2UoZSl9c3RhdGljIHR5cGVGYWNlcyhlKXtyZXR1cm4gbmV3IFR5cGVGYWNlcyhlKX19Y29uc3QgcW49QW4uc2lnbmF0dXJlLmlkO2NsYXNzIHNpZ25hdHVyZV9TaWduYXR1cmUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIocW4sInNpZ25hdHVyZSIsITApfX1jbGFzcyBTaWduYXR1cmVOYW1lc3BhY2V7c3RhdGljWyRzXShlLHQpe2lmKFNpZ25hdHVyZU5hbWVzcGFjZS5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4gU2lnbmF0dXJlTmFtZXNwYWNlW2VdKHQpfXN0YXRpYyBzaWduYXR1cmUoZSl7cmV0dXJuIG5ldyBzaWduYXR1cmVfU2lnbmF0dXJlKGUpfX1jb25zdCBPbj1Bbi5zdHlsZXNoZWV0LmlkO2NsYXNzIFN0eWxlc2hlZXQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoT24sInN0eWxlc2hlZXQiLCEwKX19Y2xhc3MgU3R5bGVzaGVldE5hbWVzcGFjZXtzdGF0aWNbJHNdKGUsdCl7aWYoU3R5bGVzaGVldE5hbWVzcGFjZS5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4gU3R5bGVzaGVldE5hbWVzcGFjZVtlXSh0KX1zdGF0aWMgc3R5bGVzaGVldChlKXtyZXR1cm4gbmV3IFN0eWxlc2hlZXQoZSl9fWNvbnN0IFBuPUFuLnhkcC5pZDtjbGFzcyB4ZHBfWGRwIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFBuLCJ4ZHAiLCEwKTt0aGlzLnV1aWQ9ZS51dWlkfHwiIjt0aGlzLnRpbWVTdGFtcD1lLnRpbWVTdGFtcHx8IiI7dGhpcy5jb25maWc9bnVsbDt0aGlzLmNvbm5lY3Rpb25TZXQ9bnVsbDt0aGlzLmRhdGFzZXRzPW51bGw7dGhpcy5sb2NhbGVTZXQ9bnVsbDt0aGlzLnN0eWxlc2hlZXQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMudGVtcGxhdGU9bnVsbH1bTXNdKGUpe2NvbnN0IHQ9QW5bZVtSc11dO3JldHVybiB0JiZlW2tzXT09PXQuaWR9fWNsYXNzIFhkcE5hbWVzcGFjZXtzdGF0aWNbJHNdKGUsdCl7aWYoWGRwTmFtZXNwYWNlLmhhc093blByb3BlcnR5KGUpKXJldHVybiBYZHBOYW1lc3BhY2VbZV0odCl9c3RhdGljIHhkcChlKXtyZXR1cm4gbmV3IHhkcF9YZHAoZSl9fWNvbnN0IFduPUFuLnhodG1sLmlkLGpuPVN5bWJvbCgpLFhuPW5ldyBTZXQoWyJjb2xvciIsImZvbnQiLCJmb250LWZhbWlseSIsImZvbnQtc2l6ZSIsImZvbnQtc3RyZXRjaCIsImZvbnQtc3R5bGUiLCJmb250LXdlaWdodCIsIm1hcmdpbiIsIm1hcmdpbi1ib3R0b20iLCJtYXJnaW4tbGVmdCIsIm1hcmdpbi1yaWdodCIsIm1hcmdpbi10b3AiLCJsZXR0ZXItc3BhY2luZyIsImxpbmUtaGVpZ2h0Iiwib3JwaGFucyIsInBhZ2UtYnJlYWstYWZ0ZXIiLCJwYWdlLWJyZWFrLWJlZm9yZSIsInBhZ2UtYnJlYWstaW5zaWRlIiwidGFiLWludGVydmFsIiwidGFiLXN0b3AiLCJ0ZXh0LWFsaWduIiwidGV4dC1kZWNvcmF0aW9uIiwidGV4dC1pbmRlbnQiLCJ2ZXJ0aWNhbC1hbGlnbiIsIndpZG93cyIsImtlcm5pbmctbW9kZSIsInhmYS1mb250LWhvcml6b250YWwtc2NhbGUiLCJ4ZmEtZm9udC12ZXJ0aWNhbC1zY2FsZSIsInhmYS1zcGFjZXJ1biIsInhmYS10YWItc3RvcHMiXSksVm49bmV3IE1hcChbWyJwYWdlLWJyZWFrLWFmdGVyIiwiYnJlYWtBZnRlciJdLFsicGFnZS1icmVhay1iZWZvcmUiLCJicmVha0JlZm9yZSJdLFsicGFnZS1icmVhay1pbnNpZGUiLCJicmVha0luc2lkZSJdLFsia2VybmluZy1tb2RlIixlPT4ibm9uZSI9PT1lPyJub25lIjoibm9ybWFsIl0sWyJ4ZmEtZm9udC1ob3Jpem9udGFsLXNjYWxlIixlPT5gc2NhbGVYKCR7TWF0aC5tYXgoMCxNYXRoLm1pbihwYXJzZUludChlKS8xMDApKS50b0ZpeGVkKDIpfSlgXSxbInhmYS1mb250LXZlcnRpY2FsLXNjYWxlIixlPT5gc2NhbGVZKCR7TWF0aC5tYXgoMCxNYXRoLm1pbihwYXJzZUludChlKS8xMDApKS50b0ZpeGVkKDIpfSlgXSxbInhmYS1zcGFjZXJ1biIsIiJdLFsieGZhLXRhYi1zdG9wcyIsIiJdLFsiZm9udC1zaXplIiwoZSx0KT0+bWVhc3VyZVRvU3RyaW5nKC45OSooZT10LmZvbnRTaXplPU1hdGguYWJzKGdldE1lYXN1cmVtZW50KGUpKSkpXSxbImxldHRlci1zcGFjaW5nIixlPT5tZWFzdXJlVG9TdHJpbmcoZ2V0TWVhc3VyZW1lbnQoZSkpXSxbImxpbmUtaGVpZ2h0IixlPT5tZWFzdXJlVG9TdHJpbmcoZ2V0TWVhc3VyZW1lbnQoZSkpXSxbIm1hcmdpbiIsZT0+bWVhc3VyZVRvU3RyaW5nKGdldE1lYXN1cmVtZW50KGUpKV0sWyJtYXJnaW4tYm90dG9tIixlPT5tZWFzdXJlVG9TdHJpbmcoZ2V0TWVhc3VyZW1lbnQoZSkpXSxbIm1hcmdpbi1sZWZ0IixlPT5tZWFzdXJlVG9TdHJpbmcoZ2V0TWVhc3VyZW1lbnQoZSkpXSxbIm1hcmdpbi1yaWdodCIsZT0+bWVhc3VyZVRvU3RyaW5nKGdldE1lYXN1cmVtZW50KGUpKV0sWyJtYXJnaW4tdG9wIixlPT5tZWFzdXJlVG9TdHJpbmcoZ2V0TWVhc3VyZW1lbnQoZSkpXSxbInRleHQtaW5kZW50IixlPT5tZWFzdXJlVG9TdHJpbmcoZ2V0TWVhc3VyZW1lbnQoZSkpXSxbImZvbnQtZmFtaWx5IixlPT5lXSxbInZlcnRpY2FsLWFsaWduIixlPT5tZWFzdXJlVG9TdHJpbmcoZ2V0TWVhc3VyZW1lbnQoZSkpXV0pLFpuPS9ccysvZyxfbj0vW1xyXG5dKy9nLHpuPS9cclxuPy9nO2Z1bmN0aW9uIG1hcFN0eWxlKGUsdCxpKXtjb25zdCBhPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoIWUpcmV0dXJuIGE7Y29uc3Qgcj1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcihjb25zdFt0LGldb2YgZS5zcGxpdCgiOyIpLm1hcCgoZT0+ZS5zcGxpdCgiOiIsMikpKSl7Y29uc3QgZT1Wbi5nZXQodCk7aWYoIiI9PT1lKWNvbnRpbnVlO2xldCBzPWk7ZSYmKHM9InN0cmluZyI9PXR5cGVvZiBlP2U6ZShpLHIpKTt0LmVuZHNXaXRoKCJzY2FsZSIpP2EudHJhbnNmb3JtPWEudHJhbnNmb3JtP2Ake2FbdF19ICR7c31gOnM6YVt0LnJlcGxhY2VBbGwoLy0oW2EtekEtWl0pL2csKChlLHQpPT50LnRvVXBwZXJDYXNlKCkpKV09c31hLmZvbnRGYW1pbHkmJnNldEZvbnRGYW1pbHkoe3R5cGVmYWNlOmEuZm9udEZhbWlseSx3ZWlnaHQ6YS5mb250V2VpZ2h0fHwibm9ybWFsIixwb3N0dXJlOmEuZm9udFN0eWxlfHwibm9ybWFsIixzaXplOnIuZm9udFNpemV8fDB9LHQsdFtDc10uZm9udEZpbmRlcixhKTtpZihpJiZhLnZlcnRpY2FsQWxpZ24mJiIwcHgiIT09YS52ZXJ0aWNhbEFsaWduJiZhLmZvbnRTaXplKXtjb25zdCBlPS41ODMsdD0uMzMzLGk9Z2V0TWVhc3VyZW1lbnQoYS5mb250U2l6ZSk7YS5mb250U2l6ZT1tZWFzdXJlVG9TdHJpbmcoaSplKTthLnZlcnRpY2FsQWxpZ249bWVhc3VyZVRvU3RyaW5nKE1hdGguc2lnbihnZXRNZWFzdXJlbWVudChhLnZlcnRpY2FsQWxpZ24pKSppKnQpfWkmJmEuZm9udFNpemUmJihhLmZvbnRTaXplPWBjYWxjKCR7YS5mb250U2l6ZX0gKiB2YXIoLS1zY2FsZS1mYWN0b3IpKWApO2ZpeFRleHRJbmRlbnQoYSk7cmV0dXJuIGF9Y29uc3QgJG49bmV3IFNldChbImJvZHkiLCJodG1sIl0pO2NsYXNzIFhodG1sT2JqZWN0IGV4dGVuZHMgWG1sT2JqZWN0e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoV24sdCk7dGhpc1tqbl09ITE7dGhpcy5zdHlsZT1lLnN0eWxlfHwiIn1bVHJdKGUpe3N1cGVyW1RyXShlKTt0aGlzLnN0eWxlPWZ1bmN0aW9uIGNoZWNrU3R5bGUoZSl7cmV0dXJuIGUuc3R5bGU/ZS5zdHlsZS50cmltKCkuc3BsaXQoL1xzKjtccyovKS5maWx0ZXIoKGU9PiEhZSkpLm1hcCgoZT0+ZS5zcGxpdCgvXHMqOlxzKi8sMikpKS5maWx0ZXIoKChbdCxpXSk9PnsiZm9udC1mYW1pbHkiPT09dCYmZVtDc10udXNlZFR5cGVmYWNlcy5hZGQoaSk7cmV0dXJuIFhuLmhhcyh0KX0pKS5tYXAoKGU9PmUuam9pbigiOiIpKSkuam9pbigiOyIpOiIifSh0aGlzKX1bSnJdKCl7cmV0dXJuISRuLmhhcyh0aGlzW1JzXSl9W1VzXShlLHQ9ITEpe2lmKHQpdGhpc1tqbl09ITA7ZWxzZXtlPWUucmVwbGFjZUFsbChfbiwiIik7dGhpcy5zdHlsZS5pbmNsdWRlcygieGZhLXNwYWNlcnVuOnllcyIpfHwoZT1lLnJlcGxhY2VBbGwoWm4sIiAiKSl9ZSYmKHRoaXNbanJdKz1lKX1beHNdKGUsdD0hMCl7Y29uc3QgaT1PYmplY3QuY3JlYXRlKG51bGwpLGE9e3RvcDpOYU4sYm90dG9tOk5hTixsZWZ0Ok5hTixyaWdodDpOYU59O2xldCByPW51bGw7Zm9yKGNvbnN0W2UsdF1vZiB0aGlzLnN0eWxlLnNwbGl0KCI7IikubWFwKChlPT5lLnNwbGl0KCI6IiwyKSkpKXN3aXRjaChlKXtjYXNlImZvbnQtZmFtaWx5IjppLnR5cGVmYWNlPXN0cmlwUXVvdGVzKHQpO2JyZWFrO2Nhc2UiZm9udC1zaXplIjppLnNpemU9Z2V0TWVhc3VyZW1lbnQodCk7YnJlYWs7Y2FzZSJmb250LXdlaWdodCI6aS53ZWlnaHQ9dDticmVhaztjYXNlImZvbnQtc3R5bGUiOmkucG9zdHVyZT10O2JyZWFrO2Nhc2UibGV0dGVyLXNwYWNpbmciOmkubGV0dGVyU3BhY2luZz1nZXRNZWFzdXJlbWVudCh0KTticmVhaztjYXNlIm1hcmdpbiI6Y29uc3QgZT10LnNwbGl0KC8gXHQvKS5tYXAoKGU9PmdldE1lYXN1cmVtZW50KGUpKSk7c3dpdGNoKGUubGVuZ3RoKXtjYXNlIDE6YS50b3A9YS5ib3R0b209YS5sZWZ0PWEucmlnaHQ9ZVswXTticmVhaztjYXNlIDI6YS50b3A9YS5ib3R0b209ZVswXTthLmxlZnQ9YS5yaWdodD1lWzFdO2JyZWFrO2Nhc2UgMzphLnRvcD1lWzBdO2EuYm90dG9tPWVbMl07YS5sZWZ0PWEucmlnaHQ9ZVsxXTticmVhaztjYXNlIDQ6YS50b3A9ZVswXTthLmxlZnQ9ZVsxXTthLmJvdHRvbT1lWzJdO2EucmlnaHQ9ZVszXX1icmVhaztjYXNlIm1hcmdpbi10b3AiOmEudG9wPWdldE1lYXN1cmVtZW50KHQpO2JyZWFrO2Nhc2UibWFyZ2luLWJvdHRvbSI6YS5ib3R0b209Z2V0TWVhc3VyZW1lbnQodCk7YnJlYWs7Y2FzZSJtYXJnaW4tbGVmdCI6YS5sZWZ0PWdldE1lYXN1cmVtZW50KHQpO2JyZWFrO2Nhc2UibWFyZ2luLXJpZ2h0IjphLnJpZ2h0PWdldE1lYXN1cmVtZW50KHQpO2JyZWFrO2Nhc2UibGluZS1oZWlnaHQiOnI9Z2V0TWVhc3VyZW1lbnQodCl9ZS5wdXNoRGF0YShpLGEscik7aWYodGhpc1tqcl0pZS5hZGRTdHJpbmcodGhpc1tqcl0pO2Vsc2UgZm9yKGNvbnN0IHQgb2YgdGhpc1tvc10oKSkiI3RleHQiIT09dFtSc10/dFt4c10oZSk6ZS5hZGRTdHJpbmcodFtqcl0pO3QmJmUucG9wRm9udCgpfVtWc10oZSl7Y29uc3QgdD1bXTt0aGlzW1pyXT17Y2hpbGRyZW46dH07dGhpc1tLcl0oe30pO2lmKDA9PT10Lmxlbmd0aCYmIXRoaXNbanJdKXJldHVybiBIVE1MUmVzdWx0LkVNUFRZO2xldCBpO2k9dGhpc1tqbl0/dGhpc1tqcl0/dGhpc1tqcl0ucmVwbGFjZUFsbCh6biwiXG4iKTp2b2lkIDA6dGhpc1tqcl18fHZvaWQgMDtyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOnRoaXNbUnNdLGF0dHJpYnV0ZXM6e2hyZWY6dGhpcy5ocmVmLHN0eWxlOm1hcFN0eWxlKHRoaXMuc3R5bGUsdGhpcyx0aGlzW2puXSl9LGNoaWxkcmVuOnQsdmFsdWU6aX0pfX1jbGFzcyBBIGV4dGVuZHMgWGh0bWxPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwiYSIpO3RoaXMuaHJlZj1maXhVUkwoZS5ocmVmKXx8IiJ9fWNsYXNzIEIgZXh0ZW5kcyBYaHRtbE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlLCJiIil9W3hzXShlKXtlLnB1c2hGb250KHt3ZWlnaHQ6ImJvbGQifSk7c3VwZXJbeHNdKGUpO2UucG9wRm9udCgpfX1jbGFzcyBCb2R5IGV4dGVuZHMgWGh0bWxPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwiYm9keSIpfVtWc10oZSl7Y29uc3QgdD1zdXBlcltWc10oZSkse2h0bWw6aX09dDtpZighaSlyZXR1cm4gSFRNTFJlc3VsdC5FTVBUWTtpLm5hbWU9ImRpdiI7aS5hdHRyaWJ1dGVzLmNsYXNzPVsieGZhUmljaCJdO3JldHVybiB0fX1jbGFzcyBCciBleHRlbmRzIFhodG1sT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsImJyIil9W2pzXSgpe3JldHVybiJcbiJ9W3hzXShlKXtlLmFkZFN0cmluZygiXG4iKX1bVnNdKGUpe3JldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3Moe25hbWU6ImJyIn0pfX1jbGFzcyBIdG1sIGV4dGVuZHMgWGh0bWxPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwiaHRtbCIpfVtWc10oZSl7Y29uc3QgdD1bXTt0aGlzW1pyXT17Y2hpbGRyZW46dH07dGhpc1tLcl0oe30pO2lmKDA9PT10Lmxlbmd0aClyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6e2NsYXNzOlsieGZhUmljaCJdLHN0eWxlOnt9fSx2YWx1ZTp0aGlzW2pyXXx8IiJ9KTtpZigxPT09dC5sZW5ndGgpe2NvbnN0IGU9dFswXTtpZihlLmF0dHJpYnV0ZXM/LmNsYXNzLmluY2x1ZGVzKCJ4ZmFSaWNoIikpcmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhlKX1yZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6e2NsYXNzOlsieGZhUmljaCJdLHN0eWxlOnt9fSxjaGlsZHJlbjp0fSl9fWNsYXNzIEkgZXh0ZW5kcyBYaHRtbE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlLCJpIil9W3hzXShlKXtlLnB1c2hGb250KHtwb3N0dXJlOiJpdGFsaWMifSk7c3VwZXJbeHNdKGUpO2UucG9wRm9udCgpfX1jbGFzcyBMaSBleHRlbmRzIFhodG1sT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsImxpIil9fWNsYXNzIE9sIGV4dGVuZHMgWGh0bWxPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwib2wiKX19Y2xhc3MgUCBleHRlbmRzIFhodG1sT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsInAiKX1beHNdKGUpe3N1cGVyW3hzXShlLCExKTtlLmFkZFN0cmluZygiXG4iKTtlLmFkZFBhcmEoKTtlLnBvcEZvbnQoKX1banNdKCl7cmV0dXJuIHRoaXNbbHNdKClbb3NdKCkuYXQoLTEpPT09dGhpcz9zdXBlcltqc10oKTpzdXBlcltqc10oKSsiXG4ifX1jbGFzcyBTcGFuIGV4dGVuZHMgWGh0bWxPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwic3BhbiIpfX1jbGFzcyBTdWIgZXh0ZW5kcyBYaHRtbE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlLCJzdWIiKX19Y2xhc3MgU3VwIGV4dGVuZHMgWGh0bWxPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwic3VwIil9fWNsYXNzIFVsIGV4dGVuZHMgWGh0bWxPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwidWwiKX19Y2xhc3MgWGh0bWxOYW1lc3BhY2V7c3RhdGljWyRzXShlLHQpe2lmKFhodG1sTmFtZXNwYWNlLmhhc093blByb3BlcnR5KGUpKXJldHVybiBYaHRtbE5hbWVzcGFjZVtlXSh0KX1zdGF0aWMgYShlKXtyZXR1cm4gbmV3IEEoZSl9c3RhdGljIGIoZSl7cmV0dXJuIG5ldyBCKGUpfXN0YXRpYyBib2R5KGUpe3JldHVybiBuZXcgQm9keShlKX1zdGF0aWMgYnIoZSl7cmV0dXJuIG5ldyBCcihlKX1zdGF0aWMgaHRtbChlKXtyZXR1cm4gbmV3IEh0bWwoZSl9c3RhdGljIGkoZSl7cmV0dXJuIG5ldyBJKGUpfXN0YXRpYyBsaShlKXtyZXR1cm4gbmV3IExpKGUpfXN0YXRpYyBvbChlKXtyZXR1cm4gbmV3IE9sKGUpfXN0YXRpYyBwKGUpe3JldHVybiBuZXcgUChlKX1zdGF0aWMgc3BhbihlKXtyZXR1cm4gbmV3IFNwYW4oZSl9c3RhdGljIHN1YihlKXtyZXR1cm4gbmV3IFN1YihlKX1zdGF0aWMgc3VwKGUpe3JldHVybiBuZXcgU3VwKGUpfXN0YXRpYyB1bChlKXtyZXR1cm4gbmV3IFVsKGUpfX1jb25zdCBBbz17Y29uZmlnOkNvbmZpZ05hbWVzcGFjZSxjb25uZWN0aW9uOkNvbm5lY3Rpb25TZXROYW1lc3BhY2UsZGF0YXNldHM6RGF0YXNldHNOYW1lc3BhY2UsbG9jYWxlU2V0OkxvY2FsZVNldE5hbWVzcGFjZSxzaWduYXR1cmU6U2lnbmF0dXJlTmFtZXNwYWNlLHN0eWxlc2hlZXQ6U3R5bGVzaGVldE5hbWVzcGFjZSx0ZW1wbGF0ZTpUZW1wbGF0ZU5hbWVzcGFjZSx4ZHA6WGRwTmFtZXNwYWNlLHhodG1sOlhodG1sTmFtZXNwYWNlfTtjbGFzcyBVbmtub3duTmFtZXNwYWNle2NvbnN0cnVjdG9yKGUpe3RoaXMubmFtZXNwYWNlSWQ9ZX1bJHNdKGUsdCl7cmV0dXJuIG5ldyBYbWxPYmplY3QodGhpcy5uYW1lc3BhY2VJZCxlLHQpfX1jbGFzcyBSb290IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKC0xLCJyb290IixPYmplY3QuY3JlYXRlKG51bGwpKTt0aGlzLmVsZW1lbnQ9bnVsbDt0aGlzW1FzXT1lfVtHc10oZSl7dGhpcy5lbGVtZW50PWU7cmV0dXJuITB9W19yXSgpe3N1cGVyW19yXSgpO2lmKHRoaXMuZWxlbWVudC50ZW1wbGF0ZSBpbnN0YW5jZW9mIFRlbXBsYXRlKXt0aGlzW1FzXS5zZXQodnMsdGhpcy5lbGVtZW50KTt0aGlzLmVsZW1lbnQudGVtcGxhdGVbWXNdKHRoaXNbUXNdKTt0aGlzLmVsZW1lbnQudGVtcGxhdGVbUXNdPXRoaXNbUXNdfX19Y2xhc3MgRW1wdHkgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoKXtzdXBlcigtMSwiIixPYmplY3QuY3JlYXRlKG51bGwpKX1bR3NdKGUpe3JldHVybiExfX1jbGFzcyBCdWlsZGVye2NvbnN0cnVjdG9yKGU9bnVsbCl7dGhpcy5fbmFtZXNwYWNlU3RhY2s9W107dGhpcy5fbnNBZ25vc3RpY0xldmVsPTA7dGhpcy5fbmFtZXNwYWNlUHJlZml4ZXM9bmV3IE1hcDt0aGlzLl9uYW1lc3BhY2VzPW5ldyBNYXA7dGhpcy5fbmV4dE5zSWQ9TWF0aC5tYXgoLi4uT2JqZWN0LnZhbHVlcyhBbikubWFwKCgoe2lkOmV9KT0+ZSkpKTt0aGlzLl9jdXJyZW50TmFtZXNwYWNlPWV8fG5ldyBVbmtub3duTmFtZXNwYWNlKCsrdGhpcy5fbmV4dE5zSWQpfWJ1aWxkUm9vdChlKXtyZXR1cm4gbmV3IFJvb3QoZSl9YnVpbGQoe25zUHJlZml4OmUsbmFtZTp0LGF0dHJpYnV0ZXM6aSxuYW1lc3BhY2U6YSxwcmVmaXhlczpyfSl7Y29uc3Qgcz1udWxsIT09YTtpZihzKXt0aGlzLl9uYW1lc3BhY2VTdGFjay5wdXNoKHRoaXMuX2N1cnJlbnROYW1lc3BhY2UpO3RoaXMuX2N1cnJlbnROYW1lc3BhY2U9dGhpcy5fc2VhcmNoTmFtZXNwYWNlKGEpfXImJnRoaXMuX2FkZE5hbWVzcGFjZVByZWZpeChyKTtpZihpLmhhc093blByb3BlcnR5KE5zKSl7Y29uc3QgZT1Bby5kYXRhc2V0cyx0PWlbTnNdO2xldCBhPW51bGw7Zm9yKGNvbnN0W2kscl1vZiBPYmplY3QuZW50cmllcyh0KSl7aWYodGhpcy5fZ2V0TmFtZXNwYWNlVG9Vc2UoaSk9PT1lKXthPXt4ZmE6cn07YnJlYWt9fWE/aVtOc109YTpkZWxldGUgaVtOc119Y29uc3Qgbj10aGlzLl9nZXROYW1lc3BhY2VUb1VzZShlKSxvPW4/Llskc10odCxpKXx8bmV3IEVtcHR5O29beXNdKCkmJnRoaXMuX25zQWdub3N0aWNMZXZlbCsrOyhzfHxyfHxvW3lzXSgpKSYmKG9bT3JdPXtoYXNOYW1lc3BhY2U6cyxwcmVmaXhlczpyLG5zQWdub3N0aWM6b1t5c10oKX0pO3JldHVybiBvfWlzTnNBZ25vc3RpYygpe3JldHVybiB0aGlzLl9uc0Fnbm9zdGljTGV2ZWw+MH1fc2VhcmNoTmFtZXNwYWNlKGUpe2xldCB0PXRoaXMuX25hbWVzcGFjZXMuZ2V0KGUpO2lmKHQpcmV0dXJuIHQ7Zm9yKGNvbnN0W2kse2NoZWNrOmF9XW9mIE9iamVjdC5lbnRyaWVzKEFuKSlpZihhKGUpKXt0PUFvW2ldO2lmKHQpe3RoaXMuX25hbWVzcGFjZXMuc2V0KGUsdCk7cmV0dXJuIHR9YnJlYWt9dD1uZXcgVW5rbm93bk5hbWVzcGFjZSgrK3RoaXMuX25leHROc0lkKTt0aGlzLl9uYW1lc3BhY2VzLnNldChlLHQpO3JldHVybiB0fV9hZGROYW1lc3BhY2VQcmVmaXgoZSl7Zm9yKGNvbnN0e3ByZWZpeDp0LHZhbHVlOml9b2YgZSl7Y29uc3QgZT10aGlzLl9zZWFyY2hOYW1lc3BhY2UoaSk7bGV0IGE9dGhpcy5fbmFtZXNwYWNlUHJlZml4ZXMuZ2V0KHQpO2lmKCFhKXthPVtdO3RoaXMuX25hbWVzcGFjZVByZWZpeGVzLnNldCh0LGEpfWEucHVzaChlKX19X2dldE5hbWVzcGFjZVRvVXNlKGUpe2lmKCFlKXJldHVybiB0aGlzLl9jdXJyZW50TmFtZXNwYWNlO2NvbnN0IHQ9dGhpcy5fbmFtZXNwYWNlUHJlZml4ZXMuZ2V0KGUpO2lmKHQ/Lmxlbmd0aD4wKXJldHVybiB0LmF0KC0xKTt3YXJuKGBVbmtub3duIG5hbWVzcGFjZSBwcmVmaXg6ICR7ZX0uYCk7cmV0dXJuIG51bGx9Y2xlYW4oZSl7Y29uc3R7aGFzTmFtZXNwYWNlOnQscHJlZml4ZXM6aSxuc0Fnbm9zdGljOmF9PWU7dCYmKHRoaXMuX2N1cnJlbnROYW1lc3BhY2U9dGhpcy5fbmFtZXNwYWNlU3RhY2sucG9wKCkpO2kmJmkuZm9yRWFjaCgoKHtwcmVmaXg6ZX0pPT57dGhpcy5fbmFtZXNwYWNlUHJlZml4ZXMuZ2V0KGUpLnBvcCgpfSkpO2EmJnRoaXMuX25zQWdub3N0aWNMZXZlbC0tfX1jbGFzcyBYRkFQYXJzZXIgZXh0ZW5kcyBYTUxQYXJzZXJCYXNle2NvbnN0cnVjdG9yKGU9bnVsbCx0PSExKXtzdXBlcigpO3RoaXMuX2J1aWxkZXI9bmV3IEJ1aWxkZXIoZSk7dGhpcy5fc3RhY2s9W107dGhpcy5fZ2xvYmFsRGF0YT17dXNlZFR5cGVmYWNlczpuZXcgU2V0fTt0aGlzLl9pZHM9bmV3IE1hcDt0aGlzLl9jdXJyZW50PXRoaXMuX2J1aWxkZXIuYnVpbGRSb290KHRoaXMuX2lkcyk7dGhpcy5fZXJyb3JDb2RlPURyO3RoaXMuX3doaXRlUmVnZXg9L15ccyskLzt0aGlzLl9uYnNwcz0vXHhhMCsvZzt0aGlzLl9yaWNoVGV4dD10fXBhcnNlKGUpe3RoaXMucGFyc2VYbWwoZSk7aWYodGhpcy5fZXJyb3JDb2RlPT09RHIpe3RoaXMuX2N1cnJlbnRbX3JdKCk7cmV0dXJuIHRoaXMuX2N1cnJlbnQuZWxlbWVudH19b25UZXh0KGUpe2U9ZS5yZXBsYWNlKHRoaXMuX25ic3BzLChlPT5lLnNsaWNlKDEpKyIgIikpO3RoaXMuX3JpY2hUZXh0fHx0aGlzLl9jdXJyZW50W0pyXSgpP3RoaXMuX2N1cnJlbnRbVXNdKGUsdGhpcy5fcmljaFRleHQpOnRoaXMuX3doaXRlUmVnZXgudGVzdChlKXx8dGhpcy5fY3VycmVudFtVc10oZS50cmltKCkpfW9uQ2RhdGEoZSl7dGhpcy5fY3VycmVudFtVc10oZSl9X21rQXR0cmlidXRlcyhlLHQpe2xldCBpPW51bGwsYT1udWxsO2NvbnN0IHI9T2JqZWN0LmNyZWF0ZSh7fSk7Zm9yKGNvbnN0e25hbWU6cyx2YWx1ZTpufW9mIGUpaWYoInhtbG5zIj09PXMpaT93YXJuKGBYRkEgLSBtdWx0aXBsZSBuYW1lc3BhY2UgZGVmaW5pdGlvbiBpbiA8JHt0fT5gKTppPW47ZWxzZSBpZihzLnN0YXJ0c1dpdGgoInhtbG5zOiIpKXtjb25zdCBlPXMuc3Vic3RyaW5nKDYpO2F8fChhPVtdKTthLnB1c2goe3ByZWZpeDplLHZhbHVlOm59KX1lbHNle2NvbnN0IGU9cy5pbmRleE9mKCI6Iik7aWYoLTE9PT1lKXJbc109bjtlbHNle2xldCB0PXJbTnNdO3R8fCh0PXJbTnNdPU9iamVjdC5jcmVhdGUobnVsbCkpO2NvbnN0W2ksYV09W3Muc2xpY2UoMCxlKSxzLnNsaWNlKGUrMSldOyh0W2ldfHw9T2JqZWN0LmNyZWF0ZShudWxsKSlbYV09bn19cmV0dXJuW2ksYSxyXX1fZ2V0TmFtZUFuZFByZWZpeChlLHQpe2NvbnN0IGk9ZS5pbmRleE9mKCI6Iik7cmV0dXJuLTE9PT1pP1tlLG51bGxdOltlLnN1YnN0cmluZyhpKzEpLHQ/IiI6ZS5zdWJzdHJpbmcoMCxpKV19b25CZWdpbkVsZW1lbnQoZSx0LGkpe2NvbnN0W2EscixzXT10aGlzLl9ta0F0dHJpYnV0ZXModCxlKSxbbixvXT10aGlzLl9nZXROYW1lQW5kUHJlZml4KGUsdGhpcy5fYnVpbGRlci5pc05zQWdub3N0aWMoKSksZz10aGlzLl9idWlsZGVyLmJ1aWxkKHtuc1ByZWZpeDpvLG5hbWU6bixhdHRyaWJ1dGVzOnMsbmFtZXNwYWNlOmEscHJlZml4ZXM6cn0pO2dbQ3NdPXRoaXMuX2dsb2JhbERhdGE7aWYoaSl7Z1tfcl0oKTt0aGlzLl9jdXJyZW50W0dzXShnKSYmZ1tUc10odGhpcy5faWRzKTtnW1RyXSh0aGlzLl9idWlsZGVyKX1lbHNle3RoaXMuX3N0YWNrLnB1c2godGhpcy5fY3VycmVudCk7dGhpcy5fY3VycmVudD1nfX1vbkVuZEVsZW1lbnQoZSl7Y29uc3QgdD10aGlzLl9jdXJyZW50O2lmKHRbZHNdKCkmJiJzdHJpbmciPT10eXBlb2YgdFtqcl0pe2NvbnN0IGU9bmV3IFhGQVBhcnNlcjtlLl9nbG9iYWxEYXRhPXRoaXMuX2dsb2JhbERhdGE7Y29uc3QgaT1lLnBhcnNlKHRbanJdKTt0W2pyXT1udWxsO3RbR3NdKGkpfXRbX3JdKCk7dGhpcy5fY3VycmVudD10aGlzLl9zdGFjay5wb3AoKTt0aGlzLl9jdXJyZW50W0dzXSh0KSYmdFtUc10odGhpcy5faWRzKTt0W1RyXSh0aGlzLl9idWlsZGVyKX1vbkVycm9yKGUpe3RoaXMuX2Vycm9yQ29kZT1lfX1jbGFzcyBYRkFGYWN0b3J5e2NvbnN0cnVjdG9yKGUpe3RyeXt0aGlzLnJvb3Q9KG5ldyBYRkFQYXJzZXIpLnBhcnNlKFhGQUZhY3RvcnkuX2NyZWF0ZURvY3VtZW50KGUpKTtjb25zdCB0PW5ldyBCaW5kZXIodGhpcy5yb290KTt0aGlzLmZvcm09dC5iaW5kKCk7dGhpcy5kYXRhSGFuZGxlcj1uZXcgRGF0YUhhbmRsZXIodGhpcy5yb290LHQuZ2V0RGF0YSgpKTt0aGlzLmZvcm1bQ3NdLnRlbXBsYXRlPXRoaXMuZm9ybX1jYXRjaChlKXt3YXJuKGBYRkEgLSBhbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgcGFyc2luZyBhbmQgYmluZGluZzogJHtlfWApfX1pc1ZhbGlkKCl7cmV0dXJuIHRoaXMucm9vdCYmdGhpcy5mb3JtfV9jcmVhdGVQYWdlc0hlbHBlcigpe2NvbnN0IGU9dGhpcy5mb3JtW1hzXSgpO3JldHVybiBuZXcgUHJvbWlzZSgoKHQsaSk9Pntjb25zdCBuZXh0SXRlcmF0aW9uPSgpPT57dHJ5e2NvbnN0IGk9ZS5uZXh0KCk7aS5kb25lP3QoaS52YWx1ZSk6c2V0VGltZW91dChuZXh0SXRlcmF0aW9uLDApfWNhdGNoKGUpe2koZSl9fTtzZXRUaW1lb3V0KG5leHRJdGVyYXRpb24sMCl9KSl9YXN5bmMgX2NyZWF0ZVBhZ2VzKCl7dHJ5e3RoaXMucGFnZXM9YXdhaXQgdGhpcy5fY3JlYXRlUGFnZXNIZWxwZXIoKTt0aGlzLmRpbXM9dGhpcy5wYWdlcy5jaGlsZHJlbi5tYXAoKGU9Pntjb25zdHt3aWR0aDp0LGhlaWdodDppfT1lLmF0dHJpYnV0ZXMuc3R5bGU7cmV0dXJuWzAsMCxwYXJzZUludCh0KSxwYXJzZUludChpKV19KSl9Y2F0Y2goZSl7d2FybihgWEZBIC0gYW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIGxheW91dDogJHtlfWApfX1nZXRCb3VuZGluZ0JveChlKXtyZXR1cm4gdGhpcy5kaW1zW2VdfWFzeW5jIGdldE51bVBhZ2VzKCl7dGhpcy5wYWdlc3x8YXdhaXQgdGhpcy5fY3JlYXRlUGFnZXMoKTtyZXR1cm4gdGhpcy5kaW1zLmxlbmd0aH1zZXRJbWFnZXMoZSl7dGhpcy5mb3JtW0NzXS5pbWFnZXM9ZX1zZXRGb250cyhlKXt0aGlzLmZvcm1bQ3NdLmZvbnRGaW5kZXI9bmV3IEZvbnRGaW5kZXIoZSk7Y29uc3QgdD1bXTtmb3IobGV0IGUgb2YgdGhpcy5mb3JtW0NzXS51c2VkVHlwZWZhY2VzKXtlPXN0cmlwUXVvdGVzKGUpO3RoaXMuZm9ybVtDc10uZm9udEZpbmRlci5maW5kKGUpfHx0LnB1c2goZSl9cmV0dXJuIHQubGVuZ3RoPjA/dDpudWxsfWFwcGVuZEZvbnRzKGUsdCl7dGhpcy5mb3JtW0NzXS5mb250RmluZGVyLmFkZChlLHQpfWFzeW5jIGdldFBhZ2VzKCl7dGhpcy5wYWdlc3x8YXdhaXQgdGhpcy5fY3JlYXRlUGFnZXMoKTtjb25zdCBlPXRoaXMucGFnZXM7dGhpcy5wYWdlcz1udWxsO3JldHVybiBlfXNlcmlhbGl6ZURhdGEoZSl7cmV0dXJuIHRoaXMuZGF0YUhhbmRsZXIuc2VyaWFsaXplKGUpfXN0YXRpYyBfY3JlYXRlRG9jdW1lbnQoZSl7cmV0dXJuIGVbIi94ZHA6eGRwIl0/T2JqZWN0LnZhbHVlcyhlKS5qb2luKCIiKTplWyJ4ZHA6eGRwIl19c3RhdGljIGdldFJpY2hUZXh0QXNIdG1sKGUpe2lmKCFlfHwic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuIG51bGw7dHJ5e2xldCB0PW5ldyBYRkFQYXJzZXIoWGh0bWxOYW1lc3BhY2UsITApLnBhcnNlKGUpO2lmKCFbImJvZHkiLCJ4aHRtbCJdLmluY2x1ZGVzKHRbUnNdKSl7Y29uc3QgZT1YaHRtbE5hbWVzcGFjZS5ib2R5KHt9KTtlW1lyXSh0KTt0PWV9Y29uc3QgaT10W1ZzXSgpO2lmKCFpLnN1Y2Nlc3MpcmV0dXJuIG51bGw7Y29uc3R7aHRtbDphfT1pLHthdHRyaWJ1dGVzOnJ9PWE7aWYocil7ci5jbGFzcyYmKHIuY2xhc3M9ci5jbGFzcy5maWx0ZXIoKGU9PiFlLnN0YXJ0c1dpdGgoInhmYSIpKSkpO3IuZGlyPSJhdXRvIn1yZXR1cm57aHRtbDphLHN0cjp0W2pzXSgpfX1jYXRjaChlKXt3YXJuKGBYRkEgLSBhbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgcGFyc2luZyBvZiByaWNoIHRleHQ6ICR7ZX1gKX1yZXR1cm4gbnVsbH19Y2xhc3MgQW5ub3RhdGlvbkZhY3Rvcnl7c3RhdGljIGNyZWF0ZUdsb2JhbHMoZSl7cmV0dXJuIFByb21pc2UuYWxsKFtlLmVuc3VyZUNhdGFsb2coImFjcm9Gb3JtIiksZS5lbnN1cmVEb2MoInhmYURhdGFzZXRzIiksZS5lbnN1cmVDYXRhbG9nKCJzdHJ1Y3RUcmVlUm9vdCIpLGUuZW5zdXJlQ2F0YWxvZygiYmFzZVVybCIpLGUuZW5zdXJlQ2F0YWxvZygiYXR0YWNobWVudHMiKV0pLnRoZW4oKChbdCxpLGEscixzXSk9Pih7cGRmTWFuYWdlcjplLGFjcm9Gb3JtOnQgaW5zdGFuY2VvZiBEaWN0P3Q6RGljdC5lbXB0eSx4ZmFEYXRhc2V0czppLHN0cnVjdFRyZWVSb290OmEsYmFzZVVybDpyLGF0dGFjaG1lbnRzOnN9KSksKGU9Pnt3YXJuKGBjcmVhdGVHbG9iYWxzOiAiJHtlfSIuYCk7cmV0dXJuIG51bGx9KSl9c3RhdGljIGFzeW5jIGNyZWF0ZShlLHQsaSxhLHIscyxuKXtjb25zdCBvPXI/YXdhaXQgdGhpcy5fZ2V0UGFnZUluZGV4KGUsdCxpLnBkZk1hbmFnZXIpOm51bGw7cmV0dXJuIGkucGRmTWFuYWdlci5lbnN1cmUodGhpcywiX2NyZWF0ZSIsW2UsdCxpLGEscixzLG8sbl0pfXN0YXRpYyBfY3JlYXRlKGUsdCxpLGEscj0hMSxzPW51bGwsbj1udWxsLG89bnVsbCl7Y29uc3QgZz1lLmZldGNoSWZSZWYodCk7aWYoIShnIGluc3RhbmNlb2YgRGljdCkpcmV0dXJuO2NvbnN0e2Fjcm9Gb3JtOmMscGRmTWFuYWdlcjpsfT1pLGg9dCBpbnN0YW5jZW9mIFJlZj90LnRvU3RyaW5nKCk6YGFubm90XyR7YS5jcmVhdGVPYmpJZCgpfWA7bGV0IEM9Zy5nZXQoIlN1YnR5cGUiKTtDPUMgaW5zdGFuY2VvZiBOYW1lP0MubmFtZTpudWxsO2NvbnN0IFE9e3hyZWY6ZSxyZWY6dCxkaWN0Omcsc3VidHlwZTpDLGlkOmgsYW5ub3RhdGlvbkdsb2JhbHM6aSxjb2xsZWN0RmllbGRzOnIsb3JwaGFuRmllbGRzOnMsbmVlZEFwcGVhcmFuY2VzOiFyJiYhMD09PWMuZ2V0KCJOZWVkQXBwZWFyYW5jZXMiKSxwYWdlSW5kZXg6bixldmFsdWF0b3JPcHRpb25zOmwuZXZhbHVhdG9yT3B0aW9ucyxwYWdlUmVmOm99O3N3aXRjaChDKXtjYXNlIkxpbmsiOnJldHVybiBuZXcgTGlua0Fubm90YXRpb24oUSk7Y2FzZSJUZXh0IjpyZXR1cm4gbmV3IFRleHRBbm5vdGF0aW9uKFEpO2Nhc2UiV2lkZ2V0IjpsZXQgZT1nZXRJbmhlcml0YWJsZVByb3BlcnR5KHtkaWN0Omcsa2V5OiJGVCJ9KTtlPWUgaW5zdGFuY2VvZiBOYW1lP2UubmFtZTpudWxsO3N3aXRjaChlKXtjYXNlIlR4IjpyZXR1cm4gbmV3IFRleHRXaWRnZXRBbm5vdGF0aW9uKFEpO2Nhc2UiQnRuIjpyZXR1cm4gbmV3IEJ1dHRvbldpZGdldEFubm90YXRpb24oUSk7Y2FzZSJDaCI6cmV0dXJuIG5ldyBDaG9pY2VXaWRnZXRBbm5vdGF0aW9uKFEpO2Nhc2UiU2lnIjpyZXR1cm4gbmV3IFNpZ25hdHVyZVdpZGdldEFubm90YXRpb24oUSl9d2FybihgVW5pbXBsZW1lbnRlZCB3aWRnZXQgZmllbGQgdHlwZSAiJHtlfSIsIGZhbGxpbmcgYmFjayB0byBiYXNlIGZpZWxkIHR5cGUuYCk7cmV0dXJuIG5ldyBXaWRnZXRBbm5vdGF0aW9uKFEpO2Nhc2UiUG9wdXAiOnJldHVybiBuZXcgUG9wdXBBbm5vdGF0aW9uKFEpO2Nhc2UiRnJlZVRleHQiOnJldHVybiBuZXcgRnJlZVRleHRBbm5vdGF0aW9uKFEpO2Nhc2UiTGluZSI6cmV0dXJuIG5ldyBMaW5lQW5ub3RhdGlvbihRKTtjYXNlIlNxdWFyZSI6cmV0dXJuIG5ldyBTcXVhcmVBbm5vdGF0aW9uKFEpO2Nhc2UiQ2lyY2xlIjpyZXR1cm4gbmV3IENpcmNsZUFubm90YXRpb24oUSk7Y2FzZSJQb2x5TGluZSI6cmV0dXJuIG5ldyBQb2x5bGluZUFubm90YXRpb24oUSk7Y2FzZSJQb2x5Z29uIjpyZXR1cm4gbmV3IFBvbHlnb25Bbm5vdGF0aW9uKFEpO2Nhc2UiQ2FyZXQiOnJldHVybiBuZXcgQ2FyZXRBbm5vdGF0aW9uKFEpO2Nhc2UiSW5rIjpyZXR1cm4gbmV3IElua0Fubm90YXRpb24oUSk7Y2FzZSJIaWdobGlnaHQiOnJldHVybiBuZXcgSGlnaGxpZ2h0QW5ub3RhdGlvbihRKTtjYXNlIlVuZGVybGluZSI6cmV0dXJuIG5ldyBVbmRlcmxpbmVBbm5vdGF0aW9uKFEpO2Nhc2UiU3F1aWdnbHkiOnJldHVybiBuZXcgU3F1aWdnbHlBbm5vdGF0aW9uKFEpO2Nhc2UiU3RyaWtlT3V0IjpyZXR1cm4gbmV3IFN0cmlrZU91dEFubm90YXRpb24oUSk7Y2FzZSJTdGFtcCI6cmV0dXJuIG5ldyBTdGFtcEFubm90YXRpb24oUSk7Y2FzZSJGaWxlQXR0YWNobWVudCI6cmV0dXJuIG5ldyBGaWxlQXR0YWNobWVudEFubm90YXRpb24oUSk7ZGVmYXVsdDpyfHx3YXJuKEM/YFVuaW1wbGVtZW50ZWQgYW5ub3RhdGlvbiB0eXBlICIke0N9IiwgZmFsbGluZyBiYWNrIHRvIGJhc2UgYW5ub3RhdGlvbi5gOiJBbm5vdGF0aW9uIGlzIG1pc3NpbmcgdGhlIHJlcXVpcmVkIC9TdWJ0eXBlLiIpO3JldHVybiBuZXcgQW5ub3RhdGlvbihRKX19c3RhdGljIGFzeW5jIF9nZXRQYWdlSW5kZXgoZSx0LGkpe3RyeXtjb25zdCBhPWF3YWl0IGUuZmV0Y2hJZlJlZkFzeW5jKHQpO2lmKCEoYSBpbnN0YW5jZW9mIERpY3QpKXJldHVybi0xO2NvbnN0IHI9YS5nZXRSYXcoIlAiKTtpZihyIGluc3RhbmNlb2YgUmVmKXRyeXtyZXR1cm4gYXdhaXQgaS5lbnN1cmVDYXRhbG9nKCJnZXRQYWdlSW5kZXgiLFtyXSl9Y2F0Y2goZSl7aW5mbyhgX2dldFBhZ2VJbmRleCAtLSBub3QgYSB2YWxpZCBwYWdlIHJlZmVyZW5jZTogIiR7ZX0iLmApfWlmKGEuaGFzKCJLaWRzIikpcmV0dXJuLTE7Y29uc3Qgcz1hd2FpdCBpLmVuc3VyZURvYygibnVtUGFnZXMiKTtmb3IobGV0IGU9MDtlPHM7ZSsrKXtjb25zdCBhPWF3YWl0IGkuZ2V0UGFnZShlKSxyPWF3YWl0IGkuZW5zdXJlKGEsImFubm90YXRpb25zIik7Zm9yKGNvbnN0IGkgb2YgcilpZihpIGluc3RhbmNlb2YgUmVmJiZpc1JlZnNFcXVhbChpLHQpKXJldHVybiBlfX1jYXRjaChlKXt3YXJuKGBfZ2V0UGFnZUluZGV4OiAiJHtlfSIuYCl9cmV0dXJuLTF9c3RhdGljIGdlbmVyYXRlSW1hZ2VzKGUsdCxpKXtpZighaSl7d2FybigiZ2VuZXJhdGVJbWFnZXM6IE9mZnNjcmVlbkNhbnZhcyBpcyBub3Qgc3VwcG9ydGVkLCBjYW5ub3Qgc2F2ZSBvciBwcmludCBzb21lIGFubm90YXRpb25zIHdpdGggaW1hZ2VzLiIpO3JldHVybiBudWxsfWxldCBhO2Zvcihjb25zdHtiaXRtYXBJZDppLGJpdG1hcDpyfW9mIGUpaWYocil7YXx8PW5ldyBNYXA7YS5zZXQoaSxTdGFtcEFubm90YXRpb24uY3JlYXRlSW1hZ2Uocix0KSl9cmV0dXJuIGF9c3RhdGljIGFzeW5jIHNhdmVOZXdBbm5vdGF0aW9ucyhlLHQsaSxhLHIpe2NvbnN0IHM9ZS54cmVmO2xldCBuO2NvbnN0IG89W10se2lzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkOmd9PWUub3B0aW9ucztmb3IoY29uc3QgYyBvZiBpKWlmKCFjLmRlbGV0ZWQpc3dpdGNoKGMuYW5ub3RhdGlvblR5cGUpe2Nhc2UgZjppZighbil7Y29uc3QgZT1uZXcgRGljdChzKTtlLnNldCgiQmFzZUZvbnQiLE5hbWUuZ2V0KCJIZWx2ZXRpY2EiKSk7ZS5zZXQoIlR5cGUiLE5hbWUuZ2V0KCJGb250IikpO2Uuc2V0KCJTdWJ0eXBlIixOYW1lLmdldCgiVHlwZTEiKSk7ZS5zZXQoIkVuY29kaW5nIixOYW1lLmdldCgiV2luQW5zaUVuY29kaW5nIikpO249cy5nZXROZXdUZW1wb3JhcnlSZWYoKTtyLnB1dChuLHtkYXRhOmV9KX1vLnB1c2goRnJlZVRleHRBbm5vdGF0aW9uLmNyZWF0ZU5ld0Fubm90YXRpb24ocyxjLHIse2V2YWx1YXRvcjplLHRhc2s6dCxiYXNlRm9udFJlZjpufSkpO2JyZWFrO2Nhc2UgcDpjLnF1YWRQb2ludHM/by5wdXNoKEhpZ2hsaWdodEFubm90YXRpb24uY3JlYXRlTmV3QW5ub3RhdGlvbihzLGMscikpOm8ucHVzaChJbmtBbm5vdGF0aW9uLmNyZWF0ZU5ld0Fubm90YXRpb24ocyxjLHIpKTticmVhaztjYXNlIHk6by5wdXNoKElua0Fubm90YXRpb24uY3JlYXRlTmV3QW5ub3RhdGlvbihzLGMscikpO2JyZWFrO2Nhc2UgbTpjb25zdCBpPWc/YXdhaXQoYT8uZ2V0KGMuYml0bWFwSWQpKTpudWxsO2lmKGk/LmltYWdlU3RyZWFtKXtjb25zdHtpbWFnZVN0cmVhbTplLHNtYXNrU3RyZWFtOnR9PWk7aWYodCl7Y29uc3QgaT1zLmdldE5ld1RlbXBvcmFyeVJlZigpO3IucHV0KGkse2RhdGE6dH0pO2UuZGljdC5zZXQoIlNNYXNrIixpKX1jb25zdCBhPWkuaW1hZ2VSZWY9cy5nZXROZXdUZW1wb3JhcnlSZWYoKTtyLnB1dChhLHtkYXRhOmV9KTtpLmltYWdlU3RyZWFtPWkuc21hc2tTdHJlYW09bnVsbH1vLnB1c2goU3RhbXBBbm5vdGF0aW9uLmNyZWF0ZU5ld0Fubm90YXRpb24ocyxjLHIse2ltYWdlOml9KSl9cmV0dXJue2Fubm90YXRpb25zOmF3YWl0IFByb21pc2UuYWxsKG8pfX1zdGF0aWMgYXN5bmMgcHJpbnROZXdBbm5vdGF0aW9ucyhlLHQsaSxhLHIpe2lmKCFhKXJldHVybiBudWxsO2NvbnN0e29wdGlvbnM6cyx4cmVmOm59PXQsbz1bXTtmb3IoY29uc3QgZyBvZiBhKWlmKCFnLmRlbGV0ZWQpc3dpdGNoKGcuYW5ub3RhdGlvblR5cGUpe2Nhc2UgZjpvLnB1c2goRnJlZVRleHRBbm5vdGF0aW9uLmNyZWF0ZU5ld1ByaW50QW5ub3RhdGlvbihlLG4sZyx7ZXZhbHVhdG9yOnQsdGFzazppLGV2YWx1YXRvck9wdGlvbnM6c30pKTticmVhaztjYXNlIHA6Zy5xdWFkUG9pbnRzP28ucHVzaChIaWdobGlnaHRBbm5vdGF0aW9uLmNyZWF0ZU5ld1ByaW50QW5ub3RhdGlvbihlLG4sZyx7ZXZhbHVhdG9yT3B0aW9uczpzfSkpOm8ucHVzaChJbmtBbm5vdGF0aW9uLmNyZWF0ZU5ld1ByaW50QW5ub3RhdGlvbihlLG4sZyx7ZXZhbHVhdG9yT3B0aW9uczpzfSkpO2JyZWFrO2Nhc2UgeTpvLnB1c2goSW5rQW5ub3RhdGlvbi5jcmVhdGVOZXdQcmludEFubm90YXRpb24oZSxuLGcse2V2YWx1YXRvck9wdGlvbnM6c30pKTticmVhaztjYXNlIG06Y29uc3QgYT1zLmlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkP2F3YWl0KHI/LmdldChnLmJpdG1hcElkKSk6bnVsbDtpZihhPy5pbWFnZVN0cmVhbSl7Y29uc3R7aW1hZ2VTdHJlYW06ZSxzbWFza1N0cmVhbTp0fT1hO3QmJmUuZGljdC5zZXQoIlNNYXNrIix0KTthLmltYWdlUmVmPW5ldyBKcGVnU3RyZWFtKGUsZS5sZW5ndGgpO2EuaW1hZ2VTdHJlYW09YS5zbWFza1N0cmVhbT1udWxsfW8ucHVzaChTdGFtcEFubm90YXRpb24uY3JlYXRlTmV3UHJpbnRBbm5vdGF0aW9uKGUsbixnLHtpbWFnZTphLGV2YWx1YXRvck9wdGlvbnM6c30pKX1yZXR1cm4gUHJvbWlzZS5hbGwobyl9fWZ1bmN0aW9uIGdldFJnYkNvbG9yKGUsdD1uZXcgVWludDhDbGFtcGVkQXJyYXkoMykpe2lmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybiB0O2NvbnN0IGk9dHx8bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDMpO3N3aXRjaChlLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBudWxsO2Nhc2UgMTpDb2xvclNwYWNlLnNpbmdsZXRvbnMuZ3JheS5nZXRSZ2JJdGVtKGUsMCxpLDApO3JldHVybiBpO2Nhc2UgMzpDb2xvclNwYWNlLnNpbmdsZXRvbnMucmdiLmdldFJnYkl0ZW0oZSwwLGksMCk7cmV0dXJuIGk7Y2FzZSA0OkNvbG9yU3BhY2Uuc2luZ2xldG9ucy5jbXlrLmdldFJnYkl0ZW0oZSwwLGksMCk7cmV0dXJuIGk7ZGVmYXVsdDpyZXR1cm4gdH19ZnVuY3Rpb24gZ2V0UGRmQ29sb3JBcnJheShlKXtyZXR1cm4gQXJyYXkuZnJvbShlLChlPT5lLzI1NSkpfWZ1bmN0aW9uIGdldFF1YWRQb2ludHMoZSx0KXtjb25zdCBpPWUuZ2V0QXJyYXkoIlF1YWRQb2ludHMiKTtpZighaXNOdW1iZXJBcnJheShpLG51bGwpfHwwPT09aS5sZW5ndGh8fGkubGVuZ3RoJTg+MClyZXR1cm4gbnVsbDtjb25zdCBhPW5ldyBGbG9hdDMyQXJyYXkoaS5sZW5ndGgpO2ZvcihsZXQgZT0wLHI9aS5sZW5ndGg7ZTxyO2UrPTgpe2NvbnN0W3IscyxuLG8sZyxjLGwsaF09aS5zbGljZShlLGUrOCksQz1NYXRoLm1pbihyLG4sZyxsKSxRPU1hdGgubWF4KHIsbixnLGwpLEU9TWF0aC5taW4ocyxvLGMsaCksdT1NYXRoLm1heChzLG8sYyxoKTtpZihudWxsIT09dCYmKEM8dFswXXx8UT50WzJdfHxFPHRbMV18fHU+dFszXSkpcmV0dXJuIG51bGw7YS5zZXQoW0MsdSxRLHUsQyxFLFEsRV0sZSl9cmV0dXJuIGF9ZnVuY3Rpb24gZ2V0VHJhbnNmb3JtTWF0cml4KGUsdCxpKXtjb25zdFthLHIscyxuXT1VdGlsLmdldEF4aWFsQWxpZ25lZEJvdW5kaW5nQm94KHQsaSk7aWYoYT09PXN8fHI9PT1uKXJldHVyblsxLDAsMCwxLGVbMF0sZVsxXV07Y29uc3Qgbz0oZVsyXS1lWzBdKS8ocy1hKSxnPShlWzNdLWVbMV0pLyhuLXIpO3JldHVybltvLDAsMCxnLGVbMF0tYSpvLGVbMV0tcipnXX1jbGFzcyBBbm5vdGF0aW9ue2NvbnN0cnVjdG9yKGUpe2NvbnN0e2RpY3Q6dCx4cmVmOmksYW5ub3RhdGlvbkdsb2JhbHM6YSxyZWY6cixvcnBoYW5GaWVsZHM6c309ZSxuPXM/LmdldChyKTtuJiZ0LnNldCgiUGFyZW50IixuKTt0aGlzLnNldFRpdGxlKHQuZ2V0KCJUIikpO3RoaXMuc2V0Q29udGVudHModC5nZXQoIkNvbnRlbnRzIikpO3RoaXMuc2V0TW9kaWZpY2F0aW9uRGF0ZSh0LmdldCgiTSIpKTt0aGlzLnNldEZsYWdzKHQuZ2V0KCJGIikpO3RoaXMuc2V0UmVjdGFuZ2xlKHQuZ2V0QXJyYXkoIlJlY3QiKSk7dGhpcy5zZXRDb2xvcih0LmdldEFycmF5KCJDIikpO3RoaXMuc2V0Qm9yZGVyU3R5bGUodCk7dGhpcy5zZXRBcHBlYXJhbmNlKHQpO3RoaXMuc2V0T3B0aW9uYWxDb250ZW50KHQpO2NvbnN0IG89dC5nZXQoIk1LIik7dGhpcy5zZXRCb3JkZXJBbmRCYWNrZ3JvdW5kQ29sb3JzKG8pO3RoaXMuc2V0Um90YXRpb24obyx0KTt0aGlzLnJlZj1lLnJlZiBpbnN0YW5jZW9mIFJlZj9lLnJlZjpudWxsO3RoaXMuX3N0cmVhbXM9W107dGhpcy5hcHBlYXJhbmNlJiZ0aGlzLl9zdHJlYW1zLnB1c2godGhpcy5hcHBlYXJhbmNlKTtjb25zdCBnPSEhKHRoaXMuZmxhZ3MmaUEpLGM9ISEodGhpcy5mbGFncyZhQSk7dGhpcy5kYXRhPXthbm5vdGF0aW9uRmxhZ3M6dGhpcy5mbGFncyxib3JkZXJTdHlsZTp0aGlzLmJvcmRlclN0eWxlLGNvbG9yOnRoaXMuY29sb3IsYmFja2dyb3VuZENvbG9yOnRoaXMuYmFja2dyb3VuZENvbG9yLGJvcmRlckNvbG9yOnRoaXMuYm9yZGVyQ29sb3Iscm90YXRpb246dGhpcy5yb3RhdGlvbixjb250ZW50c09iajp0aGlzLl9jb250ZW50cyxoYXNBcHBlYXJhbmNlOiEhdGhpcy5hcHBlYXJhbmNlLGlkOmUuaWQsbW9kaWZpY2F0aW9uRGF0ZTp0aGlzLm1vZGlmaWNhdGlvbkRhdGUscmVjdDp0aGlzLnJlY3RhbmdsZSxzdWJ0eXBlOmUuc3VidHlwZSxoYXNPd25DYW52YXM6ITEsbm9Sb3RhdGU6ISEodGhpcy5mbGFncyZlQSksbm9IVE1MOmcmJmMsaXNFZGl0YWJsZTohMSxzdHJ1Y3RQYXJlbnQ6LTF9O2lmKGEuc3RydWN0VHJlZVJvb3Qpe2xldCBpPXQuZ2V0KCJTdHJ1Y3RQYXJlbnQiKTt0aGlzLmRhdGEuc3RydWN0UGFyZW50PWk9TnVtYmVyLmlzSW50ZWdlcihpKSYmaT49MD9pOi0xO2Euc3RydWN0VHJlZVJvb3QuYWRkQW5ub3RhdGlvbklkVG9QYWdlKGUucGFnZVJlZixpKX1pZihlLmNvbGxlY3RGaWVsZHMpe2NvbnN0IGE9dC5nZXQoIktpZHMiKTtpZihBcnJheS5pc0FycmF5KGEpKXtjb25zdCBlPVtdO2Zvcihjb25zdCB0IG9mIGEpdCBpbnN0YW5jZW9mIFJlZiYmZS5wdXNoKHQudG9TdHJpbmcoKSk7MCE9PWUubGVuZ3RoJiYodGhpcy5kYXRhLmtpZElkcz1lKX10aGlzLmRhdGEuYWN0aW9ucz1jb2xsZWN0QWN0aW9ucyhpLHQscEEpO3RoaXMuZGF0YS5maWVsZE5hbWU9dGhpcy5fY29uc3RydWN0RmllbGROYW1lKHQpO3RoaXMuZGF0YS5wYWdlSW5kZXg9ZS5wYWdlSW5kZXh9Y29uc3QgbD10LmdldCgiSVQiKTtsIGluc3RhbmNlb2YgTmFtZSYmKHRoaXMuZGF0YS5pdD1sLm5hbWUpO3RoaXMuX2lzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkPWUuZXZhbHVhdG9yT3B0aW9ucy5pc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZDt0aGlzLl9mYWxsYmFja0ZvbnREaWN0PW51bGw7dGhpcy5fbmVlZEFwcGVhcmFuY2VzPSExfV9oYXNGbGFnKGUsdCl7cmV0dXJuISEoZSZ0KX1fYnVpbGRGbGFncyhlLHQpe2xldHtmbGFnczppfT10aGlzO2lmKHZvaWQgMD09PWUpe2lmKHZvaWQgMD09PXQpcmV0dXJuO3JldHVybiB0P2kmfkFBOmkmfiR8QUF9aWYoZSl7aXw9QUE7cmV0dXJuIHQ/aSZ+dEF8JDppJn4kfHRBfWkmPX4oJHx0QSk7cmV0dXJuIHQ/aSZ+QUE6aXxBQX1faXNWaWV3YWJsZShlKXtyZXR1cm4hdGhpcy5faGFzRmxhZyhlLHopJiYhdGhpcy5faGFzRmxhZyhlLHRBKX1faXNQcmludGFibGUoZSl7cmV0dXJuIHRoaXMuX2hhc0ZsYWcoZSxBQSkmJiF0aGlzLl9oYXNGbGFnKGUsJCkmJiF0aGlzLl9oYXNGbGFnKGUseil9bXVzdEJlVmlld2VkKGUsdCl7Y29uc3QgaT1lPy5nZXQodGhpcy5kYXRhLmlkKT8ubm9WaWV3O3JldHVybiB2b2lkIDAhPT1pPyFpOnRoaXMudmlld2FibGUmJiF0aGlzLl9oYXNGbGFnKHRoaXMuZmxhZ3MsJCl9bXVzdEJlUHJpbnRlZChlKXtjb25zdCB0PWU/LmdldCh0aGlzLmRhdGEuaWQpPy5ub1ByaW50O3JldHVybiB2b2lkIDAhPT10PyF0OnRoaXMucHJpbnRhYmxlfW11c3RCZVZpZXdlZFdoZW5FZGl0aW5nKGUsdD1udWxsKXtyZXR1cm4gZT8hdGhpcy5kYXRhLmlzRWRpdGFibGU6IXQ/Lmhhcyh0aGlzLmRhdGEuaWQpfWdldCB2aWV3YWJsZSgpe3JldHVybiBudWxsIT09dGhpcy5kYXRhLnF1YWRQb2ludHMmJigwPT09dGhpcy5mbGFnc3x8dGhpcy5faXNWaWV3YWJsZSh0aGlzLmZsYWdzKSl9Z2V0IHByaW50YWJsZSgpe3JldHVybiBudWxsIT09dGhpcy5kYXRhLnF1YWRQb2ludHMmJigwIT09dGhpcy5mbGFncyYmdGhpcy5faXNQcmludGFibGUodGhpcy5mbGFncykpfV9wYXJzZVN0cmluZ0hlbHBlcihlKXtjb25zdCB0PSJzdHJpbmciPT10eXBlb2YgZT9zdHJpbmdUb1BERlN0cmluZyhlKToiIjtyZXR1cm57c3RyOnQsZGlyOnQmJiJydGwiPT09YmlkaSh0KS5kaXI/InJ0bCI6Imx0ciJ9fXNldERlZmF1bHRBcHBlYXJhbmNlKGUpe2NvbnN0e2RpY3Q6dCxhbm5vdGF0aW9uR2xvYmFsczppfT1lLGE9Z2V0SW5oZXJpdGFibGVQcm9wZXJ0eSh7ZGljdDp0LGtleToiREEifSl8fGkuYWNyb0Zvcm0uZ2V0KCJEQSIpO3RoaXMuX2RlZmF1bHRBcHBlYXJhbmNlPSJzdHJpbmciPT10eXBlb2YgYT9hOiIiO3RoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGE9cGFyc2VEZWZhdWx0QXBwZWFyYW5jZSh0aGlzLl9kZWZhdWx0QXBwZWFyYW5jZSl9c2V0VGl0bGUoZSl7dGhpcy5fdGl0bGU9dGhpcy5fcGFyc2VTdHJpbmdIZWxwZXIoZSl9c2V0Q29udGVudHMoZSl7dGhpcy5fY29udGVudHM9dGhpcy5fcGFyc2VTdHJpbmdIZWxwZXIoZSl9c2V0TW9kaWZpY2F0aW9uRGF0ZShlKXt0aGlzLm1vZGlmaWNhdGlvbkRhdGU9InN0cmluZyI9PXR5cGVvZiBlP2U6bnVsbH1zZXRGbGFncyhlKXt0aGlzLmZsYWdzPU51bWJlci5pc0ludGVnZXIoZSkmJmU+MD9lOjA7dGhpcy5mbGFncyZ6JiYiQW5ub3RhdGlvbiIhPT10aGlzLmNvbnN0cnVjdG9yLm5hbWUmJih0aGlzLmZsYWdzXj16KX1oYXNGbGFnKGUpe3JldHVybiB0aGlzLl9oYXNGbGFnKHRoaXMuZmxhZ3MsZSl9c2V0UmVjdGFuZ2xlKGUpe3RoaXMucmVjdGFuZ2xlPWxvb2t1cE5vcm1hbFJlY3QoZSxbMCwwLDAsMF0pfXNldENvbG9yKGUpe3RoaXMuY29sb3I9Z2V0UmdiQ29sb3IoZSl9c2V0TGluZUVuZGluZ3MoZSl7dGhpcy5saW5lRW5kaW5ncz1bIk5vbmUiLCJOb25lIl07aWYoQXJyYXkuaXNBcnJheShlKSYmMj09PWUubGVuZ3RoKWZvcihsZXQgdD0wO3Q8Mjt0Kyspe2NvbnN0IGk9ZVt0XTtpZihpIGluc3RhbmNlb2YgTmFtZSlzd2l0Y2goaS5uYW1lKXtjYXNlIk5vbmUiOmNvbnRpbnVlO2Nhc2UiU3F1YXJlIjpjYXNlIkNpcmNsZSI6Y2FzZSJEaWFtb25kIjpjYXNlIk9wZW5BcnJvdyI6Y2FzZSJDbG9zZWRBcnJvdyI6Y2FzZSJCdXR0IjpjYXNlIlJPcGVuQXJyb3ciOmNhc2UiUkNsb3NlZEFycm93IjpjYXNlIlNsYXNoIjp0aGlzLmxpbmVFbmRpbmdzW3RdPWkubmFtZTtjb250aW51ZX13YXJuKGBJZ25vcmluZyBpbnZhbGlkIGxpbmVFbmRpbmc6ICR7aX1gKX19c2V0Um90YXRpb24oZSx0KXt0aGlzLnJvdGF0aW9uPTA7bGV0IGk9ZSBpbnN0YW5jZW9mIERpY3Q/ZS5nZXQoIlIiKXx8MDp0LmdldCgiUm90YXRlIil8fDA7aWYoTnVtYmVyLmlzSW50ZWdlcihpKSYmMCE9PWkpe2klPTM2MDtpPDAmJihpKz0zNjApO2klOTA9PTAmJih0aGlzLnJvdGF0aW9uPWkpfX1zZXRCb3JkZXJBbmRCYWNrZ3JvdW5kQ29sb3JzKGUpe2lmKGUgaW5zdGFuY2VvZiBEaWN0KXt0aGlzLmJvcmRlckNvbG9yPWdldFJnYkNvbG9yKGUuZ2V0QXJyYXkoIkJDIiksbnVsbCk7dGhpcy5iYWNrZ3JvdW5kQ29sb3I9Z2V0UmdiQ29sb3IoZS5nZXRBcnJheSgiQkciKSxudWxsKX1lbHNlIHRoaXMuYm9yZGVyQ29sb3I9dGhpcy5iYWNrZ3JvdW5kQ29sb3I9bnVsbH1zZXRCb3JkZXJTdHlsZShlKXt0aGlzLmJvcmRlclN0eWxlPW5ldyBBbm5vdGF0aW9uQm9yZGVyU3R5bGU7aWYoZSBpbnN0YW5jZW9mIERpY3QpaWYoZS5oYXMoIkJTIikpe2NvbnN0IHQ9ZS5nZXQoIkJTIik7aWYodCBpbnN0YW5jZW9mIERpY3Qpe2NvbnN0IGU9dC5nZXQoIlR5cGUiKTtpZighZXx8aXNOYW1lKGUsIkJvcmRlciIpKXt0aGlzLmJvcmRlclN0eWxlLnNldFdpZHRoKHQuZ2V0KCJXIiksdGhpcy5yZWN0YW5nbGUpO3RoaXMuYm9yZGVyU3R5bGUuc2V0U3R5bGUodC5nZXQoIlMiKSk7dGhpcy5ib3JkZXJTdHlsZS5zZXREYXNoQXJyYXkodC5nZXRBcnJheSgiRCIpKX19fWVsc2UgaWYoZS5oYXMoIkJvcmRlciIpKXtjb25zdCB0PWUuZ2V0QXJyYXkoIkJvcmRlciIpO2lmKEFycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoPj0zKXt0aGlzLmJvcmRlclN0eWxlLnNldEhvcml6b250YWxDb3JuZXJSYWRpdXModFswXSk7dGhpcy5ib3JkZXJTdHlsZS5zZXRWZXJ0aWNhbENvcm5lclJhZGl1cyh0WzFdKTt0aGlzLmJvcmRlclN0eWxlLnNldFdpZHRoKHRbMl0sdGhpcy5yZWN0YW5nbGUpOzQ9PT10Lmxlbmd0aCYmdGhpcy5ib3JkZXJTdHlsZS5zZXREYXNoQXJyYXkodFszXSwhMCl9fWVsc2UgdGhpcy5ib3JkZXJTdHlsZS5zZXRXaWR0aCgwKX1zZXRBcHBlYXJhbmNlKGUpe3RoaXMuYXBwZWFyYW5jZT1udWxsO2NvbnN0IHQ9ZS5nZXQoIkFQIik7aWYoISh0IGluc3RhbmNlb2YgRGljdCkpcmV0dXJuO2NvbnN0IGk9dC5nZXQoIk4iKTtpZihpIGluc3RhbmNlb2YgQmFzZVN0cmVhbSl7dGhpcy5hcHBlYXJhbmNlPWk7cmV0dXJufWlmKCEoaSBpbnN0YW5jZW9mIERpY3QpKXJldHVybjtjb25zdCBhPWUuZ2V0KCJBUyIpO2lmKCEoYSBpbnN0YW5jZW9mIE5hbWUmJmkuaGFzKGEubmFtZSkpKXJldHVybjtjb25zdCByPWkuZ2V0KGEubmFtZSk7ciBpbnN0YW5jZW9mIEJhc2VTdHJlYW0mJih0aGlzLmFwcGVhcmFuY2U9cil9c2V0T3B0aW9uYWxDb250ZW50KGUpe3RoaXMub2M9bnVsbDtjb25zdCB0PWUuZ2V0KCJPQyIpO3QgaW5zdGFuY2VvZiBOYW1lP3dhcm4oInNldE9wdGlvbmFsQ29udGVudDogU3VwcG9ydCBmb3IgL05hbWUtZW50cnkgaXMgbm90IGltcGxlbWVudGVkLiIpOnQgaW5zdGFuY2VvZiBEaWN0JiYodGhpcy5vYz10KX1sb2FkUmVzb3VyY2VzKGUsdCl7cmV0dXJuIHQuZGljdC5nZXRBc3luYygiUmVzb3VyY2VzIikudGhlbigodD0+e2lmKCF0KXJldHVybjtyZXR1cm4gbmV3IE9iamVjdExvYWRlcih0LGUsdC54cmVmKS5sb2FkKCkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gdH0pKX0pKX1hc3luYyBnZXRPcGVyYXRvckxpc3QoZSx0LGkscil7Y29uc3R7aGFzT3duQ2FudmFzOnMsaWQ6bixyZWN0Om99PXRoaXMuZGF0YTtsZXQgZz10aGlzLmFwcGVhcmFuY2U7Y29uc3QgbD0hIShzJiZpJmMpO2lmKGwmJihvWzBdPT09b1syXXx8b1sxXT09PW9bM10pKXt0aGlzLmRhdGEuaGFzT3duQ2FudmFzPSExO3JldHVybntvcExpc3Q6bmV3IE9wZXJhdG9yTGlzdCxzZXBhcmF0ZUZvcm06ITEsc2VwYXJhdGVDYW52YXM6ITF9fWlmKCFnKXtpZighbClyZXR1cm57b3BMaXN0Om5ldyBPcGVyYXRvckxpc3Qsc2VwYXJhdGVGb3JtOiExLHNlcGFyYXRlQ2FudmFzOiExfTtnPW5ldyBTdHJpbmdTdHJlYW0oIiIpO2cuZGljdD1uZXcgRGljdH1jb25zdCBoPWcuZGljdCxDPWF3YWl0IHRoaXMubG9hZFJlc291cmNlcyhbIkV4dEdTdGF0ZSIsIkNvbG9yU3BhY2UiLCJQYXR0ZXJuIiwiU2hhZGluZyIsIlhPYmplY3QiLCJGb250Il0sZyksUT1sb29rdXBSZWN0KGguZ2V0QXJyYXkoIkJCb3giKSxbMCwwLDEsMV0pLEU9bG9va3VwTWF0cml4KGguZ2V0QXJyYXkoIk1hdHJpeCIpLGEpLHU9Z2V0VHJhbnNmb3JtTWF0cml4KG8sUSxFKSxkPW5ldyBPcGVyYXRvckxpc3Q7bGV0IGY7dGhpcy5vYyYmKGY9YXdhaXQgZS5wYXJzZU1hcmtlZENvbnRlbnRQcm9wcyh0aGlzLm9jLG51bGwpKTt2b2lkIDAhPT1mJiZkLmFkZE9wKEtlLFsiT0MiLGZdKTtkLmFkZE9wKFZlLFtuLG8sdSxFLGxdKTthd2FpdCBlLmdldE9wZXJhdG9yTGlzdCh7c3RyZWFtOmcsdGFzazp0LHJlc291cmNlczpDLG9wZXJhdG9yTGlzdDpkLGZhbGxiYWNrRm9udERpY3Q6dGhpcy5fZmFsbGJhY2tGb250RGljdH0pO2QuYWRkT3AoWmUsW10pO3ZvaWQgMCE9PWYmJmQuYWRkT3AoVGUsW10pO3RoaXMucmVzZXQoKTtyZXR1cm57b3BMaXN0OmQsc2VwYXJhdGVGb3JtOiExLHNlcGFyYXRlQ2FudmFzOmx9fWFzeW5jIHNhdmUoZSx0LGksYSl7cmV0dXJuIG51bGx9Z2V0IGhhc1RleHRDb250ZW50KCl7cmV0dXJuITF9YXN5bmMgZXh0cmFjdFRleHRDb250ZW50KGUsdCxpKXtpZighdGhpcy5hcHBlYXJhbmNlKXJldHVybjtjb25zdCBhPWF3YWl0IHRoaXMubG9hZFJlc291cmNlcyhbIkV4dEdTdGF0ZSIsIkZvbnQiLCJQcm9wZXJ0aWVzIiwiWE9iamVjdCJdLHRoaXMuYXBwZWFyYW5jZSkscj1bXSxzPVtdO2xldCBuPW51bGw7Y29uc3Qgbz17ZGVzaXJlZFNpemU6TWF0aC5JbmZpbml0eSxyZWFkeTohMCxlbnF1ZXVlKGUsdCl7Zm9yKGNvbnN0IHQgb2YgZS5pdGVtcylpZih2b2lkIDAhPT10LnN0cil7bnx8PXQudHJhbnNmb3JtLnNsaWNlKC0yKTtzLnB1c2godC5zdHIpO2lmKHQuaGFzRU9MKXtyLnB1c2gocy5qb2luKCIiKS50cmltRW5kKCkpO3MubGVuZ3RoPTB9fX19O2F3YWl0IGUuZ2V0VGV4dENvbnRlbnQoe3N0cmVhbTp0aGlzLmFwcGVhcmFuY2UsdGFzazp0LHJlc291cmNlczphLGluY2x1ZGVNYXJrZWRDb250ZW50OiEwLGtlZXBXaGl0ZVNwYWNlOiEwLHNpbms6byx2aWV3Qm94Oml9KTt0aGlzLnJlc2V0KCk7cy5sZW5ndGgmJnIucHVzaChzLmpvaW4oIiIpLnRyaW1FbmQoKSk7aWYoci5sZW5ndGg+MXx8clswXSl7Y29uc3QgZT10aGlzLmFwcGVhcmFuY2UuZGljdCx0PWxvb2t1cFJlY3QoZS5nZXRBcnJheSgiQkJveCIpLG51bGwpLGk9bG9va3VwTWF0cml4KGUuZ2V0QXJyYXkoIk1hdHJpeCIpLG51bGwpO3RoaXMuZGF0YS50ZXh0UG9zaXRpb249dGhpcy5fdHJhbnNmb3JtUG9pbnQobix0LGkpO3RoaXMuZGF0YS50ZXh0Q29udGVudD1yfX1fdHJhbnNmb3JtUG9pbnQoZSx0LGkpe2NvbnN0e3JlY3Q6YX09dGhpcy5kYXRhO3R8fD1bMCwwLDEsMV07aXx8PVsxLDAsMCwxLDAsMF07Y29uc3Qgcj1nZXRUcmFuc2Zvcm1NYXRyaXgoYSx0LGkpO3JbNF0tPWFbMF07cls1XS09YVsxXTtlPVV0aWwuYXBwbHlUcmFuc2Zvcm0oZSxyKTtyZXR1cm4gVXRpbC5hcHBseVRyYW5zZm9ybShlLGkpfWdldEZpZWxkT2JqZWN0KCl7cmV0dXJuIHRoaXMuZGF0YS5raWRJZHM/e2lkOnRoaXMuZGF0YS5pZCxhY3Rpb25zOnRoaXMuZGF0YS5hY3Rpb25zLG5hbWU6dGhpcy5kYXRhLmZpZWxkTmFtZSxzdHJva2VDb2xvcjp0aGlzLmRhdGEuYm9yZGVyQ29sb3IsZmlsbENvbG9yOnRoaXMuZGF0YS5iYWNrZ3JvdW5kQ29sb3IsdHlwZToiIixraWRJZHM6dGhpcy5kYXRhLmtpZElkcyxwYWdlOnRoaXMuZGF0YS5wYWdlSW5kZXgscm90YXRpb246dGhpcy5yb3RhdGlvbn06bnVsbH1yZXNldCgpe2Zvcihjb25zdCBlIG9mIHRoaXMuX3N0cmVhbXMpZS5yZXNldCgpfV9jb25zdHJ1Y3RGaWVsZE5hbWUoZSl7aWYoIWUuaGFzKCJUIikmJiFlLmhhcygiUGFyZW50Iikpe3dhcm4oIlVua25vd24gZmllbGQgbmFtZSwgZmFsbGluZyBiYWNrIHRvIGVtcHR5IGZpZWxkIG5hbWUuIik7cmV0dXJuIiJ9aWYoIWUuaGFzKCJQYXJlbnQiKSlyZXR1cm4gc3RyaW5nVG9QREZTdHJpbmcoZS5nZXQoIlQiKSk7Y29uc3QgdD1bXTtlLmhhcygiVCIpJiZ0LnVuc2hpZnQoc3RyaW5nVG9QREZTdHJpbmcoZS5nZXQoIlQiKSkpO2xldCBpPWU7Y29uc3QgYT1uZXcgUmVmU2V0O2Uub2JqSWQmJmEucHV0KGUub2JqSWQpO2Zvcig7aS5oYXMoIlBhcmVudCIpOyl7aT1pLmdldCgiUGFyZW50Iik7aWYoIShpIGluc3RhbmNlb2YgRGljdCl8fGkub2JqSWQmJmEuaGFzKGkub2JqSWQpKWJyZWFrO2kub2JqSWQmJmEucHV0KGkub2JqSWQpO2kuaGFzKCJUIikmJnQudW5zaGlmdChzdHJpbmdUb1BERlN0cmluZyhpLmdldCgiVCIpKSl9cmV0dXJuIHQuam9pbigiLiIpfX1jbGFzcyBBbm5vdGF0aW9uQm9yZGVyU3R5bGV7Y29uc3RydWN0b3IoKXt0aGlzLndpZHRoPTE7dGhpcy5yYXdXaWR0aD0xO3RoaXMuc3R5bGU9UUE7dGhpcy5kYXNoQXJyYXk9WzNdO3RoaXMuaG9yaXpvbnRhbENvcm5lclJhZGl1cz0wO3RoaXMudmVydGljYWxDb3JuZXJSYWRpdXM9MH1zZXRXaWR0aChlLHQ9WzAsMCwwLDBdKXtpZihlIGluc3RhbmNlb2YgTmFtZSl0aGlzLndpZHRoPTA7ZWxzZSBpZigibnVtYmVyIj09dHlwZW9mIGUpe2lmKGU+MCl7dGhpcy5yYXdXaWR0aD1lO2NvbnN0IGk9KHRbMl0tdFswXSkvMixhPSh0WzNdLXRbMV0pLzI7aWYoaT4wJiZhPjAmJihlPml8fGU+YSkpe3dhcm4oYEFubm90YXRpb25Cb3JkZXJTdHlsZS5zZXRXaWR0aCAtIGlnbm9yaW5nIHdpZHRoOiAke2V9YCk7ZT0xfX10aGlzLndpZHRoPWV9fXNldFN0eWxlKGUpe2lmKGUgaW5zdGFuY2VvZiBOYW1lKXN3aXRjaChlLm5hbWUpe2Nhc2UiUyI6dGhpcy5zdHlsZT1RQTticmVhaztjYXNlIkQiOnRoaXMuc3R5bGU9RUE7YnJlYWs7Y2FzZSJCIjp0aGlzLnN0eWxlPXVBO2JyZWFrO2Nhc2UiSSI6dGhpcy5zdHlsZT1kQTticmVhaztjYXNlIlUiOnRoaXMuc3R5bGU9ZkF9fXNldERhc2hBcnJheShlLHQ9ITEpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2xldCBpPSEwLGE9ITA7Zm9yKGNvbnN0IHQgb2YgZSl7aWYoISgrdD49MCkpe2k9ITE7YnJlYWt9dD4wJiYoYT0hMSl9aWYoMD09PWUubGVuZ3RofHxpJiYhYSl7dGhpcy5kYXNoQXJyYXk9ZTt0JiZ0aGlzLnNldFN0eWxlKE5hbWUuZ2V0KCJEIikpfWVsc2UgdGhpcy53aWR0aD0wfWVsc2UgZSYmKHRoaXMud2lkdGg9MCl9c2V0SG9yaXpvbnRhbENvcm5lclJhZGl1cyhlKXtOdW1iZXIuaXNJbnRlZ2VyKGUpJiYodGhpcy5ob3Jpem9udGFsQ29ybmVyUmFkaXVzPWUpfXNldFZlcnRpY2FsQ29ybmVyUmFkaXVzKGUpe051bWJlci5pc0ludGVnZXIoZSkmJih0aGlzLnZlcnRpY2FsQ29ybmVyUmFkaXVzPWUpfX1jbGFzcyBNYXJrdXBBbm5vdGF0aW9uIGV4dGVuZHMgQW5ub3RhdGlvbntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTtjb25zdHtkaWN0OnR9PWU7aWYodC5oYXMoIklSVCIpKXtjb25zdCBlPXQuZ2V0UmF3KCJJUlQiKTt0aGlzLmRhdGEuaW5SZXBseVRvPWUgaW5zdGFuY2VvZiBSZWY/ZS50b1N0cmluZygpOm51bGw7Y29uc3QgaT10LmdldCgiUlQiKTt0aGlzLmRhdGEucmVwbHlUeXBlPWkgaW5zdGFuY2VvZiBOYW1lP2kubmFtZTpffWxldCBpPW51bGw7aWYodGhpcy5kYXRhLnJlcGx5VHlwZT09PVope2NvbnN0IGU9dC5nZXQoIklSVCIpO3RoaXMuc2V0VGl0bGUoZS5nZXQoIlQiKSk7dGhpcy5kYXRhLnRpdGxlT2JqPXRoaXMuX3RpdGxlO3RoaXMuc2V0Q29udGVudHMoZS5nZXQoIkNvbnRlbnRzIikpO3RoaXMuZGF0YS5jb250ZW50c09iaj10aGlzLl9jb250ZW50cztpZihlLmhhcygiQ3JlYXRpb25EYXRlIikpe3RoaXMuc2V0Q3JlYXRpb25EYXRlKGUuZ2V0KCJDcmVhdGlvbkRhdGUiKSk7dGhpcy5kYXRhLmNyZWF0aW9uRGF0ZT10aGlzLmNyZWF0aW9uRGF0ZX1lbHNlIHRoaXMuZGF0YS5jcmVhdGlvbkRhdGU9bnVsbDtpZihlLmhhcygiTSIpKXt0aGlzLnNldE1vZGlmaWNhdGlvbkRhdGUoZS5nZXQoIk0iKSk7dGhpcy5kYXRhLm1vZGlmaWNhdGlvbkRhdGU9dGhpcy5tb2RpZmljYXRpb25EYXRlfWVsc2UgdGhpcy5kYXRhLm1vZGlmaWNhdGlvbkRhdGU9bnVsbDtpPWUuZ2V0UmF3KCJQb3B1cCIpO2lmKGUuaGFzKCJDIikpe3RoaXMuc2V0Q29sb3IoZS5nZXRBcnJheSgiQyIpKTt0aGlzLmRhdGEuY29sb3I9dGhpcy5jb2xvcn1lbHNlIHRoaXMuZGF0YS5jb2xvcj1udWxsfWVsc2V7dGhpcy5kYXRhLnRpdGxlT2JqPXRoaXMuX3RpdGxlO3RoaXMuc2V0Q3JlYXRpb25EYXRlKHQuZ2V0KCJDcmVhdGlvbkRhdGUiKSk7dGhpcy5kYXRhLmNyZWF0aW9uRGF0ZT10aGlzLmNyZWF0aW9uRGF0ZTtpPXQuZ2V0UmF3KCJQb3B1cCIpO3QuaGFzKCJDIil8fCh0aGlzLmRhdGEuY29sb3I9bnVsbCl9dGhpcy5kYXRhLnBvcHVwUmVmPWkgaW5zdGFuY2VvZiBSZWY/aS50b1N0cmluZygpOm51bGw7dC5oYXMoIlJDIikmJih0aGlzLmRhdGEucmljaFRleHQ9WEZBRmFjdG9yeS5nZXRSaWNoVGV4dEFzSHRtbCh0LmdldCgiUkMiKSkpfXNldENyZWF0aW9uRGF0ZShlKXt0aGlzLmNyZWF0aW9uRGF0ZT0ic3RyaW5nIj09dHlwZW9mIGU/ZTpudWxsfV9zZXREZWZhdWx0QXBwZWFyYW5jZSh7eHJlZjplLGV4dHJhOnQsc3Ryb2tlQ29sb3I6aSxmaWxsQ29sb3I6YSxibGVuZE1vZGU6cixzdHJva2VBbHBoYTpzLGZpbGxBbHBoYTpuLHBvaW50c0NhbGxiYWNrOm99KXtsZXQgZz1OdW1iZXIuTUFYX1ZBTFVFLGM9TnVtYmVyLk1BWF9WQUxVRSxsPU51bWJlci5NSU5fVkFMVUUsaD1OdW1iZXIuTUlOX1ZBTFVFO2NvbnN0IEM9WyJxIl07dCYmQy5wdXNoKHQpO2kmJkMucHVzaChgJHtpWzBdfSAke2lbMV19ICR7aVsyXX0gUkdgKTthJiZDLnB1c2goYCR7YVswXX0gJHthWzFdfSAke2FbMl19IHJnYCk7Y29uc3QgUT10aGlzLmRhdGEucXVhZFBvaW50c3x8RmxvYXQzMkFycmF5LmZyb20oW3RoaXMucmVjdGFuZ2xlWzBdLHRoaXMucmVjdGFuZ2xlWzNdLHRoaXMucmVjdGFuZ2xlWzJdLHRoaXMucmVjdGFuZ2xlWzNdLHRoaXMucmVjdGFuZ2xlWzBdLHRoaXMucmVjdGFuZ2xlWzFdLHRoaXMucmVjdGFuZ2xlWzJdLHRoaXMucmVjdGFuZ2xlWzFdXSk7Zm9yKGxldCBlPTAsdD1RLmxlbmd0aDtlPHQ7ZSs9OCl7Y29uc3RbdCxpLGEscl09byhDLFEuc3ViYXJyYXkoZSxlKzgpKTtnPU1hdGgubWluKGcsdCk7bD1NYXRoLm1heChsLGkpO2M9TWF0aC5taW4oYyxhKTtoPU1hdGgubWF4KGgscil9Qy5wdXNoKCJRIik7Y29uc3QgRT1uZXcgRGljdChlKSx1PW5ldyBEaWN0KGUpO3Uuc2V0KCJTdWJ0eXBlIixOYW1lLmdldCgiRm9ybSIpKTtjb25zdCBkPW5ldyBTdHJpbmdTdHJlYW0oQy5qb2luKCIgIikpO2QuZGljdD11O0Uuc2V0KCJGbTAiLGQpO2NvbnN0IGY9bmV3IERpY3QoZSk7ciYmZi5zZXQoIkJNIixOYW1lLmdldChyKSk7Im51bWJlciI9PXR5cGVvZiBzJiZmLnNldCgiQ0EiLHMpOyJudW1iZXIiPT10eXBlb2YgbiYmZi5zZXQoImNhIixuKTtjb25zdCBwPW5ldyBEaWN0KGUpO3Auc2V0KCJHUzAiLGYpO2NvbnN0IG09bmV3IERpY3QoZSk7bS5zZXQoIkV4dEdTdGF0ZSIscCk7bS5zZXQoIlhPYmplY3QiLEUpO2NvbnN0IHk9bmV3IERpY3QoZSk7eS5zZXQoIlJlc291cmNlcyIsbSk7Y29uc3Qgdz10aGlzLmRhdGEucmVjdD1bZyxjLGwsaF07eS5zZXQoIkJCb3giLHcpO3RoaXMuYXBwZWFyYW5jZT1uZXcgU3RyaW5nU3RyZWFtKCIvR1MwIGdzIC9GbTAgRG8iKTt0aGlzLmFwcGVhcmFuY2UuZGljdD15O3RoaXMuX3N0cmVhbXMucHVzaCh0aGlzLmFwcGVhcmFuY2UsZCl9c3RhdGljIGFzeW5jIGNyZWF0ZU5ld0Fubm90YXRpb24oZSx0LGksYSl7Y29uc3Qgcj10LnJlZnx8PWUuZ2V0TmV3VGVtcG9yYXJ5UmVmKCkscz1hd2FpdCB0aGlzLmNyZWF0ZU5ld0FwcGVhcmFuY2VTdHJlYW0odCxlLGEpO2xldCBuO2lmKHMpe2NvbnN0IGE9ZS5nZXROZXdUZW1wb3JhcnlSZWYoKTtuPXRoaXMuY3JlYXRlTmV3RGljdCh0LGUse2FwUmVmOmF9KTtpLnB1dChhLHtkYXRhOnN9KX1lbHNlIG49dGhpcy5jcmVhdGVOZXdEaWN0KHQsZSx7fSk7TnVtYmVyLmlzSW50ZWdlcih0LnBhcmVudFRyZWVJZCkmJm4uc2V0KCJTdHJ1Y3RQYXJlbnQiLHQucGFyZW50VHJlZUlkKTtpLnB1dChyLHtkYXRhOm59KTtyZXR1cm57cmVmOnJ9fXN0YXRpYyBhc3luYyBjcmVhdGVOZXdQcmludEFubm90YXRpb24oZSx0LGksYSl7Y29uc3Qgcj1hd2FpdCB0aGlzLmNyZWF0ZU5ld0FwcGVhcmFuY2VTdHJlYW0oaSx0LGEpLHM9dGhpcy5jcmVhdGVOZXdEaWN0KGksdCxyP3thcDpyfTp7fSksbj1uZXcgdGhpcy5wcm90b3R5cGUuY29uc3RydWN0b3Ioe2RpY3Q6cyx4cmVmOnQsYW5ub3RhdGlvbkdsb2JhbHM6ZSxldmFsdWF0b3JPcHRpb25zOmEuZXZhbHVhdG9yT3B0aW9uc30pO2kucmVmJiYobi5yZWY9bi5yZWZUb1JlcGxhY2U9aS5yZWYpO3JldHVybiBufX1jbGFzcyBXaWRnZXRBbm5vdGF0aW9uIGV4dGVuZHMgQW5ub3RhdGlvbntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTtjb25zdHtkaWN0OnQseHJlZjppLGFubm90YXRpb25HbG9iYWxzOmF9PWUscj10aGlzLmRhdGE7dGhpcy5fbmVlZEFwcGVhcmFuY2VzPWUubmVlZEFwcGVhcmFuY2VzO3IuYW5ub3RhdGlvblR5cGU9Vjt2b2lkIDA9PT1yLmZpZWxkTmFtZSYmKHIuZmllbGROYW1lPXRoaXMuX2NvbnN0cnVjdEZpZWxkTmFtZSh0KSk7dm9pZCAwPT09ci5hY3Rpb25zJiYoci5hY3Rpb25zPWNvbGxlY3RBY3Rpb25zKGksdCxwQSkpO2xldCBzPWdldEluaGVyaXRhYmxlUHJvcGVydHkoe2RpY3Q6dCxrZXk6IlYiLGdldEFycmF5OiEwfSk7ci5maWVsZFZhbHVlPXRoaXMuX2RlY29kZUZvcm1WYWx1ZShzKTtjb25zdCBuPWdldEluaGVyaXRhYmxlUHJvcGVydHkoe2RpY3Q6dCxrZXk6IkRWIixnZXRBcnJheTohMH0pO3IuZGVmYXVsdEZpZWxkVmFsdWU9dGhpcy5fZGVjb2RlRm9ybVZhbHVlKG4pO2lmKHZvaWQgMD09PXMmJmEueGZhRGF0YXNldHMpe2NvbnN0IGU9dGhpcy5fdGl0bGUuc3RyO2lmKGUpe3RoaXMuX2hhc1ZhbHVlRnJvbVhGQT0hMDtyLmZpZWxkVmFsdWU9cz1hLnhmYURhdGFzZXRzLmdldFZhbHVlKGUpfX12b2lkIDA9PT1zJiZudWxsIT09ci5kZWZhdWx0RmllbGRWYWx1ZSYmKHIuZmllbGRWYWx1ZT1yLmRlZmF1bHRGaWVsZFZhbHVlKTtyLmFsdGVybmF0aXZlVGV4dD1zdHJpbmdUb1BERlN0cmluZyh0LmdldCgiVFUiKXx8IiIpO3RoaXMuc2V0RGVmYXVsdEFwcGVhcmFuY2UoZSk7ci5oYXNBcHBlYXJhbmNlfHw9dGhpcy5fbmVlZEFwcGVhcmFuY2VzJiZ2b2lkIDAhPT1yLmZpZWxkVmFsdWUmJm51bGwhPT1yLmZpZWxkVmFsdWU7Y29uc3Qgbz1nZXRJbmhlcml0YWJsZVByb3BlcnR5KHtkaWN0OnQsa2V5OiJGVCJ9KTtyLmZpZWxkVHlwZT1vIGluc3RhbmNlb2YgTmFtZT9vLm5hbWU6bnVsbDtjb25zdCBnPWdldEluaGVyaXRhYmxlUHJvcGVydHkoe2RpY3Q6dCxrZXk6IkRSIn0pLGM9YS5hY3JvRm9ybS5nZXQoIkRSIiksbD10aGlzLmFwcGVhcmFuY2U/LmRpY3QuZ2V0KCJSZXNvdXJjZXMiKTt0aGlzLl9maWVsZFJlc291cmNlcz17bG9jYWxSZXNvdXJjZXM6ZyxhY3JvRm9ybVJlc291cmNlczpjLGFwcGVhcmFuY2VSZXNvdXJjZXM6bCxtZXJnZWRSZXNvdXJjZXM6RGljdC5tZXJnZSh7eHJlZjppLGRpY3RBcnJheTpbZyxsLGNdLG1lcmdlU3ViRGljdHM6ITB9KX07ci5maWVsZEZsYWdzPWdldEluaGVyaXRhYmxlUHJvcGVydHkoe2RpY3Q6dCxrZXk6IkZmIn0pOyghTnVtYmVyLmlzSW50ZWdlcihyLmZpZWxkRmxhZ3MpfHxyLmZpZWxkRmxhZ3M8MCkmJihyLmZpZWxkRmxhZ3M9MCk7ci5yZWFkT25seT10aGlzLmhhc0ZpZWxkRmxhZyhyQSk7ci5yZXF1aXJlZD10aGlzLmhhc0ZpZWxkRmxhZyhzQSk7ci5oaWRkZW49dGhpcy5faGFzRmxhZyhyLmFubm90YXRpb25GbGFncywkKXx8dGhpcy5faGFzRmxhZyhyLmFubm90YXRpb25GbGFncyx0QSl9X2RlY29kZUZvcm1WYWx1ZShlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lLmZpbHRlcigoZT0+InN0cmluZyI9PXR5cGVvZiBlKSkubWFwKChlPT5zdHJpbmdUb1BERlN0cmluZyhlKSkpOmUgaW5zdGFuY2VvZiBOYW1lP3N0cmluZ1RvUERGU3RyaW5nKGUubmFtZSk6InN0cmluZyI9PXR5cGVvZiBlP3N0cmluZ1RvUERGU3RyaW5nKGUpOm51bGx9aGFzRmllbGRGbGFnKGUpe3JldHVybiEhKHRoaXMuZGF0YS5maWVsZEZsYWdzJmUpfV9pc1ZpZXdhYmxlKGUpe3JldHVybiEwfW11c3RCZVZpZXdlZChlLHQpe3JldHVybiB0P3RoaXMudmlld2FibGU6c3VwZXIubXVzdEJlVmlld2VkKGUsdCkmJiF0aGlzLl9oYXNGbGFnKHRoaXMuZmxhZ3MsdEEpfWdldFJvdGF0aW9uTWF0cml4KGUpe2xldCB0PWU/LmdldCh0aGlzLmRhdGEuaWQpPy5yb3RhdGlvbjt2b2lkIDA9PT10JiYodD10aGlzLnJvdGF0aW9uKTtpZigwPT09dClyZXR1cm4gYTtyZXR1cm4gZ2V0Um90YXRpb25NYXRyaXgodCx0aGlzLmRhdGEucmVjdFsyXS10aGlzLmRhdGEucmVjdFswXSx0aGlzLmRhdGEucmVjdFszXS10aGlzLmRhdGEucmVjdFsxXSl9Z2V0Qm9yZGVyQW5kQmFja2dyb3VuZEFwcGVhcmFuY2VzKGUpe2xldCB0PWU/LmdldCh0aGlzLmRhdGEuaWQpPy5yb3RhdGlvbjt2b2lkIDA9PT10JiYodD10aGlzLnJvdGF0aW9uKTtpZighdGhpcy5iYWNrZ3JvdW5kQ29sb3ImJiF0aGlzLmJvcmRlckNvbG9yKXJldHVybiIiO2NvbnN0IGk9dGhpcy5kYXRhLnJlY3RbMl0tdGhpcy5kYXRhLnJlY3RbMF0sYT10aGlzLmRhdGEucmVjdFszXS10aGlzLmRhdGEucmVjdFsxXSxyPTA9PT10fHwxODA9PT10P2AwIDAgJHtpfSAke2F9IHJlYDpgMCAwICR7YX0gJHtpfSByZWA7bGV0IHM9IiI7dGhpcy5iYWNrZ3JvdW5kQ29sb3ImJihzPWAke2dldFBkZkNvbG9yKHRoaXMuYmFja2dyb3VuZENvbG9yLCEwKX0gJHtyfSBmIGApO2lmKHRoaXMuYm9yZGVyQ29sb3Ipe3MrPWAke3RoaXMuYm9yZGVyU3R5bGUud2lkdGh8fDF9IHcgJHtnZXRQZGZDb2xvcih0aGlzLmJvcmRlckNvbG9yLCExKX0gJHtyfSBTIGB9cmV0dXJuIHN9YXN5bmMgZ2V0T3BlcmF0b3JMaXN0KGUsdCxpLGEpe2lmKGkmQyYmISh0aGlzIGluc3RhbmNlb2YgU2lnbmF0dXJlV2lkZ2V0QW5ub3RhdGlvbikmJiF0aGlzLmRhdGEubm9IVE1MJiYhdGhpcy5kYXRhLmhhc093bkNhbnZhcylyZXR1cm57b3BMaXN0Om5ldyBPcGVyYXRvckxpc3Qsc2VwYXJhdGVGb3JtOiEwLHNlcGFyYXRlQ2FudmFzOiExfTtpZighdGhpcy5faGFzVGV4dClyZXR1cm4gc3VwZXIuZ2V0T3BlcmF0b3JMaXN0KGUsdCxpLGEpO2NvbnN0IHI9YXdhaXQgdGhpcy5fZ2V0QXBwZWFyYW5jZShlLHQsaSxhKTtpZih0aGlzLmFwcGVhcmFuY2UmJm51bGw9PT1yKXJldHVybiBzdXBlci5nZXRPcGVyYXRvckxpc3QoZSx0LGksYSk7Y29uc3Qgcz1uZXcgT3BlcmF0b3JMaXN0O2lmKCF0aGlzLl9kZWZhdWx0QXBwZWFyYW5jZXx8bnVsbD09PXIpcmV0dXJue29wTGlzdDpzLHNlcGFyYXRlRm9ybTohMSxzZXBhcmF0ZUNhbnZhczohMX07Y29uc3Qgbj0hISh0aGlzLmRhdGEuaGFzT3duQ2FudmFzJiZpJmMpLG89WzAsMCx0aGlzLmRhdGEucmVjdFsyXS10aGlzLmRhdGEucmVjdFswXSx0aGlzLmRhdGEucmVjdFszXS10aGlzLmRhdGEucmVjdFsxXV0sZz1nZXRUcmFuc2Zvcm1NYXRyaXgodGhpcy5kYXRhLnJlY3QsbyxbMSwwLDAsMSwwLDBdKTtsZXQgbDt0aGlzLm9jJiYobD1hd2FpdCBlLnBhcnNlTWFya2VkQ29udGVudFByb3BzKHRoaXMub2MsbnVsbCkpO3ZvaWQgMCE9PWwmJnMuYWRkT3AoS2UsWyJPQyIsbF0pO3MuYWRkT3AoVmUsW3RoaXMuZGF0YS5pZCx0aGlzLmRhdGEucmVjdCxnLHRoaXMuZ2V0Um90YXRpb25NYXRyaXgoYSksbl0pO2NvbnN0IGg9bmV3IFN0cmluZ1N0cmVhbShyKTthd2FpdCBlLmdldE9wZXJhdG9yTGlzdCh7c3RyZWFtOmgsdGFzazp0LHJlc291cmNlczp0aGlzLl9maWVsZFJlc291cmNlcy5tZXJnZWRSZXNvdXJjZXMsb3BlcmF0b3JMaXN0OnN9KTtzLmFkZE9wKFplLFtdKTt2b2lkIDAhPT1sJiZzLmFkZE9wKFRlLFtdKTtyZXR1cm57b3BMaXN0OnMsc2VwYXJhdGVGb3JtOiExLHNlcGFyYXRlQ2FudmFzOm59fV9nZXRNS0RpY3QoZSl7Y29uc3QgdD1uZXcgRGljdChudWxsKTtlJiZ0LnNldCgiUiIsZSk7dGhpcy5ib3JkZXJDb2xvciYmdC5zZXQoIkJDIixnZXRQZGZDb2xvckFycmF5KHRoaXMuYm9yZGVyQ29sb3IpKTt0aGlzLmJhY2tncm91bmRDb2xvciYmdC5zZXQoIkJHIixnZXRQZGZDb2xvckFycmF5KHRoaXMuYmFja2dyb3VuZENvbG9yKSk7cmV0dXJuIHQuc2l6ZT4wP3Q6bnVsbH1hbWVuZFNhdmVkRGljdChlLHQpe31zZXRWYWx1ZShlLHQsaSxhKXtjb25zdHtkaWN0OnIscmVmOnN9PWZ1bmN0aW9uIGdldFBhcmVudFRvVXBkYXRlKGUsdCxpKXtjb25zdCBhPW5ldyBSZWZTZXQscj1lLHM9e2RpY3Q6bnVsbCxyZWY6bnVsbH07Zm9yKDtlIGluc3RhbmNlb2YgRGljdCYmIWEuaGFzKHQpOyl7YS5wdXQodCk7aWYoZS5oYXMoIlQiKSlicmVhaztpZighKCh0PWUuZ2V0UmF3KCJQYXJlbnQiKSlpbnN0YW5jZW9mIFJlZikpcmV0dXJuIHM7ZT1pLmZldGNoKHQpfWlmKGUgaW5zdGFuY2VvZiBEaWN0JiZlIT09cil7cy5kaWN0PWU7cy5yZWY9dH1yZXR1cm4gc30oZSx0aGlzLnJlZixpKTtpZihyKXtpZighYS5oYXMocykpe2NvbnN0IGU9ci5jbG9uZSgpO2Uuc2V0KCJWIix0KTthLnB1dChzLHtkYXRhOmV9KTtyZXR1cm4gZX19ZWxzZSBlLnNldCgiViIsdCk7cmV0dXJuIG51bGx9YXN5bmMgc2F2ZShlLHQsaSxyKXtjb25zdCBzPWk/LmdldCh0aGlzLmRhdGEuaWQpLG49dGhpcy5fYnVpbGRGbGFncyhzPy5ub1ZpZXcscz8ubm9QcmludCk7bGV0IG89cz8udmFsdWUsZz1zPy5yb3RhdGlvbjtpZihvPT09dGhpcy5kYXRhLmZpZWxkVmFsdWV8fHZvaWQgMD09PW8pe2lmKCF0aGlzLl9oYXNWYWx1ZUZyb21YRkEmJnZvaWQgMD09PWcmJnZvaWQgMD09PW4pcmV0dXJuO298fD10aGlzLmRhdGEuZmllbGRWYWx1ZX1pZih2b2lkIDA9PT1nJiYhdGhpcy5faGFzVmFsdWVGcm9tWEZBJiZBcnJheS5pc0FycmF5KG8pJiZBcnJheS5pc0FycmF5KHRoaXMuZGF0YS5maWVsZFZhbHVlKSYmaXNBcnJheUVxdWFsKG8sdGhpcy5kYXRhLmZpZWxkVmFsdWUpJiZ2b2lkIDA9PT1uKXJldHVybjt2b2lkIDA9PT1nJiYoZz10aGlzLnJvdGF0aW9uKTtsZXQgYz1udWxsO2lmKCF0aGlzLl9uZWVkQXBwZWFyYW5jZXMpe2M9YXdhaXQgdGhpcy5fZ2V0QXBwZWFyYW5jZShlLHQsaCxpKTtpZihudWxsPT09YyYmdm9pZCAwPT09bilyZXR1cm59bGV0IGw9ITE7aWYoYz8ubmVlZEFwcGVhcmFuY2VzKXtsPSEwO2M9bnVsbH1jb25zdHt4cmVmOkN9PWUsUT1DLmZldGNoSWZSZWYodGhpcy5yZWYpO2lmKCEoUSBpbnN0YW5jZW9mIERpY3QpKXJldHVybjtjb25zdCBFPW5ldyBEaWN0KEMpO2Zvcihjb25zdCBlIG9mIFEuZ2V0S2V5cygpKSJBUCIhPT1lJiZFLnNldChlLFEuZ2V0UmF3KGUpKTtpZih2b2lkIDAhPT1uKXtFLnNldCgiRiIsbik7aWYobnVsbD09PWMmJiFsKXtjb25zdCBlPVEuZ2V0UmF3KCJBUCIpO2UmJkUuc2V0KCJBUCIsZSl9fWNvbnN0IHU9e3BhdGg6dGhpcy5kYXRhLmZpZWxkTmFtZSx2YWx1ZTpvfSxkPXRoaXMuc2V0VmFsdWUoRSxBcnJheS5pc0FycmF5KG8pP28ubWFwKHN0cmluZ1RvQXNjaWlPclVURjE2QkUpOnN0cmluZ1RvQXNjaWlPclVURjE2QkUobyksQyxyKTt0aGlzLmFtZW5kU2F2ZWREaWN0KGksZHx8RSk7Y29uc3QgZj10aGlzLl9nZXRNS0RpY3QoZyk7ZiYmRS5zZXQoIk1LIixmKTtyLnB1dCh0aGlzLnJlZix7ZGF0YTpFLHhmYTp1LG5lZWRBcHBlYXJhbmNlczpsfSk7aWYobnVsbCE9PWMpe2NvbnN0IGU9Qy5nZXROZXdUZW1wb3JhcnlSZWYoKSx0PW5ldyBEaWN0KEMpO0Uuc2V0KCJBUCIsdCk7dC5zZXQoIk4iLGUpO2NvbnN0IHM9dGhpcy5fZ2V0U2F2ZUZpZWxkUmVzb3VyY2VzKEMpLG49bmV3IFN0cmluZ1N0cmVhbShjKSxvPW4uZGljdD1uZXcgRGljdChDKTtvLnNldCgiU3VidHlwZSIsTmFtZS5nZXQoIkZvcm0iKSk7by5zZXQoIlJlc291cmNlcyIscyk7by5zZXQoIkJCb3giLFswLDAsdGhpcy5kYXRhLnJlY3RbMl0tdGhpcy5kYXRhLnJlY3RbMF0sdGhpcy5kYXRhLnJlY3RbM10tdGhpcy5kYXRhLnJlY3RbMV1dKTtjb25zdCBnPXRoaXMuZ2V0Um90YXRpb25NYXRyaXgoaSk7ZyE9PWEmJm8uc2V0KCJNYXRyaXgiLGcpO3IucHV0KGUse2RhdGE6bix4ZmE6bnVsbCxuZWVkQXBwZWFyYW5jZXM6ITF9KX1FLnNldCgiTSIsYEQ6JHtnZXRNb2RpZmljYXRpb25EYXRlKCl9YCl9YXN5bmMgX2dldEFwcGVhcmFuY2UoZSx0LGksYSl7aWYodGhpcy5oYXNGaWVsZEZsYWcob0EpKXJldHVybiBudWxsO2NvbnN0IHI9YT8uZ2V0KHRoaXMuZGF0YS5pZCk7bGV0IHMsbjtpZihyKXtzPXIuZm9ybWF0dGVkVmFsdWV8fHIudmFsdWU7bj1yLnJvdGF0aW9ufWlmKHZvaWQgMD09PW4mJnZvaWQgMD09PXMmJiF0aGlzLl9uZWVkQXBwZWFyYW5jZXMmJighdGhpcy5faGFzVmFsdWVGcm9tWEZBfHx0aGlzLmFwcGVhcmFuY2UpKXJldHVybiBudWxsO2NvbnN0IGc9dGhpcy5nZXRCb3JkZXJBbmRCYWNrZ3JvdW5kQXBwZWFyYW5jZXMoYSk7aWYodm9pZCAwPT09cyl7cz10aGlzLmRhdGEuZmllbGRWYWx1ZTtpZighcylyZXR1cm5gL1R4IEJNQyBxICR7Z31RIEVNQ2B9QXJyYXkuaXNBcnJheShzKSYmMT09PXMubGVuZ3RoJiYocz1zWzBdKTthc3NlcnQoInN0cmluZyI9PXR5cGVvZiBzLCJFeHBlY3RlZCBgdmFsdWVgIHRvIGJlIGEgc3RyaW5nLiIpO3M9cy50cmltRW5kKCk7aWYodGhpcy5kYXRhLmNvbWJvKXtjb25zdCBlPXRoaXMuZGF0YS5vcHRpb25zLmZpbmQoKCh7ZXhwb3J0VmFsdWU6ZX0pPT5zPT09ZSkpO3M9ZT8uZGlzcGxheVZhbHVlfHxzfWlmKCIiPT09cylyZXR1cm5gL1R4IEJNQyBxICR7Z31RIEVNQ2A7dm9pZCAwPT09biYmKG49dGhpcy5yb3RhdGlvbik7bGV0IGMsbD0tMTtpZih0aGlzLmRhdGEubXVsdGlMaW5lKXtjPXMuc3BsaXQoL1xyXG4/fFxuLykubWFwKChlPT5lLm5vcm1hbGl6ZSgiTkZDIikpKTtsPWMubGVuZ3RofWVsc2UgYz1bcy5yZXBsYWNlKC9cclxuP3xcbi8sIiIpLm5vcm1hbGl6ZSgiTkZDIildO2xldCBDPXRoaXMuZGF0YS5yZWN0WzNdLXRoaXMuZGF0YS5yZWN0WzFdLFE9dGhpcy5kYXRhLnJlY3RbMl0tdGhpcy5kYXRhLnJlY3RbMF07OTAhPT1uJiYyNzAhPT1ufHwoW1EsQ109W0MsUV0pO3RoaXMuX2RlZmF1bHRBcHBlYXJhbmNlfHwodGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YT1wYXJzZURlZmF1bHRBcHBlYXJhbmNlKHRoaXMuX2RlZmF1bHRBcHBlYXJhbmNlPSIvSGVsdmV0aWNhIDAgVGYgMCBnIikpO2xldCBFLHUsZCxmPWF3YWl0IFdpZGdldEFubm90YXRpb24uX2dldEZvbnREYXRhKGUsdCx0aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhLHRoaXMuX2ZpZWxkUmVzb3VyY2VzLm1lcmdlZFJlc291cmNlcyk7Y29uc3QgcD1bXTtsZXQgbT0hMTtmb3IoY29uc3QgZSBvZiBjKXtjb25zdCB0PWYuZW5jb2RlU3RyaW5nKGUpO3QubGVuZ3RoPjEmJihtPSEwKTtwLnB1c2godC5qb2luKCIiKSl9aWYobSYmaSZoKXJldHVybntuZWVkQXBwZWFyYW5jZXM6ITB9O2lmKG0mJnRoaXMuX2lzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkKXtjb25zdCBpPXRoaXMuZGF0YS5jb21iPyJtb25vc3BhY2UiOiJzYW5zLXNlcmlmIixhPW5ldyBGYWtlVW5pY29kZUZvbnQoZS54cmVmLGkpLHI9YS5jcmVhdGVGb250UmVzb3VyY2VzKGMuam9pbigiIikpLG49ci5nZXRSYXcoIkZvbnQiKTtpZih0aGlzLl9maWVsZFJlc291cmNlcy5tZXJnZWRSZXNvdXJjZXMuaGFzKCJGb250Iikpe2NvbnN0IGU9dGhpcy5fZmllbGRSZXNvdXJjZXMubWVyZ2VkUmVzb3VyY2VzLmdldCgiRm9udCIpO2Zvcihjb25zdCB0IG9mIG4uZ2V0S2V5cygpKWUuc2V0KHQsbi5nZXRSYXcodCkpfWVsc2UgdGhpcy5fZmllbGRSZXNvdXJjZXMubWVyZ2VkUmVzb3VyY2VzLnNldCgiRm9udCIsbik7Y29uc3Qgbz1hLmZvbnROYW1lLm5hbWU7Zj1hd2FpdCBXaWRnZXRBbm5vdGF0aW9uLl9nZXRGb250RGF0YShlLHQse2ZvbnROYW1lOm8sZm9udFNpemU6MH0scik7Zm9yKGxldCBlPTAsdD1wLmxlbmd0aDtlPHQ7ZSsrKXBbZV09c3RyaW5nVG9VVEYxNlN0cmluZyhjW2VdKTtjb25zdCBnPU9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhKTt0aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhLmZvbnRTaXplPTA7dGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YS5mb250TmFtZT1vO1tFLHUsZF09dGhpcy5fY29tcHV0ZUZvbnRTaXplKEMtMixRLTQscyxmLGwpO3RoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGE9Z31lbHNle3RoaXMuX2lzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkfHx3YXJuKCJfZ2V0QXBwZWFyYW5jZTogT2Zmc2NyZWVuQ2FudmFzIGlzIG5vdCBzdXBwb3J0ZWQsIGFubm90YXRpb24gbWF5IG5vdCByZW5kZXIgY29ycmVjdGx5LiIpO1tFLHUsZF09dGhpcy5fY29tcHV0ZUZvbnRTaXplKEMtMixRLTQscyxmLGwpfWxldCB5PWYuZGVzY2VudDt5PWlzTmFOKHkpP28qZDpNYXRoLm1heChvKmQsTWF0aC5hYnMoeSkqdSk7Y29uc3Qgdz1NYXRoLm1pbihNYXRoLmZsb29yKChDLXUpLzIpLDEpLGI9dGhpcy5kYXRhLnRleHRBbGlnbm1lbnQ7aWYodGhpcy5kYXRhLm11bHRpTGluZSlyZXR1cm4gdGhpcy5fZ2V0TXVsdGlsaW5lQXBwZWFyYW5jZShFLHAsZix1LFEsQyxiLDIsdyx5LGQsYSk7aWYodGhpcy5kYXRhLmNvbWIpcmV0dXJuIHRoaXMuX2dldENvbWJBcHBlYXJhbmNlKEUsZixwWzBdLHUsUSxDLDIsdyx5LGQsYSk7Y29uc3QgRD13K3k7aWYoMD09PWJ8fGI+MilyZXR1cm5gL1R4IEJNQyBxICR7Z31CVCBgK0UrYCAxIDAgMCAxICR7bnVtYmVyVG9TdHJpbmcoMil9ICR7bnVtYmVyVG9TdHJpbmcoRCl9IFRtICgke2VzY2FwZVN0cmluZyhwWzBdKX0pIFRqIEVUIFEgRU1DYDtyZXR1cm5gL1R4IEJNQyBxICR7Z31CVCBgK0UrYCAxIDAgMCAxIDAgMCBUbSAke3RoaXMuX3JlbmRlclRleHQocFswXSxmLHUsUSxiLHtzaGlmdDowfSwyLEQpfSBFVCBRIEVNQ2B9c3RhdGljIGFzeW5jIF9nZXRGb250RGF0YShlLHQsaSxhKXtjb25zdCByPW5ldyBPcGVyYXRvckxpc3Qscz17Zm9udDpudWxsLGNsb25lKCl7cmV0dXJuIHRoaXN9fSx7Zm9udE5hbWU6bixmb250U2l6ZTpvfT1pO2F3YWl0IGUuaGFuZGxlU2V0Rm9udChhLFtuJiZOYW1lLmdldChuKSxvXSxudWxsLHIsdCxzLG51bGwpO3JldHVybiBzLmZvbnR9X2dldFRleHRXaWR0aChlLHQpe3JldHVybiB0LmNoYXJzVG9HbHlwaHMoZSkucmVkdWNlKCgoZSx0KT0+ZSt0LndpZHRoKSwwKS8xZTN9X2NvbXB1dGVGb250U2l6ZShlLHQsaSxhLHIpe2xldHtmb250U2l6ZTpufT10aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhLG89KG58fDEyKSpzLGc9TWF0aC5yb3VuZChlL28pO2lmKCFuKXtjb25zdCByb3VuZFdpdGhUd29EaWdpdHM9ZT0+TWF0aC5mbG9vcigxMDAqZSkvMTAwO2lmKC0xPT09cil7Y29uc3Qgcj10aGlzLl9nZXRUZXh0V2lkdGgoaSxhKTtuPXJvdW5kV2l0aFR3b0RpZ2l0cyhNYXRoLm1pbihlL3MsdC9yKSk7Zz0xfWVsc2V7Y29uc3QgYz1pLnNwbGl0KC9cclxuP3xcbi8pLGw9W107Zm9yKGNvbnN0IGUgb2YgYyl7Y29uc3QgdD1hLmVuY29kZVN0cmluZyhlKS5qb2luKCIiKSxpPWEuY2hhcnNUb0dseXBocyh0KSxyPWEuZ2V0Q2hhclBvc2l0aW9ucyh0KTtsLnB1c2goe2xpbmU6dCxnbHlwaHM6aSxwb3NpdGlvbnM6cn0pfWNvbnN0IGlzVG9vQmlnPWk9PntsZXQgcj0wO2Zvcihjb25zdCBzIG9mIGwpe3IrPXRoaXMuX3NwbGl0TGluZShudWxsLGEsaSx0LHMpLmxlbmd0aCppO2lmKHI+ZSlyZXR1cm4hMH1yZXR1cm4hMX07Zz1NYXRoLm1heChnLHIpO2Zvcig7Oyl7bz1lL2c7bj1yb3VuZFdpdGhUd29EaWdpdHMoby9zKTtpZighaXNUb29CaWcobikpYnJlYWs7ZysrfX1jb25zdHtmb250TmFtZTpjLGZvbnRDb2xvcjpsfT10aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhO3RoaXMuX2RlZmF1bHRBcHBlYXJhbmNlPWZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRBcHBlYXJhbmNlKHtmb250U2l6ZTplLGZvbnROYW1lOnQsZm9udENvbG9yOml9KXtyZXR1cm5gLyR7ZXNjYXBlUERGTmFtZSh0KX0gJHtlfSBUZiAke2dldFBkZkNvbG9yKGksITApfWB9KHtmb250U2l6ZTpuLGZvbnROYW1lOmMsZm9udENvbG9yOmx9KX1yZXR1cm5bdGhpcy5fZGVmYXVsdEFwcGVhcmFuY2UsbixlL2ddfV9yZW5kZXJUZXh0KGUsdCxpLGEscixzLG4sbyl7bGV0IGc7aWYoMT09PXIpe2c9KGEtdGhpcy5fZ2V0VGV4dFdpZHRoKGUsdCkqaSkvMn1lbHNlIGlmKDI9PT1yKXtnPWEtdGhpcy5fZ2V0VGV4dFdpZHRoKGUsdCkqaS1ufWVsc2UgZz1uO2NvbnN0IGM9bnVtYmVyVG9TdHJpbmcoZy1zLnNoaWZ0KTtzLnNoaWZ0PWc7cmV0dXJuYCR7Y30gJHtvPW51bWJlclRvU3RyaW5nKG8pfSBUZCAoJHtlc2NhcGVTdHJpbmcoZSl9KSBUamB9X2dldFNhdmVGaWVsZFJlc291cmNlcyhlKXtjb25zdHtsb2NhbFJlc291cmNlczp0LGFwcGVhcmFuY2VSZXNvdXJjZXM6aSxhY3JvRm9ybVJlc291cmNlczphfT10aGlzLl9maWVsZFJlc291cmNlcyxyPXRoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGE/LmZvbnROYW1lO2lmKCFyKXJldHVybiB0fHxEaWN0LmVtcHR5O2Zvcihjb25zdCBlIG9mW3QsaV0paWYoZSBpbnN0YW5jZW9mIERpY3Qpe2NvbnN0IHQ9ZS5nZXQoIkZvbnQiKTtpZih0IGluc3RhbmNlb2YgRGljdCYmdC5oYXMocikpcmV0dXJuIGV9aWYoYSBpbnN0YW5jZW9mIERpY3Qpe2NvbnN0IGk9YS5nZXQoIkZvbnQiKTtpZihpIGluc3RhbmNlb2YgRGljdCYmaS5oYXMocikpe2NvbnN0IGE9bmV3IERpY3QoZSk7YS5zZXQocixpLmdldFJhdyhyKSk7Y29uc3Qgcz1uZXcgRGljdChlKTtzLnNldCgiRm9udCIsYSk7cmV0dXJuIERpY3QubWVyZ2Uoe3hyZWY6ZSxkaWN0QXJyYXk6W3MsdF0sbWVyZ2VTdWJEaWN0czohMH0pfX1yZXR1cm4gdHx8RGljdC5lbXB0eX1nZXRGaWVsZE9iamVjdCgpe3JldHVybiBudWxsfX1jbGFzcyBUZXh0V2lkZ2V0QW5ub3RhdGlvbiBleHRlbmRzIFdpZGdldEFubm90YXRpb257Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7Y29uc3R7ZGljdDp0fT1lO2lmKHQuaGFzKCJQTUQiKSl7dGhpcy5mbGFnc3w9JDt0aGlzLmRhdGEuaGlkZGVuPSEwO3dhcm4oIkJhcmNvZGVzIGFyZSBub3Qgc3VwcG9ydGVkIil9dGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEucmVhZE9ubHkmJiF0aGlzLmRhdGEubm9IVE1MO3RoaXMuX2hhc1RleHQ9ITA7InN0cmluZyIhPXR5cGVvZiB0aGlzLmRhdGEuZmllbGRWYWx1ZSYmKHRoaXMuZGF0YS5maWVsZFZhbHVlPSIiKTtsZXQgaT1nZXRJbmhlcml0YWJsZVByb3BlcnR5KHtkaWN0OnQsa2V5OiJRIn0pOyghTnVtYmVyLmlzSW50ZWdlcihpKXx8aTwwfHxpPjIpJiYoaT1udWxsKTt0aGlzLmRhdGEudGV4dEFsaWdubWVudD1pO2xldCBhPWdldEluaGVyaXRhYmxlUHJvcGVydHkoe2RpY3Q6dCxrZXk6Ik1heExlbiJ9KTsoIU51bWJlci5pc0ludGVnZXIoYSl8fGE8MCkmJihhPTApO3RoaXMuZGF0YS5tYXhMZW49YTt0aGlzLmRhdGEubXVsdGlMaW5lPXRoaXMuaGFzRmllbGRGbGFnKG5BKTt0aGlzLmRhdGEuY29tYj10aGlzLmhhc0ZpZWxkRmxhZyhCQSkmJiF0aGlzLmhhc0ZpZWxkRmxhZyhuQSkmJiF0aGlzLmhhc0ZpZWxkRmxhZyhvQSkmJiF0aGlzLmhhc0ZpZWxkRmxhZyhsQSkmJjAhPT10aGlzLmRhdGEubWF4TGVuO3RoaXMuZGF0YS5kb05vdFNjcm9sbD10aGlzLmhhc0ZpZWxkRmxhZyhDQSl9Z2V0IGhhc1RleHRDb250ZW50KCl7cmV0dXJuISF0aGlzLmFwcGVhcmFuY2UmJiF0aGlzLl9uZWVkQXBwZWFyYW5jZXN9X2dldENvbWJBcHBlYXJhbmNlKGUsdCxpLGEscixzLG4sbyxnLGMsbCl7Y29uc3QgaD1yL3RoaXMuZGF0YS5tYXhMZW4sQz10aGlzLmdldEJvcmRlckFuZEJhY2tncm91bmRBcHBlYXJhbmNlcyhsKSxRPVtdLEU9dC5nZXRDaGFyUG9zaXRpb25zKGkpO2Zvcihjb25zdFtlLHRdb2YgRSlRLnB1c2goYCgke2VzY2FwZVN0cmluZyhpLnN1YnN0cmluZyhlLHQpKX0pIFRqYCk7Y29uc3QgdT1RLmpvaW4oYCAke251bWJlclRvU3RyaW5nKGgpfSAwIFRkIGApO3JldHVybmAvVHggQk1DIHEgJHtDfUJUIGArZStgIDEgMCAwIDEgJHtudW1iZXJUb1N0cmluZyhuKX0gJHtudW1iZXJUb1N0cmluZyhvK2cpfSBUbSAke3V9IEVUIFEgRU1DYH1fZ2V0TXVsdGlsaW5lQXBwZWFyYW5jZShlLHQsaSxhLHIscyxuLG8sZyxjLGwsaCl7Y29uc3QgQz1bXSxRPXItMipvLEU9e3NoaWZ0OjB9O2ZvcihsZXQgZT0wLHM9dC5sZW5ndGg7ZTxzO2UrKyl7Y29uc3Qgcz10W2VdLGg9dGhpcy5fc3BsaXRMaW5lKHMsaSxhLFEpO2ZvcihsZXQgdD0wLHM9aC5sZW5ndGg7dDxzO3QrKyl7Y29uc3Qgcz1oW3RdLFE9MD09PWUmJjA9PT10Py1nLShsLWMpOi1sO0MucHVzaCh0aGlzLl9yZW5kZXJUZXh0KHMsaSxhLHIsbixFLG8sUSkpfX1jb25zdCB1PXRoaXMuZ2V0Qm9yZGVyQW5kQmFja2dyb3VuZEFwcGVhcmFuY2VzKGgpLGQ9Qy5qb2luKCJcbiIpO3JldHVybmAvVHggQk1DIHEgJHt1fUJUIGArZStgIDEgMCAwIDEgMCAke251bWJlclRvU3RyaW5nKHMpfSBUbSAke2R9IEVUIFEgRU1DYH1fc3BsaXRMaW5lKGUsdCxpLGEscj17fSl7ZT1yLmxpbmV8fGU7Y29uc3Qgcz1yLmdseXBoc3x8dC5jaGFyc1RvR2x5cGhzKGUpO2lmKHMubGVuZ3RoPD0xKXJldHVybltlXTtjb25zdCBuPXIucG9zaXRpb25zfHx0LmdldENoYXJQb3NpdGlvbnMoZSksbz1pLzFlMyxnPVtdO2xldCBjPS0xLGw9LTEsaD0tMSxDPTAsUT0wO2ZvcihsZXQgdD0wLGk9cy5sZW5ndGg7dDxpO3QrKyl7Y29uc3RbaSxyXT1uW3RdLEU9c1t0XSx1PUUud2lkdGgqbztpZigiICI9PT1FLnVuaWNvZGUpaWYoUSt1PmEpe2cucHVzaChlLnN1YnN0cmluZyhDLGkpKTtDPWk7UT11O2M9LTE7aD0tMX1lbHNle1ErPXU7Yz1pO2w9cjtoPXR9ZWxzZSBpZihRK3U+YSlpZigtMSE9PWMpe2cucHVzaChlLnN1YnN0cmluZyhDLGwpKTtDPWw7dD1oKzE7Yz0tMTtRPTB9ZWxzZXtnLnB1c2goZS5zdWJzdHJpbmcoQyxpKSk7Qz1pO1E9dX1lbHNlIFErPXV9QzxlLmxlbmd0aCYmZy5wdXNoKGUuc3Vic3RyaW5nKEMsZS5sZW5ndGgpKTtyZXR1cm4gZ31hc3luYyBleHRyYWN0VGV4dENvbnRlbnQoZSx0LGkpe2F3YWl0IHN1cGVyLmV4dHJhY3RUZXh0Q29udGVudChlLHQsaSk7Y29uc3QgYT10aGlzLmRhdGEudGV4dENvbnRlbnQ7aWYoIWEpcmV0dXJuO2NvbnN0IHI9YS5qb2luKCJcbiIpO2lmKHI9PT10aGlzLmRhdGEuZmllbGRWYWx1ZSlyZXR1cm47Y29uc3Qgcz1yLnJlcGxhY2VBbGwoLyhbLiorP14ke30oKXxbXF1cXF0pfChccyspL2csKChlLHQpPT50P2BcXCR7dH1gOiJcXHMrIikpO25ldyBSZWdFeHAoYF5cXHMqJHtzfVxccyokYCkudGVzdCh0aGlzLmRhdGEuZmllbGRWYWx1ZSkmJih0aGlzLmRhdGEudGV4dENvbnRlbnQ9dGhpcy5kYXRhLmZpZWxkVmFsdWUuc3BsaXQoIlxuIikpfWdldEZpZWxkT2JqZWN0KCl7cmV0dXJue2lkOnRoaXMuZGF0YS5pZCx2YWx1ZTp0aGlzLmRhdGEuZmllbGRWYWx1ZSxkZWZhdWx0VmFsdWU6dGhpcy5kYXRhLmRlZmF1bHRGaWVsZFZhbHVlfHwiIixtdWx0aWxpbmU6dGhpcy5kYXRhLm11bHRpTGluZSxwYXNzd29yZDp0aGlzLmhhc0ZpZWxkRmxhZyhvQSksY2hhckxpbWl0OnRoaXMuZGF0YS5tYXhMZW4sY29tYjp0aGlzLmRhdGEuY29tYixlZGl0YWJsZTohdGhpcy5kYXRhLnJlYWRPbmx5LGhpZGRlbjp0aGlzLmRhdGEuaGlkZGVuLG5hbWU6dGhpcy5kYXRhLmZpZWxkTmFtZSxyZWN0OnRoaXMuZGF0YS5yZWN0LGFjdGlvbnM6dGhpcy5kYXRhLmFjdGlvbnMscGFnZTp0aGlzLmRhdGEucGFnZUluZGV4LHN0cm9rZUNvbG9yOnRoaXMuZGF0YS5ib3JkZXJDb2xvcixmaWxsQ29sb3I6dGhpcy5kYXRhLmJhY2tncm91bmRDb2xvcixyb3RhdGlvbjp0aGlzLnJvdGF0aW9uLHR5cGU6InRleHQifX19Y2xhc3MgQnV0dG9uV2lkZ2V0QW5ub3RhdGlvbiBleHRlbmRzIFdpZGdldEFubm90YXRpb257Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7dGhpcy5jaGVja2VkQXBwZWFyYW5jZT1udWxsO3RoaXMudW5jaGVja2VkQXBwZWFyYW5jZT1udWxsO3RoaXMuZGF0YS5jaGVja0JveD0hdGhpcy5oYXNGaWVsZEZsYWcoZ0EpJiYhdGhpcy5oYXNGaWVsZEZsYWcoSUEpO3RoaXMuZGF0YS5yYWRpb0J1dHRvbj10aGlzLmhhc0ZpZWxkRmxhZyhnQSkmJiF0aGlzLmhhc0ZpZWxkRmxhZyhJQSk7dGhpcy5kYXRhLnB1c2hCdXR0b249dGhpcy5oYXNGaWVsZEZsYWcoSUEpO3RoaXMuZGF0YS5pc1Rvb2x0aXBPbmx5PSExO2lmKHRoaXMuZGF0YS5jaGVja0JveCl0aGlzLl9wcm9jZXNzQ2hlY2tCb3goZSk7ZWxzZSBpZih0aGlzLmRhdGEucmFkaW9CdXR0b24pdGhpcy5fcHJvY2Vzc1JhZGlvQnV0dG9uKGUpO2Vsc2UgaWYodGhpcy5kYXRhLnB1c2hCdXR0b24pe3RoaXMuZGF0YS5oYXNPd25DYW52YXM9ITA7dGhpcy5kYXRhLm5vSFRNTD0hMTt0aGlzLl9wcm9jZXNzUHVzaEJ1dHRvbihlKX1lbHNlIHdhcm4oIkludmFsaWQgZmllbGQgZmxhZ3MgZm9yIGJ1dHRvbiB3aWRnZXQgYW5ub3RhdGlvbiIpfWFzeW5jIGdldE9wZXJhdG9yTGlzdChlLHQsaSxyKXtpZih0aGlzLmRhdGEucHVzaEJ1dHRvbilyZXR1cm4gc3VwZXIuZ2V0T3BlcmF0b3JMaXN0KGUsdCxpLCExLHIpO2xldCBzPW51bGwsbj1udWxsO2lmKHIpe2NvbnN0IGU9ci5nZXQodGhpcy5kYXRhLmlkKTtzPWU/ZS52YWx1ZTpudWxsO249ZT9lLnJvdGF0aW9uOm51bGx9aWYobnVsbD09PXMmJnRoaXMuYXBwZWFyYW5jZSlyZXR1cm4gc3VwZXIuZ2V0T3BlcmF0b3JMaXN0KGUsdCxpLHIpO251bGw9PXMmJihzPXRoaXMuZGF0YS5jaGVja0JveD90aGlzLmRhdGEuZmllbGRWYWx1ZT09PXRoaXMuZGF0YS5leHBvcnRWYWx1ZTp0aGlzLmRhdGEuZmllbGRWYWx1ZT09PXRoaXMuZGF0YS5idXR0b25WYWx1ZSk7Y29uc3Qgbz1zP3RoaXMuY2hlY2tlZEFwcGVhcmFuY2U6dGhpcy51bmNoZWNrZWRBcHBlYXJhbmNlO2lmKG8pe2NvbnN0IHM9dGhpcy5hcHBlYXJhbmNlLGc9bG9va3VwTWF0cml4KG8uZGljdC5nZXRBcnJheSgiTWF0cml4IiksYSk7biYmby5kaWN0LnNldCgiTWF0cml4Iix0aGlzLmdldFJvdGF0aW9uTWF0cml4KHIpKTt0aGlzLmFwcGVhcmFuY2U9bztjb25zdCBjPXN1cGVyLmdldE9wZXJhdG9yTGlzdChlLHQsaSxyKTt0aGlzLmFwcGVhcmFuY2U9cztvLmRpY3Quc2V0KCJNYXRyaXgiLGcpO3JldHVybiBjfXJldHVybntvcExpc3Q6bmV3IE9wZXJhdG9yTGlzdCxzZXBhcmF0ZUZvcm06ITEsc2VwYXJhdGVDYW52YXM6ITF9fWFzeW5jIHNhdmUoZSx0LGksYSl7dGhpcy5kYXRhLmNoZWNrQm94P3RoaXMuX3NhdmVDaGVja2JveChlLHQsaSxhKTp0aGlzLmRhdGEucmFkaW9CdXR0b24mJnRoaXMuX3NhdmVSYWRpb0J1dHRvbihlLHQsaSxhKX1hc3luYyBfc2F2ZUNoZWNrYm94KGUsdCxpLGEpe2lmKCFpKXJldHVybjtjb25zdCByPWkuZ2V0KHRoaXMuZGF0YS5pZCkscz10aGlzLl9idWlsZEZsYWdzKHI/Lm5vVmlldyxyPy5ub1ByaW50KTtsZXQgbj1yPy5yb3RhdGlvbixvPXI/LnZhbHVlO2lmKHZvaWQgMD09PW4mJnZvaWQgMD09PXMpe2lmKHZvaWQgMD09PW8pcmV0dXJuO2lmKHRoaXMuZGF0YS5maWVsZFZhbHVlPT09dGhpcy5kYXRhLmV4cG9ydFZhbHVlPT09bylyZXR1cm59bGV0IGc9ZS54cmVmLmZldGNoSWZSZWYodGhpcy5yZWYpO2lmKCEoZyBpbnN0YW5jZW9mIERpY3QpKXJldHVybjtnPWcuY2xvbmUoKTt2b2lkIDA9PT1uJiYobj10aGlzLnJvdGF0aW9uKTt2b2lkIDA9PT1vJiYobz10aGlzLmRhdGEuZmllbGRWYWx1ZT09PXRoaXMuZGF0YS5leHBvcnRWYWx1ZSk7Y29uc3QgYz17cGF0aDp0aGlzLmRhdGEuZmllbGROYW1lLHZhbHVlOm8/dGhpcy5kYXRhLmV4cG9ydFZhbHVlOiIifSxsPU5hbWUuZ2V0KG8/dGhpcy5kYXRhLmV4cG9ydFZhbHVlOiJPZmYiKTt0aGlzLnNldFZhbHVlKGcsbCxlLnhyZWYsYSk7Zy5zZXQoIkFTIixsKTtnLnNldCgiTSIsYEQ6JHtnZXRNb2RpZmljYXRpb25EYXRlKCl9YCk7dm9pZCAwIT09cyYmZy5zZXQoIkYiLHMpO2NvbnN0IGg9dGhpcy5fZ2V0TUtEaWN0KG4pO2gmJmcuc2V0KCJNSyIsaCk7YS5wdXQodGhpcy5yZWYse2RhdGE6Zyx4ZmE6YyxuZWVkQXBwZWFyYW5jZXM6ITF9KX1hc3luYyBfc2F2ZVJhZGlvQnV0dG9uKGUsdCxpLGEpe2lmKCFpKXJldHVybjtjb25zdCByPWkuZ2V0KHRoaXMuZGF0YS5pZCkscz10aGlzLl9idWlsZEZsYWdzKHI/Lm5vVmlldyxyPy5ub1ByaW50KTtsZXQgbj1yPy5yb3RhdGlvbixvPXI/LnZhbHVlO2lmKHZvaWQgMD09PW4mJnZvaWQgMD09PXMpe2lmKHZvaWQgMD09PW8pcmV0dXJuO2lmKHRoaXMuZGF0YS5maWVsZFZhbHVlPT09dGhpcy5kYXRhLmJ1dHRvblZhbHVlPT09bylyZXR1cm59bGV0IGc9ZS54cmVmLmZldGNoSWZSZWYodGhpcy5yZWYpO2lmKCEoZyBpbnN0YW5jZW9mIERpY3QpKXJldHVybjtnPWcuY2xvbmUoKTt2b2lkIDA9PT1vJiYobz10aGlzLmRhdGEuZmllbGRWYWx1ZT09PXRoaXMuZGF0YS5idXR0b25WYWx1ZSk7dm9pZCAwPT09biYmKG49dGhpcy5yb3RhdGlvbik7Y29uc3QgYz17cGF0aDp0aGlzLmRhdGEuZmllbGROYW1lLHZhbHVlOm8/dGhpcy5kYXRhLmJ1dHRvblZhbHVlOiIifSxsPU5hbWUuZ2V0KG8/dGhpcy5kYXRhLmJ1dHRvblZhbHVlOiJPZmYiKTtvJiZ0aGlzLnNldFZhbHVlKGcsbCxlLnhyZWYsYSk7Zy5zZXQoIkFTIixsKTtnLnNldCgiTSIsYEQ6JHtnZXRNb2RpZmljYXRpb25EYXRlKCl9YCk7dm9pZCAwIT09cyYmZy5zZXQoIkYiLHMpO2NvbnN0IGg9dGhpcy5fZ2V0TUtEaWN0KG4pO2gmJmcuc2V0KCJNSyIsaCk7YS5wdXQodGhpcy5yZWYse2RhdGE6Zyx4ZmE6YyxuZWVkQXBwZWFyYW5jZXM6ITF9KX1fZ2V0RGVmYXVsdENoZWNrZWRBcHBlYXJhbmNlKGUsdCl7Y29uc3QgaT10aGlzLmRhdGEucmVjdFsyXS10aGlzLmRhdGEucmVjdFswXSxhPXRoaXMuZGF0YS5yZWN0WzNdLXRoaXMuZGF0YS5yZWN0WzFdLHI9WzAsMCxpLGFdLHM9LjgqTWF0aC5taW4oaSxhKTtsZXQgbixvO2lmKCJjaGVjayI9PT10KXtuPXt3aWR0aDouNzU1KnMsaGVpZ2h0Oi43MDUqc307bz0iMyJ9ZWxzZSBpZigiZGlzYyI9PT10KXtuPXt3aWR0aDouNzkxKnMsaGVpZ2h0Oi43MDUqc307bz0ibCJ9ZWxzZSB1bnJlYWNoYWJsZShgX2dldERlZmF1bHRDaGVja2VkQXBwZWFyYW5jZSAtIHVuc3VwcG9ydGVkIHR5cGU6ICR7dH1gKTtjb25zdCBnPWBxIEJUIC9QZGZKc1phRGIgJHtzfSBUZiAwIGcgJHtudW1iZXJUb1N0cmluZygoaS1uLndpZHRoKS8yKX0gJHtudW1iZXJUb1N0cmluZygoYS1uLmhlaWdodCkvMil9IFRkICgke299KSBUaiBFVCBRYCxjPW5ldyBEaWN0KGUueHJlZik7Yy5zZXQoIkZvcm1UeXBlIiwxKTtjLnNldCgiU3VidHlwZSIsTmFtZS5nZXQoIkZvcm0iKSk7Yy5zZXQoIlR5cGUiLE5hbWUuZ2V0KCJYT2JqZWN0IikpO2Muc2V0KCJCQm94IixyKTtjLnNldCgiTWF0cml4IixbMSwwLDAsMSwwLDBdKTtjLnNldCgiTGVuZ3RoIixnLmxlbmd0aCk7Y29uc3QgbD1uZXcgRGljdChlLnhyZWYpLGg9bmV3IERpY3QoZS54cmVmKTtoLnNldCgiUGRmSnNaYURiIix0aGlzLmZhbGxiYWNrRm9udERpY3QpO2wuc2V0KCJGb250IixoKTtjLnNldCgiUmVzb3VyY2VzIixsKTt0aGlzLmNoZWNrZWRBcHBlYXJhbmNlPW5ldyBTdHJpbmdTdHJlYW0oZyk7dGhpcy5jaGVja2VkQXBwZWFyYW5jZS5kaWN0PWM7dGhpcy5fc3RyZWFtcy5wdXNoKHRoaXMuY2hlY2tlZEFwcGVhcmFuY2UpfV9wcm9jZXNzQ2hlY2tCb3goZSl7Y29uc3QgdD1lLmRpY3QuZ2V0KCJBUCIpO2lmKCEodCBpbnN0YW5jZW9mIERpY3QpKXJldHVybjtjb25zdCBpPXQuZ2V0KCJOIik7aWYoIShpIGluc3RhbmNlb2YgRGljdCkpcmV0dXJuO2NvbnN0IGE9dGhpcy5fZGVjb2RlRm9ybVZhbHVlKGUuZGljdC5nZXQoIkFTIikpOyJzdHJpbmciPT10eXBlb2YgYSYmKHRoaXMuZGF0YS5maWVsZFZhbHVlPWEpO2NvbnN0IHI9bnVsbCE9PXRoaXMuZGF0YS5maWVsZFZhbHVlJiYiT2ZmIiE9PXRoaXMuZGF0YS5maWVsZFZhbHVlP3RoaXMuZGF0YS5maWVsZFZhbHVlOiJZZXMiLHM9aS5nZXRLZXlzKCk7aWYoMD09PXMubGVuZ3RoKXMucHVzaCgiT2ZmIixyKTtlbHNlIGlmKDE9PT1zLmxlbmd0aCkiT2ZmIj09PXNbMF0/cy5wdXNoKHIpOnMudW5zaGlmdCgiT2ZmIik7ZWxzZSBpZihzLmluY2x1ZGVzKHIpKXtzLmxlbmd0aD0wO3MucHVzaCgiT2ZmIixyKX1lbHNle2NvbnN0IGU9cy5maW5kKChlPT4iT2ZmIiE9PWUpKTtzLmxlbmd0aD0wO3MucHVzaCgiT2ZmIixlKX1zLmluY2x1ZGVzKHRoaXMuZGF0YS5maWVsZFZhbHVlKXx8KHRoaXMuZGF0YS5maWVsZFZhbHVlPSJPZmYiKTt0aGlzLmRhdGEuZXhwb3J0VmFsdWU9c1sxXTtjb25zdCBuPWkuZ2V0KHRoaXMuZGF0YS5leHBvcnRWYWx1ZSk7dGhpcy5jaGVja2VkQXBwZWFyYW5jZT1uIGluc3RhbmNlb2YgQmFzZVN0cmVhbT9uOm51bGw7Y29uc3Qgbz1pLmdldCgiT2ZmIik7dGhpcy51bmNoZWNrZWRBcHBlYXJhbmNlPW8gaW5zdGFuY2VvZiBCYXNlU3RyZWFtP286bnVsbDt0aGlzLmNoZWNrZWRBcHBlYXJhbmNlP3RoaXMuX3N0cmVhbXMucHVzaCh0aGlzLmNoZWNrZWRBcHBlYXJhbmNlKTp0aGlzLl9nZXREZWZhdWx0Q2hlY2tlZEFwcGVhcmFuY2UoZSwiY2hlY2siKTt0aGlzLnVuY2hlY2tlZEFwcGVhcmFuY2UmJnRoaXMuX3N0cmVhbXMucHVzaCh0aGlzLnVuY2hlY2tlZEFwcGVhcmFuY2UpO3RoaXMuX2ZhbGxiYWNrRm9udERpY3Q9dGhpcy5mYWxsYmFja0ZvbnREaWN0O251bGw9PT10aGlzLmRhdGEuZGVmYXVsdEZpZWxkVmFsdWUmJih0aGlzLmRhdGEuZGVmYXVsdEZpZWxkVmFsdWU9Ik9mZiIpfV9wcm9jZXNzUmFkaW9CdXR0b24oZSl7dGhpcy5kYXRhLmJ1dHRvblZhbHVlPW51bGw7Y29uc3QgdD1lLmRpY3QuZ2V0KCJQYXJlbnQiKTtpZih0IGluc3RhbmNlb2YgRGljdCl7dGhpcy5wYXJlbnQ9ZS5kaWN0LmdldFJhdygiUGFyZW50Iik7Y29uc3QgaT10LmdldCgiViIpO2kgaW5zdGFuY2VvZiBOYW1lJiYodGhpcy5kYXRhLmZpZWxkVmFsdWU9dGhpcy5fZGVjb2RlRm9ybVZhbHVlKGkpKX1jb25zdCBpPWUuZGljdC5nZXQoIkFQIik7aWYoIShpIGluc3RhbmNlb2YgRGljdCkpcmV0dXJuO2NvbnN0IGE9aS5nZXQoIk4iKTtpZighKGEgaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm47Zm9yKGNvbnN0IGUgb2YgYS5nZXRLZXlzKCkpaWYoIk9mZiIhPT1lKXt0aGlzLmRhdGEuYnV0dG9uVmFsdWU9dGhpcy5fZGVjb2RlRm9ybVZhbHVlKGUpO2JyZWFrfWNvbnN0IHI9YS5nZXQodGhpcy5kYXRhLmJ1dHRvblZhbHVlKTt0aGlzLmNoZWNrZWRBcHBlYXJhbmNlPXIgaW5zdGFuY2VvZiBCYXNlU3RyZWFtP3I6bnVsbDtjb25zdCBzPWEuZ2V0KCJPZmYiKTt0aGlzLnVuY2hlY2tlZEFwcGVhcmFuY2U9cyBpbnN0YW5jZW9mIEJhc2VTdHJlYW0/czpudWxsO3RoaXMuY2hlY2tlZEFwcGVhcmFuY2U/dGhpcy5fc3RyZWFtcy5wdXNoKHRoaXMuY2hlY2tlZEFwcGVhcmFuY2UpOnRoaXMuX2dldERlZmF1bHRDaGVja2VkQXBwZWFyYW5jZShlLCJkaXNjIik7dGhpcy51bmNoZWNrZWRBcHBlYXJhbmNlJiZ0aGlzLl9zdHJlYW1zLnB1c2godGhpcy51bmNoZWNrZWRBcHBlYXJhbmNlKTt0aGlzLl9mYWxsYmFja0ZvbnREaWN0PXRoaXMuZmFsbGJhY2tGb250RGljdDtudWxsPT09dGhpcy5kYXRhLmRlZmF1bHRGaWVsZFZhbHVlJiYodGhpcy5kYXRhLmRlZmF1bHRGaWVsZFZhbHVlPSJPZmYiKX1fcHJvY2Vzc1B1c2hCdXR0b24oZSl7Y29uc3R7ZGljdDp0LGFubm90YXRpb25HbG9iYWxzOml9PWU7aWYodC5oYXMoIkEiKXx8dC5oYXMoIkFBIil8fHRoaXMuZGF0YS5hbHRlcm5hdGl2ZVRleHQpe3RoaXMuZGF0YS5pc1Rvb2x0aXBPbmx5PSF0LmhhcygiQSIpJiYhdC5oYXMoIkFBIik7Q2F0YWxvZy5wYXJzZURlc3REaWN0aW9uYXJ5KHtkZXN0RGljdDp0LHJlc3VsdE9iajp0aGlzLmRhdGEsZG9jQmFzZVVybDppLmJhc2VVcmwsZG9jQXR0YWNobWVudHM6aS5hdHRhY2htZW50c30pfWVsc2Ugd2FybigiUHVzaCBidXR0b25zIHdpdGhvdXQgYWN0aW9uIGRpY3Rpb25hcmllcyBhcmUgbm90IHN1cHBvcnRlZCIpfWdldEZpZWxkT2JqZWN0KCl7bGV0IGUsdD0iYnV0dG9uIjtpZih0aGlzLmRhdGEuY2hlY2tCb3gpe3Q9ImNoZWNrYm94IjtlPXRoaXMuZGF0YS5leHBvcnRWYWx1ZX1lbHNlIGlmKHRoaXMuZGF0YS5yYWRpb0J1dHRvbil7dD0icmFkaW9idXR0b24iO2U9dGhpcy5kYXRhLmJ1dHRvblZhbHVlfXJldHVybntpZDp0aGlzLmRhdGEuaWQsdmFsdWU6dGhpcy5kYXRhLmZpZWxkVmFsdWV8fCJPZmYiLGRlZmF1bHRWYWx1ZTp0aGlzLmRhdGEuZGVmYXVsdEZpZWxkVmFsdWUsZXhwb3J0VmFsdWVzOmUsZWRpdGFibGU6IXRoaXMuZGF0YS5yZWFkT25seSxuYW1lOnRoaXMuZGF0YS5maWVsZE5hbWUscmVjdDp0aGlzLmRhdGEucmVjdCxoaWRkZW46dGhpcy5kYXRhLmhpZGRlbixhY3Rpb25zOnRoaXMuZGF0YS5hY3Rpb25zLHBhZ2U6dGhpcy5kYXRhLnBhZ2VJbmRleCxzdHJva2VDb2xvcjp0aGlzLmRhdGEuYm9yZGVyQ29sb3IsZmlsbENvbG9yOnRoaXMuZGF0YS5iYWNrZ3JvdW5kQ29sb3Iscm90YXRpb246dGhpcy5yb3RhdGlvbix0eXBlOnR9fWdldCBmYWxsYmFja0ZvbnREaWN0KCl7Y29uc3QgZT1uZXcgRGljdDtlLnNldCgiQmFzZUZvbnQiLE5hbWUuZ2V0KCJaYXBmRGluZ2JhdHMiKSk7ZS5zZXQoIlR5cGUiLE5hbWUuZ2V0KCJGYWxsYmFja1R5cGUiKSk7ZS5zZXQoIlN1YnR5cGUiLE5hbWUuZ2V0KCJGYWxsYmFja1R5cGUiKSk7ZS5zZXQoIkVuY29kaW5nIixOYW1lLmdldCgiWmFwZkRpbmdiYXRzRW5jb2RpbmciKSk7cmV0dXJuIHNoYWRvdyh0aGlzLCJmYWxsYmFja0ZvbnREaWN0IixlKX19Y2xhc3MgQ2hvaWNlV2lkZ2V0QW5ub3RhdGlvbiBleHRlbmRzIFdpZGdldEFubm90YXRpb257Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7Y29uc3R7ZGljdDp0LHhyZWY6aX09ZTt0aGlzLmluZGljZXM9dC5nZXRBcnJheSgiSSIpO3RoaXMuaGFzSW5kaWNlcz1BcnJheS5pc0FycmF5KHRoaXMuaW5kaWNlcykmJnRoaXMuaW5kaWNlcy5sZW5ndGg+MDt0aGlzLmRhdGEub3B0aW9ucz1bXTtjb25zdCBhPWdldEluaGVyaXRhYmxlUHJvcGVydHkoe2RpY3Q6dCxrZXk6Ik9wdCJ9KTtpZihBcnJheS5pc0FycmF5KGEpKWZvcihsZXQgZT0wLHQ9YS5sZW5ndGg7ZTx0O2UrKyl7Y29uc3QgdD1pLmZldGNoSWZSZWYoYVtlXSkscj1BcnJheS5pc0FycmF5KHQpO3RoaXMuZGF0YS5vcHRpb25zW2VdPXtleHBvcnRWYWx1ZTp0aGlzLl9kZWNvZGVGb3JtVmFsdWUocj9pLmZldGNoSWZSZWYodFswXSk6dCksZGlzcGxheVZhbHVlOnRoaXMuX2RlY29kZUZvcm1WYWx1ZShyP2kuZmV0Y2hJZlJlZih0WzFdKTp0KX19aWYodGhpcy5oYXNJbmRpY2VzKXt0aGlzLmRhdGEuZmllbGRWYWx1ZT1bXTtjb25zdCBlPXRoaXMuZGF0YS5vcHRpb25zLmxlbmd0aDtmb3IoY29uc3QgdCBvZiB0aGlzLmluZGljZXMpTnVtYmVyLmlzSW50ZWdlcih0KSYmdD49MCYmdDxlJiZ0aGlzLmRhdGEuZmllbGRWYWx1ZS5wdXNoKHRoaXMuZGF0YS5vcHRpb25zW3RdLmV4cG9ydFZhbHVlKX1lbHNlInN0cmluZyI9PXR5cGVvZiB0aGlzLmRhdGEuZmllbGRWYWx1ZT90aGlzLmRhdGEuZmllbGRWYWx1ZT1bdGhpcy5kYXRhLmZpZWxkVmFsdWVdOnRoaXMuZGF0YS5maWVsZFZhbHVlfHwodGhpcy5kYXRhLmZpZWxkVmFsdWU9W10pOzA9PT10aGlzLmRhdGEub3B0aW9ucy5sZW5ndGgmJnRoaXMuZGF0YS5maWVsZFZhbHVlLmxlbmd0aD4wJiYodGhpcy5kYXRhLm9wdGlvbnM9dGhpcy5kYXRhLmZpZWxkVmFsdWUubWFwKChlPT4oe2V4cG9ydFZhbHVlOmUsZGlzcGxheVZhbHVlOmV9KSkpKTt0aGlzLmRhdGEuY29tYm89dGhpcy5oYXNGaWVsZEZsYWcoY0EpO3RoaXMuZGF0YS5tdWx0aVNlbGVjdD10aGlzLmhhc0ZpZWxkRmxhZyhoQSk7dGhpcy5faGFzVGV4dD0hMH1nZXRGaWVsZE9iamVjdCgpe2NvbnN0IGU9dGhpcy5kYXRhLmNvbWJvPyJjb21ib2JveCI6Imxpc3Rib3giLHQ9dGhpcy5kYXRhLmZpZWxkVmFsdWUubGVuZ3RoPjA/dGhpcy5kYXRhLmZpZWxkVmFsdWVbMF06bnVsbDtyZXR1cm57aWQ6dGhpcy5kYXRhLmlkLHZhbHVlOnQsZGVmYXVsdFZhbHVlOnRoaXMuZGF0YS5kZWZhdWx0RmllbGRWYWx1ZSxlZGl0YWJsZTohdGhpcy5kYXRhLnJlYWRPbmx5LG5hbWU6dGhpcy5kYXRhLmZpZWxkTmFtZSxyZWN0OnRoaXMuZGF0YS5yZWN0LG51bUl0ZW1zOnRoaXMuZGF0YS5maWVsZFZhbHVlLmxlbmd0aCxtdWx0aXBsZVNlbGVjdGlvbjp0aGlzLmRhdGEubXVsdGlTZWxlY3QsaGlkZGVuOnRoaXMuZGF0YS5oaWRkZW4sYWN0aW9uczp0aGlzLmRhdGEuYWN0aW9ucyxpdGVtczp0aGlzLmRhdGEub3B0aW9ucyxwYWdlOnRoaXMuZGF0YS5wYWdlSW5kZXgsc3Ryb2tlQ29sb3I6dGhpcy5kYXRhLmJvcmRlckNvbG9yLGZpbGxDb2xvcjp0aGlzLmRhdGEuYmFja2dyb3VuZENvbG9yLHJvdGF0aW9uOnRoaXMucm90YXRpb24sdHlwZTplfX1hbWVuZFNhdmVkRGljdChlLHQpe2lmKCF0aGlzLmhhc0luZGljZXMpcmV0dXJuO2xldCBpPWU/LmdldCh0aGlzLmRhdGEuaWQpPy52YWx1ZTtBcnJheS5pc0FycmF5KGkpfHwoaT1baV0pO2NvbnN0IGE9W10se29wdGlvbnM6cn09dGhpcy5kYXRhO2ZvcihsZXQgZT0wLHQ9MCxzPXIubGVuZ3RoO2U8cztlKyspaWYocltlXS5leHBvcnRWYWx1ZT09PWlbdF0pe2EucHVzaChlKTt0Kz0xfXQuc2V0KCJJIixhKX1hc3luYyBfZ2V0QXBwZWFyYW5jZShlLHQsaSxhKXtpZih0aGlzLmRhdGEuY29tYm8pcmV0dXJuIHN1cGVyLl9nZXRBcHBlYXJhbmNlKGUsdCxpLGEpO2xldCByLG47Y29uc3Qgbz1hPy5nZXQodGhpcy5kYXRhLmlkKTtpZihvKXtuPW8ucm90YXRpb247cj1vLnZhbHVlfWlmKHZvaWQgMD09PW4mJnZvaWQgMD09PXImJiF0aGlzLl9uZWVkQXBwZWFyYW5jZXMpcmV0dXJuIG51bGw7dm9pZCAwPT09cj9yPXRoaXMuZGF0YS5maWVsZFZhbHVlOkFycmF5LmlzQXJyYXkocil8fChyPVtyXSk7bGV0IGc9dGhpcy5kYXRhLnJlY3RbM10tdGhpcy5kYXRhLnJlY3RbMV0sYz10aGlzLmRhdGEucmVjdFsyXS10aGlzLmRhdGEucmVjdFswXTs5MCE9PW4mJjI3MCE9PW58fChbYyxnXT1bZyxjXSk7Y29uc3QgbD10aGlzLmRhdGEub3B0aW9ucy5sZW5ndGgsaD1bXTtmb3IobGV0IGU9MDtlPGw7ZSsrKXtjb25zdHtleHBvcnRWYWx1ZTp0fT10aGlzLmRhdGEub3B0aW9uc1tlXTtyLmluY2x1ZGVzKHQpJiZoLnB1c2goZSl9dGhpcy5fZGVmYXVsdEFwcGVhcmFuY2V8fCh0aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhPXBhcnNlRGVmYXVsdEFwcGVhcmFuY2UodGhpcy5fZGVmYXVsdEFwcGVhcmFuY2U9Ii9IZWx2ZXRpY2EgMCBUZiAwIGciKSk7Y29uc3QgQz1hd2FpdCBXaWRnZXRBbm5vdGF0aW9uLl9nZXRGb250RGF0YShlLHQsdGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YSx0aGlzLl9maWVsZFJlc291cmNlcy5tZXJnZWRSZXNvdXJjZXMpO2xldCBRLHtmb250U2l6ZTpFfT10aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhO2lmKEUpUT10aGlzLl9kZWZhdWx0QXBwZWFyYW5jZTtlbHNle2NvbnN0IGU9KGctMSkvbDtsZXQgdCxpPS0xO2Zvcihjb25zdHtkaXNwbGF5VmFsdWU6ZX1vZiB0aGlzLmRhdGEub3B0aW9ucyl7Y29uc3QgYT10aGlzLl9nZXRUZXh0V2lkdGgoZSxDKTtpZihhPmkpe2k9YTt0PWV9fVtRLEVdPXRoaXMuX2NvbXB1dGVGb250U2l6ZShlLGMtNCx0LEMsLTEpfWNvbnN0IHU9RSpzLGQ9KHUtRSkvMixmPU1hdGguZmxvb3IoZy91KTtsZXQgcD0wO2lmKGgubGVuZ3RoPjApe2NvbnN0IGU9TWF0aC5taW4oLi4uaCksdD1NYXRoLm1heCguLi5oKTtwPU1hdGgubWF4KDAsdC1mKzEpO3A+ZSYmKHA9ZSl9Y29uc3QgbT1NYXRoLm1pbihwK2YrMSxsKSx5PVsiL1R4IEJNQyBxIixgMSAxICR7Y30gJHtnfSByZSBXIG5gXTtpZihoLmxlbmd0aCl7eS5wdXNoKCIwLjYwMDAwNiAwLjc1Njg2NiAwLjg1NDkwNCByZyIpO2Zvcihjb25zdCBlIG9mIGgpcDw9ZSYmZTxtJiZ5LnB1c2goYDEgJHtnLShlLXArMSkqdX0gJHtjfSAke3V9IHJlIGZgKX15LnB1c2goIkJUIixRLGAxIDAgMCAxIDAgJHtnfSBUbWApO2NvbnN0IHc9e3NoaWZ0OjB9O2ZvcihsZXQgZT1wO2U8bTtlKyspe2NvbnN0e2Rpc3BsYXlWYWx1ZTp0fT10aGlzLmRhdGEub3B0aW9uc1tlXSxpPWU9PT1wP2Q6MDt5LnB1c2godGhpcy5fcmVuZGVyVGV4dCh0LEMsRSxjLDAsdywyLC11K2kpKX15LnB1c2goIkVUIFEgRU1DIik7cmV0dXJuIHkuam9pbigiXG4iKX19Y2xhc3MgU2lnbmF0dXJlV2lkZ2V0QW5ub3RhdGlvbiBleHRlbmRzIFdpZGdldEFubm90YXRpb257Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7dGhpcy5kYXRhLmZpZWxkVmFsdWU9bnVsbDt0aGlzLmRhdGEuaGFzT3duQ2FudmFzPXRoaXMuZGF0YS5ub1JvdGF0ZTt0aGlzLmRhdGEubm9IVE1MPSF0aGlzLmRhdGEuaGFzT3duQ2FudmFzfWdldEZpZWxkT2JqZWN0KCl7cmV0dXJue2lkOnRoaXMuZGF0YS5pZCx2YWx1ZTpudWxsLHBhZ2U6dGhpcy5kYXRhLnBhZ2VJbmRleCx0eXBlOiJzaWduYXR1cmUifX19Y2xhc3MgVGV4dEFubm90YXRpb24gZXh0ZW5kcyBNYXJrdXBBbm5vdGF0aW9ue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO3RoaXMuZGF0YS5ub1JvdGF0ZT0hMDt0aGlzLmRhdGEuaGFzT3duQ2FudmFzPXRoaXMuZGF0YS5ub1JvdGF0ZTt0aGlzLmRhdGEubm9IVE1MPSExO2NvbnN0e2RpY3Q6dH09ZTt0aGlzLmRhdGEuYW5ub3RhdGlvblR5cGU9TjtpZih0aGlzLmRhdGEuaGFzQXBwZWFyYW5jZSl0aGlzLmRhdGEubmFtZT0iTm9JY29uIjtlbHNle3RoaXMuZGF0YS5yZWN0WzFdPXRoaXMuZGF0YS5yZWN0WzNdLTIyO3RoaXMuZGF0YS5yZWN0WzJdPXRoaXMuZGF0YS5yZWN0WzBdKzIyO3RoaXMuZGF0YS5uYW1lPXQuaGFzKCJOYW1lIik/dC5nZXQoIk5hbWUiKS5uYW1lOiJOb3RlIn1pZih0LmhhcygiU3RhdGUiKSl7dGhpcy5kYXRhLnN0YXRlPXQuZ2V0KCJTdGF0ZSIpfHxudWxsO3RoaXMuZGF0YS5zdGF0ZU1vZGVsPXQuZ2V0KCJTdGF0ZU1vZGVsIil8fG51bGx9ZWxzZXt0aGlzLmRhdGEuc3RhdGU9bnVsbDt0aGlzLmRhdGEuc3RhdGVNb2RlbD1udWxsfX19Y2xhc3MgTGlua0Fubm90YXRpb24gZXh0ZW5kcyBBbm5vdGF0aW9ue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO2NvbnN0e2RpY3Q6dCxhbm5vdGF0aW9uR2xvYmFsczppfT1lO3RoaXMuZGF0YS5hbm5vdGF0aW9uVHlwZT1HO3RoaXMuZGF0YS5ub0hUTUw9ITE7Y29uc3QgYT1nZXRRdWFkUG9pbnRzKHQsdGhpcy5yZWN0YW5nbGUpO2EmJih0aGlzLmRhdGEucXVhZFBvaW50cz1hKTt0aGlzLmRhdGEuYm9yZGVyQ29sb3J8fD10aGlzLmRhdGEuY29sb3I7Q2F0YWxvZy5wYXJzZURlc3REaWN0aW9uYXJ5KHtkZXN0RGljdDp0LHJlc3VsdE9iajp0aGlzLmRhdGEsZG9jQmFzZVVybDppLmJhc2VVcmwsZG9jQXR0YWNobWVudHM6aS5hdHRhY2htZW50c30pfX1jbGFzcyBQb3B1cEFubm90YXRpb24gZXh0ZW5kcyBBbm5vdGF0aW9ue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO2NvbnN0e2RpY3Q6dH09ZTt0aGlzLmRhdGEuYW5ub3RhdGlvblR5cGU9ajt0aGlzLmRhdGEubm9IVE1MPSExO3RoaXMuZGF0YS5yZWN0WzBdIT09dGhpcy5kYXRhLnJlY3RbMl0mJnRoaXMuZGF0YS5yZWN0WzFdIT09dGhpcy5kYXRhLnJlY3RbM118fCh0aGlzLmRhdGEucmVjdD1udWxsKTtsZXQgaT10LmdldCgiUGFyZW50Iik7aWYoIWkpe3dhcm4oIlBvcHVwIGFubm90YXRpb24gaGFzIGEgbWlzc2luZyBvciBpbnZhbGlkIHBhcmVudCBhbm5vdGF0aW9uLiIpO3JldHVybn10aGlzLmRhdGEucGFyZW50UmVjdD1sb29rdXBOb3JtYWxSZWN0KGkuZ2V0QXJyYXkoIlJlY3QiKSxudWxsKTtpc05hbWUoaS5nZXQoIlJUIiksWikmJihpPWkuZ2V0KCJJUlQiKSk7aWYoaS5oYXMoIk0iKSl7dGhpcy5zZXRNb2RpZmljYXRpb25EYXRlKGkuZ2V0KCJNIikpO3RoaXMuZGF0YS5tb2RpZmljYXRpb25EYXRlPXRoaXMubW9kaWZpY2F0aW9uRGF0ZX1lbHNlIHRoaXMuZGF0YS5tb2RpZmljYXRpb25EYXRlPW51bGw7aWYoaS5oYXMoIkMiKSl7dGhpcy5zZXRDb2xvcihpLmdldEFycmF5KCJDIikpO3RoaXMuZGF0YS5jb2xvcj10aGlzLmNvbG9yfWVsc2UgdGhpcy5kYXRhLmNvbG9yPW51bGw7aWYoIXRoaXMudmlld2FibGUpe2NvbnN0IGU9aS5nZXQoIkYiKTt0aGlzLl9pc1ZpZXdhYmxlKGUpJiZ0aGlzLnNldEZsYWdzKGUpfXRoaXMuc2V0VGl0bGUoaS5nZXQoIlQiKSk7dGhpcy5kYXRhLnRpdGxlT2JqPXRoaXMuX3RpdGxlO3RoaXMuc2V0Q29udGVudHMoaS5nZXQoIkNvbnRlbnRzIikpO3RoaXMuZGF0YS5jb250ZW50c09iaj10aGlzLl9jb250ZW50cztpLmhhcygiUkMiKSYmKHRoaXMuZGF0YS5yaWNoVGV4dD1YRkFGYWN0b3J5LmdldFJpY2hUZXh0QXNIdG1sKGkuZ2V0KCJSQyIpKSk7dGhpcy5kYXRhLm9wZW49ISF0LmdldCgiT3BlbiIpfX1jbGFzcyBGcmVlVGV4dEFubm90YXRpb24gZXh0ZW5kcyBNYXJrdXBBbm5vdGF0aW9ue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO3RoaXMuZGF0YS5oYXNPd25DYW52YXM9dGhpcy5kYXRhLm5vUm90YXRlO3RoaXMuZGF0YS5pc0VkaXRhYmxlPSF0aGlzLmRhdGEubm9IVE1MO3RoaXMuZGF0YS5ub0hUTUw9ITE7Y29uc3R7ZXZhbHVhdG9yT3B0aW9uczp0LHhyZWY6aX09ZTt0aGlzLmRhdGEuYW5ub3RhdGlvblR5cGU9TTt0aGlzLnNldERlZmF1bHRBcHBlYXJhbmNlKGUpO3RoaXMuX2hhc0FwcGVhcmFuY2U9ISF0aGlzLmFwcGVhcmFuY2U7aWYodGhpcy5faGFzQXBwZWFyYW5jZSl7Y29uc3R7Zm9udENvbG9yOmUsZm9udFNpemU6YX09ZnVuY3Rpb24gcGFyc2VBcHBlYXJhbmNlU3RyZWFtKGUsdCxpKXtyZXR1cm4gbmV3IEFwcGVhcmFuY2VTdHJlYW1FdmFsdWF0b3IoZSx0LGkpLnBhcnNlKCl9KHRoaXMuYXBwZWFyYW5jZSx0LGkpO3RoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGEuZm9udENvbG9yPWU7dGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YS5mb250U2l6ZT1hfHwxMH1lbHNle3RoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGEuZm9udFNpemV8fD0xMDtjb25zdHtmb250Q29sb3I6dCxmb250U2l6ZTphfT10aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhO2lmKHRoaXMuX2NvbnRlbnRzLnN0cil7dGhpcy5kYXRhLnRleHRDb250ZW50PXRoaXMuX2NvbnRlbnRzLnN0ci5zcGxpdCgvXHJcbj98XG4vKS5tYXAoKGU9PmUudHJpbUVuZCgpKSk7Y29uc3R7Y29vcmRzOmUsYmJveDp0LG1hdHJpeDppfT1GYWtlVW5pY29kZUZvbnQuZ2V0Rmlyc3RQb3NpdGlvbkluZm8odGhpcy5yZWN0YW5nbGUsdGhpcy5yb3RhdGlvbixhKTt0aGlzLmRhdGEudGV4dFBvc2l0aW9uPXRoaXMuX3RyYW5zZm9ybVBvaW50KGUsdCxpKX1pZih0aGlzLl9pc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZCl7Y29uc3Qgcj1lLmRpY3QuZ2V0KCJDQSIpLHM9bmV3IEZha2VVbmljb2RlRm9udChpLCJzYW5zLXNlcmlmIik7dGhpcy5hcHBlYXJhbmNlPXMuY3JlYXRlQXBwZWFyYW5jZSh0aGlzLl9jb250ZW50cy5zdHIsdGhpcy5yZWN0YW5nbGUsdGhpcy5yb3RhdGlvbixhLHQscik7dGhpcy5fc3RyZWFtcy5wdXNoKHRoaXMuYXBwZWFyYW5jZSl9ZWxzZSB3YXJuKCJGcmVlVGV4dEFubm90YXRpb246IE9mZnNjcmVlbkNhbnZhcyBpcyBub3Qgc3VwcG9ydGVkLCBhbm5vdGF0aW9uIG1heSBub3QgcmVuZGVyIGNvcnJlY3RseS4iKX19Z2V0IGhhc1RleHRDb250ZW50KCl7cmV0dXJuIHRoaXMuX2hhc0FwcGVhcmFuY2V9c3RhdGljIGNyZWF0ZU5ld0RpY3QoZSx0LHthcFJlZjppLGFwOmF9KXtjb25zdHtjb2xvcjpyLGZvbnRTaXplOnMsb2xkQW5ub3RhdGlvbjpuLHJlY3Q6byxyb3RhdGlvbjpnLHVzZXI6Yyx2YWx1ZTpsfT1lLGg9bnx8bmV3IERpY3QodCk7aC5zZXQoIlR5cGUiLE5hbWUuZ2V0KCJBbm5vdCIpKTtoLnNldCgiU3VidHlwZSIsTmFtZS5nZXQoIkZyZWVUZXh0IikpO2lmKG4pe2guc2V0KCJNIixgRDoke2dldE1vZGlmaWNhdGlvbkRhdGUoKX1gKTtoLmRlbGV0ZSgiUkMiKX1lbHNlIGguc2V0KCJDcmVhdGlvbkRhdGUiLGBEOiR7Z2V0TW9kaWZpY2F0aW9uRGF0ZSgpfWApO2guc2V0KCJSZWN0IixvKTtjb25zdCBDPWAvSGVsdiAke3N9IFRmICR7Z2V0UGRmQ29sb3IociwhMCl9YDtoLnNldCgiREEiLEMpO2guc2V0KCJDb250ZW50cyIsc3RyaW5nVG9Bc2NpaU9yVVRGMTZCRShsKSk7aC5zZXQoIkYiLDQpO2guc2V0KCJCb3JkZXIiLFswLDAsMF0pO2guc2V0KCJSb3RhdGUiLGcpO2MmJmguc2V0KCJUIixzdHJpbmdUb0FzY2lpT3JVVEYxNkJFKGMpKTtpZihpfHxhKXtjb25zdCBlPW5ldyBEaWN0KHQpO2guc2V0KCJBUCIsZSk7aT9lLnNldCgiTiIsaSk6ZS5zZXQoIk4iLGEpfXJldHVybiBofXN0YXRpYyBhc3luYyBjcmVhdGVOZXdBcHBlYXJhbmNlU3RyZWFtKGUsdCxpKXtjb25zdHtiYXNlRm9udFJlZjphLGV2YWx1YXRvcjpyLHRhc2s6bn09aSx7Y29sb3I6byxmb250U2l6ZTpnLHJlY3Q6Yyxyb3RhdGlvbjpsLHZhbHVlOmh9PWUsQz1uZXcgRGljdCh0KSxRPW5ldyBEaWN0KHQpO2lmKGEpUS5zZXQoIkhlbHYiLGEpO2Vsc2V7Y29uc3QgZT1uZXcgRGljdCh0KTtlLnNldCgiQmFzZUZvbnQiLE5hbWUuZ2V0KCJIZWx2ZXRpY2EiKSk7ZS5zZXQoIlR5cGUiLE5hbWUuZ2V0KCJGb250IikpO2Uuc2V0KCJTdWJ0eXBlIixOYW1lLmdldCgiVHlwZTEiKSk7ZS5zZXQoIkVuY29kaW5nIixOYW1lLmdldCgiV2luQW5zaUVuY29kaW5nIikpO1Euc2V0KCJIZWx2IixlKX1DLnNldCgiRm9udCIsUSk7Y29uc3QgRT1hd2FpdCBXaWRnZXRBbm5vdGF0aW9uLl9nZXRGb250RGF0YShyLG4se2ZvbnROYW1lOiJIZWx2Iixmb250U2l6ZTpnfSxDKSxbdSxkLGYscF09YztsZXQgbT1mLXUseT1wLWQ7bCUxODAhPTAmJihbbSx5XT1beSxtXSk7Y29uc3Qgdz1oLnNwbGl0KCJcbiIpLGI9Zy8xZTM7bGV0IEQ9LTEvMDtjb25zdCBTPVtdO2ZvcihsZXQgZSBvZiB3KXtjb25zdCB0PUUuZW5jb2RlU3RyaW5nKGUpO2lmKHQubGVuZ3RoPjEpcmV0dXJuIG51bGw7ZT10LmpvaW4oIiIpO1MucHVzaChlKTtsZXQgaT0wO2NvbnN0IGE9RS5jaGFyc1RvR2x5cGhzKGUpO2Zvcihjb25zdCBlIG9mIGEpaSs9ZS53aWR0aCpiO0Q9TWF0aC5tYXgoRCxpKX1sZXQgaz0xO0Q+bSYmKGs9bS9EKTtsZXQgUj0xO2NvbnN0IE49cypnLEc9MSpnLE09Tip3Lmxlbmd0aDtNPnkmJihSPXkvTSk7Y29uc3QgVT1nKk1hdGgubWluKGssUik7bGV0IHgsTCxIO3N3aXRjaChsKXtjYXNlIDA6SD1bMSwwLDAsMV07TD1bY1swXSxjWzFdLG0seV07eD1bY1swXSxjWzNdLUddO2JyZWFrO2Nhc2UgOTA6SD1bMCwxLC0xLDBdO0w9W2NbMV0sLWNbMl0sbSx5XTt4PVtjWzFdLC1jWzBdLUddO2JyZWFrO2Nhc2UgMTgwOkg9Wy0xLDAsMCwtMV07TD1bLWNbMl0sLWNbM10sbSx5XTt4PVstY1syXSwtY1sxXS1HXTticmVhaztjYXNlIDI3MDpIPVswLC0xLDEsMF07TD1bLWNbM10sY1swXSxtLHldO3g9Wy1jWzNdLGNbMl0tR119Y29uc3QgSj1bInEiLGAke0guam9pbigiICIpfSAwIDAgY21gLGAke0wuam9pbigiICIpfSByZSBXIG5gLCJCVCIsYCR7Z2V0UGRmQ29sb3IobywhMCl9YCxgMCBUYyAvSGVsdiAke251bWJlclRvU3RyaW5nKFUpfSBUZmBdO0oucHVzaChgJHt4LmpvaW4oIiAiKX0gVGQgKCR7ZXNjYXBlU3RyaW5nKFNbMF0pfSkgVGpgKTtjb25zdCB2PW51bWJlclRvU3RyaW5nKE4pO2ZvcihsZXQgZT0xLHQ9Uy5sZW5ndGg7ZTx0O2UrKyl7Y29uc3QgdD1TW2VdO0oucHVzaChgMCAtJHt2fSBUZCAoJHtlc2NhcGVTdHJpbmcodCl9KSBUamApfUoucHVzaCgiRVQiLCJRIik7Y29uc3QgWT1KLmpvaW4oIlxuIiksSz1uZXcgRGljdCh0KTtLLnNldCgiRm9ybVR5cGUiLDEpO0suc2V0KCJTdWJ0eXBlIixOYW1lLmdldCgiRm9ybSIpKTtLLnNldCgiVHlwZSIsTmFtZS5nZXQoIlhPYmplY3QiKSk7Sy5zZXQoIkJCb3giLGMpO0suc2V0KCJSZXNvdXJjZXMiLEMpO0suc2V0KCJNYXRyaXgiLFsxLDAsMCwxLC1jWzBdLC1jWzFdXSk7Y29uc3QgVD1uZXcgU3RyaW5nU3RyZWFtKFkpO1QuZGljdD1LO3JldHVybiBUfX1jbGFzcyBMaW5lQW5ub3RhdGlvbiBleHRlbmRzIE1hcmt1cEFubm90YXRpb257Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7Y29uc3R7ZGljdDp0LHhyZWY6aX09ZTt0aGlzLmRhdGEuYW5ub3RhdGlvblR5cGU9VTt0aGlzLmRhdGEuaGFzT3duQ2FudmFzPXRoaXMuZGF0YS5ub1JvdGF0ZTt0aGlzLmRhdGEubm9IVE1MPSExO2NvbnN0IGE9bG9va3VwUmVjdCh0LmdldEFycmF5KCJMIiksWzAsMCwwLDBdKTt0aGlzLmRhdGEubGluZUNvb3JkaW5hdGVzPVV0aWwubm9ybWFsaXplUmVjdChhKTt0aGlzLnNldExpbmVFbmRpbmdzKHQuZ2V0QXJyYXkoIkxFIikpO3RoaXMuZGF0YS5saW5lRW5kaW5ncz10aGlzLmxpbmVFbmRpbmdzO2lmKCF0aGlzLmFwcGVhcmFuY2Upe2NvbnN0IGU9dGhpcy5jb2xvcj9nZXRQZGZDb2xvckFycmF5KHRoaXMuY29sb3IpOlswLDAsMF0scj10LmdldCgiQ0EiKSxzPWdldFJnYkNvbG9yKHQuZ2V0QXJyYXkoIklDIiksbnVsbCksbj1zP2dldFBkZkNvbG9yQXJyYXkocyk6bnVsbCxvPW4/cjpudWxsLGc9dGhpcy5ib3JkZXJTdHlsZS53aWR0aHx8MSxjPTIqZyxsPVt0aGlzLmRhdGEubGluZUNvb3JkaW5hdGVzWzBdLWMsdGhpcy5kYXRhLmxpbmVDb29yZGluYXRlc1sxXS1jLHRoaXMuZGF0YS5saW5lQ29vcmRpbmF0ZXNbMl0rYyx0aGlzLmRhdGEubGluZUNvb3JkaW5hdGVzWzNdK2NdO1V0aWwuaW50ZXJzZWN0KHRoaXMucmVjdGFuZ2xlLGwpfHwodGhpcy5yZWN0YW5nbGU9bCk7dGhpcy5fc2V0RGVmYXVsdEFwcGVhcmFuY2Uoe3hyZWY6aSxleHRyYTpgJHtnfSB3YCxzdHJva2VDb2xvcjplLGZpbGxDb2xvcjpuLHN0cm9rZUFscGhhOnIsZmlsbEFscGhhOm8scG9pbnRzQ2FsbGJhY2s6KGUsdCk9PntlLnB1c2goYCR7YVswXX0gJHthWzFdfSBtYCxgJHthWzJdfSAke2FbM119IGxgLCJTIik7cmV0dXJuW3RbMF0tZyx0WzJdK2csdFs3XS1nLHRbM10rZ119fSl9fX1jbGFzcyBTcXVhcmVBbm5vdGF0aW9uIGV4dGVuZHMgTWFya3VwQW5ub3RhdGlvbntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTtjb25zdHtkaWN0OnQseHJlZjppfT1lO3RoaXMuZGF0YS5hbm5vdGF0aW9uVHlwZT14O3RoaXMuZGF0YS5oYXNPd25DYW52YXM9dGhpcy5kYXRhLm5vUm90YXRlO3RoaXMuZGF0YS5ub0hUTUw9ITE7aWYoIXRoaXMuYXBwZWFyYW5jZSl7Y29uc3QgZT10aGlzLmNvbG9yP2dldFBkZkNvbG9yQXJyYXkodGhpcy5jb2xvcik6WzAsMCwwXSxhPXQuZ2V0KCJDQSIpLHI9Z2V0UmdiQ29sb3IodC5nZXRBcnJheSgiSUMiKSxudWxsKSxzPXI/Z2V0UGRmQ29sb3JBcnJheShyKTpudWxsLG49cz9hOm51bGw7aWYoMD09PXRoaXMuYm9yZGVyU3R5bGUud2lkdGgmJiFzKXJldHVybjt0aGlzLl9zZXREZWZhdWx0QXBwZWFyYW5jZSh7eHJlZjppLGV4dHJhOmAke3RoaXMuYm9yZGVyU3R5bGUud2lkdGh9IHdgLHN0cm9rZUNvbG9yOmUsZmlsbENvbG9yOnMsc3Ryb2tlQWxwaGE6YSxmaWxsQWxwaGE6bixwb2ludHNDYWxsYmFjazooZSx0KT0+e2NvbnN0IGk9dFs0XSt0aGlzLmJvcmRlclN0eWxlLndpZHRoLzIsYT10WzVdK3RoaXMuYm9yZGVyU3R5bGUud2lkdGgvMixyPXRbNl0tdFs0XS10aGlzLmJvcmRlclN0eWxlLndpZHRoLG49dFszXS10WzddLXRoaXMuYm9yZGVyU3R5bGUud2lkdGg7ZS5wdXNoKGAke2l9ICR7YX0gJHtyfSAke259IHJlYCk7cz9lLnB1c2goIkIiKTplLnB1c2goIlMiKTtyZXR1cm5bdFswXSx0WzJdLHRbN10sdFszXV19fSl9fX1jbGFzcyBDaXJjbGVBbm5vdGF0aW9uIGV4dGVuZHMgTWFya3VwQW5ub3RhdGlvbntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTtjb25zdHtkaWN0OnQseHJlZjppfT1lO3RoaXMuZGF0YS5hbm5vdGF0aW9uVHlwZT1MO2lmKCF0aGlzLmFwcGVhcmFuY2Upe2NvbnN0IGU9dGhpcy5jb2xvcj9nZXRQZGZDb2xvckFycmF5KHRoaXMuY29sb3IpOlswLDAsMF0sYT10LmdldCgiQ0EiKSxyPWdldFJnYkNvbG9yKHQuZ2V0QXJyYXkoIklDIiksbnVsbCkscz1yP2dldFBkZkNvbG9yQXJyYXkocik6bnVsbCxuPXM/YTpudWxsO2lmKDA9PT10aGlzLmJvcmRlclN0eWxlLndpZHRoJiYhcylyZXR1cm47Y29uc3Qgbz00LzMqTWF0aC50YW4oTWF0aC5QSS84KTt0aGlzLl9zZXREZWZhdWx0QXBwZWFyYW5jZSh7eHJlZjppLGV4dHJhOmAke3RoaXMuYm9yZGVyU3R5bGUud2lkdGh9IHdgLHN0cm9rZUNvbG9yOmUsZmlsbENvbG9yOnMsc3Ryb2tlQWxwaGE6YSxmaWxsQWxwaGE6bixwb2ludHNDYWxsYmFjazooZSx0KT0+e2NvbnN0IGk9dFswXSt0aGlzLmJvcmRlclN0eWxlLndpZHRoLzIsYT10WzFdLXRoaXMuYm9yZGVyU3R5bGUud2lkdGgvMixyPXRbNl0tdGhpcy5ib3JkZXJTdHlsZS53aWR0aC8yLG49dFs3XSt0aGlzLmJvcmRlclN0eWxlLndpZHRoLzIsZz1pKyhyLWkpLzIsYz1hKyhuLWEpLzIsbD0oci1pKS8yKm8saD0obi1hKS8yKm87ZS5wdXNoKGAke2d9ICR7bn0gbWAsYCR7ZytsfSAke259ICR7cn0gJHtjK2h9ICR7cn0gJHtjfSBjYCxgJHtyfSAke2MtaH0gJHtnK2x9ICR7YX0gJHtnfSAke2F9IGNgLGAke2ctbH0gJHthfSAke2l9ICR7Yy1ofSAke2l9ICR7Y30gY2AsYCR7aX0gJHtjK2h9ICR7Zy1sfSAke259ICR7Z30gJHtufSBjYCwiaCIpO3M/ZS5wdXNoKCJCIik6ZS5wdXNoKCJTIik7cmV0dXJuW3RbMF0sdFsyXSx0WzddLHRbM11dfX0pfX19Y2xhc3MgUG9seWxpbmVBbm5vdGF0aW9uIGV4dGVuZHMgTWFya3VwQW5ub3RhdGlvbntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTtjb25zdHtkaWN0OnQseHJlZjppfT1lO3RoaXMuZGF0YS5hbm5vdGF0aW9uVHlwZT1KO3RoaXMuZGF0YS5oYXNPd25DYW52YXM9dGhpcy5kYXRhLm5vUm90YXRlO3RoaXMuZGF0YS5ub0hUTUw9ITE7dGhpcy5kYXRhLnZlcnRpY2VzPW51bGw7aWYoISh0aGlzIGluc3RhbmNlb2YgUG9seWdvbkFubm90YXRpb24pKXt0aGlzLnNldExpbmVFbmRpbmdzKHQuZ2V0QXJyYXkoIkxFIikpO3RoaXMuZGF0YS5saW5lRW5kaW5ncz10aGlzLmxpbmVFbmRpbmdzfWNvbnN0IGE9dC5nZXRBcnJheSgiVmVydGljZXMiKTtpZighaXNOdW1iZXJBcnJheShhLG51bGwpKXJldHVybjtjb25zdCByPXRoaXMuZGF0YS52ZXJ0aWNlcz1GbG9hdDMyQXJyYXkuZnJvbShhKTtpZighdGhpcy5hcHBlYXJhbmNlKXtjb25zdCBlPXRoaXMuY29sb3I/Z2V0UGRmQ29sb3JBcnJheSh0aGlzLmNvbG9yKTpbMCwwLDBdLGE9dC5nZXQoIkNBIikscz10aGlzLmJvcmRlclN0eWxlLndpZHRofHwxLG49MipzLG89WzEvMCwxLzAsLTEvMCwtMS8wXTtmb3IobGV0IGU9MCx0PXIubGVuZ3RoO2U8dDtlKz0yKXtvWzBdPU1hdGgubWluKG9bMF0scltlXS1uKTtvWzFdPU1hdGgubWluKG9bMV0scltlKzFdLW4pO29bMl09TWF0aC5tYXgob1syXSxyW2VdK24pO29bM109TWF0aC5tYXgob1szXSxyW2UrMV0rbil9VXRpbC5pbnRlcnNlY3QodGhpcy5yZWN0YW5nbGUsbyl8fCh0aGlzLnJlY3RhbmdsZT1vKTt0aGlzLl9zZXREZWZhdWx0QXBwZWFyYW5jZSh7eHJlZjppLGV4dHJhOmAke3N9IHdgLHN0cm9rZUNvbG9yOmUsc3Ryb2tlQWxwaGE6YSxwb2ludHNDYWxsYmFjazooZSx0KT0+e2ZvcihsZXQgdD0wLGk9ci5sZW5ndGg7dDxpO3QrPTIpZS5wdXNoKGAke3JbdF19ICR7clt0KzFdfSAkezA9PT10PyJtIjoibCJ9YCk7ZS5wdXNoKCJTIik7cmV0dXJuW3RbMF0sdFsyXSx0WzddLHRbM11dfX0pfX19Y2xhc3MgUG9seWdvbkFubm90YXRpb24gZXh0ZW5kcyBQb2x5bGluZUFubm90YXRpb257Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7dGhpcy5kYXRhLmFubm90YXRpb25UeXBlPUh9fWNsYXNzIENhcmV0QW5ub3RhdGlvbiBleHRlbmRzIE1hcmt1cEFubm90YXRpb257Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7dGhpcy5kYXRhLmFubm90YXRpb25UeXBlPU99fWNsYXNzIElua0Fubm90YXRpb24gZXh0ZW5kcyBNYXJrdXBBbm5vdGF0aW9ue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO3RoaXMuZGF0YS5oYXNPd25DYW52YXM9dGhpcy5kYXRhLm5vUm90YXRlO3RoaXMuZGF0YS5ub0hUTUw9ITE7Y29uc3R7ZGljdDp0LHhyZWY6aX09ZTt0aGlzLmRhdGEuYW5ub3RhdGlvblR5cGU9Vzt0aGlzLmRhdGEuaW5rTGlzdHM9W107dGhpcy5kYXRhLmlzRWRpdGFibGU9IXRoaXMuZGF0YS5ub0hUTUw7dGhpcy5kYXRhLm5vSFRNTD0hMTt0aGlzLmRhdGEub3BhY2l0eT10LmdldCgiQ0EiKXx8MTtjb25zdCBhPXQuZ2V0QXJyYXkoIklua0xpc3QiKTtpZihBcnJheS5pc0FycmF5KGEpKXtmb3IobGV0IGU9MCx0PWEubGVuZ3RoO2U8dDsrK2Upe2lmKCFBcnJheS5pc0FycmF5KGFbZV0pKWNvbnRpbnVlO2NvbnN0IHQ9bmV3IEZsb2F0MzJBcnJheShhW2VdLmxlbmd0aCk7dGhpcy5kYXRhLmlua0xpc3RzLnB1c2godCk7Zm9yKGxldCByPTAscz1hW2VdLmxlbmd0aDtyPHM7cis9Mil7Y29uc3Qgcz1pLmZldGNoSWZSZWYoYVtlXVtyXSksbj1pLmZldGNoSWZSZWYoYVtlXVtyKzFdKTtpZigibnVtYmVyIj09dHlwZW9mIHMmJiJudW1iZXIiPT10eXBlb2Ygbil7dFtyXT1zO3RbcisxXT1ufX19aWYoIXRoaXMuYXBwZWFyYW5jZSl7Y29uc3QgZT10aGlzLmNvbG9yP2dldFBkZkNvbG9yQXJyYXkodGhpcy5jb2xvcik6WzAsMCwwXSxhPXQuZ2V0KCJDQSIpLHI9dGhpcy5ib3JkZXJTdHlsZS53aWR0aHx8MSxzPTIqcixuPVsxLzAsMS8wLC0xLzAsLTEvMF07Zm9yKGNvbnN0IGUgb2YgdGhpcy5kYXRhLmlua0xpc3RzKWZvcihsZXQgdD0wLGk9ZS5sZW5ndGg7dDxpO3QrPTIpe25bMF09TWF0aC5taW4oblswXSxlW3RdLXMpO25bMV09TWF0aC5taW4oblsxXSxlW3QrMV0tcyk7blsyXT1NYXRoLm1heChuWzJdLGVbdF0rcyk7blszXT1NYXRoLm1heChuWzNdLGVbdCsxXStzKX1VdGlsLmludGVyc2VjdCh0aGlzLnJlY3RhbmdsZSxuKXx8KHRoaXMucmVjdGFuZ2xlPW4pO3RoaXMuX3NldERlZmF1bHRBcHBlYXJhbmNlKHt4cmVmOmksZXh0cmE6YCR7cn0gd2Asc3Ryb2tlQ29sb3I6ZSxzdHJva2VBbHBoYTphLHBvaW50c0NhbGxiYWNrOihlLHQpPT57Zm9yKGNvbnN0IHQgb2YgdGhpcy5kYXRhLmlua0xpc3RzKXtmb3IobGV0IGk9MCxhPXQubGVuZ3RoO2k8YTtpKz0yKWUucHVzaChgJHt0W2ldfSAke3RbaSsxXX0gJHswPT09aT8ibSI6ImwifWApO2UucHVzaCgiUyIpfXJldHVyblt0WzBdLHRbMl0sdFs3XSx0WzNdXX19KX19fXN0YXRpYyBjcmVhdGVOZXdEaWN0KGUsdCx7YXBSZWY6aSxhcDphfSl7Y29uc3R7b2xkQW5ub3RhdGlvbjpyLGNvbG9yOnMsb3BhY2l0eTpuLHBhdGhzOm8sb3V0bGluZXM6ZyxyZWN0OmMscm90YXRpb246bCx0aGlja25lc3M6aCx1c2VyOkN9PWUsUT1yfHxuZXcgRGljdCh0KTtRLnNldCgiVHlwZSIsTmFtZS5nZXQoIkFubm90IikpO1Euc2V0KCJTdWJ0eXBlIixOYW1lLmdldCgiSW5rIikpO1Euc2V0KHI/Ik0iOiJDcmVhdGlvbkRhdGUiLGBEOiR7Z2V0TW9kaWZpY2F0aW9uRGF0ZSgpfWApO1Euc2V0KCJSZWN0IixjKTtRLnNldCgiSW5rTGlzdCIsZz8ucG9pbnRzfHxvLnBvaW50cyk7US5zZXQoIkYiLDQpO1Euc2V0KCJSb3RhdGUiLGwpO0MmJlEuc2V0KCJUIixzdHJpbmdUb0FzY2lpT3JVVEYxNkJFKEMpKTtnJiZRLnNldCgiSVQiLE5hbWUuZ2V0KCJJbmtIaWdobGlnaHQiKSk7Y29uc3QgRT1uZXcgRGljdCh0KTtRLnNldCgiQlMiLEUpO0Uuc2V0KCJXIixoKTtRLnNldCgiQyIsQXJyYXkuZnJvbShzLChlPT5lLzI1NSkpKTtRLnNldCgiQ0EiLG4pO2NvbnN0IHU9bmV3IERpY3QodCk7US5zZXQoIkFQIix1KTtpP3Uuc2V0KCJOIixpKTp1LnNldCgiTiIsYSk7cmV0dXJuIFF9c3RhdGljIGFzeW5jIGNyZWF0ZU5ld0FwcGVhcmFuY2VTdHJlYW0oZSx0LGkpe2lmKGUub3V0bGluZXMpcmV0dXJuIHRoaXMuY3JlYXRlTmV3QXBwZWFyYW5jZVN0cmVhbUZvckhpZ2hsaWdodChlLHQsaSk7Y29uc3R7Y29sb3I6YSxyZWN0OnIscGF0aHM6cyx0aGlja25lc3M6bixvcGFjaXR5Om99PWUsZz1bYCR7bn0gdyAxIEogMSBqYCxgJHtnZXRQZGZDb2xvcihhLCExKX1gXTsxIT09byYmZy5wdXNoKCIvUjAgZ3MiKTtmb3IoY29uc3QgZSBvZiBzLmxpbmVzKXtnLnB1c2goYCR7bnVtYmVyVG9TdHJpbmcoZVs0XSl9ICR7bnVtYmVyVG9TdHJpbmcoZVs1XSl9IG1gKTtmb3IobGV0IHQ9NixpPWUubGVuZ3RoO3Q8aTt0Kz02KWlmKGlzTmFOKGVbdF0pKWcucHVzaChgJHtudW1iZXJUb1N0cmluZyhlW3QrNF0pfSAke251bWJlclRvU3RyaW5nKGVbdCs1XSl9IGxgKTtlbHNle2NvbnN0W2ksYSxyLHMsbixvXT1lLnNsaWNlKHQsdCs2KTtnLnB1c2goW2ksYSxyLHMsbixvXS5tYXAobnVtYmVyVG9TdHJpbmcpLmpvaW4oIiAiKSsiIGMiKX02PT09ZS5sZW5ndGgmJmcucHVzaChgJHtudW1iZXJUb1N0cmluZyhlWzRdKX0gJHtudW1iZXJUb1N0cmluZyhlWzVdKX0gbGApfWcucHVzaCgiUyIpO2NvbnN0IGM9Zy5qb2luKCJcbiIpLGw9bmV3IERpY3QodCk7bC5zZXQoIkZvcm1UeXBlIiwxKTtsLnNldCgiU3VidHlwZSIsTmFtZS5nZXQoIkZvcm0iKSk7bC5zZXQoIlR5cGUiLE5hbWUuZ2V0KCJYT2JqZWN0IikpO2wuc2V0KCJCQm94IixyKTtsLnNldCgiTGVuZ3RoIixjLmxlbmd0aCk7aWYoMSE9PW8pe2NvbnN0IGU9bmV3IERpY3QodCksaT1uZXcgRGljdCh0KSxhPW5ldyBEaWN0KHQpO2Euc2V0KCJDQSIsbyk7YS5zZXQoIlR5cGUiLE5hbWUuZ2V0KCJFeHRHU3RhdGUiKSk7aS5zZXQoIlIwIixhKTtlLnNldCgiRXh0R1N0YXRlIixpKTtsLnNldCgiUmVzb3VyY2VzIixlKX1jb25zdCBoPW5ldyBTdHJpbmdTdHJlYW0oYyk7aC5kaWN0PWw7cmV0dXJuIGh9c3RhdGljIGFzeW5jIGNyZWF0ZU5ld0FwcGVhcmFuY2VTdHJlYW1Gb3JIaWdobGlnaHQoZSx0LGkpe2NvbnN0e2NvbG9yOmEscmVjdDpyLG91dGxpbmVzOntvdXRsaW5lOnN9LG9wYWNpdHk6bn09ZSxvPVtgJHtnZXRQZGZDb2xvcihhLCEwKX1gLCIvUjAgZ3MiXTtvLnB1c2goYCR7bnVtYmVyVG9TdHJpbmcoc1s0XSl9ICR7bnVtYmVyVG9TdHJpbmcoc1s1XSl9IG1gKTtmb3IobGV0IGU9Nix0PXMubGVuZ3RoO2U8dDtlKz02KWlmKGlzTmFOKHNbZV0pKW8ucHVzaChgJHtudW1iZXJUb1N0cmluZyhzW2UrNF0pfSAke251bWJlclRvU3RyaW5nKHNbZSs1XSl9IGxgKTtlbHNle2NvbnN0W3QsaSxhLHIsbixnXT1zLnNsaWNlKGUsZSs2KTtvLnB1c2goW3QsaSxhLHIsbixnXS5tYXAobnVtYmVyVG9TdHJpbmcpLmpvaW4oIiAiKSsiIGMiKX1vLnB1c2goImggZiIpO2NvbnN0IGc9by5qb2luKCJcbiIpLGM9bmV3IERpY3QodCk7Yy5zZXQoIkZvcm1UeXBlIiwxKTtjLnNldCgiU3VidHlwZSIsTmFtZS5nZXQoIkZvcm0iKSk7Yy5zZXQoIlR5cGUiLE5hbWUuZ2V0KCJYT2JqZWN0IikpO2Muc2V0KCJCQm94IixyKTtjLnNldCgiTGVuZ3RoIixnLmxlbmd0aCk7Y29uc3QgbD1uZXcgRGljdCh0KSxoPW5ldyBEaWN0KHQpO2wuc2V0KCJFeHRHU3RhdGUiLGgpO2Muc2V0KCJSZXNvdXJjZXMiLGwpO2NvbnN0IEM9bmV3IERpY3QodCk7aC5zZXQoIlIwIixDKTtDLnNldCgiQk0iLE5hbWUuZ2V0KCJNdWx0aXBseSIpKTtpZigxIT09bil7Qy5zZXQoImNhIixuKTtDLnNldCgiVHlwZSIsTmFtZS5nZXQoIkV4dEdTdGF0ZSIpKX1jb25zdCBRPW5ldyBTdHJpbmdTdHJlYW0oZyk7US5kaWN0PWM7cmV0dXJuIFF9fWNsYXNzIEhpZ2hsaWdodEFubm90YXRpb24gZXh0ZW5kcyBNYXJrdXBBbm5vdGF0aW9ue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO2NvbnN0e2RpY3Q6dCx4cmVmOml9PWU7dGhpcy5kYXRhLmFubm90YXRpb25UeXBlPXY7dGhpcy5kYXRhLmlzRWRpdGFibGU9IXRoaXMuZGF0YS5ub0hUTUw7dGhpcy5kYXRhLm5vSFRNTD0hMTt0aGlzLmRhdGEub3BhY2l0eT10LmdldCgiQ0EiKXx8MTtpZih0aGlzLmRhdGEucXVhZFBvaW50cz1nZXRRdWFkUG9pbnRzKHQsbnVsbCkpe2NvbnN0IGU9dGhpcy5hcHBlYXJhbmNlPy5kaWN0LmdldCgiUmVzb3VyY2VzIik7aWYoIXRoaXMuYXBwZWFyYW5jZXx8IWU/LmhhcygiRXh0R1N0YXRlIikpe3RoaXMuYXBwZWFyYW5jZSYmd2FybigiSGlnaGxpZ2h0QW5ub3RhdGlvbiAtIGlnbm9yaW5nIGJ1aWx0LWluIGFwcGVhcmFuY2Ugc3RyZWFtLiIpO2NvbnN0IGU9dGhpcy5jb2xvcj9nZXRQZGZDb2xvckFycmF5KHRoaXMuY29sb3IpOlsxLDEsMF0sYT10LmdldCgiQ0EiKTt0aGlzLl9zZXREZWZhdWx0QXBwZWFyYW5jZSh7eHJlZjppLGZpbGxDb2xvcjplLGJsZW5kTW9kZToiTXVsdGlwbHkiLGZpbGxBbHBoYTphLHBvaW50c0NhbGxiYWNrOihlLHQpPT57ZS5wdXNoKGAke3RbMF19ICR7dFsxXX0gbWAsYCR7dFsyXX0gJHt0WzNdfSBsYCxgJHt0WzZdfSAke3RbN119IGxgLGAke3RbNF19ICR7dFs1XX0gbGAsImYiKTtyZXR1cm5bdFswXSx0WzJdLHRbN10sdFszXV19fSl9fWVsc2UgdGhpcy5kYXRhLnBvcHVwUmVmPW51bGx9c3RhdGljIGNyZWF0ZU5ld0RpY3QoZSx0LHthcFJlZjppLGFwOmF9KXtjb25zdHtjb2xvcjpyLG9sZEFubm90YXRpb246cyxvcGFjaXR5Om4scmVjdDpvLHJvdGF0aW9uOmcsdXNlcjpjLHF1YWRQb2ludHM6bH09ZSxoPXN8fG5ldyBEaWN0KHQpO2guc2V0KCJUeXBlIixOYW1lLmdldCgiQW5ub3QiKSk7aC5zZXQoIlN1YnR5cGUiLE5hbWUuZ2V0KCJIaWdobGlnaHQiKSk7aC5zZXQocz8iTSI6IkNyZWF0aW9uRGF0ZSIsYEQ6JHtnZXRNb2RpZmljYXRpb25EYXRlKCl9YCk7aC5zZXQoIkNyZWF0aW9uRGF0ZSIsYEQ6JHtnZXRNb2RpZmljYXRpb25EYXRlKCl9YCk7aC5zZXQoIlJlY3QiLG8pO2guc2V0KCJGIiw0KTtoLnNldCgiQm9yZGVyIixbMCwwLDBdKTtoLnNldCgiUm90YXRlIixnKTtoLnNldCgiUXVhZFBvaW50cyIsbCk7aC5zZXQoIkMiLEFycmF5LmZyb20ociwoZT0+ZS8yNTUpKSk7aC5zZXQoIkNBIixuKTtjJiZoLnNldCgiVCIsc3RyaW5nVG9Bc2NpaU9yVVRGMTZCRShjKSk7aWYoaXx8YSl7Y29uc3QgZT1uZXcgRGljdCh0KTtoLnNldCgiQVAiLGUpO2Uuc2V0KCJOIixpfHxhKX1yZXR1cm4gaH1zdGF0aWMgYXN5bmMgY3JlYXRlTmV3QXBwZWFyYW5jZVN0cmVhbShlLHQsaSl7Y29uc3R7Y29sb3I6YSxyZWN0OnIsb3V0bGluZXM6cyxvcGFjaXR5Om59PWUsbz1bYCR7Z2V0UGRmQ29sb3IoYSwhMCl9YCwiL1IwIGdzIl0sZz1bXTtmb3IoY29uc3QgZSBvZiBzKXtnLmxlbmd0aD0wO2cucHVzaChgJHtudW1iZXJUb1N0cmluZyhlWzBdKX0gJHtudW1iZXJUb1N0cmluZyhlWzFdKX0gbWApO2ZvcihsZXQgdD0yLGk9ZS5sZW5ndGg7dDxpO3QrPTIpZy5wdXNoKGAke251bWJlclRvU3RyaW5nKGVbdF0pfSAke251bWJlclRvU3RyaW5nKGVbdCsxXSl9IGxgKTtnLnB1c2goImgiKTtvLnB1c2goZy5qb2luKCJcbiIpKX1vLnB1c2goImYqIik7Y29uc3QgYz1vLmpvaW4oIlxuIiksbD1uZXcgRGljdCh0KTtsLnNldCgiRm9ybVR5cGUiLDEpO2wuc2V0KCJTdWJ0eXBlIixOYW1lLmdldCgiRm9ybSIpKTtsLnNldCgiVHlwZSIsTmFtZS5nZXQoIlhPYmplY3QiKSk7bC5zZXQoIkJCb3giLHIpO2wuc2V0KCJMZW5ndGgiLGMubGVuZ3RoKTtjb25zdCBoPW5ldyBEaWN0KHQpLEM9bmV3IERpY3QodCk7aC5zZXQoIkV4dEdTdGF0ZSIsQyk7bC5zZXQoIlJlc291cmNlcyIsaCk7Y29uc3QgUT1uZXcgRGljdCh0KTtDLnNldCgiUjAiLFEpO1Euc2V0KCJCTSIsTmFtZS5nZXQoIk11bHRpcGx5IikpO2lmKDEhPT1uKXtRLnNldCgiY2EiLG4pO1Euc2V0KCJUeXBlIixOYW1lLmdldCgiRXh0R1N0YXRlIikpfWNvbnN0IEU9bmV3IFN0cmluZ1N0cmVhbShjKTtFLmRpY3Q9bDtyZXR1cm4gRX19Y2xhc3MgVW5kZXJsaW5lQW5ub3RhdGlvbiBleHRlbmRzIE1hcmt1cEFubm90YXRpb257Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7Y29uc3R7ZGljdDp0LHhyZWY6aX09ZTt0aGlzLmRhdGEuYW5ub3RhdGlvblR5cGU9WTtpZih0aGlzLmRhdGEucXVhZFBvaW50cz1nZXRRdWFkUG9pbnRzKHQsbnVsbCkpe2lmKCF0aGlzLmFwcGVhcmFuY2Upe2NvbnN0IGU9dGhpcy5jb2xvcj9nZXRQZGZDb2xvckFycmF5KHRoaXMuY29sb3IpOlswLDAsMF0sYT10LmdldCgiQ0EiKTt0aGlzLl9zZXREZWZhdWx0QXBwZWFyYW5jZSh7eHJlZjppLGV4dHJhOiJbXSAwIGQgMC41NzEgdyIsc3Ryb2tlQ29sb3I6ZSxzdHJva2VBbHBoYTphLHBvaW50c0NhbGxiYWNrOihlLHQpPT57ZS5wdXNoKGAke3RbNF19ICR7dFs1XSsxLjN9IG1gLGAke3RbNl19ICR7dFs3XSsxLjN9IGxgLCJTIik7cmV0dXJuW3RbMF0sdFsyXSx0WzddLHRbM11dfX0pfX1lbHNlIHRoaXMuZGF0YS5wb3B1cFJlZj1udWxsfX1jbGFzcyBTcXVpZ2dseUFubm90YXRpb24gZXh0ZW5kcyBNYXJrdXBBbm5vdGF0aW9ue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO2NvbnN0e2RpY3Q6dCx4cmVmOml9PWU7dGhpcy5kYXRhLmFubm90YXRpb25UeXBlPUs7aWYodGhpcy5kYXRhLnF1YWRQb2ludHM9Z2V0UXVhZFBvaW50cyh0LG51bGwpKXtpZighdGhpcy5hcHBlYXJhbmNlKXtjb25zdCBlPXRoaXMuY29sb3I/Z2V0UGRmQ29sb3JBcnJheSh0aGlzLmNvbG9yKTpbMCwwLDBdLGE9dC5nZXQoIkNBIik7dGhpcy5fc2V0RGVmYXVsdEFwcGVhcmFuY2Uoe3hyZWY6aSxleHRyYToiW10gMCBkIDEgdyIsc3Ryb2tlQ29sb3I6ZSxzdHJva2VBbHBoYTphLHBvaW50c0NhbGxiYWNrOihlLHQpPT57Y29uc3QgaT0odFsxXS10WzVdKS82O2xldCBhPWkscj10WzRdO2NvbnN0IHM9dFs1XSxuPXRbNl07ZS5wdXNoKGAke3J9ICR7cythfSBtYCk7ZG97cis9MjthPTA9PT1hP2k6MDtlLnB1c2goYCR7cn0gJHtzK2F9IGxgKX13aGlsZShyPG4pO2UucHVzaCgiUyIpO3JldHVyblt0WzRdLG4scy0yKmkscysyKmldfX0pfX1lbHNlIHRoaXMuZGF0YS5wb3B1cFJlZj1udWxsfX1jbGFzcyBTdHJpa2VPdXRBbm5vdGF0aW9uIGV4dGVuZHMgTWFya3VwQW5ub3RhdGlvbntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTtjb25zdHtkaWN0OnQseHJlZjppfT1lO3RoaXMuZGF0YS5hbm5vdGF0aW9uVHlwZT1UO2lmKHRoaXMuZGF0YS5xdWFkUG9pbnRzPWdldFF1YWRQb2ludHModCxudWxsKSl7aWYoIXRoaXMuYXBwZWFyYW5jZSl7Y29uc3QgZT10aGlzLmNvbG9yP2dldFBkZkNvbG9yQXJyYXkodGhpcy5jb2xvcik6WzAsMCwwXSxhPXQuZ2V0KCJDQSIpO3RoaXMuX3NldERlZmF1bHRBcHBlYXJhbmNlKHt4cmVmOmksZXh0cmE6IltdIDAgZCAxIHciLHN0cm9rZUNvbG9yOmUsc3Ryb2tlQWxwaGE6YSxwb2ludHNDYWxsYmFjazooZSx0KT0+e2UucHVzaCgodFswXSt0WzRdKS8yKyIgIisodFsxXSt0WzVdKS8yKyIgbSIsKHRbMl0rdFs2XSkvMisiICIrKHRbM10rdFs3XSkvMisiIGwiLCJTIik7cmV0dXJuW3RbMF0sdFsyXSx0WzddLHRbM11dfX0pfX1lbHNlIHRoaXMuZGF0YS5wb3B1cFJlZj1udWxsfX1jbGFzcyBTdGFtcEFubm90YXRpb24gZXh0ZW5kcyBNYXJrdXBBbm5vdGF0aW9ueyNUO2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO3RoaXMuZGF0YS5hbm5vdGF0aW9uVHlwZT1xO3RoaXMuI1Q9dGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEubm9Sb3RhdGU7dGhpcy5kYXRhLmlzRWRpdGFibGU9IXRoaXMuZGF0YS5ub0hUTUw7dGhpcy5kYXRhLm5vSFRNTD0hMX1tdXN0QmVWaWV3ZWRXaGVuRWRpdGluZyhlLHQ9bnVsbCl7aWYoZSl7aWYoIXRoaXMuZGF0YS5pc0VkaXRhYmxlKXJldHVybiExO3RoaXMuI1Q9dGhpcy5kYXRhLmhhc093bkNhbnZhczt0aGlzLmRhdGEuaGFzT3duQ2FudmFzPSEwO3JldHVybiEwfXRoaXMuZGF0YS5oYXNPd25DYW52YXM9dGhpcy4jVDtyZXR1cm4hdD8uaGFzKHRoaXMuZGF0YS5pZCl9c3RhdGljIGFzeW5jIGNyZWF0ZUltYWdlKGUsdCl7Y29uc3R7d2lkdGg6aSxoZWlnaHQ6YX09ZSxyPW5ldyBPZmZzY3JlZW5DYW52YXMoaSxhKSxzPXIuZ2V0Q29udGV4dCgiMmQiLHthbHBoYTohMH0pO3MuZHJhd0ltYWdlKGUsMCwwKTtjb25zdCBuPXMuZ2V0SW1hZ2VEYXRhKDAsMCxpLGEpLmRhdGEsbz1uZXcgVWludDMyQXJyYXkobi5idWZmZXIpLGc9by5zb21lKEZlYXR1cmVUZXN0LmlzTGl0dGxlRW5kaWFuP2U9PmU+Pj4yNCE9MjU1OmU9PiEhKDI1NSZ+ZSkpO2lmKGcpe3MuZmlsbFN0eWxlPSJ3aGl0ZSI7cy5maWxsUmVjdCgwLDAsaSxhKTtzLmRyYXdJbWFnZShlLDAsMCl9Y29uc3QgYz1yLmNvbnZlcnRUb0Jsb2Ioe3R5cGU6ImltYWdlL2pwZWciLHF1YWxpdHk6MX0pLnRoZW4oKGU9PmUuYXJyYXlCdWZmZXIoKSkpLGw9TmFtZS5nZXQoIlhPYmplY3QiKSxoPU5hbWUuZ2V0KCJJbWFnZSIpLEM9bmV3IERpY3QodCk7Qy5zZXQoIlR5cGUiLGwpO0Muc2V0KCJTdWJ0eXBlIixoKTtDLnNldCgiQml0c1BlckNvbXBvbmVudCIsOCk7Qy5zZXQoIkNvbG9yU3BhY2UiLE5hbWUuZ2V0KCJEZXZpY2VSR0IiKSk7Qy5zZXQoIkZpbHRlciIsTmFtZS5nZXQoIkRDVERlY29kZSIpKTtDLnNldCgiQkJveCIsWzAsMCxpLGFdKTtDLnNldCgiV2lkdGgiLGkpO0Muc2V0KCJIZWlnaHQiLGEpO2xldCBRPW51bGw7aWYoZyl7Y29uc3QgZT1uZXcgVWludDhBcnJheShvLmxlbmd0aCk7aWYoRmVhdHVyZVRlc3QuaXNMaXR0bGVFbmRpYW4pZm9yKGxldCB0PTAsaT1vLmxlbmd0aDt0PGk7dCsrKWVbdF09b1t0XT4+PjI0O2Vsc2UgZm9yKGxldCB0PTAsaT1vLmxlbmd0aDt0PGk7dCsrKWVbdF09MjU1Jm9bdF07Y29uc3Qgcj1uZXcgRGljdCh0KTtyLnNldCgiVHlwZSIsbCk7ci5zZXQoIlN1YnR5cGUiLGgpO3Iuc2V0KCJCaXRzUGVyQ29tcG9uZW50Iiw4KTtyLnNldCgiQ29sb3JTcGFjZSIsTmFtZS5nZXQoIkRldmljZUdyYXkiKSk7ci5zZXQoIldpZHRoIixpKTtyLnNldCgiSGVpZ2h0IixhKTtRPW5ldyBTdHJlYW0oZSwwLDAscil9cmV0dXJue2ltYWdlU3RyZWFtOm5ldyBTdHJlYW0oYXdhaXQgYywwLDAsQyksc21hc2tTdHJlYW06USx3aWR0aDppLGhlaWdodDphfX1zdGF0aWMgY3JlYXRlTmV3RGljdChlLHQse2FwUmVmOmksYXA6YX0pe2NvbnN0e29sZEFubm90YXRpb246cixyZWN0OnMscm90YXRpb246bix1c2VyOm99PWUsZz1yfHxuZXcgRGljdCh0KTtnLnNldCgiVHlwZSIsTmFtZS5nZXQoIkFubm90IikpO2cuc2V0KCJTdWJ0eXBlIixOYW1lLmdldCgiU3RhbXAiKSk7Zy5zZXQocj8iTSI6IkNyZWF0aW9uRGF0ZSIsYEQ6JHtnZXRNb2RpZmljYXRpb25EYXRlKCl9YCk7Zy5zZXQoIlJlY3QiLHMpO2cuc2V0KCJGIiw0KTtnLnNldCgiQm9yZGVyIixbMCwwLDBdKTtnLnNldCgiUm90YXRlIixuKTtvJiZnLnNldCgiVCIsc3RyaW5nVG9Bc2NpaU9yVVRGMTZCRShvKSk7aWYoaXx8YSl7Y29uc3QgZT1uZXcgRGljdCh0KTtnLnNldCgiQVAiLGUpO2k/ZS5zZXQoIk4iLGkpOmUuc2V0KCJOIixhKX1yZXR1cm4gZ31zdGF0aWMgYXN5bmMgY3JlYXRlTmV3QXBwZWFyYW5jZVN0cmVhbShlLHQsaSl7aWYoZS5vbGRBbm5vdGF0aW9uKXJldHVybiBudWxsO2NvbnN0e3JvdGF0aW9uOmF9PWUse2ltYWdlUmVmOnIsd2lkdGg6cyxoZWlnaHQ6bn09aS5pbWFnZSxvPW5ldyBEaWN0KHQpLGc9bmV3IERpY3QodCk7by5zZXQoIlhPYmplY3QiLGcpO2cuc2V0KCJJbTAiLHIpO2NvbnN0IGM9YHEgJHtzfSAwIDAgJHtufSAwIDAgY20gL0ltMCBEbyBRYCxsPW5ldyBEaWN0KHQpO2wuc2V0KCJGb3JtVHlwZSIsMSk7bC5zZXQoIlN1YnR5cGUiLE5hbWUuZ2V0KCJGb3JtIikpO2wuc2V0KCJUeXBlIixOYW1lLmdldCgiWE9iamVjdCIpKTtsLnNldCgiQkJveCIsWzAsMCxzLG5dKTtsLnNldCgiUmVzb3VyY2VzIixvKTtpZihhKXtjb25zdCBlPWdldFJvdGF0aW9uTWF0cml4KGEscyxuKTtsLnNldCgiTWF0cml4IixlKX1jb25zdCBoPW5ldyBTdHJpbmdTdHJlYW0oYyk7aC5kaWN0PWw7cmV0dXJuIGh9fWNsYXNzIEZpbGVBdHRhY2htZW50QW5ub3RhdGlvbiBleHRlbmRzIE1hcmt1cEFubm90YXRpb257Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7Y29uc3R7ZGljdDp0LHhyZWY6aX09ZSxhPW5ldyBGaWxlU3BlYyh0LmdldCgiRlMiKSxpKTt0aGlzLmRhdGEuYW5ub3RhdGlvblR5cGU9WDt0aGlzLmRhdGEuaGFzT3duQ2FudmFzPXRoaXMuZGF0YS5ub1JvdGF0ZTt0aGlzLmRhdGEubm9IVE1MPSExO3RoaXMuZGF0YS5maWxlPWEuc2VyaWFsaXphYmxlO2NvbnN0IHI9dC5nZXQoIk5hbWUiKTt0aGlzLmRhdGEubmFtZT1yIGluc3RhbmNlb2YgTmFtZT9zdHJpbmdUb1BERlN0cmluZyhyLm5hbWUpOiJQdXNoUGluIjtjb25zdCBzPXQuZ2V0KCJjYSIpO3RoaXMuZGF0YS5maWxsQWxwaGE9Im51bWJlciI9PXR5cGVvZiBzJiZzPj0wJiZzPD0xP3M6bnVsbH19Y2xhc3MgRGVjcnlwdFN0cmVhbSBleHRlbmRzIERlY29kZVN0cmVhbXtjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIodCk7dGhpcy5zdHI9ZTt0aGlzLmRpY3Q9ZS5kaWN0O3RoaXMuZGVjcnlwdD1pO3RoaXMubmV4dENodW5rPW51bGw7dGhpcy5pbml0aWFsaXplZD0hMX1yZWFkQmxvY2soKXtsZXQgZTtpZih0aGlzLmluaXRpYWxpemVkKWU9dGhpcy5uZXh0Q2h1bms7ZWxzZXtlPXRoaXMuc3RyLmdldEJ5dGVzKDUxMik7dGhpcy5pbml0aWFsaXplZD0hMH1pZighZT8ubGVuZ3RoKXt0aGlzLmVvZj0hMDtyZXR1cm59dGhpcy5uZXh0Q2h1bms9dGhpcy5zdHIuZ2V0Qnl0ZXMoNTEyKTtjb25zdCB0PXRoaXMubmV4dENodW5rPy5sZW5ndGg+MDtlPSgwLHRoaXMuZGVjcnlwdCkoZSwhdCk7Y29uc3QgaT10aGlzLmJ1ZmZlckxlbmd0aCxhPWkrZS5sZW5ndGg7dGhpcy5lbnN1cmVCdWZmZXIoYSkuc2V0KGUsaSk7dGhpcy5idWZmZXJMZW5ndGg9YX19Y2xhc3MgQVJDRm91ckNpcGhlcntjb25zdHJ1Y3RvcihlKXt0aGlzLmE9MDt0aGlzLmI9MDtjb25zdCB0PW5ldyBVaW50OEFycmF5KDI1NiksaT1lLmxlbmd0aDtmb3IobGV0IGU9MDtlPDI1NjsrK2UpdFtlXT1lO2ZvcihsZXQgYT0wLHI9MDthPDI1NjsrK2Epe2NvbnN0IHM9dFthXTtyPXIrcytlW2ElaV0mMjU1O3RbYV09dFtyXTt0W3JdPXN9dGhpcy5zPXR9ZW5jcnlwdEJsb2NrKGUpe2xldCB0PXRoaXMuYSxpPXRoaXMuYjtjb25zdCBhPXRoaXMucyxyPWUubGVuZ3RoLHM9bmV3IFVpbnQ4QXJyYXkocik7Zm9yKGxldCBuPTA7bjxyOysrbil7dD10KzEmMjU1O2NvbnN0IHI9YVt0XTtpPWkrciYyNTU7Y29uc3Qgbz1hW2ldO2FbdF09bzthW2ldPXI7c1tuXT1lW25dXmFbcitvJjI1NV19dGhpcy5hPXQ7dGhpcy5iPWk7cmV0dXJuIHN9ZGVjcnlwdEJsb2NrKGUpe3JldHVybiB0aGlzLmVuY3J5cHRCbG9jayhlKX1lbmNyeXB0KGUpe3JldHVybiB0aGlzLmVuY3J5cHRCbG9jayhlKX19Y29uc3QgZW89ZnVuY3Rpb24gY2FsY3VsYXRlTUQ1Q2xvc3VyZSgpe2NvbnN0IGU9bmV3IFVpbnQ4QXJyYXkoWzcsMTIsMTcsMjIsNywxMiwxNywyMiw3LDEyLDE3LDIyLDcsMTIsMTcsMjIsNSw5LDE0LDIwLDUsOSwxNCwyMCw1LDksMTQsMjAsNSw5LDE0LDIwLDQsMTEsMTYsMjMsNCwxMSwxNiwyMyw0LDExLDE2LDIzLDQsMTEsMTYsMjMsNiwxMCwxNSwyMSw2LDEwLDE1LDIxLDYsMTAsMTUsMjEsNiwxMCwxNSwyMV0pLHQ9bmV3IEludDMyQXJyYXkoWy02ODA4NzY5MzYsLTM4OTU2NDU4Niw2MDYxMDU4MTksLTEwNDQ1MjUzMzAsLTE3NjQxODg5NywxMjAwMDgwNDI2LC0xNDczMjMxMzQxLC00NTcwNTk4MywxNzcwMDM1NDE2LC0xOTU4NDE0NDE3LC00MjA2MywtMTk5MDQwNDE2MiwxODA0NjAzNjgyLC00MDM0MTEwMSwtMTUwMjAwMjI5MCwxMjM2NTM1MzI5LC0xNjU3OTY1MTAsLTEwNjk1MDE2MzIsNjQzNzE3NzEzLC0zNzM4OTczMDIsLTcwMTU1ODY5MSwzODAxNjA4MywtNjYwNDc4MzM1LC00MDU1Mzc4NDgsNTY4NDQ2NDM4LC0xMDE5ODAzNjkwLC0xODczNjM5NjEsMTE2MzUzMTUwMSwtMTQ0NDY4MTQ2NywtNTE0MDM3ODQsMTczNTMyODQ3MywtMTkyNjYwNzczNCwtMzc4NTU4LC0yMDIyNTc0NDYzLDE4MzkwMzA1NjIsLTM1MzA5NTU2LC0xNTMwOTkyMDYwLDEyNzI4OTMzNTMsLTE1NTQ5NzYzMiwtMTA5NDczMDY0MCw2ODEyNzkxNzQsLTM1ODUzNzIyMiwtNzIyNTIxOTc5LDc2MDI5MTg5LC02NDAzNjQ0ODcsLTQyMTgxNTgzNSw1MzA3NDI1MjAsLTk5NTMzODY1MSwtMTk4NjMwODQ0LDExMjY4OTE0MTUsLTE0MTYzNTQ5MDUsLTU3NDM0MDU1LDE3MDA0ODU1NzEsLTE4OTQ5ODY2MDYsLTEwNTE1MjMsLTIwNTQ5MjI3OTksMTg3MzMxMzM1OSwtMzA2MTE3NDQsLTE1NjAxOTgzODAsMTMwOTE1MTY0OSwtMTQ1NTIzMDcwLC0xMTIwMjEwMzc5LDcxODc4NzI1OSwtMzQzNDg1NTUxXSk7cmV0dXJuIGZ1bmN0aW9uIGhhc2goaSxhLHIpe2xldCBzPTE3MzI1ODQxOTMsbj0tMjcxNzMzODc5LG89LTE3MzI1ODQxOTQsZz0yNzE3MzM4Nzg7Y29uc3QgYz1yKzcyJi02NCxsPW5ldyBVaW50OEFycmF5KGMpO2xldCBoLEM7Zm9yKGg9MDtoPHI7KytoKWxbaF09aVthKytdO2xbaCsrXT0xMjg7Y29uc3QgUT1jLTg7Zm9yKDtoPFE7KWxbaCsrXT0wO2xbaCsrXT1yPDwzJjI1NTtsW2grK109cj4+NSYyNTU7bFtoKytdPXI+PjEzJjI1NTtsW2grK109cj4+MjEmMjU1O2xbaCsrXT1yPj4+MjkmMjU1O2xbaCsrXT0wO2xbaCsrXT0wO2xbaCsrXT0wO2NvbnN0IEU9bmV3IEludDMyQXJyYXkoMTYpO2ZvcihoPTA7aDxjOyl7Zm9yKEM9MDtDPDE2OysrQyxoKz00KUVbQ109bFtoXXxsW2grMV08PDh8bFtoKzJdPDwxNnxsW2grM108PDI0O2xldCBpLGEscj1zLGM9bixRPW8sdT1nO2ZvcihDPTA7Qzw2NDsrK0Mpe2lmKEM8MTYpe2k9YyZRfH5jJnU7YT1DfWVsc2UgaWYoQzwzMil7aT11JmN8fnUmUTthPTUqQysxJjE1fWVsc2UgaWYoQzw0OCl7aT1jXlFedTthPTMqQys1JjE1fWVsc2V7aT1RXihjfH51KTthPTcqQyYxNX1jb25zdCBzPXUsbj1yK2krdFtDXStFW2FdfDAsbz1lW0NdO3U9UTtRPWM7Yz1jKyhuPDxvfG4+Pj4zMi1vKXwwO3I9c31zPXMrcnwwO249bitjfDA7bz1vK1F8MDtnPWcrdXwwfXJldHVybiBuZXcgVWludDhBcnJheShbMjU1JnMscz4+OCYyNTUscz4+MTYmMjU1LHM+Pj4yNCYyNTUsMjU1Jm4sbj4+OCYyNTUsbj4+MTYmMjU1LG4+Pj4yNCYyNTUsMjU1Jm8sbz4+OCYyNTUsbz4+MTYmMjU1LG8+Pj4yNCYyNTUsMjU1JmcsZz4+OCYyNTUsZz4+MTYmMjU1LGc+Pj4yNCYyNTVdKX19KCk7Y2xhc3MgV29yZDY0e2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5oaWdoPTB8ZTt0aGlzLmxvdz0wfHR9YW5kKGUpe3RoaXMuaGlnaCY9ZS5oaWdoO3RoaXMubG93Jj1lLmxvd314b3IoZSl7dGhpcy5oaWdoXj1lLmhpZ2g7dGhpcy5sb3dePWUubG93fW9yKGUpe3RoaXMuaGlnaHw9ZS5oaWdoO3RoaXMubG93fD1lLmxvd31zaGlmdFJpZ2h0KGUpe2lmKGU+PTMyKXt0aGlzLmxvdz10aGlzLmhpZ2g+Pj5lLTMyfDA7dGhpcy5oaWdoPTB9ZWxzZXt0aGlzLmxvdz10aGlzLmxvdz4+PmV8dGhpcy5oaWdoPDwzMi1lO3RoaXMuaGlnaD10aGlzLmhpZ2g+Pj5lfDB9fXNoaWZ0TGVmdChlKXtpZihlPj0zMil7dGhpcy5oaWdoPXRoaXMubG93PDxlLTMyO3RoaXMubG93PTB9ZWxzZXt0aGlzLmhpZ2g9dGhpcy5oaWdoPDxlfHRoaXMubG93Pj4+MzItZTt0aGlzLmxvdzw8PWV9fXJvdGF0ZVJpZ2h0KGUpe2xldCB0LGk7aWYoMzImZSl7aT10aGlzLmxvdzt0PXRoaXMuaGlnaH1lbHNle3Q9dGhpcy5sb3c7aT10aGlzLmhpZ2h9ZSY9MzE7dGhpcy5sb3c9dD4+PmV8aTw8MzItZTt0aGlzLmhpZ2g9aT4+PmV8dDw8MzItZX1ub3QoKXt0aGlzLmhpZ2g9fnRoaXMuaGlnaDt0aGlzLmxvdz1+dGhpcy5sb3d9YWRkKGUpe2NvbnN0IHQ9KHRoaXMubG93Pj4+MCkrKGUubG93Pj4+MCk7bGV0IGk9KHRoaXMuaGlnaD4+PjApKyhlLmhpZ2g+Pj4wKTt0PjQyOTQ5NjcyOTUmJihpKz0xKTt0aGlzLmxvdz0wfHQ7dGhpcy5oaWdoPTB8aX1jb3B5VG8oZSx0KXtlW3RdPXRoaXMuaGlnaD4+PjI0JjI1NTtlW3QrMV09dGhpcy5oaWdoPj4xNiYyNTU7ZVt0KzJdPXRoaXMuaGlnaD4+OCYyNTU7ZVt0KzNdPTI1NSZ0aGlzLmhpZ2g7ZVt0KzRdPXRoaXMubG93Pj4+MjQmMjU1O2VbdCs1XT10aGlzLmxvdz4+MTYmMjU1O2VbdCs2XT10aGlzLmxvdz4+OCYyNTU7ZVt0KzddPTI1NSZ0aGlzLmxvd31hc3NpZ24oZSl7dGhpcy5oaWdoPWUuaGlnaDt0aGlzLmxvdz1lLmxvd319Y29uc3QgdG89ZnVuY3Rpb24gY2FsY3VsYXRlU0hBMjU2Q2xvc3VyZSgpe2Z1bmN0aW9uIHJvdHIoZSx0KXtyZXR1cm4gZT4+PnR8ZTw8MzItdH1mdW5jdGlvbiBjaChlLHQsaSl7cmV0dXJuIGUmdF5+ZSZpfWZ1bmN0aW9uIG1haihlLHQsaSl7cmV0dXJuIGUmdF5lJmledCZpfWZ1bmN0aW9uIHNpZ21hKGUpe3JldHVybiByb3RyKGUsMilecm90cihlLDEzKV5yb3RyKGUsMjIpfWZ1bmN0aW9uIHNpZ21hUHJpbWUoZSl7cmV0dXJuIHJvdHIoZSw2KV5yb3RyKGUsMTEpXnJvdHIoZSwyNSl9ZnVuY3Rpb24gbGl0dGxlU2lnbWEoZSl7cmV0dXJuIHJvdHIoZSw3KV5yb3RyKGUsMTgpXmU+Pj4zfWNvbnN0IGU9WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCw0MDk0NTcxOTA5LDI3NTQyMzM0NCw0MzAyMjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4NzcsOTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUzNzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwyNzU2NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5OF07cmV0dXJuIGZ1bmN0aW9uIGhhc2godCxpLGEpe2xldCByPTE3NzkwMzM3MDMscz0zMTQ0MTM0Mjc3LG49MTAxMzkwNDI0MixvPTI3NzM0ODA3NjIsZz0xMzU5ODkzMTE5LGM9MjYwMDgyMjkyNCxsPTUyODczNDYzNSxoPTE1NDE0NTkyMjU7Y29uc3QgQz02NCpNYXRoLmNlaWwoKGErOSkvNjQpLFE9bmV3IFVpbnQ4QXJyYXkoQyk7bGV0IEUsdTtmb3IoRT0wO0U8YTsrK0UpUVtFXT10W2krK107UVtFKytdPTEyODtjb25zdCBkPUMtODtmb3IoO0U8ZDspUVtFKytdPTA7UVtFKytdPTA7UVtFKytdPTA7UVtFKytdPTA7UVtFKytdPWE+Pj4yOSYyNTU7UVtFKytdPWE+PjIxJjI1NTtRW0UrK109YT4+MTMmMjU1O1FbRSsrXT1hPj41JjI1NTtRW0UrK109YTw8MyYyNTU7Y29uc3QgZj1uZXcgVWludDMyQXJyYXkoNjQpO2ZvcihFPTA7RTxDOyl7Zm9yKHU9MDt1PDE2OysrdSl7Zlt1XT1RW0VdPDwyNHxRW0UrMV08PDE2fFFbRSsyXTw8OHxRW0UrM107RSs9NH1mb3IodT0xNjt1PDY0OysrdSlmW3VdPShyb3RyKHA9Zlt1LTJdLDE3KV5yb3RyKHAsMTkpXnA+Pj4xMCkrZlt1LTddK2xpdHRsZVNpZ21hKGZbdS0xNV0pK2ZbdS0xNl18MDtsZXQgdCxpLGE9cixDPXMsZD1uLG09byx5PWcsdz1jLGI9bCxEPWg7Zm9yKHU9MDt1PDY0OysrdSl7dD1EK3NpZ21hUHJpbWUoeSkrY2goeSx3LGIpK2VbdV0rZlt1XTtpPXNpZ21hKGEpK21haihhLEMsZCk7RD1iO2I9dzt3PXk7eT1tK3R8MDttPWQ7ZD1DO0M9YTthPXQraXwwfXI9cithfDA7cz1zK0N8MDtuPW4rZHwwO289byttfDA7Zz1nK3l8MDtjPWMrd3wwO2w9bCtifDA7aD1oK0R8MH12YXIgcDtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoW3I+PjI0JjI1NSxyPj4xNiYyNTUscj4+OCYyNTUsMjU1JnIscz4+MjQmMjU1LHM+PjE2JjI1NSxzPj44JjI1NSwyNTUmcyxuPj4yNCYyNTUsbj4+MTYmMjU1LG4+PjgmMjU1LDI1NSZuLG8+PjI0JjI1NSxvPj4xNiYyNTUsbz4+OCYyNTUsMjU1Jm8sZz4+MjQmMjU1LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZyxjPj4yNCYyNTUsYz4+MTYmMjU1LGM+PjgmMjU1LDI1NSZjLGw+PjI0JjI1NSxsPj4xNiYyNTUsbD4+OCYyNTUsMjU1JmwsaD4+MjQmMjU1LGg+PjE2JjI1NSxoPj44JjI1NSwyNTUmaF0pfX0oKSxpbz1mdW5jdGlvbiBjYWxjdWxhdGVTSEE1MTJDbG9zdXJlKCl7ZnVuY3Rpb24gY2goZSx0LGksYSxyKXtlLmFzc2lnbih0KTtlLmFuZChpKTtyLmFzc2lnbih0KTtyLm5vdCgpO3IuYW5kKGEpO2UueG9yKHIpfWZ1bmN0aW9uIG1haihlLHQsaSxhLHIpe2UuYXNzaWduKHQpO2UuYW5kKGkpO3IuYXNzaWduKHQpO3IuYW5kKGEpO2UueG9yKHIpO3IuYXNzaWduKGkpO3IuYW5kKGEpO2UueG9yKHIpfWZ1bmN0aW9uIHNpZ21hKGUsdCxpKXtlLmFzc2lnbih0KTtlLnJvdGF0ZVJpZ2h0KDI4KTtpLmFzc2lnbih0KTtpLnJvdGF0ZVJpZ2h0KDM0KTtlLnhvcihpKTtpLmFzc2lnbih0KTtpLnJvdGF0ZVJpZ2h0KDM5KTtlLnhvcihpKX1mdW5jdGlvbiBzaWdtYVByaW1lKGUsdCxpKXtlLmFzc2lnbih0KTtlLnJvdGF0ZVJpZ2h0KDE0KTtpLmFzc2lnbih0KTtpLnJvdGF0ZVJpZ2h0KDE4KTtlLnhvcihpKTtpLmFzc2lnbih0KTtpLnJvdGF0ZVJpZ2h0KDQxKTtlLnhvcihpKX1mdW5jdGlvbiBsaXR0bGVTaWdtYShlLHQsaSl7ZS5hc3NpZ24odCk7ZS5yb3RhdGVSaWdodCgxKTtpLmFzc2lnbih0KTtpLnJvdGF0ZVJpZ2h0KDgpO2UueG9yKGkpO2kuYXNzaWduKHQpO2kuc2hpZnRSaWdodCg3KTtlLnhvcihpKX1mdW5jdGlvbiBsaXR0bGVTaWdtYVByaW1lKGUsdCxpKXtlLmFzc2lnbih0KTtlLnJvdGF0ZVJpZ2h0KDE5KTtpLmFzc2lnbih0KTtpLnJvdGF0ZVJpZ2h0KDYxKTtlLnhvcihpKTtpLmFzc2lnbih0KTtpLnNoaWZ0UmlnaHQoNik7ZS54b3IoaSl9Y29uc3QgZT1bbmV3IFdvcmQ2NCgxMTE2MzUyNDA4LDM2MDk3Njc0NTgpLG5ldyBXb3JkNjQoMTg5OTQ0NzQ0MSw2MDI4OTE3MjUpLG5ldyBXb3JkNjQoMzA0OTMyMzQ3MSwzOTY0NDg0Mzk5KSxuZXcgV29yZDY0KDM5MjEwMDk1NzMsMjE3MzI5NTU0OCksbmV3IFdvcmQ2NCg5NjE5ODcxNjMsNDA4MTYyODQ3MiksbmV3IFdvcmQ2NCgxNTA4OTcwOTkzLDMwNTM4MzQyNjUpLG5ldyBXb3JkNjQoMjQ1MzYzNTc0OCwyOTM3NjcxNTc5KSxuZXcgV29yZDY0KDI4NzA3NjMyMjEsMzY2NDYwOTU2MCksbmV3IFdvcmQ2NCgzNjI0MzgxMDgwLDI3MzQ4ODMzOTQpLG5ldyBXb3JkNjQoMzEwNTk4NDAxLDExNjQ5OTY1NDIpLG5ldyBXb3JkNjQoNjA3MjI1Mjc4LDEzMjM2MTA3NjQpLG5ldyBXb3JkNjQoMTQyNjg4MTk4NywzNTkwMzA0OTk0KSxuZXcgV29yZDY0KDE5MjUwNzgzODgsNDA2ODE4MjM4MyksbmV3IFdvcmQ2NCgyMTYyMDc4MjA2LDk5MTMzNjExMyksbmV3IFdvcmQ2NCgyNjE0ODg4MTAzLDYzMzgwMzMxNyksbmV3IFdvcmQ2NCgzMjQ4MjIyNTgwLDM0Nzk3NzQ4NjgpLG5ldyBXb3JkNjQoMzgzNTM5MDQwMSwyNjY2NjEzNDU4KSxuZXcgV29yZDY0KDQwMjIyMjQ3NzQsOTQ0NzExMTM5KSxuZXcgV29yZDY0KDI2NDM0NzA3OCwyMzQxMjYyNzczKSxuZXcgV29yZDY0KDYwNDgwNzYyOCwyMDA3ODAwOTMzKSxuZXcgV29yZDY0KDc3MDI1NTk4MywxNDk1OTkwOTAxKSxuZXcgV29yZDY0KDEyNDkxNTAxMjIsMTg1NjQzMTIzNSksbmV3IFdvcmQ2NCgxNTU1MDgxNjkyLDMxNzUyMTgxMzIpLG5ldyBXb3JkNjQoMTk5NjA2NDk4NiwyMTk4OTUwODM3KSxuZXcgV29yZDY0KDI1NTQyMjA4ODIsMzk5OTcxOTMzOSksbmV3IFdvcmQ2NCgyODIxODM0MzQ5LDc2Njc4NDAxNiksbmV3IFdvcmQ2NCgyOTUyOTk2ODA4LDI1NjY1OTQ4NzkpLG5ldyBXb3JkNjQoMzIxMDMxMzY3MSwzMjAzMzM3OTU2KSxuZXcgV29yZDY0KDMzMzY1NzE4OTEsMTAzNDQ1NzAyNiksbmV3IFdvcmQ2NCgzNTg0NTI4NzExLDI0NjY5NDg5MDEpLG5ldyBXb3JkNjQoMTEzOTI2OTkzLDM3NTgzMjYzODMpLG5ldyBXb3JkNjQoMzM4MjQxODk1LDE2ODcxNzkzNiksbmV3IFdvcmQ2NCg2NjYzMDcyMDUsMTE4ODE3OTk2NCksbmV3IFdvcmQ2NCg3NzM1Mjk5MTIsMTU0NjA0NTczNCksbmV3IFdvcmQ2NCgxMjk0NzU3MzcyLDE1MjI4MDU0ODUpLG5ldyBXb3JkNjQoMTM5NjE4MjI5MSwyNjQzODMzODIzKSxuZXcgV29yZDY0KDE2OTUxODM3MDAsMjM0MzUyNzM5MCksbmV3IFdvcmQ2NCgxOTg2NjYxMDUxLDEwMTQ0Nzc0ODApLG5ldyBXb3JkNjQoMjE3NzAyNjM1MCwxMjA2NzU5MTQyKSxuZXcgV29yZDY0KDI0NTY5NTYwMzcsMzQ0MDc3NjI3KSxuZXcgV29yZDY0KDI3MzA0ODU5MjEsMTI5MDg2MzQ2MCksbmV3IFdvcmQ2NCgyODIwMzAyNDExLDMxNTg0NTQyNzMpLG5ldyBXb3JkNjQoMzI1OTczMDgwMCwzNTA1OTUyNjU3KSxuZXcgV29yZDY0KDMzNDU3NjQ3NzEsMTA2MjE3MDA4KSxuZXcgV29yZDY0KDM1MTYwNjU4MTcsMzYwNjAwODM0NCksbmV3IFdvcmQ2NCgzNjAwMzUyODA0LDE0MzI3MjU3NzYpLG5ldyBXb3JkNjQoNDA5NDU3MTkwOSwxNDY3MDMxNTk0KSxuZXcgV29yZDY0KDI3NTQyMzM0NCw4NTExNjk3MjApLG5ldyBXb3JkNjQoNDMwMjI3NzM0LDMxMDA4MjM3NTIpLG5ldyBXb3JkNjQoNTA2OTQ4NjE2LDEzNjMyNTgxOTUpLG5ldyBXb3JkNjQoNjU5MDYwNTU2LDM3NTA2ODU1OTMpLG5ldyBXb3JkNjQoODgzOTk3ODc3LDM3ODUwNTAyODApLG5ldyBXb3JkNjQoOTU4MTM5NTcxLDMzMTgzMDc0MjcpLG5ldyBXb3JkNjQoMTMyMjgyMjIxOCwzODEyNzIzNDAzKSxuZXcgV29yZDY0KDE1MzcwMDIwNjMsMjAwMzAzNDk5NSksbmV3IFdvcmQ2NCgxNzQ3ODczNzc5LDM2MDIwMzY4OTkpLG5ldyBXb3JkNjQoMTk1NTU2MjIyMiwxNTc1OTkwMDEyKSxuZXcgV29yZDY0KDIwMjQxMDQ4MTUsMTEyNTU5MjkyOCksbmV3IFdvcmQ2NCgyMjI3NzMwNDUyLDI3MTY5MDQzMDYpLG5ldyBXb3JkNjQoMjM2MTg1MjQyNCw0NDI3NzYwNDQpLG5ldyBXb3JkNjQoMjQyODQzNjQ3NCw1OTM2OTgzNDQpLG5ldyBXb3JkNjQoMjc1NjczNDE4NywzNzMzMTEwMjQ5KSxuZXcgV29yZDY0KDMyMDQwMzE0NzksMjk5OTM1MTU3MyksbmV3IFdvcmQ2NCgzMzI5MzI1Mjk4LDM4MTU5MjA0MjcpLG5ldyBXb3JkNjQoMzM5MTU2OTYxNCwzOTI4MzgzOTAwKSxuZXcgV29yZDY0KDM1MTUyNjcyNzEsNTY2MjgwNzExKSxuZXcgV29yZDY0KDM5NDAxODc2MDYsMzQ1NDA2OTUzNCksbmV3IFdvcmQ2NCg0MTE4NjMwMjcxLDQwMDAyMzk5OTIpLG5ldyBXb3JkNjQoMTE2NDE4NDc0LDE5MTQxMzg1NTQpLG5ldyBXb3JkNjQoMTc0MjkyNDIxLDI3MzEwNTUyNzApLG5ldyBXb3JkNjQoMjg5MzgwMzU2LDMyMDM5OTMwMDYpLG5ldyBXb3JkNjQoNDYwMzkzMjY5LDMyMDYyMDMxNSksbmV3IFdvcmQ2NCg2ODU0NzE3MzMsNTg3NDk2ODM2KSxuZXcgV29yZDY0KDg1MjE0Mjk3MSwxMDg2NzkyODUxKSxuZXcgV29yZDY0KDEwMTcwMzYyOTgsMzY1NTQzMTAwKSxuZXcgV29yZDY0KDExMjYwMDA1ODAsMjYxODI5NzY3NiksbmV3IFdvcmQ2NCgxMjg4MDMzNDcwLDM0MDk4NTUxNTgpLG5ldyBXb3JkNjQoMTUwMTUwNTk0OCw0MjM0NTA5ODY2KSxuZXcgV29yZDY0KDE2MDcxNjc5MTUsOTg3MTY3NDY4KSxuZXcgV29yZDY0KDE4MTY0MDIzMTYsMTI0NjE4OTU5MSldO3JldHVybiBmdW5jdGlvbiBoYXNoKHQsaSxhLHI9ITEpe2xldCBzLG4sbyxnLGMsbCxoLEM7aWYocil7cz1uZXcgV29yZDY0KDM0MTgwNzAzNjUsMzIzODM3MTAzMik7bj1uZXcgV29yZDY0KDE2NTQyNzAyNTAsOTE0MTUwNjYzKTtvPW5ldyBXb3JkNjQoMjQzODUyOTM3MCw4MTI3MDI5OTkpO2c9bmV3IFdvcmQ2NCgzNTU0NjIzNjAsNDE0NDkxMjY5Nyk7Yz1uZXcgV29yZDY0KDE3MzE0MDU0MTUsNDI5MDc3NTg1Nyk7bD1uZXcgV29yZDY0KDIzOTQxODAyMzEsMTc1MDYwMzAyNSk7aD1uZXcgV29yZDY0KDM2NzUwMDg1MjUsMTY5NDA3NjgzOSk7Qz1uZXcgV29yZDY0KDEyMDMwNjI4MTMsMzIwNDA3NTQyOCl9ZWxzZXtzPW5ldyBXb3JkNjQoMTc3OTAzMzcwMyw0MDg5MjM1NzIwKTtuPW5ldyBXb3JkNjQoMzE0NDEzNDI3NywyMjI3ODczNTk1KTtvPW5ldyBXb3JkNjQoMTAxMzkwNDI0Miw0MjcxMTc1NzIzKTtnPW5ldyBXb3JkNjQoMjc3MzQ4MDc2MiwxNTk1NzUwMTI5KTtjPW5ldyBXb3JkNjQoMTM1OTg5MzExOSwyOTE3NTY1MTM3KTtsPW5ldyBXb3JkNjQoMjYwMDgyMjkyNCw3MjU1MTExOTkpO2g9bmV3IFdvcmQ2NCg1Mjg3MzQ2MzUsNDIxNTM4OTU0Nyk7Qz1uZXcgV29yZDY0KDE1NDE0NTkyMjUsMzI3MDMzMjA5KX1jb25zdCBRPTEyOCpNYXRoLmNlaWwoKGErMTcpLzEyOCksRT1uZXcgVWludDhBcnJheShRKTtsZXQgdSxkO2Zvcih1PTA7dTxhOysrdSlFW3VdPXRbaSsrXTtFW3UrK109MTI4O2NvbnN0IGY9US0xNjtmb3IoO3U8ZjspRVt1KytdPTA7RVt1KytdPTA7RVt1KytdPTA7RVt1KytdPTA7RVt1KytdPTA7RVt1KytdPTA7RVt1KytdPTA7RVt1KytdPTA7RVt1KytdPTA7RVt1KytdPTA7RVt1KytdPTA7RVt1KytdPTA7RVt1KytdPWE+Pj4yOSYyNTU7RVt1KytdPWE+PjIxJjI1NTtFW3UrK109YT4+MTMmMjU1O0VbdSsrXT1hPj41JjI1NTtFW3UrK109YTw8MyYyNTU7Y29uc3QgcD1uZXcgQXJyYXkoODApO2Zvcih1PTA7dTw4MDt1KyspcFt1XT1uZXcgV29yZDY0KDAsMCk7bGV0IG09bmV3IFdvcmQ2NCgwLDApLHk9bmV3IFdvcmQ2NCgwLDApLHc9bmV3IFdvcmQ2NCgwLDApLGI9bmV3IFdvcmQ2NCgwLDApLEQ9bmV3IFdvcmQ2NCgwLDApLFM9bmV3IFdvcmQ2NCgwLDApLGs9bmV3IFdvcmQ2NCgwLDApLFI9bmV3IFdvcmQ2NCgwLDApO2NvbnN0IE49bmV3IFdvcmQ2NCgwLDApLEc9bmV3IFdvcmQ2NCgwLDApLE09bmV3IFdvcmQ2NCgwLDApLFU9bmV3IFdvcmQ2NCgwLDApO2xldCB4LEw7Zm9yKHU9MDt1PFE7KXtmb3IoZD0wO2Q8MTY7KytkKXtwW2RdLmhpZ2g9RVt1XTw8MjR8RVt1KzFdPDwxNnxFW3UrMl08PDh8RVt1KzNdO3BbZF0ubG93PUVbdSs0XTw8MjR8RVt1KzVdPDwxNnxFW3UrNl08PDh8RVt1KzddO3UrPTh9Zm9yKGQ9MTY7ZDw4MDsrK2Qpe3g9cFtkXTtsaXR0bGVTaWdtYVByaW1lKHgscFtkLTJdLFUpO3guYWRkKHBbZC03XSk7bGl0dGxlU2lnbWEoTSxwW2QtMTVdLFUpO3guYWRkKE0pO3guYWRkKHBbZC0xNl0pfW0uYXNzaWduKHMpO3kuYXNzaWduKG4pO3cuYXNzaWduKG8pO2IuYXNzaWduKGcpO0QuYXNzaWduKGMpO1MuYXNzaWduKGwpO2suYXNzaWduKGgpO1IuYXNzaWduKEMpO2ZvcihkPTA7ZDw4MDsrK2Qpe04uYXNzaWduKFIpO3NpZ21hUHJpbWUoTSxELFUpO04uYWRkKE0pO2NoKE0sRCxTLGssVSk7Ti5hZGQoTSk7Ti5hZGQoZVtkXSk7Ti5hZGQocFtkXSk7c2lnbWEoRyxtLFUpO21haihNLG0seSx3LFUpO0cuYWRkKE0pO3g9UjtSPWs7az1TO1M9RDtiLmFkZChOKTtEPWI7Yj13O3c9eTt5PW07eC5hc3NpZ24oTik7eC5hZGQoRyk7bT14fXMuYWRkKG0pO24uYWRkKHkpO28uYWRkKHcpO2cuYWRkKGIpO2MuYWRkKEQpO2wuYWRkKFMpO2guYWRkKGspO0MuYWRkKFIpfWlmKHIpe0w9bmV3IFVpbnQ4QXJyYXkoNDgpO3MuY29weVRvKEwsMCk7bi5jb3B5VG8oTCw4KTtvLmNvcHlUbyhMLDE2KTtnLmNvcHlUbyhMLDI0KTtjLmNvcHlUbyhMLDMyKTtsLmNvcHlUbyhMLDQwKX1lbHNle0w9bmV3IFVpbnQ4QXJyYXkoNjQpO3MuY29weVRvKEwsMCk7bi5jb3B5VG8oTCw4KTtvLmNvcHlUbyhMLDE2KTtnLmNvcHlUbyhMLDI0KTtjLmNvcHlUbyhMLDMyKTtsLmNvcHlUbyhMLDQwKTtoLmNvcHlUbyhMLDQ4KTtDLmNvcHlUbyhMLDU2KX1yZXR1cm4gTH19KCk7Y2xhc3MgTnVsbENpcGhlcntkZWNyeXB0QmxvY2soZSl7cmV0dXJuIGV9ZW5jcnlwdChlKXtyZXR1cm4gZX19Y2xhc3MgQUVTQmFzZUNpcGhlcntjb25zdHJ1Y3Rvcigpe3RoaXMuX3M9bmV3IFVpbnQ4QXJyYXkoWzk5LDEyNCwxMTksMTIzLDI0MiwxMDcsMTExLDE5Nyw0OCwxLDEwMyw0MywyNTQsMjE1LDE3MSwxMTgsMjAyLDEzMCwyMDEsMTI1LDI1MCw4OSw3MSwyNDAsMTczLDIxMiwxNjIsMTc1LDE1NiwxNjQsMTE0LDE5MiwxODMsMjUzLDE0NywzOCw1NCw2MywyNDcsMjA0LDUyLDE2NSwyMjksMjQxLDExMywyMTYsNDksMjEsNCwxOTksMzUsMTk1LDI0LDE1MCw1LDE1NCw3LDE4LDEyOCwyMjYsMjM1LDM5LDE3OCwxMTcsOSwxMzEsNDQsMjYsMjcsMTEwLDkwLDE2MCw4Miw1OSwyMTQsMTc5LDQxLDIyNyw0NywxMzIsODMsMjA5LDAsMjM3LDMyLDI1MiwxNzcsOTEsMTA2LDIwMywxOTAsNTcsNzQsNzYsODgsMjA3LDIwOCwyMzksMTcwLDI1MSw2Nyw3Nyw1MSwxMzMsNjksMjQ5LDIsMTI3LDgwLDYwLDE1OSwxNjgsODEsMTYzLDY0LDE0MywxNDYsMTU3LDU2LDI0NSwxODgsMTgyLDIxOCwzMywxNiwyNTUsMjQzLDIxMCwyMDUsMTIsMTksMjM2LDk1LDE1MSw2OCwyMywxOTYsMTY3LDEyNiw2MSwxMDAsOTMsMjUsMTE1LDk2LDEyOSw3OSwyMjAsMzQsNDIsMTQ0LDEzNiw3MCwyMzgsMTg0LDIwLDIyMiw5NCwxMSwyMTksMjI0LDUwLDU4LDEwLDczLDYsMzYsOTIsMTk0LDIxMSwxNzIsOTgsMTQ1LDE0OSwyMjgsMTIxLDIzMSwyMDAsNTUsMTA5LDE0MSwyMTMsNzgsMTY5LDEwOCw4NiwyNDQsMjM0LDEwMSwxMjIsMTc0LDgsMTg2LDEyMCwzNyw0NiwyOCwxNjYsMTgwLDE5OCwyMzIsMjIxLDExNiwzMSw3NSwxODksMTM5LDEzOCwxMTIsNjIsMTgxLDEwMiw3MiwzLDI0NiwxNCw5Nyw1Myw4NywxODUsMTM0LDE5MywyOSwxNTgsMjI1LDI0OCwxNTIsMTcsMTA1LDIxNywxNDIsMTQ4LDE1NSwzMCwxMzUsMjMzLDIwNiw4NSw0MCwyMjMsMTQwLDE2MSwxMzcsMTMsMTkxLDIzMCw2NiwxMDQsNjUsMTUzLDQ1LDE1LDE3Niw4NCwxODcsMjJdKTt0aGlzLl9pbnZfcz1uZXcgVWludDhBcnJheShbODIsOSwxMDYsMjEzLDQ4LDU0LDE2NSw1NiwxOTEsNjQsMTYzLDE1OCwxMjksMjQzLDIxNSwyNTEsMTI0LDIyNyw1NywxMzAsMTU1LDQ3LDI1NSwxMzUsNTIsMTQyLDY3LDY4LDE5NiwyMjIsMjMzLDIwMyw4NCwxMjMsMTQ4LDUwLDE2NiwxOTQsMzUsNjEsMjM4LDc2LDE0OSwxMSw2NiwyNTAsMTk1LDc4LDgsNDYsMTYxLDEwMiw0MCwyMTcsMzYsMTc4LDExOCw5MSwxNjIsNzMsMTA5LDEzOSwyMDksMzcsMTE0LDI0OCwyNDYsMTAwLDEzNCwxMDQsMTUyLDIyLDIxMiwxNjQsOTIsMjA0LDkzLDEwMSwxODIsMTQ2LDEwOCwxMTIsNzIsODAsMjUzLDIzNywxODUsMjE4LDk0LDIxLDcwLDg3LDE2NywxNDEsMTU3LDEzMiwxNDQsMjE2LDE3MSwwLDE0MCwxODgsMjExLDEwLDI0NywyMjgsODgsNSwxODQsMTc5LDY5LDYsMjA4LDQ0LDMwLDE0MywyMDIsNjMsMTUsMiwxOTMsMTc1LDE4OSwzLDEsMTksMTM4LDEwNyw1OCwxNDUsMTcsNjUsNzksMTAzLDIyMCwyMzQsMTUxLDI0MiwyMDcsMjA2LDI0MCwxODAsMjMwLDExNSwxNTAsMTcyLDExNiwzNCwyMzEsMTczLDUzLDEzMywyMjYsMjQ5LDU1LDIzMiwyOCwxMTcsMjIzLDExMCw3MSwyNDEsMjYsMTEzLDI5LDQxLDE5NywxMzcsMTExLDE4Myw5OCwxNCwxNzAsMjQsMTkwLDI3LDI1Miw4Niw2Miw3NSwxOTgsMjEwLDEyMSwzMiwxNTQsMjE5LDE5MiwyNTQsMTIwLDIwNSw5MCwyNDQsMzEsMjIxLDE2OCw1MSwxMzYsNywxOTksNDksMTc3LDE4LDE2LDg5LDM5LDEyOCwyMzYsOTUsOTYsODEsMTI3LDE2OSwyNSwxODEsNzQsMTMsNDUsMjI5LDEyMiwxNTksMTQ3LDIwMSwxNTYsMjM5LDE2MCwyMjQsNTksNzcsMTc0LDQyLDI0NSwxNzYsMjAwLDIzNSwxODcsNjAsMTMxLDgzLDE1Myw5NywyMyw0Myw0LDEyNiwxODYsMTE5LDIxNCwzOCwyMjUsMTA1LDIwLDk5LDg1LDMzLDEyLDEyNV0pO3RoaXMuX21peD1uZXcgVWludDMyQXJyYXkoWzAsMjM1NDc0MTg3LDQ3MDk0ODM3NCwzMDM3NjUyNzcsOTQxODk2NzQ4LDkwODkzMzQxNSw2MDc1MzA1NTQsNzA4NzgwODQ5LDE4ODM3OTM0OTYsMjExODIxNDk5NSwxODE3ODY2ODMwLDE2NDk2MzkyMzcsMTIxNTA2MTEwOCwxMTgxMDQ1MTE5LDE0MTc1NjE2OTgsMTUxNzc2NzUyOSwzNzY3NTg2OTkyLDQwMDMwNjExNzksNDIzNjQyOTk5MCw0MDY5MjQ2ODkzLDM2MzU3MzM2NjAsMzYwMjc3MDMyNywzMjk5Mjc4NDc0LDM0MDA1Mjg3NjksMjQzMDEyMjIxNiwyNjY0NTQzNzE1LDIzNjIwOTAyMzgsMjE5Mzg2MjY0NSwyODM1MTIzMzk2LDI4MDExMDc0MDcsMzAzNTUzNTA1OCwzMTM1NzQwODg5LDM2NzgxMjQ5MjMsMzU3Njg3MDUxMiwzMzQxMzk0Mjg1LDMzNzQzNjE3MDIsMzgxMDQ5NjM0MywzOTc3Njc1MzU2LDQyNzkwODAyNTcsNDA0MzYxMDE4NiwyODc2NDk0NjI3LDI3NzYyOTI5MDQsMzA3NjYzOTAyOSwzMTEwNjUwOTQyLDI0NzIwMTE1MzUsMjY0MDI0MzIwNCwyNDAzNzI4NjY1LDIxNjkzMDMwNTgsMTAwMTA4OTk5NSw4OTk4MzU1ODQsNjY2NDY0NzMzLDY5OTQzMjE1MCw1OTcyNzg0NywyMjY5MDY4NjAsNTMwNDAwNzUzLDI5NDkzMDY4MiwxMjczMTY4Nzg3LDExNzI5NjcwNjQsMTQ3NTQxODUwMSwxNTA5NDMwNDE0LDE5NDI0MzU3NzUsMjExMDY2NzQ0NCwxODc2MjQxODMzLDE2NDE4MTYyMjYsMjkxMDIxOTc2NiwyNzQzMDM0MTA5LDI5NzYxNTE1MjAsMzIxMTYyMzE0NywyNTA1MjAyMTM4LDI2MDY0NTM5NjksMjMwMjY5MDI1MiwyMjY5NzI4NDU1LDM3MTE4Mjk0MjIsMzU0MzU5OTI2OSwzMjQwODk0MzkyLDM0NzUzMTMzMzEsMzg0MzY5OTA3NCwzOTQzOTA2NDQxLDQxNzgwNjIyMjgsNDE0NDA0Nzc3NSwxMzA2OTY3MzY2LDExMzk3ODE3MDksMTM3NDk4ODExMiwxNjEwNDU5NzM5LDE5NzU2ODM0MzQsMjA3NjkzNTI2NSwxNzc1Mjc2OTI0LDE3NDIzMTUxMjcsMTAzNDg2Nzk5OCw4NjY2Mzc4NDUsNTY2MDIxODk2LDgwMDQ0MDgzNSw5Mjk4NzY5OCwxOTMxOTUwNjUsNDI5NDU2MTY0LDM5NTQ0MTcxMSwxOTg0ODEyNjg1LDIwMTc3Nzg1NjYsMTc4NDY2MzE5NSwxNjgzNDA3MjQ4LDEzMTU1NjIxNDUsMTA4MDA5NDYzNCwxMzgzODU2MzExLDE1NTEwMzc4ODQsMTAxMDM5ODI5LDEzNTA1MDIwNiw0Mzc3NTcxMjMsMzM3NTUzODY0LDEwNDIzODU2NTcsODA3OTYyNjEwLDU3MzgwNDc4Myw3NDIwMzkwMTIsMjUzMTA2NzQ1MywyNTY0MDMzMzM0LDIzMjg4Mjg5NzEsMjIyNzU3MzAyNCwyOTM1NTY2ODY1LDI3MDAwOTkzNTQsMzAwMTc1NTY1NSwzMTY4OTM3MjI4LDM4Njg1NTI4MDUsMzkwMjU2MzE4Miw0MjAzMTgxMTcxLDQxMDI5Nzc5MTIsMzczNjE2NDkzNywzNTAxNzQxODkwLDMyNjU0Nzg3NTEsMzQzMzcxMjk4MCwxMTA2MDQxNTkxLDEzNDA0NjMxMDAsMTU3Njk3NjYwOSwxNDA4NzQ5MDM0LDIwNDMyMTE0ODMsMjAwOTE5NTQ3MiwxNzA4ODQ4MzMzLDE4MDkwNTQxNTAsODMyODc3MjMxLDEwNjgzNTEzOTYsNzY2OTQ1NDY1LDU5OTc2MjM1NCwxNTk0MTc5ODcsMTI2NDU0NjY0LDM2MTkyOTg3Nyw0NjMxODAxOTAsMjcwOTI2MDg3MSwyOTQzNjgyMzgwLDMxNzgxMDY5NjEsMzAwOTg3OTM4NiwyNTcyNjk3MTk1LDI1Mzg2ODExODQsMjIzNjIyODczMywyMzM2NDM0NTUwLDM1MDk4NzExMzUsMzc0NTM0NTMwMCwzNDQxODUwMzc3LDMyNzQ2NjcyNjYsMzkxMDE2MTk3MSwzODc3MTk4NjQ4LDQxMTA1Njg0ODUsNDIxMTgxODc5OCwyNTk3ODA2NDc2LDI0OTc2MDQ3NDMsMjI2MTA4OTE3OCwyMjk1MTAxMDczLDI3MzM4NTYxNjAsMjkwMjA4Nzg1MSwzMjAyNDM3MDQ2LDI5NjgwMTE0NTMsMzkzNjI5MTI4NCwzODM1MDM2ODk1LDQxMzY0NDA3NzAsNDE2OTQwODIwMSwzNTM1NDg2NDU2LDM3MDI2NjU0NTksMzQ2NzE5MjMwMiwzMjMxNzIyMjEzLDIwNTE1MTg3ODAsMTk1MTMxNzA0NywxNzE2ODkwNDEwLDE3NTA5MDIzMDUsMTExMzgxODM4NCwxMjgyMDUwMDc1LDE1ODQ1MDQ1ODIsMTM1MDA3ODk4OSwxNjg4MTA4NTIsNjc1NTY0NjMsMzcxMDQ5MzMwLDQwNDAxNjc2MSw4NDE3Mzk1OTIsMTAwODkxODU5NSw3NzU1NTA4MTQsNTQwMDgwNzI1LDM5Njk1NjIzNjksMzgwMTMzMjIzNCw0MDM1NDg5MDQ3LDQyNjk5MDc5OTYsMzU2OTI1NTIxMywzNjY5NDYyNTY2LDMzNjY3NTQ2MTksMzMzMjc0MDE0NCwyNjMxMDY1NDMzLDI0NjM4Nzk3NjIsMjE2MDExNzA3MSwyMzk1NTg4Njc2LDI3Njc2NDU1NTcsMjg2ODg5NzQwNiwzMTAyMDExNzQ3LDMwNjkwNDk5NjAsMjAyMDA4NDk3LDMzNzc4MzYyLDI3MDA0MDQ4Nyw1MDQ0NTk0MzYsODc1NDUxMjkzLDk3NTY1ODY0Niw2NzUwMzk2MjcsNjQxMDI1MTUyLDIwODQ3MDQyMzMsMTkxNzUxODU2MiwxNjE1ODYxMjQ3LDE4NTEzMzI4NTIsMTE0NzU1MDY2MSwxMjQ4ODAyNTEwLDE0ODQwMDU4NDMsMTQ1MTA0NDA1Niw5MzMzMDEzNzAsOTY3MzExNzI5LDczMzE1Njk3Miw2MzI5NTM3MDMsMjYwMzg4OTUwLDI1OTY1OTE3LDMyODY3MTgwOCw0OTY5MDYwNTksMTIwNjQ3Nzg1OCwxMjM5NDQzNzUzLDE1NDMyMDg1MDAsMTQ0MTk1MjU3NSwyMTQ0MTYxODA2LDE5MDg2OTQyNzcsMTY3NTU3Nzg4MCwxODQyNzU5NDQzLDM2MTAzNjkyMjYsMzY0NDM3OTU4NSwzNDA4MTE5NTE2LDMzMDc5MTYyNDcsNDAxMTE5MDUwMiwzNzc2NzY3NDY5LDQwNzczODQ0MzIsNDI0NTYxODY4MywyODA5NzcxMTU0LDI4NDI3MzcwNDksMzE0NDM5NjQyMCwzMDQzMTQwNDk1LDI2NzM3MDUxNTAsMjQzODIzNzYyMSwyMjAzMDMyMjMyLDIzNzAyMTM3OTVdKTt0aGlzLl9taXhDb2w9bmV3IFVpbnQ4QXJyYXkoMjU2KTtmb3IobGV0IGU9MDtlPDI1NjtlKyspdGhpcy5fbWl4Q29sW2VdPWU8MTI4P2U8PDE6ZTw8MV4yNzt0aGlzLmJ1ZmZlcj1uZXcgVWludDhBcnJheSgxNik7dGhpcy5idWZmZXJQb3NpdGlvbj0wfV9leHBhbmRLZXkoZSl7dW5yZWFjaGFibGUoIkNhbm5vdCBjYWxsIGBfZXhwYW5kS2V5YCBvbiB0aGUgYmFzZSBjbGFzcyIpfV9kZWNyeXB0KGUsdCl7bGV0IGksYSxyO2NvbnN0IHM9bmV3IFVpbnQ4QXJyYXkoMTYpO3Muc2V0KGUpO2ZvcihsZXQgZT0wLGk9dGhpcy5fa2V5U2l6ZTtlPDE2OysrZSwrK2kpc1tlXV49dFtpXTtmb3IobGV0IGU9dGhpcy5fY3ljbGVzT2ZSZXBldGl0aW9uLTE7ZT49MTstLWUpe2k9c1sxM107c1sxM109c1s5XTtzWzldPXNbNV07c1s1XT1zWzFdO3NbMV09aTtpPXNbMTRdO2E9c1sxMF07c1sxNF09c1s2XTtzWzEwXT1zWzJdO3NbNl09aTtzWzJdPWE7aT1zWzE1XTthPXNbMTFdO3I9c1s3XTtzWzE1XT1zWzNdO3NbMTFdPWk7c1s3XT1hO3NbM109cjtmb3IobGV0IGU9MDtlPDE2OysrZSlzW2VdPXRoaXMuX2ludl9zW3NbZV1dO2ZvcihsZXQgaT0wLGE9MTYqZTtpPDE2OysraSwrK2Epc1tpXV49dFthXTtmb3IobGV0IGU9MDtlPDE2O2UrPTQpe2NvbnN0IHQ9dGhpcy5fbWl4W3NbZV1dLGE9dGhpcy5fbWl4W3NbZSsxXV0scj10aGlzLl9taXhbc1tlKzJdXSxuPXRoaXMuX21peFtzW2UrM11dO2k9dF5hPj4+OF5hPDwyNF5yPj4+MTZecjw8MTZebj4+PjI0Xm48PDg7c1tlXT1pPj4+MjQmMjU1O3NbZSsxXT1pPj4xNiYyNTU7c1tlKzJdPWk+PjgmMjU1O3NbZSszXT0yNTUmaX19aT1zWzEzXTtzWzEzXT1zWzldO3NbOV09c1s1XTtzWzVdPXNbMV07c1sxXT1pO2k9c1sxNF07YT1zWzEwXTtzWzE0XT1zWzZdO3NbMTBdPXNbMl07c1s2XT1pO3NbMl09YTtpPXNbMTVdO2E9c1sxMV07cj1zWzddO3NbMTVdPXNbM107c1sxMV09aTtzWzddPWE7c1szXT1yO2ZvcihsZXQgZT0wO2U8MTY7KytlKXtzW2VdPXRoaXMuX2ludl9zW3NbZV1dO3NbZV1ePXRbZV19cmV0dXJuIHN9X2VuY3J5cHQoZSx0KXtjb25zdCBpPXRoaXMuX3M7bGV0IGEscixzO2NvbnN0IG49bmV3IFVpbnQ4QXJyYXkoMTYpO24uc2V0KGUpO2ZvcihsZXQgZT0wO2U8MTY7KytlKW5bZV1ePXRbZV07Zm9yKGxldCBlPTE7ZTx0aGlzLl9jeWNsZXNPZlJlcGV0aXRpb247ZSsrKXtmb3IobGV0IGU9MDtlPDE2OysrZSluW2VdPWlbbltlXV07cz1uWzFdO25bMV09bls1XTtuWzVdPW5bOV07bls5XT1uWzEzXTtuWzEzXT1zO3M9blsyXTtyPW5bNl07blsyXT1uWzEwXTtuWzZdPW5bMTRdO25bMTBdPXM7blsxNF09cjtzPW5bM107cj1uWzddO2E9blsxMV07blszXT1uWzE1XTtuWzddPXM7blsxMV09cjtuWzE1XT1hO2ZvcihsZXQgZT0wO2U8MTY7ZSs9NCl7Y29uc3QgdD1uW2UrMF0saT1uW2UrMV0scj1uW2UrMl0scz1uW2UrM107YT10Xmlecl5zO25bZSswXV49YV50aGlzLl9taXhDb2xbdF5pXTtuW2UrMV1ePWFedGhpcy5fbWl4Q29sW2lecl07bltlKzJdXj1hXnRoaXMuX21peENvbFtyXnNdO25bZSszXV49YV50aGlzLl9taXhDb2xbc150XX1mb3IobGV0IGk9MCxhPTE2KmU7aTwxNjsrK2ksKythKW5baV1ePXRbYV19Zm9yKGxldCBlPTA7ZTwxNjsrK2UpbltlXT1pW25bZV1dO3M9blsxXTtuWzFdPW5bNV07bls1XT1uWzldO25bOV09blsxM107blsxM109cztzPW5bMl07cj1uWzZdO25bMl09blsxMF07bls2XT1uWzE0XTtuWzEwXT1zO25bMTRdPXI7cz1uWzNdO3I9bls3XTthPW5bMTFdO25bM109blsxNV07bls3XT1zO25bMTFdPXI7blsxNV09YTtmb3IobGV0IGU9MCxpPXRoaXMuX2tleVNpemU7ZTwxNjsrK2UsKytpKW5bZV1ePXRbaV07cmV0dXJuIG59X2RlY3J5cHRCbG9jazIoZSx0KXtjb25zdCBpPWUubGVuZ3RoO2xldCBhPXRoaXMuYnVmZmVyLHI9dGhpcy5idWZmZXJQb3NpdGlvbjtjb25zdCBzPVtdO2xldCBuPXRoaXMuaXY7Zm9yKGxldCB0PTA7dDxpOysrdCl7YVtyXT1lW3RdOysrcjtpZihyPDE2KWNvbnRpbnVlO2NvbnN0IGk9dGhpcy5fZGVjcnlwdChhLHRoaXMuX2tleSk7Zm9yKGxldCBlPTA7ZTwxNjsrK2UpaVtlXV49bltlXTtuPWE7cy5wdXNoKGkpO2E9bmV3IFVpbnQ4QXJyYXkoMTYpO3I9MH10aGlzLmJ1ZmZlcj1hO3RoaXMuYnVmZmVyTGVuZ3RoPXI7dGhpcy5pdj1uO2lmKDA9PT1zLmxlbmd0aClyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMCk7bGV0IG89MTYqcy5sZW5ndGg7aWYodCl7Y29uc3QgZT1zLmF0KC0xKTtsZXQgdD1lWzE1XTtpZih0PD0xNil7Zm9yKGxldCBpPTE1LGE9MTYtdDtpPj1hOy0taSlpZihlW2ldIT09dCl7dD0wO2JyZWFrfW8tPXQ7c1tzLmxlbmd0aC0xXT1lLnN1YmFycmF5KDAsMTYtdCl9fWNvbnN0IGc9bmV3IFVpbnQ4QXJyYXkobyk7Zm9yKGxldCBlPTAsdD0wLGk9cy5sZW5ndGg7ZTxpOysrZSx0Kz0xNilnLnNldChzW2VdLHQpO3JldHVybiBnfWRlY3J5cHRCbG9jayhlLHQsaT1udWxsKXtjb25zdCBhPWUubGVuZ3RoLHI9dGhpcy5idWZmZXI7bGV0IHM9dGhpcy5idWZmZXJQb3NpdGlvbjtpZihpKXRoaXMuaXY9aTtlbHNle2ZvcihsZXQgdD0wO3M8MTYmJnQ8YTsrK3QsKytzKXJbc109ZVt0XTtpZihzPDE2KXt0aGlzLmJ1ZmZlckxlbmd0aD1zO3JldHVybiBuZXcgVWludDhBcnJheSgwKX10aGlzLml2PXI7ZT1lLnN1YmFycmF5KDE2KX10aGlzLmJ1ZmZlcj1uZXcgVWludDhBcnJheSgxNik7dGhpcy5idWZmZXJMZW5ndGg9MDt0aGlzLmRlY3J5cHRCbG9jaz10aGlzLl9kZWNyeXB0QmxvY2syO3JldHVybiB0aGlzLmRlY3J5cHRCbG9jayhlLHQpfWVuY3J5cHQoZSx0KXtjb25zdCBpPWUubGVuZ3RoO2xldCBhPXRoaXMuYnVmZmVyLHI9dGhpcy5idWZmZXJQb3NpdGlvbjtjb25zdCBzPVtdO3R8fCh0PW5ldyBVaW50OEFycmF5KDE2KSk7Zm9yKGxldCBuPTA7bjxpOysrbil7YVtyXT1lW25dOysrcjtpZihyPDE2KWNvbnRpbnVlO2ZvcihsZXQgZT0wO2U8MTY7KytlKWFbZV1ePXRbZV07Y29uc3QgaT10aGlzLl9lbmNyeXB0KGEsdGhpcy5fa2V5KTt0PWk7cy5wdXNoKGkpO2E9bmV3IFVpbnQ4QXJyYXkoMTYpO3I9MH10aGlzLmJ1ZmZlcj1hO3RoaXMuYnVmZmVyTGVuZ3RoPXI7dGhpcy5pdj10O2lmKDA9PT1zLmxlbmd0aClyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMCk7Y29uc3Qgbj0xNipzLmxlbmd0aCxvPW5ldyBVaW50OEFycmF5KG4pO2ZvcihsZXQgZT0wLHQ9MCxpPXMubGVuZ3RoO2U8aTsrK2UsdCs9MTYpby5zZXQoc1tlXSx0KTtyZXR1cm4gb319Y2xhc3MgQUVTMTI4Q2lwaGVyIGV4dGVuZHMgQUVTQmFzZUNpcGhlcntjb25zdHJ1Y3RvcihlKXtzdXBlcigpO3RoaXMuX2N5Y2xlc09mUmVwZXRpdGlvbj0xMDt0aGlzLl9rZXlTaXplPTE2MDt0aGlzLl9yY29uPW5ldyBVaW50OEFycmF5KFsxNDEsMSwyLDQsOCwxNiwzMiw2NCwxMjgsMjcsNTQsMTA4LDIxNiwxNzEsNzcsMTU0LDQ3LDk0LDE4OCw5OSwxOTgsMTUxLDUzLDEwNiwyMTIsMTc5LDEyNSwyNTAsMjM5LDE5NywxNDUsNTcsMTE0LDIyOCwyMTEsMTg5LDk3LDE5NCwxNTksMzcsNzQsMTQ4LDUxLDEwMiwyMDQsMTMxLDI5LDU4LDExNiwyMzIsMjAzLDE0MSwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NCwxMDgsMjE2LDE3MSw3NywxNTQsNDcsOTQsMTg4LDk5LDE5OCwxNTEsNTMsMTA2LDIxMiwxNzksMTI1LDI1MCwyMzksMTk3LDE0NSw1NywxMTQsMjI4LDIxMSwxODksOTcsMTk0LDE1OSwzNyw3NCwxNDgsNTEsMTAyLDIwNCwxMzEsMjksNTgsMTE2LDIzMiwyMDMsMTQxLDEsMiw0LDgsMTYsMzIsNjQsMTI4LDI3LDU0LDEwOCwyMTYsMTcxLDc3LDE1NCw0Nyw5NCwxODgsOTksMTk4LDE1MSw1MywxMDYsMjEyLDE3OSwxMjUsMjUwLDIzOSwxOTcsMTQ1LDU3LDExNCwyMjgsMjExLDE4OSw5NywxOTQsMTU5LDM3LDc0LDE0OCw1MSwxMDIsMjA0LDEzMSwyOSw1OCwxMTYsMjMyLDIwMywxNDEsMSwyLDQsOCwxNiwzMiw2NCwxMjgsMjcsNTQsMTA4LDIxNiwxNzEsNzcsMTU0LDQ3LDk0LDE4OCw5OSwxOTgsMTUxLDUzLDEwNiwyMTIsMTc5LDEyNSwyNTAsMjM5LDE5NywxNDUsNTcsMTE0LDIyOCwyMTEsMTg5LDk3LDE5NCwxNTksMzcsNzQsMTQ4LDUxLDEwMiwyMDQsMTMxLDI5LDU4LDExNiwyMzIsMjAzLDE0MSwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NCwxMDgsMjE2LDE3MSw3NywxNTQsNDcsOTQsMTg4LDk5LDE5OCwxNTEsNTMsMTA2LDIxMiwxNzksMTI1LDI1MCwyMzksMTk3LDE0NSw1NywxMTQsMjI4LDIxMSwxODksOTcsMTk0LDE1OSwzNyw3NCwxNDgsNTEsMTAyLDIwNCwxMzEsMjksNTgsMTE2LDIzMiwyMDMsMTQxXSk7dGhpcy5fa2V5PXRoaXMuX2V4cGFuZEtleShlKX1fZXhwYW5kS2V5KGUpe2NvbnN0IHQ9dGhpcy5fcyxpPXRoaXMuX3Jjb24sYT1uZXcgVWludDhBcnJheSgxNzYpO2Euc2V0KGUpO2ZvcihsZXQgZT0xNixyPTE7ZTwxNzY7KytyKXtsZXQgcz1hW2UtM10sbj1hW2UtMl0sbz1hW2UtMV0sZz1hW2UtNF07cz10W3NdO249dFtuXTtvPXRbb107Zz10W2ddO3NePWlbcl07Zm9yKGxldCB0PTA7dDw0OysrdCl7YVtlXT1zXj1hW2UtMTZdO2UrKzthW2VdPW5ePWFbZS0xNl07ZSsrO2FbZV09b149YVtlLTE2XTtlKys7YVtlXT1nXj1hW2UtMTZdO2UrK319cmV0dXJuIGF9fWNsYXNzIEFFUzI1NkNpcGhlciBleHRlbmRzIEFFU0Jhc2VDaXBoZXJ7Y29uc3RydWN0b3IoZSl7c3VwZXIoKTt0aGlzLl9jeWNsZXNPZlJlcGV0aXRpb249MTQ7dGhpcy5fa2V5U2l6ZT0yMjQ7dGhpcy5fa2V5PXRoaXMuX2V4cGFuZEtleShlKX1fZXhwYW5kS2V5KGUpe2NvbnN0IHQ9dGhpcy5fcyxpPW5ldyBVaW50OEFycmF5KDI0MCk7aS5zZXQoZSk7bGV0IGEscixzLG4sbz0xO2ZvcihsZXQgZT0zMixnPTE7ZTwyNDA7KytnKXtpZihlJTMyPT0xNil7YT10W2FdO3I9dFtyXTtzPXRbc107bj10W25dfWVsc2UgaWYoZSUzMj09MCl7YT1pW2UtM107cj1pW2UtMl07cz1pW2UtMV07bj1pW2UtNF07YT10W2FdO3I9dFtyXTtzPXRbc107bj10W25dO2FePW87KG88PD0xKT49MjU2JiYobz0yNTUmKDI3Xm8pKX1mb3IobGV0IHQ9MDt0PDQ7Kyt0KXtpW2VdPWFePWlbZS0zMl07ZSsrO2lbZV09cl49aVtlLTMyXTtlKys7aVtlXT1zXj1pW2UtMzJdO2UrKztpW2VdPW5ePWlbZS0zMl07ZSsrfX1yZXR1cm4gaX19Y2xhc3MgUERGMTd7Y2hlY2tPd25lclBhc3N3b3JkKGUsdCxpLGEpe2NvbnN0IHI9bmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgrNTYpO3Iuc2V0KGUsMCk7ci5zZXQodCxlLmxlbmd0aCk7ci5zZXQoaSxlLmxlbmd0aCt0Lmxlbmd0aCk7cmV0dXJuIGlzQXJyYXlFcXVhbCh0byhyLDAsci5sZW5ndGgpLGEpfWNoZWNrVXNlclBhc3N3b3JkKGUsdCxpKXtjb25zdCBhPW5ldyBVaW50OEFycmF5KGUubGVuZ3RoKzgpO2Euc2V0KGUsMCk7YS5zZXQodCxlLmxlbmd0aCk7cmV0dXJuIGlzQXJyYXlFcXVhbCh0byhhLDAsYS5sZW5ndGgpLGkpfWdldE93bmVyS2V5KGUsdCxpLGEpe2NvbnN0IHI9bmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgrNTYpO3Iuc2V0KGUsMCk7ci5zZXQodCxlLmxlbmd0aCk7ci5zZXQoaSxlLmxlbmd0aCt0Lmxlbmd0aCk7Y29uc3Qgcz10byhyLDAsci5sZW5ndGgpO3JldHVybiBuZXcgQUVTMjU2Q2lwaGVyKHMpLmRlY3J5cHRCbG9jayhhLCExLG5ldyBVaW50OEFycmF5KDE2KSl9Z2V0VXNlcktleShlLHQsaSl7Y29uc3QgYT1uZXcgVWludDhBcnJheShlLmxlbmd0aCs4KTthLnNldChlLDApO2Euc2V0KHQsZS5sZW5ndGgpO2NvbnN0IHI9dG8oYSwwLGEubGVuZ3RoKTtyZXR1cm4gbmV3IEFFUzI1NkNpcGhlcihyKS5kZWNyeXB0QmxvY2soaSwhMSxuZXcgVWludDhBcnJheSgxNikpfX1jbGFzcyBQREYyMHtfaGFzaChlLHQsaSl7bGV0IGE9dG8odCwwLHQubGVuZ3RoKS5zdWJhcnJheSgwLDMyKSxyPVswXSxzPTA7Zm9yKDtzPDY0fHxyLmF0KC0xKT5zLTMyOyl7Y29uc3QgdD1lLmxlbmd0aCthLmxlbmd0aCtpLmxlbmd0aCxjPW5ldyBVaW50OEFycmF5KHQpO2xldCBsPTA7Yy5zZXQoZSxsKTtsKz1lLmxlbmd0aDtjLnNldChhLGwpO2wrPWEubGVuZ3RoO2Muc2V0KGksbCk7Y29uc3QgaD1uZXcgVWludDhBcnJheSg2NCp0KTtmb3IobGV0IGU9MCxpPTA7ZTw2NDtlKyssaSs9dCloLnNldChjLGkpO3I9bmV3IEFFUzEyOENpcGhlcihhLnN1YmFycmF5KDAsMTYpKS5lbmNyeXB0KGgsYS5zdWJhcnJheSgxNiwzMikpO2NvbnN0IEM9ci5zbGljZSgwLDE2KS5yZWR1Y2UoKChlLHQpPT5lK3QpLDApJTM7MD09PUM/YT10byhyLDAsci5sZW5ndGgpOjE9PT1DP2E9KG49cixvPTAsZz1yLmxlbmd0aCxpbyhuLG8sZywhMCkpOjI9PT1DJiYoYT1pbyhyLDAsci5sZW5ndGgpKTtzKyt9dmFyIG4sbyxnO3JldHVybiBhLnN1YmFycmF5KDAsMzIpfWNoZWNrT3duZXJQYXNzd29yZChlLHQsaSxhKXtjb25zdCByPW5ldyBVaW50OEFycmF5KGUubGVuZ3RoKzU2KTtyLnNldChlLDApO3Iuc2V0KHQsZS5sZW5ndGgpO3Iuc2V0KGksZS5sZW5ndGgrdC5sZW5ndGgpO3JldHVybiBpc0FycmF5RXF1YWwodGhpcy5faGFzaChlLHIsaSksYSl9Y2hlY2tVc2VyUGFzc3dvcmQoZSx0LGkpe2NvbnN0IGE9bmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgrOCk7YS5zZXQoZSwwKTthLnNldCh0LGUubGVuZ3RoKTtyZXR1cm4gaXNBcnJheUVxdWFsKHRoaXMuX2hhc2goZSxhLFtdKSxpKX1nZXRPd25lcktleShlLHQsaSxhKXtjb25zdCByPW5ldyBVaW50OEFycmF5KGUubGVuZ3RoKzU2KTtyLnNldChlLDApO3Iuc2V0KHQsZS5sZW5ndGgpO3Iuc2V0KGksZS5sZW5ndGgrdC5sZW5ndGgpO2NvbnN0IHM9dGhpcy5faGFzaChlLHIsaSk7cmV0dXJuIG5ldyBBRVMyNTZDaXBoZXIocykuZGVjcnlwdEJsb2NrKGEsITEsbmV3IFVpbnQ4QXJyYXkoMTYpKX1nZXRVc2VyS2V5KGUsdCxpKXtjb25zdCBhPW5ldyBVaW50OEFycmF5KGUubGVuZ3RoKzgpO2Euc2V0KGUsMCk7YS5zZXQodCxlLmxlbmd0aCk7Y29uc3Qgcj10aGlzLl9oYXNoKGUsYSxbXSk7cmV0dXJuIG5ldyBBRVMyNTZDaXBoZXIocikuZGVjcnlwdEJsb2NrKGksITEsbmV3IFVpbnQ4QXJyYXkoMTYpKX19Y2xhc3MgQ2lwaGVyVHJhbnNmb3Jte2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5TdHJpbmdDaXBoZXJDb25zdHJ1Y3Rvcj1lO3RoaXMuU3RyZWFtQ2lwaGVyQ29uc3RydWN0b3I9dH1jcmVhdGVTdHJlYW0oZSx0KXtjb25zdCBpPW5ldyB0aGlzLlN0cmVhbUNpcGhlckNvbnN0cnVjdG9yO3JldHVybiBuZXcgRGVjcnlwdFN0cmVhbShlLHQsKGZ1bmN0aW9uIGNpcGhlclRyYW5zZm9ybURlY3J5cHRTdHJlYW0oZSx0KXtyZXR1cm4gaS5kZWNyeXB0QmxvY2soZSx0KX0pKX1kZWNyeXB0U3RyaW5nKGUpe2NvbnN0IHQ9bmV3IHRoaXMuU3RyaW5nQ2lwaGVyQ29uc3RydWN0b3I7bGV0IGk9c3RyaW5nVG9CeXRlcyhlKTtpPXQuZGVjcnlwdEJsb2NrKGksITApO3JldHVybiBieXRlc1RvU3RyaW5nKGkpfWVuY3J5cHRTdHJpbmcoZSl7Y29uc3QgdD1uZXcgdGhpcy5TdHJpbmdDaXBoZXJDb25zdHJ1Y3RvcjtpZih0IGluc3RhbmNlb2YgQUVTQmFzZUNpcGhlcil7Y29uc3QgaT0xNi1lLmxlbmd0aCUxNjtlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGkpLnJlcGVhdChpKTtjb25zdCBhPW5ldyBVaW50OEFycmF5KDE2KTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGNyeXB0byljcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGEpO2Vsc2UgZm9yKGxldCBlPTA7ZTwxNjtlKyspYVtlXT1NYXRoLmZsb29yKDI1NipNYXRoLnJhbmRvbSgpKTtsZXQgcj1zdHJpbmdUb0J5dGVzKGUpO3I9dC5lbmNyeXB0KHIsYSk7Y29uc3Qgcz1uZXcgVWludDhBcnJheSgxNityLmxlbmd0aCk7cy5zZXQoYSk7cy5zZXQociwxNik7cmV0dXJuIGJ5dGVzVG9TdHJpbmcocyl9bGV0IGk9c3RyaW5nVG9CeXRlcyhlKTtpPXQuZW5jcnlwdChpKTtyZXR1cm4gYnl0ZXNUb1N0cmluZyhpKX19Y2xhc3MgQ2lwaGVyVHJhbnNmb3JtRmFjdG9yeXtzdGF0aWMjcT1uZXcgVWludDhBcnJheShbNDAsMTkxLDc4LDk0LDc4LDExNywxMzgsNjUsMTAwLDAsNzgsODYsMjU1LDI1MCwxLDgsNDYsNDYsMCwxODIsMjA4LDEwNCw2MiwxMjgsNDcsMTIsMTY5LDI1NCwxMDAsODMsMTA1LDEyMl0pOyNPKGUsdCxpLGEscixzLG4sbyxnLGMsbCxoKXtpZih0KXtjb25zdCBlPU1hdGgubWluKDEyNyx0Lmxlbmd0aCk7dD10LnN1YmFycmF5KDAsZSl9ZWxzZSB0PVtdO2NvbnN0IEM9Nj09PWU/bmV3IFBERjIwOm5ldyBQREYxNztyZXR1cm4gQy5jaGVja1VzZXJQYXNzd29yZCh0LG8sbik/Qy5nZXRVc2VyS2V5KHQsZyxsKTp0Lmxlbmd0aCYmQy5jaGVja093bmVyUGFzc3dvcmQodCxhLHMsaSk/Qy5nZXRPd25lcktleSh0LHIscyxjKTpudWxsfSNQKGUsdCxpLGEscixzLG4sbyl7Y29uc3QgZz00MCtpLmxlbmd0aCtlLmxlbmd0aCxjPW5ldyBVaW50OEFycmF5KGcpO2xldCBsLGgsQz0wO2lmKHQpe2g9TWF0aC5taW4oMzIsdC5sZW5ndGgpO2Zvcig7QzxoOysrQyljW0NdPXRbQ119bD0wO2Zvcig7QzwzMjspY1tDKytdPUNpcGhlclRyYW5zZm9ybUZhY3RvcnkuI3FbbCsrXTtmb3IobD0wLGg9aS5sZW5ndGg7bDxoOysrbCljW0MrK109aVtsXTtjW0MrK109MjU1JnI7Y1tDKytdPXI+PjgmMjU1O2NbQysrXT1yPj4xNiYyNTU7Y1tDKytdPXI+Pj4yNCYyNTU7Zm9yKGw9MCxoPWUubGVuZ3RoO2w8aDsrK2wpY1tDKytdPWVbbF07aWYocz49NCYmIW8pe2NbQysrXT0yNTU7Y1tDKytdPTI1NTtjW0MrK109MjU1O2NbQysrXT0yNTV9bGV0IFE9ZW8oYywwLEMpO2NvbnN0IEU9bj4+MztpZihzPj0zKWZvcihsPTA7bDw1MDsrK2wpUT1lbyhRLDAsRSk7Y29uc3QgdT1RLnN1YmFycmF5KDAsRSk7bGV0IGQsZjtpZihzPj0zKXtmb3IoQz0wO0M8MzI7KytDKWNbQ109Q2lwaGVyVHJhbnNmb3JtRmFjdG9yeS4jcVtDXTtmb3IobD0wLGg9ZS5sZW5ndGg7bDxoOysrbCljW0MrK109ZVtsXTtkPW5ldyBBUkNGb3VyQ2lwaGVyKHUpO2Y9ZC5lbmNyeXB0QmxvY2soZW8oYywwLEMpKTtoPXUubGVuZ3RoO2NvbnN0IHQ9bmV3IFVpbnQ4QXJyYXkoaCk7Zm9yKGw9MTtsPD0xOTsrK2wpe2ZvcihsZXQgZT0wO2U8aDsrK2UpdFtlXT11W2VdXmw7ZD1uZXcgQVJDRm91ckNpcGhlcih0KTtmPWQuZW5jcnlwdEJsb2NrKGYpfWZvcihsPTAsaD1mLmxlbmd0aDtsPGg7KytsKWlmKGFbbF0hPT1mW2xdKXJldHVybiBudWxsfWVsc2V7ZD1uZXcgQVJDRm91ckNpcGhlcih1KTtmPWQuZW5jcnlwdEJsb2NrKENpcGhlclRyYW5zZm9ybUZhY3RvcnkuI3EpO2ZvcihsPTAsaD1mLmxlbmd0aDtsPGg7KytsKWlmKGFbbF0hPT1mW2xdKXJldHVybiBudWxsfXJldHVybiB1fSNXKGUsdCxpLGEpe2NvbnN0IHI9bmV3IFVpbnQ4QXJyYXkoMzIpO2xldCBzPTA7Y29uc3Qgbj1NYXRoLm1pbigzMixlLmxlbmd0aCk7Zm9yKDtzPG47KytzKXJbc109ZVtzXTtsZXQgbz0wO2Zvcig7czwzMjspcltzKytdPUNpcGhlclRyYW5zZm9ybUZhY3RvcnkuI3FbbysrXTtsZXQgZz1lbyhyLDAscyk7Y29uc3QgYz1hPj4zO2lmKGk+PTMpZm9yKG89MDtvPDUwOysrbylnPWVvKGcsMCxnLmxlbmd0aCk7bGV0IGwsaDtpZihpPj0zKXtoPXQ7Y29uc3QgZT1uZXcgVWludDhBcnJheShjKTtmb3Iobz0xOTtvPj0wO28tLSl7Zm9yKGxldCB0PTA7dDxjOysrdCllW3RdPWdbdF1ebztsPW5ldyBBUkNGb3VyQ2lwaGVyKGUpO2g9bC5lbmNyeXB0QmxvY2soaCl9fWVsc2V7bD1uZXcgQVJDRm91ckNpcGhlcihnLnN1YmFycmF5KDAsYykpO2g9bC5lbmNyeXB0QmxvY2sodCl9cmV0dXJuIGh9I2ooZSx0LGksYT0hMSl7Y29uc3Qgcj1uZXcgVWludDhBcnJheShpLmxlbmd0aCs5KSxzPWkubGVuZ3RoO2xldCBuO2ZvcihuPTA7bjxzOysrbilyW25dPWlbbl07cltuKytdPTI1NSZlO3JbbisrXT1lPj44JjI1NTtyW24rK109ZT4+MTYmMjU1O3JbbisrXT0yNTUmdDtyW24rK109dD4+OCYyNTU7aWYoYSl7cltuKytdPTExNTtyW24rK109NjU7cltuKytdPTEwODtyW24rK109ODR9cmV0dXJuIGVvKHIsMCxuKS5zdWJhcnJheSgwLE1hdGgubWluKGkubGVuZ3RoKzUsMTYpKX0jWChlLHQsaSxhLHIpe2lmKCEodCBpbnN0YW5jZW9mIE5hbWUpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiSW52YWxpZCBjcnlwdCBmaWx0ZXIgbmFtZS4iKTtjb25zdCBzPXRoaXMsbj1lLmdldCh0Lm5hbWUpLG89bj8uZ2V0KCJDRk0iKTtpZighb3x8Ik5vbmUiPT09by5uYW1lKXJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgTnVsbENpcGhlcn07aWYoIlYyIj09PW8ubmFtZSlyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEFSQ0ZvdXJDaXBoZXIocy4jaihpLGEsciwhMSkpfTtpZigiQUVTVjIiPT09by5uYW1lKXJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgQUVTMTI4Q2lwaGVyKHMuI2ooaSxhLHIsITApKX07aWYoIkFFU1YzIj09PW8ubmFtZSlyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEFFUzI1NkNpcGhlcihyKX07dGhyb3cgbmV3IEZvcm1hdEVycm9yKCJVbmtub3duIGNyeXB0byBtZXRob2QiKX1jb25zdHJ1Y3RvcihlLHQsaSl7Y29uc3QgYT1lLmdldCgiRmlsdGVyIik7aWYoIWlzTmFtZShhLCJTdGFuZGFyZCIpKXRocm93IG5ldyBGb3JtYXRFcnJvcigidW5rbm93biBlbmNyeXB0aW9uIG1ldGhvZCIpO3RoaXMuZmlsdGVyTmFtZT1hLm5hbWU7dGhpcy5kaWN0PWU7Y29uc3Qgcj1lLmdldCgiViIpO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKHIpfHwxIT09ciYmMiE9PXImJjQhPT1yJiY1IT09cil0aHJvdyBuZXcgRm9ybWF0RXJyb3IoInVuc3VwcG9ydGVkIGVuY3J5cHRpb24gYWxnb3JpdGhtIik7dGhpcy5hbGdvcml0aG09cjtsZXQgcz1lLmdldCgiTGVuZ3RoIik7aWYoIXMpaWYocjw9MylzPTQwO2Vsc2V7Y29uc3QgdD1lLmdldCgiQ0YiKSxpPWUuZ2V0KCJTdG1GIik7aWYodCBpbnN0YW5jZW9mIERpY3QmJmkgaW5zdGFuY2VvZiBOYW1lKXt0LnN1cHByZXNzRW5jcnlwdGlvbj0hMDtjb25zdCBlPXQuZ2V0KGkubmFtZSk7cz1lPy5nZXQoIkxlbmd0aCIpfHwxMjg7czw0MCYmKHM8PD0zKX19aWYoIU51bWJlci5pc0ludGVnZXIocyl8fHM8NDB8fHMlOCE9MCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoImludmFsaWQga2V5IGxlbmd0aCIpO2NvbnN0IG49c3RyaW5nVG9CeXRlcyhlLmdldCgiTyIpKSxvPXN0cmluZ1RvQnl0ZXMoZS5nZXQoIlUiKSksZz1uLnN1YmFycmF5KDAsMzIpLGM9by5zdWJhcnJheSgwLDMyKSxsPWUuZ2V0KCJQIiksaD1lLmdldCgiUiIpLEM9KDQ9PT1yfHw1PT09cikmJiExIT09ZS5nZXQoIkVuY3J5cHRNZXRhZGF0YSIpO3RoaXMuZW5jcnlwdE1ldGFkYXRhPUM7Y29uc3QgUT1zdHJpbmdUb0J5dGVzKHQpO2xldCBFLHU7aWYoaSl7aWYoNj09PWgpdHJ5e2k9dXRmOFN0cmluZ1RvU3RyaW5nKGkpfWNhdGNoe3dhcm4oIkNpcGhlclRyYW5zZm9ybUZhY3Rvcnk6IFVuYWJsZSB0byBjb252ZXJ0IFVURjggZW5jb2RlZCBwYXNzd29yZC4iKX1FPXN0cmluZ1RvQnl0ZXMoaSl9aWYoNSE9PXIpdT10aGlzLiNQKFEsRSxnLGMsbCxoLHMsQyk7ZWxzZXtjb25zdCB0PW4uc3ViYXJyYXkoMzIsNDApLGk9bi5zdWJhcnJheSg0MCw0OCksYT1vLnN1YmFycmF5KDAsNDgpLHI9by5zdWJhcnJheSgzMiw0MCkscz1vLnN1YmFycmF5KDQwLDQ4KSxsPXN0cmluZ1RvQnl0ZXMoZS5nZXQoIk9FIikpLEM9c3RyaW5nVG9CeXRlcyhlLmdldCgiVUUiKSksUT1zdHJpbmdUb0J5dGVzKGUuZ2V0KCJQZXJtcyIpKTt1PXRoaXMuI08oaCxFLGcsdCxpLGEsYyxyLHMsbCxDLFEpfWlmKCF1JiYhaSl0aHJvdyBuZXcgUGFzc3dvcmRFeGNlcHRpb24oIk5vIHBhc3N3b3JkIGdpdmVuIixvdCk7aWYoIXUmJmkpe2NvbnN0IGU9dGhpcy4jVyhFLGcsaCxzKTt1PXRoaXMuI1AoUSxlLGcsYyxsLGgscyxDKX1pZighdSl0aHJvdyBuZXcgUGFzc3dvcmRFeGNlcHRpb24oIkluY29ycmVjdCBQYXNzd29yZCIsZ3QpO3RoaXMuZW5jcnlwdGlvbktleT11O2lmKHI+PTQpe2NvbnN0IHQ9ZS5nZXQoIkNGIik7dCBpbnN0YW5jZW9mIERpY3QmJih0LnN1cHByZXNzRW5jcnlwdGlvbj0hMCk7dGhpcy5jZj10O3RoaXMuc3RtZj1lLmdldCgiU3RtRiIpfHxOYW1lLmdldCgiSWRlbnRpdHkiKTt0aGlzLnN0cmY9ZS5nZXQoIlN0ckYiKXx8TmFtZS5nZXQoIklkZW50aXR5Iik7dGhpcy5lZmY9ZS5nZXQoIkVGRiIpfHx0aGlzLnN0bWZ9fWNyZWF0ZUNpcGhlclRyYW5zZm9ybShlLHQpe2lmKDQ9PT10aGlzLmFsZ29yaXRobXx8NT09PXRoaXMuYWxnb3JpdGhtKXJldHVybiBuZXcgQ2lwaGVyVHJhbnNmb3JtKHRoaXMuI1godGhpcy5jZix0aGlzLnN0cmYsZSx0LHRoaXMuZW5jcnlwdGlvbktleSksdGhpcy4jWCh0aGlzLmNmLHRoaXMuc3RtZixlLHQsdGhpcy5lbmNyeXB0aW9uS2V5KSk7Y29uc3QgaT10aGlzLiNqKGUsdCx0aGlzLmVuY3J5cHRpb25LZXksITEpLGNpcGhlckNvbnN0cnVjdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBBUkNGb3VyQ2lwaGVyKGkpfTtyZXR1cm4gbmV3IENpcGhlclRyYW5zZm9ybShjaXBoZXJDb25zdHJ1Y3RvcixjaXBoZXJDb25zdHJ1Y3Rvcil9fWZ1bmN0aW9uIGRlY29kZVN0cmluZyhlKXt0cnl7cmV0dXJuIHN0cmluZ1RvVVRGOFN0cmluZyhlKX1jYXRjaCh0KXt3YXJuKGBVVEYtOCBkZWNvZGluZyBmYWlsZWQ6ICIke3R9Ii5gKTtyZXR1cm4gZX19Y2xhc3MgRGF0YXNldFhNTFBhcnNlciBleHRlbmRzIFNpbXBsZVhNTFBhcnNlcntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTt0aGlzLm5vZGU9bnVsbH1vbkVuZEVsZW1lbnQoZSl7Y29uc3QgdD1zdXBlci5vbkVuZEVsZW1lbnQoZSk7aWYodCYmInhmYTpkYXRhc2V0cyI9PT1lKXt0aGlzLm5vZGU9dDt0aHJvdyBuZXcgRXJyb3IoIkFib3J0aW5nIERhdGFzZXRYTUxQYXJzZXIuIil9fX1jbGFzcyBEYXRhc2V0UmVhZGVye2NvbnN0cnVjdG9yKGUpe2lmKGUuZGF0YXNldHMpdGhpcy5ub2RlPW5ldyBTaW1wbGVYTUxQYXJzZXIoe2hhc0F0dHJpYnV0ZXM6ITB9KS5wYXJzZUZyb21TdHJpbmcoZS5kYXRhc2V0cykuZG9jdW1lbnRFbGVtZW50O2Vsc2V7Y29uc3QgdD1uZXcgRGF0YXNldFhNTFBhcnNlcih7aGFzQXR0cmlidXRlczohMH0pO3RyeXt0LnBhcnNlRnJvbVN0cmluZyhlWyJ4ZHA6eGRwIl0pfWNhdGNoe310aGlzLm5vZGU9dC5ub2RlfX1nZXRWYWx1ZShlKXtpZighdGhpcy5ub2RlfHwhZSlyZXR1cm4iIjtjb25zdCB0PXRoaXMubm9kZS5zZWFyY2hOb2RlKHBhcnNlWEZBUGF0aChlKSwwKTtpZighdClyZXR1cm4iIjtjb25zdCBpPXQuZmlyc3RDaGlsZDtyZXR1cm4idmFsdWUiPT09aT8ubm9kZU5hbWU/dC5jaGlsZHJlbi5tYXAoKGU9PmRlY29kZVN0cmluZyhlLnRleHRDb250ZW50KSkpOmRlY29kZVN0cmluZyh0LnRleHRDb250ZW50KX19Y2xhc3MgWFJlZnsjVj1udWxsO2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5zdHJlYW09ZTt0aGlzLnBkZk1hbmFnZXI9dDt0aGlzLmVudHJpZXM9W107dGhpcy5feHJlZlN0bXM9bmV3IFNldDt0aGlzLl9jYWNoZU1hcD1uZXcgTWFwO3RoaXMuX3BlbmRpbmdSZWZzPW5ldyBSZWZTZXQ7dGhpcy5fbmV3UGVyc2lzdGVudFJlZk51bT1udWxsO3RoaXMuX25ld1RlbXBvcmFyeVJlZk51bT1udWxsO3RoaXMuX3BlcnNpc3RlbnRSZWZzQ2FjaGU9bnVsbH1nZXROZXdQZXJzaXN0ZW50UmVmKGUpe251bGw9PT10aGlzLl9uZXdQZXJzaXN0ZW50UmVmTnVtJiYodGhpcy5fbmV3UGVyc2lzdGVudFJlZk51bT10aGlzLmVudHJpZXMubGVuZ3RofHwxKTtjb25zdCB0PXRoaXMuX25ld1BlcnNpc3RlbnRSZWZOdW0rKzt0aGlzLl9jYWNoZU1hcC5zZXQodCxlKTtyZXR1cm4gUmVmLmdldCh0LDApfWdldE5ld1RlbXBvcmFyeVJlZigpe2lmKG51bGw9PT10aGlzLl9uZXdUZW1wb3JhcnlSZWZOdW0pe3RoaXMuX25ld1RlbXBvcmFyeVJlZk51bT10aGlzLmVudHJpZXMubGVuZ3RofHwxO2lmKHRoaXMuX25ld1BlcnNpc3RlbnRSZWZOdW0pe3RoaXMuX3BlcnNpc3RlbnRSZWZzQ2FjaGU9bmV3IE1hcDtmb3IobGV0IGU9dGhpcy5fbmV3VGVtcG9yYXJ5UmVmTnVtO2U8dGhpcy5fbmV3UGVyc2lzdGVudFJlZk51bTtlKyspe3RoaXMuX3BlcnNpc3RlbnRSZWZzQ2FjaGUuc2V0KGUsdGhpcy5fY2FjaGVNYXAuZ2V0KGUpKTt0aGlzLl9jYWNoZU1hcC5kZWxldGUoZSl9fX1yZXR1cm4gUmVmLmdldCh0aGlzLl9uZXdUZW1wb3JhcnlSZWZOdW0rKywwKX1yZXNldE5ld1RlbXBvcmFyeVJlZigpe3RoaXMuX25ld1RlbXBvcmFyeVJlZk51bT1udWxsO2lmKHRoaXMuX3BlcnNpc3RlbnRSZWZzQ2FjaGUpZm9yKGNvbnN0W2UsdF1vZiB0aGlzLl9wZXJzaXN0ZW50UmVmc0NhY2hlKXRoaXMuX2NhY2hlTWFwLnNldChlLHQpO3RoaXMuX3BlcnNpc3RlbnRSZWZzQ2FjaGU9bnVsbH1zZXRTdGFydFhSZWYoZSl7dGhpcy5zdGFydFhSZWZRdWV1ZT1bZV19cGFyc2UoZT0hMSl7bGV0IHQsaSxhO2lmKGUpe3dhcm4oIkluZGV4aW5nIGFsbCBQREYgb2JqZWN0cyIpO3Q9dGhpcy5pbmRleE9iamVjdHMoKX1lbHNlIHQ9dGhpcy5yZWFkWFJlZigpO3QuYXNzaWduWHJlZih0aGlzKTt0aGlzLnRyYWlsZXI9dDt0cnl7aT10LmdldCgiRW5jcnlwdCIpfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbil0aHJvdyBlO3dhcm4oYFhSZWYucGFyc2UgLSBJbnZhbGlkICJFbmNyeXB0IiByZWZlcmVuY2U6ICIke2V9Ii5gKX1pZihpIGluc3RhbmNlb2YgRGljdCl7Y29uc3QgZT10LmdldCgiSUQiKSxhPWU/Lmxlbmd0aD9lWzBdOiIiO2kuc3VwcHJlc3NFbmNyeXB0aW9uPSEwO3RoaXMuZW5jcnlwdD1uZXcgQ2lwaGVyVHJhbnNmb3JtRmFjdG9yeShpLGEsdGhpcy5wZGZNYW5hZ2VyLnBhc3N3b3JkKX10cnl7YT10LmdldCgiUm9vdCIpfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbil0aHJvdyBlO3dhcm4oYFhSZWYucGFyc2UgLSBJbnZhbGlkICJSb290IiByZWZlcmVuY2U6ICIke2V9Ii5gKX1pZihhIGluc3RhbmNlb2YgRGljdCl0cnl7aWYoYS5nZXQoIlBhZ2VzIilpbnN0YW5jZW9mIERpY3Qpe3RoaXMucm9vdD1hO3JldHVybn19Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIE1pc3NpbmdEYXRhRXhjZXB0aW9uKXRocm93IGU7d2FybihgWFJlZi5wYXJzZSAtIEludmFsaWQgIlBhZ2VzIiByZWZlcmVuY2U6ICIke2V9Ii5gKX1pZighZSl0aHJvdyBuZXcgWFJlZlBhcnNlRXhjZXB0aW9uO3Rocm93IG5ldyBJbnZhbGlkUERGRXhjZXB0aW9uKCJJbnZhbGlkIFJvb3QgcmVmZXJlbmNlLiIpfXByb2Nlc3NYUmVmVGFibGUoZSl7InRhYmxlU3RhdGUiaW4gdGhpc3x8KHRoaXMudGFibGVTdGF0ZT17ZW50cnlOdW06MCxzdHJlYW1Qb3M6ZS5sZXhlci5zdHJlYW0ucG9zLHBhcnNlckJ1ZjE6ZS5idWYxLHBhcnNlckJ1ZjI6ZS5idWYyfSk7aWYoIWlzQ21kKHRoaXMucmVhZFhSZWZUYWJsZShlKSwidHJhaWxlciIpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiSW52YWxpZCBYUmVmIHRhYmxlOiBjb3VsZCBub3QgZmluZCB0cmFpbGVyIGRpY3Rpb25hcnkiKTtsZXQgdD1lLmdldE9iaigpO3QgaW5zdGFuY2VvZiBEaWN0fHwhdC5kaWN0fHwodD10LmRpY3QpO2lmKCEodCBpbnN0YW5jZW9mIERpY3QpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiSW52YWxpZCBYUmVmIHRhYmxlOiBjb3VsZCBub3QgcGFyc2UgdHJhaWxlciBkaWN0aW9uYXJ5Iik7ZGVsZXRlIHRoaXMudGFibGVTdGF0ZTtyZXR1cm4gdH1yZWFkWFJlZlRhYmxlKGUpe2NvbnN0IHQ9ZS5sZXhlci5zdHJlYW0saT10aGlzLnRhYmxlU3RhdGU7dC5wb3M9aS5zdHJlYW1Qb3M7ZS5idWYxPWkucGFyc2VyQnVmMTtlLmJ1ZjI9aS5wYXJzZXJCdWYyO2xldCBhO2Zvcig7Oyl7aWYoISgiZmlyc3RFbnRyeU51bSJpbiBpKXx8ISgiZW50cnlDb3VudCJpbiBpKSl7aWYoaXNDbWQoYT1lLmdldE9iaigpLCJ0cmFpbGVyIikpYnJlYWs7aS5maXJzdEVudHJ5TnVtPWE7aS5lbnRyeUNvdW50PWUuZ2V0T2JqKCl9bGV0IHI9aS5maXJzdEVudHJ5TnVtO2NvbnN0IHM9aS5lbnRyeUNvdW50O2lmKCFOdW1iZXIuaXNJbnRlZ2VyKHIpfHwhTnVtYmVyLmlzSW50ZWdlcihzKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgWFJlZiB0YWJsZTogd3JvbmcgdHlwZXMgaW4gc3Vic2VjdGlvbiBoZWFkZXIiKTtmb3IobGV0IGE9aS5lbnRyeU51bTthPHM7YSsrKXtpLnN0cmVhbVBvcz10LnBvcztpLmVudHJ5TnVtPWE7aS5wYXJzZXJCdWYxPWUuYnVmMTtpLnBhcnNlckJ1ZjI9ZS5idWYyO2NvbnN0IG49e307bi5vZmZzZXQ9ZS5nZXRPYmooKTtuLmdlbj1lLmdldE9iaigpO2NvbnN0IG89ZS5nZXRPYmooKTtpZihvIGluc3RhbmNlb2YgQ21kKXN3aXRjaChvLmNtZCl7Y2FzZSJmIjpuLmZyZWU9ITA7YnJlYWs7Y2FzZSJuIjpuLnVuY29tcHJlc3NlZD0hMH1pZighTnVtYmVyLmlzSW50ZWdlcihuLm9mZnNldCl8fCFOdW1iZXIuaXNJbnRlZ2VyKG4uZ2VuKXx8IW4uZnJlZSYmIW4udW5jb21wcmVzc2VkKXRocm93IG5ldyBGb3JtYXRFcnJvcihgSW52YWxpZCBlbnRyeSBpbiBYUmVmIHN1YnNlY3Rpb246ICR7cn0sICR7c31gKTswPT09YSYmbi5mcmVlJiYxPT09ciYmKHI9MCk7dGhpcy5lbnRyaWVzW2Ercl18fCh0aGlzLmVudHJpZXNbYStyXT1uKX1pLmVudHJ5TnVtPTA7aS5zdHJlYW1Qb3M9dC5wb3M7aS5wYXJzZXJCdWYxPWUuYnVmMTtpLnBhcnNlckJ1ZjI9ZS5idWYyO2RlbGV0ZSBpLmZpcnN0RW50cnlOdW07ZGVsZXRlIGkuZW50cnlDb3VudH1pZih0aGlzLmVudHJpZXNbMF0mJiF0aGlzLmVudHJpZXNbMF0uZnJlZSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgWFJlZiB0YWJsZTogdW5leHBlY3RlZCBmaXJzdCBvYmplY3QiKTtyZXR1cm4gYX1wcm9jZXNzWFJlZlN0cmVhbShlKXtpZighKCJzdHJlYW1TdGF0ZSJpbiB0aGlzKSl7Y29uc3R7ZGljdDp0LHBvczppfT1lLGE9dC5nZXQoIlciKSxyPXQuZ2V0KCJJbmRleCIpfHxbMCx0LmdldCgiU2l6ZSIpXTt0aGlzLnN0cmVhbVN0YXRlPXtlbnRyeVJhbmdlczpyLGJ5dGVXaWR0aHM6YSxlbnRyeU51bTowLHN0cmVhbVBvczppfX10aGlzLnJlYWRYUmVmU3RyZWFtKGUpO2RlbGV0ZSB0aGlzLnN0cmVhbVN0YXRlO3JldHVybiBlLmRpY3R9cmVhZFhSZWZTdHJlYW0oZSl7Y29uc3QgdD10aGlzLnN0cmVhbVN0YXRlO2UucG9zPXQuc3RyZWFtUG9zO2NvbnN0W2ksYSxyXT10LmJ5dGVXaWR0aHMscz10LmVudHJ5UmFuZ2VzO2Zvcig7cy5sZW5ndGg+MDspe2NvbnN0W24sb109cztpZighTnVtYmVyLmlzSW50ZWdlcihuKXx8IU51bWJlci5pc0ludGVnZXIobykpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBJbnZhbGlkIFhSZWYgcmFuZ2UgZmllbGRzOiAke259LCAke299YCk7aWYoIU51bWJlci5pc0ludGVnZXIoaSl8fCFOdW1iZXIuaXNJbnRlZ2VyKGEpfHwhTnVtYmVyLmlzSW50ZWdlcihyKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYEludmFsaWQgWFJlZiBlbnRyeSBmaWVsZHMgbGVuZ3RoOiAke259LCAke299YCk7Zm9yKGxldCBzPXQuZW50cnlOdW07czxvOysrcyl7dC5lbnRyeU51bT1zO3Quc3RyZWFtUG9zPWUucG9zO2xldCBvPTAsZz0wLGM9MDtmb3IobGV0IHQ9MDt0PGk7Kyt0KXtjb25zdCB0PWUuZ2V0Qnl0ZSgpO2lmKC0xPT09dCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgWFJlZiBieXRlV2lkdGhzICd0eXBlJy4iKTtvPW88PDh8dH0wPT09aSYmKG89MSk7Zm9yKGxldCB0PTA7dDxhOysrdCl7Y29uc3QgdD1lLmdldEJ5dGUoKTtpZigtMT09PXQpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIFhSZWYgYnl0ZVdpZHRocyAnb2Zmc2V0Jy4iKTtnPWc8PDh8dH1mb3IobGV0IHQ9MDt0PHI7Kyt0KXtjb25zdCB0PWUuZ2V0Qnl0ZSgpO2lmKC0xPT09dCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgWFJlZiBieXRlV2lkdGhzICdnZW5lcmF0aW9uJy4iKTtjPWM8PDh8dH1jb25zdCBsPXt9O2wub2Zmc2V0PWc7bC5nZW49Yztzd2l0Y2gobyl7Y2FzZSAwOmwuZnJlZT0hMDticmVhaztjYXNlIDE6bC51bmNvbXByZXNzZWQ9ITA7YnJlYWs7Y2FzZSAyOmJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEZvcm1hdEVycm9yKGBJbnZhbGlkIFhSZWYgZW50cnkgdHlwZTogJHtvfWApfXRoaXMuZW50cmllc1tuK3NdfHwodGhpcy5lbnRyaWVzW24rc109bCl9dC5lbnRyeU51bT0wO3Quc3RyZWFtUG9zPWUucG9zO3Muc3BsaWNlKDAsMil9fWluZGV4T2JqZWN0cygpe2Z1bmN0aW9uIHJlYWRUb2tlbihlLHQpe2xldCBpPSIiLGE9ZVt0XTtmb3IoOzEwIT09YSYmMTMhPT1hJiY2MCE9PWEmJiEoKyt0Pj1lLmxlbmd0aCk7KXtpKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGEpO2E9ZVt0XX1yZXR1cm4gaX1mdW5jdGlvbiBza2lwVW50aWwoZSx0LGkpe2NvbnN0IGE9aS5sZW5ndGgscj1lLmxlbmd0aDtsZXQgcz0wO2Zvcig7dDxyOyl7bGV0IHI9MDtmb3IoO3I8YSYmZVt0K3JdPT09aVtyXTspKytyO2lmKHI+PWEpYnJlYWs7dCsrO3MrK31yZXR1cm4gc31jb25zdCBlPS9cYihlbmRvYmp8XGQrXHMrXGQrXHMrb2JqfHhyZWZ8dHJhaWxlclxzKjw8KVxiL2csdD0vXGIoc3RhcnR4cmVmfFxkK1xzK1xkK1xzK29iailcYi9nLGk9L14oXGQrKVxzKyhcZCspXHMrb2JqXGIvLGE9bmV3IFVpbnQ4QXJyYXkoWzExNiwxMTQsOTcsMTA1LDEwOCwxMDEsMTE0XSkscj1uZXcgVWludDhBcnJheShbMTE1LDExNiw5NywxMTQsMTE2LDEyMCwxMTQsMTAxLDEwMl0pLHM9bmV3IFVpbnQ4QXJyYXkoWzQ3LDg4LDgyLDEwMSwxMDJdKTt0aGlzLmVudHJpZXMubGVuZ3RoPTA7dGhpcy5fY2FjaGVNYXAuY2xlYXIoKTtjb25zdCBuPXRoaXMuc3RyZWFtO24ucG9zPTA7Y29uc3Qgbz1uLmdldEJ5dGVzKCksZz1ieXRlc1RvU3RyaW5nKG8pLGM9by5sZW5ndGg7bGV0IGw9bi5zdGFydDtjb25zdCBoPVtdLEM9W107Zm9yKDtsPGM7KXtsZXQgUT1vW2xdO2lmKDk9PT1RfHwxMD09PVF8fDEzPT09UXx8MzI9PT1RKXsrK2w7Y29udGludWV9aWYoMzc9PT1RKXtkb3srK2w7aWYobD49YylicmVhaztRPW9bbF19d2hpbGUoMTAhPT1RJiYxMyE9PVEpO2NvbnRpbnVlfWNvbnN0IEU9cmVhZFRva2VuKG8sbCk7bGV0IHU7aWYoRS5zdGFydHNXaXRoKCJ4cmVmIikmJig0PT09RS5sZW5ndGh8fC9ccy8udGVzdChFWzRdKSkpe2wrPXNraXBVbnRpbChvLGwsYSk7aC5wdXNoKGwpO2wrPXNraXBVbnRpbChvLGwscil9ZWxzZSBpZih1PWkuZXhlYyhFKSl7Y29uc3QgdD0wfHVbMV0saT0wfHVbMl0sYT1sK0UubGVuZ3RoO2xldCByLGg9ITE7aWYodGhpcy5lbnRyaWVzW3RdKXtpZih0aGlzLmVudHJpZXNbdF0uZ2VuPT09aSl0cnl7bmV3IFBhcnNlcih7bGV4ZXI6bmV3IExleGVyKG4ubWFrZVN1YlN0cmVhbShhKSl9KS5nZXRPYmooKTtoPSEwfWNhdGNoKGUpe2UgaW5zdGFuY2VvZiBQYXJzZXJFT0ZFeGNlcHRpb24/d2FybihgaW5kZXhPYmplY3RzIC0tIGNoZWNraW5nIG9iamVjdCAoJHtFfSk6ICIke2V9Ii5gKTpoPSEwfX1lbHNlIGg9ITA7aCYmKHRoaXMuZW50cmllc1t0XT17b2Zmc2V0Omwtbi5zdGFydCxnZW46aSx1bmNvbXByZXNzZWQ6ITB9KTtlLmxhc3RJbmRleD1hO2NvbnN0IFE9ZS5leGVjKGcpO2lmKFEpe3I9ZS5sYXN0SW5kZXgrMS1sO2lmKCJlbmRvYmoiIT09UVsxXSl7d2FybihgaW5kZXhPYmplY3RzOiBGb3VuZCAiJHtRWzFdfSIgaW5zaWRlIG9mIGFub3RoZXIgIm9iaiIsIGNhdXNlZCBieSBtaXNzaW5nICJlbmRvYmoiIC0tIHRyeWluZyB0byByZWNvdmVyLmApO3ItPVFbMV0ubGVuZ3RoKzF9fWVsc2Ugcj1jLWw7Y29uc3QgZD1vLnN1YmFycmF5KGwsbCtyKSxmPXNraXBVbnRpbChkLDAscyk7aWYoZjxyJiZkW2YrNV08NjQpe0MucHVzaChsLW4uc3RhcnQpO3RoaXMuX3hyZWZTdG1zLmFkZChsLW4uc3RhcnQpfWwrPXJ9ZWxzZSBpZihFLnN0YXJ0c1dpdGgoInRyYWlsZXIiKSYmKDc9PT1FLmxlbmd0aHx8L1xzLy50ZXN0KEVbN10pKSl7aC5wdXNoKGwpO2NvbnN0IGU9bCtFLmxlbmd0aDtsZXQgaTt0Lmxhc3RJbmRleD1lO2NvbnN0IGE9dC5leGVjKGcpO2lmKGEpe2k9dC5sYXN0SW5kZXgrMS1sO2lmKCJzdGFydHhyZWYiIT09YVsxXSl7d2FybihgaW5kZXhPYmplY3RzOiBGb3VuZCAiJHthWzFdfSIgYWZ0ZXIgInRyYWlsZXIiLCBjYXVzZWQgYnkgbWlzc2luZyAic3RhcnR4cmVmIiAtLSB0cnlpbmcgdG8gcmVjb3Zlci5gKTtpLT1hWzFdLmxlbmd0aCsxfX1lbHNlIGk9Yy1sO2wrPWl9ZWxzZSBsKz1FLmxlbmd0aCsxfWZvcihjb25zdCBlIG9mIEMpe3RoaXMuc3RhcnRYUmVmUXVldWUucHVzaChlKTt0aGlzLnJlYWRYUmVmKCEwKX1jb25zdCBRPVtdO2xldCBFLHUsZD0hMTtmb3IoY29uc3QgZSBvZiBoKXtuLnBvcz1lO2NvbnN0IHQ9bmV3IFBhcnNlcih7bGV4ZXI6bmV3IExleGVyKG4pLHhyZWY6dGhpcyxhbGxvd1N0cmVhbXM6ITAscmVjb3ZlcnlNb2RlOiEwfSk7aWYoIWlzQ21kKHQuZ2V0T2JqKCksInRyYWlsZXIiKSljb250aW51ZTtjb25zdCBpPXQuZ2V0T2JqKCk7aWYoaSBpbnN0YW5jZW9mIERpY3Qpe1EucHVzaChpKTtpLmhhcygiRW5jcnlwdCIpJiYoZD0hMCl9fWZvcihjb25zdCBlIG9mWy4uLlEsImdlbkZhbGxiYWNrIiwuLi5RXSl7aWYoImdlbkZhbGxiYWNrIj09PWUpe2lmKCF1KWJyZWFrO3RoaXMuX2dlbmVyYXRpb25GYWxsYmFjaz0hMDtjb250aW51ZX1sZXQgdD0hMTt0cnl7Y29uc3QgaT1lLmdldCgiUm9vdCIpO2lmKCEoaSBpbnN0YW5jZW9mIERpY3QpKWNvbnRpbnVlO2NvbnN0IGE9aS5nZXQoIlBhZ2VzIik7aWYoIShhIGluc3RhbmNlb2YgRGljdCkpY29udGludWU7Y29uc3Qgcj1hLmdldCgiQ291bnQiKTtOdW1iZXIuaXNJbnRlZ2VyKHIpJiYodD0hMCl9Y2F0Y2goZSl7dT1lO2NvbnRpbnVlfWlmKHQmJighZHx8ZS5oYXMoIkVuY3J5cHQiKSkmJmUuaGFzKCJJRCIpKXJldHVybiBlO0U9ZX1pZihFKXJldHVybiBFO2lmKHRoaXMudG9wRGljdClyZXR1cm4gdGhpcy50b3BEaWN0O2lmKCFRLmxlbmd0aClmb3IoY29uc3RbZSx0XW9mIHRoaXMuZW50cmllcy5lbnRyaWVzKCkpe2lmKCF0KWNvbnRpbnVlO2NvbnN0IGk9UmVmLmdldChlLHQuZ2VuKTtsZXQgYTt0cnl7YT10aGlzLmZldGNoKGkpfWNhdGNoe2NvbnRpbnVlfWEgaW5zdGFuY2VvZiBCYXNlU3RyZWFtJiYoYT1hLmRpY3QpO2lmKGEgaW5zdGFuY2VvZiBEaWN0JiZhLmhhcygiUm9vdCIpKXJldHVybiBhfXRocm93IG5ldyBJbnZhbGlkUERGRXhjZXB0aW9uKCJJbnZhbGlkIFBERiBzdHJ1Y3R1cmUuIil9cmVhZFhSZWYoZT0hMSl7Y29uc3QgdD10aGlzLnN0cmVhbSxpPW5ldyBTZXQ7Zm9yKDt0aGlzLnN0YXJ0WFJlZlF1ZXVlLmxlbmd0aDspe3RyeXtjb25zdCBlPXRoaXMuc3RhcnRYUmVmUXVldWVbMF07aWYoaS5oYXMoZSkpe3dhcm4oInJlYWRYUmVmIC0gc2tpcHBpbmcgWFJlZiB0YWJsZSBzaW5jZSBpdCB3YXMgYWxyZWFkeSBwYXJzZWQuIik7dGhpcy5zdGFydFhSZWZRdWV1ZS5zaGlmdCgpO2NvbnRpbnVlfWkuYWRkKGUpO3QucG9zPWUrdC5zdGFydDtjb25zdCBhPW5ldyBQYXJzZXIoe2xleGVyOm5ldyBMZXhlcih0KSx4cmVmOnRoaXMsYWxsb3dTdHJlYW1zOiEwfSk7bGV0IHIscz1hLmdldE9iaigpO2lmKGlzQ21kKHMsInhyZWYiKSl7cj10aGlzLnByb2Nlc3NYUmVmVGFibGUoYSk7dGhpcy50b3BEaWN0fHwodGhpcy50b3BEaWN0PXIpO3M9ci5nZXQoIlhSZWZTdG0iKTtpZihOdW1iZXIuaXNJbnRlZ2VyKHMpJiYhdGhpcy5feHJlZlN0bXMuaGFzKHMpKXt0aGlzLl94cmVmU3Rtcy5hZGQocyk7dGhpcy5zdGFydFhSZWZRdWV1ZS5wdXNoKHMpO3RoaXMuI1Y/Pz1zfX1lbHNle2lmKCFOdW1iZXIuaXNJbnRlZ2VyKHMpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiSW52YWxpZCBYUmVmIHN0cmVhbSBoZWFkZXIiKTtpZighKE51bWJlci5pc0ludGVnZXIoYS5nZXRPYmooKSkmJmlzQ21kKGEuZ2V0T2JqKCksIm9iaiIpJiYocz1hLmdldE9iaigpKWluc3RhbmNlb2YgQmFzZVN0cmVhbSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIFhSZWYgc3RyZWFtIik7cj10aGlzLnByb2Nlc3NYUmVmU3RyZWFtKHMpO3RoaXMudG9wRGljdHx8KHRoaXMudG9wRGljdD1yKTtpZighcil0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkZhaWxlZCB0byByZWFkIFhSZWYgc3RyZWFtIil9cz1yLmdldCgiUHJldiIpO051bWJlci5pc0ludGVnZXIocyk/dGhpcy5zdGFydFhSZWZRdWV1ZS5wdXNoKHMpOnMgaW5zdGFuY2VvZiBSZWYmJnRoaXMuc3RhcnRYUmVmUXVldWUucHVzaChzLm51bSl9Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIE1pc3NpbmdEYXRhRXhjZXB0aW9uKXRocm93IGU7aW5mbygiKHdoaWxlIHJlYWRpbmcgWFJlZik6ICIrZSl9dGhpcy5zdGFydFhSZWZRdWV1ZS5zaGlmdCgpfWlmKHRoaXMudG9wRGljdClyZXR1cm4gdGhpcy50b3BEaWN0O2lmKCFlKXRocm93IG5ldyBYUmVmUGFyc2VFeGNlcHRpb259Z2V0IGxhc3RYUmVmU3RyZWFtUG9zKCl7cmV0dXJuIHRoaXMuI1Y/Pyh0aGlzLl94cmVmU3Rtcy5zaXplPjA/TWF0aC5tYXgoLi4udGhpcy5feHJlZlN0bXMpOm51bGwpfWdldEVudHJ5KGUpe2NvbnN0IHQ9dGhpcy5lbnRyaWVzW2VdO3JldHVybiB0JiYhdC5mcmVlJiZ0Lm9mZnNldD90Om51bGx9ZmV0Y2hJZlJlZihlLHQ9ITEpe3JldHVybiBlIGluc3RhbmNlb2YgUmVmP3RoaXMuZmV0Y2goZSx0KTplfWZldGNoKGUsdD0hMSl7aWYoIShlIGluc3RhbmNlb2YgUmVmKSl0aHJvdyBuZXcgRXJyb3IoInJlZiBvYmplY3QgaXMgbm90IGEgcmVmZXJlbmNlIik7Y29uc3QgaT1lLm51bSxhPXRoaXMuX2NhY2hlTWFwLmdldChpKTtpZih2b2lkIDAhPT1hKXthIGluc3RhbmNlb2YgRGljdCYmIWEub2JqSWQmJihhLm9iaklkPWUudG9TdHJpbmcoKSk7cmV0dXJuIGF9bGV0IHI9dGhpcy5nZXRFbnRyeShpKTtpZihudWxsPT09cil7dGhpcy5fY2FjaGVNYXAuc2V0KGkscik7cmV0dXJuIHJ9aWYodGhpcy5fcGVuZGluZ1JlZnMuaGFzKGUpKXt0aGlzLl9wZW5kaW5nUmVmcy5yZW1vdmUoZSk7d2FybihgSWdub3JpbmcgY2lyY3VsYXIgcmVmZXJlbmNlOiAke2V9LmApO3JldHVybiBRdH10aGlzLl9wZW5kaW5nUmVmcy5wdXQoZSk7dHJ5e3I9ci51bmNvbXByZXNzZWQ/dGhpcy5mZXRjaFVuY29tcHJlc3NlZChlLHIsdCk6dGhpcy5mZXRjaENvbXByZXNzZWQoZSxyLHQpO3RoaXMuX3BlbmRpbmdSZWZzLnJlbW92ZShlKX1jYXRjaCh0KXt0aGlzLl9wZW5kaW5nUmVmcy5yZW1vdmUoZSk7dGhyb3cgdH1yIGluc3RhbmNlb2YgRGljdD9yLm9iaklkPWUudG9TdHJpbmcoKTpyIGluc3RhbmNlb2YgQmFzZVN0cmVhbSYmKHIuZGljdC5vYmpJZD1lLnRvU3RyaW5nKCkpO3JldHVybiByfWZldGNoVW5jb21wcmVzc2VkKGUsdCxpPSExKXtjb25zdCBhPWUuZ2VuO2xldCByPWUubnVtO2lmKHQuZ2VuIT09YSl7Y29uc3Qgcz1gSW5jb25zaXN0ZW50IGdlbmVyYXRpb24gaW4gWFJlZjogJHtlfWA7aWYodGhpcy5fZ2VuZXJhdGlvbkZhbGxiYWNrJiZ0LmdlbjxhKXt3YXJuKHMpO3JldHVybiB0aGlzLmZldGNoVW5jb21wcmVzc2VkKFJlZi5nZXQocix0LmdlbiksdCxpKX10aHJvdyBuZXcgWFJlZkVudHJ5RXhjZXB0aW9uKHMpfWNvbnN0IHM9dGhpcy5zdHJlYW0ubWFrZVN1YlN0cmVhbSh0Lm9mZnNldCt0aGlzLnN0cmVhbS5zdGFydCksbj1uZXcgUGFyc2VyKHtsZXhlcjpuZXcgTGV4ZXIocykseHJlZjp0aGlzLGFsbG93U3RyZWFtczohMH0pLG89bi5nZXRPYmooKSxnPW4uZ2V0T2JqKCksYz1uLmdldE9iaigpO2lmKG8hPT1yfHxnIT09YXx8IShjIGluc3RhbmNlb2YgQ21kKSl0aHJvdyBuZXcgWFJlZkVudHJ5RXhjZXB0aW9uKGBCYWQgKHVuY29tcHJlc3NlZCkgWFJlZiBlbnRyeTogJHtlfWApO2lmKCJvYmoiIT09Yy5jbWQpe2lmKGMuY21kLnN0YXJ0c1dpdGgoIm9iaiIpKXtyPXBhcnNlSW50KGMuY21kLnN1YnN0cmluZygzKSwxMCk7aWYoIU51bWJlci5pc05hTihyKSlyZXR1cm4gcn10aHJvdyBuZXcgWFJlZkVudHJ5RXhjZXB0aW9uKGBCYWQgKHVuY29tcHJlc3NlZCkgWFJlZiBlbnRyeTogJHtlfWApfSh0PXRoaXMuZW5jcnlwdCYmIWk/bi5nZXRPYmoodGhpcy5lbmNyeXB0LmNyZWF0ZUNpcGhlclRyYW5zZm9ybShyLGEpKTpuLmdldE9iaigpKWluc3RhbmNlb2YgQmFzZVN0cmVhbXx8dGhpcy5fY2FjaGVNYXAuc2V0KHIsdCk7cmV0dXJuIHR9ZmV0Y2hDb21wcmVzc2VkKGUsdCxpPSExKXtjb25zdCBhPXQub2Zmc2V0LHI9dGhpcy5mZXRjaChSZWYuZ2V0KGEsMCkpO2lmKCEociBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pKXRocm93IG5ldyBGb3JtYXRFcnJvcigiYmFkIE9ialN0bSBzdHJlYW0iKTtjb25zdCBzPXIuZGljdC5nZXQoIkZpcnN0Iiksbj1yLmRpY3QuZ2V0KCJOIik7aWYoIU51bWJlci5pc0ludGVnZXIocyl8fCFOdW1iZXIuaXNJbnRlZ2VyKG4pKXRocm93IG5ldyBGb3JtYXRFcnJvcigiaW52YWxpZCBmaXJzdCBhbmQgbiBwYXJhbWV0ZXJzIGZvciBPYmpTdG0gc3RyZWFtIik7bGV0IG89bmV3IFBhcnNlcih7bGV4ZXI6bmV3IExleGVyKHIpLHhyZWY6dGhpcyxhbGxvd1N0cmVhbXM6ITB9KTtjb25zdCBnPW5ldyBBcnJheShuKSxjPW5ldyBBcnJheShuKTtmb3IobGV0IGU9MDtlPG47KytlKXtjb25zdCB0PW8uZ2V0T2JqKCk7aWYoIU51bWJlci5pc0ludGVnZXIodCkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBpbnZhbGlkIG9iamVjdCBudW1iZXIgaW4gdGhlIE9ialN0bSBzdHJlYW06ICR7dH1gKTtjb25zdCBpPW8uZ2V0T2JqKCk7aWYoIU51bWJlci5pc0ludGVnZXIoaSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBpbnZhbGlkIG9iamVjdCBvZmZzZXQgaW4gdGhlIE9ialN0bSBzdHJlYW06ICR7aX1gKTtnW2VdPXQ7Y1tlXT1pfWNvbnN0IGw9KHIuc3RhcnR8fDApK3MsaD1uZXcgQXJyYXkobik7Zm9yKGxldCBlPTA7ZTxuOysrZSl7Y29uc3QgdD1lPG4tMT9jW2UrMV0tY1tlXTp2b2lkIDA7aWYodDwwKXRocm93IG5ldyBGb3JtYXRFcnJvcigiSW52YWxpZCBvZmZzZXQgaW4gdGhlIE9ialN0bSBzdHJlYW0uIik7bz1uZXcgUGFyc2VyKHtsZXhlcjpuZXcgTGV4ZXIoci5tYWtlU3ViU3RyZWFtKGwrY1tlXSx0LHIuZGljdCkpLHhyZWY6dGhpcyxhbGxvd1N0cmVhbXM6ITB9KTtjb25zdCBpPW8uZ2V0T2JqKCk7aFtlXT1pO2lmKGkgaW5zdGFuY2VvZiBCYXNlU3RyZWFtKWNvbnRpbnVlO2NvbnN0IHM9Z1tlXSxDPXRoaXMuZW50cmllc1tzXTtDJiZDLm9mZnNldD09PWEmJkMuZ2VuPT09ZSYmdGhpcy5fY2FjaGVNYXAuc2V0KHMsaSl9aWYodm9pZCAwPT09KHQ9aFt0Lmdlbl0pKXRocm93IG5ldyBYUmVmRW50cnlFeGNlcHRpb24oYEJhZCAoY29tcHJlc3NlZCkgWFJlZiBlbnRyeTogJHtlfWApO3JldHVybiB0fWFzeW5jIGZldGNoSWZSZWZBc3luYyhlLHQpe3JldHVybiBlIGluc3RhbmNlb2YgUmVmP3RoaXMuZmV0Y2hBc3luYyhlLHQpOmV9YXN5bmMgZmV0Y2hBc3luYyhlLHQpe3RyeXtyZXR1cm4gdGhpcy5mZXRjaChlLHQpfWNhdGNoKGkpe2lmKCEoaSBpbnN0YW5jZW9mIE1pc3NpbmdEYXRhRXhjZXB0aW9uKSl0aHJvdyBpO2F3YWl0IHRoaXMucGRmTWFuYWdlci5yZXF1ZXN0UmFuZ2UoaS5iZWdpbixpLmVuZCk7cmV0dXJuIHRoaXMuZmV0Y2hBc3luYyhlLHQpfX1nZXRDYXRhbG9nT2JqKCl7cmV0dXJuIHRoaXMucm9vdH19Y29uc3QgYW89WzAsMCw2MTIsNzkyXTtjbGFzcyBQYWdle2NvbnN0cnVjdG9yKHtwZGZNYW5hZ2VyOmUseHJlZjp0LHBhZ2VJbmRleDppLHBhZ2VEaWN0OmEscmVmOnIsZ2xvYmFsSWRGYWN0b3J5OnMsZm9udENhY2hlOm4sYnVpbHRJbkNNYXBDYWNoZTpvLHN0YW5kYXJkRm9udERhdGFDYWNoZTpnLGdsb2JhbEltYWdlQ2FjaGU6YyxzeXN0ZW1Gb250Q2FjaGU6bCxub25CbGVuZE1vZGVzU2V0OmgseGZhRmFjdG9yeTpDfSl7dGhpcy5wZGZNYW5hZ2VyPWU7dGhpcy5wYWdlSW5kZXg9aTt0aGlzLnBhZ2VEaWN0PWE7dGhpcy54cmVmPXQ7dGhpcy5yZWY9cjt0aGlzLmZvbnRDYWNoZT1uO3RoaXMuYnVpbHRJbkNNYXBDYWNoZT1vO3RoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlPWc7dGhpcy5nbG9iYWxJbWFnZUNhY2hlPWM7dGhpcy5zeXN0ZW1Gb250Q2FjaGU9bDt0aGlzLm5vbkJsZW5kTW9kZXNTZXQ9aDt0aGlzLmV2YWx1YXRvck9wdGlvbnM9ZS5ldmFsdWF0b3JPcHRpb25zO3RoaXMucmVzb3VyY2VzUHJvbWlzZT1udWxsO3RoaXMueGZhRmFjdG9yeT1DO2NvbnN0IFE9e29iajowfTt0aGlzLl9sb2NhbElkRmFjdG9yeT1jbGFzcyBleHRlbmRzIHN7c3RhdGljIGNyZWF0ZU9iaklkKCl7cmV0dXJuYHAke2l9XyR7KytRLm9ian1gfXN0YXRpYyBnZXRQYWdlT2JqSWQoKXtyZXR1cm5gcCR7ci50b1N0cmluZygpfWB9fX1fZ2V0SW5oZXJpdGFibGVQcm9wZXJ0eShlLHQ9ITEpe2NvbnN0IGk9Z2V0SW5oZXJpdGFibGVQcm9wZXJ0eSh7ZGljdDp0aGlzLnBhZ2VEaWN0LGtleTplLGdldEFycmF5OnQsc3RvcFdoZW5Gb3VuZDohMX0pO3JldHVybiBBcnJheS5pc0FycmF5KGkpPzEhPT1pLmxlbmd0aCYmaVswXWluc3RhbmNlb2YgRGljdD9EaWN0Lm1lcmdlKHt4cmVmOnRoaXMueHJlZixkaWN0QXJyYXk6aX0pOmlbMF06aX1nZXQgY29udGVudCgpe3JldHVybiB0aGlzLnBhZ2VEaWN0LmdldEFycmF5KCJDb250ZW50cyIpfWdldCByZXNvdXJjZXMoKXtjb25zdCBlPXRoaXMuX2dldEluaGVyaXRhYmxlUHJvcGVydHkoIlJlc291cmNlcyIpO3JldHVybiBzaGFkb3codGhpcywicmVzb3VyY2VzIixlIGluc3RhbmNlb2YgRGljdD9lOkRpY3QuZW1wdHkpfV9nZXRCb3VuZGluZ0JveChlKXtpZih0aGlzLnhmYURhdGEpcmV0dXJuIHRoaXMueGZhRGF0YS5iYm94O2NvbnN0IHQ9bG9va3VwTm9ybWFsUmVjdCh0aGlzLl9nZXRJbmhlcml0YWJsZVByb3BlcnR5KGUsITApLG51bGwpO2lmKHQpe2lmKHRbMl0tdFswXT4wJiZ0WzNdLXRbMV0+MClyZXR1cm4gdDt3YXJuKGBFbXB0eSwgb3IgaW52YWxpZCwgLyR7ZX0gZW50cnkuYCl9cmV0dXJuIG51bGx9Z2V0IG1lZGlhQm94KCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJtZWRpYUJveCIsdGhpcy5fZ2V0Qm91bmRpbmdCb3goIk1lZGlhQm94Iil8fGFvKX1nZXQgY3JvcEJveCgpe3JldHVybiBzaGFkb3codGhpcywiY3JvcEJveCIsdGhpcy5fZ2V0Qm91bmRpbmdCb3goIkNyb3BCb3giKXx8dGhpcy5tZWRpYUJveCl9Z2V0IHVzZXJVbml0KCl7Y29uc3QgZT10aGlzLnBhZ2VEaWN0LmdldCgiVXNlclVuaXQiKTtyZXR1cm4gc2hhZG93KHRoaXMsInVzZXJVbml0IiwibnVtYmVyIj09dHlwZW9mIGUmJmU+MD9lOjEpfWdldCB2aWV3KCl7Y29uc3R7Y3JvcEJveDplLG1lZGlhQm94OnR9PXRoaXM7aWYoZSE9PXQmJiFpc0FycmF5RXF1YWwoZSx0KSl7Y29uc3QgaT1VdGlsLmludGVyc2VjdChlLHQpO2lmKGkmJmlbMl0taVswXT4wJiZpWzNdLWlbMV0+MClyZXR1cm4gc2hhZG93KHRoaXMsInZpZXciLGkpO3dhcm4oIkVtcHR5IC9Dcm9wQm94IGFuZCAvTWVkaWFCb3ggaW50ZXJzZWN0aW9uLiIpfXJldHVybiBzaGFkb3codGhpcywidmlldyIsdCl9Z2V0IHJvdGF0ZSgpe2xldCBlPXRoaXMuX2dldEluaGVyaXRhYmxlUHJvcGVydHkoIlJvdGF0ZSIpfHwwO2UlOTAhPTA/ZT0wOmU+PTM2MD9lJT0zNjA6ZTwwJiYoZT0oZSUzNjArMzYwKSUzNjApO3JldHVybiBzaGFkb3codGhpcywicm90YXRlIixlKX1fb25TdWJTdHJlYW1FcnJvcihlLHQpe2lmKCF0aGlzLmV2YWx1YXRvck9wdGlvbnMuaWdub3JlRXJyb3JzKXRocm93IGU7d2FybihgZ2V0Q29udGVudFN0cmVhbSAtIGlnbm9yaW5nIHN1Yi1zdHJlYW0gKCR7dH0pOiAiJHtlfSIuYCl9Z2V0Q29udGVudFN0cmVhbSgpe3JldHVybiB0aGlzLnBkZk1hbmFnZXIuZW5zdXJlKHRoaXMsImNvbnRlbnQiKS50aGVuKChlPT5lIGluc3RhbmNlb2YgQmFzZVN0cmVhbT9lOkFycmF5LmlzQXJyYXkoZSk/bmV3IFN0cmVhbXNTZXF1ZW5jZVN0cmVhbShlLHRoaXMuX29uU3ViU3RyZWFtRXJyb3IuYmluZCh0aGlzKSk6bmV3IE51bGxTdHJlYW0pKX1nZXQgeGZhRGF0YSgpe3JldHVybiBzaGFkb3codGhpcywieGZhRGF0YSIsdGhpcy54ZmFGYWN0b3J5P3tiYm94OnRoaXMueGZhRmFjdG9yeS5nZXRCb3VuZGluZ0JveCh0aGlzLnBhZ2VJbmRleCl9Om51bGwpfWFzeW5jI1ooZSx0LGkpe2NvbnN0IGE9W107Zm9yKGNvbnN0IHIgb2YgZSlpZihyLmlkKXtjb25zdCBlPVJlZi5mcm9tU3RyaW5nKHIuaWQpO2lmKCFlKXt3YXJuKGBBIG5vbi1saW5rZWQgYW5ub3RhdGlvbiBjYW5ub3QgYmUgbW9kaWZpZWQ6ICR7ci5pZH1gKTtjb250aW51ZX1pZihyLmRlbGV0ZWQpe3QucHV0KGUsZSk7aWYoci5wb3B1cFJlZil7Y29uc3QgZT1SZWYuZnJvbVN0cmluZyhyLnBvcHVwUmVmKTtlJiZ0LnB1dChlLGUpfWNvbnRpbnVlfWk/LnB1dChlKTtyLnJlZj1lO2EucHVzaCh0aGlzLnhyZWYuZmV0Y2hBc3luYyhlKS50aGVuKChlPT57ZSBpbnN0YW5jZW9mIERpY3QmJihyLm9sZEFubm90YXRpb249ZS5jbG9uZSgpKX0pLCgoKT0+e3dhcm4oYENhbm5vdCBmZXRjaCBcYG9sZEFubm90YXRpb25cYCBmb3I6ICR7ZX0uYCl9KSkpO2RlbGV0ZSByLmlkfWF3YWl0IFByb21pc2UuYWxsKGEpfWFzeW5jIHNhdmVOZXdBbm5vdGF0aW9ucyhlLHQsaSxhLHIpe2lmKHRoaXMueGZhRmFjdG9yeSl0aHJvdyBuZXcgRXJyb3IoIlhGQTogQ2Fubm90IHNhdmUgbmV3IGFubm90YXRpb25zLiIpO2NvbnN0IHM9bmV3IFBhcnRpYWxFdmFsdWF0b3Ioe3hyZWY6dGhpcy54cmVmLGhhbmRsZXI6ZSxwYWdlSW5kZXg6dGhpcy5wYWdlSW5kZXgsaWRGYWN0b3J5OnRoaXMuX2xvY2FsSWRGYWN0b3J5LGZvbnRDYWNoZTp0aGlzLmZvbnRDYWNoZSxidWlsdEluQ01hcENhY2hlOnRoaXMuYnVpbHRJbkNNYXBDYWNoZSxzdGFuZGFyZEZvbnREYXRhQ2FjaGU6dGhpcy5zdGFuZGFyZEZvbnREYXRhQ2FjaGUsZ2xvYmFsSW1hZ2VDYWNoZTp0aGlzLmdsb2JhbEltYWdlQ2FjaGUsc3lzdGVtRm9udENhY2hlOnRoaXMuc3lzdGVtRm9udENhY2hlLG9wdGlvbnM6dGhpcy5ldmFsdWF0b3JPcHRpb25zfSksbj1uZXcgUmVmU2V0Q2FjaGUsbz1uZXcgUmVmU2V0O2F3YWl0IHRoaXMuI1ooaSxuLG8pO2NvbnN0IGc9dGhpcy5wYWdlRGljdCxjPXRoaXMuYW5ub3RhdGlvbnMuZmlsdGVyKChlPT4hKGUgaW5zdGFuY2VvZiBSZWYmJm4uaGFzKGUpKSkpLGw9YXdhaXQgQW5ub3RhdGlvbkZhY3Rvcnkuc2F2ZU5ld0Fubm90YXRpb25zKHMsdCxpLGEscik7Zm9yKGNvbnN0e3JlZjplfW9mIGwuYW5ub3RhdGlvbnMpZSBpbnN0YW5jZW9mIFJlZiYmIW8uaGFzKGUpJiZjLnB1c2goZSk7Y29uc3QgaD1nLmNsb25lKCk7aC5zZXQoIkFubm90cyIsYyk7ci5wdXQodGhpcy5yZWYse2RhdGE6aH0pO2Zvcihjb25zdCBlIG9mIG4pci5wdXQoZSx7ZGF0YTpudWxsfSl9c2F2ZShlLHQsaSxhKXtjb25zdCByPW5ldyBQYXJ0aWFsRXZhbHVhdG9yKHt4cmVmOnRoaXMueHJlZixoYW5kbGVyOmUscGFnZUluZGV4OnRoaXMucGFnZUluZGV4LGlkRmFjdG9yeTp0aGlzLl9sb2NhbElkRmFjdG9yeSxmb250Q2FjaGU6dGhpcy5mb250Q2FjaGUsYnVpbHRJbkNNYXBDYWNoZTp0aGlzLmJ1aWx0SW5DTWFwQ2FjaGUsc3RhbmRhcmRGb250RGF0YUNhY2hlOnRoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlLGdsb2JhbEltYWdlQ2FjaGU6dGhpcy5nbG9iYWxJbWFnZUNhY2hlLHN5c3RlbUZvbnRDYWNoZTp0aGlzLnN5c3RlbUZvbnRDYWNoZSxvcHRpb25zOnRoaXMuZXZhbHVhdG9yT3B0aW9uc30pO3JldHVybiB0aGlzLl9wYXJzZWRBbm5vdGF0aW9ucy50aGVuKChmdW5jdGlvbihlKXtjb25zdCBzPVtdO2Zvcihjb25zdCBuIG9mIGUpcy5wdXNoKG4uc2F2ZShyLHQsaSxhKS5jYXRjaCgoZnVuY3Rpb24oZSl7d2Fybihgc2F2ZSAtIGlnbm9yaW5nIGFubm90YXRpb24gZGF0YSBkdXJpbmcgIiR7dC5uYW1lfSIgdGFzazogIiR7ZX0iLmApO3JldHVybiBudWxsfSkpKTtyZXR1cm4gUHJvbWlzZS5hbGwocyl9KSl9bG9hZFJlc291cmNlcyhlKXt0aGlzLnJlc291cmNlc1Byb21pc2V8fD10aGlzLnBkZk1hbmFnZXIuZW5zdXJlKHRoaXMsInJlc291cmNlcyIpO3JldHVybiB0aGlzLnJlc291cmNlc1Byb21pc2UudGhlbigoKCk9Pm5ldyBPYmplY3RMb2FkZXIodGhpcy5yZXNvdXJjZXMsZSx0aGlzLnhyZWYpLmxvYWQoKSkpfWdldE9wZXJhdG9yTGlzdCh7aGFuZGxlcjplLHNpbms6dCx0YXNrOmksaW50ZW50OmEsY2FjaGVLZXk6cixhbm5vdGF0aW9uU3RvcmFnZTpzPW51bGwsbW9kaWZpZWRJZHM6bj1udWxsfSl7Y29uc3Qgbz10aGlzLmdldENvbnRlbnRTdHJlYW0oKSxoPXRoaXMubG9hZFJlc291cmNlcyhbIkNvbG9yU3BhY2UiLCJFeHRHU3RhdGUiLCJGb250IiwiUGF0dGVybiIsIlByb3BlcnRpZXMiLCJTaGFkaW5nIiwiWE9iamVjdCJdKSx1PW5ldyBQYXJ0aWFsRXZhbHVhdG9yKHt4cmVmOnRoaXMueHJlZixoYW5kbGVyOmUscGFnZUluZGV4OnRoaXMucGFnZUluZGV4LGlkRmFjdG9yeTp0aGlzLl9sb2NhbElkRmFjdG9yeSxmb250Q2FjaGU6dGhpcy5mb250Q2FjaGUsYnVpbHRJbkNNYXBDYWNoZTp0aGlzLmJ1aWx0SW5DTWFwQ2FjaGUsc3RhbmRhcmRGb250RGF0YUNhY2hlOnRoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlLGdsb2JhbEltYWdlQ2FjaGU6dGhpcy5nbG9iYWxJbWFnZUNhY2hlLHN5c3RlbUZvbnRDYWNoZTp0aGlzLnN5c3RlbUZvbnRDYWNoZSxvcHRpb25zOnRoaXMuZXZhbHVhdG9yT3B0aW9uc30pLGY9dGhpcy54ZmFGYWN0b3J5P251bGw6Z2V0TmV3QW5ub3RhdGlvbnNNYXAocykscD1mPy5nZXQodGhpcy5wYWdlSW5kZXgpO2xldCBtPVByb21pc2UucmVzb2x2ZShudWxsKSx5PW51bGw7aWYocCl7Y29uc3QgZT10aGlzLnBkZk1hbmFnZXIuZW5zdXJlRG9jKCJhbm5vdGF0aW9uR2xvYmFscyIpO2xldCB0O2NvbnN0IGE9bmV3IFNldDtmb3IoY29uc3R7Yml0bWFwSWQ6ZSxiaXRtYXA6dH1vZiBwKSFlfHx0fHxhLmhhcyhlKXx8YS5hZGQoZSk7Y29uc3R7aXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQ6cn09dGhpcy5ldmFsdWF0b3JPcHRpb25zO2lmKGEuc2l6ZT4wKXtjb25zdCBlPXAuc2xpY2UoKTtmb3IoY29uc3RbdCxpXW9mIHMpdC5zdGFydHNXaXRoKGQpJiZpLmJpdG1hcCYmYS5oYXMoaS5iaXRtYXBJZCkmJmUucHVzaChpKTt0PUFubm90YXRpb25GYWN0b3J5LmdlbmVyYXRlSW1hZ2VzKGUsdGhpcy54cmVmLHIpfWVsc2UgdD1Bbm5vdGF0aW9uRmFjdG9yeS5nZW5lcmF0ZUltYWdlcyhwLHRoaXMueHJlZixyKTt5PW5ldyBSZWZTZXQ7bT1Qcm9taXNlLmFsbChbZSx0aGlzLiNaKHAseSxudWxsKV0pLnRoZW4oKChbZV0pPT5lP0Fubm90YXRpb25GYWN0b3J5LnByaW50TmV3QW5ub3RhdGlvbnMoZSx1LGkscCx0KTpudWxsKSl9Y29uc3Qgdz1Qcm9taXNlLmFsbChbbyxoXSkudGhlbigoKFtzXSk9Pntjb25zdCBuPW5ldyBPcGVyYXRvckxpc3QoYSx0KTtlLnNlbmQoIlN0YXJ0UmVuZGVyUGFnZSIse3RyYW5zcGFyZW5jeTp1Lmhhc0JsZW5kTW9kZXModGhpcy5yZXNvdXJjZXMsdGhpcy5ub25CbGVuZE1vZGVzU2V0KSxwYWdlSW5kZXg6dGhpcy5wYWdlSW5kZXgsY2FjaGVLZXk6cn0pO3JldHVybiB1LmdldE9wZXJhdG9yTGlzdCh7c3RyZWFtOnMsdGFzazppLHJlc291cmNlczp0aGlzLnJlc291cmNlcyxvcGVyYXRvckxpc3Q6bn0pLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIG59KSl9KSk7cmV0dXJuIFByb21pc2UuYWxsKFt3LHRoaXMuX3BhcnNlZEFubm90YXRpb25zLG1dKS50aGVuKChmdW5jdGlvbihbZSx0LHJdKXtpZihyKXt0PXQuZmlsdGVyKChlPT4hKGUucmVmJiZ5LmhhcyhlLnJlZikpKSk7Zm9yKGxldCBlPTAsaT1yLmxlbmd0aDtlPGk7ZSsrKXtjb25zdCBhPXJbZV07aWYoYS5yZWZUb1JlcGxhY2Upe2NvbnN0IHM9dC5maW5kSW5kZXgoKGU9PmUucmVmJiZpc1JlZnNFcXVhbChlLnJlZixhLnJlZlRvUmVwbGFjZSkpKTtpZihzPj0wKXt0LnNwbGljZShzLDEsYSk7ci5zcGxpY2UoZS0tLDEpO2ktLX19fXQ9dC5jb25jYXQocil9aWYoMD09PXQubGVuZ3RofHxhJlEpe2UuZmx1c2goITApO3JldHVybntsZW5ndGg6ZS50b3RhbExlbmd0aH19Y29uc3Qgbz0hIShhJkMpLGg9ISEoYSZFKSxkPSEhKGEmZyksZj0hIShhJmMpLHA9ISEoYSZsKSxtPVtdO2Zvcihjb25zdCBlIG9mIHQpKGR8fGYmJmUubXVzdEJlVmlld2VkKHMsbykmJmUubXVzdEJlVmlld2VkV2hlbkVkaXRpbmcoaCxuKXx8cCYmZS5tdXN0QmVQcmludGVkKHMpKSYmbS5wdXNoKGUuZ2V0T3BlcmF0b3JMaXN0KHUsaSxhLHMpLmNhdGNoKChmdW5jdGlvbihlKXt3YXJuKGBnZXRPcGVyYXRvckxpc3QgLSBpZ25vcmluZyBhbm5vdGF0aW9uIGRhdGEgZHVyaW5nICIke2kubmFtZX0iIHRhc2s6ICIke2V9Ii5gKTtyZXR1cm57b3BMaXN0Om51bGwsc2VwYXJhdGVGb3JtOiExLHNlcGFyYXRlQ2FudmFzOiExfX0pKSk7cmV0dXJuIFByb21pc2UuYWxsKG0pLnRoZW4oKGZ1bmN0aW9uKHQpe2xldCBpPSExLGE9ITE7Zm9yKGNvbnN0e29wTGlzdDpyLHNlcGFyYXRlRm9ybTpzLHNlcGFyYXRlQ2FudmFzOm59b2YgdCl7ZS5hZGRPcExpc3Qocik7aXx8PXM7YXx8PW59ZS5mbHVzaCghMCx7Zm9ybTppLGNhbnZhczphfSk7cmV0dXJue2xlbmd0aDplLnRvdGFsTGVuZ3RofX0pKX0pKX1hc3luYyBleHRyYWN0VGV4dENvbnRlbnQoe2hhbmRsZXI6ZSx0YXNrOnQsaW5jbHVkZU1hcmtlZENvbnRlbnQ6aSxkaXNhYmxlTm9ybWFsaXphdGlvbjphLHNpbms6cn0pe2NvbnN0IHM9dGhpcy5nZXRDb250ZW50U3RyZWFtKCksbj10aGlzLmxvYWRSZXNvdXJjZXMoWyJFeHRHU3RhdGUiLCJGb250IiwiUHJvcGVydGllcyIsIlhPYmplY3QiXSksbz10aGlzLnBkZk1hbmFnZXIuZW5zdXJlQ2F0YWxvZygibGFuZyIpLFtnLCxjXT1hd2FpdCBQcm9taXNlLmFsbChbcyxuLG9dKTtyZXR1cm4gbmV3IFBhcnRpYWxFdmFsdWF0b3Ioe3hyZWY6dGhpcy54cmVmLGhhbmRsZXI6ZSxwYWdlSW5kZXg6dGhpcy5wYWdlSW5kZXgsaWRGYWN0b3J5OnRoaXMuX2xvY2FsSWRGYWN0b3J5LGZvbnRDYWNoZTp0aGlzLmZvbnRDYWNoZSxidWlsdEluQ01hcENhY2hlOnRoaXMuYnVpbHRJbkNNYXBDYWNoZSxzdGFuZGFyZEZvbnREYXRhQ2FjaGU6dGhpcy5zdGFuZGFyZEZvbnREYXRhQ2FjaGUsZ2xvYmFsSW1hZ2VDYWNoZTp0aGlzLmdsb2JhbEltYWdlQ2FjaGUsc3lzdGVtRm9udENhY2hlOnRoaXMuc3lzdGVtRm9udENhY2hlLG9wdGlvbnM6dGhpcy5ldmFsdWF0b3JPcHRpb25zfSkuZ2V0VGV4dENvbnRlbnQoe3N0cmVhbTpnLHRhc2s6dCxyZXNvdXJjZXM6dGhpcy5yZXNvdXJjZXMsaW5jbHVkZU1hcmtlZENvbnRlbnQ6aSxkaXNhYmxlTm9ybWFsaXphdGlvbjphLHNpbms6cix2aWV3Qm94OnRoaXMudmlldyxsYW5nOmN9KX1hc3luYyBnZXRTdHJ1Y3RUcmVlKCl7Y29uc3QgZT1hd2FpdCB0aGlzLnBkZk1hbmFnZXIuZW5zdXJlQ2F0YWxvZygic3RydWN0VHJlZVJvb3QiKTtpZighZSlyZXR1cm4gbnVsbDthd2FpdCB0aGlzLl9wYXJzZWRBbm5vdGF0aW9ucztjb25zdCB0PWF3YWl0IHRoaXMucGRmTWFuYWdlci5lbnN1cmUodGhpcywiX3BhcnNlU3RydWN0VHJlZSIsW2VdKTtyZXR1cm4gdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZSh0LCJzZXJpYWxpemFibGUiKX1fcGFyc2VTdHJ1Y3RUcmVlKGUpe2NvbnN0IHQ9bmV3IFN0cnVjdFRyZWVQYWdlKGUsdGhpcy5wYWdlRGljdCk7dC5wYXJzZSh0aGlzLnJlZik7cmV0dXJuIHR9YXN5bmMgZ2V0QW5ub3RhdGlvbnNEYXRhKGUsdCxpKXtjb25zdCBhPWF3YWl0IHRoaXMuX3BhcnNlZEFubm90YXRpb25zO2lmKDA9PT1hLmxlbmd0aClyZXR1cm4gYTtjb25zdCByPVtdLHM9W107bGV0IG47Y29uc3Qgbz0hIShpJmcpLGg9ISEoaSZjKSxDPSEhKGkmbCk7Zm9yKGNvbnN0IGkgb2YgYSl7Y29uc3QgYT1vfHxoJiZpLnZpZXdhYmxlOyhhfHxDJiZpLnByaW50YWJsZSkmJnIucHVzaChpLmRhdGEpO2lmKGkuaGFzVGV4dENvbnRlbnQmJmEpe258fD1uZXcgUGFydGlhbEV2YWx1YXRvcih7eHJlZjp0aGlzLnhyZWYsaGFuZGxlcjplLHBhZ2VJbmRleDp0aGlzLnBhZ2VJbmRleCxpZEZhY3Rvcnk6dGhpcy5fbG9jYWxJZEZhY3RvcnksZm9udENhY2hlOnRoaXMuZm9udENhY2hlLGJ1aWx0SW5DTWFwQ2FjaGU6dGhpcy5idWlsdEluQ01hcENhY2hlLHN0YW5kYXJkRm9udERhdGFDYWNoZTp0aGlzLnN0YW5kYXJkRm9udERhdGFDYWNoZSxnbG9iYWxJbWFnZUNhY2hlOnRoaXMuZ2xvYmFsSW1hZ2VDYWNoZSxzeXN0ZW1Gb250Q2FjaGU6dGhpcy5zeXN0ZW1Gb250Q2FjaGUsb3B0aW9uczp0aGlzLmV2YWx1YXRvck9wdGlvbnN9KTtzLnB1c2goaS5leHRyYWN0VGV4dENvbnRlbnQobix0LFstMS8wLC0xLzAsMS8wLDEvMF0pLmNhdGNoKChmdW5jdGlvbihlKXt3YXJuKGBnZXRBbm5vdGF0aW9uc0RhdGEgLSBpZ25vcmluZyB0ZXh0Q29udGVudCBkdXJpbmcgIiR7dC5uYW1lfSIgdGFzazogIiR7ZX0iLmApfSkpKX19YXdhaXQgUHJvbWlzZS5hbGwocyk7cmV0dXJuIHJ9Z2V0IGFubm90YXRpb25zKCl7Y29uc3QgZT10aGlzLl9nZXRJbmhlcml0YWJsZVByb3BlcnR5KCJBbm5vdHMiKTtyZXR1cm4gc2hhZG93KHRoaXMsImFubm90YXRpb25zIixBcnJheS5pc0FycmF5KGUpP2U6W10pfWdldCBfcGFyc2VkQW5ub3RhdGlvbnMoKXtyZXR1cm4gc2hhZG93KHRoaXMsIl9wYXJzZWRBbm5vdGF0aW9ucyIsdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZSh0aGlzLCJhbm5vdGF0aW9ucyIpLnRoZW4oKGFzeW5jIGU9PntpZigwPT09ZS5sZW5ndGgpcmV0dXJuIGU7Y29uc3RbdCxpXT1hd2FpdCBQcm9taXNlLmFsbChbdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZURvYygiYW5ub3RhdGlvbkdsb2JhbHMiKSx0aGlzLnBkZk1hbmFnZXIuZW5zdXJlRG9jKCJmaWVsZE9iamVjdHMiKV0pO2lmKCF0KXJldHVybltdO2NvbnN0IGE9aT8ub3JwaGFuRmllbGRzLHI9W107Zm9yKGNvbnN0IGkgb2YgZSlyLnB1c2goQW5ub3RhdGlvbkZhY3RvcnkuY3JlYXRlKHRoaXMueHJlZixpLHQsdGhpcy5fbG9jYWxJZEZhY3RvcnksITEsYSx0aGlzLnJlZikuY2F0Y2goKGZ1bmN0aW9uKGUpe3dhcm4oYF9wYXJzZWRBbm5vdGF0aW9uczogIiR7ZX0iLmApO3JldHVybiBudWxsfSkpKTtjb25zdCBzPVtdO2xldCBuLG87Zm9yKGNvbnN0IGUgb2YgYXdhaXQgUHJvbWlzZS5hbGwocikpZSYmKGUgaW5zdGFuY2VvZiBXaWRnZXRBbm5vdGF0aW9uPyhvfHw9W10pLnB1c2goZSk6ZSBpbnN0YW5jZW9mIFBvcHVwQW5ub3RhdGlvbj8obnx8PVtdKS5wdXNoKGUpOnMucHVzaChlKSk7byYmcy5wdXNoKC4uLm8pO24mJnMucHVzaCguLi5uKTtyZXR1cm4gc30pKSl9Z2V0IGpzQWN0aW9ucygpe3JldHVybiBzaGFkb3codGhpcywianNBY3Rpb25zIixjb2xsZWN0QWN0aW9ucyh0aGlzLnhyZWYsdGhpcy5wYWdlRGljdCx5QSkpfX1jb25zdCBybz1uZXcgVWludDhBcnJheShbMzcsODAsNjgsNzAsNDVdKSxzbz1uZXcgVWludDhBcnJheShbMTE1LDExNiw5NywxMTQsMTE2LDEyMCwxMTQsMTAxLDEwMl0pLG5vPW5ldyBVaW50OEFycmF5KFsxMDEsMTEwLDEwMCwxMTEsOTgsMTA2XSk7ZnVuY3Rpb24gZmluZChlLHQsaT0xMDI0LGE9ITEpe2NvbnN0IHI9dC5sZW5ndGgscz1lLnBlZWtCeXRlcyhpKSxuPXMubGVuZ3RoLXI7aWYobjw9MClyZXR1cm4hMTtpZihhKXtjb25zdCBpPXItMTtsZXQgYT1zLmxlbmd0aC0xO2Zvcig7YT49aTspe2xldCBuPTA7Zm9yKDtuPHImJnNbYS1uXT09PXRbaS1uXTspbisrO2lmKG4+PXIpe2UucG9zKz1hLWk7cmV0dXJuITB9YS0tfX1lbHNle2xldCBpPTA7Zm9yKDtpPD1uOyl7bGV0IGE9MDtmb3IoO2E8ciYmc1tpK2FdPT09dFthXTspYSsrO2lmKGE+PXIpe2UucG9zKz1pO3JldHVybiEwfWkrK319cmV0dXJuITF9Y2xhc3MgUERGRG9jdW1lbnR7Y29uc3RydWN0b3IoZSx0KXtpZih0Lmxlbmd0aDw9MCl0aHJvdyBuZXcgSW52YWxpZFBERkV4Y2VwdGlvbigiVGhlIFBERiBmaWxlIGlzIGVtcHR5LCBpLmUuIGl0cyBzaXplIGlzIHplcm8gYnl0ZXMuIik7dGhpcy5wZGZNYW5hZ2VyPWU7dGhpcy5zdHJlYW09dDt0aGlzLnhyZWY9bmV3IFhSZWYodCxlKTt0aGlzLl9wYWdlUHJvbWlzZXM9bmV3IE1hcDt0aGlzLl92ZXJzaW9uPW51bGw7Y29uc3QgaT17Zm9udDowfTt0aGlzLl9nbG9iYWxJZEZhY3Rvcnk9Y2xhc3N7c3RhdGljIGdldERvY0lkKCl7cmV0dXJuYGdfJHtlLmRvY0lkfWB9c3RhdGljIGNyZWF0ZUZvbnRJZCgpe3JldHVybiJmIisgKytpLmZvbnR9c3RhdGljIGNyZWF0ZU9iaklkKCl7dW5yZWFjaGFibGUoIkFic3RyYWN0IG1ldGhvZCBgY3JlYXRlT2JqSWRgIGNhbGxlZC4iKX1zdGF0aWMgZ2V0UGFnZU9iaklkKCl7dW5yZWFjaGFibGUoIkFic3RyYWN0IG1ldGhvZCBgZ2V0UGFnZU9iaklkYCBjYWxsZWQuIil9fX1wYXJzZShlKXt0aGlzLnhyZWYucGFyc2UoZSk7dGhpcy5jYXRhbG9nPW5ldyBDYXRhbG9nKHRoaXMucGRmTWFuYWdlcix0aGlzLnhyZWYpfWdldCBsaW5lYXJpemF0aW9uKCl7bGV0IGU9bnVsbDt0cnl7ZT1MaW5lYXJpemF0aW9uLmNyZWF0ZSh0aGlzLnN0cmVhbSl9Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIE1pc3NpbmdEYXRhRXhjZXB0aW9uKXRocm93IGU7aW5mbyhlKX1yZXR1cm4gc2hhZG93KHRoaXMsImxpbmVhcml6YXRpb24iLGUpfWdldCBzdGFydFhSZWYoKXtjb25zdCBlPXRoaXMuc3RyZWFtO2xldCB0PTA7aWYodGhpcy5saW5lYXJpemF0aW9uKXtlLnJlc2V0KCk7aWYoZmluZChlLG5vKSl7ZS5za2lwKDYpO2xldCBpPWUucGVla0J5dGUoKTtmb3IoO2lzV2hpdGVTcGFjZShpKTspe2UucG9zKys7aT1lLnBlZWtCeXRlKCl9dD1lLnBvcy1lLnN0YXJ0fX1lbHNle2NvbnN0IGk9MTAyNCxhPXNvLmxlbmd0aDtsZXQgcj0hMSxzPWUuZW5kO2Zvcig7IXImJnM+MDspe3MtPWktYTtzPDAmJihzPTApO2UucG9zPXM7cj1maW5kKGUsc28saSwhMCl9aWYocil7ZS5za2lwKDkpO2xldCBpO2Rve2k9ZS5nZXRCeXRlKCl9d2hpbGUoaXNXaGl0ZVNwYWNlKGkpKTtsZXQgYT0iIjtmb3IoO2k+PTMyJiZpPD01Nzspe2ErPVN0cmluZy5mcm9tQ2hhckNvZGUoaSk7aT1lLmdldEJ5dGUoKX10PXBhcnNlSW50KGEsMTApO2lzTmFOKHQpJiYodD0wKX19cmV0dXJuIHNoYWRvdyh0aGlzLCJzdGFydFhSZWYiLHQpfWNoZWNrSGVhZGVyKCl7Y29uc3QgZT10aGlzLnN0cmVhbTtlLnJlc2V0KCk7aWYoIWZpbmQoZSxybykpcmV0dXJuO2UubW92ZVN0YXJ0KCk7ZS5za2lwKHJvLmxlbmd0aCk7bGV0IHQsaT0iIjtmb3IoOyh0PWUuZ2V0Qnl0ZSgpKT4zMiYmaS5sZW5ndGg8NzspaSs9U3RyaW5nLmZyb21DaGFyQ29kZSh0KTttdC50ZXN0KGkpP3RoaXMuX3ZlcnNpb249aTp3YXJuKGBJbnZhbGlkIFBERiBoZWFkZXIgdmVyc2lvbjogJHtpfWApfXBhcnNlU3RhcnRYUmVmKCl7dGhpcy54cmVmLnNldFN0YXJ0WFJlZih0aGlzLnN0YXJ0WFJlZil9Z2V0IG51bVBhZ2VzKCl7bGV0IGU9MDtlPXRoaXMuY2F0YWxvZy5oYXNBY3R1YWxOdW1QYWdlcz90aGlzLmNhdGFsb2cubnVtUGFnZXM6dGhpcy54ZmFGYWN0b3J5P3RoaXMueGZhRmFjdG9yeS5nZXROdW1QYWdlcygpOnRoaXMubGluZWFyaXphdGlvbj90aGlzLmxpbmVhcml6YXRpb24ubnVtUGFnZXM6dGhpcy5jYXRhbG9nLm51bVBhZ2VzO3JldHVybiBzaGFkb3codGhpcywibnVtUGFnZXMiLGUpfV9oYXNPbmx5RG9jdW1lbnRTaWduYXR1cmVzKGUsdD0wKXtyZXR1cm4hIUFycmF5LmlzQXJyYXkoZSkmJmUuZXZlcnkoKGU9PntpZighKChlPXRoaXMueHJlZi5mZXRjaElmUmVmKGUpKWluc3RhbmNlb2YgRGljdCkpcmV0dXJuITE7aWYoZS5oYXMoIktpZHMiKSl7aWYoKyt0PjEwKXt3YXJuKCJfaGFzT25seURvY3VtZW50U2lnbmF0dXJlczogbWF4aW11bSByZWN1cnNpb24gZGVwdGggcmVhY2hlZCIpO3JldHVybiExfXJldHVybiB0aGlzLl9oYXNPbmx5RG9jdW1lbnRTaWduYXR1cmVzKGUuZ2V0KCJLaWRzIiksdCl9Y29uc3QgaT1pc05hbWUoZS5nZXQoIkZUIiksIlNpZyIpLGE9ZS5nZXQoIlJlY3QiKSxyPUFycmF5LmlzQXJyYXkoYSkmJmEuZXZlcnkoKGU9PjA9PT1lKSk7cmV0dXJuIGkmJnJ9KSl9Z2V0IF94ZmFTdHJlYW1zKCl7Y29uc3QgZT10aGlzLmNhdGFsb2cuYWNyb0Zvcm07aWYoIWUpcmV0dXJuIG51bGw7Y29uc3QgdD1lLmdldCgiWEZBIiksaT17InhkcDp4ZHAiOiIiLHRlbXBsYXRlOiIiLGRhdGFzZXRzOiIiLGNvbmZpZzoiIixjb25uZWN0aW9uU2V0OiIiLGxvY2FsZVNldDoiIixzdHlsZXNoZWV0OiIiLCIveGRwOnhkcCI6IiJ9O2lmKHQgaW5zdGFuY2VvZiBCYXNlU3RyZWFtJiYhdC5pc0VtcHR5KXtpWyJ4ZHA6eGRwIl09dDtyZXR1cm4gaX1pZighQXJyYXkuaXNBcnJheSh0KXx8MD09PXQubGVuZ3RoKXJldHVybiBudWxsO2ZvcihsZXQgZT0wLGE9dC5sZW5ndGg7ZTxhO2UrPTIpe2xldCByO3I9MD09PWU/InhkcDp4ZHAiOmU9PT1hLTI/Ii94ZHA6eGRwIjp0W2VdO2lmKCFpLmhhc093blByb3BlcnR5KHIpKWNvbnRpbnVlO2NvbnN0IHM9dGhpcy54cmVmLmZldGNoSWZSZWYodFtlKzFdKTtzIGluc3RhbmNlb2YgQmFzZVN0cmVhbSYmIXMuaXNFbXB0eSYmKGlbcl09cyl9cmV0dXJuIGl9Z2V0IHhmYURhdGFzZXRzKCl7Y29uc3QgZT10aGlzLl94ZmFTdHJlYW1zO2lmKCFlKXJldHVybiBzaGFkb3codGhpcywieGZhRGF0YXNldHMiLG51bGwpO2Zvcihjb25zdCB0IG9mWyJkYXRhc2V0cyIsInhkcDp4ZHAiXSl7Y29uc3QgaT1lW3RdO2lmKGkpdHJ5e2NvbnN0IGU9c3RyaW5nVG9VVEY4U3RyaW5nKGkuZ2V0U3RyaW5nKCkpO3JldHVybiBzaGFkb3codGhpcywieGZhRGF0YXNldHMiLG5ldyBEYXRhc2V0UmVhZGVyKHtbdF06ZX0pKX1jYXRjaHt3YXJuKCJYRkEgLSBJbnZhbGlkIHV0Zi04IHN0cmluZy4iKTticmVha319cmV0dXJuIHNoYWRvdyh0aGlzLCJ4ZmFEYXRhc2V0cyIsbnVsbCl9Z2V0IHhmYURhdGEoKXtjb25zdCBlPXRoaXMuX3hmYVN0cmVhbXM7aWYoIWUpcmV0dXJuIG51bGw7Y29uc3QgdD1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcihjb25zdFtpLGFdb2YgT2JqZWN0LmVudHJpZXMoZSkpaWYoYSl0cnl7dFtpXT1zdHJpbmdUb1VURjhTdHJpbmcoYS5nZXRTdHJpbmcoKSl9Y2F0Y2h7d2FybigiWEZBIC0gSW52YWxpZCB1dGYtOCBzdHJpbmcuIik7cmV0dXJuIG51bGx9cmV0dXJuIHR9Z2V0IHhmYUZhY3RvcnkoKXtsZXQgZTt0aGlzLnBkZk1hbmFnZXIuZW5hYmxlWGZhJiZ0aGlzLmNhdGFsb2cubmVlZHNSZW5kZXJpbmcmJnRoaXMuZm9ybUluZm8uaGFzWGZhJiYhdGhpcy5mb3JtSW5mby5oYXNBY3JvRm9ybSYmKGU9dGhpcy54ZmFEYXRhKTtyZXR1cm4gc2hhZG93KHRoaXMsInhmYUZhY3RvcnkiLGU/bmV3IFhGQUZhY3RvcnkoZSk6bnVsbCl9Z2V0IGlzUHVyZVhmYSgpe3JldHVybiEhdGhpcy54ZmFGYWN0b3J5JiZ0aGlzLnhmYUZhY3RvcnkuaXNWYWxpZCgpfWdldCBodG1sRm9yWGZhKCl7cmV0dXJuIHRoaXMueGZhRmFjdG9yeT90aGlzLnhmYUZhY3RvcnkuZ2V0UGFnZXMoKTpudWxsfWFzeW5jIGxvYWRYZmFJbWFnZXMoKXtjb25zdCBlPWF3YWl0IHRoaXMucGRmTWFuYWdlci5lbnN1cmVDYXRhbG9nKCJ4ZmFJbWFnZXMiKTtpZighZSlyZXR1cm47Y29uc3QgdD1lLmdldEtleXMoKSxpPW5ldyBPYmplY3RMb2FkZXIoZSx0LHRoaXMueHJlZik7YXdhaXQgaS5sb2FkKCk7Y29uc3QgYT1uZXcgTWFwO2Zvcihjb25zdCBpIG9mIHQpe2NvbnN0IHQ9ZS5nZXQoaSk7dCBpbnN0YW5jZW9mIEJhc2VTdHJlYW0mJmEuc2V0KGksdC5nZXRCeXRlcygpKX10aGlzLnhmYUZhY3Rvcnkuc2V0SW1hZ2VzKGEpfWFzeW5jIGxvYWRYZmFGb250cyhlLHQpe2NvbnN0IGk9YXdhaXQgdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZUNhdGFsb2coImFjcm9Gb3JtIik7aWYoIWkpcmV0dXJuO2NvbnN0IGE9YXdhaXQgaS5nZXRBc3luYygiRFIiKTtpZighKGEgaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm47Y29uc3Qgcj1uZXcgT2JqZWN0TG9hZGVyKGEsWyJGb250Il0sdGhpcy54cmVmKTthd2FpdCByLmxvYWQoKTtjb25zdCBzPWEuZ2V0KCJGb250Iik7aWYoIShzIGluc3RhbmNlb2YgRGljdCkpcmV0dXJuO2NvbnN0IG49T2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKG51bGwpLHRoaXMucGRmTWFuYWdlci5ldmFsdWF0b3JPcHRpb25zKTtuLnVzZVN5c3RlbUZvbnRzPSExO2NvbnN0IG89bmV3IFBhcnRpYWxFdmFsdWF0b3Ioe3hyZWY6dGhpcy54cmVmLGhhbmRsZXI6ZSxwYWdlSW5kZXg6LTEsaWRGYWN0b3J5OnRoaXMuX2dsb2JhbElkRmFjdG9yeSxmb250Q2FjaGU6dGhpcy5jYXRhbG9nLmZvbnRDYWNoZSxidWlsdEluQ01hcENhY2hlOnRoaXMuY2F0YWxvZy5idWlsdEluQ01hcENhY2hlLHN0YW5kYXJkRm9udERhdGFDYWNoZTp0aGlzLmNhdGFsb2cuc3RhbmRhcmRGb250RGF0YUNhY2hlLG9wdGlvbnM6bn0pLGc9bmV3IE9wZXJhdG9yTGlzdCxjPVtdLGw9e2dldCBmb250KCl7cmV0dXJuIGMuYXQoLTEpfSxzZXQgZm9udChlKXtjLnB1c2goZSl9LGNsb25lKCl7cmV0dXJuIHRoaXN9fSxoPVtdO2Zvcihjb25zdFtlLGldb2Ygcyl7Y29uc3Qgcj1pLmdldCgiRm9udERlc2NyaXB0b3IiKTtpZighKHIgaW5zdGFuY2VvZiBEaWN0KSljb250aW51ZTtsZXQgcz1yLmdldCgiRm9udEZhbWlseSIpO3M9cy5yZXBsYWNlQWxsKC9bIF0rKFxkKS9nLCIkMSIpO2NvbnN0IG49e2ZvbnRGYW1pbHk6cyxmb250V2VpZ2h0OnIuZ2V0KCJGb250V2VpZ2h0IiksaXRhbGljQW5nbGU6LXIuZ2V0KCJJdGFsaWNBbmdsZSIpfTt2YWxpZGF0ZUNTU0ZvbnQobikmJmgucHVzaChvLmhhbmRsZVNldEZvbnQoYSxbTmFtZS5nZXQoZSksMV0sbnVsbCxnLHQsbCxudWxsLG4pLmNhdGNoKChmdW5jdGlvbihlKXt3YXJuKGBsb2FkWGZhRm9udHM6ICIke2V9Ii5gKTtyZXR1cm4gbnVsbH0pKSl9YXdhaXQgUHJvbWlzZS5hbGwoaCk7Y29uc3QgQz10aGlzLnhmYUZhY3Rvcnkuc2V0Rm9udHMoYyk7aWYoIUMpcmV0dXJuO24uaWdub3JlRXJyb3JzPSEwO2gubGVuZ3RoPTA7Yy5sZW5ndGg9MDtjb25zdCBRPW5ldyBTZXQ7Zm9yKGNvbnN0IGUgb2YgQylnZXRYZmFGb250TmFtZShgJHtlfS1SZWd1bGFyYCl8fFEuYWRkKGUpO1Euc2l6ZSYmQy5wdXNoKCJQZGZKUy1GYWxsYmFjayIpO2Zvcihjb25zdCBlIG9mIEMpaWYoIVEuaGFzKGUpKWZvcihjb25zdCBpIG9mW3tuYW1lOiJSZWd1bGFyIixmb250V2VpZ2h0OjQwMCxpdGFsaWNBbmdsZTowfSx7bmFtZToiQm9sZCIsZm9udFdlaWdodDo3MDAsaXRhbGljQW5nbGU6MH0se25hbWU6Ikl0YWxpYyIsZm9udFdlaWdodDo0MDAsaXRhbGljQW5nbGU6MTJ9LHtuYW1lOiJCb2xkSXRhbGljIixmb250V2VpZ2h0OjcwMCxpdGFsaWNBbmdsZToxMn1dKXtjb25zdCByPWAke2V9LSR7aS5uYW1lfWAscz1nZXRYZmFGb250RGljdChyKTtoLnB1c2goby5oYW5kbGVTZXRGb250KGEsW05hbWUuZ2V0KHIpLDFdLG51bGwsZyx0LGwscyx7Zm9udEZhbWlseTplLGZvbnRXZWlnaHQ6aS5mb250V2VpZ2h0LGl0YWxpY0FuZ2xlOmkuaXRhbGljQW5nbGV9KS5jYXRjaCgoZnVuY3Rpb24oZSl7d2FybihgbG9hZFhmYUZvbnRzOiAiJHtlfSIuYCk7cmV0dXJuIG51bGx9KSkpfWF3YWl0IFByb21pc2UuYWxsKGgpO3RoaXMueGZhRmFjdG9yeS5hcHBlbmRGb250cyhjLFEpfWFzeW5jIHNlcmlhbGl6ZVhmYURhdGEoZSl7cmV0dXJuIHRoaXMueGZhRmFjdG9yeT90aGlzLnhmYUZhY3Rvcnkuc2VyaWFsaXplRGF0YShlKTpudWxsfWdldCB2ZXJzaW9uKCl7cmV0dXJuIHRoaXMuY2F0YWxvZy52ZXJzaW9ufHx0aGlzLl92ZXJzaW9ufWdldCBmb3JtSW5mbygpe2NvbnN0IGU9e2hhc0ZpZWxkczohMSxoYXNBY3JvRm9ybTohMSxoYXNYZmE6ITEsaGFzU2lnbmF0dXJlczohMX0sdD10aGlzLmNhdGFsb2cuYWNyb0Zvcm07aWYoIXQpcmV0dXJuIHNoYWRvdyh0aGlzLCJmb3JtSW5mbyIsZSk7dHJ5e2NvbnN0IGk9dC5nZXQoIkZpZWxkcyIpLGE9QXJyYXkuaXNBcnJheShpKSYmaS5sZW5ndGg+MDtlLmhhc0ZpZWxkcz1hO2NvbnN0IHI9dC5nZXQoIlhGQSIpO2UuaGFzWGZhPUFycmF5LmlzQXJyYXkocikmJnIubGVuZ3RoPjB8fHIgaW5zdGFuY2VvZiBCYXNlU3RyZWFtJiYhci5pc0VtcHR5O2NvbnN0IHM9ISEoMSZ0LmdldCgiU2lnRmxhZ3MiKSksbj1zJiZ0aGlzLl9oYXNPbmx5RG9jdW1lbnRTaWduYXR1cmVzKGkpO2UuaGFzQWNyb0Zvcm09YSYmIW47ZS5oYXNTaWduYXR1cmVzPXN9Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIE1pc3NpbmdEYXRhRXhjZXB0aW9uKXRocm93IGU7d2FybihgQ2Fubm90IGZldGNoIGZvcm0gaW5mb3JtYXRpb246ICIke2V9Ii5gKX1yZXR1cm4gc2hhZG93KHRoaXMsImZvcm1JbmZvIixlKX1nZXQgZG9jdW1lbnRJbmZvKCl7Y29uc3QgZT17UERGRm9ybWF0VmVyc2lvbjp0aGlzLnZlcnNpb24sTGFuZ3VhZ2U6dGhpcy5jYXRhbG9nLmxhbmcsRW5jcnlwdEZpbHRlck5hbWU6dGhpcy54cmVmLmVuY3J5cHQ/dGhpcy54cmVmLmVuY3J5cHQuZmlsdGVyTmFtZTpudWxsLElzTGluZWFyaXplZDohIXRoaXMubGluZWFyaXphdGlvbixJc0Fjcm9Gb3JtUHJlc2VudDp0aGlzLmZvcm1JbmZvLmhhc0Fjcm9Gb3JtLElzWEZBUHJlc2VudDp0aGlzLmZvcm1JbmZvLmhhc1hmYSxJc0NvbGxlY3Rpb25QcmVzZW50OiEhdGhpcy5jYXRhbG9nLmNvbGxlY3Rpb24sSXNTaWduYXR1cmVzUHJlc2VudDp0aGlzLmZvcm1JbmZvLmhhc1NpZ25hdHVyZXN9O2xldCB0O3RyeXt0PXRoaXMueHJlZi50cmFpbGVyLmdldCgiSW5mbyIpfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbil0aHJvdyBlO2luZm8oIlRoZSBkb2N1bWVudCBpbmZvcm1hdGlvbiBkaWN0aW9uYXJ5IGlzIGludmFsaWQuIil9aWYoISh0IGluc3RhbmNlb2YgRGljdCkpcmV0dXJuIHNoYWRvdyh0aGlzLCJkb2N1bWVudEluZm8iLGUpO2Zvcihjb25zdCBpIG9mIHQuZ2V0S2V5cygpKXtjb25zdCBhPXQuZ2V0KGkpO3N3aXRjaChpKXtjYXNlIlRpdGxlIjpjYXNlIkF1dGhvciI6Y2FzZSJTdWJqZWN0IjpjYXNlIktleXdvcmRzIjpjYXNlIkNyZWF0b3IiOmNhc2UiUHJvZHVjZXIiOmNhc2UiQ3JlYXRpb25EYXRlIjpjYXNlIk1vZERhdGUiOmlmKCJzdHJpbmciPT10eXBlb2YgYSl7ZVtpXT1zdHJpbmdUb1BERlN0cmluZyhhKTtjb250aW51ZX1icmVhaztjYXNlIlRyYXBwZWQiOmlmKGEgaW5zdGFuY2VvZiBOYW1lKXtlW2ldPWE7Y29udGludWV9YnJlYWs7ZGVmYXVsdDpsZXQgdDtzd2l0Y2godHlwZW9mIGEpe2Nhc2Uic3RyaW5nIjp0PXN0cmluZ1RvUERGU3RyaW5nKGEpO2JyZWFrO2Nhc2UibnVtYmVyIjpjYXNlImJvb2xlYW4iOnQ9YTticmVhaztkZWZhdWx0OmEgaW5zdGFuY2VvZiBOYW1lJiYodD1hKX1pZih2b2lkIDA9PT10KXt3YXJuKGBCYWQgdmFsdWUsIGZvciBjdXN0b20ga2V5ICIke2l9IiwgaW4gSW5mbzogJHthfS5gKTtjb250aW51ZX1lLkN1c3RvbXx8KGUuQ3VzdG9tPU9iamVjdC5jcmVhdGUobnVsbCkpO2UuQ3VzdG9tW2ldPXQ7Y29udGludWV9d2FybihgQmFkIHZhbHVlLCBmb3Iga2V5ICIke2l9IiwgaW4gSW5mbzogJHthfS5gKX1yZXR1cm4gc2hhZG93KHRoaXMsImRvY3VtZW50SW5mbyIsZSl9Z2V0IGZpbmdlcnByaW50cygpe2NvbnN0IGU9IlwwIi5yZXBlYXQoMTYpO2Z1bmN0aW9uIHZhbGlkYXRlKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdCYmMTY9PT10Lmxlbmd0aCYmdCE9PWV9Y29uc3QgdD10aGlzLnhyZWYudHJhaWxlci5nZXQoIklEIik7bGV0IGksYTtpZihBcnJheS5pc0FycmF5KHQpJiZ2YWxpZGF0ZSh0WzBdKSl7aT1zdHJpbmdUb0J5dGVzKHRbMF0pO3RbMV0hPT10WzBdJiZ2YWxpZGF0ZSh0WzFdKSYmKGE9c3RyaW5nVG9CeXRlcyh0WzFdKSl9ZWxzZSBpPWVvKHRoaXMuc3RyZWFtLmdldEJ5dGVSYW5nZSgwLDEwMjQpLDAsMTAyNCk7cmV0dXJuIHNoYWRvdyh0aGlzLCJmaW5nZXJwcmludHMiLFt0b0hleFV0aWwoaSksYT90b0hleFV0aWwoYSk6bnVsbF0pfWFzeW5jIF9nZXRMaW5lYXJpemF0aW9uUGFnZShlKXtjb25zdHtjYXRhbG9nOnQsbGluZWFyaXphdGlvbjppLHhyZWY6YX09dGhpcyxyPVJlZi5nZXQoaS5vYmplY3ROdW1iZXJGaXJzdCwwKTt0cnl7Y29uc3QgZT1hd2FpdCBhLmZldGNoQXN5bmMocik7aWYoZSBpbnN0YW5jZW9mIERpY3Qpe2xldCBpPWUuZ2V0UmF3KCJUeXBlIik7aSBpbnN0YW5jZW9mIFJlZiYmKGk9YXdhaXQgYS5mZXRjaEFzeW5jKGkpKTtpZihpc05hbWUoaSwiUGFnZSIpfHwhZS5oYXMoIlR5cGUiKSYmIWUuaGFzKCJLaWRzIikmJmUuaGFzKCJDb250ZW50cyIpKXt0LnBhZ2VLaWRzQ291bnRDYWNoZS5oYXMocil8fHQucGFnZUtpZHNDb3VudENhY2hlLnB1dChyLDEpO3QucGFnZUluZGV4Q2FjaGUuaGFzKHIpfHx0LnBhZ2VJbmRleENhY2hlLnB1dChyLDApO3JldHVybltlLHJdfX10aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlRoZSBMaW5lYXJpemF0aW9uIGRpY3Rpb25hcnkgZG9lc24ndCBwb2ludCB0byBhIHZhbGlkIFBhZ2UgZGljdGlvbmFyeS4iKX1jYXRjaChpKXt3YXJuKGBfZ2V0TGluZWFyaXphdGlvblBhZ2U6ICIke2kubWVzc2FnZX0iLmApO3JldHVybiB0LmdldFBhZ2VEaWN0KGUpfX1nZXRQYWdlKGUpe2NvbnN0IHQ9dGhpcy5fcGFnZVByb21pc2VzLmdldChlKTtpZih0KXJldHVybiB0O2NvbnN0e2NhdGFsb2c6aSxsaW5lYXJpemF0aW9uOmEseGZhRmFjdG9yeTpyfT10aGlzO2xldCBzO3M9cj9Qcm9taXNlLnJlc29sdmUoW0RpY3QuZW1wdHksbnVsbF0pOmE/LnBhZ2VGaXJzdD09PWU/dGhpcy5fZ2V0TGluZWFyaXphdGlvblBhZ2UoZSk6aS5nZXRQYWdlRGljdChlKTtzPXMudGhlbigoKFt0LGFdKT0+bmV3IFBhZ2Uoe3BkZk1hbmFnZXI6dGhpcy5wZGZNYW5hZ2VyLHhyZWY6dGhpcy54cmVmLHBhZ2VJbmRleDplLHBhZ2VEaWN0OnQscmVmOmEsZ2xvYmFsSWRGYWN0b3J5OnRoaXMuX2dsb2JhbElkRmFjdG9yeSxmb250Q2FjaGU6aS5mb250Q2FjaGUsYnVpbHRJbkNNYXBDYWNoZTppLmJ1aWx0SW5DTWFwQ2FjaGUsc3RhbmRhcmRGb250RGF0YUNhY2hlOmkuc3RhbmRhcmRGb250RGF0YUNhY2hlLGdsb2JhbEltYWdlQ2FjaGU6aS5nbG9iYWxJbWFnZUNhY2hlLHN5c3RlbUZvbnRDYWNoZTppLnN5c3RlbUZvbnRDYWNoZSxub25CbGVuZE1vZGVzU2V0Omkubm9uQmxlbmRNb2Rlc1NldCx4ZmFGYWN0b3J5OnJ9KSkpO3RoaXMuX3BhZ2VQcm9taXNlcy5zZXQoZSxzKTtyZXR1cm4gc31hc3luYyBjaGVja0ZpcnN0UGFnZShlPSExKXtpZighZSl0cnl7YXdhaXQgdGhpcy5nZXRQYWdlKDApfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBYUmVmRW50cnlFeGNlcHRpb24pe3RoaXMuX3BhZ2VQcm9taXNlcy5kZWxldGUoMCk7YXdhaXQgdGhpcy5jbGVhbnVwKCk7dGhyb3cgbmV3IFhSZWZQYXJzZUV4Y2VwdGlvbn19fWFzeW5jIGNoZWNrTGFzdFBhZ2UoZT0hMSl7Y29uc3R7Y2F0YWxvZzp0LHBkZk1hbmFnZXI6aX09dGhpczt0LnNldEFjdHVhbE51bVBhZ2VzKCk7bGV0IGE7dHJ5e2F3YWl0IFByb21pc2UuYWxsKFtpLmVuc3VyZURvYygieGZhRmFjdG9yeSIpLGkuZW5zdXJlRG9jKCJsaW5lYXJpemF0aW9uIiksaS5lbnN1cmVDYXRhbG9nKCJudW1QYWdlcyIpXSk7aWYodGhpcy54ZmFGYWN0b3J5KXJldHVybjthPXRoaXMubGluZWFyaXphdGlvbj90aGlzLmxpbmVhcml6YXRpb24ubnVtUGFnZXM6dC5udW1QYWdlcztpZighTnVtYmVyLmlzSW50ZWdlcihhKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlBhZ2UgY291bnQgaXMgbm90IGFuIGludGVnZXIuIik7aWYoYTw9MSlyZXR1cm47YXdhaXQgdGhpcy5nZXRQYWdlKGEtMSl9Y2F0Y2gocil7dGhpcy5fcGFnZVByb21pc2VzLmRlbGV0ZShhLTEpO2F3YWl0IHRoaXMuY2xlYW51cCgpO2lmKHIgaW5zdGFuY2VvZiBYUmVmRW50cnlFeGNlcHRpb24mJiFlKXRocm93IG5ldyBYUmVmUGFyc2VFeGNlcHRpb247d2FybihgY2hlY2tMYXN0UGFnZSAtIGludmFsaWQgL1BhZ2VzIHRyZWUgL0NvdW50OiAke2F9LmApO2xldCBzO3RyeXtzPWF3YWl0IHQuZ2V0QWxsUGFnZURpY3RzKGUpfWNhdGNoKGkpe2lmKGkgaW5zdGFuY2VvZiBYUmVmRW50cnlFeGNlcHRpb24mJiFlKXRocm93IG5ldyBYUmVmUGFyc2VFeGNlcHRpb247dC5zZXRBY3R1YWxOdW1QYWdlcygxKTtyZXR1cm59Zm9yKGNvbnN0W2UsW2Escl1db2Ygcyl7bGV0IHM7aWYoYSBpbnN0YW5jZW9mIEVycm9yKXtzPVByb21pc2UucmVqZWN0KGEpO3MuY2F0Y2goKCgpPT57fSkpfWVsc2Ugcz1Qcm9taXNlLnJlc29sdmUobmV3IFBhZ2Uoe3BkZk1hbmFnZXI6aSx4cmVmOnRoaXMueHJlZixwYWdlSW5kZXg6ZSxwYWdlRGljdDphLHJlZjpyLGdsb2JhbElkRmFjdG9yeTp0aGlzLl9nbG9iYWxJZEZhY3RvcnksZm9udENhY2hlOnQuZm9udENhY2hlLGJ1aWx0SW5DTWFwQ2FjaGU6dC5idWlsdEluQ01hcENhY2hlLHN0YW5kYXJkRm9udERhdGFDYWNoZTp0LnN0YW5kYXJkRm9udERhdGFDYWNoZSxnbG9iYWxJbWFnZUNhY2hlOnQuZ2xvYmFsSW1hZ2VDYWNoZSxzeXN0ZW1Gb250Q2FjaGU6dC5zeXN0ZW1Gb250Q2FjaGUsbm9uQmxlbmRNb2Rlc1NldDp0Lm5vbkJsZW5kTW9kZXNTZXQseGZhRmFjdG9yeTpudWxsfSkpO3RoaXMuX3BhZ2VQcm9taXNlcy5zZXQoZSxzKX10LnNldEFjdHVhbE51bVBhZ2VzKHMuc2l6ZSl9fWZvbnRGYWxsYmFjayhlLHQpe3JldHVybiB0aGlzLmNhdGFsb2cuZm9udEZhbGxiYWNrKGUsdCl9YXN5bmMgY2xlYW51cChlPSExKXtyZXR1cm4gdGhpcy5jYXRhbG9nP3RoaXMuY2F0YWxvZy5jbGVhbnVwKGUpOmNsZWFyR2xvYmFsQ2FjaGVzKCl9YXN5bmMjXyhlLHQsaSxhLHIscyxuKXtjb25zdHt4cmVmOm99PXRoaXM7aWYoIShpIGluc3RhbmNlb2YgUmVmKXx8cy5oYXMoaSkpcmV0dXJuO3MucHV0KGkpO2NvbnN0IGc9YXdhaXQgby5mZXRjaEFzeW5jKGkpO2lmKCEoZyBpbnN0YW5jZW9mIERpY3QpKXJldHVybjtpZihnLmhhcygiVCIpKXtjb25zdCB0PXN0cmluZ1RvUERGU3RyaW5nKGF3YWl0IGcuZ2V0QXN5bmMoIlQiKSk7ZT0iIj09PWU/dDpgJHtlfS4ke3R9YH1lbHNle2xldCBpPWc7Zm9yKDs7KXtpPWkuZ2V0UmF3KCJQYXJlbnQiKXx8dDtpZihpIGluc3RhbmNlb2YgUmVmKXtpZihzLmhhcyhpKSlicmVhaztpPWF3YWl0IG8uZmV0Y2hBc3luYyhpKX1pZighKGkgaW5zdGFuY2VvZiBEaWN0KSlicmVhaztpZihpLmhhcygiVCIpKXtjb25zdCB0PXN0cmluZ1RvUERGU3RyaW5nKGF3YWl0IGkuZ2V0QXN5bmMoIlQiKSk7ZT0iIj09PWU/dDpgJHtlfS4ke3R9YDticmVha319fXQmJiFnLmhhcygiUGFyZW50IikmJmlzTmFtZShnLmdldCgiU3VidHlwZSIpLCJXaWRnZXQiKSYmbi5wdXQoaSx0KTthLmhhcyhlKXx8YS5zZXQoZSxbXSk7YS5nZXQoZSkucHVzaChBbm5vdGF0aW9uRmFjdG9yeS5jcmVhdGUobyxpLHIsbnVsbCwhMCxuLG51bGwpLnRoZW4oKGU9PmU/LmdldEZpZWxkT2JqZWN0KCkpKS5jYXRjaCgoZnVuY3Rpb24oZSl7d2FybihgI2NvbGxlY3RGaWVsZE9iamVjdHM6ICIke2V9Ii5gKTtyZXR1cm4gbnVsbH0pKSk7aWYoIWcuaGFzKCJLaWRzIikpcmV0dXJuO2NvbnN0IGM9YXdhaXQgZy5nZXRBc3luYygiS2lkcyIpO2lmKEFycmF5LmlzQXJyYXkoYykpZm9yKGNvbnN0IHQgb2YgYylhd2FpdCB0aGlzLiNfKGUsaSx0LGEscixzLG4pfWdldCBmaWVsZE9iamVjdHMoKXtyZXR1cm4gc2hhZG93KHRoaXMsImZpZWxkT2JqZWN0cyIsdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZURvYygiZm9ybUluZm8iKS50aGVuKChhc3luYyBlPT57aWYoIWUuaGFzRmllbGRzKXJldHVybiBudWxsO2NvbnN0W3QsaV09YXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMucGRmTWFuYWdlci5lbnN1cmVEb2MoImFubm90YXRpb25HbG9iYWxzIiksdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZUNhdGFsb2coImFjcm9Gb3JtIildKTtpZighdClyZXR1cm4gbnVsbDtjb25zdCBhPW5ldyBSZWZTZXQscj1PYmplY3QuY3JlYXRlKG51bGwpLHM9bmV3IE1hcCxuPW5ldyBSZWZTZXRDYWNoZTtmb3IoY29uc3QgZSBvZiBhd2FpdCBpLmdldEFzeW5jKCJGaWVsZHMiKSlhd2FpdCB0aGlzLiNfKCIiLG51bGwsZSxzLHQsYSxuKTtjb25zdCBvPVtdO2Zvcihjb25zdFtlLHRdb2YgcylvLnB1c2goUHJvbWlzZS5hbGwodCkudGhlbigodD0+eyh0PXQuZmlsdGVyKChlPT4hIWUpKSkubGVuZ3RoPjAmJihyW2VdPXQpfSkpKTthd2FpdCBQcm9taXNlLmFsbChvKTtyZXR1cm57YWxsRmllbGRzOnIsb3JwaGFuRmllbGRzOm59fSkpKX1nZXQgaGFzSlNBY3Rpb25zKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJoYXNKU0FjdGlvbnMiLHRoaXMucGRmTWFuYWdlci5lbnN1cmVEb2MoIl9wYXJzZUhhc0pTQWN0aW9ucyIpKX1hc3luYyBfcGFyc2VIYXNKU0FjdGlvbnMoKXtjb25zdFtlLHRdPWF3YWl0IFByb21pc2UuYWxsKFt0aGlzLnBkZk1hbmFnZXIuZW5zdXJlQ2F0YWxvZygianNBY3Rpb25zIiksdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZURvYygiZmllbGRPYmplY3RzIildKTtyZXR1cm4hIWV8fCEhdCYmT2JqZWN0LnZhbHVlcyh0LmFsbEZpZWxkcykuc29tZSgoZT0+ZS5zb21lKChlPT5udWxsIT09ZS5hY3Rpb25zKSkpKX1nZXQgY2FsY3VsYXRpb25PcmRlcklkcygpe2NvbnN0IGU9dGhpcy5jYXRhbG9nLmFjcm9Gb3JtPy5nZXQoIkNPIik7aWYoIUFycmF5LmlzQXJyYXkoZSl8fDA9PT1lLmxlbmd0aClyZXR1cm4gc2hhZG93KHRoaXMsImNhbGN1bGF0aW9uT3JkZXJJZHMiLG51bGwpO2NvbnN0IHQ9W107Zm9yKGNvbnN0IGkgb2YgZSlpIGluc3RhbmNlb2YgUmVmJiZ0LnB1c2goaS50b1N0cmluZygpKTtyZXR1cm4gc2hhZG93KHRoaXMsImNhbGN1bGF0aW9uT3JkZXJJZHMiLHQubGVuZ3RoP3Q6bnVsbCl9Z2V0IGFubm90YXRpb25HbG9iYWxzKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJhbm5vdGF0aW9uR2xvYmFscyIsQW5ub3RhdGlvbkZhY3RvcnkuY3JlYXRlR2xvYmFscyh0aGlzLnBkZk1hbmFnZXIpKX19Y2xhc3MgQmFzZVBkZk1hbmFnZXJ7Y29uc3RydWN0b3IoZSl7dGhpcy5fZG9jQmFzZVVybD1mdW5jdGlvbiBwYXJzZURvY0Jhc2VVcmwoZSl7aWYoZSl7Y29uc3QgdD1jcmVhdGVWYWxpZEFic29sdXRlVXJsKGUpO2lmKHQpcmV0dXJuIHQuaHJlZjt3YXJuKGBJbnZhbGlkIGFic29sdXRlIGRvY0Jhc2VVcmw6ICIke2V9Ii5gKX1yZXR1cm4gbnVsbH0oZS5kb2NCYXNlVXJsKTt0aGlzLl9kb2NJZD1lLmRvY0lkO3RoaXMuX3Bhc3N3b3JkPWUucGFzc3dvcmQ7dGhpcy5lbmFibGVYZmE9ZS5lbmFibGVYZmE7ZS5ldmFsdWF0b3JPcHRpb25zLmlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkJiY9RmVhdHVyZVRlc3QuaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQ7ZS5ldmFsdWF0b3JPcHRpb25zLmlzSW1hZ2VEZWNvZGVyU3VwcG9ydGVkJiY9RmVhdHVyZVRlc3QuaXNJbWFnZURlY29kZXJTdXBwb3J0ZWQ7dGhpcy5ldmFsdWF0b3JPcHRpb25zPU9iamVjdC5mcmVlemUoZS5ldmFsdWF0b3JPcHRpb25zKX1nZXQgZG9jSWQoKXtyZXR1cm4gdGhpcy5fZG9jSWR9Z2V0IHBhc3N3b3JkKCl7cmV0dXJuIHRoaXMuX3Bhc3N3b3JkfWdldCBkb2NCYXNlVXJsKCl7cmV0dXJuIHRoaXMuX2RvY0Jhc2VVcmx9Z2V0IGNhdGFsb2coKXtyZXR1cm4gdGhpcy5wZGZEb2N1bWVudC5jYXRhbG9nfWVuc3VyZURvYyhlLHQpe3JldHVybiB0aGlzLmVuc3VyZSh0aGlzLnBkZkRvY3VtZW50LGUsdCl9ZW5zdXJlWFJlZihlLHQpe3JldHVybiB0aGlzLmVuc3VyZSh0aGlzLnBkZkRvY3VtZW50LnhyZWYsZSx0KX1lbnN1cmVDYXRhbG9nKGUsdCl7cmV0dXJuIHRoaXMuZW5zdXJlKHRoaXMucGRmRG9jdW1lbnQuY2F0YWxvZyxlLHQpfWdldFBhZ2UoZSl7cmV0dXJuIHRoaXMucGRmRG9jdW1lbnQuZ2V0UGFnZShlKX1mb250RmFsbGJhY2soZSx0KXtyZXR1cm4gdGhpcy5wZGZEb2N1bWVudC5mb250RmFsbGJhY2soZSx0KX1sb2FkWGZhRm9udHMoZSx0KXtyZXR1cm4gdGhpcy5wZGZEb2N1bWVudC5sb2FkWGZhRm9udHMoZSx0KX1sb2FkWGZhSW1hZ2VzKCl7cmV0dXJuIHRoaXMucGRmRG9jdW1lbnQubG9hZFhmYUltYWdlcygpfXNlcmlhbGl6ZVhmYURhdGEoZSl7cmV0dXJuIHRoaXMucGRmRG9jdW1lbnQuc2VyaWFsaXplWGZhRGF0YShlKX1jbGVhbnVwKGU9ITEpe3JldHVybiB0aGlzLnBkZkRvY3VtZW50LmNsZWFudXAoZSl9YXN5bmMgZW5zdXJlKGUsdCxpKXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgbWV0aG9kIGBlbnN1cmVgIGNhbGxlZCIpfXJlcXVlc3RSYW5nZShlLHQpe3VucmVhY2hhYmxlKCJBYnN0cmFjdCBtZXRob2QgYHJlcXVlc3RSYW5nZWAgY2FsbGVkIil9cmVxdWVzdExvYWRlZFN0cmVhbShlPSExKXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgbWV0aG9kIGByZXF1ZXN0TG9hZGVkU3RyZWFtYCBjYWxsZWQiKX1zZW5kUHJvZ3Jlc3NpdmVEYXRhKGUpe3VucmVhY2hhYmxlKCJBYnN0cmFjdCBtZXRob2QgYHNlbmRQcm9ncmVzc2l2ZURhdGFgIGNhbGxlZCIpfXVwZGF0ZVBhc3N3b3JkKGUpe3RoaXMuX3Bhc3N3b3JkPWV9dGVybWluYXRlKGUpe3VucmVhY2hhYmxlKCJBYnN0cmFjdCBtZXRob2QgYHRlcm1pbmF0ZWAgY2FsbGVkIil9fWNsYXNzIExvY2FsUGRmTWFuYWdlciBleHRlbmRzIEJhc2VQZGZNYW5hZ2Vye2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO2NvbnN0IHQ9bmV3IFN0cmVhbShlLnNvdXJjZSk7dGhpcy5wZGZEb2N1bWVudD1uZXcgUERGRG9jdW1lbnQodGhpcyx0KTt0aGlzLl9sb2FkZWRTdHJlYW1Qcm9taXNlPVByb21pc2UucmVzb2x2ZSh0KX1hc3luYyBlbnN1cmUoZSx0LGkpe2NvbnN0IGE9ZVt0XTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYT9hLmFwcGx5KGUsaSk6YX1yZXF1ZXN0UmFuZ2UoZSx0KXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCl9cmVxdWVzdExvYWRlZFN0cmVhbShlPSExKXtyZXR1cm4gdGhpcy5fbG9hZGVkU3RyZWFtUHJvbWlzZX10ZXJtaW5hdGUoZSl7fX1jbGFzcyBOZXR3b3JrUGRmTWFuYWdlciBleHRlbmRzIEJhc2VQZGZNYW5hZ2Vye2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO3RoaXMuc3RyZWFtTWFuYWdlcj1uZXcgQ2h1bmtlZFN0cmVhbU1hbmFnZXIoZS5zb3VyY2Use21zZ0hhbmRsZXI6ZS5oYW5kbGVyLGxlbmd0aDplLmxlbmd0aCxkaXNhYmxlQXV0b0ZldGNoOmUuZGlzYWJsZUF1dG9GZXRjaCxyYW5nZUNodW5rU2l6ZTplLnJhbmdlQ2h1bmtTaXplfSk7dGhpcy5wZGZEb2N1bWVudD1uZXcgUERGRG9jdW1lbnQodGhpcyx0aGlzLnN0cmVhbU1hbmFnZXIuZ2V0U3RyZWFtKCkpfWFzeW5jIGVuc3VyZShlLHQsaSl7dHJ5e2NvbnN0IGE9ZVt0XTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYT9hLmFwcGx5KGUsaSk6YX1jYXRjaChhKXtpZighKGEgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbikpdGhyb3cgYTthd2FpdCB0aGlzLnJlcXVlc3RSYW5nZShhLmJlZ2luLGEuZW5kKTtyZXR1cm4gdGhpcy5lbnN1cmUoZSx0LGkpfX1yZXF1ZXN0UmFuZ2UoZSx0KXtyZXR1cm4gdGhpcy5zdHJlYW1NYW5hZ2VyLnJlcXVlc3RSYW5nZShlLHQpfXJlcXVlc3RMb2FkZWRTdHJlYW0oZT0hMSl7cmV0dXJuIHRoaXMuc3RyZWFtTWFuYWdlci5yZXF1ZXN0QWxsQ2h1bmtzKGUpfXNlbmRQcm9ncmVzc2l2ZURhdGEoZSl7dGhpcy5zdHJlYW1NYW5hZ2VyLm9uUmVjZWl2ZURhdGEoe2NodW5rOmV9KX10ZXJtaW5hdGUoZSl7dGhpcy5zdHJlYW1NYW5hZ2VyLmFib3J0KGUpfX1jb25zdCBvbz0xLGdvPTIsSW89MSxjbz0yLGxvPTMsaG89NCxDbz01LEJvPTYsUW89NyxFbz04O2Z1bmN0aW9uIG9uRm4oKXt9ZnVuY3Rpb24gd3JhcFJlYXNvbihlKXtpZihlIGluc3RhbmNlb2YgQWJvcnRFeGNlcHRpb258fGUgaW5zdGFuY2VvZiBJbnZhbGlkUERGRXhjZXB0aW9ufHxlIGluc3RhbmNlb2YgTWlzc2luZ1BERkV4Y2VwdGlvbnx8ZSBpbnN0YW5jZW9mIFBhc3N3b3JkRXhjZXB0aW9ufHxlIGluc3RhbmNlb2YgVW5leHBlY3RlZFJlc3BvbnNlRXhjZXB0aW9ufHxlIGluc3RhbmNlb2YgVW5rbm93bkVycm9yRXhjZXB0aW9uKXJldHVybiBlO2UgaW5zdGFuY2VvZiBFcnJvcnx8Im9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZXx8dW5yZWFjaGFibGUoJ3dyYXBSZWFzb246IEV4cGVjdGVkICJyZWFzb24iIHRvIGJlIGEgKHBvc3NpYmx5IGNsb25lZCkgRXJyb3IuJyk7c3dpdGNoKGUubmFtZSl7Y2FzZSJBYm9ydEV4Y2VwdGlvbiI6cmV0dXJuIG5ldyBBYm9ydEV4Y2VwdGlvbihlLm1lc3NhZ2UpO2Nhc2UiSW52YWxpZFBERkV4Y2VwdGlvbiI6cmV0dXJuIG5ldyBJbnZhbGlkUERGRXhjZXB0aW9uKGUubWVzc2FnZSk7Y2FzZSJNaXNzaW5nUERGRXhjZXB0aW9uIjpyZXR1cm4gbmV3IE1pc3NpbmdQREZFeGNlcHRpb24oZS5tZXNzYWdlKTtjYXNlIlBhc3N3b3JkRXhjZXB0aW9uIjpyZXR1cm4gbmV3IFBhc3N3b3JkRXhjZXB0aW9uKGUubWVzc2FnZSxlLmNvZGUpO2Nhc2UiVW5leHBlY3RlZFJlc3BvbnNlRXhjZXB0aW9uIjpyZXR1cm4gbmV3IFVuZXhwZWN0ZWRSZXNwb25zZUV4Y2VwdGlvbihlLm1lc3NhZ2UsZS5zdGF0dXMpO2Nhc2UiVW5rbm93bkVycm9yRXhjZXB0aW9uIjpyZXR1cm4gbmV3IFVua25vd25FcnJvckV4Y2VwdGlvbihlLm1lc3NhZ2UsZS5kZXRhaWxzKX1yZXR1cm4gbmV3IFVua25vd25FcnJvckV4Y2VwdGlvbihlLm1lc3NhZ2UsZS50b1N0cmluZygpKX1jbGFzcyBNZXNzYWdlSGFuZGxlcnsjej1uZXcgQWJvcnRDb250cm9sbGVyO2NvbnN0cnVjdG9yKGUsdCxpKXt0aGlzLnNvdXJjZU5hbWU9ZTt0aGlzLnRhcmdldE5hbWU9dDt0aGlzLmNvbU9iaj1pO3RoaXMuY2FsbGJhY2tJZD0xO3RoaXMuc3RyZWFtSWQ9MTt0aGlzLnN0cmVhbVNpbmtzPU9iamVjdC5jcmVhdGUobnVsbCk7dGhpcy5zdHJlYW1Db250cm9sbGVycz1PYmplY3QuY3JlYXRlKG51bGwpO3RoaXMuY2FsbGJhY2tDYXBhYmlsaXRpZXM9T2JqZWN0LmNyZWF0ZShudWxsKTt0aGlzLmFjdGlvbkhhbmRsZXI9T2JqZWN0LmNyZWF0ZShudWxsKTtpLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHRoaXMuIyQuYmluZCh0aGlzKSx7c2lnbmFsOnRoaXMuI3ouc2lnbmFsfSl9IyQoe2RhdGE6ZX0pe2lmKGUudGFyZ2V0TmFtZSE9PXRoaXMuc291cmNlTmFtZSlyZXR1cm47aWYoZS5zdHJlYW0pe3RoaXMuI0FBKGUpO3JldHVybn1pZihlLmNhbGxiYWNrKXtjb25zdCB0PWUuY2FsbGJhY2tJZCxpPXRoaXMuY2FsbGJhY2tDYXBhYmlsaXRpZXNbdF07aWYoIWkpdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcmVzb2x2ZSBjYWxsYmFjayAke3R9YCk7ZGVsZXRlIHRoaXMuY2FsbGJhY2tDYXBhYmlsaXRpZXNbdF07aWYoZS5jYWxsYmFjaz09PW9vKWkucmVzb2x2ZShlLmRhdGEpO2Vsc2V7aWYoZS5jYWxsYmFjayE9PWdvKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBjYWxsYmFjayBjYXNlIik7aS5yZWplY3Qod3JhcFJlYXNvbihlLnJlYXNvbikpfXJldHVybn1jb25zdCB0PXRoaXMuYWN0aW9uSGFuZGxlcltlLmFjdGlvbl07aWYoIXQpdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGFjdGlvbiBmcm9tIHdvcmtlcjogJHtlLmFjdGlvbn1gKTtpZihlLmNhbGxiYWNrSWQpe2NvbnN0IGk9dGhpcy5zb3VyY2VOYW1lLGE9ZS5zb3VyY2VOYW1lLHI9dGhpcy5jb21PYmo7UHJvbWlzZS50cnkodCxlLmRhdGEpLnRoZW4oKGZ1bmN0aW9uKHQpe3IucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6aSx0YXJnZXROYW1lOmEsY2FsbGJhY2s6b28sY2FsbGJhY2tJZDplLmNhbGxiYWNrSWQsZGF0YTp0fSl9KSwoZnVuY3Rpb24odCl7ci5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTppLHRhcmdldE5hbWU6YSxjYWxsYmFjazpnbyxjYWxsYmFja0lkOmUuY2FsbGJhY2tJZCxyZWFzb246d3JhcFJlYXNvbih0KX0pfSkpfWVsc2UgZS5zdHJlYW1JZD90aGlzLiNlQShlKTp0KGUuZGF0YSl9b24oZSx0KXtjb25zdCBpPXRoaXMuYWN0aW9uSGFuZGxlcjtpZihpW2VdKXRocm93IG5ldyBFcnJvcihgVGhlcmUgaXMgYWxyZWFkeSBhbiBhY3Rpb25OYW1lIGNhbGxlZCAiJHtlfSJgKTtpW2VdPXR9c2VuZChlLHQsaSl7dGhpcy5jb21PYmoucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6dGhpcy5zb3VyY2VOYW1lLHRhcmdldE5hbWU6dGhpcy50YXJnZXROYW1lLGFjdGlvbjplLGRhdGE6dH0saSl9c2VuZFdpdGhQcm9taXNlKGUsdCxpKXtjb25zdCBhPXRoaXMuY2FsbGJhY2tJZCsrLHI9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7dGhpcy5jYWxsYmFja0NhcGFiaWxpdGllc1thXT1yO3RyeXt0aGlzLmNvbU9iai5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTp0aGlzLnNvdXJjZU5hbWUsdGFyZ2V0TmFtZTp0aGlzLnRhcmdldE5hbWUsYWN0aW9uOmUsY2FsbGJhY2tJZDphLGRhdGE6dH0saSl9Y2F0Y2goZSl7ci5yZWplY3QoZSl9cmV0dXJuIHIucHJvbWlzZX1zZW5kV2l0aFN0cmVhbShlLHQsaSxhKXtjb25zdCByPXRoaXMuc3RyZWFtSWQrKyxzPXRoaXMuc291cmNlTmFtZSxuPXRoaXMudGFyZ2V0TmFtZSxvPXRoaXMuY29tT2JqO3JldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe3N0YXJ0Omk9Pntjb25zdCBnPVByb21pc2Uud2l0aFJlc29sdmVycygpO3RoaXMuc3RyZWFtQ29udHJvbGxlcnNbcl09e2NvbnRyb2xsZXI6aSxzdGFydENhbGw6ZyxwdWxsQ2FsbDpudWxsLGNhbmNlbENhbGw6bnVsbCxpc0Nsb3NlZDohMX07by5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTpzLHRhcmdldE5hbWU6bixhY3Rpb246ZSxzdHJlYW1JZDpyLGRhdGE6dCxkZXNpcmVkU2l6ZTppLmRlc2lyZWRTaXplfSxhKTtyZXR1cm4gZy5wcm9taXNlfSxwdWxsOmU9Pntjb25zdCB0PVByb21pc2Uud2l0aFJlc29sdmVycygpO3RoaXMuc3RyZWFtQ29udHJvbGxlcnNbcl0ucHVsbENhbGw9dDtvLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOnMsdGFyZ2V0TmFtZTpuLHN0cmVhbTpCbyxzdHJlYW1JZDpyLGRlc2lyZWRTaXplOmUuZGVzaXJlZFNpemV9KTtyZXR1cm4gdC5wcm9taXNlfSxjYW5jZWw6ZT0+e2Fzc2VydChlIGluc3RhbmNlb2YgRXJyb3IsImNhbmNlbCBtdXN0IGhhdmUgYSB2YWxpZCByZWFzb24iKTtjb25zdCB0PVByb21pc2Uud2l0aFJlc29sdmVycygpO3RoaXMuc3RyZWFtQ29udHJvbGxlcnNbcl0uY2FuY2VsQ2FsbD10O3RoaXMuc3RyZWFtQ29udHJvbGxlcnNbcl0uaXNDbG9zZWQ9ITA7by5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTpzLHRhcmdldE5hbWU6bixzdHJlYW06SW8sc3RyZWFtSWQ6cixyZWFzb246d3JhcFJlYXNvbihlKX0pO3JldHVybiB0LnByb21pc2V9fSxpKX0jZUEoZSl7Y29uc3QgdD1lLnN0cmVhbUlkLGk9dGhpcy5zb3VyY2VOYW1lLGE9ZS5zb3VyY2VOYW1lLHI9dGhpcy5jb21PYmoscz10aGlzLG49dGhpcy5hY3Rpb25IYW5kbGVyW2UuYWN0aW9uXSxvPXtlbnF1ZXVlKGUscz0xLG4pe2lmKHRoaXMuaXNDYW5jZWxsZWQpcmV0dXJuO2NvbnN0IG89dGhpcy5kZXNpcmVkU2l6ZTt0aGlzLmRlc2lyZWRTaXplLT1zO2lmKG8+MCYmdGhpcy5kZXNpcmVkU2l6ZTw9MCl7dGhpcy5zaW5rQ2FwYWJpbGl0eT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKTt0aGlzLnJlYWR5PXRoaXMuc2lua0NhcGFiaWxpdHkucHJvbWlzZX1yLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOmksdGFyZ2V0TmFtZTphLHN0cmVhbTpobyxzdHJlYW1JZDp0LGNodW5rOmV9LG4pfSxjbG9zZSgpe2lmKCF0aGlzLmlzQ2FuY2VsbGVkKXt0aGlzLmlzQ2FuY2VsbGVkPSEwO3IucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6aSx0YXJnZXROYW1lOmEsc3RyZWFtOmxvLHN0cmVhbUlkOnR9KTtkZWxldGUgcy5zdHJlYW1TaW5rc1t0XX19LGVycm9yKGUpe2Fzc2VydChlIGluc3RhbmNlb2YgRXJyb3IsImVycm9yIG11c3QgaGF2ZSBhIHZhbGlkIHJlYXNvbiIpO2lmKCF0aGlzLmlzQ2FuY2VsbGVkKXt0aGlzLmlzQ2FuY2VsbGVkPSEwO3IucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6aSx0YXJnZXROYW1lOmEsc3RyZWFtOkNvLHN0cmVhbUlkOnQscmVhc29uOndyYXBSZWFzb24oZSl9KX19LHNpbmtDYXBhYmlsaXR5OlByb21pc2Uud2l0aFJlc29sdmVycygpLG9uUHVsbDpudWxsLG9uQ2FuY2VsOm51bGwsaXNDYW5jZWxsZWQ6ITEsZGVzaXJlZFNpemU6ZS5kZXNpcmVkU2l6ZSxyZWFkeTpudWxsfTtvLnNpbmtDYXBhYmlsaXR5LnJlc29sdmUoKTtvLnJlYWR5PW8uc2lua0NhcGFiaWxpdHkucHJvbWlzZTt0aGlzLnN0cmVhbVNpbmtzW3RdPW87UHJvbWlzZS50cnkobixlLmRhdGEsbykudGhlbigoZnVuY3Rpb24oKXtyLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOmksdGFyZ2V0TmFtZTphLHN0cmVhbTpFbyxzdHJlYW1JZDp0LHN1Y2Nlc3M6ITB9KX0pLChmdW5jdGlvbihlKXtyLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOmksdGFyZ2V0TmFtZTphLHN0cmVhbTpFbyxzdHJlYW1JZDp0LHJlYXNvbjp3cmFwUmVhc29uKGUpfSl9KSl9I0FBKGUpe2NvbnN0IHQ9ZS5zdHJlYW1JZCxpPXRoaXMuc291cmNlTmFtZSxhPWUuc291cmNlTmFtZSxyPXRoaXMuY29tT2JqLHM9dGhpcy5zdHJlYW1Db250cm9sbGVyc1t0XSxuPXRoaXMuc3RyZWFtU2lua3NbdF07c3dpdGNoKGUuc3RyZWFtKXtjYXNlIEVvOmUuc3VjY2Vzcz9zLnN0YXJ0Q2FsbC5yZXNvbHZlKCk6cy5zdGFydENhbGwucmVqZWN0KHdyYXBSZWFzb24oZS5yZWFzb24pKTticmVhaztjYXNlIFFvOmUuc3VjY2Vzcz9zLnB1bGxDYWxsLnJlc29sdmUoKTpzLnB1bGxDYWxsLnJlamVjdCh3cmFwUmVhc29uKGUucmVhc29uKSk7YnJlYWs7Y2FzZSBCbzppZighbil7ci5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTppLHRhcmdldE5hbWU6YSxzdHJlYW06UW8sc3RyZWFtSWQ6dCxzdWNjZXNzOiEwfSk7YnJlYWt9bi5kZXNpcmVkU2l6ZTw9MCYmZS5kZXNpcmVkU2l6ZT4wJiZuLnNpbmtDYXBhYmlsaXR5LnJlc29sdmUoKTtuLmRlc2lyZWRTaXplPWUuZGVzaXJlZFNpemU7UHJvbWlzZS50cnkobi5vblB1bGx8fG9uRm4pLnRoZW4oKGZ1bmN0aW9uKCl7ci5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTppLHRhcmdldE5hbWU6YSxzdHJlYW06UW8sc3RyZWFtSWQ6dCxzdWNjZXNzOiEwfSl9KSwoZnVuY3Rpb24oZSl7ci5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTppLHRhcmdldE5hbWU6YSxzdHJlYW06UW8sc3RyZWFtSWQ6dCxyZWFzb246d3JhcFJlYXNvbihlKX0pfSkpO2JyZWFrO2Nhc2UgaG86YXNzZXJ0KHMsImVucXVldWUgc2hvdWxkIGhhdmUgc3RyZWFtIGNvbnRyb2xsZXIiKTtpZihzLmlzQ2xvc2VkKWJyZWFrO3MuY29udHJvbGxlci5lbnF1ZXVlKGUuY2h1bmspO2JyZWFrO2Nhc2UgbG86YXNzZXJ0KHMsImNsb3NlIHNob3VsZCBoYXZlIHN0cmVhbSBjb250cm9sbGVyIik7aWYocy5pc0Nsb3NlZClicmVhaztzLmlzQ2xvc2VkPSEwO3MuY29udHJvbGxlci5jbG9zZSgpO3RoaXMuI3RBKHMsdCk7YnJlYWs7Y2FzZSBDbzphc3NlcnQocywiZXJyb3Igc2hvdWxkIGhhdmUgc3RyZWFtIGNvbnRyb2xsZXIiKTtzLmNvbnRyb2xsZXIuZXJyb3Iod3JhcFJlYXNvbihlLnJlYXNvbikpO3RoaXMuI3RBKHMsdCk7YnJlYWs7Y2FzZSBjbzplLnN1Y2Nlc3M/cy5jYW5jZWxDYWxsLnJlc29sdmUoKTpzLmNhbmNlbENhbGwucmVqZWN0KHdyYXBSZWFzb24oZS5yZWFzb24pKTt0aGlzLiN0QShzLHQpO2JyZWFrO2Nhc2UgSW86aWYoIW4pYnJlYWs7Y29uc3Qgbz13cmFwUmVhc29uKGUucmVhc29uKTtQcm9taXNlLnRyeShuLm9uQ2FuY2VsfHxvbkZuLG8pLnRoZW4oKGZ1bmN0aW9uKCl7ci5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTppLHRhcmdldE5hbWU6YSxzdHJlYW06Y28sc3RyZWFtSWQ6dCxzdWNjZXNzOiEwfSl9KSwoZnVuY3Rpb24oZSl7ci5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTppLHRhcmdldE5hbWU6YSxzdHJlYW06Y28sc3RyZWFtSWQ6dCxyZWFzb246d3JhcFJlYXNvbihlKX0pfSkpO24uc2lua0NhcGFiaWxpdHkucmVqZWN0KG8pO24uaXNDYW5jZWxsZWQ9ITA7ZGVsZXRlIHRoaXMuc3RyZWFtU2lua3NbdF07YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgc3RyZWFtIGNhc2UiKX19YXN5bmMjdEEoZSx0KXthd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoW2Uuc3RhcnRDYWxsPy5wcm9taXNlLGUucHVsbENhbGw/LnByb21pc2UsZS5jYW5jZWxDYWxsPy5wcm9taXNlXSk7ZGVsZXRlIHRoaXMuc3RyZWFtQ29udHJvbGxlcnNbdF19ZGVzdHJveSgpe3RoaXMuI3o/LmFib3J0KCk7dGhpcy4jej1udWxsfX1hc3luYyBmdW5jdGlvbiB3cml0ZU9iamVjdChlLHQsaSx7ZW5jcnlwdDphPW51bGx9KXtjb25zdCByPWE/LmNyZWF0ZUNpcGhlclRyYW5zZm9ybShlLm51bSxlLmdlbik7aS5wdXNoKGAke2UubnVtfSAke2UuZ2VufSBvYmpcbmApO3QgaW5zdGFuY2VvZiBEaWN0P2F3YWl0IHdyaXRlRGljdCh0LGkscik6dCBpbnN0YW5jZW9mIEJhc2VTdHJlYW0/YXdhaXQgd3JpdGVTdHJlYW0odCxpLHIpOihBcnJheS5pc0FycmF5KHQpfHxBcnJheUJ1ZmZlci5pc1ZpZXcodCkpJiZhd2FpdCB3cml0ZUFycmF5KHQsaSxyKTtpLnB1c2goIlxuZW5kb2JqXG4iKX1hc3luYyBmdW5jdGlvbiB3cml0ZURpY3QoZSx0LGkpe3QucHVzaCgiPDwiKTtmb3IoY29uc3QgYSBvZiBlLmdldEtleXMoKSl7dC5wdXNoKGAgLyR7ZXNjYXBlUERGTmFtZShhKX0gYCk7YXdhaXQgd3JpdGVWYWx1ZShlLmdldFJhdyhhKSx0LGkpfXQucHVzaCgiPj4iKX1hc3luYyBmdW5jdGlvbiB3cml0ZVN0cmVhbShlLHQsaSl7bGV0IGE9ZS5nZXRCeXRlcygpO2NvbnN0e2RpY3Q6cn09ZSxbcyxuXT1hd2FpdCBQcm9taXNlLmFsbChbci5nZXRBc3luYygiRmlsdGVyIiksci5nZXRBc3luYygiRGVjb2RlUGFybXMiKV0pLG89aXNOYW1lKEFycmF5LmlzQXJyYXkocyk/YXdhaXQgci54cmVmLmZldGNoSWZSZWZBc3luYyhzWzBdKTpzLCJGbGF0ZURlY29kZSIpO2lmKGEubGVuZ3RoPj0yNTZ8fG8pdHJ5e2NvbnN0IGU9bmV3IENvbXByZXNzaW9uU3RyZWFtKCJkZWZsYXRlIiksdD1lLndyaXRhYmxlLmdldFdyaXRlcigpO2F3YWl0IHQucmVhZHk7dC53cml0ZShhKS50aGVuKChhc3luYygpPT57YXdhaXQgdC5yZWFkeTthd2FpdCB0LmNsb3NlKCl9KSkuY2F0Y2goKCgpPT57fSkpO2NvbnN0IGk9YXdhaXQgbmV3IFJlc3BvbnNlKGUucmVhZGFibGUpLmFycmF5QnVmZmVyKCk7YT1uZXcgVWludDhBcnJheShpKTtsZXQgZyxjO2lmKHMpe2lmKCFvKXtnPUFycmF5LmlzQXJyYXkocyk/W05hbWUuZ2V0KCJGbGF0ZURlY29kZSIpLC4uLnNdOltOYW1lLmdldCgiRmxhdGVEZWNvZGUiKSxzXTtuJiYoYz1BcnJheS5pc0FycmF5KG4pP1tudWxsLC4uLm5dOltudWxsLG5dKX19ZWxzZSBnPU5hbWUuZ2V0KCJGbGF0ZURlY29kZSIpO2cmJnIuc2V0KCJGaWx0ZXIiLGcpO2MmJnIuc2V0KCJEZWNvZGVQYXJtcyIsYyl9Y2F0Y2goZSl7aW5mbyhgd3JpdGVTdHJlYW0gLSBjYW5ub3QgY29tcHJlc3MgZGF0YTogIiR7ZX0iLmApfWxldCBnPWJ5dGVzVG9TdHJpbmcoYSk7aSYmKGc9aS5lbmNyeXB0U3RyaW5nKGcpKTtyLnNldCgiTGVuZ3RoIixnLmxlbmd0aCk7YXdhaXQgd3JpdGVEaWN0KHIsdCxpKTt0LnB1c2goIiBzdHJlYW1cbiIsZywiXG5lbmRzdHJlYW0iKX1hc3luYyBmdW5jdGlvbiB3cml0ZUFycmF5KGUsdCxpKXt0LnB1c2goIlsiKTtsZXQgYT0hMDtmb3IoY29uc3QgciBvZiBlKXthP2E9ITE6dC5wdXNoKCIgIik7YXdhaXQgd3JpdGVWYWx1ZShyLHQsaSl9dC5wdXNoKCJdIil9YXN5bmMgZnVuY3Rpb24gd3JpdGVWYWx1ZShlLHQsaSl7aWYoZSBpbnN0YW5jZW9mIE5hbWUpdC5wdXNoKGAvJHtlc2NhcGVQREZOYW1lKGUubmFtZSl9YCk7ZWxzZSBpZihlIGluc3RhbmNlb2YgUmVmKXQucHVzaChgJHtlLm51bX0gJHtlLmdlbn0gUmApO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShlKXx8QXJyYXlCdWZmZXIuaXNWaWV3KGUpKWF3YWl0IHdyaXRlQXJyYXkoZSx0LGkpO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBlKXtpJiYoZT1pLmVuY3J5cHRTdHJpbmcoZSkpO3QucHVzaChgKCR7ZXNjYXBlU3RyaW5nKGUpfSlgKX1lbHNlIm51bWJlciI9PXR5cGVvZiBlP3QucHVzaChudW1iZXJUb1N0cmluZyhlKSk6ImJvb2xlYW4iPT10eXBlb2YgZT90LnB1c2goZS50b1N0cmluZygpKTplIGluc3RhbmNlb2YgRGljdD9hd2FpdCB3cml0ZURpY3QoZSx0LGkpOmUgaW5zdGFuY2VvZiBCYXNlU3RyZWFtP2F3YWl0IHdyaXRlU3RyZWFtKGUsdCxpKTpudWxsPT09ZT90LnB1c2goIm51bGwiKTp3YXJuKGBVbmhhbmRsZWQgdmFsdWUgaW4gd3JpdGVyOiAke3R5cGVvZiBlfSwgcGxlYXNlIGZpbGUgYSBidWcuYCl9ZnVuY3Rpb24gd3JpdGVJbnQoZSx0LGksYSl7Zm9yKGxldCByPXQraS0xO3I+aS0xO3ItLSl7YVtyXT0yNTUmZTtlPj49OH1yZXR1cm4gaSt0fWZ1bmN0aW9uIHdyaXRlU3RyaW5nKGUsdCxpKXtmb3IobGV0IGE9MCxyPWUubGVuZ3RoO2E8cjthKyspaVt0K2FdPTI1NSZlLmNoYXJDb2RlQXQoYSl9ZnVuY3Rpb24gdXBkYXRlWEZBKHt4ZmFEYXRhOmUseGZhRGF0YXNldHNSZWY6dCxjaGFuZ2VzOmkseHJlZjphfSl7aWYobnVsbD09PWUpe2U9ZnVuY3Rpb24gd3JpdGVYRkFEYXRhRm9yQWNyb2Zvcm0oZSx0KXtjb25zdCBpPW5ldyBTaW1wbGVYTUxQYXJzZXIoe2hhc0F0dHJpYnV0ZXM6ITB9KS5wYXJzZUZyb21TdHJpbmcoZSk7Zm9yKGNvbnN0e3hmYTplfW9mIHQpe2lmKCFlKWNvbnRpbnVlO2NvbnN0e3BhdGg6dCx2YWx1ZTphfT1lO2lmKCF0KWNvbnRpbnVlO2NvbnN0IHI9cGFyc2VYRkFQYXRoKHQpO2xldCBzPWkuZG9jdW1lbnRFbGVtZW50LnNlYXJjaE5vZGUociwwKTshcyYmci5sZW5ndGg+MSYmKHM9aS5kb2N1bWVudEVsZW1lbnQuc2VhcmNoTm9kZShbci5hdCgtMSldLDApKTtzP3MuY2hpbGROb2Rlcz1BcnJheS5pc0FycmF5KGEpP2EubWFwKChlPT5uZXcgU2ltcGxlRE9NTm9kZSgidmFsdWUiLGUpKSk6W25ldyBTaW1wbGVET01Ob2RlKCIjdGV4dCIsYSldOndhcm4oYE5vZGUgbm90IGZvdW5kIGZvciBwYXRoOiAke3R9YCl9Y29uc3QgYT1bXTtpLmRvY3VtZW50RWxlbWVudC5kdW1wKGEpO3JldHVybiBhLmpvaW4oIiIpfShhLmZldGNoSWZSZWYodCkuZ2V0U3RyaW5nKCksaSl9Y29uc3Qgcj1uZXcgU3RyaW5nU3RyZWFtKGUpO3IuZGljdD1uZXcgRGljdChhKTtyLmRpY3Quc2V0KCJUeXBlIixOYW1lLmdldCgiRW1iZWRkZWRGaWxlIikpO2kucHV0KHQse2RhdGE6cn0pfWZ1bmN0aW9uIGdldEluZGV4ZXMoZSl7Y29uc3QgdD1bXTtmb3IoY29uc3R7cmVmOml9b2YgZSlpLm51bT09PXQuYXQoLTIpK3QuYXQoLTEpP3RbdC5sZW5ndGgtMV0rPTE6dC5wdXNoKGkubnVtLDEpO3JldHVybiB0fWZ1bmN0aW9uIGNvbXB1dGVJRHMoZSx0LGkpe2lmKEFycmF5LmlzQXJyYXkodC5maWxlSWRzKSYmdC5maWxlSWRzLmxlbmd0aD4wKXtjb25zdCBhPWZ1bmN0aW9uIGNvbXB1dGVNRDUoZSx0KXtjb25zdCBpPU1hdGguZmxvb3IoRGF0ZS5ub3coKS8xZTMpLGE9dC5maWxlbmFtZXx8IiIscj1baS50b1N0cmluZygpLGEsZS50b1N0cmluZygpXTtsZXQgcz1yLnJlZHVjZSgoKGUsdCk9PmUrdC5sZW5ndGgpLDApO2Zvcihjb25zdCBlIG9mIE9iamVjdC52YWx1ZXModC5pbmZvKSl7ci5wdXNoKGUpO3MrPWUubGVuZ3RofWNvbnN0IG49bmV3IFVpbnQ4QXJyYXkocyk7bGV0IG89MDtmb3IoY29uc3QgZSBvZiByKXt3cml0ZVN0cmluZyhlLG8sbik7bys9ZS5sZW5ndGh9cmV0dXJuIGJ5dGVzVG9TdHJpbmcoZW8obikpfShlLHQpO2kuc2V0KCJJRCIsW3QuZmlsZUlkc1swXSxhXSl9fWFzeW5jIGZ1bmN0aW9uIGluY3JlbWVudGFsVXBkYXRlKHtvcmlnaW5hbERhdGE6ZSx4cmVmSW5mbzp0LGNoYW5nZXM6aSx4cmVmOmE9bnVsbCxoYXNYZmE6cj0hMSx4ZmFEYXRhc2V0c1JlZjpzPW51bGwsaGFzWGZhRGF0YXNldHNFbnRyeTpuPSExLG5lZWRBcHBlYXJhbmNlczpvLGFjcm9Gb3JtUmVmOmc9bnVsbCxhY3JvRm9ybTpjPW51bGwseGZhRGF0YTpsPW51bGwsdXNlWHJlZlN0cmVhbTpoPSExfSl7YXdhaXQgYXN5bmMgZnVuY3Rpb24gdXBkYXRlQWNyb2Zvcm0oe3hyZWY6ZSxhY3JvRm9ybTp0LGFjcm9Gb3JtUmVmOmksaGFzWGZhOmEsaGFzWGZhRGF0YXNldHNFbnRyeTpyLHhmYURhdGFzZXRzUmVmOnMsbmVlZEFwcGVhcmFuY2VzOm4sY2hhbmdlczpvfSl7IWF8fHJ8fHN8fHdhcm4oIlhGQSAtIENhbm5vdCBzYXZlIGl0Iik7aWYoIW4mJighYXx8IXN8fHIpKXJldHVybjtjb25zdCBnPXQuY2xvbmUoKTtpZihhJiYhcil7Y29uc3QgZT10LmdldCgiWEZBIikuc2xpY2UoKTtlLnNwbGljZSgyLDAsImRhdGFzZXRzIik7ZS5zcGxpY2UoMywwLHMpO2cuc2V0KCJYRkEiLGUpfW4mJmcuc2V0KCJOZWVkQXBwZWFyYW5jZXMiLCEwKTtvLnB1dChpLHtkYXRhOmd9KX0oe3hyZWY6YSxhY3JvRm9ybTpjLGFjcm9Gb3JtUmVmOmcsaGFzWGZhOnIsaGFzWGZhRGF0YXNldHNFbnRyeTpuLHhmYURhdGFzZXRzUmVmOnMsbmVlZEFwcGVhcmFuY2VzOm8sY2hhbmdlczppfSk7ciYmdXBkYXRlWEZBKHt4ZmFEYXRhOmwseGZhRGF0YXNldHNSZWY6cyxjaGFuZ2VzOmkseHJlZjphfSk7Y29uc3QgQz1mdW5jdGlvbiBnZXRUcmFpbGVyRGljdChlLHQsaSl7Y29uc3QgYT1uZXcgRGljdChudWxsKTthLnNldCgiUHJldiIsZS5zdGFydFhSZWYpO2NvbnN0IHI9ZS5uZXdSZWY7aWYoaSl7dC5wdXQocix7ZGF0YToiIn0pO2Euc2V0KCJTaXplIixyLm51bSsxKTthLnNldCgiVHlwZSIsTmFtZS5nZXQoIlhSZWYiKSl9ZWxzZSBhLnNldCgiU2l6ZSIsci5udW0pO251bGwhPT1lLnJvb3RSZWYmJmEuc2V0KCJSb290IixlLnJvb3RSZWYpO251bGwhPT1lLmluZm9SZWYmJmEuc2V0KCJJbmZvIixlLmluZm9SZWYpO251bGwhPT1lLmVuY3J5cHRSZWYmJmEuc2V0KCJFbmNyeXB0IixlLmVuY3J5cHRSZWYpO3JldHVybiBhfSh0LGksaCksUT1bXSxFPWF3YWl0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlQ2hhbmdlcyhlLHQsaT1bXSl7Y29uc3QgYT1bXTtmb3IoY29uc3Rbcix7ZGF0YTpzfV1vZiBlLml0ZW1zKCkpaWYobnVsbCE9PXMmJiJzdHJpbmciIT10eXBlb2Ygcyl7YXdhaXQgd3JpdGVPYmplY3QocixzLGksdCk7YS5wdXNoKHtyZWY6cixkYXRhOmkuam9pbigiIil9KTtpLmxlbmd0aD0wfWVsc2UgYS5wdXNoKHtyZWY6cixkYXRhOnN9KTtyZXR1cm4gYS5zb3J0KCgoZSx0KT0+ZS5yZWYubnVtLXQucmVmLm51bSkpfShpLGEsUSk7bGV0IHU9ZS5sZW5ndGg7Y29uc3QgZD1lLmF0KC0xKTtpZigxMCE9PWQmJjEzIT09ZCl7US5wdXNoKCJcbiIpO3UrPTF9Zm9yKGNvbnN0e2RhdGE6ZX1vZiBFKW51bGwhPT1lJiZRLnB1c2goZSk7YXdhaXQoaD9hc3luYyBmdW5jdGlvbiBnZXRYUmVmU3RyZWFtVGFibGUoZSx0LGksYSxyKXtjb25zdCBzPVtdO2xldCBuPTAsbz0wO2Zvcihjb25zdHtyZWY6ZSxkYXRhOmF9b2YgaSl7bGV0IGk7bj1NYXRoLm1heChuLHQpO2lmKG51bGwhPT1hKXtpPU1hdGgubWluKGUuZ2VuLDY1NTM1KTtzLnB1c2goWzEsdCxpXSk7dCs9YS5sZW5ndGh9ZWxzZXtpPU1hdGgubWluKGUuZ2VuKzEsNjU1MzUpO3MucHVzaChbMCwwLGldKX1vPU1hdGgubWF4KG8saSl9YS5zZXQoIkluZGV4IixnZXRJbmRleGVzKGkpKTtjb25zdCBnPVsxLGdldFNpemVJbkJ5dGVzKG4pLGdldFNpemVJbkJ5dGVzKG8pXTthLnNldCgiVyIsZyk7Y29tcHV0ZUlEcyh0LGUsYSk7Y29uc3QgYz1nLnJlZHVjZSgoKGUsdCk9PmUrdCksMCksbD1uZXcgVWludDhBcnJheShjKnMubGVuZ3RoKSxoPW5ldyBTdHJlYW0obCk7aC5kaWN0PWE7bGV0IEM9MDtmb3IoY29uc3RbZSx0LGldb2Ygcyl7Qz13cml0ZUludChlLGdbMF0sQyxsKTtDPXdyaXRlSW50KHQsZ1sxXSxDLGwpO0M9d3JpdGVJbnQoaSxnWzJdLEMsbCl9YXdhaXQgd3JpdGVPYmplY3QoZS5uZXdSZWYsaCxyLHt9KTtyLnB1c2goInN0YXJ0eHJlZlxuIix0LnRvU3RyaW5nKCksIlxuJSVFT0ZcbiIpfSh0LHUsRSxDLFEpOmFzeW5jIGZ1bmN0aW9uIGdldFhSZWZUYWJsZShlLHQsaSxhLHIpe3IucHVzaCgieHJlZlxuIik7Y29uc3Qgcz1nZXRJbmRleGVzKGkpO2xldCBuPTA7Zm9yKGNvbnN0e3JlZjplLGRhdGE6YX1vZiBpKXtpZihlLm51bT09PXNbbl0pe3IucHVzaChgJHtzW25dfSAke3NbbisxXX1cbmApO24rPTJ9aWYobnVsbCE9PWEpe3IucHVzaChgJHt0LnRvU3RyaW5nKCkucGFkU3RhcnQoMTAsIjAiKX0gJHtNYXRoLm1pbihlLmdlbiw2NTUzNSkudG9TdHJpbmcoKS5wYWRTdGFydCg1LCIwIil9IG5cclxuYCk7dCs9YS5sZW5ndGh9ZWxzZSByLnB1c2goYDAwMDAwMDAwMDAgJHtNYXRoLm1pbihlLmdlbisxLDY1NTM1KS50b1N0cmluZygpLnBhZFN0YXJ0KDUsIjAiKX0gZlxyXG5gKX1jb21wdXRlSURzKHQsZSxhKTtyLnB1c2goInRyYWlsZXJcbiIpO2F3YWl0IHdyaXRlRGljdChhLHIpO3IucHVzaCgiXG5zdGFydHhyZWZcbiIsdC50b1N0cmluZygpLCJcbiUlRU9GXG4iKX0odCx1LEUsQyxRKSk7Y29uc3QgZj1RLnJlZHVjZSgoKGUsdCk9PmUrdC5sZW5ndGgpLGUubGVuZ3RoKSxwPW5ldyBVaW50OEFycmF5KGYpO3Auc2V0KGUpO2xldCBtPWUubGVuZ3RoO2Zvcihjb25zdCBlIG9mIFEpe3dyaXRlU3RyaW5nKGUsbSxwKTttKz1lLmxlbmd0aH1yZXR1cm4gcH1jbGFzcyBQREZXb3JrZXJTdHJlYW17Y29uc3RydWN0b3IoZSl7dGhpcy5fbXNnSGFuZGxlcj1lO3RoaXMuX2NvbnRlbnRMZW5ndGg9bnVsbDt0aGlzLl9mdWxsUmVxdWVzdFJlYWRlcj1udWxsO3RoaXMuX3JhbmdlUmVxdWVzdFJlYWRlcnM9W119Z2V0RnVsbFJlYWRlcigpe2Fzc2VydCghdGhpcy5fZnVsbFJlcXVlc3RSZWFkZXIsIlBERldvcmtlclN0cmVhbS5nZXRGdWxsUmVhZGVyIGNhbiBvbmx5IGJlIGNhbGxlZCBvbmNlLiIpO3RoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyPW5ldyBQREZXb3JrZXJTdHJlYW1SZWFkZXIodGhpcy5fbXNnSGFuZGxlcik7cmV0dXJuIHRoaXMuX2Z1bGxSZXF1ZXN0UmVhZGVyfWdldFJhbmdlUmVhZGVyKGUsdCl7Y29uc3QgaT1uZXcgUERGV29ya2VyU3RyZWFtUmFuZ2VSZWFkZXIoZSx0LHRoaXMuX21zZ0hhbmRsZXIpO3RoaXMuX3JhbmdlUmVxdWVzdFJlYWRlcnMucHVzaChpKTtyZXR1cm4gaX1jYW5jZWxBbGxSZXF1ZXN0cyhlKXt0aGlzLl9mdWxsUmVxdWVzdFJlYWRlcj8uY2FuY2VsKGUpO2Zvcihjb25zdCB0IG9mIHRoaXMuX3JhbmdlUmVxdWVzdFJlYWRlcnMuc2xpY2UoMCkpdC5jYW5jZWwoZSl9fWNsYXNzIFBERldvcmtlclN0cmVhbVJlYWRlcntjb25zdHJ1Y3RvcihlKXt0aGlzLl9tc2dIYW5kbGVyPWU7dGhpcy5vblByb2dyZXNzPW51bGw7dGhpcy5fY29udGVudExlbmd0aD1udWxsO3RoaXMuX2lzUmFuZ2VTdXBwb3J0ZWQ9ITE7dGhpcy5faXNTdHJlYW1pbmdTdXBwb3J0ZWQ9ITE7Y29uc3QgdD10aGlzLl9tc2dIYW5kbGVyLnNlbmRXaXRoU3RyZWFtKCJHZXRSZWFkZXIiKTt0aGlzLl9yZWFkZXI9dC5nZXRSZWFkZXIoKTt0aGlzLl9oZWFkZXJzUmVhZHk9dGhpcy5fbXNnSGFuZGxlci5zZW5kV2l0aFByb21pc2UoIlJlYWRlckhlYWRlcnNSZWFkeSIpLnRoZW4oKGU9Pnt0aGlzLl9pc1N0cmVhbWluZ1N1cHBvcnRlZD1lLmlzU3RyZWFtaW5nU3VwcG9ydGVkO3RoaXMuX2lzUmFuZ2VTdXBwb3J0ZWQ9ZS5pc1JhbmdlU3VwcG9ydGVkO3RoaXMuX2NvbnRlbnRMZW5ndGg9ZS5jb250ZW50TGVuZ3RofSkpfWdldCBoZWFkZXJzUmVhZHkoKXtyZXR1cm4gdGhpcy5faGVhZGVyc1JlYWR5fWdldCBjb250ZW50TGVuZ3RoKCl7cmV0dXJuIHRoaXMuX2NvbnRlbnRMZW5ndGh9Z2V0IGlzU3RyZWFtaW5nU3VwcG9ydGVkKCl7cmV0dXJuIHRoaXMuX2lzU3RyZWFtaW5nU3VwcG9ydGVkfWdldCBpc1JhbmdlU3VwcG9ydGVkKCl7cmV0dXJuIHRoaXMuX2lzUmFuZ2VTdXBwb3J0ZWR9YXN5bmMgcmVhZCgpe2NvbnN0e3ZhbHVlOmUsZG9uZTp0fT1hd2FpdCB0aGlzLl9yZWFkZXIucmVhZCgpO3JldHVybiB0P3t2YWx1ZTp2b2lkIDAsZG9uZTohMH06e3ZhbHVlOmUuYnVmZmVyLGRvbmU6ITF9fWNhbmNlbChlKXt0aGlzLl9yZWFkZXIuY2FuY2VsKGUpfX1jbGFzcyBQREZXb3JrZXJTdHJlYW1SYW5nZVJlYWRlcntjb25zdHJ1Y3RvcihlLHQsaSl7dGhpcy5fbXNnSGFuZGxlcj1pO3RoaXMub25Qcm9ncmVzcz1udWxsO2NvbnN0IGE9dGhpcy5fbXNnSGFuZGxlci5zZW5kV2l0aFN0cmVhbSgiR2V0UmFuZ2VSZWFkZXIiLHtiZWdpbjplLGVuZDp0fSk7dGhpcy5fcmVhZGVyPWEuZ2V0UmVhZGVyKCl9Z2V0IGlzU3RyZWFtaW5nU3VwcG9ydGVkKCl7cmV0dXJuITF9YXN5bmMgcmVhZCgpe2NvbnN0e3ZhbHVlOmUsZG9uZTp0fT1hd2FpdCB0aGlzLl9yZWFkZXIucmVhZCgpO3JldHVybiB0P3t2YWx1ZTp2b2lkIDAsZG9uZTohMH06e3ZhbHVlOmUuYnVmZmVyLGRvbmU6ITF9fWNhbmNlbChlKXt0aGlzLl9yZWFkZXIuY2FuY2VsKGUpfX1jbGFzcyBXb3JrZXJUYXNre2NvbnN0cnVjdG9yKGUpe3RoaXMubmFtZT1lO3RoaXMudGVybWluYXRlZD0hMTt0aGlzLl9jYXBhYmlsaXR5PVByb21pc2Uud2l0aFJlc29sdmVycygpfWdldCBmaW5pc2hlZCgpe3JldHVybiB0aGlzLl9jYXBhYmlsaXR5LnByb21pc2V9ZmluaXNoKCl7dGhpcy5fY2FwYWJpbGl0eS5yZXNvbHZlKCl9dGVybWluYXRlKCl7dGhpcy50ZXJtaW5hdGVkPSEwfWVuc3VyZU5vdFRlcm1pbmF0ZWQoKXtpZih0aGlzLnRlcm1pbmF0ZWQpdGhyb3cgbmV3IEVycm9yKCJXb3JrZXIgdGFzayB3YXMgdGVybWluYXRlZCIpfX1jbGFzcyBXb3JrZXJNZXNzYWdlSGFuZGxlcntzdGF0aWN7InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cmJiFpJiYidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJiJmdW5jdGlvbiI9PXR5cGVvZiBzZWxmLnBvc3RNZXNzYWdlJiYib25tZXNzYWdlImluIHNlbGYmJnRoaXMuaW5pdGlhbGl6ZUZyb21Qb3J0KHNlbGYpfXN0YXRpYyBzZXR1cChlLHQpe2xldCBpPSExO2Uub24oInRlc3QiLCh0PT57aWYoIWkpe2k9ITA7ZS5zZW5kKCJ0ZXN0Iix0IGluc3RhbmNlb2YgVWludDhBcnJheSl9fSkpO2Uub24oImNvbmZpZ3VyZSIsKGU9PnshZnVuY3Rpb24gc2V0VmVyYm9zaXR5TGV2ZWwoZSl7TnVtYmVyLmlzSW50ZWdlcihlKSYmKEl0PWUpfShlLnZlcmJvc2l0eSl9KSk7ZS5vbigiR2V0RG9jUmVxdWVzdCIsKGU9PnRoaXMuY3JlYXRlRG9jdW1lbnRIYW5kbGVyKGUsdCkpKX1zdGF0aWMgY3JlYXRlRG9jdW1lbnRIYW5kbGVyKGUsdCl7bGV0IGksYT0hMSxyPW51bGw7Y29uc3Qgcz1uZXcgU2V0LG49Z2V0VmVyYm9zaXR5TGV2ZWwoKSx7ZG9jSWQ6byxhcGlWZXJzaW9uOmd9PWUsYz0iNC4xMC4zOCI7aWYoZyE9PWMpdGhyb3cgbmV3IEVycm9yKGBUaGUgQVBJIHZlcnNpb24gIiR7Z30iIGRvZXMgbm90IG1hdGNoIHRoZSBXb3JrZXIgdmVyc2lvbiAiJHtjfSIuYCk7Y29uc3QgbD1bXTtmb3IoY29uc3QgZSBpbltdKWwucHVzaChlKTtpZihsLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIlRoZSBgQXJyYXkucHJvdG90eXBlYCBjb250YWlucyB1bmV4cGVjdGVkIGVudW1lcmFibGUgcHJvcGVydGllczogIitsLmpvaW4oIiwgIikrIjsgdGh1cyBicmVha2luZyBlLmcuIGBmb3IuLi5pbmAgaXRlcmF0aW9uIG9mIGBBcnJheWBzLiIpO2NvbnN0IGg9bysiX3dvcmtlciI7bGV0IEM9bmV3IE1lc3NhZ2VIYW5kbGVyKGgsbyx0KTtmdW5jdGlvbiBlbnN1cmVOb3RUZXJtaW5hdGVkKCl7aWYoYSl0aHJvdyBuZXcgRXJyb3IoIldvcmtlciB3YXMgdGVybWluYXRlZCIpfWZ1bmN0aW9uIHN0YXJ0V29ya2VyVGFzayhlKXtzLmFkZChlKX1mdW5jdGlvbiBmaW5pc2hXb3JrZXJUYXNrKGUpe2UuZmluaXNoKCk7cy5kZWxldGUoZSl9YXN5bmMgZnVuY3Rpb24gbG9hZERvY3VtZW50KGUpe2F3YWl0IGkuZW5zdXJlRG9jKCJjaGVja0hlYWRlciIpO2F3YWl0IGkuZW5zdXJlRG9jKCJwYXJzZVN0YXJ0WFJlZiIpO2F3YWl0IGkuZW5zdXJlRG9jKCJwYXJzZSIsW2VdKTthd2FpdCBpLmVuc3VyZURvYygiY2hlY2tGaXJzdFBhZ2UiLFtlXSk7YXdhaXQgaS5lbnN1cmVEb2MoImNoZWNrTGFzdFBhZ2UiLFtlXSk7Y29uc3QgdD1hd2FpdCBpLmVuc3VyZURvYygiaXNQdXJlWGZhIik7aWYodCl7Y29uc3QgZT1uZXcgV29ya2VyVGFzaygibG9hZFhmYUZvbnRzIik7c3RhcnRXb3JrZXJUYXNrKGUpO2F3YWl0IFByb21pc2UuYWxsKFtpLmxvYWRYZmFGb250cyhDLGUpLmNhdGNoKChlPT57fSkpLnRoZW4oKCgpPT5maW5pc2hXb3JrZXJUYXNrKGUpKSksaS5sb2FkWGZhSW1hZ2VzKCldKX1jb25zdFthLHJdPWF3YWl0IFByb21pc2UuYWxsKFtpLmVuc3VyZURvYygibnVtUGFnZXMiKSxpLmVuc3VyZURvYygiZmluZ2VycHJpbnRzIildKTtyZXR1cm57bnVtUGFnZXM6YSxmaW5nZXJwcmludHM6cixodG1sRm9yWGZhOnQ/YXdhaXQgaS5lbnN1cmVEb2MoImh0bWxGb3JYZmEiKTpudWxsfX1mdW5jdGlvbiBzZXR1cERvYyhlKXtmdW5jdGlvbiBvblN1Y2Nlc3MoZSl7ZW5zdXJlTm90VGVybWluYXRlZCgpO0Muc2VuZCgiR2V0RG9jIix7cGRmSW5mbzplfSl9ZnVuY3Rpb24gb25GYWlsdXJlKGUpe2Vuc3VyZU5vdFRlcm1pbmF0ZWQoKTtpZihlIGluc3RhbmNlb2YgUGFzc3dvcmRFeGNlcHRpb24pe2NvbnN0IHQ9bmV3IFdvcmtlclRhc2soYFBhc3N3b3JkRXhjZXB0aW9uOiByZXNwb25zZSAke2UuY29kZX1gKTtzdGFydFdvcmtlclRhc2sodCk7Qy5zZW5kV2l0aFByb21pc2UoIlBhc3N3b3JkUmVxdWVzdCIsZSkudGhlbigoZnVuY3Rpb24oe3Bhc3N3b3JkOmV9KXtmaW5pc2hXb3JrZXJUYXNrKHQpO2kudXBkYXRlUGFzc3dvcmQoZSk7cGRmTWFuYWdlclJlYWR5KCl9KSkuY2F0Y2goKGZ1bmN0aW9uKCl7ZmluaXNoV29ya2VyVGFzayh0KTtDLnNlbmQoIkRvY0V4Y2VwdGlvbiIsZSl9KSl9ZWxzZSBDLnNlbmQoIkRvY0V4Y2VwdGlvbiIsd3JhcFJlYXNvbihlKSl9ZnVuY3Rpb24gcGRmTWFuYWdlclJlYWR5KCl7ZW5zdXJlTm90VGVybWluYXRlZCgpO2xvYWREb2N1bWVudCghMSkudGhlbihvblN1Y2Nlc3MsKGZ1bmN0aW9uKGUpe2Vuc3VyZU5vdFRlcm1pbmF0ZWQoKTtlIGluc3RhbmNlb2YgWFJlZlBhcnNlRXhjZXB0aW9uP2kucmVxdWVzdExvYWRlZFN0cmVhbSgpLnRoZW4oKGZ1bmN0aW9uKCl7ZW5zdXJlTm90VGVybWluYXRlZCgpO2xvYWREb2N1bWVudCghMCkudGhlbihvblN1Y2Nlc3Msb25GYWlsdXJlKX0pKTpvbkZhaWx1cmUoZSl9KSl9ZW5zdXJlTm90VGVybWluYXRlZCgpOyhhc3luYyBmdW5jdGlvbiBnZXRQZGZNYW5hZ2VyKHtkYXRhOmUscGFzc3dvcmQ6dCxkaXNhYmxlQXV0b0ZldGNoOmkscmFuZ2VDaHVua1NpemU6YSxsZW5ndGg6cyxkb2NCYXNlVXJsOm4sZW5hYmxlWGZhOmcsZXZhbHVhdG9yT3B0aW9uczpjfSl7Y29uc3QgbD17c291cmNlOm51bGwsZGlzYWJsZUF1dG9GZXRjaDppLGRvY0Jhc2VVcmw6bixkb2NJZDpvLGVuYWJsZVhmYTpnLGV2YWx1YXRvck9wdGlvbnM6YyxoYW5kbGVyOkMsbGVuZ3RoOnMscGFzc3dvcmQ6dCxyYW5nZUNodW5rU2l6ZTphfTtpZihlKXtsLnNvdXJjZT1lO3JldHVybiBuZXcgTG9jYWxQZGZNYW5hZ2VyKGwpfWNvbnN0IGg9bmV3IFBERldvcmtlclN0cmVhbShDKSxRPWguZ2V0RnVsbFJlYWRlcigpLEU9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7bGV0IHUsZD1bXSxmPTA7US5oZWFkZXJzUmVhZHkudGhlbigoZnVuY3Rpb24oKXtpZihRLmlzUmFuZ2VTdXBwb3J0ZWQpe2wuc291cmNlPWg7bC5sZW5ndGg9US5jb250ZW50TGVuZ3RoO2wuZGlzYWJsZUF1dG9GZXRjaHx8PVEuaXNTdHJlYW1pbmdTdXBwb3J0ZWQ7dT1uZXcgTmV0d29ya1BkZk1hbmFnZXIobCk7Zm9yKGNvbnN0IGUgb2YgZCl1LnNlbmRQcm9ncmVzc2l2ZURhdGEoZSk7ZD1bXTtFLnJlc29sdmUodSk7cj1udWxsfX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7RS5yZWplY3QoZSk7cj1udWxsfSkpO25ldyBQcm9taXNlKChmdW5jdGlvbihlLHQpe2NvbnN0IHJlYWRDaHVuaz1mdW5jdGlvbih7dmFsdWU6ZSxkb25lOml9KXt0cnl7ZW5zdXJlTm90VGVybWluYXRlZCgpO2lmKGkpe2lmKCF1KXtjb25zdCBlPWFycmF5QnVmZmVyc1RvQnl0ZXMoZCk7ZD1bXTtzJiZlLmxlbmd0aCE9PXMmJndhcm4oInJlcG9ydGVkIEhUVFAgbGVuZ3RoIGlzIGRpZmZlcmVudCBmcm9tIGFjdHVhbCIpO2wuc291cmNlPWU7dT1uZXcgTG9jYWxQZGZNYW5hZ2VyKGwpO0UucmVzb2x2ZSh1KX1yPW51bGw7cmV0dXJufWYrPWUuYnl0ZUxlbmd0aDtRLmlzU3RyZWFtaW5nU3VwcG9ydGVkfHxDLnNlbmQoIkRvY1Byb2dyZXNzIix7bG9hZGVkOmYsdG90YWw6TWF0aC5tYXgoZixRLmNvbnRlbnRMZW5ndGh8fDApfSk7dT91LnNlbmRQcm9ncmVzc2l2ZURhdGEoZSk6ZC5wdXNoKGUpO1EucmVhZCgpLnRoZW4ocmVhZENodW5rLHQpfWNhdGNoKGUpe3QoZSl9fTtRLnJlYWQoKS50aGVuKHJlYWRDaHVuayx0KX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7RS5yZWplY3QoZSk7cj1udWxsfSkpO3I9ZT0+e2guY2FuY2VsQWxsUmVxdWVzdHMoZSl9O3JldHVybiBFLnByb21pc2V9KShlKS50aGVuKChmdW5jdGlvbihlKXtpZihhKXtlLnRlcm1pbmF0ZShuZXcgQWJvcnRFeGNlcHRpb24oIldvcmtlciB3YXMgdGVybWluYXRlZC4iKSk7dGhyb3cgbmV3IEVycm9yKCJXb3JrZXIgd2FzIHRlcm1pbmF0ZWQiKX1pPWU7aS5yZXF1ZXN0TG9hZGVkU3RyZWFtKCEwKS50aGVuKChlPT57Qy5zZW5kKCJEYXRhTG9hZGVkIix7bGVuZ3RoOmUuYnl0ZXMuYnl0ZUxlbmd0aH0pfSkpfSkpLnRoZW4ocGRmTWFuYWdlclJlYWR5LG9uRmFpbHVyZSl9Qy5vbigiR2V0UGFnZSIsKGZ1bmN0aW9uKGUpe3JldHVybiBpLmdldFBhZ2UoZS5wYWdlSW5kZXgpLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBQcm9taXNlLmFsbChbaS5lbnN1cmUoZSwicm90YXRlIiksaS5lbnN1cmUoZSwicmVmIiksaS5lbnN1cmUoZSwidXNlclVuaXQiKSxpLmVuc3VyZShlLCJ2aWV3IildKS50aGVuKChmdW5jdGlvbihbZSx0LGksYV0pe3JldHVybntyb3RhdGU6ZSxyZWY6dCxyZWZTdHI6dD8udG9TdHJpbmcoKT8/bnVsbCx1c2VyVW5pdDppLHZpZXc6YX19KSl9KSl9KSk7Qy5vbigiR2V0UGFnZUluZGV4IiwoZnVuY3Rpb24oZSl7Y29uc3QgdD1SZWYuZ2V0KGUubnVtLGUuZ2VuKTtyZXR1cm4gaS5lbnN1cmVDYXRhbG9nKCJnZXRQYWdlSW5kZXgiLFt0XSl9KSk7Qy5vbigiR2V0RGVzdGluYXRpb25zIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGkuZW5zdXJlQ2F0YWxvZygiZGVzdGluYXRpb25zIil9KSk7Qy5vbigiR2V0RGVzdGluYXRpb24iLChmdW5jdGlvbihlKXtyZXR1cm4gaS5lbnN1cmVDYXRhbG9nKCJnZXREZXN0aW5hdGlvbiIsW2UuaWRdKX0pKTtDLm9uKCJHZXRQYWdlTGFiZWxzIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGkuZW5zdXJlQ2F0YWxvZygicGFnZUxhYmVscyIpfSkpO0Mub24oIkdldFBhZ2VMYXlvdXQiLChmdW5jdGlvbihlKXtyZXR1cm4gaS5lbnN1cmVDYXRhbG9nKCJwYWdlTGF5b3V0Iil9KSk7Qy5vbigiR2V0UGFnZU1vZGUiLChmdW5jdGlvbihlKXtyZXR1cm4gaS5lbnN1cmVDYXRhbG9nKCJwYWdlTW9kZSIpfSkpO0Mub24oIkdldFZpZXdlclByZWZlcmVuY2VzIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGkuZW5zdXJlQ2F0YWxvZygidmlld2VyUHJlZmVyZW5jZXMiKX0pKTtDLm9uKCJHZXRPcGVuQWN0aW9uIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGkuZW5zdXJlQ2F0YWxvZygib3BlbkFjdGlvbiIpfSkpO0Mub24oIkdldEF0dGFjaG1lbnRzIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGkuZW5zdXJlQ2F0YWxvZygiYXR0YWNobWVudHMiKX0pKTtDLm9uKCJHZXREb2NKU0FjdGlvbnMiLChmdW5jdGlvbihlKXtyZXR1cm4gaS5lbnN1cmVDYXRhbG9nKCJqc0FjdGlvbnMiKX0pKTtDLm9uKCJHZXRQYWdlSlNBY3Rpb25zIiwoZnVuY3Rpb24oe3BhZ2VJbmRleDplfSl7cmV0dXJuIGkuZ2V0UGFnZShlKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gaS5lbnN1cmUoZSwianNBY3Rpb25zIil9KSl9KSk7Qy5vbigiR2V0T3V0bGluZSIsKGZ1bmN0aW9uKGUpe3JldHVybiBpLmVuc3VyZUNhdGFsb2coImRvY3VtZW50T3V0bGluZSIpfSkpO0Mub24oIkdldE9wdGlvbmFsQ29udGVudENvbmZpZyIsKGZ1bmN0aW9uKGUpe3JldHVybiBpLmVuc3VyZUNhdGFsb2coIm9wdGlvbmFsQ29udGVudENvbmZpZyIpfSkpO0Mub24oIkdldFBlcm1pc3Npb25zIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGkuZW5zdXJlQ2F0YWxvZygicGVybWlzc2lvbnMiKX0pKTtDLm9uKCJHZXRNZXRhZGF0YSIsKGZ1bmN0aW9uKGUpe3JldHVybiBQcm9taXNlLmFsbChbaS5lbnN1cmVEb2MoImRvY3VtZW50SW5mbyIpLGkuZW5zdXJlQ2F0YWxvZygibWV0YWRhdGEiKV0pfSkpO0Mub24oIkdldE1hcmtJbmZvIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGkuZW5zdXJlQ2F0YWxvZygibWFya0luZm8iKX0pKTtDLm9uKCJHZXREYXRhIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGkucmVxdWVzdExvYWRlZFN0cmVhbSgpLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBlLmJ5dGVzfSkpfSkpO0Mub24oIkdldEFubm90YXRpb25zIiwoZnVuY3Rpb24oe3BhZ2VJbmRleDplLGludGVudDp0fSl7cmV0dXJuIGkuZ2V0UGFnZShlKS50aGVuKChmdW5jdGlvbihpKXtjb25zdCBhPW5ldyBXb3JrZXJUYXNrKGBHZXRBbm5vdGF0aW9uczogcGFnZSAke2V9YCk7c3RhcnRXb3JrZXJUYXNrKGEpO3JldHVybiBpLmdldEFubm90YXRpb25zRGF0YShDLGEsdCkudGhlbigoZT0+e2ZpbmlzaFdvcmtlclRhc2soYSk7cmV0dXJuIGV9KSwoZT0+e2ZpbmlzaFdvcmtlclRhc2soYSk7dGhyb3cgZX0pKX0pKX0pKTtDLm9uKCJHZXRGaWVsZE9iamVjdHMiLChmdW5jdGlvbihlKXtyZXR1cm4gaS5lbnN1cmVEb2MoImZpZWxkT2JqZWN0cyIpLnRoZW4oKGU9PmU/LmFsbEZpZWxkc3x8bnVsbCkpfSkpO0Mub24oIkhhc0pTQWN0aW9ucyIsKGZ1bmN0aW9uKGUpe3JldHVybiBpLmVuc3VyZURvYygiaGFzSlNBY3Rpb25zIil9KSk7Qy5vbigiR2V0Q2FsY3VsYXRpb25PcmRlcklkcyIsKGZ1bmN0aW9uKGUpe3JldHVybiBpLmVuc3VyZURvYygiY2FsY3VsYXRpb25PcmRlcklkcyIpfSkpO0Mub24oIlNhdmVEb2N1bWVudCIsKGFzeW5jIGZ1bmN0aW9uKHtpc1B1cmVYZmE6ZSxudW1QYWdlczp0LGFubm90YXRpb25TdG9yYWdlOmEsZmlsZW5hbWU6cn0pe2NvbnN0IHM9W2kucmVxdWVzdExvYWRlZFN0cmVhbSgpLGkuZW5zdXJlQ2F0YWxvZygiYWNyb0Zvcm0iKSxpLmVuc3VyZUNhdGFsb2coImFjcm9Gb3JtUmVmIiksaS5lbnN1cmVEb2MoInN0YXJ0WFJlZiIpLGkuZW5zdXJlRG9jKCJ4cmVmIiksaS5lbnN1cmVEb2MoImxpbmVhcml6YXRpb24iKSxpLmVuc3VyZUNhdGFsb2coInN0cnVjdFRyZWVSb290IildLG49bmV3IFJlZlNldENhY2hlLG89W10sZz1lP251bGw6Z2V0TmV3QW5ub3RhdGlvbnNNYXAoYSksW2MsbCxoLFEsRSx1LGRdPWF3YWl0IFByb21pc2UuYWxsKHMpLGY9RS50cmFpbGVyLmdldFJhdygiUm9vdCIpfHxudWxsO2xldCBwO2lmKGcpe2Q/YXdhaXQgZC5jYW5VcGRhdGVTdHJ1Y3RUcmVlKHtwZGZNYW5hZ2VyOmkseHJlZjpFLG5ld0Fubm90YXRpb25zQnlQYWdlOmd9KSYmKHA9ZCk6YXdhaXQgU3RydWN0VHJlZVJvb3QuY2FuQ3JlYXRlU3RydWN0dXJlVHJlZSh7Y2F0YWxvZ1JlZjpmLHBkZk1hbmFnZXI6aSxuZXdBbm5vdGF0aW9uc0J5UGFnZTpnfSkmJihwPW51bGwpO2NvbnN0IGU9QW5ub3RhdGlvbkZhY3RvcnkuZ2VuZXJhdGVJbWFnZXMoYS52YWx1ZXMoKSxFLGkuZXZhbHVhdG9yT3B0aW9ucy5pc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZCksdD12b2lkIDA9PT1wP286W107Zm9yKGNvbnN0W2Escl1vZiBnKXQucHVzaChpLmdldFBhZ2UoYSkudGhlbigodD0+e2NvbnN0IGk9bmV3IFdvcmtlclRhc2soYFNhdmUgKGVkaXRvcik6IHBhZ2UgJHthfWApO3N0YXJ0V29ya2VyVGFzayhpKTtyZXR1cm4gdC5zYXZlTmV3QW5ub3RhdGlvbnMoQyxpLHIsZSxuKS5maW5hbGx5KChmdW5jdGlvbigpe2ZpbmlzaFdvcmtlclRhc2soaSl9KSl9KSkpO251bGw9PT1wP28ucHVzaChQcm9taXNlLmFsbCh0KS50aGVuKChhc3luYygpPT57YXdhaXQgU3RydWN0VHJlZVJvb3QuY3JlYXRlU3RydWN0dXJlVHJlZSh7bmV3QW5ub3RhdGlvbnNCeVBhZ2U6Zyx4cmVmOkUsY2F0YWxvZ1JlZjpmLHBkZk1hbmFnZXI6aSxjaGFuZ2VzOm59KX0pKSk6cCYmby5wdXNoKFByb21pc2UuYWxsKHQpLnRoZW4oKGFzeW5jKCk9Pnthd2FpdCBwLnVwZGF0ZVN0cnVjdHVyZVRyZWUoe25ld0Fubm90YXRpb25zQnlQYWdlOmcscGRmTWFuYWdlcjppLGNoYW5nZXM6bn0pfSkpKX1pZihlKW8ucHVzaChpLnNlcmlhbGl6ZVhmYURhdGEoYSkpO2Vsc2UgZm9yKGxldCBlPTA7ZTx0O2UrKylvLnB1c2goaS5nZXRQYWdlKGUpLnRoZW4oKGZ1bmN0aW9uKHQpe2NvbnN0IGk9bmV3IFdvcmtlclRhc2soYFNhdmU6IHBhZ2UgJHtlfWApO3N0YXJ0V29ya2VyVGFzayhpKTtyZXR1cm4gdC5zYXZlKEMsaSxhLG4pLmZpbmFsbHkoKGZ1bmN0aW9uKCl7ZmluaXNoV29ya2VyVGFzayhpKX0pKX0pKSk7Y29uc3QgbT1hd2FpdCBQcm9taXNlLmFsbChvKTtsZXQgeT1udWxsO2lmKGUpe3k9bVswXTtpZigheSlyZXR1cm4gYy5ieXRlc31lbHNlIGlmKDA9PT1uLnNpemUpcmV0dXJuIGMuYnl0ZXM7Y29uc3Qgdz1oJiZsIGluc3RhbmNlb2YgRGljdCYmbi52YWx1ZXMoKS5zb21lKChlPT5lLm5lZWRBcHBlYXJhbmNlcykpLGI9bCBpbnN0YW5jZW9mIERpY3QmJmwuZ2V0KCJYRkEiKXx8bnVsbDtsZXQgRD1udWxsLFM9ITE7aWYoQXJyYXkuaXNBcnJheShiKSl7Zm9yKGxldCBlPTAsdD1iLmxlbmd0aDtlPHQ7ZSs9MilpZigiZGF0YXNldHMiPT09YltlXSl7RD1iW2UrMV07Uz0hMH1udWxsPT09RCYmKEQ9RS5nZXROZXdUZW1wb3JhcnlSZWYoKSl9ZWxzZSBiJiZ3YXJuKCJVbnN1cHBvcnRlZCBYRkEgdHlwZS4iKTtsZXQgaz1PYmplY3QuY3JlYXRlKG51bGwpO2lmKEUudHJhaWxlcil7Y29uc3QgZT1PYmplY3QuY3JlYXRlKG51bGwpLHQ9RS50cmFpbGVyLmdldCgiSW5mbyIpfHxudWxsO2lmKHQgaW5zdGFuY2VvZiBEaWN0KWZvcihjb25zdFtpLGFdb2YgdCkic3RyaW5nIj09dHlwZW9mIGEmJihlW2ldPXN0cmluZ1RvUERGU3RyaW5nKGEpKTtrPXtyb290UmVmOmYsZW5jcnlwdFJlZjpFLnRyYWlsZXIuZ2V0UmF3KCJFbmNyeXB0Iil8fG51bGwsbmV3UmVmOkUuZ2V0TmV3VGVtcG9yYXJ5UmVmKCksaW5mb1JlZjpFLnRyYWlsZXIuZ2V0UmF3KCJJbmZvIil8fG51bGwsaW5mbzplLGZpbGVJZHM6RS50cmFpbGVyLmdldCgiSUQiKXx8bnVsbCxzdGFydFhSZWY6dT9ROkUubGFzdFhSZWZTdHJlYW1Qb3M/P1EsZmlsZW5hbWU6cn19cmV0dXJuIGluY3JlbWVudGFsVXBkYXRlKHtvcmlnaW5hbERhdGE6Yy5ieXRlcyx4cmVmSW5mbzprLGNoYW5nZXM6bix4cmVmOkUsaGFzWGZhOiEhYix4ZmFEYXRhc2V0c1JlZjpELGhhc1hmYURhdGFzZXRzRW50cnk6UyxuZWVkQXBwZWFyYW5jZXM6dyxhY3JvRm9ybVJlZjpoLGFjcm9Gb3JtOmwseGZhRGF0YTp5LHVzZVhyZWZTdHJlYW06aXNEaWN0KEUudG9wRGljdCwiWFJlZiIpfSkuZmluYWxseSgoKCk9PntFLnJlc2V0TmV3VGVtcG9yYXJ5UmVmKCl9KSl9KSk7Qy5vbigiR2V0T3BlcmF0b3JMaXN0IiwoZnVuY3Rpb24oZSx0KXtjb25zdCBhPWUucGFnZUluZGV4O2kuZ2V0UGFnZShhKS50aGVuKChmdW5jdGlvbihpKXtjb25zdCByPW5ldyBXb3JrZXJUYXNrKGBHZXRPcGVyYXRvckxpc3Q6IHBhZ2UgJHthfWApO3N0YXJ0V29ya2VyVGFzayhyKTtjb25zdCBzPW4+PWJBP0RhdGUubm93KCk6MDtpLmdldE9wZXJhdG9yTGlzdCh7aGFuZGxlcjpDLHNpbms6dCx0YXNrOnIsaW50ZW50OmUuaW50ZW50LGNhY2hlS2V5OmUuY2FjaGVLZXksYW5ub3RhdGlvblN0b3JhZ2U6ZS5hbm5vdGF0aW9uU3RvcmFnZSxtb2RpZmllZElkczplLm1vZGlmaWVkSWRzfSkudGhlbigoZnVuY3Rpb24oZSl7ZmluaXNoV29ya2VyVGFzayhyKTtzJiZpbmZvKGBwYWdlPSR7YSsxfSAtIGdldE9wZXJhdG9yTGlzdDogdGltZT0ke0RhdGUubm93KCktc31tcywgbGVuPSR7ZS5sZW5ndGh9YCk7dC5jbG9zZSgpfSksKGZ1bmN0aW9uKGUpe2ZpbmlzaFdvcmtlclRhc2socik7ci50ZXJtaW5hdGVkfHx0LmVycm9yKGUpfSkpfSkpfSkpO0Mub24oIkdldFRleHRDb250ZW50IiwoZnVuY3Rpb24oZSx0KXtjb25zdHtwYWdlSW5kZXg6YSxpbmNsdWRlTWFya2VkQ29udGVudDpyLGRpc2FibGVOb3JtYWxpemF0aW9uOnN9PWU7aS5nZXRQYWdlKGEpLnRoZW4oKGZ1bmN0aW9uKGUpe2NvbnN0IGk9bmV3IFdvcmtlclRhc2soIkdldFRleHRDb250ZW50OiBwYWdlICIrYSk7c3RhcnRXb3JrZXJUYXNrKGkpO2NvbnN0IG89bj49YkE/RGF0ZS5ub3coKTowO2UuZXh0cmFjdFRleHRDb250ZW50KHtoYW5kbGVyOkMsdGFzazppLHNpbms6dCxpbmNsdWRlTWFya2VkQ29udGVudDpyLGRpc2FibGVOb3JtYWxpemF0aW9uOnN9KS50aGVuKChmdW5jdGlvbigpe2ZpbmlzaFdvcmtlclRhc2soaSk7byYmaW5mbyhgcGFnZT0ke2ErMX0gLSBnZXRUZXh0Q29udGVudDogdGltZT1gKyhEYXRlLm5vdygpLW8pKyJtcyIpO3QuY2xvc2UoKX0pLChmdW5jdGlvbihlKXtmaW5pc2hXb3JrZXJUYXNrKGkpO2kudGVybWluYXRlZHx8dC5lcnJvcihlKX0pKX0pKX0pKTtDLm9uKCJHZXRTdHJ1Y3RUcmVlIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGkuZ2V0UGFnZShlLnBhZ2VJbmRleCkudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIGkuZW5zdXJlKGUsImdldFN0cnVjdFRyZWUiKX0pKX0pKTtDLm9uKCJGb250RmFsbGJhY2siLChmdW5jdGlvbihlKXtyZXR1cm4gaS5mb250RmFsbGJhY2soZS5pZCxDKX0pKTtDLm9uKCJDbGVhbnVwIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGkuY2xlYW51cCghMCl9KSk7Qy5vbigiVGVybWluYXRlIiwoZnVuY3Rpb24oZSl7YT0hMDtjb25zdCB0PVtdO2lmKGkpe2kudGVybWluYXRlKG5ldyBBYm9ydEV4Y2VwdGlvbigiV29ya2VyIHdhcyB0ZXJtaW5hdGVkLiIpKTtjb25zdCBlPWkuY2xlYW51cCgpO3QucHVzaChlKTtpPW51bGx9ZWxzZSBjbGVhckdsb2JhbENhY2hlcygpO3I/LihuZXcgQWJvcnRFeGNlcHRpb24oIldvcmtlciB3YXMgdGVybWluYXRlZC4iKSk7Zm9yKGNvbnN0IGUgb2Ygcyl7dC5wdXNoKGUuZmluaXNoZWQpO2UudGVybWluYXRlKCl9cmV0dXJuIFByb21pc2UuYWxsKHQpLnRoZW4oKGZ1bmN0aW9uKCl7Qy5kZXN0cm95KCk7Qz1udWxsfSkpfSkpO0Mub24oIlJlYWR5IiwoZnVuY3Rpb24odCl7c2V0dXBEb2MoZSk7ZT1udWxsfSkpO3JldHVybiBofXN0YXRpYyBpbml0aWFsaXplRnJvbVBvcnQoZSl7Y29uc3QgdD1uZXcgTWVzc2FnZUhhbmRsZXIoIndvcmtlciIsIm1haW4iLGUpO3RoaXMuc2V0dXAodCxlKTt0LnNlbmQoInJlYWR5IixudWxsKX19dmFyIHVvPV9fd2VicGFja19leHBvcnRzX18uV29ya2VyTWVzc2FnZUhhbmRsZXI7ZXhwb3J0e3VvIGFzIFdvcmtlck1lc3NhZ2VIYW5kbGVyfTs=";function VJ(U,l,d){const Z=U.contentWindow.document.createElement("style");Z.textContent=` + @page { + margin: 3mm; + size: ${l}pt ${d}pt; + } + body { + margin: 0; + } + canvas { + width: 100%; + page-break-after: always; + page-break-before: avoid; + page-break-inside: avoid; + } + `,U.contentWindow.document.head.appendChild(Z),U.contentWindow.document.body.style.width="100%"}function QJ(U){return new Promise(l=>{const d=document.createElement("iframe");d.width="0",d.height="0",d.style.position="absolute",d.style.top="0",d.style.left="0",d.style.border="none",d.style.overflow="hidden",d.onload=()=>l(d),U.appendChild(d)})}function iJ(U,l){const d=URL.createObjectURL(new Blob([U],{type:"application/pdf"})),Z=document.createElement("a");Z.href=d,Z.download=l,Z.style.display="none",document.body.append(Z),Z.click(),setTimeout(()=>{URL.revokeObjectURL(d),document.body.removeChild(Z)},1e3)}function $N(U){for(;U!=null&&U.firstChild;)U.removeChild(U.firstChild)}function lh(U){return U?Object.prototype.hasOwnProperty.call(U,"_pdfInfo"):!1}function HQ(U){U==null||U.querySelectorAll("canvas").forEach(l=>{var d;l.width=1,l.height=1,(d=l.getContext("2d"))==null||d.clearRect(0,0,1,1)})}function ob({onError:U,onPasswordRequest:l,onProgress:d,source:Z}){const t=GV(null),F=GV(null);return ym(async()=>{const c=PR(Z);if(c){if(lh(c)){t.value=c;return}}else return;try{F.value=sJ(c),l&&(F.value.onPassword=(W,s)=>{l({callback:W,isWrongPassword:s===aJ.INCORRECT_PASSWORD})}),d&&(F.value.onProgress=d),t.value=await F.value.promise}catch(W){if(t.value=null,U)U(W);else throw W}}),Vi(t,(c,W)=>{W==null||W.destroy()}),Oh(()=>{var c,W,s,n;(c=F.value)!=null&&c.onPassword&&(F.value.onPassword=null),(W=F.value)!=null&&W.onProgress&&(F.value.onProgress=null),(s=F.value)==null||s.destroy(),lh(PR(Z))||(n=t.value)==null||n.destroy()}),{doc:t}}var mW={};mW.d=(U,l)=>{for(var d in l)mW.o(l,d)&&!mW.o(U,d)&&Object.defineProperty(U,d,{enumerable:!0,get:l[d]})};mW.o=(U,l)=>Object.prototype.hasOwnProperty.call(U,l);var Il=globalThis.pdfjsViewer={};mW.d(Il,{AnnotationLayerBuilder:()=>gb,DownloadManager:()=>WG,EventBus:()=>vb,FindState:()=>dt,GenericL10n:()=>nQ,LinkTarget:()=>RF,PDFFindController:()=>PJ,PDFHistory:()=>cS,PDFLinkService:()=>Ob,PDFPageView:()=>Vm,PDFScriptingManager:()=>MS,PDFSinglePageViewer:()=>TS,PDFViewer:()=>Jm,ProgressBar:()=>XJ,RenderingStates:()=>Cl,ScrollMode:()=>sl,SimpleLinkService:()=>gR,SpreadMode:()=>Yd,StructTreeLayerBuilder:()=>tm,TextLayerBuilder:()=>sm,XfaLayerBuilder:()=>nm,parseQueryString:()=>WQ});const RJ="auto",yb=1,dh=1.1,NJ=.1,hJ=10,PQ=0,eJ=1.25,kb=40,zb=5,Cl={INITIAL:0,RUNNING:1,PAUSED:2,FINISHED:3},hc={UNKNOWN:0,NORMAL:1,CHANGING:2,FULLSCREEN:3},ZZ={DISABLE:0,ENABLE:1,ENABLE_PERMISSIONS:2},sl={UNKNOWN:-1,VERTICAL:0,HORIZONTAL:1,WRAPPED:2,PAGE:3},Yd={UNKNOWN:-1,NONE:0,ODD:1,EVEN:2};function Lb(U,l,d=!1){let Z=U.offsetParent;if(!Z){console.error("offsetParent is not set -- cannot scroll");return}let t=U.offsetTop+U.clientTop,F=U.offsetLeft+U.clientLeft;for(;Z.clientHeight===Z.scrollHeight&&Z.clientWidth===Z.scrollWidth||d&&(Z.classList.contains("markedContent")||getComputedStyle(Z).overflow==="hidden");)if(t+=Z.offsetTop,F+=Z.offsetLeft,Z=Z.offsetParent,!Z)return;l&&(l.top!==void 0&&(t+=l.top),l.left!==void 0&&(F+=l.left,Z.scrollLeft=F)),Z.scrollTop=t}function bJ(U,l,d=void 0){const Z=function(c){F||(F=window.requestAnimationFrame(function(){F=null;const W=U.scrollLeft,s=t.lastX;W!==s&&(t.right=W>s),t.lastX=W;const n=U.scrollTop,V=t.lastY;n!==V&&(t.down=n>V),t.lastY=n,l(t)}))},t={right:!0,down:!0,lastX:U.scrollLeft,lastY:U.scrollTop,_eventHandler:Z};let F=null;return U.addEventListener("scroll",Z,{useCapture:!0,signal:d}),d==null||d.addEventListener("abort",()=>window.cancelAnimationFrame(F),{once:!0}),t}function WQ(U){const l=new Map;for(const[d,Z]of new URLSearchParams(U))l.set(d.toLowerCase(),Z);return l}const Uh=/[\x00-\x1F]/g;function MW(U,l=!1){return Uh.test(U)?l?U.replaceAll(Uh,d=>d==="\0"?"":" "):U.replaceAll("\0",""):U}function DW(U,l,d=0){let Z=d,t=U.length-1;if(t<0||!l(U[t]))return U.length;if(l(U[Z]))return Z;for(;Z>1,c=U[F];l(c)?t=F:Z=F+1}return Z}function Zh(U){if(Math.floor(U)===U)return[U,1];const l=1/U,d=8;if(l>d)return[1,d];if(Math.floor(l)===l)return[1,l];const Z=U>1?l:U;let t=0,F=1,c=1,W=1;for(;;){const n=t+c,V=F+W;if(V>d)break;Z<=n/V?(c=n,W=V):(t=n,F=V)}let s;return Z-t/F=d&&(Z=l[U-1].div,t=Z.offsetTop+Z.clientTop);for(let F=U-2;F>=0&&(Z=l[F].div,!(Z.offsetTop+Z.clientTop+Z.clientHeight<=t));--F)U=F;return U}function MJ({scrollEl:U,views:l,sortByVisibility:d=!1,horizontal:Z=!1,rtl:t=!1}){const F=U.scrollTop,c=F+U.clientHeight,W=U.scrollLeft,s=W+U.clientWidth;function n(S){const G=S.div;return G.offsetTop+G.clientTop+G.clientHeight>F}function V(S){const G=S.div,T=G.offsetLeft+G.clientLeft,p=T+G.clientWidth;return t?TW}const Q=[],i=new Set,N=l.length;let e=DW(l,Z?V:n);e>0&&e=c&&(m=B);else if((Z?p:u)>m)break;if(B<=F||u>=c||X<=W||p>=s)continue;const y=Math.max(0,F-u)+Math.max(0,B-c),E=Math.max(0,W-p)+Math.max(0,X-s),D=(o-y)/o,w=(Y-E)/Y,I=D*w*100|0;Q.push({id:G.id,x:p,y:u,view:G,percent:I,widthPercent:w*100|0}),i.add(G.id)}const M=Q[0],J=Q.at(-1);return d&&Q.sort(function(S,G){const T=S.percent-G.percent;return Math.abs(T)>.001?-T:S.id-G.id}),{first:M,last:J,views:Q,ids:i}}function Ib(U){return Number.isInteger(U)&&U%90===0}function JJ(U){return Number.isInteger(U)&&Object.values(sl).includes(U)&&U!==sl.UNKNOWN}function GJ(U){return Number.isInteger(U)&&Object.values(Yd).includes(U)&&U!==Yd.UNKNOWN}function Db(U){return U.width<=U.height}new Promise(function(U){window.requestAnimationFrame(U)});const SJ=document.documentElement.style;function TJ(U,l,d){return Math.min(Math.max(U,l),d)}var QF,D0,iF,Ca,E0;class XJ{constructor(l){b(this,QF,null),b(this,D0,null),b(this,iF,0),b(this,Ca,null),b(this,E0,!0),R(this,QF,l.classList),R(this,Ca,l.style)}get percent(){return a(this,iF)}set percent(l){if(R(this,iF,TJ(l,0,100)),isNaN(l)){a(this,QF).add("indeterminate");return}a(this,QF).remove("indeterminate"),a(this,Ca).setProperty("--progressBar-percent",`${a(this,iF)}%`)}setWidth(l){if(!l)return;const d=l.parentNode.offsetWidth-l.offsetWidth;d>0&&a(this,Ca).setProperty("--progressBar-end-offset",`${d}px`)}setDisableAutoFetch(l=5e3){a(this,iF)===100||isNaN(a(this,iF))||(a(this,D0)&&clearTimeout(a(this,D0)),this.show(),R(this,D0,setTimeout(()=>{R(this,D0,null),this.hide()},l)))}hide(){a(this,E0)&&(R(this,E0,!1),a(this,QF).add("hidden"))}show(){a(this,E0)||(R(this,E0,!0),a(this,QF).remove("hidden"))}}QF=new WeakMap,D0=new WeakMap,iF=new WeakMap,Ca=new WeakMap,E0=new WeakMap;function pJ(U){let l=sl.VERTICAL,d=Yd.NONE;switch(U){case"SinglePage":l=sl.PAGE;break;case"OneColumn":break;case"TwoPageLeft":l=sl.PAGE;case"TwoColumnLeft":d=Yd.ODD;break;case"TwoPageRight":l=sl.PAGE;case"TwoColumnRight":d=Yd.EVEN;break}return{scrollMode:l,spreadMode:d}}const Es=function(){const U=document.createElement("div");return U.style.width="round(down, calc(1.6666666666666665 * 792px), 1px)",U.style.width==="calc(1320px)"?Math.fround:l=>l}(),uU={SPACE:0,ALPHA_LETTER:1,PUNCT:2,HAN_LETTER:3,KATAKANA_LETTER:4,HIRAGANA_LETTER:5,HALFWIDTH_KATAKANA_LETTER:6,THAI_LETTER:7};function uJ(U){return U<11904}function YJ(U){return(U&65408)===0}function BJ(U){return U>=97&&U<=122||U>=65&&U<=90}function oJ(U){return U>=48&&U<=57}function yJ(U){return U===32||U===9||U===13||U===10}function kJ(U){return U>=13312&&U<=40959||U>=63744&&U<=64255}function zJ(U){return U>=12448&&U<=12543}function LJ(U){return U>=12352&&U<=12447}function IJ(U){return U>=65376&&U<=65439}function DJ(U){return(U&65408)===3584}function ws(U){return uJ(U)?YJ(U)?yJ(U)?uU.SPACE:BJ(U)||oJ(U)||U===95?uU.ALPHA_LETTER:uU.PUNCT:DJ(U)?uU.THAI_LETTER:U===160?uU.SPACE:uU.ALPHA_LETTER:kJ(U)?uU.HAN_LETTER:zJ(U)?uU.KATAKANA_LETTER:LJ(U)?uU.HIRAGANA_LETTER:IJ(U)?uU.HALFWIDTH_KATAKANA_LETTER:uU.ALPHA_LETTER}let fQ;function EJ(){return fQ||(fQ=" ¨ª¯²-µ¸-º¼-¾IJ-ijĿ-ŀʼnſDŽ-njDZ-dzʰ-ʸ˘-˝ˠ-ˤʹͺ;΄-΅·ϐ-ϖϰ-ϲϴ-ϵϹևٵ-ٸक़-य़ড়-ঢ়য়ਲ਼ਸ਼ਖ਼-ਜ਼ਫ਼ଡ଼-ଢ଼ำຳໜ-ໝ༌གྷཌྷདྷབྷཛྷཀྵჼᴬ-ᴮᴰ-ᴺᴼ-ᵍᵏ-ᵪᵸᶛ-ᶿẚ-ẛάέήίόύώΆ᾽-῁ΈΉ῍-῏ΐΊ῝-῟ΰΎ῭-`ΌΏ´-῾ - ‑‗․-… ″-‴‶-‷‼‾⁇-⁉⁗ ⁰-ⁱ⁴-₎ₐ-ₜ₨℀-℃℅-ℇ℉-ℓℕ-№ℙ-ℝ℠-™ℤΩℨK-ℭℯ-ℱℳ-ℹ℻-⅀ⅅ-ⅉ⅐-ⅿ↉∬-∭∯-∰〈-〉①-⓪⨌⩴-⩶⫝̸ⱼ-ⱽⵯ⺟⻳⼀-⿕ 〶〸-〺゛-゜ゟヿㄱ-ㆎ㆒-㆟㈀-㈞㈠-㉇㉐-㉾㊀-㏿ꚜ-ꚝꝰꟲ-ꟴꟸ-ꟹꭜ-ꭟꭩ豈-嗀塚晴凞-羽蘒諸逸-都飯-舘並-龎ff-stﬓ-ﬗיִײַ-זּטּ-לּמּנּ-סּףּ-פּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-﷼︐-︙︰-﹄﹇-﹒﹔-﹦﹨-﹫ﹰ-ﹲﹴﹶ-ﻼ!-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ¢-₩"),fQ}const dt={FOUND:0,NOT_FOUND:1,WRAPPED:2,PENDING:3},wJ=250,CJ=-50,rJ=-400,th={"‐":"-","‘":"'","’":"'","‚":"'","‛":"'","“":'"',"”":'"',"„":'"',"‟":'"',"¼":"1/4","½":"1/2","¾":"3/4"},Fh=new Set([12441,12442,2381,2509,2637,2765,2893,3021,3149,3277,3387,3388,3405,3530,3642,3770,3972,4153,4154,5908,5940,6098,6752,6980,7082,7083,7154,7155,11647,43014,43052,43204,43347,43456,43766,44013,3158,3953,3954,3962,3963,3964,3965,3968,3956]);let AQ;const xJ=new RegExp("\\p{M}+","gu"),jJ=new RegExp("([.*+?^${}()|[\\]\\\\])|(\\p{P})|(\\s+)|(\\p{M})|(\\p{L})","gu"),OJ=new RegExp("([^\\p{M}])\\p{M}*$","u"),gJ=new RegExp("^\\p{M}*([^\\p{M}])","u"),KJ=/[\uAC00-\uD7AF\uFA6C\uFACF-\uFAD1\uFAD5-\uFAD7]+/g,ch=new Map,vJ="[\\u1100-\\u1112\\ud7a4-\\ud7af\\ud84a\\ud84c\\ud850\\ud854\\ud857\\ud85f]",ah=new Map;let _Q=null,qQ=null;function $Q(U){const l=[];let d;for(;(d=KJ.exec(U))!==null;){let{index:m}=d;for(const M of d[0]){let J=ch.get(M);J||(J=M.normalize("NFD").length,ch.set(M,J)),l.push([J,m++])}}let Z;if(l.length===0&&_Q)Z=_Q;else if(l.length>0&&qQ)Z=qQ;else{const m=Object.keys(th).join(""),M=EJ(),J=`([${m}])|([${M}])|((?:゙|゚)\\n)|(\\p{M}+(?:-\\n)?)|(\\p{Ll}-\\n\\p{Lu})|(\\S-\\n)|((?:\\p{Ideographic}|[぀-ヿ])\\n)|(\\n)`;l.length===0?Z=_Q=new RegExp(J+"|(\\u0000)","gum"):Z=qQ=new RegExp(J+`|(${vJ})`,"gum")}const t=[];for(;(d=xJ.exec(U))!==null;)t.push([d[0].length,d.index]);let F=U.normalize("NFD");const c=[0,0];let W=0,s=0,n=0,V=0,Q=0,i=!1;F=F.replace(Z,(m,M,J,S,G,T,p,u,Y,o,X)=>{var B,y,E;if(X-=V,M){const D=th[M],w=D.length;for(let I=1;I>1),e=new Int32Array(c.length>>1);for(let m=0,M=c.length;m>1]=c[m],e[m>>1]=c[m+1];return[F,[N,e],i]}function HJ(U,l,d){if(!U)return[l,d];const[Z,t]=U,F=l,c=l+d-1;let W=DW(Z,Q=>Q>=F);Z[W]>F&&--W;let s=DW(Z,Q=>Q>=c,W);Z[s]>c&&--s;const n=F+t[W],V=c+t[s]+1-n;return[n,V]}var hd,JW,w0,Ul,Eb,FR,li,Wh,wb,cR,sh,nh,Cs,da,i0,Vh,di,Ui,rs,Cb,Zi,ti,Ua;class PJ{constructor({linkService:l,eventBus:d,updateMatchesCountOnProgress:Z=!0}){b(this,Ul),b(this,hd,null),b(this,JW,!0),b(this,w0,0),this._linkService=l,this._eventBus=d,R(this,JW,Z),this.onIsPageVisible=null,h(this,Ul,FR).call(this),d._on("find",h(this,Ul,Eb).bind(this)),d._on("findbarclose",h(this,Ul,Cb).bind(this))}get highlightMatches(){return this._highlightMatches}get pageMatches(){return this._pageMatches}get pageMatchesLength(){return this._pageMatchesLength}get selected(){return this._selected}get state(){return a(this,hd)}setDocument(l){this._pdfDocument&&h(this,Ul,FR).call(this),l&&(this._pdfDocument=l,this._firstPageCapability.resolve())}scrollMatchIntoView({element:l=null,selectedLeft:d=0,pageIndex:Z=-1,matchIndex:t=-1}){if(!this._scrollMatches||!l||t===-1||t!==this._selected.matchIdx||Z===-1||Z!==this._selected.pageIdx)return;this._scrollMatches=!1;const F={top:CJ,left:d+rJ};Lb(l,F,!0)}match(l,d,Z){const t=this._hasDiacritics[Z];let F=!1;if(typeof l=="string"?[F,l]=h(this,Ul,cR).call(this,l,t):l=l.sort().reverse().map(Q=>{const[i,N]=h(this,Ul,cR).call(this,Q,t);return F||(F=i),`(${N})`}).join("|"),!l)return;const{caseSensitive:c,entireWord:W}=a(this,hd),s=`g${F?"u":""}${c?"":"i"}`;l=new RegExp(l,s);const n=[];let V;for(;(V=l.exec(d))!==null;)W&&!h(this,Ul,wb).call(this,d,V.index,V[0].length)||n.push({index:V.index,length:V[0].length});return n}}hd=new WeakMap,JW=new WeakMap,w0=new WeakMap,Ul=new WeakSet,Eb=function(U){if(!U)return;const l=this._pdfDocument,{type:d}=U;(a(this,hd)===null||h(this,Ul,Wh).call(this,U))&&(this._dirtyMatch=!0),R(this,hd,U),d!=="highlightallchange"&&h(this,Ul,Ua).call(this,dt.PENDING),this._firstPageCapability.promise.then(()=>{if(!this._pdfDocument||l&&this._pdfDocument!==l)return;h(this,Ul,nh).call(this);const Z=!this._highlightMatches,t=!!this._findTimeout;this._findTimeout&&(clearTimeout(this._findTimeout),this._findTimeout=null),d?this._dirtyMatch?h(this,Ul,i0).call(this):d==="again"?(h(this,Ul,i0).call(this),Z&&a(this,hd).highlightAll&&h(this,Ul,da).call(this)):d==="highlightallchange"?(t?h(this,Ul,i0).call(this):this._highlightMatches=!0,h(this,Ul,da).call(this)):h(this,Ul,i0).call(this):this._findTimeout=setTimeout(()=>{h(this,Ul,i0).call(this),this._findTimeout=null},wJ)})},FR=function(){this._highlightMatches=!1,this._scrollMatches=!1,this._pdfDocument=null,this._pageMatches=[],this._pageMatchesLength=[],R(this,w0,0),R(this,hd,null),this._selected={pageIdx:-1,matchIdx:-1},this._offset={pageIdx:null,matchIdx:null,wrapped:!1},this._extractTextPromises=[],this._pageContents=[],this._pageDiffs=[],this._hasDiacritics=[],this._matchesCountTotal=0,this._pagesToSearch=null,this._pendingFindMatches=new Set,this._resumePageIdx=null,this._dirtyMatch=!1,clearTimeout(this._findTimeout),this._findTimeout=null,this._firstPageCapability=Promise.withResolvers()},li=function(){const{query:U}=a(this,hd);return typeof U=="string"?(U!==this._rawQuery&&(this._rawQuery=U,[this._normalizedQuery]=$Q(U)),this._normalizedQuery):(U||[]).filter(l=>!!l).map(l=>$Q(l)[0])},Wh=function(U){var l;const d=U.query,Z=a(this,hd).query,t=typeof d;if(t!==typeof Z)return!0;if(t==="string"){if(d!==Z)return!0}else if(JSON.stringify(d)!==JSON.stringify(Z))return!0;switch(U.type){case"again":const F=this._selected.pageIdx+1,c=this._linkService;return F>=1&&F<=c.pagesCount&&F!==c.page&&!(((l=this.onIsPageVisible)==null?void 0:l.call(this,F))??!0);case"highlightallchange":return!1}return!0},wb=function(U,l,d){let Z=U.slice(0,l).match(OJ);if(Z){const t=U.charCodeAt(l),F=Z[1].charCodeAt(0);if(ws(t)===ws(F))return!1}if(Z=U.slice(l+d).match(gJ),Z){const t=U.charCodeAt(l+d-1),F=Z[1].charCodeAt(0);if(ws(t)===ws(F))return!1}return!0},cR=function(U,l){const{matchDiacritics:d}=a(this,hd);let Z=!1;U=U.replaceAll(jJ,(F,c,W,s,n,V)=>c?`[ ]*\\${c}[ ]*`:W?`[ ]*${W}[ ]*`:s?"[ ]+":d?n||V:n?Fh.has(n.charCodeAt(0))?n:"":l?(Z=!0,`${V}\\p{M}*`):V);const t="[ ]*";return U.endsWith(t)&&(U=U.slice(0,U.length-t.length)),d&&l&&(AQ||(AQ=String.fromCharCode(...Fh)),Z=!0,U=`${U}(?=[${AQ}]|[^\\p{M}]|$)`),[Z,U]},sh=function(U){const l=a(this,Ul,li);if(l.length===0)return;const d=this._pageContents[U],Z=this.match(l,d,U),t=this._pageMatches[U]=[],F=this._pageMatchesLength[U]=[],c=this._pageDiffs[U];Z==null||Z.forEach(({index:s,length:n})=>{const[V,Q]=HJ(c,s,n);Q&&(t.push(V),F.push(Q))}),a(this,hd).highlightAll&&h(this,Ul,Cs).call(this,U),this._resumePageIdx===U&&(this._resumePageIdx=null,h(this,Ul,di).call(this));const W=t.length;this._matchesCountTotal+=W,a(this,JW)?W>0&&h(this,Ul,ti).call(this):++Ld(this,w0)._===this._linkService.pagesCount&&h(this,Ul,ti).call(this)},nh=function(){if(this._extractTextPromises.length>0)return;let U=Promise.resolve();const l={disableNormalization:!0};for(let d=0,Z=this._linkService.pagesCount;dthis._pdfDocument.getPage(d+1).then(c=>c.getTextContent(l)).then(c=>{const W=[];for(const s of c.items)W.push(s.str),s.hasEOL&&W.push(` +`);[this._pageContents[d],this._pageDiffs[d],this._hasDiacritics[d]]=$Q(W.join("")),F()},c=>{console.error(`Unable to get text content for page ${d+1}`,c),this._pageContents[d]="",this._pageDiffs[d]=null,this._hasDiacritics[d]=!1,F()}))}},Cs=function(U){this._scrollMatches&&this._selected.pageIdx===U&&(this._linkService.page=U+1),this._eventBus.dispatch("updatetextlayermatches",{source:this,pageIndex:U})},da=function(){this._eventBus.dispatch("updatetextlayermatches",{source:this,pageIndex:-1})},i0=function(){const U=a(this,hd).findPrevious,l=this._linkService.page-1,d=this._linkService.pagesCount;if(this._highlightMatches=!0,this._dirtyMatch){this._dirtyMatch=!1,this._selected.pageIdx=this._selected.matchIdx=-1,this._offset.pageIdx=l,this._offset.matchIdx=null,this._offset.wrapped=!1,this._resumePageIdx=null,this._pageMatches.length=0,this._pageMatchesLength.length=0,R(this,w0,0),this._matchesCountTotal=0,h(this,Ul,da).call(this);for(let t=0;t{this._pendingFindMatches.delete(t),h(this,Ul,sh).call(this,t)}))}if(a(this,Ul,li).length===0){h(this,Ul,Ua).call(this,dt.FOUND);return}if(this._resumePageIdx)return;const Z=this._offset;if(this._pagesToSearch=d,Z.matchIdx!==null){const t=this._pageMatches[Z.pageIdx].length;if(!U&&Z.matchIdx+10){Z.matchIdx=U?Z.matchIdx-1:Z.matchIdx+1,h(this,Ul,rs).call(this,!0);return}h(this,Ul,Ui).call(this,U)}h(this,Ul,di).call(this)},Vh=function(U){const l=this._offset,d=U.length,Z=a(this,hd).findPrevious;return d?(l.matchIdx=Z?d-1:0,h(this,Ul,rs).call(this,!0),!0):(h(this,Ul,Ui).call(this,Z),l.wrapped&&(l.matchIdx=null,this._pagesToSearch<0)?(h(this,Ul,rs).call(this,!1),!0):!1)},di=function(){this._resumePageIdx!==null&&console.error("There can only be one pending page.");let U=null;do{const l=this._offset.pageIdx;if(U=this._pageMatches[l],!U){this._resumePageIdx=l;break}}while(!h(this,Ul,Vh).call(this,U))},Ui=function(U){const l=this._offset,d=this._linkService.pagesCount;l.pageIdx=U?l.pageIdx-1:l.pageIdx+1,l.matchIdx=null,this._pagesToSearch--,(l.pageIdx>=d||l.pageIdx<0)&&(l.pageIdx=U?d-1:0,l.wrapped=!0)},rs=function(U=!1){let l=dt.NOT_FOUND;const d=this._offset.wrapped;if(this._offset.wrapped=!1,U){const Z=this._selected.pageIdx;this._selected.pageIdx=this._offset.pageIdx,this._selected.matchIdx=this._offset.matchIdx,l=d?dt.WRAPPED:dt.FOUND,Z!==-1&&Z!==this._selected.pageIdx&&h(this,Ul,Cs).call(this,Z)}h(this,Ul,Ua).call(this,l,a(this,hd).findPrevious),this._selected.pageIdx!==-1&&(this._scrollMatches=!0,h(this,Ul,Cs).call(this,this._selected.pageIdx))},Cb=function(U){const l=this._pdfDocument;this._firstPageCapability.promise.then(()=>{!this._pdfDocument||l&&this._pdfDocument!==l||(this._findTimeout&&(clearTimeout(this._findTimeout),this._findTimeout=null),this._resumePageIdx&&(this._resumePageIdx=null,this._dirtyMatch=!0),h(this,Ul,Ua).call(this,dt.FOUND),this._highlightMatches=!1,h(this,Ul,da).call(this))})},Zi=function(){var U;const{pageIdx:l,matchIdx:d}=this._selected;let Z=0,t=this._matchesCountTotal;if(d!==-1){for(let F=0;Ft)&&(Z=t=0),{current:Z,total:t}},ti=function(){this._eventBus.dispatch("updatefindmatchescount",{source:this,matchesCount:h(this,Ul,Zi).call(this)})},Ua=function(U,l=!1){var d,Z;!a(this,JW)&&(a(this,w0)!==this._linkService.pagesCount||U===dt.PENDING)||this._eventBus.dispatch("updatefindcontrolstate",{source:this,state:U,previous:l,entireWord:((d=a(this,hd))==null?void 0:d.entireWord)??null,matchesCount:h(this,Ul,Zi).call(this),rawQuery:((Z=a(this,hd))==null?void 0:Z.query)??null})};const fJ="noopener noreferrer nofollow",RF={NONE:0,SELF:1,BLANK:2,PARENT:3,TOP:4};var aR,rb;const xb=class jb{constructor({eventBus:l,externalLinkTarget:d=null,externalLinkRel:Z=null,ignoreDestinationZoom:t=!1}={}){f(this,"externalLinkEnabled",!0),this.eventBus=l,this.externalLinkTarget=d,this.externalLinkRel=Z,this._ignoreDestinationZoom=t,this.baseUrl=null,this.pdfDocument=null,this.pdfViewer=null,this.pdfHistory=null}setDocument(l,d=null){this.baseUrl=d,this.pdfDocument=l}setViewer(l){this.pdfViewer=l}setHistory(l){this.pdfHistory=l}get pagesCount(){return this.pdfDocument?this.pdfDocument.numPages:0}get page(){return this.pdfDocument?this.pdfViewer.currentPageNumber:1}set page(l){this.pdfDocument&&(this.pdfViewer.currentPageNumber=l)}get rotation(){return this.pdfDocument?this.pdfViewer.pagesRotation:0}set rotation(l){this.pdfDocument&&(this.pdfViewer.pagesRotation=l)}get isInPresentationMode(){return this.pdfDocument?this.pdfViewer.isInPresentationMode:!1}async goToDestination(l){if(!this.pdfDocument)return;let d,Z,t;if(typeof l=="string"?(d=l,Z=await this.pdfDocument.getDestination(l)):(d=null,Z=await l),!Array.isArray(Z)){console.error(`goToDestination: "${Z}" is not a valid destination array, for dest="${l}".`);return}const[F]=Z;if(F&&typeof F=="object"){if(t=this.pdfDocument.cachedPageNumber(F),!t)try{t=await this.pdfDocument.getPageIndex(F)+1}catch{console.error(`goToDestination: "${F}" is not a valid page reference, for dest="${l}".`);return}}else Number.isInteger(F)&&(t=F+1);if(!t||t<1||t>this.pagesCount){console.error(`goToDestination: "${t}" is not a valid page number, for dest="${l}".`);return}this.pdfHistory&&(this.pdfHistory.pushCurrentPosition(),this.pdfHistory.push({namedDest:d,explicitDest:Z,pageNumber:t})),this.pdfViewer.scrollPageIntoView({pageNumber:t,destArray:Z,ignoreDestinationZoom:this._ignoreDestinationZoom})}goToPage(l){if(!this.pdfDocument)return;const d=typeof l=="string"&&this.pdfViewer.pageLabelToPageNumber(l)||l|0;if(!(Number.isInteger(d)&&d>0&&d<=this.pagesCount)){console.error(`PDFLinkService.goToPage: "${l}" is not a valid page.`);return}this.pdfHistory&&(this.pdfHistory.pushCurrentPosition(),this.pdfHistory.pushPage(d)),this.pdfViewer.scrollPageIntoView({pageNumber:d})}addLinkAttributes(l,d,Z=!1){if(!d||typeof d!="string")throw new Error('A valid "url" parameter must provided.');const t=Z?RF.BLANK:this.externalLinkTarget,F=this.externalLinkRel;this.externalLinkEnabled?l.href=l.title=d:(l.href="",l.title=`Disabled: ${d}`,l.onclick=()=>!1);let c="";switch(t){case RF.NONE:break;case RF.SELF:c="_self";break;case RF.BLANK:c="_blank";break;case RF.PARENT:c="_parent";break;case RF.TOP:c="_top";break}l.target=c,l.rel=typeof F=="string"?F:fJ}getDestinationHash(l){if(typeof l=="string"){if(l.length>0)return this.getAnchorUrl("#"+escape(l))}else if(Array.isArray(l)){const d=JSON.stringify(l);if(d.length>0)return this.getAnchorUrl("#"+escape(d))}return this.getAnchorUrl("")}getAnchorUrl(l){return this.baseUrl?this.baseUrl+l:l}setHash(l){var d;if(!this.pdfDocument)return;let Z,t;if(l.includes("=")){const F=WQ(l);if(F.has("search")){const c=F.get("search").replaceAll('"',""),W=F.get("phrase")==="true";this.eventBus.dispatch("findfromurlhash",{source:this,query:W?c:c.match(/\S+/g)})}if(F.has("page")&&(Z=F.get("page")|0||1),F.has("zoom")){const c=F.get("zoom").split(","),W=c[0],s=parseFloat(W);W.includes("Fit")?W==="Fit"||W==="FitB"?t=[null,{name:W}]:W==="FitH"||W==="FitBH"||W==="FitV"||W==="FitBV"?t=[null,{name:W},c.length>1?c[1]|0:null]:W==="FitR"?c.length!==5?console.error('PDFLinkService.setHash: Not enough parameters for "FitR".'):t=[null,{name:W},c[1]|0,c[2]|0,c[3]|0,c[4]|0]:console.error(`PDFLinkService.setHash: "${W}" is not a valid zoom value.`):t=[null,{name:"XYZ"},c.length>1?c[1]|0:null,c.length>2?c[2]|0:null,s?s/100:W]}t?this.pdfViewer.scrollPageIntoView({pageNumber:Z||this.page,destArray:t,allowNegativeOffset:!0}):Z&&(this.page=Z),F.has("pagemode")&&this.eventBus.dispatch("pagemode",{source:this,mode:F.get("pagemode")}),F.has("nameddest")&&this.goToDestination(F.get("nameddest"));return}t=unescape(l);try{t=JSON.parse(t),Array.isArray(t)||(t=t.toString())}catch{}if(typeof t=="string"||h(d=jb,aR,rb).call(d,t)){this.goToDestination(t);return}console.error(`PDFLinkService.setHash: "${unescape(l)}" is not a valid destination.`)}executeNamedAction(l){var d,Z;if(this.pdfDocument){switch(l){case"GoBack":(d=this.pdfHistory)==null||d.back();break;case"GoForward":(Z=this.pdfHistory)==null||Z.forward();break;case"NextPage":this.pdfViewer.nextPage();break;case"PrevPage":this.pdfViewer.previousPage();break;case"LastPage":this.page=this.pagesCount;break;case"FirstPage":this.page=1;break}this.eventBus.dispatch("namedaction",{source:this,action:l})}}async executeSetOCGState(l){if(!this.pdfDocument)return;const d=this.pdfDocument,Z=await this.pdfViewer.optionalContentConfigPromise;d===this.pdfDocument&&(Z.setOCGState(l),this.pdfViewer.optionalContentConfigPromise=Promise.resolve(Z))}};aR=new WeakSet,rb=function(U){if(!Array.isArray(U)||U.length<2)return!1;const[l,d,...Z]=U;if(!(typeof l=="object"&&Number.isInteger(l==null?void 0:l.num)&&Number.isInteger(l==null?void 0:l.gen))&&!Number.isInteger(l)||!(typeof d=="object"&&typeof(d==null?void 0:d.name)=="string"))return!1;const t=Z.length;let F=!0;switch(d.name){case"XYZ":if(t<2||t>3)return!1;break;case"Fit":case"FitB":return t===0;case"FitH":case"FitBH":case"FitV":case"FitBV":if(t>1)return!1;break;case"FitR":if(t!==4)return!1;F=!1;break;default:return!1}for(const c of Z)if(!(typeof c=="number"||F&&c===null))return!1;return!0},b(xb,aR);let Ob=xb;class gR extends Ob{setDocument(l,d=null){}}const{AbortException:AJ,AnnotationEditorLayer:_J,AnnotationEditorParamsType:VT,AnnotationEditorType:lU,AnnotationEditorUIManager:qJ,AnnotationLayer:$J,AnnotationMode:IZ,build:QT,ColorPicker:iT,createValidAbsoluteUrl:lG,DOMSVGFactory:RT,DrawLayer:dG,FeatureTest:NT,fetchData:Qh,getDocument:hT,getFilenameFromUrl:eT,getPdfFilenameFromUrl:UG,getXfaPageViewport:bT,GlobalWorkerOptions:mT,ImageKind:MT,InvalidPDFException:JT,isDataScheme:GT,isPdfFile:ZG,MissingPDFException:ST,noContextMenu:TT,normalizeUnicode:tG,OPS:XT,OutputScale:FG,PasswordResponses:pT,PDFDataRangeTransport:uT,PDFDateString:YT,PDFWorker:BT,PermissionFlag:xs,PixelsPerInch:zZ,RenderingCancelledException:KR,setLayerDimensions:cG,shadow:vV,stopEvent:WR,TextLayer:aG,TouchManager:oT,UnexpectedResponseException:yT,Util:kT,VerbosityLevel:zT,version:ih,XfaLayer:Fi}=globalThis.pdfjsLib;var xn,NF,jn,sR;class gb{constructor({pdfPage:l,linkService:d,downloadManager:Z,annotationStorage:t=null,imageResourcesPath:F="",renderForms:c=!0,enableScripting:W=!1,hasJSActionsPromise:s=null,fieldObjectsPromise:n=null,annotationCanvasMap:V=null,accessibilityManager:Q=null,annotationEditorUIManager:i=null,onAppend:N=null}){b(this,jn),b(this,xn,null),b(this,NF,null),this.pdfPage=l,this.linkService=d,this.downloadManager=Z,this.imageResourcesPath=F,this.renderForms=c,this.annotationStorage=t,this.enableScripting=W,this._hasJSActionsPromise=s||Promise.resolve(!1),this._fieldObjectsPromise=n||Promise.resolve(null),this._annotationCanvasMap=V,this._accessibilityManager=Q,this._annotationEditorUIManager=i,R(this,xn,N),this.annotationLayer=null,this.div=null,this._cancelled=!1,this._eventBus=d.eventBus}async render(l,d,Z="display"){var t,F;if(this.div){if(this._cancelled||!this.annotationLayer)return;this.annotationLayer.update({viewport:l.clone({dontFlip:!0})});return}const[c,W,s]=await Promise.all([this.pdfPage.getAnnotations({intent:Z}),this._hasJSActionsPromise,this._fieldObjectsPromise]);if(this._cancelled)return;const n=this.div=document.createElement("div");if(n.className="annotationLayer",(t=a(this,xn))==null||t.call(this,n),c.length===0){this.hide();return}this.annotationLayer=new $J({div:n,accessibilityManager:this._accessibilityManager,annotationCanvasMap:this._annotationCanvasMap,annotationEditorUIManager:this._annotationEditorUIManager,page:this.pdfPage,viewport:l.clone({dontFlip:!0}),structTreeLayer:(d==null?void 0:d.structTreeLayer)||null}),await this.annotationLayer.render({annotations:c,imageResourcesPath:this.imageResourcesPath,renderForms:this.renderForms,linkService:this.linkService,downloadManager:this.downloadManager,annotationStorage:this.annotationStorage,enableScripting:this.enableScripting,hasJSActions:W,fieldObjects:s}),this.linkService.isInPresentationMode&&h(this,jn,sR).call(this,hc.FULLSCREEN),a(this,NF)||(R(this,NF,new AbortController),(F=this._eventBus)==null||F._on("presentationmodechanged",V=>{h(this,jn,sR).call(this,V.state)},{signal:a(this,NF).signal}))}cancel(){var l;this._cancelled=!0,(l=a(this,NF))==null||l.abort(),R(this,NF,null)}hide(){this.div&&(this.div.hidden=!0)}hasEditableAnnotations(){var l;return!!((l=this.annotationLayer)!=null&&l.hasEditableAnnotations())}}xn=new WeakMap,NF=new WeakMap,jn=new WeakSet,sR=function(U){if(!this.div)return;let l=!1;switch(U){case hc.FULLSCREEN:l=!0;break;case hc.NORMAL:break;default:return}for(const d of this.div.childNodes)d.hasAttribute("data-internal-link")||(d.inert=l)};function Rh(U,l){const d=document.createElement("a");if(!d.click)throw new Error('DownloadManager: "a.click()" is not supported.');d.href=U,d.target="_parent","download"in d&&(d.download=l),(document.body||document.documentElement).append(d),d.click(),d.remove()}var Kb;class WG{constructor(){b(this,Kb,new WeakMap)}downloadData(l,d,Z){const t=URL.createObjectURL(new Blob([l],{type:Z}));Rh(t,d)}openOrDownloadData(l,d,Z=null){const t=ZG(d)?"application/pdf":"";return this.downloadData(l,d,t),!1}download(l,d,Z){let t;if(l)t=URL.createObjectURL(new Blob([l],{type:"application/pdf"}));else{if(!lG(d,"http://example.com")){console.error(`download - not a valid URL: ${d}`);return}t=d+"#pdfjs.action=download"}Rh(t,Z)}}Kb=new WeakMap;const Nh={EVENT:"event",TIMEOUT:"timeout"};async function sG({target:U,name:l,delay:d=0}){if(typeof U!="object"||!(Number.isInteger(d)&&d>=0))throw new Error("waitOnEventOrTimeout - invalid parameters.");const{promise:Z,resolve:t}=Promise.withResolvers(),F=new AbortController;function c(n){F.abort(),clearTimeout(s),t(n)}const W=U instanceof vb?"_on":"addEventListener";U[W](l,c.bind(null,Nh.EVENT),{signal:F.signal});const s=setTimeout(c.bind(null,Nh.TIMEOUT),d);return Z}var ra;class vb{constructor(){b(this,ra,Object.create(null))}on(l,d,Z=null){this._on(l,d,{external:!0,once:Z==null?void 0:Z.once,signal:Z==null?void 0:Z.signal})}off(l,d,Z=null){this._off(l,d)}dispatch(l,d){const Z=a(this,ra)[l];if(!Z||Z.length===0)return;let t;for(const{listener:F,external:c,once:W}of Z.slice(0)){if(W&&this._off(l,F),c){(t||(t=[])).push(F);continue}F(d)}if(t){for(const F of t)F(d);t=null}}_on(l,d,Z=null){var t;let F=null;if((Z==null?void 0:Z.signal)instanceof AbortSignal){const{signal:c}=Z;if(c.aborted){console.error("Cannot use an `aborted` signal.");return}const W=()=>this._off(l,d);F=()=>c.removeEventListener("abort",W),c.addEventListener("abort",W)}((t=a(this,ra))[l]||(t[l]=[])).push({listener:d,external:(Z==null?void 0:Z.external)===!0,once:(Z==null?void 0:Z.once)===!0,rmAbort:F})}_off(l,d,Z=null){var t;const F=a(this,ra)[l];if(F)for(let c=0,W=F.length;c1;for(const t of l){if(typeof t=="string"){d.push(U.bundle._transform(t));continue}if(U.placeables++,U.placeables>hh)throw U.dirty.delete(l),new RangeError(`Too many placeables expanded: ${U.placeables}, max allowed is ${hh}`);Z&&d.push(nG),d.push(EW(U,t).toString(U)),Z&&d.push(VG)}return U.dirty.delete(l),d.join("")}function Sc(U,l){return typeof l=="string"?U.bundle._transform(l):Hb(U,l)}class bG{constructor(l,d,Z){this.dirty=new WeakSet,this.params=null,this.placeables=0,this.bundle=l,this.errors=d,this.args=Z}reportError(l){if(!this.errors||!(l instanceof Error))throw l;this.errors.push(l)}memoizeIntlObject(l,d){let Z=this.bundle._intls.get(l);Z||(Z={},this.bundle._intls.set(l,Z));let t=JSON.stringify(d);return Z[t]||(Z[t]=new l(this.bundle.locales,d)),Z[t]}}function HV(U,l){const d=Object.create(null);for(const[Z,t]of Object.entries(U))l.includes(Z)&&(d[Z]=t.valueOf());return d}const bh=["unitDisplay","currencyDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits"];function mG(U,l){let d=U[0];if(d instanceof _l)return new _l(`NUMBER(${d.valueOf()})`);if(d instanceof DZ)return new DZ(d.valueOf(),{...d.opts,...HV(l,bh)});if(d instanceof GW)return new DZ(d.valueOf(),{...HV(l,bh)});throw new TypeError("Invalid argument to NUMBER")}const mh=["dateStyle","timeStyle","fractionalSecondDigits","dayPeriod","hour12","weekday","era","year","month","day","hour","minute","second","timeZoneName"];function MG(U,l){let d=U[0];if(d instanceof _l)return new _l(`DATETIME(${d.valueOf()})`);if(d instanceof GW)return new GW(d.valueOf(),{...d.opts,...HV(l,mh)});if(d instanceof DZ)return new GW(d.valueOf(),{...HV(l,mh)});throw new TypeError("Invalid argument to DATETIME")}const Mh=new Map;function JG(U){const l=Array.isArray(U)?U.join(" "):U;let d=Mh.get(l);return d===void 0&&(d=new Map,Mh.set(l,d)),d}class GG{constructor(l,{functions:d,useIsolating:Z=!0,transform:t=F=>F}={}){this._terms=new Map,this._messages=new Map,this.locales=Array.isArray(l)?l:[l],this._functions={NUMBER:mG,DATETIME:MG,...d},this._useIsolating=Z,this._transform=t,this._intls=JG(l)}hasMessage(l){return this._messages.has(l)}getMessage(l){return this._messages.get(l)}addResource(l,{allowOverrides:d=!1}={}){const Z=[];for(let t=0;t\s*/y,IG=/\s*:\s*/y,DG=/\s*,?\s*/y,EG=/\s+/y;class wG{constructor(l){this.body=[],ci.lastIndex=0;let d=0;for(;;){let X=ci.exec(l);if(X===null)break;d=ci.lastIndex;try{this.body.push(s(X[1]))}catch(B){if(B instanceof SyntaxError)continue;throw B}}function Z(X){return X.lastIndex=d,X.test(l)}function t(X,B){if(l[d]===X)return d++,!0;if(B)throw new B(`Expected ${X}`);return!1}function F(X,B){if(Z(X))return d=X.lastIndex,!0;if(B)throw new B(`Expected ${X.toString()}`);return!1}function c(X){X.lastIndex=d;let B=X.exec(l);if(B===null)throw new SyntaxError(`Expected ${X.toString()}`);return d=X.lastIndex,B}function W(X){return c(X)[1]}function s(X){let B=V(),y=n();if(B===null&&Object.keys(y).length===0)throw new SyntaxError("Expected message value or attributes");return{id:X,value:B,attributes:y}}function n(){let X=Object.create(null);for(;Z(Jh);){let B=W(Jh),y=V();if(y===null)throw new SyntaxError("Expected attribute value");X[B]=y}return X}function V(){let X;if(Z(js)&&(X=W(js)),l[d]==="{"||l[d]==="}")return Q(X?[X]:[],1/0);let B=u();return B?X?Q([X,B],B.length):(B.value=Y(B.value,uG),Q([B],B.length)):X?Y(X,Xh):null}function Q(X=[],B){for(;;){if(Z(js)){X.push(W(js));continue}if(l[d]==="{"){X.push(i());continue}if(l[d]==="}")throw new SyntaxError("Unbalanced closing brace");let w=u();if(w){X.push(w),B=Math.min(B,w.length);continue}break}let y=X.length-1,E=X[y];typeof E=="string"&&(X[y]=Y(E,Xh));let D=[];for(let w of X)w instanceof uh&&(w=w.value.slice(0,w.value.length-B)),w&&D.push(w);return D}function i(){F(oG,SyntaxError);let X=N();if(F(ph))return X;if(F(LG)){let B=M();return F(ph,SyntaxError),{type:"select",selector:X,...B}}throw new SyntaxError("Unclosed placeable")}function N(){if(l[d]==="{")return i();if(Z(Gh)){let[,X,B,y=null]=c(Gh);if(X==="$")return{type:"var",name:B};if(F(zG)){let E=e();if(X==="-")return{type:"term",name:B,attr:y,args:E};if(XG.test(B))return{type:"func",name:B,args:E};throw new SyntaxError("Function names must be all upper-case")}return X==="-"?{type:"term",name:B,attr:y,args:[]}:{type:"mesg",name:B,attr:y}}return S()}function e(){let X=[];for(;;){switch(l[d]){case")":return d++,X;case void 0:throw new SyntaxError("Unclosed argument list")}X.push(m()),F(DG)}}function m(){let X=N();return X.type!=="mesg"?X:F(IG)?{type:"narg",name:X.name,value:S()}:X}function M(){let X=[],B=0,y;for(;Z(SG);){t("*")&&(y=B);let E=J(),D=V();if(D===null)throw new SyntaxError("Expected variant value");X[B++]={key:E,value:D}}if(B===0)return null;if(y===void 0)throw new SyntaxError("Expected default variant");return{variants:X,star:y}}function J(){F(yG,SyntaxError);let X;return Z(ai)?X=G():X={type:"str",value:W(TG)},F(kG,SyntaxError),X}function S(){if(Z(ai))return G();if(l[d]==='"')return T();throw new SyntaxError("Invalid expression")}function G(){let[,X,B=""]=c(ai),y=B.length;return{type:"num",value:parseFloat(X),precision:y}}function T(){t('"',SyntaxError);let X="";for(;;){if(X+=W(pG),l[d]==="\\"){X+=p();continue}if(t('"'))return{type:"str",value:X};throw new SyntaxError("Unclosed string literal")}}function p(){if(Z(Sh))return W(Sh);if(Z(Th)){let[,X,B]=c(Th),y=parseInt(X||B,16);return y<=55295||57344<=y?String.fromCodePoint(y):"�"}throw new SyntaxError("Unknown escape sequence")}function u(){let X=d;switch(F(EG),l[d]){case".":case"[":case"*":case"}":case void 0:return!1;case"{":return o(l.slice(X,d))}return l[d-1]===" "?o(l.slice(X,d)):!1}function Y(X,B){return X.replace(B,"")}function o(X){let B=X.replace(YG,` +`),y=BG.exec(X)[1].length;return new uh(B,y)}}}class uh{constructor(l,d){this.value=l,this.length=d}}const CG=/<|&#?\w+;/,rG={"http://www.w3.org/1999/xhtml":["em","strong","small","s","cite","q","dfn","abbr","data","time","code","var","samp","kbd","sub","sup","i","b","u","mark","bdi","bdo","span","br","wbr"]},xG={"http://www.w3.org/1999/xhtml":{global:["title","aria-label","aria-valuetext"],a:["download"],area:["download","alt"],input:["alt","placeholder"],menuitem:["label"],menu:["label"],optgroup:["label"],option:["label"],track:["label"],img:["alt"],textarea:["placeholder"],th:["abbr"]},"http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul":{global:["accesskey","aria-label","aria-valuetext","label","title","tooltiptext"],description:["value"],key:["key","keycode"],label:["value"],textbox:["placeholder","value"]}};function jG(U,l){const{value:d}=l;if(typeof d=="string")if(U.localName==="title"&&U.namespaceURI==="http://www.w3.org/1999/xhtml")U.textContent=d;else if(!CG.test(d))U.textContent=d;else{const Z=U.ownerDocument.createElementNS("http://www.w3.org/1999/xhtml","template");Z.innerHTML=d,OG(Z.content,U)}Pb(l,U)}function OG(U,l){for(const d of U.childNodes)if(d.nodeType!==d.TEXT_NODE){if(d.hasAttribute("data-l10n-name")){const Z=KG(l,d);U.replaceChild(Z,d);continue}if(HG(d)){const Z=vG(d);U.replaceChild(Z,d);continue}console.warn(`An element of forbidden type "${d.localName}" was found in the translation. Only safe text-level elements and elements with data-l10n-name are allowed.`),U.replaceChild(VR(d),d)}l.textContent="",l.appendChild(U)}function gG(U,l){if(!U)return!1;for(let d of U)if(d.name===l)return!0;return!1}function Pb(U,l){const d=l.hasAttribute("data-l10n-attrs")?l.getAttribute("data-l10n-attrs").split(",").map(Z=>Z.trim()):null;for(const Z of Array.from(l.attributes))Yh(Z.name,l,d)&&!gG(U.attributes,Z.name)&&l.removeAttribute(Z.name);if(U.attributes)for(const Z of Array.from(U.attributes))Yh(Z.name,l,d)&&l.getAttribute(Z.name)!==Z.value&&l.setAttribute(Z.name,Z.value)}function KG(U,l){const d=l.getAttribute("data-l10n-name"),Z=U.querySelector(`[data-l10n-name="${d}"]`);if(!Z)return console.warn(`An element named "${d}" wasn't found in the source.`),VR(l);if(Z.localName!==l.localName)return console.warn(`An element named "${d}" was found in the translation but its type ${l.localName} didn't match the element found in the source (${Z.localName}).`),VR(l);U.removeChild(Z);const t=Z.cloneNode(!1);return fb(l,t)}function vG(U){const l=U.ownerDocument.createElement(U.localName);return fb(U,l)}function VR(U){return U.ownerDocument.createTextNode(U.textContent)}function HG(U){const l=rG[U.namespaceURI];return l&&l.includes(U.localName)}function Yh(U,l,d=null){if(d&&d.includes(U))return!0;const Z=xG[l.namespaceURI];if(!Z)return!1;const t=U.toLowerCase(),F=l.localName;if(Z.global.includes(t))return!0;if(!Z[F])return!1;if(Z[F].includes(t))return!0;if(l.namespaceURI==="http://www.w3.org/1999/xhtml"&&F==="input"&&t==="value"){const c=l.type.toLowerCase();if(c==="submit"||c==="button"||c==="reset")return!0}return!1}function fb(U,l){return l.textContent=U.textContent,Pb(U,l),l}class PG extends Array{static from(l){return l instanceof this?l:new this(l)}}class fG extends PG{constructor(l){if(super(),Symbol.asyncIterator in Object(l))this.iterator=l[Symbol.asyncIterator]();else if(Symbol.iterator in Object(l))this.iterator=l[Symbol.iterator]();else throw new TypeError("Argument must implement the iteration protocol.")}[Symbol.asyncIterator](){const l=this;let d=0;return{async next(){return l.length<=d&&l.push(l.iterator.next()),l[d++]}}}async touchNext(l=1){let d=0;for(;d++!l.includes(d)),this.onChange(),this.resourceIds.length}async formatWithFallback(l,d){const Z=[];let t=!1;for await(const F of this.bundles){t=!0;const c=$G(d,F,l,Z);if(c.size===0)break;if(typeof console<"u"){const W=F.locales[0],s=Array.from(c).join(", ");console.warn(`[fluent] Missing translations in ${W}: ${s}`)}}return!t&&typeof console<"u"&&console.warn(`[fluent] Request for keys failed because no resource bundles got generated. + keys: ${JSON.stringify(l)}. + resourceIds: ${JSON.stringify(this.resourceIds)}.`),Z}formatMessages(l){return this.formatWithFallback(l,qG)}formatValues(l){return this.formatWithFallback(l,_G)}async formatValue(l,d){const[Z]=await this.formatValues([{id:l,args:d}]);return Z}handleEvent(){this.onChange()}onChange(l=!1){this.bundles=fG.from(this.generateBundles(this.resourceIds)),l&&this.bundles.touchNext(2)}}function _G(U,l,d,Z){return d.value?U.formatPattern(d.value,Z,l):null}function qG(U,l,d,Z){const t={value:null,attributes:null};d.value&&(t.value=U.formatPattern(d.value,Z,l));let F=Object.keys(d.attributes);if(F.length>0){t.attributes=new Array(F.length);for(let[c,W]of F.entries()){let s=U.formatPattern(d.attributes[W],Z,l);t.attributes[c]={name:W,value:s}}}return t}function $G(U,l,d,Z){const t=[],F=new Set;return d.forEach(({id:c,args:W},s)=>{if(Z[s]!==void 0)return;let n=l.getMessage(c);if(n){if(t.length=0,Z[s]=U(l,t,n,W),t.length>0&&typeof console<"u"){const V=l.locales[0],Q=t.join(", ");console.warn(`[fluent][resolver] errors in ${V}/${c}: ${Q}.`)}}else F.add(c)}),F}const hF="data-l10n-id",Za="data-l10n-args",lS=`[${hF}]`;class dS extends AG{constructor(l,d){super(l,d),this.roots=new Set,this.pendingrAF=null,this.pendingElements=new Set,this.windowElement=null,this.mutationObserver=null,this.observerConfig={attributes:!0,characterData:!1,childList:!0,subtree:!0,attributeFilter:[hF,Za]}}onChange(l=!1){super.onChange(l),this.roots&&this.translateRoots()}setAttributes(l,d,Z){return l.setAttribute(hF,d),Z?l.setAttribute(Za,JSON.stringify(Z)):l.removeAttribute(Za),l}getAttributes(l){return{id:l.getAttribute(hF),args:JSON.parse(l.getAttribute(Za)||null)}}connectRoot(l){for(const d of this.roots)if(d===l||d.contains(l)||l.contains(d))throw new Error("Cannot add a root that overlaps with existing root.");if(this.windowElement){if(this.windowElement!==l.ownerDocument.defaultView)throw new Error(`Cannot connect a root: + DOMLocalization already has a root from a different window.`)}else this.windowElement=l.ownerDocument.defaultView,this.mutationObserver=new this.windowElement.MutationObserver(d=>this.translateMutations(d));this.roots.add(l),this.mutationObserver.observe(l,this.observerConfig)}disconnectRoot(l){return this.roots.delete(l),this.pauseObserving(),this.roots.size===0?(this.mutationObserver=null,this.windowElement&&this.pendingrAF&&this.windowElement.cancelAnimationFrame(this.pendingrAF),this.windowElement=null,this.pendingrAF=null,this.pendingElements.clear(),!0):(this.resumeObserving(),!1)}translateRoots(){const l=Array.from(this.roots);return Promise.all(l.map(d=>this.translateFragment(d)))}pauseObserving(){this.mutationObserver&&(this.translateMutations(this.mutationObserver.takeRecords()),this.mutationObserver.disconnect())}resumeObserving(){if(this.mutationObserver)for(const l of this.roots)this.mutationObserver.observe(l,this.observerConfig)}translateMutations(l){for(const d of l)switch(d.type){case"attributes":d.target.hasAttribute("data-l10n-id")&&this.pendingElements.add(d.target);break;case"childList":for(const Z of d.addedNodes)if(Z.nodeType===Z.ELEMENT_NODE)if(Z.childElementCount)for(const t of this.getTranslatables(Z))this.pendingElements.add(t);else Z.hasAttribute(hF)&&this.pendingElements.add(Z);break}this.pendingElements.size>0&&this.pendingrAF===null&&(this.pendingrAF=this.windowElement.requestAnimationFrame(()=>{this.translateElements(Array.from(this.pendingElements)),this.pendingElements.clear(),this.pendingrAF=null}))}translateFragment(l){return this.translateElements(this.getTranslatables(l))}async translateElements(l){if(!l.length)return;const d=l.map(this.getKeysForElement),Z=await this.formatMessages(d);return this.applyTranslations(l,Z)}applyTranslations(l,d){this.pauseObserving();for(let Z=0;Z({id:F})),(await a(this,Ad).formatMessages(l)).map(F=>F.value)):((t=(await a(this,Ad).formatMessages([{id:l,args:d}]))[0])==null?void 0:t.value)||Z}async translate(l){(a(this,Ut)||R(this,Ut,new Set)).add(l);try{a(this,Ad).connectRoot(l),await a(this,Ad).translateRoots()}catch{}}async translateOnce(l){try{await a(this,Ad).translateElements([l])}catch(d){console.error("translateOnce:",d)}}async destroy(){if(a(this,Ut)){for(const l of a(this,Ut))a(this,Ad).disconnectRoot(l);a(this,Ut).clear(),R(this,Ut,null)}a(this,Ad).pauseObserving()}pause(){a(this,Ad).pauseObserving()}resume(){a(this,Ad).resumeObserving()}};On=new WeakMap,Ut=new WeakMap,xa=new WeakMap,Ad=new WeakMap,PV=new WeakSet,Ab=function(U){return U=(U==null?void 0:U.toLowerCase())||"en-us",{en:"en-us",es:"es-es",fy:"fy-nl",ga:"ga-ie",gu:"gu-in",hi:"hi-in",hy:"hy-am",nb:"nb-no",ne:"ne-np",nn:"nn-no",pa:"pa-in",pt:"pt-pt",sv:"sv-se",zh:"zh-cn"}[U]||U},_b=function(U){const l=U.split("-",1)[0];return["ar","he","fa","ps","ur"].includes(l)},b(qb,PV);let US=qb;function Bh(U,l){const d=new wG(l),Z=new GG(U),t=Z.addResource(d);return t.length&&console.error("L10n errors",t),Z}var Vt,$b,oh,yh,lm,Wi;const dm=class ja extends US{constructor(l){super({lang:l});const d=l?h(ja,Vt,$b).bind(ja,"en-us",this.getLanguage()):h(ja,Vt,lm).bind(ja,this.getLanguage());this._setL10n(new dS([],d))}};Vt=new WeakSet,$b=async function*(U,l){const{baseURL:d,paths:Z}=await h(this,Vt,yh).call(this),t=[l];if(U!==l){const F=l.split("-",1)[0];F!==l&&t.push(F),t.push(U)}for(const F of t){const c=await h(this,Vt,oh).call(this,F,d,Z);c?yield c:F==="en-us"&&(yield h(this,Vt,Wi).call(this,F))}},oh=async function(U,l,d){const Z=d[U];if(!Z)return null;const t=new URL(Z,l),F=await Qh(t,"text");return Bh(U,F)},yh=async function(){try{const{href:U}=document.querySelector('link[type="application/l10n"]'),l=await Qh(U,"json");return{baseURL:U.replace(/[^/]*$/,"")||"./",paths:l}}catch{}return{baseURL:"./",paths:Object.create(null)}},lm=async function*(U){yield h(this,Vt,Wi).call(this,U)},Wi=async function(U){return Bh(U,`pdfjs-previous-button = + .title = Previous Page +pdfjs-previous-button-label = Previous +pdfjs-next-button = + .title = Next Page +pdfjs-next-button-label = Next +pdfjs-page-input = + .title = Page +pdfjs-of-pages = of { $pagesCount } +pdfjs-page-of-pages = ({ $pageNumber } of { $pagesCount }) +pdfjs-zoom-out-button = + .title = Zoom Out +pdfjs-zoom-out-button-label = Zoom Out +pdfjs-zoom-in-button = + .title = Zoom In +pdfjs-zoom-in-button-label = Zoom In +pdfjs-zoom-select = + .title = Zoom +pdfjs-presentation-mode-button = + .title = Switch to Presentation Mode +pdfjs-presentation-mode-button-label = Presentation Mode +pdfjs-open-file-button = + .title = Open File +pdfjs-open-file-button-label = Open +pdfjs-print-button = + .title = Print +pdfjs-print-button-label = Print +pdfjs-save-button = + .title = Save +pdfjs-save-button-label = Save +pdfjs-download-button = + .title = Download +pdfjs-download-button-label = Download +pdfjs-bookmark-button = + .title = Current Page (View URL from Current Page) +pdfjs-bookmark-button-label = Current Page +pdfjs-tools-button = + .title = Tools +pdfjs-tools-button-label = Tools +pdfjs-first-page-button = + .title = Go to First Page +pdfjs-first-page-button-label = Go to First Page +pdfjs-last-page-button = + .title = Go to Last Page +pdfjs-last-page-button-label = Go to Last Page +pdfjs-page-rotate-cw-button = + .title = Rotate Clockwise +pdfjs-page-rotate-cw-button-label = Rotate Clockwise +pdfjs-page-rotate-ccw-button = + .title = Rotate Counterclockwise +pdfjs-page-rotate-ccw-button-label = Rotate Counterclockwise +pdfjs-cursor-text-select-tool-button = + .title = Enable Text Selection Tool +pdfjs-cursor-text-select-tool-button-label = Text Selection Tool +pdfjs-cursor-hand-tool-button = + .title = Enable Hand Tool +pdfjs-cursor-hand-tool-button-label = Hand Tool +pdfjs-scroll-page-button = + .title = Use Page Scrolling +pdfjs-scroll-page-button-label = Page Scrolling +pdfjs-scroll-vertical-button = + .title = Use Vertical Scrolling +pdfjs-scroll-vertical-button-label = Vertical Scrolling +pdfjs-scroll-horizontal-button = + .title = Use Horizontal Scrolling +pdfjs-scroll-horizontal-button-label = Horizontal Scrolling +pdfjs-scroll-wrapped-button = + .title = Use Wrapped Scrolling +pdfjs-scroll-wrapped-button-label = Wrapped Scrolling +pdfjs-spread-none-button = + .title = Do not join page spreads +pdfjs-spread-none-button-label = No Spreads +pdfjs-spread-odd-button = + .title = Join page spreads starting with odd-numbered pages +pdfjs-spread-odd-button-label = Odd Spreads +pdfjs-spread-even-button = + .title = Join page spreads starting with even-numbered pages +pdfjs-spread-even-button-label = Even Spreads +pdfjs-document-properties-button = + .title = Document Properties… +pdfjs-document-properties-button-label = Document Properties… +pdfjs-document-properties-file-name = File name: +pdfjs-document-properties-file-size = File size: +pdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes) +pdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes) +pdfjs-document-properties-title = Title: +pdfjs-document-properties-author = Author: +pdfjs-document-properties-subject = Subject: +pdfjs-document-properties-keywords = Keywords: +pdfjs-document-properties-creation-date = Creation Date: +pdfjs-document-properties-modification-date = Modification Date: +pdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: "short", timeStyle: "medium") } +pdfjs-document-properties-creator = Creator: +pdfjs-document-properties-producer = PDF Producer: +pdfjs-document-properties-version = PDF Version: +pdfjs-document-properties-page-count = Page Count: +pdfjs-document-properties-page-size = Page Size: +pdfjs-document-properties-page-size-unit-inches = in +pdfjs-document-properties-page-size-unit-millimeters = mm +pdfjs-document-properties-page-size-orientation-portrait = portrait +pdfjs-document-properties-page-size-orientation-landscape = landscape +pdfjs-document-properties-page-size-name-a-three = A3 +pdfjs-document-properties-page-size-name-a-four = A4 +pdfjs-document-properties-page-size-name-letter = Letter +pdfjs-document-properties-page-size-name-legal = Legal +pdfjs-document-properties-page-size-dimension-string = { $width } × { $height } { $unit } ({ $orientation }) +pdfjs-document-properties-page-size-dimension-name-string = { $width } × { $height } { $unit } ({ $name }, { $orientation }) +pdfjs-document-properties-linearized = Fast Web View: +pdfjs-document-properties-linearized-yes = Yes +pdfjs-document-properties-linearized-no = No +pdfjs-document-properties-close-button = Close +pdfjs-print-progress-message = Preparing document for printing… +pdfjs-print-progress-percent = { $progress }% +pdfjs-print-progress-close-button = Cancel +pdfjs-printing-not-supported = Warning: Printing is not fully supported by this browser. +pdfjs-printing-not-ready = Warning: The PDF is not fully loaded for printing. +pdfjs-toggle-sidebar-button = + .title = Toggle Sidebar +pdfjs-toggle-sidebar-notification-button = + .title = Toggle Sidebar (document contains outline/attachments/layers) +pdfjs-toggle-sidebar-button-label = Toggle Sidebar +pdfjs-document-outline-button = + .title = Show Document Outline (double-click to expand/collapse all items) +pdfjs-document-outline-button-label = Document Outline +pdfjs-attachments-button = + .title = Show Attachments +pdfjs-attachments-button-label = Attachments +pdfjs-layers-button = + .title = Show Layers (double-click to reset all layers to the default state) +pdfjs-layers-button-label = Layers +pdfjs-thumbs-button = + .title = Show Thumbnails +pdfjs-thumbs-button-label = Thumbnails +pdfjs-current-outline-item-button = + .title = Find Current Outline Item +pdfjs-current-outline-item-button-label = Current Outline Item +pdfjs-findbar-button = + .title = Find in Document +pdfjs-findbar-button-label = Find +pdfjs-additional-layers = Additional Layers +pdfjs-thumb-page-title = + .title = Page { $page } +pdfjs-thumb-page-canvas = + .aria-label = Thumbnail of Page { $page } +pdfjs-find-input = + .title = Find + .placeholder = Find in document… +pdfjs-find-previous-button = + .title = Find the previous occurrence of the phrase +pdfjs-find-previous-button-label = Previous +pdfjs-find-next-button = + .title = Find the next occurrence of the phrase +pdfjs-find-next-button-label = Next +pdfjs-find-highlight-checkbox = Highlight All +pdfjs-find-match-case-checkbox-label = Match Case +pdfjs-find-match-diacritics-checkbox-label = Match Diacritics +pdfjs-find-entire-word-checkbox-label = Whole Words +pdfjs-find-reached-top = Reached top of document, continued from bottom +pdfjs-find-reached-bottom = Reached end of document, continued from top +pdfjs-find-match-count = + { $total -> + [one] { $current } of { $total } match + *[other] { $current } of { $total } matches + } +pdfjs-find-match-count-limit = + { $limit -> + [one] More than { $limit } match + *[other] More than { $limit } matches + } +pdfjs-find-not-found = Phrase not found +pdfjs-page-scale-width = Page Width +pdfjs-page-scale-fit = Page Fit +pdfjs-page-scale-auto = Automatic Zoom +pdfjs-page-scale-actual = Actual Size +pdfjs-page-scale-percent = { $scale }% +pdfjs-page-landmark = + .aria-label = Page { $page } +pdfjs-loading-error = An error occurred while loading the PDF. +pdfjs-invalid-file-error = Invalid or corrupted PDF file. +pdfjs-missing-file-error = Missing PDF file. +pdfjs-unexpected-response-error = Unexpected server response. +pdfjs-rendering-error = An error occurred while rendering the page. +pdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: "short", timeStyle: "medium") } +pdfjs-text-annotation-type = + .alt = [{ $type } Annotation] +pdfjs-password-label = Enter the password to open this PDF file. +pdfjs-password-invalid = Invalid password. Please try again. +pdfjs-password-ok-button = OK +pdfjs-password-cancel-button = Cancel +pdfjs-web-fonts-disabled = Web fonts are disabled: unable to use embedded PDF fonts. +pdfjs-editor-free-text-button = + .title = Text +pdfjs-editor-free-text-button-label = Text +pdfjs-editor-ink-button = + .title = Draw +pdfjs-editor-ink-button-label = Draw +pdfjs-editor-stamp-button = + .title = Add or edit images +pdfjs-editor-stamp-button-label = Add or edit images +pdfjs-editor-highlight-button = + .title = Highlight +pdfjs-editor-highlight-button-label = Highlight +pdfjs-highlight-floating-button1 = + .title = Highlight + .aria-label = Highlight +pdfjs-highlight-floating-button-label = Highlight +pdfjs-editor-remove-ink-button = + .title = Remove drawing +pdfjs-editor-remove-freetext-button = + .title = Remove text +pdfjs-editor-remove-stamp-button = + .title = Remove image +pdfjs-editor-remove-highlight-button = + .title = Remove highlight +pdfjs-editor-free-text-color-input = Color +pdfjs-editor-free-text-size-input = Size +pdfjs-editor-ink-color-input = Color +pdfjs-editor-ink-thickness-input = Thickness +pdfjs-editor-ink-opacity-input = Opacity +pdfjs-editor-stamp-add-image-button = + .title = Add image +pdfjs-editor-stamp-add-image-button-label = Add image +pdfjs-editor-free-highlight-thickness-input = Thickness +pdfjs-editor-free-highlight-thickness-title = + .title = Change thickness when highlighting items other than text +pdfjs-free-text2 = + .aria-label = Text Editor + .default-content = Start typing… +pdfjs-ink = + .aria-label = Draw Editor +pdfjs-ink-canvas = + .aria-label = User-created image +pdfjs-editor-alt-text-button = + .aria-label = Alt text +pdfjs-editor-alt-text-button-label = Alt text +pdfjs-editor-alt-text-edit-button = + .aria-label = Edit alt text +pdfjs-editor-alt-text-dialog-label = Choose an option +pdfjs-editor-alt-text-dialog-description = Alt text (alternative text) helps when people can’t see the image or when it doesn’t load. +pdfjs-editor-alt-text-add-description-label = Add a description +pdfjs-editor-alt-text-add-description-description = Aim for 1-2 sentences that describe the subject, setting, or actions. +pdfjs-editor-alt-text-mark-decorative-label = Mark as decorative +pdfjs-editor-alt-text-mark-decorative-description = This is used for ornamental images, like borders or watermarks. +pdfjs-editor-alt-text-cancel-button = Cancel +pdfjs-editor-alt-text-save-button = Save +pdfjs-editor-alt-text-decorative-tooltip = Marked as decorative +pdfjs-editor-alt-text-textarea = + .placeholder = For example, “A young man sits down at a table to eat a meal” +pdfjs-editor-resizer-top-left = + .aria-label = Top left corner — resize +pdfjs-editor-resizer-top-middle = + .aria-label = Top middle — resize +pdfjs-editor-resizer-top-right = + .aria-label = Top right corner — resize +pdfjs-editor-resizer-middle-right = + .aria-label = Middle right — resize +pdfjs-editor-resizer-bottom-right = + .aria-label = Bottom right corner — resize +pdfjs-editor-resizer-bottom-middle = + .aria-label = Bottom middle — resize +pdfjs-editor-resizer-bottom-left = + .aria-label = Bottom left corner — resize +pdfjs-editor-resizer-middle-left = + .aria-label = Middle left — resize +pdfjs-editor-highlight-colorpicker-label = Highlight color +pdfjs-editor-colorpicker-button = + .title = Change color +pdfjs-editor-colorpicker-dropdown = + .aria-label = Color choices +pdfjs-editor-colorpicker-yellow = + .title = Yellow +pdfjs-editor-colorpicker-green = + .title = Green +pdfjs-editor-colorpicker-blue = + .title = Blue +pdfjs-editor-colorpicker-pink = + .title = Pink +pdfjs-editor-colorpicker-red = + .title = Red +pdfjs-editor-highlight-show-all-button-label = Show all +pdfjs-editor-highlight-show-all-button = + .title = Show all +pdfjs-editor-new-alt-text-dialog-edit-label = Edit alt text (image description) +pdfjs-editor-new-alt-text-dialog-add-label = Add alt text (image description) +pdfjs-editor-new-alt-text-textarea = + .placeholder = Write your description here… +pdfjs-editor-new-alt-text-description = Short description for people who can’t see the image or when the image doesn’t load. +pdfjs-editor-new-alt-text-disclaimer1 = This alt text was created automatically and may be inaccurate. +pdfjs-editor-new-alt-text-disclaimer-learn-more-url = Learn more +pdfjs-editor-new-alt-text-create-automatically-button-label = Create alt text automatically +pdfjs-editor-new-alt-text-not-now-button = Not now +pdfjs-editor-new-alt-text-error-title = Couldn’t create alt text automatically +pdfjs-editor-new-alt-text-error-description = Please write your own alt text or try again later. +pdfjs-editor-new-alt-text-error-close-button = Close +pdfjs-editor-new-alt-text-ai-model-downloading-progress = Downloading alt text AI model ({ $downloadedSize } of { $totalSize } MB) + .aria-valuetext = Downloading alt text AI model ({ $downloadedSize } of { $totalSize } MB) +pdfjs-editor-new-alt-text-added-button = + .aria-label = Alt text added +pdfjs-editor-new-alt-text-added-button-label = Alt text added +pdfjs-editor-new-alt-text-missing-button = + .aria-label = Missing alt text +pdfjs-editor-new-alt-text-missing-button-label = Missing alt text +pdfjs-editor-new-alt-text-to-review-button = + .aria-label = Review alt text +pdfjs-editor-new-alt-text-to-review-button-label = Review alt text +pdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Created automatically: { $generatedAltText } +pdfjs-image-alt-text-settings-button = + .title = Image alt text settings +pdfjs-image-alt-text-settings-button-label = Image alt text settings +pdfjs-editor-alt-text-settings-dialog-label = Image alt text settings +pdfjs-editor-alt-text-settings-automatic-title = Automatic alt text +pdfjs-editor-alt-text-settings-create-model-button-label = Create alt text automatically +pdfjs-editor-alt-text-settings-create-model-description = Suggests descriptions to help people who can’t see the image or when the image doesn’t load. +pdfjs-editor-alt-text-settings-download-model-label = Alt text AI model ({ $totalSize } MB) +pdfjs-editor-alt-text-settings-ai-model-description = Runs locally on your device so your data stays private. Required for automatic alt text. +pdfjs-editor-alt-text-settings-delete-model-button = Delete +pdfjs-editor-alt-text-settings-download-model-button = Download +pdfjs-editor-alt-text-settings-downloading-model-button = Downloading… +pdfjs-editor-alt-text-settings-editor-title = Alt text editor +pdfjs-editor-alt-text-settings-show-dialog-button-label = Show alt text editor right away when adding an image +pdfjs-editor-alt-text-settings-show-dialog-description = Helps you make sure all your images have alt text. +pdfjs-editor-alt-text-settings-close-button = Close +pdfjs-editor-undo-bar-message-highlight = Highlight removed +pdfjs-editor-undo-bar-message-freetext = Text removed +pdfjs-editor-undo-bar-message-ink = Drawing removed +pdfjs-editor-undo-bar-message-stamp = Image removed +pdfjs-editor-undo-bar-message-multiple = + { $count -> + [one] { $count } annotation removed + *[other] { $count } annotations removed + } +pdfjs-editor-undo-bar-undo-button = + .title = Undo +pdfjs-editor-undo-bar-undo-button-label = Undo +pdfjs-editor-undo-bar-close-button = + .title = Close +pdfjs-editor-undo-bar-close-button-label = Close`)},b(dm,Vt);let nQ=dm;const ZS=1e3,tS=50,FS=1e3;function iR(){return document.location.hash}var eF,Nl,LZ,gn,fV,SW,Kn,RR,kh,zh,NR,Um,Zm;class cS{constructor({linkService:l,eventBus:d}){b(this,Nl),b(this,eF,null),this.linkService=l,this.eventBus=d,this._initialized=!1,this._fingerprint="",this.reset(),this.eventBus._on("pagesinit",()=>{this._isPagesLoaded=!1,this.eventBus._on("pagesloaded",Z=>{this._isPagesLoaded=!!Z.pagesCount},{once:!0})})}initialize({fingerprint:l,resetHistory:d=!1,updateUrl:Z=!1}){if(!l||typeof l!="string"){console.error('PDFHistory.initialize: The "fingerprint" must be a non-empty string.');return}this._initialized&&this.reset();const t=this._fingerprint!==""&&this._fingerprint!==l;this._fingerprint=l,this._updateUrl=Z===!0,this._initialized=!0,h(this,Nl,Um).call(this);const F=window.history.state;if(this._popStateInProgress=!1,this._blockHashChange=0,this._currentHash=iR(),this._numPositionUpdates=0,this._uid=this._maxUid=0,this._destination=null,this._position=null,!h(this,Nl,SW).call(this,F,!0)||d){const{hash:W,page:s,rotation:n}=h(this,Nl,RR).call(this,!0);if(!W||t||d){h(this,Nl,LZ).call(this,null,!0);return}h(this,Nl,LZ).call(this,{hash:W,page:s,rotation:n},!0);return}const c=F.destination;h(this,Nl,Kn).call(this,c,F.uid,!0),c.rotation!==void 0&&(this._initialRotation=c.rotation),c.dest?(this._initialBookmark=JSON.stringify(c.dest),this._destination.page=null):c.hash?this._initialBookmark=c.hash:c.page&&(this._initialBookmark=`page=${c.page}`)}reset(){this._initialized&&(h(this,Nl,NR).call(this),this._initialized=!1,h(this,Nl,Zm).call(this)),this._updateViewareaTimeout&&(clearTimeout(this._updateViewareaTimeout),this._updateViewareaTimeout=null),this._initialBookmark=null,this._initialRotation=null}push({namedDest:l=null,explicitDest:d,pageNumber:Z}){if(!this._initialized)return;if(l&&typeof l!="string"){console.error(`PDFHistory.push: "${l}" is not a valid namedDest parameter.`);return}else if(Array.isArray(d)){if(!h(this,Nl,fV).call(this,Z)&&(Z!==null||this._destination)){console.error(`PDFHistory.push: "${Z}" is not a valid pageNumber parameter.`);return}}else{console.error(`PDFHistory.push: "${d}" is not a valid explicitDest parameter.`);return}const t=l||JSON.stringify(d);if(!t)return;let F=!1;if(this._destination&&(aS(this._destination.hash,t)||WS(this._destination.dest,d))){if(this._destination.page)return;F=!0}this._popStateInProgress&&!F||(h(this,Nl,LZ).call(this,{dest:d,hash:t,page:Z,rotation:this.linkService.rotation},F),this._popStateInProgress||(this._popStateInProgress=!0,Promise.resolve().then(()=>{this._popStateInProgress=!1})))}pushPage(l){var d;if(this._initialized){if(!h(this,Nl,fV).call(this,l)){console.error(`PDFHistory.pushPage: "${l}" is not a valid page number.`);return}((d=this._destination)==null?void 0:d.page)!==l&&(this._popStateInProgress||(h(this,Nl,LZ).call(this,{dest:null,hash:`page=${l}`,page:l,rotation:this.linkService.rotation}),this._popStateInProgress||(this._popStateInProgress=!0,Promise.resolve().then(()=>{this._popStateInProgress=!1}))))}}pushCurrentPosition(){!this._initialized||this._popStateInProgress||h(this,Nl,gn).call(this)}back(){if(!this._initialized||this._popStateInProgress)return;const l=window.history.state;h(this,Nl,SW).call(this,l)&&l.uid>0&&window.history.back()}forward(){if(!this._initialized||this._popStateInProgress)return;const l=window.history.state;h(this,Nl,SW).call(this,l)&&l.uid0)}get initialBookmark(){return this._initialized?this._initialBookmark:null}get initialRotation(){return this._initialized?this._initialRotation:null}}eF=new WeakMap,Nl=new WeakSet,LZ=function(U,l=!1){const d=l||!this._destination,Z={fingerprint:this._fingerprint,uid:d?this._uid:this._uid+1,destination:U};h(this,Nl,Kn).call(this,U,Z.uid);let t;if(this._updateUrl&&U!=null&&U.hash){const F=document.location.href.split("#",1)[0];F.startsWith("file://")||(t=`${F}#${U.hash}`)}d?window.history.replaceState(Z,"",t):window.history.pushState(Z,"",t)},gn=function(U=!1){if(!this._position)return;let l=this._position;if(U&&(l=Object.assign(Object.create(null),this._position),l.temporary=!0),!this._destination){h(this,Nl,LZ).call(this,l);return}if(this._destination.temporary){h(this,Nl,LZ).call(this,l,!0);return}if(this._destination.hash===l.hash||!this._destination.page&&this._numPositionUpdates<=tS)return;let d=!1;if(this._destination.page>=l.first&&this._destination.page<=l.page){if(this._destination.dest!==void 0||!this._destination.first)return;d=!0}h(this,Nl,LZ).call(this,l,d)},fV=function(U){return Number.isInteger(U)&&U>0&&U<=this.linkService.pagesCount},SW=function(U,l=!1){if(!U)return!1;if(U.fingerprint!==this._fingerprint)if(l){if(typeof U.fingerprint!="string"||U.fingerprint.length!==this._fingerprint.length)return!1;const[d]=performance.getEntriesByType("navigation");if((d==null?void 0:d.type)!=="reload")return!1}else return!1;return!(!Number.isInteger(U.uid)||U.uid<0||U.destination===null||typeof U.destination!="object")},Kn=function(U,l,d=!1){this._updateViewareaTimeout&&(clearTimeout(this._updateViewareaTimeout),this._updateViewareaTimeout=null),d&&U!=null&&U.temporary&&delete U.temporary,this._destination=U,this._uid=l,this._maxUid=Math.max(this._maxUid,l),this._numPositionUpdates=0},RR=function(U=!1){const l=unescape(iR()).substring(1),d=WQ(l),Z=d.get("nameddest")||"";let t=d.get("page")|0;return(!h(this,Nl,fV).call(this,t)||U&&Z.length>0)&&(t=null),{hash:l,page:t,rotation:this.linkService.rotation}},kh=function({location:U}){this._updateViewareaTimeout&&(clearTimeout(this._updateViewareaTimeout),this._updateViewareaTimeout=null),this._position={hash:U.pdfOpenParams.substring(1),page:this.linkService.page,first:U.pageNumber,rotation:U.rotation},!this._popStateInProgress&&(this._isPagesLoaded&&this._destination&&!this._destination.page&&this._numPositionUpdates++,this._updateViewareaTimeout=setTimeout(()=>{this._popStateInProgress||h(this,Nl,gn).call(this,!0),this._updateViewareaTimeout=null},FS))},zh=function({state:U}){const l=iR(),d=this._currentHash!==l;if(this._currentHash=l,!U){this._uid++;const{hash:t,page:F,rotation:c}=h(this,Nl,RR).call(this);h(this,Nl,LZ).call(this,{hash:t,page:F,rotation:c},!0);return}if(!h(this,Nl,SW).call(this,U))return;this._popStateInProgress=!0,d&&(this._blockHashChange++,sG({target:window,name:"hashchange",delay:ZS}).then(()=>{this._blockHashChange--}));const Z=U.destination;h(this,Nl,Kn).call(this,Z,U.uid,!0),Ib(Z.rotation)&&(this.linkService.rotation=Z.rotation),Z.dest?this.linkService.goToDestination(Z.dest):Z.hash?this.linkService.setHash(Z.hash):Z.page&&(this.linkService.page=Z.page),Promise.resolve().then(()=>{this._popStateInProgress=!1})},NR=function(){(!this._destination||this._destination.temporary)&&h(this,Nl,gn).call(this)},Um=function(){if(a(this,eF))return;R(this,eF,new AbortController);const{signal:U}=a(this,eF);this.eventBus._on("updateviewarea",h(this,Nl,kh).bind(this),{signal:U}),window.addEventListener("popstate",h(this,Nl,zh).bind(this),{signal:U}),window.addEventListener("pagehide",h(this,Nl,NR).bind(this),{signal:U})},Zm=function(){var U;(U=a(this,eF))==null||U.abort(),R(this,eF,null)};function aS(U,l){return typeof U!="string"||typeof l!="string"?!1:U===l||WQ(U).get("nameddest")===l}function WS(U,l){function d(Z,t){if(typeof Z!=typeof t||Array.isArray(Z)||Array.isArray(t))return!1;if(Z!==null&&typeof Z=="object"&&t!==null){if(Object.keys(Z).length!==Object.keys(t).length)return!1;for(const F in Z)if(!d(Z[F],t[F]))return!1;return!0}return Z===t||Number.isNaN(Z)&&Number.isNaN(t)}if(!(Array.isArray(U)&&Array.isArray(l))||U.length!==l.length)return!1;for(let Z=0,t=U.length;Z1;(function(){(t||Z)&&hR.set("maxCanvasPixels",5242880)})(),function(){Z&&hR.set("useSystemFonts",!1)}()}const k={BROWSER:1,VIEWER:2,API:4,WORKER:8,EVENT_DISPATCH:16,PREFERENCE:128},eR={BOOLEAN:1,NUMBER:2,OBJECT:4,STRING:8,UNDEFINED:16},tZ={allowedGlobalEvents:{value:null,kind:k.BROWSER},canvasMaxAreaInBytes:{value:-1,kind:k.BROWSER+k.API},isInAutomation:{value:!1,kind:k.BROWSER},localeProperties:{value:{lang:navigator.language||"en-US"},kind:k.BROWSER},nimbusDataStr:{value:"",kind:k.BROWSER},supportsCaretBrowsingMode:{value:!1,kind:k.BROWSER},supportsDocumentFonts:{value:!0,kind:k.BROWSER},supportsIntegratedFind:{value:!1,kind:k.BROWSER},supportsMouseWheelZoomCtrlKey:{value:!0,kind:k.BROWSER},supportsMouseWheelZoomMetaKey:{value:!0,kind:k.BROWSER},supportsPinchToZoom:{value:!0,kind:k.BROWSER},toolbarDensity:{value:0,kind:k.BROWSER+k.EVENT_DISPATCH},altTextLearnMoreUrl:{value:"",kind:k.VIEWER+k.PREFERENCE},annotationEditorMode:{value:0,kind:k.VIEWER+k.PREFERENCE},annotationMode:{value:2,kind:k.VIEWER+k.PREFERENCE},cursorToolOnLoad:{value:0,kind:k.VIEWER+k.PREFERENCE},debuggerSrc:{value:"./debugger.mjs",kind:k.VIEWER},defaultZoomDelay:{value:400,kind:k.VIEWER+k.PREFERENCE},defaultZoomValue:{value:"",kind:k.VIEWER+k.PREFERENCE},disableHistory:{value:!1,kind:k.VIEWER},disablePageLabels:{value:!1,kind:k.VIEWER+k.PREFERENCE},enableAltText:{value:!1,kind:k.VIEWER+k.PREFERENCE},enableAltTextModelDownload:{value:!0,kind:k.VIEWER+k.PREFERENCE+k.EVENT_DISPATCH},enableGuessAltText:{value:!0,kind:k.VIEWER+k.PREFERENCE+k.EVENT_DISPATCH},enableHighlightFloatingButton:{value:!1,kind:k.VIEWER+k.PREFERENCE},enableNewAltTextWhenAddingImage:{value:!0,kind:k.VIEWER+k.PREFERENCE},enablePermissions:{value:!1,kind:k.VIEWER+k.PREFERENCE},enablePrintAutoRotate:{value:!0,kind:k.VIEWER+k.PREFERENCE},enableScripting:{value:!0,kind:k.VIEWER+k.PREFERENCE},enableUpdatedAddImage:{value:!1,kind:k.VIEWER+k.PREFERENCE},externalLinkRel:{value:"noopener noreferrer nofollow",kind:k.VIEWER},externalLinkTarget:{value:0,kind:k.VIEWER+k.PREFERENCE},highlightEditorColors:{value:"yellow=#FFFF98,green=#53FFBC,blue=#80EBFF,pink=#FFCBE6,red=#FF4F5F",kind:k.VIEWER+k.PREFERENCE},historyUpdateUrl:{value:!1,kind:k.VIEWER+k.PREFERENCE},ignoreDestinationZoom:{value:!1,kind:k.VIEWER+k.PREFERENCE},imageResourcesPath:{value:"./images/",kind:k.VIEWER},maxCanvasPixels:{value:2**25,kind:k.VIEWER},forcePageColors:{value:!1,kind:k.VIEWER+k.PREFERENCE},pageColorsBackground:{value:"Canvas",kind:k.VIEWER+k.PREFERENCE},pageColorsForeground:{value:"CanvasText",kind:k.VIEWER+k.PREFERENCE},pdfBugEnabled:{value:!1,kind:k.VIEWER+k.PREFERENCE},printResolution:{value:150,kind:k.VIEWER},sidebarViewOnLoad:{value:-1,kind:k.VIEWER+k.PREFERENCE},scrollModeOnLoad:{value:-1,kind:k.VIEWER+k.PREFERENCE},spreadModeOnLoad:{value:-1,kind:k.VIEWER+k.PREFERENCE},textLayerMode:{value:1,kind:k.VIEWER+k.PREFERENCE},viewOnLoad:{value:0,kind:k.VIEWER+k.PREFERENCE},cMapPacked:{value:!0,kind:k.API},cMapUrl:{value:"../web/cmaps/",kind:k.API},disableAutoFetch:{value:!1,kind:k.API+k.PREFERENCE},disableFontFace:{value:!1,kind:k.API+k.PREFERENCE},disableRange:{value:!1,kind:k.API+k.PREFERENCE},disableStream:{value:!1,kind:k.API+k.PREFERENCE},docBaseUrl:{value:"",kind:k.API},enableHWA:{value:!0,kind:k.API+k.VIEWER+k.PREFERENCE},enableXfa:{value:!0,kind:k.API+k.PREFERENCE},fontExtraProperties:{value:!1,kind:k.API},isEvalSupported:{value:!0,kind:k.API},isOffscreenCanvasSupported:{value:!0,kind:k.API},maxImageSize:{value:-1,kind:k.API},pdfBug:{value:!1,kind:k.API},standardFontDataUrl:{value:"../web/standard_fonts/",kind:k.API},useSystemFonts:{value:void 0,kind:k.API,type:eR.BOOLEAN+eR.UNDEFINED},verbosity:{value:1,kind:k.API},workerPort:{value:null,kind:k.WORKER},workerSrc:{value:"../build/pdf.worker.mjs",kind:k.WORKER}};tZ.defaultUrl={value:"compressed.tracemonkey-pldi-09.pdf",kind:k.VIEWER},tZ.sandboxBundleSrc={value:"../build/pdf.sandbox.mjs",kind:k.VIEWER},tZ.viewerCssTheme={value:0,kind:k.VIEWER+k.PREFERENCE},tZ.enableFakeMLManager={value:!0,kind:k.VIEWER};tZ.disablePreferences={value:!1,kind:k.VIEWER};var IF;const mZ=class{static get(l){return a(this,IF).get(l)}static getAll(l=null,d=!1){const Z=Object.create(null);for(const t in tZ){const F=tZ[t];l&&!(l&F.kind)||(Z[t]=d?F.value:a(this,IF).get(t))}return Z}static set(l,d){this.setAll({[l]:d})}static setAll(l,d=!1){this._hasInvokedSet||(this._hasInvokedSet=!0);let Z;for(const t in l){const F=tZ[t],c=l[t];if(!F||!(typeof c==typeof F.value||eR[(typeof c).toUpperCase()]&F.type))continue;const{kind:W}=F;d&&!(W&k.BROWSER||W&k.PREFERENCE)||(this.eventBus&&W&k.EVENT_DISPATCH&&(Z||(Z=new Map)).set(t,c),a(this,IF).set(t,c))}if(Z)for(const[t,F]of Z)this.eventBus.dispatch(t.toLowerCase(),{source:this,value:F})}};IF=new WeakMap,f(mZ,"eventBus"),b(mZ,IF,new Map),(()=>{for(const U in tZ)a(mZ,IF).set(U,tZ[U].value);for(const[U,l]of hR)a(mZ,IF).set(U,l);mZ._hasInvokedSet=!1,mZ._checkDisablePreferences=()=>mZ.get("disablePreferences")?!0:(mZ._hasInvokedSet&&console.warn('The Preferences may override manually set AppOptions; please use the "disablePreferences"-option to prevent that.'),!1)})();let nS=mZ;var MZ;class VS{constructor(l){b(this,MZ,null),this.pageIndex=l.pageIndex}async render(l="display"){l!=="display"||a(this,MZ)||this._cancelled||R(this,MZ,new dG({pageIndex:this.pageIndex}))}cancel(){this._cancelled=!0,a(this,MZ)&&(a(this,MZ).destroy(),R(this,MZ,null))}setParent(l){var d;(d=a(this,MZ))==null||d.setParent(l)}getDrawLayer(){return a(this,MZ)}}MZ=new WeakMap;const Lh={Document:null,DocumentFragment:null,Part:"group",Sect:"group",Div:"group",Aside:"note",NonStruct:"none",P:null,H:"heading",Title:null,FENote:"note",Sub:"group",Lbl:null,Span:null,Em:null,Strong:null,Link:"link",Annot:"note",Form:"form",Ruby:null,RB:null,RT:null,RP:null,Warichu:null,WT:null,WP:null,L:"list",LI:"listitem",LBody:null,Table:"table",TR:"row",TH:"columnheader",TD:"cell",THead:"columnheader",TBody:null,TFoot:null,Caption:null,Figure:"figure",Formula:null,Artifact:null},QS=/^H(\d+)$/;var ga,vU,Ka,TW,XW,Jt,YF,si,Ih,bR;class tm{constructor(l,d){b(this,YF),b(this,ga),b(this,vU,null),b(this,Ka),b(this,TW,new Map),b(this,XW),b(this,Jt,null),R(this,ga,l.getStructTree()),R(this,XW,d)}async render(){var l;if(a(this,Ka))return a(this,Ka);const{promise:d,resolve:Z,reject:t}=Promise.withResolvers();R(this,Ka,d);try{R(this,vU,h(this,YF,bR).call(this,await a(this,ga)))}catch(F){t(F)}return R(this,ga,null),(l=a(this,vU))==null||l.classList.add("structTree"),Z(a(this,vU)),d}async getAriaAttributes(l){try{return await this.render(),a(this,TW).get(l)}catch{}return null}hide(){a(this,vU)&&!a(this,vU).hidden&&(a(this,vU).hidden=!0)}show(){var l;(l=a(this,vU))!=null&&l.hidden&&(a(this,vU).hidden=!1)}addElementsToTextLayer(){var l;if(a(this,Jt)){for(const[d,Z]of a(this,Jt))(l=document.getElementById(d))==null||l.append(Z);a(this,Jt).clear(),R(this,Jt,null)}}}ga=new WeakMap,vU=new WeakMap,Ka=new WeakMap,TW=new WeakMap,XW=new WeakMap,Jt=new WeakMap,YF=new WeakSet,si=function(U,l){const{alt:d,id:Z,lang:t}=U;if(d!==void 0){let F=!1;const c=MW(d);for(const W of U.children)if(W.type==="annotation"){let s=a(this,TW).get(W.id);s||(s=new Map,a(this,TW).set(W.id,s)),s.set("aria-label",c),F=!0}F||l.setAttribute("aria-label",c)}Z!==void 0&&l.setAttribute("aria-owns",Z),t!==void 0&&l.setAttribute("lang",MW(t,!0))},Ih=function(U,l){const{alt:d,bbox:Z,children:t}=U,F=t==null?void 0:t[0];if(!a(this,XW)||!d||!Z||(F==null?void 0:F.type)!=="content")return!1;const{id:c}=F;if(!c)return!1;l.setAttribute("aria-owns",c);const W=document.createElement("span");(a(this,Jt)||R(this,Jt,new Map)).set(c,W),W.setAttribute("role","img"),W.setAttribute("aria-label",MW(d));const{pageHeight:s,pageX:n,pageY:V}=a(this,XW),Q="calc(var(--scale-factor)*",{style:i}=W;return i.width=`${Q}${Z[2]-Z[0]}px)`,i.height=`${Q}${Z[3]-Z[1]}px)`,i.left=`${Q}${Z[0]-n}px)`,i.top=`${Q}${s-Z[3]+V}px)`,!0},bR=function(U){if(!U)return null;const l=document.createElement("span");if("role"in U){const{role:d}=U,Z=d.match(QS);if(Z?(l.setAttribute("role","heading"),l.setAttribute("aria-level",Z[1])):Lh[d]&&l.setAttribute("role",Lh[d]),d==="Figure"&&h(this,YF,Ih).call(this,U,l))return l}if(h(this,YF,si).call(this,U,l),U.children)if(U.children.length===1&&"id"in U.children[0])h(this,YF,si).call(this,U.children[0],l);else for(const d of U.children)l.append(h(this,YF,bR).call(this,d));return l};var Zt,BU,tt,bF,pW,_n,qn,mR;const Fm=class $n{constructor(){b(this,qn),b(this,Zt,!1),b(this,BU,null),b(this,tt,new Map),b(this,bF,new Map)}setTextMapping(l){R(this,BU,l)}enable(){if(a(this,Zt))throw new Error("TextAccessibilityManager is already enabled.");if(!a(this,BU))throw new Error("Text divs and strings have not been set.");if(R(this,Zt,!0),R(this,BU,a(this,BU).slice()),a(this,BU).sort(h($n,pW,_n)),a(this,tt).size>0){const l=a(this,BU);for(const[d,Z]of a(this,tt)){if(!document.getElementById(d)){a(this,tt).delete(d);continue}h(this,qn,mR).call(this,d,l[Z])}}for(const[l,d]of a(this,bF))this.addPointerInTextLayer(l,d);a(this,bF).clear()}disable(){a(this,Zt)&&(a(this,bF).clear(),R(this,BU,null),R(this,Zt,!1))}removePointerInTextLayer(l){if(!a(this,Zt)){a(this,bF).delete(l);return}const d=a(this,BU);if(!d||d.length===0)return;const{id:Z}=l,t=a(this,tt).get(Z);if(t===void 0)return;const F=d[t];a(this,tt).delete(Z);let c=F.getAttribute("aria-owns");c!=null&&c.includes(Z)&&(c=c.split(" ").filter(W=>W!==Z).join(" "),c?F.setAttribute("aria-owns",c):(F.removeAttribute("aria-owns"),F.setAttribute("role","presentation")))}addPointerInTextLayer(l,d){const{id:Z}=l;if(!Z)return null;if(!a(this,Zt))return a(this,bF).set(l,d),null;d&&this.removePointerInTextLayer(l);const t=a(this,BU);if(!t||t.length===0)return null;const F=DW(t,n=>{var V;return h(V=$n,pW,_n).call(V,l,n)<0}),c=Math.max(0,F-1),W=t[c];h(this,qn,mR).call(this,Z,W),a(this,tt).set(Z,c);const s=W.parentNode;return s!=null&&s.classList.contains("markedContent")?s.id:null}moveElementInDOM(l,d,Z,t){const F=this.addPointerInTextLayer(Z,t);if(!l.hasChildNodes())return l.append(d),F;const c=Array.from(l.childNodes).filter(n=>n!==d);if(c.length===0)return F;const W=Z||d,s=DW(c,n=>{var V;return h(V=$n,pW,_n).call(V,W,n)<0});return s===0?c[0].before(d):c[s-1].after(d),F}};Zt=new WeakMap,BU=new WeakMap,tt=new WeakMap,bF=new WeakMap,pW=new WeakSet,_n=function(U,l){const d=U.getBoundingClientRect(),Z=l.getBoundingClientRect();if(d.width===0&&d.height===0)return 1;if(Z.width===0&&Z.height===0)return-1;const t=d.y,F=d.y+d.height,c=d.y+d.height/2,W=Z.y,s=Z.y+Z.height,n=Z.y+Z.height/2;if(c<=W&&n>=F)return-1;if(n<=t&&c>=s)return 1;const V=d.x+d.width/2,Q=Z.x+Z.width/2;return V-Q},qn=new WeakSet,mR=function(U,l){const d=l.getAttribute("aria-owns");d!=null&&d.includes(U)||l.setAttribute("aria-owns",d?`${d} ${U}`:U),l.removeAttribute("role")},b(Fm,pW);let iS=Fm;var mF;class RS{constructor({findController:l,eventBus:d,pageIndex:Z}){b(this,mF,null),this.findController=l,this.matches=[],this.eventBus=d,this.pageIdx=Z,this.textDivs=null,this.textContentItemsStr=null,this.enabled=!1}setTextMapping(l,d){this.textDivs=l,this.textContentItemsStr=d}enable(){if(!this.textDivs||!this.textContentItemsStr)throw new Error("Text divs and strings have not been set.");if(this.enabled)throw new Error("TextHighlighter is already enabled.");this.enabled=!0,a(this,mF)||(R(this,mF,new AbortController),this.eventBus._on("updatetextlayermatches",l=>{(l.pageIndex===this.pageIdx||l.pageIndex===-1)&&this._updateMatches()},{signal:a(this,mF).signal})),this._updateMatches()}disable(){var l;this.enabled&&(this.enabled=!1,(l=a(this,mF))==null||l.abort(),R(this,mF,null),this._updateMatches(!0))}_convertMatches(l,d){if(!l)return[];const{textContentItemsStr:Z}=this;let t=0,F=0;const c=Z.length-1,W=[];for(let s=0,n=l.length;s=F+Z[t].length;)F+=Z[t].length,t++;t===Z.length&&console.error("Could not find a matching mapping");const Q={begin:{divIdx:t,offset:V-F}};for(V+=d[s];t!==c&&V>F+Z[t].length;)F+=Z[t].length,t++;Q.end={divIdx:t,offset:V-F},W.push(Q)}return W}_renderMatches(l){if(l.length===0)return;const{findController:d,pageIdx:Z}=this,{textContentItemsStr:t,textDivs:F}=this,c=Z===d.selected.pageIdx,W=d.selected.matchIdx,s=d.state.highlightAll;let n=null;const V={offset:void 0};function Q(J,S){const G=J.divIdx;return F[G].textContent="",i(G,0,J.offset,S)}function i(J,S,G,T){let p=F[J];if(p.nodeType===Node.TEXT_NODE){const o=document.createElement("span");p.before(o),o.append(p),F[J]=o,p=o}const u=t[J].substring(S,G),Y=document.createTextNode(u);if(T){const o=document.createElement("span");if(o.className=`${T} appended`,o.append(Y),p.append(o),T.includes("selected")){const{left:X}=o.getClientRects()[0],B=p.getBoundingClientRect().left;return X-B}return 0}return p.append(Y),0}let N=W,e=N+1;if(s)N=0,e=l.length;else if(!c)return;let m=-1,M=-1;for(let J=N;J{d.classList.add("selecting")}),d.addEventListener("copy",Z=>{if(!a(this,AV)){const t=document.getSelection();Z.clipboardData.setData("text/plain",MW(tG(t.toString())))}WR(Z)}),a(r0,fd).set(d,U),h(l=r0,dV,Dh).call(l)},dV=new WeakSet,am=function(U){var l;a(this,fd).delete(U),a(this,fd).size===0&&((l=a(this,$t))==null||l.abort(),R(this,$t,null))},Dh=function(){if(a(this,$t))return;R(this,$t,new AbortController);const{signal:U}=a(this,$t),l=(F,c)=>{c.append(F),F.style.width="",F.style.height="",c.classList.remove("selecting")};let d=!1;document.addEventListener("pointerdown",()=>{d=!0},{signal:U}),document.addEventListener("pointerup",()=>{d=!1,a(this,fd).forEach(l)},{signal:U}),window.addEventListener("blur",()=>{d=!1,a(this,fd).forEach(l)},{signal:U}),document.addEventListener("keyup",()=>{d||a(this,fd).forEach(l)},{signal:U});var Z,t;document.addEventListener("selectionchange",()=>{var F;const c=document.getSelection();if(c.rangeCount===0){a(this,fd).forEach(l);return}const W=new Set;for(let N=0;N{W===this._optionalContentConfigPromise&&(a(this,Qt).initialOptionalContent=s.hasInitialVisibility)}),l.l10n||this.l10n.translate(this.div)}}get renderingState(){return a(this,va)}set renderingState(l){if(l!==a(this,va))switch(R(this,va,l),a(this,GF)&&(clearTimeout(a(this,GF)),R(this,GF,null)),l){case Cl.PAUSED:this.div.classList.remove("loading");break;case Cl.RUNNING:this.div.classList.add("loadingIcon"),R(this,GF,setTimeout(()=>{this.div.classList.add("loading"),R(this,GF,null)},0));break;case Cl.INITIAL:case Cl.FINISHED:this.div.classList.remove("loadingIcon","loading");break}}setPdfPage(l){var d,Z,t,F;this._isStandalone&&(((d=this.pageColors)==null?void 0:d.foreground)==="CanvasText"||((Z=this.pageColors)==null?void 0:Z.background)==="Canvas")&&((t=this._container)==null||t.style.setProperty("--hcm-highlight-filter",l.filterFactory.addHighlightHCMFilter("highlight","CanvasText","Canvas","HighlightText","Highlight")),(F=this._container)==null||F.style.setProperty("--hcm-highlight-selected-filter",l.filterFactory.addHighlightHCMFilter("highlight_selected","CanvasText","Canvas","HighlightText","Highlight"))),this.pdfPage=l,this.pdfPageRotate=l.rotate;const c=(this.rotation+this.pdfPageRotate)%360;this.viewport=l.getViewport({scale:this.scale*zZ.PDF_TO_CSS_UNITS,rotation:c}),h(this,el,aV).call(this),this.reset()}destroy(){var l;this.reset(),(l=this.pdfPage)==null||l.cleanup()}hasEditableAnnotations(){var l;return!!((l=this.annotationLayer)!=null&&l.hasEditableAnnotations())}get _textHighlighter(){return vV(this,"_textHighlighter",new RS({pageIndex:this.id-1,eventBus:this.eventBus,findController:a(this,JF).findController}))}reset({keepAnnotationLayer:l=!1,keepAnnotationEditorLayer:d=!1,keepXfaLayer:Z=!1,keepTextLayer:t=!1,keepCanvasWrapper:F=!1}={}){var c,W,s,n,V;this.cancelRendering({keepAnnotationLayer:l,keepAnnotationEditorLayer:d,keepXfaLayer:Z,keepTextLayer:t}),this.renderingState=Cl.INITIAL;const Q=this.div,i=Q.childNodes,N=l&&((c=this.annotationLayer)==null?void 0:c.div)||null,e=d&&((W=this.annotationEditorLayer)==null?void 0:W.div)||null,m=Z&&((s=this.xfaLayer)==null?void 0:s.div)||null,M=t&&((n=this.textLayer)==null?void 0:n.div)||null,J=F&&a(this,MF)||null;for(let S=i.length-1;S>=0;S--){const G=i[S];switch(G){case N:case e:case m:case M:case J:continue}G.remove();const T=a(this,DF).indexOf(G);T>=0&&(a(this,DF)[T]=null)}Q.removeAttribute("data-loaded"),N&&this.annotationLayer.hide(),e&&this.annotationEditorLayer.hide(),m&&this.xfaLayer.hide(),M&&this.textLayer.hide(),(V=this.structTreeLayer)==null||V.hide(),!F&&a(this,MF)&&(R(this,MF,null),h(this,el,pR).call(this))}toggleEditingMode(l){this.hasEditableAnnotations()&&(R(this,ZV,l),this.reset({keepAnnotationLayer:!0,keepAnnotationEditorLayer:!0,keepXfaLayer:!0,keepTextLayer:!0,keepCanvasWrapper:!0}))}update({scale:l=0,rotation:d=null,optionalContentConfigPromise:Z=null,drawingDelay:t=-1}){var F;this.scale=l||this.scale,typeof d=="number"&&(this.rotation=d),Z instanceof Promise&&(this._optionalContentConfigPromise=Z,Z.then(W=>{Z===this._optionalContentConfigPromise&&(a(this,Qt).initialOptionalContent=W.hasInitialVisibility)})),a(this,Qt).directDrawing=!0;const c=(this.rotation+this.pdfPageRotate)%360;if(this.viewport=this.viewport.clone({scale:this.scale*zZ.PDF_TO_CSS_UNITS,rotation:c}),h(this,el,aV).call(this),this._isStandalone&&((F=this._container)==null||F.style.setProperty("--scale-factor",this.viewport.scale)),this.canvas){let W=!1;if(a(this,j0)){if(this.maxCanvasPixels===0)W=!0;else if(this.maxCanvasPixels>0){const{width:n,height:V}=this.viewport,{sx:Q,sy:i}=this.outputScale;W=(Math.floor(n)*Q|0)*(Math.floor(V)*i|0)>this.maxCanvasPixels}}const s=t>=0&&t<1e3;if(s||W){if(s&&!W&&this.renderingState!==Cl.FINISHED&&(this.cancelRendering({keepAnnotationLayer:!0,keepAnnotationEditorLayer:!0,keepXfaLayer:!0,keepTextLayer:!0,cancelExtraDelay:t}),this.renderingState=Cl.FINISHED,a(this,Qt).directDrawing=!1),this.cssTransform({redrawAnnotationLayer:!0,redrawAnnotationEditorLayer:!0,redrawXfaLayer:!0,redrawTextLayer:!s,hideTextLayer:s}),s)return;this.eventBus.dispatch("pagerendered",{source:this,pageNumber:this.id,cssTransform:!0,timestamp:performance.now(),error:a(this,cc)});return}}this.cssTransform({}),this.reset({keepAnnotationLayer:!0,keepAnnotationEditorLayer:!0,keepXfaLayer:!0,keepTextLayer:!0,keepCanvasWrapper:!0})}cancelRendering({keepAnnotationLayer:l=!1,keepAnnotationEditorLayer:d=!1,keepXfaLayer:Z=!1,keepTextLayer:t=!1,cancelExtraDelay:F=0}={}){var c;this.renderTask&&(this.renderTask.cancel(F),this.renderTask=null),this.resume=null,this.textLayer&&(!t||!this.textLayer.div)&&(this.textLayer.cancel(),this.textLayer=null),this.annotationLayer&&(!l||!this.annotationLayer.div)&&(this.annotationLayer.cancel(),this.annotationLayer=null,this._annotationCanvasMap=null),this.structTreeLayer&&!this.textLayer&&(this.structTreeLayer=null),this.annotationEditorLayer&&(!d||!this.annotationEditorLayer.div)&&(this.drawLayer&&(this.drawLayer.cancel(),this.drawLayer=null),this.annotationEditorLayer.cancel(),this.annotationEditorLayer=null),this.xfaLayer&&(!Z||!this.xfaLayer.div)&&(this.xfaLayer.cancel(),this.xfaLayer=null,(c=this._textHighlighter)==null||c.disable())}cssTransform({redrawAnnotationLayer:l=!1,redrawAnnotationEditorLayer:d=!1,redrawXfaLayer:Z=!1,redrawTextLayer:t=!1,hideTextLayer:F=!1}){var c;const{canvas:W}=this;if(!W)return;const s=a(this,uW);if(this.viewport!==s){const n=(360+this.viewport.rotation-s.rotation)%360;if(n===90||n===270){const{width:V,height:Q}=this.viewport,i=Q/V,N=V/Q;W.style.transform=`rotate(${n}deg) scale(${i},${N})`}else W.style.transform=n===0?"":`rotate(${n}deg)`}l&&this.annotationLayer&&h(this,el,JR).call(this),d&&this.annotationEditorLayer&&(this.drawLayer&&h(this,el,SR).call(this),h(this,el,GR).call(this)),Z&&this.xfaLayer&&h(this,el,TR).call(this),this.textLayer&&(F?(this.textLayer.hide(),(c=this.structTreeLayer)==null||c.hide()):t&&h(this,el,XR).call(this))}get width(){return this.viewport.width}get height(){return this.viewport.height}getPagePoint(l,d){return this.viewport.convertToPdfPoint(l,d)}async draw(){this.renderingState!==Cl.INITIAL&&(console.error("Must be in new state before drawing"),this.reset());const{div:l,l10n:d,pageColors:Z,pdfPage:t,viewport:F}=this;if(!t)throw this.renderingState=Cl.FINISHED,new Error("pdfPage is not loaded");this.renderingState=Cl.RUNNING;let c=a(this,MF);if(c||(c=R(this,MF,document.createElement("div")),c.classList.add("canvasWrapper"),h(this,el,ac).call(this,c,"canvasWrapper")),!this.textLayer&&a(this,Ha)!==ZZ.DISABLE&&!t.isPureXfa&&(this._accessibilityManager||(this._accessibilityManager=new iS),this.textLayer=new sm({pdfPage:t,highlighter:this._textHighlighter,accessibilityManager:this._accessibilityManager,enablePermissions:a(this,Ha)===ZZ.ENABLE_PERMISSIONS,onAppend:y=>{this.l10n.pause(),h(this,el,ac).call(this,y,"textLayer"),this.l10n.resume()}})),!this.annotationLayer&&a(this,x0)!==IZ.DISABLE){const{annotationStorage:y,annotationEditorUIManager:E,downloadManager:D,enableScripting:w,fieldObjectsPromise:I,hasJSActionsPromise:L,linkService:g}=a(this,JF);this._annotationCanvasMap||(this._annotationCanvasMap=new Map),this.annotationLayer=new gb({pdfPage:t,annotationStorage:y,imageResourcesPath:this.imageResourcesPath,renderForms:a(this,x0)===IZ.ENABLE_FORMS,linkService:g,downloadManager:D,enableScripting:w,hasJSActionsPromise:L,fieldObjectsPromise:I,annotationCanvasMap:this._annotationCanvasMap,accessibilityManager:this._accessibilityManager,annotationEditorUIManager:E,onAppend:A=>{h(this,el,ac).call(this,A,"annotationLayer")}})}const W=y=>{if(e==null||e(!1),this.renderingQueue&&!this.renderingQueue.isHighestPriority(this)){this.renderingState=Cl.PAUSED,this.resume=()=>{this.renderingState=Cl.RUNNING,y()};return}y()},{width:s,height:n}=F,V=document.createElement("canvas");V.setAttribute("role","presentation");const Q=!!(Z!=null&&Z.background&&Z!=null&&Z.foreground),i=this.canvas,N=!i&&!Q;this.canvas=V,R(this,uW,F);let e=y=>{if(N){c.prepend(V),e=null;return}y&&(i?(i.replaceWith(V),i.width=i.height=0):c.prepend(V),e=null)};const m=V.getContext("2d",{alpha:!1,willReadFrequently:!a(this,UV)}),M=this.outputScale=new FG;if(this.maxCanvasPixels===0){const y=1/this.scale;M.sx*=y,M.sy*=y,R(this,j0,!0)}else if(this.maxCanvasPixels>0){const y=s*n,E=Math.sqrt(this.maxCanvasPixels/y);M.sx>E||M.sy>E?(M.sx=E,M.sy=E,R(this,j0,!0)):R(this,j0,!1)}const J=Zh(M.sx),S=Zh(M.sy),G=V.width=Ds(Es(s*M.sx),J[0]),T=V.height=Ds(Es(n*M.sy),S[0]),p=Ds(Es(s),J[1]),u=Ds(Es(n),S[1]);M.sx=G/p,M.sy=T/u,a(this,FV)!==J[1]&&(l.style.setProperty("--scale-round-x",`${J[1]}px`),R(this,FV,J[1])),a(this,cV)!==S[1]&&(l.style.setProperty("--scale-round-y",`${S[1]}px`),R(this,cV,S[1]));const Y=M.scaled?[M.sx,0,0,M.sy,0,0]:null,o={canvasContext:m,transform:Y,viewport:F,annotationMode:a(this,x0),optionalContentConfigPromise:this._optionalContentConfigPromise,annotationCanvasMap:this._annotationCanvasMap,pageColors:Z,isEditing:a(this,ZV)},X=this.renderTask=t.render(o);X.onContinue=W;const B=X.promise.then(async()=>{var y;e==null||e(!0),await h(this,el,uR).call(this,X),this.structTreeLayer||(this.structTreeLayer=new tm(t,F.rawDims)),h(this,el,XR).call(this),this.annotationLayer&&await h(this,el,JR).call(this);const{annotationEditorUIManager:E}=a(this,JF);E&&(this.drawLayer||(this.drawLayer=new VS({pageIndex:this.id})),await h(this,el,SR).call(this),this.drawLayer.setParent(c),this.annotationEditorLayer||(this.annotationEditorLayer=new sS({uiManager:E,pdfPage:t,l10n:d,structTreeLayer:this.structTreeLayer,accessibilityManager:this._accessibilityManager,annotationLayer:(y=this.annotationLayer)==null?void 0:y.annotationLayer,textLayer:this.textLayer,drawLayer:this.drawLayer.getDrawLayer(),onAppend:D=>{h(this,el,ac).call(this,D,"annotationEditorLayer")}})),h(this,el,GR).call(this))},y=>(y instanceof KR?(i==null||i.remove(),h(this,el,pR).call(this)):e==null||e(!0),h(this,el,uR).call(this,X,y)));if(t.isPureXfa){if(!this.xfaLayer){const{annotationStorage:y,linkService:E}=a(this,JF);this.xfaLayer=new nm({pdfPage:t,annotationStorage:y,linkService:E})}h(this,el,TR).call(this)}return l.setAttribute("data-loaded",!0),this.eventBus.dispatch("pagerender",{source:this,pageNumber:this.id}),B}setPageLabel(l){this.pageLabel=typeof l=="string"?l:null,this.div.setAttribute("data-l10n-args",JSON.stringify({page:this.pageLabel??this.id})),this.pageLabel!==null?this.div.setAttribute("data-page-label",this.pageLabel):this.div.removeAttribute("data-page-label")}get thumbnailCanvas(){const{directDrawing:l,initialOptionalContent:d,regularAnnotations:Z}=a(this,Qt);return l&&d&&Z?this.canvas:null}}x0=new WeakMap,MF=new WeakMap,UV=new WeakMap,j0=new WeakMap,ZV=new WeakMap,JF=new WeakMap,GF=new WeakMap,uW=new WeakMap,tV=new WeakMap,FV=new WeakMap,cV=new WeakMap,cc=new WeakMap,va=new WeakMap,Ha=new WeakMap,Qt=new WeakMap,DF=new WeakMap,el=new WeakSet,ac=function(U,l){const d=hS.get(l),Z=a(this,DF)[d];if(a(this,DF)[d]=U,Z){Z.replaceWith(U);return}for(let t=d-1;t>=0;t--){const F=a(this,DF)[t];if(F){F.after(U);return}}this.div.prepend(U)},aV=function(){const{viewport:U}=this;if(this.pdfPage){if(a(this,tV)===U.rotation)return;R(this,tV,U.rotation)}cG(this.div,U,!0,!1)},ta=function(U,l){this.eventBus.dispatch(U,{source:this,pageNumber:this.id,error:l})},JR=async function(){let U=null;try{await this.annotationLayer.render(this.viewport,{structTreeLayer:this.structTreeLayer},"display")}catch(l){console.error("#renderAnnotationLayer:",l),U=l}finally{h(this,el,ta).call(this,"annotationlayerrendered",U)}},GR=async function(){let U=null;try{await this.annotationEditorLayer.render(this.viewport,"display")}catch(l){console.error("#renderAnnotationEditorLayer:",l),U=l}finally{h(this,el,ta).call(this,"annotationeditorlayerrendered",U)}},SR=async function(){try{await this.drawLayer.render("display")}catch(U){console.error("#renderDrawLayer:",U)}},TR=async function(){var U;let l=null;try{const d=await this.xfaLayer.render(this.viewport,"display");d!=null&&d.textDivs&&this._textHighlighter&&h(this,el,wh).call(this,d.textDivs)}catch(d){console.error("#renderXfaLayer:",d),l=d}finally{(U=this.xfaLayer)!=null&&U.div&&(this.l10n.pause(),h(this,el,ac).call(this,this.xfaLayer.div,"xfaLayer"),this.l10n.resume()),h(this,el,ta).call(this,"xfalayerrendered",l)}},XR=async function(){if(!this.textLayer)return;let U=null;try{await this.textLayer.render(this.viewport)}catch(l){if(l instanceof AJ)return;console.error("#renderTextLayer:",l),U=l}h(this,el,ta).call(this,"textlayerrendered",U),h(this,el,Eh).call(this)},Eh=async function(){var U,l,d;if(!this.textLayer)return;const Z=await((U=this.structTreeLayer)==null?void 0:U.render());Z&&(this.l10n.pause(),(l=this.structTreeLayer)==null||l.addElementsToTextLayer(),this.canvas&&Z.parentNode!==this.canvas&&this.canvas.append(Z),this.l10n.resume()),(d=this.structTreeLayer)==null||d.show()},wh=async function(U){const l=await this.pdfPage.getTextContent(),d=[];for(const Z of l.items)d.push(Z.str);this._textHighlighter.setTextMapping(U,d),this._textHighlighter.enable()},pR=function(){const{canvas:U}=this;U&&(U.remove(),U.width=U.height=0,this.canvas=null,R(this,uW,null))},uR=async function(U,l=null){if(U===this.renderTask&&(this.renderTask=null),l instanceof KR){R(this,cc,null);return}if(R(this,cc,l),this.renderingState=Cl.FINISHED,a(this,Qt).regularAnnotations=!U.separateAnnots,this.eventBus.dispatch("pagerendered",{source:this,pageNumber:this.id,cssTransform:!1,timestamp:performance.now(),error:a(this,cc)}),l)throw l};async function eS(U){const l="",d=l.split("#",1)[0];let{info:Z,metadata:t,contentDispositionFilename:F,contentLength:c}=await U.getMetadata();if(!c){const{length:W}=await U.getDownloadInfo();c=W}return{...Z,baseURL:d,filesize:c,filename:F||UG(l),metadata:t==null?void 0:t.getRaw(),authors:t==null?void 0:t.get("dc:creator"),numPages:U.numPages,URL:l}}class bS{constructor(l){this._ready=new Promise((d,Z)=>{import(l).then(t=>{d(t.QuickJSSandbox())}).catch(Z)})}async createSandbox(l){(await this._ready).create(l)}async dispatchEventInSandbox(l){const d=await this._ready;setTimeout(()=>d.dispatchEvent(l),0)}async destroySandbox(){(await this._ready).nukeSandbox()}}var TZ,Wc,WV,ec,bc,_V,Od,Gt,YW,cd,zU,_d,Qm,sV,YR,im,Pa;class mS{constructor({eventBus:l,externalServices:d=null,docProperties:Z=null}){b(this,_d),b(this,TZ,null),b(this,Wc,null),b(this,WV,null),b(this,ec,null),b(this,bc,null),b(this,_V,null),b(this,Od,null),b(this,Gt,null),b(this,YW,!1),b(this,cd,null),b(this,zU,null),R(this,bc,l),R(this,_V,d),R(this,WV,Z)}setViewer(l){R(this,Gt,l)}async setDocument(l){var d;if(a(this,Od)&&await h(this,_d,Pa).call(this),R(this,Od,l),!l)return;const[Z,t,F]=await Promise.all([l.getFieldObjects(),l.getCalculationOrderIds(),l.getJSActions()]);if(!Z&&!F){await h(this,_d,Pa).call(this);return}if(l!==a(this,Od))return;try{R(this,cd,h(this,_d,im).call(this))}catch(s){console.error("setDocument:",s),await h(this,_d,Pa).call(this);return}const c=a(this,bc);R(this,ec,new AbortController);const{signal:W}=a(this,ec);c._on("updatefromsandbox",s=>{(s==null?void 0:s.source)===window&&h(this,_d,Qm).call(this,s.detail)},{signal:W}),c._on("dispatcheventinsandbox",s=>{var n;(n=a(this,cd))==null||n.dispatchEventInSandbox(s.detail)},{signal:W}),c._on("pagechanging",({pageNumber:s,previous:n})=>{s!==n&&(h(this,_d,YR).call(this,n),h(this,_d,sV).call(this,s))},{signal:W}),c._on("pagerendered",({pageNumber:s})=>{this._pageOpenPending.has(s)&&s===a(this,Gt).currentPageNumber&&h(this,_d,sV).call(this,s)},{signal:W}),c._on("pagesdestroy",async()=>{var s,n;await h(this,_d,YR).call(this,a(this,Gt).currentPageNumber),await((s=a(this,cd))==null?void 0:s.dispatchEventInSandbox({id:"doc",name:"WillClose"})),(n=a(this,TZ))==null||n.resolve()},{signal:W});try{const s=await a(this,WV).call(this,l);if(l!==a(this,Od))return;await a(this,cd).createSandbox({objects:Z,calculationOrder:t,appInfo:{platform:navigator.platform,language:navigator.language},docInfo:{...s,actions:F}}),c.dispatch("sandboxcreated",{source:this})}catch(s){console.error("setDocument:",s),await h(this,_d,Pa).call(this);return}await((d=a(this,cd))==null?void 0:d.dispatchEventInSandbox({id:"doc",name:"Open"})),await h(this,_d,sV).call(this,a(this,Gt).currentPageNumber,!0),Promise.resolve().then(()=>{l===a(this,Od)&&R(this,YW,!0)})}async dispatchWillSave(){var l;return(l=a(this,cd))==null?void 0:l.dispatchEventInSandbox({id:"doc",name:"WillSave"})}async dispatchDidSave(){var l;return(l=a(this,cd))==null?void 0:l.dispatchEventInSandbox({id:"doc",name:"DidSave"})}async dispatchWillPrint(){var l;if(a(this,cd)){await((l=a(this,zU))==null?void 0:l.promise),R(this,zU,Promise.withResolvers());try{await a(this,cd).dispatchEventInSandbox({id:"doc",name:"WillPrint"})}catch(d){throw a(this,zU).resolve(),R(this,zU,null),d}await a(this,zU).promise}}async dispatchDidPrint(){var l;return(l=a(this,cd))==null?void 0:l.dispatchEventInSandbox({id:"doc",name:"DidPrint"})}get destroyPromise(){var l;return((l=a(this,Wc))==null?void 0:l.promise)||null}get ready(){return a(this,YW)}get _pageOpenPending(){return vV(this,"_pageOpenPending",new Set)}get _visitedPages(){return vV(this,"_visitedPages",new Map)}}TZ=new WeakMap,Wc=new WeakMap,WV=new WeakMap,ec=new WeakMap,bc=new WeakMap,_V=new WeakMap,Od=new WeakMap,Gt=new WeakMap,YW=new WeakMap,cd=new WeakMap,zU=new WeakMap,_d=new WeakSet,Qm=async function(U){var l,d;const Z=a(this,Gt),t=Z.isInPresentationMode||Z.isChangingPresentationMode,{id:F,siblings:c,command:W,value:s}=U;if(!F){switch(W){case"clear":console.clear();break;case"error":console.error(s);break;case"layout":if(!t){const V=pJ(s);Z.spreadMode=V.spreadMode}break;case"page-num":Z.currentPageNumber=s+1;break;case"print":await Z.pagesPromise,a(this,bc).dispatch("print",{source:this});break;case"println":console.log(s);break;case"zoom":t||(Z.currentScaleValue=s);break;case"SaveAs":a(this,bc).dispatch("download",{source:this});break;case"FirstPage":Z.currentPageNumber=1;break;case"LastPage":Z.currentPageNumber=Z.pagesCount;break;case"NextPage":Z.nextPage();break;case"PrevPage":Z.previousPage();break;case"ZoomViewIn":t||Z.increaseScale();break;case"ZoomViewOut":t||Z.decreaseScale();break;case"WillPrintFinished":(l=a(this,zU))==null||l.resolve(),R(this,zU,null);break}return}if(t&&U.focus)return;delete U.id,delete U.siblings;const n=c?[F,...c]:[F];for(const V of n){const Q=document.querySelector(`[data-element-id="${V}"]`);Q?Q.dispatchEvent(new CustomEvent("updatefromsandbox",{detail:U})):(d=a(this,Od))==null||d.annotationStorage.setValue(V,U)}},sV=async function(U,l=!1){const d=a(this,Od),Z=this._visitedPages;if(l&&R(this,TZ,Promise.withResolvers()),!a(this,TZ))return;const t=a(this,Gt).getPageView(U-1);if((t==null?void 0:t.renderingState)!==Cl.FINISHED){this._pageOpenPending.add(U);return}this._pageOpenPending.delete(U);const F=(async()=>{var c,W;const s=await(Z.has(U)?null:(c=t.pdfPage)==null?void 0:c.getJSActions());d===a(this,Od)&&await((W=a(this,cd))==null?void 0:W.dispatchEventInSandbox({id:"page",name:"PageOpen",pageNumber:U,actions:s}))})();Z.set(U,F)},YR=async function(U){var l;const d=a(this,Od),Z=this._visitedPages;if(!a(this,TZ)||this._pageOpenPending.has(U))return;const t=Z.get(U);t&&(Z.set(U,null),await t,d===a(this,Od)&&await((l=a(this,cd))==null?void 0:l.dispatchEventInSandbox({id:"page",name:"PageClose",pageNumber:U})))},im=function(){if(R(this,Wc,Promise.withResolvers()),a(this,cd))throw new Error("#initScripting: Scripting already exists.");return a(this,_V).createScripting()},Pa=async function(){var U,l,d,Z;if(!a(this,cd)){R(this,Od,null),(U=a(this,Wc))==null||U.resolve();return}a(this,TZ)&&(await Promise.race([a(this,TZ).promise,new Promise(t=>{setTimeout(t,1e3)})]).catch(()=>{}),R(this,TZ,null)),R(this,Od,null);try{await a(this,cd).destroySandbox()}catch{}(l=a(this,zU))==null||l.reject(new Error("Scripting destroyed.")),R(this,zU,null),(d=a(this,ec))==null||d.abort(),R(this,ec,null),this._pageOpenPending.clear(),this._visitedPages.clear(),R(this,cd,null),R(this,YW,!1),(Z=a(this,Wc))==null||Z.resolve()};class MS extends mS{constructor(l){l.externalServices||window.addEventListener("updatefromsandbox",d=>{l.eventBus.dispatch("updatefromsandbox",{source:window,detail:d.detail})}),l.externalServices||(l.externalServices={createScripting:()=>new bS(l.sandboxBundleSrc)}),l.docProperties||(l.docProperties=d=>eS(d)),super(l)}}const JS=3e4;class GS{constructor(){this.pdfViewer=null,this.pdfThumbnailViewer=null,this.onIdle=null,this.highestPriorityPage=null,this.idleTimeout=null,this.printing=!1,this.isThumbnailViewEnabled=!1,Object.defineProperty(this,"hasViewer",{value:()=>!!this.pdfViewer})}setViewer(l){this.pdfViewer=l}setThumbnailViewer(l){this.pdfThumbnailViewer=l}isHighestPriority(l){return this.highestPriorityPage===l.renderingId}renderHighestPriority(l){var d;this.idleTimeout&&(clearTimeout(this.idleTimeout),this.idleTimeout=null),!this.pdfViewer.forceRendering(l)&&(this.isThumbnailViewEnabled&&(d=this.pdfThumbnailViewer)!=null&&d.forceRendering()||this.printing||this.onIdle&&(this.idleTimeout=setTimeout(this.onIdle.bind(this),JS)))}getHighestPriority(l,d,Z,t=!1){const F=l.views,c=F.length;if(c===0)return null;for(let Q=0;Qc){const Q=l.ids;for(let i=1,N=s-W;i{this.renderHighestPriority()}).catch(d=>{d instanceof KR||console.error("renderView:",d)});break}return!0}}const Ch=10,Os={FORCE_SCROLL_MODE_PAGE:1e4,FORCE_LAZY_PAGE_INIT:5e3,PAUSE_EAGER_PAGE_INIT:250};function rh(U){return Object.values(lU).includes(U)&&U!==lU.DISABLE}var St,O0,nV,BR;class SS{constructor(l){b(this,nV),b(this,St,new Set),b(this,O0,0),R(this,O0,l)}push(l){const d=a(this,St);d.has(l)&&d.delete(l),d.add(l),d.size>a(this,O0)&&h(this,nV,BR).call(this)}resize(l,d=null){R(this,O0,l);const Z=a(this,St);if(d){const t=Z.size;let F=1;for(const c of Z)if(d.has(c.id)&&(Z.delete(c),Z.add(c)),++F>t)break}for(;Z.size>a(this,O0);)h(this,nV,BR).call(this)}has(l){return a(this,St).has(l)}[Symbol.iterator](){return a(this,St).keys()}}St=new WeakMap,O0=new WeakMap,nV=new WeakSet,BR=function(){const U=a(this,St).keys().next().value;U==null||U.destroy(),a(this,St).delete(U)};var SF,VV,QV,XZ,QU,mc,BW,iV,RV,NV,hV,eV,bV,TF,g0,Mc,sc,fa,BF,oW,mV,Aa,Jc,EF,MV,yW,Wl,Rm,Nm,hm,kW,qV,xh,ni,jh,it,oR,em,bm,mm,yR,Mm,JV;class Jm{constructor(l){b(this,Wl),b(this,SF,null),b(this,VV,null),b(this,QV,null),b(this,XZ,lU.NONE),b(this,QU,null),b(this,mc,IZ.ENABLE_FORMS),b(this,BW,null),b(this,iV,null),b(this,RV,!1),b(this,NV,!1),b(this,hV,!1),b(this,eV,!1),b(this,bV,!1),b(this,TF,null),b(this,g0,null),b(this,Mc,null),b(this,sc,null),b(this,fa,!1),b(this,BF,null),b(this,oW,!1),b(this,mV,0),b(this,Aa,new ResizeObserver(h(this,Wl,Mm).bind(this))),b(this,Jc,null),b(this,EF,null),b(this,MV,!0),b(this,yW,ZZ.ENABLE);var d,Z;const t="4.10.38";if(ih!==t)throw new Error(`The API version "${ih}" does not match the Viewer version "${t}".`);if(this.container=l.container,this.viewer=l.viewer||l.container.firstElementChild,((d=this.container)==null?void 0:d.tagName)!=="DIV"||((Z=this.viewer)==null?void 0:Z.tagName)!=="DIV")throw new Error("Invalid `container` and/or `viewer` option.");if(this.container.offsetParent&&getComputedStyle(this.container).position!=="absolute")throw new Error("The `container` must be absolutely positioned.");a(this,Aa).observe(this.container),this.eventBus=l.eventBus,this.linkService=l.linkService||new gR,this.downloadManager=l.downloadManager||null,this.findController=l.findController||null,R(this,VV,l.altTextManager||null),R(this,iV,l.editorUndoBar||null),this.findController&&(this.findController.onIsPageVisible=c=>this._getVisiblePages().ids.has(c)),this._scriptingManager=l.scriptingManager||null,R(this,yW,l.textLayerMode??ZZ.ENABLE),R(this,mc,l.annotationMode??IZ.ENABLE_FORMS),R(this,XZ,l.annotationEditorMode??lU.NONE),R(this,QV,l.annotationEditorHighlightColors||null),R(this,NV,l.enableHighlightFloatingButton===!0),R(this,eV,l.enableUpdatedAddImage===!0),R(this,bV,l.enableNewAltTextWhenAddingImage===!0),this.imageResourcesPath=l.imageResourcesPath||"",this.enablePrintAutoRotate=l.enablePrintAutoRotate||!1,this.removePageBorders=l.removePageBorders||!1,this.maxCanvasPixels=l.maxCanvasPixels,this.l10n=l.l10n,this.l10n||(this.l10n=new nQ),R(this,hV,l.enablePermissions||!1),this.pageColors=l.pageColors||null,R(this,g0,l.mlManager||null),R(this,RV,l.enableHWA||!1),R(this,MV,l.supportsPinchToZoom!==!1),this.defaultRenderingQueue=!l.renderingQueue,this.defaultRenderingQueue?(this.renderingQueue=new GS,this.renderingQueue.setViewer(this)):this.renderingQueue=l.renderingQueue;const{abortSignal:F}=l;F==null||F.addEventListener("abort",()=>{a(this,Aa).disconnect(),R(this,Aa,null)},{once:!0}),this.scroll=bJ(this.container,this._scrollUpdate.bind(this),F),this.presentationModeState=hc.UNKNOWN,this._resetView(),this.removePageBorders&&this.viewer.classList.add("removePageBorders"),h(this,Wl,yR).call(this),this.eventBus._on("thumbnailrendered",({pageNumber:c,pdfPage:W})=>{const s=this._pages[c-1];a(this,SF).has(s)||W==null||W.cleanup()}),l.l10n||this.l10n.translate(this.container)}get pagesCount(){return this._pages.length}getPageView(l){return this._pages[l]}getCachedPageViews(){return new Set(a(this,SF))}get pageViewsReady(){return this._pages.every(l=>l==null?void 0:l.pdfPage)}get renderForms(){return a(this,mc)===IZ.ENABLE_FORMS}get enableScripting(){return!!this._scriptingManager}get currentPageNumber(){return this._currentPageNumber}set currentPageNumber(l){if(!Number.isInteger(l))throw new Error("Invalid page number.");this.pdfDocument&&(this._setCurrentPageNumber(l,!0)||console.error(`currentPageNumber: "${l}" is not a valid page.`))}_setCurrentPageNumber(l,d=!1){var Z;if(this._currentPageNumber===l)return d&&h(this,Wl,oR).call(this),!0;if(!(0=0&&(d=Z+1)}this._setCurrentPageNumber(d,!0)||console.error(`currentPageLabel: "${l}" is not a valid page.`)}get currentScale(){return this._currentScale!==PQ?this._currentScale:yb}set currentScale(l){if(isNaN(l))throw new Error("Invalid numeric scale.");this.pdfDocument&&h(this,Wl,it).call(this,l,{noScroll:!1})}get currentScaleValue(){return this._currentScaleValue}set currentScaleValue(l){this.pdfDocument&&h(this,Wl,it).call(this,l,{noScroll:!1})}get pagesRotation(){return this._pagesRotation}set pagesRotation(l){if(!Ib(l))throw new Error("Invalid pages rotation angle.");if(!this.pdfDocument||(l%=360,l<0&&(l+=360),this._pagesRotation===l))return;this._pagesRotation=l;const d=this._currentPageNumber;this.refresh(!0,{rotation:l}),this._currentScaleValue&&h(this,Wl,it).call(this,this._currentScaleValue,{noScroll:!0}),this.eventBus.dispatch("rotationchanging",{source:this,pagesRotation:l,pageNumber:d}),this.defaultRenderingQueue&&this.update()}get firstPagePromise(){return this.pdfDocument?this._firstPageCapability.promise:null}get onePageRendered(){return this.pdfDocument?this._onePageRenderedCapability.promise:null}get pagesPromise(){return this.pdfDocument?this._pagesCapability.promise:null}get _layerProperties(){const l=this;return vV(this,"_layerProperties",{get annotationEditorUIManager(){return a(l,QU)},get annotationStorage(){var d;return(d=l.pdfDocument)==null?void 0:d.annotationStorage},get downloadManager(){return l.downloadManager},get enableScripting(){return!!l._scriptingManager},get fieldObjectsPromise(){var d;return(d=l.pdfDocument)==null?void 0:d.getFieldObjects()},get findController(){return l.findController},get hasJSActionsPromise(){var d;return(d=l.pdfDocument)==null?void 0:d.hasJSActions()},get linkService(){return l.linkService}})}async getAllText(){const l=[],d=[];for(let Z=1,t=this.pdfDocument.numPages;Z<=t;++Z){if(a(this,oW))return null;d.length=0;const F=await this.pdfDocument.getPage(Z),{items:c}=await F.getTextContent();for(const W of c)W.str&&d.push(W.str),W.hasEOL&&d.push(` +`);l.push(MW(d.join("")))}return l.join(` +`)}setDocument(l){var d,Z,t;if(this.pdfDocument&&(this.eventBus.dispatch("pagesdestroy",{source:this}),this._cancelRendering(),this._resetView(),(d=this.findController)==null||d.setDocument(null),(Z=this._scriptingManager)==null||Z.setDocument(null),(t=a(this,QU))==null||t.destroy(),R(this,QU,null)),this.pdfDocument=l,!l)return;const F=l.numPages,c=l.getPage(1),W=l.getOptionalContentConfig({intent:"display"}),s=a(this,hV)?l.getPermissions():Promise.resolve(),{eventBus:n,pageColors:V,viewer:Q}=this;R(this,TF,new AbortController);const{signal:i}=a(this,TF);if(F>Os.FORCE_SCROLL_MODE_PAGE){console.warn("Forcing PAGE-scrolling for performance reasons, given the length of the document.");const m=this._scrollMode=sl.PAGE;n.dispatch("scrollmodechanged",{source:this,mode:m})}this._pagesCapability.promise.then(()=>{n.dispatch("pagesloaded",{source:this,pagesCount:F})},()=>{});const N=m=>{const M=this._pages[m.pageNumber-1];M&&a(this,SF).push(M)};n._on("pagerender",N,{signal:i});const e=m=>{m.cssTransform||(this._onePageRenderedCapability.resolve({timestamp:m.timestamp}),n._off("pagerendered",e))};n._on("pagerendered",e,{signal:i}),Promise.all([c,s]).then(([m,M])=>{var J,S;if(l!==this.pdfDocument)return;this._firstPageCapability.resolve(m),this._optionalContentConfigPromise=W;const{annotationEditorMode:G,annotationMode:T,textLayerMode:p}=h(this,Wl,Rm).call(this,M);if(p!==ZZ.DISABLE){const X=R(this,BF,document.createElement("div"));X.id="hiddenCopyElement",Q.before(X)}if(typeof AbortSignal.any=="function"&&G!==lU.DISABLE){const X=G;l.isPureXfa?console.warn("Warning: XFA-editing is not implemented."):rh(X)?(R(this,QU,new qJ(this.container,Q,a(this,VV),n,l,V,a(this,QV),a(this,NV),a(this,eV),a(this,bV),a(this,g0),a(this,iV),a(this,MV))),n.dispatch("annotationeditoruimanager",{source:this,uiManager:a(this,QU)}),X!==lU.NONE&&(X===lU.STAMP&&((J=a(this,g0))==null||J.loadModel("altText")),a(this,QU).updateMode(X))):console.error(`Invalid AnnotationEditor mode: ${X}`)}const u=this._scrollMode===sl.PAGE?null:Q,Y=this.currentScale,o=m.getViewport({scale:Y*zZ.PDF_TO_CSS_UNITS});Q.style.setProperty("--scale-factor",o.scale),V!=null&&V.background&&Q.style.setProperty("--page-bg-color",V.background),((V==null?void 0:V.foreground)==="CanvasText"||(V==null?void 0:V.background)==="Canvas")&&(Q.style.setProperty("--hcm-highlight-filter",l.filterFactory.addHighlightHCMFilter("highlight","CanvasText","Canvas","HighlightText","Highlight")),Q.style.setProperty("--hcm-highlight-selected-filter",l.filterFactory.addHighlightHCMFilter("highlight_selected","CanvasText","Canvas","HighlightText","ButtonText")));for(let X=1;X<=F;++X){const B=new Vm({container:u,eventBus:n,id:X,scale:Y,defaultViewport:o.clone(),optionalContentConfigPromise:W,renderingQueue:this.renderingQueue,textLayerMode:p,annotationMode:T,imageResourcesPath:this.imageResourcesPath,maxCanvasPixels:this.maxCanvasPixels,pageColors:V,l10n:this.l10n,layerProperties:this._layerProperties,enableHWA:a(this,RV)});this._pages.push(B)}(S=this._pages[0])==null||S.setPdfPage(m),this._scrollMode===sl.PAGE?h(this,Wl,kW).call(this):this._spreadMode!==Yd.NONE&&this._updateSpreadMode(),h(this,Wl,Nm).call(this,i).then(async()=>{var X,B;if(l!==this.pdfDocument)return;if((X=this.findController)==null||X.setDocument(l),(B=this._scriptingManager)==null||B.setDocument(l),a(this,BF)&&document.addEventListener("copy",h(this,Wl,hm).bind(this,p),{signal:i}),a(this,QU)&&n.dispatch("annotationeditormodechanged",{source:this,mode:a(this,XZ)}),l.loadingParams.disableAutoFetch||F>Os.FORCE_LAZY_PAGE_INIT){this._pagesCapability.resolve();return}let y=F-1;if(y<=0){this._pagesCapability.resolve();return}for(let E=2;E<=F;++E){const D=l.getPage(E).then(w=>{const I=this._pages[E-1];I.pdfPage||I.setPdfPage(w),--y===0&&this._pagesCapability.resolve()},w=>{console.error(`Unable to get page ${E} to initialize viewer`,w),--y===0&&this._pagesCapability.resolve()});E%Os.PAUSE_EAGER_PAGE_INIT===0&&await D}}),n.dispatch("pagesinit",{source:this}),l.getMetadata().then(({info:X})=>{l===this.pdfDocument&&X.Language&&(Q.lang=X.Language)}),this.defaultRenderingQueue&&this.update()}).catch(m=>{console.error("Unable to initialize viewer",m),this._pagesCapability.reject(m)})}setPageLabels(l){var d;if(this.pdfDocument){l?Array.isArray(l)&&this.pdfDocument.numPages===l.length?this._pageLabels=l:(this._pageLabels=null,console.error("setPageLabels: Invalid page labels.")):this._pageLabels=null;for(let Z=0,t=this._pages.length;Zthis.container.clientWidth}get isVerticalScrollbarEnabled(){return this.isInPresentationMode?!1:this.container.scrollHeight>this.container.clientHeight}_getVisiblePages(){const l=this._scrollMode===sl.PAGE?a(this,Jc).pages:this._pages,d=this._scrollMode===sl.HORIZONTAL,Z=d&&this._isContainerRtl;return MJ({scrollEl:this.container,views:l,sortByVisibility:!0,horizontal:d,rtl:Z})}cleanup(){for(const l of this._pages)l.renderingState!==Cl.FINISHED&&l.reset()}_cancelRendering(){for(const l of this._pages)l.cancelRendering()}forceRendering(l){const d=l||this._getVisiblePages(),Z=h(this,Wl,mm).call(this,d),t=this._spreadMode!==Yd.NONE&&this._scrollMode!==sl.HORIZONTAL,F=this.renderingQueue.getHighestPriority(d,this._pages,Z,t);return F?(h(this,Wl,bm).call(this,F).then(()=>{this.renderingQueue.renderView(F)}),!0):!1}get hasEqualPageSizes(){const l=this._pages[0];for(let d=1,Z=this._pages.length;d{const Z=d.pdfPage.getViewport({scale:1}),t=Db(Z);if(l===void 0)l=t;else if(this.enablePrintAutoRotate&&t!==l)return{width:Z.height,height:Z.width,rotation:(Z.rotation-90)%360};return{width:Z.width,height:Z.height,rotation:Z.rotation}})}get optionalContentConfigPromise(){return this.pdfDocument?this._optionalContentConfigPromise?this._optionalContentConfigPromise:(console.error("optionalContentConfigPromise: Not initialized yet."),this.pdfDocument.getOptionalContentConfig({intent:"display"})):Promise.resolve(null)}set optionalContentConfigPromise(l){if(!(l instanceof Promise))throw new Error(`Invalid optionalContentConfigPromise: ${l}`);this.pdfDocument&&this._optionalContentConfigPromise&&(this._optionalContentConfigPromise=l,this.refresh(!1,{optionalContentConfigPromise:l}),this.eventBus.dispatch("optionalcontentconfigchanged",{source:this,promise:l}))}get scrollMode(){return this._scrollMode}set scrollMode(l){if(this._scrollMode!==l){if(!JJ(l))throw new Error(`Invalid scroll mode: ${l}`);this.pagesCount>Os.FORCE_SCROLL_MODE_PAGE||(this._previousScrollMode=this._scrollMode,this._scrollMode=l,this.eventBus.dispatch("scrollmodechanged",{source:this,mode:l}),this._updateScrollMode(this._currentPageNumber))}}_updateScrollMode(l=null){const d=this._scrollMode,Z=this.viewer;Z.classList.toggle("scrollHorizontal",d===sl.HORIZONTAL),Z.classList.toggle("scrollWrapped",d===sl.WRAPPED),!(!this.pdfDocument||!l)&&(d===sl.PAGE?h(this,Wl,kW).call(this):this._previousScrollMode===sl.PAGE&&this._updateSpreadMode(),this._currentScaleValue&&isNaN(this._currentScaleValue)&&h(this,Wl,it).call(this,this._currentScaleValue,{noScroll:!0}),this._setCurrentPageNumber(l,!0),this.update())}get spreadMode(){return this._spreadMode}set spreadMode(l){if(this._spreadMode!==l){if(!GJ(l))throw new Error(`Invalid spread mode: ${l}`);this._spreadMode=l,this.eventBus.dispatch("spreadmodechanged",{source:this,mode:l}),this._updateSpreadMode(this._currentPageNumber)}}_updateSpreadMode(l=null){if(!this.pdfDocument)return;const d=this.viewer,Z=this._pages;if(this._scrollMode===sl.PAGE)h(this,Wl,kW).call(this);else if(d.textContent="",this._spreadMode===Yd.NONE)for(const t of this._pages)d.append(t.div);else{const t=this._spreadMode-1;let F=null;for(let c=0,W=Z.length;c=n;s--){const V=F[s],Q=F[s+1]-1;if(VQ)return Q-l}if(d){const s=F[0];if(sl)return s-l+1}break}break}case sl.HORIZONTAL:break;case sl.PAGE:case sl.VERTICAL:{if(this._spreadMode===Yd.NONE)break;const Z=this._spreadMode-1;if(d&&l%2!==Z||!d&&l%2===Z)break;const{views:t}=this._getVisiblePages(),F=d?l-1:l+1;for(const{id:c,percent:W,widthPercent:s}of t)if(c===F){if(W>0&&s===100)return 2;break}break}}return 1}nextPage(){const l=this._currentPageNumber,d=this.pagesCount;if(l>=d)return!1;const Z=this._getPageAdvance(l,!1)||1;return this.currentPageNumber=Math.min(l+Z,d),!0}previousPage(){const l=this._currentPageNumber;if(l<=1)return!1;const d=this._getPageAdvance(l,!0)||1;return this.currentPageNumber=Math.max(l-d,1),!0}updateScale({drawingDelay:l,scaleFactor:d=null,steps:Z=null,origin:t}){if(Z===null&&d===null)throw new Error("Invalid updateScale options: either `steps` or `scaleFactor` must be provided.");if(!this.pdfDocument)return;let F=this._currentScale;if(d>0&&d!==1)F=Math.round(F*d*100)/100;else if(Z){const c=Z>0?dh:1/dh,W=Z>0?Math.ceil:Math.floor;Z=Math.abs(Z);do F=W((F*c).toFixed(2)*10)/10;while(--Z>0)}F=Math.max(NJ,Math.min(hJ,F)),h(this,Wl,it).call(this,F,{noScroll:!1,drawingDelay:l,origin:t})}increaseScale(l={}){this.updateScale({...l,steps:l.steps??1})}decreaseScale(l={}){this.updateScale({...l,steps:-(l.steps??1)})}get containerTopLeft(){return a(this,BW)||R(this,BW,[this.container.offsetTop,this.container.offsetLeft])}get annotationEditorMode(){return a(this,QU)?a(this,XZ):lU.DISABLE}set annotationEditorMode({mode:l,editId:d=null,isFromKeyboard:Z=!1}){var t;if(!a(this,QU))throw new Error("The AnnotationEditor is not enabled.");if(a(this,XZ)===l)return;if(!rh(l))throw new Error(`Invalid AnnotationEditor mode: ${l}`);if(!this.pdfDocument)return;l===lU.STAMP&&((t=a(this,g0))==null||t.loadModel("altText"));const{eventBus:F}=this,c=()=>{h(this,Wl,JV).call(this),R(this,XZ,l),a(this,QU).updateMode(l,d,Z),F.dispatch("annotationeditormodechanged",{source:this,mode:l})};if(l===lU.NONE||a(this,XZ)===lU.NONE){const W=l!==lU.NONE;W||this.pdfDocument.annotationStorage.resetModifiedIds();for(const n of this._pages)n.toggleEditingMode(W);const s=h(this,Wl,em).call(this);if(W&&s){h(this,Wl,JV).call(this),R(this,Mc,new AbortController);const n=AbortSignal.any([a(this,TF).signal,a(this,Mc).signal]);F._on("pagerendered",({pageNumber:V})=>{s.delete(V),s.size===0&&R(this,sc,setTimeout(c,0))},{signal:n});return}}c()}refresh(l=!1,d=Object.create(null)){if(this.pdfDocument){for(const Z of this._pages)Z.update(d);a(this,EF)!==null&&(clearTimeout(a(this,EF)),R(this,EF,null)),l||this.update()}}}SF=new WeakMap,VV=new WeakMap,QV=new WeakMap,XZ=new WeakMap,QU=new WeakMap,mc=new WeakMap,BW=new WeakMap,iV=new WeakMap,RV=new WeakMap,NV=new WeakMap,hV=new WeakMap,eV=new WeakMap,bV=new WeakMap,TF=new WeakMap,g0=new WeakMap,Mc=new WeakMap,sc=new WeakMap,fa=new WeakMap,BF=new WeakMap,oW=new WeakMap,mV=new WeakMap,Aa=new WeakMap,Jc=new WeakMap,EF=new WeakMap,MV=new WeakMap,yW=new WeakMap,Wl=new WeakSet,Rm=function(U){const l={annotationEditorMode:a(this,XZ),annotationMode:a(this,mc),textLayerMode:a(this,yW)};return U&&(!U.includes(xs.COPY)&&a(this,yW)===ZZ.ENABLE&&(l.textLayerMode=ZZ.ENABLE_PERMISSIONS),U.includes(xs.MODIFY_CONTENTS)||(l.annotationEditorMode=lU.DISABLE),!U.includes(xs.MODIFY_ANNOTATIONS)&&!U.includes(xs.FILL_INTERACTIVE_FORMS)&&a(this,mc)===IZ.ENABLE_FORMS&&(l.annotationMode=IZ.ENABLE)),l},Nm=async function(U){if(document.visibilityState==="hidden"||!this.container.offsetParent||this._getVisiblePages().views.length===0)return;const l=Promise.withResolvers(),d=new AbortController;document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&l.resolve()},{signal:typeof AbortSignal.any=="function"?AbortSignal.any([U,d.signal]):U}),await Promise.race([this._onePageRenderedCapability.promise,l.promise]),d.abort()},hm=function(U,l){const d=document.getSelection(),{focusNode:Z,anchorNode:t}=d;if(t&&Z&&d.containsNode(a(this,BF))){if(a(this,fa)||U===ZZ.ENABLE_PERMISSIONS){WR(l);return}R(this,fa,!0);const{classList:F}=this.viewer;F.add("copyAll");const c=new AbortController;window.addEventListener("keydown",W=>R(this,oW,W.key==="Escape"),{signal:c.signal}),this.getAllText().then(async W=>{W!==null&&await navigator.clipboard.writeText(W)}).catch(W=>{console.warn(`Something goes wrong when extracting the text: ${W.message}`)}).finally(()=>{R(this,fa,!1),R(this,oW,!1),c.abort(),F.remove("copyAll")}),WR(l)}},kW=function(){if(this._scrollMode!==sl.PAGE)throw new Error("#ensurePageViewVisible: Invalid scrollMode value.");const U=this._currentPageNumber,l=a(this,Jc),d=this.viewer;if(d.textContent="",l.pages.length=0,this._spreadMode===Yd.NONE&&!this.isInPresentationMode){const Z=this._pages[U-1];d.append(Z.div),l.pages.push(Z)}else{const Z=new Set,t=this._spreadMode-1;t===-1?Z.add(U-1):U%2!==t?(Z.add(U-1),Z.add(U)):(Z.add(U-2),Z.add(U-1));const F=document.createElement("div");if(F.className="spread",this.isInPresentationMode){const c=document.createElement("div");c.className="dummyPage",F.append(c)}for(const c of Z){const W=this._pages[c];W&&(F.append(W.div),l.pages.push(W))}d.append(F)}l.scrollDown=U>=l.previousPageNumber,l.previousPageNumber=U},qV=function(U,l=null){const{div:d,id:Z}=U;if(this._currentPageNumber!==Z&&this._setCurrentPageNumber(Z),this._scrollMode===sl.PAGE&&(h(this,Wl,kW).call(this),this.update()),!l&&!this.isInPresentationMode){const t=d.offsetLeft+d.clientLeft,F=t+d.clientWidth,{scrollLeft:c,clientWidth:W}=this.container;(this._scrollMode===sl.HORIZONTAL||tc+W)&&(l={left:0,top:0})}Lb(d,l),!this._currentScaleValue&&this._location&&(this._location=null)},xh=function(U){return U===this._currentScale||Math.abs(U-this._currentScale)<1e-15},ni=function(U,l,{noScroll:d=!1,preset:Z=!1,drawingDelay:t=-1,origin:F=null}){if(this._currentScaleValue=l.toString(),h(this,Wl,xh).call(this,U)){Z&&this.eventBus.dispatch("scalechanging",{source:this,scale:U,presetValue:l});return}this.viewer.style.setProperty("--scale-factor",U*zZ.PDF_TO_CSS_UNITS);const c=t>=0&&t<1e3;this.refresh(!0,{scale:U,drawingDelay:c?t:-1}),c&&R(this,EF,setTimeout(()=>{R(this,EF,null),this.refresh()},t));const W=this._currentScale;if(this._currentScale=U,!d){let s=this._currentPageNumber,n;if(this._location&&!(this.isInPresentationMode||this.isChangingPresentationMode)&&(s=this._location.pageNumber,n=[null,{name:"XYZ"},this._location.left,this._location.top,null]),this.scrollPageIntoView({pageNumber:s,destArray:n,allowNegativeOffset:!0}),Array.isArray(F)){const V=U/W-1,[Q,i]=this.containerTopLeft;this.container.scrollLeft+=(F[0]-i)*V,this.container.scrollTop+=(F[1]-Q)*V}}this.eventBus.dispatch("scalechanging",{source:this,scale:U,presetValue:Z?l:void 0}),this.defaultRenderingQueue&&this.update()},jh=function(){return this._spreadMode!==Yd.NONE&&this._scrollMode!==sl.HORIZONTAL?2:1},it=function(U,l){let d=parseFloat(U);if(d>0)l.preset=!1,h(this,Wl,ni).call(this,d,U,l);else{const Z=this._pages[this._currentPageNumber-1];if(!Z)return;let t=kb,F=zb;this.isInPresentationMode?(t=F=4,this._spreadMode!==Yd.NONE&&(t*=2)):this.removePageBorders?t=F=0:this._scrollMode===sl.HORIZONTAL&&([t,F]=[F,t]);const c=(this.container.clientWidth-t)/Z.width*Z.scale/a(this,Wl,jh),W=(this.container.clientHeight-F)/Z.height*Z.scale;switch(U){case"page-actual":d=1;break;case"page-width":d=c;break;case"page-height":d=W;break;case"page-fit":d=Math.min(c,W);break;case"auto":const s=Db(Z)?c:Math.min(W,c);d=Math.min(eJ,s);break;default:console.error(`#setScale: "${U}" is an unknown zoom value.`);return}l.preset=!0,h(this,Wl,ni).call(this,d,U,l)}},oR=function(){const U=this._pages[this._currentPageNumber-1];this.isInPresentationMode&&h(this,Wl,it).call(this,this._currentScaleValue,{noScroll:!0}),h(this,Wl,qV).call(this,U)},em=function(){const U=this._getVisiblePages(),l=[],{ids:d,views:Z}=U;for(const t of Z){const{view:F}=t;if(!F.hasEditableAnnotations()){d.delete(F.id);continue}l.push(t)}return l.length===0?null:(this.renderingQueue.renderHighestPriority({first:l[0],last:l.at(-1),views:l,ids:d}),d)},bm=async function(U){if(U.pdfPage)return U.pdfPage;try{const l=await this.pdfDocument.getPage(U.id);return U.pdfPage||U.setPdfPage(l),l}catch(l){return console.error("Unable to get page for page view",l),null}},mm=function(U){var l,d;if(((l=U.first)==null?void 0:l.id)===1)return!0;if(((d=U.last)==null?void 0:d.id)===this.pagesCount)return!1;switch(this._scrollMode){case sl.PAGE:return a(this,Jc).scrollDown;case sl.HORIZONTAL:return this.scroll.right}return this.scroll.down},yR=function(U=this.container.clientHeight){U!==a(this,mV)&&(R(this,mV,U),SJ.setProperty("--viewer-container-height",`${U}px`))},Mm=function(U){for(const l of U)if(l.target===this.container){h(this,Wl,yR).call(this,Math.floor(l.borderBoxSize[0].blockSize)),R(this,BW,null);break}},JV=function(){var U;(U=a(this,Mc))==null||U.abort(),R(this,Mc,null),a(this,sc)!==null&&(clearTimeout(a(this,sc)),R(this,sc,null))};class TS extends Jm{_resetView(){super._resetView(),this._scrollMode=sl.PAGE,this._spreadMode=Yd.NONE}set scrollMode(l){}_updateScrollMode(){}set spreadMode(l){}_updateSpreadMode(){}}Il.AnnotationLayerBuilder;Il.DownloadManager;Il.EventBus;Il.FindState;Il.GenericL10n;Il.LinkTarget;Il.PDFFindController;Il.PDFHistory;var XS=Il.PDFLinkService;Il.PDFPageView;Il.PDFScriptingManager;Il.PDFSinglePageViewer;Il.PDFViewer;Il.ProgressBar;Il.RenderingStates;Il.ScrollMode;Il.SimpleLinkService;Il.SpreadMode;Il.StructTreeLayerBuilder;Il.TextLayerBuilder;Il.XfaLayerBuilder;Il.parseQueryString;const pS=["id"],uS=["id"],YS={key:0,class:"textLayer"},BS={key:1,class:"annotationLayer"},kR=pm({__name:"VuePdfEmbed",props:{annotationLayer:{type:Boolean},height:{},id:{},imageResourcesPath:{},linkService:{},page:{},rotation:{default:0},scale:{default:1},source:{},textLayer:{type:Boolean},width:{}},emits:["internal-link-clicked","loaded","loading-failed","password-requested","progress","rendered","rendering-failed"],setup(U,{expose:l,emit:d}){const Z=U,t=d,F=GV([]),c=Ll([]),W=GV(null);let s=null;const{doc:n}=ob({onError:S=>{F.value=[],t("loading-failed",S)},onPasswordRequest({callback:S,isWrongPassword:G}){t("password-requested",{callback:S,isWrongPassword:G})},onProgress:S=>{t("progress",S)},source:um(Z,"source")}),V=HZ(()=>{if(!n.value||!Z.annotationLayer)return null;if(Z.linkService)return Z.linkService;const S=new XS;return S.setDocument(n.value),S.setViewer({scrollPageIntoView:({pageNumber:G})=>{t("internal-link-clicked",G)}}),S}),Q=async S=>{if(!n.value)return;const G=await n.value.getData(),T=await n.value.getMetadata(),p=S??T.contentDispositionFilename??"";iJ(G,p)},i=S=>{let G,T;return Z.height&&!Z.width?(T=Z.height,G=T/S):(G=Z.width??W.value.clientWidth,T=G*S),[G,T]},N=async(S=300,G="",T=!1)=>{var p,u,Y;if(!n.value)return;const o=S/72,X=96/72;let B,y,E;try{B=window.document.createElement("div"),B.style.display="none",window.document.body.appendChild(B),y=await QJ(B);const D=Z.page&&!T?Array.isArray(Z.page)?Z.page:[Z.page]:[...Array(n.value.numPages+1).keys()].slice(1);await Promise.all(D.map(async(w,I)=>{const L=await n.value.getPage(w),g=L.getViewport({scale:1,rotation:0});if(I===0){const Sl=g.width*o/X,Tl=g.height*o/X;VJ(y,Sl,Tl)}const A=window.document.createElement("canvas");A.width=g.width*o,A.height=g.height*o,B.appendChild(A);const Vl=A.cloneNode();y.contentWindow.document.body.appendChild(Vl),await L.render({canvasContext:A.getContext("2d"),intent:"print",transform:[o,0,0,o,0,0],viewport:g}).promise,Vl.getContext("2d").drawImage(A,0,0)})),G&&(E=window.document.title,window.document.title=G),(p=y.contentWindow)==null||p.focus(),(u=y.contentWindow)==null||u.print()}finally{E&&(window.document.title=E),HQ(B),(Y=B.parentNode)==null||Y.removeChild(B)}},e=async()=>{if(!(!n.value||s!=null&&s.isAborted))try{F.value=Z.page?Array.isArray(Z.page)?Z.page:[Z.page]:[...Array(n.value.numPages+1).keys()].slice(1),c.value=Array(F.value.length).fill(1),await Promise.all(F.value.map(async(S,G)=>{const T=await n.value.getPage(S);if(s!=null&&s.isAborted)return;const p=((Z.rotation%90===0?Z.rotation:0)+T.rotate)%360,[u,Y,o]=Array.from(W.value.getElementsByClassName("vue-pdf-embed__page")[G].children),X=!!(p/90%2),B=T.view[2]-T.view[0],y=T.view[3]-T.view[1],[E,D]=i(X?B/y:y/B),w=`${Math.floor(E)}px`,I=`${Math.floor(D)}px`,L=E/(X?y:B),g=T.getViewport({scale:L,rotation:p});c.value[G]=L,u.style.display="block",u.style.width=w,u.style.height=I;const A=[m(T,g.clone({scale:g.scale*window.devicePixelRatio*Z.scale}),u)];return Z.textLayer&&A.push(J(T,g.clone({dontFlip:!0}),Y)),Z.annotationLayer&&A.push(M(T,g.clone({dontFlip:!0}),o||Y)),Promise.all(A)})),s!=null&&s.isAborted||t("rendered")}catch(S){F.value=[],c.value=[],s!=null&&s.isAborted||t("rendering-failed",S)}},m=async(S,G,T)=>{T.width=G.width,T.height=G.height,await S.render({canvasContext:T.getContext("2d"),viewport:G}).promise},M=async(S,G,T)=>{$N(T),new cJ({accessibilityManager:null,annotationCanvasMap:null,annotationEditorUIManager:null,div:T,page:S,structTreeLayer:null,viewport:G}).render({annotations:await S.getAnnotations(),div:T,imageResourcesPath:Z.imageResourcesPath,linkService:V.value,page:S,renderForms:!1,viewport:G})},J=async(S,G,T)=>{$N(T),new WJ({container:T,textContentSource:await S.getTextContent(),viewport:G}).render()};return Vi(n,S=>{S&&t("loaded",S)},{immediate:!0}),Vi(()=>[n.value,Z.annotationLayer,Z.height,Z.imageResourcesPath,Z.page,Z.rotation,Z.scale,Z.textLayer,Z.width],async([S])=>{S&&(s&&(s.isAborted=!0,await s.promise),HQ(W.value),s={isAborted:!1,promise:e()},await s.promise,s=null)},{immediate:!0}),Oh(()=>{HQ(W.value)}),l({doc:n,download:Q,print:N}),(S,G)=>(Ol(),jl("div",{id:S.id,ref_key:"root",ref:W,class:"vue-pdf-embed"},[(Ol(!0),jl(Ym,null,Bm(F.value,(T,p)=>(Ol(),jl("div",{key:T},[HR(S.$slots,"before-page",{page:T}),Hl("div",{id:S.id&&`${S.id}-${T}`,class:"vue-pdf-embed__page",style:om({"--scale-factor":c.value[p],position:"relative"})},[G[0]||(G[0]=Hl("canvas",null,null,-1)),S.textLayer?(Ol(),jl("div",YS)):_a("",!0),S.annotationLayer?(Ol(),jl("div",BS)):_a("",!0)],12,uS),HR(S.$slots,"after-page",{page:T})]))),128))],8,pS))}});window!=null&&window.Vue&&(window.VuePdfEmbed=kR,window.useVuePdfEmbed=ob);vQ!=null&&vQ.workerSrc||(vQ.workerSrc=nJ);const oS={class:"preview-container"},yS={key:0,class:"loading-container"},kS={key:1,class:"loading-container"},zS={key:2,class:"loading-container"},LS={key:0,class:"download-progress"},IS={key:3,class:"error-container"},DS={class:"error-message"},ES={key:4,class:"file-content"},wS={key:0,class:"image-preview"},CS=["src","alt"],rS={key:1,class:"pdf-preview"},xS={key:0,class:"pdf-controls"},jS={class:"pdf-viewer-container"},OS={key:2,class:"video-preview"},gS=["src"],KS={key:3,class:"audio-preview"},vS=["src"],HS={key:4,class:"text-preview"},PS={key:5,class:"office-preview"},fS={key:0,class:"pdf-controls"},AS={class:"pdf-viewer-container"},_S={key:6,class:"unsupported-preview"},qS={class:"file-name"},$S={class:"dialog-footer"},lT={class:"preview-container"},dT={class:"loading-container"},UT={__name:"browseFile",props:{fileType:{type:Array,default:()=>["pdf","png","jpg","jpeg","gif","doc","docx","xls","xlsx","ppt","pptx","txt","mp4","mp3"]},roomId:{type:String,default:""}},emits:["fetch-data"],setup(U,{expose:l,emit:d}){const{proxy:Z}=zm(),t=["doc","docx","xls","xlsx","ppt","pptx"],F=Ll(!1),c=Ll(""),W=Ll(!1),s=Ll(!1),n=Ll(!1),V=Ll(0),Q=Ll("正在加载..."),i=Ll("正在转换文件..."),N=Ll(!1),e=Ll(""),m=Ll(""),M=Ll(""),J=Ll(""),S=Ll(null),G=Ll(""),T=Ll(!1),p=Ll(""),u=Ll(1),Y=Ll(0),o=Ll(1),X=Ll(null);Ll(!1);const B=HZ(()=>{const H=M.value.split(".").pop().toLowerCase();return["png","jpg","jpeg","gif"].includes(H)}),y=HZ(()=>M.value.split(".").pop().toLowerCase()==="pdf"),E=HZ(()=>{const H=M.value.split(".").pop().toLowerCase();return["mp4"].includes(H)}),D=HZ(()=>{const H=M.value.split(".").pop().toLowerCase();return["mp3"].includes(H)}),w=HZ(()=>M.value.split(".").pop().toLowerCase()==="txt"),I=HZ(()=>{const H=M.value.split(".").pop().toLowerCase();return t.includes(H)}),L=HZ(()=>m.value&&m.value.endsWith(".pdf")&&I.value);Lm(async()=>{}),gW.on("subscribeToFileConversionStatusTopic",A),gW.on("fileUploadStatus",Sl),gW.on("subscribeToFilePreviewTopic",Vl),gW.on("fileSuccess",g);function g(){T.value=!0}function A(H){var P;try{const Ql=(P=JSON.parse(sessionStorage.getItem("userData")))==null?void 0:P.uid;if(!Ql){console.error("用户ID不存在");return}const Dl=`xsynergy/room/${H.roomId}/file/${Ql}/conversion_status`;fR.subscribe(Dl,bl)}catch(Ql){console.error("订阅pdf转换事件失败:",Ql)}}function Vl(H){try{const P=`xsynergy/room/${H.roomId}/file/preview`;fR.subscribe(P,Tl)}catch(P){console.error("订阅文件上传事件失败:",P)}}function Sl(H){}function Tl(H,P){var Ql;try{const Dl=H.toString(),vd=JSON.parse(Dl),OF=(Ql=JSON.parse(sessionStorage.getItem("userData")))==null?void 0:Ql.uid;T.value&&(T.value=!1),F.value&&OF!=vd.user_uid?Im.confirm(`用户${vd.user_uid}上传了${vd.file_name}文件,是否立即预览?`,"文件更新提示",{confirmButtonText:"预览",cancelButtonText:"取消",type:"warning",closeOnClickModal:!1,closeOnPressEscape:!1,showClose:!1}).then(()=>{Rl(),gd(vd),xW({message:"已切换到新文件预览",type:"success"})}).catch(()=>{xW({message:"已取消预览新文件,继续查看当前文件",type:"info"})}):(xW({message:`用户${vd.user_uid}上传了${vd.file_name}文件`,type:"info"}),C(vd))}catch(Dl){console.error("处理转换状态消息失败:",Dl),ul("处理转换状态失败")}}function Rl(){W.value=!0,s.value=!1,n.value=!1,V.value=0,N.value=!1,m.value="",J.value="",Kd(),Tc(()=>{})}function bl(H,P){try{const Ql=H.toString(),Dl=JSON.parse(Ql);switch(Dl.status){case"converting":break;case"completed":FU(Dl.task_id,Dl.room_uid);break;case"failed":break;default:console.warn("未知的转换状态:",Dl.status)}}catch(Ql){console.error("处理转换状态消息失败:",Ql),ul("处理转换状态失败")}}const FU=async(H,P)=>{try{if(!H)throw new Error("任务ID不存在");const Ql=await Dm(H,P)}catch(Ql){console.error("获取转换文件失败:",Ql),ul("获取转换文件失败",Ql)}};async function gd(H){M.value=H.file_name||H.source_url.split("/").pop();const P=M.value.split(".").pop().toLowerCase();try{P==="pdf"||t.includes(P)?await z(H.preview_url||H.file_url):P==="txt"?await r(H.preview_url||H.file_url):["png","jpg","jpeg","gif"].includes(P)?(m.value=H.preview_url||H.file_url,Tc(()=>{W.value=!1})):P==="mp4"?(m.value=H.preview_url||H.file_url,Tc(()=>{W.value=!1})):P==="mp3"?(m.value=H.preview_url||H.file_url,Tc(()=>{W.value=!1})):(m.value=H.preview_url||H.file_url,Tc(()=>{W.value=!1}))}catch(Ql){console.error("加载预览文件失败:",Ql),ul("加载预览文件失败",Ql)}}const C=async H=>{Rl(),c.value="文件预览",F.value=!0,S.value=H,await gd(H)},z=async H=>{try{W.value=!1,n.value=!0,V.value=0;const P=await fetch(H);if(!P.ok)throw new Error("文件下载失败");const Ql=P.headers.get("content-length"),Dl=parseInt(Ql,10);let vd=0;const OF=P.body.getReader(),gF=[];for(;;){const{done:Xm,value:vR}=await OF.read();if(Xm)break;gF.push(vR),vd+=vR.length,Dl&&(V.value=Math.round(vd/Dl*100))}const Sm=new Blob(gF),Tm=URL.createObjectURL(Sm);p.value&&URL.revokeObjectURL(p.value),m.value=H,p.value=Tm,u.value=1,Y.value=0,n.value=!1,V.value=0}catch(P){n.value=!1,V.value=0,ul("PDF文件下载失败",P)}},r=async H=>{try{const P=await fetch(H);if(!P.ok)throw new Error("无法加载文本文件");const Ql=await P.text();J.value=Ql,W.value=!1}catch(P){ul("文本文件加载失败",P)}},ll=H=>{Y.value=H.numPages,X.value=H,W.value=!1,s.value=!1},hl=()=>{},_=H=>{console.error("PDF加载错误:",H),ul("PDF文件加载失败",H)},Xl=()=>{u.value>1&&u.value--},rl=()=>{u.value{p.value="",u.value=1,Y.value=0,o.value=1,X.value=null},ad=()=>{W.value=!1},ul=(H,P)=>{P.value=!0,e.value=H,W.value=!1,s.value=!1,n.value=!1,V.value=0,xW.error(H)},kt=()=>{S.value&&C(S.value)},xF=()=>{F.value=!1,Gm()},jF=H=>{xF()},Gm=()=>{W.value=!1,s.value=!1,n.value=!1,V.value=0,N.value=!1,m.value="",J.value="",S.value=null,G.value="",Kd()};return Em(()=>{}),l({showEdit:C,close:xF}),(H,P)=>{const Ql=jW("el-icon"),Dl=jW("el-button"),vd=jW("el-button-group"),OF=jW("el-dialog");return Ol(),jl("div",null,[al(OF,{modelValue:F.value,"onUpdate:modelValue":P[0]||(P[0]=gF=>F.value=gF),title:c.value,width:"80%","before-close":jF,class:"file-preview-dialog"},{footer:kl(()=>[Hl("div",$S,[al(Dl,{type:"primary",onClick:xF},{default:kl(()=>[...P[10]||(P[10]=[EZ(" 关闭 ",-1)])]),_:1})])]),default:kl(()=>[Hl("div",oS,[W.value?(Ol(),jl("div",yS,[al(Ql,{class:"is-loading",size:"48"},{default:kl(()=>[al(cU(OW))]),_:1}),Hl("p",null,IU(Q.value),1)])):s.value?(Ol(),jl("div",kS,[al(Ql,{class:"is-loading",size:"48"},{default:kl(()=>[al(cU(OW))]),_:1}),Hl("p",null,IU(i.value),1)])):n.value?(Ol(),jl("div",zS,[al(Ql,{class:"is-loading",size:"48"},{default:kl(()=>[al(cU(OW))]),_:1}),P[2]||(P[2]=Hl("p",null,"正在下载文件,请稍候...",-1)),V.value>0?(Ol(),jl("p",LS," 下载进度: "+IU(V.value)+"% ",1)):_a("",!0)])):N.value?(Ol(),jl("div",IS,[al(Ql,{size:"48",color:"#F56C6C"},{default:kl(()=>[al(cU(wm))]),_:1}),P[4]||(P[4]=Hl("p",null,"文件预览失败",-1)),Hl("p",DS,IU(e.value),1),al(Dl,{type:"primary",onClick:kt},{default:kl(()=>[...P[3]||(P[3]=[EZ("重试",-1)])]),_:1})])):(Ol(),jl("div",ES,[B.value?(Ol(),jl("div",wS,[Hl("img",{src:m.value,alt:M.value,onLoad:ad},null,40,CS)])):y.value?(Ol(),jl("div",rS,[Y.value>0?(Ol(),jl("div",xS,[al(vd,null,{default:kl(()=>[al(Dl,{disabled:u.value<=1,onClick:Xl},{default:kl(()=>[al(Ql,null,{default:kl(()=>[al(cU(AR))]),_:1}),P[5]||(P[5]=EZ(" 上一页 ",-1))]),_:1},8,["disabled"]),al(Dl,null,{default:kl(()=>[EZ(IU(u.value)+" / "+IU(Y.value),1)]),_:1}),al(Dl,{disabled:u.value>=Y.value,onClick:rl},{default:kl(()=>[P[6]||(P[6]=EZ(" 下一页 ",-1)),al(Ql,null,{default:kl(()=>[al(cU(_R))]),_:1})]),_:1},8,["disabled"])]),_:1})])):_a("",!0),Hl("div",jS,[al(cU(kR),{source:p.value,page:u.value,scale:o.value,onLoaded:ll,onRendered:hl,onError:_,class:"pdf-viewer"},null,8,["source","page","scale"])])])):E.value?(Ol(),jl("div",OS,[Hl("video",{controls:"",src:m.value,class:"video-player"}," 您的浏览器不支持视频播放 ",8,gS)])):D.value?(Ol(),jl("div",KS,[Hl("audio",{controls:"",src:m.value,class:"audio-player"}," 您的浏览器不支持音频播放 ",8,vS)])):w.value?(Ol(),jl("div",HS,[Hl("pre",null,IU(J.value),1)])):L.value?(Ol(),jl("div",PS,[Y.value>0?(Ol(),jl("div",fS,[al(vd,null,{default:kl(()=>[al(Dl,{disabled:u.value<=1,onClick:Xl},{default:kl(()=>[al(Ql,null,{default:kl(()=>[al(cU(AR))]),_:1}),P[7]||(P[7]=EZ(" 上一页 ",-1))]),_:1},8,["disabled"]),al(Dl,null,{default:kl(()=>[EZ(IU(u.value)+" / "+IU(Y.value),1)]),_:1}),al(Dl,{disabled:u.value>=Y.value,onClick:rl},{default:kl(()=>[P[8]||(P[8]=EZ(" 下一页 ",-1)),al(Ql,null,{default:kl(()=>[al(cU(_R))]),_:1})]),_:1},8,["disabled"])]),_:1})])):_a("",!0),Hl("div",AS,[al(cU(kR),{source:p.value,page:u.value,scale:o.value,onLoaded:ll,onRendered:hl,onError:_,class:"pdf-viewer"},null,8,["source","page","scale"])])])):(Ol(),jl("div",_S,[al(Ql,{size:"64",color:"#909399"},{default:kl(()=>[al(cU(Cm))]),_:1}),P[9]||(P[9]=Hl("p",null,"不支持在线预览此文件类型",-1)),Hl("p",qS,IU(M.value),1)]))]))])]),_:1},8,["modelValue","title"]),al(OF,{modelValue:T.value,"onUpdate:modelValue":P[1]||(P[1]=gF=>T.value=gF),title:"文件转换",width:"50%",class:"file-preview-dialog"},{default:kl(()=>[Hl("div",lT,[Hl("div",dT,[al(Ql,{class:"is-loading",size:"48"},{default:kl(()=>[al(cU(OW))]),_:1}),P[11]||(P[11]=Hl("p",null,"正在下载文件,请稍候...",-1))])])]),_:1},8,["modelValue"])])}}},IT=km(UT,[["__scopeId","data-v-b2dcc008"]]),DT=rm("room",{state:()=>({roomId:"",token:"",userUid:"",detailUid:"",detailName:""}),actions:{setUserUid(U){this.userUid=U},setDetailUid(U){this.detailUid=U},setDetailName(U){this.detailName=U}}});export{IT as B,FT as a,cT as b,WT as c,aT as g,DT as u}; diff --git a/dist/assets/room-BKpValiO.js.gz b/dist/assets/room-BKpValiO.js.gz new file mode 100644 index 0000000..6c4f1a9 Binary files /dev/null and b/dist/assets/room-BKpValiO.js.gz differ diff --git a/dist/assets/room-C5nwLQie.css b/dist/assets/room-C5nwLQie.css new file mode 100644 index 0000000..db94d6a --- /dev/null +++ b/dist/assets/room-C5nwLQie.css @@ -0,0 +1 @@ +.file-preview-dialog .preview-container[data-v-b2dcc008]{min-height:400px;display:flex;align-items:center;justify-content:center}.file-preview-dialog .preview-container .loading-container[data-v-b2dcc008],.file-preview-dialog .preview-container .error-container[data-v-b2dcc008]{text-align:center;padding:40px 0}.file-preview-dialog .preview-container .loading-container p[data-v-b2dcc008],.file-preview-dialog .preview-container .error-container p[data-v-b2dcc008]{margin-top:16px;color:#606266}.file-preview-dialog .preview-container .loading-container .error-message[data-v-b2dcc008],.file-preview-dialog .preview-container .error-container .error-message[data-v-b2dcc008]{font-size:14px;color:#f56c6c;margin-top:8px}.file-preview-dialog .preview-container .loading-container .download-progress[data-v-b2dcc008],.file-preview-dialog .preview-container .error-container .download-progress[data-v-b2dcc008]{font-size:14px;color:#409eff;margin-top:8px}.file-preview-dialog .preview-container .file-content[data-v-b2dcc008]{width:100%;height:100%}.file-preview-dialog .preview-container .file-content .image-preview[data-v-b2dcc008]{text-align:center}.file-preview-dialog .preview-container .file-content .image-preview img[data-v-b2dcc008]{max-width:100%;max-height:70vh;-o-object-fit:contain;object-fit:contain}.file-preview-dialog .preview-container .file-content .pdf-preview .pdf-controls[data-v-b2dcc008],.file-preview-dialog .preview-container .file-content .office-preview .pdf-controls[data-v-b2dcc008]{display:flex;justify-content:center;align-items:center;margin-bottom:16px;padding:8px;background:#f5f5f5;border-radius:4px;flex-wrap:wrap;gap:8px}.file-preview-dialog .preview-container .file-content .pdf-preview .pdf-viewer-container[data-v-b2dcc008],.file-preview-dialog .preview-container .file-content .office-preview .pdf-viewer-container[data-v-b2dcc008]{height:70vh;overflow:auto;border:1px solid #e0e0e0;border-radius:4px;background:#f9f9f9}.file-preview-dialog .preview-container .file-content .pdf-preview .pdf-viewer-container .pdf-viewer[data-v-b2dcc008],.file-preview-dialog .preview-container .file-content .office-preview .pdf-viewer-container .pdf-viewer[data-v-b2dcc008]{width:100%;min-height:100%;display:flex;justify-content:center}.file-preview-dialog .preview-container .file-content .pdf-preview .pdf-viewer-container .pdf-viewer[data-v-b2dcc008] .vue-pdf-embed,.file-preview-dialog .preview-container .file-content .office-preview .pdf-viewer-container .pdf-viewer[data-v-b2dcc008] .vue-pdf-embed{text-align:center}.file-preview-dialog .preview-container .file-content .pdf-preview .pdf-viewer-container .pdf-viewer[data-v-b2dcc008] canvas,.file-preview-dialog .preview-container .file-content .office-preview .pdf-viewer-container .pdf-viewer[data-v-b2dcc008] canvas{max-width:100%;height:auto}.file-preview-dialog .preview-container .file-content .video-preview[data-v-b2dcc008]{text-align:center}.file-preview-dialog .preview-container .file-content .video-preview .video-player[data-v-b2dcc008]{max-width:100%;max-height:70vh}.file-preview-dialog .preview-container .file-content .audio-preview[data-v-b2dcc008]{text-align:center;padding:40px 0}.file-preview-dialog .preview-container .file-content .audio-preview .audio-player[data-v-b2dcc008]{width:80%}.file-preview-dialog .preview-container .file-content .text-preview[data-v-b2dcc008]{height:70vh;overflow:auto;background:#f5f5f5;padding:16px;border-radius:4px}.file-preview-dialog .preview-container .file-content .text-preview pre[data-v-b2dcc008]{white-space:pre-wrap;word-wrap:break-word;margin:0;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px;line-height:1.5}.file-preview-dialog .preview-container .file-content .unsupported-preview[data-v-b2dcc008]{text-align:center;padding:40px 0}.file-preview-dialog .preview-container .file-content .unsupported-preview p[data-v-b2dcc008]{margin-top:16px;color:#606266}.file-preview-dialog .preview-container .file-content .unsupported-preview .file-name[data-v-b2dcc008]{font-size:14px;color:#909399;margin-top:8px}.file-preview-dialog .dialog-footer[data-v-b2dcc008]{display:flex;justify-content:space-between}@media (max-width: 768px){.file-preview-dialog[data-v-b2dcc008]{width:95%!important}.file-preview-dialog .preview-container[data-v-b2dcc008]{min-height:300px}.file-preview-dialog .preview-container .file-content .pdf-preview .pdf-viewer-container[data-v-b2dcc008],.file-preview-dialog .preview-container .file-content .office-preview .pdf-viewer-container[data-v-b2dcc008],.file-preview-dialog .preview-container .file-content .text-preview[data-v-b2dcc008]{height:50vh}.file-preview-dialog .pdf-controls[data-v-b2dcc008]{flex-direction:column;gap:8px}.file-preview-dialog .pdf-controls .el-button-group[data-v-b2dcc008]{width:100%;display:flex}.file-preview-dialog .pdf-controls .el-button-group .el-button[data-v-b2dcc008]{flex:1;font-size:12px;padding:8px 4px}} diff --git a/dist/assets/room-C5nwLQie.css.gz b/dist/assets/room-C5nwLQie.css.gz new file mode 100644 index 0000000..046f6f3 Binary files /dev/null and b/dist/assets/room-C5nwLQie.css.gz differ diff --git a/dist/assets/shrink-Cp-w-M07.png b/dist/assets/shrink-Cp-w-M07.png new file mode 100644 index 0000000..8e60666 Binary files /dev/null and b/dist/assets/shrink-Cp-w-M07.png differ diff --git a/dist/favicon.ico b/dist/favicon.ico new file mode 100644 index 0000000..df36fcf Binary files /dev/null and b/dist/favicon.ico differ diff --git a/dist/index.html b/dist/index.html new file mode 100644 index 0000000..d2a3060 --- /dev/null +++ b/dist/index.html @@ -0,0 +1,14 @@ + + + + + + + xSynergy远程协作系统 + + + + +
+ +